@tanstack/table-core 8.0.0-alpha.80 → 8.0.0-alpha.84

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 (110) hide show
  1. package/build/cjs/core/cell.js +38 -0
  2. package/build/cjs/core/cell.js.map +1 -0
  3. package/build/cjs/core/column.js +88 -0
  4. package/build/cjs/core/column.js.map +1 -0
  5. package/build/cjs/{features/Headers.js → core/headers.js} +54 -66
  6. package/build/cjs/core/headers.js.map +1 -0
  7. package/build/cjs/core/instance.js +255 -0
  8. package/build/cjs/core/instance.js.map +1 -0
  9. package/build/cjs/core/row.js +77 -0
  10. package/build/cjs/core/row.js.map +1 -0
  11. package/build/cjs/createTable.js +4 -2
  12. package/build/cjs/createTable.js.map +1 -1
  13. package/build/cjs/features/ColumnSizing.js +5 -5
  14. package/build/cjs/features/ColumnSizing.js.map +1 -1
  15. package/build/cjs/features/Expanding.js.map +1 -1
  16. package/build/cjs/features/Filters.js +12 -7
  17. package/build/cjs/features/Filters.js.map +1 -1
  18. package/build/cjs/features/Grouping.js +5 -5
  19. package/build/cjs/features/Grouping.js.map +1 -1
  20. package/build/cjs/features/Ordering.js.map +1 -1
  21. package/build/cjs/features/Pagination.js.map +1 -1
  22. package/build/cjs/features/Pinning.js +17 -11
  23. package/build/cjs/features/Pinning.js.map +1 -1
  24. package/build/cjs/features/RowSelection.js.map +1 -1
  25. package/build/cjs/features/Sorting.js +9 -9
  26. package/build/cjs/features/Sorting.js.map +1 -1
  27. package/build/cjs/features/Visibility.js +3 -3
  28. package/build/cjs/features/Visibility.js.map +1 -1
  29. package/build/cjs/index.js +17 -5
  30. package/build/cjs/index.js.map +1 -1
  31. package/build/cjs/utils/filterRowsUtils.js +23 -21
  32. package/build/cjs/utils/filterRowsUtils.js.map +1 -1
  33. package/build/cjs/utils/getCoreRowModel.js +9 -8
  34. package/build/cjs/utils/getCoreRowModel.js.map +1 -1
  35. package/build/cjs/utils/getFacetedRowModel.js +1 -1
  36. package/build/cjs/utils/getFacetedRowModel.js.map +1 -1
  37. package/build/cjs/utils/getFilteredRowModel.js +20 -9
  38. package/build/cjs/utils/getFilteredRowModel.js.map +1 -1
  39. package/build/cjs/utils/getGroupedRowModel.js +14 -13
  40. package/build/cjs/utils/getGroupedRowModel.js.map +1 -1
  41. package/build/cjs/utils/getSortedRowModel.js +2 -2
  42. package/build/cjs/utils/getSortedRowModel.js.map +1 -1
  43. package/build/esm/index.js +731 -810
  44. package/build/esm/index.js.map +1 -1
  45. package/build/stats-html.html +1 -1
  46. package/build/stats-react.json +418 -377
  47. package/build/types/core/cell.d.ts +9 -0
  48. package/build/types/{features/Columns.d.ts → core/column.d.ts} +3 -17
  49. package/build/types/{features/Headers.d.ts → core/headers.d.ts} +26 -11
  50. package/build/types/core/instance.d.ts +57 -0
  51. package/build/types/core/row.d.ts +15 -0
  52. package/build/types/createTable.d.ts +8 -5
  53. package/build/types/features/ColumnSizing.d.ts +2 -1
  54. package/build/types/features/Expanding.d.ts +2 -1
  55. package/build/types/features/Filters.d.ts +5 -3
  56. package/build/types/features/Grouping.d.ts +3 -2
  57. package/build/types/features/Ordering.d.ts +2 -1
  58. package/build/types/features/Pagination.d.ts +2 -1
  59. package/build/types/features/Pinning.d.ts +3 -2
  60. package/build/types/features/RowSelection.d.ts +2 -1
  61. package/build/types/features/Sorting.d.ts +2 -1
  62. package/build/types/features/Visibility.d.ts +2 -1
  63. package/build/types/index.d.ts +7 -2
  64. package/build/types/sortingFns.d.ts +4 -4
  65. package/build/types/types.d.ts +13 -53
  66. package/build/umd/index.development.js +738 -806
  67. package/build/umd/index.development.js.map +1 -1
  68. package/build/umd/index.production.js +1 -1
  69. package/build/umd/index.production.js.map +1 -1
  70. package/package.json +1 -1
  71. package/src/core/cell.ts +47 -0
  72. package/src/core/column.ts +148 -0
  73. package/src/{features/Headers.ts → core/headers.ts} +98 -99
  74. package/src/core/instance.ts +361 -0
  75. package/src/core/row.ts +85 -0
  76. package/src/createTable.ts +14 -7
  77. package/src/features/ColumnSizing.ts +6 -6
  78. package/src/features/Expanding.ts +1 -2
  79. package/src/features/Filters.ts +20 -8
  80. package/src/features/Grouping.ts +7 -6
  81. package/src/features/Ordering.ts +1 -1
  82. package/src/features/Pagination.ts +1 -1
  83. package/src/features/Pinning.ts +18 -9
  84. package/src/features/RowSelection.ts +1 -1
  85. package/src/features/Sorting.ts +11 -11
  86. package/src/features/Visibility.ts +3 -3
  87. package/src/index.ts +7 -8
  88. package/src/types.ts +17 -64
  89. package/src/utils/filterRowsUtils.ts +5 -3
  90. package/src/utils/getCoreRowModel.ts +4 -2
  91. package/src/utils/getFacetedRowModel.ts +1 -1
  92. package/src/utils/getFilteredRowModel.ts +24 -13
  93. package/src/utils/getGroupedRowModel.ts +9 -8
  94. package/src/utils/getSortedRowModel.ts +2 -2
  95. package/build/cjs/core.js +0 -168
  96. package/build/cjs/core.js.map +0 -1
  97. package/build/cjs/features/Cells.js +0 -101
  98. package/build/cjs/features/Cells.js.map +0 -1
  99. package/build/cjs/features/Columns.js +0 -189
  100. package/build/cjs/features/Columns.js.map +0 -1
  101. package/build/cjs/features/Headers.js.map +0 -1
  102. package/build/cjs/features/Rows.js +0 -94
  103. package/build/cjs/features/Rows.js.map +0 -1
  104. package/build/types/core.d.ts +0 -30
  105. package/build/types/features/Cells.d.ts +0 -13
  106. package/build/types/features/Rows.d.ts +0 -28
  107. package/src/core.ts +0 -246
  108. package/src/features/Cells.ts +0 -128
  109. package/src/features/Columns.ts +0 -289
  110. package/src/features/Rows.ts +0 -142
@@ -12,6 +12,7 @@
12
12
 
13
13
  Object.defineProperty(exports, '__esModule', { value: true });
14
14
 
15
+ var row = require('../core/row.js');
15
16
  var utils = require('../utils.js');
16
17
 
17
18
  function getCoreRowModel() {
@@ -22,7 +23,7 @@ function getCoreRowModel() {
22
23
  rowsById: {}
23
24
  };
24
25
  let rows;
25
- let row;
26
+ let row$1;
26
27
  let originalRow;
27
28
 
28
29
  const accessRows = function (originalRows, depth, parent) {
@@ -41,21 +42,21 @@ function getCoreRowModel() {
41
42
  // }
42
43
  // Make the row
43
44
 
44
- row = instance.createRow(instance.getRowId(originalRow, i, parent), originalRow, i, depth); // Keep track of every row in a flat array
45
+ row$1 = row.createRow(instance, instance._getRowId(originalRow, i, parent), originalRow, i, depth); // Keep track of every row in a flat array
45
46
 
46
- rowModel.flatRows.push(row); // Also keep track of every row by its ID
47
+ rowModel.flatRows.push(row$1); // Also keep track of every row by its ID
47
48
 
48
- rowModel.rowsById[row.id] = row; // Push instance row into parent
49
+ rowModel.rowsById[row$1.id] = row$1; // Push instance row into parent
49
50
 
50
- rows.push(row); // Get the original subrows
51
+ rows.push(row$1); // Get the original subrows
51
52
 
52
53
  if (instance.options.getSubRows) {
53
54
  var _row$originalSubRows;
54
55
 
55
- row.originalSubRows = instance.options.getSubRows(originalRow, i); // Then recursively access them
56
+ row$1.originalSubRows = instance.options.getSubRows(originalRow, i); // Then recursively access them
56
57
 
57
- if ((_row$originalSubRows = row.originalSubRows) != null && _row$originalSubRows.length) {
58
- row.subRows = accessRows(row.originalSubRows, depth + 1, row);
58
+ if ((_row$originalSubRows = row$1.originalSubRows) != null && _row$originalSubRows.length) {
59
+ row$1.subRows = accessRows(row$1.originalSubRows, depth + 1, row$1);
59
60
  }
60
61
  }
61
62
  }
@@ -1 +1 @@
1
- {"version":3,"file":"getCoreRowModel.js","sources":["../../../src/utils/getCoreRowModel.ts"],"sourcesContent":["import { TableInstance, Row, RowModel, TableGenerics } from '../types'\nimport { memo } from '../utils'\n\nexport function getCoreRowModel<TGenerics extends TableGenerics>(): (\n instance: TableInstance<TGenerics>\n) => () => RowModel<TGenerics> {\n return instance =>\n memo(\n () => [instance.options.data],\n (\n data\n ): {\n rows: Row<TGenerics>[]\n flatRows: Row<TGenerics>[]\n rowsById: Record<string, Row<TGenerics>>\n } => {\n const rowModel: RowModel<TGenerics> = {\n rows: [],\n flatRows: [],\n rowsById: {},\n }\n\n let rows\n let row\n let originalRow\n\n const accessRows = (\n originalRows: TGenerics['Row'][],\n depth = 0,\n parent?: Row<TGenerics>\n ): Row<TGenerics>[] => {\n rows = []\n\n for (let i = 0; i < originalRows.length; i++) {\n originalRow = originalRows[i]\n\n // This could be an expensive check at scale, so we should move it somewhere else, but where?\n // if (!id) {\n // if (process.env.NODE_ENV !== 'production') {\n // throw new Error(`getRowId expected an ID, but got ${id}`)\n // }\n // }\n\n // Make the row\n row = instance.createRow(\n instance.getRowId(originalRow, i, parent),\n originalRow,\n i,\n depth\n )\n\n // Keep track of every row in a flat array\n rowModel.flatRows.push(row)\n // Also keep track of every row by its ID\n rowModel.rowsById[row.id] = row\n // Push instance row into parent\n rows.push(row)\n\n // Get the original subrows\n if (instance.options.getSubRows) {\n row.originalSubRows = instance.options.getSubRows(originalRow, i)\n\n // Then recursively access them\n if (row.originalSubRows?.length) {\n row.subRows = accessRows(row.originalSubRows, depth + 1, row)\n }\n }\n }\n\n return rows\n }\n\n rowModel.rows = accessRows(data)\n\n return rowModel\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getRowModel',\n debug: () => instance.options.debugAll ?? instance.options.debugTable,\n onChange: () => {\n instance._autoResetPageIndex()\n },\n }\n )\n}\n"],"names":["getCoreRowModel","instance","memo","options","data","rowModel","rows","flatRows","rowsById","row","originalRow","accessRows","originalRows","depth","parent","i","length","createRow","getRowId","push","id","getSubRows","originalSubRows","subRows","key","process","env","NODE_ENV","debug","debugAll","debugTable","onChange","_autoResetPageIndex"],"mappings":";;;;;;;;;;;;;;;;AAGO,SAASA,eAAT,GAEwB;AAC7B,EAAA,OAAOC,QAAQ,IACbC,UAAI,CACF,MAAM,CAACD,QAAQ,CAACE,OAAT,CAAiBC,IAAlB,CADJ,EAGAA,IADF,IAMK;AACH,IAAA,MAAMC,QAA6B,GAAG;AACpCC,MAAAA,IAAI,EAAE,EAD8B;AAEpCC,MAAAA,QAAQ,EAAE,EAF0B;AAGpCC,MAAAA,QAAQ,EAAE,EAAA;AAH0B,KAAtC,CAAA;AAMA,IAAA,IAAIF,IAAJ,CAAA;AACA,IAAA,IAAIG,GAAJ,CAAA;AACA,IAAA,IAAIC,WAAJ,CAAA;;AAEA,IAAMC,MAAAA,UAAU,GAAG,UACjBC,YADiB,EAEjBC,KAFiB,EAGjBC,MAHiB,EAII;AAAA,MAAA,IAFrBD,KAEqB,KAAA,KAAA,CAAA,EAAA;AAFrBA,QAAAA,KAEqB,GAFb,CAEa,CAAA;AAAA,OAAA;;AACrBP,MAAAA,IAAI,GAAG,EAAP,CAAA;;AAEA,MAAA,KAAK,IAAIS,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGH,YAAY,CAACI,MAAjC,EAAyCD,CAAC,EAA1C,EAA8C;AAC5CL,QAAAA,WAAW,GAAGE,YAAY,CAACG,CAAD,CAA1B,CAD4C;AAI5C;AACA;AACA;AACA;AACA;AAEA;;AACAN,QAAAA,GAAG,GAAGR,QAAQ,CAACgB,SAAT,CACJhB,QAAQ,CAACiB,QAAT,CAAkBR,WAAlB,EAA+BK,CAA/B,EAAkCD,MAAlC,CADI,EAEJJ,WAFI,EAGJK,CAHI,EAIJF,KAJI,CAAN,CAX4C;;AAmB5CR,QAAAA,QAAQ,CAACE,QAAT,CAAkBY,IAAlB,CAAuBV,GAAvB,EAnB4C;;AAqB5CJ,QAAAA,QAAQ,CAACG,QAAT,CAAkBC,GAAG,CAACW,EAAtB,CAAA,GAA4BX,GAA5B,CArB4C;;AAuB5CH,QAAAA,IAAI,CAACa,IAAL,CAAUV,GAAV,EAvB4C;;AA0B5C,QAAA,IAAIR,QAAQ,CAACE,OAAT,CAAiBkB,UAArB,EAAiC;AAAA,UAAA,IAAA,oBAAA,CAAA;;AAC/BZ,UAAAA,GAAG,CAACa,eAAJ,GAAsBrB,QAAQ,CAACE,OAAT,CAAiBkB,UAAjB,CAA4BX,WAA5B,EAAyCK,CAAzC,CAAtB,CAD+B;;AAI/B,UAAA,IAAA,CAAA,oBAAA,GAAIN,GAAG,CAACa,eAAR,KAAI,IAAA,IAAA,oBAAA,CAAqBN,MAAzB,EAAiC;AAC/BP,YAAAA,GAAG,CAACc,OAAJ,GAAcZ,UAAU,CAACF,GAAG,CAACa,eAAL,EAAsBT,KAAK,GAAG,CAA9B,EAAiCJ,GAAjC,CAAxB,CAAA;AACD,WAAA;AACF,SAAA;AACF,OAAA;;AAED,MAAA,OAAOH,IAAP,CAAA;AACD,KA5CD,CAAA;;AA8CAD,IAAAA,QAAQ,CAACC,IAAT,GAAgBK,UAAU,CAACP,IAAD,CAA1B,CAAA;AAEA,IAAA,OAAOC,QAAP,CAAA;AACD,GApEC,EAqEF;AACEmB,IAAAA,GAAG,EAAEC,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,aAAzB,IAA0C,aADjD;AAEEC,IAAAA,KAAK,EAAE,MAAA;AAAA,MAAA,IAAA,qBAAA,CAAA;;AAAA,MAAM3B,OAAAA,CAAAA,qBAAAA,GAAAA,QAAQ,CAACE,OAAT,CAAiB0B,QAAvB,oCAAmC5B,QAAQ,CAACE,OAAT,CAAiB2B,UAApD,CAAA;AAAA,KAFT;AAGEC,IAAAA,QAAQ,EAAE,MAAM;AACd9B,MAAAA,QAAQ,CAAC+B,mBAAT,EAAA,CAAA;AACD,KAAA;AALH,GArEE,CADN,CAAA;AA8ED;;;;"}
1
+ {"version":3,"file":"getCoreRowModel.js","sources":["../../../src/utils/getCoreRowModel.ts"],"sourcesContent":["import { createRow } from '../core/row'\nimport { TableInstance, Row, RowModel, TableGenerics } from '../types'\nimport { memo } from '../utils'\n\nexport function getCoreRowModel<TGenerics extends TableGenerics>(): (\n instance: TableInstance<TGenerics>\n) => () => RowModel<TGenerics> {\n return instance =>\n memo(\n () => [instance.options.data],\n (\n data\n ): {\n rows: Row<TGenerics>[]\n flatRows: Row<TGenerics>[]\n rowsById: Record<string, Row<TGenerics>>\n } => {\n const rowModel: RowModel<TGenerics> = {\n rows: [],\n flatRows: [],\n rowsById: {},\n }\n\n let rows\n let row\n let originalRow\n\n const accessRows = (\n originalRows: TGenerics['Row'][],\n depth = 0,\n parent?: Row<TGenerics>\n ): Row<TGenerics>[] => {\n rows = []\n\n for (let i = 0; i < originalRows.length; i++) {\n originalRow = originalRows[i]\n\n // This could be an expensive check at scale, so we should move it somewhere else, but where?\n // if (!id) {\n // if (process.env.NODE_ENV !== 'production') {\n // throw new Error(`getRowId expected an ID, but got ${id}`)\n // }\n // }\n\n // Make the row\n row = createRow(\n instance,\n instance._getRowId(originalRow, i, parent),\n originalRow,\n i,\n depth\n )\n\n // Keep track of every row in a flat array\n rowModel.flatRows.push(row)\n // Also keep track of every row by its ID\n rowModel.rowsById[row.id] = row\n // Push instance row into parent\n rows.push(row)\n\n // Get the original subrows\n if (instance.options.getSubRows) {\n row.originalSubRows = instance.options.getSubRows(originalRow, i)\n\n // Then recursively access them\n if (row.originalSubRows?.length) {\n row.subRows = accessRows(row.originalSubRows, depth + 1, row)\n }\n }\n }\n\n return rows\n }\n\n rowModel.rows = accessRows(data)\n\n return rowModel\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getRowModel',\n debug: () => instance.options.debugAll ?? instance.options.debugTable,\n onChange: () => {\n instance._autoResetPageIndex()\n },\n }\n )\n}\n"],"names":["getCoreRowModel","instance","memo","options","data","rowModel","rows","flatRows","rowsById","row","originalRow","accessRows","originalRows","depth","parent","i","length","createRow","_getRowId","push","id","getSubRows","originalSubRows","subRows","key","process","env","NODE_ENV","debug","debugAll","debugTable","onChange","_autoResetPageIndex"],"mappings":";;;;;;;;;;;;;;;;;AAIO,SAASA,eAAT,GAEwB;AAC7B,EAAA,OAAOC,QAAQ,IACbC,UAAI,CACF,MAAM,CAACD,QAAQ,CAACE,OAAT,CAAiBC,IAAlB,CADJ,EAGAA,IADF,IAMK;AACH,IAAA,MAAMC,QAA6B,GAAG;AACpCC,MAAAA,IAAI,EAAE,EAD8B;AAEpCC,MAAAA,QAAQ,EAAE,EAF0B;AAGpCC,MAAAA,QAAQ,EAAE,EAAA;AAH0B,KAAtC,CAAA;AAMA,IAAA,IAAIF,IAAJ,CAAA;AACA,IAAA,IAAIG,KAAJ,CAAA;AACA,IAAA,IAAIC,WAAJ,CAAA;;AAEA,IAAMC,MAAAA,UAAU,GAAG,UACjBC,YADiB,EAEjBC,KAFiB,EAGjBC,MAHiB,EAII;AAAA,MAAA,IAFrBD,KAEqB,KAAA,KAAA,CAAA,EAAA;AAFrBA,QAAAA,KAEqB,GAFb,CAEa,CAAA;AAAA,OAAA;;AACrBP,MAAAA,IAAI,GAAG,EAAP,CAAA;;AAEA,MAAA,KAAK,IAAIS,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGH,YAAY,CAACI,MAAjC,EAAyCD,CAAC,EAA1C,EAA8C;AAC5CL,QAAAA,WAAW,GAAGE,YAAY,CAACG,CAAD,CAA1B,CAD4C;AAI5C;AACA;AACA;AACA;AACA;AAEA;;AACAN,QAAAA,KAAG,GAAGQ,aAAS,CACbhB,QADa,EAEbA,QAAQ,CAACiB,SAAT,CAAmBR,WAAnB,EAAgCK,CAAhC,EAAmCD,MAAnC,CAFa,EAGbJ,WAHa,EAIbK,CAJa,EAKbF,KALa,CAAf,CAX4C;;AAoB5CR,QAAAA,QAAQ,CAACE,QAAT,CAAkBY,IAAlB,CAAuBV,KAAvB,EApB4C;;AAsB5CJ,QAAAA,QAAQ,CAACG,QAAT,CAAkBC,KAAG,CAACW,EAAtB,CAAA,GAA4BX,KAA5B,CAtB4C;;AAwB5CH,QAAAA,IAAI,CAACa,IAAL,CAAUV,KAAV,EAxB4C;;AA2B5C,QAAA,IAAIR,QAAQ,CAACE,OAAT,CAAiBkB,UAArB,EAAiC;AAAA,UAAA,IAAA,oBAAA,CAAA;;AAC/BZ,UAAAA,KAAG,CAACa,eAAJ,GAAsBrB,QAAQ,CAACE,OAAT,CAAiBkB,UAAjB,CAA4BX,WAA5B,EAAyCK,CAAzC,CAAtB,CAD+B;;AAI/B,UAAA,IAAA,CAAA,oBAAA,GAAIN,KAAG,CAACa,eAAR,KAAI,IAAA,IAAA,oBAAA,CAAqBN,MAAzB,EAAiC;AAC/BP,YAAAA,KAAG,CAACc,OAAJ,GAAcZ,UAAU,CAACF,KAAG,CAACa,eAAL,EAAsBT,KAAK,GAAG,CAA9B,EAAiCJ,KAAjC,CAAxB,CAAA;AACD,WAAA;AACF,SAAA;AACF,OAAA;;AAED,MAAA,OAAOH,IAAP,CAAA;AACD,KA7CD,CAAA;;AA+CAD,IAAAA,QAAQ,CAACC,IAAT,GAAgBK,UAAU,CAACP,IAAD,CAA1B,CAAA;AAEA,IAAA,OAAOC,QAAP,CAAA;AACD,GArEC,EAsEF;AACEmB,IAAAA,GAAG,EAAEC,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,aAAzB,IAA0C,aADjD;AAEEC,IAAAA,KAAK,EAAE,MAAA;AAAA,MAAA,IAAA,qBAAA,CAAA;;AAAA,MAAM3B,OAAAA,CAAAA,qBAAAA,GAAAA,QAAQ,CAACE,OAAT,CAAiB0B,QAAvB,oCAAmC5B,QAAQ,CAACE,OAAT,CAAiB2B,UAApD,CAAA;AAAA,KAFT;AAGEC,IAAAA,QAAQ,EAAE,MAAM;AACd9B,MAAAA,QAAQ,CAAC+B,mBAAT,EAAA,CAAA;AACD,KAAA;AALH,GAtEE,CADN,CAAA;AA+ED;;;;"}
@@ -26,7 +26,7 @@ function getFacetedRowModel() {
26
26
  const filterRowsImpl = row => {
27
27
  // Horizontally filter rows through each column
28
28
  for (let i = 0; i < filterableIds.length; i++) {
29
- if (row.columnFilterMap[filterableIds[i]] === false) {
29
+ if (row.columnFilters[filterableIds[i]] === false) {
30
30
  return false;
31
31
  }
32
32
  }
@@ -1 +1 @@
1
- {"version":3,"file":"getFacetedRowModel.js","sources":["../../../src/utils/getFacetedRowModel.ts"],"sourcesContent":["import { TableInstance, RowModel, TableGenerics, Row } from '../types'\nimport { memo } from '../utils'\nimport { filterRows } from './filterRowsUtils'\n\nexport function getFacetedRowModel<TGenerics extends TableGenerics>(): (\n instance: TableInstance<TGenerics>,\n columnId: string\n) => () => RowModel<TGenerics> {\n return (instance, columnId) =>\n memo(\n () => [\n instance.getPreFilteredRowModel(),\n instance.getState().columnFilters,\n instance.getState().globalFilter,\n instance.getFilteredRowModel(),\n ],\n (preRowModel, columnFilters, globalFilter) => {\n if (\n !preRowModel.rows.length ||\n (!columnFilters?.length && !globalFilter)\n ) {\n return preRowModel\n }\n\n const filterableIds = [\n ...columnFilters.map(d => d.id).filter(d => d !== columnId),\n globalFilter ? '__global__' : undefined,\n ].filter(Boolean) as string[]\n\n const filterRowsImpl = (row: Row<TGenerics>) => {\n // Horizontally filter rows through each column\n for (let i = 0; i < filterableIds.length; i++) {\n if (row.columnFilterMap[filterableIds[i]!] === false) {\n return false\n }\n }\n return true\n }\n\n return filterRows(preRowModel.rows, filterRowsImpl, instance)\n },\n {\n key:\n process.env.NODE_ENV === 'development' &&\n 'getFacetedRowModel_' + columnId,\n debug: () => instance.options.debugAll ?? instance.options.debugTable,\n onChange: () => {},\n }\n )\n}\n"],"names":["getFacetedRowModel","instance","columnId","memo","getPreFilteredRowModel","getState","columnFilters","globalFilter","getFilteredRowModel","preRowModel","rows","length","filterableIds","map","d","id","filter","undefined","Boolean","filterRowsImpl","row","i","columnFilterMap","filterRows","key","process","env","NODE_ENV","debug","options","debugAll","debugTable","onChange"],"mappings":";;;;;;;;;;;;;;;;;AAIO,SAASA,kBAAT,GAGwB;AAC7B,EAAA,OAAO,CAACC,QAAD,EAAWC,QAAX,KACLC,UAAI,CACF,MAAM,CACJF,QAAQ,CAACG,sBAAT,EADI,EAEJH,QAAQ,CAACI,QAAT,EAAoBC,CAAAA,aAFhB,EAGJL,QAAQ,CAACI,QAAT,EAAA,CAAoBE,YAHhB,EAIJN,QAAQ,CAACO,mBAAT,EAJI,CADJ,EAOF,CAACC,WAAD,EAAcH,aAAd,EAA6BC,YAA7B,KAA8C;AAC5C,IAAA,IACE,CAACE,WAAW,CAACC,IAAZ,CAAiBC,MAAlB,IACC,EAACL,aAAD,IAAA,IAAA,IAACA,aAAa,CAAEK,MAAhB,CAA0B,IAAA,CAACJ,YAF9B,EAGE;AACA,MAAA,OAAOE,WAAP,CAAA;AACD,KAAA;;AAED,IAAA,MAAMG,aAAa,GAAG,CACpB,GAAGN,aAAa,CAACO,GAAd,CAAkBC,CAAC,IAAIA,CAAC,CAACC,EAAzB,EAA6BC,MAA7B,CAAoCF,CAAC,IAAIA,CAAC,KAAKZ,QAA/C,CADiB,EAEpBK,YAAY,GAAG,YAAH,GAAkBU,SAFV,CAAA,CAGpBD,MAHoB,CAGbE,OAHa,CAAtB,CAAA;;AAKA,IAAMC,MAAAA,cAAc,GAAIC,GAAD,IAAyB;AAC9C;AACA,MAAA,KAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGT,aAAa,CAACD,MAAlC,EAA0CU,CAAC,EAA3C,EAA+C;AAC7C,QAAID,IAAAA,GAAG,CAACE,eAAJ,CAAoBV,aAAa,CAACS,CAAD,CAAjC,CAA2C,KAAA,KAA/C,EAAsD;AACpD,UAAA,OAAO,KAAP,CAAA;AACD,SAAA;AACF,OAAA;;AACD,MAAA,OAAO,IAAP,CAAA;AACD,KARD,CAAA;;AAUA,IAAOE,OAAAA,0BAAU,CAACd,WAAW,CAACC,IAAb,EAAmBS,cAAnB,EAAmClB,QAAnC,CAAjB,CAAA;AACD,GA/BC,EAgCF;AACEuB,IAAAA,GAAG,EACDC,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,aAAzB,IACA,qBAAA,GAAwBzB,QAH5B;AAIE0B,IAAAA,KAAK,EAAE,MAAA;AAAA,MAAA,IAAA,qBAAA,CAAA;;AAAA,MAAM3B,OAAAA,CAAAA,qBAAAA,GAAAA,QAAQ,CAAC4B,OAAT,CAAiBC,QAAvB,oCAAmC7B,QAAQ,CAAC4B,OAAT,CAAiBE,UAApD,CAAA;AAAA,KAJT;AAKEC,IAAAA,QAAQ,EAAE,MAAM,EAAE;AALpB,GAhCE,CADN,CAAA;AAyCD;;;;"}
1
+ {"version":3,"file":"getFacetedRowModel.js","sources":["../../../src/utils/getFacetedRowModel.ts"],"sourcesContent":["import { TableInstance, RowModel, TableGenerics, Row } from '../types'\nimport { memo } from '../utils'\nimport { filterRows } from './filterRowsUtils'\n\nexport function getFacetedRowModel<TGenerics extends TableGenerics>(): (\n instance: TableInstance<TGenerics>,\n columnId: string\n) => () => RowModel<TGenerics> {\n return (instance, columnId) =>\n memo(\n () => [\n instance.getPreFilteredRowModel(),\n instance.getState().columnFilters,\n instance.getState().globalFilter,\n instance.getFilteredRowModel(),\n ],\n (preRowModel, columnFilters, globalFilter) => {\n if (\n !preRowModel.rows.length ||\n (!columnFilters?.length && !globalFilter)\n ) {\n return preRowModel\n }\n\n const filterableIds = [\n ...columnFilters.map(d => d.id).filter(d => d !== columnId),\n globalFilter ? '__global__' : undefined,\n ].filter(Boolean) as string[]\n\n const filterRowsImpl = (row: Row<TGenerics>) => {\n // Horizontally filter rows through each column\n for (let i = 0; i < filterableIds.length; i++) {\n if (row.columnFilters[filterableIds[i]!] === false) {\n return false\n }\n }\n return true\n }\n\n return filterRows(preRowModel.rows, filterRowsImpl, instance)\n },\n {\n key:\n process.env.NODE_ENV === 'development' &&\n 'getFacetedRowModel_' + columnId,\n debug: () => instance.options.debugAll ?? instance.options.debugTable,\n onChange: () => {},\n }\n )\n}\n"],"names":["getFacetedRowModel","instance","columnId","memo","getPreFilteredRowModel","getState","columnFilters","globalFilter","getFilteredRowModel","preRowModel","rows","length","filterableIds","map","d","id","filter","undefined","Boolean","filterRowsImpl","row","i","filterRows","key","process","env","NODE_ENV","debug","options","debugAll","debugTable","onChange"],"mappings":";;;;;;;;;;;;;;;;;AAIO,SAASA,kBAAT,GAGwB;AAC7B,EAAA,OAAO,CAACC,QAAD,EAAWC,QAAX,KACLC,UAAI,CACF,MAAM,CACJF,QAAQ,CAACG,sBAAT,EADI,EAEJH,QAAQ,CAACI,QAAT,EAAoBC,CAAAA,aAFhB,EAGJL,QAAQ,CAACI,QAAT,EAAA,CAAoBE,YAHhB,EAIJN,QAAQ,CAACO,mBAAT,EAJI,CADJ,EAOF,CAACC,WAAD,EAAcH,aAAd,EAA6BC,YAA7B,KAA8C;AAC5C,IAAA,IACE,CAACE,WAAW,CAACC,IAAZ,CAAiBC,MAAlB,IACC,EAACL,aAAD,IAAA,IAAA,IAACA,aAAa,CAAEK,MAAhB,CAA0B,IAAA,CAACJ,YAF9B,EAGE;AACA,MAAA,OAAOE,WAAP,CAAA;AACD,KAAA;;AAED,IAAA,MAAMG,aAAa,GAAG,CACpB,GAAGN,aAAa,CAACO,GAAd,CAAkBC,CAAC,IAAIA,CAAC,CAACC,EAAzB,EAA6BC,MAA7B,CAAoCF,CAAC,IAAIA,CAAC,KAAKZ,QAA/C,CADiB,EAEpBK,YAAY,GAAG,YAAH,GAAkBU,SAFV,CAAA,CAGpBD,MAHoB,CAGbE,OAHa,CAAtB,CAAA;;AAKA,IAAMC,MAAAA,cAAc,GAAIC,GAAD,IAAyB;AAC9C;AACA,MAAA,KAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGT,aAAa,CAACD,MAAlC,EAA0CU,CAAC,EAA3C,EAA+C;AAC7C,QAAID,IAAAA,GAAG,CAACd,aAAJ,CAAkBM,aAAa,CAACS,CAAD,CAA/B,CAAyC,KAAA,KAA7C,EAAoD;AAClD,UAAA,OAAO,KAAP,CAAA;AACD,SAAA;AACF,OAAA;;AACD,MAAA,OAAO,IAAP,CAAA;AACD,KARD,CAAA;;AAUA,IAAOC,OAAAA,0BAAU,CAACb,WAAW,CAACC,IAAb,EAAmBS,cAAnB,EAAmClB,QAAnC,CAAjB,CAAA;AACD,GA/BC,EAgCF;AACEsB,IAAAA,GAAG,EACDC,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,aAAzB,IACA,qBAAA,GAAwBxB,QAH5B;AAIEyB,IAAAA,KAAK,EAAE,MAAA;AAAA,MAAA,IAAA,qBAAA,CAAA;;AAAA,MAAM1B,OAAAA,CAAAA,qBAAAA,GAAAA,QAAQ,CAAC2B,OAAT,CAAiBC,QAAvB,oCAAmC5B,QAAQ,CAAC2B,OAAT,CAAiBE,UAApD,CAAA;AAAA,KAJT;AAKEC,IAAAA,QAAQ,EAAE,MAAM,EAAE;AALpB,GAhCE,CADN,CAAA;AAyCD;;;;"}
@@ -18,6 +18,11 @@ var filterRowsUtils = require('./filterRowsUtils.js');
18
18
  function getFilteredRowModel() {
19
19
  return instance => utils.memo(() => [instance.getPreFilteredRowModel(), instance.getState().columnFilters, instance.getState().globalFilter], (rowModel, columnFilters, globalFilter) => {
20
20
  if (!rowModel.rows.length || !(columnFilters != null && columnFilters.length) && !globalFilter) {
21
+ for (let i = 0; i < rowModel.flatRows.length; i++) {
22
+ rowModel.flatRows[i].columnFilters = {};
23
+ rowModel.flatRows[i].columnFiltersMeta = {};
24
+ }
25
+
21
26
  return rowModel;
22
27
  }
23
28
 
@@ -72,28 +77,34 @@ function getFilteredRowModel() {
72
77
 
73
78
  for (let j = 0; j < rowModel.flatRows.length; j++) {
74
79
  const row = rowModel.flatRows[j];
75
- row.columnFilterMap = {};
80
+ row.columnFilters = {};
76
81
 
77
82
  if (resolvedColumnFilters.length) {
78
83
  for (let i = 0; i < resolvedColumnFilters.length; i++) {
79
- currentColumnFilter = resolvedColumnFilters[i]; // Tag the row with the column filter state
84
+ currentColumnFilter = resolvedColumnFilters[i];
85
+ const id = currentColumnFilter.id; // Tag the row with the column filter state
80
86
 
81
- row.columnFilterMap[currentColumnFilter.id] = currentColumnFilter.filterFn(row, currentColumnFilter.id, currentColumnFilter.resolvedValue);
87
+ row.columnFilters[id] = currentColumnFilter.filterFn(row, id, currentColumnFilter.resolvedValue, filterMeta => {
88
+ row.columnFiltersMeta[id] = filterMeta;
89
+ });
82
90
  }
83
91
  }
84
92
 
85
93
  if (resolvedGlobalFilters.length) {
86
94
  for (let i = 0; i < resolvedGlobalFilters.length; i++) {
87
- currentGlobalFilter = resolvedGlobalFilters[i]; // Tag the row with the first truthy global filter state
95
+ currentGlobalFilter = resolvedGlobalFilters[i];
96
+ const id = currentGlobalFilter.id; // Tag the row with the first truthy global filter state
88
97
 
89
- if (currentGlobalFilter.filterFn(row, currentGlobalFilter.id, currentGlobalFilter.resolvedValue)) {
90
- row.columnFilterMap.__global__ = true;
98
+ if (currentGlobalFilter.filterFn(row, id, currentGlobalFilter.resolvedValue, filterMeta => {
99
+ row.columnFiltersMeta[id] = filterMeta;
100
+ })) {
101
+ row.columnFilters.__global__ = true;
91
102
  break;
92
103
  }
93
104
  }
94
105
 
95
- if (row.columnFilterMap.__global__ !== true) {
96
- row.columnFilterMap.__global__ = false;
106
+ if (row.columnFilters.__global__ !== true) {
107
+ row.columnFilters.__global__ = false;
97
108
  }
98
109
  }
99
110
  }
@@ -101,7 +112,7 @@ function getFilteredRowModel() {
101
112
  const filterRowsImpl = row => {
102
113
  // Horizontally filter rows through each column
103
114
  for (let i = 0; i < filterableIds.length; i++) {
104
- if (row.columnFilterMap[filterableIds[i]] === false) {
115
+ if (row.columnFilters[filterableIds[i]] === false) {
105
116
  return false;
106
117
  }
107
118
  }
@@ -1 +1 @@
1
- {"version":3,"file":"getFilteredRowModel.js","sources":["../../../src/utils/getFilteredRowModel.ts"],"sourcesContent":["import { ResolvedColumnFilter } from '../features/Filters'\nimport { TableInstance, RowModel, TableGenerics, Row } from '../types'\nimport { memo } from '../utils'\nimport { filterRows } from './filterRowsUtils'\n\nexport function getFilteredRowModel<TGenerics extends TableGenerics>(): (\n instance: TableInstance<TGenerics>\n) => () => RowModel<TGenerics> {\n return instance =>\n memo(\n () => [\n instance.getPreFilteredRowModel(),\n instance.getState().columnFilters,\n instance.getState().globalFilter,\n ],\n (rowModel, columnFilters, globalFilter) => {\n if (\n !rowModel.rows.length ||\n (!columnFilters?.length && !globalFilter)\n ) {\n return rowModel\n }\n\n const resolvedColumnFilters: ResolvedColumnFilter<TGenerics>[] = []\n const resolvedGlobalFilters: ResolvedColumnFilter<TGenerics>[] = []\n\n ;(columnFilters ?? []).forEach(d => {\n const column = instance.getColumn(d.id)\n\n if (!column) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(\n `Table: Could not find a column to filter with columnId: ${d.id}`\n )\n }\n }\n\n const filterFn = column.getFilterFn()\n\n if (!filterFn) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(\n `Could not find a valid 'column.filterFn' for column with the ID: ${column.id}.`\n )\n }\n return\n }\n\n resolvedColumnFilters.push({\n id: d.id,\n filterFn,\n resolvedValue: filterFn.resolveFilterValue?.(d.value) ?? d.value,\n })\n })\n\n const filterableIds = columnFilters.map(d => d.id)\n\n const globalFilterFn = instance.getGlobalFilterFn()\n\n const globallyFilterableColumns = instance\n .getAllLeafColumns()\n .filter(column => column.getCanGlobalFilter())\n\n if (\n globalFilter &&\n globalFilterFn &&\n globallyFilterableColumns.length\n ) {\n filterableIds.push('__global__')\n\n globallyFilterableColumns.forEach(column => {\n resolvedGlobalFilters.push({\n id: column.id,\n filterFn: globalFilterFn,\n resolvedValue:\n globalFilterFn.resolveFilterValue?.(globalFilter) ??\n globalFilter,\n })\n })\n }\n\n let currentColumnFilter\n let currentGlobalFilter\n\n // Flag the prefiltered row model with each filter state\n for (let j = 0; j < rowModel.flatRows.length; j++) {\n const row = rowModel.flatRows[j]!\n\n row.columnFilterMap = {}\n\n if (resolvedColumnFilters.length) {\n for (let i = 0; i < resolvedColumnFilters.length; i++) {\n currentColumnFilter = resolvedColumnFilters[i]!\n\n // Tag the row with the column filter state\n row.columnFilterMap[currentColumnFilter.id] =\n currentColumnFilter.filterFn(\n row,\n currentColumnFilter.id,\n currentColumnFilter.resolvedValue\n )\n }\n }\n\n if (resolvedGlobalFilters.length) {\n for (let i = 0; i < resolvedGlobalFilters.length; i++) {\n currentGlobalFilter = resolvedGlobalFilters[i]!\n // Tag the row with the first truthy global filter state\n if (\n currentGlobalFilter.filterFn(\n row,\n currentGlobalFilter.id,\n currentGlobalFilter.resolvedValue\n )\n ) {\n row.columnFilterMap.__global__ = true\n break\n }\n }\n\n if (row.columnFilterMap.__global__ !== true) {\n row.columnFilterMap.__global__ = false\n }\n }\n }\n\n const filterRowsImpl = (row: Row<TGenerics>) => {\n // Horizontally filter rows through each column\n for (let i = 0; i < filterableIds.length; i++) {\n if (row.columnFilterMap[filterableIds[i]!] === false) {\n return false\n }\n }\n return true\n }\n\n // Filter final rows using all of the active filters\n return filterRows(rowModel.rows, filterRowsImpl, instance)\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getFilteredRowModel',\n debug: () => instance.options.debugAll ?? instance.options.debugTable,\n onChange: () => {\n instance._autoResetPageIndex()\n },\n }\n )\n}\n"],"names":["getFilteredRowModel","instance","memo","getPreFilteredRowModel","getState","columnFilters","globalFilter","rowModel","rows","length","resolvedColumnFilters","resolvedGlobalFilters","forEach","d","column","getColumn","id","process","env","NODE_ENV","console","warn","filterFn","getFilterFn","push","resolvedValue","resolveFilterValue","value","filterableIds","map","globalFilterFn","getGlobalFilterFn","globallyFilterableColumns","getAllLeafColumns","filter","getCanGlobalFilter","currentColumnFilter","currentGlobalFilter","j","flatRows","row","columnFilterMap","i","__global__","filterRowsImpl","filterRows","key","debug","options","debugAll","debugTable","onChange","_autoResetPageIndex"],"mappings":"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"}
1
+ {"version":3,"file":"getFilteredRowModel.js","sources":["../../../src/utils/getFilteredRowModel.ts"],"sourcesContent":["import { ResolvedColumnFilter } from '../features/Filters'\nimport { TableInstance, RowModel, TableGenerics, Row } from '../types'\nimport { memo } from '../utils'\nimport { filterRows } from './filterRowsUtils'\n\nexport function getFilteredRowModel<TGenerics extends TableGenerics>(): (\n instance: TableInstance<TGenerics>\n) => () => RowModel<TGenerics> {\n return instance =>\n memo(\n () => [\n instance.getPreFilteredRowModel(),\n instance.getState().columnFilters,\n instance.getState().globalFilter,\n ],\n (rowModel, columnFilters, globalFilter) => {\n if (\n !rowModel.rows.length ||\n (!columnFilters?.length && !globalFilter)\n ) {\n for (let i = 0; i < rowModel.flatRows.length; i++) {\n rowModel.flatRows[i]!.columnFilters = {}\n rowModel.flatRows[i]!.columnFiltersMeta = {}\n }\n return rowModel\n }\n\n const resolvedColumnFilters: ResolvedColumnFilter<TGenerics>[] = []\n const resolvedGlobalFilters: ResolvedColumnFilter<TGenerics>[] = []\n\n ;(columnFilters ?? []).forEach(d => {\n const column = instance.getColumn(d.id)\n\n if (!column) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(\n `Table: Could not find a column to filter with columnId: ${d.id}`\n )\n }\n }\n\n const filterFn = column.getFilterFn()\n\n if (!filterFn) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(\n `Could not find a valid 'column.filterFn' for column with the ID: ${column.id}.`\n )\n }\n return\n }\n\n resolvedColumnFilters.push({\n id: d.id,\n filterFn,\n resolvedValue: filterFn.resolveFilterValue?.(d.value) ?? d.value,\n })\n })\n\n const filterableIds = columnFilters.map(d => d.id)\n\n const globalFilterFn = instance.getGlobalFilterFn()\n\n const globallyFilterableColumns = instance\n .getAllLeafColumns()\n .filter(column => column.getCanGlobalFilter())\n\n if (\n globalFilter &&\n globalFilterFn &&\n globallyFilterableColumns.length\n ) {\n filterableIds.push('__global__')\n\n globallyFilterableColumns.forEach(column => {\n resolvedGlobalFilters.push({\n id: column.id,\n filterFn: globalFilterFn,\n resolvedValue:\n globalFilterFn.resolveFilterValue?.(globalFilter) ??\n globalFilter,\n })\n })\n }\n\n let currentColumnFilter\n let currentGlobalFilter\n\n // Flag the prefiltered row model with each filter state\n for (let j = 0; j < rowModel.flatRows.length; j++) {\n const row = rowModel.flatRows[j]!\n\n row.columnFilters = {}\n\n if (resolvedColumnFilters.length) {\n for (let i = 0; i < resolvedColumnFilters.length; i++) {\n currentColumnFilter = resolvedColumnFilters[i]!\n const id = currentColumnFilter.id\n\n // Tag the row with the column filter state\n row.columnFilters[id] = currentColumnFilter.filterFn(\n row,\n id,\n currentColumnFilter.resolvedValue,\n filterMeta => {\n row.columnFiltersMeta[id] = filterMeta\n }\n )\n }\n }\n\n if (resolvedGlobalFilters.length) {\n for (let i = 0; i < resolvedGlobalFilters.length; i++) {\n currentGlobalFilter = resolvedGlobalFilters[i]!\n const id = currentGlobalFilter.id\n // Tag the row with the first truthy global filter state\n if (\n currentGlobalFilter.filterFn(\n row,\n id,\n currentGlobalFilter.resolvedValue,\n filterMeta => {\n row.columnFiltersMeta[id] = filterMeta\n }\n )\n ) {\n row.columnFilters.__global__ = true\n break\n }\n }\n\n if (row.columnFilters.__global__ !== true) {\n row.columnFilters.__global__ = false\n }\n }\n }\n\n const filterRowsImpl = (row: Row<TGenerics>) => {\n // Horizontally filter rows through each column\n for (let i = 0; i < filterableIds.length; i++) {\n if (row.columnFilters[filterableIds[i]!] === false) {\n return false\n }\n }\n return true\n }\n\n // Filter final rows using all of the active filters\n return filterRows(rowModel.rows, filterRowsImpl, instance)\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getFilteredRowModel',\n debug: () => instance.options.debugAll ?? instance.options.debugTable,\n onChange: () => {\n instance._autoResetPageIndex()\n },\n }\n )\n}\n"],"names":["getFilteredRowModel","instance","memo","getPreFilteredRowModel","getState","columnFilters","globalFilter","rowModel","rows","length","i","flatRows","columnFiltersMeta","resolvedColumnFilters","resolvedGlobalFilters","forEach","d","column","getColumn","id","process","env","NODE_ENV","console","warn","filterFn","getFilterFn","push","resolvedValue","resolveFilterValue","value","filterableIds","map","globalFilterFn","getGlobalFilterFn","globallyFilterableColumns","getAllLeafColumns","filter","getCanGlobalFilter","currentColumnFilter","currentGlobalFilter","j","row","filterMeta","__global__","filterRowsImpl","filterRows","key","debug","options","debugAll","debugTable","onChange","_autoResetPageIndex"],"mappings":"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"}
@@ -12,6 +12,7 @@
12
12
 
13
13
  Object.defineProperty(exports, '__esModule', { value: true });
14
14
 
15
+ var row = require('../core/row.js');
15
16
  var utils = require('../utils.js');
16
17
 
17
18
  function getGroupedRowModel() {
@@ -51,8 +52,8 @@ function getGroupedRowModel() {
51
52
  const subRows = groupUpRecursively(groupedRows, depth + 1, id); // Flatten the leaf rows of the rows in this group
52
53
 
53
54
  const leafRows = depth ? utils.flattenBy(groupedRows, row => row.subRows) : groupedRows;
54
- const row = instance.createRow(id, undefined, index, depth);
55
- Object.assign(row, {
55
+ const row$1 = row.createRow(instance, id, undefined, index, depth);
56
+ Object.assign(row$1, {
56
57
  groupingColumnId: columnId,
57
58
  groupingValue,
58
59
  subRows,
@@ -60,21 +61,21 @@ function getGroupedRowModel() {
60
61
  getValue: columnId => {
61
62
  // Don't aggregate columns that are in the grouping
62
63
  if (existingGrouping.includes(columnId)) {
63
- if (row.valuesCache.hasOwnProperty(columnId)) {
64
- return row.valuesCache[columnId];
64
+ if (row$1._valuesCache.hasOwnProperty(columnId)) {
65
+ return row$1._valuesCache[columnId];
65
66
  }
66
67
 
67
68
  if (groupedRows[0]) {
68
69
  var _groupedRows$0$getVal;
69
70
 
70
- row.valuesCache[columnId] = (_groupedRows$0$getVal = groupedRows[0].getValue(columnId)) != null ? _groupedRows$0$getVal : undefined;
71
+ row$1._valuesCache[columnId] = (_groupedRows$0$getVal = groupedRows[0].getValue(columnId)) != null ? _groupedRows$0$getVal : undefined;
71
72
  }
72
73
 
73
- return row.valuesCache[columnId];
74
+ return row$1._valuesCache[columnId];
74
75
  }
75
76
 
76
- if (row.groupingValuesCache.hasOwnProperty(columnId)) {
77
- return row.groupingValuesCache[columnId];
77
+ if (row$1.groupingValuesCache.hasOwnProperty(columnId)) {
78
+ return row$1.groupingValuesCache[columnId];
78
79
  } // Aggregate the values
79
80
 
80
81
 
@@ -82,16 +83,16 @@ function getGroupedRowModel() {
82
83
  const aggregateFn = column.getColumnAggregationFn();
83
84
 
84
85
  if (aggregateFn) {
85
- row.groupingValuesCache[columnId] = aggregateFn(() => leafRows.map(row => {
86
+ row$1.groupingValuesCache[columnId] = aggregateFn(() => leafRows.map(row => {
86
87
  let columnValue = row.getValue(columnId);
87
88
 
88
- if (!depth && column.aggregateValue) {
89
- columnValue = column.aggregateValue(columnValue);
89
+ if (!depth && column.columnDef.aggregateValue) {
90
+ columnValue = column.columnDef.aggregateValue(columnValue);
90
91
  }
91
92
 
92
93
  return columnValue;
93
94
  }), () => groupedRows.map(row => row.getValue(columnId)));
94
- return row.groupingValuesCache[columnId];
95
+ return row$1.groupingValuesCache[columnId];
95
96
  } else if (column.aggregationFn) {
96
97
  console.info({
97
98
  column
@@ -110,7 +111,7 @@ function getGroupedRowModel() {
110
111
  // nonGroupedRowsById[subRow.id] = subRow;
111
112
  // }
112
113
  });
113
- return row;
114
+ return row$1;
114
115
  });
115
116
  return aggregatedGroupedRows;
116
117
  };
@@ -1 +1 @@
1
- {"version":3,"file":"getGroupedRowModel.js","sources":["../../../src/utils/getGroupedRowModel.ts"],"sourcesContent":["import { CoreRow } from '../features/Rows'\nimport { TableInstance, Row, RowModel, TableGenerics } from '../types'\nimport { flattenBy, memo } from '../utils'\n\nexport function getGroupedRowModel<TGenerics extends TableGenerics>(): (\n instance: TableInstance<TGenerics>\n) => () => RowModel<TGenerics> {\n return instance =>\n memo(\n () => [instance.getState().grouping, instance.getPreGroupedRowModel()],\n (grouping, rowModel) => {\n if (!rowModel.rows.length || !grouping.length) {\n return rowModel\n }\n\n // Filter the grouping list down to columns that exist\n const existingGrouping = grouping.filter(columnId =>\n instance.getColumn(columnId)\n )\n\n const groupedFlatRows: Row<TGenerics>[] = []\n const groupedRowsById: Record<string, Row<TGenerics>> = {}\n // const onlyGroupedFlatRows: Row[] = [];\n // const onlyGroupedRowsById: Record<RowId, Row> = {};\n // const nonGroupedFlatRows: Row[] = [];\n // const nonGroupedRowsById: Record<RowId, Row> = {};\n\n // Recursively group the data\n const groupUpRecursively = (\n rows: Row<TGenerics>[],\n depth = 0,\n parentId: string\n ) => {\n // This is the last level, just return the rows\n if (depth === existingGrouping.length) {\n return rows\n }\n\n const columnId = existingGrouping[depth]!\n\n // Group the rows together for this level\n const rowGroupsMap = groupBy(rows, columnId)\n\n // Peform aggregations for each group\n const aggregatedGroupedRows = Array.from(rowGroupsMap.entries()).map(\n ([groupingValue, groupedRows], index) => {\n let id = `${columnId}:${groupingValue}`\n id = parentId ? `${parentId}>${id}` : id\n\n // First, Recurse to group sub rows before aggregation\n const subRows = groupUpRecursively(groupedRows, depth + 1, id)\n\n // Flatten the leaf rows of the rows in this group\n const leafRows = depth\n ? flattenBy(groupedRows, row => row.subRows)\n : groupedRows\n\n const row = instance.createRow(id, undefined, index, depth)\n\n Object.assign(row, {\n groupingColumnId: columnId,\n groupingValue,\n subRows,\n leafRows,\n getValue: (columnId: string) => {\n // Don't aggregate columns that are in the grouping\n if (existingGrouping.includes(columnId)) {\n if (row.valuesCache.hasOwnProperty(columnId)) {\n return row.valuesCache[columnId]\n }\n\n if (groupedRows[0]) {\n row.valuesCache[columnId] =\n groupedRows[0].getValue(columnId) ?? undefined\n }\n\n return row.valuesCache[columnId]\n }\n\n if (row.groupingValuesCache.hasOwnProperty(columnId)) {\n return row.groupingValuesCache[columnId]\n }\n\n // Aggregate the values\n const column = instance.getColumn(columnId)\n const aggregateFn = column.getColumnAggregationFn()\n\n if (aggregateFn) {\n row.groupingValuesCache[columnId] = aggregateFn(\n () =>\n leafRows.map(row => {\n let columnValue = row.getValue(columnId)\n\n if (!depth && column.aggregateValue) {\n columnValue = column.aggregateValue(columnValue)\n }\n\n return columnValue\n }),\n () => groupedRows.map(row => row.getValue(columnId))\n )\n\n return row.groupingValuesCache[columnId]\n } else if (column.aggregationFn) {\n console.info({ column })\n throw new Error(\n process.env.NODE_ENV !== 'production'\n ? `Table: Invalid column.aggregateType option for column listed above`\n : ''\n )\n }\n },\n })\n\n subRows.forEach(subRow => {\n groupedFlatRows.push(subRow)\n groupedRowsById[subRow.id] = subRow\n // if (subRow.getIsGrouped?.()) {\n // onlyGroupedFlatRows.push(subRow);\n // onlyGroupedRowsById[subRow.id] = subRow;\n // } else {\n // nonGroupedFlatRows.push(subRow);\n // nonGroupedRowsById[subRow.id] = subRow;\n // }\n })\n\n return row\n }\n )\n\n return aggregatedGroupedRows\n }\n\n const groupedRows = groupUpRecursively(rowModel.rows, 0, '')\n\n groupedRows.forEach(subRow => {\n groupedFlatRows.push(subRow)\n groupedRowsById[subRow.id] = subRow\n // if (subRow.getIsGrouped?.()) {\n // onlyGroupedFlatRows.push(subRow);\n // onlyGroupedRowsById[subRow.id] = subRow;\n // } else {\n // nonGroupedFlatRows.push(subRow);\n // nonGroupedRowsById[subRow.id] = subRow;\n // }\n })\n\n return {\n rows: groupedRows,\n flatRows: groupedFlatRows,\n rowsById: groupedRowsById,\n }\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getGroupedRowModel',\n debug: () => instance.options.debugAll ?? instance.options.debugTable,\n onChange: () => {\n instance._queue(() => {\n instance._autoResetExpanded()\n instance._autoResetPageIndex()\n })\n },\n }\n )\n}\n\nfunction groupBy<TGenerics extends TableGenerics>(\n rows: Row<TGenerics>[],\n columnId: string\n) {\n const groupMap = new Map<any, Row<TGenerics>[]>()\n\n return rows.reduce((map, row) => {\n const resKey = `${row.getValue(columnId)}`\n const previous = map.get(resKey)\n if (!previous) {\n map.set(resKey, [row])\n } else {\n map.set(resKey, [...previous, row])\n }\n return map\n }, groupMap)\n}\n"],"names":["getGroupedRowModel","instance","memo","getState","grouping","getPreGroupedRowModel","rowModel","rows","length","existingGrouping","filter","columnId","getColumn","groupedFlatRows","groupedRowsById","groupUpRecursively","depth","parentId","rowGroupsMap","groupBy","aggregatedGroupedRows","Array","from","entries","map","index","groupingValue","groupedRows","id","subRows","leafRows","flattenBy","row","createRow","undefined","Object","assign","groupingColumnId","getValue","includes","valuesCache","hasOwnProperty","groupingValuesCache","column","aggregateFn","getColumnAggregationFn","columnValue","aggregateValue","aggregationFn","console","info","Error","process","env","NODE_ENV","forEach","subRow","push","flatRows","rowsById","key","debug","options","debugAll","debugTable","onChange","_queue","_autoResetExpanded","_autoResetPageIndex","groupMap","Map","reduce","resKey","previous","get","set"],"mappings":"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"}
1
+ {"version":3,"file":"getGroupedRowModel.js","sources":["../../../src/utils/getGroupedRowModel.ts"],"sourcesContent":["import { createRow } from '../core/row'\nimport { TableInstance, Row, RowModel, TableGenerics } from '../types'\nimport { flattenBy, memo } from '../utils'\n\nexport function getGroupedRowModel<TGenerics extends TableGenerics>(): (\n instance: TableInstance<TGenerics>\n) => () => RowModel<TGenerics> {\n return instance =>\n memo(\n () => [instance.getState().grouping, instance.getPreGroupedRowModel()],\n (grouping, rowModel) => {\n if (!rowModel.rows.length || !grouping.length) {\n return rowModel\n }\n\n // Filter the grouping list down to columns that exist\n const existingGrouping = grouping.filter(columnId =>\n instance.getColumn(columnId)\n )\n\n const groupedFlatRows: Row<TGenerics>[] = []\n const groupedRowsById: Record<string, Row<TGenerics>> = {}\n // const onlyGroupedFlatRows: Row[] = [];\n // const onlyGroupedRowsById: Record<RowId, Row> = {};\n // const nonGroupedFlatRows: Row[] = [];\n // const nonGroupedRowsById: Record<RowId, Row> = {};\n\n // Recursively group the data\n const groupUpRecursively = (\n rows: Row<TGenerics>[],\n depth = 0,\n parentId: string\n ) => {\n // This is the last level, just return the rows\n if (depth === existingGrouping.length) {\n return rows\n }\n\n const columnId = existingGrouping[depth]!\n\n // Group the rows together for this level\n const rowGroupsMap = groupBy(rows, columnId)\n\n // Peform aggregations for each group\n const aggregatedGroupedRows = Array.from(rowGroupsMap.entries()).map(\n ([groupingValue, groupedRows], index) => {\n let id = `${columnId}:${groupingValue}`\n id = parentId ? `${parentId}>${id}` : id\n\n // First, Recurse to group sub rows before aggregation\n const subRows = groupUpRecursively(groupedRows, depth + 1, id)\n\n // Flatten the leaf rows of the rows in this group\n const leafRows = depth\n ? flattenBy(groupedRows, row => row.subRows)\n : groupedRows\n\n const row = createRow(instance, id, undefined, index, depth)\n\n Object.assign(row, {\n groupingColumnId: columnId,\n groupingValue,\n subRows,\n leafRows,\n getValue: (columnId: string) => {\n // Don't aggregate columns that are in the grouping\n if (existingGrouping.includes(columnId)) {\n if (row._valuesCache.hasOwnProperty(columnId)) {\n return row._valuesCache[columnId]\n }\n\n if (groupedRows[0]) {\n row._valuesCache[columnId] =\n groupedRows[0].getValue(columnId) ?? undefined\n }\n\n return row._valuesCache[columnId]\n }\n\n if (row.groupingValuesCache.hasOwnProperty(columnId)) {\n return row.groupingValuesCache[columnId]\n }\n\n // Aggregate the values\n const column = instance.getColumn(columnId)\n const aggregateFn = column.getColumnAggregationFn()\n\n if (aggregateFn) {\n row.groupingValuesCache[columnId] = aggregateFn(\n () =>\n leafRows.map(row => {\n let columnValue = row.getValue(columnId)\n\n if (!depth && column.columnDef.aggregateValue) {\n columnValue =\n column.columnDef.aggregateValue(columnValue)\n }\n\n return columnValue\n }),\n () => groupedRows.map(row => row.getValue(columnId))\n )\n\n return row.groupingValuesCache[columnId]\n } else if (column.aggregationFn) {\n console.info({ column })\n throw new Error(\n process.env.NODE_ENV !== 'production'\n ? `Table: Invalid column.aggregateType option for column listed above`\n : ''\n )\n }\n },\n })\n\n subRows.forEach(subRow => {\n groupedFlatRows.push(subRow)\n groupedRowsById[subRow.id] = subRow\n // if (subRow.getIsGrouped?.()) {\n // onlyGroupedFlatRows.push(subRow);\n // onlyGroupedRowsById[subRow.id] = subRow;\n // } else {\n // nonGroupedFlatRows.push(subRow);\n // nonGroupedRowsById[subRow.id] = subRow;\n // }\n })\n\n return row\n }\n )\n\n return aggregatedGroupedRows\n }\n\n const groupedRows = groupUpRecursively(rowModel.rows, 0, '')\n\n groupedRows.forEach(subRow => {\n groupedFlatRows.push(subRow)\n groupedRowsById[subRow.id] = subRow\n // if (subRow.getIsGrouped?.()) {\n // onlyGroupedFlatRows.push(subRow);\n // onlyGroupedRowsById[subRow.id] = subRow;\n // } else {\n // nonGroupedFlatRows.push(subRow);\n // nonGroupedRowsById[subRow.id] = subRow;\n // }\n })\n\n return {\n rows: groupedRows,\n flatRows: groupedFlatRows,\n rowsById: groupedRowsById,\n }\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getGroupedRowModel',\n debug: () => instance.options.debugAll ?? instance.options.debugTable,\n onChange: () => {\n instance._queue(() => {\n instance._autoResetExpanded()\n instance._autoResetPageIndex()\n })\n },\n }\n )\n}\n\nfunction groupBy<TGenerics extends TableGenerics>(\n rows: Row<TGenerics>[],\n columnId: string\n) {\n const groupMap = new Map<any, Row<TGenerics>[]>()\n\n return rows.reduce((map, row) => {\n const resKey = `${row.getValue(columnId)}`\n const previous = map.get(resKey)\n if (!previous) {\n map.set(resKey, [row])\n } else {\n map.set(resKey, [...previous, row])\n }\n return map\n }, groupMap)\n}\n"],"names":["getGroupedRowModel","instance","memo","getState","grouping","getPreGroupedRowModel","rowModel","rows","length","existingGrouping","filter","columnId","getColumn","groupedFlatRows","groupedRowsById","groupUpRecursively","depth","parentId","rowGroupsMap","groupBy","aggregatedGroupedRows","Array","from","entries","map","index","groupingValue","groupedRows","id","subRows","leafRows","flattenBy","row","createRow","undefined","Object","assign","groupingColumnId","getValue","includes","_valuesCache","hasOwnProperty","groupingValuesCache","column","aggregateFn","getColumnAggregationFn","columnValue","columnDef","aggregateValue","aggregationFn","console","info","Error","process","env","NODE_ENV","forEach","subRow","push","flatRows","rowsById","key","debug","options","debugAll","debugTable","onChange","_queue","_autoResetExpanded","_autoResetPageIndex","groupMap","Map","reduce","resKey","previous","get","set"],"mappings":"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"}
@@ -28,8 +28,8 @@ function getSortedRowModel() {
28
28
  availableSorting.forEach(sortEntry => {
29
29
  const column = instance.getColumn(sortEntry.id);
30
30
  columnInfoById[sortEntry.id] = {
31
- sortUndefined: column.sortUndefined,
32
- invertSorting: column.invertSorting,
31
+ sortUndefined: column.columnDef.sortUndefined,
32
+ invertSorting: column.columnDef.invertSorting,
33
33
  sortingFn: column.getSortingFn()
34
34
  };
35
35
  });
@@ -1 +1 @@
1
- {"version":3,"file":"getSortedRowModel.js","sources":["../../../src/utils/getSortedRowModel.ts"],"sourcesContent":["import { TableInstance, Row, RowModel, TableGenerics } from '../types'\nimport { SortingFn } from '../features/Sorting'\nimport { memo } from '../utils'\n\nexport function getSortedRowModel<TGenerics extends TableGenerics>(): (\n instance: TableInstance<TGenerics>\n) => () => RowModel<TGenerics> {\n return instance =>\n memo(\n () => [instance.getState().sorting, instance.getPreSortedRowModel()],\n (sorting, rowModel) => {\n if (!rowModel.rows.length || !sorting?.length) {\n return rowModel\n }\n\n const sortingState = instance.getState().sorting\n\n const sortedFlatRows: Row<TGenerics>[] = []\n\n // Filter out sortings that correspond to non existing columns\n const availableSorting = sortingState.filter(sort =>\n instance.getColumn(sort.id).getCanSort()\n )\n\n const columnInfoById: Record<\n string,\n {\n sortUndefined?: false | -1 | 1\n invertSorting?: boolean\n sortingFn: SortingFn<TGenerics>\n }\n > = {}\n\n availableSorting.forEach(sortEntry => {\n const column = instance.getColumn(sortEntry.id)\n\n columnInfoById[sortEntry.id] = {\n sortUndefined: column.sortUndefined,\n invertSorting: column.invertSorting,\n sortingFn: column.getSortingFn(),\n }\n })\n\n const sortData = (rows: Row<TGenerics>[]) => {\n // This will also perform a stable sorting using the row index\n // if needed.\n const sortedData = rows.slice()\n\n sortedData.sort((rowA, rowB) => {\n for (let i = 0; i < availableSorting.length; i += 1) {\n const sortEntry = availableSorting[i]!\n const columnInfo = columnInfoById[sortEntry.id]!\n const isDesc = sortEntry?.desc ?? false\n\n if (columnInfo.sortUndefined) {\n const aValue = rowA.getValue(sortEntry.id)\n const bValue = rowB.getValue(sortEntry.id)\n\n const aUndefined = typeof aValue === 'undefined'\n const bUndefined = typeof bValue === 'undefined'\n\n if (aUndefined || bUndefined) {\n return aUndefined && bUndefined\n ? 0\n : aUndefined\n ? columnInfo.sortUndefined\n : -columnInfo.sortUndefined\n }\n }\n\n // This function should always return in ascending order\n let sortInt = columnInfo.sortingFn(rowA, rowB, sortEntry.id)\n\n if (sortInt !== 0) {\n if (isDesc) {\n sortInt *= -1\n }\n\n if (columnInfo.invertSorting) {\n sortInt *= -1\n }\n\n return sortInt\n }\n }\n\n return rowA.index - rowB.index\n })\n\n // If there are sub-rows, sort them\n sortedData.forEach(row => {\n sortedFlatRows.push(row)\n if (!row.subRows || row.subRows.length <= 1) {\n return\n }\n row.subRows = sortData(row.subRows)\n })\n\n return sortedData\n }\n\n return {\n rows: sortData(rowModel.rows),\n flatRows: sortedFlatRows,\n rowsById: rowModel.rowsById,\n }\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getSortedRowModel',\n debug: () => instance.options.debugAll ?? instance.options.debugTable,\n onChange: () => {\n instance._autoResetPageIndex()\n },\n }\n )\n}\n"],"names":["getSortedRowModel","instance","memo","getState","sorting","getPreSortedRowModel","rowModel","rows","length","sortingState","sortedFlatRows","availableSorting","filter","sort","getColumn","id","getCanSort","columnInfoById","forEach","sortEntry","column","sortUndefined","invertSorting","sortingFn","getSortingFn","sortData","sortedData","slice","rowA","rowB","i","columnInfo","isDesc","desc","aValue","getValue","bValue","aUndefined","bUndefined","sortInt","index","row","push","subRows","flatRows","rowsById","key","process","env","NODE_ENV","debug","options","debugAll","debugTable","onChange","_autoResetPageIndex"],"mappings":"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"}
1
+ {"version":3,"file":"getSortedRowModel.js","sources":["../../../src/utils/getSortedRowModel.ts"],"sourcesContent":["import { TableInstance, Row, RowModel, TableGenerics } from '../types'\nimport { SortingFn } from '../features/Sorting'\nimport { memo } from '../utils'\n\nexport function getSortedRowModel<TGenerics extends TableGenerics>(): (\n instance: TableInstance<TGenerics>\n) => () => RowModel<TGenerics> {\n return instance =>\n memo(\n () => [instance.getState().sorting, instance.getPreSortedRowModel()],\n (sorting, rowModel) => {\n if (!rowModel.rows.length || !sorting?.length) {\n return rowModel\n }\n\n const sortingState = instance.getState().sorting\n\n const sortedFlatRows: Row<TGenerics>[] = []\n\n // Filter out sortings that correspond to non existing columns\n const availableSorting = sortingState.filter(sort =>\n instance.getColumn(sort.id).getCanSort()\n )\n\n const columnInfoById: Record<\n string,\n {\n sortUndefined?: false | -1 | 1\n invertSorting?: boolean\n sortingFn: SortingFn<TGenerics>\n }\n > = {}\n\n availableSorting.forEach(sortEntry => {\n const column = instance.getColumn(sortEntry.id)\n\n columnInfoById[sortEntry.id] = {\n sortUndefined: column.columnDef.sortUndefined,\n invertSorting: column.columnDef.invertSorting,\n sortingFn: column.getSortingFn(),\n }\n })\n\n const sortData = (rows: Row<TGenerics>[]) => {\n // This will also perform a stable sorting using the row index\n // if needed.\n const sortedData = rows.slice()\n\n sortedData.sort((rowA, rowB) => {\n for (let i = 0; i < availableSorting.length; i += 1) {\n const sortEntry = availableSorting[i]!\n const columnInfo = columnInfoById[sortEntry.id]!\n const isDesc = sortEntry?.desc ?? false\n\n if (columnInfo.sortUndefined) {\n const aValue = rowA.getValue(sortEntry.id)\n const bValue = rowB.getValue(sortEntry.id)\n\n const aUndefined = typeof aValue === 'undefined'\n const bUndefined = typeof bValue === 'undefined'\n\n if (aUndefined || bUndefined) {\n return aUndefined && bUndefined\n ? 0\n : aUndefined\n ? columnInfo.sortUndefined\n : -columnInfo.sortUndefined\n }\n }\n\n // This function should always return in ascending order\n let sortInt = columnInfo.sortingFn(rowA, rowB, sortEntry.id)\n\n if (sortInt !== 0) {\n if (isDesc) {\n sortInt *= -1\n }\n\n if (columnInfo.invertSorting) {\n sortInt *= -1\n }\n\n return sortInt\n }\n }\n\n return rowA.index - rowB.index\n })\n\n // If there are sub-rows, sort them\n sortedData.forEach(row => {\n sortedFlatRows.push(row)\n if (!row.subRows || row.subRows.length <= 1) {\n return\n }\n row.subRows = sortData(row.subRows)\n })\n\n return sortedData\n }\n\n return {\n rows: sortData(rowModel.rows),\n flatRows: sortedFlatRows,\n rowsById: rowModel.rowsById,\n }\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getSortedRowModel',\n debug: () => instance.options.debugAll ?? instance.options.debugTable,\n onChange: () => {\n instance._autoResetPageIndex()\n },\n }\n )\n}\n"],"names":["getSortedRowModel","instance","memo","getState","sorting","getPreSortedRowModel","rowModel","rows","length","sortingState","sortedFlatRows","availableSorting","filter","sort","getColumn","id","getCanSort","columnInfoById","forEach","sortEntry","column","sortUndefined","columnDef","invertSorting","sortingFn","getSortingFn","sortData","sortedData","slice","rowA","rowB","i","columnInfo","isDesc","desc","aValue","getValue","bValue","aUndefined","bUndefined","sortInt","index","row","push","subRows","flatRows","rowsById","key","process","env","NODE_ENV","debug","options","debugAll","debugTable","onChange","_autoResetPageIndex"],"mappings":"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"}