@acorex/components 22.4.20 → 22.4.22

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 (43) hide show
  1. package/fesm2022/acorex-components-calendar.mjs +3 -2
  2. package/fesm2022/acorex-components-calendar.mjs.map +1 -1
  3. package/fesm2022/acorex-components-combo-box.mjs +44 -2
  4. package/fesm2022/acorex-components-combo-box.mjs.map +1 -1
  5. package/fesm2022/acorex-components-command.mjs +2 -2
  6. package/fesm2022/acorex-components-command.mjs.map +1 -1
  7. package/fesm2022/acorex-components-data-list.mjs +1 -1
  8. package/fesm2022/acorex-components-data-list.mjs.map +1 -1
  9. package/fesm2022/acorex-components-data-table.mjs +107 -58
  10. package/fesm2022/acorex-components-data-table.mjs.map +1 -1
  11. package/fesm2022/acorex-components-decorators.mjs +2 -2
  12. package/fesm2022/acorex-components-decorators.mjs.map +1 -1
  13. package/fesm2022/acorex-components-image-editor.mjs +8 -8
  14. package/fesm2022/acorex-components-image-editor.mjs.map +1 -1
  15. package/fesm2022/acorex-components-kanban.mjs +1 -1
  16. package/fesm2022/acorex-components-kanban.mjs.map +1 -1
  17. package/fesm2022/acorex-components-list.mjs +1 -1
  18. package/fesm2022/acorex-components-list.mjs.map +1 -1
  19. package/fesm2022/acorex-components-loading.mjs +2 -2
  20. package/fesm2022/acorex-components-loading.mjs.map +1 -1
  21. package/fesm2022/acorex-components-lookup.mjs +40 -2
  22. package/fesm2022/acorex-components-lookup.mjs.map +1 -1
  23. package/fesm2022/acorex-components-media-viewer.mjs +1 -1
  24. package/fesm2022/acorex-components-media-viewer.mjs.map +1 -1
  25. package/fesm2022/acorex-components-menu.mjs +4 -4
  26. package/fesm2022/acorex-components-menu.mjs.map +1 -1
  27. package/fesm2022/acorex-components-paint.mjs +1 -1
  28. package/fesm2022/acorex-components-paint.mjs.map +1 -1
  29. package/fesm2022/acorex-components-scheduler.mjs +8 -8
  30. package/fesm2022/acorex-components-scheduler.mjs.map +1 -1
  31. package/fesm2022/acorex-components-side-menu.mjs +1 -1
  32. package/fesm2022/acorex-components-side-menu.mjs.map +1 -1
  33. package/fesm2022/acorex-components-sidebar.mjs +2 -2
  34. package/fesm2022/acorex-components-sidebar.mjs.map +1 -1
  35. package/fesm2022/acorex-components-tooltip.mjs +48 -4
  36. package/fesm2022/acorex-components-tooltip.mjs.map +1 -1
  37. package/fesm2022/acorex-components-tree-view.mjs +1 -1
  38. package/fesm2022/acorex-components-tree-view.mjs.map +1 -1
  39. package/package.json +3 -3
  40. package/types/acorex-components-combo-box.d.ts +5 -0
  41. package/types/acorex-components-data-table.d.ts +30 -6
  42. package/types/acorex-components-lookup.d.ts +5 -0
  43. package/types/acorex-components-tooltip.d.ts +11 -1
package/package.json CHANGED
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "name": "@acorex/components",
3
- "version": "22.4.20",
3
+ "version": "22.4.22",
4
4
  "peerDependencies": {
5
- "@acorex/core": "22.4.20",
6
- "@acorex/cdk": "22.4.20",
5
+ "@acorex/core": "22.4.22",
6
+ "@acorex/cdk": "22.4.22",
7
7
  "@angular/aria": ">=22.1.0",
8
8
  "polytype": ">=0.17.0",
9
9
  "hammerjs": ">=2.0.8",
@@ -246,6 +246,11 @@ declare class AXComboBoxComponent extends NXValueComponent implements FormValueC
246
246
  protected onSheetSearchKeydown(e: AXHtmlEvent<KeyboardEvent>): void;
247
247
  /** Blocks typing when the trigger is not editable (keeps Tab / keyboard open working). */
248
248
  protected onBeforeInput(event: Event): void;
249
+ /**
250
+ * On pointer down, select the committed label so the next keystroke replaces it
251
+ * instead of editing character-by-character (single-select searchable trigger).
252
+ */
253
+ protected onTriggerPointerDown(event: PointerEvent): void;
249
254
  /**
250
255
  * Combobox `expanded` two-way binding. On actionsheet with in-sheet search, ignore collapse
251
256
  * so focusing the search field (Aria combobox blur) does not close the popup. Dismiss is owned
@@ -123,6 +123,16 @@ interface AXDataTableAutoFitColumnOptions {
123
123
  maxWidth?: number;
124
124
  /** When true, only the header cell is measured (e.g. before row data exists). */
125
125
  headerOnly?: boolean;
126
+ /**
127
+ * When true, `onColumnSizeChanged` is emitted with `isUserInteraction: true` (e.g. double-click resize handle).
128
+ * @defaultValue `false`
129
+ */
130
+ isUserInteraction?: boolean;
131
+ }
132
+ /** Options for auto-fitting columns configured with `width: 'auto'`. */
133
+ interface AXDataTableAutoFitColumnsWithAutoWidthOptions {
134
+ /** When true, only header cells are measured (e.g. before row data exists). */
135
+ headerOnly?: boolean;
126
136
  }
127
137
  /** Options for auto-fitting all columns to their content width. */
128
138
  interface AXDataTableAutoFitAllColumnsOptions {
@@ -321,6 +331,11 @@ declare abstract class AXBaseDataTable extends MXBaseComponent {
321
331
  * Auto-fits a single column by its `name` / data field.
322
332
  */
323
333
  abstract autoFitColumnByName(columnName: string, options?: AXDataTableAutoFitColumnOptions): void;
334
+ /**
335
+ * Auto-fits columns that were configured with `width: 'auto'` (and pending header-only passes).
336
+ * Call again after async cell content (e.g. widgets or lookup labels) has rendered.
337
+ */
338
+ abstract autoFitColumnsWithAutoWidth(options?: AXDataTableAutoFitColumnsWithAutoWidthOptions): void;
324
339
  static ɵfac: i0.ɵɵFactoryDeclaration<AXBaseDataTable, never>;
325
340
  static ɵprov: i0.ɵɵInjectableDeclaration<any>;
326
341
  }
@@ -769,6 +784,7 @@ declare class AXRowSelectColumnComponent extends AXDataTableColumnComponent {
769
784
  * @defaultValue `false`
770
785
  */
771
786
  advanceSelect: i0.InputSignal<boolean>;
787
+ private readonly syncAdvanceSelectColumnWidth;
772
788
  /**
773
789
  * @ignore
774
790
  */
@@ -1416,12 +1432,11 @@ declare class AXDataTableComponent extends AXBaseDataTable implements OnInit, Af
1416
1432
  */
1417
1433
  private calculateStickyColumnsPositions;
1418
1434
  /**
1419
- * Auto-fits columns that have width='auto'.
1420
- * Runs header-only sizing after view init (`headerOnly: true`) and full measurement after data load.
1421
- *
1422
- * @ignore
1435
+ * Auto-fits columns that have `width: 'auto'` (captured at init) and columns awaiting a full pass after header-only sizing.
1436
+ * The table runs a header-only pass after view init and a best-effort pass ~100ms after data loads; cell templates that
1437
+ * render asynchronously should call {@link autoFitColumnByName} or this method again once content is in the DOM.
1423
1438
  */
1424
- private autoFitColumnsWithAutoWidth;
1439
+ autoFitColumnsWithAutoWidth(options?: AXDataTableAutoFitColumnsWithAutoWidthOptions): void;
1425
1440
  /**
1426
1441
  * Auto-fits all resizable columns to their content width.
1427
1442
  * Call this whenever row data or templates change and column widths should be recalculated.
@@ -1432,6 +1447,7 @@ declare class AXDataTableComponent extends AXBaseDataTable implements OnInit, Af
1432
1447
  * Similar to Excel's "AutoFit Column Width" feature.
1433
1448
  *
1434
1449
  * @param columnIndex - 0-based index in the columns `QueryList`.
1450
+ * @param options - Measurement options; programmatic calls default to `isUserInteraction: false`.
1435
1451
  */
1436
1452
  autoFitColumn(columnIndex: number, options?: AXDataTableAutoFitColumnOptions): void;
1437
1453
  /**
@@ -1440,6 +1456,10 @@ declare class AXDataTableComponent extends AXBaseDataTable implements OnInit, Af
1440
1456
  */
1441
1457
  private measureColumnContentWidth;
1442
1458
  private isCommandColumn;
1459
+ /**
1460
+ * Select-column header chevron is absolutely positioned, so DOM auto-fit under-reports width.
1461
+ */
1462
+ private measureSelectColumnWidth;
1443
1463
  /**
1444
1464
  * Command buttons are a fixed icon size inside the table. Cloning them outside
1445
1465
  * `ax-data-table` drops that size and measures default button padding instead.
@@ -1467,6 +1487,10 @@ declare class AXDataTableComponent extends AXBaseDataTable implements OnInit, Af
1467
1487
  private observeTableWrapper;
1468
1488
  /**
1469
1489
  * Auto-fits a single column by its `name` / data field.
1490
+ * Call after async cell content has rendered when `width` is `'auto'`.
1491
+ *
1492
+ * @param columnName - Column `name` / data field.
1493
+ * @param options - Measurement options; programmatic calls default to `isUserInteraction: false`.
1470
1494
  */
1471
1495
  autoFitColumnByName(columnName: string, options?: AXDataTableAutoFitColumnOptions): void;
1472
1496
  static ɵfac: i0.ɵɵFactoryDeclaration<AXDataTableComponent, never>;
@@ -1480,4 +1504,4 @@ declare class AXDataTableModule {
1480
1504
  }
1481
1505
 
1482
1506
  export { AXBaseDataTable, AXBaseRowCommandColumnComponent, AXDataTableColumnComponent, AXDataTableColumnResizableDirective, AXDataTableComponent, AXDataTableModule, AXDataTableTextColumnComponent, AXRowCommandColumnComponent, AXRowDropdownCommandColumnComponent, AXRowExpandColumnComponent, AXRowIndexColumnComponent, AXRowSelectColumnComponent, AX_DATA_TABLE_ROW_COLOR_TYPES, AX_DATA_TABLE_ROW_HIGHLIGHT_DEFAULT_BADGE };
1483
- export type { AXColumnsOrderChangedEvent, AXDataTableAutoFitAllColumnsOptions, AXDataTableAutoFitColumnOptions, AXDataTableCellCssClassResolver, AXDataTableCssClassValue, AXDataTableLook, AXDataTableRowClick, AXDataTableRowColorType, AXDataTableRowCssClassResolver, AXDataTableRowDbClick, AXDataTableRowHighlight, AXDataTableRowHighlightOptions, AXDataTableScrollIndexChanged, AXRowCommandItem, AXRowCommandItemClickEvent, onColumnSizeChangedEvent };
1507
+ export type { AXColumnsOrderChangedEvent, AXDataTableAutoFitAllColumnsOptions, AXDataTableAutoFitColumnOptions, AXDataTableAutoFitColumnsWithAutoWidthOptions, AXDataTableCellCssClassResolver, AXDataTableCssClassValue, AXDataTableLook, AXDataTableRowClick, AXDataTableRowColorType, AXDataTableRowCssClassResolver, AXDataTableRowDbClick, AXDataTableRowHighlight, AXDataTableRowHighlightOptions, AXDataTableScrollIndexChanged, AXRowCommandItem, AXRowCommandItemClickEvent, onColumnSizeChangedEvent };
@@ -568,6 +568,11 @@ declare class AXLookupComponent<T = AXLookupItem> extends NXValueComponent imple
568
568
  protected onSelectAllHeaderMouseDown(event: Event): void;
569
569
  /** Blocks typing when the trigger is not editable (keeps Tab / keyboard open working). */
570
570
  protected onBeforeInput(event: Event): void;
571
+ /**
572
+ * On pointer down, select the committed label so the next keystroke replaces it
573
+ * instead of editing character-by-character (single-select searchable trigger).
574
+ */
575
+ protected onTriggerPointerDown(event: PointerEvent): void;
571
576
  /**
572
577
  * Returns focus to the search field when list navigation requests it.
573
578
  */
@@ -30,6 +30,12 @@ declare class AXTooltipDirective {
30
30
  axTooltipDisabled: i0.InputSignal<boolean>;
31
31
  content: i0.InputSignal<string | TemplateRef<unknown>>;
32
32
  context: i0.InputSignal<unknown>;
33
+ /**
34
+ * When true, the tooltip opens on hover only if the host or a descendant is horizontally truncated.
35
+ *
36
+ * @defaultValue false
37
+ */
38
+ axTooltipOverflowOnly: i0.InputSignal<boolean>;
33
39
  private _placement;
34
40
  get placement(): AXPlacementType;
35
41
  set placement(v: AXPlacementType);
@@ -48,8 +54,12 @@ declare class AXTooltipDirective {
48
54
  private popoverRef;
49
55
  private ensurePopover;
50
56
  close(): void;
57
+ /** @ignore */
58
+ protected onHostMouseEnter(): void;
59
+ private isOverflowing;
60
+ private elementOverflows;
51
61
  static ɵfac: i0.ɵɵFactoryDeclaration<AXTooltipDirective, never>;
52
- static ɵdir: i0.ɵɵDirectiveDeclaration<AXTooltipDirective, "[axTooltip]", never, { "axTooltipDisabled": { "alias": "axTooltipDisabled"; "required": false; "isSignal": true; }; "content": { "alias": "axTooltip"; "required": false; "isSignal": true; }; "context": { "alias": "axTooltipContext"; "required": false; "isSignal": true; }; "placement": { "alias": "axTooltipPlacement"; "required": false; }; "offsetX": { "alias": "axTooltipOffsetX"; "required": false; }; "offsetY": { "alias": "axTooltipOffsetY"; "required": false; }; "openAfter": { "alias": "axTooltipOpenAfter"; "required": false; }; "closeAfter": { "alias": "axTooltipCloseAfter"; "required": false; }; }, {}, never, never, true, never>;
62
+ static ɵdir: i0.ɵɵDirectiveDeclaration<AXTooltipDirective, "[axTooltip]", never, { "axTooltipDisabled": { "alias": "axTooltipDisabled"; "required": false; "isSignal": true; }; "content": { "alias": "axTooltip"; "required": false; "isSignal": true; }; "context": { "alias": "axTooltipContext"; "required": false; "isSignal": true; }; "axTooltipOverflowOnly": { "alias": "axTooltipOverflowOnly"; "required": false; "isSignal": true; }; "placement": { "alias": "axTooltipPlacement"; "required": false; }; "offsetX": { "alias": "axTooltipOffsetX"; "required": false; }; "offsetY": { "alias": "axTooltipOffsetY"; "required": false; }; "openAfter": { "alias": "axTooltipOpenAfter"; "required": false; }; "closeAfter": { "alias": "axTooltipCloseAfter"; "required": false; }; }, {}, never, never, true, never>;
53
63
  }
54
64
 
55
65
  declare class AXTooltipModule {