@ackplus/mui-tanstack-data-grid 1.0.0

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 (119) hide show
  1. package/README.md +22 -0
  2. package/dist/components/data-table.d.ts +4 -0
  3. package/dist/components/data-table.d.ts.map +1 -0
  4. package/dist/components/data-table.js +24 -0
  5. package/dist/components/filters/filter-value-input.d.ts +10 -0
  6. package/dist/components/filters/filter-value-input.d.ts.map +1 -0
  7. package/dist/components/filters/filter-value-input.js +39 -0
  8. package/dist/components/filters/index.d.ts +3 -0
  9. package/dist/components/filters/index.d.ts.map +1 -0
  10. package/dist/components/filters/index.js +18 -0
  11. package/dist/components/filters/operators.d.ts +93 -0
  12. package/dist/components/filters/operators.d.ts.map +1 -0
  13. package/dist/components/filters/operators.js +42 -0
  14. package/dist/components/grid/grid-view.d.ts +8 -0
  15. package/dist/components/grid/grid-view.d.ts.map +1 -0
  16. package/dist/components/grid/grid-view.js +151 -0
  17. package/dist/components/grid/styled.d.ts +17 -0
  18. package/dist/components/grid/styled.d.ts.map +1 -0
  19. package/dist/components/grid/styled.js +68 -0
  20. package/dist/components/index.d.ts +8 -0
  21. package/dist/components/index.d.ts.map +1 -0
  22. package/dist/components/index.js +23 -0
  23. package/dist/components/toolbar/bulk-actions-toolbar.d.ts +10 -0
  24. package/dist/components/toolbar/bulk-actions-toolbar.d.ts.map +1 -0
  25. package/dist/components/toolbar/bulk-actions-toolbar.js +20 -0
  26. package/dist/components/toolbar/column-filter-control.d.ts +8 -0
  27. package/dist/components/toolbar/column-filter-control.d.ts.map +1 -0
  28. package/dist/components/toolbar/column-filter-control.js +93 -0
  29. package/dist/components/toolbar/data-table-toolbar.d.ts +16 -0
  30. package/dist/components/toolbar/data-table-toolbar.d.ts.map +1 -0
  31. package/dist/components/toolbar/data-table-toolbar.js +44 -0
  32. package/dist/core/index.d.ts +2 -0
  33. package/dist/core/index.d.ts.map +1 -0
  34. package/dist/core/index.js +17 -0
  35. package/dist/core/use-data-table.d.ts +83 -0
  36. package/dist/core/use-data-table.d.ts.map +1 -0
  37. package/dist/core/use-data-table.js +1081 -0
  38. package/dist/features/column-filter.feature.d.ts +48 -0
  39. package/dist/features/column-filter.feature.d.ts.map +1 -0
  40. package/dist/features/column-filter.feature.js +270 -0
  41. package/dist/features/index.d.ts +3 -0
  42. package/dist/features/index.d.ts.map +1 -0
  43. package/dist/features/index.js +18 -0
  44. package/dist/features/selection.feature.d.ts +49 -0
  45. package/dist/features/selection.feature.d.ts.map +1 -0
  46. package/dist/features/selection.feature.js +159 -0
  47. package/dist/index.d.ts +13 -0
  48. package/dist/index.d.ts.map +1 -0
  49. package/dist/index.js +34 -0
  50. package/dist/theme/create-data-table-theme.d.ts +16 -0
  51. package/dist/theme/create-data-table-theme.d.ts.map +1 -0
  52. package/dist/theme/create-data-table-theme.js +18 -0
  53. package/dist/theme/index.d.ts +7 -0
  54. package/dist/theme/index.d.ts.map +1 -0
  55. package/dist/theme/index.js +22 -0
  56. package/dist/theme/mui-augmentation.d.ts +40 -0
  57. package/dist/theme/mui-augmentation.d.ts.map +1 -0
  58. package/dist/theme/mui-augmentation.js +2 -0
  59. package/dist/theme/palette.d.ts +24 -0
  60. package/dist/theme/palette.d.ts.map +1 -0
  61. package/dist/theme/palette.js +23 -0
  62. package/dist/theme/tokens.d.ts +43 -0
  63. package/dist/theme/tokens.d.ts.map +1 -0
  64. package/dist/theme/tokens.js +40 -0
  65. package/dist/theme/use-data-table-tokens.d.ts +4 -0
  66. package/dist/theme/use-data-table-tokens.d.ts.map +1 -0
  67. package/dist/theme/use-data-table-tokens.js +42 -0
  68. package/dist/types/api.types.d.ts +156 -0
  69. package/dist/types/api.types.d.ts.map +1 -0
  70. package/dist/types/api.types.js +2 -0
  71. package/dist/types/column.types.d.ts +60 -0
  72. package/dist/types/column.types.d.ts.map +1 -0
  73. package/dist/types/column.types.js +7 -0
  74. package/dist/types/data-table.types.d.ts +161 -0
  75. package/dist/types/data-table.types.d.ts.map +1 -0
  76. package/dist/types/data-table.types.js +2 -0
  77. package/dist/types/export.types.d.ts +32 -0
  78. package/dist/types/export.types.d.ts.map +1 -0
  79. package/dist/types/export.types.js +2 -0
  80. package/dist/types/filter.types.d.ts +15 -0
  81. package/dist/types/filter.types.d.ts.map +1 -0
  82. package/dist/types/filter.types.js +2 -0
  83. package/dist/types/index.d.ts +10 -0
  84. package/dist/types/index.d.ts.map +1 -0
  85. package/dist/types/index.js +25 -0
  86. package/dist/types/logging.types.d.ts +23 -0
  87. package/dist/types/logging.types.d.ts.map +1 -0
  88. package/dist/types/logging.types.js +2 -0
  89. package/dist/types/selection.types.d.ts +7 -0
  90. package/dist/types/selection.types.d.ts.map +1 -0
  91. package/dist/types/selection.types.js +2 -0
  92. package/dist/types/slots.types.d.ts +41 -0
  93. package/dist/types/slots.types.d.ts.map +1 -0
  94. package/dist/types/slots.types.js +2 -0
  95. package/dist/types/state.types.d.ts +46 -0
  96. package/dist/types/state.types.d.ts.map +1 -0
  97. package/dist/types/state.types.js +2 -0
  98. package/dist/utils/column-helpers.d.ts +9 -0
  99. package/dist/utils/column-helpers.d.ts.map +1 -0
  100. package/dist/utils/column-helpers.js +46 -0
  101. package/dist/utils/debounced-fetch.utils.d.ts +22 -0
  102. package/dist/utils/debounced-fetch.utils.d.ts.map +1 -0
  103. package/dist/utils/debounced-fetch.utils.js +85 -0
  104. package/dist/utils/export-utils.d.ts +49 -0
  105. package/dist/utils/export-utils.d.ts.map +1 -0
  106. package/dist/utils/export-utils.js +372 -0
  107. package/dist/utils/index.d.ts +7 -0
  108. package/dist/utils/index.d.ts.map +1 -0
  109. package/dist/utils/index.js +22 -0
  110. package/dist/utils/logger.d.ts +24 -0
  111. package/dist/utils/logger.d.ts.map +1 -0
  112. package/dist/utils/logger.js +107 -0
  113. package/dist/utils/special-columns.d.ts +9 -0
  114. package/dist/utils/special-columns.d.ts.map +1 -0
  115. package/dist/utils/special-columns.js +80 -0
  116. package/dist/utils/table-helpers.d.ts +16 -0
  117. package/dist/utils/table-helpers.d.ts.map +1 -0
  118. package/dist/utils/table-helpers.js +50 -0
  119. package/package.json +74 -0
@@ -0,0 +1,7 @@
1
+ import './mui-augmentation';
2
+ export * from './tokens';
3
+ export * from './palette';
4
+ export * from './use-data-table-tokens';
5
+ export * from './create-data-table-theme';
6
+ export type { DataTableClassKey } from './mui-augmentation';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/theme/index.ts"],"names":[],"mappings":"AACA,OAAO,oBAAoB,CAAC;AAE5B,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,yBAAyB,CAAC;AACxC,cAAc,2BAA2B,CAAC;AAC1C,YAAY,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC"}
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ // Side-effect import ensures the MUI module augmentation is included.
18
+ require("./mui-augmentation");
19
+ __exportStar(require("./tokens"), exports);
20
+ __exportStar(require("./palette"), exports);
21
+ __exportStar(require("./use-data-table-tokens"), exports);
22
+ __exportStar(require("./create-data-table-theme"), exports);
@@ -0,0 +1,40 @@
1
+ /**
2
+ * Registers the grid as a first-class MUI themeable component, so consumers
3
+ * override it with the SAME standard patterns as `MuiButton` / `MuiDataGrid`:
4
+ *
5
+ * createTheme({
6
+ * palette: { tanstackDataGrid: { headerBg: '#eaeff5' } },
7
+ * components: {
8
+ * MuiTanstackDataGrid: {
9
+ * defaultProps: { density: 'compact' },
10
+ * styleOverrides: { root: { '--dt-border-color': '#e3e8ef' }, cell: { paddingInline: 12 } },
11
+ * },
12
+ * },
13
+ * })
14
+ */
15
+ import type { ComponentsOverrides } from '@mui/material/styles';
16
+ import type { TanstackDataGridPalette } from './palette';
17
+ import type { DataTableProps } from '../types/data-table.types';
18
+ /** styleOverrides slot keys (the grid's themeable parts). */
19
+ export type DataTableClassKey = 'root' | 'scroller' | 'grid' | 'toolbar' | 'header' | 'headerRow' | 'headerCell' | 'body' | 'row' | 'cell' | 'detailPanel' | 'footer' | 'pagination' | 'loadingOverlay' | 'noRowsOverlay';
20
+ declare module '@mui/material/styles' {
21
+ interface ComponentNameToClassKey {
22
+ MuiTanstackDataGrid: DataTableClassKey;
23
+ }
24
+ interface ComponentsPropsList {
25
+ MuiTanstackDataGrid: Partial<DataTableProps<any>>;
26
+ }
27
+ interface Components<Theme = unknown> {
28
+ MuiTanstackDataGrid?: {
29
+ defaultProps?: ComponentsPropsList['MuiTanstackDataGrid'];
30
+ styleOverrides?: ComponentsOverrides<Theme>['MuiTanstackDataGrid'];
31
+ };
32
+ }
33
+ interface Palette {
34
+ tanstackDataGrid: TanstackDataGridPalette;
35
+ }
36
+ interface PaletteOptions {
37
+ tanstackDataGrid?: Partial<TanstackDataGridPalette>;
38
+ }
39
+ }
40
+ //# sourceMappingURL=mui-augmentation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mui-augmentation.d.ts","sourceRoot":"","sources":["../../src/theme/mui-augmentation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,KAAK,EAAE,mBAAmB,EAAuB,MAAM,sBAAsB,CAAC;AAErF,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,WAAW,CAAC;AACzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAEhE,6DAA6D;AAC7D,MAAM,MAAM,iBAAiB,GACvB,MAAM,GACN,UAAU,GACV,MAAM,GACN,SAAS,GACT,QAAQ,GACR,WAAW,GACX,YAAY,GACZ,MAAM,GACN,KAAK,GACL,MAAM,GACN,aAAa,GACb,QAAQ,GACR,YAAY,GACZ,gBAAgB,GAChB,eAAe,CAAC;AAEtB,OAAO,QAAQ,sBAAsB,CAAC;IAElC,UAAU,uBAAuB;QAC7B,mBAAmB,EAAE,iBAAiB,CAAC;KAC1C;IAGD,UAAU,mBAAmB;QACzB,mBAAmB,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC;KACrD;IAGD,UAAU,UAAU,CAAC,KAAK,GAAG,OAAO;QAChC,mBAAmB,CAAC,EAAE;YAClB,YAAY,CAAC,EAAE,mBAAmB,CAAC,qBAAqB,CAAC,CAAC;YAC1D,cAAc,CAAC,EAAE,mBAAmB,CAAC,KAAK,CAAC,CAAC,qBAAqB,CAAC,CAAC;SACtE,CAAC;KACL;IAGD,UAAU,OAAO;QACb,gBAAgB,EAAE,uBAAuB,CAAC;KAC7C;IACD,UAAU,cAAc;QACpB,gBAAgB,CAAC,EAAE,OAAO,CAAC,uBAAuB,CAAC,CAAC;KACvD;CACJ"}
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Grid palette namespace — the "set colours once, in the theme" path.
3
+ *
4
+ * Mirrors MUI X DataGrid's `palette.DataGrid`. Every key DEFAULTS from the base
5
+ * MUI palette, so it is never a second source of truth: set `palette.divider`
6
+ * (or `palette.tanstackDataGrid.borderColor`) once and the grid follows.
7
+ */
8
+ import type { Theme } from '@mui/material/styles';
9
+ export interface TanstackDataGridPalette {
10
+ headerBg: string;
11
+ headerColor: string;
12
+ borderColor: string;
13
+ pinnedBg: string;
14
+ rowHoverBg: string;
15
+ selectedBg: string;
16
+ stripeBg: string;
17
+ }
18
+ /**
19
+ * Resolve the effective grid palette: user overrides
20
+ * (`theme.palette.tanstackDataGrid`) layered on defaults derived from the base
21
+ * MUI palette.
22
+ */
23
+ export declare function resolveDataGridPalette(theme: Theme): TanstackDataGridPalette;
24
+ //# sourceMappingURL=palette.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"palette.d.ts","sourceRoot":"","sources":["../../src/theme/palette.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAElD,MAAM,WAAW,uBAAuB;IACpC,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CACpB;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,KAAK,GAAG,uBAAuB,CAa5E"}
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.resolveDataGridPalette = resolveDataGridPalette;
4
+ /**
5
+ * Resolve the effective grid palette: user overrides
6
+ * (`theme.palette.tanstackDataGrid`) layered on defaults derived from the base
7
+ * MUI palette.
8
+ */
9
+ function resolveDataGridPalette(theme) {
10
+ var _a, _b, _c, _d, _e, _f, _g, _h;
11
+ const p = theme.palette;
12
+ const user = (_a = p.tanstackDataGrid) !== null && _a !== void 0 ? _a : {};
13
+ const dark = p.mode === 'dark';
14
+ return {
15
+ headerBg: (_b = user.headerBg) !== null && _b !== void 0 ? _b : (dark ? p.grey[900] : p.grey[100]),
16
+ headerColor: (_c = user.headerColor) !== null && _c !== void 0 ? _c : p.text.secondary,
17
+ borderColor: (_d = user.borderColor) !== null && _d !== void 0 ? _d : p.divider,
18
+ pinnedBg: (_e = user.pinnedBg) !== null && _e !== void 0 ? _e : p.background.paper,
19
+ rowHoverBg: (_f = user.rowHoverBg) !== null && _f !== void 0 ? _f : p.action.hover,
20
+ selectedBg: (_g = user.selectedBg) !== null && _g !== void 0 ? _g : p.action.selected,
21
+ stripeBg: (_h = user.stripeBg) !== null && _h !== void 0 ? _h : (dark ? 'rgba(255,255,255,0.03)' : 'rgba(0,0,0,0.02)'),
22
+ };
23
+ }
@@ -0,0 +1,43 @@
1
+ /**
2
+ * Design tokens for the data grid.
3
+ *
4
+ * Tokens are CSS custom properties whose DEFAULTS derive from the MUI theme
5
+ * (see `use-data-table-tokens.ts`). They are an optional override surface — the
6
+ * MUI theme remains the single source of truth. This mirrors how MUI X DataGrid
7
+ * exposes `--DataGrid-*` variables that default from `palette.DataGrid`.
8
+ */
9
+ export type DataTableDensity = 'compact' | 'standard' | 'comfortable';
10
+ export interface DensityTokens {
11
+ rowHeight: number;
12
+ headerHeight: number;
13
+ cellPaddingX: number;
14
+ cellPaddingY: number;
15
+ fontSize: string;
16
+ }
17
+ export declare const DENSITY_PRESETS: Record<DataTableDensity, DensityTokens>;
18
+ /**
19
+ * The themeable CSS-variable names. Keep this the single registry of token names
20
+ * so render components and the resolver never drift.
21
+ */
22
+ export declare const DT_VARS: {
23
+ readonly borderColor: "--dt-border-color";
24
+ readonly headerBg: "--dt-header-bg";
25
+ readonly headerColor: "--dt-header-color";
26
+ readonly rowBg: "--dt-row-bg";
27
+ readonly rowBgHover: "--dt-row-bg-hover";
28
+ readonly rowBgSelected: "--dt-row-bg-selected";
29
+ readonly rowBgStripe: "--dt-row-bg-stripe";
30
+ readonly pinnedBg: "--dt-pinned-bg";
31
+ readonly pinnedShadow: "--dt-pinned-shadow";
32
+ readonly resizeHandle: "--dt-resize-handle";
33
+ readonly rowHeight: "--dt-row-height";
34
+ readonly headerHeight: "--dt-header-height";
35
+ readonly cellPaddingX: "--dt-cell-padding-x";
36
+ readonly cellPaddingY: "--dt-cell-padding-y";
37
+ readonly fontSize: "--dt-font-size";
38
+ readonly radius: "--dt-radius";
39
+ readonly zHeader: "--dt-z-header";
40
+ readonly zPinned: "--dt-z-pinned";
41
+ };
42
+ export type DataTableVarName = (typeof DT_VARS)[keyof typeof DT_VARS];
43
+ //# sourceMappingURL=tokens.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tokens.d.ts","sourceRoot":"","sources":["../../src/theme/tokens.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,MAAM,MAAM,gBAAgB,GAAG,SAAS,GAAG,UAAU,GAAG,aAAa,CAAC;AAEtE,MAAM,WAAW,aAAa;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,gBAAgB,EAAE,aAAa,CAInE,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;;CAmBV,CAAC;AAEX,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,OAAO,CAAC,CAAC,MAAM,OAAO,OAAO,CAAC,CAAC"}
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ /**
3
+ * Design tokens for the data grid.
4
+ *
5
+ * Tokens are CSS custom properties whose DEFAULTS derive from the MUI theme
6
+ * (see `use-data-table-tokens.ts`). They are an optional override surface — the
7
+ * MUI theme remains the single source of truth. This mirrors how MUI X DataGrid
8
+ * exposes `--DataGrid-*` variables that default from `palette.DataGrid`.
9
+ */
10
+ Object.defineProperty(exports, "__esModule", { value: true });
11
+ exports.DT_VARS = exports.DENSITY_PRESETS = void 0;
12
+ exports.DENSITY_PRESETS = {
13
+ compact: { rowHeight: 36, headerHeight: 40, cellPaddingX: 8, cellPaddingY: 4, fontSize: '0.8125rem' },
14
+ standard: { rowHeight: 48, headerHeight: 52, cellPaddingX: 12, cellPaddingY: 8, fontSize: '0.875rem' },
15
+ comfortable: { rowHeight: 60, headerHeight: 64, cellPaddingX: 16, cellPaddingY: 12, fontSize: '0.9375rem' },
16
+ };
17
+ /**
18
+ * The themeable CSS-variable names. Keep this the single registry of token names
19
+ * so render components and the resolver never drift.
20
+ */
21
+ exports.DT_VARS = {
22
+ borderColor: '--dt-border-color',
23
+ headerBg: '--dt-header-bg',
24
+ headerColor: '--dt-header-color',
25
+ rowBg: '--dt-row-bg',
26
+ rowBgHover: '--dt-row-bg-hover',
27
+ rowBgSelected: '--dt-row-bg-selected',
28
+ rowBgStripe: '--dt-row-bg-stripe',
29
+ pinnedBg: '--dt-pinned-bg',
30
+ pinnedShadow: '--dt-pinned-shadow',
31
+ resizeHandle: '--dt-resize-handle',
32
+ rowHeight: '--dt-row-height',
33
+ headerHeight: '--dt-header-height',
34
+ cellPaddingX: '--dt-cell-padding-x',
35
+ cellPaddingY: '--dt-cell-padding-y',
36
+ fontSize: '--dt-font-size',
37
+ radius: '--dt-radius',
38
+ zHeader: '--dt-z-header',
39
+ zPinned: '--dt-z-pinned',
40
+ };
@@ -0,0 +1,4 @@
1
+ import type { CSSProperties } from 'react';
2
+ import { type DataTableDensity } from './tokens';
3
+ export declare function useDataTableTokens(density?: DataTableDensity): CSSProperties;
4
+ //# sourceMappingURL=use-data-table-tokens.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-data-table-tokens.d.ts","sourceRoot":"","sources":["../../src/theme/use-data-table-tokens.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAE3C,OAAO,EAA4B,KAAK,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAG3E,wBAAgB,kBAAkB,CAAC,OAAO,GAAE,gBAA6B,GAAG,aAAa,CA2BxF"}
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useDataTableTokens = useDataTableTokens;
4
+ /**
5
+ * Resolves the full set of `--dt-*` CSS variables from the MUI theme + density.
6
+ * Apply the returned object to the grid root's `style`; every cell/row/header
7
+ * then reads its visuals from `var(--dt-*)`, so a theme change restyles the grid
8
+ * with no per-cell work.
9
+ */
10
+ const styles_1 = require("@mui/material/styles");
11
+ const react_1 = require("react");
12
+ const tokens_1 = require("./tokens");
13
+ const palette_1 = require("./palette");
14
+ function useDataTableTokens(density = 'standard') {
15
+ const theme = (0, styles_1.useTheme)();
16
+ return (0, react_1.useMemo)(() => {
17
+ var _a;
18
+ const pal = (0, palette_1.resolveDataGridPalette)(theme);
19
+ const d = (_a = tokens_1.DENSITY_PRESETS[density]) !== null && _a !== void 0 ? _a : tokens_1.DENSITY_PRESETS.standard;
20
+ const vars = {
21
+ [tokens_1.DT_VARS.borderColor]: pal.borderColor,
22
+ [tokens_1.DT_VARS.headerBg]: pal.headerBg,
23
+ [tokens_1.DT_VARS.headerColor]: pal.headerColor,
24
+ [tokens_1.DT_VARS.rowBg]: theme.palette.background.paper,
25
+ [tokens_1.DT_VARS.rowBgHover]: pal.rowHoverBg,
26
+ [tokens_1.DT_VARS.rowBgSelected]: pal.selectedBg,
27
+ [tokens_1.DT_VARS.rowBgStripe]: pal.stripeBg,
28
+ [tokens_1.DT_VARS.pinnedBg]: pal.pinnedBg,
29
+ [tokens_1.DT_VARS.pinnedShadow]: theme.palette.mode === 'dark' ? 'rgba(0,0,0,0.5)' : 'rgba(0,0,0,0.18)',
30
+ [tokens_1.DT_VARS.resizeHandle]: theme.palette.primary.main,
31
+ [tokens_1.DT_VARS.rowHeight]: `${d.rowHeight}px`,
32
+ [tokens_1.DT_VARS.headerHeight]: `${d.headerHeight}px`,
33
+ [tokens_1.DT_VARS.cellPaddingX]: `${d.cellPaddingX}px`,
34
+ [tokens_1.DT_VARS.cellPaddingY]: `${d.cellPaddingY}px`,
35
+ [tokens_1.DT_VARS.fontSize]: d.fontSize,
36
+ [tokens_1.DT_VARS.radius]: `${theme.shape.borderRadius}px`,
37
+ [tokens_1.DT_VARS.zHeader]: 3,
38
+ [tokens_1.DT_VARS.zPinned]: 2,
39
+ };
40
+ return vars;
41
+ }, [theme, density]);
42
+ }
@@ -0,0 +1,156 @@
1
+ import type { ColumnPinningState, SortingState, ColumnOrderState, Row, Table } from '@tanstack/react-table';
2
+ import type { ColumnFilterState } from './filter.types';
3
+ import type { SelectionState } from './selection.types';
4
+ import type { ServerExportResult } from './export.types';
5
+ import type { TableState, TableFilters, PaginationModel } from './state.types';
6
+ export interface DataRefreshApiOptions {
7
+ resetPagination?: boolean;
8
+ force?: boolean;
9
+ reason?: string;
10
+ }
11
+ export type DataRefreshApiInput = boolean | DataRefreshApiOptions;
12
+ export interface DataTableExportApiOptions {
13
+ filename?: string;
14
+ onlyVisibleColumns?: boolean;
15
+ onlySelectedRows?: boolean;
16
+ includeHeaders?: boolean;
17
+ chunkSize?: number;
18
+ strictTotalCheck?: boolean;
19
+ sanitizeCSV?: boolean;
20
+ }
21
+ /** Serializable layout snapshot returned by `api.layout.saveLayout()`. */
22
+ export interface SavedLayout {
23
+ columnVisibility: Record<string, boolean>;
24
+ columnOrder: string[];
25
+ columnSizing: Record<string, number>;
26
+ columnPinning: ColumnPinningState;
27
+ pagination?: PaginationModel;
28
+ globalFilter?: string;
29
+ columnFilter?: ColumnFilterState;
30
+ }
31
+ /** Imperative handle exposed via `apiRef`. */
32
+ export interface DataTableApi<T = any> {
33
+ table: {
34
+ getTable: () => Table<T>;
35
+ };
36
+ columnVisibility: {
37
+ showColumn: (columnId: string) => void;
38
+ hideColumn: (columnId: string) => void;
39
+ toggleColumn: (columnId: string) => void;
40
+ showAllColumns: () => void;
41
+ hideAllColumns: () => void;
42
+ resetColumnVisibility: () => void;
43
+ };
44
+ columnOrdering: {
45
+ setColumnOrder: (columnOrder: ColumnOrderState) => void;
46
+ moveColumn: (columnId: string, toIndex: number) => void;
47
+ resetColumnOrder: () => void;
48
+ };
49
+ columnPinning: {
50
+ pinColumnLeft: (columnId: string) => void;
51
+ pinColumnRight: (columnId: string) => void;
52
+ unpinColumn: (columnId: string) => void;
53
+ setPinning: (pinning: ColumnPinningState) => void;
54
+ resetColumnPinning: () => void;
55
+ };
56
+ columnResizing: {
57
+ resizeColumn: (columnId: string, width: number) => void;
58
+ autoSizeColumn: (columnId: string) => void;
59
+ autoSizeAllColumns: () => void;
60
+ resetColumnSizing: () => void;
61
+ };
62
+ filtering: {
63
+ setGlobalFilter: (filter: string) => void;
64
+ clearGlobalFilter: () => void;
65
+ setColumnFilters: (filters: ColumnFilterState, isApply?: boolean) => void;
66
+ addColumnFilter: (columnId: string, operator: string, value: any) => void;
67
+ removeColumnFilter: (filterId: string) => void;
68
+ clearAllFilters: () => void;
69
+ resetFilters: () => void;
70
+ };
71
+ sorting: {
72
+ setSorting: (sorting: SortingState) => void;
73
+ sortColumn: (columnId: string, direction: 'asc' | 'desc' | false) => void;
74
+ clearSorting: () => void;
75
+ resetSorting: () => void;
76
+ };
77
+ pagination: {
78
+ goToPage: (pageIndex: number) => void;
79
+ nextPage: () => void;
80
+ previousPage: () => void;
81
+ setPageSize: (pageSize: number) => void;
82
+ goToFirstPage: () => void;
83
+ goToLastPage: () => void;
84
+ resetPagination?: () => void;
85
+ };
86
+ selection: {
87
+ selectRow: (rowId: string) => void;
88
+ deselectRow: (rowId: string) => void;
89
+ toggleRowSelection: (rowId: string) => void;
90
+ selectAll: () => void;
91
+ deselectAll: () => void;
92
+ toggleSelectAll: () => void;
93
+ getSelectionState: () => SelectionState;
94
+ getSelectedCount: () => number;
95
+ getSelectedRows: () => Row<T>[];
96
+ isRowSelected: (rowId: string) => boolean;
97
+ };
98
+ data: {
99
+ refresh: (options?: DataRefreshApiInput) => void;
100
+ reload: (options?: DataRefreshApiOptions) => void;
101
+ resetAll: () => void;
102
+ getAllData: () => T[];
103
+ getRowData: (rowId: string) => T | undefined;
104
+ getRowByIndex: (index: number) => T | undefined;
105
+ updateRow: (rowId: string, updates: Partial<T>) => void;
106
+ updateRowByIndex: (index: number, updates: Partial<T>) => void;
107
+ insertRow: (newRow: T, index?: number) => void;
108
+ deleteRow: (rowId: string) => void;
109
+ deleteRowByIndex: (index: number) => void;
110
+ deleteSelectedRows: () => void;
111
+ replaceAllData: (newData: T[]) => void;
112
+ updateMultipleRows: (updates: Array<{
113
+ rowId: string;
114
+ data: Partial<T>;
115
+ }>) => void;
116
+ insertMultipleRows: (newRows: T[], startIndex?: number) => void;
117
+ deleteMultipleRows: (rowIds: string[]) => void;
118
+ updateField: (rowId: string, fieldName: keyof T, value: any) => void;
119
+ updateFieldByIndex: (index: number, fieldName: keyof T, value: any) => void;
120
+ findRows: (predicate: (row: T) => boolean) => T[];
121
+ findRowIndex: (predicate: (row: T) => boolean) => number;
122
+ getDataCount: () => number;
123
+ getFilteredDataCount: () => number;
124
+ };
125
+ layout: {
126
+ resetLayout: () => void;
127
+ resetAll: () => void;
128
+ saveLayout: () => SavedLayout;
129
+ restoreLayout: (layout: Partial<SavedLayout>) => void;
130
+ };
131
+ state: {
132
+ getTableState: () => Partial<TableState>;
133
+ getCurrentFilters: () => ColumnFilterState;
134
+ getCurrentSorting: () => SortingState;
135
+ getCurrentPagination: () => PaginationModel;
136
+ getCurrentSelection: () => SelectionState;
137
+ getGlobalFilter: () => string;
138
+ };
139
+ export: {
140
+ exportCSV: (options?: DataTableExportApiOptions) => Promise<void>;
141
+ exportExcel: (options?: DataTableExportApiOptions) => Promise<void>;
142
+ exportServerData: (options: {
143
+ format: 'csv' | 'excel';
144
+ filename?: string;
145
+ fetchData: (filters?: Partial<TableFilters>, selection?: SelectionState, signal?: AbortSignal) => Promise<ServerExportResult<T>>;
146
+ pageSize?: number;
147
+ includeHeaders?: boolean;
148
+ chunkSize?: number;
149
+ strictTotalCheck?: boolean;
150
+ sanitizeCSV?: boolean;
151
+ }) => Promise<void>;
152
+ isExporting: () => boolean;
153
+ cancelExport: () => void;
154
+ };
155
+ }
156
+ //# sourceMappingURL=api.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api.types.d.ts","sourceRoot":"","sources":["../../src/types/api.types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,60 @@
1
+ import type { ColumnDef, ColumnDefBase, RowData, Column } from '@tanstack/react-table';
2
+ import type { ComponentType } from 'react';
3
+ import type { ColumnFilterRule } from './filter.types';
4
+ export declare const DEFAULT_SELECTION_COLUMN_ID = "_selection";
5
+ export declare const DEFAULT_EXPAND_COLUMN_ID = "_expanding";
6
+ interface ColumnExportContext<TData, TValue> {
7
+ value: any;
8
+ row: TData;
9
+ rowIndex: number;
10
+ columnId: string;
11
+ columnDef: ColumnDefBase<TData, TValue>;
12
+ }
13
+ interface ColumnInputProps<TData extends RowData, TValue> {
14
+ value: any;
15
+ onChange: (value: any) => void;
16
+ filter: ColumnFilterRule;
17
+ column: Column<TData, TValue>;
18
+ }
19
+ /**
20
+ * Extra column-definition options, augmented onto every TanStack `ColumnDef`.
21
+ * (TanStack's own `size`, `minSize`, `maxSize`, `enableResizing`, `enableSorting`,
22
+ * `header`, `cell` remain available too.)
23
+ */
24
+ declare module '@tanstack/react-table' {
25
+ interface ColumnDefBase<TData extends RowData, TValue> {
26
+ /** Data type — drives default filter operators/inputs. */
27
+ type?: 'boolean' | 'number' | 'date' | 'select' | 'text';
28
+ /** Options for `type: 'select'` columns. */
29
+ options?: {
30
+ label: string;
31
+ value: string;
32
+ }[];
33
+ /** Cell + header text alignment. */
34
+ align?: 'left' | 'center' | 'right';
35
+ /** Mark the column as filterable in the column-filter UI. */
36
+ filterable?: boolean;
37
+ /** Wrap cell text instead of truncating with an ellipsis (default: false). */
38
+ wrapText?: boolean;
39
+ /** Conditional class for body cells (DataGrid-style). */
40
+ cellClassName?: string | ((context: {
41
+ value: any;
42
+ row: TData;
43
+ }) => string);
44
+ /** Conditional class for the header cell. */
45
+ headerClassName?: string;
46
+ hideInExport?: boolean;
47
+ exportHeader?: string | ((context: {
48
+ columnId: string;
49
+ defaultHeader: string;
50
+ columnDef: ColumnDefBase<TData, TValue>;
51
+ }) => string);
52
+ exportValue?: (context: ColumnExportContext<TData, TValue>) => any;
53
+ exportFormat?: 'auto' | 'string' | 'number' | 'boolean' | 'json' | 'date' | ((context: ColumnExportContext<TData, TValue>) => any);
54
+ editComponent?: ComponentType<ColumnInputProps<TData, TValue>>;
55
+ filterComponent?: ComponentType<ColumnInputProps<TData, TValue>>;
56
+ }
57
+ }
58
+ export type DataTableColumn<TData extends RowData, TValue = unknown> = ColumnDef<TData, TValue>;
59
+ export {};
60
+ //# sourceMappingURL=column.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"column.types.d.ts","sourceRoot":"","sources":["../../src/types/column.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AACvF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAE3C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAIvD,eAAO,MAAM,2BAA2B,eAAe,CAAC;AACxD,eAAO,MAAM,wBAAwB,eAAe,CAAC;AAErD,UAAU,mBAAmB,CAAC,KAAK,EAAE,MAAM;IACvC,KAAK,EAAE,GAAG,CAAC;IACX,GAAG,EAAE,KAAK,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IAGjB,SAAS,EAAE,aAAa,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;CAC3C;AAED,UAAU,gBAAgB,CAAC,KAAK,SAAS,OAAO,EAAE,MAAM;IACpD,KAAK,EAAE,GAAG,CAAC;IACX,QAAQ,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;IAC/B,MAAM,EAAE,gBAAgB,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;CACjC;AAED;;;;GAIG;AACH,OAAO,QAAQ,uBAAuB,CAAC;IACnC,UAAU,aAAa,CAAC,KAAK,SAAS,OAAO,EAAE,MAAM;QACjD,0DAA0D;QAC1D,IAAI,CAAC,EAAE,SAAS,GAAG,QAAQ,GAAG,MAAM,GAAG,QAAQ,GAAG,MAAM,CAAC;QACzD,4CAA4C;QAC5C,OAAO,CAAC,EAAE;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAA;SAAE,EAAE,CAAC;QAC7C,oCAAoC;QACpC,KAAK,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;QACpC,6DAA6D;QAC7D,UAAU,CAAC,EAAE,OAAO,CAAC;QACrB,8EAA8E;QAC9E,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,yDAAyD;QACzD,aAAa,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,OAAO,EAAE;YAAE,KAAK,EAAE,GAAG,CAAC;YAAC,GAAG,EAAE,KAAK,CAAA;SAAE,KAAK,MAAM,CAAC,CAAC;QAC3E,6CAA6C;QAC7C,eAAe,CAAC,EAAE,MAAM,CAAC;QAEzB,YAAY,CAAC,EAAE,OAAO,CAAC;QACvB,YAAY,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,OAAO,EAAE;YAAE,QAAQ,EAAE,MAAM,CAAC;YAAC,aAAa,EAAE,MAAM,CAAC;YAAC,SAAS,EAAE,aAAa,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;SAAE,KAAK,MAAM,CAAC,CAAC;QACpI,WAAW,CAAC,EAAE,CAAC,OAAO,EAAE,mBAAmB,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,GAAG,CAAC;QACnE,YAAY,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,CAAC,CAAC,OAAO,EAAE,mBAAmB,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC;QAEnI,aAAa,CAAC,EAAE,aAAa,CAAC,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;QAC/D,eAAe,CAAC,EAAE,aAAa,CAAC,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;KACpE;CACJ;AAED,MAAM,MAAM,eAAe,CAAC,KAAK,SAAS,OAAO,EAAE,MAAM,GAAG,OAAO,IAAI,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC"}
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DEFAULT_EXPAND_COLUMN_ID = exports.DEFAULT_SELECTION_COLUMN_ID = void 0;
4
+ // Values kept identical to v1 (`_selection` / `_expanding`) so persisted v1 layout
5
+ // snapshots (columnOrder/visibility/pinning) still resolve after upgrade.
6
+ exports.DEFAULT_SELECTION_COLUMN_ID = '_selection';
7
+ exports.DEFAULT_EXPAND_COLUMN_ID = '_expanding';