aril 1.2.13 → 1.2.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -36,6 +36,7 @@ class AssetPickerComponent extends BaseInputComponent {
36
36
  this.isUpdateMode = signal(false);
37
37
  this.cacheSearchRequest$ = new Subject();
38
38
  this.destroyRef = inject(DestroyRef);
39
+ this.updateModeQuery = null;
39
40
  this.selectedDefinitionEvent = new EventEmitter();
40
41
  effect(() => {
41
42
  this.selectionGroupService.selectionGroups();
@@ -57,6 +58,7 @@ class AssetPickerComponent extends BaseInputComponent {
57
58
  const searchQuery = typeof currentValue === 'string' ? currentValue : currentValue?.text;
58
59
  if (searchQuery) {
59
60
  this.isUpdateMode.set(true);
61
+ this.updateModeQuery = searchQuery;
60
62
  this.search({ query: searchQuery }, true);
61
63
  }
62
64
  }
@@ -69,6 +71,7 @@ class AssetPickerComponent extends BaseInputComponent {
69
71
  .subscribe(value => {
70
72
  if (!this.isUpdateMode()) {
71
73
  this.isUpdateMode.set(true);
74
+ this.updateModeQuery = value.text;
72
75
  this.search({ query: value.text }, true);
73
76
  }
74
77
  });
@@ -90,10 +93,16 @@ class AssetPickerComponent extends BaseInputComponent {
90
93
  }))
91
94
  };
92
95
  newFilteredGroupSuggestions.push(groupData);
93
- // If the string value is patched in update mode and there is group data, select the first item
94
- if (this.isUpdateMode() && groupData.items.length === 1 && !this.multiple()) {
95
- this.ngControl?.control?.setValue(groupData.items[0]);
96
- this.isUpdateMode.set(false);
96
+ // If the string value is patched in update mode and there is group data, select the matching item
97
+ if (this.isUpdateMode() && groupData.items.length > 0 && !this.multiple()) {
98
+ const matchedItem = groupData.items.length === 1
99
+ ? groupData.items[0]
100
+ : groupData.items.find((item) => item.assetNumber === this.updateModeQuery);
101
+ if (matchedItem) {
102
+ this.ngControl?.control?.setValue(matchedItem);
103
+ this.isUpdateMode.set(false);
104
+ this.updateModeQuery = null;
105
+ }
97
106
  }
98
107
  });
99
108
  this.filteredSelectionItems = newFilteredGroupSuggestions;
@@ -1 +1 @@
1
- {"version":3,"file":"aril-ui-business-assetPicker.mjs","sources":["../../projects/aril/ui-business/assetPicker/src/asset-picker.component.ts","../../projects/aril/ui-business/assetPicker/src/asset-picker.component.html","../../projects/aril/ui-business/assetPicker/aril-ui-business-assetPicker.ts"],"sourcesContent":["import { HttpClient } from '@angular/common/http';\r\nimport {\r\n\tAfterViewInit,\r\n\tComponent,\r\n\tDestroyRef,\r\n\tEventEmitter,\r\n\tOnInit,\r\n\tOutput,\r\n\tViewChild,\r\n\teffect,\r\n\tinject,\r\n\tinput,\r\n\tsignal\r\n} from '@angular/core';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\n\r\nimport { AutoComplete, AutoCompleteModule } from 'primeng/autocomplete';\r\nimport { ObjectUtils } from 'primeng/utils';\r\n\r\nimport { TranslocoService } from '@ngneat/transloco';\r\nimport { Subject, filter, switchMap } from 'rxjs';\r\n\r\nimport { API_CONFIGS } from 'aril/boot/config/api';\r\nimport { Apps } from 'aril/boot/config/apps';\r\nimport { SelectionGroupService } from 'aril/theme/layout';\r\nimport { BaseInputComponent, ValueAccessorDirective } from 'aril/ui/lib';\r\n\r\nimport {\r\n\tAssetAggregate,\r\n\tAttributeElement,\r\n\tCacheSearchRequestDTO,\r\n\tDefaultSearchAggregateAssetAggregate,\r\n\tSuggestionsDTO,\r\n\tSuggestionsGroupDTO\r\n} from './interface';\r\n\r\ntype ValueTypes = 'text' | 'number';\r\n@Component({\r\n\tstandalone: true,\r\n\tselector: 'aril-asset-picker[ngModel], aril-asset-picker[formControl], aril-asset-picker[formControlName]',\r\n\ttemplateUrl: './asset-picker.component.html',\r\n\tstyles: [\r\n\t\t`\r\n\t\t\t::ng-deep .p-autocomplete-multiple-container {\r\n\t\t\t\tflex-wrap: wrap;\r\n\t\t\t\tmax-height: 50px;\r\n\t\t\t\toverflow-y: auto;\r\n\t\t\t\talign-items: center;\r\n\t\t\t}\r\n\r\n\t\t\t::ng-deep .p-autocomplete-token {\r\n\t\t\t\tmargin: 0;\r\n\t\t\t\tflex-shrink: 0;\r\n\t\t\t}\r\n\r\n\t\t\t::ng-deep .p-autocomplete-input-token {\r\n\t\t\t\tflex: 1;\r\n\t\t\t\tmin-width: 150px;\r\n\t\t\t}\r\n\t\t`\r\n\t],\r\n\timports: [ReactiveFormsModule, AutoCompleteModule],\r\n\thostDirectives: [ValueAccessorDirective]\r\n})\r\nexport class AssetPickerComponent extends BaseInputComponent implements AfterViewInit, OnInit {\r\n\t@ViewChild(AutoComplete) autoCompleteRef!: AutoComplete;\r\n\tassetCode = input<string | string[] | null>(null);\r\n\ttype = input<ValueTypes | null>(null);\r\n\r\n\tplaceholder = input<string>('Arama...');\r\n\tforceSelection = input<boolean>(false);\r\n\tmultiple = input<boolean>(false);\r\n\tshowClear = input<boolean>(false);\r\n\toptionValue = input<keyof SuggestionsDTO | null>(null);\r\n\tappendTo = input<string | HTMLElement | null>('body');\r\n\tmql = input<string>();\r\n\tshowOnlyAssetNumber = input<boolean>(false);\r\n\tenableAutoSearchOnInit = input<boolean>(false);\r\n\tisUpdateMode = signal<boolean>(false);\r\n\r\n\tfilteredSelectionItems!: SuggestionsGroupDTO[];\r\n\tselectionDefinitions!: DefaultSearchAggregateAssetAggregate;\r\n\tcacheSearchRequest$ = new Subject<CacheSearchRequestDTO>();\r\n\tdestroyRef = inject(DestroyRef);\r\n\t@Output() selectedDefinitionEvent: EventEmitter<AssetAggregate> = new EventEmitter<AssetAggregate>();\r\n\r\n\tconstructor(\r\n\t\tprivate readonly http: HttpClient,\r\n\t\tpublic translocoService: TranslocoService,\r\n\t\tprivate readonly selectionGroupService: SelectionGroupService\r\n\t) {\r\n\t\tsuper();\r\n\r\n\t\teffect(() => {\r\n\t\t\tthis.selectionGroupService.selectionGroups();\r\n\t\t\tif (this.selectionDefinitions) {\r\n\t\t\t\tthis.refreshFilteredSelectionItems();\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t}\r\n\r\n\tngOnInit() {\r\n\t\tthis.cacheSearchRequest$\r\n\t\t\t.pipe(\r\n\t\t\t\tswitchMap((payload) =>\r\n\t\t\t\t\tthis.http.post<any>(API_CONFIGS.getExternalAppEndpoint(Apps.MNG) + '/master-data/cache-search', payload)\r\n\t\t\t\t),\r\n\t\t\t\ttakeUntilDestroyed(this.destroyRef)\r\n\t\t\t)\r\n\t\t\t.subscribe((selectionGroup) => {\r\n\t\t\t\tthis.selectionDefinitions = selectionGroup;\r\n\t\t\t\tthis.refreshFilteredSelectionItems();\r\n\t\t\t});\r\n\r\n\t\t// If the form control's value is a string, perform a cache search to retrieve the ID.\r\n\t\tconst currentValue = this.ngControl?.control?.value;\r\n\t\tif (this.enableAutoSearchOnInit() || (currentValue && typeof currentValue === 'string')) {\r\n\t\t\t\tconst searchQuery = typeof currentValue === 'string' ? currentValue : currentValue?.text;\r\n\t\t\t\tif (searchQuery) {\r\n\t\t\t\t\tthis.isUpdateMode.set(true);\r\n\t\t\t\t\tthis.search({ query: searchQuery }, true);\r\n\t\t\t\t}\r\n\t\t}\r\n\r\n\t\t// React to programmatic patches (createFormDataObject / patchAssetResponseToForm)\r\n\t\tthis.ngControl?.control?.valueChanges\r\n\t\t\t.pipe(\r\n\t\t\t\tfilter(value =>\r\n\t\t\t\t\tvalue &&\r\n\t\t\t\t\ttypeof value === 'object' &&\r\n\t\t\t\t\t'text' in value &&\r\n\t\t\t\t\t!('attributes' in value)\r\n\t\t\t\t),\r\n\t\t\t\ttakeUntilDestroyed(this.destroyRef)\r\n\t\t\t)\r\n\t\t\t.subscribe(value => {\r\n\t\t\t\tif (!this.isUpdateMode()) {\r\n\t\t\t\t\tthis.isUpdateMode.set(true);\r\n\t\t\t\t\tthis.search({ query: value.text }, true);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t}\r\n\r\n\tprivate refreshFilteredSelectionItems(): void {\r\n\t\tif (!this.selectionDefinitions) return;\r\n\r\n\t\tconst newFilteredGroupSuggestions: SuggestionsGroupDTO[] = [];\r\n\r\n\t\tObject.keys(this.selectionDefinitions).forEach((key: string) => {\r\n\t\t\tconst groupData: SuggestionsGroupDTO = {\r\n\t\t\t\ttext: this.selectionDefinitions[key]?.result[0]?.assets[0]?.assetDefinitionName,\r\n\t\t\t\tkey: key,\r\n\t\t\t\titems: this.selectionDefinitions[key].result.map(\r\n\t\t\t\t\t(item: AssetAggregate) =>\r\n\t\t\t\t\t\t({\r\n\t\t\t\t\t\t\tkey: item.id,\r\n\t\t\t\t\t\t\ttext: this.getAttiributesValueDescr(item.attributes),\r\n\t\t\t\t\t\t\tassetNumber: this.getAssetNumberValue(item.attributes),\r\n\t\t\t\t\t\t\tattributes: item.attributes,\r\n\t\t\t\t\t\t\tassetDefinitionCode: item.assetDefinitionCode\r\n\t\t\t\t\t\t}) as SuggestionsDTO\r\n\t\t\t\t)\r\n\t\t\t};\r\n\t\t\tnewFilteredGroupSuggestions.push(groupData);\r\n\r\n\t\t\t// If the string value is patched in update mode and there is group data, select the first item\r\n\t\t\tif (this.isUpdateMode() && groupData.items.length === 1 && !this.multiple()) {\r\n\t\t\t\tthis.ngControl?.control?.setValue(groupData.items[0]);\r\n\t\t\t\tthis.isUpdateMode.set(false);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tthis.filteredSelectionItems = newFilteredGroupSuggestions;\r\n\t}\r\n\r\n\tngAfterViewInit(): void {\r\n\t\tthis.autoCompleteRef.getOptionValue = this.getOptionValue.bind(this);\r\n\t}\r\n\r\n\tgetOptionValue(option: any) {\r\n\t\tif (!this.optionValue()) {\r\n\t\t\treturn option;\r\n\t\t}\r\n\r\n\t\tif (typeof option === 'object') {\r\n\t\t\treturn ObjectUtils.resolveFieldData(option, this.optionValue());\r\n\t\t}\r\n\r\n\t\treturn option;\r\n\t}\r\n\r\n\tonNgModelChange(value: string) {\r\n\t\tconst validatedValue = this.validateInput(value);\r\n\t\tthis.ngControl.viewToModelUpdate(validatedValue);\r\n\t}\r\n\r\n\tvalidateInput(value: string) {\r\n\t\tif (this.type() === 'number') {\r\n\t\t\treturn value.replace(/\\D/g, '');\r\n\t\t} else if (this.type() === 'text') {\r\n\t\t\treturn value.replace(/[^a-zA-ZğüşıöçĞÜŞİÖÇ\\s]/g, '');\r\n\t\t}\r\n\t\treturn value;\r\n\t}\r\n\r\n\tsearch(event: any, skipMql = false) {\r\n\t\tif (!event?.query || typeof event.query !== 'string') return;\r\n\r\n\t\tconst query = this.validateInput(event.query);\r\n\t\tif (!query?.trim()) return;\r\n\r\n\t\tconst payload: CacheSearchRequestDTO = {\r\n\t\t\tsearchText: query?.trim(),\r\n\t\t\tassetDefinitionCodes: Array.isArray(this.assetCode()) ? this.assetCode() : ([this.assetCode()] as any),\r\n\t\t\tpager: {\r\n\t\t\t\tpageSize: 5,\r\n\t\t\t\tpageNumber: 1\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\tif (!skipMql && this.mql()) payload.mql = this.mql();\r\n\r\n\t\tthis.cacheSearchRequest$.next(payload);\r\n\t}\r\n\r\n\tgetAttiributesValueDescr(attributes: AttributeElement[]): string {\r\n\t\tconst excludedAttributes = ['AssetId', 'AssetDefinitionName'];\r\n\t\treturn attributes\r\n\t\t\t?.filter((attr) => !excludedAttributes.includes(attr.attribute?.attributeCode))\r\n\t\t\t?.map((attr) => {\r\n\t\t\t\t// Handle SELECT type attributes using SelectionGroupService\r\n\t\t\t\tif (attr.attribute?.attributeType === 'SELECT' && attr.attribute?.selectOption) {\r\n\t\t\t\t\treturn this.getSelectionDisplay(attr.attribute.selectOption, attr.value as string);\r\n\t\t\t\t}\r\n\t\t\t\tconst value = attr.valueDesc ? attr.valueDesc : attr.value;\r\n\t\t\t\treturn typeof value === 'object' ? JSON.stringify(value) : String(value);\r\n\t\t\t})\r\n\t\t\t.join(' - ');\r\n\t}\r\n\tprivate getAssetNumberValue(attributes: AttributeElement[]): string {\r\n\t\tconst assetNumberAttr = attributes?.find((attr) => attr.attribute?.attributeCode === 'AssetNumber');\r\n\t\tif (!assetNumberAttr) return '';\r\n\t\treturn String(assetNumberAttr.valueDesc || assetNumberAttr.value || '');\r\n\t}\r\n\tprivate getSelectionDisplay(groupName: string, value: string): string {\r\n\t\tconst key = `${groupName}~ALL`;\r\n\t\tconst selectionGroup = this.selectionGroupService.selectionGroups()[key];\r\n\r\n\t\tif (!selectionGroup) {\r\n\t\t\tthis.selectionGroupService.fetchEnum(groupName, 'ALL');\r\n\t\t\treturn value;\r\n\t\t}\r\n\r\n\t\tconst currentLang = this.translocoService.getActiveLang();\r\n\t\tconst selectionItem = selectionGroup.selectionItems?.find((t) => t.selectionKey === value) as {\r\n\t\t\tselectionMultiLanguageDisplays?: { [lang: string]: string };\r\n\t\t\tselectionDisplay?: string;\r\n\t\t};\r\n\r\n\t\tif (!selectionItem) return value;\r\n\r\n\t\treturn selectionItem.selectionMultiLanguageDisplays?.[currentLang] ?? selectionItem.selectionDisplay ?? value;\r\n\t}\r\n\r\n\ttriggerSelectedEvents(event: any) {\r\n\t\tconst selectedItems: AssetAggregate[] = Object.keys(this.selectionDefinitions).map((key: string) => {\r\n\t\t\treturn this.selectionDefinitions[key].result.find((item: AssetAggregate) => item.id === event?.value?.key);\r\n\t\t}) as AssetAggregate[];\r\n\r\n\t\tconst selectedItem = selectedItems[0];\r\n\r\n\t\tconst selectedEvent = {\r\n\t\t\t...selectedItem,\r\n\t\t\tkey: selectedItem?.id,\r\n\t\t\ttext: selectedItem?.assetDefinitionName,\r\n\t\t\tattributes: selectedItem?.attributes,\r\n\t\t\tassetDefinitionCode: selectedItem?.assetDefinitionCode\r\n\t\t};\r\n\r\n\t\tthis.selectedDefinitionEvent.emit(selectedEvent);\r\n\t}\r\n}\r\n","<p-autoComplete\r\n\toptionLabel=\"text\"\r\n\t[optionValue]=\"optionValue()!\"\r\n\t[placeholder]=\"placeholder()\"\r\n\t[multiple]=\"multiple()\"\r\n\t[group]=\"true\"\r\n\t[forceSelection]=\"forceSelection()\"\r\n\t[delay]=\"700\"\r\n\t[minLength]=\"3\"\r\n\t[suggestions]=\"filteredSelectionItems\"\r\n\t(completeMethod)=\"search($event)\"\r\n\t[formControl]=\"ngControl.control\"\r\n\t[autoHighlight]=\"true\"\r\n\t[type]=\"type()!\"\r\n\t(ngModelChange)=\"onNgModelChange($event)\"\r\n\t[showClear]=\"showClear()\"\r\n\t[emptyMessage]=\"translocoService.translate('messages.noDataToDisplay')\"\r\n\t(onSelect)=\"triggerSelectedEvents($event)\"\r\n\t[appendTo]=\"appendTo()\">\r\n\t<ng-template let-group pTemplate=\"group\">\r\n\t\t<span class=\"font-bold\">{{ group.text }}</span>\r\n\t</ng-template>\r\n\t@if (showOnlyAssetNumber()) {\r\n\t\t<ng-template let-value pTemplate=\"selectedItem\">\r\n\t\t\t<span>{{ value?.assetNumber || value?.text }}</span>\r\n\t\t</ng-template>\r\n\t}\r\n</p-autoComplete>\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"aril-ui-business-assetPicker.mjs","sources":["../../projects/aril/ui-business/assetPicker/src/asset-picker.component.ts","../../projects/aril/ui-business/assetPicker/src/asset-picker.component.html","../../projects/aril/ui-business/assetPicker/aril-ui-business-assetPicker.ts"],"sourcesContent":["import { HttpClient } from '@angular/common/http';\r\nimport {\r\n\tAfterViewInit,\r\n\tComponent,\r\n\tDestroyRef,\r\n\tEventEmitter,\r\n\tOnInit,\r\n\tOutput,\r\n\tViewChild,\r\n\teffect,\r\n\tinject,\r\n\tinput,\r\n\tsignal\r\n} from '@angular/core';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\n\r\nimport { AutoComplete, AutoCompleteModule } from 'primeng/autocomplete';\r\nimport { ObjectUtils } from 'primeng/utils';\r\n\r\nimport { TranslocoService } from '@ngneat/transloco';\r\nimport { Subject, filter, switchMap } from 'rxjs';\r\n\r\nimport { API_CONFIGS } from 'aril/boot/config/api';\r\nimport { Apps } from 'aril/boot/config/apps';\r\nimport { SelectionGroupService } from 'aril/theme/layout';\r\nimport { BaseInputComponent, ValueAccessorDirective } from 'aril/ui/lib';\r\n\r\nimport {\r\n\tAssetAggregate,\r\n\tAttributeElement,\r\n\tCacheSearchRequestDTO,\r\n\tDefaultSearchAggregateAssetAggregate,\r\n\tSuggestionsDTO,\r\n\tSuggestionsGroupDTO\r\n} from './interface';\r\n\r\ntype ValueTypes = 'text' | 'number';\r\n@Component({\r\n\tstandalone: true,\r\n\tselector: 'aril-asset-picker[ngModel], aril-asset-picker[formControl], aril-asset-picker[formControlName]',\r\n\ttemplateUrl: './asset-picker.component.html',\r\n\tstyles: [\r\n\t\t`\r\n\t\t\t::ng-deep .p-autocomplete-multiple-container {\r\n\t\t\t\tflex-wrap: wrap;\r\n\t\t\t\tmax-height: 50px;\r\n\t\t\t\toverflow-y: auto;\r\n\t\t\t\talign-items: center;\r\n\t\t\t}\r\n\r\n\t\t\t::ng-deep .p-autocomplete-token {\r\n\t\t\t\tmargin: 0;\r\n\t\t\t\tflex-shrink: 0;\r\n\t\t\t}\r\n\r\n\t\t\t::ng-deep .p-autocomplete-input-token {\r\n\t\t\t\tflex: 1;\r\n\t\t\t\tmin-width: 150px;\r\n\t\t\t}\r\n\t\t`\r\n\t],\r\n\timports: [ReactiveFormsModule, AutoCompleteModule],\r\n\thostDirectives: [ValueAccessorDirective]\r\n})\r\nexport class AssetPickerComponent extends BaseInputComponent implements AfterViewInit, OnInit {\r\n\t@ViewChild(AutoComplete) autoCompleteRef!: AutoComplete;\r\n\tassetCode = input<string | string[] | null>(null);\r\n\ttype = input<ValueTypes | null>(null);\r\n\r\n\tplaceholder = input<string>('Arama...');\r\n\tforceSelection = input<boolean>(false);\r\n\tmultiple = input<boolean>(false);\r\n\tshowClear = input<boolean>(false);\r\n\toptionValue = input<keyof SuggestionsDTO | null>(null);\r\n\tappendTo = input<string | HTMLElement | null>('body');\r\n\tmql = input<string>();\r\n\tshowOnlyAssetNumber = input<boolean>(false);\r\n\tenableAutoSearchOnInit = input<boolean>(false);\r\n\tisUpdateMode = signal<boolean>(false);\r\n\r\n\tfilteredSelectionItems!: SuggestionsGroupDTO[];\r\n\tselectionDefinitions!: DefaultSearchAggregateAssetAggregate;\r\n\tcacheSearchRequest$ = new Subject<CacheSearchRequestDTO>();\r\n\tdestroyRef = inject(DestroyRef);\r\n\tprivate updateModeQuery: string | null = null;\r\n\t@Output() selectedDefinitionEvent: EventEmitter<AssetAggregate> = new EventEmitter<AssetAggregate>();\r\n\r\n\tconstructor(\r\n\t\tprivate readonly http: HttpClient,\r\n\t\tpublic translocoService: TranslocoService,\r\n\t\tprivate readonly selectionGroupService: SelectionGroupService\r\n\t) {\r\n\t\tsuper();\r\n\r\n\t\teffect(() => {\r\n\t\t\tthis.selectionGroupService.selectionGroups();\r\n\t\t\tif (this.selectionDefinitions) {\r\n\t\t\t\tthis.refreshFilteredSelectionItems();\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t}\r\n\r\n\tngOnInit() {\r\n\t\tthis.cacheSearchRequest$\r\n\t\t\t.pipe(\r\n\t\t\t\tswitchMap((payload) =>\r\n\t\t\t\t\tthis.http.post<any>(API_CONFIGS.getExternalAppEndpoint(Apps.MNG) + '/master-data/cache-search', payload)\r\n\t\t\t\t),\r\n\t\t\t\ttakeUntilDestroyed(this.destroyRef)\r\n\t\t\t)\r\n\t\t\t.subscribe((selectionGroup) => {\r\n\t\t\t\tthis.selectionDefinitions = selectionGroup;\r\n\t\t\t\tthis.refreshFilteredSelectionItems();\r\n\t\t\t});\r\n\r\n\t\t// If the form control's value is a string, perform a cache search to retrieve the ID.\r\n\t\tconst currentValue = this.ngControl?.control?.value;\r\n\t\tif (this.enableAutoSearchOnInit() || (currentValue && typeof currentValue === 'string')) {\r\n\t\t\t\tconst searchQuery = typeof currentValue === 'string' ? currentValue : currentValue?.text;\r\n\t\t\t\tif (searchQuery) {\r\n\t\t\t\t\tthis.isUpdateMode.set(true);\r\n\t\t\t\t\tthis.updateModeQuery = searchQuery;\r\n\t\t\t\t\tthis.search({ query: searchQuery }, true);\r\n\t\t\t\t}\r\n\t\t}\r\n\r\n\t\t// React to programmatic patches (createFormDataObject / patchAssetResponseToForm)\r\n\t\tthis.ngControl?.control?.valueChanges\r\n\t\t\t.pipe(\r\n\t\t\t\tfilter(value =>\r\n\t\t\t\t\tvalue &&\r\n\t\t\t\t\ttypeof value === 'object' &&\r\n\t\t\t\t\t'text' in value &&\r\n\t\t\t\t\t!('attributes' in value)\r\n\t\t\t\t),\r\n\t\t\t\ttakeUntilDestroyed(this.destroyRef)\r\n\t\t\t)\r\n\t\t\t.subscribe(value => {\r\n\t\t\t\tif (!this.isUpdateMode()) {\r\n\t\t\t\t\tthis.isUpdateMode.set(true);\r\n\t\t\t\t\tthis.updateModeQuery = value.text;\r\n\t\t\t\t\tthis.search({ query: value.text }, true);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t}\r\n\r\n\tprivate refreshFilteredSelectionItems(): void {\r\n\t\tif (!this.selectionDefinitions) return;\r\n\r\n\t\tconst newFilteredGroupSuggestions: SuggestionsGroupDTO[] = [];\r\n\r\n\t\tObject.keys(this.selectionDefinitions).forEach((key: string) => {\r\n\t\t\tconst groupData: SuggestionsGroupDTO = {\r\n\t\t\t\ttext: this.selectionDefinitions[key]?.result[0]?.assets[0]?.assetDefinitionName,\r\n\t\t\t\tkey: key,\r\n\t\t\t\titems: this.selectionDefinitions[key].result.map(\r\n\t\t\t\t\t(item: AssetAggregate) =>\r\n\t\t\t\t\t\t({\r\n\t\t\t\t\t\t\tkey: item.id,\r\n\t\t\t\t\t\t\ttext: this.getAttiributesValueDescr(item.attributes),\r\n\t\t\t\t\t\t\tassetNumber: this.getAssetNumberValue(item.attributes),\r\n\t\t\t\t\t\t\tattributes: item.attributes,\r\n\t\t\t\t\t\t\tassetDefinitionCode: item.assetDefinitionCode\r\n\t\t\t\t\t\t}) as SuggestionsDTO\r\n\t\t\t\t)\r\n\t\t\t};\r\n\t\t\tnewFilteredGroupSuggestions.push(groupData);\r\n\r\n\t\t\t// If the string value is patched in update mode and there is group data, select the matching item\r\n\t\t\tif (this.isUpdateMode() && groupData.items.length > 0 && !this.multiple()) {\r\n\t\t\t\tconst matchedItem =\r\n\t\t\t\t\tgroupData.items.length === 1\r\n\t\t\t\t\t\t? groupData.items[0]\r\n\t\t\t\t\t\t: groupData.items.find((item) => item.assetNumber === this.updateModeQuery);\r\n\t\t\t\tif (matchedItem) {\r\n\t\t\t\t\tthis.ngControl?.control?.setValue(matchedItem);\r\n\t\t\t\t\tthis.isUpdateMode.set(false);\r\n\t\t\t\t\tthis.updateModeQuery = null;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tthis.filteredSelectionItems = newFilteredGroupSuggestions;\r\n\t}\r\n\r\n\tngAfterViewInit(): void {\r\n\t\tthis.autoCompleteRef.getOptionValue = this.getOptionValue.bind(this);\r\n\t}\r\n\r\n\tgetOptionValue(option: any) {\r\n\t\tif (!this.optionValue()) {\r\n\t\t\treturn option;\r\n\t\t}\r\n\r\n\t\tif (typeof option === 'object') {\r\n\t\t\treturn ObjectUtils.resolveFieldData(option, this.optionValue());\r\n\t\t}\r\n\r\n\t\treturn option;\r\n\t}\r\n\r\n\tonNgModelChange(value: string) {\r\n\t\tconst validatedValue = this.validateInput(value);\r\n\t\tthis.ngControl.viewToModelUpdate(validatedValue);\r\n\t}\r\n\r\n\tvalidateInput(value: string) {\r\n\t\tif (this.type() === 'number') {\r\n\t\t\treturn value.replace(/\\D/g, '');\r\n\t\t} else if (this.type() === 'text') {\r\n\t\t\treturn value.replace(/[^a-zA-ZğüşıöçĞÜŞİÖÇ\\s]/g, '');\r\n\t\t}\r\n\t\treturn value;\r\n\t}\r\n\r\n\tsearch(event: any, skipMql = false) {\r\n\t\tif (!event?.query || typeof event.query !== 'string') return;\r\n\r\n\t\tconst query = this.validateInput(event.query);\r\n\t\tif (!query?.trim()) return;\r\n\r\n\t\tconst payload: CacheSearchRequestDTO = {\r\n\t\t\tsearchText: query?.trim(),\r\n\t\t\tassetDefinitionCodes: Array.isArray(this.assetCode()) ? this.assetCode() : ([this.assetCode()] as any),\r\n\t\t\tpager: {\r\n\t\t\t\tpageSize: 5,\r\n\t\t\t\tpageNumber: 1\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\tif (!skipMql && this.mql()) payload.mql = this.mql();\r\n\r\n\t\tthis.cacheSearchRequest$.next(payload);\r\n\t}\r\n\r\n\tgetAttiributesValueDescr(attributes: AttributeElement[]): string {\r\n\t\tconst excludedAttributes = ['AssetId', 'AssetDefinitionName'];\r\n\t\treturn attributes\r\n\t\t\t?.filter((attr) => !excludedAttributes.includes(attr.attribute?.attributeCode))\r\n\t\t\t?.map((attr) => {\r\n\t\t\t\t// Handle SELECT type attributes using SelectionGroupService\r\n\t\t\t\tif (attr.attribute?.attributeType === 'SELECT' && attr.attribute?.selectOption) {\r\n\t\t\t\t\treturn this.getSelectionDisplay(attr.attribute.selectOption, attr.value as string);\r\n\t\t\t\t}\r\n\t\t\t\tconst value = attr.valueDesc ? attr.valueDesc : attr.value;\r\n\t\t\t\treturn typeof value === 'object' ? JSON.stringify(value) : String(value);\r\n\t\t\t})\r\n\t\t\t.join(' - ');\r\n\t}\r\n\tprivate getAssetNumberValue(attributes: AttributeElement[]): string {\r\n\t\tconst assetNumberAttr = attributes?.find((attr) => attr.attribute?.attributeCode === 'AssetNumber');\r\n\t\tif (!assetNumberAttr) return '';\r\n\t\treturn String(assetNumberAttr.valueDesc || assetNumberAttr.value || '');\r\n\t}\r\n\tprivate getSelectionDisplay(groupName: string, value: string): string {\r\n\t\tconst key = `${groupName}~ALL`;\r\n\t\tconst selectionGroup = this.selectionGroupService.selectionGroups()[key];\r\n\r\n\t\tif (!selectionGroup) {\r\n\t\t\tthis.selectionGroupService.fetchEnum(groupName, 'ALL');\r\n\t\t\treturn value;\r\n\t\t}\r\n\r\n\t\tconst currentLang = this.translocoService.getActiveLang();\r\n\t\tconst selectionItem = selectionGroup.selectionItems?.find((t) => t.selectionKey === value) as {\r\n\t\t\tselectionMultiLanguageDisplays?: { [lang: string]: string };\r\n\t\t\tselectionDisplay?: string;\r\n\t\t};\r\n\r\n\t\tif (!selectionItem) return value;\r\n\r\n\t\treturn selectionItem.selectionMultiLanguageDisplays?.[currentLang] ?? selectionItem.selectionDisplay ?? value;\r\n\t}\r\n\r\n\ttriggerSelectedEvents(event: any) {\r\n\t\tconst selectedItems: AssetAggregate[] = Object.keys(this.selectionDefinitions).map((key: string) => {\r\n\t\t\treturn this.selectionDefinitions[key].result.find((item: AssetAggregate) => item.id === event?.value?.key);\r\n\t\t}) as AssetAggregate[];\r\n\r\n\t\tconst selectedItem = selectedItems[0];\r\n\r\n\t\tconst selectedEvent = {\r\n\t\t\t...selectedItem,\r\n\t\t\tkey: selectedItem?.id,\r\n\t\t\ttext: selectedItem?.assetDefinitionName,\r\n\t\t\tattributes: selectedItem?.attributes,\r\n\t\t\tassetDefinitionCode: selectedItem?.assetDefinitionCode\r\n\t\t};\r\n\r\n\t\tthis.selectedDefinitionEvent.emit(selectedEvent);\r\n\t}\r\n}\r\n","<p-autoComplete\r\n\toptionLabel=\"text\"\r\n\t[optionValue]=\"optionValue()!\"\r\n\t[placeholder]=\"placeholder()\"\r\n\t[multiple]=\"multiple()\"\r\n\t[group]=\"true\"\r\n\t[forceSelection]=\"forceSelection()\"\r\n\t[delay]=\"700\"\r\n\t[minLength]=\"3\"\r\n\t[suggestions]=\"filteredSelectionItems\"\r\n\t(completeMethod)=\"search($event)\"\r\n\t[formControl]=\"ngControl.control\"\r\n\t[autoHighlight]=\"true\"\r\n\t[type]=\"type()!\"\r\n\t(ngModelChange)=\"onNgModelChange($event)\"\r\n\t[showClear]=\"showClear()\"\r\n\t[emptyMessage]=\"translocoService.translate('messages.noDataToDisplay')\"\r\n\t(onSelect)=\"triggerSelectedEvents($event)\"\r\n\t[appendTo]=\"appendTo()\">\r\n\t<ng-template let-group pTemplate=\"group\">\r\n\t\t<span class=\"font-bold\">{{ group.text }}</span>\r\n\t</ng-template>\r\n\t@if (showOnlyAssetNumber()) {\r\n\t\t<ng-template let-value pTemplate=\"selectedItem\">\r\n\t\t\t<span>{{ value?.assetNumber || value?.text }}</span>\r\n\t\t</ng-template>\r\n\t}\r\n</p-autoComplete>\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,119 @@
1
+ import * as i0 from '@angular/core';
2
+ import { inject, signal, Component } from '@angular/core';
3
+ import { HttpClient } from '@angular/common/http';
4
+ import { DynamicDialogRef, DynamicDialogConfig } from 'primeng/dynamicdialog';
5
+ import * as i1 from 'primeng/messages';
6
+ import { MessagesModule } from 'primeng/messages';
7
+ import { LoaderComponent } from 'aril/ui/loader';
8
+ import { PdfViewerComponent } from 'aril/ui/pdf-viewer';
9
+
10
+ class PdfPreviewModalComponent {
11
+ constructor() {
12
+ this.ref = inject(DynamicDialogRef);
13
+ this.dialogConfig = inject(DynamicDialogConfig);
14
+ this.http = inject(HttpClient);
15
+ this.pdfBase64 = signal(undefined);
16
+ this.fileName = signal(undefined);
17
+ this.loading = signal(false);
18
+ this.messages = signal([]);
19
+ const data = this.dialogConfig.data;
20
+ this.fileName.set(data?.fileNameForDownload);
21
+ if (data?.pdfBase64) {
22
+ this.pdfBase64.set(data.pdfBase64);
23
+ }
24
+ else if (data?.url) {
25
+ this.loadFromUrl(data.url, data.errorMessage);
26
+ }
27
+ else {
28
+ this.messages.set([
29
+ { severity: 'error', detail: data?.errorMessage ?? 'Görüntülenecek PDF verisi bulunamadı' }
30
+ ]);
31
+ }
32
+ }
33
+ loadFromUrl(url, errorMessage) {
34
+ this.loading.set(true);
35
+ this.http.get(url, { responseType: 'blob' }).subscribe({
36
+ next: (blob) => {
37
+ const reader = new FileReader();
38
+ reader.onloadend = () => {
39
+ const base64 = reader.result;
40
+ this.pdfBase64.set(base64.split(',')[1] || base64);
41
+ this.loading.set(false);
42
+ };
43
+ reader.onerror = () => this.handleError(errorMessage);
44
+ reader.readAsDataURL(blob);
45
+ },
46
+ error: () => this.handleError(errorMessage)
47
+ });
48
+ }
49
+ handleError(errorMessage) {
50
+ this.messages.set([{ severity: 'error', detail: errorMessage ?? 'PDF yüklenemedi' }]);
51
+ this.loading.set(false);
52
+ }
53
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: PdfPreviewModalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
54
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.2", type: PdfPreviewModalComponent, isStandalone: true, selector: "aril-pdf-preview-modal", ngImport: i0, template: `
55
+ @if (pdfBase64()) {
56
+ <div style="width: 100%; height: 100%; margin: 0;">
57
+ <aril-pdf-viewer
58
+ [base64Src]="pdfBase64()!"
59
+ [fileNameForDownload]="fileName() ?? ''"
60
+ height="100%" />
61
+ </div>
62
+ } @else if (loading()) {
63
+ <aril-loader />
64
+ } @else if (messages().length > 0) {
65
+ <p-messages [value]="messages()" [enableService]="false" [closable]="false" />
66
+ }
67
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: MessagesModule }, { kind: "component", type: i1.Messages, selector: "p-messages", inputs: ["value", "closable", "style", "styleClass", "enableService", "key", "escape", "severity", "showTransitionOptions", "hideTransitionOptions"], outputs: ["valueChange", "onClose"] }, { kind: "component", type: PdfViewerComponent, selector: "aril-pdf-viewer", inputs: ["showSidebarButton", "showFindButton", "showZoomButtons", "showPresentationModeButton", "height", "page", "src", "base64Src", "allowContextMenu", "handTool", "httpHeaders", "fileNameForDownload"] }, { kind: "component", type: LoaderComponent, selector: "aril-loader" }] }); }
68
+ }
69
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: PdfPreviewModalComponent, decorators: [{
70
+ type: Component,
71
+ args: [{
72
+ standalone: true,
73
+ selector: 'aril-pdf-preview-modal',
74
+ imports: [MessagesModule, PdfViewerComponent, LoaderComponent],
75
+ template: `
76
+ @if (pdfBase64()) {
77
+ <div style="width: 100%; height: 100%; margin: 0;">
78
+ <aril-pdf-viewer
79
+ [base64Src]="pdfBase64()!"
80
+ [fileNameForDownload]="fileName() ?? ''"
81
+ height="100%" />
82
+ </div>
83
+ } @else if (loading()) {
84
+ <aril-loader />
85
+ } @else if (messages().length > 0) {
86
+ <p-messages [value]="messages()" [enableService]="false" [closable]="false" />
87
+ }
88
+ `
89
+ }]
90
+ }], ctorParameters: () => [] });
91
+
92
+ const PDF_PREVIEW_DIALOG_DEFAULTS = {
93
+ width: '60%',
94
+ height: '85vh',
95
+ contentStyle: { padding: '0', overflow: 'hidden', height: '100%' },
96
+ focusOnShow: false,
97
+ draggable: true,
98
+ closable: true,
99
+ header: 'PDF'
100
+ };
101
+ function openPdfPreview(dialogService, options) {
102
+ const { header, width, height, overrideConfig, ...data } = options;
103
+ const config = {
104
+ ...PDF_PREVIEW_DIALOG_DEFAULTS,
105
+ header: header ?? PDF_PREVIEW_DIALOG_DEFAULTS.header,
106
+ width: width ?? PDF_PREVIEW_DIALOG_DEFAULTS.width,
107
+ height: height ?? PDF_PREVIEW_DIALOG_DEFAULTS.height,
108
+ ...overrideConfig,
109
+ data
110
+ };
111
+ return dialogService.open(PdfPreviewModalComponent, config);
112
+ }
113
+
114
+ /**
115
+ * Generated bundle index. Do not edit.
116
+ */
117
+
118
+ export { PDF_PREVIEW_DIALOG_DEFAULTS, PdfPreviewModalComponent, openPdfPreview };
119
+ //# sourceMappingURL=aril-ui-business-pdf-preview-modal.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aril-ui-business-pdf-preview-modal.mjs","sources":["../../projects/aril/ui-business/pdf-preview-modal/src/pdf-preview-modal.component.ts","../../projects/aril/ui-business/pdf-preview-modal/src/open-pdf-preview.ts","../../projects/aril/ui-business/pdf-preview-modal/aril-ui-business-pdf-preview-modal.ts"],"sourcesContent":["import { Component, inject, signal } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\n\r\nimport { Message } from 'primeng/api';\r\nimport { DynamicDialogConfig, DynamicDialogRef } from 'primeng/dynamicdialog';\r\nimport { MessagesModule } from 'primeng/messages';\r\n\r\nimport { LoaderComponent } from 'aril/ui/loader';\r\nimport { PdfViewerComponent } from 'aril/ui/pdf-viewer';\r\n\r\nexport interface PdfPreviewModalData {\r\n\tpdfBase64?: string;\r\n\turl?: string;\r\n\tfileNameForDownload?: string;\r\n\terrorMessage?: string;\r\n}\r\n\r\n@Component({\r\n\tstandalone: true,\r\n\tselector: 'aril-pdf-preview-modal',\r\n\timports: [MessagesModule, PdfViewerComponent, LoaderComponent],\r\n\ttemplate: `\r\n\t\t@if (pdfBase64()) {\r\n\t\t\t<div style=\"width: 100%; height: 100%; margin: 0;\">\r\n\t\t\t\t<aril-pdf-viewer\r\n\t\t\t\t\t[base64Src]=\"pdfBase64()!\"\r\n\t\t\t\t\t[fileNameForDownload]=\"fileName() ?? ''\"\r\n\t\t\t\t\theight=\"100%\" />\r\n\t\t\t</div>\r\n\t\t} @else if (loading()) {\r\n\t\t\t<aril-loader />\r\n\t\t} @else if (messages().length > 0) {\r\n\t\t\t<p-messages [value]=\"messages()\" [enableService]=\"false\" [closable]=\"false\" />\r\n\t\t}\r\n\t`\r\n})\r\nexport class PdfPreviewModalComponent {\r\n\treadonly ref = inject(DynamicDialogRef);\r\n\tprivate readonly dialogConfig = inject(DynamicDialogConfig);\r\n\tprivate readonly http = inject(HttpClient);\r\n\r\n\tpdfBase64 = signal<string | undefined>(undefined);\r\n\tfileName = signal<string | undefined>(undefined);\r\n\tloading = signal(false);\r\n\tmessages = signal<Message[]>([]);\r\n\r\n\tconstructor() {\r\n\t\tconst data = this.dialogConfig.data as PdfPreviewModalData | undefined;\r\n\t\tthis.fileName.set(data?.fileNameForDownload);\r\n\r\n\t\tif (data?.pdfBase64) {\r\n\t\t\tthis.pdfBase64.set(data.pdfBase64);\r\n\t\t} else if (data?.url) {\r\n\t\t\tthis.loadFromUrl(data.url, data.errorMessage);\r\n\t\t} else {\r\n\t\t\tthis.messages.set([\r\n\t\t\t\t{ severity: 'error', detail: data?.errorMessage ?? 'Görüntülenecek PDF verisi bulunamadı' }\r\n\t\t\t]);\r\n\t\t}\r\n\t}\r\n\r\n\tprivate loadFromUrl(url: string, errorMessage?: string): void {\r\n\t\tthis.loading.set(true);\r\n\t\tthis.http.get(url, { responseType: 'blob' }).subscribe({\r\n\t\t\tnext: (blob) => {\r\n\t\t\t\tconst reader = new FileReader();\r\n\t\t\t\treader.onloadend = () => {\r\n\t\t\t\t\tconst base64 = reader.result as string;\r\n\t\t\t\t\tthis.pdfBase64.set(base64.split(',')[1] || base64);\r\n\t\t\t\t\tthis.loading.set(false);\r\n\t\t\t\t};\r\n\t\t\t\treader.onerror = () => this.handleError(errorMessage);\r\n\t\t\t\treader.readAsDataURL(blob);\r\n\t\t\t},\r\n\t\t\terror: () => this.handleError(errorMessage)\r\n\t\t});\r\n\t}\r\n\r\n\tprivate handleError(errorMessage?: string): void {\r\n\t\tthis.messages.set([{ severity: 'error', detail: errorMessage ?? 'PDF yüklenemedi' }]);\r\n\t\tthis.loading.set(false);\r\n\t}\r\n}\r\n","import { DialogService, DynamicDialogConfig, DynamicDialogRef } from 'primeng/dynamicdialog';\r\n\r\nimport { PdfPreviewModalComponent, PdfPreviewModalData } from './pdf-preview-modal.component';\r\n\r\nexport interface OpenPdfPreviewOptions extends PdfPreviewModalData {\r\n\theader?: string;\r\n\twidth?: string;\r\n\theight?: string;\r\n\toverrideConfig?: Partial<DynamicDialogConfig>;\r\n}\r\n\r\nexport const PDF_PREVIEW_DIALOG_DEFAULTS: Partial<DynamicDialogConfig> = {\r\n\twidth: '60%',\r\n\theight: '85vh',\r\n\tcontentStyle: { padding: '0', overflow: 'hidden', height: '100%' },\r\n\tfocusOnShow: false,\r\n\tdraggable: true,\r\n\tclosable: true,\r\n\theader: 'PDF'\r\n};\r\n\r\nexport function openPdfPreview(\r\n\tdialogService: DialogService,\r\n\toptions: OpenPdfPreviewOptions\r\n): DynamicDialogRef {\r\n\tconst { header, width, height, overrideConfig, ...data } = options;\r\n\tconst config: DynamicDialogConfig = {\r\n\t\t...PDF_PREVIEW_DIALOG_DEFAULTS,\r\n\t\theader: header ?? PDF_PREVIEW_DIALOG_DEFAULTS.header,\r\n\t\twidth: width ?? PDF_PREVIEW_DIALOG_DEFAULTS.width,\r\n\t\theight: height ?? PDF_PREVIEW_DIALOG_DEFAULTS.height,\r\n\t\t...overrideConfig,\r\n\t\tdata\r\n\t};\r\n\treturn dialogService.open(PdfPreviewModalComponent, config);\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"aril-util-sync-active-tab-route.mjs","sources":["../../projects/aril/util/sync-active-tab-route/src/sync-active-tab-route.directive.ts","../../projects/aril/util/sync-active-tab-route/aril-util-sync-active-tab-route.ts"],"sourcesContent":["import { Location } from '@angular/common';\nimport { Directive, HostListener, OnDestroy, OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\n\nimport { TabView } from 'primeng/tabview';\n\nimport { Subscription } from 'rxjs';\n\n@Directive({\n\tselector: '[syncActiveTabRoute]',\n\tstandalone: true\n})\nexport class SyncActiveTabRouteDirective implements OnInit, OnDestroy {\n\tprivate readonly subscription = new Subscription();\n\n\tconstructor(\n\t\tprivate readonly router: Router,\n\t\tprivate readonly tabView: TabView,\n\t\tprivate readonly location: Location\n\t) {}\n\n\tngOnInit() {\n\t\tthis.subscription.add(\n\t\t\tthis.router.routerState.root.queryParamMap.subscribe((params) => {\n\t\t\t\tif (params.has('activeTab')) {\n\t\t\t\t\tthis.tabView.activeIndex = Number(params.get('activeTab'));\n\t\t\t\t}\n\t\t\t})\n\t\t);\n\t}\n\n\t@HostListener('activeIndexChange', ['$event'])\n\tonTabChange(e: number) {\n\t\tthis.location.replaceState(\n\t\t\tthis.router\n\t\t\t\t.createUrlTree([], {\n\t\t\t\t\tqueryParams: { activeTab: e },\n\t\t\t\t\tqueryParamsHandling: 'merge'\n\t\t\t\t})\n\t\t\t\t.toString()\n\t\t);\n\t}\n\n\tngOnDestroy() {\n\t\tthis.subscription.unsubscribe();\n\t}\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;MAYa,2BAA2B,CAAA;AAGvC,IAAA,WAAA,CACkB,MAAc,EACd,OAAgB,EAChB,QAAkB,EAAA;QAFlB,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;QACd,IAAO,CAAA,OAAA,GAAP,OAAO,CAAS;QAChB,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAU;AALnB,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,YAAY,EAAE,CAAC;KAM/C;IAEJ,QAAQ,GAAA;QACP,IAAI,CAAC,YAAY,CAAC,GAAG,CACpB,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,MAAM,KAAI;AAC/D,YAAA,IAAI,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE;AAC5B,gBAAA,IAAI,CAAC,OAAO,CAAC,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC;aAC3D;SACD,CAAC,CACF,CAAC;KACF;AAGD,IAAA,WAAW,CAAC,CAAS,EAAA;AACpB,QAAA,IAAI,CAAC,QAAQ,CAAC,YAAY,CACzB,IAAI,CAAC,MAAM;aACT,aAAa,CAAC,EAAE,EAAE;AAClB,YAAA,WAAW,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE;AAC7B,YAAA,mBAAmB,EAAE,OAAO;SAC5B,CAAC;aACD,QAAQ,EAAE,CACZ,CAAC;KACF;IAED,WAAW,GAAA;AACV,QAAA,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;KAChC;8GAjCW,2BAA2B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,MAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,OAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,QAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAA3B,2BAA2B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAA3B,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBAJvC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,QAAQ,EAAE,sBAAsB;AAChC,oBAAA,UAAU,EAAE,IAAI;AAChB,iBAAA,CAAA;wHAqBA,WAAW,EAAA,CAAA;sBADV,YAAY;uBAAC,mBAAmB,EAAE,CAAC,QAAQ,CAAC,CAAA;;;AC/B9C;;AAEG;;;;"}
1
+ {"version":3,"file":"aril-util-sync-active-tab-route.mjs","sources":["../../projects/aril/util/sync-active-tab-route/src/sync-active-tab-route.directive.ts","../../projects/aril/util/sync-active-tab-route/aril-util-sync-active-tab-route.ts"],"sourcesContent":["import { Location } from '@angular/common';\r\nimport { Directive, HostListener, OnDestroy, OnInit } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\n\r\nimport { TabView } from 'primeng/tabview';\r\n\r\nimport { Subscription } from 'rxjs';\r\n\r\n@Directive({\r\n\tselector: '[syncActiveTabRoute]',\r\n\tstandalone: true\r\n})\r\nexport class SyncActiveTabRouteDirective implements OnInit, OnDestroy {\r\n\tprivate readonly subscription = new Subscription();\r\n\r\n\tconstructor(\r\n\t\tprivate readonly router: Router,\r\n\t\tprivate readonly tabView: TabView,\r\n\t\tprivate readonly location: Location\r\n\t) {}\r\n\r\n\tngOnInit() {\r\n\t\tthis.subscription.add(\r\n\t\t\tthis.router.routerState.root.queryParamMap.subscribe((params) => {\r\n\t\t\t\tif (params.has('activeTab')) {\r\n\t\t\t\t\tthis.tabView.activeIndex = Number(params.get('activeTab'));\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t);\r\n\t}\r\n\r\n\t@HostListener('activeIndexChange', ['$event'])\r\n\tonTabChange(e: number) {\r\n\t\tthis.location.replaceState(\r\n\t\t\tthis.router\r\n\t\t\t\t.createUrlTree([], {\r\n\t\t\t\t\tqueryParams: { activeTab: e },\r\n\t\t\t\t\tqueryParamsHandling: 'merge'\r\n\t\t\t\t})\r\n\t\t\t\t.toString()\r\n\t\t);\r\n\t}\r\n\r\n\tngOnDestroy() {\r\n\t\tthis.subscription.unsubscribe();\r\n\t}\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;MAYa,2BAA2B,CAAA;AAGvC,IAAA,WAAA,CACkB,MAAc,EACd,OAAgB,EAChB,QAAkB,EAAA;QAFlB,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;QACd,IAAO,CAAA,OAAA,GAAP,OAAO,CAAS;QAChB,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAU;AALnB,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,YAAY,EAAE,CAAC;KAM/C;IAEJ,QAAQ,GAAA;QACP,IAAI,CAAC,YAAY,CAAC,GAAG,CACpB,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,MAAM,KAAI;AAC/D,YAAA,IAAI,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE;AAC5B,gBAAA,IAAI,CAAC,OAAO,CAAC,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC;aAC3D;SACD,CAAC,CACF,CAAC;KACF;AAGD,IAAA,WAAW,CAAC,CAAS,EAAA;AACpB,QAAA,IAAI,CAAC,QAAQ,CAAC,YAAY,CACzB,IAAI,CAAC,MAAM;aACT,aAAa,CAAC,EAAE,EAAE;AAClB,YAAA,WAAW,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE;AAC7B,YAAA,mBAAmB,EAAE,OAAO;SAC5B,CAAC;aACD,QAAQ,EAAE,CACZ,CAAC;KACF;IAED,WAAW,GAAA;AACV,QAAA,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;KAChC;8GAjCW,2BAA2B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,MAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,OAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,QAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAA3B,2BAA2B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAA3B,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBAJvC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,QAAQ,EAAE,sBAAsB;AAChC,oBAAA,UAAU,EAAE,IAAI;AAChB,iBAAA,CAAA;wHAqBA,WAAW,EAAA,CAAA;sBADV,YAAY;uBAAC,mBAAmB,EAAE,CAAC,QAAQ,CAAC,CAAA;;;AC/B9C;;AAEG;;;;"}