react-hook-tanstack-table 0.0.2 → 0.0.4

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 (85) hide show
  1. package/README.md +4 -0
  2. package/dist/TableContext.cjs +1 -6
  3. package/dist/TableContext.js +1 -7
  4. package/dist/TableContext.js.map +1 -1
  5. package/dist/index.cjs +1 -40
  6. package/dist/index.d.cts +1 -2
  7. package/dist/index.d.ts +1 -2
  8. package/dist/index.js +1 -11
  9. package/dist/invariant-BzSvgtnX.cjs +1 -0
  10. package/dist/invariant-DhtaPrYv.js +2 -0
  11. package/dist/invariant-DhtaPrYv.js.map +1 -0
  12. package/dist/useCell.cjs +1 -53
  13. package/dist/useCell.d.cts +9 -9
  14. package/dist/useCell.d.cts.map +1 -1
  15. package/dist/useCell.d.ts +9 -9
  16. package/dist/useCell.d.ts.map +1 -1
  17. package/dist/useCell.js +1 -52
  18. package/dist/useCell.js.map +1 -1
  19. package/dist/useColumn.cjs +1 -54
  20. package/dist/useColumn.d.cts +8 -8
  21. package/dist/useColumn.d.cts.map +1 -1
  22. package/dist/useColumn.d.ts +8 -8
  23. package/dist/useColumn.d.ts.map +1 -1
  24. package/dist/useColumn.js +1 -53
  25. package/dist/useColumn.js.map +1 -1
  26. package/dist/useHeader.cjs +1 -48
  27. package/dist/useHeader.d.cts +8 -8
  28. package/dist/useHeader.d.cts.map +1 -1
  29. package/dist/useHeader.d.ts +8 -8
  30. package/dist/useHeader.d.ts.map +1 -1
  31. package/dist/useHeader.js +1 -47
  32. package/dist/useHeader.js.map +1 -1
  33. package/dist/useReactTable-2xEFEdvR.js +2 -0
  34. package/dist/{useReactTable-Y2z5JrT_.js.map → useReactTable-2xEFEdvR.js.map} +1 -1
  35. package/dist/useReactTable-BnYobIs-.cjs +1 -0
  36. package/dist/useReactTable.cjs +1 -3
  37. package/dist/useReactTable.js +1 -2
  38. package/dist/useRow.cjs +1 -54
  39. package/dist/useRow.d.cts +8 -8
  40. package/dist/useRow.d.cts.map +1 -1
  41. package/dist/useRow.d.ts +8 -8
  42. package/dist/useRow.d.ts.map +1 -1
  43. package/dist/useRow.js +1 -53
  44. package/dist/useRow.js.map +1 -1
  45. package/dist/useTable.cjs +1 -44
  46. package/dist/useTable.d.cts +5 -5
  47. package/dist/useTable.d.cts.map +1 -1
  48. package/dist/useTable.d.ts +5 -5
  49. package/dist/useTable.d.ts.map +1 -1
  50. package/dist/useTable.js +1 -43
  51. package/dist/useTable.js.map +1 -1
  52. package/dist/useTableBase-BLBisaqE.cjs +1 -0
  53. package/dist/useTableBase-CgF6IzQm.js +2 -0
  54. package/dist/useTableBase-CgF6IzQm.js.map +1 -0
  55. package/package.json +1 -5
  56. package/src/hooks/useCell.ts +41 -30
  57. package/src/hooks/useColumn.ts +32 -22
  58. package/src/hooks/useHeader.ts +32 -22
  59. package/src/hooks/useRow.ts +20 -14
  60. package/src/hooks/useTable.ts +14 -13
  61. package/src/index.ts +0 -1
  62. package/src/{hooks/useTableWithSelector.ts → lib/useTableBase.ts} +5 -5
  63. package/dist/hasTableArg-Bu3FbcSo.js +0 -8
  64. package/dist/hasTableArg-Bu3FbcSo.js.map +0 -1
  65. package/dist/hasTableArg-dMtayKWH.cjs +0 -11
  66. package/dist/invariant-BgWq7zZS.js +0 -12
  67. package/dist/invariant-BgWq7zZS.js.map +0 -1
  68. package/dist/invariant-D8b385d_.cjs +0 -21
  69. package/dist/isShallowEqual-D6PQ041u.cjs +0 -36
  70. package/dist/isShallowEqual-Kynsoe7a.js +0 -33
  71. package/dist/isShallowEqual-Kynsoe7a.js.map +0 -1
  72. package/dist/runGetters-BfRTE7LZ.js +0 -16
  73. package/dist/runGetters-BfRTE7LZ.js.map +0 -1
  74. package/dist/runGetters-Q-UsPG2j.cjs +0 -19
  75. package/dist/useReactTable-Y2z5JrT_.js +0 -70
  76. package/dist/useReactTable-nxQRPiMU.cjs +0 -95
  77. package/dist/useTableWithSelector-Bdsf6Zxk.cjs +0 -79
  78. package/dist/useTableWithSelector-D3f689pF.js +0 -70
  79. package/dist/useTableWithSelector-D3f689pF.js.map +0 -1
  80. package/dist/useTableWithSelector.cjs +0 -3
  81. package/dist/useTableWithSelector.d.cts +0 -8
  82. package/dist/useTableWithSelector.d.cts.map +0 -1
  83. package/dist/useTableWithSelector.d.ts +0 -8
  84. package/dist/useTableWithSelector.d.ts.map +0 -1
  85. package/dist/useTableWithSelector.js +0 -2
package/README.md CHANGED
@@ -76,3 +76,7 @@ const Cell = ({ column, rowId }: { columnId: string, rowId: string }) => {
76
76
  const cellValue = useCell({ column: columnId, row: rowId }, (cell) => cell.value)
77
77
  }
78
78
  ```
79
+
80
+ ## See also
81
+
82
+ If you use [TanStack Virtual](https://tanstack.com/Virtual), you may be interested in our sister package, [`react-hook-tanstack-virtual`](https://www.npmjs.com/package/react-hook-tanstack-virtual).
@@ -1,6 +1 @@
1
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- //#region src/contexts/TableContext.ts
3
- const TableContext = (0, require("react").createContext)(null);
4
- TableContext.displayName = "TableContext";
5
- //#endregion
6
- exports.TableContext = TableContext;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=(0,require("react").createContext)(null);e.displayName=`TableContext`,exports.TableContext=e;
@@ -1,8 +1,2 @@
1
- import { createContext } from "react";
2
- //#region src/contexts/TableContext.ts
3
- const TableContext = createContext(null);
4
- TableContext.displayName = "TableContext";
5
- //#endregion
6
- export { TableContext };
7
-
1
+ import{createContext as e}from"react";const t=e(null);t.displayName=`TableContext`;export{t as TableContext};
8
2
  //# sourceMappingURL=TableContext.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TableContext.js","names":[],"sources":["../src/contexts/TableContext.ts"],"sourcesContent":["import { createContext } from \"react\"\n\nimport type { Table } from \"@tanstack/table-core\"\n\nexport const TableContext: React.Context<Table<any> | null> = createContext<Table<any> | null>(null)\n\nTableContext.displayName = \"TableContext\"\n"],"mappings":";;AAIA,MAAa,eAAiD,cAAiC,IAAI;AAEnG,aAAa,cAAc"}
1
+ {"version":3,"file":"TableContext.js","names":[],"sources":["../src/contexts/TableContext.ts"],"sourcesContent":["import { createContext } from \"react\"\n\nimport type { Table } from \"@tanstack/table-core\"\n\nexport const TableContext: React.Context<Table<any> | null> = createContext<Table<any> | null>(null)\n\nTableContext.displayName = \"TableContext\"\n"],"mappings":"sCAIA,MAAa,EAAiD,EAAiC,IAAI,EAEnG,EAAa,YAAc"}
package/dist/index.cjs CHANGED
@@ -1,40 +1 @@
1
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_useReactTable = require("./useReactTable-nxQRPiMU.cjs");
3
- const require_TableContext = require("./TableContext.cjs");
4
- const require_useTableWithSelector = require("./useTableWithSelector-Bdsf6Zxk.cjs");
5
- const require_useTable = require("./useTable.cjs");
6
- const require_useHeader = require("./useHeader.cjs");
7
- const require_useColumn = require("./useColumn.cjs");
8
- const require_useRow = require("./useRow.cjs");
9
- const require_useCell = require("./useCell.cjs");
10
- exports.TableContext = require_TableContext.TableContext;
11
- exports.useCell = require_useCell.useCell;
12
- exports.useCellʹ = require_useCell.useCellʹ;
13
- exports.useColumn = require_useColumn.useColumn;
14
- exports.useColumnʹ = require_useColumn.useColumnʹ;
15
- exports.useHeader = require_useHeader.useHeader;
16
- exports.useHeaderʹ = require_useHeader.useHeaderʹ;
17
- exports.useReactTable = require_useReactTable.useReactTable;
18
- exports.useRow = require_useRow.useRow;
19
- exports.useRowʹ = require_useRow.useRowʹ;
20
- exports.useTable = require_useTable.useTable;
21
- exports.useTableWithSelector = require_useTableWithSelector.useTableWithSelector;
22
- exports.useTableʹ = require_useTable.useTableʹ;
23
- var _tanstack_table_core = require("@tanstack/table-core");
24
- Object.keys(_tanstack_table_core).forEach(function(k) {
25
- if (k !== "default" && !Object.prototype.hasOwnProperty.call(exports, k)) Object.defineProperty(exports, k, {
26
- enumerable: true,
27
- get: function() {
28
- return _tanstack_table_core[k];
29
- }
30
- });
31
- });
32
- var _tanstack_react_table = require("@tanstack/react-table");
33
- Object.keys(_tanstack_react_table).forEach(function(k) {
34
- if (k !== "default" && !Object.prototype.hasOwnProperty.call(exports, k)) Object.defineProperty(exports, k, {
35
- enumerable: true,
36
- get: function() {
37
- return _tanstack_react_table[k];
38
- }
39
- });
40
- });
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./useReactTable-BnYobIs-.cjs"),t=require("./TableContext.cjs"),n=require("./useTable.cjs"),r=require("./useHeader.cjs"),i=require("./useColumn.cjs"),a=require("./useRow.cjs"),o=require("./useCell.cjs");exports.TableContext=t.TableContext,exports.useCell=o.useCell,exports.useCellʹ=o.useCellʹ,exports.useColumn=i.useColumn,exports.useColumnʹ=i.useColumnʹ,exports.useHeader=r.useHeader,exports.useHeaderʹ=r.useHeaderʹ,exports.useReactTable=e.t,exports.useRow=a.useRow,exports.useRowʹ=a.useRowʹ,exports.useTable=n.useTable,exports.useTableʹ=n.useTableʹ;var s=require("@tanstack/table-core");Object.keys(s).forEach(function(e){e!=="default"&&!Object.prototype.hasOwnProperty.call(exports,e)&&Object.defineProperty(exports,e,{enumerable:!0,get:function(){return s[e]}})});var c=require("@tanstack/react-table");Object.keys(c).forEach(function(e){e!=="default"&&!Object.prototype.hasOwnProperty.call(exports,e)&&Object.defineProperty(exports,e,{enumerable:!0,get:function(){return c[e]}})});
package/dist/index.d.cts CHANGED
@@ -5,7 +5,6 @@ import { useCell, useCellʹ as cellHookʹ } from "./useCell.cjs";
5
5
  import { useHeader, useHeaderʹ as headerHookʹ } from "./useHeader.cjs";
6
6
  import { useReactTable } from "./useReactTable.cjs";
7
7
  import { useTable, useTableʹ as tableHookʹ } from "./useTable.cjs";
8
- import { useTableWithSelector } from "./useTableWithSelector.cjs";
9
8
  export * from "@tanstack/table-core";
10
9
  export * from "@tanstack/react-table";
11
- export { TableContext, useCell, cellHookʹ as useCellʹ, useColumn, columnHookʹ as useColumnʹ, useHeader, headerHookʹ as useHeaderʹ, useReactTable, useRow, rowHookʹ as useRowʹ, useTable, useTableWithSelector, tableHookʹ as useTableʹ };
10
+ export { TableContext, useCell, cellHookʹ as useCellʹ, useColumn, columnHookʹ as useColumnʹ, useHeader, headerHookʹ as useHeaderʹ, useReactTable, useRow, rowHookʹ as useRowʹ, useTable, tableHookʹ as useTableʹ };
package/dist/index.d.ts CHANGED
@@ -5,7 +5,6 @@ import { useCell, useCellʹ as cellHookʹ } from "./useCell.js";
5
5
  import { useHeader, useHeaderʹ as headerHookʹ } from "./useHeader.js";
6
6
  import { useReactTable } from "./useReactTable.js";
7
7
  import { useTable, useTableʹ as tableHookʹ } from "./useTable.js";
8
- import { useTableWithSelector } from "./useTableWithSelector.js";
9
8
  export * from "@tanstack/table-core";
10
9
  export * from "@tanstack/react-table";
11
- export { TableContext, useCell, cellHookʹ as useCellʹ, useColumn, columnHookʹ as useColumnʹ, useHeader, headerHookʹ as useHeaderʹ, useReactTable, useRow, rowHookʹ as useRowʹ, useTable, useTableWithSelector, tableHookʹ as useTableʹ };
10
+ export { TableContext, useCell, cellHookʹ as useCellʹ, useColumn, columnHookʹ as useColumnʹ, useHeader, headerHookʹ as useHeaderʹ, useReactTable, useRow, rowHookʹ as useRowʹ, useTable, tableHookʹ as useTableʹ };
package/dist/index.js CHANGED
@@ -1,11 +1 @@
1
- import { TableContext } from "./TableContext.js";
2
- import { t as useReactTable } from "./useReactTable-Y2z5JrT_.js";
3
- import { t as useTableWithSelector } from "./useTableWithSelector-D3f689pF.js";
4
- import { useTable, useTableʹ as tableHookʹ } from "./useTable.js";
5
- import { useHeader, useHeaderʹ as headerHookʹ } from "./useHeader.js";
6
- import { useColumn, useColumnʹ as columnHookʹ } from "./useColumn.js";
7
- import { useRow, useRowʹ as rowHookʹ } from "./useRow.js";
8
- import { useCell, useCellʹ as cellHookʹ } from "./useCell.js";
9
- export * from "@tanstack/table-core";
10
- export * from "@tanstack/react-table";
11
- export { TableContext, useCell, cellHookʹ as useCellʹ, useColumn, columnHookʹ as useColumnʹ, useHeader, headerHookʹ as useHeaderʹ, useReactTable, useRow, rowHookʹ as useRowʹ, useTable, useTableWithSelector, tableHookʹ as useTableʹ };
1
+ import{TableContext as e}from"./TableContext.js";import{t}from"./useReactTable-2xEFEdvR.js";import{useTable as n,useTableʹ as r}from"./useTable.js";import{useHeader as i,useHeaderʹ as a}from"./useHeader.js";import{useColumn as o,useColumnʹ as s}from"./useColumn.js";import{useRow as c,useRowʹ as l}from"./useRow.js";import{useCell as u,useCellʹ as d}from"./useCell.js";export*from"@tanstack/table-core";export*from"@tanstack/react-table";export{e as TableContext,u as useCell,d as useCellʹ,o as useColumn,s as useColumnʹ,i as useHeader,a as useHeaderʹ,t as useReactTable,c as useRow,l as useRowʹ,n as useTable,r as useTableʹ};
@@ -0,0 +1 @@
1
+ const e=(e,t)=>{if(e.size!==t.size)return!1;for(let[n,r]of e){let e=t.get(n);if(r!==e||!Object.is(r,e))return!1}return!0},t=(e,t)=>{if(e.size!==t.size)return!1;for(let n of e)if(!t.has(n))return!1;return!0},n=(n,r)=>{if(n===r||Object.is(n,r))return!0;if(typeof n!=`object`||!n||typeof r!=`object`||!r)return!1;if(n instanceof Map&&r instanceof Map)return e(n,r);if(n instanceof Set&&r instanceof Set)return t(n,r);let i=Object.keys(n);if(i.length!==Object.keys(r).length)return!1;for(let e of i){if(!Object.hasOwn(r,e))return!1;let{[e]:t}=n,{[e]:i}=r;if(t!==i||!Object.is(t,i))return!1}return!0},r=new WeakMap;function i(e,t){if(!e)throw Error([`Invariant failed`,typeof t==`function`?t():t].filter(Boolean).join(`: `))}Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return r}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return n}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return i}});
@@ -0,0 +1,2 @@
1
+ const e=(e,t)=>{if(e.size!==t.size)return!1;for(let[n,r]of e){let e=t.get(n);if(r!==e||!Object.is(r,e))return!1}return!0},t=(e,t)=>{if(e.size!==t.size)return!1;for(let n of e)if(!t.has(n))return!1;return!0},n=(n,r)=>{if(n===r||Object.is(n,r))return!0;if(typeof n!=`object`||!n||typeof r!=`object`||!r)return!1;if(n instanceof Map&&r instanceof Map)return e(n,r);if(n instanceof Set&&r instanceof Set)return t(n,r);let i=Object.keys(n);if(i.length!==Object.keys(r).length)return!1;for(let e of i){if(!Object.hasOwn(r,e))return!1;let{[e]:t}=n,{[e]:i}=r;if(t!==i||!Object.is(t,i))return!1}return!0},r=new WeakMap;function i(e,t){if(!e)throw Error([`Invariant failed`,typeof t==`function`?t():t].filter(Boolean).join(`: `))}export{r as n,n as r,i as t};
2
+ //# sourceMappingURL=invariant-DhtaPrYv.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"invariant-DhtaPrYv.js","names":[],"sources":["../src/lib/isShallowEqual.ts","../src/lib/tableRegistry.ts","../src/lib/invariant.ts"],"sourcesContent":["const isMapShallowEqual = (\n a: ReadonlyMap<unknown, unknown>,\n b: ReadonlyMap<unknown, unknown>,\n): boolean => {\n if (a.size !== b.size) {\n return false;\n }\n\n for (const [key, value] of a) {\n const valueB = b.get(key);\n if (value !== valueB || !Object.is(value, valueB)) {\n return false;\n }\n }\n\n return true;\n}\n\nconst isSetShallowEqual = (\n a: ReadonlySet<unknown>,\n b: ReadonlySet<unknown>,\n): boolean => {\n if (a.size !== b.size) {\n return false;\n }\n\n for (const value of a) {\n if (!b.has(value)) {\n return false;\n }\n }\n\n return true;\n}\n\nexport const isShallowEqual = <T> (a: T, b: T): boolean => {\n if (a === b || Object.is(a, b)) {\n return true;\n }\n\n if (\n typeof a !== \"object\" ||\n a === null ||\n typeof b !== \"object\" ||\n b === null\n ) {\n return false;\n }\n\n if (a instanceof Map && b instanceof Map) {\n return isMapShallowEqual(a, b);\n }\n\n if (a instanceof Set && b instanceof Set) {\n return isSetShallowEqual(a, b);\n }\n\n const keys = Object.keys(a);\n if (keys.length !== Object.keys(b).length) {\n return false;\n }\n\n for (const key of keys) {\n if (!Object.hasOwn(b, key)) {\n return false;\n }\n\n const { [key as keyof T]: valueA } = a;\n const { [key as keyof T]: valueB } = b;\n\n if (valueA !== valueB || !Object.is(valueA, valueB)) {\n return false;\n }\n }\n\n return true;\n}\n","import type { Table } from \"@tanstack/table-core\"\n\nexport const tableRegistry: WeakMap<Table<any>, { listeners: Set<() => void> }> = new WeakMap()\n","export function invariant(\n\tcondition: any,\n\tmessage?: string | (() => string) | undefined\n): asserts condition {\n if (condition) return\n throw new Error(\n\t\t[\n\t\t\t'Invariant failed',\n\t\t\ttypeof message === 'function' ? message() : message\n\t\t].filter(Boolean).join(': ')\n\t);\n}\n"],"mappings":"AAAA,MAAM,GACJ,EACA,IACY,CACZ,GAAI,EAAE,OAAS,EAAE,KACf,MAAO,GAGT,IAAK,GAAM,CAAC,EAAK,KAAU,EAAG,CAC5B,IAAM,EAAS,EAAE,IAAI,CAAG,EACxB,GAAI,IAAU,GAAU,CAAC,OAAO,GAAG,EAAO,CAAM,EAC9C,MAAO,EAEX,CAEA,MAAO,EACT,EAEM,GACJ,EACA,IACY,CACZ,GAAI,EAAE,OAAS,EAAE,KACf,MAAO,GAGT,IAAK,IAAM,KAAS,EAClB,GAAI,CAAC,EAAE,IAAI,CAAK,EACd,MAAO,GAIX,MAAO,EACT,EAEa,GAAsB,EAAM,IAAkB,CACzD,GAAI,IAAM,GAAK,OAAO,GAAG,EAAG,CAAC,EAC3B,MAAO,GAGT,GACE,OAAO,GAAM,WACb,GACA,OAAO,GAAM,WACb,EAEA,MAAO,GAGT,GAAI,aAAa,KAAO,aAAa,IACnC,OAAO,EAAkB,EAAG,CAAC,EAG/B,GAAI,aAAa,KAAO,aAAa,IACnC,OAAO,EAAkB,EAAG,CAAC,EAG/B,IAAM,EAAO,OAAO,KAAK,CAAC,EAC1B,GAAI,EAAK,SAAW,OAAO,KAAK,CAAC,EAAE,OACjC,MAAO,GAGT,IAAK,IAAM,KAAO,EAAM,CACtB,GAAI,CAAC,OAAO,OAAO,EAAG,CAAG,EACvB,MAAO,GAGT,GAAM,EAAG,GAAiB,GAAW,EAC/B,EAAG,GAAiB,GAAW,EAErC,GAAI,IAAW,GAAU,CAAC,OAAO,GAAG,EAAQ,CAAM,EAChD,MAAO,EAEX,CAEA,MAAO,EACT,EC1Ea,EAAqE,IAAI,QCFtF,SAAgB,EACf,EACA,EACoB,CACf,MACJ,MAAU,MACV,CACC,mBACA,OAAO,GAAY,WAAa,EAAQ,EAAI,CAC7C,EAAE,OAAO,OAAO,EAAE,KAAK,IAAI,CAC5B,CACD"}
package/dist/useCell.cjs CHANGED
@@ -1,53 +1 @@
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/useCell.ts
9
- const cellValuesCache = /* @__PURE__ */ new WeakMap();
10
- const getCellValues = (table, rowId, columnId) => {
11
- let cellCache = cellValuesCache.get(table.options);
12
- if (!cellCache) {
13
- cellCache = /* @__PURE__ */ new Map();
14
- cellValuesCache.set(table.options, cellCache);
15
- }
16
- let rowCache = cellCache.get(rowId);
17
- if (!rowCache) {
18
- rowCache = /* @__PURE__ */ new Map();
19
- cellCache.set(rowId, rowCache);
20
- }
21
- let cached = rowCache.get(columnId);
22
- if (!cached) {
23
- const cell = table.getRow(rowId)?.getAllCells().find((c) => c.column.id === columnId);
24
- require_invariant.invariant(cell);
25
- cached = require_runGetters.runGetters(cell);
26
- rowCache.set(columnId, cached);
27
- }
28
- return cached;
29
- };
30
- const useCell = (...args) => {
31
- const [table, cellOrCoords, selector = require_useTableWithSelector.identity, isEqual = require_isShallowEqual.isShallowEqual] = require_hasTableArg.hasTableArg(args) ? args : [void 0, ...args];
32
- const { columnId, rowId } = "id" in cellOrCoords ? {
33
- columnId: cellOrCoords.column.id,
34
- rowId: cellOrCoords.row.id
35
- } : {
36
- columnId: typeof cellOrCoords.column === "string" ? cellOrCoords.column : cellOrCoords.column.id,
37
- rowId: typeof cellOrCoords.row === "string" ? cellOrCoords.row : cellOrCoords.row.id
38
- };
39
- return require_useTableWithSelector.useTableWithSelector(table, (0, react.useCallback)((table) => selector(getCellValues(table, rowId, columnId)), [
40
- columnId,
41
- rowId,
42
- selector
43
- ]), isEqual);
44
- };
45
- const cellHook = useCell;
46
- const cellHookʹ = (...args) => (selector, isEqual) => cellHook(...[
47
- ...args,
48
- selector,
49
- isEqual
50
- ]);
51
- //#endregion
52
- exports.useCell = useCell;
53
- exports.useCellʹ = cellHookʹ;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./invariant-BzSvgtnX.cjs"),t=require("./useTableBase-BLBisaqE.cjs");let n=require("react");const r=new WeakMap,i=(t,n,r)=>{let i=t.getRow(n)?.getAllCells().find(e=>e.column.id===r);return e.t(i),i},a=(e,n,a)=>{let o=r.get(e.options);o||(o=new Map,r.set(e.options,o));let s=o.get(n);s||(s=new Map,o.set(n,s));let c=s.get(a);return c||(c=t.r(i(e,n,a)),s.set(a,c)),c},o=(...r)=>{let[o,s,c=t.i,l=e.r]=t.n(r)?r:[void 0,...r],{columnId:u,rowId:d}=`id`in s?{columnId:s.column.id,rowId:s.row.id}:{columnId:typeof s.column==`string`?s.column:s.column.id,rowId:typeof s.row==`string`?s.row:s.row.id};return t.t(o,(0,n.useCallback)(e=>c(a(e,d,u),i(e,d,u),e),[u,d,c]),l)},s=o,c=(...e)=>(t,n)=>s(...e,t,n);exports.useCell=o,exports.useCellʹ=c;
@@ -1,17 +1,17 @@
1
1
  import { n as RunGetters, t as IsEqual } from "./types-DIWB6wdO.cjs";
2
- import { ColumnValues } from "./useColumn.cjs";
3
- import { RowValues } from "./useRow.cjs";
2
+ import { ColumnSnapshot } from "./useColumn.cjs";
3
+ import { RowSnapshot } from "./useRow.cjs";
4
4
  import { Cell, Column, Row, RowData, Table } from "@tanstack/table-core";
5
5
 
6
6
  //#region src/hooks/useCell.d.ts
7
- interface CellValues<TData extends RowData, TValue> extends RunGetters<Cell<TData, TValue>> {}
8
- type Selector<TData extends RowData, TValue, Selection> = (cellValues: CellValues<TData, TValue>) => Selection;
7
+ interface CellSnapshot<TData extends RowData, TValue> extends RunGetters<Cell<TData, TValue>> {}
8
+ type Selector<TData extends RowData, TValue, Selection> = (cellSnapshot: CellSnapshot<TData, TValue>, cell: Cell<TData, TValue>, table: Table<TData>) => Selection;
9
9
  interface CellCoords<TData extends RowData, TValue> {
10
- column: Column<TData, TValue> | ColumnValues<TData> | string;
11
- row: Row<TData> | RowValues<TData> | string;
10
+ column: Column<TData, TValue> | ColumnSnapshot<TData> | string;
11
+ row: Row<TData> | RowSnapshot<TData> | string;
12
12
  }
13
- declare const useCell: <TData extends RowData, TValue, Selection = CellValues<TData, TValue>>(...args: [table: Table<TData> | undefined, cell: Cell<TData, TValue> | CellValues<TData, TValue> | CellCoords<TData, TValue>, selector?: Selector<TData, TValue, Selection> | undefined, isEqual?: IsEqual<NoInfer<Selection>> | undefined] | [cell: Cell<TData, TValue> | CellValues<TData, TValue> | CellCoords<TData, TValue>, selector?: Selector<TData, TValue, Selection> | undefined, isEqual?: IsEqual<NoInfer<Selection>> | undefined]) => Selection;
14
- declare const cellHookʹ: <TData extends RowData, TValue>(...args: [table: Table<TData> | undefined, cell: Cell<TData, TValue> | CellValues<TData, TValue> | CellCoords<TData, TValue>] | [cell: Cell<TData, TValue> | CellValues<TData, TValue> | CellCoords<TData, TValue>]) => <Selection = CellValues<TData, TValue>>(selector?: Selector<TData, TValue, Selection> | undefined, isEqual?: IsEqual<NoInfer<Selection>> | undefined) => Selection;
13
+ declare const useCell: <TData extends RowData, TValue, Selection = CellSnapshot<TData, TValue>>(...args: [table: Table<TData> | undefined, cell: Cell<TData, TValue> | CellSnapshot<TData, TValue> | CellCoords<TData, TValue>, selector?: Selector<TData, TValue, Selection> | undefined, isEqual?: IsEqual<NoInfer<Selection>> | undefined] | [cell: Cell<TData, TValue> | CellSnapshot<TData, TValue> | CellCoords<TData, TValue>, selector?: Selector<TData, TValue, Selection> | undefined, isEqual?: IsEqual<NoInfer<Selection>> | undefined]) => Selection;
14
+ declare const cellHookʹ: <TData extends RowData, TValue>(...args: [table: Table<TData> | undefined, cell: Cell<TData, TValue> | CellSnapshot<TData, TValue> | CellCoords<TData, TValue>] | [cell: Cell<TData, TValue> | CellSnapshot<TData, TValue> | CellCoords<TData, TValue>]) => <Selection = CellSnapshot<TData, TValue>>(selector?: Selector<TData, TValue, Selection> | undefined, isEqual?: IsEqual<NoInfer<Selection>> | undefined) => Selection;
15
15
  //#endregion
16
- export { CellValues, useCell, cellHookʹ as useCellʹ };
16
+ export { CellSnapshot, useCell, cellHookʹ as useCellʹ };
17
17
  //# sourceMappingURL=useCell.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useCell.d.cts","names":[],"sources":["../src/hooks/useCell.ts"],"mappings":";;;;;;UAwBiB,UAAA,eAAyB,OAAA,kBAAyB,UAAA,CACjE,IAAA,CAAK,KAAA,EAAO,MAAA;AAAA,KA2CT,QAAA,eAAuB,OAAA,wBAC1B,UAAA,EAAY,UAAA,CAAW,KAAA,EAAO,MAAA,MAC3B,SAAA;AAAA,UAEK,UAAA,eAAyB,OAAA;EACjC,MAAA,EAAQ,MAAA,CAAO,KAAA,EAAO,MAAA,IAAU,YAAA,CAAa,KAAA;EAC7C,GAAA,EAAK,GAAA,CAAI,KAAA,IAAS,SAAA,CAAU,KAAA;AAAA;AAAA,cAGjB,OAAA,iBACG,OAAA,sBAEF,UAAA,CAAW,KAAA,EAAO,MAAA,MAE3B,IAAA,GAEG,KAAA,EAAO,KAAA,CAAM,KAAA,eACb,IAAA,EACI,IAAA,CAAK,KAAA,EAAO,MAAA,IACZ,UAAA,CAAW,KAAA,EAAO,MAAA,IAClB,UAAA,CAAW,KAAA,EAAO,MAAA,GACtB,QAAA,GAAW,QAAA,CAAS,KAAA,EAAO,MAAA,EAAQ,SAAA,eACnC,OAAA,GAAU,OAAA,CAAQ,OAAA,CAAQ,SAAA,mBAG1B,IAAA,EACI,IAAA,CAAK,KAAA,EAAO,MAAA,IACZ,UAAA,CAAW,KAAA,EAAO,MAAA,IAClB,UAAA,CAAW,KAAA,EAAO,MAAA,GACtB,QAAA,GAAW,QAAA,CAAS,KAAA,EAAO,MAAA,EAAQ,SAAA,eACnC,OAAA,GAAU,OAAA,CAAQ,OAAA,CAAQ,SAAA,oBAE/B,SAAA;AAAA,cAgCG,SAAA,iBACW,OAAA,aACV,IAAA,GAEG,KAAA,EAAO,KAAA,CAAM,KAAA,eACb,IAAA,EACI,IAAA,CAAK,KAAA,EAAO,MAAA,IACZ,UAAA,CAAW,KAAA,EAAO,MAAA,IAClB,UAAA,CAAW,KAAA,EAAO,MAAA,MAGtB,IAAA,EACI,IAAA,CAAK,KAAA,EAAO,MAAA,IACZ,UAAA,CAAW,KAAA,EAAO,MAAA,IAClB,UAAA,CAAW,KAAA,EAAO,MAAA,oBAGjB,UAAA,CAAW,KAAA,EAAO,MAAA,GAC7B,QAAA,GAAW,QAAA,CAAS,KAAA,EAAO,MAAA,EAAQ,SAAA,eACnC,OAAA,GAAU,OAAA,CAAQ,OAAA,CAAQ,SAAA,mBACzB,SAAA"}
1
+ {"version":3,"file":"useCell.d.cts","names":[],"sources":["../src/hooks/useCell.ts"],"mappings":";;;;;;UAwBiB,YAAA,eAA2B,OAAA,kBAAyB,UAAA,CACnE,IAAA,CAAK,KAAA,EAAO,MAAA;AAAA,KAgDT,QAAA,eAAuB,OAAA,wBAC1B,YAAA,EAAc,YAAA,CAAa,KAAA,EAAO,MAAA,GAClC,IAAA,EAAM,IAAA,CAAK,KAAA,EAAO,MAAA,GAClB,KAAA,EAAO,KAAA,CAAM,KAAA,MACV,SAAA;AAAA,UAEK,UAAA,eAAyB,OAAA;EACjC,MAAA,EAAQ,MAAA,CAAO,KAAA,EAAO,MAAA,IAAU,cAAA,CAAe,KAAA;EAC/C,GAAA,EAAK,GAAA,CAAI,KAAA,IAAS,WAAA,CAAY,KAAA;AAAA;AAAA,cAGnB,OAAA,iBACG,OAAA,sBAEF,YAAA,CAAa,KAAA,EAAO,MAAA,MAE7B,IAAA,GAEG,KAAA,EAAO,KAAA,CAAM,KAAA,eACb,IAAA,EACI,IAAA,CAAK,KAAA,EAAO,MAAA,IACZ,YAAA,CAAa,KAAA,EAAO,MAAA,IACpB,UAAA,CAAW,KAAA,EAAO,MAAA,GACtB,QAAA,GAAW,QAAA,CAAS,KAAA,EAAO,MAAA,EAAQ,SAAA,eACnC,OAAA,GAAU,OAAA,CAAQ,OAAA,CAAQ,SAAA,mBAG1B,IAAA,EACI,IAAA,CAAK,KAAA,EAAO,MAAA,IACZ,YAAA,CAAa,KAAA,EAAO,MAAA,IACpB,UAAA,CAAW,KAAA,EAAO,MAAA,GACtB,QAAA,GAAW,QAAA,CAAS,KAAA,EAAO,MAAA,EAAQ,SAAA,eACnC,OAAA,GAAU,OAAA,CAAQ,OAAA,CAAQ,SAAA,oBAE/B,SAAA;AAAA,cAoCG,SAAA,iBACW,OAAA,aACV,IAAA,GAEG,KAAA,EAAO,KAAA,CAAM,KAAA,eACb,IAAA,EACI,IAAA,CAAK,KAAA,EAAO,MAAA,IACZ,YAAA,CAAa,KAAA,EAAO,MAAA,IACpB,UAAA,CAAW,KAAA,EAAO,MAAA,MAGtB,IAAA,EACI,IAAA,CAAK,KAAA,EAAO,MAAA,IACZ,YAAA,CAAa,KAAA,EAAO,MAAA,IACpB,UAAA,CAAW,KAAA,EAAO,MAAA,oBAGjB,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"}
package/dist/useCell.d.ts CHANGED
@@ -1,17 +1,17 @@
1
1
  import { n as RunGetters, t as IsEqual } from "./types-DIWB6wdO.js";
2
- import { ColumnValues } from "./useColumn.js";
3
- import { RowValues } from "./useRow.js";
2
+ import { ColumnSnapshot } from "./useColumn.js";
3
+ import { RowSnapshot } from "./useRow.js";
4
4
  import { Cell, Column, Row, RowData, Table } from "@tanstack/table-core";
5
5
 
6
6
  //#region src/hooks/useCell.d.ts
7
- interface CellValues<TData extends RowData, TValue> extends RunGetters<Cell<TData, TValue>> {}
8
- type Selector<TData extends RowData, TValue, Selection> = (cellValues: CellValues<TData, TValue>) => Selection;
7
+ interface CellSnapshot<TData extends RowData, TValue> extends RunGetters<Cell<TData, TValue>> {}
8
+ type Selector<TData extends RowData, TValue, Selection> = (cellSnapshot: CellSnapshot<TData, TValue>, cell: Cell<TData, TValue>, table: Table<TData>) => Selection;
9
9
  interface CellCoords<TData extends RowData, TValue> {
10
- column: Column<TData, TValue> | ColumnValues<TData> | string;
11
- row: Row<TData> | RowValues<TData> | string;
10
+ column: Column<TData, TValue> | ColumnSnapshot<TData> | string;
11
+ row: Row<TData> | RowSnapshot<TData> | string;
12
12
  }
13
- declare const useCell: <TData extends RowData, TValue, Selection = CellValues<TData, TValue>>(...args: [table: Table<TData> | undefined, cell: Cell<TData, TValue> | CellValues<TData, TValue> | CellCoords<TData, TValue>, selector?: Selector<TData, TValue, Selection> | undefined, isEqual?: IsEqual<NoInfer<Selection>> | undefined] | [cell: Cell<TData, TValue> | CellValues<TData, TValue> | CellCoords<TData, TValue>, selector?: Selector<TData, TValue, Selection> | undefined, isEqual?: IsEqual<NoInfer<Selection>> | undefined]) => Selection;
14
- declare const cellHookʹ: <TData extends RowData, TValue>(...args: [table: Table<TData> | undefined, cell: Cell<TData, TValue> | CellValues<TData, TValue> | CellCoords<TData, TValue>] | [cell: Cell<TData, TValue> | CellValues<TData, TValue> | CellCoords<TData, TValue>]) => <Selection = CellValues<TData, TValue>>(selector?: Selector<TData, TValue, Selection> | undefined, isEqual?: IsEqual<NoInfer<Selection>> | undefined) => Selection;
13
+ declare const useCell: <TData extends RowData, TValue, Selection = CellSnapshot<TData, TValue>>(...args: [table: Table<TData> | undefined, cell: Cell<TData, TValue> | CellSnapshot<TData, TValue> | CellCoords<TData, TValue>, selector?: Selector<TData, TValue, Selection> | undefined, isEqual?: IsEqual<NoInfer<Selection>> | undefined] | [cell: Cell<TData, TValue> | CellSnapshot<TData, TValue> | CellCoords<TData, TValue>, selector?: Selector<TData, TValue, Selection> | undefined, isEqual?: IsEqual<NoInfer<Selection>> | undefined]) => Selection;
14
+ declare const cellHookʹ: <TData extends RowData, TValue>(...args: [table: Table<TData> | undefined, cell: Cell<TData, TValue> | CellSnapshot<TData, TValue> | CellCoords<TData, TValue>] | [cell: Cell<TData, TValue> | CellSnapshot<TData, TValue> | CellCoords<TData, TValue>]) => <Selection = CellSnapshot<TData, TValue>>(selector?: Selector<TData, TValue, Selection> | undefined, isEqual?: IsEqual<NoInfer<Selection>> | undefined) => Selection;
15
15
  //#endregion
16
- export { CellValues, useCell, cellHookʹ as useCellʹ };
16
+ export { CellSnapshot, useCell, cellHookʹ as useCellʹ };
17
17
  //# sourceMappingURL=useCell.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useCell.d.ts","names":[],"sources":["../src/hooks/useCell.ts"],"mappings":";;;;;;UAwBiB,UAAA,eAAyB,OAAA,kBAAyB,UAAA,CACjE,IAAA,CAAK,KAAA,EAAO,MAAA;AAAA,KA2CT,QAAA,eAAuB,OAAA,wBAC1B,UAAA,EAAY,UAAA,CAAW,KAAA,EAAO,MAAA,MAC3B,SAAA;AAAA,UAEK,UAAA,eAAyB,OAAA;EACjC,MAAA,EAAQ,MAAA,CAAO,KAAA,EAAO,MAAA,IAAU,YAAA,CAAa,KAAA;EAC7C,GAAA,EAAK,GAAA,CAAI,KAAA,IAAS,SAAA,CAAU,KAAA;AAAA;AAAA,cAGjB,OAAA,iBACG,OAAA,sBAEF,UAAA,CAAW,KAAA,EAAO,MAAA,MAE3B,IAAA,GAEG,KAAA,EAAO,KAAA,CAAM,KAAA,eACb,IAAA,EACI,IAAA,CAAK,KAAA,EAAO,MAAA,IACZ,UAAA,CAAW,KAAA,EAAO,MAAA,IAClB,UAAA,CAAW,KAAA,EAAO,MAAA,GACtB,QAAA,GAAW,QAAA,CAAS,KAAA,EAAO,MAAA,EAAQ,SAAA,eACnC,OAAA,GAAU,OAAA,CAAQ,OAAA,CAAQ,SAAA,mBAG1B,IAAA,EACI,IAAA,CAAK,KAAA,EAAO,MAAA,IACZ,UAAA,CAAW,KAAA,EAAO,MAAA,IAClB,UAAA,CAAW,KAAA,EAAO,MAAA,GACtB,QAAA,GAAW,QAAA,CAAS,KAAA,EAAO,MAAA,EAAQ,SAAA,eACnC,OAAA,GAAU,OAAA,CAAQ,OAAA,CAAQ,SAAA,oBAE/B,SAAA;AAAA,cAgCG,SAAA,iBACW,OAAA,aACV,IAAA,GAEG,KAAA,EAAO,KAAA,CAAM,KAAA,eACb,IAAA,EACI,IAAA,CAAK,KAAA,EAAO,MAAA,IACZ,UAAA,CAAW,KAAA,EAAO,MAAA,IAClB,UAAA,CAAW,KAAA,EAAO,MAAA,MAGtB,IAAA,EACI,IAAA,CAAK,KAAA,EAAO,MAAA,IACZ,UAAA,CAAW,KAAA,EAAO,MAAA,IAClB,UAAA,CAAW,KAAA,EAAO,MAAA,oBAGjB,UAAA,CAAW,KAAA,EAAO,MAAA,GAC7B,QAAA,GAAW,QAAA,CAAS,KAAA,EAAO,MAAA,EAAQ,SAAA,eACnC,OAAA,GAAU,OAAA,CAAQ,OAAA,CAAQ,SAAA,mBACzB,SAAA"}
1
+ {"version":3,"file":"useCell.d.ts","names":[],"sources":["../src/hooks/useCell.ts"],"mappings":";;;;;;UAwBiB,YAAA,eAA2B,OAAA,kBAAyB,UAAA,CACnE,IAAA,CAAK,KAAA,EAAO,MAAA;AAAA,KAgDT,QAAA,eAAuB,OAAA,wBAC1B,YAAA,EAAc,YAAA,CAAa,KAAA,EAAO,MAAA,GAClC,IAAA,EAAM,IAAA,CAAK,KAAA,EAAO,MAAA,GAClB,KAAA,EAAO,KAAA,CAAM,KAAA,MACV,SAAA;AAAA,UAEK,UAAA,eAAyB,OAAA;EACjC,MAAA,EAAQ,MAAA,CAAO,KAAA,EAAO,MAAA,IAAU,cAAA,CAAe,KAAA;EAC/C,GAAA,EAAK,GAAA,CAAI,KAAA,IAAS,WAAA,CAAY,KAAA;AAAA;AAAA,cAGnB,OAAA,iBACG,OAAA,sBAEF,YAAA,CAAa,KAAA,EAAO,MAAA,MAE7B,IAAA,GAEG,KAAA,EAAO,KAAA,CAAM,KAAA,eACb,IAAA,EACI,IAAA,CAAK,KAAA,EAAO,MAAA,IACZ,YAAA,CAAa,KAAA,EAAO,MAAA,IACpB,UAAA,CAAW,KAAA,EAAO,MAAA,GACtB,QAAA,GAAW,QAAA,CAAS,KAAA,EAAO,MAAA,EAAQ,SAAA,eACnC,OAAA,GAAU,OAAA,CAAQ,OAAA,CAAQ,SAAA,mBAG1B,IAAA,EACI,IAAA,CAAK,KAAA,EAAO,MAAA,IACZ,YAAA,CAAa,KAAA,EAAO,MAAA,IACpB,UAAA,CAAW,KAAA,EAAO,MAAA,GACtB,QAAA,GAAW,QAAA,CAAS,KAAA,EAAO,MAAA,EAAQ,SAAA,eACnC,OAAA,GAAU,OAAA,CAAQ,OAAA,CAAQ,SAAA,oBAE/B,SAAA;AAAA,cAoCG,SAAA,iBACW,OAAA,aACV,IAAA,GAEG,KAAA,EAAO,KAAA,CAAM,KAAA,eACb,IAAA,EACI,IAAA,CAAK,KAAA,EAAO,MAAA,IACZ,YAAA,CAAa,KAAA,EAAO,MAAA,IACpB,UAAA,CAAW,KAAA,EAAO,MAAA,MAGtB,IAAA,EACI,IAAA,CAAK,KAAA,EAAO,MAAA,IACZ,YAAA,CAAa,KAAA,EAAO,MAAA,IACpB,UAAA,CAAW,KAAA,EAAO,MAAA,oBAGjB,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"}
package/dist/useCell.js CHANGED
@@ -1,53 +1,2 @@
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/useCell.ts
8
- const cellValuesCache = /* @__PURE__ */ new WeakMap();
9
- const getCellValues = (table, rowId, columnId) => {
10
- let cellCache = cellValuesCache.get(table.options);
11
- if (!cellCache) {
12
- cellCache = /* @__PURE__ */ new Map();
13
- cellValuesCache.set(table.options, cellCache);
14
- }
15
- let rowCache = cellCache.get(rowId);
16
- if (!rowCache) {
17
- rowCache = /* @__PURE__ */ new Map();
18
- cellCache.set(rowId, rowCache);
19
- }
20
- let cached = rowCache.get(columnId);
21
- if (!cached) {
22
- const cell = table.getRow(rowId)?.getAllCells().find((c) => c.column.id === columnId);
23
- invariant(cell);
24
- cached = runGetters(cell);
25
- rowCache.set(columnId, cached);
26
- }
27
- return cached;
28
- };
29
- const useCell = (...args) => {
30
- const [table, cellOrCoords, selector = identity, isEqual = isShallowEqual] = hasTableArg(args) ? args : [void 0, ...args];
31
- const { columnId, rowId } = "id" in cellOrCoords ? {
32
- columnId: cellOrCoords.column.id,
33
- rowId: cellOrCoords.row.id
34
- } : {
35
- columnId: typeof cellOrCoords.column === "string" ? cellOrCoords.column : cellOrCoords.column.id,
36
- rowId: typeof cellOrCoords.row === "string" ? cellOrCoords.row : cellOrCoords.row.id
37
- };
38
- return useTableWithSelector(table, useCallback((table) => selector(getCellValues(table, rowId, columnId)), [
39
- columnId,
40
- rowId,
41
- selector
42
- ]), isEqual);
43
- };
44
- const cellHook = useCell;
45
- const cellHookʹ = (...args) => (selector, isEqual) => cellHook(...[
46
- ...args,
47
- selector,
48
- isEqual
49
- ]);
50
- //#endregion
51
- export { useCell, cellHookʹ as useCellʹ };
52
-
1
+ import{r as e,t}from"./invariant-DhtaPrYv.js";import{i as n,n as r,r as i,t as a}from"./useTableBase-CgF6IzQm.js";import{useCallback as o}from"react";const s=new WeakMap,c=(e,n,r)=>{let i=e.getRow(n)?.getAllCells().find(e=>e.column.id===r);return t(i),i},l=(e,t,n)=>{let r=s.get(e.options);r||(r=new Map,s.set(e.options,r));let a=r.get(t);a||(a=new Map,r.set(t,a));let o=a.get(n);return o||(o=i(c(e,t,n)),a.set(n,o)),o},u=(...t)=>{let[i,s,u=n,d=e]=r(t)?t:[void 0,...t],{columnId:f,rowId:p}=`id`in s?{columnId:s.column.id,rowId:s.row.id}:{columnId:typeof s.column==`string`?s.column:s.column.id,rowId:typeof s.row==`string`?s.row:s.row.id};return a(i,o(e=>u(l(e,p,f),c(e,p,f),e),[f,p,u]),d)},d=u,f=(...e)=>(t,n)=>d(...e,t,n);export{u as useCell,f as useCellʹ};
53
2
  //# sourceMappingURL=useCell.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useCell.js","names":[],"sources":["../src/hooks/useCell.ts"],"sourcesContent":["import { useCallback } from \"react\"\n\nimport type {\n Cell,\n Column,\n RequiredKeys,\n Row,\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 type { ColumnValues } from \"./useColumn\"\nimport type { RowValues } from \"./useRow\"\nimport { useTableWithSelector } from \"./useTableWithSelector\"\n\nexport interface CellValues<TData extends RowData, TValue> extends RunGetters<\n Cell<TData, TValue>\n> {}\n\nconst cellValuesCache = new WeakMap<\n RequiredKeys<TableOptionsResolved<any>, \"state\">,\n Map<string, Map<string, CellValues<any, any>>>\n>()\n\nconst getCellValues = <TData extends RowData, TValue>(\n table: Table<TData>,\n rowId: string,\n columnId: string,\n): CellValues<TData, TValue> => {\n let cellCache = cellValuesCache.get(table.options)\n if (!cellCache) {\n cellCache = new Map()\n cellValuesCache.set(table.options, cellCache)\n }\n\n let rowCache = cellCache.get(rowId)\n if (!rowCache) {\n rowCache = new Map()\n cellCache.set(rowId, rowCache)\n }\n\n let cached = rowCache.get(columnId)\n\n if (!cached) {\n const cell = table\n .getRow(rowId)\n ?.getAllCells()\n .find((c) => c.column.id === columnId) as Cell<TData, TValue> | undefined\n\n invariant(cell)\n\n cached = runGetters(cell)\n\n rowCache.set(columnId, cached)\n }\n\n return cached\n}\n\ntype Selector<TData extends RowData, TValue, Selection> = (\n cellValues: CellValues<TData, TValue>,\n) => Selection\n\ninterface CellCoords<TData extends RowData, TValue> {\n column: Column<TData, TValue> | ColumnValues<TData> | string\n row: Row<TData> | RowValues<TData> | string\n}\n\nexport const useCell = <\n TData extends RowData,\n TValue,\n Selection = CellValues<TData, TValue>,\n>(\n ...args:\n | [\n table: Table<TData> | undefined,\n cell:\n | Cell<TData, TValue>\n | CellValues<TData, TValue>\n | CellCoords<TData, TValue>,\n selector?: Selector<TData, TValue, Selection> | undefined,\n isEqual?: IsEqual<NoInfer<Selection>> | undefined,\n ]\n | [\n cell:\n | Cell<TData, TValue>\n | CellValues<TData, TValue>\n | CellCoords<TData, TValue>,\n selector?: Selector<TData, TValue, Selection> | undefined,\n isEqual?: IsEqual<NoInfer<Selection>> | undefined,\n ]\n): Selection => {\n const [\n table,\n cellOrCoords,\n selector = identity as never,\n isEqual = isShallowEqual,\n ] = hasTableArg(args) ? args : [undefined, ...args]\n\n const { columnId, rowId } =\n \"id\" in cellOrCoords ?\n { columnId: cellOrCoords.column.id, rowId: cellOrCoords.row.id }\n : {\n columnId:\n typeof cellOrCoords.column === \"string\" ?\n cellOrCoords.column\n : cellOrCoords.column.id,\n rowId:\n typeof cellOrCoords.row === \"string\" ?\n cellOrCoords.row\n : cellOrCoords.row.id,\n }\n\n const getSelection = useCallback(\n (table: Table<TData>) => selector(getCellValues(table, rowId, columnId)),\n [columnId, rowId, selector],\n )\n\n return useTableWithSelector(table, getSelection, isEqual)\n}\n\nconst cellHook = useCell\n\nconst cellHookʹ =\n <TData extends RowData, TValue>(\n ...args:\n | [\n table: Table<TData> | undefined,\n cell:\n | Cell<TData, TValue>\n | CellValues<TData, TValue>\n | CellCoords<TData, TValue>,\n ]\n | [\n cell:\n | Cell<TData, TValue>\n | CellValues<TData, TValue>\n | CellCoords<TData, TValue>,\n ]\n ) =>\n <Selection = CellValues<TData, TValue>>(\n selector?: Selector<TData, TValue, Selection> | undefined,\n isEqual?: IsEqual<NoInfer<Selection>> | undefined,\n ): Selection =>\n cellHook(...[...args, selector, isEqual])\n\nexport { cellHookʹ as useCellʹ }\n"],"mappings":";;;;;;;AA4BA,MAAM,kCAAkB,IAAI,QAG1B;AAEF,MAAM,iBACJ,OACA,OACA,aAC8B;CAC9B,IAAI,YAAY,gBAAgB,IAAI,MAAM,OAAO;CACjD,IAAI,CAAC,WAAW;EACd,4BAAY,IAAI,IAAI;EACpB,gBAAgB,IAAI,MAAM,SAAS,SAAS;CAC9C;CAEA,IAAI,WAAW,UAAU,IAAI,KAAK;CAClC,IAAI,CAAC,UAAU;EACb,2BAAW,IAAI,IAAI;EACnB,UAAU,IAAI,OAAO,QAAQ;CAC/B;CAEA,IAAI,SAAS,SAAS,IAAI,QAAQ;CAElC,IAAI,CAAC,QAAQ;EACX,MAAM,OAAO,MACV,OAAO,KAAK,GACX,YAAY,EACb,MAAM,MAAM,EAAE,OAAO,OAAO,QAAQ;EAEvC,UAAU,IAAI;EAEd,SAAS,WAAW,IAAI;EAExB,SAAS,IAAI,UAAU,MAAM;CAC/B;CAEA,OAAO;AACT;AAWA,MAAa,WAKX,GAAG,SAkBW;CACd,MAAM,CACJ,OACA,cACA,WAAW,UACX,UAAU,kBACR,YAAY,IAAI,IAAI,OAAO,CAAC,KAAA,GAAW,GAAG,IAAI;CAElD,MAAM,EAAE,UAAU,UAChB,QAAQ,eACN;EAAE,UAAU,aAAa,OAAO;EAAI,OAAO,aAAa,IAAI;CAAG,IAC/D;EACE,UACE,OAAO,aAAa,WAAW,WAC7B,aAAa,SACb,aAAa,OAAO;EACxB,OACE,OAAO,aAAa,QAAQ,WAC1B,aAAa,MACb,aAAa,IAAI;CACvB;CAOJ,OAAO,qBAAqB,OALP,aAClB,UAAwB,SAAS,cAAc,OAAO,OAAO,QAAQ,CAAC,GACvE;EAAC;EAAU;EAAO;CAAQ,CAGkB,GAAG,OAAO;AAC1D;AAEA,MAAM,WAAW;AAEjB,MAAM,aAEF,GAAG,UAgBH,UACA,YAEA,SAAS,GAAG;CAAC,GAAG;CAAM;CAAU;AAAO,CAAC"}
1
+ {"version":3,"file":"useCell.js","names":[],"sources":["../src/hooks/useCell.ts"],"sourcesContent":["import { useCallback } from \"react\"\n\nimport type {\n Cell,\n Column,\n RequiredKeys,\n Row,\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 type { ColumnSnapshot } from \"./useColumn\"\nimport type { RowSnapshot } from \"./useRow\"\nimport { useTableBase } from \"../lib/useTableBase\"\n\nexport interface CellSnapshot<TData extends RowData, TValue> extends RunGetters<\n Cell<TData, TValue>\n> {}\n\nconst cellSnapshotCache = new WeakMap<\n RequiredKeys<TableOptionsResolved<any>, \"state\">,\n Map<string, Map<string, CellSnapshot<any, any>>>\n>()\n\nconst getCell = <TData extends RowData, TValue>(\n table: Table<TData>,\n rowId: string,\n columnId: string,\n) => {\n\tconst cell = table\n\t\t.getRow(rowId)\n\t\t?.getAllCells()\n\t\t.find((c) => c.column.id === columnId) as Cell<TData, TValue> | undefined\n\tinvariant(cell)\n\treturn cell\n}\n\nconst getCellSnapshot = <TData extends RowData, TValue>(\n table: Table<TData>,\n rowId: string,\n columnId: string,\n): CellSnapshot<TData, TValue> => {\n let cellCache = cellSnapshotCache.get(table.options)\n if (!cellCache) {\n cellCache = new Map()\n cellSnapshotCache.set(table.options, cellCache)\n }\n\n let rowCache = cellCache.get(rowId)\n if (!rowCache) {\n rowCache = new Map()\n cellCache.set(rowId, rowCache)\n }\n\n let cached = rowCache.get(columnId)\n if (!cached) {\n const cell = getCell(table, rowId, columnId)\n cached = runGetters(cell)\n rowCache.set(columnId, cached)\n }\n\n return cached\n}\n\ntype Selector<TData extends RowData, TValue, Selection> = (\n cellSnapshot: CellSnapshot<TData, TValue>,\n cell: Cell<TData, TValue>,\n table: Table<TData>,\n) => Selection\n\ninterface CellCoords<TData extends RowData, TValue> {\n column: Column<TData, TValue> | ColumnSnapshot<TData> | string\n row: Row<TData> | RowSnapshot<TData> | string\n}\n\nexport const useCell = <\n TData extends RowData,\n TValue,\n Selection = CellSnapshot<TData, TValue>,\n>(\n ...args:\n | [\n table: Table<TData> | undefined,\n cell:\n | Cell<TData, TValue>\n | CellSnapshot<TData, TValue>\n | CellCoords<TData, TValue>,\n selector?: Selector<TData, TValue, Selection> | undefined,\n isEqual?: IsEqual<NoInfer<Selection>> | undefined,\n ]\n | [\n cell:\n | Cell<TData, TValue>\n | CellSnapshot<TData, TValue>\n | CellCoords<TData, TValue>,\n selector?: Selector<TData, TValue, Selection> | undefined,\n isEqual?: IsEqual<NoInfer<Selection>> | undefined,\n ]\n): Selection => {\n const [\n table,\n cellOrCoords,\n selector = identity as never,\n isEqual = isShallowEqual,\n ] = hasTableArg(args) ? args : [undefined, ...args]\n\n const { columnId, rowId } =\n \"id\" in cellOrCoords ?\n { columnId: cellOrCoords.column.id, rowId: cellOrCoords.row.id }\n : {\n columnId:\n typeof cellOrCoords.column === \"string\" ?\n cellOrCoords.column\n : cellOrCoords.column.id,\n rowId:\n typeof cellOrCoords.row === \"string\" ?\n cellOrCoords.row\n : cellOrCoords.row.id,\n }\n\n const getSelection = useCallback(\n (table: Table<TData>) => selector(\n\t\t\tgetCellSnapshot<TData, TValue>(table, rowId, columnId),\n\t\t\tgetCell<TData, TValue>(table, rowId, columnId),\n\t\t\ttable\n\t\t),\n [columnId, rowId, selector],\n )\n\n return useTableBase(table, getSelection, isEqual)\n}\n\nconst cellHook = useCell\n\nconst cellHookʹ =\n <TData extends RowData, TValue>(\n ...args:\n | [\n table: Table<TData> | undefined,\n cell:\n | Cell<TData, TValue>\n | CellSnapshot<TData, TValue>\n | CellCoords<TData, TValue>,\n ]\n | [\n cell:\n | Cell<TData, TValue>\n | CellSnapshot<TData, TValue>\n | CellCoords<TData, TValue>,\n ]\n ) =>\n <Selection = CellSnapshot<TData, TValue>>(\n selector?: Selector<TData, TValue, Selection> | undefined,\n isEqual?: IsEqual<NoInfer<Selection>> | undefined,\n ): Selection =>\n cellHook(...[...args, selector, isEqual])\n\nexport { cellHookʹ as useCellʹ }\n"],"mappings":"sJA4BA,MAAM,EAAoB,IAAI,QAKxB,GACJ,EACA,EACA,IACG,CACJ,IAAM,EAAO,EACX,OAAO,CAAK,GACX,YAAY,EACb,KAAM,GAAM,EAAE,OAAO,KAAO,CAAQ,EAEtC,OADA,EAAU,CAAI,EACP,CACR,EAEM,GACJ,EACA,EACA,IACgC,CAChC,IAAI,EAAY,EAAkB,IAAI,EAAM,OAAO,EAC9C,IACH,EAAY,IAAI,IAChB,EAAkB,IAAI,EAAM,QAAS,CAAS,GAGhD,IAAI,EAAW,EAAU,IAAI,CAAK,EAC7B,IACH,EAAW,IAAI,IACf,EAAU,IAAI,EAAO,CAAQ,GAG/B,IAAI,EAAS,EAAS,IAAI,CAAQ,EAOlC,OANK,IAEH,EAAS,EADI,EAAQ,EAAO,EAAO,CACZ,CAAC,EACxB,EAAS,IAAI,EAAU,CAAM,GAGxB,CACT,EAaa,GAKX,GAAG,IAkBW,CACd,GAAM,CACJ,EACA,EACA,EAAW,EACX,EAAU,GACR,EAAY,CAAI,EAAI,EAAO,CAAC,IAAA,GAAW,GAAG,CAAI,EAE5C,CAAE,WAAU,SAChB,OAAQ,EACN,CAAE,SAAU,EAAa,OAAO,GAAI,MAAO,EAAa,IAAI,EAAG,EAC/D,CACE,SACE,OAAO,EAAa,QAAW,SAC7B,EAAa,OACb,EAAa,OAAO,GACxB,MACE,OAAO,EAAa,KAAQ,SAC1B,EAAa,IACb,EAAa,IAAI,EACvB,EAWJ,OAAO,EAAa,EATC,EAClB,GAAwB,EAC1B,EAA+B,EAAO,EAAO,CAAQ,EACrD,EAAuB,EAAO,EAAO,CAAQ,EAC7C,CACD,EACE,CAAC,EAAU,EAAO,CAAQ,CAGU,EAAG,CAAO,CAClD,EAEM,EAAW,EAEX,GAEF,GAAG,KAgBH,EACA,IAEA,EAAa,GAAG,EAAM,EAAU,CAAQ"}
@@ -1,54 +1 @@
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/useColumn.ts
9
- const columnValuesCache = /* @__PURE__ */ new WeakMap();
10
- const columnHandlersCache = /* @__PURE__ */ new WeakMap();
11
- const getColumnValues = (table, columnId) => {
12
- let columnCache = columnValuesCache.get(table.options);
13
- if (!columnCache) {
14
- columnCache = /* @__PURE__ */ new Map();
15
- columnValuesCache.set(table.options, columnCache);
16
- }
17
- let cached = columnCache.get(columnId);
18
- if (!cached) {
19
- const column = table.getColumn(columnId);
20
- require_invariant.invariant(column);
21
- let cachedHandlers = columnHandlersCache.get(column);
22
- if (!cachedHandlers) {
23
- cachedHandlers = {
24
- toggleGroupingHandler: column.getToggleGroupingHandler(),
25
- toggleSortingHandler: column.getToggleSortingHandler(),
26
- toggleVisibilityHandler: column.getToggleVisibilityHandler()
27
- };
28
- columnHandlersCache.set(column, cachedHandlers);
29
- }
30
- const { toggleGroupingHandler, toggleSortingHandler, toggleVisibilityHandler } = cachedHandlers;
31
- cached = {
32
- ...require_runGetters.runGetters(column),
33
- toggleGroupingHandler,
34
- toggleSortingHandler,
35
- toggleVisibilityHandler
36
- };
37
- columnCache.set(columnId, cached);
38
- }
39
- return cached;
40
- };
41
- const useColumn = (...args) => {
42
- const [table, columnOrId, selector = require_useTableWithSelector.identity, isEqual = require_isShallowEqual.isShallowEqual] = require_hasTableArg.hasTableArg(args) ? args : [void 0, ...args];
43
- const columnId = typeof columnOrId === "string" ? columnOrId : columnOrId.id;
44
- return require_useTableWithSelector.useTableWithSelector(table, (0, react.useCallback)((table) => selector(getColumnValues(table, columnId)), [columnId, selector]), isEqual);
45
- };
46
- const columnHook = useColumn;
47
- const columnHookʹ = (...args) => (selector, isEqual) => columnHook(...[
48
- ...args,
49
- selector,
50
- isEqual
51
- ]);
52
- //#endregion
53
- exports.useColumn = useColumn;
54
- exports.useColumnʹ = columnHookʹ;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./invariant-BzSvgtnX.cjs"),t=require("./useTableBase-BLBisaqE.cjs");let n=require("react");const r=new WeakMap,i=new WeakMap,a=(t,n)=>{let r=t.getColumn(n);return e.t(r),r},o=(e,n)=>{let o=r.get(e.options);o||(o=new Map,r.set(e.options,o));let s=o.get(n);if(!s){let r=a(e,n),c=i.get(r);c||(c={toggleGroupingHandler:r.getToggleGroupingHandler(),toggleSortingHandler:r.getToggleSortingHandler(),toggleVisibilityHandler:r.getToggleVisibilityHandler()},i.set(r,c));let{toggleGroupingHandler:l,toggleSortingHandler:u,toggleVisibilityHandler:d}=c;s={...t.r(r),toggleGroupingHandler:l,toggleSortingHandler:u,toggleVisibilityHandler:d},o.set(n,s)}return s},s=(...r)=>{let[i,s,c=t.i,l=e.r]=t.n(r)?r:[void 0,...r],u=typeof s==`string`?s:s.id;return t.t(i,(0,n.useCallback)(e=>c(o(e,u),a(e,u),e),[u,c]),l)},c=s,l=(...e)=>(t,n)=>c(...e,t,n);exports.useColumn=s,exports.useColumnʹ=l;
@@ -2,18 +2,18 @@ import { n as RunGetters, t as IsEqual } from "./types-DIWB6wdO.cjs";
2
2
  import { Column, RowData, Table } from "@tanstack/table-core";
3
3
 
4
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> | {
5
+ interface ColumnSnapshot<TData extends RowData, TValue = unknown> extends RunGetters<Column<TData, TValue>> {}
6
+ type Selector<TData extends RowData, TValue, Selection> = (columnSnapshot: ColumnSnapshot<TData, TValue>, column: Column<TData, TValue>, table: Table<TData>) => Selection;
7
+ declare const useColumn: <TData extends RowData, TValue = unknown, Selection = ColumnSnapshot<TData, TValue>>(...args: [table: Table<TData> | undefined, column: Column<TData, TValue> | ColumnSnapshot<TData, TValue> | {
8
8
  id: string;
9
- } | string, selector?: Selector<TData, TValue, Selection> | undefined, isEqual?: IsEqual<NoInfer<Selection>> | undefined] | [column: Column<TData, TValue> | ColumnValues<TData, TValue> | {
9
+ } | string, selector?: Selector<TData, TValue, Selection> | undefined, isEqual?: IsEqual<NoInfer<Selection>> | undefined] | [column: Column<TData, TValue> | ColumnSnapshot<TData, TValue> | {
10
10
  id: string;
11
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> | {
12
+ declare const columnHookʹ: <TData extends RowData, TValue = unknown>(...args: [table: Table<TData> | undefined, column: Column<TData, TValue> | ColumnSnapshot<TData, TValue> | {
13
13
  id: string;
14
- } | string] | [column: Column<TData, TValue> | ColumnValues<TData, TValue> | {
14
+ } | string] | [column: Column<TData, TValue> | ColumnSnapshot<TData, TValue> | {
15
15
  id: string;
16
- } | string]) => <Selection = ColumnValues<TData, TValue>>(selector?: Selector<TData, TValue, Selection> | undefined, isEqual?: IsEqual<NoInfer<Selection>> | undefined) => Selection;
16
+ } | string]) => <Selection = ColumnSnapshot<TData, TValue>>(selector?: Selector<TData, TValue, Selection> | undefined, isEqual?: IsEqual<NoInfer<Selection>> | undefined) => Selection;
17
17
  //#endregion
18
- export { ColumnValues, useColumn, columnHookʹ as useColumnʹ };
18
+ export { ColumnSnapshot, useColumn, columnHookʹ as useColumnʹ };
19
19
  //# sourceMappingURL=useColumn.d.cts.map
@@ -1 +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"}
1
+ {"version":3,"file":"useColumn.d.cts","names":[],"sources":["../src/hooks/useColumn.ts"],"mappings":";;;;UAoBiB,cAAA,eACD,OAAA,4BAEN,UAAA,CAAW,MAAA,CAAO,KAAA,EAAO,MAAA;AAAA,KA0E9B,QAAA,eAAuB,OAAA,wBAC1B,cAAA,EAAgB,cAAA,CAAe,KAAA,EAAO,MAAA,GACvC,MAAA,EAAQ,MAAA,CAAO,KAAA,EAAO,MAAA,GACtB,KAAA,EAAO,KAAA,CAAM,KAAA,MACT,SAAA;AAAA,cAEQ,SAAA,iBACG,OAAA,gCAEF,cAAA,CAAe,KAAA,EAAO,MAAA,MAE/B,IAAA,GAEG,KAAA,EAAO,KAAA,CAAM,KAAA,eACb,MAAA,EACI,MAAA,CAAO,KAAA,EAAO,MAAA,IACd,cAAA,CAAe,KAAA,EAAO,MAAA;EACpB,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,cAAA,CAAe,KAAA,EAAO,MAAA;EACpB,EAAA;AAAA,YAEN,QAAA,GAAW,QAAA,CAAS,KAAA,EAAO,MAAA,EAAQ,SAAA,eACnC,OAAA,GAAU,OAAA,CAAQ,OAAA,CAAQ,SAAA,oBAE/B,SAAA;AAAA,cAwBG,WAAA,iBACW,OAAA,uBACV,IAAA,GAEG,KAAA,EAAO,KAAA,CAAM,KAAA,eACb,MAAA,EACI,MAAA,CAAO,KAAA,EAAO,MAAA,IACd,cAAA,CAAe,KAAA,EAAO,MAAA;EACpB,EAAA;AAAA,eAIN,MAAA,EACI,MAAA,CAAO,KAAA,EAAO,MAAA,IACd,cAAA,CAAe,KAAA,EAAO,MAAA;EACpB,EAAA;AAAA,6BAID,cAAA,CAAe,KAAA,EAAO,MAAA,GACjC,QAAA,GAAW,QAAA,CAAS,KAAA,EAAO,MAAA,EAAQ,SAAA,eACnC,OAAA,GAAU,OAAA,CAAQ,OAAA,CAAQ,SAAA,mBACzB,SAAA"}
@@ -2,18 +2,18 @@ import { n as RunGetters, t as IsEqual } from "./types-DIWB6wdO.js";
2
2
  import { Column, RowData, Table } from "@tanstack/table-core";
3
3
 
4
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> | {
5
+ interface ColumnSnapshot<TData extends RowData, TValue = unknown> extends RunGetters<Column<TData, TValue>> {}
6
+ type Selector<TData extends RowData, TValue, Selection> = (columnSnapshot: ColumnSnapshot<TData, TValue>, column: Column<TData, TValue>, table: Table<TData>) => Selection;
7
+ declare const useColumn: <TData extends RowData, TValue = unknown, Selection = ColumnSnapshot<TData, TValue>>(...args: [table: Table<TData> | undefined, column: Column<TData, TValue> | ColumnSnapshot<TData, TValue> | {
8
8
  id: string;
9
- } | string, selector?: Selector<TData, TValue, Selection> | undefined, isEqual?: IsEqual<NoInfer<Selection>> | undefined] | [column: Column<TData, TValue> | ColumnValues<TData, TValue> | {
9
+ } | string, selector?: Selector<TData, TValue, Selection> | undefined, isEqual?: IsEqual<NoInfer<Selection>> | undefined] | [column: Column<TData, TValue> | ColumnSnapshot<TData, TValue> | {
10
10
  id: string;
11
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> | {
12
+ declare const columnHookʹ: <TData extends RowData, TValue = unknown>(...args: [table: Table<TData> | undefined, column: Column<TData, TValue> | ColumnSnapshot<TData, TValue> | {
13
13
  id: string;
14
- } | string] | [column: Column<TData, TValue> | ColumnValues<TData, TValue> | {
14
+ } | string] | [column: Column<TData, TValue> | ColumnSnapshot<TData, TValue> | {
15
15
  id: string;
16
- } | string]) => <Selection = ColumnValues<TData, TValue>>(selector?: Selector<TData, TValue, Selection> | undefined, isEqual?: IsEqual<NoInfer<Selection>> | undefined) => Selection;
16
+ } | string]) => <Selection = ColumnSnapshot<TData, TValue>>(selector?: Selector<TData, TValue, Selection> | undefined, isEqual?: IsEqual<NoInfer<Selection>> | undefined) => Selection;
17
17
  //#endregion
18
- export { ColumnValues, useColumn, columnHookʹ as useColumnʹ };
18
+ export { ColumnSnapshot, useColumn, columnHookʹ as useColumnʹ };
19
19
  //# sourceMappingURL=useColumn.d.ts.map
@@ -1 +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"}
1
+ {"version":3,"file":"useColumn.d.ts","names":[],"sources":["../src/hooks/useColumn.ts"],"mappings":";;;;UAoBiB,cAAA,eACD,OAAA,4BAEN,UAAA,CAAW,MAAA,CAAO,KAAA,EAAO,MAAA;AAAA,KA0E9B,QAAA,eAAuB,OAAA,wBAC1B,cAAA,EAAgB,cAAA,CAAe,KAAA,EAAO,MAAA,GACvC,MAAA,EAAQ,MAAA,CAAO,KAAA,EAAO,MAAA,GACtB,KAAA,EAAO,KAAA,CAAM,KAAA,MACT,SAAA;AAAA,cAEQ,SAAA,iBACG,OAAA,gCAEF,cAAA,CAAe,KAAA,EAAO,MAAA,MAE/B,IAAA,GAEG,KAAA,EAAO,KAAA,CAAM,KAAA,eACb,MAAA,EACI,MAAA,CAAO,KAAA,EAAO,MAAA,IACd,cAAA,CAAe,KAAA,EAAO,MAAA;EACpB,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,cAAA,CAAe,KAAA,EAAO,MAAA;EACpB,EAAA;AAAA,YAEN,QAAA,GAAW,QAAA,CAAS,KAAA,EAAO,MAAA,EAAQ,SAAA,eACnC,OAAA,GAAU,OAAA,CAAQ,OAAA,CAAQ,SAAA,oBAE/B,SAAA;AAAA,cAwBG,WAAA,iBACW,OAAA,uBACV,IAAA,GAEG,KAAA,EAAO,KAAA,CAAM,KAAA,eACb,MAAA,EACI,MAAA,CAAO,KAAA,EAAO,MAAA,IACd,cAAA,CAAe,KAAA,EAAO,MAAA;EACpB,EAAA;AAAA,eAIN,MAAA,EACI,MAAA,CAAO,KAAA,EAAO,MAAA,IACd,cAAA,CAAe,KAAA,EAAO,MAAA;EACpB,EAAA;AAAA,6BAID,cAAA,CAAe,KAAA,EAAO,MAAA,GACjC,QAAA,GAAW,QAAA,CAAS,KAAA,EAAO,MAAA,EAAQ,SAAA,eACnC,OAAA,GAAU,OAAA,CAAQ,OAAA,CAAQ,SAAA,mBACzB,SAAA"}
package/dist/useColumn.js CHANGED
@@ -1,54 +1,2 @@
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
-
1
+ import{r as e,t}from"./invariant-DhtaPrYv.js";import{i as n,n as r,r as i,t as a}from"./useTableBase-CgF6IzQm.js";import{useCallback as o}from"react";const s=new WeakMap,c=new WeakMap,l=(e,n)=>{let r=e.getColumn(n);return t(r),r},u=(e,t)=>{let n=s.get(e.options);n||(n=new Map,s.set(e.options,n));let r=n.get(t);if(!r){let a=l(e,t),o=c.get(a);o||(o={toggleGroupingHandler:a.getToggleGroupingHandler(),toggleSortingHandler:a.getToggleSortingHandler(),toggleVisibilityHandler:a.getToggleVisibilityHandler()},c.set(a,o));let{toggleGroupingHandler:s,toggleSortingHandler:u,toggleVisibilityHandler:d}=o;r={...i(a),toggleGroupingHandler:s,toggleSortingHandler:u,toggleVisibilityHandler:d},n.set(t,r)}return r},d=(...t)=>{let[i,s,c=n,d=e]=r(t)?t:[void 0,...t],f=typeof s==`string`?s:s.id;return a(i,o(e=>c(u(e,f),l(e,f),e),[f,c]),d)},f=d,p=(...e)=>(t,n)=>f(...e,t,n);export{d as useColumn,p as useColumnʹ};
54
2
  //# sourceMappingURL=useColumn.js.map
@@ -1 +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"}
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 { useTableBase } from \"../lib/useTableBase\"\n\nexport interface ColumnSnapshot<\n TData extends RowData,\n TValue = unknown,\n> extends RunGetters<Column<TData, TValue>> {}\n\nconst columnSnapshotCache = new WeakMap<\n RequiredKeys<TableOptionsResolved<any>, \"state\">,\n Map<string, ColumnSnapshot<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 getColumn = <TData extends RowData, TValue = unknown>(table: Table<TData>, columnId: string) => {\n\tconst column = table.getColumn(columnId) as\n\t\t| Column<TData, TValue>\n\t\t| undefined\n\tinvariant(column)\n\treturn column\n}\n\nconst getColumnSnapshot = <TData extends RowData, TValue = unknown>(\n table: Table<TData>,\n columnId: string,\n): ColumnSnapshot<TData, TValue> => {\n let columnCache = columnSnapshotCache.get(table.options)\n if (!columnCache) {\n columnCache = new Map()\n columnSnapshotCache.set(table.options, columnCache)\n }\n\n let cached = columnCache.get(columnId)\n\n if (!cached) {\n const column = getColumn<TData, TValue>(table, columnId)\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 columnSnapshot: ColumnSnapshot<TData, TValue>,\n\tcolumn: Column<TData, TValue>,\n\ttable: Table<TData>\n) => Selection\n\nexport const useColumn = <\n TData extends RowData,\n TValue = unknown,\n Selection = ColumnSnapshot<TData, TValue>,\n>(\n ...args:\n | [\n table: Table<TData> | undefined,\n column:\n | Column<TData, TValue>\n | ColumnSnapshot<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 | ColumnSnapshot<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(\n\t\t\tgetColumnSnapshot<TData, TValue>(table, columnId),\n\t\t\tgetColumn<TData, TValue>(table, columnId),\n\t\t\ttable\n\t\t),\n [columnId, selector],\n )\n\n return useTableBase(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 | ColumnSnapshot<TData, TValue>\n | { id: string }\n | string,\n ]\n | [\n column:\n | Column<TData, TValue>\n | ColumnSnapshot<TData, TValue>\n | { id: string }\n | string,\n ]\n ) =>\n <Selection = ColumnSnapshot<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":"sJAyBA,MAAM,EAAsB,IAAI,QAK1B,EAAsB,IAAI,QAe1B,GAAsD,EAAqB,IAAqB,CACrG,IAAM,EAAS,EAAM,UAAU,CAAQ,EAIvC,OADA,EAAU,CAAM,EACT,CACR,EAEM,GACJ,EACA,IACkC,CAClC,IAAI,EAAc,EAAoB,IAAI,EAAM,OAAO,EAClD,IACH,EAAc,IAAI,IAClB,EAAoB,IAAI,EAAM,QAAS,CAAW,GAGpD,IAAI,EAAS,EAAY,IAAI,CAAQ,EAErC,GAAI,CAAC,EAAQ,CACX,IAAM,EAAS,EAAyB,EAAO,CAAQ,EAEnD,EAAiB,EAAoB,IAAI,CAAM,EAC9C,IACH,EAAiB,CACf,sBAAuB,EAAO,yBAAyB,EACvD,qBAAsB,EAAO,wBAAwB,EACrD,wBAAyB,EAAO,2BAA2B,CAC7D,EACA,EAAoB,IAAI,EAAQ,CAAc,GAGhD,GAAM,CACJ,wBACA,uBACA,2BACE,EAEJ,EAAS,CACP,GAAG,EAAW,CAAM,EACpB,wBACA,uBACA,yBACF,EAEA,EAAY,IAAI,EAAU,CAAM,CAClC,CAEA,OAAO,CACT,EAQa,GAKX,GAAG,IAoBW,CACd,GAAM,CACJ,EACA,EACA,EAAW,EACX,EAAU,GACR,EAAY,CAAI,EAAI,EAAO,CAAC,IAAA,GAAW,GAAG,CAAI,EAE5C,EAAW,OAAO,GAAe,SAAW,EAAa,EAAW,GAW1E,OAAO,EAAa,EATC,EAClB,GAAwB,EAC1B,EAAiC,EAAO,CAAQ,EAChD,EAAyB,EAAO,CAAQ,EACxC,CACD,EACE,CAAC,EAAU,CAAQ,CAGiB,EAAG,CAAO,CAClD,EAEM,EAAa,EAEb,GAEF,GAAG,KAkBH,EACA,IAEA,EAAe,GAAG,EAAM,EAAU,CAAQ"}