react-hook-tanstack-table 0.0.1

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 (102) hide show
  1. package/LICENSE +21 -0
  2. package/README.org +29 -0
  3. package/dist/TableContext.cjs +6 -0
  4. package/dist/TableContext.d.cts +7 -0
  5. package/dist/TableContext.d.cts.map +1 -0
  6. package/dist/TableContext.d.ts +7 -0
  7. package/dist/TableContext.d.ts.map +1 -0
  8. package/dist/TableContext.js +8 -0
  9. package/dist/TableContext.js.map +1 -0
  10. package/dist/hasTableArg-Bu3FbcSo.js +8 -0
  11. package/dist/hasTableArg-Bu3FbcSo.js.map +1 -0
  12. package/dist/hasTableArg-dMtayKWH.cjs +11 -0
  13. package/dist/index.cjs +40 -0
  14. package/dist/index.d.cts +11 -0
  15. package/dist/index.d.ts +11 -0
  16. package/dist/index.js +11 -0
  17. package/dist/invariant-BgWq7zZS.js +12 -0
  18. package/dist/invariant-BgWq7zZS.js.map +1 -0
  19. package/dist/invariant-D8b385d_.cjs +21 -0
  20. package/dist/isShallowEqual-D6PQ041u.cjs +36 -0
  21. package/dist/isShallowEqual-Kynsoe7a.js +33 -0
  22. package/dist/isShallowEqual-Kynsoe7a.js.map +1 -0
  23. package/dist/runGetters-BfRTE7LZ.js +16 -0
  24. package/dist/runGetters-BfRTE7LZ.js.map +1 -0
  25. package/dist/runGetters-Q-UsPG2j.cjs +19 -0
  26. package/dist/types-DIWB6wdO.d.cts +11 -0
  27. package/dist/types-DIWB6wdO.d.cts.map +1 -0
  28. package/dist/types-DIWB6wdO.d.ts +11 -0
  29. package/dist/types-DIWB6wdO.d.ts.map +1 -0
  30. package/dist/useCell.cjs +53 -0
  31. package/dist/useCell.d.cts +17 -0
  32. package/dist/useCell.d.cts.map +1 -0
  33. package/dist/useCell.d.ts +17 -0
  34. package/dist/useCell.d.ts.map +1 -0
  35. package/dist/useCell.js +53 -0
  36. package/dist/useCell.js.map +1 -0
  37. package/dist/useColumn.cjs +54 -0
  38. package/dist/useColumn.d.cts +19 -0
  39. package/dist/useColumn.d.cts.map +1 -0
  40. package/dist/useColumn.d.ts +19 -0
  41. package/dist/useColumn.d.ts.map +1 -0
  42. package/dist/useColumn.js +54 -0
  43. package/dist/useColumn.js.map +1 -0
  44. package/dist/useHeader.cjs +48 -0
  45. package/dist/useHeader.d.cts +19 -0
  46. package/dist/useHeader.d.cts.map +1 -0
  47. package/dist/useHeader.d.ts +19 -0
  48. package/dist/useHeader.d.ts.map +1 -0
  49. package/dist/useHeader.js +48 -0
  50. package/dist/useHeader.js.map +1 -0
  51. package/dist/useReactTable-Y2z5JrT_.js +70 -0
  52. package/dist/useReactTable-Y2z5JrT_.js.map +1 -0
  53. package/dist/useReactTable-nxQRPiMU.cjs +95 -0
  54. package/dist/useReactTable.cjs +3 -0
  55. package/dist/useReactTable.d.cts +10 -0
  56. package/dist/useReactTable.d.cts.map +1 -0
  57. package/dist/useReactTable.d.ts +10 -0
  58. package/dist/useReactTable.d.ts.map +1 -0
  59. package/dist/useReactTable.js +2 -0
  60. package/dist/useRow.cjs +54 -0
  61. package/dist/useRow.d.cts +19 -0
  62. package/dist/useRow.d.cts.map +1 -0
  63. package/dist/useRow.d.ts +19 -0
  64. package/dist/useRow.d.ts.map +1 -0
  65. package/dist/useRow.js +54 -0
  66. package/dist/useRow.js.map +1 -0
  67. package/dist/useTable.cjs +44 -0
  68. package/dist/useTable.d.cts +11 -0
  69. package/dist/useTable.d.cts.map +1 -0
  70. package/dist/useTable.d.ts +11 -0
  71. package/dist/useTable.d.ts.map +1 -0
  72. package/dist/useTable.js +44 -0
  73. package/dist/useTable.js.map +1 -0
  74. package/dist/useTableWithSelector-Bdsf6Zxk.cjs +79 -0
  75. package/dist/useTableWithSelector-D3f689pF.js +70 -0
  76. package/dist/useTableWithSelector-D3f689pF.js.map +1 -0
  77. package/dist/useTableWithSelector.cjs +3 -0
  78. package/dist/useTableWithSelector.d.cts +8 -0
  79. package/dist/useTableWithSelector.d.cts.map +1 -0
  80. package/dist/useTableWithSelector.d.ts +8 -0
  81. package/dist/useTableWithSelector.d.ts.map +1 -0
  82. package/dist/useTableWithSelector.js +2 -0
  83. package/package.json +99 -0
  84. package/src/contexts/TableContext.ts +7 -0
  85. package/src/hooks/useCell.ts +156 -0
  86. package/src/hooks/useColumn.ts +168 -0
  87. package/src/hooks/useHeader.ts +151 -0
  88. package/src/hooks/useReactTable.ts +88 -0
  89. package/src/hooks/useRow.ts +132 -0
  90. package/src/hooks/useTable.ts +113 -0
  91. package/src/hooks/useTableWithSelector.ts +143 -0
  92. package/src/index.ts +13 -0
  93. package/src/lib/hasTableArg.ts +19 -0
  94. package/src/lib/identity.ts +1 -0
  95. package/src/lib/invariant.ts +12 -0
  96. package/src/lib/isShallowEqual.ts +77 -0
  97. package/src/lib/runGetters.ts +17 -0
  98. package/src/lib/tableRegistry.ts +3 -0
  99. package/src/lib/uncapitalize.ts +2 -0
  100. package/src/lib/useLayoutEffect.ts +3 -0
  101. package/src/lib/useShallowMemo.ts +12 -0
  102. package/src/types.ts +24 -0
@@ -0,0 +1,19 @@
1
+ import { n as RunGetters, t as IsEqual } from "./types-DIWB6wdO.cjs";
2
+ import { Column, RowData, Table } from "@tanstack/table-core";
3
+
4
+ //#region src/hooks/useColumn.d.ts
5
+ interface ColumnValues<TData extends RowData, TValue = unknown> extends RunGetters<Column<TData, TValue>> {}
6
+ type Selector<TData extends RowData, TValue, Selection> = (table: ColumnValues<TData, TValue>) => Selection;
7
+ declare const useColumn: <TData extends RowData, TValue = unknown, Selection = ColumnValues<TData, TValue>>(...args: [table: Table<TData> | undefined, column: Column<TData, TValue> | ColumnValues<TData, TValue> | {
8
+ id: string;
9
+ } | string, selector?: Selector<TData, TValue, Selection> | undefined, isEqual?: IsEqual<NoInfer<Selection>> | undefined] | [column: Column<TData, TValue> | ColumnValues<TData, TValue> | {
10
+ id: string;
11
+ } | string, selector?: Selector<TData, TValue, Selection> | undefined, isEqual?: IsEqual<NoInfer<Selection>> | undefined]) => Selection;
12
+ declare const columnHookʹ: <TData extends RowData, TValue = unknown>(...args: [table: Table<TData> | undefined, column: Column<TData, TValue> | ColumnValues<TData, TValue> | {
13
+ id: string;
14
+ } | string] | [column: Column<TData, TValue> | ColumnValues<TData, TValue> | {
15
+ id: string;
16
+ } | string]) => <Selection = ColumnValues<TData, TValue>>(selector?: Selector<TData, TValue, Selection> | undefined, isEqual?: IsEqual<NoInfer<Selection>> | undefined) => Selection;
17
+ //#endregion
18
+ export { ColumnValues, useColumn, columnHookʹ as useColumnʹ };
19
+ //# sourceMappingURL=useColumn.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useColumn.d.cts","names":[],"sources":["../src/hooks/useColumn.ts"],"mappings":";;;;UAoBiB,YAAA,eACD,OAAA,4BAEN,UAAA,CAAW,MAAA,CAAO,KAAA,EAAO,MAAA;AAAA,KAsE9B,QAAA,eAAuB,OAAA,wBAC1B,KAAA,EAAO,YAAA,CAAa,KAAA,EAAO,MAAA,MACxB,SAAA;AAAA,cAEQ,SAAA,iBACG,OAAA,gCAEF,YAAA,CAAa,KAAA,EAAO,MAAA,MAE7B,IAAA,GAEG,KAAA,EAAO,KAAA,CAAM,KAAA,eACb,MAAA,EACI,MAAA,CAAO,KAAA,EAAO,MAAA,IACd,YAAA,CAAa,KAAA,EAAO,MAAA;EAClB,EAAA;AAAA,YAEN,QAAA,GAAW,QAAA,CAAS,KAAA,EAAO,MAAA,EAAQ,SAAA,eACnC,OAAA,GAAU,OAAA,CAAQ,OAAA,CAAQ,SAAA,mBAG1B,MAAA,EACI,MAAA,CAAO,KAAA,EAAO,MAAA,IACd,YAAA,CAAa,KAAA,EAAO,MAAA;EAClB,EAAA;AAAA,YAEN,QAAA,GAAW,QAAA,CAAS,KAAA,EAAO,MAAA,EAAQ,SAAA,eACnC,OAAA,GAAU,OAAA,CAAQ,OAAA,CAAQ,SAAA,oBAE/B,SAAA;AAAA,cAoBG,WAAA,iBACW,OAAA,uBACV,IAAA,GAEG,KAAA,EAAO,KAAA,CAAM,KAAA,eACb,MAAA,EACI,MAAA,CAAO,KAAA,EAAO,MAAA,IACd,YAAA,CAAa,KAAA,EAAO,MAAA;EAClB,EAAA;AAAA,eAIN,MAAA,EACI,MAAA,CAAO,KAAA,EAAO,MAAA,IACd,YAAA,CAAa,KAAA,EAAO,MAAA;EAClB,EAAA;AAAA,6BAID,YAAA,CAAa,KAAA,EAAO,MAAA,GAC/B,QAAA,GAAW,QAAA,CAAS,KAAA,EAAO,MAAA,EAAQ,SAAA,eACnC,OAAA,GAAU,OAAA,CAAQ,OAAA,CAAQ,SAAA,mBACzB,SAAA"}
@@ -0,0 +1,19 @@
1
+ import { n as RunGetters, t as IsEqual } from "./types-DIWB6wdO.js";
2
+ import { Column, RowData, Table } from "@tanstack/table-core";
3
+
4
+ //#region src/hooks/useColumn.d.ts
5
+ interface ColumnValues<TData extends RowData, TValue = unknown> extends RunGetters<Column<TData, TValue>> {}
6
+ type Selector<TData extends RowData, TValue, Selection> = (table: ColumnValues<TData, TValue>) => Selection;
7
+ declare const useColumn: <TData extends RowData, TValue = unknown, Selection = ColumnValues<TData, TValue>>(...args: [table: Table<TData> | undefined, column: Column<TData, TValue> | ColumnValues<TData, TValue> | {
8
+ id: string;
9
+ } | string, selector?: Selector<TData, TValue, Selection> | undefined, isEqual?: IsEqual<NoInfer<Selection>> | undefined] | [column: Column<TData, TValue> | ColumnValues<TData, TValue> | {
10
+ id: string;
11
+ } | string, selector?: Selector<TData, TValue, Selection> | undefined, isEqual?: IsEqual<NoInfer<Selection>> | undefined]) => Selection;
12
+ declare const columnHookʹ: <TData extends RowData, TValue = unknown>(...args: [table: Table<TData> | undefined, column: Column<TData, TValue> | ColumnValues<TData, TValue> | {
13
+ id: string;
14
+ } | string] | [column: Column<TData, TValue> | ColumnValues<TData, TValue> | {
15
+ id: string;
16
+ } | string]) => <Selection = ColumnValues<TData, TValue>>(selector?: Selector<TData, TValue, Selection> | undefined, isEqual?: IsEqual<NoInfer<Selection>> | undefined) => Selection;
17
+ //#endregion
18
+ export { ColumnValues, useColumn, columnHookʹ as useColumnʹ };
19
+ //# sourceMappingURL=useColumn.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useColumn.d.ts","names":[],"sources":["../src/hooks/useColumn.ts"],"mappings":";;;;UAoBiB,YAAA,eACD,OAAA,4BAEN,UAAA,CAAW,MAAA,CAAO,KAAA,EAAO,MAAA;AAAA,KAsE9B,QAAA,eAAuB,OAAA,wBAC1B,KAAA,EAAO,YAAA,CAAa,KAAA,EAAO,MAAA,MACxB,SAAA;AAAA,cAEQ,SAAA,iBACG,OAAA,gCAEF,YAAA,CAAa,KAAA,EAAO,MAAA,MAE7B,IAAA,GAEG,KAAA,EAAO,KAAA,CAAM,KAAA,eACb,MAAA,EACI,MAAA,CAAO,KAAA,EAAO,MAAA,IACd,YAAA,CAAa,KAAA,EAAO,MAAA;EAClB,EAAA;AAAA,YAEN,QAAA,GAAW,QAAA,CAAS,KAAA,EAAO,MAAA,EAAQ,SAAA,eACnC,OAAA,GAAU,OAAA,CAAQ,OAAA,CAAQ,SAAA,mBAG1B,MAAA,EACI,MAAA,CAAO,KAAA,EAAO,MAAA,IACd,YAAA,CAAa,KAAA,EAAO,MAAA;EAClB,EAAA;AAAA,YAEN,QAAA,GAAW,QAAA,CAAS,KAAA,EAAO,MAAA,EAAQ,SAAA,eACnC,OAAA,GAAU,OAAA,CAAQ,OAAA,CAAQ,SAAA,oBAE/B,SAAA;AAAA,cAoBG,WAAA,iBACW,OAAA,uBACV,IAAA,GAEG,KAAA,EAAO,KAAA,CAAM,KAAA,eACb,MAAA,EACI,MAAA,CAAO,KAAA,EAAO,MAAA,IACd,YAAA,CAAa,KAAA,EAAO,MAAA;EAClB,EAAA;AAAA,eAIN,MAAA,EACI,MAAA,CAAO,KAAA,EAAO,MAAA,IACd,YAAA,CAAa,KAAA,EAAO,MAAA;EAClB,EAAA;AAAA,6BAID,YAAA,CAAa,KAAA,EAAO,MAAA,GAC/B,QAAA,GAAW,QAAA,CAAS,KAAA,EAAO,MAAA,EAAQ,SAAA,eACnC,OAAA,GAAU,OAAA,CAAQ,OAAA,CAAQ,SAAA,mBACzB,SAAA"}
@@ -0,0 +1,54 @@
1
+ import { t as isShallowEqual } from "./isShallowEqual-Kynsoe7a.js";
2
+ import { t as invariant } from "./invariant-BgWq7zZS.js";
3
+ import { n as identity, t as useTableWithSelector } from "./useTableWithSelector-D3f689pF.js";
4
+ import { t as runGetters } from "./runGetters-BfRTE7LZ.js";
5
+ import { t as hasTableArg } from "./hasTableArg-Bu3FbcSo.js";
6
+ import { useCallback } from "react";
7
+ //#region src/hooks/useColumn.ts
8
+ const columnValuesCache = /* @__PURE__ */ new WeakMap();
9
+ const columnHandlersCache = /* @__PURE__ */ new WeakMap();
10
+ const getColumnValues = (table, columnId) => {
11
+ let columnCache = columnValuesCache.get(table.options);
12
+ if (!columnCache) {
13
+ columnCache = /* @__PURE__ */ new Map();
14
+ columnValuesCache.set(table.options, columnCache);
15
+ }
16
+ let cached = columnCache.get(columnId);
17
+ if (!cached) {
18
+ const column = table.getColumn(columnId);
19
+ invariant(column);
20
+ let cachedHandlers = columnHandlersCache.get(column);
21
+ if (!cachedHandlers) {
22
+ cachedHandlers = {
23
+ toggleGroupingHandler: column.getToggleGroupingHandler(),
24
+ toggleSortingHandler: column.getToggleSortingHandler(),
25
+ toggleVisibilityHandler: column.getToggleVisibilityHandler()
26
+ };
27
+ columnHandlersCache.set(column, cachedHandlers);
28
+ }
29
+ const { toggleGroupingHandler, toggleSortingHandler, toggleVisibilityHandler } = cachedHandlers;
30
+ cached = {
31
+ ...runGetters(column),
32
+ toggleGroupingHandler,
33
+ toggleSortingHandler,
34
+ toggleVisibilityHandler
35
+ };
36
+ columnCache.set(columnId, cached);
37
+ }
38
+ return cached;
39
+ };
40
+ const useColumn = (...args) => {
41
+ const [table, columnOrId, selector = identity, isEqual = isShallowEqual] = hasTableArg(args) ? args : [void 0, ...args];
42
+ const columnId = typeof columnOrId === "string" ? columnOrId : columnOrId.id;
43
+ return useTableWithSelector(table, useCallback((table) => selector(getColumnValues(table, columnId)), [columnId, selector]), isEqual);
44
+ };
45
+ const columnHook = useColumn;
46
+ const columnHookʹ = (...args) => (selector, isEqual) => columnHook(...[
47
+ ...args,
48
+ selector,
49
+ isEqual
50
+ ]);
51
+ //#endregion
52
+ export { useColumn, columnHookʹ as useColumnʹ };
53
+
54
+ //# sourceMappingURL=useColumn.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useColumn.js","names":[],"sources":["../src/hooks/useColumn.ts"],"sourcesContent":["import { useCallback } from \"react\"\n\nimport type {\n Column,\n RequiredKeys,\n RowData,\n Table,\n TableOptionsResolved,\n} from \"@tanstack/table-core\"\n\nimport { identity } from \"../lib/identity\"\nimport { hasTableArg } from \"../lib/hasTableArg\"\nimport { runGetters } from \"../lib/runGetters\"\nimport { isShallowEqual } from \"../lib/isShallowEqual\"\nimport { invariant } from \"../lib/invariant\"\n\nimport type { IsEqual, RunGetters } from \"../types\"\n\nimport { useTableWithSelector } from \"./useTableWithSelector\"\n\nexport interface ColumnValues<\n TData extends RowData,\n TValue = unknown,\n> extends RunGetters<Column<TData, TValue>> {}\n\nconst columnValuesCache = new WeakMap<\n RequiredKeys<TableOptionsResolved<any>, \"state\">,\n Map<string, ColumnValues<any, any>>\n>()\n\nconst columnHandlersCache = new WeakMap<\n Column<any, any>,\n {\n toggleGroupingHandler: ReturnType<\n Column<any, any>[\"getToggleGroupingHandler\"]\n >\n toggleSortingHandler: ReturnType<\n Column<any, any>[\"getToggleSortingHandler\"]\n >\n toggleVisibilityHandler: ReturnType<\n Column<any, any>[\"getToggleVisibilityHandler\"]\n >\n }\n>()\n\nconst getColumnValues = <TData extends RowData, TValue = unknown>(\n table: Table<TData>,\n columnId: string,\n): ColumnValues<TData, TValue> => {\n let columnCache = columnValuesCache.get(table.options)\n if (!columnCache) {\n columnCache = new Map()\n columnValuesCache.set(table.options, columnCache)\n }\n\n let cached = columnCache.get(columnId)\n\n if (!cached) {\n const column = table.getColumn(columnId) as\n | Column<TData, TValue>\n | undefined\n\n invariant(column)\n\n let cachedHandlers = columnHandlersCache.get(column)\n if (!cachedHandlers) {\n cachedHandlers = {\n toggleGroupingHandler: column.getToggleGroupingHandler(),\n toggleSortingHandler: column.getToggleSortingHandler(),\n toggleVisibilityHandler: column.getToggleVisibilityHandler(),\n }\n columnHandlersCache.set(column, cachedHandlers)\n }\n\n const {\n toggleGroupingHandler,\n toggleSortingHandler,\n toggleVisibilityHandler,\n } = cachedHandlers\n\n cached = {\n ...runGetters(column),\n toggleGroupingHandler,\n toggleSortingHandler,\n toggleVisibilityHandler,\n }\n\n columnCache.set(columnId, cached)\n }\n\n return cached\n}\n\ntype Selector<TData extends RowData, TValue, Selection> = (\n table: ColumnValues<TData, TValue>,\n) => Selection\n\nexport const useColumn = <\n TData extends RowData,\n TValue = unknown,\n Selection = ColumnValues<TData, TValue>,\n>(\n ...args:\n | [\n table: Table<TData> | undefined,\n column:\n | Column<TData, TValue>\n | ColumnValues<TData, TValue>\n | { id: string }\n | string,\n selector?: Selector<TData, TValue, Selection> | undefined,\n isEqual?: IsEqual<NoInfer<Selection>> | undefined,\n ]\n | [\n column:\n | Column<TData, TValue>\n | ColumnValues<TData, TValue>\n | { id: string }\n | string,\n selector?: Selector<TData, TValue, Selection> | undefined,\n isEqual?: IsEqual<NoInfer<Selection>> | undefined,\n ]\n): Selection => {\n const [\n table,\n columnOrId,\n selector = identity as never,\n isEqual = isShallowEqual,\n ] = hasTableArg(args) ? args : [undefined, ...args]\n\n const columnId = typeof columnOrId === \"string\" ? columnOrId : columnOrId.id\n\n const getSelection = useCallback(\n (table: Table<TData>) => selector(getColumnValues(table, columnId)),\n [columnId, selector],\n )\n\n return useTableWithSelector(table, getSelection, isEqual)\n}\n\nconst columnHook = useColumn\n\nconst columnHookʹ =\n <TData extends RowData, TValue = unknown>(\n ...args:\n | [\n table: Table<TData> | undefined,\n column:\n | Column<TData, TValue>\n | ColumnValues<TData, TValue>\n | { id: string }\n | string,\n ]\n | [\n column:\n | Column<TData, TValue>\n | ColumnValues<TData, TValue>\n | { id: string }\n | string,\n ]\n ) =>\n <Selection = ColumnValues<TData, TValue>>(\n selector?: Selector<TData, TValue, Selection> | undefined,\n isEqual?: IsEqual<NoInfer<Selection>> | undefined,\n ): Selection =>\n columnHook(...[...args, selector, isEqual])\n\nexport { columnHookʹ as useColumnʹ }\n"],"mappings":";;;;;;;AAyBA,MAAM,oCAAoB,IAAI,QAG5B;AAEF,MAAM,sCAAsB,IAAI,QAa9B;AAEF,MAAM,mBACJ,OACA,aACgC;CAChC,IAAI,cAAc,kBAAkB,IAAI,MAAM,OAAO;CACrD,IAAI,CAAC,aAAa;EAChB,8BAAc,IAAI,IAAI;EACtB,kBAAkB,IAAI,MAAM,SAAS,WAAW;CAClD;CAEA,IAAI,SAAS,YAAY,IAAI,QAAQ;CAErC,IAAI,CAAC,QAAQ;EACX,MAAM,SAAS,MAAM,UAAU,QAAQ;EAIvC,UAAU,MAAM;EAEhB,IAAI,iBAAiB,oBAAoB,IAAI,MAAM;EACnD,IAAI,CAAC,gBAAgB;GACnB,iBAAiB;IACf,uBAAuB,OAAO,yBAAyB;IACvD,sBAAsB,OAAO,wBAAwB;IACrD,yBAAyB,OAAO,2BAA2B;GAC7D;GACA,oBAAoB,IAAI,QAAQ,cAAc;EAChD;EAEA,MAAM,EACJ,uBACA,sBACA,4BACE;EAEJ,SAAS;GACP,GAAG,WAAW,MAAM;GACpB;GACA;GACA;EACF;EAEA,YAAY,IAAI,UAAU,MAAM;CAClC;CAEA,OAAO;AACT;AAMA,MAAa,aAKX,GAAG,SAoBW;CACd,MAAM,CACJ,OACA,YACA,WAAW,UACX,UAAU,kBACR,YAAY,IAAI,IAAI,OAAO,CAAC,KAAA,GAAW,GAAG,IAAI;CAElD,MAAM,WAAW,OAAO,eAAe,WAAW,aAAa,WAAW;CAO1E,OAAO,qBAAqB,OALP,aAClB,UAAwB,SAAS,gBAAgB,OAAO,QAAQ,CAAC,GAClE,CAAC,UAAU,QAAQ,CAGyB,GAAG,OAAO;AAC1D;AAEA,MAAM,aAAa;AAEnB,MAAM,eAEF,GAAG,UAkBH,UACA,YAEA,WAAW,GAAG;CAAC,GAAG;CAAM;CAAU;AAAO,CAAC"}
@@ -0,0 +1,48 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ const require_isShallowEqual = require("./isShallowEqual-D6PQ041u.cjs");
3
+ const require_invariant = require("./invariant-D8b385d_.cjs");
4
+ const require_useTableWithSelector = require("./useTableWithSelector-Bdsf6Zxk.cjs");
5
+ const require_runGetters = require("./runGetters-Q-UsPG2j.cjs");
6
+ const require_hasTableArg = require("./hasTableArg-dMtayKWH.cjs");
7
+ let react = require("react");
8
+ //#region src/hooks/useHeader.ts
9
+ const headerValuesCache = /* @__PURE__ */ new WeakMap();
10
+ const headerHandlersCache = /* @__PURE__ */ new WeakMap();
11
+ const getHeaderValues = (table, headerId) => {
12
+ let headerCache = headerValuesCache.get(table.options);
13
+ if (!headerCache) {
14
+ headerCache = /* @__PURE__ */ new Map();
15
+ headerValuesCache.set(table.options, headerCache);
16
+ }
17
+ let cached = headerCache.get(headerId);
18
+ if (!cached) {
19
+ const header = table.getFlatHeaders().find((h) => h.id === headerId);
20
+ require_invariant.invariant(header);
21
+ let cachedHandlers = headerHandlersCache.get(header);
22
+ if (!cachedHandlers) {
23
+ cachedHandlers = { resizeHandler: header.getResizeHandler() };
24
+ headerHandlersCache.set(header, cachedHandlers);
25
+ }
26
+ const { resizeHandler } = cachedHandlers;
27
+ cached = {
28
+ ...require_runGetters.runGetters(header),
29
+ resizeHandler
30
+ };
31
+ headerCache.set(headerId, cached);
32
+ }
33
+ return cached;
34
+ };
35
+ const useHeader = (...args) => {
36
+ const [table, headerOrId, selector = require_useTableWithSelector.identity, isEqual = require_isShallowEqual.isShallowEqual] = require_hasTableArg.hasTableArg(args) ? args : [void 0, ...args];
37
+ const headerId = typeof headerOrId === "string" ? headerOrId : headerOrId.id;
38
+ return require_useTableWithSelector.useTableWithSelector(table, (0, react.useCallback)((table) => selector(getHeaderValues(table, headerId)), [headerId, selector]), isEqual);
39
+ };
40
+ const headerHook = useHeader;
41
+ const headerHookʹ = (...args) => (selector, isEqual) => headerHook(...[
42
+ ...args,
43
+ selector,
44
+ isEqual
45
+ ]);
46
+ //#endregion
47
+ exports.useHeader = useHeader;
48
+ exports.useHeaderʹ = headerHookʹ;
@@ -0,0 +1,19 @@
1
+ import { n as RunGetters, t as IsEqual } from "./types-DIWB6wdO.cjs";
2
+ import { Header, RowData, Table } from "@tanstack/table-core";
3
+
4
+ //#region src/hooks/useHeader.d.ts
5
+ interface HeaderValues<TData extends RowData, TValue> extends RunGetters<Header<TData, TValue>> {}
6
+ type Selector<TData extends RowData, TValue, Selection> = (headerValues: HeaderValues<TData, TValue>) => Selection;
7
+ declare const useHeader: <TData extends RowData, TValue, Selection = HeaderValues<TData, TValue>>(...args: [table: Table<TData> | undefined, header: Header<TData, TValue> | HeaderValues<TData, TValue> | {
8
+ id: string;
9
+ } | string, selector?: Selector<TData, TValue, Selection> | undefined, isEqual?: IsEqual<NoInfer<Selection>> | undefined] | [header: Header<TData, TValue> | HeaderValues<TData, TValue> | {
10
+ id: string;
11
+ } | string, selector?: Selector<TData, TValue, Selection> | undefined, isEqual?: IsEqual<NoInfer<Selection>> | undefined]) => Selection;
12
+ declare const headerHookʹ: <TData extends RowData, TValue>(...args: [table: Table<TData> | undefined, header: Header<TData, TValue> | HeaderValues<TData, TValue> | {
13
+ id: string;
14
+ } | string] | [header: Header<TData, TValue> | HeaderValues<TData, TValue> | {
15
+ id: string;
16
+ } | string]) => <Selection = HeaderValues<TData, TValue>>(selector?: Selector<TData, TValue, Selection> | undefined, isEqual?: IsEqual<NoInfer<Selection>> | undefined) => Selection;
17
+ //#endregion
18
+ export { HeaderValues, useHeader, headerHookʹ as useHeaderʹ };
19
+ //# sourceMappingURL=useHeader.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useHeader.d.cts","names":[],"sources":["../src/hooks/useHeader.ts"],"mappings":";;;;UAoBiB,YAAA,eAA2B,OAAA,kBAAyB,UAAA,CACnE,MAAA,CAAO,KAAA,EAAO,MAAA;AAAA,KAuDX,QAAA,eAAuB,OAAA,wBAC1B,YAAA,EAAc,YAAA,CAAa,KAAA,EAAO,MAAA,MAC/B,SAAA;AAAA,cAEQ,SAAA,iBACG,OAAA,sBAEF,YAAA,CAAa,KAAA,EAAO,MAAA,MAE7B,IAAA,GAEG,KAAA,EAAO,KAAA,CAAM,KAAA,eACb,MAAA,EACI,MAAA,CAAO,KAAA,EAAO,MAAA,IACd,YAAA,CAAa,KAAA,EAAO,MAAA;EAClB,EAAA;AAAA,YAEN,QAAA,GAAW,QAAA,CAAS,KAAA,EAAO,MAAA,EAAQ,SAAA,eACnC,OAAA,GAAU,OAAA,CAAQ,OAAA,CAAQ,SAAA,mBAG1B,MAAA,EACI,MAAA,CAAO,KAAA,EAAO,MAAA,IACd,YAAA,CAAa,KAAA,EAAO,MAAA;EAClB,EAAA;AAAA,YAEN,QAAA,GAAW,QAAA,CAAS,KAAA,EAAO,MAAA,EAAQ,SAAA,eACnC,OAAA,GAAU,OAAA,CAAQ,OAAA,CAAQ,SAAA,oBAE/B,SAAA;AAAA,cAoBG,WAAA,iBACW,OAAA,aACV,IAAA,GAEG,KAAA,EAAO,KAAA,CAAM,KAAA,eACb,MAAA,EACI,MAAA,CAAO,KAAA,EAAO,MAAA,IACd,YAAA,CAAa,KAAA,EAAO,MAAA;EAClB,EAAA;AAAA,eAIN,MAAA,EACI,MAAA,CAAO,KAAA,EAAO,MAAA,IACd,YAAA,CAAa,KAAA,EAAO,MAAA;EAClB,EAAA;AAAA,6BAID,YAAA,CAAa,KAAA,EAAO,MAAA,GAC/B,QAAA,GAAW,QAAA,CAAS,KAAA,EAAO,MAAA,EAAQ,SAAA,eACnC,OAAA,GAAU,OAAA,CAAQ,OAAA,CAAQ,SAAA,mBACzB,SAAA"}
@@ -0,0 +1,19 @@
1
+ import { n as RunGetters, t as IsEqual } from "./types-DIWB6wdO.js";
2
+ import { Header, RowData, Table } from "@tanstack/table-core";
3
+
4
+ //#region src/hooks/useHeader.d.ts
5
+ interface HeaderValues<TData extends RowData, TValue> extends RunGetters<Header<TData, TValue>> {}
6
+ type Selector<TData extends RowData, TValue, Selection> = (headerValues: HeaderValues<TData, TValue>) => Selection;
7
+ declare const useHeader: <TData extends RowData, TValue, Selection = HeaderValues<TData, TValue>>(...args: [table: Table<TData> | undefined, header: Header<TData, TValue> | HeaderValues<TData, TValue> | {
8
+ id: string;
9
+ } | string, selector?: Selector<TData, TValue, Selection> | undefined, isEqual?: IsEqual<NoInfer<Selection>> | undefined] | [header: Header<TData, TValue> | HeaderValues<TData, TValue> | {
10
+ id: string;
11
+ } | string, selector?: Selector<TData, TValue, Selection> | undefined, isEqual?: IsEqual<NoInfer<Selection>> | undefined]) => Selection;
12
+ declare const headerHookʹ: <TData extends RowData, TValue>(...args: [table: Table<TData> | undefined, header: Header<TData, TValue> | HeaderValues<TData, TValue> | {
13
+ id: string;
14
+ } | string] | [header: Header<TData, TValue> | HeaderValues<TData, TValue> | {
15
+ id: string;
16
+ } | string]) => <Selection = HeaderValues<TData, TValue>>(selector?: Selector<TData, TValue, Selection> | undefined, isEqual?: IsEqual<NoInfer<Selection>> | undefined) => Selection;
17
+ //#endregion
18
+ export { HeaderValues, useHeader, headerHookʹ as useHeaderʹ };
19
+ //# sourceMappingURL=useHeader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useHeader.d.ts","names":[],"sources":["../src/hooks/useHeader.ts"],"mappings":";;;;UAoBiB,YAAA,eAA2B,OAAA,kBAAyB,UAAA,CACnE,MAAA,CAAO,KAAA,EAAO,MAAA;AAAA,KAuDX,QAAA,eAAuB,OAAA,wBAC1B,YAAA,EAAc,YAAA,CAAa,KAAA,EAAO,MAAA,MAC/B,SAAA;AAAA,cAEQ,SAAA,iBACG,OAAA,sBAEF,YAAA,CAAa,KAAA,EAAO,MAAA,MAE7B,IAAA,GAEG,KAAA,EAAO,KAAA,CAAM,KAAA,eACb,MAAA,EACI,MAAA,CAAO,KAAA,EAAO,MAAA,IACd,YAAA,CAAa,KAAA,EAAO,MAAA;EAClB,EAAA;AAAA,YAEN,QAAA,GAAW,QAAA,CAAS,KAAA,EAAO,MAAA,EAAQ,SAAA,eACnC,OAAA,GAAU,OAAA,CAAQ,OAAA,CAAQ,SAAA,mBAG1B,MAAA,EACI,MAAA,CAAO,KAAA,EAAO,MAAA,IACd,YAAA,CAAa,KAAA,EAAO,MAAA;EAClB,EAAA;AAAA,YAEN,QAAA,GAAW,QAAA,CAAS,KAAA,EAAO,MAAA,EAAQ,SAAA,eACnC,OAAA,GAAU,OAAA,CAAQ,OAAA,CAAQ,SAAA,oBAE/B,SAAA;AAAA,cAoBG,WAAA,iBACW,OAAA,aACV,IAAA,GAEG,KAAA,EAAO,KAAA,CAAM,KAAA,eACb,MAAA,EACI,MAAA,CAAO,KAAA,EAAO,MAAA,IACd,YAAA,CAAa,KAAA,EAAO,MAAA;EAClB,EAAA;AAAA,eAIN,MAAA,EACI,MAAA,CAAO,KAAA,EAAO,MAAA,IACd,YAAA,CAAa,KAAA,EAAO,MAAA;EAClB,EAAA;AAAA,6BAID,YAAA,CAAa,KAAA,EAAO,MAAA,GAC/B,QAAA,GAAW,QAAA,CAAS,KAAA,EAAO,MAAA,EAAQ,SAAA,eACnC,OAAA,GAAU,OAAA,CAAQ,OAAA,CAAQ,SAAA,mBACzB,SAAA"}
@@ -0,0 +1,48 @@
1
+ import { t as isShallowEqual } from "./isShallowEqual-Kynsoe7a.js";
2
+ import { t as invariant } from "./invariant-BgWq7zZS.js";
3
+ import { n as identity, t as useTableWithSelector } from "./useTableWithSelector-D3f689pF.js";
4
+ import { t as runGetters } from "./runGetters-BfRTE7LZ.js";
5
+ import { t as hasTableArg } from "./hasTableArg-Bu3FbcSo.js";
6
+ import { useCallback } from "react";
7
+ //#region src/hooks/useHeader.ts
8
+ const headerValuesCache = /* @__PURE__ */ new WeakMap();
9
+ const headerHandlersCache = /* @__PURE__ */ new WeakMap();
10
+ const getHeaderValues = (table, headerId) => {
11
+ let headerCache = headerValuesCache.get(table.options);
12
+ if (!headerCache) {
13
+ headerCache = /* @__PURE__ */ new Map();
14
+ headerValuesCache.set(table.options, headerCache);
15
+ }
16
+ let cached = headerCache.get(headerId);
17
+ if (!cached) {
18
+ const header = table.getFlatHeaders().find((h) => h.id === headerId);
19
+ invariant(header);
20
+ let cachedHandlers = headerHandlersCache.get(header);
21
+ if (!cachedHandlers) {
22
+ cachedHandlers = { resizeHandler: header.getResizeHandler() };
23
+ headerHandlersCache.set(header, cachedHandlers);
24
+ }
25
+ const { resizeHandler } = cachedHandlers;
26
+ cached = {
27
+ ...runGetters(header),
28
+ resizeHandler
29
+ };
30
+ headerCache.set(headerId, cached);
31
+ }
32
+ return cached;
33
+ };
34
+ const useHeader = (...args) => {
35
+ const [table, headerOrId, selector = identity, isEqual = isShallowEqual] = hasTableArg(args) ? args : [void 0, ...args];
36
+ const headerId = typeof headerOrId === "string" ? headerOrId : headerOrId.id;
37
+ return useTableWithSelector(table, useCallback((table) => selector(getHeaderValues(table, headerId)), [headerId, selector]), isEqual);
38
+ };
39
+ const headerHook = useHeader;
40
+ const headerHookʹ = (...args) => (selector, isEqual) => headerHook(...[
41
+ ...args,
42
+ selector,
43
+ isEqual
44
+ ]);
45
+ //#endregion
46
+ export { useHeader, headerHookʹ as useHeaderʹ };
47
+
48
+ //# sourceMappingURL=useHeader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useHeader.js","names":[],"sources":["../src/hooks/useHeader.ts"],"sourcesContent":["import { useCallback } from \"react\"\n\nimport type {\n Header,\n RequiredKeys,\n RowData,\n Table,\n TableOptionsResolved,\n} from \"@tanstack/table-core\"\n\nimport { identity } from \"../lib/identity\"\nimport { hasTableArg } from \"../lib/hasTableArg\"\nimport { runGetters } from \"../lib/runGetters\"\nimport { isShallowEqual } from \"../lib/isShallowEqual\"\nimport { invariant } from \"../lib/invariant\"\n\nimport type { IsEqual, RunGetters } from \"../types\"\n\nimport { useTableWithSelector } from \"./useTableWithSelector\"\n\nexport interface HeaderValues<TData extends RowData, TValue> extends RunGetters<\n Header<TData, TValue>\n> {}\n\nconst headerValuesCache = new WeakMap<\n RequiredKeys<TableOptionsResolved<any>, \"state\">,\n Map<string, HeaderValues<any, any>>\n>()\n\nconst headerHandlersCache = new WeakMap<\n Header<any, any>,\n {\n resizeHandler: ReturnType<Header<any, any>[\"getResizeHandler\"]>\n }\n>()\n\nconst getHeaderValues = <TData extends RowData, TValue>(\n table: Table<TData>,\n headerId: string,\n): HeaderValues<TData, TValue> => {\n let headerCache = headerValuesCache.get(table.options)\n if (!headerCache) {\n headerCache = new Map()\n headerValuesCache.set(table.options, headerCache)\n }\n\n let cached = headerCache.get(headerId)\n\n if (!cached) {\n const header = table.getFlatHeaders().find((h) => h.id === headerId) as\n | Header<TData, TValue>\n | undefined\n\n invariant(header)\n\n let cachedHandlers = headerHandlersCache.get(header)\n if (!cachedHandlers) {\n cachedHandlers = {\n resizeHandler: header.getResizeHandler(),\n }\n headerHandlersCache.set(header, cachedHandlers)\n }\n\n const { resizeHandler } = cachedHandlers\n\n cached = {\n ...runGetters(header),\n resizeHandler,\n }\n\n headerCache.set(headerId, cached)\n }\n\n return cached\n}\n\ntype Selector<TData extends RowData, TValue, Selection> = (\n headerValues: HeaderValues<TData, TValue>,\n) => Selection\n\nexport const useHeader = <\n TData extends RowData,\n TValue,\n Selection = HeaderValues<TData, TValue>,\n>(\n ...args:\n | [\n table: Table<TData> | undefined,\n header:\n | Header<TData, TValue>\n | HeaderValues<TData, TValue>\n | { id: string }\n | string,\n selector?: Selector<TData, TValue, Selection> | undefined,\n isEqual?: IsEqual<NoInfer<Selection>> | undefined,\n ]\n | [\n header:\n | Header<TData, TValue>\n | HeaderValues<TData, TValue>\n | { id: string }\n | string,\n selector?: Selector<TData, TValue, Selection> | undefined,\n isEqual?: IsEqual<NoInfer<Selection>> | undefined,\n ]\n): Selection => {\n const [\n table,\n headerOrId,\n selector = identity as never,\n isEqual = isShallowEqual,\n ] = hasTableArg(args) ? args : [undefined, ...args]\n\n const headerId = typeof headerOrId === \"string\" ? headerOrId : headerOrId.id\n\n const getSelection = useCallback(\n (table: Table<TData>) => selector(getHeaderValues(table, headerId)),\n [headerId, selector],\n )\n\n return useTableWithSelector(table, getSelection, isEqual)\n}\n\nconst headerHook = useHeader\n\nconst headerHookʹ =\n <TData extends RowData, TValue>(\n ...args:\n | [\n table: Table<TData> | undefined,\n header:\n | Header<TData, TValue>\n | HeaderValues<TData, TValue>\n | { id: string }\n | string,\n ]\n | [\n header:\n | Header<TData, TValue>\n | HeaderValues<TData, TValue>\n | { id: string }\n | string,\n ]\n ) =>\n <Selection = HeaderValues<TData, TValue>>(\n selector?: Selector<TData, TValue, Selection> | undefined,\n isEqual?: IsEqual<NoInfer<Selection>> | undefined,\n ): Selection =>\n headerHook(...[...args, selector, isEqual])\n\nexport { headerHookʹ as useHeaderʹ }\n"],"mappings":";;;;;;;AAwBA,MAAM,oCAAoB,IAAI,QAG5B;AAEF,MAAM,sCAAsB,IAAI,QAK9B;AAEF,MAAM,mBACJ,OACA,aACgC;CAChC,IAAI,cAAc,kBAAkB,IAAI,MAAM,OAAO;CACrD,IAAI,CAAC,aAAa;EAChB,8BAAc,IAAI,IAAI;EACtB,kBAAkB,IAAI,MAAM,SAAS,WAAW;CAClD;CAEA,IAAI,SAAS,YAAY,IAAI,QAAQ;CAErC,IAAI,CAAC,QAAQ;EACX,MAAM,SAAS,MAAM,eAAe,EAAE,MAAM,MAAM,EAAE,OAAO,QAAQ;EAInE,UAAU,MAAM;EAEhB,IAAI,iBAAiB,oBAAoB,IAAI,MAAM;EACnD,IAAI,CAAC,gBAAgB;GACnB,iBAAiB,EACf,eAAe,OAAO,iBAAiB,EACzC;GACA,oBAAoB,IAAI,QAAQ,cAAc;EAChD;EAEA,MAAM,EAAE,kBAAkB;EAE1B,SAAS;GACP,GAAG,WAAW,MAAM;GACpB;EACF;EAEA,YAAY,IAAI,UAAU,MAAM;CAClC;CAEA,OAAO;AACT;AAMA,MAAa,aAKX,GAAG,SAoBW;CACd,MAAM,CACJ,OACA,YACA,WAAW,UACX,UAAU,kBACR,YAAY,IAAI,IAAI,OAAO,CAAC,KAAA,GAAW,GAAG,IAAI;CAElD,MAAM,WAAW,OAAO,eAAe,WAAW,aAAa,WAAW;CAO1E,OAAO,qBAAqB,OALP,aAClB,UAAwB,SAAS,gBAAgB,OAAO,QAAQ,CAAC,GAClE,CAAC,UAAU,QAAQ,CAGyB,GAAG,OAAO;AAC1D;AAEA,MAAM,aAAa;AAEnB,MAAM,eAEF,GAAG,UAkBH,UACA,YAEA,WAAW,GAAG;CAAC,GAAG;CAAM;CAAU;AAAO,CAAC"}
@@ -0,0 +1,70 @@
1
+ import { t as isShallowEqual } from "./isShallowEqual-Kynsoe7a.js";
2
+ import { n as tableRegistry, t as invariant } from "./invariant-BgWq7zZS.js";
3
+ import { createTable } from "@tanstack/table-core";
4
+ import * as React from "react";
5
+ import { useCallback, useState } from "react";
6
+ //#region src/lib/useShallowMemo.ts
7
+ const useShallowMemo = (next) => {
8
+ const [current, setCurrent] = useState(next);
9
+ if (!isShallowEqual(current, next)) setCurrent(next);
10
+ return current;
11
+ };
12
+ //#endregion
13
+ //#region src/lib/useLayoutEffect.ts
14
+ const useLayoutEffect = typeof document !== "undefined" ? React.useLayoutEffect : () => {};
15
+ //#endregion
16
+ //#region src/hooks/useReactTable.ts
17
+ const useReactTable = ({ state, ...options }) => {
18
+ const memoOptions = useShallowMemo(options);
19
+ const memoState = useShallowMemo(state);
20
+ const [internalState, setInternalState] = useState(null);
21
+ const onStateChange = useCallback((updater) => {
22
+ setInternalState(updater);
23
+ memoOptions.onStateChange?.call(void 0, updater);
24
+ }, [memoOptions.onStateChange]);
25
+ const [table] = useState(() => {
26
+ const table = createTable({
27
+ state: {},
28
+ onStateChange: () => {},
29
+ renderFallbackValue: null,
30
+ ...memoOptions
31
+ });
32
+ table.setOptions((prev) => ({
33
+ ...prev,
34
+ ...memoOptions,
35
+ state: {
36
+ ...table.initialState,
37
+ ...memoState
38
+ },
39
+ onStateChange
40
+ }));
41
+ tableRegistry.set(table, { listeners: /* @__PURE__ */ new Set() });
42
+ return table;
43
+ });
44
+ if (!internalState) setInternalState(table.initialState);
45
+ useLayoutEffect(() => {
46
+ table.setOptions((prev) => ({
47
+ ...prev,
48
+ ...memoOptions,
49
+ state: {
50
+ ...internalState,
51
+ ...memoState
52
+ },
53
+ onStateChange
54
+ }));
55
+ const { listeners } = tableRegistry.get(table) ?? {};
56
+ invariant(listeners);
57
+ for (const listener of listeners) listener();
58
+ }, [
59
+ memoOptions,
60
+ memoState,
61
+ onStateChange,
62
+ table,
63
+ internalState
64
+ ]);
65
+ return table;
66
+ };
67
+ //#endregion
68
+ export { useReactTable as t };
69
+
70
+ //# sourceMappingURL=useReactTable-Y2z5JrT_.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useReactTable-Y2z5JrT_.js","names":[],"sources":["../src/lib/useShallowMemo.ts","../src/lib/useLayoutEffect.ts","../src/hooks/useReactTable.ts"],"sourcesContent":["import { useState } from \"react\"\nimport { isShallowEqual } from \"./isShallowEqual\"\n\nexport const useShallowMemo = <T>(next: T): T => {\n\tconst [current, setCurrent] = useState(next)\n\n\tif (!isShallowEqual(current, next)) {\n\t\tsetCurrent(next)\n\t}\n\n\treturn current\n}\n","import * as React from 'react'\n\nexport const useLayoutEffect: (effect: React.EffectCallback, deps?: React.DependencyList) => void = typeof document !== 'undefined' ? React.useLayoutEffect : () => {}\n","import { useCallback, useState } from \"react\"\n\nimport {\n type OnChangeFn,\n type RowData,\n type Table,\n type TableOptions,\n type TableState,\n createTable,\n} from \"@tanstack/table-core\"\n\nimport { useShallowMemo } from \"../lib/useShallowMemo\"\nimport { tableRegistry } from \"../lib/tableRegistry\"\nimport { invariant } from \"../lib/invariant\"\nimport { useLayoutEffect } from \"../lib/useLayoutEffect\"\n\nexport const useReactTable = <TData extends RowData>({\n state,\n ...options\n}: TableOptions<TData>): Table<TData> => {\n const memoOptions = useShallowMemo(options)\n const memoState = useShallowMemo(state)\n\n // We'll maintain both our internal state and any user-provided\n // state.\n const [internalState, setInternalState] = useState<TableState>(null!)\n\n const onStateChange = useCallback<OnChangeFn<TableState>>(\n (updater) => {\n setInternalState(updater)\n memoOptions.onStateChange?.call(undefined, updater)\n },\n [memoOptions.onStateChange],\n )\n\n // Create a new table and store it in state\n const [table] = useState(() => {\n // Compose in the generic memoOptions to the user memoOptions\n const resolvedOptions = {\n state: {}, // Dummy state\n onStateChange: () => {}, // noop\n renderFallbackValue: null,\n ...memoOptions,\n }\n\n const table = createTable<TData>(resolvedOptions)\n\n table.setOptions((prev) => ({\n ...prev,\n ...memoOptions,\n state: {\n ...table.initialState,\n ...memoState,\n },\n onStateChange,\n }))\n\n tableRegistry.set(table, { listeners: new Set() })\n\n return table\n })\n\n if (!internalState) {\n setInternalState(table.initialState)\n }\n\n useLayoutEffect(() => {\n // Compose the default state above with any user state. This will allow the user\n // to only control a subset of the state if desired.\n table.setOptions((prev) => ({\n ...prev,\n ...memoOptions,\n state: {\n ...internalState,\n ...memoState,\n },\n onStateChange,\n }))\n\n const { listeners } = tableRegistry.get(table) ?? {}\n invariant(listeners)\n for (const listener of listeners) {\n listener()\n }\n }, [memoOptions, memoState, onStateChange, table, internalState])\n\n return table\n}\n"],"mappings":";;;;;;AAGA,MAAa,kBAAqB,SAAe;CAChD,MAAM,CAAC,SAAS,cAAc,SAAS,IAAI;CAE3C,IAAI,CAAC,eAAe,SAAS,IAAI,GAChC,WAAW,IAAI;CAGhB,OAAO;AACR;;;ACTA,MAAa,kBAAuF,OAAO,aAAa,cAAc,MAAM,wBAAwB,CAAC;;;ACcrK,MAAa,iBAAwC,EACnD,OACA,GAAG,cACoC;CACvC,MAAM,cAAc,eAAe,OAAO;CAC1C,MAAM,YAAY,eAAe,KAAK;CAItC,MAAM,CAAC,eAAe,oBAAoB,SAAqB,IAAK;CAEpE,MAAM,gBAAgB,aACnB,YAAY;EACX,iBAAiB,OAAO;EACxB,YAAY,eAAe,KAAK,KAAA,GAAW,OAAO;CACpD,GACA,CAAC,YAAY,aAAa,CAC5B;CAGA,MAAM,CAAC,SAAS,eAAe;EAS7B,MAAM,QAAQ,YAAmB;GAN/B,OAAO,CAAC;GACR,qBAAqB,CAAC;GACtB,qBAAqB;GACrB,GAAG;EAG0C,CAAC;EAEhD,MAAM,YAAY,UAAU;GAC1B,GAAG;GACH,GAAG;GACH,OAAO;IACL,GAAG,MAAM;IACT,GAAG;GACL;GACA;EACF,EAAE;EAEF,cAAc,IAAI,OAAO,EAAE,2BAAW,IAAI,IAAI,EAAE,CAAC;EAEjD,OAAO;CACT,CAAC;CAED,IAAI,CAAC,eACH,iBAAiB,MAAM,YAAY;CAGrC,sBAAsB;EAGpB,MAAM,YAAY,UAAU;GAC1B,GAAG;GACH,GAAG;GACH,OAAO;IACL,GAAG;IACH,GAAG;GACL;GACA;EACF,EAAE;EAEF,MAAM,EAAE,cAAc,cAAc,IAAI,KAAK,KAAK,CAAC;EACnD,UAAU,SAAS;EACnB,KAAK,MAAM,YAAY,WACrB,SAAS;CAEb,GAAG;EAAC;EAAa;EAAW;EAAe;EAAO;CAAa,CAAC;CAEhE,OAAO;AACT"}
@@ -0,0 +1,95 @@
1
+ //#region \0rolldown/runtime.js
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __copyProps = (to, from, except, desc) => {
9
+ if (from && typeof from === "object" || typeof from === "function") for (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) {
10
+ key = keys[i];
11
+ if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
12
+ get: ((k) => from[k]).bind(null, key),
13
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
14
+ });
15
+ }
16
+ return to;
17
+ };
18
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
19
+ value: mod,
20
+ enumerable: true
21
+ }) : target, mod));
22
+ //#endregion
23
+ const require_isShallowEqual = require("./isShallowEqual-D6PQ041u.cjs");
24
+ const require_invariant = require("./invariant-D8b385d_.cjs");
25
+ let _tanstack_table_core = require("@tanstack/table-core");
26
+ let react = require("react");
27
+ react = __toESM(react, 1);
28
+ //#region src/lib/useShallowMemo.ts
29
+ const useShallowMemo = (next) => {
30
+ const [current, setCurrent] = (0, react.useState)(next);
31
+ if (!require_isShallowEqual.isShallowEqual(current, next)) setCurrent(next);
32
+ return current;
33
+ };
34
+ //#endregion
35
+ //#region src/lib/useLayoutEffect.ts
36
+ const useLayoutEffect = typeof document !== "undefined" ? react.useLayoutEffect : () => {};
37
+ //#endregion
38
+ //#region src/hooks/useReactTable.ts
39
+ const useReactTable = ({ state, ...options }) => {
40
+ const memoOptions = useShallowMemo(options);
41
+ const memoState = useShallowMemo(state);
42
+ const [internalState, setInternalState] = (0, react.useState)(null);
43
+ const onStateChange = (0, react.useCallback)((updater) => {
44
+ setInternalState(updater);
45
+ memoOptions.onStateChange?.call(void 0, updater);
46
+ }, [memoOptions.onStateChange]);
47
+ const [table] = (0, react.useState)(() => {
48
+ const table = (0, _tanstack_table_core.createTable)({
49
+ state: {},
50
+ onStateChange: () => {},
51
+ renderFallbackValue: null,
52
+ ...memoOptions
53
+ });
54
+ table.setOptions((prev) => ({
55
+ ...prev,
56
+ ...memoOptions,
57
+ state: {
58
+ ...table.initialState,
59
+ ...memoState
60
+ },
61
+ onStateChange
62
+ }));
63
+ require_invariant.tableRegistry.set(table, { listeners: /* @__PURE__ */ new Set() });
64
+ return table;
65
+ });
66
+ if (!internalState) setInternalState(table.initialState);
67
+ useLayoutEffect(() => {
68
+ table.setOptions((prev) => ({
69
+ ...prev,
70
+ ...memoOptions,
71
+ state: {
72
+ ...internalState,
73
+ ...memoState
74
+ },
75
+ onStateChange
76
+ }));
77
+ const { listeners } = require_invariant.tableRegistry.get(table) ?? {};
78
+ require_invariant.invariant(listeners);
79
+ for (const listener of listeners) listener();
80
+ }, [
81
+ memoOptions,
82
+ memoState,
83
+ onStateChange,
84
+ table,
85
+ internalState
86
+ ]);
87
+ return table;
88
+ };
89
+ //#endregion
90
+ Object.defineProperty(exports, "useReactTable", {
91
+ enumerable: true,
92
+ get: function() {
93
+ return useReactTable;
94
+ }
95
+ });
@@ -0,0 +1,3 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ const require_useReactTable = require("./useReactTable-nxQRPiMU.cjs");
3
+ exports.useReactTable = require_useReactTable.useReactTable;
@@ -0,0 +1,10 @@
1
+ import { RowData, Table, TableOptions } from "@tanstack/table-core";
2
+
3
+ //#region src/hooks/useReactTable.d.ts
4
+ declare const useReactTable: <TData extends RowData>({
5
+ state,
6
+ ...options
7
+ }: TableOptions<TData>) => Table<TData>;
8
+ //#endregion
9
+ export { useReactTable };
10
+ //# sourceMappingURL=useReactTable.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useReactTable.d.cts","names":[],"sources":["../src/hooks/useReactTable.ts"],"mappings":";;;cAgBa,aAAA,iBAA+B,OAAA;EAC1C,KAAA;EAAA,GACG;AAAA,GACF,YAAA,CAAa,KAAA,MAAS,KAAA,CAAM,KAAA"}
@@ -0,0 +1,10 @@
1
+ import { RowData, Table, TableOptions } from "@tanstack/table-core";
2
+
3
+ //#region src/hooks/useReactTable.d.ts
4
+ declare const useReactTable: <TData extends RowData>({
5
+ state,
6
+ ...options
7
+ }: TableOptions<TData>) => Table<TData>;
8
+ //#endregion
9
+ export { useReactTable };
10
+ //# sourceMappingURL=useReactTable.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useReactTable.d.ts","names":[],"sources":["../src/hooks/useReactTable.ts"],"mappings":";;;cAgBa,aAAA,iBAA+B,OAAA;EAC1C,KAAA;EAAA,GACG;AAAA,GACF,YAAA,CAAa,KAAA,MAAS,KAAA,CAAM,KAAA"}
@@ -0,0 +1,2 @@
1
+ import { t as useReactTable } from "./useReactTable-Y2z5JrT_.js";
2
+ export { useReactTable };
@@ -0,0 +1,54 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ const require_isShallowEqual = require("./isShallowEqual-D6PQ041u.cjs");
3
+ const require_useTableWithSelector = require("./useTableWithSelector-Bdsf6Zxk.cjs");
4
+ const require_runGetters = require("./runGetters-Q-UsPG2j.cjs");
5
+ const require_hasTableArg = require("./hasTableArg-dMtayKWH.cjs");
6
+ let react = require("react");
7
+ //#region src/hooks/useRow.ts
8
+ const hookRowCache = /* @__PURE__ */ new WeakMap();
9
+ const rowHandlersCache = /* @__PURE__ */ new WeakMap();
10
+ const getRowValues = (table, rowId) => {
11
+ let rowCache = hookRowCache.get(table.options);
12
+ if (!rowCache) {
13
+ rowCache = /* @__PURE__ */ new Map();
14
+ hookRowCache.set(table.options, rowCache);
15
+ }
16
+ let cached = rowCache.get(rowId);
17
+ if (!cached) {
18
+ const row = table.getRow(rowId);
19
+ let cachedHandlers = rowHandlersCache.get(row);
20
+ if (!cachedHandlers) {
21
+ cachedHandlers = {
22
+ toggleExpandedHandler: row.getToggleExpandedHandler(),
23
+ toggleSelectedHandler: row.getToggleSelectedHandler()
24
+ };
25
+ rowHandlersCache.set(row, cachedHandlers);
26
+ }
27
+ const { toggleExpandedHandler, toggleSelectedHandler } = cachedHandlers;
28
+ const { getGroupingValue, getUniqueValues, getValue, ...rest } = row;
29
+ cached = {
30
+ ...require_runGetters.runGetters(rest),
31
+ getGroupingValue,
32
+ getUniqueValues,
33
+ getValue,
34
+ toggleExpandedHandler,
35
+ toggleSelectedHandler
36
+ };
37
+ rowCache.set(rowId, cached);
38
+ }
39
+ return cached;
40
+ };
41
+ const useRow = (...args) => {
42
+ const [table, rowOrId, selector = require_useTableWithSelector.identity, isEqual = require_isShallowEqual.isShallowEqual] = require_hasTableArg.hasTableArg(args) ? args : [void 0, ...args];
43
+ const rowId = typeof rowOrId === "string" ? rowOrId : rowOrId.id;
44
+ return require_useTableWithSelector.useTableWithSelector(table, (0, react.useCallback)((table) => selector(getRowValues(table, rowId)), [rowId, selector]), isEqual);
45
+ };
46
+ const rowHook = useRow;
47
+ const rowHookʹ = (...args) => (selector, isEqual) => rowHook(...[
48
+ ...args,
49
+ selector,
50
+ isEqual
51
+ ]);
52
+ //#endregion
53
+ exports.useRow = useRow;
54
+ exports.useRowʹ = rowHookʹ;
@@ -0,0 +1,19 @@
1
+ import { n as RunGetters, t as IsEqual } from "./types-DIWB6wdO.cjs";
2
+ import { Row, RowData, Table } from "@tanstack/table-core";
3
+
4
+ //#region src/hooks/useRow.d.ts
5
+ interface RowValues<TData extends RowData> extends RunGetters<Row<TData>> {}
6
+ type Selector<TData extends RowData, Selection> = (rowValues: RowValues<TData>) => Selection;
7
+ declare const useRow: <TData extends RowData, Selection = RowValues<TData>>(...args: [table: Table<TData> | undefined, row: Row<TData> | RowValues<TData> | {
8
+ id: string;
9
+ } | string, selector?: Selector<TData, Selection> | undefined, isEqual?: IsEqual<NoInfer<Selection>> | undefined] | [row: Row<TData> | RowValues<TData> | {
10
+ id: string;
11
+ } | string, selector?: Selector<TData, Selection> | undefined, isEqual?: IsEqual<NoInfer<Selection>> | undefined]) => Selection;
12
+ declare const rowHookʹ: <TData extends RowData>(...args: [table: Table<TData> | undefined, row: Row<TData> | RowValues<TData> | {
13
+ id: string;
14
+ } | string] | [row: Row<TData> | RowValues<TData> | {
15
+ id: string;
16
+ } | string]) => <Selection = RowValues<TData>>(selector?: Selector<TData, Selection> | undefined, isEqual?: IsEqual<NoInfer<Selection>> | undefined) => Selection;
17
+ //#endregion
18
+ export { RowValues, useRow, rowHookʹ as useRowʹ };
19
+ //# sourceMappingURL=useRow.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useRow.d.cts","names":[],"sources":["../src/hooks/useRow.ts"],"mappings":";;;;UAmBiB,SAAA,eAAwB,OAAA,UAAiB,UAAA,CACxD,GAAA,CAAI,KAAA;AAAA,KA2DD,QAAA,eAAuB,OAAA,gBAC1B,SAAA,EAAW,SAAA,CAAU,KAAA,MAClB,SAAA;AAAA,cAEQ,MAAA,iBAAwB,OAAA,cAAqB,SAAA,CAAU,KAAA,MAC/D,IAAA,GAEG,KAAA,EAAO,KAAA,CAAM,KAAA,eACb,GAAA,EAAK,GAAA,CAAI,KAAA,IAAS,SAAA,CAAU,KAAA;EAAW,EAAA;AAAA,YACvC,QAAA,GAAW,QAAA,CAAS,KAAA,EAAO,SAAA,eAC3B,OAAA,GAAU,OAAA,CAAQ,OAAA,CAAQ,SAAA,mBAG1B,GAAA,EAAK,GAAA,CAAI,KAAA,IAAS,SAAA,CAAU,KAAA;EAAW,EAAA;AAAA,YACvC,QAAA,GAAW,QAAA,CAAS,KAAA,EAAO,SAAA,eAC3B,OAAA,GAAU,OAAA,CAAQ,OAAA,CAAQ,SAAA,oBAE/B,SAAA;AAAA,cAoBG,QAAA,iBACW,OAAA,KACV,IAAA,GAEG,KAAA,EAAO,KAAA,CAAM,KAAA,eACb,GAAA,EAAK,GAAA,CAAI,KAAA,IAAS,SAAA,CAAU,KAAA;EAAW,EAAA;AAAA,eAExC,GAAA,EAAK,GAAA,CAAI,KAAA,IAAS,SAAA,CAAU,KAAA;EAAW,EAAA;AAAA,6BAEjC,SAAA,CAAU,KAAA,GACrB,QAAA,GAAW,QAAA,CAAS,KAAA,EAAO,SAAA,eAC3B,OAAA,GAAU,OAAA,CAAQ,OAAA,CAAQ,SAAA,mBACzB,SAAA"}
@@ -0,0 +1,19 @@
1
+ import { n as RunGetters, t as IsEqual } from "./types-DIWB6wdO.js";
2
+ import { Row, RowData, Table } from "@tanstack/table-core";
3
+
4
+ //#region src/hooks/useRow.d.ts
5
+ interface RowValues<TData extends RowData> extends RunGetters<Row<TData>> {}
6
+ type Selector<TData extends RowData, Selection> = (rowValues: RowValues<TData>) => Selection;
7
+ declare const useRow: <TData extends RowData, Selection = RowValues<TData>>(...args: [table: Table<TData> | undefined, row: Row<TData> | RowValues<TData> | {
8
+ id: string;
9
+ } | string, selector?: Selector<TData, Selection> | undefined, isEqual?: IsEqual<NoInfer<Selection>> | undefined] | [row: Row<TData> | RowValues<TData> | {
10
+ id: string;
11
+ } | string, selector?: Selector<TData, Selection> | undefined, isEqual?: IsEqual<NoInfer<Selection>> | undefined]) => Selection;
12
+ declare const rowHookʹ: <TData extends RowData>(...args: [table: Table<TData> | undefined, row: Row<TData> | RowValues<TData> | {
13
+ id: string;
14
+ } | string] | [row: Row<TData> | RowValues<TData> | {
15
+ id: string;
16
+ } | string]) => <Selection = RowValues<TData>>(selector?: Selector<TData, Selection> | undefined, isEqual?: IsEqual<NoInfer<Selection>> | undefined) => Selection;
17
+ //#endregion
18
+ export { RowValues, useRow, rowHookʹ as useRowʹ };
19
+ //# sourceMappingURL=useRow.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useRow.d.ts","names":[],"sources":["../src/hooks/useRow.ts"],"mappings":";;;;UAmBiB,SAAA,eAAwB,OAAA,UAAiB,UAAA,CACxD,GAAA,CAAI,KAAA;AAAA,KA2DD,QAAA,eAAuB,OAAA,gBAC1B,SAAA,EAAW,SAAA,CAAU,KAAA,MAClB,SAAA;AAAA,cAEQ,MAAA,iBAAwB,OAAA,cAAqB,SAAA,CAAU,KAAA,MAC/D,IAAA,GAEG,KAAA,EAAO,KAAA,CAAM,KAAA,eACb,GAAA,EAAK,GAAA,CAAI,KAAA,IAAS,SAAA,CAAU,KAAA;EAAW,EAAA;AAAA,YACvC,QAAA,GAAW,QAAA,CAAS,KAAA,EAAO,SAAA,eAC3B,OAAA,GAAU,OAAA,CAAQ,OAAA,CAAQ,SAAA,mBAG1B,GAAA,EAAK,GAAA,CAAI,KAAA,IAAS,SAAA,CAAU,KAAA;EAAW,EAAA;AAAA,YACvC,QAAA,GAAW,QAAA,CAAS,KAAA,EAAO,SAAA,eAC3B,OAAA,GAAU,OAAA,CAAQ,OAAA,CAAQ,SAAA,oBAE/B,SAAA;AAAA,cAoBG,QAAA,iBACW,OAAA,KACV,IAAA,GAEG,KAAA,EAAO,KAAA,CAAM,KAAA,eACb,GAAA,EAAK,GAAA,CAAI,KAAA,IAAS,SAAA,CAAU,KAAA;EAAW,EAAA;AAAA,eAExC,GAAA,EAAK,GAAA,CAAI,KAAA,IAAS,SAAA,CAAU,KAAA;EAAW,EAAA;AAAA,6BAEjC,SAAA,CAAU,KAAA,GACrB,QAAA,GAAW,QAAA,CAAS,KAAA,EAAO,SAAA,eAC3B,OAAA,GAAU,OAAA,CAAQ,OAAA,CAAQ,SAAA,mBACzB,SAAA"}