aril 1.1.83 → 1.1.85
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.
- package/boot/config/apps/src/interfaces.d.ts +0 -8
- package/esm2022/boot/config/apps/src/interfaces.mjs +1 -1
- package/esm2022/http/src/serviceStateMethods.mjs +3 -1
- package/esm2022/ui-business/assetPicker/src/asset-picker.component.mjs +9 -5
- package/fesm2022/aril-boot-config-apps.mjs.map +1 -1
- package/fesm2022/aril-http.mjs +2 -0
- package/fesm2022/aril-http.mjs.map +1 -1
- package/fesm2022/aril-ui-business-assetPicker.mjs +8 -4
- package/fesm2022/aril-ui-business-assetPicker.mjs.map +1 -1
- package/package.json +159 -159
- package/ui-business/assetPicker/src/asset-picker.component.d.ts +2 -1
|
@@ -32,6 +32,7 @@ class AssetPickerComponent extends BaseInputComponent {
|
|
|
32
32
|
this.appendTo = input('body');
|
|
33
33
|
this.mql = input();
|
|
34
34
|
this.showOnlyAssetNumber = input(false);
|
|
35
|
+
this.enableAutoSearchOnInit = input(false);
|
|
35
36
|
this.isUpdateMode = signal(false);
|
|
36
37
|
this.cacheSearchRequest$ = new Subject();
|
|
37
38
|
this.destroyRef = inject(DestroyRef);
|
|
@@ -52,9 +53,12 @@ class AssetPickerComponent extends BaseInputComponent {
|
|
|
52
53
|
});
|
|
53
54
|
// If the form control's value is a string, perform a cache search to retrieve the ID.
|
|
54
55
|
const currentValue = this.ngControl?.control?.value;
|
|
55
|
-
if (currentValue && typeof currentValue === 'string') {
|
|
56
|
-
|
|
57
|
-
|
|
56
|
+
if (this.enableAutoSearchOnInit() || (currentValue && typeof currentValue === 'string')) {
|
|
57
|
+
const searchQuery = typeof currentValue === 'string' ? currentValue : currentValue?.text;
|
|
58
|
+
if (searchQuery) {
|
|
59
|
+
this.isUpdateMode.set(true);
|
|
60
|
+
this.search({ query: searchQuery });
|
|
61
|
+
}
|
|
58
62
|
}
|
|
59
63
|
}
|
|
60
64
|
refreshFilteredSelectionItems() {
|
|
@@ -169,7 +173,7 @@ class AssetPickerComponent extends BaseInputComponent {
|
|
|
169
173
|
this.selectedDefinitionEvent.emit(selectedEvent);
|
|
170
174
|
}
|
|
171
175
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: AssetPickerComponent, deps: [{ token: i1.HttpClient }, { token: i2.TranslocoService }, { token: i3.SelectionGroupService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
172
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.2", type: AssetPickerComponent, isStandalone: true, selector: "aril-asset-picker[ngModel], aril-asset-picker[formControl], aril-asset-picker[formControlName]", inputs: { assetCode: { classPropertyName: "assetCode", publicName: "assetCode", isSignal: true, isRequired: false, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, forceSelection: { classPropertyName: "forceSelection", publicName: "forceSelection", isSignal: true, isRequired: false, transformFunction: null }, multiple: { classPropertyName: "multiple", publicName: "multiple", isSignal: true, isRequired: false, transformFunction: null }, showClear: { classPropertyName: "showClear", publicName: "showClear", isSignal: true, isRequired: false, transformFunction: null }, optionValue: { classPropertyName: "optionValue", publicName: "optionValue", isSignal: true, isRequired: false, transformFunction: null }, appendTo: { classPropertyName: "appendTo", publicName: "appendTo", isSignal: true, isRequired: false, transformFunction: null }, mql: { classPropertyName: "mql", publicName: "mql", isSignal: true, isRequired: false, transformFunction: null }, showOnlyAssetNumber: { classPropertyName: "showOnlyAssetNumber", publicName: "showOnlyAssetNumber", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { selectedDefinitionEvent: "selectedDefinitionEvent" }, viewQueries: [{ propertyName: "autoCompleteRef", first: true, predicate: AutoComplete, descendants: true }], usesInheritance: true, hostDirectives: [{ directive: i4.ValueAccessorDirective }], ngImport: i0, template: "<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(keyup.enter)=\"search($event)\">\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", styles: ["::ng-deep .p-autocomplete-multiple-container{flex-wrap:wrap;max-height:50px;overflow-y:auto;align-items:center}::ng-deep .p-autocomplete-token{margin:0;flex-shrink:0}::ng-deep .p-autocomplete-input-token{flex:1;min-width:150px}\n"], dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: AutoCompleteModule }, { kind: "component", type: i6.AutoComplete, selector: "p-autoComplete", inputs: ["minLength", "delay", "style", "panelStyle", "styleClass", "panelStyleClass", "inputStyle", "inputId", "inputStyleClass", "placeholder", "readonly", "disabled", "scrollHeight", "lazy", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "maxlength", "name", "required", "size", "appendTo", "autoHighlight", "forceSelection", "type", "autoZIndex", "baseZIndex", "ariaLabel", "dropdownAriaLabel", "ariaLabelledBy", "dropdownIcon", "unique", "group", "completeOnFocus", "showClear", "field", "dropdown", "showEmptyMessage", "dropdownMode", "multiple", "tabindex", "dataKey", "emptyMessage", "showTransitionOptions", "hideTransitionOptions", "autofocus", "autocomplete", "optionGroupChildren", "optionGroupLabel", "overlayOptions", "suggestions", "itemSize", "optionLabel", "optionValue", "id", "searchMessage", "emptySelectionMessage", "selectionMessage", "autoOptionFocus", "selectOnFocus", "searchLocale", "optionDisabled", "focusOnHover", "variant"], outputs: ["completeMethod", "onSelect", "onUnselect", "onFocus", "onBlur", "onDropdownClick", "onClear", "onKeyUp", "onShow", "onHide", "onLazyLoad"] }, { kind: "directive", type: i7.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }] }); }
|
|
176
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.2", type: AssetPickerComponent, isStandalone: true, selector: "aril-asset-picker[ngModel], aril-asset-picker[formControl], aril-asset-picker[formControlName]", inputs: { assetCode: { classPropertyName: "assetCode", publicName: "assetCode", isSignal: true, isRequired: false, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, forceSelection: { classPropertyName: "forceSelection", publicName: "forceSelection", isSignal: true, isRequired: false, transformFunction: null }, multiple: { classPropertyName: "multiple", publicName: "multiple", isSignal: true, isRequired: false, transformFunction: null }, showClear: { classPropertyName: "showClear", publicName: "showClear", isSignal: true, isRequired: false, transformFunction: null }, optionValue: { classPropertyName: "optionValue", publicName: "optionValue", isSignal: true, isRequired: false, transformFunction: null }, appendTo: { classPropertyName: "appendTo", publicName: "appendTo", isSignal: true, isRequired: false, transformFunction: null }, mql: { classPropertyName: "mql", publicName: "mql", isSignal: true, isRequired: false, transformFunction: null }, showOnlyAssetNumber: { classPropertyName: "showOnlyAssetNumber", publicName: "showOnlyAssetNumber", isSignal: true, isRequired: false, transformFunction: null }, enableAutoSearchOnInit: { classPropertyName: "enableAutoSearchOnInit", publicName: "enableAutoSearchOnInit", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { selectedDefinitionEvent: "selectedDefinitionEvent" }, viewQueries: [{ propertyName: "autoCompleteRef", first: true, predicate: AutoComplete, descendants: true }], usesInheritance: true, hostDirectives: [{ directive: i4.ValueAccessorDirective }], ngImport: i0, template: "<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(keyup.enter)=\"search($event)\">\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", styles: ["::ng-deep .p-autocomplete-multiple-container{flex-wrap:wrap;max-height:50px;overflow-y:auto;align-items:center}::ng-deep .p-autocomplete-token{margin:0;flex-shrink:0}::ng-deep .p-autocomplete-input-token{flex:1;min-width:150px}\n"], dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: AutoCompleteModule }, { kind: "component", type: i6.AutoComplete, selector: "p-autoComplete", inputs: ["minLength", "delay", "style", "panelStyle", "styleClass", "panelStyleClass", "inputStyle", "inputId", "inputStyleClass", "placeholder", "readonly", "disabled", "scrollHeight", "lazy", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "maxlength", "name", "required", "size", "appendTo", "autoHighlight", "forceSelection", "type", "autoZIndex", "baseZIndex", "ariaLabel", "dropdownAriaLabel", "ariaLabelledBy", "dropdownIcon", "unique", "group", "completeOnFocus", "showClear", "field", "dropdown", "showEmptyMessage", "dropdownMode", "multiple", "tabindex", "dataKey", "emptyMessage", "showTransitionOptions", "hideTransitionOptions", "autofocus", "autocomplete", "optionGroupChildren", "optionGroupLabel", "overlayOptions", "suggestions", "itemSize", "optionLabel", "optionValue", "id", "searchMessage", "emptySelectionMessage", "selectionMessage", "autoOptionFocus", "selectOnFocus", "searchLocale", "optionDisabled", "focusOnHover", "variant"], outputs: ["completeMethod", "onSelect", "onUnselect", "onFocus", "onBlur", "onDropdownClick", "onClear", "onKeyUp", "onShow", "onHide", "onLazyLoad"] }, { kind: "directive", type: i7.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }] }); }
|
|
173
177
|
}
|
|
174
178
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: AssetPickerComponent, decorators: [{
|
|
175
179
|
type: Component,
|
|
@@ -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, 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\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\t\t\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 (currentValue && typeof currentValue === 'string'){\r\n\t\t\t\t\tthis.isUpdateMode.set(true);\r\n\t\t\t\t\tthis.search({ query: currentValue });\r\n\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) {\r\n\t\tconst query = this.validateInput(event.query);\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 (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(keyup.enter)=\"search($event)\">\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, 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\t\t\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 });\r\n\t\t\t\t}\r\n\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) {\r\n\t\tconst query = this.validateInput(event.query);\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 (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(keyup.enter)=\"search($event)\">\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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"}
|