@tanstack/table-core 8.8.4 → 8.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/lib/columnHelper.js +0 -1
- package/build/lib/columnHelper.js.map +1 -1
- package/build/lib/core/cell.js.map +1 -1
- package/build/lib/core/column.js.map +1 -1
- package/build/lib/core/headers.js.map +1 -1
- package/build/lib/core/row.js.map +1 -1
- package/build/lib/core/table.js.map +1 -1
- package/build/lib/features/ColumnSizing.js +2 -0
- package/build/lib/features/ColumnSizing.js.map +1 -1
- package/build/lib/features/Expanding.js +1 -1
- package/build/lib/features/Expanding.js.map +1 -1
- package/build/lib/features/Filters.js.map +1 -1
- package/build/lib/features/Grouping.d.ts +2 -0
- package/build/lib/features/Grouping.js +12 -1
- package/build/lib/features/Grouping.js.map +1 -1
- package/build/lib/features/Ordering.js.map +1 -1
- package/build/lib/features/Pagination.js.map +1 -1
- package/build/lib/features/Pinning.js.map +1 -1
- package/build/lib/features/RowSelection.js.map +1 -1
- package/build/lib/features/Sorting.js.map +1 -1
- package/build/lib/features/Visibility.js.map +1 -1
- package/build/lib/filterFns.js.map +1 -1
- package/build/lib/index.esm.js +16 -4
- package/build/lib/index.esm.js.map +1 -1
- package/build/lib/index.mjs +16 -4
- package/build/lib/index.mjs.map +1 -1
- package/build/lib/sortingFns.js.map +1 -1
- package/build/lib/utils/filterRowsUtils.js.map +1 -1
- package/build/lib/utils/getCoreRowModel.js.map +1 -1
- package/build/lib/utils/getExpandedRowModel.js.map +1 -1
- package/build/lib/utils/getFacetedMinMaxValues.js.map +1 -1
- package/build/lib/utils/getFacetedRowModel.js.map +1 -1
- package/build/lib/utils/getFacetedUniqueValues.js.map +1 -1
- package/build/lib/utils/getFilteredRowModel.js.map +1 -1
- package/build/lib/utils/getGroupedRowModel.js +1 -1
- package/build/lib/utils/getGroupedRowModel.js.map +1 -1
- package/build/lib/utils/getPaginationRowModel.js.map +1 -1
- package/build/lib/utils/getSortedRowModel.js.map +1 -1
- package/build/lib/utils.js.map +1 -1
- package/build/umd/index.development.js +16 -4
- 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/Expanding.ts +3 -1
- package/src/features/Grouping.ts +23 -1
- package/src/utils/getGroupedRowModel.ts +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Expanding.js","sources":["../../../src/features/Expanding.ts"],"sourcesContent":["import { RowModel } from '..'\nimport { TableFeature } from '../core/table'\nimport { OnChangeFn, Table, Row, Updater, RowData } from '../types'\nimport { makeStateUpdater } from '../utils'\n\nexport type ExpandedStateList = Record<string, boolean>\nexport type ExpandedState = true | Record<string, boolean>\nexport interface ExpandedTableState {\n expanded: ExpandedState\n}\n\nexport interface ExpandedRow {\n toggleExpanded: (expanded?: boolean) => void\n getIsExpanded: () => boolean\n getCanExpand: () => boolean\n getToggleExpandedHandler: () => () => void\n}\n\nexport interface ExpandedOptions<TData extends RowData> {\n manualExpanding?: boolean\n onExpandedChange?: OnChangeFn<ExpandedState>\n autoResetExpanded?: boolean\n enableExpanding?: boolean\n getExpandedRowModel?: (table: Table<any>) => () => RowModel<any>\n getIsRowExpanded?: (row: Row<TData>) => boolean\n getRowCanExpand?: (row: Row<TData>) => boolean\n paginateExpandedRows?: boolean\n}\n\nexport interface ExpandedInstance<TData extends RowData> {\n _autoResetExpanded: () => void\n setExpanded: (updater: Updater<ExpandedState>) => void\n toggleAllRowsExpanded: (expanded?: boolean) => void\n resetExpanded: (defaultState?: boolean) => void\n getCanSomeRowsExpand: () => boolean\n getToggleAllRowsExpandedHandler: () => (event: unknown) => void\n getIsSomeRowsExpanded: () => boolean\n getIsAllRowsExpanded: () => boolean\n getExpandedDepth: () => number\n getExpandedRowModel: () => RowModel<TData>\n _getExpandedRowModel?: () => RowModel<TData>\n getPreExpandedRowModel: () => RowModel<TData>\n}\n\n//\n\nexport const Expanding: TableFeature = {\n getInitialState: (state): ExpandedTableState => {\n return {\n expanded: {},\n ...state,\n }\n },\n\n getDefaultOptions: <TData extends RowData>(\n table: Table<TData>\n ): ExpandedOptions<TData> => {\n return {\n onExpandedChange: makeStateUpdater('expanded', table),\n paginateExpandedRows: true,\n }\n },\n\n createTable: <TData extends RowData>(\n table: Table<TData>\n ): ExpandedInstance<TData> => {\n let registered = false\n let queued = false\n\n return {\n _autoResetExpanded: () => {\n if (!registered) {\n table._queue(() => {\n registered = true\n })\n return\n }\n\n if (\n table.options.autoResetAll ??\n table.options.autoResetExpanded ??\n !table.options.manualExpanding\n ) {\n if (queued) return\n queued = true\n table._queue(() => {\n table.resetExpanded()\n queued = false\n })\n }\n },\n setExpanded: updater => table.options.onExpandedChange?.(updater),\n toggleAllRowsExpanded: expanded => {\n if (expanded ?? !table.getIsAllRowsExpanded()) {\n table.setExpanded(true)\n } else {\n table.setExpanded({})\n }\n },\n resetExpanded: defaultState => {\n table.setExpanded(\n defaultState ? {} : table.initialState?.expanded ?? {}\n )\n },\n getCanSomeRowsExpand: () => {\n return table.getRowModel().flatRows.some(row => row.getCanExpand())\n },\n getToggleAllRowsExpandedHandler: () => {\n return (e: unknown) => {\n ;(e as any).persist?.()\n table.toggleAllRowsExpanded()\n }\n },\n getIsSomeRowsExpanded: () => {\n const expanded = table.getState().expanded\n return expanded === true || Object.values(expanded).some(Boolean)\n },\n getIsAllRowsExpanded: () => {\n const expanded = table.getState().expanded\n\n // If expanded is true, save some cycles and return true\n if (typeof expanded === 'boolean') {\n return expanded === true\n }\n\n if (!Object.keys(expanded).length) {\n return false\n }\n\n // If any row is not expanded, return false\n if (table.getRowModel().flatRows.some(row => !row.getIsExpanded())) {\n return false\n }\n\n // They must all be expanded :shrug:\n return true\n },\n getExpandedDepth: () => {\n let maxDepth = 0\n\n const rowIds =\n table.getState().expanded === true\n ? Object.keys(table.getRowModel().rowsById)\n : Object.keys(table.getState().expanded)\n\n rowIds.forEach(id => {\n const splitId = id.split('.')\n maxDepth = Math.max(maxDepth, splitId.length)\n })\n\n return maxDepth\n },\n getPreExpandedRowModel: () => table.getSortedRowModel(),\n getExpandedRowModel: () => {\n if (!table._getExpandedRowModel && table.options.getExpandedRowModel) {\n table._getExpandedRowModel = table.options.getExpandedRowModel(table)\n }\n\n if (table.options.manualExpanding || !table._getExpandedRowModel) {\n return table.getPreExpandedRowModel()\n }\n\n return table._getExpandedRowModel()\n },\n }\n },\n\n createRow: <TData extends RowData>(\n row: Row<TData>,\n table: Table<TData>\n ): ExpandedRow => {\n return {\n toggleExpanded: expanded => {\n table.setExpanded(old => {\n const exists = old === true ? true : !!old?.[row.id]\n\n let oldExpanded: ExpandedStateList = {}\n\n if (old === true) {\n Object.keys(table.getRowModel().rowsById).forEach(rowId => {\n oldExpanded[rowId] = true\n })\n } else {\n oldExpanded = old\n }\n\n expanded = expanded ?? !exists\n\n if (!exists && expanded) {\n return {\n ...oldExpanded,\n [row.id]: true,\n }\n }\n\n if (exists && !expanded) {\n const { [row.id]: _, ...rest } = oldExpanded\n return rest\n }\n\n return old\n })\n },\n getIsExpanded: () => {\n const expanded = table.getState().expanded\n\n return !!(\n table.options.getIsRowExpanded?.(row) ??\n (expanded === true || expanded?.[row.id])\n )\n },\n getCanExpand: () => {\n return (\n table.options.getRowCanExpand?.(row) ??\n ((table.options.enableExpanding ?? true) && !!row.subRows?.length)\n )\n },\n getToggleExpandedHandler: () => {\n const canExpand = row.getCanExpand()\n\n return () => {\n if (!canExpand) return\n row.toggleExpanded()\n }\n },\n }\n },\n}\n"],"names":["Expanding","getInitialState","state","expanded","getDefaultOptions","table","onExpandedChange","makeStateUpdater","paginateExpandedRows","createTable","registered","queued","_autoResetExpanded","_ref","_table$options$autoRe","_queue","options","autoResetAll","autoResetExpanded","manualExpanding","resetExpanded","setExpanded","updater","toggleAllRowsExpanded","getIsAllRowsExpanded","defaultState","_table$initialState$e","_table$initialState","initialState","getCanSomeRowsExpand","getRowModel","flatRows","some","row","getCanExpand","getToggleAllRowsExpandedHandler","e","persist","getIsSomeRowsExpanded","getState","Object","values","Boolean","keys","length","getIsExpanded","getExpandedDepth","maxDepth","rowIds","rowsById","forEach","id","splitId","split","Math","max","getPreExpandedRowModel","getSortedRowModel","getExpandedRowModel","_getExpandedRowModel","createRow","toggleExpanded","old","_expanded","exists","oldExpanded","rowId","_","rest","_table$options$getIsR","getIsRowExpanded","_table$options$getRow","_table$options$enable","_row$subRows","getRowCanExpand","enableExpanding","subRows","getToggleExpandedHandler","canExpand"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Expanding.js","sources":["../../../src/features/Expanding.ts"],"sourcesContent":["import { RowModel } from '..'\nimport { TableFeature } from '../core/table'\nimport { OnChangeFn, Table, Row, Updater, RowData } from '../types'\nimport { makeStateUpdater } from '../utils'\n\nexport type ExpandedStateList = Record<string, boolean>\nexport type ExpandedState = true | Record<string, boolean>\nexport interface ExpandedTableState {\n expanded: ExpandedState\n}\n\nexport interface ExpandedRow {\n toggleExpanded: (expanded?: boolean) => void\n getIsExpanded: () => boolean\n getCanExpand: () => boolean\n getToggleExpandedHandler: () => () => void\n}\n\nexport interface ExpandedOptions<TData extends RowData> {\n manualExpanding?: boolean\n onExpandedChange?: OnChangeFn<ExpandedState>\n autoResetExpanded?: boolean\n enableExpanding?: boolean\n getExpandedRowModel?: (table: Table<any>) => () => RowModel<any>\n getIsRowExpanded?: (row: Row<TData>) => boolean\n getRowCanExpand?: (row: Row<TData>) => boolean\n paginateExpandedRows?: boolean\n}\n\nexport interface ExpandedInstance<TData extends RowData> {\n _autoResetExpanded: () => void\n setExpanded: (updater: Updater<ExpandedState>) => void\n toggleAllRowsExpanded: (expanded?: boolean) => void\n resetExpanded: (defaultState?: boolean) => void\n getCanSomeRowsExpand: () => boolean\n getToggleAllRowsExpandedHandler: () => (event: unknown) => void\n getIsSomeRowsExpanded: () => boolean\n getIsAllRowsExpanded: () => boolean\n getExpandedDepth: () => number\n getExpandedRowModel: () => RowModel<TData>\n _getExpandedRowModel?: () => RowModel<TData>\n getPreExpandedRowModel: () => RowModel<TData>\n}\n\n//\n\nexport const Expanding: TableFeature = {\n getInitialState: (state): ExpandedTableState => {\n return {\n expanded: {},\n ...state,\n }\n },\n\n getDefaultOptions: <TData extends RowData>(\n table: Table<TData>\n ): ExpandedOptions<TData> => {\n return {\n onExpandedChange: makeStateUpdater('expanded', table),\n paginateExpandedRows: true,\n }\n },\n\n createTable: <TData extends RowData>(\n table: Table<TData>\n ): ExpandedInstance<TData> => {\n let registered = false\n let queued = false\n\n return {\n _autoResetExpanded: () => {\n if (!registered) {\n table._queue(() => {\n registered = true\n })\n return\n }\n\n if (\n table.options.autoResetAll ??\n table.options.autoResetExpanded ??\n !table.options.manualExpanding\n ) {\n if (queued) return\n queued = true\n table._queue(() => {\n table.resetExpanded()\n queued = false\n })\n }\n },\n setExpanded: updater => table.options.onExpandedChange?.(updater),\n toggleAllRowsExpanded: expanded => {\n if (expanded ?? !table.getIsAllRowsExpanded()) {\n table.setExpanded(true)\n } else {\n table.setExpanded({})\n }\n },\n resetExpanded: defaultState => {\n table.setExpanded(\n defaultState ? {} : table.initialState?.expanded ?? {}\n )\n },\n getCanSomeRowsExpand: () => {\n return table\n .getPrePaginationRowModel()\n .flatRows.some(row => row.getCanExpand())\n },\n getToggleAllRowsExpandedHandler: () => {\n return (e: unknown) => {\n ;(e as any).persist?.()\n table.toggleAllRowsExpanded()\n }\n },\n getIsSomeRowsExpanded: () => {\n const expanded = table.getState().expanded\n return expanded === true || Object.values(expanded).some(Boolean)\n },\n getIsAllRowsExpanded: () => {\n const expanded = table.getState().expanded\n\n // If expanded is true, save some cycles and return true\n if (typeof expanded === 'boolean') {\n return expanded === true\n }\n\n if (!Object.keys(expanded).length) {\n return false\n }\n\n // If any row is not expanded, return false\n if (table.getRowModel().flatRows.some(row => !row.getIsExpanded())) {\n return false\n }\n\n // They must all be expanded :shrug:\n return true\n },\n getExpandedDepth: () => {\n let maxDepth = 0\n\n const rowIds =\n table.getState().expanded === true\n ? Object.keys(table.getRowModel().rowsById)\n : Object.keys(table.getState().expanded)\n\n rowIds.forEach(id => {\n const splitId = id.split('.')\n maxDepth = Math.max(maxDepth, splitId.length)\n })\n\n return maxDepth\n },\n getPreExpandedRowModel: () => table.getSortedRowModel(),\n getExpandedRowModel: () => {\n if (!table._getExpandedRowModel && table.options.getExpandedRowModel) {\n table._getExpandedRowModel = table.options.getExpandedRowModel(table)\n }\n\n if (table.options.manualExpanding || !table._getExpandedRowModel) {\n return table.getPreExpandedRowModel()\n }\n\n return table._getExpandedRowModel()\n },\n }\n },\n\n createRow: <TData extends RowData>(\n row: Row<TData>,\n table: Table<TData>\n ): ExpandedRow => {\n return {\n toggleExpanded: expanded => {\n table.setExpanded(old => {\n const exists = old === true ? true : !!old?.[row.id]\n\n let oldExpanded: ExpandedStateList = {}\n\n if (old === true) {\n Object.keys(table.getRowModel().rowsById).forEach(rowId => {\n oldExpanded[rowId] = true\n })\n } else {\n oldExpanded = old\n }\n\n expanded = expanded ?? !exists\n\n if (!exists && expanded) {\n return {\n ...oldExpanded,\n [row.id]: true,\n }\n }\n\n if (exists && !expanded) {\n const { [row.id]: _, ...rest } = oldExpanded\n return rest\n }\n\n return old\n })\n },\n getIsExpanded: () => {\n const expanded = table.getState().expanded\n\n return !!(\n table.options.getIsRowExpanded?.(row) ??\n (expanded === true || expanded?.[row.id])\n )\n },\n getCanExpand: () => {\n return (\n table.options.getRowCanExpand?.(row) ??\n ((table.options.enableExpanding ?? true) && !!row.subRows?.length)\n )\n },\n getToggleExpandedHandler: () => {\n const canExpand = row.getCanExpand()\n\n return () => {\n if (!canExpand) return\n row.toggleExpanded()\n }\n },\n }\n },\n}\n"],"names":["Expanding","getInitialState","state","expanded","getDefaultOptions","table","onExpandedChange","makeStateUpdater","paginateExpandedRows","createTable","registered","queued","_autoResetExpanded","_ref","_table$options$autoRe","_queue","options","autoResetAll","autoResetExpanded","manualExpanding","resetExpanded","setExpanded","updater","toggleAllRowsExpanded","getIsAllRowsExpanded","defaultState","_table$initialState$e","_table$initialState","initialState","getCanSomeRowsExpand","getPrePaginationRowModel","flatRows","some","row","getCanExpand","getToggleAllRowsExpandedHandler","e","persist","getIsSomeRowsExpanded","getState","Object","values","Boolean","keys","length","getRowModel","getIsExpanded","getExpandedDepth","maxDepth","rowIds","rowsById","forEach","id","splitId","split","Math","max","getPreExpandedRowModel","getSortedRowModel","getExpandedRowModel","_getExpandedRowModel","createRow","toggleExpanded","old","_expanded","exists","oldExpanded","rowId","_","rest","_table$options$getIsR","getIsRowExpanded","_table$options$getRow","_table$options$enable","_row$subRows","getRowCanExpand","enableExpanding","subRows","getToggleExpandedHandler","canExpand"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Filters.js","sources":["../../../src/features/Filters.ts"],"sourcesContent":["import { RowModel } from '..'\nimport { TableFeature } from '../core/table'\nimport { BuiltInFilterFn, filterFns } from '../filterFns'\nimport {\n Column,\n OnChangeFn,\n Table,\n Row,\n Updater,\n RowData,\n FilterMeta,\n FilterFns,\n} from '../types'\nimport { functionalUpdate, isFunction, makeStateUpdater } from '../utils'\n\nexport interface FiltersTableState {\n columnFilters: ColumnFiltersState\n globalFilter: any\n}\n\nexport type ColumnFiltersState = ColumnFilter[]\n\nexport interface ColumnFilter {\n id: string\n value: unknown\n}\n\nexport interface ResolvedColumnFilter<TData extends RowData> {\n id: string\n resolvedValue: unknown\n filterFn: FilterFn<TData>\n}\n\nexport interface FilterFn<TData extends RowData> {\n (\n row: Row<TData>,\n columnId: string,\n filterValue: any,\n addMeta: (meta: FilterMeta) => void\n ): boolean\n\n resolveFilterValue?: TransformFilterValueFn<TData>\n autoRemove?: ColumnFilterAutoRemoveTestFn<TData>\n}\n\nexport type TransformFilterValueFn<TData extends RowData> = (\n value: any,\n column?: Column<TData, unknown>\n) => unknown\n\nexport type ColumnFilterAutoRemoveTestFn<TData extends RowData> = (\n value: any,\n column?: Column<TData, unknown>\n) => boolean\n\nexport type CustomFilterFns<TData extends RowData> = Record<\n string,\n FilterFn<TData>\n>\n\nexport type FilterFnOption<TData extends RowData> =\n | 'auto'\n | BuiltInFilterFn\n | keyof FilterFns\n | FilterFn<TData>\n\nexport interface FiltersColumnDef<TData extends RowData> {\n filterFn?: FilterFnOption<TData>\n enableColumnFilter?: boolean\n enableGlobalFilter?: boolean\n}\n\nexport interface FiltersColumn<TData extends RowData> {\n getAutoFilterFn: () => FilterFn<TData> | undefined\n getFilterFn: () => FilterFn<TData> | undefined\n setFilterValue: (updater: Updater<any>) => void\n getCanFilter: () => boolean\n getCanGlobalFilter: () => boolean\n getFacetedRowModel: () => RowModel<TData>\n _getFacetedRowModel?: () => RowModel<TData>\n getIsFiltered: () => boolean\n getFilterValue: () => unknown\n getFilterIndex: () => number\n getFacetedUniqueValues: () => Map<any, number>\n _getFacetedUniqueValues?: () => Map<any, number>\n getFacetedMinMaxValues: () => undefined | [number, number]\n _getFacetedMinMaxValues?: () => undefined | [number, number]\n}\n\nexport interface FiltersRow<TData extends RowData> {\n columnFilters: Record<string, boolean>\n columnFiltersMeta: Record<string, FilterMeta>\n}\n\ninterface FiltersOptionsBase<TData extends RowData> {\n enableFilters?: boolean\n manualFiltering?: boolean\n filterFromLeafRows?: boolean\n maxLeafRowFilterDepth?: number\n getFilteredRowModel?: (table: Table<any>) => () => RowModel<any>\n\n // Column\n onColumnFiltersChange?: OnChangeFn<ColumnFiltersState>\n enableColumnFilters?: boolean\n\n // Global\n globalFilterFn?: FilterFnOption<TData>\n onGlobalFilterChange?: OnChangeFn<any>\n enableGlobalFilter?: boolean\n getColumnCanGlobalFilter?: (column: Column<TData, unknown>) => boolean\n\n // Faceting\n getFacetedRowModel?: (\n table: Table<TData>,\n columnId: string\n ) => () => RowModel<TData>\n getFacetedUniqueValues?: (\n table: Table<TData>,\n columnId: string\n ) => () => Map<any, number>\n getFacetedMinMaxValues?: (\n table: Table<TData>,\n columnId: string\n ) => () => undefined | [number, number]\n}\n\ntype ResolvedFilterFns = keyof FilterFns extends never\n ? {\n filterFns?: Record<string, FilterFn<any>>\n }\n : {\n filterFns: Record<keyof FilterFns, FilterFn<any>>\n }\n\nexport interface FiltersOptions<TData extends RowData>\n extends FiltersOptionsBase<TData>,\n ResolvedFilterFns {}\n\nexport interface FiltersInstance<TData extends RowData> {\n setColumnFilters: (updater: Updater<ColumnFiltersState>) => void\n\n resetColumnFilters: (defaultState?: boolean) => void\n\n // Column Filters\n getPreFilteredRowModel: () => RowModel<TData>\n getFilteredRowModel: () => RowModel<TData>\n _getFilteredRowModel?: () => RowModel<TData>\n\n // Global Filters\n setGlobalFilter: (updater: Updater<any>) => void\n resetGlobalFilter: (defaultState?: boolean) => void\n getGlobalAutoFilterFn: () => FilterFn<TData> | undefined\n getGlobalFilterFn: () => FilterFn<TData> | undefined\n getGlobalFacetedRowModel: () => RowModel<TData>\n _getGlobalFacetedRowModel?: () => RowModel<TData>\n getGlobalFacetedUniqueValues: () => Map<any, number>\n _getGlobalFacetedUniqueValues?: () => Map<any, number>\n getGlobalFacetedMinMaxValues: () => undefined | [number, number]\n _getGlobalFacetedMinMaxValues?: () => undefined | [number, number]\n}\n\n//\n\nexport const Filters: TableFeature = {\n getDefaultColumnDef: <TData extends RowData>(): FiltersColumnDef<TData> => {\n return {\n filterFn: 'auto',\n }\n },\n\n getInitialState: (state): FiltersTableState => {\n return {\n columnFilters: [],\n globalFilter: undefined,\n // filtersProgress: 1,\n // facetProgress: {},\n ...state,\n }\n },\n\n getDefaultOptions: <TData extends RowData>(\n table: Table<TData>\n ): FiltersOptions<TData> => {\n return {\n onColumnFiltersChange: makeStateUpdater('columnFilters', table),\n onGlobalFilterChange: makeStateUpdater('globalFilter', table),\n filterFromLeafRows: false,\n maxLeafRowFilterDepth: 100,\n globalFilterFn: 'auto',\n getColumnCanGlobalFilter: column => {\n const value = table\n .getCoreRowModel()\n .flatRows[0]?._getAllCellsByColumnId()\n [column.id]?.getValue()\n\n return typeof value === 'string' || typeof value === 'number'\n },\n } as FiltersOptions<TData>\n },\n\n createColumn: <TData extends RowData>(\n column: Column<TData, unknown>,\n table: Table<TData>\n ): FiltersColumn<TData> => {\n return {\n getAutoFilterFn: () => {\n const firstRow = table.getCoreRowModel().flatRows[0]\n\n const value = firstRow?.getValue(column.id)\n\n if (typeof value === 'string') {\n return filterFns.includesString\n }\n\n if (typeof value === 'number') {\n return filterFns.inNumberRange\n }\n\n if (typeof value === 'boolean') {\n return filterFns.equals\n }\n\n if (value !== null && typeof value === 'object') {\n return filterFns.equals\n }\n\n if (Array.isArray(value)) {\n return filterFns.arrIncludes\n }\n\n return filterFns.weakEquals\n },\n getFilterFn: () => {\n return isFunction(column.columnDef.filterFn)\n ? column.columnDef.filterFn\n : column.columnDef.filterFn === 'auto'\n ? column.getAutoFilterFn()\n // @ts-ignore \n : table.options.filterFns?.[column.columnDef.filterFn as string] ??\n filterFns[column.columnDef.filterFn as BuiltInFilterFn]\n },\n getCanFilter: () => {\n return (\n (column.columnDef.enableColumnFilter ?? true) &&\n (table.options.enableColumnFilters ?? true) &&\n (table.options.enableFilters ?? true) &&\n !!column.accessorFn\n )\n },\n\n getCanGlobalFilter: () => {\n return (\n (column.columnDef.enableGlobalFilter ?? true) &&\n (table.options.enableGlobalFilter ?? true) &&\n (table.options.enableFilters ?? true) &&\n (table.options.getColumnCanGlobalFilter?.(column) ?? true) &&\n !!column.accessorFn\n )\n },\n\n getIsFiltered: () => column.getFilterIndex() > -1,\n\n getFilterValue: () =>\n table.getState().columnFilters?.find(d => d.id === column.id)?.value,\n\n getFilterIndex: () =>\n table.getState().columnFilters?.findIndex(d => d.id === column.id) ??\n -1,\n\n setFilterValue: value => {\n table.setColumnFilters(old => {\n const filterFn = column.getFilterFn()\n const previousfilter = old?.find(d => d.id === column.id)\n\n const newFilter = functionalUpdate(\n value,\n previousfilter ? previousfilter.value : undefined\n )\n\n //\n if (\n shouldAutoRemoveFilter(\n filterFn as FilterFn<TData>,\n newFilter,\n column\n )\n ) {\n return old?.filter(d => d.id !== column.id) ?? []\n }\n\n const newFilterObj = { id: column.id, value: newFilter }\n\n if (previousfilter) {\n return (\n old?.map(d => {\n if (d.id === column.id) {\n return newFilterObj\n }\n return d\n }) ?? []\n )\n }\n\n if (old?.length) {\n return [...old, newFilterObj]\n }\n\n return [newFilterObj]\n })\n },\n _getFacetedRowModel:\n table.options.getFacetedRowModel &&\n table.options.getFacetedRowModel(table, column.id),\n getFacetedRowModel: () => {\n if (!column._getFacetedRowModel) {\n return table.getPreFilteredRowModel()\n }\n\n return column._getFacetedRowModel()\n },\n _getFacetedUniqueValues:\n table.options.getFacetedUniqueValues &&\n table.options.getFacetedUniqueValues(table, column.id),\n getFacetedUniqueValues: () => {\n if (!column._getFacetedUniqueValues) {\n return new Map()\n }\n\n return column._getFacetedUniqueValues()\n },\n _getFacetedMinMaxValues:\n table.options.getFacetedMinMaxValues &&\n table.options.getFacetedMinMaxValues(table, column.id),\n getFacetedMinMaxValues: () => {\n if (!column._getFacetedMinMaxValues) {\n return undefined\n }\n\n return column._getFacetedMinMaxValues()\n },\n // () => [column.getFacetedRowModel()],\n // facetedRowModel => getRowModelMinMaxValues(facetedRowModel, column.id),\n }\n },\n\n createRow: <TData extends RowData>(\n row: Row<TData>,\n table: Table<TData>\n ): FiltersRow<TData> => {\n return {\n columnFilters: {},\n columnFiltersMeta: {},\n }\n },\n\n createTable: <TData extends RowData>(\n table: Table<TData>\n ): FiltersInstance<TData> => {\n return {\n getGlobalAutoFilterFn: () => {\n return filterFns.includesString\n },\n\n getGlobalFilterFn: () => {\n const { globalFilterFn: globalFilterFn } = table.options\n\n return isFunction(globalFilterFn)\n ? globalFilterFn\n : globalFilterFn === 'auto'\n ? table.getGlobalAutoFilterFn()\n // @ts-ignore\n : table.options.filterFns?.[globalFilterFn as string] ??\n filterFns[globalFilterFn as BuiltInFilterFn]\n },\n\n setColumnFilters: (updater: Updater<ColumnFiltersState>) => {\n const leafColumns = table.getAllLeafColumns()\n\n const updateFn = (old: ColumnFiltersState) => {\n return functionalUpdate(updater, old)?.filter(filter => {\n const column = leafColumns.find(d => d.id === filter.id)\n\n if (column) {\n const filterFn = column.getFilterFn()\n\n if (shouldAutoRemoveFilter(filterFn, filter.value, column)) {\n return false\n }\n }\n\n return true\n })\n }\n\n table.options.onColumnFiltersChange?.(updateFn)\n },\n\n setGlobalFilter: updater => {\n table.options.onGlobalFilterChange?.(updater)\n },\n\n resetGlobalFilter: defaultState => {\n table.setGlobalFilter(\n defaultState ? undefined : table.initialState.globalFilter\n )\n },\n\n resetColumnFilters: defaultState => {\n table.setColumnFilters(\n defaultState ? [] : table.initialState?.columnFilters ?? []\n )\n },\n\n getPreFilteredRowModel: () => table.getCoreRowModel(),\n getFilteredRowModel: () => {\n if (!table._getFilteredRowModel && table.options.getFilteredRowModel) {\n table._getFilteredRowModel = table.options.getFilteredRowModel(table)\n }\n\n if (table.options.manualFiltering || !table._getFilteredRowModel) {\n return table.getPreFilteredRowModel()\n }\n\n return table._getFilteredRowModel()\n },\n\n _getGlobalFacetedRowModel:\n table.options.getFacetedRowModel &&\n table.options.getFacetedRowModel(table, '__global__'),\n\n getGlobalFacetedRowModel: () => {\n if (table.options.manualFiltering || !table._getGlobalFacetedRowModel) {\n return table.getPreFilteredRowModel()\n }\n\n return table._getGlobalFacetedRowModel()\n },\n\n _getGlobalFacetedUniqueValues:\n table.options.getFacetedUniqueValues &&\n table.options.getFacetedUniqueValues(table, '__global__'),\n getGlobalFacetedUniqueValues: () => {\n if (!table._getGlobalFacetedUniqueValues) {\n return new Map()\n }\n\n return table._getGlobalFacetedUniqueValues()\n },\n\n _getGlobalFacetedMinMaxValues:\n table.options.getFacetedMinMaxValues &&\n table.options.getFacetedMinMaxValues(table, '__global__'),\n getGlobalFacetedMinMaxValues: () => {\n if (!table._getGlobalFacetedMinMaxValues) {\n return\n }\n\n return table._getGlobalFacetedMinMaxValues()\n },\n }\n },\n}\n\nexport function shouldAutoRemoveFilter<TData extends RowData>(\n filterFn?: FilterFn<TData>,\n value?: any,\n column?: Column<TData, unknown>\n) {\n return (\n (filterFn && filterFn.autoRemove\n ? filterFn.autoRemove(value, column)\n : false) ||\n typeof value === 'undefined' ||\n (typeof value === 'string' && !value)\n )\n}\n"],"names":["Filters","getDefaultColumnDef","filterFn","getInitialState","state","columnFilters","globalFilter","undefined","getDefaultOptions","table","onColumnFiltersChange","makeStateUpdater","onGlobalFilterChange","filterFromLeafRows","maxLeafRowFilterDepth","globalFilterFn","getColumnCanGlobalFilter","column","_table$getCoreRowMode","_table$getCoreRowMode2","value","getCoreRowModel","flatRows","_getAllCellsByColumnId","id","getValue","createColumn","getAutoFilterFn","firstRow","filterFns","includesString","inNumberRange","equals","Array","isArray","arrIncludes","weakEquals","getFilterFn","_table$options$filter","_table$options$filter2","isFunction","columnDef","options","getCanFilter","_column$columnDef$ena","_table$options$enable","_table$options$enable2","enableColumnFilter","enableColumnFilters","enableFilters","accessorFn","getCanGlobalFilter","_column$columnDef$ena2","_table$options$enable3","_table$options$enable4","_table$options$getCol","enableGlobalFilter","getIsFiltered","getFilterIndex","getFilterValue","_table$getState$colum","_table$getState$colum2","getState","find","d","_table$getState$colum3","_table$getState$colum4","findIndex","setFilterValue","setColumnFilters","old","previousfilter","newFilter","functionalUpdate","shouldAutoRemoveFilter","_old$filter","filter","newFilterObj","_old$map","map","length","_getFacetedRowModel","getFacetedRowModel","getPreFilteredRowModel","_getFacetedUniqueValues","getFacetedUniqueValues","Map","_getFacetedMinMaxValues","getFacetedMinMaxValues","createRow","row","columnFiltersMeta","createTable","getGlobalAutoFilterFn","getGlobalFilterFn","_table$options$filter3","_table$options$filter4","updater","leafColumns","getAllLeafColumns","updateFn","_functionalUpdate","setGlobalFilter","resetGlobalFilter","defaultState","initialState","resetColumnFilters","_table$initialState$c","_table$initialState","getFilteredRowModel","_getFilteredRowModel","manualFiltering","_getGlobalFacetedRowModel","getGlobalFacetedRowModel","_getGlobalFacetedUniqueValues","getGlobalFacetedUniqueValues","_getGlobalFacetedMinMaxValues","getGlobalFacetedMinMaxValues","autoRemove"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Filters.js","sources":["../../../src/features/Filters.ts"],"sourcesContent":["import { RowModel } from '..'\nimport { TableFeature } from '../core/table'\nimport { BuiltInFilterFn, filterFns } from '../filterFns'\nimport {\n Column,\n OnChangeFn,\n Table,\n Row,\n Updater,\n RowData,\n FilterMeta,\n FilterFns,\n} from '../types'\nimport { functionalUpdate, isFunction, makeStateUpdater } from '../utils'\n\nexport interface FiltersTableState {\n columnFilters: ColumnFiltersState\n globalFilter: any\n}\n\nexport type ColumnFiltersState = ColumnFilter[]\n\nexport interface ColumnFilter {\n id: string\n value: unknown\n}\n\nexport interface ResolvedColumnFilter<TData extends RowData> {\n id: string\n resolvedValue: unknown\n filterFn: FilterFn<TData>\n}\n\nexport interface FilterFn<TData extends RowData> {\n (\n row: Row<TData>,\n columnId: string,\n filterValue: any,\n addMeta: (meta: FilterMeta) => void\n ): boolean\n\n resolveFilterValue?: TransformFilterValueFn<TData>\n autoRemove?: ColumnFilterAutoRemoveTestFn<TData>\n}\n\nexport type TransformFilterValueFn<TData extends RowData> = (\n value: any,\n column?: Column<TData, unknown>\n) => unknown\n\nexport type ColumnFilterAutoRemoveTestFn<TData extends RowData> = (\n value: any,\n column?: Column<TData, unknown>\n) => boolean\n\nexport type CustomFilterFns<TData extends RowData> = Record<\n string,\n FilterFn<TData>\n>\n\nexport type FilterFnOption<TData extends RowData> =\n | 'auto'\n | BuiltInFilterFn\n | keyof FilterFns\n | FilterFn<TData>\n\nexport interface FiltersColumnDef<TData extends RowData> {\n filterFn?: FilterFnOption<TData>\n enableColumnFilter?: boolean\n enableGlobalFilter?: boolean\n}\n\nexport interface FiltersColumn<TData extends RowData> {\n getAutoFilterFn: () => FilterFn<TData> | undefined\n getFilterFn: () => FilterFn<TData> | undefined\n setFilterValue: (updater: Updater<any>) => void\n getCanFilter: () => boolean\n getCanGlobalFilter: () => boolean\n getFacetedRowModel: () => RowModel<TData>\n _getFacetedRowModel?: () => RowModel<TData>\n getIsFiltered: () => boolean\n getFilterValue: () => unknown\n getFilterIndex: () => number\n getFacetedUniqueValues: () => Map<any, number>\n _getFacetedUniqueValues?: () => Map<any, number>\n getFacetedMinMaxValues: () => undefined | [number, number]\n _getFacetedMinMaxValues?: () => undefined | [number, number]\n}\n\nexport interface FiltersRow<TData extends RowData> {\n columnFilters: Record<string, boolean>\n columnFiltersMeta: Record<string, FilterMeta>\n}\n\ninterface FiltersOptionsBase<TData extends RowData> {\n enableFilters?: boolean\n manualFiltering?: boolean\n filterFromLeafRows?: boolean\n maxLeafRowFilterDepth?: number\n getFilteredRowModel?: (table: Table<any>) => () => RowModel<any>\n\n // Column\n onColumnFiltersChange?: OnChangeFn<ColumnFiltersState>\n enableColumnFilters?: boolean\n\n // Global\n globalFilterFn?: FilterFnOption<TData>\n onGlobalFilterChange?: OnChangeFn<any>\n enableGlobalFilter?: boolean\n getColumnCanGlobalFilter?: (column: Column<TData, unknown>) => boolean\n\n // Faceting\n getFacetedRowModel?: (\n table: Table<TData>,\n columnId: string\n ) => () => RowModel<TData>\n getFacetedUniqueValues?: (\n table: Table<TData>,\n columnId: string\n ) => () => Map<any, number>\n getFacetedMinMaxValues?: (\n table: Table<TData>,\n columnId: string\n ) => () => undefined | [number, number]\n}\n\ntype ResolvedFilterFns = keyof FilterFns extends never\n ? {\n filterFns?: Record<string, FilterFn<any>>\n }\n : {\n filterFns: Record<keyof FilterFns, FilterFn<any>>\n }\n\nexport interface FiltersOptions<TData extends RowData>\n extends FiltersOptionsBase<TData>,\n ResolvedFilterFns {}\n\nexport interface FiltersInstance<TData extends RowData> {\n setColumnFilters: (updater: Updater<ColumnFiltersState>) => void\n\n resetColumnFilters: (defaultState?: boolean) => void\n\n // Column Filters\n getPreFilteredRowModel: () => RowModel<TData>\n getFilteredRowModel: () => RowModel<TData>\n _getFilteredRowModel?: () => RowModel<TData>\n\n // Global Filters\n setGlobalFilter: (updater: Updater<any>) => void\n resetGlobalFilter: (defaultState?: boolean) => void\n getGlobalAutoFilterFn: () => FilterFn<TData> | undefined\n getGlobalFilterFn: () => FilterFn<TData> | undefined\n getGlobalFacetedRowModel: () => RowModel<TData>\n _getGlobalFacetedRowModel?: () => RowModel<TData>\n getGlobalFacetedUniqueValues: () => Map<any, number>\n _getGlobalFacetedUniqueValues?: () => Map<any, number>\n getGlobalFacetedMinMaxValues: () => undefined | [number, number]\n _getGlobalFacetedMinMaxValues?: () => undefined | [number, number]\n}\n\n//\n\nexport const Filters: TableFeature = {\n getDefaultColumnDef: <TData extends RowData>(): FiltersColumnDef<TData> => {\n return {\n filterFn: 'auto',\n }\n },\n\n getInitialState: (state): FiltersTableState => {\n return {\n columnFilters: [],\n globalFilter: undefined,\n // filtersProgress: 1,\n // facetProgress: {},\n ...state,\n }\n },\n\n getDefaultOptions: <TData extends RowData>(\n table: Table<TData>\n ): FiltersOptions<TData> => {\n return {\n onColumnFiltersChange: makeStateUpdater('columnFilters', table),\n onGlobalFilterChange: makeStateUpdater('globalFilter', table),\n filterFromLeafRows: false,\n maxLeafRowFilterDepth: 100,\n globalFilterFn: 'auto',\n getColumnCanGlobalFilter: column => {\n const value = table\n .getCoreRowModel()\n .flatRows[0]?._getAllCellsByColumnId()\n [column.id]?.getValue()\n\n return typeof value === 'string' || typeof value === 'number'\n },\n } as FiltersOptions<TData>\n },\n\n createColumn: <TData extends RowData>(\n column: Column<TData, unknown>,\n table: Table<TData>\n ): FiltersColumn<TData> => {\n return {\n getAutoFilterFn: () => {\n const firstRow = table.getCoreRowModel().flatRows[0]\n\n const value = firstRow?.getValue(column.id)\n\n if (typeof value === 'string') {\n return filterFns.includesString\n }\n\n if (typeof value === 'number') {\n return filterFns.inNumberRange\n }\n\n if (typeof value === 'boolean') {\n return filterFns.equals\n }\n\n if (value !== null && typeof value === 'object') {\n return filterFns.equals\n }\n\n if (Array.isArray(value)) {\n return filterFns.arrIncludes\n }\n\n return filterFns.weakEquals\n },\n getFilterFn: () => {\n return isFunction(column.columnDef.filterFn)\n ? column.columnDef.filterFn\n : column.columnDef.filterFn === 'auto'\n ? column.getAutoFilterFn()\n // @ts-ignore \n : table.options.filterFns?.[column.columnDef.filterFn as string] ??\n filterFns[column.columnDef.filterFn as BuiltInFilterFn]\n },\n getCanFilter: () => {\n return (\n (column.columnDef.enableColumnFilter ?? true) &&\n (table.options.enableColumnFilters ?? true) &&\n (table.options.enableFilters ?? true) &&\n !!column.accessorFn\n )\n },\n\n getCanGlobalFilter: () => {\n return (\n (column.columnDef.enableGlobalFilter ?? true) &&\n (table.options.enableGlobalFilter ?? true) &&\n (table.options.enableFilters ?? true) &&\n (table.options.getColumnCanGlobalFilter?.(column) ?? true) &&\n !!column.accessorFn\n )\n },\n\n getIsFiltered: () => column.getFilterIndex() > -1,\n\n getFilterValue: () =>\n table.getState().columnFilters?.find(d => d.id === column.id)?.value,\n\n getFilterIndex: () =>\n table.getState().columnFilters?.findIndex(d => d.id === column.id) ??\n -1,\n\n setFilterValue: value => {\n table.setColumnFilters(old => {\n const filterFn = column.getFilterFn()\n const previousfilter = old?.find(d => d.id === column.id)\n\n const newFilter = functionalUpdate(\n value,\n previousfilter ? previousfilter.value : undefined\n )\n\n //\n if (\n shouldAutoRemoveFilter(\n filterFn as FilterFn<TData>,\n newFilter,\n column\n )\n ) {\n return old?.filter(d => d.id !== column.id) ?? []\n }\n\n const newFilterObj = { id: column.id, value: newFilter }\n\n if (previousfilter) {\n return (\n old?.map(d => {\n if (d.id === column.id) {\n return newFilterObj\n }\n return d\n }) ?? []\n )\n }\n\n if (old?.length) {\n return [...old, newFilterObj]\n }\n\n return [newFilterObj]\n })\n },\n _getFacetedRowModel:\n table.options.getFacetedRowModel &&\n table.options.getFacetedRowModel(table, column.id),\n getFacetedRowModel: () => {\n if (!column._getFacetedRowModel) {\n return table.getPreFilteredRowModel()\n }\n\n return column._getFacetedRowModel()\n },\n _getFacetedUniqueValues:\n table.options.getFacetedUniqueValues &&\n table.options.getFacetedUniqueValues(table, column.id),\n getFacetedUniqueValues: () => {\n if (!column._getFacetedUniqueValues) {\n return new Map()\n }\n\n return column._getFacetedUniqueValues()\n },\n _getFacetedMinMaxValues:\n table.options.getFacetedMinMaxValues &&\n table.options.getFacetedMinMaxValues(table, column.id),\n getFacetedMinMaxValues: () => {\n if (!column._getFacetedMinMaxValues) {\n return undefined\n }\n\n return column._getFacetedMinMaxValues()\n },\n // () => [column.getFacetedRowModel()],\n // facetedRowModel => getRowModelMinMaxValues(facetedRowModel, column.id),\n }\n },\n\n createRow: <TData extends RowData>(\n row: Row<TData>,\n table: Table<TData>\n ): FiltersRow<TData> => {\n return {\n columnFilters: {},\n columnFiltersMeta: {},\n }\n },\n\n createTable: <TData extends RowData>(\n table: Table<TData>\n ): FiltersInstance<TData> => {\n return {\n getGlobalAutoFilterFn: () => {\n return filterFns.includesString\n },\n\n getGlobalFilterFn: () => {\n const { globalFilterFn: globalFilterFn } = table.options\n\n return isFunction(globalFilterFn)\n ? globalFilterFn\n : globalFilterFn === 'auto'\n ? table.getGlobalAutoFilterFn()\n // @ts-ignore\n : table.options.filterFns?.[globalFilterFn as string] ??\n filterFns[globalFilterFn as BuiltInFilterFn]\n },\n\n setColumnFilters: (updater: Updater<ColumnFiltersState>) => {\n const leafColumns = table.getAllLeafColumns()\n\n const updateFn = (old: ColumnFiltersState) => {\n return functionalUpdate(updater, old)?.filter(filter => {\n const column = leafColumns.find(d => d.id === filter.id)\n\n if (column) {\n const filterFn = column.getFilterFn()\n\n if (shouldAutoRemoveFilter(filterFn, filter.value, column)) {\n return false\n }\n }\n\n return true\n })\n }\n\n table.options.onColumnFiltersChange?.(updateFn)\n },\n\n setGlobalFilter: updater => {\n table.options.onGlobalFilterChange?.(updater)\n },\n\n resetGlobalFilter: defaultState => {\n table.setGlobalFilter(\n defaultState ? undefined : table.initialState.globalFilter\n )\n },\n\n resetColumnFilters: defaultState => {\n table.setColumnFilters(\n defaultState ? [] : table.initialState?.columnFilters ?? []\n )\n },\n\n getPreFilteredRowModel: () => table.getCoreRowModel(),\n getFilteredRowModel: () => {\n if (!table._getFilteredRowModel && table.options.getFilteredRowModel) {\n table._getFilteredRowModel = table.options.getFilteredRowModel(table)\n }\n\n if (table.options.manualFiltering || !table._getFilteredRowModel) {\n return table.getPreFilteredRowModel()\n }\n\n return table._getFilteredRowModel()\n },\n\n _getGlobalFacetedRowModel:\n table.options.getFacetedRowModel &&\n table.options.getFacetedRowModel(table, '__global__'),\n\n getGlobalFacetedRowModel: () => {\n if (table.options.manualFiltering || !table._getGlobalFacetedRowModel) {\n return table.getPreFilteredRowModel()\n }\n\n return table._getGlobalFacetedRowModel()\n },\n\n _getGlobalFacetedUniqueValues:\n table.options.getFacetedUniqueValues &&\n table.options.getFacetedUniqueValues(table, '__global__'),\n getGlobalFacetedUniqueValues: () => {\n if (!table._getGlobalFacetedUniqueValues) {\n return new Map()\n }\n\n return table._getGlobalFacetedUniqueValues()\n },\n\n _getGlobalFacetedMinMaxValues:\n table.options.getFacetedMinMaxValues &&\n table.options.getFacetedMinMaxValues(table, '__global__'),\n getGlobalFacetedMinMaxValues: () => {\n if (!table._getGlobalFacetedMinMaxValues) {\n return\n }\n\n return table._getGlobalFacetedMinMaxValues()\n },\n }\n },\n}\n\nexport function shouldAutoRemoveFilter<TData extends RowData>(\n filterFn?: FilterFn<TData>,\n value?: any,\n column?: Column<TData, unknown>\n) {\n return (\n (filterFn && filterFn.autoRemove\n ? filterFn.autoRemove(value, column)\n : false) ||\n typeof value === 'undefined' ||\n (typeof value === 'string' && !value)\n )\n}\n"],"names":["Filters","getDefaultColumnDef","filterFn","getInitialState","state","columnFilters","globalFilter","undefined","getDefaultOptions","table","onColumnFiltersChange","makeStateUpdater","onGlobalFilterChange","filterFromLeafRows","maxLeafRowFilterDepth","globalFilterFn","getColumnCanGlobalFilter","column","_table$getCoreRowMode","_table$getCoreRowMode2","value","getCoreRowModel","flatRows","_getAllCellsByColumnId","id","getValue","createColumn","getAutoFilterFn","firstRow","filterFns","includesString","inNumberRange","equals","Array","isArray","arrIncludes","weakEquals","getFilterFn","_table$options$filter","_table$options$filter2","isFunction","columnDef","options","getCanFilter","_column$columnDef$ena","_table$options$enable","_table$options$enable2","enableColumnFilter","enableColumnFilters","enableFilters","accessorFn","getCanGlobalFilter","_column$columnDef$ena2","_table$options$enable3","_table$options$enable4","_table$options$getCol","enableGlobalFilter","getIsFiltered","getFilterIndex","getFilterValue","_table$getState$colum","_table$getState$colum2","getState","find","d","_table$getState$colum3","_table$getState$colum4","findIndex","setFilterValue","setColumnFilters","old","previousfilter","newFilter","functionalUpdate","shouldAutoRemoveFilter","_old$filter","filter","newFilterObj","_old$map","map","length","_getFacetedRowModel","getFacetedRowModel","getPreFilteredRowModel","_getFacetedUniqueValues","getFacetedUniqueValues","Map","_getFacetedMinMaxValues","getFacetedMinMaxValues","createRow","row","columnFiltersMeta","createTable","getGlobalAutoFilterFn","getGlobalFilterFn","_table$options$filter3","_table$options$filter4","updater","leafColumns","getAllLeafColumns","updateFn","_functionalUpdate","setGlobalFilter","resetGlobalFilter","defaultState","initialState","resetColumnFilters","_table$initialState$c","_table$initialState","getFilteredRowModel","_getFilteredRowModel","manualFiltering","_getGlobalFacetedRowModel","getGlobalFacetedRowModel","_getGlobalFacetedUniqueValues","getGlobalFacetedUniqueValues","_getGlobalFacetedMinMaxValues","getGlobalFacetedMinMaxValues","autoRemove"],"mappings":"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"}
|
|
@@ -13,6 +13,7 @@ export interface GroupingColumnDef<TData extends RowData, TValue> {
|
|
|
13
13
|
aggregationFn?: AggregationFnOption<TData>;
|
|
14
14
|
aggregatedCell?: ColumnDefTemplate<ReturnType<Cell<TData, TValue>['getContext']>>;
|
|
15
15
|
enableGrouping?: boolean;
|
|
16
|
+
getGroupingValue?: (row: TData) => any;
|
|
16
17
|
}
|
|
17
18
|
export interface GroupingColumn<TData extends RowData> {
|
|
18
19
|
getCanGroup: () => boolean;
|
|
@@ -27,6 +28,7 @@ export interface GroupingRow {
|
|
|
27
28
|
groupingColumnId?: string;
|
|
28
29
|
groupingValue?: unknown;
|
|
29
30
|
getIsGrouped: () => boolean;
|
|
31
|
+
getGroupingValue: (columnId: string) => unknown;
|
|
30
32
|
_groupingValuesCache: Record<string, any>;
|
|
31
33
|
}
|
|
32
34
|
export interface GroupingCell {
|
|
@@ -107,9 +107,20 @@ const Grouping = {
|
|
|
107
107
|
}
|
|
108
108
|
};
|
|
109
109
|
},
|
|
110
|
-
createRow: row => {
|
|
110
|
+
createRow: (row, table) => {
|
|
111
111
|
return {
|
|
112
112
|
getIsGrouped: () => !!row.groupingColumnId,
|
|
113
|
+
getGroupingValue: columnId => {
|
|
114
|
+
if (row._groupingValuesCache.hasOwnProperty(columnId)) {
|
|
115
|
+
return row._groupingValuesCache[columnId];
|
|
116
|
+
}
|
|
117
|
+
const column = table.getColumn(columnId);
|
|
118
|
+
if (!(column != null && column.columnDef.getGroupingValue)) {
|
|
119
|
+
return row.getValue(columnId);
|
|
120
|
+
}
|
|
121
|
+
row._groupingValuesCache[columnId] = column.columnDef.getGroupingValue(row.original);
|
|
122
|
+
return row._groupingValuesCache[columnId];
|
|
123
|
+
},
|
|
113
124
|
_groupingValuesCache: {}
|
|
114
125
|
};
|
|
115
126
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Grouping.js","sources":["../../../src/features/Grouping.ts"],"sourcesContent":["import { RowModel } from '..'\nimport { BuiltInAggregationFn, aggregationFns } from '../aggregationFns'\nimport { TableFeature } from '../core/table'\nimport {\n Cell,\n Column,\n OnChangeFn,\n Table,\n Row,\n Updater,\n ColumnDefTemplate,\n RowData,\n AggregationFns,\n} from '../types'\nimport { isFunction, makeStateUpdater } from '../utils'\n\nexport type GroupingState = string[]\n\nexport interface GroupingTableState {\n grouping: GroupingState\n}\n\nexport type AggregationFn<TData extends RowData> = (\n columnId: string,\n leafRows: Row<TData>[],\n childRows: Row<TData>[]\n) => any\n\nexport type CustomAggregationFns = Record<string, AggregationFn<any>>\n\nexport type AggregationFnOption<TData extends RowData> =\n | 'auto'\n | keyof AggregationFns\n | BuiltInAggregationFn\n | AggregationFn<TData>\n\nexport interface GroupingColumnDef<TData extends RowData, TValue> {\n aggregationFn?: AggregationFnOption<TData>\n aggregatedCell?: ColumnDefTemplate<\n ReturnType<Cell<TData, TValue>['getContext']>\n >\n enableGrouping?: boolean\n}\n\nexport interface GroupingColumn<TData extends RowData> {\n getCanGroup: () => boolean\n getIsGrouped: () => boolean\n getGroupedIndex: () => number\n toggleGrouping: () => void\n getToggleGroupingHandler: () => () => void\n getAutoAggregationFn: () => AggregationFn<TData> | undefined\n getAggregationFn: () => AggregationFn<TData> | undefined\n}\n\nexport interface GroupingRow {\n groupingColumnId?: string\n groupingValue?: unknown\n getIsGrouped: () => boolean\n _groupingValuesCache: Record<string, any>\n}\n\nexport interface GroupingCell {\n getIsGrouped: () => boolean\n getIsPlaceholder: () => boolean\n getIsAggregated: () => boolean\n}\n\nexport interface ColumnDefaultOptions {\n // Column\n onGroupingChange: OnChangeFn<GroupingState>\n enableGrouping: boolean\n}\n\ninterface GroupingOptionsBase {\n manualGrouping?: boolean\n onGroupingChange?: OnChangeFn<GroupingState>\n enableGrouping?: boolean\n getGroupedRowModel?: (table: Table<any>) => () => RowModel<any>\n groupedColumnMode?: false | 'reorder' | 'remove'\n}\n\ntype ResolvedAggregationFns = keyof AggregationFns extends never\n ? {\n aggregationFns?: Record<string, AggregationFn<any>>\n }\n : {\n aggregationFns: Record<keyof AggregationFns, AggregationFn<any>>\n }\n\nexport interface GroupingOptions\n extends GroupingOptionsBase,\n ResolvedAggregationFns {}\n\nexport type GroupingColumnMode = false | 'reorder' | 'remove'\n\nexport interface GroupingInstance<TData extends RowData> {\n setGrouping: (updater: Updater<GroupingState>) => void\n resetGrouping: (defaultState?: boolean) => void\n getPreGroupedRowModel: () => RowModel<TData>\n getGroupedRowModel: () => RowModel<TData>\n _getGroupedRowModel?: () => RowModel<TData>\n}\n\n//\n\nexport const Grouping: TableFeature = {\n getDefaultColumnDef: <TData extends RowData>(): GroupingColumnDef<\n TData,\n unknown\n > => {\n return {\n aggregatedCell: props => (props.getValue() as any)?.toString?.() ?? null,\n aggregationFn: 'auto',\n }\n },\n\n getInitialState: (state): GroupingTableState => {\n return {\n grouping: [],\n ...state,\n }\n },\n\n getDefaultOptions: <TData extends RowData>(\n table: Table<TData>\n ): GroupingOptions => {\n return {\n onGroupingChange: makeStateUpdater('grouping', table),\n groupedColumnMode: 'reorder',\n }\n },\n\n createColumn: <TData extends RowData, TValue>(\n column: Column<TData, TValue>,\n table: Table<TData>\n ): GroupingColumn<TData> => {\n return {\n toggleGrouping: () => {\n table.setGrouping(old => {\n // Find any existing grouping for this column\n if (old?.includes(column.id)) {\n return old.filter(d => d !== column.id)\n }\n\n return [...(old ?? []), column.id]\n })\n },\n\n getCanGroup: () => {\n return (\n column.columnDef.enableGrouping ??\n true ??\n table.options.enableGrouping ??\n true ??\n !!column.accessorFn\n )\n },\n\n getIsGrouped: () => {\n return table.getState().grouping?.includes(column.id)\n },\n\n getGroupedIndex: () => table.getState().grouping?.indexOf(column.id),\n\n getToggleGroupingHandler: () => {\n const canGroup = column.getCanGroup()\n\n return () => {\n if (!canGroup) return\n column.toggleGrouping()\n }\n },\n getAutoAggregationFn: () => {\n const firstRow = table.getCoreRowModel().flatRows[0]\n\n const value = firstRow?.getValue(column.id)\n\n if (typeof value === 'number') {\n return aggregationFns.sum\n }\n\n if (Object.prototype.toString.call(value) === '[object Date]') {\n return aggregationFns.extent\n }\n },\n getAggregationFn: () => {\n if (!column) {\n throw new Error()\n }\n\n return isFunction(column.columnDef.aggregationFn)\n ? column.columnDef.aggregationFn\n : column.columnDef.aggregationFn === 'auto'\n ? column.getAutoAggregationFn()\n : table.options.aggregationFns?.[\n column.columnDef.aggregationFn as string\n ] ??\n aggregationFns[\n column.columnDef.aggregationFn as BuiltInAggregationFn\n ]\n },\n }\n },\n\n createTable: <TData extends RowData>(\n table: Table<TData>\n ): GroupingInstance<TData> => {\n return {\n setGrouping: updater => table.options.onGroupingChange?.(updater),\n\n resetGrouping: defaultState => {\n table.setGrouping(\n defaultState ? [] : table.initialState?.grouping ?? []\n )\n },\n\n getPreGroupedRowModel: () => table.getFilteredRowModel(),\n getGroupedRowModel: () => {\n if (!table._getGroupedRowModel && table.options.getGroupedRowModel) {\n table._getGroupedRowModel = table.options.getGroupedRowModel(table)\n }\n\n if (table.options.manualGrouping || !table._getGroupedRowModel) {\n return table.getPreGroupedRowModel()\n }\n\n return table._getGroupedRowModel()\n },\n }\n },\n\n createRow: <TData extends RowData>(row: Row<TData>): GroupingRow => {\n return {\n getIsGrouped: () => !!row.groupingColumnId,\n _groupingValuesCache: {},\n }\n },\n\n createCell: <TData extends RowData, TValue>(\n cell: Cell<TData, TValue>,\n column: Column<TData, TValue>,\n row: Row<TData>,\n table: Table<TData>\n ): GroupingCell => {\n const getRenderValue = () =>\n cell.getValue() ?? table.options.renderFallbackValue\n\n return {\n getIsGrouped: () =>\n column.getIsGrouped() && column.id === row.groupingColumnId,\n getIsPlaceholder: () => !cell.getIsGrouped() && column.getIsGrouped(),\n getIsAggregated: () =>\n !cell.getIsGrouped() &&\n !cell.getIsPlaceholder() &&\n !!row.subRows?.length,\n }\n },\n}\n\nexport function orderColumns<TData extends RowData>(\n leafColumns: Column<TData, unknown>[],\n grouping: string[],\n groupedColumnMode?: GroupingColumnMode\n) {\n if (!grouping?.length || !groupedColumnMode) {\n return leafColumns\n }\n\n const nonGroupingColumns = leafColumns.filter(\n col => !grouping.includes(col.id)\n )\n\n if (groupedColumnMode === 'remove') {\n return nonGroupingColumns\n }\n\n const groupingColumns = grouping\n .map(g => leafColumns.find(col => col.id === g)!)\n .filter(Boolean)\n\n return [...groupingColumns, ...nonGroupingColumns]\n}\n"],"names":["Grouping","getDefaultColumnDef","aggregatedCell","props","_toString","_props$getValue","getValue","toString","aggregationFn","getInitialState","state","grouping","getDefaultOptions","table","onGroupingChange","makeStateUpdater","groupedColumnMode","createColumn","column","toggleGrouping","setGrouping","old","includes","id","filter","d","getCanGroup","_ref","_ref2","_ref3","_column$columnDef$ena","columnDef","enableGrouping","options","accessorFn","getIsGrouped","_table$getState$group","getState","getGroupedIndex","_table$getState$group2","indexOf","getToggleGroupingHandler","canGroup","getAutoAggregationFn","firstRow","getCoreRowModel","flatRows","value","aggregationFns","sum","Object","prototype","call","extent","getAggregationFn","_table$options$aggreg","_table$options$aggreg2","Error","isFunction","createTable","updater","resetGrouping","defaultState","_table$initialState$g","_table$initialState","initialState","getPreGroupedRowModel","getFilteredRowModel","getGroupedRowModel","_getGroupedRowModel","manualGrouping","createRow","row","groupingColumnId","_groupingValuesCache","createCell","cell","getIsPlaceholder","getIsAggregated","_row$subRows","subRows","length","orderColumns","leafColumns","nonGroupingColumns","col","groupingColumns","map","g","find","Boolean"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Grouping.js","sources":["../../../src/features/Grouping.ts"],"sourcesContent":["import { RowModel } from '..'\nimport { BuiltInAggregationFn, aggregationFns } from '../aggregationFns'\nimport { TableFeature } from '../core/table'\nimport {\n Cell,\n Column,\n OnChangeFn,\n Table,\n Row,\n Updater,\n ColumnDefTemplate,\n RowData,\n AggregationFns,\n} from '../types'\nimport { isFunction, makeStateUpdater } from '../utils'\n\nexport type GroupingState = string[]\n\nexport interface GroupingTableState {\n grouping: GroupingState\n}\n\nexport type AggregationFn<TData extends RowData> = (\n columnId: string,\n leafRows: Row<TData>[],\n childRows: Row<TData>[]\n) => any\n\nexport type CustomAggregationFns = Record<string, AggregationFn<any>>\n\nexport type AggregationFnOption<TData extends RowData> =\n | 'auto'\n | keyof AggregationFns\n | BuiltInAggregationFn\n | AggregationFn<TData>\n\nexport interface GroupingColumnDef<TData extends RowData, TValue> {\n aggregationFn?: AggregationFnOption<TData>\n aggregatedCell?: ColumnDefTemplate<\n ReturnType<Cell<TData, TValue>['getContext']>\n >\n enableGrouping?: boolean\n getGroupingValue?: (row: TData) => any\n}\n\nexport interface GroupingColumn<TData extends RowData> {\n getCanGroup: () => boolean\n getIsGrouped: () => boolean\n getGroupedIndex: () => number\n toggleGrouping: () => void\n getToggleGroupingHandler: () => () => void\n getAutoAggregationFn: () => AggregationFn<TData> | undefined\n getAggregationFn: () => AggregationFn<TData> | undefined\n}\n\nexport interface GroupingRow {\n groupingColumnId?: string\n groupingValue?: unknown\n getIsGrouped: () => boolean\n getGroupingValue: (columnId: string) => unknown\n _groupingValuesCache: Record<string, any>\n}\n\nexport interface GroupingCell {\n getIsGrouped: () => boolean\n getIsPlaceholder: () => boolean\n getIsAggregated: () => boolean\n}\n\nexport interface ColumnDefaultOptions {\n // Column\n onGroupingChange: OnChangeFn<GroupingState>\n enableGrouping: boolean\n}\n\ninterface GroupingOptionsBase {\n manualGrouping?: boolean\n onGroupingChange?: OnChangeFn<GroupingState>\n enableGrouping?: boolean\n getGroupedRowModel?: (table: Table<any>) => () => RowModel<any>\n groupedColumnMode?: false | 'reorder' | 'remove'\n}\n\ntype ResolvedAggregationFns = keyof AggregationFns extends never\n ? {\n aggregationFns?: Record<string, AggregationFn<any>>\n }\n : {\n aggregationFns: Record<keyof AggregationFns, AggregationFn<any>>\n }\n\nexport interface GroupingOptions\n extends GroupingOptionsBase,\n ResolvedAggregationFns {}\n\nexport type GroupingColumnMode = false | 'reorder' | 'remove'\n\nexport interface GroupingInstance<TData extends RowData> {\n setGrouping: (updater: Updater<GroupingState>) => void\n resetGrouping: (defaultState?: boolean) => void\n getPreGroupedRowModel: () => RowModel<TData>\n getGroupedRowModel: () => RowModel<TData>\n _getGroupedRowModel?: () => RowModel<TData>\n}\n\n//\n\nexport const Grouping: TableFeature = {\n getDefaultColumnDef: <TData extends RowData>(): GroupingColumnDef<\n TData,\n unknown\n > => {\n return {\n aggregatedCell: props => (props.getValue() as any)?.toString?.() ?? null,\n aggregationFn: 'auto',\n }\n },\n\n getInitialState: (state): GroupingTableState => {\n return {\n grouping: [],\n ...state,\n }\n },\n\n getDefaultOptions: <TData extends RowData>(\n table: Table<TData>\n ): GroupingOptions => {\n return {\n onGroupingChange: makeStateUpdater('grouping', table),\n groupedColumnMode: 'reorder',\n }\n },\n\n createColumn: <TData extends RowData, TValue>(\n column: Column<TData, TValue>,\n table: Table<TData>\n ): GroupingColumn<TData> => {\n return {\n toggleGrouping: () => {\n table.setGrouping(old => {\n // Find any existing grouping for this column\n if (old?.includes(column.id)) {\n return old.filter(d => d !== column.id)\n }\n\n return [...(old ?? []), column.id]\n })\n },\n\n getCanGroup: () => {\n return (\n column.columnDef.enableGrouping ??\n true ??\n table.options.enableGrouping ??\n true ??\n !!column.accessorFn\n )\n },\n\n getIsGrouped: () => {\n return table.getState().grouping?.includes(column.id)\n },\n\n getGroupedIndex: () => table.getState().grouping?.indexOf(column.id),\n\n getToggleGroupingHandler: () => {\n const canGroup = column.getCanGroup()\n\n return () => {\n if (!canGroup) return\n column.toggleGrouping()\n }\n },\n getAutoAggregationFn: () => {\n const firstRow = table.getCoreRowModel().flatRows[0]\n\n const value = firstRow?.getValue(column.id)\n\n if (typeof value === 'number') {\n return aggregationFns.sum\n }\n\n if (Object.prototype.toString.call(value) === '[object Date]') {\n return aggregationFns.extent\n }\n },\n getAggregationFn: () => {\n if (!column) {\n throw new Error()\n }\n\n return isFunction(column.columnDef.aggregationFn)\n ? column.columnDef.aggregationFn\n : column.columnDef.aggregationFn === 'auto'\n ? column.getAutoAggregationFn()\n : table.options.aggregationFns?.[\n column.columnDef.aggregationFn as string\n ] ??\n aggregationFns[\n column.columnDef.aggregationFn as BuiltInAggregationFn\n ]\n },\n }\n },\n\n createTable: <TData extends RowData>(\n table: Table<TData>\n ): GroupingInstance<TData> => {\n return {\n setGrouping: updater => table.options.onGroupingChange?.(updater),\n\n resetGrouping: defaultState => {\n table.setGrouping(\n defaultState ? [] : table.initialState?.grouping ?? []\n )\n },\n\n getPreGroupedRowModel: () => table.getFilteredRowModel(),\n getGroupedRowModel: () => {\n if (!table._getGroupedRowModel && table.options.getGroupedRowModel) {\n table._getGroupedRowModel = table.options.getGroupedRowModel(table)\n }\n\n if (table.options.manualGrouping || !table._getGroupedRowModel) {\n return table.getPreGroupedRowModel()\n }\n\n return table._getGroupedRowModel()\n },\n }\n },\n\n createRow: <TData extends RowData>(\n row: Row<TData>,\n table: Table<TData>\n ): GroupingRow => {\n return {\n getIsGrouped: () => !!row.groupingColumnId,\n getGroupingValue: columnId => {\n if (row._groupingValuesCache.hasOwnProperty(columnId)) {\n return row._groupingValuesCache[columnId]\n }\n\n const column = table.getColumn(columnId)\n\n if (!column?.columnDef.getGroupingValue) {\n return row.getValue(columnId)\n }\n\n row._groupingValuesCache[columnId] = column.columnDef.getGroupingValue(\n row.original\n )\n\n return row._groupingValuesCache[columnId]\n },\n _groupingValuesCache: {},\n }\n },\n\n createCell: <TData extends RowData, TValue>(\n cell: Cell<TData, TValue>,\n column: Column<TData, TValue>,\n row: Row<TData>,\n table: Table<TData>\n ): GroupingCell => {\n const getRenderValue = () =>\n cell.getValue() ?? table.options.renderFallbackValue\n\n return {\n getIsGrouped: () =>\n column.getIsGrouped() && column.id === row.groupingColumnId,\n getIsPlaceholder: () => !cell.getIsGrouped() && column.getIsGrouped(),\n getIsAggregated: () =>\n !cell.getIsGrouped() &&\n !cell.getIsPlaceholder() &&\n !!row.subRows?.length,\n }\n },\n}\n\nexport function orderColumns<TData extends RowData>(\n leafColumns: Column<TData, unknown>[],\n grouping: string[],\n groupedColumnMode?: GroupingColumnMode\n) {\n if (!grouping?.length || !groupedColumnMode) {\n return leafColumns\n }\n\n const nonGroupingColumns = leafColumns.filter(\n col => !grouping.includes(col.id)\n )\n\n if (groupedColumnMode === 'remove') {\n return nonGroupingColumns\n }\n\n const groupingColumns = grouping\n .map(g => leafColumns.find(col => col.id === g)!)\n .filter(Boolean)\n\n return [...groupingColumns, ...nonGroupingColumns]\n}\n"],"names":["Grouping","getDefaultColumnDef","aggregatedCell","props","_toString","_props$getValue","getValue","toString","aggregationFn","getInitialState","state","grouping","getDefaultOptions","table","onGroupingChange","makeStateUpdater","groupedColumnMode","createColumn","column","toggleGrouping","setGrouping","old","includes","id","filter","d","getCanGroup","_ref","_ref2","_ref3","_column$columnDef$ena","columnDef","enableGrouping","options","accessorFn","getIsGrouped","_table$getState$group","getState","getGroupedIndex","_table$getState$group2","indexOf","getToggleGroupingHandler","canGroup","getAutoAggregationFn","firstRow","getCoreRowModel","flatRows","value","aggregationFns","sum","Object","prototype","call","extent","getAggregationFn","_table$options$aggreg","_table$options$aggreg2","Error","isFunction","createTable","updater","resetGrouping","defaultState","_table$initialState$g","_table$initialState","initialState","getPreGroupedRowModel","getFilteredRowModel","getGroupedRowModel","_getGroupedRowModel","manualGrouping","createRow","row","groupingColumnId","getGroupingValue","columnId","_groupingValuesCache","hasOwnProperty","getColumn","original","createCell","cell","getIsPlaceholder","getIsAggregated","_row$subRows","subRows","length","orderColumns","leafColumns","nonGroupingColumns","col","groupingColumns","map","g","find","Boolean"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Ordering.js","sources":["../../../src/features/Ordering.ts"],"sourcesContent":["import { makeStateUpdater, memo } from '../utils'\n\nimport { Table, OnChangeFn, Updater, Column, RowData } from '../types'\n\nimport { orderColumns } from './Grouping'\nimport { TableFeature } from '../core/table'\n\nexport interface ColumnOrderTableState {\n columnOrder: ColumnOrderState\n}\n\nexport type ColumnOrderState = string[]\n\nexport interface ColumnOrderOptions {\n onColumnOrderChange?: OnChangeFn<ColumnOrderState>\n}\n\nexport interface ColumnOrderDefaultOptions {\n onColumnOrderChange: OnChangeFn<ColumnOrderState>\n}\n\nexport interface ColumnOrderInstance<TData extends RowData> {\n setColumnOrder: (updater: Updater<ColumnOrderState>) => void\n resetColumnOrder: (defaultState?: boolean) => void\n _getOrderColumnsFn: () => (\n columns: Column<TData, unknown>[]\n ) => Column<TData, unknown>[]\n}\n\n//\n\nexport const Ordering: TableFeature = {\n getInitialState: (state): ColumnOrderTableState => {\n return {\n columnOrder: [],\n ...state,\n }\n },\n\n getDefaultOptions: <TData extends RowData>(\n table: Table<TData>\n ): ColumnOrderDefaultOptions => {\n return {\n onColumnOrderChange: makeStateUpdater('columnOrder', table),\n }\n },\n\n createTable: <TData extends RowData>(\n table: Table<TData>\n ): ColumnOrderInstance<TData> => {\n return {\n setColumnOrder: updater => table.options.onColumnOrderChange?.(updater),\n resetColumnOrder: defaultState => {\n table.setColumnOrder(\n defaultState ? [] : table.initialState.columnOrder ?? []\n )\n },\n _getOrderColumnsFn: memo(\n () => [\n table.getState().columnOrder,\n table.getState().grouping,\n table.options.groupedColumnMode,\n ],\n (columnOrder, grouping, groupedColumnMode) => columns => {\n // Sort grouped columns to the start of the column list\n // before the headers are built\n let orderedColumns: Column<TData, unknown>[] = []\n\n // If there is no order, return the normal columns\n if (!columnOrder?.length) {\n orderedColumns = columns\n } else {\n const columnOrderCopy = [...columnOrder]\n\n // If there is an order, make a copy of the columns\n const columnsCopy = [...columns]\n\n // And make a new ordered array of the columns\n\n // Loop over the columns and place them in order into the new array\n while (columnsCopy.length && columnOrderCopy.length) {\n const targetColumnId = columnOrderCopy.shift()\n const foundIndex = columnsCopy.findIndex(\n d => d.id === targetColumnId\n )\n if (foundIndex > -1) {\n orderedColumns.push(columnsCopy.splice(foundIndex, 1)[0]!)\n }\n }\n\n // If there are any columns left, add them to the end\n orderedColumns = [...orderedColumns, ...columnsCopy]\n }\n\n return orderColumns(orderedColumns, grouping, groupedColumnMode)\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getOrderColumnsFn',\n // debug: () => table.options.debugAll ?? table.options.debugTable,\n }\n ),\n }\n },\n}\n"],"names":["Ordering","getInitialState","state","columnOrder","getDefaultOptions","table","onColumnOrderChange","makeStateUpdater","createTable","setColumnOrder","updater","options","resetColumnOrder","defaultState","_table$initialState$c","initialState","_getOrderColumnsFn","memo","getState","grouping","groupedColumnMode","columns","orderedColumns","length","columnOrderCopy","columnsCopy","targetColumnId","shift","foundIndex","findIndex","d","id","push","splice","orderColumns","key","process","env","NODE_ENV"],"mappings":";;;;;;;;;;;;;;;;;AA6BA;;AAEO,MAAMA,QAAsB,GAAG;EACpCC,eAAe,EAAGC,KAAK,IAA4B;IACjD,OAAO;AACLC,MAAAA,WAAW,EAAE,EAAE;MACf,GAAGD,KAAAA;KACJ,CAAA;GACF;EAEDE,iBAAiB,EACfC,KAAmB,IACW;IAC9B,OAAO;AACLC,MAAAA,mBAAmB,EAAEC,sBAAgB,CAAC,aAAa,EAAEF,KAAK,CAAA;KAC3D,CAAA;GACF;EAEDG,WAAW,EACTH,KAAmB,IACY;IAC/B,OAAO;AACLI,MAAAA,cAAc,EAAEC,OAAO,IAAIL,KAAK,CAACM,OAAO,CAACL,mBAAmB,IAAjCD,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,KAAK,CAACM,OAAO,CAACL,mBAAmB,CAAGI,OAAO,CAAC;MACvEE,gBAAgB,EAAEC,YAAY,IAAI;AAAA,QAAA,IAAAC,qBAAA,CAAA;AAChCT,QAAAA,KAAK,CAACI,cAAc,CAClBI,YAAY,GAAG,EAAE,IAAAC,qBAAA,GAAGT,KAAK,CAACU,YAAY,CAACZ,WAAW,YAAAW,qBAAA,GAAI,
|
|
1
|
+
{"version":3,"file":"Ordering.js","sources":["../../../src/features/Ordering.ts"],"sourcesContent":["import { makeStateUpdater, memo } from '../utils'\n\nimport { Table, OnChangeFn, Updater, Column, RowData } from '../types'\n\nimport { orderColumns } from './Grouping'\nimport { TableFeature } from '../core/table'\n\nexport interface ColumnOrderTableState {\n columnOrder: ColumnOrderState\n}\n\nexport type ColumnOrderState = string[]\n\nexport interface ColumnOrderOptions {\n onColumnOrderChange?: OnChangeFn<ColumnOrderState>\n}\n\nexport interface ColumnOrderDefaultOptions {\n onColumnOrderChange: OnChangeFn<ColumnOrderState>\n}\n\nexport interface ColumnOrderInstance<TData extends RowData> {\n setColumnOrder: (updater: Updater<ColumnOrderState>) => void\n resetColumnOrder: (defaultState?: boolean) => void\n _getOrderColumnsFn: () => (\n columns: Column<TData, unknown>[]\n ) => Column<TData, unknown>[]\n}\n\n//\n\nexport const Ordering: TableFeature = {\n getInitialState: (state): ColumnOrderTableState => {\n return {\n columnOrder: [],\n ...state,\n }\n },\n\n getDefaultOptions: <TData extends RowData>(\n table: Table<TData>\n ): ColumnOrderDefaultOptions => {\n return {\n onColumnOrderChange: makeStateUpdater('columnOrder', table),\n }\n },\n\n createTable: <TData extends RowData>(\n table: Table<TData>\n ): ColumnOrderInstance<TData> => {\n return {\n setColumnOrder: updater => table.options.onColumnOrderChange?.(updater),\n resetColumnOrder: defaultState => {\n table.setColumnOrder(\n defaultState ? [] : table.initialState.columnOrder ?? []\n )\n },\n _getOrderColumnsFn: memo(\n () => [\n table.getState().columnOrder,\n table.getState().grouping,\n table.options.groupedColumnMode,\n ],\n (columnOrder, grouping, groupedColumnMode) => columns => {\n // Sort grouped columns to the start of the column list\n // before the headers are built\n let orderedColumns: Column<TData, unknown>[] = []\n\n // If there is no order, return the normal columns\n if (!columnOrder?.length) {\n orderedColumns = columns\n } else {\n const columnOrderCopy = [...columnOrder]\n\n // If there is an order, make a copy of the columns\n const columnsCopy = [...columns]\n\n // And make a new ordered array of the columns\n\n // Loop over the columns and place them in order into the new array\n while (columnsCopy.length && columnOrderCopy.length) {\n const targetColumnId = columnOrderCopy.shift()\n const foundIndex = columnsCopy.findIndex(\n d => d.id === targetColumnId\n )\n if (foundIndex > -1) {\n orderedColumns.push(columnsCopy.splice(foundIndex, 1)[0]!)\n }\n }\n\n // If there are any columns left, add them to the end\n orderedColumns = [...orderedColumns, ...columnsCopy]\n }\n\n return orderColumns(orderedColumns, grouping, groupedColumnMode)\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getOrderColumnsFn',\n // debug: () => table.options.debugAll ?? table.options.debugTable,\n }\n ),\n }\n },\n}\n"],"names":["Ordering","getInitialState","state","columnOrder","getDefaultOptions","table","onColumnOrderChange","makeStateUpdater","createTable","setColumnOrder","updater","options","resetColumnOrder","defaultState","_table$initialState$c","initialState","_getOrderColumnsFn","memo","getState","grouping","groupedColumnMode","columns","orderedColumns","length","columnOrderCopy","columnsCopy","targetColumnId","shift","foundIndex","findIndex","d","id","push","splice","orderColumns","key","process","env","NODE_ENV"],"mappings":";;;;;;;;;;;;;;;;;AA6BA;;AAEO,MAAMA,QAAsB,GAAG;EACpCC,eAAe,EAAGC,KAAK,IAA4B;IACjD,OAAO;AACLC,MAAAA,WAAW,EAAE,EAAE;MACf,GAAGD,KAAAA;KACJ,CAAA;GACF;EAEDE,iBAAiB,EACfC,KAAmB,IACW;IAC9B,OAAO;AACLC,MAAAA,mBAAmB,EAAEC,sBAAgB,CAAC,aAAa,EAAEF,KAAK,CAAA;KAC3D,CAAA;GACF;EAEDG,WAAW,EACTH,KAAmB,IACY;IAC/B,OAAO;AACLI,MAAAA,cAAc,EAAEC,OAAO,IAAIL,KAAK,CAACM,OAAO,CAACL,mBAAmB,IAAjCD,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,KAAK,CAACM,OAAO,CAACL,mBAAmB,CAAGI,OAAO,CAAC;MACvEE,gBAAgB,EAAEC,YAAY,IAAI;AAAA,QAAA,IAAAC,qBAAA,CAAA;AAChCT,QAAAA,KAAK,CAACI,cAAc,CAClBI,YAAY,GAAG,EAAE,IAAAC,qBAAA,GAAGT,KAAK,CAACU,YAAY,CAACZ,WAAW,YAAAW,qBAAA,GAAI,EACxD,CAAC,CAAA;OACF;AACDE,MAAAA,kBAAkB,EAAEC,UAAI,CACtB,MAAM,CACJZ,KAAK,CAACa,QAAQ,EAAE,CAACf,WAAW,EAC5BE,KAAK,CAACa,QAAQ,EAAE,CAACC,QAAQ,EACzBd,KAAK,CAACM,OAAO,CAACS,iBAAiB,CAChC,EACD,CAACjB,WAAW,EAAEgB,QAAQ,EAAEC,iBAAiB,KAAKC,OAAO,IAAI;AACvD;AACA;QACA,IAAIC,cAAwC,GAAG,EAAE,CAAA;;AAEjD;AACA,QAAA,IAAI,EAACnB,WAAW,IAAA,IAAA,IAAXA,WAAW,CAAEoB,MAAM,CAAE,EAAA;AACxBD,UAAAA,cAAc,GAAGD,OAAO,CAAA;AAC1B,SAAC,MAAM;AACL,UAAA,MAAMG,eAAe,GAAG,CAAC,GAAGrB,WAAW,CAAC,CAAA;;AAExC;AACA,UAAA,MAAMsB,WAAW,GAAG,CAAC,GAAGJ,OAAO,CAAC,CAAA;;AAEhC;;AAEA;AACA,UAAA,OAAOI,WAAW,CAACF,MAAM,IAAIC,eAAe,CAACD,MAAM,EAAE;AACnD,YAAA,MAAMG,cAAc,GAAGF,eAAe,CAACG,KAAK,EAAE,CAAA;AAC9C,YAAA,MAAMC,UAAU,GAAGH,WAAW,CAACI,SAAS,CACtCC,CAAC,IAAIA,CAAC,CAACC,EAAE,KAAKL,cAChB,CAAC,CAAA;AACD,YAAA,IAAIE,UAAU,GAAG,CAAC,CAAC,EAAE;AACnBN,cAAAA,cAAc,CAACU,IAAI,CAACP,WAAW,CAACQ,MAAM,CAACL,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,CAAE,CAAC,CAAA;AAC5D,aAAA;AACF,WAAA;;AAEA;AACAN,UAAAA,cAAc,GAAG,CAAC,GAAGA,cAAc,EAAE,GAAGG,WAAW,CAAC,CAAA;AACtD,SAAA;AAEA,QAAA,OAAOS,qBAAY,CAACZ,cAAc,EAAEH,QAAQ,EAAEC,iBAAiB,CAAC,CAAA;AAClE,OAAC,EACD;QACEe,GAAG,EAAEC,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,aAAa,IAAI,mBAAA;AAC/C;OAEJ,CAAA;KACD,CAAA;AACH,GAAA;AACF;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Pagination.js","sources":["../../../src/features/Pagination.ts"],"sourcesContent":["import { TableFeature } from '../core/table'\nimport { OnChangeFn, Table, RowModel, Updater, RowData } from '../types'\nimport { functionalUpdate, makeStateUpdater, memo } from '../utils'\n\nexport interface PaginationState {\n pageIndex: number\n pageSize: number\n}\n\nexport interface PaginationTableState {\n pagination: PaginationState\n}\n\nexport interface PaginationInitialTableState {\n pagination?: Partial<PaginationState>\n}\n\nexport interface PaginationOptions {\n pageCount?: number\n manualPagination?: boolean\n onPaginationChange?: OnChangeFn<PaginationState>\n autoResetPageIndex?: boolean\n getPaginationRowModel?: (table: Table<any>) => () => RowModel<any>\n}\n\nexport interface PaginationDefaultOptions {\n onPaginationChange: OnChangeFn<PaginationState>\n}\n\nexport interface PaginationInstance<TData extends RowData> {\n _autoResetPageIndex: () => void\n setPagination: (updater: Updater<PaginationState>) => void\n resetPagination: (defaultState?: boolean) => void\n setPageIndex: (updater: Updater<number>) => void\n resetPageIndex: (defaultState?: boolean) => void\n setPageSize: (updater: Updater<number>) => void\n resetPageSize: (defaultState?: boolean) => void\n setPageCount: (updater: Updater<number>) => void\n getPageOptions: () => number[]\n getCanPreviousPage: () => boolean\n getCanNextPage: () => boolean\n previousPage: () => void\n nextPage: () => void\n getPrePaginationRowModel: () => RowModel<TData>\n getPaginationRowModel: () => RowModel<TData>\n _getPaginationRowModel?: () => RowModel<TData>\n getPageCount: () => number\n}\n\n//\n\nconst defaultPageIndex = 0\nconst defaultPageSize = 10\n\nconst getDefaultPaginationState = (): PaginationState => ({\n pageIndex: defaultPageIndex,\n pageSize: defaultPageSize,\n})\n\nexport const Pagination: TableFeature = {\n getInitialState: (state): PaginationTableState => {\n return {\n ...state,\n pagination: {\n ...getDefaultPaginationState(),\n ...state?.pagination,\n },\n }\n },\n\n getDefaultOptions: <TData extends RowData>(\n table: Table<TData>\n ): PaginationDefaultOptions => {\n return {\n onPaginationChange: makeStateUpdater('pagination', table),\n }\n },\n\n createTable: <TData extends RowData>(\n table: Table<TData>\n ): PaginationInstance<TData> => {\n let registered = false\n let queued = false\n\n return {\n _autoResetPageIndex: () => {\n if (!registered) {\n table._queue(() => {\n registered = true\n })\n return\n }\n\n if (\n table.options.autoResetAll ??\n table.options.autoResetPageIndex ??\n !table.options.manualPagination\n ) {\n if (queued) return\n queued = true\n table._queue(() => {\n table.resetPageIndex()\n queued = false\n })\n }\n },\n setPagination: updater => {\n const safeUpdater: Updater<PaginationState> = old => {\n let newState = functionalUpdate(updater, old)\n\n return newState\n }\n\n return table.options.onPaginationChange?.(safeUpdater)\n },\n resetPagination: defaultState => {\n table.setPagination(\n defaultState\n ? getDefaultPaginationState()\n : table.initialState.pagination ?? getDefaultPaginationState()\n )\n },\n setPageIndex: updater => {\n table.setPagination(old => {\n let pageIndex = functionalUpdate(updater, old.pageIndex)\n\n const maxPageIndex =\n typeof table.options.pageCount === 'undefined' ||\n table.options.pageCount === -1\n ? Number.MAX_SAFE_INTEGER\n : table.options.pageCount - 1\n\n pageIndex = Math.max(0, Math.min(pageIndex, maxPageIndex))\n\n return {\n ...old,\n pageIndex,\n }\n })\n },\n resetPageIndex: defaultState => {\n table.setPageIndex(\n defaultState\n ? defaultPageIndex\n : table.initialState?.pagination?.pageIndex ?? defaultPageIndex\n )\n },\n resetPageSize: defaultState => {\n table.setPageSize(\n defaultState\n ? defaultPageSize\n : table.initialState?.pagination?.pageSize ?? defaultPageSize\n )\n },\n setPageSize: updater => {\n table.setPagination(old => {\n const pageSize = Math.max(1, functionalUpdate(updater, old.pageSize))\n const topRowIndex = old.pageSize * old.pageIndex!\n const pageIndex = Math.floor(topRowIndex / pageSize)\n\n return {\n ...old,\n pageIndex,\n pageSize,\n }\n })\n },\n setPageCount: updater =>\n table.setPagination(old => {\n let newPageCount = functionalUpdate(\n updater,\n table.options.pageCount ?? -1\n )\n\n if (typeof newPageCount === 'number') {\n newPageCount = Math.max(-1, newPageCount)\n }\n\n return {\n ...old,\n pageCount: newPageCount,\n }\n }),\n\n getPageOptions: memo(\n () => [table.getPageCount()],\n pageCount => {\n let pageOptions: number[] = []\n if (pageCount && pageCount > 0) {\n pageOptions = [...new Array(pageCount)].fill(null).map((_, i) => i)\n }\n return pageOptions\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getPageOptions',\n debug: () => table.options.debugAll ?? table.options.debugTable,\n }\n ),\n\n getCanPreviousPage: () => table.getState().pagination.pageIndex > 0,\n\n getCanNextPage: () => {\n const { pageIndex } = table.getState().pagination\n\n const pageCount = table.getPageCount()\n\n if (pageCount === -1) {\n return true\n }\n\n if (pageCount === 0) {\n return false\n }\n\n return pageIndex < pageCount - 1\n },\n\n previousPage: () => {\n return table.setPageIndex(old => old - 1)\n },\n\n nextPage: () => {\n return table.setPageIndex(old => {\n return old + 1\n })\n },\n\n getPrePaginationRowModel: () => table.getExpandedRowModel(),\n getPaginationRowModel: () => {\n if (\n !table._getPaginationRowModel &&\n table.options.getPaginationRowModel\n ) {\n table._getPaginationRowModel =\n table.options.getPaginationRowModel(table)\n }\n\n if (table.options.manualPagination || !table._getPaginationRowModel) {\n return table.getPrePaginationRowModel()\n }\n\n return table._getPaginationRowModel()\n },\n\n getPageCount: () => {\n return (\n table.options.pageCount ??\n Math.ceil(\n table.getPrePaginationRowModel().rows.length /\n table.getState().pagination.pageSize\n )\n )\n },\n }\n },\n}\n"],"names":["defaultPageIndex","defaultPageSize","getDefaultPaginationState","pageIndex","pageSize","Pagination","getInitialState","state","pagination","getDefaultOptions","table","onPaginationChange","makeStateUpdater","createTable","registered","queued","_autoResetPageIndex","_ref","_table$options$autoRe","_queue","options","autoResetAll","autoResetPageIndex","manualPagination","resetPageIndex","setPagination","updater","safeUpdater","old","newState","functionalUpdate","resetPagination","defaultState","_table$initialState$p","initialState","setPageIndex","maxPageIndex","pageCount","Number","MAX_SAFE_INTEGER","Math","max","min","_table$initialState$p2","_table$initialState","_table$initialState$p3","resetPageSize","_table$initialState$p4","_table$initialState2","_table$initialState2$","setPageSize","topRowIndex","floor","setPageCount","_table$options$pageCo","newPageCount","getPageOptions","memo","getPageCount","pageOptions","Array","fill","map","_","i","key","process","env","NODE_ENV","debug","_table$options$debugA","debugAll","debugTable","getCanPreviousPage","getState","getCanNextPage","previousPage","nextPage","getPrePaginationRowModel","getExpandedRowModel","getPaginationRowModel","_getPaginationRowModel","_table$options$pageCo2","ceil","rows","length"],"mappings":";;;;;;;;;;;;;;;;AAiDA;;AAEA,MAAMA,gBAAgB,GAAG,CAAC,CAAA;AAC1B,MAAMC,eAAe,GAAG,EAAE,CAAA;AAE1B,MAAMC,yBAAyB,GAAGA,OAAwB;AACxDC,EAAAA,SAAS,EAAEH,gBAAgB;AAC3BI,EAAAA,QAAQ,EAAEH,eAAAA;AACZ,CAAC,CAAC,CAAA;AAEK,MAAMI,UAAwB,GAAG;EACtCC,eAAe,EAAGC,KAAK,IAA2B;IAChD,OAAO;AACL,MAAA,GAAGA,KAAK;AACRC,MAAAA,UAAU,EAAE;AACV,QAAA,GAAGN,yBAAyB,EAAE;AAC9B,QAAA,IAAGK,KAAK,IAAA,IAAA,GAAA,KAAA,CAAA,GAALA,KAAK,CAAEC,UAAU,CAAA;AACtB,OAAA;KACD,CAAA;GACF;EAEDC,iBAAiB,EACfC,KAAmB,IACU;IAC7B,OAAO;AACLC,MAAAA,kBAAkB,EAAEC,sBAAgB,CAAC,YAAY,EAAEF,KAAK,CAAA;KACzD,CAAA;GACF;EAEDG,WAAW,EACTH,KAAmB,IACW;IAC9B,IAAII,UAAU,GAAG,KAAK,CAAA;IACtB,IAAIC,MAAM,GAAG,KAAK,CAAA;IAElB,OAAO;MACLC,mBAAmB,EAAEA,MAAM;QAAA,IAAAC,IAAA,EAAAC,qBAAA,CAAA;QACzB,IAAI,CAACJ,UAAU,EAAE;UACfJ,KAAK,CAACS,MAAM,CAAC,MAAM;AACjBL,YAAAA,UAAU,GAAG,IAAI,CAAA;AACnB,WAAC,CAAC,CAAA;AACF,UAAA,OAAA;AACF,SAAA;QAEA,IAAAG,CAAAA,IAAA,GAAAC,CAAAA,qBAAA,GACER,KAAK,CAACU,OAAO,CAACC,YAAY,KAAAH,IAAAA,GAAAA,qBAAA,GAC1BR,KAAK,CAACU,OAAO,CAACE,kBAAkB,KAAA,IAAA,GAAAL,IAAA,GAChC,CAACP,KAAK,CAACU,OAAO,CAACG,gBAAgB,EAC/B;AACA,UAAA,IAAIR,MAAM,EAAE,OAAA;AACZA,UAAAA,MAAM,GAAG,IAAI,CAAA;UACbL,KAAK,CAACS,MAAM,CAAC,MAAM;YACjBT,KAAK,CAACc,cAAc,EAAE,CAAA;AACtBT,YAAAA,MAAM,GAAG,KAAK,CAAA;AAChB,WAAC,CAAC,CAAA;AACJ,SAAA;OACD;MACDU,aAAa,EAAEC,OAAO,IAAI;QACxB,MAAMC,WAAqC,GAAGC,GAAG,IAAI;AACnD,UAAA,IAAIC,QAAQ,GAAGC,sBAAgB,CAACJ,OAAO,EAAEE,GAAG,CAAC,CAAA;AAE7C,UAAA,OAAOC,QAAQ,CAAA;SAChB,CAAA;AAED,QAAA,OAAOnB,KAAK,CAACU,OAAO,CAACT,kBAAkB,IAAA,IAAA,GAAA,KAAA,CAAA,GAAhCD,KAAK,CAACU,OAAO,CAACT,kBAAkB,CAAGgB,WAAW,CAAC,CAAA;OACvD;MACDI,eAAe,EAAEC,YAAY,IAAI;AAAA,QAAA,IAAAC,qBAAA,CAAA;QAC/BvB,KAAK,CAACe,aAAa,CACjBO,YAAY,GACR9B,yBAAyB,EAAE,IAAA+B,qBAAA,GAC3BvB,KAAK,CAACwB,YAAY,CAAC1B,UAAU,KAAA,IAAA,GAAAyB,qBAAA,GAAI/B,yBAAyB,EAAE,CACjE,CAAA;OACF;MACDiC,YAAY,EAAET,OAAO,IAAI;AACvBhB,QAAAA,KAAK,CAACe,aAAa,CAACG,GAAG,IAAI;UACzB,IAAIzB,SAAS,GAAG2B,sBAAgB,CAACJ,OAAO,EAAEE,GAAG,CAACzB,SAAS,CAAC,CAAA;AAExD,UAAA,MAAMiC,YAAY,GAChB,OAAO1B,KAAK,CAACU,OAAO,CAACiB,SAAS,KAAK,WAAW,IAC9C3B,KAAK,CAACU,OAAO,CAACiB,SAAS,KAAK,CAAC,CAAC,GAC1BC,MAAM,CAACC,gBAAgB,GACvB7B,KAAK,CAACU,OAAO,CAACiB,SAAS,GAAG,CAAC,CAAA;AAEjClC,UAAAA,SAAS,GAAGqC,IAAI,CAACC,GAAG,CAAC,CAAC,EAAED,IAAI,CAACE,GAAG,CAACvC,SAAS,EAAEiC,YAAY,CAAC,CAAC,CAAA;UAE1D,OAAO;AACL,YAAA,GAAGR,GAAG;AACNzB,YAAAA,SAAAA;WACD,CAAA;AACH,SAAC,CAAC,CAAA;OACH;MACDqB,cAAc,EAAEQ,YAAY,IAAI;AAAA,QAAA,IAAAW,sBAAA,EAAAC,mBAAA,EAAAC,sBAAA,CAAA;AAC9BnC,QAAAA,KAAK,CAACyB,YAAY,CAChBH,YAAY,GACRhC,gBAAgB,GAAA2C,CAAAA,sBAAA,GAAAC,CAAAA,mBAAA,GAChBlC,KAAK,CAACwB,YAAY,KAAAW,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,CAAAA,sBAAA,GAAlBD,mBAAA,CAAoBpC,UAAU,KAA9BqC,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,sBAAA,CAAgC1C,SAAS,KAAAwC,IAAAA,GAAAA,sBAAA,GAAI3C,gBAAgB,CAClE,CAAA;OACF;MACD8C,aAAa,EAAEd,YAAY,IAAI;AAAA,QAAA,IAAAe,sBAAA,EAAAC,oBAAA,EAAAC,qBAAA,CAAA;AAC7BvC,QAAAA,KAAK,CAACwC,WAAW,CACflB,YAAY,GACR/B,eAAe,GAAA8C,CAAAA,sBAAA,GAAAC,CAAAA,oBAAA,GACftC,KAAK,CAACwB,YAAY,KAAAe,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,CAAAA,qBAAA,GAAlBD,oBAAA,CAAoBxC,UAAU,KAA9ByC,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,qBAAA,CAAgC7C,QAAQ,KAAA2C,IAAAA,GAAAA,sBAAA,GAAI9C,eAAe,CAChE,CAAA;OACF;MACDiD,WAAW,EAAExB,OAAO,IAAI;AACtBhB,QAAAA,KAAK,CAACe,aAAa,CAACG,GAAG,IAAI;AACzB,UAAA,MAAMxB,QAAQ,GAAGoC,IAAI,CAACC,GAAG,CAAC,CAAC,EAAEX,sBAAgB,CAACJ,OAAO,EAAEE,GAAG,CAACxB,QAAQ,CAAC,CAAC,CAAA;UACrE,MAAM+C,WAAW,GAAGvB,GAAG,CAACxB,QAAQ,GAAGwB,GAAG,CAACzB,SAAU,CAAA;UACjD,MAAMA,SAAS,GAAGqC,IAAI,CAACY,KAAK,CAACD,WAAW,GAAG/C,QAAQ,CAAC,CAAA;UAEpD,OAAO;AACL,YAAA,GAAGwB,GAAG;YACNzB,SAAS;AACTC,YAAAA,QAAAA;WACD,CAAA;AACH,SAAC,CAAC,CAAA;OACH;MACDiD,YAAY,EAAE3B,OAAO,IACnBhB,KAAK,CAACe,aAAa,CAACG,GAAG,IAAI;AAAA,QAAA,IAAA0B,qBAAA,CAAA;AACzB,QAAA,IAAIC,YAAY,GAAGzB,sBAAgB,CACjCJ,OAAO,EAAA,CAAA4B,qBAAA,GACP5C,KAAK,CAACU,OAAO,CAACiB,SAAS,KAAA,IAAA,GAAAiB,qBAAA,GAAI,CAAC,CAAC,CAC9B,CAAA;AAED,QAAA,IAAI,OAAOC,YAAY,KAAK,QAAQ,EAAE;UACpCA,YAAY,GAAGf,IAAI,CAACC,GAAG,CAAC,CAAC,CAAC,EAAEc,YAAY,CAAC,CAAA;AAC3C,SAAA;QAEA,OAAO;AACL,UAAA,GAAG3B,GAAG;AACNS,UAAAA,SAAS,EAAEkB,YAAAA;SACZ,CAAA;AACH,OAAC,CAAC;AAEJC,MAAAA,cAAc,EAAEC,UAAI,CAClB,MAAM,CAAC/C,KAAK,CAACgD,YAAY,EAAE,CAAC,EAC5BrB,SAAS,IAAI;QACX,IAAIsB,WAAqB,GAAG,EAAE,CAAA;AAC9B,QAAA,IAAItB,SAAS,IAAIA,SAAS,GAAG,CAAC,EAAE;UAC9BsB,WAAW,GAAG,CAAC,GAAG,IAAIC,KAAK,CAACvB,SAAS,CAAC,CAAC,CAACwB,IAAI,CAAC,IAAI,CAAC,CAACC,GAAG,CAAC,CAACC,CAAC,EAAEC,CAAC,KAAKA,CAAC,CAAC,CAAA;AACrE,SAAA;AACA,QAAA,OAAOL,WAAW,CAAA;AACpB,OAAC,EACD;QACEM,GAAG,EAAEC,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,aAAa,IAAI,gBAAgB;AAC/DC,QAAAA,KAAK,EAAEA,MAAA;AAAA,UAAA,IAAAC,qBAAA,CAAA;AAAA,UAAA,OAAA,CAAAA,qBAAA,GAAM5D,KAAK,CAACU,OAAO,CAACmD,QAAQ,KAAAD,IAAAA,GAAAA,qBAAA,GAAI5D,KAAK,CAACU,OAAO,CAACoD,UAAU,CAAA;AAAA,SAAA;AACjE,OAAC,CACF;AAEDC,MAAAA,kBAAkB,EAAEA,MAAM/D,KAAK,CAACgE,QAAQ,EAAE,CAAClE,UAAU,CAACL,SAAS,GAAG,CAAC;MAEnEwE,cAAc,EAAEA,MAAM;QACpB,MAAM;AAAExE,UAAAA,SAAAA;AAAU,SAAC,GAAGO,KAAK,CAACgE,QAAQ,EAAE,CAAClE,UAAU,CAAA;AAEjD,QAAA,MAAM6B,SAAS,GAAG3B,KAAK,CAACgD,YAAY,EAAE,CAAA;AAEtC,QAAA,IAAIrB,SAAS,KAAK,CAAC,CAAC,EAAE;AACpB,UAAA,OAAO,IAAI,CAAA;AACb,SAAA;QAEA,IAAIA,SAAS,KAAK,CAAC,EAAE;AACnB,UAAA,OAAO,KAAK,CAAA;AACd,SAAA;AAEA,QAAA,OAAOlC,SAAS,GAAGkC,SAAS,GAAG,CAAC,CAAA;OACjC;MAEDuC,YAAY,EAAEA,MAAM;QAClB,OAAOlE,KAAK,CAACyB,YAAY,CAACP,GAAG,IAAIA,GAAG,GAAG,CAAC,CAAC,CAAA;OAC1C;MAEDiD,QAAQ,EAAEA,MAAM;AACd,QAAA,OAAOnE,KAAK,CAACyB,YAAY,CAACP,GAAG,IAAI;UAC/B,OAAOA,GAAG,GAAG,CAAC,CAAA;AAChB,SAAC,CAAC,CAAA;OACH;AAEDkD,MAAAA,wBAAwB,EAAEA,MAAMpE,KAAK,CAACqE,mBAAmB,EAAE;MAC3DC,qBAAqB,EAAEA,MAAM;QAC3B,IACE,CAACtE,KAAK,CAACuE,sBAAsB,IAC7BvE,KAAK,CAACU,OAAO,CAAC4D,qBAAqB,EACnC;UACAtE,KAAK,CAACuE,sBAAsB,GAC1BvE,KAAK,CAACU,OAAO,CAAC4D,qBAAqB,CAACtE,KAAK,CAAC,CAAA;AAC9C,SAAA;QAEA,IAAIA,KAAK,CAACU,OAAO,CAACG,gBAAgB,IAAI,CAACb,KAAK,CAACuE,sBAAsB,EAAE;UACnE,OAAOvE,KAAK,CAACoE,wBAAwB,EAAE,CAAA;AACzC,SAAA;QAEA,OAAOpE,KAAK,CAACuE,sBAAsB,EAAE,CAAA;OACtC;MAEDvB,YAAY,EAAEA,MAAM;AAAA,QAAA,IAAAwB,sBAAA,CAAA;AAClB,QAAA,OAAA,CAAAA,sBAAA,GACExE,KAAK,CAACU,OAAO,CAACiB,SAAS,KAAA,IAAA,GAAA6C,sBAAA,GACvB1C,IAAI,CAAC2C,IAAI,CACPzE,KAAK,CAACoE,wBAAwB,EAAE,CAACM,IAAI,CAACC,MAAM,GAC1C3E,KAAK,CAACgE,QAAQ,EAAE,CAAClE,UAAU,CAACJ,QAAQ,CACvC,CAAA;AAEL,OAAA;KACD,CAAA;AACH,GAAA;AACF;;;;"}
|
|
1
|
+
{"version":3,"file":"Pagination.js","sources":["../../../src/features/Pagination.ts"],"sourcesContent":["import { TableFeature } from '../core/table'\nimport { OnChangeFn, Table, RowModel, Updater, RowData } from '../types'\nimport { functionalUpdate, makeStateUpdater, memo } from '../utils'\n\nexport interface PaginationState {\n pageIndex: number\n pageSize: number\n}\n\nexport interface PaginationTableState {\n pagination: PaginationState\n}\n\nexport interface PaginationInitialTableState {\n pagination?: Partial<PaginationState>\n}\n\nexport interface PaginationOptions {\n pageCount?: number\n manualPagination?: boolean\n onPaginationChange?: OnChangeFn<PaginationState>\n autoResetPageIndex?: boolean\n getPaginationRowModel?: (table: Table<any>) => () => RowModel<any>\n}\n\nexport interface PaginationDefaultOptions {\n onPaginationChange: OnChangeFn<PaginationState>\n}\n\nexport interface PaginationInstance<TData extends RowData> {\n _autoResetPageIndex: () => void\n setPagination: (updater: Updater<PaginationState>) => void\n resetPagination: (defaultState?: boolean) => void\n setPageIndex: (updater: Updater<number>) => void\n resetPageIndex: (defaultState?: boolean) => void\n setPageSize: (updater: Updater<number>) => void\n resetPageSize: (defaultState?: boolean) => void\n setPageCount: (updater: Updater<number>) => void\n getPageOptions: () => number[]\n getCanPreviousPage: () => boolean\n getCanNextPage: () => boolean\n previousPage: () => void\n nextPage: () => void\n getPrePaginationRowModel: () => RowModel<TData>\n getPaginationRowModel: () => RowModel<TData>\n _getPaginationRowModel?: () => RowModel<TData>\n getPageCount: () => number\n}\n\n//\n\nconst defaultPageIndex = 0\nconst defaultPageSize = 10\n\nconst getDefaultPaginationState = (): PaginationState => ({\n pageIndex: defaultPageIndex,\n pageSize: defaultPageSize,\n})\n\nexport const Pagination: TableFeature = {\n getInitialState: (state): PaginationTableState => {\n return {\n ...state,\n pagination: {\n ...getDefaultPaginationState(),\n ...state?.pagination,\n },\n }\n },\n\n getDefaultOptions: <TData extends RowData>(\n table: Table<TData>\n ): PaginationDefaultOptions => {\n return {\n onPaginationChange: makeStateUpdater('pagination', table),\n }\n },\n\n createTable: <TData extends RowData>(\n table: Table<TData>\n ): PaginationInstance<TData> => {\n let registered = false\n let queued = false\n\n return {\n _autoResetPageIndex: () => {\n if (!registered) {\n table._queue(() => {\n registered = true\n })\n return\n }\n\n if (\n table.options.autoResetAll ??\n table.options.autoResetPageIndex ??\n !table.options.manualPagination\n ) {\n if (queued) return\n queued = true\n table._queue(() => {\n table.resetPageIndex()\n queued = false\n })\n }\n },\n setPagination: updater => {\n const safeUpdater: Updater<PaginationState> = old => {\n let newState = functionalUpdate(updater, old)\n\n return newState\n }\n\n return table.options.onPaginationChange?.(safeUpdater)\n },\n resetPagination: defaultState => {\n table.setPagination(\n defaultState\n ? getDefaultPaginationState()\n : table.initialState.pagination ?? getDefaultPaginationState()\n )\n },\n setPageIndex: updater => {\n table.setPagination(old => {\n let pageIndex = functionalUpdate(updater, old.pageIndex)\n\n const maxPageIndex =\n typeof table.options.pageCount === 'undefined' ||\n table.options.pageCount === -1\n ? Number.MAX_SAFE_INTEGER\n : table.options.pageCount - 1\n\n pageIndex = Math.max(0, Math.min(pageIndex, maxPageIndex))\n\n return {\n ...old,\n pageIndex,\n }\n })\n },\n resetPageIndex: defaultState => {\n table.setPageIndex(\n defaultState\n ? defaultPageIndex\n : table.initialState?.pagination?.pageIndex ?? defaultPageIndex\n )\n },\n resetPageSize: defaultState => {\n table.setPageSize(\n defaultState\n ? defaultPageSize\n : table.initialState?.pagination?.pageSize ?? defaultPageSize\n )\n },\n setPageSize: updater => {\n table.setPagination(old => {\n const pageSize = Math.max(1, functionalUpdate(updater, old.pageSize))\n const topRowIndex = old.pageSize * old.pageIndex!\n const pageIndex = Math.floor(topRowIndex / pageSize)\n\n return {\n ...old,\n pageIndex,\n pageSize,\n }\n })\n },\n setPageCount: updater =>\n table.setPagination(old => {\n let newPageCount = functionalUpdate(\n updater,\n table.options.pageCount ?? -1\n )\n\n if (typeof newPageCount === 'number') {\n newPageCount = Math.max(-1, newPageCount)\n }\n\n return {\n ...old,\n pageCount: newPageCount,\n }\n }),\n\n getPageOptions: memo(\n () => [table.getPageCount()],\n pageCount => {\n let pageOptions: number[] = []\n if (pageCount && pageCount > 0) {\n pageOptions = [...new Array(pageCount)].fill(null).map((_, i) => i)\n }\n return pageOptions\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getPageOptions',\n debug: () => table.options.debugAll ?? table.options.debugTable,\n }\n ),\n\n getCanPreviousPage: () => table.getState().pagination.pageIndex > 0,\n\n getCanNextPage: () => {\n const { pageIndex } = table.getState().pagination\n\n const pageCount = table.getPageCount()\n\n if (pageCount === -1) {\n return true\n }\n\n if (pageCount === 0) {\n return false\n }\n\n return pageIndex < pageCount - 1\n },\n\n previousPage: () => {\n return table.setPageIndex(old => old - 1)\n },\n\n nextPage: () => {\n return table.setPageIndex(old => {\n return old + 1\n })\n },\n\n getPrePaginationRowModel: () => table.getExpandedRowModel(),\n getPaginationRowModel: () => {\n if (\n !table._getPaginationRowModel &&\n table.options.getPaginationRowModel\n ) {\n table._getPaginationRowModel =\n table.options.getPaginationRowModel(table)\n }\n\n if (table.options.manualPagination || !table._getPaginationRowModel) {\n return table.getPrePaginationRowModel()\n }\n\n return table._getPaginationRowModel()\n },\n\n getPageCount: () => {\n return (\n table.options.pageCount ??\n Math.ceil(\n table.getPrePaginationRowModel().rows.length /\n table.getState().pagination.pageSize\n )\n )\n },\n }\n },\n}\n"],"names":["defaultPageIndex","defaultPageSize","getDefaultPaginationState","pageIndex","pageSize","Pagination","getInitialState","state","pagination","getDefaultOptions","table","onPaginationChange","makeStateUpdater","createTable","registered","queued","_autoResetPageIndex","_ref","_table$options$autoRe","_queue","options","autoResetAll","autoResetPageIndex","manualPagination","resetPageIndex","setPagination","updater","safeUpdater","old","newState","functionalUpdate","resetPagination","defaultState","_table$initialState$p","initialState","setPageIndex","maxPageIndex","pageCount","Number","MAX_SAFE_INTEGER","Math","max","min","_table$initialState$p2","_table$initialState","_table$initialState$p3","resetPageSize","_table$initialState$p4","_table$initialState2","_table$initialState2$","setPageSize","topRowIndex","floor","setPageCount","_table$options$pageCo","newPageCount","getPageOptions","memo","getPageCount","pageOptions","Array","fill","map","_","i","key","process","env","NODE_ENV","debug","_table$options$debugA","debugAll","debugTable","getCanPreviousPage","getState","getCanNextPage","previousPage","nextPage","getPrePaginationRowModel","getExpandedRowModel","getPaginationRowModel","_getPaginationRowModel","_table$options$pageCo2","ceil","rows","length"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Pinning.js","sources":["../../../src/features/Pinning.ts"],"sourcesContent":["import { TableFeature } from '../core/table'\nimport {\n OnChangeFn,\n Updater,\n Table,\n Column,\n Row,\n Cell,\n RowData,\n} from '../types'\nimport { makeStateUpdater, memo } from '../utils'\n\nexport type ColumnPinningPosition = false | 'left' | 'right'\n\nexport interface ColumnPinningState {\n left?: string[]\n right?: string[]\n}\n\nexport interface ColumnPinningTableState {\n columnPinning: ColumnPinningState\n}\n\nexport interface ColumnPinningOptions {\n onColumnPinningChange?: OnChangeFn<ColumnPinningState>\n enablePinning?: boolean\n}\n\nexport interface ColumnPinningDefaultOptions {\n onColumnPinningChange: OnChangeFn<ColumnPinningState>\n}\n\nexport interface ColumnPinningColumnDef {\n enablePinning?: boolean\n}\n\nexport interface ColumnPinningColumn {\n getCanPin: () => boolean\n getPinnedIndex: () => number\n getIsPinned: () => ColumnPinningPosition\n pin: (position: ColumnPinningPosition) => void\n}\n\nexport interface ColumnPinningRow<TData extends RowData> {\n getLeftVisibleCells: () => Cell<TData, unknown>[]\n getCenterVisibleCells: () => Cell<TData, unknown>[]\n getRightVisibleCells: () => Cell<TData, unknown>[]\n}\n\nexport interface ColumnPinningInstance<TData extends RowData> {\n setColumnPinning: (updater: Updater<ColumnPinningState>) => void\n resetColumnPinning: (defaultState?: boolean) => void\n getIsSomeColumnsPinned: (position?: ColumnPinningPosition) => boolean\n getLeftLeafColumns: () => Column<TData, unknown>[]\n getRightLeafColumns: () => Column<TData, unknown>[]\n getCenterLeafColumns: () => Column<TData, unknown>[]\n}\n\n//\n\nconst getDefaultPinningState = (): ColumnPinningState => ({\n left: [],\n right: [],\n})\n\nexport const Pinning: TableFeature = {\n getInitialState: (state): ColumnPinningTableState => {\n return {\n columnPinning: getDefaultPinningState(),\n ...state,\n }\n },\n\n getDefaultOptions: <TData extends RowData>(\n table: Table<TData>\n ): ColumnPinningDefaultOptions => {\n return {\n onColumnPinningChange: makeStateUpdater('columnPinning', table),\n }\n },\n\n createColumn: <TData extends RowData, TValue>(\n column: Column<TData, TValue>,\n table: Table<TData>\n ): ColumnPinningColumn => {\n return {\n pin: position => {\n const columnIds = column\n .getLeafColumns()\n .map(d => d.id)\n .filter(Boolean) as string[]\n\n table.setColumnPinning(old => {\n if (position === 'right') {\n return {\n left: (old?.left ?? []).filter(d => !columnIds?.includes(d)),\n right: [\n ...(old?.right ?? []).filter(d => !columnIds?.includes(d)),\n ...columnIds,\n ],\n }\n }\n\n if (position === 'left') {\n return {\n left: [\n ...(old?.left ?? []).filter(d => !columnIds?.includes(d)),\n ...columnIds,\n ],\n right: (old?.right ?? []).filter(d => !columnIds?.includes(d)),\n }\n }\n\n return {\n left: (old?.left ?? []).filter(d => !columnIds?.includes(d)),\n right: (old?.right ?? []).filter(d => !columnIds?.includes(d)),\n }\n })\n },\n\n getCanPin: () => {\n const leafColumns = column.getLeafColumns()\n\n return leafColumns.some(\n d =>\n (d.columnDef.enablePinning ?? true) &&\n (table.options.enablePinning ?? true)\n )\n },\n\n getIsPinned: () => {\n const leafColumnIds = column.getLeafColumns().map(d => d.id)\n\n const { left, right } = table.getState().columnPinning\n\n const isLeft = leafColumnIds.some(d => left?.includes(d))\n const isRight = leafColumnIds.some(d => right?.includes(d))\n\n return isLeft ? 'left' : isRight ? 'right' : false\n },\n\n getPinnedIndex: () => {\n const position = column.getIsPinned()\n\n return position\n ? table.getState().columnPinning?.[position]?.indexOf(column.id) ?? -1\n : 0\n },\n }\n },\n\n createRow: <TData extends RowData>(\n row: Row<TData>,\n table: Table<TData>\n ): ColumnPinningRow<TData> => {\n return {\n getCenterVisibleCells: memo(\n () => [\n row._getAllVisibleCells(),\n table.getState().columnPinning.left,\n table.getState().columnPinning.right,\n ],\n (allCells, left, right) => {\n const leftAndRight: string[] = [...(left ?? []), ...(right ?? [])]\n\n return allCells.filter(d => !leftAndRight.includes(d.column.id))\n },\n {\n key:\n process.env.NODE_ENV === 'production' &&\n 'row.getCenterVisibleCells',\n debug: () => table.options.debugAll ?? table.options.debugRows,\n }\n ),\n getLeftVisibleCells: memo(\n () => [\n row._getAllVisibleCells(),\n table.getState().columnPinning.left,\n ,\n ],\n (allCells, left) => {\n const cells = (left ?? [])\n .map(\n columnId => allCells.find(cell => cell.column.id === columnId)!\n )\n .filter(Boolean)\n .map(d => ({ ...d, position: 'left' } as Cell<TData, unknown>))\n\n return cells\n },\n {\n key:\n process.env.NODE_ENV === 'production' && 'row.getLeftVisibleCells',\n debug: () => table.options.debugAll ?? table.options.debugRows,\n }\n ),\n getRightVisibleCells: memo(\n () => [row._getAllVisibleCells(), table.getState().columnPinning.right],\n (allCells, right) => {\n const cells = (right ?? [])\n .map(\n columnId => allCells.find(cell => cell.column.id === columnId)!\n )\n .filter(Boolean)\n .map(d => ({ ...d, position: 'right' } as Cell<TData, unknown>))\n\n return cells\n },\n {\n key:\n process.env.NODE_ENV === 'production' && 'row.getRightVisibleCells',\n debug: () => table.options.debugAll ?? table.options.debugRows,\n }\n ),\n }\n },\n\n createTable: <TData extends RowData>(\n table: Table<TData>\n ): ColumnPinningInstance<TData> => {\n return {\n setColumnPinning: updater =>\n table.options.onColumnPinningChange?.(updater),\n\n resetColumnPinning: defaultState =>\n table.setColumnPinning(\n defaultState\n ? getDefaultPinningState()\n : table.initialState?.columnPinning ?? getDefaultPinningState()\n ),\n\n getIsSomeColumnsPinned: position => {\n const pinningState = table.getState().columnPinning\n\n if (!position) {\n return Boolean(\n pinningState.left?.length || pinningState.right?.length\n )\n }\n return Boolean(pinningState[position]?.length)\n },\n\n getLeftLeafColumns: memo(\n () => [table.getAllLeafColumns(), table.getState().columnPinning.left],\n (allColumns, left) => {\n return (left ?? [])\n .map(columnId => allColumns.find(column => column.id === columnId)!)\n .filter(Boolean)\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getLeftLeafColumns',\n debug: () => table.options.debugAll ?? table.options.debugColumns,\n }\n ),\n\n getRightLeafColumns: memo(\n () => [table.getAllLeafColumns(), table.getState().columnPinning.right],\n (allColumns, right) => {\n return (right ?? [])\n .map(columnId => allColumns.find(column => column.id === columnId)!)\n .filter(Boolean)\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getRightLeafColumns',\n debug: () => table.options.debugAll ?? table.options.debugColumns,\n }\n ),\n\n getCenterLeafColumns: memo(\n () => [\n table.getAllLeafColumns(),\n table.getState().columnPinning.left,\n table.getState().columnPinning.right,\n ],\n (allColumns, left, right) => {\n const leftAndRight: string[] = [...(left ?? []), ...(right ?? [])]\n\n return allColumns.filter(d => !leftAndRight.includes(d.id))\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getCenterLeafColumns',\n debug: () => table.options.debugAll ?? table.options.debugColumns,\n }\n ),\n }\n },\n}\n"],"names":["getDefaultPinningState","left","right","Pinning","getInitialState","state","columnPinning","getDefaultOptions","table","onColumnPinningChange","makeStateUpdater","createColumn","column","pin","position","columnIds","getLeafColumns","map","d","id","filter","Boolean","setColumnPinning","old","_old$left3","_old$right3","_old$left","_old$right","includes","_old$left2","_old$right2","getCanPin","leafColumns","some","_d$columnDef$enablePi","_table$options$enable","columnDef","enablePinning","options","getIsPinned","leafColumnIds","getState","isLeft","isRight","getPinnedIndex","_table$getState$colum","_table$getState$colum2","_table$getState$colum3","indexOf","createRow","row","getCenterVisibleCells","memo","_getAllVisibleCells","allCells","leftAndRight","key","process","env","NODE_ENV","debug","_table$options$debugA","debugAll","debugRows","getLeftVisibleCells","cells","columnId","find","cell","_table$options$debugA2","getRightVisibleCells","_table$options$debugA3","createTable","updater","resetColumnPinning","defaultState","_table$initialState$c","_table$initialState","initialState","getIsSomeColumnsPinned","_pinningState$positio","pinningState","_pinningState$left","_pinningState$right","length","getLeftLeafColumns","getAllLeafColumns","allColumns","_table$options$debugA4","debugColumns","getRightLeafColumns","_table$options$debugA5","getCenterLeafColumns","_table$options$debugA6"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Pinning.js","sources":["../../../src/features/Pinning.ts"],"sourcesContent":["import { TableFeature } from '../core/table'\nimport {\n OnChangeFn,\n Updater,\n Table,\n Column,\n Row,\n Cell,\n RowData,\n} from '../types'\nimport { makeStateUpdater, memo } from '../utils'\n\nexport type ColumnPinningPosition = false | 'left' | 'right'\n\nexport interface ColumnPinningState {\n left?: string[]\n right?: string[]\n}\n\nexport interface ColumnPinningTableState {\n columnPinning: ColumnPinningState\n}\n\nexport interface ColumnPinningOptions {\n onColumnPinningChange?: OnChangeFn<ColumnPinningState>\n enablePinning?: boolean\n}\n\nexport interface ColumnPinningDefaultOptions {\n onColumnPinningChange: OnChangeFn<ColumnPinningState>\n}\n\nexport interface ColumnPinningColumnDef {\n enablePinning?: boolean\n}\n\nexport interface ColumnPinningColumn {\n getCanPin: () => boolean\n getPinnedIndex: () => number\n getIsPinned: () => ColumnPinningPosition\n pin: (position: ColumnPinningPosition) => void\n}\n\nexport interface ColumnPinningRow<TData extends RowData> {\n getLeftVisibleCells: () => Cell<TData, unknown>[]\n getCenterVisibleCells: () => Cell<TData, unknown>[]\n getRightVisibleCells: () => Cell<TData, unknown>[]\n}\n\nexport interface ColumnPinningInstance<TData extends RowData> {\n setColumnPinning: (updater: Updater<ColumnPinningState>) => void\n resetColumnPinning: (defaultState?: boolean) => void\n getIsSomeColumnsPinned: (position?: ColumnPinningPosition) => boolean\n getLeftLeafColumns: () => Column<TData, unknown>[]\n getRightLeafColumns: () => Column<TData, unknown>[]\n getCenterLeafColumns: () => Column<TData, unknown>[]\n}\n\n//\n\nconst getDefaultPinningState = (): ColumnPinningState => ({\n left: [],\n right: [],\n})\n\nexport const Pinning: TableFeature = {\n getInitialState: (state): ColumnPinningTableState => {\n return {\n columnPinning: getDefaultPinningState(),\n ...state,\n }\n },\n\n getDefaultOptions: <TData extends RowData>(\n table: Table<TData>\n ): ColumnPinningDefaultOptions => {\n return {\n onColumnPinningChange: makeStateUpdater('columnPinning', table),\n }\n },\n\n createColumn: <TData extends RowData, TValue>(\n column: Column<TData, TValue>,\n table: Table<TData>\n ): ColumnPinningColumn => {\n return {\n pin: position => {\n const columnIds = column\n .getLeafColumns()\n .map(d => d.id)\n .filter(Boolean) as string[]\n\n table.setColumnPinning(old => {\n if (position === 'right') {\n return {\n left: (old?.left ?? []).filter(d => !columnIds?.includes(d)),\n right: [\n ...(old?.right ?? []).filter(d => !columnIds?.includes(d)),\n ...columnIds,\n ],\n }\n }\n\n if (position === 'left') {\n return {\n left: [\n ...(old?.left ?? []).filter(d => !columnIds?.includes(d)),\n ...columnIds,\n ],\n right: (old?.right ?? []).filter(d => !columnIds?.includes(d)),\n }\n }\n\n return {\n left: (old?.left ?? []).filter(d => !columnIds?.includes(d)),\n right: (old?.right ?? []).filter(d => !columnIds?.includes(d)),\n }\n })\n },\n\n getCanPin: () => {\n const leafColumns = column.getLeafColumns()\n\n return leafColumns.some(\n d =>\n (d.columnDef.enablePinning ?? true) &&\n (table.options.enablePinning ?? true)\n )\n },\n\n getIsPinned: () => {\n const leafColumnIds = column.getLeafColumns().map(d => d.id)\n\n const { left, right } = table.getState().columnPinning\n\n const isLeft = leafColumnIds.some(d => left?.includes(d))\n const isRight = leafColumnIds.some(d => right?.includes(d))\n\n return isLeft ? 'left' : isRight ? 'right' : false\n },\n\n getPinnedIndex: () => {\n const position = column.getIsPinned()\n\n return position\n ? table.getState().columnPinning?.[position]?.indexOf(column.id) ?? -1\n : 0\n },\n }\n },\n\n createRow: <TData extends RowData>(\n row: Row<TData>,\n table: Table<TData>\n ): ColumnPinningRow<TData> => {\n return {\n getCenterVisibleCells: memo(\n () => [\n row._getAllVisibleCells(),\n table.getState().columnPinning.left,\n table.getState().columnPinning.right,\n ],\n (allCells, left, right) => {\n const leftAndRight: string[] = [...(left ?? []), ...(right ?? [])]\n\n return allCells.filter(d => !leftAndRight.includes(d.column.id))\n },\n {\n key:\n process.env.NODE_ENV === 'production' &&\n 'row.getCenterVisibleCells',\n debug: () => table.options.debugAll ?? table.options.debugRows,\n }\n ),\n getLeftVisibleCells: memo(\n () => [\n row._getAllVisibleCells(),\n table.getState().columnPinning.left,\n ,\n ],\n (allCells, left) => {\n const cells = (left ?? [])\n .map(\n columnId => allCells.find(cell => cell.column.id === columnId)!\n )\n .filter(Boolean)\n .map(d => ({ ...d, position: 'left' } as Cell<TData, unknown>))\n\n return cells\n },\n {\n key:\n process.env.NODE_ENV === 'production' && 'row.getLeftVisibleCells',\n debug: () => table.options.debugAll ?? table.options.debugRows,\n }\n ),\n getRightVisibleCells: memo(\n () => [row._getAllVisibleCells(), table.getState().columnPinning.right],\n (allCells, right) => {\n const cells = (right ?? [])\n .map(\n columnId => allCells.find(cell => cell.column.id === columnId)!\n )\n .filter(Boolean)\n .map(d => ({ ...d, position: 'right' } as Cell<TData, unknown>))\n\n return cells\n },\n {\n key:\n process.env.NODE_ENV === 'production' && 'row.getRightVisibleCells',\n debug: () => table.options.debugAll ?? table.options.debugRows,\n }\n ),\n }\n },\n\n createTable: <TData extends RowData>(\n table: Table<TData>\n ): ColumnPinningInstance<TData> => {\n return {\n setColumnPinning: updater =>\n table.options.onColumnPinningChange?.(updater),\n\n resetColumnPinning: defaultState =>\n table.setColumnPinning(\n defaultState\n ? getDefaultPinningState()\n : table.initialState?.columnPinning ?? getDefaultPinningState()\n ),\n\n getIsSomeColumnsPinned: position => {\n const pinningState = table.getState().columnPinning\n\n if (!position) {\n return Boolean(\n pinningState.left?.length || pinningState.right?.length\n )\n }\n return Boolean(pinningState[position]?.length)\n },\n\n getLeftLeafColumns: memo(\n () => [table.getAllLeafColumns(), table.getState().columnPinning.left],\n (allColumns, left) => {\n return (left ?? [])\n .map(columnId => allColumns.find(column => column.id === columnId)!)\n .filter(Boolean)\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getLeftLeafColumns',\n debug: () => table.options.debugAll ?? table.options.debugColumns,\n }\n ),\n\n getRightLeafColumns: memo(\n () => [table.getAllLeafColumns(), table.getState().columnPinning.right],\n (allColumns, right) => {\n return (right ?? [])\n .map(columnId => allColumns.find(column => column.id === columnId)!)\n .filter(Boolean)\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getRightLeafColumns',\n debug: () => table.options.debugAll ?? table.options.debugColumns,\n }\n ),\n\n getCenterLeafColumns: memo(\n () => [\n table.getAllLeafColumns(),\n table.getState().columnPinning.left,\n table.getState().columnPinning.right,\n ],\n (allColumns, left, right) => {\n const leftAndRight: string[] = [...(left ?? []), ...(right ?? [])]\n\n return allColumns.filter(d => !leftAndRight.includes(d.id))\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getCenterLeafColumns',\n debug: () => table.options.debugAll ?? table.options.debugColumns,\n }\n ),\n }\n },\n}\n"],"names":["getDefaultPinningState","left","right","Pinning","getInitialState","state","columnPinning","getDefaultOptions","table","onColumnPinningChange","makeStateUpdater","createColumn","column","pin","position","columnIds","getLeafColumns","map","d","id","filter","Boolean","setColumnPinning","old","_old$left3","_old$right3","_old$left","_old$right","includes","_old$left2","_old$right2","getCanPin","leafColumns","some","_d$columnDef$enablePi","_table$options$enable","columnDef","enablePinning","options","getIsPinned","leafColumnIds","getState","isLeft","isRight","getPinnedIndex","_table$getState$colum","_table$getState$colum2","_table$getState$colum3","indexOf","createRow","row","getCenterVisibleCells","memo","_getAllVisibleCells","allCells","leftAndRight","key","process","env","NODE_ENV","debug","_table$options$debugA","debugAll","debugRows","getLeftVisibleCells","cells","columnId","find","cell","_table$options$debugA2","getRightVisibleCells","_table$options$debugA3","createTable","updater","resetColumnPinning","defaultState","_table$initialState$c","_table$initialState","initialState","getIsSomeColumnsPinned","_pinningState$positio","pinningState","_pinningState$left","_pinningState$right","length","getLeftLeafColumns","getAllLeafColumns","allColumns","_table$options$debugA4","debugColumns","getRightLeafColumns","_table$options$debugA5","getCenterLeafColumns","_table$options$debugA6"],"mappings":"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"}
|