@bioturing/components 0.37.0 → 0.38.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 (49) hide show
  1. package/dist/components/data-table/component.d.ts.map +1 -1
  2. package/dist/components/data-table/component.js +76 -71
  3. package/dist/components/data-table/component.js.map +1 -1
  4. package/dist/components/data-table/components/TablePagination.d.ts +1 -1
  5. package/dist/components/data-table/components/TablePagination.d.ts.map +1 -1
  6. package/dist/components/data-table/components/TablePagination.js +26 -23
  7. package/dist/components/data-table/components/TablePagination.js.map +1 -1
  8. package/dist/components/data-table/hooks.d.ts.map +1 -1
  9. package/dist/components/data-table/hooks.js +82 -82
  10. package/dist/components/data-table/hooks.js.map +1 -1
  11. package/dist/components/data-table/style.css +1 -1
  12. package/dist/components/empty/component.d.ts +0 -2
  13. package/dist/components/empty/component.d.ts.map +1 -1
  14. package/dist/components/empty/component.js +14 -35
  15. package/dist/components/empty/component.js.map +1 -1
  16. package/dist/components/empty/style.css +1 -1
  17. package/dist/components/hooks/useResizable.d.ts +50 -0
  18. package/dist/components/hooks/useResizable.d.ts.map +1 -0
  19. package/dist/components/hooks/useResizable.js +148 -0
  20. package/dist/components/hooks/useResizable.js.map +1 -0
  21. package/dist/components/index.d.ts +1 -0
  22. package/dist/components/index.d.ts.map +1 -1
  23. package/dist/components/popup-panel/component.d.ts.map +1 -1
  24. package/dist/components/popup-panel/component.js +119 -112
  25. package/dist/components/popup-panel/component.js.map +1 -1
  26. package/dist/components/popup-panel/utils.d.ts +10 -0
  27. package/dist/components/popup-panel/utils.d.ts.map +1 -0
  28. package/dist/components/popup-panel/utils.js +13 -0
  29. package/dist/components/popup-panel/utils.js.map +1 -0
  30. package/dist/components/resizable/component.d.ts +2 -8
  31. package/dist/components/resizable/component.d.ts.map +1 -1
  32. package/dist/components/resizable/component.js +250 -248
  33. package/dist/components/resizable/component.js.map +1 -1
  34. package/dist/components/window-portal/component.d.ts +24 -0
  35. package/dist/components/window-portal/component.d.ts.map +1 -0
  36. package/dist/components/window-portal/component.js +120 -0
  37. package/dist/components/window-portal/component.js.map +1 -0
  38. package/dist/components/window-portal/index.d.ts +3 -0
  39. package/dist/components/window-portal/index.d.ts.map +1 -0
  40. package/dist/components/window-portal/types.d.ts +77 -0
  41. package/dist/components/window-portal/types.d.ts.map +1 -0
  42. package/dist/index.js +139 -138
  43. package/dist/index.js.map +1 -1
  44. package/dist/metadata.d.ts +8 -0
  45. package/dist/metadata.d.ts.map +1 -1
  46. package/dist/metadata.js +18 -0
  47. package/dist/metadata.js.map +1 -1
  48. package/dist/stats.html +1 -1
  49. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"component.d.ts","sourceRoot":"","sources":["../../../src/components/data-table/component.tsx"],"names":[],"mappings":"AACA,OAAc,EAAsB,KAAK,GAAG,EAAE,MAAM,OAAO,CAAC;AAO5D,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,YAAY,EAAE,MAAM,SAAS,CAAC;AAGjE,OAAO,aAAa,CAAC;AAUrB,QAAA,MAAM,cAAc,GAClB,UAAU,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAEhE,OAAO,cAAc,CAAC,UAAU,CAAC,EACjC,KAAK,GAAG,CAAC,YAAY,CAAC,4CAgIvB,CAAC;AAQF,eAAO,MAAM,SAAS,GALpB,UAAU,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,mCAE/B,cAAc,CAAC,UAAU,CAAC,GAAG;IAAE,GAAG,CAAC,EAAE,GAAG,CAAC,YAAY,CAAC,CAAA;CAAE,KAC5D,UAAU,CAAC,OAAO,cAAc,CAEK,CAAC"}
1
+ {"version":3,"file":"component.d.ts","sourceRoot":"","sources":["../../../src/components/data-table/component.tsx"],"names":[],"mappings":"AACA,OAAc,EAKZ,KAAK,GAAG,EACT,MAAM,OAAO,CAAC;AAOf,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,YAAY,EAAE,MAAM,SAAS,CAAC;AAGjE,OAAO,aAAa,CAAC;AAWrB,QAAA,MAAM,cAAc,GAClB,UAAU,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAEhE,OAAO,cAAc,CAAC,UAAU,CAAC,EACjC,KAAK,GAAG,CAAC,YAAY,CAAC,4CA+IvB,CAAC;AAQF,eAAO,MAAM,SAAS,GALpB,UAAU,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,mCAE/B,cAAc,CAAC,UAAU,CAAC,GAAG;IAAE,GAAG,CAAC,EAAE,GAAG,CAAC,YAAY,CAAC,CAAA;CAAE,KAC5D,UAAU,CAAC,OAAO,cAAc,CAEK,CAAC"}
@@ -1,112 +1,117 @@
1
1
  "use client";
2
- import { jsx as e, jsxs as s } from "react/jsx-runtime";
3
- import { forwardRef as R, useRef as T } from "react";
4
- import { Spin as C } from "../spin/component.js";
5
- import { useDataTable as D } from "./hooks.js";
6
- import { convertSelectionToAntFormat as x } from "./utils.js";
2
+ import { jsx as t, jsxs as p } from "react/jsx-runtime";
3
+ import { forwardRef as y, useRef as h, useState as H, useEffect as N } from "react";
4
+ import { Spin as W } from "../spin/component.js";
5
+ import { useDataTable as P } from "./hooks.js";
6
+ import { convertSelectionToAntFormat as k } from "./utils.js";
7
7
  import './style.css';/* empty css */
8
- import { TableHeader as K } from "./components/TableHeader.js";
9
- import { TableBody as N } from "./components/TableBody.js";
10
- import { TablePagination as z } from "./components/TablePagination.js";
11
- import { useCls as P } from "../utils/antdUtils.js";
12
- import { clsx as m } from "../utils/cn.js";
13
- const k = (n, W) => {
8
+ import { TableHeader as I } from "./components/TableHeader.js";
9
+ import { TableBody as j } from "./components/TableBody.js";
10
+ import { TablePagination as A } from "./components/TablePagination.js";
11
+ import { useCls as E, useAntdCssVarClassname as F } from "../utils/antdUtils.js";
12
+ import { clsx as u } from "../utils/cn.js";
13
+ const $ = (s, G) => {
14
14
  const {
15
15
  dataSource: i = [],
16
- className: d,
17
- size: f = "large",
18
- variant: p = "default",
19
- emptyDescription: b,
20
- rowKey: g
21
- } = n, o = P(), u = T(null), {
16
+ className: b,
17
+ size: g = "large",
18
+ variant: S = "default",
19
+ emptyDescription: w,
20
+ rowKey: c
21
+ } = s, e = E(), v = h(null), {
22
22
  table: a,
23
- isLoading: w,
24
- spinProps: h,
25
- hasRowSelection: c,
26
- hasPagination: S,
27
- paginationConfig: y,
28
- rowSelectionConfig: r
29
- } = D(n), v = (t) => {
30
- if (c && (t.toggleSelected(), r?.onSelect)) {
31
- const { selectedRows: l } = x(
23
+ isLoading: C,
24
+ spinProps: R,
25
+ hasRowSelection: m,
26
+ hasPagination: d,
27
+ paginationConfig: z,
28
+ rowSelectionConfig: n
29
+ } = P(s), T = (l) => {
30
+ if (m && (l.toggleSelected(), n?.onSelect)) {
31
+ const { selectedRows: r } = k(
32
32
  a.getState().rowSelection,
33
33
  i,
34
- g
34
+ c
35
35
  );
36
- r.onSelect(
37
- t.original,
38
- !t.getIsSelected(),
39
- l,
36
+ n.onSelect(
37
+ l.original,
38
+ !l.getIsSelected(),
39
+ r,
40
40
  new Event("click")
41
41
  );
42
42
  }
43
- };
44
- return /* @__PURE__ */ e(
43
+ }, D = F(), o = h(null), [f, x] = H({
44
+ vertical: !1,
45
+ horizontal: !1
46
+ });
47
+ return N(() => {
48
+ o.current && x({
49
+ vertical: o.current.scrollHeight > o.current.clientHeight,
50
+ horizontal: o.current.scrollWidth > o.current.clientWidth
51
+ });
52
+ }, [i.length]), /* @__PURE__ */ t(
45
53
  "div",
46
54
  {
47
- ref: u,
48
- className: m(
49
- o("table-wrapper", "data-table"),
50
- o(`table-${f}`),
51
- p === "zebra" ? o("table-zebra") : "",
52
- "css-var-«r3»",
53
- d
55
+ ref: v,
56
+ className: u(
57
+ e("table-wrapper", "data-table"),
58
+ e(`table-${g}`),
59
+ S === "zebra" ? e("table-zebra") : "",
60
+ d ? e("table-has-pagination") : "",
61
+ f.vertical ? e("table-scroll-vertical") : "",
62
+ f.horizontal ? e("table-scroll-horizontal") : "",
63
+ D,
64
+ b
54
65
  ),
55
- children: /* @__PURE__ */ s(C, { spinning: w, ...h, children: [
56
- /* @__PURE__ */ e("div", { className: m(o("table")), children: /* @__PURE__ */ e("div", { className: o("table-container"), children: /* @__PURE__ */ e("div", { className: o("table-content"), children: /* @__PURE__ */ s("table", { children: [
57
- /* @__PURE__ */ e("colgroup", { children: a.getHeaderGroups()[0]?.headers.map((t) => {
58
- let l;
59
- if (t.id === "select")
60
- l = r?.columnWidth || 32;
66
+ children: /* @__PURE__ */ p(W, { spinning: C, ...R, children: [
67
+ /* @__PURE__ */ t("div", { className: u(e("table")), children: /* @__PURE__ */ t("div", { className: e("table-container"), ref: o, children: /* @__PURE__ */ t("div", { className: e("table-content"), children: /* @__PURE__ */ p("table", { children: [
68
+ /* @__PURE__ */ t("colgroup", { children: a.getHeaderGroups()[0]?.headers.map((l) => {
69
+ let r;
70
+ if (l.id === "select")
71
+ r = n?.columnWidth || 32;
61
72
  else
62
73
  try {
63
- l = `${t.getSize()}px`;
74
+ r = `${l.getSize()}px`;
64
75
  } catch {
65
- l = t.column.columnDef.meta?.width;
76
+ r = l.column.columnDef.meta?.width;
66
77
  }
67
- return /* @__PURE__ */ e(
68
- "col",
69
- {
70
- style: { width: l }
71
- },
72
- t.id
73
- );
78
+ return /* @__PURE__ */ t("col", { style: { width: r } }, l.id);
74
79
  }) }),
75
- /* @__PURE__ */ e(
76
- K,
80
+ /* @__PURE__ */ t(
81
+ I,
77
82
  {
78
83
  table: a,
79
- rowSelectionConfig: r,
84
+ rowSelectionConfig: n,
80
85
  dataSource: i,
81
- rowKey: n.rowKey
86
+ rowKey: c
82
87
  }
83
88
  ),
84
- /* @__PURE__ */ e(
85
- N,
89
+ /* @__PURE__ */ t(
90
+ j,
86
91
  {
87
92
  table: a,
88
93
  dataSource: i,
89
- emptyDescription: b,
90
- hasRowSelection: c,
91
- onRowClick: v,
92
- rowSelectionConfig: r,
93
- rowKey: n.rowKey
94
+ emptyDescription: w,
95
+ hasRowSelection: m,
96
+ onRowClick: T,
97
+ rowSelectionConfig: n,
98
+ rowKey: c
94
99
  }
95
100
  )
96
101
  ] }) }) }) }),
97
- S && /* @__PURE__ */ e(
98
- z,
102
+ d && /* @__PURE__ */ t(
103
+ A,
99
104
  {
100
105
  table: a,
101
- paginationConfig: y,
106
+ paginationConfig: z,
102
107
  totalCount: a.getPreFilteredRowModel().rows.length
103
108
  }
104
109
  )
105
110
  ] })
106
111
  }
107
112
  );
108
- }, I = R(k), O = I;
113
+ }, B = y($), _ = B;
109
114
  export {
110
- O as DataTable
115
+ _ as DataTable
111
116
  };
112
117
  //# sourceMappingURL=component.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"component.js","sources":["../../../src/components/data-table/component.tsx"],"sourcesContent":["\"use client\";\nimport React, { forwardRef, useRef, type Ref } from \"react\";\nimport { type Row } from \"@tanstack/react-table\";\nimport { clsx, useCls } from \"../utils\";\nimport { Spin } from \"../spin/component\";\nimport { TableHeader, TableBody, TablePagination } from \"./components\";\nimport { useDataTable } from \"./hooks\";\nimport { convertSelectionToAntFormat } from \"./utils\";\nimport { type DataTableProps, type DataTableRef } from \"./types\";\n\n// Import component-specific styles\nimport \"./style.css\";\n\n// Extended meta type for column definitions\ninterface ExtendedColumnMeta {\n align?: 'left' | 'center' | 'right';\n width?: string | number;\n fixed?: 'left' | 'right' | boolean;\n ellipsis?: boolean;\n}\n\nconst InnerDataTable = <\n RecordType extends Record<string, any> = Record<string, unknown>\n>(\n props: DataTableProps<RecordType>,\n ref: Ref<DataTableRef>\n) => {\n const {\n dataSource = [],\n columns = [],\n className,\n size = \"large\",\n variant = \"default\",\n emptyDescription,\n rowSelection,\n pagination,\n loading,\n enableSorting = true,\n enableFiltering = false,\n onSortingChange,\n onFilteringChange,\n rowKey,\n ...restProps\n } = props;\n\n const cls = useCls();\n const tableWrapperRef = useRef<HTMLDivElement>(null);\n\n // Use the custom hook for table logic\n const {\n table,\n isLoading,\n spinProps,\n hasRowSelection,\n hasPagination,\n paginationConfig,\n rowSelectionConfig,\n } = useDataTable(props);\n\n // Handle row click for selection\n const handleRowClick = (row: Row<RecordType>) => {\n if (hasRowSelection) {\n row.toggleSelected();\n if (rowSelectionConfig?.onSelect) {\n const { selectedRowKeys, selectedRows } = convertSelectionToAntFormat(\n table.getState().rowSelection,\n dataSource,\n rowKey\n );\n rowSelectionConfig.onSelect(\n row.original,\n !row.getIsSelected(),\n selectedRows,\n new Event(\"click\")\n );\n }\n }\n };\n\n // cls(\"table-scroll-horizontal\"))\n\n return (\n <div\n ref={tableWrapperRef}\n className={clsx(\n cls(\"table-wrapper\", \"data-table\"),\n cls(`table-${size}`),\n variant === \"zebra\" ? cls(\"table-zebra\") : \"\",\n \"css-var-«r3»\",\n className\n )}\n >\n <Spin spinning={isLoading} {...spinProps}>\n <div className={clsx(cls(\"table\"))}>\n <div className={cls(\"table-container\")}>\n <div className={cls(\"table-content\")}>\n <table>\n <colgroup>\n {table.getHeaderGroups()[0]?.headers.map((header) => {\n let columnWidth: string | number | undefined;\n \n if (header.id === \"select\") {\n columnWidth = rowSelectionConfig?.columnWidth || 32;\n } else {\n // Try to get the current size from TanStack, fallback to meta width\n try {\n columnWidth = `${header.getSize()}px`;\n } catch (error) {\n // Fallback to static width from column meta\n columnWidth = (header.column.columnDef.meta as ExtendedColumnMeta)?.width;\n }\n }\n \n return (\n <col\n key={header.id}\n style={{ width: columnWidth }}\n />\n );\n })}\n </colgroup>\n\n <TableHeader\n table={table}\n rowSelectionConfig={rowSelectionConfig}\n dataSource={dataSource}\n rowKey={props.rowKey}\n />\n\n <TableBody\n table={table}\n dataSource={dataSource}\n emptyDescription={emptyDescription}\n hasRowSelection={hasRowSelection}\n onRowClick={handleRowClick}\n rowSelectionConfig={rowSelectionConfig}\n rowKey={props.rowKey}\n />\n </table>\n </div>\n </div>\n </div>\n\n {hasPagination && (\n <TablePagination\n table={table}\n paginationConfig={paginationConfig}\n totalCount={table.getPreFilteredRowModel().rows.length}\n />\n )}\n </Spin>\n </div>\n );\n};\n\nconst InternalDataTable = forwardRef(InnerDataTable) as <\n RecordType extends Record<string, any> = Record<string, unknown>\n>(\n props: DataTableProps<RecordType> & { ref?: Ref<DataTableRef> }\n) => ReturnType<typeof InnerDataTable>;\n\nexport const DataTable = InternalDataTable;\n"],"names":["InnerDataTable","props","ref","dataSource","className","size","variant","emptyDescription","rowKey","cls","useCls","tableWrapperRef","useRef","table","isLoading","spinProps","hasRowSelection","hasPagination","paginationConfig","rowSelectionConfig","useDataTable","handleRowClick","row","selectedRows","convertSelectionToAntFormat","jsx","clsx","jsxs","Spin","header","columnWidth","TableHeader","TableBody","TablePagination","InternalDataTable","forwardRef","DataTable"],"mappings":"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"}
1
+ {"version":3,"file":"component.js","sources":["../../../src/components/data-table/component.tsx"],"sourcesContent":["\"use client\";\nimport React, {\n forwardRef,\n useEffect,\n useRef,\n useState,\n type Ref,\n} from \"react\";\nimport { type Row } from \"@tanstack/react-table\";\nimport { clsx, useAntdCssVarClassname, useCls } from \"../utils\";\nimport { Spin } from \"../spin/component\";\nimport { TableHeader, TableBody, TablePagination } from \"./components\";\nimport { useDataTable } from \"./hooks\";\nimport { convertSelectionToAntFormat } from \"./utils\";\nimport { type DataTableProps, type DataTableRef } from \"./types\";\n\n// Import component-specific styles\nimport \"./style.css\";\nimport { useToken } from \"../hooks\";\n\n// Extended meta type for column definitions\ninterface ExtendedColumnMeta {\n align?: \"left\" | \"center\" | \"right\";\n width?: string | number;\n fixed?: \"left\" | \"right\" | boolean;\n ellipsis?: boolean;\n}\n\nconst InnerDataTable = <\n RecordType extends Record<string, any> = Record<string, unknown>\n>(\n props: DataTableProps<RecordType>,\n ref: Ref<DataTableRef>\n) => {\n const {\n dataSource = [],\n className,\n size = \"large\",\n variant = \"default\",\n emptyDescription,\n rowKey,\n } = props;\n\n const cls = useCls();\n const tableWrapperRef = useRef<HTMLDivElement>(null);\n\n // Use the custom hook for table logic\n const {\n table,\n isLoading,\n spinProps,\n hasRowSelection,\n hasPagination,\n paginationConfig,\n rowSelectionConfig,\n } = useDataTable(props);\n\n // Handle row click for selection\n const handleRowClick = (row: Row<RecordType>) => {\n if (hasRowSelection) {\n row.toggleSelected();\n if (rowSelectionConfig?.onSelect) {\n const { selectedRowKeys, selectedRows } = convertSelectionToAntFormat(\n table.getState().rowSelection,\n dataSource,\n rowKey\n );\n rowSelectionConfig.onSelect(\n row.original,\n !row.getIsSelected(),\n selectedRows,\n new Event(\"click\")\n );\n }\n }\n };\n\n // cls(\"table-scroll-horizontal\"))\n\n const antdClass = useAntdCssVarClassname();\n\n const tableContainerRef = useRef<HTMLDivElement>(null);\n\n const [hasScroll, setHasScroll] = useState({\n vertical: false,\n horizontal: false,\n });\n\n useEffect(() => {\n if (tableContainerRef.current) {\n setHasScroll({\n vertical:\n tableContainerRef.current.scrollHeight >\n tableContainerRef.current.clientHeight,\n horizontal:\n tableContainerRef.current.scrollWidth >\n tableContainerRef.current.clientWidth,\n });\n }\n }, [dataSource.length]);\n\n return (\n <div\n ref={tableWrapperRef}\n className={clsx(\n cls(\"table-wrapper\", \"data-table\"),\n cls(`table-${size}`),\n variant === \"zebra\" ? cls(\"table-zebra\") : \"\",\n hasPagination ? cls(\"table-has-pagination\") : \"\",\n hasScroll.vertical ? cls(\"table-scroll-vertical\") : \"\",\n hasScroll.horizontal ? cls(\"table-scroll-horizontal\") : \"\",\n antdClass,\n className\n )}\n >\n <Spin spinning={isLoading} {...spinProps}>\n <div className={clsx(cls(\"table\"))}>\n <div className={cls(\"table-container\")} ref={tableContainerRef}>\n <div className={cls(\"table-content\")}>\n <table>\n <colgroup>\n {table.getHeaderGroups()[0]?.headers.map((header) => {\n let columnWidth: string | number | undefined;\n\n if (header.id === \"select\") {\n columnWidth = rowSelectionConfig?.columnWidth || 32;\n } else {\n // Try to get the current size from TanStack, fallback to meta width\n try {\n columnWidth = `${header.getSize()}px`;\n } catch (error) {\n // Fallback to static width from column meta\n columnWidth = (\n header.column.columnDef.meta as ExtendedColumnMeta\n )?.width;\n }\n }\n\n return (\n <col key={header.id} style={{ width: columnWidth }} />\n );\n })}\n </colgroup>\n\n <TableHeader\n table={table}\n rowSelectionConfig={rowSelectionConfig}\n dataSource={dataSource}\n rowKey={rowKey}\n />\n\n <TableBody\n table={table}\n dataSource={dataSource}\n emptyDescription={emptyDescription}\n hasRowSelection={hasRowSelection}\n onRowClick={handleRowClick}\n rowSelectionConfig={rowSelectionConfig}\n rowKey={rowKey}\n />\n </table>\n </div>\n </div>\n </div>\n\n {hasPagination && (\n <TablePagination\n table={table}\n paginationConfig={paginationConfig}\n totalCount={table.getPreFilteredRowModel().rows.length}\n />\n )}\n </Spin>\n </div>\n );\n};\n\nconst InternalDataTable = forwardRef(InnerDataTable) as <\n RecordType extends Record<string, any> = Record<string, unknown>\n>(\n props: DataTableProps<RecordType> & { ref?: Ref<DataTableRef> }\n) => ReturnType<typeof InnerDataTable>;\n\nexport const DataTable = InternalDataTable;\n"],"names":["InnerDataTable","props","ref","dataSource","className","size","variant","emptyDescription","rowKey","cls","useCls","tableWrapperRef","useRef","table","isLoading","spinProps","hasRowSelection","hasPagination","paginationConfig","rowSelectionConfig","useDataTable","handleRowClick","row","selectedRows","convertSelectionToAntFormat","antdClass","useAntdCssVarClassname","tableContainerRef","hasScroll","setHasScroll","useState","useEffect","jsx","clsx","jsxs","Spin","header","columnWidth","TableHeader","TableBody","TablePagination","InternalDataTable","forwardRef","DataTable"],"mappings":"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"}
@@ -5,6 +5,6 @@ interface TablePaginationProps<RecordType extends Record<string, any> = Record<s
5
5
  paginationConfig?: DataTablePaginationConfig;
6
6
  totalCount: number;
7
7
  }
8
- export declare const TablePagination: <RecordType extends Record<string, any> = Record<string, any>>({ table, paginationConfig, totalCount }: TablePaginationProps<RecordType>) => import("react/jsx-runtime").JSX.Element;
8
+ export declare const TablePagination: <RecordType extends Record<string, any> = Record<string, any>>({ table, paginationConfig, totalCount, }: TablePaginationProps<RecordType>) => import("react/jsx-runtime").JSX.Element;
9
9
  export {};
10
10
  //# sourceMappingURL=TablePagination.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"TablePagination.d.ts","sourceRoot":"","sources":["../../../../src/components/data-table/components/TablePagination.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAEnD,OAAO,EAAE,KAAK,yBAAyB,EAAE,MAAM,UAAU,CAAC;AAE1D,UAAU,oBAAoB,CAAC,UAAU,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IACzF,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;IACzB,gBAAgB,CAAC,EAAE,yBAAyB,CAAC;IAC7C,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,eAAe,GAAI,UAAU,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,yCAI3F,oBAAoB,CAAC,UAAU,CAAC,4CAoClC,CAAC"}
1
+ {"version":3,"file":"TablePagination.d.ts","sourceRoot":"","sources":["../../../../src/components/data-table/components/TablePagination.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAEnD,OAAO,EAAE,KAAK,yBAAyB,EAAE,MAAM,UAAU,CAAC;AAE1D,UAAU,oBAAoB,CAC5B,UAAU,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAE5D,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;IACzB,gBAAgB,CAAC,EAAE,yBAAyB,CAAC;IAC7C,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,eAAe,GAC1B,UAAU,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC5D,0CAIC,oBAAoB,CAAC,UAAU,CAAC,4CAoClC,CAAC"}
@@ -1,36 +1,39 @@
1
1
  import { jsx as i } from "react/jsx-runtime";
2
2
  import { Pagination as h } from "antd";
3
- import { useCls as m } from "../../utils/antdUtils.js";
4
- import { clsx as u } from "../../utils/cn.js";
3
+ import { useCls as g } from "../../utils/antdUtils.js";
4
+ import { clsx as m } from "../../utils/cn.js";
5
5
  const x = ({
6
6
  table: t,
7
7
  paginationConfig: o,
8
8
  totalCount: n
9
9
  }) => {
10
- const s = m();
11
- if (!o) return null;
10
+ const s = g();
11
+ if (!o || !t.getState().pagination) return null;
12
12
  const c = t.getState().pagination.pageIndex + 1, a = t.getState().pagination.pageSize;
13
- return /* @__PURE__ */ i("div", { className: u(
14
- s("table-pagination"),
15
- s("table-pagination-right")
16
- ), children: /* @__PURE__ */ i(
17
- h,
13
+ return /* @__PURE__ */ i(
14
+ "div",
18
15
  {
19
- ...o,
20
- current: c,
21
- pageSize: a,
22
- total: n,
23
- showSizeChanger: o.showSizeChanger !== !1,
24
- showQuickJumper: o.showQuickJumper || !1,
25
- showTotal: o.showTotal || ((r, e) => `${e[0]}-${e[1]} of ${r} items`),
26
- onChange: (r, e) => {
27
- t.setPageIndex(r - 1), e && e !== a && t.setPageSize(e);
28
- },
29
- onShowSizeChange: (r, e) => {
30
- t.setPageSize(e), t.setPageIndex(0);
31
- }
16
+ className: m(s("table-pagination"), s("table-pagination-right")),
17
+ children: /* @__PURE__ */ i(
18
+ h,
19
+ {
20
+ ...o,
21
+ current: c,
22
+ pageSize: a,
23
+ total: n,
24
+ showSizeChanger: o.showSizeChanger !== !1,
25
+ showQuickJumper: o.showQuickJumper || !1,
26
+ showTotal: o.showTotal || ((r, e) => `${e[0]}-${e[1]} of ${r} items`),
27
+ onChange: (r, e) => {
28
+ t.setPageIndex(r - 1), e && e !== a && t.setPageSize(e);
29
+ },
30
+ onShowSizeChange: (r, e) => {
31
+ t.setPageSize(e), t.setPageIndex(0);
32
+ }
33
+ }
34
+ )
32
35
  }
33
- ) });
36
+ );
34
37
  };
35
38
  export {
36
39
  x as TablePagination
@@ -1 +1 @@
1
- {"version":3,"file":"TablePagination.js","sources":["../../../../src/components/data-table/components/TablePagination.tsx"],"sourcesContent":["import React from \"react\";\nimport { Pagination } from \"antd\";\nimport { type Table } from \"@tanstack/react-table\";\nimport { clsx, useCls } from \"../../utils\";\nimport { type DataTablePaginationConfig } from \"../types\";\n\ninterface TablePaginationProps<RecordType extends Record<string, any> = Record<string, any>> {\n table: Table<RecordType>;\n paginationConfig?: DataTablePaginationConfig;\n totalCount: number;\n}\n\nexport const TablePagination = <RecordType extends Record<string, any> = Record<string, any>>({ \n table, \n paginationConfig, \n totalCount \n}: TablePaginationProps<RecordType>) => {\n const cls = useCls();\n\n if (!paginationConfig) return null;\n\n const currentPage = table.getState().pagination.pageIndex + 1;\n const pageSize = table.getState().pagination.pageSize;\n\n return (\n <div className={clsx(\n cls(\"table-pagination\"),\n cls(\"table-pagination-right\")\n )}>\n <Pagination\n {...paginationConfig}\n current={currentPage}\n pageSize={pageSize}\n total={totalCount}\n showSizeChanger={paginationConfig.showSizeChanger !== false}\n showQuickJumper={paginationConfig.showQuickJumper || false}\n showTotal={paginationConfig.showTotal || ((total, range) => \n `${range[0]}-${range[1]} of ${total} items`\n )}\n onChange={(page, newPageSize) => {\n table.setPageIndex(page - 1);\n if (newPageSize && newPageSize !== pageSize) {\n table.setPageSize(newPageSize);\n }\n }}\n onShowSizeChange={(current, size) => {\n table.setPageSize(size);\n table.setPageIndex(0); // Reset to first page when changing page size\n }}\n />\n </div>\n );\n};"],"names":["TablePagination","table","paginationConfig","totalCount","cls","useCls","currentPage","pageSize","jsx","clsx","Pagination","total","range","page","newPageSize","current","size"],"mappings":";;;;AAYO,MAAMA,IAAkB,CAA+D;AAAA,EAC5F,OAAAC;AAAA,EACA,kBAAAC;AAAA,EACA,YAAAC;AACF,MAAwC;AACtC,QAAMC,IAAMC,EAAA;AAEZ,MAAI,CAACH,EAAkB,QAAO;AAE9B,QAAMI,IAAcL,EAAM,SAAA,EAAW,WAAW,YAAY,GACtDM,IAAWN,EAAM,SAAA,EAAW,WAAW;AAE7C,SACE,gBAAAO,EAAC,SAAI,WAAWC;AAAA,IACdL,EAAI,kBAAkB;AAAA,IACtBA,EAAI,wBAAwB;AAAA,EAAA,GAE5B,UAAA,gBAAAI;AAAA,IAACE;AAAA,IAAA;AAAA,MACE,GAAGR;AAAA,MACJ,SAASI;AAAA,MACT,UAAAC;AAAA,MACA,OAAOJ;AAAA,MACP,iBAAiBD,EAAiB,oBAAoB;AAAA,MACtD,iBAAiBA,EAAiB,mBAAmB;AAAA,MACrD,WAAWA,EAAiB,cAAc,CAACS,GAAOC,MAChD,GAAGA,EAAM,CAAC,CAAC,IAAIA,EAAM,CAAC,CAAC,OAAOD,CAAK;AAAA,MAErC,UAAU,CAACE,GAAMC,MAAgB;AAC/B,QAAAb,EAAM,aAAaY,IAAO,CAAC,GACvBC,KAAeA,MAAgBP,KACjCN,EAAM,YAAYa,CAAW;AAAA,MAEjC;AAAA,MACA,kBAAkB,CAACC,GAASC,MAAS;AACnC,QAAAf,EAAM,YAAYe,CAAI,GACtBf,EAAM,aAAa,CAAC;AAAA,MACtB;AAAA,IAAA;AAAA,EAAA,GAEJ;AAEJ;"}
1
+ {"version":3,"file":"TablePagination.js","sources":["../../../../src/components/data-table/components/TablePagination.tsx"],"sourcesContent":["import React from \"react\";\nimport { Pagination } from \"antd\";\nimport { type Table } from \"@tanstack/react-table\";\nimport { clsx, useCls } from \"../../utils\";\nimport { type DataTablePaginationConfig } from \"../types\";\n\ninterface TablePaginationProps<\n RecordType extends Record<string, any> = Record<string, any>\n> {\n table: Table<RecordType>;\n paginationConfig?: DataTablePaginationConfig;\n totalCount: number;\n}\n\nexport const TablePagination = <\n RecordType extends Record<string, any> = Record<string, any>\n>({\n table,\n paginationConfig,\n totalCount,\n}: TablePaginationProps<RecordType>) => {\n const cls = useCls();\n\n if (!paginationConfig || !table.getState().pagination) return null;\n\n const currentPage = table.getState().pagination.pageIndex + 1;\n const pageSize = table.getState().pagination.pageSize;\n\n return (\n <div\n className={clsx(cls(\"table-pagination\"), cls(\"table-pagination-right\"))}\n >\n <Pagination\n {...paginationConfig}\n current={currentPage}\n pageSize={pageSize}\n total={totalCount}\n showSizeChanger={paginationConfig.showSizeChanger !== false}\n showQuickJumper={paginationConfig.showQuickJumper || false}\n showTotal={\n paginationConfig.showTotal ||\n ((total, range) => `${range[0]}-${range[1]} of ${total} items`)\n }\n onChange={(page, newPageSize) => {\n table.setPageIndex(page - 1);\n if (newPageSize && newPageSize !== pageSize) {\n table.setPageSize(newPageSize);\n }\n }}\n onShowSizeChange={(current, size) => {\n table.setPageSize(size);\n table.setPageIndex(0); // Reset to first page when changing page size\n }}\n />\n </div>\n );\n};\n"],"names":["TablePagination","table","paginationConfig","totalCount","cls","useCls","currentPage","pageSize","jsx","clsx","Pagination","total","range","page","newPageSize","current","size"],"mappings":";;;;AAcO,MAAMA,IAAkB,CAE7B;AAAA,EACA,OAAAC;AAAA,EACA,kBAAAC;AAAA,EACA,YAAAC;AACF,MAAwC;AACtC,QAAMC,IAAMC,EAAA;AAEZ,MAAI,CAACH,KAAoB,CAACD,EAAM,SAAA,EAAW,WAAY,QAAO;AAE9D,QAAMK,IAAcL,EAAM,SAAA,EAAW,WAAW,YAAY,GACtDM,IAAWN,EAAM,SAAA,EAAW,WAAW;AAE7C,SACE,gBAAAO;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWC,EAAKL,EAAI,kBAAkB,GAAGA,EAAI,wBAAwB,CAAC;AAAA,MAEtE,UAAA,gBAAAI;AAAA,QAACE;AAAA,QAAA;AAAA,UACE,GAAGR;AAAA,UACJ,SAASI;AAAA,UACT,UAAAC;AAAA,UACA,OAAOJ;AAAA,UACP,iBAAiBD,EAAiB,oBAAoB;AAAA,UACtD,iBAAiBA,EAAiB,mBAAmB;AAAA,UACrD,WACEA,EAAiB,cAChB,CAACS,GAAOC,MAAU,GAAGA,EAAM,CAAC,CAAC,IAAIA,EAAM,CAAC,CAAC,OAAOD,CAAK;AAAA,UAExD,UAAU,CAACE,GAAMC,MAAgB;AAC/B,YAAAb,EAAM,aAAaY,IAAO,CAAC,GACvBC,KAAeA,MAAgBP,KACjCN,EAAM,YAAYa,CAAW;AAAA,UAEjC;AAAA,UACA,kBAAkB,CAACC,GAASC,MAAS;AACnC,YAAAf,EAAM,YAAYe,CAAI,GACtBf,EAAM,aAAa,CAAC;AAAA,UACtB;AAAA,QAAA;AAAA,MAAA;AAAA,IACF;AAAA,EAAA;AAGN;"}
@@ -1 +1 @@
1
- {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../../src/components/data-table/hooks.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,KAAK,cAAc,EAAuB,MAAM,SAAS,CAAC;AAOnE;;GAEG;AACH,wBAAgB,YAAY,CAC1B,UAAU,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChE,KAAK,EAAE,cAAc,CAAC,UAAU,CAAC;;;;;;;;EAgMlC"}
1
+ {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../../src/components/data-table/hooks.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,KAAK,cAAc,EAAuB,MAAM,SAAS,CAAC;AAOnE;;GAEG;AACH,wBAAgB,YAAY,CAC1B,UAAU,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChE,KAAK,EAAE,cAAc,CAAC,UAAU,CAAC;;;;;;;;EA+LlC"}
@@ -1,33 +1,33 @@
1
- import { useState as b, useMemo as y } from "react";
2
- import { useReactTable as F, getPaginationRowModel as M, getFilteredRowModel as v, getSortedRowModel as P, getCoreRowModel as T } from "@tanstack/react-table";
3
- import { convertColumnsToTanStack as E, getRowKey as L, convertSelectionToAntFormat as x } from "./utils.js";
4
- function k(m) {
1
+ import { useState as y, useMemo as F } from "react";
2
+ import { useReactTable as M, getPaginationRowModel as P, getFilteredRowModel as v, getSortedRowModel as T, getCoreRowModel as E } from "@tanstack/react-table";
3
+ import { convertColumnsToTanStack as L, getRowKey as x, convertSelectionToAntFormat as I } from "./utils.js";
4
+ function k(d) {
5
5
  const {
6
- dataSource: s = [],
6
+ dataSource: r = [],
7
7
  columns: c = [],
8
8
  rowSelection: o,
9
9
  pagination: l,
10
10
  loading: a,
11
- enableSorting: f = !0,
11
+ enableSorting: u = !0,
12
12
  enableFiltering: S = !1,
13
- onSortingChange: d,
13
+ onSortingChange: C,
14
14
  onFilteringChange: w,
15
- rowKey: u,
16
- enableColumnResizing: r = !1,
17
- columnResizeMode: C = "onChange",
18
- columnResizeDirection: p = "ltr",
19
- onColumnSizingChange: R
20
- } = m, [t, g] = b({
15
+ rowKey: f,
16
+ enableColumnResizing: s = !1,
17
+ columnResizeMode: p = "onChange",
18
+ columnResizeDirection: R = "ltr",
19
+ onColumnSizingChange: h
20
+ } = d, [t, g] = y({
21
21
  sorting: [],
22
22
  filtering: [],
23
23
  pagination: {
24
24
  pageIndex: 0,
25
- pageSize: l === !1 ? s.length : l?.defaultPageSize || l?.pageSize || 10
25
+ pageSize: l ? l?.defaultPageSize || l?.pageSize || 10 : r.length
26
26
  },
27
27
  rowSelection: {},
28
28
  columnSizing: {}
29
- }), h = y(() => {
30
- let e = E(c);
29
+ }), z = F(() => {
30
+ let e = L(c);
31
31
  return o && (e = [{
32
32
  id: "select",
33
33
  header: ({ table: i }) => o.type === "radio" ? o.columnTitle || null : "SELECTION_HEADER",
@@ -40,76 +40,76 @@ function k(m) {
40
40
  isSelectionColumn: !0
41
41
  }
42
42
  }, ...e]), e;
43
- }, [c, o]);
43
+ }, [c, o]), m = M({
44
+ data: r,
45
+ columns: z,
46
+ getCoreRowModel: E(),
47
+ getSortedRowModel: u ? T() : void 0,
48
+ getFilteredRowModel: S ? v() : void 0,
49
+ getPaginationRowModel: l !== !1 ? P() : void 0,
50
+ // Default column configuration for sizing
51
+ defaultColumn: {
52
+ size: 150,
53
+ minSize: 50,
54
+ maxSize: 500
55
+ },
56
+ // State management
57
+ state: {
58
+ sorting: t.sorting,
59
+ columnFilters: t.filtering,
60
+ pagination: t.pagination,
61
+ rowSelection: t.rowSelection,
62
+ columnSizing: s ? t.columnSizing : void 0
63
+ },
64
+ // State update handlers
65
+ onSortingChange: (e) => {
66
+ const n = typeof e == "function" ? e(t.sorting) : e;
67
+ g((i) => ({ ...i, sorting: n })), C?.(n);
68
+ },
69
+ onColumnFiltersChange: (e) => {
70
+ const n = typeof e == "function" ? e(t.filtering) : e;
71
+ g((i) => ({ ...i, filtering: n })), w?.(n);
72
+ },
73
+ onPaginationChange: (e) => {
74
+ if (l === !1) return;
75
+ const n = typeof e == "function" ? e(t.pagination) : e;
76
+ g((i) => ({ ...i, pagination: n }));
77
+ },
78
+ onRowSelectionChange: (e) => {
79
+ const n = typeof e == "function" ? e(t.rowSelection) : e;
80
+ if (g((i) => ({ ...i, rowSelection: n })), o?.onChange) {
81
+ const { selectedRowKeys: i, selectedRows: b } = I(
82
+ n,
83
+ r,
84
+ f
85
+ );
86
+ o.onChange(i, b);
87
+ }
88
+ },
89
+ onColumnSizingChange: s ? (e) => {
90
+ const n = typeof e == "function" ? e(t.columnSizing) : e;
91
+ g((i) => ({
92
+ ...i,
93
+ columnSizing: n
94
+ })), h?.(n);
95
+ } : void 0,
96
+ // Feature enables
97
+ enableSorting: u,
98
+ enableFilters: S,
99
+ enableRowSelection: !!o,
100
+ enableColumnResizing: s,
101
+ // Column resizing configuration
102
+ columnResizeMode: p,
103
+ columnResizeDirection: R,
104
+ // Row identification
105
+ getRowId: (e, n) => String(x(e, n, f))
106
+ });
44
107
  return {
45
- table: F({
46
- data: s,
47
- columns: h,
48
- getCoreRowModel: T(),
49
- getSortedRowModel: f ? P() : void 0,
50
- getFilteredRowModel: S ? v() : void 0,
51
- getPaginationRowModel: l !== !1 ? M() : void 0,
52
- // Default column configuration for sizing
53
- defaultColumn: {
54
- size: 150,
55
- minSize: 50,
56
- maxSize: 500
57
- },
58
- // State management
59
- state: {
60
- sorting: t.sorting,
61
- columnFilters: t.filtering,
62
- pagination: l !== !1 ? t.pagination : void 0,
63
- rowSelection: t.rowSelection,
64
- columnSizing: r ? t.columnSizing : void 0
65
- },
66
- // State update handlers
67
- onSortingChange: (e) => {
68
- const n = typeof e == "function" ? e(t.sorting) : e;
69
- g((i) => ({ ...i, sorting: n })), d?.(n);
70
- },
71
- onColumnFiltersChange: (e) => {
72
- const n = typeof e == "function" ? e(t.filtering) : e;
73
- g((i) => ({ ...i, filtering: n })), w?.(n);
74
- },
75
- onPaginationChange: (e) => {
76
- if (l === !1) return;
77
- const n = typeof e == "function" ? e(t.pagination) : e;
78
- g((i) => ({ ...i, pagination: n }));
79
- },
80
- onRowSelectionChange: (e) => {
81
- const n = typeof e == "function" ? e(t.rowSelection) : e;
82
- if (g((i) => ({ ...i, rowSelection: n })), o?.onChange) {
83
- const { selectedRowKeys: i, selectedRows: z } = x(
84
- n,
85
- s,
86
- u
87
- );
88
- o.onChange(i, z);
89
- }
90
- },
91
- onColumnSizingChange: r ? (e) => {
92
- const n = typeof e == "function" ? e(t.columnSizing) : e;
93
- g((i) => ({
94
- ...i,
95
- columnSizing: n
96
- })), R?.(n);
97
- } : void 0,
98
- // Feature enables
99
- enableSorting: f,
100
- enableFilters: S,
101
- enableRowSelection: !!o,
102
- enableColumnResizing: r,
103
- // Column resizing configuration
104
- columnResizeMode: C,
105
- columnResizeDirection: p,
106
- // Row identification
107
- getRowId: (e, n) => String(L(e, n, u))
108
- }),
108
+ table: m,
109
109
  isLoading: typeof a == "boolean" ? a : typeof a == "object",
110
110
  spinProps: typeof a == "object" ? a : {},
111
111
  hasRowSelection: !!o,
112
- hasPagination: l !== !1,
112
+ hasPagination: m.getPageCount() > 1,
113
113
  paginationConfig: l === !1 ? void 0 : l,
114
114
  rowSelectionConfig: o
115
115
  };
@@ -1 +1 @@
1
- {"version":3,"file":"hooks.js","sources":["../../../src/components/data-table/hooks.ts"],"sourcesContent":["import { useState, useMemo } from \"react\";\nimport {\n useReactTable,\n getCoreRowModel,\n getSortedRowModel,\n getFilteredRowModel,\n getPaginationRowModel,\n type ColumnDef,\n} from \"@tanstack/react-table\";\nimport { type DataTableProps, type DataTableState } from \"./types\";\nimport {\n convertColumnsToTanStack,\n convertSelectionToAntFormat,\n getRowKey,\n} from \"./utils\";\n\n/**\n * Hook to manage DataTable state and TanStack Table integration\n */\nexport function useDataTable<\n RecordType extends Record<string, any> = Record<string, unknown>\n>(props: DataTableProps<RecordType>) {\n const {\n dataSource = [],\n columns = [],\n rowSelection,\n pagination,\n loading,\n enableSorting = true,\n enableFiltering = false,\n onSortingChange,\n onFilteringChange,\n rowKey,\n enableColumnResizing = false,\n columnResizeMode = \"onChange\",\n columnResizeDirection = \"ltr\",\n onColumnSizingChange,\n } = props;\n\n // Internal state for uncontrolled mode\n const [internalState, setInternalState] = useState<DataTableState>({\n sorting: [],\n filtering: [],\n pagination: {\n pageIndex: 0,\n pageSize:\n pagination === false\n ? dataSource.length\n : pagination?.defaultPageSize || pagination?.pageSize || 10,\n },\n rowSelection: {},\n columnSizing: {},\n });\n\n // Convert Ant Design columns to TanStack format\n const tanStackColumns = useMemo(() => {\n let processedColumns = convertColumnsToTanStack(columns);\n\n // Add selection column if needed\n if (rowSelection) {\n const selectionColumn: ColumnDef<RecordType> = {\n id: \"select\",\n header: ({ table: _table }) => {\n if (rowSelection.type === \"radio\")\n return rowSelection.columnTitle || null;\n // Return a marker that will be handled by the TableHeader component\n return \"SELECTION_HEADER\";\n },\n cell: ({ row: _row }) => {\n // Return a marker that will be handled by the TableBody component\n return \"SELECTION_CELL\";\n },\n size:\n typeof rowSelection.columnWidth === \"number\"\n ? rowSelection.columnWidth\n : typeof rowSelection.columnWidth === \"string\"\n ? parseFloat(rowSelection.columnWidth) || 32\n : 32,\n enableSorting: false,\n enableHiding: false,\n meta: {\n fixed: rowSelection.fixed,\n isSelectionColumn: true,\n },\n };\n\n processedColumns = [selectionColumn, ...processedColumns];\n }\n\n return processedColumns;\n }, [columns, rowSelection]);\n\n // Initialize TanStack Table\n const table = useReactTable<RecordType>({\n data: dataSource,\n columns: tanStackColumns,\n getCoreRowModel: getCoreRowModel(),\n getSortedRowModel: enableSorting ? getSortedRowModel() : undefined,\n getFilteredRowModel: enableFiltering ? getFilteredRowModel() : undefined,\n getPaginationRowModel:\n pagination !== false ? getPaginationRowModel() : undefined,\n\n // Default column configuration for sizing\n defaultColumn: {\n size: 150,\n minSize: 50,\n maxSize: 500,\n },\n\n // State management\n state: {\n sorting: internalState.sorting,\n columnFilters: internalState.filtering,\n pagination: pagination !== false ? internalState.pagination : undefined,\n rowSelection: internalState.rowSelection,\n columnSizing: enableColumnResizing\n ? internalState.columnSizing\n : undefined,\n },\n\n // State update handlers\n onSortingChange: (updater) => {\n const newSorting =\n typeof updater === \"function\"\n ? updater(internalState.sorting)\n : updater;\n setInternalState((prev) => ({ ...prev, sorting: newSorting }));\n onSortingChange?.(newSorting);\n },\n\n onColumnFiltersChange: (updater) => {\n const newFiltering =\n typeof updater === \"function\"\n ? updater(internalState.filtering)\n : updater;\n setInternalState((prev) => ({ ...prev, filtering: newFiltering }));\n onFilteringChange?.(newFiltering);\n },\n\n onPaginationChange: (updater) => {\n if (pagination === false) return;\n\n const newPagination =\n typeof updater === \"function\"\n ? updater(internalState.pagination)\n : updater;\n setInternalState((prev) => ({ ...prev, pagination: newPagination }));\n },\n\n onRowSelectionChange: (updater) => {\n const newSelection =\n typeof updater === \"function\"\n ? updater(internalState.rowSelection)\n : updater;\n setInternalState((prev) => ({ ...prev, rowSelection: newSelection }));\n\n // Convert to Ant Design format and call onChange\n if (rowSelection?.onChange) {\n const { selectedRowKeys, selectedRows } = convertSelectionToAntFormat(\n newSelection,\n dataSource,\n rowKey\n );\n rowSelection.onChange(selectedRowKeys, selectedRows);\n }\n },\n\n onColumnSizingChange: enableColumnResizing\n ? (updater) => {\n const newColumnSizing =\n typeof updater === \"function\"\n ? updater(internalState.columnSizing)\n : updater;\n setInternalState((prev) => ({\n ...prev,\n columnSizing: newColumnSizing,\n }));\n onColumnSizingChange?.(newColumnSizing);\n }\n : undefined,\n\n // Feature enables\n enableSorting,\n enableFilters: enableFiltering,\n enableRowSelection: !!rowSelection,\n enableColumnResizing,\n\n // Column resizing configuration\n columnResizeMode,\n columnResizeDirection,\n\n // Row identification\n getRowId: (row, index) => String(getRowKey(row, index, rowKey)),\n });\n\n // Loading state processing\n const isLoading =\n typeof loading === \"boolean\"\n ? loading\n : typeof loading === \"object\"\n ? true\n : false;\n const spinProps = typeof loading === \"object\" ? loading : {};\n\n return {\n table,\n isLoading,\n spinProps,\n hasRowSelection: !!rowSelection,\n hasPagination: pagination !== false,\n paginationConfig: pagination === false ? undefined : pagination,\n rowSelectionConfig: rowSelection,\n };\n}\n"],"names":["useDataTable","props","dataSource","columns","rowSelection","pagination","loading","enableSorting","enableFiltering","onSortingChange","onFilteringChange","rowKey","enableColumnResizing","columnResizeMode","columnResizeDirection","onColumnSizingChange","internalState","setInternalState","useState","tanStackColumns","useMemo","processedColumns","convertColumnsToTanStack","_table","_row","useReactTable","getCoreRowModel","getSortedRowModel","getFilteredRowModel","getPaginationRowModel","updater","newSorting","prev","newFiltering","newPagination","newSelection","selectedRowKeys","selectedRows","convertSelectionToAntFormat","newColumnSizing","row","index","getRowKey"],"mappings":"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"}
1
+ {"version":3,"file":"hooks.js","sources":["../../../src/components/data-table/hooks.ts"],"sourcesContent":["import { useState, useMemo } from \"react\";\nimport {\n useReactTable,\n getCoreRowModel,\n getSortedRowModel,\n getFilteredRowModel,\n getPaginationRowModel,\n type ColumnDef,\n} from \"@tanstack/react-table\";\nimport { type DataTableProps, type DataTableState } from \"./types\";\nimport {\n convertColumnsToTanStack,\n convertSelectionToAntFormat,\n getRowKey,\n} from \"./utils\";\n\n/**\n * Hook to manage DataTable state and TanStack Table integration\n */\nexport function useDataTable<\n RecordType extends Record<string, any> = Record<string, unknown>\n>(props: DataTableProps<RecordType>) {\n const {\n dataSource = [],\n columns = [],\n rowSelection,\n pagination,\n loading,\n enableSorting = true,\n enableFiltering = false,\n onSortingChange,\n onFilteringChange,\n rowKey,\n enableColumnResizing = false,\n columnResizeMode = \"onChange\",\n columnResizeDirection = \"ltr\",\n onColumnSizingChange,\n } = props;\n\n // Internal state for uncontrolled mode\n const [internalState, setInternalState] = useState<DataTableState>({\n sorting: [],\n filtering: [],\n pagination: {\n pageIndex: 0,\n pageSize: !pagination\n ? dataSource.length\n : pagination?.defaultPageSize || pagination?.pageSize || 10,\n },\n rowSelection: {},\n columnSizing: {},\n });\n\n // Convert Ant Design columns to TanStack format\n const tanStackColumns = useMemo(() => {\n let processedColumns = convertColumnsToTanStack(columns);\n\n // Add selection column if needed\n if (rowSelection) {\n const selectionColumn: ColumnDef<RecordType> = {\n id: \"select\",\n header: ({ table: _table }) => {\n if (rowSelection.type === \"radio\")\n return rowSelection.columnTitle || null;\n // Return a marker that will be handled by the TableHeader component\n return \"SELECTION_HEADER\";\n },\n cell: ({ row: _row }) => {\n // Return a marker that will be handled by the TableBody component\n return \"SELECTION_CELL\";\n },\n size:\n typeof rowSelection.columnWidth === \"number\"\n ? rowSelection.columnWidth\n : typeof rowSelection.columnWidth === \"string\"\n ? parseFloat(rowSelection.columnWidth) || 32\n : 32,\n enableSorting: false,\n enableHiding: false,\n meta: {\n fixed: rowSelection.fixed,\n isSelectionColumn: true,\n },\n };\n\n processedColumns = [selectionColumn, ...processedColumns];\n }\n\n return processedColumns;\n }, [columns, rowSelection]);\n\n // Initialize TanStack Table\n const table = useReactTable<RecordType>({\n data: dataSource,\n columns: tanStackColumns,\n getCoreRowModel: getCoreRowModel(),\n getSortedRowModel: enableSorting ? getSortedRowModel() : undefined,\n getFilteredRowModel: enableFiltering ? getFilteredRowModel() : undefined,\n getPaginationRowModel:\n pagination !== false ? getPaginationRowModel() : undefined,\n\n // Default column configuration for sizing\n defaultColumn: {\n size: 150,\n minSize: 50,\n maxSize: 500,\n },\n\n // State management\n state: {\n sorting: internalState.sorting,\n columnFilters: internalState.filtering,\n pagination: internalState.pagination,\n rowSelection: internalState.rowSelection,\n columnSizing: enableColumnResizing\n ? internalState.columnSizing\n : undefined,\n },\n\n // State update handlers\n onSortingChange: (updater) => {\n const newSorting =\n typeof updater === \"function\"\n ? updater(internalState.sorting)\n : updater;\n setInternalState((prev) => ({ ...prev, sorting: newSorting }));\n onSortingChange?.(newSorting);\n },\n\n onColumnFiltersChange: (updater) => {\n const newFiltering =\n typeof updater === \"function\"\n ? updater(internalState.filtering)\n : updater;\n setInternalState((prev) => ({ ...prev, filtering: newFiltering }));\n onFilteringChange?.(newFiltering);\n },\n\n onPaginationChange: (updater) => {\n if (pagination === false) return;\n\n const newPagination =\n typeof updater === \"function\"\n ? updater(internalState.pagination)\n : updater;\n setInternalState((prev) => ({ ...prev, pagination: newPagination }));\n },\n\n onRowSelectionChange: (updater) => {\n const newSelection =\n typeof updater === \"function\"\n ? updater(internalState.rowSelection)\n : updater;\n setInternalState((prev) => ({ ...prev, rowSelection: newSelection }));\n\n // Convert to Ant Design format and call onChange\n if (rowSelection?.onChange) {\n const { selectedRowKeys, selectedRows } = convertSelectionToAntFormat(\n newSelection,\n dataSource,\n rowKey\n );\n rowSelection.onChange(selectedRowKeys, selectedRows);\n }\n },\n\n onColumnSizingChange: enableColumnResizing\n ? (updater) => {\n const newColumnSizing =\n typeof updater === \"function\"\n ? updater(internalState.columnSizing)\n : updater;\n setInternalState((prev) => ({\n ...prev,\n columnSizing: newColumnSizing,\n }));\n onColumnSizingChange?.(newColumnSizing);\n }\n : undefined,\n\n // Feature enables\n enableSorting,\n enableFilters: enableFiltering,\n enableRowSelection: !!rowSelection,\n enableColumnResizing,\n\n // Column resizing configuration\n columnResizeMode,\n columnResizeDirection,\n\n // Row identification\n getRowId: (row, index) => String(getRowKey(row, index, rowKey)),\n });\n\n // Loading state processing\n const isLoading =\n typeof loading === \"boolean\"\n ? loading\n : typeof loading === \"object\"\n ? true\n : false;\n const spinProps = typeof loading === \"object\" ? loading : {};\n\n return {\n table,\n isLoading,\n spinProps,\n hasRowSelection: !!rowSelection,\n hasPagination: table.getPageCount() > 1,\n paginationConfig: pagination === false ? undefined : pagination,\n rowSelectionConfig: rowSelection,\n };\n}\n"],"names":["useDataTable","props","dataSource","columns","rowSelection","pagination","loading","enableSorting","enableFiltering","onSortingChange","onFilteringChange","rowKey","enableColumnResizing","columnResizeMode","columnResizeDirection","onColumnSizingChange","internalState","setInternalState","useState","tanStackColumns","useMemo","processedColumns","convertColumnsToTanStack","_table","_row","table","useReactTable","getCoreRowModel","getSortedRowModel","getFilteredRowModel","getPaginationRowModel","updater","newSorting","prev","newFiltering","newPagination","newSelection","selectedRowKeys","selectedRows","convertSelectionToAntFormat","newColumnSizing","row","index","getRowKey"],"mappings":"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"}