@tanstack/table-core 8.0.0-alpha.45 → 8.0.0-alpha.46
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/cjs/features/ColumnSizing.js.map +1 -1
- package/build/cjs/features/Expanding.js.map +1 -1
- package/build/cjs/features/Grouping.js.map +1 -1
- package/build/cjs/features/RowSelection.js +2 -2
- package/build/cjs/features/RowSelection.js.map +1 -1
- package/build/cjs/features/Sorting.js.map +1 -1
- package/build/cjs/features/Visibility.js.map +1 -1
- package/build/esm/index.js +2 -2
- package/build/esm/index.js.map +1 -1
- package/build/stats-html.html +1 -1
- package/build/stats-react.json +291 -291
- package/build/types/features/Expanding.d.ts +1 -1
- package/build/types/features/Grouping.d.ts +1 -1
- package/build/types/features/RowSelection.d.ts +1 -1
- package/build/types/features/Sorting.d.ts +2 -2
- package/build/umd/index.development.js +2 -2
- package/build/umd/index.development.js.map +1 -1
- package/build/umd/index.production.js.map +1 -1
- package/package.json +1 -1
- package/src/features/ColumnSizing.ts +4 -4
- package/src/features/Expanding.ts +3 -3
- package/src/features/Grouping.ts +2 -2
- package/src/features/RowSelection.ts +13 -11
- package/src/features/Sorting.ts +5 -5
- package/src/features/Visibility.ts +4 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ColumnSizing.js","sources":["../../../src/features/ColumnSizing.ts"],"sourcesContent":["import {\n Column,\n Getter,\n Header,\n OnChangeFn,\n AnyGenerics,\n PartialGenerics,\n PropGetterValue,\n TableInstance,\n Updater,\n} from '../types'\nimport { functionalUpdate, makeStateUpdater, memo, propGetter } from '../utils'\n\n//\n\nexport type ColumnSizing = Record<string, number>\n\nexport type ColumnSizingInfoState = {\n startOffset: null | number\n startSize: null | number\n deltaOffset: null | number\n deltaPercentage: null | number\n isResizingColumn: false | string\n columnSizingStart: [string, number][]\n}\n\nexport type ColumnSizingTableState = {\n columnSizing: ColumnSizing\n columnSizingInfo: ColumnSizingInfoState\n}\n\nexport type ColumnResizeMode = 'onChange' | 'onEnd'\n\nexport type ColumnSizingOptions = {\n enableColumnResizing?: boolean\n columnResizeMode?: ColumnResizeMode\n onColumnSizingChange?: OnChangeFn<ColumnSizing>\n onColumnSizingInfoChange?: OnChangeFn<ColumnSizingInfoState>\n}\n\nexport type ColumnSizingDefaultOptions = {\n columnResizeMode: ColumnResizeMode\n onColumnSizingChange: OnChangeFn<ColumnSizing>\n onColumnSizingInfoChange: OnChangeFn<ColumnSizingInfoState>\n}\n\nexport type ColumnResizerProps = {\n title?: string\n onMouseDown?: (e: MouseEvent) => void\n onTouchStart?: (e: TouchEvent) => void\n draggable?: boolean\n role?: string\n}\n\nexport type ColumnSizingInstance<TGenerics extends AnyGenerics> = {\n getColumnWidth: (columnId: string) => number\n setColumnSizing: (updater: Updater<ColumnSizing>) => void\n setColumnSizingInfo: (updater: Updater<ColumnSizingInfoState>) => void\n resetColumnSizing: () => void\n resetColumnSize: (columnId: string) => void\n resetHeaderSize: (headerId: string) => void\n resetHeaderSizeInfo: () => void\n getColumnCanResize: (columnId: string) => boolean\n getHeaderCanResize: (headerId: string) => boolean\n getHeaderResizerProps: <TGetter extends Getter<ColumnResizerProps>>(\n headerId: string,\n userProps?: TGetter\n ) => undefined | PropGetterValue<ColumnResizerProps, TGetter>\n getColumnIsResizing: (columnId: string) => boolean\n getHeaderIsResizing: (headerId: string) => boolean\n}\n\nexport type ColumnSizingColumnDef = {\n enableResizing?: boolean\n defaultCanResize?: boolean\n width?: number\n minWidth?: number\n maxWidth?: number\n}\n\nexport type ColumnSizingColumn<TGenerics extends AnyGenerics> = {\n getCanResize: () => boolean\n getIsResizing: () => boolean\n resetSize: () => void\n}\n\nexport type ColumnSizingHeader<TGenerics extends AnyGenerics> = {\n getCanResize: () => boolean\n getIsResizing: () => boolean\n getResizerProps: <TGetter extends Getter<ColumnResizerProps>>(\n userProps?: TGetter\n ) => undefined | PropGetterValue<ColumnResizerProps, TGetter>\n resetSize: () => void\n}\n\n//\n\nexport const defaultColumnSizing = {\n width: 150,\n minWidth: 20,\n maxWidth: Number.MAX_SAFE_INTEGER,\n}\n\nexport const ColumnSizing = {\n getDefaultColumn: (): ColumnSizingColumnDef => {\n return defaultColumnSizing\n },\n getInitialState: (): ColumnSizingTableState => {\n return {\n columnSizing: {},\n columnSizingInfo: {\n startOffset: null,\n startSize: null,\n deltaOffset: null,\n deltaPercentage: null,\n isResizingColumn: false,\n columnSizingStart: [],\n },\n }\n },\n\n getDefaultOptions: <TGenerics extends AnyGenerics>(\n instance: TableInstance<TGenerics>\n ): ColumnSizingDefaultOptions => {\n return {\n columnResizeMode: 'onEnd',\n onColumnSizingChange: makeStateUpdater('columnSizing', instance),\n onColumnSizingInfoChange: makeStateUpdater('columnSizingInfo', instance),\n }\n },\n\n getInstance: <TGenerics extends AnyGenerics>(\n instance: TableInstance<TGenerics>\n ): ColumnSizingInstance<TGenerics> => {\n return {\n getColumnWidth: (columnId: string) => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n throw new Error()\n }\n\n const columnSize = instance.getState().columnSizing[column.id]\n\n return Math.min(\n Math.max(\n column.minWidth ?? defaultColumnSizing.minWidth,\n columnSize ?? column.width ?? defaultColumnSizing.width\n ),\n column.maxWidth ?? defaultColumnSizing.maxWidth\n )\n },\n setColumnSizing: updater =>\n instance.options.onColumnSizingChange?.(\n updater,\n functionalUpdate(updater, instance.getState().columnSizing)\n ),\n setColumnSizingInfo: updater =>\n instance.options.onColumnSizingInfoChange?.(\n updater,\n functionalUpdate(updater, instance.getState().columnSizingInfo)\n ),\n resetColumnSizing: () => {\n instance.setColumnSizing(instance.initialState.columnSizing ?? {})\n },\n resetHeaderSizeInfo: () => {\n instance.setColumnSizingInfo(\n instance.initialState.columnSizingInfo ?? {}\n )\n },\n resetColumnSize: columnId => {\n instance.setColumnSizing(({ [columnId]: _, ...rest }) => {\n return rest\n })\n },\n resetHeaderSize: headerId => {\n const header = instance.getHeader(headerId)\n\n return instance.resetColumnSize(header.column.id)\n },\n getHeaderCanResize: headerId => {\n const header = instance.getHeader(headerId)\n\n if (!header) {\n throw new Error()\n }\n\n return instance.getColumnCanResize(header.column.id)\n },\n getColumnCanResize: columnId => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n throw new Error()\n }\n\n return (\n column.enableResizing ??\n instance.options.enableColumnResizing ??\n column.defaultCanResize ??\n true\n )\n },\n getColumnIsResizing: columnId => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n throw new Error()\n }\n\n return (\n instance.getState().columnSizingInfo.isResizingColumn === columnId\n )\n },\n getHeaderIsResizing: headerId => {\n const header = instance.getHeader(headerId)\n\n if (!header) {\n throw new Error()\n }\n\n return instance.getColumnIsResizing(header.column.id)\n },\n\n getHeaderResizerProps: (headerId, userProps) => {\n const header = instance.getHeader(headerId)\n const column = instance.getColumn(header.column.id)\n\n const canResize = column.getCanResize()\n\n const onResizeStart = (e: MouseEvent | TouchEvent) => {\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 header = headerId ? instance.getHeader(headerId) : undefined\n\n const startSize = header ? header.getWidth() : column.getWidth()\n\n const columnSizingStart: [string, number][] = header\n ? header.getLeafHeaders().map(d => [d.column.id, d.getWidth()])\n : [[column.id, column.getWidth()]]\n\n const clientX = isTouchStartEvent(e)\n ? Math.round(e.touches[0].clientX)\n : e.clientX\n\n const updateOffset = (\n eventType: 'move' | 'end',\n clientXPos?: number\n ) => {\n if (typeof clientXPos !== 'number') {\n return\n }\n\n let newColumnSizing: ColumnSizing = {}\n\n instance.setColumnSizingInfo(old => {\n const deltaOffset = clientXPos - (old?.startOffset ?? 0)\n const deltaPercentage = Math.max(\n deltaOffset / (old?.startSize ?? 0),\n -0.999999\n )\n\n old.columnSizingStart.forEach(([columnId, headerWidth]) => {\n newColumnSizing[columnId] =\n Math.round(\n Math.max(headerWidth + headerWidth * deltaPercentage, 0) *\n 100\n ) / 100\n })\n\n return {\n ...old,\n deltaOffset,\n deltaPercentage,\n }\n })\n\n if (\n instance.options.columnResizeMode === 'onChange' ||\n eventType === 'end'\n ) {\n instance.setColumnSizing(old => ({\n ...old,\n ...newColumnSizing,\n }))\n }\n }\n\n const onMove = (clientXPos?: number) =>\n updateOffset('move', clientXPos)\n\n const onEnd = (clientXPos?: number) => {\n updateOffset('end', clientXPos)\n\n instance.setColumnSizingInfo(old => ({\n ...old,\n isResizingColumn: false,\n startOffset: null,\n startSize: null,\n deltaOffset: null,\n deltaPercentage: null,\n columnSizingStart: [],\n }))\n }\n\n const mouseEvents = {\n moveHandler: (e: MouseEvent) => onMove(e.clientX),\n upHandler: (e: MouseEvent) => {\n document.removeEventListener('mousemove', mouseEvents.moveHandler)\n document.removeEventListener('mouseup', mouseEvents.upHandler)\n onEnd(e.clientX)\n },\n }\n\n const touchEvents = {\n moveHandler: (e: TouchEvent) => {\n if (e.cancelable) {\n e.preventDefault()\n e.stopPropagation()\n }\n onMove(e.touches[0].clientX)\n return false\n },\n upHandler: (e: TouchEvent) => {\n document.removeEventListener('touchmove', touchEvents.moveHandler)\n document.removeEventListener('touchend', touchEvents.upHandler)\n if (e.cancelable) {\n e.preventDefault()\n e.stopPropagation()\n }\n onEnd(e.touches[0].clientX)\n },\n }\n\n const passiveIfSupported = passiveEventSupported()\n ? { passive: false }\n : false\n\n if (isTouchStartEvent(e)) {\n document.addEventListener(\n 'touchmove',\n touchEvents.moveHandler,\n passiveIfSupported\n )\n document.addEventListener(\n 'touchend',\n touchEvents.upHandler,\n passiveIfSupported\n )\n } else {\n document.addEventListener(\n 'mousemove',\n mouseEvents.moveHandler,\n passiveIfSupported\n )\n document.addEventListener(\n 'mouseup',\n mouseEvents.upHandler,\n passiveIfSupported\n )\n }\n\n instance.setColumnSizingInfo(old => ({\n ...old,\n startOffset: clientX,\n startSize,\n deltaOffset: 0,\n deltaPercentage: 0,\n columnSizingStart,\n isResizingColumn: column.id,\n }))\n }\n\n const initialProps: ColumnResizerProps = canResize\n ? {\n title: 'Toggle Grouping',\n draggable: false,\n role: 'separator',\n onMouseDown: (e: MouseEvent) => {\n ;(e as any).persist?.()\n onResizeStart(e)\n },\n onTouchStart: (e: TouchEvent) => {\n ;(e as any).persist?.()\n onResizeStart(e)\n },\n }\n : {}\n\n return propGetter(initialProps, userProps)\n },\n }\n },\n\n createColumn: <TGenerics extends AnyGenerics>(\n column: Column<TGenerics>,\n instance: TableInstance<TGenerics>\n ): ColumnSizingColumn<TGenerics> => {\n return {\n getIsResizing: () => instance.getColumnIsResizing(column.id),\n getCanResize: () => instance.getColumnCanResize(column.id),\n resetSize: () => instance.resetColumnSize(column.id),\n }\n },\n\n createHeader: <TGenerics extends AnyGenerics>(\n header: Header<TGenerics>,\n instance: TableInstance<TGenerics>\n ): ColumnSizingHeader<TGenerics> => {\n return {\n getIsResizing: () => instance.getColumnIsResizing(header.column.id),\n getCanResize: () => instance.getColumnCanResize(header.column.id),\n resetSize: () => instance.resetColumnSize(header.column.id),\n getResizerProps: userProps =>\n instance.getHeaderResizerProps(header.id, userProps),\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: TouchEvent | MouseEvent): e is TouchEvent {\n return e.type === 'touchstart'\n}\n"],"names":["defaultColumnSizing","width","minWidth","maxWidth","Number","MAX_SAFE_INTEGER","ColumnSizing","getDefaultColumn","getInitialState","columnSizing","columnSizingInfo","startOffset","startSize","deltaOffset","deltaPercentage","isResizingColumn","columnSizingStart","getDefaultOptions","instance","columnResizeMode","onColumnSizingChange","makeStateUpdater","onColumnSizingInfoChange","getInstance","getColumnWidth","columnId","column","getColumn","Error","columnSize","getState","id","Math","min","max","setColumnSizing","updater","options","functionalUpdate","setColumnSizingInfo","resetColumnSizing","initialState","resetHeaderSizeInfo","resetColumnSize","rest","_toPropertyKey","resetHeaderSize","headerId","header","getHeader","getHeaderCanResize","getColumnCanResize","enableResizing","enableColumnResizing","defaultCanResize","getColumnIsResizing","getHeaderIsResizing","getHeaderResizerProps","userProps","canResize","getCanResize","onResizeStart","e","isTouchStartEvent","touches","length","undefined","getWidth","getLeafHeaders","map","d","clientX","round","updateOffset","eventType","clientXPos","newColumnSizing","old","forEach","headerWidth","_extends","onMove","onEnd","mouseEvents","moveHandler","upHandler","document","removeEventListener","touchEvents","cancelable","preventDefault","stopPropagation","passiveIfSupported","passiveEventSupported","passive","addEventListener","initialProps","title","draggable","role","onMouseDown","persist","onTouchStart","propGetter","createColumn","getIsResizing","resetSize","createHeader","getResizerProps","passiveSupported","supported","noop","window","err","type"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ColumnSizing.js","sources":["../../../src/features/ColumnSizing.ts"],"sourcesContent":["import {\n Column,\n Getter,\n Header,\n OnChangeFn,\n AnyGenerics,\n PartialGenerics,\n PropGetterValue,\n TableInstance,\n Updater,\n} from '../types'\nimport { functionalUpdate, makeStateUpdater, memo, propGetter } from '../utils'\n\n//\n\nexport type ColumnSizing = Record<string, number>\n\nexport type ColumnSizingInfoState = {\n startOffset: null | number\n startSize: null | number\n deltaOffset: null | number\n deltaPercentage: null | number\n isResizingColumn: false | string\n columnSizingStart: [string, number][]\n}\n\nexport type ColumnSizingTableState = {\n columnSizing: ColumnSizing\n columnSizingInfo: ColumnSizingInfoState\n}\n\nexport type ColumnResizeMode = 'onChange' | 'onEnd'\n\nexport type ColumnSizingOptions = {\n enableColumnResizing?: boolean\n columnResizeMode?: ColumnResizeMode\n onColumnSizingChange?: OnChangeFn<ColumnSizing>\n onColumnSizingInfoChange?: OnChangeFn<ColumnSizingInfoState>\n}\n\nexport type ColumnSizingDefaultOptions = {\n columnResizeMode: ColumnResizeMode\n onColumnSizingChange: OnChangeFn<ColumnSizing>\n onColumnSizingInfoChange: OnChangeFn<ColumnSizingInfoState>\n}\n\nexport type ColumnResizerProps = {\n title?: string\n onMouseDown?: (e: MouseEvent) => void\n onTouchStart?: (e: TouchEvent) => void\n draggable?: boolean\n role?: string\n}\n\nexport type ColumnSizingInstance<TGenerics extends AnyGenerics> = {\n getColumnWidth: (columnId: string) => number\n setColumnSizing: (updater: Updater<ColumnSizing>) => void\n setColumnSizingInfo: (updater: Updater<ColumnSizingInfoState>) => void\n resetColumnSizing: () => void\n resetColumnSize: (columnId: string) => void\n resetHeaderSize: (headerId: string) => void\n resetHeaderSizeInfo: () => void\n getColumnCanResize: (columnId: string) => boolean\n getHeaderCanResize: (headerId: string) => boolean\n getHeaderResizerProps: <TGetter extends Getter<ColumnResizerProps>>(\n headerId: string,\n userProps?: TGetter\n ) => undefined | PropGetterValue<ColumnResizerProps, TGetter>\n getColumnIsResizing: (columnId: string) => boolean\n getHeaderIsResizing: (headerId: string) => boolean\n}\n\nexport type ColumnSizingColumnDef = {\n enableResizing?: boolean\n defaultCanResize?: boolean\n width?: number\n minWidth?: number\n maxWidth?: number\n}\n\nexport type ColumnSizingColumn<TGenerics extends AnyGenerics> = {\n getCanResize: () => boolean\n getIsResizing: () => boolean\n resetSize: () => void\n}\n\nexport type ColumnSizingHeader<TGenerics extends AnyGenerics> = {\n getCanResize: () => boolean\n getIsResizing: () => boolean\n getResizerProps: <TGetter extends Getter<ColumnResizerProps>>(\n userProps?: TGetter\n ) => undefined | PropGetterValue<ColumnResizerProps, TGetter>\n resetSize: () => void\n}\n\n//\n\nexport const defaultColumnSizing = {\n width: 150,\n minWidth: 20,\n maxWidth: Number.MAX_SAFE_INTEGER,\n}\n\nexport const ColumnSizing = {\n getDefaultColumn: (): ColumnSizingColumnDef => {\n return defaultColumnSizing\n },\n getInitialState: (): ColumnSizingTableState => {\n return {\n columnSizing: {},\n columnSizingInfo: {\n startOffset: null,\n startSize: null,\n deltaOffset: null,\n deltaPercentage: null,\n isResizingColumn: false,\n columnSizingStart: [],\n },\n }\n },\n\n getDefaultOptions: <TGenerics extends AnyGenerics>(\n instance: TableInstance<TGenerics>\n ): ColumnSizingDefaultOptions => {\n return {\n columnResizeMode: 'onEnd',\n onColumnSizingChange: makeStateUpdater('columnSizing', instance),\n onColumnSizingInfoChange: makeStateUpdater('columnSizingInfo', instance),\n }\n },\n\n getInstance: <TGenerics extends AnyGenerics>(\n instance: TableInstance<TGenerics>\n ): ColumnSizingInstance<TGenerics> => {\n return {\n getColumnWidth: (columnId: string) => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n throw new Error()\n }\n\n const columnSize = instance.getState().columnSizing[column.id]\n\n return Math.min(\n Math.max(\n column.minWidth ?? defaultColumnSizing.minWidth,\n columnSize ?? column.width ?? defaultColumnSizing.width\n ),\n column.maxWidth ?? defaultColumnSizing.maxWidth\n )\n },\n setColumnSizing: updater =>\n instance.options.onColumnSizingChange?.(\n updater,\n functionalUpdate(updater, instance.getState().columnSizing)\n ),\n setColumnSizingInfo: updater =>\n instance.options.onColumnSizingInfoChange?.(\n updater,\n functionalUpdate(updater, instance.getState().columnSizingInfo)\n ),\n resetColumnSizing: () => {\n instance.setColumnSizing(instance.initialState.columnSizing ?? {})\n },\n resetHeaderSizeInfo: () => {\n instance.setColumnSizingInfo(\n instance.initialState.columnSizingInfo ?? {}\n )\n },\n resetColumnSize: columnId => {\n instance.setColumnSizing(({ [columnId]: _, ...rest }) => {\n return rest\n })\n },\n resetHeaderSize: headerId => {\n const header = instance.getHeader(headerId)\n\n return instance.resetColumnSize(header.column.id)\n },\n getHeaderCanResize: headerId => {\n const header = instance.getHeader(headerId)\n\n if (!header) {\n throw new Error()\n }\n\n return instance.getColumnCanResize(header.column.id)\n },\n getColumnCanResize: columnId => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n throw new Error()\n }\n\n return (\n column.enableResizing ??\n instance.options.enableColumnResizing ??\n column.defaultCanResize ??\n true\n )\n },\n getColumnIsResizing: columnId => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n throw new Error()\n }\n\n return (\n instance.getState().columnSizingInfo.isResizingColumn === columnId\n )\n },\n getHeaderIsResizing: headerId => {\n const header = instance.getHeader(headerId)\n\n if (!header) {\n throw new Error()\n }\n\n return instance.getColumnIsResizing(header.column.id)\n },\n\n getHeaderResizerProps: (headerId, userProps) => {\n const header = instance.getHeader(headerId)\n const column = instance.getColumn(header.column.id)\n\n const canResize = column.getCanResize()\n\n const onResizeStart = (e: unknown) => {\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 header = headerId ? instance.getHeader(headerId) : undefined\n\n const startSize = header ? header.getWidth() : column.getWidth()\n\n const columnSizingStart: [string, number][] = header\n ? header.getLeafHeaders().map(d => [d.column.id, d.getWidth()])\n : [[column.id, column.getWidth()]]\n\n const clientX = isTouchStartEvent(e)\n ? Math.round(e.touches[0].clientX)\n : (e as MouseEvent).clientX\n\n const updateOffset = (\n eventType: 'move' | 'end',\n clientXPos?: number\n ) => {\n if (typeof clientXPos !== 'number') {\n return\n }\n\n let newColumnSizing: ColumnSizing = {}\n\n instance.setColumnSizingInfo(old => {\n const deltaOffset = clientXPos - (old?.startOffset ?? 0)\n const deltaPercentage = Math.max(\n deltaOffset / (old?.startSize ?? 0),\n -0.999999\n )\n\n old.columnSizingStart.forEach(([columnId, headerWidth]) => {\n newColumnSizing[columnId] =\n Math.round(\n Math.max(headerWidth + headerWidth * deltaPercentage, 0) *\n 100\n ) / 100\n })\n\n return {\n ...old,\n deltaOffset,\n deltaPercentage,\n }\n })\n\n if (\n instance.options.columnResizeMode === 'onChange' ||\n eventType === 'end'\n ) {\n instance.setColumnSizing(old => ({\n ...old,\n ...newColumnSizing,\n }))\n }\n }\n\n const onMove = (clientXPos?: number) =>\n updateOffset('move', clientXPos)\n\n const onEnd = (clientXPos?: number) => {\n updateOffset('end', clientXPos)\n\n instance.setColumnSizingInfo(old => ({\n ...old,\n isResizingColumn: false,\n startOffset: null,\n startSize: null,\n deltaOffset: null,\n deltaPercentage: null,\n columnSizingStart: [],\n }))\n }\n\n const mouseEvents = {\n moveHandler: (e: MouseEvent) => onMove(e.clientX),\n upHandler: (e: MouseEvent) => {\n document.removeEventListener('mousemove', mouseEvents.moveHandler)\n document.removeEventListener('mouseup', mouseEvents.upHandler)\n onEnd(e.clientX)\n },\n }\n\n const touchEvents = {\n moveHandler: (e: TouchEvent) => {\n if (e.cancelable) {\n e.preventDefault()\n e.stopPropagation()\n }\n onMove(e.touches[0].clientX)\n return false\n },\n upHandler: (e: TouchEvent) => {\n document.removeEventListener('touchmove', touchEvents.moveHandler)\n document.removeEventListener('touchend', touchEvents.upHandler)\n if (e.cancelable) {\n e.preventDefault()\n e.stopPropagation()\n }\n onEnd(e.touches[0].clientX)\n },\n }\n\n const passiveIfSupported = passiveEventSupported()\n ? { passive: false }\n : false\n\n if (isTouchStartEvent(e)) {\n document.addEventListener(\n 'touchmove',\n touchEvents.moveHandler,\n passiveIfSupported\n )\n document.addEventListener(\n 'touchend',\n touchEvents.upHandler,\n passiveIfSupported\n )\n } else {\n document.addEventListener(\n 'mousemove',\n mouseEvents.moveHandler,\n passiveIfSupported\n )\n document.addEventListener(\n 'mouseup',\n mouseEvents.upHandler,\n passiveIfSupported\n )\n }\n\n instance.setColumnSizingInfo(old => ({\n ...old,\n startOffset: clientX,\n startSize,\n deltaOffset: 0,\n deltaPercentage: 0,\n columnSizingStart,\n isResizingColumn: column.id,\n }))\n }\n\n const initialProps: ColumnResizerProps = canResize\n ? {\n title: 'Toggle Grouping',\n draggable: false,\n role: 'separator',\n onMouseDown: (e: MouseEvent) => {\n ;(e as any).persist?.()\n onResizeStart(e)\n },\n onTouchStart: (e: TouchEvent) => {\n ;(e as any).persist?.()\n onResizeStart(e)\n },\n }\n : {}\n\n return propGetter(initialProps, userProps)\n },\n }\n },\n\n createColumn: <TGenerics extends AnyGenerics>(\n column: Column<TGenerics>,\n instance: TableInstance<TGenerics>\n ): ColumnSizingColumn<TGenerics> => {\n return {\n getIsResizing: () => instance.getColumnIsResizing(column.id),\n getCanResize: () => instance.getColumnCanResize(column.id),\n resetSize: () => instance.resetColumnSize(column.id),\n }\n },\n\n createHeader: <TGenerics extends AnyGenerics>(\n header: Header<TGenerics>,\n instance: TableInstance<TGenerics>\n ): ColumnSizingHeader<TGenerics> => {\n return {\n getIsResizing: () => instance.getColumnIsResizing(header.column.id),\n getCanResize: () => instance.getColumnCanResize(header.column.id),\n resetSize: () => instance.resetColumnSize(header.column.id),\n getResizerProps: userProps =>\n instance.getHeaderResizerProps(header.id, userProps),\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","width","minWidth","maxWidth","Number","MAX_SAFE_INTEGER","ColumnSizing","getDefaultColumn","getInitialState","columnSizing","columnSizingInfo","startOffset","startSize","deltaOffset","deltaPercentage","isResizingColumn","columnSizingStart","getDefaultOptions","instance","columnResizeMode","onColumnSizingChange","makeStateUpdater","onColumnSizingInfoChange","getInstance","getColumnWidth","columnId","column","getColumn","Error","columnSize","getState","id","Math","min","max","setColumnSizing","updater","options","functionalUpdate","setColumnSizingInfo","resetColumnSizing","initialState","resetHeaderSizeInfo","resetColumnSize","rest","_toPropertyKey","resetHeaderSize","headerId","header","getHeader","getHeaderCanResize","getColumnCanResize","enableResizing","enableColumnResizing","defaultCanResize","getColumnIsResizing","getHeaderIsResizing","getHeaderResizerProps","userProps","canResize","getCanResize","onResizeStart","e","isTouchStartEvent","touches","length","undefined","getWidth","getLeafHeaders","map","d","clientX","round","updateOffset","eventType","clientXPos","newColumnSizing","old","forEach","headerWidth","_extends","onMove","onEnd","mouseEvents","moveHandler","upHandler","document","removeEventListener","touchEvents","cancelable","preventDefault","stopPropagation","passiveIfSupported","passiveEventSupported","passive","addEventListener","initialProps","title","draggable","role","onMouseDown","persist","onTouchStart","propGetter","createColumn","getIsResizing","resetSize","createHeader","getResizerProps","passiveSupported","supported","noop","window","err","type"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Expanding.js","sources":["../../../src/features/Expanding.ts"],"sourcesContent":["import { RowModel } from '..'\nimport {\n Getter,\n OnChangeFn,\n AnyGenerics,\n PartialGenerics,\n PropGetterValue,\n TableInstance,\n Row,\n Updater,\n} from '../types'\nimport { functionalUpdate, makeStateUpdater, memo, propGetter } from '../utils'\n\nexport type ExpandedStateList = Record<string, boolean>\nexport type ExpandedState = true | Record<string, boolean>\nexport type ExpandedTableState = {\n expanded: ExpandedState\n}\n\nexport type ExpandedRow = {\n toggleExpanded: (expanded?: boolean) => void\n getIsExpanded: () => boolean\n getCanExpand: () => boolean\n getToggleExpandedProps: <TGetter extends Getter<ToggleExpandedProps>>(\n userProps?: TGetter\n ) => undefined | PropGetterValue<ToggleExpandedProps, TGetter>\n}\n\nexport type ExpandedOptions<TGenerics extends AnyGenerics> = {\n onExpandedChange?: OnChangeFn<ExpandedState>\n autoResetExpanded?: boolean\n enableExpanded?: boolean\n getExpandedRowModel?: (\n instance: TableInstance<TGenerics>\n ) => () => RowModel<TGenerics>\n expandSubRows?: boolean\n defaultCanExpand?: boolean\n getIsRowExpanded?: (row: Row<TGenerics>) => boolean\n getRowCanExpand?: (row: Row<TGenerics>) => boolean\n paginateExpandedRows?: boolean\n}\n\nexport type ToggleExpandedProps = {\n title?: string\n onClick?: (event: MouseEvent | TouchEvent) => void\n}\n\nexport type ExpandedInstance<TGenerics extends AnyGenerics> = {\n _notifyExpandedReset: () => void\n setExpanded: (updater: Updater<ExpandedState>) => void\n toggleRowExpanded: (rowId: string, expanded?: boolean) => void\n toggleAllRowsExpanded: (expanded?: boolean) => void\n resetExpanded: () => void\n getRowCanExpand: (rowId: string) => boolean\n getCanSomeRowsExpand: () => boolean\n getIsRowExpanded: (rowId: string) => boolean\n getToggleExpandedProps: <TGetter extends Getter<ToggleExpandedProps>>(\n rowId: string,\n userProps?: TGetter\n ) => undefined | PropGetterValue<ToggleExpandedProps, TGetter>\n getToggleAllRowsExpandedProps: <TGetter extends Getter<ToggleExpandedProps>>(\n userProps?: TGetter\n ) => undefined | PropGetterValue<ToggleExpandedProps, TGetter>\n getIsSomeRowsExpanded: () => boolean\n getIsAllRowsExpanded: () => boolean\n getExpandedDepth: () => number\n getExpandedRowModel: () => RowModel<TGenerics>\n _getExpandedRowModel?: () => RowModel<TGenerics>\n getPreExpandedRowModel: () => RowModel<TGenerics>\n}\n\n//\n\nexport const Expanding = {\n getInitialState: (): ExpandedTableState => {\n return {\n expanded: {},\n }\n },\n\n getDefaultOptions: <TGenerics extends AnyGenerics>(\n instance: TableInstance<TGenerics>\n ): ExpandedOptions<TGenerics> => {\n return {\n onExpandedChange: makeStateUpdater('expanded', instance),\n autoResetExpanded: true,\n expandSubRows: true,\n paginateExpandedRows: true,\n }\n },\n\n getInstance: <TGenerics extends AnyGenerics>(\n instance: TableInstance<TGenerics>\n ): ExpandedInstance<TGenerics> => {\n let registered = false\n\n return {\n _notifyExpandedReset: () => {\n instance._notifyPageIndexReset()\n\n if (!registered) {\n registered = true\n return\n }\n\n if (instance.options.autoResetAll === false) {\n return\n }\n\n if (\n instance.options.autoResetAll === true ||\n instance.options.autoResetExpanded\n ) {\n instance.resetExpanded()\n }\n },\n setExpanded: updater =>\n instance.options.onExpandedChange?.(\n updater,\n functionalUpdate(updater, instance.getState().expanded)\n ),\n toggleRowExpanded: (rowId, expanded) => {\n if (!rowId) return\n\n instance.setExpanded(old => {\n const exists = old === true ? true : !!old?.[rowId]\n\n let oldExpanded: ExpandedStateList = {}\n\n if (old === true) {\n Object.keys(instance.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 [rowId]: true,\n }\n }\n\n if (exists && !expanded) {\n const { [rowId]: _, ...rest } = oldExpanded\n return rest\n }\n\n return old\n })\n },\n toggleAllRowsExpanded: expanded => {\n if (expanded ?? !instance.getIsAllRowsExpanded()) {\n instance.setExpanded(true)\n } else {\n instance.setExpanded({})\n }\n },\n resetExpanded: () => {\n instance.setExpanded(instance.initialState?.expanded ?? {})\n },\n getIsRowExpanded: rowId => {\n const row = instance.getPreExpandedRowModel().rowsById[rowId]\n\n if (!row) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(\n `[Table] getIsRowExpanded: no row found with id ${rowId}`\n )\n }\n throw new Error()\n }\n\n const expanded = instance.getState().expanded\n\n return !!(\n instance.options.getIsRowExpanded?.(row) ??\n (expanded === true || expanded?.[rowId])\n )\n },\n getRowCanExpand: rowId => {\n const row = instance.getRow(rowId)\n\n if (!row) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(\n `[Table] getRowCanExpand: no row found with id ${rowId}`\n )\n }\n throw new Error()\n }\n\n return (\n instance.options.getRowCanExpand?.(row) ??\n instance.options.enableExpanded ??\n instance.options.defaultCanExpand ??\n !!row.subRows?.length\n )\n },\n getCanSomeRowsExpand: () => {\n return Object.keys(instance.getRowModel().rowsById).some(id =>\n instance.getRowCanExpand(id)\n )\n },\n getToggleExpandedProps: (rowId, userProps) => {\n const row = instance.getRow(rowId)\n\n if (!row) {\n return\n }\n\n const canExpand = instance.getRowCanExpand(rowId)\n\n const initialProps: ToggleExpandedProps = {\n title: canExpand ? 'Toggle Expanded' : undefined,\n onClick: canExpand\n ? (e: MouseEvent | TouchEvent) => {\n ;(e as any).persist?.()\n instance.toggleRowExpanded(rowId)\n }\n : undefined,\n }\n\n return propGetter(initialProps, userProps)\n },\n getToggleAllRowsExpandedProps: userProps => {\n const initialProps: ToggleExpandedProps = {\n title: 'Toggle All Expanded',\n onClick: (e: MouseEvent | TouchEvent) => {\n ;(e as any).persist?.()\n instance.toggleAllRowsExpanded()\n },\n }\n\n return propGetter(initialProps, userProps)\n },\n getIsSomeRowsExpanded: () => {\n const expanded = instance.getState().expanded\n return expanded === true || Object.values(expanded).some(Boolean)\n },\n getIsAllRowsExpanded: () => {\n const expanded = instance.getState().expanded\n\n // If expanded is true, save some cycles and return true\n if (expanded === true) {\n return true\n }\n\n // If any row is not expanded, return false\n if (\n Object.keys(instance.getRowModel().rowsById).some(\n id => !instance.getIsRowExpanded(id)\n )\n ) {\n return false\n }\n\n // They must all be expanded :shrug:\n return true\n },\n getExpandedDepth: () => {\n let maxDepth = 0\n\n const rowIds =\n instance.getState().expanded === true\n ? Object.keys(instance.getRowModel().rowsById)\n : Object.keys(instance.getState().expanded)\n\n rowIds.forEach(id => {\n const splitId = id.split('.')\n maxDepth = Math.max(maxDepth, splitId.length)\n })\n\n return maxDepth\n },\n getPreExpandedRowModel: () => instance.getGroupedRowModel(),\n getExpandedRowModel: () => {\n if (\n !instance._getExpandedRowModel &&\n instance.options.getExpandedRowModel\n ) {\n instance._getExpandedRowModel =\n instance.options.getExpandedRowModel(instance)\n }\n\n if (!instance._getExpandedRowModel) {\n return instance.getPreExpandedRowModel()\n }\n\n return instance._getExpandedRowModel()\n },\n }\n },\n\n createRow: <TGenerics extends AnyGenerics>(\n row: Row<TGenerics>,\n instance: TableInstance<TGenerics>\n ): ExpandedRow => {\n return {\n toggleExpanded: expanded =>\n void instance.toggleRowExpanded(row.id, expanded),\n getIsExpanded: () => instance.getIsRowExpanded(row.id),\n getCanExpand: () => row.subRows && !!row.subRows.length,\n getToggleExpandedProps: userProps =>\n instance.getToggleExpandedProps(row.id, userProps),\n }\n },\n}\n"],"names":["Expanding","getInitialState","expanded","getDefaultOptions","instance","onExpandedChange","makeStateUpdater","autoResetExpanded","expandSubRows","paginateExpandedRows","getInstance","registered","_notifyExpandedReset","_notifyPageIndexReset","options","autoResetAll","resetExpanded","setExpanded","updater","functionalUpdate","getState","toggleRowExpanded","rowId","old","exists","oldExpanded","Object","keys","getRowModel","rowsById","forEach","_extends","rest","_toPropertyKey","toggleAllRowsExpanded","getIsAllRowsExpanded","initialState","getIsRowExpanded","row","getPreExpandedRowModel","process","env","NODE_ENV","console","warn","Error","getRowCanExpand","getRow","enableExpanded","defaultCanExpand","subRows","length","getCanSomeRowsExpand","some","id","getToggleExpandedProps","userProps","canExpand","initialProps","title","undefined","onClick","e","persist","propGetter","getToggleAllRowsExpandedProps","getIsSomeRowsExpanded","values","Boolean","getExpandedDepth","maxDepth","rowIds","splitId","split","Math","max","getGroupedRowModel","getExpandedRowModel","_getExpandedRowModel","createRow","toggleExpanded","getIsExpanded","getCanExpand"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Expanding.js","sources":["../../../src/features/Expanding.ts"],"sourcesContent":["import { RowModel } from '..'\nimport {\n Getter,\n OnChangeFn,\n AnyGenerics,\n PartialGenerics,\n PropGetterValue,\n TableInstance,\n Row,\n Updater,\n} from '../types'\nimport { functionalUpdate, makeStateUpdater, memo, propGetter } from '../utils'\n\nexport type ExpandedStateList = Record<string, boolean>\nexport type ExpandedState = true | Record<string, boolean>\nexport type ExpandedTableState = {\n expanded: ExpandedState\n}\n\nexport type ExpandedRow = {\n toggleExpanded: (expanded?: boolean) => void\n getIsExpanded: () => boolean\n getCanExpand: () => boolean\n getToggleExpandedProps: <TGetter extends Getter<ToggleExpandedProps>>(\n userProps?: TGetter\n ) => undefined | PropGetterValue<ToggleExpandedProps, TGetter>\n}\n\nexport type ExpandedOptions<TGenerics extends AnyGenerics> = {\n onExpandedChange?: OnChangeFn<ExpandedState>\n autoResetExpanded?: boolean\n enableExpanded?: boolean\n getExpandedRowModel?: (\n instance: TableInstance<TGenerics>\n ) => () => RowModel<TGenerics>\n expandSubRows?: boolean\n defaultCanExpand?: boolean\n getIsRowExpanded?: (row: Row<TGenerics>) => boolean\n getRowCanExpand?: (row: Row<TGenerics>) => boolean\n paginateExpandedRows?: boolean\n}\n\nexport type ToggleExpandedProps = {\n title?: string\n onClick?: (event: unknown) => void\n}\n\nexport type ExpandedInstance<TGenerics extends AnyGenerics> = {\n _notifyExpandedReset: () => void\n setExpanded: (updater: Updater<ExpandedState>) => void\n toggleRowExpanded: (rowId: string, expanded?: boolean) => void\n toggleAllRowsExpanded: (expanded?: boolean) => void\n resetExpanded: () => void\n getRowCanExpand: (rowId: string) => boolean\n getCanSomeRowsExpand: () => boolean\n getIsRowExpanded: (rowId: string) => boolean\n getToggleExpandedProps: <TGetter extends Getter<ToggleExpandedProps>>(\n rowId: string,\n userProps?: TGetter\n ) => undefined | PropGetterValue<ToggleExpandedProps, TGetter>\n getToggleAllRowsExpandedProps: <TGetter extends Getter<ToggleExpandedProps>>(\n userProps?: TGetter\n ) => undefined | PropGetterValue<ToggleExpandedProps, TGetter>\n getIsSomeRowsExpanded: () => boolean\n getIsAllRowsExpanded: () => boolean\n getExpandedDepth: () => number\n getExpandedRowModel: () => RowModel<TGenerics>\n _getExpandedRowModel?: () => RowModel<TGenerics>\n getPreExpandedRowModel: () => RowModel<TGenerics>\n}\n\n//\n\nexport const Expanding = {\n getInitialState: (): ExpandedTableState => {\n return {\n expanded: {},\n }\n },\n\n getDefaultOptions: <TGenerics extends AnyGenerics>(\n instance: TableInstance<TGenerics>\n ): ExpandedOptions<TGenerics> => {\n return {\n onExpandedChange: makeStateUpdater('expanded', instance),\n autoResetExpanded: true,\n expandSubRows: true,\n paginateExpandedRows: true,\n }\n },\n\n getInstance: <TGenerics extends AnyGenerics>(\n instance: TableInstance<TGenerics>\n ): ExpandedInstance<TGenerics> => {\n let registered = false\n\n return {\n _notifyExpandedReset: () => {\n instance._notifyPageIndexReset()\n\n if (!registered) {\n registered = true\n return\n }\n\n if (instance.options.autoResetAll === false) {\n return\n }\n\n if (\n instance.options.autoResetAll === true ||\n instance.options.autoResetExpanded\n ) {\n instance.resetExpanded()\n }\n },\n setExpanded: updater =>\n instance.options.onExpandedChange?.(\n updater,\n functionalUpdate(updater, instance.getState().expanded)\n ),\n toggleRowExpanded: (rowId, expanded) => {\n if (!rowId) return\n\n instance.setExpanded(old => {\n const exists = old === true ? true : !!old?.[rowId]\n\n let oldExpanded: ExpandedStateList = {}\n\n if (old === true) {\n Object.keys(instance.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 [rowId]: true,\n }\n }\n\n if (exists && !expanded) {\n const { [rowId]: _, ...rest } = oldExpanded\n return rest\n }\n\n return old\n })\n },\n toggleAllRowsExpanded: expanded => {\n if (expanded ?? !instance.getIsAllRowsExpanded()) {\n instance.setExpanded(true)\n } else {\n instance.setExpanded({})\n }\n },\n resetExpanded: () => {\n instance.setExpanded(instance.initialState?.expanded ?? {})\n },\n getIsRowExpanded: rowId => {\n const row = instance.getPreExpandedRowModel().rowsById[rowId]\n\n if (!row) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(\n `[Table] getIsRowExpanded: no row found with id ${rowId}`\n )\n }\n throw new Error()\n }\n\n const expanded = instance.getState().expanded\n\n return !!(\n instance.options.getIsRowExpanded?.(row) ??\n (expanded === true || expanded?.[rowId])\n )\n },\n getRowCanExpand: rowId => {\n const row = instance.getRow(rowId)\n\n if (!row) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(\n `[Table] getRowCanExpand: no row found with id ${rowId}`\n )\n }\n throw new Error()\n }\n\n return (\n instance.options.getRowCanExpand?.(row) ??\n instance.options.enableExpanded ??\n instance.options.defaultCanExpand ??\n !!row.subRows?.length\n )\n },\n getCanSomeRowsExpand: () => {\n return Object.keys(instance.getRowModel().rowsById).some(id =>\n instance.getRowCanExpand(id)\n )\n },\n getToggleExpandedProps: (rowId, userProps) => {\n const row = instance.getRow(rowId)\n\n if (!row) {\n return\n }\n\n const canExpand = instance.getRowCanExpand(rowId)\n\n const initialProps: ToggleExpandedProps = {\n title: canExpand ? 'Toggle Expanded' : undefined,\n onClick: canExpand\n ? (e: unknown) => {\n ;(e as any).persist?.()\n instance.toggleRowExpanded(rowId)\n }\n : undefined,\n }\n\n return propGetter(initialProps, userProps)\n },\n getToggleAllRowsExpandedProps: userProps => {\n const initialProps: ToggleExpandedProps = {\n title: 'Toggle All Expanded',\n onClick: (e: unknown) => {\n ;(e as any).persist?.()\n instance.toggleAllRowsExpanded()\n },\n }\n\n return propGetter(initialProps, userProps)\n },\n getIsSomeRowsExpanded: () => {\n const expanded = instance.getState().expanded\n return expanded === true || Object.values(expanded).some(Boolean)\n },\n getIsAllRowsExpanded: () => {\n const expanded = instance.getState().expanded\n\n // If expanded is true, save some cycles and return true\n if (expanded === true) {\n return true\n }\n\n // If any row is not expanded, return false\n if (\n Object.keys(instance.getRowModel().rowsById).some(\n id => !instance.getIsRowExpanded(id)\n )\n ) {\n return false\n }\n\n // They must all be expanded :shrug:\n return true\n },\n getExpandedDepth: () => {\n let maxDepth = 0\n\n const rowIds =\n instance.getState().expanded === true\n ? Object.keys(instance.getRowModel().rowsById)\n : Object.keys(instance.getState().expanded)\n\n rowIds.forEach(id => {\n const splitId = id.split('.')\n maxDepth = Math.max(maxDepth, splitId.length)\n })\n\n return maxDepth\n },\n getPreExpandedRowModel: () => instance.getGroupedRowModel(),\n getExpandedRowModel: () => {\n if (\n !instance._getExpandedRowModel &&\n instance.options.getExpandedRowModel\n ) {\n instance._getExpandedRowModel =\n instance.options.getExpandedRowModel(instance)\n }\n\n if (!instance._getExpandedRowModel) {\n return instance.getPreExpandedRowModel()\n }\n\n return instance._getExpandedRowModel()\n },\n }\n },\n\n createRow: <TGenerics extends AnyGenerics>(\n row: Row<TGenerics>,\n instance: TableInstance<TGenerics>\n ): ExpandedRow => {\n return {\n toggleExpanded: expanded =>\n void instance.toggleRowExpanded(row.id, expanded),\n getIsExpanded: () => instance.getIsRowExpanded(row.id),\n getCanExpand: () => row.subRows && !!row.subRows.length,\n getToggleExpandedProps: userProps =>\n instance.getToggleExpandedProps(row.id, userProps),\n }\n },\n}\n"],"names":["Expanding","getInitialState","expanded","getDefaultOptions","instance","onExpandedChange","makeStateUpdater","autoResetExpanded","expandSubRows","paginateExpandedRows","getInstance","registered","_notifyExpandedReset","_notifyPageIndexReset","options","autoResetAll","resetExpanded","setExpanded","updater","functionalUpdate","getState","toggleRowExpanded","rowId","old","exists","oldExpanded","Object","keys","getRowModel","rowsById","forEach","_extends","rest","_toPropertyKey","toggleAllRowsExpanded","getIsAllRowsExpanded","initialState","getIsRowExpanded","row","getPreExpandedRowModel","process","env","NODE_ENV","console","warn","Error","getRowCanExpand","getRow","enableExpanded","defaultCanExpand","subRows","length","getCanSomeRowsExpand","some","id","getToggleExpandedProps","userProps","canExpand","initialProps","title","undefined","onClick","e","persist","propGetter","getToggleAllRowsExpandedProps","getIsSomeRowsExpanded","values","Boolean","getExpandedDepth","maxDepth","rowIds","splitId","split","Math","max","getGroupedRowModel","getExpandedRowModel","_getExpandedRowModel","createRow","toggleExpanded","getIsExpanded","getCanExpand"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Grouping.js","sources":["../../../src/features/Grouping.ts"],"sourcesContent":["import { RowModel } from '..'\nimport { BuiltInAggregationType, aggregationFns } from '../aggregationFns'\nimport {\n Cell,\n Column,\n Getter,\n OnChangeFn,\n PropGetterValue,\n TableInstance,\n Row,\n Updater,\n PartialGenerics,\n Renderable,\n UseRenderer,\n AnyGenerics,\n} from '../types'\nimport {\n functionalUpdate,\n isFunction,\n makeStateUpdater,\n memo,\n Overwrite,\n propGetter,\n} from '../utils'\n\nexport type GroupingState = string[]\n\nexport type AggregationFn<TGenerics extends AnyGenerics> = (\n getLeafValues: () => TGenerics['Row'][],\n getChildValues: () => TGenerics['Row'][]\n) => any\n\nexport type CustomAggregationTypes<TGenerics extends AnyGenerics> = Record<\n string,\n AggregationFn<TGenerics>\n>\n\nexport type AggregationType<TGenerics extends AnyGenerics> =\n | 'auto'\n | BuiltInAggregationType\n | keyof TGenerics['AggregationFns']\n | AggregationFn<TGenerics>\n\nexport type GroupingTableState = {\n grouping: GroupingState\n}\n\nexport type GroupingColumnDef<TGenerics extends AnyGenerics> = {\n aggregationFn?: AggregationType<Overwrite<TGenerics, { Value: any }>>\n aggregateValue?: (columnValue: unknown) => any\n aggregatedCell?: Renderable<\n TGenerics,\n {\n instance: TableInstance<TGenerics>\n row: Row<TGenerics>\n column: Column<TGenerics>\n cell: Cell<TGenerics>\n value: TGenerics['Value']\n }\n >\n enableGrouping?: boolean\n defaultCanGroup?: boolean\n}\n\nexport type GroupingColumn<TGenerics extends AnyGenerics> = {\n aggregationFn?: AggregationType<Overwrite<TGenerics, { Value: any }>>\n getCanGroup: () => boolean\n getIsGrouped: () => boolean\n getGroupedIndex: () => number\n toggleGrouping: () => void\n getToggleGroupingProps: <TGetter extends Getter<ToggleGroupingProps>>(\n userProps?: TGetter\n ) => undefined | PropGetterValue<ToggleGroupingProps, TGetter>\n}\n\nexport type GroupingRow = {\n groupingColumnId?: string\n groupingValue?: any\n getIsGrouped: () => boolean\n}\n\nexport type GroupingCell<TGenerics extends AnyGenerics> = {\n getIsGrouped: () => boolean\n getIsPlaceholder: () => boolean\n getIsAggregated: () => boolean\n renderAggregatedCell: () => string | null | ReturnType<UseRenderer<TGenerics>>\n}\n\nexport type ColumnDefaultOptions = {\n // Column\n onGroupingChange: OnChangeFn<GroupingState>\n autoResetGrouping: boolean\n enableGrouping: boolean\n}\n\nexport type GroupingOptions<TGenerics extends AnyGenerics> = {\n aggregationFns?: TGenerics['AggregationFns']\n onGroupingChange?: OnChangeFn<GroupingState>\n autoResetGrouping?: boolean\n enableGrouping?: boolean\n enableGroupingRemoval?: boolean\n getGroupedRowModel?: (\n instance: TableInstance<TGenerics>\n ) => () => RowModel<TGenerics>\n\n groupedColumnMode?: false | 'reorder' | 'remove'\n}\n\nexport type GroupingColumnMode = false | 'reorder' | 'remove'\n\nexport type ToggleGroupingProps = {\n title?: string\n onClick?: (event: MouseEvent | TouchEvent) => void\n}\n\nexport type GroupingInstance<TGenerics extends AnyGenerics> = {\n _notifyGroupingReset: () => void\n getColumnAutoAggregationFn: (\n columnId: string\n ) => AggregationFn<TGenerics> | undefined\n getColumnAggregationFn: (\n columnId: string\n ) => AggregationFn<TGenerics> | undefined\n setGrouping: (updater: Updater<GroupingState>) => void\n resetGrouping: () => void\n toggleColumnGrouping: (columnId: string) => void\n getColumnCanGroup: (columnId: string) => boolean\n getColumnIsGrouped: (columnId: string) => boolean\n getColumnGroupedIndex: (columnId: string) => number\n getToggleGroupingProps: <TGetter extends Getter<ToggleGroupingProps>>(\n columnId: string,\n userProps?: TGetter\n ) => undefined | PropGetterValue<ToggleGroupingProps, TGetter>\n getRowIsGrouped: (rowId: string) => boolean\n getPreGroupedRowModel: () => RowModel<TGenerics>\n getGroupedRowModel: () => RowModel<TGenerics>\n _getGroupedRowModel?: () => RowModel<TGenerics>\n}\n\n//\n\nexport const Grouping = {\n getDefaultColumn: <\n TGenerics extends AnyGenerics\n >(): GroupingColumnDef<TGenerics> => {\n return {\n aggregationFn: 'auto',\n }\n },\n\n getInitialState: (): GroupingTableState => {\n return {\n grouping: [],\n }\n },\n\n getDefaultOptions: <TGenerics extends AnyGenerics>(\n instance: TableInstance<TGenerics>\n ): GroupingOptions<TGenerics> => {\n return {\n onGroupingChange: makeStateUpdater('grouping', instance),\n autoResetGrouping: true,\n groupedColumnMode: 'reorder',\n }\n },\n\n createColumn: <TGenerics extends AnyGenerics>(\n column: Column<TGenerics>,\n instance: TableInstance<TGenerics>\n ): GroupingColumn<TGenerics> => {\n return {\n aggregationFn: column.aggregationFn,\n getCanGroup: () => instance.getColumnCanGroup(column.id),\n getGroupedIndex: () => instance.getColumnGroupedIndex(column.id),\n getIsGrouped: () => instance.getColumnIsGrouped(column.id),\n toggleGrouping: () => instance.toggleColumnGrouping(column.id),\n getToggleGroupingProps: userProps =>\n instance.getToggleGroupingProps(column.id, userProps),\n }\n },\n\n getInstance: <TGenerics extends AnyGenerics>(\n instance: TableInstance<TGenerics>\n ): GroupingInstance<TGenerics> => {\n let registered = false\n\n return {\n _notifyGroupingReset: () => {\n instance._notifyExpandedReset()\n\n if (!registered) {\n registered = true\n return\n }\n\n if (instance.options.autoResetAll === false) {\n return\n }\n\n if (\n instance.options.autoResetAll === true ||\n instance.options.autoResetGrouping\n ) {\n instance.resetGrouping()\n }\n },\n getColumnAutoAggregationFn: columnId => {\n const firstRow = instance.getCoreRowModel().flatRows[0]\n\n const value = firstRow?.values[columnId]\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 return aggregationFns.count\n },\n getColumnAggregationFn: columnId => {\n const column = instance.getColumn(columnId)\n const userAggregationTypes = instance.options.aggregationFns\n\n if (!column) {\n throw new Error()\n }\n\n return isFunction(column.aggregationFn)\n ? column.aggregationFn\n : column.aggregationFn === 'auto'\n ? instance.getColumnAutoAggregationFn(columnId)\n : (userAggregationTypes as Record<string, any>)?.[\n column.aggregationFn as string\n ] ??\n (aggregationFns[\n column.aggregationFn as BuiltInAggregationType\n ] as AggregationFn<TGenerics>)\n },\n\n setGrouping: updater =>\n instance.options.onGroupingChange?.(\n updater,\n functionalUpdate(updater, instance.getState().grouping)\n ),\n\n toggleColumnGrouping: columnId => {\n instance.setGrouping(old => {\n // Find any existing grouping for this column\n if (old?.includes(columnId)) {\n return old.filter(d => d !== columnId)\n }\n\n return [...(old ?? []), columnId]\n })\n },\n\n getColumnCanGroup: columnId => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n throw new Error()\n }\n\n return (\n column.enableGrouping ??\n instance.options.enableGrouping ??\n column.defaultCanGroup ??\n !!column.accessorFn\n )\n },\n\n getColumnIsGrouped: columnId => {\n return instance.getState().grouping?.includes(columnId)\n },\n\n getColumnGroupedIndex: columnId =>\n instance.getState().grouping?.indexOf(columnId),\n\n resetGrouping: () => {\n instance.setGrouping(instance.initialState?.grouping ?? [])\n },\n\n getToggleGroupingProps: (columnId, userProps) => {\n const column = instance.getColumn(columnId)\n\n const canGroup = column.getCanGroup()\n\n const initialProps: ToggleGroupingProps = {\n title: canGroup ? 'Toggle Grouping' : undefined,\n onClick: canGroup\n ? (e: MouseEvent | TouchEvent) => {\n column.toggleGrouping?.()\n }\n : undefined,\n }\n\n return propGetter(initialProps, userProps)\n },\n\n getRowIsGrouped: rowId => !!instance.getRow(rowId)?.groupingColumnId,\n\n getPreGroupedRowModel: () => instance.getSortedRowModel(),\n getGroupedRowModel: () => {\n if (\n !instance._getGroupedRowModel &&\n instance.options.getGroupedRowModel\n ) {\n instance._getGroupedRowModel =\n instance.options.getGroupedRowModel(instance)\n }\n\n if (!instance._getGroupedRowModel) {\n return instance.getPreGroupedRowModel()\n }\n\n return instance._getGroupedRowModel()\n },\n }\n },\n\n createRow: <TGenerics extends AnyGenerics>(\n row: Row<TGenerics>,\n instance: TableInstance<TGenerics>\n ): GroupingRow => {\n return {\n getIsGrouped: () => instance.getRowIsGrouped(row.id),\n }\n },\n\n createCell: <TGenerics extends AnyGenerics>(\n cell: Cell<TGenerics>,\n column: Column<TGenerics>,\n row: Row<TGenerics>,\n instance: TableInstance<TGenerics>\n ): GroupingCell<TGenerics> => {\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 > 1,\n renderAggregatedCell: () => {\n const template = column.aggregatedCell ?? column.cell\n\n return template\n ? instance.render(template, {\n instance,\n column,\n row,\n cell,\n value: cell.value,\n })\n : null\n },\n }\n },\n\n orderColumns: <TGenerics extends AnyGenerics>(\n leafColumns: Column<TGenerics>[],\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}\n"],"names":["Grouping","getDefaultColumn","aggregationFn","getInitialState","grouping","getDefaultOptions","instance","onGroupingChange","makeStateUpdater","autoResetGrouping","groupedColumnMode","createColumn","column","getCanGroup","getColumnCanGroup","id","getGroupedIndex","getColumnGroupedIndex","getIsGrouped","getColumnIsGrouped","toggleGrouping","toggleColumnGrouping","getToggleGroupingProps","userProps","getInstance","registered","_notifyGroupingReset","_notifyExpandedReset","options","autoResetAll","resetGrouping","getColumnAutoAggregationFn","columnId","firstRow","getCoreRowModel","flatRows","value","values","aggregationFns","sum","Object","prototype","toString","call","extent","count","getColumnAggregationFn","getColumn","userAggregationTypes","Error","isFunction","setGrouping","updater","functionalUpdate","getState","old","includes","filter","d","enableGrouping","defaultCanGroup","accessorFn","indexOf","initialState","canGroup","initialProps","title","undefined","onClick","e","propGetter","getRowIsGrouped","rowId","getRow","groupingColumnId","getPreGroupedRowModel","getSortedRowModel","getGroupedRowModel","_getGroupedRowModel","createRow","row","createCell","cell","getIsPlaceholder","getIsAggregated","subRows","length","renderAggregatedCell","template","aggregatedCell","render","orderColumns","leafColumns","nonGroupingColumns","col","groupingColumns","map","g","find","Boolean"],"mappings":";;;;;;;;;;;;;;;;;AA2IA;AAEO,IAAMA,QAAQ,GAAG;AACtBC,EAAAA,gBAAgB,EAAE,SAEmB,gBAAA,GAAA;AACnC,IAAO,OAAA;AACLC,MAAAA,aAAa,EAAE,MAAA;AADV,KAAP,CAAA;AAGD,GAPqB;AAStBC,EAAAA,eAAe,EAAE,SAA0B,eAAA,GAAA;AACzC,IAAO,OAAA;AACLC,MAAAA,QAAQ,EAAE,EAAA;AADL,KAAP,CAAA;AAGD,GAbqB;AAetBC,EAAAA,iBAAiB,EAAE,SACjBC,iBAAAA,CAAAA,QADiB,EAEc;AAC/B,IAAO,OAAA;AACLC,MAAAA,gBAAgB,EAAEC,sBAAgB,CAAC,UAAD,EAAaF,QAAb,CAD7B;AAELG,MAAAA,iBAAiB,EAAE,IAFd;AAGLC,MAAAA,iBAAiB,EAAE,SAAA;AAHd,KAAP,CAAA;AAKD,GAvBqB;AAyBtBC,EAAAA,YAAY,EAAE,SAAA,YAAA,CACZC,MADY,EAEZN,QAFY,EAGkB;AAC9B,IAAO,OAAA;AACLJ,MAAAA,aAAa,EAAEU,MAAM,CAACV,aADjB;AAELW,MAAAA,WAAW,EAAE,SAAA,WAAA,GAAA;AAAA,QAAA,OAAMP,QAAQ,CAACQ,iBAAT,CAA2BF,MAAM,CAACG,EAAlC,CAAN,CAAA;AAAA,OAFR;AAGLC,MAAAA,eAAe,EAAE,SAAA,eAAA,GAAA;AAAA,QAAA,OAAMV,QAAQ,CAACW,qBAAT,CAA+BL,MAAM,CAACG,EAAtC,CAAN,CAAA;AAAA,OAHZ;AAILG,MAAAA,YAAY,EAAE,SAAA,YAAA,GAAA;AAAA,QAAA,OAAMZ,QAAQ,CAACa,kBAAT,CAA4BP,MAAM,CAACG,EAAnC,CAAN,CAAA;AAAA,OAJT;AAKLK,MAAAA,cAAc,EAAE,SAAA,cAAA,GAAA;AAAA,QAAA,OAAMd,QAAQ,CAACe,oBAAT,CAA8BT,MAAM,CAACG,EAArC,CAAN,CAAA;AAAA,OALX;AAMLO,MAAAA,sBAAsB,EAAE,SAAA,sBAAA,CAAAC,SAAS,EAAA;AAAA,QAC/BjB,OAAAA,QAAQ,CAACgB,sBAAT,CAAgCV,MAAM,CAACG,EAAvC,EAA2CQ,SAA3C,CAD+B,CAAA;AAAA,OAAA;AAN5B,KAAP,CAAA;AASD,GAtCqB;AAwCtBC,EAAAA,WAAW,EAAE,SACXlB,WAAAA,CAAAA,QADW,EAEqB;AAChC,IAAImB,IAAAA,UAAU,GAAG,KAAjB,CAAA;AAEA,IAAO,OAAA;AACLC,MAAAA,oBAAoB,EAAE,SAAM,oBAAA,GAAA;AAC1BpB,QAAAA,QAAQ,CAACqB,oBAAT,EAAA,CAAA;;AAEA,QAAI,IAAA,CAACF,UAAL,EAAiB;AACfA,UAAAA,UAAU,GAAG,IAAb,CAAA;AACA,UAAA,OAAA;AACD,SAAA;;AAED,QAAA,IAAInB,QAAQ,CAACsB,OAAT,CAAiBC,YAAjB,KAAkC,KAAtC,EAA6C;AAC3C,UAAA,OAAA;AACD,SAAA;;AAED,QAAA,IACEvB,QAAQ,CAACsB,OAAT,CAAiBC,YAAjB,KAAkC,IAAlC,IACAvB,QAAQ,CAACsB,OAAT,CAAiBnB,iBAFnB,EAGE;AACAH,UAAAA,QAAQ,CAACwB,aAAT,EAAA,CAAA;AACD,SAAA;AACF,OAnBI;AAoBLC,MAAAA,0BAA0B,EAAE,SAAAC,0BAAAA,CAAAA,QAAQ,EAAI;AACtC,QAAMC,IAAAA,QAAQ,GAAG3B,QAAQ,CAAC4B,eAAT,EAA2BC,CAAAA,QAA3B,CAAoC,CAApC,CAAjB,CAAA;AAEA,QAAMC,IAAAA,KAAK,GAAGH,QAAH,IAAA,IAAA,GAAA,KAAA,CAAA,GAAGA,QAAQ,CAAEI,MAAV,CAAiBL,QAAjB,CAAd,CAAA;;AAEA,QAAA,IAAI,OAAOI,KAAP,KAAiB,QAArB,EAA+B;AAC7B,UAAOE,OAAAA,6BAAc,CAACC,GAAtB,CAAA;AACD,SAAA;;AAED,QAAIC,IAAAA,MAAM,CAACC,SAAP,CAAiBC,QAAjB,CAA0BC,IAA1B,CAA+BP,KAA/B,CAA0C,KAAA,eAA9C,EAA+D;AAC7D,UAAOE,OAAAA,6BAAc,CAACM,MAAtB,CAAA;AACD,SAAA;;AAED,QAAON,OAAAA,6BAAc,CAACO,KAAtB,CAAA;AACD,OAlCI;AAmCLC,MAAAA,sBAAsB,EAAE,SAAAd,sBAAAA,CAAAA,QAAQ,EAAI;AAAA,QAAA,IAAA,IAAA,CAAA;;AAClC,QAAA,IAAMpB,MAAM,GAAGN,QAAQ,CAACyC,SAAT,CAAmBf,QAAnB,CAAf,CAAA;AACA,QAAA,IAAMgB,oBAAoB,GAAG1C,QAAQ,CAACsB,OAAT,CAAiBU,cAA9C,CAAA;;AAEA,QAAI,IAAA,CAAC1B,MAAL,EAAa;AACX,UAAM,MAAA,IAAIqC,KAAJ,EAAN,CAAA;AACD,SAAA;;AAED,QAAA,OAAOC,gBAAU,CAACtC,MAAM,CAACV,aAAR,CAAV,GACHU,MAAM,CAACV,aADJ,GAEHU,MAAM,CAACV,aAAP,KAAyB,MAAzB,GACAI,QAAQ,CAACyB,0BAAT,CAAoCC,QAApC,CADA,GAAA,CAAA,IAAA,GAECgB,oBAFD,IAAA,IAAA,GAAA,KAAA,CAAA,GAECA,oBAAD,CACEpC,MAAM,CAACV,aADT,CAFA,KAKCoC,IAAAA,GAAAA,IAAAA,GAAAA,6BAAc,CACb1B,MAAM,CAACV,aADM,CAPnB,CAAA;AAUD,OArDI;AAuDLiD,MAAAA,WAAW,EAAE,SAAA,WAAA,CAAAC,OAAO,EAAA;AAAA,QAClB9C,OAAAA,QAAQ,CAACsB,OAAT,CAAiBrB,gBADC,oBAClBD,QAAQ,CAACsB,OAAT,CAAiBrB,gBAAjB,CACE6C,OADF,EAEEC,sBAAgB,CAACD,OAAD,EAAU9C,QAAQ,CAACgD,QAAT,EAAA,CAAoBlD,QAA9B,CAFlB,CADkB,CAAA;AAAA,OAvDf;AA6DLiB,MAAAA,oBAAoB,EAAE,SAAAW,oBAAAA,CAAAA,QAAQ,EAAI;AAChC1B,QAAAA,QAAQ,CAAC6C,WAAT,CAAqB,UAAAI,GAAG,EAAI;AAC1B;AACA,UAAIA,IAAAA,GAAJ,YAAIA,GAAG,CAAEC,QAAL,CAAcxB,QAAd,CAAJ,EAA6B;AAC3B,YAAA,OAAOuB,GAAG,CAACE,MAAJ,CAAW,UAAAC,CAAC,EAAA;AAAA,cAAIA,OAAAA,CAAC,KAAK1B,QAAV,CAAA;AAAA,aAAZ,CAAP,CAAA;AACD,WAAA;;AAED,UAAA,OAAA,EAAA,CAAA,MAAA,CAAYuB,GAAZ,IAAYA,IAAAA,GAAAA,GAAZ,GAAmB,EAAnB,GAAwBvB,QAAxB,CAAA,CAAA,CAAA;AACD,SAPD,CAAA,CAAA;AAQD,OAtEI;AAwELlB,MAAAA,iBAAiB,EAAE,SAAAkB,iBAAAA,CAAAA,QAAQ,EAAI;AAAA,QAAA,IAAA,KAAA,EAAA,KAAA,EAAA,qBAAA,CAAA;;AAC7B,QAAA,IAAMpB,MAAM,GAAGN,QAAQ,CAACyC,SAAT,CAAmBf,QAAnB,CAAf,CAAA;;AAEA,QAAI,IAAA,CAACpB,MAAL,EAAa;AACX,UAAM,MAAA,IAAIqC,KAAJ,EAAN,CAAA;AACD,SAAA;;AAED,QAAA,OAAA,CAAA,KAAA,GAAA,CAAA,KAAA,GAAA,CAAA,qBAAA,GACErC,MAAM,CAAC+C,cADT,oCAEErD,QAAQ,CAACsB,OAAT,CAAiB+B,cAFnB,KAGE/C,IAAAA,GAAAA,KAAAA,GAAAA,MAAM,CAACgD,eAHT,KAAA,IAAA,GAAA,KAAA,GAIE,CAAC,CAAChD,MAAM,CAACiD,UAJX,CAAA;AAMD,OArFI;AAuFL1C,MAAAA,kBAAkB,EAAE,SAAAa,kBAAAA,CAAAA,QAAQ,EAAI;AAAA,QAAA,IAAA,qBAAA,CAAA;;AAC9B,QAAO1B,OAAAA,CAAAA,qBAAAA,GAAAA,QAAQ,CAACgD,QAAT,EAAoBlD,CAAAA,QAA3B,qBAAO,qBAA8BoD,CAAAA,QAA9B,CAAuCxB,QAAvC,CAAP,CAAA;AACD,OAzFI;AA2FLf,MAAAA,qBAAqB,EAAE,SAAA,qBAAA,CAAAe,QAAQ,EAAA;AAAA,QAAA,IAAA,sBAAA,CAAA;;AAAA,QAC7B1B,OAAAA,CAAAA,sBAAAA,GAAAA,QAAQ,CAACgD,QAAT,EAAoBlD,CAAAA,QADS,qBAC7B,sBAA8B0D,CAAAA,OAA9B,CAAsC9B,QAAtC,CAD6B,CAAA;AAAA,OA3F1B;AA8FLF,MAAAA,aAAa,EAAE,SAAM,aAAA,GAAA;AAAA,QAAA,IAAA,qBAAA,EAAA,sBAAA,CAAA;;AACnBxB,QAAAA,QAAQ,CAAC6C,WAAT,CAAqB7C,CAAAA,qBAAAA,GAAAA,CAAAA,sBAAAA,GAAAA,QAAQ,CAACyD,YAA9B,KAAqB,IAAA,GAAA,KAAA,CAAA,GAAA,sBAAA,CAAuB3D,QAA5C,KAAA,IAAA,GAAA,qBAAA,GAAwD,EAAxD,CAAA,CAAA;AACD,OAhGI;AAkGLkB,MAAAA,sBAAsB,EAAE,SAAA,sBAAA,CAACU,QAAD,EAAWT,SAAX,EAAyB;AAC/C,QAAA,IAAMX,MAAM,GAAGN,QAAQ,CAACyC,SAAT,CAAmBf,QAAnB,CAAf,CAAA;AAEA,QAAA,IAAMgC,QAAQ,GAAGpD,MAAM,CAACC,WAAP,EAAjB,CAAA;AAEA,QAAA,IAAMoD,YAAiC,GAAG;AACxCC,UAAAA,KAAK,EAAEF,QAAQ,GAAG,iBAAH,GAAuBG,SADE;AAExCC,UAAAA,OAAO,EAAEJ,QAAQ,GACb,UAACK,CAAD,EAAgC;AAC9BzD,YAAAA,MAAM,CAACQ,cAAP,IAAAR,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,MAAM,CAACQ,cAAP,EAAA,CAAA;AACD,WAHY,GAIb+C,SAAAA;AANoC,SAA1C,CAAA;AASA,QAAA,OAAOG,gBAAU,CAACL,YAAD,EAAe1C,SAAf,CAAjB,CAAA;AACD,OAjHI;AAmHLgD,MAAAA,eAAe,EAAE,SAAA,eAAA,CAAAC,KAAK,EAAA;AAAA,QAAA,IAAA,gBAAA,CAAA;;AAAA,QAAI,OAAA,CAAC,EAAClE,CAAAA,gBAAAA,GAAAA,QAAQ,CAACmE,MAAT,CAAgBD,KAAhB,CAAD,KAAA,IAAA,IAAC,gBAAwBE,CAAAA,gBAAzB,CAAL,CAAA;AAAA,OAnHjB;AAqHLC,MAAAA,qBAAqB,EAAE,SAAA,qBAAA,GAAA;AAAA,QAAMrE,OAAAA,QAAQ,CAACsE,iBAAT,EAAN,CAAA;AAAA,OArHlB;AAsHLC,MAAAA,kBAAkB,EAAE,SAAM,kBAAA,GAAA;AACxB,QACE,IAAA,CAACvE,QAAQ,CAACwE,mBAAV,IACAxE,QAAQ,CAACsB,OAAT,CAAiBiD,kBAFnB,EAGE;AACAvE,UAAAA,QAAQ,CAACwE,mBAAT,GACExE,QAAQ,CAACsB,OAAT,CAAiBiD,kBAAjB,CAAoCvE,QAApC,CADF,CAAA;AAED,SAAA;;AAED,QAAA,IAAI,CAACA,QAAQ,CAACwE,mBAAd,EAAmC;AACjC,UAAOxE,OAAAA,QAAQ,CAACqE,qBAAT,EAAP,CAAA;AACD,SAAA;;AAED,QAAOrE,OAAAA,QAAQ,CAACwE,mBAAT,EAAP,CAAA;AACD,OAAA;AApII,KAAP,CAAA;AAsID,GAnLqB;AAqLtBC,EAAAA,SAAS,EAAE,SAAA,SAAA,CACTC,GADS,EAET1E,QAFS,EAGO;AAChB,IAAO,OAAA;AACLY,MAAAA,YAAY,EAAE,SAAA,YAAA,GAAA;AAAA,QAAA,OAAMZ,QAAQ,CAACiE,eAAT,CAAyBS,GAAG,CAACjE,EAA7B,CAAN,CAAA;AAAA,OAAA;AADT,KAAP,CAAA;AAGD,GA5LqB;AA8LtBkE,EAAAA,UAAU,EAAE,SAAA,UAAA,CACVC,IADU,EAEVtE,MAFU,EAGVoE,GAHU,EAIV1E,QAJU,EAKkB;AAC5B,IAAO,OAAA;AACLY,MAAAA,YAAY,EAAE,SAAA,YAAA,GAAA;AAAA,QACZN,OAAAA,MAAM,CAACM,YAAP,EAAyBN,IAAAA,MAAM,CAACG,EAAP,KAAciE,GAAG,CAACN,gBAD/B,CAAA;AAAA,OADT;AAGLS,MAAAA,gBAAgB,EAAE,SAAA,gBAAA,GAAA;AAAA,QAAM,OAAA,CAACD,IAAI,CAAChE,YAAL,EAAD,IAAwBN,MAAM,CAACM,YAAP,EAA9B,CAAA;AAAA,OAHb;AAILkE,MAAAA,eAAe,EAAE,SAAA,eAAA,GAAA;AAAA,QAAA,IAAA,YAAA,CAAA;;AAAA,QAAA,OACf,CAACF,IAAI,CAAChE,YAAL,EAAD,IACA,CAACgE,IAAI,CAACC,gBAAL,EADD,IAEA,iBAAAH,GAAG,CAACK,OAAJ,KAAaC,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,YAAAA,CAAAA,MAAb,IAAsB,CAHP,CAAA;AAAA,OAJZ;AAQLC,MAAAA,oBAAoB,EAAE,SAAM,oBAAA,GAAA;AAAA,QAAA,IAAA,qBAAA,CAAA;;AAC1B,QAAMC,IAAAA,QAAQ,4BAAG5E,MAAM,CAAC6E,cAAV,KAA4B7E,IAAAA,GAAAA,qBAAAA,GAAAA,MAAM,CAACsE,IAAjD,CAAA;AAEA,QAAA,OAAOM,QAAQ,GACXlF,QAAQ,CAACoF,MAAT,CAAgBF,QAAhB,EAA0B;AACxBlF,UAAAA,QAAQ,EAARA,QADwB;AAExBM,UAAAA,MAAM,EAANA,MAFwB;AAGxBoE,UAAAA,GAAG,EAAHA,GAHwB;AAIxBE,UAAAA,IAAI,EAAJA,IAJwB;AAKxB9C,UAAAA,KAAK,EAAE8C,IAAI,CAAC9C,KAAAA;AALY,SAA1B,CADW,GAQX,IARJ,CAAA;AASD,OAAA;AApBI,KAAP,CAAA;AAsBD,GA1NqB;AA4NtBuD,EAAAA,YAAY,EAAE,SACZC,YAAAA,CAAAA,WADY,EAEZxF,QAFY,EAGZM,iBAHY,EAIT;AACH,IAAI,IAAA,EAACN,QAAD,IAACA,IAAAA,IAAAA,QAAQ,CAAEkF,MAAX,CAAA,IAAqB,CAAC5E,iBAA1B,EAA6C;AAC3C,MAAA,OAAOkF,WAAP,CAAA;AACD,KAAA;;AAED,IAAA,IAAMC,kBAAkB,GAAGD,WAAW,CAACnC,MAAZ,CACzB,UAAAqC,GAAG,EAAA;AAAA,MAAI,OAAA,CAAC1F,QAAQ,CAACoD,QAAT,CAAkBsC,GAAG,CAAC/E,EAAtB,CAAL,CAAA;AAAA,KADsB,CAA3B,CAAA;;AAIA,IAAIL,IAAAA,iBAAiB,KAAK,QAA1B,EAAoC;AAClC,MAAA,OAAOmF,kBAAP,CAAA;AACD,KAAA;;AAED,IAAA,IAAME,eAAe,GAAG3F,QAAQ,CAC7B4F,GADqB,CACjB,UAAAC,CAAC,EAAA;AAAA,MAAA,OAAIL,WAAW,CAACM,IAAZ,CAAiB,UAAAJ,GAAG,EAAA;AAAA,QAAA,OAAIA,GAAG,CAAC/E,EAAJ,KAAWkF,CAAf,CAAA;AAAA,OAApB,CAAJ,CAAA;AAAA,KADgB,CAErBxC,CAAAA,MAFqB,CAEd0C,OAFc,CAAxB,CAAA;AAIA,IAAWJ,OAAAA,EAAAA,CAAAA,MAAAA,CAAAA,eAAX,EAA+BF,kBAA/B,CAAA,CAAA;AACD,GAAA;AAlPqB;;;;"}
|
|
1
|
+
{"version":3,"file":"Grouping.js","sources":["../../../src/features/Grouping.ts"],"sourcesContent":["import { RowModel } from '..'\nimport { BuiltInAggregationType, aggregationFns } from '../aggregationFns'\nimport {\n Cell,\n Column,\n Getter,\n OnChangeFn,\n PropGetterValue,\n TableInstance,\n Row,\n Updater,\n PartialGenerics,\n Renderable,\n UseRenderer,\n AnyGenerics,\n} from '../types'\nimport {\n functionalUpdate,\n isFunction,\n makeStateUpdater,\n memo,\n Overwrite,\n propGetter,\n} from '../utils'\n\nexport type GroupingState = string[]\n\nexport type AggregationFn<TGenerics extends AnyGenerics> = (\n getLeafValues: () => TGenerics['Row'][],\n getChildValues: () => TGenerics['Row'][]\n) => any\n\nexport type CustomAggregationTypes<TGenerics extends AnyGenerics> = Record<\n string,\n AggregationFn<TGenerics>\n>\n\nexport type AggregationType<TGenerics extends AnyGenerics> =\n | 'auto'\n | BuiltInAggregationType\n | keyof TGenerics['AggregationFns']\n | AggregationFn<TGenerics>\n\nexport type GroupingTableState = {\n grouping: GroupingState\n}\n\nexport type GroupingColumnDef<TGenerics extends AnyGenerics> = {\n aggregationFn?: AggregationType<Overwrite<TGenerics, { Value: any }>>\n aggregateValue?: (columnValue: unknown) => any\n aggregatedCell?: Renderable<\n TGenerics,\n {\n instance: TableInstance<TGenerics>\n row: Row<TGenerics>\n column: Column<TGenerics>\n cell: Cell<TGenerics>\n value: TGenerics['Value']\n }\n >\n enableGrouping?: boolean\n defaultCanGroup?: boolean\n}\n\nexport type GroupingColumn<TGenerics extends AnyGenerics> = {\n aggregationFn?: AggregationType<Overwrite<TGenerics, { Value: any }>>\n getCanGroup: () => boolean\n getIsGrouped: () => boolean\n getGroupedIndex: () => number\n toggleGrouping: () => void\n getToggleGroupingProps: <TGetter extends Getter<ToggleGroupingProps>>(\n userProps?: TGetter\n ) => undefined | PropGetterValue<ToggleGroupingProps, TGetter>\n}\n\nexport type GroupingRow = {\n groupingColumnId?: string\n groupingValue?: any\n getIsGrouped: () => boolean\n}\n\nexport type GroupingCell<TGenerics extends AnyGenerics> = {\n getIsGrouped: () => boolean\n getIsPlaceholder: () => boolean\n getIsAggregated: () => boolean\n renderAggregatedCell: () => string | null | ReturnType<UseRenderer<TGenerics>>\n}\n\nexport type ColumnDefaultOptions = {\n // Column\n onGroupingChange: OnChangeFn<GroupingState>\n autoResetGrouping: boolean\n enableGrouping: boolean\n}\n\nexport type GroupingOptions<TGenerics extends AnyGenerics> = {\n aggregationFns?: TGenerics['AggregationFns']\n onGroupingChange?: OnChangeFn<GroupingState>\n autoResetGrouping?: boolean\n enableGrouping?: boolean\n enableGroupingRemoval?: boolean\n getGroupedRowModel?: (\n instance: TableInstance<TGenerics>\n ) => () => RowModel<TGenerics>\n\n groupedColumnMode?: false | 'reorder' | 'remove'\n}\n\nexport type GroupingColumnMode = false | 'reorder' | 'remove'\n\nexport type ToggleGroupingProps = {\n title?: string\n onClick?: (event: unknown) => void\n}\n\nexport type GroupingInstance<TGenerics extends AnyGenerics> = {\n _notifyGroupingReset: () => void\n getColumnAutoAggregationFn: (\n columnId: string\n ) => AggregationFn<TGenerics> | undefined\n getColumnAggregationFn: (\n columnId: string\n ) => AggregationFn<TGenerics> | undefined\n setGrouping: (updater: Updater<GroupingState>) => void\n resetGrouping: () => void\n toggleColumnGrouping: (columnId: string) => void\n getColumnCanGroup: (columnId: string) => boolean\n getColumnIsGrouped: (columnId: string) => boolean\n getColumnGroupedIndex: (columnId: string) => number\n getToggleGroupingProps: <TGetter extends Getter<ToggleGroupingProps>>(\n columnId: string,\n userProps?: TGetter\n ) => undefined | PropGetterValue<ToggleGroupingProps, TGetter>\n getRowIsGrouped: (rowId: string) => boolean\n getPreGroupedRowModel: () => RowModel<TGenerics>\n getGroupedRowModel: () => RowModel<TGenerics>\n _getGroupedRowModel?: () => RowModel<TGenerics>\n}\n\n//\n\nexport const Grouping = {\n getDefaultColumn: <\n TGenerics extends AnyGenerics\n >(): GroupingColumnDef<TGenerics> => {\n return {\n aggregationFn: 'auto',\n }\n },\n\n getInitialState: (): GroupingTableState => {\n return {\n grouping: [],\n }\n },\n\n getDefaultOptions: <TGenerics extends AnyGenerics>(\n instance: TableInstance<TGenerics>\n ): GroupingOptions<TGenerics> => {\n return {\n onGroupingChange: makeStateUpdater('grouping', instance),\n autoResetGrouping: true,\n groupedColumnMode: 'reorder',\n }\n },\n\n createColumn: <TGenerics extends AnyGenerics>(\n column: Column<TGenerics>,\n instance: TableInstance<TGenerics>\n ): GroupingColumn<TGenerics> => {\n return {\n aggregationFn: column.aggregationFn,\n getCanGroup: () => instance.getColumnCanGroup(column.id),\n getGroupedIndex: () => instance.getColumnGroupedIndex(column.id),\n getIsGrouped: () => instance.getColumnIsGrouped(column.id),\n toggleGrouping: () => instance.toggleColumnGrouping(column.id),\n getToggleGroupingProps: userProps =>\n instance.getToggleGroupingProps(column.id, userProps),\n }\n },\n\n getInstance: <TGenerics extends AnyGenerics>(\n instance: TableInstance<TGenerics>\n ): GroupingInstance<TGenerics> => {\n let registered = false\n\n return {\n _notifyGroupingReset: () => {\n instance._notifyExpandedReset()\n\n if (!registered) {\n registered = true\n return\n }\n\n if (instance.options.autoResetAll === false) {\n return\n }\n\n if (\n instance.options.autoResetAll === true ||\n instance.options.autoResetGrouping\n ) {\n instance.resetGrouping()\n }\n },\n getColumnAutoAggregationFn: columnId => {\n const firstRow = instance.getCoreRowModel().flatRows[0]\n\n const value = firstRow?.values[columnId]\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 return aggregationFns.count\n },\n getColumnAggregationFn: columnId => {\n const column = instance.getColumn(columnId)\n const userAggregationTypes = instance.options.aggregationFns\n\n if (!column) {\n throw new Error()\n }\n\n return isFunction(column.aggregationFn)\n ? column.aggregationFn\n : column.aggregationFn === 'auto'\n ? instance.getColumnAutoAggregationFn(columnId)\n : (userAggregationTypes as Record<string, any>)?.[\n column.aggregationFn as string\n ] ??\n (aggregationFns[\n column.aggregationFn as BuiltInAggregationType\n ] as AggregationFn<TGenerics>)\n },\n\n setGrouping: updater =>\n instance.options.onGroupingChange?.(\n updater,\n functionalUpdate(updater, instance.getState().grouping)\n ),\n\n toggleColumnGrouping: columnId => {\n instance.setGrouping(old => {\n // Find any existing grouping for this column\n if (old?.includes(columnId)) {\n return old.filter(d => d !== columnId)\n }\n\n return [...(old ?? []), columnId]\n })\n },\n\n getColumnCanGroup: columnId => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n throw new Error()\n }\n\n return (\n column.enableGrouping ??\n instance.options.enableGrouping ??\n column.defaultCanGroup ??\n !!column.accessorFn\n )\n },\n\n getColumnIsGrouped: columnId => {\n return instance.getState().grouping?.includes(columnId)\n },\n\n getColumnGroupedIndex: columnId =>\n instance.getState().grouping?.indexOf(columnId),\n\n resetGrouping: () => {\n instance.setGrouping(instance.initialState?.grouping ?? [])\n },\n\n getToggleGroupingProps: (columnId, userProps) => {\n const column = instance.getColumn(columnId)\n\n const canGroup = column.getCanGroup()\n\n const initialProps: ToggleGroupingProps = {\n title: canGroup ? 'Toggle Grouping' : undefined,\n onClick: canGroup\n ? (e: unknown) => {\n column.toggleGrouping?.()\n }\n : undefined,\n }\n\n return propGetter(initialProps, userProps)\n },\n\n getRowIsGrouped: rowId => !!instance.getRow(rowId)?.groupingColumnId,\n\n getPreGroupedRowModel: () => instance.getSortedRowModel(),\n getGroupedRowModel: () => {\n if (\n !instance._getGroupedRowModel &&\n instance.options.getGroupedRowModel\n ) {\n instance._getGroupedRowModel =\n instance.options.getGroupedRowModel(instance)\n }\n\n if (!instance._getGroupedRowModel) {\n return instance.getPreGroupedRowModel()\n }\n\n return instance._getGroupedRowModel()\n },\n }\n },\n\n createRow: <TGenerics extends AnyGenerics>(\n row: Row<TGenerics>,\n instance: TableInstance<TGenerics>\n ): GroupingRow => {\n return {\n getIsGrouped: () => instance.getRowIsGrouped(row.id),\n }\n },\n\n createCell: <TGenerics extends AnyGenerics>(\n cell: Cell<TGenerics>,\n column: Column<TGenerics>,\n row: Row<TGenerics>,\n instance: TableInstance<TGenerics>\n ): GroupingCell<TGenerics> => {\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 > 1,\n renderAggregatedCell: () => {\n const template = column.aggregatedCell ?? column.cell\n\n return template\n ? instance.render(template, {\n instance,\n column,\n row,\n cell,\n value: cell.value,\n })\n : null\n },\n }\n },\n\n orderColumns: <TGenerics extends AnyGenerics>(\n leafColumns: Column<TGenerics>[],\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}\n"],"names":["Grouping","getDefaultColumn","aggregationFn","getInitialState","grouping","getDefaultOptions","instance","onGroupingChange","makeStateUpdater","autoResetGrouping","groupedColumnMode","createColumn","column","getCanGroup","getColumnCanGroup","id","getGroupedIndex","getColumnGroupedIndex","getIsGrouped","getColumnIsGrouped","toggleGrouping","toggleColumnGrouping","getToggleGroupingProps","userProps","getInstance","registered","_notifyGroupingReset","_notifyExpandedReset","options","autoResetAll","resetGrouping","getColumnAutoAggregationFn","columnId","firstRow","getCoreRowModel","flatRows","value","values","aggregationFns","sum","Object","prototype","toString","call","extent","count","getColumnAggregationFn","getColumn","userAggregationTypes","Error","isFunction","setGrouping","updater","functionalUpdate","getState","old","includes","filter","d","enableGrouping","defaultCanGroup","accessorFn","indexOf","initialState","canGroup","initialProps","title","undefined","onClick","e","propGetter","getRowIsGrouped","rowId","getRow","groupingColumnId","getPreGroupedRowModel","getSortedRowModel","getGroupedRowModel","_getGroupedRowModel","createRow","row","createCell","cell","getIsPlaceholder","getIsAggregated","subRows","length","renderAggregatedCell","template","aggregatedCell","render","orderColumns","leafColumns","nonGroupingColumns","col","groupingColumns","map","g","find","Boolean"],"mappings":"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"}
|
|
@@ -29,8 +29,8 @@ var RowSelection = {
|
|
|
29
29
|
enableRowSelection: true,
|
|
30
30
|
enableMultiRowSelection: true,
|
|
31
31
|
enableSubRowSelection: true // enableGroupingRowSelection: false,
|
|
32
|
-
// isAdditiveSelectEvent: (e:
|
|
33
|
-
// isInclusiveSelectEvent: (e:
|
|
32
|
+
// isAdditiveSelectEvent: (e: unknown) => !!e.metaKey,
|
|
33
|
+
// isInclusiveSelectEvent: (e: unknown) => !!e.shiftKey,
|
|
34
34
|
|
|
35
35
|
};
|
|
36
36
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RowSelection.js","sources":["../../../src/features/RowSelection.ts"],"sourcesContent":["import {\n Getter,\n OnChangeFn,\n AnyGenerics,\n PartialGenerics,\n PropGetterValue,\n TableInstance,\n Row,\n RowModel,\n Updater,\n} from '../types'\nimport { functionalUpdate, makeStateUpdater, memo, propGetter } from '../utils'\n\nexport type RowSelectionState = Record<string, boolean>\n\nexport type RowSelectionTableState = {\n rowSelection: RowSelectionState\n}\n\nexport type RowSelectionOptions<TGenerics extends AnyGenerics> = {\n onRowSelectionChange?: OnChangeFn<RowSelectionState>\n autoResetRowSelection?: boolean\n enableRowSelection?: boolean | ((row: Row<TGenerics>) => boolean)\n enableMultiRowSelection?: boolean | ((row: Row<TGenerics>) => boolean)\n enableSubRowSelection?: boolean | ((row: Row<TGenerics>) => boolean)\n // enableGroupingRowSelection?:\n // | boolean\n // | ((\n // row: Row<TGenerics>\n // ) => boolean)\n // isAdditiveSelectEvent?: (e: MouseEvent | TouchEvent) => boolean\n // isInclusiveSelectEvent?: (e: MouseEvent | TouchEvent) => boolean\n // selectRowsFn?: (\n // instance: TableInstance<\n // TData,\n // TValue,\n // TFilterFns,\n // TSortingFns,\n // TAggregationFns\n // >,\n // rowModel: RowModel<TGenerics>\n // ) => RowModel<TGenerics>\n}\n\ntype ToggleRowSelectedProps = {\n onChange?: (e: MouseEvent | TouchEvent) => void\n checked?: boolean\n title?: string\n indeterminate?: boolean\n}\n\nexport type RowSelectionRow = {\n getIsSelected: () => boolean\n getIsSomeSelected: () => boolean\n getCanSelect: () => boolean\n getCanMultiSelect: () => boolean\n toggleSelected: (value?: boolean) => void\n getToggleSelectedProps: <TGetter extends Getter<ToggleRowSelectedProps>>(\n userProps?: TGetter\n ) => undefined | PropGetterValue<ToggleRowSelectedProps, TGetter>\n}\n\nexport type RowSelectionInstance<TGenerics extends AnyGenerics> = {\n _notifyRowSelectionReset: () => void\n getToggleRowSelectedProps: <TGetter extends Getter<ToggleRowSelectedProps>>(\n rowId: string,\n userProps?: TGetter\n ) => undefined | PropGetterValue<ToggleRowSelectedProps, TGetter>\n getToggleAllRowsSelectedProps: <\n TGetter extends Getter<ToggleRowSelectedProps>\n >(\n userProps?: TGetter\n ) => undefined | PropGetterValue<ToggleRowSelectedProps, TGetter>\n getToggleAllPageRowsSelectedProps: <\n TGetter extends Getter<ToggleRowSelectedProps>\n >(\n userProps?: TGetter\n ) => undefined | PropGetterValue<ToggleRowSelectedProps, TGetter>\n setRowSelection: (updater: Updater<RowSelectionState>) => void\n resetRowSelection: () => void\n toggleRowSelected: (rowId: string, value?: boolean) => void\n getRowCanSelect: (rowId: string) => boolean\n getRowCanSelectSubRows: (rowId: string) => boolean\n getRowCanMultiSelect: (rowId: string) => boolean\n // getGroupingRowCanSelect: (rowId: string) => boolean\n getRowIsSelected: (rowId: string) => boolean\n getRowIsSomeSelected: (rowId: string) => boolean\n getIsAllRowsSelected: () => boolean\n getIsAllPageRowsSelected: () => boolean\n getIsSomeRowsSelected: () => boolean\n getIsSomePageRowsSelected: () => boolean\n toggleAllRowsSelected: (value: boolean) => void\n toggleAllPageRowsSelected: (value: boolean) => void\n getPreSelectedRowModel: () => RowModel<TGenerics>\n getSelectedRowModel: () => RowModel<TGenerics>\n getFilteredSelectedRowModel: () => RowModel<TGenerics>\n getGroupedSelectedRowModel: () => RowModel<TGenerics>\n}\n\n//\n\nexport const RowSelection = {\n getInitialState: (): RowSelectionTableState => {\n return {\n rowSelection: {},\n }\n },\n\n getDefaultOptions: <TGenerics extends AnyGenerics>(\n instance: TableInstance<TGenerics>\n ): RowSelectionOptions<TGenerics> => {\n return {\n onRowSelectionChange: makeStateUpdater('rowSelection', instance),\n autoResetRowSelection: true,\n enableRowSelection: true,\n enableMultiRowSelection: true,\n enableSubRowSelection: true,\n // enableGroupingRowSelection: false,\n // isAdditiveSelectEvent: (e: MouseEvent | TouchEvent) => !!e.metaKey,\n // isInclusiveSelectEvent: (e: MouseEvent | TouchEvent) => !!e.shiftKey,\n }\n },\n\n getInstance: <TGenerics extends AnyGenerics>(\n instance: TableInstance<TGenerics>\n ): RowSelectionInstance<TGenerics> => {\n let registered = false\n\n // const pageRows = instance.getPageRows()\n\n return {\n _notifyRowSelectionReset: () => {\n if (!registered) {\n registered = true\n return\n }\n\n if (instance.options.autoResetAll === false) {\n return\n }\n\n if (\n instance.options.autoResetAll === true ||\n instance.options.autoResetRowSelection\n ) {\n instance.resetRowSelection()\n }\n },\n setRowSelection: updater =>\n instance.options.onRowSelectionChange?.(\n updater,\n functionalUpdate(updater, instance.getState().rowSelection)\n ),\n resetRowSelection: () =>\n instance.setRowSelection(instance.initialState.rowSelection ?? {}),\n toggleAllRowsSelected: value => {\n instance.setRowSelection(old => {\n value =\n typeof value !== 'undefined'\n ? value\n : !instance.getIsAllRowsSelected()\n\n const rowSelection = { ...old }\n\n const preGroupedFlatRows = instance.getPreGroupedRowModel().flatRows\n\n // We don't use `mutateRowIsSelected` here for performance reasons.\n // All of the rows are flat already, so it wouldn't be worth it\n if (value) {\n preGroupedFlatRows.forEach(row => {\n rowSelection[row.id] = true\n })\n } else {\n preGroupedFlatRows.forEach(row => {\n delete rowSelection[row.id]\n })\n }\n\n return rowSelection\n })\n },\n toggleAllPageRowsSelected: value =>\n instance.setRowSelection(old => {\n const selectAll =\n typeof value !== 'undefined'\n ? value\n : !instance.getIsAllPageRowsSelected()\n\n const rowSelection: RowSelectionState = { ...old }\n\n instance.getRowModel().rows.forEach(row => {\n mutateRowIsSelected(rowSelection, row.id, value, instance)\n })\n\n return rowSelection\n }),\n toggleRowSelected: (rowId, value) => {\n const row = instance.getRow(rowId)\n const isSelected = row.getIsSelected()\n\n instance.setRowSelection(old => {\n value = typeof value !== 'undefined' ? value : !isSelected\n\n if (isSelected === value) {\n return old\n }\n\n const selectedRowIds = { ...old }\n\n mutateRowIsSelected(selectedRowIds, rowId, value, instance)\n\n return selectedRowIds\n })\n },\n // addRowSelectionRange: rowId => {\n // const {\n // rows,\n // rowsById,\n // options: { selectGroupingRows, selectSubRows },\n // } = instance\n\n // const findSelectedRow = (rows: Row[]) => {\n // let found\n // rows.find(d => {\n // if (d.getIsSelected()) {\n // found = d\n // return true\n // }\n // const subFound = findSelectedRow(d.subRows || [])\n // if (subFound) {\n // found = subFound\n // return true\n // }\n // return false\n // })\n // return found\n // }\n\n // const firstRow = findSelectedRow(rows) || rows[0]\n // const lastRow = rowsById[rowId]\n\n // let include = false\n // const selectedRowIds = {}\n\n // const addRow = (row: Row) => {\n // mutateRowIsSelected(selectedRowIds, row.id, true, {\n // rowsById,\n // selectGroupingRows: selectGroupingRows!,\n // selectSubRows: selectSubRows!,\n // })\n // }\n\n // instance.rows.forEach(row => {\n // const isFirstRow = row.id === firstRow.id\n // const isLastRow = row.id === lastRow.id\n\n // if (isFirstRow || isLastRow) {\n // if (!include) {\n // include = true\n // } else if (include) {\n // addRow(row)\n // include = false\n // }\n // }\n\n // if (include) {\n // addRow(row)\n // }\n // })\n\n // instance.setRowSelection(selectedRowIds)\n // },\n getPreSelectedRowModel: () => instance.getCoreRowModel(),\n getSelectedRowModel: memo(\n () => [instance.getState().rowSelection, instance.getCoreRowModel()],\n (rowSelection, rowModel) => {\n if (!Object.keys(rowSelection).length) {\n return {\n rows: [],\n flatRows: [],\n rowsById: {},\n }\n }\n\n return selectRowsFn(instance, rowModel)\n },\n {\n key: 'getSelectedRowModel',\n debug: () => instance.options.debugAll ?? instance.options.debugTable,\n onChange: () => {\n instance.queue(() => instance._notifyExpandedReset())\n },\n }\n ),\n\n getFilteredSelectedRowModel: memo(\n () => [\n instance.getState().rowSelection,\n instance.getGlobalFilteredRowModel(),\n ],\n (rowSelection, rowModel) => {\n if (!Object.keys(rowSelection).length) {\n return {\n rows: [],\n flatRows: [],\n rowsById: {},\n }\n }\n\n return selectRowsFn(instance, rowModel)\n },\n {\n key: 'getFilteredSelectedRowModel',\n debug: () => instance.options.debugAll ?? instance.options.debugTable,\n onChange: () => instance.queue(() => instance._notifyExpandedReset()),\n }\n ),\n\n getGroupedSelectedRowModel: memo(\n () => [instance.getState().rowSelection, instance.getGroupedRowModel()],\n (rowSelection, rowModel) => {\n if (!Object.keys(rowSelection).length) {\n return {\n rows: [],\n flatRows: [],\n rowsById: {},\n }\n }\n\n return selectRowsFn(instance, rowModel)\n },\n {\n key: 'getGroupedSelectedRowModel',\n debug: () => instance.options.debugAll ?? instance.options.debugTable,\n onChange: () => instance.queue(() => instance._notifyExpandedReset()),\n }\n ),\n\n ///\n\n getRowIsSelected: rowId => {\n const { rowSelection } = instance.getState()\n const row = instance.getRow(rowId)\n\n if (!row) {\n throw new Error()\n }\n\n return isRowSelected(row, rowSelection, instance) === true\n },\n\n getRowIsSomeSelected: rowId => {\n const { rowSelection } = instance.getState()\n const row = instance.getRow(rowId)\n\n if (!row) {\n throw new Error()\n }\n\n return isRowSelected(row, rowSelection, instance) === 'some'\n },\n\n getRowCanSelect: rowId => {\n const row = instance.getRow(rowId)\n\n if (!row) {\n throw new Error()\n }\n\n if (typeof instance.options.enableRowSelection === 'function') {\n return instance.options.enableRowSelection(row)\n }\n\n return instance.options.enableRowSelection ?? true\n },\n\n getRowCanSelectSubRows: rowId => {\n const row = instance.getRow(rowId)\n\n if (!row) {\n throw new Error()\n }\n\n if (typeof instance.options.enableSubRowSelection === 'function') {\n return instance.options.enableSubRowSelection(row)\n }\n\n return instance.options.enableSubRowSelection ?? true\n },\n\n getRowCanMultiSelect: rowId => {\n const row = instance.getRow(rowId)\n\n if (!row) {\n throw new Error()\n }\n\n if (typeof instance.options.enableMultiRowSelection === 'function') {\n return instance.options.enableMultiRowSelection(row)\n }\n\n return instance.options.enableMultiRowSelection ?? true\n },\n\n // getGroupingRowCanSelect: rowId => {\n // const row = instance.getRow(rowId)\n\n // if (!row) {\n // throw new Error()\n // }\n\n // if (typeof instance.options.enableGroupingRowSelection === 'function') {\n // return instance.options.enableGroupingRowSelection(row)\n // }\n\n // return instance.options.enableGroupingRowSelection ?? false\n // },\n\n getIsAllRowsSelected: () => {\n const preFilteredFlatRows =\n instance.getPreGlobalFilteredRowModel().flatRows\n const { rowSelection } = instance.getState()\n\n let isAllRowsSelected = Boolean(\n preFilteredFlatRows.length && Object.keys(rowSelection).length\n )\n\n if (isAllRowsSelected) {\n if (preFilteredFlatRows.some(row => !rowSelection[row.id])) {\n isAllRowsSelected = false\n }\n }\n\n return isAllRowsSelected\n },\n\n getIsAllPageRowsSelected: () => {\n const paginationFlatRows = instance.getPaginationRowModel().flatRows\n const { rowSelection } = instance.getState()\n\n let isAllPageRowsSelected = !!paginationFlatRows.length\n\n if (\n isAllPageRowsSelected &&\n paginationFlatRows.some(row => !rowSelection[row.id])\n ) {\n isAllPageRowsSelected = false\n }\n\n return isAllPageRowsSelected\n },\n\n getIsSomeRowsSelected: () => {\n return (\n !instance.getIsAllRowsSelected() &&\n !!Object.keys(instance.getState().rowSelection ?? {}).length\n )\n },\n\n getIsSomePageRowsSelected: () => {\n const paginationFlatRows = instance.getPaginationRowModel().flatRows\n return instance.getIsAllPageRowsSelected()\n ? false\n : !!paginationFlatRows?.length\n },\n\n getToggleRowSelectedProps: (rowId, userProps) => {\n const row = instance.getRow(rowId)\n\n const isSelected = row.getIsSelected()\n const isSomeSelected = row.getIsSomeSelected()\n const canSelect = row.getCanSelect()\n\n const initialProps: ToggleRowSelectedProps = {\n onChange: canSelect\n ? (e: MouseEvent | TouchEvent) => {\n row.toggleSelected((e.target as HTMLInputElement).checked)\n }\n : undefined,\n checked: isSelected,\n title: 'Toggle Row Selected',\n indeterminate: isSomeSelected,\n // onChange: forInput\n // ? (e: Event) => e.stopPropagation()\n // : (e: Event) => {\n // if (instance.options.isAdditiveSelectEvent(e)) {\n // row.toggleSelected()\n // } else if (instance.options.isInclusiveSelectEvent(e)) {\n // instance.addRowSelectionRange(row.id)\n // } else {\n // instance.setRowSelection({})\n // row.toggleSelected()\n // }\n\n // if (props.onClick) props.onClick(e)\n // },\n }\n\n return propGetter(initialProps, userProps)\n },\n\n getToggleAllRowsSelectedProps: userProps => {\n const isSomeRowsSelected = instance.getIsSomeRowsSelected()\n const isAllRowsSelected = instance.getIsAllRowsSelected()\n\n const initialProps: ToggleRowSelectedProps = {\n onChange: (e: MouseEvent | TouchEvent) => {\n instance.toggleAllRowsSelected(\n (e.target as HTMLInputElement).checked\n )\n },\n checked: isAllRowsSelected,\n title: 'Toggle All Rows Selected',\n indeterminate: isSomeRowsSelected,\n }\n\n return propGetter(initialProps, userProps)\n },\n\n getToggleAllPageRowsSelectedProps: userProps => {\n const isSomePageRowsSelected = instance.getIsSomePageRowsSelected()\n const isAllPageRowsSelected = instance.getIsAllPageRowsSelected()\n\n const initialProps: ToggleRowSelectedProps = {\n onChange: (e: MouseEvent | TouchEvent) => {\n instance.toggleAllPageRowsSelected(\n (e.target as HTMLInputElement).checked\n )\n },\n checked: isAllPageRowsSelected,\n title: 'Toggle All Current Page Rows Selected',\n indeterminate: isSomePageRowsSelected,\n }\n\n return propGetter(initialProps, userProps)\n },\n }\n },\n\n createRow: <TGenerics extends AnyGenerics>(\n row: Row<TGenerics>,\n instance: TableInstance<TGenerics>\n ): RowSelectionRow => {\n return {\n getIsSelected: () => instance.getRowIsSelected(row.id),\n getIsSomeSelected: () => instance.getRowIsSomeSelected(row.id),\n toggleSelected: value => instance.toggleRowSelected(row.id, value),\n getToggleSelectedProps: userProps =>\n instance.getToggleRowSelectedProps(row.id, userProps),\n getCanMultiSelect: () => instance.getRowCanMultiSelect(row.id),\n getCanSelect: () => instance.getRowCanSelect(row.id),\n }\n },\n}\n\nconst mutateRowIsSelected = <TGenerics extends AnyGenerics>(\n selectedRowIds: Record<string, boolean>,\n id: string,\n value: boolean,\n instance: TableInstance<TGenerics>\n) => {\n const row = instance.getRow(id)\n\n const isGrouped = row.getIsGrouped()\n\n // if ( // TODO: enforce grouping row selection rules\n // !isGrouped ||\n // (isGrouped && instance.options.enableGroupingRowSelection)\n // ) {\n if (value) {\n selectedRowIds[id] = true\n } else {\n delete selectedRowIds[id]\n }\n // }\n\n if (row.subRows?.length && instance.getRowCanSelectSubRows(row.id)) {\n row.subRows.forEach(row =>\n mutateRowIsSelected(selectedRowIds, row.id, value, instance)\n )\n }\n}\n\nexport function selectRowsFn<TGenerics extends AnyGenerics>(\n instance: TableInstance<TGenerics>,\n rowModel: RowModel<TGenerics>\n): RowModel<TGenerics> {\n const rowSelection = instance.getState().rowSelection\n\n const newSelectedFlatRows: Row<TGenerics>[] = []\n const newSelectedRowsById: Record<string, Row<TGenerics>> = {}\n\n // Filters top level and nested rows\n const recurseRows = (rows: Row<TGenerics>[], depth = 0): Row<TGenerics>[] => {\n return rows\n .map(row => {\n const isSelected = isRowSelected(row, rowSelection, instance) === true\n\n if (isSelected) {\n newSelectedFlatRows.push(row)\n newSelectedRowsById[row.id] = row\n }\n\n if (row.subRows?.length) {\n row = {\n ...row,\n subRows: recurseRows(row.subRows, depth + 1),\n }\n }\n\n if (isSelected) {\n return row\n }\n })\n .filter(Boolean) as Row<TGenerics>[]\n }\n\n return {\n rows: recurseRows(rowModel.rows),\n flatRows: newSelectedFlatRows,\n rowsById: newSelectedRowsById,\n }\n}\n\nexport function isRowSelected<TGenerics extends AnyGenerics>(\n row: Row<TGenerics>,\n selection: Record<string, boolean>,\n instance: TableInstance<TGenerics>\n): boolean | 'some' {\n if (selection[row.id]) {\n return true\n }\n\n if (row.subRows && row.subRows.length) {\n let allChildrenSelected = true\n let someSelected = false\n\n row.subRows.forEach(subRow => {\n // Bail out early if we know both of these\n if (someSelected && !allChildrenSelected) {\n return\n }\n\n if (isRowSelected(subRow, selection, instance)) {\n someSelected = true\n } else {\n allChildrenSelected = false\n }\n })\n\n return allChildrenSelected ? true : someSelected ? 'some' : false\n }\n\n return false\n}\n"],"names":["RowSelection","getInitialState","rowSelection","getDefaultOptions","instance","onRowSelectionChange","makeStateUpdater","autoResetRowSelection","enableRowSelection","enableMultiRowSelection","enableSubRowSelection","getInstance","registered","_notifyRowSelectionReset","options","autoResetAll","resetRowSelection","setRowSelection","updater","functionalUpdate","getState","initialState","toggleAllRowsSelected","value","old","getIsAllRowsSelected","preGroupedFlatRows","getPreGroupedRowModel","flatRows","forEach","row","id","toggleAllPageRowsSelected","getIsAllPageRowsSelected","getRowModel","rows","mutateRowIsSelected","toggleRowSelected","rowId","getRow","isSelected","getIsSelected","selectedRowIds","getPreSelectedRowModel","getCoreRowModel","getSelectedRowModel","memo","rowModel","Object","keys","length","rowsById","selectRowsFn","key","debug","debugAll","debugTable","onChange","queue","_notifyExpandedReset","getFilteredSelectedRowModel","getGlobalFilteredRowModel","getGroupedSelectedRowModel","getGroupedRowModel","getRowIsSelected","Error","isRowSelected","getRowIsSomeSelected","getRowCanSelect","getRowCanSelectSubRows","getRowCanMultiSelect","preFilteredFlatRows","getPreGlobalFilteredRowModel","isAllRowsSelected","Boolean","some","paginationFlatRows","getPaginationRowModel","isAllPageRowsSelected","getIsSomeRowsSelected","getIsSomePageRowsSelected","getToggleRowSelectedProps","userProps","isSomeSelected","getIsSomeSelected","canSelect","getCanSelect","initialProps","e","toggleSelected","target","checked","undefined","title","indeterminate","propGetter","getToggleAllRowsSelectedProps","isSomeRowsSelected","getToggleAllPageRowsSelectedProps","isSomePageRowsSelected","createRow","getToggleSelectedProps","getCanMultiSelect","getIsGrouped","subRows","newSelectedFlatRows","newSelectedRowsById","recurseRows","depth","map","push","filter","selection","allChildrenSelected","someSelected","subRow"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"RowSelection.js","sources":["../../../src/features/RowSelection.ts"],"sourcesContent":["import {\n Getter,\n OnChangeFn,\n AnyGenerics,\n PartialGenerics,\n PropGetterValue,\n TableInstance,\n Row,\n RowModel,\n Updater,\n} from '../types'\nimport { functionalUpdate, makeStateUpdater, memo, propGetter } from '../utils'\n\nexport type RowSelectionState = Record<string, boolean>\n\nexport type RowSelectionTableState = {\n rowSelection: RowSelectionState\n}\n\nexport type RowSelectionOptions<TGenerics extends AnyGenerics> = {\n onRowSelectionChange?: OnChangeFn<RowSelectionState>\n autoResetRowSelection?: boolean\n enableRowSelection?: boolean | ((row: Row<TGenerics>) => boolean)\n enableMultiRowSelection?: boolean | ((row: Row<TGenerics>) => boolean)\n enableSubRowSelection?: boolean | ((row: Row<TGenerics>) => boolean)\n // enableGroupingRowSelection?:\n // | boolean\n // | ((\n // row: Row<TGenerics>\n // ) => boolean)\n // isAdditiveSelectEvent?: (e: unknown) => boolean\n // isInclusiveSelectEvent?: (e: unknown) => boolean\n // selectRowsFn?: (\n // instance: TableInstance<\n // TData,\n // TValue,\n // TFilterFns,\n // TSortingFns,\n // TAggregationFns\n // >,\n // rowModel: RowModel<TGenerics>\n // ) => RowModel<TGenerics>\n}\n\ntype ToggleRowSelectedProps = {\n onChange?: (e: unknown) => void\n checked?: boolean\n title?: string\n indeterminate?: boolean\n}\n\nexport type RowSelectionRow = {\n getIsSelected: () => boolean\n getIsSomeSelected: () => boolean\n getCanSelect: () => boolean\n getCanMultiSelect: () => boolean\n toggleSelected: (value?: boolean) => void\n getToggleSelectedProps: <TGetter extends Getter<ToggleRowSelectedProps>>(\n userProps?: TGetter\n ) => undefined | PropGetterValue<ToggleRowSelectedProps, TGetter>\n}\n\nexport type RowSelectionInstance<TGenerics extends AnyGenerics> = {\n _notifyRowSelectionReset: () => void\n getToggleRowSelectedProps: <TGetter extends Getter<ToggleRowSelectedProps>>(\n rowId: string,\n userProps?: TGetter\n ) => undefined | PropGetterValue<ToggleRowSelectedProps, TGetter>\n getToggleAllRowsSelectedProps: <\n TGetter extends Getter<ToggleRowSelectedProps>\n >(\n userProps?: TGetter\n ) => undefined | PropGetterValue<ToggleRowSelectedProps, TGetter>\n getToggleAllPageRowsSelectedProps: <\n TGetter extends Getter<ToggleRowSelectedProps>\n >(\n userProps?: TGetter\n ) => undefined | PropGetterValue<ToggleRowSelectedProps, TGetter>\n setRowSelection: (updater: Updater<RowSelectionState>) => void\n resetRowSelection: () => void\n toggleRowSelected: (rowId: string, value?: boolean) => void\n getRowCanSelect: (rowId: string) => boolean\n getRowCanSelectSubRows: (rowId: string) => boolean\n getRowCanMultiSelect: (rowId: string) => boolean\n // getGroupingRowCanSelect: (rowId: string) => boolean\n getRowIsSelected: (rowId: string) => boolean\n getRowIsSomeSelected: (rowId: string) => boolean\n getIsAllRowsSelected: () => boolean\n getIsAllPageRowsSelected: () => boolean\n getIsSomeRowsSelected: () => boolean\n getIsSomePageRowsSelected: () => boolean\n toggleAllRowsSelected: (value: boolean) => void\n toggleAllPageRowsSelected: (value: boolean) => void\n getPreSelectedRowModel: () => RowModel<TGenerics>\n getSelectedRowModel: () => RowModel<TGenerics>\n getFilteredSelectedRowModel: () => RowModel<TGenerics>\n getGroupedSelectedRowModel: () => RowModel<TGenerics>\n}\n\n//\n\nexport const RowSelection = {\n getInitialState: (): RowSelectionTableState => {\n return {\n rowSelection: {},\n }\n },\n\n getDefaultOptions: <TGenerics extends AnyGenerics>(\n instance: TableInstance<TGenerics>\n ): RowSelectionOptions<TGenerics> => {\n return {\n onRowSelectionChange: makeStateUpdater('rowSelection', instance),\n autoResetRowSelection: true,\n enableRowSelection: true,\n enableMultiRowSelection: true,\n enableSubRowSelection: true,\n // enableGroupingRowSelection: false,\n // isAdditiveSelectEvent: (e: unknown) => !!e.metaKey,\n // isInclusiveSelectEvent: (e: unknown) => !!e.shiftKey,\n }\n },\n\n getInstance: <TGenerics extends AnyGenerics>(\n instance: TableInstance<TGenerics>\n ): RowSelectionInstance<TGenerics> => {\n let registered = false\n\n // const pageRows = instance.getPageRows()\n\n return {\n _notifyRowSelectionReset: () => {\n if (!registered) {\n registered = true\n return\n }\n\n if (instance.options.autoResetAll === false) {\n return\n }\n\n if (\n instance.options.autoResetAll === true ||\n instance.options.autoResetRowSelection\n ) {\n instance.resetRowSelection()\n }\n },\n setRowSelection: updater =>\n instance.options.onRowSelectionChange?.(\n updater,\n functionalUpdate(updater, instance.getState().rowSelection)\n ),\n resetRowSelection: () =>\n instance.setRowSelection(instance.initialState.rowSelection ?? {}),\n toggleAllRowsSelected: value => {\n instance.setRowSelection(old => {\n value =\n typeof value !== 'undefined'\n ? value\n : !instance.getIsAllRowsSelected()\n\n const rowSelection = { ...old }\n\n const preGroupedFlatRows = instance.getPreGroupedRowModel().flatRows\n\n // We don't use `mutateRowIsSelected` here for performance reasons.\n // All of the rows are flat already, so it wouldn't be worth it\n if (value) {\n preGroupedFlatRows.forEach(row => {\n rowSelection[row.id] = true\n })\n } else {\n preGroupedFlatRows.forEach(row => {\n delete rowSelection[row.id]\n })\n }\n\n return rowSelection\n })\n },\n toggleAllPageRowsSelected: value =>\n instance.setRowSelection(old => {\n const selectAll =\n typeof value !== 'undefined'\n ? value\n : !instance.getIsAllPageRowsSelected()\n\n const rowSelection: RowSelectionState = { ...old }\n\n instance.getRowModel().rows.forEach(row => {\n mutateRowIsSelected(rowSelection, row.id, value, instance)\n })\n\n return rowSelection\n }),\n toggleRowSelected: (rowId, value) => {\n const row = instance.getRow(rowId)\n const isSelected = row.getIsSelected()\n\n instance.setRowSelection(old => {\n value = typeof value !== 'undefined' ? value : !isSelected\n\n if (isSelected === value) {\n return old\n }\n\n const selectedRowIds = { ...old }\n\n mutateRowIsSelected(selectedRowIds, rowId, value, instance)\n\n return selectedRowIds\n })\n },\n // addRowSelectionRange: rowId => {\n // const {\n // rows,\n // rowsById,\n // options: { selectGroupingRows, selectSubRows },\n // } = instance\n\n // const findSelectedRow = (rows: Row[]) => {\n // let found\n // rows.find(d => {\n // if (d.getIsSelected()) {\n // found = d\n // return true\n // }\n // const subFound = findSelectedRow(d.subRows || [])\n // if (subFound) {\n // found = subFound\n // return true\n // }\n // return false\n // })\n // return found\n // }\n\n // const firstRow = findSelectedRow(rows) || rows[0]\n // const lastRow = rowsById[rowId]\n\n // let include = false\n // const selectedRowIds = {}\n\n // const addRow = (row: Row) => {\n // mutateRowIsSelected(selectedRowIds, row.id, true, {\n // rowsById,\n // selectGroupingRows: selectGroupingRows!,\n // selectSubRows: selectSubRows!,\n // })\n // }\n\n // instance.rows.forEach(row => {\n // const isFirstRow = row.id === firstRow.id\n // const isLastRow = row.id === lastRow.id\n\n // if (isFirstRow || isLastRow) {\n // if (!include) {\n // include = true\n // } else if (include) {\n // addRow(row)\n // include = false\n // }\n // }\n\n // if (include) {\n // addRow(row)\n // }\n // })\n\n // instance.setRowSelection(selectedRowIds)\n // },\n getPreSelectedRowModel: () => instance.getCoreRowModel(),\n getSelectedRowModel: memo(\n () => [instance.getState().rowSelection, instance.getCoreRowModel()],\n (rowSelection, rowModel) => {\n if (!Object.keys(rowSelection).length) {\n return {\n rows: [],\n flatRows: [],\n rowsById: {},\n }\n }\n\n return selectRowsFn(instance, rowModel)\n },\n {\n key: 'getSelectedRowModel',\n debug: () => instance.options.debugAll ?? instance.options.debugTable,\n onChange: () => {\n instance.queue(() => instance._notifyExpandedReset())\n },\n }\n ),\n\n getFilteredSelectedRowModel: memo(\n () => [\n instance.getState().rowSelection,\n instance.getGlobalFilteredRowModel(),\n ],\n (rowSelection, rowModel) => {\n if (!Object.keys(rowSelection).length) {\n return {\n rows: [],\n flatRows: [],\n rowsById: {},\n }\n }\n\n return selectRowsFn(instance, rowModel)\n },\n {\n key: 'getFilteredSelectedRowModel',\n debug: () => instance.options.debugAll ?? instance.options.debugTable,\n onChange: () => instance.queue(() => instance._notifyExpandedReset()),\n }\n ),\n\n getGroupedSelectedRowModel: memo(\n () => [instance.getState().rowSelection, instance.getGroupedRowModel()],\n (rowSelection, rowModel) => {\n if (!Object.keys(rowSelection).length) {\n return {\n rows: [],\n flatRows: [],\n rowsById: {},\n }\n }\n\n return selectRowsFn(instance, rowModel)\n },\n {\n key: 'getGroupedSelectedRowModel',\n debug: () => instance.options.debugAll ?? instance.options.debugTable,\n onChange: () => instance.queue(() => instance._notifyExpandedReset()),\n }\n ),\n\n ///\n\n getRowIsSelected: rowId => {\n const { rowSelection } = instance.getState()\n const row = instance.getRow(rowId)\n\n if (!row) {\n throw new Error()\n }\n\n return isRowSelected(row, rowSelection, instance) === true\n },\n\n getRowIsSomeSelected: rowId => {\n const { rowSelection } = instance.getState()\n const row = instance.getRow(rowId)\n\n if (!row) {\n throw new Error()\n }\n\n return isRowSelected(row, rowSelection, instance) === 'some'\n },\n\n getRowCanSelect: rowId => {\n const row = instance.getRow(rowId)\n\n if (!row) {\n throw new Error()\n }\n\n if (typeof instance.options.enableRowSelection === 'function') {\n return instance.options.enableRowSelection(row)\n }\n\n return instance.options.enableRowSelection ?? true\n },\n\n getRowCanSelectSubRows: rowId => {\n const row = instance.getRow(rowId)\n\n if (!row) {\n throw new Error()\n }\n\n if (typeof instance.options.enableSubRowSelection === 'function') {\n return instance.options.enableSubRowSelection(row)\n }\n\n return instance.options.enableSubRowSelection ?? true\n },\n\n getRowCanMultiSelect: rowId => {\n const row = instance.getRow(rowId)\n\n if (!row) {\n throw new Error()\n }\n\n if (typeof instance.options.enableMultiRowSelection === 'function') {\n return instance.options.enableMultiRowSelection(row)\n }\n\n return instance.options.enableMultiRowSelection ?? true\n },\n\n // getGroupingRowCanSelect: rowId => {\n // const row = instance.getRow(rowId)\n\n // if (!row) {\n // throw new Error()\n // }\n\n // if (typeof instance.options.enableGroupingRowSelection === 'function') {\n // return instance.options.enableGroupingRowSelection(row)\n // }\n\n // return instance.options.enableGroupingRowSelection ?? false\n // },\n\n getIsAllRowsSelected: () => {\n const preFilteredFlatRows =\n instance.getPreGlobalFilteredRowModel().flatRows\n const { rowSelection } = instance.getState()\n\n let isAllRowsSelected = Boolean(\n preFilteredFlatRows.length && Object.keys(rowSelection).length\n )\n\n if (isAllRowsSelected) {\n if (preFilteredFlatRows.some(row => !rowSelection[row.id])) {\n isAllRowsSelected = false\n }\n }\n\n return isAllRowsSelected\n },\n\n getIsAllPageRowsSelected: () => {\n const paginationFlatRows = instance.getPaginationRowModel().flatRows\n const { rowSelection } = instance.getState()\n\n let isAllPageRowsSelected = !!paginationFlatRows.length\n\n if (\n isAllPageRowsSelected &&\n paginationFlatRows.some(row => !rowSelection[row.id])\n ) {\n isAllPageRowsSelected = false\n }\n\n return isAllPageRowsSelected\n },\n\n getIsSomeRowsSelected: () => {\n return (\n !instance.getIsAllRowsSelected() &&\n !!Object.keys(instance.getState().rowSelection ?? {}).length\n )\n },\n\n getIsSomePageRowsSelected: () => {\n const paginationFlatRows = instance.getPaginationRowModel().flatRows\n return instance.getIsAllPageRowsSelected()\n ? false\n : !!paginationFlatRows?.length\n },\n\n getToggleRowSelectedProps: (rowId, userProps) => {\n const row = instance.getRow(rowId)\n\n const isSelected = row.getIsSelected()\n const isSomeSelected = row.getIsSomeSelected()\n const canSelect = row.getCanSelect()\n\n const initialProps: ToggleRowSelectedProps = {\n onChange: canSelect\n ? (e: unknown) => {\n row.toggleSelected(\n ((e as MouseEvent).target as HTMLInputElement).checked\n )\n }\n : undefined,\n checked: isSelected,\n title: 'Toggle Row Selected',\n indeterminate: isSomeSelected,\n // onChange: forInput\n // ? (e: Event) => e.stopPropagation()\n // : (e: Event) => {\n // if (instance.options.isAdditiveSelectEvent(e)) {\n // row.toggleSelected()\n // } else if (instance.options.isInclusiveSelectEvent(e)) {\n // instance.addRowSelectionRange(row.id)\n // } else {\n // instance.setRowSelection({})\n // row.toggleSelected()\n // }\n\n // if (props.onClick) props.onClick(e)\n // },\n }\n\n return propGetter(initialProps, userProps)\n },\n\n getToggleAllRowsSelectedProps: userProps => {\n const isSomeRowsSelected = instance.getIsSomeRowsSelected()\n const isAllRowsSelected = instance.getIsAllRowsSelected()\n\n const initialProps: ToggleRowSelectedProps = {\n onChange: (e: unknown) => {\n instance.toggleAllRowsSelected(\n ((e as MouseEvent).target as HTMLInputElement).checked\n )\n },\n checked: isAllRowsSelected,\n title: 'Toggle All Rows Selected',\n indeterminate: isSomeRowsSelected,\n }\n\n return propGetter(initialProps, userProps)\n },\n\n getToggleAllPageRowsSelectedProps: userProps => {\n const isSomePageRowsSelected = instance.getIsSomePageRowsSelected()\n const isAllPageRowsSelected = instance.getIsAllPageRowsSelected()\n\n const initialProps: ToggleRowSelectedProps = {\n onChange: (e: unknown) => {\n instance.toggleAllPageRowsSelected(\n ((e as MouseEvent).target as HTMLInputElement).checked\n )\n },\n checked: isAllPageRowsSelected,\n title: 'Toggle All Current Page Rows Selected',\n indeterminate: isSomePageRowsSelected,\n }\n\n return propGetter(initialProps, userProps)\n },\n }\n },\n\n createRow: <TGenerics extends AnyGenerics>(\n row: Row<TGenerics>,\n instance: TableInstance<TGenerics>\n ): RowSelectionRow => {\n return {\n getIsSelected: () => instance.getRowIsSelected(row.id),\n getIsSomeSelected: () => instance.getRowIsSomeSelected(row.id),\n toggleSelected: value => instance.toggleRowSelected(row.id, value),\n getToggleSelectedProps: userProps =>\n instance.getToggleRowSelectedProps(row.id, userProps),\n getCanMultiSelect: () => instance.getRowCanMultiSelect(row.id),\n getCanSelect: () => instance.getRowCanSelect(row.id),\n }\n },\n}\n\nconst mutateRowIsSelected = <TGenerics extends AnyGenerics>(\n selectedRowIds: Record<string, boolean>,\n id: string,\n value: boolean,\n instance: TableInstance<TGenerics>\n) => {\n const row = instance.getRow(id)\n\n const isGrouped = row.getIsGrouped()\n\n // if ( // TODO: enforce grouping row selection rules\n // !isGrouped ||\n // (isGrouped && instance.options.enableGroupingRowSelection)\n // ) {\n if (value) {\n selectedRowIds[id] = true\n } else {\n delete selectedRowIds[id]\n }\n // }\n\n if (row.subRows?.length && instance.getRowCanSelectSubRows(row.id)) {\n row.subRows.forEach(row =>\n mutateRowIsSelected(selectedRowIds, row.id, value, instance)\n )\n }\n}\n\nexport function selectRowsFn<TGenerics extends AnyGenerics>(\n instance: TableInstance<TGenerics>,\n rowModel: RowModel<TGenerics>\n): RowModel<TGenerics> {\n const rowSelection = instance.getState().rowSelection\n\n const newSelectedFlatRows: Row<TGenerics>[] = []\n const newSelectedRowsById: Record<string, Row<TGenerics>> = {}\n\n // Filters top level and nested rows\n const recurseRows = (rows: Row<TGenerics>[], depth = 0): Row<TGenerics>[] => {\n return rows\n .map(row => {\n const isSelected = isRowSelected(row, rowSelection, instance) === true\n\n if (isSelected) {\n newSelectedFlatRows.push(row)\n newSelectedRowsById[row.id] = row\n }\n\n if (row.subRows?.length) {\n row = {\n ...row,\n subRows: recurseRows(row.subRows, depth + 1),\n }\n }\n\n if (isSelected) {\n return row\n }\n })\n .filter(Boolean) as Row<TGenerics>[]\n }\n\n return {\n rows: recurseRows(rowModel.rows),\n flatRows: newSelectedFlatRows,\n rowsById: newSelectedRowsById,\n }\n}\n\nexport function isRowSelected<TGenerics extends AnyGenerics>(\n row: Row<TGenerics>,\n selection: Record<string, boolean>,\n instance: TableInstance<TGenerics>\n): boolean | 'some' {\n if (selection[row.id]) {\n return true\n }\n\n if (row.subRows && row.subRows.length) {\n let allChildrenSelected = true\n let someSelected = false\n\n row.subRows.forEach(subRow => {\n // Bail out early if we know both of these\n if (someSelected && !allChildrenSelected) {\n return\n }\n\n if (isRowSelected(subRow, selection, instance)) {\n someSelected = true\n } else {\n allChildrenSelected = false\n }\n })\n\n return allChildrenSelected ? true : someSelected ? 'some' : false\n }\n\n return false\n}\n"],"names":["RowSelection","getInitialState","rowSelection","getDefaultOptions","instance","onRowSelectionChange","makeStateUpdater","autoResetRowSelection","enableRowSelection","enableMultiRowSelection","enableSubRowSelection","getInstance","registered","_notifyRowSelectionReset","options","autoResetAll","resetRowSelection","setRowSelection","updater","functionalUpdate","getState","initialState","toggleAllRowsSelected","value","old","getIsAllRowsSelected","preGroupedFlatRows","getPreGroupedRowModel","flatRows","forEach","row","id","toggleAllPageRowsSelected","getIsAllPageRowsSelected","getRowModel","rows","mutateRowIsSelected","toggleRowSelected","rowId","getRow","isSelected","getIsSelected","selectedRowIds","getPreSelectedRowModel","getCoreRowModel","getSelectedRowModel","memo","rowModel","Object","keys","length","rowsById","selectRowsFn","key","debug","debugAll","debugTable","onChange","queue","_notifyExpandedReset","getFilteredSelectedRowModel","getGlobalFilteredRowModel","getGroupedSelectedRowModel","getGroupedRowModel","getRowIsSelected","Error","isRowSelected","getRowIsSomeSelected","getRowCanSelect","getRowCanSelectSubRows","getRowCanMultiSelect","preFilteredFlatRows","getPreGlobalFilteredRowModel","isAllRowsSelected","Boolean","some","paginationFlatRows","getPaginationRowModel","isAllPageRowsSelected","getIsSomeRowsSelected","getIsSomePageRowsSelected","getToggleRowSelectedProps","userProps","isSomeSelected","getIsSomeSelected","canSelect","getCanSelect","initialProps","e","toggleSelected","target","checked","undefined","title","indeterminate","propGetter","getToggleAllRowsSelectedProps","isSomeRowsSelected","getToggleAllPageRowsSelectedProps","isSomePageRowsSelected","createRow","getToggleSelectedProps","getCanMultiSelect","getIsGrouped","subRows","newSelectedFlatRows","newSelectedRowsById","recurseRows","depth","map","push","filter","selection","allChildrenSelected","someSelected","subRow"],"mappings":"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"}
|