@acorex/components 22.0.0-next.9 → 22.1.0-next.1

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.
Files changed (88) hide show
  1. package/combo-box/README.md +31 -0
  2. package/fesm2022/acorex-components-action-sheet.mjs +1 -0
  3. package/fesm2022/acorex-components-action-sheet.mjs.map +1 -1
  4. package/fesm2022/acorex-components-button.mjs +2 -2
  5. package/fesm2022/acorex-components-button.mjs.map +1 -1
  6. package/fesm2022/acorex-components-calendar.mjs +10 -12
  7. package/fesm2022/acorex-components-calendar.mjs.map +1 -1
  8. package/fesm2022/acorex-components-combo-box.mjs +460 -0
  9. package/fesm2022/acorex-components-combo-box.mjs.map +1 -0
  10. package/fesm2022/acorex-components-conversation-composer-action-choice-dialog.component-DCcRJYfF.mjs +50 -0
  11. package/fesm2022/acorex-components-conversation-composer-action-choice-dialog.component-DCcRJYfF.mjs.map +1 -0
  12. package/fesm2022/{acorex-components-conversation-open-composer-picker-for-files-Hh5Oyp3p.mjs → acorex-components-conversation-open-composer-picker-for-files-BuNEjswI.mjs} +2 -2
  13. package/fesm2022/{acorex-components-conversation-open-composer-picker-for-files-Hh5Oyp3p.mjs.map → acorex-components-conversation-open-composer-picker-for-files-BuNEjswI.mjs.map} +1 -1
  14. package/fesm2022/acorex-components-conversation.mjs +2034 -7467
  15. package/fesm2022/acorex-components-conversation.mjs.map +1 -1
  16. package/fesm2022/acorex-components-data-table.mjs +135 -45
  17. package/fesm2022/acorex-components-data-table.mjs.map +1 -1
  18. package/fesm2022/acorex-components-datetime-box.mjs +14 -16
  19. package/fesm2022/acorex-components-datetime-box.mjs.map +1 -1
  20. package/fesm2022/acorex-components-datetime-input.mjs +61 -32
  21. package/fesm2022/acorex-components-datetime-input.mjs.map +1 -1
  22. package/fesm2022/acorex-components-decorators.mjs +19 -3
  23. package/fesm2022/acorex-components-decorators.mjs.map +1 -1
  24. package/fesm2022/acorex-components-dialog.mjs +7 -4
  25. package/fesm2022/acorex-components-dialog.mjs.map +1 -1
  26. package/fesm2022/acorex-components-drawer.mjs +2 -2
  27. package/fesm2022/acorex-components-drawer.mjs.map +1 -1
  28. package/fesm2022/acorex-components-dropdown.mjs +4 -4
  29. package/fesm2022/acorex-components-dropdown.mjs.map +1 -1
  30. package/fesm2022/acorex-components-fab.mjs +2 -2
  31. package/fesm2022/acorex-components-fab.mjs.map +1 -1
  32. package/fesm2022/acorex-components-file-viewer.mjs +27 -27
  33. package/fesm2022/acorex-components-file-viewer.mjs.map +1 -1
  34. package/fesm2022/acorex-components-grid-layout-builder.mjs +238 -36
  35. package/fesm2022/acorex-components-grid-layout-builder.mjs.map +1 -1
  36. package/fesm2022/acorex-components-list.mjs +2 -2
  37. package/fesm2022/acorex-components-list.mjs.map +1 -1
  38. package/fesm2022/acorex-components-lookup.mjs +1839 -0
  39. package/fesm2022/acorex-components-lookup.mjs.map +1 -0
  40. package/fesm2022/acorex-components-map.mjs +2 -2
  41. package/fesm2022/acorex-components-map.mjs.map +1 -1
  42. package/fesm2022/acorex-components-menu.mjs +231 -74
  43. package/fesm2022/acorex-components-menu.mjs.map +1 -1
  44. package/fesm2022/acorex-components-notification.mjs +9 -2
  45. package/fesm2022/acorex-components-notification.mjs.map +1 -1
  46. package/fesm2022/acorex-components-number-box.mjs +30 -29
  47. package/fesm2022/acorex-components-number-box.mjs.map +1 -1
  48. package/fesm2022/acorex-components-password-box.mjs +1 -1
  49. package/fesm2022/acorex-components-password-box.mjs.map +1 -1
  50. package/fesm2022/acorex-components-popover.mjs +7 -6
  51. package/fesm2022/acorex-components-popover.mjs.map +1 -1
  52. package/fesm2022/acorex-components-popup.mjs +4 -2
  53. package/fesm2022/acorex-components-popup.mjs.map +1 -1
  54. package/fesm2022/acorex-components-scheduler.mjs +12 -22
  55. package/fesm2022/acorex-components-scheduler.mjs.map +1 -1
  56. package/fesm2022/acorex-components-select-box.mjs +15 -4
  57. package/fesm2022/acorex-components-select-box.mjs.map +1 -1
  58. package/fesm2022/acorex-components-tag-box.mjs +2 -2
  59. package/fesm2022/acorex-components-tag-box.mjs.map +1 -1
  60. package/fesm2022/acorex-components-text-area.mjs +2 -2
  61. package/fesm2022/acorex-components-text-area.mjs.map +1 -1
  62. package/fesm2022/acorex-components-toast.mjs +9 -2
  63. package/fesm2022/acorex-components-toast.mjs.map +1 -1
  64. package/fesm2022/acorex-components-tooltip.mjs +2 -2
  65. package/fesm2022/acorex-components-tooltip.mjs.map +1 -1
  66. package/lookup/README.md +52 -0
  67. package/package.json +11 -3
  68. package/select-box/README.md +5 -0
  69. package/types/acorex-components-action-sheet.d.ts +9 -1
  70. package/types/acorex-components-combo-box.d.ts +204 -0
  71. package/types/acorex-components-conversation.d.ts +317 -94
  72. package/types/acorex-components-data-table.d.ts +35 -3
  73. package/types/acorex-components-datetime-box.d.ts +2 -0
  74. package/types/acorex-components-datetime-input.d.ts +24 -5
  75. package/types/acorex-components-decorators.d.ts +1 -0
  76. package/types/acorex-components-dialog.d.ts +9 -0
  77. package/types/acorex-components-grid-layout-builder.d.ts +34 -2
  78. package/types/acorex-components-lookup.d.ts +624 -0
  79. package/types/acorex-components-menu.d.ts +28 -4
  80. package/types/acorex-components-notification.d.ts +11 -1
  81. package/types/acorex-components-number-box.d.ts +3 -1
  82. package/types/acorex-components-popover.d.ts +4 -1
  83. package/types/acorex-components-popup.d.ts +9 -1
  84. package/types/acorex-components-scheduler.d.ts +2 -4
  85. package/types/acorex-components-select-box.d.ts +8 -2
  86. package/types/acorex-components-toast.d.ts +10 -1
  87. package/fesm2022/acorex-components-conversation-composer-action-choice-dialog.component-CNHiM1Sp.mjs +0 -106
  88. package/fesm2022/acorex-components-conversation-composer-action-choice-dialog.component-CNHiM1Sp.mjs.map +0 -1
@@ -0,0 +1,624 @@
1
+ import * as _angular_core from '@angular/core';
2
+ import { TemplateRef, ElementRef } from '@angular/core';
3
+ import { AXEvent, AXDataSource, AXListDataSource, AXHtmlEvent, NXComponent, AXStyleLookType, AXValueChangedEvent, AXFocusEvent, AXItemClickEvent, AXItemSelectedEvent } from '@acorex/cdk/common';
4
+ import { AXPopoverComponent } from '@acorex/components/popover';
5
+ import { AXTreeViewNode, AXTreeViewDataSource, AXTreeViewSelectionBehavior, AXTreeViewItemTemplateContext, AXTreeViewSelectionChangeEvent } from '@acorex/components/tree-view';
6
+ import { FormValueControl } from '@angular/forms/signals';
7
+ import { AXListNavigationDirective, AXListNavigationItemDirective } from '@acorex/cdk/list-navigation';
8
+ import { CdkVirtualScrollViewport } from '@angular/cdk/scrolling';
9
+ import { AXDataTableComponent, AXDataTableRowClick } from '@acorex/components/data-table';
10
+
11
+ /**
12
+ * The lookup rendering mode. Each mode is rendered by its own internal mini component:
13
+ *
14
+ * - `drop-down-list` — a predefined list of options for picking single values.
15
+ * - `multi-select` — a predefined list of options for multiple item selection.
16
+ * - `drop-down-tree` — a tree-like structure for single item selection.
17
+ * - `multi-select-tree` — a tree-like structure for multiple item selection.
18
+ * - `multi-column` — a table-structured list for single selection.
19
+ */
20
+ type AXLookupMode = 'drop-down-list' | 'multi-select' | 'drop-down-tree' | 'multi-select-tree' | 'multi-column';
21
+ /**
22
+ * A column definition for the `multi-column` lookup mode (rendered via `ax-data-table`).
23
+ *
24
+ * - `field` — the item property rendered in this column (`ax-text-column` `dataField`).
25
+ * - `title` — the header text of the column (`ax-text-column` `caption`).
26
+ * - `width` — optional column width (`120px`, `20%`, or `auto`). Defaults to `auto`.
27
+ */
28
+ interface AXLookupColumn {
29
+ field: string;
30
+ title: string;
31
+ width?: string;
32
+ }
33
+ /**
34
+ * A lookup item. Items are plain records; the lookup reads them through
35
+ * `valueField` / `textField` / `disabledField` mappings.
36
+ */
37
+ type AXLookupItem = Record<string, unknown>;
38
+ /**
39
+ * Internal event emitted by the mini view components when the user picks or toggles an item.
40
+ */
41
+ interface AXLookupItemClickEvent {
42
+ item: AXLookupItem;
43
+ value: unknown;
44
+ }
45
+ /**
46
+ * Emitted by `ax-lookup` when the selection changes, carrying the resolved selected items.
47
+ */
48
+ interface AXLookupSelectionChangedEvent extends AXEvent {
49
+ items: AXLookupItem[];
50
+ value: unknown | unknown[] | null;
51
+ }
52
+
53
+ /**
54
+ * Shared `AXDataSource` + CDK virtual scroll plumbing for the list-based lookup views
55
+ * (`ax-lookup-drop-down-list`, `ax-lookup-multi-select`).
56
+ */
57
+ declare abstract class AXLookupListViewBase {
58
+ #private;
59
+ /**
60
+ * The datasource providing the items (paged, remote-capable).
61
+ */
62
+ dataSource: _angular_core.InputSignal<AXDataSource<AXLookupItem>>;
63
+ /**
64
+ * The item property used as the selection value.
65
+ */
66
+ valueField: _angular_core.InputSignal<string>;
67
+ /**
68
+ * The item property used as the display text.
69
+ */
70
+ textField: _angular_core.InputSignal<string>;
71
+ /**
72
+ * The item property marking an item as disabled.
73
+ */
74
+ disabledField: _angular_core.InputSignal<string>;
75
+ /**
76
+ * Currently selected values (always an array, even for single selection).
77
+ */
78
+ selectedValues: _angular_core.InputSignal<unknown[]>;
79
+ /**
80
+ * The fixed row height in pixels used by the virtual scroll viewport.
81
+ */
82
+ itemHeight: _angular_core.InputSignal<number>;
83
+ /**
84
+ * The maximum number of rows visible before the popup scrolls.
85
+ */
86
+ maxVisibleItems: _angular_core.InputSignal<number>;
87
+ /**
88
+ * Custom template rendered for each item. Context: `$implicit` is the item.
89
+ */
90
+ itemTemplate: _angular_core.InputSignal<TemplateRef<unknown>>;
91
+ /**
92
+ * Custom template rendered when the datasource has no items.
93
+ */
94
+ emptyTemplate: _angular_core.InputSignal<TemplateRef<unknown>>;
95
+ /**
96
+ * Custom template rendered for rows whose page is still loading.
97
+ */
98
+ loadingTemplate: _angular_core.InputSignal<TemplateRef<unknown>>;
99
+ /**
100
+ * When `true`, list rows use alternating background colors for easier scanning.
101
+ */
102
+ alternate: _angular_core.InputSignal<boolean>;
103
+ /**
104
+ * Emitted when the user picks (or toggles) an item.
105
+ */
106
+ itemClick: _angular_core.OutputEmitterRef<AXLookupItemClickEvent>;
107
+ /**
108
+ * Emitted when keyboard navigation should leave the list (e.g. ArrowUp on the first
109
+ * item, or a printable key that should return focus to the trigger search input).
110
+ */
111
+ navigateOut: _angular_core.OutputEmitterRef<"up" | "typeahead">;
112
+ /** CDK virtual scroll adapter over the datasource. */
113
+ protected listDataSource: _angular_core.WritableSignal<AXListDataSource<AXLookupItem>>;
114
+ protected totalCount: _angular_core.WritableSignal<number>;
115
+ protected isLoading: _angular_core.WritableSignal<boolean>;
116
+ protected isEmpty: _angular_core.Signal<boolean>;
117
+ /** Viewport height so the popup grows with the items up to `maxVisibleItems`. */
118
+ protected viewportHeight: _angular_core.Signal<number>;
119
+ protected viewportRef: _angular_core.Signal<CdkVirtualScrollViewport>;
120
+ protected listNavigation: _angular_core.Signal<AXListNavigationDirective>;
121
+ protected navItems: _angular_core.Signal<readonly AXListNavigationItemDirective[]>;
122
+ constructor();
123
+ /** Moves keyboard focus to the first rendered list option. */
124
+ focusFirst(): void;
125
+ protected getValue(item: AXLookupItem): unknown;
126
+ protected getText(item: AXLookupItem): string;
127
+ protected isSelected(item: AXLookupItem): boolean;
128
+ protected isDisabled(item: AXLookupItem): boolean;
129
+ protected handleItemClick(item: AXLookupItem | null | undefined): void;
130
+ protected handleItemKeypress(e: AXHtmlEvent<KeyboardEvent>, item: AXLookupItem | null | undefined): void;
131
+ protected handleListKeypress(e: AXHtmlEvent<KeyboardEvent>): void;
132
+ protected activateNavItem(nav: AXListNavigationDirective, item: AXListNavigationItemDirective): void;
133
+ protected trackByIndex: (index: number) => number;
134
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXLookupListViewBase, never>;
135
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<AXLookupListViewBase, never, never, { "dataSource": { "alias": "dataSource"; "required": true; "isSignal": true; }; "valueField": { "alias": "valueField"; "required": false; "isSignal": true; }; "textField": { "alias": "textField"; "required": false; "isSignal": true; }; "disabledField": { "alias": "disabledField"; "required": false; "isSignal": true; }; "selectedValues": { "alias": "selectedValues"; "required": false; "isSignal": true; }; "itemHeight": { "alias": "itemHeight"; "required": false; "isSignal": true; }; "maxVisibleItems": { "alias": "maxVisibleItems"; "required": false; "isSignal": true; }; "itemTemplate": { "alias": "itemTemplate"; "required": false; "isSignal": true; }; "emptyTemplate": { "alias": "emptyTemplate"; "required": false; "isSignal": true; }; "loadingTemplate": { "alias": "loadingTemplate"; "required": false; "isSignal": true; }; "alternate": { "alias": "alternate"; "required": false; "isSignal": true; }; }, { "itemClick": "itemClick"; "navigateOut": "navigateOut"; }, never, never, true, never>;
136
+ }
137
+
138
+ /**
139
+ * Selection payload of the multi-select tree view.
140
+ */
141
+ interface AXLookupTreeSelectionEvent {
142
+ ids: string[];
143
+ nodes: AXTreeViewNode[];
144
+ }
145
+ /**
146
+ * Internal mini component for the `multi-select-tree` lookup mode:
147
+ * a predefined list rendered in a tree-like structure for multiple item selection.
148
+ *
149
+ * @category Components
150
+ */
151
+ declare class AXLookupMultiSelectTreeComponent {
152
+ /**
153
+ * The tree datasource: an array of nodes or a lazy children callback.
154
+ */
155
+ dataSource: _angular_core.InputSignal<AXTreeViewDataSource>;
156
+ /**
157
+ * The node property used as the selection value (tree `idField`).
158
+ */
159
+ valueField: _angular_core.InputSignal<string>;
160
+ /**
161
+ * The node property used as the display text (tree `titleField`).
162
+ */
163
+ textField: _angular_core.InputSignal<string>;
164
+ /**
165
+ * The node property marking a node as disabled.
166
+ */
167
+ disabledField: _angular_core.InputSignal<string>;
168
+ /**
169
+ * Currently selected values.
170
+ */
171
+ selectedValues: _angular_core.InputSignal<unknown[]>;
172
+ /**
173
+ * How selecting parent/child nodes affects each other. Passed through to the tree-view.
174
+ */
175
+ selectionBehavior: _angular_core.InputSignal<AXTreeViewSelectionBehavior>;
176
+ /**
177
+ * Custom template rendered for each tree node.
178
+ */
179
+ nodeTemplate: _angular_core.InputSignal<TemplateRef<AXTreeViewItemTemplateContext>>;
180
+ /**
181
+ * Emitted when the user changes the tree selection.
182
+ */
183
+ selectionChange: _angular_core.OutputEmitterRef<AXLookupTreeSelectionEvent>;
184
+ protected selectedIds: _angular_core.Signal<string[]>;
185
+ protected handleSelectionChange(e: AXTreeViewSelectionChangeEvent): void;
186
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXLookupMultiSelectTreeComponent, never>;
187
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXLookupMultiSelectTreeComponent, "ax-lookup-multi-select-tree", never, { "dataSource": { "alias": "dataSource"; "required": true; "isSignal": true; }; "valueField": { "alias": "valueField"; "required": false; "isSignal": true; }; "textField": { "alias": "textField"; "required": false; "isSignal": true; }; "disabledField": { "alias": "disabledField"; "required": false; "isSignal": true; }; "selectedValues": { "alias": "selectedValues"; "required": false; "isSignal": true; }; "selectionBehavior": { "alias": "selectionBehavior"; "required": false; "isSignal": true; }; "nodeTemplate": { "alias": "nodeTemplate"; "required": false; "isSignal": true; }; }, { "selectionChange": "selectionChange"; }, never, never, true, never>;
188
+ }
189
+
190
+ /**
191
+ * An advanced drop-down (lookup) editor with five modes, `AXDataSource` support, and virtual scrolling.
192
+ *
193
+ * Modes (each rendered by its own internal mini component):
194
+ * - `drop-down-list` — a predefined list of options for picking single values.
195
+ * - `multi-select` — a predefined list of options for multiple item selection (chips in the trigger).
196
+ * - `drop-down-tree` — a predefined list rendered in a tree-like structure for single item selection.
197
+ * - `multi-select-tree` — a tree-like structure for multiple item selection.
198
+ * - `multi-column` — an `ax-data-table` grid; when searchable, the trigger input filters as you type.
199
+ *
200
+ * With `adaptivityEnabled` (default `true`), the list opens as a bottom actionsheet on small
201
+ * screens instead of an anchored dropdown — the same alternate presentation as `ax-select-box`.
202
+ *
203
+ * Implements {@link FormValueControl} so `[(ngModel)]` / signal forms work via the `value` model
204
+ * (no `ControlValueAccessor`).
205
+ *
206
+ * @category Components
207
+ */
208
+ declare class AXLookupComponent extends NXComponent implements FormValueControl<unknown | unknown[] | null> {
209
+ #private;
210
+ /**
211
+ * The lookup rendering mode. Selects which mini component renders in the popup.
212
+ */
213
+ mode: _angular_core.InputSignal<AXLookupMode>;
214
+ /**
215
+ * The items source for list-based modes (`drop-down-list`, `multi-select`, `multi-column`).
216
+ * Accepts an `AXDataSource` (remote paging, `byKey`, server-side filter) or a plain array.
217
+ */
218
+ dataSource: _angular_core.InputSignal<AXLookupItem[] | AXDataSource<AXLookupItem>>;
219
+ /**
220
+ * The nodes source for tree modes (`drop-down-tree`, `multi-select-tree`):
221
+ * an array of nodes or a lazy children callback.
222
+ */
223
+ treeDataSource: _angular_core.InputSignal<AXTreeViewDataSource>;
224
+ /**
225
+ * The item property used as the selection value. Maps to the tree `idField` in tree modes.
226
+ */
227
+ valueField: _angular_core.InputSignal<string>;
228
+ /**
229
+ * The item property used as the display text. Maps to the tree `titleField` in tree modes
230
+ * (set it to `title` when your nodes use the default tree shape).
231
+ */
232
+ textField: _angular_core.InputSignal<string>;
233
+ /**
234
+ * The item property marking an item as disabled.
235
+ */
236
+ disabledField: _angular_core.InputSignal<string>;
237
+ /**
238
+ * Column definitions for the `multi-column` mode (rendered as `ax-text-column` in `ax-data-table`).
239
+ */
240
+ columns: _angular_core.InputSignal<AXLookupColumn[]>;
241
+ /**
242
+ * Whether the trigger accepts typing and filters the datasource (`true`),
243
+ * or is select-only with no writable input (`false`).
244
+ * Applies to `drop-down-list`, `multi-select`, and `multi-column`. Tree modes ignore this.
245
+ */
246
+ searchable: _angular_core.InputSignal<boolean>;
247
+ /**
248
+ * When `true` (default), the popup list uses the alternate actionsheet presentation on small
249
+ * screens (`SM`). When `false`, the list always opens as an anchored dropdown.
250
+ */
251
+ adaptivityEnabled: _angular_core.InputSignal<boolean>;
252
+ /**
253
+ * Title shown in the actionsheet header on small screens. Falls back to `placeholder`.
254
+ */
255
+ caption: _angular_core.InputSignal<string>;
256
+ /**
257
+ * When `true`, list rows use alternating background colors for easier scanning
258
+ * (`drop-down-list`, `multi-select`, and `multi-column` modes).
259
+ */
260
+ alternate: _angular_core.InputSignal<boolean>;
261
+ /**
262
+ * Placeholder for the trigger search input when items are already selected
263
+ * (mainly useful in `multi-select`). Falls back to `placeholder` when the selection is empty.
264
+ */
265
+ searchPlaceholder: _angular_core.InputSignal<string>;
266
+ /**
267
+ * The placeholder text shown when no value is selected.
268
+ */
269
+ placeholder: _angular_core.InputSignal<string>;
270
+ /**
271
+ * Whether the lookup is disabled.
272
+ */
273
+ readonly disabled: _angular_core.InputSignal<boolean>;
274
+ /**
275
+ * Whether the lookup is readonly.
276
+ */
277
+ readonly readonly: _angular_core.InputSignal<boolean>;
278
+ /**
279
+ * Predefined look scheme of the editor container. Same looks as other editor components like ax-text-box.
280
+ */
281
+ look: _angular_core.ModelSignal<AXStyleLookType>;
282
+ /**
283
+ * The fixed row height in pixels used by the virtual scroll viewport (list-based modes).
284
+ */
285
+ itemHeight: _angular_core.InputSignal<number>;
286
+ /**
287
+ * The maximum number of rows visible before the popup scrolls (list-based modes).
288
+ */
289
+ maxVisibleItems: _angular_core.InputSignal<number>;
290
+ /**
291
+ * How selecting parent/child nodes affects each other in `multi-select-tree` mode.
292
+ */
293
+ treeSelectionBehavior: _angular_core.InputSignal<AXTreeViewSelectionBehavior>;
294
+ /**
295
+ * Custom template rendered for each item/node. Context: `$implicit` is the item.
296
+ */
297
+ itemTemplate: _angular_core.InputSignal<TemplateRef<unknown>>;
298
+ /**
299
+ * Custom template for the selected item display (trigger text / chips). Context: `$implicit` is the item.
300
+ */
301
+ selectedTemplate: _angular_core.InputSignal<TemplateRef<unknown>>;
302
+ /**
303
+ * Custom template rendered when the datasource has no items.
304
+ */
305
+ emptyTemplate: _angular_core.InputSignal<TemplateRef<unknown>>;
306
+ /**
307
+ * Custom template rendered for rows whose page is still loading.
308
+ */
309
+ loadingTemplate: _angular_core.InputSignal<TemplateRef<unknown>>;
310
+ /**
311
+ * The selected value(s): a scalar in single modes, an array in
312
+ * `multi-select` / `multi-select-tree`. Supports `[(value)]`, `[(ngModel)]`, and signal forms
313
+ * via {@link FormValueControl}.
314
+ */
315
+ readonly value: _angular_core.ModelSignal<unknown>;
316
+ /**
317
+ * Emitted when the selected value changes.
318
+ */
319
+ onValueChanged: _angular_core.OutputEmitterRef<AXValueChangedEvent<unknown>>;
320
+ /**
321
+ * Emitted when the selection changes, carrying the resolved selected items.
322
+ */
323
+ onSelectionChanged: _angular_core.OutputEmitterRef<AXLookupSelectionChangedEvent>;
324
+ /**
325
+ * Emitted when the trigger receives focus.
326
+ */
327
+ onFocus: _angular_core.OutputEmitterRef<AXFocusEvent>;
328
+ /**
329
+ * Emitted when the trigger loses focus.
330
+ */
331
+ onBlur: _angular_core.OutputEmitterRef<AXFocusEvent>;
332
+ /**
333
+ * Emitted when a list/tree item is clicked.
334
+ */
335
+ onItemClick: _angular_core.OutputEmitterRef<AXItemClickEvent<AXLookupItem>>;
336
+ /**
337
+ * Emitted when an item is selected (click or keyboard).
338
+ */
339
+ onItemSelected: _angular_core.OutputEmitterRef<AXItemSelectedEvent<AXLookupItem>>;
340
+ /**
341
+ * Emitted when the popup opens.
342
+ */
343
+ onOpened: _angular_core.OutputEmitterRef<AXEvent>;
344
+ /**
345
+ * Emitted when the popup closes.
346
+ */
347
+ onClosed: _angular_core.OutputEmitterRef<AXEvent>;
348
+ /** Whether the popup is expanded. */
349
+ protected expanded: _angular_core.WritableSignal<boolean>;
350
+ /** Whether the list is currently shown as a bottom actionsheet (small screens + adaptivity). */
351
+ protected isActionsheetStyle: _angular_core.WritableSignal<boolean>;
352
+ /** Whether the current mode selects multiple values. */
353
+ protected isMultiple: _angular_core.Signal<boolean>;
354
+ /** Whether the current mode renders a tree. */
355
+ protected isTreeMode: _angular_core.Signal<boolean>;
356
+ /** Whether the trigger input is writable and filters as you type. */
357
+ protected isEditableTrigger: _angular_core.Signal<boolean>;
358
+ /** The datasource for list-based modes; plain arrays are converted. */
359
+ protected resolvedDataSource: _angular_core.Signal<AXDataSource<AXLookupItem>>;
360
+ /** The current selection normalized to an array. */
361
+ protected selectedValues: _angular_core.Signal<unknown[]>;
362
+ /** The resolved selected items (via cache, datasource `find`/`byKey`, or tree node lookup). */
363
+ protected selectedItems: _angular_core.WritableSignal<AXLookupItem[]>;
364
+ /** Display text shown in the trigger for single modes. */
365
+ protected displayText: _angular_core.Signal<string>;
366
+ /**
367
+ * Text typed in the editable trigger input.
368
+ * Multi-select starts empty; single modes sync from the selected display text.
369
+ */
370
+ protected searchText: _angular_core.WritableSignal<string>;
371
+ /**
372
+ * Whether the trigger should render `selectedTemplate` instead of the plain input text.
373
+ * Searchable mode shows the template while the popup is closed and the input still matches
374
+ * the selected display text (same pattern as combo-box).
375
+ */
376
+ protected showSelectedTemplate: _angular_core.Signal<boolean>;
377
+ protected popoverRef: _angular_core.Signal<AXPopoverComponent>;
378
+ protected triggerSearchInput: _angular_core.Signal<ElementRef<HTMLInputElement>>;
379
+ protected listView: _angular_core.Signal<AXLookupListViewBase>;
380
+ constructor();
381
+ /** Returns the display text of an item using the `textField` mapping. */
382
+ protected getItemText(item: AXLookupItem): string;
383
+ /** Stable unique key for selected chips — avoids NG0955 and remounts on reorder/remove. */
384
+ protected trackSelectedKey(item: AXLookupItem): unknown;
385
+ /**
386
+ * Opens (editable trigger) or toggles the popup on trigger click.
387
+ */
388
+ protected onTriggerClick(): void;
389
+ /**
390
+ * Focuses the lookup trigger input.
391
+ */
392
+ focus(options?: FocusOptions): void;
393
+ /**
394
+ * Handles keyboard interaction on the trigger input.
395
+ */
396
+ protected onTriggerKeydown(e: KeyboardEvent): void;
397
+ /** Blocks typing when the trigger is not editable (keeps Tab / keyboard open working). */
398
+ protected onBeforeInput(event: Event): void;
399
+ /**
400
+ * Returns focus to the trigger input when list navigation requests it.
401
+ */
402
+ protected onListNavigateOut(_reason: 'up' | 'typeahead'): void;
403
+ protected focusListFirst(): void;
404
+ /**
405
+ * Keeps the expanded state in sync when the popover closes (e.g. click outside),
406
+ * and clears any applied search filter.
407
+ */
408
+ protected onPopoverClosed(): void;
409
+ /**
410
+ * Closes the popup.
411
+ */
412
+ close(): void;
413
+ /**
414
+ * Closes the popup (alias for {@link close}, required by `AXClosableComponent`).
415
+ */
416
+ closeAll(): void;
417
+ /**
418
+ * Opens the popup.
419
+ */
420
+ open(): void;
421
+ /**
422
+ * Handles typing in the editable trigger input.
423
+ */
424
+ protected onTriggerSearchInput(text: string): void;
425
+ /** Placeholder for the editable trigger search input. */
426
+ protected triggerSearchPlaceholder: _angular_core.Signal<string>;
427
+ /**
428
+ * Commits a single pick (drop-down-list, drop-down-tree, multi-column) and closes the popup.
429
+ */
430
+ protected handleSinglePick(e: AXLookupItemClickEvent): void;
431
+ /**
432
+ * Toggles an item in the multi-select list; the popup stays open.
433
+ * Clears the trigger search so the full list returns (select-box-like).
434
+ */
435
+ protected handleMultiToggle(e: AXLookupItemClickEvent): void;
436
+ /**
437
+ * Applies the multi-select-tree selection to the value; the popup stays open.
438
+ */
439
+ protected handleTreeSelectionChange(e: AXLookupTreeSelectionEvent): void;
440
+ /** Forwards native focus from the trigger input. */
441
+ protected emitOnFocus(e: FocusEvent): void;
442
+ /** Forwards native blur from the trigger input. */
443
+ protected emitOnBlur(e: FocusEvent): void;
444
+ /**
445
+ * Removes a single chip from the multi selection.
446
+ */
447
+ protected removeChip(event: Event, item: AXLookupItem): void;
448
+ /**
449
+ * Clears the whole selection.
450
+ * Sets `null` in single modes and `[]` in multi modes. Used by projected `ax-clear-button`.
451
+ *
452
+ * @param isUserInteraction - Whether the clear was triggered by the user.
453
+ */
454
+ reset(isUserInteraction?: boolean): void;
455
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXLookupComponent, never>;
456
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXLookupComponent, "ax-lookup", never, { "mode": { "alias": "mode"; "required": false; "isSignal": true; }; "dataSource": { "alias": "dataSource"; "required": false; "isSignal": true; }; "treeDataSource": { "alias": "treeDataSource"; "required": false; "isSignal": true; }; "valueField": { "alias": "valueField"; "required": false; "isSignal": true; }; "textField": { "alias": "textField"; "required": false; "isSignal": true; }; "disabledField": { "alias": "disabledField"; "required": false; "isSignal": true; }; "columns": { "alias": "columns"; "required": false; "isSignal": true; }; "searchable": { "alias": "searchable"; "required": false; "isSignal": true; }; "adaptivityEnabled": { "alias": "adaptivityEnabled"; "required": false; "isSignal": true; }; "caption": { "alias": "caption"; "required": false; "isSignal": true; }; "alternate": { "alias": "alternate"; "required": false; "isSignal": true; }; "searchPlaceholder": { "alias": "searchPlaceholder"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "look": { "alias": "look"; "required": false; "isSignal": true; }; "itemHeight": { "alias": "itemHeight"; "required": false; "isSignal": true; }; "maxVisibleItems": { "alias": "maxVisibleItems"; "required": false; "isSignal": true; }; "treeSelectionBehavior": { "alias": "treeSelectionBehavior"; "required": false; "isSignal": true; }; "itemTemplate": { "alias": "itemTemplate"; "required": false; "isSignal": true; }; "selectedTemplate": { "alias": "selectedTemplate"; "required": false; "isSignal": true; }; "emptyTemplate": { "alias": "emptyTemplate"; "required": false; "isSignal": true; }; "loadingTemplate": { "alias": "loadingTemplate"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; }, { "look": "lookChange"; "value": "valueChange"; "onValueChanged": "onValueChanged"; "onSelectionChanged": "onSelectionChanged"; "onFocus": "onFocus"; "onBlur": "onBlur"; "onItemClick": "onItemClick"; "onItemSelected": "onItemSelected"; "onOpened": "onOpened"; "onClosed": "onClosed"; }, never, ["ax-prefix", "ax-clear-button", "ax-suffix", "ax-header", "ax-footer"], true, never>;
457
+ }
458
+
459
+ /**
460
+ * Internal mini component for the `drop-down-list` lookup mode:
461
+ * a predefined, virtualized list of options for picking single values.
462
+ *
463
+ * @category Components
464
+ */
465
+ declare class AXLookupDropDownListComponent extends AXLookupListViewBase {
466
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXLookupDropDownListComponent, never>;
467
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXLookupDropDownListComponent, "ax-lookup-drop-down-list", never, {}, {}, never, never, true, never>;
468
+ }
469
+
470
+ /**
471
+ * Internal mini component for the `multi-select` lookup mode:
472
+ * a predefined, virtualized list of options with checkboxes for multiple item selection.
473
+ *
474
+ * @category Components
475
+ */
476
+ declare class AXLookupMultiSelectComponent extends AXLookupListViewBase {
477
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXLookupMultiSelectComponent, never>;
478
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXLookupMultiSelectComponent, "ax-lookup-multi-select", never, {}, {}, never, never, true, never>;
479
+ }
480
+
481
+ /**
482
+ * Internal mini component for the `drop-down-tree` lookup mode:
483
+ * a predefined list rendered in a tree-like structure for single item selection.
484
+ *
485
+ * @category Components
486
+ */
487
+ declare class AXLookupDropDownTreeComponent {
488
+ /**
489
+ * The tree datasource: an array of nodes or a lazy children callback.
490
+ */
491
+ dataSource: _angular_core.InputSignal<AXTreeViewDataSource>;
492
+ /**
493
+ * The node property used as the selection value (tree `idField`).
494
+ */
495
+ valueField: _angular_core.InputSignal<string>;
496
+ /**
497
+ * The node property used as the display text (tree `titleField`).
498
+ */
499
+ textField: _angular_core.InputSignal<string>;
500
+ /**
501
+ * The node property marking a node as disabled.
502
+ */
503
+ disabledField: _angular_core.InputSignal<string>;
504
+ /**
505
+ * Currently selected values (at most one for single selection).
506
+ */
507
+ selectedValues: _angular_core.InputSignal<unknown[]>;
508
+ /**
509
+ * Custom template rendered for each tree node.
510
+ */
511
+ nodeTemplate: _angular_core.InputSignal<TemplateRef<AXTreeViewItemTemplateContext>>;
512
+ /**
513
+ * Emitted when the user selects a node.
514
+ */
515
+ itemClick: _angular_core.OutputEmitterRef<AXLookupItemClickEvent>;
516
+ protected selectedIds: _angular_core.Signal<string[]>;
517
+ protected handleSelectionChange(e: AXTreeViewSelectionChangeEvent): void;
518
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXLookupDropDownTreeComponent, never>;
519
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXLookupDropDownTreeComponent, "ax-lookup-drop-down-tree", never, { "dataSource": { "alias": "dataSource"; "required": true; "isSignal": true; }; "valueField": { "alias": "valueField"; "required": false; "isSignal": true; }; "textField": { "alias": "textField"; "required": false; "isSignal": true; }; "disabledField": { "alias": "disabledField"; "required": false; "isSignal": true; }; "selectedValues": { "alias": "selectedValues"; "required": false; "isSignal": true; }; "nodeTemplate": { "alias": "nodeTemplate"; "required": false; "isSignal": true; }; }, { "itemClick": "itemClick"; }, never, never, true, never>;
520
+ }
521
+
522
+ /**
523
+ * Internal mini component for the `multi-column` lookup mode:
524
+ * renders selectable rows in an `ax-data-table` grid and loads further
525
+ * pages as the user scrolls (no pager UI).
526
+ *
527
+ * @category Components
528
+ */
529
+ declare class AXLookupMultiColumnComponent {
530
+ #private;
531
+ /**
532
+ * The datasource providing the grid rows (paged, remote-capable).
533
+ * Pages are fetched on demand as the user scrolls the table body.
534
+ */
535
+ dataSource: _angular_core.InputSignal<AXDataSource<AXLookupItem>>;
536
+ /**
537
+ * The item property used as the selection value.
538
+ */
539
+ valueField: _angular_core.InputSignal<string>;
540
+ /**
541
+ * The item property used as the display text.
542
+ */
543
+ textField: _angular_core.InputSignal<string>;
544
+ /**
545
+ * The item property marking an item as disabled.
546
+ */
547
+ disabledField: _angular_core.InputSignal<string>;
548
+ /**
549
+ * Currently selected values (always an array, even for single selection).
550
+ */
551
+ selectedValues: _angular_core.InputSignal<unknown[]>;
552
+ /**
553
+ * The fixed row height in pixels passed to the data table.
554
+ */
555
+ itemHeight: _angular_core.InputSignal<number>;
556
+ /**
557
+ * The maximum number of body rows visible before the table scrolls.
558
+ */
559
+ maxVisibleItems: _angular_core.InputSignal<number>;
560
+ /**
561
+ * Column definitions rendered as `ax-text-column` instances.
562
+ */
563
+ columns: _angular_core.InputSignal<AXLookupColumn[]>;
564
+ /**
565
+ * Optional custom row content. Context: `$implicit` is the row item.
566
+ * When set, replaces the default multi-column cell layout.
567
+ */
568
+ itemTemplate: _angular_core.InputSignal<TemplateRef<unknown>>;
569
+ /**
570
+ * Custom template rendered when the datasource has no items.
571
+ */
572
+ emptyTemplate: _angular_core.InputSignal<TemplateRef<unknown>>;
573
+ /**
574
+ * Custom template rendered while the table is loading.
575
+ */
576
+ loadingTemplate: _angular_core.InputSignal<TemplateRef<unknown>>;
577
+ /**
578
+ * When `true`, table rows use alternating background colors for easier scanning.
579
+ */
580
+ alternate: _angular_core.InputSignal<boolean>;
581
+ /**
582
+ * Emitted when the user picks a row.
583
+ */
584
+ itemClick: _angular_core.OutputEmitterRef<AXLookupItemClickEvent>;
585
+ protected tableRef: _angular_core.Signal<AXDataTableComponent>;
586
+ /**
587
+ * Local table source: one page of whatever has been scrolled in so far.
588
+ * Kept as a stable instance so the table host is not recreated on each page load.
589
+ * `pageSize` grows with `#loadedItems` — never seed with a huge empty array (data-table
590
+ * initializes `displayedRows` as `new Array(pageSize)`, which caused NG0955-level jank).
591
+ */
592
+ protected readonly tableDataSource: AXDataSource<AXLookupItem>;
593
+ /**
594
+ * Header (~40px) + body rows. Grows with results up to `maxVisibleItems`,
595
+ * then the table body scrolls for the rest.
596
+ */
597
+ protected tableHeight: _angular_core.Signal<number>;
598
+ protected loadingConfig: _angular_core.Signal<{
599
+ enabled: boolean;
600
+ animation: boolean;
601
+ loadingTemplate: TemplateRef<unknown>;
602
+ }>;
603
+ constructor();
604
+ /** Stable unique key for `@for` — avoids NG0955 when `field` is missing or duplicated. */
605
+ protected trackColumnKey(index: number, column: AXLookupColumn): string;
606
+ protected resolveColumnWidth(column: AXLookupColumn): string | number | 'auto';
607
+ protected resolveRowCssClass: (row: unknown) => string;
608
+ protected handleRowClick(event: AXDataTableRowClick): void;
609
+ protected handleItemClick(item: AXLookupItem | null | undefined): void;
610
+ protected isSelected(item: AXLookupItem): boolean;
611
+ protected isDisabled(item: AXLookupItem): boolean;
612
+ private getValue;
613
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXLookupMultiColumnComponent, never>;
614
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXLookupMultiColumnComponent, "ax-lookup-multi-column", never, { "dataSource": { "alias": "dataSource"; "required": true; "isSignal": true; }; "valueField": { "alias": "valueField"; "required": false; "isSignal": true; }; "textField": { "alias": "textField"; "required": false; "isSignal": true; }; "disabledField": { "alias": "disabledField"; "required": false; "isSignal": true; }; "selectedValues": { "alias": "selectedValues"; "required": false; "isSignal": true; }; "itemHeight": { "alias": "itemHeight"; "required": false; "isSignal": true; }; "maxVisibleItems": { "alias": "maxVisibleItems"; "required": false; "isSignal": true; }; "columns": { "alias": "columns"; "required": false; "isSignal": true; }; "itemTemplate": { "alias": "itemTemplate"; "required": false; "isSignal": true; }; "emptyTemplate": { "alias": "emptyTemplate"; "required": false; "isSignal": true; }; "loadingTemplate": { "alias": "loadingTemplate"; "required": false; "isSignal": true; }; "alternate": { "alias": "alternate"; "required": false; "isSignal": true; }; }, { "itemClick": "itemClick"; }, never, never, true, never>;
615
+ }
616
+
617
+ declare class AXLookupModule {
618
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXLookupModule, never>;
619
+ static ɵmod: _angular_core.ɵɵNgModuleDeclaration<AXLookupModule, never, [typeof AXLookupComponent, typeof AXLookupDropDownListComponent, typeof AXLookupMultiSelectComponent, typeof AXLookupDropDownTreeComponent, typeof AXLookupMultiSelectTreeComponent, typeof AXLookupMultiColumnComponent], [typeof AXLookupComponent, typeof AXLookupDropDownListComponent, typeof AXLookupMultiSelectComponent, typeof AXLookupDropDownTreeComponent, typeof AXLookupMultiSelectTreeComponent, typeof AXLookupMultiColumnComponent]>;
620
+ static ɵinj: _angular_core.ɵɵInjectorDeclaration<AXLookupModule>;
621
+ }
622
+
623
+ export { AXLookupComponent, AXLookupDropDownListComponent, AXLookupDropDownTreeComponent, AXLookupModule, AXLookupMultiColumnComponent, AXLookupMultiSelectComponent, AXLookupMultiSelectTreeComponent };
624
+ export type { AXLookupColumn, AXLookupItem, AXLookupItemClickEvent, AXLookupMode, AXLookupSelectionChangedEvent, AXLookupTreeSelectionEvent };