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

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 (51) hide show
  1. package/combo-box/README.md +26 -0
  2. package/fesm2022/acorex-components-calendar.mjs +10 -12
  3. package/fesm2022/acorex-components-calendar.mjs.map +1 -1
  4. package/fesm2022/acorex-components-combo-box.mjs +237 -0
  5. package/fesm2022/acorex-components-combo-box.mjs.map +1 -0
  6. package/fesm2022/acorex-components-conversation-composer-action-choice-dialog.component-DCcRJYfF.mjs +50 -0
  7. package/fesm2022/acorex-components-conversation-composer-action-choice-dialog.component-DCcRJYfF.mjs.map +1 -0
  8. package/fesm2022/{acorex-components-conversation-open-composer-picker-for-files-Hh5Oyp3p.mjs → acorex-components-conversation-open-composer-picker-for-files-BuNEjswI.mjs} +2 -2
  9. 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
  10. package/fesm2022/acorex-components-conversation.mjs +2034 -7467
  11. package/fesm2022/acorex-components-conversation.mjs.map +1 -1
  12. package/fesm2022/acorex-components-data-table.mjs +135 -45
  13. package/fesm2022/acorex-components-data-table.mjs.map +1 -1
  14. package/fesm2022/acorex-components-datetime-box.mjs +14 -16
  15. package/fesm2022/acorex-components-datetime-box.mjs.map +1 -1
  16. package/fesm2022/acorex-components-datetime-input.mjs +61 -32
  17. package/fesm2022/acorex-components-datetime-input.mjs.map +1 -1
  18. package/fesm2022/acorex-components-dialog.mjs +3 -2
  19. package/fesm2022/acorex-components-dialog.mjs.map +1 -1
  20. package/fesm2022/acorex-components-file-viewer.mjs +27 -27
  21. package/fesm2022/acorex-components-file-viewer.mjs.map +1 -1
  22. package/fesm2022/acorex-components-grid-layout-builder.mjs +238 -36
  23. package/fesm2022/acorex-components-grid-layout-builder.mjs.map +1 -1
  24. package/fesm2022/acorex-components-list.mjs +2 -2
  25. package/fesm2022/acorex-components-list.mjs.map +1 -1
  26. package/fesm2022/acorex-components-lookup.mjs +1292 -0
  27. package/fesm2022/acorex-components-lookup.mjs.map +1 -0
  28. package/fesm2022/acorex-components-menu.mjs +211 -74
  29. package/fesm2022/acorex-components-menu.mjs.map +1 -1
  30. package/fesm2022/acorex-components-number-box.mjs +30 -29
  31. package/fesm2022/acorex-components-number-box.mjs.map +1 -1
  32. package/fesm2022/acorex-components-scheduler.mjs +7 -17
  33. package/fesm2022/acorex-components-scheduler.mjs.map +1 -1
  34. package/fesm2022/acorex-components-select-box.mjs +2 -2
  35. package/fesm2022/acorex-components-select-box.mjs.map +1 -1
  36. package/fesm2022/acorex-components-tag-box.mjs +2 -2
  37. package/fesm2022/acorex-components-tag-box.mjs.map +1 -1
  38. package/lookup/README.md +47 -0
  39. package/package.json +11 -3
  40. package/types/acorex-components-combo-box.d.ts +114 -0
  41. package/types/acorex-components-conversation.d.ts +317 -94
  42. package/types/acorex-components-data-table.d.ts +35 -3
  43. package/types/acorex-components-datetime-box.d.ts +2 -0
  44. package/types/acorex-components-datetime-input.d.ts +24 -5
  45. package/types/acorex-components-grid-layout-builder.d.ts +34 -2
  46. package/types/acorex-components-lookup.d.ts +454 -0
  47. package/types/acorex-components-menu.d.ts +26 -4
  48. package/types/acorex-components-number-box.d.ts +3 -1
  49. package/types/acorex-components-scheduler.d.ts +2 -4
  50. package/fesm2022/acorex-components-conversation-composer-action-choice-dialog.component-CNHiM1Sp.mjs +0 -106
  51. package/fesm2022/acorex-components-conversation-composer-action-choice-dialog.component-CNHiM1Sp.mjs.map +0 -1
@@ -0,0 +1,454 @@
1
+ import * as _angular_core from '@angular/core';
2
+ import { TemplateRef, ElementRef } from '@angular/core';
3
+ import { AXEvent, NXComponent, AXDataSource, AXStyleLookType, AXValueChangedEvent, AXListDataSource } 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 { CdkVirtualScrollViewport } from '@angular/cdk/scrolling';
7
+
8
+ /**
9
+ * The lookup rendering mode. Each mode is rendered by its own internal mini component:
10
+ *
11
+ * - `drop-down-list` — a predefined list of options for picking single values.
12
+ * - `multi-select` — a predefined list of options for multiple item selection.
13
+ * - `drop-down-tree` — a tree-like structure for single item selection.
14
+ * - `multi-select-tree` — a tree-like structure for multiple item selection.
15
+ * - `multi-column` — a table-structured list for single selection.
16
+ */
17
+ type AXLookupMode = 'drop-down-list' | 'multi-select' | 'drop-down-tree' | 'multi-select-tree' | 'multi-column';
18
+ /**
19
+ * A column definition for the `multi-column` lookup mode.
20
+ *
21
+ * - `field` — the item property rendered in this column.
22
+ * - `title` — the header text of the column.
23
+ * - `width` — optional CSS grid track size (e.g. `120px`, `1fr`, `minmax(80px, 1fr)`). Defaults to `1fr`.
24
+ */
25
+ interface AXLookupColumn {
26
+ field: string;
27
+ title: string;
28
+ width?: string;
29
+ }
30
+ /**
31
+ * A lookup item. Items are plain records; the lookup reads them through
32
+ * `valueField` / `textField` / `disabledField` mappings.
33
+ */
34
+ type AXLookupItem = Record<string, unknown>;
35
+ /**
36
+ * Internal event emitted by the mini view components when the user picks or toggles an item.
37
+ */
38
+ interface AXLookupItemClickEvent {
39
+ item: AXLookupItem;
40
+ value: unknown;
41
+ }
42
+ /**
43
+ * Emitted by `ax-lookup` when the selection changes, carrying the resolved selected items.
44
+ */
45
+ interface AXLookupSelectionChangedEvent extends AXEvent {
46
+ items: AXLookupItem[];
47
+ value: unknown | unknown[] | null;
48
+ }
49
+
50
+ /**
51
+ * Selection payload of the multi-select tree view.
52
+ */
53
+ interface AXLookupTreeSelectionEvent {
54
+ ids: string[];
55
+ nodes: AXTreeViewNode[];
56
+ }
57
+ /**
58
+ * Internal mini component for the `multi-select-tree` lookup mode:
59
+ * a predefined list rendered in a tree-like structure for multiple item selection.
60
+ *
61
+ * @category Components
62
+ */
63
+ declare class AXLookupMultiSelectTreeComponent {
64
+ /**
65
+ * The tree datasource: an array of nodes or a lazy children callback.
66
+ */
67
+ dataSource: _angular_core.InputSignal<AXTreeViewDataSource>;
68
+ /**
69
+ * The node property used as the selection value (tree `idField`).
70
+ */
71
+ valueField: _angular_core.InputSignal<string>;
72
+ /**
73
+ * The node property used as the display text (tree `titleField`).
74
+ */
75
+ textField: _angular_core.InputSignal<string>;
76
+ /**
77
+ * The node property marking a node as disabled.
78
+ */
79
+ disabledField: _angular_core.InputSignal<string>;
80
+ /**
81
+ * Currently selected values.
82
+ */
83
+ selectedValues: _angular_core.InputSignal<unknown[]>;
84
+ /**
85
+ * How selecting parent/child nodes affects each other. Passed through to the tree-view.
86
+ */
87
+ selectionBehavior: _angular_core.InputSignal<AXTreeViewSelectionBehavior>;
88
+ /**
89
+ * Custom template rendered for each tree node.
90
+ */
91
+ nodeTemplate: _angular_core.InputSignal<TemplateRef<AXTreeViewItemTemplateContext>>;
92
+ /**
93
+ * Emitted when the user changes the tree selection.
94
+ */
95
+ selectionChange: _angular_core.OutputEmitterRef<AXLookupTreeSelectionEvent>;
96
+ protected selectedIds: _angular_core.Signal<string[]>;
97
+ protected handleSelectionChange(e: AXTreeViewSelectionChangeEvent): void;
98
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXLookupMultiSelectTreeComponent, never>;
99
+ 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>;
100
+ }
101
+
102
+ /**
103
+ * An advanced drop-down (lookup) editor with five modes, `AXDataSource` support, and virtual scrolling.
104
+ *
105
+ * Modes (each rendered by its own internal mini component):
106
+ * - `drop-down-list` — a predefined list of options for picking single values.
107
+ * - `multi-select` — a predefined list of options for multiple item selection (chips in the trigger).
108
+ * - `drop-down-tree` — a predefined list rendered in a tree-like structure for single item selection.
109
+ * - `multi-select-tree` — a tree-like structure for multiple item selection.
110
+ * - `multi-column` — a table-structured list; when searchable, the trigger input filters as you type.
111
+ *
112
+ * @category Components
113
+ */
114
+ declare class AXLookupComponent extends NXComponent {
115
+ #private;
116
+ /**
117
+ * The lookup rendering mode. Selects which mini component renders in the popup.
118
+ */
119
+ mode: _angular_core.InputSignal<AXLookupMode>;
120
+ /**
121
+ * The items source for list-based modes (`drop-down-list`, `multi-select`, `multi-column`).
122
+ * Accepts an `AXDataSource` (remote paging, `byKey`, server-side filter) or a plain array.
123
+ */
124
+ dataSource: _angular_core.InputSignal<AXLookupItem[] | AXDataSource<AXLookupItem>>;
125
+ /**
126
+ * The nodes source for tree modes (`drop-down-tree`, `multi-select-tree`):
127
+ * an array of nodes or a lazy children callback.
128
+ */
129
+ treeDataSource: _angular_core.InputSignal<AXTreeViewDataSource>;
130
+ /**
131
+ * The item property used as the selection value. Maps to the tree `idField` in tree modes.
132
+ */
133
+ valueField: _angular_core.InputSignal<string>;
134
+ /**
135
+ * The item property used as the display text. Maps to the tree `titleField` in tree modes
136
+ * (set it to `title` when your nodes use the default tree shape).
137
+ */
138
+ textField: _angular_core.InputSignal<string>;
139
+ /**
140
+ * The item property marking an item as disabled.
141
+ */
142
+ disabledField: _angular_core.InputSignal<string>;
143
+ /**
144
+ * Column definitions for the `multi-column` mode.
145
+ */
146
+ columns: _angular_core.InputSignal<AXLookupColumn[]>;
147
+ /**
148
+ * Whether the trigger accepts typing and filters the datasource (`true`),
149
+ * or is select-only with no writable input (`false`).
150
+ * Applies to `drop-down-list`, `multi-select`, and `multi-column`. Tree modes ignore this.
151
+ */
152
+ searchable: _angular_core.InputSignal<boolean>;
153
+ /**
154
+ * Placeholder for the trigger search input when items are already selected
155
+ * (mainly useful in `multi-select`). Falls back to `placeholder` when the selection is empty.
156
+ */
157
+ searchPlaceholder: _angular_core.InputSignal<string>;
158
+ /**
159
+ * The placeholder text shown when no value is selected.
160
+ */
161
+ placeholder: _angular_core.InputSignal<string>;
162
+ /**
163
+ * Whether the lookup is disabled.
164
+ */
165
+ disabled: _angular_core.ModelSignal<boolean>;
166
+ /**
167
+ * Whether the lookup is readonly.
168
+ */
169
+ readonly: _angular_core.ModelSignal<boolean>;
170
+ /**
171
+ * Predefined look scheme of the editor container. Same looks as other editor components like ax-text-box.
172
+ */
173
+ look: _angular_core.ModelSignal<AXStyleLookType>;
174
+ /**
175
+ * The fixed row height in pixels used by the virtual scroll viewport (list-based modes).
176
+ */
177
+ itemHeight: _angular_core.InputSignal<number>;
178
+ /**
179
+ * The maximum number of rows visible before the popup scrolls (list-based modes).
180
+ */
181
+ maxVisibleItems: _angular_core.InputSignal<number>;
182
+ /**
183
+ * How selecting parent/child nodes affects each other in `multi-select-tree` mode.
184
+ */
185
+ treeSelectionBehavior: _angular_core.InputSignal<AXTreeViewSelectionBehavior>;
186
+ /**
187
+ * Custom template rendered for each item/node. Context: `$implicit` is the item.
188
+ */
189
+ itemTemplate: _angular_core.InputSignal<TemplateRef<unknown>>;
190
+ /**
191
+ * Custom template for the selected item display (trigger text / chips). Context: `$implicit` is the item.
192
+ */
193
+ selectedTemplate: _angular_core.InputSignal<TemplateRef<unknown>>;
194
+ /**
195
+ * Custom template rendered when the datasource has no items.
196
+ */
197
+ emptyTemplate: _angular_core.InputSignal<TemplateRef<unknown>>;
198
+ /**
199
+ * Custom template rendered for rows whose page is still loading.
200
+ */
201
+ loadingTemplate: _angular_core.InputSignal<TemplateRef<unknown>>;
202
+ /**
203
+ * The selected value(s): a scalar in single modes, an array in
204
+ * `multi-select` / `multi-select-tree`. Supports two-way binding.
205
+ */
206
+ value: _angular_core.ModelSignal<unknown>;
207
+ /**
208
+ * Emitted when the selected value changes.
209
+ */
210
+ onValueChanged: _angular_core.OutputEmitterRef<AXValueChangedEvent<unknown>>;
211
+ /**
212
+ * Emitted when the selection changes, carrying the resolved selected items.
213
+ */
214
+ onSelectionChanged: _angular_core.OutputEmitterRef<AXLookupSelectionChangedEvent>;
215
+ /**
216
+ * Emitted when the popup opens.
217
+ */
218
+ onOpened: _angular_core.OutputEmitterRef<AXEvent>;
219
+ /**
220
+ * Emitted when the popup closes.
221
+ */
222
+ onClosed: _angular_core.OutputEmitterRef<AXEvent>;
223
+ /** Whether the popup is expanded. */
224
+ protected expanded: _angular_core.WritableSignal<boolean>;
225
+ /** Whether the current mode selects multiple values. */
226
+ protected isMultiple: _angular_core.Signal<boolean>;
227
+ /** Whether the current mode renders a tree. */
228
+ protected isTreeMode: _angular_core.Signal<boolean>;
229
+ /** Whether the trigger input is writable and filters as you type. */
230
+ protected isEditableTrigger: _angular_core.Signal<boolean>;
231
+ /** The datasource for list-based modes; plain arrays are converted. */
232
+ protected resolvedDataSource: _angular_core.Signal<AXDataSource<AXLookupItem>>;
233
+ /** The current selection normalized to an array. */
234
+ protected selectedValues: _angular_core.Signal<unknown[]>;
235
+ /** The resolved selected items (via cache, datasource `find`/`byKey`, or tree node lookup). */
236
+ protected selectedItems: _angular_core.WritableSignal<AXLookupItem[]>;
237
+ /** Display text shown in the trigger for single modes. */
238
+ protected displayText: _angular_core.Signal<string>;
239
+ /**
240
+ * Text typed in the editable trigger input.
241
+ * Multi-select starts empty; single modes sync from the selected display text.
242
+ */
243
+ protected searchText: _angular_core.WritableSignal<string>;
244
+ protected popoverRef: _angular_core.Signal<AXPopoverComponent>;
245
+ protected triggerSearchInput: _angular_core.Signal<ElementRef<HTMLInputElement>>;
246
+ constructor();
247
+ /** Returns the display text of an item using the `textField` mapping. */
248
+ protected getItemText(item: AXLookupItem): string;
249
+ /**
250
+ * Opens (editable trigger) or toggles the popup on trigger click.
251
+ */
252
+ protected onTriggerClick(): void;
253
+ /**
254
+ * Keeps the expanded state in sync when the popover closes (e.g. click outside),
255
+ * and clears any applied search filter.
256
+ */
257
+ protected onPopoverClosed(): void;
258
+ /**
259
+ * Closes the popup.
260
+ */
261
+ close(): void;
262
+ /**
263
+ * Opens the popup.
264
+ */
265
+ open(): void;
266
+ /**
267
+ * Handles typing in the editable trigger input.
268
+ */
269
+ protected onTriggerSearchInput(text: string): void;
270
+ /** Placeholder for the editable trigger search input. */
271
+ protected triggerSearchPlaceholder: _angular_core.Signal<string>;
272
+ /**
273
+ * Commits a single pick (drop-down-list, drop-down-tree, multi-column) and closes the popup.
274
+ */
275
+ protected handleSinglePick(e: AXLookupItemClickEvent): void;
276
+ /**
277
+ * Toggles an item in the multi-select list; the popup stays open.
278
+ * Clears the trigger search so the full list returns (select-box-like).
279
+ */
280
+ protected handleMultiToggle(e: AXLookupItemClickEvent): void;
281
+ /**
282
+ * Applies the multi-select-tree selection to the value; the popup stays open.
283
+ */
284
+ protected handleTreeSelectionChange(e: AXLookupTreeSelectionEvent): void;
285
+ /**
286
+ * Removes a single chip from the multi selection.
287
+ */
288
+ protected removeChip(event: Event, item: AXLookupItem): void;
289
+ /**
290
+ * Clears the whole selection.
291
+ */
292
+ protected clearAll(event: Event): void;
293
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXLookupComponent, never>;
294
+ 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; }; "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; }; }, { "disabled": "disabledChange"; "readonly": "readonlyChange"; "look": "lookChange"; "value": "valueChange"; "onValueChanged": "onValueChanged"; "onSelectionChanged": "onSelectionChanged"; "onOpened": "onOpened"; "onClosed": "onClosed"; }, never, ["ax-prefix", "ax-suffix"], true, never>;
295
+ }
296
+
297
+ /**
298
+ * Shared `AXDataSource` + CDK virtual scroll plumbing for the list-based lookup views
299
+ * (`ax-lookup-drop-down-list`, `ax-lookup-multi-select`, `ax-lookup-multi-column`).
300
+ */
301
+ declare abstract class AXLookupListViewBase {
302
+ #private;
303
+ /**
304
+ * The datasource providing the items (paged, remote-capable).
305
+ */
306
+ dataSource: _angular_core.InputSignal<AXDataSource<AXLookupItem>>;
307
+ /**
308
+ * The item property used as the selection value.
309
+ */
310
+ valueField: _angular_core.InputSignal<string>;
311
+ /**
312
+ * The item property used as the display text.
313
+ */
314
+ textField: _angular_core.InputSignal<string>;
315
+ /**
316
+ * The item property marking an item as disabled.
317
+ */
318
+ disabledField: _angular_core.InputSignal<string>;
319
+ /**
320
+ * Currently selected values (always an array, even for single selection).
321
+ */
322
+ selectedValues: _angular_core.InputSignal<unknown[]>;
323
+ /**
324
+ * The fixed row height in pixels used by the virtual scroll viewport.
325
+ */
326
+ itemHeight: _angular_core.InputSignal<number>;
327
+ /**
328
+ * The maximum number of rows visible before the popup scrolls.
329
+ */
330
+ maxVisibleItems: _angular_core.InputSignal<number>;
331
+ /**
332
+ * Custom template rendered for each item. Context: `$implicit` is the item.
333
+ */
334
+ itemTemplate: _angular_core.InputSignal<TemplateRef<unknown>>;
335
+ /**
336
+ * Custom template rendered when the datasource has no items.
337
+ */
338
+ emptyTemplate: _angular_core.InputSignal<TemplateRef<unknown>>;
339
+ /**
340
+ * Custom template rendered for rows whose page is still loading.
341
+ */
342
+ loadingTemplate: _angular_core.InputSignal<TemplateRef<unknown>>;
343
+ /**
344
+ * Emitted when the user picks (or toggles) an item.
345
+ */
346
+ itemClick: _angular_core.OutputEmitterRef<AXLookupItemClickEvent>;
347
+ /** CDK virtual scroll adapter over the datasource. */
348
+ protected listDataSource: _angular_core.WritableSignal<AXListDataSource<AXLookupItem>>;
349
+ protected totalCount: _angular_core.WritableSignal<number>;
350
+ protected isLoading: _angular_core.WritableSignal<boolean>;
351
+ protected isEmpty: _angular_core.Signal<boolean>;
352
+ /** Viewport height so the popup grows with the items up to `maxVisibleItems`. */
353
+ protected viewportHeight: _angular_core.Signal<number>;
354
+ protected viewportRef: _angular_core.Signal<CdkVirtualScrollViewport>;
355
+ constructor();
356
+ protected getValue(item: AXLookupItem): unknown;
357
+ protected getText(item: AXLookupItem): string;
358
+ protected isSelected(item: AXLookupItem): boolean;
359
+ protected isDisabled(item: AXLookupItem): boolean;
360
+ protected handleItemClick(item: AXLookupItem | null | undefined): void;
361
+ protected trackByIndex: (index: number) => number;
362
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXLookupListViewBase, never>;
363
+ 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; }; }, { "itemClick": "itemClick"; }, never, never, true, never>;
364
+ }
365
+
366
+ /**
367
+ * Internal mini component for the `drop-down-list` lookup mode:
368
+ * a predefined, virtualized list of options for picking single values.
369
+ *
370
+ * @category Components
371
+ */
372
+ declare class AXLookupDropDownListComponent extends AXLookupListViewBase {
373
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXLookupDropDownListComponent, never>;
374
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXLookupDropDownListComponent, "ax-lookup-drop-down-list", never, {}, {}, never, never, true, never>;
375
+ }
376
+
377
+ /**
378
+ * Internal mini component for the `multi-select` lookup mode:
379
+ * a predefined, virtualized list of options with checkboxes for multiple item selection.
380
+ *
381
+ * @category Components
382
+ */
383
+ declare class AXLookupMultiSelectComponent extends AXLookupListViewBase {
384
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXLookupMultiSelectComponent, never>;
385
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXLookupMultiSelectComponent, "ax-lookup-multi-select", never, {}, {}, never, never, true, never>;
386
+ }
387
+
388
+ /**
389
+ * Internal mini component for the `drop-down-tree` lookup mode:
390
+ * a predefined list rendered in a tree-like structure for single item selection.
391
+ *
392
+ * @category Components
393
+ */
394
+ declare class AXLookupDropDownTreeComponent {
395
+ /**
396
+ * The tree datasource: an array of nodes or a lazy children callback.
397
+ */
398
+ dataSource: _angular_core.InputSignal<AXTreeViewDataSource>;
399
+ /**
400
+ * The node property used as the selection value (tree `idField`).
401
+ */
402
+ valueField: _angular_core.InputSignal<string>;
403
+ /**
404
+ * The node property used as the display text (tree `titleField`).
405
+ */
406
+ textField: _angular_core.InputSignal<string>;
407
+ /**
408
+ * The node property marking a node as disabled.
409
+ */
410
+ disabledField: _angular_core.InputSignal<string>;
411
+ /**
412
+ * Currently selected values (at most one for single selection).
413
+ */
414
+ selectedValues: _angular_core.InputSignal<unknown[]>;
415
+ /**
416
+ * Custom template rendered for each tree node.
417
+ */
418
+ nodeTemplate: _angular_core.InputSignal<TemplateRef<AXTreeViewItemTemplateContext>>;
419
+ /**
420
+ * Emitted when the user selects a node.
421
+ */
422
+ itemClick: _angular_core.OutputEmitterRef<AXLookupItemClickEvent>;
423
+ protected selectedIds: _angular_core.Signal<string[]>;
424
+ protected handleSelectionChange(e: AXTreeViewSelectionChangeEvent): void;
425
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXLookupDropDownTreeComponent, never>;
426
+ 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>;
427
+ }
428
+
429
+ /**
430
+ * Internal mini component for the `multi-column` lookup mode:
431
+ * a table-structured, virtualized list with a sticky header row.
432
+ *
433
+ * @category Components
434
+ */
435
+ declare class AXLookupMultiColumnComponent extends AXLookupListViewBase {
436
+ /**
437
+ * Column definitions rendered as a sticky header plus one grid cell per row.
438
+ */
439
+ columns: _angular_core.InputSignal<AXLookupColumn[]>;
440
+ /** CSS grid track list built from the column widths. */
441
+ protected gridTemplate: _angular_core.Signal<string>;
442
+ protected getCellText(item: AXLookupItem, column: AXLookupColumn): string;
443
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXLookupMultiColumnComponent, never>;
444
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXLookupMultiColumnComponent, "ax-lookup-multi-column", never, { "columns": { "alias": "columns"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
445
+ }
446
+
447
+ declare class AXLookupModule {
448
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXLookupModule, never>;
449
+ 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]>;
450
+ static ɵinj: _angular_core.ɵɵInjectorDeclaration<AXLookupModule>;
451
+ }
452
+
453
+ export { AXLookupComponent, AXLookupDropDownListComponent, AXLookupDropDownTreeComponent, AXLookupModule, AXLookupMultiColumnComponent, AXLookupMultiSelectComponent, AXLookupMultiSelectTreeComponent };
454
+ export type { AXLookupColumn, AXLookupItem, AXLookupItemClickEvent, AXLookupMode, AXLookupSelectionChangedEvent, AXLookupTreeSelectionEvent };
@@ -175,8 +175,16 @@ declare class AXMenuItemComponent extends NXComponent implements OnDestroy {
175
175
  private unsuscriber;
176
176
  private renderer;
177
177
  private injector;
178
+ private document;
178
179
  private zIndexService;
179
180
  private zToken;
181
+ private submenuPortalParent;
182
+ private submenuPortalNextSibling;
183
+ /** Survives submenu portaling when the DOM parent chain is broken. */
184
+ private linkedParent;
185
+ private mouseLeaveTimeout;
186
+ private submenuUnlistenEnter;
187
+ private submenuUnlistenLeave;
180
188
  protected arrowIcon: _angular_core.Signal<string>;
181
189
  onClick: _angular_core.OutputEmitterRef<AXMenuItemClickEvent>;
182
190
  name: _angular_core.InputSignal<string>;
@@ -186,8 +194,8 @@ declare class AXMenuItemComponent extends NXComponent implements OnDestroy {
186
194
  constructor();
187
195
  private getText;
188
196
  /**
189
- * Resolves the parent menu item. Items rendered via recursive `ngTemplateOutlet` do not
190
- * receive a DI parent, so we fall back to the DOM tree after reparenting.
197
+ * Resolves the parent menu item. Prefers an explicit link (survives submenu portaling),
198
+ * then DI, then the DOM tree.
191
199
  */
192
200
  getParentMenuItem(): AXMenuItemComponent | null;
193
201
  /**
@@ -204,10 +212,20 @@ declare class AXMenuItemComponent extends NXComponent implements OnDestroy {
204
212
  private schedulePositionCalculation;
205
213
  /**
206
214
  * Calculate the position of the submenu to avoid it going out of the viewport.
215
+ * Tall panels are height-clamped; the panel is portaled so parent overflow cannot clip it.
207
216
  */
208
217
  private calculatePosition;
209
218
  /** Measures submenu size using the same flex layout as the rendered menu. */
210
219
  private measureSubmenuRect;
220
+ /** Moves the submenu under the context-menu backdrop (or body) to escape ancestor overflow. */
221
+ private portalSubmenu;
222
+ private restoreSubmenuPortal;
223
+ /** Keep this item open while the pointer is over its portaled submenu panel. */
224
+ private bindSubmenuPointerListeners;
225
+ private unbindSubmenuPointerListeners;
226
+ /** Links direct children so parent resolution still works after the panel is portaled. */
227
+ private linkChildItems;
228
+ private getInstanceFromElement;
211
229
  /**
212
230
  * Moves nested `ax-menu-item` nodes rendered by recursive `ngTemplateOutlet` templates
213
231
  * into the submenu slot. Angular content queries do not traverse those embedded views.
@@ -225,10 +243,14 @@ declare class AXMenuItemComponent extends NXComponent implements OnDestroy {
225
243
  private clampVerticalPosition;
226
244
  handleClick(e: MouseEvent): void;
227
245
  handleMouseEnter(event: MouseEvent): void;
228
- private mouseLeaveTimeout;
229
246
  handleMouseLeave(event: MouseEvent): void;
230
- /** True when the pointer moved into this item's submenu panel or a nested open submenu. */
247
+ private handlePointerLeave;
248
+ private scheduleClose;
249
+ private clearCloseTimeout;
250
+ private clearAncestorCloseTimeouts;
251
+ /** True when the pointer is still inside this item's submenu tree (including portaled panels). */
231
252
  private containsSubmenuPointer;
253
+ private isSelfOrAncestorOf;
232
254
  ngOnDestroy(): void;
233
255
  /** @ignore */
234
256
  get __hostClass(): string[];
@@ -27,6 +27,7 @@ declare class AXNumberBoxComponent extends AXNumberBoxComponent_base {
27
27
  changeOnScroll: _angular_core.InputSignal<boolean>;
28
28
  step: _angular_core.InputSignal<number>;
29
29
  protected mode: _angular_core.WritableSignal<"digits" | "thousandsSeparator" | "decimal">;
30
+ protected decimalPlaces: _angular_core.Signal<number>;
30
31
  private input;
31
32
  protected stringValue: _angular_core.WritableSignal<string>;
32
33
  private translationService;
@@ -37,11 +38,12 @@ declare class AXNumberBoxComponent extends AXNumberBoxComponent_base {
37
38
  result: boolean;
38
39
  message?: undefined;
39
40
  }>;
40
- protected internalValueChanged(value: number | undefined): void;
41
+ protected internalValueChanged(value: number | undefined | null): void;
41
42
  private plusValue;
42
43
  private minusValue;
43
44
  private getNumericValue;
44
45
  private getSteppedValue;
46
+ private formatDisplayValue;
45
47
  private clampToRange;
46
48
  private getFractionDigits;
47
49
  protected handleOnKeydownEvent(e: KeyboardEvent): void;
@@ -115,7 +115,6 @@ declare class AXSchedulerComponent extends NXComponent implements OnInit {
115
115
  private translationService;
116
116
  private eventService;
117
117
  private translationRevision;
118
- private viewModeSelectbox;
119
118
  private calendarPopover;
120
119
  private _calendarDayCellTemplate;
121
120
  private _calendarMonthCellTemplate;
@@ -133,8 +132,8 @@ declare class AXSchedulerComponent extends NXComponent implements OnInit {
133
132
  appointments: _angular_core.Signal<AXSchedulerAppointment[]>;
134
133
  protected readonly rtl: _angular_core.Signal<boolean>;
135
134
  protected isFullScreen: _angular_core.WritableSignal<boolean>;
136
- protected viewsDataSource: _angular_core.WritableSignal<{
137
- id: string;
135
+ protected viewsDataSource: _angular_core.Signal<{
136
+ id: AXSchedulerView;
138
137
  text: string;
139
138
  }[]>;
140
139
  private prevDate;
@@ -186,7 +185,6 @@ declare class AXSchedulerComponent extends NXComponent implements OnInit {
186
185
  */
187
186
  private getWeekReanchorDate;
188
187
  private syncCurrentDateAfterLocaleChange;
189
- private fillDataSource;
190
188
  private getGridDateRange;
191
189
  currentDateText: _angular_core.Signal<string>;
192
190
  calendarDepth: _angular_core.Signal<"day" | "month" | "year">;