@acorex/components 22.1.0-next.14 → 22.1.0-next.16

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.
@@ -428,7 +428,7 @@ declare class AXDataTableTextColumnComponent extends AXDataTableColumnComponent
428
428
  /**
429
429
  * @ignore
430
430
  */
431
- protected handleExpandRow(row: any): Promise<void>;
431
+ protected handleExpandRow(row: any, event?: Event): Promise<void>;
432
432
  /**
433
433
  * Generates a unique name based on the `dataField` value.
434
434
  */
@@ -641,7 +641,7 @@ declare class AXRowExpandColumnComponent extends AXDataTableColumnComponent {
641
641
  /**
642
642
  * @ignore
643
643
  */
644
- protected handleExpandRow(row: any): Promise<void>;
644
+ protected handleExpandRow(row: any, event?: Event): Promise<void>;
645
645
  /**
646
646
  * Indicates whether loading is enabled for the column.
647
647
  */
@@ -17,19 +17,25 @@ import { AXDataTableComponent, AXDataTableRowClick } from '@acorex/components/da
17
17
  * - `drop-down-tree` — a tree-like structure for single item selection.
18
18
  * - `multi-select-tree` — a tree-like structure for multiple item selection.
19
19
  * - `multi-column` — a table-structured list for single selection.
20
+ * - `multi-column-tree` — a multi-column table with a drop-down tree inside it (expandable rows).
20
21
  */
21
- type AXLookupMode = 'drop-down-list' | 'multi-select' | 'drop-down-tree' | 'multi-select-tree' | 'multi-column';
22
+ type AXLookupMode = 'drop-down-list' | 'multi-select' | 'drop-down-tree' | 'multi-select-tree' | 'multi-column' | 'multi-column-tree';
22
23
  /**
23
- * A column definition for the `multi-column` lookup mode (rendered via `ax-data-table`).
24
+ * A column definition for the `multi-column` and `multi-column-tree` lookup modes
25
+ * (rendered via `ax-data-table`).
24
26
  *
25
27
  * - `field` — the item property rendered in this column (`ax-text-column` `dataField`).
26
28
  * - `title` — the header text of the column (`ax-text-column` `caption`).
27
29
  * - `width` — optional column width (`120px`, `20%`, or `auto`). Defaults to `auto`.
30
+ * - `expandHandler` — when `true`, this column shows the tree expand/collapse control
31
+ * (`multi-column-tree` only). If omitted, the column matching `textField` (or the first
32
+ * column) is used.
28
33
  */
29
34
  interface AXLookupColumn {
30
35
  field: string;
31
36
  title: string;
32
37
  width?: string;
38
+ expandHandler?: boolean;
33
39
  }
34
40
  /**
35
41
  * A lookup item. Items are plain records; the lookup reads them through
@@ -194,7 +200,7 @@ declare class AXLookupMultiSelectTreeComponent {
194
200
  }
195
201
 
196
202
  /**
197
- * An advanced drop-down (lookup) editor with five modes, `AXDataSource` support, and virtual scrolling.
203
+ * An advanced drop-down (lookup) editor with six modes, `AXDataSource` support, and virtual scrolling.
198
204
  *
199
205
  * Modes (each rendered by its own internal mini component):
200
206
  * - `drop-down-list` — a predefined list of options for picking single values.
@@ -203,6 +209,8 @@ declare class AXLookupMultiSelectTreeComponent {
203
209
  * - `multi-select-tree` — a tree-like structure for multiple item selection.
204
210
  * - `multi-column` — an `ax-data-table` grid; when searchable, the trigger input filters as you type
205
211
  * (on small screens the search field is inside the actionsheet).
212
+ * - `multi-column-tree` — a multi-column `ax-data-table` with a drop-down tree inside it
213
+ * (expandable hierarchical rows). Uses `treeDataSource` + `columns`, or a hierarchical `dataSource`.
206
214
  *
207
215
  * With `adaptivityEnabled` (default `true`), the list opens as a bottom actionsheet on small
208
216
  * screens instead of an anchored dropdown — the same alternate presentation as `ax-select-box`.
@@ -223,12 +231,13 @@ declare class AXLookupComponent extends NXValueComponent implements FormValueCon
223
231
  */
224
232
  mode: _angular_core.InputSignal<AXLookupMode>;
225
233
  /**
226
- * The items source for list-based modes (`drop-down-list`, `multi-select`, `multi-column`).
234
+ * The items source for list-based modes (`drop-down-list`, `multi-select`, `multi-column`)
235
+ * and for `multi-column-tree` when `treeDataSource` is not set.
227
236
  * Accepts an `AXDataSource` (remote paging, `byKey`, server-side filter) or a plain array.
228
237
  */
229
238
  dataSource: _angular_core.InputSignal<AXLookupItem[] | AXDataSource<AXLookupItem>>;
230
239
  /**
231
- * The nodes source for tree modes (`drop-down-tree`, `multi-select-tree`):
240
+ * The nodes source for tree modes (`drop-down-tree`, `multi-select-tree`, `multi-column-tree`):
232
241
  * an array of nodes or a lazy children callback.
233
242
  */
234
243
  treeDataSource: _angular_core.InputSignal<AXTreeViewDataSource>;
@@ -246,13 +255,26 @@ declare class AXLookupComponent extends NXValueComponent implements FormValueCon
246
255
  */
247
256
  disabledField: _angular_core.InputSignal<string>;
248
257
  /**
249
- * Column definitions for the `multi-column` mode (rendered as `ax-text-column` in `ax-data-table`).
258
+ * Column definitions for the `multi-column` and `multi-column-tree` modes
259
+ * (rendered as `ax-text-column` in `ax-data-table`).
250
260
  */
251
261
  columns: _angular_core.InputSignal<AXLookupColumn[]>;
262
+ /**
263
+ * Field used by `multi-column-tree` to fetch children when a row is expanded
264
+ * (`AXDataSource` filter). Defaults to `parentId`. Nested `children` arrays are also supported.
265
+ */
266
+ treeParentField: _angular_core.InputSignal<string>;
267
+ /**
268
+ * Field used by `multi-column-tree` to decide whether a row shows an expand control.
269
+ * Defaults to `hasChild`. Nodes with `children` / `childrenCount` are mapped automatically
270
+ * when using `treeDataSource`.
271
+ */
272
+ hasChildrenField: _angular_core.InputSignal<string>;
252
273
  /**
253
274
  * Whether the trigger accepts typing and filters the datasource (`true`),
254
275
  * or is select-only with no writable input (`false`).
255
- * Applies to `drop-down-list`, `multi-select`, and `multi-column`. Tree modes ignore this.
276
+ * Applies to `drop-down-list`, `multi-select`, `multi-column`, and `multi-column-tree`.
277
+ * Tree-only modes (`drop-down-tree`, `multi-select-tree`) ignore this.
256
278
  * On small screens with `adaptivityEnabled`, search is typed in the actionsheet instead of the trigger.
257
279
  */
258
280
  searchable: _angular_core.InputSignal<boolean>;
@@ -268,7 +290,7 @@ declare class AXLookupComponent extends NXValueComponent implements FormValueCon
268
290
  caption: _angular_core.InputSignal<string>;
269
291
  /**
270
292
  * When `true`, list rows use alternating background colors for easier scanning
271
- * (`drop-down-list`, `multi-select`, and `multi-column` modes).
293
+ * (`drop-down-list`, `multi-select`, `multi-column`, and `multi-column-tree` modes).
272
294
  */
273
295
  alternate: _angular_core.InputSignal<boolean>;
274
296
  /**
@@ -373,7 +395,7 @@ declare class AXLookupComponent extends NXValueComponent implements FormValueCon
373
395
  protected isMultiple: _angular_core.Signal<boolean>;
374
396
  /** Whether the current mode renders a tree. */
375
397
  protected isTreeMode: _angular_core.Signal<boolean>;
376
- /** Whether the current mode can filter a flat list as you type. */
398
+ /** Whether the current mode can filter a list/table as you type. */
377
399
  protected isListSearchMode: _angular_core.Signal<boolean>;
378
400
  /** Whether the trigger input is writable and filters as you type (desktop only). */
379
401
  protected isEditableTrigger: _angular_core.Signal<boolean>;
@@ -383,6 +405,7 @@ declare class AXLookupComponent extends NXValueComponent implements FormValueCon
383
405
  protected sheetSearchText: _angular_core.WritableSignal<string>;
384
406
  /** The datasource for list-based modes; plain arrays are converted. */
385
407
  protected resolvedDataSource: _angular_core.Signal<AXDataSource<AXLookupItem>>;
408
+ protected resolvedTreeDataSource: _angular_core.Signal<AXTreeViewDataSource>;
386
409
  /** The current selection normalized to an array. */
387
410
  protected selectedValues: _angular_core.Signal<unknown[]>;
388
411
  /** The resolved selected items (via cache, datasource `find`/`byKey`, or tree node lookup). */
@@ -454,7 +477,7 @@ declare class AXLookupComponent extends NXValueComponent implements FormValueCon
454
477
  /** Filters the datasource from the actionsheet search field (reads the input so delayed ngModel cannot block typing). */
455
478
  protected onSheetSearchInput(): void;
456
479
  /**
457
- * Commits a single pick (drop-down-list, drop-down-tree, multi-column) and closes the popup.
480
+ * Commits a single pick (drop-down-list, drop-down-tree, multi-column, multi-column-tree) and closes the popup.
458
481
  */
459
482
  protected handleSinglePick(e: AXLookupItemClickEvent): void;
460
483
  /**
@@ -489,7 +512,7 @@ declare class AXLookupComponent extends NXValueComponent implements FormValueCon
489
512
  */
490
513
  reset(isUserInteraction?: boolean): void;
491
514
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXLookupComponent, never>;
492
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXLookupComponent, "ax-lookup", never, { "name": { "alias": "name"; "required": false; "isSignal": true; }; "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; }; "valueItems": { "alias": "valueItems"; "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", "ax-validation-rule"], true, never>;
515
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXLookupComponent, "ax-lookup", never, { "name": { "alias": "name"; "required": false; "isSignal": true; }; "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; }; "treeParentField": { "alias": "treeParentField"; "required": false; "isSignal": true; }; "hasChildrenField": { "alias": "hasChildrenField"; "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; }; "valueItems": { "alias": "valueItems"; "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", "ax-validation-rule"], true, never>;
493
516
  }
494
517
 
495
518
  /**
@@ -651,11 +674,105 @@ declare class AXLookupMultiColumnComponent {
651
674
  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>;
652
675
  }
653
676
 
677
+ /**
678
+ * Internal mini component for the `multi-column-tree` lookup mode:
679
+ * a multi-column `ax-data-table` with a drop-down tree inside it.
680
+ * Rows expand/collapse via the data-table hierarchy (`parentField` / nested `children`).
681
+ *
682
+ * @category Components
683
+ */
684
+ declare class AXLookupMultiColumnTreeComponent {
685
+ /**
686
+ * The datasource providing hierarchical rows (roots on load, children via `parentField`).
687
+ */
688
+ dataSource: _angular_core.InputSignal<AXDataSource<AXLookupItem>>;
689
+ /**
690
+ * The item property used as the selection value (also the data-table row key).
691
+ */
692
+ valueField: _angular_core.InputSignal<string>;
693
+ /**
694
+ * The item property used as the display text. The matching column shows the expand control
695
+ * unless another column sets `expandHandler`.
696
+ */
697
+ textField: _angular_core.InputSignal<string>;
698
+ /**
699
+ * The item property marking an item as disabled.
700
+ */
701
+ disabledField: _angular_core.InputSignal<string>;
702
+ /**
703
+ * Field used by the data table to fetch children (`AXDataSource` filter on expand).
704
+ */
705
+ parentField: _angular_core.InputSignal<string>;
706
+ /**
707
+ * Field used by the data table to decide whether a row can expand.
708
+ */
709
+ hasChildrenField: _angular_core.InputSignal<string>;
710
+ /**
711
+ * Currently selected values (always an array, even for single selection).
712
+ */
713
+ selectedValues: _angular_core.InputSignal<unknown[]>;
714
+ /**
715
+ * The fixed row height in pixels passed to the data table.
716
+ */
717
+ itemHeight: _angular_core.InputSignal<number>;
718
+ /**
719
+ * The maximum number of body rows visible before the table scrolls.
720
+ */
721
+ maxVisibleItems: _angular_core.InputSignal<number>;
722
+ /**
723
+ * Column definitions rendered as `ax-text-column` instances.
724
+ */
725
+ columns: _angular_core.InputSignal<AXLookupColumn[]>;
726
+ /**
727
+ * Optional custom row content. Context: `$implicit` is the row item.
728
+ * When set, replaces the default multi-column cell layout.
729
+ */
730
+ itemTemplate: _angular_core.InputSignal<TemplateRef<unknown>>;
731
+ /**
732
+ * Custom template rendered when the datasource has no items.
733
+ */
734
+ emptyTemplate: _angular_core.InputSignal<TemplateRef<unknown>>;
735
+ /**
736
+ * Custom template rendered while the table is loading.
737
+ */
738
+ loadingTemplate: _angular_core.InputSignal<TemplateRef<unknown>>;
739
+ /**
740
+ * When `true`, table rows use alternating background colors for easier scanning.
741
+ */
742
+ alternate: _angular_core.InputSignal<boolean>;
743
+ /**
744
+ * Emitted when the user picks a row (not when expanding/collapsing).
745
+ */
746
+ itemClick: _angular_core.OutputEmitterRef<AXLookupItemClickEvent>;
747
+ /**
748
+ * Header (~40px) + up to `maxVisibleItems` body rows. Expanded children scroll inside.
749
+ */
750
+ protected tableHeight: _angular_core.Signal<number>;
751
+ protected loadingConfig: _angular_core.Signal<{
752
+ enabled: boolean;
753
+ animation: boolean;
754
+ loadingTemplate: TemplateRef<unknown>;
755
+ }>;
756
+ /** Stable unique key for `@for` — avoids NG0955 when `field` is missing or duplicated. */
757
+ protected trackColumnKey(index: number, column: AXLookupColumn): string;
758
+ protected resolveColumnWidth(column: AXLookupColumn): string | number | 'auto';
759
+ protected isExpandColumn(index: number, column: AXLookupColumn): boolean;
760
+ protected resolveRowCssClass: (row: unknown) => string;
761
+ protected handleRowClick(event: AXDataTableRowClick): void;
762
+ protected handleItemClick(item: AXLookupItem | null | undefined): void;
763
+ protected handleItemMouseDown(event: Event, item: AXLookupItem | null | undefined): void;
764
+ protected isSelected(item: AXLookupItem): boolean;
765
+ protected isDisabled(item: AXLookupItem): boolean;
766
+ private getValue;
767
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXLookupMultiColumnTreeComponent, never>;
768
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXLookupMultiColumnTreeComponent, "ax-lookup-multi-column-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; }; "parentField": { "alias": "parentField"; "required": false; "isSignal": true; }; "hasChildrenField": { "alias": "hasChildrenField"; "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>;
769
+ }
770
+
654
771
  declare class AXLookupModule {
655
772
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXLookupModule, never>;
656
- 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]>;
773
+ static ɵmod: _angular_core.ɵɵNgModuleDeclaration<AXLookupModule, never, [typeof AXLookupComponent, typeof AXLookupDropDownListComponent, typeof AXLookupMultiSelectComponent, typeof AXLookupDropDownTreeComponent, typeof AXLookupMultiSelectTreeComponent, typeof AXLookupMultiColumnComponent, typeof AXLookupMultiColumnTreeComponent], [typeof AXLookupComponent, typeof AXLookupDropDownListComponent, typeof AXLookupMultiSelectComponent, typeof AXLookupDropDownTreeComponent, typeof AXLookupMultiSelectTreeComponent, typeof AXLookupMultiColumnComponent, typeof AXLookupMultiColumnTreeComponent]>;
657
774
  static ɵinj: _angular_core.ɵɵInjectorDeclaration<AXLookupModule>;
658
775
  }
659
776
 
660
- export { AXLookupComponent, AXLookupDropDownListComponent, AXLookupDropDownTreeComponent, AXLookupModule, AXLookupMultiColumnComponent, AXLookupMultiSelectComponent, AXLookupMultiSelectTreeComponent };
777
+ export { AXLookupComponent, AXLookupDropDownListComponent, AXLookupDropDownTreeComponent, AXLookupModule, AXLookupMultiColumnComponent, AXLookupMultiColumnTreeComponent, AXLookupMultiSelectComponent, AXLookupMultiSelectTreeComponent };
661
778
  export type { AXLookupColumn, AXLookupItem, AXLookupItemClickEvent, AXLookupMode, AXLookupSelectionChangedEvent, AXLookupTreeSelectionEvent };