@acorex/components 22.2.13 → 22.2.14

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.
package/package.json CHANGED
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "name": "@acorex/components",
3
- "version": "22.2.13",
3
+ "version": "22.2.14",
4
4
  "peerDependencies": {
5
- "@acorex/core": "22.2.13",
6
- "@acorex/cdk": "22.2.13",
5
+ "@acorex/core": "22.2.14",
6
+ "@acorex/cdk": "22.2.14",
7
7
  "@angular/aria": ">=22.1.0",
8
8
  "polytype": ">=0.17.0",
9
9
  "hammerjs": ">=2.0.8",
@@ -1,7 +1,7 @@
1
1
  import * as i2 from '@acorex/cdk/common';
2
2
  import { AXSortOrder, MXBaseComponent, AXDataSource, AXStyleColorType, AXEvent, AXButtonClickEvent, AXStyleLookType, AXClickEvent, AXItemClickEvent, AXValueChangedEvent } from '@acorex/cdk/common';
3
3
  import * as i0 from '@angular/core';
4
- import { TemplateRef, EventEmitter, WritableSignal, ChangeDetectorRef, OnInit, AfterViewInit, Signal, QueryList } from '@angular/core';
4
+ import { QueryList, TemplateRef, EventEmitter, WritableSignal, ChangeDetectorRef, OnInit, AfterViewInit, Signal } from '@angular/core';
5
5
  import * as i11 from '@acorex/core/format';
6
6
  import { AXFormatOptions } from '@acorex/core/format';
7
7
  import * as i8 from '@acorex/components/button';
@@ -39,6 +39,12 @@ declare abstract class AXDataTableColumnComponent {
39
39
  hasTitle: boolean;
40
40
  sortIndex: number | undefined;
41
41
  sortOrder: AXSortOrder | undefined;
42
+ childColumns: QueryList<AXDataTableColumnComponent>;
43
+ /** Set by the data table when this leaf sits under a fixed top-level band. */
44
+ effectiveFixed: 'start' | 'end' | undefined;
45
+ get isBand(): boolean;
46
+ getLeafColumns(): AXDataTableColumnComponent[];
47
+ getHeaderDepth(): number;
42
48
  abstract get renderCellTemplate(): TemplateRef<unknown>;
43
49
  abstract get renderHeaderTemplate(): TemplateRef<unknown>;
44
50
  abstract get renderFooterTemplate(): TemplateRef<unknown>;
@@ -46,7 +52,7 @@ declare abstract class AXDataTableColumnComponent {
46
52
  abstract get name(): string;
47
53
  get cssClass(): string | undefined;
48
54
  static ɵfac: i0.ɵɵFactoryDeclaration<AXDataTableColumnComponent, never>;
49
- static ɵprov: i0.ɵɵInjectableDeclaration<AXDataTableColumnComponent>;
55
+ static ɵdir: i0.ɵɵDirectiveDeclaration<AXDataTableColumnComponent, never, never, { "caption": { "alias": "caption"; "required": false; }; "width": { "alias": "width"; "required": false; }; "fixed": { "alias": "fixed"; "required": false; }; "allowSorting": { "alias": "allowSorting"; "required": false; }; "allowResizing": { "alias": "allowResizing"; "required": false; }; "hasTitle": { "alias": "hasTitle"; "required": false; }; "sortIndex": { "alias": "sortIndex"; "required": false; }; "sortOrder": { "alias": "sortOrder"; "required": false; }; }, {}, ["childColumns"], never, true, never>;
50
56
  }
51
57
 
52
58
  type AXDataTableCssClassValue = string | null | undefined;
@@ -460,7 +466,7 @@ declare class AXDataTableTextColumnComponent extends AXDataTableColumnComponent
460
466
  */
461
467
  formatOptions: AXFormatOptions;
462
468
  static ɵfac: i0.ɵɵFactoryDeclaration<AXDataTableTextColumnComponent, never>;
463
- static ɵcmp: i0.ɵɵComponentDeclaration<AXDataTableTextColumnComponent, "ax-text-column", never, { "width": { "alias": "width"; "required": false; }; "caption": { "alias": "caption"; "required": false; }; "allowSorting": { "alias": "allowSorting"; "required": false; }; "allowResizing": { "alias": "allowResizing"; "required": false; }; "fixed": { "alias": "fixed"; "required": false; }; "hasTitle": { "alias": "hasTitle"; "required": false; }; "customExpandIcon": { "alias": "customExpandIcon"; "required": false; }; "customCollapseIcon": { "alias": "customCollapseIcon"; "required": false; }; "dataField": { "alias": "dataField"; "required": false; }; "expandHandler": { "alias": "expandHandler"; "required": false; }; "wrapText": { "alias": "wrapText"; "required": false; }; "translate": { "alias": "translate"; "required": false; }; "cellTemplate": { "alias": "cellTemplate"; "required": false; }; "footerTemplate": { "alias": "footerTemplate"; "required": false; }; "headerTemplate": { "alias": "headerTemplate"; "required": false; }; "format": { "alias": "format"; "required": false; }; "formatOptions": { "alias": "formatOptions"; "required": false; }; }, {}, never, never, true, never>;
469
+ static ɵcmp: i0.ɵɵComponentDeclaration<AXDataTableTextColumnComponent, "ax-text-column", never, { "width": { "alias": "width"; "required": false; }; "caption": { "alias": "caption"; "required": false; }; "allowSorting": { "alias": "allowSorting"; "required": false; }; "allowResizing": { "alias": "allowResizing"; "required": false; }; "fixed": { "alias": "fixed"; "required": false; }; "hasTitle": { "alias": "hasTitle"; "required": false; }; "customExpandIcon": { "alias": "customExpandIcon"; "required": false; }; "customCollapseIcon": { "alias": "customCollapseIcon"; "required": false; }; "dataField": { "alias": "dataField"; "required": false; }; "expandHandler": { "alias": "expandHandler"; "required": false; }; "wrapText": { "alias": "wrapText"; "required": false; }; "translate": { "alias": "translate"; "required": false; }; "cellTemplate": { "alias": "cellTemplate"; "required": false; }; "footerTemplate": { "alias": "footerTemplate"; "required": false; }; "headerTemplate": { "alias": "headerTemplate"; "required": false; }; "format": { "alias": "format"; "required": false; }; "formatOptions": { "alias": "formatOptions"; "required": false; }; }, {}, never, ["*"], true, never>;
464
470
  }
465
471
 
466
472
  type AXRowCommandItem = AXButtonItemListItem & {
@@ -546,7 +552,7 @@ declare class AXRowDropdownCommandColumnComponent extends AXBaseRowCommandColumn
546
552
  */
547
553
  protected handleOnItemClick(e: AXItemClickEvent<AXButtonItemComponent>, data: unknown): void;
548
554
  static ɵfac: i0.ɵɵFactoryDeclaration<AXRowDropdownCommandColumnComponent, never>;
549
- static ɵcmp: i0.ɵɵComponentDeclaration<AXRowDropdownCommandColumnComponent, "ax-dropdown-command-column", never, { "width": { "alias": "width"; "required": false; }; "caption": { "alias": "caption"; "required": false; }; "fixed": { "alias": "fixed"; "required": false; }; "footerTemplate": { "alias": "footerTemplate"; "required": false; }; "emptyStateTemplate": { "alias": "emptyStateTemplate"; "required": false; }; "emptyStateText": { "alias": "emptyStateText"; "required": false; }; "items": { "alias": "items"; "required": false; }; }, { "onItemClick": "onItemClick"; }, never, never, true, never>;
555
+ static ɵcmp: i0.ɵɵComponentDeclaration<AXRowDropdownCommandColumnComponent, "ax-dropdown-command-column", never, { "width": { "alias": "width"; "required": false; }; "caption": { "alias": "caption"; "required": false; }; "fixed": { "alias": "fixed"; "required": false; }; "footerTemplate": { "alias": "footerTemplate"; "required": false; }; "emptyStateTemplate": { "alias": "emptyStateTemplate"; "required": false; }; "emptyStateText": { "alias": "emptyStateText"; "required": false; }; "items": { "alias": "items"; "required": false; }; }, { "onItemClick": "onItemClick"; }, never, ["*"], true, never>;
550
556
  }
551
557
  /**
552
558
  * A column for displaying command buttons in a data table.
@@ -608,7 +614,7 @@ declare class AXRowCommandColumnComponent extends AXBaseRowCommandColumnComponen
608
614
  protected getCommandId(rowData: unknown, item: AXRowCommandItem): string;
609
615
  protected handleOnItemClick(e: AXClickEvent, item: AXRowCommandItem, data: unknown): void;
610
616
  static ɵfac: i0.ɵɵFactoryDeclaration<AXRowCommandColumnComponent, never>;
611
- static ɵcmp: i0.ɵɵComponentDeclaration<AXRowCommandColumnComponent, "ax-command-column", never, { "width": { "alias": "width"; "required": false; }; "caption": { "alias": "caption"; "required": false; }; "fixed": { "alias": "fixed"; "required": false; }; "footerTemplate": { "alias": "footerTemplate"; "required": false; }; "items": { "alias": "items"; "required": false; }; }, { "onItemClick": "onItemClick"; }, never, never, true, never>;
617
+ static ɵcmp: i0.ɵɵComponentDeclaration<AXRowCommandColumnComponent, "ax-command-column", never, { "width": { "alias": "width"; "required": false; }; "caption": { "alias": "caption"; "required": false; }; "fixed": { "alias": "fixed"; "required": false; }; "footerTemplate": { "alias": "footerTemplate"; "required": false; }; "items": { "alias": "items"; "required": false; }; }, { "onItemClick": "onItemClick"; }, never, ["*"], true, never>;
612
618
  }
613
619
 
614
620
  /**
@@ -656,7 +662,7 @@ declare class AXRowExpandColumnComponent extends AXDataTableColumnComponent {
656
662
  */
657
663
  get loadingEnabled(): boolean;
658
664
  static ɵfac: i0.ɵɵFactoryDeclaration<AXRowExpandColumnComponent, never>;
659
- static ɵcmp: i0.ɵɵComponentDeclaration<AXRowExpandColumnComponent, "ax-expand-column", never, { "width": { "alias": "width"; "required": false; }; "caption": { "alias": "caption"; "required": false; }; "fixed": { "alias": "fixed"; "required": false; }; }, {}, never, never, true, never>;
665
+ static ɵcmp: i0.ɵɵComponentDeclaration<AXRowExpandColumnComponent, "ax-expand-column", never, { "width": { "alias": "width"; "required": false; }; "caption": { "alias": "caption"; "required": false; }; "fixed": { "alias": "fixed"; "required": false; }; }, {}, never, ["*"], true, never>;
660
666
  }
661
667
 
662
668
  /**
@@ -728,7 +734,7 @@ declare class AXRowIndexColumnComponent extends AXDataTableColumnComponent imple
728
734
  */
729
735
  get cssClass(): string | undefined;
730
736
  static ɵfac: i0.ɵɵFactoryDeclaration<AXRowIndexColumnComponent, never>;
731
- static ɵcmp: i0.ɵɵComponentDeclaration<AXRowIndexColumnComponent, "ax-index-column", never, { "width": { "alias": "width"; "required": false; }; "caption": { "alias": "caption"; "required": false; }; "fixed": { "alias": "fixed"; "required": false; }; "footerTemplate": { "alias": "footerTemplate"; "required": false; }; "padZero": { "alias": "padZero"; "required": false; }; }, {}, never, never, true, never>;
737
+ static ɵcmp: i0.ɵɵComponentDeclaration<AXRowIndexColumnComponent, "ax-index-column", never, { "width": { "alias": "width"; "required": false; }; "caption": { "alias": "caption"; "required": false; }; "fixed": { "alias": "fixed"; "required": false; }; "footerTemplate": { "alias": "footerTemplate"; "required": false; }; "padZero": { "alias": "padZero"; "required": false; }; }, {}, never, ["*"], true, never>;
732
738
  }
733
739
 
734
740
  /**
@@ -740,6 +746,12 @@ declare class AXRowIndexColumnComponent extends AXDataTableColumnComponent imple
740
746
  */
741
747
  declare class AXRowSelectColumnComponent extends AXDataTableColumnComponent {
742
748
  private grid;
749
+ /**
750
+ * When enabled, shows a header dropdown with reverse and unselect actions for visible rows.
751
+ *
752
+ * @defaultValue `false`
753
+ */
754
+ advanceSelect: i0.InputSignal<boolean>;
743
755
  /**
744
756
  * @ignore
745
757
  */
@@ -754,7 +766,7 @@ declare class AXRowSelectColumnComponent extends AXDataTableColumnComponent {
754
766
  private _contentHeaderTemplate;
755
767
  /**
756
768
  * Gets the template used to render the column header.
757
- * Renders a split control: the checkbox selects or clears all visible rows; the chevron opens a menu with Reverse and Unselect actions scoped to visible rows.
769
+ * Renders the header checkbox; when {@link advanceSelect} is enabled, a chevron opens a menu with Reverse and Unselect actions scoped to visible rows.
758
770
  */
759
771
  get renderHeaderTemplate(): TemplateRef<unknown>;
760
772
  /**
@@ -829,7 +841,30 @@ declare class AXRowSelectColumnComponent extends AXDataTableColumnComponent {
829
841
  */
830
842
  get cssClass(): string | undefined;
831
843
  static ɵfac: i0.ɵɵFactoryDeclaration<AXRowSelectColumnComponent, never>;
832
- static ɵcmp: i0.ɵɵComponentDeclaration<AXRowSelectColumnComponent, "ax-select-column", never, { "width": { "alias": "width"; "required": false; }; "caption": { "alias": "caption"; "required": false; }; "fixed": { "alias": "fixed"; "required": false; }; }, {}, never, never, true, never>;
844
+ static ɵcmp: i0.ɵɵComponentDeclaration<AXRowSelectColumnComponent, "ax-select-column", never, { "width": { "alias": "width"; "required": false; }; "caption": { "alias": "caption"; "required": false; }; "fixed": { "alias": "fixed"; "required": false; }; "advanceSelect": { "alias": "advanceSelect"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
845
+ }
846
+
847
+ interface DataTableBandHeaderCell {
848
+ type: 'band';
849
+ caption: string;
850
+ colspan: number;
851
+ /** Top-level column used for drag-reorder on the first header row. */
852
+ column: AXDataTableColumnComponent;
853
+ }
854
+ interface DataTableLeafHeaderCell {
855
+ type: 'leaf';
856
+ column: AXDataTableColumnComponent;
857
+ rowspan: number;
858
+ }
859
+ interface DataTableGapHeaderCell {
860
+ type: 'gap';
861
+ }
862
+ type DataTableHeaderCell = DataTableBandHeaderCell | DataTableLeafHeaderCell | DataTableGapHeaderCell;
863
+ interface DataTableHeaderRowModel {
864
+ start: DataTableHeaderCell[];
865
+ normal: DataTableHeaderCell[];
866
+ end: DataTableHeaderCell[];
867
+ includeSpacer: boolean;
833
868
  }
834
869
 
835
870
  /**
@@ -883,19 +918,44 @@ declare class AXDataTableComponent extends AXBaseDataTable implements OnInit, Af
883
918
  /**
884
919
  * @ignore
885
920
  */
886
- protected columnsList: WritableSignal<any[]>;
921
+ protected columnsList: WritableSignal<AXDataTableColumnComponent[]>;
922
+ /**
923
+ * Top-level column tree (bands and leaves) in display order.
924
+ * @ignore
925
+ */
926
+ protected topLevelColumnsList: WritableSignal<AXDataTableColumnComponent[]>;
927
+ /**
928
+ * @ignore
929
+ */
930
+ protected headerDepth: Signal<number>;
931
+ /**
932
+ * @ignore
933
+ */
934
+ protected headerRows: Signal<DataTableHeaderRowModel[]>;
935
+ /**
936
+ * @ignore
937
+ */
938
+ protected topLevelEndFixedColumnsList: Signal<AXDataTableColumnComponent[]>;
887
939
  /**
888
940
  * @ignore
889
941
  */
890
- protected endFixedColumnsList: Signal<any[]>;
942
+ protected topLevelStartFixedColumnsList: Signal<AXDataTableColumnComponent[]>;
891
943
  /**
892
944
  * @ignore
893
945
  */
894
- protected startFixedColumnsList: Signal<any[]>;
946
+ protected topLevelNormalColumnsList: Signal<AXDataTableColumnComponent[]>;
895
947
  /**
896
948
  * @ignore
897
949
  */
898
- protected normalColumnsList: Signal<any[]>;
950
+ protected endFixedColumnsList: Signal<AXDataTableColumnComponent[]>;
951
+ /**
952
+ * @ignore
953
+ */
954
+ protected startFixedColumnsList: Signal<AXDataTableColumnComponent[]>;
955
+ /**
956
+ * @ignore
957
+ */
958
+ protected normalColumnsList: Signal<AXDataTableColumnComponent[]>;
899
959
  /**
900
960
  * True when a text column owns the tree expander. That column stays `width: auto`
901
961
  * so leftover table space is used for nested indent instead of the empty spacer.
@@ -905,6 +965,28 @@ declare class AXDataTableComponent extends AXBaseDataTable implements OnInit, Af
905
965
  * @ignore
906
966
  */
907
967
  protected isSelectColumn(column: AXDataTableColumnComponent): column is AXRowSelectColumnComponent;
968
+ /**
969
+ * @ignore
970
+ */
971
+ protected getEffectiveFixed(column: AXDataTableColumnComponent): 'start' | 'end' | undefined;
972
+ /**
973
+ * @ignore
974
+ */
975
+ protected isHeaderBandCell(cell: DataTableHeaderCell): cell is DataTableBandHeaderCell;
976
+ /**
977
+ * @ignore
978
+ */
979
+ protected isHeaderGapCell(cell: DataTableHeaderCell): boolean;
980
+ /**
981
+ * @ignore
982
+ */
983
+ protected asLeafHeaderCell(cell: DataTableHeaderCell): DataTableLeafHeaderCell;
984
+ /**
985
+ * @ignore
986
+ */
987
+ protected isTopLevelColumn(column: AXDataTableColumnComponent): boolean;
988
+ private refreshColumnStructure;
989
+ private watchBandChildren;
908
990
  /**
909
991
  * @ignore
910
992
  */
@@ -913,6 +995,7 @@ declare class AXDataTableComponent extends AXBaseDataTable implements OnInit, Af
913
995
  startWidth: number;
914
996
  column: AXDataTableColumnComponent | null;
915
997
  thElement: HTMLElement | null;
998
+ colElement: HTMLElement | null;
916
999
  /** True when the resize handle sits on the column's trailing edge in screen coordinates. */
917
1000
  resizeFromTrailingEdge: boolean;
918
1001
  };
@@ -1224,6 +1307,11 @@ declare class AXDataTableComponent extends AXBaseDataTable implements OnInit, Af
1224
1307
  * @ignore
1225
1308
  */
1226
1309
  private resetResizingProcess;
1310
+ /**
1311
+ * Index of a leaf column in `<colgroup>` (start → normal → spacer → end).
1312
+ */
1313
+ private getColumnColIndex;
1314
+ private resolveColElementForColumn;
1227
1315
  /**
1228
1316
  * @ignore
1229
1317
  */