@tanstack/table-core 8.0.0-alpha.65 → 8.0.0-alpha.69

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 (144) hide show
  1. package/build/cjs/aggregationFns.js +25 -37
  2. package/build/cjs/aggregationFns.js.map +1 -1
  3. package/build/cjs/core.js +167 -48
  4. package/build/cjs/core.js.map +1 -1
  5. package/build/cjs/createTable.js +24 -40
  6. package/build/cjs/createTable.js.map +1 -1
  7. package/build/cjs/features/Cells.js +28 -34
  8. package/build/cjs/features/Cells.js.map +1 -1
  9. package/build/cjs/features/ColumnSizing.js +136 -225
  10. package/build/cjs/features/ColumnSizing.js.map +1 -1
  11. package/build/cjs/features/Columns.js +57 -84
  12. package/build/cjs/features/Columns.js.map +1 -1
  13. package/build/cjs/features/Expanding.js +79 -126
  14. package/build/cjs/features/Expanding.js.map +1 -1
  15. package/build/cjs/features/Filters.js +137 -288
  16. package/build/cjs/features/Filters.js.map +1 -1
  17. package/build/cjs/features/Grouping.js +71 -117
  18. package/build/cjs/features/Grouping.js.map +1 -1
  19. package/build/cjs/features/Headers.js +125 -205
  20. package/build/cjs/features/Headers.js.map +1 -1
  21. package/build/cjs/features/Ordering.js +32 -44
  22. package/build/cjs/features/Ordering.js.map +1 -1
  23. package/build/cjs/features/Pagination.js +79 -82
  24. package/build/cjs/features/Pagination.js.map +1 -1
  25. package/build/cjs/features/Pinning.js +99 -178
  26. package/build/cjs/features/Pinning.js.map +1 -1
  27. package/build/cjs/features/RowSelection.js +133 -204
  28. package/build/cjs/features/RowSelection.js.map +1 -1
  29. package/build/cjs/features/Rows.js +32 -22
  30. package/build/cjs/features/Rows.js.map +1 -1
  31. package/build/cjs/features/Sorting.js +67 -136
  32. package/build/cjs/features/Sorting.js.map +1 -1
  33. package/build/cjs/features/Visibility.js +56 -118
  34. package/build/cjs/features/Visibility.js.map +1 -1
  35. package/build/cjs/filterFns.js +48 -72
  36. package/build/cjs/filterFns.js.map +1 -1
  37. package/build/cjs/index.js +13 -13
  38. package/build/cjs/sortingFns.js +21 -21
  39. package/build/cjs/sortingFns.js.map +1 -1
  40. package/build/cjs/utils/filterRowsUtils.js +49 -55
  41. package/build/cjs/utils/filterRowsUtils.js.map +1 -1
  42. package/build/cjs/utils/getCoreRowModel.js +98 -0
  43. package/build/cjs/utils/getCoreRowModel.js.map +1 -0
  44. package/build/cjs/utils/getExpandedRowModel.js +18 -22
  45. package/build/cjs/utils/getExpandedRowModel.js.map +1 -1
  46. package/build/cjs/utils/getFacetedMinMaxValues.js +48 -0
  47. package/build/cjs/utils/getFacetedMinMaxValues.js.map +1 -0
  48. package/build/cjs/utils/getFacetedRowModel.js +50 -0
  49. package/build/cjs/utils/getFacetedRowModel.js.map +1 -0
  50. package/build/cjs/utils/getFacetedUniqueValues.js +48 -0
  51. package/build/cjs/utils/getFacetedUniqueValues.js.map +1 -0
  52. package/build/cjs/utils/getFilteredRowModel.js +130 -0
  53. package/build/cjs/utils/getFilteredRowModel.js.map +1 -0
  54. package/build/cjs/utils/getGroupedRowModel.js +126 -136
  55. package/build/cjs/utils/getGroupedRowModel.js.map +1 -1
  56. package/build/cjs/utils/getPaginationRowModel.js +39 -39
  57. package/build/cjs/utils/getPaginationRowModel.js.map +1 -1
  58. package/build/cjs/utils/getSortedRowModel.js +112 -0
  59. package/build/cjs/utils/getSortedRowModel.js.map +1 -0
  60. package/build/cjs/utils.js +36 -207
  61. package/build/cjs/utils.js.map +1 -1
  62. package/build/esm/index.js +2024 -2971
  63. package/build/esm/index.js.map +1 -1
  64. package/build/stats-html.html +1 -1
  65. package/build/stats-react.json +421 -481
  66. package/build/types/core.d.ts +3 -5
  67. package/build/types/features/Cells.d.ts +1 -1
  68. package/build/types/features/ColumnSizing.d.ts +4 -15
  69. package/build/types/features/Columns.d.ts +1 -1
  70. package/build/types/features/Expanding.d.ts +2 -7
  71. package/build/types/features/Filters.d.ts +24 -21
  72. package/build/types/features/Grouping.d.ts +5 -11
  73. package/build/types/features/Ordering.d.ts +1 -1
  74. package/build/types/features/Pagination.d.ts +3 -3
  75. package/build/types/features/Pinning.d.ts +1 -5
  76. package/build/types/features/RowSelection.d.ts +2 -8
  77. package/build/types/features/Rows.d.ts +4 -3
  78. package/build/types/features/Sorting.d.ts +5 -15
  79. package/build/types/features/Visibility.d.ts +1 -4
  80. package/build/types/index.d.ts +6 -4
  81. package/build/types/types.d.ts +3 -15
  82. package/build/types/utils/filterRowsUtils.d.ts +3 -3
  83. package/build/types/utils/getCoreRowModel.d.ts +2 -0
  84. package/build/types/utils/getFacetedMinMaxValues.d.ts +2 -0
  85. package/build/types/utils/getFacetedRowModel.d.ts +2 -0
  86. package/build/types/utils/getFacetedUniqueValues.d.ts +2 -0
  87. package/build/types/utils/{getCoreRowModelSync.d.ts → getFilteredRowModel.d.ts} +1 -1
  88. package/build/types/utils/getGroupedRowModel.d.ts +1 -1
  89. package/build/types/utils/getSortedRowModel.d.ts +2 -0
  90. package/build/types/utils.d.ts +1 -17
  91. package/build/umd/index.development.js +2053 -3002
  92. package/build/umd/index.development.js.map +1 -1
  93. package/build/umd/index.production.js +1 -1
  94. package/build/umd/index.production.js.map +1 -1
  95. package/package.json +1 -1
  96. package/src/core.ts +197 -47
  97. package/src/features/Cells.ts +7 -11
  98. package/src/features/ColumnSizing.ts +89 -139
  99. package/src/features/Columns.ts +10 -13
  100. package/src/features/Expanding.ts +62 -107
  101. package/src/features/Filters.ts +201 -308
  102. package/src/features/Grouping.ts +55 -81
  103. package/src/features/Headers.ts +18 -40
  104. package/src/features/Ordering.ts +6 -4
  105. package/src/features/Pagination.ts +31 -17
  106. package/src/features/Pinning.ts +79 -96
  107. package/src/features/RowSelection.ts +68 -118
  108. package/src/features/Rows.ts +21 -6
  109. package/src/features/Sorting.ts +47 -103
  110. package/src/features/Visibility.ts +24 -47
  111. package/src/filterFns.ts +9 -9
  112. package/src/index.ts +12 -4
  113. package/src/sortingFns.ts +11 -11
  114. package/src/types.ts +3 -18
  115. package/src/utils/filterRowsUtils.ts +47 -68
  116. package/src/utils/{getCoreRowModelSync.ts → getCoreRowModel.ts} +3 -9
  117. package/src/utils/getExpandedRowModel.ts +2 -2
  118. package/src/utils/getFacetedMinMaxValues.ts +37 -0
  119. package/src/utils/getFacetedRowModel.ts +50 -0
  120. package/src/utils/getFacetedUniqueValues.ts +37 -0
  121. package/src/utils/getFilteredRowModel.ts +150 -0
  122. package/src/utils/getGroupedRowModel.ts +53 -62
  123. package/src/utils/getPaginationRowModel.ts +1 -1
  124. package/src/utils/{getSortedRowModelSync.ts → getSortedRowModel.ts} +7 -7
  125. package/src/utils.ts +28 -236
  126. package/build/cjs/_virtual/_rollupPluginBabelHelpers.js +0 -112
  127. package/build/cjs/_virtual/_rollupPluginBabelHelpers.js.map +0 -1
  128. package/build/cjs/utils/getCoreRowModelAsync.js +0 -125
  129. package/build/cjs/utils/getCoreRowModelAsync.js.map +0 -1
  130. package/build/cjs/utils/getCoreRowModelSync.js +0 -102
  131. package/build/cjs/utils/getCoreRowModelSync.js.map +0 -1
  132. package/build/cjs/utils/getFilteredRowModelSync.js +0 -130
  133. package/build/cjs/utils/getFilteredRowModelSync.js.map +0 -1
  134. package/build/cjs/utils/getSortedRowModelSync.js +0 -118
  135. package/build/cjs/utils/getSortedRowModelSync.js.map +0 -1
  136. package/build/types/utils/getCoreRowModelAsync.d.ts +0 -4
  137. package/build/types/utils/getFilteredRowModelAsync.d.ts +0 -4
  138. package/build/types/utils/getFilteredRowModelSync.d.ts +0 -2
  139. package/build/types/utils/getSortedRowModelAsync.d.ts +0 -13
  140. package/build/types/utils/getSortedRowModelSync.d.ts +0 -2
  141. package/src/utils/getCoreRowModelAsync.ts +0 -104
  142. package/src/utils/getFilteredRowModelAsync.ts +0 -49
  143. package/src/utils/getFilteredRowModelSync.ts +0 -150
  144. package/src/utils/getSortedRowModelAsync.ts +0 -200
@@ -12,34 +12,28 @@
12
12
 
13
13
  Object.defineProperty(exports, '__esModule', { value: true });
14
14
 
15
- var _rollupPluginBabelHelpers = require('./_virtual/_rollupPluginBabelHelpers.js');
16
-
17
- var aggregationFns = {
18
- sum: sum,
19
- min: min,
20
- max: max,
21
- extent: extent,
22
- mean: mean,
23
- median: median,
24
- unique: unique,
25
- uniqueCount: uniqueCount,
26
- count: count
15
+ const aggregationFns = {
16
+ sum,
17
+ min,
18
+ max,
19
+ extent,
20
+ mean,
21
+ median,
22
+ unique,
23
+ uniqueCount,
24
+ count
27
25
  };
28
26
 
29
27
  function sum(_getLeafValues, getChildValues) {
30
28
  // It's faster to just add the aggregations together instead of
31
29
  // process leaf nodes individually
32
- return getChildValues().reduce(function (sum, next) {
33
- return sum + (typeof next === 'number' ? next : 0);
34
- }, 0);
30
+ return getChildValues().reduce((sum, next) => sum + (typeof next === 'number' ? next : 0), 0);
35
31
  }
36
32
 
37
33
  function min(_getLeafValues, getChildValues) {
38
- var min;
39
-
40
- for (var _iterator = _rollupPluginBabelHelpers.createForOfIteratorHelperLoose(getChildValues()), _step; !(_step = _iterator()).done;) {
41
- var value = _step.value;
34
+ let min;
42
35
 
36
+ for (const value of getChildValues()) {
43
37
  if (value != null && (min > value || min === undefined && value >= value)) {
44
38
  min = value;
45
39
  }
@@ -49,11 +43,9 @@ function min(_getLeafValues, getChildValues) {
49
43
  }
50
44
 
51
45
  function max(_getLeafValues, getChildValues) {
52
- var max;
53
-
54
- for (var _iterator2 = _rollupPluginBabelHelpers.createForOfIteratorHelperLoose(getChildValues()), _step2; !(_step2 = _iterator2()).done;) {
55
- var value = _step2.value;
46
+ let max;
56
47
 
48
+ for (const value of getChildValues()) {
57
49
  if (value != null && (max < value || max === undefined && value >= value)) {
58
50
  max = value;
59
51
  }
@@ -63,12 +55,10 @@ function max(_getLeafValues, getChildValues) {
63
55
  }
64
56
 
65
57
  function extent(_getLeafValues, getChildValues) {
66
- var min;
67
- var max;
68
-
69
- for (var _iterator3 = _rollupPluginBabelHelpers.createForOfIteratorHelperLoose(getChildValues()), _step3; !(_step3 = _iterator3()).done;) {
70
- var value = _step3.value;
58
+ let min;
59
+ let max;
71
60
 
61
+ for (const value of getChildValues()) {
72
62
  if (value != null) {
73
63
  if (min === undefined) {
74
64
  if (value >= value) min = max = value;
@@ -83,12 +73,10 @@ function extent(_getLeafValues, getChildValues) {
83
73
  }
84
74
 
85
75
  function mean(getLeafValues) {
86
- var count = 0;
87
- var sum = 0;
88
-
89
- for (var _iterator4 = _rollupPluginBabelHelpers.createForOfIteratorHelperLoose(getLeafValues()), _step4; !(_step4 = _iterator4()).done;) {
90
- var value = _step4.value;
76
+ let count = 0;
77
+ let sum = 0;
91
78
 
79
+ for (let value of getLeafValues()) {
92
80
  if (value != null && (value = +value) >= value) {
93
81
  ++count, sum += value;
94
82
  }
@@ -99,15 +87,15 @@ function mean(getLeafValues) {
99
87
  }
100
88
 
101
89
  function median(getLeafValues) {
102
- var leafValues = getLeafValues();
90
+ const leafValues = getLeafValues();
103
91
 
104
92
  if (!leafValues.length) {
105
93
  return;
106
94
  }
107
95
 
108
- var min = 0;
109
- var max = 0;
110
- leafValues.forEach(function (value) {
96
+ let min = 0;
97
+ let max = 0;
98
+ leafValues.forEach(value => {
111
99
  if (typeof value === 'number') {
112
100
  min = Math.min(min, value);
113
101
  max = Math.max(max, value);
@@ -1 +1 @@
1
- {"version":3,"file":"aggregationFns.js","sources":["../../src/aggregationFns.ts"],"sourcesContent":["export 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\nfunction sum(_getLeafValues: () => unknown[], getChildValues: () => unknown[]) {\n // It's faster to just add the aggregations together instead of\n // process leaf nodes individually\n return getChildValues().reduce(\n (sum: number, next: unknown) => sum + (typeof next === 'number' ? next : 0),\n 0\n )\n}\n\nfunction min(_getLeafValues: () => unknown[], getChildValues: () => unknown[]) {\n let min: number | undefined\n\n for (const value of getChildValues() as number[]) {\n if (\n value != null &&\n (min! > value || (min === undefined && value >= value))\n ) {\n min = value\n }\n }\n\n return min\n}\n\nfunction max(_getLeafValues: () => unknown[], getChildValues: () => unknown[]) {\n let max: number | undefined\n\n for (const value of getChildValues() as number[]) {\n if (\n value != null &&\n (max! < value || (max === undefined && value >= value))\n ) {\n max = value\n }\n }\n\n return max\n}\n\nfunction extent(\n _getLeafValues: () => unknown[],\n getChildValues: () => unknown[]\n) {\n let min: number | undefined\n let max: number | undefined\n\n for (const value of getChildValues() as number[]) {\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\nexport function mean(getLeafValues: () => unknown[]) {\n let count = 0\n let sum = 0\n\n for (let value of getLeafValues() as number[]) {\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\nfunction median(getLeafValues: () => unknown[]) {\n const leafValues = getLeafValues()\n if (!leafValues.length) {\n return\n }\n\n let min = 0\n let max = 0\n\n leafValues.forEach(value => {\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\nfunction unique<T>(getLeafValues: () => T[]) {\n return Array.from(new Set(getLeafValues()).values())\n}\n\nfunction uniqueCount(getLeafValues: () => unknown[]) {\n return new Set(getLeafValues()).size\n}\n\nfunction count(getLeafValues: () => unknown[]) {\n return getLeafValues().length\n}\n"],"names":["aggregationFns","sum","min","max","extent","mean","median","unique","uniqueCount","count","_getLeafValues","getChildValues","reduce","next","value","undefined","getLeafValues","leafValues","length","forEach","Math","Array","from","Set","values","size"],"mappings":"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"}
1
+ {"version":3,"file":"aggregationFns.js","sources":["../../src/aggregationFns.ts"],"sourcesContent":["export 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\nfunction sum(_getLeafValues: () => unknown[], getChildValues: () => unknown[]) {\n // It's faster to just add the aggregations together instead of\n // process leaf nodes individually\n return getChildValues().reduce(\n (sum: number, next: unknown) => sum + (typeof next === 'number' ? next : 0),\n 0\n )\n}\n\nfunction min(_getLeafValues: () => unknown[], getChildValues: () => unknown[]) {\n let min: number | undefined\n\n for (const value of getChildValues() as number[]) {\n if (\n value != null &&\n (min! > value || (min === undefined && value >= value))\n ) {\n min = value\n }\n }\n\n return min\n}\n\nfunction max(_getLeafValues: () => unknown[], getChildValues: () => unknown[]) {\n let max: number | undefined\n\n for (const value of getChildValues() as number[]) {\n if (\n value != null &&\n (max! < value || (max === undefined && value >= value))\n ) {\n max = value\n }\n }\n\n return max\n}\n\nfunction extent(\n _getLeafValues: () => unknown[],\n getChildValues: () => unknown[]\n) {\n let min: number | undefined\n let max: number | undefined\n\n for (const value of getChildValues() as number[]) {\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\nexport function mean(getLeafValues: () => unknown[]) {\n let count = 0\n let sum = 0\n\n for (let value of getLeafValues() as number[]) {\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\nfunction median(getLeafValues: () => unknown[]) {\n const leafValues = getLeafValues()\n if (!leafValues.length) {\n return\n }\n\n let min = 0\n let max = 0\n\n leafValues.forEach(value => {\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\nfunction unique<T>(getLeafValues: () => T[]) {\n return Array.from(new Set(getLeafValues()).values())\n}\n\nfunction uniqueCount(getLeafValues: () => unknown[]) {\n return new Set(getLeafValues()).size\n}\n\nfunction count(getLeafValues: () => unknown[]) {\n return getLeafValues().length\n}\n"],"names":["aggregationFns","sum","min","max","extent","mean","median","unique","uniqueCount","count","_getLeafValues","getChildValues","reduce","next","value","undefined","getLeafValues","leafValues","length","forEach","Math","Array","from","Set","values","size"],"mappings":"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"}
package/build/cjs/core.js CHANGED
@@ -12,7 +12,6 @@
12
12
 
13
13
  Object.defineProperty(exports, '__esModule', { value: true });
14
14
 
15
- var _rollupPluginBabelHelpers = require('./_virtual/_rollupPluginBabelHelpers.js');
16
15
  var utils = require('./utils.js');
17
16
  var Columns = require('./features/Columns.js');
18
17
  var Rows = require('./features/Rows.js');
@@ -28,8 +27,19 @@ var RowSelection = require('./features/RowSelection.js');
28
27
  var Sorting = require('./features/Sorting.js');
29
28
  var Visibility = require('./features/Visibility.js');
30
29
  var Headers = require('./features/Headers.js');
31
- var aggregationFns = require('./aggregationFns.js');
32
30
 
31
+ // export type Batch = {
32
+ // id: number
33
+ // priority: keyof CoreBatches
34
+ // tasks: (() => void)[]
35
+ // schedule: (cb: () => void) => void
36
+ // cancel: () => void
37
+ // }
38
+ // type CoreBatches = {
39
+ // data: Batch[]
40
+ // facets: Batch[]
41
+ // }
42
+ // export type TaskPriority = keyof CoreBatches
33
43
  function createTableInstance(options) {
34
44
  var _options$initialState;
35
45
 
@@ -37,71 +47,168 @@ function createTableInstance(options) {
37
47
  console.info('Creating Table Instance...');
38
48
  }
39
49
 
40
- var instance = {};
41
- instance._features = [Columns.Columns, Rows.Rows, Cells.Cells, Headers.Headers, Visibility.Visibility, Ordering.Ordering, Pinning.Pinning, Filters.Filters, Sorting.Sorting, Grouping.Grouping, Expanding.Expanding, Pagination.Pagination, RowSelection.RowSelection, ColumnSizing.ColumnSizing];
50
+ let instance = {
51
+ _features: [Columns.Columns, Rows.Rows, Cells.Cells, Headers.Headers, Visibility.Visibility, Ordering.Ordering, Pinning.Pinning, Filters.Filters, Sorting.Sorting, Grouping.Grouping, Expanding.Expanding, Pagination.Pagination, RowSelection.RowSelection, ColumnSizing.ColumnSizing]
52
+ };
42
53
 
43
- var defaultOptions = instance._features.reduce(function (obj, feature) {
54
+ const defaultOptions = instance._features.reduce((obj, feature) => {
44
55
  return Object.assign(obj, feature.getDefaultOptions == null ? void 0 : feature.getDefaultOptions(instance));
45
56
  }, {});
46
57
 
47
- var mergeOptions = function mergeOptions(options) {
58
+ const mergeOptions = options => {
48
59
  if (instance.options.mergeOptions) {
49
60
  return instance.options.mergeOptions(defaultOptions, options);
50
61
  }
51
62
 
52
- return _rollupPluginBabelHelpers["extends"]({}, defaultOptions, options);
63
+ return { ...defaultOptions,
64
+ ...options
65
+ };
53
66
  };
54
67
 
55
- instance.options = _rollupPluginBabelHelpers["extends"]({}, defaultOptions, options);
56
- var coreInitialState = {
57
- coreProgress: 1
68
+ const coreInitialState = {// coreProgress: 1,
69
+ };
70
+ let initialState = { ...coreInitialState,
71
+ ...((_options$initialState = options.initialState) != null ? _options$initialState : {})
58
72
  };
59
73
 
60
- var initialState = _rollupPluginBabelHelpers["extends"]({}, coreInitialState, (_options$initialState = options.initialState) != null ? _options$initialState : {});
61
-
62
- instance._features.forEach(function (feature) {
74
+ instance._features.forEach(feature => {
63
75
  var _feature$getInitialSt;
64
76
 
65
77
  initialState = (_feature$getInitialSt = feature.getInitialState == null ? void 0 : feature.getInitialState(initialState)) != null ? _feature$getInitialSt : initialState;
66
78
  });
67
79
 
68
- var queued = [];
69
- var queuedTimeout = false;
80
+ const queued = [];
81
+ let queuedTimeout = false; // let workScheduled = false
82
+ // let working = false
83
+ // let latestCallback: ReturnType<typeof requestIdleCallback>
84
+ // let batchUid = 0
85
+ // const onProgress = () => {}
86
+ // const getBatch = () => {
87
+ // instance.batches.data = instance.batches.data.filter(d => d.tasks.length)
88
+ // instance.batches.facets = instance.batches.facets.filter(
89
+ // d => d.tasks.length
90
+ // )
91
+ // return (
92
+ // instance.batches.data.find(d => d.tasks.length) ??
93
+ // instance.batches.facets.find(d => d.tasks.length)
94
+ // )
95
+ // }
96
+ // const startWorkLoop = () => {
97
+ // working = true
98
+ // const workLoop = (deadline: IdleDeadline) => {
99
+ // const batch = getBatch()
100
+ // if (!batch) {
101
+ // working = false
102
+ // return
103
+ // }
104
+ // // Prioritize tasks
105
+ // while (deadline.timeRemaining() > 0 && batch.tasks.length) {
106
+ // batch.tasks.shift()!()
107
+ // }
108
+ // onProgress()
109
+ // if (working) {
110
+ // latestCallback = requestIdleCallback(workLoop, { timeout: 10000 })
111
+ // }
112
+ // }
113
+ // latestCallback = requestIdleCallback(workLoop, { timeout: 10000 })
114
+ // }
115
+ // const startWork = () => {
116
+ // if (getBatch() && !working) {
117
+ // if (
118
+ // (process.env.NODE_ENV === 'development' && instance.options.debugAll) ??
119
+ // instance.options.debugTable
120
+ // ) {
121
+ // console.info('Starting work...')
122
+ // }
123
+ // startWorkLoop()
124
+ // }
125
+ // }
126
+ // const stopWork = () => {
127
+ // if (working) {
128
+ // if (
129
+ // (process.env.NODE_ENV === 'development' && instance.options.debugAll) ??
130
+ // instance.options.debugTable
131
+ // ) {
132
+ // console.info('Stopping work...')
133
+ // }
134
+ // working = false
135
+ // cancelIdleCallback(latestCallback)
136
+ // }
137
+ // }
70
138
 
71
- var finalInstance = _rollupPluginBabelHelpers["extends"]({}, instance, instance._features.reduce(function (obj, feature) {
72
- return Object.assign(obj, feature.createInstance == null ? void 0 : feature.createInstance(instance));
73
- }, {}), {
74
- queue: function queue(cb) {
139
+ const midInstance = { ...instance,
140
+ // init: () => {
141
+ // startWork()
142
+ // },
143
+ // willUpdate: () => {
144
+ // startWork()
145
+ // },
146
+ // destroy: () => {
147
+ // stopWork()
148
+ // },
149
+ options: { ...defaultOptions,
150
+ ...options
151
+ },
152
+ initialState,
153
+ queue: cb => {
75
154
  queued.push(cb);
76
155
 
77
156
  if (!queuedTimeout) {
78
157
  queuedTimeout = true; // Schedule a microtask to run the queued callbacks after
79
158
  // the current call stack (render, etc) has finished.
80
159
 
81
- Promise.resolve().then(function () {
160
+ Promise.resolve().then(() => {
82
161
  while (queued.length) {
83
- console.log('queue');
84
162
  queued.shift()();
85
163
  }
86
164
 
87
165
  queuedTimeout = false;
88
- })["catch"](function (error) {
89
- return setTimeout(function () {
90
- throw error;
91
- });
92
- });
166
+ }).catch(error => setTimeout(() => {
167
+ throw error;
168
+ }));
93
169
  }
94
170
  },
95
- // willUpdate: () => {},
96
- initialState: initialState,
97
- reset: function reset() {
171
+ // batches: {
172
+ // data: [],
173
+ // facets: [],
174
+ // },
175
+ // createBatch: priority => {
176
+ // const batchId = batchUid++
177
+ // let canceled: boolean
178
+ // const batch: Batch = {
179
+ // id: batchId,
180
+ // priority,
181
+ // tasks: [],
182
+ // schedule: cb => {
183
+ // if (canceled) return
184
+ // batch.tasks.push(cb)
185
+ // if (!working && !workScheduled) {
186
+ // workScheduled = true
187
+ // instance.queue(() => {
188
+ // workScheduled = false
189
+ // instance.setState(old => ({ ...old }))
190
+ // })
191
+ // }
192
+ // },
193
+ // cancel: () => {
194
+ // canceled = true
195
+ // batch.tasks = []
196
+ // instance.batches[priority] = instance.batches[priority].filter(
197
+ // b => b.id !== batchId
198
+ // )
199
+ // },
200
+ // }
201
+ // instance.batches[priority].push(batch)
202
+ // return batch
203
+ // },
204
+ reset: () => {
98
205
  instance.setState(instance.initialState);
99
206
  },
100
- setOptions: function setOptions(updater) {
101
- var newOptions = utils.functionalUpdate(updater, instance.options);
207
+ setOptions: updater => {
208
+ const newOptions = utils.functionalUpdate(updater, instance.options);
102
209
  instance.options = mergeOptions(newOptions);
103
210
  },
104
- render: function render(template, props) {
211
+ render: (template, props) => {
105
212
  if (typeof instance.options.render === 'function') {
106
213
  return instance.options.render(template, props);
107
214
  }
@@ -112,27 +219,39 @@ function createTableInstance(options) {
112
219
 
113
220
  return template;
114
221
  },
115
- getState: function getState() {
222
+ getState: () => {
116
223
  return instance.options.state;
117
224
  },
118
- setState: function setState(updater) {
225
+ setState: updater => {
119
226
  instance.options.onStateChange == null ? void 0 : instance.options.onStateChange(updater);
120
- },
121
- getOverallProgress: function getOverallProgress() {
122
- var _instance$getState = instance.getState(),
123
- coreProgress = _instance$getState.coreProgress,
124
- columnFiltersProgress = _instance$getState.columnFiltersProgress,
125
- globalFilterProgress = _instance$getState.globalFilterProgress;
126
-
127
- return aggregationFns.mean(function () {
128
- return [coreProgress, columnFiltersProgress, globalFilterProgress].filter(function (d) {
129
- return d < 1;
130
- });
131
- });
132
- }
227
+ } // getOverallProgress: () => {
228
+ // const { coreProgress, filtersProgress, facetProgress } =
229
+ // instance.getState()
230
+ // return mean(() =>
231
+ // [coreProgress, filtersProgress].filter(d => d < 1)
232
+ // ) as number
233
+ // },
234
+ // getProgressStage: () => {
235
+ // const { coreProgress, filtersProgress, facetProgress } =
236
+ // instance.getState()
237
+ // if (coreProgress < 1) {
238
+ // return 'coreRowModel'
239
+ // }
240
+ // if (filtersProgress < 1) {
241
+ // return 'filteredRowModel'
242
+ // }
243
+ // if (Object.values(facetProgress).some(d => d < 1)) {
244
+ // return 'facetedRowModel'
245
+ // }
246
+ // },
247
+
248
+ };
249
+ instance = Object.assign(instance, midInstance);
250
+
251
+ instance._features.forEach(feature => {
252
+ return Object.assign(instance, feature.createInstance == null ? void 0 : feature.createInstance(instance));
133
253
  });
134
254
 
135
- instance = Object.assign(instance, finalInstance);
136
255
  return instance;
137
256
  }
138
257
 
@@ -1 +1 @@
1
- {"version":3,"file":"core.js","sources":["../../src/core.ts"],"sourcesContent":["import { functionalUpdate, RequiredKeys } from './utils'\n\nimport {\n Updater,\n TableOptions,\n TableState,\n TableInstance,\n Renderable,\n TableFeature,\n TableGenerics,\n InitialTableState,\n} from './types'\n\nimport { Columns } from './features/Columns'\nimport { Rows } from './features/Rows'\nimport { Cells } from './features/Cells'\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'\nimport { Headers } from './features/Headers'\n//\nimport { mean } from './aggregationFns'\n\nexport type CoreTableState = {\n coreProgress: number\n}\n\nexport type CoreOptions<TGenerics extends TableGenerics> = {\n data: TGenerics['Row'][]\n state: Partial<TableState>\n onStateChange: (updater: Updater<TableState>) => void\n render: TGenerics['Renderer']\n debugAll?: boolean\n debugTable?: boolean\n debugHeaders?: boolean\n debugColumns?: boolean\n debugRows?: boolean\n initialState?: InitialTableState\n autoResetAll?: boolean\n mergeOptions?: <T>(defaultOptions: T, options: Partial<T>) => T\n meta?: TGenerics['TableMeta']\n}\n\nexport type TableCore<TGenerics extends TableGenerics> = {\n // generics: TGenerics\n initialState: TableState\n reset: () => void\n options: RequiredKeys<TableOptions<TGenerics>, 'state'>\n setOptions: (newOptions: Updater<TableOptions<TGenerics>>) => void\n queue: (cb: () => void) => void\n // willUpdate: () => void\n getState: () => TableState\n setState: (updater: Updater<TableState>) => void\n render: <TProps>(\n template: Renderable<TGenerics, TProps>,\n props: TProps\n ) => string | null | TGenerics['Rendered']\n getOverallProgress: () => number\n _features: readonly TableFeature[]\n}\n\nexport function createTableInstance<TGenerics extends TableGenerics>(\n options: TableOptions<TGenerics>\n): TableInstance<TGenerics> {\n if (options.debugAll || options.debugTable) {\n console.info('Creating Table Instance...')\n }\n\n let instance = {} as TableInstance<TGenerics>\n\n instance._features = [\n Columns,\n Rows,\n Cells,\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 const defaultOptions = instance._features.reduce((obj, feature) => {\n return Object.assign(obj, feature.getDefaultOptions?.(instance))\n }, {}) as TableOptions<TGenerics>\n\n const mergeOptions = (options: TableOptions<TGenerics>) => {\n if (instance.options.mergeOptions) {\n return instance.options.mergeOptions(defaultOptions, options)\n }\n\n return {\n ...defaultOptions,\n ...options,\n }\n }\n\n instance.options = {\n ...defaultOptions,\n ...options,\n }\n\n const coreInitialState: CoreTableState = {\n coreProgress: 1,\n }\n\n let initialState = {\n ...coreInitialState,\n ...(options.initialState ?? {}),\n } as TableState\n\n instance._features.forEach(feature => {\n initialState = feature.getInitialState?.(initialState) ?? initialState\n })\n\n const queued: (() => void)[] = []\n let queuedTimeout = false\n\n const finalInstance: TableInstance<TGenerics> = {\n ...instance,\n ...(instance._features.reduce((obj, feature) => {\n return Object.assign(obj, feature.createInstance?.(instance))\n }, {}) as unknown as TableInstance<TGenerics>),\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 console.log('queue')\n queued.shift()!()\n }\n queuedTimeout = false\n })\n .catch(error =>\n setTimeout(() => {\n throw error\n })\n )\n }\n },\n // willUpdate: () => {},\n initialState,\n reset: () => {\n instance.setState(instance.initialState)\n },\n setOptions: updater => {\n const newOptions = functionalUpdate(updater, instance.options)\n instance.options = mergeOptions(newOptions)\n },\n render: (template, props) => {\n if (typeof instance.options.render === 'function') {\n return instance.options.render(template, props)\n }\n\n if (typeof template === 'function') {\n return (template as Function)(props)\n }\n\n return template\n },\n\n getState: () => {\n return instance.options.state as TableState\n },\n\n setState: (updater: Updater<TableState>) => {\n instance.options.onStateChange?.(updater)\n },\n\n getOverallProgress: () => {\n const { coreProgress, columnFiltersProgress, globalFilterProgress } =\n instance.getState()\n\n return mean(() =>\n [coreProgress, columnFiltersProgress, globalFilterProgress].filter(\n d => d < 1\n )\n ) as number\n },\n }\n\n instance = Object.assign(instance, finalInstance)\n\n return instance\n}\n"],"names":["createTableInstance","options","debugAll","debugTable","console","info","instance","_features","Columns","Rows","Cells","Headers","Visibility","Ordering","Pinning","Filters","Sorting","Grouping","Expanding","Pagination","RowSelection","ColumnSizing","defaultOptions","reduce","obj","feature","Object","assign","getDefaultOptions","mergeOptions","coreInitialState","coreProgress","initialState","forEach","getInitialState","queued","queuedTimeout","finalInstance","_extends","createInstance","queue","cb","push","Promise","resolve","then","length","log","shift","error","setTimeout","reset","setState","setOptions","updater","newOptions","functionalUpdate","render","template","props","getState","state","onStateChange","getOverallProgress","columnFiltersProgress","globalFilterProgress","mean","filter","d"],"mappings":"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"}
1
+ {"version":3,"file":"core.js","sources":["../../src/core.ts"],"sourcesContent":["import { functionalUpdate, RequiredKeys } from './utils'\n\nimport {\n Updater,\n TableOptions,\n TableState,\n TableInstance,\n Renderable,\n TableFeature,\n TableGenerics,\n InitialTableState,\n} from './types'\n\nimport { Columns } from './features/Columns'\nimport { Rows } from './features/Rows'\nimport { Cells } from './features/Cells'\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'\nimport { Headers } from './features/Headers'\n//\n\nexport type CoreTableState = {\n // coreProgress: number\n}\n\nexport type CoreOptions<TGenerics extends TableGenerics> = {\n data: TGenerics['Row'][]\n state: Partial<TableState>\n onStateChange: (updater: Updater<TableState>) => void\n render: TGenerics['Renderer']\n debugAll?: boolean\n debugTable?: boolean\n debugHeaders?: boolean\n debugColumns?: boolean\n debugRows?: boolean\n initialState?: InitialTableState\n autoResetAll?: boolean\n mergeOptions?: <T>(defaultOptions: T, options: Partial<T>) => T\n keepPreviousData?: boolean\n meta?: TGenerics['TableMeta']\n}\n\nexport type CoreInstance<TGenerics extends TableGenerics> = {\n // generics: TGenerics\n initialState: TableState\n reset: () => void\n options: RequiredKeys<TableOptions<TGenerics>, 'state'>\n setOptions: (newOptions: Updater<TableOptions<TGenerics>>) => void\n queue: (cb: () => void) => void\n getState: () => TableState\n setState: (updater: Updater<TableState>) => void\n render: <TProps>(\n template: Renderable<TGenerics, TProps>,\n props: TProps\n ) => string | null | TGenerics['Rendered']\n // getOverallProgress: () => number\n // getProgressStage: () =>\n // | undefined\n // | 'coreRowModel'\n // | 'filteredRowModel'\n // | 'facetedRowModel'\n _features: readonly TableFeature[]\n // createBatch: (priority: keyof CoreBatches) => Batch\n // init: () => void\n // willUpdate: () => void\n // destroy: () => void\n // batches: CoreBatches\n}\n\n// export type Batch = {\n// id: number\n// priority: keyof CoreBatches\n// tasks: (() => void)[]\n// schedule: (cb: () => void) => void\n// cancel: () => void\n// }\n\n// type CoreBatches = {\n// data: Batch[]\n// facets: Batch[]\n// }\n\n// export type TaskPriority = keyof CoreBatches\n\nexport function createTableInstance<TGenerics extends TableGenerics>(\n options: TableOptions<TGenerics>\n): TableInstance<TGenerics> {\n if (options.debugAll || options.debugTable) {\n console.info('Creating Table Instance...')\n }\n\n let instance = {\n _features: [\n Columns,\n Rows,\n Cells,\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 } as unknown as CoreInstance<TGenerics>\n\n const defaultOptions = instance._features.reduce((obj, feature) => {\n return Object.assign(obj, feature.getDefaultOptions?.(instance))\n }, {}) as TableOptions<TGenerics>\n\n const mergeOptions = (options: TableOptions<TGenerics>) => {\n if (instance.options.mergeOptions) {\n return instance.options.mergeOptions(defaultOptions, options)\n }\n\n return {\n ...defaultOptions,\n ...options,\n }\n }\n\n const coreInitialState: CoreTableState = {\n // coreProgress: 1,\n }\n\n let initialState = {\n ...coreInitialState,\n ...(options.initialState ?? {}),\n } as TableState\n\n instance._features.forEach(feature => {\n initialState = feature.getInitialState?.(initialState) ?? initialState\n })\n\n const queued: (() => void)[] = []\n let queuedTimeout = false\n\n // let workScheduled = false\n // let working = false\n // let latestCallback: ReturnType<typeof requestIdleCallback>\n // let batchUid = 0\n // const onProgress = () => {}\n // const getBatch = () => {\n // instance.batches.data = instance.batches.data.filter(d => d.tasks.length)\n // instance.batches.facets = instance.batches.facets.filter(\n // d => d.tasks.length\n // )\n\n // return (\n // instance.batches.data.find(d => d.tasks.length) ??\n // instance.batches.facets.find(d => d.tasks.length)\n // )\n // }\n\n // const startWorkLoop = () => {\n // working = true\n\n // const workLoop = (deadline: IdleDeadline) => {\n // const batch = getBatch()\n\n // if (!batch) {\n // working = false\n // return\n // }\n // // Prioritize tasks\n // while (deadline.timeRemaining() > 0 && batch.tasks.length) {\n // batch.tasks.shift()!()\n // }\n\n // onProgress()\n\n // if (working) {\n // latestCallback = requestIdleCallback(workLoop, { timeout: 10000 })\n // }\n // }\n\n // latestCallback = requestIdleCallback(workLoop, { timeout: 10000 })\n // }\n\n // const startWork = () => {\n // if (getBatch() && !working) {\n // if (\n // (process.env.NODE_ENV === 'development' && instance.options.debugAll) ??\n // instance.options.debugTable\n // ) {\n // console.info('Starting work...')\n // }\n // startWorkLoop()\n // }\n // }\n\n // const stopWork = () => {\n // if (working) {\n // if (\n // (process.env.NODE_ENV === 'development' && instance.options.debugAll) ??\n // instance.options.debugTable\n // ) {\n // console.info('Stopping work...')\n // }\n\n // working = false\n // cancelIdleCallback(latestCallback)\n // }\n // }\n\n const midInstance: CoreInstance<TGenerics> = {\n ...instance,\n // init: () => {\n // startWork()\n // },\n // willUpdate: () => {\n // startWork()\n // },\n // destroy: () => {\n // stopWork()\n // },\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 // batches: {\n // data: [],\n // facets: [],\n // },\n // createBatch: priority => {\n // const batchId = batchUid++\n // let canceled: boolean\n\n // const batch: Batch = {\n // id: batchId,\n // priority,\n // tasks: [],\n // schedule: cb => {\n // if (canceled) return\n // batch.tasks.push(cb)\n\n // if (!working && !workScheduled) {\n // workScheduled = true\n // instance.queue(() => {\n // workScheduled = false\n // instance.setState(old => ({ ...old }))\n // })\n // }\n // },\n // cancel: () => {\n // canceled = true\n // batch.tasks = []\n // instance.batches[priority] = instance.batches[priority].filter(\n // b => b.id !== batchId\n // )\n // },\n // }\n\n // instance.batches[priority].push(batch)\n\n // return batch\n // },\n reset: () => {\n instance.setState(instance.initialState)\n },\n setOptions: updater => {\n const newOptions = functionalUpdate(updater, instance.options)\n instance.options = mergeOptions(newOptions)\n },\n render: (template, props) => {\n if (typeof instance.options.render === 'function') {\n return instance.options.render(template, props)\n }\n\n if (typeof template === 'function') {\n return (template as Function)(props)\n }\n\n return template\n },\n\n getState: () => {\n return instance.options.state as TableState\n },\n\n setState: (updater: Updater<TableState>) => {\n instance.options.onStateChange?.(updater)\n },\n\n // getOverallProgress: () => {\n // const { coreProgress, filtersProgress, facetProgress } =\n // instance.getState()\n\n // return mean(() =>\n // [coreProgress, filtersProgress].filter(d => d < 1)\n // ) as number\n // },\n // getProgressStage: () => {\n // const { coreProgress, filtersProgress, facetProgress } =\n // instance.getState()\n\n // if (coreProgress < 1) {\n // return 'coreRowModel'\n // }\n\n // if (filtersProgress < 1) {\n // return 'filteredRowModel'\n // }\n\n // if (Object.values(facetProgress).some(d => d < 1)) {\n // return 'facetedRowModel'\n // }\n // },\n }\n\n instance = Object.assign(instance, midInstance)\n\n instance._features.forEach(feature => {\n return Object.assign(instance, feature.createInstance?.(instance))\n })\n\n return instance as TableInstance<TGenerics>\n}\n"],"names":["createTableInstance","options","debugAll","debugTable","console","info","instance","_features","Columns","Rows","Cells","Headers","Visibility","Ordering","Pinning","Filters","Sorting","Grouping","Expanding","Pagination","RowSelection","ColumnSizing","defaultOptions","reduce","obj","feature","Object","assign","getDefaultOptions","mergeOptions","coreInitialState","initialState","forEach","getInitialState","queued","queuedTimeout","midInstance","queue","cb","push","Promise","resolve","then","length","shift","catch","error","setTimeout","reset","setState","setOptions","updater","newOptions","functionalUpdate","render","template","props","getState","state","onStateChange","createInstance"],"mappings":"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"}
@@ -12,68 +12,52 @@
12
12
 
13
13
  Object.defineProperty(exports, '__esModule', { value: true });
14
14
 
15
- var _rollupPluginBabelHelpers = require('./_virtual/_rollupPluginBabelHelpers.js');
16
-
17
15
  //
18
16
  function createTableFactory(opts) {
19
- return function () {
20
- return createTable(undefined, undefined, opts);
21
- };
17
+ return () => createTable(undefined, undefined, opts);
22
18
  } // A lot of returns in here are `as any` for a reason. Unless you
23
19
  // can find a better way to do this, then don't worry about them
24
20
 
25
21
  function createTable(_, __, options) {
26
- var table = {
22
+ const table = {
27
23
  generics: undefined,
28
24
  options: options != null ? options : {
29
- render: function () {
25
+ render: (() => {
30
26
  throw new Error('');
31
- }()
32
- },
33
- setGenerics: function setGenerics() {
34
- return table;
35
- },
36
- setRowType: function setRowType() {
37
- return table;
38
- },
39
- setTableMetaType: function setTableMetaType() {
40
- return table;
41
- },
42
- setColumnMetaType: function setColumnMetaType() {
43
- return table;
44
- },
45
- setOptions: function setOptions(newOptions) {
46
- return createTable(_, __, _rollupPluginBabelHelpers["extends"]({}, options, newOptions));
47
- },
48
- createDisplayColumn: function createDisplayColumn(column) {
49
- return _rollupPluginBabelHelpers["extends"]({}, column, {
50
- columnDefType: 'display'
51
- });
52
- },
53
- createGroup: function createGroup(column) {
54
- return _rollupPluginBabelHelpers["extends"]({}, column, {
55
- columnDefType: 'group'
56
- });
27
+ })()
57
28
  },
58
- createDataColumn: function createDataColumn(accessor, column) {
59
- column = _rollupPluginBabelHelpers["extends"]({}, column, {
29
+ setGenerics: () => table,
30
+ setRowType: () => table,
31
+ setTableMetaType: () => table,
32
+ setColumnMetaType: () => table,
33
+ setOptions: newOptions => createTable(_, __, { ...options,
34
+ ...newOptions
35
+ }),
36
+ createDisplayColumn: column => ({ ...column,
37
+ columnDefType: 'display'
38
+ }),
39
+ createGroup: column => ({ ...column,
40
+ columnDefType: 'group'
41
+ }),
42
+ createDataColumn: (accessor, column) => {
43
+ column = { ...column,
60
44
  columnDefType: 'data',
61
45
  id: column.id
62
- });
46
+ };
63
47
 
64
48
  if (typeof accessor === 'string') {
65
49
  var _column$id;
66
50
 
67
- return _rollupPluginBabelHelpers["extends"]({}, column, {
51
+ return { ...column,
68
52
  id: (_column$id = column.id) != null ? _column$id : accessor,
69
53
  accessorKey: accessor
70
- });
54
+ };
71
55
  }
72
56
 
73
57
  if (typeof accessor === 'function') {
74
- return _rollupPluginBabelHelpers["extends"]({}, column, {
58
+ return { ...column,
75
59
  accessorFn: accessor
76
- });
60
+ };
77
61
  }
78
62
 
79
63
  throw new Error('Invalid accessor');
@@ -1 +1 @@
1
- {"version":3,"file":"createTable.js","sources":["../../src/createTable.ts"],"sourcesContent":["import { CustomFilterFns, FilterFn } from './features/Filters'\nimport { AggregationFn, CustomAggregationFns } from './features/Grouping'\nimport { CustomSortingFns, SortingFn } from './features/Sorting'\nimport {\n ColumnDef,\n AccessorFn,\n AnyRender,\n TableGenerics,\n TableOptions,\n} from './types'\nimport { IfDefined, Overwrite } from './utils'\n\nexport type TableFactory<TGenerics extends TableGenerics> =\n () => Table<TGenerics>\n\nexport type CreateTableOptions<\n TRender extends AnyRender,\n TFilterFns extends CustomFilterFns<any>,\n TSortingFns extends CustomSortingFns<any>,\n TAggregationFns extends CustomAggregationFns<any>,\n TGenerics extends TableGenerics\n> = Partial<\n {\n render?: TRender\n filterFns?: TFilterFns\n sortingFns?: TSortingFns\n aggregationFns?: TAggregationFns\n } & Omit<\n TableOptions<TGenerics>,\n 'filterFns' | 'sortingFns' | 'aggregationFns'\n >\n>\n\nexport type Table<TGenerics extends TableGenerics> = {\n generics: TGenerics\n options: Partial<TableOptions<TGenerics>>\n setGenerics: <T extends TableGenerics>() => Table<T>\n setRowType: <TRow>() => Table<Overwrite<TGenerics, { Row: TRow }>>\n setTableMetaType: <TTableMeta>() => Table<\n Overwrite<TGenerics, { TableMeta: TTableMeta }>\n >\n setColumnMetaType: <TColumnMeta>() => Table<\n Overwrite<TGenerics, { ColumnMeta: TColumnMeta }>\n >\n setOptions: <\n TFilterFns extends Record<string, FilterFn<any>>,\n TSortingFns extends Record<string, SortingFn<any>>,\n TAggregationFns extends Record<string, AggregationFn<any>>\n >(\n options: CreateTableOptions<\n any,\n TFilterFns,\n TSortingFns,\n TAggregationFns,\n TGenerics\n >\n ) => Table<\n Overwrite<\n TGenerics,\n {\n FilterFns: IfDefined<TFilterFns, TGenerics['FilterFns']>\n SortingFns: IfDefined<TSortingFns, TGenerics['SortingFns']>\n AggregationFns: IfDefined<TAggregationFns, TGenerics['AggregationFns']>\n }\n >\n >\n createGroup: (\n column: Overwrite<\n | Overwrite<\n ColumnDef<any>,\n {\n header: string\n id?: string\n }\n >\n | Overwrite<\n ColumnDef<any>,\n {\n id: string\n header?: string | ((...any: any) => any)\n }\n >,\n {\n accessorFn?: never\n accessorKey?: never\n columns?: ColumnDef<any>[]\n }\n >\n ) => ColumnDef<TGenerics>\n createDisplayColumn: (\n column: Omit<ColumnDef<TGenerics>, 'columns'>\n ) => ColumnDef<TGenerics>\n createDataColumn: <\n TAccessor extends AccessorFn<TGenerics['Row']> | keyof TGenerics['Row']\n >(\n accessor: TAccessor,\n column: Overwrite<\n TAccessor extends (...args: any[]) => any\n ? // Accessor Fn\n ColumnDef<Overwrite<TGenerics, { Value: ReturnType<TAccessor> }>>\n : TAccessor extends keyof TGenerics['Row']\n ? // Accessor Key\n Overwrite<\n ColumnDef<\n Overwrite<TGenerics, { Value: TGenerics['Row'][TAccessor] }>\n >,\n {\n id?: string\n }\n >\n : never,\n {\n accessorFn?: never\n accessorKey?: never\n columns?: ColumnDef<any>[]\n }\n >\n ) => ColumnDef<TGenerics>\n}\n\n//\n\nexport function createTableFactory<TRenderer extends AnyRender>(opts: {\n render: TRenderer\n}): () => Table<{ Renderer: TRenderer; Rendered: ReturnType<TRenderer> }> {\n return () => createTable(undefined, undefined, opts)\n}\n\n// A lot of returns in here are `as any` for a reason. Unless you\n// can find a better way to do this, then don't worry about them\nfunction createTable<TGenerics extends TableGenerics>(\n _?: undefined,\n __?: undefined,\n options?: CreateTableOptions<any, any, any, any, TGenerics>\n): Table<TGenerics> {\n const table: Table<TGenerics> = {\n generics: undefined!,\n options: options ?? {\n render: (() => {\n throw new Error('')\n })(),\n },\n setGenerics: () => table as any,\n setRowType: () => table as any,\n setTableMetaType: () => table as any,\n setColumnMetaType: () => table as any,\n setOptions: newOptions =>\n createTable(_, __, {\n ...options,\n ...newOptions,\n } as any),\n createDisplayColumn: column => ({ ...column, columnDefType: 'display' }),\n createGroup: column => ({ ...column, columnDefType: 'group' } as any),\n createDataColumn: (accessor, column): any => {\n column = {\n ...column,\n columnDefType: 'data',\n id: column.id,\n }\n\n if (typeof accessor === 'string') {\n return {\n ...column,\n id: column.id ?? accessor,\n accessorKey: accessor,\n }\n }\n\n if (typeof accessor === 'function') {\n return {\n ...column,\n accessorFn: accessor,\n }\n }\n\n throw new Error('Invalid accessor')\n },\n }\n\n return table\n}\n"],"names":["createTableFactory","opts","createTable","undefined","_","__","options","table","generics","render","Error","setGenerics","setRowType","setTableMetaType","setColumnMetaType","setOptions","newOptions","createDisplayColumn","column","_extends","columnDefType","createGroup","createDataColumn","accessor","id","accessorKey","accessorFn"],"mappings":";;;;;;;;;;;;;;;;AAwHA;AAEO,SAASA,kBAAT,CAAyDC,IAAzD,EAEmE;AACxE,EAAO,OAAA,YAAA;AAAA,IAAA,OAAMC,WAAW,CAACC,SAAD,EAAYA,SAAZ,EAAuBF,IAAvB,CAAjB,CAAA;AAAA,GAAP,CAAA;AACD;AAGD;;AACA,SAASC,WAAT,CACEE,CADF,EAEEC,EAFF,EAGEC,OAHF,EAIoB;AAClB,EAAA,IAAMC,KAAuB,GAAG;AAC9BC,IAAAA,QAAQ,EAAEL,SADoB;AAE9BG,IAAAA,OAAO,EAAEA,OAAF,IAAA,IAAA,GAAEA,OAAF,GAAa;AAClBG,MAAAA,MAAM,EAAG,YAAM;AACb,QAAA,MAAM,IAAIC,KAAJ,CAAU,EAAV,CAAN,CAAA;AACD,OAFO,EAAA;AADU,KAFU;AAO9BC,IAAAA,WAAW,EAAE,SAAA,WAAA,GAAA;AAAA,MAAA,OAAMJ,KAAN,CAAA;AAAA,KAPiB;AAQ9BK,IAAAA,UAAU,EAAE,SAAA,UAAA,GAAA;AAAA,MAAA,OAAML,KAAN,CAAA;AAAA,KARkB;AAS9BM,IAAAA,gBAAgB,EAAE,SAAA,gBAAA,GAAA;AAAA,MAAA,OAAMN,KAAN,CAAA;AAAA,KATY;AAU9BO,IAAAA,iBAAiB,EAAE,SAAA,iBAAA,GAAA;AAAA,MAAA,OAAMP,KAAN,CAAA;AAAA,KAVW;AAW9BQ,IAAAA,UAAU,EAAE,SAAA,UAAA,CAAAC,UAAU,EAAA;AAAA,MACpBd,OAAAA,WAAW,CAACE,CAAD,EAAIC,EAAJ,EACNC,oCAAAA,CAAAA,EAAAA,EAAAA,OADM,EAENU,UAFM,CADS,CAAA,CAAA;AAAA,KAXQ;AAgB9BC,IAAAA,mBAAmB,EAAE,SAAA,mBAAA,CAAAC,MAAM,EAAA;AAAA,MAAA,OAAAC,oCAAA,CAAA,EAAA,EAAUD,MAAV,EAAA;AAAkBE,QAAAA,aAAa,EAAE,SAAA;AAAjC,OAAA,CAAA,CAAA;AAAA,KAhBG;AAiB9BC,IAAAA,WAAW,EAAE,SAAA,WAAA,CAAAH,MAAM,EAAA;AAAA,MAAA,OAAAC,oCAAA,CAAA,EAAA,EAAUD,MAAV,EAAA;AAAkBE,QAAAA,aAAa,EAAE,OAAA;AAAjC,OAAA,CAAA,CAAA;AAAA,KAjBW;AAkB9BE,IAAAA,gBAAgB,EAAE,SAAA,gBAAA,CAACC,QAAD,EAAWL,MAAX,EAA2B;AAC3CA,MAAAA,MAAM,4CACDA,MADC,EAAA;AAEJE,QAAAA,aAAa,EAAE,MAFX;AAGJI,QAAAA,EAAE,EAAEN,MAAM,CAACM,EAAAA;AAHP,OAAN,CAAA,CAAA;;AAMA,MAAA,IAAI,OAAOD,QAAP,KAAoB,QAAxB,EAAkC;AAAA,QAAA,IAAA,UAAA,CAAA;;AAChC,QAAA,OAAAJ,oCAAA,CAAA,EAAA,EACKD,MADL,EAAA;AAEEM,UAAAA,EAAE,EAAEN,CAAAA,UAAAA,GAAAA,MAAM,CAACM,EAAT,yBAAeD,QAFnB;AAGEE,UAAAA,WAAW,EAAEF,QAAAA;AAHf,SAAA,CAAA,CAAA;AAKD,OAAA;;AAED,MAAA,IAAI,OAAOA,QAAP,KAAoB,UAAxB,EAAoC;AAClC,QAAA,OAAAJ,oCAAA,CAAA,EAAA,EACKD,MADL,EAAA;AAEEQ,UAAAA,UAAU,EAAEH,QAAAA;AAFd,SAAA,CAAA,CAAA;AAID,OAAA;;AAED,MAAA,MAAM,IAAIb,KAAJ,CAAU,kBAAV,CAAN,CAAA;AACD,KAAA;AAzC6B,GAAhC,CAAA;AA4CA,EAAA,OAAOH,KAAP,CAAA;AACD;;;;"}
1
+ {"version":3,"file":"createTable.js","sources":["../../src/createTable.ts"],"sourcesContent":["import { CustomFilterFns, FilterFn } from './features/Filters'\nimport { AggregationFn, CustomAggregationFns } from './features/Grouping'\nimport { CustomSortingFns, SortingFn } from './features/Sorting'\nimport {\n ColumnDef,\n AccessorFn,\n AnyRender,\n TableGenerics,\n TableOptions,\n} from './types'\nimport { IfDefined, Overwrite } from './utils'\n\nexport type TableFactory<TGenerics extends TableGenerics> =\n () => Table<TGenerics>\n\nexport type CreateTableOptions<\n TRender extends AnyRender,\n TFilterFns extends CustomFilterFns<any>,\n TSortingFns extends CustomSortingFns<any>,\n TAggregationFns extends CustomAggregationFns<any>,\n TGenerics extends TableGenerics\n> = Partial<\n {\n render?: TRender\n filterFns?: TFilterFns\n sortingFns?: TSortingFns\n aggregationFns?: TAggregationFns\n } & Omit<\n TableOptions<TGenerics>,\n 'filterFns' | 'sortingFns' | 'aggregationFns'\n >\n>\n\nexport type Table<TGenerics extends TableGenerics> = {\n generics: TGenerics\n options: Partial<TableOptions<TGenerics>>\n setGenerics: <T extends TableGenerics>() => Table<T>\n setRowType: <TRow>() => Table<Overwrite<TGenerics, { Row: TRow }>>\n setTableMetaType: <TTableMeta>() => Table<\n Overwrite<TGenerics, { TableMeta: TTableMeta }>\n >\n setColumnMetaType: <TColumnMeta>() => Table<\n Overwrite<TGenerics, { ColumnMeta: TColumnMeta }>\n >\n setOptions: <\n TFilterFns extends Record<string, FilterFn<any>>,\n TSortingFns extends Record<string, SortingFn<any>>,\n TAggregationFns extends Record<string, AggregationFn<any>>\n >(\n options: CreateTableOptions<\n any,\n TFilterFns,\n TSortingFns,\n TAggregationFns,\n TGenerics\n >\n ) => Table<\n Overwrite<\n TGenerics,\n {\n FilterFns: IfDefined<TFilterFns, TGenerics['FilterFns']>\n SortingFns: IfDefined<TSortingFns, TGenerics['SortingFns']>\n AggregationFns: IfDefined<TAggregationFns, TGenerics['AggregationFns']>\n }\n >\n >\n createGroup: (\n column: Overwrite<\n | Overwrite<\n ColumnDef<any>,\n {\n header: string\n id?: string\n }\n >\n | Overwrite<\n ColumnDef<any>,\n {\n id: string\n header?: string | ((...any: any) => any)\n }\n >,\n {\n accessorFn?: never\n accessorKey?: never\n columns?: ColumnDef<any>[]\n }\n >\n ) => ColumnDef<TGenerics>\n createDisplayColumn: (\n column: Omit<ColumnDef<TGenerics>, 'columns'>\n ) => ColumnDef<TGenerics>\n createDataColumn: <\n TAccessor extends AccessorFn<TGenerics['Row']> | keyof TGenerics['Row']\n >(\n accessor: TAccessor,\n column: Overwrite<\n TAccessor extends (...args: any[]) => any\n ? // Accessor Fn\n ColumnDef<Overwrite<TGenerics, { Value: ReturnType<TAccessor> }>>\n : TAccessor extends keyof TGenerics['Row']\n ? // Accessor Key\n Overwrite<\n ColumnDef<\n Overwrite<TGenerics, { Value: TGenerics['Row'][TAccessor] }>\n >,\n {\n id?: string\n }\n >\n : never,\n {\n accessorFn?: never\n accessorKey?: never\n columns?: ColumnDef<any>[]\n }\n >\n ) => ColumnDef<TGenerics>\n}\n\n//\n\nexport function createTableFactory<TRenderer extends AnyRender>(opts: {\n render: TRenderer\n}): () => Table<{ Renderer: TRenderer; Rendered: ReturnType<TRenderer> }> {\n return () => createTable(undefined, undefined, opts)\n}\n\n// A lot of returns in here are `as any` for a reason. Unless you\n// can find a better way to do this, then don't worry about them\nfunction createTable<TGenerics extends TableGenerics>(\n _?: undefined,\n __?: undefined,\n options?: CreateTableOptions<any, any, any, any, TGenerics>\n): Table<TGenerics> {\n const table: Table<TGenerics> = {\n generics: undefined!,\n options: options ?? {\n render: (() => {\n throw new Error('')\n })(),\n },\n setGenerics: () => table as any,\n setRowType: () => table as any,\n setTableMetaType: () => table as any,\n setColumnMetaType: () => table as any,\n setOptions: newOptions =>\n createTable(_, __, {\n ...options,\n ...newOptions,\n } as any),\n createDisplayColumn: column => ({ ...column, columnDefType: 'display' }),\n createGroup: column => ({ ...column, columnDefType: 'group' } as any),\n createDataColumn: (accessor, column): any => {\n column = {\n ...column,\n columnDefType: 'data',\n id: column.id,\n }\n\n if (typeof accessor === 'string') {\n return {\n ...column,\n id: column.id ?? accessor,\n accessorKey: accessor,\n }\n }\n\n if (typeof accessor === 'function') {\n return {\n ...column,\n accessorFn: accessor,\n }\n }\n\n throw new Error('Invalid accessor')\n },\n }\n\n return table\n}\n"],"names":["createTableFactory","opts","createTable","undefined","_","__","options","table","generics","render","Error","setGenerics","setRowType","setTableMetaType","setColumnMetaType","setOptions","newOptions","createDisplayColumn","column","columnDefType","createGroup","createDataColumn","accessor","id","accessorKey","accessorFn"],"mappings":";;;;;;;;;;;;;;AAwHA;AAEO,SAASA,kBAAT,CAAyDC,IAAzD,EAEmE;AACxE,EAAO,OAAA,MAAMC,WAAW,CAACC,SAAD,EAAYA,SAAZ,EAAuBF,IAAvB,CAAxB,CAAA;AACD;AAGD;;AACA,SAASC,WAAT,CACEE,CADF,EAEEC,EAFF,EAGEC,OAHF,EAIoB;AAClB,EAAA,MAAMC,KAAuB,GAAG;AAC9BC,IAAAA,QAAQ,EAAEL,SADoB;AAE9BG,IAAAA,OAAO,EAAEA,OAAF,IAAA,IAAA,GAAEA,OAAF,GAAa;AAClBG,MAAAA,MAAM,EAAE,CAAC,MAAM;AACb,QAAA,MAAM,IAAIC,KAAJ,CAAU,EAAV,CAAN,CAAA;AACD,OAFO,GAAA;AADU,KAFU;AAO9BC,IAAAA,WAAW,EAAE,MAAMJ,KAPW;AAQ9BK,IAAAA,UAAU,EAAE,MAAML,KARY;AAS9BM,IAAAA,gBAAgB,EAAE,MAAMN,KATM;AAU9BO,IAAAA,iBAAiB,EAAE,MAAMP,KAVK;AAW9BQ,IAAAA,UAAU,EAAEC,UAAU,IACpBd,WAAW,CAACE,CAAD,EAAIC,EAAJ,EAAQ,EACjB,GAAGC,OADc;AAEjB,MAAGU,GAAAA,UAAAA;AAFc,KAAR,CAZiB;AAgB9BC,IAAAA,mBAAmB,EAAEC,MAAM,KAAK,EAAE,GAAGA,MAAL;AAAaC,MAAAA,aAAa,EAAE,SAAA;AAA5B,KAAL,CAhBG;AAiB9BC,IAAAA,WAAW,EAAEF,MAAM,KAAK,EAAE,GAAGA,MAAL;AAAaC,MAAAA,aAAa,EAAE,OAAA;AAA5B,KAAL,CAjBW;AAkB9BE,IAAAA,gBAAgB,EAAE,CAACC,QAAD,EAAWJ,MAAX,KAA2B;AAC3CA,MAAAA,MAAM,GAAG,EACP,GAAGA,MADI;AAEPC,QAAAA,aAAa,EAAE,MAFR;AAGPI,QAAAA,EAAE,EAAEL,MAAM,CAACK,EAAAA;AAHJ,OAAT,CAAA;;AAMA,MAAA,IAAI,OAAOD,QAAP,KAAoB,QAAxB,EAAkC;AAAA,QAAA,IAAA,UAAA,CAAA;;AAChC,QAAO,OAAA,EACL,GAAGJ,MADE;AAELK,UAAAA,EAAE,EAAEL,CAAAA,UAAAA,GAAAA,MAAM,CAACK,EAAT,yBAAeD,QAFZ;AAGLE,UAAAA,WAAW,EAAEF,QAAAA;AAHR,SAAP,CAAA;AAKD,OAAA;;AAED,MAAA,IAAI,OAAOA,QAAP,KAAoB,UAAxB,EAAoC;AAClC,QAAO,OAAA,EACL,GAAGJ,MADE;AAELO,UAAAA,UAAU,EAAEH,QAAAA;AAFP,SAAP,CAAA;AAID,OAAA;;AAED,MAAA,MAAM,IAAIZ,KAAJ,CAAU,kBAAV,CAAN,CAAA;AACD,KAAA;AAzC6B,GAAhC,CAAA;AA4CA,EAAA,OAAOH,KAAP,CAAA;AACD;;;;"}