@tanstack/table-core 8.0.0-alpha.30 → 8.0.0-alpha.36

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 (122) hide show
  1. package/build/cjs/aggregationTypes.js +1 -0
  2. package/build/cjs/aggregationTypes.js.map +1 -1
  3. package/build/cjs/core.js +43 -78
  4. package/build/cjs/core.js.map +1 -1
  5. package/build/cjs/createTable.js.map +1 -1
  6. package/build/cjs/features/ColumnSizing.js.map +1 -1
  7. package/build/cjs/features/Expanding.js +12 -16
  8. package/build/cjs/features/Expanding.js.map +1 -1
  9. package/build/cjs/features/Filters.js +28 -81
  10. package/build/cjs/features/Filters.js.map +1 -1
  11. package/build/cjs/features/Grouping.js +10 -16
  12. package/build/cjs/features/Grouping.js.map +1 -1
  13. package/build/cjs/features/Headers.js.map +1 -1
  14. package/build/cjs/features/Ordering.js.map +1 -1
  15. package/build/cjs/features/Pagination.js +8 -13
  16. package/build/cjs/features/Pagination.js.map +1 -1
  17. package/build/cjs/features/Pinning.js.map +1 -1
  18. package/build/cjs/features/RowSelection.js +9 -3
  19. package/build/cjs/features/RowSelection.js.map +1 -1
  20. package/build/cjs/features/Sorting.js +10 -16
  21. package/build/cjs/features/Sorting.js.map +1 -1
  22. package/build/cjs/features/Visibility.js.map +1 -1
  23. package/build/cjs/filterTypes.js.map +1 -1
  24. package/build/cjs/index.js +19 -12
  25. package/build/cjs/index.js.map +1 -1
  26. package/build/cjs/sortTypes.js.map +1 -1
  27. package/build/cjs/utils/filterRowsUtils.js.map +1 -1
  28. package/build/cjs/utils/getColumnFilteredRowModelSync.js +115 -0
  29. package/build/cjs/utils/getColumnFilteredRowModelSync.js.map +1 -0
  30. package/build/cjs/utils/getCoreRowModelAsync.js +127 -0
  31. package/build/cjs/utils/getCoreRowModelAsync.js.map +1 -0
  32. package/build/cjs/utils/getCoreRowModelSync.js +104 -0
  33. package/build/cjs/utils/getCoreRowModelSync.js.map +1 -0
  34. package/build/cjs/utils/getExpandedRowModel.js +61 -0
  35. package/build/cjs/utils/getExpandedRowModel.js.map +1 -0
  36. package/build/cjs/utils/getGlobalFilteredRowModelSync.js +91 -0
  37. package/build/cjs/utils/getGlobalFilteredRowModelSync.js.map +1 -0
  38. package/build/cjs/utils/getGroupedRowModel.js +176 -0
  39. package/build/cjs/utils/getGroupedRowModel.js.map +1 -0
  40. package/build/cjs/utils/getPaginationRowModel.js +61 -0
  41. package/build/cjs/utils/getPaginationRowModel.js.map +1 -0
  42. package/build/cjs/utils/getSortedRowModelSync.js +118 -0
  43. package/build/cjs/utils/getSortedRowModelSync.js.map +1 -0
  44. package/build/cjs/utils.js +155 -16
  45. package/build/cjs/utils.js.map +1 -1
  46. package/build/esm/index.js +877 -488
  47. package/build/esm/index.js.map +1 -1
  48. package/build/stats-html.html +1 -1
  49. package/build/stats-react.json +408 -300
  50. package/build/types/aggregationTypes.d.ts +1 -1
  51. package/build/types/core.d.ts +9 -1
  52. package/build/types/features/Expanding.d.ts +2 -1
  53. package/build/types/features/Filters.d.ts +6 -2
  54. package/build/types/features/Grouping.d.ts +3 -2
  55. package/build/types/features/Pagination.d.ts +2 -1
  56. package/build/types/features/Sorting.d.ts +2 -1
  57. package/build/types/index.d.ts +8 -6
  58. package/build/types/types.d.ts +2 -2
  59. package/build/types/utils/getColumnFilteredRowModelAsync.d.ts +4 -0
  60. package/build/types/utils/getColumnFilteredRowModelSync.d.ts +2 -0
  61. package/build/types/utils/getCoreRowModelAsync.d.ts +4 -0
  62. package/build/types/utils/getCoreRowModelSync.d.ts +2 -0
  63. package/build/types/utils/getExpandedRowModel.d.ts +7 -0
  64. package/build/types/utils/getGlobalFilteredRowModelAsync.d.ts +4 -0
  65. package/build/types/utils/getGlobalFilteredRowModelSync.d.ts +2 -0
  66. package/build/types/utils/getGroupedRowModel.d.ts +2 -0
  67. package/build/types/utils/getPaginationRowModel.d.ts +4 -0
  68. package/build/types/utils/{sortRowsQuicksortFn.d.ts → getSortedRowModelAsync.d.ts} +3 -1
  69. package/build/types/utils/getSortedRowModelSync.d.ts +2 -0
  70. package/build/types/utils.d.ts +16 -0
  71. package/build/umd/index.development.js +887 -493
  72. package/build/umd/index.development.js.map +1 -1
  73. package/build/umd/index.production.js +1 -1
  74. package/build/umd/index.production.js.map +1 -1
  75. package/package.json +3 -1
  76. package/src/aggregationTypes.ts +1 -1
  77. package/src/core.tsx +53 -97
  78. package/src/features/Expanding.ts +19 -27
  79. package/src/features/Filters.ts +52 -99
  80. package/src/features/Grouping.ts +19 -21
  81. package/src/features/Pagination.ts +17 -20
  82. package/src/features/RowSelection.ts +5 -3
  83. package/src/features/Sorting.ts +19 -23
  84. package/src/index.tsx +8 -6
  85. package/src/types.ts +3 -1
  86. package/src/utils/getColumnFilteredRowModelAsync.ts +119 -0
  87. package/src/utils/getColumnFilteredRowModelSync.ts +99 -0
  88. package/src/utils/getCoreRowModelAsync.ts +105 -0
  89. package/src/utils/getCoreRowModelSync.ts +107 -0
  90. package/src/utils/getExpandedRowModel.ts +58 -0
  91. package/src/utils/getGlobalFilteredRowModelAsync.ts +97 -0
  92. package/src/utils/getGlobalFilteredRowModelSync.ts +76 -0
  93. package/src/utils/getGroupedRowModel.ts +191 -0
  94. package/src/utils/getPaginationRowModel.ts +45 -0
  95. package/src/utils/getSortedRowModelAsync.ts +201 -0
  96. package/src/utils/getSortedRowModelSync.ts +118 -0
  97. package/src/utils.tsx +189 -16
  98. package/build/cjs/utils/columnFilterRowsFn.js +0 -73
  99. package/build/cjs/utils/columnFilterRowsFn.js.map +0 -1
  100. package/build/cjs/utils/expandRowsFn.js +0 -37
  101. package/build/cjs/utils/expandRowsFn.js.map +0 -1
  102. package/build/cjs/utils/globalFilterRowsFn.js +0 -49
  103. package/build/cjs/utils/globalFilterRowsFn.js.map +0 -1
  104. package/build/cjs/utils/groupRowsFn.js +0 -155
  105. package/build/cjs/utils/groupRowsFn.js.map +0 -1
  106. package/build/cjs/utils/paginateRowsFn.js +0 -44
  107. package/build/cjs/utils/paginateRowsFn.js.map +0 -1
  108. package/build/cjs/utils/sortRowsFn.js +0 -94
  109. package/build/cjs/utils/sortRowsFn.js.map +0 -1
  110. package/build/types/utils/columnFilterRowsFn.d.ts +0 -2
  111. package/build/types/utils/expandRowsFn.d.ts +0 -2
  112. package/build/types/utils/globalFilterRowsFn.d.ts +0 -2
  113. package/build/types/utils/groupRowsFn.d.ts +0 -2
  114. package/build/types/utils/paginateRowsFn.d.ts +0 -2
  115. package/build/types/utils/sortRowsFn.d.ts +0 -2
  116. package/src/utils/columnFilterRowsFn.ts +0 -56
  117. package/src/utils/expandRowsFn.ts +0 -34
  118. package/src/utils/globalFilterRowsFn.ts +0 -39
  119. package/src/utils/groupRowsFn.ts +0 -174
  120. package/src/utils/paginateRowsFn.ts +0 -28
  121. package/src/utils/sortRowsFn.ts +0 -99
  122. package/src/utils/sortRowsQuicksortFn.ts +0 -174
@@ -1 +1 @@
1
- {"version":3,"file":"RowSelection.js","sources":["../../../src/features/RowSelection.ts"],"sourcesContent":["import {\n Getter,\n OnChangeFn,\n AnyGenerics,\n PartialGenerics,\n PropGetterValue,\n TableInstance,\n Row,\n RowModel,\n Updater,\n} from '../types'\nimport { functionalUpdate, makeStateUpdater, memo, propGetter } from '../utils'\n\nexport type RowSelectionState = Record<string, boolean>\n\nexport type RowSelectionTableState = {\n rowSelection: RowSelectionState\n}\n\nexport type RowSelectionOptions<TGenerics extends AnyGenerics> = {\n onRowSelectionChange?: OnChangeFn<RowSelectionState>\n autoResetRowSelection?: boolean\n enableRowSelection?: boolean | ((row: Row<TGenerics>) => boolean)\n enableMultiRowSelection?: boolean | ((row: Row<TGenerics>) => boolean)\n enableSubRowSelection?: boolean | ((row: Row<TGenerics>) => boolean)\n // enableGroupingRowSelection?:\n // | boolean\n // | ((\n // row: Row<TGenerics>\n // ) => boolean)\n // isAdditiveSelectEvent?: (e: MouseEvent | TouchEvent) => boolean\n // isInclusiveSelectEvent?: (e: MouseEvent | TouchEvent) => 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\ntype ToggleRowSelectedProps = {\n onChange?: (e: MouseEvent | TouchEvent) => void\n checked?: boolean\n title?: string\n indeterminate?: boolean\n}\n\nexport type RowSelectionRow = {\n getIsSelected: () => boolean\n getIsSomeSelected: () => boolean\n getCanSelect: () => boolean\n getCanMultiSelect: () => boolean\n toggleSelected: (value?: boolean) => void\n getToggleSelectedProps: <TGetter extends Getter<ToggleRowSelectedProps>>(\n userProps?: TGetter\n ) => undefined | PropGetterValue<ToggleRowSelectedProps, TGetter>\n}\n\nexport type RowSelectionInstance<TGenerics extends AnyGenerics> = {\n _notifyRowSelectionReset: () => void\n getToggleRowSelectedProps: <TGetter extends Getter<ToggleRowSelectedProps>>(\n rowId: string,\n userProps?: TGetter\n ) => undefined | PropGetterValue<ToggleRowSelectedProps, TGetter>\n getToggleAllRowsSelectedProps: <\n TGetter extends Getter<ToggleRowSelectedProps>\n >(\n userProps?: TGetter\n ) => undefined | PropGetterValue<ToggleRowSelectedProps, TGetter>\n getToggleAllPageRowsSelectedProps: <\n TGetter extends Getter<ToggleRowSelectedProps>\n >(\n userProps?: TGetter\n ) => undefined | PropGetterValue<ToggleRowSelectedProps, TGetter>\n setRowSelection: (updater: Updater<RowSelectionState>) => void\n resetRowSelection: () => void\n toggleRowSelected: (rowId: string, value?: boolean) => void\n getRowCanSelect: (rowId: string) => boolean\n getRowCanSelectSubRows: (rowId: string) => boolean\n getRowCanMultiSelect: (rowId: string) => boolean\n // getGroupingRowCanSelect: (rowId: string) => boolean\n getRowIsSelected: (rowId: string) => boolean\n getRowIsSomeSelected: (rowId: string) => boolean\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 = {\n getInitialState: (): RowSelectionTableState => {\n return {\n rowSelection: {},\n }\n },\n\n getDefaultOptions: <TGenerics extends AnyGenerics>(\n instance: TableInstance<TGenerics>\n ): RowSelectionOptions<TGenerics> => {\n return {\n onRowSelectionChange: makeStateUpdater('rowSelection', instance),\n autoResetRowSelection: true,\n enableRowSelection: true,\n enableMultiRowSelection: true,\n enableSubRowSelection: true,\n // enableGroupingRowSelection: false,\n // isAdditiveSelectEvent: (e: MouseEvent | TouchEvent) => !!e.metaKey,\n // isInclusiveSelectEvent: (e: MouseEvent | TouchEvent) => !!e.shiftKey,\n }\n },\n\n getInstance: <TGenerics extends AnyGenerics>(\n instance: TableInstance<TGenerics>\n ): RowSelectionInstance<TGenerics> => {\n let registered = false\n\n // const pageRows = instance.getPageRows()\n\n return {\n _notifyRowSelectionReset: () => {\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.autoResetRowSelection\n ) {\n instance.resetRowSelection()\n }\n },\n setRowSelection: updater =>\n instance.options.onRowSelectionChange?.(\n updater,\n functionalUpdate(updater, instance.getState().rowSelection)\n ),\n resetRowSelection: () =>\n instance.setRowSelection(instance.initialState.rowSelection ?? {}),\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 toggleRowSelected: (rowId, value) => {\n const row = instance.getRow(rowId)\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, rowId, value, instance)\n\n return selectedRowIds\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: 'getSelectedRowModel',\n debug: () => instance.options.debugAll ?? instance.options.debugTable,\n onChange: () => instance._notifyExpandedReset(),\n }\n ),\n\n getFilteredSelectedRowModel: memo(\n () => [\n instance.getState().rowSelection,\n instance.getGlobalFilteredRowModel(),\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: 'getFilteredSelectedRowModel',\n debug: () => instance.options.debugAll ?? instance.options.debugTable,\n onChange: () => instance._notifyExpandedReset(),\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: 'getGroupedSelectedRowModel',\n debug: () => instance.options.debugAll ?? instance.options.debugTable,\n onChange: () => instance._notifyExpandedReset(),\n }\n ),\n\n ///\n\n getRowIsSelected: rowId => {\n const { rowSelection } = instance.getState()\n const row = instance.getRow(rowId)\n\n if (!row) {\n throw new Error()\n }\n\n return isRowSelected(row, rowSelection, instance) === true\n },\n\n getRowIsSomeSelected: rowId => {\n const { rowSelection } = instance.getState()\n const row = instance.getRow(rowId)\n\n if (!row) {\n throw new Error()\n }\n\n return isRowSelected(row, rowSelection, instance) === 'some'\n },\n\n getRowCanSelect: rowId => {\n const row = instance.getRow(rowId)\n\n if (!row) {\n throw new Error()\n }\n\n if (typeof instance.options.enableRowSelection === 'function') {\n return instance.options.enableRowSelection(row)\n }\n\n return instance.options.enableRowSelection ?? true\n },\n\n getRowCanSelectSubRows: rowId => {\n const row = instance.getRow(rowId)\n\n if (!row) {\n throw new Error()\n }\n\n if (typeof instance.options.enableSubRowSelection === 'function') {\n return instance.options.enableSubRowSelection(row)\n }\n\n return instance.options.enableSubRowSelection ?? true\n },\n\n getRowCanMultiSelect: rowId => {\n const row = instance.getRow(rowId)\n\n if (!row) {\n throw new Error()\n }\n\n if (typeof instance.options.enableMultiRowSelection === 'function') {\n return instance.options.enableMultiRowSelection(row)\n }\n\n return instance.options.enableMultiRowSelection ?? true\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 =\n instance.getPreGlobalFilteredRowModel().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 getToggleRowSelectedProps: (rowId, userProps) => {\n const row = instance.getRow(rowId)\n\n const isSelected = row.getIsSelected()\n const isSomeSelected = row.getIsSomeSelected()\n const canSelect = row.getCanSelect()\n\n const initialProps: ToggleRowSelectedProps = {\n onChange: canSelect\n ? (e: MouseEvent | TouchEvent) => {\n row.toggleSelected((e.target as HTMLInputElement).checked)\n }\n : undefined,\n checked: isSelected,\n title: 'Toggle Row Selected',\n indeterminate: isSomeSelected,\n // onChange: forInput\n // ? (e: Event) => e.stopPropagation()\n // : (e: Event) => {\n // if (instance.options.isAdditiveSelectEvent(e)) {\n // row.toggleSelected()\n // } else if (instance.options.isInclusiveSelectEvent(e)) {\n // instance.addRowSelectionRange(row.id)\n // } else {\n // instance.setRowSelection({})\n // row.toggleSelected()\n // }\n\n // if (props.onClick) props.onClick(e)\n // },\n }\n\n return propGetter(initialProps, userProps)\n },\n\n getToggleAllRowsSelectedProps: userProps => {\n const isSomeRowsSelected = instance.getIsSomeRowsSelected()\n const isAllRowsSelected = instance.getIsAllRowsSelected()\n\n const initialProps: ToggleRowSelectedProps = {\n onChange: (e: MouseEvent | TouchEvent) => {\n instance.toggleAllRowsSelected(\n (e.target as HTMLInputElement).checked\n )\n },\n checked: isAllRowsSelected,\n title: 'Toggle All Rows Selected',\n indeterminate: isSomeRowsSelected,\n }\n\n return propGetter(initialProps, userProps)\n },\n\n getToggleAllPageRowsSelectedProps: userProps => {\n const isSomePageRowsSelected = instance.getIsSomePageRowsSelected()\n const isAllPageRowsSelected = instance.getIsAllPageRowsSelected()\n\n const initialProps: ToggleRowSelectedProps = {\n onChange: (e: MouseEvent | TouchEvent) => {\n instance.toggleAllPageRowsSelected(\n (e.target as HTMLInputElement).checked\n )\n },\n checked: isAllPageRowsSelected,\n title: 'Toggle All Current Page Rows Selected',\n indeterminate: isSomePageRowsSelected,\n }\n\n return propGetter(initialProps, userProps)\n },\n }\n },\n\n createRow: <TGenerics extends AnyGenerics>(\n row: Row<TGenerics>,\n instance: TableInstance<TGenerics>\n ): RowSelectionRow => {\n return {\n getIsSelected: () => instance.getRowIsSelected(row.id),\n getIsSomeSelected: () => instance.getRowIsSomeSelected(row.id),\n toggleSelected: value => instance.toggleRowSelected(row.id, value),\n getToggleSelectedProps: userProps =>\n instance.getToggleRowSelectedProps(row.id, userProps),\n getCanMultiSelect: () => instance.getRowCanMultiSelect(row.id),\n getCanSelect: () => instance.getRowCanSelect(row.id),\n }\n },\n}\n\nconst mutateRowIsSelected = <TGenerics extends AnyGenerics>(\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 && instance.getRowCanSelectSubRows(row.id)) {\n row.subRows.forEach(row =>\n mutateRowIsSelected(selectedRowIds, row.id, value, instance)\n )\n }\n}\n\nexport function selectRowsFn<TGenerics extends AnyGenerics>(\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) => {\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 AnyGenerics>(\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","rowSelection","getDefaultOptions","instance","onRowSelectionChange","makeStateUpdater","autoResetRowSelection","enableRowSelection","enableMultiRowSelection","enableSubRowSelection","getInstance","registered","_notifyRowSelectionReset","options","autoResetAll","resetRowSelection","setRowSelection","updater","functionalUpdate","getState","initialState","toggleAllRowsSelected","value","old","getIsAllRowsSelected","preGroupedFlatRows","getPreGroupedRowModel","flatRows","forEach","row","id","toggleAllPageRowsSelected","getIsAllPageRowsSelected","getRowModel","rows","mutateRowIsSelected","toggleRowSelected","rowId","getRow","isSelected","getIsSelected","selectedRowIds","getPreSelectedRowModel","getCoreRowModel","getSelectedRowModel","memo","rowModel","Object","keys","length","rowsById","selectRowsFn","key","debug","debugAll","debugTable","onChange","_notifyExpandedReset","getFilteredSelectedRowModel","getGlobalFilteredRowModel","getGroupedSelectedRowModel","getGroupedRowModel","getRowIsSelected","Error","isRowSelected","getRowIsSomeSelected","getRowCanSelect","getRowCanSelectSubRows","getRowCanMultiSelect","preFilteredFlatRows","getPreGlobalFilteredRowModel","isAllRowsSelected","Boolean","some","paginationFlatRows","getPaginationRowModel","isAllPageRowsSelected","getIsSomeRowsSelected","getIsSomePageRowsSelected","getToggleRowSelectedProps","userProps","isSomeSelected","getIsSomeSelected","canSelect","getCanSelect","initialProps","e","toggleSelected","target","checked","undefined","title","indeterminate","propGetter","getToggleAllRowsSelectedProps","isSomeRowsSelected","getToggleAllPageRowsSelectedProps","isSomePageRowsSelected","createRow","getToggleSelectedProps","getCanMultiSelect","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 {\n Getter,\n OnChangeFn,\n AnyGenerics,\n PartialGenerics,\n PropGetterValue,\n TableInstance,\n Row,\n RowModel,\n Updater,\n} from '../types'\nimport { functionalUpdate, makeStateUpdater, memo, propGetter } from '../utils'\n\nexport type RowSelectionState = Record<string, boolean>\n\nexport type RowSelectionTableState = {\n rowSelection: RowSelectionState\n}\n\nexport type RowSelectionOptions<TGenerics extends AnyGenerics> = {\n onRowSelectionChange?: OnChangeFn<RowSelectionState>\n autoResetRowSelection?: boolean\n enableRowSelection?: boolean | ((row: Row<TGenerics>) => boolean)\n enableMultiRowSelection?: boolean | ((row: Row<TGenerics>) => boolean)\n enableSubRowSelection?: boolean | ((row: Row<TGenerics>) => boolean)\n // enableGroupingRowSelection?:\n // | boolean\n // | ((\n // row: Row<TGenerics>\n // ) => boolean)\n // isAdditiveSelectEvent?: (e: MouseEvent | TouchEvent) => boolean\n // isInclusiveSelectEvent?: (e: MouseEvent | TouchEvent) => 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\ntype ToggleRowSelectedProps = {\n onChange?: (e: MouseEvent | TouchEvent) => void\n checked?: boolean\n title?: string\n indeterminate?: boolean\n}\n\nexport type RowSelectionRow = {\n getIsSelected: () => boolean\n getIsSomeSelected: () => boolean\n getCanSelect: () => boolean\n getCanMultiSelect: () => boolean\n toggleSelected: (value?: boolean) => void\n getToggleSelectedProps: <TGetter extends Getter<ToggleRowSelectedProps>>(\n userProps?: TGetter\n ) => undefined | PropGetterValue<ToggleRowSelectedProps, TGetter>\n}\n\nexport type RowSelectionInstance<TGenerics extends AnyGenerics> = {\n _notifyRowSelectionReset: () => void\n getToggleRowSelectedProps: <TGetter extends Getter<ToggleRowSelectedProps>>(\n rowId: string,\n userProps?: TGetter\n ) => undefined | PropGetterValue<ToggleRowSelectedProps, TGetter>\n getToggleAllRowsSelectedProps: <\n TGetter extends Getter<ToggleRowSelectedProps>\n >(\n userProps?: TGetter\n ) => undefined | PropGetterValue<ToggleRowSelectedProps, TGetter>\n getToggleAllPageRowsSelectedProps: <\n TGetter extends Getter<ToggleRowSelectedProps>\n >(\n userProps?: TGetter\n ) => undefined | PropGetterValue<ToggleRowSelectedProps, TGetter>\n setRowSelection: (updater: Updater<RowSelectionState>) => void\n resetRowSelection: () => void\n toggleRowSelected: (rowId: string, value?: boolean) => void\n getRowCanSelect: (rowId: string) => boolean\n getRowCanSelectSubRows: (rowId: string) => boolean\n getRowCanMultiSelect: (rowId: string) => boolean\n // getGroupingRowCanSelect: (rowId: string) => boolean\n getRowIsSelected: (rowId: string) => boolean\n getRowIsSomeSelected: (rowId: string) => boolean\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 = {\n getInitialState: (): RowSelectionTableState => {\n return {\n rowSelection: {},\n }\n },\n\n getDefaultOptions: <TGenerics extends AnyGenerics>(\n instance: TableInstance<TGenerics>\n ): RowSelectionOptions<TGenerics> => {\n return {\n onRowSelectionChange: makeStateUpdater('rowSelection', instance),\n autoResetRowSelection: true,\n enableRowSelection: true,\n enableMultiRowSelection: true,\n enableSubRowSelection: true,\n // enableGroupingRowSelection: false,\n // isAdditiveSelectEvent: (e: MouseEvent | TouchEvent) => !!e.metaKey,\n // isInclusiveSelectEvent: (e: MouseEvent | TouchEvent) => !!e.shiftKey,\n }\n },\n\n getInstance: <TGenerics extends AnyGenerics>(\n instance: TableInstance<TGenerics>\n ): RowSelectionInstance<TGenerics> => {\n let registered = false\n\n // const pageRows = instance.getPageRows()\n\n return {\n _notifyRowSelectionReset: () => {\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.autoResetRowSelection\n ) {\n instance.resetRowSelection()\n }\n },\n setRowSelection: updater =>\n instance.options.onRowSelectionChange?.(\n updater,\n functionalUpdate(updater, instance.getState().rowSelection)\n ),\n resetRowSelection: () =>\n instance.setRowSelection(instance.initialState.rowSelection ?? {}),\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 toggleRowSelected: (rowId, value) => {\n const row = instance.getRow(rowId)\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, rowId, value, instance)\n\n return selectedRowIds\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: 'getSelectedRowModel',\n debug: () => instance.options.debugAll ?? instance.options.debugTable,\n onChange: () => {\n instance.queue(() => instance._notifyExpandedReset())\n },\n }\n ),\n\n getFilteredSelectedRowModel: memo(\n () => [\n instance.getState().rowSelection,\n instance.getGlobalFilteredRowModel(),\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: 'getFilteredSelectedRowModel',\n debug: () => instance.options.debugAll ?? instance.options.debugTable,\n onChange: () => instance.queue(() => instance._notifyExpandedReset()),\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: 'getGroupedSelectedRowModel',\n debug: () => instance.options.debugAll ?? instance.options.debugTable,\n onChange: () => instance.queue(() => instance._notifyExpandedReset()),\n }\n ),\n\n ///\n\n getRowIsSelected: rowId => {\n const { rowSelection } = instance.getState()\n const row = instance.getRow(rowId)\n\n if (!row) {\n throw new Error()\n }\n\n return isRowSelected(row, rowSelection, instance) === true\n },\n\n getRowIsSomeSelected: rowId => {\n const { rowSelection } = instance.getState()\n const row = instance.getRow(rowId)\n\n if (!row) {\n throw new Error()\n }\n\n return isRowSelected(row, rowSelection, instance) === 'some'\n },\n\n getRowCanSelect: rowId => {\n const row = instance.getRow(rowId)\n\n if (!row) {\n throw new Error()\n }\n\n if (typeof instance.options.enableRowSelection === 'function') {\n return instance.options.enableRowSelection(row)\n }\n\n return instance.options.enableRowSelection ?? true\n },\n\n getRowCanSelectSubRows: rowId => {\n const row = instance.getRow(rowId)\n\n if (!row) {\n throw new Error()\n }\n\n if (typeof instance.options.enableSubRowSelection === 'function') {\n return instance.options.enableSubRowSelection(row)\n }\n\n return instance.options.enableSubRowSelection ?? true\n },\n\n getRowCanMultiSelect: rowId => {\n const row = instance.getRow(rowId)\n\n if (!row) {\n throw new Error()\n }\n\n if (typeof instance.options.enableMultiRowSelection === 'function') {\n return instance.options.enableMultiRowSelection(row)\n }\n\n return instance.options.enableMultiRowSelection ?? true\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 =\n instance.getPreGlobalFilteredRowModel().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 getToggleRowSelectedProps: (rowId, userProps) => {\n const row = instance.getRow(rowId)\n\n const isSelected = row.getIsSelected()\n const isSomeSelected = row.getIsSomeSelected()\n const canSelect = row.getCanSelect()\n\n const initialProps: ToggleRowSelectedProps = {\n onChange: canSelect\n ? (e: MouseEvent | TouchEvent) => {\n row.toggleSelected((e.target as HTMLInputElement).checked)\n }\n : undefined,\n checked: isSelected,\n title: 'Toggle Row Selected',\n indeterminate: isSomeSelected,\n // onChange: forInput\n // ? (e: Event) => e.stopPropagation()\n // : (e: Event) => {\n // if (instance.options.isAdditiveSelectEvent(e)) {\n // row.toggleSelected()\n // } else if (instance.options.isInclusiveSelectEvent(e)) {\n // instance.addRowSelectionRange(row.id)\n // } else {\n // instance.setRowSelection({})\n // row.toggleSelected()\n // }\n\n // if (props.onClick) props.onClick(e)\n // },\n }\n\n return propGetter(initialProps, userProps)\n },\n\n getToggleAllRowsSelectedProps: userProps => {\n const isSomeRowsSelected = instance.getIsSomeRowsSelected()\n const isAllRowsSelected = instance.getIsAllRowsSelected()\n\n const initialProps: ToggleRowSelectedProps = {\n onChange: (e: MouseEvent | TouchEvent) => {\n instance.toggleAllRowsSelected(\n (e.target as HTMLInputElement).checked\n )\n },\n checked: isAllRowsSelected,\n title: 'Toggle All Rows Selected',\n indeterminate: isSomeRowsSelected,\n }\n\n return propGetter(initialProps, userProps)\n },\n\n getToggleAllPageRowsSelectedProps: userProps => {\n const isSomePageRowsSelected = instance.getIsSomePageRowsSelected()\n const isAllPageRowsSelected = instance.getIsAllPageRowsSelected()\n\n const initialProps: ToggleRowSelectedProps = {\n onChange: (e: MouseEvent | TouchEvent) => {\n instance.toggleAllPageRowsSelected(\n (e.target as HTMLInputElement).checked\n )\n },\n checked: isAllPageRowsSelected,\n title: 'Toggle All Current Page Rows Selected',\n indeterminate: isSomePageRowsSelected,\n }\n\n return propGetter(initialProps, userProps)\n },\n }\n },\n\n createRow: <TGenerics extends AnyGenerics>(\n row: Row<TGenerics>,\n instance: TableInstance<TGenerics>\n ): RowSelectionRow => {\n return {\n getIsSelected: () => instance.getRowIsSelected(row.id),\n getIsSomeSelected: () => instance.getRowIsSomeSelected(row.id),\n toggleSelected: value => instance.toggleRowSelected(row.id, value),\n getToggleSelectedProps: userProps =>\n instance.getToggleRowSelectedProps(row.id, userProps),\n getCanMultiSelect: () => instance.getRowCanMultiSelect(row.id),\n getCanSelect: () => instance.getRowCanSelect(row.id),\n }\n },\n}\n\nconst mutateRowIsSelected = <TGenerics extends AnyGenerics>(\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 && instance.getRowCanSelectSubRows(row.id)) {\n row.subRows.forEach(row =>\n mutateRowIsSelected(selectedRowIds, row.id, value, instance)\n )\n }\n}\n\nexport function selectRowsFn<TGenerics extends AnyGenerics>(\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) => {\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 AnyGenerics>(\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","rowSelection","getDefaultOptions","instance","onRowSelectionChange","makeStateUpdater","autoResetRowSelection","enableRowSelection","enableMultiRowSelection","enableSubRowSelection","getInstance","registered","_notifyRowSelectionReset","options","autoResetAll","resetRowSelection","setRowSelection","updater","functionalUpdate","getState","initialState","toggleAllRowsSelected","value","old","getIsAllRowsSelected","preGroupedFlatRows","getPreGroupedRowModel","flatRows","forEach","row","id","toggleAllPageRowsSelected","getIsAllPageRowsSelected","getRowModel","rows","mutateRowIsSelected","toggleRowSelected","rowId","getRow","isSelected","getIsSelected","selectedRowIds","getPreSelectedRowModel","getCoreRowModel","getSelectedRowModel","memo","rowModel","Object","keys","length","rowsById","selectRowsFn","key","debug","debugAll","debugTable","onChange","queue","_notifyExpandedReset","getFilteredSelectedRowModel","getGlobalFilteredRowModel","getGroupedSelectedRowModel","getGroupedRowModel","getRowIsSelected","Error","isRowSelected","getRowIsSomeSelected","getRowCanSelect","getRowCanSelectSubRows","getRowCanMultiSelect","preFilteredFlatRows","getPreGlobalFilteredRowModel","isAllRowsSelected","Boolean","some","paginationFlatRows","getPaginationRowModel","isAllPageRowsSelected","getIsSomeRowsSelected","getIsSomePageRowsSelected","getToggleRowSelectedProps","userProps","isSomeSelected","getIsSomeSelected","canSelect","getCanSelect","initialProps","e","toggleSelected","target","checked","undefined","title","indeterminate","propGetter","getToggleAllRowsSelectedProps","isSomeRowsSelected","getToggleAllPageRowsSelectedProps","isSomePageRowsSelected","createRow","getToggleSelectedProps","getCanMultiSelect","getIsGrouped","subRows","newSelectedFlatRows","newSelectedRowsById","recurseRows","depth","map","push","filter","selection","allChildrenSelected","someSelected","subRow"],"mappings":"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"}
@@ -67,6 +67,8 @@ var Sorting = {
67
67
  var registered = false;
68
68
  return {
69
69
  _notifySortingReset: function _notifySortingReset() {
70
+ instance._notifyGroupingReset();
71
+
70
72
  if (!registered) {
71
73
  registered = true;
72
74
  return;
@@ -297,25 +299,17 @@ var Sorting = {
297
299
  getPreSortedRowModel: function getPreSortedRowModel() {
298
300
  return instance.getGlobalFilteredRowModel();
299
301
  },
300
- getSortedRowModel: utils.memo(function () {
301
- return [instance.getState().sorting, instance.getGlobalFilteredRowModel(), instance.options.sortRowsFn];
302
- }, function (sorting, rowModel, sortingFn) {
303
- if (!sortingFn || !(sorting != null && sorting.length)) {
304
- return rowModel;
302
+ getSortedRowModel: function getSortedRowModel() {
303
+ if (!instance._getSortedRowModel && instance.options.getSortedRowModel) {
304
+ instance._getSortedRowModel = instance.options.getSortedRowModel(instance);
305
305
  }
306
306
 
307
- return sortingFn(instance, rowModel);
308
- }, {
309
- key: 'getSortedRowModel',
310
- debug: function debug() {
311
- var _instance$options$deb;
312
-
313
- return (_instance$options$deb = instance.options.debugAll) != null ? _instance$options$deb : instance.options.debugTable;
314
- },
315
- onChange: function onChange() {
316
- instance._notifyGroupingReset();
307
+ if (!instance._getSortedRowModel) {
308
+ return instance.getPreSortedRowModel();
317
309
  }
318
- })
310
+
311
+ return instance._getSortedRowModel();
312
+ }
319
313
  };
320
314
  }
321
315
  };
@@ -1 +1 @@
1
- {"version":3,"file":"Sorting.js","sources":["../../../src/features/Sorting.ts"],"sourcesContent":["import { MouseEvent, TouchEvent } from 'react'\nimport { RowModel } from '..'\nimport { BuiltInSortType, reSplitAlphaNumeric, sortTypes } from '../sortTypes'\n\nimport {\n Column,\n Getter,\n Header,\n OnChangeFn,\n AnyGenerics,\n PartialGenerics,\n PropGetterValue,\n TableInstance,\n Row,\n Updater,\n} from '../types'\n\nimport {\n functionalUpdate,\n isFunction,\n makeStateUpdater,\n memo,\n Overwrite,\n propGetter,\n} 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 AnyGenerics> = {\n (rowA: Row<TGenerics>, rowB: Row<TGenerics>, columnId: string): number\n}\n\nexport type CustomSortingTypes<TGenerics extends AnyGenerics> = Record<\n string,\n SortingFn<TGenerics>\n>\n\nexport type SortingTableState = {\n sorting: SortingState\n}\n\nexport type SortType<TGenerics extends AnyGenerics> =\n | 'auto'\n | BuiltInSortType\n | keyof TGenerics['SortingFns']\n | SortingFn<TGenerics>\n\nexport type SortingColumnDef<TGenerics extends AnyGenerics> = {\n sortType?: SortType<Overwrite<TGenerics, { Value: any }>>\n sortDescFirst?: boolean\n enableSorting?: boolean\n enableMultiSort?: boolean\n defaultCanSort?: boolean\n invertSorting?: boolean\n sortUndefined?: false | -1 | 1\n}\n\nexport type SortingColumn<TGenerics extends AnyGenerics> = {\n sortType: SortType<Overwrite<TGenerics, { Value: any }>>\n getCanSort: () => boolean\n getCanMultiSort: () => boolean\n getSortIndex: () => number\n getIsSorted: () => false | SortDirection\n resetSorting: () => void\n toggleSorting: (desc?: boolean, isMulti?: boolean) => void\n getToggleSortingProps: <TGetter extends Getter<ToggleSortingProps>>(\n userProps?: TGetter\n ) => undefined | PropGetterValue<ToggleSortingProps, TGetter>\n}\n\nexport type SortingOptions<TGenerics extends AnyGenerics> = {\n sortTypes?: TGenerics['SortingFns']\n onSortingChange?: OnChangeFn<SortingState>\n autoResetSorting?: boolean\n enableSorting?: boolean\n enableSortingRemoval?: boolean\n enableMultiRemove?: boolean\n enableMultiSort?: boolean\n sortDescFirst?: boolean\n sortRowsFn?: (\n instance: TableInstance<TGenerics>,\n rowModel: RowModel<TGenerics>\n ) => RowModel<TGenerics>\n maxMultiSortColCount?: number\n isMultiSortEvent?: (e: MouseEvent | TouchEvent) => boolean\n}\n\nexport type ToggleSortingProps = {\n title?: string\n onClick?: (event: MouseEvent | TouchEvent) => void\n}\n\nexport type SortingInstance<TGenerics extends AnyGenerics> = {\n _notifySortingReset: () => void\n getColumnAutoSortingFn: (columnId: string) => SortingFn<TGenerics> | undefined\n getColumnAutoSortDir: (columnId: string) => SortDirection\n\n getColumnSortingFn: (columnId: string) => SortingFn<TGenerics> | undefined\n\n setSorting: (updater: Updater<SortingState>) => void\n toggleColumnSorting: (\n columnId: string,\n desc?: boolean,\n multi?: boolean\n ) => void\n resetSorting: (columnId?: string) => void\n getColumnCanSort: (columnId: string) => boolean\n getColumnCanMultiSort: (columnId: string) => boolean\n getColumnIsSorted: (columnId: string) => false | 'asc' | 'desc'\n getColumnSortIndex: (columnId: string) => number\n getToggleSortingProps: <TGetter extends Getter<ToggleSortingProps>>(\n columnId: string,\n userProps?: TGetter\n ) => undefined | PropGetterValue<ToggleSortingProps, TGetter>\n getPreSortedRowModel: () => RowModel<TGenerics>\n getSortedRowModel: () => RowModel<TGenerics>\n}\n\n//\n\nexport const Sorting = {\n getDefaultColumn: <\n TGenerics extends AnyGenerics\n >(): SortingColumnDef<TGenerics> => {\n return {\n sortType: 'auto',\n }\n },\n\n getInitialState: (): SortingTableState => {\n return {\n sorting: [],\n }\n },\n\n getDefaultOptions: <TGenerics extends AnyGenerics>(\n instance: TableInstance<TGenerics>\n ): SortingOptions<TGenerics> => {\n return {\n onSortingChange: makeStateUpdater('sorting', instance),\n autoResetSorting: true,\n isMultiSortEvent: (e: MouseEvent | TouchEvent) => {\n return e.shiftKey\n },\n }\n },\n\n createColumn: <TGenerics extends AnyGenerics>(\n column: Column<TGenerics>,\n instance: TableInstance<TGenerics>\n ): SortingColumn<TGenerics> => {\n return {\n sortType: column.sortType,\n getCanSort: () => instance.getColumnCanSort(column.id),\n getCanMultiSort: () => instance.getColumnCanMultiSort(column.id),\n getSortIndex: () => instance.getColumnSortIndex(column.id),\n getIsSorted: () => instance.getColumnIsSorted(column.id),\n resetSorting: () => instance.resetSorting(column.id),\n toggleSorting: (desc, isMulti) =>\n instance.toggleColumnSorting(column.id, desc, isMulti),\n getToggleSortingProps: userProps =>\n instance.getToggleSortingProps(column.id, userProps),\n }\n },\n\n getInstance: <TGenerics extends AnyGenerics>(\n instance: TableInstance<TGenerics>\n ): SortingInstance<TGenerics> => {\n let registered = false\n\n return {\n _notifySortingReset: () => {\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.autoResetSorting\n ) {\n instance.resetSorting()\n }\n },\n getColumnAutoSortingFn: columnId => {\n const firstRows = instance\n .getGlobalFilteredRowModel()\n .flatRows.slice(100)\n\n let isString = false\n\n for (const row of firstRows) {\n const value = row?.values[columnId]\n\n if (Object.prototype.toString.call(value) === '[object Date]') {\n return sortTypes.datetime\n }\n\n if (typeof value === 'string') {\n isString = true\n\n if (value.split(reSplitAlphaNumeric).length > 1) {\n return sortTypes.alphanumeric\n }\n }\n }\n\n if (isString) {\n return sortTypes.text\n }\n\n return sortTypes.basic\n },\n getColumnAutoSortDir: columnId => {\n const firstRow = instance.getGlobalFilteredRowModel().flatRows[0]\n\n const value = firstRow?.values[columnId]\n\n if (typeof value === 'string') {\n return 'asc'\n }\n\n return 'desc'\n },\n getColumnSortingFn: columnId => {\n const column = instance.getColumn(columnId)\n const userSortTypes = instance.options.sortTypes\n\n if (!column) {\n throw new Error()\n }\n\n return isFunction(column.sortType)\n ? column.sortType\n : column.sortType === 'auto'\n ? instance.getColumnAutoSortingFn(columnId)\n : (userSortTypes as Record<string, any>)?.[\n column.sortType as string\n ] ??\n (sortTypes[\n column.sortType as BuiltInSortType\n ] as SortingFn<TGenerics>)\n },\n\n setSorting: updater =>\n instance.options.onSortingChange?.(\n updater,\n functionalUpdate(updater, instance.getState().sorting)\n ),\n\n toggleColumnSorting: (columnId, desc, multi) => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n throw new Error()\n }\n\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 === columnId)\n const existingIndex = old?.findIndex(d => d.id === columnId)\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.sortDescFirst ??\n instance.options.sortDescFirst ??\n instance.getColumnAutoSortDir(columnId) === '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: columnId,\n desc: hasDescDefined ? desc! : !!sortDescFirst,\n },\n ]\n } else if (sortAction === 'add' && old?.length) {\n newSorting = [\n ...old,\n {\n id: columnId,\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 === columnId) {\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 !== columnId)\n }\n\n return newSorting\n })\n },\n\n getColumnCanSort: columnId => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n throw new Error()\n }\n\n return (\n column.enableSorting ??\n instance.options.enableSorting ??\n column.defaultCanSort ??\n !!column.accessorFn\n // (!!column.accessorFn ||\n // column.columns?.some(c => c.id && instance.getColumnCanSort(c.id))) ??\n // false\n )\n },\n\n getColumnCanMultiSort: columnId => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n throw new Error()\n }\n\n return (\n column.enableMultiSort ??\n instance.options.enableMultiSort ??\n !!column.accessorFn\n )\n },\n\n getColumnIsSorted: columnId => {\n const columnSort = instance\n .getState()\n .sorting?.find(d => d.id === columnId)\n\n return !columnSort ? false : columnSort.desc ? 'desc' : 'asc'\n },\n\n getColumnSortIndex: columnId =>\n instance.getState().sorting?.findIndex(d => d.id === columnId) ?? -1,\n\n resetSorting: (columnId?: string) => {\n if (columnId) {\n instance.setSorting(old =>\n old?.length ? old.filter(d => d.id !== columnId) : []\n )\n } else {\n instance.setSorting(instance.initialState?.sorting ?? [])\n }\n },\n\n getToggleSortingProps: (columnId, userProps) => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n throw new Error()\n }\n\n const canSort = column.getCanSort()\n\n const initialProps: ToggleSortingProps = {\n title: canSort ? 'Toggle Sorting' : undefined,\n onClick: canSort\n ? (e: MouseEvent | TouchEvent) => {\n e.persist?.()\n column.toggleSorting?.(\n undefined,\n column.getCanMultiSort()\n ? instance.options.isMultiSortEvent?.(e)\n : false\n )\n }\n : undefined,\n }\n\n return propGetter(initialProps, userProps)\n },\n\n getPreSortedRowModel: () => instance.getGlobalFilteredRowModel(),\n getSortedRowModel: memo(\n () => [\n instance.getState().sorting,\n instance.getGlobalFilteredRowModel(),\n instance.options.sortRowsFn,\n ],\n (sorting, rowModel, sortingFn) => {\n if (!sortingFn || !sorting?.length) {\n return rowModel\n }\n\n return sortingFn(instance, rowModel)\n },\n {\n key: 'getSortedRowModel',\n debug: () => instance.options.debugAll ?? instance.options.debugTable,\n onChange: () => {\n instance._notifyGroupingReset()\n },\n }\n ),\n }\n },\n}\n"],"names":["Sorting","getDefaultColumn","sortType","getInitialState","sorting","getDefaultOptions","instance","onSortingChange","makeStateUpdater","autoResetSorting","isMultiSortEvent","e","shiftKey","createColumn","column","getCanSort","getColumnCanSort","id","getCanMultiSort","getColumnCanMultiSort","getSortIndex","getColumnSortIndex","getIsSorted","getColumnIsSorted","resetSorting","toggleSorting","desc","isMulti","toggleColumnSorting","getToggleSortingProps","userProps","getInstance","registered","_notifySortingReset","options","autoResetAll","getColumnAutoSortingFn","columnId","firstRows","getGlobalFilteredRowModel","flatRows","slice","isString","row","value","values","Object","prototype","toString","call","sortTypes","datetime","split","reSplitAlphaNumeric","length","alphanumeric","text","basic","getColumnAutoSortDir","firstRow","getColumnSortingFn","getColumn","userSortTypes","Error","isFunction","setSorting","updater","functionalUpdate","getState","multi","old","existingSorting","find","d","existingIndex","findIndex","hasDescDefined","newSorting","sortAction","sortDescFirst","enableSortingRemoval","enableMultiRemove","splice","maxMultiSortColCount","Number","MAX_SAFE_INTEGER","map","filter","enableSorting","defaultCanSort","accessorFn","enableMultiSort","columnSort","initialState","canSort","initialProps","title","undefined","onClick","persist","propGetter","getPreSortedRowModel","getSortedRowModel","memo","sortRowsFn","rowModel","sortingFn","key","debug","debugAll","debugTable","onChange","_notifyGroupingReset"],"mappings":"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"}
1
+ {"version":3,"file":"Sorting.js","sources":["../../../src/features/Sorting.ts"],"sourcesContent":["import { MouseEvent, TouchEvent } from 'react'\nimport { RowModel } from '..'\nimport { BuiltInSortType, reSplitAlphaNumeric, sortTypes } from '../sortTypes'\n\nimport {\n Column,\n Getter,\n Header,\n OnChangeFn,\n AnyGenerics,\n PartialGenerics,\n PropGetterValue,\n TableInstance,\n Row,\n Updater,\n} from '../types'\n\nimport {\n functionalUpdate,\n isFunction,\n makeStateUpdater,\n memo,\n Overwrite,\n propGetter,\n} 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 AnyGenerics> = {\n (rowA: Row<TGenerics>, rowB: Row<TGenerics>, columnId: string): number\n}\n\nexport type CustomSortingTypes<TGenerics extends AnyGenerics> = Record<\n string,\n SortingFn<TGenerics>\n>\n\nexport type SortingTableState = {\n sorting: SortingState\n}\n\nexport type SortType<TGenerics extends AnyGenerics> =\n | 'auto'\n | BuiltInSortType\n | keyof TGenerics['SortingFns']\n | SortingFn<TGenerics>\n\nexport type SortingColumnDef<TGenerics extends AnyGenerics> = {\n sortType?: SortType<Overwrite<TGenerics, { Value: any }>>\n sortDescFirst?: boolean\n enableSorting?: boolean\n enableMultiSort?: boolean\n defaultCanSort?: boolean\n invertSorting?: boolean\n sortUndefined?: false | -1 | 1\n}\n\nexport type SortingColumn<TGenerics extends AnyGenerics> = {\n sortType: SortType<Overwrite<TGenerics, { Value: any }>>\n getCanSort: () => boolean\n getCanMultiSort: () => boolean\n getSortIndex: () => number\n getIsSorted: () => false | SortDirection\n resetSorting: () => void\n toggleSorting: (desc?: boolean, isMulti?: boolean) => void\n getToggleSortingProps: <TGetter extends Getter<ToggleSortingProps>>(\n userProps?: TGetter\n ) => undefined | PropGetterValue<ToggleSortingProps, TGetter>\n}\n\nexport type SortingOptions<TGenerics extends AnyGenerics> = {\n sortTypes?: TGenerics['SortingFns']\n onSortingChange?: OnChangeFn<SortingState>\n autoResetSorting?: boolean\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: MouseEvent | TouchEvent) => boolean\n}\n\nexport type ToggleSortingProps = {\n title?: string\n onClick?: (event: MouseEvent | TouchEvent) => void\n}\n\nexport type SortingInstance<TGenerics extends AnyGenerics> = {\n _notifySortingReset: () => void\n getColumnAutoSortingFn: (columnId: string) => SortingFn<TGenerics> | undefined\n getColumnAutoSortDir: (columnId: string) => SortDirection\n\n getColumnSortingFn: (columnId: string) => SortingFn<TGenerics> | undefined\n\n setSorting: (updater: Updater<SortingState>) => void\n toggleColumnSorting: (\n columnId: string,\n desc?: boolean,\n multi?: boolean\n ) => void\n resetSorting: (columnId?: string) => void\n getColumnCanSort: (columnId: string) => boolean\n getColumnCanMultiSort: (columnId: string) => boolean\n getColumnIsSorted: (columnId: string) => false | 'asc' | 'desc'\n getColumnSortIndex: (columnId: string) => number\n getToggleSortingProps: <TGetter extends Getter<ToggleSortingProps>>(\n columnId: string,\n userProps?: TGetter\n ) => undefined | PropGetterValue<ToggleSortingProps, TGetter>\n getPreSortedRowModel: () => RowModel<TGenerics>\n getSortedRowModel: () => RowModel<TGenerics>\n _getSortedRowModel?: () => RowModel<TGenerics>\n}\n\n//\n\nexport const Sorting = {\n getDefaultColumn: <\n TGenerics extends AnyGenerics\n >(): SortingColumnDef<TGenerics> => {\n return {\n sortType: 'auto',\n }\n },\n\n getInitialState: (): SortingTableState => {\n return {\n sorting: [],\n }\n },\n\n getDefaultOptions: <TGenerics extends AnyGenerics>(\n instance: TableInstance<TGenerics>\n ): SortingOptions<TGenerics> => {\n return {\n onSortingChange: makeStateUpdater('sorting', instance),\n autoResetSorting: true,\n isMultiSortEvent: (e: MouseEvent | TouchEvent) => {\n return e.shiftKey\n },\n }\n },\n\n createColumn: <TGenerics extends AnyGenerics>(\n column: Column<TGenerics>,\n instance: TableInstance<TGenerics>\n ): SortingColumn<TGenerics> => {\n return {\n sortType: column.sortType,\n getCanSort: () => instance.getColumnCanSort(column.id),\n getCanMultiSort: () => instance.getColumnCanMultiSort(column.id),\n getSortIndex: () => instance.getColumnSortIndex(column.id),\n getIsSorted: () => instance.getColumnIsSorted(column.id),\n resetSorting: () => instance.resetSorting(column.id),\n toggleSorting: (desc, isMulti) =>\n instance.toggleColumnSorting(column.id, desc, isMulti),\n getToggleSortingProps: userProps =>\n instance.getToggleSortingProps(column.id, userProps),\n }\n },\n\n getInstance: <TGenerics extends AnyGenerics>(\n instance: TableInstance<TGenerics>\n ): SortingInstance<TGenerics> => {\n let registered = false\n\n return {\n _notifySortingReset: () => {\n instance._notifyGroupingReset()\n\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.autoResetSorting\n ) {\n instance.resetSorting()\n }\n },\n getColumnAutoSortingFn: columnId => {\n const firstRows = instance\n .getGlobalFilteredRowModel()\n .flatRows.slice(100)\n\n let isString = false\n\n for (const row of firstRows) {\n const value = row?.values[columnId]\n\n if (Object.prototype.toString.call(value) === '[object Date]') {\n return sortTypes.datetime\n }\n\n if (typeof value === 'string') {\n isString = true\n\n if (value.split(reSplitAlphaNumeric).length > 1) {\n return sortTypes.alphanumeric\n }\n }\n }\n\n if (isString) {\n return sortTypes.text\n }\n\n return sortTypes.basic\n },\n getColumnAutoSortDir: columnId => {\n const firstRow = instance.getGlobalFilteredRowModel().flatRows[0]\n\n const value = firstRow?.values[columnId]\n\n if (typeof value === 'string') {\n return 'asc'\n }\n\n return 'desc'\n },\n getColumnSortingFn: columnId => {\n const column = instance.getColumn(columnId)\n const userSortTypes = instance.options.sortTypes\n\n if (!column) {\n throw new Error()\n }\n\n return isFunction(column.sortType)\n ? column.sortType\n : column.sortType === 'auto'\n ? instance.getColumnAutoSortingFn(columnId)\n : (userSortTypes as Record<string, any>)?.[\n column.sortType as string\n ] ??\n (sortTypes[\n column.sortType as BuiltInSortType\n ] as SortingFn<TGenerics>)\n },\n\n setSorting: updater =>\n instance.options.onSortingChange?.(\n updater,\n functionalUpdate(updater, instance.getState().sorting)\n ),\n\n toggleColumnSorting: (columnId, desc, multi) => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n throw new Error()\n }\n\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 === columnId)\n const existingIndex = old?.findIndex(d => d.id === columnId)\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.sortDescFirst ??\n instance.options.sortDescFirst ??\n instance.getColumnAutoSortDir(columnId) === '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: columnId,\n desc: hasDescDefined ? desc! : !!sortDescFirst,\n },\n ]\n } else if (sortAction === 'add' && old?.length) {\n newSorting = [\n ...old,\n {\n id: columnId,\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 === columnId) {\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 !== columnId)\n }\n\n return newSorting\n })\n },\n\n getColumnCanSort: columnId => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n throw new Error()\n }\n\n return (\n column.enableSorting ??\n instance.options.enableSorting ??\n column.defaultCanSort ??\n !!column.accessorFn\n // (!!column.accessorFn ||\n // column.columns?.some(c => c.id && instance.getColumnCanSort(c.id))) ??\n // false\n )\n },\n\n getColumnCanMultiSort: columnId => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n throw new Error()\n }\n\n return (\n column.enableMultiSort ??\n instance.options.enableMultiSort ??\n !!column.accessorFn\n )\n },\n\n getColumnIsSorted: columnId => {\n const columnSort = instance\n .getState()\n .sorting?.find(d => d.id === columnId)\n\n return !columnSort ? false : columnSort.desc ? 'desc' : 'asc'\n },\n\n getColumnSortIndex: columnId =>\n instance.getState().sorting?.findIndex(d => d.id === columnId) ?? -1,\n\n resetSorting: (columnId?: string) => {\n if (columnId) {\n instance.setSorting(old =>\n old?.length ? old.filter(d => d.id !== columnId) : []\n )\n } else {\n instance.setSorting(instance.initialState?.sorting ?? [])\n }\n },\n\n getToggleSortingProps: (columnId, userProps) => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n throw new Error()\n }\n\n const canSort = column.getCanSort()\n\n const initialProps: ToggleSortingProps = {\n title: canSort ? 'Toggle Sorting' : undefined,\n onClick: canSort\n ? (e: MouseEvent | TouchEvent) => {\n e.persist?.()\n column.toggleSorting?.(\n undefined,\n column.getCanMultiSort()\n ? instance.options.isMultiSortEvent?.(e)\n : false\n )\n }\n : undefined,\n }\n\n return propGetter(initialProps, userProps)\n },\n\n getPreSortedRowModel: () => instance.getGlobalFilteredRowModel(),\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._getSortedRowModel) {\n return instance.getPreSortedRowModel()\n }\n\n return instance._getSortedRowModel()\n },\n }\n },\n}\n"],"names":["Sorting","getDefaultColumn","sortType","getInitialState","sorting","getDefaultOptions","instance","onSortingChange","makeStateUpdater","autoResetSorting","isMultiSortEvent","e","shiftKey","createColumn","column","getCanSort","getColumnCanSort","id","getCanMultiSort","getColumnCanMultiSort","getSortIndex","getColumnSortIndex","getIsSorted","getColumnIsSorted","resetSorting","toggleSorting","desc","isMulti","toggleColumnSorting","getToggleSortingProps","userProps","getInstance","registered","_notifySortingReset","_notifyGroupingReset","options","autoResetAll","getColumnAutoSortingFn","columnId","firstRows","getGlobalFilteredRowModel","flatRows","slice","isString","_createForOfIteratorHelperLoose","row","value","values","Object","prototype","toString","call","sortTypes","datetime","split","reSplitAlphaNumeric","length","alphanumeric","text","basic","getColumnAutoSortDir","firstRow","getColumnSortingFn","getColumn","userSortTypes","Error","isFunction","setSorting","updater","functionalUpdate","getState","multi","old","existingSorting","find","d","existingIndex","findIndex","hasDescDefined","newSorting","sortAction","sortDescFirst","enableSortingRemoval","enableMultiRemove","splice","maxMultiSortColCount","Number","MAX_SAFE_INTEGER","map","_extends","filter","enableSorting","defaultCanSort","accessorFn","enableMultiSort","columnSort","initialState","canSort","initialProps","title","undefined","onClick","persist","propGetter","getPreSortedRowModel","getSortedRowModel","_getSortedRowModel"],"mappings":";;;;;;;;;;;;;;;;;;AA6HA;AAEO,IAAMA,OAAO,GAAG;AACrBC,EAAAA,gBAAgB,EAAE,SAEkB,gBAAA,GAAA;AAClC,IAAO,OAAA;AACLC,MAAAA,QAAQ,EAAE,MAAA;AADL,KAAP,CAAA;AAGD,GAPoB;AASrBC,EAAAA,eAAe,EAAE,SAAyB,eAAA,GAAA;AACxC,IAAO,OAAA;AACLC,MAAAA,OAAO,EAAE,EAAA;AADJ,KAAP,CAAA;AAGD,GAboB;AAerBC,EAAAA,iBAAiB,EAAE,SACjBC,iBAAAA,CAAAA,QADiB,EAEa;AAC9B,IAAO,OAAA;AACLC,MAAAA,eAAe,EAAEC,sBAAgB,CAAC,SAAD,EAAYF,QAAZ,CAD5B;AAELG,MAAAA,gBAAgB,EAAE,IAFb;AAGLC,MAAAA,gBAAgB,EAAE,SAACC,gBAAAA,CAAAA,CAAD,EAAgC;AAChD,QAAOA,OAAAA,CAAC,CAACC,QAAT,CAAA;AACD,OAAA;AALI,KAAP,CAAA;AAOD,GAzBoB;AA2BrBC,EAAAA,YAAY,EAAE,SAAA,YAAA,CACZC,MADY,EAEZR,QAFY,EAGiB;AAC7B,IAAO,OAAA;AACLJ,MAAAA,QAAQ,EAAEY,MAAM,CAACZ,QADZ;AAELa,MAAAA,UAAU,EAAE,SAAA,UAAA,GAAA;AAAA,QAAA,OAAMT,QAAQ,CAACU,gBAAT,CAA0BF,MAAM,CAACG,EAAjC,CAAN,CAAA;AAAA,OAFP;AAGLC,MAAAA,eAAe,EAAE,SAAA,eAAA,GAAA;AAAA,QAAA,OAAMZ,QAAQ,CAACa,qBAAT,CAA+BL,MAAM,CAACG,EAAtC,CAAN,CAAA;AAAA,OAHZ;AAILG,MAAAA,YAAY,EAAE,SAAA,YAAA,GAAA;AAAA,QAAA,OAAMd,QAAQ,CAACe,kBAAT,CAA4BP,MAAM,CAACG,EAAnC,CAAN,CAAA;AAAA,OAJT;AAKLK,MAAAA,WAAW,EAAE,SAAA,WAAA,GAAA;AAAA,QAAA,OAAMhB,QAAQ,CAACiB,iBAAT,CAA2BT,MAAM,CAACG,EAAlC,CAAN,CAAA;AAAA,OALR;AAMLO,MAAAA,YAAY,EAAE,SAAA,YAAA,GAAA;AAAA,QAAA,OAAMlB,QAAQ,CAACkB,YAAT,CAAsBV,MAAM,CAACG,EAA7B,CAAN,CAAA;AAAA,OANT;AAOLQ,MAAAA,aAAa,EAAE,SAACC,aAAAA,CAAAA,IAAD,EAAOC,OAAP,EAAA;AAAA,QACbrB,OAAAA,QAAQ,CAACsB,mBAAT,CAA6Bd,MAAM,CAACG,EAApC,EAAwCS,IAAxC,EAA8CC,OAA9C,CADa,CAAA;AAAA,OAPV;AASLE,MAAAA,qBAAqB,EAAE,SAAA,qBAAA,CAAAC,SAAS,EAAA;AAAA,QAC9BxB,OAAAA,QAAQ,CAACuB,qBAAT,CAA+Bf,MAAM,CAACG,EAAtC,EAA0Ca,SAA1C,CAD8B,CAAA;AAAA,OAAA;AAT3B,KAAP,CAAA;AAYD,GA3CoB;AA6CrBC,EAAAA,WAAW,EAAE,SACXzB,WAAAA,CAAAA,QADW,EAEoB;AAC/B,IAAI0B,IAAAA,UAAU,GAAG,KAAjB,CAAA;AAEA,IAAO,OAAA;AACLC,MAAAA,mBAAmB,EAAE,SAAM,mBAAA,GAAA;AACzB3B,QAAAA,QAAQ,CAAC4B,oBAAT,EAAA,CAAA;;AAEA,QAAI,IAAA,CAACF,UAAL,EAAiB;AACfA,UAAAA,UAAU,GAAG,IAAb,CAAA;AACA,UAAA,OAAA;AACD,SAAA;;AAED,QAAA,IAAI1B,QAAQ,CAAC6B,OAAT,CAAiBC,YAAjB,KAAkC,KAAtC,EAA6C;AAC3C,UAAA,OAAA;AACD,SAAA;;AAED,QAAA,IACE9B,QAAQ,CAAC6B,OAAT,CAAiBC,YAAjB,KAAkC,IAAlC,IACA9B,QAAQ,CAAC6B,OAAT,CAAiB1B,gBAFnB,EAGE;AACAH,UAAAA,QAAQ,CAACkB,YAAT,EAAA,CAAA;AACD,SAAA;AACF,OAnBI;AAoBLa,MAAAA,sBAAsB,EAAE,SAAAC,sBAAAA,CAAAA,QAAQ,EAAI;AAClC,QAAMC,IAAAA,SAAS,GAAGjC,QAAQ,CACvBkC,yBADe,EAEfC,CAAAA,QAFe,CAENC,KAFM,CAEA,GAFA,CAAlB,CAAA;AAIA,QAAIC,IAAAA,QAAQ,GAAG,KAAf,CAAA;;AAEA,QAAA,KAAA,IAAA,SAAA,GAAAC,wDAAA,CAAkBL,SAAlB,CAA6B,EAAA,KAAA,EAAA,CAAA,CAAA,KAAA,GAAA,SAAA,EAAA,EAAA,IAAA,GAAA;AAAA,UAAA,IAAlBM,GAAkB,GAAA,KAAA,CAAA,KAAA,CAAA;AAC3B,UAAMC,IAAAA,KAAK,GAAGD,GAAH,IAAA,IAAA,GAAA,KAAA,CAAA,GAAGA,GAAG,CAAEE,MAAL,CAAYT,QAAZ,CAAd,CAAA;;AAEA,UAAIU,IAAAA,MAAM,CAACC,SAAP,CAAiBC,QAAjB,CAA0BC,IAA1B,CAA+BL,KAA/B,CAA0C,KAAA,eAA9C,EAA+D;AAC7D,YAAOM,OAAAA,mBAAS,CAACC,QAAjB,CAAA;AACD,WAAA;;AAED,UAAA,IAAI,OAAOP,KAAP,KAAiB,QAArB,EAA+B;AAC7BH,YAAAA,QAAQ,GAAG,IAAX,CAAA;;AAEA,YAAIG,IAAAA,KAAK,CAACQ,KAAN,CAAYC,6BAAZ,CAAiCC,CAAAA,MAAjC,GAA0C,CAA9C,EAAiD;AAC/C,cAAOJ,OAAAA,mBAAS,CAACK,YAAjB,CAAA;AACD,aAAA;AACF,WAAA;AACF,SAAA;;AAED,QAAA,IAAId,QAAJ,EAAc;AACZ,UAAOS,OAAAA,mBAAS,CAACM,IAAjB,CAAA;AACD,SAAA;;AAED,QAAON,OAAAA,mBAAS,CAACO,KAAjB,CAAA;AACD,OAhDI;AAiDLC,MAAAA,oBAAoB,EAAE,SAAAtB,oBAAAA,CAAAA,QAAQ,EAAI;AAChC,QAAMuB,IAAAA,QAAQ,GAAGvD,QAAQ,CAACkC,yBAAT,EAAqCC,CAAAA,QAArC,CAA8C,CAA9C,CAAjB,CAAA;AAEA,QAAMK,IAAAA,KAAK,GAAGe,QAAH,IAAA,IAAA,GAAA,KAAA,CAAA,GAAGA,QAAQ,CAAEd,MAAV,CAAiBT,QAAjB,CAAd,CAAA;;AAEA,QAAA,IAAI,OAAOQ,KAAP,KAAiB,QAArB,EAA+B;AAC7B,UAAA,OAAO,KAAP,CAAA;AACD,SAAA;;AAED,QAAA,OAAO,MAAP,CAAA;AACD,OA3DI;AA4DLgB,MAAAA,kBAAkB,EAAE,SAAAxB,kBAAAA,CAAAA,QAAQ,EAAI;AAAA,QAAA,IAAA,IAAA,CAAA;;AAC9B,QAAA,IAAMxB,MAAM,GAAGR,QAAQ,CAACyD,SAAT,CAAmBzB,QAAnB,CAAf,CAAA;AACA,QAAA,IAAM0B,aAAa,GAAG1D,QAAQ,CAAC6B,OAAT,CAAiBiB,SAAvC,CAAA;;AAEA,QAAI,IAAA,CAACtC,MAAL,EAAa;AACX,UAAM,MAAA,IAAImD,KAAJ,EAAN,CAAA;AACD,SAAA;;AAED,QAAA,OAAOC,gBAAU,CAACpD,MAAM,CAACZ,QAAR,CAAV,GACHY,MAAM,CAACZ,QADJ,GAEHY,MAAM,CAACZ,QAAP,KAAoB,MAApB,GACAI,QAAQ,CAAC+B,sBAAT,CAAgCC,QAAhC,CADA,GAAA,CAAA,IAAA,GAEC0B,aAFD,IAAA,IAAA,GAAA,KAAA,CAAA,GAECA,aAAD,CACElD,MAAM,CAACZ,QADT,CAFA,KAKCkD,IAAAA,GAAAA,IAAAA,GAAAA,mBAAS,CACRtC,MAAM,CAACZ,QADC,CAPd,CAAA;AAUD,OA9EI;AAgFLiE,MAAAA,UAAU,EAAE,SAAA,UAAA,CAAAC,OAAO,EAAA;AAAA,QACjB9D,OAAAA,QAAQ,CAAC6B,OAAT,CAAiB5B,eADA,oBACjBD,QAAQ,CAAC6B,OAAT,CAAiB5B,eAAjB,CACE6D,OADF,EAEEC,sBAAgB,CAACD,OAAD,EAAU9D,QAAQ,CAACgE,QAAT,EAAA,CAAoBlE,OAA9B,CAFlB,CADiB,CAAA;AAAA,OAhFd;AAsFLwB,MAAAA,mBAAmB,EAAE,SAACU,mBAAAA,CAAAA,QAAD,EAAWZ,IAAX,EAAiB6C,KAAjB,EAA2B;AAC9C,QAAA,IAAMzD,MAAM,GAAGR,QAAQ,CAACyD,SAAT,CAAmBzB,QAAnB,CAAf,CAAA;;AAEA,QAAI,IAAA,CAACxB,MAAL,EAAa;AACX,UAAM,MAAA,IAAImD,KAAJ,EAAN,CAAA;AACD,SAL6C;AAQ9C;AACA;AACA;AACA;AACA;AACA;AACA;;;AAEA3D,QAAAA,QAAQ,CAAC6D,UAAT,CAAoB,UAAAK,GAAG,EAAI;AAAA,UAAA,IAAA,KAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,sBAAA,CAAA;;AACzB;AACA,UAAMC,IAAAA,eAAe,GAAGD,GAAH,IAAA,IAAA,GAAA,KAAA,CAAA,GAAGA,GAAG,CAAEE,IAAL,CAAU,UAAAC,CAAC,EAAA;AAAA,YAAA,OAAIA,CAAC,CAAC1D,EAAF,KAASqB,QAAb,CAAA;AAAA,WAAX,CAAxB,CAAA;AACA,UAAMsC,IAAAA,aAAa,GAAGJ,GAAH,IAAA,IAAA,GAAA,KAAA,CAAA,GAAGA,GAAG,CAAEK,SAAL,CAAe,UAAAF,CAAC,EAAA;AAAA,YAAA,OAAIA,CAAC,CAAC1D,EAAF,KAASqB,QAAb,CAAA;AAAA,WAAhB,CAAtB,CAAA;AACA,UAAMwC,IAAAA,cAAc,GAAG,OAAOpD,IAAP,KAAgB,WAAhB,IAA+BA,IAAI,KAAK,IAA/D,CAAA;AAEA,UAAA,IAAIqD,UAAwB,GAAG,EAA/B,CANyB;;AASzB,UAAA,IAAIC,UAAJ,CAAA;;AAEA,UAAA,IAAIlE,MAAM,CAACI,eAAP,EAAA,IAA4BqD,KAAhC,EAAuC;AACrC,YAAA,IAAIE,eAAJ,EAAqB;AACnBO,cAAAA,UAAU,GAAG,QAAb,CAAA;AACD,aAFD,MAEO;AACLA,cAAAA,UAAU,GAAG,KAAb,CAAA;AACD,aAAA;AACF,WAND,MAMO;AACL;AACA,YAAA,IAAIR,GAAG,IAAA,IAAH,IAAAA,GAAG,CAAEhB,MAAL,IAAeoB,aAAa,KAAKJ,GAAG,CAAChB,MAAJ,GAAa,CAAlD,EAAqD;AACnDwB,cAAAA,UAAU,GAAG,SAAb,CAAA;AACD,aAFD,MAEO,IAAIP,eAAJ,EAAqB;AAC1BO,cAAAA,UAAU,GAAG,QAAb,CAAA;AACD,aAFM,MAEA;AACLA,cAAAA,UAAU,GAAG,SAAb,CAAA;AACD,aAAA;AACF,WAAA;;AAED,UAAMC,IAAAA,aAAa,qCACjBnE,MAAM,CAACmE,aADU,KAEjB3E,IAAAA,GAAAA,qBAAAA,GAAAA,QAAQ,CAAC6B,OAAT,CAAiB8C,aAFA,KAGjB3E,IAAAA,GAAAA,KAAAA,GAAAA,QAAQ,CAACsD,oBAAT,CAA8BtB,QAA9B,CAA4C,KAAA,MAH9C,CA5ByB;;AAkCzB,UACE0C,IAAAA,UAAU,KAAK,QAAf;AAAA,UAAA,CAAA,qBAAA,GACC1E,QAAQ,CAAC6B,OAAT,CAAiB+C,oBADlB,KAAA,IAAA,GAAA,qBAAA,GAC0C,IAD1C,CACmD;AACnD,UAAA,CAACJ,cAFD;AAGCP,UAAAA,KAAK,GAAGjE,CAAAA,sBAAAA,GAAAA,QAAQ,CAAC6B,OAAT,CAAiBgD,iBAApB,KAAyC,IAAA,GAAA,sBAAA,GAAA,IAAzC,GAAgD,IAHtD,CAG+D;AAC9DV,UAAAA,eAAe,IAAf,IAAA,IAAAA,eAAe,CAAE/C,IAAjB;AAAA,YACG,CAACuD,aADJ,GAEGA,aANJ,CADF,EAQE;AACAD,YAAAA,UAAU,GAAG,QAAb,CAAA;AACD,WAAA;;AAED,UAAIA,IAAAA,UAAU,KAAK,SAAnB,EAA8B;AAC5BD,YAAAA,UAAU,GAAG,CACX;AACE9D,cAAAA,EAAE,EAAEqB,QADN;AAEEZ,cAAAA,IAAI,EAAEoD,cAAc,GAAGpD,IAAH,GAAW,CAAC,CAACuD,aAAAA;AAFnC,aADW,CAAb,CAAA;AAMD,WAPD,MAOO,IAAID,UAAU,KAAK,KAAf,IAAwBR,GAAxB,IAAwBA,IAAAA,IAAAA,GAAG,CAAEhB,MAAjC,EAAyC;AAAA,YAAA,IAAA,qBAAA,CAAA;;AAC9CuB,YAAAA,UAAU,GACLP,EAAAA,CAAAA,MAAAA,CAAAA,GADK,EAER,CAAA;AACEvD,cAAAA,EAAE,EAAEqB,QADN;AAEEZ,cAAAA,IAAI,EAAEoD,cAAc,GAAGpD,IAAH,GAAW,CAAC,CAACuD,aAAAA;AAFnC,aAFQ,CAAA,CAAV,CAD8C;;AAS9CF,YAAAA,UAAU,CAACK,MAAX,CACE,CADF,EAEEL,UAAU,CAACvB,MAAX,6BACGlD,QAAQ,CAAC6B,OAAT,CAAiBkD,oBADpB,oCAEIC,MAAM,CAACC,gBAFX,CAFF,CAAA,CAAA;AAMD,WAfM,MAeA,IAAIP,UAAU,KAAK,QAAf,IAA2BR,GAA3B,IAA2BA,IAAAA,IAAAA,GAAG,CAAEhB,MAApC,EAA4C;AACjD;AACAuB,YAAAA,UAAU,GAAGP,GAAG,CAACgB,GAAJ,CAAQ,UAAAb,CAAC,EAAI;AACxB,cAAA,IAAIA,CAAC,CAAC1D,EAAF,KAASqB,QAAb,EAAuB;AACrB,gBAAA,OAAAmD,oCAAA,CAAA,EAAA,EACKd,CADL,EAAA;AAEEjD,kBAAAA,IAAI,EAAEoD,cAAc,GAAGpD,IAAH,GAAW,EAAC+C,eAAD,IAAA,IAAA,IAACA,eAAe,CAAE/C,IAAlB,CAAA;AAFjC,iBAAA,CAAA,CAAA;AAID,eAAA;;AACD,cAAA,OAAOiD,CAAP,CAAA;AACD,aARY,CAAb,CAAA;AASD,WAXM,MAWA,IAAIK,UAAU,KAAK,QAAf,IAA2BR,GAA3B,IAA2BA,IAAAA,IAAAA,GAAG,CAAEhB,MAApC,EAA4C;AACjDuB,YAAAA,UAAU,GAAGP,GAAG,CAACkB,MAAJ,CAAW,UAAAf,CAAC,EAAA;AAAA,cAAA,OAAIA,CAAC,CAAC1D,EAAF,KAASqB,QAAb,CAAA;AAAA,aAAZ,CAAb,CAAA;AACD,WAAA;;AAED,UAAA,OAAOyC,UAAP,CAAA;AACD,SApFD,CAAA,CAAA;AAqFD,OA3LI;AA6LL/D,MAAAA,gBAAgB,EAAE,SAAAsB,gBAAAA,CAAAA,QAAQ,EAAI;AAAA,QAAA,IAAA,KAAA,EAAA,KAAA,EAAA,qBAAA,CAAA;;AAC5B,QAAA,IAAMxB,MAAM,GAAGR,QAAQ,CAACyD,SAAT,CAAmBzB,QAAnB,CAAf,CAAA;;AAEA,QAAI,IAAA,CAACxB,MAAL,EAAa;AACX,UAAM,MAAA,IAAImD,KAAJ,EAAN,CAAA;AACD,SAAA;;AAED,QAAA,OAAA,CAAA,KAAA,GAAA,CAAA,KAAA,GAAA,CAAA,qBAAA,GACEnD,MAAM,CAAC6E,aADT,oCAEErF,QAAQ,CAAC6B,OAAT,CAAiBwD,aAFnB,oBAGE7E,MAAM,CAAC8E,cAHT,KAIE,IAAA,GAAA,KAAA,GAAA,CAAC,CAAC9E,MAAM,CAAC+E,UAJX;AAME;AACA;AAPF,SAAA;AASD,OA7MI;AA+ML1E,MAAAA,qBAAqB,EAAE,SAAAmB,qBAAAA,CAAAA,QAAQ,EAAI;AAAA,QAAA,IAAA,KAAA,EAAA,qBAAA,CAAA;;AACjC,QAAA,IAAMxB,MAAM,GAAGR,QAAQ,CAACyD,SAAT,CAAmBzB,QAAnB,CAAf,CAAA;;AAEA,QAAI,IAAA,CAACxB,MAAL,EAAa;AACX,UAAM,MAAA,IAAImD,KAAJ,EAAN,CAAA;AACD,SAAA;;AAED,QAAA,OAAA,CAAA,KAAA,GAAA,CAAA,qBAAA,GACEnD,MAAM,CAACgF,eADT,KAAA,IAAA,GAAA,qBAAA,GAEExF,QAAQ,CAAC6B,OAAT,CAAiB2D,eAFnB,KAGE,IAAA,GAAA,KAAA,GAAA,CAAC,CAAChF,MAAM,CAAC+E,UAHX,CAAA;AAKD,OA3NI;AA6NLtE,MAAAA,iBAAiB,EAAE,SAAAe,iBAAAA,CAAAA,QAAQ,EAAI;AAAA,QAAA,IAAA,qBAAA,CAAA;;AAC7B,QAAA,IAAMyD,UAAU,GAAA,CAAA,qBAAA,GAAGzF,QAAQ,CACxBgE,QADgB,EAAA,CAEhBlE,OAFa,KAAA,IAAA,GAAA,KAAA,CAAA,GAAG,qBAEPsE,CAAAA,IAFO,CAEF,UAAAC,CAAC,EAAA;AAAA,UAAA,OAAIA,CAAC,CAAC1D,EAAF,KAASqB,QAAb,CAAA;AAAA,SAFC,CAAnB,CAAA;AAIA,QAAO,OAAA,CAACyD,UAAD,GAAc,KAAd,GAAsBA,UAAU,CAACrE,IAAX,GAAkB,MAAlB,GAA2B,KAAxD,CAAA;AACD,OAnOI;AAqOLL,MAAAA,kBAAkB,EAAE,SAAA,kBAAA,CAAAiB,QAAQ,EAAA;AAAA,QAAA,IAAA,sBAAA,EAAA,sBAAA,CAAA;;AAAA,QAC1BhC,OAAAA,CAAAA,sBAAAA,GAAAA,CAAAA,sBAAAA,GAAAA,QAAQ,CAACgE,QAAT,EAAoBlE,CAAAA,OADM,qBAC1B,sBAA6ByE,CAAAA,SAA7B,CAAuC,UAAAF,CAAC,EAAA;AAAA,UAAA,OAAIA,CAAC,CAAC1D,EAAF,KAASqB,QAAb,CAAA;AAAA,SAAxC,CAD0B,KACwC,IAAA,GAAA,sBAAA,GAAA,CAAC,CADzC,CAAA;AAAA,OArOvB;AAwOLd,MAAAA,YAAY,EAAE,SAACc,YAAAA,CAAAA,QAAD,EAAuB;AACnC,QAAA,IAAIA,QAAJ,EAAc;AACZhC,UAAAA,QAAQ,CAAC6D,UAAT,CAAoB,UAAAK,GAAG,EAAA;AAAA,YAAA,OACrBA,GAAG,IAAA,IAAH,IAAAA,GAAG,CAAEhB,MAAL,GAAcgB,GAAG,CAACkB,MAAJ,CAAW,UAAAf,CAAC,EAAA;AAAA,cAAA,OAAIA,CAAC,CAAC1D,EAAF,KAASqB,QAAb,CAAA;AAAA,aAAZ,CAAd,GAAmD,EAD9B,CAAA;AAAA,WAAvB,CAAA,CAAA;AAGD,SAJD,MAIO;AAAA,UAAA,IAAA,qBAAA,EAAA,sBAAA,CAAA;;AACLhC,UAAAA,QAAQ,CAAC6D,UAAT,CAAoB7D,CAAAA,qBAAAA,GAAAA,CAAAA,sBAAAA,GAAAA,QAAQ,CAAC0F,YAA7B,KAAoB,IAAA,GAAA,KAAA,CAAA,GAAA,sBAAA,CAAuB5F,OAA3C,KAAA,IAAA,GAAA,qBAAA,GAAsD,EAAtD,CAAA,CAAA;AACD,SAAA;AACF,OAhPI;AAkPLyB,MAAAA,qBAAqB,EAAE,SAAA,qBAAA,CAACS,QAAD,EAAWR,SAAX,EAAyB;AAC9C,QAAA,IAAMhB,MAAM,GAAGR,QAAQ,CAACyD,SAAT,CAAmBzB,QAAnB,CAAf,CAAA;;AAEA,QAAI,IAAA,CAACxB,MAAL,EAAa;AACX,UAAM,MAAA,IAAImD,KAAJ,EAAN,CAAA;AACD,SAAA;;AAED,QAAA,IAAMgC,OAAO,GAAGnF,MAAM,CAACC,UAAP,EAAhB,CAAA;AAEA,QAAA,IAAMmF,YAAgC,GAAG;AACvCC,UAAAA,KAAK,EAAEF,OAAO,GAAG,gBAAH,GAAsBG,SADG;AAEvCC,UAAAA,OAAO,EAAEJ,OAAO,GACZ,UAACtF,CAAD,EAAgC;AAC9BA,YAAAA,CAAC,CAAC2F,OAAF,IAAA3F,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,CAAC,CAAC2F,OAAF,EAAA,CAAA;AACAxF,YAAAA,MAAM,CAACW,aAAP,IAAA,IAAA,GAAA,KAAA,CAAA,GAAAX,MAAM,CAACW,aAAP,CACE2E,SADF,EAEEtF,MAAM,CAACI,eAAP,EAAA,GACIZ,QAAQ,CAAC6B,OAAT,CAAiBzB,gBADrB,IAAA,IAAA,GAAA,KAAA,CAAA,GACIJ,QAAQ,CAAC6B,OAAT,CAAiBzB,gBAAjB,CAAoCC,CAApC,CADJ,GAEI,KAJN,CAAA,CAAA;AAMD,WATW,GAUZyF,SAAAA;AAZmC,SAAzC,CAAA;AAeA,QAAA,OAAOG,gBAAU,CAACL,YAAD,EAAepE,SAAf,CAAjB,CAAA;AACD,OA3QI;AA6QL0E,MAAAA,oBAAoB,EAAE,SAAA,oBAAA,GAAA;AAAA,QAAMlG,OAAAA,QAAQ,CAACkC,yBAAT,EAAN,CAAA;AAAA,OA7QjB;AA8QLiE,MAAAA,iBAAiB,EAAE,SAAM,iBAAA,GAAA;AACvB,QACE,IAAA,CAACnG,QAAQ,CAACoG,kBAAV,IACApG,QAAQ,CAAC6B,OAAT,CAAiBsE,iBAFnB,EAGE;AACAnG,UAAAA,QAAQ,CAACoG,kBAAT,GACEpG,QAAQ,CAAC6B,OAAT,CAAiBsE,iBAAjB,CAAmCnG,QAAnC,CADF,CAAA;AAED,SAAA;;AAED,QAAA,IAAI,CAACA,QAAQ,CAACoG,kBAAd,EAAkC;AAChC,UAAOpG,OAAAA,QAAQ,CAACkG,oBAAT,EAAP,CAAA;AACD,SAAA;;AAED,QAAOlG,OAAAA,QAAQ,CAACoG,kBAAT,EAAP,CAAA;AACD,OAAA;AA5RI,KAAP,CAAA;AA8RD,GAAA;AAhVoB;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"Visibility.js","sources":["../../../src/features/Visibility.ts"],"sourcesContent":["import {\n Cell,\n Column,\n Getter,\n OnChangeFn,\n AnyGenerics,\n PartialGenerics,\n PropGetterValue,\n TableInstance,\n Updater,\n} from '../types'\nimport { functionalUpdate, makeStateUpdater, memo, propGetter } 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 AnyGenerics> = {\n getVisibleFlatColumns: () => Column<TGenerics>[]\n getVisibleLeafColumns: () => Column<TGenerics>[]\n setColumnVisibility: (updater: Updater<VisibilityState>) => void\n toggleColumnVisibility: (columnId: string, value?: boolean) => void\n toggleAllColumnsVisible: (value?: boolean) => void\n getColumnIsVisible: (columId: string) => boolean\n getColumnCanHide: (columnId: string) => boolean\n getIsAllColumnsVisible: () => boolean\n getIsSomeColumnsVisible: () => boolean\n getToggleAllColumnsVisibilityProps: <\n TGetter extends Getter<ToggleAllColumnsVisibilityProps>\n >(\n userProps?: TGetter\n ) => undefined | PropGetterValue<ToggleAllColumnsVisibilityProps, TGetter>\n}\n\ntype ToggleVisibilityProps = {}\ntype ToggleAllColumnsVisibilityProps = {}\n\nexport type VisibilityColumnDef = {\n enableHiding?: boolean\n defaultCanHide?: boolean\n defaultIsVisible?: boolean\n}\n\nexport type VisibilityRow<TGenerics extends AnyGenerics> = {\n getVisibleCells: () => Cell<TGenerics>[]\n}\n\nexport type VisibilityColumn = {\n getCanHide: () => boolean\n getIsVisible: () => boolean\n toggleVisibility: (value?: boolean) => void\n getToggleVisibilityProps: <TGetter extends Getter<ToggleVisibilityProps>>(\n userProps?: TGetter\n ) => PropGetterValue<ToggleVisibilityProps, TGetter>\n}\n\n//\n\nexport const Visibility = {\n getInitialState: (): VisibilityTableState => {\n return {\n columnVisibility: {},\n }\n },\n\n getDefaultOptions: <TGenerics extends AnyGenerics>(\n instance: TableInstance<TGenerics>\n ): VisibilityDefaultOptions => {\n return {\n onColumnVisibilityChange: makeStateUpdater('columnVisibility', instance),\n }\n },\n\n getDefaultColumn: () => {\n return {\n defaultIsVisible: true,\n }\n },\n\n createColumn: <TGenerics extends AnyGenerics>(\n column: Column<TGenerics>,\n instance: TableInstance<TGenerics>\n ): VisibilityColumn => {\n return {\n getCanHide: () => instance.getColumnCanHide(column.id),\n getIsVisible: () => instance.getColumnIsVisible(column.id),\n toggleVisibility: value =>\n instance.toggleColumnVisibility(column.id, value),\n getToggleVisibilityProps: userProps => {\n const props: ToggleVisibilityProps = {\n type: 'checkbox',\n checked: column.getIsVisible?.(),\n title: 'Toggle Column Visibility',\n onChange: (e: MouseEvent | TouchEvent) => {\n column.toggleVisibility?.((e.target as HTMLInputElement).checked)\n },\n }\n\n return propGetter(props, userProps)\n },\n }\n },\n\n getInstance: <TGenerics extends AnyGenerics>(\n instance: TableInstance<TGenerics>\n ): VisibilityInstance<TGenerics> => {\n return {\n getVisibleFlatColumns: memo(\n () => [\n instance.getAllFlatColumns(),\n instance\n .getAllFlatColumns()\n .filter(d => d.getIsVisible?.())\n .map(d => d.id)\n .join('_'),\n ],\n allFlatColumns => {\n return allFlatColumns.filter(d => d.getIsVisible?.())\n },\n {\n key: 'getVisibleFlatColumns',\n debug: () =>\n instance.options.debugAll ?? instance.options.debugColumns,\n }\n ),\n\n getVisibleLeafColumns: memo(\n () => [\n instance.getAllLeafColumns(),\n instance\n .getAllLeafColumns()\n .filter(d => d.getIsVisible?.())\n .map(d => d.id)\n .join('_'),\n ],\n allFlatColumns => {\n return allFlatColumns.filter(d => d.getIsVisible?.())\n },\n {\n key: 'getVisibleLeafColumns',\n debug: () =>\n instance.options.debugAll ?? instance.options.debugColumns,\n }\n ),\n\n setColumnVisibility: updater =>\n instance.options.onColumnVisibilityChange?.(\n updater,\n functionalUpdate(updater, instance.getState().columnVisibility)\n ),\n\n toggleColumnVisibility: (columnId, value) => {\n if (!columnId) return\n\n if (instance.getColumnCanHide(columnId)) {\n instance.setColumnVisibility(old => ({\n ...old,\n [columnId]: value ?? !instance.getColumnIsVisible(columnId),\n }))\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 getColumnIsVisible: columnId => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n throw new Error()\n }\n\n return (\n instance.getState().columnVisibility?.[columnId] ??\n column.defaultIsVisible ??\n true\n )\n },\n\n getColumnCanHide: columnId => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n throw new Error()\n }\n\n return (\n instance.options.enableHiding ??\n column.enableHiding ??\n column.defaultCanHide ??\n true\n )\n },\n\n getIsAllColumnsVisible: () =>\n !instance.getAllLeafColumns().some(column => !column.getIsVisible?.()),\n\n getIsSomeColumnsVisible: () =>\n instance.getAllLeafColumns().some(column => column.getIsVisible?.()),\n\n getToggleAllColumnsVisibilityProps: userProps => {\n const props: ToggleAllColumnsVisibilityProps = {\n onChange: (e: MouseEvent) => {\n instance.toggleAllColumnsVisible(\n (e.target as HTMLInputElement)?.checked\n )\n },\n type: 'checkbox',\n title: 'Toggle visibility for all columns',\n checked: instance.getIsAllColumnsVisible(),\n indeterminate:\n !instance.getIsAllColumnsVisible() &&\n instance.getIsSomeColumnsVisible()\n ? 'indeterminate'\n : undefined,\n }\n\n return propGetter(props, userProps)\n },\n }\n },\n}\n"],"names":["Visibility","getInitialState","columnVisibility","getDefaultOptions","instance","onColumnVisibilityChange","makeStateUpdater","getDefaultColumn","defaultIsVisible","createColumn","column","getCanHide","getColumnCanHide","id","getIsVisible","getColumnIsVisible","toggleVisibility","value","toggleColumnVisibility","getToggleVisibilityProps","userProps","props","type","checked","title","onChange","e","target","propGetter","getInstance","getVisibleFlatColumns","memo","getAllFlatColumns","filter","d","map","join","allFlatColumns","key","debug","options","debugAll","debugColumns","getVisibleLeafColumns","getAllLeafColumns","setColumnVisibility","updater","functionalUpdate","getState","columnId","old","toggleAllColumnsVisible","getIsAllColumnsVisible","reduce","obj","getColumn","Error","enableHiding","defaultCanHide","some","getIsSomeColumnsVisible","getToggleAllColumnsVisibilityProps","indeterminate","undefined"],"mappings":"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"}
1
+ {"version":3,"file":"Visibility.js","sources":["../../../src/features/Visibility.ts"],"sourcesContent":["import {\n Cell,\n Column,\n Getter,\n OnChangeFn,\n AnyGenerics,\n PartialGenerics,\n PropGetterValue,\n TableInstance,\n Updater,\n} from '../types'\nimport { functionalUpdate, makeStateUpdater, memo, propGetter } 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 AnyGenerics> = {\n getVisibleFlatColumns: () => Column<TGenerics>[]\n getVisibleLeafColumns: () => Column<TGenerics>[]\n setColumnVisibility: (updater: Updater<VisibilityState>) => void\n toggleColumnVisibility: (columnId: string, value?: boolean) => void\n toggleAllColumnsVisible: (value?: boolean) => void\n getColumnIsVisible: (columId: string) => boolean\n getColumnCanHide: (columnId: string) => boolean\n getIsAllColumnsVisible: () => boolean\n getIsSomeColumnsVisible: () => boolean\n getToggleAllColumnsVisibilityProps: <\n TGetter extends Getter<ToggleAllColumnsVisibilityProps>\n >(\n userProps?: TGetter\n ) => undefined | PropGetterValue<ToggleAllColumnsVisibilityProps, TGetter>\n}\n\ntype ToggleVisibilityProps = {}\ntype ToggleAllColumnsVisibilityProps = {}\n\nexport type VisibilityColumnDef = {\n enableHiding?: boolean\n defaultCanHide?: boolean\n defaultIsVisible?: boolean\n}\n\nexport type VisibilityRow<TGenerics extends AnyGenerics> = {\n getVisibleCells: () => Cell<TGenerics>[]\n}\n\nexport type VisibilityColumn = {\n getCanHide: () => boolean\n getIsVisible: () => boolean\n toggleVisibility: (value?: boolean) => void\n getToggleVisibilityProps: <TGetter extends Getter<ToggleVisibilityProps>>(\n userProps?: TGetter\n ) => PropGetterValue<ToggleVisibilityProps, TGetter>\n}\n\n//\n\nexport const Visibility = {\n getInitialState: (): VisibilityTableState => {\n return {\n columnVisibility: {},\n }\n },\n\n getDefaultOptions: <TGenerics extends AnyGenerics>(\n instance: TableInstance<TGenerics>\n ): VisibilityDefaultOptions => {\n return {\n onColumnVisibilityChange: makeStateUpdater('columnVisibility', instance),\n }\n },\n\n getDefaultColumn: () => {\n return {\n defaultIsVisible: true,\n }\n },\n\n createColumn: <TGenerics extends AnyGenerics>(\n column: Column<TGenerics>,\n instance: TableInstance<TGenerics>\n ): VisibilityColumn => {\n return {\n getCanHide: () => instance.getColumnCanHide(column.id),\n getIsVisible: () => instance.getColumnIsVisible(column.id),\n toggleVisibility: value =>\n instance.toggleColumnVisibility(column.id, value),\n getToggleVisibilityProps: userProps => {\n const props: ToggleVisibilityProps = {\n type: 'checkbox',\n checked: column.getIsVisible?.(),\n title: 'Toggle Column Visibility',\n onChange: (e: MouseEvent | TouchEvent) => {\n column.toggleVisibility?.((e.target as HTMLInputElement).checked)\n },\n }\n\n return propGetter(props, userProps)\n },\n }\n },\n\n getInstance: <TGenerics extends AnyGenerics>(\n instance: TableInstance<TGenerics>\n ): VisibilityInstance<TGenerics> => {\n return {\n getVisibleFlatColumns: memo(\n () => [\n instance.getAllFlatColumns(),\n instance\n .getAllFlatColumns()\n .filter(d => d.getIsVisible?.())\n .map(d => d.id)\n .join('_'),\n ],\n allFlatColumns => {\n return allFlatColumns.filter(d => d.getIsVisible?.())\n },\n {\n key: 'getVisibleFlatColumns',\n debug: () =>\n instance.options.debugAll ?? instance.options.debugColumns,\n }\n ),\n\n getVisibleLeafColumns: memo(\n () => [\n instance.getAllLeafColumns(),\n instance\n .getAllLeafColumns()\n .filter(d => d.getIsVisible?.())\n .map(d => d.id)\n .join('_'),\n ],\n allFlatColumns => {\n return allFlatColumns.filter(d => d.getIsVisible?.())\n },\n {\n key: 'getVisibleLeafColumns',\n debug: () =>\n instance.options.debugAll ?? instance.options.debugColumns,\n }\n ),\n\n setColumnVisibility: updater =>\n instance.options.onColumnVisibilityChange?.(\n updater,\n functionalUpdate(updater, instance.getState().columnVisibility)\n ),\n\n toggleColumnVisibility: (columnId, value) => {\n if (!columnId) return\n\n if (instance.getColumnCanHide(columnId)) {\n instance.setColumnVisibility(old => ({\n ...old,\n [columnId]: value ?? !instance.getColumnIsVisible(columnId),\n }))\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 getColumnIsVisible: columnId => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n throw new Error()\n }\n\n return (\n instance.getState().columnVisibility?.[columnId] ??\n column.defaultIsVisible ??\n true\n )\n },\n\n getColumnCanHide: columnId => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n throw new Error()\n }\n\n return (\n instance.options.enableHiding ??\n column.enableHiding ??\n column.defaultCanHide ??\n true\n )\n },\n\n getIsAllColumnsVisible: () =>\n !instance.getAllLeafColumns().some(column => !column.getIsVisible?.()),\n\n getIsSomeColumnsVisible: () =>\n instance.getAllLeafColumns().some(column => column.getIsVisible?.()),\n\n getToggleAllColumnsVisibilityProps: userProps => {\n const props: ToggleAllColumnsVisibilityProps = {\n onChange: (e: MouseEvent) => {\n instance.toggleAllColumnsVisible(\n (e.target as HTMLInputElement)?.checked\n )\n },\n type: 'checkbox',\n title: 'Toggle visibility for all columns',\n checked: instance.getIsAllColumnsVisible(),\n indeterminate:\n !instance.getIsAllColumnsVisible() &&\n instance.getIsSomeColumnsVisible()\n ? 'indeterminate'\n : undefined,\n }\n\n return propGetter(props, userProps)\n },\n }\n },\n}\n"],"names":["Visibility","getInitialState","columnVisibility","getDefaultOptions","instance","onColumnVisibilityChange","makeStateUpdater","getDefaultColumn","defaultIsVisible","createColumn","column","getCanHide","getColumnCanHide","id","getIsVisible","getColumnIsVisible","toggleVisibility","value","toggleColumnVisibility","getToggleVisibilityProps","userProps","props","type","checked","title","onChange","e","target","propGetter","getInstance","getVisibleFlatColumns","memo","getAllFlatColumns","filter","d","map","join","allFlatColumns","key","debug","options","debugAll","debugColumns","getVisibleLeafColumns","getAllLeafColumns","setColumnVisibility","updater","functionalUpdate","getState","columnId","old","_extends","toggleAllColumnsVisible","getIsAllColumnsVisible","reduce","obj","getColumn","Error","enableHiding","defaultCanHide","some","getIsSomeColumnsVisible","getToggleAllColumnsVisibilityProps","indeterminate","undefined"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"filterTypes.js","sources":["../../src/filterTypes.ts"],"sourcesContent":["import { PartialGenerics, AnyGenerics, Row } from './types'\n\nexport const filterTypes = {\n includesString,\n includesStringSensitive,\n equalsString,\n equalsStringSensitive,\n arrIncludes,\n arrIncludesAll,\n equals,\n weakEquals,\n betweenNumberRange,\n}\n\nexport type BuiltInFilterType = keyof typeof filterTypes\n\nfunction includesString<TGenerics extends AnyGenerics>(\n rows: Row<TGenerics>[],\n columnIds: string[],\n filterValue: unknown\n) {\n const search = String(filterValue).toLowerCase()\n\n rows = rows.filter(row => {\n return columnIds.some(id => {\n return String(row.values[id]).toLowerCase().includes(search)\n })\n })\n return rows\n}\n\nincludesString.autoRemove = (val: any) => testFalsey(val)\n\nfunction includesStringSensitive<TGenerics extends AnyGenerics>(\n rows: Row<TGenerics>[],\n columnIds: string[],\n filterValue: unknown\n) {\n const search = String(filterValue)\n\n rows = rows.filter(row => {\n return columnIds.some(id => {\n return String(row.values[id]).includes(search)\n })\n })\n return rows\n}\n\nincludesStringSensitive.autoRemove = (val: any) => testFalsey(val)\n\nfunction equalsString<TGenerics extends AnyGenerics>(\n rows: Row<TGenerics>[],\n columnIds: string[],\n filterValue: unknown\n) {\n const search = String(filterValue).toLowerCase()\n\n return rows.filter(row => {\n return columnIds.some(id => {\n const rowValue = row.values[id]\n return rowValue !== undefined\n ? String(rowValue).toLowerCase() === search\n : true\n })\n })\n}\n\nequalsString.autoRemove = (val: any) => testFalsey(val)\n\nfunction equalsStringSensitive<TGenerics extends AnyGenerics>(\n rows: Row<TGenerics>[],\n columnIds: string[],\n filterValue: unknown\n) {\n const search = String(filterValue)\n return rows.filter(row => {\n return columnIds.some(id => {\n const rowValue = row.values[id]\n return rowValue !== undefined ? String(rowValue) === search : true\n })\n })\n}\n\nequalsStringSensitive.autoRemove = (val: any) => testFalsey(val)\n\nfunction arrIncludes<TGenerics extends AnyGenerics>(\n rows: Row<TGenerics>[],\n columnIds: string[],\n filterValue: unknown\n) {\n return rows.filter(row => {\n return columnIds.some(id => {\n const rowValue = row.values[id]\n return rowValue.includes(filterValue)\n })\n })\n}\n\narrIncludes.autoRemove = (val: any) => testFalsey(val) || !val?.length\n\nfunction arrIncludesAll<TGenerics extends AnyGenerics>(\n rows: Row<TGenerics>[],\n columnIds: string[],\n filterValue: unknown[]\n) {\n return rows.filter(row => {\n return columnIds.some(id => {\n const rowValue = row.values[id]\n return (\n rowValue &&\n rowValue.length &&\n filterValue.every(val => rowValue.includes(val))\n )\n })\n })\n}\n\narrIncludesAll.autoRemove = (val: any) => testFalsey(val) || !val?.length\n\nfunction equals<TGenerics extends AnyGenerics>(\n rows: Row<TGenerics>[],\n columnIds: string[],\n filterValue: unknown\n) {\n return rows.filter(row => {\n return columnIds.some(id => {\n const rowValue = row.values[id]\n return rowValue === filterValue\n })\n })\n}\n\nequals.autoRemove = (val: any) => testFalsey(val)\n\nfunction weakEquals<TGenerics extends AnyGenerics>(\n rows: Row<TGenerics>[],\n columnIds: string[],\n filterValue: unknown\n) {\n return rows.filter(row => {\n return columnIds.some(id => {\n const rowValue = row.values[id]\n // eslint-disable-next-line eqeqeq\n return rowValue == filterValue\n })\n })\n}\n\nweakEquals.autoRemove = (val: any) => testFalsey(val)\n\nfunction betweenNumberRange<TGenerics extends AnyGenerics>(\n rows: Row<TGenerics>[],\n columnIds: string[],\n filterValue: [unknown, unknown]\n) {\n let [unsafeMin, unsafeMax] = filterValue || []\n\n let parsedMin =\n typeof unsafeMin !== 'number' ? parseFloat(unsafeMin as string) : unsafeMin\n let parsedMax =\n typeof unsafeMax !== 'number' ? parseFloat(unsafeMax as string) : unsafeMax\n\n let min =\n unsafeMin === null || Number.isNaN(parsedMin) ? -Infinity : parsedMin\n let max = unsafeMax === null || Number.isNaN(parsedMax) ? Infinity : parsedMax\n\n if (min > max) {\n const temp = min\n min = max\n max = temp\n }\n\n return rows.filter(row => {\n return columnIds.some(id => {\n const rowValue = row.values[id]\n return rowValue >= min && rowValue <= max\n })\n })\n}\n\nbetweenNumberRange.autoRemove = (val: any) =>\n testFalsey(val) || (testFalsey(val[0]) && testFalsey(val[1]))\n\n// Utils\n\nfunction testFalsey(val: any) {\n return val === undefined || val === null || val === ''\n}\n"],"names":["filterTypes","includesString","includesStringSensitive","equalsString","equalsStringSensitive","arrIncludes","arrIncludesAll","equals","weakEquals","betweenNumberRange","rows","columnIds","filterValue","search","String","toLowerCase","filter","row","some","id","values","includes","autoRemove","val","testFalsey","rowValue","undefined","length","every","unsafeMin","unsafeMax","parsedMin","parseFloat","parsedMax","min","Number","isNaN","Infinity","max","temp"],"mappings":"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"}
1
+ {"version":3,"file":"filterTypes.js","sources":["../../src/filterTypes.ts"],"sourcesContent":["import { PartialGenerics, AnyGenerics, Row } from './types'\n\nexport const filterTypes = {\n includesString,\n includesStringSensitive,\n equalsString,\n equalsStringSensitive,\n arrIncludes,\n arrIncludesAll,\n equals,\n weakEquals,\n betweenNumberRange,\n}\n\nexport type BuiltInFilterType = keyof typeof filterTypes\n\nfunction includesString<TGenerics extends AnyGenerics>(\n rows: Row<TGenerics>[],\n columnIds: string[],\n filterValue: unknown\n) {\n const search = String(filterValue).toLowerCase()\n\n rows = rows.filter(row => {\n return columnIds.some(id => {\n return String(row.values[id]).toLowerCase().includes(search)\n })\n })\n return rows\n}\n\nincludesString.autoRemove = (val: any) => testFalsey(val)\n\nfunction includesStringSensitive<TGenerics extends AnyGenerics>(\n rows: Row<TGenerics>[],\n columnIds: string[],\n filterValue: unknown\n) {\n const search = String(filterValue)\n\n rows = rows.filter(row => {\n return columnIds.some(id => {\n return String(row.values[id]).includes(search)\n })\n })\n return rows\n}\n\nincludesStringSensitive.autoRemove = (val: any) => testFalsey(val)\n\nfunction equalsString<TGenerics extends AnyGenerics>(\n rows: Row<TGenerics>[],\n columnIds: string[],\n filterValue: unknown\n) {\n const search = String(filterValue).toLowerCase()\n\n return rows.filter(row => {\n return columnIds.some(id => {\n const rowValue = row.values[id]\n return rowValue !== undefined\n ? String(rowValue).toLowerCase() === search\n : true\n })\n })\n}\n\nequalsString.autoRemove = (val: any) => testFalsey(val)\n\nfunction equalsStringSensitive<TGenerics extends AnyGenerics>(\n rows: Row<TGenerics>[],\n columnIds: string[],\n filterValue: unknown\n) {\n const search = String(filterValue)\n return rows.filter(row => {\n return columnIds.some(id => {\n const rowValue = row.values[id]\n return rowValue !== undefined ? String(rowValue) === search : true\n })\n })\n}\n\nequalsStringSensitive.autoRemove = (val: any) => testFalsey(val)\n\nfunction arrIncludes<TGenerics extends AnyGenerics>(\n rows: Row<TGenerics>[],\n columnIds: string[],\n filterValue: unknown\n) {\n return rows.filter(row => {\n return columnIds.some(id => {\n const rowValue = row.values[id]\n return rowValue.includes(filterValue)\n })\n })\n}\n\narrIncludes.autoRemove = (val: any) => testFalsey(val) || !val?.length\n\nfunction arrIncludesAll<TGenerics extends AnyGenerics>(\n rows: Row<TGenerics>[],\n columnIds: string[],\n filterValue: unknown[]\n) {\n return rows.filter(row => {\n return columnIds.some(id => {\n const rowValue = row.values[id]\n return (\n rowValue &&\n rowValue.length &&\n filterValue.every(val => rowValue.includes(val))\n )\n })\n })\n}\n\narrIncludesAll.autoRemove = (val: any) => testFalsey(val) || !val?.length\n\nfunction equals<TGenerics extends AnyGenerics>(\n rows: Row<TGenerics>[],\n columnIds: string[],\n filterValue: unknown\n) {\n return rows.filter(row => {\n return columnIds.some(id => {\n const rowValue = row.values[id]\n return rowValue === filterValue\n })\n })\n}\n\nequals.autoRemove = (val: any) => testFalsey(val)\n\nfunction weakEquals<TGenerics extends AnyGenerics>(\n rows: Row<TGenerics>[],\n columnIds: string[],\n filterValue: unknown\n) {\n return rows.filter(row => {\n return columnIds.some(id => {\n const rowValue = row.values[id]\n // eslint-disable-next-line eqeqeq\n return rowValue == filterValue\n })\n })\n}\n\nweakEquals.autoRemove = (val: any) => testFalsey(val)\n\nfunction betweenNumberRange<TGenerics extends AnyGenerics>(\n rows: Row<TGenerics>[],\n columnIds: string[],\n filterValue: [unknown, unknown]\n) {\n let [unsafeMin, unsafeMax] = filterValue || []\n\n let parsedMin =\n typeof unsafeMin !== 'number' ? parseFloat(unsafeMin as string) : unsafeMin\n let parsedMax =\n typeof unsafeMax !== 'number' ? parseFloat(unsafeMax as string) : unsafeMax\n\n let min =\n unsafeMin === null || Number.isNaN(parsedMin) ? -Infinity : parsedMin\n let max = unsafeMax === null || Number.isNaN(parsedMax) ? Infinity : parsedMax\n\n if (min > max) {\n const temp = min\n min = max\n max = temp\n }\n\n return rows.filter(row => {\n return columnIds.some(id => {\n const rowValue = row.values[id]\n return rowValue >= min && rowValue <= max\n })\n })\n}\n\nbetweenNumberRange.autoRemove = (val: any) =>\n testFalsey(val) || (testFalsey(val[0]) && testFalsey(val[1]))\n\n// Utils\n\nfunction testFalsey(val: any) {\n return val === undefined || val === null || val === ''\n}\n"],"names":["filterTypes","includesString","includesStringSensitive","equalsString","equalsStringSensitive","arrIncludes","arrIncludesAll","equals","weakEquals","betweenNumberRange","rows","columnIds","filterValue","search","String","toLowerCase","filter","row","some","id","values","includes","autoRemove","val","testFalsey","rowValue","undefined","length","every","unsafeMin","unsafeMax","parsedMin","parseFloat","parsedMax","min","Number","isNaN","Infinity","max","temp"],"mappings":"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"}
@@ -26,12 +26,14 @@ var RowSelection = require('./features/RowSelection.js');
26
26
  var Sorting = require('./features/Sorting.js');
27
27
  var Visibility = require('./features/Visibility.js');
28
28
  var utils = require('./utils.js');
29
- var columnFilterRowsFn = require('./utils/columnFilterRowsFn.js');
30
- var globalFilterRowsFn = require('./utils/globalFilterRowsFn.js');
31
- var sortRowsFn = require('./utils/sortRowsFn.js');
32
- var groupRowsFn = require('./utils/groupRowsFn.js');
33
- var expandRowsFn = require('./utils/expandRowsFn.js');
34
- var paginateRowsFn = require('./utils/paginateRowsFn.js');
29
+ var getCoreRowModelSync = require('./utils/getCoreRowModelSync.js');
30
+ var getCoreRowModelAsync = require('./utils/getCoreRowModelAsync.js');
31
+ var getColumnFilteredRowModelSync = require('./utils/getColumnFilteredRowModelSync.js');
32
+ var getGlobalFilteredRowModelSync = require('./utils/getGlobalFilteredRowModelSync.js');
33
+ var getSortedRowModelSync = require('./utils/getSortedRowModelSync.js');
34
+ var getGroupedRowModel = require('./utils/getGroupedRowModel.js');
35
+ var getExpandedRowModel = require('./utils/getExpandedRowModel.js');
36
+ var getPaginationRowModel = require('./utils/getPaginationRowModel.js');
35
37
 
36
38
 
37
39
 
@@ -56,15 +58,20 @@ exports.Sorting = Sorting.Sorting;
56
58
  exports.Visibility = Visibility.Visibility;
57
59
  exports.flattenBy = utils.flattenBy;
58
60
  exports.functionalUpdate = utils.functionalUpdate;
61
+ exports.getBatchGroups = utils.getBatchGroups;
62
+ exports.incrementalMemo = utils.incrementalMemo;
59
63
  exports.isFunction = utils.isFunction;
60
64
  exports.makeStateUpdater = utils.makeStateUpdater;
61
65
  exports.memo = utils.memo;
62
66
  exports.noop = utils.noop;
63
67
  exports.propGetter = utils.propGetter;
64
- exports.columnFilterRowsFn = columnFilterRowsFn.columnFilterRowsFn;
65
- exports.globalFilterRowsFn = globalFilterRowsFn.globalFilterRowsFn;
66
- exports.sortRowsFn = sortRowsFn.sortRowsFn;
67
- exports.groupRowsFn = groupRowsFn.groupRowsFn;
68
- exports.expandRowsFn = expandRowsFn.expandRowsFn;
69
- exports.paginateRowsFn = paginateRowsFn.paginateRowsFn;
68
+ exports.getCoreRowModelSync = getCoreRowModelSync.getCoreRowModelSync;
69
+ exports.getCoreRowModelAsync = getCoreRowModelAsync.getCoreRowModelAsync;
70
+ exports.getColumnFilteredRowModelSync = getColumnFilteredRowModelSync.getColumnFilteredRowModelSync;
71
+ exports.getGlobalFilteredRowModelSync = getGlobalFilteredRowModelSync.getGlobalFilteredRowModelSync;
72
+ exports.getSortedRowModelSync = getSortedRowModelSync.getSortedRowModelSync;
73
+ exports.getGroupedRowModelSync = getGroupedRowModel.getGroupedRowModelSync;
74
+ exports.expandRows = getExpandedRowModel.expandRows;
75
+ exports.getExpandedRowModel = getExpandedRowModel.getExpandedRowModel;
76
+ exports.getPaginationRowModel = getPaginationRowModel.getPaginationRowModel;
70
77
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"sortTypes.js","sources":["../../src/sortTypes.ts"],"sourcesContent":["import { PartialGenerics, AnyGenerics, Row } from './types'\n\nexport const reSplitAlphaNumeric = /([0-9]+)/gm\n\nexport const sortTypes = {\n alphanumeric,\n alphanumericCaseSensitive,\n text,\n textCaseSensitive,\n datetime,\n basic,\n}\n\nexport type BuiltInSortType = keyof typeof sortTypes\n\nfunction alphanumeric<TGenerics extends AnyGenerics>(\n rowA: Row<TGenerics>,\n rowB: Row<TGenerics>,\n columnId: string\n) {\n return compareAlphanumeric(\n toString(rowA.values[columnId]).toLowerCase(),\n toString(rowB.values[columnId]).toLowerCase()\n )\n}\n\nfunction alphanumericCaseSensitive<TGenerics extends AnyGenerics>(\n rowA: Row<TGenerics>,\n rowB: Row<TGenerics>,\n columnId: string\n) {\n return compareAlphanumeric(\n toString(rowA.values[columnId]),\n toString(rowB.values[columnId])\n )\n}\n\n// Mixed sorting is slow, but very inclusive of many edge cases.\n// It handles numbers, mixed alphanumeric combinations, and even\n// null, undefined, and Infinity\nfunction compareAlphanumeric(aStr: string, bStr: string) {\n // Split on number groups, but keep the delimiter\n // Then remove falsey split values\n const a = aStr.split(reSplitAlphaNumeric).filter(Boolean)\n const b = bStr.split(reSplitAlphaNumeric).filter(Boolean)\n\n // While\n while (a.length && b.length) {\n const aa = a.shift()!\n const bb = b.shift()!\n\n const an = parseInt(aa, 10)\n const bn = parseInt(bb, 10)\n\n const combo = [an, bn].sort()\n\n // Both are string\n if (isNaN(combo[0]!)) {\n if (aa > bb) {\n return 1\n }\n if (bb > aa) {\n return -1\n }\n continue\n }\n\n // One is a string, one is a number\n if (isNaN(combo[1]!)) {\n return isNaN(an) ? -1 : 1\n }\n\n // Both are numbers\n if (an > bn) {\n return 1\n }\n if (bn > an) {\n return -1\n }\n }\n\n return a.length - b.length\n}\n\n// The text filter is more basic (less numeric support)\n// but is much faster\nfunction text<TGenerics extends AnyGenerics>(\n rowA: Row<TGenerics>,\n rowB: Row<TGenerics>,\n columnId: string\n) {\n return compareBasic(\n toString(rowA.values[columnId]).toLowerCase(),\n toString(rowB.values[columnId]).toLowerCase()\n )\n}\n\n// The text filter is more basic (less numeric support)\n// but is much faster\nfunction textCaseSensitive<TGenerics extends AnyGenerics>(\n rowA: Row<TGenerics>,\n rowB: Row<TGenerics>,\n columnId: string\n) {\n return compareBasic(\n toString(rowA.values[columnId]),\n toString(rowB.values[columnId])\n )\n}\n\nfunction datetime<TGenerics extends AnyGenerics>(\n rowA: Row<TGenerics>,\n rowB: Row<TGenerics>,\n columnId: string\n) {\n return compareBasic(\n (rowA.values[columnId] as Date).getTime(),\n (rowB.values[columnId] as Date).getTime()\n )\n}\n\nfunction basic<TGenerics extends AnyGenerics>(\n rowA: Row<TGenerics>,\n rowB: Row<TGenerics>,\n columnId: string\n) {\n return compareBasic(rowA.values[columnId], rowB.values[columnId])\n}\n\n// Utils\n\nfunction compareBasic(a: any, b: any) {\n return a === b ? 0 : a > b ? 1 : -1\n}\n\nfunction toString(a: any) {\n if (typeof a === 'number') {\n if (isNaN(a) || a === Infinity || a === -Infinity) {\n return ''\n }\n return String(a)\n }\n if (typeof a === 'string') {\n return a\n }\n return ''\n}\n"],"names":["reSplitAlphaNumeric","sortTypes","alphanumeric","alphanumericCaseSensitive","text","textCaseSensitive","datetime","basic","rowA","rowB","columnId","compareAlphanumeric","toString","values","toLowerCase","aStr","bStr","a","split","filter","Boolean","b","length","aa","shift","bb","an","parseInt","bn","combo","sort","isNaN","compareBasic","getTime","Infinity","String"],"mappings":"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"}
1
+ {"version":3,"file":"sortTypes.js","sources":["../../src/sortTypes.ts"],"sourcesContent":["import { PartialGenerics, AnyGenerics, Row } from './types'\n\nexport const reSplitAlphaNumeric = /([0-9]+)/gm\n\nexport const sortTypes = {\n alphanumeric,\n alphanumericCaseSensitive,\n text,\n textCaseSensitive,\n datetime,\n basic,\n}\n\nexport type BuiltInSortType = keyof typeof sortTypes\n\nfunction alphanumeric<TGenerics extends AnyGenerics>(\n rowA: Row<TGenerics>,\n rowB: Row<TGenerics>,\n columnId: string\n) {\n return compareAlphanumeric(\n toString(rowA.values[columnId]).toLowerCase(),\n toString(rowB.values[columnId]).toLowerCase()\n )\n}\n\nfunction alphanumericCaseSensitive<TGenerics extends AnyGenerics>(\n rowA: Row<TGenerics>,\n rowB: Row<TGenerics>,\n columnId: string\n) {\n return compareAlphanumeric(\n toString(rowA.values[columnId]),\n toString(rowB.values[columnId])\n )\n}\n\n// Mixed sorting is slow, but very inclusive of many edge cases.\n// It handles numbers, mixed alphanumeric combinations, and even\n// null, undefined, and Infinity\nfunction compareAlphanumeric(aStr: string, bStr: string) {\n // Split on number groups, but keep the delimiter\n // Then remove falsey split values\n const a = aStr.split(reSplitAlphaNumeric).filter(Boolean)\n const b = bStr.split(reSplitAlphaNumeric).filter(Boolean)\n\n // While\n while (a.length && b.length) {\n const aa = a.shift()!\n const bb = b.shift()!\n\n const an = parseInt(aa, 10)\n const bn = parseInt(bb, 10)\n\n const combo = [an, bn].sort()\n\n // Both are string\n if (isNaN(combo[0]!)) {\n if (aa > bb) {\n return 1\n }\n if (bb > aa) {\n return -1\n }\n continue\n }\n\n // One is a string, one is a number\n if (isNaN(combo[1]!)) {\n return isNaN(an) ? -1 : 1\n }\n\n // Both are numbers\n if (an > bn) {\n return 1\n }\n if (bn > an) {\n return -1\n }\n }\n\n return a.length - b.length\n}\n\n// The text filter is more basic (less numeric support)\n// but is much faster\nfunction text<TGenerics extends AnyGenerics>(\n rowA: Row<TGenerics>,\n rowB: Row<TGenerics>,\n columnId: string\n) {\n return compareBasic(\n toString(rowA.values[columnId]).toLowerCase(),\n toString(rowB.values[columnId]).toLowerCase()\n )\n}\n\n// The text filter is more basic (less numeric support)\n// but is much faster\nfunction textCaseSensitive<TGenerics extends AnyGenerics>(\n rowA: Row<TGenerics>,\n rowB: Row<TGenerics>,\n columnId: string\n) {\n return compareBasic(\n toString(rowA.values[columnId]),\n toString(rowB.values[columnId])\n )\n}\n\nfunction datetime<TGenerics extends AnyGenerics>(\n rowA: Row<TGenerics>,\n rowB: Row<TGenerics>,\n columnId: string\n) {\n return compareBasic(\n (rowA.values[columnId] as Date).getTime(),\n (rowB.values[columnId] as Date).getTime()\n )\n}\n\nfunction basic<TGenerics extends AnyGenerics>(\n rowA: Row<TGenerics>,\n rowB: Row<TGenerics>,\n columnId: string\n) {\n return compareBasic(rowA.values[columnId], rowB.values[columnId])\n}\n\n// Utils\n\nfunction compareBasic(a: any, b: any) {\n return a === b ? 0 : a > b ? 1 : -1\n}\n\nfunction toString(a: any) {\n if (typeof a === 'number') {\n if (isNaN(a) || a === Infinity || a === -Infinity) {\n return ''\n }\n return String(a)\n }\n if (typeof a === 'string') {\n return a\n }\n return ''\n}\n"],"names":["reSplitAlphaNumeric","sortTypes","alphanumeric","alphanumericCaseSensitive","text","textCaseSensitive","datetime","basic","rowA","rowB","columnId","compareAlphanumeric","toString","values","toLowerCase","aStr","bStr","a","split","filter","Boolean","b","length","aa","shift","bb","an","parseInt","bn","combo","sort","isNaN","compareBasic","getTime","Infinity","String"],"mappings":"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"}