@trsys-tech/matrix-library 1.1.8-alpha.1 → 1.1.8-alpha.3

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.
@@ -16,9 +16,9 @@ export type DataTableFilterOption = {
16
16
  value: string;
17
17
  label: string;
18
18
  };
19
- export type DataTableCellParams<T extends object = Record<string, unknown>, K extends keyof T = keyof T> = {
19
+ export type DataTableCellParams<T extends object = any, TValue = unknown> = {
20
20
  data: T;
21
- value: T[K];
21
+ value: TValue;
22
22
  rowId: string;
23
23
  /** Original input index; identity and imperative actions use rowId instead. */
24
24
  rowIndex: number;
@@ -34,7 +34,7 @@ export type DataTableEditorProps<T extends object> = DataTableCellParams<T> & {
34
34
  commit: () => boolean;
35
35
  cancel: () => void;
36
36
  };
37
- export type DataTableColumnDef<T extends object> = {
37
+ type DataTableColumnOptions<T extends object> = {
38
38
  /** Stable id required for computed or action columns without a field. */
39
39
  colId?: string;
40
40
  field?: (keyof T & string) | (string & {});
@@ -74,7 +74,7 @@ export type DataTableColumnDef<T extends object> = {
74
74
  value: unknown;
75
75
  }) => string;
76
76
  cellClass?: string | ((params: DataTableCellParams<T>) => string);
77
- align?: "start" | "center" | "end";
77
+ align?: "start" | "end";
78
78
  /** Omit this column when printing (typically an actions column). */
79
79
  hideInPrint?: boolean;
80
80
  /** Prevent row selection/click callbacks for interactive content in this column. */
@@ -85,6 +85,21 @@ export type DataTableColumnDef<T extends object> = {
85
85
  /** Native TanStack options. Hiding and pinning default to false; opt in with enableHiding/enablePinning. */
86
86
  tableOptions?: Partial<Omit<ColumnDef<DataTableFeatures, T, any>, "id" | "header" | "cell" | "footer" | "accessorKey" | "accessorFn" | "columns">>;
87
87
  };
88
+ /** A field discriminates the renderer props, preserving each property's exact value type. */
89
+ export type DataTableColumnDef<T extends object> = {
90
+ [K in keyof T & string]-?: Omit<DataTableColumnOptions<T>, "field" | "cellRenderer" | "valueGetter"> & {
91
+ field: K;
92
+ cellRenderer?: React.ComponentType<DataTableCellParams<T, T[K]>>;
93
+ valueGetter?: never;
94
+ };
95
+ }[keyof T & string] | (DataTableColumnOptions<T> & {
96
+ field?: undefined | `${string}.${string}`;
97
+ }) | (DataTableColumnOptions<T> & {
98
+ valueGetter: (params: {
99
+ data: T;
100
+ rowIndex: number;
101
+ }) => unknown;
102
+ });
88
103
  export type DataTableEditEvent<T extends object> = {
89
104
  rowId: string;
90
105
  original: T;
@@ -120,8 +135,8 @@ export type DataTableApi<T extends object> = {
120
135
  };
121
136
  export type DataTableContentProps<T extends object> = Omit<React.HTMLAttributes<HTMLDivElement>, "onChange" | "onRowClick"> & {
122
137
  rowData: readonly T[] | null | undefined;
123
- columnDefs: readonly DataTableColumnDef<T>[];
124
- defaultColDef?: Partial<DataTableColumnDef<T>>;
138
+ columnDefs: NoInfer<readonly DataTableColumnDef<T>[]>;
139
+ defaultColDef?: Partial<DataTableColumnOptions<T>>;
125
140
  /** String or numeric application id. Normalized to a string internally and in callbacks. Defaults to data.id, then input index. */
126
141
  getRowId?: (data: T, index: number) => string | number;
127
142
  onReady?: (api: DataTableApi<T>) => void;
@@ -173,4 +188,5 @@ export type DataTableContentProps<T extends object> = Omit<React.HTMLAttributes<
173
188
  /** Styles on the scroll viewport, rather than the outer content wrapper. */
174
189
  containerStyle?: React.CSSProperties;
175
190
  };
191
+ export {};
176
192
  //# sourceMappingURL=DataTable.types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"DataTable.types.d.ts","sourceRoot":"","sources":["../../../src/components/data-table/DataTable.types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DataTable.types.d.ts","sourceRoot":"","sources":["../../../src/components/data-table/DataTable.types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"DataTableHeader.d.ts","sourceRoot":"","sources":["../../../src/components/data-table/DataTableHeader.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAIpD,OAAO,KAAK,EAAE,YAAY,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAErJ,KAAK,oBAAoB,CAAC,CAAC,SAAS,MAAM,IAAI,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,EAAE,cAAc,CAAC,GAAG;IAC7F,KAAK,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC;IAC5B,GAAG,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,OAAO,CAAC;IACpB,aAAa,EAAE,OAAO,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,OAAO,CAAC;IACxB,aAAa,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;IACjC,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC,iBAAiB,EAAE,CAAC,CAAC,EAAE,CAAC;IAC/C,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC;IACpD,WAAW,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,iBAAiB,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,OAAO,KAAK,KAAK,CAAC,aAAa,CAAC;IAC7F,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC7B,CAAC;AAEF,wBAAgB,eAAe,CAAC,CAAC,SAAS,MAAM,EAAE,EAChD,KAAK,EACL,GAAG,EACH,YAAY,EACZ,UAAU,EACV,UAAU,EACV,aAAa,EACb,aAAa,EACb,cAAc,EACd,YAAY,EACZ,aAAa,EACb,eAAe,EACf,cAAc,EACd,eAAe,EACf,WAAW,EACX,MAAM,GACP,EAAE,oBAAoB,CAAC,CAAC,CAAC,qBAmGzB"}
1
+ {"version":3,"file":"DataTableHeader.d.ts","sourceRoot":"","sources":["../../../src/components/data-table/DataTableHeader.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAKpD,OAAO,KAAK,EAAE,YAAY,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAErJ,KAAK,oBAAoB,CAAC,CAAC,SAAS,MAAM,IAAI,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,EAAE,cAAc,CAAC,GAAG;IAC7F,KAAK,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC;IAC5B,GAAG,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,OAAO,CAAC;IACpB,aAAa,EAAE,OAAO,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,OAAO,CAAC;IACxB,aAAa,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;IACjC,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC,iBAAiB,EAAE,CAAC,CAAC,EAAE,CAAC;IAC/C,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC;IACpD,WAAW,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,iBAAiB,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,OAAO,KAAK,KAAK,CAAC,aAAa,CAAC;IAC7F,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC7B,CAAC;AAEF,wBAAgB,eAAe,CAAC,CAAC,SAAS,MAAM,EAAE,EAChD,KAAK,EACL,GAAG,EACH,YAAY,EACZ,UAAU,EACV,UAAU,EACV,aAAa,EACb,aAAa,EACb,cAAc,EACd,YAAY,EACZ,aAAa,EACb,eAAe,EACf,cAAc,EACd,eAAe,EACf,WAAW,EACX,MAAM,GACP,EAAE,oBAAoB,CAAC,CAAC,CAAC,qBAyGzB"}
@@ -9,9 +9,21 @@ export declare function getActiveDataTableCell(focused: {
9
9
  };
10
10
  /** Reorder within the current region without changing pinning or dropping hidden column IDs. */
11
11
  export declare function moveDataTableColumn<T extends object>(table: DataTableInstance<T>, sourceId: string, targetId: string): boolean;
12
- export declare function getColumnId<T extends object>(column: DataTableColumnDef<T>): string;
13
- export declare function getCellValue<T extends object>(data: T, column: DataTableColumnDef<T>, rowIndex: number): unknown;
14
- export declare function setCellValue<T extends object>(data: T, column: DataTableColumnDef<T>, value: unknown): T;
12
+ export declare function getColumnId(column: {
13
+ colId?: string;
14
+ field?: string;
15
+ }): string;
16
+ export declare function getCellValue<T extends object>(data: T, column: {
17
+ field?: string;
18
+ valueGetter?: (params: {
19
+ data: T;
20
+ rowIndex: number;
21
+ }) => unknown;
22
+ }, rowIndex: number): unknown;
23
+ export declare function setCellValue<T extends object>(data: T, column: {
24
+ field?: string;
25
+ valueSetter?: (data: T, value: unknown) => T;
26
+ }, value: unknown): T;
15
27
  /** Native date inputs accept yyyy-MM-dd text only; serialize Date values locally and keep string dates. */
16
28
  export declare function toDateInputValue(value: unknown): string;
17
29
  /** Parse date input text back to a Date for date columns; text columns keep the typed string and clearing gives null. */
@@ -19,5 +31,5 @@ export declare function parseDateInputValue(rawValue: string, previousValue: unk
19
31
  export declare function filterType<T extends object>(column: DataTableColumnDef<T>): DataTableFilterType;
20
32
  export declare function matchesFilter(value: unknown, filter: DataTableFilter | string | undefined, type: DataTableFilterType): boolean;
21
33
  /** Distribute surplus width without allowing pinned offsets to differ from rendered widths. */
22
- export declare function getFlexSizes<T extends object>(columns: readonly DataTableColumnDef<T>[], available: number, sizes: Record<string, number>): Record<string, number>;
34
+ export declare function getFlexSizes(columns: readonly Pick<DataTableColumnDef<Record<string, unknown>>, "field" | "colId" | "width" | "minWidth" | "maxWidth" | "flex">[], available: number, sizes: Record<string, number>): Record<string, number>;
23
35
  //# sourceMappingURL=dataTableModel.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"dataTableModel.d.ts","sourceRoot":"","sources":["../../../src/components/data-table/dataTableModel.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,eAAe,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAErH,0FAA0F;AAC1F,wBAAgB,sBAAsB,CACpC,OAAO,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,EACnD,WAAW,EAAE,SAAS,MAAM,EAAE,EAC9B,SAAS,EAAE,SAAS,MAAM,EAAE;WAFV,MAAM;cAAY,MAAM;EAM3C;AAED,gGAAgG;AAChG,wBAAgB,mBAAmB,CAAC,CAAC,SAAS,MAAM,EAAE,KAAK,EAAE,iBAAiB,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAgB9H;AAED,wBAAgB,WAAW,CAAC,CAAC,SAAS,MAAM,EAAE,MAAM,EAAE,kBAAkB,CAAC,CAAC,CAAC,GAAG,MAAM,CAInF;AAED,wBAAgB,YAAY,CAAC,CAAC,SAAS,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,kBAAkB,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAGhH;AAED,wBAAgB,YAAY,CAAC,CAAC,SAAS,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,kBAAkB,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,GAAG,CAAC,CAYxG;AAKD,2GAA2G;AAC3G,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAKvD;AAED,yHAAyH;AACzH,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,OAAO,EACtB,YAAY,CAAC,EAAE,kBAAkB,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,cAAc,CAAC,GACzE,OAAO,CAST;AAED,wBAAgB,UAAU,CAAC,CAAC,SAAS,MAAM,EAAE,MAAM,EAAE,kBAAkB,CAAC,CAAC,CAAC,GAAG,mBAAmB,CAK/F;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,eAAe,GAAG,MAAM,GAAG,SAAS,EAAE,IAAI,EAAE,mBAAmB,GAAG,OAAO,CAgD9H;AAED,+FAA+F;AAC/F,wBAAgB,YAAY,CAAC,CAAC,SAAS,MAAM,EAC3C,OAAO,EAAE,SAAS,kBAAkB,CAAC,CAAC,CAAC,EAAE,EACzC,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC5B,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAiCxB"}
1
+ {"version":3,"file":"dataTableModel.d.ts","sourceRoot":"","sources":["../../../src/components/data-table/dataTableModel.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,eAAe,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAErH,0FAA0F;AAC1F,wBAAgB,sBAAsB,CACpC,OAAO,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,EACnD,WAAW,EAAE,SAAS,MAAM,EAAE,EAC9B,SAAS,EAAE,SAAS,MAAM,EAAE;WAFV,MAAM;cAAY,MAAM;EAM3C;AAED,gGAAgG;AAChG,wBAAgB,mBAAmB,CAAC,CAAC,SAAS,MAAM,EAAE,KAAK,EAAE,iBAAiB,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAgB9H;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAI9E;AAED,wBAAgB,YAAY,CAAC,CAAC,SAAS,MAAM,EAC3C,IAAI,EAAE,CAAC,EACP,MAAM,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE;QAAE,IAAI,EAAE,CAAC,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAA;CAAE,EAC5F,QAAQ,EAAE,MAAM,GACf,OAAO,CAGT;AAED,wBAAgB,YAAY,CAAC,CAAC,SAAS,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,OAAO,KAAK,CAAC,CAAA;CAAE,EAAE,KAAK,EAAE,OAAO,GAAG,CAAC,CAYnJ;AAKD,2GAA2G;AAC3G,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAKvD;AAED,yHAAyH;AACzH,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,OAAO,EACtB,YAAY,CAAC,EAAE,kBAAkB,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,cAAc,CAAC,GACzE,OAAO,CAST;AAED,wBAAgB,UAAU,CAAC,CAAC,SAAS,MAAM,EAAE,MAAM,EAAE,kBAAkB,CAAC,CAAC,CAAC,GAAG,mBAAmB,CAK/F;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,eAAe,GAAG,MAAM,GAAG,SAAS,EAAE,IAAI,EAAE,mBAAmB,GAAG,OAAO,CAgD9H;AAED,+FAA+F;AAC/F,wBAAgB,YAAY,CAC1B,OAAO,EAAE,SAAS,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EAAE,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,UAAU,GAAG,UAAU,GAAG,MAAM,CAAC,EAAE,EACrI,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC5B,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAiCxB"}
@@ -1,10 +1,8 @@
1
- import { ColumnDef } from '@tanstack/react-table';
2
1
  import { DataTableAlignmentContext } from './DataTableContext';
3
- import { DataTableColumnDef, DataTableContentProps, DataTableInstance, DataTableFilterType, DataTableFilterOption, DataTableCellParams, DataTableEditorProps } from './DataTable.types';
4
- import { TableFeature, Table, RowModel, CreatedSortFn } from '@tanstack/table-core';
2
+ import { DataTableColumnDef, DataTableContentProps, DataTableInstance } from './DataTable.types';
5
3
  import * as React from "react";
6
4
  type DataTableInstanceOptions<T extends object> = Pick<DataTableContentProps<T>, "rowData" | "columnDefs" | "getRowId" | "tableOptions" | "externalFilter" | "rowSelection" | "renderSubComponent" | "getRowCanExpand" | "onQuickFilterTextChange"> & {
7
- defaultColDef: Partial<DataTableColumnDef<T>>;
5
+ defaultColDef: NonNullable<DataTableContentProps<T>["defaultColDef"]>;
8
6
  paginationPageSize: number;
9
7
  pagination: boolean;
10
8
  patches: Record<string, {
@@ -21,72 +19,7 @@ type DataTableInstanceOptions<T extends object> = Pick<DataTableContentProps<T>,
21
19
  /** Own TanStack configuration, controlled state precedence and stable row identities. */
22
20
  export declare function useDataTableInstance<T extends object>({ rowData, columnDefs, defaultColDef, getRowId, paginationPageSize, tableOptions, externalFilter, rowSelection, pagination, renderSubComponent, getRowCanExpand, onQuickFilterTextChange, patches, alignment, isPrinting, viewportWidth, selectionWidth, searchText, setSearch, }: DataTableInstanceOptions<T>): {
23
21
  table: DataTableInstance<T>;
24
- definitionsById: Map<string, {
25
- colId?: string;
26
- field?: (string & {}) | (keyof T & string) | undefined;
27
- headerName?: React.ReactNode;
28
- width?: number;
29
- minWidth?: number;
30
- maxWidth?: number;
31
- flex?: number;
32
- sortable?: boolean;
33
- resizable?: boolean;
34
- hide?: boolean;
35
- pinned?: "start" | "end" | "left" | "right";
36
- filter?: boolean | DataTableFilterType;
37
- filterOptions?: readonly (string | DataTableFilterOption)[];
38
- cellDataType?: "text" | "number" | "date" | "dateString" | "boolean";
39
- editable?: boolean | ((data: T) => boolean) | undefined;
40
- cellRenderer?: React.ComponentType< DataTableCellParams<T, keyof T>> | undefined;
41
- cellEditor?: "number" | "text" | "date" | React.ComponentType< DataTableEditorProps<T>> | undefined;
42
- valueGetter?: ((params: {
43
- data: T;
44
- rowIndex: number;
45
- }) => unknown) | undefined;
46
- valueFormatter?: ((params: {
47
- data: T;
48
- value: unknown;
49
- }) => React.ReactNode) | undefined;
50
- valueParser?: ((params: {
51
- data: T;
52
- oldValue: unknown;
53
- newValue: unknown;
54
- }) => unknown) | undefined;
55
- valueSetter?: ((data: T, value: unknown) => T) | undefined;
56
- getQuickFilterText?: ((params: {
57
- data: T;
58
- value: unknown;
59
- }) => string) | undefined;
60
- cellClass?: string | ((params: DataTableCellParams<T, keyof T>) => string) | undefined;
61
- align?: "start" | "center" | "end";
62
- hideInPrint?: boolean;
63
- suppressRowClick?: boolean;
64
- onKeyDown?: ((event: React.KeyboardEvent, params: DataTableCellParams<T, keyof T>) => void) | undefined;
65
- validate?: ((value: unknown, draft: T) => readonly string[] | null) | undefined;
66
- tableOptions?: Partial<Omit<ColumnDef<{
67
- columnFilteringFeature: TableFeature;
68
- globalFilteringFeature: TableFeature;
69
- columnOrderingFeature: TableFeature;
70
- columnPinningFeature: TableFeature;
71
- columnSizingFeature: TableFeature;
72
- columnResizingFeature: TableFeature;
73
- columnVisibilityFeature: TableFeature;
74
- rowExpandingFeature: TableFeature;
75
- rowPaginationFeature: TableFeature;
76
- rowPinningFeature: TableFeature;
77
- rowSelectionFeature: TableFeature;
78
- rowSortingFeature: TableFeature;
79
- filteredRowModel: (table: Table<any, any>) => () => RowModel<any, any>;
80
- sortedRowModel: (table: Table<any, any>) => () => RowModel<any, any>;
81
- expandedRowModel: (table: Table<any, any>) => () => RowModel<any, any>;
82
- paginatedRowModel: (table: Table<any, any>) => () => RowModel<any, any>;
83
- sortFns: {
84
- alphanumeric: CreatedSortFn<any, any>;
85
- datetime: CreatedSortFn<any, any>;
86
- basic: CreatedSortFn<any, any>;
87
- };
88
- }, T, any>, "columns" | "footer" | "header" | "id" | "cell" | "accessorKey" | "accessorFn">> | undefined;
89
- }>;
22
+ definitionsById: Map<string, DataTableColumnDef<T>>;
90
23
  sourcesById: Map<string, T>;
91
24
  data: T[];
92
25
  rowIndices: Map<T, number>;
@@ -1 +1 @@
1
- {"version":3,"file":"useDataTableInstance.d.ts","sourceRoot":"","sources":["../../../src/components/data-table/useDataTableInstance.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAA8B,KAAK,SAAS,EAAE,MAAM,uBAAuB,CAAC;AACnF,OAAO,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAG/D,OAAO,KAAK,EACV,kBAAkB,EAClB,qBAAqB,EAGrB,iBAAiB,EAGlB,MAAM,mBAAmB,CAAC;AAG3B,KAAK,wBAAwB,CAAC,CAAC,SAAS,MAAM,IAAI,IAAI,CACpD,qBAAqB,CAAC,CAAC,CAAC,EACtB,SAAS,GACT,YAAY,GACZ,UAAU,GACV,cAAc,GACd,gBAAgB,GAChB,cAAc,GACd,oBAAoB,GACpB,iBAAiB,GACjB,yBAAyB,CAC5B,GAAG;IACF,aAAa,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9C,kBAAkB,EAAE,MAAM,CAAC;IAC3B,UAAU,EAAE,OAAO,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,MAAM,EAAE,CAAC,CAAC;QAAC,IAAI,EAAE,CAAC,CAAA;KAAE,CAAC,CAAC;IAChD,SAAS,EAAE,KAAK,CAAC,WAAW,CAAC,OAAO,yBAAyB,CAAC,CAAC;IAC/D,UAAU,EAAE,OAAO,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACpC,CAAC;AAEF,yFAAyF;AACzF,wBAAgB,oBAAoB,CAAC,CAAC,SAAS,MAAM,EAAE,EACrD,OAAO,EACP,UAAU,EACV,aAAa,EACb,QAAQ,EACR,kBAAkB,EAClB,YAAY,EACZ,cAAc,EACd,YAAY,EACZ,UAAU,EACV,kBAAkB,EAClB,eAAe,EACf,uBAAuB,EACvB,OAAO,EACP,SAAS,EACT,UAAU,EACV,aAAa,EACb,cAAc,EACd,UAAU,EACV,SAAS,GACV,EAAE,wBAAwB,CAAC,CAAC,CAAC;;;;;2BAEd,SAAS;;;;;;;;;;;;;;;;;;;;;;oBAY0F,SAAS;;;;;;;;;;;;;;;mCAe9E,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBAxBhD,CAAC,SAAS,MAAM;EAoL1B"}
1
+ {"version":3,"file":"useDataTableInstance.d.ts","sourceRoot":"","sources":["../../../src/components/data-table/useDataTableInstance.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAG/D,OAAO,KAAK,EACV,kBAAkB,EAClB,qBAAqB,EAGrB,iBAAiB,EAGlB,MAAM,mBAAmB,CAAC;AAG3B,KAAK,wBAAwB,CAAC,CAAC,SAAS,MAAM,IAAI,IAAI,CACpD,qBAAqB,CAAC,CAAC,CAAC,EACtB,SAAS,GACT,YAAY,GACZ,UAAU,GACV,cAAc,GACd,gBAAgB,GAChB,cAAc,GACd,oBAAoB,GACpB,iBAAiB,GACjB,yBAAyB,CAC5B,GAAG;IACF,aAAa,EAAE,WAAW,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC;IACtE,kBAAkB,EAAE,MAAM,CAAC;IAC3B,UAAU,EAAE,OAAO,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,MAAM,EAAE,CAAC,CAAC;QAAC,IAAI,EAAE,CAAC,CAAA;KAAE,CAAC,CAAC;IAChD,SAAS,EAAE,KAAK,CAAC,WAAW,CAAC,OAAO,yBAAyB,CAAC,CAAC;IAC/D,UAAU,EAAE,OAAO,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACpC,CAAC;AAEF,yFAAyF;AACzF,wBAAgB,oBAAoB,CAAC,CAAC,SAAS,MAAM,EAAE,EACrD,OAAO,EACP,UAAU,EACV,aAAa,EACb,QAAQ,EACR,kBAAkB,EAClB,YAAY,EACZ,cAAc,EACd,YAAY,EACZ,UAAU,EACV,kBAAkB,EAClB,eAAe,EACf,uBAAuB,EACvB,OAAO,EACP,SAAS,EACT,UAAU,EACV,aAAa,EACb,cAAc,EACd,UAAU,EACV,SAAS,GACV,EAAE,wBAAwB,CAAC,CAAC,CAAC;;;;;;sBAKnB,CAAC,SAAS,MAAM;EAqL1B"}
@@ -1,97 +1,104 @@
1
- import { jsxs as n, jsx as i } from "react/jsx-runtime";
2
- import { Checkbox as z } from "./checkbox.es.js";
3
- import { DataTableColumnHeader as C } from "./datatablecolumnheader.es.js";
4
- import { DataTableColumnMenu as S } from "./datatablecolumnmenu.es.js";
5
- function j({
1
+ import { jsxs as x, jsx as i } from "react/jsx-runtime";
2
+ import { Checkbox as C } from "./checkbox.es.js";
3
+ import { cn as f } from "./utils.es.js";
4
+ import { DataTableColumnHeader as S } from "./datatablecolumnheader.es.js";
5
+ import { DataTableColumnMenu as v } from "./datatablecolumnmenu.es.js";
6
+ function I({
6
7
  table: d,
7
- api: g,
8
+ api: h,
8
9
  headerHeight: c,
9
- totalWidth: f,
10
- isPrinting: s,
11
- showExpanders: b,
12
- expanderWidth: o,
13
- showCheckboxes: y,
14
- rowSelection: x,
15
- selectionRows: m,
16
- selectedInScope: h,
17
- visibleColumns: p,
10
+ totalWidth: b,
11
+ isPrinting: m,
12
+ showExpanders: y,
13
+ expanderWidth: n,
14
+ showCheckboxes: p,
15
+ rowSelection: o,
16
+ selectionRows: s,
17
+ selectedInScope: g,
18
+ visibleColumns: u,
18
19
  definitionsById: k,
19
- columnStyle: u,
20
- widths: w
20
+ columnStyle: w,
21
+ widths: N
21
22
  }) {
22
- return /* @__PURE__ */ n(
23
+ return /* @__PURE__ */ x(
23
24
  "div",
24
25
  {
25
26
  role: "row",
26
27
  className: "mtx-sticky mtx-top-0 mtx-z-30 mtx-flex mtx-rounded-t-[inherit] mtx-border-b mtx-border-gray-200 mtx-bg-primary-50 mtx-font-bold",
27
- style: { height: c, width: f, minWidth: "100%", position: s ? "relative" : "sticky" },
28
+ style: { height: c, width: b, minWidth: "100%", position: m ? "relative" : "sticky" },
28
29
  children: [
29
- b && /* @__PURE__ */ i(
30
+ y && /* @__PURE__ */ i(
30
31
  "div",
31
32
  {
32
33
  role: "columnheader",
33
34
  "aria-label": "Row details",
34
35
  className: "mtx-sticky mtx-start-0 mtx-z-10 mtx-shrink-0 mtx-bg-primary-50",
35
- style: { width: o }
36
+ style: { width: n }
36
37
  }
37
38
  ),
38
- y && /* @__PURE__ */ i(
39
+ p && /* @__PURE__ */ i(
39
40
  "div",
40
41
  {
41
42
  role: "columnheader",
42
43
  className: "mtx-sticky mtx-start-0 mtx-z-10 mtx-flex mtx-shrink-0 mtx-items-center mtx-justify-center mtx-bg-primary-50",
43
- style: { width: 44, insetInlineStart: o },
44
- children: x?.mode === "multiRow" && /* @__PURE__ */ i(
45
- z,
44
+ style: { width: 44, insetInlineStart: n },
45
+ children: o?.mode === "multiRow" && /* @__PURE__ */ i(
46
+ C,
46
47
  {
47
48
  "aria-label": "Select all rows",
48
- disabled: !m.length,
49
- checked: m.length > 0 && h === m.length ? !0 : h > 0 ? "indeterminate" : !1,
49
+ disabled: !s.length,
50
+ checked: s.length > 0 && g === s.length ? !0 : g > 0 ? "indeterminate" : !1,
50
51
  onCheckedChange: (e) => {
51
- e === !0 ? g.selectAll(x.selectAll) : d.setRowSelection(
52
- (r) => Object.fromEntries(Object.entries(r).filter(([l]) => !m.some((a) => a.id === l)))
52
+ e === !0 ? h.selectAll(o.selectAll) : d.setRowSelection(
53
+ (t) => Object.fromEntries(Object.entries(t).filter(([l]) => !s.some((a) => a.id === l)))
53
54
  );
54
55
  }
55
56
  }
56
57
  )
57
58
  }
58
59
  ),
59
- p.map((e) => {
60
- const r = k.get(e.id), l = d.getFlatHeaders().find((t) => t.column.id === e.id), a = e.getIsSorted();
61
- return /* @__PURE__ */ n(
62
- C,
60
+ u.map((e) => {
61
+ const t = k.get(e.id), l = d.getFlatHeaders().find((r) => r.column.id === e.id), a = e.getIsSorted();
62
+ return /* @__PURE__ */ x(
63
+ S,
63
64
  {
64
65
  columnId: e.id,
65
- label: typeof r.headerName == "string" ? r.headerName : e.id,
66
+ label: typeof t.headerName == "string" ? t.headerName : e.id,
66
67
  region: e.getIsPinned(),
67
- disabled: s,
68
+ disabled: m,
68
69
  "aria-sort": a === "asc" ? "ascending" : a === "desc" ? "descending" : "none",
69
- className: "mtx-relative mtx-flex mtx-min-w-0 mtx-items-center mtx-gap-1 mtx-px-3",
70
- style: u(e, !0),
70
+ className: f(
71
+ "mtx-relative mtx-flex mtx-min-w-0 mtx-items-center mtx-gap-1 mtx-px-3",
72
+ t.align === "end" && "mtx-flex-row-reverse"
73
+ ),
74
+ style: w(e, !0),
71
75
  children: [
72
- /* @__PURE__ */ n(
76
+ /* @__PURE__ */ x(
73
77
  "button",
74
78
  {
75
79
  type: "button",
76
80
  "data-column-sort": "",
77
- disabled: s,
81
+ disabled: m,
78
82
  "aria-disabled": !e.getCanSort() || void 0,
79
- onClick: (t) => {
80
- !t.defaultPrevented && e.getCanSort() && e.getToggleSortingHandler()?.(t);
83
+ onClick: (r) => {
84
+ !r.defaultPrevented && e.getCanSort() && e.getToggleSortingHandler()?.(r);
81
85
  },
82
- className: "mtx-flex mtx-min-w-0 mtx-flex-1 mtx-cursor-inherit mtx-items-center mtx-gap-1 mtx-text-start disabled:mtx-cursor-default",
83
- "aria-label": `Sort ${typeof r.headerName == "string" ? r.headerName : e.id}`,
86
+ className: f(
87
+ "mtx-flex mtx-min-w-0 mtx-flex-1 mtx-cursor-inherit mtx-items-center mtx-gap-1 mtx-text-start disabled:mtx-cursor-default",
88
+ t.align === "end" && "mtx-flex-row-reverse mtx-text-end"
89
+ ),
90
+ "aria-label": `Sort ${typeof t.headerName == "string" ? t.headerName : e.id}`,
84
91
  children: [
85
- /* @__PURE__ */ i("span", { className: "mtx-truncate", children: r.headerName ?? e.id }),
86
- a && /* @__PURE__ */ n("span", { "aria-hidden": "true", children: [
92
+ /* @__PURE__ */ i("span", { className: "mtx-truncate", children: t.headerName ?? e.id }),
93
+ a && /* @__PURE__ */ x("span", { "aria-hidden": "true", children: [
87
94
  a === "asc" ? "↑" : "↓",
88
95
  d.state.sorting.length > 1 ? e.getSortIndex() + 1 : ""
89
96
  ] })
90
97
  ]
91
98
  }
92
99
  ),
93
- !s && /* @__PURE__ */ i(S, { table: d, column: e, definition: r }),
94
- !s && e.getCanResize() && /* @__PURE__ */ i(
100
+ !m && /* @__PURE__ */ i(v, { table: d, column: e, definition: t }),
101
+ !m && e.getCanResize() && /* @__PURE__ */ i(
95
102
  "div",
96
103
  {
97
104
  role: "separator",
@@ -99,14 +106,14 @@ function j({
99
106
  "aria-label": `Resize ${e.id}`,
100
107
  "aria-orientation": "vertical",
101
108
  tabIndex: 0,
102
- className: "mtx-absolute mtx-inset-y-0 mtx-end-0 mtx-w-1 mtx-cursor-col-resize mtx-touch-none hover:mtx-bg-primary-300",
109
+ className: "mtx-absolute mtx-inset-y-3 mtx-end-0 mtx-w-2 mtx-cursor-col-resize mtx-touch-none after:mtx-bg-gray-400/70 after:mtx-w-0.5 after:mtx-h-full after:mtx-block after:mtx-absolute after:mtx-start-1/2 after:-mtx-translate-x-1/2",
103
110
  onMouseDown: l.getResizeHandler(),
104
111
  onTouchStart: l.getResizeHandler(),
105
112
  onDoubleClick: () => e.resetSize(),
106
- onKeyDown: (t) => {
107
- (t.key === "ArrowRight" || t.key === "ArrowLeft") && (t.preventDefault(), d.setColumnSizing((N) => ({
108
- ...N,
109
- [e.id]: (w.get(e.id) ?? e.getSize()) + (t.key === "ArrowRight" ? 10 : -10)
113
+ onKeyDown: (r) => {
114
+ (r.key === "ArrowRight" || r.key === "ArrowLeft") && (r.preventDefault(), d.setColumnSizing((z) => ({
115
+ ...z,
116
+ [e.id]: (N.get(e.id) ?? e.getSize()) + (r.key === "ArrowRight" ? 10 : -10)
110
117
  })));
111
118
  }
112
119
  }
@@ -121,6 +128,6 @@ function j({
121
128
  );
122
129
  }
123
130
  export {
124
- j as DataTableHeader
131
+ I as DataTableHeader
125
132
  };
126
133
  //# sourceMappingURL=datatableheader.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"datatableheader.es.js","sources":["../src/components/data-table/DataTableHeader.tsx"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport type { Column } from \"@tanstack/react-table\";\nimport { Checkbox } from \"../checkbox/Checkbox\";\nimport { DataTableColumnHeader } from \"./DataTableColumnHeader\";\nimport { DataTableColumnMenu } from \"./DataTableColumnMenu\";\nimport type { DataTableApi, DataTableColumnDef, DataTableContentProps, DataTableFeatures, DataTableInstance, DataTableRow } from \"./DataTable.types\";\n\ntype DataTableHeaderProps<T extends object> = Pick<DataTableContentProps<T>, \"rowSelection\"> & {\n table: DataTableInstance<T>;\n api: DataTableApi<T>;\n headerHeight: number;\n totalWidth: number;\n isPrinting: boolean;\n showExpanders: boolean;\n expanderWidth: number;\n showCheckboxes: boolean;\n selectionRows: DataTableRow<T>[];\n selectedInScope: number;\n visibleColumns: Column<DataTableFeatures, T>[];\n definitionsById: Map<string, DataTableColumnDef<T>>;\n columnStyle: (column: Column<DataTableFeatures, T>, header?: boolean) => React.CSSProperties;\n widths: Map<string, number>;\n};\n\nexport function DataTableHeader<T extends object>({\n table,\n api,\n headerHeight,\n totalWidth,\n isPrinting,\n showExpanders,\n expanderWidth,\n showCheckboxes,\n rowSelection,\n selectionRows,\n selectedInScope,\n visibleColumns,\n definitionsById,\n columnStyle,\n widths,\n}: DataTableHeaderProps<T>) {\n return (\n <div\n role=\"row\"\n className=\"mtx-sticky mtx-top-0 mtx-z-30 mtx-flex mtx-rounded-t-[inherit] mtx-border-b mtx-border-gray-200 mtx-bg-primary-50 mtx-font-bold\"\n style={{ height: headerHeight, width: totalWidth, minWidth: \"100%\", position: isPrinting ? \"relative\" : \"sticky\" }}\n >\n {showExpanders && (\n <div\n role=\"columnheader\"\n aria-label=\"Row details\"\n className=\"mtx-sticky mtx-start-0 mtx-z-10 mtx-shrink-0 mtx-bg-primary-50\"\n style={{ width: expanderWidth }}\n />\n )}\n {showCheckboxes && (\n <div\n role=\"columnheader\"\n className=\"mtx-sticky mtx-start-0 mtx-z-10 mtx-flex mtx-shrink-0 mtx-items-center mtx-justify-center mtx-bg-primary-50\"\n style={{ width: 44, insetInlineStart: expanderWidth }}\n >\n {rowSelection?.mode === \"multiRow\" && (\n <Checkbox\n aria-label=\"Select all rows\"\n disabled={!selectionRows.length}\n checked={selectionRows.length > 0 && selectedInScope === selectionRows.length ? true : selectedInScope > 0 ? \"indeterminate\" : false}\n onCheckedChange={checked => {\n if (checked === true) api.selectAll(rowSelection.selectAll);\n else\n table.setRowSelection(previous =>\n Object.fromEntries(Object.entries(previous).filter(([id]) => !selectionRows.some(row => row.id === id))),\n );\n }}\n />\n )}\n </div>\n )}\n {visibleColumns.map(column => {\n const definition = definitionsById.get(column.id)!;\n const header = table.getFlatHeaders().find(item => item.column.id === column.id)!;\n const sorted = column.getIsSorted();\n return (\n <DataTableColumnHeader\n key={column.id}\n columnId={column.id}\n label={typeof definition.headerName === \"string\" ? definition.headerName : column.id}\n region={column.getIsPinned()}\n disabled={isPrinting}\n aria-sort={sorted === \"asc\" ? \"ascending\" : sorted === \"desc\" ? \"descending\" : \"none\"}\n className=\"mtx-relative mtx-flex mtx-min-w-0 mtx-items-center mtx-gap-1 mtx-px-3\"\n style={columnStyle(column, true)}\n >\n <button\n type=\"button\"\n data-column-sort=\"\"\n disabled={isPrinting}\n aria-disabled={!column.getCanSort() || undefined}\n onClick={event => {\n if (!event.defaultPrevented && column.getCanSort()) column.getToggleSortingHandler()?.(event);\n }}\n className=\"mtx-flex mtx-min-w-0 mtx-flex-1 mtx-cursor-inherit mtx-items-center mtx-gap-1 mtx-text-start disabled:mtx-cursor-default\"\n aria-label={`Sort ${typeof definition.headerName === \"string\" ? definition.headerName : column.id}`}\n >\n <span className=\"mtx-truncate\">{definition.headerName ?? column.id}</span>\n {sorted && (\n <span aria-hidden=\"true\">\n {sorted === \"asc\" ? \"↑\" : \"↓\"}\n {table.state.sorting.length > 1 ? column.getSortIndex() + 1 : \"\"}\n </span>\n )}\n </button>\n {!isPrinting && <DataTableColumnMenu table={table} column={column} definition={definition} />}\n {!isPrinting && column.getCanResize() && (\n <div\n role=\"separator\"\n data-column-drag-ignore=\"\"\n aria-label={`Resize ${column.id}`}\n aria-orientation=\"vertical\"\n tabIndex={0}\n className=\"mtx-absolute mtx-inset-y-0 mtx-end-0 mtx-w-1 mtx-cursor-col-resize mtx-touch-none hover:mtx-bg-primary-300\"\n onMouseDown={header.getResizeHandler()}\n onTouchStart={header.getResizeHandler()}\n onDoubleClick={() => column.resetSize()}\n onKeyDown={event => {\n if (event.key === \"ArrowRight\" || event.key === \"ArrowLeft\") {\n event.preventDefault();\n table.setColumnSizing(previous => ({\n ...previous,\n [column.id]: (widths.get(column.id) ?? column.getSize()) + (event.key === \"ArrowRight\" ? 10 : -10),\n }));\n }\n }}\n />\n )}\n </DataTableColumnHeader>\n );\n })}\n </div>\n );\n}\n"],"names":["DataTableHeader","table","api","headerHeight","totalWidth","isPrinting","showExpanders","expanderWidth","showCheckboxes","rowSelection","selectionRows","selectedInScope","visibleColumns","definitionsById","columnStyle","widths","jsxs","jsx","Checkbox","checked","previous","id","row","column","definition","header","item","sorted","DataTableColumnHeader","event","DataTableColumnMenu"],"mappings":"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"}
1
+ {"version":3,"file":"datatableheader.es.js","sources":["../src/components/data-table/DataTableHeader.tsx"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport type { Column } from \"@tanstack/react-table\";\nimport { Checkbox } from \"../checkbox/Checkbox\";\nimport { cn } from \"../../lib/utils\";\nimport { DataTableColumnHeader } from \"./DataTableColumnHeader\";\nimport { DataTableColumnMenu } from \"./DataTableColumnMenu\";\nimport type { DataTableApi, DataTableColumnDef, DataTableContentProps, DataTableFeatures, DataTableInstance, DataTableRow } from \"./DataTable.types\";\n\ntype DataTableHeaderProps<T extends object> = Pick<DataTableContentProps<T>, \"rowSelection\"> & {\n table: DataTableInstance<T>;\n api: DataTableApi<T>;\n headerHeight: number;\n totalWidth: number;\n isPrinting: boolean;\n showExpanders: boolean;\n expanderWidth: number;\n showCheckboxes: boolean;\n selectionRows: DataTableRow<T>[];\n selectedInScope: number;\n visibleColumns: Column<DataTableFeatures, T>[];\n definitionsById: Map<string, DataTableColumnDef<T>>;\n columnStyle: (column: Column<DataTableFeatures, T>, header?: boolean) => React.CSSProperties;\n widths: Map<string, number>;\n};\n\nexport function DataTableHeader<T extends object>({\n table,\n api,\n headerHeight,\n totalWidth,\n isPrinting,\n showExpanders,\n expanderWidth,\n showCheckboxes,\n rowSelection,\n selectionRows,\n selectedInScope,\n visibleColumns,\n definitionsById,\n columnStyle,\n widths,\n}: DataTableHeaderProps<T>) {\n return (\n <div\n role=\"row\"\n className=\"mtx-sticky mtx-top-0 mtx-z-30 mtx-flex mtx-rounded-t-[inherit] mtx-border-b mtx-border-gray-200 mtx-bg-primary-50 mtx-font-bold\"\n style={{ height: headerHeight, width: totalWidth, minWidth: \"100%\", position: isPrinting ? \"relative\" : \"sticky\" }}\n >\n {showExpanders && (\n <div\n role=\"columnheader\"\n aria-label=\"Row details\"\n className=\"mtx-sticky mtx-start-0 mtx-z-10 mtx-shrink-0 mtx-bg-primary-50\"\n style={{ width: expanderWidth }}\n />\n )}\n {showCheckboxes && (\n <div\n role=\"columnheader\"\n className=\"mtx-sticky mtx-start-0 mtx-z-10 mtx-flex mtx-shrink-0 mtx-items-center mtx-justify-center mtx-bg-primary-50\"\n style={{ width: 44, insetInlineStart: expanderWidth }}\n >\n {rowSelection?.mode === \"multiRow\" && (\n <Checkbox\n aria-label=\"Select all rows\"\n disabled={!selectionRows.length}\n checked={selectionRows.length > 0 && selectedInScope === selectionRows.length ? true : selectedInScope > 0 ? \"indeterminate\" : false}\n onCheckedChange={checked => {\n if (checked === true) api.selectAll(rowSelection.selectAll);\n else\n table.setRowSelection(previous =>\n Object.fromEntries(Object.entries(previous).filter(([id]) => !selectionRows.some(row => row.id === id))),\n );\n }}\n />\n )}\n </div>\n )}\n {visibleColumns.map(column => {\n const definition = definitionsById.get(column.id)!;\n const header = table.getFlatHeaders().find(item => item.column.id === column.id)!;\n const sorted = column.getIsSorted();\n return (\n <DataTableColumnHeader\n key={column.id}\n columnId={column.id}\n label={typeof definition.headerName === \"string\" ? definition.headerName : column.id}\n region={column.getIsPinned()}\n disabled={isPrinting}\n aria-sort={sorted === \"asc\" ? \"ascending\" : sorted === \"desc\" ? \"descending\" : \"none\"}\n className={cn(\n \"mtx-relative mtx-flex mtx-min-w-0 mtx-items-center mtx-gap-1 mtx-px-3\",\n definition.align === \"end\" && \"mtx-flex-row-reverse\",\n )}\n style={columnStyle(column, true)}\n >\n <button\n type=\"button\"\n data-column-sort=\"\"\n disabled={isPrinting}\n aria-disabled={!column.getCanSort() || undefined}\n onClick={event => {\n if (!event.defaultPrevented && column.getCanSort()) column.getToggleSortingHandler()?.(event);\n }}\n className={cn(\n \"mtx-flex mtx-min-w-0 mtx-flex-1 mtx-cursor-inherit mtx-items-center mtx-gap-1 mtx-text-start disabled:mtx-cursor-default\",\n definition.align === \"end\" && \"mtx-flex-row-reverse mtx-text-end\",\n )}\n aria-label={`Sort ${typeof definition.headerName === \"string\" ? definition.headerName : column.id}`}\n >\n <span className=\"mtx-truncate\">{definition.headerName ?? column.id}</span>\n {sorted && (\n <span aria-hidden=\"true\">\n {sorted === \"asc\" ? \"↑\" : \"↓\"}\n {table.state.sorting.length > 1 ? column.getSortIndex() + 1 : \"\"}\n </span>\n )}\n </button>\n {!isPrinting && <DataTableColumnMenu table={table} column={column} definition={definition} />}\n {!isPrinting && column.getCanResize() && (\n <div\n role=\"separator\"\n data-column-drag-ignore=\"\"\n aria-label={`Resize ${column.id}`}\n aria-orientation=\"vertical\"\n tabIndex={0}\n className=\"mtx-absolute mtx-inset-y-3 mtx-end-0 mtx-w-2 mtx-cursor-col-resize mtx-touch-none after:mtx-bg-gray-400/70 after:mtx-w-0.5 after:mtx-h-full after:mtx-block after:mtx-absolute after:mtx-start-1/2 after:-mtx-translate-x-1/2\"\n onMouseDown={header.getResizeHandler()}\n onTouchStart={header.getResizeHandler()}\n onDoubleClick={() => column.resetSize()}\n onKeyDown={event => {\n if (event.key === \"ArrowRight\" || event.key === \"ArrowLeft\") {\n event.preventDefault();\n table.setColumnSizing(previous => ({\n ...previous,\n [column.id]: (widths.get(column.id) ?? column.getSize()) + (event.key === \"ArrowRight\" ? 10 : -10),\n }));\n }\n }}\n />\n )}\n </DataTableColumnHeader>\n );\n })}\n </div>\n );\n}\n"],"names":["DataTableHeader","table","api","headerHeight","totalWidth","isPrinting","showExpanders","expanderWidth","showCheckboxes","rowSelection","selectionRows","selectedInScope","visibleColumns","definitionsById","columnStyle","widths","jsxs","jsx","Checkbox","checked","previous","id","row","column","definition","header","item","sorted","DataTableColumnHeader","cn","event","DataTableColumnMenu"],"mappings":";;;;;AA2BO,SAASA,EAAkC;AAAA,EAChD,OAAAC;AAAA,EACA,KAAAC;AAAA,EACA,cAAAC;AAAA,EACA,YAAAC;AAAA,EACA,YAAAC;AAAA,EACA,eAAAC;AAAA,EACA,eAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,cAAAC;AAAA,EACA,eAAAC;AAAA,EACA,iBAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,iBAAAC;AAAA,EACA,aAAAC;AAAA,EACA,QAAAC;AACF,GAA4B;AAC1B,SACE,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,MAAK;AAAA,MACL,WAAU;AAAA,MACV,OAAO,EAAE,QAAQb,GAAc,OAAOC,GAAY,UAAU,QAAQ,UAAUC,IAAa,aAAa,SAAA;AAAA,MAEvG,UAAA;AAAA,QAAAC,KACC,gBAAAW;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,MAAK;AAAA,YACL,cAAW;AAAA,YACX,WAAU;AAAA,YACV,OAAO,EAAE,OAAOV,EAAA;AAAA,UAAc;AAAA,QAAA;AAAA,QAGjCC,KACC,gBAAAS;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,MAAK;AAAA,YACL,WAAU;AAAA,YACV,OAAO,EAAE,OAAO,IAAI,kBAAkBV,EAAA;AAAA,YAErC,UAAAE,GAAc,SAAS,cACtB,gBAAAQ;AAAA,cAACC;AAAA,cAAA;AAAA,gBACC,cAAW;AAAA,gBACX,UAAU,CAACR,EAAc;AAAA,gBACzB,SAASA,EAAc,SAAS,KAAKC,MAAoBD,EAAc,SAAS,KAAOC,IAAkB,IAAI,kBAAkB;AAAA,gBAC/H,iBAAiB,CAAAQ,MAAW;AAC1B,kBAAIA,MAAY,KAAMjB,EAAI,UAAUO,EAAa,SAAS,IAExDR,EAAM;AAAA,oBAAgB,CAAAmB,MACpB,OAAO,YAAY,OAAO,QAAQA,CAAQ,EAAE,OAAO,CAAC,CAACC,CAAE,MAAM,CAACX,EAAc,KAAK,CAAAY,MAAOA,EAAI,OAAOD,CAAE,CAAC,CAAC;AAAA,kBAAA;AAAA,gBAE7G;AAAA,cAAA;AAAA,YAAA;AAAA,UACF;AAAA,QAAA;AAAA,QAILT,EAAe,IAAI,CAAAW,MAAU;AAC5B,gBAAMC,IAAaX,EAAgB,IAAIU,EAAO,EAAE,GAC1CE,IAASxB,EAAM,eAAA,EAAiB,KAAK,OAAQyB,EAAK,OAAO,OAAOH,EAAO,EAAE,GACzEI,IAASJ,EAAO,YAAA;AACtB,iBACE,gBAAAP;AAAA,YAACY;AAAA,YAAA;AAAA,cAEC,UAAUL,EAAO;AAAA,cACjB,OAAO,OAAOC,EAAW,cAAe,WAAWA,EAAW,aAAaD,EAAO;AAAA,cAClF,QAAQA,EAAO,YAAA;AAAA,cACf,UAAUlB;AAAA,cACV,aAAWsB,MAAW,QAAQ,cAAcA,MAAW,SAAS,eAAe;AAAA,cAC/E,WAAWE;AAAA,gBACT;AAAA,gBACAL,EAAW,UAAU,SAAS;AAAA,cAAA;AAAA,cAEhC,OAAOV,EAAYS,GAAQ,EAAI;AAAA,cAE/B,UAAA;AAAA,gBAAA,gBAAAP;AAAA,kBAAC;AAAA,kBAAA;AAAA,oBACC,MAAK;AAAA,oBACL,oBAAiB;AAAA,oBACjB,UAAUX;AAAA,oBACV,iBAAe,CAACkB,EAAO,WAAA,KAAgB;AAAA,oBACvC,SAAS,CAAAO,MAAS;AAChB,sBAAI,CAACA,EAAM,oBAAoBP,EAAO,gBAAcA,EAAO,wBAAA,IAA4BO,CAAK;AAAA,oBAC9F;AAAA,oBACA,WAAWD;AAAA,sBACT;AAAA,sBACAL,EAAW,UAAU,SAAS;AAAA,oBAAA;AAAA,oBAEhC,cAAY,QAAQ,OAAOA,EAAW,cAAe,WAAWA,EAAW,aAAaD,EAAO,EAAE;AAAA,oBAEjG,UAAA;AAAA,sBAAA,gBAAAN,EAAC,UAAK,WAAU,gBAAgB,UAAAO,EAAW,cAAcD,EAAO,IAAG;AAAA,sBAClEI,KACC,gBAAAX,EAAC,QAAA,EAAK,eAAY,QACf,UAAA;AAAA,wBAAAW,MAAW,QAAQ,MAAM;AAAA,wBACzB1B,EAAM,MAAM,QAAQ,SAAS,IAAIsB,EAAO,aAAA,IAAiB,IAAI;AAAA,sBAAA,EAAA,CAChE;AAAA,oBAAA;AAAA,kBAAA;AAAA,gBAAA;AAAA,gBAGH,CAAClB,KAAc,gBAAAY,EAACc,GAAA,EAAoB,OAAA9B,GAAc,QAAAsB,GAAgB,YAAAC,GAAwB;AAAA,gBAC1F,CAACnB,KAAckB,EAAO,aAAA,KACrB,gBAAAN;AAAA,kBAAC;AAAA,kBAAA;AAAA,oBACC,MAAK;AAAA,oBACL,2BAAwB;AAAA,oBACxB,cAAY,UAAUM,EAAO,EAAE;AAAA,oBAC/B,oBAAiB;AAAA,oBACjB,UAAU;AAAA,oBACV,WAAU;AAAA,oBACV,aAAaE,EAAO,iBAAA;AAAA,oBACpB,cAAcA,EAAO,iBAAA;AAAA,oBACrB,eAAe,MAAMF,EAAO,UAAA;AAAA,oBAC5B,WAAW,CAAAO,MAAS;AAClB,uBAAIA,EAAM,QAAQ,gBAAgBA,EAAM,QAAQ,iBAC9CA,EAAM,eAAA,GACN7B,EAAM,gBAAgB,CAAAmB,OAAa;AAAA,wBACjC,GAAGA;AAAA,wBACH,CAACG,EAAO,EAAE,IAAIR,EAAO,IAAIQ,EAAO,EAAE,KAAKA,EAAO,QAAA,MAAcO,EAAM,QAAQ,eAAe,KAAK;AAAA,sBAAA,EAC9F;AAAA,oBAEN;AAAA,kBAAA;AAAA,gBAAA;AAAA,cACF;AAAA,YAAA;AAAA,YAvDGP,EAAO;AAAA,UAAA;AAAA,QA2DlB,CAAC;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGP;"}
@@ -1 +1 @@
1
- {"version":3,"file":"datatablemodel.es.js","sources":["../src/components/data-table/dataTableModel.ts"],"sourcesContent":["import type { DataTableColumnDef, DataTableFilter, DataTableFilterType, DataTableInstance } from \"./DataTable.types\";\n\n/** Keep the roving tab stop on a mounted row when virtualization changes the viewport. */\nexport function getActiveDataTableCell(\n focused: { rowId: string; columnId: string } | null,\n renderedIds: readonly string[],\n columnIds: readonly string[],\n) {\n if (focused && renderedIds.includes(focused.rowId) && columnIds.includes(focused.columnId)) return focused;\n return { rowId: renderedIds[0], columnId: columnIds[0] };\n}\n\n/** Reorder within the current region without changing pinning or dropping hidden column IDs. */\nexport function moveDataTableColumn<T extends object>(table: DataTableInstance<T>, sourceId: string, targetId: string): boolean {\n if (sourceId === targetId || sourceId.startsWith(\"__\") || targetId.startsWith(\"__\")) return false;\n const source = table.getColumn(sourceId);\n const target = table.getColumn(targetId);\n if (!source || !target || !source.getIsVisible() || !target.getIsVisible() || source.getIsPinned() !== target.getIsPinned()) return false;\n const region = source.getIsPinned();\n const order = region ? (table.atoms.columnPinning.get()[region] ?? []) : table.getAllLeafColumns().map(column => column.id);\n const from = order.indexOf(sourceId);\n const to = order.indexOf(targetId);\n if (from < 0 || to < 0) return false;\n const next = [...order];\n next.splice(from, 1);\n next.splice(to, 0, sourceId);\n if (region) table.setColumnPinning(previous => ({ ...previous, [region]: next }));\n else table.setColumnOrder(next);\n return true;\n}\n\nexport function getColumnId<T extends object>(column: DataTableColumnDef<T>): string {\n const id = column.colId ?? column.field;\n if (!id || id.startsWith(\"__\")) throw new Error(\"DataTable columns require a unique field or colId (ids starting with __ are reserved).\");\n return id;\n}\n\nexport function getCellValue<T extends object>(data: T, column: DataTableColumnDef<T>, rowIndex: number): unknown {\n if (column.valueGetter) return column.valueGetter({ data, rowIndex });\n return column.field?.split(\".\").reduce<unknown>((value, key) => (value as Record<string, unknown> | null)?.[key], data);\n}\n\nexport function setCellValue<T extends object>(data: T, column: DataTableColumnDef<T>, value: unknown): T {\n if (column.valueSetter) return column.valueSetter(data, value);\n if (!column.field) return data;\n const keys = column.field.split(\".\");\n const set = (source: unknown, depth: number): unknown => {\n const key = keys[depth];\n const record = source as Record<string, unknown> | undefined;\n const result = (Array.isArray(source) ? [...source] : { ...record }) as Record<string, unknown>;\n result[key] = depth === keys.length - 1 ? value : set(record?.[key], depth + 1);\n return result;\n };\n return set(data, 0) as T;\n}\n\nconst dateInputPrefix = /^\\d{4}-\\d{2}-\\d{2}/;\nconst dateInputValue = /^(\\d{4})-(\\d{2})-(\\d{2})$/;\n\n/** Native date inputs accept yyyy-MM-dd text only; serialize Date values locally and keep string dates. */\nexport function toDateInputValue(value: unknown): string {\n if (value instanceof Date && Number.isFinite(value.getTime()))\n return `${value.getFullYear()}-${String(value.getMonth() + 1).padStart(2, \"0\")}-${String(value.getDate()).padStart(2, \"0\")}`;\n if (typeof value === \"string\") return dateInputPrefix.exec(value)?.[0] ?? \"\";\n return \"\";\n}\n\n/** Parse date input text back to a Date for date columns; text columns keep the typed string and clearing gives null. */\nexport function parseDateInputValue(\n rawValue: string,\n previousValue: unknown,\n cellDataType?: DataTableColumnDef<Record<string, unknown>>[\"cellDataType\"],\n): unknown {\n if (rawValue === \"\") return null;\n const match = dateInputValue.exec(rawValue);\n if (!match || (cellDataType !== \"date\" && !(previousValue instanceof Date))) return rawValue;\n const year = +match[1];\n const month = +match[2] - 1;\n const day = +match[3];\n const date = new Date(year, month, day);\n return date.getFullYear() === year && date.getMonth() === month && date.getDate() === day ? date : rawValue;\n}\n\nexport function filterType<T extends object>(column: DataTableColumnDef<T>): DataTableFilterType {\n if (typeof column.filter === \"string\") return column.filter;\n if (column.cellDataType === \"number\") return \"number\";\n if (column.cellDataType === \"date\" || column.cellDataType === \"dateString\") return \"date\";\n return \"text\";\n}\n\nexport function matchesFilter(value: unknown, filter: DataTableFilter | string | undefined, type: DataTableFilterType): boolean {\n if (filter === undefined || filter === \"\") return true;\n const condition: DataTableFilter = typeof filter === \"string\" ? { operator: type === \"select\" ? \"equals\" : \"contains\", value: filter } : filter;\n const blank = value === null || value === undefined || value === \"\";\n if (condition.operator === \"blank\") return blank;\n if (condition.operator === \"notBlank\") return !blank;\n if (condition.value === undefined || condition.value === \"\") return true;\n if (blank) return false;\n const normalize = (input: unknown): string | number => {\n if (type === \"number\") return Number(input);\n if (type === \"date\") {\n if (input instanceof Date) return new Date(input.getFullYear(), input.getMonth(), input.getDate()).getTime();\n const match = /^(\\d{4})-(\\d{2})-(\\d{2})/.exec(String(input));\n if (!match) return NaN;\n const date = new Date(+match[1], +match[2] - 1, +match[3]);\n return date.getFullYear() === +match[1] && date.getMonth() === +match[2] - 1 && date.getDate() === +match[3] ? date.getTime() : NaN;\n }\n return type === \"select\" ? String(input) : String(input).toLocaleLowerCase();\n };\n const a = normalize(value);\n const b = normalize(condition.value);\n if ((typeof a === \"number\" && !Number.isFinite(a)) || (typeof b === \"number\" && !Number.isFinite(b))) return false;\n switch (condition.operator) {\n case \"contains\":\n return String(a).includes(String(b));\n case \"notContains\":\n return !String(a).includes(String(b));\n case \"startsWith\":\n return String(a).startsWith(String(b));\n case \"endsWith\":\n return String(a).endsWith(String(b));\n case \"equals\":\n return a === b;\n case \"notEqual\":\n return a !== b;\n case \"greaterThan\":\n return a > b;\n case \"greaterThanOrEqual\":\n return a >= b;\n case \"lessThan\":\n return a < b;\n case \"lessThanOrEqual\":\n return a <= b;\n case \"inRange\":\n return condition.valueTo !== undefined && condition.valueTo !== \"\" && a >= b && a <= normalize(condition.valueTo);\n default:\n return true;\n }\n}\n\n/** Distribute surplus width without allowing pinned offsets to differ from rendered widths. */\nexport function getFlexSizes<T extends object>(\n columns: readonly DataTableColumnDef<T>[],\n available: number,\n sizes: Record<string, number>,\n): Record<string, number> {\n const result: Record<string, number> = {};\n let remaining = available;\n let flexible = columns.filter(column => (column.flex ?? 0) > 0 && sizes[getColumnId(column)] === undefined);\n for (const column of columns) {\n if (!flexible.includes(column)) {\n remaining -= Math.max(\n column.minWidth ?? 60,\n Math.min(column.maxWidth ?? Number.MAX_SAFE_INTEGER, sizes[getColumnId(column)] ?? column.width ?? 150),\n );\n }\n }\n while (flexible.length) {\n const weight = flexible.reduce((sum, column) => sum + column.flex!, 0);\n const allocations = flexible.map(column => {\n const share = (remaining * column.flex!) / weight;\n const width = Math.max(column.minWidth ?? 60, Math.min(column.maxWidth ?? Number.MAX_SAFE_INTEGER, share));\n return { column, share, width };\n });\n const violation = allocations.reduce((sum, { share, width }) => sum + width - share, 0);\n if (Math.abs(violation) < 1e-8) {\n for (const { column, width } of allocations) result[getColumnId(column)] = width;\n break;\n }\n // Freeze only the bounds causing the net violation. Other columns may fit after redistribution.\n const constrained = allocations.filter(({ share, width }) => (violation > 0 ? width > share : width < share));\n for (const { column, width } of constrained) {\n result[getColumnId(column)] = width;\n remaining -= width;\n }\n flexible = flexible.filter(column => !constrained.some(allocation => allocation.column === column));\n }\n return result;\n}\n"],"names":["getActiveDataTableCell","focused","renderedIds","columnIds","moveDataTableColumn","table","sourceId","targetId","source","target","region","order","column","from","to","next","previous","getColumnId","id","getCellValue","data","rowIndex","value","key","setCellValue","keys","set","depth","record","result","dateInputPrefix","dateInputValue","toDateInputValue","parseDateInputValue","rawValue","previousValue","cellDataType","match","year","month","day","date","filterType","matchesFilter","filter","type","condition","blank","normalize","input","a","b","getFlexSizes","columns","available","sizes","remaining","flexible","weight","sum","allocations","share","width","violation","constrained","allocation"],"mappings":"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"}
1
+ {"version":3,"file":"datatablemodel.es.js","sources":["../src/components/data-table/dataTableModel.ts"],"sourcesContent":["import type { DataTableColumnDef, DataTableFilter, DataTableFilterType, DataTableInstance } from \"./DataTable.types\";\n\n/** Keep the roving tab stop on a mounted row when virtualization changes the viewport. */\nexport function getActiveDataTableCell(\n focused: { rowId: string; columnId: string } | null,\n renderedIds: readonly string[],\n columnIds: readonly string[],\n) {\n if (focused && renderedIds.includes(focused.rowId) && columnIds.includes(focused.columnId)) return focused;\n return { rowId: renderedIds[0], columnId: columnIds[0] };\n}\n\n/** Reorder within the current region without changing pinning or dropping hidden column IDs. */\nexport function moveDataTableColumn<T extends object>(table: DataTableInstance<T>, sourceId: string, targetId: string): boolean {\n if (sourceId === targetId || sourceId.startsWith(\"__\") || targetId.startsWith(\"__\")) return false;\n const source = table.getColumn(sourceId);\n const target = table.getColumn(targetId);\n if (!source || !target || !source.getIsVisible() || !target.getIsVisible() || source.getIsPinned() !== target.getIsPinned()) return false;\n const region = source.getIsPinned();\n const order = region ? (table.atoms.columnPinning.get()[region] ?? []) : table.getAllLeafColumns().map(column => column.id);\n const from = order.indexOf(sourceId);\n const to = order.indexOf(targetId);\n if (from < 0 || to < 0) return false;\n const next = [...order];\n next.splice(from, 1);\n next.splice(to, 0, sourceId);\n if (region) table.setColumnPinning(previous => ({ ...previous, [region]: next }));\n else table.setColumnOrder(next);\n return true;\n}\n\nexport function getColumnId(column: { colId?: string; field?: string }): string {\n const id = column.colId ?? column.field;\n if (!id || id.startsWith(\"__\")) throw new Error(\"DataTable columns require a unique field or colId (ids starting with __ are reserved).\");\n return id;\n}\n\nexport function getCellValue<T extends object>(\n data: T,\n column: { field?: string; valueGetter?: (params: { data: T; rowIndex: number }) => unknown },\n rowIndex: number,\n): unknown {\n if (column.valueGetter) return column.valueGetter({ data, rowIndex });\n return column.field?.split(\".\").reduce<unknown>((value, key) => (value as Record<string, unknown> | null)?.[key], data);\n}\n\nexport function setCellValue<T extends object>(data: T, column: { field?: string; valueSetter?: (data: T, value: unknown) => T }, value: unknown): T {\n if (column.valueSetter) return column.valueSetter(data, value);\n if (!column.field) return data;\n const keys = column.field.split(\".\");\n const set = (source: unknown, depth: number): unknown => {\n const key = keys[depth];\n const record = source as Record<string, unknown> | undefined;\n const result = (Array.isArray(source) ? [...source] : { ...record }) as Record<string, unknown>;\n result[key] = depth === keys.length - 1 ? value : set(record?.[key], depth + 1);\n return result;\n };\n return set(data, 0) as T;\n}\n\nconst dateInputPrefix = /^\\d{4}-\\d{2}-\\d{2}/;\nconst dateInputValue = /^(\\d{4})-(\\d{2})-(\\d{2})$/;\n\n/** Native date inputs accept yyyy-MM-dd text only; serialize Date values locally and keep string dates. */\nexport function toDateInputValue(value: unknown): string {\n if (value instanceof Date && Number.isFinite(value.getTime()))\n return `${value.getFullYear()}-${String(value.getMonth() + 1).padStart(2, \"0\")}-${String(value.getDate()).padStart(2, \"0\")}`;\n if (typeof value === \"string\") return dateInputPrefix.exec(value)?.[0] ?? \"\";\n return \"\";\n}\n\n/** Parse date input text back to a Date for date columns; text columns keep the typed string and clearing gives null. */\nexport function parseDateInputValue(\n rawValue: string,\n previousValue: unknown,\n cellDataType?: DataTableColumnDef<Record<string, unknown>>[\"cellDataType\"],\n): unknown {\n if (rawValue === \"\") return null;\n const match = dateInputValue.exec(rawValue);\n if (!match || (cellDataType !== \"date\" && !(previousValue instanceof Date))) return rawValue;\n const year = +match[1];\n const month = +match[2] - 1;\n const day = +match[3];\n const date = new Date(year, month, day);\n return date.getFullYear() === year && date.getMonth() === month && date.getDate() === day ? date : rawValue;\n}\n\nexport function filterType<T extends object>(column: DataTableColumnDef<T>): DataTableFilterType {\n if (typeof column.filter === \"string\") return column.filter;\n if (column.cellDataType === \"number\") return \"number\";\n if (column.cellDataType === \"date\" || column.cellDataType === \"dateString\") return \"date\";\n return \"text\";\n}\n\nexport function matchesFilter(value: unknown, filter: DataTableFilter | string | undefined, type: DataTableFilterType): boolean {\n if (filter === undefined || filter === \"\") return true;\n const condition: DataTableFilter = typeof filter === \"string\" ? { operator: type === \"select\" ? \"equals\" : \"contains\", value: filter } : filter;\n const blank = value === null || value === undefined || value === \"\";\n if (condition.operator === \"blank\") return blank;\n if (condition.operator === \"notBlank\") return !blank;\n if (condition.value === undefined || condition.value === \"\") return true;\n if (blank) return false;\n const normalize = (input: unknown): string | number => {\n if (type === \"number\") return Number(input);\n if (type === \"date\") {\n if (input instanceof Date) return new Date(input.getFullYear(), input.getMonth(), input.getDate()).getTime();\n const match = /^(\\d{4})-(\\d{2})-(\\d{2})/.exec(String(input));\n if (!match) return NaN;\n const date = new Date(+match[1], +match[2] - 1, +match[3]);\n return date.getFullYear() === +match[1] && date.getMonth() === +match[2] - 1 && date.getDate() === +match[3] ? date.getTime() : NaN;\n }\n return type === \"select\" ? String(input) : String(input).toLocaleLowerCase();\n };\n const a = normalize(value);\n const b = normalize(condition.value);\n if ((typeof a === \"number\" && !Number.isFinite(a)) || (typeof b === \"number\" && !Number.isFinite(b))) return false;\n switch (condition.operator) {\n case \"contains\":\n return String(a).includes(String(b));\n case \"notContains\":\n return !String(a).includes(String(b));\n case \"startsWith\":\n return String(a).startsWith(String(b));\n case \"endsWith\":\n return String(a).endsWith(String(b));\n case \"equals\":\n return a === b;\n case \"notEqual\":\n return a !== b;\n case \"greaterThan\":\n return a > b;\n case \"greaterThanOrEqual\":\n return a >= b;\n case \"lessThan\":\n return a < b;\n case \"lessThanOrEqual\":\n return a <= b;\n case \"inRange\":\n return condition.valueTo !== undefined && condition.valueTo !== \"\" && a >= b && a <= normalize(condition.valueTo);\n default:\n return true;\n }\n}\n\n/** Distribute surplus width without allowing pinned offsets to differ from rendered widths. */\nexport function getFlexSizes(\n columns: readonly Pick<DataTableColumnDef<Record<string, unknown>>, \"field\" | \"colId\" | \"width\" | \"minWidth\" | \"maxWidth\" | \"flex\">[],\n available: number,\n sizes: Record<string, number>,\n): Record<string, number> {\n const result: Record<string, number> = {};\n let remaining = available;\n let flexible = columns.filter(column => (column.flex ?? 0) > 0 && sizes[getColumnId(column)] === undefined);\n for (const column of columns) {\n if (!flexible.includes(column)) {\n remaining -= Math.max(\n column.minWidth ?? 60,\n Math.min(column.maxWidth ?? Number.MAX_SAFE_INTEGER, sizes[getColumnId(column)] ?? column.width ?? 150),\n );\n }\n }\n while (flexible.length) {\n const weight = flexible.reduce((sum, column) => sum + column.flex!, 0);\n const allocations = flexible.map(column => {\n const share = (remaining * column.flex!) / weight;\n const width = Math.max(column.minWidth ?? 60, Math.min(column.maxWidth ?? Number.MAX_SAFE_INTEGER, share));\n return { column, share, width };\n });\n const violation = allocations.reduce((sum, { share, width }) => sum + width - share, 0);\n if (Math.abs(violation) < 1e-8) {\n for (const { column, width } of allocations) result[getColumnId(column)] = width;\n break;\n }\n // Freeze only the bounds causing the net violation. Other columns may fit after redistribution.\n const constrained = allocations.filter(({ share, width }) => (violation > 0 ? width > share : width < share));\n for (const { column, width } of constrained) {\n result[getColumnId(column)] = width;\n remaining -= width;\n }\n flexible = flexible.filter(column => !constrained.some(allocation => allocation.column === column));\n }\n return result;\n}\n"],"names":["getActiveDataTableCell","focused","renderedIds","columnIds","moveDataTableColumn","table","sourceId","targetId","source","target","region","order","column","from","to","next","previous","getColumnId","id","getCellValue","data","rowIndex","value","key","setCellValue","keys","set","depth","record","result","dateInputPrefix","dateInputValue","toDateInputValue","parseDateInputValue","rawValue","previousValue","cellDataType","match","year","month","day","date","filterType","matchesFilter","filter","type","condition","blank","normalize","input","a","b","getFlexSizes","columns","available","sizes","remaining","flexible","weight","sum","allocations","share","width","violation","constrained","allocation"],"mappings":"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"}