@acorex/components 22.1.0-next.5 → 22.1.0-next.6

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.
@@ -166,6 +166,15 @@ class AXLookupListViewBase {
166
166
  }
167
167
  this.itemClick.emit({ item, value: this.getValue(item) });
168
168
  }
169
+ /**
170
+ * Commit on mousedown (not click) so a searchable trigger blur cannot destroy the
171
+ * list before the pick is applied.
172
+ */
173
+ handleItemMouseDown(event, item) {
174
+ event.preventDefault();
175
+ event.stopPropagation();
176
+ this.handleItemClick(item);
177
+ }
169
178
  handleItemKeypress(e, item) {
170
179
  if (e.nativeEvent.key === 'Enter' || e.nativeEvent.code === 'Space') {
171
180
  e.nativeEvent.stopPropagation();
@@ -253,18 +262,17 @@ class AXLookupDropDownListComponent extends AXLookupListViewBase {
253
262
  <div
254
263
  *cdkVirtualFor="let item of listDataSource(); let i = index; trackBy: trackByIndex"
255
264
  role="option"
256
- class="ax-lookup-option-host"
265
+ class="ax-lookup-option-host ax-lookup-option"
257
266
  axListNavigationItem
258
267
  #navItem="axListNavigationItem"
259
268
  [style.height.px]="itemHeight()"
260
- [class.ax-lookup-option]="!itemTemplate()"
261
269
  [class.ax-state-alternate]="alternate() && i % 2 === 1"
262
270
  [class.ax-state-selected]="item != null && isSelected(item)"
263
271
  [class.ax-state-disabled]="item != null && isDisabled(item)"
264
272
  [class.ax-state-active]="navItem.isActive()"
265
273
  [attr.aria-selected]="item != null ? isSelected(item) : null"
266
274
  (mouseenter)="activateNavItem(nav, navItem)"
267
- (click)="handleItemClick(item)"
275
+ (mousedown)="handleItemMouseDown($event, item)"
268
276
  (onKeypress)="handleItemKeypress($event, item)"
269
277
  >
270
278
  @if (item != null) {
@@ -329,18 +337,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
329
337
  <div
330
338
  *cdkVirtualFor="let item of listDataSource(); let i = index; trackBy: trackByIndex"
331
339
  role="option"
332
- class="ax-lookup-option-host"
340
+ class="ax-lookup-option-host ax-lookup-option"
333
341
  axListNavigationItem
334
342
  #navItem="axListNavigationItem"
335
343
  [style.height.px]="itemHeight()"
336
- [class.ax-lookup-option]="!itemTemplate()"
337
344
  [class.ax-state-alternate]="alternate() && i % 2 === 1"
338
345
  [class.ax-state-selected]="item != null && isSelected(item)"
339
346
  [class.ax-state-disabled]="item != null && isDisabled(item)"
340
347
  [class.ax-state-active]="navItem.isActive()"
341
348
  [attr.aria-selected]="item != null ? isSelected(item) : null"
342
349
  (mouseenter)="activateNavItem(nav, navItem)"
343
- (click)="handleItemClick(item)"
350
+ (mousedown)="handleItemMouseDown($event, item)"
344
351
  (onKeypress)="handleItemKeypress($event, item)"
345
352
  >
346
353
  @if (item != null) {
@@ -665,6 +672,11 @@ class AXLookupMultiColumnComponent {
665
672
  }
666
673
  this.itemClick.emit({ item, value: this.getValue(item) });
667
674
  }
675
+ handleItemMouseDown(event, item) {
676
+ event.preventDefault();
677
+ event.stopPropagation();
678
+ this.handleItemClick(item);
679
+ }
668
680
  isSelected(item) {
669
681
  const value = this.getValue(item);
670
682
  return this.selectedValues().some((v) => v == value);
@@ -727,7 +739,7 @@ class AXLookupMultiColumnComponent {
727
739
  [class.ax-state-disabled]="ctx.data != null && isDisabled(ctx.data)"
728
740
  [style.height.px]="itemHeight()"
729
741
  [style.max-height.px]="itemHeight()"
730
- (click)="handleItemClick(ctx.data)"
742
+ (mousedown)="handleItemMouseDown($event, ctx.data)"
731
743
  >
732
744
  <td [attr.colspan]="columns().length || 1">
733
745
  @if (ctx.data != null && itemTemplate()) {
@@ -787,7 +799,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
787
799
  [class.ax-state-disabled]="ctx.data != null && isDisabled(ctx.data)"
788
800
  [style.height.px]="itemHeight()"
789
801
  [style.max-height.px]="itemHeight()"
790
- (click)="handleItemClick(ctx.data)"
802
+ (mousedown)="handleItemMouseDown($event, ctx.data)"
791
803
  >
792
804
  <td [attr.colspan]="columns().length || 1">
793
805
  @if (ctx.data != null && itemTemplate()) {
@@ -934,11 +946,10 @@ class AXLookupMultiSelectComponent extends AXLookupListViewBase {
934
946
  <div
935
947
  *cdkVirtualFor="let item of listDataSource(); let i = index; trackBy: trackByIndex"
936
948
  role="option"
937
- class="ax-lookup-option-host"
949
+ class="ax-lookup-option-host ax-lookup-option"
938
950
  axListNavigationItem
939
951
  #navItem="axListNavigationItem"
940
952
  [style.height.px]="itemHeight()"
941
- [class.ax-lookup-option]="!itemTemplate()"
942
953
  [class.ax-lookup-option-host--check]="!!itemTemplate()"
943
954
  [class.ax-state-alternate]="alternate() && i % 2 === 1"
944
955
  [class.ax-state-selected]="item != null && isSelected(item)"
@@ -946,7 +957,7 @@ class AXLookupMultiSelectComponent extends AXLookupListViewBase {
946
957
  [class.ax-state-active]="navItem.isActive()"
947
958
  [attr.aria-selected]="item != null ? isSelected(item) : null"
948
959
  (mouseenter)="activateNavItem(nav, navItem)"
949
- (click)="handleItemClick(item)"
960
+ (mousedown)="handleItemMouseDown($event, item)"
950
961
  (onKeypress)="handleItemKeypress($event, item)"
951
962
  >
952
963
  @if (item != null) {
@@ -1009,11 +1020,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
1009
1020
  <div
1010
1021
  *cdkVirtualFor="let item of listDataSource(); let i = index; trackBy: trackByIndex"
1011
1022
  role="option"
1012
- class="ax-lookup-option-host"
1023
+ class="ax-lookup-option-host ax-lookup-option"
1013
1024
  axListNavigationItem
1014
1025
  #navItem="axListNavigationItem"
1015
1026
  [style.height.px]="itemHeight()"
1016
- [class.ax-lookup-option]="!itemTemplate()"
1017
1027
  [class.ax-lookup-option-host--check]="!!itemTemplate()"
1018
1028
  [class.ax-state-alternate]="alternate() && i % 2 === 1"
1019
1029
  [class.ax-state-selected]="item != null && isSelected(item)"
@@ -1021,7 +1031,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
1021
1031
  [class.ax-state-active]="navItem.isActive()"
1022
1032
  [attr.aria-selected]="item != null ? isSelected(item) : null"
1023
1033
  (mouseenter)="activateNavItem(nav, navItem)"
1024
- (click)="handleItemClick(item)"
1034
+ (mousedown)="handleItemMouseDown($event, item)"
1025
1035
  (onKeypress)="handleItemKeypress($event, item)"
1026
1036
  >
1027
1037
  @if (item != null) {
@@ -1541,10 +1551,10 @@ class AXLookupComponent extends NXValueComponent {
1541
1551
  this.#emitItemClick(e.item);
1542
1552
  this.#emitItemSelected(e.item);
1543
1553
  this.#itemsCache.set(e.value, e.item);
1544
- if (!this.#valuesEqual(e.value, this.value())) {
1545
- this.#isUserInteraction = true;
1546
- this.value.set(e.value);
1547
- }
1554
+ this.selectedItems.set([e.item]);
1555
+ this.searchText.set(this.getItemText(e.item));
1556
+ this.#isUserInteraction = true;
1557
+ this.value.set(e.value);
1548
1558
  this.close();
1549
1559
  }
1550
1560
  /**
@@ -1810,7 +1820,7 @@ class AXLookupComponent extends NXValueComponent {
1810
1820
  { provide: AXClearableComponent, useExisting: AXLookupComponent },
1811
1821
  { provide: AXClosableComponent, useExisting: AXLookupComponent },
1812
1822
  { provide: AXValuableComponent, useExisting: AXLookupComponent },
1813
- ], viewQueries: [{ propertyName: "popoverRef", first: true, predicate: AXPopoverComponent, descendants: true, isSignal: true }, { propertyName: "triggerSearchInput", first: true, predicate: ["triggerSearchInput"], descendants: true, isSignal: true }, { propertyName: "listView", first: true, predicate: AXLookupListViewBase, descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<div\n #origin\n class=\"ax-editor-container ax-{{ look() }} ax-default\"\n [class.ax-lookup-trigger]=\"!isEditableTrigger()\"\n [class.ax-lookup-trigger-multiple]=\"isMultiple()\"\n [class.ax-state-disabled]=\"disabled()\"\n [class.ax-state-readonly]=\"readonly()\"\n (click)=\"onTriggerClick()\"\n>\n <ng-content select=\"ax-prefix\"></ng-content>\n\n @if (isMultiple()) {\n <div class=\"ax-lookup-chips\">\n @for (item of selectedItems(); track trackSelectedKey(item)) {\n <ax-chips class=\"ax-sm\" color=\"primary\" look=\"twotone\" [text]=\"selectedTemplate() ? '' : getItemText(item)\">\n @if (selectedTemplate()) {\n <ax-prefix>\n <ng-container\n [ngTemplateOutlet]=\"selectedTemplate()!\"\n [ngTemplateOutletContext]=\"{ $implicit: item }\"\n />\n </ax-prefix>\n }\n @if (!disabled() && !readonly()) {\n <ax-suffix>\n <button type=\"button\" tabindex=\"-1\" (click)=\"removeChip($event, item)\">\n <span class=\"ax-icon ax-icon-close\"></span>\n </button>\n </ax-suffix>\n }\n </ax-chips>\n }\n <input\n #triggerSearchInput\n type=\"text\"\n class=\"ax-input ax-lookup-trigger-search\"\n [class.ax-lookup-select-input]=\"!isEditableTrigger()\"\n [placeholder]=\"triggerSearchPlaceholder()\"\n [disabled]=\"disabled()\"\n [readonly]=\"readonly() || !isEditableTrigger()\"\n [attr.inputmode]=\"isEditableTrigger() ? null : 'none'\"\n [value]=\"searchText()\"\n (input)=\"onTriggerSearchInput($any($event.target).value)\"\n (keydown)=\"onTriggerKeydown($event)\"\n (beforeinput)=\"onBeforeInput($event)\"\n (focus)=\"emitOnFocus($event)\"\n (blur)=\"emitOnBlur($event)\"\n />\n </div>\n } @else {\n <div class=\"ax-lookup-value\">\n @if (showSelectedTemplate()) {\n <div class=\"ax-lookup-selected-content\" aria-hidden=\"true\">\n <ng-container\n [ngTemplateOutlet]=\"selectedTemplate()!\"\n [ngTemplateOutletContext]=\"{ $implicit: selectedItems()[0] }\"\n />\n </div>\n }\n <input\n #triggerSearchInput\n type=\"text\"\n class=\"ax-input\"\n [class.ax-lookup-select-input]=\"!isEditableTrigger()\"\n [class.ax-lookup-input-overlay]=\"showSelectedTemplate()\"\n [placeholder]=\"placeholder()\"\n [disabled]=\"disabled()\"\n [readonly]=\"readonly() || !isEditableTrigger()\"\n [attr.inputmode]=\"isEditableTrigger() ? null : 'none'\"\n [value]=\"searchText()\"\n (input)=\"onTriggerSearchInput($any($event.target).value)\"\n (keydown)=\"onTriggerKeydown($event)\"\n (beforeinput)=\"onBeforeInput($event)\"\n (focus)=\"emitOnFocus($event)\"\n (blur)=\"emitOnBlur($event)\"\n />\n </div>\n }\n\n @if (selectedValues().length > 0 && !disabled() && !readonly()) {\n <ng-content select=\"ax-clear-button\"></ng-content>\n }\n\n <button\n type=\"button\"\n class=\"ax-general-button-icon\"\n tabindex=\"-1\"\n [disabled]=\"disabled() || readonly()\"\n >\n <span\n class=\"ax-icon\"\n [class.ax-icon-chevron-down]=\"!expanded()\"\n [class.ax-icon-chevron-up]=\"expanded()\"\n ></span>\n </button>\n <ng-content select=\"ax-suffix\"></ng-content>\n</div>\n\n<ax-popover\n [target]=\"origin\"\n [openOn]=\"'manual'\"\n [closeOn]=\"'clickOut'\"\n [placement]=\"'bottom-start'\"\n [width]=\"isActionsheetStyle() ? '100%' : origin.offsetWidth + 'px'\"\n [adaptivityEnabled]=\"isActionsheetStyle()\"\n [disabled]=\"disabled() || readonly()\"\n (onClosed)=\"onPopoverClosed()\"\n>\n <div class=\"ax-lookup-popup\" [class.ax-is-actionsheet]=\"isActionsheetStyle()\" [class.ax-is-alternate]=\"alternate()\" (keydown.escape)=\"close()\">\n @if (isActionsheetStyle()) {\n <ax-header class=\"ax-solid\">\n <ax-title>{{ caption() || placeholder() || ('@acorex:selectbox.popover.title' | translate | async) }}</ax-title>\n <ax-close-button [icon]=\"isMultiple() ? 'ax-icon ax-icon-check' : 'ax-icon ax-icon-close'\"></ax-close-button>\n </ax-header>\n }\n <ng-content select=\"ax-header\"></ng-content>\n @if (expanded()) {\n @switch (mode()) {\n @case ('drop-down-list') {\n <ax-lookup-drop-down-list\n [dataSource]=\"resolvedDataSource()\"\n [valueField]=\"valueField()\"\n [textField]=\"textField()\"\n [disabledField]=\"disabledField()\"\n [selectedValues]=\"selectedValues()\"\n [itemHeight]=\"itemHeight()\"\n [maxVisibleItems]=\"maxVisibleItems()\"\n [itemTemplate]=\"itemTemplate()\"\n [emptyTemplate]=\"emptyTemplate()\"\n [loadingTemplate]=\"loadingTemplate()\"\n [alternate]=\"alternate()\"\n (itemClick)=\"handleSinglePick($event)\"\n (navigateOut)=\"onListNavigateOut($event)\"\n />\n }\n @case ('multi-select') {\n <ax-lookup-multi-select\n [dataSource]=\"resolvedDataSource()\"\n [valueField]=\"valueField()\"\n [textField]=\"textField()\"\n [disabledField]=\"disabledField()\"\n [selectedValues]=\"selectedValues()\"\n [itemHeight]=\"itemHeight()\"\n [maxVisibleItems]=\"maxVisibleItems()\"\n [itemTemplate]=\"itemTemplate()\"\n [emptyTemplate]=\"emptyTemplate()\"\n [loadingTemplate]=\"loadingTemplate()\"\n [alternate]=\"alternate()\"\n (itemClick)=\"handleMultiToggle($event)\"\n (navigateOut)=\"onListNavigateOut($event)\"\n />\n }\n @case ('drop-down-tree') {\n <ax-lookup-drop-down-tree\n [dataSource]=\"treeDataSource()!\"\n [valueField]=\"valueField()\"\n [textField]=\"textField()\"\n [disabledField]=\"disabledField()\"\n [selectedValues]=\"selectedValues()\"\n [nodeTemplate]=\"$any(itemTemplate())\"\n (itemClick)=\"handleSinglePick($event)\"\n />\n }\n @case ('multi-select-tree') {\n <ax-lookup-multi-select-tree\n [dataSource]=\"treeDataSource()!\"\n [valueField]=\"valueField()\"\n [textField]=\"textField()\"\n [disabledField]=\"disabledField()\"\n [selectedValues]=\"selectedValues()\"\n [selectionBehavior]=\"treeSelectionBehavior()\"\n [nodeTemplate]=\"$any(itemTemplate())\"\n (selectionChange)=\"handleTreeSelectionChange($event)\"\n />\n }\n @case ('multi-column') {\n <ax-lookup-multi-column\n [dataSource]=\"resolvedDataSource()\"\n [valueField]=\"valueField()\"\n [textField]=\"textField()\"\n [disabledField]=\"disabledField()\"\n [selectedValues]=\"selectedValues()\"\n [itemHeight]=\"itemHeight()\"\n [maxVisibleItems]=\"maxVisibleItems()\"\n [columns]=\"columns()\"\n [itemTemplate]=\"itemTemplate()\"\n [emptyTemplate]=\"emptyTemplate()\"\n [loadingTemplate]=\"loadingTemplate()\"\n [alternate]=\"alternate()\"\n (itemClick)=\"handleSinglePick($event)\"\n />\n }\n }\n }\n <ng-content select=\"ax-footer\"></ng-content>\n </div>\n</ax-popover>\n<ng-content select=\"ax-validation-rule\"></ng-content>\n", styles: ["@layer properties;@layer components{ax-lookup{display:block;width:100%}ax-lookup .ax-editor-container{justify-content:flex-start;gap:calc(var(--spacing, .25rem) * 1)}ax-lookup .ax-lookup-trigger{cursor:pointer;-webkit-user-select:none;user-select:none}ax-lookup .ax-lookup-trigger-multiple{height:auto;min-height:calc(var(--spacing, .25rem) * 9);padding-block:calc(var(--spacing, .25rem) * 1)}ax-lookup .ax-lookup-value{position:relative;display:flex;min-width:calc(var(--spacing, .25rem) * 0);flex:1;align-items:center;overflow:hidden}ax-lookup .ax-lookup-select-input{cursor:pointer;caret-color:transparent;-webkit-user-select:none;user-select:none}ax-lookup .ax-lookup-selected-content{pointer-events:none;position:relative;z-index:0;display:flex;min-width:calc(var(--spacing, .25rem) * 0);flex:1;align-items:center;overflow:hidden}ax-lookup .ax-lookup-input-overlay{position:absolute;inset:calc(var(--spacing, .25rem) * 0);z-index:10;margin:calc(var(--spacing, .25rem) * 0)!important;height:100%;width:100%;border-style:var(--tw-border-style);border-width:0px;background-color:transparent;padding:calc(var(--spacing, .25rem) * 0)!important;color:transparent;caret-color:transparent}ax-lookup .ax-lookup-chips{display:flex;min-width:calc(var(--spacing, .25rem) * 0);flex:1;flex-wrap:wrap;align-items:center;gap:calc(var(--spacing, .25rem) * 1)}ax-lookup .ax-lookup-trigger-search{margin:calc(var(--spacing, .25rem) * 0)!important;height:calc(var(--spacing, .25rem) * 7.5);width:auto!important;min-width:calc(var(--spacing, .25rem) * 16);flex:1;flex-basis:calc(var(--spacing, .25rem) * 16)}ax-lookup .ax-lookup-placeholder{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)));color:rgba(var(--ax-sys-color-on-surface))}@supports (color: color-mix(in lab,red,red)){ax-lookup .ax-lookup-placeholder{color:color-mix(in oklab,rgba(var(--ax-sys-color-on-surface)) 50%,transparent)}}ax-lookup ax-chips ax-prefix,ax-lookup ax-chips ax-suffix{padding:calc(var(--spacing, .25rem) * 0)!important}ax-lookup ax-chips ax-suffix button{display:flex;cursor:pointer;align-items:center;border-style:var(--tw-border-style);border-width:0px;background-color:transparent;padding:calc(var(--spacing, .25rem) * 0)}.ax-lookup-popup{box-sizing:border-box;display:flex;width:100%;flex-direction:column;overflow:hidden;border-radius:var(--ax-sys-border-radius);border-style:var(--tw-border-style);border-width:1px;border-color:rgba(var(--ax-sys-color-border-surface));background-color:rgba(var(--ax-sys-color-lightest-surface));--tw-shadow: 0 10px 15px -3px var(--tw-shadow-color, rgb(0 0 0 / .1)), 0 4px 6px -4px var(--tw-shadow-color, rgb(0 0 0 / .1));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ax-lookup-popup:where(.ax-dark,.ax-dark *):not(:where(.ax-light,.ax-light *)){background-color:rgba(var(--ax-sys-color-darkest-surface))}.ax-lookup-popup.ax-is-actionsheet{border-bottom-right-radius:0;border-bottom-left-radius:0;--tw-shadow: 0 0 #0000;box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ax-lookup-popup.ax-is-actionsheet>ax-header.ax-solid{border-bottom-style:var(--tw-border-style);border-bottom-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface))}.ax-lookup-popup.ax-is-actionsheet>ax-header.ax-solid .ax-icon-check{color:rgba(var(--ax-sys-color-primary-surface))}.ax-lookup-popup.ax-is-actionsheet>ax-header.ax-solid ax-title{font-size:var(--text-base, 1rem);line-height:var(--tw-leading, var(--text-base--line-height, 1.5 ));--tw-leading: calc(var(--spacing, .25rem) * 6);line-height:calc(var(--spacing, .25rem) * 6);--tw-font-weight: var(--font-weight-medium, 500);font-weight:var(--font-weight-medium, 500)}.ax-lookup-popup>ax-header:not(.ax-solid),.ax-lookup-popup>ax-footer{flex-shrink:0;border-color:rgba(var(--ax-sys-color-border-lightest-surface))}.ax-lookup-popup>ax-header:not(.ax-solid){border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.ax-lookup-popup>ax-footer{border-top-style:var(--tw-border-style);border-top-width:1px}.ax-lookup-viewport{width:100%}.ax-lookup-empty{display:flex;min-height:calc(var(--spacing, .25rem) * 12);width:100%;align-items:center;justify-content:center;padding-inline:calc(var(--spacing, .25rem) * 3);padding-block:calc(var(--spacing, .25rem) * 3);text-align:center;font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)));color:rgba(var(--ax-sys-color-on-surface))}@supports (color: color-mix(in lab,red,red)){.ax-lookup-empty{color:color-mix(in oklab,rgba(var(--ax-sys-color-on-surface)) 60%,transparent)}}.ax-lookup-option-host{box-sizing:border-box;cursor:pointer;border-style:var(--tw-border-style);border-width:1px;border-color:transparent;--tw-outline-style: none;outline-style:none}.ax-lookup-option-host.ax-state-alternate{background-color:rgba(var(--ax-sys-color-on-surface))}@supports (color: color-mix(in lab,red,red)){.ax-lookup-option-host.ax-state-alternate{background-color:color-mix(in oklab,rgba(var(--ax-sys-color-on-surface)) 5%,transparent)}}.ax-lookup-option-host:hover,.ax-lookup-option-host.ax-state-active{background-color:rgba(var(--ax-sys-color-on-surface))}@supports (color: color-mix(in lab,red,red)){.ax-lookup-option-host:hover,.ax-lookup-option-host.ax-state-active{background-color:color-mix(in oklab,rgba(var(--ax-sys-color-on-surface)) 10%,transparent)}}.ax-lookup-option-host.ax-state-alternate:hover,.ax-lookup-option-host.ax-state-alternate.ax-state-active{background-color:rgba(var(--ax-sys-color-on-surface))}@supports (color: color-mix(in lab,red,red)){.ax-lookup-option-host.ax-state-alternate:hover,.ax-lookup-option-host.ax-state-alternate.ax-state-active{background-color:color-mix(in oklab,rgba(var(--ax-sys-color-on-surface)) 15%,transparent)}}.ax-lookup-option-host.ax-state-selected,.ax-lookup-option-host.ax-state-selected:hover,.ax-lookup-option-host.ax-state-selected.ax-state-active,.ax-lookup-option-host.ax-state-selected.ax-state-alternate,.ax-lookup-option-host.ax-state-selected.ax-state-alternate:hover,.ax-lookup-option-host.ax-state-selected.ax-state-alternate.ax-state-active{background-color:rgba(var(--ax-sys-color-primary-lightest-surface))}:is(.ax-lookup-option-host.ax-state-selected,.ax-lookup-option-host.ax-state-selected:hover,.ax-lookup-option-host.ax-state-selected.ax-state-active,.ax-lookup-option-host.ax-state-selected.ax-state-alternate,.ax-lookup-option-host.ax-state-selected.ax-state-alternate:hover,.ax-lookup-option-host.ax-state-selected.ax-state-alternate.ax-state-active):where(.ax-dark,.ax-dark *):not(:where(.ax-light,.ax-light *)){background-color:rgba(var(--ax-sys-color-primary-darkest-surface))}@supports (color: color-mix(in lab,red,red)){:is(.ax-lookup-option-host.ax-state-selected,.ax-lookup-option-host.ax-state-selected:hover,.ax-lookup-option-host.ax-state-selected.ax-state-active,.ax-lookup-option-host.ax-state-selected.ax-state-alternate,.ax-lookup-option-host.ax-state-selected.ax-state-alternate:hover,.ax-lookup-option-host.ax-state-selected.ax-state-alternate.ax-state-active):where(.ax-dark,.ax-dark *):not(:where(.ax-light,.ax-light *)){background-color:color-mix(in oklab,rgba(var(--ax-sys-color-primary-darkest-surface)) 25%,transparent)}}.ax-lookup-option-host.ax-state-selected.ax-state-active,.ax-lookup-option-host.ax-state-selected.ax-state-alternate.ax-state-active{background-color:rgba(var(--ax-sys-color-primary-lightest-surface))}@supports (color: color-mix(in lab,red,red)){.ax-lookup-option-host.ax-state-selected.ax-state-active,.ax-lookup-option-host.ax-state-selected.ax-state-alternate.ax-state-active{background-color:color-mix(in oklab,rgba(var(--ax-sys-color-primary-lightest-surface)) 80%,transparent)}}:is(.ax-lookup-option-host.ax-state-selected.ax-state-active,.ax-lookup-option-host.ax-state-selected.ax-state-alternate.ax-state-active):where(.ax-dark,.ax-dark *):not(:where(.ax-light,.ax-light *)){background-color:rgba(var(--ax-sys-color-primary-darkest-surface))}@supports (color: color-mix(in lab,red,red)){:is(.ax-lookup-option-host.ax-state-selected.ax-state-active,.ax-lookup-option-host.ax-state-selected.ax-state-alternate.ax-state-active):where(.ax-dark,.ax-dark *):not(:where(.ax-light,.ax-light *)){background-color:color-mix(in oklab,rgba(var(--ax-sys-color-primary-darkest-surface)) 40%,transparent)}}.ax-lookup-option-host.ax-lookup-option-host--check{display:flex;align-items:center;gap:calc(var(--spacing, .25rem) * 2);padding-inline:calc(var(--spacing, .25rem) * 3)}.ax-lookup-option-host .ax-lookup-checkbox{pointer-events:none;width:calc(var(--spacing, .25rem) * 4);height:calc(var(--spacing, .25rem) * 4);flex-shrink:0;accent-color:rgba(var(--ax-sys-color-primary-surface))}.ax-lookup-option-host .ax-lookup-option-loading{width:100%;padding-inline:calc(var(--spacing, .25rem) * 3);font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)));color:rgba(var(--ax-sys-color-on-surface))}@supports (color: color-mix(in lab,red,red)){.ax-lookup-option-host .ax-lookup-option-loading{color:color-mix(in oklab,rgba(var(--ax-sys-color-on-surface)) 50%,transparent)}}.ax-lookup-option{display:flex;align-items:center;justify-content:space-between;gap:calc(var(--spacing, .25rem) * 2);padding-inline:calc(var(--spacing, .25rem) * 3);font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)));color:rgba(var(--ax-sys-color-on-surface))}.ax-lookup-option.ax-state-selected{color:rgba(var(--ax-sys-color-primary-surface))}.ax-lookup-option .ax-lookup-option-text{min-width:calc(var(--spacing, .25rem) * 0);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ax-lookup-option .ax-lookup-option-check{flex-shrink:0;color:rgba(var(--ax-sys-color-primary-surface))}ax-lookup-multi-column,.ax-lookup-multi-column{display:block;min-height:calc(var(--spacing, .25rem) * 0);width:100%}:is(ax-lookup-multi-column,.ax-lookup-multi-column) .ax-lookup-multi-column-table,:is(ax-lookup-multi-column,.ax-lookup-multi-column) ax-data-table{height:100%;min-height:calc(var(--spacing, .25rem) * 0);border-style:var(--tw-border-style)!important;border-width:0px!important}:is(ax-lookup-multi-column,.ax-lookup-multi-column) tr.ax-state-selected{background-color:rgba(var(--ax-sys-color-primary-surface))}@supports (color: color-mix(in lab,red,red)){:is(ax-lookup-multi-column,.ax-lookup-multi-column) tr.ax-state-selected{background-color:color-mix(in oklab,rgba(var(--ax-sys-color-primary-surface)) 10%,transparent)}}:is(ax-lookup-multi-column,.ax-lookup-multi-column) tr.ax-state-disabled{pointer-events:none;opacity:50%}.ax-lookup-tree{max-height:calc(var(--spacing, .25rem) * 80);overflow:auto;padding:calc(var(--spacing, .25rem) * 2)}}@property --tw-border-style{syntax: \"*\"; inherits: false; initial-value: solid;}@property --tw-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@property --tw-shadow-color{syntax: \"*\"; inherits: false;}@property --tw-shadow-alpha{syntax: \"<percentage>\"; inherits: false; initial-value: 100%;}@property --tw-inset-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@property --tw-inset-shadow-color{syntax: \"*\"; inherits: false;}@property --tw-inset-shadow-alpha{syntax: \"<percentage>\"; inherits: false; initial-value: 100%;}@property --tw-ring-color{syntax: \"*\"; inherits: false;}@property --tw-ring-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@property --tw-inset-ring-color{syntax: \"*\"; inherits: false;}@property --tw-inset-ring-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@property --tw-ring-inset{syntax: \"*\"; inherits: false;}@property --tw-ring-offset-width{syntax: \"<length>\"; inherits: false; initial-value: 0px;}@property --tw-ring-offset-color{syntax: \"*\"; inherits: false; initial-value: #fff;}@property --tw-ring-offset-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@property --tw-leading{syntax: \"*\"; inherits: false;}@property --tw-font-weight{syntax: \"*\"; inherits: false;}@layer properties{@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style: solid;--tw-shadow: 0 0 #0000;--tw-shadow-color: initial;--tw-shadow-alpha: 100%;--tw-inset-shadow: 0 0 #0000;--tw-inset-shadow-color: initial;--tw-inset-shadow-alpha: 100%;--tw-ring-color: initial;--tw-ring-shadow: 0 0 #0000;--tw-inset-ring-color: initial;--tw-inset-ring-shadow: 0 0 #0000;--tw-ring-inset: initial;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-offset-shadow: 0 0 #0000;--tw-leading: initial;--tw-font-weight: initial}}}\n/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: AXChipsComponent, selector: "ax-chips", inputs: ["tabIndex", "color", "look", "text"], outputs: ["textChange"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i1$1.AXDecoratorCloseButtonComponent, selector: "ax-close-button", inputs: ["closeAll", "icon"] }, { kind: "component", type: i1$1.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "component", type: AXPopoverComponent, selector: "ax-popover", inputs: ["width", "disablePanelClass", "visualContextScope", "disabled", "offsetX", "offsetY", "target", "placement", "content", "openOn", "closeOn", "hasBackdrop", "openAfter", "closeAfter", "closeOnScroll", "backdropClass", "panelClass", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "component", type: AXLookupDropDownListComponent, selector: "ax-lookup-drop-down-list" }, { kind: "component", type: AXLookupMultiSelectComponent, selector: "ax-lookup-multi-select" }, { kind: "component", type: AXLookupDropDownTreeComponent, selector: "ax-lookup-drop-down-tree", inputs: ["dataSource", "valueField", "textField", "disabledField", "selectedValues", "nodeTemplate"], outputs: ["itemClick"] }, { kind: "component", type: AXLookupMultiSelectTreeComponent, selector: "ax-lookup-multi-select-tree", inputs: ["dataSource", "valueField", "textField", "disabledField", "selectedValues", "selectionBehavior", "nodeTemplate"], outputs: ["selectionChange"] }, { kind: "component", type: AXLookupMultiColumnComponent, selector: "ax-lookup-multi-column", inputs: ["dataSource", "valueField", "textField", "disabledField", "selectedValues", "itemHeight", "maxVisibleItems", "columns", "itemTemplate", "emptyTemplate", "loadingTemplate", "alternate"], outputs: ["itemClick"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
1823
+ ], viewQueries: [{ propertyName: "popoverRef", first: true, predicate: AXPopoverComponent, descendants: true, isSignal: true }, { propertyName: "triggerSearchInput", first: true, predicate: ["triggerSearchInput"], descendants: true, isSignal: true }, { propertyName: "listView", first: true, predicate: AXLookupListViewBase, descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<div\n #origin\n class=\"ax-editor-container ax-{{ look() }} ax-default\"\n [class.ax-lookup-trigger]=\"!isEditableTrigger()\"\n [class.ax-lookup-trigger-multiple]=\"isMultiple()\"\n [class.ax-state-disabled]=\"disabled()\"\n [class.ax-state-readonly]=\"readonly()\"\n (click)=\"onTriggerClick()\"\n>\n <ng-content select=\"ax-prefix\"></ng-content>\n\n @if (isMultiple()) {\n <div class=\"ax-lookup-chips\">\n @for (item of selectedItems(); track trackSelectedKey(item)) {\n <ax-chips class=\"ax-sm\" color=\"primary\" look=\"twotone\" [text]=\"selectedTemplate() ? '' : getItemText(item)\">\n @if (selectedTemplate()) {\n <ax-prefix>\n <ng-container\n [ngTemplateOutlet]=\"selectedTemplate()!\"\n [ngTemplateOutletContext]=\"{ $implicit: item }\"\n />\n </ax-prefix>\n }\n @if (!disabled() && !readonly()) {\n <ax-suffix>\n <button type=\"button\" tabindex=\"-1\" (click)=\"removeChip($event, item)\">\n <span class=\"ax-icon ax-icon-close\"></span>\n </button>\n </ax-suffix>\n }\n </ax-chips>\n }\n <input\n #triggerSearchInput\n type=\"text\"\n class=\"ax-input ax-lookup-trigger-search\"\n [class.ax-lookup-select-input]=\"!isEditableTrigger()\"\n [placeholder]=\"triggerSearchPlaceholder()\"\n [disabled]=\"disabled()\"\n [readonly]=\"readonly() || !isEditableTrigger()\"\n [attr.inputmode]=\"isEditableTrigger() ? null : 'none'\"\n [value]=\"searchText()\"\n (input)=\"onTriggerSearchInput($any($event.target).value)\"\n (keydown)=\"onTriggerKeydown($event)\"\n (beforeinput)=\"onBeforeInput($event)\"\n (focus)=\"emitOnFocus($event)\"\n (blur)=\"emitOnBlur($event)\"\n />\n </div>\n } @else {\n <div class=\"ax-lookup-value\">\n @if (showSelectedTemplate()) {\n <div class=\"ax-lookup-selected-content\" aria-hidden=\"true\">\n <ng-container\n [ngTemplateOutlet]=\"selectedTemplate()!\"\n [ngTemplateOutletContext]=\"{ $implicit: selectedItems()[0] }\"\n />\n </div>\n }\n <input\n #triggerSearchInput\n type=\"text\"\n class=\"ax-input\"\n [class.ax-lookup-select-input]=\"!isEditableTrigger()\"\n [class.ax-lookup-input-overlay]=\"showSelectedTemplate()\"\n [placeholder]=\"placeholder()\"\n [disabled]=\"disabled()\"\n [readonly]=\"readonly() || !isEditableTrigger()\"\n [attr.inputmode]=\"isEditableTrigger() ? null : 'none'\"\n [value]=\"searchText()\"\n (input)=\"onTriggerSearchInput($any($event.target).value)\"\n (keydown)=\"onTriggerKeydown($event)\"\n (beforeinput)=\"onBeforeInput($event)\"\n (focus)=\"emitOnFocus($event)\"\n (blur)=\"emitOnBlur($event)\"\n />\n </div>\n }\n\n @if (selectedValues().length > 0 && !disabled() && !readonly()) {\n <ng-content select=\"ax-clear-button\"></ng-content>\n }\n\n <button\n type=\"button\"\n class=\"ax-general-button-icon\"\n tabindex=\"-1\"\n [disabled]=\"disabled() || readonly()\"\n >\n <span\n class=\"ax-icon\"\n [class.ax-icon-chevron-down]=\"!expanded()\"\n [class.ax-icon-chevron-up]=\"expanded()\"\n ></span>\n </button>\n <ng-content select=\"ax-suffix\"></ng-content>\n</div>\n\n<ax-popover\n [target]=\"origin\"\n [openOn]=\"'manual'\"\n [closeOn]=\"'clickOut'\"\n [placement]=\"'bottom-start'\"\n [width]=\"isActionsheetStyle() ? '100%' : origin.offsetWidth + 'px'\"\n [adaptivityEnabled]=\"isActionsheetStyle()\"\n [disabled]=\"disabled() || readonly()\"\n (onClosed)=\"onPopoverClosed()\"\n>\n <div class=\"ax-lookup-popup\" [class.ax-is-actionsheet]=\"isActionsheetStyle()\" [class.ax-is-alternate]=\"alternate()\" (keydown.escape)=\"close()\">\n @if (isActionsheetStyle()) {\n <ax-header class=\"ax-solid\">\n <ax-title>{{ caption() || placeholder() || ('@acorex:selectbox.popover.title' | translate | async) }}</ax-title>\n <ax-close-button [icon]=\"isMultiple() ? 'ax-icon ax-icon-check' : 'ax-icon ax-icon-close'\"></ax-close-button>\n </ax-header>\n }\n <ng-content select=\"ax-header\"></ng-content>\n @if (expanded()) {\n @switch (mode()) {\n @case ('drop-down-list') {\n <ax-lookup-drop-down-list\n [dataSource]=\"resolvedDataSource()\"\n [valueField]=\"valueField()\"\n [textField]=\"textField()\"\n [disabledField]=\"disabledField()\"\n [selectedValues]=\"selectedValues()\"\n [itemHeight]=\"itemHeight()\"\n [maxVisibleItems]=\"maxVisibleItems()\"\n [itemTemplate]=\"itemTemplate()\"\n [emptyTemplate]=\"emptyTemplate()\"\n [loadingTemplate]=\"loadingTemplate()\"\n [alternate]=\"alternate()\"\n (itemClick)=\"handleSinglePick($event)\"\n (navigateOut)=\"onListNavigateOut($event)\"\n />\n }\n @case ('multi-select') {\n <ax-lookup-multi-select\n [dataSource]=\"resolvedDataSource()\"\n [valueField]=\"valueField()\"\n [textField]=\"textField()\"\n [disabledField]=\"disabledField()\"\n [selectedValues]=\"selectedValues()\"\n [itemHeight]=\"itemHeight()\"\n [maxVisibleItems]=\"maxVisibleItems()\"\n [itemTemplate]=\"itemTemplate()\"\n [emptyTemplate]=\"emptyTemplate()\"\n [loadingTemplate]=\"loadingTemplate()\"\n [alternate]=\"alternate()\"\n (itemClick)=\"handleMultiToggle($event)\"\n (navigateOut)=\"onListNavigateOut($event)\"\n />\n }\n @case ('drop-down-tree') {\n <ax-lookup-drop-down-tree\n [dataSource]=\"treeDataSource()!\"\n [valueField]=\"valueField()\"\n [textField]=\"textField()\"\n [disabledField]=\"disabledField()\"\n [selectedValues]=\"selectedValues()\"\n [nodeTemplate]=\"$any(itemTemplate())\"\n (itemClick)=\"handleSinglePick($event)\"\n />\n }\n @case ('multi-select-tree') {\n <ax-lookup-multi-select-tree\n [dataSource]=\"treeDataSource()!\"\n [valueField]=\"valueField()\"\n [textField]=\"textField()\"\n [disabledField]=\"disabledField()\"\n [selectedValues]=\"selectedValues()\"\n [selectionBehavior]=\"treeSelectionBehavior()\"\n [nodeTemplate]=\"$any(itemTemplate())\"\n (selectionChange)=\"handleTreeSelectionChange($event)\"\n />\n }\n @case ('multi-column') {\n <ax-lookup-multi-column\n [dataSource]=\"resolvedDataSource()\"\n [valueField]=\"valueField()\"\n [textField]=\"textField()\"\n [disabledField]=\"disabledField()\"\n [selectedValues]=\"selectedValues()\"\n [itemHeight]=\"itemHeight()\"\n [maxVisibleItems]=\"maxVisibleItems()\"\n [columns]=\"columns()\"\n [itemTemplate]=\"itemTemplate()\"\n [emptyTemplate]=\"emptyTemplate()\"\n [loadingTemplate]=\"loadingTemplate()\"\n [alternate]=\"alternate()\"\n (itemClick)=\"handleSinglePick($event)\"\n />\n }\n }\n }\n <ng-content select=\"ax-footer\"></ng-content>\n </div>\n</ax-popover>\n<ng-content select=\"ax-validation-rule\"></ng-content>\n", styles: ["@layer properties;@layer components{ax-lookup{display:block;width:100%}ax-lookup .ax-editor-container{justify-content:flex-start;gap:calc(var(--spacing, .25rem) * 1)}ax-lookup .ax-lookup-trigger{cursor:pointer;-webkit-user-select:none;user-select:none}ax-lookup .ax-lookup-trigger-multiple{height:auto;min-height:calc(var(--spacing, .25rem) * 9);padding-block:calc(var(--spacing, .25rem) * 1)}ax-lookup .ax-lookup-value{position:relative;display:flex;min-width:calc(var(--spacing, .25rem) * 0);flex:1;align-items:center;overflow:hidden}ax-lookup .ax-lookup-select-input{cursor:pointer;caret-color:transparent;-webkit-user-select:none;user-select:none}ax-lookup .ax-lookup-selected-content{pointer-events:none;position:relative;z-index:0;display:flex;min-width:calc(var(--spacing, .25rem) * 0);flex:1;align-items:center;overflow:hidden}ax-lookup .ax-lookup-input-overlay{position:absolute;inset:calc(var(--spacing, .25rem) * 0);z-index:10;margin:calc(var(--spacing, .25rem) * 0)!important;height:100%;width:100%;border-style:var(--tw-border-style);border-width:0px;background-color:transparent;padding:calc(var(--spacing, .25rem) * 0)!important;color:transparent;caret-color:transparent}ax-lookup .ax-lookup-chips{display:flex;min-width:calc(var(--spacing, .25rem) * 0);flex:1;flex-wrap:wrap;align-items:center;gap:calc(var(--spacing, .25rem) * 1)}ax-lookup .ax-lookup-trigger-search{margin:calc(var(--spacing, .25rem) * 0)!important;height:calc(var(--spacing, .25rem) * 7.5);width:auto!important;min-width:calc(var(--spacing, .25rem) * 16);flex:1;flex-basis:calc(var(--spacing, .25rem) * 16)}ax-lookup .ax-lookup-placeholder{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)));color:rgba(var(--ax-sys-color-on-surface))}@supports (color: color-mix(in lab,red,red)){ax-lookup .ax-lookup-placeholder{color:color-mix(in oklab,rgba(var(--ax-sys-color-on-surface)) 50%,transparent)}}ax-lookup ax-chips ax-prefix,ax-lookup ax-chips ax-suffix{padding:calc(var(--spacing, .25rem) * 0)!important}ax-lookup ax-chips ax-suffix button{display:flex;cursor:pointer;align-items:center;border-style:var(--tw-border-style);border-width:0px;background-color:transparent;padding:calc(var(--spacing, .25rem) * 0)}.ax-lookup-popup{box-sizing:border-box;display:flex;width:100%;flex-direction:column;overflow:hidden;border-radius:var(--ax-sys-border-radius);border-style:var(--tw-border-style);border-width:1px;border-color:rgba(var(--ax-sys-color-border-surface));background-color:rgba(var(--ax-sys-color-lightest-surface));--tw-shadow: 0 10px 15px -3px var(--tw-shadow-color, rgb(0 0 0 / .1)), 0 4px 6px -4px var(--tw-shadow-color, rgb(0 0 0 / .1));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ax-lookup-popup:where(.ax-dark,.ax-dark *):not(:where(.ax-light,.ax-light *)){background-color:rgba(var(--ax-sys-color-darkest-surface))}.ax-lookup-popup.ax-is-actionsheet{border-bottom-right-radius:0;border-bottom-left-radius:0;--tw-shadow: 0 0 #0000;box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ax-lookup-popup.ax-is-actionsheet>ax-header.ax-solid{border-bottom-style:var(--tw-border-style);border-bottom-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface))}.ax-lookup-popup.ax-is-actionsheet>ax-header.ax-solid .ax-icon-check{color:rgba(var(--ax-sys-color-primary-surface))}.ax-lookup-popup.ax-is-actionsheet>ax-header.ax-solid ax-title{font-size:var(--text-base, 1rem);line-height:var(--tw-leading, var(--text-base--line-height, 1.5 ));--tw-leading: calc(var(--spacing, .25rem) * 6);line-height:calc(var(--spacing, .25rem) * 6);--tw-font-weight: var(--font-weight-medium, 500);font-weight:var(--font-weight-medium, 500)}.ax-lookup-popup>ax-header:not(.ax-solid),.ax-lookup-popup>ax-footer{flex-shrink:0;border-color:rgba(var(--ax-sys-color-border-lightest-surface))}.ax-lookup-popup>ax-header:not(.ax-solid){border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.ax-lookup-popup>ax-footer{border-top-style:var(--tw-border-style);border-top-width:1px}.ax-lookup-viewport{width:100%}.ax-lookup-empty{display:flex;min-height:calc(var(--spacing, .25rem) * 12);width:100%;align-items:center;justify-content:center;padding-inline:calc(var(--spacing, .25rem) * 3);padding-block:calc(var(--spacing, .25rem) * 3);text-align:center;font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)));color:rgba(var(--ax-sys-color-on-surface))}@supports (color: color-mix(in lab,red,red)){.ax-lookup-empty{color:color-mix(in oklab,rgba(var(--ax-sys-color-on-surface)) 60%,transparent)}}.ax-lookup-option-host{box-sizing:border-box;display:flex;cursor:pointer;align-items:center;gap:calc(var(--spacing, .25rem) * 2);border-style:var(--tw-border-style);border-width:1px;border-color:transparent;padding-inline:calc(var(--spacing, .25rem) * 3);font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)));color:rgba(var(--ax-sys-color-on-surface));--tw-outline-style: none;outline-style:none}.ax-lookup-option-host.ax-state-alternate{background-color:rgba(var(--ax-sys-color-on-surface))}@supports (color: color-mix(in lab,red,red)){.ax-lookup-option-host.ax-state-alternate{background-color:color-mix(in oklab,rgba(var(--ax-sys-color-on-surface)) 5%,transparent)}}.ax-lookup-option-host:hover,.ax-lookup-option-host.ax-state-active{background-color:rgba(var(--ax-sys-color-on-surface))}@supports (color: color-mix(in lab,red,red)){.ax-lookup-option-host:hover,.ax-lookup-option-host.ax-state-active{background-color:color-mix(in oklab,rgba(var(--ax-sys-color-on-surface)) 10%,transparent)}}.ax-lookup-option-host.ax-state-alternate:hover,.ax-lookup-option-host.ax-state-alternate.ax-state-active{background-color:rgba(var(--ax-sys-color-on-surface))}@supports (color: color-mix(in lab,red,red)){.ax-lookup-option-host.ax-state-alternate:hover,.ax-lookup-option-host.ax-state-alternate.ax-state-active{background-color:color-mix(in oklab,rgba(var(--ax-sys-color-on-surface)) 15%,transparent)}}.ax-lookup-option-host.ax-state-selected,.ax-lookup-option-host.ax-state-selected:hover,.ax-lookup-option-host.ax-state-selected.ax-state-active,.ax-lookup-option-host.ax-state-selected.ax-state-alternate,.ax-lookup-option-host.ax-state-selected.ax-state-alternate:hover,.ax-lookup-option-host.ax-state-selected.ax-state-alternate.ax-state-active{background-color:rgba(var(--ax-sys-color-primary-lightest-surface))}:is(.ax-lookup-option-host.ax-state-selected,.ax-lookup-option-host.ax-state-selected:hover,.ax-lookup-option-host.ax-state-selected.ax-state-active,.ax-lookup-option-host.ax-state-selected.ax-state-alternate,.ax-lookup-option-host.ax-state-selected.ax-state-alternate:hover,.ax-lookup-option-host.ax-state-selected.ax-state-alternate.ax-state-active):where(.ax-dark,.ax-dark *):not(:where(.ax-light,.ax-light *)){background-color:rgba(var(--ax-sys-color-primary-darkest-surface))}@supports (color: color-mix(in lab,red,red)){:is(.ax-lookup-option-host.ax-state-selected,.ax-lookup-option-host.ax-state-selected:hover,.ax-lookup-option-host.ax-state-selected.ax-state-active,.ax-lookup-option-host.ax-state-selected.ax-state-alternate,.ax-lookup-option-host.ax-state-selected.ax-state-alternate:hover,.ax-lookup-option-host.ax-state-selected.ax-state-alternate.ax-state-active):where(.ax-dark,.ax-dark *):not(:where(.ax-light,.ax-light *)){background-color:color-mix(in oklab,rgba(var(--ax-sys-color-primary-darkest-surface)) 25%,transparent)}}.ax-lookup-option-host.ax-state-selected.ax-state-active,.ax-lookup-option-host.ax-state-selected.ax-state-alternate.ax-state-active{background-color:rgba(var(--ax-sys-color-primary-lightest-surface))}@supports (color: color-mix(in lab,red,red)){.ax-lookup-option-host.ax-state-selected.ax-state-active,.ax-lookup-option-host.ax-state-selected.ax-state-alternate.ax-state-active{background-color:color-mix(in oklab,rgba(var(--ax-sys-color-primary-lightest-surface)) 80%,transparent)}}:is(.ax-lookup-option-host.ax-state-selected.ax-state-active,.ax-lookup-option-host.ax-state-selected.ax-state-alternate.ax-state-active):where(.ax-dark,.ax-dark *):not(:where(.ax-light,.ax-light *)){background-color:rgba(var(--ax-sys-color-primary-darkest-surface))}@supports (color: color-mix(in lab,red,red)){:is(.ax-lookup-option-host.ax-state-selected.ax-state-active,.ax-lookup-option-host.ax-state-selected.ax-state-alternate.ax-state-active):where(.ax-dark,.ax-dark *):not(:where(.ax-light,.ax-light *)){background-color:color-mix(in oklab,rgba(var(--ax-sys-color-primary-darkest-surface)) 40%,transparent)}}.ax-lookup-option-host .ax-lookup-checkbox{pointer-events:none;width:calc(var(--spacing, .25rem) * 4);height:calc(var(--spacing, .25rem) * 4);flex-shrink:0;accent-color:rgba(var(--ax-sys-color-primary-surface))}.ax-lookup-option-host .ax-lookup-option-loading{width:100%;padding-inline:calc(var(--spacing, .25rem) * 3);font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)));color:rgba(var(--ax-sys-color-on-surface))}@supports (color: color-mix(in lab,red,red)){.ax-lookup-option-host .ax-lookup-option-loading{color:color-mix(in oklab,rgba(var(--ax-sys-color-on-surface)) 50%,transparent)}}.ax-lookup-option{justify-content:space-between}.ax-lookup-option.ax-state-selected{color:rgba(var(--ax-sys-color-primary-surface))}.ax-lookup-option-host.ax-state-selected .ax-lookup-option-text{color:rgba(var(--ax-sys-color-primary-surface))}.ax-lookup-option-text{min-width:calc(var(--spacing, .25rem) * 0);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ax-lookup-option-check{flex-shrink:0;color:rgba(var(--ax-sys-color-primary-surface))}ax-lookup-multi-column,.ax-lookup-multi-column{display:block;min-height:calc(var(--spacing, .25rem) * 0);width:100%}:is(ax-lookup-multi-column,.ax-lookup-multi-column) .ax-lookup-multi-column-table,:is(ax-lookup-multi-column,.ax-lookup-multi-column) ax-data-table{height:100%;min-height:calc(var(--spacing, .25rem) * 0);border-style:var(--tw-border-style)!important;border-width:0px!important}:is(ax-lookup-multi-column,.ax-lookup-multi-column) tr.ax-state-selected{background-color:rgba(var(--ax-sys-color-primary-surface))}@supports (color: color-mix(in lab,red,red)){:is(ax-lookup-multi-column,.ax-lookup-multi-column) tr.ax-state-selected{background-color:color-mix(in oklab,rgba(var(--ax-sys-color-primary-surface)) 10%,transparent)}}:is(ax-lookup-multi-column,.ax-lookup-multi-column) tr.ax-state-disabled{pointer-events:none;opacity:50%}.ax-lookup-tree{max-height:calc(var(--spacing, .25rem) * 80);overflow:auto;padding:calc(var(--spacing, .25rem) * 2)}}@property --tw-border-style{syntax: \"*\"; inherits: false; initial-value: solid;}@property --tw-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@property --tw-shadow-color{syntax: \"*\"; inherits: false;}@property --tw-shadow-alpha{syntax: \"<percentage>\"; inherits: false; initial-value: 100%;}@property --tw-inset-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@property --tw-inset-shadow-color{syntax: \"*\"; inherits: false;}@property --tw-inset-shadow-alpha{syntax: \"<percentage>\"; inherits: false; initial-value: 100%;}@property --tw-ring-color{syntax: \"*\"; inherits: false;}@property --tw-ring-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@property --tw-inset-ring-color{syntax: \"*\"; inherits: false;}@property --tw-inset-ring-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@property --tw-ring-inset{syntax: \"*\"; inherits: false;}@property --tw-ring-offset-width{syntax: \"<length>\"; inherits: false; initial-value: 0px;}@property --tw-ring-offset-color{syntax: \"*\"; inherits: false; initial-value: #fff;}@property --tw-ring-offset-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@property --tw-leading{syntax: \"*\"; inherits: false;}@property --tw-font-weight{syntax: \"*\"; inherits: false;}@layer properties{@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style: solid;--tw-shadow: 0 0 #0000;--tw-shadow-color: initial;--tw-shadow-alpha: 100%;--tw-inset-shadow: 0 0 #0000;--tw-inset-shadow-color: initial;--tw-inset-shadow-alpha: 100%;--tw-ring-color: initial;--tw-ring-shadow: 0 0 #0000;--tw-inset-ring-color: initial;--tw-inset-ring-shadow: 0 0 #0000;--tw-ring-inset: initial;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-offset-shadow: 0 0 #0000;--tw-leading: initial;--tw-font-weight: initial}}}\n/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: AXChipsComponent, selector: "ax-chips", inputs: ["tabIndex", "color", "look", "text"], outputs: ["textChange"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i1$1.AXDecoratorCloseButtonComponent, selector: "ax-close-button", inputs: ["closeAll", "icon"] }, { kind: "component", type: i1$1.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "component", type: AXPopoverComponent, selector: "ax-popover", inputs: ["width", "disablePanelClass", "visualContextScope", "disabled", "offsetX", "offsetY", "target", "placement", "content", "openOn", "closeOn", "hasBackdrop", "openAfter", "closeAfter", "closeOnScroll", "backdropClass", "panelClass", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "component", type: AXLookupDropDownListComponent, selector: "ax-lookup-drop-down-list" }, { kind: "component", type: AXLookupMultiSelectComponent, selector: "ax-lookup-multi-select" }, { kind: "component", type: AXLookupDropDownTreeComponent, selector: "ax-lookup-drop-down-tree", inputs: ["dataSource", "valueField", "textField", "disabledField", "selectedValues", "nodeTemplate"], outputs: ["itemClick"] }, { kind: "component", type: AXLookupMultiSelectTreeComponent, selector: "ax-lookup-multi-select-tree", inputs: ["dataSource", "valueField", "textField", "disabledField", "selectedValues", "selectionBehavior", "nodeTemplate"], outputs: ["selectionChange"] }, { kind: "component", type: AXLookupMultiColumnComponent, selector: "ax-lookup-multi-column", inputs: ["dataSource", "valueField", "textField", "disabledField", "selectedValues", "itemHeight", "maxVisibleItems", "columns", "itemTemplate", "emptyTemplate", "loadingTemplate", "alternate"], outputs: ["itemClick"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
1814
1824
  }
1815
1825
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXLookupComponent, decorators: [{
1816
1826
  type: Component,
@@ -1831,7 +1841,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
1831
1841
  { provide: AXClearableComponent, useExisting: AXLookupComponent },
1832
1842
  { provide: AXClosableComponent, useExisting: AXLookupComponent },
1833
1843
  { provide: AXValuableComponent, useExisting: AXLookupComponent },
1834
- ], template: "<div\n #origin\n class=\"ax-editor-container ax-{{ look() }} ax-default\"\n [class.ax-lookup-trigger]=\"!isEditableTrigger()\"\n [class.ax-lookup-trigger-multiple]=\"isMultiple()\"\n [class.ax-state-disabled]=\"disabled()\"\n [class.ax-state-readonly]=\"readonly()\"\n (click)=\"onTriggerClick()\"\n>\n <ng-content select=\"ax-prefix\"></ng-content>\n\n @if (isMultiple()) {\n <div class=\"ax-lookup-chips\">\n @for (item of selectedItems(); track trackSelectedKey(item)) {\n <ax-chips class=\"ax-sm\" color=\"primary\" look=\"twotone\" [text]=\"selectedTemplate() ? '' : getItemText(item)\">\n @if (selectedTemplate()) {\n <ax-prefix>\n <ng-container\n [ngTemplateOutlet]=\"selectedTemplate()!\"\n [ngTemplateOutletContext]=\"{ $implicit: item }\"\n />\n </ax-prefix>\n }\n @if (!disabled() && !readonly()) {\n <ax-suffix>\n <button type=\"button\" tabindex=\"-1\" (click)=\"removeChip($event, item)\">\n <span class=\"ax-icon ax-icon-close\"></span>\n </button>\n </ax-suffix>\n }\n </ax-chips>\n }\n <input\n #triggerSearchInput\n type=\"text\"\n class=\"ax-input ax-lookup-trigger-search\"\n [class.ax-lookup-select-input]=\"!isEditableTrigger()\"\n [placeholder]=\"triggerSearchPlaceholder()\"\n [disabled]=\"disabled()\"\n [readonly]=\"readonly() || !isEditableTrigger()\"\n [attr.inputmode]=\"isEditableTrigger() ? null : 'none'\"\n [value]=\"searchText()\"\n (input)=\"onTriggerSearchInput($any($event.target).value)\"\n (keydown)=\"onTriggerKeydown($event)\"\n (beforeinput)=\"onBeforeInput($event)\"\n (focus)=\"emitOnFocus($event)\"\n (blur)=\"emitOnBlur($event)\"\n />\n </div>\n } @else {\n <div class=\"ax-lookup-value\">\n @if (showSelectedTemplate()) {\n <div class=\"ax-lookup-selected-content\" aria-hidden=\"true\">\n <ng-container\n [ngTemplateOutlet]=\"selectedTemplate()!\"\n [ngTemplateOutletContext]=\"{ $implicit: selectedItems()[0] }\"\n />\n </div>\n }\n <input\n #triggerSearchInput\n type=\"text\"\n class=\"ax-input\"\n [class.ax-lookup-select-input]=\"!isEditableTrigger()\"\n [class.ax-lookup-input-overlay]=\"showSelectedTemplate()\"\n [placeholder]=\"placeholder()\"\n [disabled]=\"disabled()\"\n [readonly]=\"readonly() || !isEditableTrigger()\"\n [attr.inputmode]=\"isEditableTrigger() ? null : 'none'\"\n [value]=\"searchText()\"\n (input)=\"onTriggerSearchInput($any($event.target).value)\"\n (keydown)=\"onTriggerKeydown($event)\"\n (beforeinput)=\"onBeforeInput($event)\"\n (focus)=\"emitOnFocus($event)\"\n (blur)=\"emitOnBlur($event)\"\n />\n </div>\n }\n\n @if (selectedValues().length > 0 && !disabled() && !readonly()) {\n <ng-content select=\"ax-clear-button\"></ng-content>\n }\n\n <button\n type=\"button\"\n class=\"ax-general-button-icon\"\n tabindex=\"-1\"\n [disabled]=\"disabled() || readonly()\"\n >\n <span\n class=\"ax-icon\"\n [class.ax-icon-chevron-down]=\"!expanded()\"\n [class.ax-icon-chevron-up]=\"expanded()\"\n ></span>\n </button>\n <ng-content select=\"ax-suffix\"></ng-content>\n</div>\n\n<ax-popover\n [target]=\"origin\"\n [openOn]=\"'manual'\"\n [closeOn]=\"'clickOut'\"\n [placement]=\"'bottom-start'\"\n [width]=\"isActionsheetStyle() ? '100%' : origin.offsetWidth + 'px'\"\n [adaptivityEnabled]=\"isActionsheetStyle()\"\n [disabled]=\"disabled() || readonly()\"\n (onClosed)=\"onPopoverClosed()\"\n>\n <div class=\"ax-lookup-popup\" [class.ax-is-actionsheet]=\"isActionsheetStyle()\" [class.ax-is-alternate]=\"alternate()\" (keydown.escape)=\"close()\">\n @if (isActionsheetStyle()) {\n <ax-header class=\"ax-solid\">\n <ax-title>{{ caption() || placeholder() || ('@acorex:selectbox.popover.title' | translate | async) }}</ax-title>\n <ax-close-button [icon]=\"isMultiple() ? 'ax-icon ax-icon-check' : 'ax-icon ax-icon-close'\"></ax-close-button>\n </ax-header>\n }\n <ng-content select=\"ax-header\"></ng-content>\n @if (expanded()) {\n @switch (mode()) {\n @case ('drop-down-list') {\n <ax-lookup-drop-down-list\n [dataSource]=\"resolvedDataSource()\"\n [valueField]=\"valueField()\"\n [textField]=\"textField()\"\n [disabledField]=\"disabledField()\"\n [selectedValues]=\"selectedValues()\"\n [itemHeight]=\"itemHeight()\"\n [maxVisibleItems]=\"maxVisibleItems()\"\n [itemTemplate]=\"itemTemplate()\"\n [emptyTemplate]=\"emptyTemplate()\"\n [loadingTemplate]=\"loadingTemplate()\"\n [alternate]=\"alternate()\"\n (itemClick)=\"handleSinglePick($event)\"\n (navigateOut)=\"onListNavigateOut($event)\"\n />\n }\n @case ('multi-select') {\n <ax-lookup-multi-select\n [dataSource]=\"resolvedDataSource()\"\n [valueField]=\"valueField()\"\n [textField]=\"textField()\"\n [disabledField]=\"disabledField()\"\n [selectedValues]=\"selectedValues()\"\n [itemHeight]=\"itemHeight()\"\n [maxVisibleItems]=\"maxVisibleItems()\"\n [itemTemplate]=\"itemTemplate()\"\n [emptyTemplate]=\"emptyTemplate()\"\n [loadingTemplate]=\"loadingTemplate()\"\n [alternate]=\"alternate()\"\n (itemClick)=\"handleMultiToggle($event)\"\n (navigateOut)=\"onListNavigateOut($event)\"\n />\n }\n @case ('drop-down-tree') {\n <ax-lookup-drop-down-tree\n [dataSource]=\"treeDataSource()!\"\n [valueField]=\"valueField()\"\n [textField]=\"textField()\"\n [disabledField]=\"disabledField()\"\n [selectedValues]=\"selectedValues()\"\n [nodeTemplate]=\"$any(itemTemplate())\"\n (itemClick)=\"handleSinglePick($event)\"\n />\n }\n @case ('multi-select-tree') {\n <ax-lookup-multi-select-tree\n [dataSource]=\"treeDataSource()!\"\n [valueField]=\"valueField()\"\n [textField]=\"textField()\"\n [disabledField]=\"disabledField()\"\n [selectedValues]=\"selectedValues()\"\n [selectionBehavior]=\"treeSelectionBehavior()\"\n [nodeTemplate]=\"$any(itemTemplate())\"\n (selectionChange)=\"handleTreeSelectionChange($event)\"\n />\n }\n @case ('multi-column') {\n <ax-lookup-multi-column\n [dataSource]=\"resolvedDataSource()\"\n [valueField]=\"valueField()\"\n [textField]=\"textField()\"\n [disabledField]=\"disabledField()\"\n [selectedValues]=\"selectedValues()\"\n [itemHeight]=\"itemHeight()\"\n [maxVisibleItems]=\"maxVisibleItems()\"\n [columns]=\"columns()\"\n [itemTemplate]=\"itemTemplate()\"\n [emptyTemplate]=\"emptyTemplate()\"\n [loadingTemplate]=\"loadingTemplate()\"\n [alternate]=\"alternate()\"\n (itemClick)=\"handleSinglePick($event)\"\n />\n }\n }\n }\n <ng-content select=\"ax-footer\"></ng-content>\n </div>\n</ax-popover>\n<ng-content select=\"ax-validation-rule\"></ng-content>\n", styles: ["@layer properties;@layer components{ax-lookup{display:block;width:100%}ax-lookup .ax-editor-container{justify-content:flex-start;gap:calc(var(--spacing, .25rem) * 1)}ax-lookup .ax-lookup-trigger{cursor:pointer;-webkit-user-select:none;user-select:none}ax-lookup .ax-lookup-trigger-multiple{height:auto;min-height:calc(var(--spacing, .25rem) * 9);padding-block:calc(var(--spacing, .25rem) * 1)}ax-lookup .ax-lookup-value{position:relative;display:flex;min-width:calc(var(--spacing, .25rem) * 0);flex:1;align-items:center;overflow:hidden}ax-lookup .ax-lookup-select-input{cursor:pointer;caret-color:transparent;-webkit-user-select:none;user-select:none}ax-lookup .ax-lookup-selected-content{pointer-events:none;position:relative;z-index:0;display:flex;min-width:calc(var(--spacing, .25rem) * 0);flex:1;align-items:center;overflow:hidden}ax-lookup .ax-lookup-input-overlay{position:absolute;inset:calc(var(--spacing, .25rem) * 0);z-index:10;margin:calc(var(--spacing, .25rem) * 0)!important;height:100%;width:100%;border-style:var(--tw-border-style);border-width:0px;background-color:transparent;padding:calc(var(--spacing, .25rem) * 0)!important;color:transparent;caret-color:transparent}ax-lookup .ax-lookup-chips{display:flex;min-width:calc(var(--spacing, .25rem) * 0);flex:1;flex-wrap:wrap;align-items:center;gap:calc(var(--spacing, .25rem) * 1)}ax-lookup .ax-lookup-trigger-search{margin:calc(var(--spacing, .25rem) * 0)!important;height:calc(var(--spacing, .25rem) * 7.5);width:auto!important;min-width:calc(var(--spacing, .25rem) * 16);flex:1;flex-basis:calc(var(--spacing, .25rem) * 16)}ax-lookup .ax-lookup-placeholder{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)));color:rgba(var(--ax-sys-color-on-surface))}@supports (color: color-mix(in lab,red,red)){ax-lookup .ax-lookup-placeholder{color:color-mix(in oklab,rgba(var(--ax-sys-color-on-surface)) 50%,transparent)}}ax-lookup ax-chips ax-prefix,ax-lookup ax-chips ax-suffix{padding:calc(var(--spacing, .25rem) * 0)!important}ax-lookup ax-chips ax-suffix button{display:flex;cursor:pointer;align-items:center;border-style:var(--tw-border-style);border-width:0px;background-color:transparent;padding:calc(var(--spacing, .25rem) * 0)}.ax-lookup-popup{box-sizing:border-box;display:flex;width:100%;flex-direction:column;overflow:hidden;border-radius:var(--ax-sys-border-radius);border-style:var(--tw-border-style);border-width:1px;border-color:rgba(var(--ax-sys-color-border-surface));background-color:rgba(var(--ax-sys-color-lightest-surface));--tw-shadow: 0 10px 15px -3px var(--tw-shadow-color, rgb(0 0 0 / .1)), 0 4px 6px -4px var(--tw-shadow-color, rgb(0 0 0 / .1));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ax-lookup-popup:where(.ax-dark,.ax-dark *):not(:where(.ax-light,.ax-light *)){background-color:rgba(var(--ax-sys-color-darkest-surface))}.ax-lookup-popup.ax-is-actionsheet{border-bottom-right-radius:0;border-bottom-left-radius:0;--tw-shadow: 0 0 #0000;box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ax-lookup-popup.ax-is-actionsheet>ax-header.ax-solid{border-bottom-style:var(--tw-border-style);border-bottom-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface))}.ax-lookup-popup.ax-is-actionsheet>ax-header.ax-solid .ax-icon-check{color:rgba(var(--ax-sys-color-primary-surface))}.ax-lookup-popup.ax-is-actionsheet>ax-header.ax-solid ax-title{font-size:var(--text-base, 1rem);line-height:var(--tw-leading, var(--text-base--line-height, 1.5 ));--tw-leading: calc(var(--spacing, .25rem) * 6);line-height:calc(var(--spacing, .25rem) * 6);--tw-font-weight: var(--font-weight-medium, 500);font-weight:var(--font-weight-medium, 500)}.ax-lookup-popup>ax-header:not(.ax-solid),.ax-lookup-popup>ax-footer{flex-shrink:0;border-color:rgba(var(--ax-sys-color-border-lightest-surface))}.ax-lookup-popup>ax-header:not(.ax-solid){border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.ax-lookup-popup>ax-footer{border-top-style:var(--tw-border-style);border-top-width:1px}.ax-lookup-viewport{width:100%}.ax-lookup-empty{display:flex;min-height:calc(var(--spacing, .25rem) * 12);width:100%;align-items:center;justify-content:center;padding-inline:calc(var(--spacing, .25rem) * 3);padding-block:calc(var(--spacing, .25rem) * 3);text-align:center;font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)));color:rgba(var(--ax-sys-color-on-surface))}@supports (color: color-mix(in lab,red,red)){.ax-lookup-empty{color:color-mix(in oklab,rgba(var(--ax-sys-color-on-surface)) 60%,transparent)}}.ax-lookup-option-host{box-sizing:border-box;cursor:pointer;border-style:var(--tw-border-style);border-width:1px;border-color:transparent;--tw-outline-style: none;outline-style:none}.ax-lookup-option-host.ax-state-alternate{background-color:rgba(var(--ax-sys-color-on-surface))}@supports (color: color-mix(in lab,red,red)){.ax-lookup-option-host.ax-state-alternate{background-color:color-mix(in oklab,rgba(var(--ax-sys-color-on-surface)) 5%,transparent)}}.ax-lookup-option-host:hover,.ax-lookup-option-host.ax-state-active{background-color:rgba(var(--ax-sys-color-on-surface))}@supports (color: color-mix(in lab,red,red)){.ax-lookup-option-host:hover,.ax-lookup-option-host.ax-state-active{background-color:color-mix(in oklab,rgba(var(--ax-sys-color-on-surface)) 10%,transparent)}}.ax-lookup-option-host.ax-state-alternate:hover,.ax-lookup-option-host.ax-state-alternate.ax-state-active{background-color:rgba(var(--ax-sys-color-on-surface))}@supports (color: color-mix(in lab,red,red)){.ax-lookup-option-host.ax-state-alternate:hover,.ax-lookup-option-host.ax-state-alternate.ax-state-active{background-color:color-mix(in oklab,rgba(var(--ax-sys-color-on-surface)) 15%,transparent)}}.ax-lookup-option-host.ax-state-selected,.ax-lookup-option-host.ax-state-selected:hover,.ax-lookup-option-host.ax-state-selected.ax-state-active,.ax-lookup-option-host.ax-state-selected.ax-state-alternate,.ax-lookup-option-host.ax-state-selected.ax-state-alternate:hover,.ax-lookup-option-host.ax-state-selected.ax-state-alternate.ax-state-active{background-color:rgba(var(--ax-sys-color-primary-lightest-surface))}:is(.ax-lookup-option-host.ax-state-selected,.ax-lookup-option-host.ax-state-selected:hover,.ax-lookup-option-host.ax-state-selected.ax-state-active,.ax-lookup-option-host.ax-state-selected.ax-state-alternate,.ax-lookup-option-host.ax-state-selected.ax-state-alternate:hover,.ax-lookup-option-host.ax-state-selected.ax-state-alternate.ax-state-active):where(.ax-dark,.ax-dark *):not(:where(.ax-light,.ax-light *)){background-color:rgba(var(--ax-sys-color-primary-darkest-surface))}@supports (color: color-mix(in lab,red,red)){:is(.ax-lookup-option-host.ax-state-selected,.ax-lookup-option-host.ax-state-selected:hover,.ax-lookup-option-host.ax-state-selected.ax-state-active,.ax-lookup-option-host.ax-state-selected.ax-state-alternate,.ax-lookup-option-host.ax-state-selected.ax-state-alternate:hover,.ax-lookup-option-host.ax-state-selected.ax-state-alternate.ax-state-active):where(.ax-dark,.ax-dark *):not(:where(.ax-light,.ax-light *)){background-color:color-mix(in oklab,rgba(var(--ax-sys-color-primary-darkest-surface)) 25%,transparent)}}.ax-lookup-option-host.ax-state-selected.ax-state-active,.ax-lookup-option-host.ax-state-selected.ax-state-alternate.ax-state-active{background-color:rgba(var(--ax-sys-color-primary-lightest-surface))}@supports (color: color-mix(in lab,red,red)){.ax-lookup-option-host.ax-state-selected.ax-state-active,.ax-lookup-option-host.ax-state-selected.ax-state-alternate.ax-state-active{background-color:color-mix(in oklab,rgba(var(--ax-sys-color-primary-lightest-surface)) 80%,transparent)}}:is(.ax-lookup-option-host.ax-state-selected.ax-state-active,.ax-lookup-option-host.ax-state-selected.ax-state-alternate.ax-state-active):where(.ax-dark,.ax-dark *):not(:where(.ax-light,.ax-light *)){background-color:rgba(var(--ax-sys-color-primary-darkest-surface))}@supports (color: color-mix(in lab,red,red)){:is(.ax-lookup-option-host.ax-state-selected.ax-state-active,.ax-lookup-option-host.ax-state-selected.ax-state-alternate.ax-state-active):where(.ax-dark,.ax-dark *):not(:where(.ax-light,.ax-light *)){background-color:color-mix(in oklab,rgba(var(--ax-sys-color-primary-darkest-surface)) 40%,transparent)}}.ax-lookup-option-host.ax-lookup-option-host--check{display:flex;align-items:center;gap:calc(var(--spacing, .25rem) * 2);padding-inline:calc(var(--spacing, .25rem) * 3)}.ax-lookup-option-host .ax-lookup-checkbox{pointer-events:none;width:calc(var(--spacing, .25rem) * 4);height:calc(var(--spacing, .25rem) * 4);flex-shrink:0;accent-color:rgba(var(--ax-sys-color-primary-surface))}.ax-lookup-option-host .ax-lookup-option-loading{width:100%;padding-inline:calc(var(--spacing, .25rem) * 3);font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)));color:rgba(var(--ax-sys-color-on-surface))}@supports (color: color-mix(in lab,red,red)){.ax-lookup-option-host .ax-lookup-option-loading{color:color-mix(in oklab,rgba(var(--ax-sys-color-on-surface)) 50%,transparent)}}.ax-lookup-option{display:flex;align-items:center;justify-content:space-between;gap:calc(var(--spacing, .25rem) * 2);padding-inline:calc(var(--spacing, .25rem) * 3);font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)));color:rgba(var(--ax-sys-color-on-surface))}.ax-lookup-option.ax-state-selected{color:rgba(var(--ax-sys-color-primary-surface))}.ax-lookup-option .ax-lookup-option-text{min-width:calc(var(--spacing, .25rem) * 0);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ax-lookup-option .ax-lookup-option-check{flex-shrink:0;color:rgba(var(--ax-sys-color-primary-surface))}ax-lookup-multi-column,.ax-lookup-multi-column{display:block;min-height:calc(var(--spacing, .25rem) * 0);width:100%}:is(ax-lookup-multi-column,.ax-lookup-multi-column) .ax-lookup-multi-column-table,:is(ax-lookup-multi-column,.ax-lookup-multi-column) ax-data-table{height:100%;min-height:calc(var(--spacing, .25rem) * 0);border-style:var(--tw-border-style)!important;border-width:0px!important}:is(ax-lookup-multi-column,.ax-lookup-multi-column) tr.ax-state-selected{background-color:rgba(var(--ax-sys-color-primary-surface))}@supports (color: color-mix(in lab,red,red)){:is(ax-lookup-multi-column,.ax-lookup-multi-column) tr.ax-state-selected{background-color:color-mix(in oklab,rgba(var(--ax-sys-color-primary-surface)) 10%,transparent)}}:is(ax-lookup-multi-column,.ax-lookup-multi-column) tr.ax-state-disabled{pointer-events:none;opacity:50%}.ax-lookup-tree{max-height:calc(var(--spacing, .25rem) * 80);overflow:auto;padding:calc(var(--spacing, .25rem) * 2)}}@property --tw-border-style{syntax: \"*\"; inherits: false; initial-value: solid;}@property --tw-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@property --tw-shadow-color{syntax: \"*\"; inherits: false;}@property --tw-shadow-alpha{syntax: \"<percentage>\"; inherits: false; initial-value: 100%;}@property --tw-inset-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@property --tw-inset-shadow-color{syntax: \"*\"; inherits: false;}@property --tw-inset-shadow-alpha{syntax: \"<percentage>\"; inherits: false; initial-value: 100%;}@property --tw-ring-color{syntax: \"*\"; inherits: false;}@property --tw-ring-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@property --tw-inset-ring-color{syntax: \"*\"; inherits: false;}@property --tw-inset-ring-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@property --tw-ring-inset{syntax: \"*\"; inherits: false;}@property --tw-ring-offset-width{syntax: \"<length>\"; inherits: false; initial-value: 0px;}@property --tw-ring-offset-color{syntax: \"*\"; inherits: false; initial-value: #fff;}@property --tw-ring-offset-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@property --tw-leading{syntax: \"*\"; inherits: false;}@property --tw-font-weight{syntax: \"*\"; inherits: false;}@layer properties{@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style: solid;--tw-shadow: 0 0 #0000;--tw-shadow-color: initial;--tw-shadow-alpha: 100%;--tw-inset-shadow: 0 0 #0000;--tw-inset-shadow-color: initial;--tw-inset-shadow-alpha: 100%;--tw-ring-color: initial;--tw-ring-shadow: 0 0 #0000;--tw-inset-ring-color: initial;--tw-inset-ring-shadow: 0 0 #0000;--tw-ring-inset: initial;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-offset-shadow: 0 0 #0000;--tw-leading: initial;--tw-font-weight: initial}}}\n/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */\n"] }]
1844
+ ], template: "<div\n #origin\n class=\"ax-editor-container ax-{{ look() }} ax-default\"\n [class.ax-lookup-trigger]=\"!isEditableTrigger()\"\n [class.ax-lookup-trigger-multiple]=\"isMultiple()\"\n [class.ax-state-disabled]=\"disabled()\"\n [class.ax-state-readonly]=\"readonly()\"\n (click)=\"onTriggerClick()\"\n>\n <ng-content select=\"ax-prefix\"></ng-content>\n\n @if (isMultiple()) {\n <div class=\"ax-lookup-chips\">\n @for (item of selectedItems(); track trackSelectedKey(item)) {\n <ax-chips class=\"ax-sm\" color=\"primary\" look=\"twotone\" [text]=\"selectedTemplate() ? '' : getItemText(item)\">\n @if (selectedTemplate()) {\n <ax-prefix>\n <ng-container\n [ngTemplateOutlet]=\"selectedTemplate()!\"\n [ngTemplateOutletContext]=\"{ $implicit: item }\"\n />\n </ax-prefix>\n }\n @if (!disabled() && !readonly()) {\n <ax-suffix>\n <button type=\"button\" tabindex=\"-1\" (click)=\"removeChip($event, item)\">\n <span class=\"ax-icon ax-icon-close\"></span>\n </button>\n </ax-suffix>\n }\n </ax-chips>\n }\n <input\n #triggerSearchInput\n type=\"text\"\n class=\"ax-input ax-lookup-trigger-search\"\n [class.ax-lookup-select-input]=\"!isEditableTrigger()\"\n [placeholder]=\"triggerSearchPlaceholder()\"\n [disabled]=\"disabled()\"\n [readonly]=\"readonly() || !isEditableTrigger()\"\n [attr.inputmode]=\"isEditableTrigger() ? null : 'none'\"\n [value]=\"searchText()\"\n (input)=\"onTriggerSearchInput($any($event.target).value)\"\n (keydown)=\"onTriggerKeydown($event)\"\n (beforeinput)=\"onBeforeInput($event)\"\n (focus)=\"emitOnFocus($event)\"\n (blur)=\"emitOnBlur($event)\"\n />\n </div>\n } @else {\n <div class=\"ax-lookup-value\">\n @if (showSelectedTemplate()) {\n <div class=\"ax-lookup-selected-content\" aria-hidden=\"true\">\n <ng-container\n [ngTemplateOutlet]=\"selectedTemplate()!\"\n [ngTemplateOutletContext]=\"{ $implicit: selectedItems()[0] }\"\n />\n </div>\n }\n <input\n #triggerSearchInput\n type=\"text\"\n class=\"ax-input\"\n [class.ax-lookup-select-input]=\"!isEditableTrigger()\"\n [class.ax-lookup-input-overlay]=\"showSelectedTemplate()\"\n [placeholder]=\"placeholder()\"\n [disabled]=\"disabled()\"\n [readonly]=\"readonly() || !isEditableTrigger()\"\n [attr.inputmode]=\"isEditableTrigger() ? null : 'none'\"\n [value]=\"searchText()\"\n (input)=\"onTriggerSearchInput($any($event.target).value)\"\n (keydown)=\"onTriggerKeydown($event)\"\n (beforeinput)=\"onBeforeInput($event)\"\n (focus)=\"emitOnFocus($event)\"\n (blur)=\"emitOnBlur($event)\"\n />\n </div>\n }\n\n @if (selectedValues().length > 0 && !disabled() && !readonly()) {\n <ng-content select=\"ax-clear-button\"></ng-content>\n }\n\n <button\n type=\"button\"\n class=\"ax-general-button-icon\"\n tabindex=\"-1\"\n [disabled]=\"disabled() || readonly()\"\n >\n <span\n class=\"ax-icon\"\n [class.ax-icon-chevron-down]=\"!expanded()\"\n [class.ax-icon-chevron-up]=\"expanded()\"\n ></span>\n </button>\n <ng-content select=\"ax-suffix\"></ng-content>\n</div>\n\n<ax-popover\n [target]=\"origin\"\n [openOn]=\"'manual'\"\n [closeOn]=\"'clickOut'\"\n [placement]=\"'bottom-start'\"\n [width]=\"isActionsheetStyle() ? '100%' : origin.offsetWidth + 'px'\"\n [adaptivityEnabled]=\"isActionsheetStyle()\"\n [disabled]=\"disabled() || readonly()\"\n (onClosed)=\"onPopoverClosed()\"\n>\n <div class=\"ax-lookup-popup\" [class.ax-is-actionsheet]=\"isActionsheetStyle()\" [class.ax-is-alternate]=\"alternate()\" (keydown.escape)=\"close()\">\n @if (isActionsheetStyle()) {\n <ax-header class=\"ax-solid\">\n <ax-title>{{ caption() || placeholder() || ('@acorex:selectbox.popover.title' | translate | async) }}</ax-title>\n <ax-close-button [icon]=\"isMultiple() ? 'ax-icon ax-icon-check' : 'ax-icon ax-icon-close'\"></ax-close-button>\n </ax-header>\n }\n <ng-content select=\"ax-header\"></ng-content>\n @if (expanded()) {\n @switch (mode()) {\n @case ('drop-down-list') {\n <ax-lookup-drop-down-list\n [dataSource]=\"resolvedDataSource()\"\n [valueField]=\"valueField()\"\n [textField]=\"textField()\"\n [disabledField]=\"disabledField()\"\n [selectedValues]=\"selectedValues()\"\n [itemHeight]=\"itemHeight()\"\n [maxVisibleItems]=\"maxVisibleItems()\"\n [itemTemplate]=\"itemTemplate()\"\n [emptyTemplate]=\"emptyTemplate()\"\n [loadingTemplate]=\"loadingTemplate()\"\n [alternate]=\"alternate()\"\n (itemClick)=\"handleSinglePick($event)\"\n (navigateOut)=\"onListNavigateOut($event)\"\n />\n }\n @case ('multi-select') {\n <ax-lookup-multi-select\n [dataSource]=\"resolvedDataSource()\"\n [valueField]=\"valueField()\"\n [textField]=\"textField()\"\n [disabledField]=\"disabledField()\"\n [selectedValues]=\"selectedValues()\"\n [itemHeight]=\"itemHeight()\"\n [maxVisibleItems]=\"maxVisibleItems()\"\n [itemTemplate]=\"itemTemplate()\"\n [emptyTemplate]=\"emptyTemplate()\"\n [loadingTemplate]=\"loadingTemplate()\"\n [alternate]=\"alternate()\"\n (itemClick)=\"handleMultiToggle($event)\"\n (navigateOut)=\"onListNavigateOut($event)\"\n />\n }\n @case ('drop-down-tree') {\n <ax-lookup-drop-down-tree\n [dataSource]=\"treeDataSource()!\"\n [valueField]=\"valueField()\"\n [textField]=\"textField()\"\n [disabledField]=\"disabledField()\"\n [selectedValues]=\"selectedValues()\"\n [nodeTemplate]=\"$any(itemTemplate())\"\n (itemClick)=\"handleSinglePick($event)\"\n />\n }\n @case ('multi-select-tree') {\n <ax-lookup-multi-select-tree\n [dataSource]=\"treeDataSource()!\"\n [valueField]=\"valueField()\"\n [textField]=\"textField()\"\n [disabledField]=\"disabledField()\"\n [selectedValues]=\"selectedValues()\"\n [selectionBehavior]=\"treeSelectionBehavior()\"\n [nodeTemplate]=\"$any(itemTemplate())\"\n (selectionChange)=\"handleTreeSelectionChange($event)\"\n />\n }\n @case ('multi-column') {\n <ax-lookup-multi-column\n [dataSource]=\"resolvedDataSource()\"\n [valueField]=\"valueField()\"\n [textField]=\"textField()\"\n [disabledField]=\"disabledField()\"\n [selectedValues]=\"selectedValues()\"\n [itemHeight]=\"itemHeight()\"\n [maxVisibleItems]=\"maxVisibleItems()\"\n [columns]=\"columns()\"\n [itemTemplate]=\"itemTemplate()\"\n [emptyTemplate]=\"emptyTemplate()\"\n [loadingTemplate]=\"loadingTemplate()\"\n [alternate]=\"alternate()\"\n (itemClick)=\"handleSinglePick($event)\"\n />\n }\n }\n }\n <ng-content select=\"ax-footer\"></ng-content>\n </div>\n</ax-popover>\n<ng-content select=\"ax-validation-rule\"></ng-content>\n", styles: ["@layer properties;@layer components{ax-lookup{display:block;width:100%}ax-lookup .ax-editor-container{justify-content:flex-start;gap:calc(var(--spacing, .25rem) * 1)}ax-lookup .ax-lookup-trigger{cursor:pointer;-webkit-user-select:none;user-select:none}ax-lookup .ax-lookup-trigger-multiple{height:auto;min-height:calc(var(--spacing, .25rem) * 9);padding-block:calc(var(--spacing, .25rem) * 1)}ax-lookup .ax-lookup-value{position:relative;display:flex;min-width:calc(var(--spacing, .25rem) * 0);flex:1;align-items:center;overflow:hidden}ax-lookup .ax-lookup-select-input{cursor:pointer;caret-color:transparent;-webkit-user-select:none;user-select:none}ax-lookup .ax-lookup-selected-content{pointer-events:none;position:relative;z-index:0;display:flex;min-width:calc(var(--spacing, .25rem) * 0);flex:1;align-items:center;overflow:hidden}ax-lookup .ax-lookup-input-overlay{position:absolute;inset:calc(var(--spacing, .25rem) * 0);z-index:10;margin:calc(var(--spacing, .25rem) * 0)!important;height:100%;width:100%;border-style:var(--tw-border-style);border-width:0px;background-color:transparent;padding:calc(var(--spacing, .25rem) * 0)!important;color:transparent;caret-color:transparent}ax-lookup .ax-lookup-chips{display:flex;min-width:calc(var(--spacing, .25rem) * 0);flex:1;flex-wrap:wrap;align-items:center;gap:calc(var(--spacing, .25rem) * 1)}ax-lookup .ax-lookup-trigger-search{margin:calc(var(--spacing, .25rem) * 0)!important;height:calc(var(--spacing, .25rem) * 7.5);width:auto!important;min-width:calc(var(--spacing, .25rem) * 16);flex:1;flex-basis:calc(var(--spacing, .25rem) * 16)}ax-lookup .ax-lookup-placeholder{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)));color:rgba(var(--ax-sys-color-on-surface))}@supports (color: color-mix(in lab,red,red)){ax-lookup .ax-lookup-placeholder{color:color-mix(in oklab,rgba(var(--ax-sys-color-on-surface)) 50%,transparent)}}ax-lookup ax-chips ax-prefix,ax-lookup ax-chips ax-suffix{padding:calc(var(--spacing, .25rem) * 0)!important}ax-lookup ax-chips ax-suffix button{display:flex;cursor:pointer;align-items:center;border-style:var(--tw-border-style);border-width:0px;background-color:transparent;padding:calc(var(--spacing, .25rem) * 0)}.ax-lookup-popup{box-sizing:border-box;display:flex;width:100%;flex-direction:column;overflow:hidden;border-radius:var(--ax-sys-border-radius);border-style:var(--tw-border-style);border-width:1px;border-color:rgba(var(--ax-sys-color-border-surface));background-color:rgba(var(--ax-sys-color-lightest-surface));--tw-shadow: 0 10px 15px -3px var(--tw-shadow-color, rgb(0 0 0 / .1)), 0 4px 6px -4px var(--tw-shadow-color, rgb(0 0 0 / .1));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ax-lookup-popup:where(.ax-dark,.ax-dark *):not(:where(.ax-light,.ax-light *)){background-color:rgba(var(--ax-sys-color-darkest-surface))}.ax-lookup-popup.ax-is-actionsheet{border-bottom-right-radius:0;border-bottom-left-radius:0;--tw-shadow: 0 0 #0000;box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ax-lookup-popup.ax-is-actionsheet>ax-header.ax-solid{border-bottom-style:var(--tw-border-style);border-bottom-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface))}.ax-lookup-popup.ax-is-actionsheet>ax-header.ax-solid .ax-icon-check{color:rgba(var(--ax-sys-color-primary-surface))}.ax-lookup-popup.ax-is-actionsheet>ax-header.ax-solid ax-title{font-size:var(--text-base, 1rem);line-height:var(--tw-leading, var(--text-base--line-height, 1.5 ));--tw-leading: calc(var(--spacing, .25rem) * 6);line-height:calc(var(--spacing, .25rem) * 6);--tw-font-weight: var(--font-weight-medium, 500);font-weight:var(--font-weight-medium, 500)}.ax-lookup-popup>ax-header:not(.ax-solid),.ax-lookup-popup>ax-footer{flex-shrink:0;border-color:rgba(var(--ax-sys-color-border-lightest-surface))}.ax-lookup-popup>ax-header:not(.ax-solid){border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.ax-lookup-popup>ax-footer{border-top-style:var(--tw-border-style);border-top-width:1px}.ax-lookup-viewport{width:100%}.ax-lookup-empty{display:flex;min-height:calc(var(--spacing, .25rem) * 12);width:100%;align-items:center;justify-content:center;padding-inline:calc(var(--spacing, .25rem) * 3);padding-block:calc(var(--spacing, .25rem) * 3);text-align:center;font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)));color:rgba(var(--ax-sys-color-on-surface))}@supports (color: color-mix(in lab,red,red)){.ax-lookup-empty{color:color-mix(in oklab,rgba(var(--ax-sys-color-on-surface)) 60%,transparent)}}.ax-lookup-option-host{box-sizing:border-box;display:flex;cursor:pointer;align-items:center;gap:calc(var(--spacing, .25rem) * 2);border-style:var(--tw-border-style);border-width:1px;border-color:transparent;padding-inline:calc(var(--spacing, .25rem) * 3);font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)));color:rgba(var(--ax-sys-color-on-surface));--tw-outline-style: none;outline-style:none}.ax-lookup-option-host.ax-state-alternate{background-color:rgba(var(--ax-sys-color-on-surface))}@supports (color: color-mix(in lab,red,red)){.ax-lookup-option-host.ax-state-alternate{background-color:color-mix(in oklab,rgba(var(--ax-sys-color-on-surface)) 5%,transparent)}}.ax-lookup-option-host:hover,.ax-lookup-option-host.ax-state-active{background-color:rgba(var(--ax-sys-color-on-surface))}@supports (color: color-mix(in lab,red,red)){.ax-lookup-option-host:hover,.ax-lookup-option-host.ax-state-active{background-color:color-mix(in oklab,rgba(var(--ax-sys-color-on-surface)) 10%,transparent)}}.ax-lookup-option-host.ax-state-alternate:hover,.ax-lookup-option-host.ax-state-alternate.ax-state-active{background-color:rgba(var(--ax-sys-color-on-surface))}@supports (color: color-mix(in lab,red,red)){.ax-lookup-option-host.ax-state-alternate:hover,.ax-lookup-option-host.ax-state-alternate.ax-state-active{background-color:color-mix(in oklab,rgba(var(--ax-sys-color-on-surface)) 15%,transparent)}}.ax-lookup-option-host.ax-state-selected,.ax-lookup-option-host.ax-state-selected:hover,.ax-lookup-option-host.ax-state-selected.ax-state-active,.ax-lookup-option-host.ax-state-selected.ax-state-alternate,.ax-lookup-option-host.ax-state-selected.ax-state-alternate:hover,.ax-lookup-option-host.ax-state-selected.ax-state-alternate.ax-state-active{background-color:rgba(var(--ax-sys-color-primary-lightest-surface))}:is(.ax-lookup-option-host.ax-state-selected,.ax-lookup-option-host.ax-state-selected:hover,.ax-lookup-option-host.ax-state-selected.ax-state-active,.ax-lookup-option-host.ax-state-selected.ax-state-alternate,.ax-lookup-option-host.ax-state-selected.ax-state-alternate:hover,.ax-lookup-option-host.ax-state-selected.ax-state-alternate.ax-state-active):where(.ax-dark,.ax-dark *):not(:where(.ax-light,.ax-light *)){background-color:rgba(var(--ax-sys-color-primary-darkest-surface))}@supports (color: color-mix(in lab,red,red)){:is(.ax-lookup-option-host.ax-state-selected,.ax-lookup-option-host.ax-state-selected:hover,.ax-lookup-option-host.ax-state-selected.ax-state-active,.ax-lookup-option-host.ax-state-selected.ax-state-alternate,.ax-lookup-option-host.ax-state-selected.ax-state-alternate:hover,.ax-lookup-option-host.ax-state-selected.ax-state-alternate.ax-state-active):where(.ax-dark,.ax-dark *):not(:where(.ax-light,.ax-light *)){background-color:color-mix(in oklab,rgba(var(--ax-sys-color-primary-darkest-surface)) 25%,transparent)}}.ax-lookup-option-host.ax-state-selected.ax-state-active,.ax-lookup-option-host.ax-state-selected.ax-state-alternate.ax-state-active{background-color:rgba(var(--ax-sys-color-primary-lightest-surface))}@supports (color: color-mix(in lab,red,red)){.ax-lookup-option-host.ax-state-selected.ax-state-active,.ax-lookup-option-host.ax-state-selected.ax-state-alternate.ax-state-active{background-color:color-mix(in oklab,rgba(var(--ax-sys-color-primary-lightest-surface)) 80%,transparent)}}:is(.ax-lookup-option-host.ax-state-selected.ax-state-active,.ax-lookup-option-host.ax-state-selected.ax-state-alternate.ax-state-active):where(.ax-dark,.ax-dark *):not(:where(.ax-light,.ax-light *)){background-color:rgba(var(--ax-sys-color-primary-darkest-surface))}@supports (color: color-mix(in lab,red,red)){:is(.ax-lookup-option-host.ax-state-selected.ax-state-active,.ax-lookup-option-host.ax-state-selected.ax-state-alternate.ax-state-active):where(.ax-dark,.ax-dark *):not(:where(.ax-light,.ax-light *)){background-color:color-mix(in oklab,rgba(var(--ax-sys-color-primary-darkest-surface)) 40%,transparent)}}.ax-lookup-option-host .ax-lookup-checkbox{pointer-events:none;width:calc(var(--spacing, .25rem) * 4);height:calc(var(--spacing, .25rem) * 4);flex-shrink:0;accent-color:rgba(var(--ax-sys-color-primary-surface))}.ax-lookup-option-host .ax-lookup-option-loading{width:100%;padding-inline:calc(var(--spacing, .25rem) * 3);font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)));color:rgba(var(--ax-sys-color-on-surface))}@supports (color: color-mix(in lab,red,red)){.ax-lookup-option-host .ax-lookup-option-loading{color:color-mix(in oklab,rgba(var(--ax-sys-color-on-surface)) 50%,transparent)}}.ax-lookup-option{justify-content:space-between}.ax-lookup-option.ax-state-selected{color:rgba(var(--ax-sys-color-primary-surface))}.ax-lookup-option-host.ax-state-selected .ax-lookup-option-text{color:rgba(var(--ax-sys-color-primary-surface))}.ax-lookup-option-text{min-width:calc(var(--spacing, .25rem) * 0);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ax-lookup-option-check{flex-shrink:0;color:rgba(var(--ax-sys-color-primary-surface))}ax-lookup-multi-column,.ax-lookup-multi-column{display:block;min-height:calc(var(--spacing, .25rem) * 0);width:100%}:is(ax-lookup-multi-column,.ax-lookup-multi-column) .ax-lookup-multi-column-table,:is(ax-lookup-multi-column,.ax-lookup-multi-column) ax-data-table{height:100%;min-height:calc(var(--spacing, .25rem) * 0);border-style:var(--tw-border-style)!important;border-width:0px!important}:is(ax-lookup-multi-column,.ax-lookup-multi-column) tr.ax-state-selected{background-color:rgba(var(--ax-sys-color-primary-surface))}@supports (color: color-mix(in lab,red,red)){:is(ax-lookup-multi-column,.ax-lookup-multi-column) tr.ax-state-selected{background-color:color-mix(in oklab,rgba(var(--ax-sys-color-primary-surface)) 10%,transparent)}}:is(ax-lookup-multi-column,.ax-lookup-multi-column) tr.ax-state-disabled{pointer-events:none;opacity:50%}.ax-lookup-tree{max-height:calc(var(--spacing, .25rem) * 80);overflow:auto;padding:calc(var(--spacing, .25rem) * 2)}}@property --tw-border-style{syntax: \"*\"; inherits: false; initial-value: solid;}@property --tw-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@property --tw-shadow-color{syntax: \"*\"; inherits: false;}@property --tw-shadow-alpha{syntax: \"<percentage>\"; inherits: false; initial-value: 100%;}@property --tw-inset-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@property --tw-inset-shadow-color{syntax: \"*\"; inherits: false;}@property --tw-inset-shadow-alpha{syntax: \"<percentage>\"; inherits: false; initial-value: 100%;}@property --tw-ring-color{syntax: \"*\"; inherits: false;}@property --tw-ring-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@property --tw-inset-ring-color{syntax: \"*\"; inherits: false;}@property --tw-inset-ring-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@property --tw-ring-inset{syntax: \"*\"; inherits: false;}@property --tw-ring-offset-width{syntax: \"<length>\"; inherits: false; initial-value: 0px;}@property --tw-ring-offset-color{syntax: \"*\"; inherits: false; initial-value: #fff;}@property --tw-ring-offset-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@property --tw-leading{syntax: \"*\"; inherits: false;}@property --tw-font-weight{syntax: \"*\"; inherits: false;}@layer properties{@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style: solid;--tw-shadow: 0 0 #0000;--tw-shadow-color: initial;--tw-shadow-alpha: 100%;--tw-inset-shadow: 0 0 #0000;--tw-inset-shadow-color: initial;--tw-inset-shadow-alpha: 100%;--tw-ring-color: initial;--tw-ring-shadow: 0 0 #0000;--tw-inset-ring-color: initial;--tw-inset-ring-shadow: 0 0 #0000;--tw-ring-inset: initial;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-offset-shadow: 0 0 #0000;--tw-leading: initial;--tw-font-weight: initial}}}\n/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */\n"] }]
1835
1845
  }], ctorParameters: () => [], propDecorators: { name: [{ type: i0.Input, args: [{ isSignal: true, alias: "name", required: false }] }], mode: [{ type: i0.Input, args: [{ isSignal: true, alias: "mode", required: false }] }], dataSource: [{ type: i0.Input, args: [{ isSignal: true, alias: "dataSource", required: false }] }], treeDataSource: [{ type: i0.Input, args: [{ isSignal: true, alias: "treeDataSource", required: false }] }], valueField: [{ type: i0.Input, args: [{ isSignal: true, alias: "valueField", required: false }] }], textField: [{ type: i0.Input, args: [{ isSignal: true, alias: "textField", required: false }] }], disabledField: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabledField", required: false }] }], columns: [{ type: i0.Input, args: [{ isSignal: true, alias: "columns", required: false }] }], searchable: [{ type: i0.Input, args: [{ isSignal: true, alias: "searchable", required: false }] }], adaptivityEnabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "adaptivityEnabled", required: false }] }], caption: [{ type: i0.Input, args: [{ isSignal: true, alias: "caption", required: false }] }], alternate: [{ type: i0.Input, args: [{ isSignal: true, alias: "alternate", required: false }] }], searchPlaceholder: [{ type: i0.Input, args: [{ isSignal: true, alias: "searchPlaceholder", required: false }] }], placeholder: [{ type: i0.Input, args: [{ isSignal: true, alias: "placeholder", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], readonly: [{ type: i0.Input, args: [{ isSignal: true, alias: "readonly", required: false }] }], look: [{ type: i0.Input, args: [{ isSignal: true, alias: "look", required: false }] }, { type: i0.Output, args: ["lookChange"] }], itemHeight: [{ type: i0.Input, args: [{ isSignal: true, alias: "itemHeight", required: false }] }], maxVisibleItems: [{ type: i0.Input, args: [{ isSignal: true, alias: "maxVisibleItems", required: false }] }], treeSelectionBehavior: [{ type: i0.Input, args: [{ isSignal: true, alias: "treeSelectionBehavior", required: false }] }], itemTemplate: [{ type: i0.Input, args: [{ isSignal: true, alias: "itemTemplate", required: false }] }], selectedTemplate: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectedTemplate", required: false }] }], emptyTemplate: [{ type: i0.Input, args: [{ isSignal: true, alias: "emptyTemplate", required: false }] }], loadingTemplate: [{ type: i0.Input, args: [{ isSignal: true, alias: "loadingTemplate", required: false }] }], value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }, { type: i0.Output, args: ["valueChange"] }], valueItems: [{ type: i0.Input, args: [{ isSignal: true, alias: "valueItems", required: false }] }], onValueChanged: [{ type: i0.Output, args: ["onValueChanged"] }], onSelectionChanged: [{ type: i0.Output, args: ["onSelectionChanged"] }], onFocus: [{ type: i0.Output, args: ["onFocus"] }], onBlur: [{ type: i0.Output, args: ["onBlur"] }], onItemClick: [{ type: i0.Output, args: ["onItemClick"] }], onItemSelected: [{ type: i0.Output, args: ["onItemSelected"] }], onOpened: [{ type: i0.Output, args: ["onOpened"] }], onClosed: [{ type: i0.Output, args: ["onClosed"] }], popoverRef: [{ type: i0.ViewChild, args: [i0.forwardRef(() => AXPopoverComponent), { isSignal: true }] }], triggerSearchInput: [{ type: i0.ViewChild, args: ['triggerSearchInput', { isSignal: true }] }], listView: [{ type: i0.ViewChild, args: [i0.forwardRef(() => AXLookupListViewBase), { isSignal: true }] }] } });
1836
1846
 
1837
1847
  class AXLookupModule {
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-components-lookup.mjs","sources":["../../../../packages/components/lookup/src/lib/views/lookup-list-view-base.ts","../../../../packages/components/lookup/src/lib/views/lookup-drop-down-list.component.ts","../../../../packages/components/lookup/src/lib/views/lookup-drop-down-tree.component.ts","../../../../packages/components/lookup/src/lib/views/lookup-multi-column.component.ts","../../../../packages/components/lookup/src/lib/views/lookup-multi-select-tree.component.ts","../../../../packages/components/lookup/src/lib/views/lookup-multi-select.component.ts","../../../../packages/components/lookup/src/lib/lookup.component.ts","../../../../packages/components/lookup/src/lib/lookup.component.html","../../../../packages/components/lookup/src/lib/lookup.module.ts","../../../../packages/components/lookup/src/acorex-components-lookup.ts"],"sourcesContent":["import { AXDataSource, AXHtmlEvent, AXListDataSource } from '@acorex/cdk/common';\nimport {\n AXListNavigationDirective,\n AXListNavigationItemDirective,\n} from '@acorex/cdk/list-navigation';\nimport { CdkVirtualScrollViewport } from '@angular/cdk/scrolling';\nimport {\n Directive,\n NgZone,\n TemplateRef,\n computed,\n effect,\n inject,\n input,\n output,\n signal,\n untracked,\n viewChild,\n viewChildren,\n} from '@angular/core';\nimport { AXLookupItem, AXLookupItemClickEvent } from '../lookup.types';\n\n/**\n * Shared `AXDataSource` + CDK virtual scroll plumbing for the list-based lookup views\n * (`ax-lookup-drop-down-list`, `ax-lookup-multi-select`).\n */\n@Directive()\nexport abstract class AXLookupListViewBase {\n /**\n * The datasource providing the items (paged, remote-capable).\n */\n dataSource = input.required<AXDataSource<AXLookupItem>>();\n\n /**\n * The item property used as the selection value.\n */\n valueField = input('id');\n\n /**\n * The item property used as the display text.\n */\n textField = input('text');\n\n /**\n * The item property marking an item as disabled.\n */\n disabledField = input('disabled');\n\n /**\n * Currently selected values (always an array, even for single selection).\n */\n selectedValues = input<unknown[]>([]);\n\n /**\n * The fixed row height in pixels used by the virtual scroll viewport.\n */\n itemHeight = input(40);\n\n /**\n * The maximum number of rows visible before the popup scrolls.\n */\n maxVisibleItems = input(8);\n\n /**\n * Custom template rendered for each item. Context: `$implicit` is the item.\n */\n itemTemplate = input<TemplateRef<unknown> | undefined>(undefined);\n\n /**\n * Custom template rendered when the datasource has no items.\n */\n emptyTemplate = input<TemplateRef<unknown> | undefined>(undefined);\n\n /**\n * Custom template rendered for rows whose page is still loading.\n */\n loadingTemplate = input<TemplateRef<unknown> | undefined>(undefined);\n\n /**\n * When `true`, list rows use alternating background colors for easier scanning.\n */\n alternate = input(false);\n\n /**\n * Emitted when the user picks (or toggles) an item.\n */\n itemClick = output<AXLookupItemClickEvent>();\n\n /**\n * Emitted when keyboard navigation should leave the list (e.g. ArrowUp on the first\n * item, or a printable key that should return focus to the trigger search input).\n */\n navigateOut = output<'up' | 'typeahead'>();\n\n /** CDK virtual scroll adapter over the datasource. */\n protected listDataSource = signal<AXListDataSource<AXLookupItem> | null>(null);\n\n protected totalCount = signal(0);\n protected isLoading = signal(true);\n\n protected isEmpty = computed(() => this.totalCount() === 0 && !this.isLoading());\n\n /** Viewport height so the popup grows with the items up to `maxVisibleItems`. */\n protected viewportHeight = computed(() => {\n const count = this.totalCount() || (this.isLoading() ? 3 : 1);\n return Math.min(count, this.maxVisibleItems()) * this.itemHeight();\n });\n\n protected viewportRef = viewChild(CdkVirtualScrollViewport);\n protected listNavigation = viewChild(AXListNavigationDirective);\n protected navItems = viewChildren(AXListNavigationItemDirective);\n\n #ngZone = inject(NgZone);\n\n constructor() {\n // CDK measures the viewport size only once, when it initializes. Inside the popover the\n // panel is still animating/positioning at that moment (and the height also changes when\n // the loading placeholder is replaced by the real item count), so the measurement is stale\n // and CDK renders too few rows, leaving empty space. A ResizeObserver on the viewport\n // element re-measures on every actual size change, covering all of these cases.\n effect((onCleanup) => {\n const viewport = this.viewportRef();\n if (!viewport || typeof ResizeObserver === 'undefined') {\n return;\n }\n const observer = new ResizeObserver(() => {\n this.#ngZone.run(() => viewport.checkViewportSize());\n });\n observer.observe(viewport.elementRef.nativeElement);\n onCleanup(() => observer.disconnect());\n });\n\n effect((onCleanup) => {\n const source = this.dataSource();\n const list = new AXListDataSource<AXLookupItem>({ source });\n untracked(() => {\n this.totalCount.set(source.totalCount);\n this.isLoading.set(source.totalCount > 0 ? source.isLoading : true);\n this.listDataSource.set(list);\n });\n const loadingSub = source.onLoadingChanged.subscribe((value) => this.isLoading.set(value));\n const changedSub = source.onChanged.subscribe((e) => this.totalCount.set(e.totalCount));\n onCleanup(() => {\n loadingSub.unsubscribe();\n changedSub.unsubscribe();\n });\n });\n }\n\n /** Moves keyboard focus to the first rendered list option. */\n focusFirst() {\n this.listNavigation()?.focusOnIndex(0);\n }\n\n protected getValue(item: AXLookupItem): unknown {\n return item?.[this.valueField()];\n }\n\n protected getText(item: AXLookupItem): string {\n return String(item?.[this.textField()] ?? '');\n }\n\n protected isSelected(item: AXLookupItem): boolean {\n const value = this.getValue(item);\n return this.selectedValues().some((v) => v == value);\n }\n\n protected isDisabled(item: AXLookupItem): boolean {\n return Boolean(item?.[this.disabledField()]);\n }\n\n protected handleItemClick(item: AXLookupItem | null | undefined) {\n if (!item || this.isDisabled(item)) {\n return;\n }\n this.itemClick.emit({ item, value: this.getValue(item) });\n }\n\n protected handleItemKeypress(e: AXHtmlEvent<KeyboardEvent>, item: AXLookupItem | null | undefined) {\n if (e.nativeEvent.key === 'Enter' || e.nativeEvent.code === 'Space') {\n e.nativeEvent.stopPropagation();\n e.nativeEvent.preventDefault();\n this.handleItemClick(item);\n }\n }\n\n protected handleListKeypress(e: AXHtmlEvent<KeyboardEvent>) {\n const key = e.nativeEvent.key;\n const nav = this.listNavigation();\n const viewport = this.viewportRef();\n\n if (key === 'ArrowUp' && nav && nav.activeIndex() === 0) {\n const offset = viewport?.measureScrollOffset() ?? 0;\n if (offset > 0) {\n e.nativeEvent.preventDefault();\n viewport!.scrollToOffset(Math.max(0, offset - this.itemHeight()));\n queueMicrotask(() => nav.focusOnIndex(0));\n return;\n }\n e.nativeEvent.preventDefault();\n this.navigateOut.emit('up');\n return;\n }\n\n if (key === 'ArrowDown' && nav && viewport) {\n const items = this.navItems();\n if (items.length > 0 && nav.activeIndex() >= items.length - 1) {\n const maxOffset = Math.max(0, this.totalCount() * this.itemHeight() - viewport.getViewportSize());\n const nextOffset = Math.min(maxOffset, viewport.measureScrollOffset() + this.itemHeight());\n if (nextOffset > viewport.measureScrollOffset()) {\n e.nativeEvent.preventDefault();\n viewport.scrollToOffset(nextOffset);\n queueMicrotask(() => nav.focusOnIndex(this.navItems().length - 1));\n }\n return;\n }\n }\n\n if (\n key === 'ArrowUp' ||\n key === 'ArrowDown' ||\n key === 'Tab' ||\n key === 'Shift' ||\n key === 'Enter' ||\n key === 'Escape' ||\n key === ' '\n ) {\n return;\n }\n\n this.navigateOut.emit('typeahead');\n }\n\n protected activateNavItem(nav: AXListNavigationDirective, item: AXListNavigationItemDirective) {\n nav?.navigateTo(item);\n }\n\n protected trackByIndex = (index: number) => index;\n}\n","import { AXListNavigationModule } from '@acorex/cdk/list-navigation';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXTranslatorPipe } from '@acorex/core/translation';\nimport { ScrollingModule } from '@angular/cdk/scrolling';\nimport { AsyncPipe, NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\nimport { AXLookupListViewBase } from './lookup-list-view-base';\n\n/**\n * Internal mini component for the `drop-down-list` lookup mode:\n * a predefined, virtualized list of options for picking single values.\n *\n * @category Components\n */\n@Component({\n selector: 'ax-lookup-drop-down-list',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [\n ScrollingModule,\n NgTemplateOutlet,\n AXTranslatorPipe,\n AsyncPipe,\n AXDecoratorModule,\n AXListNavigationModule,\n ],\n providers: [{ provide: AXLookupListViewBase, useExisting: AXLookupDropDownListComponent }],\n template: `\n @if (isEmpty()) {\n @if (emptyTemplate()) {\n <ng-container [ngTemplateOutlet]=\"emptyTemplate()!\" />\n } @else {\n <div class=\"ax-lookup-empty\">\n {{ '@acorex:common.general.no-result-found' | translate | async }}\n </div>\n }\n } @else {\n <cdk-virtual-scroll-viewport\n class=\"ax-lookup-viewport\"\n role=\"listbox\"\n axListNavigation\n #nav=\"axListNavigation\"\n [itemSize]=\"itemHeight()\"\n [style.height.px]=\"viewportHeight()\"\n (onKeypress)=\"handleListKeypress($event)\"\n >\n <div\n *cdkVirtualFor=\"let item of listDataSource(); let i = index; trackBy: trackByIndex\"\n role=\"option\"\n class=\"ax-lookup-option-host\"\n axListNavigationItem\n #navItem=\"axListNavigationItem\"\n [style.height.px]=\"itemHeight()\"\n [class.ax-lookup-option]=\"!itemTemplate()\"\n [class.ax-state-alternate]=\"alternate() && i % 2 === 1\"\n [class.ax-state-selected]=\"item != null && isSelected(item)\"\n [class.ax-state-disabled]=\"item != null && isDisabled(item)\"\n [class.ax-state-active]=\"navItem.isActive()\"\n [attr.aria-selected]=\"item != null ? isSelected(item) : null\"\n (mouseenter)=\"activateNavItem(nav, navItem)\"\n (click)=\"handleItemClick(item)\"\n (onKeypress)=\"handleItemKeypress($event, item)\"\n >\n @if (item != null) {\n @if (itemTemplate()) {\n <ng-container [ngTemplateOutlet]=\"itemTemplate()!\" [ngTemplateOutletContext]=\"{ $implicit: item }\" />\n } @else {\n <span class=\"ax-lookup-option-text\">{{ getText(item) }}</span>\n @if (isSelected(item)) {\n <ax-icon class=\"ax-lookup-option-check ax-icon ax-icon-check\" aria-hidden=\"true\"></ax-icon>\n }\n }\n } @else {\n <ng-container [ngTemplateOutlet]=\"loadingRow\" />\n }\n </div>\n </cdk-virtual-scroll-viewport>\n }\n\n <ng-template #loadingRow>\n @if (loadingTemplate()) {\n <ng-container [ngTemplateOutlet]=\"loadingTemplate()!\" />\n } @else {\n <span class=\"ax-lookup-option-loading\">{{ '@acorex:common.status.loading' | translate | async }}</span>\n }\n </ng-template>\n `,\n})\nexport class AXLookupDropDownListComponent extends AXLookupListViewBase {}\n","import {\n AXTreeViewComponent,\n AXTreeViewDataSource,\n AXTreeViewItemTemplateContext,\n AXTreeViewSelectionChangeEvent,\n} from '@acorex/components/tree-view';\nimport { ChangeDetectionStrategy, Component, TemplateRef, ViewEncapsulation, computed, input, output } from '@angular/core';\nimport { AXLookupItemClickEvent } from '../lookup.types';\n\n/**\n * Internal mini component for the `drop-down-tree` lookup mode:\n * a predefined list rendered in a tree-like structure for single item selection.\n *\n * @category Components\n */\n@Component({\n selector: 'ax-lookup-drop-down-tree',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [AXTreeViewComponent],\n template: `\n <div class=\"ax-lookup-tree\">\n <ax-tree-view\n [datasource]=\"dataSource()\"\n selectMode=\"single\"\n selectionBehavior=\"all\"\n [controlledSelection]=\"true\"\n [selectedIds]=\"selectedIds()\"\n [idField]=\"valueField()\"\n [titleField]=\"textField()\"\n [disabledField]=\"disabledField()\"\n [nodeTemplate]=\"nodeTemplate()\"\n (onSelectionChange)=\"handleSelectionChange($event)\"\n />\n </div>\n `,\n})\nexport class AXLookupDropDownTreeComponent {\n /**\n * The tree datasource: an array of nodes or a lazy children callback.\n */\n dataSource = input.required<AXTreeViewDataSource>();\n\n /**\n * The node property used as the selection value (tree `idField`).\n */\n valueField = input('id');\n\n /**\n * The node property used as the display text (tree `titleField`).\n */\n textField = input('title');\n\n /**\n * The node property marking a node as disabled.\n */\n disabledField = input('disabled');\n\n /**\n * Currently selected values (at most one for single selection).\n */\n selectedValues = input<unknown[]>([]);\n\n /**\n * Custom template rendered for each tree node.\n */\n nodeTemplate = input<TemplateRef<AXTreeViewItemTemplateContext> | undefined>(undefined);\n\n /**\n * Emitted when the user selects a node.\n */\n itemClick = output<AXLookupItemClickEvent>();\n\n protected selectedIds = computed(() => this.selectedValues().map((v) => String(v)));\n\n protected handleSelectionChange(e: AXTreeViewSelectionChangeEvent) {\n if (e.source !== 'user') {\n return;\n }\n const node = e.selectedNodes[0];\n if (!node) {\n return;\n }\n this.itemClick.emit({ item: node, value: node[this.valueField()] });\n }\n}\n","import { AXDataSource } from '@acorex/cdk/common';\nimport {\n AXDataTableComponent,\n AXDataTableRowClick,\n AXDataTableTextColumnComponent,\n} from '@acorex/components/data-table';\nimport { NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n TemplateRef,\n ViewEncapsulation,\n computed,\n effect,\n inject,\n input,\n output,\n signal,\n untracked,\n viewChild,\n} from '@angular/core';\nimport { Subscription, auditTime, fromEvent } from 'rxjs';\nimport { AXLookupColumn, AXLookupItem, AXLookupItemClickEvent } from '../lookup.types';\n\n/**\n * Internal mini component for the `multi-column` lookup mode:\n * renders selectable rows in an `ax-data-table` grid and loads further\n * pages as the user scrolls (no pager UI).\n *\n * @category Components\n */\n@Component({\n selector: 'ax-lookup-multi-column',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [NgTemplateOutlet, AXDataTableComponent, AXDataTableTextColumnComponent],\n host: {\n class: 'ax-lookup-multi-column',\n '[style.height.px]': 'tableHeight()',\n },\n template: `\n <ax-data-table\n class=\"ax-lookup-multi-column-table\"\n look=\"minimal\"\n [dataSource]=\"tableDataSource\"\n [itemHeight]=\"itemHeight()\"\n [alternative]=\"alternate()\"\n [emptyTemplate]=\"emptyTemplate()\"\n [loading]=\"loadingConfig()\"\n [paging]=\"false\"\n [showHeader]=\"true\"\n [fixedHeader]=\"true\"\n [showFooter]=\"false\"\n [allowReordering]=\"false\"\n [rowTemplate]=\"itemTemplate() ? customRowTemplate : undefined\"\n [rowCssClass]=\"resolveRowCssClass\"\n (onRowClick)=\"handleRowClick($event)\"\n >\n @for (column of columns(); track trackColumnKey($index, column)) {\n <ax-text-column\n [dataField]=\"column.field\"\n [caption]=\"column.title\"\n [width]=\"resolveColumnWidth(column)\"\n [allowSorting]=\"false\"\n [allowResizing]=\"false\"\n />\n }\n </ax-data-table>\n\n <ng-template #customRowTemplate let-ctx>\n <tr\n [class.ax-state-selected]=\"ctx.data != null && isSelected(ctx.data)\"\n [class.ax-state-disabled]=\"ctx.data != null && isDisabled(ctx.data)\"\n [style.height.px]=\"itemHeight()\"\n [style.max-height.px]=\"itemHeight()\"\n (click)=\"handleItemClick(ctx.data)\"\n >\n <td [attr.colspan]=\"columns().length || 1\">\n @if (ctx.data != null && itemTemplate()) {\n <ng-container\n [ngTemplateOutlet]=\"itemTemplate()!\"\n [ngTemplateOutletContext]=\"{ $implicit: ctx.data }\"\n />\n }\n </td>\n </tr>\n </ng-template>\n `,\n})\nexport class AXLookupMultiColumnComponent {\n /**\n * The datasource providing the grid rows (paged, remote-capable).\n * Pages are fetched on demand as the user scrolls the table body.\n */\n dataSource = input.required<AXDataSource<AXLookupItem>>();\n\n /**\n * The item property used as the selection value.\n */\n valueField = input('id');\n\n /**\n * The item property used as the display text.\n */\n textField = input('text');\n\n /**\n * The item property marking an item as disabled.\n */\n disabledField = input('disabled');\n\n /**\n * Currently selected values (always an array, even for single selection).\n */\n selectedValues = input<unknown[]>([]);\n\n /**\n * The fixed row height in pixels passed to the data table.\n */\n itemHeight = input(40);\n\n /**\n * The maximum number of body rows visible before the table scrolls.\n */\n maxVisibleItems = input(8);\n\n /**\n * Column definitions rendered as `ax-text-column` instances.\n */\n columns = input<AXLookupColumn[]>([]);\n\n /**\n * Optional custom row content. Context: `$implicit` is the row item.\n * When set, replaces the default multi-column cell layout.\n */\n itemTemplate = input<TemplateRef<unknown> | undefined>(undefined);\n\n /**\n * Custom template rendered when the datasource has no items.\n */\n emptyTemplate = input<TemplateRef<unknown> | undefined>(undefined);\n\n /**\n * Custom template rendered while the table is loading.\n */\n loadingTemplate = input<TemplateRef<unknown> | undefined>(undefined);\n\n /**\n * When `true`, table rows use alternating background colors for easier scanning.\n */\n alternate = input(false);\n\n /**\n * Emitted when the user picks a row.\n */\n itemClick = output<AXLookupItemClickEvent>();\n\n protected tableRef = viewChild(AXDataTableComponent);\n\n /** Accumulated rows fed to the table (grows as pages are scrolled in). */\n #loadedItems: AXLookupItem[] = [];\n\n /** Total matching rows from the source (used to size the popup). */\n readonly #totalCount = signal(0);\n\n /**\n * Local table source: one page of whatever has been scrolled in so far.\n * Kept as a stable instance so the table host is not recreated on each page load.\n * `pageSize` grows with `#loadedItems` — never seed with a huge empty array (data-table\n * initializes `displayedRows` as `new Array(pageSize)`, which caused NG0955-level jank).\n */\n protected readonly tableDataSource = new AXDataSource<AXLookupItem>({\n pageSize: 1,\n key: 'id',\n load: async () => ({\n items: this.#loadedItems,\n total: this.#loadedItems.length,\n }),\n });\n\n /**\n * Header (~40px) + body rows. Grows with results up to `maxVisibleItems`,\n * then the table body scrolls for the rest.\n */\n protected tableHeight = computed(() => {\n const header = 40;\n const total = this.#totalCount();\n const rows = total > 0 ? total : Math.min(3, this.maxVisibleItems());\n return header + Math.min(rows, this.maxVisibleItems()) * this.itemHeight();\n });\n\n protected loadingConfig = computed(() => ({\n enabled: true,\n animation: true,\n loadingTemplate: this.loadingTemplate(),\n }));\n\n readonly #host = inject(ElementRef<HTMLElement>);\n\n constructor() {\n effect((onCleanup) => {\n const source = this.dataSource();\n this.tableDataSource.config.key = source.config.key || this.valueField();\n\n untracked(() => {\n this.#loadedItems = [];\n this.#totalCount.set(0);\n this.#syncTablePageSize();\n this.tableDataSource.refresh({ reset: true });\n });\n\n const changedSub = source.onChanged.subscribe((event) => {\n this.#loadedItems = event.cachedItems.filter((item): item is AXLookupItem => item != null);\n this.#totalCount.set(event.totalCount);\n this.#syncTablePageSize();\n this.tableDataSource.refresh({ reset: true });\n });\n\n // Kick the first page; later pages come from scroll.\n queueMicrotask(() => source.setPage(0));\n\n onCleanup(() => changedSub.unsubscribe());\n });\n\n effect((onCleanup) => {\n // Rebind when the table instance appears / source changes.\n this.tableRef();\n this.dataSource();\n\n let scrollSub: Subscription | undefined;\n const timer = setTimeout(() => {\n const wrapper =\n this.tableRef()?.getHostElement()?.querySelector('.ax-data-table-wrapper') ??\n this.#host.nativeElement.querySelector('.ax-data-table-wrapper');\n if (!wrapper) {\n return;\n }\n scrollSub = fromEvent(wrapper, 'scroll')\n .pipe(auditTime(80))\n .subscribe(() => this.#tryLoadMore(wrapper as HTMLElement));\n }, 0);\n\n onCleanup(() => {\n clearTimeout(timer);\n scrollSub?.unsubscribe();\n });\n });\n }\n\n /** Stable unique key for `@for` — avoids NG0955 when `field` is missing or duplicated. */\n protected trackColumnKey(index: number, column: AXLookupColumn): string {\n return `${column?.field ?? ''}::${index}`;\n }\n\n protected resolveColumnWidth(column: AXLookupColumn): string | number | 'auto' {\n const width = column.width?.trim();\n if (!width || width.includes('fr')) {\n return 'auto';\n }\n return width;\n }\n\n #syncTablePageSize() {\n this.tableDataSource.config.pageSize = Math.max(this.#loadedItems.length, 1);\n }\n\n protected resolveRowCssClass = (row: unknown): string => {\n const item = row as AXLookupItem | null | undefined;\n if (!item) {\n return '';\n }\n const classes: string[] = [];\n if (this.isSelected(item)) {\n classes.push('ax-state-selected');\n }\n if (this.isDisabled(item)) {\n classes.push('ax-state-disabled');\n }\n return classes.join(' ');\n };\n\n protected handleRowClick(event: AXDataTableRowClick) {\n this.handleItemClick(event.data as AXLookupItem | null | undefined);\n }\n\n protected handleItemClick(item: AXLookupItem | null | undefined) {\n if (!item || this.isDisabled(item)) {\n return;\n }\n this.itemClick.emit({ item, value: this.getValue(item) });\n }\n\n protected isSelected(item: AXLookupItem): boolean {\n const value = this.getValue(item);\n return this.selectedValues().some((v) => v == value);\n }\n\n protected isDisabled(item: AXLookupItem): boolean {\n return Boolean(item?.[this.disabledField()]);\n }\n\n #tryLoadMore(wrapper: HTMLElement) {\n const nearBottom = wrapper.scrollTop + wrapper.clientHeight >= wrapper.scrollHeight - 48;\n if (!nearBottom) {\n return;\n }\n\n const source = this.dataSource();\n if (source.isLoading || source.totalCount === 0) {\n return;\n }\n\n const loadedCount = source.cachedItems.filter((item) => item != null).length;\n if (loadedCount >= source.totalCount) {\n return;\n }\n\n const nextPage = Math.floor(loadedCount / source.pageSize);\n source.setPage(nextPage);\n }\n\n private getValue(item: AXLookupItem): unknown {\n return item?.[this.valueField()];\n }\n}\n","import {\n AXTreeViewComponent,\n AXTreeViewDataSource,\n AXTreeViewItemTemplateContext,\n AXTreeViewNode,\n AXTreeViewSelectionBehavior,\n AXTreeViewSelectionChangeEvent,\n} from '@acorex/components/tree-view';\nimport { ChangeDetectionStrategy, Component, TemplateRef, ViewEncapsulation, computed, input, output } from '@angular/core';\n\n/**\n * Selection payload of the multi-select tree view.\n */\nexport interface AXLookupTreeSelectionEvent {\n ids: string[];\n nodes: AXTreeViewNode[];\n}\n\n/**\n * Internal mini component for the `multi-select-tree` lookup mode:\n * a predefined list rendered in a tree-like structure for multiple item selection.\n *\n * @category Components\n */\n@Component({\n selector: 'ax-lookup-multi-select-tree',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [AXTreeViewComponent],\n template: `\n <div class=\"ax-lookup-tree\">\n <ax-tree-view\n [datasource]=\"dataSource()\"\n selectMode=\"multiple\"\n [selectionBehavior]=\"selectionBehavior()\"\n [controlledSelection]=\"true\"\n [selectedIds]=\"selectedIds()\"\n [idField]=\"valueField()\"\n [titleField]=\"textField()\"\n [disabledField]=\"disabledField()\"\n [nodeTemplate]=\"nodeTemplate()\"\n (onSelectionChange)=\"handleSelectionChange($event)\"\n />\n </div>\n `,\n})\nexport class AXLookupMultiSelectTreeComponent {\n /**\n * The tree datasource: an array of nodes or a lazy children callback.\n */\n dataSource = input.required<AXTreeViewDataSource>();\n\n /**\n * The node property used as the selection value (tree `idField`).\n */\n valueField = input('id');\n\n /**\n * The node property used as the display text (tree `titleField`).\n */\n textField = input('title');\n\n /**\n * The node property marking a node as disabled.\n */\n disabledField = input('disabled');\n\n /**\n * Currently selected values.\n */\n selectedValues = input<unknown[]>([]);\n\n /**\n * How selecting parent/child nodes affects each other. Passed through to the tree-view.\n */\n selectionBehavior = input<AXTreeViewSelectionBehavior>('all');\n\n /**\n * Custom template rendered for each tree node.\n */\n nodeTemplate = input<TemplateRef<AXTreeViewItemTemplateContext> | undefined>(undefined);\n\n /**\n * Emitted when the user changes the tree selection.\n */\n selectionChange = output<AXLookupTreeSelectionEvent>();\n\n protected selectedIds = computed(() => this.selectedValues().map((v) => String(v)));\n\n protected handleSelectionChange(e: AXTreeViewSelectionChangeEvent) {\n if (e.source !== 'user') {\n return;\n }\n this.selectionChange.emit({ ids: e.selectedIds, nodes: e.selectedNodes });\n }\n}\n","import { AXListNavigationModule } from '@acorex/cdk/list-navigation';\nimport { AXTranslatorPipe } from '@acorex/core/translation';\nimport { ScrollingModule } from '@angular/cdk/scrolling';\nimport { AsyncPipe, NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\nimport { AXLookupListViewBase } from './lookup-list-view-base';\n\n/**\n * Internal mini component for the `multi-select` lookup mode:\n * a predefined, virtualized list of options with checkboxes for multiple item selection.\n *\n * @category Components\n */\n@Component({\n selector: 'ax-lookup-multi-select',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [ScrollingModule, NgTemplateOutlet, AXTranslatorPipe, AsyncPipe, AXListNavigationModule],\n providers: [{ provide: AXLookupListViewBase, useExisting: AXLookupMultiSelectComponent }],\n template: `\n @if (isEmpty()) {\n @if (emptyTemplate()) {\n <ng-container [ngTemplateOutlet]=\"emptyTemplate()!\" />\n } @else {\n <div class=\"ax-lookup-empty\">\n {{ '@acorex:common.general.no-result-found' | translate | async }}\n </div>\n }\n } @else {\n <cdk-virtual-scroll-viewport\n class=\"ax-lookup-viewport\"\n role=\"listbox\"\n aria-multiselectable=\"true\"\n axListNavigation\n #nav=\"axListNavigation\"\n [itemSize]=\"itemHeight()\"\n [style.height.px]=\"viewportHeight()\"\n (onKeypress)=\"handleListKeypress($event)\"\n >\n <div\n *cdkVirtualFor=\"let item of listDataSource(); let i = index; trackBy: trackByIndex\"\n role=\"option\"\n class=\"ax-lookup-option-host\"\n axListNavigationItem\n #navItem=\"axListNavigationItem\"\n [style.height.px]=\"itemHeight()\"\n [class.ax-lookup-option]=\"!itemTemplate()\"\n [class.ax-lookup-option-host--check]=\"!!itemTemplate()\"\n [class.ax-state-alternate]=\"alternate() && i % 2 === 1\"\n [class.ax-state-selected]=\"item != null && isSelected(item)\"\n [class.ax-state-disabled]=\"item != null && isDisabled(item)\"\n [class.ax-state-active]=\"navItem.isActive()\"\n [attr.aria-selected]=\"item != null ? isSelected(item) : null\"\n (mouseenter)=\"activateNavItem(nav, navItem)\"\n (click)=\"handleItemClick(item)\"\n (onKeypress)=\"handleItemKeypress($event, item)\"\n >\n @if (item != null) {\n <input\n type=\"checkbox\"\n class=\"ax-lookup-checkbox\"\n tabindex=\"-1\"\n [checked]=\"isSelected(item)\"\n [disabled]=\"isDisabled(item)\"\n />\n @if (itemTemplate()) {\n <ng-container [ngTemplateOutlet]=\"itemTemplate()!\" [ngTemplateOutletContext]=\"{ $implicit: item }\" />\n } @else {\n <span class=\"ax-lookup-option-text\">{{ getText(item) }}</span>\n }\n } @else {\n <ng-container [ngTemplateOutlet]=\"loadingRow\" />\n }\n </div>\n </cdk-virtual-scroll-viewport>\n }\n\n <ng-template #loadingRow>\n @if (loadingTemplate()) {\n <ng-container [ngTemplateOutlet]=\"loadingTemplate()!\" />\n } @else {\n <span class=\"ax-lookup-option-loading\">{{ '@acorex:common.status.loading' | translate | async }}</span>\n }\n </ng-template>\n `,\n})\nexport class AXLookupMultiSelectComponent extends AXLookupListViewBase {}\n","import {\n AXClearableComponent,\n AXClosableComponent,\n AXComponent,\n AXDataSource,\n AXEvent,\n AXFocusEvent,\n AXItemClickEvent,\n AXItemSelectedEvent,\n AXStyleLookType,\n AXValuableComponent,\n AXValueChangedEvent,\n NXValueComponent,\n convertArrayToDataSource,\n} from '@acorex/cdk/common';\nimport { AXChipsComponent } from '@acorex/components/chips';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXPopoverComponent } from '@acorex/components/popover';\nimport { AXTreeViewDataSource, AXTreeViewSelectionBehavior } from '@acorex/components/tree-view';\nimport { AXPlatform } from '@acorex/core/platform';\nimport { AXTranslatorPipe } from '@acorex/core/translation';\nimport { AsyncPipe, NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n ElementRef,\n TemplateRef,\n ViewEncapsulation,\n computed,\n effect,\n inject,\n input,\n linkedSignal,\n model,\n output,\n signal,\n untracked,\n viewChild,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { FormValueControl } from '@angular/forms/signals';\nimport {\n AXLookupColumn,\n AXLookupItem,\n AXLookupItemClickEvent,\n AXLookupMode,\n AXLookupSelectionChangedEvent,\n} from './lookup.types';\nimport { AXLookupDropDownListComponent } from './views/lookup-drop-down-list.component';\nimport { AXLookupDropDownTreeComponent } from './views/lookup-drop-down-tree.component';\nimport { AXLookupListViewBase } from './views/lookup-list-view-base';\nimport { AXLookupMultiColumnComponent } from './views/lookup-multi-column.component';\nimport {\n AXLookupMultiSelectTreeComponent,\n AXLookupTreeSelectionEvent,\n} from './views/lookup-multi-select-tree.component';\nimport { AXLookupMultiSelectComponent } from './views/lookup-multi-select.component';\n\n/**\n * An advanced drop-down (lookup) editor with five modes, `AXDataSource` support, and virtual scrolling.\n *\n * Modes (each rendered by its own internal mini component):\n * - `drop-down-list` — a predefined list of options for picking single values.\n * - `multi-select` — a predefined list of options for multiple item selection (chips in the trigger).\n * - `drop-down-tree` — a predefined list rendered in a tree-like structure for single item selection.\n * - `multi-select-tree` — a tree-like structure for multiple item selection.\n * - `multi-column` — an `ax-data-table` grid; when searchable, the trigger input filters as you type.\n *\n * With `adaptivityEnabled` (default `true`), the list opens as a bottom actionsheet on small\n * screens instead of an anchored dropdown — the same alternate presentation as `ax-select-box`.\n *\n * Implements {@link FormValueControl} so `[(ngModel)]` / signal forms work via the `value` model\n * (no `ControlValueAccessor`).\n *\n * @category Components\n */\n@Component({\n selector: 'ax-lookup',\n templateUrl: './lookup.component.html',\n styleUrls: ['./lookup.component.css'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n NgTemplateOutlet,\n AsyncPipe,\n AXTranslatorPipe,\n AXChipsComponent,\n AXDecoratorModule,\n AXPopoverComponent,\n AXLookupDropDownListComponent,\n AXLookupMultiSelectComponent,\n AXLookupDropDownTreeComponent,\n AXLookupMultiSelectTreeComponent,\n AXLookupMultiColumnComponent,\n ],\n providers: [\n { provide: AXComponent, useExisting: AXLookupComponent },\n { provide: AXClearableComponent, useExisting: AXLookupComponent },\n { provide: AXClosableComponent, useExisting: AXLookupComponent },\n { provide: AXValuableComponent, useExisting: AXLookupComponent },\n ],\n})\nexport class AXLookupComponent\n extends NXValueComponent\n implements FormValueControl<unknown | unknown[] | null>\n{\n readonly #platform = inject(AXPlatform);\n readonly #destroyRef = inject(DestroyRef);\n\n /**\n * The name of the form field, used by validation rules and `ax-form.validate(names)`.\n */\n name = input('');\n\n /**\n * The lookup rendering mode. Selects which mini component renders in the popup.\n */\n mode = input<AXLookupMode>('drop-down-list');\n\n /**\n * The items source for list-based modes (`drop-down-list`, `multi-select`, `multi-column`).\n * Accepts an `AXDataSource` (remote paging, `byKey`, server-side filter) or a plain array.\n */\n dataSource = input<AXDataSource<AXLookupItem> | AXLookupItem[] | undefined>(undefined);\n\n /**\n * The nodes source for tree modes (`drop-down-tree`, `multi-select-tree`):\n * an array of nodes or a lazy children callback.\n */\n treeDataSource = input<AXTreeViewDataSource | undefined>(undefined);\n\n /**\n * The item property used as the selection value. Maps to the tree `idField` in tree modes.\n */\n valueField = input('id');\n\n /**\n * The item property used as the display text. Maps to the tree `titleField` in tree modes\n * (set it to `title` when your nodes use the default tree shape).\n */\n textField = input('text');\n\n /**\n * The item property marking an item as disabled.\n */\n disabledField = input('disabled');\n\n /**\n * Column definitions for the `multi-column` mode (rendered as `ax-text-column` in `ax-data-table`).\n */\n columns = input<AXLookupColumn[]>([]);\n\n /**\n * Whether the trigger accepts typing and filters the datasource (`true`),\n * or is select-only with no writable input (`false`).\n * Applies to `drop-down-list`, `multi-select`, and `multi-column`. Tree modes ignore this.\n */\n searchable = input(true);\n\n /**\n * When `true` (default), the popup list uses the alternate actionsheet presentation on small\n * screens (`SM`). When `false`, the list always opens as an anchored dropdown.\n */\n adaptivityEnabled = input(true);\n\n /**\n * Title shown in the actionsheet header on small screens. Falls back to `placeholder`.\n */\n caption = input('');\n\n /**\n * When `true`, list rows use alternating background colors for easier scanning\n * (`drop-down-list`, `multi-select`, and `multi-column` modes).\n */\n alternate = input(false);\n\n /**\n * Placeholder for the trigger search input when items are already selected\n * (mainly useful in `multi-select`). Falls back to `placeholder` when the selection is empty.\n */\n searchPlaceholder = input('Search...');\n\n /**\n * The placeholder text shown when no value is selected.\n */\n placeholder = input('');\n\n /**\n * Whether the lookup is disabled.\n */\n readonly disabled = input(false);\n\n /**\n * Whether the lookup is readonly.\n */\n readonly readonly = input(false);\n\n /**\n * Predefined look scheme of the editor container. Same looks as other editor components like ax-text-box.\n */\n look = model<AXStyleLookType>('solid');\n\n /**\n * The fixed row height in pixels used by the virtual scroll viewport (list-based modes).\n */\n itemHeight = input(40);\n\n /**\n * The maximum number of rows visible before the popup scrolls (list-based modes).\n */\n maxVisibleItems = input(8);\n\n /**\n * How selecting parent/child nodes affects each other in `multi-select-tree` mode.\n */\n treeSelectionBehavior = input<AXTreeViewSelectionBehavior>('all');\n\n /**\n * Custom template rendered for each item/node. Context: `$implicit` is the item.\n */\n itemTemplate = input<TemplateRef<unknown> | undefined>(undefined);\n\n /**\n * Custom template for the selected item display (trigger text / chips). Context: `$implicit` is the item.\n */\n selectedTemplate = input<TemplateRef<unknown> | undefined>(undefined);\n\n /**\n * Custom template rendered when the datasource has no items.\n */\n emptyTemplate = input<TemplateRef<unknown> | undefined>(undefined);\n\n /**\n * Custom template rendered for rows whose page is still loading.\n */\n loadingTemplate = input<TemplateRef<unknown> | undefined>(undefined);\n\n /**\n * The selected value(s): a scalar in single modes, an array in\n * `multi-select` / `multi-select-tree`. Supports `[(value)]`, `[(ngModel)]`, and signal forms\n * via {@link FormValueControl}.\n */\n readonly value = model<unknown | unknown[] | null>(null);\n\n /**\n * Full items that resolve the current `value` key(s) without calling datasource `byKey`.\n * Use when the parent already has the selected entity (e.g. edit forms). Seeds the internal\n * item cache; missing keys still fall through to `find` / `byKey`.\n */\n valueItems = input<AXLookupItem[]>([]);\n\n /**\n * Emitted when the selected value changes.\n */\n onValueChanged = output<AXValueChangedEvent<unknown | unknown[] | null>>();\n\n /**\n * Emitted when the selection changes, carrying the resolved selected items.\n */\n onSelectionChanged = output<AXLookupSelectionChangedEvent>();\n\n /**\n * Emitted when the trigger receives focus.\n */\n onFocus = output<AXFocusEvent>();\n\n /**\n * Emitted when the trigger loses focus.\n */\n onBlur = output<AXFocusEvent>();\n\n /**\n * Emitted when a list/tree item is clicked.\n */\n onItemClick = output<AXItemClickEvent<AXLookupItem>>();\n\n /**\n * Emitted when an item is selected (click or keyboard).\n */\n onItemSelected = output<AXItemSelectedEvent<AXLookupItem>>();\n\n /**\n * Emitted when the popup opens.\n */\n onOpened = output<AXEvent>();\n\n /**\n * Emitted when the popup closes.\n */\n onClosed = output<AXEvent>();\n\n /** Whether the popup is expanded. */\n protected expanded = signal(false);\n\n /** Whether the list is currently shown as a bottom actionsheet (small screens + adaptivity). */\n protected isActionsheetStyle = signal(false);\n\n /** Whether the current mode selects multiple values. */\n protected isMultiple = computed(() => this.mode() === 'multi-select' || this.mode() === 'multi-select-tree');\n\n /** Whether the current mode renders a tree. */\n protected isTreeMode = computed(() => this.mode() === 'drop-down-tree' || this.mode() === 'multi-select-tree');\n\n /** Whether the trigger input is writable and filters as you type. */\n protected isEditableTrigger = computed(() => {\n if (!this.searchable() || this.readonly()) {\n return false;\n }\n const mode = this.mode();\n return mode === 'drop-down-list' || mode === 'multi-select' || mode === 'multi-column';\n });\n\n /** The datasource for list-based modes; plain arrays are converted. */\n protected resolvedDataSource = computed<AXDataSource<AXLookupItem>>(() => {\n const source = this.dataSource();\n if (!source) {\n return convertArrayToDataSource<AXLookupItem>([], { key: this.valueField(), pageSize: 20 });\n }\n return Array.isArray(source)\n ? convertArrayToDataSource<AXLookupItem>(source, { key: this.valueField(), pageSize: 20 })\n : source;\n });\n\n /** The current selection normalized to an array. */\n protected selectedValues = computed<unknown[]>(() => {\n const value = this.value();\n if (value == null) {\n return [];\n }\n return Array.isArray(value) ? value : [value];\n });\n\n /** The resolved selected items (via cache, datasource `find`/`byKey`, or tree node lookup). */\n protected selectedItems = signal<AXLookupItem[]>([]);\n\n /** Display text shown in the trigger for single modes. */\n protected displayText = computed(() => {\n const item = this.selectedItems()[0];\n return item ? this.getItemText(item) : '';\n });\n\n /**\n * Text typed in the editable trigger input.\n * Multi-select starts empty; single modes sync from the selected display text.\n */\n protected searchText = linkedSignal(() => (this.mode() === 'multi-select' || this.mode() === 'multi-select-tree' ? '' : this.displayText()));\n\n /**\n * Whether the trigger should render `selectedTemplate` instead of the plain input text.\n * Searchable mode shows the template while the popup is closed and the input still matches\n * the selected display text (same pattern as combo-box).\n */\n protected showSelectedTemplate = computed(() => {\n if (this.isMultiple() || !this.selectedTemplate() || this.selectedItems().length === 0) {\n return false;\n }\n if (!this.isEditableTrigger()) {\n return true;\n }\n return !this.expanded() && this.searchText() === this.displayText();\n });\n\n protected popoverRef = viewChild(AXPopoverComponent);\n protected triggerSearchInput = viewChild<ElementRef<HTMLInputElement>>('triggerSearchInput');\n protected listView = viewChild(AXLookupListViewBase);\n\n #itemsCache = new Map<unknown, AXLookupItem>();\n #isUserInteraction = false;\n #lastValue: unknown | unknown[] | null | undefined = undefined;\n #lastExpanded: boolean | undefined = undefined;\n #resolveRevision = 0;\n #selectionInitialized = false;\n #filterApplied = false;\n #searchDebounce?: ReturnType<typeof setTimeout>;\n\n constructor() {\n super();\n\n effect(() => this.#emitValueChanged(this.value()));\n effect(() => this.#emitOpenedOrClosed(this.expanded()));\n effect(() => {\n this.adaptivityEnabled();\n untracked(() => this.#syncActionsheetStyle());\n });\n\n this.#platform.resize.pipe(takeUntilDestroyed(this.#destroyRef)).subscribe(() => {\n this.#syncActionsheetStyle();\n // Match dropdown-box: close anchored dropdowns on resize; keep actionsheet open.\n if (this.expanded() && !this.isActionsheetStyle()) {\n this.close();\n }\n });\n\n // Seed the actionsheet flag once.\n this.#syncActionsheetStyle();\n\n // Seed the item cache from valueItems, then resolve selection.\n effect(() => {\n const seeded = this.valueItems();\n const values = this.selectedValues();\n this.valueField();\n this.mode();\n this.dataSource();\n this.treeDataSource();\n untracked(() => {\n this.#seedItemsCache(seeded);\n void this.#resolveSelectedItems(values);\n });\n });\n\n // Keep the popover in sync with the expanded state.\n effect(() => {\n const expanded = this.expanded();\n const popover = this.popoverRef();\n if (!popover) {\n return;\n }\n untracked(() => {\n if (expanded && !popover.isOpen) {\n void popover.open();\n } else if (!expanded && popover.isOpen) {\n popover.close();\n }\n });\n });\n }\n\n #syncActionsheetStyle() {\n this.isActionsheetStyle.set(this.adaptivityEnabled() && this.#platform.is('SM'));\n }\n\n /** Returns the display text of an item using the `textField` mapping. */\n protected getItemText(item: AXLookupItem): string {\n return String(item?.[this.textField()] ?? '');\n }\n\n /** Stable unique key for selected chips — avoids NG0955 and remounts on reorder/remove. */\n protected trackSelectedKey(item: AXLookupItem): unknown {\n const key = item?.[this.valueField()];\n return key != null ? key : item;\n }\n\n /**\n * Opens (editable trigger) or toggles the popup on trigger click.\n */\n protected onTriggerClick() {\n if (this.disabled() || this.readonly()) {\n return;\n }\n if (this.isEditableTrigger()) {\n this.expanded.set(true);\n queueMicrotask(() => this.triggerSearchInput()?.nativeElement.focus());\n return;\n }\n this.expanded.update((open) => !open);\n if (!this.expanded()) {\n return;\n }\n queueMicrotask(() => this.focusListFirst());\n }\n\n /**\n * Focuses the lookup trigger input.\n */\n focus(options?: FocusOptions): void {\n if (this.disabled()) {\n return;\n }\n this.triggerSearchInput()?.nativeElement.focus(options);\n }\n\n /**\n * Handles keyboard interaction on the trigger input.\n */\n protected onTriggerKeydown(e: KeyboardEvent) {\n if (this.disabled() || this.readonly()) {\n return;\n }\n\n if (e.key === 'Escape') {\n this.close();\n return;\n }\n\n if (e.key === 'ArrowDown') {\n e.preventDefault();\n this.expanded.set(true);\n queueMicrotask(() => this.focusListFirst());\n return;\n }\n\n if (!this.isEditableTrigger() && (e.key === 'Enter' || e.key === ' ')) {\n e.preventDefault();\n this.expanded.update((open) => !open);\n if (this.expanded()) {\n queueMicrotask(() => this.focusListFirst());\n }\n }\n }\n\n /** Blocks typing when the trigger is not editable (keeps Tab / keyboard open working). */\n protected onBeforeInput(event: Event) {\n if (!this.isEditableTrigger() || this.readonly()) {\n event.preventDefault();\n }\n }\n\n /**\n * Returns focus to the trigger input when list navigation requests it.\n */\n protected onListNavigateOut(_reason: 'up' | 'typeahead') {\n this.triggerSearchInput()?.nativeElement.focus();\n }\n\n protected focusListFirst() {\n const tryFocus = (attempt = 0) => {\n const list = this.listView();\n if (list) {\n list.focusFirst();\n return;\n }\n if (attempt < 5) {\n setTimeout(() => tryFocus(attempt + 1), 16);\n }\n };\n tryFocus();\n }\n\n /**\n * Keeps the expanded state in sync when the popover closes (e.g. click outside),\n * and clears any applied search filter.\n */\n protected onPopoverClosed() {\n this.expanded.set(false);\n this.searchText.set(this.isMultiple() ? '' : this.displayText());\n if (this.#filterApplied) {\n this.#filterApplied = false;\n const source = this.resolvedDataSource();\n source.clearFilter();\n source.refresh();\n }\n }\n\n /**\n * Closes the popup.\n */\n close() {\n this.expanded.set(false);\n }\n\n /**\n * Closes the popup (alias for {@link close}, required by `AXClosableComponent`).\n */\n closeAll() {\n this.close();\n }\n\n /**\n * Opens the popup.\n */\n open() {\n if (this.disabled() || this.readonly()) {\n return;\n }\n this.expanded.set(true);\n }\n\n /**\n * Handles typing in the editable trigger input.\n */\n protected onTriggerSearchInput(text: string) {\n if (!this.isEditableTrigger()) {\n return;\n }\n this.searchText.set(text);\n this.expanded.set(true);\n this.#applyFilterDebounced(text);\n }\n\n /** Placeholder for the editable trigger search input. */\n protected triggerSearchPlaceholder = computed(() => {\n if (this.mode() === 'multi-select' && this.selectedItems().length > 0) {\n return this.searchPlaceholder();\n }\n return this.placeholder();\n });\n\n /**\n * Commits a single pick (drop-down-list, drop-down-tree, multi-column) and closes the popup.\n */\n protected handleSinglePick(e: AXLookupItemClickEvent) {\n this.#emitItemClick(e.item);\n this.#emitItemSelected(e.item);\n this.#itemsCache.set(e.value, e.item);\n if (!this.#valuesEqual(e.value, this.value())) {\n this.#isUserInteraction = true;\n this.value.set(e.value);\n }\n this.close();\n }\n\n /**\n * Toggles an item in the multi-select list; the popup stays open.\n * Clears the trigger search so the full list returns (select-box-like).\n */\n protected handleMultiToggle(e: AXLookupItemClickEvent) {\n this.#emitItemClick(e.item);\n this.#itemsCache.set(e.value, e.item);\n const current = this.selectedValues();\n const exists = current.some((v) => v == e.value);\n if (!exists) {\n this.#emitItemSelected(e.item);\n }\n const next = exists ? current.filter((v) => !(v == e.value)) : [...current, e.value];\n this.#isUserInteraction = true;\n this.value.set(next);\n if (this.isEditableTrigger() && this.searchText()) {\n this.searchText.set('');\n this.#applyFilterDebounced('');\n }\n }\n\n /**\n * Applies the multi-select-tree selection to the value; the popup stays open.\n */\n protected handleTreeSelectionChange(e: AXLookupTreeSelectionEvent) {\n const prev = new Set(this.selectedValues().map((v) => String(v)));\n const newlySelected = e.nodes.filter((node) => !prev.has(String(node[this.valueField()])));\n if (newlySelected.length > 0) {\n this.#emitItemSelected(newlySelected[0]);\n }\n for (const node of e.nodes) {\n this.#itemsCache.set(String(node[this.valueField()]), node);\n }\n this.#isUserInteraction = true;\n this.value.set([...e.ids]);\n }\n\n /** Forwards native focus from the trigger input. */\n protected emitOnFocus(e: FocusEvent) {\n this.onFocus.emit({\n component: this,\n htmlElement: this.nativeElement,\n nativeEvent: e,\n });\n }\n\n /** Forwards native blur from the trigger input. */\n protected emitOnBlur(e: FocusEvent) {\n this.onBlur.emit({\n component: this,\n htmlElement: this.nativeElement,\n nativeEvent: e,\n });\n }\n\n #emitItemClick(item: AXLookupItem) {\n this.onItemClick.emit({\n component: this,\n item,\n htmlElement: this.nativeElement,\n isUserInteraction: true,\n });\n }\n\n #emitItemSelected(item: AXLookupItem) {\n this.onItemSelected.emit({\n component: this,\n item,\n htmlElement: this.nativeElement,\n isUserInteraction: true,\n });\n }\n\n /**\n * Removes a single chip from the multi selection.\n */\n protected removeChip(event: Event, item: AXLookupItem) {\n event.stopPropagation();\n if (this.disabled() || this.readonly()) {\n return;\n }\n const value = item?.[this.valueField()];\n this.#isUserInteraction = true;\n this.value.set(this.selectedValues().filter((v) => !(v == value)));\n }\n\n /**\n * Seeds the item cache with known items so matching `value` keys resolve without `byKey`.\n * Useful after an async parent-entity load when `valueItems` is not bound.\n *\n * @param items - Full items that include `valueField` (and ideally `textField`) properties.\n */\n seedItems(items: AXLookupItem[]): void {\n this.#seedItemsCache(items);\n void this.#resolveSelectedItems(this.selectedValues());\n }\n\n /**\n * Clears the whole selection.\n * Sets `null` in single modes and `[]` in multi modes. Used by projected `ax-clear-button`.\n *\n * @param isUserInteraction - Whether the clear was triggered by the user.\n */\n reset(isUserInteraction = false): void {\n if (this.disabled() || this.readonly()) {\n return;\n }\n const next = this.isMultiple() ? [] : null;\n const current = this.value();\n if (this.isMultiple()) {\n if (Array.isArray(current) && current.length === 0) {\n return;\n }\n } else if (current == null) {\n return;\n }\n this.#isUserInteraction = isUserInteraction;\n this.value.set(next);\n if (this.isEditableTrigger() && this.searchText()) {\n this.searchText.set('');\n this.#applyFilterDebounced('');\n }\n }\n\n #applyFilterDebounced(text: string) {\n if (this.#searchDebounce) {\n clearTimeout(this.#searchDebounce);\n }\n this.#searchDebounce = setTimeout(() => {\n const source = this.resolvedDataSource();\n const query = text?.trim() ?? '';\n if (query) {\n source.filter({ field: this.textField(), value: query, operator: { type: 'contains' } });\n this.#filterApplied = true;\n } else {\n source.clearFilter();\n }\n source.refresh();\n }, 300);\n }\n\n async #resolveSelectedItems(values: unknown[]) {\n const revision = ++this.#resolveRevision;\n const resolved = await Promise.all(values.map((value) => Promise.resolve(this.#resolveItem(value))));\n if (revision !== this.#resolveRevision) {\n return;\n }\n const items = resolved.filter((item): item is AXLookupItem => item != null);\n this.selectedItems.set(items);\n if (this.#selectionInitialized) {\n this.onSelectionChanged.emit({\n component: this,\n htmlElement: this.nativeElement,\n isUserInteraction: this.#isUserInteraction,\n items,\n value: this.value(),\n });\n }\n this.#selectionInitialized = true;\n }\n\n #seedItemsCache(items: AXLookupItem[]) {\n if (!items?.length) {\n return;\n }\n const field = this.valueField();\n for (const item of items) {\n const key = item?.[field];\n if (key == null) {\n continue;\n }\n this.#itemsCache.set(key, item);\n this.#itemsCache.set(String(key), item);\n }\n }\n\n #resolveItem(value: unknown): AXLookupItem | Promise<AXLookupItem | null> | null {\n const cached = this.#itemsCache.get(value) ?? this.#itemsCache.get(String(value));\n if (cached) {\n return cached;\n }\n\n if (this.isTreeMode()) {\n const nodes = this.treeDataSource();\n if (Array.isArray(nodes)) {\n const found = this.#findTreeNode(nodes, value);\n if (found) {\n this.#itemsCache.set(value, found);\n return found;\n }\n }\n return this.#fallbackItem(value);\n }\n\n const source = this.resolvedDataSource();\n const result = source.find(value);\n if (result == null) {\n return this.#fallbackItem(value);\n }\n if (result instanceof Promise) {\n return result.then((item) => {\n if (item) {\n this.#itemsCache.set(value, item);\n return item;\n }\n return this.#fallbackItem(value);\n });\n }\n this.#itemsCache.set(value, result);\n return result;\n }\n\n #fallbackItem(value: unknown): AXLookupItem {\n return { [this.valueField()]: value, [this.textField()]: String(value) };\n }\n\n #findTreeNode(nodes: AXLookupItem[], value: unknown): AXLookupItem | null {\n for (const node of nodes) {\n if (String(node[this.valueField()]) === String(value)) {\n return node;\n }\n const children = node['children'];\n if (Array.isArray(children)) {\n const found = this.#findTreeNode(children as AXLookupItem[], value);\n if (found) {\n return found;\n }\n }\n }\n return null;\n }\n\n #valuesEqual(a: unknown, b: unknown): boolean {\n if (a === b) {\n return true;\n }\n if (Array.isArray(a) && Array.isArray(b)) {\n return a.length === b.length && a.every((item, index) => item == b[index]);\n }\n return false;\n }\n\n /** Emits onValueChanged when the value actually changes (skips the initial value). */\n #emitValueChanged(value: unknown | unknown[] | null) {\n const previous = this.#lastValue;\n this.#lastValue = value;\n\n if (previous === undefined || this.#valuesEqual(previous, value)) {\n return;\n }\n\n this.onValueChanged.emit({\n component: this,\n htmlElement: this.nativeElement,\n name: 'value',\n value,\n oldValue: previous,\n isUserInteraction: this.#isUserInteraction,\n });\n this.#isUserInteraction = false;\n }\n\n /** Emits onOpened/onClosed when the expanded state actually changes (skips the initial state). */\n #emitOpenedOrClosed(expanded: boolean) {\n const previous = this.#lastExpanded;\n this.#lastExpanded = expanded;\n\n if (previous === undefined || previous === expanded) {\n return;\n }\n\n const event: AXEvent = {\n component: this,\n htmlElement: this.nativeElement,\n isUserInteraction: true,\n };\n expanded ? this.onOpened.emit(event) : this.onClosed.emit(event);\n }\n}\n","<div\n #origin\n class=\"ax-editor-container ax-{{ look() }} ax-default\"\n [class.ax-lookup-trigger]=\"!isEditableTrigger()\"\n [class.ax-lookup-trigger-multiple]=\"isMultiple()\"\n [class.ax-state-disabled]=\"disabled()\"\n [class.ax-state-readonly]=\"readonly()\"\n (click)=\"onTriggerClick()\"\n>\n <ng-content select=\"ax-prefix\"></ng-content>\n\n @if (isMultiple()) {\n <div class=\"ax-lookup-chips\">\n @for (item of selectedItems(); track trackSelectedKey(item)) {\n <ax-chips class=\"ax-sm\" color=\"primary\" look=\"twotone\" [text]=\"selectedTemplate() ? '' : getItemText(item)\">\n @if (selectedTemplate()) {\n <ax-prefix>\n <ng-container\n [ngTemplateOutlet]=\"selectedTemplate()!\"\n [ngTemplateOutletContext]=\"{ $implicit: item }\"\n />\n </ax-prefix>\n }\n @if (!disabled() && !readonly()) {\n <ax-suffix>\n <button type=\"button\" tabindex=\"-1\" (click)=\"removeChip($event, item)\">\n <span class=\"ax-icon ax-icon-close\"></span>\n </button>\n </ax-suffix>\n }\n </ax-chips>\n }\n <input\n #triggerSearchInput\n type=\"text\"\n class=\"ax-input ax-lookup-trigger-search\"\n [class.ax-lookup-select-input]=\"!isEditableTrigger()\"\n [placeholder]=\"triggerSearchPlaceholder()\"\n [disabled]=\"disabled()\"\n [readonly]=\"readonly() || !isEditableTrigger()\"\n [attr.inputmode]=\"isEditableTrigger() ? null : 'none'\"\n [value]=\"searchText()\"\n (input)=\"onTriggerSearchInput($any($event.target).value)\"\n (keydown)=\"onTriggerKeydown($event)\"\n (beforeinput)=\"onBeforeInput($event)\"\n (focus)=\"emitOnFocus($event)\"\n (blur)=\"emitOnBlur($event)\"\n />\n </div>\n } @else {\n <div class=\"ax-lookup-value\">\n @if (showSelectedTemplate()) {\n <div class=\"ax-lookup-selected-content\" aria-hidden=\"true\">\n <ng-container\n [ngTemplateOutlet]=\"selectedTemplate()!\"\n [ngTemplateOutletContext]=\"{ $implicit: selectedItems()[0] }\"\n />\n </div>\n }\n <input\n #triggerSearchInput\n type=\"text\"\n class=\"ax-input\"\n [class.ax-lookup-select-input]=\"!isEditableTrigger()\"\n [class.ax-lookup-input-overlay]=\"showSelectedTemplate()\"\n [placeholder]=\"placeholder()\"\n [disabled]=\"disabled()\"\n [readonly]=\"readonly() || !isEditableTrigger()\"\n [attr.inputmode]=\"isEditableTrigger() ? null : 'none'\"\n [value]=\"searchText()\"\n (input)=\"onTriggerSearchInput($any($event.target).value)\"\n (keydown)=\"onTriggerKeydown($event)\"\n (beforeinput)=\"onBeforeInput($event)\"\n (focus)=\"emitOnFocus($event)\"\n (blur)=\"emitOnBlur($event)\"\n />\n </div>\n }\n\n @if (selectedValues().length > 0 && !disabled() && !readonly()) {\n <ng-content select=\"ax-clear-button\"></ng-content>\n }\n\n <button\n type=\"button\"\n class=\"ax-general-button-icon\"\n tabindex=\"-1\"\n [disabled]=\"disabled() || readonly()\"\n >\n <span\n class=\"ax-icon\"\n [class.ax-icon-chevron-down]=\"!expanded()\"\n [class.ax-icon-chevron-up]=\"expanded()\"\n ></span>\n </button>\n <ng-content select=\"ax-suffix\"></ng-content>\n</div>\n\n<ax-popover\n [target]=\"origin\"\n [openOn]=\"'manual'\"\n [closeOn]=\"'clickOut'\"\n [placement]=\"'bottom-start'\"\n [width]=\"isActionsheetStyle() ? '100%' : origin.offsetWidth + 'px'\"\n [adaptivityEnabled]=\"isActionsheetStyle()\"\n [disabled]=\"disabled() || readonly()\"\n (onClosed)=\"onPopoverClosed()\"\n>\n <div class=\"ax-lookup-popup\" [class.ax-is-actionsheet]=\"isActionsheetStyle()\" [class.ax-is-alternate]=\"alternate()\" (keydown.escape)=\"close()\">\n @if (isActionsheetStyle()) {\n <ax-header class=\"ax-solid\">\n <ax-title>{{ caption() || placeholder() || ('@acorex:selectbox.popover.title' | translate | async) }}</ax-title>\n <ax-close-button [icon]=\"isMultiple() ? 'ax-icon ax-icon-check' : 'ax-icon ax-icon-close'\"></ax-close-button>\n </ax-header>\n }\n <ng-content select=\"ax-header\"></ng-content>\n @if (expanded()) {\n @switch (mode()) {\n @case ('drop-down-list') {\n <ax-lookup-drop-down-list\n [dataSource]=\"resolvedDataSource()\"\n [valueField]=\"valueField()\"\n [textField]=\"textField()\"\n [disabledField]=\"disabledField()\"\n [selectedValues]=\"selectedValues()\"\n [itemHeight]=\"itemHeight()\"\n [maxVisibleItems]=\"maxVisibleItems()\"\n [itemTemplate]=\"itemTemplate()\"\n [emptyTemplate]=\"emptyTemplate()\"\n [loadingTemplate]=\"loadingTemplate()\"\n [alternate]=\"alternate()\"\n (itemClick)=\"handleSinglePick($event)\"\n (navigateOut)=\"onListNavigateOut($event)\"\n />\n }\n @case ('multi-select') {\n <ax-lookup-multi-select\n [dataSource]=\"resolvedDataSource()\"\n [valueField]=\"valueField()\"\n [textField]=\"textField()\"\n [disabledField]=\"disabledField()\"\n [selectedValues]=\"selectedValues()\"\n [itemHeight]=\"itemHeight()\"\n [maxVisibleItems]=\"maxVisibleItems()\"\n [itemTemplate]=\"itemTemplate()\"\n [emptyTemplate]=\"emptyTemplate()\"\n [loadingTemplate]=\"loadingTemplate()\"\n [alternate]=\"alternate()\"\n (itemClick)=\"handleMultiToggle($event)\"\n (navigateOut)=\"onListNavigateOut($event)\"\n />\n }\n @case ('drop-down-tree') {\n <ax-lookup-drop-down-tree\n [dataSource]=\"treeDataSource()!\"\n [valueField]=\"valueField()\"\n [textField]=\"textField()\"\n [disabledField]=\"disabledField()\"\n [selectedValues]=\"selectedValues()\"\n [nodeTemplate]=\"$any(itemTemplate())\"\n (itemClick)=\"handleSinglePick($event)\"\n />\n }\n @case ('multi-select-tree') {\n <ax-lookup-multi-select-tree\n [dataSource]=\"treeDataSource()!\"\n [valueField]=\"valueField()\"\n [textField]=\"textField()\"\n [disabledField]=\"disabledField()\"\n [selectedValues]=\"selectedValues()\"\n [selectionBehavior]=\"treeSelectionBehavior()\"\n [nodeTemplate]=\"$any(itemTemplate())\"\n (selectionChange)=\"handleTreeSelectionChange($event)\"\n />\n }\n @case ('multi-column') {\n <ax-lookup-multi-column\n [dataSource]=\"resolvedDataSource()\"\n [valueField]=\"valueField()\"\n [textField]=\"textField()\"\n [disabledField]=\"disabledField()\"\n [selectedValues]=\"selectedValues()\"\n [itemHeight]=\"itemHeight()\"\n [maxVisibleItems]=\"maxVisibleItems()\"\n [columns]=\"columns()\"\n [itemTemplate]=\"itemTemplate()\"\n [emptyTemplate]=\"emptyTemplate()\"\n [loadingTemplate]=\"loadingTemplate()\"\n [alternate]=\"alternate()\"\n (itemClick)=\"handleSinglePick($event)\"\n />\n }\n }\n }\n <ng-content select=\"ax-footer\"></ng-content>\n </div>\n</ax-popover>\n<ng-content select=\"ax-validation-rule\"></ng-content>\n","import { NgModule } from '@angular/core';\nimport { AXLookupComponent } from './lookup.component';\nimport { AXLookupDropDownListComponent } from './views/lookup-drop-down-list.component';\nimport { AXLookupDropDownTreeComponent } from './views/lookup-drop-down-tree.component';\nimport { AXLookupMultiColumnComponent } from './views/lookup-multi-column.component';\nimport { AXLookupMultiSelectTreeComponent } from './views/lookup-multi-select-tree.component';\nimport { AXLookupMultiSelectComponent } from './views/lookup-multi-select.component';\n\n@NgModule({\n imports: [\n AXLookupComponent,\n AXLookupDropDownListComponent,\n AXLookupMultiSelectComponent,\n AXLookupDropDownTreeComponent,\n AXLookupMultiSelectTreeComponent,\n AXLookupMultiColumnComponent,\n ],\n exports: [\n AXLookupComponent,\n AXLookupDropDownListComponent,\n AXLookupMultiSelectComponent,\n AXLookupDropDownTreeComponent,\n AXLookupMultiSelectTreeComponent,\n AXLookupMultiColumnComponent,\n ],\n})\nexport class AXLookupModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i2","i1"],"mappings":"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"}
1
+ {"version":3,"file":"acorex-components-lookup.mjs","sources":["../../../../packages/components/lookup/src/lib/views/lookup-list-view-base.ts","../../../../packages/components/lookup/src/lib/views/lookup-drop-down-list.component.ts","../../../../packages/components/lookup/src/lib/views/lookup-drop-down-tree.component.ts","../../../../packages/components/lookup/src/lib/views/lookup-multi-column.component.ts","../../../../packages/components/lookup/src/lib/views/lookup-multi-select-tree.component.ts","../../../../packages/components/lookup/src/lib/views/lookup-multi-select.component.ts","../../../../packages/components/lookup/src/lib/lookup.component.ts","../../../../packages/components/lookup/src/lib/lookup.component.html","../../../../packages/components/lookup/src/lib/lookup.module.ts","../../../../packages/components/lookup/src/acorex-components-lookup.ts"],"sourcesContent":["import { AXDataSource, AXHtmlEvent, AXListDataSource } from '@acorex/cdk/common';\nimport {\n AXListNavigationDirective,\n AXListNavigationItemDirective,\n} from '@acorex/cdk/list-navigation';\nimport { CdkVirtualScrollViewport } from '@angular/cdk/scrolling';\nimport {\n Directive,\n NgZone,\n TemplateRef,\n computed,\n effect,\n inject,\n input,\n output,\n signal,\n untracked,\n viewChild,\n viewChildren,\n} from '@angular/core';\nimport { AXLookupItem, AXLookupItemClickEvent } from '../lookup.types';\n\n/**\n * Shared `AXDataSource` + CDK virtual scroll plumbing for the list-based lookup views\n * (`ax-lookup-drop-down-list`, `ax-lookup-multi-select`).\n */\n@Directive()\nexport abstract class AXLookupListViewBase {\n /**\n * The datasource providing the items (paged, remote-capable).\n */\n dataSource = input.required<AXDataSource<AXLookupItem>>();\n\n /**\n * The item property used as the selection value.\n */\n valueField = input('id');\n\n /**\n * The item property used as the display text.\n */\n textField = input('text');\n\n /**\n * The item property marking an item as disabled.\n */\n disabledField = input('disabled');\n\n /**\n * Currently selected values (always an array, even for single selection).\n */\n selectedValues = input<unknown[]>([]);\n\n /**\n * The fixed row height in pixels used by the virtual scroll viewport.\n */\n itemHeight = input(40);\n\n /**\n * The maximum number of rows visible before the popup scrolls.\n */\n maxVisibleItems = input(8);\n\n /**\n * Custom template rendered for each item. Context: `$implicit` is the item.\n */\n itemTemplate = input<TemplateRef<unknown> | undefined>(undefined);\n\n /**\n * Custom template rendered when the datasource has no items.\n */\n emptyTemplate = input<TemplateRef<unknown> | undefined>(undefined);\n\n /**\n * Custom template rendered for rows whose page is still loading.\n */\n loadingTemplate = input<TemplateRef<unknown> | undefined>(undefined);\n\n /**\n * When `true`, list rows use alternating background colors for easier scanning.\n */\n alternate = input(false);\n\n /**\n * Emitted when the user picks (or toggles) an item.\n */\n itemClick = output<AXLookupItemClickEvent>();\n\n /**\n * Emitted when keyboard navigation should leave the list (e.g. ArrowUp on the first\n * item, or a printable key that should return focus to the trigger search input).\n */\n navigateOut = output<'up' | 'typeahead'>();\n\n /** CDK virtual scroll adapter over the datasource. */\n protected listDataSource = signal<AXListDataSource<AXLookupItem> | null>(null);\n\n protected totalCount = signal(0);\n protected isLoading = signal(true);\n\n protected isEmpty = computed(() => this.totalCount() === 0 && !this.isLoading());\n\n /** Viewport height so the popup grows with the items up to `maxVisibleItems`. */\n protected viewportHeight = computed(() => {\n const count = this.totalCount() || (this.isLoading() ? 3 : 1);\n return Math.min(count, this.maxVisibleItems()) * this.itemHeight();\n });\n\n protected viewportRef = viewChild(CdkVirtualScrollViewport);\n protected listNavigation = viewChild(AXListNavigationDirective);\n protected navItems = viewChildren(AXListNavigationItemDirective);\n\n #ngZone = inject(NgZone);\n\n constructor() {\n // CDK measures the viewport size only once, when it initializes. Inside the popover the\n // panel is still animating/positioning at that moment (and the height also changes when\n // the loading placeholder is replaced by the real item count), so the measurement is stale\n // and CDK renders too few rows, leaving empty space. A ResizeObserver on the viewport\n // element re-measures on every actual size change, covering all of these cases.\n effect((onCleanup) => {\n const viewport = this.viewportRef();\n if (!viewport || typeof ResizeObserver === 'undefined') {\n return;\n }\n const observer = new ResizeObserver(() => {\n this.#ngZone.run(() => viewport.checkViewportSize());\n });\n observer.observe(viewport.elementRef.nativeElement);\n onCleanup(() => observer.disconnect());\n });\n\n effect((onCleanup) => {\n const source = this.dataSource();\n const list = new AXListDataSource<AXLookupItem>({ source });\n untracked(() => {\n this.totalCount.set(source.totalCount);\n this.isLoading.set(source.totalCount > 0 ? source.isLoading : true);\n this.listDataSource.set(list);\n });\n const loadingSub = source.onLoadingChanged.subscribe((value) => this.isLoading.set(value));\n const changedSub = source.onChanged.subscribe((e) => this.totalCount.set(e.totalCount));\n onCleanup(() => {\n loadingSub.unsubscribe();\n changedSub.unsubscribe();\n });\n });\n }\n\n /** Moves keyboard focus to the first rendered list option. */\n focusFirst() {\n this.listNavigation()?.focusOnIndex(0);\n }\n\n protected getValue(item: AXLookupItem): unknown {\n return item?.[this.valueField()];\n }\n\n protected getText(item: AXLookupItem): string {\n return String(item?.[this.textField()] ?? '');\n }\n\n protected isSelected(item: AXLookupItem): boolean {\n const value = this.getValue(item);\n return this.selectedValues().some((v) => v == value);\n }\n\n protected isDisabled(item: AXLookupItem): boolean {\n return Boolean(item?.[this.disabledField()]);\n }\n\n protected handleItemClick(item: AXLookupItem | null | undefined) {\n if (!item || this.isDisabled(item)) {\n return;\n }\n this.itemClick.emit({ item, value: this.getValue(item) });\n }\n\n /**\n * Commit on mousedown (not click) so a searchable trigger blur cannot destroy the\n * list before the pick is applied.\n */\n protected handleItemMouseDown(event: Event, item: AXLookupItem | null | undefined) {\n event.preventDefault();\n event.stopPropagation();\n this.handleItemClick(item);\n }\n\n protected handleItemKeypress(e: AXHtmlEvent<KeyboardEvent>, item: AXLookupItem | null | undefined) {\n if (e.nativeEvent.key === 'Enter' || e.nativeEvent.code === 'Space') {\n e.nativeEvent.stopPropagation();\n e.nativeEvent.preventDefault();\n this.handleItemClick(item);\n }\n }\n\n protected handleListKeypress(e: AXHtmlEvent<KeyboardEvent>) {\n const key = e.nativeEvent.key;\n const nav = this.listNavigation();\n const viewport = this.viewportRef();\n\n if (key === 'ArrowUp' && nav && nav.activeIndex() === 0) {\n const offset = viewport?.measureScrollOffset() ?? 0;\n if (offset > 0) {\n e.nativeEvent.preventDefault();\n viewport!.scrollToOffset(Math.max(0, offset - this.itemHeight()));\n queueMicrotask(() => nav.focusOnIndex(0));\n return;\n }\n e.nativeEvent.preventDefault();\n this.navigateOut.emit('up');\n return;\n }\n\n if (key === 'ArrowDown' && nav && viewport) {\n const items = this.navItems();\n if (items.length > 0 && nav.activeIndex() >= items.length - 1) {\n const maxOffset = Math.max(0, this.totalCount() * this.itemHeight() - viewport.getViewportSize());\n const nextOffset = Math.min(maxOffset, viewport.measureScrollOffset() + this.itemHeight());\n if (nextOffset > viewport.measureScrollOffset()) {\n e.nativeEvent.preventDefault();\n viewport.scrollToOffset(nextOffset);\n queueMicrotask(() => nav.focusOnIndex(this.navItems().length - 1));\n }\n return;\n }\n }\n\n if (\n key === 'ArrowUp' ||\n key === 'ArrowDown' ||\n key === 'Tab' ||\n key === 'Shift' ||\n key === 'Enter' ||\n key === 'Escape' ||\n key === ' '\n ) {\n return;\n }\n\n this.navigateOut.emit('typeahead');\n }\n\n protected activateNavItem(nav: AXListNavigationDirective, item: AXListNavigationItemDirective) {\n nav?.navigateTo(item);\n }\n\n protected trackByIndex = (index: number) => index;\n}\n","import { AXListNavigationModule } from '@acorex/cdk/list-navigation';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXTranslatorPipe } from '@acorex/core/translation';\nimport { ScrollingModule } from '@angular/cdk/scrolling';\nimport { AsyncPipe, NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\nimport { AXLookupListViewBase } from './lookup-list-view-base';\n\n/**\n * Internal mini component for the `drop-down-list` lookup mode:\n * a predefined, virtualized list of options for picking single values.\n *\n * @category Components\n */\n@Component({\n selector: 'ax-lookup-drop-down-list',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [\n ScrollingModule,\n NgTemplateOutlet,\n AXTranslatorPipe,\n AsyncPipe,\n AXDecoratorModule,\n AXListNavigationModule,\n ],\n providers: [{ provide: AXLookupListViewBase, useExisting: AXLookupDropDownListComponent }],\n template: `\n @if (isEmpty()) {\n @if (emptyTemplate()) {\n <ng-container [ngTemplateOutlet]=\"emptyTemplate()!\" />\n } @else {\n <div class=\"ax-lookup-empty\">\n {{ '@acorex:common.general.no-result-found' | translate | async }}\n </div>\n }\n } @else {\n <cdk-virtual-scroll-viewport\n class=\"ax-lookup-viewport\"\n role=\"listbox\"\n axListNavigation\n #nav=\"axListNavigation\"\n [itemSize]=\"itemHeight()\"\n [style.height.px]=\"viewportHeight()\"\n (onKeypress)=\"handleListKeypress($event)\"\n >\n <div\n *cdkVirtualFor=\"let item of listDataSource(); let i = index; trackBy: trackByIndex\"\n role=\"option\"\n class=\"ax-lookup-option-host ax-lookup-option\"\n axListNavigationItem\n #navItem=\"axListNavigationItem\"\n [style.height.px]=\"itemHeight()\"\n [class.ax-state-alternate]=\"alternate() && i % 2 === 1\"\n [class.ax-state-selected]=\"item != null && isSelected(item)\"\n [class.ax-state-disabled]=\"item != null && isDisabled(item)\"\n [class.ax-state-active]=\"navItem.isActive()\"\n [attr.aria-selected]=\"item != null ? isSelected(item) : null\"\n (mouseenter)=\"activateNavItem(nav, navItem)\"\n (mousedown)=\"handleItemMouseDown($event, item)\"\n (onKeypress)=\"handleItemKeypress($event, item)\"\n >\n @if (item != null) {\n @if (itemTemplate()) {\n <ng-container [ngTemplateOutlet]=\"itemTemplate()!\" [ngTemplateOutletContext]=\"{ $implicit: item }\" />\n } @else {\n <span class=\"ax-lookup-option-text\">{{ getText(item) }}</span>\n @if (isSelected(item)) {\n <ax-icon class=\"ax-lookup-option-check ax-icon ax-icon-check\" aria-hidden=\"true\"></ax-icon>\n }\n }\n } @else {\n <ng-container [ngTemplateOutlet]=\"loadingRow\" />\n }\n </div>\n </cdk-virtual-scroll-viewport>\n }\n\n <ng-template #loadingRow>\n @if (loadingTemplate()) {\n <ng-container [ngTemplateOutlet]=\"loadingTemplate()!\" />\n } @else {\n <span class=\"ax-lookup-option-loading\">{{ '@acorex:common.status.loading' | translate | async }}</span>\n }\n </ng-template>\n `,\n})\nexport class AXLookupDropDownListComponent extends AXLookupListViewBase {}\n","import {\n AXTreeViewComponent,\n AXTreeViewDataSource,\n AXTreeViewItemTemplateContext,\n AXTreeViewSelectionChangeEvent,\n} from '@acorex/components/tree-view';\nimport { ChangeDetectionStrategy, Component, TemplateRef, ViewEncapsulation, computed, input, output } from '@angular/core';\nimport { AXLookupItemClickEvent } from '../lookup.types';\n\n/**\n * Internal mini component for the `drop-down-tree` lookup mode:\n * a predefined list rendered in a tree-like structure for single item selection.\n *\n * @category Components\n */\n@Component({\n selector: 'ax-lookup-drop-down-tree',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [AXTreeViewComponent],\n template: `\n <div class=\"ax-lookup-tree\">\n <ax-tree-view\n [datasource]=\"dataSource()\"\n selectMode=\"single\"\n selectionBehavior=\"all\"\n [controlledSelection]=\"true\"\n [selectedIds]=\"selectedIds()\"\n [idField]=\"valueField()\"\n [titleField]=\"textField()\"\n [disabledField]=\"disabledField()\"\n [nodeTemplate]=\"nodeTemplate()\"\n (onSelectionChange)=\"handleSelectionChange($event)\"\n />\n </div>\n `,\n})\nexport class AXLookupDropDownTreeComponent {\n /**\n * The tree datasource: an array of nodes or a lazy children callback.\n */\n dataSource = input.required<AXTreeViewDataSource>();\n\n /**\n * The node property used as the selection value (tree `idField`).\n */\n valueField = input('id');\n\n /**\n * The node property used as the display text (tree `titleField`).\n */\n textField = input('title');\n\n /**\n * The node property marking a node as disabled.\n */\n disabledField = input('disabled');\n\n /**\n * Currently selected values (at most one for single selection).\n */\n selectedValues = input<unknown[]>([]);\n\n /**\n * Custom template rendered for each tree node.\n */\n nodeTemplate = input<TemplateRef<AXTreeViewItemTemplateContext> | undefined>(undefined);\n\n /**\n * Emitted when the user selects a node.\n */\n itemClick = output<AXLookupItemClickEvent>();\n\n protected selectedIds = computed(() => this.selectedValues().map((v) => String(v)));\n\n protected handleSelectionChange(e: AXTreeViewSelectionChangeEvent) {\n if (e.source !== 'user') {\n return;\n }\n const node = e.selectedNodes[0];\n if (!node) {\n return;\n }\n this.itemClick.emit({ item: node, value: node[this.valueField()] });\n }\n}\n","import { AXDataSource } from '@acorex/cdk/common';\nimport {\n AXDataTableComponent,\n AXDataTableRowClick,\n AXDataTableTextColumnComponent,\n} from '@acorex/components/data-table';\nimport { NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n TemplateRef,\n ViewEncapsulation,\n computed,\n effect,\n inject,\n input,\n output,\n signal,\n untracked,\n viewChild,\n} from '@angular/core';\nimport { Subscription, auditTime, fromEvent } from 'rxjs';\nimport { AXLookupColumn, AXLookupItem, AXLookupItemClickEvent } from '../lookup.types';\n\n/**\n * Internal mini component for the `multi-column` lookup mode:\n * renders selectable rows in an `ax-data-table` grid and loads further\n * pages as the user scrolls (no pager UI).\n *\n * @category Components\n */\n@Component({\n selector: 'ax-lookup-multi-column',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [NgTemplateOutlet, AXDataTableComponent, AXDataTableTextColumnComponent],\n host: {\n class: 'ax-lookup-multi-column',\n '[style.height.px]': 'tableHeight()',\n },\n template: `\n <ax-data-table\n class=\"ax-lookup-multi-column-table\"\n look=\"minimal\"\n [dataSource]=\"tableDataSource\"\n [itemHeight]=\"itemHeight()\"\n [alternative]=\"alternate()\"\n [emptyTemplate]=\"emptyTemplate()\"\n [loading]=\"loadingConfig()\"\n [paging]=\"false\"\n [showHeader]=\"true\"\n [fixedHeader]=\"true\"\n [showFooter]=\"false\"\n [allowReordering]=\"false\"\n [rowTemplate]=\"itemTemplate() ? customRowTemplate : undefined\"\n [rowCssClass]=\"resolveRowCssClass\"\n (onRowClick)=\"handleRowClick($event)\"\n >\n @for (column of columns(); track trackColumnKey($index, column)) {\n <ax-text-column\n [dataField]=\"column.field\"\n [caption]=\"column.title\"\n [width]=\"resolveColumnWidth(column)\"\n [allowSorting]=\"false\"\n [allowResizing]=\"false\"\n />\n }\n </ax-data-table>\n\n <ng-template #customRowTemplate let-ctx>\n <tr\n [class.ax-state-selected]=\"ctx.data != null && isSelected(ctx.data)\"\n [class.ax-state-disabled]=\"ctx.data != null && isDisabled(ctx.data)\"\n [style.height.px]=\"itemHeight()\"\n [style.max-height.px]=\"itemHeight()\"\n (mousedown)=\"handleItemMouseDown($event, ctx.data)\"\n >\n <td [attr.colspan]=\"columns().length || 1\">\n @if (ctx.data != null && itemTemplate()) {\n <ng-container\n [ngTemplateOutlet]=\"itemTemplate()!\"\n [ngTemplateOutletContext]=\"{ $implicit: ctx.data }\"\n />\n }\n </td>\n </tr>\n </ng-template>\n `,\n})\nexport class AXLookupMultiColumnComponent {\n /**\n * The datasource providing the grid rows (paged, remote-capable).\n * Pages are fetched on demand as the user scrolls the table body.\n */\n dataSource = input.required<AXDataSource<AXLookupItem>>();\n\n /**\n * The item property used as the selection value.\n */\n valueField = input('id');\n\n /**\n * The item property used as the display text.\n */\n textField = input('text');\n\n /**\n * The item property marking an item as disabled.\n */\n disabledField = input('disabled');\n\n /**\n * Currently selected values (always an array, even for single selection).\n */\n selectedValues = input<unknown[]>([]);\n\n /**\n * The fixed row height in pixels passed to the data table.\n */\n itemHeight = input(40);\n\n /**\n * The maximum number of body rows visible before the table scrolls.\n */\n maxVisibleItems = input(8);\n\n /**\n * Column definitions rendered as `ax-text-column` instances.\n */\n columns = input<AXLookupColumn[]>([]);\n\n /**\n * Optional custom row content. Context: `$implicit` is the row item.\n * When set, replaces the default multi-column cell layout.\n */\n itemTemplate = input<TemplateRef<unknown> | undefined>(undefined);\n\n /**\n * Custom template rendered when the datasource has no items.\n */\n emptyTemplate = input<TemplateRef<unknown> | undefined>(undefined);\n\n /**\n * Custom template rendered while the table is loading.\n */\n loadingTemplate = input<TemplateRef<unknown> | undefined>(undefined);\n\n /**\n * When `true`, table rows use alternating background colors for easier scanning.\n */\n alternate = input(false);\n\n /**\n * Emitted when the user picks a row.\n */\n itemClick = output<AXLookupItemClickEvent>();\n\n protected tableRef = viewChild(AXDataTableComponent);\n\n /** Accumulated rows fed to the table (grows as pages are scrolled in). */\n #loadedItems: AXLookupItem[] = [];\n\n /** Total matching rows from the source (used to size the popup). */\n readonly #totalCount = signal(0);\n\n /**\n * Local table source: one page of whatever has been scrolled in so far.\n * Kept as a stable instance so the table host is not recreated on each page load.\n * `pageSize` grows with `#loadedItems` — never seed with a huge empty array (data-table\n * initializes `displayedRows` as `new Array(pageSize)`, which caused NG0955-level jank).\n */\n protected readonly tableDataSource = new AXDataSource<AXLookupItem>({\n pageSize: 1,\n key: 'id',\n load: async () => ({\n items: this.#loadedItems,\n total: this.#loadedItems.length,\n }),\n });\n\n /**\n * Header (~40px) + body rows. Grows with results up to `maxVisibleItems`,\n * then the table body scrolls for the rest.\n */\n protected tableHeight = computed(() => {\n const header = 40;\n const total = this.#totalCount();\n const rows = total > 0 ? total : Math.min(3, this.maxVisibleItems());\n return header + Math.min(rows, this.maxVisibleItems()) * this.itemHeight();\n });\n\n protected loadingConfig = computed(() => ({\n enabled: true,\n animation: true,\n loadingTemplate: this.loadingTemplate(),\n }));\n\n readonly #host = inject(ElementRef<HTMLElement>);\n\n constructor() {\n effect((onCleanup) => {\n const source = this.dataSource();\n this.tableDataSource.config.key = source.config.key || this.valueField();\n\n untracked(() => {\n this.#loadedItems = [];\n this.#totalCount.set(0);\n this.#syncTablePageSize();\n this.tableDataSource.refresh({ reset: true });\n });\n\n const changedSub = source.onChanged.subscribe((event) => {\n this.#loadedItems = event.cachedItems.filter((item): item is AXLookupItem => item != null);\n this.#totalCount.set(event.totalCount);\n this.#syncTablePageSize();\n this.tableDataSource.refresh({ reset: true });\n });\n\n // Kick the first page; later pages come from scroll.\n queueMicrotask(() => source.setPage(0));\n\n onCleanup(() => changedSub.unsubscribe());\n });\n\n effect((onCleanup) => {\n // Rebind when the table instance appears / source changes.\n this.tableRef();\n this.dataSource();\n\n let scrollSub: Subscription | undefined;\n const timer = setTimeout(() => {\n const wrapper =\n this.tableRef()?.getHostElement()?.querySelector('.ax-data-table-wrapper') ??\n this.#host.nativeElement.querySelector('.ax-data-table-wrapper');\n if (!wrapper) {\n return;\n }\n scrollSub = fromEvent(wrapper, 'scroll')\n .pipe(auditTime(80))\n .subscribe(() => this.#tryLoadMore(wrapper as HTMLElement));\n }, 0);\n\n onCleanup(() => {\n clearTimeout(timer);\n scrollSub?.unsubscribe();\n });\n });\n }\n\n /** Stable unique key for `@for` — avoids NG0955 when `field` is missing or duplicated. */\n protected trackColumnKey(index: number, column: AXLookupColumn): string {\n return `${column?.field ?? ''}::${index}`;\n }\n\n protected resolveColumnWidth(column: AXLookupColumn): string | number | 'auto' {\n const width = column.width?.trim();\n if (!width || width.includes('fr')) {\n return 'auto';\n }\n return width;\n }\n\n #syncTablePageSize() {\n this.tableDataSource.config.pageSize = Math.max(this.#loadedItems.length, 1);\n }\n\n protected resolveRowCssClass = (row: unknown): string => {\n const item = row as AXLookupItem | null | undefined;\n if (!item) {\n return '';\n }\n const classes: string[] = [];\n if (this.isSelected(item)) {\n classes.push('ax-state-selected');\n }\n if (this.isDisabled(item)) {\n classes.push('ax-state-disabled');\n }\n return classes.join(' ');\n };\n\n protected handleRowClick(event: AXDataTableRowClick) {\n this.handleItemClick(event.data as AXLookupItem | null | undefined);\n }\n\n protected handleItemClick(item: AXLookupItem | null | undefined) {\n if (!item || this.isDisabled(item)) {\n return;\n }\n this.itemClick.emit({ item, value: this.getValue(item) });\n }\n\n protected handleItemMouseDown(event: Event, item: AXLookupItem | null | undefined) {\n event.preventDefault();\n event.stopPropagation();\n this.handleItemClick(item);\n }\n\n protected isSelected(item: AXLookupItem): boolean {\n const value = this.getValue(item);\n return this.selectedValues().some((v) => v == value);\n }\n\n protected isDisabled(item: AXLookupItem): boolean {\n return Boolean(item?.[this.disabledField()]);\n }\n\n #tryLoadMore(wrapper: HTMLElement) {\n const nearBottom = wrapper.scrollTop + wrapper.clientHeight >= wrapper.scrollHeight - 48;\n if (!nearBottom) {\n return;\n }\n\n const source = this.dataSource();\n if (source.isLoading || source.totalCount === 0) {\n return;\n }\n\n const loadedCount = source.cachedItems.filter((item) => item != null).length;\n if (loadedCount >= source.totalCount) {\n return;\n }\n\n const nextPage = Math.floor(loadedCount / source.pageSize);\n source.setPage(nextPage);\n }\n\n private getValue(item: AXLookupItem): unknown {\n return item?.[this.valueField()];\n }\n}\n","import {\n AXTreeViewComponent,\n AXTreeViewDataSource,\n AXTreeViewItemTemplateContext,\n AXTreeViewNode,\n AXTreeViewSelectionBehavior,\n AXTreeViewSelectionChangeEvent,\n} from '@acorex/components/tree-view';\nimport { ChangeDetectionStrategy, Component, TemplateRef, ViewEncapsulation, computed, input, output } from '@angular/core';\n\n/**\n * Selection payload of the multi-select tree view.\n */\nexport interface AXLookupTreeSelectionEvent {\n ids: string[];\n nodes: AXTreeViewNode[];\n}\n\n/**\n * Internal mini component for the `multi-select-tree` lookup mode:\n * a predefined list rendered in a tree-like structure for multiple item selection.\n *\n * @category Components\n */\n@Component({\n selector: 'ax-lookup-multi-select-tree',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [AXTreeViewComponent],\n template: `\n <div class=\"ax-lookup-tree\">\n <ax-tree-view\n [datasource]=\"dataSource()\"\n selectMode=\"multiple\"\n [selectionBehavior]=\"selectionBehavior()\"\n [controlledSelection]=\"true\"\n [selectedIds]=\"selectedIds()\"\n [idField]=\"valueField()\"\n [titleField]=\"textField()\"\n [disabledField]=\"disabledField()\"\n [nodeTemplate]=\"nodeTemplate()\"\n (onSelectionChange)=\"handleSelectionChange($event)\"\n />\n </div>\n `,\n})\nexport class AXLookupMultiSelectTreeComponent {\n /**\n * The tree datasource: an array of nodes or a lazy children callback.\n */\n dataSource = input.required<AXTreeViewDataSource>();\n\n /**\n * The node property used as the selection value (tree `idField`).\n */\n valueField = input('id');\n\n /**\n * The node property used as the display text (tree `titleField`).\n */\n textField = input('title');\n\n /**\n * The node property marking a node as disabled.\n */\n disabledField = input('disabled');\n\n /**\n * Currently selected values.\n */\n selectedValues = input<unknown[]>([]);\n\n /**\n * How selecting parent/child nodes affects each other. Passed through to the tree-view.\n */\n selectionBehavior = input<AXTreeViewSelectionBehavior>('all');\n\n /**\n * Custom template rendered for each tree node.\n */\n nodeTemplate = input<TemplateRef<AXTreeViewItemTemplateContext> | undefined>(undefined);\n\n /**\n * Emitted when the user changes the tree selection.\n */\n selectionChange = output<AXLookupTreeSelectionEvent>();\n\n protected selectedIds = computed(() => this.selectedValues().map((v) => String(v)));\n\n protected handleSelectionChange(e: AXTreeViewSelectionChangeEvent) {\n if (e.source !== 'user') {\n return;\n }\n this.selectionChange.emit({ ids: e.selectedIds, nodes: e.selectedNodes });\n }\n}\n","import { AXListNavigationModule } from '@acorex/cdk/list-navigation';\nimport { AXTranslatorPipe } from '@acorex/core/translation';\nimport { ScrollingModule } from '@angular/cdk/scrolling';\nimport { AsyncPipe, NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\nimport { AXLookupListViewBase } from './lookup-list-view-base';\n\n/**\n * Internal mini component for the `multi-select` lookup mode:\n * a predefined, virtualized list of options with checkboxes for multiple item selection.\n *\n * @category Components\n */\n@Component({\n selector: 'ax-lookup-multi-select',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [ScrollingModule, NgTemplateOutlet, AXTranslatorPipe, AsyncPipe, AXListNavigationModule],\n providers: [{ provide: AXLookupListViewBase, useExisting: AXLookupMultiSelectComponent }],\n template: `\n @if (isEmpty()) {\n @if (emptyTemplate()) {\n <ng-container [ngTemplateOutlet]=\"emptyTemplate()!\" />\n } @else {\n <div class=\"ax-lookup-empty\">\n {{ '@acorex:common.general.no-result-found' | translate | async }}\n </div>\n }\n } @else {\n <cdk-virtual-scroll-viewport\n class=\"ax-lookup-viewport\"\n role=\"listbox\"\n aria-multiselectable=\"true\"\n axListNavigation\n #nav=\"axListNavigation\"\n [itemSize]=\"itemHeight()\"\n [style.height.px]=\"viewportHeight()\"\n (onKeypress)=\"handleListKeypress($event)\"\n >\n <div\n *cdkVirtualFor=\"let item of listDataSource(); let i = index; trackBy: trackByIndex\"\n role=\"option\"\n class=\"ax-lookup-option-host ax-lookup-option\"\n axListNavigationItem\n #navItem=\"axListNavigationItem\"\n [style.height.px]=\"itemHeight()\"\n [class.ax-lookup-option-host--check]=\"!!itemTemplate()\"\n [class.ax-state-alternate]=\"alternate() && i % 2 === 1\"\n [class.ax-state-selected]=\"item != null && isSelected(item)\"\n [class.ax-state-disabled]=\"item != null && isDisabled(item)\"\n [class.ax-state-active]=\"navItem.isActive()\"\n [attr.aria-selected]=\"item != null ? isSelected(item) : null\"\n (mouseenter)=\"activateNavItem(nav, navItem)\"\n (mousedown)=\"handleItemMouseDown($event, item)\"\n (onKeypress)=\"handleItemKeypress($event, item)\"\n >\n @if (item != null) {\n <input\n type=\"checkbox\"\n class=\"ax-lookup-checkbox\"\n tabindex=\"-1\"\n [checked]=\"isSelected(item)\"\n [disabled]=\"isDisabled(item)\"\n />\n @if (itemTemplate()) {\n <ng-container [ngTemplateOutlet]=\"itemTemplate()!\" [ngTemplateOutletContext]=\"{ $implicit: item }\" />\n } @else {\n <span class=\"ax-lookup-option-text\">{{ getText(item) }}</span>\n }\n } @else {\n <ng-container [ngTemplateOutlet]=\"loadingRow\" />\n }\n </div>\n </cdk-virtual-scroll-viewport>\n }\n\n <ng-template #loadingRow>\n @if (loadingTemplate()) {\n <ng-container [ngTemplateOutlet]=\"loadingTemplate()!\" />\n } @else {\n <span class=\"ax-lookup-option-loading\">{{ '@acorex:common.status.loading' | translate | async }}</span>\n }\n </ng-template>\n `,\n})\nexport class AXLookupMultiSelectComponent extends AXLookupListViewBase {}\n","import {\n AXClearableComponent,\n AXClosableComponent,\n AXComponent,\n AXDataSource,\n AXEvent,\n AXFocusEvent,\n AXItemClickEvent,\n AXItemSelectedEvent,\n AXStyleLookType,\n AXValuableComponent,\n AXValueChangedEvent,\n NXValueComponent,\n convertArrayToDataSource,\n} from '@acorex/cdk/common';\nimport { AXChipsComponent } from '@acorex/components/chips';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXPopoverComponent } from '@acorex/components/popover';\nimport { AXTreeViewDataSource, AXTreeViewSelectionBehavior } from '@acorex/components/tree-view';\nimport { AXPlatform } from '@acorex/core/platform';\nimport { AXTranslatorPipe } from '@acorex/core/translation';\nimport { AsyncPipe, NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n ElementRef,\n TemplateRef,\n ViewEncapsulation,\n computed,\n effect,\n inject,\n input,\n linkedSignal,\n model,\n output,\n signal,\n untracked,\n viewChild,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { FormValueControl } from '@angular/forms/signals';\nimport {\n AXLookupColumn,\n AXLookupItem,\n AXLookupItemClickEvent,\n AXLookupMode,\n AXLookupSelectionChangedEvent,\n} from './lookup.types';\nimport { AXLookupDropDownListComponent } from './views/lookup-drop-down-list.component';\nimport { AXLookupDropDownTreeComponent } from './views/lookup-drop-down-tree.component';\nimport { AXLookupListViewBase } from './views/lookup-list-view-base';\nimport { AXLookupMultiColumnComponent } from './views/lookup-multi-column.component';\nimport {\n AXLookupMultiSelectTreeComponent,\n AXLookupTreeSelectionEvent,\n} from './views/lookup-multi-select-tree.component';\nimport { AXLookupMultiSelectComponent } from './views/lookup-multi-select.component';\n\n/**\n * An advanced drop-down (lookup) editor with five modes, `AXDataSource` support, and virtual scrolling.\n *\n * Modes (each rendered by its own internal mini component):\n * - `drop-down-list` — a predefined list of options for picking single values.\n * - `multi-select` — a predefined list of options for multiple item selection (chips in the trigger).\n * - `drop-down-tree` — a predefined list rendered in a tree-like structure for single item selection.\n * - `multi-select-tree` — a tree-like structure for multiple item selection.\n * - `multi-column` — an `ax-data-table` grid; when searchable, the trigger input filters as you type.\n *\n * With `adaptivityEnabled` (default `true`), the list opens as a bottom actionsheet on small\n * screens instead of an anchored dropdown — the same alternate presentation as `ax-select-box`.\n *\n * Implements {@link FormValueControl} so `[(ngModel)]` / signal forms work via the `value` model\n * (no `ControlValueAccessor`).\n *\n * @category Components\n */\n@Component({\n selector: 'ax-lookup',\n templateUrl: './lookup.component.html',\n styleUrls: ['./lookup.component.css'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n NgTemplateOutlet,\n AsyncPipe,\n AXTranslatorPipe,\n AXChipsComponent,\n AXDecoratorModule,\n AXPopoverComponent,\n AXLookupDropDownListComponent,\n AXLookupMultiSelectComponent,\n AXLookupDropDownTreeComponent,\n AXLookupMultiSelectTreeComponent,\n AXLookupMultiColumnComponent,\n ],\n providers: [\n { provide: AXComponent, useExisting: AXLookupComponent },\n { provide: AXClearableComponent, useExisting: AXLookupComponent },\n { provide: AXClosableComponent, useExisting: AXLookupComponent },\n { provide: AXValuableComponent, useExisting: AXLookupComponent },\n ],\n})\nexport class AXLookupComponent\n extends NXValueComponent\n implements FormValueControl<unknown | unknown[] | null>\n{\n readonly #platform = inject(AXPlatform);\n readonly #destroyRef = inject(DestroyRef);\n\n /**\n * The name of the form field, used by validation rules and `ax-form.validate(names)`.\n */\n name = input('');\n\n /**\n * The lookup rendering mode. Selects which mini component renders in the popup.\n */\n mode = input<AXLookupMode>('drop-down-list');\n\n /**\n * The items source for list-based modes (`drop-down-list`, `multi-select`, `multi-column`).\n * Accepts an `AXDataSource` (remote paging, `byKey`, server-side filter) or a plain array.\n */\n dataSource = input<AXDataSource<AXLookupItem> | AXLookupItem[] | undefined>(undefined);\n\n /**\n * The nodes source for tree modes (`drop-down-tree`, `multi-select-tree`):\n * an array of nodes or a lazy children callback.\n */\n treeDataSource = input<AXTreeViewDataSource | undefined>(undefined);\n\n /**\n * The item property used as the selection value. Maps to the tree `idField` in tree modes.\n */\n valueField = input('id');\n\n /**\n * The item property used as the display text. Maps to the tree `titleField` in tree modes\n * (set it to `title` when your nodes use the default tree shape).\n */\n textField = input('text');\n\n /**\n * The item property marking an item as disabled.\n */\n disabledField = input('disabled');\n\n /**\n * Column definitions for the `multi-column` mode (rendered as `ax-text-column` in `ax-data-table`).\n */\n columns = input<AXLookupColumn[]>([]);\n\n /**\n * Whether the trigger accepts typing and filters the datasource (`true`),\n * or is select-only with no writable input (`false`).\n * Applies to `drop-down-list`, `multi-select`, and `multi-column`. Tree modes ignore this.\n */\n searchable = input(true);\n\n /**\n * When `true` (default), the popup list uses the alternate actionsheet presentation on small\n * screens (`SM`). When `false`, the list always opens as an anchored dropdown.\n */\n adaptivityEnabled = input(true);\n\n /**\n * Title shown in the actionsheet header on small screens. Falls back to `placeholder`.\n */\n caption = input('');\n\n /**\n * When `true`, list rows use alternating background colors for easier scanning\n * (`drop-down-list`, `multi-select`, and `multi-column` modes).\n */\n alternate = input(false);\n\n /**\n * Placeholder for the trigger search input when items are already selected\n * (mainly useful in `multi-select`). Falls back to `placeholder` when the selection is empty.\n */\n searchPlaceholder = input('Search...');\n\n /**\n * The placeholder text shown when no value is selected.\n */\n placeholder = input('');\n\n /**\n * Whether the lookup is disabled.\n */\n readonly disabled = input(false);\n\n /**\n * Whether the lookup is readonly.\n */\n readonly readonly = input(false);\n\n /**\n * Predefined look scheme of the editor container. Same looks as other editor components like ax-text-box.\n */\n look = model<AXStyleLookType>('solid');\n\n /**\n * The fixed row height in pixels used by the virtual scroll viewport (list-based modes).\n */\n itemHeight = input(40);\n\n /**\n * The maximum number of rows visible before the popup scrolls (list-based modes).\n */\n maxVisibleItems = input(8);\n\n /**\n * How selecting parent/child nodes affects each other in `multi-select-tree` mode.\n */\n treeSelectionBehavior = input<AXTreeViewSelectionBehavior>('all');\n\n /**\n * Custom template rendered for each item/node. Context: `$implicit` is the item.\n */\n itemTemplate = input<TemplateRef<unknown> | undefined>(undefined);\n\n /**\n * Custom template for the selected item display (trigger text / chips). Context: `$implicit` is the item.\n */\n selectedTemplate = input<TemplateRef<unknown> | undefined>(undefined);\n\n /**\n * Custom template rendered when the datasource has no items.\n */\n emptyTemplate = input<TemplateRef<unknown> | undefined>(undefined);\n\n /**\n * Custom template rendered for rows whose page is still loading.\n */\n loadingTemplate = input<TemplateRef<unknown> | undefined>(undefined);\n\n /**\n * The selected value(s): a scalar in single modes, an array in\n * `multi-select` / `multi-select-tree`. Supports `[(value)]`, `[(ngModel)]`, and signal forms\n * via {@link FormValueControl}.\n */\n readonly value = model<unknown | unknown[] | null>(null);\n\n /**\n * Full items that resolve the current `value` key(s) without calling datasource `byKey`.\n * Use when the parent already has the selected entity (e.g. edit forms). Seeds the internal\n * item cache; missing keys still fall through to `find` / `byKey`.\n */\n valueItems = input<AXLookupItem[]>([]);\n\n /**\n * Emitted when the selected value changes.\n */\n onValueChanged = output<AXValueChangedEvent<unknown | unknown[] | null>>();\n\n /**\n * Emitted when the selection changes, carrying the resolved selected items.\n */\n onSelectionChanged = output<AXLookupSelectionChangedEvent>();\n\n /**\n * Emitted when the trigger receives focus.\n */\n onFocus = output<AXFocusEvent>();\n\n /**\n * Emitted when the trigger loses focus.\n */\n onBlur = output<AXFocusEvent>();\n\n /**\n * Emitted when a list/tree item is clicked.\n */\n onItemClick = output<AXItemClickEvent<AXLookupItem>>();\n\n /**\n * Emitted when an item is selected (click or keyboard).\n */\n onItemSelected = output<AXItemSelectedEvent<AXLookupItem>>();\n\n /**\n * Emitted when the popup opens.\n */\n onOpened = output<AXEvent>();\n\n /**\n * Emitted when the popup closes.\n */\n onClosed = output<AXEvent>();\n\n /** Whether the popup is expanded. */\n protected expanded = signal(false);\n\n /** Whether the list is currently shown as a bottom actionsheet (small screens + adaptivity). */\n protected isActionsheetStyle = signal(false);\n\n /** Whether the current mode selects multiple values. */\n protected isMultiple = computed(() => this.mode() === 'multi-select' || this.mode() === 'multi-select-tree');\n\n /** Whether the current mode renders a tree. */\n protected isTreeMode = computed(() => this.mode() === 'drop-down-tree' || this.mode() === 'multi-select-tree');\n\n /** Whether the trigger input is writable and filters as you type. */\n protected isEditableTrigger = computed(() => {\n if (!this.searchable() || this.readonly()) {\n return false;\n }\n const mode = this.mode();\n return mode === 'drop-down-list' || mode === 'multi-select' || mode === 'multi-column';\n });\n\n /** The datasource for list-based modes; plain arrays are converted. */\n protected resolvedDataSource = computed<AXDataSource<AXLookupItem>>(() => {\n const source = this.dataSource();\n if (!source) {\n return convertArrayToDataSource<AXLookupItem>([], { key: this.valueField(), pageSize: 20 });\n }\n return Array.isArray(source)\n ? convertArrayToDataSource<AXLookupItem>(source, { key: this.valueField(), pageSize: 20 })\n : source;\n });\n\n /** The current selection normalized to an array. */\n protected selectedValues = computed<unknown[]>(() => {\n const value = this.value();\n if (value == null) {\n return [];\n }\n return Array.isArray(value) ? value : [value];\n });\n\n /** The resolved selected items (via cache, datasource `find`/`byKey`, or tree node lookup). */\n protected selectedItems = signal<AXLookupItem[]>([]);\n\n /** Display text shown in the trigger for single modes. */\n protected displayText = computed(() => {\n const item = this.selectedItems()[0];\n return item ? this.getItemText(item) : '';\n });\n\n /**\n * Text typed in the editable trigger input.\n * Multi-select starts empty; single modes sync from the selected display text.\n */\n protected searchText = linkedSignal(() => (this.mode() === 'multi-select' || this.mode() === 'multi-select-tree' ? '' : this.displayText()));\n\n /**\n * Whether the trigger should render `selectedTemplate` instead of the plain input text.\n * Searchable mode shows the template while the popup is closed and the input still matches\n * the selected display text (same pattern as combo-box).\n */\n protected showSelectedTemplate = computed(() => {\n if (this.isMultiple() || !this.selectedTemplate() || this.selectedItems().length === 0) {\n return false;\n }\n if (!this.isEditableTrigger()) {\n return true;\n }\n return !this.expanded() && this.searchText() === this.displayText();\n });\n\n protected popoverRef = viewChild(AXPopoverComponent);\n protected triggerSearchInput = viewChild<ElementRef<HTMLInputElement>>('triggerSearchInput');\n protected listView = viewChild(AXLookupListViewBase);\n\n #itemsCache = new Map<unknown, AXLookupItem>();\n #isUserInteraction = false;\n #lastValue: unknown | unknown[] | null | undefined = undefined;\n #lastExpanded: boolean | undefined = undefined;\n #resolveRevision = 0;\n #selectionInitialized = false;\n #filterApplied = false;\n #searchDebounce?: ReturnType<typeof setTimeout>;\n\n constructor() {\n super();\n\n effect(() => this.#emitValueChanged(this.value()));\n effect(() => this.#emitOpenedOrClosed(this.expanded()));\n effect(() => {\n this.adaptivityEnabled();\n untracked(() => this.#syncActionsheetStyle());\n });\n\n this.#platform.resize.pipe(takeUntilDestroyed(this.#destroyRef)).subscribe(() => {\n this.#syncActionsheetStyle();\n // Match dropdown-box: close anchored dropdowns on resize; keep actionsheet open.\n if (this.expanded() && !this.isActionsheetStyle()) {\n this.close();\n }\n });\n\n // Seed the actionsheet flag once.\n this.#syncActionsheetStyle();\n\n // Seed the item cache from valueItems, then resolve selection.\n effect(() => {\n const seeded = this.valueItems();\n const values = this.selectedValues();\n this.valueField();\n this.mode();\n this.dataSource();\n this.treeDataSource();\n untracked(() => {\n this.#seedItemsCache(seeded);\n void this.#resolveSelectedItems(values);\n });\n });\n\n // Keep the popover in sync with the expanded state.\n effect(() => {\n const expanded = this.expanded();\n const popover = this.popoverRef();\n if (!popover) {\n return;\n }\n untracked(() => {\n if (expanded && !popover.isOpen) {\n void popover.open();\n } else if (!expanded && popover.isOpen) {\n popover.close();\n }\n });\n });\n }\n\n #syncActionsheetStyle() {\n this.isActionsheetStyle.set(this.adaptivityEnabled() && this.#platform.is('SM'));\n }\n\n /** Returns the display text of an item using the `textField` mapping. */\n protected getItemText(item: AXLookupItem): string {\n return String(item?.[this.textField()] ?? '');\n }\n\n /** Stable unique key for selected chips — avoids NG0955 and remounts on reorder/remove. */\n protected trackSelectedKey(item: AXLookupItem): unknown {\n const key = item?.[this.valueField()];\n return key != null ? key : item;\n }\n\n /**\n * Opens (editable trigger) or toggles the popup on trigger click.\n */\n protected onTriggerClick() {\n if (this.disabled() || this.readonly()) {\n return;\n }\n if (this.isEditableTrigger()) {\n this.expanded.set(true);\n queueMicrotask(() => this.triggerSearchInput()?.nativeElement.focus());\n return;\n }\n this.expanded.update((open) => !open);\n if (!this.expanded()) {\n return;\n }\n queueMicrotask(() => this.focusListFirst());\n }\n\n /**\n * Focuses the lookup trigger input.\n */\n focus(options?: FocusOptions): void {\n if (this.disabled()) {\n return;\n }\n this.triggerSearchInput()?.nativeElement.focus(options);\n }\n\n /**\n * Handles keyboard interaction on the trigger input.\n */\n protected onTriggerKeydown(e: KeyboardEvent) {\n if (this.disabled() || this.readonly()) {\n return;\n }\n\n if (e.key === 'Escape') {\n this.close();\n return;\n }\n\n if (e.key === 'ArrowDown') {\n e.preventDefault();\n this.expanded.set(true);\n queueMicrotask(() => this.focusListFirst());\n return;\n }\n\n if (!this.isEditableTrigger() && (e.key === 'Enter' || e.key === ' ')) {\n e.preventDefault();\n this.expanded.update((open) => !open);\n if (this.expanded()) {\n queueMicrotask(() => this.focusListFirst());\n }\n }\n }\n\n /** Blocks typing when the trigger is not editable (keeps Tab / keyboard open working). */\n protected onBeforeInput(event: Event) {\n if (!this.isEditableTrigger() || this.readonly()) {\n event.preventDefault();\n }\n }\n\n /**\n * Returns focus to the trigger input when list navigation requests it.\n */\n protected onListNavigateOut(_reason: 'up' | 'typeahead') {\n this.triggerSearchInput()?.nativeElement.focus();\n }\n\n protected focusListFirst() {\n const tryFocus = (attempt = 0) => {\n const list = this.listView();\n if (list) {\n list.focusFirst();\n return;\n }\n if (attempt < 5) {\n setTimeout(() => tryFocus(attempt + 1), 16);\n }\n };\n tryFocus();\n }\n\n /**\n * Keeps the expanded state in sync when the popover closes (e.g. click outside),\n * and clears any applied search filter.\n */\n protected onPopoverClosed() {\n this.expanded.set(false);\n this.searchText.set(this.isMultiple() ? '' : this.displayText());\n if (this.#filterApplied) {\n this.#filterApplied = false;\n const source = this.resolvedDataSource();\n source.clearFilter();\n source.refresh();\n }\n }\n\n /**\n * Closes the popup.\n */\n close() {\n this.expanded.set(false);\n }\n\n /**\n * Closes the popup (alias for {@link close}, required by `AXClosableComponent`).\n */\n closeAll() {\n this.close();\n }\n\n /**\n * Opens the popup.\n */\n open() {\n if (this.disabled() || this.readonly()) {\n return;\n }\n this.expanded.set(true);\n }\n\n /**\n * Handles typing in the editable trigger input.\n */\n protected onTriggerSearchInput(text: string) {\n if (!this.isEditableTrigger()) {\n return;\n }\n this.searchText.set(text);\n this.expanded.set(true);\n this.#applyFilterDebounced(text);\n }\n\n /** Placeholder for the editable trigger search input. */\n protected triggerSearchPlaceholder = computed(() => {\n if (this.mode() === 'multi-select' && this.selectedItems().length > 0) {\n return this.searchPlaceholder();\n }\n return this.placeholder();\n });\n\n /**\n * Commits a single pick (drop-down-list, drop-down-tree, multi-column) and closes the popup.\n */\n protected handleSinglePick(e: AXLookupItemClickEvent) {\n this.#emitItemClick(e.item);\n this.#emitItemSelected(e.item);\n this.#itemsCache.set(e.value, e.item);\n this.selectedItems.set([e.item]);\n this.searchText.set(this.getItemText(e.item));\n this.#isUserInteraction = true;\n this.value.set(e.value);\n this.close();\n }\n\n /**\n * Toggles an item in the multi-select list; the popup stays open.\n * Clears the trigger search so the full list returns (select-box-like).\n */\n protected handleMultiToggle(e: AXLookupItemClickEvent) {\n this.#emitItemClick(e.item);\n this.#itemsCache.set(e.value, e.item);\n const current = this.selectedValues();\n const exists = current.some((v) => v == e.value);\n if (!exists) {\n this.#emitItemSelected(e.item);\n }\n const next = exists ? current.filter((v) => !(v == e.value)) : [...current, e.value];\n this.#isUserInteraction = true;\n this.value.set(next);\n if (this.isEditableTrigger() && this.searchText()) {\n this.searchText.set('');\n this.#applyFilterDebounced('');\n }\n }\n\n /**\n * Applies the multi-select-tree selection to the value; the popup stays open.\n */\n protected handleTreeSelectionChange(e: AXLookupTreeSelectionEvent) {\n const prev = new Set(this.selectedValues().map((v) => String(v)));\n const newlySelected = e.nodes.filter((node) => !prev.has(String(node[this.valueField()])));\n if (newlySelected.length > 0) {\n this.#emitItemSelected(newlySelected[0]);\n }\n for (const node of e.nodes) {\n this.#itemsCache.set(String(node[this.valueField()]), node);\n }\n this.#isUserInteraction = true;\n this.value.set([...e.ids]);\n }\n\n /** Forwards native focus from the trigger input. */\n protected emitOnFocus(e: FocusEvent) {\n this.onFocus.emit({\n component: this,\n htmlElement: this.nativeElement,\n nativeEvent: e,\n });\n }\n\n /** Forwards native blur from the trigger input. */\n protected emitOnBlur(e: FocusEvent) {\n this.onBlur.emit({\n component: this,\n htmlElement: this.nativeElement,\n nativeEvent: e,\n });\n }\n\n #emitItemClick(item: AXLookupItem) {\n this.onItemClick.emit({\n component: this,\n item,\n htmlElement: this.nativeElement,\n isUserInteraction: true,\n });\n }\n\n #emitItemSelected(item: AXLookupItem) {\n this.onItemSelected.emit({\n component: this,\n item,\n htmlElement: this.nativeElement,\n isUserInteraction: true,\n });\n }\n\n /**\n * Removes a single chip from the multi selection.\n */\n protected removeChip(event: Event, item: AXLookupItem) {\n event.stopPropagation();\n if (this.disabled() || this.readonly()) {\n return;\n }\n const value = item?.[this.valueField()];\n this.#isUserInteraction = true;\n this.value.set(this.selectedValues().filter((v) => !(v == value)));\n }\n\n /**\n * Seeds the item cache with known items so matching `value` keys resolve without `byKey`.\n * Useful after an async parent-entity load when `valueItems` is not bound.\n *\n * @param items - Full items that include `valueField` (and ideally `textField`) properties.\n */\n seedItems(items: AXLookupItem[]): void {\n this.#seedItemsCache(items);\n void this.#resolveSelectedItems(this.selectedValues());\n }\n\n /**\n * Clears the whole selection.\n * Sets `null` in single modes and `[]` in multi modes. Used by projected `ax-clear-button`.\n *\n * @param isUserInteraction - Whether the clear was triggered by the user.\n */\n reset(isUserInteraction = false): void {\n if (this.disabled() || this.readonly()) {\n return;\n }\n const next = this.isMultiple() ? [] : null;\n const current = this.value();\n if (this.isMultiple()) {\n if (Array.isArray(current) && current.length === 0) {\n return;\n }\n } else if (current == null) {\n return;\n }\n this.#isUserInteraction = isUserInteraction;\n this.value.set(next);\n if (this.isEditableTrigger() && this.searchText()) {\n this.searchText.set('');\n this.#applyFilterDebounced('');\n }\n }\n\n #applyFilterDebounced(text: string) {\n if (this.#searchDebounce) {\n clearTimeout(this.#searchDebounce);\n }\n this.#searchDebounce = setTimeout(() => {\n const source = this.resolvedDataSource();\n const query = text?.trim() ?? '';\n if (query) {\n source.filter({ field: this.textField(), value: query, operator: { type: 'contains' } });\n this.#filterApplied = true;\n } else {\n source.clearFilter();\n }\n source.refresh();\n }, 300);\n }\n\n async #resolveSelectedItems(values: unknown[]) {\n const revision = ++this.#resolveRevision;\n const resolved = await Promise.all(values.map((value) => Promise.resolve(this.#resolveItem(value))));\n if (revision !== this.#resolveRevision) {\n return;\n }\n const items = resolved.filter((item): item is AXLookupItem => item != null);\n this.selectedItems.set(items);\n if (this.#selectionInitialized) {\n this.onSelectionChanged.emit({\n component: this,\n htmlElement: this.nativeElement,\n isUserInteraction: this.#isUserInteraction,\n items,\n value: this.value(),\n });\n }\n this.#selectionInitialized = true;\n }\n\n #seedItemsCache(items: AXLookupItem[]) {\n if (!items?.length) {\n return;\n }\n const field = this.valueField();\n for (const item of items) {\n const key = item?.[field];\n if (key == null) {\n continue;\n }\n this.#itemsCache.set(key, item);\n this.#itemsCache.set(String(key), item);\n }\n }\n\n #resolveItem(value: unknown): AXLookupItem | Promise<AXLookupItem | null> | null {\n const cached = this.#itemsCache.get(value) ?? this.#itemsCache.get(String(value));\n if (cached) {\n return cached;\n }\n\n if (this.isTreeMode()) {\n const nodes = this.treeDataSource();\n if (Array.isArray(nodes)) {\n const found = this.#findTreeNode(nodes, value);\n if (found) {\n this.#itemsCache.set(value, found);\n return found;\n }\n }\n return this.#fallbackItem(value);\n }\n\n const source = this.resolvedDataSource();\n const result = source.find(value);\n if (result == null) {\n return this.#fallbackItem(value);\n }\n if (result instanceof Promise) {\n return result.then((item) => {\n if (item) {\n this.#itemsCache.set(value, item);\n return item;\n }\n return this.#fallbackItem(value);\n });\n }\n this.#itemsCache.set(value, result);\n return result;\n }\n\n #fallbackItem(value: unknown): AXLookupItem {\n return { [this.valueField()]: value, [this.textField()]: String(value) };\n }\n\n #findTreeNode(nodes: AXLookupItem[], value: unknown): AXLookupItem | null {\n for (const node of nodes) {\n if (String(node[this.valueField()]) === String(value)) {\n return node;\n }\n const children = node['children'];\n if (Array.isArray(children)) {\n const found = this.#findTreeNode(children as AXLookupItem[], value);\n if (found) {\n return found;\n }\n }\n }\n return null;\n }\n\n #valuesEqual(a: unknown, b: unknown): boolean {\n if (a === b) {\n return true;\n }\n if (Array.isArray(a) && Array.isArray(b)) {\n return a.length === b.length && a.every((item, index) => item == b[index]);\n }\n return false;\n }\n\n /** Emits onValueChanged when the value actually changes (skips the initial value). */\n #emitValueChanged(value: unknown | unknown[] | null) {\n const previous = this.#lastValue;\n this.#lastValue = value;\n\n if (previous === undefined || this.#valuesEqual(previous, value)) {\n return;\n }\n\n this.onValueChanged.emit({\n component: this,\n htmlElement: this.nativeElement,\n name: 'value',\n value,\n oldValue: previous,\n isUserInteraction: this.#isUserInteraction,\n });\n this.#isUserInteraction = false;\n }\n\n /** Emits onOpened/onClosed when the expanded state actually changes (skips the initial state). */\n #emitOpenedOrClosed(expanded: boolean) {\n const previous = this.#lastExpanded;\n this.#lastExpanded = expanded;\n\n if (previous === undefined || previous === expanded) {\n return;\n }\n\n const event: AXEvent = {\n component: this,\n htmlElement: this.nativeElement,\n isUserInteraction: true,\n };\n expanded ? this.onOpened.emit(event) : this.onClosed.emit(event);\n }\n}\n","<div\n #origin\n class=\"ax-editor-container ax-{{ look() }} ax-default\"\n [class.ax-lookup-trigger]=\"!isEditableTrigger()\"\n [class.ax-lookup-trigger-multiple]=\"isMultiple()\"\n [class.ax-state-disabled]=\"disabled()\"\n [class.ax-state-readonly]=\"readonly()\"\n (click)=\"onTriggerClick()\"\n>\n <ng-content select=\"ax-prefix\"></ng-content>\n\n @if (isMultiple()) {\n <div class=\"ax-lookup-chips\">\n @for (item of selectedItems(); track trackSelectedKey(item)) {\n <ax-chips class=\"ax-sm\" color=\"primary\" look=\"twotone\" [text]=\"selectedTemplate() ? '' : getItemText(item)\">\n @if (selectedTemplate()) {\n <ax-prefix>\n <ng-container\n [ngTemplateOutlet]=\"selectedTemplate()!\"\n [ngTemplateOutletContext]=\"{ $implicit: item }\"\n />\n </ax-prefix>\n }\n @if (!disabled() && !readonly()) {\n <ax-suffix>\n <button type=\"button\" tabindex=\"-1\" (click)=\"removeChip($event, item)\">\n <span class=\"ax-icon ax-icon-close\"></span>\n </button>\n </ax-suffix>\n }\n </ax-chips>\n }\n <input\n #triggerSearchInput\n type=\"text\"\n class=\"ax-input ax-lookup-trigger-search\"\n [class.ax-lookup-select-input]=\"!isEditableTrigger()\"\n [placeholder]=\"triggerSearchPlaceholder()\"\n [disabled]=\"disabled()\"\n [readonly]=\"readonly() || !isEditableTrigger()\"\n [attr.inputmode]=\"isEditableTrigger() ? null : 'none'\"\n [value]=\"searchText()\"\n (input)=\"onTriggerSearchInput($any($event.target).value)\"\n (keydown)=\"onTriggerKeydown($event)\"\n (beforeinput)=\"onBeforeInput($event)\"\n (focus)=\"emitOnFocus($event)\"\n (blur)=\"emitOnBlur($event)\"\n />\n </div>\n } @else {\n <div class=\"ax-lookup-value\">\n @if (showSelectedTemplate()) {\n <div class=\"ax-lookup-selected-content\" aria-hidden=\"true\">\n <ng-container\n [ngTemplateOutlet]=\"selectedTemplate()!\"\n [ngTemplateOutletContext]=\"{ $implicit: selectedItems()[0] }\"\n />\n </div>\n }\n <input\n #triggerSearchInput\n type=\"text\"\n class=\"ax-input\"\n [class.ax-lookup-select-input]=\"!isEditableTrigger()\"\n [class.ax-lookup-input-overlay]=\"showSelectedTemplate()\"\n [placeholder]=\"placeholder()\"\n [disabled]=\"disabled()\"\n [readonly]=\"readonly() || !isEditableTrigger()\"\n [attr.inputmode]=\"isEditableTrigger() ? null : 'none'\"\n [value]=\"searchText()\"\n (input)=\"onTriggerSearchInput($any($event.target).value)\"\n (keydown)=\"onTriggerKeydown($event)\"\n (beforeinput)=\"onBeforeInput($event)\"\n (focus)=\"emitOnFocus($event)\"\n (blur)=\"emitOnBlur($event)\"\n />\n </div>\n }\n\n @if (selectedValues().length > 0 && !disabled() && !readonly()) {\n <ng-content select=\"ax-clear-button\"></ng-content>\n }\n\n <button\n type=\"button\"\n class=\"ax-general-button-icon\"\n tabindex=\"-1\"\n [disabled]=\"disabled() || readonly()\"\n >\n <span\n class=\"ax-icon\"\n [class.ax-icon-chevron-down]=\"!expanded()\"\n [class.ax-icon-chevron-up]=\"expanded()\"\n ></span>\n </button>\n <ng-content select=\"ax-suffix\"></ng-content>\n</div>\n\n<ax-popover\n [target]=\"origin\"\n [openOn]=\"'manual'\"\n [closeOn]=\"'clickOut'\"\n [placement]=\"'bottom-start'\"\n [width]=\"isActionsheetStyle() ? '100%' : origin.offsetWidth + 'px'\"\n [adaptivityEnabled]=\"isActionsheetStyle()\"\n [disabled]=\"disabled() || readonly()\"\n (onClosed)=\"onPopoverClosed()\"\n>\n <div class=\"ax-lookup-popup\" [class.ax-is-actionsheet]=\"isActionsheetStyle()\" [class.ax-is-alternate]=\"alternate()\" (keydown.escape)=\"close()\">\n @if (isActionsheetStyle()) {\n <ax-header class=\"ax-solid\">\n <ax-title>{{ caption() || placeholder() || ('@acorex:selectbox.popover.title' | translate | async) }}</ax-title>\n <ax-close-button [icon]=\"isMultiple() ? 'ax-icon ax-icon-check' : 'ax-icon ax-icon-close'\"></ax-close-button>\n </ax-header>\n }\n <ng-content select=\"ax-header\"></ng-content>\n @if (expanded()) {\n @switch (mode()) {\n @case ('drop-down-list') {\n <ax-lookup-drop-down-list\n [dataSource]=\"resolvedDataSource()\"\n [valueField]=\"valueField()\"\n [textField]=\"textField()\"\n [disabledField]=\"disabledField()\"\n [selectedValues]=\"selectedValues()\"\n [itemHeight]=\"itemHeight()\"\n [maxVisibleItems]=\"maxVisibleItems()\"\n [itemTemplate]=\"itemTemplate()\"\n [emptyTemplate]=\"emptyTemplate()\"\n [loadingTemplate]=\"loadingTemplate()\"\n [alternate]=\"alternate()\"\n (itemClick)=\"handleSinglePick($event)\"\n (navigateOut)=\"onListNavigateOut($event)\"\n />\n }\n @case ('multi-select') {\n <ax-lookup-multi-select\n [dataSource]=\"resolvedDataSource()\"\n [valueField]=\"valueField()\"\n [textField]=\"textField()\"\n [disabledField]=\"disabledField()\"\n [selectedValues]=\"selectedValues()\"\n [itemHeight]=\"itemHeight()\"\n [maxVisibleItems]=\"maxVisibleItems()\"\n [itemTemplate]=\"itemTemplate()\"\n [emptyTemplate]=\"emptyTemplate()\"\n [loadingTemplate]=\"loadingTemplate()\"\n [alternate]=\"alternate()\"\n (itemClick)=\"handleMultiToggle($event)\"\n (navigateOut)=\"onListNavigateOut($event)\"\n />\n }\n @case ('drop-down-tree') {\n <ax-lookup-drop-down-tree\n [dataSource]=\"treeDataSource()!\"\n [valueField]=\"valueField()\"\n [textField]=\"textField()\"\n [disabledField]=\"disabledField()\"\n [selectedValues]=\"selectedValues()\"\n [nodeTemplate]=\"$any(itemTemplate())\"\n (itemClick)=\"handleSinglePick($event)\"\n />\n }\n @case ('multi-select-tree') {\n <ax-lookup-multi-select-tree\n [dataSource]=\"treeDataSource()!\"\n [valueField]=\"valueField()\"\n [textField]=\"textField()\"\n [disabledField]=\"disabledField()\"\n [selectedValues]=\"selectedValues()\"\n [selectionBehavior]=\"treeSelectionBehavior()\"\n [nodeTemplate]=\"$any(itemTemplate())\"\n (selectionChange)=\"handleTreeSelectionChange($event)\"\n />\n }\n @case ('multi-column') {\n <ax-lookup-multi-column\n [dataSource]=\"resolvedDataSource()\"\n [valueField]=\"valueField()\"\n [textField]=\"textField()\"\n [disabledField]=\"disabledField()\"\n [selectedValues]=\"selectedValues()\"\n [itemHeight]=\"itemHeight()\"\n [maxVisibleItems]=\"maxVisibleItems()\"\n [columns]=\"columns()\"\n [itemTemplate]=\"itemTemplate()\"\n [emptyTemplate]=\"emptyTemplate()\"\n [loadingTemplate]=\"loadingTemplate()\"\n [alternate]=\"alternate()\"\n (itemClick)=\"handleSinglePick($event)\"\n />\n }\n }\n }\n <ng-content select=\"ax-footer\"></ng-content>\n </div>\n</ax-popover>\n<ng-content select=\"ax-validation-rule\"></ng-content>\n","import { NgModule } from '@angular/core';\nimport { AXLookupComponent } from './lookup.component';\nimport { AXLookupDropDownListComponent } from './views/lookup-drop-down-list.component';\nimport { AXLookupDropDownTreeComponent } from './views/lookup-drop-down-tree.component';\nimport { AXLookupMultiColumnComponent } from './views/lookup-multi-column.component';\nimport { AXLookupMultiSelectTreeComponent } from './views/lookup-multi-select-tree.component';\nimport { AXLookupMultiSelectComponent } from './views/lookup-multi-select.component';\n\n@NgModule({\n imports: [\n AXLookupComponent,\n AXLookupDropDownListComponent,\n AXLookupMultiSelectComponent,\n AXLookupDropDownTreeComponent,\n AXLookupMultiSelectTreeComponent,\n AXLookupMultiColumnComponent,\n ],\n exports: [\n AXLookupComponent,\n AXLookupDropDownListComponent,\n AXLookupMultiSelectComponent,\n AXLookupDropDownTreeComponent,\n AXLookupMultiSelectTreeComponent,\n AXLookupMultiColumnComponent,\n ],\n})\nexport class AXLookupModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i2","i1"],"mappings":"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"}
package/package.json CHANGED
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "name": "@acorex/components",
3
- "version": "22.1.0-next.5",
3
+ "version": "22.1.0-next.6",
4
4
  "peerDependencies": {
5
- "@acorex/core": "22.1.0-next.5",
6
- "@acorex/cdk": "22.1.0-next.5",
5
+ "@acorex/core": "22.1.0-next.6",
6
+ "@acorex/cdk": "22.1.0-next.6",
7
7
  "polytype": ">=0.17.0",
8
8
  "angular-imask": ">=7.6.1",
9
9
  "imask": ">=7.6.1",
@@ -127,6 +127,11 @@ declare abstract class AXLookupListViewBase {
127
127
  protected isSelected(item: AXLookupItem): boolean;
128
128
  protected isDisabled(item: AXLookupItem): boolean;
129
129
  protected handleItemClick(item: AXLookupItem | null | undefined): void;
130
+ /**
131
+ * Commit on mousedown (not click) so a searchable trigger blur cannot destroy the
132
+ * list before the pick is applied.
133
+ */
134
+ protected handleItemMouseDown(event: Event, item: AXLookupItem | null | undefined): void;
130
135
  protected handleItemKeypress(e: AXHtmlEvent<KeyboardEvent>, item: AXLookupItem | null | undefined): void;
131
136
  protected handleListKeypress(e: AXHtmlEvent<KeyboardEvent>): void;
132
137
  protected activateNavItem(nav: AXListNavigationDirective, item: AXListNavigationItemDirective): void;
@@ -624,6 +629,7 @@ declare class AXLookupMultiColumnComponent {
624
629
  protected resolveRowCssClass: (row: unknown) => string;
625
630
  protected handleRowClick(event: AXDataTableRowClick): void;
626
631
  protected handleItemClick(item: AXLookupItem | null | undefined): void;
632
+ protected handleItemMouseDown(event: Event, item: AXLookupItem | null | undefined): void;
627
633
  protected isSelected(item: AXLookupItem): boolean;
628
634
  protected isDisabled(item: AXLookupItem): boolean;
629
635
  private getValue;