{"version":3,"file":"9424.62c5d53cc24695c8.js","mappings":"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","names":["ProductConfigurationOpenInCadcamDialogComponent","_ProductConfigurationOpenInCadcamDialogComponent","constructor","data","this","i0","MAT_DIALOG_DATA","selectors","decls","vars","consts","template","rf","ctx","_c0","name","UnlockInUseComponent","_UnlockInUseComponent","BaseComponent","dialogBuilderFactoryService","translate","authentication","super","lockedChange","EventEmitter","dialogBuilderWithAlertDialogClass","getBuilder","withClass","ngOnInit","currentSubscription","getCurrentSubscription","unlock","undefined","conflictsRepository","getConflicts","conflicts","openDialog","ConflictsDialogComponent","ConflictsDialogData","createUnlockData","entityKey","ConflictType","pipe","takeUntil","unSubscribeOnViewDestroy","subscribe","onUnlock","viewInUse","createInUseData","getInformation","instant","locked","getButton","getMessage","_this$customMessage","customMessage","main","object","count","clickButton","callback","id","emit","i1","AUTHENTICATION","inputs","outputs","features","AddTuftProductViewMode","GENERAL","OPTIONAL_SETTINGS","_r1","ctx_r1","unlockTuftProduct","translationKeyForTuftProducts","tuftProductsService","tuftProductIsLocked","tuftProductToSave","AddTuftProductPageComponent_ng_container_2_Conditional_1_Template","isTuftProductBeingUsed","getLoadLink","_c1","maxWidthInCm","gauge_r4","fractionalValueAsString","AddTuftProductPageComponent_Conditional_4_Conditional_1_mat_error_10_Template","AddTuftProductPageComponent_Conditional_4_Conditional_1_mat_error_11_Template","AddTuftProductPageComponent_Conditional_4_Conditional_1_mat_error_28_Template","AddTuftProductPageComponent_Conditional_4_Conditional_1_mat_error_29_Template","AddTuftProductPageComponent_Conditional_4_Conditional_1_mat_error_30_Template","AddTuftProductPageComponent_Conditional_4_Conditional_1_mat_error_31_Template","AddTuftProductPageComponent_Conditional_4_Conditional_1_For_39_Template","AddTuftProductPageComponent_Conditional_4_Conditional_1_mat_error_40_Template","AddTuftProductPageComponent_Conditional_4_Conditional_1_mat_error_51_Template","AddTuftProductPageComponent_Conditional_4_Conditional_1_mat_error_52_Template","AddTuftProductPageComponent_Conditional_4_Conditional_1_mat_error_53_Template","_r3","selectPrimaryBacking","AddTuftProductPageComponent_Conditional_4_Conditional_1_mat_error_62_Template","generalForm","getVersion","compareWithGauge","gauges","PRIMARY_BACKING_BASE_ROUTER_LINK","AddTuftProductPageComponent_Conditional_4_Conditional_1_Template","isLoadingTuftProduct","canShowAddingTuftProduct","AddTuftProductPageComponent_Conditional_5_Conditional_1_mat_error_13_Template","AddTuftProductPageComponent_Conditional_5_Conditional_1_mat_error_14_Template","AddTuftProductPageComponent_Conditional_5_Conditional_1_mat_error_37_Template","AddTuftProductPageComponent_Conditional_5_Conditional_1_mat_error_38_Template","AddTuftProductPageComponent_Conditional_5_Conditional_1_mat_error_49_Template","AddTuftProductPageComponent_Conditional_5_Conditional_1_mat_error_50_Template","AddTuftProductPageComponent_Conditional_5_Conditional_1_mat_error_60_Template","AddTuftProductPageComponent_Conditional_5_Conditional_1_mat_error_61_Template","optionalSettingsForm","AddTuftProductPageComponent_Conditional_5_Conditional_1_Template","AddTuftProductPageComponent","_AddTuftProductPageComponent","document","machines","weaveProducts","formBuilder","router","activatedRoute","navigationHelperService","textileService","unsavedChangesNotifierService","saveButtonTouched","selectedMenuItem","value","translationKey","menuItems","texstyleEditPermission","LastModifiedCardUtils","getPermissionToModifyItems","RouteUtils","paths","texStyle","weaveProduct","editWeaveProduct","absolutePath","SAVE_TYPE","SaveType","HEADER_IDENTIFIER","HeaderIdentifier","ADD_TUFT_PRODUCT","TUFT_PRODUCT_OVERVIEW_PAGE_URL","tuftProduct","DUPLICATE_TUFT_PRODUCT_PAGE_URL","duplicateTuftProduct","path","EDIT_TUFT_PRODUCT_PAGE_URL","editTuftProduct","addTuftProductForm","controls","urlParams","snapshot","params","TuftProduct","createEmptyTuftProduct","initialiseAddTuftProductComponent","subscribeToSaveEventEmitter","getPartialStateOfUnsavedChangesNotifier","onNavigationHelperDestroy","savePartialState","getCurrentTuftProduct","savePartialStateOfUnsavedChangesNotifier","saveTuftProduct","saveType","navigateToSelectedRoute","FormValidationHelper","checkForms","saving","isEditingTuftProduct","update","save","finalize","finalizeSaving","next","notifyChangesToForm","navigateAndShowToast","TextileDataType","TUFT_PRODUCT","error","errorMessage","showErrorDialogForBackendError","message","deleteTuftProduct","removeConfirmation","navigateByUrl","replace","toString","openConflictsDialog","getTranslations","routeConfig","enable","disable","version","patchValue","gaugeA","gaugeB","getActionText","toLowerCase","onSelectedMenuItemChange","isGeneralMenuItemSelected","used","isDuplicatingTuftProduct","navigateBack","navigateToPreviousRoute","canShowInvalidFormMessageError","isGeneralFormInvalid","Object","values","some","control","invalid","touched","isOptionalSettingsFormInvalid","hasEditPermission","_this$currentSubscrip","hasPermission","openSelectGridDialog","SelectWeaveProductComponent","selectedWeaveProduct","selectedPrimaryBacking","WeaveProduct","fromOverviewListWeaveProduct","primaryBacking","setValue","notifyChangesToOthers","ErrorHandlers","getGauges","setFormFields","setFormValues","setFormFieldsForMachine","setNewItemOrReopenDialogIfPresent","newItemId","setPrimaryBacking","group","Validators","required","widthInCm","min","gauge","stitchRateInStitchesPerCm","pileHeightInCm","color","blend","standardSpeed","standardEfficiency","weightInGramsPerMeter","description","tuftingNotes","backingNotes","setTuftProductNameAsyncValidator","form","notifyChanges","setValues","tuftProductName","resetGeneralFormValues","resetOptionalSettingsFormValues","reset","AssertionUtils","isNullOrUndefined","getRawValue","openAlertDialog","titleText","messageText","type","DialogType","INFORMATION","setAsyncValidators","AsyncUniqueValidator","createValidator","disableForm","emptyTuftProductState","tuftProductState","getPartialState","keys","ObjectUtils","isDeepEqual","getById","parseInt","setTuftProduct","navigateToOverviewAndThrowError","emptyMachineOverviewState","equipmentId","machineOverviewState","tuftMachine","tuftingMachineType","width","addValidators","max","updateValueAndValidity","getAll","find","getSaveEventEmitter","res","SAVE_AND_CLOSE","DOCUMENT","MACHINES","WEAVE_PRODUCT","i2","i3","i4","i5","i6","i7","$event","SAVE","SAVE_AND_CREATE_NEW","AddTuftProductPageComponent_ng_container_2_Template","AddTuftProductPageComponent_Conditional_4_Template","AddTuftProductPageComponent_Conditional_5_Template","skeletonViewAnimation","tuftProductRoutes","component","_TuftProductOverviewPageComponent","TuftProductOverviewPageComponent","l10nIntlService","colDefBuilderFactoryService","textileDataType","GRID_IDENTIFIER","GridIdentifier","TUFT_PRODUCT_OVERVIEW","pageUrls","getPageUrls","getTuftProducts","getColumnDefsForListOfTuftProducts","withColIdAndField","withHeaderName","withComparator","StringUtils","stringComparator","withCellRenderer","LinkIconRendererComponent","editPageUrl","edit","build","getValue","withCellClass","buildAgGridCellTextWithUnit","Unit","CENTIMETER","withTooltipValueGetter","AgGridUtils","buildAgGridCellTooltipWithUnit","withValueGetter","INCH","FractionUtils","fractionComparator","PER_CENTIMETER","withHide","GRAMS_PER_METER","ROTATIONS_PER_MINUTE","PERCENTAGE","exportGridForTuftProducts","gridApi","exportDataAsCsv","processCellCallback","column","colId","showOnlyLatestVersionChanged","showOnlyLatestVersion","tuftProducts","listOfTuftProducts","defaultUnit","AuthorizedRouteFactory","createComponentRoute","addTuftProduct","reuse","canDeactivateRouteWithUnsavedChanges","canActivate","canActivatePermissionGuard","canDeactivate","requiredPermission","tuftProductRouting","RouterModule","forChild","TuftProductModule","_TuftProductModule","UnsavedChangesNotifierService","imports","TextileDataSharedModule","SharedModule","AgGridModule","CanShowErrorForFormControlModule"],"ignoreList":[],"sourceRoot":"webpack:///","sources":["./apps/texconnect/src/app/presentation/components/product-configuration-open-in-cadcam/product-configuration-open-in-cadcam-dialog.component.ts","./apps/texconnect/src/app/presentation/components/product-configuration-open-in-cadcam/product-configuration-open-in-cadcam-dialog.component.html","./apps/texconnect/src/app/presentation/components/unlock-in-use/unlock-in-use.component.ts","./apps/texconnect/src/app/presentation/components/unlock-in-use/unlock-in-use.component.html","./apps/texconnect/src/app/presentation/pages/textile-data/tuft-product/add/add-tuft-product-view-mode.enum.ts","./apps/texconnect/src/app/presentation/pages/textile-data/tuft-product/add/add-tuft-product-page.component.html","./apps/texconnect/src/app/presentation/pages/textile-data/tuft-product/add/add-tuft-product-page.component.ts","./apps/texconnect/src/app/presentation/pages/textile-data/tuft-product/tuft-product.routing.ts","./apps/texconnect/src/app/presentation/pages/textile-data/tuft-product/overview/tuft-product-overview-page.component.ts","./apps/texconnect/src/app/presentation/pages/textile-data/tuft-product/overview/tuft-product-overview-page.component.html","./apps/texconnect/src/app/presentation/pages/textile-data/tuft-product/tuft-product.module.ts"],"sourcesContent":["import {Component, Inject} from '@angular/core';\nimport {MAT_DIALOG_DATA} from '@angular/material/dialog';\n\n@Component({\n templateUrl: './product-configuration-open-in-cadcam-dialog.component.html',\n styleUrls: ['./product-configuration-open-in-cadcam-dialog.component.scss']\n})\nexport class ProductConfigurationOpenInCadcamDialogComponent {\n public constructor(@Inject(MAT_DIALOG_DATA) public data: {name: string}) {}\n}\n","
\n
\n

{{ 'PRODUCT_CONFIGURATION.OPEN_IN_CADCAM' | bmsTranslate: {object: data.name} }}

\n

{{ 'PRODUCT_CONFIGURATION.WARNING' | bmsTranslate }}

\n
\n \n
\n","import {Component, EventEmitter, Inject, Input, OnInit, Output} from '@angular/core';\nimport {ConflictType} from '@domain/conflicts/conflict-type';\nimport {Subscription} from '@domain/profile/subscription';\nimport {Authentication, AUTHENTICATION} from '@infrastructure/http/authentication/authentication';\nimport {ConflictsRepository} from '@infrastructure/http/conflicts-repository';\nimport {CardInfoMessage} from '@presentation/components/card-info/card-info-message.interface';\nimport {BaseComponent, Conflict, ConflictsDialogComponent, ConflictsDialogData, DialogBuilderFactoryService, TranslateService} from '@vdw/angular-component-library';\nimport {takeUntil} from 'rxjs/operators';\nimport {ProductConfigurationOpenInCadcamDialogComponent} from '../product-configuration-open-in-cadcam/product-configuration-open-in-cadcam-dialog.component';\n\n@Component({\n selector: 'app-unlock-in-use',\n templateUrl: './unlock-in-use.component.html'\n})\nexport class UnlockInUseComponent extends BaseComponent implements OnInit {\n @Input() public locked: boolean;\n @Input() public conflictsRepository: ConflictsRepository;\n @Input() public entityKey: string;\n @Input() public id: number;\n @Input() public name: string;\n @Input() public customMessage: CardInfoMessage;\n\n @Output() public lockedChange: EventEmitter = new EventEmitter();\n\n private readonly dialogBuilderWithAlertDialogClass = this.dialogBuilderFactoryService.getBuilder().withClass('alert-dialog');\n private currentSubscription: Subscription;\n\n public constructor(\n private readonly dialogBuilderFactoryService: DialogBuilderFactoryService,\n private readonly translate: TranslateService,\n @Inject(AUTHENTICATION) public readonly authentication: Authentication\n ) {\n super();\n }\n\n public ngOnInit(): void {\n this.currentSubscription = this.authentication.getCurrentSubscription();\n }\n\n public unlock(): void {\n if (this.conflictsRepository !== undefined) {\n this.getConflicts((conflicts: Conflict[]) => {\n this.dialogBuilderWithAlertDialogClass\n .openDialog(ConflictsDialogComponent, ConflictsDialogData.createUnlockData(this.entityKey, this.name, conflicts, ConflictType, this.currentSubscription))\n .pipe(takeUntil(this.unSubscribeOnViewDestroy))\n .subscribe((unlock: boolean) => this.onUnlock(unlock));\n });\n } else {\n this.dialogBuilderWithAlertDialogClass\n .openDialog(ProductConfigurationOpenInCadcamDialogComponent, {name: this.name})\n .pipe(takeUntil(this.unSubscribeOnViewDestroy))\n .subscribe((unlock: boolean) => this.onUnlock(unlock));\n }\n }\n\n public viewInUse(): void {\n this.getConflicts((conflicts: Conflict[]) => {\n this.dialogBuilderWithAlertDialogClass.openDialog(ConflictsDialogComponent, ConflictsDialogData.createInUseData(this.entityKey, this.name, conflicts, ConflictType));\n });\n }\n\n public getInformation(): string {\n return this.translate.instant(this.locked ? 'CONFLICTS.UNLOCK_TO' : 'CONFLICTS.UNLOCKED');\n }\n\n public getButton(): string {\n return this.translate.instant(this.locked ? 'CONFLICTS.UNLOCK' : 'CONFLICTS.VIEW_IN_USE');\n }\n\n public getMessage(): CardInfoMessage {\n return this.customMessage ?? {main: this.translate.instant('CONFLICTS.IN_USE', {object: this.translate.instant(this.entityKey, {count: 1})})};\n }\n\n public clickButton(): void {\n if (this.locked) {\n this.unlock();\n } else {\n this.viewInUse();\n }\n }\n\n private getConflicts(callback: (conflicts: Conflict[]) => void): void {\n this.conflictsRepository\n .getConflicts(this.id)\n .pipe(takeUntil(this.unSubscribeOnViewDestroy))\n .subscribe((conflicts: Conflict[]) => {\n callback(conflicts);\n });\n }\n\n private onUnlock(unlock: boolean): void {\n if (unlock) {\n this.locked = false;\n this.lockedChange.emit(this.locked);\n }\n }\n}\n","\n","export enum AddTuftProductViewMode {\n GENERAL,\n OPTIONAL_SETTINGS\n}\n","
\n \n\n \n @if (isTuftProductBeingUsed()) {\n
\n \n
\n }\n
\n\n
\n @if (isGeneralMenuItemSelected()) {\n \n @if (canShowAddingTuftProduct()) {\n \n
\n
\n
\n
\n \n {{ 'GENERAL.NAME' | bmsTranslate }}\n \n \n {{ 'GENERAL.ERRORS.NAME_DUPLICATE' | bmsTranslate }}\n {{ 'GENERAL.ACTIONS.LOAD' | bmsTranslate }}\n \n \n {{ 'GENERAL.ERRORS.REQUIRED' | bmsTranslate }}\n \n \n
\n
\n \n {{ 'GENERAL.VERSION' | bmsTranslate }}\n \n \n
\n
\n\n
\n
\n \n {{ 'GENERAL.DIMENSIONS.WIDTH' | bmsTranslate }}\n \n \n {{ 'GENERAL.UNIT.CENTIMETER' | bmsTranslate }}\n \n \n {{ 'GENERAL.ERRORS.INVALID_FORMAT.INVALID_FORMAT' | bmsTranslate }}\n \n \n {{ 'GENERAL.ERRORS.REQUIRED' | bmsTranslate }}\n \n \n {{ 'GENERAL.ERRORS.MIN_VALUE' | bmsTranslate: {min: 1} }}\n \n \n {{ 'GENERAL.ERRORS.MAX_VALUE' | bmsTranslate: {max: maxWidthInCm} }}\n \n \n
\n
\n \n {{ 'GENERAL.DIMENSIONS.GAUGE' | bmsTranslate }}\n \n @for (gauge of gauges; track gauge) {\n {{ gauge.fractionalValueAsString }} inch \n }\n \n \n {{ 'GENERAL.ERRORS.REQUIRED' | bmsTranslate }}\n \n \n
\n
\n\n
\n
\n \n {{ 'TEXTILE_DATA.TUFT_PRODUCT.STITCH_RATE' | bmsTranslate }}\n \n \n {{ 'GENERAL.UNIT.PER_CENTIMETER' | bmsTranslate }}\n \n \n {{ 'GENERAL.ERRORS.INVALID_FORMAT.INVALID_FORMAT' | bmsTranslate }}\n \n \n {{ 'GENERAL.ERRORS.REQUIRED' | bmsTranslate }}\n \n \n {{ 'GENERAL.ERRORS.MIN_VALUE' | bmsTranslate: {min: 1} }}\n \n \n
\n
\n \n {{ 'TEXTILE_DATA.TUFT_PRODUCT.PRIMARY_BACKING' | bmsTranslate }}\n \n \n {{ 'GENERAL.ERRORS.REQUIRED' | bmsTranslate }}\n \n \n
\n
\n
\n
\n
\n }\n
\n } @else {\n \n @if (canShowAddingTuftProduct()) {\n \n
\n
\n
\n
\n \n {{ 'TEXTILE_DATA.TUFT_PRODUCT.PILE_HEIGHT' | bmsTranslate }}\n \n \n {{ 'GENERAL.UNIT.CENTIMETER' | bmsTranslate }}\n \n \n {{ 'GENERAL.ERRORS.INVALID_FORMAT.INVALID_FORMAT' | bmsTranslate }}\n \n \n {{ 'GENERAL.ERRORS.MIN_VALUE' | bmsTranslate: {min: 1} }}\n \n \n
\n
\n \n {{ 'TEXTILE_DATA.TUFT_PRODUCT.COLOR' | bmsTranslate }}\n \n \n
\n
\n\n
\n
\n \n {{ 'TEXTILE_DATA.TUFT_PRODUCT.BLEND' | bmsTranslate }}\n \n \n
\n
\n \n {{ 'TEXTILE_DATA.TUFT_PRODUCT.STANDARD_SPEED' | bmsTranslate }}\n \n \n {{ 'GENERAL.UNIT.ROTATIONS_PER_MINUTE' | bmsTranslate }}\n \n \n {{ 'GENERAL.ERRORS.INVALID_FORMAT.INVALID_FORMAT' | bmsTranslate }}\n \n \n {{ 'GENERAL.ERRORS.MIN_VALUE' | bmsTranslate: {min: 1} }}\n \n \n
\n
\n\n
\n
\n \n {{ 'TEXTILE_DATA.TUFT_PRODUCT.STANDARD_EFFICIENCY' | bmsTranslate }}\n \n \n {{ 'GENERAL.UNIT.PERCENTAGE' | bmsTranslate }}\n \n \n {{ 'GENERAL.ERRORS.INVALID_FORMAT.INVALID_FORMAT' | bmsTranslate }}\n \n \n {{ 'GENERAL.ERRORS.MIN_VALUE' | bmsTranslate: {min: 1} }}\n \n \n
\n
\n \n {{ 'GENERAL.WEIGHT' | bmsTranslate }}\n \n \n {{ 'GENERAL.UNIT.GRAMS_PER_METER' | bmsTranslate }}\n \n \n {{ 'GENERAL.ERRORS.INVALID_FORMAT.INVALID_FORMAT' | bmsTranslate }}\n \n \n {{ 'GENERAL.ERRORS.MIN_VALUE' | bmsTranslate: {min: 1} }}\n \n \n
\n
\n\n \n {{ 'TEXTILE_DATA.TUFT_PRODUCT.DESCRIPTION' | bmsTranslate }}\n \n \n\n \n {{ 'TEXTILE_DATA.TUFT_PRODUCT.TUFTING_NOTES' | bmsTranslate }}\n \n \n\n \n {{ 'TEXTILE_DATA.TUFT_PRODUCT.BACKING_NOTES' | bmsTranslate }}\n \n \n
\n
\n
\n }\n
\n }\n
\n
\n","import {DOCUMENT} from '@angular/common';\nimport {Component, Inject, OnInit} from '@angular/core';\nimport {FormBuilder, FormControl, Validators} from '@angular/forms';\nimport {ActivatedRoute, Params, Router} from '@angular/router';\nimport {HeaderIdentifier} from '@application/headers/header-identifier.enum';\nimport {ErrorHandlers} from '@application/helper/error-handlers';\nimport {LastModifiedCardUtils} from '@application/helper/last-modified-card-utils';\nimport {NavigationHelperService} from '@application/helper/navigation-helper/navigation-helper.service';\nimport {NavigationNewItemData} from '@application/helper/navigation-helper/navigation-new-item-data.interface';\nimport {RouteUtils} from '@application/helper/routing/route-utils';\nimport {UnsavedChangesNotifierService} from '@application/helper/unsaved-changes-notifier/unsaved-changes-notifier.service';\nimport {AsyncUniqueValidator} from '@application/validators/async-unique-validator';\nimport {Gauge} from '@domain/machine/gauge';\nimport {TuftMachine} from '@domain/machine/tuft-machine';\nimport {Subscription} from '@domain/profile/subscription';\nimport {TuftProduct} from '@domain/textile-data/tuft-product/tuft-product';\nimport {WeaveProduct} from '@domain/textile-data/weave-product/weave-product';\nimport {AUTHENTICATION, Authentication} from '@infrastructure/http/authentication/authentication';\nimport {MACHINES, Machines} from '@infrastructure/http/machine/machines.interface';\nimport {HttpTuftProductsService} from '@infrastructure/http/tuft-product/http-tuft-products.service';\nimport {WEAVE_PRODUCT, WeaveProducts} from '@infrastructure/http/weave-product/weave-products.interface';\nimport {NavigationMachineOverviewData} from '@presentation/pages/machine-overview/navigation-machine-overview-data.interface';\nimport {SelectWeaveProductComponent} from '@presentation/pages/texfab/production-order-lite/add/select-weave-product/select-weave-product.component';\nimport {\n AssertionUtils,\n BackendError,\n BaseComponent,\n DialogBuilderFactoryService,\n DialogType,\n FormValidationHelper,\n ObjectUtils,\n SaveType,\n skeletonViewAnimation,\n TabsMenuItem,\n TranslateService\n} from '@vdw/angular-component-library';\nimport {finalize, Observable, takeUntil} from 'rxjs';\nimport {TextileService} from '../../textile-data-overview/textile.service';\nimport {TextileDataType} from '../../textile-data-type.enum';\nimport {OverviewListWeaveProduct} from '../../weave-product/overview/overview-list-weave-product';\nimport {AddTuftProductViewMode} from './add-tuft-product-view-mode.enum';\nimport {NavigationAddTuftProductPageData} from './navigation-add-tuft-product-page-data.type';\nimport {NavigationTuftProductData} from './navigation-tuft-product-data.interface';\nimport {GeneralForm, OptionalSettingsForm, TuftProductForm} from './tuft-product-form';\n\n@Component({\n templateUrl: './add-tuft-product-page.component.html',\n styleUrls: ['./add-tuft-product-page.component.scss'],\n animations: [skeletonViewAnimation('.form-field-skeleton-wrapper, .button-skeleton-wrapper')]\n})\nexport class AddTuftProductPageComponent extends BaseComponent implements OnInit {\n public addTuftProductForm: TuftProductForm;\n public gauges: Gauge[];\n public isLoadingTuftProduct = true;\n public tuftProductIsLocked = false;\n public tuftProductToSave: TuftProduct;\n public saveButtonTouched = false;\n public maxWidthInCm: number;\n\n public selectedMenuItem: TabsMenuItem = {\n value: AddTuftProductViewMode.GENERAL,\n translationKey: 'GENERAL.GENERAL'\n };\n\n public menuItems: TabsMenuItem[] = [\n this.selectedMenuItem,\n {\n value: AddTuftProductViewMode.OPTIONAL_SETTINGS,\n translationKey: 'GENERAL.OPTIONAL_SETTINGS'\n }\n ];\n\n public readonly texstyleEditPermission = LastModifiedCardUtils.getPermissionToModifyItems('tuftProduct');\n public readonly translationKeyForTuftProducts = 'TEXTILE_DATA.TUFT_PRODUCT.TUFT_PRODUCT';\n public readonly PRIMARY_BACKING_BASE_ROUTER_LINK = RouteUtils.paths.texStyle.weaveProduct.editWeaveProduct.absolutePath;\n public readonly SAVE_TYPE = SaveType;\n public readonly HEADER_IDENTIFIER = HeaderIdentifier.ADD_TUFT_PRODUCT;\n\n private urlParams: Params;\n private currentSubscription: Subscription;\n\n private readonly TUFT_PRODUCT_OVERVIEW_PAGE_URL = RouteUtils.paths.texStyle.tuftProduct.absolutePath;\n private readonly DUPLICATE_TUFT_PRODUCT_PAGE_URL = RouteUtils.paths.texStyle.tuftProduct.duplicateTuftProduct.path;\n private readonly EDIT_TUFT_PRODUCT_PAGE_URL = RouteUtils.paths.texStyle.tuftProduct.editTuftProduct.path;\n\n public constructor(\n @Inject(AUTHENTICATION) private readonly authentication: Authentication,\n @Inject(DOCUMENT) private document: Document,\n @Inject(MACHINES) private readonly machines: Machines,\n @Inject(WEAVE_PRODUCT) private weaveProducts: WeaveProducts,\n public readonly tuftProductsService: HttpTuftProductsService,\n private readonly dialogBuilderFactoryService: DialogBuilderFactoryService,\n private readonly translate: TranslateService,\n private readonly formBuilder: FormBuilder,\n private readonly router: Router,\n private readonly activatedRoute: ActivatedRoute,\n private readonly navigationHelperService: NavigationHelperService,\n private readonly textileService: TextileService,\n private readonly unsavedChangesNotifierService: UnsavedChangesNotifierService\n ) {\n super();\n }\n\n public get generalForm(): GeneralForm {\n return this.addTuftProductForm.controls.generalForm;\n }\n\n public get optionalSettingsForm(): OptionalSettingsForm {\n return this.addTuftProductForm.controls.optionalSettingsForm;\n }\n\n public ngOnInit(): void {\n this.currentSubscription = this.authentication.getCurrentSubscription();\n this.urlParams = this.activatedRoute.snapshot.params;\n this.tuftProductToSave = TuftProduct.createEmptyTuftProduct();\n this.initialiseAddTuftProductComponent();\n this.subscribeToSaveEventEmitter();\n this.unsavedChangesNotifierService.getPartialStateOfUnsavedChangesNotifier();\n }\n\n public onNavigationHelperDestroy(): void {\n this.navigationHelperService.savePartialState({tuftProduct: this.getCurrentTuftProduct()});\n this.unsavedChangesNotifierService.savePartialStateOfUnsavedChangesNotifier();\n }\n\n public saveTuftProduct(saveType: SaveType, navigateToSelectedRoute?: string): void {\n this.saveButtonTouched = true;\n const isValid = new FormValidationHelper().checkForms([this.generalForm, this.optionalSettingsForm], this.document);\n if (isValid && !this.tuftProductIsLocked) {\n const tuftProductToSave = this.getCurrentTuftProduct();\n this.saving = true;\n\n const request: Observable = this.isEditingTuftProduct() ? this.tuftProductsService.update(tuftProductToSave) : this.tuftProductsService.save(tuftProductToSave);\n request.pipe(takeUntil(this.unSubscribeOnViewDestroy), finalize(this.finalizeSaving())).subscribe({\n next: (id: number) => {\n this.unsavedChangesNotifierService.notifyChangesToForm(false);\n this.textileService.navigateAndShowToast(\n saveType,\n TextileDataType.TUFT_PRODUCT,\n this.translationKeyForTuftProducts,\n this.isEditingTuftProduct(),\n tuftProductToSave.name,\n id,\n navigateToSelectedRoute\n );\n },\n error: (errorMessage: BackendError) => this.showErrorDialogForBackendError(this.isEditingTuftProduct() ? 'GENERAL.ACTIONS.EDIT_OBJECT' : 'GENERAL.ACTIONS.CREATE_OBJECT', errorMessage.message)\n });\n }\n }\n\n public deleteTuftProduct(): void {\n this.textileService.removeConfirmation(this.tuftProductToSave, TextileDataType.TUFT_PRODUCT, false, null, this.tuftProductsService);\n }\n\n public duplicateTuftProduct(): void {\n this.router.navigateByUrl(RouteUtils.paths.texStyle.tuftProduct.duplicateTuftProduct.absolutePath.replace(':id', this.tuftProductToSave.id.toString()));\n }\n\n public openConflictsDialog(): void {\n this.textileService.getConflicts(this.tuftProductToSave.id, this.tuftProductToSave.name, this.tuftProductsService, LastModifiedCardUtils.getTranslations(TextileDataType.TUFT_PRODUCT));\n }\n\n public isEditingTuftProduct(): boolean {\n return this.activatedRoute.snapshot.routeConfig.path === this.EDIT_TUFT_PRODUCT_PAGE_URL;\n }\n\n public unlockTuftProduct(): void {\n this.tuftProductIsLocked = false;\n\n this.generalForm.enable();\n this.optionalSettingsForm.enable();\n this.generalForm.controls.name.disable();\n this.generalForm.controls.version.patchValue(this.tuftProductToSave.version);\n }\n\n public compareWithGauge(gaugeA: Gauge, gaugeB: Gauge): boolean {\n return gaugeA?.id === gaugeB?.id;\n }\n\n public getActionText(): string {\n return this.translate.instant(this.isEditingTuftProduct() ? 'GENERAL.ACTIONS.EDIT_OBJECT' : 'GENERAL.ACTIONS.CREATE_OBJECT', {\n object: this.translate.instant(this.translationKeyForTuftProducts, {count: 1}).toLowerCase()\n });\n }\n\n public onSelectedMenuItemChange(selectedMenuItem: TabsMenuItem): void {\n this.selectedMenuItem = selectedMenuItem;\n }\n\n public isGeneralMenuItemSelected(): boolean {\n return this.selectedMenuItem.value === AddTuftProductViewMode.GENERAL;\n }\n\n public isTuftProductBeingUsed(): boolean {\n return !!this.tuftProductToSave && this.tuftProductToSave.used && !this.isDuplicatingTuftProduct();\n }\n\n public canShowAddingTuftProduct(): boolean {\n return this.generalForm !== null && this.optionalSettingsForm !== null;\n }\n\n public navigateBack(): void {\n this.navigationHelperService.navigateToPreviousRoute(this.TUFT_PRODUCT_OVERVIEW_PAGE_URL);\n }\n\n public canShowInvalidFormMessageError(): boolean {\n const isGeneralFormInvalid = Object.values(this.generalForm.controls).some((control: FormControl) => control.invalid && control.touched);\n const isOptionalSettingsFormInvalid = Object.values(this.optionalSettingsForm.controls).some((control: FormControl) => control.invalid && control.touched);\n\n if (!isGeneralFormInvalid && !isOptionalSettingsFormInvalid) {\n this.saveButtonTouched = false;\n }\n\n const invalidForm = isGeneralFormInvalid || isOptionalSettingsFormInvalid;\n\n return invalidForm && this.saveButtonTouched;\n }\n\n public hasEditPermission(): boolean {\n return this.currentSubscription?.hasPermission(this.texstyleEditPermission);\n }\n\n public getVersion(): number {\n return !this.isEditingTuftProduct() ? 1 : this.tuftProductToSave.version;\n }\n\n public selectPrimaryBacking(): void {\n this.dialogBuilderFactoryService\n .getBuilder()\n .openSelectGridDialog(SelectWeaveProductComponent)\n .pipe(takeUntil(this.unSubscribeOnViewDestroy))\n .subscribe((selectedWeaveProduct: OverviewListWeaveProduct) => {\n if (!!selectedWeaveProduct) {\n const selectedPrimaryBacking = WeaveProduct.fromOverviewListWeaveProduct(selectedWeaveProduct);\n this.generalForm.controls.primaryBacking.setValue(selectedPrimaryBacking);\n this.unsavedChangesNotifierService.notifyChangesToOthers();\n }\n });\n }\n\n public getLoadLink(): string {\n return ErrorHandlers.getLoadLink(RouteUtils.paths.texStyle.tuftProduct.editTuftProduct.absolutePath, this.generalForm.controls['name']);\n }\n\n private getGauges(): void {\n this.tuftProductsService\n .getGauges()\n .pipe(takeUntil(this.unSubscribeOnViewDestroy))\n .subscribe((gauges: Gauge[]) => (this.gauges = gauges));\n }\n\n private initialiseAddTuftProductComponent(): void {\n this.getGauges();\n this.setFormFields();\n this.setFormValues();\n this.setFormFieldsForMachine();\n this.navigationHelperService.setNewItemOrReopenDialogIfPresent(\n ({newItemId}: NavigationNewItemData) => this.setPrimaryBacking(newItemId),\n () => this.selectPrimaryBacking()\n );\n }\n\n private setFormFields(): void {\n const generalForm = this.formBuilder.group({\n name: this.formBuilder.control(null, Validators.required),\n version: this.formBuilder.control(1),\n widthInCm: this.formBuilder.control(null, [Validators.required, Validators.min(1)]),\n gauge: this.formBuilder.control(null, Validators.required),\n stitchRateInStitchesPerCm: this.formBuilder.control(null, [Validators.required, Validators.min(1)]),\n primaryBacking: this.formBuilder.control(null, Validators.required)\n });\n\n const optionalSettingsForm = this.formBuilder.group({\n pileHeightInCm: this.formBuilder.control(null, Validators.min(1)),\n color: this.formBuilder.control(null),\n blend: this.formBuilder.control(null),\n standardSpeed: this.formBuilder.control(null, Validators.min(1)),\n standardEfficiency: this.formBuilder.control(null, Validators.min(1)),\n weightInGramsPerMeter: this.formBuilder.control(null, Validators.min(1)),\n description: this.formBuilder.control(null),\n tuftingNotes: this.formBuilder.control(null),\n backingNotes: this.formBuilder.control(null)\n });\n\n this.addTuftProductForm = this.formBuilder.group({\n generalForm,\n optionalSettingsForm\n });\n\n this.setTuftProductNameAsyncValidator();\n this.menuItems[0].form = this.generalForm;\n this.unsavedChangesNotifierService.notifyChanges(this.generalForm, this.unSubscribeOnViewDestroy);\n\n this.menuItems[1].form = this.optionalSettingsForm;\n this.unsavedChangesNotifierService.notifyChanges(this.optionalSettingsForm, this.unSubscribeOnViewDestroy);\n }\n\n private setValues(tuftProductName: string = null): void {\n this.resetGeneralFormValues(tuftProductName);\n this.resetOptionalSettingsFormValues();\n this.setTuftProductNameAsyncValidator(tuftProductName);\n }\n\n private resetGeneralFormValues(tuftProductName: string): void {\n this.generalForm.reset({\n name: tuftProductName,\n version: this.tuftProductToSave.version,\n widthInCm: this.tuftProductToSave.widthInCm,\n gauge: this.tuftProductToSave.gauge,\n stitchRateInStitchesPerCm: this.tuftProductToSave.stitchRateInStitchesPerCm,\n primaryBacking: this.tuftProductToSave.primaryBacking\n });\n }\n\n private resetOptionalSettingsFormValues(): void {\n this.optionalSettingsForm.reset({\n pileHeightInCm: this.tuftProductToSave.pileHeightInCm,\n color: this.tuftProductToSave.color,\n blend: this.tuftProductToSave.blend,\n standardSpeed: this.tuftProductToSave.standardSpeed,\n standardEfficiency: this.tuftProductToSave.standardEfficiency,\n weightInGramsPerMeter: this.tuftProductToSave.weightInGramsPerMeter,\n description: this.tuftProductToSave.description,\n tuftingNotes: this.tuftProductToSave.tuftingNotes,\n backingNotes: this.tuftProductToSave.backingNotes\n });\n }\n\n private getCurrentTuftProduct(): TuftProduct {\n if (AssertionUtils.isNullOrUndefined(this.generalForm)) {\n return null;\n }\n\n const name: string = this.generalForm.getRawValue().name;\n const version: number = this.generalForm.value.version;\n const widthInCm: number = this.generalForm.value.widthInCm;\n const gauge: Gauge = this.generalForm.getRawValue().gauge;\n const stitchRateInStitchesPerCm: number = this.generalForm.value.stitchRateInStitchesPerCm;\n const primaryBacking: WeaveProduct = this.generalForm.value.primaryBacking;\n const pileHeightInCm: number = this.optionalSettingsForm.value.pileHeightInCm;\n const color: string = this.optionalSettingsForm.value.color;\n const blend: string = this.optionalSettingsForm.value.blend;\n const standardSpeed: number = this.optionalSettingsForm.value.standardSpeed;\n const standardEfficiency: number = this.optionalSettingsForm.value.standardEfficiency;\n const weightInGramsPerMeter: number = this.optionalSettingsForm.value.weightInGramsPerMeter;\n const description: string = this.optionalSettingsForm.value.description;\n const tuftingNotes: string = this.optionalSettingsForm.value.tuftingNotes;\n const backingNotes: string = this.optionalSettingsForm.value.backingNotes;\n\n const used = this.isEditingTuftProduct() && this.tuftProductToSave.used;\n\n return new TuftProduct(\n this.isEditingTuftProduct() ? this.tuftProductToSave.id : null,\n name,\n version,\n description,\n color,\n blend,\n widthInCm,\n gauge,\n stitchRateInStitchesPerCm,\n pileHeightInCm,\n weightInGramsPerMeter,\n primaryBacking,\n standardSpeed,\n standardEfficiency,\n tuftingNotes,\n backingNotes,\n used\n );\n }\n\n private showErrorDialogForBackendError(translationKey: string, message: string): void {\n this.dialogBuilderFactoryService.getBuilder().openAlertDialog({\n titleText: this.translate.instant(translationKey, {\n object: this.translate.instant(this.translationKeyForTuftProducts, {\n count: 1\n })\n }),\n messageText: message,\n type: DialogType.INFORMATION\n });\n }\n\n private setTuftProductNameAsyncValidator(name: string = null): void {\n this.generalForm.controls.name.setAsyncValidators([AsyncUniqueValidator.createValidator(this.tuftProductsService, name)]);\n }\n\n private isDuplicatingTuftProduct(): boolean {\n return this.activatedRoute.snapshot.routeConfig.path === this.DUPLICATE_TUFT_PRODUCT_PAGE_URL;\n }\n\n private disableForm(): void {\n if (!this.hasEditPermission() || this.tuftProductIsLocked) {\n this.generalForm.disable();\n this.optionalSettingsForm.disable();\n }\n\n if (this.isEditingTuftProduct()) {\n this.generalForm.controls.name.disable();\n }\n }\n\n private setFormValues(): void {\n const emptyTuftProductState = {tuftProduct: null} as NavigationTuftProductData;\n const tuftProductState = this.navigationHelperService.getPartialState(Object.keys(emptyTuftProductState));\n\n if (!AssertionUtils.isNullOrUndefined(tuftProductState) && !ObjectUtils.isDeepEqual(tuftProductState, emptyTuftProductState)) {\n this.tuftProductToSave = tuftProductState.tuftProduct;\n this.setTuftProduct();\n } else if (!!this.urlParams.id) {\n this.tuftProductsService\n .getById(parseInt(this.urlParams.id, 10))\n .pipe(takeUntil(this.unSubscribeOnViewDestroy))\n .subscribe({\n next: (tuftProduct: TuftProduct) => {\n this.tuftProductToSave = tuftProduct;\n this.setTuftProduct();\n },\n error: ErrorHandlers.navigateToOverviewAndThrowError(this.router, this.TUFT_PRODUCT_OVERVIEW_PAGE_URL, this.navigationHelperService)\n });\n } else {\n this.setValues();\n this.isLoadingTuftProduct = false;\n }\n }\n\n private setTuftProduct(): void {\n this.isLoadingTuftProduct = false;\n this.tuftProductIsLocked = this.isEditingTuftProduct() && this.tuftProductToSave.used;\n this.setValues(this.isDuplicatingTuftProduct() ? null : this.tuftProductToSave.name);\n this.disableForm();\n }\n\n private setFormFieldsForMachine(): void {\n const emptyMachineOverviewState = {equipmentId: null} as NavigationMachineOverviewData;\n const machineOverviewState = this.navigationHelperService.getPartialState(Object.keys(emptyMachineOverviewState), true);\n\n if (!AssertionUtils.isNullOrUndefined(machineOverviewState) && !ObjectUtils.isDeepEqual(machineOverviewState, emptyMachineOverviewState)) {\n this.machines\n .getById(machineOverviewState.equipmentId)\n .pipe(takeUntil(this.unSubscribeOnViewDestroy))\n .subscribe((tuftMachine: TuftMachine) => {\n this.maxWidthInCm = tuftMachine.tuftingMachineType.width;\n this.generalForm.controls.widthInCm.addValidators(Validators.max(this.maxWidthInCm));\n this.generalForm.controls.widthInCm.updateValueAndValidity();\n this.generalForm.controls.gauge.setValue(tuftMachine.tuftingMachineType.gauge);\n this.generalForm.controls.gauge.disable();\n });\n }\n }\n\n private setPrimaryBacking(id: number): void {\n this.weaveProducts\n .getAll()\n .pipe(takeUntil(this.unSubscribeOnViewDestroy))\n .subscribe((weaveProducts: OverviewListWeaveProduct[]) =>\n this.generalForm.controls.primaryBacking.setValue(WeaveProduct.fromOverviewListWeaveProduct(weaveProducts.find((weaveProduct: OverviewListWeaveProduct) => weaveProduct.id === id)))\n );\n }\n\n private subscribeToSaveEventEmitter(): void {\n this.unsavedChangesNotifierService\n .getSaveEventEmitter()\n .pipe(takeUntil(this.unSubscribeOnViewDestroy))\n .subscribe((res: {action: boolean; navigateToSelectedRoute: string}) => {\n if (res) {\n this.saveTuftProduct(SaveType.SAVE_AND_CLOSE, res.navigateToSelectedRoute);\n }\n });\n }\n}\n","import {ModuleWithProviders} from '@angular/core';\nimport {RouterModule, Routes} from '@angular/router';\nimport {AuthorizedRouteFactory} from '@application/helper/routing/authorized-route-factory';\nimport {RouteUtils} from '@application/helper/routing/route-utils';\nimport {canActivatePermissionGuard} from '@application/security/can-activate-permission.guard';\nimport {canDeactivateRouteWithUnsavedChanges} from '@application/security/can-deactivate-unsaved-changes-notifier.guard';\nimport {AddTuftProductPageComponent} from './add/add-tuft-product-page.component';\nimport {TuftProductOverviewPageComponent} from './overview/tuft-product-overview-page.component';\n\nexport const tuftProductRoutes: Routes = [\n {path: '', component: TuftProductOverviewPageComponent},\n AuthorizedRouteFactory.createComponentRoute(RouteUtils.paths.texStyle.tuftProduct.addTuftProduct, AddTuftProductPageComponent, {reuse: true}, null, [], [canDeactivateRouteWithUnsavedChanges]),\n {\n path: RouteUtils.paths.texStyle.tuftProduct.duplicateTuftProduct.path,\n component: AddTuftProductPageComponent,\n canActivate: [canActivatePermissionGuard],\n canDeactivate: [canDeactivateRouteWithUnsavedChanges],\n data: {\n requiredPermission: RouteUtils.paths.texStyle.tuftProduct.duplicateTuftProduct.requiredPermission\n }\n },\n {\n path: RouteUtils.paths.texStyle.tuftProduct.editTuftProduct.path,\n component: AddTuftProductPageComponent,\n canActivate: [canActivatePermissionGuard],\n canDeactivate: [canDeactivateRouteWithUnsavedChanges],\n data: {\n requiredPermission: RouteUtils.paths.texStyle.tuftProduct.editTuftProduct.requiredPermission\n }\n }\n];\n\nexport const tuftProductRouting: ModuleWithProviders = RouterModule.forChild(tuftProductRoutes);\n","import {Component, OnInit} from '@angular/core';\nimport {GridIdentifier} from '@application/grids/grid-identifier.enum';\nimport {LastModifiedCardUtils} from '@application/helper/last-modified-card-utils';\nimport {HttpTuftProductsService} from '@infrastructure/http/tuft-product/http-tuft-products.service';\nimport {GetAllTuftProductsParameters} from '@infrastructure/http/tuft-product/tuft-products.interface';\nimport {AgGridUtils, BaseComponent, ColDefBuilderFactoryService, FractionUtils, LinkIconRendererComponent, StringUtils, Unit} from '@vdw/angular-component-library';\nimport {ColDef, GridApi, ICellRendererParams, ITooltipParams, ValueGetterParams} from 'ag-grid-community';\nimport {L10nIntlService} from 'angular-l10n';\nimport {takeUntil} from 'rxjs';\nimport {TextileDataType} from '../../textile-data-type.enum';\nimport {OverviewListTuftProduct} from './overview-list-tuft-product';\n\n@Component({\n templateUrl: './tuft-product-overview-page.component.html'\n})\nexport class TuftProductOverviewPageComponent extends BaseComponent implements OnInit {\n public listOfTuftProducts: OverviewListTuftProduct[];\n public readonly textileDataType = TextileDataType;\n public readonly GRID_IDENTIFIER = GridIdentifier.TUFT_PRODUCT_OVERVIEW;\n\n private readonly pageUrls = LastModifiedCardUtils.getPageUrls('tuftProduct');\n\n public constructor(\n public readonly tuftProductsService: HttpTuftProductsService,\n private readonly l10nIntlService: L10nIntlService,\n private readonly colDefBuilderFactoryService: ColDefBuilderFactoryService\n ) {\n super();\n }\n\n public ngOnInit(): void {\n this.getTuftProducts();\n }\n\n public getColumnDefsForListOfTuftProducts(): ColDef[] {\n return [\n this.colDefBuilderFactoryService\n .getBuilder()\n .withColIdAndField('name', true)\n .withHeaderName('GENERAL.NAME')\n .withComparator(StringUtils.stringComparator)\n .withCellRenderer(LinkIconRendererComponent, (params: ICellRendererParams) => {\n return {\n params,\n editPageUrl: this.pageUrls.edit\n };\n })\n .build(),\n this.colDefBuilderFactoryService.getBuilder().withColIdAndField('description', true).withHeaderName('GENERAL.DESCRIPTION').build(),\n this.colDefBuilderFactoryService\n .getBuilder()\n .withColIdAndField('version', true)\n .withHeaderName('GENERAL.VERSION')\n .withCellRenderer((params: ICellRendererParams) => params.getValue())\n .withCellClass('right')\n .build(),\n this.colDefBuilderFactoryService\n .getBuilder()\n .withColIdAndField('widthInCm')\n .withHeaderName('GENERAL.DIMENSIONS.WIDTH')\n .withCellRenderer((params: ICellRendererParams) => this.buildAgGridCellTextWithUnit(params.getValue(), Unit.CENTIMETER))\n .withTooltipValueGetter((params: ITooltipParams) => AgGridUtils.buildAgGridCellTooltipWithUnit(params.value, Unit.CENTIMETER, this.l10nIntlService))\n .withCellClass('right')\n .build(),\n this.colDefBuilderFactoryService\n .getBuilder()\n .withColIdAndField('blend', true)\n .withHeaderName('TEXTILE_DATA.TUFT_PRODUCT.BLEND')\n .withCellRenderer((params: ICellRendererParams) => params.getValue())\n .withCellClass('left')\n .withComparator(StringUtils.stringComparator)\n .build(),\n this.colDefBuilderFactoryService\n .getBuilder()\n .withColIdAndField('color', true)\n .withHeaderName('TEXTILE_DATA.TUFT_PRODUCT.COLOR')\n .withCellRenderer((params: ICellRendererParams) => params.getValue())\n .withCellClass('left')\n .withComparator(StringUtils.stringComparator)\n .build(),\n this.colDefBuilderFactoryService\n .getBuilder()\n .withColIdAndField('gauge')\n .withHeaderName('GENERAL.DIMENSIONS.GAUGE')\n .withValueGetter((params: ValueGetterParams) => params.data.gauge.fractionalValueAsString)\n .withCellRenderer((params: ICellRendererParams) => this.buildAgGridCellTextWithUnit(params.getValue(), Unit.INCH))\n .withTooltipValueGetter((params: ITooltipParams) => AgGridUtils.buildAgGridCellTooltipWithUnit(params.value, Unit.INCH, this.l10nIntlService))\n .withCellClass('right')\n .withComparator(FractionUtils.fractionComparator)\n .build(),\n this.colDefBuilderFactoryService\n .getBuilder()\n .withColIdAndField('stitchRateInStitchesPerCm')\n .withHeaderName('TEXTILE_DATA.TUFT_PRODUCT.STITCH_RATE')\n .withCellRenderer((params: ICellRendererParams) => this.buildAgGridCellTextWithUnit(params.getValue(), Unit.PER_CENTIMETER))\n .withTooltipValueGetter((params: ITooltipParams) => AgGridUtils.buildAgGridCellTooltipWithUnit(params.value, Unit.PER_CENTIMETER, this.l10nIntlService))\n .withCellClass('right')\n .build(),\n this.colDefBuilderFactoryService\n .getBuilder()\n .withColIdAndField('pileHeightInCm')\n .withHeaderName('TEXTILE_DATA.TUFT_PRODUCT.PILE_HEIGHT')\n .withCellRenderer((params: ICellRendererParams) => this.buildAgGridCellTextWithUnit(params.getValue(), Unit.CENTIMETER))\n .withTooltipValueGetter((params: ITooltipParams) => AgGridUtils.buildAgGridCellTooltipWithUnit(params.value, Unit.CENTIMETER, this.l10nIntlService))\n .withCellClass('right')\n .withHide(true)\n .build(),\n this.colDefBuilderFactoryService\n .getBuilder()\n .withColIdAndField('description', true)\n .withHeaderName('TEXTILE_DATA.TUFT_PRODUCT.DESCRIPTION')\n .withCellRenderer((params: ICellRendererParams) => params.getValue())\n .withCellClass('right')\n .withComparator(StringUtils.stringComparator)\n .withHide(true)\n .build(),\n this.colDefBuilderFactoryService\n .getBuilder()\n .withColIdAndField('weightInGramsPerMeter')\n .withHeaderName('GENERAL.WEIGHT')\n .withCellRenderer((params: ICellRendererParams) => this.buildAgGridCellTextWithUnit(params.getValue(), Unit.GRAMS_PER_METER))\n .withTooltipValueGetter((params: ITooltipParams) => AgGridUtils.buildAgGridCellTooltipWithUnit(params.value, Unit.GRAMS_PER_METER, this.l10nIntlService))\n .withCellClass('right')\n .withHide(true)\n .build(),\n this.colDefBuilderFactoryService\n .getBuilder()\n .withColIdAndField('primaryBacking')\n .withHeaderName('TEXTILE_DATA.TUFT_PRODUCT.PRIMARY_BACKING')\n .withTooltipValueGetter((params: ITooltipParams) => params.value.name)\n .withValueGetter((params: ValueGetterParams) => `${params.data.primaryBacking.name}`, true)\n .withCellClass('right')\n .withComparator(StringUtils.stringComparator)\n .withHide(true)\n .build(),\n this.colDefBuilderFactoryService\n .getBuilder()\n .withColIdAndField('standardSpeed')\n .withHeaderName('TEXTILE_DATA.TUFT_PRODUCT.STANDARD_SPEED')\n .withCellRenderer((params: ICellRendererParams) => this.buildAgGridCellTextWithUnit(params.getValue(), Unit.ROTATIONS_PER_MINUTE))\n .withTooltipValueGetter((params: ITooltipParams) => AgGridUtils.buildAgGridCellTooltipWithUnit(params.value, Unit.ROTATIONS_PER_MINUTE, this.l10nIntlService))\n .withCellClass('right')\n .withHide(true)\n .build(),\n this.colDefBuilderFactoryService\n .getBuilder()\n .withColIdAndField('standardEfficiency')\n .withHeaderName('TEXTILE_DATA.TUFT_PRODUCT.STANDARD_EFFICIENCY')\n .withCellRenderer((params: ICellRendererParams) => this.buildAgGridCellTextWithUnit(params.getValue(), Unit.PERCENTAGE))\n .withTooltipValueGetter((params: ITooltipParams) => AgGridUtils.buildAgGridCellTooltipWithUnit(params.value, Unit.PERCENTAGE, this.l10nIntlService))\n .withCellClass('right')\n .withHide(true)\n .build(),\n this.colDefBuilderFactoryService\n .getBuilder()\n .withColIdAndField('tuftingNotes', true)\n .withHeaderName('TEXTILE_DATA.TUFT_PRODUCT.TUFTING_NOTES')\n .withCellRenderer((params: ICellRendererParams) => params.getValue())\n .withCellClass('right')\n .withComparator(StringUtils.stringComparator)\n .withHide(true)\n .build(),\n this.colDefBuilderFactoryService\n .getBuilder()\n .withColIdAndField('backingNotes', true)\n .withHeaderName('TEXTILE_DATA.TUFT_PRODUCT.BACKING_NOTES')\n .withCellRenderer((params: ICellRendererParams) => params.getValue())\n .withCellClass('right')\n .withComparator(StringUtils.stringComparator)\n .withHide(true)\n .build()\n ];\n }\n\n public exportGridForTuftProducts(gridApi: GridApi): void {\n gridApi.exportDataAsCsv({\n processCellCallback: (params: any) => {\n if (params.column.colId === 'gauge') {\n return `${params.value.fractionalValueAsString} inch`;\n } else if (params.column.colId === 'stitchRateInStitchesPerCm') {\n return `${params.value} /cm`;\n } else if (params.column.colId === 'widthInCm') {\n return `${params.value} cm`;\n } else {\n return params.value;\n }\n }\n });\n }\n\n public showOnlyLatestVersionChanged(showOnlyLatestVersion: boolean): void {\n this.getTuftProducts(showOnlyLatestVersion);\n }\n\n private getTuftProducts(showOnlyLatestVersion: boolean = true): void {\n const parameters: Partial = {showOnlyLatestVersion};\n\n this.tuftProductsService\n .getAll(parameters)\n .pipe(takeUntil(this.unSubscribeOnViewDestroy))\n .subscribe((tuftProducts: OverviewListTuftProduct[]) => (this.listOfTuftProducts = tuftProducts));\n }\n\n private buildAgGridCellTextWithUnit(value: number | string, defaultUnit: Unit): string {\n return AgGridUtils.buildAgGridCellTextWithUnit(value, defaultUnit, this.l10nIntlService);\n }\n}\n","\n","import {NgModule} from '@angular/core';\nimport {UnsavedChangesNotifierService} from '@application/helper/unsaved-changes-notifier/unsaved-changes-notifier.service';\nimport {TextileDataSharedModule} from '@presentation/pages/textile-data/textile-data-shared.module';\nimport {SharedModule} from '@shared/shared.module';\nimport {CanShowErrorForFormControlModule} from '@vdw/angular-component-library';\nimport {AgGridModule} from 'ag-grid-angular';\nimport {AddTuftProductPageComponent} from './add/add-tuft-product-page.component';\nimport {TuftProductOverviewPageComponent} from './overview/tuft-product-overview-page.component';\nimport {tuftProductRouting} from './tuft-product.routing';\n\n@NgModule({\n imports: [TextileDataSharedModule, SharedModule, AgGridModule, tuftProductRouting, CanShowErrorForFormControlModule],\n declarations: [TuftProductOverviewPageComponent, AddTuftProductPageComponent],\n providers: [UnsavedChangesNotifierService]\n})\nexport class TuftProductModule {}\n"],"x_google_ignoreList":[]}