@tanstack/react-table 8.0.0-alpha.1 → 8.0.0-alpha.4

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 (100) hide show
  1. package/build/cjs/core.js +118 -59
  2. package/build/cjs/core.js.map +1 -1
  3. package/build/cjs/createTable.js +11 -6
  4. package/build/cjs/createTable.js.map +1 -1
  5. package/build/cjs/features/ColumnSizing.js +317 -0
  6. package/build/cjs/features/ColumnSizing.js.map +1 -0
  7. package/build/cjs/features/Expanding.js +23 -2
  8. package/build/cjs/features/Expanding.js.map +1 -1
  9. package/build/cjs/features/Filters.js +54 -5
  10. package/build/cjs/features/Filters.js.map +1 -1
  11. package/build/cjs/features/Grouping.js +23 -2
  12. package/build/cjs/features/Grouping.js.map +1 -1
  13. package/build/cjs/features/Headers.js +88 -22
  14. package/build/cjs/features/Headers.js.map +1 -1
  15. package/build/cjs/features/Ordering.js +4 -1
  16. package/build/cjs/features/Ordering.js.map +1 -1
  17. package/build/cjs/features/Pagination.js +198 -0
  18. package/build/cjs/features/Pagination.js.map +1 -0
  19. package/build/cjs/features/Pinning.js +0 -14
  20. package/build/cjs/features/Pinning.js.map +1 -1
  21. package/build/cjs/features/RowSelection.js +541 -0
  22. package/build/cjs/features/RowSelection.js.map +1 -0
  23. package/build/cjs/features/Sorting.js +76 -18
  24. package/build/cjs/features/Sorting.js.map +1 -1
  25. package/build/cjs/features/Visibility.js +8 -2
  26. package/build/cjs/features/Visibility.js.map +1 -1
  27. package/build/cjs/index.js +2 -0
  28. package/build/cjs/index.js.map +1 -1
  29. package/build/cjs/sortTypes.js +1 -0
  30. package/build/cjs/sortTypes.js.map +1 -1
  31. package/build/cjs/utils/columnFilterRowsFn.js +3 -2
  32. package/build/cjs/utils/columnFilterRowsFn.js.map +1 -1
  33. package/build/cjs/utils/expandRowsFn.js +2 -2
  34. package/build/cjs/utils/expandRowsFn.js.map +1 -1
  35. package/build/cjs/utils/globalFilterRowsFn.js +3 -2
  36. package/build/cjs/utils/globalFilterRowsFn.js.map +1 -1
  37. package/build/cjs/utils/groupRowsFn.js +4 -3
  38. package/build/cjs/utils/groupRowsFn.js.map +1 -1
  39. package/build/cjs/utils/paginateRowsFn.js +44 -0
  40. package/build/cjs/utils/paginateRowsFn.js.map +1 -0
  41. package/build/cjs/utils/sortRowsFn.js +3 -2
  42. package/build/cjs/utils/sortRowsFn.js.map +1 -1
  43. package/build/cjs/utils.js +6 -3
  44. package/build/cjs/utils.js.map +1 -1
  45. package/build/esm/index.js +1613 -225
  46. package/build/esm/index.js.map +1 -1
  47. package/build/stats-html.html +1 -1
  48. package/build/stats-react.json +363 -217
  49. package/build/types/core.d.ts +14 -25
  50. package/build/types/createTable.d.ts +21 -3
  51. package/build/types/features/ColumnSizing.d.ts +67 -0
  52. package/build/types/features/Expanding.d.ts +2 -1
  53. package/build/types/features/Filters.d.ts +7 -2
  54. package/build/types/features/Grouping.d.ts +2 -2
  55. package/build/types/features/Ordering.d.ts +1 -1
  56. package/build/types/features/Pagination.d.ts +44 -0
  57. package/build/types/features/Pinning.d.ts +3 -3
  58. package/build/types/features/RowSelection.d.ts +66 -0
  59. package/build/types/features/Sorting.d.ts +5 -2
  60. package/build/types/index.d.ts +1 -0
  61. package/build/types/sortTypes.d.ts +5 -4
  62. package/build/types/types.d.ts +13 -8
  63. package/build/types/utils/columnFilterRowsFn.d.ts +2 -2
  64. package/build/types/utils/expandRowsFn.d.ts +2 -2
  65. package/build/types/utils/globalFilterRowsFn.d.ts +2 -2
  66. package/build/types/utils/groupRowsFn.d.ts +2 -2
  67. package/build/types/utils/paginateRowsFn.d.ts +2 -0
  68. package/build/types/utils/sortRowsFn.d.ts +2 -2
  69. package/build/types/utils.d.ts +7 -3
  70. package/build/umd/index.development.js +1613 -224
  71. package/build/umd/index.development.js.map +1 -1
  72. package/build/umd/index.production.js +1 -1
  73. package/build/umd/index.production.js.map +1 -1
  74. package/package.json +1 -1
  75. package/src/core.tsx +252 -265
  76. package/src/createTable.tsx +69 -9
  77. package/src/features/ColumnSizing.ts +453 -0
  78. package/src/features/Expanding.ts +27 -11
  79. package/src/features/Filters.ts +75 -20
  80. package/src/features/Grouping.ts +27 -12
  81. package/src/features/Headers.ts +55 -50
  82. package/src/features/Ordering.ts +2 -3
  83. package/src/features/Pagination.ts +327 -0
  84. package/src/features/Pinning.ts +3 -16
  85. package/src/features/RowSelection.ts +831 -0
  86. package/src/features/Sorting.ts +82 -22
  87. package/src/features/Visibility.ts +2 -4
  88. package/src/index.tsx +1 -0
  89. package/src/sortTypes.ts +1 -1
  90. package/src/types.ts +55 -9
  91. package/src/utils/columnFilterRowsFn.ts +5 -12
  92. package/src/utils/expandRowsFn.ts +2 -5
  93. package/src/utils/globalFilterRowsFn.ts +3 -10
  94. package/src/utils/groupRowsFn.ts +3 -5
  95. package/src/utils/paginateRowsFn.ts +34 -0
  96. package/src/utils/sortRowsFn.ts +5 -5
  97. package/src/utils.tsx +20 -6
  98. package/src/features/withColumnResizing.oldts +0 -281
  99. package/src/features/withPagination.oldts +0 -208
  100. package/src/features/withRowSelection.oldts +0 -467
@@ -1 +1 @@
1
- {"version":3,"file":"Headers.js","sources":["../../../src/features/Headers.ts"],"sourcesContent":["import {\n Cell,\n Column,\n FooterGroupProps,\n FooterProps,\n Getter,\n Header,\n HeaderGroup,\n HeaderGroupProps,\n HeaderProps,\n PropGetterValue,\n ReactTable,\n Row,\n} from '../types'\nimport { propGetter, memo, flexRender } from '../utils'\n\nexport type HeadersRow<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n> = {\n _getAllVisibleCells: () => Cell<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getVisibleCells: () => Cell<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getLeftVisibleCells: () => Cell<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getCenterVisibleCells: () => Cell<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getRightVisibleCells: () => Cell<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n}\n\nexport type HeadersInstance<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n> = {\n createHeader: (\n column: Column<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>,\n options: {\n id?: string\n isPlaceholder?: boolean\n placeholderId?: string\n depth: number\n }\n ) => Header<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n getHeaderGroups: () => HeaderGroup<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getLeftHeaderGroups: () => HeaderGroup<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getCenterHeaderGroups: () => HeaderGroup<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getRightHeaderGroups: () => HeaderGroup<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n\n getFooterGroups: () => HeaderGroup<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getCenterFooterGroups: () => HeaderGroup<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getLeftFooterGroups: () => HeaderGroup<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getRightFooterGroups: () => HeaderGroup<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n\n getFlatHeaders: () => Header<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getLeftFlatHeaders: () => Header<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getCenterFlatHeaders: () => Header<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getRightFlatHeaders: () => Header<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n\n getLeafHeaders: () => Header<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getLeftLeafHeaders: () => Header<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getCenterLeafHeaders: () => Header<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getRightLeafHeaders: () => Header<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n\n getHeader: (\n id: string\n ) => Header<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n\n getHeaderGroupProps: <TGetter extends Getter<HeaderGroupProps>>(\n id: string,\n userProps?: TGetter\n ) => undefined | PropGetterValue<HeaderGroupProps, TGetter>\n getFooterGroupProps: <TGetter extends Getter<FooterGroupProps>>(\n id: string,\n userProps?: TGetter\n ) => undefined | PropGetterValue<FooterGroupProps, TGetter>\n getHeaderProps: <TGetter extends Getter<HeaderProps>>(\n headerId: string,\n userProps?: TGetter\n ) => undefined | PropGetterValue<HeaderProps, TGetter>\n getFooterProps: <TGetter extends Getter<FooterProps>>(\n headerId: string,\n userProps?: TGetter\n ) => undefined | PropGetterValue<FooterProps, TGetter>\n getTotalWidth: () => number\n}\n\n//\n\nexport function createRow<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n>(\n row: Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>,\n instance: ReactTable<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n): HeadersRow<TData, TValue, TFilterFns, TSortingFns, TAggregationFns> {\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 'row._getAllVisibleCells',\n instance.options.debug\n ),\n getVisibleCells: memo(\n () => [\n row.getLeftVisibleCells(),\n row.getCenterVisibleCells(),\n row.getRightVisibleCells(),\n ],\n (left, center, right) => [...left, ...center, ...right],\n 'row.getVisibleCells',\n instance.options.debug\n ),\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 = [...(left ?? []), ...(right ?? [])]\n\n return allCells.filter(d => !leftAndRight.includes(d.columnId))\n },\n 'row.getCenterVisibleCells',\n instance.options.debug\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\n return cells\n },\n 'row.getLeftVisibleCells',\n instance.options.debug\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\n return cells\n },\n 'row.getRightVisibleCells',\n instance.options.debug\n ),\n }\n}\n\nexport function getInstance<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n>(\n instance: ReactTable<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n): HeadersInstance<TData, TValue, TFilterFns, TSortingFns, TAggregationFns> {\n return {\n createHeader: (\n column: Column<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>,\n options: {\n id?: string\n isPlaceholder?: boolean\n placeholderId?: string\n depth: number\n }\n ) => {\n const id = options.id ?? column.id\n\n let header: Header<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n > = {\n id,\n column,\n isPlaceholder: options.isPlaceholder,\n placeholderId: options.placeholderId,\n depth: options.depth,\n subHeaders: [],\n colSpan: 0,\n rowSpan: 0,\n getWidth: () => {\n let sum = 0\n\n const recurse = (\n header: Header<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >\n ) => {\n if (header.subHeaders.length) {\n header.subHeaders.forEach(recurse)\n } else {\n sum += header.column.getWidth() ?? 0\n }\n }\n\n recurse(header)\n\n return sum\n },\n getLeafHeaders: (): Header<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[] => {\n const leafHeaders: Header<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[] = []\n\n const recurseHeader = (\n h: Header<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n ) => {\n if (h.subHeaders && h.subHeaders.length) {\n h.subHeaders.map(recurseHeader)\n }\n leafHeaders.push(h)\n }\n\n recurseHeader(header)\n return leafHeaders\n },\n getHeaderProps: userProps =>\n instance.getHeaderProps(header.id, userProps)!,\n getFooterProps: userProps =>\n instance.getFooterProps(header.id, userProps)!,\n renderHeader: () => flexRender(column.header, { header, column }),\n renderFooter: () => flexRender(column.footer, { header, column }),\n }\n\n return header\n },\n\n // Header Groups\n\n getHeaderGroups: memo(\n () => [\n instance.getAllColumns(),\n instance.getVisibleLeafColumns(),\n instance.getState().columnPinning.left,\n instance.getState().columnPinning.right,\n ],\n (allColumns, leafColumns, left, right) => {\n const leftColumns = leafColumns.filter(column =>\n left?.includes(column.id)\n )\n const rightColumns = leafColumns.filter(column =>\n right?.includes(column.id)\n )\n const centerColumns = leafColumns.filter(\n column => !left?.includes(column.id) && !right?.includes(column.id)\n )\n const headerGroups = buildHeaderGroups(\n allColumns,\n [...leftColumns, ...centerColumns, ...rightColumns],\n instance\n )\n\n return headerGroups\n },\n 'getHeaderGroups',\n instance.options.debug\n ),\n\n getCenterHeaderGroups: memo(\n () => [\n instance.getAllColumns(),\n instance.getVisibleLeafColumns(),\n instance.getState().columnPinning.left,\n instance.getState().columnPinning.right,\n ],\n (allColumns, leafColumns, left, right) => {\n leafColumns = leafColumns.filter(\n column => !left?.includes(column.id) && !right?.includes(column.id)\n )\n return buildHeaderGroups(allColumns, leafColumns, instance, 'center')\n },\n 'getCenterHeaderGroups',\n instance.options.debug\n ),\n\n getLeftHeaderGroups: memo(\n () => [\n instance.getAllColumns(),\n instance.getVisibleLeafColumns(),\n instance.getState().columnPinning.left,\n ],\n (allColumns, leafColumns, left) => {\n leafColumns = leafColumns.filter(column => left?.includes(column.id))\n return buildHeaderGroups(allColumns, leafColumns, instance, 'left')\n },\n 'getLeftHeaderGroups',\n instance.options.debug\n ),\n\n getRightHeaderGroups: memo(\n () => [\n instance.getAllColumns(),\n instance.getVisibleLeafColumns(),\n instance.getState().columnPinning.right,\n ],\n (allColumns, leafColumns, right) => {\n leafColumns = leafColumns.filter(column => right?.includes(column.id))\n return buildHeaderGroups(allColumns, leafColumns, instance, 'right')\n },\n 'getRightHeaderGroups',\n instance.options.debug\n ),\n\n // Footer Groups\n\n getFooterGroups: memo(\n () => [instance.getHeaderGroups()],\n headerGroups => {\n return [...headerGroups].reverse()\n },\n 'getFooterGroups',\n instance.options.debug\n ),\n\n getLeftFooterGroups: memo(\n () => [instance.getLeftHeaderGroups()],\n headerGroups => {\n return [...headerGroups].reverse()\n },\n 'getLeftFooterGroups',\n instance.options.debug\n ),\n\n getCenterFooterGroups: memo(\n () => [instance.getCenterHeaderGroups()],\n headerGroups => {\n return [...headerGroups].reverse()\n },\n 'getCenterFooterGroups',\n instance.options.debug\n ),\n\n getRightFooterGroups: memo(\n () => [instance.getRightHeaderGroups()],\n headerGroups => {\n return [...headerGroups].reverse()\n },\n 'getRightFooterGroups',\n instance.options.debug\n ),\n\n // Flat Headers\n\n getFlatHeaders: memo(\n () => [instance.getHeaderGroups()],\n headerGroups => {\n return headerGroups\n .map(headerGroup => {\n return headerGroup.headers\n })\n .flat()\n },\n 'getFlatHeaders',\n instance.options.debug\n ),\n\n getLeftFlatHeaders: memo(\n () => [instance.getLeftHeaderGroups()],\n left => {\n return left\n .map(headerGroup => {\n return headerGroup.headers\n })\n .flat()\n },\n 'getLeftFlatHeaders',\n instance.options.debug\n ),\n\n getCenterFlatHeaders: memo(\n () => [instance.getCenterHeaderGroups()],\n left => {\n return left\n .map(headerGroup => {\n return headerGroup.headers\n })\n .flat()\n },\n 'getCenterFlatHeaders',\n instance.options.debug\n ),\n\n getRightFlatHeaders: memo(\n () => [instance.getRightHeaderGroups()],\n left => {\n return left\n .map(headerGroup => {\n return headerGroup.headers\n })\n .flat()\n },\n 'getRightFlatHeaders',\n instance.options.debug\n ),\n\n // Leaf Headers\n\n getCenterLeafHeaders: memo(\n () => [instance.getCenterFlatHeaders()],\n flatHeaders => {\n return flatHeaders.filter(header => !header.subHeaders?.length)\n },\n 'getCenterLeafHeaders',\n instance.options.debug\n ),\n\n getLeftLeafHeaders: memo(\n () => [instance.getLeftFlatHeaders()],\n flatHeaders => {\n return flatHeaders.filter(header => !header.subHeaders?.length)\n },\n 'getLeftLeafHeaders',\n instance.options.debug\n ),\n\n getRightLeafHeaders: memo(\n () => [instance.getRightFlatHeaders()],\n flatHeaders => {\n return flatHeaders.filter(header => !header.subHeaders?.length)\n },\n 'getRightLeafHeaders',\n instance.options.debug\n ),\n\n getLeafHeaders: memo(\n () => [\n instance.getLeftHeaderGroups(),\n instance.getCenterHeaderGroups(),\n instance.getRightHeaderGroups(),\n ],\n (left, center, right) => {\n return [\n ...(left[0]?.headers ?? []),\n ...(center[0]?.headers ?? []),\n ...(right[0]?.headers ?? []),\n ]\n .map(header => {\n return header.getLeafHeaders()\n })\n .flat()\n },\n 'getLeafHeaders',\n instance.options.debug\n ),\n\n getHeader: (id: string) => {\n const header = [\n ...instance.getFlatHeaders(),\n ...instance.getCenterFlatHeaders(),\n ...instance.getLeftFlatHeaders(),\n ...instance.getRightFlatHeaders(),\n ].find(d => d.id === id)\n\n if (!header) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(`Could not find header with id: ${id}`)\n }\n throw new Error()\n }\n\n return header\n },\n\n getHeaderGroupProps: (id, userProps) => {\n const headerGroup = instance.getHeaderGroups().find(d => d.id === id)\n\n if (!headerGroup) {\n return\n }\n\n return propGetter(\n {\n key: headerGroup.id,\n role: 'row',\n },\n userProps\n )\n },\n\n getFooterGroupProps: (id, userProps) => {\n const headerGroup = instance.getFooterGroups().find(d => d.id === id)\n\n if (!headerGroup) {\n return\n }\n\n const initialProps = {\n key: headerGroup.id,\n role: 'row',\n }\n\n return propGetter(initialProps, userProps)\n },\n\n getHeaderProps: (id, userProps) => {\n const header = instance.getHeader(id)\n\n if (!header) {\n throw new Error()\n }\n\n const initialProps: HeaderProps = {\n key: header.id,\n role: 'columnheader',\n colSpan: header.colSpan,\n rowSpan: header.rowSpan,\n }\n\n return propGetter(initialProps, userProps)\n },\n\n getFooterProps: (id, userProps) => {\n const header = instance.getHeader(id)\n if (!header) {\n return\n }\n\n const initialProps: FooterProps = {\n key: header.id,\n role: 'columnfooter',\n colSpan: header.colSpan,\n rowSpan: header.rowSpan,\n }\n\n return propGetter(initialProps, userProps)\n },\n\n getTotalWidth: () => {\n let width = 0\n\n instance.getVisibleLeafColumns().forEach(column => {\n width += column.getWidth() ?? 0\n })\n\n return width\n },\n }\n}\n\nexport function buildHeaderGroups<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n>(\n allColumns: Column<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>[],\n columnsToGroup: Column<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[],\n instance: ReactTable<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>,\n headerFamily?: 'center' | 'left' | 'right'\n) {\n // Find the max depth of the columns:\n // build the leaf column row\n // build each buffer row going up\n // placeholder for non-existent level\n // real column for existing level\n\n let maxDepth = 0\n\n const findMaxDepth = (\n columns: Column<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>[],\n depth = 1\n ) => {\n maxDepth = Math.max(maxDepth, depth)\n\n columns\n .filter(column => column.getIsVisible())\n .forEach(column => {\n if (column.columns?.length) {\n findMaxDepth(column.columns, depth + 1)\n }\n }, 0)\n }\n\n findMaxDepth(allColumns)\n\n let headerGroups: HeaderGroup<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[] = []\n\n const createHeaderGroup = (\n headersToGroup: Header<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[],\n depth: number\n ) => {\n // The header group we are creating\n const headerGroup: HeaderGroup<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n > = {\n depth,\n id: [headerFamily, `${depth}`].filter(Boolean).join('_'),\n headers: [],\n getHeaderGroupProps: getterValue =>\n instance.getHeaderGroupProps(`${depth}`, getterValue)!,\n getFooterGroupProps: getterValue =>\n instance.getFooterGroupProps(`${depth}`, getterValue)!,\n }\n\n // The parent columns we're going to scan next\n const parentHeaders: Header<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[] = []\n\n // Scan each column for parents\n headersToGroup.forEach(headerToGroup => {\n // What is the latest (last) parent column?\n\n const latestParentHeader = [...parentHeaders].reverse()[0]\n\n const isLeafHeader = headerToGroup.column.depth === headerGroup.depth\n\n let column: Column<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >\n let isPlaceholder = false\n\n if (isLeafHeader && headerToGroup.column.parent) {\n // The parent header is new\n column = headerToGroup.column.parent\n } else {\n // The parent header is repeated\n column = headerToGroup.column\n isPlaceholder = true\n }\n\n const header = instance.createHeader(column, {\n id: [headerFamily, depth, column.id, headerToGroup?.id]\n .filter(Boolean)\n .join('_'),\n isPlaceholder,\n placeholderId: isPlaceholder\n ? `${parentHeaders.filter(d => d.column === column).length}`\n : undefined,\n depth,\n })\n\n if (!latestParentHeader || latestParentHeader.column !== header.column) {\n header.subHeaders.push(headerToGroup)\n parentHeaders.push(header)\n } else {\n latestParentHeader.subHeaders.push(headerToGroup)\n }\n\n // if (!headerToGroup.isPlaceholder) {\n // headerToGroup.column.header = headerToGroup;\n // }\n\n headerGroup.headers.push(headerToGroup)\n })\n\n headerGroups.push(headerGroup)\n\n if (depth > 0) {\n createHeaderGroup(parentHeaders, depth - 1)\n }\n }\n\n const bottomHeaders = columnsToGroup.map(column =>\n instance.createHeader(column, {\n depth: maxDepth,\n })\n )\n\n createHeaderGroup(bottomHeaders, maxDepth - 1)\n\n headerGroups.reverse()\n\n // headerGroups = headerGroups.filter(headerGroup => {\n // return !headerGroup.headers.every(header => header.isPlaceholder)\n // })\n\n const recurseHeadersForSpans = (\n headers: Header<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>[]\n ) => {\n const filteredHeaders = headers.filter(header =>\n header.column.getIsVisible()\n )\n\n return filteredHeaders.map(header => {\n let colSpan = 0\n let rowSpan = 0\n let childRowSpans = [0]\n\n if (header.subHeaders && header.subHeaders.length) {\n childRowSpans = []\n\n recurseHeadersForSpans(header.subHeaders).forEach(\n ({ colSpan: childColSpan, rowSpan: childRowSpan }) => {\n colSpan += childColSpan\n childRowSpans.push(childRowSpan)\n }\n )\n } else {\n colSpan = 1\n }\n\n const minChildRowSpan = Math.min(...childRowSpans)\n rowSpan = rowSpan + minChildRowSpan\n\n header.colSpan = colSpan > 0 ? colSpan : undefined\n header.rowSpan = rowSpan > 0 ? rowSpan : undefined\n\n return { colSpan, rowSpan }\n })\n }\n\n recurseHeadersForSpans(headerGroups[0]?.headers ?? [])\n\n return headerGroups\n}\n"],"names":["createRow","row","instance","_getAllVisibleCells","memo","getAllCells","filter","cell","column","getIsVisible","map","d","id","join","_","options","debug","getVisibleCells","getLeftVisibleCells","getCenterVisibleCells","getRightVisibleCells","left","center","right","getState","columnPinning","allCells","leftAndRight","includes","columnId","cells","find","Boolean","getInstance","createHeader","header","isPlaceholder","placeholderId","depth","subHeaders","colSpan","rowSpan","getWidth","sum","recurse","length","forEach","getLeafHeaders","leafHeaders","recurseHeader","h","push","getHeaderProps","userProps","getFooterProps","renderHeader","flexRender","renderFooter","footer","getHeaderGroups","getAllColumns","getVisibleLeafColumns","allColumns","leafColumns","leftColumns","rightColumns","centerColumns","headerGroups","buildHeaderGroups","getCenterHeaderGroups","getLeftHeaderGroups","getRightHeaderGroups","getFooterGroups","reverse","getLeftFooterGroups","getCenterFooterGroups","getRightFooterGroups","getFlatHeaders","headerGroup","headers","flat","getLeftFlatHeaders","getCenterFlatHeaders","getRightFlatHeaders","getCenterLeafHeaders","flatHeaders","getLeftLeafHeaders","getRightLeafHeaders","getHeader","process","env","NODE_ENV","console","warn","Error","getHeaderGroupProps","propGetter","key","role","getFooterGroupProps","initialProps","getTotalWidth","width","columnsToGroup","headerFamily","maxDepth","findMaxDepth","columns","Math","max","createHeaderGroup","headersToGroup","getterValue","parentHeaders","headerToGroup","latestParentHeader","isLeafHeader","parent","undefined","bottomHeaders","recurseHeadersForSpans","filteredHeaders","childRowSpans","childColSpan","childRowSpan","minChildRowSpan","min"],"mappings":"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"}
1
+ {"version":3,"file":"Headers.js","sources":["../../../src/features/Headers.ts"],"sourcesContent":["import {\n Cell,\n Column,\n CoreHeader,\n FooterGroupProps,\n FooterProps,\n Getter,\n Header,\n HeaderGroup,\n HeaderGroupProps,\n HeaderProps,\n PropGetterValue,\n ReactTable,\n Row,\n} from '../types'\nimport { propGetter, memo, flexRender } from '../utils'\n\nimport * as ColumnSizing from './ColumnSizing'\nimport * as Sorting from './Sorting'\n\nexport type HeadersRow<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n> = {\n _getAllVisibleCells: () => Cell<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getVisibleCells: () => Cell<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getLeftVisibleCells: () => Cell<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getCenterVisibleCells: () => Cell<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getRightVisibleCells: () => Cell<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n}\n\nexport type HeadersInstance<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n> = {\n createHeader: (\n column: Column<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>,\n options: {\n id?: string\n isPlaceholder?: boolean\n placeholderId?: string\n depth: number\n }\n ) => Header<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n getHeaderGroups: () => HeaderGroup<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getLeftHeaderGroups: () => HeaderGroup<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getCenterHeaderGroups: () => HeaderGroup<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getRightHeaderGroups: () => HeaderGroup<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n\n getFooterGroups: () => HeaderGroup<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getCenterFooterGroups: () => HeaderGroup<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getLeftFooterGroups: () => HeaderGroup<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getRightFooterGroups: () => HeaderGroup<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n\n getFlatHeaders: () => Header<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getLeftFlatHeaders: () => Header<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getCenterFlatHeaders: () => Header<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getRightFlatHeaders: () => Header<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n\n getLeafHeaders: () => Header<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getLeftLeafHeaders: () => Header<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getCenterLeafHeaders: () => Header<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getRightLeafHeaders: () => Header<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n\n getHeader: (\n id: string\n ) => Header<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n\n getHeaderGroupProps: <TGetter extends Getter<HeaderGroupProps>>(\n id: string,\n userProps?: TGetter\n ) => undefined | PropGetterValue<HeaderGroupProps, TGetter>\n getFooterGroupProps: <TGetter extends Getter<FooterGroupProps>>(\n id: string,\n userProps?: TGetter\n ) => undefined | PropGetterValue<FooterGroupProps, TGetter>\n getHeaderProps: <TGetter extends Getter<HeaderProps>>(\n headerId: string,\n userProps?: TGetter\n ) => undefined | PropGetterValue<HeaderProps, TGetter>\n getFooterProps: <TGetter extends Getter<FooterProps>>(\n headerId: string,\n userProps?: TGetter\n ) => undefined | PropGetterValue<FooterProps, TGetter>\n getTotalWidth: () => number\n}\n\n//\n\nexport function createRow<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n>(\n row: Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>,\n instance: ReactTable<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n): HeadersRow<TData, TValue, TFilterFns, TSortingFns, TAggregationFns> {\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 { key: 'row._getAllVisibleCells', debug: instance.options.debug }\n ),\n getVisibleCells: memo(\n () => [\n row.getLeftVisibleCells(),\n row.getCenterVisibleCells(),\n row.getRightVisibleCells(),\n ],\n (left, center, right) => [...left, ...center, ...right],\n { key: 'row.getVisibleCells', debug: instance.options.debug }\n ),\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 = [...(left ?? []), ...(right ?? [])]\n\n return allCells.filter(d => !leftAndRight.includes(d.columnId))\n },\n { key: 'row.getCenterVisibleCells', debug: instance.options.debug }\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\n return cells\n },\n { key: 'row.getLeftVisibleCells', debug: instance.options.debug }\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\n return cells\n },\n { key: 'row.getRightVisibleCells', debug: instance.options.debug }\n ),\n }\n}\n\nexport function getInstance<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n>(\n instance: ReactTable<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n): HeadersInstance<TData, TValue, TFilterFns, TSortingFns, TAggregationFns> {\n return {\n createHeader: (\n column: Column<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>,\n options: {\n id?: string\n isPlaceholder?: boolean\n placeholderId?: string\n depth: number\n }\n ) => {\n const id = options.id ?? column.id\n\n let header: CoreHeader<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n > = {\n id,\n column,\n isPlaceholder: options.isPlaceholder,\n placeholderId: options.placeholderId,\n depth: options.depth,\n subHeaders: [],\n colSpan: 0,\n rowSpan: 0,\n getWidth: () => {\n let sum = 0\n\n const recurse = (\n header: CoreHeader<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >\n ) => {\n if (header.subHeaders.length) {\n header.subHeaders.forEach(recurse)\n } else {\n sum += header.column.getWidth() ?? 0\n }\n }\n\n recurse(header)\n\n return sum\n },\n getLeafHeaders: (): Header<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[] => {\n const leafHeaders: CoreHeader<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[] = []\n\n const recurseHeader = (\n h: CoreHeader<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >\n ) => {\n if (h.subHeaders && h.subHeaders.length) {\n h.subHeaders.map(recurseHeader)\n }\n leafHeaders.push(h)\n }\n\n recurseHeader(header)\n\n return leafHeaders as Header<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n },\n getHeaderProps: userProps =>\n instance.getHeaderProps(header.id, userProps)!,\n getFooterProps: userProps =>\n instance.getFooterProps(header.id, userProps)!,\n renderHeader: () =>\n flexRender(column.header, { instance, header, column }),\n renderFooter: () =>\n flexRender(column.footer, { instance, header, column }),\n }\n\n // Yes, we have to convert instance to uknown, because we know more than the compiler here.\n return header as Header<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >\n },\n\n // Header Groups\n\n getHeaderGroups: memo(\n () => [\n instance.getAllColumns(),\n instance.getVisibleLeafColumns(),\n instance.getState().columnPinning.left,\n instance.getState().columnPinning.right,\n ],\n (allColumns, leafColumns, left, right) => {\n const leftColumns = leafColumns.filter(column =>\n left?.includes(column.id)\n )\n const rightColumns = leafColumns.filter(column =>\n right?.includes(column.id)\n )\n const centerColumns = leafColumns.filter(\n column => !left?.includes(column.id) && !right?.includes(column.id)\n )\n const headerGroups = buildHeaderGroups(\n allColumns,\n [...leftColumns, ...centerColumns, ...rightColumns],\n instance\n )\n\n return headerGroups\n },\n { key: 'getHeaderGroups', debug: instance.options.debug }\n ),\n\n getCenterHeaderGroups: memo(\n () => [\n instance.getAllColumns(),\n instance.getVisibleLeafColumns(),\n instance.getState().columnPinning.left,\n instance.getState().columnPinning.right,\n ],\n (allColumns, leafColumns, left, right) => {\n leafColumns = leafColumns.filter(\n column => !left?.includes(column.id) && !right?.includes(column.id)\n )\n return buildHeaderGroups(allColumns, leafColumns, instance, 'center')\n },\n { key: 'getCenterHeaderGroups', debug: instance.options.debug }\n ),\n\n getLeftHeaderGroups: memo(\n () => [\n instance.getAllColumns(),\n instance.getVisibleLeafColumns(),\n instance.getState().columnPinning.left,\n ],\n (allColumns, leafColumns, left) => {\n leafColumns = leafColumns.filter(column => left?.includes(column.id))\n return buildHeaderGroups(allColumns, leafColumns, instance, 'left')\n },\n { key: 'getLeftHeaderGroups', debug: instance.options.debug }\n ),\n\n getRightHeaderGroups: memo(\n () => [\n instance.getAllColumns(),\n instance.getVisibleLeafColumns(),\n instance.getState().columnPinning.right,\n ],\n (allColumns, leafColumns, right) => {\n leafColumns = leafColumns.filter(column => right?.includes(column.id))\n return buildHeaderGroups(allColumns, leafColumns, instance, 'right')\n },\n { key: 'getRightHeaderGroups', debug: instance.options.debug }\n ),\n\n // Footer Groups\n\n getFooterGroups: memo(\n () => [instance.getHeaderGroups()],\n headerGroups => {\n return [...headerGroups].reverse()\n },\n { key: 'getFooterGroups', debug: instance.options.debug }\n ),\n\n getLeftFooterGroups: memo(\n () => [instance.getLeftHeaderGroups()],\n headerGroups => {\n return [...headerGroups].reverse()\n },\n { key: 'getLeftFooterGroups', debug: instance.options.debug }\n ),\n\n getCenterFooterGroups: memo(\n () => [instance.getCenterHeaderGroups()],\n headerGroups => {\n return [...headerGroups].reverse()\n },\n { key: 'getCenterFooterGroups', debug: instance.options.debug }\n ),\n\n getRightFooterGroups: memo(\n () => [instance.getRightHeaderGroups()],\n headerGroups => {\n return [...headerGroups].reverse()\n },\n { key: 'getRightFooterGroups', debug: instance.options.debug }\n ),\n\n // Flat Headers\n\n getFlatHeaders: memo(\n () => [instance.getHeaderGroups()],\n headerGroups => {\n return headerGroups\n .map(headerGroup => {\n return headerGroup.headers\n })\n .flat()\n },\n { key: 'getFlatHeaders', debug: instance.options.debug }\n ),\n\n getLeftFlatHeaders: memo(\n () => [instance.getLeftHeaderGroups()],\n left => {\n return left\n .map(headerGroup => {\n return headerGroup.headers\n })\n .flat()\n },\n { key: 'getLeftFlatHeaders', debug: instance.options.debug }\n ),\n\n getCenterFlatHeaders: memo(\n () => [instance.getCenterHeaderGroups()],\n left => {\n return left\n .map(headerGroup => {\n return headerGroup.headers\n })\n .flat()\n },\n { key: 'getCenterFlatHeaders', debug: instance.options.debug }\n ),\n\n getRightFlatHeaders: memo(\n () => [instance.getRightHeaderGroups()],\n left => {\n return left\n .map(headerGroup => {\n return headerGroup.headers\n })\n .flat()\n },\n { key: 'getRightFlatHeaders', debug: instance.options.debug }\n ),\n\n // Leaf Headers\n\n getCenterLeafHeaders: memo(\n () => [instance.getCenterFlatHeaders()],\n flatHeaders => {\n return flatHeaders.filter(header => !header.subHeaders?.length)\n },\n { key: 'getCenterLeafHeaders', debug: instance.options.debug }\n ),\n\n getLeftLeafHeaders: memo(\n () => [instance.getLeftFlatHeaders()],\n flatHeaders => {\n return flatHeaders.filter(header => !header.subHeaders?.length)\n },\n { key: 'getLeftLeafHeaders', debug: instance.options.debug }\n ),\n\n getRightLeafHeaders: memo(\n () => [instance.getRightFlatHeaders()],\n flatHeaders => {\n return flatHeaders.filter(header => !header.subHeaders?.length)\n },\n { key: 'getRightLeafHeaders', debug: instance.options.debug }\n ),\n\n getLeafHeaders: memo(\n () => [\n instance.getLeftHeaderGroups(),\n instance.getCenterHeaderGroups(),\n instance.getRightHeaderGroups(),\n ],\n (left, center, right) => {\n return [\n ...(left[0]?.headers ?? []),\n ...(center[0]?.headers ?? []),\n ...(right[0]?.headers ?? []),\n ]\n .map(header => {\n return header.getLeafHeaders()\n })\n .flat()\n },\n { key: 'getLeafHeaders', debug: instance.options.debug }\n ),\n\n getHeader: (id: string) => {\n const header = [\n ...instance.getFlatHeaders(),\n ...instance.getCenterFlatHeaders(),\n ...instance.getLeftFlatHeaders(),\n ...instance.getRightFlatHeaders(),\n ].find(d => d.id === id)\n\n if (!header) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(`Could not find header with id: ${id}`)\n }\n throw new Error()\n }\n\n return header\n },\n\n getHeaderGroupProps: (id, userProps) => {\n const headerGroup = instance.getHeaderGroups().find(d => d.id === id)\n\n if (!headerGroup) {\n return\n }\n\n return propGetter(\n {\n key: headerGroup.id,\n role: 'row',\n },\n userProps\n )\n },\n\n getFooterGroupProps: (id, userProps) => {\n const headerGroup = instance.getFooterGroups().find(d => d.id === id)\n\n if (!headerGroup) {\n return\n }\n\n const initialProps = {\n key: headerGroup.id,\n role: 'row',\n }\n\n return propGetter(initialProps, userProps)\n },\n\n getHeaderProps: (id, userProps) => {\n const header = instance.getHeader(id)\n\n if (!header) {\n throw new Error()\n }\n\n const initialProps: HeaderProps = {\n key: header.id,\n role: 'columnheader',\n colSpan: header.colSpan,\n rowSpan: header.rowSpan,\n }\n\n return propGetter(initialProps, userProps)\n },\n\n getFooterProps: (id, userProps) => {\n const header = instance.getHeader(id)\n if (!header) {\n return\n }\n\n const initialProps: FooterProps = {\n key: header.id,\n role: 'columnfooter',\n colSpan: header.colSpan,\n rowSpan: header.rowSpan,\n }\n\n return propGetter(initialProps, userProps)\n },\n\n getTotalWidth: () => {\n let width = 0\n\n instance.getVisibleLeafColumns().forEach(column => {\n width += column.getWidth() ?? 0\n })\n\n return width\n },\n }\n}\n\nexport function buildHeaderGroups<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n>(\n allColumns: Column<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>[],\n columnsToGroup: Column<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[],\n instance: ReactTable<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>,\n headerFamily?: 'center' | 'left' | 'right'\n) {\n // Find the max depth of the columns:\n // build the leaf column row\n // build each buffer row going up\n // placeholder for non-existent level\n // real column for existing level\n\n let maxDepth = 0\n\n const findMaxDepth = (\n columns: Column<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>[],\n depth = 1\n ) => {\n maxDepth = Math.max(maxDepth, depth)\n\n columns\n .filter(column => column.getIsVisible())\n .forEach(column => {\n if (column.columns?.length) {\n findMaxDepth(column.columns, depth + 1)\n }\n }, 0)\n }\n\n findMaxDepth(allColumns)\n\n let headerGroups: HeaderGroup<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[] = []\n\n const createHeaderGroup = (\n headersToGroup: Header<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[],\n depth: number\n ) => {\n // The header group we are creating\n const headerGroup: HeaderGroup<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n > = {\n depth,\n id: [headerFamily, `${depth}`].filter(Boolean).join('_'),\n headers: [],\n getHeaderGroupProps: getterValue =>\n instance.getHeaderGroupProps(`${depth}`, getterValue)!,\n getFooterGroupProps: getterValue =>\n instance.getFooterGroupProps(`${depth}`, getterValue)!,\n }\n\n // The parent columns we're going to scan next\n const parentHeaders: Header<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[] = []\n\n // Scan each column for parents\n headersToGroup.forEach(headerToGroup => {\n // What is the latest (last) parent column?\n\n const latestParentHeader = [...parentHeaders].reverse()[0]\n\n const isLeafHeader = headerToGroup.column.depth === headerGroup.depth\n\n let column: Column<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >\n let isPlaceholder = false\n\n if (isLeafHeader && headerToGroup.column.parent) {\n // The parent header is new\n column = headerToGroup.column.parent\n } else {\n // The parent header is repeated\n column = headerToGroup.column\n isPlaceholder = true\n }\n\n const header = instance.createHeader(column, {\n id: [headerFamily, depth, column.id, headerToGroup?.id]\n .filter(Boolean)\n .join('_'),\n isPlaceholder,\n placeholderId: isPlaceholder\n ? `${parentHeaders.filter(d => d.column === column).length}`\n : undefined,\n depth,\n })\n\n if (!latestParentHeader || latestParentHeader.column !== header.column) {\n header.subHeaders.push(headerToGroup)\n parentHeaders.push(header)\n } else {\n latestParentHeader.subHeaders.push(headerToGroup)\n }\n\n // if (!headerToGroup.isPlaceholder) {\n // headerToGroup.column.header = headerToGroup;\n // }\n\n headerGroup.headers.push(headerToGroup)\n })\n\n headerGroups.push(headerGroup)\n\n if (depth > 0) {\n createHeaderGroup(parentHeaders, depth - 1)\n }\n }\n\n const bottomHeaders = columnsToGroup.map(column =>\n instance.createHeader(column, {\n depth: maxDepth,\n })\n )\n\n createHeaderGroup(bottomHeaders, maxDepth - 1)\n\n headerGroups.reverse()\n\n // headerGroups = headerGroups.filter(headerGroup => {\n // return !headerGroup.headers.every(header => header.isPlaceholder)\n // })\n\n const recurseHeadersForSpans = (\n headers: Header<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>[]\n ) => {\n const filteredHeaders = headers.filter(header =>\n header.column.getIsVisible()\n )\n\n return filteredHeaders.map(header => {\n let colSpan = 0\n let rowSpan = 0\n let childRowSpans = [0]\n\n if (header.subHeaders && header.subHeaders.length) {\n childRowSpans = []\n\n recurseHeadersForSpans(header.subHeaders).forEach(\n ({ colSpan: childColSpan, rowSpan: childRowSpan }) => {\n colSpan += childColSpan\n childRowSpans.push(childRowSpan)\n }\n )\n } else {\n colSpan = 1\n }\n\n const minChildRowSpan = Math.min(...childRowSpans)\n rowSpan = rowSpan + minChildRowSpan\n\n header.colSpan = colSpan > 0 ? colSpan : undefined\n header.rowSpan = rowSpan > 0 ? rowSpan : undefined\n\n return { colSpan, rowSpan }\n })\n }\n\n recurseHeadersForSpans(headerGroups[0]?.headers ?? [])\n\n return headerGroups\n}\n"],"names":["createRow","row","instance","_getAllVisibleCells","memo","getAllCells","filter","cell","column","getIsVisible","map","d","id","join","_","key","debug","options","getVisibleCells","getLeftVisibleCells","getCenterVisibleCells","getRightVisibleCells","left","center","right","getState","columnPinning","allCells","leftAndRight","includes","columnId","cells","find","Boolean","getInstance","createHeader","header","isPlaceholder","placeholderId","depth","subHeaders","colSpan","rowSpan","getWidth","sum","recurse","length","forEach","getLeafHeaders","leafHeaders","recurseHeader","h","push","getHeaderProps","userProps","getFooterProps","renderHeader","flexRender","renderFooter","footer","getHeaderGroups","getAllColumns","getVisibleLeafColumns","allColumns","leafColumns","leftColumns","rightColumns","centerColumns","headerGroups","buildHeaderGroups","getCenterHeaderGroups","getLeftHeaderGroups","getRightHeaderGroups","getFooterGroups","reverse","getLeftFooterGroups","getCenterFooterGroups","getRightFooterGroups","getFlatHeaders","headerGroup","headers","flat","getLeftFlatHeaders","getCenterFlatHeaders","getRightFlatHeaders","getCenterLeafHeaders","flatHeaders","getLeftLeafHeaders","getRightLeafHeaders","getHeader","process","env","NODE_ENV","console","warn","Error","getHeaderGroupProps","propGetter","role","getFooterGroupProps","initialProps","getTotalWidth","width","columnsToGroup","headerFamily","maxDepth","findMaxDepth","columns","Math","max","createHeaderGroup","headersToGroup","getterValue","parentHeaders","headerToGroup","latestParentHeader","isLeafHeader","parent","undefined","bottomHeaders","recurseHeadersForSpans","filteredHeaders","childRowSpans","childColSpan","childRowSpan","minChildRowSpan","min"],"mappings":"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"}
@@ -73,7 +73,10 @@ function getInstance(instance) {
73
73
 
74
74
  return Grouping.orderColumns(orderedColumns, grouping, groupedColumnMode);
75
75
  };
76
- }, 'getOrderColumnsFn', instance.options.debug)
76
+ }, {
77
+ key: 'getOrderColumnsFn',
78
+ debug: instance.options.debug
79
+ })
77
80
  };
78
81
  }
79
82
 
@@ -1 +1 @@
1
- {"version":3,"file":"Ordering.js","sources":["../../../src/features/Ordering.ts"],"sourcesContent":["import { functionalUpdate, makeStateUpdater, memo } from '../utils'\n\nimport { ReactTable, OnChangeFn, Updater, Column } from '../types'\n\nimport * as Grouping from './Grouping'\n\nexport type ColumnOrderState = string[]\n\nexport type ColumnOrderTableState = {\n columnOrder: string[]\n}\n\nexport type ColumnOrderOptions = {\n onColumnOrderChange?: OnChangeFn<ColumnOrderState>\n}\n\nexport type ColumnOrderDefaultOptions = {\n onColumnOrderChange: OnChangeFn<ColumnOrderState>\n}\n\nexport type ColumnOrderInstance<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n> = {\n setColumnOrder: (updater: Updater<ColumnOrderState>) => void\n resetColumnOrder: () => void\n getOrderColumnsFn: () => (\n columns: Column<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>[]\n ) => Column<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>[]\n}\n\n//\n\nexport function getInitialState(): ColumnOrderTableState {\n return {\n columnOrder: [],\n }\n}\n\nexport function getDefaultOptions<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n>(\n instance: ReactTable<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n): ColumnOrderDefaultOptions {\n return {\n onColumnOrderChange: makeStateUpdater('columnOrder', instance),\n }\n}\n\nexport function getInstance<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n>(\n instance: ReactTable<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n): ColumnOrderInstance<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n> {\n return {\n setColumnOrder: updater =>\n instance.options.onColumnOrderChange?.(\n updater,\n functionalUpdate(updater, instance.getState().columnOrder)\n ),\n resetColumnOrder: () => {\n instance.setColumnOrder(instance.initialState.columnOrder ?? [])\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<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[] = []\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 Grouping.orderColumns(\n orderedColumns,\n grouping,\n groupedColumnMode\n )\n },\n 'getOrderColumnsFn',\n instance.options.debug\n ),\n }\n}\n"],"names":["getInitialState","columnOrder","getDefaultOptions","instance","onColumnOrderChange","makeStateUpdater","getInstance","setColumnOrder","updater","options","functionalUpdate","getState","resetColumnOrder","initialState","getOrderColumnsFn","memo","grouping","groupedColumnMode","columns","orderedColumns","length","columnOrderCopy","columnsCopy","targetColumnId","shift","foundIndex","findIndex","d","id","push","splice","Grouping","debug"],"mappings":";;;;;;;;;;;;;;;;;AAkCA;AAEO,SAASA,eAAT,GAAkD;AACvD,SAAO;AACLC,IAAAA,WAAW,EAAE;AADR,GAAP;AAGD;AAEM,SAASC,iBAAT,CAOLC,QAPK,EAQsB;AAC3B,SAAO;AACLC,IAAAA,mBAAmB,EAAEC,sBAAgB,CAAC,aAAD,EAAgBF,QAAhB;AADhC,GAAP;AAGD;AAEM,SAASG,WAAT,CAOLH,QAPK,EAcL;AACA,SAAO;AACLI,IAAAA,cAAc,EAAE,wBAAAC,OAAO;AAAA,aACrBL,QAAQ,CAACM,OAAT,CAAiBL,mBADI,oBACrBD,QAAQ,CAACM,OAAT,CAAiBL,mBAAjB,CACEI,OADF,EAEEE,sBAAgB,CAACF,OAAD,EAAUL,QAAQ,CAACQ,QAAT,GAAoBV,WAA9B,CAFlB,CADqB;AAAA,KADlB;AAMLW,IAAAA,gBAAgB,EAAE,4BAAM;AAAA;;AACtBT,MAAAA,QAAQ,CAACI,cAAT,0BAAwBJ,QAAQ,CAACU,YAAT,CAAsBZ,WAA9C,oCAA6D,EAA7D;AACD,KARI;AASLa,IAAAA,iBAAiB,EAAEC,UAAI,CACrB;AAAA,aAAM,CACJZ,QAAQ,CAACQ,QAAT,GAAoBV,WADhB,EAEJE,QAAQ,CAACQ,QAAT,GAAoBK,QAFhB,EAGJb,QAAQ,CAACM,OAAT,CAAiBQ,iBAHb,CAAN;AAAA,KADqB,EAMrB,UAAChB,WAAD,EAAce,QAAd,EAAwBC,iBAAxB;AAAA,aAA8C,UAAAC,OAAO,EAAI;AACvD;AACA;AACA,YAAIC,cAMD,GAAG,EANN,CAHuD;;AAYvD,YAAI,EAAClB,WAAD,YAACA,WAAW,CAAEmB,MAAd,CAAJ,EAA0B;AACxBD,UAAAA,cAAc,GAAGD,OAAjB;AACD,SAFD,MAEO;AACL,cAAMG,eAAe,aAAOpB,WAAP,CAArB,CADK;;AAIL,cAAMqB,WAAW,aAAOJ,OAAP,CAAjB,CAJK;AAQL;;AARK;AAUH,gBAAMK,cAAc,GAAGF,eAAe,CAACG,KAAhB,EAAvB;AACA,gBAAMC,UAAU,GAAGH,WAAW,CAACI,SAAZ,CACjB,UAAAC,CAAC;AAAA,qBAAIA,CAAC,CAACC,EAAF,KAASL,cAAb;AAAA,aADgB,CAAnB;;AAGA,gBAAIE,UAAU,GAAG,CAAC,CAAlB,EAAqB;AACnBN,cAAAA,cAAc,CAACU,IAAf,CAAoBP,WAAW,CAACQ,MAAZ,CAAmBL,UAAnB,EAA+B,CAA/B,EAAkC,CAAlC,CAApB;AACD;AAhBE;;AASL,iBAAOH,WAAW,CAACF,MAAZ,IAAsBC,eAAe,CAACD,MAA7C,EAAqD;AAAA;AAQpD,WAjBI;;;AAoBLD,UAAAA,cAAc,aAAOA,cAAP,EAA0BG,WAA1B,CAAd;AACD;;AAED,eAAOS,qBAAA,CACLZ,cADK,EAELH,QAFK,EAGLC,iBAHK,CAAP;AAKD,OA1CD;AAAA,KANqB,EAiDrB,mBAjDqB,EAkDrBd,QAAQ,CAACM,OAAT,CAAiBuB,KAlDI;AATlB,GAAP;AA8DD;;;;;;"}
1
+ {"version":3,"file":"Ordering.js","sources":["../../../src/features/Ordering.ts"],"sourcesContent":["import { functionalUpdate, makeStateUpdater, memo } from '../utils'\n\nimport { ReactTable, OnChangeFn, Updater, Column } from '../types'\n\nimport * as Grouping from './Grouping'\n\nexport type ColumnOrderState = string[]\n\nexport type ColumnOrderTableState = {\n columnOrder: ColumnOrderState\n}\n\nexport type ColumnOrderOptions = {\n onColumnOrderChange?: OnChangeFn<ColumnOrderState>\n}\n\nexport type ColumnOrderDefaultOptions = {\n onColumnOrderChange: OnChangeFn<ColumnOrderState>\n}\n\nexport type ColumnOrderInstance<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n> = {\n setColumnOrder: (updater: Updater<ColumnOrderState>) => void\n resetColumnOrder: () => void\n getOrderColumnsFn: () => (\n columns: Column<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>[]\n ) => Column<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>[]\n}\n\n//\n\nexport function getInitialState(): ColumnOrderTableState {\n return {\n columnOrder: [],\n }\n}\n\nexport function getDefaultOptions<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n>(\n instance: ReactTable<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n): ColumnOrderDefaultOptions {\n return {\n onColumnOrderChange: makeStateUpdater('columnOrder', instance),\n }\n}\n\nexport function getInstance<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n>(\n instance: ReactTable<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n): ColumnOrderInstance<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n> {\n return {\n setColumnOrder: updater =>\n instance.options.onColumnOrderChange?.(\n updater,\n functionalUpdate(updater, instance.getState().columnOrder)\n ),\n resetColumnOrder: () => {\n instance.setColumnOrder(instance.initialState.columnOrder ?? [])\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<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[] = []\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 Grouping.orderColumns(\n orderedColumns,\n grouping,\n groupedColumnMode\n )\n },\n { key: 'getOrderColumnsFn', debug: instance.options.debug }\n ),\n }\n}\n"],"names":["getInitialState","columnOrder","getDefaultOptions","instance","onColumnOrderChange","makeStateUpdater","getInstance","setColumnOrder","updater","options","functionalUpdate","getState","resetColumnOrder","initialState","getOrderColumnsFn","memo","grouping","groupedColumnMode","columns","orderedColumns","length","columnOrderCopy","columnsCopy","targetColumnId","shift","foundIndex","findIndex","d","id","push","splice","Grouping","key","debug"],"mappings":";;;;;;;;;;;;;;;;;AAkCA;AAEO,SAASA,eAAT,GAAkD;AACvD,SAAO;AACLC,IAAAA,WAAW,EAAE;AADR,GAAP;AAGD;AAEM,SAASC,iBAAT,CAOLC,QAPK,EAQsB;AAC3B,SAAO;AACLC,IAAAA,mBAAmB,EAAEC,sBAAgB,CAAC,aAAD,EAAgBF,QAAhB;AADhC,GAAP;AAGD;AAEM,SAASG,WAAT,CAOLH,QAPK,EAcL;AACA,SAAO;AACLI,IAAAA,cAAc,EAAE,wBAAAC,OAAO;AAAA,aACrBL,QAAQ,CAACM,OAAT,CAAiBL,mBADI,oBACrBD,QAAQ,CAACM,OAAT,CAAiBL,mBAAjB,CACEI,OADF,EAEEE,sBAAgB,CAACF,OAAD,EAAUL,QAAQ,CAACQ,QAAT,GAAoBV,WAA9B,CAFlB,CADqB;AAAA,KADlB;AAMLW,IAAAA,gBAAgB,EAAE,4BAAM;AAAA;;AACtBT,MAAAA,QAAQ,CAACI,cAAT,0BAAwBJ,QAAQ,CAACU,YAAT,CAAsBZ,WAA9C,oCAA6D,EAA7D;AACD,KARI;AASLa,IAAAA,iBAAiB,EAAEC,UAAI,CACrB;AAAA,aAAM,CACJZ,QAAQ,CAACQ,QAAT,GAAoBV,WADhB,EAEJE,QAAQ,CAACQ,QAAT,GAAoBK,QAFhB,EAGJb,QAAQ,CAACM,OAAT,CAAiBQ,iBAHb,CAAN;AAAA,KADqB,EAMrB,UAAChB,WAAD,EAAce,QAAd,EAAwBC,iBAAxB;AAAA,aAA8C,UAAAC,OAAO,EAAI;AACvD;AACA;AACA,YAAIC,cAMD,GAAG,EANN,CAHuD;;AAYvD,YAAI,EAAClB,WAAD,YAACA,WAAW,CAAEmB,MAAd,CAAJ,EAA0B;AACxBD,UAAAA,cAAc,GAAGD,OAAjB;AACD,SAFD,MAEO;AACL,cAAMG,eAAe,aAAOpB,WAAP,CAArB,CADK;;AAIL,cAAMqB,WAAW,aAAOJ,OAAP,CAAjB,CAJK;AAQL;;AARK;AAUH,gBAAMK,cAAc,GAAGF,eAAe,CAACG,KAAhB,EAAvB;AACA,gBAAMC,UAAU,GAAGH,WAAW,CAACI,SAAZ,CACjB,UAAAC,CAAC;AAAA,qBAAIA,CAAC,CAACC,EAAF,KAASL,cAAb;AAAA,aADgB,CAAnB;;AAGA,gBAAIE,UAAU,GAAG,CAAC,CAAlB,EAAqB;AACnBN,cAAAA,cAAc,CAACU,IAAf,CAAoBP,WAAW,CAACQ,MAAZ,CAAmBL,UAAnB,EAA+B,CAA/B,EAAkC,CAAlC,CAApB;AACD;AAhBE;;AASL,iBAAOH,WAAW,CAACF,MAAZ,IAAsBC,eAAe,CAACD,MAA7C,EAAqD;AAAA;AAQpD,WAjBI;;;AAoBLD,UAAAA,cAAc,aAAOA,cAAP,EAA0BG,WAA1B,CAAd;AACD;;AAED,eAAOS,qBAAA,CACLZ,cADK,EAELH,QAFK,EAGLC,iBAHK,CAAP;AAKD,OA1CD;AAAA,KANqB,EAiDrB;AAAEe,MAAAA,GAAG,EAAE,mBAAP;AAA4BC,MAAAA,KAAK,EAAE9B,QAAQ,CAACM,OAAT,CAAiBwB;AAApD,KAjDqB;AATlB,GAAP;AA6DD;;;;;;"}
@@ -0,0 +1,198 @@
1
+ /**
2
+ * react-table
3
+ *
4
+ * Copyright (c) TanStack
5
+ *
6
+ * This source code is licensed under the MIT license found in the
7
+ * LICENSE.md file in the root directory of this source tree.
8
+ *
9
+ * @license MIT
10
+ */
11
+ 'use strict';
12
+
13
+ Object.defineProperty(exports, '__esModule', { value: true });
14
+
15
+ var _rollupPluginBabelHelpers = require('../_virtual/_rollupPluginBabelHelpers.js');
16
+ var utils = require('../utils.js');
17
+
18
+ //
19
+ function getInitialState() {
20
+ return {
21
+ pagination: {
22
+ pageIndex: 0,
23
+ pageSize: 10
24
+ }
25
+ };
26
+ }
27
+ function getDefaultOptions(instance) {
28
+ return {
29
+ onPaginationChange: utils.makeStateUpdater('pagination', instance),
30
+ autoResetPageIndex: true
31
+ };
32
+ }
33
+ function getInstance(instance) {
34
+ var registered = false;
35
+ return {
36
+ _notifyPageIndexReset: function _notifyPageIndexReset() {
37
+ if (!registered) {
38
+ registered = true;
39
+ return;
40
+ }
41
+
42
+ if (instance.options.autoResetAll === false) {
43
+ return;
44
+ }
45
+
46
+ if (instance.options.autoResetAll === true || instance.options.autoResetPageIndex) {
47
+ instance.resetPageSize();
48
+ }
49
+ },
50
+ setPagination: function setPagination(updater) {
51
+ var safeUpdater = function safeUpdater(old) {
52
+ var newState = utils.functionalUpdate(updater, old);
53
+
54
+ if (instance.options.paginateRowsFn) {
55
+ var _instance$getPrePagin;
56
+
57
+ newState.pageCount = (_instance$getPrePagin = instance.getPrePaginationRows()) != null && _instance$getPrePagin.length ? Math.ceil(instance.getPrePaginationRows().length / instance.getState().pagination.pageSize) : 0;
58
+ }
59
+
60
+ return newState;
61
+ };
62
+
63
+ return instance.options.onPaginationChange == null ? void 0 : instance.options.onPaginationChange(safeUpdater, utils.functionalUpdate(safeUpdater, instance.getState().pagination));
64
+ },
65
+ resetPagination: function resetPagination() {
66
+ var _instance$initialStat;
67
+
68
+ instance.setPagination((_instance$initialStat = instance.initialState.pagination) != null ? _instance$initialStat : {
69
+ pageIndex: 0,
70
+ pageSize: 10,
71
+ pageCount: -1
72
+ });
73
+ },
74
+ setPageIndex: function setPageIndex(updater) {
75
+ instance.setPagination(function (old) {
76
+ var pageIndex = utils.functionalUpdate(updater, old.pageIndex);
77
+ var maxPageIndex = old.pageCount && old.pageCount > 0 ? old.pageCount - 1 : Number.MAX_SAFE_INTEGER;
78
+ pageIndex = Math.min(Math.max(0, pageIndex), maxPageIndex);
79
+ return _rollupPluginBabelHelpers["extends"]({}, old, {
80
+ pageIndex: pageIndex
81
+ });
82
+ });
83
+ },
84
+ resetPageIndex: function resetPageIndex() {
85
+ instance.setPageIndex(0);
86
+ },
87
+ resetPageSize: function resetPageSize() {
88
+ var _instance$options$ini, _instance$options$ini2, _instance$options$ini3;
89
+
90
+ instance.setPageSize((_instance$options$ini = (_instance$options$ini2 = instance.options.initialState) == null ? void 0 : (_instance$options$ini3 = _instance$options$ini2.pagination) == null ? void 0 : _instance$options$ini3.pageSize) != null ? _instance$options$ini : 10);
91
+ },
92
+ setPageSize: function setPageSize(updater) {
93
+ instance.setPagination(function (old) {
94
+ var pageSize = Math.max(1, utils.functionalUpdate(updater, old.pageSize));
95
+ var topRowIndex = old.pageSize * old.pageIndex;
96
+ var pageIndex = Math.floor(topRowIndex / pageSize);
97
+ return _rollupPluginBabelHelpers["extends"]({}, old, {
98
+ pageIndex: pageIndex,
99
+ pageSize: pageSize
100
+ });
101
+ });
102
+ },
103
+ setPageCount: function setPageCount(updater) {
104
+ return instance.setPagination(function (old) {
105
+ var newPageCount = utils.functionalUpdate(updater, old.pageCount);
106
+
107
+ if (typeof newPageCount === 'number') {
108
+ newPageCount = Math.max(-1, newPageCount);
109
+ }
110
+
111
+ return _rollupPluginBabelHelpers["extends"]({}, old, {
112
+ pageCount: newPageCount
113
+ });
114
+ });
115
+ },
116
+ getPageOptions: utils.memo(function () {
117
+ return [instance.getState().pagination.pageSize, instance.getState().pagination.pageCount];
118
+ }, function (pageSize, pageCount) {
119
+ var pageOptions = [];
120
+
121
+ if (pageCount && pageCount > 0) {
122
+ pageOptions = [].concat(new Array(pageCount)).fill(null).map(function (_, i) {
123
+ return i;
124
+ });
125
+ }
126
+
127
+ return pageOptions;
128
+ }, {
129
+ key: 'getPageOptions',
130
+ debug: instance.options.debug
131
+ }),
132
+ getCanPreviousPage: function getCanPreviousPage() {
133
+ return instance.getState().pagination.pageIndex > 0;
134
+ },
135
+ getCanNextPage: function getCanNextPage() {
136
+ var _instance$getState$pa = instance.getState().pagination,
137
+ pageIndex = _instance$getState$pa.pageIndex,
138
+ pageCount = _instance$getState$pa.pageCount,
139
+ pageSize = _instance$getState$pa.pageSize;
140
+
141
+ if (pageCount === -1) {
142
+ return true;
143
+ }
144
+
145
+ if (pageCount === 0) {
146
+ return false;
147
+ }
148
+
149
+ return pageIndex < Math.ceil(instance.getPrePaginationRows().length / pageSize) - 1;
150
+ },
151
+ previousPage: function previousPage() {
152
+ return instance.setPageIndex(function (old) {
153
+ return old - 1;
154
+ });
155
+ },
156
+ nextPage: function nextPage() {
157
+ return instance.setPageIndex(function (old) {
158
+ return old + 1;
159
+ });
160
+ },
161
+ getPaginationRowModel: utils.memo(function () {
162
+ return [instance.getState().pagination, instance.getExpandedRowModel(), instance.options.paginateRowsFn];
163
+ }, function (_pagination, rowModel, paginateRowsFn) {
164
+ if (!paginateRowsFn || !rowModel.rows.length) {
165
+ return rowModel;
166
+ }
167
+
168
+ if (process.env.NODE_ENV !== 'production' && instance.options.debug) console.info('Paginating...');
169
+ return paginateRowsFn(instance, rowModel);
170
+ }, {
171
+ key: 'getPaginationRowModel',
172
+ debug: instance.options.debug
173
+ }),
174
+ getPrePaginationRows: function getPrePaginationRows() {
175
+ return instance.getExpandedRowModel().rows;
176
+ },
177
+ getPrePaginationFlatRows: function getPrePaginationFlatRows() {
178
+ return instance.getExpandedRowModel().flatRows;
179
+ },
180
+ getPrePaginationRowsById: function getPrePaginationRowsById() {
181
+ return instance.getExpandedRowModel().rowsById;
182
+ },
183
+ getPaginationRows: function getPaginationRows() {
184
+ return instance.getPaginationRowModel().rows;
185
+ },
186
+ getPaginationFlatRows: function getPaginationFlatRows() {
187
+ return instance.getPaginationRowModel().flatRows;
188
+ },
189
+ getPaginationRowsById: function getPaginationRowsById() {
190
+ return instance.getPaginationRowModel().rowsById;
191
+ }
192
+ };
193
+ }
194
+
195
+ exports.getDefaultOptions = getDefaultOptions;
196
+ exports.getInitialState = getInitialState;
197
+ exports.getInstance = getInstance;
198
+ //# sourceMappingURL=Pagination.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Pagination.js","sources":["../../../src/features/Pagination.ts"],"sourcesContent":["import {\n Column,\n OnChangeFn,\n ReactTable,\n Row,\n RowModel,\n TableState,\n Updater,\n} from '../types'\nimport { functionalUpdate, makeStateUpdater, memo } from '../utils'\n\nexport type PageCount = undefined | null | number\n\nexport type PaginationState = {\n pageIndex: number\n pageSize: number\n pageCount?: PageCount\n}\n\nexport type PaginationTableState = {\n pagination: PaginationState\n}\n\nexport type PaginationOptions<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n> = {\n onPaginationChange?: OnChangeFn<PaginationState>\n autoResetPageIndex?: boolean\n paginateRowsFn?: (\n instance: ReactTable<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >,\n rowModel: RowModel<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n ) => RowModel<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n}\n\nexport type PaginationDefaultOptions = {\n onPaginationChange: OnChangeFn<PaginationState>\n autoResetPageIndex: boolean\n}\n\nexport type PaginationInstance<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n> = {\n _notifyPageIndexReset: () => void\n setPagination: (updater: Updater<PaginationState>) => void\n resetPagination: () => void\n setPageIndex: (updater: Updater<number>) => void\n resetPageIndex: () => void\n setPageSize: (updater: Updater<number>) => void\n resetPageSize: () => void\n setPageCount: (updater: Updater<PageCount>) => void\n getPageOptions: () => number[]\n getCanPreviousPage: () => boolean\n getCanNextPage: () => boolean\n previousPage: () => void\n nextPage: () => void\n getPaginationRowModel: () => RowModel<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >\n getPrePaginationRows: () => Row<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getPrePaginationFlatRows: () => Row<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getPrePaginationRowsById: () => Record<\n string,\n Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n >\n getPaginationRows: () => Row<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getPaginationFlatRows: () => Row<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getPaginationRowsById: () => Record<\n string,\n Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n >\n}\n\n//\n\nexport function getInitialState(): PaginationTableState {\n return {\n pagination: {\n pageIndex: 0,\n pageSize: 10,\n },\n }\n}\n\nexport function getDefaultOptions<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n>(\n instance: ReactTable<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n): PaginationDefaultOptions {\n return {\n onPaginationChange: makeStateUpdater('pagination', instance),\n autoResetPageIndex: true,\n }\n}\n\nexport function getInstance<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n>(\n instance: ReactTable<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n): PaginationInstance<TData, TValue, TFilterFns, TSortingFns, TAggregationFns> {\n let registered = false\n return {\n _notifyPageIndexReset: () => {\n if (!registered) {\n registered = true\n return\n }\n\n if (instance.options.autoResetAll === false) {\n return\n }\n\n if (\n instance.options.autoResetAll === true ||\n instance.options.autoResetPageIndex\n ) {\n instance.resetPageSize()\n }\n },\n setPagination: updater => {\n const safeUpdater: Updater<PaginationState> = old => {\n let newState = functionalUpdate(updater, old)\n\n if (instance.options.paginateRowsFn) {\n newState.pageCount = instance.getPrePaginationRows()?.length\n ? Math.ceil(\n instance.getPrePaginationRows().length /\n instance.getState().pagination.pageSize\n )\n : 0\n }\n\n return newState\n }\n\n return instance.options.onPaginationChange?.(\n safeUpdater,\n functionalUpdate(safeUpdater, instance.getState().pagination)\n )\n },\n resetPagination: () => {\n instance.setPagination(\n instance.initialState.pagination ?? {\n pageIndex: 0,\n pageSize: 10,\n pageCount: -1,\n }\n )\n },\n setPageIndex: updater => {\n instance.setPagination(old => {\n let pageIndex = functionalUpdate(updater, old.pageIndex)\n\n const maxPageIndex =\n old.pageCount && old.pageCount > 0\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: () => {\n instance.setPageIndex(0)\n },\n resetPageSize: () => {\n instance.setPageSize(\n instance.options.initialState?.pagination?.pageSize ?? 10\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)\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: 'getPageOptions',\n debug: instance.options.debug,\n }\n ),\n\n getCanPreviousPage: () => instance.getState().pagination.pageIndex > 0,\n\n getCanNextPage: () => {\n const { pageIndex, pageCount, pageSize } = instance.getState().pagination\n\n if (pageCount === -1) {\n return true\n }\n\n if (pageCount === 0) {\n return false\n }\n\n return (\n pageIndex <\n Math.ceil(instance.getPrePaginationRows().length / pageSize) - 1\n )\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 getPaginationRowModel: memo(\n () => [\n instance.getState().pagination,\n instance.getExpandedRowModel(),\n instance.options.paginateRowsFn,\n ],\n (_pagination, rowModel, paginateRowsFn) => {\n if (!paginateRowsFn || !rowModel.rows.length) {\n return rowModel\n }\n\n if (process.env.NODE_ENV !== 'production' && instance.options.debug)\n console.info('Paginating...')\n\n return paginateRowsFn(instance, rowModel)\n },\n {\n key: 'getPaginationRowModel',\n debug: instance.options.debug,\n }\n ),\n\n getPrePaginationRows: () => instance.getExpandedRowModel().rows,\n getPrePaginationFlatRows: () => instance.getExpandedRowModel().flatRows,\n getPrePaginationRowsById: () => instance.getExpandedRowModel().rowsById,\n getPaginationRows: () => instance.getPaginationRowModel().rows,\n getPaginationFlatRows: () => instance.getPaginationRowModel().flatRows,\n getPaginationRowsById: () => instance.getPaginationRowModel().rowsById,\n }\n}\n"],"names":["getInitialState","pagination","pageIndex","pageSize","getDefaultOptions","instance","onPaginationChange","makeStateUpdater","autoResetPageIndex","getInstance","registered","_notifyPageIndexReset","options","autoResetAll","resetPageSize","setPagination","updater","safeUpdater","old","newState","functionalUpdate","paginateRowsFn","pageCount","getPrePaginationRows","length","Math","ceil","getState","resetPagination","initialState","setPageIndex","maxPageIndex","Number","MAX_SAFE_INTEGER","min","max","resetPageIndex","setPageSize","topRowIndex","floor","setPageCount","newPageCount","getPageOptions","memo","pageOptions","Array","fill","map","_","i","key","debug","getCanPreviousPage","getCanNextPage","previousPage","nextPage","getPaginationRowModel","getExpandedRowModel","_pagination","rowModel","rows","process","env","NODE_ENV","console","info","getPrePaginationFlatRows","flatRows","getPrePaginationRowsById","rowsById","getPaginationRows","getPaginationFlatRows","getPaginationRowsById"],"mappings":"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"}
@@ -131,26 +131,12 @@ function getInstance(instance) {
131
131
  var isRight = leafColumnIds.some(function (d) {
132
132
  return right == null ? void 0 : right.includes(d);
133
133
  });
134
-
135
- if (isLeft && isRight) {
136
- return 'both';
137
- }
138
-
139
134
  return isLeft ? 'left' : isRight ? 'right' : false;
140
135
  },
141
136
  getColumnPinnedIndex: function getColumnPinnedIndex(columnId) {
142
137
  var _instance$getState$co2, _instance$getState$co3, _instance$getState$co4;
143
138
 
144
139
  var position = instance.getColumnIsPinned(columnId);
145
-
146
- if (position === 'both') {
147
- if (process.env.NODE_ENV !== 'production') {
148
- console.warn("Column " + columnId + " has leaf columns that are pinned on both sides");
149
- }
150
-
151
- throw new Error();
152
- }
153
-
154
140
  return position ? (_instance$getState$co2 = (_instance$getState$co3 = instance.getState().columnPinning) == null ? void 0 : (_instance$getState$co4 = _instance$getState$co3[position]) == null ? void 0 : _instance$getState$co4.indexOf(columnId)) != null ? _instance$getState$co2 : -1 : 0;
155
141
  }
156
142
  };
@@ -1 +1 @@
1
- {"version":3,"file":"Pinning.js","sources":["../../../src/features/Pinning.ts"],"sourcesContent":["import { OnChangeFn, Updater, ReactTable, Column } from '../types'\nimport { functionalUpdate, makeStateUpdater } from '../utils'\n\ntype ColumnPinningPosition = 'left' | 'right' | 'both'\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 defaultCanPin?: boolean\n}\n\nexport type ColumnPinningColumn = {\n getCanPin: () => boolean\n getPinnedIndex: () => number\n getIsPinned: () => false | ColumnPinningPosition\n pin: (position: ColumnPinningPosition) => void\n}\n\nexport type ColumnPinningInstance<\n _TData,\n _TValue,\n _TFilterFns,\n _TSortingFns,\n _TAggregationFns\n> = {\n setColumnPinning: (updater: Updater<ColumnPinningState>) => void\n resetColumnPinning: () => void\n pinColumn: (columnId: string, position: ColumnPinningPosition) => void\n getColumnCanPin: (columnId: string) => boolean\n getColumnIsPinned: (columnId: string) => false | ColumnPinningPosition\n getColumnPinnedIndex: (columnId: string) => number\n}\n\n//\n\nexport function getInitialState(): ColumnPinningTableState {\n return {\n columnPinning: {\n left: [],\n right: [],\n },\n }\n}\n\nexport function getDefaultOptions<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n>(\n instance: ReactTable<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n): ColumnPinningDefaultOptions {\n return {\n onColumnPinningChange: makeStateUpdater('columnPinning', instance),\n }\n}\n\nexport function createColumn<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n>(\n column: Column<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>,\n instance: ReactTable<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n): ColumnPinningColumn {\n return {\n getCanPin: () => instance.getColumnCanPin(column.id),\n getPinnedIndex: () => instance.getColumnPinnedIndex(column.id),\n getIsPinned: () => instance.getColumnIsPinned(column.id),\n pin: position => instance.pinColumn(column.id, position),\n }\n}\n\nexport function getInstance<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n>(\n instance: ReactTable<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n): ColumnPinningInstance<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n> {\n return {\n setColumnPinning: updater =>\n instance.options.onColumnPinningChange?.(\n updater,\n functionalUpdate(updater, instance.getState().columnPinning)\n ),\n\n resetColumnPinning: () =>\n instance.setColumnPinning(\n instance.options.initialState?.columnPinning ?? {}\n ),\n\n pinColumn: (columnId, position) => {\n const column = instance.getColumn(columnId)\n\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 getColumnCanPin: columnId => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n throw new Error()\n }\n\n const leafColumns = column.getLeafColumns()\n\n return leafColumns.some(\n d =>\n d.enablePinning ??\n instance.options.enablePinning ??\n d.defaultCanPin ??\n !!d.accessorFn\n )\n },\n\n getColumnIsPinned: columnId => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n throw new Error()\n }\n\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 if (isLeft && isRight) {\n return 'both'\n }\n\n return isLeft ? 'left' : isRight ? 'right' : false\n },\n\n getColumnPinnedIndex: columnId => {\n const position = instance.getColumnIsPinned(columnId)\n\n if (position === 'both') {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(\n `Column ${columnId} has leaf columns that are pinned on both sides`\n )\n }\n throw new Error()\n }\n\n return position\n ? instance.getState().columnPinning?.[position]?.indexOf(columnId) ?? -1\n : 0\n },\n }\n}\n"],"names":["getInitialState","columnPinning","left","right","getDefaultOptions","instance","onColumnPinningChange","makeStateUpdater","createColumn","column","getCanPin","getColumnCanPin","id","getPinnedIndex","getColumnPinnedIndex","getIsPinned","getColumnIsPinned","pin","position","pinColumn","getInstance","setColumnPinning","updater","options","functionalUpdate","getState","resetColumnPinning","initialState","columnId","getColumn","columnIds","getLeafColumns","map","d","filter","Boolean","old","includes","Error","leafColumns","some","enablePinning","defaultCanPin","accessorFn","leafColumnIds","isLeft","isRight","process","env","NODE_ENV","console","warn","indexOf"],"mappings":"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"}
1
+ {"version":3,"file":"Pinning.js","sources":["../../../src/features/Pinning.ts"],"sourcesContent":["import { OnChangeFn, Updater, ReactTable, Column } from '../types'\nimport { functionalUpdate, makeStateUpdater } from '../utils'\n\ntype 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 defaultCanPin?: boolean\n}\n\nexport type ColumnPinningColumn = {\n getCanPin: () => boolean\n getPinnedIndex: () => number\n getIsPinned: () => ColumnPinningPosition\n pin: (position: ColumnPinningPosition) => void\n}\n\nexport type ColumnPinningInstance<\n _TData,\n _TValue,\n _TFilterFns,\n _TSortingFns,\n _TAggregationFns\n> = {\n setColumnPinning: (updater: Updater<ColumnPinningState>) => void\n resetColumnPinning: () => void\n pinColumn: (columnId: string, position: ColumnPinningPosition) => void\n getColumnCanPin: (columnId: string) => boolean\n getColumnIsPinned: (columnId: string) => ColumnPinningPosition\n getColumnPinnedIndex: (columnId: string) => number\n}\n\n//\n\nexport function getInitialState(): ColumnPinningTableState {\n return {\n columnPinning: {\n left: [],\n right: [],\n },\n }\n}\n\nexport function getDefaultOptions<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n>(\n instance: ReactTable<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n): ColumnPinningDefaultOptions {\n return {\n onColumnPinningChange: makeStateUpdater('columnPinning', instance),\n }\n}\n\nexport function createColumn<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n>(\n column: Column<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>,\n instance: ReactTable<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n): ColumnPinningColumn {\n return {\n getCanPin: () => instance.getColumnCanPin(column.id),\n getPinnedIndex: () => instance.getColumnPinnedIndex(column.id),\n getIsPinned: () => instance.getColumnIsPinned(column.id),\n pin: position => instance.pinColumn(column.id, position),\n }\n}\n\nexport function getInstance<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n>(\n instance: ReactTable<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n): ColumnPinningInstance<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n> {\n return {\n setColumnPinning: updater =>\n instance.options.onColumnPinningChange?.(\n updater,\n functionalUpdate(updater, instance.getState().columnPinning)\n ),\n\n resetColumnPinning: () =>\n instance.setColumnPinning(\n instance.options.initialState?.columnPinning ?? {}\n ),\n\n pinColumn: (columnId, position) => {\n const column = instance.getColumn(columnId)\n\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 getColumnCanPin: columnId => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n throw new Error()\n }\n\n const leafColumns = column.getLeafColumns()\n\n return leafColumns.some(\n d =>\n d.enablePinning ??\n instance.options.enablePinning ??\n d.defaultCanPin ??\n !!d.accessorFn\n )\n },\n\n getColumnIsPinned: columnId => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n throw new Error()\n }\n\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 getColumnPinnedIndex: columnId => {\n const position = instance.getColumnIsPinned(columnId)\n\n return position\n ? instance.getState().columnPinning?.[position]?.indexOf(columnId) ?? -1\n : 0\n },\n }\n}\n"],"names":["getInitialState","columnPinning","left","right","getDefaultOptions","instance","onColumnPinningChange","makeStateUpdater","createColumn","column","getCanPin","getColumnCanPin","id","getPinnedIndex","getColumnPinnedIndex","getIsPinned","getColumnIsPinned","pin","position","pinColumn","getInstance","setColumnPinning","updater","options","functionalUpdate","getState","resetColumnPinning","initialState","columnId","getColumn","columnIds","getLeafColumns","map","d","filter","Boolean","old","includes","Error","leafColumns","some","enablePinning","defaultCanPin","accessorFn","leafColumnIds","isLeft","isRight","indexOf"],"mappings":"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"}