@shival99/z-ui 2.0.65 → 2.0.67

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,6 +1,6 @@
1
1
  {
2
2
  "name": "@shival99/z-ui",
3
- "version": "2.0.65",
3
+ "version": "2.0.67",
4
4
  "description": "Z-UI: Modern Angular UI Component Library - A comprehensive, high-performance design system built with Angular 20+, featuring 40+ customizable components with dark mode, accessibility, and enterprise-ready features.",
5
5
  "keywords": [
6
6
  "angular",
@@ -918,6 +918,16 @@ interface ZTableDataRowItem<T> {
918
918
  isGroupChild?: boolean;
919
919
  }
920
920
  type ZTableGroupedRowItem<T> = ZTableGroupRowItem | ZTableDataRowItem<T>;
921
+ interface ZVirtualFlatGroupHeader {
922
+ type: 'group-header';
923
+ groupItem: ZTableGroupRowItem;
924
+ }
925
+ interface ZVirtualFlatData<T> {
926
+ type: 'data';
927
+ rows: Row<T>[];
928
+ isGroupChild: boolean;
929
+ }
930
+ type ZVirtualFlatItem<T> = ZVirtualFlatGroupHeader | ZVirtualFlatData<T>;
921
931
  type ZTableResolvedCellSelectionOptions<T> = Required<Pick<ZTableCellSelectionOptions<T>, 'enabled' | 'range' | 'contextMenu' | 'copyWithHeaders'>> & Pick<ZTableCellSelectionOptions<T>, 'disabledColumnIds' | 'isCellDisabled'>;
922
932
  declare class ZTableComponent<T> implements AfterViewInit {
923
933
  private static _dragInstanceCount;
@@ -1122,6 +1132,21 @@ declare class ZTableComponent<T> implements AfterViewInit {
1122
1132
  protected readonly activeGroupingColumnId: _angular_core.Signal<string | null>;
1123
1133
  protected readonly groupableColumnMap: _angular_core.Signal<Record<string, boolean>>;
1124
1134
  protected readonly groupedCenterRowItems: _angular_core.Signal<ZTableGroupedRowItem<T>[]>;
1135
+ /**
1136
+ * EN: Flat list of body rows in the exact order they are rendered. When grouping is active the
1137
+ * center rows are re-ordered group-by-group, so the flat `table.getRowModel().rows` no longer
1138
+ * matches the visual order. The `z-at-bottom` border logic must use this visual order, otherwise
1139
+ * `border-bottom: none` is applied to whichever row happens to be last in the flat model — which
1140
+ * after grouping lands somewhere in the middle of the table.
1141
+ * VI: Danh sách phẳng các row body theo đúng thứ tự render. Khi đang group, center rows bị sắp xếp
1142
+ * lại theo từng group nên `table.getRowModel().rows` không còn khớp thứ tự hiển thị. Logic
1143
+ * border `z-at-bottom` phải dùng thứ tự hiển thị này, nếu không `border-bottom: none` sẽ bị gán
1144
+ * nhầm cho row đang nằm ở giữa bảng.
1145
+ */
1146
+ protected readonly renderedBodyRows: _angular_core.Signal<Row<T>[]>;
1147
+ protected readonly virtualGroupedFlatItems: _angular_core.Signal<ZVirtualFlatItem<T>[]>;
1148
+ protected _getVirtualGroupHeader(item: ZVirtualFlatItem<T> | undefined): ZTableGroupRowItem | null;
1149
+ protected _isVirtualGroupChild(item: ZVirtualFlatItem<T> | undefined): boolean;
1125
1150
  protected readonly searchConfig: _angular_core.Signal<{
1126
1151
  enabled: boolean;
1127
1152
  placeholder: string;
@@ -1501,7 +1526,7 @@ declare class ZTableActionsComponent<T = unknown> {
1501
1526
  readonly zConfig: _angular_core.InputSignal<ZTableActionColumnConfig<T>>;
1502
1527
  readonly zRow: _angular_core.InputSignal<T>;
1503
1528
  readonly zRowId: _angular_core.InputSignal<string>;
1504
- readonly zDropdownButtonSize: _angular_core.InputSignal<"sm" | "default" | "lg" | "xs" | "xl" | null | undefined>;
1529
+ readonly zDropdownButtonSize: _angular_core.InputSignal<"default" | "sm" | "lg" | "xs" | "xl" | null | undefined>;
1505
1530
  readonly zActionClick: _angular_core.OutputEmitterRef<ZTableActionClickEvent<T>>;
1506
1531
  protected readonly allActions: _angular_core.Signal<ZTableActionItem<T>[]>;
1507
1532
  protected readonly shouldShowAsButtons: _angular_core.Signal<boolean>;