@shival99/z-ui 2.0.89 → 2.0.91

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.89",
3
+ "version": "2.0.91",
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",
@@ -317,6 +317,7 @@ interface ZTableFooterColumnConfig<T> {
317
317
  contentStyle?: Record<string, string> | ((info: HeaderContext<T, unknown>) => Record<string, string>);
318
318
  tooltip?: string | ZTooltipConfig;
319
319
  }
320
+ type ZTableFooterConfig<T> = ZTableFooterColumnConfig<T> | ZTableHeaderContent<T>;
320
321
  /**
321
322
  * Primary column definition — the consumer-facing API.
322
323
  * Converted to TanStack ColumnDef internally via `columnConfigToColumnDef()`.
@@ -339,7 +340,8 @@ interface ZTableColumnConfig<T> {
339
340
  accessorFn?: (row: T) => unknown;
340
341
  header?: ZTableHeaderColumnConfig<T> | ZTableHeaderContent<T>;
341
342
  body?: ZTableBodyColumnConfig<T> | ZTableCellContent<T>;
342
- footer?: ZTableFooterColumnConfig<T> | ZTableHeaderContent<T>;
343
+ /** Một cấu hình footer hoặc một cấu hình cho mỗi hàng footer. */
344
+ footer?: ZTableFooterConfig<T> | ZTableFooterConfig<T>[];
343
345
  size?: number;
344
346
  minSize?: number;
345
347
  maxSize?: number;
@@ -1142,6 +1144,11 @@ declare class ZTableComponent<T> implements AfterViewInit {
1142
1144
  private _columnConfigCache;
1143
1145
  private _lastColumnsRef;
1144
1146
  protected readonly pinnedColumnIds: _angular_core.Signal<string[]>;
1147
+ protected readonly pinAvailabilityMap: _angular_core.Signal<Record<string, {
1148
+ left: boolean;
1149
+ right: boolean;
1150
+ }>>;
1151
+ protected readonly isPinnedLayoutWithinContainer: _angular_core.Signal<boolean>;
1145
1152
  protected readonly pendingVisibleColumns: _angular_core.WritableSignal<string[]>;
1146
1153
  protected readonly pendingColumnOrder: _angular_core.WritableSignal<string[]>;
1147
1154
  protected readonly pendingShowHeaderFooterShadow: _angular_core.WritableSignal<boolean>;
@@ -1289,6 +1296,7 @@ declare class ZTableComponent<T> implements AfterViewInit {
1289
1296
  depth: number;
1290
1297
  headers: _tanstack_angular_table.Header<T, unknown>[];
1291
1298
  }[]>;
1299
+ private _maxFooterArrayRows;
1292
1300
  protected readonly bottomRowsReversed: _angular_core.Signal<Row<T>[]>;
1293
1301
  protected readonly leftHeaderRow: _angular_core.Signal<_tanstack_angular_table.Header<T, unknown>[]>;
1294
1302
  protected readonly centerHeaderRow: _angular_core.Signal<_tanstack_angular_table.Header<T, unknown>[]>;
@@ -1298,18 +1306,8 @@ declare class ZTableComponent<T> implements AfterViewInit {
1298
1306
  protected readonly shouldFooterShowShadow: _angular_core.Signal<boolean>;
1299
1307
  protected readonly tbodyContainerWidth: _angular_core.WritableSignal<number>;
1300
1308
  protected readonly tbodyContainerHeight: _angular_core.WritableSignal<number>;
1301
- /** DOM-measured widths of all visible columns, keyed by column id. Updated after each render cycle. */
1302
- protected readonly _colDomWidthMap: _angular_core.WritableSignal<Record<string, number>>;
1303
- /** CSS vars for pinned column offsets: --pin-left-{id} and --pin-right-{id}. Set on <table> via columnSizeVars. */
1304
- protected readonly columnPinningVars: _angular_core.Signal<Record<string, string>>;
1309
+ protected readonly colDomWidthMap: _angular_core.WritableSignal<Record<string, number>>;
1305
1310
  private readonly _colDomWidthUpdater;
1306
- /**
1307
- * Returns a fixed pixel width for a column when it can be determined without DOM measurement:
1308
- * - `size === minSize === maxSize` (all equal, all set) → fixed
1309
- * - `config.width` is a non-percent px string → fixed
1310
- * Returns null when the column width is flexible and must be measured from DOM.
1311
- */
1312
- private _resolveFixedColumnWidth;
1313
1311
  protected readonly skeletonRowHeight: _angular_core.WritableSignal<number>;
1314
1312
  protected readonly skeletonRowCount: _angular_core.Signal<number>;
1315
1313
  protected readonly skeletonRows: _angular_core.Signal<number[]>;
@@ -1317,9 +1315,7 @@ declare class ZTableComponent<T> implements AfterViewInit {
1317
1315
  protected readonly dynamicGroupHeights: _angular_core.Signal<any[]>;
1318
1316
  protected readonly columnSizing: _angular_core.Signal<ColumnSizingState>;
1319
1317
  protected readonly columnSizingInfo: _angular_core.Signal<_tanstack_angular_table.ColumnSizingInfoState>;
1320
- protected readonly columnSizeVars: _angular_core.Signal<{
1321
- [x: string]: string | number;
1322
- }>;
1318
+ protected readonly columnSizeVars: _angular_core.Signal<Record<string, number>>;
1323
1319
  protected readonly table: ReturnType<typeof createAngularTable<T>>;
1324
1320
  private readonly _virtualGroupCount;
1325
1321
  protected readonly selectedRowIds: _angular_core.Signal<string[]>;
@@ -1470,6 +1466,8 @@ declare class ZTableComponent<T> implements AfterViewInit {
1470
1466
  onToggleColumnVisibility(columnId: string): void;
1471
1467
  onToggleColumnPin(columnId: string, position: 'left' | 'right'): void;
1472
1468
  handleColumnPin(columnId: string, position: 'left' | 'right' | false): void;
1469
+ private _canPinWithinViewport;
1470
+ private _getPinnedWidth;
1473
1471
  toggleColumnVisibility(columnId: string): void;
1474
1472
  refreshColumnPopoverPositions(...popovers: ZPopoverDirective[]): void;
1475
1473
  setActiveColumnVisibilityPopover(popover: ZPopoverDirective): void;
@@ -1700,7 +1698,7 @@ declare const isHeaderConfig: <T>(config: ZTableHeaderColumnConfig<T> | ZTableHe
1700
1698
  /** Type guard: is this a full body config object (not just content shorthand)? */
1701
1699
  declare const isBodyConfig: <T>(config: ZTableBodyColumnConfig<T> | ZTableCellContent<T> | undefined) => config is ZTableBodyColumnConfig<T>;
1702
1700
  /** Type guard: is this a full footer config object (not just content shorthand)? */
1703
- declare const isFooterConfig: <T>(config: ZTableFooterColumnConfig<T> | ZTableHeaderContent<T> | undefined) => config is ZTableFooterColumnConfig<T>;
1701
+ declare const isFooterConfig: <T>(config: ZTableFooterConfig<T> | undefined) => config is ZTableFooterColumnConfig<T>;
1704
1702
  /** Extract and normalize header config from a column definition */
1705
1703
  declare const getHeaderConfig: <T>(col: ZTableColumnConfig<T> | undefined) => {
1706
1704
  content: ZTableHeaderContent<T> | undefined;
@@ -1752,7 +1750,7 @@ declare const getBodyConfig: <T>(col: ZTableColumnConfig<T> | undefined, ctx?: C
1752
1750
  contentStyle: Record<string, string> | undefined;
1753
1751
  tooltip: string | _shival99_z_ui_components_z_tooltip.ZTooltipConfig | ((info: CellContext<T, unknown>) => string | _shival99_z_ui_components_z_tooltip.ZTooltipConfig) | undefined;
1754
1752
  };
1755
- declare const getFooterConfig: <T>(col: ZTableColumnConfig<T> | undefined) => {
1753
+ declare const getFooterConfig: <T>(col: ZTableColumnConfig<T> | undefined, footerRowIndex?: number) => {
1756
1754
  content: ZTableHeaderContent<T> | undefined;
1757
1755
  class: string | undefined;
1758
1756
  style: Record<string, string> | undefined;