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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (93) hide show
  1. package/build/cjs/core/cell.js +38 -0
  2. package/build/cjs/core/cell.js.map +1 -0
  3. package/build/cjs/core/column.js +88 -0
  4. package/build/cjs/core/column.js.map +1 -0
  5. package/build/cjs/{features/Headers.js → core/headers.js} +54 -66
  6. package/build/cjs/core/headers.js.map +1 -0
  7. package/build/cjs/core/instance.js +255 -0
  8. package/build/cjs/core/instance.js.map +1 -0
  9. package/build/cjs/core/row.js +77 -0
  10. package/build/cjs/core/row.js.map +1 -0
  11. package/build/cjs/features/ColumnSizing.js.map +1 -1
  12. package/build/cjs/features/Expanding.js.map +1 -1
  13. package/build/cjs/features/Filters.js +1 -1
  14. package/build/cjs/features/Filters.js.map +1 -1
  15. package/build/cjs/features/Grouping.js.map +1 -1
  16. package/build/cjs/features/Ordering.js.map +1 -1
  17. package/build/cjs/features/Pagination.js.map +1 -1
  18. package/build/cjs/features/Pinning.js +3 -3
  19. package/build/cjs/features/Pinning.js.map +1 -1
  20. package/build/cjs/features/RowSelection.js.map +1 -1
  21. package/build/cjs/features/Sorting.js.map +1 -1
  22. package/build/cjs/features/Visibility.js.map +1 -1
  23. package/build/cjs/index.js +9 -5
  24. package/build/cjs/index.js.map +1 -1
  25. package/build/cjs/utils/filterRowsUtils.js +23 -21
  26. package/build/cjs/utils/filterRowsUtils.js.map +1 -1
  27. package/build/cjs/utils/getCoreRowModel.js +9 -8
  28. package/build/cjs/utils/getCoreRowModel.js.map +1 -1
  29. package/build/cjs/utils/getGroupedRowModel.js +12 -11
  30. package/build/cjs/utils/getGroupedRowModel.js.map +1 -1
  31. package/build/esm/index.js +656 -761
  32. package/build/esm/index.js.map +1 -1
  33. package/build/stats-html.html +1 -1
  34. package/build/stats-react.json +391 -368
  35. package/build/types/core/cell.d.ts +9 -0
  36. package/build/types/{features/Columns.d.ts → core/column.d.ts} +3 -17
  37. package/build/types/{features/Headers.d.ts → core/headers.d.ts} +26 -11
  38. package/build/types/core/instance.d.ts +57 -0
  39. package/build/types/core/row.d.ts +15 -0
  40. package/build/types/features/ColumnSizing.d.ts +2 -1
  41. package/build/types/features/Expanding.d.ts +2 -1
  42. package/build/types/features/Filters.d.ts +2 -1
  43. package/build/types/features/Grouping.d.ts +2 -1
  44. package/build/types/features/Ordering.d.ts +2 -1
  45. package/build/types/features/Pagination.d.ts +2 -1
  46. package/build/types/features/Pinning.d.ts +2 -1
  47. package/build/types/features/RowSelection.d.ts +2 -1
  48. package/build/types/features/Sorting.d.ts +2 -1
  49. package/build/types/features/Visibility.d.ts +2 -1
  50. package/build/types/index.d.ts +4 -2
  51. package/build/types/sortingFns.d.ts +4 -4
  52. package/build/types/types.d.ts +10 -53
  53. package/build/umd/index.development.js +660 -759
  54. package/build/umd/index.development.js.map +1 -1
  55. package/build/umd/index.production.js +1 -1
  56. package/build/umd/index.production.js.map +1 -1
  57. package/package.json +1 -1
  58. package/src/core/cell.ts +47 -0
  59. package/src/core/column.ts +148 -0
  60. package/src/{features/Headers.ts → core/headers.ts} +98 -99
  61. package/src/core/instance.ts +361 -0
  62. package/src/core/row.ts +85 -0
  63. package/src/features/ColumnSizing.ts +1 -1
  64. package/src/features/Expanding.ts +1 -2
  65. package/src/features/Filters.ts +2 -2
  66. package/src/features/Grouping.ts +1 -1
  67. package/src/features/Ordering.ts +1 -1
  68. package/src/features/Pagination.ts +1 -1
  69. package/src/features/Pinning.ts +8 -4
  70. package/src/features/RowSelection.ts +1 -1
  71. package/src/features/Sorting.ts +1 -1
  72. package/src/features/Visibility.ts +1 -1
  73. package/src/index.ts +4 -8
  74. package/src/types.ts +9 -61
  75. package/src/utils/filterRowsUtils.ts +4 -2
  76. package/src/utils/getCoreRowModel.ts +4 -2
  77. package/src/utils/getGroupedRowModel.ts +6 -6
  78. package/build/cjs/core.js +0 -168
  79. package/build/cjs/core.js.map +0 -1
  80. package/build/cjs/features/Cells.js +0 -101
  81. package/build/cjs/features/Cells.js.map +0 -1
  82. package/build/cjs/features/Columns.js +0 -191
  83. package/build/cjs/features/Columns.js.map +0 -1
  84. package/build/cjs/features/Headers.js.map +0 -1
  85. package/build/cjs/features/Rows.js +0 -94
  86. package/build/cjs/features/Rows.js.map +0 -1
  87. package/build/types/core.d.ts +0 -30
  88. package/build/types/features/Cells.d.ts +0 -13
  89. package/build/types/features/Rows.d.ts +0 -28
  90. package/src/core.ts +0 -246
  91. package/src/features/Cells.ts +0 -128
  92. package/src/features/Columns.ts +0 -293
  93. package/src/features/Rows.ts +0 -142
@@ -1 +1 @@
1
- {"version":3,"file":"Ordering.js","sources":["../../../src/features/Ordering.ts"],"sourcesContent":["import { makeStateUpdater, memo } from '../utils'\n\nimport {\n TableInstance,\n OnChangeFn,\n Updater,\n Column,\n TableGenerics,\n TableFeature,\n} from '../types'\n\nimport { Grouping, orderColumns } from './Grouping'\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<TGenerics extends TableGenerics> = {\n setColumnOrder: (updater: Updater<ColumnOrderState>) => void\n resetColumnOrder: (defaultState?: boolean) => void\n _getOrderColumnsFn: () => (\n columns: Column<TGenerics>[]\n ) => Column<TGenerics>[]\n}\n\n//\n\nexport const Ordering: TableFeature = {\n getInitialState: (state): ColumnOrderTableState => {\n return {\n columnOrder: [],\n ...state,\n }\n },\n\n getDefaultOptions: <TGenerics extends TableGenerics>(\n instance: TableInstance<TGenerics>\n ): ColumnOrderDefaultOptions => {\n return {\n onColumnOrderChange: makeStateUpdater('columnOrder', instance),\n }\n },\n\n createInstance: <TGenerics extends TableGenerics>(\n instance: TableInstance<TGenerics>\n ): ColumnOrderInstance<TGenerics> => {\n return {\n setColumnOrder: updater =>\n instance.options.onColumnOrderChange?.(updater),\n resetColumnOrder: defaultState => {\n instance.setColumnOrder(\n defaultState ? [] : instance.initialState.columnOrder ?? []\n )\n },\n _getOrderColumnsFn: memo(\n () => [\n instance.getState().columnOrder,\n instance.getState().grouping,\n instance.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<TGenerics>[] = []\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: () => instance.options.debugAll ?? instance.options.debugTable,\n }\n ),\n }\n },\n}\n"],"names":["Ordering","getInitialState","state","columnOrder","getDefaultOptions","instance","onColumnOrderChange","makeStateUpdater","createInstance","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":";;;;;;;;;;;;;;;;;AAmCA;AAEO,MAAMA,QAAsB,GAAG;AACpCC,EAAAA,eAAe,EAAGC,KAAD,IAAkC;AACjD,IAAO,OAAA;AACLC,MAAAA,WAAW,EAAE,EADR;AAEL,MAAGD,GAAAA,KAAAA;AAFE,KAAP,CAAA;AAID,GANmC;AAQpCE,EAAAA,iBAAiB,EACfC,QADiB,IAEa;AAC9B,IAAO,OAAA;AACLC,MAAAA,mBAAmB,EAAEC,sBAAgB,CAAC,aAAD,EAAgBF,QAAhB,CAAA;AADhC,KAAP,CAAA;AAGD,GAdmC;AAgBpCG,EAAAA,cAAc,EACZH,QADc,IAEqB;AACnC,IAAO,OAAA;AACLI,MAAAA,cAAc,EAAEC,OAAO,IACrBL,QAAQ,CAACM,OAAT,CAAiBL,mBADI,IAAA,IAAA,GAAA,KAAA,CAAA,GACrBD,QAAQ,CAACM,OAAT,CAAiBL,mBAAjB,CAAuCI,OAAvC,CAFG;AAGLE,MAAAA,gBAAgB,EAAEC,YAAY,IAAI;AAAA,QAAA,IAAA,qBAAA,CAAA;;AAChCR,QAAAA,QAAQ,CAACI,cAAT,CACEI,YAAY,GAAG,EAAH,GAAQR,CAAAA,qBAAAA,GAAAA,QAAQ,CAACS,YAAT,CAAsBX,WAA9B,oCAA6C,EAD3D,CAAA,CAAA;AAGD,OAPI;AAQLY,MAAAA,kBAAkB,EAAEC,UAAI,CACtB,MAAM,CACJX,QAAQ,CAACY,QAAT,EAAoBd,CAAAA,WADhB,EAEJE,QAAQ,CAACY,QAAT,EAAA,CAAoBC,QAFhB,EAGJb,QAAQ,CAACM,OAAT,CAAiBQ,iBAHb,CADgB,EAMtB,CAAChB,WAAD,EAAce,QAAd,EAAwBC,iBAAxB,KAA8CC,OAAO,IAAI;AACvD;AACA;AACA,QAAA,IAAIC,cAAmC,GAAG,EAA1C,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,CAAA,CAAkC,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;AACEe,QAAAA,GAAG,EAAEC,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,aAAzB,IAA0C,mBADjD;;AAAA,OAvCsB,CAAA;AARnB,KAAP,CAAA;AAqDD,GAAA;AAxEmC;;;;"}
1
+ {"version":3,"file":"Ordering.js","sources":["../../../src/features/Ordering.ts"],"sourcesContent":["import { makeStateUpdater, memo } from '../utils'\n\nimport {\n TableInstance,\n OnChangeFn,\n Updater,\n Column,\n TableGenerics,\n} from '../types'\n\nimport { Grouping, orderColumns } from './Grouping'\nimport { TableFeature } from '../core/instance'\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<TGenerics extends TableGenerics> = {\n setColumnOrder: (updater: Updater<ColumnOrderState>) => void\n resetColumnOrder: (defaultState?: boolean) => void\n _getOrderColumnsFn: () => (\n columns: Column<TGenerics>[]\n ) => Column<TGenerics>[]\n}\n\n//\n\nexport const Ordering: TableFeature = {\n getInitialState: (state): ColumnOrderTableState => {\n return {\n columnOrder: [],\n ...state,\n }\n },\n\n getDefaultOptions: <TGenerics extends TableGenerics>(\n instance: TableInstance<TGenerics>\n ): ColumnOrderDefaultOptions => {\n return {\n onColumnOrderChange: makeStateUpdater('columnOrder', instance),\n }\n },\n\n createInstance: <TGenerics extends TableGenerics>(\n instance: TableInstance<TGenerics>\n ): ColumnOrderInstance<TGenerics> => {\n return {\n setColumnOrder: updater =>\n instance.options.onColumnOrderChange?.(updater),\n resetColumnOrder: defaultState => {\n instance.setColumnOrder(\n defaultState ? [] : instance.initialState.columnOrder ?? []\n )\n },\n _getOrderColumnsFn: memo(\n () => [\n instance.getState().columnOrder,\n instance.getState().grouping,\n instance.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<TGenerics>[] = []\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: () => instance.options.debugAll ?? instance.options.debugTable,\n }\n ),\n }\n },\n}\n"],"names":["Ordering","getInitialState","state","columnOrder","getDefaultOptions","instance","onColumnOrderChange","makeStateUpdater","createInstance","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":";;;;;;;;;;;;;;;;;AAmCA;AAEO,MAAMA,QAAsB,GAAG;AACpCC,EAAAA,eAAe,EAAGC,KAAD,IAAkC;AACjD,IAAO,OAAA;AACLC,MAAAA,WAAW,EAAE,EADR;AAEL,MAAGD,GAAAA,KAAAA;AAFE,KAAP,CAAA;AAID,GANmC;AAQpCE,EAAAA,iBAAiB,EACfC,QADiB,IAEa;AAC9B,IAAO,OAAA;AACLC,MAAAA,mBAAmB,EAAEC,sBAAgB,CAAC,aAAD,EAAgBF,QAAhB,CAAA;AADhC,KAAP,CAAA;AAGD,GAdmC;AAgBpCG,EAAAA,cAAc,EACZH,QADc,IAEqB;AACnC,IAAO,OAAA;AACLI,MAAAA,cAAc,EAAEC,OAAO,IACrBL,QAAQ,CAACM,OAAT,CAAiBL,mBADI,IAAA,IAAA,GAAA,KAAA,CAAA,GACrBD,QAAQ,CAACM,OAAT,CAAiBL,mBAAjB,CAAuCI,OAAvC,CAFG;AAGLE,MAAAA,gBAAgB,EAAEC,YAAY,IAAI;AAAA,QAAA,IAAA,qBAAA,CAAA;;AAChCR,QAAAA,QAAQ,CAACI,cAAT,CACEI,YAAY,GAAG,EAAH,GAAQR,CAAAA,qBAAAA,GAAAA,QAAQ,CAACS,YAAT,CAAsBX,WAA9B,oCAA6C,EAD3D,CAAA,CAAA;AAGD,OAPI;AAQLY,MAAAA,kBAAkB,EAAEC,UAAI,CACtB,MAAM,CACJX,QAAQ,CAACY,QAAT,EAAoBd,CAAAA,WADhB,EAEJE,QAAQ,CAACY,QAAT,EAAA,CAAoBC,QAFhB,EAGJb,QAAQ,CAACM,OAAT,CAAiBQ,iBAHb,CADgB,EAMtB,CAAChB,WAAD,EAAce,QAAd,EAAwBC,iBAAxB,KAA8CC,OAAO,IAAI;AACvD;AACA;AACA,QAAA,IAAIC,cAAmC,GAAG,EAA1C,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,CAAA,CAAkC,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;AACEe,QAAAA,GAAG,EAAEC,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,aAAzB,IAA0C,mBADjD;;AAAA,OAvCsB,CAAA;AARnB,KAAP,CAAA;AAqDD,GAAA;AAxEmC;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"Pagination.js","sources":["../../../src/features/Pagination.ts"],"sourcesContent":["import {\n OnChangeFn,\n TableGenerics,\n TableInstance,\n RowModel,\n Updater,\n TableFeature,\n} from '../types'\nimport { functionalUpdate, makeStateUpdater, memo } from '../utils'\n\nexport type PaginationState = {\n pageIndex: number\n pageSize: number\n pageCount?: number\n}\n\nexport type PaginationTableState = {\n pagination: PaginationState\n}\n\nexport type PaginationInitialTableState = {\n pagination?: Partial<PaginationState>\n}\n\nexport type PaginationOptions<TGenerics extends TableGenerics> = {\n manualPagination?: boolean\n onPaginationChange?: OnChangeFn<PaginationState>\n autoResetPageIndex?: boolean\n getPaginationRowModel?: (\n instance: TableInstance<TGenerics>\n ) => () => RowModel<TGenerics>\n}\n\nexport type PaginationDefaultOptions = {\n onPaginationChange: OnChangeFn<PaginationState>\n}\n\nexport type PaginationInstance<TGenerics extends TableGenerics> = {\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<TGenerics>\n getPaginationRowModel: () => RowModel<TGenerics>\n _getPaginationRowModel?: () => RowModel<TGenerics>\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: <TGenerics extends TableGenerics>(\n instance: TableInstance<TGenerics>\n ): PaginationDefaultOptions => {\n return {\n onPaginationChange: makeStateUpdater('pagination', instance),\n }\n },\n\n createInstance: <TGenerics extends TableGenerics>(\n instance: TableInstance<TGenerics>\n ): PaginationInstance<TGenerics> => {\n let registered = false\n let queued = false\n\n return {\n _autoResetPageIndex: () => {\n if (!registered) {\n instance._queue(() => {\n registered = true\n })\n return\n }\n\n if (\n instance.options.autoResetAll ??\n instance.options.autoResetPageIndex ??\n !instance.options.manualPagination\n ) {\n if (queued) return\n queued = true\n instance._queue(() => {\n instance.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 instance.options.onPaginationChange?.(safeUpdater)\n },\n resetPagination: defaultState => {\n instance.setPagination(\n defaultState\n ? getDefaultPaginationState()\n : instance.initialState.pagination ?? getDefaultPaginationState()\n )\n },\n setPageIndex: updater => {\n instance.setPagination(old => {\n let pageIndex = functionalUpdate(updater, old.pageIndex)\n\n const maxPageIndex =\n typeof old.pageCount !== 'undefined'\n ? old.pageCount - 1\n : Number.MAX_SAFE_INTEGER\n\n pageIndex = Math.min(Math.max(0, pageIndex), maxPageIndex)\n\n return {\n ...old,\n pageIndex,\n }\n })\n },\n resetPageIndex: defaultState => {\n instance.setPageIndex(\n defaultState\n ? defaultPageIndex\n : instance.initialState?.pagination?.pageIndex ?? defaultPageIndex\n )\n },\n resetPageSize: defaultState => {\n instance.setPageSize(\n defaultState\n ? defaultPageSize\n : instance.initialState?.pagination?.pageSize ?? defaultPageSize\n )\n },\n setPageSize: updater => {\n instance.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 instance.setPagination(old => {\n let newPageCount = functionalUpdate(updater, old.pageCount ?? -1)\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 () => [\n instance.getState().pagination.pageSize,\n instance.getState().pagination.pageCount,\n ],\n (pageSize, 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: () => instance.options.debugAll ?? instance.options.debugTable,\n }\n ),\n\n getCanPreviousPage: () => instance.getState().pagination.pageIndex > 0,\n\n getCanNextPage: () => {\n const { pageIndex } = instance.getState().pagination\n\n const pageCount = instance.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 instance.setPageIndex(old => old - 1)\n },\n\n nextPage: () => {\n return instance.setPageIndex(old => {\n return old + 1\n })\n },\n\n getPrePaginationRowModel: () => instance.getExpandedRowModel(),\n getPaginationRowModel: () => {\n if (\n !instance._getPaginationRowModel &&\n instance.options.getPaginationRowModel\n ) {\n instance._getPaginationRowModel =\n instance.options.getPaginationRowModel(instance)\n }\n\n if (\n instance.options.manualPagination ||\n !instance._getPaginationRowModel\n ) {\n return instance.getPrePaginationRowModel()\n }\n\n return instance._getPaginationRowModel()\n },\n\n getPageCount: () => {\n const { pageCount } = instance.getState().pagination\n\n if (typeof pageCount !== 'undefined') {\n return pageCount\n }\n\n return Math.ceil(\n instance.getPrePaginationRowModel().rows.length /\n instance.getState().pagination.pageSize\n )\n },\n }\n },\n}\n"],"names":["defaultPageIndex","defaultPageSize","getDefaultPaginationState","pageIndex","pageSize","Pagination","getInitialState","state","pagination","getDefaultOptions","instance","onPaginationChange","makeStateUpdater","createInstance","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","getState","pageOptions","Array","fill","map","_","i","key","process","env","NODE_ENV","debug","debugAll","debugTable","getCanPreviousPage","getCanNextPage","getPageCount","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/instance'\nimport {\n OnChangeFn,\n TableGenerics,\n TableInstance,\n RowModel,\n Updater,\n} from '../types'\nimport { functionalUpdate, makeStateUpdater, memo } from '../utils'\n\nexport type PaginationState = {\n pageIndex: number\n pageSize: number\n pageCount?: number\n}\n\nexport type PaginationTableState = {\n pagination: PaginationState\n}\n\nexport type PaginationInitialTableState = {\n pagination?: Partial<PaginationState>\n}\n\nexport type PaginationOptions<TGenerics extends TableGenerics> = {\n manualPagination?: boolean\n onPaginationChange?: OnChangeFn<PaginationState>\n autoResetPageIndex?: boolean\n getPaginationRowModel?: (\n instance: TableInstance<TGenerics>\n ) => () => RowModel<TGenerics>\n}\n\nexport type PaginationDefaultOptions = {\n onPaginationChange: OnChangeFn<PaginationState>\n}\n\nexport type PaginationInstance<TGenerics extends TableGenerics> = {\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<TGenerics>\n getPaginationRowModel: () => RowModel<TGenerics>\n _getPaginationRowModel?: () => RowModel<TGenerics>\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: <TGenerics extends TableGenerics>(\n instance: TableInstance<TGenerics>\n ): PaginationDefaultOptions => {\n return {\n onPaginationChange: makeStateUpdater('pagination', instance),\n }\n },\n\n createInstance: <TGenerics extends TableGenerics>(\n instance: TableInstance<TGenerics>\n ): PaginationInstance<TGenerics> => {\n let registered = false\n let queued = false\n\n return {\n _autoResetPageIndex: () => {\n if (!registered) {\n instance._queue(() => {\n registered = true\n })\n return\n }\n\n if (\n instance.options.autoResetAll ??\n instance.options.autoResetPageIndex ??\n !instance.options.manualPagination\n ) {\n if (queued) return\n queued = true\n instance._queue(() => {\n instance.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 instance.options.onPaginationChange?.(safeUpdater)\n },\n resetPagination: defaultState => {\n instance.setPagination(\n defaultState\n ? getDefaultPaginationState()\n : instance.initialState.pagination ?? getDefaultPaginationState()\n )\n },\n setPageIndex: updater => {\n instance.setPagination(old => {\n let pageIndex = functionalUpdate(updater, old.pageIndex)\n\n const maxPageIndex =\n typeof old.pageCount !== 'undefined'\n ? old.pageCount - 1\n : Number.MAX_SAFE_INTEGER\n\n pageIndex = Math.min(Math.max(0, pageIndex), maxPageIndex)\n\n return {\n ...old,\n pageIndex,\n }\n })\n },\n resetPageIndex: defaultState => {\n instance.setPageIndex(\n defaultState\n ? defaultPageIndex\n : instance.initialState?.pagination?.pageIndex ?? defaultPageIndex\n )\n },\n resetPageSize: defaultState => {\n instance.setPageSize(\n defaultState\n ? defaultPageSize\n : instance.initialState?.pagination?.pageSize ?? defaultPageSize\n )\n },\n setPageSize: updater => {\n instance.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 instance.setPagination(old => {\n let newPageCount = functionalUpdate(updater, old.pageCount ?? -1)\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 () => [\n instance.getState().pagination.pageSize,\n instance.getState().pagination.pageCount,\n ],\n (pageSize, 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: () => instance.options.debugAll ?? instance.options.debugTable,\n }\n ),\n\n getCanPreviousPage: () => instance.getState().pagination.pageIndex > 0,\n\n getCanNextPage: () => {\n const { pageIndex } = instance.getState().pagination\n\n const pageCount = instance.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 instance.setPageIndex(old => old - 1)\n },\n\n nextPage: () => {\n return instance.setPageIndex(old => {\n return old + 1\n })\n },\n\n getPrePaginationRowModel: () => instance.getExpandedRowModel(),\n getPaginationRowModel: () => {\n if (\n !instance._getPaginationRowModel &&\n instance.options.getPaginationRowModel\n ) {\n instance._getPaginationRowModel =\n instance.options.getPaginationRowModel(instance)\n }\n\n if (\n instance.options.manualPagination ||\n !instance._getPaginationRowModel\n ) {\n return instance.getPrePaginationRowModel()\n }\n\n return instance._getPaginationRowModel()\n },\n\n getPageCount: () => {\n const { pageCount } = instance.getState().pagination\n\n if (typeof pageCount !== 'undefined') {\n return pageCount\n }\n\n return Math.ceil(\n instance.getPrePaginationRowModel().rows.length /\n instance.getState().pagination.pageSize\n )\n },\n }\n },\n}\n"],"names":["defaultPageIndex","defaultPageSize","getDefaultPaginationState","pageIndex","pageSize","Pagination","getInitialState","state","pagination","getDefaultOptions","instance","onPaginationChange","makeStateUpdater","createInstance","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","getState","pageOptions","Array","fill","map","_","i","key","process","env","NODE_ENV","debug","debugAll","debugTable","getCanPreviousPage","getCanNextPage","getPageCount","previousPage","nextPage","getPrePaginationRowModel","getExpandedRowModel","getPaginationRowModel","_getPaginationRowModel","ceil","rows","length"],"mappings":"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"}
@@ -93,7 +93,7 @@ const Pinning = {
93
93
  return {
94
94
  getCenterVisibleCells: utils.memo(() => [row._getAllVisibleCells(), instance.getState().columnPinning.left, instance.getState().columnPinning.right], (allCells, left, right) => {
95
95
  const leftAndRight = [...(left != null ? left : []), ...(right != null ? right : [])];
96
- return allCells.filter(d => !leftAndRight.includes(d.columnId));
96
+ return allCells.filter(d => !leftAndRight.includes(d.column.id));
97
97
  }, {
98
98
  key: process.env.NODE_ENV === 'production' && 'row.getCenterVisibleCells',
99
99
  debug: () => {
@@ -103,7 +103,7 @@ const Pinning = {
103
103
  }
104
104
  }),
105
105
  getLeftVisibleCells: utils.memo(() => [row._getAllVisibleCells(), instance.getState().columnPinning.left,,], (allCells, left) => {
106
- const cells = (left != null ? left : []).map(columnId => allCells.find(cell => cell.columnId === columnId)).filter(Boolean).map(d => ({ ...d,
106
+ const cells = (left != null ? left : []).map(columnId => allCells.find(cell => cell.column.id === columnId)).filter(Boolean).map(d => ({ ...d,
107
107
  position: 'left'
108
108
  }));
109
109
  return cells;
@@ -116,7 +116,7 @@ const Pinning = {
116
116
  }
117
117
  }),
118
118
  getRightVisibleCells: utils.memo(() => [row._getAllVisibleCells(), instance.getState().columnPinning.right], (allCells, right) => {
119
- const cells = (right != null ? right : []).map(columnId => allCells.find(cell => cell.columnId === columnId)).filter(Boolean).map(d => ({ ...d,
119
+ const cells = (right != null ? right : []).map(columnId => allCells.find(cell => cell.column.id === columnId)).filter(Boolean).map(d => ({ ...d,
120
120
  position: 'left'
121
121
  }));
122
122
  return cells;
@@ -1 +1 @@
1
- {"version":3,"file":"Pinning.js","sources":["../../../src/features/Pinning.ts"],"sourcesContent":["import {\n OnChangeFn,\n Updater,\n TableInstance,\n Column,\n TableGenerics,\n Row,\n Cell,\n TableFeature,\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<TGenerics extends TableGenerics> = {\n getLeftVisibleCells: () => Cell<TGenerics>[]\n getCenterVisibleCells: () => Cell<TGenerics>[]\n getRightVisibleCells: () => Cell<TGenerics>[]\n}\n\nexport type ColumnPinningInstance<TGenerics extends TableGenerics> = {\n setColumnPinning: (updater: Updater<ColumnPinningState>) => void\n resetColumnPinning: (defaultState?: boolean) => void\n getIsSomeColumnsPinned: (position?: ColumnPinningPosition) => boolean\n getLeftLeafColumns: () => Column<TGenerics>[]\n getRightLeafColumns: () => Column<TGenerics>[]\n getCenterLeafColumns: () => Column<TGenerics>[]\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: <TGenerics extends TableGenerics>(\n instance: TableInstance<TGenerics>\n ): ColumnPinningDefaultOptions => {\n return {\n onColumnPinningChange: makeStateUpdater('columnPinning', instance),\n }\n },\n\n createColumn: <TGenerics extends TableGenerics>(\n column: Column<TGenerics>,\n instance: TableInstance<TGenerics>\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 instance.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 (instance.options.enablePinning ?? true)\n )\n },\n\n getIsPinned: () => {\n const leafColumnIds = column.getLeafColumns().map(d => d.id)\n\n const { left, right } = instance.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 ? instance.getState().columnPinning?.[position]?.indexOf(column.id) ??\n -1\n : 0\n },\n }\n },\n\n createRow: <TGenerics extends TableGenerics>(\n row: Row<TGenerics>,\n instance: TableInstance<TGenerics>\n ): ColumnPinningRow<TGenerics> => {\n return {\n getCenterVisibleCells: memo(\n () => [\n row._getAllVisibleCells(),\n instance.getState().columnPinning.left,\n instance.getState().columnPinning.right,\n ],\n (allCells, left, right) => {\n const leftAndRight: string[] = [...(left ?? []), ...(right ?? [])]\n\n return allCells.filter(d => !leftAndRight.includes(d.columnId))\n },\n {\n key:\n process.env.NODE_ENV === 'production' &&\n 'row.getCenterVisibleCells',\n debug: () => instance.options.debugAll ?? instance.options.debugRows,\n }\n ),\n getLeftVisibleCells: memo(\n () => [\n row._getAllVisibleCells(),\n instance.getState().columnPinning.left,\n ,\n ],\n (allCells, left) => {\n const cells = (left ?? [])\n .map(columnId => allCells.find(cell => cell.columnId === columnId)!)\n .filter(Boolean)\n .map(d => ({ ...d, position: 'left' } as Cell<TGenerics>))\n\n return cells\n },\n {\n key:\n process.env.NODE_ENV === 'production' && 'row.getLeftVisibleCells',\n debug: () => instance.options.debugAll ?? instance.options.debugRows,\n }\n ),\n getRightVisibleCells: memo(\n () => [\n row._getAllVisibleCells(),\n instance.getState().columnPinning.right,\n ],\n (allCells, right) => {\n const cells = (right ?? [])\n .map(columnId => allCells.find(cell => cell.columnId === columnId)!)\n .filter(Boolean)\n .map(d => ({ ...d, position: 'left' } as Cell<TGenerics>))\n\n return cells\n },\n {\n key:\n process.env.NODE_ENV === 'production' && 'row.getRightVisibleCells',\n debug: () => instance.options.debugAll ?? instance.options.debugRows,\n }\n ),\n }\n },\n\n createInstance: <TGenerics extends TableGenerics>(\n instance: TableInstance<TGenerics>\n ): ColumnPinningInstance<TGenerics> => {\n return {\n setColumnPinning: updater =>\n instance.options.onColumnPinningChange?.(updater),\n\n resetColumnPinning: defaultState =>\n instance.setColumnPinning(\n defaultState\n ? getDefaultPinningState()\n : instance.initialState?.columnPinning ?? getDefaultPinningState()\n ),\n\n getIsSomeColumnsPinned: position => {\n const pinningState = instance.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 () => [\n instance.getAllLeafColumns(),\n instance.getState().columnPinning.left,\n ],\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: () =>\n instance.options.debugAll ?? instance.options.debugColumns,\n }\n ),\n\n getRightLeafColumns: memo(\n () => [\n instance.getAllLeafColumns(),\n instance.getState().columnPinning.right,\n ],\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: () =>\n instance.options.debugAll ?? instance.options.debugColumns,\n }\n ),\n\n getCenterLeafColumns: memo(\n () => [\n instance.getAllLeafColumns(),\n instance.getState().columnPinning.left,\n instance.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: () =>\n instance.options.debugAll ?? instance.options.debugColumns,\n }\n ),\n }\n },\n}\n"],"names":["getDefaultPinningState","left","right","Pinning","getInitialState","state","columnPinning","getDefaultOptions","instance","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","columnId","key","process","env","NODE_ENV","debug","debugAll","debugRows","getLeftVisibleCells","cells","find","cell","getRightVisibleCells","createInstance","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/instance'\nimport {\n OnChangeFn,\n Updater,\n TableInstance,\n Column,\n TableGenerics,\n Row,\n Cell,\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<TGenerics extends TableGenerics> = {\n getLeftVisibleCells: () => Cell<TGenerics>[]\n getCenterVisibleCells: () => Cell<TGenerics>[]\n getRightVisibleCells: () => Cell<TGenerics>[]\n}\n\nexport type ColumnPinningInstance<TGenerics extends TableGenerics> = {\n setColumnPinning: (updater: Updater<ColumnPinningState>) => void\n resetColumnPinning: (defaultState?: boolean) => void\n getIsSomeColumnsPinned: (position?: ColumnPinningPosition) => boolean\n getLeftLeafColumns: () => Column<TGenerics>[]\n getRightLeafColumns: () => Column<TGenerics>[]\n getCenterLeafColumns: () => Column<TGenerics>[]\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: <TGenerics extends TableGenerics>(\n instance: TableInstance<TGenerics>\n ): ColumnPinningDefaultOptions => {\n return {\n onColumnPinningChange: makeStateUpdater('columnPinning', instance),\n }\n },\n\n createColumn: <TGenerics extends TableGenerics>(\n column: Column<TGenerics>,\n instance: TableInstance<TGenerics>\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 instance.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 (instance.options.enablePinning ?? true)\n )\n },\n\n getIsPinned: () => {\n const leafColumnIds = column.getLeafColumns().map(d => d.id)\n\n const { left, right } = instance.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 ? instance.getState().columnPinning?.[position]?.indexOf(column.id) ??\n -1\n : 0\n },\n }\n },\n\n createRow: <TGenerics extends TableGenerics>(\n row: Row<TGenerics>,\n instance: TableInstance<TGenerics>\n ): ColumnPinningRow<TGenerics> => {\n return {\n getCenterVisibleCells: memo(\n () => [\n row._getAllVisibleCells(),\n instance.getState().columnPinning.left,\n instance.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: () => instance.options.debugAll ?? instance.options.debugRows,\n }\n ),\n getLeftVisibleCells: memo(\n () => [\n row._getAllVisibleCells(),\n instance.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<TGenerics>))\n\n return cells\n },\n {\n key:\n process.env.NODE_ENV === 'production' && 'row.getLeftVisibleCells',\n debug: () => instance.options.debugAll ?? instance.options.debugRows,\n }\n ),\n getRightVisibleCells: memo(\n () => [\n row._getAllVisibleCells(),\n instance.getState().columnPinning.right,\n ],\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: 'left' } as Cell<TGenerics>))\n\n return cells\n },\n {\n key:\n process.env.NODE_ENV === 'production' && 'row.getRightVisibleCells',\n debug: () => instance.options.debugAll ?? instance.options.debugRows,\n }\n ),\n }\n },\n\n createInstance: <TGenerics extends TableGenerics>(\n instance: TableInstance<TGenerics>\n ): ColumnPinningInstance<TGenerics> => {\n return {\n setColumnPinning: updater =>\n instance.options.onColumnPinningChange?.(updater),\n\n resetColumnPinning: defaultState =>\n instance.setColumnPinning(\n defaultState\n ? getDefaultPinningState()\n : instance.initialState?.columnPinning ?? getDefaultPinningState()\n ),\n\n getIsSomeColumnsPinned: position => {\n const pinningState = instance.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 () => [\n instance.getAllLeafColumns(),\n instance.getState().columnPinning.left,\n ],\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: () =>\n instance.options.debugAll ?? instance.options.debugColumns,\n }\n ),\n\n getRightLeafColumns: memo(\n () => [\n instance.getAllLeafColumns(),\n instance.getState().columnPinning.right,\n ],\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: () =>\n instance.options.debugAll ?? instance.options.debugColumns,\n }\n ),\n\n getCenterLeafColumns: memo(\n () => [\n instance.getAllLeafColumns(),\n instance.getState().columnPinning.left,\n instance.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: () =>\n instance.options.debugAll ?? instance.options.debugColumns,\n }\n ),\n }\n },\n}\n"],"names":["getDefaultPinningState","left","right","Pinning","getInitialState","state","columnPinning","getDefaultOptions","instance","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","createInstance","updater","resetColumnPinning","defaultState","initialState","getIsSomeColumnsPinned","pinningState","length","getLeftLeafColumns","getAllLeafColumns","allColumns","debugColumns","getRightLeafColumns","getCenterLeafColumns"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"RowSelection.js","sources":["../../../src/features/RowSelection.ts"],"sourcesContent":["import {\n OnChangeFn,\n TableGenerics,\n TableInstance,\n Row,\n RowModel,\n Updater,\n TableFeature,\n} from '../types'\nimport { makeStateUpdater, memo } from '../utils'\n\nexport type RowSelectionState = Record<string, boolean>\n\nexport type RowSelectionTableState = {\n rowSelection: RowSelectionState\n}\n\nexport type RowSelectionOptions<TGenerics extends TableGenerics> = {\n enableRowSelection?: boolean | ((row: Row<TGenerics>) => boolean)\n enableMultiRowSelection?: boolean | ((row: Row<TGenerics>) => boolean)\n enableSubRowSelection?: boolean | ((row: Row<TGenerics>) => boolean)\n onRowSelectionChange?: OnChangeFn<RowSelectionState>\n // enableGroupingRowSelection?:\n // | boolean\n // | ((\n // row: Row<TGenerics>\n // ) => boolean)\n // isAdditiveSelectEvent?: (e: unknown) => boolean\n // isInclusiveSelectEvent?: (e: unknown) => boolean\n // selectRowsFn?: (\n // instance: TableInstance<\n // TData,\n // TValue,\n // TFilterFns,\n // TSortingFns,\n // TAggregationFns\n // >,\n // rowModel: RowModel<TGenerics>\n // ) => RowModel<TGenerics>\n}\n\nexport type RowSelectionRow = {\n getIsSelected: () => boolean\n getIsSomeSelected: () => boolean\n getCanSelect: () => boolean\n getCanMultiSelect: () => boolean\n getCanSelectSubRows: () => boolean\n toggleSelected: (value?: boolean) => void\n getToggleSelectedHandler: () => (event: unknown) => void\n}\n\nexport type RowSelectionInstance<TGenerics extends TableGenerics> = {\n getToggleAllRowsSelectedHandler: () => (event: unknown) => void\n getToggleAllPageRowsSelectedHandler: () => (event: unknown) => void\n setRowSelection: (updater: Updater<RowSelectionState>) => void\n resetRowSelection: (defaultState?: boolean) => void\n getIsAllRowsSelected: () => boolean\n getIsAllPageRowsSelected: () => boolean\n getIsSomeRowsSelected: () => boolean\n getIsSomePageRowsSelected: () => boolean\n toggleAllRowsSelected: (value: boolean) => void\n toggleAllPageRowsSelected: (value: boolean) => void\n getPreSelectedRowModel: () => RowModel<TGenerics>\n getSelectedRowModel: () => RowModel<TGenerics>\n getFilteredSelectedRowModel: () => RowModel<TGenerics>\n getGroupedSelectedRowModel: () => RowModel<TGenerics>\n}\n\n//\n\nexport const RowSelection: TableFeature = {\n getInitialState: (state): RowSelectionTableState => {\n return {\n rowSelection: {},\n ...state,\n }\n },\n\n getDefaultOptions: <TGenerics extends TableGenerics>(\n instance: TableInstance<TGenerics>\n ): RowSelectionOptions<TGenerics> => {\n return {\n onRowSelectionChange: makeStateUpdater('rowSelection', instance),\n enableRowSelection: true,\n enableMultiRowSelection: true,\n enableSubRowSelection: true,\n // enableGroupingRowSelection: false,\n // isAdditiveSelectEvent: (e: unknown) => !!e.metaKey,\n // isInclusiveSelectEvent: (e: unknown) => !!e.shiftKey,\n }\n },\n\n createInstance: <TGenerics extends TableGenerics>(\n instance: TableInstance<TGenerics>\n ): RowSelectionInstance<TGenerics> => {\n return {\n setRowSelection: updater =>\n instance.options.onRowSelectionChange?.(updater),\n resetRowSelection: defaultState =>\n instance.setRowSelection(\n defaultState ? {} : instance.initialState.rowSelection ?? {}\n ),\n toggleAllRowsSelected: value => {\n instance.setRowSelection(old => {\n value =\n typeof value !== 'undefined'\n ? value\n : !instance.getIsAllRowsSelected()\n\n const rowSelection = { ...old }\n\n const preGroupedFlatRows = instance.getPreGroupedRowModel().flatRows\n\n // We don't use `mutateRowIsSelected` here for performance reasons.\n // All of the rows are flat already, so it wouldn't be worth it\n if (value) {\n preGroupedFlatRows.forEach(row => {\n rowSelection[row.id] = true\n })\n } else {\n preGroupedFlatRows.forEach(row => {\n delete rowSelection[row.id]\n })\n }\n\n return rowSelection\n })\n },\n toggleAllPageRowsSelected: value =>\n instance.setRowSelection(old => {\n const selectAll =\n typeof value !== 'undefined'\n ? value\n : !instance.getIsAllPageRowsSelected()\n\n const rowSelection: RowSelectionState = { ...old }\n\n instance.getRowModel().rows.forEach(row => {\n mutateRowIsSelected(rowSelection, row.id, value, instance)\n })\n\n return rowSelection\n }),\n\n // addRowSelectionRange: rowId => {\n // const {\n // rows,\n // rowsById,\n // options: { selectGroupingRows, selectSubRows },\n // } = instance\n\n // const findSelectedRow = (rows: Row[]) => {\n // let found\n // rows.find(d => {\n // if (d.getIsSelected()) {\n // found = d\n // return true\n // }\n // const subFound = findSelectedRow(d.subRows || [])\n // if (subFound) {\n // found = subFound\n // return true\n // }\n // return false\n // })\n // return found\n // }\n\n // const firstRow = findSelectedRow(rows) || rows[0]\n // const lastRow = rowsById[rowId]\n\n // let include = false\n // const selectedRowIds = {}\n\n // const addRow = (row: Row) => {\n // mutateRowIsSelected(selectedRowIds, row.id, true, {\n // rowsById,\n // selectGroupingRows: selectGroupingRows!,\n // selectSubRows: selectSubRows!,\n // })\n // }\n\n // instance.rows.forEach(row => {\n // const isFirstRow = row.id === firstRow.id\n // const isLastRow = row.id === lastRow.id\n\n // if (isFirstRow || isLastRow) {\n // if (!include) {\n // include = true\n // } else if (include) {\n // addRow(row)\n // include = false\n // }\n // }\n\n // if (include) {\n // addRow(row)\n // }\n // })\n\n // instance.setRowSelection(selectedRowIds)\n // },\n getPreSelectedRowModel: () => instance.getCoreRowModel(),\n getSelectedRowModel: memo(\n () => [instance.getState().rowSelection, instance.getCoreRowModel()],\n (rowSelection, rowModel) => {\n if (!Object.keys(rowSelection).length) {\n return {\n rows: [],\n flatRows: [],\n rowsById: {},\n }\n }\n\n return selectRowsFn(instance, rowModel)\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getSelectedRowModel',\n debug: () => instance.options.debugAll ?? instance.options.debugTable,\n }\n ),\n\n getFilteredSelectedRowModel: memo(\n () => [\n instance.getState().rowSelection,\n instance.getFilteredRowModel(),\n ],\n (rowSelection, rowModel) => {\n if (!Object.keys(rowSelection).length) {\n return {\n rows: [],\n flatRows: [],\n rowsById: {},\n }\n }\n\n return selectRowsFn(instance, rowModel)\n },\n {\n key:\n process.env.NODE_ENV === 'production' &&\n 'getFilteredSelectedRowModel',\n debug: () => instance.options.debugAll ?? instance.options.debugTable,\n }\n ),\n\n getGroupedSelectedRowModel: memo(\n () => [instance.getState().rowSelection, instance.getGroupedRowModel()],\n (rowSelection, rowModel) => {\n if (!Object.keys(rowSelection).length) {\n return {\n rows: [],\n flatRows: [],\n rowsById: {},\n }\n }\n\n return selectRowsFn(instance, rowModel)\n },\n {\n key:\n process.env.NODE_ENV === 'production' &&\n 'getGroupedSelectedRowModel',\n debug: () => instance.options.debugAll ?? instance.options.debugTable,\n }\n ),\n\n ///\n\n // getGroupingRowCanSelect: rowId => {\n // const row = instance.getRow(rowId)\n\n // if (!row) {\n // throw new Error()\n // }\n\n // if (typeof instance.options.enableGroupingRowSelection === 'function') {\n // return instance.options.enableGroupingRowSelection(row)\n // }\n\n // return instance.options.enableGroupingRowSelection ?? false\n // },\n\n getIsAllRowsSelected: () => {\n const preFilteredFlatRows = instance.getPreFilteredRowModel().flatRows\n const { rowSelection } = instance.getState()\n\n let isAllRowsSelected = Boolean(\n preFilteredFlatRows.length && Object.keys(rowSelection).length\n )\n\n if (isAllRowsSelected) {\n if (preFilteredFlatRows.some(row => !rowSelection[row.id])) {\n isAllRowsSelected = false\n }\n }\n\n return isAllRowsSelected\n },\n\n getIsAllPageRowsSelected: () => {\n const paginationFlatRows = instance.getPaginationRowModel().flatRows\n const { rowSelection } = instance.getState()\n\n let isAllPageRowsSelected = !!paginationFlatRows.length\n\n if (\n isAllPageRowsSelected &&\n paginationFlatRows.some(row => !rowSelection[row.id])\n ) {\n isAllPageRowsSelected = false\n }\n\n return isAllPageRowsSelected\n },\n\n getIsSomeRowsSelected: () => {\n return (\n !instance.getIsAllRowsSelected() &&\n !!Object.keys(instance.getState().rowSelection ?? {}).length\n )\n },\n\n getIsSomePageRowsSelected: () => {\n const paginationFlatRows = instance.getPaginationRowModel().flatRows\n return instance.getIsAllPageRowsSelected()\n ? false\n : !!paginationFlatRows?.length\n },\n\n getToggleAllRowsSelectedHandler: () => {\n return (e: unknown) => {\n instance.toggleAllRowsSelected(\n ((e as MouseEvent).target as HTMLInputElement).checked\n )\n }\n },\n\n getToggleAllPageRowsSelectedHandler: () => {\n return (e: unknown) => {\n instance.toggleAllPageRowsSelected(\n ((e as MouseEvent).target as HTMLInputElement).checked\n )\n }\n },\n }\n },\n\n createRow: <TGenerics extends TableGenerics>(\n row: Row<TGenerics>,\n instance: TableInstance<TGenerics>\n ): RowSelectionRow => {\n return {\n toggleSelected: value => {\n const isSelected = row.getIsSelected()\n\n instance.setRowSelection(old => {\n value = typeof value !== 'undefined' ? value : !isSelected\n\n if (isSelected === value) {\n return old\n }\n\n const selectedRowIds = { ...old }\n\n mutateRowIsSelected(selectedRowIds, row.id, value, instance)\n\n return selectedRowIds\n })\n },\n getIsSelected: () => {\n const { rowSelection } = instance.getState()\n return isRowSelected(row, rowSelection, instance) === true\n },\n\n getIsSomeSelected: () => {\n const { rowSelection } = instance.getState()\n return isRowSelected(row, rowSelection, instance) === 'some'\n },\n\n getCanSelect: () => {\n if (typeof instance.options.enableRowSelection === 'function') {\n return instance.options.enableRowSelection(row)\n }\n\n return instance.options.enableRowSelection ?? true\n },\n\n getCanSelectSubRows: () => {\n if (typeof instance.options.enableSubRowSelection === 'function') {\n return instance.options.enableSubRowSelection(row)\n }\n\n return instance.options.enableSubRowSelection ?? true\n },\n\n getCanMultiSelect: () => {\n if (typeof instance.options.enableMultiRowSelection === 'function') {\n return instance.options.enableMultiRowSelection(row)\n }\n\n return instance.options.enableMultiRowSelection ?? true\n },\n getToggleSelectedHandler: () => {\n const canSelect = row.getCanSelect()\n\n return (e: unknown) => {\n if (!canSelect) return\n row.toggleSelected(\n ((e as MouseEvent).target as HTMLInputElement)?.checked\n )\n }\n },\n }\n },\n}\n\nconst mutateRowIsSelected = <TGenerics extends TableGenerics>(\n selectedRowIds: Record<string, boolean>,\n id: string,\n value: boolean,\n instance: TableInstance<TGenerics>\n) => {\n const row = instance.getRow(id)\n\n const isGrouped = row.getIsGrouped()\n\n // if ( // TODO: enforce grouping row selection rules\n // !isGrouped ||\n // (isGrouped && instance.options.enableGroupingRowSelection)\n // ) {\n if (value) {\n selectedRowIds[id] = true\n } else {\n delete selectedRowIds[id]\n }\n // }\n\n if (row.subRows?.length && row.getCanSelectSubRows()) {\n row.subRows.forEach(row =>\n mutateRowIsSelected(selectedRowIds, row.id, value, instance)\n )\n }\n}\n\nexport function selectRowsFn<TGenerics extends TableGenerics>(\n instance: TableInstance<TGenerics>,\n rowModel: RowModel<TGenerics>\n): RowModel<TGenerics> {\n const rowSelection = instance.getState().rowSelection\n\n const newSelectedFlatRows: Row<TGenerics>[] = []\n const newSelectedRowsById: Record<string, Row<TGenerics>> = {}\n\n // Filters top level and nested rows\n const recurseRows = (rows: Row<TGenerics>[], depth = 0): Row<TGenerics>[] => {\n return rows\n .map(row => {\n const isSelected = isRowSelected(row, rowSelection, instance) === true\n\n if (isSelected) {\n newSelectedFlatRows.push(row)\n newSelectedRowsById[row.id] = row\n }\n\n if (row.subRows?.length) {\n row = {\n ...row,\n subRows: recurseRows(row.subRows, depth + 1),\n }\n }\n\n if (isSelected) {\n return row\n }\n })\n .filter(Boolean) as Row<TGenerics>[]\n }\n\n return {\n rows: recurseRows(rowModel.rows),\n flatRows: newSelectedFlatRows,\n rowsById: newSelectedRowsById,\n }\n}\n\nexport function isRowSelected<TGenerics extends TableGenerics>(\n row: Row<TGenerics>,\n selection: Record<string, boolean>,\n instance: TableInstance<TGenerics>\n): boolean | 'some' {\n if (selection[row.id]) {\n return true\n }\n\n if (row.subRows && row.subRows.length) {\n let allChildrenSelected = true\n let someSelected = false\n\n row.subRows.forEach(subRow => {\n // Bail out early if we know both of these\n if (someSelected && !allChildrenSelected) {\n return\n }\n\n if (isRowSelected(subRow, selection, instance)) {\n someSelected = true\n } else {\n allChildrenSelected = false\n }\n })\n\n return allChildrenSelected ? true : someSelected ? 'some' : false\n }\n\n return false\n}\n"],"names":["RowSelection","getInitialState","state","rowSelection","getDefaultOptions","instance","onRowSelectionChange","makeStateUpdater","enableRowSelection","enableMultiRowSelection","enableSubRowSelection","createInstance","setRowSelection","updater","options","resetRowSelection","defaultState","initialState","toggleAllRowsSelected","value","old","getIsAllRowsSelected","preGroupedFlatRows","getPreGroupedRowModel","flatRows","forEach","row","id","toggleAllPageRowsSelected","getIsAllPageRowsSelected","getRowModel","rows","mutateRowIsSelected","getPreSelectedRowModel","getCoreRowModel","getSelectedRowModel","memo","getState","rowModel","Object","keys","length","rowsById","selectRowsFn","key","process","env","NODE_ENV","debug","debugAll","debugTable","getFilteredSelectedRowModel","getFilteredRowModel","getGroupedSelectedRowModel","getGroupedRowModel","preFilteredFlatRows","getPreFilteredRowModel","isAllRowsSelected","Boolean","some","paginationFlatRows","getPaginationRowModel","isAllPageRowsSelected","getIsSomeRowsSelected","getIsSomePageRowsSelected","getToggleAllRowsSelectedHandler","e","target","checked","getToggleAllPageRowsSelectedHandler","createRow","toggleSelected","isSelected","getIsSelected","selectedRowIds","isRowSelected","getIsSomeSelected","getCanSelect","getCanSelectSubRows","getCanMultiSelect","getToggleSelectedHandler","canSelect","getRow","getIsGrouped","subRows","newSelectedFlatRows","newSelectedRowsById","recurseRows","depth","map","push","filter","selection","allChildrenSelected","someSelected","subRow"],"mappings":"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"}
1
+ {"version":3,"file":"RowSelection.js","sources":["../../../src/features/RowSelection.ts"],"sourcesContent":["import { TableFeature } from '../core/instance'\nimport {\n OnChangeFn,\n TableGenerics,\n TableInstance,\n Row,\n RowModel,\n Updater,\n} from '../types'\nimport { makeStateUpdater, memo } from '../utils'\n\nexport type RowSelectionState = Record<string, boolean>\n\nexport type RowSelectionTableState = {\n rowSelection: RowSelectionState\n}\n\nexport type RowSelectionOptions<TGenerics extends TableGenerics> = {\n enableRowSelection?: boolean | ((row: Row<TGenerics>) => boolean)\n enableMultiRowSelection?: boolean | ((row: Row<TGenerics>) => boolean)\n enableSubRowSelection?: boolean | ((row: Row<TGenerics>) => boolean)\n onRowSelectionChange?: OnChangeFn<RowSelectionState>\n // enableGroupingRowSelection?:\n // | boolean\n // | ((\n // row: Row<TGenerics>\n // ) => boolean)\n // isAdditiveSelectEvent?: (e: unknown) => boolean\n // isInclusiveSelectEvent?: (e: unknown) => boolean\n // selectRowsFn?: (\n // instance: TableInstance<\n // TData,\n // TValue,\n // TFilterFns,\n // TSortingFns,\n // TAggregationFns\n // >,\n // rowModel: RowModel<TGenerics>\n // ) => RowModel<TGenerics>\n}\n\nexport type RowSelectionRow = {\n getIsSelected: () => boolean\n getIsSomeSelected: () => boolean\n getCanSelect: () => boolean\n getCanMultiSelect: () => boolean\n getCanSelectSubRows: () => boolean\n toggleSelected: (value?: boolean) => void\n getToggleSelectedHandler: () => (event: unknown) => void\n}\n\nexport type RowSelectionInstance<TGenerics extends TableGenerics> = {\n getToggleAllRowsSelectedHandler: () => (event: unknown) => void\n getToggleAllPageRowsSelectedHandler: () => (event: unknown) => void\n setRowSelection: (updater: Updater<RowSelectionState>) => void\n resetRowSelection: (defaultState?: boolean) => void\n getIsAllRowsSelected: () => boolean\n getIsAllPageRowsSelected: () => boolean\n getIsSomeRowsSelected: () => boolean\n getIsSomePageRowsSelected: () => boolean\n toggleAllRowsSelected: (value: boolean) => void\n toggleAllPageRowsSelected: (value: boolean) => void\n getPreSelectedRowModel: () => RowModel<TGenerics>\n getSelectedRowModel: () => RowModel<TGenerics>\n getFilteredSelectedRowModel: () => RowModel<TGenerics>\n getGroupedSelectedRowModel: () => RowModel<TGenerics>\n}\n\n//\n\nexport const RowSelection: TableFeature = {\n getInitialState: (state): RowSelectionTableState => {\n return {\n rowSelection: {},\n ...state,\n }\n },\n\n getDefaultOptions: <TGenerics extends TableGenerics>(\n instance: TableInstance<TGenerics>\n ): RowSelectionOptions<TGenerics> => {\n return {\n onRowSelectionChange: makeStateUpdater('rowSelection', instance),\n enableRowSelection: true,\n enableMultiRowSelection: true,\n enableSubRowSelection: true,\n // enableGroupingRowSelection: false,\n // isAdditiveSelectEvent: (e: unknown) => !!e.metaKey,\n // isInclusiveSelectEvent: (e: unknown) => !!e.shiftKey,\n }\n },\n\n createInstance: <TGenerics extends TableGenerics>(\n instance: TableInstance<TGenerics>\n ): RowSelectionInstance<TGenerics> => {\n return {\n setRowSelection: updater =>\n instance.options.onRowSelectionChange?.(updater),\n resetRowSelection: defaultState =>\n instance.setRowSelection(\n defaultState ? {} : instance.initialState.rowSelection ?? {}\n ),\n toggleAllRowsSelected: value => {\n instance.setRowSelection(old => {\n value =\n typeof value !== 'undefined'\n ? value\n : !instance.getIsAllRowsSelected()\n\n const rowSelection = { ...old }\n\n const preGroupedFlatRows = instance.getPreGroupedRowModel().flatRows\n\n // We don't use `mutateRowIsSelected` here for performance reasons.\n // All of the rows are flat already, so it wouldn't be worth it\n if (value) {\n preGroupedFlatRows.forEach(row => {\n rowSelection[row.id] = true\n })\n } else {\n preGroupedFlatRows.forEach(row => {\n delete rowSelection[row.id]\n })\n }\n\n return rowSelection\n })\n },\n toggleAllPageRowsSelected: value =>\n instance.setRowSelection(old => {\n const selectAll =\n typeof value !== 'undefined'\n ? value\n : !instance.getIsAllPageRowsSelected()\n\n const rowSelection: RowSelectionState = { ...old }\n\n instance.getRowModel().rows.forEach(row => {\n mutateRowIsSelected(rowSelection, row.id, value, instance)\n })\n\n return rowSelection\n }),\n\n // addRowSelectionRange: rowId => {\n // const {\n // rows,\n // rowsById,\n // options: { selectGroupingRows, selectSubRows },\n // } = instance\n\n // const findSelectedRow = (rows: Row[]) => {\n // let found\n // rows.find(d => {\n // if (d.getIsSelected()) {\n // found = d\n // return true\n // }\n // const subFound = findSelectedRow(d.subRows || [])\n // if (subFound) {\n // found = subFound\n // return true\n // }\n // return false\n // })\n // return found\n // }\n\n // const firstRow = findSelectedRow(rows) || rows[0]\n // const lastRow = rowsById[rowId]\n\n // let include = false\n // const selectedRowIds = {}\n\n // const addRow = (row: Row) => {\n // mutateRowIsSelected(selectedRowIds, row.id, true, {\n // rowsById,\n // selectGroupingRows: selectGroupingRows!,\n // selectSubRows: selectSubRows!,\n // })\n // }\n\n // instance.rows.forEach(row => {\n // const isFirstRow = row.id === firstRow.id\n // const isLastRow = row.id === lastRow.id\n\n // if (isFirstRow || isLastRow) {\n // if (!include) {\n // include = true\n // } else if (include) {\n // addRow(row)\n // include = false\n // }\n // }\n\n // if (include) {\n // addRow(row)\n // }\n // })\n\n // instance.setRowSelection(selectedRowIds)\n // },\n getPreSelectedRowModel: () => instance.getCoreRowModel(),\n getSelectedRowModel: memo(\n () => [instance.getState().rowSelection, instance.getCoreRowModel()],\n (rowSelection, rowModel) => {\n if (!Object.keys(rowSelection).length) {\n return {\n rows: [],\n flatRows: [],\n rowsById: {},\n }\n }\n\n return selectRowsFn(instance, rowModel)\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getSelectedRowModel',\n debug: () => instance.options.debugAll ?? instance.options.debugTable,\n }\n ),\n\n getFilteredSelectedRowModel: memo(\n () => [\n instance.getState().rowSelection,\n instance.getFilteredRowModel(),\n ],\n (rowSelection, rowModel) => {\n if (!Object.keys(rowSelection).length) {\n return {\n rows: [],\n flatRows: [],\n rowsById: {},\n }\n }\n\n return selectRowsFn(instance, rowModel)\n },\n {\n key:\n process.env.NODE_ENV === 'production' &&\n 'getFilteredSelectedRowModel',\n debug: () => instance.options.debugAll ?? instance.options.debugTable,\n }\n ),\n\n getGroupedSelectedRowModel: memo(\n () => [instance.getState().rowSelection, instance.getGroupedRowModel()],\n (rowSelection, rowModel) => {\n if (!Object.keys(rowSelection).length) {\n return {\n rows: [],\n flatRows: [],\n rowsById: {},\n }\n }\n\n return selectRowsFn(instance, rowModel)\n },\n {\n key:\n process.env.NODE_ENV === 'production' &&\n 'getGroupedSelectedRowModel',\n debug: () => instance.options.debugAll ?? instance.options.debugTable,\n }\n ),\n\n ///\n\n // getGroupingRowCanSelect: rowId => {\n // const row = instance.getRow(rowId)\n\n // if (!row) {\n // throw new Error()\n // }\n\n // if (typeof instance.options.enableGroupingRowSelection === 'function') {\n // return instance.options.enableGroupingRowSelection(row)\n // }\n\n // return instance.options.enableGroupingRowSelection ?? false\n // },\n\n getIsAllRowsSelected: () => {\n const preFilteredFlatRows = instance.getPreFilteredRowModel().flatRows\n const { rowSelection } = instance.getState()\n\n let isAllRowsSelected = Boolean(\n preFilteredFlatRows.length && Object.keys(rowSelection).length\n )\n\n if (isAllRowsSelected) {\n if (preFilteredFlatRows.some(row => !rowSelection[row.id])) {\n isAllRowsSelected = false\n }\n }\n\n return isAllRowsSelected\n },\n\n getIsAllPageRowsSelected: () => {\n const paginationFlatRows = instance.getPaginationRowModel().flatRows\n const { rowSelection } = instance.getState()\n\n let isAllPageRowsSelected = !!paginationFlatRows.length\n\n if (\n isAllPageRowsSelected &&\n paginationFlatRows.some(row => !rowSelection[row.id])\n ) {\n isAllPageRowsSelected = false\n }\n\n return isAllPageRowsSelected\n },\n\n getIsSomeRowsSelected: () => {\n return (\n !instance.getIsAllRowsSelected() &&\n !!Object.keys(instance.getState().rowSelection ?? {}).length\n )\n },\n\n getIsSomePageRowsSelected: () => {\n const paginationFlatRows = instance.getPaginationRowModel().flatRows\n return instance.getIsAllPageRowsSelected()\n ? false\n : !!paginationFlatRows?.length\n },\n\n getToggleAllRowsSelectedHandler: () => {\n return (e: unknown) => {\n instance.toggleAllRowsSelected(\n ((e as MouseEvent).target as HTMLInputElement).checked\n )\n }\n },\n\n getToggleAllPageRowsSelectedHandler: () => {\n return (e: unknown) => {\n instance.toggleAllPageRowsSelected(\n ((e as MouseEvent).target as HTMLInputElement).checked\n )\n }\n },\n }\n },\n\n createRow: <TGenerics extends TableGenerics>(\n row: Row<TGenerics>,\n instance: TableInstance<TGenerics>\n ): RowSelectionRow => {\n return {\n toggleSelected: value => {\n const isSelected = row.getIsSelected()\n\n instance.setRowSelection(old => {\n value = typeof value !== 'undefined' ? value : !isSelected\n\n if (isSelected === value) {\n return old\n }\n\n const selectedRowIds = { ...old }\n\n mutateRowIsSelected(selectedRowIds, row.id, value, instance)\n\n return selectedRowIds\n })\n },\n getIsSelected: () => {\n const { rowSelection } = instance.getState()\n return isRowSelected(row, rowSelection, instance) === true\n },\n\n getIsSomeSelected: () => {\n const { rowSelection } = instance.getState()\n return isRowSelected(row, rowSelection, instance) === 'some'\n },\n\n getCanSelect: () => {\n if (typeof instance.options.enableRowSelection === 'function') {\n return instance.options.enableRowSelection(row)\n }\n\n return instance.options.enableRowSelection ?? true\n },\n\n getCanSelectSubRows: () => {\n if (typeof instance.options.enableSubRowSelection === 'function') {\n return instance.options.enableSubRowSelection(row)\n }\n\n return instance.options.enableSubRowSelection ?? true\n },\n\n getCanMultiSelect: () => {\n if (typeof instance.options.enableMultiRowSelection === 'function') {\n return instance.options.enableMultiRowSelection(row)\n }\n\n return instance.options.enableMultiRowSelection ?? true\n },\n getToggleSelectedHandler: () => {\n const canSelect = row.getCanSelect()\n\n return (e: unknown) => {\n if (!canSelect) return\n row.toggleSelected(\n ((e as MouseEvent).target as HTMLInputElement)?.checked\n )\n }\n },\n }\n },\n}\n\nconst mutateRowIsSelected = <TGenerics extends TableGenerics>(\n selectedRowIds: Record<string, boolean>,\n id: string,\n value: boolean,\n instance: TableInstance<TGenerics>\n) => {\n const row = instance.getRow(id)\n\n const isGrouped = row.getIsGrouped()\n\n // if ( // TODO: enforce grouping row selection rules\n // !isGrouped ||\n // (isGrouped && instance.options.enableGroupingRowSelection)\n // ) {\n if (value) {\n selectedRowIds[id] = true\n } else {\n delete selectedRowIds[id]\n }\n // }\n\n if (row.subRows?.length && row.getCanSelectSubRows()) {\n row.subRows.forEach(row =>\n mutateRowIsSelected(selectedRowIds, row.id, value, instance)\n )\n }\n}\n\nexport function selectRowsFn<TGenerics extends TableGenerics>(\n instance: TableInstance<TGenerics>,\n rowModel: RowModel<TGenerics>\n): RowModel<TGenerics> {\n const rowSelection = instance.getState().rowSelection\n\n const newSelectedFlatRows: Row<TGenerics>[] = []\n const newSelectedRowsById: Record<string, Row<TGenerics>> = {}\n\n // Filters top level and nested rows\n const recurseRows = (rows: Row<TGenerics>[], depth = 0): Row<TGenerics>[] => {\n return rows\n .map(row => {\n const isSelected = isRowSelected(row, rowSelection, instance) === true\n\n if (isSelected) {\n newSelectedFlatRows.push(row)\n newSelectedRowsById[row.id] = row\n }\n\n if (row.subRows?.length) {\n row = {\n ...row,\n subRows: recurseRows(row.subRows, depth + 1),\n }\n }\n\n if (isSelected) {\n return row\n }\n })\n .filter(Boolean) as Row<TGenerics>[]\n }\n\n return {\n rows: recurseRows(rowModel.rows),\n flatRows: newSelectedFlatRows,\n rowsById: newSelectedRowsById,\n }\n}\n\nexport function isRowSelected<TGenerics extends TableGenerics>(\n row: Row<TGenerics>,\n selection: Record<string, boolean>,\n instance: TableInstance<TGenerics>\n): boolean | 'some' {\n if (selection[row.id]) {\n return true\n }\n\n if (row.subRows && row.subRows.length) {\n let allChildrenSelected = true\n let someSelected = false\n\n row.subRows.forEach(subRow => {\n // Bail out early if we know both of these\n if (someSelected && !allChildrenSelected) {\n return\n }\n\n if (isRowSelected(subRow, selection, instance)) {\n someSelected = true\n } else {\n allChildrenSelected = false\n }\n })\n\n return allChildrenSelected ? true : someSelected ? 'some' : false\n }\n\n return false\n}\n"],"names":["RowSelection","getInitialState","state","rowSelection","getDefaultOptions","instance","onRowSelectionChange","makeStateUpdater","enableRowSelection","enableMultiRowSelection","enableSubRowSelection","createInstance","setRowSelection","updater","options","resetRowSelection","defaultState","initialState","toggleAllRowsSelected","value","old","getIsAllRowsSelected","preGroupedFlatRows","getPreGroupedRowModel","flatRows","forEach","row","id","toggleAllPageRowsSelected","getIsAllPageRowsSelected","getRowModel","rows","mutateRowIsSelected","getPreSelectedRowModel","getCoreRowModel","getSelectedRowModel","memo","getState","rowModel","Object","keys","length","rowsById","selectRowsFn","key","process","env","NODE_ENV","debug","debugAll","debugTable","getFilteredSelectedRowModel","getFilteredRowModel","getGroupedSelectedRowModel","getGroupedRowModel","preFilteredFlatRows","getPreFilteredRowModel","isAllRowsSelected","Boolean","some","paginationFlatRows","getPaginationRowModel","isAllPageRowsSelected","getIsSomeRowsSelected","getIsSomePageRowsSelected","getToggleAllRowsSelectedHandler","e","target","checked","getToggleAllPageRowsSelectedHandler","createRow","toggleSelected","isSelected","getIsSelected","selectedRowIds","isRowSelected","getIsSomeSelected","getCanSelect","getCanSelectSubRows","getCanMultiSelect","getToggleSelectedHandler","canSelect","getRow","getIsGrouped","subRows","newSelectedFlatRows","newSelectedRowsById","recurseRows","depth","map","push","filter","selection","allChildrenSelected","someSelected","subRow"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Sorting.js","sources":["../../../src/features/Sorting.ts"],"sourcesContent":["import { RowModel } from '..'\nimport {\n BuiltInSortingFn,\n reSplitAlphaNumeric,\n sortingFns,\n} from '../sortingFns'\n\nimport {\n Column,\n OnChangeFn,\n TableGenerics,\n TableInstance,\n Row,\n Updater,\n TableFeature,\n} from '../types'\n\nimport { isFunction, makeStateUpdater, Overwrite } from '../utils'\n\nexport type SortDirection = 'asc' | 'desc'\n\nexport type ColumnSort = {\n id: string\n desc: boolean\n}\n\nexport type SortingState = ColumnSort[]\n\nexport type SortingFn<TGenerics extends TableGenerics> = {\n (rowA: Row<TGenerics>, rowB: Row<TGenerics>, columnId: string): number\n}\n\nexport type CustomSortingFns<TGenerics extends TableGenerics> = Record<\n string,\n SortingFn<TGenerics>\n>\n\nexport type SortingTableState = {\n sorting: SortingState\n}\n\nexport type SortingFnOption<TGenerics extends TableGenerics> =\n | 'auto'\n | BuiltInSortingFn\n | keyof TGenerics['SortingFns']\n | SortingFn<TGenerics>\n\nexport type SortingColumnDef<TGenerics extends TableGenerics> = {\n sortingFn?: SortingFnOption<Overwrite<TGenerics, { Value: any }>>\n sortDescFirst?: boolean\n enableSorting?: boolean\n enableMultiSort?: boolean\n invertSorting?: boolean\n sortUndefined?: false | -1 | 1\n}\n\nexport type SortingColumn<TGenerics extends TableGenerics> = {\n getAutoSortingFn: () => SortingFn<TGenerics>\n getAutoSortDir: () => SortDirection\n getSortingFn: () => SortingFn<TGenerics>\n getCanSort: () => boolean\n getCanMultiSort: () => boolean\n getSortIndex: () => number\n getIsSorted: () => false | SortDirection\n clearSorting: () => void\n toggleSorting: (desc?: boolean, isMulti?: boolean) => void\n getToggleSortingHandler: () => undefined | ((event: unknown) => void)\n}\n\nexport type SortingOptions<TGenerics extends TableGenerics> = {\n manualSorting?: boolean\n sortingFns?: TGenerics['SortingFns']\n onSortingChange?: OnChangeFn<SortingState>\n enableSorting?: boolean\n enableSortingRemoval?: boolean\n enableMultiRemove?: boolean\n enableMultiSort?: boolean\n sortDescFirst?: boolean\n getSortedRowModel?: (\n instance: TableInstance<TGenerics>\n ) => () => RowModel<TGenerics>\n maxMultiSortColCount?: number\n isMultiSortEvent?: (e: unknown) => boolean\n}\n\nexport type SortingInstance<TGenerics extends TableGenerics> = {\n setSorting: (updater: Updater<SortingState>) => void\n resetSorting: (defaultState?: boolean) => void\n getPreSortedRowModel: () => RowModel<TGenerics>\n getSortedRowModel: () => RowModel<TGenerics>\n _getSortedRowModel?: () => RowModel<TGenerics>\n}\n\n//\n\nexport const Sorting: TableFeature = {\n getInitialState: (state): SortingTableState => {\n return {\n sorting: [],\n ...state,\n }\n },\n\n getDefaultColumnDef: <\n TGenerics extends TableGenerics\n >(): SortingColumnDef<TGenerics> => {\n return {\n sortingFn: 'auto',\n }\n },\n\n getDefaultOptions: <TGenerics extends TableGenerics>(\n instance: TableInstance<TGenerics>\n ): SortingOptions<TGenerics> => {\n return {\n onSortingChange: makeStateUpdater('sorting', instance),\n isMultiSortEvent: (e: unknown) => {\n return (e as MouseEvent).shiftKey\n },\n }\n },\n\n createColumn: <TGenerics extends TableGenerics>(\n column: Column<TGenerics>,\n instance: TableInstance<TGenerics>\n ): SortingColumn<TGenerics> => {\n return {\n getAutoSortingFn: () => {\n const firstRows = instance.getFilteredRowModel().flatRows.slice(10)\n\n let isString = false\n\n for (const row of firstRows) {\n const value = row?.getValue(column.id)\n\n if (Object.prototype.toString.call(value) === '[object Date]') {\n return sortingFns.datetime\n }\n\n if (typeof value === 'string') {\n isString = true\n\n if (value.split(reSplitAlphaNumeric).length > 1) {\n return sortingFns.alphanumeric\n }\n }\n }\n\n if (isString) {\n return sortingFns.text\n }\n\n return sortingFns.basic\n },\n getAutoSortDir: () => {\n const firstRow = instance.getFilteredRowModel().flatRows[0]\n\n const value = firstRow?.getValue(column.id)\n\n if (typeof value === 'string') {\n return 'asc'\n }\n\n return 'desc'\n },\n getSortingFn: () => {\n const userSortingFn = instance.options.sortingFns\n\n if (!column) {\n throw new Error()\n }\n\n return isFunction(column.columnDef.sortingFn)\n ? column.columnDef.sortingFn\n : column.columnDef.sortingFn === 'auto'\n ? column.getAutoSortingFn()\n : (userSortingFn as Record<string, any>)?.[\n column.columnDef.sortingFn as string\n ] ??\n (sortingFns[\n column.columnDef.sortingFn as BuiltInSortingFn\n ] as SortingFn<TGenerics>)\n },\n toggleSorting: (desc, multi) => {\n // if (column.columns.length) {\n // column.columns.forEach((c, i) => {\n // if (c.id) {\n // instance.toggleColumnSorting(c.id, undefined, multi || !!i)\n // }\n // })\n // return\n // }\n\n instance.setSorting(old => {\n // Find any existing sorting for this column\n const existingSorting = old?.find(d => d.id === column.id)\n const existingIndex = old?.findIndex(d => d.id === column.id)\n const hasDescDefined = typeof desc !== 'undefined' && desc !== null\n\n let newSorting: SortingState = []\n\n // What should we do with this sort action?\n let sortAction\n\n if (column.getCanMultiSort() && multi) {\n if (existingSorting) {\n sortAction = 'toggle'\n } else {\n sortAction = 'add'\n }\n } else {\n // Normal mode\n if (old?.length && existingIndex !== old.length - 1) {\n sortAction = 'replace'\n } else if (existingSorting) {\n sortAction = 'toggle'\n } else {\n sortAction = 'replace'\n }\n }\n\n const sortDescFirst =\n column.columnDef.sortDescFirst ??\n instance.options.sortDescFirst ??\n column.getAutoSortDir() === 'desc'\n\n // Handle toggle states that will remove the sorting\n if (\n sortAction === 'toggle' && // Must be toggling\n (instance.options.enableSortingRemoval ?? true) && // If enableSortRemove, enable in general\n !hasDescDefined && // Must not be setting desc\n (multi ? instance.options.enableMultiRemove ?? true : true) && // If multi, don't allow if enableMultiRemove\n (existingSorting?.desc // Finally, detect if it should indeed be removed\n ? !sortDescFirst\n : sortDescFirst)\n ) {\n sortAction = 'remove'\n }\n\n if (sortAction === 'replace') {\n newSorting = [\n {\n id: column.id,\n desc: hasDescDefined ? desc! : !!sortDescFirst,\n },\n ]\n } else if (sortAction === 'add' && old?.length) {\n newSorting = [\n ...old,\n {\n id: column.id,\n desc: hasDescDefined ? desc! : !!sortDescFirst,\n },\n ]\n // Take latest n columns\n newSorting.splice(\n 0,\n newSorting.length -\n (instance.options.maxMultiSortColCount ??\n Number.MAX_SAFE_INTEGER)\n )\n } else if (sortAction === 'toggle' && old?.length) {\n // This flips (or sets) the\n newSorting = old.map(d => {\n if (d.id === column.id) {\n return {\n ...d,\n desc: hasDescDefined ? desc! : !existingSorting?.desc,\n }\n }\n return d\n })\n } else if (sortAction === 'remove' && old?.length) {\n newSorting = old.filter(d => d.id !== column.id)\n }\n\n return newSorting\n })\n },\n\n getCanSort: () => {\n return (\n (column.columnDef.enableSorting ?? true) &&\n (instance.options.enableSorting ?? true) &&\n !!column.accessorFn\n )\n },\n\n getCanMultiSort: () => {\n return (\n column.columnDef.enableMultiSort ??\n instance.options.enableMultiSort ??\n !!column.accessorFn\n )\n },\n\n getIsSorted: () => {\n const columnSort = instance\n .getState()\n .sorting?.find(d => d.id === column.id)\n\n return !columnSort ? false : columnSort.desc ? 'desc' : 'asc'\n },\n\n getSortIndex: () =>\n instance.getState().sorting?.findIndex(d => d.id === column.id) ?? -1,\n\n clearSorting: () => {\n //clear sorting for just 1 column\n instance.setSorting(old =>\n old?.length ? old.filter(d => d.id !== column.id) : []\n )\n },\n\n getToggleSortingHandler: () => {\n const canSort = column.getCanSort()\n\n return (e: unknown) => {\n if (!canSort) return\n ;(e as any).persist?.()\n column.toggleSorting?.(\n undefined,\n column.getCanMultiSort()\n ? instance.options.isMultiSortEvent?.(e)\n : false\n )\n }\n },\n }\n },\n\n createInstance: <TGenerics extends TableGenerics>(\n instance: TableInstance<TGenerics>\n ): SortingInstance<TGenerics> => {\n let registered = false\n\n return {\n setSorting: updater => instance.options.onSortingChange?.(updater),\n resetSorting: defaultState => {\n instance.setSorting(\n defaultState ? [] : instance.initialState?.sorting ?? []\n )\n },\n getPreSortedRowModel: () => instance.getFilteredRowModel(),\n getSortedRowModel: () => {\n if (\n !instance._getSortedRowModel &&\n instance.options.getSortedRowModel\n ) {\n instance._getSortedRowModel =\n instance.options.getSortedRowModel(instance)\n }\n\n if (instance.options.manualSorting || !instance._getSortedRowModel) {\n return instance.getPreSortedRowModel()\n }\n\n return instance._getSortedRowModel()\n },\n }\n },\n}\n"],"names":["Sorting","getInitialState","state","sorting","getDefaultColumnDef","sortingFn","getDefaultOptions","instance","onSortingChange","makeStateUpdater","isMultiSortEvent","e","shiftKey","createColumn","column","getAutoSortingFn","firstRows","getFilteredRowModel","flatRows","slice","isString","row","value","getValue","id","Object","prototype","toString","call","sortingFns","datetime","split","reSplitAlphaNumeric","length","alphanumeric","text","basic","getAutoSortDir","firstRow","getSortingFn","userSortingFn","options","Error","isFunction","columnDef","toggleSorting","desc","multi","setSorting","old","existingSorting","find","d","existingIndex","findIndex","hasDescDefined","newSorting","sortAction","getCanMultiSort","sortDescFirst","enableSortingRemoval","enableMultiRemove","splice","maxMultiSortColCount","Number","MAX_SAFE_INTEGER","map","filter","getCanSort","enableSorting","accessorFn","enableMultiSort","getIsSorted","columnSort","getState","getSortIndex","clearSorting","getToggleSortingHandler","canSort","persist","undefined","createInstance","updater","resetSorting","defaultState","initialState","getPreSortedRowModel","getSortedRowModel","_getSortedRowModel","manualSorting"],"mappings":"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"}
1
+ {"version":3,"file":"Sorting.js","sources":["../../../src/features/Sorting.ts"],"sourcesContent":["import { RowModel } from '..'\nimport { TableFeature } from '../core/instance'\nimport {\n BuiltInSortingFn,\n reSplitAlphaNumeric,\n sortingFns,\n} from '../sortingFns'\n\nimport {\n Column,\n OnChangeFn,\n TableGenerics,\n TableInstance,\n Row,\n Updater,\n} from '../types'\n\nimport { isFunction, makeStateUpdater, Overwrite } from '../utils'\n\nexport type SortDirection = 'asc' | 'desc'\n\nexport type ColumnSort = {\n id: string\n desc: boolean\n}\n\nexport type SortingState = ColumnSort[]\n\nexport type SortingFn<TGenerics extends TableGenerics> = {\n (rowA: Row<TGenerics>, rowB: Row<TGenerics>, columnId: string): number\n}\n\nexport type CustomSortingFns<TGenerics extends TableGenerics> = Record<\n string,\n SortingFn<TGenerics>\n>\n\nexport type SortingTableState = {\n sorting: SortingState\n}\n\nexport type SortingFnOption<TGenerics extends TableGenerics> =\n | 'auto'\n | BuiltInSortingFn\n | keyof TGenerics['SortingFns']\n | SortingFn<TGenerics>\n\nexport type SortingColumnDef<TGenerics extends TableGenerics> = {\n sortingFn?: SortingFnOption<Overwrite<TGenerics, { Value: any }>>\n sortDescFirst?: boolean\n enableSorting?: boolean\n enableMultiSort?: boolean\n invertSorting?: boolean\n sortUndefined?: false | -1 | 1\n}\n\nexport type SortingColumn<TGenerics extends TableGenerics> = {\n getAutoSortingFn: () => SortingFn<TGenerics>\n getAutoSortDir: () => SortDirection\n getSortingFn: () => SortingFn<TGenerics>\n getCanSort: () => boolean\n getCanMultiSort: () => boolean\n getSortIndex: () => number\n getIsSorted: () => false | SortDirection\n clearSorting: () => void\n toggleSorting: (desc?: boolean, isMulti?: boolean) => void\n getToggleSortingHandler: () => undefined | ((event: unknown) => void)\n}\n\nexport type SortingOptions<TGenerics extends TableGenerics> = {\n manualSorting?: boolean\n sortingFns?: TGenerics['SortingFns']\n onSortingChange?: OnChangeFn<SortingState>\n enableSorting?: boolean\n enableSortingRemoval?: boolean\n enableMultiRemove?: boolean\n enableMultiSort?: boolean\n sortDescFirst?: boolean\n getSortedRowModel?: (\n instance: TableInstance<TGenerics>\n ) => () => RowModel<TGenerics>\n maxMultiSortColCount?: number\n isMultiSortEvent?: (e: unknown) => boolean\n}\n\nexport type SortingInstance<TGenerics extends TableGenerics> = {\n setSorting: (updater: Updater<SortingState>) => void\n resetSorting: (defaultState?: boolean) => void\n getPreSortedRowModel: () => RowModel<TGenerics>\n getSortedRowModel: () => RowModel<TGenerics>\n _getSortedRowModel?: () => RowModel<TGenerics>\n}\n\n//\n\nexport const Sorting: TableFeature = {\n getInitialState: (state): SortingTableState => {\n return {\n sorting: [],\n ...state,\n }\n },\n\n getDefaultColumnDef: <\n TGenerics extends TableGenerics\n >(): SortingColumnDef<TGenerics> => {\n return {\n sortingFn: 'auto',\n }\n },\n\n getDefaultOptions: <TGenerics extends TableGenerics>(\n instance: TableInstance<TGenerics>\n ): SortingOptions<TGenerics> => {\n return {\n onSortingChange: makeStateUpdater('sorting', instance),\n isMultiSortEvent: (e: unknown) => {\n return (e as MouseEvent).shiftKey\n },\n }\n },\n\n createColumn: <TGenerics extends TableGenerics>(\n column: Column<TGenerics>,\n instance: TableInstance<TGenerics>\n ): SortingColumn<TGenerics> => {\n return {\n getAutoSortingFn: () => {\n const firstRows = instance.getFilteredRowModel().flatRows.slice(10)\n\n let isString = false\n\n for (const row of firstRows) {\n const value = row?.getValue(column.id)\n\n if (Object.prototype.toString.call(value) === '[object Date]') {\n return sortingFns.datetime\n }\n\n if (typeof value === 'string') {\n isString = true\n\n if (value.split(reSplitAlphaNumeric).length > 1) {\n return sortingFns.alphanumeric\n }\n }\n }\n\n if (isString) {\n return sortingFns.text\n }\n\n return sortingFns.basic\n },\n getAutoSortDir: () => {\n const firstRow = instance.getFilteredRowModel().flatRows[0]\n\n const value = firstRow?.getValue(column.id)\n\n if (typeof value === 'string') {\n return 'asc'\n }\n\n return 'desc'\n },\n getSortingFn: () => {\n const userSortingFn = instance.options.sortingFns\n\n if (!column) {\n throw new Error()\n }\n\n return isFunction(column.columnDef.sortingFn)\n ? column.columnDef.sortingFn\n : column.columnDef.sortingFn === 'auto'\n ? column.getAutoSortingFn()\n : (userSortingFn as Record<string, any>)?.[\n column.columnDef.sortingFn as string\n ] ??\n (sortingFns[\n column.columnDef.sortingFn as BuiltInSortingFn\n ] as SortingFn<TGenerics>)\n },\n toggleSorting: (desc, multi) => {\n // if (column.columns.length) {\n // column.columns.forEach((c, i) => {\n // if (c.id) {\n // instance.toggleColumnSorting(c.id, undefined, multi || !!i)\n // }\n // })\n // return\n // }\n\n instance.setSorting(old => {\n // Find any existing sorting for this column\n const existingSorting = old?.find(d => d.id === column.id)\n const existingIndex = old?.findIndex(d => d.id === column.id)\n const hasDescDefined = typeof desc !== 'undefined' && desc !== null\n\n let newSorting: SortingState = []\n\n // What should we do with this sort action?\n let sortAction\n\n if (column.getCanMultiSort() && multi) {\n if (existingSorting) {\n sortAction = 'toggle'\n } else {\n sortAction = 'add'\n }\n } else {\n // Normal mode\n if (old?.length && existingIndex !== old.length - 1) {\n sortAction = 'replace'\n } else if (existingSorting) {\n sortAction = 'toggle'\n } else {\n sortAction = 'replace'\n }\n }\n\n const sortDescFirst =\n column.columnDef.sortDescFirst ??\n instance.options.sortDescFirst ??\n column.getAutoSortDir() === 'desc'\n\n // Handle toggle states that will remove the sorting\n if (\n sortAction === 'toggle' && // Must be toggling\n (instance.options.enableSortingRemoval ?? true) && // If enableSortRemove, enable in general\n !hasDescDefined && // Must not be setting desc\n (multi ? instance.options.enableMultiRemove ?? true : true) && // If multi, don't allow if enableMultiRemove\n (existingSorting?.desc // Finally, detect if it should indeed be removed\n ? !sortDescFirst\n : sortDescFirst)\n ) {\n sortAction = 'remove'\n }\n\n if (sortAction === 'replace') {\n newSorting = [\n {\n id: column.id,\n desc: hasDescDefined ? desc! : !!sortDescFirst,\n },\n ]\n } else if (sortAction === 'add' && old?.length) {\n newSorting = [\n ...old,\n {\n id: column.id,\n desc: hasDescDefined ? desc! : !!sortDescFirst,\n },\n ]\n // Take latest n columns\n newSorting.splice(\n 0,\n newSorting.length -\n (instance.options.maxMultiSortColCount ??\n Number.MAX_SAFE_INTEGER)\n )\n } else if (sortAction === 'toggle' && old?.length) {\n // This flips (or sets) the\n newSorting = old.map(d => {\n if (d.id === column.id) {\n return {\n ...d,\n desc: hasDescDefined ? desc! : !existingSorting?.desc,\n }\n }\n return d\n })\n } else if (sortAction === 'remove' && old?.length) {\n newSorting = old.filter(d => d.id !== column.id)\n }\n\n return newSorting\n })\n },\n\n getCanSort: () => {\n return (\n (column.columnDef.enableSorting ?? true) &&\n (instance.options.enableSorting ?? true) &&\n !!column.accessorFn\n )\n },\n\n getCanMultiSort: () => {\n return (\n column.columnDef.enableMultiSort ??\n instance.options.enableMultiSort ??\n !!column.accessorFn\n )\n },\n\n getIsSorted: () => {\n const columnSort = instance\n .getState()\n .sorting?.find(d => d.id === column.id)\n\n return !columnSort ? false : columnSort.desc ? 'desc' : 'asc'\n },\n\n getSortIndex: () =>\n instance.getState().sorting?.findIndex(d => d.id === column.id) ?? -1,\n\n clearSorting: () => {\n //clear sorting for just 1 column\n instance.setSorting(old =>\n old?.length ? old.filter(d => d.id !== column.id) : []\n )\n },\n\n getToggleSortingHandler: () => {\n const canSort = column.getCanSort()\n\n return (e: unknown) => {\n if (!canSort) return\n ;(e as any).persist?.()\n column.toggleSorting?.(\n undefined,\n column.getCanMultiSort()\n ? instance.options.isMultiSortEvent?.(e)\n : false\n )\n }\n },\n }\n },\n\n createInstance: <TGenerics extends TableGenerics>(\n instance: TableInstance<TGenerics>\n ): SortingInstance<TGenerics> => {\n let registered = false\n\n return {\n setSorting: updater => instance.options.onSortingChange?.(updater),\n resetSorting: defaultState => {\n instance.setSorting(\n defaultState ? [] : instance.initialState?.sorting ?? []\n )\n },\n getPreSortedRowModel: () => instance.getFilteredRowModel(),\n getSortedRowModel: () => {\n if (\n !instance._getSortedRowModel &&\n instance.options.getSortedRowModel\n ) {\n instance._getSortedRowModel =\n instance.options.getSortedRowModel(instance)\n }\n\n if (instance.options.manualSorting || !instance._getSortedRowModel) {\n return instance.getPreSortedRowModel()\n }\n\n return instance._getSortedRowModel()\n },\n }\n },\n}\n"],"names":["Sorting","getInitialState","state","sorting","getDefaultColumnDef","sortingFn","getDefaultOptions","instance","onSortingChange","makeStateUpdater","isMultiSortEvent","e","shiftKey","createColumn","column","getAutoSortingFn","firstRows","getFilteredRowModel","flatRows","slice","isString","row","value","getValue","id","Object","prototype","toString","call","sortingFns","datetime","split","reSplitAlphaNumeric","length","alphanumeric","text","basic","getAutoSortDir","firstRow","getSortingFn","userSortingFn","options","Error","isFunction","columnDef","toggleSorting","desc","multi","setSorting","old","existingSorting","find","d","existingIndex","findIndex","hasDescDefined","newSorting","sortAction","getCanMultiSort","sortDescFirst","enableSortingRemoval","enableMultiRemove","splice","maxMultiSortColCount","Number","MAX_SAFE_INTEGER","map","filter","getCanSort","enableSorting","accessorFn","enableMultiSort","getIsSorted","columnSort","getState","getSortIndex","clearSorting","getToggleSortingHandler","canSort","persist","undefined","createInstance","updater","resetSorting","defaultState","initialState","getPreSortedRowModel","getSortedRowModel","_getSortedRowModel","manualSorting"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Visibility.js","sources":["../../../src/features/Visibility.ts"],"sourcesContent":["import {\n Cell,\n Column,\n OnChangeFn,\n TableGenerics,\n TableInstance,\n Updater,\n Row,\n TableFeature,\n} from '../types'\nimport { makeStateUpdater, memo } from '../utils'\n\nexport type VisibilityOptions = {\n onColumnVisibilityChange?: OnChangeFn<VisibilityState>\n enableHiding?: boolean\n}\n\nexport type VisibilityDefaultOptions = {\n onColumnVisibilityChange: OnChangeFn<VisibilityState>\n}\n\nexport type VisibilityState = Record<string, boolean>\n\nexport type VisibilityTableState = {\n columnVisibility: VisibilityState\n}\n\nexport type VisibilityInstance<TGenerics extends TableGenerics> = {\n getVisibleFlatColumns: () => Column<TGenerics>[]\n getVisibleLeafColumns: () => Column<TGenerics>[]\n getLeftVisibleLeafColumns: () => Column<TGenerics>[]\n getRightVisibleLeafColumns: () => Column<TGenerics>[]\n getCenterVisibleLeafColumns: () => Column<TGenerics>[]\n setColumnVisibility: (updater: Updater<VisibilityState>) => void\n resetColumnVisibility: (defaultState?: boolean) => void\n toggleAllColumnsVisible: (value?: boolean) => void\n getIsAllColumnsVisible: () => boolean\n getIsSomeColumnsVisible: () => boolean\n getToggleAllColumnsVisibilityHandler: () =>\n | undefined\n | ((event: unknown) => void)\n}\n\nexport type VisibilityColumnDef = {\n enableHiding?: boolean\n defaultIsVisible?: boolean\n}\n\nexport type VisibilityRow<TGenerics extends TableGenerics> = {\n _getAllVisibleCells: () => Cell<TGenerics>[]\n getVisibleCells: () => Cell<TGenerics>[]\n}\n\nexport type VisibilityColumn = {\n getCanHide: () => boolean\n getIsVisible: () => boolean\n toggleVisibility: (value?: boolean) => void\n getToggleVisibilityHandler: () => (event: unknown) => void\n}\n\n//\n\nexport const Visibility: TableFeature = {\n getInitialState: (state): VisibilityTableState => {\n return {\n columnVisibility: {},\n ...state,\n }\n },\n\n getDefaultOptions: <TGenerics extends TableGenerics>(\n instance: TableInstance<TGenerics>\n ): VisibilityDefaultOptions => {\n return {\n onColumnVisibilityChange: makeStateUpdater('columnVisibility', instance),\n }\n },\n\n getDefaultColumnDef: () => {\n return {\n defaultIsVisible: true,\n }\n },\n\n createColumn: <TGenerics extends TableGenerics>(\n column: Column<TGenerics>,\n instance: TableInstance<TGenerics>\n ): VisibilityColumn => {\n return {\n toggleVisibility: value => {\n if (column.getCanHide()) {\n instance.setColumnVisibility(old => ({\n ...old,\n [column.id]: value ?? !column.getIsVisible(),\n }))\n }\n },\n getIsVisible: () => {\n return instance.getState().columnVisibility?.[column.id] ?? true\n },\n\n getCanHide: () => {\n return (\n (column.columnDef.enableHiding ?? true) &&\n (instance.options.enableHiding ?? true)\n )\n },\n getToggleVisibilityHandler: () => {\n return (e: unknown) => {\n column.toggleVisibility?.(\n ((e as MouseEvent).target as HTMLInputElement).checked\n )\n }\n },\n }\n },\n\n createRow: <TGenerics extends TableGenerics>(\n row: Row<TGenerics>,\n instance: TableInstance<TGenerics>\n ): VisibilityRow<TGenerics> => {\n return {\n _getAllVisibleCells: memo(\n () => [\n row\n .getAllCells()\n .filter(cell => cell.column.getIsVisible())\n .map(d => d.id)\n .join('_'),\n ],\n _ => {\n return row.getAllCells().filter(cell => cell.column.getIsVisible())\n },\n {\n key:\n process.env.NODE_ENV === 'production' && 'row._getAllVisibleCells',\n debug: () => instance.options.debugAll ?? instance.options.debugRows,\n }\n ),\n getVisibleCells: memo(\n () => [\n row.getLeftVisibleCells(),\n row.getCenterVisibleCells(),\n row.getRightVisibleCells(),\n ],\n (left, center, right) => [...left, ...center, ...right],\n {\n key: process.env.NODE_ENV === 'development' && 'row.getVisibleCells',\n debug: () => instance.options.debugAll ?? instance.options.debugRows,\n }\n ),\n }\n },\n\n createInstance: <TGenerics extends TableGenerics>(\n instance: TableInstance<TGenerics>\n ): VisibilityInstance<TGenerics> => {\n const makeVisibleColumnsMethod = (\n key: string,\n getColumns: () => Column<TGenerics>[]\n ): (() => Column<TGenerics>[]) => {\n return memo(\n () => [\n getColumns(),\n getColumns()\n .filter(d => d.getIsVisible())\n .map(d => d.id)\n .join('_'),\n ],\n columns => {\n return columns.filter(d => d.getIsVisible?.())\n },\n {\n key,\n debug: () =>\n instance.options.debugAll ?? instance.options.debugColumns,\n }\n )\n }\n\n return {\n getVisibleFlatColumns: makeVisibleColumnsMethod(\n 'getVisibleFlatColumns',\n () => instance.getAllFlatColumns()\n ),\n getVisibleLeafColumns: makeVisibleColumnsMethod(\n 'getVisibleLeafColumns',\n () => instance.getAllLeafColumns()\n ),\n getLeftVisibleLeafColumns: makeVisibleColumnsMethod(\n 'getLeftVisibleLeafColumns',\n () => instance.getLeftLeafColumns()\n ),\n getRightVisibleLeafColumns: makeVisibleColumnsMethod(\n 'getRightVisibleLeafColumns',\n () => instance.getRightLeafColumns()\n ),\n getCenterVisibleLeafColumns: makeVisibleColumnsMethod(\n 'getCenterVisibleLeafColumns',\n () => instance.getCenterLeafColumns()\n ),\n\n setColumnVisibility: updater =>\n instance.options.onColumnVisibilityChange?.(updater),\n\n resetColumnVisibility: defaultState => {\n instance.setColumnVisibility(\n defaultState ? {} : instance.initialState.columnVisibility ?? {}\n )\n },\n\n toggleAllColumnsVisible: value => {\n value = value ?? !instance.getIsAllColumnsVisible()\n\n instance.setColumnVisibility(\n instance.getAllLeafColumns().reduce(\n (obj, column) => ({\n ...obj,\n [column.id]: !value ? !column.getCanHide?.() : value,\n }),\n {}\n )\n )\n },\n\n getIsAllColumnsVisible: () =>\n !instance.getAllLeafColumns().some(column => !column.getIsVisible?.()),\n\n getIsSomeColumnsVisible: () =>\n instance.getAllLeafColumns().some(column => column.getIsVisible?.()),\n\n getToggleAllColumnsVisibilityHandler: () => {\n return (e: unknown) => {\n instance.toggleAllColumnsVisible(\n ((e as MouseEvent).target as HTMLInputElement)?.checked\n )\n }\n },\n }\n },\n}\n"],"names":["Visibility","getInitialState","state","columnVisibility","getDefaultOptions","instance","onColumnVisibilityChange","makeStateUpdater","getDefaultColumnDef","defaultIsVisible","createColumn","column","toggleVisibility","value","getCanHide","setColumnVisibility","old","id","getIsVisible","getState","columnDef","enableHiding","options","getToggleVisibilityHandler","e","target","checked","createRow","row","_getAllVisibleCells","memo","getAllCells","filter","cell","map","d","join","_","key","process","env","NODE_ENV","debug","debugAll","debugRows","getVisibleCells","getLeftVisibleCells","getCenterVisibleCells","getRightVisibleCells","left","center","right","createInstance","makeVisibleColumnsMethod","getColumns","columns","debugColumns","getVisibleFlatColumns","getAllFlatColumns","getVisibleLeafColumns","getAllLeafColumns","getLeftVisibleLeafColumns","getLeftLeafColumns","getRightVisibleLeafColumns","getRightLeafColumns","getCenterVisibleLeafColumns","getCenterLeafColumns","updater","resetColumnVisibility","defaultState","initialState","toggleAllColumnsVisible","getIsAllColumnsVisible","reduce","obj","some","getIsSomeColumnsVisible","getToggleAllColumnsVisibilityHandler"],"mappings":"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"}
1
+ {"version":3,"file":"Visibility.js","sources":["../../../src/features/Visibility.ts"],"sourcesContent":["import { TableFeature } from '../core/instance'\nimport {\n Cell,\n Column,\n OnChangeFn,\n TableGenerics,\n TableInstance,\n Updater,\n Row,\n} from '../types'\nimport { makeStateUpdater, memo } from '../utils'\n\nexport type VisibilityOptions = {\n onColumnVisibilityChange?: OnChangeFn<VisibilityState>\n enableHiding?: boolean\n}\n\nexport type VisibilityDefaultOptions = {\n onColumnVisibilityChange: OnChangeFn<VisibilityState>\n}\n\nexport type VisibilityState = Record<string, boolean>\n\nexport type VisibilityTableState = {\n columnVisibility: VisibilityState\n}\n\nexport type VisibilityInstance<TGenerics extends TableGenerics> = {\n getVisibleFlatColumns: () => Column<TGenerics>[]\n getVisibleLeafColumns: () => Column<TGenerics>[]\n getLeftVisibleLeafColumns: () => Column<TGenerics>[]\n getRightVisibleLeafColumns: () => Column<TGenerics>[]\n getCenterVisibleLeafColumns: () => Column<TGenerics>[]\n setColumnVisibility: (updater: Updater<VisibilityState>) => void\n resetColumnVisibility: (defaultState?: boolean) => void\n toggleAllColumnsVisible: (value?: boolean) => void\n getIsAllColumnsVisible: () => boolean\n getIsSomeColumnsVisible: () => boolean\n getToggleAllColumnsVisibilityHandler: () =>\n | undefined\n | ((event: unknown) => void)\n}\n\nexport type VisibilityColumnDef = {\n enableHiding?: boolean\n defaultIsVisible?: boolean\n}\n\nexport type VisibilityRow<TGenerics extends TableGenerics> = {\n _getAllVisibleCells: () => Cell<TGenerics>[]\n getVisibleCells: () => Cell<TGenerics>[]\n}\n\nexport type VisibilityColumn = {\n getCanHide: () => boolean\n getIsVisible: () => boolean\n toggleVisibility: (value?: boolean) => void\n getToggleVisibilityHandler: () => (event: unknown) => void\n}\n\n//\n\nexport const Visibility: TableFeature = {\n getInitialState: (state): VisibilityTableState => {\n return {\n columnVisibility: {},\n ...state,\n }\n },\n\n getDefaultOptions: <TGenerics extends TableGenerics>(\n instance: TableInstance<TGenerics>\n ): VisibilityDefaultOptions => {\n return {\n onColumnVisibilityChange: makeStateUpdater('columnVisibility', instance),\n }\n },\n\n getDefaultColumnDef: () => {\n return {\n defaultIsVisible: true,\n }\n },\n\n createColumn: <TGenerics extends TableGenerics>(\n column: Column<TGenerics>,\n instance: TableInstance<TGenerics>\n ): VisibilityColumn => {\n return {\n toggleVisibility: value => {\n if (column.getCanHide()) {\n instance.setColumnVisibility(old => ({\n ...old,\n [column.id]: value ?? !column.getIsVisible(),\n }))\n }\n },\n getIsVisible: () => {\n return instance.getState().columnVisibility?.[column.id] ?? true\n },\n\n getCanHide: () => {\n return (\n (column.columnDef.enableHiding ?? true) &&\n (instance.options.enableHiding ?? true)\n )\n },\n getToggleVisibilityHandler: () => {\n return (e: unknown) => {\n column.toggleVisibility?.(\n ((e as MouseEvent).target as HTMLInputElement).checked\n )\n }\n },\n }\n },\n\n createRow: <TGenerics extends TableGenerics>(\n row: Row<TGenerics>,\n instance: TableInstance<TGenerics>\n ): VisibilityRow<TGenerics> => {\n return {\n _getAllVisibleCells: memo(\n () => [\n row\n .getAllCells()\n .filter(cell => cell.column.getIsVisible())\n .map(d => d.id)\n .join('_'),\n ],\n _ => {\n return row.getAllCells().filter(cell => cell.column.getIsVisible())\n },\n {\n key:\n process.env.NODE_ENV === 'production' && 'row._getAllVisibleCells',\n debug: () => instance.options.debugAll ?? instance.options.debugRows,\n }\n ),\n getVisibleCells: memo(\n () => [\n row.getLeftVisibleCells(),\n row.getCenterVisibleCells(),\n row.getRightVisibleCells(),\n ],\n (left, center, right) => [...left, ...center, ...right],\n {\n key: process.env.NODE_ENV === 'development' && 'row.getVisibleCells',\n debug: () => instance.options.debugAll ?? instance.options.debugRows,\n }\n ),\n }\n },\n\n createInstance: <TGenerics extends TableGenerics>(\n instance: TableInstance<TGenerics>\n ): VisibilityInstance<TGenerics> => {\n const makeVisibleColumnsMethod = (\n key: string,\n getColumns: () => Column<TGenerics>[]\n ): (() => Column<TGenerics>[]) => {\n return memo(\n () => [\n getColumns(),\n getColumns()\n .filter(d => d.getIsVisible())\n .map(d => d.id)\n .join('_'),\n ],\n columns => {\n return columns.filter(d => d.getIsVisible?.())\n },\n {\n key,\n debug: () =>\n instance.options.debugAll ?? instance.options.debugColumns,\n }\n )\n }\n\n return {\n getVisibleFlatColumns: makeVisibleColumnsMethod(\n 'getVisibleFlatColumns',\n () => instance.getAllFlatColumns()\n ),\n getVisibleLeafColumns: makeVisibleColumnsMethod(\n 'getVisibleLeafColumns',\n () => instance.getAllLeafColumns()\n ),\n getLeftVisibleLeafColumns: makeVisibleColumnsMethod(\n 'getLeftVisibleLeafColumns',\n () => instance.getLeftLeafColumns()\n ),\n getRightVisibleLeafColumns: makeVisibleColumnsMethod(\n 'getRightVisibleLeafColumns',\n () => instance.getRightLeafColumns()\n ),\n getCenterVisibleLeafColumns: makeVisibleColumnsMethod(\n 'getCenterVisibleLeafColumns',\n () => instance.getCenterLeafColumns()\n ),\n\n setColumnVisibility: updater =>\n instance.options.onColumnVisibilityChange?.(updater),\n\n resetColumnVisibility: defaultState => {\n instance.setColumnVisibility(\n defaultState ? {} : instance.initialState.columnVisibility ?? {}\n )\n },\n\n toggleAllColumnsVisible: value => {\n value = value ?? !instance.getIsAllColumnsVisible()\n\n instance.setColumnVisibility(\n instance.getAllLeafColumns().reduce(\n (obj, column) => ({\n ...obj,\n [column.id]: !value ? !column.getCanHide?.() : value,\n }),\n {}\n )\n )\n },\n\n getIsAllColumnsVisible: () =>\n !instance.getAllLeafColumns().some(column => !column.getIsVisible?.()),\n\n getIsSomeColumnsVisible: () =>\n instance.getAllLeafColumns().some(column => column.getIsVisible?.()),\n\n getToggleAllColumnsVisibilityHandler: () => {\n return (e: unknown) => {\n instance.toggleAllColumnsVisible(\n ((e as MouseEvent).target as HTMLInputElement)?.checked\n )\n }\n },\n }\n },\n}\n"],"names":["Visibility","getInitialState","state","columnVisibility","getDefaultOptions","instance","onColumnVisibilityChange","makeStateUpdater","getDefaultColumnDef","defaultIsVisible","createColumn","column","toggleVisibility","value","getCanHide","setColumnVisibility","old","id","getIsVisible","getState","columnDef","enableHiding","options","getToggleVisibilityHandler","e","target","checked","createRow","row","_getAllVisibleCells","memo","getAllCells","filter","cell","map","d","join","_","key","process","env","NODE_ENV","debug","debugAll","debugRows","getVisibleCells","getLeftVisibleCells","getCenterVisibleCells","getRightVisibleCells","left","center","right","createInstance","makeVisibleColumnsMethod","getColumns","columns","debugColumns","getVisibleFlatColumns","getAllFlatColumns","getVisibleLeafColumns","getAllLeafColumns","getLeftVisibleLeafColumns","getLeftLeafColumns","getRightVisibleLeafColumns","getRightLeafColumns","getCenterVisibleLeafColumns","getCenterLeafColumns","updater","resetColumnVisibility","defaultState","initialState","toggleAllColumnsVisible","getIsAllColumnsVisible","reduce","obj","some","getIsSomeColumnsVisible","getToggleAllColumnsVisibilityHandler"],"mappings":";;;;;;;;;;;;;;;;AA4DA;AAEO,MAAMA,UAAwB,GAAG;AACtCC,EAAAA,eAAe,EAAGC,KAAD,IAAiC;AAChD,IAAO,OAAA;AACLC,MAAAA,gBAAgB,EAAE,EADb;AAEL,MAAGD,GAAAA,KAAAA;AAFE,KAAP,CAAA;AAID,GANqC;AAQtCE,EAAAA,iBAAiB,EACfC,QADiB,IAEY;AAC7B,IAAO,OAAA;AACLC,MAAAA,wBAAwB,EAAEC,sBAAgB,CAAC,kBAAD,EAAqBF,QAArB,CAAA;AADrC,KAAP,CAAA;AAGD,GAdqC;AAgBtCG,EAAAA,mBAAmB,EAAE,MAAM;AACzB,IAAO,OAAA;AACLC,MAAAA,gBAAgB,EAAE,IAAA;AADb,KAAP,CAAA;AAGD,GApBqC;AAsBtCC,EAAAA,YAAY,EAAE,CACZC,MADY,EAEZN,QAFY,KAGS;AACrB,IAAO,OAAA;AACLO,MAAAA,gBAAgB,EAAEC,KAAK,IAAI;AACzB,QAAA,IAAIF,MAAM,CAACG,UAAP,EAAJ,EAAyB;AACvBT,UAAAA,QAAQ,CAACU,mBAAT,CAA6BC,GAAG,KAAK,EACnC,GAAGA,GADgC;AAEnC,YAACL,CAAAA,MAAM,CAACM,EAAR,GAAaJ,KAAb,IAAaA,IAAAA,GAAAA,KAAb,GAAsB,CAACF,MAAM,CAACO,YAAP,EAAA;AAFY,WAAL,CAAhC,CAAA,CAAA;AAID,SAAA;AACF,OARI;AASLA,MAAAA,YAAY,EAAE,MAAM;AAAA,QAAA,IAAA,qBAAA,EAAA,sBAAA,CAAA;;AAClB,QAAA,OAAA,CAAA,qBAAA,GAAA,CAAA,sBAAA,GAAOb,QAAQ,CAACc,QAAT,EAAA,CAAoBhB,gBAA3B,KAAA,IAAA,GAAA,KAAA,CAAA,GAAO,sBAAuCQ,CAAAA,MAAM,CAACM,EAA9C,CAAP,KAAA,IAAA,GAAA,qBAAA,GAA4D,IAA5D,CAAA;AACD,OAXI;AAaLH,MAAAA,UAAU,EAAE,MAAM;AAAA,QAAA,IAAA,qBAAA,EAAA,qBAAA,CAAA;;AAChB,QAAA,OACE,0BAACH,MAAM,CAACS,SAAP,CAAiBC,YAAlB,KAAkC,IAAA,GAAA,qBAAA,GAAA,IAAlC,MACChB,CAAAA,qBAAAA,GAAAA,QAAQ,CAACiB,OAAT,CAAiBD,YADlB,KAAA,IAAA,GAAA,qBAAA,GACkC,IADlC,CADF,CAAA;AAID,OAlBI;AAmBLE,MAAAA,0BAA0B,EAAE,MAAM;AAChC,QAAA,OAAQC,CAAD,IAAgB;AACrBb,UAAAA,MAAM,CAACC,gBAAP,IAAA,IAAA,GAAA,KAAA,CAAA,GAAAD,MAAM,CAACC,gBAAP,CACIY,CAAD,CAAkBC,MAAnB,CAA+CC,OADjD,CAAA,CAAA;AAGD,SAJD,CAAA;AAKD,OAAA;AAzBI,KAAP,CAAA;AA2BD,GArDqC;AAuDtCC,EAAAA,SAAS,EAAE,CACTC,GADS,EAETvB,QAFS,KAGoB;AAC7B,IAAO,OAAA;AACLwB,MAAAA,mBAAmB,EAAEC,UAAI,CACvB,MAAM,CACJF,GAAG,CACAG,WADH,EAAA,CAEGC,MAFH,CAEUC,IAAI,IAAIA,IAAI,CAACtB,MAAL,CAAYO,YAAZ,EAFlB,EAGGgB,GAHH,CAGOC,CAAC,IAAIA,CAAC,CAAClB,EAHd,CAIGmB,CAAAA,IAJH,CAIQ,GAJR,CADI,CADiB,EAQvBC,CAAC,IAAI;AACH,QAAA,OAAOT,GAAG,CAACG,WAAJ,EAAA,CAAkBC,MAAlB,CAAyBC,IAAI,IAAIA,IAAI,CAACtB,MAAL,CAAYO,YAAZ,EAAjC,CAAP,CAAA;AACD,OAVsB,EAWvB;AACEoB,QAAAA,GAAG,EACDC,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAAzB,IAAyC,yBAF7C;AAGEC,QAAAA,KAAK,EAAE,MAAA;AAAA,UAAA,IAAA,qBAAA,CAAA;;AAAA,UAAMrC,OAAAA,CAAAA,qBAAAA,GAAAA,QAAQ,CAACiB,OAAT,CAAiBqB,QAAvB,oCAAmCtC,QAAQ,CAACiB,OAAT,CAAiBsB,SAApD,CAAA;AAAA,SAAA;AAHT,OAXuB,CADpB;AAkBLC,MAAAA,eAAe,EAAEf,UAAI,CACnB,MAAM,CACJF,GAAG,CAACkB,mBAAJ,EADI,EAEJlB,GAAG,CAACmB,qBAAJ,EAFI,EAGJnB,GAAG,CAACoB,oBAAJ,EAHI,CADa,EAMnB,CAACC,IAAD,EAAOC,MAAP,EAAeC,KAAf,KAAyB,CAAC,GAAGF,IAAJ,EAAU,GAAGC,MAAb,EAAqB,GAAGC,KAAxB,CANN,EAOnB;AACEb,QAAAA,GAAG,EAAEC,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,aAAzB,IAA0C,qBADjD;AAEEC,QAAAA,KAAK,EAAE,MAAA;AAAA,UAAA,IAAA,sBAAA,CAAA;;AAAA,UAAMrC,OAAAA,CAAAA,sBAAAA,GAAAA,QAAQ,CAACiB,OAAT,CAAiBqB,QAAvB,qCAAmCtC,QAAQ,CAACiB,OAAT,CAAiBsB,SAApD,CAAA;AAAA,SAAA;AAFT,OAPmB,CAAA;AAlBhB,KAAP,CAAA;AA+BD,GA1FqC;AA4FtCQ,EAAAA,cAAc,EACZ/C,QADc,IAEoB;AAClC,IAAA,MAAMgD,wBAAwB,GAAG,CAC/Bf,GAD+B,EAE/BgB,UAF+B,KAGC;AAChC,MAAA,OAAOxB,UAAI,CACT,MAAM,CACJwB,UAAU,EADN,EAEJA,UAAU,EAAA,CACPtB,MADH,CACUG,CAAC,IAAIA,CAAC,CAACjB,YAAF,EADf,CAAA,CAEGgB,GAFH,CAEOC,CAAC,IAAIA,CAAC,CAAClB,EAFd,CAGGmB,CAAAA,IAHH,CAGQ,GAHR,CAFI,CADG,EAQTmB,OAAO,IAAI;AACT,QAAA,OAAOA,OAAO,CAACvB,MAAR,CAAeG,CAAC,IAAIA,CAAC,CAACjB,YAAN,IAAIiB,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,CAAC,CAACjB,YAAF,EAApB,CAAP,CAAA;AACD,OAVQ,EAWT;AACEoB,QAAAA,GADF;AAEEI,QAAAA,KAAK,EAAE,MAAA;AAAA,UAAA,IAAA,sBAAA,CAAA;;AAAA,UACLrC,OAAAA,CAAAA,sBAAAA,GAAAA,QAAQ,CAACiB,OAAT,CAAiBqB,QADZ,qCACwBtC,QAAQ,CAACiB,OAAT,CAAiBkC,YADzC,CAAA;AAAA,SAAA;AAFT,OAXS,CAAX,CAAA;AAiBD,KArBD,CAAA;;AAuBA,IAAO,OAAA;AACLC,MAAAA,qBAAqB,EAAEJ,wBAAwB,CAC7C,uBAD6C,EAE7C,MAAMhD,QAAQ,CAACqD,iBAAT,EAFuC,CAD1C;AAKLC,MAAAA,qBAAqB,EAAEN,wBAAwB,CAC7C,uBAD6C,EAE7C,MAAMhD,QAAQ,CAACuD,iBAAT,EAFuC,CAL1C;AASLC,MAAAA,yBAAyB,EAAER,wBAAwB,CACjD,2BADiD,EAEjD,MAAMhD,QAAQ,CAACyD,kBAAT,EAF2C,CAT9C;AAaLC,MAAAA,0BAA0B,EAAEV,wBAAwB,CAClD,4BADkD,EAElD,MAAMhD,QAAQ,CAAC2D,mBAAT,EAF4C,CAb/C;AAiBLC,MAAAA,2BAA2B,EAAEZ,wBAAwB,CACnD,6BADmD,EAEnD,MAAMhD,QAAQ,CAAC6D,oBAAT,EAF6C,CAjBhD;AAsBLnD,MAAAA,mBAAmB,EAAEoD,OAAO,IAC1B9D,QAAQ,CAACiB,OAAT,CAAiBhB,wBADS,IAAA,IAAA,GAAA,KAAA,CAAA,GAC1BD,QAAQ,CAACiB,OAAT,CAAiBhB,wBAAjB,CAA4C6D,OAA5C,CAvBG;AAyBLC,MAAAA,qBAAqB,EAAEC,YAAY,IAAI;AAAA,QAAA,IAAA,qBAAA,CAAA;;AACrChE,QAAAA,QAAQ,CAACU,mBAAT,CACEsD,YAAY,GAAG,EAAH,GAAQhE,CAAAA,qBAAAA,GAAAA,QAAQ,CAACiE,YAAT,CAAsBnE,gBAA9B,oCAAkD,EADhE,CAAA,CAAA;AAGD,OA7BI;AA+BLoE,MAAAA,uBAAuB,EAAE1D,KAAK,IAAI;AAAA,QAAA,IAAA,MAAA,CAAA;;AAChCA,QAAAA,KAAK,aAAGA,KAAH,KAAA,IAAA,GAAA,MAAA,GAAY,CAACR,QAAQ,CAACmE,sBAAT,EAAlB,CAAA;AAEAnE,QAAAA,QAAQ,CAACU,mBAAT,CACEV,QAAQ,CAACuD,iBAAT,EAAA,CAA6Ba,MAA7B,CACE,CAACC,GAAD,EAAM/D,MAAN,MAAkB,EAChB,GAAG+D,GADa;AAEhB,UAAA,CAAC/D,MAAM,CAACM,EAAR,GAAa,CAACJ,KAAD,GAAS,EAACF,MAAM,CAACG,UAAR,IAACH,IAAAA,IAAAA,MAAM,CAACG,UAAP,EAAD,CAAT,GAAkCD,KAAAA;AAF/B,SAAlB,CADF,EAKE,EALF,CADF,CAAA,CAAA;AASD,OA3CI;AA6CL2D,MAAAA,sBAAsB,EAAE,MACtB,CAACnE,QAAQ,CAACuD,iBAAT,EAA6Be,CAAAA,IAA7B,CAAkChE,MAAM,IAAI,EAACA,MAAM,CAACO,YAAR,IAAA,IAAA,IAACP,MAAM,CAACO,YAAP,EAAD,CAA5C,CA9CE;AAgDL0D,MAAAA,uBAAuB,EAAE,MACvBvE,QAAQ,CAACuD,iBAAT,GAA6Be,IAA7B,CAAkChE,MAAM,IAAIA,MAAM,CAACO,YAAX,IAAA,IAAA,GAAA,KAAA,CAAA,GAAIP,MAAM,CAACO,YAAP,EAA5C,CAjDG;AAmDL2D,MAAAA,oCAAoC,EAAE,MAAM;AAC1C,QAAA,OAAQrD,CAAD,IAAgB;AAAA,UAAA,IAAA,OAAA,CAAA;;AACrBnB,UAAAA,QAAQ,CAACkE,uBAAT,CAAA,CAAA,OAAA,GACI/C,CAAD,CAAkBC,MADrB,KACE,IAAA,GAAA,KAAA,CAAA,GAAA,OAAA,CAAgDC,OADlD,CAAA,CAAA;AAGD,SAJD,CAAA;AAKD,OAAA;AAzDI,KAAP,CAAA;AA2DD,GAAA;AAjLqC;;;;"}