@tanstack/table-core 8.5.13 → 8.5.16

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 (71) hide show
  1. package/build/cjs/aggregationFns.js +0 -15
  2. package/build/cjs/aggregationFns.js.map +1 -1
  3. package/build/cjs/columnHelper.js +10 -2
  4. package/build/cjs/columnHelper.js.map +1 -1
  5. package/build/cjs/core/cell.js +2 -9
  6. package/build/cjs/core/cell.js.map +1 -1
  7. package/build/cjs/core/column.js +9 -27
  8. package/build/cjs/core/column.js.map +1 -1
  9. package/build/cjs/core/headers.js +45 -129
  10. package/build/cjs/core/headers.js.map +1 -1
  11. package/build/cjs/core/row.js +4 -21
  12. package/build/cjs/core/row.js.map +1 -1
  13. package/build/cjs/core/table.js +26 -73
  14. package/build/cjs/core/table.js.map +1 -1
  15. package/build/cjs/features/ColumnSizing.js +56 -67
  16. package/build/cjs/features/ColumnSizing.js.map +1 -1
  17. package/build/cjs/features/Expanding.js +18 -34
  18. package/build/cjs/features/Expanding.js.map +1 -1
  19. package/build/cjs/features/Filters.js +19 -55
  20. package/build/cjs/features/Filters.js.map +1 -1
  21. package/build/cjs/features/Grouping.js +9 -26
  22. package/build/cjs/features/Grouping.js.map +1 -1
  23. package/build/cjs/features/Ordering.js +14 -13
  24. package/build/cjs/features/Ordering.js.map +1 -1
  25. package/build/cjs/features/Pagination.js +20 -43
  26. package/build/cjs/features/Pagination.js.map +1 -1
  27. package/build/cjs/features/Pinning.js +26 -66
  28. package/build/cjs/features/Pinning.js.map +1 -1
  29. package/build/cjs/features/RowSelection.js +44 -74
  30. package/build/cjs/features/RowSelection.js.map +1 -1
  31. package/build/cjs/features/Sorting.js +25 -50
  32. package/build/cjs/features/Sorting.js.map +1 -1
  33. package/build/cjs/features/Visibility.js +14 -32
  34. package/build/cjs/features/Visibility.js.map +1 -1
  35. package/build/cjs/filterFns.js +3 -28
  36. package/build/cjs/filterFns.js.map +1 -1
  37. package/build/cjs/sortingFns.js +24 -31
  38. package/build/cjs/sortingFns.js.map +1 -1
  39. package/build/cjs/utils/filterRowsUtils.js +7 -19
  40. package/build/cjs/utils/filterRowsUtils.js.map +1 -1
  41. package/build/cjs/utils/getCoreRowModel.js +12 -18
  42. package/build/cjs/utils/getCoreRowModel.js.map +1 -1
  43. package/build/cjs/utils/getExpandedRowModel.js +2 -12
  44. package/build/cjs/utils/getExpandedRowModel.js.map +1 -1
  45. package/build/cjs/utils/getFacetedMinMaxValues.js +1 -11
  46. package/build/cjs/utils/getFacetedMinMaxValues.js.map +1 -1
  47. package/build/cjs/utils/getFacetedRowModel.js +1 -9
  48. package/build/cjs/utils/getFacetedRowModel.js.map +1 -1
  49. package/build/cjs/utils/getFacetedUniqueValues.js +2 -12
  50. package/build/cjs/utils/getFacetedUniqueValues.js.map +1 -1
  51. package/build/cjs/utils/getFilteredRowModel.js +14 -34
  52. package/build/cjs/utils/getFilteredRowModel.js.map +1 -1
  53. package/build/cjs/utils/getGroupedRowModel.js +25 -35
  54. package/build/cjs/utils/getGroupedRowModel.js.map +1 -1
  55. package/build/cjs/utils/getPaginationRowModel.js +1 -11
  56. package/build/cjs/utils/getPaginationRowModel.js.map +1 -1
  57. package/build/cjs/utils/getSortedRowModel.js +8 -23
  58. package/build/cjs/utils/getSortedRowModel.js.map +1 -1
  59. package/build/cjs/utils.js +11 -14
  60. package/build/cjs/utils.js.map +1 -1
  61. package/build/esm/index.js +452 -993
  62. package/build/esm/index.js.map +1 -1
  63. package/build/stats-html.html +44 -34
  64. package/build/stats-react.json +371 -371
  65. package/build/umd/index.development.js +452 -991
  66. package/build/umd/index.development.js.map +1 -1
  67. package/build/umd/index.production.js +1 -1
  68. package/build/umd/index.production.js.map +1 -1
  69. package/package.json +1 -1
  70. package/src/features/ColumnSizing.ts +11 -1
  71. package/src/features/Expanding.ts +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"Ordering.js","sources":["../../../src/features/Ordering.ts"],"sourcesContent":["import { makeStateUpdater, memo } from '../utils'\n\nimport { Table, OnChangeFn, Updater, Column, RowData } from '../types'\n\nimport { Grouping, orderColumns } from './Grouping'\nimport { TableFeature } from '../core/table'\n\nexport type ColumnOrderTableState = {\n columnOrder: ColumnOrderState\n}\n\nexport type ColumnOrderState = string[]\n\nexport type ColumnOrderOptions = {\n onColumnOrderChange?: OnChangeFn<ColumnOrderState>\n}\n\nexport type ColumnOrderDefaultOptions = {\n onColumnOrderChange: OnChangeFn<ColumnOrderState>\n}\n\nexport type ColumnOrderInstance<TData extends RowData> = {\n setColumnOrder: (updater: Updater<ColumnOrderState>) => void\n resetColumnOrder: (defaultState?: boolean) => void\n _getOrderColumnsFn: () => (\n columns: Column<TData, unknown>[]\n ) => Column<TData, unknown>[]\n}\n\n//\n\nexport const Ordering: TableFeature = {\n getInitialState: (state): ColumnOrderTableState => {\n return {\n columnOrder: [],\n ...state,\n }\n },\n\n getDefaultOptions: <TData extends RowData>(\n table: Table<TData>\n ): ColumnOrderDefaultOptions => {\n return {\n onColumnOrderChange: makeStateUpdater('columnOrder', table),\n }\n },\n\n createTable: <TData extends RowData>(\n table: Table<TData>\n ): ColumnOrderInstance<TData> => {\n return {\n setColumnOrder: updater => table.options.onColumnOrderChange?.(updater),\n resetColumnOrder: defaultState => {\n table.setColumnOrder(\n defaultState ? [] : table.initialState.columnOrder ?? []\n )\n },\n _getOrderColumnsFn: memo(\n () => [\n table.getState().columnOrder,\n table.getState().grouping,\n table.options.groupedColumnMode,\n ],\n (columnOrder, grouping, groupedColumnMode) => columns => {\n // Sort grouped columns to the start of the column list\n // before the headers are built\n let orderedColumns: Column<TData, unknown>[] = []\n\n // If there is no order, return the normal columns\n if (!columnOrder?.length) {\n orderedColumns = columns\n } else {\n const columnOrderCopy = [...columnOrder]\n\n // If there is an order, make a copy of the columns\n const columnsCopy = [...columns]\n\n // And make a new ordered array of the columns\n\n // Loop over the columns and place them in order into the new array\n while (columnsCopy.length && columnOrderCopy.length) {\n const targetColumnId = columnOrderCopy.shift()\n const foundIndex = columnsCopy.findIndex(\n d => d.id === targetColumnId\n )\n if (foundIndex > -1) {\n orderedColumns.push(columnsCopy.splice(foundIndex, 1)[0]!)\n }\n }\n\n // If there are any columns left, add them to the end\n orderedColumns = [...orderedColumns, ...columnsCopy]\n }\n\n return orderColumns(orderedColumns, grouping, groupedColumnMode)\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getOrderColumnsFn',\n // debug: () => table.options.debugAll ?? table.options.debugTable,\n }\n ),\n }\n },\n}\n"],"names":["Ordering","getInitialState","state","columnOrder","getDefaultOptions","table","onColumnOrderChange","makeStateUpdater","createTable","setColumnOrder","updater","options","resetColumnOrder","defaultState","initialState","_getOrderColumnsFn","memo","getState","grouping","groupedColumnMode","columns","orderedColumns","length","columnOrderCopy","columnsCopy","targetColumnId","shift","foundIndex","findIndex","d","id","push","splice","orderColumns","key","process","env","NODE_ENV"],"mappings":";;;;;;;;;;;;;;;;;AA6BA;AAEO,MAAMA,QAAsB,GAAG;EACpCC,eAAe,EAAGC,KAAD,IAAkC;IACjD,OAAO;AACLC,MAAAA,WAAW,EAAE,EADR;MAEL,GAAGD,KAAAA;KAFL,CAAA;GAFkC;EAQpCE,iBAAiB,EACfC,KADiB,IAEa;IAC9B,OAAO;AACLC,MAAAA,mBAAmB,EAAEC,sBAAgB,CAAC,aAAD,EAAgBF,KAAhB,CAAA;KADvC,CAAA;GAXkC;EAgBpCG,WAAW,EACTH,KADW,IAEoB;IAC/B,OAAO;AACLI,MAAAA,cAAc,EAAEC,OAAO,IAAIL,KAAK,CAACM,OAAN,CAAcL,mBAAlB,IAAID,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,KAAK,CAACM,OAAN,CAAcL,mBAAd,CAAoCI,OAApC,CADtB;MAELE,gBAAgB,EAAEC,YAAY,IAAI;AAAA,QAAA,IAAA,qBAAA,CAAA;;AAChCR,QAAAA,KAAK,CAACI,cAAN,CACEI,YAAY,GAAG,EAAH,GAAQR,CAAAA,qBAAAA,GAAAA,KAAK,CAACS,YAAN,CAAmBX,WAA3B,oCAA0C,EADxD,CAAA,CAAA;OAHG;AAOLY,MAAAA,kBAAkB,EAAEC,UAAI,CACtB,MAAM,CACJX,KAAK,CAACY,QAAN,EAAA,CAAiBd,WADb,EAEJE,KAAK,CAACY,QAAN,EAAiBC,CAAAA,QAFb,EAGJb,KAAK,CAACM,OAAN,CAAcQ,iBAHV,CADgB,EAMtB,CAAChB,WAAD,EAAce,QAAd,EAAwBC,iBAAxB,KAA8CC,OAAO,IAAI;AACvD;AACA;AACA,QAAA,IAAIC,cAAwC,GAAG,EAA/C,CAHuD;;AAMvD,QAAA,IAAI,EAAClB,WAAD,IAAA,IAAA,IAACA,WAAW,CAAEmB,MAAd,CAAJ,EAA0B;AACxBD,UAAAA,cAAc,GAAGD,OAAjB,CAAA;AACD,SAFD,MAEO;AACL,UAAA,MAAMG,eAAe,GAAG,CAAC,GAAGpB,WAAJ,CAAxB,CADK;;AAIL,UAAA,MAAMqB,WAAW,GAAG,CAAC,GAAGJ,OAAJ,CAApB,CAJK;AAQL;;AACA,UAAA,OAAOI,WAAW,CAACF,MAAZ,IAAsBC,eAAe,CAACD,MAA7C,EAAqD;AACnD,YAAA,MAAMG,cAAc,GAAGF,eAAe,CAACG,KAAhB,EAAvB,CAAA;AACA,YAAA,MAAMC,UAAU,GAAGH,WAAW,CAACI,SAAZ,CACjBC,CAAC,IAAIA,CAAC,CAACC,EAAF,KAASL,cADG,CAAnB,CAAA;;AAGA,YAAA,IAAIE,UAAU,GAAG,CAAC,CAAlB,EAAqB;AACnBN,cAAAA,cAAc,CAACU,IAAf,CAAoBP,WAAW,CAACQ,MAAZ,CAAmBL,UAAnB,EAA+B,CAA/B,CAAkC,CAAA,CAAlC,CAApB,CAAA,CAAA;AACD,aAAA;AACF,WAjBI;;;AAoBLN,UAAAA,cAAc,GAAG,CAAC,GAAGA,cAAJ,EAAoB,GAAGG,WAAvB,CAAjB,CAAA;AACD,SAAA;;AAED,QAAA,OAAOS,qBAAY,CAACZ,cAAD,EAAiBH,QAAjB,EAA2BC,iBAA3B,CAAnB,CAAA;AACD,OAtCqB,EAuCtB;QACEe,GAAG,EAAEC,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,aAAzB,IAA0C,mBADjD;;OAvCsB,CAAA;KAP1B,CAAA;AAoDD,GAAA;AAvEmC;;;;"}
1
+ {"version":3,"file":"Ordering.js","sources":["../../../src/features/Ordering.ts"],"sourcesContent":["import { makeStateUpdater, memo } from '../utils'\n\nimport { Table, OnChangeFn, Updater, Column, RowData } from '../types'\n\nimport { Grouping, orderColumns } from './Grouping'\nimport { TableFeature } from '../core/table'\n\nexport type ColumnOrderTableState = {\n columnOrder: ColumnOrderState\n}\n\nexport type ColumnOrderState = string[]\n\nexport type ColumnOrderOptions = {\n onColumnOrderChange?: OnChangeFn<ColumnOrderState>\n}\n\nexport type ColumnOrderDefaultOptions = {\n onColumnOrderChange: OnChangeFn<ColumnOrderState>\n}\n\nexport type ColumnOrderInstance<TData extends RowData> = {\n setColumnOrder: (updater: Updater<ColumnOrderState>) => void\n resetColumnOrder: (defaultState?: boolean) => void\n _getOrderColumnsFn: () => (\n columns: Column<TData, unknown>[]\n ) => Column<TData, unknown>[]\n}\n\n//\n\nexport const Ordering: TableFeature = {\n getInitialState: (state): ColumnOrderTableState => {\n return {\n columnOrder: [],\n ...state,\n }\n },\n\n getDefaultOptions: <TData extends RowData>(\n table: Table<TData>\n ): ColumnOrderDefaultOptions => {\n return {\n onColumnOrderChange: makeStateUpdater('columnOrder', table),\n }\n },\n\n createTable: <TData extends RowData>(\n table: Table<TData>\n ): ColumnOrderInstance<TData> => {\n return {\n setColumnOrder: updater => table.options.onColumnOrderChange?.(updater),\n resetColumnOrder: defaultState => {\n table.setColumnOrder(\n defaultState ? [] : table.initialState.columnOrder ?? []\n )\n },\n _getOrderColumnsFn: memo(\n () => [\n table.getState().columnOrder,\n table.getState().grouping,\n table.options.groupedColumnMode,\n ],\n (columnOrder, grouping, groupedColumnMode) => columns => {\n // Sort grouped columns to the start of the column list\n // before the headers are built\n let orderedColumns: Column<TData, unknown>[] = []\n\n // If there is no order, return the normal columns\n if (!columnOrder?.length) {\n orderedColumns = columns\n } else {\n const columnOrderCopy = [...columnOrder]\n\n // If there is an order, make a copy of the columns\n const columnsCopy = [...columns]\n\n // And make a new ordered array of the columns\n\n // Loop over the columns and place them in order into the new array\n while (columnsCopy.length && columnOrderCopy.length) {\n const targetColumnId = columnOrderCopy.shift()\n const foundIndex = columnsCopy.findIndex(\n d => d.id === targetColumnId\n )\n if (foundIndex > -1) {\n orderedColumns.push(columnsCopy.splice(foundIndex, 1)[0]!)\n }\n }\n\n // If there are any columns left, add them to the end\n orderedColumns = [...orderedColumns, ...columnsCopy]\n }\n\n return orderColumns(orderedColumns, grouping, groupedColumnMode)\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getOrderColumnsFn',\n // debug: () => table.options.debugAll ?? table.options.debugTable,\n }\n ),\n }\n },\n}\n"],"names":["Ordering","getInitialState","state","columnOrder","getDefaultOptions","table","onColumnOrderChange","makeStateUpdater","createTable","setColumnOrder","updater","options","resetColumnOrder","defaultState","initialState","_getOrderColumnsFn","memo","getState","grouping","groupedColumnMode","columns","orderedColumns","length","columnOrderCopy","columnsCopy","targetColumnId","shift","foundIndex","findIndex","d","id","push","splice","orderColumns","key","process","env","NODE_ENV"],"mappings":";;;;;;;;;;;;;;;;;AA6BA;;AAEO,MAAMA,QAAsB,GAAG;EACpCC,eAAe,EAAGC,KAAK,IAA4B;IACjD,OAAO;AACLC,MAAAA,WAAW,EAAE,EAAE;MACf,GAAGD,KAAAA;KACJ,CAAA;GACF;EAEDE,iBAAiB,EACfC,KAAmB,IACW;IAC9B,OAAO;AACLC,MAAAA,mBAAmB,EAAEC,sBAAgB,CAAC,aAAa,EAAEF,KAAK,CAAA;KAC3D,CAAA;GACF;EAEDG,WAAW,EACTH,KAAmB,IACY;IAC/B,OAAO;AACLI,MAAAA,cAAc,EAAEC,OAAO,IAAIL,KAAK,CAACM,OAAO,CAACL,mBAAmB,IAAjCD,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,KAAK,CAACM,OAAO,CAACL,mBAAmB,CAAGI,OAAO,CAAC;MACvEE,gBAAgB,EAAEC,YAAY,IAAI;AAChCR,QAAAA,KAAK,CAACI,cAAc,CAClBI,YAAY,GAAG,EAAE,GAAGR,KAAK,CAACS,YAAY,CAACX,WAAW,IAAI,EAAE,CACzD,CAAA;OACF;AACDY,MAAAA,kBAAkB,EAAEC,UAAI,CACtB,MAAM,CACJX,KAAK,CAACY,QAAQ,EAAE,CAACd,WAAW,EAC5BE,KAAK,CAACY,QAAQ,EAAE,CAACC,QAAQ,EACzBb,KAAK,CAACM,OAAO,CAACQ,iBAAiB,CAChC,EACD,CAAChB,WAAW,EAAEe,QAAQ,EAAEC,iBAAiB,KAAKC,OAAO,IAAI;AACvD;AACA;QACA,IAAIC,cAAwC,GAAG,EAAE,CAAA;;AAEjD;AACA,QAAA,IAAI,EAAClB,WAAW,IAAA,IAAA,IAAXA,WAAW,CAAEmB,MAAM,CAAE,EAAA;AACxBD,UAAAA,cAAc,GAAGD,OAAO,CAAA;AAC1B,SAAC,MAAM;AACL,UAAA,MAAMG,eAAe,GAAG,CAAC,GAAGpB,WAAW,CAAC,CAAA;;AAExC;AACA,UAAA,MAAMqB,WAAW,GAAG,CAAC,GAAGJ,OAAO,CAAC,CAAA;;AAEhC;;AAEA;AACA,UAAA,OAAOI,WAAW,CAACF,MAAM,IAAIC,eAAe,CAACD,MAAM,EAAE;AACnD,YAAA,MAAMG,cAAc,GAAGF,eAAe,CAACG,KAAK,EAAE,CAAA;AAC9C,YAAA,MAAMC,UAAU,GAAGH,WAAW,CAACI,SAAS,CACtCC,CAAC,IAAIA,CAAC,CAACC,EAAE,KAAKL,cAAc,CAC7B,CAAA;AACD,YAAA,IAAIE,UAAU,GAAG,CAAC,CAAC,EAAE;AACnBN,cAAAA,cAAc,CAACU,IAAI,CAACP,WAAW,CAACQ,MAAM,CAACL,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAE,CAAA;AAC5D,aAAA;AACF,WAAA;;AAEA;AACAN,UAAAA,cAAc,GAAG,CAAC,GAAGA,cAAc,EAAE,GAAGG,WAAW,CAAC,CAAA;AACtD,SAAA;AAEA,QAAA,OAAOS,qBAAY,CAACZ,cAAc,EAAEH,QAAQ,EAAEC,iBAAiB,CAAC,CAAA;AAClE,OAAC,EACD;QACEe,GAAG,EAAEC,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,aAAa,IAAI,mBAAA;AAC/C;OACD,CAAA;KAEJ,CAAA;AACH,GAAA;AACF;;;;"}
@@ -15,18 +15,19 @@ Object.defineProperty(exports, '__esModule', { value: true });
15
15
  var utils = require('../utils.js');
16
16
 
17
17
  //
18
+
18
19
  const defaultPageIndex = 0;
19
20
  const defaultPageSize = 10;
20
-
21
21
  const getDefaultPaginationState = () => ({
22
22
  pageIndex: defaultPageIndex,
23
23
  pageSize: defaultPageSize
24
24
  });
25
-
26
25
  const Pagination = {
27
26
  getInitialState: state => {
28
- return { ...state,
29
- pagination: { ...getDefaultPaginationState(),
27
+ return {
28
+ ...state,
29
+ pagination: {
30
+ ...getDefaultPaginationState(),
30
31
  ...(state == null ? void 0 : state.pagination)
31
32
  }
32
33
  };
@@ -41,20 +42,15 @@ const Pagination = {
41
42
  let queued = false;
42
43
  return {
43
44
  _autoResetPageIndex: () => {
44
- var _ref, _table$options$autoRe;
45
-
46
45
  if (!registered) {
47
46
  table._queue(() => {
48
47
  registered = true;
49
48
  });
50
-
51
49
  return;
52
50
  }
53
-
54
- if ((_ref = (_table$options$autoRe = table.options.autoResetAll) != null ? _table$options$autoRe : table.options.autoResetPageIndex) != null ? _ref : !table.options.manualPagination) {
51
+ if (table.options.autoResetAll ?? table.options.autoResetPageIndex ?? !table.options.manualPagination) {
55
52
  if (queued) return;
56
53
  queued = true;
57
-
58
54
  table._queue(() => {
59
55
  table.resetPageIndex();
60
56
  queued = false;
@@ -66,73 +62,61 @@ const Pagination = {
66
62
  let newState = utils.functionalUpdate(updater, old);
67
63
  return newState;
68
64
  };
69
-
70
65
  return table.options.onPaginationChange == null ? void 0 : table.options.onPaginationChange(safeUpdater);
71
66
  },
72
67
  resetPagination: defaultState => {
73
- var _table$initialState$p;
74
-
75
- table.setPagination(defaultState ? getDefaultPaginationState() : (_table$initialState$p = table.initialState.pagination) != null ? _table$initialState$p : getDefaultPaginationState());
68
+ table.setPagination(defaultState ? getDefaultPaginationState() : table.initialState.pagination ?? getDefaultPaginationState());
76
69
  },
77
70
  setPageIndex: updater => {
78
71
  table.setPagination(old => {
79
72
  let pageIndex = utils.functionalUpdate(updater, old.pageIndex);
80
73
  const maxPageIndex = typeof table.options.pageCount === 'undefined' || table.options.pageCount === -1 ? Number.MAX_SAFE_INTEGER : table.options.pageCount - 1;
81
74
  pageIndex = Math.min(Math.max(0, pageIndex), maxPageIndex);
82
- return { ...old,
75
+ return {
76
+ ...old,
83
77
  pageIndex
84
78
  };
85
79
  });
86
80
  },
87
81
  resetPageIndex: defaultState => {
88
- var _table$initialState$p2, _table$initialState, _table$initialState$p3;
89
-
90
- table.setPageIndex(defaultState ? defaultPageIndex : (_table$initialState$p2 = (_table$initialState = table.initialState) == null ? void 0 : (_table$initialState$p3 = _table$initialState.pagination) == null ? void 0 : _table$initialState$p3.pageIndex) != null ? _table$initialState$p2 : defaultPageIndex);
82
+ var _table$initialState, _table$initialState$p;
83
+ table.setPageIndex(defaultState ? defaultPageIndex : ((_table$initialState = table.initialState) == null ? void 0 : (_table$initialState$p = _table$initialState.pagination) == null ? void 0 : _table$initialState$p.pageIndex) ?? defaultPageIndex);
91
84
  },
92
85
  resetPageSize: defaultState => {
93
- var _table$initialState$p4, _table$initialState2, _table$initialState2$;
94
-
95
- table.setPageSize(defaultState ? defaultPageSize : (_table$initialState$p4 = (_table$initialState2 = table.initialState) == null ? void 0 : (_table$initialState2$ = _table$initialState2.pagination) == null ? void 0 : _table$initialState2$.pageSize) != null ? _table$initialState$p4 : defaultPageSize);
86
+ var _table$initialState2, _table$initialState2$;
87
+ table.setPageSize(defaultState ? defaultPageSize : ((_table$initialState2 = table.initialState) == null ? void 0 : (_table$initialState2$ = _table$initialState2.pagination) == null ? void 0 : _table$initialState2$.pageSize) ?? defaultPageSize);
96
88
  },
97
89
  setPageSize: updater => {
98
90
  table.setPagination(old => {
99
91
  const pageSize = Math.max(1, utils.functionalUpdate(updater, old.pageSize));
100
92
  const topRowIndex = old.pageSize * old.pageIndex;
101
93
  const pageIndex = Math.floor(topRowIndex / pageSize);
102
- return { ...old,
94
+ return {
95
+ ...old,
103
96
  pageIndex,
104
97
  pageSize
105
98
  };
106
99
  });
107
100
  },
108
101
  setPageCount: updater => table.setPagination(old => {
109
- var _table$options$pageCo;
110
-
111
- let newPageCount = utils.functionalUpdate(updater, (_table$options$pageCo = table.options.pageCount) != null ? _table$options$pageCo : -1);
112
-
102
+ let newPageCount = utils.functionalUpdate(updater, table.options.pageCount ?? -1);
113
103
  if (typeof newPageCount === 'number') {
114
104
  newPageCount = Math.max(-1, newPageCount);
115
105
  }
116
-
117
- return { ...old,
106
+ return {
107
+ ...old,
118
108
  pageCount: newPageCount
119
109
  };
120
110
  }),
121
111
  getPageOptions: utils.memo(() => [table.getPageCount()], pageCount => {
122
112
  let pageOptions = [];
123
-
124
113
  if (pageCount && pageCount > 0) {
125
114
  pageOptions = [...new Array(pageCount)].fill(null).map((_, i) => i);
126
115
  }
127
-
128
116
  return pageOptions;
129
117
  }, {
130
118
  key: process.env.NODE_ENV === 'development' && 'getPageOptions',
131
- debug: () => {
132
- var _table$options$debugA;
133
-
134
- return (_table$options$debugA = table.options.debugAll) != null ? _table$options$debugA : table.options.debugTable;
135
- }
119
+ debug: () => table.options.debugAll ?? table.options.debugTable
136
120
  }),
137
121
  getCanPreviousPage: () => table.getState().pagination.pageIndex > 0,
138
122
  getCanNextPage: () => {
@@ -140,15 +124,12 @@ const Pagination = {
140
124
  pageIndex
141
125
  } = table.getState().pagination;
142
126
  const pageCount = table.getPageCount();
143
-
144
127
  if (pageCount === -1) {
145
128
  return true;
146
129
  }
147
-
148
130
  if (pageCount === 0) {
149
131
  return false;
150
132
  }
151
-
152
133
  return pageIndex < pageCount - 1;
153
134
  },
154
135
  previousPage: () => {
@@ -164,17 +145,13 @@ const Pagination = {
164
145
  if (!table._getPaginationRowModel && table.options.getPaginationRowModel) {
165
146
  table._getPaginationRowModel = table.options.getPaginationRowModel(table);
166
147
  }
167
-
168
148
  if (table.options.manualPagination || !table._getPaginationRowModel) {
169
149
  return table.getPrePaginationRowModel();
170
150
  }
171
-
172
151
  return table._getPaginationRowModel();
173
152
  },
174
153
  getPageCount: () => {
175
- var _table$options$pageCo2;
176
-
177
- return (_table$options$pageCo2 = table.options.pageCount) != null ? _table$options$pageCo2 : Math.ceil(table.getPrePaginationRowModel().rows.length / table.getState().pagination.pageSize);
154
+ return table.options.pageCount ?? Math.ceil(table.getPrePaginationRowModel().rows.length / table.getState().pagination.pageSize);
178
155
  }
179
156
  };
180
157
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Pagination.js","sources":["../../../src/features/Pagination.ts"],"sourcesContent":["import { TableFeature } from '../core/table'\nimport { OnChangeFn, Table, RowModel, Updater, RowData } from '../types'\nimport { functionalUpdate, makeStateUpdater, memo } from '../utils'\n\nexport type PaginationState = {\n pageIndex: number\n pageSize: number\n}\n\nexport type PaginationTableState = {\n pagination: PaginationState\n}\n\nexport type PaginationInitialTableState = {\n pagination?: Partial<PaginationState>\n}\n\nexport type PaginationOptions = {\n pageCount?: number\n manualPagination?: boolean\n onPaginationChange?: OnChangeFn<PaginationState>\n autoResetPageIndex?: boolean\n getPaginationRowModel?: (table: Table<any>) => () => RowModel<any>\n}\n\nexport type PaginationDefaultOptions = {\n onPaginationChange: OnChangeFn<PaginationState>\n}\n\nexport type PaginationInstance<TData extends RowData> = {\n _autoResetPageIndex: () => void\n setPagination: (updater: Updater<PaginationState>) => void\n resetPagination: (defaultState?: boolean) => void\n setPageIndex: (updater: Updater<number>) => void\n resetPageIndex: (defaultState?: boolean) => void\n setPageSize: (updater: Updater<number>) => void\n resetPageSize: (defaultState?: boolean) => void\n setPageCount: (updater: Updater<number>) => void\n getPageOptions: () => number[]\n getCanPreviousPage: () => boolean\n getCanNextPage: () => boolean\n previousPage: () => void\n nextPage: () => void\n getPrePaginationRowModel: () => RowModel<TData>\n getPaginationRowModel: () => RowModel<TData>\n _getPaginationRowModel?: () => RowModel<TData>\n getPageCount: () => number\n}\n\n//\n\nconst defaultPageIndex = 0\nconst defaultPageSize = 10\n\nconst getDefaultPaginationState = (): PaginationState => ({\n pageIndex: defaultPageIndex,\n pageSize: defaultPageSize,\n})\n\nexport const Pagination: TableFeature = {\n getInitialState: (state): PaginationTableState => {\n return {\n ...state,\n pagination: {\n ...getDefaultPaginationState(),\n ...state?.pagination,\n },\n }\n },\n\n getDefaultOptions: <TData extends RowData>(\n table: Table<TData>\n ): PaginationDefaultOptions => {\n return {\n onPaginationChange: makeStateUpdater('pagination', table),\n }\n },\n\n createTable: <TData extends RowData>(\n table: Table<TData>\n ): PaginationInstance<TData> => {\n let registered = false\n let queued = false\n\n return {\n _autoResetPageIndex: () => {\n if (!registered) {\n table._queue(() => {\n registered = true\n })\n return\n }\n\n if (\n table.options.autoResetAll ??\n table.options.autoResetPageIndex ??\n !table.options.manualPagination\n ) {\n if (queued) return\n queued = true\n table._queue(() => {\n table.resetPageIndex()\n queued = false\n })\n }\n },\n setPagination: updater => {\n const safeUpdater: Updater<PaginationState> = old => {\n let newState = functionalUpdate(updater, old)\n\n return newState\n }\n\n return table.options.onPaginationChange?.(safeUpdater)\n },\n resetPagination: defaultState => {\n table.setPagination(\n defaultState\n ? getDefaultPaginationState()\n : table.initialState.pagination ?? getDefaultPaginationState()\n )\n },\n setPageIndex: updater => {\n table.setPagination(old => {\n let pageIndex = functionalUpdate(updater, old.pageIndex)\n\n const maxPageIndex =\n typeof table.options.pageCount === 'undefined' ||\n table.options.pageCount === -1\n ? Number.MAX_SAFE_INTEGER\n : table.options.pageCount - 1\n\n pageIndex = Math.min(Math.max(0, pageIndex), maxPageIndex)\n\n return {\n ...old,\n pageIndex,\n }\n })\n },\n resetPageIndex: defaultState => {\n table.setPageIndex(\n defaultState\n ? defaultPageIndex\n : table.initialState?.pagination?.pageIndex ?? defaultPageIndex\n )\n },\n resetPageSize: defaultState => {\n table.setPageSize(\n defaultState\n ? defaultPageSize\n : table.initialState?.pagination?.pageSize ?? defaultPageSize\n )\n },\n setPageSize: updater => {\n table.setPagination(old => {\n const pageSize = Math.max(1, functionalUpdate(updater, old.pageSize))\n const topRowIndex = old.pageSize * old.pageIndex!\n const pageIndex = Math.floor(topRowIndex / pageSize)\n\n return {\n ...old,\n pageIndex,\n pageSize,\n }\n })\n },\n setPageCount: updater =>\n table.setPagination(old => {\n let newPageCount = functionalUpdate(\n updater,\n table.options.pageCount ?? -1\n )\n\n if (typeof newPageCount === 'number') {\n newPageCount = Math.max(-1, newPageCount)\n }\n\n return {\n ...old,\n pageCount: newPageCount,\n }\n }),\n\n getPageOptions: memo(\n () => [table.getPageCount()],\n pageCount => {\n let pageOptions: number[] = []\n if (pageCount && pageCount > 0) {\n pageOptions = [...new Array(pageCount)].fill(null).map((_, i) => i)\n }\n return pageOptions\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getPageOptions',\n debug: () => table.options.debugAll ?? table.options.debugTable,\n }\n ),\n\n getCanPreviousPage: () => table.getState().pagination.pageIndex > 0,\n\n getCanNextPage: () => {\n const { pageIndex } = table.getState().pagination\n\n const pageCount = table.getPageCount()\n\n if (pageCount === -1) {\n return true\n }\n\n if (pageCount === 0) {\n return false\n }\n\n return pageIndex < pageCount - 1\n },\n\n previousPage: () => {\n return table.setPageIndex(old => old - 1)\n },\n\n nextPage: () => {\n return table.setPageIndex(old => {\n return old + 1\n })\n },\n\n getPrePaginationRowModel: () => table.getExpandedRowModel(),\n getPaginationRowModel: () => {\n if (\n !table._getPaginationRowModel &&\n table.options.getPaginationRowModel\n ) {\n table._getPaginationRowModel =\n table.options.getPaginationRowModel(table)\n }\n\n if (table.options.manualPagination || !table._getPaginationRowModel) {\n return table.getPrePaginationRowModel()\n }\n\n return table._getPaginationRowModel()\n },\n\n getPageCount: () => {\n return (\n table.options.pageCount ??\n Math.ceil(\n table.getPrePaginationRowModel().rows.length /\n table.getState().pagination.pageSize\n )\n )\n },\n }\n },\n}\n"],"names":["defaultPageIndex","defaultPageSize","getDefaultPaginationState","pageIndex","pageSize","Pagination","getInitialState","state","pagination","getDefaultOptions","table","onPaginationChange","makeStateUpdater","createTable","registered","queued","_autoResetPageIndex","_queue","options","autoResetAll","autoResetPageIndex","manualPagination","resetPageIndex","setPagination","updater","safeUpdater","old","newState","functionalUpdate","resetPagination","defaultState","initialState","setPageIndex","maxPageIndex","pageCount","Number","MAX_SAFE_INTEGER","Math","min","max","resetPageSize","setPageSize","topRowIndex","floor","setPageCount","newPageCount","getPageOptions","memo","getPageCount","pageOptions","Array","fill","map","_","i","key","process","env","NODE_ENV","debug","debugAll","debugTable","getCanPreviousPage","getState","getCanNextPage","previousPage","nextPage","getPrePaginationRowModel","getExpandedRowModel","getPaginationRowModel","_getPaginationRowModel","ceil","rows","length"],"mappings":"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"}
1
+ {"version":3,"file":"Pagination.js","sources":["../../../src/features/Pagination.ts"],"sourcesContent":["import { TableFeature } from '../core/table'\nimport { OnChangeFn, Table, RowModel, Updater, RowData } from '../types'\nimport { functionalUpdate, makeStateUpdater, memo } from '../utils'\n\nexport type PaginationState = {\n pageIndex: number\n pageSize: number\n}\n\nexport type PaginationTableState = {\n pagination: PaginationState\n}\n\nexport type PaginationInitialTableState = {\n pagination?: Partial<PaginationState>\n}\n\nexport type PaginationOptions = {\n pageCount?: number\n manualPagination?: boolean\n onPaginationChange?: OnChangeFn<PaginationState>\n autoResetPageIndex?: boolean\n getPaginationRowModel?: (table: Table<any>) => () => RowModel<any>\n}\n\nexport type PaginationDefaultOptions = {\n onPaginationChange: OnChangeFn<PaginationState>\n}\n\nexport type PaginationInstance<TData extends RowData> = {\n _autoResetPageIndex: () => void\n setPagination: (updater: Updater<PaginationState>) => void\n resetPagination: (defaultState?: boolean) => void\n setPageIndex: (updater: Updater<number>) => void\n resetPageIndex: (defaultState?: boolean) => void\n setPageSize: (updater: Updater<number>) => void\n resetPageSize: (defaultState?: boolean) => void\n setPageCount: (updater: Updater<number>) => void\n getPageOptions: () => number[]\n getCanPreviousPage: () => boolean\n getCanNextPage: () => boolean\n previousPage: () => void\n nextPage: () => void\n getPrePaginationRowModel: () => RowModel<TData>\n getPaginationRowModel: () => RowModel<TData>\n _getPaginationRowModel?: () => RowModel<TData>\n getPageCount: () => number\n}\n\n//\n\nconst defaultPageIndex = 0\nconst defaultPageSize = 10\n\nconst getDefaultPaginationState = (): PaginationState => ({\n pageIndex: defaultPageIndex,\n pageSize: defaultPageSize,\n})\n\nexport const Pagination: TableFeature = {\n getInitialState: (state): PaginationTableState => {\n return {\n ...state,\n pagination: {\n ...getDefaultPaginationState(),\n ...state?.pagination,\n },\n }\n },\n\n getDefaultOptions: <TData extends RowData>(\n table: Table<TData>\n ): PaginationDefaultOptions => {\n return {\n onPaginationChange: makeStateUpdater('pagination', table),\n }\n },\n\n createTable: <TData extends RowData>(\n table: Table<TData>\n ): PaginationInstance<TData> => {\n let registered = false\n let queued = false\n\n return {\n _autoResetPageIndex: () => {\n if (!registered) {\n table._queue(() => {\n registered = true\n })\n return\n }\n\n if (\n table.options.autoResetAll ??\n table.options.autoResetPageIndex ??\n !table.options.manualPagination\n ) {\n if (queued) return\n queued = true\n table._queue(() => {\n table.resetPageIndex()\n queued = false\n })\n }\n },\n setPagination: updater => {\n const safeUpdater: Updater<PaginationState> = old => {\n let newState = functionalUpdate(updater, old)\n\n return newState\n }\n\n return table.options.onPaginationChange?.(safeUpdater)\n },\n resetPagination: defaultState => {\n table.setPagination(\n defaultState\n ? getDefaultPaginationState()\n : table.initialState.pagination ?? getDefaultPaginationState()\n )\n },\n setPageIndex: updater => {\n table.setPagination(old => {\n let pageIndex = functionalUpdate(updater, old.pageIndex)\n\n const maxPageIndex =\n typeof table.options.pageCount === 'undefined' ||\n table.options.pageCount === -1\n ? Number.MAX_SAFE_INTEGER\n : table.options.pageCount - 1\n\n pageIndex = Math.min(Math.max(0, pageIndex), maxPageIndex)\n\n return {\n ...old,\n pageIndex,\n }\n })\n },\n resetPageIndex: defaultState => {\n table.setPageIndex(\n defaultState\n ? defaultPageIndex\n : table.initialState?.pagination?.pageIndex ?? defaultPageIndex\n )\n },\n resetPageSize: defaultState => {\n table.setPageSize(\n defaultState\n ? defaultPageSize\n : table.initialState?.pagination?.pageSize ?? defaultPageSize\n )\n },\n setPageSize: updater => {\n table.setPagination(old => {\n const pageSize = Math.max(1, functionalUpdate(updater, old.pageSize))\n const topRowIndex = old.pageSize * old.pageIndex!\n const pageIndex = Math.floor(topRowIndex / pageSize)\n\n return {\n ...old,\n pageIndex,\n pageSize,\n }\n })\n },\n setPageCount: updater =>\n table.setPagination(old => {\n let newPageCount = functionalUpdate(\n updater,\n table.options.pageCount ?? -1\n )\n\n if (typeof newPageCount === 'number') {\n newPageCount = Math.max(-1, newPageCount)\n }\n\n return {\n ...old,\n pageCount: newPageCount,\n }\n }),\n\n getPageOptions: memo(\n () => [table.getPageCount()],\n pageCount => {\n let pageOptions: number[] = []\n if (pageCount && pageCount > 0) {\n pageOptions = [...new Array(pageCount)].fill(null).map((_, i) => i)\n }\n return pageOptions\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getPageOptions',\n debug: () => table.options.debugAll ?? table.options.debugTable,\n }\n ),\n\n getCanPreviousPage: () => table.getState().pagination.pageIndex > 0,\n\n getCanNextPage: () => {\n const { pageIndex } = table.getState().pagination\n\n const pageCount = table.getPageCount()\n\n if (pageCount === -1) {\n return true\n }\n\n if (pageCount === 0) {\n return false\n }\n\n return pageIndex < pageCount - 1\n },\n\n previousPage: () => {\n return table.setPageIndex(old => old - 1)\n },\n\n nextPage: () => {\n return table.setPageIndex(old => {\n return old + 1\n })\n },\n\n getPrePaginationRowModel: () => table.getExpandedRowModel(),\n getPaginationRowModel: () => {\n if (\n !table._getPaginationRowModel &&\n table.options.getPaginationRowModel\n ) {\n table._getPaginationRowModel =\n table.options.getPaginationRowModel(table)\n }\n\n if (table.options.manualPagination || !table._getPaginationRowModel) {\n return table.getPrePaginationRowModel()\n }\n\n return table._getPaginationRowModel()\n },\n\n getPageCount: () => {\n return (\n table.options.pageCount ??\n Math.ceil(\n table.getPrePaginationRowModel().rows.length /\n table.getState().pagination.pageSize\n )\n )\n },\n }\n },\n}\n"],"names":["defaultPageIndex","defaultPageSize","getDefaultPaginationState","pageIndex","pageSize","Pagination","getInitialState","state","pagination","getDefaultOptions","table","onPaginationChange","makeStateUpdater","createTable","registered","queued","_autoResetPageIndex","_queue","options","autoResetAll","autoResetPageIndex","manualPagination","resetPageIndex","setPagination","updater","safeUpdater","old","newState","functionalUpdate","resetPagination","defaultState","initialState","setPageIndex","maxPageIndex","pageCount","Number","MAX_SAFE_INTEGER","Math","min","max","resetPageSize","setPageSize","topRowIndex","floor","setPageCount","newPageCount","getPageOptions","memo","getPageCount","pageOptions","Array","fill","map","_","i","key","process","env","NODE_ENV","debug","debugAll","debugTable","getCanPreviousPage","getState","getCanNextPage","previousPage","nextPage","getPrePaginationRowModel","getExpandedRowModel","getPaginationRowModel","_getPaginationRowModel","ceil","rows","length"],"mappings":"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"}
@@ -15,11 +15,11 @@ Object.defineProperty(exports, '__esModule', { value: true });
15
15
  var utils = require('../utils.js');
16
16
 
17
17
  //
18
+
18
19
  const getDefaultPinningState = () => ({
19
20
  left: [],
20
21
  right: []
21
22
  });
22
-
23
23
  const Pinning = {
24
24
  getInitialState: state => {
25
25
  return {
@@ -37,39 +37,27 @@ const Pinning = {
37
37
  pin: position => {
38
38
  const columnIds = column.getLeafColumns().map(d => d.id).filter(Boolean);
39
39
  table.setColumnPinning(old => {
40
- var _old$left3, _old$right3;
41
-
42
40
  if (position === 'right') {
43
- var _old$left, _old$right;
44
-
45
41
  return {
46
- left: ((_old$left = old == null ? void 0 : old.left) != null ? _old$left : []).filter(d => !(columnIds != null && columnIds.includes(d))),
47
- right: [...((_old$right = old == null ? void 0 : old.right) != null ? _old$right : []).filter(d => !(columnIds != null && columnIds.includes(d))), ...columnIds]
42
+ left: ((old == null ? void 0 : old.left) ?? []).filter(d => !(columnIds != null && columnIds.includes(d))),
43
+ right: [...((old == null ? void 0 : old.right) ?? []).filter(d => !(columnIds != null && columnIds.includes(d))), ...columnIds]
48
44
  };
49
45
  }
50
-
51
46
  if (position === 'left') {
52
- var _old$left2, _old$right2;
53
-
54
47
  return {
55
- left: [...((_old$left2 = old == null ? void 0 : old.left) != null ? _old$left2 : []).filter(d => !(columnIds != null && columnIds.includes(d))), ...columnIds],
56
- right: ((_old$right2 = old == null ? void 0 : old.right) != null ? _old$right2 : []).filter(d => !(columnIds != null && columnIds.includes(d)))
48
+ left: [...((old == null ? void 0 : old.left) ?? []).filter(d => !(columnIds != null && columnIds.includes(d))), ...columnIds],
49
+ right: ((old == null ? void 0 : old.right) ?? []).filter(d => !(columnIds != null && columnIds.includes(d)))
57
50
  };
58
51
  }
59
-
60
52
  return {
61
- left: ((_old$left3 = old == null ? void 0 : old.left) != null ? _old$left3 : []).filter(d => !(columnIds != null && columnIds.includes(d))),
62
- right: ((_old$right3 = old == null ? void 0 : old.right) != null ? _old$right3 : []).filter(d => !(columnIds != null && columnIds.includes(d)))
53
+ left: ((old == null ? void 0 : old.left) ?? []).filter(d => !(columnIds != null && columnIds.includes(d))),
54
+ right: ((old == null ? void 0 : old.right) ?? []).filter(d => !(columnIds != null && columnIds.includes(d)))
63
55
  };
64
56
  });
65
57
  },
66
58
  getCanPin: () => {
67
59
  const leafColumns = column.getLeafColumns();
68
- return leafColumns.some(d => {
69
- var _d$columnDef$enablePi, _table$options$enable;
70
-
71
- return ((_d$columnDef$enablePi = d.columnDef.enablePinning) != null ? _d$columnDef$enablePi : true) && ((_table$options$enable = table.options.enablePinning) != null ? _table$options$enable : true);
72
- });
60
+ return leafColumns.some(d => (d.columnDef.enablePinning ?? true) && (table.options.enablePinning ?? true));
73
61
  },
74
62
  getIsPinned: () => {
75
63
  const leafColumnIds = column.getLeafColumns().map(d => d.id);
@@ -82,51 +70,40 @@ const Pinning = {
82
70
  return isLeft ? 'left' : isRight ? 'right' : false;
83
71
  },
84
72
  getPinnedIndex: () => {
85
- var _table$getState$colum, _table$getState$colum2, _table$getState$colum3;
86
-
73
+ var _table$getState$colum, _table$getState$colum2;
87
74
  const position = column.getIsPinned();
88
- return position ? (_table$getState$colum = (_table$getState$colum2 = table.getState().columnPinning) == null ? void 0 : (_table$getState$colum3 = _table$getState$colum2[position]) == null ? void 0 : _table$getState$colum3.indexOf(column.id)) != null ? _table$getState$colum : -1 : 0;
75
+ return position ? ((_table$getState$colum = table.getState().columnPinning) == null ? void 0 : (_table$getState$colum2 = _table$getState$colum[position]) == null ? void 0 : _table$getState$colum2.indexOf(column.id)) ?? -1 : 0;
89
76
  }
90
77
  };
91
78
  },
92
79
  createRow: (row, table) => {
93
80
  return {
94
81
  getCenterVisibleCells: utils.memo(() => [row._getAllVisibleCells(), table.getState().columnPinning.left, table.getState().columnPinning.right], (allCells, left, right) => {
95
- const leftAndRight = [...(left != null ? left : []), ...(right != null ? right : [])];
82
+ const leftAndRight = [...(left ?? []), ...(right ?? [])];
96
83
  return allCells.filter(d => !leftAndRight.includes(d.column.id));
97
84
  }, {
98
85
  key: process.env.NODE_ENV === 'production' && 'row.getCenterVisibleCells',
99
- debug: () => {
100
- var _table$options$debugA;
101
-
102
- return (_table$options$debugA = table.options.debugAll) != null ? _table$options$debugA : table.options.debugRows;
103
- }
86
+ debug: () => table.options.debugAll ?? table.options.debugRows
104
87
  }),
105
88
  getLeftVisibleCells: utils.memo(() => [row._getAllVisibleCells(), table.getState().columnPinning.left,,], (allCells, left) => {
106
- const cells = (left != null ? left : []).map(columnId => allCells.find(cell => cell.column.id === columnId)).filter(Boolean).map(d => ({ ...d,
89
+ const cells = (left ?? []).map(columnId => allCells.find(cell => cell.column.id === columnId)).filter(Boolean).map(d => ({
90
+ ...d,
107
91
  position: 'left'
108
92
  }));
109
93
  return cells;
110
94
  }, {
111
95
  key: process.env.NODE_ENV === 'production' && 'row.getLeftVisibleCells',
112
- debug: () => {
113
- var _table$options$debugA2;
114
-
115
- return (_table$options$debugA2 = table.options.debugAll) != null ? _table$options$debugA2 : table.options.debugRows;
116
- }
96
+ debug: () => table.options.debugAll ?? table.options.debugRows
117
97
  }),
118
98
  getRightVisibleCells: utils.memo(() => [row._getAllVisibleCells(), table.getState().columnPinning.right], (allCells, right) => {
119
- const cells = (right != null ? right : []).map(columnId => allCells.find(cell => cell.column.id === columnId)).filter(Boolean).map(d => ({ ...d,
99
+ const cells = (right ?? []).map(columnId => allCells.find(cell => cell.column.id === columnId)).filter(Boolean).map(d => ({
100
+ ...d,
120
101
  position: 'right'
121
102
  }));
122
103
  return cells;
123
104
  }, {
124
105
  key: process.env.NODE_ENV === 'production' && 'row.getRightVisibleCells',
125
- debug: () => {
126
- var _table$options$debugA3;
127
-
128
- return (_table$options$debugA3 = table.options.debugAll) != null ? _table$options$debugA3 : table.options.debugRows;
129
- }
106
+ debug: () => table.options.debugAll ?? table.options.debugRows
130
107
  })
131
108
  };
132
109
  },
@@ -134,53 +111,36 @@ const Pinning = {
134
111
  return {
135
112
  setColumnPinning: updater => table.options.onColumnPinningChange == null ? void 0 : table.options.onColumnPinningChange(updater),
136
113
  resetColumnPinning: defaultState => {
137
- var _table$initialState$c, _table$initialState;
138
-
139
- return table.setColumnPinning(defaultState ? getDefaultPinningState() : (_table$initialState$c = (_table$initialState = table.initialState) == null ? void 0 : _table$initialState.columnPinning) != null ? _table$initialState$c : getDefaultPinningState());
114
+ var _table$initialState;
115
+ return table.setColumnPinning(defaultState ? getDefaultPinningState() : ((_table$initialState = table.initialState) == null ? void 0 : _table$initialState.columnPinning) ?? getDefaultPinningState());
140
116
  },
141
117
  getIsSomeColumnsPinned: position => {
142
118
  var _pinningState$positio;
143
-
144
119
  const pinningState = table.getState().columnPinning;
145
-
146
120
  if (!position) {
147
121
  var _pinningState$left, _pinningState$right;
148
-
149
122
  return Boolean(((_pinningState$left = pinningState.left) == null ? void 0 : _pinningState$left.length) || ((_pinningState$right = pinningState.right) == null ? void 0 : _pinningState$right.length));
150
123
  }
151
-
152
124
  return Boolean((_pinningState$positio = pinningState[position]) == null ? void 0 : _pinningState$positio.length);
153
125
  },
154
126
  getLeftLeafColumns: utils.memo(() => [table.getAllLeafColumns(), table.getState().columnPinning.left], (allColumns, left) => {
155
- return (left != null ? left : []).map(columnId => allColumns.find(column => column.id === columnId)).filter(Boolean);
127
+ return (left ?? []).map(columnId => allColumns.find(column => column.id === columnId)).filter(Boolean);
156
128
  }, {
157
129
  key: process.env.NODE_ENV === 'development' && 'getLeftLeafColumns',
158
- debug: () => {
159
- var _table$options$debugA4;
160
-
161
- return (_table$options$debugA4 = table.options.debugAll) != null ? _table$options$debugA4 : table.options.debugColumns;
162
- }
130
+ debug: () => table.options.debugAll ?? table.options.debugColumns
163
131
  }),
164
132
  getRightLeafColumns: utils.memo(() => [table.getAllLeafColumns(), table.getState().columnPinning.right], (allColumns, right) => {
165
- return (right != null ? right : []).map(columnId => allColumns.find(column => column.id === columnId)).filter(Boolean);
133
+ return (right ?? []).map(columnId => allColumns.find(column => column.id === columnId)).filter(Boolean);
166
134
  }, {
167
135
  key: process.env.NODE_ENV === 'development' && 'getRightLeafColumns',
168
- debug: () => {
169
- var _table$options$debugA5;
170
-
171
- return (_table$options$debugA5 = table.options.debugAll) != null ? _table$options$debugA5 : table.options.debugColumns;
172
- }
136
+ debug: () => table.options.debugAll ?? table.options.debugColumns
173
137
  }),
174
138
  getCenterLeafColumns: utils.memo(() => [table.getAllLeafColumns(), table.getState().columnPinning.left, table.getState().columnPinning.right], (allColumns, left, right) => {
175
- const leftAndRight = [...(left != null ? left : []), ...(right != null ? right : [])];
139
+ const leftAndRight = [...(left ?? []), ...(right ?? [])];
176
140
  return allColumns.filter(d => !leftAndRight.includes(d.id));
177
141
  }, {
178
142
  key: process.env.NODE_ENV === 'development' && 'getCenterLeafColumns',
179
- debug: () => {
180
- var _table$options$debugA6;
181
-
182
- return (_table$options$debugA6 = table.options.debugAll) != null ? _table$options$debugA6 : table.options.debugColumns;
183
- }
143
+ debug: () => table.options.debugAll ?? table.options.debugColumns
184
144
  })
185
145
  };
186
146
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Pinning.js","sources":["../../../src/features/Pinning.ts"],"sourcesContent":["import { TableFeature } from '../core/table'\nimport {\n OnChangeFn,\n Updater,\n Table,\n Column,\n Row,\n Cell,\n RowData,\n} from '../types'\nimport { makeStateUpdater, memo } from '../utils'\n\nexport type ColumnPinningPosition = false | 'left' | 'right'\n\nexport type ColumnPinningState = {\n left?: string[]\n right?: string[]\n}\n\nexport type ColumnPinningTableState = {\n columnPinning: ColumnPinningState\n}\n\nexport type ColumnPinningOptions = {\n onColumnPinningChange?: OnChangeFn<ColumnPinningState>\n enablePinning?: boolean\n}\n\nexport type ColumnPinningDefaultOptions = {\n onColumnPinningChange: OnChangeFn<ColumnPinningState>\n}\n\nexport type ColumnPinningColumnDef = {\n enablePinning?: boolean\n}\n\nexport type ColumnPinningColumn = {\n getCanPin: () => boolean\n getPinnedIndex: () => number\n getIsPinned: () => ColumnPinningPosition\n pin: (position: ColumnPinningPosition) => void\n}\n\nexport type ColumnPinningRow<TData extends RowData> = {\n getLeftVisibleCells: () => Cell<TData, unknown>[]\n getCenterVisibleCells: () => Cell<TData, unknown>[]\n getRightVisibleCells: () => Cell<TData, unknown>[]\n}\n\nexport type ColumnPinningInstance<TData extends RowData> = {\n setColumnPinning: (updater: Updater<ColumnPinningState>) => void\n resetColumnPinning: (defaultState?: boolean) => void\n getIsSomeColumnsPinned: (position?: ColumnPinningPosition) => boolean\n getLeftLeafColumns: () => Column<TData, unknown>[]\n getRightLeafColumns: () => Column<TData, unknown>[]\n getCenterLeafColumns: () => Column<TData, unknown>[]\n}\n\n//\n\nconst getDefaultPinningState = (): ColumnPinningState => ({\n left: [],\n right: [],\n})\n\nexport const Pinning: TableFeature = {\n getInitialState: (state): ColumnPinningTableState => {\n return {\n columnPinning: getDefaultPinningState(),\n ...state,\n }\n },\n\n getDefaultOptions: <TData extends RowData>(\n table: Table<TData>\n ): ColumnPinningDefaultOptions => {\n return {\n onColumnPinningChange: makeStateUpdater('columnPinning', table),\n }\n },\n\n createColumn: <TData extends RowData, TValue>(\n column: Column<TData, TValue>,\n table: Table<TData>\n ): ColumnPinningColumn => {\n return {\n pin: position => {\n const columnIds = column\n .getLeafColumns()\n .map(d => d.id)\n .filter(Boolean) as string[]\n\n table.setColumnPinning(old => {\n if (position === 'right') {\n return {\n left: (old?.left ?? []).filter(d => !columnIds?.includes(d)),\n right: [\n ...(old?.right ?? []).filter(d => !columnIds?.includes(d)),\n ...columnIds,\n ],\n }\n }\n\n if (position === 'left') {\n return {\n left: [\n ...(old?.left ?? []).filter(d => !columnIds?.includes(d)),\n ...columnIds,\n ],\n right: (old?.right ?? []).filter(d => !columnIds?.includes(d)),\n }\n }\n\n return {\n left: (old?.left ?? []).filter(d => !columnIds?.includes(d)),\n right: (old?.right ?? []).filter(d => !columnIds?.includes(d)),\n }\n })\n },\n\n getCanPin: () => {\n const leafColumns = column.getLeafColumns()\n\n return leafColumns.some(\n d =>\n (d.columnDef.enablePinning ?? true) &&\n (table.options.enablePinning ?? true)\n )\n },\n\n getIsPinned: () => {\n const leafColumnIds = column.getLeafColumns().map(d => d.id)\n\n const { left, right } = table.getState().columnPinning\n\n const isLeft = leafColumnIds.some(d => left?.includes(d))\n const isRight = leafColumnIds.some(d => right?.includes(d))\n\n return isLeft ? 'left' : isRight ? 'right' : false\n },\n\n getPinnedIndex: () => {\n const position = column.getIsPinned()\n\n return position\n ? table.getState().columnPinning?.[position]?.indexOf(column.id) ?? -1\n : 0\n },\n }\n },\n\n createRow: <TData extends RowData>(\n row: Row<TData>,\n table: Table<TData>\n ): ColumnPinningRow<TData> => {\n return {\n getCenterVisibleCells: memo(\n () => [\n row._getAllVisibleCells(),\n table.getState().columnPinning.left,\n table.getState().columnPinning.right,\n ],\n (allCells, left, right) => {\n const leftAndRight: string[] = [...(left ?? []), ...(right ?? [])]\n\n return allCells.filter(d => !leftAndRight.includes(d.column.id))\n },\n {\n key:\n process.env.NODE_ENV === 'production' &&\n 'row.getCenterVisibleCells',\n debug: () => table.options.debugAll ?? table.options.debugRows,\n }\n ),\n getLeftVisibleCells: memo(\n () => [\n row._getAllVisibleCells(),\n table.getState().columnPinning.left,\n ,\n ],\n (allCells, left) => {\n const cells = (left ?? [])\n .map(\n columnId => allCells.find(cell => cell.column.id === columnId)!\n )\n .filter(Boolean)\n .map(d => ({ ...d, position: 'left' } as Cell<TData, unknown>))\n\n return cells\n },\n {\n key:\n process.env.NODE_ENV === 'production' && 'row.getLeftVisibleCells',\n debug: () => table.options.debugAll ?? table.options.debugRows,\n }\n ),\n getRightVisibleCells: memo(\n () => [row._getAllVisibleCells(), table.getState().columnPinning.right],\n (allCells, right) => {\n const cells = (right ?? [])\n .map(\n columnId => allCells.find(cell => cell.column.id === columnId)!\n )\n .filter(Boolean)\n .map(d => ({ ...d, position: 'right' } as Cell<TData, unknown>))\n\n return cells\n },\n {\n key:\n process.env.NODE_ENV === 'production' && 'row.getRightVisibleCells',\n debug: () => table.options.debugAll ?? table.options.debugRows,\n }\n ),\n }\n },\n\n createTable: <TData extends RowData>(\n table: Table<TData>\n ): ColumnPinningInstance<TData> => {\n return {\n setColumnPinning: updater =>\n table.options.onColumnPinningChange?.(updater),\n\n resetColumnPinning: defaultState =>\n table.setColumnPinning(\n defaultState\n ? getDefaultPinningState()\n : table.initialState?.columnPinning ?? getDefaultPinningState()\n ),\n\n getIsSomeColumnsPinned: position => {\n const pinningState = table.getState().columnPinning\n\n if (!position) {\n return Boolean(\n pinningState.left?.length || pinningState.right?.length\n )\n }\n return Boolean(pinningState[position]?.length)\n },\n\n getLeftLeafColumns: memo(\n () => [table.getAllLeafColumns(), table.getState().columnPinning.left],\n (allColumns, left) => {\n return (left ?? [])\n .map(columnId => allColumns.find(column => column.id === columnId)!)\n .filter(Boolean)\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getLeftLeafColumns',\n debug: () => table.options.debugAll ?? table.options.debugColumns,\n }\n ),\n\n getRightLeafColumns: memo(\n () => [table.getAllLeafColumns(), table.getState().columnPinning.right],\n (allColumns, right) => {\n return (right ?? [])\n .map(columnId => allColumns.find(column => column.id === columnId)!)\n .filter(Boolean)\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getRightLeafColumns',\n debug: () => table.options.debugAll ?? table.options.debugColumns,\n }\n ),\n\n getCenterLeafColumns: memo(\n () => [\n table.getAllLeafColumns(),\n table.getState().columnPinning.left,\n table.getState().columnPinning.right,\n ],\n (allColumns, left, right) => {\n const leftAndRight: string[] = [...(left ?? []), ...(right ?? [])]\n\n return allColumns.filter(d => !leftAndRight.includes(d.id))\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getCenterLeafColumns',\n debug: () => table.options.debugAll ?? table.options.debugColumns,\n }\n ),\n }\n },\n}\n"],"names":["getDefaultPinningState","left","right","Pinning","getInitialState","state","columnPinning","getDefaultOptions","table","onColumnPinningChange","makeStateUpdater","createColumn","column","pin","position","columnIds","getLeafColumns","map","d","id","filter","Boolean","setColumnPinning","old","includes","getCanPin","leafColumns","some","columnDef","enablePinning","options","getIsPinned","leafColumnIds","getState","isLeft","isRight","getPinnedIndex","indexOf","createRow","row","getCenterVisibleCells","memo","_getAllVisibleCells","allCells","leftAndRight","key","process","env","NODE_ENV","debug","debugAll","debugRows","getLeftVisibleCells","cells","columnId","find","cell","getRightVisibleCells","createTable","updater","resetColumnPinning","defaultState","initialState","getIsSomeColumnsPinned","pinningState","length","getLeftLeafColumns","getAllLeafColumns","allColumns","debugColumns","getRightLeafColumns","getCenterLeafColumns"],"mappings":"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"}
1
+ {"version":3,"file":"Pinning.js","sources":["../../../src/features/Pinning.ts"],"sourcesContent":["import { TableFeature } from '../core/table'\nimport {\n OnChangeFn,\n Updater,\n Table,\n Column,\n Row,\n Cell,\n RowData,\n} from '../types'\nimport { makeStateUpdater, memo } from '../utils'\n\nexport type ColumnPinningPosition = false | 'left' | 'right'\n\nexport type ColumnPinningState = {\n left?: string[]\n right?: string[]\n}\n\nexport type ColumnPinningTableState = {\n columnPinning: ColumnPinningState\n}\n\nexport type ColumnPinningOptions = {\n onColumnPinningChange?: OnChangeFn<ColumnPinningState>\n enablePinning?: boolean\n}\n\nexport type ColumnPinningDefaultOptions = {\n onColumnPinningChange: OnChangeFn<ColumnPinningState>\n}\n\nexport type ColumnPinningColumnDef = {\n enablePinning?: boolean\n}\n\nexport type ColumnPinningColumn = {\n getCanPin: () => boolean\n getPinnedIndex: () => number\n getIsPinned: () => ColumnPinningPosition\n pin: (position: ColumnPinningPosition) => void\n}\n\nexport type ColumnPinningRow<TData extends RowData> = {\n getLeftVisibleCells: () => Cell<TData, unknown>[]\n getCenterVisibleCells: () => Cell<TData, unknown>[]\n getRightVisibleCells: () => Cell<TData, unknown>[]\n}\n\nexport type ColumnPinningInstance<TData extends RowData> = {\n setColumnPinning: (updater: Updater<ColumnPinningState>) => void\n resetColumnPinning: (defaultState?: boolean) => void\n getIsSomeColumnsPinned: (position?: ColumnPinningPosition) => boolean\n getLeftLeafColumns: () => Column<TData, unknown>[]\n getRightLeafColumns: () => Column<TData, unknown>[]\n getCenterLeafColumns: () => Column<TData, unknown>[]\n}\n\n//\n\nconst getDefaultPinningState = (): ColumnPinningState => ({\n left: [],\n right: [],\n})\n\nexport const Pinning: TableFeature = {\n getInitialState: (state): ColumnPinningTableState => {\n return {\n columnPinning: getDefaultPinningState(),\n ...state,\n }\n },\n\n getDefaultOptions: <TData extends RowData>(\n table: Table<TData>\n ): ColumnPinningDefaultOptions => {\n return {\n onColumnPinningChange: makeStateUpdater('columnPinning', table),\n }\n },\n\n createColumn: <TData extends RowData, TValue>(\n column: Column<TData, TValue>,\n table: Table<TData>\n ): ColumnPinningColumn => {\n return {\n pin: position => {\n const columnIds = column\n .getLeafColumns()\n .map(d => d.id)\n .filter(Boolean) as string[]\n\n table.setColumnPinning(old => {\n if (position === 'right') {\n return {\n left: (old?.left ?? []).filter(d => !columnIds?.includes(d)),\n right: [\n ...(old?.right ?? []).filter(d => !columnIds?.includes(d)),\n ...columnIds,\n ],\n }\n }\n\n if (position === 'left') {\n return {\n left: [\n ...(old?.left ?? []).filter(d => !columnIds?.includes(d)),\n ...columnIds,\n ],\n right: (old?.right ?? []).filter(d => !columnIds?.includes(d)),\n }\n }\n\n return {\n left: (old?.left ?? []).filter(d => !columnIds?.includes(d)),\n right: (old?.right ?? []).filter(d => !columnIds?.includes(d)),\n }\n })\n },\n\n getCanPin: () => {\n const leafColumns = column.getLeafColumns()\n\n return leafColumns.some(\n d =>\n (d.columnDef.enablePinning ?? true) &&\n (table.options.enablePinning ?? true)\n )\n },\n\n getIsPinned: () => {\n const leafColumnIds = column.getLeafColumns().map(d => d.id)\n\n const { left, right } = table.getState().columnPinning\n\n const isLeft = leafColumnIds.some(d => left?.includes(d))\n const isRight = leafColumnIds.some(d => right?.includes(d))\n\n return isLeft ? 'left' : isRight ? 'right' : false\n },\n\n getPinnedIndex: () => {\n const position = column.getIsPinned()\n\n return position\n ? table.getState().columnPinning?.[position]?.indexOf(column.id) ?? -1\n : 0\n },\n }\n },\n\n createRow: <TData extends RowData>(\n row: Row<TData>,\n table: Table<TData>\n ): ColumnPinningRow<TData> => {\n return {\n getCenterVisibleCells: memo(\n () => [\n row._getAllVisibleCells(),\n table.getState().columnPinning.left,\n table.getState().columnPinning.right,\n ],\n (allCells, left, right) => {\n const leftAndRight: string[] = [...(left ?? []), ...(right ?? [])]\n\n return allCells.filter(d => !leftAndRight.includes(d.column.id))\n },\n {\n key:\n process.env.NODE_ENV === 'production' &&\n 'row.getCenterVisibleCells',\n debug: () => table.options.debugAll ?? table.options.debugRows,\n }\n ),\n getLeftVisibleCells: memo(\n () => [\n row._getAllVisibleCells(),\n table.getState().columnPinning.left,\n ,\n ],\n (allCells, left) => {\n const cells = (left ?? [])\n .map(\n columnId => allCells.find(cell => cell.column.id === columnId)!\n )\n .filter(Boolean)\n .map(d => ({ ...d, position: 'left' } as Cell<TData, unknown>))\n\n return cells\n },\n {\n key:\n process.env.NODE_ENV === 'production' && 'row.getLeftVisibleCells',\n debug: () => table.options.debugAll ?? table.options.debugRows,\n }\n ),\n getRightVisibleCells: memo(\n () => [row._getAllVisibleCells(), table.getState().columnPinning.right],\n (allCells, right) => {\n const cells = (right ?? [])\n .map(\n columnId => allCells.find(cell => cell.column.id === columnId)!\n )\n .filter(Boolean)\n .map(d => ({ ...d, position: 'right' } as Cell<TData, unknown>))\n\n return cells\n },\n {\n key:\n process.env.NODE_ENV === 'production' && 'row.getRightVisibleCells',\n debug: () => table.options.debugAll ?? table.options.debugRows,\n }\n ),\n }\n },\n\n createTable: <TData extends RowData>(\n table: Table<TData>\n ): ColumnPinningInstance<TData> => {\n return {\n setColumnPinning: updater =>\n table.options.onColumnPinningChange?.(updater),\n\n resetColumnPinning: defaultState =>\n table.setColumnPinning(\n defaultState\n ? getDefaultPinningState()\n : table.initialState?.columnPinning ?? getDefaultPinningState()\n ),\n\n getIsSomeColumnsPinned: position => {\n const pinningState = table.getState().columnPinning\n\n if (!position) {\n return Boolean(\n pinningState.left?.length || pinningState.right?.length\n )\n }\n return Boolean(pinningState[position]?.length)\n },\n\n getLeftLeafColumns: memo(\n () => [table.getAllLeafColumns(), table.getState().columnPinning.left],\n (allColumns, left) => {\n return (left ?? [])\n .map(columnId => allColumns.find(column => column.id === columnId)!)\n .filter(Boolean)\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getLeftLeafColumns',\n debug: () => table.options.debugAll ?? table.options.debugColumns,\n }\n ),\n\n getRightLeafColumns: memo(\n () => [table.getAllLeafColumns(), table.getState().columnPinning.right],\n (allColumns, right) => {\n return (right ?? [])\n .map(columnId => allColumns.find(column => column.id === columnId)!)\n .filter(Boolean)\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getRightLeafColumns',\n debug: () => table.options.debugAll ?? table.options.debugColumns,\n }\n ),\n\n getCenterLeafColumns: memo(\n () => [\n table.getAllLeafColumns(),\n table.getState().columnPinning.left,\n table.getState().columnPinning.right,\n ],\n (allColumns, left, right) => {\n const leftAndRight: string[] = [...(left ?? []), ...(right ?? [])]\n\n return allColumns.filter(d => !leftAndRight.includes(d.id))\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getCenterLeafColumns',\n debug: () => table.options.debugAll ?? table.options.debugColumns,\n }\n ),\n }\n },\n}\n"],"names":["getDefaultPinningState","left","right","Pinning","getInitialState","state","columnPinning","getDefaultOptions","table","onColumnPinningChange","makeStateUpdater","createColumn","column","pin","position","columnIds","getLeafColumns","map","d","id","filter","Boolean","setColumnPinning","old","includes","getCanPin","leafColumns","some","columnDef","enablePinning","options","getIsPinned","leafColumnIds","getState","isLeft","isRight","getPinnedIndex","indexOf","createRow","row","getCenterVisibleCells","memo","_getAllVisibleCells","allCells","leftAndRight","key","process","env","NODE_ENV","debug","debugAll","debugRows","getLeftVisibleCells","cells","columnId","find","cell","getRightVisibleCells","createTable","updater","resetColumnPinning","defaultState","initialState","getIsSomeColumnsPinned","pinningState","length","getLeftLeafColumns","getAllLeafColumns","allColumns","debugColumns","getRightLeafColumns","getCenterLeafColumns"],"mappings":"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"}