@tanstack/table-core 8.0.0-alpha.48 → 8.0.0-alpha.52
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 +2 -2
- package/build/cjs/features/ColumnSizing.js.map +1 -1
- package/build/cjs/features/Expanding.js +3 -3
- package/build/cjs/features/Expanding.js.map +1 -1
- package/build/cjs/features/Filters.js +7 -10
- package/build/cjs/features/Filters.js.map +1 -1
- package/build/cjs/features/Grouping.js +3 -3
- package/build/cjs/features/Grouping.js.map +1 -1
- package/build/cjs/features/Ordering.js +1 -1
- package/build/cjs/features/Ordering.js.map +1 -1
- package/build/cjs/features/Pagination.js +2 -2
- package/build/cjs/features/Pagination.js.map +1 -1
- package/build/cjs/features/Pinning.js +1 -1
- package/build/cjs/features/Pinning.js.map +1 -1
- package/build/cjs/features/RowSelection.js +5 -5
- package/build/cjs/features/RowSelection.js.map +1 -1
- package/build/cjs/features/Sorting.js +3 -3
- package/build/cjs/features/Sorting.js.map +1 -1
- package/build/cjs/features/Visibility.js +1 -1
- package/build/cjs/features/Visibility.js.map +1 -1
- package/build/cjs/utils/getColumnFilteredRowModelSync.js +1 -1
- package/build/cjs/utils/getColumnFilteredRowModelSync.js.map +1 -1
- package/build/cjs/utils/getCoreRowModelAsync.js +2 -3
- package/build/cjs/utils/getCoreRowModelAsync.js.map +1 -1
- package/build/cjs/utils/getCoreRowModelSync.js +2 -3
- package/build/cjs/utils/getCoreRowModelSync.js.map +1 -1
- package/build/cjs/utils/getGlobalFilteredRowModelSync.js +1 -1
- package/build/cjs/utils/getGlobalFilteredRowModelSync.js.map +1 -1
- package/build/cjs/utils/getGroupedRowModel.js +1 -1
- package/build/cjs/utils/getGroupedRowModel.js.map +1 -1
- package/build/cjs/utils/getSortedRowModelSync.js +1 -1
- package/build/cjs/utils/getSortedRowModelSync.js.map +1 -1
- package/build/esm/index.js +36 -41
- package/build/esm/index.js.map +1 -1
- package/build/stats-html.html +1 -1
- package/build/stats-react.json +321 -321
- package/build/types/features/Expanding.d.ts +1 -1
- package/build/types/features/Filters.d.ts +11 -13
- package/build/types/features/Grouping.d.ts +1 -1
- package/build/types/features/Pagination.d.ts +1 -1
- package/build/types/features/RowSelection.d.ts +1 -1
- package/build/types/features/Sorting.d.ts +1 -1
- package/build/types/types.d.ts +1 -1
- package/build/umd/index.development.js +36 -41
- package/build/umd/index.development.js.map +1 -1
- package/build/umd/index.production.js +1 -1
- package/build/umd/index.production.js.map +1 -1
- package/package.json +1 -1
- package/src/features/ColumnSizing.ts +2 -8
- package/src/features/Expanding.ts +4 -8
- package/src/features/Filters.ts +23 -30
- package/src/features/Grouping.ts +4 -8
- package/src/features/Ordering.ts +1 -4
- package/src/features/Pagination.ts +3 -6
- package/src/features/Pinning.ts +1 -4
- package/src/features/RowSelection.ts +6 -9
- package/src/features/Sorting.ts +4 -8
- package/src/features/Visibility.ts +1 -4
- package/src/types.ts +1 -1
- package/src/utils/getColumnFilteredRowModelAsync.ts +1 -1
- package/src/utils/getColumnFilteredRowModelSync.ts +1 -1
- package/src/utils/getCoreRowModelAsync.ts +2 -2
- package/src/utils/getCoreRowModelSync.ts +2 -2
- package/src/utils/getGlobalFilteredRowModelAsync.ts +1 -1
- package/src/utils/getGlobalFilteredRowModelSync.ts +1 -1
- package/src/utils/getGroupedRowModel.ts +1 -1
- package/src/utils/getSortedRowModelAsync.ts +1 -1
- package/src/utils/getSortedRowModelSync.ts +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Sorting.js","sources":["../../../src/features/Sorting.ts"],"sourcesContent":["import { RowModel } from '..'\nimport {\n BuiltInSortingFn,\n reSplitAlphaNumeric,\n sortingFns,\n} from '../sortingFns'\n\nimport {\n Column,\n Getter,\n Header,\n OnChangeFn,\n AnyGenerics,\n PartialGenerics,\n PropGetterValue,\n TableInstance,\n Row,\n Updater,\n} from '../types'\n\nimport {\n functionalUpdate,\n isFunction,\n makeStateUpdater,\n memo,\n Overwrite,\n propGetter,\n} from '../utils'\n\nexport type SortDirection = 'asc' | 'desc'\n\nexport type ColumnSort = {\n id: string\n desc: boolean\n}\n\nexport type SortingState = ColumnSort[]\n\nexport type SortingFn<TGenerics extends AnyGenerics> = {\n (rowA: Row<TGenerics>, rowB: Row<TGenerics>, columnId: string): number\n}\n\nexport type CustomSortingFns<TGenerics extends AnyGenerics> = Record<\n string,\n SortingFn<TGenerics>\n>\n\nexport type SortingTableState = {\n sorting: SortingState\n}\n\nexport type SortingFnOption<TGenerics extends AnyGenerics> =\n | 'auto'\n | BuiltInSortingFn\n | keyof TGenerics['SortingFns']\n | SortingFn<TGenerics>\n\nexport type SortingColumnDef<TGenerics extends AnyGenerics> = {\n sortingFn?: SortingFnOption<Overwrite<TGenerics, { Value: any }>>\n sortDescFirst?: boolean\n enableSorting?: boolean\n enableMultiSort?: boolean\n defaultCanSort?: boolean\n invertSorting?: boolean\n sortUndefined?: false | -1 | 1\n}\n\nexport type SortingColumn<TGenerics extends AnyGenerics> = {\n sortingFn: SortingFnOption<Overwrite<TGenerics, { Value: any }>>\n getCanSort: () => boolean\n getCanMultiSort: () => boolean\n getSortIndex: () => number\n getIsSorted: () => false | SortDirection\n resetSorting: () => void\n toggleSorting: (desc?: boolean, isMulti?: boolean) => void\n getToggleSortingProps: <TGetter extends Getter<ToggleSortingProps>>(\n userProps?: TGetter\n ) => undefined | PropGetterValue<ToggleSortingProps, TGetter>\n}\n\nexport type SortingOptions<TGenerics extends AnyGenerics> = {\n sortingFns?: TGenerics['SortingFns']\n onSortingChange?: OnChangeFn<SortingState>\n autoResetSorting?: boolean\n enableSorting?: boolean\n enableSortingRemoval?: boolean\n enableMultiRemove?: boolean\n enableMultiSort?: boolean\n sortDescFirst?: boolean\n getSortedRowModel?: (\n instance: TableInstance<TGenerics>\n ) => () => RowModel<TGenerics>\n maxMultiSortColCount?: number\n isMultiSortEvent?: (e: unknown) => boolean\n}\n\nexport type ToggleSortingProps = {\n title?: string\n onClick?: (event: unknown) => void\n}\n\nexport type SortingInstance<TGenerics extends AnyGenerics> = {\n _notifySortingReset: () => void\n getColumnAutoSortingFn: (columnId: string) => SortingFn<TGenerics> | undefined\n getColumnAutoSortDir: (columnId: string) => SortDirection\n\n getColumnSortingFn: (columnId: string) => SortingFn<TGenerics> | undefined\n\n setSorting: (updater: Updater<SortingState>) => void\n toggleColumnSorting: (\n columnId: string,\n desc?: boolean,\n multi?: boolean\n ) => void\n resetSorting: (columnId?: string) => void\n getColumnCanSort: (columnId: string) => boolean\n getColumnCanMultiSort: (columnId: string) => boolean\n getColumnIsSorted: (columnId: string) => false | 'asc' | 'desc'\n getColumnSortIndex: (columnId: string) => number\n getToggleSortingProps: <TGetter extends Getter<ToggleSortingProps>>(\n columnId: string,\n userProps?: TGetter\n ) => undefined | PropGetterValue<ToggleSortingProps, TGetter>\n getPreSortedRowModel: () => RowModel<TGenerics>\n getSortedRowModel: () => RowModel<TGenerics>\n _getSortedRowModel?: () => RowModel<TGenerics>\n}\n\n//\n\nexport const Sorting = {\n getDefaultColumn: <\n TGenerics extends AnyGenerics\n >(): SortingColumnDef<TGenerics> => {\n return {\n sortingFn: 'auto',\n }\n },\n\n getInitialState: (): SortingTableState => {\n return {\n sorting: [],\n }\n },\n\n getDefaultOptions: <TGenerics extends AnyGenerics>(\n instance: TableInstance<TGenerics>\n ): SortingOptions<TGenerics> => {\n return {\n onSortingChange: makeStateUpdater('sorting', instance),\n autoResetSorting: true,\n isMultiSortEvent: (e: unknown) => {\n return (e as MouseEvent).shiftKey\n },\n }\n },\n\n createColumn: <TGenerics extends AnyGenerics>(\n column: Column<TGenerics>,\n instance: TableInstance<TGenerics>\n ): SortingColumn<TGenerics> => {\n return {\n sortingFn: column.sortingFn,\n getCanSort: () => instance.getColumnCanSort(column.id),\n getCanMultiSort: () => instance.getColumnCanMultiSort(column.id),\n getSortIndex: () => instance.getColumnSortIndex(column.id),\n getIsSorted: () => instance.getColumnIsSorted(column.id),\n resetSorting: () => instance.resetSorting(column.id),\n toggleSorting: (desc, isMulti) =>\n instance.toggleColumnSorting(column.id, desc, isMulti),\n getToggleSortingProps: userProps =>\n instance.getToggleSortingProps(column.id, userProps),\n }\n },\n\n getInstance: <TGenerics extends AnyGenerics>(\n instance: TableInstance<TGenerics>\n ): SortingInstance<TGenerics> => {\n let registered = false\n\n return {\n _notifySortingReset: () => {\n instance._notifyGroupingReset()\n\n if (!registered) {\n registered = true\n return\n }\n\n if (instance.options.autoResetAll === false) {\n return\n }\n\n if (\n instance.options.autoResetAll === true ||\n instance.options.autoResetSorting\n ) {\n instance.resetSorting()\n }\n },\n getColumnAutoSortingFn: columnId => {\n const firstRows = instance\n .getGlobalFilteredRowModel()\n .flatRows.slice(100)\n\n let isString = false\n\n for (const row of firstRows) {\n const value = row?.values[columnId]\n\n if (Object.prototype.toString.call(value) === '[object Date]') {\n return sortingFns.datetime\n }\n\n if (typeof value === 'string') {\n isString = true\n\n if (value.split(reSplitAlphaNumeric).length > 1) {\n return sortingFns.alphanumeric\n }\n }\n }\n\n if (isString) {\n return sortingFns.text\n }\n\n return sortingFns.basic\n },\n getColumnAutoSortDir: columnId => {\n const firstRow = instance.getGlobalFilteredRowModel().flatRows[0]\n\n const value = firstRow?.values[columnId]\n\n if (typeof value === 'string') {\n return 'asc'\n }\n\n return 'desc'\n },\n getColumnSortingFn: columnId => {\n const column = instance.getColumn(columnId)\n const userSortingFn = instance.options.sortingFns\n\n if (!column) {\n throw new Error()\n }\n\n return isFunction(column.sortingFn)\n ? column.sortingFn\n : column.sortingFn === 'auto'\n ? instance.getColumnAutoSortingFn(columnId)\n : (userSortingFn as Record<string, any>)?.[\n column.sortingFn as string\n ] ??\n (sortingFns[\n column.sortingFn as BuiltInSortingFn\n ] as SortingFn<TGenerics>)\n },\n\n setSorting: updater =>\n instance.options.onSortingChange?.(\n updater,\n functionalUpdate(updater, instance.getState().sorting)\n ),\n\n toggleColumnSorting: (columnId, desc, multi) => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n throw new Error()\n }\n\n // if (column.columns.length) {\n // column.columns.forEach((c, i) => {\n // if (c.id) {\n // instance.toggleColumnSorting(c.id, undefined, multi || !!i)\n // }\n // })\n // return\n // }\n\n instance.setSorting(old => {\n // Find any existing sorting for this column\n const existingSorting = old?.find(d => d.id === columnId)\n const existingIndex = old?.findIndex(d => d.id === columnId)\n const hasDescDefined = typeof desc !== 'undefined' && desc !== null\n\n let newSorting: SortingState = []\n\n // What should we do with this sort action?\n let sortAction\n\n if (column.getCanMultiSort() && multi) {\n if (existingSorting) {\n sortAction = 'toggle'\n } else {\n sortAction = 'add'\n }\n } else {\n // Normal mode\n if (old?.length && existingIndex !== old.length - 1) {\n sortAction = 'replace'\n } else if (existingSorting) {\n sortAction = 'toggle'\n } else {\n sortAction = 'replace'\n }\n }\n\n const sortDescFirst =\n column.sortDescFirst ??\n instance.options.sortDescFirst ??\n instance.getColumnAutoSortDir(columnId) === 'desc'\n\n // Handle toggle states that will remove the sorting\n if (\n sortAction === 'toggle' && // Must be toggling\n (instance.options.enableSortingRemoval ?? true) && // If enableSortRemove, enable in general\n !hasDescDefined && // Must not be setting desc\n (multi ? instance.options.enableMultiRemove ?? true : true) && // If multi, don't allow if enableMultiRemove\n (existingSorting?.desc // Finally, detect if it should indeed be removed\n ? !sortDescFirst\n : sortDescFirst)\n ) {\n sortAction = 'remove'\n }\n\n if (sortAction === 'replace') {\n newSorting = [\n {\n id: columnId,\n desc: hasDescDefined ? desc! : !!sortDescFirst,\n },\n ]\n } else if (sortAction === 'add' && old?.length) {\n newSorting = [\n ...old,\n {\n id: columnId,\n desc: hasDescDefined ? desc! : !!sortDescFirst,\n },\n ]\n // Take latest n columns\n newSorting.splice(\n 0,\n newSorting.length -\n (instance.options.maxMultiSortColCount ??\n Number.MAX_SAFE_INTEGER)\n )\n } else if (sortAction === 'toggle' && old?.length) {\n // This flips (or sets) the\n newSorting = old.map(d => {\n if (d.id === columnId) {\n return {\n ...d,\n desc: hasDescDefined ? desc! : !existingSorting?.desc,\n }\n }\n return d\n })\n } else if (sortAction === 'remove' && old?.length) {\n newSorting = old.filter(d => d.id !== columnId)\n }\n\n return newSorting\n })\n },\n\n getColumnCanSort: columnId => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n throw new Error()\n }\n\n return (\n column.enableSorting ??\n instance.options.enableSorting ??\n column.defaultCanSort ??\n !!column.accessorFn\n // (!!column.accessorFn ||\n // column.columns?.some(c => c.id && instance.getColumnCanSort(c.id))) ??\n // false\n )\n },\n\n getColumnCanMultiSort: columnId => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n throw new Error()\n }\n\n return (\n column.enableMultiSort ??\n instance.options.enableMultiSort ??\n !!column.accessorFn\n )\n },\n\n getColumnIsSorted: columnId => {\n const columnSort = instance\n .getState()\n .sorting?.find(d => d.id === columnId)\n\n return !columnSort ? false : columnSort.desc ? 'desc' : 'asc'\n },\n\n getColumnSortIndex: columnId =>\n instance.getState().sorting?.findIndex(d => d.id === columnId) ?? -1,\n\n resetSorting: (columnId?: string) => {\n if (columnId) {\n instance.setSorting(old =>\n old?.length ? old.filter(d => d.id !== columnId) : []\n )\n } else {\n instance.setSorting(instance.initialState?.sorting ?? [])\n }\n },\n\n getToggleSortingProps: (columnId, userProps) => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n throw new Error()\n }\n\n const canSort = column.getCanSort()\n\n const initialProps: ToggleSortingProps = {\n title: canSort ? 'Toggle Sorting' : undefined,\n onClick: canSort\n ? (e: unknown) => {\n ;(e as any).persist?.()\n column.toggleSorting?.(\n undefined,\n column.getCanMultiSort()\n ? instance.options.isMultiSortEvent?.(e)\n : false\n )\n }\n : undefined,\n }\n\n return propGetter(initialProps, userProps)\n },\n\n getPreSortedRowModel: () => instance.getGlobalFilteredRowModel(),\n getSortedRowModel: () => {\n if (\n !instance._getSortedRowModel &&\n instance.options.getSortedRowModel\n ) {\n instance._getSortedRowModel =\n instance.options.getSortedRowModel(instance)\n }\n\n if (!instance._getSortedRowModel) {\n return instance.getPreSortedRowModel()\n }\n\n return instance._getSortedRowModel()\n },\n }\n },\n}\n"],"names":["Sorting","getDefaultColumn","sortingFn","getInitialState","sorting","getDefaultOptions","instance","onSortingChange","makeStateUpdater","autoResetSorting","isMultiSortEvent","e","shiftKey","createColumn","column","getCanSort","getColumnCanSort","id","getCanMultiSort","getColumnCanMultiSort","getSortIndex","getColumnSortIndex","getIsSorted","getColumnIsSorted","resetSorting","toggleSorting","desc","isMulti","toggleColumnSorting","getToggleSortingProps","userProps","getInstance","registered","_notifySortingReset","_notifyGroupingReset","options","autoResetAll","getColumnAutoSortingFn","columnId","firstRows","getGlobalFilteredRowModel","flatRows","slice","isString","_createForOfIteratorHelperLoose","row","value","values","Object","prototype","toString","call","sortingFns","datetime","split","reSplitAlphaNumeric","length","alphanumeric","text","basic","getColumnAutoSortDir","firstRow","getColumnSortingFn","getColumn","userSortingFn","Error","isFunction","setSorting","updater","functionalUpdate","getState","multi","old","existingSorting","find","d","existingIndex","findIndex","hasDescDefined","newSorting","sortAction","sortDescFirst","enableSortingRemoval","enableMultiRemove","splice","maxMultiSortColCount","Number","MAX_SAFE_INTEGER","map","_extends","filter","enableSorting","defaultCanSort","accessorFn","enableMultiSort","columnSort","initialState","canSort","initialProps","title","undefined","onClick","persist","propGetter","getPreSortedRowModel","getSortedRowModel","_getSortedRowModel"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Sorting.js","sources":["../../../src/features/Sorting.ts"],"sourcesContent":["import { RowModel } from '..'\nimport {\n BuiltInSortingFn,\n reSplitAlphaNumeric,\n sortingFns,\n} from '../sortingFns'\n\nimport {\n Column,\n Getter,\n Header,\n OnChangeFn,\n AnyGenerics,\n PartialGenerics,\n PropGetterValue,\n TableInstance,\n Row,\n Updater,\n} from '../types'\n\nimport {\n functionalUpdate,\n isFunction,\n makeStateUpdater,\n memo,\n Overwrite,\n propGetter,\n} from '../utils'\n\nexport type SortDirection = 'asc' | 'desc'\n\nexport type ColumnSort = {\n id: string\n desc: boolean\n}\n\nexport type SortingState = ColumnSort[]\n\nexport type SortingFn<TGenerics extends AnyGenerics> = {\n (rowA: Row<TGenerics>, rowB: Row<TGenerics>, columnId: string): number\n}\n\nexport type CustomSortingFns<TGenerics extends AnyGenerics> = Record<\n string,\n SortingFn<TGenerics>\n>\n\nexport type SortingTableState = {\n sorting: SortingState\n}\n\nexport type SortingFnOption<TGenerics extends AnyGenerics> =\n | 'auto'\n | BuiltInSortingFn\n | keyof TGenerics['SortingFns']\n | SortingFn<TGenerics>\n\nexport type SortingColumnDef<TGenerics extends AnyGenerics> = {\n sortingFn?: SortingFnOption<Overwrite<TGenerics, { Value: any }>>\n sortDescFirst?: boolean\n enableSorting?: boolean\n enableMultiSort?: boolean\n defaultCanSort?: boolean\n invertSorting?: boolean\n sortUndefined?: false | -1 | 1\n}\n\nexport type SortingColumn<TGenerics extends AnyGenerics> = {\n sortingFn: SortingFnOption<Overwrite<TGenerics, { Value: any }>>\n getCanSort: () => boolean\n getCanMultiSort: () => boolean\n getSortIndex: () => number\n getIsSorted: () => false | SortDirection\n resetSorting: () => void\n toggleSorting: (desc?: boolean, isMulti?: boolean) => void\n getToggleSortingProps: <TGetter extends Getter<ToggleSortingProps>>(\n userProps?: TGetter\n ) => undefined | PropGetterValue<ToggleSortingProps, TGetter>\n}\n\nexport type SortingOptions<TGenerics extends AnyGenerics> = {\n sortingFns?: TGenerics['SortingFns']\n onSortingChange?: OnChangeFn<SortingState>\n autoResetSorting?: boolean\n enableSorting?: boolean\n enableSortingRemoval?: boolean\n enableMultiRemove?: boolean\n enableMultiSort?: boolean\n sortDescFirst?: boolean\n getSortedRowModel?: (\n instance: TableInstance<TGenerics>\n ) => () => RowModel<TGenerics>\n maxMultiSortColCount?: number\n isMultiSortEvent?: (e: unknown) => boolean\n}\n\nexport type ToggleSortingProps = {\n title?: string\n onClick?: (event: unknown) => void\n}\n\nexport type SortingInstance<TGenerics extends AnyGenerics> = {\n queueResetSorting: () => void\n getColumnAutoSortingFn: (columnId: string) => SortingFn<TGenerics> | undefined\n getColumnAutoSortDir: (columnId: string) => SortDirection\n\n getColumnSortingFn: (columnId: string) => SortingFn<TGenerics> | undefined\n\n setSorting: (updater: Updater<SortingState>) => void\n toggleColumnSorting: (\n columnId: string,\n desc?: boolean,\n multi?: boolean\n ) => void\n resetSorting: (columnId?: string) => void\n getColumnCanSort: (columnId: string) => boolean\n getColumnCanMultiSort: (columnId: string) => boolean\n getColumnIsSorted: (columnId: string) => false | 'asc' | 'desc'\n getColumnSortIndex: (columnId: string) => number\n getToggleSortingProps: <TGetter extends Getter<ToggleSortingProps>>(\n columnId: string,\n userProps?: TGetter\n ) => undefined | PropGetterValue<ToggleSortingProps, TGetter>\n getPreSortedRowModel: () => RowModel<TGenerics>\n getSortedRowModel: () => RowModel<TGenerics>\n _getSortedRowModel?: () => RowModel<TGenerics>\n}\n\n//\n\nexport const Sorting = {\n getDefaultColumn: <\n TGenerics extends AnyGenerics\n >(): SortingColumnDef<TGenerics> => {\n return {\n sortingFn: 'auto',\n }\n },\n\n getInitialState: (): SortingTableState => {\n return {\n sorting: [],\n }\n },\n\n getDefaultOptions: <TGenerics extends AnyGenerics>(\n instance: TableInstance<TGenerics>\n ): SortingOptions<TGenerics> => {\n return {\n onSortingChange: makeStateUpdater('sorting', instance),\n autoResetSorting: true,\n isMultiSortEvent: (e: unknown) => {\n return (e as MouseEvent).shiftKey\n },\n }\n },\n\n createColumn: <TGenerics extends AnyGenerics>(\n column: Column<TGenerics>,\n instance: TableInstance<TGenerics>\n ): SortingColumn<TGenerics> => {\n return {\n sortingFn: column.sortingFn,\n getCanSort: () => instance.getColumnCanSort(column.id),\n getCanMultiSort: () => instance.getColumnCanMultiSort(column.id),\n getSortIndex: () => instance.getColumnSortIndex(column.id),\n getIsSorted: () => instance.getColumnIsSorted(column.id),\n resetSorting: () => instance.resetSorting(column.id),\n toggleSorting: (desc, isMulti) =>\n instance.toggleColumnSorting(column.id, desc, isMulti),\n getToggleSortingProps: userProps =>\n instance.getToggleSortingProps(column.id, userProps),\n }\n },\n\n getInstance: <TGenerics extends AnyGenerics>(\n instance: TableInstance<TGenerics>\n ): SortingInstance<TGenerics> => {\n let registered = false\n\n return {\n queueResetSorting: () => {\n instance.queueResetGrouping()\n\n if (!registered) {\n registered = true\n return\n }\n\n if (instance.options.autoResetAll === false) {\n return\n }\n\n if (\n instance.options.autoResetAll === true ||\n instance.options.autoResetSorting\n ) {\n instance.resetSorting()\n }\n },\n getColumnAutoSortingFn: columnId => {\n const firstRows = instance\n .getGlobalFilteredRowModel()\n .flatRows.slice(100)\n\n let isString = false\n\n for (const row of firstRows) {\n const value = row?.values[columnId]\n\n if (Object.prototype.toString.call(value) === '[object Date]') {\n return sortingFns.datetime\n }\n\n if (typeof value === 'string') {\n isString = true\n\n if (value.split(reSplitAlphaNumeric).length > 1) {\n return sortingFns.alphanumeric\n }\n }\n }\n\n if (isString) {\n return sortingFns.text\n }\n\n return sortingFns.basic\n },\n getColumnAutoSortDir: columnId => {\n const firstRow = instance.getGlobalFilteredRowModel().flatRows[0]\n\n const value = firstRow?.values[columnId]\n\n if (typeof value === 'string') {\n return 'asc'\n }\n\n return 'desc'\n },\n getColumnSortingFn: columnId => {\n const column = instance.getColumn(columnId)\n const userSortingFn = instance.options.sortingFns\n\n if (!column) {\n throw new Error()\n }\n\n return isFunction(column.sortingFn)\n ? column.sortingFn\n : column.sortingFn === 'auto'\n ? instance.getColumnAutoSortingFn(columnId)\n : (userSortingFn as Record<string, any>)?.[\n column.sortingFn as string\n ] ??\n (sortingFns[\n column.sortingFn as BuiltInSortingFn\n ] as SortingFn<TGenerics>)\n },\n\n setSorting: updater => instance.options.onSortingChange?.(updater),\n\n toggleColumnSorting: (columnId, desc, multi) => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n throw new Error()\n }\n\n // if (column.columns.length) {\n // column.columns.forEach((c, i) => {\n // if (c.id) {\n // instance.toggleColumnSorting(c.id, undefined, multi || !!i)\n // }\n // })\n // return\n // }\n\n instance.setSorting(old => {\n // Find any existing sorting for this column\n const existingSorting = old?.find(d => d.id === columnId)\n const existingIndex = old?.findIndex(d => d.id === columnId)\n const hasDescDefined = typeof desc !== 'undefined' && desc !== null\n\n let newSorting: SortingState = []\n\n // What should we do with this sort action?\n let sortAction\n\n if (column.getCanMultiSort() && multi) {\n if (existingSorting) {\n sortAction = 'toggle'\n } else {\n sortAction = 'add'\n }\n } else {\n // Normal mode\n if (old?.length && existingIndex !== old.length - 1) {\n sortAction = 'replace'\n } else if (existingSorting) {\n sortAction = 'toggle'\n } else {\n sortAction = 'replace'\n }\n }\n\n const sortDescFirst =\n column.sortDescFirst ??\n instance.options.sortDescFirst ??\n instance.getColumnAutoSortDir(columnId) === 'desc'\n\n // Handle toggle states that will remove the sorting\n if (\n sortAction === 'toggle' && // Must be toggling\n (instance.options.enableSortingRemoval ?? true) && // If enableSortRemove, enable in general\n !hasDescDefined && // Must not be setting desc\n (multi ? instance.options.enableMultiRemove ?? true : true) && // If multi, don't allow if enableMultiRemove\n (existingSorting?.desc // Finally, detect if it should indeed be removed\n ? !sortDescFirst\n : sortDescFirst)\n ) {\n sortAction = 'remove'\n }\n\n if (sortAction === 'replace') {\n newSorting = [\n {\n id: columnId,\n desc: hasDescDefined ? desc! : !!sortDescFirst,\n },\n ]\n } else if (sortAction === 'add' && old?.length) {\n newSorting = [\n ...old,\n {\n id: columnId,\n desc: hasDescDefined ? desc! : !!sortDescFirst,\n },\n ]\n // Take latest n columns\n newSorting.splice(\n 0,\n newSorting.length -\n (instance.options.maxMultiSortColCount ??\n Number.MAX_SAFE_INTEGER)\n )\n } else if (sortAction === 'toggle' && old?.length) {\n // This flips (or sets) the\n newSorting = old.map(d => {\n if (d.id === columnId) {\n return {\n ...d,\n desc: hasDescDefined ? desc! : !existingSorting?.desc,\n }\n }\n return d\n })\n } else if (sortAction === 'remove' && old?.length) {\n newSorting = old.filter(d => d.id !== columnId)\n }\n\n return newSorting\n })\n },\n\n getColumnCanSort: columnId => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n throw new Error()\n }\n\n return (\n column.enableSorting ??\n instance.options.enableSorting ??\n column.defaultCanSort ??\n !!column.accessorFn\n // (!!column.accessorFn ||\n // column.columns?.some(c => c.id && instance.getColumnCanSort(c.id))) ??\n // false\n )\n },\n\n getColumnCanMultiSort: columnId => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n throw new Error()\n }\n\n return (\n column.enableMultiSort ??\n instance.options.enableMultiSort ??\n !!column.accessorFn\n )\n },\n\n getColumnIsSorted: columnId => {\n const columnSort = instance\n .getState()\n .sorting?.find(d => d.id === columnId)\n\n return !columnSort ? false : columnSort.desc ? 'desc' : 'asc'\n },\n\n getColumnSortIndex: columnId =>\n instance.getState().sorting?.findIndex(d => d.id === columnId) ?? -1,\n\n resetSorting: (columnId?: string) => {\n if (columnId) {\n instance.setSorting(old =>\n old?.length ? old.filter(d => d.id !== columnId) : []\n )\n } else {\n instance.setSorting(instance.initialState?.sorting ?? [])\n }\n },\n\n getToggleSortingProps: (columnId, userProps) => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n throw new Error()\n }\n\n const canSort = column.getCanSort()\n\n const initialProps: ToggleSortingProps = {\n title: canSort ? 'Toggle Sorting' : undefined,\n onClick: canSort\n ? (e: unknown) => {\n ;(e as any).persist?.()\n column.toggleSorting?.(\n undefined,\n column.getCanMultiSort()\n ? instance.options.isMultiSortEvent?.(e)\n : false\n )\n }\n : undefined,\n }\n\n return propGetter(initialProps, userProps)\n },\n\n getPreSortedRowModel: () => instance.getGlobalFilteredRowModel(),\n getSortedRowModel: () => {\n if (\n !instance._getSortedRowModel &&\n instance.options.getSortedRowModel\n ) {\n instance._getSortedRowModel =\n instance.options.getSortedRowModel(instance)\n }\n\n if (!instance._getSortedRowModel) {\n return instance.getPreSortedRowModel()\n }\n\n return instance._getSortedRowModel()\n },\n }\n },\n}\n"],"names":["Sorting","getDefaultColumn","sortingFn","getInitialState","sorting","getDefaultOptions","instance","onSortingChange","makeStateUpdater","autoResetSorting","isMultiSortEvent","e","shiftKey","createColumn","column","getCanSort","getColumnCanSort","id","getCanMultiSort","getColumnCanMultiSort","getSortIndex","getColumnSortIndex","getIsSorted","getColumnIsSorted","resetSorting","toggleSorting","desc","isMulti","toggleColumnSorting","getToggleSortingProps","userProps","getInstance","registered","queueResetSorting","queueResetGrouping","options","autoResetAll","getColumnAutoSortingFn","columnId","firstRows","getGlobalFilteredRowModel","flatRows","slice","isString","_createForOfIteratorHelperLoose","row","value","values","Object","prototype","toString","call","sortingFns","datetime","split","reSplitAlphaNumeric","length","alphanumeric","text","basic","getColumnAutoSortDir","firstRow","getColumnSortingFn","getColumn","userSortingFn","Error","isFunction","setSorting","updater","multi","old","existingSorting","find","d","existingIndex","findIndex","hasDescDefined","newSorting","sortAction","sortDescFirst","enableSortingRemoval","enableMultiRemove","splice","maxMultiSortColCount","Number","MAX_SAFE_INTEGER","map","_extends","filter","enableSorting","defaultCanSort","accessorFn","enableMultiSort","columnSort","getState","initialState","canSort","initialProps","title","undefined","onClick","persist","propGetter","getPreSortedRowModel","getSortedRowModel","_getSortedRowModel"],"mappings":"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"}
|
|
@@ -95,7 +95,7 @@ var Visibility = {
|
|
|
95
95
|
}
|
|
96
96
|
}),
|
|
97
97
|
setColumnVisibility: function setColumnVisibility(updater) {
|
|
98
|
-
return instance.options.onColumnVisibilityChange == null ? void 0 : instance.options.onColumnVisibilityChange(updater
|
|
98
|
+
return instance.options.onColumnVisibilityChange == null ? void 0 : instance.options.onColumnVisibilityChange(updater);
|
|
99
99
|
},
|
|
100
100
|
toggleColumnVisibility: function toggleColumnVisibility(columnId, value) {
|
|
101
101
|
if (!columnId) return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Visibility.js","sources":["../../../src/features/Visibility.ts"],"sourcesContent":["import {\n Cell,\n Column,\n Getter,\n OnChangeFn,\n AnyGenerics,\n PartialGenerics,\n PropGetterValue,\n TableInstance,\n Updater,\n} from '../types'\nimport { functionalUpdate, makeStateUpdater, memo, propGetter } from '../utils'\n\nexport type VisibilityOptions = {\n onColumnVisibilityChange?: OnChangeFn<VisibilityState>\n enableHiding?: boolean\n}\n\nexport type VisibilityDefaultOptions = {\n onColumnVisibilityChange: OnChangeFn<VisibilityState>\n}\n\nexport type VisibilityState = Record<string, boolean>\n\nexport type VisibilityTableState = {\n columnVisibility: VisibilityState\n}\n\nexport type VisibilityInstance<TGenerics extends AnyGenerics> = {\n getVisibleFlatColumns: () => Column<TGenerics>[]\n getVisibleLeafColumns: () => Column<TGenerics>[]\n setColumnVisibility: (updater: Updater<VisibilityState>) => void\n toggleColumnVisibility: (columnId: string, value?: boolean) => void\n toggleAllColumnsVisible: (value?: boolean) => void\n getColumnIsVisible: (columId: string) => boolean\n getColumnCanHide: (columnId: string) => boolean\n getIsAllColumnsVisible: () => boolean\n getIsSomeColumnsVisible: () => boolean\n getToggleAllColumnsVisibilityProps: <\n TGetter extends Getter<ToggleAllColumnsVisibilityProps>\n >(\n userProps?: TGetter\n ) => undefined | PropGetterValue<ToggleAllColumnsVisibilityProps, TGetter>\n}\n\ntype ToggleVisibilityProps = {}\ntype ToggleAllColumnsVisibilityProps = {}\n\nexport type VisibilityColumnDef = {\n enableHiding?: boolean\n defaultCanHide?: boolean\n defaultIsVisible?: boolean\n}\n\nexport type VisibilityRow<TGenerics extends AnyGenerics> = {\n getVisibleCells: () => Cell<TGenerics>[]\n}\n\nexport type VisibilityColumn = {\n getCanHide: () => boolean\n getIsVisible: () => boolean\n toggleVisibility: (value?: boolean) => void\n getToggleVisibilityProps: <TGetter extends Getter<ToggleVisibilityProps>>(\n userProps?: TGetter\n ) => PropGetterValue<ToggleVisibilityProps, TGetter>\n}\n\n//\n\nexport const Visibility = {\n getInitialState: (): VisibilityTableState => {\n return {\n columnVisibility: {},\n }\n },\n\n getDefaultOptions: <TGenerics extends AnyGenerics>(\n instance: TableInstance<TGenerics>\n ): VisibilityDefaultOptions => {\n return {\n onColumnVisibilityChange: makeStateUpdater('columnVisibility', instance),\n }\n },\n\n getDefaultColumn: () => {\n return {\n defaultIsVisible: true,\n }\n },\n\n createColumn: <TGenerics extends AnyGenerics>(\n column: Column<TGenerics>,\n instance: TableInstance<TGenerics>\n ): VisibilityColumn => {\n return {\n getCanHide: () => instance.getColumnCanHide(column.id),\n getIsVisible: () => instance.getColumnIsVisible(column.id),\n toggleVisibility: value =>\n instance.toggleColumnVisibility(column.id, value),\n getToggleVisibilityProps: userProps => {\n const props: ToggleVisibilityProps = {\n type: 'checkbox',\n checked: column.getIsVisible?.(),\n title: 'Toggle Column Visibility',\n onChange: (e: unknown) => {\n column.toggleVisibility?.(\n ((e as MouseEvent).target as HTMLInputElement).checked\n )\n },\n }\n\n return propGetter(props, userProps)\n },\n }\n },\n\n getInstance: <TGenerics extends AnyGenerics>(\n instance: TableInstance<TGenerics>\n ): VisibilityInstance<TGenerics> => {\n return {\n getVisibleFlatColumns: memo(\n () => [\n instance.getAllFlatColumns(),\n instance\n .getAllFlatColumns()\n .filter(d => d.getIsVisible?.())\n .map(d => d.id)\n .join('_'),\n ],\n allFlatColumns => {\n return allFlatColumns.filter(d => d.getIsVisible?.())\n },\n {\n key: 'getVisibleFlatColumns',\n debug: () =>\n instance.options.debugAll ?? instance.options.debugColumns,\n }\n ),\n\n getVisibleLeafColumns: memo(\n () => [\n instance.getAllLeafColumns(),\n instance\n .getAllLeafColumns()\n .filter(d => d.getIsVisible?.())\n .map(d => d.id)\n .join('_'),\n ],\n allFlatColumns => {\n return allFlatColumns.filter(d => d.getIsVisible?.())\n },\n {\n key: 'getVisibleLeafColumns',\n debug: () =>\n instance.options.debugAll ?? instance.options.debugColumns,\n }\n ),\n\n setColumnVisibility: updater =>\n instance.options.onColumnVisibilityChange?.(\n updater,\n functionalUpdate(updater, instance.getState().columnVisibility)\n ),\n\n toggleColumnVisibility: (columnId, value) => {\n if (!columnId) return\n\n if (instance.getColumnCanHide(columnId)) {\n instance.setColumnVisibility(old => ({\n ...old,\n [columnId]: value ?? !instance.getColumnIsVisible(columnId),\n }))\n }\n },\n\n toggleAllColumnsVisible: value => {\n value = value ?? !instance.getIsAllColumnsVisible()\n\n instance.setColumnVisibility(\n instance.getAllLeafColumns().reduce(\n (obj, column) => ({\n ...obj,\n [column.id]: !value ? !column.getCanHide?.() : value,\n }),\n {}\n )\n )\n },\n\n getColumnIsVisible: columnId => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n throw new Error()\n }\n\n return (\n instance.getState().columnVisibility?.[columnId] ??\n column.defaultIsVisible ??\n true\n )\n },\n\n getColumnCanHide: columnId => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n throw new Error()\n }\n\n return (\n instance.options.enableHiding ??\n column.enableHiding ??\n column.defaultCanHide ??\n true\n )\n },\n\n getIsAllColumnsVisible: () =>\n !instance.getAllLeafColumns().some(column => !column.getIsVisible?.()),\n\n getIsSomeColumnsVisible: () =>\n instance.getAllLeafColumns().some(column => column.getIsVisible?.()),\n\n getToggleAllColumnsVisibilityProps: userProps => {\n const props: ToggleAllColumnsVisibilityProps = {\n onChange: (e: MouseEvent) => {\n instance.toggleAllColumnsVisible(\n (e.target as HTMLInputElement)?.checked\n )\n },\n type: 'checkbox',\n title: 'Toggle visibility for all columns',\n checked: instance.getIsAllColumnsVisible(),\n indeterminate:\n !instance.getIsAllColumnsVisible() &&\n instance.getIsSomeColumnsVisible()\n ? 'indeterminate'\n : undefined,\n }\n\n return propGetter(props, userProps)\n },\n }\n },\n}\n"],"names":["Visibility","getInitialState","columnVisibility","getDefaultOptions","instance","onColumnVisibilityChange","makeStateUpdater","getDefaultColumn","defaultIsVisible","createColumn","column","getCanHide","getColumnCanHide","id","getIsVisible","getColumnIsVisible","toggleVisibility","value","toggleColumnVisibility","getToggleVisibilityProps","userProps","props","type","checked","title","onChange","e","target","propGetter","getInstance","getVisibleFlatColumns","memo","getAllFlatColumns","filter","d","map","join","allFlatColumns","key","debug","options","debugAll","debugColumns","getVisibleLeafColumns","getAllLeafColumns","setColumnVisibility","updater","functionalUpdate","getState","columnId","old","_extends","toggleAllColumnsVisible","getIsAllColumnsVisible","reduce","obj","getColumn","Error","enableHiding","defaultCanHide","some","getIsSomeColumnsVisible","getToggleAllColumnsVisibilityProps","indeterminate","undefined"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Visibility.js","sources":["../../../src/features/Visibility.ts"],"sourcesContent":["import {\n Cell,\n Column,\n Getter,\n OnChangeFn,\n AnyGenerics,\n PartialGenerics,\n PropGetterValue,\n TableInstance,\n Updater,\n} from '../types'\nimport { functionalUpdate, makeStateUpdater, memo, propGetter } from '../utils'\n\nexport type VisibilityOptions = {\n onColumnVisibilityChange?: OnChangeFn<VisibilityState>\n enableHiding?: boolean\n}\n\nexport type VisibilityDefaultOptions = {\n onColumnVisibilityChange: OnChangeFn<VisibilityState>\n}\n\nexport type VisibilityState = Record<string, boolean>\n\nexport type VisibilityTableState = {\n columnVisibility: VisibilityState\n}\n\nexport type VisibilityInstance<TGenerics extends AnyGenerics> = {\n getVisibleFlatColumns: () => Column<TGenerics>[]\n getVisibleLeafColumns: () => Column<TGenerics>[]\n setColumnVisibility: (updater: Updater<VisibilityState>) => void\n toggleColumnVisibility: (columnId: string, value?: boolean) => void\n toggleAllColumnsVisible: (value?: boolean) => void\n getColumnIsVisible: (columId: string) => boolean\n getColumnCanHide: (columnId: string) => boolean\n getIsAllColumnsVisible: () => boolean\n getIsSomeColumnsVisible: () => boolean\n getToggleAllColumnsVisibilityProps: <\n TGetter extends Getter<ToggleAllColumnsVisibilityProps>\n >(\n userProps?: TGetter\n ) => undefined | PropGetterValue<ToggleAllColumnsVisibilityProps, TGetter>\n}\n\ntype ToggleVisibilityProps = {}\ntype ToggleAllColumnsVisibilityProps = {}\n\nexport type VisibilityColumnDef = {\n enableHiding?: boolean\n defaultCanHide?: boolean\n defaultIsVisible?: boolean\n}\n\nexport type VisibilityRow<TGenerics extends AnyGenerics> = {\n getVisibleCells: () => Cell<TGenerics>[]\n}\n\nexport type VisibilityColumn = {\n getCanHide: () => boolean\n getIsVisible: () => boolean\n toggleVisibility: (value?: boolean) => void\n getToggleVisibilityProps: <TGetter extends Getter<ToggleVisibilityProps>>(\n userProps?: TGetter\n ) => PropGetterValue<ToggleVisibilityProps, TGetter>\n}\n\n//\n\nexport const Visibility = {\n getInitialState: (): VisibilityTableState => {\n return {\n columnVisibility: {},\n }\n },\n\n getDefaultOptions: <TGenerics extends AnyGenerics>(\n instance: TableInstance<TGenerics>\n ): VisibilityDefaultOptions => {\n return {\n onColumnVisibilityChange: makeStateUpdater('columnVisibility', instance),\n }\n },\n\n getDefaultColumn: () => {\n return {\n defaultIsVisible: true,\n }\n },\n\n createColumn: <TGenerics extends AnyGenerics>(\n column: Column<TGenerics>,\n instance: TableInstance<TGenerics>\n ): VisibilityColumn => {\n return {\n getCanHide: () => instance.getColumnCanHide(column.id),\n getIsVisible: () => instance.getColumnIsVisible(column.id),\n toggleVisibility: value =>\n instance.toggleColumnVisibility(column.id, value),\n getToggleVisibilityProps: userProps => {\n const props: ToggleVisibilityProps = {\n type: 'checkbox',\n checked: column.getIsVisible?.(),\n title: 'Toggle Column Visibility',\n onChange: (e: unknown) => {\n column.toggleVisibility?.(\n ((e as MouseEvent).target as HTMLInputElement).checked\n )\n },\n }\n\n return propGetter(props, userProps)\n },\n }\n },\n\n getInstance: <TGenerics extends AnyGenerics>(\n instance: TableInstance<TGenerics>\n ): VisibilityInstance<TGenerics> => {\n return {\n getVisibleFlatColumns: memo(\n () => [\n instance.getAllFlatColumns(),\n instance\n .getAllFlatColumns()\n .filter(d => d.getIsVisible?.())\n .map(d => d.id)\n .join('_'),\n ],\n allFlatColumns => {\n return allFlatColumns.filter(d => d.getIsVisible?.())\n },\n {\n key: 'getVisibleFlatColumns',\n debug: () =>\n instance.options.debugAll ?? instance.options.debugColumns,\n }\n ),\n\n getVisibleLeafColumns: memo(\n () => [\n instance.getAllLeafColumns(),\n instance\n .getAllLeafColumns()\n .filter(d => d.getIsVisible?.())\n .map(d => d.id)\n .join('_'),\n ],\n allFlatColumns => {\n return allFlatColumns.filter(d => d.getIsVisible?.())\n },\n {\n key: 'getVisibleLeafColumns',\n debug: () =>\n instance.options.debugAll ?? instance.options.debugColumns,\n }\n ),\n\n setColumnVisibility: updater =>\n instance.options.onColumnVisibilityChange?.(updater),\n\n toggleColumnVisibility: (columnId, value) => {\n if (!columnId) return\n\n if (instance.getColumnCanHide(columnId)) {\n instance.setColumnVisibility(old => ({\n ...old,\n [columnId]: value ?? !instance.getColumnIsVisible(columnId),\n }))\n }\n },\n\n toggleAllColumnsVisible: value => {\n value = value ?? !instance.getIsAllColumnsVisible()\n\n instance.setColumnVisibility(\n instance.getAllLeafColumns().reduce(\n (obj, column) => ({\n ...obj,\n [column.id]: !value ? !column.getCanHide?.() : value,\n }),\n {}\n )\n )\n },\n\n getColumnIsVisible: columnId => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n throw new Error()\n }\n\n return (\n instance.getState().columnVisibility?.[columnId] ??\n column.defaultIsVisible ??\n true\n )\n },\n\n getColumnCanHide: columnId => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n throw new Error()\n }\n\n return (\n instance.options.enableHiding ??\n column.enableHiding ??\n column.defaultCanHide ??\n true\n )\n },\n\n getIsAllColumnsVisible: () =>\n !instance.getAllLeafColumns().some(column => !column.getIsVisible?.()),\n\n getIsSomeColumnsVisible: () =>\n instance.getAllLeafColumns().some(column => column.getIsVisible?.()),\n\n getToggleAllColumnsVisibilityProps: userProps => {\n const props: ToggleAllColumnsVisibilityProps = {\n onChange: (e: MouseEvent) => {\n instance.toggleAllColumnsVisible(\n (e.target as HTMLInputElement)?.checked\n )\n },\n type: 'checkbox',\n title: 'Toggle visibility for all columns',\n checked: instance.getIsAllColumnsVisible(),\n indeterminate:\n !instance.getIsAllColumnsVisible() &&\n instance.getIsSomeColumnsVisible()\n ? 'indeterminate'\n : undefined,\n }\n\n return propGetter(props, userProps)\n },\n }\n },\n}\n"],"names":["Visibility","getInitialState","columnVisibility","getDefaultOptions","instance","onColumnVisibilityChange","makeStateUpdater","getDefaultColumn","defaultIsVisible","createColumn","column","getCanHide","getColumnCanHide","id","getIsVisible","getColumnIsVisible","toggleVisibility","value","toggleColumnVisibility","getToggleVisibilityProps","userProps","props","type","checked","title","onChange","e","target","propGetter","getInstance","getVisibleFlatColumns","memo","getAllFlatColumns","filter","d","map","join","allFlatColumns","key","debug","options","debugAll","debugColumns","getVisibleLeafColumns","getAllLeafColumns","setColumnVisibility","updater","columnId","old","_extends","toggleAllColumnsVisible","getIsAllColumnsVisible","reduce","obj","getColumn","Error","getState","enableHiding","defaultCanHide","some","getIsSomeColumnsVisible","getToggleAllColumnsVisibilityProps","indeterminate","undefined"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getColumnFilteredRowModelSync.js","sources":["../../../src/utils/getColumnFilteredRowModelSync.ts"],"sourcesContent":["import { TableInstance, RowModel, AnyGenerics, Row } from '../types'\nimport { memo } from '../utils'\nimport {\n filterRowModelFromLeafs,\n filterRowModelFromRoot,\n} from './filterRowsUtils'\n\nexport function getColumnFilteredRowModelSync<\n TGenerics extends AnyGenerics\n>(): (instance: TableInstance<TGenerics>) => () => RowModel<TGenerics> {\n return instance =>\n memo(\n () => [\n instance.getState().columnFilters,\n instance.getPreColumnFilteredRowModel(),\n ],\n (columnFilters, rowModel) => {\n const columnFilteredRowModel: RowModel<TGenerics> = (() => {\n if (!rowModel.rows.length || !columnFilters?.length) {\n return rowModel\n }\n\n const filterFromLeafRows = instance.options.filterFromLeafRows\n\n const filterRows = (\n rowsToFilter: Row<TGenerics>[],\n depth: number\n ) => {\n for (let i = 0; i < columnFilters.length; i++) {\n const { id: columnId, value: filterValue } = columnFilters[i]\n // Find the columnFilters column\n const column = instance.getColumn(columnId)\n\n if (!column) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(\n `Table: Could not find a column with id: ${columnId}`\n )\n }\n throw new Error()\n }\n\n if (depth === 0) {\n const preFilteredRows = [...rowsToFilter]\n column.getPreFilteredRows = () => preFilteredRows\n }\n\n const filterFn = instance.getColumnFilterFn(column.id)\n\n if (!filterFn) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(\n `Could not find a valid 'column.filterFn' for column with the ID: ${column.id}.`\n )\n }\n continue\n }\n\n // Pass the rows, id, filterValue and column to the filterFn\n // to get the filtered rows back\n rowsToFilter = filterFn(rowsToFilter, [columnId], filterValue)\n }\n\n return rowsToFilter\n }\n\n if (filterFromLeafRows) {\n return filterRowModelFromLeafs(rowModel.rows, filterRows, instance)\n }\n\n return filterRowModelFromRoot(rowModel.rows, filterRows, instance)\n })()\n\n // Now that each filtered column has it's partially filtered rows,\n // lets assign the final filtered rows to all of the other columns\n const nonFilteredColumns = instance\n .getAllLeafColumns()\n .filter(\n column =>\n !instance.getState().columnFilters?.find(d => d.id === column.id)\n )\n\n // This essentially enables faceted filter options to be built easily\n // using every column's preFilteredRows value\n\n nonFilteredColumns.forEach(column => {\n column.getPreFilteredRows = () => columnFilteredRowModel.rows\n })\n\n return columnFilteredRowModel\n },\n {\n key: 'getColumnFilteredRowModelSync',\n debug: () => instance.options.debugAll ?? instance.options.debugTable,\n onChange: () => {\n instance.queue(() => {\n instance.
|
|
1
|
+
{"version":3,"file":"getColumnFilteredRowModelSync.js","sources":["../../../src/utils/getColumnFilteredRowModelSync.ts"],"sourcesContent":["import { TableInstance, RowModel, AnyGenerics, Row } from '../types'\nimport { memo } from '../utils'\nimport {\n filterRowModelFromLeafs,\n filterRowModelFromRoot,\n} from './filterRowsUtils'\n\nexport function getColumnFilteredRowModelSync<\n TGenerics extends AnyGenerics\n>(): (instance: TableInstance<TGenerics>) => () => RowModel<TGenerics> {\n return instance =>\n memo(\n () => [\n instance.getState().columnFilters,\n instance.getPreColumnFilteredRowModel(),\n ],\n (columnFilters, rowModel) => {\n const columnFilteredRowModel: RowModel<TGenerics> = (() => {\n if (!rowModel.rows.length || !columnFilters?.length) {\n return rowModel\n }\n\n const filterFromLeafRows = instance.options.filterFromLeafRows\n\n const filterRows = (\n rowsToFilter: Row<TGenerics>[],\n depth: number\n ) => {\n for (let i = 0; i < columnFilters.length; i++) {\n const { id: columnId, value: filterValue } = columnFilters[i]\n // Find the columnFilters column\n const column = instance.getColumn(columnId)\n\n if (!column) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(\n `Table: Could not find a column with id: ${columnId}`\n )\n }\n throw new Error()\n }\n\n if (depth === 0) {\n const preFilteredRows = [...rowsToFilter]\n column.getPreFilteredRows = () => preFilteredRows\n }\n\n const filterFn = instance.getColumnFilterFn(column.id)\n\n if (!filterFn) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(\n `Could not find a valid 'column.filterFn' for column with the ID: ${column.id}.`\n )\n }\n continue\n }\n\n // Pass the rows, id, filterValue and column to the filterFn\n // to get the filtered rows back\n rowsToFilter = filterFn(rowsToFilter, [columnId], filterValue)\n }\n\n return rowsToFilter\n }\n\n if (filterFromLeafRows) {\n return filterRowModelFromLeafs(rowModel.rows, filterRows, instance)\n }\n\n return filterRowModelFromRoot(rowModel.rows, filterRows, instance)\n })()\n\n // Now that each filtered column has it's partially filtered rows,\n // lets assign the final filtered rows to all of the other columns\n const nonFilteredColumns = instance\n .getAllLeafColumns()\n .filter(\n column =>\n !instance.getState().columnFilters?.find(d => d.id === column.id)\n )\n\n // This essentially enables faceted filter options to be built easily\n // using every column's preFilteredRows value\n\n nonFilteredColumns.forEach(column => {\n column.getPreFilteredRows = () => columnFilteredRowModel.rows\n })\n\n return columnFilteredRowModel\n },\n {\n key: 'getColumnFilteredRowModelSync',\n debug: () => instance.options.debugAll ?? instance.options.debugTable,\n onChange: () => {\n instance.queue(() => {\n instance.queueResetSorting()\n })\n },\n }\n )\n}\n"],"names":["getColumnFilteredRowModelSync","instance","memo","getState","columnFilters","getPreColumnFilteredRowModel","rowModel","columnFilteredRowModel","rows","length","filterFromLeafRows","options","filterRows","rowsToFilter","depth","i","columnId","id","filterValue","value","column","getColumn","process","env","NODE_ENV","console","warn","Error","preFilteredRows","getPreFilteredRows","filterFn","getColumnFilterFn","filterRowModelFromLeafs","filterRowModelFromRoot","nonFilteredColumns","getAllLeafColumns","filter","find","d","forEach","key","debug","debugAll","debugTable","onChange","queue","queueResetSorting"],"mappings":"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"}
|
|
@@ -114,9 +114,8 @@ function getCoreRowModelAsync(opts) {
|
|
|
114
114
|
},
|
|
115
115
|
onChange: function onChange() {
|
|
116
116
|
instance.queue(function () {
|
|
117
|
-
instance.
|
|
118
|
-
|
|
119
|
-
instance._notifyRowSelectionReset();
|
|
117
|
+
instance.queueResetFilters();
|
|
118
|
+
instance.queueResetRowSelection();
|
|
120
119
|
});
|
|
121
120
|
}
|
|
122
121
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getCoreRowModelAsync.js","sources":["../../../src/utils/getCoreRowModelAsync.ts"],"sourcesContent":["import { TableInstance, Row, RowModel, AnyGenerics } from '../types'\nimport { getBatchGroups, incrementalMemo } from '../utils'\n\nexport function getCoreRowModelAsync<TGenerics extends AnyGenerics>(opts?: {\n initialSync: boolean\n}): (instance: TableInstance<TGenerics>) => () => RowModel<TGenerics> {\n return instance =>\n incrementalMemo(\n () => [instance.options.data, instance.getAllLeafColumns()],\n () => {\n const rows: Row<TGenerics>[] = []\n const flatRows: Row<TGenerics>[] = []\n const rowsById: Record<string, Row<TGenerics>> = {}\n\n return { rows, flatRows, rowsById }\n },\n (data, leafColumns) => rowModelRef => scheduleTask => {\n const accessRows = (\n originalRows: TGenerics['Row'][],\n depth = 0,\n parent?: Row<TGenerics>\n ) => {\n const batchGroups = getBatchGroups(originalRows, 2000)\n\n for (let i = 0; i < batchGroups.length; i++) {\n const batchGroup = batchGroups[i]\n scheduleTask(() => {\n for (let i = 0; i < batchGroup.items.length; i++) {\n const originalRow = batchGroup.items[i]\n const rowIndex = batchGroup.start + i\n const id = instance.getRowId(originalRow, rowIndex, parent)\n\n if (!id) {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error(`getRowId expected an ID, but got ${id}`)\n }\n }\n\n const values: Record<string, any> = {}\n\n for (let i = 0; i < leafColumns.length; i++) {\n const column = leafColumns[i]\n if (column && column.accessorFn) {\n values[column.id] = column.accessorFn(originalRow, rowIndex)\n }\n }\n\n // Make the row\n const row = instance.createRow(\n id,\n originalRow,\n rowIndex,\n depth,\n values\n )\n\n // Push instance row into the parentRows array\n if (parent) {\n parent.subRows.push(row)\n } else {\n rowModelRef.current.rows.push(row)\n }\n // Keep track of every row in a flat array\n rowModelRef.current.flatRows.push(row)\n // Also keep track of every row by its ID\n rowModelRef.current.rowsById[id] = row\n\n // Get the original subrows\n if (instance.options.getSubRows) {\n const originalSubRows = instance.options.getSubRows(\n originalRow,\n rowIndex\n )\n\n // Then recursively access them\n if (originalSubRows?.length) {\n row.originalSubRows = originalSubRows\n row.subRows = []\n\n accessRows(row.originalSubRows, depth + 1, row)\n }\n }\n }\n })\n }\n }\n\n accessRows(data)\n },\n {\n key: 'getRowModel',\n initialSync: opts?.initialSync,\n onProgress: progress => {\n instance.setState(old => ({ ...old, coreProgress: progress }))\n },\n debug: () => instance.options.debugAll ?? instance.options.debugTable,\n onChange: () => {\n instance.queue(() => {\n instance.
|
|
1
|
+
{"version":3,"file":"getCoreRowModelAsync.js","sources":["../../../src/utils/getCoreRowModelAsync.ts"],"sourcesContent":["import { TableInstance, Row, RowModel, AnyGenerics } from '../types'\nimport { getBatchGroups, incrementalMemo } from '../utils'\n\nexport function getCoreRowModelAsync<TGenerics extends AnyGenerics>(opts?: {\n initialSync: boolean\n}): (instance: TableInstance<TGenerics>) => () => RowModel<TGenerics> {\n return instance =>\n incrementalMemo(\n () => [instance.options.data, instance.getAllLeafColumns()],\n () => {\n const rows: Row<TGenerics>[] = []\n const flatRows: Row<TGenerics>[] = []\n const rowsById: Record<string, Row<TGenerics>> = {}\n\n return { rows, flatRows, rowsById }\n },\n (data, leafColumns) => rowModelRef => scheduleTask => {\n const accessRows = (\n originalRows: TGenerics['Row'][],\n depth = 0,\n parent?: Row<TGenerics>\n ) => {\n const batchGroups = getBatchGroups(originalRows, 2000)\n\n for (let i = 0; i < batchGroups.length; i++) {\n const batchGroup = batchGroups[i]\n scheduleTask(() => {\n for (let i = 0; i < batchGroup.items.length; i++) {\n const originalRow = batchGroup.items[i]\n const rowIndex = batchGroup.start + i\n const id = instance.getRowId(originalRow, rowIndex, parent)\n\n if (!id) {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error(`getRowId expected an ID, but got ${id}`)\n }\n }\n\n const values: Record<string, any> = {}\n\n for (let i = 0; i < leafColumns.length; i++) {\n const column = leafColumns[i]\n if (column && column.accessorFn) {\n values[column.id] = column.accessorFn(originalRow, rowIndex)\n }\n }\n\n // Make the row\n const row = instance.createRow(\n id,\n originalRow,\n rowIndex,\n depth,\n values\n )\n\n // Push instance row into the parentRows array\n if (parent) {\n parent.subRows.push(row)\n } else {\n rowModelRef.current.rows.push(row)\n }\n // Keep track of every row in a flat array\n rowModelRef.current.flatRows.push(row)\n // Also keep track of every row by its ID\n rowModelRef.current.rowsById[id] = row\n\n // Get the original subrows\n if (instance.options.getSubRows) {\n const originalSubRows = instance.options.getSubRows(\n originalRow,\n rowIndex\n )\n\n // Then recursively access them\n if (originalSubRows?.length) {\n row.originalSubRows = originalSubRows\n row.subRows = []\n\n accessRows(row.originalSubRows, depth + 1, row)\n }\n }\n }\n })\n }\n }\n\n accessRows(data)\n },\n {\n key: 'getRowModel',\n initialSync: opts?.initialSync,\n onProgress: progress => {\n instance.setState(old => ({ ...old, coreProgress: progress }))\n },\n debug: () => instance.options.debugAll ?? instance.options.debugTable,\n onChange: () => {\n instance.queue(() => {\n instance.queueResetFilters()\n instance.queueResetRowSelection()\n })\n },\n }\n )\n}\n"],"names":["getCoreRowModelAsync","opts","instance","incrementalMemo","options","data","getAllLeafColumns","rows","flatRows","rowsById","leafColumns","rowModelRef","scheduleTask","accessRows","originalRows","depth","parent","batchGroups","getBatchGroups","i","batchGroup","items","length","originalRow","rowIndex","start","id","getRowId","process","env","NODE_ENV","Error","values","column","accessorFn","row","createRow","subRows","push","current","getSubRows","originalSubRows","key","initialSync","onProgress","progress","setState","old","_extends","coreProgress","debug","debugAll","debugTable","onChange","queue","queueResetFilters","queueResetRowSelection"],"mappings":"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"}
|
|
@@ -91,9 +91,8 @@ function getCoreRowModelSync() {
|
|
|
91
91
|
},
|
|
92
92
|
onChange: function onChange() {
|
|
93
93
|
instance.queue(function () {
|
|
94
|
-
instance.
|
|
95
|
-
|
|
96
|
-
instance._notifyRowSelectionReset();
|
|
94
|
+
instance.queueResetFilters();
|
|
95
|
+
instance.queueResetRowSelection();
|
|
97
96
|
});
|
|
98
97
|
}
|
|
99
98
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getCoreRowModelSync.js","sources":["../../../src/utils/getCoreRowModelSync.ts"],"sourcesContent":["import { TableInstance, Row, RowModel, AnyGenerics } from '../types'\nimport { memo } from '../utils'\n\nexport function getCoreRowModelSync<TGenerics extends AnyGenerics>(): (\n instance: TableInstance<TGenerics>\n) => () => RowModel<TGenerics> {\n return instance =>\n memo(\n () => [instance.options.data],\n (\n data\n ): {\n rows: Row<TGenerics>[]\n flatRows: Row<TGenerics>[]\n rowsById: Record<string, Row<TGenerics>>\n } => {\n // Access the row model using initial columns\n const rows: Row<TGenerics>[] = []\n const flatRows: Row<TGenerics>[] = []\n const rowsById: Record<string, Row<TGenerics>> = {}\n\n const leafColumns = instance.getAllLeafColumns()\n\n const accessRow = (\n originalRow: TGenerics['Row'],\n rowIndex: number,\n depth = 0,\n parentRows: Row<TGenerics>[],\n parent?: Row<TGenerics>\n ) => {\n const id = instance.getRowId(originalRow, rowIndex, parent)\n\n if (!id) {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error(`getRowId expected an ID, but got ${id}`)\n }\n }\n\n const values: Record<string, any> = {}\n\n for (let i = 0; i < leafColumns.length; i++) {\n const column = leafColumns[i]\n if (column && column.accessorFn) {\n values[column.id] = column.accessorFn(originalRow, rowIndex)\n }\n }\n\n // Make the row\n const row = instance.createRow(\n id,\n originalRow,\n rowIndex,\n depth,\n values\n )\n\n // Push instance row into the parentRows array\n parentRows.push(row)\n // Keep track of every row in a flat array\n flatRows.push(row)\n // Also keep track of every row by its ID\n rowsById[id] = row\n\n // Get the original subrows\n if (instance.options.getSubRows) {\n const originalSubRows = instance.options.getSubRows(\n originalRow,\n rowIndex\n )\n\n // Then recursively access them\n if (originalSubRows?.length) {\n row.originalSubRows = originalSubRows\n const subRows: Row<TGenerics>[] = []\n\n for (let i = 0; i < row.originalSubRows.length; i++) {\n accessRow(\n row.originalSubRows[i] as TGenerics['Row'],\n i,\n depth + 1,\n subRows,\n row\n )\n }\n row.subRows = subRows\n }\n }\n }\n\n for (let i = 0; i < data.length; i++) {\n accessRow(data[i] as TGenerics['Row'], i, 0, rows)\n }\n\n return { rows, flatRows, rowsById }\n },\n {\n key: 'getRowModel',\n debug: () => instance.options.debugAll ?? instance.options.debugTable,\n onChange: () => {\n instance.queue(() => {\n instance.
|
|
1
|
+
{"version":3,"file":"getCoreRowModelSync.js","sources":["../../../src/utils/getCoreRowModelSync.ts"],"sourcesContent":["import { TableInstance, Row, RowModel, AnyGenerics } from '../types'\nimport { memo } from '../utils'\n\nexport function getCoreRowModelSync<TGenerics extends AnyGenerics>(): (\n instance: TableInstance<TGenerics>\n) => () => RowModel<TGenerics> {\n return instance =>\n memo(\n () => [instance.options.data],\n (\n data\n ): {\n rows: Row<TGenerics>[]\n flatRows: Row<TGenerics>[]\n rowsById: Record<string, Row<TGenerics>>\n } => {\n // Access the row model using initial columns\n const rows: Row<TGenerics>[] = []\n const flatRows: Row<TGenerics>[] = []\n const rowsById: Record<string, Row<TGenerics>> = {}\n\n const leafColumns = instance.getAllLeafColumns()\n\n const accessRow = (\n originalRow: TGenerics['Row'],\n rowIndex: number,\n depth = 0,\n parentRows: Row<TGenerics>[],\n parent?: Row<TGenerics>\n ) => {\n const id = instance.getRowId(originalRow, rowIndex, parent)\n\n if (!id) {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error(`getRowId expected an ID, but got ${id}`)\n }\n }\n\n const values: Record<string, any> = {}\n\n for (let i = 0; i < leafColumns.length; i++) {\n const column = leafColumns[i]\n if (column && column.accessorFn) {\n values[column.id] = column.accessorFn(originalRow, rowIndex)\n }\n }\n\n // Make the row\n const row = instance.createRow(\n id,\n originalRow,\n rowIndex,\n depth,\n values\n )\n\n // Push instance row into the parentRows array\n parentRows.push(row)\n // Keep track of every row in a flat array\n flatRows.push(row)\n // Also keep track of every row by its ID\n rowsById[id] = row\n\n // Get the original subrows\n if (instance.options.getSubRows) {\n const originalSubRows = instance.options.getSubRows(\n originalRow,\n rowIndex\n )\n\n // Then recursively access them\n if (originalSubRows?.length) {\n row.originalSubRows = originalSubRows\n const subRows: Row<TGenerics>[] = []\n\n for (let i = 0; i < row.originalSubRows.length; i++) {\n accessRow(\n row.originalSubRows[i] as TGenerics['Row'],\n i,\n depth + 1,\n subRows,\n row\n )\n }\n row.subRows = subRows\n }\n }\n }\n\n for (let i = 0; i < data.length; i++) {\n accessRow(data[i] as TGenerics['Row'], i, 0, rows)\n }\n\n return { rows, flatRows, rowsById }\n },\n {\n key: 'getRowModel',\n debug: () => instance.options.debugAll ?? instance.options.debugTable,\n onChange: () => {\n instance.queue(() => {\n instance.queueResetFilters()\n instance.queueResetRowSelection()\n })\n },\n }\n )\n}\n"],"names":["getCoreRowModelSync","instance","memo","options","data","rows","flatRows","rowsById","leafColumns","getAllLeafColumns","accessRow","originalRow","rowIndex","depth","parentRows","parent","id","getRowId","process","env","NODE_ENV","Error","values","i","length","column","accessorFn","row","createRow","push","getSubRows","originalSubRows","subRows","key","debug","debugAll","debugTable","onChange","queue","queueResetFilters","queueResetRowSelection"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getGlobalFilteredRowModelSync.js","sources":["../../../src/utils/getGlobalFilteredRowModelSync.ts"],"sourcesContent":["import { TableInstance, RowModel, AnyGenerics, Row } from '../types'\nimport { memo } from '../utils'\nimport {\n filterRowModelFromLeafs,\n filterRowModelFromRoot,\n} from './filterRowsUtils'\n\nexport function getGlobalFilteredRowModelSync<\n TGenerics extends AnyGenerics\n>(): (instance: TableInstance<TGenerics>) => () => RowModel<TGenerics> {\n return instance =>\n memo(\n () => [\n instance.getState().globalFilter,\n instance.getPreGlobalFilteredRowModel(),\n ],\n (globalFilter, rowModel) => {\n const globalFilteredRowModel: RowModel<TGenerics> = (() => {\n if (!rowModel.rows.length || !globalFilter) {\n return rowModel\n }\n\n const filterFromLeafRows = instance.options.filterFromLeafRows\n\n const filterFn = instance.getGlobalFilterFn()\n\n if (!filterFn) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(`Could not find a valid 'globalFilterType'`)\n }\n return rowModel\n }\n\n const filterableColumns = instance\n .getAllLeafColumns()\n .filter(column => column.getCanGlobalFilter())\n\n const filterableColumnIds = filterableColumns.map(d => d.id)\n\n const filterRows = (rows: Row<TGenerics>[]) => {\n return filterFn(rows, filterableColumnIds, globalFilter)\n }\n\n if (filterFromLeafRows) {\n return filterRowModelFromLeafs(rowModel.rows, filterRows, instance)\n }\n\n return filterRowModelFromRoot(rowModel.rows, filterRows, instance)\n })()\n\n // Now that each filtered column has it's partially filtered rows,\n // lets assign the final filtered rows to all of the other columns\n const nonFilteredColumns = instance\n .getAllLeafColumns()\n .filter(\n column =>\n !instance.getState().columnFilters?.find(d => d.id === column.id)\n )\n\n // This essentially enables faceted filter options to be built easily\n // using every column's preFilteredRows value\n\n nonFilteredColumns.forEach(column => {\n column.getPreFilteredRows = () => globalFilteredRowModel.rows\n })\n\n return globalFilteredRowModel\n },\n {\n key: 'getGlobalFilteredRowModelSync',\n debug: () => instance.options.debugAll ?? instance.options.debugTable,\n onChange: () => {\n instance.queue(() => {\n instance.
|
|
1
|
+
{"version":3,"file":"getGlobalFilteredRowModelSync.js","sources":["../../../src/utils/getGlobalFilteredRowModelSync.ts"],"sourcesContent":["import { TableInstance, RowModel, AnyGenerics, Row } from '../types'\nimport { memo } from '../utils'\nimport {\n filterRowModelFromLeafs,\n filterRowModelFromRoot,\n} from './filterRowsUtils'\n\nexport function getGlobalFilteredRowModelSync<\n TGenerics extends AnyGenerics\n>(): (instance: TableInstance<TGenerics>) => () => RowModel<TGenerics> {\n return instance =>\n memo(\n () => [\n instance.getState().globalFilter,\n instance.getPreGlobalFilteredRowModel(),\n ],\n (globalFilter, rowModel) => {\n const globalFilteredRowModel: RowModel<TGenerics> = (() => {\n if (!rowModel.rows.length || !globalFilter) {\n return rowModel\n }\n\n const filterFromLeafRows = instance.options.filterFromLeafRows\n\n const filterFn = instance.getGlobalFilterFn()\n\n if (!filterFn) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(`Could not find a valid 'globalFilterType'`)\n }\n return rowModel\n }\n\n const filterableColumns = instance\n .getAllLeafColumns()\n .filter(column => column.getCanGlobalFilter())\n\n const filterableColumnIds = filterableColumns.map(d => d.id)\n\n const filterRows = (rows: Row<TGenerics>[]) => {\n return filterFn(rows, filterableColumnIds, globalFilter)\n }\n\n if (filterFromLeafRows) {\n return filterRowModelFromLeafs(rowModel.rows, filterRows, instance)\n }\n\n return filterRowModelFromRoot(rowModel.rows, filterRows, instance)\n })()\n\n // Now that each filtered column has it's partially filtered rows,\n // lets assign the final filtered rows to all of the other columns\n const nonFilteredColumns = instance\n .getAllLeafColumns()\n .filter(\n column =>\n !instance.getState().columnFilters?.find(d => d.id === column.id)\n )\n\n // This essentially enables faceted filter options to be built easily\n // using every column's preFilteredRows value\n\n nonFilteredColumns.forEach(column => {\n column.getPreFilteredRows = () => globalFilteredRowModel.rows\n })\n\n return globalFilteredRowModel\n },\n {\n key: 'getGlobalFilteredRowModelSync',\n debug: () => instance.options.debugAll ?? instance.options.debugTable,\n onChange: () => {\n instance.queue(() => {\n instance.queueResetSorting()\n })\n },\n }\n )\n}\n"],"names":["getGlobalFilteredRowModelSync","instance","memo","getState","globalFilter","getPreGlobalFilteredRowModel","rowModel","globalFilteredRowModel","rows","length","filterFromLeafRows","options","filterFn","getGlobalFilterFn","process","env","NODE_ENV","console","warn","filterableColumns","getAllLeafColumns","filter","column","getCanGlobalFilter","filterableColumnIds","map","d","id","filterRows","filterRowModelFromLeafs","filterRowModelFromRoot","nonFilteredColumns","columnFilters","find","forEach","getPreFilteredRows","key","debug","debugAll","debugTable","onChange","queue","queueResetSorting"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getGroupedRowModel.js","sources":["../../../src/utils/getGroupedRowModel.ts"],"sourcesContent":["import { TableInstance, Row, RowModel, AnyGenerics } from '../types'\nimport { flattenBy, memo } from '../utils'\n\nexport function getGroupedRowModelSync<TGenerics extends AnyGenerics>(): (\n instance: TableInstance<TGenerics>\n) => () => RowModel<TGenerics> {\n return instance =>\n memo(\n () => [instance.getState().grouping, instance.getPreGroupedRowModel()],\n (grouping, rowModel) => {\n if (!rowModel.rows.length || !grouping.length) {\n return rowModel\n }\n\n // Filter the grouping list down to columns that exist\n const existingGrouping = grouping.filter(columnId =>\n instance.getColumn(columnId)\n )\n\n // Find the columns that can or are aggregating\n // Uses each column to aggregate rows into a single value\n const aggregateRowsToValues = (\n leafRows: Row<TGenerics>[],\n groupedRows: Row<TGenerics>[],\n depth: number\n ) => {\n const values: Record<string, unknown> = {}\n\n instance.getAllLeafColumns().forEach(column => {\n // Don't aggregate columns that are in the grouping\n if (existingGrouping.includes(column.id)) {\n values[column.id] = groupedRows[0]\n ? groupedRows[0].values[column.id]\n : null\n return\n }\n\n // Aggregate the values\n const aggregateFn = instance.getColumnAggregationFn(column.id)\n\n if (aggregateFn) {\n values[column.id] = aggregateFn(\n () =>\n leafRows.map(row => {\n let columnValue = row.values[column.id]\n\n if (!depth && column.aggregateValue) {\n columnValue = column.aggregateValue(columnValue)\n }\n\n return columnValue\n }),\n () => groupedRows.map(row => row.values[column.id])\n )\n } else if (column.aggregationFn) {\n console.info({ column })\n throw new Error(\n process.env.NODE_ENV !== 'production'\n ? `Table: Invalid column.aggregateType option for column listed above`\n : ''\n )\n } else {\n values[column.id] = null\n }\n })\n\n return values\n }\n\n const groupedFlatRows: Row<TGenerics>[] = []\n const groupedRowsById: Record<string, Row<TGenerics>> = {}\n // const onlyGroupedFlatRows: Row[] = [];\n // const onlyGroupedRowsById: Record<RowId, Row> = {};\n // const nonGroupedFlatRows: Row[] = [];\n // const nonGroupedRowsById: Record<RowId, Row> = {};\n\n // Recursively group the data\n const groupUpRecursively = (\n rows: Row<TGenerics>[],\n depth = 0,\n parentId: string\n ) => {\n // This is the last level, just return the rows\n if (depth === existingGrouping.length) {\n return rows\n }\n\n const columnId = existingGrouping[depth]!\n\n // Group the rows together for this level\n const rowGroupsMap = groupBy(rows, columnId)\n\n // Peform aggregations for each group\n const aggregatedGroupedRows = Array.from(rowGroupsMap.entries()).map(\n ([groupingValue, groupedRows], index) => {\n let id = `${columnId}:${groupingValue}`\n id = parentId ? `${parentId}>${id}` : id\n\n // First, Recurse to group sub rows before aggregation\n const subRows = groupUpRecursively(groupedRows, depth + 1, id)\n\n // Flatten the leaf rows of the rows in this group\n const leafRows = depth\n ? flattenBy(groupedRows, row => row.subRows)\n : groupedRows\n\n const values = aggregateRowsToValues(leafRows, groupedRows, depth)\n\n const row = instance.createRow(\n id,\n undefined,\n index,\n depth,\n values\n )\n\n Object.assign(row, {\n groupingColumnId: columnId,\n groupingValue,\n subRows,\n leafRows,\n })\n\n subRows.forEach(subRow => {\n groupedFlatRows.push(subRow)\n groupedRowsById[subRow.id] = subRow\n // if (subRow.getIsGrouped?.()) {\n // onlyGroupedFlatRows.push(subRow);\n // onlyGroupedRowsById[subRow.id] = subRow;\n // } else {\n // nonGroupedFlatRows.push(subRow);\n // nonGroupedRowsById[subRow.id] = subRow;\n // }\n })\n\n return row\n }\n )\n\n return aggregatedGroupedRows\n }\n\n const groupedRows = groupUpRecursively(rowModel.rows, 0, '')\n\n groupedRows.forEach(subRow => {\n groupedFlatRows.push(subRow)\n groupedRowsById[subRow.id] = subRow\n // if (subRow.getIsGrouped?.()) {\n // onlyGroupedFlatRows.push(subRow);\n // onlyGroupedRowsById[subRow.id] = subRow;\n // } else {\n // nonGroupedFlatRows.push(subRow);\n // nonGroupedRowsById[subRow.id] = subRow;\n // }\n })\n\n return {\n rows: groupedRows,\n flatRows: groupedFlatRows,\n rowsById: groupedRowsById,\n }\n },\n {\n key: 'getGroupedRowModel',\n debug: () => instance.options.debugAll ?? instance.options.debugTable,\n onChange: () => {\n instance.queue(() => {\n instance._notifyExpandedReset()\n })\n },\n }\n )\n}\n\nfunction groupBy<TGenerics extends AnyGenerics>(\n rows: Row<TGenerics>[],\n columnId: string\n) {\n const groupMap = new Map<any, Row<TGenerics>[]>()\n\n return rows.reduce((map, row) => {\n const resKey = `${row.values[columnId]}`\n const previous = map.get(resKey)\n if (!previous) {\n map.set(resKey, [row])\n } else {\n map.set(resKey, [...previous, row])\n }\n return map\n }, groupMap)\n}\n"],"names":["getGroupedRowModelSync","instance","memo","getState","grouping","getPreGroupedRowModel","rowModel","rows","length","existingGrouping","filter","columnId","getColumn","aggregateRowsToValues","leafRows","groupedRows","depth","values","getAllLeafColumns","forEach","column","includes","id","aggregateFn","getColumnAggregationFn","map","row","columnValue","aggregateValue","aggregationFn","console","info","Error","process","env","NODE_ENV","groupedFlatRows","groupedRowsById","groupUpRecursively","parentId","rowGroupsMap","groupBy","aggregatedGroupedRows","Array","from","entries","index","groupingValue","subRows","flattenBy","createRow","undefined","Object","assign","groupingColumnId","subRow","push","flatRows","rowsById","key","debug","options","debugAll","debugTable","onChange","queue","_notifyExpandedReset","groupMap","Map","reduce","resKey","previous","get","set"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"getGroupedRowModel.js","sources":["../../../src/utils/getGroupedRowModel.ts"],"sourcesContent":["import { TableInstance, Row, RowModel, AnyGenerics } from '../types'\nimport { flattenBy, memo } from '../utils'\n\nexport function getGroupedRowModelSync<TGenerics extends AnyGenerics>(): (\n instance: TableInstance<TGenerics>\n) => () => RowModel<TGenerics> {\n return instance =>\n memo(\n () => [instance.getState().grouping, instance.getPreGroupedRowModel()],\n (grouping, rowModel) => {\n if (!rowModel.rows.length || !grouping.length) {\n return rowModel\n }\n\n // Filter the grouping list down to columns that exist\n const existingGrouping = grouping.filter(columnId =>\n instance.getColumn(columnId)\n )\n\n // Find the columns that can or are aggregating\n // Uses each column to aggregate rows into a single value\n const aggregateRowsToValues = (\n leafRows: Row<TGenerics>[],\n groupedRows: Row<TGenerics>[],\n depth: number\n ) => {\n const values: Record<string, unknown> = {}\n\n instance.getAllLeafColumns().forEach(column => {\n // Don't aggregate columns that are in the grouping\n if (existingGrouping.includes(column.id)) {\n values[column.id] = groupedRows[0]\n ? groupedRows[0].values[column.id]\n : null\n return\n }\n\n // Aggregate the values\n const aggregateFn = instance.getColumnAggregationFn(column.id)\n\n if (aggregateFn) {\n values[column.id] = aggregateFn(\n () =>\n leafRows.map(row => {\n let columnValue = row.values[column.id]\n\n if (!depth && column.aggregateValue) {\n columnValue = column.aggregateValue(columnValue)\n }\n\n return columnValue\n }),\n () => groupedRows.map(row => row.values[column.id])\n )\n } else if (column.aggregationFn) {\n console.info({ column })\n throw new Error(\n process.env.NODE_ENV !== 'production'\n ? `Table: Invalid column.aggregateType option for column listed above`\n : ''\n )\n } else {\n values[column.id] = null\n }\n })\n\n return values\n }\n\n const groupedFlatRows: Row<TGenerics>[] = []\n const groupedRowsById: Record<string, Row<TGenerics>> = {}\n // const onlyGroupedFlatRows: Row[] = [];\n // const onlyGroupedRowsById: Record<RowId, Row> = {};\n // const nonGroupedFlatRows: Row[] = [];\n // const nonGroupedRowsById: Record<RowId, Row> = {};\n\n // Recursively group the data\n const groupUpRecursively = (\n rows: Row<TGenerics>[],\n depth = 0,\n parentId: string\n ) => {\n // This is the last level, just return the rows\n if (depth === existingGrouping.length) {\n return rows\n }\n\n const columnId = existingGrouping[depth]!\n\n // Group the rows together for this level\n const rowGroupsMap = groupBy(rows, columnId)\n\n // Peform aggregations for each group\n const aggregatedGroupedRows = Array.from(rowGroupsMap.entries()).map(\n ([groupingValue, groupedRows], index) => {\n let id = `${columnId}:${groupingValue}`\n id = parentId ? `${parentId}>${id}` : id\n\n // First, Recurse to group sub rows before aggregation\n const subRows = groupUpRecursively(groupedRows, depth + 1, id)\n\n // Flatten the leaf rows of the rows in this group\n const leafRows = depth\n ? flattenBy(groupedRows, row => row.subRows)\n : groupedRows\n\n const values = aggregateRowsToValues(leafRows, groupedRows, depth)\n\n const row = instance.createRow(\n id,\n undefined,\n index,\n depth,\n values\n )\n\n Object.assign(row, {\n groupingColumnId: columnId,\n groupingValue,\n subRows,\n leafRows,\n })\n\n subRows.forEach(subRow => {\n groupedFlatRows.push(subRow)\n groupedRowsById[subRow.id] = subRow\n // if (subRow.getIsGrouped?.()) {\n // onlyGroupedFlatRows.push(subRow);\n // onlyGroupedRowsById[subRow.id] = subRow;\n // } else {\n // nonGroupedFlatRows.push(subRow);\n // nonGroupedRowsById[subRow.id] = subRow;\n // }\n })\n\n return row\n }\n )\n\n return aggregatedGroupedRows\n }\n\n const groupedRows = groupUpRecursively(rowModel.rows, 0, '')\n\n groupedRows.forEach(subRow => {\n groupedFlatRows.push(subRow)\n groupedRowsById[subRow.id] = subRow\n // if (subRow.getIsGrouped?.()) {\n // onlyGroupedFlatRows.push(subRow);\n // onlyGroupedRowsById[subRow.id] = subRow;\n // } else {\n // nonGroupedFlatRows.push(subRow);\n // nonGroupedRowsById[subRow.id] = subRow;\n // }\n })\n\n return {\n rows: groupedRows,\n flatRows: groupedFlatRows,\n rowsById: groupedRowsById,\n }\n },\n {\n key: 'getGroupedRowModel',\n debug: () => instance.options.debugAll ?? instance.options.debugTable,\n onChange: () => {\n instance.queue(() => {\n instance.queueResetExpanded()\n })\n },\n }\n )\n}\n\nfunction groupBy<TGenerics extends AnyGenerics>(\n rows: Row<TGenerics>[],\n columnId: string\n) {\n const groupMap = new Map<any, Row<TGenerics>[]>()\n\n return rows.reduce((map, row) => {\n const resKey = `${row.values[columnId]}`\n const previous = map.get(resKey)\n if (!previous) {\n map.set(resKey, [row])\n } else {\n map.set(resKey, [...previous, row])\n }\n return map\n }, groupMap)\n}\n"],"names":["getGroupedRowModelSync","instance","memo","getState","grouping","getPreGroupedRowModel","rowModel","rows","length","existingGrouping","filter","columnId","getColumn","aggregateRowsToValues","leafRows","groupedRows","depth","values","getAllLeafColumns","forEach","column","includes","id","aggregateFn","getColumnAggregationFn","map","row","columnValue","aggregateValue","aggregationFn","console","info","Error","process","env","NODE_ENV","groupedFlatRows","groupedRowsById","groupUpRecursively","parentId","rowGroupsMap","groupBy","aggregatedGroupedRows","Array","from","entries","index","groupingValue","subRows","flattenBy","createRow","undefined","Object","assign","groupingColumnId","subRow","push","flatRows","rowsById","key","debug","options","debugAll","debugTable","onChange","queue","queueResetExpanded","groupMap","Map","reduce","resKey","previous","get","set"],"mappings":";;;;;;;;;;;;;;;;AAGO,SAASA,sBAAT,GAEwB;AAC7B,EAAA,OAAO,UAAAC,QAAQ,EAAA;AAAA,IAAA,OACbC,UAAI,CACF,YAAA;AAAA,MAAM,OAAA,CAACD,QAAQ,CAACE,QAAT,EAAA,CAAoBC,QAArB,EAA+BH,QAAQ,CAACI,qBAAT,EAA/B,CAAN,CAAA;AAAA,KADE,EAEF,UAACD,QAAD,EAAWE,QAAX,EAAwB;AACtB,MAAI,IAAA,CAACA,QAAQ,CAACC,IAAT,CAAcC,MAAf,IAAyB,CAACJ,QAAQ,CAACI,MAAvC,EAA+C;AAC7C,QAAA,OAAOF,QAAP,CAAA;AACD,OAHqB;;;AAMtB,MAAA,IAAMG,gBAAgB,GAAGL,QAAQ,CAACM,MAAT,CAAgB,UAAAC,QAAQ,EAAA;AAAA,QAAA,OAC/CV,QAAQ,CAACW,SAAT,CAAmBD,QAAnB,CAD+C,CAAA;AAAA,OAAxB,CAAzB,CANsB;AAWtB;;AACA,MAAME,IAAAA,qBAAqB,GAAG,SAAxBA,qBAAwB,CAC5BC,QAD4B,EAE5BC,WAF4B,EAG5BC,KAH4B,EAIzB;AACH,QAAMC,IAAAA,MAA+B,GAAG,EAAxC,CAAA;AAEAhB,QAAAA,QAAQ,CAACiB,iBAAT,EAAA,CAA6BC,OAA7B,CAAqC,UAAAC,MAAM,EAAI;AAC7C;AACA,UAAIX,IAAAA,gBAAgB,CAACY,QAAjB,CAA0BD,MAAM,CAACE,EAAjC,CAAJ,EAA0C;AACxCL,YAAAA,MAAM,CAACG,MAAM,CAACE,EAAR,CAAN,GAAoBP,WAAW,CAAC,CAAD,CAAX,GAChBA,WAAW,CAAC,CAAD,CAAX,CAAeE,MAAf,CAAsBG,MAAM,CAACE,EAA7B,CADgB,GAEhB,IAFJ,CAAA;AAGA,YAAA,OAAA;AACD,WAP4C;;;AAU7C,UAAMC,IAAAA,WAAW,GAAGtB,QAAQ,CAACuB,sBAAT,CAAgCJ,MAAM,CAACE,EAAvC,CAApB,CAAA;;AAEA,UAAA,IAAIC,WAAJ,EAAiB;AACfN,YAAAA,MAAM,CAACG,MAAM,CAACE,EAAR,CAAN,GAAoBC,WAAW,CAC7B,YAAA;AAAA,cAAA,OACET,QAAQ,CAACW,GAAT,CAAa,UAAAC,GAAG,EAAI;AAClB,gBAAIC,IAAAA,WAAW,GAAGD,GAAG,CAACT,MAAJ,CAAWG,MAAM,CAACE,EAAlB,CAAlB,CAAA;;AAEA,gBAAA,IAAI,CAACN,KAAD,IAAUI,MAAM,CAACQ,cAArB,EAAqC;AACnCD,kBAAAA,WAAW,GAAGP,MAAM,CAACQ,cAAP,CAAsBD,WAAtB,CAAd,CAAA;AACD,iBAAA;;AAED,gBAAA,OAAOA,WAAP,CAAA;AACD,eARD,CADF,CAAA;AAAA,aAD6B,EAW7B,YAAA;AAAA,cAAA,OAAMZ,WAAW,CAACU,GAAZ,CAAgB,UAAAC,GAAG,EAAA;AAAA,gBAAA,OAAIA,GAAG,CAACT,MAAJ,CAAWG,MAAM,CAACE,EAAlB,CAAJ,CAAA;AAAA,eAAnB,CAAN,CAAA;AAAA,aAX6B,CAA/B,CAAA;AAaD,WAdD,MAcO,IAAIF,MAAM,CAACS,aAAX,EAA0B;AAC/BC,YAAAA,OAAO,CAACC,IAAR,CAAa;AAAEX,cAAAA,MAAM,EAANA,MAAAA;AAAF,aAAb,CAAA,CAAA;AACA,YAAA,MAAM,IAAIY,KAAJ,CACJC,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAAzB,GAEI,oEAAA,GAAA,EAHA,CAAN,CAAA;AAKD,WAPM,MAOA;AACLlB,YAAAA,MAAM,CAACG,MAAM,CAACE,EAAR,CAAN,GAAoB,IAApB,CAAA;AACD,WAAA;AACF,SApCD,CAAA,CAAA;AAsCA,QAAA,OAAOL,MAAP,CAAA;AACD,OA9CD,CAAA;;AAgDA,MAAMmB,IAAAA,eAAiC,GAAG,EAA1C,CAAA;AACA,MAAA,IAAMC,eAA+C,GAAG,EAAxD,CA7DsB;AA+DtB;AACA;AACA;AAEA;;AACA,MAAMC,IAAAA,kBAAkB,GAAG,SAArBA,kBAAqB,CACzB/B,IADyB,EAEzBS,KAFyB,EAGzBuB,QAHyB,EAItB;AAAA,QAAA,IAFHvB,KAEG,KAAA,KAAA,CAAA,EAAA;AAFHA,UAAAA,KAEG,GAFK,CAEL,CAAA;AAAA,SAAA;;AACH;AACA,QAAA,IAAIA,KAAK,KAAKP,gBAAgB,CAACD,MAA/B,EAAuC;AACrC,UAAA,OAAOD,IAAP,CAAA;AACD,SAAA;;AAED,QAAA,IAAMI,QAAQ,GAAGF,gBAAgB,CAACO,KAAD,CAAjC,CANG;;AASH,QAAMwB,IAAAA,YAAY,GAAGC,OAAO,CAAClC,IAAD,EAAOI,QAAP,CAA5B,CATG;;AAYH,QAAA,IAAM+B,qBAAqB,GAAGC,KAAK,CAACC,IAAN,CAAWJ,YAAY,CAACK,OAAb,EAAX,CAAmCpB,CAAAA,GAAnC,CAC5B,UAAA,IAAA,EAA+BqB,KAA/B,EAAyC;AAAA,UAAA,IAAvCC,aAAuC,GAAA,IAAA,CAAA,CAAA,CAAA;AAAA,cAAxBhC,WAAwB,GAAA,IAAA,CAAA,CAAA,CAAA,CAAA;AACvC,UAAA,IAAIO,EAAE,GAAMX,QAAN,GAAA,GAAA,GAAkBoC,aAAxB,CAAA;AACAzB,UAAAA,EAAE,GAAGiB,QAAQ,GAAMA,QAAN,SAAkBjB,EAAlB,GAAyBA,EAAtC,CAFuC;;AAKvC,UAAA,IAAM0B,OAAO,GAAGV,kBAAkB,CAACvB,WAAD,EAAcC,KAAK,GAAG,CAAtB,EAAyBM,EAAzB,CAAlC,CALuC;;AAQvC,UAAMR,IAAAA,QAAQ,GAAGE,KAAK,GAClBiC,eAAS,CAAClC,WAAD,EAAc,UAAAW,GAAG,EAAA;AAAA,YAAIA,OAAAA,GAAG,CAACsB,OAAR,CAAA;AAAA,WAAjB,CADS,GAElBjC,WAFJ,CAAA;AAIA,UAAME,IAAAA,MAAM,GAAGJ,qBAAqB,CAACC,QAAD,EAAWC,WAAX,EAAwBC,KAAxB,CAApC,CAAA;AAEA,UAAA,IAAMU,GAAG,GAAGzB,QAAQ,CAACiD,SAAT,CACV5B,EADU,EAEV6B,SAFU,EAGVL,KAHU,EAIV9B,KAJU,EAKVC,MALU,CAAZ,CAAA;AAQAmC,UAAAA,MAAM,CAACC,MAAP,CAAc3B,GAAd,EAAmB;AACjB4B,YAAAA,gBAAgB,EAAE3C,QADD;AAEjBoC,YAAAA,aAAa,EAAbA,aAFiB;AAGjBC,YAAAA,OAAO,EAAPA,OAHiB;AAIjBlC,YAAAA,QAAQ,EAARA,QAAAA;AAJiB,WAAnB,CAAA,CAAA;AAOAkC,UAAAA,OAAO,CAAC7B,OAAR,CAAgB,UAAAoC,MAAM,EAAI;AACxBnB,YAAAA,eAAe,CAACoB,IAAhB,CAAqBD,MAArB,CAAA,CAAA;AACAlB,YAAAA,eAAe,CAACkB,MAAM,CAACjC,EAAR,CAAf,GAA6BiC,MAA7B,CAFwB;AAIxB;AACA;AACA;AACA;AACA;AACA;AACD,WAVD,CAAA,CAAA;AAYA,UAAA,OAAO7B,GAAP,CAAA;AACD,SA3C2B,CAA9B,CAAA;AA8CA,QAAA,OAAOgB,qBAAP,CAAA;AACD,OA/DD,CAAA;;AAiEA,MAAM3B,IAAAA,WAAW,GAAGuB,kBAAkB,CAAChC,QAAQ,CAACC,IAAV,EAAgB,CAAhB,EAAmB,EAAnB,CAAtC,CAAA;AAEAQ,MAAAA,WAAW,CAACI,OAAZ,CAAoB,UAAAoC,MAAM,EAAI;AAC5BnB,QAAAA,eAAe,CAACoB,IAAhB,CAAqBD,MAArB,CAAA,CAAA;AACAlB,QAAAA,eAAe,CAACkB,MAAM,CAACjC,EAAR,CAAf,GAA6BiC,MAA7B,CAF4B;AAI5B;AACA;AACA;AACA;AACA;AACA;AACD,OAVD,CAAA,CAAA;AAYA,MAAO,OAAA;AACLhD,QAAAA,IAAI,EAAEQ,WADD;AAEL0C,QAAAA,QAAQ,EAAErB,eAFL;AAGLsB,QAAAA,QAAQ,EAAErB,eAAAA;AAHL,OAAP,CAAA;AAKD,KA1JC,EA2JF;AACEsB,MAAAA,GAAG,EAAE,oBADP;AAEEC,MAAAA,KAAK,EAAE,SAAA,KAAA,GAAA;AAAA,QAAA,IAAA,qBAAA,CAAA;;AAAA,QAAM3D,OAAAA,CAAAA,qBAAAA,GAAAA,QAAQ,CAAC4D,OAAT,CAAiBC,QAAvB,oCAAmC7D,QAAQ,CAAC4D,OAAT,CAAiBE,UAApD,CAAA;AAAA,OAFT;AAGEC,MAAAA,QAAQ,EAAE,SAAM,QAAA,GAAA;AACd/D,QAAAA,QAAQ,CAACgE,KAAT,CAAe,YAAM;AACnBhE,UAAAA,QAAQ,CAACiE,kBAAT,EAAA,CAAA;AACD,SAFD,CAAA,CAAA;AAGD,OAAA;AAPH,KA3JE,CADS,CAAA;AAAA,GAAf,CAAA;AAsKD,CAAA;;AAED,SAASzB,OAAT,CACElC,IADF,EAEEI,QAFF,EAGE;AACA,EAAA,IAAMwD,QAAQ,GAAG,IAAIC,GAAJ,EAAjB,CAAA;AAEA,EAAO7D,OAAAA,IAAI,CAAC8D,MAAL,CAAY,UAAC5C,GAAD,EAAMC,GAAN,EAAc;AAC/B,IAAA,IAAM4C,MAAM,GAAM5C,EAAAA,GAAAA,GAAG,CAACT,MAAJ,CAAWN,QAAX,CAAlB,CAAA;AACA,IAAA,IAAM4D,QAAQ,GAAG9C,GAAG,CAAC+C,GAAJ,CAAQF,MAAR,CAAjB,CAAA;;AACA,IAAI,IAAA,CAACC,QAAL,EAAe;AACb9C,MAAAA,GAAG,CAACgD,GAAJ,CAAQH,MAAR,EAAgB,CAAC5C,GAAD,CAAhB,CAAA,CAAA;AACD,KAFD,MAEO;AACLD,MAAAA,GAAG,CAACgD,GAAJ,CAAQH,MAAR,EAAoBC,EAAAA,CAAAA,MAAAA,CAAAA,QAApB,GAA8B7C,GAA9B,CAAA,CAAA,CAAA,CAAA;AACD,KAAA;;AACD,IAAA,OAAOD,GAAP,CAAA;AACD,GATM,EASJ0C,QATI,CAAP,CAAA;AAUD;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getSortedRowModelSync.js","sources":["../../../src/utils/getSortedRowModelSync.ts"],"sourcesContent":["import { TableInstance, Row, RowModel, AnyGenerics } from '../types'\nimport { SortingFn } from '../features/Sorting'\nimport { memo } from '../utils'\n\nexport function getSortedRowModelSync<TGenerics extends AnyGenerics>(): (\n instance: TableInstance<TGenerics>\n) => () => RowModel<TGenerics> {\n return instance =>\n memo(\n () => [instance.getState().sorting, instance.getPreSortedRowModel()],\n (sorting, rowModel) => {\n if (!rowModel.rows.length || !sorting?.length) {\n return rowModel\n }\n\n const sortingState = instance.getState().sorting\n\n const sortedFlatRows: Row<TGenerics>[] = []\n\n // Filter out sortings that correspond to non existing columns\n const availableSorting = sortingState.filter(sort =>\n instance.getColumnCanSort(sort.id)\n )\n\n const columnInfoById: Record<\n string,\n {\n sortUndefined?: false | -1 | 1\n invertSorting?: boolean\n sortingFn: SortingFn<TGenerics>\n }\n > = {}\n\n availableSorting.forEach(sortEntry => {\n const column = instance.getColumn(sortEntry.id)!\n\n columnInfoById[sortEntry.id] = {\n sortUndefined: column.sortUndefined,\n invertSorting: column.invertSorting,\n sortingFn: instance.getColumnSortingFn(sortEntry.id)!,\n }\n })\n\n const sortData = (rows: Row<TGenerics>[]) => {\n // This will also perform a stable sorting using the row index\n // if needed.\n const sortedData = rows.slice()\n\n sortedData.sort((rowA, rowB) => {\n for (let i = 0; i < availableSorting.length; i += 1) {\n const sortEntry = availableSorting[i]!\n const columnInfo = columnInfoById[sortEntry.id]!\n const isDesc = sortEntry?.desc ?? false\n\n if (columnInfo.sortUndefined) {\n const aValue = rowA.values[sortEntry.id]\n const bValue = rowB.values[sortEntry.id]\n\n const aUndefined = typeof aValue === 'undefined'\n const bUndefined = typeof bValue === 'undefined'\n\n if (aUndefined || bUndefined) {\n return aUndefined && bUndefined\n ? 0\n : aUndefined\n ? columnInfo.sortUndefined\n : -columnInfo.sortUndefined\n }\n }\n\n // This function should always return in ascending order\n let sortInt = columnInfo.sortingFn(rowA, rowB, sortEntry.id)\n\n if (sortInt !== 0) {\n if (isDesc) {\n sortInt *= -1\n }\n\n if (columnInfo.invertSorting) {\n sortInt *= -1\n }\n\n return sortInt\n }\n }\n\n return rowA.index - rowB.index\n })\n\n // If there are sub-rows, sort them\n sortedData.forEach(row => {\n sortedFlatRows.push(row)\n if (!row.subRows || row.subRows.length <= 1) {\n return\n }\n row.subRows = sortData(row.subRows)\n })\n\n return sortedData\n }\n\n return {\n rows: sortData(rowModel.rows),\n flatRows: sortedFlatRows,\n rowsById: rowModel.rowsById,\n }\n },\n {\n key: 'getSortedRowModel',\n debug: () => instance.options.debugAll ?? instance.options.debugTable,\n onChange: () => {\n instance.queue(() => {\n instance.
|
|
1
|
+
{"version":3,"file":"getSortedRowModelSync.js","sources":["../../../src/utils/getSortedRowModelSync.ts"],"sourcesContent":["import { TableInstance, Row, RowModel, AnyGenerics } from '../types'\nimport { SortingFn } from '../features/Sorting'\nimport { memo } from '../utils'\n\nexport function getSortedRowModelSync<TGenerics extends AnyGenerics>(): (\n instance: TableInstance<TGenerics>\n) => () => RowModel<TGenerics> {\n return instance =>\n memo(\n () => [instance.getState().sorting, instance.getPreSortedRowModel()],\n (sorting, rowModel) => {\n if (!rowModel.rows.length || !sorting?.length) {\n return rowModel\n }\n\n const sortingState = instance.getState().sorting\n\n const sortedFlatRows: Row<TGenerics>[] = []\n\n // Filter out sortings that correspond to non existing columns\n const availableSorting = sortingState.filter(sort =>\n instance.getColumnCanSort(sort.id)\n )\n\n const columnInfoById: Record<\n string,\n {\n sortUndefined?: false | -1 | 1\n invertSorting?: boolean\n sortingFn: SortingFn<TGenerics>\n }\n > = {}\n\n availableSorting.forEach(sortEntry => {\n const column = instance.getColumn(sortEntry.id)!\n\n columnInfoById[sortEntry.id] = {\n sortUndefined: column.sortUndefined,\n invertSorting: column.invertSorting,\n sortingFn: instance.getColumnSortingFn(sortEntry.id)!,\n }\n })\n\n const sortData = (rows: Row<TGenerics>[]) => {\n // This will also perform a stable sorting using the row index\n // if needed.\n const sortedData = rows.slice()\n\n sortedData.sort((rowA, rowB) => {\n for (let i = 0; i < availableSorting.length; i += 1) {\n const sortEntry = availableSorting[i]!\n const columnInfo = columnInfoById[sortEntry.id]!\n const isDesc = sortEntry?.desc ?? false\n\n if (columnInfo.sortUndefined) {\n const aValue = rowA.values[sortEntry.id]\n const bValue = rowB.values[sortEntry.id]\n\n const aUndefined = typeof aValue === 'undefined'\n const bUndefined = typeof bValue === 'undefined'\n\n if (aUndefined || bUndefined) {\n return aUndefined && bUndefined\n ? 0\n : aUndefined\n ? columnInfo.sortUndefined\n : -columnInfo.sortUndefined\n }\n }\n\n // This function should always return in ascending order\n let sortInt = columnInfo.sortingFn(rowA, rowB, sortEntry.id)\n\n if (sortInt !== 0) {\n if (isDesc) {\n sortInt *= -1\n }\n\n if (columnInfo.invertSorting) {\n sortInt *= -1\n }\n\n return sortInt\n }\n }\n\n return rowA.index - rowB.index\n })\n\n // If there are sub-rows, sort them\n sortedData.forEach(row => {\n sortedFlatRows.push(row)\n if (!row.subRows || row.subRows.length <= 1) {\n return\n }\n row.subRows = sortData(row.subRows)\n })\n\n return sortedData\n }\n\n return {\n rows: sortData(rowModel.rows),\n flatRows: sortedFlatRows,\n rowsById: rowModel.rowsById,\n }\n },\n {\n key: 'getSortedRowModel',\n debug: () => instance.options.debugAll ?? instance.options.debugTable,\n onChange: () => {\n instance.queue(() => {\n instance.queueResetGrouping()\n })\n },\n }\n )\n}\n"],"names":["getSortedRowModelSync","instance","memo","getState","sorting","getPreSortedRowModel","rowModel","rows","length","sortingState","sortedFlatRows","availableSorting","filter","sort","getColumnCanSort","id","columnInfoById","forEach","sortEntry","column","getColumn","sortUndefined","invertSorting","sortingFn","getColumnSortingFn","sortData","sortedData","slice","rowA","rowB","i","columnInfo","isDesc","desc","aValue","values","bValue","aUndefined","bUndefined","sortInt","index","row","push","subRows","flatRows","rowsById","key","debug","options","debugAll","debugTable","onChange","queue","queueResetGrouping"],"mappings":"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"}
|