@tanstack/react-table 8.0.0-alpha.2 → 8.0.0-alpha.3
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/core.js +84 -51
- package/build/cjs/core.js.map +1 -1
- package/build/cjs/createTable.js +11 -6
- package/build/cjs/createTable.js.map +1 -1
- package/build/cjs/features/ColumnSizing.js +2 -16
- package/build/cjs/features/ColumnSizing.js.map +1 -1
- package/build/cjs/features/Expanding.js +23 -2
- package/build/cjs/features/Expanding.js.map +1 -1
- package/build/cjs/features/Filters.js +54 -5
- package/build/cjs/features/Filters.js.map +1 -1
- package/build/cjs/features/Grouping.js +23 -2
- package/build/cjs/features/Grouping.js.map +1 -1
- package/build/cjs/features/Headers.js +87 -24
- package/build/cjs/features/Headers.js.map +1 -1
- package/build/cjs/features/Ordering.js +4 -1
- package/build/cjs/features/Ordering.js.map +1 -1
- package/build/cjs/features/Pagination.js +194 -0
- package/build/cjs/features/Pagination.js.map +1 -0
- package/build/cjs/features/Pinning.js +0 -14
- package/build/cjs/features/Pinning.js.map +1 -1
- package/build/cjs/features/RowSelection.js +541 -0
- package/build/cjs/features/RowSelection.js.map +1 -0
- package/build/cjs/features/Sorting.js +76 -18
- package/build/cjs/features/Sorting.js.map +1 -1
- package/build/cjs/features/Visibility.js +8 -2
- package/build/cjs/features/Visibility.js.map +1 -1
- package/build/cjs/sortTypes.js +1 -0
- package/build/cjs/sortTypes.js.map +1 -1
- package/build/cjs/utils/columnFilterRowsFn.js +3 -2
- package/build/cjs/utils/columnFilterRowsFn.js.map +1 -1
- package/build/cjs/utils/expandRowsFn.js +2 -2
- package/build/cjs/utils/expandRowsFn.js.map +1 -1
- package/build/cjs/utils/globalFilterRowsFn.js +3 -2
- package/build/cjs/utils/globalFilterRowsFn.js.map +1 -1
- package/build/cjs/utils/groupRowsFn.js +4 -3
- package/build/cjs/utils/groupRowsFn.js.map +1 -1
- package/build/cjs/utils/sortRowsFn.js +3 -2
- package/build/cjs/utils/sortRowsFn.js.map +1 -1
- package/build/cjs/utils.js +6 -3
- package/build/cjs/utils.js.map +1 -1
- package/build/esm/index.js +2608 -1583
- package/build/esm/index.js.map +1 -1
- package/build/stats-html.html +1 -1
- package/build/stats-react.json +318 -248
- package/build/types/core.d.ts +10 -25
- package/build/types/createTable.d.ts +20 -2
- package/build/types/features/ColumnSizing.d.ts +4 -10
- package/build/types/features/Expanding.d.ts +2 -1
- package/build/types/features/Filters.d.ts +7 -2
- package/build/types/features/Grouping.d.ts +2 -2
- package/build/types/features/Ordering.d.ts +1 -1
- package/build/types/features/Pagination.d.ts +43 -0
- package/build/types/features/Pinning.d.ts +3 -3
- package/build/types/features/RowSelection.d.ts +66 -0
- package/build/types/features/Sorting.d.ts +5 -2
- package/build/types/sortTypes.d.ts +1 -0
- package/build/types/types.d.ts +9 -6
- package/build/types/utils/columnFilterRowsFn.d.ts +2 -2
- package/build/types/utils/expandRowsFn.d.ts +2 -2
- package/build/types/utils/globalFilterRowsFn.d.ts +2 -2
- package/build/types/utils/groupRowsFn.d.ts +2 -2
- package/build/types/utils/paginateRowsFn.d.ts +2 -0
- package/build/types/utils/sortRowsFn.d.ts +2 -2
- package/build/types/utils.d.ts +5 -1
- package/build/umd/index.development.js +2608 -1583
- 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 +1 -1
- package/src/core.tsx +222 -272
- package/src/createTable.tsx +68 -8
- package/src/features/ColumnSizing.ts +8 -37
- package/src/features/Expanding.ts +27 -11
- package/src/features/Filters.ts +74 -19
- package/src/features/Grouping.ts +27 -12
- package/src/features/Headers.ts +26 -58
- package/src/features/Ordering.ts +2 -3
- package/src/features/Pagination.ts +314 -0
- package/src/features/Pinning.ts +3 -16
- package/src/features/RowSelection.ts +831 -0
- package/src/features/Sorting.ts +82 -22
- package/src/features/Visibility.ts +2 -4
- package/src/sortTypes.ts +1 -1
- package/src/types.ts +25 -8
- package/src/utils/columnFilterRowsFn.ts +5 -12
- package/src/utils/expandRowsFn.ts +2 -5
- package/src/utils/globalFilterRowsFn.ts +3 -10
- package/src/utils/groupRowsFn.ts +3 -5
- package/src/utils/paginateRowsFn.ts +34 -0
- package/src/utils/sortRowsFn.ts +5 -5
- package/src/utils.tsx +12 -4
- package/src/features/withPagination.oldts +0 -208
- package/src/features/withRowSelection.oldts +0 -467
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ColumnSizing.js","sources":["../../../src/features/ColumnSizing.ts"],"sourcesContent":["import React, {\n ComponentProps,\n MouseEvent as ReactMouseEvent,\n PropsWithoutRef,\n PropsWithRef,\n TouchEvent as ReactTouchEvent,\n} from 'react'\nimport {\n Column,\n Getter,\n Header,\n OnChangeFn,\n PropGetterValue,\n ReactTable,\n Updater,\n} from '../types'\nimport { functionalUpdate, makeStateUpdater, memo, propGetter } from '../utils'\n\n//\n\nexport type ColumnSizing = Record<string, number>\n\nexport type ColumnSizingInfoState = {\n startOffset: null | number\n startSize: null | number\n deltaOffset: null | number\n deltaPercentage: null | number\n isResizingColumn: false | string\n columnSizingStart: [string, number][]\n}\n\nexport type ColumnSizingTableState = {\n columnSizing: ColumnSizing\n columnSizingInfo: ColumnSizingInfoState\n}\n\nexport type ColumnResizeMode = 'onChange' | 'onEnd'\n\nexport type ColumnSizingOptions = {\n enableColumnResizing?: boolean\n columnResizeMode?: ColumnResizeMode\n onColumnSizingChange?: OnChangeFn<ColumnSizing>\n onColumnSizingInfoChange?: OnChangeFn<ColumnSizingInfoState>\n}\n\nexport type ColumnSizingDefaultOptions = {\n columnResizeMode: ColumnResizeMode\n onColumnSizingChange: OnChangeFn<ColumnSizing>\n onColumnSizingInfoChange: OnChangeFn<ColumnSizingInfoState>\n}\n\nexport type HeaderResizerProps = {\n title?: string\n onMouseDown?: (e: ReactMouseEvent) => void\n onTouchStart?: (e: ReactTouchEvent) => void\n draggable?: boolean\n role?: string\n}\n\nexport type ColumnSizingInstance<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n> = {\n setColumnSizing: (updater: Updater<ColumnSizing>) => void\n setColumnSizingInfo: (updater: Updater<ColumnSizingInfoState>) => void\n resetColumnSizing: () => void\n resetColumnSize: (columnId: string) => void\n resetHeaderSize: (headerId: string) => void\n resetHeaderSizeInfo: () => void\n getColumnCanResize: (columnId: string) => boolean\n getHeaderCanResize: (headerId: string) => boolean\n getHeaderResizerProps: <TGetter extends Getter<HeaderResizerProps>>(\n columnId: string,\n userProps?: TGetter\n ) => undefined | PropGetterValue<HeaderResizerProps, TGetter>\n getColumnIsResizing: (columnId: string) => boolean\n getHeaderIsResizing: (headerId: string) => boolean\n}\n\nexport type ColumnSizingColumnDef = {\n enableResizing?: boolean\n defaultCanResize?: boolean\n}\n\nexport type ColumnSizingColumn<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n> = {\n getCanResize: () => boolean\n getIsResizing: () => boolean\n resetSize: () => void\n}\n\nexport type ColumnSizingHeader<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n> = {\n getCanResize: () => boolean\n getIsResizing: () => boolean\n getResizerProps: <TGetter extends Getter<HeaderResizerProps>>(\n userProps?: TGetter\n ) => undefined | PropGetterValue<HeaderResizerProps, TGetter>\n resetSize: () => void\n}\n\n//\n\nexport const defaultColumnSizing = {\n width: 150,\n minWidth: 20,\n maxWidth: Number.MAX_SAFE_INTEGER,\n}\n\nexport function getInitialState(): ColumnSizingTableState {\n return {\n columnSizing: {},\n columnSizingInfo: {\n startOffset: null,\n startSize: null,\n deltaOffset: null,\n deltaPercentage: null,\n isResizingColumn: false,\n columnSizingStart: [],\n },\n }\n}\n\nexport function getDefaultOptions<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n>(\n instance: ReactTable<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n): ColumnSizingDefaultOptions {\n return {\n columnResizeMode: 'onEnd',\n onColumnSizingChange: makeStateUpdater('columnSizing', instance),\n onColumnSizingInfoChange: makeStateUpdater('columnSizingInfo', instance),\n }\n}\n\nexport function getInstance<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n>(\n instance: ReactTable<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n): ColumnSizingInstance<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n> {\n return {\n setColumnSizing: updater =>\n instance.options.onColumnSizingChange?.(\n updater,\n functionalUpdate(updater, instance.getState().columnSizing)\n ),\n setColumnSizingInfo: updater =>\n instance.options.onColumnSizingInfoChange?.(\n updater,\n functionalUpdate(updater, instance.getState().columnSizingInfo)\n ),\n resetColumnSizing: () => {\n instance.setColumnSizing(instance.initialState.columnSizing ?? {})\n },\n resetHeaderSizeInfo: () => {\n instance.setColumnSizingInfo(instance.initialState.columnSizingInfo ?? {})\n },\n resetColumnSize: columnId => {\n instance.setColumnSizing(({ [columnId]: _, ...rest }) => {\n return rest\n })\n },\n resetHeaderSize: headerId => {\n const header = instance.getHeader(headerId)\n\n if (!header) {\n return\n }\n\n return instance.resetColumnSize(header.column.id)\n },\n getHeaderCanResize: headerId => {\n const header = instance.getHeader(headerId)\n\n if (!header) {\n throw new Error()\n }\n\n return instance.getColumnCanResize(header.column.id)\n },\n getColumnCanResize: columnId => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n throw new Error()\n }\n\n return (\n column.enableResizing ??\n instance.options.enableColumnResizing ??\n column.defaultCanResize ??\n true\n )\n },\n getColumnIsResizing: columnId => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n throw new Error()\n }\n\n return instance.getState().columnSizingInfo.isResizingColumn === columnId\n },\n getHeaderIsResizing: headerId => {\n const header = instance.getHeader(headerId)\n\n if (!header) {\n throw new Error()\n }\n\n return instance.getColumnIsResizing(header.column.id)\n },\n getHeaderResizerProps: (headerId, userProps) => {\n const header = instance.getHeader(headerId)\n\n if (!header) {\n return\n }\n\n const column = instance.getColumn(header.column.id)\n\n if (!column) {\n return\n }\n\n const canResize = column.getCanResize()\n\n const onResizeStart = (e: ReactMouseEvent | ReactTouchEvent) => {\n if (isTouchStartEvent(e)) {\n // lets not respond to multiple touches (e.g. 2 or 3 fingers)\n if (e.touches && e.touches.length > 1) {\n return\n }\n }\n\n const columnSizingStart: [string, number][] = header\n .getLeafHeaders()\n .map(d => [d.column.id, d.getWidth()])\n\n const clientX = isTouchStartEvent(e)\n ? Math.round(e.touches[0].clientX)\n : e.clientX\n\n const updateOffset = (\n eventType: 'move' | 'end',\n clientXPos?: number\n ) => {\n if (typeof clientXPos !== 'number') {\n return\n }\n\n let newColumnSizing: ColumnSizing = {}\n\n instance.setColumnSizingInfo(old => {\n const deltaOffset = clientXPos - (old?.startOffset ?? 0)\n const deltaPercentage = Math.max(\n deltaOffset / (old?.startSize ?? 0),\n -0.999999\n )\n\n old.columnSizingStart.forEach(([columnId, headerWidth]) => {\n newColumnSizing[columnId] = Math.max(\n headerWidth + headerWidth * deltaPercentage,\n 0\n )\n })\n\n return {\n ...old,\n deltaOffset,\n deltaPercentage,\n }\n })\n\n if (\n instance.options.columnResizeMode === 'onChange' ||\n eventType === 'end'\n ) {\n instance.setColumnSizing(old => ({\n ...old,\n ...newColumnSizing,\n }))\n }\n }\n\n const onMove = (clientXPos?: number) => updateOffset('move', clientXPos)\n\n const onEnd = (clientXPos?: number) => {\n updateOffset('end', clientXPos)\n\n instance.setColumnSizingInfo(old => ({\n ...old,\n isResizingColumn: false,\n startOffset: null,\n startSize: null,\n deltaOffset: null,\n deltaPercentage: null,\n columnSizingStart: [],\n }))\n }\n\n const mouseEvents = {\n moveHandler: (e: MouseEvent) => onMove(e.clientX),\n upHandler: (e: MouseEvent) => {\n document.removeEventListener('mousemove', mouseEvents.moveHandler)\n document.removeEventListener('mouseup', mouseEvents.upHandler)\n onEnd(e.clientX)\n },\n }\n\n const touchEvents = {\n moveHandler: (e: TouchEvent) => {\n if (e.cancelable) {\n e.preventDefault()\n e.stopPropagation()\n }\n onMove(e.touches[0].clientX)\n return false\n },\n upHandler: (e: TouchEvent) => {\n document.removeEventListener('touchmove', touchEvents.moveHandler)\n document.removeEventListener('touchend', touchEvents.upHandler)\n if (e.cancelable) {\n e.preventDefault()\n e.stopPropagation()\n }\n onEnd(e.touches[0].clientX)\n },\n }\n\n const passiveIfSupported = passiveEventSupported()\n ? { passive: false }\n : false\n\n if (isTouchStartEvent(e)) {\n document.addEventListener(\n 'touchmove',\n touchEvents.moveHandler,\n passiveIfSupported\n )\n document.addEventListener(\n 'touchend',\n touchEvents.upHandler,\n passiveIfSupported\n )\n } else {\n document.addEventListener(\n 'mousemove',\n mouseEvents.moveHandler,\n passiveIfSupported\n )\n document.addEventListener(\n 'mouseup',\n mouseEvents.upHandler,\n passiveIfSupported\n )\n }\n\n instance.setColumnSizingInfo(old => ({\n ...old,\n startOffset: clientX,\n startSize: header.getWidth(),\n deltaOffset: 0,\n deltaPercentage: 0,\n columnSizingStart,\n isResizingColumn: header.column.id,\n }))\n }\n\n const initialProps: HeaderResizerProps = canResize\n ? {\n title: 'Toggle Grouping',\n draggable: false,\n role: 'separator',\n onMouseDown: (e: ReactMouseEvent) => {\n e.persist()\n onResizeStart(e)\n },\n onTouchStart: (e: ReactTouchEvent) => {\n e.persist()\n onResizeStart(e)\n },\n }\n : {}\n\n return propGetter(initialProps, userProps)\n },\n }\n}\n\nexport function createColumn<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n>(\n column: Column<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>,\n instance: ReactTable<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n): ColumnSizingColumn<TData, TValue, TFilterFns, TSortingFns, TAggregationFns> {\n return {\n getIsResizing: () => instance.getColumnIsResizing(column.id),\n getCanResize: () => instance.getColumnCanResize(column.id),\n resetSize: () => instance.resetColumnSize(column.id),\n }\n}\n\nexport function createHeader<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n>(\n header: Header<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>,\n instance: ReactTable<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n): ColumnSizingHeader<TData, TValue, TFilterFns, TSortingFns, TAggregationFns> {\n return {\n getIsResizing: () => instance.getHeaderIsResizing(header.id),\n getCanResize: () => instance.getHeaderCanResize(header.id),\n getResizerProps: userProps =>\n instance.getHeaderResizerProps(header.id, userProps),\n resetSize: () => instance.resetHeaderSize(header.id),\n }\n}\n\nlet passiveSupported: boolean | null = null\nexport function passiveEventSupported() {\n if (typeof passiveSupported === 'boolean') return passiveSupported\n\n let supported = false\n try {\n const options = {\n get passive() {\n supported = true\n return false\n },\n }\n\n const noop = () => {}\n\n window.addEventListener('test', noop, options)\n window.removeEventListener('test', noop)\n } catch (err) {\n supported = false\n }\n passiveSupported = supported\n return passiveSupported\n}\n\nfunction isTouchStartEvent(\n e: ReactTouchEvent | ReactMouseEvent\n): e is ReactTouchEvent {\n return e.type === 'touchstart'\n}\n"],"names":["defaultColumnSizing","width","minWidth","maxWidth","Number","MAX_SAFE_INTEGER","getInitialState","columnSizing","columnSizingInfo","startOffset","startSize","deltaOffset","deltaPercentage","isResizingColumn","columnSizingStart","getDefaultOptions","instance","columnResizeMode","onColumnSizingChange","makeStateUpdater","onColumnSizingInfoChange","getInstance","setColumnSizing","updater","options","functionalUpdate","getState","setColumnSizingInfo","resetColumnSizing","initialState","resetHeaderSizeInfo","resetColumnSize","columnId","rest","resetHeaderSize","headerId","header","getHeader","column","id","getHeaderCanResize","Error","getColumnCanResize","getColumn","enableResizing","enableColumnResizing","defaultCanResize","getColumnIsResizing","getHeaderIsResizing","getHeaderResizerProps","userProps","canResize","getCanResize","onResizeStart","e","isTouchStartEvent","touches","length","getLeafHeaders","map","d","getWidth","clientX","Math","round","updateOffset","eventType","clientXPos","newColumnSizing","old","max","forEach","headerWidth","onMove","onEnd","mouseEvents","moveHandler","upHandler","document","removeEventListener","touchEvents","cancelable","preventDefault","stopPropagation","passiveIfSupported","passiveEventSupported","passive","addEventListener","initialProps","title","draggable","role","onMouseDown","persist","onTouchStart","propGetter","createColumn","getIsResizing","resetSize","createHeader","getResizerProps","passiveSupported","supported","noop","window","err","type"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ColumnSizing.js","sources":["../../../src/features/ColumnSizing.ts"],"sourcesContent":["import React, {\n ComponentProps,\n MouseEvent as ReactMouseEvent,\n PropsWithoutRef,\n PropsWithRef,\n TouchEvent as ReactTouchEvent,\n} from 'react'\nimport {\n Column,\n Getter,\n Header,\n OnChangeFn,\n PropGetterValue,\n ReactTable,\n Updater,\n} from '../types'\nimport { functionalUpdate, makeStateUpdater, memo, propGetter } from '../utils'\n\n//\n\nexport type ColumnSizing = Record<string, number>\n\nexport type ColumnSizingInfoState = {\n startOffset: null | number\n startSize: null | number\n deltaOffset: null | number\n deltaPercentage: null | number\n isResizingColumn: false | string\n columnSizingStart: [string, number][]\n}\n\nexport type ColumnSizingTableState = {\n columnSizing: ColumnSizing\n columnSizingInfo: ColumnSizingInfoState\n}\n\nexport type ColumnResizeMode = 'onChange' | 'onEnd'\n\nexport type ColumnSizingOptions = {\n enableColumnResizing?: boolean\n columnResizeMode?: ColumnResizeMode\n onColumnSizingChange?: OnChangeFn<ColumnSizing>\n onColumnSizingInfoChange?: OnChangeFn<ColumnSizingInfoState>\n}\n\nexport type ColumnSizingDefaultOptions = {\n columnResizeMode: ColumnResizeMode\n onColumnSizingChange: OnChangeFn<ColumnSizing>\n onColumnSizingInfoChange: OnChangeFn<ColumnSizingInfoState>\n}\n\nexport type ColumnResizerProps = {\n title?: string\n onMouseDown?: (e: ReactMouseEvent) => void\n onTouchStart?: (e: ReactTouchEvent) => void\n draggable?: boolean\n role?: string\n}\n\nexport type ColumnSizingInstance<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n> = {\n setColumnSizing: (updater: Updater<ColumnSizing>) => void\n setColumnSizingInfo: (updater: Updater<ColumnSizingInfoState>) => void\n resetColumnSizing: () => void\n resetColumnSize: (columnId: string) => void\n resetHeaderSize: (headerId: string) => void\n resetHeaderSizeInfo: () => void\n getColumnCanResize: (columnId: string) => boolean\n getHeaderCanResize: (headerId: string) => boolean\n getColumnResizerProps: <TGetter extends Getter<ColumnResizerProps>>(\n columnId: string,\n userProps?: TGetter\n ) => undefined | PropGetterValue<ColumnResizerProps, TGetter>\n getColumnIsResizing: (columnId: string) => boolean\n getHeaderIsResizing: (headerId: string) => boolean\n}\n\nexport type ColumnSizingColumnDef = {\n enableResizing?: boolean\n defaultCanResize?: boolean\n}\n\nexport type ColumnSizingColumn<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n> = {\n getCanResize: () => boolean\n getIsResizing: () => boolean\n getResizerProps: <TGetter extends Getter<ColumnResizerProps>>(\n userProps?: TGetter\n ) => undefined | PropGetterValue<ColumnResizerProps, TGetter>\n resetSize: () => void\n}\n\n//\n\nexport const defaultColumnSizing = {\n width: 150,\n minWidth: 20,\n maxWidth: Number.MAX_SAFE_INTEGER,\n}\n\nexport function getInitialState(): ColumnSizingTableState {\n return {\n columnSizing: {},\n columnSizingInfo: {\n startOffset: null,\n startSize: null,\n deltaOffset: null,\n deltaPercentage: null,\n isResizingColumn: false,\n columnSizingStart: [],\n },\n }\n}\n\nexport function getDefaultOptions<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n>(\n instance: ReactTable<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n): ColumnSizingDefaultOptions {\n return {\n columnResizeMode: 'onEnd',\n onColumnSizingChange: makeStateUpdater('columnSizing', instance),\n onColumnSizingInfoChange: makeStateUpdater('columnSizingInfo', instance),\n }\n}\n\nexport function getInstance<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n>(\n instance: ReactTable<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n): ColumnSizingInstance<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n> {\n return {\n setColumnSizing: updater =>\n instance.options.onColumnSizingChange?.(\n updater,\n functionalUpdate(updater, instance.getState().columnSizing)\n ),\n setColumnSizingInfo: updater =>\n instance.options.onColumnSizingInfoChange?.(\n updater,\n functionalUpdate(updater, instance.getState().columnSizingInfo)\n ),\n resetColumnSizing: () => {\n instance.setColumnSizing(instance.initialState.columnSizing ?? {})\n },\n resetHeaderSizeInfo: () => {\n instance.setColumnSizingInfo(instance.initialState.columnSizingInfo ?? {})\n },\n resetColumnSize: columnId => {\n instance.setColumnSizing(({ [columnId]: _, ...rest }) => {\n return rest\n })\n },\n resetHeaderSize: headerId => {\n const header = instance.getHeader(headerId)\n\n if (!header) {\n return\n }\n\n return instance.resetColumnSize(header.column.id)\n },\n getHeaderCanResize: headerId => {\n const header = instance.getHeader(headerId)\n\n if (!header) {\n throw new Error()\n }\n\n return instance.getColumnCanResize(header.column.id)\n },\n getColumnCanResize: columnId => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n throw new Error()\n }\n\n return (\n column.enableResizing ??\n instance.options.enableColumnResizing ??\n column.defaultCanResize ??\n true\n )\n },\n getColumnIsResizing: columnId => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n throw new Error()\n }\n\n return instance.getState().columnSizingInfo.isResizingColumn === columnId\n },\n getHeaderIsResizing: headerId => {\n const header = instance.getHeader(headerId)\n\n if (!header) {\n throw new Error()\n }\n\n return instance.getColumnIsResizing(header.column.id)\n },\n getColumnResizerProps: (headerId, userProps) => {\n const header = instance.getHeader(headerId)\n\n if (!header) {\n return\n }\n\n const column = instance.getColumn(header.column.id)\n\n if (!column) {\n return\n }\n\n const canResize = column.getCanResize()\n\n const onResizeStart = (e: ReactMouseEvent | ReactTouchEvent) => {\n if (isTouchStartEvent(e)) {\n // lets not respond to multiple touches (e.g. 2 or 3 fingers)\n if (e.touches && e.touches.length > 1) {\n return\n }\n }\n\n const columnSizingStart: [string, number][] = header\n .getLeafHeaders()\n .map(d => [d.column.id, d.getWidth()])\n\n const clientX = isTouchStartEvent(e)\n ? Math.round(e.touches[0].clientX)\n : e.clientX\n\n const updateOffset = (\n eventType: 'move' | 'end',\n clientXPos?: number\n ) => {\n if (typeof clientXPos !== 'number') {\n return\n }\n\n let newColumnSizing: ColumnSizing = {}\n\n instance.setColumnSizingInfo(old => {\n const deltaOffset = clientXPos - (old?.startOffset ?? 0)\n const deltaPercentage = Math.max(\n deltaOffset / (old?.startSize ?? 0),\n -0.999999\n )\n\n old.columnSizingStart.forEach(([columnId, headerWidth]) => {\n newColumnSizing[columnId] = Math.max(\n headerWidth + headerWidth * deltaPercentage,\n 0\n )\n })\n\n return {\n ...old,\n deltaOffset,\n deltaPercentage,\n }\n })\n\n if (\n instance.options.columnResizeMode === 'onChange' ||\n eventType === 'end'\n ) {\n instance.setColumnSizing(old => ({\n ...old,\n ...newColumnSizing,\n }))\n }\n }\n\n const onMove = (clientXPos?: number) => updateOffset('move', clientXPos)\n\n const onEnd = (clientXPos?: number) => {\n updateOffset('end', clientXPos)\n\n instance.setColumnSizingInfo(old => ({\n ...old,\n isResizingColumn: false,\n startOffset: null,\n startSize: null,\n deltaOffset: null,\n deltaPercentage: null,\n columnSizingStart: [],\n }))\n }\n\n const mouseEvents = {\n moveHandler: (e: MouseEvent) => onMove(e.clientX),\n upHandler: (e: MouseEvent) => {\n document.removeEventListener('mousemove', mouseEvents.moveHandler)\n document.removeEventListener('mouseup', mouseEvents.upHandler)\n onEnd(e.clientX)\n },\n }\n\n const touchEvents = {\n moveHandler: (e: TouchEvent) => {\n if (e.cancelable) {\n e.preventDefault()\n e.stopPropagation()\n }\n onMove(e.touches[0].clientX)\n return false\n },\n upHandler: (e: TouchEvent) => {\n document.removeEventListener('touchmove', touchEvents.moveHandler)\n document.removeEventListener('touchend', touchEvents.upHandler)\n if (e.cancelable) {\n e.preventDefault()\n e.stopPropagation()\n }\n onEnd(e.touches[0].clientX)\n },\n }\n\n const passiveIfSupported = passiveEventSupported()\n ? { passive: false }\n : false\n\n if (isTouchStartEvent(e)) {\n document.addEventListener(\n 'touchmove',\n touchEvents.moveHandler,\n passiveIfSupported\n )\n document.addEventListener(\n 'touchend',\n touchEvents.upHandler,\n passiveIfSupported\n )\n } else {\n document.addEventListener(\n 'mousemove',\n mouseEvents.moveHandler,\n passiveIfSupported\n )\n document.addEventListener(\n 'mouseup',\n mouseEvents.upHandler,\n passiveIfSupported\n )\n }\n\n instance.setColumnSizingInfo(old => ({\n ...old,\n startOffset: clientX,\n startSize: header.getWidth(),\n deltaOffset: 0,\n deltaPercentage: 0,\n columnSizingStart,\n isResizingColumn: header.column.id,\n }))\n }\n\n const initialProps: ColumnResizerProps = canResize\n ? {\n title: 'Toggle Grouping',\n draggable: false,\n role: 'separator',\n onMouseDown: (e: ReactMouseEvent) => {\n e.persist()\n onResizeStart(e)\n },\n onTouchStart: (e: ReactTouchEvent) => {\n e.persist()\n onResizeStart(e)\n },\n }\n : {}\n\n return propGetter(initialProps, userProps)\n },\n }\n}\n\nexport function createColumn<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n>(\n column: Column<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>,\n instance: ReactTable<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n): ColumnSizingColumn<TData, TValue, TFilterFns, TSortingFns, TAggregationFns> {\n return {\n getIsResizing: () => instance.getColumnIsResizing(column.id),\n getCanResize: () => instance.getColumnCanResize(column.id),\n resetSize: () => instance.resetColumnSize(column.id),\n getResizerProps: userProps =>\n instance.getColumnResizerProps(column.id, userProps),\n }\n}\n\nlet passiveSupported: boolean | null = null\nexport function passiveEventSupported() {\n if (typeof passiveSupported === 'boolean') return passiveSupported\n\n let supported = false\n try {\n const options = {\n get passive() {\n supported = true\n return false\n },\n }\n\n const noop = () => {}\n\n window.addEventListener('test', noop, options)\n window.removeEventListener('test', noop)\n } catch (err) {\n supported = false\n }\n passiveSupported = supported\n return passiveSupported\n}\n\nfunction isTouchStartEvent(\n e: ReactTouchEvent | ReactMouseEvent\n): e is ReactTouchEvent {\n return e.type === 'touchstart'\n}\n"],"names":["defaultColumnSizing","width","minWidth","maxWidth","Number","MAX_SAFE_INTEGER","getInitialState","columnSizing","columnSizingInfo","startOffset","startSize","deltaOffset","deltaPercentage","isResizingColumn","columnSizingStart","getDefaultOptions","instance","columnResizeMode","onColumnSizingChange","makeStateUpdater","onColumnSizingInfoChange","getInstance","setColumnSizing","updater","options","functionalUpdate","getState","setColumnSizingInfo","resetColumnSizing","initialState","resetHeaderSizeInfo","resetColumnSize","columnId","rest","resetHeaderSize","headerId","header","getHeader","column","id","getHeaderCanResize","Error","getColumnCanResize","getColumn","enableResizing","enableColumnResizing","defaultCanResize","getColumnIsResizing","getHeaderIsResizing","getColumnResizerProps","userProps","canResize","getCanResize","onResizeStart","e","isTouchStartEvent","touches","length","getLeafHeaders","map","d","getWidth","clientX","Math","round","updateOffset","eventType","clientXPos","newColumnSizing","old","max","forEach","headerWidth","onMove","onEnd","mouseEvents","moveHandler","upHandler","document","removeEventListener","touchEvents","cancelable","preventDefault","stopPropagation","passiveIfSupported","passiveEventSupported","passive","addEventListener","initialProps","title","draggable","role","onMouseDown","persist","onTouchStart","propGetter","createColumn","getIsResizing","resetSize","getResizerProps","passiveSupported","supported","noop","window","err","type"],"mappings":"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"}
|
|
@@ -33,7 +33,22 @@ function getDefaultOptions(instance) {
|
|
|
33
33
|
};
|
|
34
34
|
}
|
|
35
35
|
function getInstance(instance) {
|
|
36
|
+
var registered = false;
|
|
36
37
|
return {
|
|
38
|
+
_notifyExpandedReset: function _notifyExpandedReset() {
|
|
39
|
+
if (!registered) {
|
|
40
|
+
registered = true;
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
if (instance.options.autoResetAll === false) {
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
if (instance.options.autoResetAll === true || instance.options.autoResetExpanded) {
|
|
49
|
+
instance.resetExpanded();
|
|
50
|
+
}
|
|
51
|
+
},
|
|
37
52
|
setExpanded: function setExpanded(updater) {
|
|
38
53
|
return instance.options.onExpandedChange == null ? void 0 : instance.options.onExpandedChange(updater, utils.functionalUpdate(updater, instance.getState().expanded));
|
|
39
54
|
},
|
|
@@ -181,8 +196,14 @@ function getInstance(instance) {
|
|
|
181
196
|
}
|
|
182
197
|
|
|
183
198
|
if (process.env.NODE_ENV !== 'production' && instance.options.debug) console.info('Expanding...');
|
|
184
|
-
return expandRowsFn(instance,
|
|
185
|
-
},
|
|
199
|
+
return expandRowsFn(instance, rowModel);
|
|
200
|
+
}, {
|
|
201
|
+
key: 'getExpandedRowModel',
|
|
202
|
+
debug: instance.options.debug,
|
|
203
|
+
onChange: function onChange() {
|
|
204
|
+
return instance._notifyPageIndexReset();
|
|
205
|
+
}
|
|
206
|
+
}),
|
|
186
207
|
getPreExpandedRows: function getPreExpandedRows() {
|
|
187
208
|
return instance.getGroupedRowModel().rows;
|
|
188
209
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Expanding.js","sources":["../../../src/features/Expanding.ts"],"sourcesContent":["import { MouseEvent, TouchEvent } from 'react'\nimport { RowModel } from '..'\nimport {\n Getter,\n OnChangeFn,\n PropGetterValue,\n ReactTable,\n Row,\n Updater,\n} from '../types'\nimport { functionalUpdate, makeStateUpdater, memo, propGetter } from '../utils'\n\nexport type ExpandedStateList = Record<string, boolean>\nexport type ExpandedState = true | Record<string, boolean>\nexport type ExpandedTableState = {\n expanded: ExpandedState\n}\n\nexport type ExpandedRow = {\n toggleExpanded: (expanded?: boolean) => void\n getIsExpanded: () => boolean\n getCanExpand: () => boolean\n getToggleExpandedProps: <TGetter extends Getter<ToggleExpandedProps>>(\n userProps?: TGetter\n ) => undefined | PropGetterValue<ToggleExpandedProps, TGetter>\n}\n\nexport type ExpandedOptions<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n> = {\n onExpandedChange?: OnChangeFn<ExpandedState>\n autoResetExpanded?: boolean\n enableExpanded?: boolean\n expandRowsFn?: (\n instance: ReactTable<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >,\n expandedState: ExpandedState,\n groupedRowModel: RowModel<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >\n ) => RowModel<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n expandSubRows?: boolean\n defaultCanExpand?: boolean\n getIsRowExpanded?: (\n row: Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n ) => boolean\n getRowCanExpand?: (\n row: Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n ) => boolean\n paginateExpandedRows?: boolean\n}\n\nexport type ToggleExpandedProps = {\n title?: string\n onClick?: (event: MouseEvent | TouchEvent) => void\n}\n\nexport type ExpandedInstance<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n> = {\n setExpanded: (updater: Updater<ExpandedState>) => void\n toggleRowExpanded: (rowId: string, expanded?: boolean) => void\n toggleAllRowsExpanded: (expanded?: boolean) => void\n resetExpanded: () => void\n getRowCanExpand: (rowId: string) => boolean\n getIsRowExpanded: (rowId: string) => boolean\n getToggleExpandedProps: <TGetter extends Getter<ToggleExpandedProps>>(\n rowId: string,\n userProps?: TGetter\n ) => undefined | PropGetterValue<ToggleExpandedProps, TGetter>\n getToggleAllRowsExpandedProps: <TGetter extends Getter<ToggleExpandedProps>>(\n userProps?: TGetter\n ) => undefined | PropGetterValue<ToggleExpandedProps, TGetter>\n getIsAllRowsExpanded: () => boolean\n getExpandedDepth: () => number\n getExpandedRowModel: () => RowModel<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >\n getPreExpandedRows: () => Row<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getPreExpandedFlatRows: () => Row<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getPreExpandedRowsById: () => Record<\n string,\n Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n >\n getExpandedRows: () => Row<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getExpandedFlatRows: () => Row<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getExpandedRowsById: () => Record<\n string,\n Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n >\n}\n\n//\n\nexport function getInitialState(): ExpandedTableState {\n return {\n expanded: {},\n }\n}\n\nexport function getDefaultOptions<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n>(\n instance: ReactTable<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n): ExpandedOptions<TData, TValue, TFilterFns, TSortingFns, TAggregationFns> {\n return {\n onExpandedChange: makeStateUpdater('expanded', instance),\n autoResetExpanded: true,\n getIsRowExpanded: row => !!(row?.original as { expanded?: any }).expanded,\n expandSubRows: true,\n paginateExpandedRows: true,\n }\n}\n\nexport function getInstance<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n>(\n instance: ReactTable<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n): ExpandedInstance<TData, TValue, TFilterFns, TSortingFns, TAggregationFns> {\n return {\n setExpanded: updater =>\n instance.options.onExpandedChange?.(\n updater,\n functionalUpdate(updater, instance.getState().expanded)\n ),\n toggleRowExpanded: (rowId, expanded) => {\n if (!rowId) return\n\n instance.setExpanded((old = {}) => {\n const exists = old === true ? true : !!old?.[rowId]\n\n let oldExpanded: ExpandedStateList = {}\n\n if (old === true) {\n Object.keys(instance.getRowsById()).forEach(rowId => {\n oldExpanded[rowId] = true\n })\n } else {\n oldExpanded = old\n }\n\n expanded = expanded ?? !exists\n\n if (!exists && expanded) {\n return {\n ...oldExpanded,\n [rowId]: true,\n }\n }\n\n if (exists && !expanded) {\n const { [rowId]: _, ...rest } = oldExpanded\n return rest\n }\n\n return old\n })\n },\n toggleAllRowsExpanded: expanded => {\n if (expanded ?? !instance.getIsAllRowsExpanded()) {\n instance.setExpanded(true)\n } else {\n instance.setExpanded({})\n }\n },\n resetExpanded: () => {\n instance.setExpanded(instance.options?.initialState?.expanded ?? {})\n },\n getIsRowExpanded: rowId => {\n const row = instance.getRow(rowId)\n\n if (!row) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(\n `[ReactTable] getIsRowExpanded: no row found with id ${rowId}`\n )\n }\n throw new Error()\n }\n\n const expanded = instance.getState().expanded\n\n return !!(\n instance.options.getIsRowExpanded?.(row) ??\n (expanded || expanded?.[rowId])\n )\n },\n getRowCanExpand: rowId => {\n const row = instance.getRow(rowId)\n\n if (!row) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(\n `[ReactTable] getRowCanExpand: no row found with id ${rowId}`\n )\n }\n throw new Error()\n }\n\n return (\n instance.options.getRowCanExpand?.(row) ??\n instance.options.enableExpanded ??\n instance.options.defaultCanExpand ??\n !!row.subRows?.length\n )\n },\n getToggleExpandedProps: (rowId, userProps) => {\n const row = instance.getRow(rowId)\n\n if (!row) {\n return\n }\n\n const canExpand = instance.getRowCanExpand(rowId)\n\n const initialProps: ToggleExpandedProps = {\n title: canExpand ? 'Toggle Expanded' : undefined,\n onClick: canExpand\n ? (e: MouseEvent | TouchEvent) => {\n e.persist()\n instance.toggleRowExpanded(rowId)\n }\n : undefined,\n }\n\n return propGetter(initialProps, userProps)\n },\n getToggleAllRowsExpandedProps: userProps => {\n const initialProps: ToggleExpandedProps = {\n title: 'Toggle All Expanded',\n onClick: (e: MouseEvent | TouchEvent) => {\n e.persist()\n instance.toggleAllRowsExpanded()\n },\n }\n\n return propGetter(initialProps, userProps)\n },\n getIsAllRowsExpanded: () => {\n const expanded = instance.getState().expanded\n\n // If expanded is true, save some cycles and return true\n if (expanded === true) {\n return true\n }\n\n // If any row is not expanded, return false\n if (\n Object.keys(instance.getRowsById()).some(\n id => !instance.getIsRowExpanded(id)\n )\n ) {\n return false\n }\n\n // They must all be expanded :shrug:\n return true\n },\n getExpandedDepth: () => {\n let maxDepth = 0\n\n const rowIds =\n instance.getState().expanded === true\n ? Object.keys(instance.getRowsById())\n : Object.keys(instance.getState().expanded)\n\n rowIds.forEach(id => {\n const splitId = id.split('.')\n maxDepth = Math.max(maxDepth, splitId.length)\n })\n\n return maxDepth\n },\n getExpandedRowModel: memo(\n () => [\n instance.getState().expanded,\n instance.getGroupedRowModel(),\n instance.options.expandRowsFn,\n instance.options.paginateExpandedRows,\n ],\n (expanded, rowModel, expandRowsFn, paginateExpandedRows) => {\n if (\n !expandRowsFn ||\n // Do not expand if rows are not included in pagination\n !paginateExpandedRows ||\n !Object.keys(expanded ?? {}).length\n ) {\n return rowModel\n }\n\n if (process.env.NODE_ENV !== 'production' && instance.options.debug)\n console.info('Expanding...')\n\n return expandRowsFn(instance, expanded, rowModel)\n },\n 'getExpandedRowModel',\n instance.options.debug\n ),\n\n getPreExpandedRows: () => instance.getGroupedRowModel().rows,\n getPreExpandedFlatRows: () => instance.getGroupedRowModel().flatRows,\n getPreExpandedRowsById: () => instance.getGroupedRowModel().rowsById,\n getExpandedRows: () => instance.getExpandedRowModel().rows,\n getExpandedFlatRows: () => instance.getExpandedRowModel().flatRows,\n getExpandedRowsById: () => instance.getExpandedRowModel().rowsById,\n }\n}\n\nexport function createRow<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n>(\n row: Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>,\n instance: ReactTable<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n): ExpandedRow {\n return {\n toggleExpanded: expanded =>\n void instance.toggleRowExpanded(row.id, expanded),\n getIsExpanded: () => instance.getIsRowExpanded(row.id),\n getCanExpand: () => row.subRows && !!row.subRows.length,\n getToggleExpandedProps: userProps => {\n const initialProps: ToggleExpandedProps = {\n title: 'Toggle Row Expanded',\n onClick: (e: MouseEvent | TouchEvent) => {\n e.stopPropagation()\n instance.toggleRowExpanded(row.id)\n },\n }\n return propGetter(initialProps, userProps)\n },\n }\n}\n"],"names":["getInitialState","expanded","getDefaultOptions","instance","onExpandedChange","makeStateUpdater","autoResetExpanded","getIsRowExpanded","row","original","expandSubRows","paginateExpandedRows","getInstance","setExpanded","updater","options","functionalUpdate","getState","toggleRowExpanded","rowId","old","exists","oldExpanded","Object","keys","getRowsById","forEach","rest","toggleAllRowsExpanded","getIsAllRowsExpanded","resetExpanded","initialState","getRow","process","env","NODE_ENV","console","warn","Error","getRowCanExpand","enableExpanded","defaultCanExpand","subRows","length","getToggleExpandedProps","userProps","canExpand","initialProps","title","undefined","onClick","e","persist","propGetter","getToggleAllRowsExpandedProps","some","id","getExpandedDepth","maxDepth","rowIds","splitId","split","Math","max","getExpandedRowModel","memo","getGroupedRowModel","expandRowsFn","rowModel","debug","info","getPreExpandedRows","rows","getPreExpandedFlatRows","flatRows","getPreExpandedRowsById","rowsById","getExpandedRows","getExpandedFlatRows","getExpandedRowsById","createRow","toggleExpanded","getIsExpanded","getCanExpand","stopPropagation"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Expanding.js","sources":["../../../src/features/Expanding.ts"],"sourcesContent":["import { MouseEvent, TouchEvent } from 'react'\nimport { RowModel } from '..'\nimport {\n Getter,\n OnChangeFn,\n PropGetterValue,\n ReactTable,\n Row,\n Updater,\n} from '../types'\nimport { functionalUpdate, makeStateUpdater, memo, propGetter } from '../utils'\n\nexport type ExpandedStateList = Record<string, boolean>\nexport type ExpandedState = true | Record<string, boolean>\nexport type ExpandedTableState = {\n expanded: ExpandedState\n}\n\nexport type ExpandedRow = {\n toggleExpanded: (expanded?: boolean) => void\n getIsExpanded: () => boolean\n getCanExpand: () => boolean\n getToggleExpandedProps: <TGetter extends Getter<ToggleExpandedProps>>(\n userProps?: TGetter\n ) => undefined | PropGetterValue<ToggleExpandedProps, TGetter>\n}\n\nexport type ExpandedOptions<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n> = {\n onExpandedChange?: OnChangeFn<ExpandedState>\n autoResetExpanded?: boolean\n enableExpanded?: boolean\n expandRowsFn?: (\n instance: ReactTable<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >,\n rowModel: RowModel<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n ) => RowModel<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n expandSubRows?: boolean\n defaultCanExpand?: boolean\n getIsRowExpanded?: (\n row: Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n ) => boolean\n getRowCanExpand?: (\n row: Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n ) => boolean\n paginateExpandedRows?: boolean\n}\n\nexport type ToggleExpandedProps = {\n title?: string\n onClick?: (event: MouseEvent | TouchEvent) => void\n}\n\nexport type ExpandedInstance<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n> = {\n _notifyExpandedReset: () => void\n setExpanded: (updater: Updater<ExpandedState>) => void\n toggleRowExpanded: (rowId: string, expanded?: boolean) => void\n toggleAllRowsExpanded: (expanded?: boolean) => void\n resetExpanded: () => void\n getRowCanExpand: (rowId: string) => boolean\n getIsRowExpanded: (rowId: string) => boolean\n getToggleExpandedProps: <TGetter extends Getter<ToggleExpandedProps>>(\n rowId: string,\n userProps?: TGetter\n ) => undefined | PropGetterValue<ToggleExpandedProps, TGetter>\n getToggleAllRowsExpandedProps: <TGetter extends Getter<ToggleExpandedProps>>(\n userProps?: TGetter\n ) => undefined | PropGetterValue<ToggleExpandedProps, TGetter>\n getIsAllRowsExpanded: () => boolean\n getExpandedDepth: () => number\n getExpandedRowModel: () => RowModel<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >\n getPreExpandedRows: () => Row<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getPreExpandedFlatRows: () => Row<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getPreExpandedRowsById: () => Record<\n string,\n Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n >\n getExpandedRows: () => Row<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getExpandedFlatRows: () => Row<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getExpandedRowsById: () => Record<\n string,\n Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n >\n}\n\n//\n\nexport function getInitialState(): ExpandedTableState {\n return {\n expanded: {},\n }\n}\n\nexport function getDefaultOptions<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n>(\n instance: ReactTable<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n): ExpandedOptions<TData, TValue, TFilterFns, TSortingFns, TAggregationFns> {\n return {\n onExpandedChange: makeStateUpdater('expanded', instance),\n autoResetExpanded: true,\n getIsRowExpanded: row => !!(row?.original as { expanded?: any }).expanded,\n expandSubRows: true,\n paginateExpandedRows: true,\n }\n}\n\nexport function getInstance<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n>(\n instance: ReactTable<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n): ExpandedInstance<TData, TValue, TFilterFns, TSortingFns, TAggregationFns> {\n let registered = false\n\n return {\n _notifyExpandedReset: () => {\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.autoResetExpanded\n ) {\n instance.resetExpanded()\n }\n },\n setExpanded: updater =>\n instance.options.onExpandedChange?.(\n updater,\n functionalUpdate(updater, instance.getState().expanded)\n ),\n toggleRowExpanded: (rowId, expanded) => {\n if (!rowId) return\n\n instance.setExpanded((old = {}) => {\n const exists = old === true ? true : !!old?.[rowId]\n\n let oldExpanded: ExpandedStateList = {}\n\n if (old === true) {\n Object.keys(instance.getRowsById()).forEach(rowId => {\n oldExpanded[rowId] = true\n })\n } else {\n oldExpanded = old\n }\n\n expanded = expanded ?? !exists\n\n if (!exists && expanded) {\n return {\n ...oldExpanded,\n [rowId]: true,\n }\n }\n\n if (exists && !expanded) {\n const { [rowId]: _, ...rest } = oldExpanded\n return rest\n }\n\n return old\n })\n },\n toggleAllRowsExpanded: expanded => {\n if (expanded ?? !instance.getIsAllRowsExpanded()) {\n instance.setExpanded(true)\n } else {\n instance.setExpanded({})\n }\n },\n resetExpanded: () => {\n instance.setExpanded(instance.options?.initialState?.expanded ?? {})\n },\n getIsRowExpanded: rowId => {\n const row = instance.getRow(rowId)\n\n if (!row) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(\n `[ReactTable] getIsRowExpanded: no row found with id ${rowId}`\n )\n }\n throw new Error()\n }\n\n const expanded = instance.getState().expanded\n\n return !!(\n instance.options.getIsRowExpanded?.(row) ??\n (expanded || expanded?.[rowId])\n )\n },\n getRowCanExpand: rowId => {\n const row = instance.getRow(rowId)\n\n if (!row) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(\n `[ReactTable] getRowCanExpand: no row found with id ${rowId}`\n )\n }\n throw new Error()\n }\n\n return (\n instance.options.getRowCanExpand?.(row) ??\n instance.options.enableExpanded ??\n instance.options.defaultCanExpand ??\n !!row.subRows?.length\n )\n },\n getToggleExpandedProps: (rowId, userProps) => {\n const row = instance.getRow(rowId)\n\n if (!row) {\n return\n }\n\n const canExpand = instance.getRowCanExpand(rowId)\n\n const initialProps: ToggleExpandedProps = {\n title: canExpand ? 'Toggle Expanded' : undefined,\n onClick: canExpand\n ? (e: MouseEvent | TouchEvent) => {\n e.persist()\n instance.toggleRowExpanded(rowId)\n }\n : undefined,\n }\n\n return propGetter(initialProps, userProps)\n },\n getToggleAllRowsExpandedProps: userProps => {\n const initialProps: ToggleExpandedProps = {\n title: 'Toggle All Expanded',\n onClick: (e: MouseEvent | TouchEvent) => {\n e.persist()\n instance.toggleAllRowsExpanded()\n },\n }\n\n return propGetter(initialProps, userProps)\n },\n getIsAllRowsExpanded: () => {\n const expanded = instance.getState().expanded\n\n // If expanded is true, save some cycles and return true\n if (expanded === true) {\n return true\n }\n\n // If any row is not expanded, return false\n if (\n Object.keys(instance.getRowsById()).some(\n id => !instance.getIsRowExpanded(id)\n )\n ) {\n return false\n }\n\n // They must all be expanded :shrug:\n return true\n },\n getExpandedDepth: () => {\n let maxDepth = 0\n\n const rowIds =\n instance.getState().expanded === true\n ? Object.keys(instance.getRowsById())\n : Object.keys(instance.getState().expanded)\n\n rowIds.forEach(id => {\n const splitId = id.split('.')\n maxDepth = Math.max(maxDepth, splitId.length)\n })\n\n return maxDepth\n },\n getExpandedRowModel: memo(\n () => [\n instance.getState().expanded,\n instance.getGroupedRowModel(),\n instance.options.expandRowsFn,\n instance.options.paginateExpandedRows,\n ],\n (expanded, rowModel, expandRowsFn, paginateExpandedRows) => {\n if (\n !expandRowsFn ||\n // Do not expand if rows are not included in pagination\n !paginateExpandedRows ||\n !Object.keys(expanded ?? {}).length\n ) {\n return rowModel\n }\n\n if (process.env.NODE_ENV !== 'production' && instance.options.debug)\n console.info('Expanding...')\n\n return expandRowsFn(instance, rowModel)\n },\n {\n key: 'getExpandedRowModel',\n debug: instance.options.debug,\n onChange: () => instance._notifyPageIndexReset(),\n }\n ),\n\n getPreExpandedRows: () => instance.getGroupedRowModel().rows,\n getPreExpandedFlatRows: () => instance.getGroupedRowModel().flatRows,\n getPreExpandedRowsById: () => instance.getGroupedRowModel().rowsById,\n getExpandedRows: () => instance.getExpandedRowModel().rows,\n getExpandedFlatRows: () => instance.getExpandedRowModel().flatRows,\n getExpandedRowsById: () => instance.getExpandedRowModel().rowsById,\n }\n}\n\nexport function createRow<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n>(\n row: Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>,\n instance: ReactTable<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n): ExpandedRow {\n return {\n toggleExpanded: expanded =>\n void instance.toggleRowExpanded(row.id, expanded),\n getIsExpanded: () => instance.getIsRowExpanded(row.id),\n getCanExpand: () => row.subRows && !!row.subRows.length,\n getToggleExpandedProps: userProps => {\n const initialProps: ToggleExpandedProps = {\n title: 'Toggle Row Expanded',\n onClick: (e: MouseEvent | TouchEvent) => {\n e.stopPropagation()\n instance.toggleRowExpanded(row.id)\n },\n }\n return propGetter(initialProps, userProps)\n },\n }\n}\n"],"names":["getInitialState","expanded","getDefaultOptions","instance","onExpandedChange","makeStateUpdater","autoResetExpanded","getIsRowExpanded","row","original","expandSubRows","paginateExpandedRows","getInstance","registered","_notifyExpandedReset","options","autoResetAll","resetExpanded","setExpanded","updater","functionalUpdate","getState","toggleRowExpanded","rowId","old","exists","oldExpanded","Object","keys","getRowsById","forEach","rest","toggleAllRowsExpanded","getIsAllRowsExpanded","initialState","getRow","process","env","NODE_ENV","console","warn","Error","getRowCanExpand","enableExpanded","defaultCanExpand","subRows","length","getToggleExpandedProps","userProps","canExpand","initialProps","title","undefined","onClick","e","persist","propGetter","getToggleAllRowsExpandedProps","some","id","getExpandedDepth","maxDepth","rowIds","splitId","split","Math","max","getExpandedRowModel","memo","getGroupedRowModel","expandRowsFn","rowModel","debug","info","key","onChange","_notifyPageIndexReset","getPreExpandedRows","rows","getPreExpandedFlatRows","flatRows","getPreExpandedRowsById","rowsById","getExpandedRows","getExpandedFlatRows","getExpandedRowsById","createRow","toggleExpanded","getIsExpanded","getCanExpand","stopPropagation"],"mappings":"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"}
|
|
@@ -80,7 +80,10 @@ function createColumn(column, instance) {
|
|
|
80
80
|
preFilteredUniqueValues: preFilteredUniqueValues,
|
|
81
81
|
preFilteredMinMaxValues: preFilteredMinMaxValues
|
|
82
82
|
};
|
|
83
|
-
},
|
|
83
|
+
}, {
|
|
84
|
+
key: 'column.getFacetInfo',
|
|
85
|
+
debug: instance.options.debug
|
|
86
|
+
});
|
|
84
87
|
return {
|
|
85
88
|
filterType: column.filterType,
|
|
86
89
|
getCanColumnFilter: function getCanColumnFilter() {
|
|
@@ -113,7 +116,30 @@ function createColumn(column, instance) {
|
|
|
113
116
|
};
|
|
114
117
|
}
|
|
115
118
|
function getInstance(instance) {
|
|
119
|
+
var registered = false;
|
|
116
120
|
return {
|
|
121
|
+
_notifyFiltersReset: function _notifyFiltersReset() {
|
|
122
|
+
if (!registered) {
|
|
123
|
+
registered = true;
|
|
124
|
+
return;
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
if (instance.options.autoResetAll === false) {
|
|
128
|
+
return;
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
if (instance.options.autoResetAll === true) {
|
|
132
|
+
instance.resetSorting();
|
|
133
|
+
} else {
|
|
134
|
+
if (instance.options.autoResetColumnFilters) {
|
|
135
|
+
instance.resetColumnFilters();
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
if (instance.options.autoResetGlobalFilter) {
|
|
139
|
+
instance.resetGlobalFilter();
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
},
|
|
117
143
|
getColumnAutoFilterFn: function getColumnAutoFilterFn(columnId) {
|
|
118
144
|
var firstRow = instance.getCoreFlatRows()[0];
|
|
119
145
|
var value = firstRow == null ? void 0 : firstRow.values[columnId];
|
|
@@ -294,7 +320,7 @@ function getInstance(instance) {
|
|
|
294
320
|
}
|
|
295
321
|
|
|
296
322
|
if (process.env.NODE_ENV !== 'production' && instance.options.debug) console.info('Column Filtering...');
|
|
297
|
-
return columnFiltersFn(instance,
|
|
323
|
+
return columnFiltersFn(instance, rowModel);
|
|
298
324
|
}(); // Now that each filtered column has it's partially filtered rows,
|
|
299
325
|
// lets assign the final filtered rows to all of the other columns
|
|
300
326
|
|
|
@@ -314,7 +340,24 @@ function getInstance(instance) {
|
|
|
314
340
|
};
|
|
315
341
|
});
|
|
316
342
|
return columnFilteredRowModel;
|
|
317
|
-
},
|
|
343
|
+
}, {
|
|
344
|
+
key: 'getColumnFilteredRowModel',
|
|
345
|
+
debug: instance.options.debug
|
|
346
|
+
}),
|
|
347
|
+
// These might be easier to remember than "column" filtered rows
|
|
348
|
+
getPreFilteredRowModel: function getPreFilteredRowModel() {
|
|
349
|
+
return instance.getCoreRowModel();
|
|
350
|
+
},
|
|
351
|
+
getPreFilteredRows: function getPreFilteredRows() {
|
|
352
|
+
return instance.getCoreRowModel().rows;
|
|
353
|
+
},
|
|
354
|
+
getPreFilteredFlatRows: function getPreFilteredFlatRows() {
|
|
355
|
+
return instance.getCoreRowModel().flatRows;
|
|
356
|
+
},
|
|
357
|
+
getPreFilteredRowsById: function getPreFilteredRowsById() {
|
|
358
|
+
return instance.getCoreRowModel().rowsById;
|
|
359
|
+
},
|
|
360
|
+
// Pre Column Filter
|
|
318
361
|
getPreColumnFilteredRows: function getPreColumnFilteredRows() {
|
|
319
362
|
return instance.getCoreRowModel().rows;
|
|
320
363
|
},
|
|
@@ -342,7 +385,7 @@ function getInstance(instance) {
|
|
|
342
385
|
}
|
|
343
386
|
|
|
344
387
|
if (process.env.NODE_ENV !== 'production' && instance.options.debug) console.info('Global Filtering...');
|
|
345
|
-
return globalFiltersFn(instance,
|
|
388
|
+
return globalFiltersFn(instance, columnFilteredRowModel);
|
|
346
389
|
}(); // Now that each filtered column has it's partially filtered rows,
|
|
347
390
|
// lets assign the final filtered rows to all of the other columns
|
|
348
391
|
|
|
@@ -362,7 +405,13 @@ function getInstance(instance) {
|
|
|
362
405
|
};
|
|
363
406
|
});
|
|
364
407
|
return globalFilteredRowModel;
|
|
365
|
-
},
|
|
408
|
+
}, {
|
|
409
|
+
key: 'getGlobalFilteredRowModel',
|
|
410
|
+
debug: instance.options.debug,
|
|
411
|
+
onChange: function onChange() {
|
|
412
|
+
return instance._notifySortingReset();
|
|
413
|
+
}
|
|
414
|
+
}),
|
|
366
415
|
getPreGlobalFilteredRows: function getPreGlobalFilteredRows() {
|
|
367
416
|
return instance.getColumnFilteredRowModel().rows;
|
|
368
417
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Filters.js","sources":["../../../src/features/Filters.ts"],"sourcesContent":["import { RowModel } from '..'\nimport { BuiltInFilterType, filterTypes } from '../filterTypes'\nimport { Column, OnChangeFn, ReactTable, Row, Updater } from '../types'\nimport { functionalUpdate, isFunction, makeStateUpdater, memo } from '../utils'\n\nexport type ColumnFilter = {\n id: string\n value: unknown\n}\n\nexport type ColumnFiltersState = ColumnFilter[]\n\nexport type FilterFn<TData, TValue, TFilterFns, TSortingFns, TAggregationFns> =\n {\n (\n rows: Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>[],\n columnIds: string[],\n filterValue: any\n ): any\n autoRemove?: ColumnFilterAutoRemoveTestFn<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >\n }\n\nexport type ColumnFilterAutoRemoveTestFn<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n> = (\n value: unknown,\n column?: Column<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n) => boolean\n\nexport type CustomFilterTypes<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n> = Record<\n string,\n FilterFn<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n>\n\nexport type FiltersTableState = {\n columnFilters: ColumnFiltersState\n globalFilter: any\n}\n\nexport type FilterType<TFilterFns> =\n | 'auto'\n | BuiltInFilterType\n | keyof TFilterFns\n | FilterFn<unknown, unknown, TFilterFns, any, any>\n\nexport type FiltersColumnDef<TFilterFns> = {\n filterType?: FilterType<TFilterFns>\n enableAllFilters?: boolean\n enableColumnFilter?: boolean\n enableGlobalFilter?: boolean\n defaultCanFilter?: boolean\n defaultCanColumnFilter?: boolean\n defaultCanGlobalFilter?: boolean\n}\n\nexport type FiltersColumn<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n> = {\n filterType: FilterType<TFilterFns>\n getCanColumnFilter: () => boolean\n getCanGlobalFilter: () => boolean\n getColumnFilterIndex: () => number\n getIsColumnFiltered: () => boolean\n getColumnFilterValue: () => unknown\n setColumnFilterValue: (value: any) => void\n getPreFilteredRows: () =>\n | Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>[]\n | undefined\n getPreFilteredUniqueValues: () => Map<any, number>\n getPreFilteredMinMaxValues: () => [any, any]\n}\n\nexport type FiltersOptions<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n> = {\n filterFromChildrenUp?: boolean\n filterTypes?: TFilterFns\n enableFilters?: boolean\n // Column\n onColumnFiltersChange?: OnChangeFn<ColumnFiltersState>\n autoResetColumnFilters?: boolean\n enableColumnFilters?: boolean\n columnFilterRowsFn?: (\n instance: ReactTable<any, any, any, any, any>,\n columnFilters: ColumnFiltersState,\n coreRowModel: RowModel<any, any, any, any, any>\n ) => RowModel<any, any, any, any, any>\n // Global\n globalFilterType?: FilterType<TFilterFns>\n onGlobalFilterChange?: OnChangeFn<any>\n enableGlobalFilters?: boolean\n autoResetGlobalFilter?: boolean\n enableGlobalFilter?: boolean\n globalFilterRowsFn?: (\n instance: ReactTable<any, any, any, any, any>,\n globalFilter: any,\n columnFilteredRowModel: RowModel<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >\n ) => RowModel<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n getColumnCanGlobalFilterFn?: (\n column: Column<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n ) => boolean\n}\n\nexport type FiltersInstance<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n> = {\n getColumnAutoFilterFn: (\n columnId: string\n ) => FilterFn<any, any, any, any, any> | undefined\n\n getColumnFilterFn: (\n columnId: string\n ) => FilterFn<any, any, any, any, any> | undefined\n\n setColumnFilters: (updater: Updater<ColumnFiltersState>) => void\n setColumnFilterValue: (columnId: string, value: any) => void\n resetColumnFilters: () => void\n getColumnCanColumnFilter: (columnId: string) => boolean\n getColumnCanGlobalFilterFn?: (\n column: Column<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n ) => boolean\n\n getColumnIsFiltered: (columnId: string) => boolean\n getColumnFilterValue: (columnId: string) => unknown\n getColumnFilterIndex: (columnId: string) => number\n getColumnFilteredRowModel: () => RowModel<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >\n getPreColumnFilteredRows: () => Row<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getPreColumnFilteredFlatRows: () => Row<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getPreColumnFilteredRowsById: () => Record<\n string,\n Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n >\n getColumnFilteredRows: () => Row<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getColumnFilteredFlatRows: () => Row<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getColumnFilteredRowsById: () => Record<\n string,\n Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n >\n\n // Global\n setGlobalFilter: (updater: Updater<any>) => void\n resetGlobalFilter: () => void\n getGlobalAutoFilterFn: () => FilterFn<any, any, any, any, any> | undefined\n getGlobalFilterFn: () => FilterFn<any, any, any, any, any> | undefined\n getColumnCanGlobalFilter: (columnId: string) => boolean\n getGlobalFilteredRowModel: () => RowModel<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >\n getPreGlobalFilteredRows: () => Row<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getPreGlobalFilteredFlatRows: () => Row<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getPreGlobalFilteredRowsById: () => Record<\n string,\n Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n >\n getGlobalFilteredRows: () => Row<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getGlobalFilteredFlatRows: () => Row<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getGlobalFilteredRowsById: () => Record<\n string,\n Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n >\n}\n\n//\n\nexport function getDefaultColumn<TFilterFns>(): FiltersColumnDef<TFilterFns> {\n return {\n filterType: 'auto',\n }\n}\n\nexport function getInitialState(): FiltersTableState {\n return {\n columnFilters: [],\n globalFilter: undefined,\n }\n}\n\nexport function getDefaultOptions<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n>(\n instance: ReactTable<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n): FiltersOptions<TData, TValue, TFilterFns, TSortingFns, TAggregationFns> {\n return {\n onColumnFiltersChange: makeStateUpdater('columnFilters', instance),\n onGlobalFilterChange: makeStateUpdater('globalFilter', instance),\n autoResetColumnFilters: true,\n filterFromChildrenUp: true,\n autoResetGlobalFilter: true,\n globalFilterType: 'auto',\n getColumnCanGlobalFilterFn: column => {\n const value = instance.getCoreFlatRows()[0]?.getAllCellsByColumnId()[\n column.id\n ]?.value\n\n return typeof value === 'string'\n },\n }\n}\n\nexport function createColumn<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n>(\n column: Column<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>,\n instance: ReactTable<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n): FiltersColumn<TData, TValue, TFilterFns, TSortingFns, TAggregationFns> {\n const getFacetInfo = memo(\n () => [column.getPreFilteredRows()],\n (rows = []) => {\n let preFilteredUniqueValues = new Map<any, number>()\n\n let preFilteredMinMaxValues: [any, any] = [\n rows[0]?.values[column.id] ?? null,\n rows[0]?.values[column.id] ?? null,\n ]\n\n for (let i = 0; i < rows.length; i++) {\n const value = rows[i]?.values[column.id]\n\n if (preFilteredUniqueValues.has(value)) {\n preFilteredUniqueValues.set(\n value,\n (preFilteredUniqueValues.get(value) ?? 0) + 1\n )\n } else {\n preFilteredUniqueValues.set(value, 1)\n }\n\n if (value < preFilteredMinMaxValues[0]) {\n preFilteredMinMaxValues[0] = value\n } else if (value > preFilteredMinMaxValues[1]) {\n preFilteredMinMaxValues[1] = value\n }\n }\n\n return {\n preFilteredUniqueValues,\n preFilteredMinMaxValues,\n }\n },\n 'column.getFacetInfo',\n instance.options.debug\n )\n\n return {\n filterType: column.filterType,\n getCanColumnFilter: () => instance.getColumnCanColumnFilter(column.id),\n getCanGlobalFilter: () => instance.getColumnCanGlobalFilter(column.id),\n getColumnFilterIndex: () => instance.getColumnFilterIndex(column.id),\n getIsColumnFiltered: () => instance.getColumnIsFiltered(column.id),\n getColumnFilterValue: () => instance.getColumnFilterValue(column.id),\n setColumnFilterValue: val => instance.setColumnFilterValue(column.id, val),\n getPreFilteredUniqueValues: () => getFacetInfo().preFilteredUniqueValues,\n getPreFilteredMinMaxValues: () => getFacetInfo().preFilteredMinMaxValues,\n getPreFilteredRows: () => undefined,\n }\n}\n\nexport function getInstance<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n>(\n instance: ReactTable<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n): FiltersInstance<TData, TValue, TFilterFns, TSortingFns, TAggregationFns> {\n return {\n getColumnAutoFilterFn: columnId => {\n const firstRow = instance.getCoreFlatRows()[0]\n\n const value = firstRow?.values[columnId]\n\n if (typeof value === 'string') {\n return filterTypes.includesString\n }\n\n if (typeof value === 'number') {\n return filterTypes.betweenNumberRange\n }\n\n if (value !== null && typeof value === 'object') {\n return filterTypes.equals\n }\n\n if (Array.isArray(value)) {\n return filterTypes.arrIncludes\n }\n\n return filterTypes.weakEquals\n },\n getGlobalAutoFilterFn: () => {\n return filterTypes.includesString\n },\n getColumnFilterFn: columnId => {\n const column = instance.getColumn(columnId)\n const userFilterTypes = instance.options.filterTypes\n\n if (!column) {\n throw new Error()\n }\n\n return isFunction(column.filterType)\n ? column.filterType\n : column.filterType === 'auto'\n ? instance.getColumnAutoFilterFn(columnId)\n : (userFilterTypes as Record<string, any>)?.[\n column.filterType as string\n ] ??\n (filterTypes[column.filterType as BuiltInFilterType] as FilterFn<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >)\n },\n\n getGlobalFilterFn: () => {\n const { filterTypes: userFilterTypes, globalFilterType } =\n instance.options\n\n return isFunction(globalFilterType)\n ? globalFilterType\n : globalFilterType === 'auto'\n ? instance.getGlobalAutoFilterFn()\n : (userFilterTypes as Record<string, any>)?.[\n globalFilterType as string\n ] ??\n (filterTypes[globalFilterType as BuiltInFilterType] as FilterFn<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >)\n },\n\n setColumnFilters: (updater: Updater<ColumnFiltersState>) => {\n const leafColumns = instance.getAllLeafColumns()\n\n const updateFn = (old: ColumnFiltersState) => {\n return functionalUpdate(updater, old)?.filter(filter => {\n const column = leafColumns.find(d => d.id === filter.id)\n\n if (column) {\n const filterFn = instance.getColumnFilterFn(column.id)\n\n if (shouldAutoRemoveFilter(filterFn, filter.value, column)) {\n return false\n }\n }\n\n return true\n })\n }\n\n instance.options.onColumnFiltersChange?.(\n updateFn,\n updateFn(instance.getState().columnFilters)\n )\n },\n\n setGlobalFilter: updater => {\n instance.options.onGlobalFilterChange?.(\n updater,\n functionalUpdate(updater, instance.getState().globalFilter)\n )\n },\n\n resetGlobalFilter: () => {\n instance.setGlobalFilter(undefined)\n },\n\n getColumnCanColumnFilter: columnId => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n throw new Error()\n }\n\n return (\n column.enableAllFilters ??\n column.enableColumnFilter ??\n instance.options.enableFilters ??\n instance.options.enableColumnFilters ??\n column.defaultCanFilter ??\n column.defaultCanColumnFilter ??\n !!column.accessorFn\n )\n },\n\n getColumnCanGlobalFilter: columnId => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n throw new Error()\n }\n\n return (\n ((instance.options.enableFilters ??\n instance.options.enableGlobalFilter ??\n column.enableAllFilters ??\n column.enableGlobalFilter ??\n column.defaultCanFilter ??\n column.defaultCanGlobalFilter ??\n !!column.accessorFn) &&\n instance.options.getColumnCanGlobalFilterFn?.(column)) ??\n true\n )\n },\n\n getColumnIsFiltered: columnId =>\n instance.getColumnFilterIndex(columnId) > -1,\n\n getColumnFilterValue: columnId =>\n instance.getState().columnFilters?.find(d => d.id === columnId)?.value,\n\n getColumnFilterIndex: columnId =>\n instance.getState().columnFilters?.findIndex(d => d.id === columnId) ??\n -1,\n\n setColumnFilterValue: (columnId, value) => {\n if (!columnId) return\n\n instance.setColumnFilters(old => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(\n `React-Table: Could not find a column with id: ${columnId}`\n )\n }\n throw new Error()\n }\n\n const filterFn = instance.getColumnFilterFn(column.id)\n const previousfilter = old?.find(d => d.id === columnId)\n\n const newFilter = functionalUpdate(\n value,\n previousfilter ? previousfilter.value : undefined\n )\n\n //\n if (\n shouldAutoRemoveFilter(\n filterFn as FilterFn<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >,\n newFilter,\n column\n )\n ) {\n return old?.filter(d => d.id !== columnId) ?? []\n }\n\n const newFilterObj = { id: columnId, value: newFilter }\n\n if (previousfilter) {\n return (\n old?.map(d => {\n if (d.id === columnId) {\n return newFilterObj\n }\n return d\n }) ?? []\n )\n }\n\n if (old?.length) {\n return [...old, newFilterObj]\n }\n\n return [newFilterObj]\n })\n },\n\n resetColumnFilters: () => {\n instance.setColumnFilters(\n instance.options?.initialState?.columnFilters ?? []\n )\n },\n\n getColumnFilteredRowModel: memo(\n () => [\n instance.getState().columnFilters,\n instance.getCoreRowModel(),\n instance.options.columnFilterRowsFn,\n ],\n (columnFilters, rowModel, columnFiltersFn) => {\n const columnFilteredRowModel = (() => {\n if (!columnFilters?.length || !columnFiltersFn) {\n return rowModel\n }\n\n if (process.env.NODE_ENV !== 'production' && instance.options.debug)\n console.info('Column Filtering...')\n\n return columnFiltersFn(instance as any, columnFilters, rowModel)\n })()\n\n // Now that each filtered column has it's partially filtered rows,\n // lets assign the final filtered rows to all of the other columns\n const nonFilteredColumns = instance\n .getAllLeafColumns()\n .filter(\n column =>\n !instance.getState().columnFilters?.find(d => d.id === column.id)\n )\n\n // This essentially enables faceted filter options to be built easily\n // using every column's preFilteredRows value\n\n nonFilteredColumns.forEach(column => {\n column.getPreFilteredRows = () => columnFilteredRowModel.rows\n })\n\n return columnFilteredRowModel\n },\n 'getColumnFilteredRowModel',\n instance.options.debug\n ),\n\n getPreColumnFilteredRows: () => instance.getCoreRowModel().rows,\n getPreColumnFilteredFlatRows: () => instance.getCoreRowModel().flatRows,\n getPreColumnFilteredRowsById: () => instance.getCoreRowModel().rowsById,\n getColumnFilteredRows: () => instance.getColumnFilteredRowModel().rows,\n getColumnFilteredFlatRows: () =>\n instance.getColumnFilteredRowModel().flatRows,\n getColumnFilteredRowsById: () =>\n instance.getColumnFilteredRowModel().rowsById,\n\n getGlobalFilteredRowModel: memo(\n () => [\n instance.getState().globalFilter,\n instance.getColumnFilteredRowModel(),\n instance.options.globalFilterRowsFn,\n ],\n (globalFilterValue, columnFilteredRowModel, globalFiltersFn) => {\n const globalFilteredRowModel = (() => {\n if (!globalFiltersFn || !globalFilterValue) {\n return columnFilteredRowModel\n }\n\n if (process.env.NODE_ENV !== 'production' && instance.options.debug)\n console.info('Global Filtering...')\n\n return globalFiltersFn(\n instance as ReactTable<any, any, any, any, any>,\n globalFilterValue,\n columnFilteredRowModel\n )\n })()\n\n // Now that each filtered column has it's partially filtered rows,\n // lets assign the final filtered rows to all of the other columns\n const nonFilteredColumns = instance\n .getAllLeafColumns()\n .filter(\n column =>\n !instance.getState().columnFilters?.find(d => d.id === column.id)\n )\n\n // This essentially enables faceted filter options to be built easily\n // using every column's preFilteredRows value\n\n nonFilteredColumns.forEach(column => {\n column.getPreFilteredRows = () => globalFilteredRowModel.rows\n })\n\n return globalFilteredRowModel\n },\n 'getGlobalFilteredRowModel',\n instance.options.debug\n ),\n\n getPreGlobalFilteredRows: () => instance.getColumnFilteredRowModel().rows,\n getPreGlobalFilteredFlatRows: () =>\n instance.getColumnFilteredRowModel().flatRows,\n getPreGlobalFilteredRowsById: () =>\n instance.getColumnFilteredRowModel().rowsById,\n getGlobalFilteredRows: () => instance.getGlobalFilteredRowModel().rows,\n getGlobalFilteredFlatRows: () =>\n instance.getGlobalFilteredRowModel().flatRows,\n getGlobalFilteredRowsById: () =>\n instance.getGlobalFilteredRowModel().rowsById,\n }\n}\n\nexport function shouldAutoRemoveFilter(\n filterFn?: FilterFn<any, any, any, any, any>,\n value?: any,\n column?: Column<any, any, any, any, any>\n) {\n return (\n (filterFn && filterFn.autoRemove\n ? filterFn.autoRemove(value, column)\n : false) ||\n typeof value === 'undefined' ||\n (typeof value === 'string' && !value)\n )\n}\n"],"names":["getDefaultColumn","filterType","getInitialState","columnFilters","globalFilter","undefined","getDefaultOptions","instance","onColumnFiltersChange","makeStateUpdater","onGlobalFilterChange","autoResetColumnFilters","filterFromChildrenUp","autoResetGlobalFilter","globalFilterType","getColumnCanGlobalFilterFn","column","value","getCoreFlatRows","getAllCellsByColumnId","id","createColumn","getFacetInfo","memo","getPreFilteredRows","rows","preFilteredUniqueValues","Map","preFilteredMinMaxValues","values","i","length","has","set","get","options","debug","getCanColumnFilter","getColumnCanColumnFilter","getCanGlobalFilter","getColumnCanGlobalFilter","getColumnFilterIndex","getIsColumnFiltered","getColumnIsFiltered","getColumnFilterValue","setColumnFilterValue","val","getPreFilteredUniqueValues","getPreFilteredMinMaxValues","getInstance","getColumnAutoFilterFn","columnId","firstRow","filterTypes","includesString","betweenNumberRange","equals","Array","isArray","arrIncludes","weakEquals","getGlobalAutoFilterFn","getColumnFilterFn","getColumn","userFilterTypes","Error","isFunction","getGlobalFilterFn","setColumnFilters","updater","leafColumns","getAllLeafColumns","updateFn","old","functionalUpdate","filter","find","d","filterFn","shouldAutoRemoveFilter","getState","setGlobalFilter","resetGlobalFilter","enableAllFilters","enableColumnFilter","enableFilters","enableColumnFilters","defaultCanFilter","defaultCanColumnFilter","accessorFn","enableGlobalFilter","defaultCanGlobalFilter","findIndex","process","env","NODE_ENV","console","warn","previousfilter","newFilter","newFilterObj","map","resetColumnFilters","initialState","getColumnFilteredRowModel","getCoreRowModel","columnFilterRowsFn","rowModel","columnFiltersFn","columnFilteredRowModel","info","nonFilteredColumns","forEach","getPreColumnFilteredRows","getPreColumnFilteredFlatRows","flatRows","getPreColumnFilteredRowsById","rowsById","getColumnFilteredRows","getColumnFilteredFlatRows","getColumnFilteredRowsById","getGlobalFilteredRowModel","globalFilterRowsFn","globalFilterValue","globalFiltersFn","globalFilteredRowModel","getPreGlobalFilteredRows","getPreGlobalFilteredFlatRows","getPreGlobalFilteredRowsById","getGlobalFilteredRows","getGlobalFilteredFlatRows","getGlobalFilteredRowsById","autoRemove"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Filters.js","sources":["../../../src/features/Filters.ts"],"sourcesContent":["import { RowModel } from '..'\nimport { BuiltInFilterType, filterTypes } from '../filterTypes'\nimport {\n Column,\n Listener,\n OnChangeFn,\n ReactTable,\n Row,\n Updater,\n} from '../types'\nimport { functionalUpdate, isFunction, makeStateUpdater, memo } from '../utils'\n\nexport type ColumnFilter = {\n id: string\n value: unknown\n}\n\nexport type ColumnFiltersState = ColumnFilter[]\n\nexport type FilterFn<TData, TValue, TFilterFns, TSortingFns, TAggregationFns> =\n {\n (\n rows: Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>[],\n columnIds: string[],\n filterValue: any\n ): any\n autoRemove?: ColumnFilterAutoRemoveTestFn<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >\n }\n\nexport type ColumnFilterAutoRemoveTestFn<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n> = (\n value: unknown,\n column?: Column<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n) => boolean\n\nexport type CustomFilterTypes<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n> = Record<\n string,\n FilterFn<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n>\n\nexport type FiltersTableState = {\n columnFilters: ColumnFiltersState\n globalFilter: any\n}\n\nexport type FilterType<TFilterFns> =\n | 'auto'\n | BuiltInFilterType\n | keyof TFilterFns\n | FilterFn<unknown, unknown, TFilterFns, any, any>\n\nexport type FiltersColumnDef<TFilterFns> = {\n filterType?: FilterType<TFilterFns>\n enableAllFilters?: boolean\n enableColumnFilter?: boolean\n enableGlobalFilter?: boolean\n defaultCanFilter?: boolean\n defaultCanColumnFilter?: boolean\n defaultCanGlobalFilter?: boolean\n}\n\nexport type FiltersColumn<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n> = {\n filterType: FilterType<TFilterFns>\n getCanColumnFilter: () => boolean\n getCanGlobalFilter: () => boolean\n getColumnFilterIndex: () => number\n getIsColumnFiltered: () => boolean\n getColumnFilterValue: () => unknown\n setColumnFilterValue: (value: any) => void\n getPreFilteredRows: () =>\n | Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>[]\n | undefined\n getPreFilteredUniqueValues: () => Map<any, number>\n getPreFilteredMinMaxValues: () => [any, any]\n}\n\nexport type FiltersOptions<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n> = {\n filterFromChildrenUp?: boolean\n filterTypes?: TFilterFns\n enableFilters?: boolean\n // Column\n onColumnFiltersChange?: OnChangeFn<ColumnFiltersState>\n autoResetColumnFilters?: boolean\n enableColumnFilters?: boolean\n columnFilterRowsFn?: (\n instance: ReactTable<any, any, any, any, any>,\n coreRowModel: RowModel<any, any, any, any, any>\n ) => RowModel<any, any, any, any, any>\n // Global\n globalFilterType?: FilterType<TFilterFns>\n onGlobalFilterChange?: OnChangeFn<any>\n enableGlobalFilters?: boolean\n autoResetGlobalFilter?: boolean\n enableGlobalFilter?: boolean\n globalFilterRowsFn?: (\n instance: ReactTable<any, any, any, any, any>,\n rowModel: RowModel<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n ) => RowModel<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n getColumnCanGlobalFilterFn?: (\n column: Column<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n ) => boolean\n}\n\nexport type FiltersInstance<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n> = {\n _notifyFiltersReset: () => void\n getColumnAutoFilterFn: (\n columnId: string\n ) => FilterFn<any, any, any, any, any> | undefined\n\n getColumnFilterFn: (\n columnId: string\n ) => FilterFn<any, any, any, any, any> | undefined\n\n setColumnFilters: (updater: Updater<ColumnFiltersState>) => void\n setColumnFilterValue: (columnId: string, value: any) => void\n resetColumnFilters: () => void\n getColumnCanColumnFilter: (columnId: string) => boolean\n getColumnCanGlobalFilterFn?: (\n column: Column<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n ) => boolean\n\n getColumnIsFiltered: (columnId: string) => boolean\n getColumnFilterValue: (columnId: string) => unknown\n getColumnFilterIndex: (columnId: string) => number\n getColumnFilteredRowModel: () => RowModel<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >\n getPreFilteredRowModel: () => RowModel<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >\n getPreFilteredRows: () => Row<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getPreFilteredFlatRows: () => Row<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getPreFilteredRowsById: () => Record<\n string,\n Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n >\n getPreColumnFilteredRows: () => Row<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getPreColumnFilteredFlatRows: () => Row<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getPreColumnFilteredRowsById: () => Record<\n string,\n Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n >\n getColumnFilteredRows: () => Row<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getColumnFilteredFlatRows: () => Row<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getColumnFilteredRowsById: () => Record<\n string,\n Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n >\n\n // Global\n setGlobalFilter: (updater: Updater<any>) => void\n resetGlobalFilter: () => void\n getGlobalAutoFilterFn: () => FilterFn<any, any, any, any, any> | undefined\n getGlobalFilterFn: () => FilterFn<any, any, any, any, any> | undefined\n getColumnCanGlobalFilter: (columnId: string) => boolean\n getGlobalFilteredRowModel: () => RowModel<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >\n getPreGlobalFilteredRows: () => Row<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getPreGlobalFilteredFlatRows: () => Row<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getPreGlobalFilteredRowsById: () => Record<\n string,\n Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n >\n getGlobalFilteredRows: () => Row<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getGlobalFilteredFlatRows: () => Row<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getGlobalFilteredRowsById: () => Record<\n string,\n Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n >\n}\n\n//\n\nexport function getDefaultColumn<TFilterFns>(): FiltersColumnDef<TFilterFns> {\n return {\n filterType: 'auto',\n }\n}\n\nexport function getInitialState(): FiltersTableState {\n return {\n columnFilters: [],\n globalFilter: undefined,\n }\n}\n\nexport function getDefaultOptions<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n>(\n instance: ReactTable<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n): FiltersOptions<TData, TValue, TFilterFns, TSortingFns, TAggregationFns> {\n return {\n onColumnFiltersChange: makeStateUpdater('columnFilters', instance),\n onGlobalFilterChange: makeStateUpdater('globalFilter', instance),\n autoResetColumnFilters: true,\n filterFromChildrenUp: true,\n autoResetGlobalFilter: true,\n globalFilterType: 'auto',\n getColumnCanGlobalFilterFn: column => {\n const value = instance.getCoreFlatRows()[0]?.getAllCellsByColumnId()[\n column.id\n ]?.value\n\n return typeof value === 'string'\n },\n }\n}\n\nexport function createColumn<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n>(\n column: Column<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>,\n instance: ReactTable<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n): FiltersColumn<TData, TValue, TFilterFns, TSortingFns, TAggregationFns> {\n const getFacetInfo = memo(\n () => [column.getPreFilteredRows()],\n (rows = []) => {\n let preFilteredUniqueValues = new Map<any, number>()\n\n let preFilteredMinMaxValues: [any, any] = [\n rows[0]?.values[column.id] ?? null,\n rows[0]?.values[column.id] ?? null,\n ]\n\n for (let i = 0; i < rows.length; i++) {\n const value = rows[i]?.values[column.id]\n\n if (preFilteredUniqueValues.has(value)) {\n preFilteredUniqueValues.set(\n value,\n (preFilteredUniqueValues.get(value) ?? 0) + 1\n )\n } else {\n preFilteredUniqueValues.set(value, 1)\n }\n\n if (value < preFilteredMinMaxValues[0]) {\n preFilteredMinMaxValues[0] = value\n } else if (value > preFilteredMinMaxValues[1]) {\n preFilteredMinMaxValues[1] = value\n }\n }\n\n return {\n preFilteredUniqueValues,\n preFilteredMinMaxValues,\n }\n },\n { key: 'column.getFacetInfo', debug: instance.options.debug }\n )\n\n return {\n filterType: column.filterType,\n getCanColumnFilter: () => instance.getColumnCanColumnFilter(column.id),\n getCanGlobalFilter: () => instance.getColumnCanGlobalFilter(column.id),\n getColumnFilterIndex: () => instance.getColumnFilterIndex(column.id),\n getIsColumnFiltered: () => instance.getColumnIsFiltered(column.id),\n getColumnFilterValue: () => instance.getColumnFilterValue(column.id),\n setColumnFilterValue: val => instance.setColumnFilterValue(column.id, val),\n getPreFilteredUniqueValues: () => getFacetInfo().preFilteredUniqueValues,\n getPreFilteredMinMaxValues: () => getFacetInfo().preFilteredMinMaxValues,\n getPreFilteredRows: () => undefined,\n }\n}\n\nexport function getInstance<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n>(\n instance: ReactTable<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n): FiltersInstance<TData, TValue, TFilterFns, TSortingFns, TAggregationFns> {\n let registered = false\n\n return {\n _notifyFiltersReset: () => {\n if (!registered) {\n registered = true\n return\n }\n\n if (instance.options.autoResetAll === false) {\n return\n }\n\n if (instance.options.autoResetAll === true) {\n instance.resetSorting()\n } else {\n if (instance.options.autoResetColumnFilters) {\n instance.resetColumnFilters()\n }\n if (instance.options.autoResetGlobalFilter) {\n instance.resetGlobalFilter()\n }\n }\n },\n getColumnAutoFilterFn: columnId => {\n const firstRow = instance.getCoreFlatRows()[0]\n\n const value = firstRow?.values[columnId]\n\n if (typeof value === 'string') {\n return filterTypes.includesString\n }\n\n if (typeof value === 'number') {\n return filterTypes.betweenNumberRange\n }\n\n if (value !== null && typeof value === 'object') {\n return filterTypes.equals\n }\n\n if (Array.isArray(value)) {\n return filterTypes.arrIncludes\n }\n\n return filterTypes.weakEquals\n },\n getGlobalAutoFilterFn: () => {\n return filterTypes.includesString\n },\n getColumnFilterFn: columnId => {\n const column = instance.getColumn(columnId)\n const userFilterTypes = instance.options.filterTypes\n\n if (!column) {\n throw new Error()\n }\n\n return isFunction(column.filterType)\n ? column.filterType\n : column.filterType === 'auto'\n ? instance.getColumnAutoFilterFn(columnId)\n : (userFilterTypes as Record<string, any>)?.[\n column.filterType as string\n ] ??\n (filterTypes[column.filterType as BuiltInFilterType] as FilterFn<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >)\n },\n\n getGlobalFilterFn: () => {\n const { filterTypes: userFilterTypes, globalFilterType } =\n instance.options\n\n return isFunction(globalFilterType)\n ? globalFilterType\n : globalFilterType === 'auto'\n ? instance.getGlobalAutoFilterFn()\n : (userFilterTypes as Record<string, any>)?.[\n globalFilterType as string\n ] ??\n (filterTypes[globalFilterType as BuiltInFilterType] as FilterFn<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >)\n },\n\n setColumnFilters: (updater: Updater<ColumnFiltersState>) => {\n const leafColumns = instance.getAllLeafColumns()\n\n const updateFn = (old: ColumnFiltersState) => {\n return functionalUpdate(updater, old)?.filter(filter => {\n const column = leafColumns.find(d => d.id === filter.id)\n\n if (column) {\n const filterFn = instance.getColumnFilterFn(column.id)\n\n if (shouldAutoRemoveFilter(filterFn, filter.value, column)) {\n return false\n }\n }\n\n return true\n })\n }\n\n instance.options.onColumnFiltersChange?.(\n updateFn,\n updateFn(instance.getState().columnFilters)\n )\n },\n\n setGlobalFilter: updater => {\n instance.options.onGlobalFilterChange?.(\n updater,\n functionalUpdate(updater, instance.getState().globalFilter)\n )\n },\n\n resetGlobalFilter: () => {\n instance.setGlobalFilter(undefined)\n },\n\n getColumnCanColumnFilter: columnId => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n throw new Error()\n }\n\n return (\n column.enableAllFilters ??\n column.enableColumnFilter ??\n instance.options.enableFilters ??\n instance.options.enableColumnFilters ??\n column.defaultCanFilter ??\n column.defaultCanColumnFilter ??\n !!column.accessorFn\n )\n },\n\n getColumnCanGlobalFilter: columnId => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n throw new Error()\n }\n\n return (\n ((instance.options.enableFilters ??\n instance.options.enableGlobalFilter ??\n column.enableAllFilters ??\n column.enableGlobalFilter ??\n column.defaultCanFilter ??\n column.defaultCanGlobalFilter ??\n !!column.accessorFn) &&\n instance.options.getColumnCanGlobalFilterFn?.(column)) ??\n true\n )\n },\n\n getColumnIsFiltered: columnId =>\n instance.getColumnFilterIndex(columnId) > -1,\n\n getColumnFilterValue: columnId =>\n instance.getState().columnFilters?.find(d => d.id === columnId)?.value,\n\n getColumnFilterIndex: columnId =>\n instance.getState().columnFilters?.findIndex(d => d.id === columnId) ??\n -1,\n\n setColumnFilterValue: (columnId, value) => {\n if (!columnId) return\n\n instance.setColumnFilters(old => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(\n `React-Table: Could not find a column with id: ${columnId}`\n )\n }\n throw new Error()\n }\n\n const filterFn = instance.getColumnFilterFn(column.id)\n const previousfilter = old?.find(d => d.id === columnId)\n\n const newFilter = functionalUpdate(\n value,\n previousfilter ? previousfilter.value : undefined\n )\n\n //\n if (\n shouldAutoRemoveFilter(\n filterFn as FilterFn<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >,\n newFilter,\n column\n )\n ) {\n return old?.filter(d => d.id !== columnId) ?? []\n }\n\n const newFilterObj = { id: columnId, value: newFilter }\n\n if (previousfilter) {\n return (\n old?.map(d => {\n if (d.id === columnId) {\n return newFilterObj\n }\n return d\n }) ?? []\n )\n }\n\n if (old?.length) {\n return [...old, newFilterObj]\n }\n\n return [newFilterObj]\n })\n },\n\n resetColumnFilters: () => {\n instance.setColumnFilters(\n instance.options?.initialState?.columnFilters ?? []\n )\n },\n\n getColumnFilteredRowModel: memo(\n () => [\n instance.getState().columnFilters,\n instance.getCoreRowModel(),\n instance.options.columnFilterRowsFn,\n ],\n (columnFilters, rowModel, columnFiltersFn) => {\n const columnFilteredRowModel = (() => {\n if (!columnFilters?.length || !columnFiltersFn) {\n return rowModel\n }\n\n if (process.env.NODE_ENV !== 'production' && instance.options.debug)\n console.info('Column Filtering...')\n\n return columnFiltersFn(instance as any, rowModel)\n })()\n\n // Now that each filtered column has it's partially filtered rows,\n // lets assign the final filtered rows to all of the other columns\n const nonFilteredColumns = instance\n .getAllLeafColumns()\n .filter(\n column =>\n !instance.getState().columnFilters?.find(d => d.id === column.id)\n )\n\n // This essentially enables faceted filter options to be built easily\n // using every column's preFilteredRows value\n\n nonFilteredColumns.forEach(column => {\n column.getPreFilteredRows = () => columnFilteredRowModel.rows\n })\n\n return columnFilteredRowModel\n },\n { key: 'getColumnFilteredRowModel', debug: instance.options.debug }\n ),\n\n // These might be easier to remember than \"column\" filtered rows\n getPreFilteredRowModel: () => instance.getCoreRowModel(),\n getPreFilteredRows: () => instance.getCoreRowModel().rows,\n getPreFilteredFlatRows: () => instance.getCoreRowModel().flatRows,\n getPreFilteredRowsById: () => instance.getCoreRowModel().rowsById,\n\n // Pre Column Filter\n getPreColumnFilteredRows: () => instance.getCoreRowModel().rows,\n getPreColumnFilteredFlatRows: () => instance.getCoreRowModel().flatRows,\n getPreColumnFilteredRowsById: () => instance.getCoreRowModel().rowsById,\n getColumnFilteredRows: () => instance.getColumnFilteredRowModel().rows,\n\n getColumnFilteredFlatRows: () =>\n instance.getColumnFilteredRowModel().flatRows,\n getColumnFilteredRowsById: () =>\n instance.getColumnFilteredRowModel().rowsById,\n getGlobalFilteredRowModel: memo(\n () => [\n instance.getState().globalFilter,\n instance.getColumnFilteredRowModel(),\n instance.options.globalFilterRowsFn,\n ],\n (globalFilterValue, columnFilteredRowModel, globalFiltersFn) => {\n const globalFilteredRowModel = (() => {\n if (!globalFiltersFn || !globalFilterValue) {\n return columnFilteredRowModel\n }\n\n if (process.env.NODE_ENV !== 'production' && instance.options.debug)\n console.info('Global Filtering...')\n\n return globalFiltersFn(\n instance as ReactTable<any, any, any, any, any>,\n columnFilteredRowModel\n )\n })()\n\n // Now that each filtered column has it's partially filtered rows,\n // lets assign the final filtered rows to all of the other columns\n const nonFilteredColumns = instance\n .getAllLeafColumns()\n .filter(\n column =>\n !instance.getState().columnFilters?.find(d => d.id === column.id)\n )\n\n // This essentially enables faceted filter options to be built easily\n // using every column's preFilteredRows value\n\n nonFilteredColumns.forEach(column => {\n column.getPreFilteredRows = () => globalFilteredRowModel.rows\n })\n\n return globalFilteredRowModel\n },\n {\n key: 'getGlobalFilteredRowModel',\n debug: instance.options.debug,\n onChange: () => instance._notifySortingReset(),\n }\n ),\n\n getPreGlobalFilteredRows: () => instance.getColumnFilteredRowModel().rows,\n getPreGlobalFilteredFlatRows: () =>\n instance.getColumnFilteredRowModel().flatRows,\n getPreGlobalFilteredRowsById: () =>\n instance.getColumnFilteredRowModel().rowsById,\n getGlobalFilteredRows: () => instance.getGlobalFilteredRowModel().rows,\n getGlobalFilteredFlatRows: () =>\n instance.getGlobalFilteredRowModel().flatRows,\n getGlobalFilteredRowsById: () =>\n instance.getGlobalFilteredRowModel().rowsById,\n }\n}\n\nexport function shouldAutoRemoveFilter(\n filterFn?: FilterFn<any, any, any, any, any>,\n value?: any,\n column?: Column<any, any, any, any, any>\n) {\n return (\n (filterFn && filterFn.autoRemove\n ? filterFn.autoRemove(value, column)\n : false) ||\n typeof value === 'undefined' ||\n (typeof value === 'string' && !value)\n )\n}\n"],"names":["getDefaultColumn","filterType","getInitialState","columnFilters","globalFilter","undefined","getDefaultOptions","instance","onColumnFiltersChange","makeStateUpdater","onGlobalFilterChange","autoResetColumnFilters","filterFromChildrenUp","autoResetGlobalFilter","globalFilterType","getColumnCanGlobalFilterFn","column","value","getCoreFlatRows","getAllCellsByColumnId","id","createColumn","getFacetInfo","memo","getPreFilteredRows","rows","preFilteredUniqueValues","Map","preFilteredMinMaxValues","values","i","length","has","set","get","key","debug","options","getCanColumnFilter","getColumnCanColumnFilter","getCanGlobalFilter","getColumnCanGlobalFilter","getColumnFilterIndex","getIsColumnFiltered","getColumnIsFiltered","getColumnFilterValue","setColumnFilterValue","val","getPreFilteredUniqueValues","getPreFilteredMinMaxValues","getInstance","registered","_notifyFiltersReset","autoResetAll","resetSorting","resetColumnFilters","resetGlobalFilter","getColumnAutoFilterFn","columnId","firstRow","filterTypes","includesString","betweenNumberRange","equals","Array","isArray","arrIncludes","weakEquals","getGlobalAutoFilterFn","getColumnFilterFn","getColumn","userFilterTypes","Error","isFunction","getGlobalFilterFn","setColumnFilters","updater","leafColumns","getAllLeafColumns","updateFn","old","functionalUpdate","filter","find","d","filterFn","shouldAutoRemoveFilter","getState","setGlobalFilter","enableAllFilters","enableColumnFilter","enableFilters","enableColumnFilters","defaultCanFilter","defaultCanColumnFilter","accessorFn","enableGlobalFilter","defaultCanGlobalFilter","findIndex","process","env","NODE_ENV","console","warn","previousfilter","newFilter","newFilterObj","map","initialState","getColumnFilteredRowModel","getCoreRowModel","columnFilterRowsFn","rowModel","columnFiltersFn","columnFilteredRowModel","info","nonFilteredColumns","forEach","getPreFilteredRowModel","getPreFilteredFlatRows","flatRows","getPreFilteredRowsById","rowsById","getPreColumnFilteredRows","getPreColumnFilteredFlatRows","getPreColumnFilteredRowsById","getColumnFilteredRows","getColumnFilteredFlatRows","getColumnFilteredRowsById","getGlobalFilteredRowModel","globalFilterRowsFn","globalFilterValue","globalFiltersFn","globalFilteredRowModel","onChange","_notifySortingReset","getPreGlobalFilteredRows","getPreGlobalFilteredFlatRows","getPreGlobalFilteredRowsById","getGlobalFilteredRows","getGlobalFilteredFlatRows","getGlobalFilteredRowsById","autoRemove"],"mappings":"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"}
|
|
@@ -54,7 +54,22 @@ function createColumn(column, instance) {
|
|
|
54
54
|
};
|
|
55
55
|
}
|
|
56
56
|
function getInstance(instance) {
|
|
57
|
+
var registered = false;
|
|
57
58
|
return {
|
|
59
|
+
_notifyGroupingReset: function _notifyGroupingReset() {
|
|
60
|
+
if (!registered) {
|
|
61
|
+
registered = true;
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
if (instance.options.autoResetAll === false) {
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
if (instance.options.autoResetAll === true || instance.options.autoResetGrouping) {
|
|
70
|
+
instance.resetGrouping();
|
|
71
|
+
}
|
|
72
|
+
},
|
|
58
73
|
getColumnAutoAggregationFn: function getColumnAutoAggregationFn(columnId) {
|
|
59
74
|
var firstRow = instance.getCoreFlatRows()[0];
|
|
60
75
|
var value = firstRow == null ? void 0 : firstRow.values[columnId];
|
|
@@ -152,8 +167,14 @@ function getInstance(instance) {
|
|
|
152
167
|
}
|
|
153
168
|
|
|
154
169
|
if (process.env.NODE_ENV !== 'production' && instance.options.debug) console.info('Grouping...');
|
|
155
|
-
return groupRowsFn(instance,
|
|
156
|
-
},
|
|
170
|
+
return groupRowsFn(instance, rowModel);
|
|
171
|
+
}, {
|
|
172
|
+
key: 'getGroupedRowModel',
|
|
173
|
+
debug: instance.options.debug,
|
|
174
|
+
onChange: function onChange() {
|
|
175
|
+
return instance._notifyExpandedReset();
|
|
176
|
+
}
|
|
177
|
+
}),
|
|
157
178
|
getPreGroupedRows: function getPreGroupedRows() {
|
|
158
179
|
return instance.getSortedRowModel().rows;
|
|
159
180
|
},
|