@tanstack/table-core 8.7.9 → 8.8.0
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/lib/aggregationFns.js.map +1 -1
- package/build/lib/columnHelper.js.map +1 -1
- package/build/lib/core/cell.js.map +1 -1
- package/build/lib/core/column.js.map +1 -1
- package/build/lib/core/headers.js.map +1 -1
- package/build/lib/core/row.d.ts +2 -1
- package/build/lib/core/row.js +2 -1
- package/build/lib/core/row.js.map +1 -1
- package/build/lib/core/table.js.map +1 -1
- package/build/lib/features/ColumnSizing.js.map +1 -1
- package/build/lib/features/Expanding.js.map +1 -1
- package/build/lib/features/Filters.js.map +1 -1
- package/build/lib/features/Grouping.js.map +1 -1
- package/build/lib/features/Ordering.js.map +1 -1
- package/build/lib/features/Pagination.js.map +1 -1
- package/build/lib/features/Pinning.js.map +1 -1
- package/build/lib/features/RowSelection.js.map +1 -1
- package/build/lib/features/Sorting.js.map +1 -1
- package/build/lib/features/Visibility.js.map +1 -1
- package/build/lib/filterFns.js.map +1 -1
- package/build/lib/index.esm.js +15 -14
- package/build/lib/index.esm.js.map +1 -1
- package/build/lib/index.mjs +15 -14
- package/build/lib/index.mjs.map +1 -1
- package/build/lib/sortingFns.js.map +1 -1
- package/build/lib/utils/filterRowsUtils.js +6 -6
- package/build/lib/utils/filterRowsUtils.js.map +1 -1
- package/build/lib/utils/getCoreRowModel.js +2 -2
- package/build/lib/utils/getCoreRowModel.js.map +1 -1
- package/build/lib/utils/getExpandedRowModel.js.map +1 -1
- package/build/lib/utils/getFacetedMinMaxValues.js.map +1 -1
- package/build/lib/utils/getFacetedRowModel.js.map +1 -1
- package/build/lib/utils/getFacetedUniqueValues.js.map +1 -1
- package/build/lib/utils/getFilteredRowModel.js.map +1 -1
- package/build/lib/utils/getGroupedRowModel.js +5 -5
- package/build/lib/utils/getGroupedRowModel.js.map +1 -1
- package/build/lib/utils/getPaginationRowModel.js.map +1 -1
- package/build/lib/utils/getSortedRowModel.js.map +1 -1
- package/build/lib/utils.js.map +1 -1
- package/build/umd/index.development.js +15 -14
- 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/row.ts +4 -1
- package/src/utils/filterRowsUtils.ts +18 -6
- package/src/utils/getCoreRowModel.ts +5 -3
- package/src/utils/getGroupedRowModel.ts +12 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ColumnSizing.js","sources":["../../../src/features/ColumnSizing.ts"],"sourcesContent":["import { TableFeature } from '../core/table'\nimport { RowData, Column, Header, OnChangeFn, Table, Updater } from '../types'\nimport { makeStateUpdater } from '../utils'\nimport { ColumnPinningPosition } from './Pinning'\n\n//\n\nexport interface ColumnSizingTableState {\n columnSizing: ColumnSizingState\n columnSizingInfo: ColumnSizingInfoState\n}\n\nexport type ColumnSizingState = Record<string, number>\n\nexport interface 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 ColumnResizeMode = 'onChange' | 'onEnd'\n\nexport interface ColumnSizingOptions {\n enableColumnResizing?: boolean\n columnResizeMode?: ColumnResizeMode\n onColumnSizingChange?: OnChangeFn<ColumnSizingState>\n onColumnSizingInfoChange?: OnChangeFn<ColumnSizingInfoState>\n}\n\nexport interface ColumnSizingDefaultOptions {\n columnResizeMode: ColumnResizeMode\n onColumnSizingChange: OnChangeFn<ColumnSizingState>\n onColumnSizingInfoChange: OnChangeFn<ColumnSizingInfoState>\n}\n\nexport interface ColumnSizingInstance {\n setColumnSizing: (updater: Updater<ColumnSizingState>) => void\n setColumnSizingInfo: (updater: Updater<ColumnSizingInfoState>) => void\n resetColumnSizing: (defaultState?: boolean) => void\n resetHeaderSizeInfo: (defaultState?: boolean) => void\n getTotalSize: () => number\n getLeftTotalSize: () => number\n getCenterTotalSize: () => number\n getRightTotalSize: () => number\n}\n\nexport interface ColumnSizingColumnDef {\n enableResizing?: boolean\n size?: number\n minSize?: number\n maxSize?: number\n}\n\nexport interface ColumnSizingColumn {\n getSize: () => number\n getStart: (position?: ColumnPinningPosition) => number\n getCanResize: () => boolean\n getIsResizing: () => boolean\n resetSize: () => void\n}\n\nexport interface ColumnSizingHeader {\n getSize: () => number\n getStart: (position?: ColumnPinningPosition) => number\n getResizeHandler: () => (event: unknown) => void\n}\n\n//\n\nexport const defaultColumnSizing = {\n size: 150,\n minSize: 20,\n maxSize: Number.MAX_SAFE_INTEGER,\n}\n\nconst getDefaultColumnSizingInfoState = (): ColumnSizingInfoState => ({\n startOffset: null,\n startSize: null,\n deltaOffset: null,\n deltaPercentage: null,\n isResizingColumn: false,\n columnSizingStart: [],\n})\n\nexport const ColumnSizing: TableFeature = {\n getDefaultColumnDef: (): ColumnSizingColumnDef => {\n return defaultColumnSizing\n },\n getInitialState: (state): ColumnSizingTableState => {\n return {\n columnSizing: {},\n columnSizingInfo: getDefaultColumnSizingInfoState(),\n ...state,\n }\n },\n\n getDefaultOptions: <TData extends RowData>(\n table: Table<TData>\n ): ColumnSizingDefaultOptions => {\n return {\n columnResizeMode: 'onEnd',\n onColumnSizingChange: makeStateUpdater('columnSizing', table),\n onColumnSizingInfoChange: makeStateUpdater('columnSizingInfo', table),\n }\n },\n\n createColumn: <TData extends RowData, TValue>(\n column: Column<TData, TValue>,\n table: Table<TData>\n ): ColumnSizingColumn => {\n return {\n getSize: () => {\n const columnSize = table.getState().columnSizing[column.id]\n\n return Math.min(\n Math.max(\n column.columnDef.minSize ?? defaultColumnSizing.minSize,\n columnSize ?? column.columnDef.size ?? defaultColumnSizing.size\n ),\n column.columnDef.maxSize ?? defaultColumnSizing.maxSize\n )\n },\n getStart: position => {\n const columns = !position\n ? table.getVisibleLeafColumns()\n : position === 'left'\n ? table.getLeftVisibleLeafColumns()\n : table.getRightVisibleLeafColumns()\n\n const index = columns.findIndex(d => d.id === column.id)\n\n if (index > 0) {\n const prevSiblingColumn = columns[index - 1]!\n\n return (\n prevSiblingColumn.getStart(position) + prevSiblingColumn.getSize()\n )\n }\n\n return 0\n },\n resetSize: () => {\n table.setColumnSizing(({ [column.id]: _, ...rest }) => {\n return rest\n })\n },\n getCanResize: () => {\n return (\n (column.columnDef.enableResizing ?? true) &&\n (table.options.enableColumnResizing ?? true)\n )\n },\n getIsResizing: () => {\n return table.getState().columnSizingInfo.isResizingColumn === column.id\n },\n }\n },\n\n createHeader: <TData extends RowData, TValue>(\n header: Header<TData, TValue>,\n table: Table<TData>\n ): ColumnSizingHeader => {\n return {\n getSize: () => {\n let sum = 0\n\n const recurse = (header: Header<TData, TValue>) => {\n if (header.subHeaders.length) {\n header.subHeaders.forEach(recurse)\n } else {\n sum += header.column.getSize() ?? 0\n }\n }\n\n recurse(header)\n\n return sum\n },\n getStart: () => {\n if (header.index > 0) {\n const prevSiblingHeader =\n header.headerGroup.headers[header.index - 1]!\n return prevSiblingHeader.getStart() + prevSiblingHeader.getSize()\n }\n\n return 0\n },\n getResizeHandler: () => {\n const column = table.getColumn(header.column.id)\n const canResize = column?.getCanResize()\n\n return (e: unknown) => {\n if (!column || !canResize) {\n return\n }\n\n ;(e as any).persist?.()\n\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 startSize = header.getSize()\n\n const columnSizingStart: [string, number][] = header\n ? header\n .getLeafHeaders()\n .map(d => [d.column.id, d.column.getSize()])\n : [[column.id, column.getSize()]]\n\n const clientX = isTouchStartEvent(e)\n ? Math.round(e.touches[0]!.clientX)\n : (e as MouseEvent).clientX\n\n const newColumnSizing: ColumnSizingState = {}\n\n const updateOffset = (\n eventType: 'move' | 'end',\n clientXPos?: number\n ) => {\n if (typeof clientXPos !== 'number') {\n return\n }\n\n table.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, headerSize]) => {\n newColumnSizing[columnId] =\n Math.round(\n Math.max(headerSize + headerSize * deltaPercentage, 0) * 100\n ) / 100\n })\n\n return {\n ...old,\n deltaOffset,\n deltaPercentage,\n }\n })\n\n if (\n table.options.columnResizeMode === 'onChange' ||\n eventType === 'end'\n ) {\n table.setColumnSizing(old => ({\n ...old,\n ...newColumnSizing,\n }))\n }\n }\n\n const onMove = (clientXPos?: number) =>\n updateOffset('move', clientXPos)\n\n const onEnd = (clientXPos?: number) => {\n updateOffset('end', clientXPos)\n\n table.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 table.setColumnSizingInfo(old => ({\n ...old,\n startOffset: clientX,\n startSize,\n deltaOffset: 0,\n deltaPercentage: 0,\n columnSizingStart,\n isResizingColumn: column.id,\n }))\n }\n },\n }\n },\n\n createTable: <TData extends RowData>(\n table: Table<TData>\n ): ColumnSizingInstance => {\n return {\n setColumnSizing: updater => table.options.onColumnSizingChange?.(updater),\n setColumnSizingInfo: updater =>\n table.options.onColumnSizingInfoChange?.(updater),\n resetColumnSizing: defaultState => {\n table.setColumnSizing(\n defaultState ? {} : table.initialState.columnSizing ?? {}\n )\n },\n resetHeaderSizeInfo: defaultState => {\n table.setColumnSizingInfo(\n defaultState\n ? getDefaultColumnSizingInfoState()\n : table.initialState.columnSizingInfo ??\n getDefaultColumnSizingInfoState()\n )\n },\n getTotalSize: () =>\n table.getHeaderGroups()[0]?.headers.reduce((sum, header) => {\n return sum + header.getSize()\n }, 0) ?? 0,\n getLeftTotalSize: () =>\n table.getLeftHeaderGroups()[0]?.headers.reduce((sum, header) => {\n return sum + header.getSize()\n }, 0) ?? 0,\n getCenterTotalSize: () =>\n table.getCenterHeaderGroups()[0]?.headers.reduce((sum, header) => {\n return sum + header.getSize()\n }, 0) ?? 0,\n getRightTotalSize: () =>\n table.getRightHeaderGroups()[0]?.headers.reduce((sum, header) => {\n return sum + header.getSize()\n }, 0) ?? 0,\n }\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(e: unknown): e is TouchEvent {\n return (e as TouchEvent).type === 'touchstart'\n}\n"],"names":["defaultColumnSizing","size","minSize","maxSize","Number","MAX_SAFE_INTEGER","getDefaultColumnSizingInfoState","startOffset","startSize","deltaOffset","deltaPercentage","isResizingColumn","columnSizingStart","ColumnSizing","getDefaultColumnDef","getInitialState","state","columnSizing","columnSizingInfo","getDefaultOptions","table","columnResizeMode","onColumnSizingChange","makeStateUpdater","onColumnSizingInfoChange","createColumn","column","getSize","columnSize","getState","id","Math","min","max","columnDef","getStart","position","columns","getVisibleLeafColumns","getLeftVisibleLeafColumns","getRightVisibleLeafColumns","index","findIndex","d","prevSiblingColumn","resetSize","setColumnSizing","_","rest","getCanResize","enableResizing","options","enableColumnResizing","getIsResizing","createHeader","header","sum","recurse","subHeaders","length","forEach","prevSiblingHeader","headerGroup","headers","getResizeHandler","getColumn","canResize","e","persist","isTouchStartEvent","touches","getLeafHeaders","map","clientX","round","newColumnSizing","updateOffset","eventType","clientXPos","setColumnSizingInfo","old","columnId","headerSize","onMove","onEnd","mouseEvents","moveHandler","upHandler","document","removeEventListener","touchEvents","cancelable","preventDefault","stopPropagation","passiveIfSupported","passiveEventSupported","passive","addEventListener","createTable","updater","resetColumnSizing","defaultState","initialState","resetHeaderSizeInfo","getTotalSize","getHeaderGroups","reduce","getLeftTotalSize","getLeftHeaderGroups","getCenterTotalSize","getCenterHeaderGroups","getRightTotalSize","getRightHeaderGroups","passiveSupported","supported","noop","window","err","type"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ColumnSizing.js","sources":["../../../src/features/ColumnSizing.ts"],"sourcesContent":["import { TableFeature } from '../core/table'\nimport { RowData, Column, Header, OnChangeFn, Table, Updater } from '../types'\nimport { makeStateUpdater } from '../utils'\nimport { ColumnPinningPosition } from './Pinning'\n\n//\n\nexport interface ColumnSizingTableState {\n columnSizing: ColumnSizingState\n columnSizingInfo: ColumnSizingInfoState\n}\n\nexport type ColumnSizingState = Record<string, number>\n\nexport interface 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 ColumnResizeMode = 'onChange' | 'onEnd'\n\nexport interface ColumnSizingOptions {\n enableColumnResizing?: boolean\n columnResizeMode?: ColumnResizeMode\n onColumnSizingChange?: OnChangeFn<ColumnSizingState>\n onColumnSizingInfoChange?: OnChangeFn<ColumnSizingInfoState>\n}\n\nexport interface ColumnSizingDefaultOptions {\n columnResizeMode: ColumnResizeMode\n onColumnSizingChange: OnChangeFn<ColumnSizingState>\n onColumnSizingInfoChange: OnChangeFn<ColumnSizingInfoState>\n}\n\nexport interface ColumnSizingInstance {\n setColumnSizing: (updater: Updater<ColumnSizingState>) => void\n setColumnSizingInfo: (updater: Updater<ColumnSizingInfoState>) => void\n resetColumnSizing: (defaultState?: boolean) => void\n resetHeaderSizeInfo: (defaultState?: boolean) => void\n getTotalSize: () => number\n getLeftTotalSize: () => number\n getCenterTotalSize: () => number\n getRightTotalSize: () => number\n}\n\nexport interface ColumnSizingColumnDef {\n enableResizing?: boolean\n size?: number\n minSize?: number\n maxSize?: number\n}\n\nexport interface ColumnSizingColumn {\n getSize: () => number\n getStart: (position?: ColumnPinningPosition) => number\n getCanResize: () => boolean\n getIsResizing: () => boolean\n resetSize: () => void\n}\n\nexport interface ColumnSizingHeader {\n getSize: () => number\n getStart: (position?: ColumnPinningPosition) => number\n getResizeHandler: () => (event: unknown) => void\n}\n\n//\n\nexport const defaultColumnSizing = {\n size: 150,\n minSize: 20,\n maxSize: Number.MAX_SAFE_INTEGER,\n}\n\nconst getDefaultColumnSizingInfoState = (): ColumnSizingInfoState => ({\n startOffset: null,\n startSize: null,\n deltaOffset: null,\n deltaPercentage: null,\n isResizingColumn: false,\n columnSizingStart: [],\n})\n\nexport const ColumnSizing: TableFeature = {\n getDefaultColumnDef: (): ColumnSizingColumnDef => {\n return defaultColumnSizing\n },\n getInitialState: (state): ColumnSizingTableState => {\n return {\n columnSizing: {},\n columnSizingInfo: getDefaultColumnSizingInfoState(),\n ...state,\n }\n },\n\n getDefaultOptions: <TData extends RowData>(\n table: Table<TData>\n ): ColumnSizingDefaultOptions => {\n return {\n columnResizeMode: 'onEnd',\n onColumnSizingChange: makeStateUpdater('columnSizing', table),\n onColumnSizingInfoChange: makeStateUpdater('columnSizingInfo', table),\n }\n },\n\n createColumn: <TData extends RowData, TValue>(\n column: Column<TData, TValue>,\n table: Table<TData>\n ): ColumnSizingColumn => {\n return {\n getSize: () => {\n const columnSize = table.getState().columnSizing[column.id]\n\n return Math.min(\n Math.max(\n column.columnDef.minSize ?? defaultColumnSizing.minSize,\n columnSize ?? column.columnDef.size ?? defaultColumnSizing.size\n ),\n column.columnDef.maxSize ?? defaultColumnSizing.maxSize\n )\n },\n getStart: position => {\n const columns = !position\n ? table.getVisibleLeafColumns()\n : position === 'left'\n ? table.getLeftVisibleLeafColumns()\n : table.getRightVisibleLeafColumns()\n\n const index = columns.findIndex(d => d.id === column.id)\n\n if (index > 0) {\n const prevSiblingColumn = columns[index - 1]!\n\n return (\n prevSiblingColumn.getStart(position) + prevSiblingColumn.getSize()\n )\n }\n\n return 0\n },\n resetSize: () => {\n table.setColumnSizing(({ [column.id]: _, ...rest }) => {\n return rest\n })\n },\n getCanResize: () => {\n return (\n (column.columnDef.enableResizing ?? true) &&\n (table.options.enableColumnResizing ?? true)\n )\n },\n getIsResizing: () => {\n return table.getState().columnSizingInfo.isResizingColumn === column.id\n },\n }\n },\n\n createHeader: <TData extends RowData, TValue>(\n header: Header<TData, TValue>,\n table: Table<TData>\n ): ColumnSizingHeader => {\n return {\n getSize: () => {\n let sum = 0\n\n const recurse = (header: Header<TData, TValue>) => {\n if (header.subHeaders.length) {\n header.subHeaders.forEach(recurse)\n } else {\n sum += header.column.getSize() ?? 0\n }\n }\n\n recurse(header)\n\n return sum\n },\n getStart: () => {\n if (header.index > 0) {\n const prevSiblingHeader =\n header.headerGroup.headers[header.index - 1]!\n return prevSiblingHeader.getStart() + prevSiblingHeader.getSize()\n }\n\n return 0\n },\n getResizeHandler: () => {\n const column = table.getColumn(header.column.id)\n const canResize = column?.getCanResize()\n\n return (e: unknown) => {\n if (!column || !canResize) {\n return\n }\n\n ;(e as any).persist?.()\n\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 startSize = header.getSize()\n\n const columnSizingStart: [string, number][] = header\n ? header\n .getLeafHeaders()\n .map(d => [d.column.id, d.column.getSize()])\n : [[column.id, column.getSize()]]\n\n const clientX = isTouchStartEvent(e)\n ? Math.round(e.touches[0]!.clientX)\n : (e as MouseEvent).clientX\n\n const newColumnSizing: ColumnSizingState = {}\n\n const updateOffset = (\n eventType: 'move' | 'end',\n clientXPos?: number\n ) => {\n if (typeof clientXPos !== 'number') {\n return\n }\n\n table.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, headerSize]) => {\n newColumnSizing[columnId] =\n Math.round(\n Math.max(headerSize + headerSize * deltaPercentage, 0) * 100\n ) / 100\n })\n\n return {\n ...old,\n deltaOffset,\n deltaPercentage,\n }\n })\n\n if (\n table.options.columnResizeMode === 'onChange' ||\n eventType === 'end'\n ) {\n table.setColumnSizing(old => ({\n ...old,\n ...newColumnSizing,\n }))\n }\n }\n\n const onMove = (clientXPos?: number) =>\n updateOffset('move', clientXPos)\n\n const onEnd = (clientXPos?: number) => {\n updateOffset('end', clientXPos)\n\n table.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 table.setColumnSizingInfo(old => ({\n ...old,\n startOffset: clientX,\n startSize,\n deltaOffset: 0,\n deltaPercentage: 0,\n columnSizingStart,\n isResizingColumn: column.id,\n }))\n }\n },\n }\n },\n\n createTable: <TData extends RowData>(\n table: Table<TData>\n ): ColumnSizingInstance => {\n return {\n setColumnSizing: updater => table.options.onColumnSizingChange?.(updater),\n setColumnSizingInfo: updater =>\n table.options.onColumnSizingInfoChange?.(updater),\n resetColumnSizing: defaultState => {\n table.setColumnSizing(\n defaultState ? {} : table.initialState.columnSizing ?? {}\n )\n },\n resetHeaderSizeInfo: defaultState => {\n table.setColumnSizingInfo(\n defaultState\n ? getDefaultColumnSizingInfoState()\n : table.initialState.columnSizingInfo ??\n getDefaultColumnSizingInfoState()\n )\n },\n getTotalSize: () =>\n table.getHeaderGroups()[0]?.headers.reduce((sum, header) => {\n return sum + header.getSize()\n }, 0) ?? 0,\n getLeftTotalSize: () =>\n table.getLeftHeaderGroups()[0]?.headers.reduce((sum, header) => {\n return sum + header.getSize()\n }, 0) ?? 0,\n getCenterTotalSize: () =>\n table.getCenterHeaderGroups()[0]?.headers.reduce((sum, header) => {\n return sum + header.getSize()\n }, 0) ?? 0,\n getRightTotalSize: () =>\n table.getRightHeaderGroups()[0]?.headers.reduce((sum, header) => {\n return sum + header.getSize()\n }, 0) ?? 0,\n }\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(e: unknown): e is TouchEvent {\n return (e as TouchEvent).type === 'touchstart'\n}\n"],"names":["defaultColumnSizing","size","minSize","maxSize","Number","MAX_SAFE_INTEGER","getDefaultColumnSizingInfoState","startOffset","startSize","deltaOffset","deltaPercentage","isResizingColumn","columnSizingStart","ColumnSizing","getDefaultColumnDef","getInitialState","state","columnSizing","columnSizingInfo","getDefaultOptions","table","columnResizeMode","onColumnSizingChange","makeStateUpdater","onColumnSizingInfoChange","createColumn","column","getSize","_column$columnDef$min","_ref","_column$columnDef$max","columnSize","getState","id","Math","min","max","columnDef","getStart","position","columns","getVisibleLeafColumns","getLeftVisibleLeafColumns","getRightVisibleLeafColumns","index","findIndex","d","prevSiblingColumn","resetSize","setColumnSizing","_ref2","_","rest","getCanResize","_column$columnDef$ena","_table$options$enable","enableResizing","options","enableColumnResizing","getIsResizing","createHeader","header","sum","recurse","subHeaders","length","forEach","_header$column$getSiz","prevSiblingHeader","headerGroup","headers","getResizeHandler","getColumn","canResize","e","persist","isTouchStartEvent","touches","getLeafHeaders","map","clientX","round","newColumnSizing","updateOffset","eventType","clientXPos","setColumnSizingInfo","old","_old$startOffset","_old$startSize","_ref3","columnId","headerSize","onMove","onEnd","mouseEvents","moveHandler","upHandler","document","removeEventListener","touchEvents","cancelable","preventDefault","stopPropagation","_e$touches$","passiveIfSupported","passiveEventSupported","passive","addEventListener","createTable","updater","resetColumnSizing","defaultState","_table$initialState$c","initialState","resetHeaderSizeInfo","_table$initialState$c2","getTotalSize","_table$getHeaderGroup","_table$getHeaderGroup2","getHeaderGroups","reduce","getLeftTotalSize","_table$getLeftHeaderG","_table$getLeftHeaderG2","getLeftHeaderGroups","getCenterTotalSize","_table$getCenterHeade","_table$getCenterHeade2","getCenterHeaderGroups","getRightTotalSize","_table$getRightHeader","_table$getRightHeader2","getRightHeaderGroups","passiveSupported","supported","noop","window","err","type"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Expanding.js","sources":["../../../src/features/Expanding.ts"],"sourcesContent":["import { RowModel } from '..'\nimport { TableFeature } from '../core/table'\nimport { OnChangeFn, Table, Row, Updater, RowData } from '../types'\nimport { makeStateUpdater } from '../utils'\n\nexport type ExpandedStateList = Record<string, boolean>\nexport type ExpandedState = true | Record<string, boolean>\nexport interface ExpandedTableState {\n expanded: ExpandedState\n}\n\nexport interface ExpandedRow {\n toggleExpanded: (expanded?: boolean) => void\n getIsExpanded: () => boolean\n getCanExpand: () => boolean\n getToggleExpandedHandler: () => () => void\n}\n\nexport interface ExpandedOptions<TData extends RowData> {\n manualExpanding?: boolean\n onExpandedChange?: OnChangeFn<ExpandedState>\n autoResetExpanded?: boolean\n enableExpanding?: boolean\n getExpandedRowModel?: (table: Table<any>) => () => RowModel<any>\n getIsRowExpanded?: (row: Row<TData>) => boolean\n getRowCanExpand?: (row: Row<TData>) => boolean\n paginateExpandedRows?: boolean\n}\n\nexport interface ExpandedInstance<TData extends RowData> {\n _autoResetExpanded: () => void\n setExpanded: (updater: Updater<ExpandedState>) => void\n toggleAllRowsExpanded: (expanded?: boolean) => void\n resetExpanded: (defaultState?: boolean) => void\n getCanSomeRowsExpand: () => boolean\n getToggleAllRowsExpandedHandler: () => (event: unknown) => void\n getIsSomeRowsExpanded: () => boolean\n getIsAllRowsExpanded: () => boolean\n getExpandedDepth: () => number\n getExpandedRowModel: () => RowModel<TData>\n _getExpandedRowModel?: () => RowModel<TData>\n getPreExpandedRowModel: () => RowModel<TData>\n}\n\n//\n\nexport const Expanding: TableFeature = {\n getInitialState: (state): ExpandedTableState => {\n return {\n expanded: {},\n ...state,\n }\n },\n\n getDefaultOptions: <TData extends RowData>(\n table: Table<TData>\n ): ExpandedOptions<TData> => {\n return {\n onExpandedChange: makeStateUpdater('expanded', table),\n paginateExpandedRows: true,\n }\n },\n\n createTable: <TData extends RowData>(\n table: Table<TData>\n ): ExpandedInstance<TData> => {\n let registered = false\n let queued = false\n\n return {\n _autoResetExpanded: () => {\n if (!registered) {\n table._queue(() => {\n registered = true\n })\n return\n }\n\n if (\n table.options.autoResetAll ??\n table.options.autoResetExpanded ??\n !table.options.manualExpanding\n ) {\n if (queued) return\n queued = true\n table._queue(() => {\n table.resetExpanded()\n queued = false\n })\n }\n },\n setExpanded: updater => table.options.onExpandedChange?.(updater),\n toggleAllRowsExpanded: expanded => {\n if (expanded ?? !table.getIsAllRowsExpanded()) {\n table.setExpanded(true)\n } else {\n table.setExpanded({})\n }\n },\n resetExpanded: defaultState => {\n table.setExpanded(\n defaultState ? {} : table.initialState?.expanded ?? {}\n )\n },\n getCanSomeRowsExpand: () => {\n return table.getRowModel().flatRows.some(row => row.getCanExpand())\n },\n getToggleAllRowsExpandedHandler: () => {\n return (e: unknown) => {\n ;(e as any).persist?.()\n table.toggleAllRowsExpanded()\n }\n },\n getIsSomeRowsExpanded: () => {\n const expanded = table.getState().expanded\n return expanded === true || Object.values(expanded).some(Boolean)\n },\n getIsAllRowsExpanded: () => {\n const expanded = table.getState().expanded\n\n // If expanded is true, save some cycles and return true\n if (typeof expanded === 'boolean') {\n return expanded === true\n }\n\n if (!Object.keys(expanded).length) {\n return false\n }\n\n // If any row is not expanded, return false\n if (table.getRowModel().flatRows.some(row => !row.getIsExpanded())) {\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 table.getState().expanded === true\n ? Object.keys(table.getRowModel().rowsById)\n : Object.keys(table.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 getPreExpandedRowModel: () => table.getSortedRowModel(),\n getExpandedRowModel: () => {\n if (!table._getExpandedRowModel && table.options.getExpandedRowModel) {\n table._getExpandedRowModel = table.options.getExpandedRowModel(table)\n }\n\n if (table.options.manualExpanding || !table._getExpandedRowModel) {\n return table.getPreExpandedRowModel()\n }\n\n return table._getExpandedRowModel()\n },\n }\n },\n\n createRow: <TData extends RowData>(\n row: Row<TData>,\n table: Table<TData>\n ): ExpandedRow => {\n return {\n toggleExpanded: expanded => {\n table.setExpanded(old => {\n const exists = old === true ? true : !!old?.[row.id]\n\n let oldExpanded: ExpandedStateList = {}\n\n if (old === true) {\n Object.keys(table.getRowModel().rowsById).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 [row.id]: true,\n }\n }\n\n if (exists && !expanded) {\n const { [row.id]: _, ...rest } = oldExpanded\n return rest\n }\n\n return old\n })\n },\n getIsExpanded: () => {\n const expanded = table.getState().expanded\n\n return !!(\n table.options.getIsRowExpanded?.(row) ??\n (expanded === true || expanded?.[row.id])\n )\n },\n getCanExpand: () => {\n return (\n table.options.getRowCanExpand?.(row) ??\n ((table.options.enableExpanding ?? true) && !!row.subRows?.length)\n )\n },\n getToggleExpandedHandler: () => {\n const canExpand = row.getCanExpand()\n\n return () => {\n if (!canExpand) return\n row.toggleExpanded()\n }\n },\n }\n },\n}\n"],"names":["Expanding","getInitialState","state","expanded","getDefaultOptions","table","onExpandedChange","makeStateUpdater","paginateExpandedRows","createTable","registered","queued","_autoResetExpanded","_queue","options","autoResetAll","autoResetExpanded","manualExpanding","resetExpanded","setExpanded","updater","toggleAllRowsExpanded","getIsAllRowsExpanded","defaultState","initialState","getCanSomeRowsExpand","getRowModel","flatRows","some","row","getCanExpand","getToggleAllRowsExpandedHandler","e","persist","getIsSomeRowsExpanded","getState","Object","values","Boolean","keys","length","getIsExpanded","getExpandedDepth","maxDepth","rowIds","rowsById","forEach","id","splitId","split","Math","max","getPreExpandedRowModel","getSortedRowModel","getExpandedRowModel","_getExpandedRowModel","createRow","toggleExpanded","old","exists","oldExpanded","rowId","_","rest","getIsRowExpanded","getRowCanExpand","enableExpanding","subRows","getToggleExpandedHandler","canExpand"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Expanding.js","sources":["../../../src/features/Expanding.ts"],"sourcesContent":["import { RowModel } from '..'\nimport { TableFeature } from '../core/table'\nimport { OnChangeFn, Table, Row, Updater, RowData } from '../types'\nimport { makeStateUpdater } from '../utils'\n\nexport type ExpandedStateList = Record<string, boolean>\nexport type ExpandedState = true | Record<string, boolean>\nexport interface ExpandedTableState {\n expanded: ExpandedState\n}\n\nexport interface ExpandedRow {\n toggleExpanded: (expanded?: boolean) => void\n getIsExpanded: () => boolean\n getCanExpand: () => boolean\n getToggleExpandedHandler: () => () => void\n}\n\nexport interface ExpandedOptions<TData extends RowData> {\n manualExpanding?: boolean\n onExpandedChange?: OnChangeFn<ExpandedState>\n autoResetExpanded?: boolean\n enableExpanding?: boolean\n getExpandedRowModel?: (table: Table<any>) => () => RowModel<any>\n getIsRowExpanded?: (row: Row<TData>) => boolean\n getRowCanExpand?: (row: Row<TData>) => boolean\n paginateExpandedRows?: boolean\n}\n\nexport interface ExpandedInstance<TData extends RowData> {\n _autoResetExpanded: () => void\n setExpanded: (updater: Updater<ExpandedState>) => void\n toggleAllRowsExpanded: (expanded?: boolean) => void\n resetExpanded: (defaultState?: boolean) => void\n getCanSomeRowsExpand: () => boolean\n getToggleAllRowsExpandedHandler: () => (event: unknown) => void\n getIsSomeRowsExpanded: () => boolean\n getIsAllRowsExpanded: () => boolean\n getExpandedDepth: () => number\n getExpandedRowModel: () => RowModel<TData>\n _getExpandedRowModel?: () => RowModel<TData>\n getPreExpandedRowModel: () => RowModel<TData>\n}\n\n//\n\nexport const Expanding: TableFeature = {\n getInitialState: (state): ExpandedTableState => {\n return {\n expanded: {},\n ...state,\n }\n },\n\n getDefaultOptions: <TData extends RowData>(\n table: Table<TData>\n ): ExpandedOptions<TData> => {\n return {\n onExpandedChange: makeStateUpdater('expanded', table),\n paginateExpandedRows: true,\n }\n },\n\n createTable: <TData extends RowData>(\n table: Table<TData>\n ): ExpandedInstance<TData> => {\n let registered = false\n let queued = false\n\n return {\n _autoResetExpanded: () => {\n if (!registered) {\n table._queue(() => {\n registered = true\n })\n return\n }\n\n if (\n table.options.autoResetAll ??\n table.options.autoResetExpanded ??\n !table.options.manualExpanding\n ) {\n if (queued) return\n queued = true\n table._queue(() => {\n table.resetExpanded()\n queued = false\n })\n }\n },\n setExpanded: updater => table.options.onExpandedChange?.(updater),\n toggleAllRowsExpanded: expanded => {\n if (expanded ?? !table.getIsAllRowsExpanded()) {\n table.setExpanded(true)\n } else {\n table.setExpanded({})\n }\n },\n resetExpanded: defaultState => {\n table.setExpanded(\n defaultState ? {} : table.initialState?.expanded ?? {}\n )\n },\n getCanSomeRowsExpand: () => {\n return table.getRowModel().flatRows.some(row => row.getCanExpand())\n },\n getToggleAllRowsExpandedHandler: () => {\n return (e: unknown) => {\n ;(e as any).persist?.()\n table.toggleAllRowsExpanded()\n }\n },\n getIsSomeRowsExpanded: () => {\n const expanded = table.getState().expanded\n return expanded === true || Object.values(expanded).some(Boolean)\n },\n getIsAllRowsExpanded: () => {\n const expanded = table.getState().expanded\n\n // If expanded is true, save some cycles and return true\n if (typeof expanded === 'boolean') {\n return expanded === true\n }\n\n if (!Object.keys(expanded).length) {\n return false\n }\n\n // If any row is not expanded, return false\n if (table.getRowModel().flatRows.some(row => !row.getIsExpanded())) {\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 table.getState().expanded === true\n ? Object.keys(table.getRowModel().rowsById)\n : Object.keys(table.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 getPreExpandedRowModel: () => table.getSortedRowModel(),\n getExpandedRowModel: () => {\n if (!table._getExpandedRowModel && table.options.getExpandedRowModel) {\n table._getExpandedRowModel = table.options.getExpandedRowModel(table)\n }\n\n if (table.options.manualExpanding || !table._getExpandedRowModel) {\n return table.getPreExpandedRowModel()\n }\n\n return table._getExpandedRowModel()\n },\n }\n },\n\n createRow: <TData extends RowData>(\n row: Row<TData>,\n table: Table<TData>\n ): ExpandedRow => {\n return {\n toggleExpanded: expanded => {\n table.setExpanded(old => {\n const exists = old === true ? true : !!old?.[row.id]\n\n let oldExpanded: ExpandedStateList = {}\n\n if (old === true) {\n Object.keys(table.getRowModel().rowsById).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 [row.id]: true,\n }\n }\n\n if (exists && !expanded) {\n const { [row.id]: _, ...rest } = oldExpanded\n return rest\n }\n\n return old\n })\n },\n getIsExpanded: () => {\n const expanded = table.getState().expanded\n\n return !!(\n table.options.getIsRowExpanded?.(row) ??\n (expanded === true || expanded?.[row.id])\n )\n },\n getCanExpand: () => {\n return (\n table.options.getRowCanExpand?.(row) ??\n ((table.options.enableExpanding ?? true) && !!row.subRows?.length)\n )\n },\n getToggleExpandedHandler: () => {\n const canExpand = row.getCanExpand()\n\n return () => {\n if (!canExpand) return\n row.toggleExpanded()\n }\n },\n }\n },\n}\n"],"names":["Expanding","getInitialState","state","expanded","getDefaultOptions","table","onExpandedChange","makeStateUpdater","paginateExpandedRows","createTable","registered","queued","_autoResetExpanded","_ref","_table$options$autoRe","_queue","options","autoResetAll","autoResetExpanded","manualExpanding","resetExpanded","setExpanded","updater","toggleAllRowsExpanded","getIsAllRowsExpanded","defaultState","_table$initialState$e","_table$initialState","initialState","getCanSomeRowsExpand","getRowModel","flatRows","some","row","getCanExpand","getToggleAllRowsExpandedHandler","e","persist","getIsSomeRowsExpanded","getState","Object","values","Boolean","keys","length","getIsExpanded","getExpandedDepth","maxDepth","rowIds","rowsById","forEach","id","splitId","split","Math","max","getPreExpandedRowModel","getSortedRowModel","getExpandedRowModel","_getExpandedRowModel","createRow","toggleExpanded","old","_expanded","exists","oldExpanded","rowId","_","rest","_table$options$getIsR","getIsRowExpanded","_table$options$getRow","_table$options$enable","_row$subRows","getRowCanExpand","enableExpanding","subRows","getToggleExpandedHandler","canExpand"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Filters.js","sources":["../../../src/features/Filters.ts"],"sourcesContent":["import { RowModel } from '..'\nimport { TableFeature } from '../core/table'\nimport { BuiltInFilterFn, filterFns } from '../filterFns'\nimport {\n Column,\n OnChangeFn,\n Table,\n Row,\n Updater,\n RowData,\n FilterMeta,\n FilterFns,\n} from '../types'\nimport { functionalUpdate, isFunction, makeStateUpdater } from '../utils'\n\nexport interface FiltersTableState {\n columnFilters: ColumnFiltersState\n globalFilter: any\n}\n\nexport type ColumnFiltersState = ColumnFilter[]\n\nexport interface ColumnFilter {\n id: string\n value: unknown\n}\n\nexport interface ResolvedColumnFilter<TData extends RowData> {\n id: string\n resolvedValue: unknown\n filterFn: FilterFn<TData>\n}\n\nexport interface FilterFn<TData extends RowData> {\n (\n row: Row<TData>,\n columnId: string,\n filterValue: any,\n addMeta: (meta: FilterMeta) => void\n ): boolean\n\n resolveFilterValue?: TransformFilterValueFn<TData>\n autoRemove?: ColumnFilterAutoRemoveTestFn<TData>\n}\n\nexport type TransformFilterValueFn<TData extends RowData> = (\n value: any,\n column?: Column<TData, unknown>\n) => unknown\n\nexport type ColumnFilterAutoRemoveTestFn<TData extends RowData> = (\n value: any,\n column?: Column<TData, unknown>\n) => boolean\n\nexport type CustomFilterFns<TData extends RowData> = Record<\n string,\n FilterFn<TData>\n>\n\nexport type FilterFnOption<TData extends RowData> =\n | 'auto'\n | BuiltInFilterFn\n | keyof FilterFns\n | FilterFn<TData>\n\nexport interface FiltersColumnDef<TData extends RowData> {\n filterFn?: FilterFnOption<TData>\n enableColumnFilter?: boolean\n enableGlobalFilter?: boolean\n}\n\nexport interface FiltersColumn<TData extends RowData> {\n getAutoFilterFn: () => FilterFn<TData> | undefined\n getFilterFn: () => FilterFn<TData> | undefined\n setFilterValue: (updater: Updater<any>) => void\n getCanFilter: () => boolean\n getCanGlobalFilter: () => boolean\n getFacetedRowModel: () => RowModel<TData>\n _getFacetedRowModel?: () => RowModel<TData>\n getIsFiltered: () => boolean\n getFilterValue: () => unknown\n getFilterIndex: () => number\n getFacetedUniqueValues: () => Map<any, number>\n _getFacetedUniqueValues?: () => Map<any, number>\n getFacetedMinMaxValues: () => undefined | [number, number]\n _getFacetedMinMaxValues?: () => undefined | [number, number]\n}\n\nexport interface FiltersRow<TData extends RowData> {\n columnFilters: Record<string, boolean>\n columnFiltersMeta: Record<string, FilterMeta>\n}\n\ninterface FiltersOptionsBase<TData extends RowData> {\n enableFilters?: boolean\n manualFiltering?: boolean\n filterFromLeafRows?: boolean\n maxLeafRowFilterDepth?: number\n getFilteredRowModel?: (table: Table<any>) => () => RowModel<any>\n\n // Column\n onColumnFiltersChange?: OnChangeFn<ColumnFiltersState>\n enableColumnFilters?: boolean\n\n // Global\n globalFilterFn?: FilterFnOption<TData>\n onGlobalFilterChange?: OnChangeFn<any>\n enableGlobalFilter?: boolean\n getColumnCanGlobalFilter?: (column: Column<TData, unknown>) => boolean\n\n // Faceting\n getFacetedRowModel?: (\n table: Table<TData>,\n columnId: string\n ) => () => RowModel<TData>\n getFacetedUniqueValues?: (\n table: Table<TData>,\n columnId: string\n ) => () => Map<any, number>\n getFacetedMinMaxValues?: (\n table: Table<TData>,\n columnId: string\n ) => () => undefined | [number, number]\n}\n\ntype ResolvedFilterFns = keyof FilterFns extends never\n ? {\n filterFns?: Record<string, FilterFn<any>>\n }\n : {\n filterFns: Record<keyof FilterFns, FilterFn<any>>\n }\n\nexport interface FiltersOptions<TData extends RowData>\n extends FiltersOptionsBase<TData>,\n ResolvedFilterFns {}\n\nexport interface FiltersInstance<TData extends RowData> {\n setColumnFilters: (updater: Updater<ColumnFiltersState>) => void\n\n resetColumnFilters: (defaultState?: boolean) => void\n\n // Column Filters\n getPreFilteredRowModel: () => RowModel<TData>\n getFilteredRowModel: () => RowModel<TData>\n _getFilteredRowModel?: () => RowModel<TData>\n\n // Global Filters\n setGlobalFilter: (updater: Updater<any>) => void\n resetGlobalFilter: (defaultState?: boolean) => void\n getGlobalAutoFilterFn: () => FilterFn<TData> | undefined\n getGlobalFilterFn: () => FilterFn<TData> | undefined\n getGlobalFacetedRowModel: () => RowModel<TData>\n _getGlobalFacetedRowModel?: () => RowModel<TData>\n getGlobalFacetedUniqueValues: () => Map<any, number>\n _getGlobalFacetedUniqueValues?: () => Map<any, number>\n getGlobalFacetedMinMaxValues: () => undefined | [number, number]\n _getGlobalFacetedMinMaxValues?: () => undefined | [number, number]\n}\n\n//\n\nexport const Filters: TableFeature = {\n getDefaultColumnDef: <TData extends RowData>(): FiltersColumnDef<TData> => {\n return {\n filterFn: 'auto',\n }\n },\n\n getInitialState: (state): FiltersTableState => {\n return {\n columnFilters: [],\n globalFilter: undefined,\n // filtersProgress: 1,\n // facetProgress: {},\n ...state,\n }\n },\n\n getDefaultOptions: <TData extends RowData>(\n table: Table<TData>\n ): FiltersOptions<TData> => {\n return {\n onColumnFiltersChange: makeStateUpdater('columnFilters', table),\n onGlobalFilterChange: makeStateUpdater('globalFilter', table),\n filterFromLeafRows: false,\n maxLeafRowFilterDepth: 100,\n globalFilterFn: 'auto',\n getColumnCanGlobalFilter: column => {\n const value = table\n .getCoreRowModel()\n .flatRows[0]?._getAllCellsByColumnId()\n [column.id]?.getValue()\n\n return typeof value === 'string' || typeof value === 'number'\n },\n } as FiltersOptions<TData>\n },\n\n createColumn: <TData extends RowData>(\n column: Column<TData, unknown>,\n table: Table<TData>\n ): FiltersColumn<TData> => {\n return {\n getAutoFilterFn: () => {\n const firstRow = table.getCoreRowModel().flatRows[0]\n\n const value = firstRow?.getValue(column.id)\n\n if (typeof value === 'string') {\n return filterFns.includesString\n }\n\n if (typeof value === 'number') {\n return filterFns.inNumberRange\n }\n\n if (typeof value === 'boolean') {\n return filterFns.equals\n }\n\n if (value !== null && typeof value === 'object') {\n return filterFns.equals\n }\n\n if (Array.isArray(value)) {\n return filterFns.arrIncludes\n }\n\n return filterFns.weakEquals\n },\n getFilterFn: () => {\n return isFunction(column.columnDef.filterFn)\n ? column.columnDef.filterFn\n : column.columnDef.filterFn === 'auto'\n ? column.getAutoFilterFn()\n // @ts-ignore \n : table.options.filterFns?.[column.columnDef.filterFn as string] ??\n filterFns[column.columnDef.filterFn as BuiltInFilterFn]\n },\n getCanFilter: () => {\n return (\n (column.columnDef.enableColumnFilter ?? true) &&\n (table.options.enableColumnFilters ?? true) &&\n (table.options.enableFilters ?? true) &&\n !!column.accessorFn\n )\n },\n\n getCanGlobalFilter: () => {\n return (\n (column.columnDef.enableGlobalFilter ?? true) &&\n (table.options.enableGlobalFilter ?? true) &&\n (table.options.enableFilters ?? true) &&\n (table.options.getColumnCanGlobalFilter?.(column) ?? true) &&\n !!column.accessorFn\n )\n },\n\n getIsFiltered: () => column.getFilterIndex() > -1,\n\n getFilterValue: () =>\n table.getState().columnFilters?.find(d => d.id === column.id)?.value,\n\n getFilterIndex: () =>\n table.getState().columnFilters?.findIndex(d => d.id === column.id) ??\n -1,\n\n setFilterValue: value => {\n table.setColumnFilters(old => {\n const filterFn = column.getFilterFn()\n const previousfilter = old?.find(d => d.id === column.id)\n\n const newFilter = functionalUpdate(\n value,\n previousfilter ? previousfilter.value : undefined\n )\n\n //\n if (\n shouldAutoRemoveFilter(\n filterFn as FilterFn<TData>,\n newFilter,\n column\n )\n ) {\n return old?.filter(d => d.id !== column.id) ?? []\n }\n\n const newFilterObj = { id: column.id, value: newFilter }\n\n if (previousfilter) {\n return (\n old?.map(d => {\n if (d.id === column.id) {\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 _getFacetedRowModel:\n table.options.getFacetedRowModel &&\n table.options.getFacetedRowModel(table, column.id),\n getFacetedRowModel: () => {\n if (!column._getFacetedRowModel) {\n return table.getPreFilteredRowModel()\n }\n\n return column._getFacetedRowModel()\n },\n _getFacetedUniqueValues:\n table.options.getFacetedUniqueValues &&\n table.options.getFacetedUniqueValues(table, column.id),\n getFacetedUniqueValues: () => {\n if (!column._getFacetedUniqueValues) {\n return new Map()\n }\n\n return column._getFacetedUniqueValues()\n },\n _getFacetedMinMaxValues:\n table.options.getFacetedMinMaxValues &&\n table.options.getFacetedMinMaxValues(table, column.id),\n getFacetedMinMaxValues: () => {\n if (!column._getFacetedMinMaxValues) {\n return undefined\n }\n\n return column._getFacetedMinMaxValues()\n },\n // () => [column.getFacetedRowModel()],\n // facetedRowModel => getRowModelMinMaxValues(facetedRowModel, column.id),\n }\n },\n\n createRow: <TData extends RowData>(\n row: Row<TData>,\n table: Table<TData>\n ): FiltersRow<TData> => {\n return {\n columnFilters: {},\n columnFiltersMeta: {},\n }\n },\n\n createTable: <TData extends RowData>(\n table: Table<TData>\n ): FiltersInstance<TData> => {\n return {\n getGlobalAutoFilterFn: () => {\n return filterFns.includesString\n },\n\n getGlobalFilterFn: () => {\n const { globalFilterFn: globalFilterFn } = table.options\n\n return isFunction(globalFilterFn)\n ? globalFilterFn\n : globalFilterFn === 'auto'\n ? table.getGlobalAutoFilterFn()\n // @ts-ignore\n : table.options.filterFns?.[globalFilterFn as string] ??\n filterFns[globalFilterFn as BuiltInFilterFn]\n },\n\n setColumnFilters: (updater: Updater<ColumnFiltersState>) => {\n const leafColumns = table.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 = column.getFilterFn()\n\n if (shouldAutoRemoveFilter(filterFn, filter.value, column)) {\n return false\n }\n }\n\n return true\n })\n }\n\n table.options.onColumnFiltersChange?.(updateFn)\n },\n\n setGlobalFilter: updater => {\n table.options.onGlobalFilterChange?.(updater)\n },\n\n resetGlobalFilter: defaultState => {\n table.setGlobalFilter(\n defaultState ? undefined : table.initialState.globalFilter\n )\n },\n\n resetColumnFilters: defaultState => {\n table.setColumnFilters(\n defaultState ? [] : table.initialState?.columnFilters ?? []\n )\n },\n\n getPreFilteredRowModel: () => table.getCoreRowModel(),\n getFilteredRowModel: () => {\n if (!table._getFilteredRowModel && table.options.getFilteredRowModel) {\n table._getFilteredRowModel = table.options.getFilteredRowModel(table)\n }\n\n if (table.options.manualFiltering || !table._getFilteredRowModel) {\n return table.getPreFilteredRowModel()\n }\n\n return table._getFilteredRowModel()\n },\n\n _getGlobalFacetedRowModel:\n table.options.getFacetedRowModel &&\n table.options.getFacetedRowModel(table, '__global__'),\n\n getGlobalFacetedRowModel: () => {\n if (table.options.manualFiltering || !table._getGlobalFacetedRowModel) {\n return table.getPreFilteredRowModel()\n }\n\n return table._getGlobalFacetedRowModel()\n },\n\n _getGlobalFacetedUniqueValues:\n table.options.getFacetedUniqueValues &&\n table.options.getFacetedUniqueValues(table, '__global__'),\n getGlobalFacetedUniqueValues: () => {\n if (!table._getGlobalFacetedUniqueValues) {\n return new Map()\n }\n\n return table._getGlobalFacetedUniqueValues()\n },\n\n _getGlobalFacetedMinMaxValues:\n table.options.getFacetedMinMaxValues &&\n table.options.getFacetedMinMaxValues(table, '__global__'),\n getGlobalFacetedMinMaxValues: () => {\n if (!table._getGlobalFacetedMinMaxValues) {\n return\n }\n\n return table._getGlobalFacetedMinMaxValues()\n },\n }\n },\n}\n\nexport function shouldAutoRemoveFilter<TData extends RowData>(\n filterFn?: FilterFn<TData>,\n value?: any,\n column?: Column<TData, unknown>\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":["Filters","getDefaultColumnDef","filterFn","getInitialState","state","columnFilters","globalFilter","undefined","getDefaultOptions","table","onColumnFiltersChange","makeStateUpdater","onGlobalFilterChange","filterFromLeafRows","maxLeafRowFilterDepth","globalFilterFn","getColumnCanGlobalFilter","column","value","getCoreRowModel","flatRows","_getAllCellsByColumnId","id","getValue","createColumn","getAutoFilterFn","firstRow","filterFns","includesString","inNumberRange","equals","Array","isArray","arrIncludes","weakEquals","getFilterFn","isFunction","columnDef","options","getCanFilter","enableColumnFilter","enableColumnFilters","enableFilters","accessorFn","getCanGlobalFilter","enableGlobalFilter","getIsFiltered","getFilterIndex","getFilterValue","getState","find","d","findIndex","setFilterValue","setColumnFilters","old","previousfilter","newFilter","functionalUpdate","shouldAutoRemoveFilter","filter","newFilterObj","map","length","_getFacetedRowModel","getFacetedRowModel","getPreFilteredRowModel","_getFacetedUniqueValues","getFacetedUniqueValues","Map","_getFacetedMinMaxValues","getFacetedMinMaxValues","createRow","row","columnFiltersMeta","createTable","getGlobalAutoFilterFn","getGlobalFilterFn","updater","leafColumns","getAllLeafColumns","updateFn","setGlobalFilter","resetGlobalFilter","defaultState","initialState","resetColumnFilters","getFilteredRowModel","_getFilteredRowModel","manualFiltering","_getGlobalFacetedRowModel","getGlobalFacetedRowModel","_getGlobalFacetedUniqueValues","getGlobalFacetedUniqueValues","_getGlobalFacetedMinMaxValues","getGlobalFacetedMinMaxValues","autoRemove"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Filters.js","sources":["../../../src/features/Filters.ts"],"sourcesContent":["import { RowModel } from '..'\nimport { TableFeature } from '../core/table'\nimport { BuiltInFilterFn, filterFns } from '../filterFns'\nimport {\n Column,\n OnChangeFn,\n Table,\n Row,\n Updater,\n RowData,\n FilterMeta,\n FilterFns,\n} from '../types'\nimport { functionalUpdate, isFunction, makeStateUpdater } from '../utils'\n\nexport interface FiltersTableState {\n columnFilters: ColumnFiltersState\n globalFilter: any\n}\n\nexport type ColumnFiltersState = ColumnFilter[]\n\nexport interface ColumnFilter {\n id: string\n value: unknown\n}\n\nexport interface ResolvedColumnFilter<TData extends RowData> {\n id: string\n resolvedValue: unknown\n filterFn: FilterFn<TData>\n}\n\nexport interface FilterFn<TData extends RowData> {\n (\n row: Row<TData>,\n columnId: string,\n filterValue: any,\n addMeta: (meta: FilterMeta) => void\n ): boolean\n\n resolveFilterValue?: TransformFilterValueFn<TData>\n autoRemove?: ColumnFilterAutoRemoveTestFn<TData>\n}\n\nexport type TransformFilterValueFn<TData extends RowData> = (\n value: any,\n column?: Column<TData, unknown>\n) => unknown\n\nexport type ColumnFilterAutoRemoveTestFn<TData extends RowData> = (\n value: any,\n column?: Column<TData, unknown>\n) => boolean\n\nexport type CustomFilterFns<TData extends RowData> = Record<\n string,\n FilterFn<TData>\n>\n\nexport type FilterFnOption<TData extends RowData> =\n | 'auto'\n | BuiltInFilterFn\n | keyof FilterFns\n | FilterFn<TData>\n\nexport interface FiltersColumnDef<TData extends RowData> {\n filterFn?: FilterFnOption<TData>\n enableColumnFilter?: boolean\n enableGlobalFilter?: boolean\n}\n\nexport interface FiltersColumn<TData extends RowData> {\n getAutoFilterFn: () => FilterFn<TData> | undefined\n getFilterFn: () => FilterFn<TData> | undefined\n setFilterValue: (updater: Updater<any>) => void\n getCanFilter: () => boolean\n getCanGlobalFilter: () => boolean\n getFacetedRowModel: () => RowModel<TData>\n _getFacetedRowModel?: () => RowModel<TData>\n getIsFiltered: () => boolean\n getFilterValue: () => unknown\n getFilterIndex: () => number\n getFacetedUniqueValues: () => Map<any, number>\n _getFacetedUniqueValues?: () => Map<any, number>\n getFacetedMinMaxValues: () => undefined | [number, number]\n _getFacetedMinMaxValues?: () => undefined | [number, number]\n}\n\nexport interface FiltersRow<TData extends RowData> {\n columnFilters: Record<string, boolean>\n columnFiltersMeta: Record<string, FilterMeta>\n}\n\ninterface FiltersOptionsBase<TData extends RowData> {\n enableFilters?: boolean\n manualFiltering?: boolean\n filterFromLeafRows?: boolean\n maxLeafRowFilterDepth?: number\n getFilteredRowModel?: (table: Table<any>) => () => RowModel<any>\n\n // Column\n onColumnFiltersChange?: OnChangeFn<ColumnFiltersState>\n enableColumnFilters?: boolean\n\n // Global\n globalFilterFn?: FilterFnOption<TData>\n onGlobalFilterChange?: OnChangeFn<any>\n enableGlobalFilter?: boolean\n getColumnCanGlobalFilter?: (column: Column<TData, unknown>) => boolean\n\n // Faceting\n getFacetedRowModel?: (\n table: Table<TData>,\n columnId: string\n ) => () => RowModel<TData>\n getFacetedUniqueValues?: (\n table: Table<TData>,\n columnId: string\n ) => () => Map<any, number>\n getFacetedMinMaxValues?: (\n table: Table<TData>,\n columnId: string\n ) => () => undefined | [number, number]\n}\n\ntype ResolvedFilterFns = keyof FilterFns extends never\n ? {\n filterFns?: Record<string, FilterFn<any>>\n }\n : {\n filterFns: Record<keyof FilterFns, FilterFn<any>>\n }\n\nexport interface FiltersOptions<TData extends RowData>\n extends FiltersOptionsBase<TData>,\n ResolvedFilterFns {}\n\nexport interface FiltersInstance<TData extends RowData> {\n setColumnFilters: (updater: Updater<ColumnFiltersState>) => void\n\n resetColumnFilters: (defaultState?: boolean) => void\n\n // Column Filters\n getPreFilteredRowModel: () => RowModel<TData>\n getFilteredRowModel: () => RowModel<TData>\n _getFilteredRowModel?: () => RowModel<TData>\n\n // Global Filters\n setGlobalFilter: (updater: Updater<any>) => void\n resetGlobalFilter: (defaultState?: boolean) => void\n getGlobalAutoFilterFn: () => FilterFn<TData> | undefined\n getGlobalFilterFn: () => FilterFn<TData> | undefined\n getGlobalFacetedRowModel: () => RowModel<TData>\n _getGlobalFacetedRowModel?: () => RowModel<TData>\n getGlobalFacetedUniqueValues: () => Map<any, number>\n _getGlobalFacetedUniqueValues?: () => Map<any, number>\n getGlobalFacetedMinMaxValues: () => undefined | [number, number]\n _getGlobalFacetedMinMaxValues?: () => undefined | [number, number]\n}\n\n//\n\nexport const Filters: TableFeature = {\n getDefaultColumnDef: <TData extends RowData>(): FiltersColumnDef<TData> => {\n return {\n filterFn: 'auto',\n }\n },\n\n getInitialState: (state): FiltersTableState => {\n return {\n columnFilters: [],\n globalFilter: undefined,\n // filtersProgress: 1,\n // facetProgress: {},\n ...state,\n }\n },\n\n getDefaultOptions: <TData extends RowData>(\n table: Table<TData>\n ): FiltersOptions<TData> => {\n return {\n onColumnFiltersChange: makeStateUpdater('columnFilters', table),\n onGlobalFilterChange: makeStateUpdater('globalFilter', table),\n filterFromLeafRows: false,\n maxLeafRowFilterDepth: 100,\n globalFilterFn: 'auto',\n getColumnCanGlobalFilter: column => {\n const value = table\n .getCoreRowModel()\n .flatRows[0]?._getAllCellsByColumnId()\n [column.id]?.getValue()\n\n return typeof value === 'string' || typeof value === 'number'\n },\n } as FiltersOptions<TData>\n },\n\n createColumn: <TData extends RowData>(\n column: Column<TData, unknown>,\n table: Table<TData>\n ): FiltersColumn<TData> => {\n return {\n getAutoFilterFn: () => {\n const firstRow = table.getCoreRowModel().flatRows[0]\n\n const value = firstRow?.getValue(column.id)\n\n if (typeof value === 'string') {\n return filterFns.includesString\n }\n\n if (typeof value === 'number') {\n return filterFns.inNumberRange\n }\n\n if (typeof value === 'boolean') {\n return filterFns.equals\n }\n\n if (value !== null && typeof value === 'object') {\n return filterFns.equals\n }\n\n if (Array.isArray(value)) {\n return filterFns.arrIncludes\n }\n\n return filterFns.weakEquals\n },\n getFilterFn: () => {\n return isFunction(column.columnDef.filterFn)\n ? column.columnDef.filterFn\n : column.columnDef.filterFn === 'auto'\n ? column.getAutoFilterFn()\n // @ts-ignore \n : table.options.filterFns?.[column.columnDef.filterFn as string] ??\n filterFns[column.columnDef.filterFn as BuiltInFilterFn]\n },\n getCanFilter: () => {\n return (\n (column.columnDef.enableColumnFilter ?? true) &&\n (table.options.enableColumnFilters ?? true) &&\n (table.options.enableFilters ?? true) &&\n !!column.accessorFn\n )\n },\n\n getCanGlobalFilter: () => {\n return (\n (column.columnDef.enableGlobalFilter ?? true) &&\n (table.options.enableGlobalFilter ?? true) &&\n (table.options.enableFilters ?? true) &&\n (table.options.getColumnCanGlobalFilter?.(column) ?? true) &&\n !!column.accessorFn\n )\n },\n\n getIsFiltered: () => column.getFilterIndex() > -1,\n\n getFilterValue: () =>\n table.getState().columnFilters?.find(d => d.id === column.id)?.value,\n\n getFilterIndex: () =>\n table.getState().columnFilters?.findIndex(d => d.id === column.id) ??\n -1,\n\n setFilterValue: value => {\n table.setColumnFilters(old => {\n const filterFn = column.getFilterFn()\n const previousfilter = old?.find(d => d.id === column.id)\n\n const newFilter = functionalUpdate(\n value,\n previousfilter ? previousfilter.value : undefined\n )\n\n //\n if (\n shouldAutoRemoveFilter(\n filterFn as FilterFn<TData>,\n newFilter,\n column\n )\n ) {\n return old?.filter(d => d.id !== column.id) ?? []\n }\n\n const newFilterObj = { id: column.id, value: newFilter }\n\n if (previousfilter) {\n return (\n old?.map(d => {\n if (d.id === column.id) {\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 _getFacetedRowModel:\n table.options.getFacetedRowModel &&\n table.options.getFacetedRowModel(table, column.id),\n getFacetedRowModel: () => {\n if (!column._getFacetedRowModel) {\n return table.getPreFilteredRowModel()\n }\n\n return column._getFacetedRowModel()\n },\n _getFacetedUniqueValues:\n table.options.getFacetedUniqueValues &&\n table.options.getFacetedUniqueValues(table, column.id),\n getFacetedUniqueValues: () => {\n if (!column._getFacetedUniqueValues) {\n return new Map()\n }\n\n return column._getFacetedUniqueValues()\n },\n _getFacetedMinMaxValues:\n table.options.getFacetedMinMaxValues &&\n table.options.getFacetedMinMaxValues(table, column.id),\n getFacetedMinMaxValues: () => {\n if (!column._getFacetedMinMaxValues) {\n return undefined\n }\n\n return column._getFacetedMinMaxValues()\n },\n // () => [column.getFacetedRowModel()],\n // facetedRowModel => getRowModelMinMaxValues(facetedRowModel, column.id),\n }\n },\n\n createRow: <TData extends RowData>(\n row: Row<TData>,\n table: Table<TData>\n ): FiltersRow<TData> => {\n return {\n columnFilters: {},\n columnFiltersMeta: {},\n }\n },\n\n createTable: <TData extends RowData>(\n table: Table<TData>\n ): FiltersInstance<TData> => {\n return {\n getGlobalAutoFilterFn: () => {\n return filterFns.includesString\n },\n\n getGlobalFilterFn: () => {\n const { globalFilterFn: globalFilterFn } = table.options\n\n return isFunction(globalFilterFn)\n ? globalFilterFn\n : globalFilterFn === 'auto'\n ? table.getGlobalAutoFilterFn()\n // @ts-ignore\n : table.options.filterFns?.[globalFilterFn as string] ??\n filterFns[globalFilterFn as BuiltInFilterFn]\n },\n\n setColumnFilters: (updater: Updater<ColumnFiltersState>) => {\n const leafColumns = table.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 = column.getFilterFn()\n\n if (shouldAutoRemoveFilter(filterFn, filter.value, column)) {\n return false\n }\n }\n\n return true\n })\n }\n\n table.options.onColumnFiltersChange?.(updateFn)\n },\n\n setGlobalFilter: updater => {\n table.options.onGlobalFilterChange?.(updater)\n },\n\n resetGlobalFilter: defaultState => {\n table.setGlobalFilter(\n defaultState ? undefined : table.initialState.globalFilter\n )\n },\n\n resetColumnFilters: defaultState => {\n table.setColumnFilters(\n defaultState ? [] : table.initialState?.columnFilters ?? []\n )\n },\n\n getPreFilteredRowModel: () => table.getCoreRowModel(),\n getFilteredRowModel: () => {\n if (!table._getFilteredRowModel && table.options.getFilteredRowModel) {\n table._getFilteredRowModel = table.options.getFilteredRowModel(table)\n }\n\n if (table.options.manualFiltering || !table._getFilteredRowModel) {\n return table.getPreFilteredRowModel()\n }\n\n return table._getFilteredRowModel()\n },\n\n _getGlobalFacetedRowModel:\n table.options.getFacetedRowModel &&\n table.options.getFacetedRowModel(table, '__global__'),\n\n getGlobalFacetedRowModel: () => {\n if (table.options.manualFiltering || !table._getGlobalFacetedRowModel) {\n return table.getPreFilteredRowModel()\n }\n\n return table._getGlobalFacetedRowModel()\n },\n\n _getGlobalFacetedUniqueValues:\n table.options.getFacetedUniqueValues &&\n table.options.getFacetedUniqueValues(table, '__global__'),\n getGlobalFacetedUniqueValues: () => {\n if (!table._getGlobalFacetedUniqueValues) {\n return new Map()\n }\n\n return table._getGlobalFacetedUniqueValues()\n },\n\n _getGlobalFacetedMinMaxValues:\n table.options.getFacetedMinMaxValues &&\n table.options.getFacetedMinMaxValues(table, '__global__'),\n getGlobalFacetedMinMaxValues: () => {\n if (!table._getGlobalFacetedMinMaxValues) {\n return\n }\n\n return table._getGlobalFacetedMinMaxValues()\n },\n }\n },\n}\n\nexport function shouldAutoRemoveFilter<TData extends RowData>(\n filterFn?: FilterFn<TData>,\n value?: any,\n column?: Column<TData, unknown>\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":["Filters","getDefaultColumnDef","filterFn","getInitialState","state","columnFilters","globalFilter","undefined","getDefaultOptions","table","onColumnFiltersChange","makeStateUpdater","onGlobalFilterChange","filterFromLeafRows","maxLeafRowFilterDepth","globalFilterFn","getColumnCanGlobalFilter","column","_table$getCoreRowMode","_table$getCoreRowMode2","value","getCoreRowModel","flatRows","_getAllCellsByColumnId","id","getValue","createColumn","getAutoFilterFn","firstRow","filterFns","includesString","inNumberRange","equals","Array","isArray","arrIncludes","weakEquals","getFilterFn","_table$options$filter","_table$options$filter2","isFunction","columnDef","options","getCanFilter","_column$columnDef$ena","_table$options$enable","_table$options$enable2","enableColumnFilter","enableColumnFilters","enableFilters","accessorFn","getCanGlobalFilter","_column$columnDef$ena2","_table$options$enable3","_table$options$enable4","_table$options$getCol","enableGlobalFilter","getIsFiltered","getFilterIndex","getFilterValue","_table$getState$colum","_table$getState$colum2","getState","find","d","_table$getState$colum3","_table$getState$colum4","findIndex","setFilterValue","setColumnFilters","old","previousfilter","newFilter","functionalUpdate","shouldAutoRemoveFilter","_old$filter","filter","newFilterObj","_old$map","map","length","_getFacetedRowModel","getFacetedRowModel","getPreFilteredRowModel","_getFacetedUniqueValues","getFacetedUniqueValues","Map","_getFacetedMinMaxValues","getFacetedMinMaxValues","createRow","row","columnFiltersMeta","createTable","getGlobalAutoFilterFn","getGlobalFilterFn","_table$options$filter3","_table$options$filter4","updater","leafColumns","getAllLeafColumns","updateFn","_functionalUpdate","setGlobalFilter","resetGlobalFilter","defaultState","initialState","resetColumnFilters","_table$initialState$c","_table$initialState","getFilteredRowModel","_getFilteredRowModel","manualFiltering","_getGlobalFacetedRowModel","getGlobalFacetedRowModel","_getGlobalFacetedUniqueValues","getGlobalFacetedUniqueValues","_getGlobalFacetedMinMaxValues","getGlobalFacetedMinMaxValues","autoRemove"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Grouping.js","sources":["../../../src/features/Grouping.ts"],"sourcesContent":["import { RowModel } from '..'\nimport { BuiltInAggregationFn, aggregationFns } from '../aggregationFns'\nimport { TableFeature } from '../core/table'\nimport {\n Cell,\n Column,\n OnChangeFn,\n Table,\n Row,\n Updater,\n ColumnDefTemplate,\n RowData,\n AggregationFns,\n} from '../types'\nimport { isFunction, makeStateUpdater } from '../utils'\n\nexport type GroupingState = string[]\n\nexport interface GroupingTableState {\n grouping: GroupingState\n}\n\nexport type AggregationFn<TData extends RowData> = (\n columnId: string,\n leafRows: Row<TData>[],\n childRows: Row<TData>[]\n) => any\n\nexport type CustomAggregationFns = Record<string, AggregationFn<any>>\n\nexport type AggregationFnOption<TData extends RowData> =\n | 'auto'\n | keyof AggregationFns\n | BuiltInAggregationFn\n | AggregationFn<TData>\n\nexport interface GroupingColumnDef<TData extends RowData, TValue> {\n aggregationFn?: AggregationFnOption<TData>\n aggregatedCell?: ColumnDefTemplate<\n ReturnType<Cell<TData, TValue>['getContext']>\n >\n enableGrouping?: boolean\n}\n\nexport interface GroupingColumn<TData extends RowData> {\n getCanGroup: () => boolean\n getIsGrouped: () => boolean\n getGroupedIndex: () => number\n toggleGrouping: () => void\n getToggleGroupingHandler: () => () => void\n getAutoAggregationFn: () => AggregationFn<TData> | undefined\n getAggregationFn: () => AggregationFn<TData> | undefined\n}\n\nexport interface GroupingRow {\n groupingColumnId?: string\n groupingValue?: unknown\n getIsGrouped: () => boolean\n _groupingValuesCache: Record<string, any>\n}\n\nexport interface GroupingCell {\n getIsGrouped: () => boolean\n getIsPlaceholder: () => boolean\n getIsAggregated: () => boolean\n}\n\nexport interface ColumnDefaultOptions {\n // Column\n onGroupingChange: OnChangeFn<GroupingState>\n enableGrouping: boolean\n}\n\ninterface GroupingOptionsBase {\n manualGrouping?: boolean\n onGroupingChange?: OnChangeFn<GroupingState>\n enableGrouping?: boolean\n getGroupedRowModel?: (table: Table<any>) => () => RowModel<any>\n groupedColumnMode?: false | 'reorder' | 'remove'\n}\n\ntype ResolvedAggregationFns = keyof AggregationFns extends never\n ? {\n aggregationFns?: Record<string, AggregationFn<any>>\n }\n : {\n aggregationFns: Record<keyof AggregationFns, AggregationFn<any>>\n }\n\nexport interface GroupingOptions\n extends GroupingOptionsBase,\n ResolvedAggregationFns {}\n\nexport type GroupingColumnMode = false | 'reorder' | 'remove'\n\nexport interface GroupingInstance<TData extends RowData> {\n setGrouping: (updater: Updater<GroupingState>) => void\n resetGrouping: (defaultState?: boolean) => void\n getPreGroupedRowModel: () => RowModel<TData>\n getGroupedRowModel: () => RowModel<TData>\n _getGroupedRowModel?: () => RowModel<TData>\n}\n\n//\n\nexport const Grouping: TableFeature = {\n getDefaultColumnDef: <TData extends RowData>(): GroupingColumnDef<\n TData,\n unknown\n > => {\n return {\n aggregatedCell: props => (props.getValue() as any)?.toString?.() ?? null,\n aggregationFn: 'auto',\n }\n },\n\n getInitialState: (state): GroupingTableState => {\n return {\n grouping: [],\n ...state,\n }\n },\n\n getDefaultOptions: <TData extends RowData>(\n table: Table<TData>\n ): GroupingOptions => {\n return {\n onGroupingChange: makeStateUpdater('grouping', table),\n groupedColumnMode: 'reorder',\n }\n },\n\n createColumn: <TData extends RowData, TValue>(\n column: Column<TData, TValue>,\n table: Table<TData>\n ): GroupingColumn<TData> => {\n return {\n toggleGrouping: () => {\n table.setGrouping(old => {\n // Find any existing grouping for this column\n if (old?.includes(column.id)) {\n return old.filter(d => d !== column.id)\n }\n\n return [...(old ?? []), column.id]\n })\n },\n\n getCanGroup: () => {\n return (\n column.columnDef.enableGrouping ??\n true ??\n table.options.enableGrouping ??\n true ??\n !!column.accessorFn\n )\n },\n\n getIsGrouped: () => {\n return table.getState().grouping?.includes(column.id)\n },\n\n getGroupedIndex: () => table.getState().grouping?.indexOf(column.id),\n\n getToggleGroupingHandler: () => {\n const canGroup = column.getCanGroup()\n\n return () => {\n if (!canGroup) return\n column.toggleGrouping()\n }\n },\n getAutoAggregationFn: () => {\n const firstRow = table.getCoreRowModel().flatRows[0]\n\n const value = firstRow?.getValue(column.id)\n\n if (typeof value === 'number') {\n return aggregationFns.sum\n }\n\n if (Object.prototype.toString.call(value) === '[object Date]') {\n return aggregationFns.extent\n }\n },\n getAggregationFn: () => {\n if (!column) {\n throw new Error()\n }\n\n return isFunction(column.columnDef.aggregationFn)\n ? column.columnDef.aggregationFn\n : column.columnDef.aggregationFn === 'auto'\n ? column.getAutoAggregationFn()\n : table.options.aggregationFns?.[\n column.columnDef.aggregationFn as string\n ] ??\n aggregationFns[\n column.columnDef.aggregationFn as BuiltInAggregationFn\n ]\n },\n }\n },\n\n createTable: <TData extends RowData>(\n table: Table<TData>\n ): GroupingInstance<TData> => {\n return {\n setGrouping: updater => table.options.onGroupingChange?.(updater),\n\n resetGrouping: defaultState => {\n table.setGrouping(\n defaultState ? [] : table.initialState?.grouping ?? []\n )\n },\n\n getPreGroupedRowModel: () => table.getFilteredRowModel(),\n getGroupedRowModel: () => {\n if (!table._getGroupedRowModel && table.options.getGroupedRowModel) {\n table._getGroupedRowModel = table.options.getGroupedRowModel(table)\n }\n\n if (table.options.manualGrouping || !table._getGroupedRowModel) {\n return table.getPreGroupedRowModel()\n }\n\n return table._getGroupedRowModel()\n },\n }\n },\n\n createRow: <TData extends RowData>(row: Row<TData>): GroupingRow => {\n return {\n getIsGrouped: () => !!row.groupingColumnId,\n _groupingValuesCache: {},\n }\n },\n\n createCell: <TData extends RowData, TValue>(\n cell: Cell<TData, TValue>,\n column: Column<TData, TValue>,\n row: Row<TData>,\n table: Table<TData>\n ): GroupingCell => {\n const getRenderValue = () =>\n cell.getValue() ?? table.options.renderFallbackValue\n\n return {\n getIsGrouped: () =>\n column.getIsGrouped() && column.id === row.groupingColumnId,\n getIsPlaceholder: () => !cell.getIsGrouped() && column.getIsGrouped(),\n getIsAggregated: () =>\n !cell.getIsGrouped() &&\n !cell.getIsPlaceholder() &&\n !!row.subRows?.length,\n }\n },\n}\n\nexport function orderColumns<TData extends RowData>(\n leafColumns: Column<TData, unknown>[],\n grouping: string[],\n groupedColumnMode?: GroupingColumnMode\n) {\n if (!grouping?.length || !groupedColumnMode) {\n return leafColumns\n }\n\n const nonGroupingColumns = leafColumns.filter(\n col => !grouping.includes(col.id)\n )\n\n if (groupedColumnMode === 'remove') {\n return nonGroupingColumns\n }\n\n const groupingColumns = grouping\n .map(g => leafColumns.find(col => col.id === g)!)\n .filter(Boolean)\n\n return [...groupingColumns, ...nonGroupingColumns]\n}\n"],"names":["Grouping","getDefaultColumnDef","aggregatedCell","props","getValue","toString","aggregationFn","getInitialState","state","grouping","getDefaultOptions","table","onGroupingChange","makeStateUpdater","groupedColumnMode","createColumn","column","toggleGrouping","setGrouping","old","includes","id","filter","d","getCanGroup","columnDef","enableGrouping","options","accessorFn","getIsGrouped","getState","getGroupedIndex","indexOf","getToggleGroupingHandler","canGroup","getAutoAggregationFn","firstRow","getCoreRowModel","flatRows","value","aggregationFns","sum","Object","prototype","call","extent","getAggregationFn","Error","isFunction","createTable","updater","resetGrouping","defaultState","initialState","getPreGroupedRowModel","getFilteredRowModel","getGroupedRowModel","_getGroupedRowModel","manualGrouping","createRow","row","groupingColumnId","_groupingValuesCache","createCell","cell","getIsPlaceholder","getIsAggregated","subRows","length","orderColumns","leafColumns","nonGroupingColumns","col","groupingColumns","map","g","find","Boolean"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Grouping.js","sources":["../../../src/features/Grouping.ts"],"sourcesContent":["import { RowModel } from '..'\nimport { BuiltInAggregationFn, aggregationFns } from '../aggregationFns'\nimport { TableFeature } from '../core/table'\nimport {\n Cell,\n Column,\n OnChangeFn,\n Table,\n Row,\n Updater,\n ColumnDefTemplate,\n RowData,\n AggregationFns,\n} from '../types'\nimport { isFunction, makeStateUpdater } from '../utils'\n\nexport type GroupingState = string[]\n\nexport interface GroupingTableState {\n grouping: GroupingState\n}\n\nexport type AggregationFn<TData extends RowData> = (\n columnId: string,\n leafRows: Row<TData>[],\n childRows: Row<TData>[]\n) => any\n\nexport type CustomAggregationFns = Record<string, AggregationFn<any>>\n\nexport type AggregationFnOption<TData extends RowData> =\n | 'auto'\n | keyof AggregationFns\n | BuiltInAggregationFn\n | AggregationFn<TData>\n\nexport interface GroupingColumnDef<TData extends RowData, TValue> {\n aggregationFn?: AggregationFnOption<TData>\n aggregatedCell?: ColumnDefTemplate<\n ReturnType<Cell<TData, TValue>['getContext']>\n >\n enableGrouping?: boolean\n}\n\nexport interface GroupingColumn<TData extends RowData> {\n getCanGroup: () => boolean\n getIsGrouped: () => boolean\n getGroupedIndex: () => number\n toggleGrouping: () => void\n getToggleGroupingHandler: () => () => void\n getAutoAggregationFn: () => AggregationFn<TData> | undefined\n getAggregationFn: () => AggregationFn<TData> | undefined\n}\n\nexport interface GroupingRow {\n groupingColumnId?: string\n groupingValue?: unknown\n getIsGrouped: () => boolean\n _groupingValuesCache: Record<string, any>\n}\n\nexport interface GroupingCell {\n getIsGrouped: () => boolean\n getIsPlaceholder: () => boolean\n getIsAggregated: () => boolean\n}\n\nexport interface ColumnDefaultOptions {\n // Column\n onGroupingChange: OnChangeFn<GroupingState>\n enableGrouping: boolean\n}\n\ninterface GroupingOptionsBase {\n manualGrouping?: boolean\n onGroupingChange?: OnChangeFn<GroupingState>\n enableGrouping?: boolean\n getGroupedRowModel?: (table: Table<any>) => () => RowModel<any>\n groupedColumnMode?: false | 'reorder' | 'remove'\n}\n\ntype ResolvedAggregationFns = keyof AggregationFns extends never\n ? {\n aggregationFns?: Record<string, AggregationFn<any>>\n }\n : {\n aggregationFns: Record<keyof AggregationFns, AggregationFn<any>>\n }\n\nexport interface GroupingOptions\n extends GroupingOptionsBase,\n ResolvedAggregationFns {}\n\nexport type GroupingColumnMode = false | 'reorder' | 'remove'\n\nexport interface GroupingInstance<TData extends RowData> {\n setGrouping: (updater: Updater<GroupingState>) => void\n resetGrouping: (defaultState?: boolean) => void\n getPreGroupedRowModel: () => RowModel<TData>\n getGroupedRowModel: () => RowModel<TData>\n _getGroupedRowModel?: () => RowModel<TData>\n}\n\n//\n\nexport const Grouping: TableFeature = {\n getDefaultColumnDef: <TData extends RowData>(): GroupingColumnDef<\n TData,\n unknown\n > => {\n return {\n aggregatedCell: props => (props.getValue() as any)?.toString?.() ?? null,\n aggregationFn: 'auto',\n }\n },\n\n getInitialState: (state): GroupingTableState => {\n return {\n grouping: [],\n ...state,\n }\n },\n\n getDefaultOptions: <TData extends RowData>(\n table: Table<TData>\n ): GroupingOptions => {\n return {\n onGroupingChange: makeStateUpdater('grouping', table),\n groupedColumnMode: 'reorder',\n }\n },\n\n createColumn: <TData extends RowData, TValue>(\n column: Column<TData, TValue>,\n table: Table<TData>\n ): GroupingColumn<TData> => {\n return {\n toggleGrouping: () => {\n table.setGrouping(old => {\n // Find any existing grouping for this column\n if (old?.includes(column.id)) {\n return old.filter(d => d !== column.id)\n }\n\n return [...(old ?? []), column.id]\n })\n },\n\n getCanGroup: () => {\n return (\n column.columnDef.enableGrouping ??\n true ??\n table.options.enableGrouping ??\n true ??\n !!column.accessorFn\n )\n },\n\n getIsGrouped: () => {\n return table.getState().grouping?.includes(column.id)\n },\n\n getGroupedIndex: () => table.getState().grouping?.indexOf(column.id),\n\n getToggleGroupingHandler: () => {\n const canGroup = column.getCanGroup()\n\n return () => {\n if (!canGroup) return\n column.toggleGrouping()\n }\n },\n getAutoAggregationFn: () => {\n const firstRow = table.getCoreRowModel().flatRows[0]\n\n const value = firstRow?.getValue(column.id)\n\n if (typeof value === 'number') {\n return aggregationFns.sum\n }\n\n if (Object.prototype.toString.call(value) === '[object Date]') {\n return aggregationFns.extent\n }\n },\n getAggregationFn: () => {\n if (!column) {\n throw new Error()\n }\n\n return isFunction(column.columnDef.aggregationFn)\n ? column.columnDef.aggregationFn\n : column.columnDef.aggregationFn === 'auto'\n ? column.getAutoAggregationFn()\n : table.options.aggregationFns?.[\n column.columnDef.aggregationFn as string\n ] ??\n aggregationFns[\n column.columnDef.aggregationFn as BuiltInAggregationFn\n ]\n },\n }\n },\n\n createTable: <TData extends RowData>(\n table: Table<TData>\n ): GroupingInstance<TData> => {\n return {\n setGrouping: updater => table.options.onGroupingChange?.(updater),\n\n resetGrouping: defaultState => {\n table.setGrouping(\n defaultState ? [] : table.initialState?.grouping ?? []\n )\n },\n\n getPreGroupedRowModel: () => table.getFilteredRowModel(),\n getGroupedRowModel: () => {\n if (!table._getGroupedRowModel && table.options.getGroupedRowModel) {\n table._getGroupedRowModel = table.options.getGroupedRowModel(table)\n }\n\n if (table.options.manualGrouping || !table._getGroupedRowModel) {\n return table.getPreGroupedRowModel()\n }\n\n return table._getGroupedRowModel()\n },\n }\n },\n\n createRow: <TData extends RowData>(row: Row<TData>): GroupingRow => {\n return {\n getIsGrouped: () => !!row.groupingColumnId,\n _groupingValuesCache: {},\n }\n },\n\n createCell: <TData extends RowData, TValue>(\n cell: Cell<TData, TValue>,\n column: Column<TData, TValue>,\n row: Row<TData>,\n table: Table<TData>\n ): GroupingCell => {\n const getRenderValue = () =>\n cell.getValue() ?? table.options.renderFallbackValue\n\n return {\n getIsGrouped: () =>\n column.getIsGrouped() && column.id === row.groupingColumnId,\n getIsPlaceholder: () => !cell.getIsGrouped() && column.getIsGrouped(),\n getIsAggregated: () =>\n !cell.getIsGrouped() &&\n !cell.getIsPlaceholder() &&\n !!row.subRows?.length,\n }\n },\n}\n\nexport function orderColumns<TData extends RowData>(\n leafColumns: Column<TData, unknown>[],\n grouping: string[],\n groupedColumnMode?: GroupingColumnMode\n) {\n if (!grouping?.length || !groupedColumnMode) {\n return leafColumns\n }\n\n const nonGroupingColumns = leafColumns.filter(\n col => !grouping.includes(col.id)\n )\n\n if (groupedColumnMode === 'remove') {\n return nonGroupingColumns\n }\n\n const groupingColumns = grouping\n .map(g => leafColumns.find(col => col.id === g)!)\n .filter(Boolean)\n\n return [...groupingColumns, ...nonGroupingColumns]\n}\n"],"names":["Grouping","getDefaultColumnDef","aggregatedCell","props","_toString","_props$getValue","getValue","toString","aggregationFn","getInitialState","state","grouping","getDefaultOptions","table","onGroupingChange","makeStateUpdater","groupedColumnMode","createColumn","column","toggleGrouping","setGrouping","old","includes","id","filter","d","getCanGroup","_ref","_ref2","_ref3","_column$columnDef$ena","columnDef","enableGrouping","options","accessorFn","getIsGrouped","_table$getState$group","getState","getGroupedIndex","_table$getState$group2","indexOf","getToggleGroupingHandler","canGroup","getAutoAggregationFn","firstRow","getCoreRowModel","flatRows","value","aggregationFns","sum","Object","prototype","call","extent","getAggregationFn","_table$options$aggreg","_table$options$aggreg2","Error","isFunction","createTable","updater","resetGrouping","defaultState","_table$initialState$g","_table$initialState","initialState","getPreGroupedRowModel","getFilteredRowModel","getGroupedRowModel","_getGroupedRowModel","manualGrouping","createRow","row","groupingColumnId","_groupingValuesCache","createCell","cell","getIsPlaceholder","getIsAggregated","_row$subRows","subRows","length","orderColumns","leafColumns","nonGroupingColumns","col","groupingColumns","map","g","find","Boolean"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Ordering.js","sources":["../../../src/features/Ordering.ts"],"sourcesContent":["import { makeStateUpdater, memo } from '../utils'\n\nimport { Table, OnChangeFn, Updater, Column, RowData } from '../types'\n\nimport { orderColumns } from './Grouping'\nimport { TableFeature } from '../core/table'\n\nexport interface ColumnOrderTableState {\n columnOrder: ColumnOrderState\n}\n\nexport type ColumnOrderState = string[]\n\nexport interface ColumnOrderOptions {\n onColumnOrderChange?: OnChangeFn<ColumnOrderState>\n}\n\nexport interface ColumnOrderDefaultOptions {\n onColumnOrderChange: OnChangeFn<ColumnOrderState>\n}\n\nexport interface ColumnOrderInstance<TData extends RowData> {\n setColumnOrder: (updater: Updater<ColumnOrderState>) => void\n resetColumnOrder: (defaultState?: boolean) => void\n _getOrderColumnsFn: () => (\n columns: Column<TData, unknown>[]\n ) => Column<TData, unknown>[]\n}\n\n//\n\nexport const Ordering: TableFeature = {\n getInitialState: (state): ColumnOrderTableState => {\n return {\n columnOrder: [],\n ...state,\n }\n },\n\n getDefaultOptions: <TData extends RowData>(\n table: Table<TData>\n ): ColumnOrderDefaultOptions => {\n return {\n onColumnOrderChange: makeStateUpdater('columnOrder', table),\n }\n },\n\n createTable: <TData extends RowData>(\n table: Table<TData>\n ): ColumnOrderInstance<TData> => {\n return {\n setColumnOrder: updater => table.options.onColumnOrderChange?.(updater),\n resetColumnOrder: defaultState => {\n table.setColumnOrder(\n defaultState ? [] : table.initialState.columnOrder ?? []\n )\n },\n _getOrderColumnsFn: memo(\n () => [\n table.getState().columnOrder,\n table.getState().grouping,\n table.options.groupedColumnMode,\n ],\n (columnOrder, grouping, groupedColumnMode) => columns => {\n // Sort grouped columns to the start of the column list\n // before the headers are built\n let orderedColumns: Column<TData, unknown>[] = []\n\n // If there is no order, return the normal columns\n if (!columnOrder?.length) {\n orderedColumns = columns\n } else {\n const columnOrderCopy = [...columnOrder]\n\n // If there is an order, make a copy of the columns\n const columnsCopy = [...columns]\n\n // And make a new ordered array of the columns\n\n // Loop over the columns and place them in order into the new array\n while (columnsCopy.length && columnOrderCopy.length) {\n const targetColumnId = columnOrderCopy.shift()\n const foundIndex = columnsCopy.findIndex(\n d => d.id === targetColumnId\n )\n if (foundIndex > -1) {\n orderedColumns.push(columnsCopy.splice(foundIndex, 1)[0]!)\n }\n }\n\n // If there are any columns left, add them to the end\n orderedColumns = [...orderedColumns, ...columnsCopy]\n }\n\n return orderColumns(orderedColumns, grouping, groupedColumnMode)\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getOrderColumnsFn',\n // debug: () => table.options.debugAll ?? table.options.debugTable,\n }\n ),\n }\n },\n}\n"],"names":["Ordering","getInitialState","state","columnOrder","getDefaultOptions","table","onColumnOrderChange","makeStateUpdater","createTable","setColumnOrder","updater","options","resetColumnOrder","defaultState","initialState","_getOrderColumnsFn","memo","getState","grouping","groupedColumnMode","columns","orderedColumns","length","columnOrderCopy","columnsCopy","targetColumnId","shift","foundIndex","findIndex","d","id","push","splice","orderColumns","key","process","env","NODE_ENV"],"mappings":";;;;;;;;;;;;;;;;;AA6BA;;AAEO,MAAMA,QAAsB,GAAG;EACpCC,eAAe,EAAGC,KAAK,IAA4B;IACjD,OAAO;AACLC,MAAAA,WAAW,EAAE,EAAE;MACf,GAAGD,KAAAA;KACJ,CAAA;GACF;EAEDE,iBAAiB,EACfC,KAAmB,IACW;IAC9B,OAAO;AACLC,MAAAA,mBAAmB,EAAEC,sBAAgB,CAAC,aAAa,EAAEF,KAAK,CAAA;KAC3D,CAAA;GACF;EAEDG,WAAW,EACTH,KAAmB,IACY;IAC/B,OAAO;AACLI,MAAAA,cAAc,EAAEC,OAAO,IAAIL,KAAK,CAACM,OAAO,CAACL,mBAAmB,IAAjCD,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,KAAK,CAACM,OAAO,CAACL,mBAAmB,CAAGI,OAAO,CAAC;MACvEE,gBAAgB,EAAEC,YAAY,IAAI;AAAA,QAAA,
|
|
1
|
+
{"version":3,"file":"Ordering.js","sources":["../../../src/features/Ordering.ts"],"sourcesContent":["import { makeStateUpdater, memo } from '../utils'\n\nimport { Table, OnChangeFn, Updater, Column, RowData } from '../types'\n\nimport { orderColumns } from './Grouping'\nimport { TableFeature } from '../core/table'\n\nexport interface ColumnOrderTableState {\n columnOrder: ColumnOrderState\n}\n\nexport type ColumnOrderState = string[]\n\nexport interface ColumnOrderOptions {\n onColumnOrderChange?: OnChangeFn<ColumnOrderState>\n}\n\nexport interface ColumnOrderDefaultOptions {\n onColumnOrderChange: OnChangeFn<ColumnOrderState>\n}\n\nexport interface ColumnOrderInstance<TData extends RowData> {\n setColumnOrder: (updater: Updater<ColumnOrderState>) => void\n resetColumnOrder: (defaultState?: boolean) => void\n _getOrderColumnsFn: () => (\n columns: Column<TData, unknown>[]\n ) => Column<TData, unknown>[]\n}\n\n//\n\nexport const Ordering: TableFeature = {\n getInitialState: (state): ColumnOrderTableState => {\n return {\n columnOrder: [],\n ...state,\n }\n },\n\n getDefaultOptions: <TData extends RowData>(\n table: Table<TData>\n ): ColumnOrderDefaultOptions => {\n return {\n onColumnOrderChange: makeStateUpdater('columnOrder', table),\n }\n },\n\n createTable: <TData extends RowData>(\n table: Table<TData>\n ): ColumnOrderInstance<TData> => {\n return {\n setColumnOrder: updater => table.options.onColumnOrderChange?.(updater),\n resetColumnOrder: defaultState => {\n table.setColumnOrder(\n defaultState ? [] : table.initialState.columnOrder ?? []\n )\n },\n _getOrderColumnsFn: memo(\n () => [\n table.getState().columnOrder,\n table.getState().grouping,\n table.options.groupedColumnMode,\n ],\n (columnOrder, grouping, groupedColumnMode) => columns => {\n // Sort grouped columns to the start of the column list\n // before the headers are built\n let orderedColumns: Column<TData, unknown>[] = []\n\n // If there is no order, return the normal columns\n if (!columnOrder?.length) {\n orderedColumns = columns\n } else {\n const columnOrderCopy = [...columnOrder]\n\n // If there is an order, make a copy of the columns\n const columnsCopy = [...columns]\n\n // And make a new ordered array of the columns\n\n // Loop over the columns and place them in order into the new array\n while (columnsCopy.length && columnOrderCopy.length) {\n const targetColumnId = columnOrderCopy.shift()\n const foundIndex = columnsCopy.findIndex(\n d => d.id === targetColumnId\n )\n if (foundIndex > -1) {\n orderedColumns.push(columnsCopy.splice(foundIndex, 1)[0]!)\n }\n }\n\n // If there are any columns left, add them to the end\n orderedColumns = [...orderedColumns, ...columnsCopy]\n }\n\n return orderColumns(orderedColumns, grouping, groupedColumnMode)\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getOrderColumnsFn',\n // debug: () => table.options.debugAll ?? table.options.debugTable,\n }\n ),\n }\n },\n}\n"],"names":["Ordering","getInitialState","state","columnOrder","getDefaultOptions","table","onColumnOrderChange","makeStateUpdater","createTable","setColumnOrder","updater","options","resetColumnOrder","defaultState","_table$initialState$c","initialState","_getOrderColumnsFn","memo","getState","grouping","groupedColumnMode","columns","orderedColumns","length","columnOrderCopy","columnsCopy","targetColumnId","shift","foundIndex","findIndex","d","id","push","splice","orderColumns","key","process","env","NODE_ENV"],"mappings":";;;;;;;;;;;;;;;;;AA6BA;;AAEO,MAAMA,QAAsB,GAAG;EACpCC,eAAe,EAAGC,KAAK,IAA4B;IACjD,OAAO;AACLC,MAAAA,WAAW,EAAE,EAAE;MACf,GAAGD,KAAAA;KACJ,CAAA;GACF;EAEDE,iBAAiB,EACfC,KAAmB,IACW;IAC9B,OAAO;AACLC,MAAAA,mBAAmB,EAAEC,sBAAgB,CAAC,aAAa,EAAEF,KAAK,CAAA;KAC3D,CAAA;GACF;EAEDG,WAAW,EACTH,KAAmB,IACY;IAC/B,OAAO;AACLI,MAAAA,cAAc,EAAEC,OAAO,IAAIL,KAAK,CAACM,OAAO,CAACL,mBAAmB,IAAjCD,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,KAAK,CAACM,OAAO,CAACL,mBAAmB,CAAGI,OAAO,CAAC;MACvEE,gBAAgB,EAAEC,YAAY,IAAI;AAAA,QAAA,IAAAC,qBAAA,CAAA;AAChCT,QAAAA,KAAK,CAACI,cAAc,CAClBI,YAAY,GAAG,EAAE,IAAAC,qBAAA,GAAGT,KAAK,CAACU,YAAY,CAACZ,WAAW,YAAAW,qBAAA,GAAI,EAAE,CACzD,CAAA;OACF;AACDE,MAAAA,kBAAkB,EAAEC,UAAI,CACtB,MAAM,CACJZ,KAAK,CAACa,QAAQ,EAAE,CAACf,WAAW,EAC5BE,KAAK,CAACa,QAAQ,EAAE,CAACC,QAAQ,EACzBd,KAAK,CAACM,OAAO,CAACS,iBAAiB,CAChC,EACD,CAACjB,WAAW,EAAEgB,QAAQ,EAAEC,iBAAiB,KAAKC,OAAO,IAAI;AACvD;AACA;QACA,IAAIC,cAAwC,GAAG,EAAE,CAAA;;AAEjD;AACA,QAAA,IAAI,EAACnB,WAAW,IAAA,IAAA,IAAXA,WAAW,CAAEoB,MAAM,CAAE,EAAA;AACxBD,UAAAA,cAAc,GAAGD,OAAO,CAAA;AAC1B,SAAC,MAAM;AACL,UAAA,MAAMG,eAAe,GAAG,CAAC,GAAGrB,WAAW,CAAC,CAAA;;AAExC;AACA,UAAA,MAAMsB,WAAW,GAAG,CAAC,GAAGJ,OAAO,CAAC,CAAA;;AAEhC;;AAEA;AACA,UAAA,OAAOI,WAAW,CAACF,MAAM,IAAIC,eAAe,CAACD,MAAM,EAAE;AACnD,YAAA,MAAMG,cAAc,GAAGF,eAAe,CAACG,KAAK,EAAE,CAAA;AAC9C,YAAA,MAAMC,UAAU,GAAGH,WAAW,CAACI,SAAS,CACtCC,CAAC,IAAIA,CAAC,CAACC,EAAE,KAAKL,cAAc,CAC7B,CAAA;AACD,YAAA,IAAIE,UAAU,GAAG,CAAC,CAAC,EAAE;AACnBN,cAAAA,cAAc,CAACU,IAAI,CAACP,WAAW,CAACQ,MAAM,CAACL,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAE,CAAA;AAC5D,aAAA;AACF,WAAA;;AAEA;AACAN,UAAAA,cAAc,GAAG,CAAC,GAAGA,cAAc,EAAE,GAAGG,WAAW,CAAC,CAAA;AACtD,SAAA;AAEA,QAAA,OAAOS,qBAAY,CAACZ,cAAc,EAAEH,QAAQ,EAAEC,iBAAiB,CAAC,CAAA;AAClE,OAAC,EACD;QACEe,GAAG,EAAEC,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,aAAa,IAAI,mBAAA;AAC/C;OACD,CAAA;KAEJ,CAAA;AACH,GAAA;AACF;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Pagination.js","sources":["../../../src/features/Pagination.ts"],"sourcesContent":["import { TableFeature } from '../core/table'\nimport { OnChangeFn, Table, RowModel, Updater, RowData } from '../types'\nimport { functionalUpdate, makeStateUpdater, memo } from '../utils'\n\nexport interface PaginationState {\n pageIndex: number\n pageSize: number\n}\n\nexport interface PaginationTableState {\n pagination: PaginationState\n}\n\nexport interface PaginationInitialTableState {\n pagination?: Partial<PaginationState>\n}\n\nexport interface PaginationOptions {\n pageCount?: number\n manualPagination?: boolean\n onPaginationChange?: OnChangeFn<PaginationState>\n autoResetPageIndex?: boolean\n getPaginationRowModel?: (table: Table<any>) => () => RowModel<any>\n}\n\nexport interface PaginationDefaultOptions {\n onPaginationChange: OnChangeFn<PaginationState>\n}\n\nexport interface PaginationInstance<TData extends RowData> {\n _autoResetPageIndex: () => void\n setPagination: (updater: Updater<PaginationState>) => void\n resetPagination: (defaultState?: boolean) => void\n setPageIndex: (updater: Updater<number>) => void\n resetPageIndex: (defaultState?: boolean) => void\n setPageSize: (updater: Updater<number>) => void\n resetPageSize: (defaultState?: boolean) => void\n setPageCount: (updater: Updater<number>) => void\n getPageOptions: () => number[]\n getCanPreviousPage: () => boolean\n getCanNextPage: () => boolean\n previousPage: () => void\n nextPage: () => void\n getPrePaginationRowModel: () => RowModel<TData>\n getPaginationRowModel: () => RowModel<TData>\n _getPaginationRowModel?: () => RowModel<TData>\n getPageCount: () => number\n}\n\n//\n\nconst defaultPageIndex = 0\nconst defaultPageSize = 10\n\nconst getDefaultPaginationState = (): PaginationState => ({\n pageIndex: defaultPageIndex,\n pageSize: defaultPageSize,\n})\n\nexport const Pagination: TableFeature = {\n getInitialState: (state): PaginationTableState => {\n return {\n ...state,\n pagination: {\n ...getDefaultPaginationState(),\n ...state?.pagination,\n },\n }\n },\n\n getDefaultOptions: <TData extends RowData>(\n table: Table<TData>\n ): PaginationDefaultOptions => {\n return {\n onPaginationChange: makeStateUpdater('pagination', table),\n }\n },\n\n createTable: <TData extends RowData>(\n table: Table<TData>\n ): PaginationInstance<TData> => {\n let registered = false\n let queued = false\n\n return {\n _autoResetPageIndex: () => {\n if (!registered) {\n table._queue(() => {\n registered = true\n })\n return\n }\n\n if (\n table.options.autoResetAll ??\n table.options.autoResetPageIndex ??\n !table.options.manualPagination\n ) {\n if (queued) return\n queued = true\n table._queue(() => {\n table.resetPageIndex()\n queued = false\n })\n }\n },\n setPagination: updater => {\n const safeUpdater: Updater<PaginationState> = old => {\n let newState = functionalUpdate(updater, old)\n\n return newState\n }\n\n return table.options.onPaginationChange?.(safeUpdater)\n },\n resetPagination: defaultState => {\n table.setPagination(\n defaultState\n ? getDefaultPaginationState()\n : table.initialState.pagination ?? getDefaultPaginationState()\n )\n },\n setPageIndex: updater => {\n table.setPagination(old => {\n let pageIndex = functionalUpdate(updater, old.pageIndex)\n\n const maxPageIndex =\n typeof table.options.pageCount === 'undefined' ||\n table.options.pageCount === -1\n ? Number.MAX_SAFE_INTEGER\n : table.options.pageCount - 1\n\n pageIndex = Math.max(0, Math.min(pageIndex, maxPageIndex))\n\n return {\n ...old,\n pageIndex,\n }\n })\n },\n resetPageIndex: defaultState => {\n table.setPageIndex(\n defaultState\n ? defaultPageIndex\n : table.initialState?.pagination?.pageIndex ?? defaultPageIndex\n )\n },\n resetPageSize: defaultState => {\n table.setPageSize(\n defaultState\n ? defaultPageSize\n : table.initialState?.pagination?.pageSize ?? defaultPageSize\n )\n },\n setPageSize: updater => {\n table.setPagination(old => {\n const pageSize = Math.max(1, functionalUpdate(updater, old.pageSize))\n const topRowIndex = old.pageSize * old.pageIndex!\n const pageIndex = Math.floor(topRowIndex / pageSize)\n\n return {\n ...old,\n pageIndex,\n pageSize,\n }\n })\n },\n setPageCount: updater =>\n table.setPagination(old => {\n let newPageCount = functionalUpdate(\n updater,\n table.options.pageCount ?? -1\n )\n\n if (typeof newPageCount === 'number') {\n newPageCount = Math.max(-1, newPageCount)\n }\n\n return {\n ...old,\n pageCount: newPageCount,\n }\n }),\n\n getPageOptions: memo(\n () => [table.getPageCount()],\n pageCount => {\n let pageOptions: number[] = []\n if (pageCount && pageCount > 0) {\n pageOptions = [...new Array(pageCount)].fill(null).map((_, i) => i)\n }\n return pageOptions\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getPageOptions',\n debug: () => table.options.debugAll ?? table.options.debugTable,\n }\n ),\n\n getCanPreviousPage: () => table.getState().pagination.pageIndex > 0,\n\n getCanNextPage: () => {\n const { pageIndex } = table.getState().pagination\n\n const pageCount = table.getPageCount()\n\n if (pageCount === -1) {\n return true\n }\n\n if (pageCount === 0) {\n return false\n }\n\n return pageIndex < pageCount - 1\n },\n\n previousPage: () => {\n return table.setPageIndex(old => old - 1)\n },\n\n nextPage: () => {\n return table.setPageIndex(old => {\n return old + 1\n })\n },\n\n getPrePaginationRowModel: () => table.getExpandedRowModel(),\n getPaginationRowModel: () => {\n if (\n !table._getPaginationRowModel &&\n table.options.getPaginationRowModel\n ) {\n table._getPaginationRowModel =\n table.options.getPaginationRowModel(table)\n }\n\n if (table.options.manualPagination || !table._getPaginationRowModel) {\n return table.getPrePaginationRowModel()\n }\n\n return table._getPaginationRowModel()\n },\n\n getPageCount: () => {\n return (\n table.options.pageCount ??\n Math.ceil(\n table.getPrePaginationRowModel().rows.length /\n table.getState().pagination.pageSize\n )\n )\n },\n }\n },\n}\n"],"names":["defaultPageIndex","defaultPageSize","getDefaultPaginationState","pageIndex","pageSize","Pagination","getInitialState","state","pagination","getDefaultOptions","table","onPaginationChange","makeStateUpdater","createTable","registered","queued","_autoResetPageIndex","_queue","options","autoResetAll","autoResetPageIndex","manualPagination","resetPageIndex","setPagination","updater","safeUpdater","old","newState","functionalUpdate","resetPagination","defaultState","initialState","setPageIndex","maxPageIndex","pageCount","Number","MAX_SAFE_INTEGER","Math","max","min","resetPageSize","setPageSize","topRowIndex","floor","setPageCount","newPageCount","getPageOptions","memo","getPageCount","pageOptions","Array","fill","map","_","i","key","process","env","NODE_ENV","debug","debugAll","debugTable","getCanPreviousPage","getState","getCanNextPage","previousPage","nextPage","getPrePaginationRowModel","getExpandedRowModel","getPaginationRowModel","_getPaginationRowModel","ceil","rows","length"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Pagination.js","sources":["../../../src/features/Pagination.ts"],"sourcesContent":["import { TableFeature } from '../core/table'\nimport { OnChangeFn, Table, RowModel, Updater, RowData } from '../types'\nimport { functionalUpdate, makeStateUpdater, memo } from '../utils'\n\nexport interface PaginationState {\n pageIndex: number\n pageSize: number\n}\n\nexport interface PaginationTableState {\n pagination: PaginationState\n}\n\nexport interface PaginationInitialTableState {\n pagination?: Partial<PaginationState>\n}\n\nexport interface PaginationOptions {\n pageCount?: number\n manualPagination?: boolean\n onPaginationChange?: OnChangeFn<PaginationState>\n autoResetPageIndex?: boolean\n getPaginationRowModel?: (table: Table<any>) => () => RowModel<any>\n}\n\nexport interface PaginationDefaultOptions {\n onPaginationChange: OnChangeFn<PaginationState>\n}\n\nexport interface PaginationInstance<TData extends RowData> {\n _autoResetPageIndex: () => void\n setPagination: (updater: Updater<PaginationState>) => void\n resetPagination: (defaultState?: boolean) => void\n setPageIndex: (updater: Updater<number>) => void\n resetPageIndex: (defaultState?: boolean) => void\n setPageSize: (updater: Updater<number>) => void\n resetPageSize: (defaultState?: boolean) => void\n setPageCount: (updater: Updater<number>) => void\n getPageOptions: () => number[]\n getCanPreviousPage: () => boolean\n getCanNextPage: () => boolean\n previousPage: () => void\n nextPage: () => void\n getPrePaginationRowModel: () => RowModel<TData>\n getPaginationRowModel: () => RowModel<TData>\n _getPaginationRowModel?: () => RowModel<TData>\n getPageCount: () => number\n}\n\n//\n\nconst defaultPageIndex = 0\nconst defaultPageSize = 10\n\nconst getDefaultPaginationState = (): PaginationState => ({\n pageIndex: defaultPageIndex,\n pageSize: defaultPageSize,\n})\n\nexport const Pagination: TableFeature = {\n getInitialState: (state): PaginationTableState => {\n return {\n ...state,\n pagination: {\n ...getDefaultPaginationState(),\n ...state?.pagination,\n },\n }\n },\n\n getDefaultOptions: <TData extends RowData>(\n table: Table<TData>\n ): PaginationDefaultOptions => {\n return {\n onPaginationChange: makeStateUpdater('pagination', table),\n }\n },\n\n createTable: <TData extends RowData>(\n table: Table<TData>\n ): PaginationInstance<TData> => {\n let registered = false\n let queued = false\n\n return {\n _autoResetPageIndex: () => {\n if (!registered) {\n table._queue(() => {\n registered = true\n })\n return\n }\n\n if (\n table.options.autoResetAll ??\n table.options.autoResetPageIndex ??\n !table.options.manualPagination\n ) {\n if (queued) return\n queued = true\n table._queue(() => {\n table.resetPageIndex()\n queued = false\n })\n }\n },\n setPagination: updater => {\n const safeUpdater: Updater<PaginationState> = old => {\n let newState = functionalUpdate(updater, old)\n\n return newState\n }\n\n return table.options.onPaginationChange?.(safeUpdater)\n },\n resetPagination: defaultState => {\n table.setPagination(\n defaultState\n ? getDefaultPaginationState()\n : table.initialState.pagination ?? getDefaultPaginationState()\n )\n },\n setPageIndex: updater => {\n table.setPagination(old => {\n let pageIndex = functionalUpdate(updater, old.pageIndex)\n\n const maxPageIndex =\n typeof table.options.pageCount === 'undefined' ||\n table.options.pageCount === -1\n ? Number.MAX_SAFE_INTEGER\n : table.options.pageCount - 1\n\n pageIndex = Math.max(0, Math.min(pageIndex, maxPageIndex))\n\n return {\n ...old,\n pageIndex,\n }\n })\n },\n resetPageIndex: defaultState => {\n table.setPageIndex(\n defaultState\n ? defaultPageIndex\n : table.initialState?.pagination?.pageIndex ?? defaultPageIndex\n )\n },\n resetPageSize: defaultState => {\n table.setPageSize(\n defaultState\n ? defaultPageSize\n : table.initialState?.pagination?.pageSize ?? defaultPageSize\n )\n },\n setPageSize: updater => {\n table.setPagination(old => {\n const pageSize = Math.max(1, functionalUpdate(updater, old.pageSize))\n const topRowIndex = old.pageSize * old.pageIndex!\n const pageIndex = Math.floor(topRowIndex / pageSize)\n\n return {\n ...old,\n pageIndex,\n pageSize,\n }\n })\n },\n setPageCount: updater =>\n table.setPagination(old => {\n let newPageCount = functionalUpdate(\n updater,\n table.options.pageCount ?? -1\n )\n\n if (typeof newPageCount === 'number') {\n newPageCount = Math.max(-1, newPageCount)\n }\n\n return {\n ...old,\n pageCount: newPageCount,\n }\n }),\n\n getPageOptions: memo(\n () => [table.getPageCount()],\n pageCount => {\n let pageOptions: number[] = []\n if (pageCount && pageCount > 0) {\n pageOptions = [...new Array(pageCount)].fill(null).map((_, i) => i)\n }\n return pageOptions\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getPageOptions',\n debug: () => table.options.debugAll ?? table.options.debugTable,\n }\n ),\n\n getCanPreviousPage: () => table.getState().pagination.pageIndex > 0,\n\n getCanNextPage: () => {\n const { pageIndex } = table.getState().pagination\n\n const pageCount = table.getPageCount()\n\n if (pageCount === -1) {\n return true\n }\n\n if (pageCount === 0) {\n return false\n }\n\n return pageIndex < pageCount - 1\n },\n\n previousPage: () => {\n return table.setPageIndex(old => old - 1)\n },\n\n nextPage: () => {\n return table.setPageIndex(old => {\n return old + 1\n })\n },\n\n getPrePaginationRowModel: () => table.getExpandedRowModel(),\n getPaginationRowModel: () => {\n if (\n !table._getPaginationRowModel &&\n table.options.getPaginationRowModel\n ) {\n table._getPaginationRowModel =\n table.options.getPaginationRowModel(table)\n }\n\n if (table.options.manualPagination || !table._getPaginationRowModel) {\n return table.getPrePaginationRowModel()\n }\n\n return table._getPaginationRowModel()\n },\n\n getPageCount: () => {\n return (\n table.options.pageCount ??\n Math.ceil(\n table.getPrePaginationRowModel().rows.length /\n table.getState().pagination.pageSize\n )\n )\n },\n }\n },\n}\n"],"names":["defaultPageIndex","defaultPageSize","getDefaultPaginationState","pageIndex","pageSize","Pagination","getInitialState","state","pagination","getDefaultOptions","table","onPaginationChange","makeStateUpdater","createTable","registered","queued","_autoResetPageIndex","_ref","_table$options$autoRe","_queue","options","autoResetAll","autoResetPageIndex","manualPagination","resetPageIndex","setPagination","updater","safeUpdater","old","newState","functionalUpdate","resetPagination","defaultState","_table$initialState$p","initialState","setPageIndex","maxPageIndex","pageCount","Number","MAX_SAFE_INTEGER","Math","max","min","_table$initialState$p2","_table$initialState","_table$initialState$p3","resetPageSize","_table$initialState$p4","_table$initialState2","_table$initialState2$","setPageSize","topRowIndex","floor","setPageCount","_table$options$pageCo","newPageCount","getPageOptions","memo","getPageCount","pageOptions","Array","fill","map","_","i","key","process","env","NODE_ENV","debug","_table$options$debugA","debugAll","debugTable","getCanPreviousPage","getState","getCanNextPage","previousPage","nextPage","getPrePaginationRowModel","getExpandedRowModel","getPaginationRowModel","_getPaginationRowModel","_table$options$pageCo2","ceil","rows","length"],"mappings":"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"}
|