aril 0.1.22 → 0.1.23

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.
@@ -1,4 +1,4 @@
1
- import { Component, EventEmitter, Output, ViewChild, input } from '@angular/core';
1
+ import { Component, ViewChild, input } from '@angular/core';
2
2
  import { ReactiveFormsModule } from '@angular/forms';
3
3
  import { AutoComplete, AutoCompleteModule } from 'primeng/autocomplete';
4
4
  import { ObjectUtils } from 'primeng/utils';
@@ -18,13 +18,12 @@ export class AssetPickerComponent extends BaseInputComponent {
18
18
  this.http = http;
19
19
  this.translocoService = translocoService;
20
20
  this.assetCode = input(null);
21
- this.type = input(null);
22
21
  this.placeholder = input('Arama...');
23
22
  this.forceSelection = input(false);
24
23
  this.multiple = input(false);
25
24
  this.showClear = input(false);
26
25
  this.optionValue = input(null);
27
- this.selectedDefinitionEvent = new EventEmitter();
26
+ this.type = input(null);
28
27
  }
29
28
  ngAfterViewInit() {
30
29
  this.autoCompleteRef.getOptionValue = this.getOptionValue.bind(this);
@@ -54,23 +53,17 @@ export class AssetPickerComponent extends BaseInputComponent {
54
53
  const payload = {
55
54
  searchText: query,
56
55
  assetDefinitionCodes: Array.isArray(this.assetCode()) ? this.assetCode() : [this.assetCode()],
57
- pager: {
58
- pageSize: 5,
59
- pageNumber: 1
60
- }
56
+ pageSize: 5,
57
+ pageNumber: 1
61
58
  };
62
59
  // eslint-disable-next-line no-useless-escape
63
60
  const remoteUrl = API_CONFIGS.api.replace(/\/[^\/]+\/v1$/, `/host/v1`);
64
- const selectionGroup = await firstValueFrom(this.http.post(remoteUrl + '/master-data/cache-search', payload));
65
- this.selectionDefinitions = selectionGroup;
61
+ const selectionGroup = await firstValueFrom(this.http.post(remoteUrl + '/md/elastic-search', payload));
62
+ const groupedSelectionItems = this.groupByAssetDefinitionCode(selectionGroup?.result);
66
63
  const newFilteredGroupSuggestions = [];
67
- Object.keys(selectionGroup).map((key) => {
68
- const groupData = {
69
- text: selectionGroup[key]?.result[0]?.assets[0]?.assetDefinitionName,
70
- key: key,
71
- items: []
72
- };
73
- selectionGroup[key].result.map((item) => {
64
+ Object.keys(groupedSelectionItems).map((key) => {
65
+ const groupData = { text: key, key: key, items: [] };
66
+ groupedSelectionItems[key].map((item) => {
74
67
  groupData.items.push({
75
68
  key: item.id,
76
69
  text: this.getAttiributesValueDescr(item.attributes)
@@ -80,25 +73,27 @@ export class AssetPickerComponent extends BaseInputComponent {
80
73
  });
81
74
  this.filteredSelectionItems = newFilteredGroupSuggestions;
82
75
  }
83
- getAttiributesValueDescr(attributes) {
84
- return attributes?.map((attr) => (attr.valueDesc ? attr.valueDesc : attr.value)).join(' - ');
76
+ groupByAssetDefinitionCode(array) {
77
+ return array.reduce((result, currentValue) => {
78
+ const assetName = currentValue.assets[0]?.assetDefinitionName || 'Unknown';
79
+ if (!result[assetName]) {
80
+ result[assetName] = [];
81
+ }
82
+ result[assetName].push(currentValue);
83
+ return result;
84
+ }, {});
85
85
  }
86
- triggerSelectedEvents(event) {
87
- const selectedItems = Object.keys(this.selectionDefinitions).map((key) => {
88
- return this.selectionDefinitions[key].result.find((item) => item.id === event?.value?.key);
89
- });
90
- this.selectedDefinitionEvent.emit(selectedItems[0]);
86
+ getAttiributesValueDescr(attributes) {
87
+ return attributes.map((attr) => (attr.valueDesc ? attr.valueDesc : attr.value)).join(' - ');
91
88
  }
92
89
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: AssetPickerComponent, deps: [{ token: i1.HttpClient }, { token: i2.TranslocoService }], target: i0.ɵɵFactoryTarget.Component }); }
93
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.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 } }, outputs: { selectedDefinitionEvent: "selectedDefinitionEvent" }, viewQueries: [{ propertyName: "autoCompleteRef", first: true, predicate: AutoComplete, descendants: true }], usesInheritance: true, hostDirectives: [{ directive: i3.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]=\"400\"\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\tappendTo=\"body\">\r\n\t<ng-template let-group pTemplate=\"group\">\r\n\t\t<div class=\"flex align-items-center\">\r\n\t\t\t<span style=\"font-weight: 800\">{{ group.text }}</span>\r\n\t\t</div>\r\n\t</ng-template>\r\n</p-autoComplete>\r\n", dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: AutoCompleteModule }, { kind: "component", type: i5.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: i6.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }] }); }
90
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.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 }, 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 }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "autoCompleteRef", first: true, predicate: AutoComplete, descendants: true }], usesInheritance: true, hostDirectives: [{ directive: i3.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]=\"400\"\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\tappendTo=\"body\">\r\n\t<ng-template let-group pTemplate=\"group\">\r\n\t\t<div class=\"flex align-items-center\">\r\n\t\t\t<span style=\"font-weight: 800\">{{ group.text }}</span>\r\n\t\t</div>\r\n\t</ng-template>\r\n</p-autoComplete>\r\n", dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: AutoCompleteModule }, { kind: "component", type: i5.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: i6.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }] }); }
94
91
  }
95
92
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: AssetPickerComponent, decorators: [{
96
93
  type: Component,
97
- args: [{ standalone: true, selector: 'aril-asset-picker[ngModel], aril-asset-picker[formControl], aril-asset-picker[formControlName]', imports: [ReactiveFormsModule, AutoCompleteModule], hostDirectives: [ValueAccessorDirective], 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]=\"400\"\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\tappendTo=\"body\">\r\n\t<ng-template let-group pTemplate=\"group\">\r\n\t\t<div class=\"flex align-items-center\">\r\n\t\t\t<span style=\"font-weight: 800\">{{ group.text }}</span>\r\n\t\t</div>\r\n\t</ng-template>\r\n</p-autoComplete>\r\n" }]
94
+ args: [{ standalone: true, selector: 'aril-asset-picker[ngModel], aril-asset-picker[formControl], aril-asset-picker[formControlName]', imports: [ReactiveFormsModule, AutoCompleteModule], hostDirectives: [ValueAccessorDirective], 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]=\"400\"\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\tappendTo=\"body\">\r\n\t<ng-template let-group pTemplate=\"group\">\r\n\t\t<div class=\"flex align-items-center\">\r\n\t\t\t<span style=\"font-weight: 800\">{{ group.text }}</span>\r\n\t\t</div>\r\n\t</ng-template>\r\n</p-autoComplete>\r\n" }]
98
95
  }], ctorParameters: () => [{ type: i1.HttpClient }, { type: i2.TranslocoService }], propDecorators: { autoCompleteRef: [{
99
96
  type: ViewChild,
100
97
  args: [AutoComplete]
101
- }], selectedDefinitionEvent: [{
102
- type: Output
103
98
  }] } });
104
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXQtcGlja2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FyaWwvdWkvYnVzaW5lc3MtY29tcG9uZW50cy9hc3NldFBpY2tlci9zcmMvYXNzZXQtcGlja2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FyaWwvdWkvYnVzaW5lc3MtY29tcG9uZW50cy9hc3NldFBpY2tlci9zcmMvYXNzZXQtcGlja2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBaUIsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVyRCxPQUFPLEVBQUUsWUFBWSxFQUFFLGtCQUFrQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDeEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUc1QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXRDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxhQUFhLENBQUM7Ozs7Ozs7O0FBa0J6RSxNQUFNLE9BQU8sb0JBQXFCLFNBQVEsa0JBQWtCO0lBYzNELFlBQ1MsSUFBZ0IsRUFDakIsZ0JBQWtDO1FBRXpDLEtBQUssRUFBRSxDQUFDO1FBSEEsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUNqQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBZDFDLGNBQVMsR0FBRyxLQUFLLENBQTJCLElBQUksQ0FBQyxDQUFDO1FBQ2xELFNBQUksR0FBRyxLQUFLLENBQW9CLElBQUksQ0FBQyxDQUFDO1FBRXRD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QyxDQUFDO1FBQzVHLENBQUMsQ0FBcUIsQ0FBQztRQUV2QixJQUFJLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3JELENBQUM7OEdBN0ZXLG9CQUFvQjtrR0FBcEIsb0JBQW9CLDZyQ0FDckIsWUFBWSxtSUMvQnhCLHkyQkF3QkEsMkNER1csbUJBQW1CLHlUQUFFLGtCQUFrQjs7MkZBR3JDLG9CQUFvQjtrQkFQaEMsU0FBUztpQ0FDRyxJQUFJLFlBQ04sZ0dBQWdHLFdBRWpHLENBQUMsbUJBQW1CLEVBQUUsa0JBQWtCLENBQUMsa0JBQ2xDLENBQUMsc0JBQXNCLENBQUM7OEdBR2YsZUFBZTtzQkFBdkMsU0FBUzt1QkFBQyxZQUFZO2dCQVdiLHVCQUF1QjtzQkFBaEMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEBhbmd1bGFyLWVzbGludC9jb21wb25lbnQtc2VsZWN0b3IgKi9cclxuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIE91dHB1dCwgVmlld0NoaWxkLCBpbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5cclxuaW1wb3J0IHsgQXV0b0NvbXBsZXRlLCBBdXRvQ29tcGxldGVNb2R1bGUgfSBmcm9tICdwcmltZW5nL2F1dG9jb21wbGV0ZSc7XHJcbmltcG9ydCB7IE9iamVjdFV0aWxzIH0gZnJvbSAncHJpbWVuZy91dGlscyc7XHJcblxyXG5pbXBvcnQgeyBUcmFuc2xvY29TZXJ2aWNlIH0gZnJvbSAnQG5nbmVhdC90cmFuc2xvY28nO1xyXG5pbXBvcnQgeyBmaXJzdFZhbHVlRnJvbSB9IGZyb20gJ3J4anMnO1xyXG5cclxuaW1wb3J0IHsgQVBJX0NPTkZJR1MgfSBmcm9tICdhcmlsL2Jvb3QvY29uZmlnL2FwaSc7XHJcbmltcG9ydCB7IEJhc2VJbnB1dENvbXBvbmVudCwgVmFsdWVBY2Nlc3NvckRpcmVjdGl2ZSB9IGZyb20gJ2FyaWwvdWkvbGliJztcclxuXHJcbmltcG9ydCB7XHJcblx0QXNzZXRBZ2dyZWdhdGUsXHJcblx0QXR0cmlidXRlRWxlbWVudCxcclxuXHREZWZhdWx0U2VhcmNoQWdncmVnYXRlQXNzZXRBZ2dyZWdhdGUsXHJcblx0U3VnZ2VzdGlvbnNEVE8sXHJcblx0U3VnZ2VzdGlvbnNHcm91cERUT1xyXG59IGZyb20gJy4vaW50ZXJmYWNlJztcclxuXHJcbnR5cGUgVmFsdWVUeXBlcyA9ICd0ZXh0JyB8ICdudW1iZXInO1xyXG5AQ29tcG9uZW50KHtcclxuXHRzdGFuZGFsb25lOiB0cnVlLFxyXG5cdHNlbGVjdG9yOiAnYXJpbC1hc3NldC1waWNrZXJbbmdNb2RlbF0sIGFyaWwtYXNzZXQtcGlja2VyW2Zvcm1Db250cm9sXSwgYXJpbC1hc3NldC1waWNrZXJbZm9ybUNvbnRyb2xOYW1lXScsXHJcblx0dGVtcGxhdGVVcmw6ICcuL2Fzc2V0LXBpY2tlci5jb21wb25lbnQuaHRtbCcsXHJcblx0aW1wb3J0czogW1JlYWN0aXZlRm9ybXNNb2R1bGUsIEF1dG9Db21wbGV0ZU1vZHVsZV0sXHJcblx0aG9zdERpcmVjdGl2ZXM6IFtWYWx1ZUFjY2Vzc29yRGlyZWN0aXZlXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQXNzZXRQaWNrZXJDb21wb25lbnQgZXh0ZW5kcyBCYXNlSW5wdXRDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcclxuXHRAVmlld0NoaWxkKEF1dG9Db21wbGV0ZSkgYXV0b0NvbXBsZXRlUmVmITogQXV0b0NvbXBsZXRlO1xyXG5cdGFzc2V0Q29kZSA9IGlucHV0PHN0cmluZyB8IHN0cmluZ1tdIHwgbnVsbD4obnVsbCk7XHJcblx0dHlwZSA9IGlucHV0PFZhbHVlVHlwZXMgfCBudWxsPihudWxsKTtcclxuXHJcblx0cGxhY2Vob2xkZXIgPSBpbnB1dDxzdHJpbmc+KCdBcmFtYS4uLicpO1xyXG5cdGZvcmNlU2VsZWN0aW9uID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xyXG5cdG11bHRpcGxlID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xyXG5cdHNob3dDbGVhciA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcclxuXHRvcHRpb25WYWx1ZSA9IGlucHV0PGtleW9mIFN1Z2dlc3Rpb25zRFRPIHwgbnVsbD4obnVsbCk7XHJcblx0ZmlsdGVyZWRTZWxlY3Rpb25JdGVtcyE6IFN1Z2dlc3Rpb25zR3JvdXBEVE9bXTtcclxuXHRzZWxlY3Rpb25EZWZpbml0aW9ucyE6IERlZmF1bHRTZWFyY2hBZ2dyZWdhdGVBc3NldEFnZ3JlZ2F0ZTtcclxuXHRAT3V0cHV0KCkgc2VsZWN0ZWREZWZpbml0aW9uRXZlbnQ6IEV2ZW50RW1pdHRlcjxBc3NldEFnZ3JlZ2F0ZT4gPSBuZXcgRXZlbnRFbWl0dGVyPEFzc2V0QWdncmVnYXRlPigpO1xyXG5cclxuXHRjb25zdHJ1Y3RvcihcclxuXHRcdHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxcclxuXHRcdHB1YmxpYyB0cmFuc2xvY29TZXJ2aWNlOiBUcmFuc2xvY29TZXJ2aWNlXHJcblx0KSB7XHJcblx0XHRzdXBlcigpO1xyXG5cdH1cclxuXHJcblx0bmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG5cdFx0dGhpcy5hdXRvQ29tcGxldGVSZWYuZ2V0T3B0aW9uVmFsdWUgPSB0aGlzLmdldE9wdGlvblZhbHVlLmJpbmQodGhpcyk7XHJcblx0fVxyXG5cclxuXHRnZXRPcHRpb25WYWx1ZShvcHRpb246IGFueSkge1xyXG5cdFx0cmV0dXJuIChcclxuXHRcdFx0dGhpcy5vcHRpb25WYWx1ZSgpID9cclxuXHRcdFx0XHR0eXBlb2Ygb3B0aW9uID09PSAnb2JqZWN0JyA/XHJcblx0XHRcdFx0XHRPYmplY3RVdGlscy5yZXNvbHZlRmllbGREYXRhKG9wdGlvbiwgdGhpcy5vcHRpb25WYWx1ZSgpKVxyXG5cdFx0XHRcdDpcdG9wdGlvblxyXG5cdFx0XHQ6XHRvcHRpb25cclxuXHRcdCk7XHJcblx0fVxyXG5cclxuXHRvbk5nTW9kZWxDaGFuZ2UodmFsdWU6IHN0cmluZykge1xyXG5cdFx0Y29uc3QgdmFsaWRhdGVkVmFsdWUgPSB0aGlzLnZhbGlkYXRlSW5wdXQodmFsdWUpO1xyXG5cdFx0dGhpcy5uZ0NvbnRyb2wudmlld1RvTW9kZWxVcGRhdGUodmFsaWRhdGVkVmFsdWUpO1xyXG5cdH1cclxuXHJcblx0dmFsaWRhdGVJbnB1dCh2YWx1ZTogc3RyaW5nKSB7XHJcblx0XHRpZiAodGhpcy50eXBlKCkgPT09ICdudW1iZXInKSB7XHJcblx0XHRcdHJldHVybiB2YWx1ZS5yZXBsYWNlKC9bXjAtOV0vZywgJycpO1xyXG5cdFx0fSBlbHNlIGlmICh0aGlzLnR5cGUoKSA9PT0gJ3RleHQnKSB7XHJcblx0XHRcdHJldHVybiB2YWx1ZS5yZXBsYWNlKC9bXmEtekEtWsSfw7zFn8Sxw7bDp8Sew5zFnsSww5bDh1xcc10vZywgJycpO1xyXG5cdFx0fVxyXG5cdFx0cmV0dXJuIHZhbHVlO1xyXG5cdH1cclxuXHJcblx0YXN5bmMgc2VhcmNoKGV2ZW50OiBhbnkpIHtcclxuXHRcdGNvbnN0IHF1ZXJ5ID0gdGhpcy52YWxpZGF0ZUlucHV0KGV2ZW50LnF1ZXJ5KTtcclxuXHRcdGNvbnN0IHBheWxvYWQgPSB7XHJcblx0XHRcdHNlYXJjaFRleHQ6IHF1ZXJ5LFxyXG5cdFx0XHRhc3NldERlZmluaXRpb25Db2RlczogQXJyYXkuaXNBcnJheSh0aGlzLmFzc2V0Q29kZSgpKSA/IHRoaXMuYXNzZXRDb2RlKCkgOiBbdGhpcy5hc3NldENvZGUoKV0sXHJcblx0XHRcdHBhZ2VyOiB7XHJcblx0XHRcdFx0cGFnZVNpemU6IDUsXHJcblx0XHRcdFx0cGFnZU51bWJlcjogMVxyXG5cdFx0XHR9XHJcblx0XHR9O1xyXG5cdFx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVzZWxlc3MtZXNjYXBlXHJcblx0XHRjb25zdCByZW1vdGVVcmwgPSBBUElfQ09ORklHUy5hcGkucmVwbGFjZSgvXFwvW15cXC9dK1xcL3YxJC8sIGAvaG9zdC92MWApO1xyXG5cdFx0Y29uc3Qgc2VsZWN0aW9uR3JvdXA6IERlZmF1bHRTZWFyY2hBZ2dyZWdhdGVBc3NldEFnZ3JlZ2F0ZSA9IGF3YWl0IGZpcnN0VmFsdWVGcm9tKFxyXG5cdFx0XHR0aGlzLmh0dHAucG9zdDxhbnk+KHJlbW90ZVVybCArICcvbWFzdGVyLWRhdGEvY2FjaGUtc2VhcmNoJywgcGF5bG9hZClcclxuXHRcdCk7XHJcblx0XHR0aGlzLnNlbGVjdGlvbkRlZmluaXRpb25zID0gc2VsZWN0aW9uR3JvdXA7XHJcblx0XHRjb25zdCBuZXdGaWx0ZXJlZEdyb3VwU3VnZ2VzdGlvbnM6IFN1Z2dlc3Rpb25zR3JvdXBEVE9bXSA9IFtdO1xyXG5cdFx0T2JqZWN0LmtleXMoc2VsZWN0aW9uR3JvdXApLm1hcCgoa2V5OiBzdHJpbmcpID0+IHtcclxuXHRcdFx0Y29uc3QgZ3JvdXBEYXRhOiBTdWdnZXN0aW9uc0dyb3VwRFRPID0ge1xyXG5cdFx0XHRcdHRleHQ6IHNlbGVjdGlvbkdyb3VwW2tleV0/LnJlc3VsdFswXT8uYXNzZXRzWzBdPy5hc3NldERlZmluaXRpb25OYW1lLFxyXG5cdFx0XHRcdGtleToga2V5LFxyXG5cdFx0XHRcdGl0ZW1zOiBbXVxyXG5cdFx0XHR9O1xyXG5cdFx0XHRzZWxlY3Rpb25Hcm91cFtrZXldLnJlc3VsdC5tYXAoKGl0ZW06IEFzc2V0QWdncmVnYXRlKSA9PiB7XHJcblx0XHRcdFx0Z3JvdXBEYXRhLml0ZW1zLnB1c2goe1xyXG5cdFx0XHRcdFx0a2V5OiBpdGVtLmlkLFxyXG5cdFx0XHRcdFx0dGV4dDogdGhpcy5nZXRBdHRpcmlidXRlc1ZhbHVlRGVzY3IoaXRlbS5hdHRyaWJ1dGVzKVxyXG5cdFx0XHRcdH0pO1xyXG5cdFx0XHR9KTtcclxuXHRcdFx0bmV3RmlsdGVyZWRHcm91cFN1Z2dlc3Rpb25zLnB1c2goZ3JvdXBEYXRhKTtcclxuXHRcdH0pO1xyXG5cdFx0dGhpcy5maWx0ZXJlZFNlbGVjdGlvbkl0ZW1zID0gbmV3RmlsdGVyZWRHcm91cFN1Z2dlc3Rpb25zO1xyXG5cdH1cclxuXHJcblx0Z2V0QXR0aXJpYnV0ZXNWYWx1ZURlc2NyKGF0dHJpYnV0ZXM6IEF0dHJpYnV0ZUVsZW1lbnRbXSk6IHN0cmluZyB7XHJcblx0XHRyZXR1cm4gYXR0cmlidXRlcz8ubWFwKChhdHRyKSA9PiAoYXR0ci52YWx1ZURlc2MgPyBhdHRyLnZhbHVlRGVzYyA6IGF0dHIudmFsdWUpKS5qb2luKCcgLSAnKTtcclxuXHR9XHJcblxyXG5cdHRyaWdnZXJTZWxlY3RlZEV2ZW50cyhldmVudDogYW55KSB7XHJcblx0XHRjb25zdCBzZWxlY3RlZEl0ZW1zOiBBc3NldEFnZ3JlZ2F0ZVtdID0gT2JqZWN0LmtleXModGhpcy5zZWxlY3Rpb25EZWZpbml0aW9ucykubWFwKChrZXk6IHN0cmluZykgPT4ge1xyXG5cdFx0XHRyZXR1cm4gdGhpcy5zZWxlY3Rpb25EZWZpbml0aW9uc1trZXldLnJlc3VsdC5maW5kKChpdGVtOiBBc3NldEFnZ3JlZ2F0ZSkgPT4gaXRlbS5pZCA9PT0gZXZlbnQ/LnZhbHVlPy5rZXkpO1xyXG5cdFx0fSkgYXMgQXNzZXRBZ2dyZWdhdGVbXTtcclxuXHJcblx0XHR0aGlzLnNlbGVjdGVkRGVmaW5pdGlvbkV2ZW50LmVtaXQoc2VsZWN0ZWRJdGVtc1swXSk7XHJcblx0fVxyXG59XHJcbiIsIjxwLWF1dG9Db21wbGV0ZVxyXG5cdG9wdGlvbkxhYmVsPVwidGV4dFwiXHJcblx0W29wdGlvblZhbHVlXT1cIm9wdGlvblZhbHVlKCkhXCJcclxuXHRbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXIoKVwiXHJcblx0W211bHRpcGxlXT1cIm11bHRpcGxlKClcIlxyXG5cdFtncm91cF09XCJ0cnVlXCJcclxuXHRbZm9yY2VTZWxlY3Rpb25dPVwiZm9yY2VTZWxlY3Rpb24oKVwiXHJcblx0W2RlbGF5XT1cIjQwMFwiXHJcblx0W3N1Z2dlc3Rpb25zXT1cImZpbHRlcmVkU2VsZWN0aW9uSXRlbXNcIlxyXG5cdChjb21wbGV0ZU1ldGhvZCk9XCJzZWFyY2goJGV2ZW50KVwiXHJcblx0W2Zvcm1Db250cm9sXT1cIm5nQ29udHJvbC5jb250cm9sXCJcclxuXHRbYXV0b0hpZ2hsaWdodF09XCJ0cnVlXCJcclxuXHRbdHlwZV09XCJ0eXBlKCkhXCJcclxuXHQobmdNb2RlbENoYW5nZSk9XCJvbk5nTW9kZWxDaGFuZ2UoJGV2ZW50KVwiXHJcblx0W3Nob3dDbGVhcl09XCJzaG93Q2xlYXIoKVwiXHJcblx0W2VtcHR5TWVzc2FnZV09XCJ0cmFuc2xvY29TZXJ2aWNlLnRyYW5zbGF0ZSgnbWVzc2FnZXMubm9EYXRhVG9EaXNwbGF5JylcIlxyXG5cdChvblNlbGVjdCk9XCJ0cmlnZ2VyU2VsZWN0ZWRFdmVudHMoJGV2ZW50KVwiXHJcblx0YXBwZW5kVG89XCJib2R5XCI+XHJcblx0PG5nLXRlbXBsYXRlIGxldC1ncm91cCBwVGVtcGxhdGU9XCJncm91cFwiPlxyXG5cdFx0PGRpdiBjbGFzcz1cImZsZXggYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcblx0XHRcdDxzcGFuIHN0eWxlPVwiZm9udC13ZWlnaHQ6IDgwMFwiPnt7IGdyb3VwLnRleHQgfX08L3NwYW4+XHJcblx0XHQ8L2Rpdj5cclxuXHQ8L25nLXRlbXBsYXRlPlxyXG48L3AtYXV0b0NvbXBsZXRlPlxyXG4iXX0=
99
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXQtcGlja2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FyaWwvdWkvYnVzaW5lc3MtY29tcG9uZW50cy9hc3NldFBpY2tlci9zcmMvYXNzZXQtcGlja2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FyaWwvdWkvYnVzaW5lc3MtY29tcG9uZW50cy9hc3NldFBpY2tlci9zcmMvYXNzZXQtcGlja2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBaUIsU0FBUyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0UsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFckQsT0FBTyxFQUFFLFlBQVksRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFNUMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUd0QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbkQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLHNCQUFzQixFQUFFLE1BQU0sYUFBYSxDQUFDOzs7Ozs7OztBQVl6RSxNQUFNLE9BQU8sb0JBQXFCLFNBQVEsa0JBQWtCO0lBYTNELFlBQW9CLElBQWdCLEVBQVEsZ0JBQWtDO1FBQzdFLEtBQUssRUFBRSxDQUFDO1FBRFcsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUFRLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFYOUUsY0FBUyxHQUFHLEtBQUssQ0FBMkIsSUFBSSxDQUFDLENBQUM7UUFFbEQsZ0JBQVcsR0FBRyxLQUFLLENBQVMsVUFBVSxDQUFDLENBQUM7UUFDeEMsbUJBQWMsR0FBRyxLQUFLLENBQVUs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QW9CLDRuQ0FDckIsWUFBWSxtSUN4QnhCLHV6QkF1QkEsMkNESFcsbUJBQW1CLHlUQUFFLGtCQUFrQjs7MkZBR3JDLG9CQUFvQjtrQkFQaEMsU0FBUztpQ0FDRyxJQUFJLFlBQ04sZ0dBQWdHLFdBRWpHLENBQUMsbUJBQW1CLEVBQUUsa0JBQWtCLENBQUMsa0JBQ2xDLENBQUMsc0JBQXNCLENBQUM7OEdBR2YsZUFBZTtzQkFBdkMsU0FBUzt1QkFBQyxZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBWaWV3Q2hpbGQsIGlucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcblxyXG5pbXBvcnQgeyBBdXRvQ29tcGxldGUsIEF1dG9Db21wbGV0ZU1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvYXV0b2NvbXBsZXRlJztcclxuaW1wb3J0IHsgT2JqZWN0VXRpbHMgfSBmcm9tICdwcmltZW5nL3V0aWxzJztcclxuXHJcbmltcG9ydCB7IGZpcnN0VmFsdWVGcm9tIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFRyYW5zbG9jb1NlcnZpY2UgfSBmcm9tICdAbmduZWF0L3RyYW5zbG9jbyc7XHJcblxyXG5pbXBvcnQgeyBBUElfQ09ORklHUyB9IGZyb20gJ2FyaWwvYm9vdC9jb25maWcvYXBpJztcclxuaW1wb3J0IHsgQmFzZUlucHV0Q29tcG9uZW50LCBWYWx1ZUFjY2Vzc29yRGlyZWN0aXZlIH0gZnJvbSAnYXJpbC91aS9saWInO1xyXG5cclxuaW1wb3J0IHsgQXNzZXRQaWNrZXJSZXNwb25zZURUTywgQXR0cmlidXRlRWxlbWVudCwgUmVzdWx0LCBTdWdnZXN0aW9uc0RUTywgU3VnZ2VzdGlvbnNHcm91cERUTyB9IGZyb20gJy4vaW50ZXJmYWNlJztcclxuXHJcbnR5cGUgVmFsdWVUeXBlcyA9ICd0ZXh0JyB8ICdudW1iZXInO1xyXG5AQ29tcG9uZW50KHtcclxuXHRzdGFuZGFsb25lOiB0cnVlLFxyXG5cdHNlbGVjdG9yOiAnYXJpbC1hc3NldC1waWNrZXJbbmdNb2RlbF0sIGFyaWwtYXNzZXQtcGlja2VyW2Zvcm1Db250cm9sXSwgYXJpbC1hc3NldC1waWNrZXJbZm9ybUNvbnRyb2xOYW1lXScsXHJcblx0dGVtcGxhdGVVcmw6ICcuL2Fzc2V0LXBpY2tlci5jb21wb25lbnQuaHRtbCcsXHJcblx0aW1wb3J0czogW1JlYWN0aXZlRm9ybXNNb2R1bGUsIEF1dG9Db21wbGV0ZU1vZHVsZV0sXHJcblx0aG9zdERpcmVjdGl2ZXM6IFtWYWx1ZUFjY2Vzc29yRGlyZWN0aXZlXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQXNzZXRQaWNrZXJDb21wb25lbnQgZXh0ZW5kcyBCYXNlSW5wdXRDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcclxuXHRAVmlld0NoaWxkKEF1dG9Db21wbGV0ZSkgYXV0b0NvbXBsZXRlUmVmITogQXV0b0NvbXBsZXRlO1xyXG5cdGFzc2V0Q29kZSA9IGlucHV0PHN0cmluZyB8IHN0cmluZ1tdIHwgbnVsbD4obnVsbCk7XHJcblxyXG5cdHBsYWNlaG9sZGVyID0gaW5wdXQ8c3RyaW5nPignQXJhbWEuLi4nKTtcclxuXHRmb3JjZVNlbGVjdGlvbiA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcclxuXHRtdWx0aXBsZSA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcclxuXHRzaG93Q2xlYXIgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XHJcblx0b3B0aW9uVmFsdWUgPSBpbnB1dDxrZXlvZiBTdWdnZXN0aW9uc0RUTyB8IG51bGw+KG51bGwpO1xyXG5cdHR5cGUgPSBpbnB1dDxWYWx1ZVR5cGVzIHwgbnVsbD4obnVsbCk7XHJcblxyXG5cdGZpbHRlcmVkU2VsZWN0aW9uSXRlbXMhOiBTdWdnZXN0aW9uc0dyb3VwRFRPW107XHJcblxyXG5cdGNvbnN0cnVjdG9yKHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxwdWJsaWMgdHJhbnNsb2NvU2VydmljZTogVHJhbnNsb2NvU2VydmljZSkge1xyXG5cdFx0c3VwZXIoKTtcclxuXHR9XHJcblxyXG5cdG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuXHRcdHRoaXMuYXV0b0NvbXBsZXRlUmVmLmdldE9wdGlvblZhbHVlID0gdGhpcy5nZXRPcHRpb25WYWx1ZS5iaW5kKHRoaXMpO1xyXG5cdH1cclxuXHJcblx0Z2V0T3B0aW9uVmFsdWUob3B0aW9uOiBhbnkpIHtcclxuXHRcdHJldHVybiAoXHJcblx0XHRcdHRoaXMub3B0aW9uVmFsdWUoKSA/XHJcblx0XHRcdFx0dHlwZW9mIG9wdGlvbiA9PT0gJ29iamVjdCcgP1xyXG5cdFx0XHRcdFx0T2JqZWN0VXRpbHMucmVzb2x2ZUZpZWxkRGF0YShvcHRpb24sIHRoaXMub3B0aW9uVmFsdWUoKSlcclxuXHRcdFx0XHRcdDogb3B0aW9uXHJcblx0XHRcdFx0OiBvcHRpb25cclxuXHRcdCk7XHJcblx0fVxyXG5cclxuXHRvbk5nTW9kZWxDaGFuZ2UodmFsdWU6IHN0cmluZykge1xyXG5cdFx0Y29uc3QgdmFsaWRhdGVkVmFsdWUgPSB0aGlzLnZhbGlkYXRlSW5wdXQodmFsdWUpO1xyXG5cdFx0dGhpcy5uZ0NvbnRyb2wudmlld1RvTW9kZWxVcGRhdGUodmFsaWRhdGVkVmFsdWUpO1xyXG5cdH1cclxuXHJcblx0dmFsaWRhdGVJbnB1dCh2YWx1ZTogc3RyaW5nKSB7XHJcblx0XHRpZiAodGhpcy50eXBlKCkgPT09ICdudW1iZXInKSB7XHJcblx0XHRcdHJldHVybiB2YWx1ZS5yZXBsYWNlKC9bXjAtOV0vZywgJycpXHJcblx0XHR9IGVsc2UgaWYgKHRoaXMudHlwZSgpID09PSAndGV4dCcpIHtcclxuXHRcdFx0cmV0dXJuIHZhbHVlLnJlcGxhY2UoL1teYS16QS1axJ/DvMWfxLHDtsOnxJ7DnMWexLDDlsOHXFxzXS9nLCAnJyk7XHJcblx0XHR9XHJcblx0XHRyZXR1cm4gdmFsdWU7XHJcblx0fVxyXG5cclxuXHRhc3luYyBzZWFyY2goZXZlbnQ6IGFueSkge1xyXG5cdFx0Y29uc3QgcXVlcnkgPSB0aGlzLnZhbGlkYXRlSW5wdXQoZXZlbnQucXVlcnkpO1xyXG5cdFx0Y29uc3QgcGF5bG9hZCA9IHtcclxuXHRcdFx0c2VhcmNoVGV4dDogcXVlcnksXHJcblx0XHRcdGFzc2V0RGVmaW5pdGlvbkNvZGVzOiBBcnJheS5pc0FycmF5KHRoaXMuYXNzZXRDb2RlKCkpID8gdGhpcy5hc3NldENvZGUoKSA6IFt0aGlzLmFzc2V0Q29kZSgpXSxcclxuXHRcdFx0cGFnZVNpemU6IDUsXHJcblx0XHRcdHBhZ2VOdW1iZXI6IDFcclxuXHRcdH07XHJcblx0XHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdXNlbGVzcy1lc2NhcGVcclxuXHRcdGNvbnN0IHJlbW90ZVVybCA9IEFQSV9DT05GSUdTLmFwaS5yZXBsYWNlKC9cXC9bXlxcL10rXFwvdjEkLywgYC9ob3N0L3YxYCk7XHJcblx0XHRjb25zdCBzZWxlY3Rpb25Hcm91cDogQXNzZXRQaWNrZXJSZXNwb25zZURUTyA9IGF3YWl0IGZpcnN0VmFsdWVGcm9tKFxyXG5cdFx0XHR0aGlzLmh0dHAucG9zdDxhbnk+KHJlbW90ZVVybCArICcvbWQvZWxhc3RpYy1zZWFyY2gnLCBwYXlsb2FkKVxyXG5cdFx0KTtcclxuXHRcdGNvbnN0IGdyb3VwZWRTZWxlY3Rpb25JdGVtczogeyBba2V5OiBzdHJpbmddOiBSZXN1bHRbXSB9ID0gdGhpcy5ncm91cEJ5QXNzZXREZWZpbml0aW9uQ29kZShzZWxlY3Rpb25Hcm91cD8ucmVzdWx0KTtcclxuXHJcblx0XHRjb25zdCBuZXdGaWx0ZXJlZEdyb3VwU3VnZ2VzdGlvbnM6IFN1Z2dlc3Rpb25zR3JvdXBEVE9bXSA9IFtdO1xyXG5cdFx0T2JqZWN0LmtleXMoZ3JvdXBlZFNlbGVjdGlvbkl0ZW1zKS5tYXAoKGtleTogc3RyaW5nKSA9PiB7XHJcblx0XHRcdGNvbnN0IGdyb3VwRGF0YTogU3VnZ2VzdGlvbnNHcm91cERUTyA9IHsgdGV4dDoga2V5LCBrZXk6IGtleSwgaXRlbXM6IFtdIH07XHJcblx0XHRcdGdyb3VwZWRTZWxlY3Rpb25JdGVtc1trZXldLm1hcCgoaXRlbTogUmVzdWx0KSA9PiB7XHJcblx0XHRcdFx0Z3JvdXBEYXRhLml0ZW1zLnB1c2goe1xyXG5cdFx0XHRcdFx0a2V5OiBpdGVtLmlkLFxyXG5cdFx0XHRcdFx0dGV4dDogdGhpcy5nZXRBdHRpcmlidXRlc1ZhbHVlRGVzY3IoaXRlbS5hdHRyaWJ1dGVzKVxyXG5cdFx0XHRcdH0pO1xyXG5cdFx0XHR9KTtcclxuXHRcdFx0bmV3RmlsdGVyZWRHcm91cFN1Z2dlc3Rpb25zLnB1c2goZ3JvdXBEYXRhKTtcclxuXHRcdH0pO1xyXG5cdFx0dGhpcy5maWx0ZXJlZFNlbGVjdGlvbkl0ZW1zID0gbmV3RmlsdGVyZWRHcm91cFN1Z2dlc3Rpb25zO1xyXG5cdH1cclxuXHJcblx0Z3JvdXBCeUFzc2V0RGVmaW5pdGlvbkNvZGUoYXJyYXk6IFJlc3VsdFtdKTogeyBba2V5OiBzdHJpbmddOiBSZXN1bHRbXSB9IHtcclxuXHRcdHJldHVybiBhcnJheS5yZWR1Y2UoKHJlc3VsdDogeyBba2V5OiBzdHJpbmddOiBSZXN1bHRbXSB9LCBjdXJyZW50VmFsdWU6IFJlc3VsdCkgPT4ge1xyXG5cdFx0XHRjb25zdCBhc3NldE5hbWUgPSBjdXJyZW50VmFsdWUuYXNzZXRzWzBdPy5hc3NldERlZmluaXRpb25OYW1lIHx8ICdVbmtub3duJztcclxuXHRcdFx0aWYgKCFyZXN1bHRbYXNzZXROYW1lXSkge1xyXG5cdFx0XHRcdHJlc3VsdFthc3NldE5hbWVdID0gW107XHJcblx0XHRcdH1cclxuXHRcdFx0cmVzdWx0W2Fzc2V0TmFtZV0ucHVzaChjdXJyZW50VmFsdWUpO1xyXG5cdFx0XHRyZXR1cm4gcmVzdWx0O1xyXG5cdFx0fSwge30pO1xyXG5cdH1cclxuXHJcblx0Z2V0QXR0aXJpYnV0ZXNWYWx1ZURlc2NyKGF0dHJpYnV0ZXM6IEF0dHJpYnV0ZUVsZW1lbnRbXSk6IHN0cmluZyB7XHJcblx0XHRyZXR1cm4gYXR0cmlidXRlcy5tYXAoKGF0dHIpID0+IChhdHRyLnZhbHVlRGVzYyA/IGF0dHIudmFsdWVEZXNjIDogYXR0ci52YWx1ZSkpLmpvaW4oJyAtICcpO1xyXG5cdH1cclxufVxyXG4iLCI8cC1hdXRvQ29tcGxldGVcclxuXHRvcHRpb25MYWJlbD1cInRleHRcIlxyXG5cdFtvcHRpb25WYWx1ZV09XCJvcHRpb25WYWx1ZSgpIVwiXHJcblx0W3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyKClcIlxyXG5cdFttdWx0aXBsZV09XCJtdWx0aXBsZSgpXCJcclxuXHRbZ3JvdXBdPVwidHJ1ZVwiXHJcblx0W2ZvcmNlU2VsZWN0aW9uXT1cImZvcmNlU2VsZWN0aW9uKClcIlxyXG5cdFtkZWxheV09XCI0MDBcIlxyXG5cdFtzdWdnZXN0aW9uc109XCJmaWx0ZXJlZFNlbGVjdGlvbkl0ZW1zXCJcclxuXHQoY29tcGxldGVNZXRob2QpPVwic2VhcmNoKCRldmVudClcIlxyXG5cdFtmb3JtQ29udHJvbF09XCJuZ0NvbnRyb2wuY29udHJvbFwiXHJcblx0W2F1dG9IaWdobGlnaHRdPVwidHJ1ZVwiXHJcblx0W3R5cGVdPVwidHlwZSgpIVwiXHJcblx0KG5nTW9kZWxDaGFuZ2UpPVwib25OZ01vZGVsQ2hhbmdlKCRldmVudClcIlxyXG5cdFtzaG93Q2xlYXJdPVwic2hvd0NsZWFyKClcIlxyXG5cdFtlbXB0eU1lc3NhZ2VdPVwidHJhbnNsb2NvU2VydmljZS50cmFuc2xhdGUoJ21lc3NhZ2VzLm5vRGF0YVRvRGlzcGxheScpXCJcclxuXHRhcHBlbmRUbz1cImJvZHlcIj5cclxuXHQ8bmctdGVtcGxhdGUgbGV0LWdyb3VwIHBUZW1wbGF0ZT1cImdyb3VwXCI+XHJcblx0XHQ8ZGl2IGNsYXNzPVwiZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuXHRcdFx0PHNwYW4gc3R5bGU9XCJmb250LXdlaWdodDogODAwXCI+e3sgZ3JvdXAudGV4dCB9fTwvc3Bhbj5cclxuXHRcdDwvZGl2PlxyXG5cdDwvbmctdGVtcGxhdGU+XHJcbjwvcC1hdXRvQ29tcGxldGU+XHJcbiJdfQ==
@@ -1,2 +1,3 @@
1
+ /* eslint-disable @typescript-eslint/no-empty-interface */
1
2
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJpbC91aS9idXNpbmVzcy1jb21wb25lbnRzL2Fzc2V0UGlja2VyL3NyYy9pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1pbnRlcmZhY2UgKi9cclxuZXhwb3J0IGludGVyZmFjZSBTdWdnZXN0aW9uc0dyb3VwRFRPIHtcclxuXHRrZXk6IG51bWJlciB8IHN0cmluZyB8IG51bGw7XHJcblx0dGV4dDogc3RyaW5nO1xyXG5cdGl0ZW1zOiBTdWdnZXN0aW9uc0RUT1tdO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgU3VnZ2VzdGlvbnNEVE8ge1xyXG5cdGtleTogbnVtYmVyIHwgc3RyaW5nIHwgbnVsbDtcclxuXHR0ZXh0OiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgXHREZWZhdWx0U2VhcmNoQWdncmVnYXRlQXNzZXRBZ2dyZWdhdGUge1xyXG5cdFtrZXk6IHN0cmluZ106IEFkZGl0aW9uYWxQcm9wO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEFkZGl0aW9uYWxQcm9wIHtcclxucmVzdWx0SW5mbzogUmVzdWx0SW5mbztcclxucmVzdWx0OiAgICAgQXNzZXRBZ2dyZWdhdGVbXTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBSZXN1bHRJbmZvIHtcclxuXHR0b3RhbFBhZ2U6IG51bWJlcjtcclxuXHR0b3RhbEl0ZW06IG51bWJlcjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBBc3NldEFnZ3JlZ2F0ZSB7XHJcblx0aWQ6ICAgICAgICAgICAgICAgICAgbnVtYmVyO1xyXG5cdGFzc2V0RGVmaW5pdGlvbklkOiAgIG51bWJlcjtcclxuXHRhc3NldERlZmluaXRpb25Db2RlOiBzdHJpbmc7XHJcblx0YXNzZXREZWZpbml0aW9uTmFtZTogc3RyaW5nO1xyXG5cdHVuaXF1ZUlkZW50aWZpZXI6ICAgIHN0cmluZztcclxuXHRhdXRob3JpdHlHcm91cDogICAgICBzdHJpbmc7XHJcblx0Y3JlYXRlRGF0ZTogICAgICAgICAgbnVtYmVyO1xyXG5cdHVwZGF0ZURhdGU6ICAgICAgICAgIG51bWJlcjtcclxuXHR1cGRhdGVVc2VyOiAgICAgICAgICBzdHJpbmc7XHJcblx0Y3JlYXRlVXNlcjogICAgICAgICAgc3RyaW5nO1xyXG5cdGFzc2V0czogICAgICAgICAgICAgIEFzc2V0W107XHJcblx0YXR0cmlidXRlczogICAgICAgICAgQXR0cmlidXRlRWxlbWVudFtdO1xyXG59XHJcblxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBBc3NldCB7XHJcblx0YWxpYXM6ICAgICAgICAgICAgICAgc3RyaW5nO1xyXG5cdGFzc2V0RGVmaW5pdGlvbklEOiAgIG51bWJlcjtcclxuXHRhc3NldERlZmluaXRpb25Db2RlOiBzdHJpbmc7XHJcblx0YXNzZXREZWZpbml0aW9uTmFtZTogc3RyaW5nO1xyXG5cdGFzc2V0SWQ6ICAgICAgICAgICAgIG51bWJlcjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBBdHRyaWJ1dGVFbGVtZW50IHtcclxuXHRpZDogICAgICAgIG51bWJlcjtcclxuXHRhdHRyaWJ1dGU6IEF0dHJpYnV0ZUF0dHJpYnV0ZTtcclxuXHR2YWx1ZTogICAgIFZhbHVlO1xyXG5cdHN0YXJ0RGF0ZTogbnVtYmVyO1xyXG5cdHZhbHVlRGVzYzogc3RyaW5nO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEF0dHJpYnV0ZUF0dHJpYnV0ZSB7XHJcblx0YWxpYXM6ICAgICAgICAgc3RyaW5nO1xyXG5cdGF0dHJpYnV0ZUNvZGU6IHN0cmluZztcclxuXHRhdHRyaWJ1dGVOYW1lOiBzdHJpbmc7XHJcblx0YXR0cmlidXRlSWQ6ICAgbnVtYmVyO1xyXG5cdGF0dHJpYnV0ZVR5cGU6IHN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBWYWx1ZSB7XHJcbn1cclxuXHJcbiJdfQ==
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJpbC91aS9idXNpbmVzcy1jb21wb25lbnRzL2Fzc2V0UGlja2VyL3NyYy9pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsMERBQTBEIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LWludGVyZmFjZSAqL1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBTdWdnZXN0aW9uc0dyb3VwRFRPIHtcclxuXHRrZXk6IG51bWJlciB8IHN0cmluZyB8IG51bGw7XHJcblx0dGV4dDogc3RyaW5nO1xyXG5cdGl0ZW1zOiBTdWdnZXN0aW9uc0RUT1tdO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFN1Z2dlc3Rpb25zRFRPIHtcclxuXHRrZXk6IG51bWJlciB8IHN0cmluZyB8IG51bGw7XHJcblx0dGV4dDogc3RyaW5nO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEFzc2V0UGlja2VyUmVzcG9uc2VEVE8ge1xyXG5cdHJlc3VsdEluZm86IFJlc3VsdEluZm87XHJcblx0cmVzdWx0OiBSZXN1bHRbXTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBSZXN1bHQge1xyXG5cdGlkOiBudW1iZXI7XHJcblx0YXNzZXREZWZpbml0aW9uQ29kZTogc3RyaW5nO1xyXG5cdGFzc2V0TmFtZTogc3RyaW5nO1xyXG5cdGF1dGhvcml0eUdyb3VwOiBzdHJpbmc7XHJcblx0YXNzZXRzOiBBc3NldFtdO1xyXG5cdGF0dHJpYnV0ZXM6IEF0dHJpYnV0ZUVsZW1lbnRbXTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBBc3NldCB7XHJcblx0YWxpYXM6IHN0cmluZztcclxuXHRhc3NldERlZmluaXRpb25Db2RlOiBzdHJpbmc7XHJcblx0YXNzZXREZWZpbml0aW9uTmFtZTogc3RyaW5nO1xyXG5cdGFzc2V0SWQ6IG51bWJlcjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBBdHRyaWJ1dGVFbGVtZW50IHtcclxuXHRpZDogbnVtYmVyO1xyXG5cdGF0dHJpYnV0ZTogQXR0cmlidXRlQXR0cmlidXRlO1xyXG5cdHZhbHVlOiBWYWx1ZTtcclxuXHRzdGFydERhdGU6IG51bWJlcjtcclxuXHRlbmREYXRlOiBudW1iZXI7XHJcblx0dmFsdWVEZXNjOiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQXR0cmlidXRlQXR0cmlidXRlIHtcclxuXHRhbGlhczogc3RyaW5nO1xyXG5cdGF0dHJpYnV0ZUNvZGU6IHN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBWYWx1ZSB7fVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBSZXN1bHRJbmZvIHtcclxuXHR0b3RhbFBhZ2U6IG51bWJlcjtcclxuXHR0b3RhbEl0ZW06IG51bWJlcjtcclxufVxyXG4iXX0=
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { input, EventEmitter, Component, ViewChild, Output } from '@angular/core';
2
+ import { input, Component, ViewChild } from '@angular/core';
3
3
  import * as i4 from '@angular/forms';
4
4
  import { ReactiveFormsModule } from '@angular/forms';
5
5
  import * as i5 from 'primeng/autocomplete';
@@ -19,13 +19,12 @@ class AssetPickerComponent extends BaseInputComponent {
19
19
  this.http = http;
20
20
  this.translocoService = translocoService;
21
21
  this.assetCode = input(null);
22
- this.type = input(null);
23
22
  this.placeholder = input('Arama...');
24
23
  this.forceSelection = input(false);
25
24
  this.multiple = input(false);
26
25
  this.showClear = input(false);
27
26
  this.optionValue = input(null);
28
- this.selectedDefinitionEvent = new EventEmitter();
27
+ this.type = input(null);
29
28
  }
30
29
  ngAfterViewInit() {
31
30
  this.autoCompleteRef.getOptionValue = this.getOptionValue.bind(this);
@@ -55,23 +54,17 @@ class AssetPickerComponent extends BaseInputComponent {
55
54
  const payload = {
56
55
  searchText: query,
57
56
  assetDefinitionCodes: Array.isArray(this.assetCode()) ? this.assetCode() : [this.assetCode()],
58
- pager: {
59
- pageSize: 5,
60
- pageNumber: 1
61
- }
57
+ pageSize: 5,
58
+ pageNumber: 1
62
59
  };
63
60
  // eslint-disable-next-line no-useless-escape
64
61
  const remoteUrl = API_CONFIGS.api.replace(/\/[^\/]+\/v1$/, `/host/v1`);
65
- const selectionGroup = await firstValueFrom(this.http.post(remoteUrl + '/master-data/cache-search', payload));
66
- this.selectionDefinitions = selectionGroup;
62
+ const selectionGroup = await firstValueFrom(this.http.post(remoteUrl + '/md/elastic-search', payload));
63
+ const groupedSelectionItems = this.groupByAssetDefinitionCode(selectionGroup?.result);
67
64
  const newFilteredGroupSuggestions = [];
68
- Object.keys(selectionGroup).map((key) => {
69
- const groupData = {
70
- text: selectionGroup[key]?.result[0]?.assets[0]?.assetDefinitionName,
71
- key: key,
72
- items: []
73
- };
74
- selectionGroup[key].result.map((item) => {
65
+ Object.keys(groupedSelectionItems).map((key) => {
66
+ const groupData = { text: key, key: key, items: [] };
67
+ groupedSelectionItems[key].map((item) => {
75
68
  groupData.items.push({
76
69
  key: item.id,
77
70
  text: this.getAttiributesValueDescr(item.attributes)
@@ -81,26 +74,28 @@ class AssetPickerComponent extends BaseInputComponent {
81
74
  });
82
75
  this.filteredSelectionItems = newFilteredGroupSuggestions;
83
76
  }
84
- getAttiributesValueDescr(attributes) {
85
- return attributes?.map((attr) => (attr.valueDesc ? attr.valueDesc : attr.value)).join(' - ');
77
+ groupByAssetDefinitionCode(array) {
78
+ return array.reduce((result, currentValue) => {
79
+ const assetName = currentValue.assets[0]?.assetDefinitionName || 'Unknown';
80
+ if (!result[assetName]) {
81
+ result[assetName] = [];
82
+ }
83
+ result[assetName].push(currentValue);
84
+ return result;
85
+ }, {});
86
86
  }
87
- triggerSelectedEvents(event) {
88
- const selectedItems = Object.keys(this.selectionDefinitions).map((key) => {
89
- return this.selectionDefinitions[key].result.find((item) => item.id === event?.value?.key);
90
- });
91
- this.selectedDefinitionEvent.emit(selectedItems[0]);
87
+ getAttiributesValueDescr(attributes) {
88
+ return attributes.map((attr) => (attr.valueDesc ? attr.valueDesc : attr.value)).join(' - ');
92
89
  }
93
90
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: AssetPickerComponent, deps: [{ token: i1.HttpClient }, { token: i2.TranslocoService }], target: i0.ɵɵFactoryTarget.Component }); }
94
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.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 } }, outputs: { selectedDefinitionEvent: "selectedDefinitionEvent" }, viewQueries: [{ propertyName: "autoCompleteRef", first: true, predicate: AutoComplete, descendants: true }], usesInheritance: true, hostDirectives: [{ directive: i3.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]=\"400\"\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\tappendTo=\"body\">\r\n\t<ng-template let-group pTemplate=\"group\">\r\n\t\t<div class=\"flex align-items-center\">\r\n\t\t\t<span style=\"font-weight: 800\">{{ group.text }}</span>\r\n\t\t</div>\r\n\t</ng-template>\r\n</p-autoComplete>\r\n", dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: AutoCompleteModule }, { kind: "component", type: i5.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: i6.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }] }); }
91
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.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 }, 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 }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "autoCompleteRef", first: true, predicate: AutoComplete, descendants: true }], usesInheritance: true, hostDirectives: [{ directive: i3.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]=\"400\"\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\tappendTo=\"body\">\r\n\t<ng-template let-group pTemplate=\"group\">\r\n\t\t<div class=\"flex align-items-center\">\r\n\t\t\t<span style=\"font-weight: 800\">{{ group.text }}</span>\r\n\t\t</div>\r\n\t</ng-template>\r\n</p-autoComplete>\r\n", dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: AutoCompleteModule }, { kind: "component", type: i5.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: i6.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }] }); }
95
92
  }
96
93
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: AssetPickerComponent, decorators: [{
97
94
  type: Component,
98
- args: [{ standalone: true, selector: 'aril-asset-picker[ngModel], aril-asset-picker[formControl], aril-asset-picker[formControlName]', imports: [ReactiveFormsModule, AutoCompleteModule], hostDirectives: [ValueAccessorDirective], 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]=\"400\"\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\tappendTo=\"body\">\r\n\t<ng-template let-group pTemplate=\"group\">\r\n\t\t<div class=\"flex align-items-center\">\r\n\t\t\t<span style=\"font-weight: 800\">{{ group.text }}</span>\r\n\t\t</div>\r\n\t</ng-template>\r\n</p-autoComplete>\r\n" }]
95
+ args: [{ standalone: true, selector: 'aril-asset-picker[ngModel], aril-asset-picker[formControl], aril-asset-picker[formControlName]', imports: [ReactiveFormsModule, AutoCompleteModule], hostDirectives: [ValueAccessorDirective], 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]=\"400\"\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\tappendTo=\"body\">\r\n\t<ng-template let-group pTemplate=\"group\">\r\n\t\t<div class=\"flex align-items-center\">\r\n\t\t\t<span style=\"font-weight: 800\">{{ group.text }}</span>\r\n\t\t</div>\r\n\t</ng-template>\r\n</p-autoComplete>\r\n" }]
99
96
  }], ctorParameters: () => [{ type: i1.HttpClient }, { type: i2.TranslocoService }], propDecorators: { autoCompleteRef: [{
100
97
  type: ViewChild,
101
98
  args: [AutoComplete]
102
- }], selectedDefinitionEvent: [{
103
- type: Output
104
99
  }] } });
105
100
 
106
101
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"aril-ui-business-components-assetPicker.mjs","sources":["../../projects/aril/ui/business-components/assetPicker/src/asset-picker.component.ts","../../projects/aril/ui/business-components/assetPicker/src/asset-picker.component.html","../../projects/aril/ui/business-components/assetPicker/aril-ui-business-components-assetPicker.ts"],"sourcesContent":["/* eslint-disable @angular-eslint/component-selector */\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { AfterViewInit, Component, EventEmitter, Output, ViewChild, input } from '@angular/core';\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 { firstValueFrom } from 'rxjs';\r\n\r\nimport { API_CONFIGS } from 'aril/boot/config/api';\r\nimport { BaseInputComponent, ValueAccessorDirective } from 'aril/ui/lib';\r\n\r\nimport {\r\n\tAssetAggregate,\r\n\tAttributeElement,\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\timports: [ReactiveFormsModule, AutoCompleteModule],\r\n\thostDirectives: [ValueAccessorDirective]\r\n})\r\nexport class AssetPickerComponent extends BaseInputComponent implements AfterViewInit {\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\tfilteredSelectionItems!: SuggestionsGroupDTO[];\r\n\tselectionDefinitions!: DefaultSearchAggregateAssetAggregate;\r\n\t@Output() selectedDefinitionEvent: EventEmitter<AssetAggregate> = new EventEmitter<AssetAggregate>();\r\n\r\n\tconstructor(\r\n\t\tprivate http: HttpClient,\r\n\t\tpublic translocoService: TranslocoService\r\n\t) {\r\n\t\tsuper();\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\treturn (\r\n\t\t\tthis.optionValue() ?\r\n\t\t\t\ttypeof option === 'object' ?\r\n\t\t\t\t\tObjectUtils.resolveFieldData(option, this.optionValue())\r\n\t\t\t\t:\toption\r\n\t\t\t:\toption\r\n\t\t);\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(/[^0-9]/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\tasync search(event: any) {\r\n\t\tconst query = this.validateInput(event.query);\r\n\t\tconst payload = {\r\n\t\t\tsearchText: query,\r\n\t\t\tassetDefinitionCodes: Array.isArray(this.assetCode()) ? this.assetCode() : [this.assetCode()],\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\t\t// eslint-disable-next-line no-useless-escape\r\n\t\tconst remoteUrl = API_CONFIGS.api.replace(/\\/[^\\/]+\\/v1$/, `/host/v1`);\r\n\t\tconst selectionGroup: DefaultSearchAggregateAssetAggregate = await firstValueFrom(\r\n\t\t\tthis.http.post<any>(remoteUrl + '/master-data/cache-search', payload)\r\n\t\t);\r\n\t\tthis.selectionDefinitions = selectionGroup;\r\n\t\tconst newFilteredGroupSuggestions: SuggestionsGroupDTO[] = [];\r\n\t\tObject.keys(selectionGroup).map((key: string) => {\r\n\t\t\tconst groupData: SuggestionsGroupDTO = {\r\n\t\t\t\ttext: selectionGroup[key]?.result[0]?.assets[0]?.assetDefinitionName,\r\n\t\t\t\tkey: key,\r\n\t\t\t\titems: []\r\n\t\t\t};\r\n\t\t\tselectionGroup[key].result.map((item: AssetAggregate) => {\r\n\t\t\t\tgroupData.items.push({\r\n\t\t\t\t\tkey: item.id,\r\n\t\t\t\t\ttext: this.getAttiributesValueDescr(item.attributes)\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t\tnewFilteredGroupSuggestions.push(groupData);\r\n\t\t});\r\n\t\tthis.filteredSelectionItems = newFilteredGroupSuggestions;\r\n\t}\r\n\r\n\tgetAttiributesValueDescr(attributes: AttributeElement[]): string {\r\n\t\treturn attributes?.map((attr) => (attr.valueDesc ? attr.valueDesc : attr.value)).join(' - ');\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\tthis.selectedDefinitionEvent.emit(selectedItems[0]);\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]=\"400\"\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\tappendTo=\"body\">\r\n\t<ng-template let-group pTemplate=\"group\">\r\n\t\t<div class=\"flex align-items-center\">\r\n\t\t\t<span style=\"font-weight: 800\">{{ group.text }}</span>\r\n\t\t</div>\r\n\t</ng-template>\r\n</p-autoComplete>\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;;;;;AA8BM,MAAO,oBAAqB,SAAQ,kBAAkB,CAAA;IAc3D,WACS,CAAA,IAAgB,EACjB,gBAAkC,EAAA;AAEzC,QAAA,KAAK,EAAE,CAAC;QAHA,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAY;QACjB,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAkB;AAd1C,QAAA,IAAA,CAAA,SAAS,GAAG,KAAK,CAA2B,IAAI,CAAC,CAAC;AAClD,QAAA,IAAA,CAAA,IAAI,GAAG,KAAK,CAAoB,IAAI,CAAC,CAAC;AAEtC,QAAA,IAAA,CAAA,WAAW,GAAG,KAAK,CAAS,UAAU,CAAC,CAAC;AACxC,QAAA,IAAA,CAAA,cAAc,GAAG,KAAK,CAAU,KAAK,CAAC,CAAC;AACvC,QAAA,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAU,KAAK,CAAC,CAAC;AACjC,QAAA,IAAA,CAAA,SAAS,GAAG,KAAK,CAAU,KAAK,CAAC,CAAC;AAClC,QAAA,IAAA,CAAA,WAAW,GAAG,KAAK,CAA8B,IAAI,CAAC,CAAC;AAG7C,QAAA,IAAA,CAAA,uBAAuB,GAAiC,IAAI,YAAY,EAAkB,CAAC;KAOpG;IAED,eAAe,GAAA;AACd,QAAA,IAAI,CAAC,eAAe,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KACrE;AAED,IAAA,cAAc,CAAC,MAAW,EAAA;AACzB,QAAA,QACC,IAAI,CAAC,WAAW,EAAE;AACjB,YAAA,OAAO,MAAM,KAAK,QAAQ;gBACzB,WAAW,CAAC,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC;AACzD,kBAAE,MAAM;cACP,MAAM,EACP;KACF;AAED,IAAA,eAAe,CAAC,KAAa,EAAA;QAC5B,MAAM,cAAc,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AACjD,QAAA,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC;KACjD;AAED,IAAA,aAAa,CAAC,KAAa,EAAA;AAC1B,QAAA,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,QAAQ,EAAE;YAC7B,OAAO,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;SACpC;AAAM,aAAA,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,MAAM,EAAE;YAClC,OAAO,KAAK,CAAC,OAAO,CAAC,0BAA0B,EAAE,EAAE,CAAC,CAAC;SACrD;AACD,QAAA,OAAO,KAAK,CAAC;KACb;IAED,MAAM,MAAM,CAAC,KAAU,EAAA;QACtB,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AAC9C,QAAA,MAAM,OAAO,GAAG;AACf,YAAA,UAAU,EAAE,KAAK;YACjB,oBAAoB,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;AAC7F,YAAA,KAAK,EAAE;AACN,gBAAA,QAAQ,EAAE,CAAC;AACX,gBAAA,UAAU,EAAE,CAAC;AACb,aAAA;SACD,CAAC;;AAEF,QAAA,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,eAAe,EAAE,CAAU,QAAA,CAAA,CAAC,CAAC;AACvE,QAAA,MAAM,cAAc,GAAyC,MAAM,cAAc,CAChF,IAAI,CAAC,IAAI,CAAC,IAAI,CAAM,SAAS,GAAG,2BAA2B,EAAE,OAAO,CAAC,CACrE,CAAC;AACF,QAAA,IAAI,CAAC,oBAAoB,GAAG,cAAc,CAAC;QAC3C,MAAM,2BAA2B,GAA0B,EAAE,CAAC;QAC9D,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,CAAC,GAAW,KAAI;AAC/C,YAAA,MAAM,SAAS,GAAwB;AACtC,gBAAA,IAAI,EAAE,cAAc,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,mBAAmB;AACpE,gBAAA,GAAG,EAAE,GAAG;AACR,gBAAA,KAAK,EAAE,EAAE;aACT,CAAC;YACF,cAAc,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAoB,KAAI;AACvD,gBAAA,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC;oBACpB,GAAG,EAAE,IAAI,CAAC,EAAE;oBACZ,IAAI,EAAE,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,UAAU,CAAC;AACpD,iBAAA,CAAC,CAAC;AACJ,aAAC,CAAC,CAAC;AACH,YAAA,2BAA2B,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AAC7C,SAAC,CAAC,CAAC;AACH,QAAA,IAAI,CAAC,sBAAsB,GAAG,2BAA2B,CAAC;KAC1D;AAED,IAAA,wBAAwB,CAAC,UAA8B,EAAA;AACtD,QAAA,OAAO,UAAU,EAAE,GAAG,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC7F;AAED,IAAA,qBAAqB,CAAC,KAAU,EAAA;AAC/B,QAAA,MAAM,aAAa,GAAqB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,GAAG,CAAC,CAAC,GAAW,KAAI;YAClG,OAAO,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAoB,KAAK,IAAI,CAAC,EAAE,KAAK,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;AAC5G,SAAC,CAAqB,CAAC;QAEvB,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;KACpD;8GA7FW,oBAAoB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAApB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,oBAAoB,6rCACrB,YAAY,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,cAAA,EAAA,CAAA,EAAA,SAAA,EAAA,EAAA,CAAA,sBAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC/BxB,y2BAwBA,EDGW,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,mBAAmB,yTAAE,kBAAkB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,OAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,SAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,UAAA,EAAA,cAAA,EAAA,MAAA,EAAA,eAAA,EAAA,uBAAA,EAAA,sBAAA,EAAA,WAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,UAAA,EAAA,eAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,YAAA,EAAA,YAAA,EAAA,WAAA,EAAA,mBAAA,EAAA,gBAAA,EAAA,cAAA,EAAA,QAAA,EAAA,OAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,OAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,UAAA,EAAA,SAAA,EAAA,cAAA,EAAA,uBAAA,EAAA,uBAAA,EAAA,WAAA,EAAA,cAAA,EAAA,qBAAA,EAAA,kBAAA,EAAA,gBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,aAAA,EAAA,IAAA,EAAA,eAAA,EAAA,uBAAA,EAAA,kBAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,cAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,gBAAA,EAAA,UAAA,EAAA,YAAA,EAAA,SAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,SAAA,EAAA,QAAA,EAAA,QAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,WAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAGrC,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAPhC,SAAS;iCACG,IAAI,EAAA,QAAA,EACN,gGAAgG,EAAA,OAAA,EAEjG,CAAC,mBAAmB,EAAE,kBAAkB,CAAC,EAAA,cAAA,EAClC,CAAC,sBAAsB,CAAC,EAAA,QAAA,EAAA,y2BAAA,EAAA,CAAA;8GAGf,eAAe,EAAA,CAAA;sBAAvC,SAAS;uBAAC,YAAY,CAAA;gBAWb,uBAAuB,EAAA,CAAA;sBAAhC,MAAM;;;AE1CR;;AAEG;;;;"}
1
+ {"version":3,"file":"aril-ui-business-components-assetPicker.mjs","sources":["../../projects/aril/ui/business-components/assetPicker/src/asset-picker.component.ts","../../projects/aril/ui/business-components/assetPicker/src/asset-picker.component.html","../../projects/aril/ui/business-components/assetPicker/aril-ui-business-components-assetPicker.ts"],"sourcesContent":["import { HttpClient } from '@angular/common/http';\r\nimport { AfterViewInit, Component, ViewChild, input } from '@angular/core';\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 { firstValueFrom } from 'rxjs';\r\nimport { TranslocoService } from '@ngneat/transloco';\r\n\r\nimport { API_CONFIGS } from 'aril/boot/config/api';\r\nimport { BaseInputComponent, ValueAccessorDirective } from 'aril/ui/lib';\r\n\r\nimport { AssetPickerResponseDTO, AttributeElement, Result, SuggestionsDTO, SuggestionsGroupDTO } 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\timports: [ReactiveFormsModule, AutoCompleteModule],\r\n\thostDirectives: [ValueAccessorDirective]\r\n})\r\nexport class AssetPickerComponent extends BaseInputComponent implements AfterViewInit {\r\n\t@ViewChild(AutoComplete) autoCompleteRef!: AutoComplete;\r\n\tassetCode = input<string | string[] | 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\ttype = input<ValueTypes | null>(null);\r\n\r\n\tfilteredSelectionItems!: SuggestionsGroupDTO[];\r\n\r\n\tconstructor(private http: HttpClient,public translocoService: TranslocoService) {\r\n\t\tsuper();\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\treturn (\r\n\t\t\tthis.optionValue() ?\r\n\t\t\t\ttypeof option === 'object' ?\r\n\t\t\t\t\tObjectUtils.resolveFieldData(option, this.optionValue())\r\n\t\t\t\t\t: option\r\n\t\t\t\t: option\r\n\t\t);\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(/[^0-9]/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\tasync search(event: any) {\r\n\t\tconst query = this.validateInput(event.query);\r\n\t\tconst payload = {\r\n\t\t\tsearchText: query,\r\n\t\t\tassetDefinitionCodes: Array.isArray(this.assetCode()) ? this.assetCode() : [this.assetCode()],\r\n\t\t\tpageSize: 5,\r\n\t\t\tpageNumber: 1\r\n\t\t};\r\n\t\t// eslint-disable-next-line no-useless-escape\r\n\t\tconst remoteUrl = API_CONFIGS.api.replace(/\\/[^\\/]+\\/v1$/, `/host/v1`);\r\n\t\tconst selectionGroup: AssetPickerResponseDTO = await firstValueFrom(\r\n\t\t\tthis.http.post<any>(remoteUrl + '/md/elastic-search', payload)\r\n\t\t);\r\n\t\tconst groupedSelectionItems: { [key: string]: Result[] } = this.groupByAssetDefinitionCode(selectionGroup?.result);\r\n\r\n\t\tconst newFilteredGroupSuggestions: SuggestionsGroupDTO[] = [];\r\n\t\tObject.keys(groupedSelectionItems).map((key: string) => {\r\n\t\t\tconst groupData: SuggestionsGroupDTO = { text: key, key: key, items: [] };\r\n\t\t\tgroupedSelectionItems[key].map((item: Result) => {\r\n\t\t\t\tgroupData.items.push({\r\n\t\t\t\t\tkey: item.id,\r\n\t\t\t\t\ttext: this.getAttiributesValueDescr(item.attributes)\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t\tnewFilteredGroupSuggestions.push(groupData);\r\n\t\t});\r\n\t\tthis.filteredSelectionItems = newFilteredGroupSuggestions;\r\n\t}\r\n\r\n\tgroupByAssetDefinitionCode(array: Result[]): { [key: string]: Result[] } {\r\n\t\treturn array.reduce((result: { [key: string]: Result[] }, currentValue: Result) => {\r\n\t\t\tconst assetName = currentValue.assets[0]?.assetDefinitionName || 'Unknown';\r\n\t\t\tif (!result[assetName]) {\r\n\t\t\t\tresult[assetName] = [];\r\n\t\t\t}\r\n\t\t\tresult[assetName].push(currentValue);\r\n\t\t\treturn result;\r\n\t\t}, {});\r\n\t}\r\n\r\n\tgetAttiributesValueDescr(attributes: AttributeElement[]): string {\r\n\t\treturn attributes.map((attr) => (attr.valueDesc ? attr.valueDesc : attr.value)).join(' - ');\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]=\"400\"\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\tappendTo=\"body\">\r\n\t<ng-template let-group pTemplate=\"group\">\r\n\t\t<div class=\"flex align-items-center\">\r\n\t\t\t<span style=\"font-weight: 800\">{{ group.text }}</span>\r\n\t\t</div>\r\n\t</ng-template>\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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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "aril",
3
- "version": "0.1.22",
3
+ "version": "0.1.23",
4
4
  "peerDependencies": {
5
5
  "@angular/cdk": "~17.1.0",
6
6
  "@angular/common": "^17.1.0",
@@ -39,6 +39,12 @@
39
39
  "esm": "./esm2022/boot/aril-boot.mjs",
40
40
  "default": "./fesm2022/aril-boot.mjs"
41
41
  },
42
+ "./keycloak": {
43
+ "types": "./keycloak/index.d.ts",
44
+ "esm2022": "./esm2022/keycloak/aril-keycloak.mjs",
45
+ "esm": "./esm2022/keycloak/aril-keycloak.mjs",
46
+ "default": "./fesm2022/aril-keycloak.mjs"
47
+ },
42
48
  "./i18n": {
43
49
  "types": "./i18n/index.d.ts",
44
50
  "esm2022": "./esm2022/i18n/aril-i18n.mjs",
@@ -51,12 +57,6 @@
51
57
  "esm": "./esm2022/http/aril-http.mjs",
52
58
  "default": "./fesm2022/aril-http.mjs"
53
59
  },
54
- "./keycloak": {
55
- "types": "./keycloak/index.d.ts",
56
- "esm2022": "./esm2022/keycloak/aril-keycloak.mjs",
57
- "esm": "./esm2022/keycloak/aril-keycloak.mjs",
58
- "default": "./fesm2022/aril-keycloak.mjs"
59
- },
60
60
  "./theme": {
61
61
  "types": "./theme/index.d.ts",
62
62
  "esm2022": "./esm2022/theme/aril-theme.mjs",
@@ -159,12 +159,6 @@
159
159
  "esm": "./esm2022/ui/field/aril-ui-field.mjs",
160
160
  "default": "./fesm2022/aril-ui-field.mjs"
161
161
  },
162
- "./ui/form": {
163
- "types": "./ui/form/index.d.ts",
164
- "esm2022": "./esm2022/ui/form/aril-ui-form.mjs",
165
- "esm": "./esm2022/ui/form/aril-ui-form.mjs",
166
- "default": "./fesm2022/aril-ui-form.mjs"
167
- },
168
162
  "./ui/fileUpload": {
169
163
  "types": "./ui/fileUpload/index.d.ts",
170
164
  "esm2022": "./esm2022/ui/fileUpload/aril-ui-fileUpload.mjs",
@@ -177,24 +171,30 @@
177
171
  "esm": "./esm2022/ui/img-viewer/aril-ui-img-viewer.mjs",
178
172
  "default": "./fesm2022/aril-ui-img-viewer.mjs"
179
173
  },
174
+ "./ui/form": {
175
+ "types": "./ui/form/index.d.ts",
176
+ "esm2022": "./esm2022/ui/form/aril-ui-form.mjs",
177
+ "esm": "./esm2022/ui/form/aril-ui-form.mjs",
178
+ "default": "./fesm2022/aril-ui-form.mjs"
179
+ },
180
180
  "./ui/lib": {
181
181
  "types": "./ui/lib/index.d.ts",
182
182
  "esm2022": "./esm2022/ui/lib/aril-ui-lib.mjs",
183
183
  "esm": "./esm2022/ui/lib/aril-ui-lib.mjs",
184
184
  "default": "./fesm2022/aril-ui-lib.mjs"
185
185
  },
186
- "./ui/loader": {
187
- "types": "./ui/loader/index.d.ts",
188
- "esm2022": "./esm2022/ui/loader/aril-ui-loader.mjs",
189
- "esm": "./esm2022/ui/loader/aril-ui-loader.mjs",
190
- "default": "./fesm2022/aril-ui-loader.mjs"
191
- },
192
186
  "./ui/mask": {
193
187
  "types": "./ui/mask/index.d.ts",
194
188
  "esm2022": "./esm2022/ui/mask/aril-ui-mask.mjs",
195
189
  "esm": "./esm2022/ui/mask/aril-ui-mask.mjs",
196
190
  "default": "./fesm2022/aril-ui-mask.mjs"
197
191
  },
192
+ "./ui/loader": {
193
+ "types": "./ui/loader/index.d.ts",
194
+ "esm2022": "./esm2022/ui/loader/aril-ui-loader.mjs",
195
+ "esm": "./esm2022/ui/loader/aril-ui-loader.mjs",
196
+ "default": "./fesm2022/aril-ui-loader.mjs"
197
+ },
198
198
  "./ui/multiSelect": {
199
199
  "types": "./ui/multiSelect/index.d.ts",
200
200
  "esm2022": "./esm2022/ui/multiSelect/aril-ui-multiSelect.mjs",
@@ -249,18 +249,18 @@
249
249
  "esm": "./esm2022/ui/radioButton/aril-ui-radioButton.mjs",
250
250
  "default": "./fesm2022/aril-ui-radioButton.mjs"
251
251
  },
252
- "./ui/rolePicker": {
253
- "types": "./ui/rolePicker/index.d.ts",
254
- "esm2022": "./esm2022/ui/rolePicker/aril-ui-rolePicker.mjs",
255
- "esm": "./esm2022/ui/rolePicker/aril-ui-rolePicker.mjs",
256
- "default": "./fesm2022/aril-ui-rolePicker.mjs"
257
- },
258
252
  "./ui/selectBox": {
259
253
  "types": "./ui/selectBox/index.d.ts",
260
254
  "esm2022": "./esm2022/ui/selectBox/aril-ui-selectBox.mjs",
261
255
  "esm": "./esm2022/ui/selectBox/aril-ui-selectBox.mjs",
262
256
  "default": "./fesm2022/aril-ui-selectBox.mjs"
263
257
  },
258
+ "./ui/rolePicker": {
259
+ "types": "./ui/rolePicker/index.d.ts",
260
+ "esm2022": "./esm2022/ui/rolePicker/aril-ui-rolePicker.mjs",
261
+ "esm": "./esm2022/ui/rolePicker/aril-ui-rolePicker.mjs",
262
+ "default": "./fesm2022/aril-ui-rolePicker.mjs"
263
+ },
264
264
  "./ui/switch": {
265
265
  "types": "./ui/switch/index.d.ts",
266
266
  "esm2022": "./esm2022/ui/switch/aril-ui-switch.mjs",
@@ -327,6 +327,12 @@
327
327
  "esm": "./esm2022/ui/treeTable/aril-ui-treeTable.mjs",
328
328
  "default": "./fesm2022/aril-ui-treeTable.mjs"
329
329
  },
330
+ "./ui/userPicker": {
331
+ "types": "./ui/userPicker/index.d.ts",
332
+ "esm2022": "./esm2022/ui/userPicker/aril-ui-userPicker.mjs",
333
+ "esm": "./esm2022/ui/userPicker/aril-ui-userPicker.mjs",
334
+ "default": "./fesm2022/aril-ui-userPicker.mjs"
335
+ },
330
336
  "./ui/value": {
331
337
  "types": "./ui/value/index.d.ts",
332
338
  "esm2022": "./esm2022/ui/value/aril-ui-value.mjs",
@@ -339,42 +345,36 @@
339
345
  "esm": "./esm2022/util/block/aril-util-block.mjs",
340
346
  "default": "./fesm2022/aril-util-block.mjs"
341
347
  },
342
- "./ui/userPicker": {
343
- "types": "./ui/userPicker/index.d.ts",
344
- "esm2022": "./esm2022/ui/userPicker/aril-ui-userPicker.mjs",
345
- "esm": "./esm2022/ui/userPicker/aril-ui-userPicker.mjs",
346
- "default": "./fesm2022/aril-ui-userPicker.mjs"
347
- },
348
348
  "./util/custom_pages": {
349
349
  "types": "./util/custom_pages/index.d.ts",
350
350
  "esm2022": "./esm2022/util/custom_pages/aril-util-custom_pages.mjs",
351
351
  "esm": "./esm2022/util/custom_pages/aril-util-custom_pages.mjs",
352
352
  "default": "./fesm2022/aril-util-custom_pages.mjs"
353
353
  },
354
- "./util/init-event": {
355
- "types": "./util/init-event/index.d.ts",
356
- "esm2022": "./esm2022/util/init-event/aril-util-init-event.mjs",
357
- "esm": "./esm2022/util/init-event/aril-util-init-event.mjs",
358
- "default": "./fesm2022/aril-util-init-event.mjs"
359
- },
360
- "./util/lib": {
361
- "types": "./util/lib/index.d.ts",
362
- "esm2022": "./esm2022/util/lib/aril-util-lib.mjs",
363
- "esm": "./esm2022/util/lib/aril-util-lib.mjs",
364
- "default": "./fesm2022/aril-util-lib.mjs"
365
- },
366
354
  "./util/loaders": {
367
355
  "types": "./util/loaders/index.d.ts",
368
356
  "esm2022": "./esm2022/util/loaders/aril-util-loaders.mjs",
369
357
  "esm": "./esm2022/util/loaders/aril-util-loaders.mjs",
370
358
  "default": "./fesm2022/aril-util-loaders.mjs"
371
359
  },
360
+ "./util/init-event": {
361
+ "types": "./util/init-event/index.d.ts",
362
+ "esm2022": "./esm2022/util/init-event/aril-util-init-event.mjs",
363
+ "esm": "./esm2022/util/init-event/aril-util-init-event.mjs",
364
+ "default": "./fesm2022/aril-util-init-event.mjs"
365
+ },
372
366
  "./util/primitive-extensions": {
373
367
  "types": "./util/primitive-extensions/index.d.ts",
374
368
  "esm2022": "./esm2022/util/primitive-extensions/aril-util-primitive-extensions.mjs",
375
369
  "esm": "./esm2022/util/primitive-extensions/aril-util-primitive-extensions.mjs",
376
370
  "default": "./fesm2022/aril-util-primitive-extensions.mjs"
377
371
  },
372
+ "./util/lib": {
373
+ "types": "./util/lib/index.d.ts",
374
+ "esm2022": "./esm2022/util/lib/aril-util-lib.mjs",
375
+ "esm": "./esm2022/util/lib/aril-util-lib.mjs",
376
+ "default": "./fesm2022/aril-util-lib.mjs"
377
+ },
378
378
  "./util/pub-sub": {
379
379
  "types": "./util/pub-sub/index.d.ts",
380
380
  "esm2022": "./esm2022/util/pub-sub/aril-util-pub-sub.mjs",
@@ -1,9 +1,9 @@
1
1
  import { HttpClient } from '@angular/common/http';
2
- import { AfterViewInit, EventEmitter } from '@angular/core';
2
+ import { AfterViewInit } from '@angular/core';
3
3
  import { AutoComplete } from 'primeng/autocomplete';
4
4
  import { TranslocoService } from '@ngneat/transloco';
5
5
  import { BaseInputComponent } from 'aril/ui/lib';
6
- import { AssetAggregate, AttributeElement, DefaultSearchAggregateAssetAggregate, SuggestionsDTO, SuggestionsGroupDTO } from './interface';
6
+ import { AttributeElement, Result, SuggestionsDTO, SuggestionsGroupDTO } from './interface';
7
7
  import * as i0 from "@angular/core";
8
8
  import * as i1 from "aril/ui/lib";
9
9
  type ValueTypes = 'text' | 'number';
@@ -12,24 +12,24 @@ export declare class AssetPickerComponent extends BaseInputComponent implements
12
12
  translocoService: TranslocoService;
13
13
  autoCompleteRef: AutoComplete;
14
14
  assetCode: import("@angular/core").InputSignal<string | string[] | null, string | string[] | null>;
15
- type: import("@angular/core").InputSignal<ValueTypes | null, ValueTypes | null>;
16
15
  placeholder: import("@angular/core").InputSignal<string, string>;
17
16
  forceSelection: import("@angular/core").InputSignal<boolean, boolean>;
18
17
  multiple: import("@angular/core").InputSignal<boolean, boolean>;
19
18
  showClear: import("@angular/core").InputSignal<boolean, boolean>;
20
19
  optionValue: import("@angular/core").InputSignal<keyof SuggestionsDTO | null, keyof SuggestionsDTO | null>;
20
+ type: import("@angular/core").InputSignal<ValueTypes | null, ValueTypes | null>;
21
21
  filteredSelectionItems: SuggestionsGroupDTO[];
22
- selectionDefinitions: DefaultSearchAggregateAssetAggregate;
23
- selectedDefinitionEvent: EventEmitter<AssetAggregate>;
24
22
  constructor(http: HttpClient, translocoService: TranslocoService);
25
23
  ngAfterViewInit(): void;
26
24
  getOptionValue(option: any): any;
27
25
  onNgModelChange(value: string): void;
28
26
  validateInput(value: string): string;
29
27
  search(event: any): Promise<void>;
28
+ groupByAssetDefinitionCode(array: Result[]): {
29
+ [key: string]: Result[];
30
+ };
30
31
  getAttiributesValueDescr(attributes: AttributeElement[]): string;
31
- triggerSelectedEvents(event: any): void;
32
32
  static ɵfac: i0.ɵɵFactoryDeclaration<AssetPickerComponent, never>;
33
- static ɵcmp: i0.ɵɵComponentDeclaration<AssetPickerComponent, "aril-asset-picker[ngModel], aril-asset-picker[formControl], aril-asset-picker[formControlName]", never, { "assetCode": { "alias": "assetCode"; "required": false; "isSignal": true; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "forceSelection": { "alias": "forceSelection"; "required": false; "isSignal": true; }; "multiple": { "alias": "multiple"; "required": false; "isSignal": true; }; "showClear": { "alias": "showClear"; "required": false; "isSignal": true; }; "optionValue": { "alias": "optionValue"; "required": false; "isSignal": true; }; }, { "selectedDefinitionEvent": "selectedDefinitionEvent"; }, never, never, true, [{ directive: typeof i1.ValueAccessorDirective; inputs: {}; outputs: {}; }]>;
33
+ static ɵcmp: i0.ɵɵComponentDeclaration<AssetPickerComponent, "aril-asset-picker[ngModel], aril-asset-picker[formControl], aril-asset-picker[formControlName]", never, { "assetCode": { "alias": "assetCode"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "forceSelection": { "alias": "forceSelection"; "required": false; "isSignal": true; }; "multiple": { "alias": "multiple"; "required": false; "isSignal": true; }; "showClear": { "alias": "showClear"; "required": false; "isSignal": true; }; "optionValue": { "alias": "optionValue"; "required": false; "isSignal": true; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; }, {}, never, never, true, [{ directive: typeof i1.ValueAccessorDirective; inputs: {}; outputs: {}; }]>;
34
34
  }
35
35
  export {};
@@ -7,34 +7,20 @@ export interface SuggestionsDTO {
7
7
  key: number | string | null;
8
8
  text: string;
9
9
  }
10
- export interface DefaultSearchAggregateAssetAggregate {
11
- [key: string]: AdditionalProp;
12
- }
13
- export interface AdditionalProp {
10
+ export interface AssetPickerResponseDTO {
14
11
  resultInfo: ResultInfo;
15
- result: AssetAggregate[];
16
- }
17
- export interface ResultInfo {
18
- totalPage: number;
19
- totalItem: number;
12
+ result: Result[];
20
13
  }
21
- export interface AssetAggregate {
14
+ export interface Result {
22
15
  id: number;
23
- assetDefinitionId: number;
24
16
  assetDefinitionCode: string;
25
- assetDefinitionName: string;
26
- uniqueIdentifier: string;
17
+ assetName: string;
27
18
  authorityGroup: string;
28
- createDate: number;
29
- updateDate: number;
30
- updateUser: string;
31
- createUser: string;
32
19
  assets: Asset[];
33
20
  attributes: AttributeElement[];
34
21
  }
35
22
  export interface Asset {
36
23
  alias: string;
37
- assetDefinitionID: number;
38
24
  assetDefinitionCode: string;
39
25
  assetDefinitionName: string;
40
26
  assetId: number;
@@ -44,14 +30,16 @@ export interface AttributeElement {
44
30
  attribute: AttributeAttribute;
45
31
  value: Value;
46
32
  startDate: number;
33
+ endDate: number;
47
34
  valueDesc: string;
48
35
  }
49
36
  export interface AttributeAttribute {
50
37
  alias: string;
51
38
  attributeCode: string;
52
- attributeName: string;
53
- attributeId: number;
54
- attributeType: string;
55
39
  }
56
40
  export interface Value {
57
41
  }
42
+ export interface ResultInfo {
43
+ totalPage: number;
44
+ totalItem: number;
45
+ }