@tanstack/table-core 8.0.0-alpha.9 → 8.0.0-beta.2
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.
- package/build/cjs/aggregationFns.js +120 -0
- package/build/cjs/aggregationFns.js.map +1 -0
- package/build/cjs/core/cell.js +40 -0
- package/build/cjs/core/cell.js.map +1 -0
- package/build/cjs/core/column.js +88 -0
- package/build/cjs/core/column.js.map +1 -0
- package/build/cjs/core/headers.js +403 -0
- package/build/cjs/core/headers.js.map +1 -0
- package/build/cjs/core/instance.js +255 -0
- package/build/cjs/core/instance.js.map +1 -0
- package/build/cjs/core/row.js +77 -0
- package/build/cjs/core/row.js.map +1 -0
- package/build/cjs/createTable.js +36 -29
- package/build/cjs/createTable.js.map +1 -1
- package/build/cjs/features/ColumnSizing.js +157 -189
- package/build/cjs/features/ColumnSizing.js.map +1 -1
- package/build/cjs/features/Expanding.js +103 -155
- package/build/cjs/features/Expanding.js.map +1 -1
- package/build/cjs/features/Filters.js +155 -304
- package/build/cjs/features/Filters.js.map +1 -1
- package/build/cjs/features/Grouping.js +97 -157
- package/build/cjs/features/Grouping.js.map +1 -1
- package/build/cjs/features/Ordering.js +30 -41
- package/build/cjs/features/Ordering.js.map +1 -1
- package/build/cjs/features/Pagination.js +102 -105
- package/build/cjs/features/Pagination.js.map +1 -1
- package/build/cjs/features/Pinning.js +131 -89
- package/build/cjs/features/Pinning.js.map +1 -1
- package/build/cjs/features/RowSelection.js +138 -267
- package/build/cjs/features/RowSelection.js.map +1 -1
- package/build/cjs/features/Sorting.js +82 -167
- package/build/cjs/features/Sorting.js.map +1 -1
- package/build/cjs/features/Visibility.js +69 -115
- package/build/cjs/features/Visibility.js.map +1 -1
- package/build/cjs/filterFns.js +107 -0
- package/build/cjs/filterFns.js.map +1 -0
- package/build/cjs/index.js +36 -23
- package/build/cjs/index.js.map +1 -1
- package/build/cjs/sortingFns.js +124 -0
- package/build/cjs/sortingFns.js.map +1 -0
- package/build/cjs/utils/filterRowsUtils.js +117 -0
- package/build/cjs/utils/filterRowsUtils.js.map +1 -0
- package/build/cjs/utils/getCoreRowModel.js +79 -0
- package/build/cjs/utils/getCoreRowModel.js.map +1 -0
- package/build/cjs/utils/getExpandedRowModel.js +57 -0
- package/build/cjs/utils/getExpandedRowModel.js.map +1 -0
- package/build/cjs/utils/getFacetedMinMaxValues.js +54 -0
- package/build/cjs/utils/getFacetedMinMaxValues.js.map +1 -0
- package/build/cjs/utils/getFacetedRowModel.js +50 -0
- package/build/cjs/utils/getFacetedRowModel.js.map +1 -0
- package/build/cjs/utils/getFacetedUniqueValues.js +48 -0
- package/build/cjs/utils/getFacetedUniqueValues.js.map +1 -0
- package/build/cjs/utils/getFilteredRowModel.js +139 -0
- package/build/cjs/utils/getFilteredRowModel.js.map +1 -0
- package/build/cjs/utils/getGroupedRowModel.js +161 -0
- package/build/cjs/utils/getGroupedRowModel.js.map +1 -0
- package/build/cjs/utils/getPaginationRowModel.js +61 -0
- package/build/cjs/utils/getPaginationRowModel.js.map +1 -0
- package/build/cjs/utils/getSortedRowModel.js +110 -0
- package/build/cjs/utils/getSortedRowModel.js.map +1 -0
- package/build/cjs/utils.js +38 -107
- package/build/cjs/utils.js.map +1 -1
- package/build/esm/index.js +2976 -3853
- package/build/esm/index.js.map +1 -1
- package/build/stats-html.html +1 -1
- package/build/stats-react.json +586 -408
- package/build/types/aggregationFns.d.ts +13 -0
- package/build/types/core/cell.d.ts +9 -0
- package/build/types/core/column.d.ts +40 -0
- package/build/types/core/headers.d.ts +46 -0
- package/build/types/core/instance.d.ts +57 -0
- package/build/types/core/row.d.ts +15 -0
- package/build/types/createTable.d.ts +47 -26
- package/build/types/features/ColumnSizing.d.ts +32 -44
- package/build/types/features/Expanding.d.ts +15 -26
- package/build/types/features/Filters.d.ts +64 -63
- package/build/types/features/Grouping.d.ts +32 -46
- package/build/types/features/Ordering.d.ts +7 -10
- package/build/types/features/Pagination.d.ts +16 -15
- package/build/types/features/Pinning.d.ts +16 -17
- package/build/types/features/RowSelection.d.ts +13 -33
- package/build/types/features/Sorting.d.ts +25 -44
- package/build/types/features/Visibility.d.ts +16 -25
- package/build/types/filterFns.d.ts +13 -0
- package/build/types/index.d.ts +16 -10
- package/build/types/sortingFns.d.ts +11 -0
- package/build/types/types.d.ts +37 -122
- package/build/types/utils/filterRowsUtils.d.ts +4 -0
- package/build/types/utils/getCoreRowModel.d.ts +2 -0
- package/build/types/utils/getExpandedRowModel.d.ts +7 -0
- package/build/types/utils/getFacetedMinMaxValues.d.ts +2 -0
- package/build/types/utils/getFacetedRowModel.d.ts +2 -0
- package/build/types/utils/getFacetedUniqueValues.d.ts +2 -0
- package/build/types/utils/getFilteredRowModel.d.ts +2 -0
- package/build/types/utils/getGroupedRowModel.d.ts +2 -0
- package/build/types/utils/getPaginationRowModel.d.ts +4 -0
- package/build/types/utils/getSortedRowModel.d.ts +2 -0
- package/build/types/utils.d.ts +7 -11
- package/build/umd/index.development.js +3024 -3893
- package/build/umd/index.development.js.map +1 -1
- package/build/umd/index.production.js +1 -1
- package/build/umd/index.production.js.map +1 -1
- package/package.json +9 -10
- package/src/aggregationFns.ts +123 -0
- package/src/core/cell.ts +48 -0
- package/src/core/column.ts +147 -0
- package/src/core/headers.ts +575 -0
- package/src/core/instance.ts +359 -0
- package/src/core/row.ts +85 -0
- package/src/createTable.ts +188 -0
- package/src/features/ColumnSizing.ts +170 -185
- package/src/features/Expanding.ts +120 -194
- package/src/features/Filters.ts +299 -381
- package/src/features/Grouping.ts +158 -220
- package/src/features/Ordering.ts +24 -25
- package/src/features/Pagination.ts +88 -73
- package/src/features/Pinning.ts +186 -63
- package/src/features/RowSelection.ts +107 -245
- package/src/features/Sorting.ts +125 -225
- package/src/features/Visibility.ts +116 -132
- package/src/filterFns.ts +135 -0
- package/src/index.ts +29 -0
- package/src/{sortTypes.ts → sortingFns.ts} +63 -85
- package/src/types.ts +62 -168
- package/src/utils/filterRowsUtils.ts +112 -0
- package/src/utils/getCoreRowModel.ts +84 -0
- package/src/utils/getExpandedRowModel.ts +54 -0
- package/src/utils/getFacetedMinMaxValues.ts +40 -0
- package/src/utils/getFacetedRowModel.ts +50 -0
- package/src/utils/getFacetedUniqueValues.ts +37 -0
- package/src/utils/getFilteredRowModel.ts +159 -0
- package/src/utils/getGroupedRowModel.ts +175 -0
- package/src/utils/getPaginationRowModel.ts +48 -0
- package/src/utils/getSortedRowModel.ts +116 -0
- package/src/utils.ts +126 -0
- package/build/cjs/_virtual/_rollupPluginBabelHelpers.js +0 -112
- package/build/cjs/_virtual/_rollupPluginBabelHelpers.js.map +0 -1
- package/build/cjs/aggregationTypes.js +0 -130
- package/build/cjs/aggregationTypes.js.map +0 -1
- package/build/cjs/core.js +0 -545
- package/build/cjs/core.js.map +0 -1
- package/build/cjs/features/Headers.js +0 -630
- package/build/cjs/features/Headers.js.map +0 -1
- package/build/cjs/filterTypes.js +0 -172
- package/build/cjs/filterTypes.js.map +0 -1
- package/build/cjs/sortTypes.js +0 -122
- package/build/cjs/sortTypes.js.map +0 -1
- package/build/cjs/types.js +0 -22
- package/build/cjs/types.js.map +0 -1
- package/build/cjs/utils/columnFilterRowsFn.js +0 -131
- package/build/cjs/utils/columnFilterRowsFn.js.map +0 -1
- package/build/cjs/utils/expandRowsFn.js +0 -38
- package/build/cjs/utils/expandRowsFn.js.map +0 -1
- package/build/cjs/utils/globalFilterRowsFn.js +0 -101
- package/build/cjs/utils/globalFilterRowsFn.js.map +0 -1
- package/build/cjs/utils/groupRowsFn.js +0 -155
- package/build/cjs/utils/groupRowsFn.js.map +0 -1
- package/build/cjs/utils/paginateRowsFn.js +0 -44
- package/build/cjs/utils/paginateRowsFn.js.map +0 -1
- package/build/cjs/utils/sortRowsFn.js +0 -94
- package/build/cjs/utils/sortRowsFn.js.map +0 -1
- package/build/types/aggregationTypes.d.ts +0 -22
- package/build/types/core.d.ts +0 -105
- package/build/types/features/Headers.d.ts +0 -43
- package/build/types/filterTypes.d.ts +0 -50
- package/build/types/sortTypes.d.ts +0 -18
- package/build/types/utils/columnFilterRowsFn.d.ts +0 -2
- package/build/types/utils/expandRowsFn.d.ts +0 -2
- package/build/types/utils/globalFilterRowsFn.d.ts +0 -2
- package/build/types/utils/groupRowsFn.d.ts +0 -2
- package/build/types/utils/paginateRowsFn.d.ts +0 -2
- package/build/types/utils/sortRowsFn.d.ts +0 -2
- package/src/.DS_Store +0 -0
- package/src/aggregationTypes.ts +0 -115
- package/src/core.tsx +0 -763
- package/src/createTable.tsx +0 -137
- package/src/features/Headers.ts +0 -747
- package/src/filterTypes.ts +0 -188
- package/src/index.tsx +0 -23
- package/src/utils/columnFilterRowsFn.ts +0 -113
- package/src/utils/expandRowsFn.ts +0 -30
- package/src/utils/globalFilterRowsFn.ts +0 -89
- package/src/utils/groupRowsFn.ts +0 -170
- package/src/utils/paginateRowsFn.ts +0 -28
- package/src/utils/sortRowsFn.ts +0 -95
- package/src/utils.tsx +0 -221
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RowSelection.js","sources":["../../../src/features/RowSelection.ts"],"sourcesContent":["import React, { MouseEvent, TouchEvent } from 'react'\nimport {\n Getter,\n OnChangeFn,\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 PartialGenerics> = {\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 PartialGenerics> = {\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 PartialGenerics>(\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 PartialGenerics>(\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 // Only remove/add the rows that are visible on the screen\n // Leave all the other rows that are selected alone.\n const rowSelection = Object.assign({}, 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 PartialGenerics>(\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 PartialGenerics>(\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 PartialGenerics>(\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 PartialGenerics>(\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","Object","assign","preGroupedFlatRows","getPreGroupedRowModel","flatRows","forEach","row","id","toggleAllPageRowsSelected","getIsAllPageRowsSelected","getRowModel","rows","mutateRowIsSelected","toggleRowSelected","rowId","getRow","isSelected","getIsSelected","selectedRowIds","getPreSelectedRowModel","getCoreRowModel","getSelectedRowModel","memo","rowModel","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 { TableFeature } from '../core/instance'\nimport {\n OnChangeFn,\n TableGenerics,\n TableInstance,\n Row,\n RowModel,\n Updater,\n} from '../types'\nimport { makeStateUpdater, memo } from '../utils'\n\nexport type RowSelectionState = Record<string, boolean>\n\nexport type RowSelectionTableState = {\n rowSelection: RowSelectionState\n}\n\nexport type RowSelectionOptions<TGenerics extends TableGenerics> = {\n enableRowSelection?: boolean | ((row: Row<TGenerics>) => boolean)\n enableMultiRowSelection?: boolean | ((row: Row<TGenerics>) => boolean)\n enableSubRowSelection?: boolean | ((row: Row<TGenerics>) => boolean)\n onRowSelectionChange?: OnChangeFn<RowSelectionState>\n // enableGroupingRowSelection?:\n // | boolean\n // | ((\n // row: Row<TGenerics>\n // ) => boolean)\n // isAdditiveSelectEvent?: (e: unknown) => boolean\n // isInclusiveSelectEvent?: (e: unknown) => boolean\n // selectRowsFn?: (\n // instance: TableInstance<\n // TData,\n // TValue,\n // TFilterFns,\n // TSortingFns,\n // TAggregationFns\n // >,\n // rowModel: RowModel<TGenerics>\n // ) => RowModel<TGenerics>\n}\n\nexport type RowSelectionRow = {\n getIsSelected: () => boolean\n getIsSomeSelected: () => boolean\n getCanSelect: () => boolean\n getCanMultiSelect: () => boolean\n getCanSelectSubRows: () => boolean\n toggleSelected: (value?: boolean) => void\n getToggleSelectedHandler: () => (event: unknown) => void\n}\n\nexport type RowSelectionInstance<TGenerics extends TableGenerics> = {\n getToggleAllRowsSelectedHandler: () => (event: unknown) => void\n getToggleAllPageRowsSelectedHandler: () => (event: unknown) => void\n setRowSelection: (updater: Updater<RowSelectionState>) => void\n resetRowSelection: (defaultState?: boolean) => void\n getIsAllRowsSelected: () => boolean\n getIsAllPageRowsSelected: () => boolean\n getIsSomeRowsSelected: () => boolean\n getIsSomePageRowsSelected: () => boolean\n toggleAllRowsSelected: (value: boolean) => void\n toggleAllPageRowsSelected: (value: boolean) => void\n getPreSelectedRowModel: () => RowModel<TGenerics>\n getSelectedRowModel: () => RowModel<TGenerics>\n getFilteredSelectedRowModel: () => RowModel<TGenerics>\n getGroupedSelectedRowModel: () => RowModel<TGenerics>\n}\n\n//\n\nexport const RowSelection: TableFeature = {\n getInitialState: (state): RowSelectionTableState => {\n return {\n rowSelection: {},\n ...state,\n }\n },\n\n getDefaultOptions: <TGenerics extends TableGenerics>(\n instance: TableInstance<TGenerics>\n ): RowSelectionOptions<TGenerics> => {\n return {\n onRowSelectionChange: makeStateUpdater('rowSelection', instance),\n enableRowSelection: true,\n enableMultiRowSelection: true,\n enableSubRowSelection: true,\n // enableGroupingRowSelection: false,\n // isAdditiveSelectEvent: (e: unknown) => !!e.metaKey,\n // isInclusiveSelectEvent: (e: unknown) => !!e.shiftKey,\n }\n },\n\n createInstance: <TGenerics extends TableGenerics>(\n instance: TableInstance<TGenerics>\n ): RowSelectionInstance<TGenerics> => {\n return {\n setRowSelection: updater =>\n instance.options.onRowSelectionChange?.(updater),\n resetRowSelection: defaultState =>\n instance.setRowSelection(\n defaultState ? {} : instance.initialState.rowSelection ?? {}\n ),\n toggleAllRowsSelected: value => {\n instance.setRowSelection(old => {\n value =\n typeof value !== 'undefined'\n ? value\n : !instance.getIsAllRowsSelected()\n\n const rowSelection = { ...old }\n\n const preGroupedFlatRows = instance.getPreGroupedRowModel().flatRows\n\n // We don't use `mutateRowIsSelected` here for performance reasons.\n // All of the rows are flat already, so it wouldn't be worth it\n if (value) {\n preGroupedFlatRows.forEach(row => {\n rowSelection[row.id] = true\n })\n } else {\n preGroupedFlatRows.forEach(row => {\n delete rowSelection[row.id]\n })\n }\n\n return rowSelection\n })\n },\n toggleAllPageRowsSelected: value =>\n instance.setRowSelection(old => {\n const selectAll =\n typeof value !== 'undefined'\n ? value\n : !instance.getIsAllPageRowsSelected()\n\n const rowSelection: RowSelectionState = { ...old }\n\n instance.getRowModel().rows.forEach(row => {\n mutateRowIsSelected(rowSelection, row.id, value, instance)\n })\n\n return rowSelection\n }),\n\n // addRowSelectionRange: rowId => {\n // const {\n // rows,\n // rowsById,\n // options: { selectGroupingRows, selectSubRows },\n // } = instance\n\n // const findSelectedRow = (rows: Row[]) => {\n // let found\n // rows.find(d => {\n // if (d.getIsSelected()) {\n // found = d\n // return true\n // }\n // const subFound = findSelectedRow(d.subRows || [])\n // if (subFound) {\n // found = subFound\n // return true\n // }\n // return false\n // })\n // return found\n // }\n\n // const firstRow = findSelectedRow(rows) || rows[0]\n // const lastRow = rowsById[rowId]\n\n // let include = false\n // const selectedRowIds = {}\n\n // const addRow = (row: Row) => {\n // mutateRowIsSelected(selectedRowIds, row.id, true, {\n // rowsById,\n // selectGroupingRows: selectGroupingRows!,\n // selectSubRows: selectSubRows!,\n // })\n // }\n\n // instance.rows.forEach(row => {\n // const isFirstRow = row.id === firstRow.id\n // const isLastRow = row.id === lastRow.id\n\n // if (isFirstRow || isLastRow) {\n // if (!include) {\n // include = true\n // } else if (include) {\n // addRow(row)\n // include = false\n // }\n // }\n\n // if (include) {\n // addRow(row)\n // }\n // })\n\n // instance.setRowSelection(selectedRowIds)\n // },\n getPreSelectedRowModel: () => instance.getCoreRowModel(),\n getSelectedRowModel: memo(\n () => [instance.getState().rowSelection, instance.getCoreRowModel()],\n (rowSelection, rowModel) => {\n if (!Object.keys(rowSelection).length) {\n return {\n rows: [],\n flatRows: [],\n rowsById: {},\n }\n }\n\n return selectRowsFn(instance, rowModel)\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getSelectedRowModel',\n debug: () => instance.options.debugAll ?? instance.options.debugTable,\n }\n ),\n\n getFilteredSelectedRowModel: memo(\n () => [\n instance.getState().rowSelection,\n instance.getFilteredRowModel(),\n ],\n (rowSelection, rowModel) => {\n if (!Object.keys(rowSelection).length) {\n return {\n rows: [],\n flatRows: [],\n rowsById: {},\n }\n }\n\n return selectRowsFn(instance, rowModel)\n },\n {\n key:\n process.env.NODE_ENV === 'production' &&\n 'getFilteredSelectedRowModel',\n debug: () => instance.options.debugAll ?? instance.options.debugTable,\n }\n ),\n\n getGroupedSelectedRowModel: memo(\n () => [instance.getState().rowSelection, instance.getGroupedRowModel()],\n (rowSelection, rowModel) => {\n if (!Object.keys(rowSelection).length) {\n return {\n rows: [],\n flatRows: [],\n rowsById: {},\n }\n }\n\n return selectRowsFn(instance, rowModel)\n },\n {\n key:\n process.env.NODE_ENV === 'production' &&\n 'getGroupedSelectedRowModel',\n debug: () => instance.options.debugAll ?? instance.options.debugTable,\n }\n ),\n\n ///\n\n // getGroupingRowCanSelect: rowId => {\n // const row = instance.getRow(rowId)\n\n // if (!row) {\n // throw new Error()\n // }\n\n // if (typeof instance.options.enableGroupingRowSelection === 'function') {\n // return instance.options.enableGroupingRowSelection(row)\n // }\n\n // return instance.options.enableGroupingRowSelection ?? false\n // },\n\n getIsAllRowsSelected: () => {\n const preFilteredFlatRows = instance.getPreFilteredRowModel().flatRows\n const { rowSelection } = instance.getState()\n\n let isAllRowsSelected = Boolean(\n preFilteredFlatRows.length && Object.keys(rowSelection).length\n )\n\n if (isAllRowsSelected) {\n if (preFilteredFlatRows.some(row => !rowSelection[row.id])) {\n isAllRowsSelected = false\n }\n }\n\n return isAllRowsSelected\n },\n\n getIsAllPageRowsSelected: () => {\n const paginationFlatRows = instance.getPaginationRowModel().flatRows\n const { rowSelection } = instance.getState()\n\n let isAllPageRowsSelected = !!paginationFlatRows.length\n\n if (\n isAllPageRowsSelected &&\n paginationFlatRows.some(row => !rowSelection[row.id])\n ) {\n isAllPageRowsSelected = false\n }\n\n return isAllPageRowsSelected\n },\n\n getIsSomeRowsSelected: () => {\n return (\n !instance.getIsAllRowsSelected() &&\n !!Object.keys(instance.getState().rowSelection ?? {}).length\n )\n },\n\n getIsSomePageRowsSelected: () => {\n const paginationFlatRows = instance.getPaginationRowModel().flatRows\n return instance.getIsAllPageRowsSelected()\n ? false\n : !!paginationFlatRows?.length\n },\n\n getToggleAllRowsSelectedHandler: () => {\n return (e: unknown) => {\n instance.toggleAllRowsSelected(\n ((e as MouseEvent).target as HTMLInputElement).checked\n )\n }\n },\n\n getToggleAllPageRowsSelectedHandler: () => {\n return (e: unknown) => {\n instance.toggleAllPageRowsSelected(\n ((e as MouseEvent).target as HTMLInputElement).checked\n )\n }\n },\n }\n },\n\n createRow: <TGenerics extends TableGenerics>(\n row: Row<TGenerics>,\n instance: TableInstance<TGenerics>\n ): RowSelectionRow => {\n return {\n toggleSelected: value => {\n const isSelected = row.getIsSelected()\n\n instance.setRowSelection(old => {\n value = typeof value !== 'undefined' ? value : !isSelected\n\n if (isSelected === value) {\n return old\n }\n\n const selectedRowIds = { ...old }\n\n mutateRowIsSelected(selectedRowIds, row.id, value, instance)\n\n return selectedRowIds\n })\n },\n getIsSelected: () => {\n const { rowSelection } = instance.getState()\n return isRowSelected(row, rowSelection, instance) === true\n },\n\n getIsSomeSelected: () => {\n const { rowSelection } = instance.getState()\n return isRowSelected(row, rowSelection, instance) === 'some'\n },\n\n getCanSelect: () => {\n if (typeof instance.options.enableRowSelection === 'function') {\n return instance.options.enableRowSelection(row)\n }\n\n return instance.options.enableRowSelection ?? true\n },\n\n getCanSelectSubRows: () => {\n if (typeof instance.options.enableSubRowSelection === 'function') {\n return instance.options.enableSubRowSelection(row)\n }\n\n return instance.options.enableSubRowSelection ?? true\n },\n\n getCanMultiSelect: () => {\n if (typeof instance.options.enableMultiRowSelection === 'function') {\n return instance.options.enableMultiRowSelection(row)\n }\n\n return instance.options.enableMultiRowSelection ?? true\n },\n getToggleSelectedHandler: () => {\n const canSelect = row.getCanSelect()\n\n return (e: unknown) => {\n if (!canSelect) return\n row.toggleSelected(\n ((e as MouseEvent).target as HTMLInputElement)?.checked\n )\n }\n },\n }\n },\n}\n\nconst mutateRowIsSelected = <TGenerics extends TableGenerics>(\n selectedRowIds: Record<string, boolean>,\n id: string,\n value: boolean,\n instance: TableInstance<TGenerics>\n) => {\n const row = instance.getRow(id)\n\n const isGrouped = row.getIsGrouped()\n\n // if ( // TODO: enforce grouping row selection rules\n // !isGrouped ||\n // (isGrouped && instance.options.enableGroupingRowSelection)\n // ) {\n if (value) {\n selectedRowIds[id] = true\n } else {\n delete selectedRowIds[id]\n }\n // }\n\n if (row.subRows?.length && row.getCanSelectSubRows()) {\n row.subRows.forEach(row =>\n mutateRowIsSelected(selectedRowIds, row.id, value, instance)\n )\n }\n}\n\nexport function selectRowsFn<TGenerics extends TableGenerics>(\n instance: TableInstance<TGenerics>,\n rowModel: RowModel<TGenerics>\n): RowModel<TGenerics> {\n const rowSelection = instance.getState().rowSelection\n\n const newSelectedFlatRows: Row<TGenerics>[] = []\n const newSelectedRowsById: Record<string, Row<TGenerics>> = {}\n\n // Filters top level and nested rows\n const recurseRows = (rows: Row<TGenerics>[], depth = 0): Row<TGenerics>[] => {\n return rows\n .map(row => {\n const isSelected = isRowSelected(row, rowSelection, instance) === true\n\n if (isSelected) {\n newSelectedFlatRows.push(row)\n newSelectedRowsById[row.id] = row\n }\n\n if (row.subRows?.length) {\n row = {\n ...row,\n subRows: recurseRows(row.subRows, depth + 1),\n }\n }\n\n if (isSelected) {\n return row\n }\n })\n .filter(Boolean) as Row<TGenerics>[]\n }\n\n return {\n rows: recurseRows(rowModel.rows),\n flatRows: newSelectedFlatRows,\n rowsById: newSelectedRowsById,\n }\n}\n\nexport function isRowSelected<TGenerics extends TableGenerics>(\n row: Row<TGenerics>,\n selection: Record<string, boolean>,\n instance: TableInstance<TGenerics>\n): boolean | 'some' {\n if (selection[row.id]) {\n return true\n }\n\n if (row.subRows && row.subRows.length) {\n let allChildrenSelected = true\n let someSelected = false\n\n row.subRows.forEach(subRow => {\n // Bail out early if we know both of these\n if (someSelected && !allChildrenSelected) {\n return\n }\n\n if (isRowSelected(subRow, selection, instance)) {\n someSelected = true\n } else {\n allChildrenSelected = false\n }\n })\n\n return allChildrenSelected ? true : someSelected ? 'some' : false\n }\n\n return false\n}\n"],"names":["RowSelection","getInitialState","state","rowSelection","getDefaultOptions","instance","onRowSelectionChange","makeStateUpdater","enableRowSelection","enableMultiRowSelection","enableSubRowSelection","createInstance","setRowSelection","updater","options","resetRowSelection","defaultState","initialState","toggleAllRowsSelected","value","old","getIsAllRowsSelected","preGroupedFlatRows","getPreGroupedRowModel","flatRows","forEach","row","id","toggleAllPageRowsSelected","getIsAllPageRowsSelected","getRowModel","rows","mutateRowIsSelected","getPreSelectedRowModel","getCoreRowModel","getSelectedRowModel","memo","getState","rowModel","Object","keys","length","rowsById","selectRowsFn","key","process","env","NODE_ENV","debug","debugAll","debugTable","getFilteredSelectedRowModel","getFilteredRowModel","getGroupedSelectedRowModel","getGroupedRowModel","preFilteredFlatRows","getPreFilteredRowModel","isAllRowsSelected","Boolean","some","paginationFlatRows","getPaginationRowModel","isAllPageRowsSelected","getIsSomeRowsSelected","getIsSomePageRowsSelected","getToggleAllRowsSelectedHandler","e","target","checked","getToggleAllPageRowsSelectedHandler","createRow","toggleSelected","isSelected","getIsSelected","selectedRowIds","isRowSelected","getIsSomeSelected","getCanSelect","getCanSelectSubRows","getCanMultiSelect","getToggleSelectedHandler","canSelect","getRow","getIsGrouped","subRows","newSelectedFlatRows","newSelectedRowsById","recurseRows","depth","map","push","filter","selection","allChildrenSelected","someSelected","subRow"],"mappings":"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"}
|
|
@@ -12,101 +12,61 @@
|
|
|
12
12
|
|
|
13
13
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
14
14
|
|
|
15
|
-
var
|
|
16
|
-
var sortTypes = require('../sortTypes.js');
|
|
15
|
+
var sortingFns = require('../sortingFns.js');
|
|
17
16
|
var utils = require('../utils.js');
|
|
18
17
|
|
|
19
18
|
//
|
|
20
|
-
|
|
21
|
-
|
|
19
|
+
const Sorting = {
|
|
20
|
+
getInitialState: state => {
|
|
22
21
|
return {
|
|
23
|
-
|
|
22
|
+
sorting: [],
|
|
23
|
+
...state
|
|
24
24
|
};
|
|
25
25
|
},
|
|
26
|
-
|
|
26
|
+
getDefaultColumnDef: () => {
|
|
27
27
|
return {
|
|
28
|
-
|
|
28
|
+
sortingFn: 'auto'
|
|
29
29
|
};
|
|
30
30
|
},
|
|
31
|
-
getDefaultOptions:
|
|
31
|
+
getDefaultOptions: instance => {
|
|
32
32
|
return {
|
|
33
33
|
onSortingChange: utils.makeStateUpdater('sorting', instance),
|
|
34
|
-
|
|
35
|
-
isMultiSortEvent: function isMultiSortEvent(e) {
|
|
34
|
+
isMultiSortEvent: e => {
|
|
36
35
|
return e.shiftKey;
|
|
37
36
|
}
|
|
38
37
|
};
|
|
39
38
|
},
|
|
40
|
-
createColumn:
|
|
39
|
+
createColumn: (column, instance) => {
|
|
41
40
|
return {
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
},
|
|
46
|
-
getCanMultiSort: function getCanMultiSort() {
|
|
47
|
-
return instance.getColumnCanMultiSort(column.id);
|
|
48
|
-
},
|
|
49
|
-
getSortIndex: function getSortIndex() {
|
|
50
|
-
return instance.getColumnSortIndex(column.id);
|
|
51
|
-
},
|
|
52
|
-
getIsSorted: function getIsSorted() {
|
|
53
|
-
return instance.getColumnIsSorted(column.id);
|
|
54
|
-
},
|
|
55
|
-
toggleSorting: function toggleSorting(desc, isMulti) {
|
|
56
|
-
return instance.toggleColumnSorting(column.id, desc, isMulti);
|
|
57
|
-
},
|
|
58
|
-
getToggleSortingProps: function getToggleSortingProps(userProps) {
|
|
59
|
-
return instance.getToggleSortingProps(column.id, userProps);
|
|
60
|
-
}
|
|
61
|
-
};
|
|
62
|
-
},
|
|
63
|
-
getInstance: function getInstance(instance) {
|
|
64
|
-
var registered = false;
|
|
65
|
-
return {
|
|
66
|
-
_notifySortingReset: function _notifySortingReset() {
|
|
67
|
-
if (!registered) {
|
|
68
|
-
registered = true;
|
|
69
|
-
return;
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
if (instance.options.autoResetAll === false) {
|
|
73
|
-
return;
|
|
74
|
-
}
|
|
41
|
+
getAutoSortingFn: () => {
|
|
42
|
+
const firstRows = instance.getFilteredRowModel().flatRows.slice(10);
|
|
43
|
+
let isString = false;
|
|
75
44
|
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
}
|
|
79
|
-
},
|
|
80
|
-
getColumnAutoSortingFn: function getColumnAutoSortingFn(columnId) {
|
|
81
|
-
var firstRows = instance.getGlobalFilteredRowModel().flatRows.slice(100);
|
|
82
|
-
var isString = false;
|
|
83
|
-
|
|
84
|
-
for (var _iterator = _rollupPluginBabelHelpers.createForOfIteratorHelperLoose(firstRows), _step; !(_step = _iterator()).done;) {
|
|
85
|
-
var row = _step.value;
|
|
86
|
-
var value = row == null ? void 0 : row.values[columnId];
|
|
45
|
+
for (const row of firstRows) {
|
|
46
|
+
const value = row == null ? void 0 : row.getValue(column.id);
|
|
87
47
|
|
|
88
48
|
if (Object.prototype.toString.call(value) === '[object Date]') {
|
|
89
|
-
return
|
|
49
|
+
return sortingFns.sortingFns.datetime;
|
|
90
50
|
}
|
|
91
51
|
|
|
92
52
|
if (typeof value === 'string') {
|
|
93
53
|
isString = true;
|
|
94
54
|
|
|
95
|
-
if (value.split(
|
|
96
|
-
return
|
|
55
|
+
if (value.split(sortingFns.reSplitAlphaNumeric).length > 1) {
|
|
56
|
+
return sortingFns.sortingFns.alphanumeric;
|
|
97
57
|
}
|
|
98
58
|
}
|
|
99
59
|
}
|
|
100
60
|
|
|
101
61
|
if (isString) {
|
|
102
|
-
return
|
|
62
|
+
return sortingFns.sortingFns.text;
|
|
103
63
|
}
|
|
104
64
|
|
|
105
|
-
return
|
|
65
|
+
return sortingFns.sortingFns.basic;
|
|
106
66
|
},
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
67
|
+
getAutoSortDir: () => {
|
|
68
|
+
const firstRow = instance.getFilteredRowModel().flatRows[0];
|
|
69
|
+
const value = firstRow == null ? void 0 : firstRow.getValue(column.id);
|
|
110
70
|
|
|
111
71
|
if (typeof value === 'string') {
|
|
112
72
|
return 'asc';
|
|
@@ -114,27 +74,19 @@ var Sorting = {
|
|
|
114
74
|
|
|
115
75
|
return 'desc';
|
|
116
76
|
},
|
|
117
|
-
|
|
77
|
+
getSortingFn: () => {
|
|
118
78
|
var _ref;
|
|
119
79
|
|
|
120
|
-
|
|
121
|
-
var userSortTypes = instance.options.sortTypes;
|
|
80
|
+
const userSortingFn = instance.options.sortingFns;
|
|
122
81
|
|
|
123
82
|
if (!column) {
|
|
124
83
|
throw new Error();
|
|
125
84
|
}
|
|
126
85
|
|
|
127
|
-
return utils.isFunction(column.
|
|
86
|
+
return utils.isFunction(column.columnDef.sortingFn) ? column.columnDef.sortingFn : column.columnDef.sortingFn === 'auto' ? column.getAutoSortingFn() : (_ref = userSortingFn == null ? void 0 : userSortingFn[column.columnDef.sortingFn]) != null ? _ref : sortingFns.sortingFns[column.columnDef.sortingFn];
|
|
128
87
|
},
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
},
|
|
132
|
-
toggleColumnSorting: function toggleColumnSorting(columnId, desc, multi) {
|
|
133
|
-
var column = instance.getColumn(columnId);
|
|
134
|
-
|
|
135
|
-
if (!column) {
|
|
136
|
-
throw new Error();
|
|
137
|
-
} // if (column.columns.length) {
|
|
88
|
+
toggleSorting: (desc, multi) => {
|
|
89
|
+
// if (column.columns.length) {
|
|
138
90
|
// column.columns.forEach((c, i) => {
|
|
139
91
|
// if (c.id) {
|
|
140
92
|
// instance.toggleColumnSorting(c.id, undefined, multi || !!i)
|
|
@@ -142,22 +94,16 @@ var Sorting = {
|
|
|
142
94
|
// })
|
|
143
95
|
// return
|
|
144
96
|
// }
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
instance.setSorting(function (old) {
|
|
148
|
-
var _ref2, _column$sortDescFirst, _instance$options$ena, _instance$options$ena2;
|
|
97
|
+
instance.setSorting(old => {
|
|
98
|
+
var _ref2, _column$columnDef$sor, _instance$options$ena, _instance$options$ena2;
|
|
149
99
|
|
|
150
100
|
// Find any existing sorting for this column
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
return d.id === columnId;
|
|
156
|
-
});
|
|
157
|
-
var hasDescDefined = typeof desc !== 'undefined' && desc !== null;
|
|
158
|
-
var newSorting = []; // What should we do with this sort action?
|
|
101
|
+
const existingSorting = old == null ? void 0 : old.find(d => d.id === column.id);
|
|
102
|
+
const existingIndex = old == null ? void 0 : old.findIndex(d => d.id === column.id);
|
|
103
|
+
const hasDescDefined = typeof desc !== 'undefined' && desc !== null;
|
|
104
|
+
let newSorting = []; // What should we do with this sort action?
|
|
159
105
|
|
|
160
|
-
|
|
106
|
+
let sortAction;
|
|
161
107
|
|
|
162
108
|
if (column.getCanMultiSort() && multi) {
|
|
163
109
|
if (existingSorting) {
|
|
@@ -176,7 +122,7 @@ var Sorting = {
|
|
|
176
122
|
}
|
|
177
123
|
}
|
|
178
124
|
|
|
179
|
-
|
|
125
|
+
const sortDescFirst = (_ref2 = (_column$columnDef$sor = column.columnDef.sortDescFirst) != null ? _column$columnDef$sor : instance.options.sortDescFirst) != null ? _ref2 : column.getAutoSortDir() === 'desc'; // Handle toggle states that will remove the sorting
|
|
180
126
|
|
|
181
127
|
if (sortAction === 'toggle' && ( // Must be toggling
|
|
182
128
|
(_instance$options$ena = instance.options.enableSortingRemoval) != null ? _instance$options$ena : true) && // If enableSortRemove, enable in general
|
|
@@ -189,122 +135,91 @@ var Sorting = {
|
|
|
189
135
|
|
|
190
136
|
if (sortAction === 'replace') {
|
|
191
137
|
newSorting = [{
|
|
192
|
-
id:
|
|
138
|
+
id: column.id,
|
|
193
139
|
desc: hasDescDefined ? desc : !!sortDescFirst
|
|
194
140
|
}];
|
|
195
141
|
} else if (sortAction === 'add' && old != null && old.length) {
|
|
196
142
|
var _instance$options$max;
|
|
197
143
|
|
|
198
|
-
newSorting = [
|
|
199
|
-
id:
|
|
144
|
+
newSorting = [...old, {
|
|
145
|
+
id: column.id,
|
|
200
146
|
desc: hasDescDefined ? desc : !!sortDescFirst
|
|
201
|
-
}]
|
|
147
|
+
}]; // Take latest n columns
|
|
202
148
|
|
|
203
149
|
newSorting.splice(0, newSorting.length - ((_instance$options$max = instance.options.maxMultiSortColCount) != null ? _instance$options$max : Number.MAX_SAFE_INTEGER));
|
|
204
150
|
} else if (sortAction === 'toggle' && old != null && old.length) {
|
|
205
151
|
// This flips (or sets) the
|
|
206
|
-
newSorting = old.map(
|
|
207
|
-
if (d.id ===
|
|
208
|
-
return
|
|
152
|
+
newSorting = old.map(d => {
|
|
153
|
+
if (d.id === column.id) {
|
|
154
|
+
return { ...d,
|
|
209
155
|
desc: hasDescDefined ? desc : !(existingSorting != null && existingSorting.desc)
|
|
210
|
-
}
|
|
156
|
+
};
|
|
211
157
|
}
|
|
212
158
|
|
|
213
159
|
return d;
|
|
214
160
|
});
|
|
215
161
|
} else if (sortAction === 'remove' && old != null && old.length) {
|
|
216
|
-
newSorting = old.filter(
|
|
217
|
-
return d.id !== columnId;
|
|
218
|
-
});
|
|
162
|
+
newSorting = old.filter(d => d.id !== column.id);
|
|
219
163
|
}
|
|
220
164
|
|
|
221
165
|
return newSorting;
|
|
222
166
|
});
|
|
223
167
|
},
|
|
224
|
-
|
|
225
|
-
var
|
|
226
|
-
|
|
227
|
-
var column = instance.getColumn(columnId);
|
|
228
|
-
|
|
229
|
-
if (!column) {
|
|
230
|
-
throw new Error();
|
|
231
|
-
}
|
|
168
|
+
getCanSort: () => {
|
|
169
|
+
var _column$columnDef$ena, _instance$options$ena3;
|
|
232
170
|
|
|
233
|
-
return (
|
|
234
|
-
// column.columns?.some(c => c.id && instance.getColumnCanSort(c.id))) ??
|
|
235
|
-
// false
|
|
236
|
-
;
|
|
171
|
+
return ((_column$columnDef$ena = column.columnDef.enableSorting) != null ? _column$columnDef$ena : true) && ((_instance$options$ena3 = instance.options.enableSorting) != null ? _instance$options$ena3 : true) && !!column.accessorFn;
|
|
237
172
|
},
|
|
238
|
-
|
|
239
|
-
var
|
|
240
|
-
|
|
241
|
-
var column = instance.getColumn(columnId);
|
|
242
|
-
|
|
243
|
-
if (!column) {
|
|
244
|
-
throw new Error();
|
|
245
|
-
}
|
|
173
|
+
getCanMultiSort: () => {
|
|
174
|
+
var _ref3, _column$columnDef$ena2;
|
|
246
175
|
|
|
247
|
-
return (
|
|
176
|
+
return (_ref3 = (_column$columnDef$ena2 = column.columnDef.enableMultiSort) != null ? _column$columnDef$ena2 : instance.options.enableMultiSort) != null ? _ref3 : !!column.accessorFn;
|
|
248
177
|
},
|
|
249
|
-
|
|
178
|
+
getIsSorted: () => {
|
|
250
179
|
var _instance$getState$so;
|
|
251
180
|
|
|
252
|
-
|
|
253
|
-
return d.id === columnId;
|
|
254
|
-
});
|
|
181
|
+
const columnSort = (_instance$getState$so = instance.getState().sorting) == null ? void 0 : _instance$getState$so.find(d => d.id === column.id);
|
|
255
182
|
return !columnSort ? false : columnSort.desc ? 'desc' : 'asc';
|
|
256
183
|
},
|
|
257
|
-
|
|
184
|
+
getSortIndex: () => {
|
|
258
185
|
var _instance$getState$so2, _instance$getState$so3;
|
|
259
186
|
|
|
260
|
-
return (_instance$getState$so2 = (_instance$getState$so3 = instance.getState().sorting) == null ? void 0 : _instance$getState$so3.findIndex(
|
|
261
|
-
return d.id === columnId;
|
|
262
|
-
})) != null ? _instance$getState$so2 : -1;
|
|
187
|
+
return (_instance$getState$so2 = (_instance$getState$so3 = instance.getState().sorting) == null ? void 0 : _instance$getState$so3.findIndex(d => d.id === column.id)) != null ? _instance$getState$so2 : -1;
|
|
263
188
|
},
|
|
264
|
-
|
|
189
|
+
clearSorting: () => {
|
|
190
|
+
//clear sorting for just 1 column
|
|
191
|
+
instance.setSorting(old => old != null && old.length ? old.filter(d => d.id !== column.id) : []);
|
|
192
|
+
},
|
|
193
|
+
getToggleSortingHandler: () => {
|
|
194
|
+
const canSort = column.getCanSort();
|
|
195
|
+
return e => {
|
|
196
|
+
if (!canSort) return;
|
|
197
|
+
e.persist == null ? void 0 : e.persist();
|
|
198
|
+
column.toggleSorting == null ? void 0 : column.toggleSorting(undefined, column.getCanMultiSort() ? instance.options.isMultiSortEvent == null ? void 0 : instance.options.isMultiSortEvent(e) : false);
|
|
199
|
+
};
|
|
200
|
+
}
|
|
201
|
+
};
|
|
202
|
+
},
|
|
203
|
+
createInstance: instance => {
|
|
204
|
+
return {
|
|
205
|
+
setSorting: updater => instance.options.onSortingChange == null ? void 0 : instance.options.onSortingChange(updater),
|
|
206
|
+
resetSorting: defaultState => {
|
|
265
207
|
var _instance$initialStat, _instance$initialStat2;
|
|
266
208
|
|
|
267
|
-
instance.setSorting((_instance$initialStat = (_instance$initialStat2 = instance.initialState) == null ? void 0 : _instance$initialStat2.sorting) != null ? _instance$initialStat : []);
|
|
209
|
+
instance.setSorting(defaultState ? [] : (_instance$initialStat = (_instance$initialStat2 = instance.initialState) == null ? void 0 : _instance$initialStat2.sorting) != null ? _instance$initialStat : []);
|
|
268
210
|
},
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
throw new Error();
|
|
211
|
+
getPreSortedRowModel: () => instance.getFilteredRowModel(),
|
|
212
|
+
getSortedRowModel: () => {
|
|
213
|
+
if (!instance._getSortedRowModel && instance.options.getSortedRowModel) {
|
|
214
|
+
instance._getSortedRowModel = instance.options.getSortedRowModel(instance);
|
|
274
215
|
}
|
|
275
216
|
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
title: canSort ? 'Toggle Sorting' : undefined,
|
|
279
|
-
onClick: canSort ? function (e) {
|
|
280
|
-
e.persist();
|
|
281
|
-
column.toggleSorting == null ? void 0 : column.toggleSorting(undefined, column.getCanMultiSort() ? instance.options.isMultiSortEvent == null ? void 0 : instance.options.isMultiSortEvent(e) : false);
|
|
282
|
-
} : undefined
|
|
283
|
-
};
|
|
284
|
-
return utils.propGetter(initialProps, userProps);
|
|
285
|
-
},
|
|
286
|
-
getPreSortedRowModel: function getPreSortedRowModel() {
|
|
287
|
-
return instance.getGlobalFilteredRowModel();
|
|
288
|
-
},
|
|
289
|
-
getSortedRowModel: utils.memo(function () {
|
|
290
|
-
return [instance.getState().sorting, instance.getGlobalFilteredRowModel(), instance.options.sortRowsFn];
|
|
291
|
-
}, function (sorting, rowModel, sortingFn) {
|
|
292
|
-
if (!sortingFn || !(sorting != null && sorting.length)) {
|
|
293
|
-
return rowModel;
|
|
217
|
+
if (instance.options.manualSorting || !instance._getSortedRowModel) {
|
|
218
|
+
return instance.getPreSortedRowModel();
|
|
294
219
|
}
|
|
295
220
|
|
|
296
|
-
return
|
|
297
|
-
}
|
|
298
|
-
key: 'getSortedRowModel',
|
|
299
|
-
debug: function debug() {
|
|
300
|
-
var _instance$options$deb;
|
|
301
|
-
|
|
302
|
-
return (_instance$options$deb = instance.options.debugAll) != null ? _instance$options$deb : instance.options.debugTable;
|
|
303
|
-
},
|
|
304
|
-
onChange: function onChange() {
|
|
305
|
-
instance._notifyGroupingReset();
|
|
306
|
-
}
|
|
307
|
-
})
|
|
221
|
+
return instance._getSortedRowModel();
|
|
222
|
+
}
|
|
308
223
|
};
|
|
309
224
|
}
|
|
310
225
|
};
|