@tanstack/table-core 8.3.3 → 8.3.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/cjs/core/cell.js.map +1 -1
- package/build/cjs/core/row.js.map +1 -1
- package/build/cjs/core/table.js.map +1 -1
- package/build/cjs/features/ColumnSizing.js.map +1 -1
- package/build/cjs/features/Expanding.js.map +1 -1
- package/build/cjs/features/Filters.js.map +1 -1
- package/build/cjs/features/Grouping.js.map +1 -1
- package/build/cjs/features/Ordering.js.map +1 -1
- package/build/cjs/features/Pagination.js.map +1 -1
- package/build/cjs/features/Pinning.js.map +1 -1
- package/build/cjs/features/RowSelection.js.map +1 -1
- package/build/cjs/features/Sorting.js.map +1 -1
- package/build/cjs/features/Visibility.js.map +1 -1
- package/build/cjs/index.js +2 -0
- package/build/cjs/index.js.map +1 -1
- package/build/cjs/utils/filterRowsUtils.js.map +1 -1
- package/build/cjs/utils/getCoreRowModel.js.map +1 -1
- package/build/cjs/utils/getExpandedRowModel.js.map +1 -1
- package/build/cjs/utils/getFacetedMinMaxValues.js.map +1 -1
- package/build/cjs/utils/getFacetedRowModel.js.map +1 -1
- package/build/cjs/utils/getFacetedUniqueValues.js.map +1 -1
- package/build/cjs/utils/getFilteredRowModel.js.map +1 -1
- package/build/cjs/utils/getGroupedRowModel.js.map +1 -1
- package/build/cjs/utils/getPaginationRowModel.js.map +1 -1
- package/build/cjs/utils/getSortedRowModel.js.map +1 -1
- package/build/cjs/utils.js.map +1 -1
- package/build/esm/index.js +1 -1
- package/build/esm/index.js.map +1 -1
- package/build/stats-html.html +1 -1
- package/build/stats-react.json +313 -307
- package/build/types/index.d.ts +6 -12
- package/build/umd/index.development.js +1 -0
- package/build/umd/index.development.js.map +1 -1
- package/build/umd/index.production.js +1 -1
- package/build/umd/index.production.js.map +1 -1
- package/package.json +1 -1
- package/src/core/cell.ts +1 -5
- package/src/core/row.ts +1 -1
- package/src/core/table.ts +1 -1
- package/src/features/ColumnSizing.ts +1 -9
- package/src/features/Expanding.ts +2 -12
- package/src/features/Filters.ts +0 -1
- package/src/features/Grouping.ts +0 -1
- package/src/features/Ordering.ts +1 -8
- package/src/features/Pagination.ts +1 -8
- package/src/features/Pinning.ts +0 -1
- package/src/features/RowSelection.ts +15 -14
- package/src/features/Sorting.ts +1 -9
- package/src/features/Visibility.ts +0 -1
- package/src/index.ts +1 -0
- package/src/types.ts +1 -10
- package/src/utils/filterRowsUtils.ts +1 -1
- package/src/utils/getCoreRowModel.ts +1 -1
- package/src/utils/getExpandedRowModel.ts +1 -1
- package/src/utils/getFacetedMinMaxValues.ts +1 -1
- package/src/utils/getFacetedRowModel.ts +1 -1
- package/src/utils/getFacetedUniqueValues.ts +1 -1
- package/src/utils/getFilteredRowModel.ts +1 -1
- package/src/utils/getGroupedRowModel.ts +1 -1
- package/src/utils/getPaginationRowModel.ts +1 -1
- package/src/utils/getSortedRowModel.ts +1 -1
- package/src/utils.ts +5 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cell.js","sources":["../../../src/core/cell.ts"],"sourcesContent":["import { RowData, Cell, Column, Row, Table } from '../types'\nimport {
|
|
1
|
+
{"version":3,"file":"cell.js","sources":["../../../src/core/cell.ts"],"sourcesContent":["import { RowData, Cell, Column, Row, Table } from '../types'\nimport { Getter } from '../utils'\n\nexport type CellContext<TData extends RowData, TValue> = {\n table: Table<TData>\n column: Column<TData, TValue>\n row: Row<TData>\n cell: Cell<TData, TValue>\n getValue: Getter<TValue>\n renderValue: Getter<TValue | null>\n}\n\nexport type CoreCell<TData extends RowData, TValue> = {\n id: string\n getValue: CellContext<TData, TValue>['getValue']\n renderValue: CellContext<TData, TValue>['renderValue']\n row: Row<TData>\n column: Column<TData, TValue>\n getContext: () => CellContext<TData, TValue>\n}\n\nexport function createCell<TData extends RowData, TValue>(\n table: Table<TData>,\n row: Row<TData>,\n column: Column<TData, TValue>,\n columnId: string\n) {\n const getRenderValue = () =>\n cell.getValue() ?? table.options.renderFallbackValue\n\n const cell: CoreCell<TData, TValue> = {\n id: `${row.id}_${column.id}`,\n row,\n column,\n getValue: () => row.getValue(columnId),\n renderValue: getRenderValue,\n getContext: () => ({\n table,\n column,\n row,\n cell: cell as Cell<TData, TValue>,\n getValue: cell.getValue,\n renderValue: cell.renderValue,\n }),\n }\n\n table._features.forEach(feature => {\n Object.assign(\n cell,\n feature.createCell?.(\n cell as Cell<TData, TValue>,\n column,\n row as Row<TData>,\n table\n )\n )\n }, {})\n\n return cell as Cell<TData, TValue>\n}\n"],"names":["createCell","table","row","column","columnId","getRenderValue","cell","getValue","options","renderFallbackValue","id","renderValue","getContext","_features","forEach","feature","Object","assign"],"mappings":";;;;;;;;;;;;;;AAqBO,SAASA,UAAT,CACLC,KADK,EAELC,GAFK,EAGLC,MAHK,EAILC,QAJK,EAKL;AACA,EAAA,MAAMC,cAAc,GAAG,MAAA;AAAA,IAAA,IAAA,cAAA,CAAA;;IAAA,OACrBC,CAAAA,cAAAA,GAAAA,IAAI,CAACC,QAAL,EADqB,6BACFN,KAAK,CAACO,OAAN,CAAcC,mBADZ,CAAA;GAAvB,CAAA;;AAGA,EAAA,MAAMH,IAA6B,GAAG;AACpCI,IAAAA,EAAE,EAAKR,GAAG,CAACQ,EAAT,GAAeP,GAAAA,GAAAA,MAAM,CAACO,EADY;IAEpCR,GAFoC;IAGpCC,MAHoC;AAIpCI,IAAAA,QAAQ,EAAE,MAAML,GAAG,CAACK,QAAJ,CAAaH,QAAb,CAJoB;AAKpCO,IAAAA,WAAW,EAAEN,cALuB;AAMpCO,IAAAA,UAAU,EAAE,OAAO;MACjBX,KADiB;MAEjBE,MAFiB;MAGjBD,GAHiB;AAIjBI,MAAAA,IAAI,EAAEA,IAJW;MAKjBC,QAAQ,EAAED,IAAI,CAACC,QALE;MAMjBI,WAAW,EAAEL,IAAI,CAACK,WAAAA;KANR,CAAA;GANd,CAAA;;AAgBAV,EAAAA,KAAK,CAACY,SAAN,CAAgBC,OAAhB,CAAwBC,OAAO,IAAI;IACjCC,MAAM,CAACC,MAAP,CACEX,IADF,EAEES,OAAO,CAACf,UAFV,IAEEe,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,OAAO,CAACf,UAAR,CACEM,IADF,EAEEH,MAFF,EAGED,GAHF,EAIED,KAJF,CAFF,CAAA,CAAA;AASD,GAVD,EAUG,EAVH,CAAA,CAAA;;AAYA,EAAA,OAAOK,IAAP,CAAA;AACD;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"row.js","sources":["../../../src/core/row.ts"],"sourcesContent":["import { RowData, Cell, Row,
|
|
1
|
+
{"version":3,"file":"row.js","sources":["../../../src/core/row.ts"],"sourcesContent":["import { RowData, Cell, Row, Table } from '../types'\nimport { flattenBy, memo } from '../utils'\nimport { createCell } from './cell'\n\nexport type CoreRow<TData extends RowData> = {\n id: string\n index: number\n original: TData\n depth: number\n _valuesCache: Record<string, unknown>\n getValue: <TValue>(columnId: string) => TValue\n renderValue: <TValue>(columnId: string) => TValue\n subRows: Row<TData>[]\n getLeafRows: () => Row<TData>[]\n originalSubRows?: TData[]\n getAllCells: () => Cell<TData, unknown>[]\n _getAllCellsByColumnId: () => Record<string, Cell<TData, unknown>>\n}\n\nexport const createRow = <TData extends RowData>(\n table: Table<TData>,\n id: string,\n original: TData,\n rowIndex: number,\n depth: number,\n subRows?: Row<TData>[]\n): Row<TData> => {\n let row: CoreRow<TData> = {\n id,\n index: rowIndex,\n original,\n depth,\n _valuesCache: {},\n getValue: columnId => {\n if (row._valuesCache.hasOwnProperty(columnId)) {\n return row._valuesCache[columnId]\n }\n\n const column = table.getColumn(columnId)\n\n if (!column.accessorFn) {\n return undefined\n }\n\n row._valuesCache[columnId] = column.accessorFn(\n row.original as TData,\n rowIndex\n )\n\n return row._valuesCache[columnId] as any\n },\n renderValue: columnId =>\n row.getValue(columnId) ?? table.options.renderFallbackValue,\n subRows: subRows ?? [],\n getLeafRows: () => flattenBy(row.subRows, d => d.subRows),\n getAllCells: memo(\n () => [table.getAllLeafColumns()],\n leafColumns => {\n return leafColumns.map(column => {\n return createCell(table, row as Row<TData>, column, column.id)\n })\n },\n {\n key: process.env.NODE_ENV === 'development' && 'row.getAllCells',\n debug: () => table.options.debugAll ?? table.options.debugRows,\n }\n ),\n\n _getAllCellsByColumnId: memo(\n () => [row.getAllCells()],\n allCells => {\n return allCells.reduce((acc, cell) => {\n acc[cell.column.id] = cell\n return acc\n }, {} as Record<string, Cell<TData, unknown>>)\n },\n {\n key:\n process.env.NODE_ENV === 'production' && 'row.getAllCellsByColumnId',\n debug: () => table.options.debugAll ?? table.options.debugRows,\n }\n ),\n }\n\n for (let i = 0; i < table._features.length; i++) {\n const feature = table._features[i]\n Object.assign(row, feature?.createRow?.(row, table))\n }\n\n return row as Row<TData>\n}\n"],"names":["createRow","table","id","original","rowIndex","depth","subRows","row","index","_valuesCache","getValue","columnId","hasOwnProperty","column","getColumn","accessorFn","undefined","renderValue","options","renderFallbackValue","getLeafRows","flattenBy","d","getAllCells","memo","getAllLeafColumns","leafColumns","map","createCell","key","process","env","NODE_ENV","debug","debugAll","debugRows","_getAllCellsByColumnId","allCells","reduce","acc","cell","i","_features","length","feature","Object","assign"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"table.js","sources":["../../../src/core/table.ts"],"sourcesContent":["import { flattenBy, functionalUpdate, memo, RequiredKeys } from '../utils'\n\nimport {\n Updater,\n TableOptionsResolved,\n TableState,\n Table,\n ColumnDefTemplate,\n InitialTableState,\n Row,\n Column,\n RowModel,\n ColumnDef,\n TableOptions,\n RowData,\n TableMeta,\n} from '../types'\n\n//\nimport { createColumn } from './column'\nimport { Headers } from './headers'\n//\n\nimport { ColumnSizing } from '../features/ColumnSizing'\nimport { Expanding } from '../features/Expanding'\nimport { Filters } from '../features/Filters'\nimport { Grouping } from '../features/Grouping'\nimport { Ordering } from '../features/Ordering'\nimport { Pagination } from '../features/Pagination'\nimport { Pinning } from '../features/Pinning'\nimport { RowSelection } from '../features/RowSelection'\nimport { Sorting } from '../features/Sorting'\nimport { Visibility } from '../features/Visibility'\n\nexport type TableFeature = {\n getDefaultOptions?: (table: any) => any\n getInitialState?: (initialState?: InitialTableState) => any\n createTable?: (table: any) => any\n getDefaultColumnDef?: () => any\n createColumn?: (column: any, table: any) => any\n createHeader?: (column: any, table: any) => any\n createCell?: (cell: any, column: any, row: any, table: any) => any\n createRow?: (row: any, table: any) => any\n}\n\nconst features = [\n Headers,\n Visibility,\n Ordering,\n Pinning,\n Filters,\n Sorting,\n Grouping,\n Expanding,\n Pagination,\n RowSelection,\n ColumnSizing,\n] as const\n\n//\n\nexport type CoreTableState = {}\n\nexport type CoreOptions<TData extends RowData> = {\n data: TData[]\n state: Partial<TableState>\n onStateChange: (updater: Updater<TableState>) => void\n debugAll?: boolean\n debugTable?: boolean\n debugHeaders?: boolean\n debugColumns?: boolean\n debugRows?: boolean\n initialState?: InitialTableState\n autoResetAll?: boolean\n mergeOptions?: (\n defaultOptions: TableOptions<TData>,\n options: Partial<TableOptions<TData>>\n ) => TableOptions<TData>\n meta?: TableMeta\n getCoreRowModel: (table: Table<any>) => () => RowModel<any>\n getSubRows?: (originalRow: TData, index: number) => undefined | TData[]\n getRowId?: (originalRow: TData, index: number, parent?: Row<TData>) => string\n columns: ColumnDef<TData, any>[]\n defaultColumn?: Partial<ColumnDef<TData, unknown>>\n renderFallbackValue: any\n}\n\nexport type CoreInstance<TData extends RowData> = {\n initialState: TableState\n reset: () => void\n options: RequiredKeys<TableOptionsResolved<TData>, 'state'>\n setOptions: (newOptions: Updater<TableOptionsResolved<TData>>) => void\n getState: () => TableState\n setState: (updater: Updater<TableState>) => void\n _features: readonly TableFeature[]\n _queue: (cb: () => void) => void\n _getRowId: (_: TData, index: number, parent?: Row<TData>) => string\n getCoreRowModel: () => RowModel<TData>\n _getCoreRowModel?: () => RowModel<TData>\n getRowModel: () => RowModel<TData>\n getRow: (id: string) => Row<TData>\n _getDefaultColumnDef: () => Partial<ColumnDef<TData, unknown>>\n _getColumnDefs: () => ColumnDef<TData, unknown>[]\n _getAllFlatColumnsById: () => Record<string, Column<TData, unknown>>\n getAllColumns: () => Column<TData, unknown>[]\n getAllFlatColumns: () => Column<TData, unknown>[]\n getAllLeafColumns: () => Column<TData, unknown>[]\n getColumn: (columnId: string) => Column<TData, unknown>\n}\n\nexport function createTable<TData extends RowData>(\n options: TableOptionsResolved<TData>\n): Table<TData> {\n if (options.debugAll || options.debugTable) {\n console.info('Creating Table Instance...')\n }\n\n let table = { _features: features } as unknown as Table<TData>\n\n const defaultOptions = table._features.reduce((obj, feature) => {\n return Object.assign(obj, feature.getDefaultOptions?.(table))\n }, {}) as TableOptionsResolved<TData>\n\n const mergeOptions = (options: TableOptionsResolved<TData>) => {\n if (table.options.mergeOptions) {\n return table.options.mergeOptions(defaultOptions, options)\n }\n\n return {\n ...defaultOptions,\n ...options,\n }\n }\n\n const coreInitialState: CoreTableState = {}\n\n let initialState = {\n ...coreInitialState,\n ...(options.initialState ?? {}),\n } as TableState\n\n table._features.forEach(feature => {\n initialState = feature.getInitialState?.(initialState) ?? initialState\n })\n\n const queued: (() => void)[] = []\n let queuedTimeout = false\n\n const coreInstance: CoreInstance<TData> = {\n _features: features,\n options: {\n ...defaultOptions,\n ...options,\n },\n initialState,\n _queue: cb => {\n queued.push(cb)\n\n if (!queuedTimeout) {\n queuedTimeout = true\n\n // Schedule a microtask to run the queued callbacks after\n // the current call stack (render, etc) has finished.\n Promise.resolve()\n .then(() => {\n while (queued.length) {\n queued.shift()!()\n }\n queuedTimeout = false\n })\n .catch(error =>\n setTimeout(() => {\n throw error\n })\n )\n }\n },\n reset: () => {\n table.setState(table.initialState)\n },\n setOptions: updater => {\n const newOptions = functionalUpdate(updater, table.options)\n table.options = mergeOptions(newOptions) as RequiredKeys<\n TableOptionsResolved<TData>,\n 'state'\n >\n },\n\n getState: () => {\n return table.options.state as TableState\n },\n\n setState: (updater: Updater<TableState>) => {\n table.options.onStateChange?.(updater)\n },\n\n _getRowId: (row: TData, index: number, parent?: Row<TData>) =>\n table.options.getRowId?.(row, index, parent) ??\n `${parent ? [parent.id, index].join('.') : index}`,\n\n getCoreRowModel: () => {\n if (!table._getCoreRowModel) {\n table._getCoreRowModel = table.options.getCoreRowModel(table)\n }\n\n return table._getCoreRowModel!()\n },\n\n // The final calls start at the bottom of the model,\n // expanded rows, which then work their way up\n\n getRowModel: () => {\n return table.getPaginationRowModel()\n },\n getRow: (id: string) => {\n const row = table.getRowModel().rowsById[id]\n\n if (!row) {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error(`getRow expected an ID, but got ${id}`)\n }\n throw new Error()\n }\n\n return row\n },\n _getDefaultColumnDef: memo(\n () => [table.options.defaultColumn],\n defaultColumn => {\n defaultColumn = (defaultColumn ?? {}) as Partial<\n ColumnDef<TData, unknown>\n >\n\n return {\n header: props => props.header.column.id,\n footer: props => props.header.column.id,\n cell: props => props.renderValue<any>()?.toString?.() ?? null,\n ...table._features.reduce((obj, feature) => {\n return Object.assign(obj, feature.getDefaultColumnDef?.())\n }, {}),\n ...defaultColumn,\n } as Partial<ColumnDef<TData, unknown>>\n },\n {\n debug: () => table.options.debugAll ?? table.options.debugColumns,\n key: process.env.NODE_ENV === 'development' && 'getDefaultColumnDef',\n }\n ),\n\n _getColumnDefs: () => table.options.columns,\n\n getAllColumns: memo(\n () => [table._getColumnDefs()],\n columnDefs => {\n const recurseColumns = (\n columnDefs: ColumnDef<TData, unknown>[],\n parent?: Column<TData, unknown>,\n depth = 0\n ): Column<TData, unknown>[] => {\n return columnDefs.map(columnDef => {\n const column = createColumn(table, columnDef, depth, parent)\n\n column.columns = columnDef.columns\n ? recurseColumns(columnDef.columns, column, depth + 1)\n : []\n\n return column\n })\n }\n\n return recurseColumns(columnDefs)\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getAllColumns',\n debug: () => table.options.debugAll ?? table.options.debugColumns,\n }\n ),\n\n getAllFlatColumns: memo(\n () => [table.getAllColumns()],\n allColumns => {\n return allColumns.flatMap(column => {\n return column.getFlatColumns()\n })\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getAllFlatColumns',\n debug: () => table.options.debugAll ?? table.options.debugColumns,\n }\n ),\n\n _getAllFlatColumnsById: memo(\n () => [table.getAllFlatColumns()],\n flatColumns => {\n return flatColumns.reduce((acc, column) => {\n acc[column.id] = column\n return acc\n }, {} as Record<string, Column<TData, unknown>>)\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getAllFlatColumnsById',\n debug: () => table.options.debugAll ?? table.options.debugColumns,\n }\n ),\n\n getAllLeafColumns: memo(\n () => [table.getAllColumns(), table._getOrderColumnsFn()],\n (allColumns, orderColumns) => {\n let leafColumns = allColumns.flatMap(column => column.getLeafColumns())\n return orderColumns(leafColumns)\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getAllLeafColumns',\n debug: () => table.options.debugAll ?? table.options.debugColumns,\n }\n ),\n\n getColumn: columnId => {\n const column = table._getAllFlatColumnsById()[columnId]\n\n if (!column) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(`[Table] Column with id ${columnId} does not exist.`)\n }\n throw new Error()\n }\n\n return column\n },\n }\n\n Object.assign(table, coreInstance)\n\n table._features.forEach(feature => {\n return Object.assign(table, feature.createTable?.(table))\n })\n\n return table\n}\n"],"names":["features","Headers","Visibility","Ordering","Pinning","Filters","Sorting","Grouping","Expanding","Pagination","RowSelection","ColumnSizing","createTable","options","debugAll","debugTable","console","info","table","_features","defaultOptions","reduce","obj","feature","Object","assign","getDefaultOptions","mergeOptions","coreInitialState","initialState","forEach","getInitialState","queued","queuedTimeout","coreInstance","_queue","cb","push","Promise","resolve","then","length","shift","catch","error","setTimeout","reset","setState","setOptions","updater","newOptions","functionalUpdate","getState","state","onStateChange","_getRowId","row","index","parent","getRowId","id","join","getCoreRowModel","_getCoreRowModel","getRowModel","getPaginationRowModel","getRow","rowsById","process","env","NODE_ENV","Error","_getDefaultColumnDef","memo","defaultColumn","header","props","column","footer","cell","renderValue","toString","getDefaultColumnDef","debug","debugColumns","key","_getColumnDefs","columns","getAllColumns","columnDefs","recurseColumns","depth","map","columnDef","createColumn","getAllFlatColumns","allColumns","flatMap","getFlatColumns","_getAllFlatColumnsById","flatColumns","acc","getAllLeafColumns","_getOrderColumnsFn","orderColumns","leafColumns","getLeafColumns","getColumn","columnId","warn"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6CA,MAAMA,QAAQ,GAAG,CACfC,eADe,EAEfC,qBAFe,EAGfC,iBAHe,EAIfC,eAJe,EAKfC,eALe,EAMfC,eANe,EAOfC,iBAPe,EAQfC,mBARe,EASfC,qBATe,EAUfC,yBAVe,EAWfC,yBAXe,CAAjB;;AAiEO,SAASC,WAAT,CACLC,OADK,EAES;AAAA,EAAA,IAAA,qBAAA,CAAA;;AACd,EAAA,IAAIA,OAAO,CAACC,QAAR,IAAoBD,OAAO,CAACE,UAAhC,EAA4C;IAC1CC,OAAO,CAACC,IAAR,CAAa,4BAAb,CAAA,CAAA;AACD,GAAA;;AAED,EAAA,IAAIC,KAAK,GAAG;AAAEC,IAAAA,SAAS,EAAEnB,QAAAA;GAAzB,CAAA;;AAEA,EAAA,MAAMoB,cAAc,GAAGF,KAAK,CAACC,SAAN,CAAgBE,MAAhB,CAAuB,CAACC,GAAD,EAAMC,OAAN,KAAkB;AAC9D,IAAA,OAAOC,MAAM,CAACC,MAAP,CAAcH,GAAd,EAAmBC,OAAO,CAACG,iBAA3B,IAAA,IAAA,GAAA,KAAA,CAAA,GAAmBH,OAAO,CAACG,iBAAR,CAA4BR,KAA5B,CAAnB,CAAP,CAAA;GADqB,EAEpB,EAFoB,CAAvB,CAAA;;EAIA,MAAMS,YAAY,GAAId,OAAD,IAA0C;AAC7D,IAAA,IAAIK,KAAK,CAACL,OAAN,CAAcc,YAAlB,EAAgC;MAC9B,OAAOT,KAAK,CAACL,OAAN,CAAcc,YAAd,CAA2BP,cAA3B,EAA2CP,OAA3C,CAAP,CAAA;AACD,KAAA;;IAED,OAAO,EACL,GAAGO,cADE;MAEL,GAAGP,OAAAA;KAFL,CAAA;GALF,CAAA;;EAWA,MAAMe,gBAAgC,GAAG,EAAzC,CAAA;AAEA,EAAA,IAAIC,YAAY,GAAG,EACjB,GAAGD,gBADc;AAEjB,IAAA,IAAA,CAAA,qBAAA,GAAIf,OAAO,CAACgB,YAAZ,KAAA,IAAA,GAAA,qBAAA,GAA4B,EAA5B,CAAA;GAFF,CAAA;;AAKAX,EAAAA,KAAK,CAACC,SAAN,CAAgBW,OAAhB,CAAwBP,OAAO,IAAI;AAAA,IAAA,IAAA,qBAAA,CAAA;;AACjCM,IAAAA,YAAY,GAAGN,CAAAA,qBAAAA,GAAAA,OAAO,CAACQ,eAAX,IAAGR,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,OAAO,CAACQ,eAAR,CAA0BF,YAA1B,CAAH,KAAA,IAAA,GAAA,qBAAA,GAA8CA,YAA1D,CAAA;GADF,CAAA,CAAA;;EAIA,MAAMG,MAAsB,GAAG,EAA/B,CAAA;EACA,IAAIC,aAAa,GAAG,KAApB,CAAA;AAEA,EAAA,MAAMC,YAAiC,GAAG;AACxCf,IAAAA,SAAS,EAAEnB,QAD6B;IAExCa,OAAO,EAAE,EACP,GAAGO,cADI;MAEP,GAAGP,OAAAA;KAJmC;IAMxCgB,YANwC;IAOxCM,MAAM,EAAEC,EAAE,IAAI;MACZJ,MAAM,CAACK,IAAP,CAAYD,EAAZ,CAAA,CAAA;;MAEA,IAAI,CAACH,aAAL,EAAoB;QAClBA,aAAa,GAAG,IAAhB,CADkB;AAIlB;;AACAK,QAAAA,OAAO,CAACC,OAAR,EACGC,CAAAA,IADH,CACQ,MAAM;UACV,OAAOR,MAAM,CAACS,MAAd,EAAsB;AACpBT,YAAAA,MAAM,CAACU,KAAP,EAAA,EAAA,CAAA;AACD,WAAA;;AACDT,UAAAA,aAAa,GAAG,KAAhB,CAAA;AACD,SANH,EAOGU,KAPH,CAOSC,KAAK,IACVC,UAAU,CAAC,MAAM;AACf,UAAA,MAAMD,KAAN,CAAA;AACD,SAFS,CARd,CAAA,CAAA;AAYD,OAAA;KA3BqC;AA6BxCE,IAAAA,KAAK,EAAE,MAAM;AACX5B,MAAAA,KAAK,CAAC6B,QAAN,CAAe7B,KAAK,CAACW,YAArB,CAAA,CAAA;KA9BsC;IAgCxCmB,UAAU,EAAEC,OAAO,IAAI;MACrB,MAAMC,UAAU,GAAGC,sBAAgB,CAACF,OAAD,EAAU/B,KAAK,CAACL,OAAhB,CAAnC,CAAA;AACAK,MAAAA,KAAK,CAACL,OAAN,GAAgBc,YAAY,CAACuB,UAAD,CAA5B,CAAA;KAlCsC;AAwCxCE,IAAAA,QAAQ,EAAE,MAAM;AACd,MAAA,OAAOlC,KAAK,CAACL,OAAN,CAAcwC,KAArB,CAAA;KAzCsC;IA4CxCN,QAAQ,EAAGE,OAAD,IAAkC;MAC1C/B,KAAK,CAACL,OAAN,CAAcyC,aAAd,IAAA,IAAA,GAAA,KAAA,CAAA,GAAApC,KAAK,CAACL,OAAN,CAAcyC,aAAd,CAA8BL,OAA9B,CAAA,CAAA;KA7CsC;AAgDxCM,IAAAA,SAAS,EAAE,CAACC,GAAD,EAAaC,KAAb,EAA4BC,MAA5B,KAAA;AAAA,MAAA,IAAA,qBAAA,CAAA;;AAAA,MAAA,OAAA,CAAA,qBAAA,GACTxC,KAAK,CAACL,OAAN,CAAc8C,QADL,IACTzC,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,KAAK,CAACL,OAAN,CAAc8C,QAAd,CAAyBH,GAAzB,EAA8BC,KAA9B,EAAqCC,MAArC,CADS,KAENA,IAAAA,GAAAA,qBAAAA,GAAAA,EAAAA,IAAAA,MAAM,GAAG,CAACA,MAAM,CAACE,EAAR,EAAYH,KAAZ,EAAmBI,IAAnB,CAAwB,GAAxB,CAAH,GAAkCJ,KAFlC,CAAA,CAAA;KAhD6B;AAoDxCK,IAAAA,eAAe,EAAE,MAAM;AACrB,MAAA,IAAI,CAAC5C,KAAK,CAAC6C,gBAAX,EAA6B;QAC3B7C,KAAK,CAAC6C,gBAAN,GAAyB7C,KAAK,CAACL,OAAN,CAAciD,eAAd,CAA8B5C,KAA9B,CAAzB,CAAA;AACD,OAAA;;MAED,OAAOA,KAAK,CAAC6C,gBAAN,EAAP,CAAA;KAzDsC;AA4DxC;AACA;AAEAC,IAAAA,WAAW,EAAE,MAAM;MACjB,OAAO9C,KAAK,CAAC+C,qBAAN,EAAP,CAAA;KAhEsC;IAkExCC,MAAM,EAAGN,EAAD,IAAgB;MACtB,MAAMJ,GAAG,GAAGtC,KAAK,CAAC8C,WAAN,EAAoBG,CAAAA,QAApB,CAA6BP,EAA7B,CAAZ,CAAA;;MAEA,IAAI,CAACJ,GAAL,EAAU;AACR,QAAA,IAAIY,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAA7B,EAA2C;AACzC,UAAA,MAAM,IAAIC,KAAJ,CAA4CX,iCAAAA,GAAAA,EAA5C,CAAN,CAAA;AACD,SAAA;;QACD,MAAM,IAAIW,KAAJ,EAAN,CAAA;AACD,OAAA;;AAED,MAAA,OAAOf,GAAP,CAAA;KA5EsC;AA8ExCgB,IAAAA,oBAAoB,EAAEC,UAAI,CACxB,MAAM,CAACvD,KAAK,CAACL,OAAN,CAAc6D,aAAf,CADkB,EAExBA,aAAa,IAAI;AAAA,MAAA,IAAA,cAAA,CAAA;;MACfA,aAAa,GAAA,CAAA,cAAA,GAAIA,aAAJ,KAAA,IAAA,GAAA,cAAA,GAAqB,EAAlC,CAAA;MAIA,OAAO;QACLC,MAAM,EAAEC,KAAK,IAAIA,KAAK,CAACD,MAAN,CAAaE,MAAb,CAAoBjB,EADhC;QAELkB,MAAM,EAAEF,KAAK,IAAIA,KAAK,CAACD,MAAN,CAAaE,MAAb,CAAoBjB,EAFhC;AAGLmB,QAAAA,IAAI,EAAEH,KAAK,IAAA;AAAA,UAAA,IAAA,qBAAA,EAAA,kBAAA,CAAA;;AAAA,UAAA,OAAA,CAAA,qBAAA,GAAA,CAAA,kBAAA,GAAIA,KAAK,CAACI,WAAN,EAAJ,KAAI,IAAA,GAAA,KAAA,CAAA,GAAA,kBAAA,CAA0BC,QAA9B,IAAA,IAAA,GAAA,KAAA,CAAA,GAAI,kBAA0BA,CAAAA,QAA1B,EAAJ,KAAA,IAAA,GAAA,qBAAA,GAA8C,IAA9C,CAAA;SAHN;QAIL,GAAG/D,KAAK,CAACC,SAAN,CAAgBE,MAAhB,CAAuB,CAACC,GAAD,EAAMC,OAAN,KAAkB;AAC1C,UAAA,OAAOC,MAAM,CAACC,MAAP,CAAcH,GAAd,EAAmBC,OAAO,CAAC2D,mBAA3B,IAAmB3D,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,OAAO,CAAC2D,mBAAR,EAAnB,CAAP,CAAA;SADC,EAEA,EAFA,CAJE;QAOL,GAAGR,aAAAA;OAPL,CAAA;AASD,KAhBuB,EAiBxB;AACES,MAAAA,KAAK,EAAE,MAAA;AAAA,QAAA,IAAA,qBAAA,CAAA;;QAAA,OAAMjE,CAAAA,qBAAAA,GAAAA,KAAK,CAACL,OAAN,CAAcC,QAApB,oCAAgCI,KAAK,CAACL,OAAN,CAAcuE,YAA9C,CAAA;OADT;MAEEC,GAAG,EAAEjB,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,aAAzB,IAA0C,qBAAA;AAFjD,KAjBwB,CA9Ec;AAqGxCgB,IAAAA,cAAc,EAAE,MAAMpE,KAAK,CAACL,OAAN,CAAc0E,OArGI;AAuGxCC,IAAAA,aAAa,EAAEf,UAAI,CACjB,MAAM,CAACvD,KAAK,CAACoE,cAAN,EAAD,CADW,EAEjBG,UAAU,IAAI;MACZ,MAAMC,cAAc,GAAG,UACrBD,UADqB,EAErB/B,MAFqB,EAGrBiC,KAHqB,EAIQ;AAAA,QAAA,IAD7BA,KAC6B,KAAA,KAAA,CAAA,EAAA;AAD7BA,UAAAA,KAC6B,GADrB,CACqB,CAAA;AAAA,SAAA;;AAC7B,QAAA,OAAOF,UAAU,CAACG,GAAX,CAAeC,SAAS,IAAI;UACjC,MAAMhB,QAAM,GAAGiB,mBAAY,CAAC5E,KAAD,EAAQ2E,SAAR,EAAmBF,KAAnB,EAA0BjC,MAA1B,CAA3B,CAAA;UAEAmB,QAAM,CAACU,OAAP,GAAiBM,SAAS,CAACN,OAAV,GACbG,cAAc,CAACG,SAAS,CAACN,OAAX,EAAoBV,QAApB,EAA4Bc,KAAK,GAAG,CAApC,CADD,GAEb,EAFJ,CAAA;AAIA,UAAA,OAAOd,QAAP,CAAA;AACD,SARM,CAAP,CAAA;OALF,CAAA;;MAgBA,OAAOa,cAAc,CAACD,UAAD,CAArB,CAAA;AACD,KApBgB,EAqBjB;MACEJ,GAAG,EAAEjB,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,aAAzB,IAA0C,eADjD;AAEEa,MAAAA,KAAK,EAAE,MAAA;AAAA,QAAA,IAAA,sBAAA,CAAA;;QAAA,OAAMjE,CAAAA,sBAAAA,GAAAA,KAAK,CAACL,OAAN,CAAcC,QAApB,qCAAgCI,KAAK,CAACL,OAAN,CAAcuE,YAA9C,CAAA;AAAA,OAAA;AAFT,KArBiB,CAvGqB;AAkIxCW,IAAAA,iBAAiB,EAAEtB,UAAI,CACrB,MAAM,CAACvD,KAAK,CAACsE,aAAN,EAAD,CADe,EAErBQ,UAAU,IAAI;AACZ,MAAA,OAAOA,UAAU,CAACC,OAAX,CAAmBpB,MAAM,IAAI;QAClC,OAAOA,MAAM,CAACqB,cAAP,EAAP,CAAA;AACD,OAFM,CAAP,CAAA;AAGD,KANoB,EAOrB;MACEb,GAAG,EAAEjB,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,aAAzB,IAA0C,mBADjD;AAEEa,MAAAA,KAAK,EAAE,MAAA;AAAA,QAAA,IAAA,sBAAA,CAAA;;QAAA,OAAMjE,CAAAA,sBAAAA,GAAAA,KAAK,CAACL,OAAN,CAAcC,QAApB,qCAAgCI,KAAK,CAACL,OAAN,CAAcuE,YAA9C,CAAA;AAAA,OAAA;AAFT,KAPqB,CAlIiB;AA+IxCe,IAAAA,sBAAsB,EAAE1B,UAAI,CAC1B,MAAM,CAACvD,KAAK,CAAC6E,iBAAN,EAAD,CADoB,EAE1BK,WAAW,IAAI;MACb,OAAOA,WAAW,CAAC/E,MAAZ,CAAmB,CAACgF,GAAD,EAAMxB,MAAN,KAAiB;AACzCwB,QAAAA,GAAG,CAACxB,MAAM,CAACjB,EAAR,CAAH,GAAiBiB,MAAjB,CAAA;AACA,QAAA,OAAOwB,GAAP,CAAA;OAFK,EAGJ,EAHI,CAAP,CAAA;AAID,KAPyB,EAQ1B;MACEhB,GAAG,EAAEjB,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,aAAzB,IAA0C,uBADjD;AAEEa,MAAAA,KAAK,EAAE,MAAA;AAAA,QAAA,IAAA,sBAAA,CAAA;;QAAA,OAAMjE,CAAAA,sBAAAA,GAAAA,KAAK,CAACL,OAAN,CAAcC,QAApB,qCAAgCI,KAAK,CAACL,OAAN,CAAcuE,YAA9C,CAAA;AAAA,OAAA;AAFT,KAR0B,CA/IY;IA6JxCkB,iBAAiB,EAAE7B,UAAI,CACrB,MAAM,CAACvD,KAAK,CAACsE,aAAN,EAAD,EAAwBtE,KAAK,CAACqF,kBAAN,EAAxB,CADe,EAErB,CAACP,UAAD,EAAaQ,YAAb,KAA8B;AAC5B,MAAA,IAAIC,WAAW,GAAGT,UAAU,CAACC,OAAX,CAAmBpB,MAAM,IAAIA,MAAM,CAAC6B,cAAP,EAA7B,CAAlB,CAAA;MACA,OAAOF,YAAY,CAACC,WAAD,CAAnB,CAAA;AACD,KALoB,EAMrB;MACEpB,GAAG,EAAEjB,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,aAAzB,IAA0C,mBADjD;AAEEa,MAAAA,KAAK,EAAE,MAAA;AAAA,QAAA,IAAA,sBAAA,CAAA;;QAAA,OAAMjE,CAAAA,sBAAAA,GAAAA,KAAK,CAACL,OAAN,CAAcC,QAApB,qCAAgCI,KAAK,CAACL,OAAN,CAAcuE,YAA9C,CAAA;AAAA,OAAA;AAFT,KANqB,CA7JiB;IAyKxCuB,SAAS,EAAEC,QAAQ,IAAI;AACrB,MAAA,MAAM/B,MAAM,GAAG3D,KAAK,CAACiF,sBAAN,EAAA,CAA+BS,QAA/B,CAAf,CAAA;;MAEA,IAAI,CAAC/B,MAAL,EAAa;AACX,QAAA,IAAIT,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAA7B,EAA2C;UACzCtD,OAAO,CAAC6F,IAAR,CAAA,yBAAA,GAAuCD,QAAvC,GAAA,kBAAA,CAAA,CAAA;AACD,SAAA;;QACD,MAAM,IAAIrC,KAAJ,EAAN,CAAA;AACD,OAAA;;AAED,MAAA,OAAOM,MAAP,CAAA;AACD,KAAA;GApLH,CAAA;AAuLArD,EAAAA,MAAM,CAACC,MAAP,CAAcP,KAAd,EAAqBgB,YAArB,CAAA,CAAA;;AAEAhB,EAAAA,KAAK,CAACC,SAAN,CAAgBW,OAAhB,CAAwBP,OAAO,IAAI;AACjC,IAAA,OAAOC,MAAM,CAACC,MAAP,CAAcP,KAAd,EAAqBK,OAAO,CAACX,WAA7B,IAAA,IAAA,GAAA,KAAA,CAAA,GAAqBW,OAAO,CAACX,WAAR,CAAsBM,KAAtB,CAArB,CAAP,CAAA;GADF,CAAA,CAAA;;AAIA,EAAA,OAAOA,KAAP,CAAA;AACD;;;;"}
|
|
1
|
+
{"version":3,"file":"table.js","sources":["../../../src/core/table.ts"],"sourcesContent":["import { flattenBy, functionalUpdate, memo, RequiredKeys } from '../utils'\n\nimport {\n Updater,\n TableOptionsResolved,\n TableState,\n Table,\n ColumnDefTemplate,\n InitialTableState,\n Row,\n Column,\n RowModel,\n ColumnDef,\n TableOptions,\n RowData,\n TableMeta,\n} from '../types'\n\n//\nimport { createColumn } from './column'\nimport { Headers } from './headers'\n//\n\nimport { ColumnSizing } from '../features/ColumnSizing'\nimport { Expanding } from '../features/Expanding'\nimport { Filters } from '../features/Filters'\nimport { Grouping } from '../features/Grouping'\nimport { Ordering } from '../features/Ordering'\nimport { Pagination } from '../features/Pagination'\nimport { Pinning } from '../features/Pinning'\nimport { RowSelection } from '../features/RowSelection'\nimport { Sorting } from '../features/Sorting'\nimport { Visibility } from '../features/Visibility'\n\nexport type TableFeature = {\n getDefaultOptions?: (table: any) => any\n getInitialState?: (initialState?: InitialTableState) => any\n createTable?: (table: any) => any\n getDefaultColumnDef?: () => any\n createColumn?: (column: any, table: any) => any\n createHeader?: (column: any, table: any) => any\n createCell?: (cell: any, column: any, row: any, table: any) => any\n createRow?: (row: any, table: any) => any\n}\n\nconst features = [\n Headers,\n Visibility,\n Ordering,\n Pinning,\n Filters,\n Sorting,\n Grouping,\n Expanding,\n Pagination,\n RowSelection,\n ColumnSizing,\n] as const\n\n//\n\nexport type CoreTableState = {}\n\nexport type CoreOptions<TData extends RowData> = {\n data: TData[]\n state: Partial<TableState>\n onStateChange: (updater: Updater<TableState>) => void\n debugAll?: boolean\n debugTable?: boolean\n debugHeaders?: boolean\n debugColumns?: boolean\n debugRows?: boolean\n initialState?: InitialTableState\n autoResetAll?: boolean\n mergeOptions?: (\n defaultOptions: TableOptions<TData>,\n options: Partial<TableOptions<TData>>\n ) => TableOptions<TData>\n meta?: TableMeta<TData>\n getCoreRowModel: (table: Table<any>) => () => RowModel<any>\n getSubRows?: (originalRow: TData, index: number) => undefined | TData[]\n getRowId?: (originalRow: TData, index: number, parent?: Row<TData>) => string\n columns: ColumnDef<TData, any>[]\n defaultColumn?: Partial<ColumnDef<TData, unknown>>\n renderFallbackValue: any\n}\n\nexport type CoreInstance<TData extends RowData> = {\n initialState: TableState\n reset: () => void\n options: RequiredKeys<TableOptionsResolved<TData>, 'state'>\n setOptions: (newOptions: Updater<TableOptionsResolved<TData>>) => void\n getState: () => TableState\n setState: (updater: Updater<TableState>) => void\n _features: readonly TableFeature[]\n _queue: (cb: () => void) => void\n _getRowId: (_: TData, index: number, parent?: Row<TData>) => string\n getCoreRowModel: () => RowModel<TData>\n _getCoreRowModel?: () => RowModel<TData>\n getRowModel: () => RowModel<TData>\n getRow: (id: string) => Row<TData>\n _getDefaultColumnDef: () => Partial<ColumnDef<TData, unknown>>\n _getColumnDefs: () => ColumnDef<TData, unknown>[]\n _getAllFlatColumnsById: () => Record<string, Column<TData, unknown>>\n getAllColumns: () => Column<TData, unknown>[]\n getAllFlatColumns: () => Column<TData, unknown>[]\n getAllLeafColumns: () => Column<TData, unknown>[]\n getColumn: (columnId: string) => Column<TData, unknown>\n}\n\nexport function createTable<TData extends RowData>(\n options: TableOptionsResolved<TData>\n): Table<TData> {\n if (options.debugAll || options.debugTable) {\n console.info('Creating Table Instance...')\n }\n\n let table = { _features: features } as unknown as Table<TData>\n\n const defaultOptions = table._features.reduce((obj, feature) => {\n return Object.assign(obj, feature.getDefaultOptions?.(table))\n }, {}) as TableOptionsResolved<TData>\n\n const mergeOptions = (options: TableOptionsResolved<TData>) => {\n if (table.options.mergeOptions) {\n return table.options.mergeOptions(defaultOptions, options)\n }\n\n return {\n ...defaultOptions,\n ...options,\n }\n }\n\n const coreInitialState: CoreTableState = {}\n\n let initialState = {\n ...coreInitialState,\n ...(options.initialState ?? {}),\n } as TableState\n\n table._features.forEach(feature => {\n initialState = feature.getInitialState?.(initialState) ?? initialState\n })\n\n const queued: (() => void)[] = []\n let queuedTimeout = false\n\n const coreInstance: CoreInstance<TData> = {\n _features: features,\n options: {\n ...defaultOptions,\n ...options,\n },\n initialState,\n _queue: cb => {\n queued.push(cb)\n\n if (!queuedTimeout) {\n queuedTimeout = true\n\n // Schedule a microtask to run the queued callbacks after\n // the current call stack (render, etc) has finished.\n Promise.resolve()\n .then(() => {\n while (queued.length) {\n queued.shift()!()\n }\n queuedTimeout = false\n })\n .catch(error =>\n setTimeout(() => {\n throw error\n })\n )\n }\n },\n reset: () => {\n table.setState(table.initialState)\n },\n setOptions: updater => {\n const newOptions = functionalUpdate(updater, table.options)\n table.options = mergeOptions(newOptions) as RequiredKeys<\n TableOptionsResolved<TData>,\n 'state'\n >\n },\n\n getState: () => {\n return table.options.state as TableState\n },\n\n setState: (updater: Updater<TableState>) => {\n table.options.onStateChange?.(updater)\n },\n\n _getRowId: (row: TData, index: number, parent?: Row<TData>) =>\n table.options.getRowId?.(row, index, parent) ??\n `${parent ? [parent.id, index].join('.') : index}`,\n\n getCoreRowModel: () => {\n if (!table._getCoreRowModel) {\n table._getCoreRowModel = table.options.getCoreRowModel(table)\n }\n\n return table._getCoreRowModel!()\n },\n\n // The final calls start at the bottom of the model,\n // expanded rows, which then work their way up\n\n getRowModel: () => {\n return table.getPaginationRowModel()\n },\n getRow: (id: string) => {\n const row = table.getRowModel().rowsById[id]\n\n if (!row) {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error(`getRow expected an ID, but got ${id}`)\n }\n throw new Error()\n }\n\n return row\n },\n _getDefaultColumnDef: memo(\n () => [table.options.defaultColumn],\n defaultColumn => {\n defaultColumn = (defaultColumn ?? {}) as Partial<\n ColumnDef<TData, unknown>\n >\n\n return {\n header: props => props.header.column.id,\n footer: props => props.header.column.id,\n cell: props => props.renderValue<any>()?.toString?.() ?? null,\n ...table._features.reduce((obj, feature) => {\n return Object.assign(obj, feature.getDefaultColumnDef?.())\n }, {}),\n ...defaultColumn,\n } as Partial<ColumnDef<TData, unknown>>\n },\n {\n debug: () => table.options.debugAll ?? table.options.debugColumns,\n key: process.env.NODE_ENV === 'development' && 'getDefaultColumnDef',\n }\n ),\n\n _getColumnDefs: () => table.options.columns,\n\n getAllColumns: memo(\n () => [table._getColumnDefs()],\n columnDefs => {\n const recurseColumns = (\n columnDefs: ColumnDef<TData, unknown>[],\n parent?: Column<TData, unknown>,\n depth = 0\n ): Column<TData, unknown>[] => {\n return columnDefs.map(columnDef => {\n const column = createColumn(table, columnDef, depth, parent)\n\n column.columns = columnDef.columns\n ? recurseColumns(columnDef.columns, column, depth + 1)\n : []\n\n return column\n })\n }\n\n return recurseColumns(columnDefs)\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getAllColumns',\n debug: () => table.options.debugAll ?? table.options.debugColumns,\n }\n ),\n\n getAllFlatColumns: memo(\n () => [table.getAllColumns()],\n allColumns => {\n return allColumns.flatMap(column => {\n return column.getFlatColumns()\n })\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getAllFlatColumns',\n debug: () => table.options.debugAll ?? table.options.debugColumns,\n }\n ),\n\n _getAllFlatColumnsById: memo(\n () => [table.getAllFlatColumns()],\n flatColumns => {\n return flatColumns.reduce((acc, column) => {\n acc[column.id] = column\n return acc\n }, {} as Record<string, Column<TData, unknown>>)\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getAllFlatColumnsById',\n debug: () => table.options.debugAll ?? table.options.debugColumns,\n }\n ),\n\n getAllLeafColumns: memo(\n () => [table.getAllColumns(), table._getOrderColumnsFn()],\n (allColumns, orderColumns) => {\n let leafColumns = allColumns.flatMap(column => column.getLeafColumns())\n return orderColumns(leafColumns)\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getAllLeafColumns',\n debug: () => table.options.debugAll ?? table.options.debugColumns,\n }\n ),\n\n getColumn: columnId => {\n const column = table._getAllFlatColumnsById()[columnId]\n\n if (!column) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(`[Table] Column with id ${columnId} does not exist.`)\n }\n throw new Error()\n }\n\n return column\n },\n }\n\n Object.assign(table, coreInstance)\n\n table._features.forEach(feature => {\n return Object.assign(table, feature.createTable?.(table))\n })\n\n return table\n}\n"],"names":["features","Headers","Visibility","Ordering","Pinning","Filters","Sorting","Grouping","Expanding","Pagination","RowSelection","ColumnSizing","createTable","options","debugAll","debugTable","console","info","table","_features","defaultOptions","reduce","obj","feature","Object","assign","getDefaultOptions","mergeOptions","coreInitialState","initialState","forEach","getInitialState","queued","queuedTimeout","coreInstance","_queue","cb","push","Promise","resolve","then","length","shift","catch","error","setTimeout","reset","setState","setOptions","updater","newOptions","functionalUpdate","getState","state","onStateChange","_getRowId","row","index","parent","getRowId","id","join","getCoreRowModel","_getCoreRowModel","getRowModel","getPaginationRowModel","getRow","rowsById","process","env","NODE_ENV","Error","_getDefaultColumnDef","memo","defaultColumn","header","props","column","footer","cell","renderValue","toString","getDefaultColumnDef","debug","debugColumns","key","_getColumnDefs","columns","getAllColumns","columnDefs","recurseColumns","depth","map","columnDef","createColumn","getAllFlatColumns","allColumns","flatMap","getFlatColumns","_getAllFlatColumnsById","flatColumns","acc","getAllLeafColumns","_getOrderColumnsFn","orderColumns","leafColumns","getLeafColumns","getColumn","columnId","warn"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ColumnSizing.js","sources":["../../../src/features/ColumnSizing.ts"],"sourcesContent":["import { TableFeature } from '../core/table'\nimport {\n RowData,\n Column,\n Header,\n OnChangeFn,\n TableGenerics,\n Table,\n Updater,\n} from '../types'\nimport { makeStateUpdater } from '../utils'\nimport { ColumnPinningPosition } from './Pinning'\n\n//\n\nexport type ColumnSizingTableState = {\n columnSizing: ColumnSizingState\n columnSizingInfo: ColumnSizingInfoState\n}\n\nexport type ColumnSizingState = Record<string, number>\n\nexport type ColumnSizingInfoState = {\n startOffset: null | number\n startSize: null | number\n deltaOffset: null | number\n deltaPercentage: null | number\n isResizingColumn: false | string\n columnSizingStart: [string, number][]\n}\n\nexport type ColumnResizeMode = 'onChange' | 'onEnd'\n\nexport type ColumnSizingOptions = {\n enableColumnResizing?: boolean\n columnResizeMode?: ColumnResizeMode\n onColumnSizingChange?: OnChangeFn<ColumnSizingState>\n onColumnSizingInfoChange?: OnChangeFn<ColumnSizingInfoState>\n}\n\nexport type ColumnSizingDefaultOptions = {\n columnResizeMode: ColumnResizeMode\n onColumnSizingChange: OnChangeFn<ColumnSizingState>\n onColumnSizingInfoChange: OnChangeFn<ColumnSizingInfoState>\n}\n\nexport type ColumnSizingInstance = {\n setColumnSizing: (updater: Updater<ColumnSizingState>) => void\n setColumnSizingInfo: (updater: Updater<ColumnSizingInfoState>) => void\n resetColumnSizing: (defaultState?: boolean) => void\n resetHeaderSizeInfo: (defaultState?: boolean) => void\n getTotalSize: () => number\n getLeftTotalSize: () => number\n getCenterTotalSize: () => number\n getRightTotalSize: () => number\n}\n\nexport type ColumnSizingColumnDef = {\n enableResizing?: boolean\n size?: number\n minSize?: number\n maxSize?: number\n}\n\nexport type ColumnSizingColumn = {\n getSize: () => number\n getStart: (position?: ColumnPinningPosition) => number\n getCanResize: () => boolean\n getIsResizing: () => boolean\n resetSize: () => void\n}\n\nexport type ColumnSizingHeader = {\n getSize: () => number\n getStart: (position?: ColumnPinningPosition) => number\n getResizeHandler: () => (event: unknown) => void\n}\n\n//\n\nexport const defaultColumnSizing = {\n size: 150,\n minSize: 20,\n maxSize: Number.MAX_SAFE_INTEGER,\n}\n\nconst getDefaultColumnSizingInfoState = (): ColumnSizingInfoState => ({\n startOffset: null,\n startSize: null,\n deltaOffset: null,\n deltaPercentage: null,\n isResizingColumn: false,\n columnSizingStart: [],\n})\n\nexport const ColumnSizing: TableFeature = {\n getDefaultColumnDef: (): ColumnSizingColumnDef => {\n return defaultColumnSizing\n },\n getInitialState: (state): ColumnSizingTableState => {\n return {\n columnSizing: {},\n columnSizingInfo: getDefaultColumnSizingInfoState(),\n ...state,\n }\n },\n\n getDefaultOptions: <TData extends RowData>(\n table: Table<TData>\n ): ColumnSizingDefaultOptions => {\n return {\n columnResizeMode: 'onEnd',\n onColumnSizingChange: makeStateUpdater('columnSizing', table),\n onColumnSizingInfoChange: makeStateUpdater('columnSizingInfo', table),\n }\n },\n\n createColumn: <TData extends RowData, TValue>(\n column: Column<TData, TValue>,\n table: Table<TData>\n ): ColumnSizingColumn => {\n return {\n getSize: () => {\n const columnSize = table.getState().columnSizing[column.id]\n\n return Math.min(\n Math.max(\n column.columnDef.minSize ?? defaultColumnSizing.minSize,\n columnSize ?? column.columnDef.size ?? defaultColumnSizing.size\n ),\n column.columnDef.maxSize ?? defaultColumnSizing.maxSize\n )\n },\n getStart: position => {\n const columns = !position\n ? table.getVisibleLeafColumns()\n : position === 'left'\n ? table.getLeftVisibleLeafColumns()\n : table.getRightVisibleLeafColumns()\n\n const index = columns.findIndex(d => d.id === column.id)\n\n if (index > 0) {\n const prevSiblingColumn = columns[index - 1]!\n\n return (\n prevSiblingColumn.getStart(position) + prevSiblingColumn.getSize()\n )\n }\n\n return 0\n },\n resetSize: () => {\n table.setColumnSizing(({ [column.id]: _, ...rest }) => {\n return rest\n })\n },\n getCanResize: () => {\n return (\n (column.columnDef.enableResizing ?? true) &&\n (table.options.enableColumnResizing ?? true)\n )\n },\n getIsResizing: () => {\n return table.getState().columnSizingInfo.isResizingColumn === column.id\n },\n }\n },\n\n createHeader: <TData extends RowData, TValue>(\n header: Header<TData, TValue>,\n table: Table<TData>\n ): ColumnSizingHeader => {\n return {\n getSize: () => {\n let sum = 0\n\n const recurse = (header: Header<TData, TValue>) => {\n if (header.subHeaders.length) {\n header.subHeaders.forEach(recurse)\n } else {\n sum += header.column.getSize() ?? 0\n }\n }\n\n recurse(header)\n\n return sum\n },\n getStart: () => {\n if (header.index > 0) {\n const prevSiblingHeader =\n header.headerGroup.headers[header.index - 1]!\n return prevSiblingHeader.getStart() + prevSiblingHeader.getSize()\n }\n\n return 0\n },\n getResizeHandler: () => {\n const column = table.getColumn(header.column.id)\n const canResize = column.getCanResize()\n\n return (e: unknown) => {\n if (!canResize) {\n return\n }\n\n ;(e as any).persist?.()\n\n if (isTouchStartEvent(e)) {\n // lets not respond to multiple touches (e.g. 2 or 3 fingers)\n if (e.touches && e.touches.length > 1) {\n return\n }\n }\n\n const startSize = header.getSize()\n\n const columnSizingStart: [string, number][] = header\n ? header\n .getLeafHeaders()\n .map(d => [d.column.id, d.column.getSize()])\n : [[column.id, column.getSize()]]\n\n const clientX = isTouchStartEvent(e)\n ? Math.round(e.touches[0]!.clientX)\n : (e as MouseEvent).clientX\n\n const updateOffset = (\n eventType: 'move' | 'end',\n clientXPos?: number\n ) => {\n if (typeof clientXPos !== 'number') {\n return\n }\n\n let newColumnSizing: ColumnSizingState = {}\n\n table.setColumnSizingInfo(old => {\n const deltaOffset = clientXPos - (old?.startOffset ?? 0)\n const deltaPercentage = Math.max(\n deltaOffset / (old?.startSize ?? 0),\n -0.999999\n )\n\n old.columnSizingStart.forEach(([columnId, headerSize]) => {\n newColumnSizing[columnId] =\n Math.round(\n Math.max(headerSize + headerSize * deltaPercentage, 0) * 100\n ) / 100\n })\n\n return {\n ...old,\n deltaOffset,\n deltaPercentage,\n }\n })\n\n if (\n table.options.columnResizeMode === 'onChange' ||\n eventType === 'end'\n ) {\n table.setColumnSizing(old => ({\n ...old,\n ...newColumnSizing,\n }))\n }\n }\n\n const onMove = (clientXPos?: number) =>\n updateOffset('move', clientXPos)\n\n const onEnd = (clientXPos?: number) => {\n updateOffset('end', clientXPos)\n\n table.setColumnSizingInfo(old => ({\n ...old,\n isResizingColumn: false,\n startOffset: null,\n startSize: null,\n deltaOffset: null,\n deltaPercentage: null,\n columnSizingStart: [],\n }))\n }\n\n const mouseEvents = {\n moveHandler: (e: MouseEvent) => onMove(e.clientX),\n upHandler: (e: MouseEvent) => {\n document.removeEventListener('mousemove', mouseEvents.moveHandler)\n document.removeEventListener('mouseup', mouseEvents.upHandler)\n onEnd(e.clientX)\n },\n }\n\n const touchEvents = {\n moveHandler: (e: TouchEvent) => {\n if (e.cancelable) {\n e.preventDefault()\n e.stopPropagation()\n }\n onMove(e.touches[0]!.clientX)\n return false\n },\n upHandler: (e: TouchEvent) => {\n document.removeEventListener('touchmove', touchEvents.moveHandler)\n document.removeEventListener('touchend', touchEvents.upHandler)\n if (e.cancelable) {\n e.preventDefault()\n e.stopPropagation()\n }\n onEnd(e.touches[0]!.clientX)\n },\n }\n\n const passiveIfSupported = passiveEventSupported()\n ? { passive: false }\n : false\n\n if (isTouchStartEvent(e)) {\n } else {\n document.addEventListener(\n 'mousemove',\n mouseEvents.moveHandler,\n passiveIfSupported\n )\n document.addEventListener(\n 'mouseup',\n mouseEvents.upHandler,\n passiveIfSupported\n )\n }\n\n table.setColumnSizingInfo(old => ({\n ...old,\n startOffset: clientX,\n startSize,\n deltaOffset: 0,\n deltaPercentage: 0,\n columnSizingStart,\n isResizingColumn: column.id,\n }))\n }\n },\n }\n },\n\n createTable: <TData extends RowData>(\n table: Table<TData>\n ): ColumnSizingInstance => {\n return {\n setColumnSizing: updater => table.options.onColumnSizingChange?.(updater),\n setColumnSizingInfo: updater =>\n table.options.onColumnSizingInfoChange?.(updater),\n resetColumnSizing: defaultState => {\n table.setColumnSizing(\n defaultState ? {} : table.initialState.columnSizing ?? {}\n )\n },\n resetHeaderSizeInfo: defaultState => {\n table.setColumnSizingInfo(\n defaultState\n ? getDefaultColumnSizingInfoState()\n : table.initialState.columnSizingInfo ??\n getDefaultColumnSizingInfoState()\n )\n },\n getTotalSize: () =>\n table.getHeaderGroups()[0]?.headers.reduce((sum, header) => {\n return sum + header.getSize()\n }, 0) ?? 0,\n getLeftTotalSize: () =>\n table.getLeftHeaderGroups()[0]?.headers.reduce((sum, header) => {\n return sum + header.getSize()\n }, 0) ?? 0,\n getCenterTotalSize: () =>\n table.getCenterHeaderGroups()[0]?.headers.reduce((sum, header) => {\n return sum + header.getSize()\n }, 0) ?? 0,\n getRightTotalSize: () =>\n table.getRightHeaderGroups()[0]?.headers.reduce((sum, header) => {\n return sum + header.getSize()\n }, 0) ?? 0,\n }\n },\n}\n\nlet passiveSupported: boolean | null = null\nexport function passiveEventSupported() {\n if (typeof passiveSupported === 'boolean') return passiveSupported\n\n let supported = false\n try {\n const options = {\n get passive() {\n supported = true\n return false\n },\n }\n\n const noop = () => {}\n\n window.addEventListener('test', noop, options)\n window.removeEventListener('test', noop)\n } catch (err) {\n supported = false\n }\n passiveSupported = supported\n return passiveSupported\n}\n\nfunction isTouchStartEvent(e: unknown): e is TouchEvent {\n return (e as TouchEvent).type === 'touchstart'\n}\n"],"names":["defaultColumnSizing","size","minSize","maxSize","Number","MAX_SAFE_INTEGER","getDefaultColumnSizingInfoState","startOffset","startSize","deltaOffset","deltaPercentage","isResizingColumn","columnSizingStart","ColumnSizing","getDefaultColumnDef","getInitialState","state","columnSizing","columnSizingInfo","getDefaultOptions","table","columnResizeMode","onColumnSizingChange","makeStateUpdater","onColumnSizingInfoChange","createColumn","column","getSize","columnSize","getState","id","Math","min","max","columnDef","getStart","position","columns","getVisibleLeafColumns","getLeftVisibleLeafColumns","getRightVisibleLeafColumns","index","findIndex","d","prevSiblingColumn","resetSize","setColumnSizing","_","rest","getCanResize","enableResizing","options","enableColumnResizing","getIsResizing","createHeader","header","sum","recurse","subHeaders","length","forEach","prevSiblingHeader","headerGroup","headers","getResizeHandler","getColumn","canResize","e","persist","isTouchStartEvent","touches","getLeafHeaders","map","clientX","round","updateOffset","eventType","clientXPos","newColumnSizing","setColumnSizingInfo","old","columnId","headerSize","onMove","onEnd","mouseEvents","moveHandler","upHandler","document","removeEventListener","passiveIfSupported","passiveEventSupported","passive","addEventListener","createTable","updater","resetColumnSizing","defaultState","initialState","resetHeaderSizeInfo","getTotalSize","getHeaderGroups","reduce","getLeftTotalSize","getLeftHeaderGroups","getCenterTotalSize","getCenterHeaderGroups","getRightTotalSize","getRightHeaderGroups","passiveSupported","supported","noop","window","err","type"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ColumnSizing.js","sources":["../../../src/features/ColumnSizing.ts"],"sourcesContent":["import { TableFeature } from '../core/table'\nimport { RowData, Column, Header, OnChangeFn, Table, Updater } from '../types'\nimport { makeStateUpdater } from '../utils'\nimport { ColumnPinningPosition } from './Pinning'\n\n//\n\nexport type ColumnSizingTableState = {\n columnSizing: ColumnSizingState\n columnSizingInfo: ColumnSizingInfoState\n}\n\nexport type ColumnSizingState = Record<string, number>\n\nexport type ColumnSizingInfoState = {\n startOffset: null | number\n startSize: null | number\n deltaOffset: null | number\n deltaPercentage: null | number\n isResizingColumn: false | string\n columnSizingStart: [string, number][]\n}\n\nexport type ColumnResizeMode = 'onChange' | 'onEnd'\n\nexport type ColumnSizingOptions = {\n enableColumnResizing?: boolean\n columnResizeMode?: ColumnResizeMode\n onColumnSizingChange?: OnChangeFn<ColumnSizingState>\n onColumnSizingInfoChange?: OnChangeFn<ColumnSizingInfoState>\n}\n\nexport type ColumnSizingDefaultOptions = {\n columnResizeMode: ColumnResizeMode\n onColumnSizingChange: OnChangeFn<ColumnSizingState>\n onColumnSizingInfoChange: OnChangeFn<ColumnSizingInfoState>\n}\n\nexport type ColumnSizingInstance = {\n setColumnSizing: (updater: Updater<ColumnSizingState>) => void\n setColumnSizingInfo: (updater: Updater<ColumnSizingInfoState>) => void\n resetColumnSizing: (defaultState?: boolean) => void\n resetHeaderSizeInfo: (defaultState?: boolean) => void\n getTotalSize: () => number\n getLeftTotalSize: () => number\n getCenterTotalSize: () => number\n getRightTotalSize: () => number\n}\n\nexport type ColumnSizingColumnDef = {\n enableResizing?: boolean\n size?: number\n minSize?: number\n maxSize?: number\n}\n\nexport type ColumnSizingColumn = {\n getSize: () => number\n getStart: (position?: ColumnPinningPosition) => number\n getCanResize: () => boolean\n getIsResizing: () => boolean\n resetSize: () => void\n}\n\nexport type ColumnSizingHeader = {\n getSize: () => number\n getStart: (position?: ColumnPinningPosition) => number\n getResizeHandler: () => (event: unknown) => void\n}\n\n//\n\nexport const defaultColumnSizing = {\n size: 150,\n minSize: 20,\n maxSize: Number.MAX_SAFE_INTEGER,\n}\n\nconst getDefaultColumnSizingInfoState = (): ColumnSizingInfoState => ({\n startOffset: null,\n startSize: null,\n deltaOffset: null,\n deltaPercentage: null,\n isResizingColumn: false,\n columnSizingStart: [],\n})\n\nexport const ColumnSizing: TableFeature = {\n getDefaultColumnDef: (): ColumnSizingColumnDef => {\n return defaultColumnSizing\n },\n getInitialState: (state): ColumnSizingTableState => {\n return {\n columnSizing: {},\n columnSizingInfo: getDefaultColumnSizingInfoState(),\n ...state,\n }\n },\n\n getDefaultOptions: <TData extends RowData>(\n table: Table<TData>\n ): ColumnSizingDefaultOptions => {\n return {\n columnResizeMode: 'onEnd',\n onColumnSizingChange: makeStateUpdater('columnSizing', table),\n onColumnSizingInfoChange: makeStateUpdater('columnSizingInfo', table),\n }\n },\n\n createColumn: <TData extends RowData, TValue>(\n column: Column<TData, TValue>,\n table: Table<TData>\n ): ColumnSizingColumn => {\n return {\n getSize: () => {\n const columnSize = table.getState().columnSizing[column.id]\n\n return Math.min(\n Math.max(\n column.columnDef.minSize ?? defaultColumnSizing.minSize,\n columnSize ?? column.columnDef.size ?? defaultColumnSizing.size\n ),\n column.columnDef.maxSize ?? defaultColumnSizing.maxSize\n )\n },\n getStart: position => {\n const columns = !position\n ? table.getVisibleLeafColumns()\n : position === 'left'\n ? table.getLeftVisibleLeafColumns()\n : table.getRightVisibleLeafColumns()\n\n const index = columns.findIndex(d => d.id === column.id)\n\n if (index > 0) {\n const prevSiblingColumn = columns[index - 1]!\n\n return (\n prevSiblingColumn.getStart(position) + prevSiblingColumn.getSize()\n )\n }\n\n return 0\n },\n resetSize: () => {\n table.setColumnSizing(({ [column.id]: _, ...rest }) => {\n return rest\n })\n },\n getCanResize: () => {\n return (\n (column.columnDef.enableResizing ?? true) &&\n (table.options.enableColumnResizing ?? true)\n )\n },\n getIsResizing: () => {\n return table.getState().columnSizingInfo.isResizingColumn === column.id\n },\n }\n },\n\n createHeader: <TData extends RowData, TValue>(\n header: Header<TData, TValue>,\n table: Table<TData>\n ): ColumnSizingHeader => {\n return {\n getSize: () => {\n let sum = 0\n\n const recurse = (header: Header<TData, TValue>) => {\n if (header.subHeaders.length) {\n header.subHeaders.forEach(recurse)\n } else {\n sum += header.column.getSize() ?? 0\n }\n }\n\n recurse(header)\n\n return sum\n },\n getStart: () => {\n if (header.index > 0) {\n const prevSiblingHeader =\n header.headerGroup.headers[header.index - 1]!\n return prevSiblingHeader.getStart() + prevSiblingHeader.getSize()\n }\n\n return 0\n },\n getResizeHandler: () => {\n const column = table.getColumn(header.column.id)\n const canResize = column.getCanResize()\n\n return (e: unknown) => {\n if (!canResize) {\n return\n }\n\n ;(e as any).persist?.()\n\n if (isTouchStartEvent(e)) {\n // lets not respond to multiple touches (e.g. 2 or 3 fingers)\n if (e.touches && e.touches.length > 1) {\n return\n }\n }\n\n const startSize = header.getSize()\n\n const columnSizingStart: [string, number][] = header\n ? header\n .getLeafHeaders()\n .map(d => [d.column.id, d.column.getSize()])\n : [[column.id, column.getSize()]]\n\n const clientX = isTouchStartEvent(e)\n ? Math.round(e.touches[0]!.clientX)\n : (e as MouseEvent).clientX\n\n const updateOffset = (\n eventType: 'move' | 'end',\n clientXPos?: number\n ) => {\n if (typeof clientXPos !== 'number') {\n return\n }\n\n let newColumnSizing: ColumnSizingState = {}\n\n table.setColumnSizingInfo(old => {\n const deltaOffset = clientXPos - (old?.startOffset ?? 0)\n const deltaPercentage = Math.max(\n deltaOffset / (old?.startSize ?? 0),\n -0.999999\n )\n\n old.columnSizingStart.forEach(([columnId, headerSize]) => {\n newColumnSizing[columnId] =\n Math.round(\n Math.max(headerSize + headerSize * deltaPercentage, 0) * 100\n ) / 100\n })\n\n return {\n ...old,\n deltaOffset,\n deltaPercentage,\n }\n })\n\n if (\n table.options.columnResizeMode === 'onChange' ||\n eventType === 'end'\n ) {\n table.setColumnSizing(old => ({\n ...old,\n ...newColumnSizing,\n }))\n }\n }\n\n const onMove = (clientXPos?: number) =>\n updateOffset('move', clientXPos)\n\n const onEnd = (clientXPos?: number) => {\n updateOffset('end', clientXPos)\n\n table.setColumnSizingInfo(old => ({\n ...old,\n isResizingColumn: false,\n startOffset: null,\n startSize: null,\n deltaOffset: null,\n deltaPercentage: null,\n columnSizingStart: [],\n }))\n }\n\n const mouseEvents = {\n moveHandler: (e: MouseEvent) => onMove(e.clientX),\n upHandler: (e: MouseEvent) => {\n document.removeEventListener('mousemove', mouseEvents.moveHandler)\n document.removeEventListener('mouseup', mouseEvents.upHandler)\n onEnd(e.clientX)\n },\n }\n\n const touchEvents = {\n moveHandler: (e: TouchEvent) => {\n if (e.cancelable) {\n e.preventDefault()\n e.stopPropagation()\n }\n onMove(e.touches[0]!.clientX)\n return false\n },\n upHandler: (e: TouchEvent) => {\n document.removeEventListener('touchmove', touchEvents.moveHandler)\n document.removeEventListener('touchend', touchEvents.upHandler)\n if (e.cancelable) {\n e.preventDefault()\n e.stopPropagation()\n }\n onEnd(e.touches[0]!.clientX)\n },\n }\n\n const passiveIfSupported = passiveEventSupported()\n ? { passive: false }\n : false\n\n if (isTouchStartEvent(e)) {\n } else {\n document.addEventListener(\n 'mousemove',\n mouseEvents.moveHandler,\n passiveIfSupported\n )\n document.addEventListener(\n 'mouseup',\n mouseEvents.upHandler,\n passiveIfSupported\n )\n }\n\n table.setColumnSizingInfo(old => ({\n ...old,\n startOffset: clientX,\n startSize,\n deltaOffset: 0,\n deltaPercentage: 0,\n columnSizingStart,\n isResizingColumn: column.id,\n }))\n }\n },\n }\n },\n\n createTable: <TData extends RowData>(\n table: Table<TData>\n ): ColumnSizingInstance => {\n return {\n setColumnSizing: updater => table.options.onColumnSizingChange?.(updater),\n setColumnSizingInfo: updater =>\n table.options.onColumnSizingInfoChange?.(updater),\n resetColumnSizing: defaultState => {\n table.setColumnSizing(\n defaultState ? {} : table.initialState.columnSizing ?? {}\n )\n },\n resetHeaderSizeInfo: defaultState => {\n table.setColumnSizingInfo(\n defaultState\n ? getDefaultColumnSizingInfoState()\n : table.initialState.columnSizingInfo ??\n getDefaultColumnSizingInfoState()\n )\n },\n getTotalSize: () =>\n table.getHeaderGroups()[0]?.headers.reduce((sum, header) => {\n return sum + header.getSize()\n }, 0) ?? 0,\n getLeftTotalSize: () =>\n table.getLeftHeaderGroups()[0]?.headers.reduce((sum, header) => {\n return sum + header.getSize()\n }, 0) ?? 0,\n getCenterTotalSize: () =>\n table.getCenterHeaderGroups()[0]?.headers.reduce((sum, header) => {\n return sum + header.getSize()\n }, 0) ?? 0,\n getRightTotalSize: () =>\n table.getRightHeaderGroups()[0]?.headers.reduce((sum, header) => {\n return sum + header.getSize()\n }, 0) ?? 0,\n }\n },\n}\n\nlet passiveSupported: boolean | null = null\nexport function passiveEventSupported() {\n if (typeof passiveSupported === 'boolean') return passiveSupported\n\n let supported = false\n try {\n const options = {\n get passive() {\n supported = true\n return false\n },\n }\n\n const noop = () => {}\n\n window.addEventListener('test', noop, options)\n window.removeEventListener('test', noop)\n } catch (err) {\n supported = false\n }\n passiveSupported = supported\n return passiveSupported\n}\n\nfunction isTouchStartEvent(e: unknown): e is TouchEvent {\n return (e as TouchEvent).type === 'touchstart'\n}\n"],"names":["defaultColumnSizing","size","minSize","maxSize","Number","MAX_SAFE_INTEGER","getDefaultColumnSizingInfoState","startOffset","startSize","deltaOffset","deltaPercentage","isResizingColumn","columnSizingStart","ColumnSizing","getDefaultColumnDef","getInitialState","state","columnSizing","columnSizingInfo","getDefaultOptions","table","columnResizeMode","onColumnSizingChange","makeStateUpdater","onColumnSizingInfoChange","createColumn","column","getSize","columnSize","getState","id","Math","min","max","columnDef","getStart","position","columns","getVisibleLeafColumns","getLeftVisibleLeafColumns","getRightVisibleLeafColumns","index","findIndex","d","prevSiblingColumn","resetSize","setColumnSizing","_","rest","getCanResize","enableResizing","options","enableColumnResizing","getIsResizing","createHeader","header","sum","recurse","subHeaders","length","forEach","prevSiblingHeader","headerGroup","headers","getResizeHandler","getColumn","canResize","e","persist","isTouchStartEvent","touches","getLeafHeaders","map","clientX","round","updateOffset","eventType","clientXPos","newColumnSizing","setColumnSizingInfo","old","columnId","headerSize","onMove","onEnd","mouseEvents","moveHandler","upHandler","document","removeEventListener","passiveIfSupported","passiveEventSupported","passive","addEventListener","createTable","updater","resetColumnSizing","defaultState","initialState","resetHeaderSizeInfo","getTotalSize","getHeaderGroups","reduce","getLeftTotalSize","getLeftHeaderGroups","getCenterTotalSize","getCenterHeaderGroups","getRightTotalSize","getRightHeaderGroups","passiveSupported","supported","noop","window","err","type"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Expanding.js","sources":["../../../src/features/Expanding.ts"],"sourcesContent":["import { RowModel } from '..'\nimport { TableFeature } from '../core/table'\nimport {\n OnChangeFn,\n TableGenerics,\n Table,\n Row,\n Updater,\n RowData,\n} from '../types'\nimport { makeStateUpdater } from '../utils'\n\nexport type ExpandedStateList = Record<string, boolean>\nexport type ExpandedState = true | Record<string, boolean>\nexport type ExpandedTableState = {\n expanded: ExpandedState\n}\n\nexport type ExpandedRow = {\n toggleExpanded: (expanded?: boolean) => void\n getIsExpanded: () => boolean\n getCanExpand: () => boolean\n getToggleExpandedHandler: () => () => void\n}\n\nexport type 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 type 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 (\n (table.options.enableExpanding ?? true) &&\n !!row.subRows?.length\n )\n )\n },\n getToggleExpandedHandler: () => {\n const canExpand = row.getCanExpand()\n\n return () => {\n if (!canExpand) return\n row.toggleExpanded()\n }\n },\n }\n },\n}\n"],"names":["Expanding","getInitialState","state","expanded","getDefaultOptions","table","onExpandedChange","makeStateUpdater","paginateExpandedRows","createTable","registered","queued","_autoResetExpanded","_queue","options","autoResetAll","autoResetExpanded","manualExpanding","resetExpanded","setExpanded","updater","toggleAllRowsExpanded","getIsAllRowsExpanded","defaultState","initialState","getCanSomeRowsExpand","getRowModel","flatRows","some","row","getCanExpand","getToggleAllRowsExpandedHandler","e","persist","getIsSomeRowsExpanded","getState","Object","values","Boolean","keys","length","getIsExpanded","getExpandedDepth","maxDepth","rowIds","rowsById","forEach","id","splitId","split","Math","max","getPreExpandedRowModel","getSortedRowModel","getExpandedRowModel","_getExpandedRowModel","createRow","toggleExpanded","old","exists","oldExpanded","rowId","_","rest","getIsRowExpanded","getRowCanExpand","enableExpanding","subRows","getToggleExpandedHandler","canExpand"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Expanding.js","sources":["../../../src/features/Expanding.ts"],"sourcesContent":["import { RowModel } from '..'\nimport { TableFeature } from '../core/table'\nimport { OnChangeFn, Table, Row, Updater, RowData } from '../types'\nimport { makeStateUpdater } from '../utils'\n\nexport type ExpandedStateList = Record<string, boolean>\nexport type ExpandedState = true | Record<string, boolean>\nexport type ExpandedTableState = {\n expanded: ExpandedState\n}\n\nexport type ExpandedRow = {\n toggleExpanded: (expanded?: boolean) => void\n getIsExpanded: () => boolean\n getCanExpand: () => boolean\n getToggleExpandedHandler: () => () => void\n}\n\nexport type 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 type ExpandedInstance<TData extends RowData> = {\n _autoResetExpanded: () => void\n setExpanded: (updater: Updater<ExpandedState>) => void\n toggleAllRowsExpanded: (expanded?: boolean) => void\n resetExpanded: (defaultState?: boolean) => void\n getCanSomeRowsExpand: () => boolean\n getToggleAllRowsExpandedHandler: () => (event: unknown) => void\n getIsSomeRowsExpanded: () => boolean\n getIsAllRowsExpanded: () => boolean\n getExpandedDepth: () => number\n getExpandedRowModel: () => RowModel<TData>\n _getExpandedRowModel?: () => RowModel<TData>\n getPreExpandedRowModel: () => RowModel<TData>\n}\n\n//\n\nexport const Expanding: TableFeature = {\n getInitialState: (state): ExpandedTableState => {\n return {\n expanded: {},\n ...state,\n }\n },\n\n getDefaultOptions: <TData extends RowData>(\n table: Table<TData>\n ): ExpandedOptions<TData> => {\n return {\n onExpandedChange: makeStateUpdater('expanded', table),\n paginateExpandedRows: true,\n }\n },\n\n createTable: <TData extends RowData>(\n table: Table<TData>\n ): ExpandedInstance<TData> => {\n let registered = false\n let queued = false\n\n return {\n _autoResetExpanded: () => {\n if (!registered) {\n table._queue(() => {\n registered = true\n })\n return\n }\n\n if (\n table.options.autoResetAll ??\n table.options.autoResetExpanded ??\n !table.options.manualExpanding\n ) {\n if (queued) return\n queued = true\n table._queue(() => {\n table.resetExpanded()\n queued = false\n })\n }\n },\n setExpanded: updater => table.options.onExpandedChange?.(updater),\n toggleAllRowsExpanded: expanded => {\n if (expanded ?? !table.getIsAllRowsExpanded()) {\n table.setExpanded(true)\n } else {\n table.setExpanded({})\n }\n },\n resetExpanded: defaultState => {\n table.setExpanded(\n defaultState ? {} : table.initialState?.expanded ?? {}\n )\n },\n getCanSomeRowsExpand: () => {\n return table.getRowModel().flatRows.some(row => row.getCanExpand())\n },\n getToggleAllRowsExpandedHandler: () => {\n return (e: unknown) => {\n ;(e as any).persist?.()\n table.toggleAllRowsExpanded()\n }\n },\n getIsSomeRowsExpanded: () => {\n const expanded = table.getState().expanded\n return expanded === true || Object.values(expanded).some(Boolean)\n },\n getIsAllRowsExpanded: () => {\n const expanded = table.getState().expanded\n\n // If expanded is true, save some cycles and return true\n if (typeof expanded === 'boolean') {\n return expanded === true\n }\n\n if (!Object.keys(expanded).length) {\n return false\n }\n\n // If any row is not expanded, return false\n if (table.getRowModel().flatRows.some(row => row.getIsExpanded())) {\n return false\n }\n\n // They must all be expanded :shrug:\n return true\n },\n getExpandedDepth: () => {\n let maxDepth = 0\n\n const rowIds =\n table.getState().expanded === true\n ? Object.keys(table.getRowModel().rowsById)\n : Object.keys(table.getState().expanded)\n\n rowIds.forEach(id => {\n const splitId = id.split('.')\n maxDepth = Math.max(maxDepth, splitId.length)\n })\n\n return maxDepth\n },\n getPreExpandedRowModel: () => table.getSortedRowModel(),\n getExpandedRowModel: () => {\n if (!table._getExpandedRowModel && table.options.getExpandedRowModel) {\n table._getExpandedRowModel = table.options.getExpandedRowModel(table)\n }\n\n if (table.options.manualExpanding || !table._getExpandedRowModel) {\n return table.getPreExpandedRowModel()\n }\n\n return table._getExpandedRowModel()\n },\n }\n },\n\n createRow: <TData extends RowData>(\n row: Row<TData>,\n table: Table<TData>\n ): ExpandedRow => {\n return {\n toggleExpanded: expanded => {\n table.setExpanded(old => {\n const exists = old === true ? true : !!old?.[row.id]\n\n let oldExpanded: ExpandedStateList = {}\n\n if (old === true) {\n Object.keys(table.getRowModel().rowsById).forEach(rowId => {\n oldExpanded[rowId] = true\n })\n } else {\n oldExpanded = old\n }\n\n expanded = expanded ?? !exists\n\n if (!exists && expanded) {\n return {\n ...oldExpanded,\n [row.id]: true,\n }\n }\n\n if (exists && !expanded) {\n const { [row.id]: _, ...rest } = oldExpanded\n return rest\n }\n\n return old\n })\n },\n getIsExpanded: () => {\n const expanded = table.getState().expanded\n\n return !!(\n table.options.getIsRowExpanded?.(row) ??\n (expanded === true || expanded?.[row.id])\n )\n },\n getCanExpand: () => {\n return (\n table.options.getRowCanExpand?.(row) ??\n ((table.options.enableExpanding ?? true) && !!row.subRows?.length)\n )\n },\n getToggleExpandedHandler: () => {\n const canExpand = row.getCanExpand()\n\n return () => {\n if (!canExpand) return\n row.toggleExpanded()\n }\n },\n }\n },\n}\n"],"names":["Expanding","getInitialState","state","expanded","getDefaultOptions","table","onExpandedChange","makeStateUpdater","paginateExpandedRows","createTable","registered","queued","_autoResetExpanded","_queue","options","autoResetAll","autoResetExpanded","manualExpanding","resetExpanded","setExpanded","updater","toggleAllRowsExpanded","getIsAllRowsExpanded","defaultState","initialState","getCanSomeRowsExpand","getRowModel","flatRows","some","row","getCanExpand","getToggleAllRowsExpandedHandler","e","persist","getIsSomeRowsExpanded","getState","Object","values","Boolean","keys","length","getIsExpanded","getExpandedDepth","maxDepth","rowIds","rowsById","forEach","id","splitId","split","Math","max","getPreExpandedRowModel","getSortedRowModel","getExpandedRowModel","_getExpandedRowModel","createRow","toggleExpanded","old","exists","oldExpanded","rowId","_","rest","getIsRowExpanded","getRowCanExpand","enableExpanding","subRows","getToggleExpandedHandler","canExpand"],"mappings":";;;;;;;;;;;;;;;;AA4CA;AAEO,MAAMA,SAAuB,GAAG;EACrCC,eAAe,EAAGC,KAAD,IAA+B;IAC9C,OAAO;AACLC,MAAAA,QAAQ,EAAE,EADL;MAEL,GAAGD,KAAAA;KAFL,CAAA;GAFmC;EAQrCE,iBAAiB,EACfC,KADiB,IAEU;IAC3B,OAAO;AACLC,MAAAA,gBAAgB,EAAEC,sBAAgB,CAAC,UAAD,EAAaF,KAAb,CAD7B;AAELG,MAAAA,oBAAoB,EAAE,IAAA;KAFxB,CAAA;GAXmC;EAiBrCC,WAAW,EACTJ,KADW,IAEiB;IAC5B,IAAIK,UAAU,GAAG,KAAjB,CAAA;IACA,IAAIC,MAAM,GAAG,KAAb,CAAA;IAEA,OAAO;AACLC,MAAAA,kBAAkB,EAAE,MAAM;AAAA,QAAA,IAAA,IAAA,EAAA,qBAAA,CAAA;;QACxB,IAAI,CAACF,UAAL,EAAiB;UACfL,KAAK,CAACQ,MAAN,CAAa,MAAM;AACjBH,YAAAA,UAAU,GAAG,IAAb,CAAA;WADF,CAAA,CAAA;;AAGA,UAAA,OAAA;AACD,SAAA;;AAED,QAAA,IAAA,CAAA,IAAA,GAAA,CAAA,qBAAA,GACEL,KAAK,CAACS,OAAN,CAAcC,YADhB,KAAA,IAAA,GAAA,qBAAA,GAEEV,KAAK,CAACS,OAAN,CAAcE,iBAFhB,mBAGE,CAACX,KAAK,CAACS,OAAN,CAAcG,eAHjB,EAIE;AACA,UAAA,IAAIN,MAAJ,EAAY,OAAA;AACZA,UAAAA,MAAM,GAAG,IAAT,CAAA;;UACAN,KAAK,CAACQ,MAAN,CAAa,MAAM;AACjBR,YAAAA,KAAK,CAACa,aAAN,EAAA,CAAA;AACAP,YAAAA,MAAM,GAAG,KAAT,CAAA;WAFF,CAAA,CAAA;AAID,SAAA;OApBE;AAsBLQ,MAAAA,WAAW,EAAEC,OAAO,IAAIf,KAAK,CAACS,OAAN,CAAcR,gBAAlB,IAAID,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,KAAK,CAACS,OAAN,CAAcR,gBAAd,CAAiCc,OAAjC,CAtBnB;MAuBLC,qBAAqB,EAAElB,QAAQ,IAAI;QACjC,IAAIA,QAAJ,WAAIA,QAAJ,GAAgB,CAACE,KAAK,CAACiB,oBAAN,EAAjB,EAA+C;UAC7CjB,KAAK,CAACc,WAAN,CAAkB,IAAlB,CAAA,CAAA;AACD,SAFD,MAEO;UACLd,KAAK,CAACc,WAAN,CAAkB,EAAlB,CAAA,CAAA;AACD,SAAA;OA5BE;MA8BLD,aAAa,EAAEK,YAAY,IAAI;AAAA,QAAA,IAAA,qBAAA,EAAA,mBAAA,CAAA;;AAC7BlB,QAAAA,KAAK,CAACc,WAAN,CACEI,YAAY,GAAG,EAAH,GAAA,CAAA,qBAAA,GAAA,CAAA,mBAAA,GAAQlB,KAAK,CAACmB,YAAd,KAAA,IAAA,GAAA,KAAA,CAAA,GAAQ,mBAAoBrB,CAAAA,QAA5B,oCAAwC,EADtD,CAAA,CAAA;OA/BG;AAmCLsB,MAAAA,oBAAoB,EAAE,MAAM;AAC1B,QAAA,OAAOpB,KAAK,CAACqB,WAAN,EAAA,CAAoBC,QAApB,CAA6BC,IAA7B,CAAkCC,GAAG,IAAIA,GAAG,CAACC,YAAJ,EAAzC,CAAP,CAAA;OApCG;AAsCLC,MAAAA,+BAA+B,EAAE,MAAM;AACrC,QAAA,OAAQC,CAAD,IAAgB;AACnBA,UAAAA,CAAD,CAAWC,OAAX,IAACD,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,CAAD,CAAWC,OAAX,EAAA,CAAA;AACD5B,UAAAA,KAAK,CAACgB,qBAAN,EAAA,CAAA;SAFF,CAAA;OAvCG;AA4CLa,MAAAA,qBAAqB,EAAE,MAAM;AAC3B,QAAA,MAAM/B,QAAQ,GAAGE,KAAK,CAAC8B,QAAN,GAAiBhC,QAAlC,CAAA;AACA,QAAA,OAAOA,QAAQ,KAAK,IAAb,IAAqBiC,MAAM,CAACC,MAAP,CAAclC,QAAd,CAAA,CAAwByB,IAAxB,CAA6BU,OAA7B,CAA5B,CAAA;OA9CG;AAgDLhB,MAAAA,oBAAoB,EAAE,MAAM;QAC1B,MAAMnB,QAAQ,GAAGE,KAAK,CAAC8B,QAAN,EAAiBhC,CAAAA,QAAlC,CAD0B;;AAI1B,QAAA,IAAI,OAAOA,QAAP,KAAoB,SAAxB,EAAmC;UACjC,OAAOA,QAAQ,KAAK,IAApB,CAAA;AACD,SAAA;;QAED,IAAI,CAACiC,MAAM,CAACG,IAAP,CAAYpC,QAAZ,CAAA,CAAsBqC,MAA3B,EAAmC;AACjC,UAAA,OAAO,KAAP,CAAA;AACD,SAVyB;;;AAa1B,QAAA,IAAInC,KAAK,CAACqB,WAAN,EAAA,CAAoBC,QAApB,CAA6BC,IAA7B,CAAkCC,GAAG,IAAIA,GAAG,CAACY,aAAJ,EAAzC,CAAJ,EAAmE;AACjE,UAAA,OAAO,KAAP,CAAA;AACD,SAfyB;;;AAkB1B,QAAA,OAAO,IAAP,CAAA;OAlEG;AAoELC,MAAAA,gBAAgB,EAAE,MAAM;QACtB,IAAIC,QAAQ,GAAG,CAAf,CAAA;AAEA,QAAA,MAAMC,MAAM,GACVvC,KAAK,CAAC8B,QAAN,EAAA,CAAiBhC,QAAjB,KAA8B,IAA9B,GACIiC,MAAM,CAACG,IAAP,CAAYlC,KAAK,CAACqB,WAAN,EAAoBmB,CAAAA,QAAhC,CADJ,GAEIT,MAAM,CAACG,IAAP,CAAYlC,KAAK,CAAC8B,QAAN,EAAA,CAAiBhC,QAA7B,CAHN,CAAA;AAKAyC,QAAAA,MAAM,CAACE,OAAP,CAAeC,EAAE,IAAI;AACnB,UAAA,MAAMC,OAAO,GAAGD,EAAE,CAACE,KAAH,CAAS,GAAT,CAAhB,CAAA;UACAN,QAAQ,GAAGO,IAAI,CAACC,GAAL,CAASR,QAAT,EAAmBK,OAAO,CAACR,MAA3B,CAAX,CAAA;SAFF,CAAA,CAAA;AAKA,QAAA,OAAOG,QAAP,CAAA;OAjFG;AAmFLS,MAAAA,sBAAsB,EAAE,MAAM/C,KAAK,CAACgD,iBAAN,EAnFzB;AAoFLC,MAAAA,mBAAmB,EAAE,MAAM;QACzB,IAAI,CAACjD,KAAK,CAACkD,oBAAP,IAA+BlD,KAAK,CAACS,OAAN,CAAcwC,mBAAjD,EAAsE;UACpEjD,KAAK,CAACkD,oBAAN,GAA6BlD,KAAK,CAACS,OAAN,CAAcwC,mBAAd,CAAkCjD,KAAlC,CAA7B,CAAA;AACD,SAAA;;QAED,IAAIA,KAAK,CAACS,OAAN,CAAcG,eAAd,IAAiC,CAACZ,KAAK,CAACkD,oBAA5C,EAAkE;UAChE,OAAOlD,KAAK,CAAC+C,sBAAN,EAAP,CAAA;AACD,SAAA;;QAED,OAAO/C,KAAK,CAACkD,oBAAN,EAAP,CAAA;AACD,OAAA;KA9FH,CAAA;GAvBmC;AAyHrCC,EAAAA,SAAS,EAAE,CACT3B,GADS,EAETxB,KAFS,KAGO;IAChB,OAAO;MACLoD,cAAc,EAAEtD,QAAQ,IAAI;AAC1BE,QAAAA,KAAK,CAACc,WAAN,CAAkBuC,GAAG,IAAI;AAAA,UAAA,IAAA,SAAA,CAAA;;AACvB,UAAA,MAAMC,MAAM,GAAGD,GAAG,KAAK,IAAR,GAAe,IAAf,GAAsB,CAAC,EAACA,GAAD,YAACA,GAAG,CAAG7B,GAAG,CAACkB,EAAP,CAAJ,CAAtC,CAAA;UAEA,IAAIa,WAA8B,GAAG,EAArC,CAAA;;UAEA,IAAIF,GAAG,KAAK,IAAZ,EAAkB;AAChBtB,YAAAA,MAAM,CAACG,IAAP,CAAYlC,KAAK,CAACqB,WAAN,EAAoBmB,CAAAA,QAAhC,CAA0CC,CAAAA,OAA1C,CAAkDe,KAAK,IAAI;AACzDD,cAAAA,WAAW,CAACC,KAAD,CAAX,GAAqB,IAArB,CAAA;aADF,CAAA,CAAA;AAGD,WAJD,MAIO;AACLD,YAAAA,WAAW,GAAGF,GAAd,CAAA;AACD,WAAA;;AAEDvD,UAAAA,QAAQ,GAAGA,CAAAA,SAAAA,GAAAA,QAAH,KAAe,IAAA,GAAA,SAAA,GAAA,CAACwD,MAAxB,CAAA;;AAEA,UAAA,IAAI,CAACA,MAAD,IAAWxD,QAAf,EAAyB;YACvB,OAAO,EACL,GAAGyD,WADE;cAEL,CAAC/B,GAAG,CAACkB,EAAL,GAAU,IAAA;aAFZ,CAAA;AAID,WAAA;;AAED,UAAA,IAAIY,MAAM,IAAI,CAACxD,QAAf,EAAyB;YACvB,MAAM;AAAE,cAAA,CAAC0B,GAAG,CAACkB,EAAL,GAAUe,CAAZ;cAAe,GAAGC,IAAAA;AAAlB,aAAA,GAA2BH,WAAjC,CAAA;AACA,YAAA,OAAOG,IAAP,CAAA;AACD,WAAA;;AAED,UAAA,OAAOL,GAAP,CAAA;SA3BF,CAAA,CAAA;OAFG;AAgCLjB,MAAAA,aAAa,EAAE,MAAM;AAAA,QAAA,IAAA,qBAAA,CAAA;;AACnB,QAAA,MAAMtC,QAAQ,GAAGE,KAAK,CAAC8B,QAAN,GAAiBhC,QAAlC,CAAA;AAEA,QAAA,OAAO,CAAC,EAAA,CAAA,qBAAA,GACNE,KAAK,CAACS,OAAN,CAAckD,gBADR,IAAA,IAAA,GAAA,KAAA,CAAA,GACN3D,KAAK,CAACS,OAAN,CAAckD,gBAAd,CAAiCnC,GAAjC,CADM,KAAA,IAAA,GAAA,qBAAA,GAEL1B,QAAQ,KAAK,IAAb,KAAqBA,QAArB,IAAA,IAAA,GAAA,KAAA,CAAA,GAAqBA,QAAQ,CAAG0B,GAAG,CAACkB,EAAP,CAA7B,CAFK,CAAR,CAAA;OAnCG;AAwCLjB,MAAAA,YAAY,EAAE,MAAM;AAAA,QAAA,IAAA,qBAAA,EAAA,qBAAA,EAAA,YAAA,CAAA;;AAClB,QAAA,OAAA,CAAA,qBAAA,GACEzB,KAAK,CAACS,OAAN,CAAcmD,eADhB,IACE5D,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,KAAK,CAACS,OAAN,CAAcmD,eAAd,CAAgCpC,GAAhC,CADF,KAEG,IAAA,GAAA,qBAAA,GAAA,CAAA,CAAA,qBAAA,GAACxB,KAAK,CAACS,OAAN,CAAcoD,eAAf,KAAA,IAAA,GAAA,qBAAA,GAAkC,IAAlC,KAA2C,CAAC,EAACrC,CAAAA,YAAAA,GAAAA,GAAG,CAACsC,OAAL,KAAC,IAAA,IAAA,YAAA,CAAa3B,MAAd,CAF/C,CAAA;OAzCG;AA8CL4B,MAAAA,wBAAwB,EAAE,MAAM;AAC9B,QAAA,MAAMC,SAAS,GAAGxC,GAAG,CAACC,YAAJ,EAAlB,CAAA;AAEA,QAAA,OAAO,MAAM;UACX,IAAI,CAACuC,SAAL,EAAgB,OAAA;AAChBxC,UAAAA,GAAG,CAAC4B,cAAJ,EAAA,CAAA;SAFF,CAAA;AAID,OAAA;KArDH,CAAA;AAuDD,GAAA;AApLoC;;;;"}
|
|
@@ -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 TableGenerics,\n Table,\n Row,\n Updater,\n RowData,\n FilterMeta,\n} from '../types'\nimport { functionalUpdate, isFunction, makeStateUpdater } from '../utils'\n\nexport type FiltersTableState = {\n columnFilters: ColumnFiltersState\n globalFilter: any\n}\n\nexport type ColumnFiltersState = ColumnFilter[]\n\nexport type ColumnFilter = {\n id: string\n value: unknown\n}\n\nexport type ResolvedColumnFilter<TData extends RowData> = {\n id: string\n resolvedValue: unknown\n filterFn: FilterFn<TData>\n}\n\nexport type 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 | FilterFn<TData>\n\nexport type FiltersColumnDef<TData extends RowData> = {\n filterFn?: FilterFnOption<TData>\n enableColumnFilter?: boolean\n enableGlobalFilter?: boolean\n}\n\nexport type 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 type FiltersRow<TData extends RowData> = {\n columnFilters: Record<string, boolean>\n columnFiltersMeta: Record<string, FilterMeta>\n}\n\nexport type FiltersOptions<TData extends RowData> = {\n enableFilters?: boolean\n manualFiltering?: boolean\n filterFromLeafRows?: boolean\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\nexport type 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 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 }\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 : (filterFns[\n column.columnDef.filterFn as BuiltInFilterFn\n ] as FilterFn<TData>)\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 : (filterFns[globalFilterFn as BuiltInFilterFn] as FilterFn<TData>)\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 table.options.getFilteredRowModel &&\n table.options.getFilteredRowModel(table),\n getFilteredRowModel: () => {\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","globalFilterFn","getColumnCanGlobalFilter","column","value","getCoreRowModel","flatRows","_getAllCellsByColumnId","id","getValue","createColumn","getAutoFilterFn","firstRow","filterFns","includesString","inNumberRange","equals","Array","isArray","arrIncludes","weakEquals","getFilterFn","isFunction","columnDef","getCanFilter","enableColumnFilter","options","enableColumnFilters","enableFilters","accessorFn","getCanGlobalFilter","enableGlobalFilter","getIsFiltered","getFilterIndex","getFilterValue","getState","find","d","findIndex","setFilterValue","setColumnFilters","old","previousfilter","newFilter","functionalUpdate","shouldAutoRemoveFilter","filter","newFilterObj","map","length","_getFacetedRowModel","getFacetedRowModel","getPreFilteredRowModel","_getFacetedUniqueValues","getFacetedUniqueValues","Map","_getFacetedMinMaxValues","getFacetedMinMaxValues","createRow","row","columnFiltersMeta","createTable","getGlobalAutoFilterFn","getGlobalFilterFn","updater","leafColumns","getAllLeafColumns","updateFn","setGlobalFilter","resetGlobalFilter","defaultState","initialState","resetColumnFilters","_getFilteredRowModel","getFilteredRowModel","manualFiltering","_getGlobalFacetedRowModel","getGlobalFacetedRowModel","_getGlobalFacetedUniqueValues","getGlobalFacetedUniqueValues","_getGlobalFacetedMinMaxValues","getGlobalFacetedMinMaxValues","autoRemove"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Filters.js","sources":["../../../src/features/Filters.ts"],"sourcesContent":["import { RowModel } from '..'\nimport { TableFeature } from '../core/table'\nimport { BuiltInFilterFn, filterFns } from '../filterFns'\nimport {\n Column,\n OnChangeFn,\n Table,\n Row,\n Updater,\n RowData,\n FilterMeta,\n} from '../types'\nimport { functionalUpdate, isFunction, makeStateUpdater } from '../utils'\n\nexport type FiltersTableState = {\n columnFilters: ColumnFiltersState\n globalFilter: any\n}\n\nexport type ColumnFiltersState = ColumnFilter[]\n\nexport type ColumnFilter = {\n id: string\n value: unknown\n}\n\nexport type ResolvedColumnFilter<TData extends RowData> = {\n id: string\n resolvedValue: unknown\n filterFn: FilterFn<TData>\n}\n\nexport type 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 | FilterFn<TData>\n\nexport type FiltersColumnDef<TData extends RowData> = {\n filterFn?: FilterFnOption<TData>\n enableColumnFilter?: boolean\n enableGlobalFilter?: boolean\n}\n\nexport type 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 type FiltersRow<TData extends RowData> = {\n columnFilters: Record<string, boolean>\n columnFiltersMeta: Record<string, FilterMeta>\n}\n\nexport type FiltersOptions<TData extends RowData> = {\n enableFilters?: boolean\n manualFiltering?: boolean\n filterFromLeafRows?: boolean\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\nexport type 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 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 }\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 : (filterFns[\n column.columnDef.filterFn as BuiltInFilterFn\n ] as FilterFn<TData>)\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 : (filterFns[globalFilterFn as BuiltInFilterFn] as FilterFn<TData>)\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 table.options.getFilteredRowModel &&\n table.options.getFilteredRowModel(table),\n getFilteredRowModel: () => {\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","globalFilterFn","getColumnCanGlobalFilter","column","value","getCoreRowModel","flatRows","_getAllCellsByColumnId","id","getValue","createColumn","getAutoFilterFn","firstRow","filterFns","includesString","inNumberRange","equals","Array","isArray","arrIncludes","weakEquals","getFilterFn","isFunction","columnDef","getCanFilter","enableColumnFilter","options","enableColumnFilters","enableFilters","accessorFn","getCanGlobalFilter","enableGlobalFilter","getIsFiltered","getFilterIndex","getFilterValue","getState","find","d","findIndex","setFilterValue","setColumnFilters","old","previousfilter","newFilter","functionalUpdate","shouldAutoRemoveFilter","filter","newFilterObj","map","length","_getFacetedRowModel","getFacetedRowModel","getPreFilteredRowModel","_getFacetedUniqueValues","getFacetedUniqueValues","Map","_getFacetedMinMaxValues","getFacetedMinMaxValues","createRow","row","columnFiltersMeta","createTable","getGlobalAutoFilterFn","getGlobalFilterFn","updater","leafColumns","getAllLeafColumns","updateFn","setGlobalFilter","resetGlobalFilter","defaultState","initialState","resetColumnFilters","_getFilteredRowModel","getFilteredRowModel","manualFiltering","_getGlobalFacetedRowModel","getGlobalFacetedRowModel","_getGlobalFacetedUniqueValues","getGlobalFacetedUniqueValues","_getGlobalFacetedMinMaxValues","getGlobalFacetedMinMaxValues","autoRemove"],"mappings":"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"}
|
|
@@ -1 +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 TableGenerics,\n RowData,\n} from '../types'\nimport { isFunction, makeStateUpdater, Overwrite } from '../utils'\n\nexport type GroupingState = string[]\n\nexport type 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 | BuiltInAggregationFn\n | AggregationFn<TData>\n\nexport type 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 type 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 type GroupingRow = {\n groupingColumnId?: string\n groupingValue?: unknown\n getIsGrouped: () => boolean\n _groupingValuesCache: Record<string, any>\n}\n\nexport type GroupingCell = {\n getIsGrouped: () => boolean\n getIsPlaceholder: () => boolean\n getIsAggregated: () => boolean\n}\n\nexport type ColumnDefaultOptions = {\n // Column\n onGroupingChange: OnChangeFn<GroupingState>\n enableGrouping: boolean\n}\n\nexport type GroupingOptions = {\n manualGrouping?: boolean\n onGroupingChange?: OnChangeFn<GroupingState>\n enableGrouping?: boolean\n getGroupedRowModel?: (table: Table<any>) => () => RowModel<any>\n groupedColumnMode?: false | 'reorder' | 'remove'\n}\n\nexport type GroupingColumnMode = false | 'reorder' | 'remove'\n\nexport type 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 : (aggregationFns[\n column.columnDef.aggregationFn as BuiltInAggregationFn\n ] as AggregationFn<TData>)\n },\n }\n },\n\n createTable: <TData extends RowData>(\n table: Table<TData>\n ): GroupingInstance<TData> => {\n return {\n setGrouping: updater => table.options.onGroupingChange?.(updater),\n\n resetGrouping: defaultState => {\n table.setGrouping(\n defaultState ? [] : table.initialState?.grouping ?? []\n )\n },\n\n getPreGroupedRowModel: () => table.getFilteredRowModel(),\n getGroupedRowModel: () => {\n if (!table._getGroupedRowModel && table.options.getGroupedRowModel) {\n table._getGroupedRowModel = table.options.getGroupedRowModel(table)\n }\n\n if (table.options.manualGrouping || !table._getGroupedRowModel) {\n return table.getPreGroupedRowModel()\n }\n\n return table._getGroupedRowModel()\n },\n }\n },\n\n createRow: <TData extends RowData>(row: Row<TData>): GroupingRow => {\n return {\n getIsGrouped: () => !!row.groupingColumnId,\n _groupingValuesCache: {},\n }\n },\n\n createCell: <TData extends RowData, TValue>(\n cell: Cell<TData, TValue>,\n column: Column<TData, TValue>,\n row: Row<TData>,\n table: Table<TData>\n ): GroupingCell => {\n const getRenderValue = () =>\n cell.getValue() ?? table.options.renderFallbackValue\n\n return {\n getIsGrouped: () =>\n column.getIsGrouped() && column.id === row.groupingColumnId,\n getIsPlaceholder: () => !cell.getIsGrouped() && column.getIsGrouped(),\n getIsAggregated: () =>\n !cell.getIsGrouped() &&\n !cell.getIsPlaceholder() &&\n !!row.subRows?.length,\n }\n },\n}\n\nexport function orderColumns<TData extends RowData>(\n leafColumns: Column<TData, unknown>[],\n grouping: string[],\n groupedColumnMode?: GroupingColumnMode\n) {\n if (!grouping?.length || !groupedColumnMode) {\n return leafColumns\n }\n\n const nonGroupingColumns = leafColumns.filter(\n col => !grouping.includes(col.id)\n )\n\n if (groupedColumnMode === 'remove') {\n return nonGroupingColumns\n }\n\n const groupingColumns = grouping\n .map(g => leafColumns.find(col => col.id === g)!)\n .filter(Boolean)\n\n return [...groupingColumns, ...nonGroupingColumns]\n}\n"],"names":["Grouping","getDefaultColumnDef","aggregatedCell","props","getValue","toString","aggregationFn","getInitialState","state","grouping","getDefaultOptions","table","onGroupingChange","makeStateUpdater","groupedColumnMode","createColumn","column","toggleGrouping","setGrouping","old","includes","id","filter","d","getCanGroup","columnDef","enableGrouping","options","accessorFn","getIsGrouped","getState","getGroupedIndex","indexOf","getToggleGroupingHandler","canGroup","getAutoAggregationFn","firstRow","getCoreRowModel","flatRows","value","aggregationFns","sum","Object","prototype","call","extent","getAggregationFn","Error","isFunction","createTable","updater","resetGrouping","defaultState","initialState","getPreGroupedRowModel","getFilteredRowModel","getGroupedRowModel","_getGroupedRowModel","manualGrouping","createRow","row","groupingColumnId","_groupingValuesCache","createCell","cell","getIsPlaceholder","getIsAggregated","subRows","length","orderColumns","leafColumns","nonGroupingColumns","col","groupingColumns","map","g","find","Boolean"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Grouping.js","sources":["../../../src/features/Grouping.ts"],"sourcesContent":["import { RowModel } from '..'\nimport { BuiltInAggregationFn, aggregationFns } from '../aggregationFns'\nimport { TableFeature } from '../core/table'\nimport {\n Cell,\n Column,\n OnChangeFn,\n Table,\n Row,\n Updater,\n ColumnDefTemplate,\n RowData,\n} from '../types'\nimport { isFunction, makeStateUpdater, Overwrite } from '../utils'\n\nexport type GroupingState = string[]\n\nexport type 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 | BuiltInAggregationFn\n | AggregationFn<TData>\n\nexport type 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 type 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 type GroupingRow = {\n groupingColumnId?: string\n groupingValue?: unknown\n getIsGrouped: () => boolean\n _groupingValuesCache: Record<string, any>\n}\n\nexport type GroupingCell = {\n getIsGrouped: () => boolean\n getIsPlaceholder: () => boolean\n getIsAggregated: () => boolean\n}\n\nexport type ColumnDefaultOptions = {\n // Column\n onGroupingChange: OnChangeFn<GroupingState>\n enableGrouping: boolean\n}\n\nexport type GroupingOptions = {\n manualGrouping?: boolean\n onGroupingChange?: OnChangeFn<GroupingState>\n enableGrouping?: boolean\n getGroupedRowModel?: (table: Table<any>) => () => RowModel<any>\n groupedColumnMode?: false | 'reorder' | 'remove'\n}\n\nexport type GroupingColumnMode = false | 'reorder' | 'remove'\n\nexport type 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 : (aggregationFns[\n column.columnDef.aggregationFn as BuiltInAggregationFn\n ] as AggregationFn<TData>)\n },\n }\n },\n\n createTable: <TData extends RowData>(\n table: Table<TData>\n ): GroupingInstance<TData> => {\n return {\n setGrouping: updater => table.options.onGroupingChange?.(updater),\n\n resetGrouping: defaultState => {\n table.setGrouping(\n defaultState ? [] : table.initialState?.grouping ?? []\n )\n },\n\n getPreGroupedRowModel: () => table.getFilteredRowModel(),\n getGroupedRowModel: () => {\n if (!table._getGroupedRowModel && table.options.getGroupedRowModel) {\n table._getGroupedRowModel = table.options.getGroupedRowModel(table)\n }\n\n if (table.options.manualGrouping || !table._getGroupedRowModel) {\n return table.getPreGroupedRowModel()\n }\n\n return table._getGroupedRowModel()\n },\n }\n },\n\n createRow: <TData extends RowData>(row: Row<TData>): GroupingRow => {\n return {\n getIsGrouped: () => !!row.groupingColumnId,\n _groupingValuesCache: {},\n }\n },\n\n createCell: <TData extends RowData, TValue>(\n cell: Cell<TData, TValue>,\n column: Column<TData, TValue>,\n row: Row<TData>,\n table: Table<TData>\n ): GroupingCell => {\n const getRenderValue = () =>\n cell.getValue() ?? table.options.renderFallbackValue\n\n return {\n getIsGrouped: () =>\n column.getIsGrouped() && column.id === row.groupingColumnId,\n getIsPlaceholder: () => !cell.getIsGrouped() && column.getIsGrouped(),\n getIsAggregated: () =>\n !cell.getIsGrouped() &&\n !cell.getIsPlaceholder() &&\n !!row.subRows?.length,\n }\n },\n}\n\nexport function orderColumns<TData extends RowData>(\n leafColumns: Column<TData, unknown>[],\n grouping: string[],\n groupedColumnMode?: GroupingColumnMode\n) {\n if (!grouping?.length || !groupedColumnMode) {\n return leafColumns\n }\n\n const nonGroupingColumns = leafColumns.filter(\n col => !grouping.includes(col.id)\n )\n\n if (groupedColumnMode === 'remove') {\n return nonGroupingColumns\n }\n\n const groupingColumns = grouping\n .map(g => leafColumns.find(col => col.id === g)!)\n .filter(Boolean)\n\n return [...groupingColumns, ...nonGroupingColumns]\n}\n"],"names":["Grouping","getDefaultColumnDef","aggregatedCell","props","getValue","toString","aggregationFn","getInitialState","state","grouping","getDefaultOptions","table","onGroupingChange","makeStateUpdater","groupedColumnMode","createColumn","column","toggleGrouping","setGrouping","old","includes","id","filter","d","getCanGroup","columnDef","enableGrouping","options","accessorFn","getIsGrouped","getState","getGroupedIndex","indexOf","getToggleGroupingHandler","canGroup","getAutoAggregationFn","firstRow","getCoreRowModel","flatRows","value","aggregationFns","sum","Object","prototype","call","extent","getAggregationFn","Error","isFunction","createTable","updater","resetGrouping","defaultState","initialState","getPreGroupedRowModel","getFilteredRowModel","getGroupedRowModel","_getGroupedRowModel","manualGrouping","createRow","row","groupingColumnId","_groupingValuesCache","createCell","cell","getIsPlaceholder","getIsAggregated","subRows","length","orderColumns","leafColumns","nonGroupingColumns","col","groupingColumns","map","g","find","Boolean"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Ordering.js","sources":["../../../src/features/Ordering.ts"],"sourcesContent":["import { makeStateUpdater, memo } from '../utils'\n\nimport {
|
|
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 { Grouping, orderColumns } from './Grouping'\nimport { TableFeature } from '../core/table'\n\nexport type ColumnOrderTableState = {\n columnOrder: ColumnOrderState\n}\n\nexport type ColumnOrderState = string[]\n\nexport type ColumnOrderOptions = {\n onColumnOrderChange?: OnChangeFn<ColumnOrderState>\n}\n\nexport type ColumnOrderDefaultOptions = {\n onColumnOrderChange: OnChangeFn<ColumnOrderState>\n}\n\nexport type ColumnOrderInstance<TData extends RowData> = {\n setColumnOrder: (updater: Updater<ColumnOrderState>) => void\n resetColumnOrder: (defaultState?: boolean) => void\n _getOrderColumnsFn: () => (\n columns: Column<TData, unknown>[]\n ) => Column<TData, unknown>[]\n}\n\n//\n\nexport const Ordering: TableFeature = {\n getInitialState: (state): ColumnOrderTableState => {\n return {\n columnOrder: [],\n ...state,\n }\n },\n\n getDefaultOptions: <TData extends RowData>(\n table: Table<TData>\n ): ColumnOrderDefaultOptions => {\n return {\n onColumnOrderChange: makeStateUpdater('columnOrder', table),\n }\n },\n\n createTable: <TData extends RowData>(\n table: Table<TData>\n ): ColumnOrderInstance<TData> => {\n return {\n setColumnOrder: updater => table.options.onColumnOrderChange?.(updater),\n resetColumnOrder: defaultState => {\n table.setColumnOrder(\n defaultState ? [] : table.initialState.columnOrder ?? []\n )\n },\n _getOrderColumnsFn: memo(\n () => [\n table.getState().columnOrder,\n table.getState().grouping,\n table.options.groupedColumnMode,\n ],\n (columnOrder, grouping, groupedColumnMode) => columns => {\n // Sort grouped columns to the start of the column list\n // before the headers are built\n let orderedColumns: Column<TData, unknown>[] = []\n\n // If there is no order, return the normal columns\n if (!columnOrder?.length) {\n orderedColumns = columns\n } else {\n const columnOrderCopy = [...columnOrder]\n\n // If there is an order, make a copy of the columns\n const columnsCopy = [...columns]\n\n // And make a new ordered array of the columns\n\n // Loop over the columns and place them in order into the new array\n while (columnsCopy.length && columnOrderCopy.length) {\n const targetColumnId = columnOrderCopy.shift()\n const foundIndex = columnsCopy.findIndex(\n d => d.id === targetColumnId\n )\n if (foundIndex > -1) {\n orderedColumns.push(columnsCopy.splice(foundIndex, 1)[0]!)\n }\n }\n\n // If there are any columns left, add them to the end\n orderedColumns = [...orderedColumns, ...columnsCopy]\n }\n\n return orderColumns(orderedColumns, grouping, groupedColumnMode)\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getOrderColumnsFn',\n // debug: () => table.options.debugAll ?? table.options.debugTable,\n }\n ),\n }\n },\n}\n"],"names":["Ordering","getInitialState","state","columnOrder","getDefaultOptions","table","onColumnOrderChange","makeStateUpdater","createTable","setColumnOrder","updater","options","resetColumnOrder","defaultState","initialState","_getOrderColumnsFn","memo","getState","grouping","groupedColumnMode","columns","orderedColumns","length","columnOrderCopy","columnsCopy","targetColumnId","shift","foundIndex","findIndex","d","id","push","splice","orderColumns","key","process","env","NODE_ENV"],"mappings":";;;;;;;;;;;;;;;;;AA6BA;AAEO,MAAMA,QAAsB,GAAG;EACpCC,eAAe,EAAGC,KAAD,IAAkC;IACjD,OAAO;AACLC,MAAAA,WAAW,EAAE,EADR;MAEL,GAAGD,KAAAA;KAFL,CAAA;GAFkC;EAQpCE,iBAAiB,EACfC,KADiB,IAEa;IAC9B,OAAO;AACLC,MAAAA,mBAAmB,EAAEC,sBAAgB,CAAC,aAAD,EAAgBF,KAAhB,CAAA;KADvC,CAAA;GAXkC;EAgBpCG,WAAW,EACTH,KADW,IAEoB;IAC/B,OAAO;AACLI,MAAAA,cAAc,EAAEC,OAAO,IAAIL,KAAK,CAACM,OAAN,CAAcL,mBAAlB,IAAID,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,KAAK,CAACM,OAAN,CAAcL,mBAAd,CAAoCI,OAApC,CADtB;MAELE,gBAAgB,EAAEC,YAAY,IAAI;AAAA,QAAA,IAAA,qBAAA,CAAA;;AAChCR,QAAAA,KAAK,CAACI,cAAN,CACEI,YAAY,GAAG,EAAH,GAAQR,CAAAA,qBAAAA,GAAAA,KAAK,CAACS,YAAN,CAAmBX,WAA3B,oCAA0C,EADxD,CAAA,CAAA;OAHG;AAOLY,MAAAA,kBAAkB,EAAEC,UAAI,CACtB,MAAM,CACJX,KAAK,CAACY,QAAN,EAAA,CAAiBd,WADb,EAEJE,KAAK,CAACY,QAAN,EAAiBC,CAAAA,QAFb,EAGJb,KAAK,CAACM,OAAN,CAAcQ,iBAHV,CADgB,EAMtB,CAAChB,WAAD,EAAce,QAAd,EAAwBC,iBAAxB,KAA8CC,OAAO,IAAI;AACvD;AACA;AACA,QAAA,IAAIC,cAAwC,GAAG,EAA/C,CAHuD;;AAMvD,QAAA,IAAI,EAAClB,WAAD,IAAA,IAAA,IAACA,WAAW,CAAEmB,MAAd,CAAJ,EAA0B;AACxBD,UAAAA,cAAc,GAAGD,OAAjB,CAAA;AACD,SAFD,MAEO;AACL,UAAA,MAAMG,eAAe,GAAG,CAAC,GAAGpB,WAAJ,CAAxB,CADK;;AAIL,UAAA,MAAMqB,WAAW,GAAG,CAAC,GAAGJ,OAAJ,CAApB,CAJK;AAQL;;AACA,UAAA,OAAOI,WAAW,CAACF,MAAZ,IAAsBC,eAAe,CAACD,MAA7C,EAAqD;AACnD,YAAA,MAAMG,cAAc,GAAGF,eAAe,CAACG,KAAhB,EAAvB,CAAA;AACA,YAAA,MAAMC,UAAU,GAAGH,WAAW,CAACI,SAAZ,CACjBC,CAAC,IAAIA,CAAC,CAACC,EAAF,KAASL,cADG,CAAnB,CAAA;;AAGA,YAAA,IAAIE,UAAU,GAAG,CAAC,CAAlB,EAAqB;AACnBN,cAAAA,cAAc,CAACU,IAAf,CAAoBP,WAAW,CAACQ,MAAZ,CAAmBL,UAAnB,EAA+B,CAA/B,CAAkC,CAAA,CAAlC,CAApB,CAAA,CAAA;AACD,aAAA;AACF,WAjBI;;;AAoBLN,UAAAA,cAAc,GAAG,CAAC,GAAGA,cAAJ,EAAoB,GAAGG,WAAvB,CAAjB,CAAA;AACD,SAAA;;AAED,QAAA,OAAOS,qBAAY,CAACZ,cAAD,EAAiBH,QAAjB,EAA2BC,iBAA3B,CAAnB,CAAA;AACD,OAtCqB,EAuCtB;QACEe,GAAG,EAAEC,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,aAAzB,IAA0C,mBADjD;;OAvCsB,CAAA;KAP1B,CAAA;AAoDD,GAAA;AAvEmC;;;;"}
|