@tanstack/table-core 8.1.2 → 8.2.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 (51) hide show
  1. package/build/cjs/aggregationFns.js.map +1 -1
  2. package/build/cjs/core/cell.js.map +1 -1
  3. package/build/cjs/core/column.js.map +1 -1
  4. package/build/cjs/core/headers.js.map +1 -1
  5. package/build/cjs/core/row.js.map +1 -1
  6. package/build/cjs/core/table.js +2 -2
  7. package/build/cjs/core/table.js.map +1 -1
  8. package/build/cjs/features/ColumnSizing.js.map +1 -1
  9. package/build/cjs/features/Filters.js.map +1 -1
  10. package/build/cjs/features/Grouping.js.map +1 -1
  11. package/build/cjs/features/Ordering.js.map +1 -1
  12. package/build/cjs/features/Pinning.js.map +1 -1
  13. package/build/cjs/features/Sorting.js.map +1 -1
  14. package/build/cjs/features/Visibility.js.map +1 -1
  15. package/build/cjs/filterFns.js.map +1 -1
  16. package/build/cjs/utils/getCoreRowModel.js.map +1 -1
  17. package/build/cjs/utils/getFacetedMinMaxValues.js +1 -3
  18. package/build/cjs/utils/getFacetedMinMaxValues.js.map +1 -1
  19. package/build/cjs/utils/getGroupedRowModel.js +1 -1
  20. package/build/cjs/utils/getGroupedRowModel.js.map +1 -1
  21. package/build/cjs/utils.js +2 -2
  22. package/build/cjs/utils.js.map +1 -1
  23. package/build/esm/index.js +6 -8
  24. package/build/esm/index.js.map +1 -1
  25. package/build/stats-html.html +1 -1
  26. package/build/stats-react.json +308 -308
  27. package/build/types/index.d.ts +94 -91
  28. package/build/umd/index.development.js +6 -8
  29. package/build/umd/index.development.js.map +1 -1
  30. package/build/umd/index.production.js +1 -1
  31. package/build/umd/index.production.js.map +1 -1
  32. package/package.json +1 -1
  33. package/src/aggregationFns.ts +8 -11
  34. package/src/core/cell.ts +14 -14
  35. package/src/core/column.ts +58 -47
  36. package/src/core/headers.ts +32 -32
  37. package/src/core/row.ts +9 -9
  38. package/src/core/table.ts +11 -10
  39. package/src/features/ColumnSizing.ts +5 -5
  40. package/src/features/Filters.ts +9 -14
  41. package/src/features/Grouping.ts +15 -10
  42. package/src/features/Ordering.ts +4 -2
  43. package/src/features/Pinning.ts +10 -10
  44. package/src/features/Sorting.ts +2 -2
  45. package/src/features/Visibility.ts +11 -11
  46. package/src/filterFns.ts +13 -7
  47. package/src/types.ts +16 -12
  48. package/src/utils/getCoreRowModel.ts +1 -1
  49. package/src/utils/getFacetedMinMaxValues.ts +1 -1
  50. package/src/utils/getGroupedRowModel.ts +7 -1
  51. package/src/utils.ts +6 -3
@@ -1 +1 @@
1
- {"version":3,"file":"aggregationFns.js","sources":["../../src/aggregationFns.ts"],"sourcesContent":["import { AggregationFn } from './features/Grouping'\n\nconst sum: AggregationFn<any> = (columnId, _leafRows, childRows) => {\n // It's faster to just add the aggregations together instead of\n // process leaf nodes individually\n return childRows.reduce(\n (sum, next) => {\n const nextValue = next.getValue(columnId)\n return sum + (typeof nextValue === 'number' ? nextValue : 0)\n },\n 0\n )\n}\n\nconst min: AggregationFn<any> = (columnId, _leafRows, childRows) => {\n let min: number | undefined\n\n childRows.forEach(row => {\n const value = row.getValue(columnId)\n\n if (\n value != null &&\n (min! > value || (min === undefined && value >= value))\n ) {\n min = value\n }\n })\n\n return min\n}\n\nconst max: AggregationFn<any> = (columnId, _leafRows, childRows) => {\n let max: number | undefined\n\n childRows.forEach(row => {\n const value = row.getValue(columnId)\n if (\n value != null &&\n (max! < value || (max === undefined && value >= value))\n ) {\n max = value\n }\n })\n\n return max\n}\n\nconst extent: AggregationFn<any> = (columnId, _leafRows, childRows) => {\n let min: number | undefined\n let max: number | undefined\n\n childRows.forEach(row => {\n const value = row.getValue(columnId)\n if (value != null) {\n if (min === undefined) {\n if (value >= value) min = max = value\n } else {\n if (min > value) min = value\n if (max! < value) max = value\n }\n }\n })\n\n return [min, max]\n}\n\nconst mean: AggregationFn<any> = (columnId, leafRows) => {\n let count = 0\n let sum = 0\n\n leafRows.forEach(row => {\n let value = row.getValue(columnId)\n if (value != null && (value = +value) >= value) {\n ++count, (sum += value)\n }\n })\n\n if (count) return sum / count\n\n return\n}\n\nconst median: AggregationFn<any> = (columnId, leafRows) => {\n if (!leafRows.length) {\n return\n }\n\n let min = 0\n let max = 0\n\n leafRows.forEach(row => {\n let value = row.getValue(columnId)\n if (typeof value === 'number') {\n min = Math.min(min, value)\n max = Math.max(max, value)\n }\n })\n\n return (min + max) / 2\n}\n\nconst unique: AggregationFn<any> = (columnId, leafRows) => {\n return Array.from(new Set(leafRows.map(d => d.getValue(columnId))).values())\n}\n\nconst uniqueCount: AggregationFn<any> = (columnId, leafRows) => {\n return new Set(leafRows.map(d => d.getValue(columnId))).size\n}\n\nconst count: AggregationFn<any> = (_columnId, leafRows) => {\n return leafRows.length\n}\n\nexport const aggregationFns = {\n sum,\n min,\n max,\n extent,\n mean,\n median,\n unique,\n uniqueCount,\n count,\n}\n\nexport type BuiltInAggregationFn = keyof typeof aggregationFns\n"],"names":["sum","columnId","_leafRows","childRows","reduce","next","nextValue","getValue","min","forEach","row","value","undefined","max","extent","mean","leafRows","count","median","length","Math","unique","Array","from","Set","map","d","values","uniqueCount","size","_columnId","aggregationFns"],"mappings":";;;;;;;;;;;;;;AAEA,MAAMA,GAAuB,GAAG,CAACC,QAAD,EAAWC,SAAX,EAAsBC,SAAtB,KAAoC;AAClE;AACA;EACA,OAAOA,SAAS,CAACC,MAAV,CACL,CAACJ,GAAD,EAAMK,IAAN,KAAe;AACb,IAAA,MAAMC,SAAS,GAAGD,IAAI,CAACE,QAAL,CAAcN,QAAd,CAAlB,CAAA;IACA,OAAOD,GAAG,IAAI,OAAOM,SAAP,KAAqB,QAArB,GAAgCA,SAAhC,GAA4C,CAAhD,CAAV,CAAA;GAHG,EAKL,CALK,CAAP,CAAA;AAOD,CAVD,CAAA;;AAYA,MAAME,GAAuB,GAAG,CAACP,QAAD,EAAWC,SAAX,EAAsBC,SAAtB,KAAoC;AAClE,EAAA,IAAIK,GAAJ,CAAA;AAEAL,EAAAA,SAAS,CAACM,OAAV,CAAkBC,GAAG,IAAI;AACvB,IAAA,MAAMC,KAAK,GAAGD,GAAG,CAACH,QAAJ,CAAaN,QAAb,CAAd,CAAA;;AAEA,IAAA,IACEU,KAAK,IAAI,IAAT,KACCH,GAAG,GAAIG,KAAP,IAAiBH,GAAG,KAAKI,SAAR,IAAqBD,KAAK,IAAIA,KADhD,CADF,EAGE;AACAH,MAAAA,GAAG,GAAGG,KAAN,CAAA;AACD,KAAA;GARH,CAAA,CAAA;AAWA,EAAA,OAAOH,GAAP,CAAA;AACD,CAfD,CAAA;;AAiBA,MAAMK,GAAuB,GAAG,CAACZ,QAAD,EAAWC,SAAX,EAAsBC,SAAtB,KAAoC;AAClE,EAAA,IAAIU,GAAJ,CAAA;AAEAV,EAAAA,SAAS,CAACM,OAAV,CAAkBC,GAAG,IAAI;AACvB,IAAA,MAAMC,KAAK,GAAGD,GAAG,CAACH,QAAJ,CAAaN,QAAb,CAAd,CAAA;;AACA,IAAA,IACEU,KAAK,IAAI,IAAT,KACCE,GAAG,GAAIF,KAAP,IAAiBE,GAAG,KAAKD,SAAR,IAAqBD,KAAK,IAAIA,KADhD,CADF,EAGE;AACAE,MAAAA,GAAG,GAAGF,KAAN,CAAA;AACD,KAAA;GAPH,CAAA,CAAA;AAUA,EAAA,OAAOE,GAAP,CAAA;AACD,CAdD,CAAA;;AAgBA,MAAMC,MAA0B,GAAG,CAACb,QAAD,EAAWC,SAAX,EAAsBC,SAAtB,KAAoC;AACrE,EAAA,IAAIK,GAAJ,CAAA;AACA,EAAA,IAAIK,GAAJ,CAAA;AAEAV,EAAAA,SAAS,CAACM,OAAV,CAAkBC,GAAG,IAAI;AACvB,IAAA,MAAMC,KAAK,GAAGD,GAAG,CAACH,QAAJ,CAAaN,QAAb,CAAd,CAAA;;IACA,IAAIU,KAAK,IAAI,IAAb,EAAmB;MACjB,IAAIH,GAAG,KAAKI,SAAZ,EAAuB;QACrB,IAAID,KAAK,IAAIA,KAAb,EAAoBH,GAAG,GAAGK,GAAG,GAAGF,KAAZ,CAAA;AACrB,OAFD,MAEO;AACL,QAAA,IAAIH,GAAG,GAAGG,KAAV,EAAiBH,GAAG,GAAGG,KAAN,CAAA;AACjB,QAAA,IAAIE,GAAG,GAAIF,KAAX,EAAkBE,GAAG,GAAGF,KAAN,CAAA;AACnB,OAAA;AACF,KAAA;GATH,CAAA,CAAA;AAYA,EAAA,OAAO,CAACH,GAAD,EAAMK,GAAN,CAAP,CAAA;AACD,CAjBD,CAAA;;AAmBA,MAAME,IAAwB,GAAG,CAACd,QAAD,EAAWe,QAAX,KAAwB;EACvD,IAAIC,KAAK,GAAG,CAAZ,CAAA;EACA,IAAIjB,GAAG,GAAG,CAAV,CAAA;AAEAgB,EAAAA,QAAQ,CAACP,OAAT,CAAiBC,GAAG,IAAI;AACtB,IAAA,IAAIC,KAAK,GAAGD,GAAG,CAACH,QAAJ,CAAaN,QAAb,CAAZ,CAAA;;IACA,IAAIU,KAAK,IAAI,IAAT,IAAiB,CAACA,KAAK,GAAG,CAACA,KAAV,KAAoBA,KAAzC,EAAgD;AAC9C,MAAA,EAAEM,KAAF,EAAUjB,GAAG,IAAIW,KAAjB,CAAA;AACD,KAAA;GAJH,CAAA,CAAA;AAOA,EAAA,IAAIM,KAAJ,EAAW,OAAOjB,GAAG,GAAGiB,KAAb,CAAA;AAEX,EAAA,OAAA;AACD,CAdD,CAAA;;AAgBA,MAAMC,MAA0B,GAAG,CAACjB,QAAD,EAAWe,QAAX,KAAwB;AACzD,EAAA,IAAI,CAACA,QAAQ,CAACG,MAAd,EAAsB;AACpB,IAAA,OAAA;AACD,GAAA;;EAED,IAAIX,GAAG,GAAG,CAAV,CAAA;EACA,IAAIK,GAAG,GAAG,CAAV,CAAA;AAEAG,EAAAA,QAAQ,CAACP,OAAT,CAAiBC,GAAG,IAAI;AACtB,IAAA,IAAIC,KAAK,GAAGD,GAAG,CAACH,QAAJ,CAAaN,QAAb,CAAZ,CAAA;;AACA,IAAA,IAAI,OAAOU,KAAP,KAAiB,QAArB,EAA+B;MAC7BH,GAAG,GAAGY,IAAI,CAACZ,GAAL,CAASA,GAAT,EAAcG,KAAd,CAAN,CAAA;MACAE,GAAG,GAAGO,IAAI,CAACP,GAAL,CAASA,GAAT,EAAcF,KAAd,CAAN,CAAA;AACD,KAAA;GALH,CAAA,CAAA;AAQA,EAAA,OAAO,CAACH,GAAG,GAAGK,GAAP,IAAc,CAArB,CAAA;AACD,CAjBD,CAAA;;AAmBA,MAAMQ,MAA0B,GAAG,CAACpB,QAAD,EAAWe,QAAX,KAAwB;EACzD,OAAOM,KAAK,CAACC,IAAN,CAAW,IAAIC,GAAJ,CAAQR,QAAQ,CAACS,GAAT,CAAaC,CAAC,IAAIA,CAAC,CAACnB,QAAF,CAAWN,QAAX,CAAlB,CAAR,CAAA,CAAiD0B,MAAjD,EAAX,CAAP,CAAA;AACD,CAFD,CAAA;;AAIA,MAAMC,WAA+B,GAAG,CAAC3B,QAAD,EAAWe,QAAX,KAAwB;AAC9D,EAAA,OAAO,IAAIQ,GAAJ,CAAQR,QAAQ,CAACS,GAAT,CAAaC,CAAC,IAAIA,CAAC,CAACnB,QAAF,CAAWN,QAAX,CAAlB,CAAR,EAAiD4B,IAAxD,CAAA;AACD,CAFD,CAAA;;AAIA,MAAMZ,KAAyB,GAAG,CAACa,SAAD,EAAYd,QAAZ,KAAyB;EACzD,OAAOA,QAAQ,CAACG,MAAhB,CAAA;AACD,CAFD,CAAA;;AAIO,MAAMY,cAAc,GAAG;EAC5B/B,GAD4B;EAE5BQ,GAF4B;EAG5BK,GAH4B;EAI5BC,MAJ4B;EAK5BC,IAL4B;EAM5BG,MAN4B;EAO5BG,MAP4B;EAQ5BO,WAR4B;AAS5BX,EAAAA,KAAAA;AAT4B;;;;"}
1
+ {"version":3,"file":"aggregationFns.js","sources":["../../src/aggregationFns.ts"],"sourcesContent":["import { AggregationFn } from './features/Grouping'\n\nconst sum: AggregationFn<any> = (columnId, _leafRows, childRows) => {\n // It's faster to just add the aggregations together instead of\n // process leaf nodes individually\n return childRows.reduce((sum, next) => {\n const nextValue = next.getValue(columnId)\n return sum + (typeof nextValue === 'number' ? nextValue : 0)\n }, 0)\n}\n\nconst min: AggregationFn<any> = (columnId, _leafRows, childRows) => {\n let min: number | undefined\n\n childRows.forEach(row => {\n const value = row.getValue<number>(columnId)\n\n if (\n value != null &&\n (min! > value || (min === undefined && value >= value))\n ) {\n min = value\n }\n })\n\n return min\n}\n\nconst max: AggregationFn<any> = (columnId, _leafRows, childRows) => {\n let max: number | undefined\n\n childRows.forEach(row => {\n const value = row.getValue<number>(columnId)\n if (\n value != null &&\n (max! < value || (max === undefined && value >= value))\n ) {\n max = value\n }\n })\n\n return max\n}\n\nconst extent: AggregationFn<any> = (columnId, _leafRows, childRows) => {\n let min: number | undefined\n let max: number | undefined\n\n childRows.forEach(row => {\n const value = row.getValue<number>(columnId)\n if (value != null) {\n if (min === undefined) {\n if (value >= value) min = max = value\n } else {\n if (min > value) min = value\n if (max! < value) max = value\n }\n }\n })\n\n return [min, max]\n}\n\nconst mean: AggregationFn<any> = (columnId, leafRows) => {\n let count = 0\n let sum = 0\n\n leafRows.forEach(row => {\n let value = row.getValue<number>(columnId)\n if (value != null && (value = +value) >= value) {\n ++count, (sum += value)\n }\n })\n\n if (count) return sum / count\n\n return\n}\n\nconst median: AggregationFn<any> = (columnId, leafRows) => {\n if (!leafRows.length) {\n return\n }\n\n let min = 0\n let max = 0\n\n leafRows.forEach(row => {\n let value = row.getValue(columnId)\n if (typeof value === 'number') {\n min = Math.min(min, value)\n max = Math.max(max, value)\n }\n })\n\n return (min + max) / 2\n}\n\nconst unique: AggregationFn<any> = (columnId, leafRows) => {\n return Array.from(new Set(leafRows.map(d => d.getValue(columnId))).values())\n}\n\nconst uniqueCount: AggregationFn<any> = (columnId, leafRows) => {\n return new Set(leafRows.map(d => d.getValue(columnId))).size\n}\n\nconst count: AggregationFn<any> = (_columnId, leafRows) => {\n return leafRows.length\n}\n\nexport const aggregationFns = {\n sum,\n min,\n max,\n extent,\n mean,\n median,\n unique,\n uniqueCount,\n count,\n}\n\nexport type BuiltInAggregationFn = keyof typeof aggregationFns\n"],"names":["sum","columnId","_leafRows","childRows","reduce","next","nextValue","getValue","min","forEach","row","value","undefined","max","extent","mean","leafRows","count","median","length","Math","unique","Array","from","Set","map","d","values","uniqueCount","size","_columnId","aggregationFns"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"cell.js","sources":["../../../src/core/cell.ts"],"sourcesContent":["import { RowData, Cell, Column, Row, Table } from '../types'\n\nexport type CoreCell<TData extends RowData> = {\n id: string\n getValue: () => any\n renderValue: () => unknown\n row: Row<TData>\n column: Column<TData>\n getContext: () => {\n table: Table<TData>\n column: Column<TData>\n row: Row<TData>\n cell: Cell<TData>\n getValue: () => any\n renderValue: () => any\n }\n}\n\nexport function createCell<TData extends RowData>(\n table: Table<TData>,\n row: Row<TData>,\n column: Column<TData>,\n columnId: string\n) {\n const getRenderValue = () =>\n cell.getValue() ?? table.options.renderFallbackValue\n\n const cell: CoreCell<TData> = {\n id: `${row.id}_${column.id}`,\n row,\n column,\n getValue: () => row.getValue(columnId),\n renderValue: getRenderValue,\n getContext: () => ({\n table,\n column,\n row,\n cell: cell as Cell<TData>,\n getValue: cell.getValue,\n renderValue: cell.renderValue,\n }),\n }\n\n table._features.forEach(feature => {\n Object.assign(\n cell,\n feature.createCell?.(\n cell as Cell<TData>,\n column,\n row as Row<TData>,\n table\n )\n )\n }, {})\n\n return cell as Cell<TData>\n}\n"],"names":["createCell","table","row","column","columnId","getRenderValue","cell","getValue","options","renderFallbackValue","id","renderValue","getContext","_features","forEach","feature","Object","assign"],"mappings":";;;;;;;;;;;;;;AAkBO,SAASA,UAAT,CACLC,KADK,EAELC,GAFK,EAGLC,MAHK,EAILC,QAJK,EAKL;AACA,EAAA,MAAMC,cAAc,GAAG,MAAA;AAAA,IAAA,IAAA,cAAA,CAAA;;IAAA,OACrBC,CAAAA,cAAAA,GAAAA,IAAI,CAACC,QAAL,EADqB,6BACFN,KAAK,CAACO,OAAN,CAAcC,mBADZ,CAAA;GAAvB,CAAA;;AAGA,EAAA,MAAMH,IAAqB,GAAG;AAC5BI,IAAAA,EAAE,EAAKR,GAAG,CAACQ,EAAT,GAAeP,GAAAA,GAAAA,MAAM,CAACO,EADI;IAE5BR,GAF4B;IAG5BC,MAH4B;AAI5BI,IAAAA,QAAQ,EAAE,MAAML,GAAG,CAACK,QAAJ,CAAaH,QAAb,CAJY;AAK5BO,IAAAA,WAAW,EAAEN,cALe;AAM5BO,IAAAA,UAAU,EAAE,OAAO;MACjBX,KADiB;MAEjBE,MAFiB;MAGjBD,GAHiB;AAIjBI,MAAAA,IAAI,EAAEA,IAJW;MAKjBC,QAAQ,EAAED,IAAI,CAACC,QALE;MAMjBI,WAAW,EAAEL,IAAI,CAACK,WAAAA;KANR,CAAA;GANd,CAAA;;AAgBAV,EAAAA,KAAK,CAACY,SAAN,CAAgBC,OAAhB,CAAwBC,OAAO,IAAI;IACjCC,MAAM,CAACC,MAAP,CACEX,IADF,EAEES,OAAO,CAACf,UAFV,IAEEe,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,OAAO,CAACf,UAAR,CACEM,IADF,EAEEH,MAFF,EAGED,GAHF,EAIED,KAJF,CAFF,CAAA,CAAA;AASD,GAVD,EAUG,EAVH,CAAA,CAAA;;AAYA,EAAA,OAAOK,IAAP,CAAA;AACD;;;;"}
1
+ {"version":3,"file":"cell.js","sources":["../../../src/core/cell.ts"],"sourcesContent":["import { RowData, Cell, Column, Row, Table } from '../types'\n\nexport type CoreCell<TData extends RowData, TValue> = {\n id: string\n getValue: <TTValue = TValue>() => TTValue\n renderValue: <TTValue = TValue>() => TTValue | null\n row: Row<TData>\n column: Column<TData, TValue>\n getContext: () => {\n table: Table<TData>\n column: Column<TData, TValue>\n row: Row<TData>\n cell: Cell<TData, TValue>\n getValue: <TTValue = TValue>() => TTValue\n renderValue: <TTValue = TValue>() => TTValue | null\n }\n}\n\nexport function createCell<TData extends RowData, TValue>(\n table: Table<TData>,\n row: Row<TData>,\n column: Column<TData, TValue>,\n columnId: string\n) {\n const getRenderValue = () =>\n cell.getValue() ?? table.options.renderFallbackValue\n\n const cell: CoreCell<TData, TValue> = {\n id: `${row.id}_${column.id}`,\n row,\n column,\n getValue: () => row.getValue(columnId),\n renderValue: getRenderValue,\n getContext: () => ({\n table,\n column,\n row,\n cell: cell as Cell<TData, TValue>,\n getValue: cell.getValue,\n renderValue: cell.renderValue,\n }),\n }\n\n table._features.forEach(feature => {\n Object.assign(\n cell,\n feature.createCell?.(\n cell as Cell<TData, TValue>,\n column,\n row as Row<TData>,\n table\n )\n )\n }, {})\n\n return cell as Cell<TData, TValue>\n}\n"],"names":["createCell","table","row","column","columnId","getRenderValue","cell","getValue","options","renderFallbackValue","id","renderValue","getContext","_features","forEach","feature","Object","assign"],"mappings":";;;;;;;;;;;;;;AAkBO,SAASA,UAAT,CACLC,KADK,EAELC,GAFK,EAGLC,MAHK,EAILC,QAJK,EAKL;AACA,EAAA,MAAMC,cAAc,GAAG,MAAA;AAAA,IAAA,IAAA,cAAA,CAAA;;IAAA,OACrBC,CAAAA,cAAAA,GAAAA,IAAI,CAACC,QAAL,EADqB,6BACFN,KAAK,CAACO,OAAN,CAAcC,mBADZ,CAAA;GAAvB,CAAA;;AAGA,EAAA,MAAMH,IAA6B,GAAG;AACpCI,IAAAA,EAAE,EAAKR,GAAG,CAACQ,EAAT,GAAeP,GAAAA,GAAAA,MAAM,CAACO,EADY;IAEpCR,GAFoC;IAGpCC,MAHoC;AAIpCI,IAAAA,QAAQ,EAAE,MAAML,GAAG,CAACK,QAAJ,CAAaH,QAAb,CAJoB;AAKpCO,IAAAA,WAAW,EAAEN,cALuB;AAMpCO,IAAAA,UAAU,EAAE,OAAO;MACjBX,KADiB;MAEjBE,MAFiB;MAGjBD,GAHiB;AAIjBI,MAAAA,IAAI,EAAEA,IAJW;MAKjBC,QAAQ,EAAED,IAAI,CAACC,QALE;MAMjBI,WAAW,EAAEL,IAAI,CAACK,WAAAA;KANR,CAAA;GANd,CAAA;;AAgBAV,EAAAA,KAAK,CAACY,SAAN,CAAgBC,OAAhB,CAAwBC,OAAO,IAAI;IACjCC,MAAM,CAACC,MAAP,CACEX,IADF,EAEES,OAAO,CAACf,UAFV,IAEEe,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,OAAO,CAACf,UAAR,CACEM,IADF,EAEEH,MAFF,EAGED,GAHF,EAIED,KAJF,CAFF,CAAA,CAAA;AASD,GAVD,EAUG,EAVH,CAAA,CAAA;;AAYA,EAAA,OAAOK,IAAP,CAAA;AACD;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"column.js","sources":["../../../src/core/column.ts"],"sourcesContent":["import {\n Cell,\n Column,\n Header,\n TableGenerics,\n Table,\n Row,\n AccessorFn,\n ColumnDef,\n ColumnDefTemplate,\n RowData,\n} from '../types'\nimport { memo, UnionToIntersection } from '../utils'\nimport { CoreCell } from './cell'\nimport { CoreHeader } from './headers'\n\nexport type CoreColumnDefType = 'data' | 'display' | 'group'\n\ntype CoreColumnDefBase<TData extends RowData> = {\n columns?: ColumnDef<TData>[]\n header?: ColumnDefTemplate<ReturnType<CoreHeader<TData>['getContext']>>\n footer?: ColumnDefTemplate<ReturnType<CoreHeader<TData>['getContext']>>\n cell?: ColumnDefTemplate<ReturnType<CoreCell<TData>['getContext']>>\n meta?: unknown\n}\n\ntype CoreColumnDefDisplay<TData extends RowData> = CoreColumnDefBase<TData> & {\n id: string\n}\n\ntype CoreColumnDefDisplayWithStringHeader<TData extends RowData> =\n CoreColumnDefBase<TData> & {\n header: string\n id?: string\n }\n\ntype CoreColumnDefAccessorFn<TData extends RowData> =\n CoreColumnDefBase<TData> & {\n accessorFn: AccessorFn<TData>\n id: string\n // accessorKey?: never\n }\n\ntype CoreColumnDefAccessorKey<TData extends RowData> =\n CoreColumnDefBase<TData> & {\n accessorKey: keyof TData\n id?: string\n // accessorFn?: never\n }\n\nexport type CoreColumnDef<TData extends RowData> =\n | CoreColumnDefDisplay<TData>\n | CoreColumnDefDisplayWithStringHeader<TData>\n | CoreColumnDefAccessorFn<TData>\n | CoreColumnDefAccessorKey<TData>\n\nexport type CoreColumnDefResolved<TData extends RowData> = Partial<\n UnionToIntersection<CoreColumnDef<TData>>\n>\n\nexport type CoreColumn<TData extends RowData> = {\n id: string\n depth: number\n accessorFn?: AccessorFn<TData>\n columnDef: ColumnDef<TData>\n columns: Column<TData>[]\n parent?: Column<TData>\n getFlatColumns: () => Column<TData>[]\n getLeafColumns: () => Column<TData>[]\n}\n\nexport function createColumn<TData extends RowData>(\n table: Table<TData>,\n columnDef: ColumnDef<TData>,\n depth: number,\n parent?: Column<TData>\n) {\n const defaultColumn = table._getDefaultColumnDef()\n\n const resolvedColumnDef = {\n ...defaultColumn,\n ...columnDef,\n } as CoreColumnDefResolved<TData>\n\n let id =\n resolvedColumnDef.id ??\n resolvedColumnDef.accessorKey ??\n (typeof resolvedColumnDef.header === 'string'\n ? resolvedColumnDef.header\n : undefined)\n\n let accessorFn: AccessorFn<TData> | undefined\n\n if (resolvedColumnDef.accessorFn) {\n accessorFn = resolvedColumnDef.accessorFn\n } else if (resolvedColumnDef.accessorKey) {\n accessorFn = (originalRow?: TData) =>\n (originalRow as any)[resolvedColumnDef.accessorKey]\n }\n\n if (!id) {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error(\n resolvedColumnDef.accessorFn\n ? `Columns require an id when using an accessorFn`\n : `Columns require an id when using a non-string header`\n )\n }\n throw new Error()\n }\n\n let column: CoreColumn<TData> = {\n id: `${String(id)}`,\n accessorFn,\n parent: parent as any,\n depth,\n columnDef: resolvedColumnDef as ColumnDef<TData>,\n columns: [],\n getFlatColumns: memo(\n () => [true],\n () => {\n return [\n column as Column<TData>,\n ...column.columns?.flatMap(d => d.getFlatColumns()),\n ]\n },\n {\n key: process.env.NODE_ENV === 'production' && 'column.getFlatColumns',\n debug: () => table.options.debugAll ?? table.options.debugColumns,\n }\n ),\n getLeafColumns: memo(\n () => [table._getOrderColumnsFn()],\n orderColumns => {\n if (column.columns?.length) {\n let leafColumns = column.columns.flatMap(column =>\n column.getLeafColumns()\n )\n\n return orderColumns(leafColumns)\n }\n\n return [column as Column<TData>]\n },\n {\n key: process.env.NODE_ENV === 'production' && 'column.getLeafColumns',\n debug: () => table.options.debugAll ?? table.options.debugColumns,\n }\n ),\n }\n\n column = table._features.reduce((obj, feature) => {\n return Object.assign(obj, feature.createColumn?.(column, table))\n }, column)\n\n // Yes, we have to convert table to uknown, because we know more than the compiler here.\n return column as Column<TData>\n}\n"],"names":["createColumn","table","columnDef","depth","parent","defaultColumn","_getDefaultColumnDef","resolvedColumnDef","id","accessorKey","header","undefined","accessorFn","originalRow","process","env","NODE_ENV","Error","column","String","columns","getFlatColumns","memo","flatMap","d","key","debug","options","debugAll","debugColumns","getLeafColumns","_getOrderColumnsFn","orderColumns","length","leafColumns","_features","reduce","obj","feature","Object","assign"],"mappings":";;;;;;;;;;;;;;;;AAuEO,SAASA,YAAT,CACLC,KADK,EAELC,SAFK,EAGLC,KAHK,EAILC,MAJK,EAKL;AAAA,EAAA,IAAA,IAAA,EAAA,qBAAA,CAAA;;AACA,EAAA,MAAMC,aAAa,GAAGJ,KAAK,CAACK,oBAAN,EAAtB,CAAA;;AAEA,EAAA,MAAMC,iBAAiB,GAAG,EACxB,GAAGF,aADqB;IAExB,GAAGH,SAAAA;GAFL,CAAA;EAKA,IAAIM,EAAE,oCACJD,iBAAiB,CAACC,EADd,KAEJD,IAAAA,GAAAA,qBAAAA,GAAAA,iBAAiB,CAACE,WAFd,KAAA,IAAA,GAAA,IAAA,GAGH,OAAOF,iBAAiB,CAACG,MAAzB,KAAoC,QAApC,GACGH,iBAAiB,CAACG,MADrB,GAEGC,SALN,CAAA;AAOA,EAAA,IAAIC,UAAJ,CAAA;;EAEA,IAAIL,iBAAiB,CAACK,UAAtB,EAAkC;IAChCA,UAAU,GAAGL,iBAAiB,CAACK,UAA/B,CAAA;AACD,GAFD,MAEO,IAAIL,iBAAiB,CAACE,WAAtB,EAAmC;IACxCG,UAAU,GAAIC,WAAD,IACVA,WAAD,CAAqBN,iBAAiB,CAACE,WAAvC,CADF,CAAA;AAED,GAAA;;EAED,IAAI,CAACD,EAAL,EAAS;AACP,IAAA,IAAIM,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAA7B,EAA2C;AACzC,MAAA,MAAM,IAAIC,KAAJ,CACJV,iBAAiB,CAACK,UAAlB,4GADI,CAAN,CAAA;AAKD,KAAA;;IACD,MAAM,IAAIK,KAAJ,EAAN,CAAA;AACD,GAAA;;AAED,EAAA,IAAIC,MAAyB,GAAG;AAC9BV,IAAAA,EAAE,EAAKW,EAAAA,GAAAA,MAAM,CAACX,EAAD,CADiB;IAE9BI,UAF8B;AAG9BR,IAAAA,MAAM,EAAEA,MAHsB;IAI9BD,KAJ8B;AAK9BD,IAAAA,SAAS,EAAEK,iBALmB;AAM9Ba,IAAAA,OAAO,EAAE,EANqB;IAO9BC,cAAc,EAAEC,UAAI,CAClB,MAAM,CAAC,IAAD,CADY,EAElB,MAAM;AAAA,MAAA,IAAA,eAAA,CAAA;;AACJ,MAAA,OAAO,CACLJ,MADK,EAEL,uBAAGA,MAAM,CAACE,OAAV,KAAG,IAAA,GAAA,KAAA,CAAA,GAAA,eAAA,CAAgBG,OAAhB,CAAwBC,CAAC,IAAIA,CAAC,CAACH,cAAF,EAA7B,CAAH,CAFK,CAAP,CAAA;AAID,KAPiB,EAQlB;MACEI,GAAG,EAAEX,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAAzB,IAAyC,uBADhD;AAEEU,MAAAA,KAAK,EAAE,MAAA;AAAA,QAAA,IAAA,qBAAA,CAAA;;QAAA,OAAMzB,CAAAA,qBAAAA,GAAAA,KAAK,CAAC0B,OAAN,CAAcC,QAApB,oCAAgC3B,KAAK,CAAC0B,OAAN,CAAcE,YAA9C,CAAA;AAAA,OAAA;AAFT,KARkB,CAPU;AAoB9BC,IAAAA,cAAc,EAAER,UAAI,CAClB,MAAM,CAACrB,KAAK,CAAC8B,kBAAN,EAAD,CADY,EAElBC,YAAY,IAAI;AAAA,MAAA,IAAA,gBAAA,CAAA;;AACd,MAAA,IAAA,CAAA,gBAAA,GAAId,MAAM,CAACE,OAAX,KAAI,IAAA,IAAA,gBAAA,CAAgBa,MAApB,EAA4B;AAC1B,QAAA,IAAIC,WAAW,GAAGhB,MAAM,CAACE,OAAP,CAAeG,OAAf,CAAuBL,MAAM,IAC7CA,MAAM,CAACY,cAAP,EADgB,CAAlB,CAAA;QAIA,OAAOE,YAAY,CAACE,WAAD,CAAnB,CAAA;AACD,OAAA;;MAED,OAAO,CAAChB,MAAD,CAAP,CAAA;AACD,KAZiB,EAalB;MACEO,GAAG,EAAEX,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAAzB,IAAyC,uBADhD;AAEEU,MAAAA,KAAK,EAAE,MAAA;AAAA,QAAA,IAAA,sBAAA,CAAA;;QAAA,OAAMzB,CAAAA,sBAAAA,GAAAA,KAAK,CAAC0B,OAAN,CAAcC,QAApB,qCAAgC3B,KAAK,CAAC0B,OAAN,CAAcE,YAA9C,CAAA;AAAA,OAAA;KAfS,CAAA;GApBtB,CAAA;EAwCAX,MAAM,GAAGjB,KAAK,CAACkC,SAAN,CAAgBC,MAAhB,CAAuB,CAACC,GAAD,EAAMC,OAAN,KAAkB;AAChD,IAAA,OAAOC,MAAM,CAACC,MAAP,CAAcH,GAAd,EAAmBC,OAAO,CAACtC,YAA3B,IAAmBsC,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,OAAO,CAACtC,YAAR,CAAuBkB,MAAvB,EAA+BjB,KAA/B,CAAnB,CAAP,CAAA;AACD,GAFQ,EAENiB,MAFM,CAAT,CA3EA;;AAgFA,EAAA,OAAOA,MAAP,CAAA;AACD;;;;"}
1
+ {"version":3,"file":"column.js","sources":["../../../src/core/column.ts"],"sourcesContent":["import {\n Column,\n Table,\n AccessorFn,\n ColumnDef,\n ColumnDefTemplate,\n RowData,\n ColumnMeta,\n} from '../types'\nimport { memo, UnionToIntersection } from '../utils'\nimport { CoreCell } from './cell'\nimport { CoreHeader } from './headers'\n\nexport type CoreColumnDefType = 'data' | 'display' | 'group'\n\ntype CoreColumnDefBase<TData extends RowData, TValue> = {\n columns?: ColumnDef<TData>[]\n header?: ColumnDefTemplate<\n ReturnType<CoreHeader<TData, TValue>['getContext']>\n >\n footer?: ColumnDefTemplate<\n ReturnType<CoreHeader<TData, TValue>['getContext']>\n >\n cell?: ColumnDefTemplate<ReturnType<CoreCell<TData, TValue>['getContext']>>\n meta?: ColumnMeta\n}\n\ntype CoreColumnDefDisplay<TData extends RowData, TValue> = CoreColumnDefBase<\n TData,\n TValue\n> & {\n id: string\n}\n\ntype CoreColumnDefDisplayWithStringHeader<\n TData extends RowData,\n TValue\n> = CoreColumnDefBase<TData, TValue> & {\n header: string\n id?: string\n}\n\ntype CoreColumnDefAccessorFn<\n TData extends RowData,\n TValue = unknown\n> = CoreColumnDefBase<TData, TValue> & {\n accessorFn: AccessorFn<TData, TValue>\n id: string\n // accessorKey?: never\n}\n\ntype CoreColumnDefAccessorKey<\n TData extends RowData,\n TValue\n> = CoreColumnDefBase<TData, TValue> & {\n accessorKey: keyof TData\n id?: string\n // accessorFn?: never\n}\n\nexport type CoreColumnDef<TData extends RowData, TValue> =\n | CoreColumnDefDisplay<TData, TValue>\n | CoreColumnDefDisplayWithStringHeader<TData, TValue>\n | CoreColumnDefAccessorFn<TData>\n | CoreColumnDefAccessorKey<TData, TValue>\n\nexport type CoreColumnDefResolved<\n TData extends RowData,\n TValue = unknown\n> = Partial<UnionToIntersection<CoreColumnDef<TData, TValue>>>\n\nexport type CoreColumn<TData extends RowData, TValue> = {\n id: string\n depth: number\n accessorFn?: AccessorFn<TData, TValue>\n columnDef: ColumnDef<TData>\n columns: Column<TData, TValue>[]\n parent?: Column<TData, TValue>\n getFlatColumns: () => Column<TData, TValue>[]\n getLeafColumns: () => Column<TData, TValue>[]\n}\n\nexport function createColumn<TData extends RowData, TValue>(\n table: Table<TData>,\n columnDef: ColumnDef<TData>,\n depth: number,\n parent?: Column<TData, TValue>\n) {\n const defaultColumn = table._getDefaultColumnDef()\n\n const resolvedColumnDef = {\n ...defaultColumn,\n ...columnDef,\n } as CoreColumnDefResolved<TData>\n\n let id =\n resolvedColumnDef.id ??\n resolvedColumnDef.accessorKey ??\n (typeof resolvedColumnDef.header === 'string'\n ? resolvedColumnDef.header\n : undefined)\n\n let accessorFn: AccessorFn<TData> | undefined\n\n if (resolvedColumnDef.accessorFn) {\n accessorFn = resolvedColumnDef.accessorFn\n } else if (resolvedColumnDef.accessorKey) {\n accessorFn = (originalRow: TData) =>\n (originalRow as any)[resolvedColumnDef.accessorKey]\n }\n\n if (!id) {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error(\n resolvedColumnDef.accessorFn\n ? `Columns require an id when using an accessorFn`\n : `Columns require an id when using a non-string header`\n )\n }\n throw new Error()\n }\n\n let column: CoreColumn<TData, any> = {\n id: `${String(id)}`,\n accessorFn,\n parent: parent as any,\n depth,\n columnDef: resolvedColumnDef as ColumnDef<TData>,\n columns: [],\n getFlatColumns: memo(\n () => [true],\n () => {\n return [\n column as Column<TData, TValue>,\n ...column.columns?.flatMap(d => d.getFlatColumns()),\n ]\n },\n {\n key: process.env.NODE_ENV === 'production' && 'column.getFlatColumns',\n debug: () => table.options.debugAll ?? table.options.debugColumns,\n }\n ),\n getLeafColumns: memo(\n () => [table._getOrderColumnsFn()],\n orderColumns => {\n if (column.columns?.length) {\n let leafColumns = column.columns.flatMap(column =>\n column.getLeafColumns()\n )\n\n return orderColumns(leafColumns)\n }\n\n return [column as Column<TData, TValue>]\n },\n {\n key: process.env.NODE_ENV === 'production' && 'column.getLeafColumns',\n debug: () => table.options.debugAll ?? table.options.debugColumns,\n }\n ),\n }\n\n column = table._features.reduce((obj, feature) => {\n return Object.assign(obj, feature.createColumn?.(column, table))\n }, column)\n\n // Yes, we have to convert table to uknown, because we know more than the compiler here.\n return column as Column<TData, TValue>\n}\n"],"names":["createColumn","table","columnDef","depth","parent","defaultColumn","_getDefaultColumnDef","resolvedColumnDef","id","accessorKey","header","undefined","accessorFn","originalRow","process","env","NODE_ENV","Error","column","String","columns","getFlatColumns","memo","flatMap","d","key","debug","options","debugAll","debugColumns","getLeafColumns","_getOrderColumnsFn","orderColumns","length","leafColumns","_features","reduce","obj","feature","Object","assign"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"headers.js","sources":["../../../src/core/headers.ts"],"sourcesContent":["import { RowData, Column, Header, HeaderGroup, Table } from '../types'\nimport { memo } from '../utils'\nimport { TableFeature } from './table'\n\nexport type CoreHeaderGroup<TData extends RowData> = {\n id: string\n depth: number\n headers: Header<TData>[]\n}\n\nexport type CoreHeader<TData extends RowData> = {\n id: string\n index: number\n depth: number\n column: Column<TData>\n headerGroup: HeaderGroup<TData>\n subHeaders: Header<TData>[]\n colSpan: number\n rowSpan: number\n getLeafHeaders: () => Header<TData>[]\n isPlaceholder: boolean\n placeholderId?: string\n getContext: () => {\n table: Table<TData>\n header: Header<TData>\n column: Column<TData>\n }\n}\n\nexport type HeadersInstance<TData extends RowData> = {\n getHeaderGroups: () => HeaderGroup<TData>[]\n getLeftHeaderGroups: () => HeaderGroup<TData>[]\n getCenterHeaderGroups: () => HeaderGroup<TData>[]\n getRightHeaderGroups: () => HeaderGroup<TData>[]\n\n getFooterGroups: () => HeaderGroup<TData>[]\n getLeftFooterGroups: () => HeaderGroup<TData>[]\n getCenterFooterGroups: () => HeaderGroup<TData>[]\n getRightFooterGroups: () => HeaderGroup<TData>[]\n\n getFlatHeaders: () => Header<TData>[]\n getLeftFlatHeaders: () => Header<TData>[]\n getCenterFlatHeaders: () => Header<TData>[]\n getRightFlatHeaders: () => Header<TData>[]\n\n getLeafHeaders: () => Header<TData>[]\n getLeftLeafHeaders: () => Header<TData>[]\n getCenterLeafHeaders: () => Header<TData>[]\n getRightLeafHeaders: () => Header<TData>[]\n}\n\n//\n\nfunction createHeader<TData extends RowData>(\n table: Table<TData>,\n column: Column<TData>,\n options: {\n id?: string\n isPlaceholder?: boolean\n placeholderId?: string\n index: number\n depth: number\n }\n) {\n const id = options.id ?? column.id\n\n let header: CoreHeader<TData> = {\n id,\n column,\n index: options.index,\n isPlaceholder: !!options.isPlaceholder,\n placeholderId: options.placeholderId,\n depth: options.depth,\n subHeaders: [],\n colSpan: 0,\n rowSpan: 0,\n headerGroup: null!,\n getLeafHeaders: (): Header<TData>[] => {\n const leafHeaders: CoreHeader<TData>[] = []\n\n const recurseHeader = (h: CoreHeader<TData>) => {\n if (h.subHeaders && h.subHeaders.length) {\n h.subHeaders.map(recurseHeader)\n }\n leafHeaders.push(h)\n }\n\n recurseHeader(header)\n\n return leafHeaders as Header<TData>[]\n },\n getContext: () => ({\n table,\n header: header as Header<TData>,\n column,\n }),\n }\n\n table._features.forEach(feature => {\n Object.assign(header, feature.createHeader?.(header, table))\n })\n\n return header as Header<TData>\n}\n\nexport const Headers: TableFeature = {\n createTable: <TData extends RowData>(\n table: Table<TData>\n ): HeadersInstance<TData> => {\n return {\n // Header Groups\n\n getHeaderGroups: memo(\n () => [\n table.getAllColumns(),\n table.getVisibleLeafColumns(),\n table.getState().columnPinning.left,\n table.getState().columnPinning.right,\n ],\n (allColumns, leafColumns, left, right) => {\n const leftColumns =\n left\n ?.map(columnId => leafColumns.find(d => d.id === columnId)!)\n .filter(Boolean) ?? []\n\n const rightColumns =\n right\n ?.map(columnId => leafColumns.find(d => d.id === columnId)!)\n .filter(Boolean) ?? []\n\n const centerColumns = leafColumns.filter(\n column => !left?.includes(column.id) && !right?.includes(column.id)\n )\n\n const headerGroups = buildHeaderGroups(\n allColumns,\n [...leftColumns, ...centerColumns, ...rightColumns],\n table\n )\n\n return headerGroups\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getHeaderGroups',\n debug: () => table.options.debugAll ?? table.options.debugHeaders,\n }\n ),\n\n getCenterHeaderGroups: memo(\n () => [\n table.getAllColumns(),\n table.getVisibleLeafColumns(),\n table.getState().columnPinning.left,\n table.getState().columnPinning.right,\n ],\n (allColumns, leafColumns, left, right) => {\n leafColumns = leafColumns.filter(\n column => !left?.includes(column.id) && !right?.includes(column.id)\n )\n return buildHeaderGroups(allColumns, leafColumns, table, 'center')\n },\n {\n key:\n process.env.NODE_ENV === 'development' && 'getCenterHeaderGroups',\n debug: () => table.options.debugAll ?? table.options.debugHeaders,\n }\n ),\n\n getLeftHeaderGroups: memo(\n () => [\n table.getAllColumns(),\n table.getVisibleLeafColumns(),\n table.getState().columnPinning.left,\n ],\n (allColumns, leafColumns, left) => {\n const orderedLeafColumns =\n left\n ?.map(columnId => leafColumns.find(d => d.id === columnId)!)\n .filter(Boolean) ?? []\n\n return buildHeaderGroups(\n allColumns,\n orderedLeafColumns,\n table,\n 'left'\n )\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getLeftHeaderGroups',\n debug: () => table.options.debugAll ?? table.options.debugHeaders,\n }\n ),\n\n getRightHeaderGroups: memo(\n () => [\n table.getAllColumns(),\n table.getVisibleLeafColumns(),\n table.getState().columnPinning.right,\n ],\n (allColumns, leafColumns, right) => {\n const orderedLeafColumns =\n right\n ?.map(columnId => leafColumns.find(d => d.id === columnId)!)\n .filter(Boolean) ?? []\n\n return buildHeaderGroups(\n allColumns,\n orderedLeafColumns,\n table,\n 'right'\n )\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getRightHeaderGroups',\n debug: () => table.options.debugAll ?? table.options.debugHeaders,\n }\n ),\n\n // Footer Groups\n\n getFooterGroups: memo(\n () => [table.getHeaderGroups()],\n headerGroups => {\n return [...headerGroups].reverse()\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getFooterGroups',\n debug: () => table.options.debugAll ?? table.options.debugHeaders,\n }\n ),\n\n getLeftFooterGroups: memo(\n () => [table.getLeftHeaderGroups()],\n headerGroups => {\n return [...headerGroups].reverse()\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getLeftFooterGroups',\n debug: () => table.options.debugAll ?? table.options.debugHeaders,\n }\n ),\n\n getCenterFooterGroups: memo(\n () => [table.getCenterHeaderGroups()],\n headerGroups => {\n return [...headerGroups].reverse()\n },\n {\n key:\n process.env.NODE_ENV === 'development' && 'getCenterFooterGroups',\n debug: () => table.options.debugAll ?? table.options.debugHeaders,\n }\n ),\n\n getRightFooterGroups: memo(\n () => [table.getRightHeaderGroups()],\n headerGroups => {\n return [...headerGroups].reverse()\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getRightFooterGroups',\n debug: () => table.options.debugAll ?? table.options.debugHeaders,\n }\n ),\n\n // Flat Headers\n\n getFlatHeaders: memo(\n () => [table.getHeaderGroups()],\n headerGroups => {\n return headerGroups\n .map(headerGroup => {\n return headerGroup.headers\n })\n .flat()\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getFlatHeaders',\n debug: () => table.options.debugAll ?? table.options.debugHeaders,\n }\n ),\n\n getLeftFlatHeaders: memo(\n () => [table.getLeftHeaderGroups()],\n left => {\n return left\n .map(headerGroup => {\n return headerGroup.headers\n })\n .flat()\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getLeftFlatHeaders',\n debug: () => table.options.debugAll ?? table.options.debugHeaders,\n }\n ),\n\n getCenterFlatHeaders: memo(\n () => [table.getCenterHeaderGroups()],\n left => {\n return left\n .map(headerGroup => {\n return headerGroup.headers\n })\n .flat()\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getCenterFlatHeaders',\n debug: () => table.options.debugAll ?? table.options.debugHeaders,\n }\n ),\n\n getRightFlatHeaders: memo(\n () => [table.getRightHeaderGroups()],\n left => {\n return left\n .map(headerGroup => {\n return headerGroup.headers\n })\n .flat()\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getRightFlatHeaders',\n debug: () => table.options.debugAll ?? table.options.debugHeaders,\n }\n ),\n\n // Leaf Headers\n\n getCenterLeafHeaders: memo(\n () => [table.getCenterFlatHeaders()],\n flatHeaders => {\n return flatHeaders.filter(header => !header.subHeaders?.length)\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getCenterLeafHeaders',\n debug: () => table.options.debugAll ?? table.options.debugHeaders,\n }\n ),\n\n getLeftLeafHeaders: memo(\n () => [table.getLeftFlatHeaders()],\n flatHeaders => {\n return flatHeaders.filter(header => !header.subHeaders?.length)\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getLeftLeafHeaders',\n debug: () => table.options.debugAll ?? table.options.debugHeaders,\n }\n ),\n\n getRightLeafHeaders: memo(\n () => [table.getRightFlatHeaders()],\n flatHeaders => {\n return flatHeaders.filter(header => !header.subHeaders?.length)\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getRightLeafHeaders',\n debug: () => table.options.debugAll ?? table.options.debugHeaders,\n }\n ),\n\n getLeafHeaders: memo(\n () => [\n table.getLeftHeaderGroups(),\n table.getCenterHeaderGroups(),\n table.getRightHeaderGroups(),\n ],\n (left, center, right) => {\n return [\n ...(left[0]?.headers ?? []),\n ...(center[0]?.headers ?? []),\n ...(right[0]?.headers ?? []),\n ]\n .map(header => {\n return header.getLeafHeaders()\n })\n .flat()\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getLeafHeaders',\n debug: () => table.options.debugAll ?? table.options.debugHeaders,\n }\n ),\n }\n },\n}\n\nexport function buildHeaderGroups<TData extends RowData>(\n allColumns: Column<TData>[],\n columnsToGroup: Column<TData>[],\n table: Table<TData>,\n headerFamily?: 'center' | 'left' | 'right'\n) {\n // Find the max depth of the columns:\n // build the leaf column row\n // build each buffer row going up\n // placeholder for non-existent level\n // real column for existing level\n\n let maxDepth = 0\n\n const findMaxDepth = (columns: Column<TData>[], depth = 1) => {\n maxDepth = Math.max(maxDepth, depth)\n\n columns\n .filter(column => column.getIsVisible())\n .forEach(column => {\n if (column.columns?.length) {\n findMaxDepth(column.columns, depth + 1)\n }\n }, 0)\n }\n\n findMaxDepth(allColumns)\n\n let headerGroups: HeaderGroup<TData>[] = []\n\n const createHeaderGroup = (\n headersToGroup: Header<TData>[],\n depth: number\n ) => {\n // The header group we are creating\n const headerGroup: HeaderGroup<TData> = {\n depth,\n id: [headerFamily, `${depth}`].filter(Boolean).join('_'),\n headers: [],\n }\n\n // The parent columns we're going to scan next\n const pendingParentHeaders: Header<TData>[] = []\n\n // Scan each column for parents\n headersToGroup.forEach(headerToGroup => {\n // What is the latest (last) parent column?\n\n const latestPendingParentHeader = [...pendingParentHeaders].reverse()[0]\n\n const isLeafHeader = headerToGroup.column.depth === headerGroup.depth\n\n let column: Column<TData>\n let isPlaceholder = false\n\n if (isLeafHeader && headerToGroup.column.parent) {\n // The parent header is new\n column = headerToGroup.column.parent\n } else {\n // The parent header is repeated\n column = headerToGroup.column\n isPlaceholder = true\n }\n\n if (\n latestPendingParentHeader &&\n latestPendingParentHeader?.column === column\n ) {\n // This column is repeated. Add it as a sub header to the next batch\n latestPendingParentHeader.subHeaders.push(headerToGroup)\n } else {\n // This is a new header. Let's create it\n const header = createHeader(table, column, {\n id: [headerFamily, depth, column.id, headerToGroup?.id]\n .filter(Boolean)\n .join('_'),\n isPlaceholder,\n placeholderId: isPlaceholder\n ? `${pendingParentHeaders.filter(d => d.column === column).length}`\n : undefined,\n depth,\n index: pendingParentHeaders.length,\n })\n\n // Add the headerToGroup as a subHeader of the new header\n header.subHeaders.push(headerToGroup)\n // Add the new header to the pendingParentHeaders to get grouped\n // in the next batch\n pendingParentHeaders.push(header)\n }\n\n headerGroup.headers.push(headerToGroup)\n headerToGroup.headerGroup = headerGroup\n })\n\n headerGroups.push(headerGroup)\n\n if (depth > 0) {\n createHeaderGroup(pendingParentHeaders, depth - 1)\n }\n }\n\n const bottomHeaders = columnsToGroup.map((column, index) =>\n createHeader(table, column, {\n depth: maxDepth,\n index,\n })\n )\n\n createHeaderGroup(bottomHeaders, maxDepth - 1)\n\n headerGroups.reverse()\n\n // headerGroups = headerGroups.filter(headerGroup => {\n // return !headerGroup.headers.every(header => header.isPlaceholder)\n // })\n\n const recurseHeadersForSpans = (\n headers: Header<TData>[]\n ): { colSpan: number; rowSpan: number }[] => {\n const filteredHeaders = headers.filter(header =>\n header.column.getIsVisible()\n )\n\n return filteredHeaders.map(header => {\n let colSpan = 0\n let rowSpan = 0\n let childRowSpans = [0]\n\n if (header.subHeaders && header.subHeaders.length) {\n childRowSpans = []\n\n recurseHeadersForSpans(header.subHeaders).forEach(\n ({ colSpan: childColSpan, rowSpan: childRowSpan }) => {\n colSpan += childColSpan\n childRowSpans.push(childRowSpan)\n }\n )\n } else {\n colSpan = 1\n }\n\n const minChildRowSpan = Math.min(...childRowSpans)\n rowSpan = rowSpan + minChildRowSpan\n\n header.colSpan = colSpan\n header.rowSpan = rowSpan\n\n return { colSpan, rowSpan }\n })\n }\n\n recurseHeadersForSpans(headerGroups[0]?.headers ?? [])\n\n return headerGroups\n}\n"],"names":["createHeader","table","column","options","id","header","index","isPlaceholder","placeholderId","depth","subHeaders","colSpan","rowSpan","headerGroup","getLeafHeaders","leafHeaders","recurseHeader","h","length","map","push","getContext","_features","forEach","feature","Object","assign","Headers","createTable","getHeaderGroups","memo","getAllColumns","getVisibleLeafColumns","getState","columnPinning","left","right","allColumns","leafColumns","leftColumns","columnId","find","d","filter","Boolean","rightColumns","centerColumns","includes","headerGroups","buildHeaderGroups","key","process","env","NODE_ENV","debug","debugAll","debugHeaders","getCenterHeaderGroups","getLeftHeaderGroups","orderedLeafColumns","getRightHeaderGroups","getFooterGroups","reverse","getLeftFooterGroups","getCenterFooterGroups","getRightFooterGroups","getFlatHeaders","headers","flat","getLeftFlatHeaders","getCenterFlatHeaders","getRightFlatHeaders","getCenterLeafHeaders","flatHeaders","getLeftLeafHeaders","getRightLeafHeaders","center","columnsToGroup","headerFamily","maxDepth","findMaxDepth","columns","Math","max","getIsVisible","createHeaderGroup","headersToGroup","join","pendingParentHeaders","headerToGroup","latestPendingParentHeader","isLeafHeader","parent","undefined","bottomHeaders","recurseHeadersForSpans","filteredHeaders","childRowSpans","childColSpan","childRowSpan","minChildRowSpan","min"],"mappings":"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"}
1
+ {"version":3,"file":"headers.js","sources":["../../../src/core/headers.ts"],"sourcesContent":["import { RowData, Column, Header, HeaderGroup, Table } from '../types'\nimport { memo } from '../utils'\nimport { TableFeature } from './table'\n\nexport type CoreHeaderGroup<TData extends RowData> = {\n id: string\n depth: number\n headers: Header<TData, unknown>[]\n}\n\nexport type CoreHeader<TData extends RowData, TValue> = {\n id: string\n index: number\n depth: number\n column: Column<TData, TValue>\n headerGroup: HeaderGroup<TData>\n subHeaders: Header<TData, TValue>[]\n colSpan: number\n rowSpan: number\n getLeafHeaders: () => Header<TData, unknown>[]\n isPlaceholder: boolean\n placeholderId?: string\n getContext: () => {\n table: Table<TData>\n header: Header<TData, TValue>\n column: Column<TData, TValue>\n }\n}\n\nexport type HeadersInstance<TData extends RowData> = {\n getHeaderGroups: () => HeaderGroup<TData>[]\n getLeftHeaderGroups: () => HeaderGroup<TData>[]\n getCenterHeaderGroups: () => HeaderGroup<TData>[]\n getRightHeaderGroups: () => HeaderGroup<TData>[]\n\n getFooterGroups: () => HeaderGroup<TData>[]\n getLeftFooterGroups: () => HeaderGroup<TData>[]\n getCenterFooterGroups: () => HeaderGroup<TData>[]\n getRightFooterGroups: () => HeaderGroup<TData>[]\n\n getFlatHeaders: () => Header<TData, unknown>[]\n getLeftFlatHeaders: () => Header<TData, unknown>[]\n getCenterFlatHeaders: () => Header<TData, unknown>[]\n getRightFlatHeaders: () => Header<TData, unknown>[]\n\n getLeafHeaders: () => Header<TData, unknown>[]\n getLeftLeafHeaders: () => Header<TData, unknown>[]\n getCenterLeafHeaders: () => Header<TData, unknown>[]\n getRightLeafHeaders: () => Header<TData, unknown>[]\n}\n\n//\n\nfunction createHeader<TData extends RowData, TValue>(\n table: Table<TData>,\n column: Column<TData, TValue>,\n options: {\n id?: string\n isPlaceholder?: boolean\n placeholderId?: string\n index: number\n depth: number\n }\n) {\n const id = options.id ?? column.id\n\n let header: CoreHeader<TData, TValue> = {\n id,\n column,\n index: options.index,\n isPlaceholder: !!options.isPlaceholder,\n placeholderId: options.placeholderId,\n depth: options.depth,\n subHeaders: [],\n colSpan: 0,\n rowSpan: 0,\n headerGroup: null!,\n getLeafHeaders: (): Header<TData, unknown>[] => {\n const leafHeaders: Header<TData, unknown>[] = []\n\n const recurseHeader = (h: CoreHeader<TData, unknown>) => {\n if (h.subHeaders && h.subHeaders.length) {\n h.subHeaders.map(recurseHeader)\n }\n leafHeaders.push(h as Header<TData, unknown>)\n }\n\n recurseHeader(header)\n\n return leafHeaders\n },\n getContext: () => ({\n table,\n header: header as Header<TData, TValue>,\n column,\n }),\n }\n\n table._features.forEach(feature => {\n Object.assign(header, feature.createHeader?.(header, table))\n })\n\n return header as Header<TData, TValue>\n}\n\nexport const Headers: TableFeature = {\n createTable: <TData extends RowData>(\n table: Table<TData>\n ): HeadersInstance<TData> => {\n return {\n // Header Groups\n\n getHeaderGroups: memo(\n () => [\n table.getAllColumns(),\n table.getVisibleLeafColumns(),\n table.getState().columnPinning.left,\n table.getState().columnPinning.right,\n ],\n (allColumns, leafColumns, left, right) => {\n const leftColumns =\n left\n ?.map(columnId => leafColumns.find(d => d.id === columnId)!)\n .filter(Boolean) ?? []\n\n const rightColumns =\n right\n ?.map(columnId => leafColumns.find(d => d.id === columnId)!)\n .filter(Boolean) ?? []\n\n const centerColumns = leafColumns.filter(\n column => !left?.includes(column.id) && !right?.includes(column.id)\n )\n\n const headerGroups = buildHeaderGroups(\n allColumns,\n [...leftColumns, ...centerColumns, ...rightColumns],\n table\n )\n\n return headerGroups\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getHeaderGroups',\n debug: () => table.options.debugAll ?? table.options.debugHeaders,\n }\n ),\n\n getCenterHeaderGroups: memo(\n () => [\n table.getAllColumns(),\n table.getVisibleLeafColumns(),\n table.getState().columnPinning.left,\n table.getState().columnPinning.right,\n ],\n (allColumns, leafColumns, left, right) => {\n leafColumns = leafColumns.filter(\n column => !left?.includes(column.id) && !right?.includes(column.id)\n )\n return buildHeaderGroups(allColumns, leafColumns, table, 'center')\n },\n {\n key:\n process.env.NODE_ENV === 'development' && 'getCenterHeaderGroups',\n debug: () => table.options.debugAll ?? table.options.debugHeaders,\n }\n ),\n\n getLeftHeaderGroups: memo(\n () => [\n table.getAllColumns(),\n table.getVisibleLeafColumns(),\n table.getState().columnPinning.left,\n ],\n (allColumns, leafColumns, left) => {\n const orderedLeafColumns =\n left\n ?.map(columnId => leafColumns.find(d => d.id === columnId)!)\n .filter(Boolean) ?? []\n\n return buildHeaderGroups(\n allColumns,\n orderedLeafColumns,\n table,\n 'left'\n )\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getLeftHeaderGroups',\n debug: () => table.options.debugAll ?? table.options.debugHeaders,\n }\n ),\n\n getRightHeaderGroups: memo(\n () => [\n table.getAllColumns(),\n table.getVisibleLeafColumns(),\n table.getState().columnPinning.right,\n ],\n (allColumns, leafColumns, right) => {\n const orderedLeafColumns =\n right\n ?.map(columnId => leafColumns.find(d => d.id === columnId)!)\n .filter(Boolean) ?? []\n\n return buildHeaderGroups(\n allColumns,\n orderedLeafColumns,\n table,\n 'right'\n )\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getRightHeaderGroups',\n debug: () => table.options.debugAll ?? table.options.debugHeaders,\n }\n ),\n\n // Footer Groups\n\n getFooterGroups: memo(\n () => [table.getHeaderGroups()],\n headerGroups => {\n return [...headerGroups].reverse()\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getFooterGroups',\n debug: () => table.options.debugAll ?? table.options.debugHeaders,\n }\n ),\n\n getLeftFooterGroups: memo(\n () => [table.getLeftHeaderGroups()],\n headerGroups => {\n return [...headerGroups].reverse()\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getLeftFooterGroups',\n debug: () => table.options.debugAll ?? table.options.debugHeaders,\n }\n ),\n\n getCenterFooterGroups: memo(\n () => [table.getCenterHeaderGroups()],\n headerGroups => {\n return [...headerGroups].reverse()\n },\n {\n key:\n process.env.NODE_ENV === 'development' && 'getCenterFooterGroups',\n debug: () => table.options.debugAll ?? table.options.debugHeaders,\n }\n ),\n\n getRightFooterGroups: memo(\n () => [table.getRightHeaderGroups()],\n headerGroups => {\n return [...headerGroups].reverse()\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getRightFooterGroups',\n debug: () => table.options.debugAll ?? table.options.debugHeaders,\n }\n ),\n\n // Flat Headers\n\n getFlatHeaders: memo(\n () => [table.getHeaderGroups()],\n headerGroups => {\n return headerGroups\n .map(headerGroup => {\n return headerGroup.headers\n })\n .flat()\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getFlatHeaders',\n debug: () => table.options.debugAll ?? table.options.debugHeaders,\n }\n ),\n\n getLeftFlatHeaders: memo(\n () => [table.getLeftHeaderGroups()],\n left => {\n return left\n .map(headerGroup => {\n return headerGroup.headers\n })\n .flat()\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getLeftFlatHeaders',\n debug: () => table.options.debugAll ?? table.options.debugHeaders,\n }\n ),\n\n getCenterFlatHeaders: memo(\n () => [table.getCenterHeaderGroups()],\n left => {\n return left\n .map(headerGroup => {\n return headerGroup.headers\n })\n .flat()\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getCenterFlatHeaders',\n debug: () => table.options.debugAll ?? table.options.debugHeaders,\n }\n ),\n\n getRightFlatHeaders: memo(\n () => [table.getRightHeaderGroups()],\n left => {\n return left\n .map(headerGroup => {\n return headerGroup.headers\n })\n .flat()\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getRightFlatHeaders',\n debug: () => table.options.debugAll ?? table.options.debugHeaders,\n }\n ),\n\n // Leaf Headers\n\n getCenterLeafHeaders: memo(\n () => [table.getCenterFlatHeaders()],\n flatHeaders => {\n return flatHeaders.filter(header => !header.subHeaders?.length)\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getCenterLeafHeaders',\n debug: () => table.options.debugAll ?? table.options.debugHeaders,\n }\n ),\n\n getLeftLeafHeaders: memo(\n () => [table.getLeftFlatHeaders()],\n flatHeaders => {\n return flatHeaders.filter(header => !header.subHeaders?.length)\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getLeftLeafHeaders',\n debug: () => table.options.debugAll ?? table.options.debugHeaders,\n }\n ),\n\n getRightLeafHeaders: memo(\n () => [table.getRightFlatHeaders()],\n flatHeaders => {\n return flatHeaders.filter(header => !header.subHeaders?.length)\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getRightLeafHeaders',\n debug: () => table.options.debugAll ?? table.options.debugHeaders,\n }\n ),\n\n getLeafHeaders: memo(\n () => [\n table.getLeftHeaderGroups(),\n table.getCenterHeaderGroups(),\n table.getRightHeaderGroups(),\n ],\n (left, center, right) => {\n return [\n ...(left[0]?.headers ?? []),\n ...(center[0]?.headers ?? []),\n ...(right[0]?.headers ?? []),\n ]\n .map(header => {\n return header.getLeafHeaders()\n })\n .flat()\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getLeafHeaders',\n debug: () => table.options.debugAll ?? table.options.debugHeaders,\n }\n ),\n }\n },\n}\n\nexport function buildHeaderGroups<TData extends RowData>(\n allColumns: Column<TData, unknown>[],\n columnsToGroup: Column<TData, unknown>[],\n table: Table<TData>,\n headerFamily?: 'center' | 'left' | 'right'\n) {\n // Find the max depth of the columns:\n // build the leaf column row\n // build each buffer row going up\n // placeholder for non-existent level\n // real column for existing level\n\n let maxDepth = 0\n\n const findMaxDepth = (columns: Column<TData, unknown>[], depth = 1) => {\n maxDepth = Math.max(maxDepth, depth)\n\n columns\n .filter(column => column.getIsVisible())\n .forEach(column => {\n if (column.columns?.length) {\n findMaxDepth(column.columns, depth + 1)\n }\n }, 0)\n }\n\n findMaxDepth(allColumns)\n\n let headerGroups: HeaderGroup<TData>[] = []\n\n const createHeaderGroup = (\n headersToGroup: Header<TData, unknown>[],\n depth: number\n ) => {\n // The header group we are creating\n const headerGroup: HeaderGroup<TData> = {\n depth,\n id: [headerFamily, `${depth}`].filter(Boolean).join('_'),\n headers: [],\n }\n\n // The parent columns we're going to scan next\n const pendingParentHeaders: Header<TData, unknown>[] = []\n\n // Scan each column for parents\n headersToGroup.forEach(headerToGroup => {\n // What is the latest (last) parent column?\n\n const latestPendingParentHeader = [...pendingParentHeaders].reverse()[0]\n\n const isLeafHeader = headerToGroup.column.depth === headerGroup.depth\n\n let column: Column<TData, unknown>\n let isPlaceholder = false\n\n if (isLeafHeader && headerToGroup.column.parent) {\n // The parent header is new\n column = headerToGroup.column.parent\n } else {\n // The parent header is repeated\n column = headerToGroup.column\n isPlaceholder = true\n }\n\n if (\n latestPendingParentHeader &&\n latestPendingParentHeader?.column === column\n ) {\n // This column is repeated. Add it as a sub header to the next batch\n latestPendingParentHeader.subHeaders.push(headerToGroup)\n } else {\n // This is a new header. Let's create it\n const header = createHeader(table, column, {\n id: [headerFamily, depth, column.id, headerToGroup?.id]\n .filter(Boolean)\n .join('_'),\n isPlaceholder,\n placeholderId: isPlaceholder\n ? `${pendingParentHeaders.filter(d => d.column === column).length}`\n : undefined,\n depth,\n index: pendingParentHeaders.length,\n })\n\n // Add the headerToGroup as a subHeader of the new header\n header.subHeaders.push(headerToGroup)\n // Add the new header to the pendingParentHeaders to get grouped\n // in the next batch\n pendingParentHeaders.push(header)\n }\n\n headerGroup.headers.push(headerToGroup)\n headerToGroup.headerGroup = headerGroup\n })\n\n headerGroups.push(headerGroup)\n\n if (depth > 0) {\n createHeaderGroup(pendingParentHeaders, depth - 1)\n }\n }\n\n const bottomHeaders = columnsToGroup.map((column, index) =>\n createHeader(table, column, {\n depth: maxDepth,\n index,\n })\n )\n\n createHeaderGroup(bottomHeaders, maxDepth - 1)\n\n headerGroups.reverse()\n\n // headerGroups = headerGroups.filter(headerGroup => {\n // return !headerGroup.headers.every(header => header.isPlaceholder)\n // })\n\n const recurseHeadersForSpans = (\n headers: Header<TData, unknown>[]\n ): { colSpan: number; rowSpan: number }[] => {\n const filteredHeaders = headers.filter(header =>\n header.column.getIsVisible()\n )\n\n return filteredHeaders.map(header => {\n let colSpan = 0\n let rowSpan = 0\n let childRowSpans = [0]\n\n if (header.subHeaders && header.subHeaders.length) {\n childRowSpans = []\n\n recurseHeadersForSpans(header.subHeaders).forEach(\n ({ colSpan: childColSpan, rowSpan: childRowSpan }) => {\n colSpan += childColSpan\n childRowSpans.push(childRowSpan)\n }\n )\n } else {\n colSpan = 1\n }\n\n const minChildRowSpan = Math.min(...childRowSpans)\n rowSpan = rowSpan + minChildRowSpan\n\n header.colSpan = colSpan\n header.rowSpan = rowSpan\n\n return { colSpan, rowSpan }\n })\n }\n\n recurseHeadersForSpans(headerGroups[0]?.headers ?? [])\n\n return headerGroups\n}\n"],"names":["createHeader","table","column","options","id","header","index","isPlaceholder","placeholderId","depth","subHeaders","colSpan","rowSpan","headerGroup","getLeafHeaders","leafHeaders","recurseHeader","h","length","map","push","getContext","_features","forEach","feature","Object","assign","Headers","createTable","getHeaderGroups","memo","getAllColumns","getVisibleLeafColumns","getState","columnPinning","left","right","allColumns","leafColumns","leftColumns","columnId","find","d","filter","Boolean","rightColumns","centerColumns","includes","headerGroups","buildHeaderGroups","key","process","env","NODE_ENV","debug","debugAll","debugHeaders","getCenterHeaderGroups","getLeftHeaderGroups","orderedLeafColumns","getRightHeaderGroups","getFooterGroups","reverse","getLeftFooterGroups","getCenterFooterGroups","getRightFooterGroups","getFlatHeaders","headers","flat","getLeftFlatHeaders","getCenterFlatHeaders","getRightFlatHeaders","getCenterLeafHeaders","flatHeaders","getLeftLeafHeaders","getRightLeafHeaders","center","columnsToGroup","headerFamily","maxDepth","findMaxDepth","columns","Math","max","getIsVisible","createHeaderGroup","headersToGroup","join","pendingParentHeaders","headerToGroup","latestPendingParentHeader","isLeafHeader","parent","undefined","bottomHeaders","recurseHeadersForSpans","filteredHeaders","childRowSpans","childColSpan","childRowSpan","minChildRowSpan","min"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"row.js","sources":["../../../src/core/row.ts"],"sourcesContent":["import { RowData, Cell, Row, TableGenerics, Table } from '../types'\nimport { flattenBy, memo } from '../utils'\nimport { createCell } from './cell'\n\nexport type CoreRow<TData extends RowData> = {\n id: string\n index: number\n original?: TData\n depth: number\n _valuesCache: Record<string, any>\n getValue: (columnId: string) => any\n renderValue: (columnId: string) => unknown\n subRows: Row<TData>[]\n getLeafRows: () => Row<TData>[]\n originalSubRows?: TData[]\n getAllCells: () => Cell<TData>[]\n _getAllCellsByColumnId: () => Record<string, Cell<TData>>\n}\n\nexport const createRow = <TData extends RowData>(\n table: Table<TData>,\n id: string,\n original: TData | undefined,\n rowIndex: number,\n depth: number,\n subRows?: Row<TData>[]\n): Row<TData> => {\n let row: CoreRow<TData> = {\n id,\n index: rowIndex,\n original,\n depth,\n _valuesCache: {},\n getValue: columnId => {\n if (row._valuesCache.hasOwnProperty(columnId)) {\n return row._valuesCache[columnId]\n }\n\n const column = table.getColumn(columnId)\n\n if (!column.accessorFn) {\n return undefined\n }\n\n row._valuesCache[columnId] = column.accessorFn(\n row.original as TData,\n rowIndex\n )\n\n return row._valuesCache[columnId]\n },\n renderValue: columnId =>\n row.getValue(columnId) ?? table.options.renderFallbackValue,\n subRows: subRows ?? [],\n getLeafRows: () => flattenBy(row.subRows, d => d.subRows),\n getAllCells: memo(\n () => [table.getAllLeafColumns()],\n leafColumns => {\n return leafColumns.map(column => {\n return createCell(table, row as Row<TData>, column, column.id)\n })\n },\n {\n key: process.env.NODE_ENV === 'development' && 'row.getAllCells',\n debug: () => table.options.debugAll ?? table.options.debugRows,\n }\n ),\n\n _getAllCellsByColumnId: memo(\n () => [row.getAllCells()],\n allCells => {\n return allCells.reduce((acc, cell) => {\n acc[cell.column.id] = cell\n return acc\n }, {} as Record<string, Cell<TData>>)\n },\n {\n key:\n process.env.NODE_ENV === 'production' && 'row.getAllCellsByColumnId',\n debug: () => table.options.debugAll ?? table.options.debugRows,\n }\n ),\n }\n\n for (let i = 0; i < table._features.length; i++) {\n const feature = table._features[i]\n Object.assign(row, feature?.createRow?.(row, table))\n }\n\n return row as Row<TData>\n}\n"],"names":["createRow","table","id","original","rowIndex","depth","subRows","row","index","_valuesCache","getValue","columnId","hasOwnProperty","column","getColumn","accessorFn","undefined","renderValue","options","renderFallbackValue","getLeafRows","flattenBy","d","getAllCells","memo","getAllLeafColumns","leafColumns","map","createCell","key","process","env","NODE_ENV","debug","debugAll","debugRows","_getAllCellsByColumnId","allCells","reduce","acc","cell","i","_features","length","feature","Object","assign"],"mappings":"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"}
1
+ {"version":3,"file":"row.js","sources":["../../../src/core/row.ts"],"sourcesContent":["import { RowData, Cell, Row, TableGenerics, Table } from '../types'\nimport { flattenBy, memo } from '../utils'\nimport { createCell } from './cell'\n\nexport type CoreRow<TData extends RowData> = {\n id: string\n index: number\n original: TData\n depth: number\n _valuesCache: Record<string, unknown>\n getValue: <TValue>(columnId: string) => TValue\n renderValue: <TValue>(columnId: string) => TValue\n subRows: Row<TData>[]\n getLeafRows: () => Row<TData>[]\n originalSubRows?: TData[]\n getAllCells: () => Cell<TData, unknown>[]\n _getAllCellsByColumnId: () => Record<string, Cell<TData, unknown>>\n}\n\nexport const createRow = <TData extends RowData>(\n table: Table<TData>,\n id: string,\n original: TData,\n rowIndex: number,\n depth: number,\n subRows?: Row<TData>[]\n): Row<TData> => {\n let row: CoreRow<TData> = {\n id,\n index: rowIndex,\n original,\n depth,\n _valuesCache: {},\n getValue: columnId => {\n if (row._valuesCache.hasOwnProperty(columnId)) {\n return row._valuesCache[columnId]\n }\n\n const column = table.getColumn(columnId)\n\n if (!column.accessorFn) {\n return undefined\n }\n\n row._valuesCache[columnId] = column.accessorFn(\n row.original as TData,\n rowIndex\n )\n\n return row._valuesCache[columnId] as any\n },\n renderValue: columnId =>\n row.getValue(columnId) ?? table.options.renderFallbackValue,\n subRows: subRows ?? [],\n getLeafRows: () => flattenBy(row.subRows, d => d.subRows),\n getAllCells: memo(\n () => [table.getAllLeafColumns()],\n leafColumns => {\n return leafColumns.map(column => {\n return createCell(table, row as Row<TData>, column, column.id)\n })\n },\n {\n key: process.env.NODE_ENV === 'development' && 'row.getAllCells',\n debug: () => table.options.debugAll ?? table.options.debugRows,\n }\n ),\n\n _getAllCellsByColumnId: memo(\n () => [row.getAllCells()],\n allCells => {\n return allCells.reduce((acc, cell) => {\n acc[cell.column.id] = cell\n return acc\n }, {} as Record<string, Cell<TData, unknown>>)\n },\n {\n key:\n process.env.NODE_ENV === 'production' && 'row.getAllCellsByColumnId',\n debug: () => table.options.debugAll ?? table.options.debugRows,\n }\n ),\n }\n\n for (let i = 0; i < table._features.length; i++) {\n const feature = table._features[i]\n Object.assign(row, feature?.createRow?.(row, table))\n }\n\n return row as Row<TData>\n}\n"],"names":["createRow","table","id","original","rowIndex","depth","subRows","row","index","_valuesCache","getValue","columnId","hasOwnProperty","column","getColumn","accessorFn","undefined","renderValue","options","renderFallbackValue","getLeafRows","flattenBy","d","getAllCells","memo","getAllLeafColumns","leafColumns","map","createCell","key","process","env","NODE_ENV","debug","debugAll","debugRows","_getAllCellsByColumnId","allCells","reduce","acc","cell","i","_features","length","feature","Object","assign"],"mappings":"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"}
@@ -141,9 +141,9 @@ function createTable(options) {
141
141
  header: props => props.header.column.id,
142
142
  footer: props => props.header.column.id,
143
143
  cell: props => {
144
- var _toString, _props$renderValue;
144
+ var _props$renderValue$to, _props$renderValue;
145
145
 
146
- return (_toString = (_props$renderValue = props.renderValue()) == null ? void 0 : _props$renderValue.toString == null ? void 0 : _props$renderValue.toString()) != null ? _toString : null;
146
+ return (_props$renderValue$to = (_props$renderValue = props.renderValue()) == null ? void 0 : _props$renderValue.toString == null ? void 0 : _props$renderValue.toString()) != null ? _props$renderValue$to : null;
147
147
  },
148
148
  ...table._features.reduce((obj, feature) => {
149
149
  return Object.assign(obj, feature.getDefaultColumnDef == null ? void 0 : feature.getDefaultColumnDef());
@@ -1 +1 @@
1
- {"version":3,"file":"table.js","sources":["../../../src/core/table.ts"],"sourcesContent":["import { flattenBy, functionalUpdate, memo, RequiredKeys } from '../utils'\n\nimport {\n Updater,\n TableOptionsResolved,\n TableState,\n Table,\n ColumnDefTemplate,\n InitialTableState,\n Row,\n Column,\n RowModel,\n ColumnDef,\n TableOptions,\n RowData,\n} from '../types'\n\n//\nimport { createColumn } from './column'\nimport { Headers } from './headers'\n//\n\nimport { ColumnSizing } from '../features/ColumnSizing'\nimport { Expanding } from '../features/Expanding'\nimport { Filters } from '../features/Filters'\nimport { Grouping } from '../features/Grouping'\nimport { Ordering } from '../features/Ordering'\nimport { Pagination } from '../features/Pagination'\nimport { Pinning } from '../features/Pinning'\nimport { RowSelection } from '../features/RowSelection'\nimport { Sorting } from '../features/Sorting'\nimport { Visibility } from '../features/Visibility'\n\nexport type TableFeature = {\n getDefaultOptions?: (table: any) => any\n getInitialState?: (initialState?: InitialTableState) => any\n createTable?: (table: any) => any\n getDefaultColumnDef?: () => any\n createColumn?: (column: any, table: any) => any\n createHeader?: (column: any, table: any) => any\n createCell?: (cell: any, column: any, row: any, table: any) => any\n createRow?: (row: any, table: any) => any\n}\n\nconst features = [\n Headers,\n Visibility,\n Ordering,\n Pinning,\n Filters,\n Sorting,\n Grouping,\n Expanding,\n Pagination,\n RowSelection,\n ColumnSizing,\n] as const\n\n//\n\nexport type CoreTableState = {}\n\nexport type CoreOptions<TData extends RowData> = {\n data: TData[]\n state: Partial<TableState>\n onStateChange: (updater: Updater<TableState>) => void\n debugAll?: boolean\n debugTable?: boolean\n debugHeaders?: boolean\n debugColumns?: boolean\n debugRows?: boolean\n initialState?: InitialTableState\n autoResetAll?: boolean\n mergeOptions?: (\n defaultOptions: TableOptions<TData>,\n options: Partial<TableOptions<TData>>\n ) => TableOptions<TData>\n meta?: unknown\n getCoreRowModel: (table: Table<any>) => () => RowModel<any>\n getSubRows?: (originalRow: TData, index: number) => undefined | TData[]\n getRowId?: (originalRow: TData, index: number, parent?: Row<TData>) => string\n columns: ColumnDef<TData>[]\n defaultColumn?: Partial<ColumnDef<TData>>\n renderFallbackValue: any\n}\n\nexport type CoreInstance<TData extends RowData> = {\n initialState: TableState\n reset: () => void\n options: RequiredKeys<TableOptionsResolved<TData>, 'state'>\n setOptions: (newOptions: Updater<TableOptionsResolved<TData>>) => void\n getState: () => TableState\n setState: (updater: Updater<TableState>) => void\n _features: readonly TableFeature[]\n _queue: (cb: () => void) => void\n _getRowId: (_: TData, index: number, parent?: Row<TData>) => string\n getCoreRowModel: () => RowModel<TData>\n _getCoreRowModel?: () => RowModel<TData>\n getRowModel: () => RowModel<TData>\n getRow: (id: string) => Row<TData>\n _getDefaultColumnDef: () => Partial<ColumnDef<TData>>\n _getColumnDefs: () => ColumnDef<TData>[]\n _getAllFlatColumnsById: () => Record<string, Column<TData>>\n getAllColumns: () => Column<TData>[]\n getAllFlatColumns: () => Column<TData>[]\n getAllLeafColumns: () => Column<TData>[]\n getColumn: (columnId: string) => Column<TData>\n}\n\nexport function createTable<TData extends RowData>(\n options: TableOptionsResolved<TData>\n): Table<TData> {\n if (options.debugAll || options.debugTable) {\n console.info('Creating Table Instance...')\n }\n\n let table = { _features: features } as unknown as Table<TData>\n\n const defaultOptions = table._features.reduce((obj, feature) => {\n return Object.assign(obj, feature.getDefaultOptions?.(table))\n }, {}) as TableOptionsResolved<TData>\n\n const mergeOptions = (options: TableOptionsResolved<TData>) => {\n if (table.options.mergeOptions) {\n return table.options.mergeOptions(defaultOptions, options)\n }\n\n return {\n ...defaultOptions,\n ...options,\n }\n }\n\n const coreInitialState: CoreTableState = {}\n\n let initialState = {\n ...coreInitialState,\n ...(options.initialState ?? {}),\n } as TableState\n\n table._features.forEach(feature => {\n initialState = feature.getInitialState?.(initialState) ?? initialState\n })\n\n const queued: (() => void)[] = []\n let queuedTimeout = false\n\n const coreInstance: CoreInstance<TData> = {\n _features: features,\n options: {\n ...defaultOptions,\n ...options,\n },\n initialState,\n _queue: cb => {\n queued.push(cb)\n\n if (!queuedTimeout) {\n queuedTimeout = true\n\n // Schedule a microtask to run the queued callbacks after\n // the current call stack (render, etc) has finished.\n Promise.resolve()\n .then(() => {\n while (queued.length) {\n queued.shift()!()\n }\n queuedTimeout = false\n })\n .catch(error =>\n setTimeout(() => {\n throw error\n })\n )\n }\n },\n reset: () => {\n table.setState(table.initialState)\n },\n setOptions: updater => {\n const newOptions = functionalUpdate(updater, table.options)\n table.options = mergeOptions(newOptions) as RequiredKeys<\n TableOptionsResolved<TData>,\n 'state'\n >\n },\n\n getState: () => {\n return table.options.state as TableState\n },\n\n setState: (updater: Updater<TableState>) => {\n table.options.onStateChange?.(updater)\n },\n\n _getRowId: (row: TData, index: number, parent?: Row<TData>) =>\n table.options.getRowId?.(row, index, parent) ??\n `${parent ? [parent.id, index].join('.') : index}`,\n\n getCoreRowModel: () => {\n if (!table._getCoreRowModel) {\n table._getCoreRowModel = table.options.getCoreRowModel(table)\n }\n\n return table._getCoreRowModel!()\n },\n\n // The final calls start at the bottom of the model,\n // expanded rows, which then work their way up\n\n getRowModel: () => {\n return table.getPaginationRowModel()\n },\n getRow: (id: string) => {\n const row = table.getRowModel().rowsById[id]\n\n if (!row) {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error(`getRow expected an ID, but got ${id}`)\n }\n throw new Error()\n }\n\n return row\n },\n _getDefaultColumnDef: memo(\n () => [table.options.defaultColumn],\n defaultColumn => {\n defaultColumn = (defaultColumn ?? {}) as Partial<ColumnDef<TData>>\n\n return {\n header: props => props.header.column.id,\n footer: props => props.header.column.id,\n cell: props => (props.renderValue() as any)?.toString?.() ?? null,\n ...table._features.reduce((obj, feature) => {\n return Object.assign(obj, feature.getDefaultColumnDef?.())\n }, {}),\n ...defaultColumn,\n } as Partial<ColumnDef<TData>>\n },\n {\n debug: () => table.options.debugAll ?? table.options.debugColumns,\n key: process.env.NODE_ENV === 'development' && 'getDefaultColumnDef',\n }\n ),\n\n _getColumnDefs: () => table.options.columns,\n\n getAllColumns: memo(\n () => [table._getColumnDefs()],\n columnDefs => {\n const recurseColumns = (\n columnDefs: ColumnDef<TData>[],\n parent?: Column<TData>,\n depth = 0\n ): Column<TData>[] => {\n return columnDefs.map(columnDef => {\n const column = createColumn(table, columnDef, depth, parent)\n\n column.columns = columnDef.columns\n ? recurseColumns(columnDef.columns, column, depth + 1)\n : []\n\n return column\n })\n }\n\n return recurseColumns(columnDefs)\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getAllColumns',\n debug: () => table.options.debugAll ?? table.options.debugColumns,\n }\n ),\n\n getAllFlatColumns: memo(\n () => [table.getAllColumns()],\n allColumns => {\n return allColumns.flatMap(column => {\n return column.getFlatColumns()\n })\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getAllFlatColumns',\n debug: () => table.options.debugAll ?? table.options.debugColumns,\n }\n ),\n\n _getAllFlatColumnsById: memo(\n () => [table.getAllFlatColumns()],\n flatColumns => {\n return flatColumns.reduce((acc, column) => {\n acc[column.id] = column\n return acc\n }, {} as Record<string, Column<TData>>)\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getAllFlatColumnsById',\n debug: () => table.options.debugAll ?? table.options.debugColumns,\n }\n ),\n\n getAllLeafColumns: memo(\n () => [table.getAllColumns(), table._getOrderColumnsFn()],\n (allColumns, orderColumns) => {\n let leafColumns = allColumns.flatMap(column => column.getLeafColumns())\n return orderColumns(leafColumns)\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getAllLeafColumns',\n debug: () => table.options.debugAll ?? table.options.debugColumns,\n }\n ),\n\n getColumn: columnId => {\n const column = table._getAllFlatColumnsById()[columnId]\n\n if (!column) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(`[Table] Column with id ${columnId} does not exist.`)\n }\n throw new Error()\n }\n\n return column\n },\n }\n\n Object.assign(table, coreInstance)\n\n table._features.forEach(feature => {\n return Object.assign(table, feature.createTable?.(table))\n })\n\n return table\n}\n"],"names":["features","Headers","Visibility","Ordering","Pinning","Filters","Sorting","Grouping","Expanding","Pagination","RowSelection","ColumnSizing","createTable","options","debugAll","debugTable","console","info","table","_features","defaultOptions","reduce","obj","feature","Object","assign","getDefaultOptions","mergeOptions","coreInitialState","initialState","forEach","getInitialState","queued","queuedTimeout","coreInstance","_queue","cb","push","Promise","resolve","then","length","shift","catch","error","setTimeout","reset","setState","setOptions","updater","newOptions","functionalUpdate","getState","state","onStateChange","_getRowId","row","index","parent","getRowId","id","join","getCoreRowModel","_getCoreRowModel","getRowModel","getPaginationRowModel","getRow","rowsById","process","env","NODE_ENV","Error","_getDefaultColumnDef","memo","defaultColumn","header","props","column","footer","cell","renderValue","toString","getDefaultColumnDef","debug","debugColumns","key","_getColumnDefs","columns","getAllColumns","columnDefs","recurseColumns","depth","map","columnDef","createColumn","getAllFlatColumns","allColumns","flatMap","getFlatColumns","_getAllFlatColumnsById","flatColumns","acc","getAllLeafColumns","_getOrderColumnsFn","orderColumns","leafColumns","getLeafColumns","getColumn","columnId","warn"],"mappings":"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"}
1
+ {"version":3,"file":"table.js","sources":["../../../src/core/table.ts"],"sourcesContent":["import { flattenBy, functionalUpdate, memo, RequiredKeys } from '../utils'\n\nimport {\n Updater,\n TableOptionsResolved,\n TableState,\n Table,\n ColumnDefTemplate,\n InitialTableState,\n Row,\n Column,\n RowModel,\n ColumnDef,\n TableOptions,\n RowData,\n TableMeta,\n} from '../types'\n\n//\nimport { createColumn } from './column'\nimport { Headers } from './headers'\n//\n\nimport { ColumnSizing } from '../features/ColumnSizing'\nimport { Expanding } from '../features/Expanding'\nimport { Filters } from '../features/Filters'\nimport { Grouping } from '../features/Grouping'\nimport { Ordering } from '../features/Ordering'\nimport { Pagination } from '../features/Pagination'\nimport { Pinning } from '../features/Pinning'\nimport { RowSelection } from '../features/RowSelection'\nimport { Sorting } from '../features/Sorting'\nimport { Visibility } from '../features/Visibility'\n\nexport type TableFeature = {\n getDefaultOptions?: (table: any) => any\n getInitialState?: (initialState?: InitialTableState) => any\n createTable?: (table: any) => any\n getDefaultColumnDef?: () => any\n createColumn?: (column: any, table: any) => any\n createHeader?: (column: any, table: any) => any\n createCell?: (cell: any, column: any, row: any, table: any) => any\n createRow?: (row: any, table: any) => any\n}\n\nconst features = [\n Headers,\n Visibility,\n Ordering,\n Pinning,\n Filters,\n Sorting,\n Grouping,\n Expanding,\n Pagination,\n RowSelection,\n ColumnSizing,\n] as const\n\n//\n\nexport type CoreTableState = {}\n\nexport type CoreOptions<TData extends RowData> = {\n data: TData[]\n state: Partial<TableState>\n onStateChange: (updater: Updater<TableState>) => void\n debugAll?: boolean\n debugTable?: boolean\n debugHeaders?: boolean\n debugColumns?: boolean\n debugRows?: boolean\n initialState?: InitialTableState\n autoResetAll?: boolean\n mergeOptions?: (\n defaultOptions: TableOptions<TData>,\n options: Partial<TableOptions<TData>>\n ) => TableOptions<TData>\n meta?: TableMeta\n getCoreRowModel: (table: Table<any>) => () => RowModel<any>\n getSubRows?: (originalRow: TData, index: number) => undefined | TData[]\n getRowId?: (originalRow: TData, index: number, parent?: Row<TData>) => string\n columns: ColumnDef<TData>[]\n defaultColumn?: Partial<ColumnDef<TData>>\n renderFallbackValue: any\n}\n\nexport type CoreInstance<TData extends RowData> = {\n initialState: TableState\n reset: () => void\n options: RequiredKeys<TableOptionsResolved<TData>, 'state'>\n setOptions: (newOptions: Updater<TableOptionsResolved<TData>>) => void\n getState: () => TableState\n setState: (updater: Updater<TableState>) => void\n _features: readonly TableFeature[]\n _queue: (cb: () => void) => void\n _getRowId: (_: TData, index: number, parent?: Row<TData>) => string\n getCoreRowModel: () => RowModel<TData>\n _getCoreRowModel?: () => RowModel<TData>\n getRowModel: () => RowModel<TData>\n getRow: (id: string) => Row<TData>\n _getDefaultColumnDef: () => Partial<ColumnDef<TData>>\n _getColumnDefs: () => ColumnDef<TData>[]\n _getAllFlatColumnsById: () => Record<string, Column<TData, unknown>>\n getAllColumns: () => Column<TData, unknown>[]\n getAllFlatColumns: () => Column<TData, unknown>[]\n getAllLeafColumns: () => Column<TData, unknown>[]\n getColumn: (columnId: string) => Column<TData, unknown>\n}\n\nexport function createTable<TData extends RowData>(\n options: TableOptionsResolved<TData>\n): Table<TData> {\n if (options.debugAll || options.debugTable) {\n console.info('Creating Table Instance...')\n }\n\n let table = { _features: features } as unknown as Table<TData>\n\n const defaultOptions = table._features.reduce((obj, feature) => {\n return Object.assign(obj, feature.getDefaultOptions?.(table))\n }, {}) as TableOptionsResolved<TData>\n\n const mergeOptions = (options: TableOptionsResolved<TData>) => {\n if (table.options.mergeOptions) {\n return table.options.mergeOptions(defaultOptions, options)\n }\n\n return {\n ...defaultOptions,\n ...options,\n }\n }\n\n const coreInitialState: CoreTableState = {}\n\n let initialState = {\n ...coreInitialState,\n ...(options.initialState ?? {}),\n } as TableState\n\n table._features.forEach(feature => {\n initialState = feature.getInitialState?.(initialState) ?? initialState\n })\n\n const queued: (() => void)[] = []\n let queuedTimeout = false\n\n const coreInstance: CoreInstance<TData> = {\n _features: features,\n options: {\n ...defaultOptions,\n ...options,\n },\n initialState,\n _queue: cb => {\n queued.push(cb)\n\n if (!queuedTimeout) {\n queuedTimeout = true\n\n // Schedule a microtask to run the queued callbacks after\n // the current call stack (render, etc) has finished.\n Promise.resolve()\n .then(() => {\n while (queued.length) {\n queued.shift()!()\n }\n queuedTimeout = false\n })\n .catch(error =>\n setTimeout(() => {\n throw error\n })\n )\n }\n },\n reset: () => {\n table.setState(table.initialState)\n },\n setOptions: updater => {\n const newOptions = functionalUpdate(updater, table.options)\n table.options = mergeOptions(newOptions) as RequiredKeys<\n TableOptionsResolved<TData>,\n 'state'\n >\n },\n\n getState: () => {\n return table.options.state as TableState\n },\n\n setState: (updater: Updater<TableState>) => {\n table.options.onStateChange?.(updater)\n },\n\n _getRowId: (row: TData, index: number, parent?: Row<TData>) =>\n table.options.getRowId?.(row, index, parent) ??\n `${parent ? [parent.id, index].join('.') : index}`,\n\n getCoreRowModel: () => {\n if (!table._getCoreRowModel) {\n table._getCoreRowModel = table.options.getCoreRowModel(table)\n }\n\n return table._getCoreRowModel!()\n },\n\n // The final calls start at the bottom of the model,\n // expanded rows, which then work their way up\n\n getRowModel: () => {\n return table.getPaginationRowModel()\n },\n getRow: (id: string) => {\n const row = table.getRowModel().rowsById[id]\n\n if (!row) {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error(`getRow expected an ID, but got ${id}`)\n }\n throw new Error()\n }\n\n return row\n },\n _getDefaultColumnDef: memo(\n () => [table.options.defaultColumn],\n defaultColumn => {\n defaultColumn = (defaultColumn ?? {}) as Partial<ColumnDef<TData>>\n\n return {\n header: props => props.header.column.id,\n footer: props => props.header.column.id,\n cell: props => props.renderValue<any>()?.toString?.() ?? null,\n ...table._features.reduce((obj, feature) => {\n return Object.assign(obj, feature.getDefaultColumnDef?.())\n }, {}),\n ...defaultColumn,\n } as Partial<ColumnDef<TData>>\n },\n {\n debug: () => table.options.debugAll ?? table.options.debugColumns,\n key: process.env.NODE_ENV === 'development' && 'getDefaultColumnDef',\n }\n ),\n\n _getColumnDefs: () => table.options.columns,\n\n getAllColumns: memo(\n () => [table._getColumnDefs()],\n columnDefs => {\n const recurseColumns = (\n columnDefs: ColumnDef<TData>[],\n parent?: Column<TData, unknown>,\n depth = 0\n ): Column<TData, unknown>[] => {\n return columnDefs.map(columnDef => {\n const column = createColumn(table, columnDef, depth, parent)\n\n column.columns = columnDef.columns\n ? recurseColumns(columnDef.columns, column, depth + 1)\n : []\n\n return column\n })\n }\n\n return recurseColumns(columnDefs)\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getAllColumns',\n debug: () => table.options.debugAll ?? table.options.debugColumns,\n }\n ),\n\n getAllFlatColumns: memo(\n () => [table.getAllColumns()],\n allColumns => {\n return allColumns.flatMap(column => {\n return column.getFlatColumns()\n })\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getAllFlatColumns',\n debug: () => table.options.debugAll ?? table.options.debugColumns,\n }\n ),\n\n _getAllFlatColumnsById: memo(\n () => [table.getAllFlatColumns()],\n flatColumns => {\n return flatColumns.reduce((acc, column) => {\n acc[column.id] = column\n return acc\n }, {} as Record<string, Column<TData, unknown>>)\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getAllFlatColumnsById',\n debug: () => table.options.debugAll ?? table.options.debugColumns,\n }\n ),\n\n getAllLeafColumns: memo(\n () => [table.getAllColumns(), table._getOrderColumnsFn()],\n (allColumns, orderColumns) => {\n let leafColumns = allColumns.flatMap(column => column.getLeafColumns())\n return orderColumns(leafColumns)\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getAllLeafColumns',\n debug: () => table.options.debugAll ?? table.options.debugColumns,\n }\n ),\n\n getColumn: columnId => {\n const column = table._getAllFlatColumnsById()[columnId]\n\n if (!column) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(`[Table] Column with id ${columnId} does not exist.`)\n }\n throw new Error()\n }\n\n return column\n },\n }\n\n Object.assign(table, coreInstance)\n\n table._features.forEach(feature => {\n return Object.assign(table, feature.createTable?.(table))\n })\n\n return table\n}\n"],"names":["features","Headers","Visibility","Ordering","Pinning","Filters","Sorting","Grouping","Expanding","Pagination","RowSelection","ColumnSizing","createTable","options","debugAll","debugTable","console","info","table","_features","defaultOptions","reduce","obj","feature","Object","assign","getDefaultOptions","mergeOptions","coreInitialState","initialState","forEach","getInitialState","queued","queuedTimeout","coreInstance","_queue","cb","push","Promise","resolve","then","length","shift","catch","error","setTimeout","reset","setState","setOptions","updater","newOptions","functionalUpdate","getState","state","onStateChange","_getRowId","row","index","parent","getRowId","id","join","getCoreRowModel","_getCoreRowModel","getRowModel","getPaginationRowModel","getRow","rowsById","process","env","NODE_ENV","Error","_getDefaultColumnDef","memo","defaultColumn","header","props","column","footer","cell","renderValue","toString","getDefaultColumnDef","debug","debugColumns","key","_getColumnDefs","columns","getAllColumns","columnDefs","recurseColumns","depth","map","columnDef","createColumn","getAllFlatColumns","allColumns","flatMap","getFlatColumns","_getAllFlatColumnsById","flatColumns","acc","getAllLeafColumns","_getOrderColumnsFn","orderColumns","leafColumns","getLeafColumns","getColumn","columnId","warn"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ColumnSizing.js","sources":["../../../src/features/ColumnSizing.ts"],"sourcesContent":["import { TableFeature } from '../core/table'\nimport {\n RowData,\n Column,\n Header,\n OnChangeFn,\n TableGenerics,\n Table,\n Updater,\n} from '../types'\nimport { makeStateUpdater } from '../utils'\nimport { ColumnPinningPosition } from './Pinning'\n\n//\n\nexport type ColumnSizingTableState = {\n columnSizing: ColumnSizingState\n columnSizingInfo: ColumnSizingInfoState\n}\n\nexport type ColumnSizingState = Record<string, number>\n\nexport type ColumnSizingInfoState = {\n startOffset: null | number\n startSize: null | number\n deltaOffset: null | number\n deltaPercentage: null | number\n isResizingColumn: false | string\n columnSizingStart: [string, number][]\n}\n\nexport type ColumnResizeMode = 'onChange' | 'onEnd'\n\nexport type ColumnSizingOptions = {\n enableColumnResizing?: boolean\n columnResizeMode?: ColumnResizeMode\n onColumnSizingChange?: OnChangeFn<ColumnSizingState>\n onColumnSizingInfoChange?: OnChangeFn<ColumnSizingInfoState>\n}\n\nexport type ColumnSizingDefaultOptions = {\n columnResizeMode: ColumnResizeMode\n onColumnSizingChange: OnChangeFn<ColumnSizingState>\n onColumnSizingInfoChange: OnChangeFn<ColumnSizingInfoState>\n}\n\nexport type ColumnSizingInstance = {\n setColumnSizing: (updater: Updater<ColumnSizingState>) => void\n setColumnSizingInfo: (updater: Updater<ColumnSizingInfoState>) => void\n resetColumnSizing: (defaultState?: boolean) => void\n resetHeaderSizeInfo: (defaultState?: boolean) => void\n getTotalSize: () => number\n getLeftTotalSize: () => number\n getCenterTotalSize: () => number\n getRightTotalSize: () => number\n}\n\nexport type ColumnSizingColumnDef = {\n enableResizing?: boolean\n size?: number\n minSize?: number\n maxSize?: number\n}\n\nexport type ColumnSizingColumn = {\n getSize: () => number\n getStart: (position?: ColumnPinningPosition) => number\n getCanResize: () => boolean\n getIsResizing: () => boolean\n resetSize: () => void\n}\n\nexport type ColumnSizingHeader = {\n getSize: () => number\n getStart: (position?: ColumnPinningPosition) => number\n getResizeHandler: () => (event: unknown) => void\n}\n\n//\n\nexport const defaultColumnSizing = {\n size: 150,\n minSize: 20,\n maxSize: Number.MAX_SAFE_INTEGER,\n}\n\nconst getDefaultColumnSizingInfoState = (): ColumnSizingInfoState => ({\n startOffset: null,\n startSize: null,\n deltaOffset: null,\n deltaPercentage: null,\n isResizingColumn: false,\n columnSizingStart: [],\n})\n\nexport const ColumnSizing: TableFeature = {\n getDefaultColumnDef: (): ColumnSizingColumnDef => {\n return defaultColumnSizing\n },\n getInitialState: (state): ColumnSizingTableState => {\n return {\n columnSizing: {},\n columnSizingInfo: getDefaultColumnSizingInfoState(),\n ...state,\n }\n },\n\n getDefaultOptions: <TData extends RowData>(\n table: Table<TData>\n ): ColumnSizingDefaultOptions => {\n return {\n columnResizeMode: 'onEnd',\n onColumnSizingChange: makeStateUpdater('columnSizing', table),\n onColumnSizingInfoChange: makeStateUpdater('columnSizingInfo', table),\n }\n },\n\n createColumn: <TData extends RowData>(\n column: Column<TData>,\n table: Table<TData>\n ): ColumnSizingColumn => {\n return {\n getSize: () => {\n const columnSize = table.getState().columnSizing[column.id]\n\n return Math.min(\n Math.max(\n column.columnDef.minSize ?? defaultColumnSizing.minSize,\n columnSize ?? column.columnDef.size ?? defaultColumnSizing.size\n ),\n column.columnDef.maxSize ?? defaultColumnSizing.maxSize\n )\n },\n getStart: position => {\n const columns = !position\n ? table.getVisibleLeafColumns()\n : position === 'left'\n ? table.getLeftVisibleLeafColumns()\n : table.getRightVisibleLeafColumns()\n\n const index = columns.findIndex(d => d.id === column.id)\n\n if (index > 0) {\n const prevSiblingColumn = columns[index - 1]!\n\n return (\n prevSiblingColumn.getStart(position) + prevSiblingColumn.getSize()\n )\n }\n\n return 0\n },\n resetSize: () => {\n table.setColumnSizing(({ [column.id]: _, ...rest }) => {\n return rest\n })\n },\n getCanResize: () => {\n return (\n (column.columnDef.enableResizing ?? true) &&\n (table.options.enableColumnResizing ?? true)\n )\n },\n getIsResizing: () => {\n return table.getState().columnSizingInfo.isResizingColumn === column.id\n },\n }\n },\n\n createHeader: <TData extends RowData>(\n header: Header<TData>,\n table: Table<TData>\n ): ColumnSizingHeader => {\n return {\n getSize: () => {\n let sum = 0\n\n const recurse = (header: Header<TData>) => {\n if (header.subHeaders.length) {\n header.subHeaders.forEach(recurse)\n } else {\n sum += header.column.getSize() ?? 0\n }\n }\n\n recurse(header)\n\n return sum\n },\n getStart: () => {\n if (header.index > 0) {\n const prevSiblingHeader =\n header.headerGroup.headers[header.index - 1]!\n return prevSiblingHeader.getStart() + prevSiblingHeader.getSize()\n }\n\n return 0\n },\n getResizeHandler: () => {\n const column = table.getColumn(header.column.id)\n const canResize = column.getCanResize()\n\n return (e: unknown) => {\n if (!canResize) {\n return\n }\n\n ;(e as any).persist?.()\n\n if (isTouchStartEvent(e)) {\n // lets not respond to multiple touches (e.g. 2 or 3 fingers)\n if (e.touches && e.touches.length > 1) {\n return\n }\n }\n\n const startSize = header.getSize()\n\n const columnSizingStart: [string, number][] = header\n ? header\n .getLeafHeaders()\n .map(d => [d.column.id, d.column.getSize()])\n : [[column.id, column.getSize()]]\n\n const clientX = isTouchStartEvent(e)\n ? Math.round(e.touches[0]!.clientX)\n : (e as MouseEvent).clientX\n\n const updateOffset = (\n eventType: 'move' | 'end',\n clientXPos?: number\n ) => {\n if (typeof clientXPos !== 'number') {\n return\n }\n\n let newColumnSizing: ColumnSizingState = {}\n\n table.setColumnSizingInfo(old => {\n const deltaOffset = clientXPos - (old?.startOffset ?? 0)\n const deltaPercentage = Math.max(\n deltaOffset / (old?.startSize ?? 0),\n -0.999999\n )\n\n old.columnSizingStart.forEach(([columnId, headerSize]) => {\n newColumnSizing[columnId] =\n Math.round(\n Math.max(headerSize + headerSize * deltaPercentage, 0) * 100\n ) / 100\n })\n\n return {\n ...old,\n deltaOffset,\n deltaPercentage,\n }\n })\n\n if (\n table.options.columnResizeMode === 'onChange' ||\n eventType === 'end'\n ) {\n table.setColumnSizing(old => ({\n ...old,\n ...newColumnSizing,\n }))\n }\n }\n\n const onMove = (clientXPos?: number) =>\n updateOffset('move', clientXPos)\n\n const onEnd = (clientXPos?: number) => {\n updateOffset('end', clientXPos)\n\n table.setColumnSizingInfo(old => ({\n ...old,\n isResizingColumn: false,\n startOffset: null,\n startSize: null,\n deltaOffset: null,\n deltaPercentage: null,\n columnSizingStart: [],\n }))\n }\n\n const mouseEvents = {\n moveHandler: (e: MouseEvent) => onMove(e.clientX),\n upHandler: (e: MouseEvent) => {\n document.removeEventListener('mousemove', mouseEvents.moveHandler)\n document.removeEventListener('mouseup', mouseEvents.upHandler)\n onEnd(e.clientX)\n },\n }\n\n const touchEvents = {\n moveHandler: (e: TouchEvent) => {\n if (e.cancelable) {\n e.preventDefault()\n e.stopPropagation()\n }\n onMove(e.touches[0]!.clientX)\n return false\n },\n upHandler: (e: TouchEvent) => {\n document.removeEventListener('touchmove', touchEvents.moveHandler)\n document.removeEventListener('touchend', touchEvents.upHandler)\n if (e.cancelable) {\n e.preventDefault()\n e.stopPropagation()\n }\n onEnd(e.touches[0]!.clientX)\n },\n }\n\n const passiveIfSupported = passiveEventSupported()\n ? { passive: false }\n : false\n\n if (isTouchStartEvent(e)) {\n } else {\n document.addEventListener(\n 'mousemove',\n mouseEvents.moveHandler,\n passiveIfSupported\n )\n document.addEventListener(\n 'mouseup',\n mouseEvents.upHandler,\n passiveIfSupported\n )\n }\n\n table.setColumnSizingInfo(old => ({\n ...old,\n startOffset: clientX,\n startSize,\n deltaOffset: 0,\n deltaPercentage: 0,\n columnSizingStart,\n isResizingColumn: column.id,\n }))\n }\n },\n }\n },\n\n createTable: <TData extends RowData>(\n table: Table<TData>\n ): ColumnSizingInstance => {\n return {\n setColumnSizing: updater => table.options.onColumnSizingChange?.(updater),\n setColumnSizingInfo: updater =>\n table.options.onColumnSizingInfoChange?.(updater),\n resetColumnSizing: defaultState => {\n table.setColumnSizing(\n defaultState ? {} : table.initialState.columnSizing ?? {}\n )\n },\n resetHeaderSizeInfo: defaultState => {\n table.setColumnSizingInfo(\n defaultState\n ? getDefaultColumnSizingInfoState()\n : table.initialState.columnSizingInfo ??\n getDefaultColumnSizingInfoState()\n )\n },\n getTotalSize: () =>\n table.getHeaderGroups()[0]?.headers.reduce((sum, header) => {\n return sum + header.getSize()\n }, 0) ?? 0,\n getLeftTotalSize: () =>\n table.getLeftHeaderGroups()[0]?.headers.reduce((sum, header) => {\n return sum + header.getSize()\n }, 0) ?? 0,\n getCenterTotalSize: () =>\n table.getCenterHeaderGroups()[0]?.headers.reduce((sum, header) => {\n return sum + header.getSize()\n }, 0) ?? 0,\n getRightTotalSize: () =>\n table.getRightHeaderGroups()[0]?.headers.reduce((sum, header) => {\n return sum + header.getSize()\n }, 0) ?? 0,\n }\n },\n}\n\nlet passiveSupported: boolean | null = null\nexport function passiveEventSupported() {\n if (typeof passiveSupported === 'boolean') return passiveSupported\n\n let supported = false\n try {\n const options = {\n get passive() {\n supported = true\n return false\n },\n }\n\n const noop = () => {}\n\n window.addEventListener('test', noop, options)\n window.removeEventListener('test', noop)\n } catch (err) {\n supported = false\n }\n passiveSupported = supported\n return passiveSupported\n}\n\nfunction isTouchStartEvent(e: unknown): e is TouchEvent {\n return (e as TouchEvent).type === 'touchstart'\n}\n"],"names":["defaultColumnSizing","size","minSize","maxSize","Number","MAX_SAFE_INTEGER","getDefaultColumnSizingInfoState","startOffset","startSize","deltaOffset","deltaPercentage","isResizingColumn","columnSizingStart","ColumnSizing","getDefaultColumnDef","getInitialState","state","columnSizing","columnSizingInfo","getDefaultOptions","table","columnResizeMode","onColumnSizingChange","makeStateUpdater","onColumnSizingInfoChange","createColumn","column","getSize","columnSize","getState","id","Math","min","max","columnDef","getStart","position","columns","getVisibleLeafColumns","getLeftVisibleLeafColumns","getRightVisibleLeafColumns","index","findIndex","d","prevSiblingColumn","resetSize","setColumnSizing","_","rest","getCanResize","enableResizing","options","enableColumnResizing","getIsResizing","createHeader","header","sum","recurse","subHeaders","length","forEach","prevSiblingHeader","headerGroup","headers","getResizeHandler","getColumn","canResize","e","persist","isTouchStartEvent","touches","getLeafHeaders","map","clientX","round","updateOffset","eventType","clientXPos","newColumnSizing","setColumnSizingInfo","old","columnId","headerSize","onMove","onEnd","mouseEvents","moveHandler","upHandler","document","removeEventListener","passiveIfSupported","passiveEventSupported","passive","addEventListener","createTable","updater","resetColumnSizing","defaultState","initialState","resetHeaderSizeInfo","getTotalSize","getHeaderGroups","reduce","getLeftTotalSize","getLeftHeaderGroups","getCenterTotalSize","getCenterHeaderGroups","getRightTotalSize","getRightHeaderGroups","passiveSupported","supported","noop","window","err","type"],"mappings":"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"}
1
+ {"version":3,"file":"ColumnSizing.js","sources":["../../../src/features/ColumnSizing.ts"],"sourcesContent":["import { TableFeature } from '../core/table'\nimport {\n RowData,\n Column,\n Header,\n OnChangeFn,\n TableGenerics,\n Table,\n Updater,\n} from '../types'\nimport { makeStateUpdater } from '../utils'\nimport { ColumnPinningPosition } from './Pinning'\n\n//\n\nexport type ColumnSizingTableState = {\n columnSizing: ColumnSizingState\n columnSizingInfo: ColumnSizingInfoState\n}\n\nexport type ColumnSizingState = Record<string, number>\n\nexport type ColumnSizingInfoState = {\n startOffset: null | number\n startSize: null | number\n deltaOffset: null | number\n deltaPercentage: null | number\n isResizingColumn: false | string\n columnSizingStart: [string, number][]\n}\n\nexport type ColumnResizeMode = 'onChange' | 'onEnd'\n\nexport type ColumnSizingOptions = {\n enableColumnResizing?: boolean\n columnResizeMode?: ColumnResizeMode\n onColumnSizingChange?: OnChangeFn<ColumnSizingState>\n onColumnSizingInfoChange?: OnChangeFn<ColumnSizingInfoState>\n}\n\nexport type ColumnSizingDefaultOptions = {\n columnResizeMode: ColumnResizeMode\n onColumnSizingChange: OnChangeFn<ColumnSizingState>\n onColumnSizingInfoChange: OnChangeFn<ColumnSizingInfoState>\n}\n\nexport type ColumnSizingInstance = {\n setColumnSizing: (updater: Updater<ColumnSizingState>) => void\n setColumnSizingInfo: (updater: Updater<ColumnSizingInfoState>) => void\n resetColumnSizing: (defaultState?: boolean) => void\n resetHeaderSizeInfo: (defaultState?: boolean) => void\n getTotalSize: () => number\n getLeftTotalSize: () => number\n getCenterTotalSize: () => number\n getRightTotalSize: () => number\n}\n\nexport type ColumnSizingColumnDef = {\n enableResizing?: boolean\n size?: number\n minSize?: number\n maxSize?: number\n}\n\nexport type ColumnSizingColumn = {\n getSize: () => number\n getStart: (position?: ColumnPinningPosition) => number\n getCanResize: () => boolean\n getIsResizing: () => boolean\n resetSize: () => void\n}\n\nexport type ColumnSizingHeader = {\n getSize: () => number\n getStart: (position?: ColumnPinningPosition) => number\n getResizeHandler: () => (event: unknown) => void\n}\n\n//\n\nexport const defaultColumnSizing = {\n size: 150,\n minSize: 20,\n maxSize: Number.MAX_SAFE_INTEGER,\n}\n\nconst getDefaultColumnSizingInfoState = (): ColumnSizingInfoState => ({\n startOffset: null,\n startSize: null,\n deltaOffset: null,\n deltaPercentage: null,\n isResizingColumn: false,\n columnSizingStart: [],\n})\n\nexport const ColumnSizing: TableFeature = {\n getDefaultColumnDef: (): ColumnSizingColumnDef => {\n return defaultColumnSizing\n },\n getInitialState: (state): ColumnSizingTableState => {\n return {\n columnSizing: {},\n columnSizingInfo: getDefaultColumnSizingInfoState(),\n ...state,\n }\n },\n\n getDefaultOptions: <TData extends RowData>(\n table: Table<TData>\n ): ColumnSizingDefaultOptions => {\n return {\n columnResizeMode: 'onEnd',\n onColumnSizingChange: makeStateUpdater('columnSizing', table),\n onColumnSizingInfoChange: makeStateUpdater('columnSizingInfo', table),\n }\n },\n\n createColumn: <TData extends RowData, TValue>(\n column: Column<TData, TValue>,\n table: Table<TData>\n ): ColumnSizingColumn => {\n return {\n getSize: () => {\n const columnSize = table.getState().columnSizing[column.id]\n\n return Math.min(\n Math.max(\n column.columnDef.minSize ?? defaultColumnSizing.minSize,\n columnSize ?? column.columnDef.size ?? defaultColumnSizing.size\n ),\n column.columnDef.maxSize ?? defaultColumnSizing.maxSize\n )\n },\n getStart: position => {\n const columns = !position\n ? table.getVisibleLeafColumns()\n : position === 'left'\n ? table.getLeftVisibleLeafColumns()\n : table.getRightVisibleLeafColumns()\n\n const index = columns.findIndex(d => d.id === column.id)\n\n if (index > 0) {\n const prevSiblingColumn = columns[index - 1]!\n\n return (\n prevSiblingColumn.getStart(position) + prevSiblingColumn.getSize()\n )\n }\n\n return 0\n },\n resetSize: () => {\n table.setColumnSizing(({ [column.id]: _, ...rest }) => {\n return rest\n })\n },\n getCanResize: () => {\n return (\n (column.columnDef.enableResizing ?? true) &&\n (table.options.enableColumnResizing ?? true)\n )\n },\n getIsResizing: () => {\n return table.getState().columnSizingInfo.isResizingColumn === column.id\n },\n }\n },\n\n createHeader: <TData extends RowData, TValue>(\n header: Header<TData, TValue>,\n table: Table<TData>\n ): ColumnSizingHeader => {\n return {\n getSize: () => {\n let sum = 0\n\n const recurse = (header: Header<TData, TValue>) => {\n if (header.subHeaders.length) {\n header.subHeaders.forEach(recurse)\n } else {\n sum += header.column.getSize() ?? 0\n }\n }\n\n recurse(header)\n\n return sum\n },\n getStart: () => {\n if (header.index > 0) {\n const prevSiblingHeader =\n header.headerGroup.headers[header.index - 1]!\n return prevSiblingHeader.getStart() + prevSiblingHeader.getSize()\n }\n\n return 0\n },\n getResizeHandler: () => {\n const column = table.getColumn(header.column.id)\n const canResize = column.getCanResize()\n\n return (e: unknown) => {\n if (!canResize) {\n return\n }\n\n ;(e as any).persist?.()\n\n if (isTouchStartEvent(e)) {\n // lets not respond to multiple touches (e.g. 2 or 3 fingers)\n if (e.touches && e.touches.length > 1) {\n return\n }\n }\n\n const startSize = header.getSize()\n\n const columnSizingStart: [string, number][] = header\n ? header\n .getLeafHeaders()\n .map(d => [d.column.id, d.column.getSize()])\n : [[column.id, column.getSize()]]\n\n const clientX = isTouchStartEvent(e)\n ? Math.round(e.touches[0]!.clientX)\n : (e as MouseEvent).clientX\n\n const updateOffset = (\n eventType: 'move' | 'end',\n clientXPos?: number\n ) => {\n if (typeof clientXPos !== 'number') {\n return\n }\n\n let newColumnSizing: ColumnSizingState = {}\n\n table.setColumnSizingInfo(old => {\n const deltaOffset = clientXPos - (old?.startOffset ?? 0)\n const deltaPercentage = Math.max(\n deltaOffset / (old?.startSize ?? 0),\n -0.999999\n )\n\n old.columnSizingStart.forEach(([columnId, headerSize]) => {\n newColumnSizing[columnId] =\n Math.round(\n Math.max(headerSize + headerSize * deltaPercentage, 0) * 100\n ) / 100\n })\n\n return {\n ...old,\n deltaOffset,\n deltaPercentage,\n }\n })\n\n if (\n table.options.columnResizeMode === 'onChange' ||\n eventType === 'end'\n ) {\n table.setColumnSizing(old => ({\n ...old,\n ...newColumnSizing,\n }))\n }\n }\n\n const onMove = (clientXPos?: number) =>\n updateOffset('move', clientXPos)\n\n const onEnd = (clientXPos?: number) => {\n updateOffset('end', clientXPos)\n\n table.setColumnSizingInfo(old => ({\n ...old,\n isResizingColumn: false,\n startOffset: null,\n startSize: null,\n deltaOffset: null,\n deltaPercentage: null,\n columnSizingStart: [],\n }))\n }\n\n const mouseEvents = {\n moveHandler: (e: MouseEvent) => onMove(e.clientX),\n upHandler: (e: MouseEvent) => {\n document.removeEventListener('mousemove', mouseEvents.moveHandler)\n document.removeEventListener('mouseup', mouseEvents.upHandler)\n onEnd(e.clientX)\n },\n }\n\n const touchEvents = {\n moveHandler: (e: TouchEvent) => {\n if (e.cancelable) {\n e.preventDefault()\n e.stopPropagation()\n }\n onMove(e.touches[0]!.clientX)\n return false\n },\n upHandler: (e: TouchEvent) => {\n document.removeEventListener('touchmove', touchEvents.moveHandler)\n document.removeEventListener('touchend', touchEvents.upHandler)\n if (e.cancelable) {\n e.preventDefault()\n e.stopPropagation()\n }\n onEnd(e.touches[0]!.clientX)\n },\n }\n\n const passiveIfSupported = passiveEventSupported()\n ? { passive: false }\n : false\n\n if (isTouchStartEvent(e)) {\n } else {\n document.addEventListener(\n 'mousemove',\n mouseEvents.moveHandler,\n passiveIfSupported\n )\n document.addEventListener(\n 'mouseup',\n mouseEvents.upHandler,\n passiveIfSupported\n )\n }\n\n table.setColumnSizingInfo(old => ({\n ...old,\n startOffset: clientX,\n startSize,\n deltaOffset: 0,\n deltaPercentage: 0,\n columnSizingStart,\n isResizingColumn: column.id,\n }))\n }\n },\n }\n },\n\n createTable: <TData extends RowData>(\n table: Table<TData>\n ): ColumnSizingInstance => {\n return {\n setColumnSizing: updater => table.options.onColumnSizingChange?.(updater),\n setColumnSizingInfo: updater =>\n table.options.onColumnSizingInfoChange?.(updater),\n resetColumnSizing: defaultState => {\n table.setColumnSizing(\n defaultState ? {} : table.initialState.columnSizing ?? {}\n )\n },\n resetHeaderSizeInfo: defaultState => {\n table.setColumnSizingInfo(\n defaultState\n ? getDefaultColumnSizingInfoState()\n : table.initialState.columnSizingInfo ??\n getDefaultColumnSizingInfoState()\n )\n },\n getTotalSize: () =>\n table.getHeaderGroups()[0]?.headers.reduce((sum, header) => {\n return sum + header.getSize()\n }, 0) ?? 0,\n getLeftTotalSize: () =>\n table.getLeftHeaderGroups()[0]?.headers.reduce((sum, header) => {\n return sum + header.getSize()\n }, 0) ?? 0,\n getCenterTotalSize: () =>\n table.getCenterHeaderGroups()[0]?.headers.reduce((sum, header) => {\n return sum + header.getSize()\n }, 0) ?? 0,\n getRightTotalSize: () =>\n table.getRightHeaderGroups()[0]?.headers.reduce((sum, header) => {\n return sum + header.getSize()\n }, 0) ?? 0,\n }\n },\n}\n\nlet passiveSupported: boolean | null = null\nexport function passiveEventSupported() {\n if (typeof passiveSupported === 'boolean') return passiveSupported\n\n let supported = false\n try {\n const options = {\n get passive() {\n supported = true\n return false\n },\n }\n\n const noop = () => {}\n\n window.addEventListener('test', noop, options)\n window.removeEventListener('test', noop)\n } catch (err) {\n supported = false\n }\n passiveSupported = supported\n return passiveSupported\n}\n\nfunction isTouchStartEvent(e: unknown): e is TouchEvent {\n return (e as TouchEvent).type === 'touchstart'\n}\n"],"names":["defaultColumnSizing","size","minSize","maxSize","Number","MAX_SAFE_INTEGER","getDefaultColumnSizingInfoState","startOffset","startSize","deltaOffset","deltaPercentage","isResizingColumn","columnSizingStart","ColumnSizing","getDefaultColumnDef","getInitialState","state","columnSizing","columnSizingInfo","getDefaultOptions","table","columnResizeMode","onColumnSizingChange","makeStateUpdater","onColumnSizingInfoChange","createColumn","column","getSize","columnSize","getState","id","Math","min","max","columnDef","getStart","position","columns","getVisibleLeafColumns","getLeftVisibleLeafColumns","getRightVisibleLeafColumns","index","findIndex","d","prevSiblingColumn","resetSize","setColumnSizing","_","rest","getCanResize","enableResizing","options","enableColumnResizing","getIsResizing","createHeader","header","sum","recurse","subHeaders","length","forEach","prevSiblingHeader","headerGroup","headers","getResizeHandler","getColumn","canResize","e","persist","isTouchStartEvent","touches","getLeafHeaders","map","clientX","round","updateOffset","eventType","clientXPos","newColumnSizing","setColumnSizingInfo","old","columnId","headerSize","onMove","onEnd","mouseEvents","moveHandler","upHandler","document","removeEventListener","passiveIfSupported","passiveEventSupported","passive","addEventListener","createTable","updater","resetColumnSizing","defaultState","initialState","resetHeaderSizeInfo","getTotalSize","getHeaderGroups","reduce","getLeftTotalSize","getLeftHeaderGroups","getCenterTotalSize","getCenterHeaderGroups","getRightTotalSize","getRightHeaderGroups","passiveSupported","supported","noop","window","err","type"],"mappings":"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"}