@tanstack/table-core 8.0.0-alpha.18 → 8.0.0-alpha.21

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.
Files changed (63) hide show
  1. package/build/cjs/core.js.map +1 -1
  2. package/build/cjs/createTable.js +1 -0
  3. package/build/cjs/createTable.js.map +1 -1
  4. package/build/cjs/features/ColumnSizing.js.map +1 -1
  5. package/build/cjs/features/Expanding.js +7 -9
  6. package/build/cjs/features/Expanding.js.map +1 -1
  7. package/build/cjs/features/Filters.js.map +1 -1
  8. package/build/cjs/features/Grouping.js.map +1 -1
  9. package/build/cjs/features/Headers.js.map +1 -1
  10. package/build/cjs/features/Ordering.js.map +1 -1
  11. package/build/cjs/features/Pagination.js +1 -1
  12. package/build/cjs/features/Pagination.js.map +1 -1
  13. package/build/cjs/features/Pinning.js.map +1 -1
  14. package/build/cjs/features/RowSelection.js.map +1 -1
  15. package/build/cjs/features/Sorting.js.map +1 -1
  16. package/build/cjs/features/Visibility.js.map +1 -1
  17. package/build/cjs/filterTypes.js.map +1 -1
  18. package/build/cjs/index.js +0 -2
  19. package/build/cjs/index.js.map +1 -1
  20. package/build/cjs/sortTypes.js.map +1 -1
  21. package/build/cjs/utils/columnFilterRowsFn.js.map +1 -1
  22. package/build/cjs/utils/expandRowsFn.js +1 -2
  23. package/build/cjs/utils/expandRowsFn.js.map +1 -1
  24. package/build/cjs/utils/globalFilterRowsFn.js.map +1 -1
  25. package/build/cjs/utils/groupRowsFn.js.map +1 -1
  26. package/build/cjs/utils/sortRowsFn.js.map +1 -1
  27. package/build/esm/index.js +11 -16
  28. package/build/esm/index.js.map +1 -1
  29. package/build/stats-html.html +1 -1
  30. package/build/stats-react.json +264 -282
  31. package/build/types/core.d.ts +1 -2
  32. package/build/types/createTable.d.ts +14 -12
  33. package/build/types/features/Expanding.d.ts +1 -0
  34. package/build/types/features/RowSelection.d.ts +2 -2
  35. package/build/types/types.d.ts +1 -5
  36. package/build/umd/index.development.js +10 -16
  37. package/build/umd/index.development.js.map +1 -1
  38. package/build/umd/index.production.js +1 -1
  39. package/build/umd/index.production.js.map +1 -1
  40. package/package.json +1 -1
  41. package/src/core.tsx +1 -2
  42. package/src/createTable.tsx +19 -35
  43. package/src/features/ColumnSizing.ts +1 -0
  44. package/src/features/Expanding.ts +9 -7
  45. package/src/features/Filters.ts +1 -0
  46. package/src/features/Grouping.ts +1 -0
  47. package/src/features/Headers.ts +1 -0
  48. package/src/features/Ordering.ts +1 -0
  49. package/src/features/Pagination.ts +4 -2
  50. package/src/features/Pinning.ts +1 -0
  51. package/src/features/RowSelection.ts +2 -2
  52. package/src/features/Sorting.ts +1 -0
  53. package/src/features/Visibility.ts +1 -0
  54. package/src/filterTypes.ts +1 -1
  55. package/src/sortTypes.ts +1 -1
  56. package/src/types.ts +19 -10
  57. package/src/utils/columnFilterRowsFn.ts +7 -1
  58. package/src/utils/expandRowsFn.ts +8 -4
  59. package/src/utils/globalFilterRowsFn.ts +7 -1
  60. package/src/utils/groupRowsFn.ts +8 -2
  61. package/src/utils/sortRowsFn.ts +7 -1
  62. package/build/cjs/types.js +0 -19
  63. package/build/cjs/types.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"core.js","sources":["../../src/core.tsx"],"sourcesContent":["import {\n flattenBy,\n functionalUpdate,\n propGetter,\n memo,\n RequiredKeys,\n} from './utils'\n\nimport {\n Updater,\n PropGetterValue,\n Options,\n TableState,\n ColumnDef,\n Row,\n Column,\n Cell,\n Header,\n AccessorFn,\n HeaderRenderProps,\n TableProps,\n TableBodyProps,\n PropGetter,\n Getter,\n RowProps,\n CellProps,\n TableInstance,\n RowValues,\n Please_use_the_create_table_column_utilities_to_define_columns,\n PartialGenerics,\n CoreCell,\n Renderable,\n UseRenderer,\n} from './types'\n\nimport { Visibility } from './features/Visibility'\nimport { Ordering } from './features/Ordering'\nimport { Pinning } from './features/Pinning'\nimport { Headers } from './features/Headers'\nimport { Filters } from './features/Filters'\nimport { Sorting } from './features/Sorting'\nimport { Grouping } from './features/Grouping'\nimport { Expanding } from './features/Expanding'\nimport { ColumnSizing, defaultColumnSizing } from './features/ColumnSizing'\nimport { Pagination } from './features/Pagination'\nimport { RowSelection } from './features/RowSelection'\nimport { RowModel } from '.'\n\nconst features = [\n Visibility,\n Ordering,\n Pinning,\n Headers,\n Filters,\n Sorting,\n Grouping,\n Expanding,\n ColumnSizing,\n Pagination,\n RowSelection,\n]\n\nexport type CoreOptions<TGenerics extends PartialGenerics> = {\n data: TGenerics['Row'][]\n columns: ColumnDef<TGenerics>[]\n state: Partial<TableState>\n onStateChange: (updater: Updater<TableState>) => void\n render: TGenerics['Render']\n debugAll?: boolean\n debugTable?: boolean\n debugHeaders?: boolean\n debugColumns?: boolean\n debugRows?: boolean\n defaultColumn?: Partial<ColumnDef<TGenerics>>\n initialState?: Partial<TableState>\n getSubRows?: (\n originalRow: TGenerics['Row'],\n index: number\n ) => TGenerics['Row'][]\n getRowId?: (\n originalRow: TGenerics['Row'],\n index: number,\n parent?: Row<TGenerics>\n ) => string\n autoResetAll?: boolean\n}\n\nexport type TableCore<TGenerics extends PartialGenerics> = {\n initialState: TableState\n reset: () => void\n options: RequiredKeys<Options<TGenerics>, 'state'>\n setOptions: (newOptions: Updater<Options<TGenerics>>) => void\n getRowId: (\n _: TGenerics['Row'],\n index: number,\n parent?: Row<TGenerics>\n ) => string\n getState: () => TableState\n setState: (updater: Updater<TableState>) => void\n getDefaultColumn: () => Partial<ColumnDef<TGenerics>>\n getColumnDefs: () => ColumnDef<TGenerics>[]\n createColumn: (\n columnDef: ColumnDef<TGenerics>,\n depth: number,\n parent?: Column<TGenerics>\n ) => Column<TGenerics>\n getAllColumns: () => Column<TGenerics>[]\n getAllFlatColumns: () => Column<TGenerics>[]\n getAllFlatColumnsById: () => Record<string, Column<TGenerics>>\n getAllLeafColumns: () => Column<TGenerics>[]\n getColumn: (columnId: string) => Column<TGenerics>\n getColumnWidth: (columnId: string) => number\n getTotalWidth: () => number\n createCell: (\n row: Row<TGenerics>,\n column: Column<TGenerics>,\n value: any\n ) => Cell<TGenerics>\n createRow: (\n id: string,\n original: TGenerics['Row'] | undefined,\n rowIndex: number,\n depth: number,\n values: Record<string, any>\n ) => Row<TGenerics>\n getCoreRowModel: () => RowModel<TGenerics>\n getRowModel: () => RowModel<TGenerics>\n getRow: (id: string) => Row<TGenerics>\n getCell: (rowId: string, columnId: string) => Cell<TGenerics>\n getTableProps: PropGetter<TableProps>\n getTableBodyProps: PropGetter<TableBodyProps>\n getRowProps: <TGetter extends Getter<RowProps>>(\n rowId: string,\n userProps?: TGetter\n ) => undefined | PropGetterValue<RowProps, TGetter>\n getCellProps: <TGetter extends Getter<CellProps>>(\n rowId: string,\n columnId: string,\n userProps?: TGetter\n ) => undefined | PropGetterValue<CellProps, TGetter>\n getTableWidth: () => number\n getLeftTableWidth: () => number\n getCenterTableWidth: () => number\n getRightTableWidth: () => number\n render: <TProps>(\n template: Renderable<TGenerics, TProps>,\n props: TProps\n ) => string | null | ReturnType<UseRenderer<TGenerics>>\n}\n\nexport type CoreRow<TGenerics extends PartialGenerics> = {\n id: string\n index: number\n original?: TGenerics['Row']\n depth: number\n values: RowValues\n leafRows: Row<TGenerics>[]\n subRows: Row<TGenerics>[]\n getRowProps: PropGetter<RowProps>\n originalSubRows?: TGenerics['Row'][]\n getAllCells: () => Cell<TGenerics>[]\n getAllCellsByColumnId: () => Record<string, Cell<TGenerics>>\n}\n\nexport type CoreColumnDef<TGenerics extends PartialGenerics> = {\n id: string\n accessorKey?: string & keyof TGenerics['Row']\n accessorFn?: AccessorFn<TGenerics['Row']>\n width?: number\n minWidth?: number\n maxWidth?: number\n columns?: ColumnDef<TGenerics>[]\n header?: Renderable<\n TGenerics,\n {\n instance: TableInstance<TGenerics>\n header: Header<TGenerics>\n column: Column<TGenerics>\n }\n >\n footer?: Renderable<\n TGenerics,\n {\n instance: TableInstance<TGenerics>\n header: Header<TGenerics>\n column: Column<TGenerics>\n }\n >\n cell?: Renderable<\n TGenerics,\n {\n instance: TableInstance<TGenerics>\n row: Row<TGenerics>\n column: Column<TGenerics>\n cell: Cell<TGenerics>\n value: TGenerics['Value']\n }\n >\n meta?: TGenerics['ColumnMeta']\n [Please_use_the_create_table_column_utilities_to_define_columns]: true\n}\n\nexport type CoreColumn<TGenerics extends PartialGenerics> = {\n id: string\n depth: number\n accessorFn?: AccessorFn<TGenerics['Row']>\n columnDef: ColumnDef<TGenerics>\n getWidth: () => number\n columns: Column<TGenerics>[]\n parent?: Column<TGenerics>\n getFlatColumns: () => Column<TGenerics>[]\n getLeafColumns: () => Column<TGenerics>[]\n}\n\nexport function createTableInstance<TGenerics extends PartialGenerics>(\n options: Options<TGenerics>\n): TableInstance<TGenerics> {\n if (options.debugAll || options.debugTable) {\n console.info('Creating Table Instance...')\n }\n\n let instance = {} as TableInstance<TGenerics>\n\n const defaultOptions = features.reduce((obj, feature) => {\n return Object.assign(obj, (feature as any).getDefaultOptions?.(instance))\n }, {})\n\n const buildOptions = (options: Options<TGenerics>) => ({\n ...defaultOptions,\n ...options,\n })\n\n instance.options = buildOptions(options)\n\n const initialState = {\n ...features.reduce((obj, feature) => {\n return Object.assign(obj, (feature as any).getInitialState?.())\n }, {}),\n ...(options.initialState ?? {}),\n } as TableState\n\n const finalInstance: TableInstance<TGenerics> = {\n ...instance,\n ...features.reduce((obj, feature) => {\n return Object.assign(obj, (feature as any).getInstance?.(instance))\n }, {}),\n initialState,\n reset: () => {\n instance.setState(instance.initialState)\n },\n setOptions: updater => {\n instance.options = buildOptions(\n functionalUpdate(updater, instance.options)\n )\n },\n render: (template, props) => {\n if (typeof instance.options.render === 'function') {\n return instance.options.render(template, props)\n }\n\n if (typeof template === 'function') {\n return (template as Function)(props)\n }\n\n return template\n },\n\n getRowId: (_: TGenerics['Row'], index: number, parent?: Row<TGenerics>) =>\n `${parent ? [parent.id, index].join('.') : index}`,\n\n getState: () => {\n return instance.options.state as TableState\n },\n\n setState: (updater: Updater<TableState>) => {\n instance.options.onStateChange?.(updater)\n },\n\n getDefaultColumn: memo(\n () => [instance.options.defaultColumn],\n defaultColumn => {\n defaultColumn = (defaultColumn ?? {}) as Partial<ColumnDef<TGenerics>>\n\n return {\n header: (props: HeaderRenderProps<Header<TGenerics>>) =>\n props.header.column.id,\n footer: (props: HeaderRenderProps<Header<TGenerics>>) =>\n props.header.column.id,\n cell: ({ value = '' }: { value: any }): JSX.Element =>\n typeof value === 'boolean' ? value.toString() : value,\n ...features.reduce((obj, feature) => {\n return Object.assign(obj, (feature as any).getDefaultColumn?.())\n }, {}),\n ...defaultColumn,\n } as Partial<ColumnDef<TGenerics>>\n },\n {\n debug: () => instance.options.debugAll ?? instance.options.debugColumns,\n key: 'getDefaultColumn',\n }\n ),\n\n getColumnDefs: () => instance.options.columns,\n\n createColumn: (columnDef, depth: number, parent) => {\n const defaultColumn = instance.getDefaultColumn()\n\n let id =\n columnDef.id ??\n columnDef.accessorKey ??\n (typeof columnDef.header === 'string' ? columnDef.header : undefined)\n\n let accessorFn: AccessorFn<TGenerics['Row']> | undefined\n\n if (columnDef.accessorFn) {\n accessorFn = columnDef.accessorFn\n } else if (columnDef.accessorKey) {\n accessorFn = (originalRow?: TGenerics['Row']) =>\n (originalRow as any)[columnDef.accessorKey]\n }\n\n if (!id) {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error(\n columnDef.accessorFn\n ? `Columns require an id when using an accessorFn`\n : `Columns require an id when using a non-string header`\n )\n }\n throw new Error()\n }\n\n let column: CoreColumn<TGenerics> = {\n ...defaultColumnSizing,\n ...defaultColumn,\n ...columnDef,\n id: `${id}`,\n accessorFn,\n parent: parent as any,\n depth,\n columnDef,\n columns: [],\n getWidth: () => instance.getColumnWidth(column.id),\n getFlatColumns: memo(\n () => [true],\n () => {\n return [\n column as Column<TGenerics>,\n ...column.columns?.flatMap(d => d.getFlatColumns()),\n ]\n },\n {\n key: 'column.getFlatColumns',\n debug: () =>\n instance.options.debugAll ?? instance.options.debugColumns,\n }\n ),\n getLeafColumns: memo(\n () => [instance.getOrderColumnsFn()],\n orderColumns => {\n if (column.columns?.length) {\n let leafColumns = column.columns.flatMap(column =>\n column.getLeafColumns()\n )\n\n return orderColumns(leafColumns)\n }\n\n return [column as Column<TGenerics>]\n },\n {\n key: 'column.getLeafColumns',\n debug: () =>\n instance.options.debugAll ?? instance.options.debugColumns,\n }\n ),\n }\n\n column = features.reduce((obj, feature) => {\n return Object.assign(\n obj,\n (feature as any).createColumn?.(column, instance)\n )\n }, column)\n\n // Yes, we have to convert instance to uknown, because we know more than the compiler here.\n return column as Column<TGenerics>\n },\n\n getAllColumns: memo(\n () => [instance.getColumnDefs()],\n columnDefs => {\n const recurseColumns = (\n columnDefs: ColumnDef<TGenerics>[],\n parent?: Column<TGenerics>,\n depth = 0\n ): Column<TGenerics>[] => {\n return columnDefs.map(columnDef => {\n const column = instance.createColumn(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: 'getAllColumns',\n debug: () => instance.options.debugAll ?? instance.options.debugColumns,\n }\n ),\n\n getAllFlatColumns: memo(\n () => [instance.getAllColumns()],\n allColumns => {\n return allColumns.flatMap(column => {\n return column.getFlatColumns()\n })\n },\n {\n key: 'getAllFlatColumns',\n debug: () => instance.options.debugAll ?? instance.options.debugColumns,\n }\n ),\n\n getAllFlatColumnsById: memo(\n () => [instance.getAllFlatColumns()],\n flatColumns => {\n return flatColumns.reduce((acc, column) => {\n acc[column.id] = column\n return acc\n }, {} as Record<string, Column<TGenerics>>)\n },\n {\n key: 'getAllFlatColumnsById',\n debug: () => instance.options.debugAll ?? instance.options.debugColumns,\n }\n ),\n\n getAllLeafColumns: memo(\n () => [instance.getAllColumns(), instance.getOrderColumnsFn()],\n (allColumns, orderColumns) => {\n let leafColumns = allColumns.flatMap(column => column.getLeafColumns())\n return orderColumns(leafColumns)\n },\n {\n key: 'getAllLeafColumns',\n debug: () => instance.options.debugAll ?? instance.options.debugColumns,\n }\n ),\n\n getColumn: columnId => {\n const column = instance.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 getColumnWidth: (columnId: string) => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n throw new Error()\n }\n\n const columnSize = instance.getState().columnSizing[column.id]\n\n return Math.min(\n Math.max(\n column.minWidth ?? defaultColumnSizing.minWidth,\n columnSize ?? column.width ?? defaultColumnSizing.width\n ),\n column.maxWidth ?? defaultColumnSizing.maxWidth\n )\n },\n\n createCell: (row, column, value) => {\n const cell: CoreCell<TGenerics> = {\n id: `${row.id}_${column.id}`,\n rowId: row.id,\n columnId: column.id,\n row,\n column,\n value,\n getCellProps: userProps =>\n instance.getCellProps(row.id, column.id, userProps)!,\n renderCell: () =>\n column.cell\n ? instance.render(column.cell, {\n instance,\n column,\n row,\n cell: cell as Cell<TGenerics>,\n value,\n })\n : null,\n }\n\n features.forEach(feature => {\n Object.assign(\n cell,\n (feature as any).createCell?.(\n cell as Cell<TGenerics>,\n column,\n row as Row<TGenerics>,\n instance\n )\n )\n }, {})\n\n return cell as Cell<TGenerics>\n },\n\n createRow: (id, original, rowIndex, depth, values) => {\n let row: CoreRow<TGenerics> = {\n id,\n index: rowIndex,\n original,\n depth,\n values,\n subRows: [],\n leafRows: [],\n getRowProps: userProps => instance.getRowProps(row.id, userProps)!,\n getAllCells: undefined!,\n getAllCellsByColumnId: undefined!,\n }\n\n row.getAllCells = memo(\n () => [instance.getAllLeafColumns()],\n leafColumns => {\n return leafColumns.map(column => {\n return instance.createCell(\n row as Row<TGenerics>,\n column,\n row.values[column.id]\n )\n })\n },\n {\n key: process.env.NODE_ENV !== 'production' ? 'row.getAllCells' : '',\n debug: () => instance.options.debugAll ?? instance.options.debugRows,\n }\n )\n\n row.getAllCellsByColumnId = memo(\n () => [row.getAllCells()],\n allCells => {\n return allCells.reduce((acc, cell) => {\n acc[cell.columnId] = cell\n return acc\n }, {} as Record<string, Cell<TGenerics>>)\n },\n {\n key: 'row.getAllCellsByColumnId',\n debug: () => instance.options.debugAll ?? instance.options.debugRows,\n }\n )\n\n for (let i = 0; i < features.length; i++) {\n const feature = features[i]\n Object.assign(row, (feature as any).createRow?.(row, instance))\n }\n\n return row as Row<TGenerics>\n },\n\n getCoreRowModel: memo(\n () => [instance.options.data],\n (\n data\n ): {\n rows: Row<TGenerics>[]\n flatRows: Row<TGenerics>[]\n rowsById: Record<string, Row<TGenerics>>\n } => {\n // Access the row model using initial columns\n const rows: Row<TGenerics>[] = []\n const flatRows: Row<TGenerics>[] = []\n const rowsById: Record<string, Row<TGenerics>> = {}\n\n const leafColumns = instance.getAllLeafColumns()\n\n const accessRow = (\n originalRow: TGenerics['Row'],\n rowIndex: number,\n depth = 0,\n parentRows: Row<TGenerics>[],\n parent?: Row<TGenerics>\n ) => {\n const id = instance.getRowId(originalRow, rowIndex, parent)\n\n if (!id) {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error(`getRowId expected an ID, but got ${id}`)\n }\n }\n\n const values: Record<string, any> = {}\n\n for (let i = 0; i < leafColumns.length; i++) {\n const column = leafColumns[i]\n if (column && column.accessorFn) {\n values[column.id] = column.accessorFn(originalRow, rowIndex)\n }\n }\n\n // Make the row\n const row = instance.createRow(\n id,\n originalRow,\n rowIndex,\n depth,\n values\n )\n\n // Push instance row into the parentRows array\n parentRows.push(row)\n // Keep track of every row in a flat array\n flatRows.push(row)\n // Also keep track of every row by its ID\n rowsById[id] = row\n\n // Get the original subrows\n if (instance.options.getSubRows) {\n const originalSubRows = instance.options.getSubRows(\n originalRow,\n rowIndex\n )\n\n // Then recursively access them\n if (originalSubRows?.length) {\n row.originalSubRows = originalSubRows\n const subRows: Row<TGenerics>[] = []\n\n for (let i = 0; i < row.originalSubRows.length; i++) {\n accessRow(\n row.originalSubRows[i] as TGenerics['Row'],\n i,\n depth + 1,\n subRows,\n row\n )\n }\n // Keep the new subRows array on the row\n row.subRows = subRows\n row.leafRows = flattenBy(subRows, d => d.leafRows)\n }\n }\n }\n\n for (let i = 0; i < data.length; i++) {\n accessRow(data[i] as TGenerics['Row'], i, 0, rows)\n }\n\n return { rows, flatRows, rowsById }\n },\n {\n key: 'getRowModel',\n debug: () => instance.options.debugAll ?? instance.options.debugTable,\n onChange: () => {\n instance._notifyRowSelectionReset()\n instance._notifyFiltersReset()\n },\n }\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 instance.getPaginationRowModel()\n },\n\n getRow: (id: string) => {\n const row = instance.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\n getCell: (rowId: string, columnId: string) => {\n const row = instance.getRow(rowId)\n\n if (!row) {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error(`[Table] could not find row with id ${rowId}`)\n }\n throw new Error()\n }\n\n const cell = row.getAllCellsByColumnId()[columnId]\n\n if (!cell) {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error(\n `[Table] could not find cell ${columnId} in row ${rowId}`\n )\n }\n throw new Error()\n }\n\n return cell\n },\n\n getTableProps: userProps => {\n return propGetter(\n {\n role: 'table',\n },\n userProps\n )\n },\n\n getTableBodyProps: userProps => {\n return propGetter(\n {\n role: 'rowgroup',\n },\n userProps\n )\n },\n\n getRowProps: (rowId, userProps) => {\n const row = instance.getRow(rowId)\n if (!row) {\n return\n }\n\n return propGetter(\n {\n key: row.id,\n role: 'row',\n },\n userProps\n )\n },\n\n getCellProps: (rowId, columnId, userProps) => {\n const cell = instance.getCell(rowId, columnId)\n\n if (!cell) {\n return\n }\n\n return propGetter(\n {\n key: cell.id,\n role: 'gridcell',\n },\n userProps\n )\n },\n\n getTableWidth: () =>\n instance.getHeaderGroups()[0]?.headers.reduce((sum, header) => {\n return sum + header.getWidth()\n }, 0) ?? 0,\n getLeftTableWidth: () =>\n instance.getLeftHeaderGroups()[0]?.headers.reduce((sum, header) => {\n return sum + header.getWidth()\n }, 0) ?? 0,\n getCenterTableWidth: () =>\n instance.getCenterHeaderGroups()[0]?.headers.reduce((sum, header) => {\n return sum + header.getWidth()\n }, 0) ?? 0,\n getRightTableWidth: () =>\n instance.getRightHeaderGroups()[0]?.headers.reduce((sum, header) => {\n return sum + header.getWidth()\n }, 0) ?? 0,\n }\n\n instance = Object.assign(instance, finalInstance)\n\n return instance\n}\n"],"names":["features","Visibility","Ordering","Pinning","Headers","Filters","Sorting","Grouping","Expanding","ColumnSizing","Pagination","RowSelection","createTableInstance","options","debugAll","debugTable","console","info","instance","defaultOptions","reduce","obj","feature","Object","assign","getDefaultOptions","buildOptions","initialState","getInitialState","finalInstance","getInstance","reset","setState","setOptions","updater","functionalUpdate","render","template","props","getRowId","_","index","parent","id","join","getState","state","onStateChange","getDefaultColumn","memo","defaultColumn","header","column","footer","cell","value","toString","debug","debugColumns","key","getColumnDefs","columns","createColumn","columnDef","depth","accessorKey","undefined","accessorFn","originalRow","process","env","NODE_ENV","Error","defaultColumnSizing","getWidth","getColumnWidth","getFlatColumns","flatMap","d","getLeafColumns","getOrderColumnsFn","orderColumns","length","leafColumns","getAllColumns","columnDefs","recurseColumns","map","getAllFlatColumns","allColumns","getAllFlatColumnsById","flatColumns","acc","getAllLeafColumns","getColumn","columnId","warn","columnSize","columnSizing","Math","min","max","minWidth","width","maxWidth","createCell","row","rowId","getCellProps","userProps","renderCell","forEach","createRow","original","rowIndex","values","subRows","leafRows","getRowProps","getAllCells","getAllCellsByColumnId","debugRows","allCells","i","getCoreRowModel","data","rows","flatRows","rowsById","accessRow","parentRows","push","getSubRows","originalSubRows","flattenBy","onChange","_notifyRowSelectionReset","_notifyFiltersReset","getRowModel","getPaginationRowModel","getRow","getCell","getTableProps","propGetter","role","getTableBodyProps","getTableWidth","getHeaderGroups","headers","sum","getLeftTableWidth","getLeftHeaderGroups","getCenterTableWidth","getCenterHeaderGroups","getRightTableWidth","getRightHeaderGroups"],"mappings":"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"}
1
+ {"version":3,"file":"core.js","sources":["../../src/core.tsx"],"sourcesContent":["import {\n flattenBy,\n functionalUpdate,\n propGetter,\n memo,\n RequiredKeys,\n} from './utils'\n\nimport {\n Updater,\n PropGetterValue,\n Options,\n TableState,\n ColumnDef,\n Row,\n Column,\n Cell,\n Header,\n AccessorFn,\n HeaderRenderProps,\n TableProps,\n TableBodyProps,\n PropGetter,\n Getter,\n RowProps,\n CellProps,\n TableInstance,\n RowValues,\n PartialGenerics,\n CoreCell,\n Renderable,\n UseRenderer,\n} from './types'\n\nimport { Visibility } from './features/Visibility'\nimport { Ordering } from './features/Ordering'\nimport { Pinning } from './features/Pinning'\nimport { Headers } from './features/Headers'\nimport { Filters } from './features/Filters'\nimport { Sorting } from './features/Sorting'\nimport { Grouping } from './features/Grouping'\nimport { Expanding } from './features/Expanding'\nimport { ColumnSizing, defaultColumnSizing } from './features/ColumnSizing'\nimport { Pagination } from './features/Pagination'\nimport { RowSelection } from './features/RowSelection'\nimport { RowModel } from '.'\n\nconst features = [\n Visibility,\n Ordering,\n Pinning,\n Headers,\n Filters,\n Sorting,\n Grouping,\n Expanding,\n ColumnSizing,\n Pagination,\n RowSelection,\n]\n\nexport type CoreOptions<TGenerics extends PartialGenerics> = {\n data: TGenerics['Row'][]\n columns: ColumnDef<TGenerics>[]\n state: Partial<TableState>\n onStateChange: (updater: Updater<TableState>) => void\n render: TGenerics['Render']\n debugAll?: boolean\n debugTable?: boolean\n debugHeaders?: boolean\n debugColumns?: boolean\n debugRows?: boolean\n defaultColumn?: Partial<ColumnDef<TGenerics>>\n initialState?: Partial<TableState>\n getSubRows?: (\n originalRow: TGenerics['Row'],\n index: number\n ) => TGenerics['Row'][]\n getRowId?: (\n originalRow: TGenerics['Row'],\n index: number,\n parent?: Row<TGenerics>\n ) => string\n autoResetAll?: boolean\n}\n\nexport type TableCore<TGenerics extends PartialGenerics> = {\n initialState: TableState\n reset: () => void\n options: RequiredKeys<Options<TGenerics>, 'state'>\n setOptions: (newOptions: Updater<Options<TGenerics>>) => void\n getRowId: (\n _: TGenerics['Row'],\n index: number,\n parent?: Row<TGenerics>\n ) => string\n getState: () => TableState\n setState: (updater: Updater<TableState>) => void\n getDefaultColumn: () => Partial<ColumnDef<TGenerics>>\n getColumnDefs: () => ColumnDef<TGenerics>[]\n createColumn: (\n columnDef: ColumnDef<TGenerics>,\n depth: number,\n parent?: Column<TGenerics>\n ) => Column<TGenerics>\n getAllColumns: () => Column<TGenerics>[]\n getAllFlatColumns: () => Column<TGenerics>[]\n getAllFlatColumnsById: () => Record<string, Column<TGenerics>>\n getAllLeafColumns: () => Column<TGenerics>[]\n getColumn: (columnId: string) => Column<TGenerics>\n getColumnWidth: (columnId: string) => number\n getTotalWidth: () => number\n createCell: (\n row: Row<TGenerics>,\n column: Column<TGenerics>,\n value: any\n ) => Cell<TGenerics>\n createRow: (\n id: string,\n original: TGenerics['Row'] | undefined,\n rowIndex: number,\n depth: number,\n values: Record<string, any>\n ) => Row<TGenerics>\n getCoreRowModel: () => RowModel<TGenerics>\n getRowModel: () => RowModel<TGenerics>\n getRow: (id: string) => Row<TGenerics>\n getCell: (rowId: string, columnId: string) => Cell<TGenerics>\n getTableProps: PropGetter<TableProps>\n getTableBodyProps: PropGetter<TableBodyProps>\n getRowProps: <TGetter extends Getter<RowProps>>(\n rowId: string,\n userProps?: TGetter\n ) => undefined | PropGetterValue<RowProps, TGetter>\n getCellProps: <TGetter extends Getter<CellProps>>(\n rowId: string,\n columnId: string,\n userProps?: TGetter\n ) => undefined | PropGetterValue<CellProps, TGetter>\n getTableWidth: () => number\n getLeftTableWidth: () => number\n getCenterTableWidth: () => number\n getRightTableWidth: () => number\n render: <TProps>(\n template: Renderable<TGenerics, TProps>,\n props: TProps\n ) => string | null | ReturnType<UseRenderer<TGenerics>>\n}\n\nexport type CoreRow<TGenerics extends PartialGenerics> = {\n id: string\n index: number\n original?: TGenerics['Row']\n depth: number\n values: RowValues\n leafRows: Row<TGenerics>[]\n subRows: Row<TGenerics>[]\n getRowProps: PropGetter<RowProps>\n originalSubRows?: TGenerics['Row'][]\n getAllCells: () => Cell<TGenerics>[]\n getAllCellsByColumnId: () => Record<string, Cell<TGenerics>>\n}\n\nexport type CoreColumnDef<TGenerics extends PartialGenerics> = {\n id: string\n accessorKey?: string & keyof TGenerics['Row']\n accessorFn?: AccessorFn<TGenerics['Row']>\n width?: number\n minWidth?: number\n maxWidth?: number\n columns?: ColumnDef<TGenerics>[]\n header?: Renderable<\n TGenerics,\n {\n instance: TableInstance<TGenerics>\n header: Header<TGenerics>\n column: Column<TGenerics>\n }\n >\n footer?: Renderable<\n TGenerics,\n {\n instance: TableInstance<TGenerics>\n header: Header<TGenerics>\n column: Column<TGenerics>\n }\n >\n cell?: Renderable<\n TGenerics,\n {\n instance: TableInstance<TGenerics>\n row: Row<TGenerics>\n column: Column<TGenerics>\n cell: Cell<TGenerics>\n value: TGenerics['Value']\n }\n >\n meta?: TGenerics['ColumnMeta']\n}\n// & GeneratedProperties<true>\n\nexport type CoreColumn<TGenerics extends PartialGenerics> = {\n id: string\n depth: number\n accessorFn?: AccessorFn<TGenerics['Row']>\n columnDef: ColumnDef<TGenerics>\n getWidth: () => number\n columns: Column<TGenerics>[]\n parent?: Column<TGenerics>\n getFlatColumns: () => Column<TGenerics>[]\n getLeafColumns: () => Column<TGenerics>[]\n}\n\nexport function createTableInstance<TGenerics extends PartialGenerics>(\n options: Options<TGenerics>\n): TableInstance<TGenerics> {\n if (options.debugAll || options.debugTable) {\n console.info('Creating Table Instance...')\n }\n\n let instance = {} as TableInstance<TGenerics>\n\n const defaultOptions = features.reduce((obj, feature) => {\n return Object.assign(obj, (feature as any).getDefaultOptions?.(instance))\n }, {})\n\n const buildOptions = (options: Options<TGenerics>) => ({\n ...defaultOptions,\n ...options,\n })\n\n instance.options = buildOptions(options)\n\n const initialState = {\n ...features.reduce((obj, feature) => {\n return Object.assign(obj, (feature as any).getInitialState?.())\n }, {}),\n ...(options.initialState ?? {}),\n } as TableState\n\n const finalInstance: TableInstance<TGenerics> = {\n ...instance,\n ...features.reduce((obj, feature) => {\n return Object.assign(obj, (feature as any).getInstance?.(instance))\n }, {}),\n initialState,\n reset: () => {\n instance.setState(instance.initialState)\n },\n setOptions: updater => {\n instance.options = buildOptions(\n functionalUpdate(updater, instance.options)\n )\n },\n render: (template, props) => {\n if (typeof instance.options.render === 'function') {\n return instance.options.render(template, props)\n }\n\n if (typeof template === 'function') {\n return (template as Function)(props)\n }\n\n return template\n },\n\n getRowId: (_: TGenerics['Row'], index: number, parent?: Row<TGenerics>) =>\n `${parent ? [parent.id, index].join('.') : index}`,\n\n getState: () => {\n return instance.options.state as TableState\n },\n\n setState: (updater: Updater<TableState>) => {\n instance.options.onStateChange?.(updater)\n },\n\n getDefaultColumn: memo(\n () => [instance.options.defaultColumn],\n defaultColumn => {\n defaultColumn = (defaultColumn ?? {}) as Partial<ColumnDef<TGenerics>>\n\n return {\n header: (props: HeaderRenderProps<Header<TGenerics>>) =>\n props.header.column.id,\n footer: (props: HeaderRenderProps<Header<TGenerics>>) =>\n props.header.column.id,\n cell: ({ value = '' }: { value: any }): JSX.Element =>\n typeof value === 'boolean' ? value.toString() : value,\n ...features.reduce((obj, feature) => {\n return Object.assign(obj, (feature as any).getDefaultColumn?.())\n }, {}),\n ...defaultColumn,\n } as Partial<ColumnDef<TGenerics>>\n },\n {\n debug: () => instance.options.debugAll ?? instance.options.debugColumns,\n key: 'getDefaultColumn',\n }\n ),\n\n getColumnDefs: () => instance.options.columns,\n\n createColumn: (columnDef, depth: number, parent) => {\n const defaultColumn = instance.getDefaultColumn()\n\n let id =\n columnDef.id ??\n columnDef.accessorKey ??\n (typeof columnDef.header === 'string' ? columnDef.header : undefined)\n\n let accessorFn: AccessorFn<TGenerics['Row']> | undefined\n\n if (columnDef.accessorFn) {\n accessorFn = columnDef.accessorFn\n } else if (columnDef.accessorKey) {\n accessorFn = (originalRow?: TGenerics['Row']) =>\n (originalRow as any)[columnDef.accessorKey]\n }\n\n if (!id) {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error(\n columnDef.accessorFn\n ? `Columns require an id when using an accessorFn`\n : `Columns require an id when using a non-string header`\n )\n }\n throw new Error()\n }\n\n let column: CoreColumn<TGenerics> = {\n ...defaultColumnSizing,\n ...defaultColumn,\n ...columnDef,\n id: `${id}`,\n accessorFn,\n parent: parent as any,\n depth,\n columnDef,\n columns: [],\n getWidth: () => instance.getColumnWidth(column.id),\n getFlatColumns: memo(\n () => [true],\n () => {\n return [\n column as Column<TGenerics>,\n ...column.columns?.flatMap(d => d.getFlatColumns()),\n ]\n },\n {\n key: 'column.getFlatColumns',\n debug: () =>\n instance.options.debugAll ?? instance.options.debugColumns,\n }\n ),\n getLeafColumns: memo(\n () => [instance.getOrderColumnsFn()],\n orderColumns => {\n if (column.columns?.length) {\n let leafColumns = column.columns.flatMap(column =>\n column.getLeafColumns()\n )\n\n return orderColumns(leafColumns)\n }\n\n return [column as Column<TGenerics>]\n },\n {\n key: 'column.getLeafColumns',\n debug: () =>\n instance.options.debugAll ?? instance.options.debugColumns,\n }\n ),\n }\n\n column = features.reduce((obj, feature) => {\n return Object.assign(\n obj,\n (feature as any).createColumn?.(column, instance)\n )\n }, column)\n\n // Yes, we have to convert instance to uknown, because we know more than the compiler here.\n return column as Column<TGenerics>\n },\n\n getAllColumns: memo(\n () => [instance.getColumnDefs()],\n columnDefs => {\n const recurseColumns = (\n columnDefs: ColumnDef<TGenerics>[],\n parent?: Column<TGenerics>,\n depth = 0\n ): Column<TGenerics>[] => {\n return columnDefs.map(columnDef => {\n const column = instance.createColumn(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: 'getAllColumns',\n debug: () => instance.options.debugAll ?? instance.options.debugColumns,\n }\n ),\n\n getAllFlatColumns: memo(\n () => [instance.getAllColumns()],\n allColumns => {\n return allColumns.flatMap(column => {\n return column.getFlatColumns()\n })\n },\n {\n key: 'getAllFlatColumns',\n debug: () => instance.options.debugAll ?? instance.options.debugColumns,\n }\n ),\n\n getAllFlatColumnsById: memo(\n () => [instance.getAllFlatColumns()],\n flatColumns => {\n return flatColumns.reduce((acc, column) => {\n acc[column.id] = column\n return acc\n }, {} as Record<string, Column<TGenerics>>)\n },\n {\n key: 'getAllFlatColumnsById',\n debug: () => instance.options.debugAll ?? instance.options.debugColumns,\n }\n ),\n\n getAllLeafColumns: memo(\n () => [instance.getAllColumns(), instance.getOrderColumnsFn()],\n (allColumns, orderColumns) => {\n let leafColumns = allColumns.flatMap(column => column.getLeafColumns())\n return orderColumns(leafColumns)\n },\n {\n key: 'getAllLeafColumns',\n debug: () => instance.options.debugAll ?? instance.options.debugColumns,\n }\n ),\n\n getColumn: columnId => {\n const column = instance.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 getColumnWidth: (columnId: string) => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n throw new Error()\n }\n\n const columnSize = instance.getState().columnSizing[column.id]\n\n return Math.min(\n Math.max(\n column.minWidth ?? defaultColumnSizing.minWidth,\n columnSize ?? column.width ?? defaultColumnSizing.width\n ),\n column.maxWidth ?? defaultColumnSizing.maxWidth\n )\n },\n\n createCell: (row, column, value) => {\n const cell: CoreCell<TGenerics> = {\n id: `${row.id}_${column.id}`,\n rowId: row.id,\n columnId: column.id,\n row,\n column,\n value,\n getCellProps: userProps =>\n instance.getCellProps(row.id, column.id, userProps)!,\n renderCell: () =>\n column.cell\n ? instance.render(column.cell, {\n instance,\n column,\n row,\n cell: cell as Cell<TGenerics>,\n value,\n })\n : null,\n }\n\n features.forEach(feature => {\n Object.assign(\n cell,\n (feature as any).createCell?.(\n cell as Cell<TGenerics>,\n column,\n row as Row<TGenerics>,\n instance\n )\n )\n }, {})\n\n return cell as Cell<TGenerics>\n },\n\n createRow: (id, original, rowIndex, depth, values) => {\n let row: CoreRow<TGenerics> = {\n id,\n index: rowIndex,\n original,\n depth,\n values,\n subRows: [],\n leafRows: [],\n getRowProps: userProps => instance.getRowProps(row.id, userProps)!,\n getAllCells: undefined!,\n getAllCellsByColumnId: undefined!,\n }\n\n row.getAllCells = memo(\n () => [instance.getAllLeafColumns()],\n leafColumns => {\n return leafColumns.map(column => {\n return instance.createCell(\n row as Row<TGenerics>,\n column,\n row.values[column.id]\n )\n })\n },\n {\n key: process.env.NODE_ENV !== 'production' ? 'row.getAllCells' : '',\n debug: () => instance.options.debugAll ?? instance.options.debugRows,\n }\n )\n\n row.getAllCellsByColumnId = memo(\n () => [row.getAllCells()],\n allCells => {\n return allCells.reduce((acc, cell) => {\n acc[cell.columnId] = cell\n return acc\n }, {} as Record<string, Cell<TGenerics>>)\n },\n {\n key: 'row.getAllCellsByColumnId',\n debug: () => instance.options.debugAll ?? instance.options.debugRows,\n }\n )\n\n for (let i = 0; i < features.length; i++) {\n const feature = features[i]\n Object.assign(row, (feature as any).createRow?.(row, instance))\n }\n\n return row as Row<TGenerics>\n },\n\n getCoreRowModel: memo(\n () => [instance.options.data],\n (\n data\n ): {\n rows: Row<TGenerics>[]\n flatRows: Row<TGenerics>[]\n rowsById: Record<string, Row<TGenerics>>\n } => {\n // Access the row model using initial columns\n const rows: Row<TGenerics>[] = []\n const flatRows: Row<TGenerics>[] = []\n const rowsById: Record<string, Row<TGenerics>> = {}\n\n const leafColumns = instance.getAllLeafColumns()\n\n const accessRow = (\n originalRow: TGenerics['Row'],\n rowIndex: number,\n depth = 0,\n parentRows: Row<TGenerics>[],\n parent?: Row<TGenerics>\n ) => {\n const id = instance.getRowId(originalRow, rowIndex, parent)\n\n if (!id) {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error(`getRowId expected an ID, but got ${id}`)\n }\n }\n\n const values: Record<string, any> = {}\n\n for (let i = 0; i < leafColumns.length; i++) {\n const column = leafColumns[i]\n if (column && column.accessorFn) {\n values[column.id] = column.accessorFn(originalRow, rowIndex)\n }\n }\n\n // Make the row\n const row = instance.createRow(\n id,\n originalRow,\n rowIndex,\n depth,\n values\n )\n\n // Push instance row into the parentRows array\n parentRows.push(row)\n // Keep track of every row in a flat array\n flatRows.push(row)\n // Also keep track of every row by its ID\n rowsById[id] = row\n\n // Get the original subrows\n if (instance.options.getSubRows) {\n const originalSubRows = instance.options.getSubRows(\n originalRow,\n rowIndex\n )\n\n // Then recursively access them\n if (originalSubRows?.length) {\n row.originalSubRows = originalSubRows\n const subRows: Row<TGenerics>[] = []\n\n for (let i = 0; i < row.originalSubRows.length; i++) {\n accessRow(\n row.originalSubRows[i] as TGenerics['Row'],\n i,\n depth + 1,\n subRows,\n row\n )\n }\n // Keep the new subRows array on the row\n row.subRows = subRows\n row.leafRows = flattenBy(subRows, d => d.leafRows)\n }\n }\n }\n\n for (let i = 0; i < data.length; i++) {\n accessRow(data[i] as TGenerics['Row'], i, 0, rows)\n }\n\n return { rows, flatRows, rowsById }\n },\n {\n key: 'getRowModel',\n debug: () => instance.options.debugAll ?? instance.options.debugTable,\n onChange: () => {\n instance._notifyRowSelectionReset()\n instance._notifyFiltersReset()\n },\n }\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 instance.getPaginationRowModel()\n },\n\n getRow: (id: string) => {\n const row = instance.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\n getCell: (rowId: string, columnId: string) => {\n const row = instance.getRow(rowId)\n\n if (!row) {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error(`[Table] could not find row with id ${rowId}`)\n }\n throw new Error()\n }\n\n const cell = row.getAllCellsByColumnId()[columnId]\n\n if (!cell) {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error(\n `[Table] could not find cell ${columnId} in row ${rowId}`\n )\n }\n throw new Error()\n }\n\n return cell\n },\n\n getTableProps: userProps => {\n return propGetter(\n {\n role: 'table',\n },\n userProps\n )\n },\n\n getTableBodyProps: userProps => {\n return propGetter(\n {\n role: 'rowgroup',\n },\n userProps\n )\n },\n\n getRowProps: (rowId, userProps) => {\n const row = instance.getRow(rowId)\n if (!row) {\n return\n }\n\n return propGetter(\n {\n key: row.id,\n role: 'row',\n },\n userProps\n )\n },\n\n getCellProps: (rowId, columnId, userProps) => {\n const cell = instance.getCell(rowId, columnId)\n\n if (!cell) {\n return\n }\n\n return propGetter(\n {\n key: cell.id,\n role: 'gridcell',\n },\n userProps\n )\n },\n\n getTableWidth: () =>\n instance.getHeaderGroups()[0]?.headers.reduce((sum, header) => {\n return sum + header.getWidth()\n }, 0) ?? 0,\n getLeftTableWidth: () =>\n instance.getLeftHeaderGroups()[0]?.headers.reduce((sum, header) => {\n return sum + header.getWidth()\n }, 0) ?? 0,\n getCenterTableWidth: () =>\n instance.getCenterHeaderGroups()[0]?.headers.reduce((sum, header) => {\n return sum + header.getWidth()\n }, 0) ?? 0,\n getRightTableWidth: () =>\n instance.getRightHeaderGroups()[0]?.headers.reduce((sum, header) => {\n return sum + header.getWidth()\n }, 0) ?? 0,\n }\n\n instance = Object.assign(instance, finalInstance)\n\n return instance\n}\n"],"names":["features","Visibility","Ordering","Pinning","Headers","Filters","Sorting","Grouping","Expanding","ColumnSizing","Pagination","RowSelection","createTableInstance","options","debugAll","debugTable","console","info","instance","defaultOptions","reduce","obj","feature","Object","assign","getDefaultOptions","buildOptions","initialState","getInitialState","finalInstance","getInstance","reset","setState","setOptions","updater","functionalUpdate","render","template","props","getRowId","_","index","parent","id","join","getState","state","onStateChange","getDefaultColumn","memo","defaultColumn","header","column","footer","cell","value","toString","debug","debugColumns","key","getColumnDefs","columns","createColumn","columnDef","depth","accessorKey","undefined","accessorFn","originalRow","process","env","NODE_ENV","Error","defaultColumnSizing","getWidth","getColumnWidth","getFlatColumns","flatMap","d","getLeafColumns","getOrderColumnsFn","orderColumns","length","leafColumns","getAllColumns","columnDefs","recurseColumns","map","getAllFlatColumns","allColumns","getAllFlatColumnsById","flatColumns","acc","getAllLeafColumns","getColumn","columnId","warn","columnSize","columnSizing","Math","min","max","minWidth","width","maxWidth","createCell","row","rowId","getCellProps","userProps","renderCell","forEach","createRow","original","rowIndex","values","subRows","leafRows","getRowProps","getAllCells","getAllCellsByColumnId","debugRows","allCells","i","getCoreRowModel","data","rows","flatRows","rowsById","accessRow","parentRows","push","getSubRows","originalSubRows","flattenBy","onChange","_notifyRowSelectionReset","_notifyFiltersReset","getRowModel","getPaginationRowModel","getRow","getCell","getTableProps","propGetter","role","getTableBodyProps","getTableWidth","getHeaderGroups","headers","sum","getLeftTableWidth","getLeftHeaderGroups","getCenterTableWidth","getCenterHeaderGroups","getRightTableWidth","getRightHeaderGroups"],"mappings":"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"}
@@ -30,6 +30,7 @@ function init(opts) {
30
30
 
31
31
  function _createTable(_, __, __options) {
32
32
  return {
33
+ generics: undefined,
33
34
  __options: __options != null ? __options : {
34
35
  render: function render() {
35
36
  throw new Error();
@@ -1 +1 @@
1
- {"version":3,"file":"createTable.js","sources":["../../src/createTable.tsx"],"sourcesContent":["import { CustomFilterTypes } from './features/Filters'\nimport { CustomAggregationTypes } from './features/Grouping'\nimport { CustomSortingTypes } from './features/Sorting'\nimport {\n ColumnDef,\n AccessorFn,\n PartialGenerics,\n _NonGenerated,\n AnyRender,\n} from './types'\nimport { Overwrite, PartialKeys } from './utils'\n\nexport type CreateTableFactory<TGenerics extends PartialGenerics> = <\n TSubGenerics extends {\n Row: any\n ColumnMeta?: object\n }\n>() => Table<\n Overwrite<\n TGenerics,\n { Row: TSubGenerics['Row']; ColumnMeta: TSubGenerics['ColumnMeta'] }\n >\n>\n\nexport type CreateTableFactoryOptions<\n TRender extends AnyRender,\n TFilterFns extends CustomFilterTypes<any>,\n TSortingFns extends CustomSortingTypes<any>,\n TAggregationFns extends CustomAggregationTypes<any>\n> = {\n render: TRender\n filterFns?: TFilterFns\n sortingFns?: TSortingFns\n aggregationFns?: TAggregationFns\n}\n\nexport type Table<TGenerics extends PartialGenerics> = {\n __options: CreateTableFactoryOptions<any, any, any, any>\n createColumns: (columns: ColumnDef<TGenerics>[]) => ColumnDef<TGenerics>[]\n createGroup: (\n column: Overwrite<\n | Overwrite<\n _NonGenerated<ColumnDef<TGenerics>>,\n {\n header: string\n id?: string\n }\n >\n | Overwrite<\n _NonGenerated<ColumnDef<TGenerics>>,\n {\n id: string\n header?: string | ColumnDef<TGenerics>['header']\n }\n >,\n {\n accessorFn?: never\n accessorKey?: never\n // This is sketchy, but allows the column helper pattern we want.\n // Someone smarter than me could probably do this better.\n columns?: ColumnDef<any>[]\n }\n >\n ) => ColumnDef<TGenerics>\n createDisplayColumn: (\n column: PartialKeys<\n _NonGenerated<ColumnDef<TGenerics>>,\n 'accessorFn' | 'accessorKey'\n >\n ) => ColumnDef<TGenerics>\n createDataColumn: <\n TAccessor extends AccessorFn<TGenerics['Row']> | keyof TGenerics['Row']\n >(\n accessor: TAccessor,\n column: Overwrite<\n TAccessor extends (...args: any[]) => any\n ? // Accessor Fn\n _NonGenerated<\n ColumnDef<Overwrite<TGenerics, { Value: ReturnType<TAccessor> }>>\n >\n : TAccessor extends keyof TGenerics['Row']\n ? // Accessor Key\n Overwrite<\n _NonGenerated<\n ColumnDef<\n Overwrite<TGenerics, { Value: TGenerics['Row'][TAccessor] }>\n >\n >,\n {\n id?: string\n }\n >\n : never,\n {\n accessorFn?: never\n accessorKey?: never\n }\n >\n ) => ColumnDef<\n Overwrite<\n TGenerics,\n {\n Value: TAccessor extends (...args: any[]) => any\n ? ReturnType<TAccessor>\n : TAccessor extends keyof TGenerics['Row']\n ? TGenerics['Row'][TAccessor]\n : never\n }\n >\n >\n}\n\ntype InitTable<TRender extends AnyRender> = {\n createTableFactory: <TGenerics extends PartialGenerics>(\n options?: CreateTableFactoryOptions<TRender, any, any, any>\n ) => CreateTableFactory<Overwrite<TGenerics, { Render: TRender }>>\n createTable: CreateTableFactory<\n Overwrite<PartialGenerics, { Render: TRender }>\n >\n}\n\n//\n\nexport function init<TRender extends AnyRender>(opts: {\n render: TRender\n}): InitTable<TRender> {\n return {\n createTableFactory: options => () =>\n _createTable(undefined, undefined, { ...options, ...opts }),\n createTable: () => _createTable(undefined, undefined, opts),\n }\n}\n\nfunction _createTable<TGenerics extends PartialGenerics>(\n _?: undefined,\n __?: undefined,\n __options?: CreateTableFactoryOptions<any, any, any, any>\n): Table<TGenerics> {\n return {\n __options: __options ?? {\n render: () => {\n throw new Error()\n },\n },\n createColumns: columns => columns,\n createDisplayColumn: column => column as any,\n createGroup: column => column as any,\n createDataColumn: (accessor, column): any => {\n column = {\n ...column,\n id: column.id,\n }\n\n if (typeof accessor === 'string') {\n return {\n ...column,\n id: column.id ?? accessor,\n accessorKey: accessor,\n }\n }\n\n if (typeof accessor === 'function') {\n return {\n ...column,\n accessorFn: accessor,\n }\n }\n\n throw new Error('Invalid accessor')\n },\n }\n}\n"],"names":["init","opts","createTableFactory","options","_createTable","undefined","createTable","_","__","__options","render","Error","createColumns","columns","createDisplayColumn","column","createGroup","createDataColumn","accessor","id","accessorKey","accessorFn"],"mappings":";;;;;;;;;;;;;;;;AAyHA;AAEO,SAASA,IAAT,CAAyCC,IAAzC,EAEgB;AACrB,SAAO;AACLC,IAAAA,kBAAkB,EAAE,4BAAAC,OAAO;AAAA,aAAI;AAAA,eAC7BC,YAAY,CAACC,SAAD,EAAYA,SAAZ,2CAA4BF,OAA5B,EAAwCF,IAAxC,EADiB;AAAA,OAAJ;AAAA,KADtB;AAGLK,IAAAA,WAAW,EAAE;AAAA,aAAMF,YAAY,CAACC,SAAD,EAAYA,SAAZ,EAAuBJ,IAAvB,CAAlB;AAAA;AAHR,GAAP;AAKD;;AAED,SAASG,YAAT,CACEG,CADF,EAEEC,EAFF,EAGEC,SAHF,EAIoB;AAClB,SAAO;AACLA,IAAAA,SAAS,EAAEA,SAAF,WAAEA,SAAF,GAAe;AACtBC,MAAAA,MAAM,EAAE,kBAAM;AACZ,cAAM,IAAIC,KAAJ,EAAN;AACD;AAHqB,KADnB;AAMLC,IAAAA,aAAa,EAAE,uBAAAC,OAAO;AAAA,aAAIA,OAAJ;AAAA,KANjB;AAOLC,IAAAA,mBAAmB,EAAE,6BAAAC,MAAM;AAAA,aAAIA,MAAJ;AAAA,KAPtB;AAQLC,IAAAA,WAAW,EAAE,qBAAAD,MAAM;AAAA,aAAIA,MAAJ;AAAA,KARd;AASLE,IAAAA,gBAAgB,EAAE,0BAACC,QAAD,EAAWH,MAAX,EAA2B;AAC3CA,MAAAA,MAAM,4CACDA,MADC;AAEJI,QAAAA,EAAE,EAAEJ,MAAM,CAACI;AAFP,QAAN;;AAKA,UAAI,OAAOD,QAAP,KAAoB,QAAxB,EAAkC;AAAA;;AAChC,wDACKH,MADL;AAEEI,UAAAA,EAAE,gBAAEJ,MAAM,CAACI,EAAT,yBAAeD,QAFnB;AAGEE,UAAAA,WAAW,EAAEF;AAHf;AAKD;;AAED,UAAI,OAAOA,QAAP,KAAoB,UAAxB,EAAoC;AAClC,wDACKH,MADL;AAEEM,UAAAA,UAAU,EAAEH;AAFd;AAID;;AAED,YAAM,IAAIP,KAAJ,CAAU,kBAAV,CAAN;AACD;AA/BI,GAAP;AAiCD;;;;"}
1
+ {"version":3,"file":"createTable.js","sources":["../../src/createTable.tsx"],"sourcesContent":["import { CustomFilterTypes } from './features/Filters'\nimport { CustomAggregationTypes } from './features/Grouping'\nimport { CustomSortingTypes } from './features/Sorting'\nimport { ColumnDef, AccessorFn, PartialGenerics, AnyRender } from './types'\nimport { Overwrite, PartialKeys } from './utils'\n\nexport type CreateTableFactory<TGenerics extends PartialGenerics> = <\n TSubGenerics extends {\n Row: any\n ColumnMeta?: object\n }\n>() => Table<\n Overwrite<\n TGenerics,\n { Row: TSubGenerics['Row']; ColumnMeta: TSubGenerics['ColumnMeta'] }\n >\n>\n\nexport type CreateTableFactoryOptions<\n TRender extends AnyRender,\n TFilterFns extends CustomFilterTypes<any>,\n TSortingFns extends CustomSortingTypes<any>,\n TAggregationFns extends CustomAggregationTypes<any>\n> = {\n render: TRender\n filterFns?: TFilterFns\n sortingFns?: TSortingFns\n aggregationFns?: TAggregationFns\n}\n\nexport type Table<TGenerics extends PartialGenerics> = {\n generics: TGenerics\n __options: CreateTableFactoryOptions<any, any, any, any>\n createColumns: <TColumnDef extends ColumnDef<any>>(\n columns: TColumnDef[]\n ) => TColumnDef[]\n createGroup: (\n column: Overwrite<\n | Overwrite<\n ColumnDef<any>,\n {\n header: string\n id?: string\n }\n >\n | Overwrite<\n ColumnDef<any>,\n {\n id: string\n header?: string | ((...any: any) => any)\n }\n >,\n {\n accessorFn?: never\n accessorKey?: never\n columns?: ColumnDef<any>[]\n }\n >\n ) => ColumnDef<TGenerics>\n createDisplayColumn: (\n column: Overwrite<\n PartialKeys<ColumnDef<TGenerics>, 'accessorFn' | 'accessorKey'>,\n {\n columns?: ColumnDef<any>[]\n }\n >\n ) => ColumnDef<TGenerics>\n createDataColumn: <\n TAccessor extends AccessorFn<TGenerics['Row']> | keyof TGenerics['Row']\n >(\n accessor: TAccessor,\n column: Overwrite<\n TAccessor extends (...args: any[]) => any\n ? // Accessor Fn\n ColumnDef<Overwrite<TGenerics, { Value: ReturnType<TAccessor> }>>\n : TAccessor extends keyof TGenerics['Row']\n ? // Accessor Key\n Overwrite<\n ColumnDef<\n Overwrite<TGenerics, { Value: TGenerics['Row'][TAccessor] }>\n >,\n {\n id?: string\n }\n >\n : never,\n {\n accessorFn?: never\n accessorKey?: never\n columns?: ColumnDef<any>[]\n }\n >\n ) => ColumnDef<TGenerics>\n}\n\ntype InitTable<TRender extends AnyRender> = {\n createTableFactory: <TGenerics extends PartialGenerics>(\n options?: CreateTableFactoryOptions<TRender, any, any, any>\n ) => CreateTableFactory<Overwrite<TGenerics, { Render: TRender }>>\n createTable: CreateTableFactory<\n Overwrite<PartialGenerics, { Render: TRender }>\n >\n}\n\n//\n\nexport function init<TRender extends AnyRender>(opts: {\n render: TRender\n}): InitTable<TRender> {\n return {\n createTableFactory: options => () =>\n _createTable(undefined, undefined, { ...options, ...opts }),\n createTable: () => _createTable(undefined, undefined, opts),\n }\n}\n\nfunction _createTable<TGenerics extends PartialGenerics>(\n _?: undefined,\n __?: undefined,\n __options?: CreateTableFactoryOptions<any, any, any, any>\n): Table<TGenerics> {\n return {\n generics: undefined!,\n __options: __options ?? {\n render: () => {\n throw new Error()\n },\n },\n createColumns: columns => columns,\n createDisplayColumn: column => column as any,\n createGroup: column => column as any,\n createDataColumn: (accessor, column): any => {\n column = {\n ...column,\n id: column.id,\n }\n\n if (typeof accessor === 'string') {\n return {\n ...column,\n id: column.id ?? accessor,\n accessorKey: accessor,\n }\n }\n\n if (typeof accessor === 'function') {\n return {\n ...column,\n accessorFn: accessor,\n }\n }\n\n throw new Error('Invalid accessor')\n },\n }\n}\n"],"names":["init","opts","createTableFactory","options","_createTable","undefined","createTable","_","__","__options","generics","render","Error","createColumns","columns","createDisplayColumn","column","createGroup","createDataColumn","accessor","id","accessorKey","accessorFn"],"mappings":";;;;;;;;;;;;;;;;AAwGA;AAEO,SAASA,IAAT,CAAyCC,IAAzC,EAEgB;AACrB,SAAO;AACLC,IAAAA,kBAAkB,EAAE,4BAAAC,OAAO;AAAA,aAAI;AAAA,eAC7BC,YAAY,CAACC,SAAD,EAAYA,SAAZ,2CAA4BF,OAA5B,EAAwCF,IAAxC,EADiB;AAAA,OAAJ;AAAA,KADtB;AAGLK,IAAAA,WAAW,EAAE;AAAA,aAAMF,YAAY,CAACC,SAAD,EAAYA,SAAZ,EAAuBJ,IAAvB,CAAlB;AAAA;AAHR,GAAP;AAKD;;AAED,SAASG,YAAT,CACEG,CADF,EAEEC,EAFF,EAGEC,SAHF,EAIoB;AAClB,SAAO;AACLC,IAAAA,QAAQ,EAAEL,SADL;AAELI,IAAAA,SAAS,EAAEA,SAAF,WAAEA,SAAF,GAAe;AACtBE,MAAAA,MAAM,EAAE,kBAAM;AACZ,cAAM,IAAIC,KAAJ,EAAN;AACD;AAHqB,KAFnB;AAOLC,IAAAA,aAAa,EAAE,uBAAAC,OAAO;AAAA,aAAIA,OAAJ;AAAA,KAPjB;AAQLC,IAAAA,mBAAmB,EAAE,6BAAAC,MAAM;AAAA,aAAIA,MAAJ;AAAA,KARtB;AASLC,IAAAA,WAAW,EAAE,qBAAAD,MAAM;AAAA,aAAIA,MAAJ;AAAA,KATd;AAULE,IAAAA,gBAAgB,EAAE,0BAACC,QAAD,EAAWH,MAAX,EAA2B;AAC3CA,MAAAA,MAAM,4CACDA,MADC;AAEJI,QAAAA,EAAE,EAAEJ,MAAM,CAACI;AAFP,QAAN;;AAKA,UAAI,OAAOD,QAAP,KAAoB,QAAxB,EAAkC;AAAA;;AAChC,wDACKH,MADL;AAEEI,UAAAA,EAAE,gBAAEJ,MAAM,CAACI,EAAT,yBAAeD,QAFnB;AAGEE,UAAAA,WAAW,EAAEF;AAHf;AAKD;;AAED,UAAI,OAAOA,QAAP,KAAoB,UAAxB,EAAoC;AAClC,wDACKH,MADL;AAEEM,UAAAA,UAAU,EAAEH;AAFd;AAID;;AAED,YAAM,IAAIP,KAAJ,CAAU,kBAAV,CAAN;AACD;AAhCI,GAAP;AAkCD;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"ColumnSizing.js","sources":["../../../src/features/ColumnSizing.ts"],"sourcesContent":["import {\n Column,\n Getter,\n Header,\n OnChangeFn,\n PartialGenerics,\n PropGetterValue,\n TableInstance,\n Updater,\n} from '../types'\nimport { functionalUpdate, makeStateUpdater, memo, propGetter } from '../utils'\n\n//\n\nexport type ColumnSizing = Record<string, number>\n\nexport type ColumnSizingInfoState = {\n startOffset: null | number\n startSize: null | number\n deltaOffset: null | number\n deltaPercentage: null | number\n isResizingColumn: false | string\n columnSizingStart: [string, number][]\n}\n\nexport type ColumnSizingTableState = {\n columnSizing: ColumnSizing\n columnSizingInfo: ColumnSizingInfoState\n}\n\nexport type ColumnResizeMode = 'onChange' | 'onEnd'\n\nexport type ColumnSizingOptions = {\n enableColumnResizing?: boolean\n columnResizeMode?: ColumnResizeMode\n onColumnSizingChange?: OnChangeFn<ColumnSizing>\n onColumnSizingInfoChange?: OnChangeFn<ColumnSizingInfoState>\n}\n\nexport type ColumnSizingDefaultOptions = {\n columnResizeMode: ColumnResizeMode\n onColumnSizingChange: OnChangeFn<ColumnSizing>\n onColumnSizingInfoChange: OnChangeFn<ColumnSizingInfoState>\n}\n\nexport type ColumnResizerProps = {\n title?: string\n onMouseDown?: (e: MouseEvent) => void\n onTouchStart?: (e: TouchEvent) => void\n draggable?: boolean\n role?: string\n}\n\nexport type ColumnSizingInstance<TGenerics extends PartialGenerics> = {\n setColumnSizing: (updater: Updater<ColumnSizing>) => void\n setColumnSizingInfo: (updater: Updater<ColumnSizingInfoState>) => void\n resetColumnSizing: () => void\n resetColumnSize: (columnId: string) => void\n resetHeaderSize: (headerId: string) => void\n resetHeaderSizeInfo: () => void\n getColumnCanResize: (columnId: string) => boolean\n getHeaderCanResize: (headerId: string) => boolean\n getHeaderResizerProps: <TGetter extends Getter<ColumnResizerProps>>(\n headerId: string,\n userProps?: TGetter\n ) => undefined | PropGetterValue<ColumnResizerProps, TGetter>\n getColumnIsResizing: (columnId: string) => boolean\n getHeaderIsResizing: (headerId: string) => boolean\n}\n\nexport type ColumnSizingColumnDef = {\n enableResizing?: boolean\n defaultCanResize?: boolean\n}\n\nexport type ColumnSizingColumn<TGenerics extends PartialGenerics> = {\n getCanResize: () => boolean\n getIsResizing: () => boolean\n resetSize: () => void\n}\n\nexport type ColumnSizingHeader<TGenerics extends PartialGenerics> = {\n getCanResize: () => boolean\n getIsResizing: () => boolean\n getResizerProps: <TGetter extends Getter<ColumnResizerProps>>(\n userProps?: TGetter\n ) => undefined | PropGetterValue<ColumnResizerProps, TGetter>\n resetSize: () => void\n}\n\n//\n\nexport const defaultColumnSizing = {\n width: 150,\n minWidth: 20,\n maxWidth: Number.MAX_SAFE_INTEGER,\n}\n\nexport const ColumnSizing = {\n getInitialState: (): ColumnSizingTableState => {\n return {\n columnSizing: {},\n columnSizingInfo: {\n startOffset: null,\n startSize: null,\n deltaOffset: null,\n deltaPercentage: null,\n isResizingColumn: false,\n columnSizingStart: [],\n },\n }\n },\n\n getDefaultOptions: <TGenerics extends PartialGenerics>(\n instance: TableInstance<TGenerics>\n ): ColumnSizingDefaultOptions => {\n return {\n columnResizeMode: 'onEnd',\n onColumnSizingChange: makeStateUpdater('columnSizing', instance),\n onColumnSizingInfoChange: makeStateUpdater('columnSizingInfo', instance),\n }\n },\n\n getInstance: <TGenerics extends PartialGenerics>(\n instance: TableInstance<TGenerics>\n ): ColumnSizingInstance<TGenerics> => {\n return {\n setColumnSizing: updater =>\n instance.options.onColumnSizingChange?.(\n updater,\n functionalUpdate(updater, instance.getState().columnSizing)\n ),\n setColumnSizingInfo: updater =>\n instance.options.onColumnSizingInfoChange?.(\n updater,\n functionalUpdate(updater, instance.getState().columnSizingInfo)\n ),\n resetColumnSizing: () => {\n instance.setColumnSizing(instance.initialState.columnSizing ?? {})\n },\n resetHeaderSizeInfo: () => {\n instance.setColumnSizingInfo(\n instance.initialState.columnSizingInfo ?? {}\n )\n },\n resetColumnSize: columnId => {\n instance.setColumnSizing(({ [columnId]: _, ...rest }) => {\n return rest\n })\n },\n resetHeaderSize: headerId => {\n const header = instance.getHeader(headerId)\n\n return instance.resetColumnSize(header.column.id)\n },\n getHeaderCanResize: headerId => {\n const header = instance.getHeader(headerId)\n\n if (!header) {\n throw new Error()\n }\n\n return instance.getColumnCanResize(header.column.id)\n },\n getColumnCanResize: columnId => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n throw new Error()\n }\n\n return (\n column.enableResizing ??\n instance.options.enableColumnResizing ??\n column.defaultCanResize ??\n true\n )\n },\n getColumnIsResizing: columnId => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n throw new Error()\n }\n\n return (\n instance.getState().columnSizingInfo.isResizingColumn === columnId\n )\n },\n getHeaderIsResizing: headerId => {\n const header = instance.getHeader(headerId)\n\n if (!header) {\n throw new Error()\n }\n\n return instance.getColumnIsResizing(header.column.id)\n },\n\n getHeaderResizerProps: (headerId, userProps) => {\n const header = instance.getHeader(headerId)\n const column = instance.getColumn(header.column.id)\n\n const canResize = column.getCanResize()\n\n const onResizeStart = (e: MouseEvent | TouchEvent) => {\n if (isTouchStartEvent(e)) {\n // lets not respond to multiple touches (e.g. 2 or 3 fingers)\n if (e.touches && e.touches.length > 1) {\n return\n }\n }\n\n const header = headerId ? instance.getHeader(headerId) : undefined\n\n const startSize = header ? header.getWidth() : column.getWidth()\n\n const columnSizingStart: [string, number][] = header\n ? header.getLeafHeaders().map(d => [d.column.id, d.getWidth()])\n : [[column.id, column.getWidth()]]\n\n const clientX = isTouchStartEvent(e)\n ? Math.round(e.touches[0].clientX)\n : e.clientX\n\n const updateOffset = (\n eventType: 'move' | 'end',\n clientXPos?: number\n ) => {\n if (typeof clientXPos !== 'number') {\n return\n }\n\n let newColumnSizing: ColumnSizing = {}\n\n instance.setColumnSizingInfo(old => {\n const deltaOffset = clientXPos - (old?.startOffset ?? 0)\n const deltaPercentage = Math.max(\n deltaOffset / (old?.startSize ?? 0),\n -0.999999\n )\n\n old.columnSizingStart.forEach(([columnId, headerWidth]) => {\n newColumnSizing[columnId] =\n Math.round(\n Math.max(headerWidth + headerWidth * deltaPercentage, 0) *\n 100\n ) / 100\n })\n\n return {\n ...old,\n deltaOffset,\n deltaPercentage,\n }\n })\n\n if (\n instance.options.columnResizeMode === 'onChange' ||\n eventType === 'end'\n ) {\n instance.setColumnSizing(old => ({\n ...old,\n ...newColumnSizing,\n }))\n }\n }\n\n const onMove = (clientXPos?: number) =>\n updateOffset('move', clientXPos)\n\n const onEnd = (clientXPos?: number) => {\n updateOffset('end', clientXPos)\n\n instance.setColumnSizingInfo(old => ({\n ...old,\n isResizingColumn: false,\n startOffset: null,\n startSize: null,\n deltaOffset: null,\n deltaPercentage: null,\n columnSizingStart: [],\n }))\n }\n\n const mouseEvents = {\n moveHandler: (e: MouseEvent) => onMove(e.clientX),\n upHandler: (e: MouseEvent) => {\n document.removeEventListener('mousemove', mouseEvents.moveHandler)\n document.removeEventListener('mouseup', mouseEvents.upHandler)\n onEnd(e.clientX)\n },\n }\n\n const touchEvents = {\n moveHandler: (e: TouchEvent) => {\n if (e.cancelable) {\n e.preventDefault()\n e.stopPropagation()\n }\n onMove(e.touches[0].clientX)\n return false\n },\n upHandler: (e: TouchEvent) => {\n document.removeEventListener('touchmove', touchEvents.moveHandler)\n document.removeEventListener('touchend', touchEvents.upHandler)\n if (e.cancelable) {\n e.preventDefault()\n e.stopPropagation()\n }\n onEnd(e.touches[0].clientX)\n },\n }\n\n const passiveIfSupported = passiveEventSupported()\n ? { passive: false }\n : false\n\n if (isTouchStartEvent(e)) {\n document.addEventListener(\n 'touchmove',\n touchEvents.moveHandler,\n passiveIfSupported\n )\n document.addEventListener(\n 'touchend',\n touchEvents.upHandler,\n passiveIfSupported\n )\n } else {\n document.addEventListener(\n 'mousemove',\n mouseEvents.moveHandler,\n passiveIfSupported\n )\n document.addEventListener(\n 'mouseup',\n mouseEvents.upHandler,\n passiveIfSupported\n )\n }\n\n instance.setColumnSizingInfo(old => ({\n ...old,\n startOffset: clientX,\n startSize,\n deltaOffset: 0,\n deltaPercentage: 0,\n columnSizingStart,\n isResizingColumn: column.id,\n }))\n }\n\n const initialProps: ColumnResizerProps = canResize\n ? {\n title: 'Toggle Grouping',\n draggable: false,\n role: 'separator',\n onMouseDown: (e: MouseEvent & { persist?: () => void }) => {\n e.persist?.()\n onResizeStart(e)\n },\n onTouchStart: (e: TouchEvent & { persist?: () => void }) => {\n e.persist?.()\n onResizeStart(e)\n },\n }\n : {}\n\n return propGetter(initialProps, userProps)\n },\n }\n },\n\n createColumn: <TGenerics extends PartialGenerics>(\n column: Column<TGenerics>,\n instance: TableInstance<TGenerics>\n ): ColumnSizingColumn<TGenerics> => {\n return {\n getIsResizing: () => instance.getColumnIsResizing(column.id),\n getCanResize: () => instance.getColumnCanResize(column.id),\n resetSize: () => instance.resetColumnSize(column.id),\n }\n },\n\n createHeader: <TGenerics extends PartialGenerics>(\n header: Header<TGenerics>,\n instance: TableInstance<TGenerics>\n ): ColumnSizingHeader<TGenerics> => {\n return {\n getIsResizing: () => instance.getColumnIsResizing(header.column.id),\n getCanResize: () => instance.getColumnCanResize(header.column.id),\n resetSize: () => instance.resetColumnSize(header.column.id),\n getResizerProps: userProps =>\n instance.getHeaderResizerProps(header.id, userProps),\n }\n },\n}\n\nlet passiveSupported: boolean | null = null\nexport function passiveEventSupported() {\n if (typeof passiveSupported === 'boolean') return passiveSupported\n\n let supported = false\n try {\n const options = {\n get passive() {\n supported = true\n return false\n },\n }\n\n const noop = () => {}\n\n window.addEventListener('test', noop, options)\n window.removeEventListener('test', noop)\n } catch (err) {\n supported = false\n }\n passiveSupported = supported\n return passiveSupported\n}\n\nfunction isTouchStartEvent(e: TouchEvent | MouseEvent): e is TouchEvent {\n return e.type === 'touchstart'\n}\n"],"names":["defaultColumnSizing","width","minWidth","maxWidth","Number","MAX_SAFE_INTEGER","ColumnSizing","getInitialState","columnSizing","columnSizingInfo","startOffset","startSize","deltaOffset","deltaPercentage","isResizingColumn","columnSizingStart","getDefaultOptions","instance","columnResizeMode","onColumnSizingChange","makeStateUpdater","onColumnSizingInfoChange","getInstance","setColumnSizing","updater","options","functionalUpdate","getState","setColumnSizingInfo","resetColumnSizing","initialState","resetHeaderSizeInfo","resetColumnSize","columnId","rest","resetHeaderSize","headerId","header","getHeader","column","id","getHeaderCanResize","Error","getColumnCanResize","getColumn","enableResizing","enableColumnResizing","defaultCanResize","getColumnIsResizing","getHeaderIsResizing","getHeaderResizerProps","userProps","canResize","getCanResize","onResizeStart","e","isTouchStartEvent","touches","length","undefined","getWidth","getLeafHeaders","map","d","clientX","Math","round","updateOffset","eventType","clientXPos","newColumnSizing","old","max","forEach","headerWidth","onMove","onEnd","mouseEvents","moveHandler","upHandler","document","removeEventListener","touchEvents","cancelable","preventDefault","stopPropagation","passiveIfSupported","passiveEventSupported","passive","addEventListener","initialProps","title","draggable","role","onMouseDown","persist","onTouchStart","propGetter","createColumn","getIsResizing","resetSize","createHeader","getResizerProps","passiveSupported","supported","noop","window","err","type"],"mappings":"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"}
1
+ {"version":3,"file":"ColumnSizing.js","sources":["../../../src/features/ColumnSizing.ts"],"sourcesContent":["import {\n Column,\n Getter,\n Header,\n OnChangeFn,\n AnyGenerics,\n PartialGenerics,\n PropGetterValue,\n TableInstance,\n Updater,\n} from '../types'\nimport { functionalUpdate, makeStateUpdater, memo, propGetter } from '../utils'\n\n//\n\nexport type ColumnSizing = Record<string, number>\n\nexport type ColumnSizingInfoState = {\n startOffset: null | number\n startSize: null | number\n deltaOffset: null | number\n deltaPercentage: null | number\n isResizingColumn: false | string\n columnSizingStart: [string, number][]\n}\n\nexport type ColumnSizingTableState = {\n columnSizing: ColumnSizing\n columnSizingInfo: ColumnSizingInfoState\n}\n\nexport type ColumnResizeMode = 'onChange' | 'onEnd'\n\nexport type ColumnSizingOptions = {\n enableColumnResizing?: boolean\n columnResizeMode?: ColumnResizeMode\n onColumnSizingChange?: OnChangeFn<ColumnSizing>\n onColumnSizingInfoChange?: OnChangeFn<ColumnSizingInfoState>\n}\n\nexport type ColumnSizingDefaultOptions = {\n columnResizeMode: ColumnResizeMode\n onColumnSizingChange: OnChangeFn<ColumnSizing>\n onColumnSizingInfoChange: OnChangeFn<ColumnSizingInfoState>\n}\n\nexport type ColumnResizerProps = {\n title?: string\n onMouseDown?: (e: MouseEvent) => void\n onTouchStart?: (e: TouchEvent) => void\n draggable?: boolean\n role?: string\n}\n\nexport type ColumnSizingInstance<TGenerics extends PartialGenerics> = {\n setColumnSizing: (updater: Updater<ColumnSizing>) => void\n setColumnSizingInfo: (updater: Updater<ColumnSizingInfoState>) => void\n resetColumnSizing: () => void\n resetColumnSize: (columnId: string) => void\n resetHeaderSize: (headerId: string) => void\n resetHeaderSizeInfo: () => void\n getColumnCanResize: (columnId: string) => boolean\n getHeaderCanResize: (headerId: string) => boolean\n getHeaderResizerProps: <TGetter extends Getter<ColumnResizerProps>>(\n headerId: string,\n userProps?: TGetter\n ) => undefined | PropGetterValue<ColumnResizerProps, TGetter>\n getColumnIsResizing: (columnId: string) => boolean\n getHeaderIsResizing: (headerId: string) => boolean\n}\n\nexport type ColumnSizingColumnDef = {\n enableResizing?: boolean\n defaultCanResize?: boolean\n}\n\nexport type ColumnSizingColumn<TGenerics extends PartialGenerics> = {\n getCanResize: () => boolean\n getIsResizing: () => boolean\n resetSize: () => void\n}\n\nexport type ColumnSizingHeader<TGenerics extends PartialGenerics> = {\n getCanResize: () => boolean\n getIsResizing: () => boolean\n getResizerProps: <TGetter extends Getter<ColumnResizerProps>>(\n userProps?: TGetter\n ) => undefined | PropGetterValue<ColumnResizerProps, TGetter>\n resetSize: () => void\n}\n\n//\n\nexport const defaultColumnSizing = {\n width: 150,\n minWidth: 20,\n maxWidth: Number.MAX_SAFE_INTEGER,\n}\n\nexport const ColumnSizing = {\n getInitialState: (): ColumnSizingTableState => {\n return {\n columnSizing: {},\n columnSizingInfo: {\n startOffset: null,\n startSize: null,\n deltaOffset: null,\n deltaPercentage: null,\n isResizingColumn: false,\n columnSizingStart: [],\n },\n }\n },\n\n getDefaultOptions: <TGenerics extends PartialGenerics>(\n instance: TableInstance<TGenerics>\n ): ColumnSizingDefaultOptions => {\n return {\n columnResizeMode: 'onEnd',\n onColumnSizingChange: makeStateUpdater('columnSizing', instance),\n onColumnSizingInfoChange: makeStateUpdater('columnSizingInfo', instance),\n }\n },\n\n getInstance: <TGenerics extends PartialGenerics>(\n instance: TableInstance<TGenerics>\n ): ColumnSizingInstance<TGenerics> => {\n return {\n setColumnSizing: updater =>\n instance.options.onColumnSizingChange?.(\n updater,\n functionalUpdate(updater, instance.getState().columnSizing)\n ),\n setColumnSizingInfo: updater =>\n instance.options.onColumnSizingInfoChange?.(\n updater,\n functionalUpdate(updater, instance.getState().columnSizingInfo)\n ),\n resetColumnSizing: () => {\n instance.setColumnSizing(instance.initialState.columnSizing ?? {})\n },\n resetHeaderSizeInfo: () => {\n instance.setColumnSizingInfo(\n instance.initialState.columnSizingInfo ?? {}\n )\n },\n resetColumnSize: columnId => {\n instance.setColumnSizing(({ [columnId]: _, ...rest }) => {\n return rest\n })\n },\n resetHeaderSize: headerId => {\n const header = instance.getHeader(headerId)\n\n return instance.resetColumnSize(header.column.id)\n },\n getHeaderCanResize: headerId => {\n const header = instance.getHeader(headerId)\n\n if (!header) {\n throw new Error()\n }\n\n return instance.getColumnCanResize(header.column.id)\n },\n getColumnCanResize: columnId => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n throw new Error()\n }\n\n return (\n column.enableResizing ??\n instance.options.enableColumnResizing ??\n column.defaultCanResize ??\n true\n )\n },\n getColumnIsResizing: columnId => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n throw new Error()\n }\n\n return (\n instance.getState().columnSizingInfo.isResizingColumn === columnId\n )\n },\n getHeaderIsResizing: headerId => {\n const header = instance.getHeader(headerId)\n\n if (!header) {\n throw new Error()\n }\n\n return instance.getColumnIsResizing(header.column.id)\n },\n\n getHeaderResizerProps: (headerId, userProps) => {\n const header = instance.getHeader(headerId)\n const column = instance.getColumn(header.column.id)\n\n const canResize = column.getCanResize()\n\n const onResizeStart = (e: MouseEvent | TouchEvent) => {\n if (isTouchStartEvent(e)) {\n // lets not respond to multiple touches (e.g. 2 or 3 fingers)\n if (e.touches && e.touches.length > 1) {\n return\n }\n }\n\n const header = headerId ? instance.getHeader(headerId) : undefined\n\n const startSize = header ? header.getWidth() : column.getWidth()\n\n const columnSizingStart: [string, number][] = header\n ? header.getLeafHeaders().map(d => [d.column.id, d.getWidth()])\n : [[column.id, column.getWidth()]]\n\n const clientX = isTouchStartEvent(e)\n ? Math.round(e.touches[0].clientX)\n : e.clientX\n\n const updateOffset = (\n eventType: 'move' | 'end',\n clientXPos?: number\n ) => {\n if (typeof clientXPos !== 'number') {\n return\n }\n\n let newColumnSizing: ColumnSizing = {}\n\n instance.setColumnSizingInfo(old => {\n const deltaOffset = clientXPos - (old?.startOffset ?? 0)\n const deltaPercentage = Math.max(\n deltaOffset / (old?.startSize ?? 0),\n -0.999999\n )\n\n old.columnSizingStart.forEach(([columnId, headerWidth]) => {\n newColumnSizing[columnId] =\n Math.round(\n Math.max(headerWidth + headerWidth * deltaPercentage, 0) *\n 100\n ) / 100\n })\n\n return {\n ...old,\n deltaOffset,\n deltaPercentage,\n }\n })\n\n if (\n instance.options.columnResizeMode === 'onChange' ||\n eventType === 'end'\n ) {\n instance.setColumnSizing(old => ({\n ...old,\n ...newColumnSizing,\n }))\n }\n }\n\n const onMove = (clientXPos?: number) =>\n updateOffset('move', clientXPos)\n\n const onEnd = (clientXPos?: number) => {\n updateOffset('end', clientXPos)\n\n instance.setColumnSizingInfo(old => ({\n ...old,\n isResizingColumn: false,\n startOffset: null,\n startSize: null,\n deltaOffset: null,\n deltaPercentage: null,\n columnSizingStart: [],\n }))\n }\n\n const mouseEvents = {\n moveHandler: (e: MouseEvent) => onMove(e.clientX),\n upHandler: (e: MouseEvent) => {\n document.removeEventListener('mousemove', mouseEvents.moveHandler)\n document.removeEventListener('mouseup', mouseEvents.upHandler)\n onEnd(e.clientX)\n },\n }\n\n const touchEvents = {\n moveHandler: (e: TouchEvent) => {\n if (e.cancelable) {\n e.preventDefault()\n e.stopPropagation()\n }\n onMove(e.touches[0].clientX)\n return false\n },\n upHandler: (e: TouchEvent) => {\n document.removeEventListener('touchmove', touchEvents.moveHandler)\n document.removeEventListener('touchend', touchEvents.upHandler)\n if (e.cancelable) {\n e.preventDefault()\n e.stopPropagation()\n }\n onEnd(e.touches[0].clientX)\n },\n }\n\n const passiveIfSupported = passiveEventSupported()\n ? { passive: false }\n : false\n\n if (isTouchStartEvent(e)) {\n document.addEventListener(\n 'touchmove',\n touchEvents.moveHandler,\n passiveIfSupported\n )\n document.addEventListener(\n 'touchend',\n touchEvents.upHandler,\n passiveIfSupported\n )\n } else {\n document.addEventListener(\n 'mousemove',\n mouseEvents.moveHandler,\n passiveIfSupported\n )\n document.addEventListener(\n 'mouseup',\n mouseEvents.upHandler,\n passiveIfSupported\n )\n }\n\n instance.setColumnSizingInfo(old => ({\n ...old,\n startOffset: clientX,\n startSize,\n deltaOffset: 0,\n deltaPercentage: 0,\n columnSizingStart,\n isResizingColumn: column.id,\n }))\n }\n\n const initialProps: ColumnResizerProps = canResize\n ? {\n title: 'Toggle Grouping',\n draggable: false,\n role: 'separator',\n onMouseDown: (e: MouseEvent & { persist?: () => void }) => {\n e.persist?.()\n onResizeStart(e)\n },\n onTouchStart: (e: TouchEvent & { persist?: () => void }) => {\n e.persist?.()\n onResizeStart(e)\n },\n }\n : {}\n\n return propGetter(initialProps, userProps)\n },\n }\n },\n\n createColumn: <TGenerics extends PartialGenerics>(\n column: Column<TGenerics>,\n instance: TableInstance<TGenerics>\n ): ColumnSizingColumn<TGenerics> => {\n return {\n getIsResizing: () => instance.getColumnIsResizing(column.id),\n getCanResize: () => instance.getColumnCanResize(column.id),\n resetSize: () => instance.resetColumnSize(column.id),\n }\n },\n\n createHeader: <TGenerics extends PartialGenerics>(\n header: Header<TGenerics>,\n instance: TableInstance<TGenerics>\n ): ColumnSizingHeader<TGenerics> => {\n return {\n getIsResizing: () => instance.getColumnIsResizing(header.column.id),\n getCanResize: () => instance.getColumnCanResize(header.column.id),\n resetSize: () => instance.resetColumnSize(header.column.id),\n getResizerProps: userProps =>\n instance.getHeaderResizerProps(header.id, userProps),\n }\n },\n}\n\nlet passiveSupported: boolean | null = null\nexport function passiveEventSupported() {\n if (typeof passiveSupported === 'boolean') return passiveSupported\n\n let supported = false\n try {\n const options = {\n get passive() {\n supported = true\n return false\n },\n }\n\n const noop = () => {}\n\n window.addEventListener('test', noop, options)\n window.removeEventListener('test', noop)\n } catch (err) {\n supported = false\n }\n passiveSupported = supported\n return passiveSupported\n}\n\nfunction isTouchStartEvent(e: TouchEvent | MouseEvent): e is TouchEvent {\n return e.type === 'touchstart'\n}\n"],"names":["defaultColumnSizing","width","minWidth","maxWidth","Number","MAX_SAFE_INTEGER","ColumnSizing","getInitialState","columnSizing","columnSizingInfo","startOffset","startSize","deltaOffset","deltaPercentage","isResizingColumn","columnSizingStart","getDefaultOptions","instance","columnResizeMode","onColumnSizingChange","makeStateUpdater","onColumnSizingInfoChange","getInstance","setColumnSizing","updater","options","functionalUpdate","getState","setColumnSizingInfo","resetColumnSizing","initialState","resetHeaderSizeInfo","resetColumnSize","columnId","rest","resetHeaderSize","headerId","header","getHeader","column","id","getHeaderCanResize","Error","getColumnCanResize","getColumn","enableResizing","enableColumnResizing","defaultCanResize","getColumnIsResizing","getHeaderIsResizing","getHeaderResizerProps","userProps","canResize","getCanResize","onResizeStart","e","isTouchStartEvent","touches","length","undefined","getWidth","getLeafHeaders","map","d","clientX","Math","round","updateOffset","eventType","clientXPos","newColumnSizing","old","max","forEach","headerWidth","onMove","onEnd","mouseEvents","moveHandler","upHandler","document","removeEventListener","touchEvents","cancelable","preventDefault","stopPropagation","passiveIfSupported","passiveEventSupported","passive","addEventListener","initialProps","title","draggable","role","onMouseDown","persist","onTouchStart","propGetter","createColumn","getIsResizing","resetSize","createHeader","getResizerProps","passiveSupported","supported","noop","window","err","type"],"mappings":"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"}
@@ -26,9 +26,6 @@ var Expanding = {
26
26
  return {
27
27
  onExpandedChange: utils.makeStateUpdater('expanded', instance),
28
28
  autoResetExpanded: true,
29
- getIsRowExpanded: function getIsRowExpanded(row) {
30
- return !!(row == null ? void 0 : row.original).expanded;
31
- },
32
29
  expandSubRows: true,
33
30
  paginateExpandedRows: true
34
31
  };
@@ -103,7 +100,7 @@ var Expanding = {
103
100
  getIsRowExpanded: function getIsRowExpanded(rowId) {
104
101
  var _instance$options$get;
105
102
 
106
- var row = instance.getRow(rowId);
103
+ var row = instance.getPreExpandedRowModel().rowsById[rowId];
107
104
 
108
105
  if (!row) {
109
106
  if (process.env.NODE_ENV !== 'production') {
@@ -114,7 +111,7 @@ var Expanding = {
114
111
  }
115
112
 
116
113
  var expanded = instance.getState().expanded;
117
- return !!((_instance$options$get = instance.options.getIsRowExpanded == null ? void 0 : instance.options.getIsRowExpanded(row)) != null ? _instance$options$get : expanded || (expanded == null ? void 0 : expanded[rowId]));
114
+ return !!((_instance$options$get = instance.options.getIsRowExpanded == null ? void 0 : instance.options.getIsRowExpanded(row)) != null ? _instance$options$get : expanded === true || (expanded == null ? void 0 : expanded[rowId]));
118
115
  },
119
116
  getRowCanExpand: function getRowCanExpand(rowId) {
120
117
  var _ref, _ref2, _instance$options$get2, _row$subRows;
@@ -158,6 +155,10 @@ var Expanding = {
158
155
  };
159
156
  return utils.propGetter(initialProps, userProps);
160
157
  },
158
+ getIsSomeRowsExpanded: function getIsSomeRowsExpanded() {
159
+ var expanded = instance.getState().expanded;
160
+ return expanded === true || Object.values(expanded).some(Boolean);
161
+ },
161
162
  getIsAllRowsExpanded: function getIsAllRowsExpanded() {
162
163
  var expanded = instance.getState().expanded; // If expanded is true, save some cycles and return true
163
164
 
@@ -188,7 +189,7 @@ var Expanding = {
188
189
  return [instance.getState().expanded, instance.getGroupedRowModel(), instance.options.expandRowsFn, instance.options.paginateExpandedRows];
189
190
  }, function (expanded, rowModel, expandRowsFn, paginateExpandedRows) {
190
191
  if (!expandRowsFn || // Do not expand if rows are not included in pagination
191
- !paginateExpandedRows || !Object.keys(expanded != null ? expanded : {}).length) {
192
+ !paginateExpandedRows || expanded !== true && !Object.keys(expanded != null ? expanded : {}).length) {
192
193
  return rowModel;
193
194
  }
194
195
 
@@ -199,9 +200,6 @@ var Expanding = {
199
200
  var _instance$options$deb;
200
201
 
201
202
  return (_instance$options$deb = instance.options.debugAll) != null ? _instance$options$deb : instance.options.debugTable;
202
- },
203
- onChange: function onChange() {
204
- instance._notifyPageIndexReset();
205
203
  }
206
204
  }),
207
205
  getPreExpandedRowModel: function getPreExpandedRowModel() {
@@ -1 +1 @@
1
- {"version":3,"file":"Expanding.js","sources":["../../../src/features/Expanding.ts"],"sourcesContent":["import { MouseEvent, TouchEvent } from 'react'\nimport { RowModel } from '..'\nimport {\n Getter,\n OnChangeFn,\n PartialGenerics,\n PropGetterValue,\n TableInstance,\n Row,\n Updater,\n} from '../types'\nimport { functionalUpdate, makeStateUpdater, memo, propGetter } from '../utils'\n\nexport type ExpandedStateList = Record<string, boolean>\nexport type ExpandedState = true | Record<string, boolean>\nexport type ExpandedTableState = {\n expanded: ExpandedState\n}\n\nexport type ExpandedRow = {\n toggleExpanded: (expanded?: boolean) => void\n getIsExpanded: () => boolean\n getCanExpand: () => boolean\n getToggleExpandedProps: <TGetter extends Getter<ToggleExpandedProps>>(\n userProps?: TGetter\n ) => undefined | PropGetterValue<ToggleExpandedProps, TGetter>\n}\n\nexport type ExpandedOptions<TGenerics extends PartialGenerics> = {\n onExpandedChange?: OnChangeFn<ExpandedState>\n autoResetExpanded?: boolean\n enableExpanded?: boolean\n expandRowsFn?: (\n instance: TableInstance<TGenerics>,\n rowModel: RowModel<TGenerics>\n ) => RowModel<TGenerics>\n expandSubRows?: boolean\n defaultCanExpand?: boolean\n getIsRowExpanded?: (row: Row<TGenerics>) => boolean\n getRowCanExpand?: (row: Row<TGenerics>) => boolean\n paginateExpandedRows?: boolean\n}\n\nexport type ToggleExpandedProps = {\n title?: string\n onClick?: (event: MouseEvent | TouchEvent) => void\n}\n\nexport type ExpandedInstance<TGenerics extends PartialGenerics> = {\n _notifyExpandedReset: () => void\n setExpanded: (updater: Updater<ExpandedState>) => void\n toggleRowExpanded: (rowId: string, expanded?: boolean) => void\n toggleAllRowsExpanded: (expanded?: boolean) => void\n resetExpanded: () => void\n getRowCanExpand: (rowId: string) => boolean\n getIsRowExpanded: (rowId: string) => boolean\n getToggleExpandedProps: <TGetter extends Getter<ToggleExpandedProps>>(\n rowId: string,\n userProps?: TGetter\n ) => undefined | PropGetterValue<ToggleExpandedProps, TGetter>\n getToggleAllRowsExpandedProps: <TGetter extends Getter<ToggleExpandedProps>>(\n userProps?: TGetter\n ) => undefined | PropGetterValue<ToggleExpandedProps, TGetter>\n getIsAllRowsExpanded: () => boolean\n getExpandedDepth: () => number\n getExpandedRowModel: () => RowModel<TGenerics>\n getPreExpandedRowModel: () => RowModel<TGenerics>\n}\n\n//\n\nexport const Expanding = {\n getInitialState: (): ExpandedTableState => {\n return {\n expanded: {},\n }\n },\n\n getDefaultOptions: <TGenerics extends PartialGenerics>(\n instance: TableInstance<TGenerics>\n ): ExpandedOptions<TGenerics> => {\n return {\n onExpandedChange: makeStateUpdater('expanded', instance),\n autoResetExpanded: true,\n getIsRowExpanded: row => !!(row?.original as { expanded?: any }).expanded,\n expandSubRows: true,\n paginateExpandedRows: true,\n }\n },\n\n getInstance: <TGenerics extends PartialGenerics>(\n instance: TableInstance<TGenerics>\n ): ExpandedInstance<TGenerics> => {\n let registered = false\n\n return {\n _notifyExpandedReset: () => {\n if (!registered) {\n registered = true\n return\n }\n\n if (instance.options.autoResetAll === false) {\n return\n }\n\n if (\n instance.options.autoResetAll === true ||\n instance.options.autoResetExpanded\n ) {\n instance.resetExpanded()\n }\n },\n setExpanded: updater =>\n instance.options.onExpandedChange?.(\n updater,\n functionalUpdate(updater, instance.getState().expanded)\n ),\n toggleRowExpanded: (rowId, expanded) => {\n if (!rowId) return\n\n instance.setExpanded(old => {\n const exists = old === true ? true : !!old?.[rowId]\n\n let oldExpanded: ExpandedStateList = {}\n\n if (old === true) {\n Object.keys(instance.getRowModel().rowsById).forEach(rowId => {\n oldExpanded[rowId] = true\n })\n } else {\n oldExpanded = old\n }\n\n expanded = expanded ?? !exists\n\n if (!exists && expanded) {\n return {\n ...oldExpanded,\n [rowId]: true,\n }\n }\n\n if (exists && !expanded) {\n const { [rowId]: _, ...rest } = oldExpanded\n return rest\n }\n\n return old\n })\n },\n toggleAllRowsExpanded: expanded => {\n if (expanded ?? !instance.getIsAllRowsExpanded()) {\n instance.setExpanded(true)\n } else {\n instance.setExpanded({})\n }\n },\n resetExpanded: () => {\n instance.setExpanded(instance.initialState?.expanded ?? {})\n },\n getIsRowExpanded: rowId => {\n const row = instance.getRow(rowId)\n\n if (!row) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(\n `[Table] getIsRowExpanded: no row found with id ${rowId}`\n )\n }\n throw new Error()\n }\n\n const expanded = instance.getState().expanded\n\n return !!(\n instance.options.getIsRowExpanded?.(row) ??\n (expanded || expanded?.[rowId])\n )\n },\n getRowCanExpand: rowId => {\n const row = instance.getRow(rowId)\n\n if (!row) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(\n `[Table] getRowCanExpand: no row found with id ${rowId}`\n )\n }\n throw new Error()\n }\n\n return (\n instance.options.getRowCanExpand?.(row) ??\n instance.options.enableExpanded ??\n instance.options.defaultCanExpand ??\n !!row.subRows?.length\n )\n },\n getToggleExpandedProps: (rowId, userProps) => {\n const row = instance.getRow(rowId)\n\n if (!row) {\n return\n }\n\n const canExpand = instance.getRowCanExpand(rowId)\n\n const initialProps: ToggleExpandedProps = {\n title: canExpand ? 'Toggle Expanded' : undefined,\n onClick: canExpand\n ? (e: MouseEvent | TouchEvent) => {\n e.persist()\n instance.toggleRowExpanded(rowId)\n }\n : undefined,\n }\n\n return propGetter(initialProps, userProps)\n },\n getToggleAllRowsExpandedProps: userProps => {\n const initialProps: ToggleExpandedProps = {\n title: 'Toggle All Expanded',\n onClick: (e: MouseEvent | TouchEvent) => {\n e.persist()\n instance.toggleAllRowsExpanded()\n },\n }\n\n return propGetter(initialProps, userProps)\n },\n getIsAllRowsExpanded: () => {\n const expanded = instance.getState().expanded\n\n // If expanded is true, save some cycles and return true\n if (expanded === true) {\n return true\n }\n\n // If any row is not expanded, return false\n if (\n Object.keys(instance.getRowModel().rowsById).some(\n id => !instance.getIsRowExpanded(id)\n )\n ) {\n return false\n }\n\n // They must all be expanded :shrug:\n return true\n },\n getExpandedDepth: () => {\n let maxDepth = 0\n\n const rowIds =\n instance.getState().expanded === true\n ? Object.keys(instance.getRowModel().rowsById)\n : Object.keys(instance.getState().expanded)\n\n rowIds.forEach(id => {\n const splitId = id.split('.')\n maxDepth = Math.max(maxDepth, splitId.length)\n })\n\n return maxDepth\n },\n getExpandedRowModel: memo(\n () => [\n instance.getState().expanded,\n instance.getGroupedRowModel(),\n instance.options.expandRowsFn,\n instance.options.paginateExpandedRows,\n ],\n (expanded, rowModel, expandRowsFn, paginateExpandedRows) => {\n if (\n !expandRowsFn ||\n // Do not expand if rows are not included in pagination\n !paginateExpandedRows ||\n !Object.keys(expanded ?? {}).length\n ) {\n return rowModel\n }\n\n return expandRowsFn(instance, rowModel)\n },\n {\n key: 'getExpandedRowModel',\n debug: () => instance.options.debugAll ?? instance.options.debugTable,\n onChange: () => {\n instance._notifyPageIndexReset()\n },\n }\n ),\n\n getPreExpandedRowModel: () => instance.getGroupedRowModel(),\n }\n },\n\n createRow: <TGenerics extends PartialGenerics>(\n row: Row<TGenerics>,\n instance: TableInstance<TGenerics>\n ): ExpandedRow => {\n return {\n toggleExpanded: expanded =>\n void instance.toggleRowExpanded(row.id, expanded),\n getIsExpanded: () => instance.getIsRowExpanded(row.id),\n getCanExpand: () => row.subRows && !!row.subRows.length,\n getToggleExpandedProps: userProps => {\n const initialProps: ToggleExpandedProps = {\n title: 'Toggle Row Expanded',\n onClick: (e: MouseEvent | TouchEvent) => {\n e.stopPropagation()\n instance.toggleRowExpanded(row.id)\n },\n }\n return propGetter(initialProps, userProps)\n },\n }\n },\n}\n"],"names":["Expanding","getInitialState","expanded","getDefaultOptions","instance","onExpandedChange","makeStateUpdater","autoResetExpanded","getIsRowExpanded","row","original","expandSubRows","paginateExpandedRows","getInstance","registered","_notifyExpandedReset","options","autoResetAll","resetExpanded","setExpanded","updater","functionalUpdate","getState","toggleRowExpanded","rowId","old","exists","oldExpanded","Object","keys","getRowModel","rowsById","forEach","rest","toggleAllRowsExpanded","getIsAllRowsExpanded","initialState","getRow","process","env","NODE_ENV","console","warn","Error","getRowCanExpand","enableExpanded","defaultCanExpand","subRows","length","getToggleExpandedProps","userProps","canExpand","initialProps","title","undefined","onClick","e","persist","propGetter","getToggleAllRowsExpandedProps","some","id","getExpandedDepth","maxDepth","rowIds","splitId","split","Math","max","getExpandedRowModel","memo","getGroupedRowModel","expandRowsFn","rowModel","key","debug","debugAll","debugTable","onChange","_notifyPageIndexReset","getPreExpandedRowModel","createRow","toggleExpanded","getIsExpanded","getCanExpand","stopPropagation"],"mappings":"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"}
1
+ {"version":3,"file":"Expanding.js","sources":["../../../src/features/Expanding.ts"],"sourcesContent":["import { MouseEvent, TouchEvent } from 'react'\nimport { RowModel } from '..'\nimport {\n Getter,\n OnChangeFn,\n AnyGenerics,\n PartialGenerics,\n PropGetterValue,\n TableInstance,\n Row,\n Updater,\n} from '../types'\nimport { functionalUpdate, makeStateUpdater, memo, propGetter } from '../utils'\n\nexport type ExpandedStateList = Record<string, boolean>\nexport type ExpandedState = true | Record<string, boolean>\nexport type ExpandedTableState = {\n expanded: ExpandedState\n}\n\nexport type ExpandedRow = {\n toggleExpanded: (expanded?: boolean) => void\n getIsExpanded: () => boolean\n getCanExpand: () => boolean\n getToggleExpandedProps: <TGetter extends Getter<ToggleExpandedProps>>(\n userProps?: TGetter\n ) => undefined | PropGetterValue<ToggleExpandedProps, TGetter>\n}\n\nexport type ExpandedOptions<TGenerics extends PartialGenerics> = {\n onExpandedChange?: OnChangeFn<ExpandedState>\n autoResetExpanded?: boolean\n enableExpanded?: boolean\n expandRowsFn?: (\n instance: TableInstance<TGenerics>,\n rowModel: RowModel<TGenerics>\n ) => RowModel<TGenerics>\n expandSubRows?: boolean\n defaultCanExpand?: boolean\n getIsRowExpanded?: (row: Row<TGenerics>) => boolean\n getRowCanExpand?: (row: Row<TGenerics>) => boolean\n paginateExpandedRows?: boolean\n}\n\nexport type ToggleExpandedProps = {\n title?: string\n onClick?: (event: MouseEvent | TouchEvent) => void\n}\n\nexport type ExpandedInstance<TGenerics extends PartialGenerics> = {\n _notifyExpandedReset: () => void\n setExpanded: (updater: Updater<ExpandedState>) => void\n toggleRowExpanded: (rowId: string, expanded?: boolean) => void\n toggleAllRowsExpanded: (expanded?: boolean) => void\n resetExpanded: () => void\n getRowCanExpand: (rowId: string) => boolean\n getIsRowExpanded: (rowId: string) => boolean\n getToggleExpandedProps: <TGetter extends Getter<ToggleExpandedProps>>(\n rowId: string,\n userProps?: TGetter\n ) => undefined | PropGetterValue<ToggleExpandedProps, TGetter>\n getToggleAllRowsExpandedProps: <TGetter extends Getter<ToggleExpandedProps>>(\n userProps?: TGetter\n ) => undefined | PropGetterValue<ToggleExpandedProps, TGetter>\n getIsSomeRowsExpanded: () => boolean\n getIsAllRowsExpanded: () => boolean\n getExpandedDepth: () => number\n getExpandedRowModel: () => RowModel<TGenerics>\n getPreExpandedRowModel: () => RowModel<TGenerics>\n}\n\n//\n\nexport const Expanding = {\n getInitialState: (): ExpandedTableState => {\n return {\n expanded: {},\n }\n },\n\n getDefaultOptions: <TGenerics extends PartialGenerics>(\n instance: TableInstance<TGenerics>\n ): ExpandedOptions<TGenerics> => {\n return {\n onExpandedChange: makeStateUpdater('expanded', instance),\n autoResetExpanded: true,\n expandSubRows: true,\n paginateExpandedRows: true,\n }\n },\n\n getInstance: <TGenerics extends PartialGenerics>(\n instance: TableInstance<TGenerics>\n ): ExpandedInstance<TGenerics> => {\n let registered = false\n\n return {\n _notifyExpandedReset: () => {\n if (!registered) {\n registered = true\n return\n }\n\n if (instance.options.autoResetAll === false) {\n return\n }\n\n if (\n instance.options.autoResetAll === true ||\n instance.options.autoResetExpanded\n ) {\n instance.resetExpanded()\n }\n },\n setExpanded: updater =>\n instance.options.onExpandedChange?.(\n updater,\n functionalUpdate(updater, instance.getState().expanded)\n ),\n toggleRowExpanded: (rowId, expanded) => {\n if (!rowId) return\n\n instance.setExpanded(old => {\n const exists = old === true ? true : !!old?.[rowId]\n\n let oldExpanded: ExpandedStateList = {}\n\n if (old === true) {\n Object.keys(instance.getRowModel().rowsById).forEach(rowId => {\n oldExpanded[rowId] = true\n })\n } else {\n oldExpanded = old\n }\n\n expanded = expanded ?? !exists\n\n if (!exists && expanded) {\n return {\n ...oldExpanded,\n [rowId]: true,\n }\n }\n\n if (exists && !expanded) {\n const { [rowId]: _, ...rest } = oldExpanded\n return rest\n }\n\n return old\n })\n },\n toggleAllRowsExpanded: expanded => {\n if (expanded ?? !instance.getIsAllRowsExpanded()) {\n instance.setExpanded(true)\n } else {\n instance.setExpanded({})\n }\n },\n resetExpanded: () => {\n instance.setExpanded(instance.initialState?.expanded ?? {})\n },\n getIsRowExpanded: rowId => {\n const row = instance.getPreExpandedRowModel().rowsById[rowId]\n\n if (!row) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(\n `[Table] getIsRowExpanded: no row found with id ${rowId}`\n )\n }\n throw new Error()\n }\n\n const expanded = instance.getState().expanded\n\n return !!(\n instance.options.getIsRowExpanded?.(row) ??\n (expanded === true || expanded?.[rowId])\n )\n },\n getRowCanExpand: rowId => {\n const row = instance.getRow(rowId)\n\n if (!row) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(\n `[Table] getRowCanExpand: no row found with id ${rowId}`\n )\n }\n throw new Error()\n }\n\n return (\n instance.options.getRowCanExpand?.(row) ??\n instance.options.enableExpanded ??\n instance.options.defaultCanExpand ??\n !!row.subRows?.length\n )\n },\n getToggleExpandedProps: (rowId, userProps) => {\n const row = instance.getRow(rowId)\n\n if (!row) {\n return\n }\n\n const canExpand = instance.getRowCanExpand(rowId)\n\n const initialProps: ToggleExpandedProps = {\n title: canExpand ? 'Toggle Expanded' : undefined,\n onClick: canExpand\n ? (e: MouseEvent | TouchEvent) => {\n e.persist()\n instance.toggleRowExpanded(rowId)\n }\n : undefined,\n }\n\n return propGetter(initialProps, userProps)\n },\n getToggleAllRowsExpandedProps: userProps => {\n const initialProps: ToggleExpandedProps = {\n title: 'Toggle All Expanded',\n onClick: (e: MouseEvent | TouchEvent) => {\n e.persist()\n instance.toggleAllRowsExpanded()\n },\n }\n\n return propGetter(initialProps, userProps)\n },\n getIsSomeRowsExpanded: () => {\n const expanded = instance.getState().expanded\n return expanded === true || Object.values(expanded).some(Boolean)\n },\n getIsAllRowsExpanded: () => {\n const expanded = instance.getState().expanded\n\n // If expanded is true, save some cycles and return true\n if (expanded === true) {\n return true\n }\n\n // If any row is not expanded, return false\n if (\n Object.keys(instance.getRowModel().rowsById).some(\n id => !instance.getIsRowExpanded(id)\n )\n ) {\n return false\n }\n\n // They must all be expanded :shrug:\n return true\n },\n getExpandedDepth: () => {\n let maxDepth = 0\n\n const rowIds =\n instance.getState().expanded === true\n ? Object.keys(instance.getRowModel().rowsById)\n : Object.keys(instance.getState().expanded)\n\n rowIds.forEach(id => {\n const splitId = id.split('.')\n maxDepth = Math.max(maxDepth, splitId.length)\n })\n\n return maxDepth\n },\n getExpandedRowModel: memo(\n () => [\n instance.getState().expanded,\n instance.getGroupedRowModel(),\n instance.options.expandRowsFn,\n instance.options.paginateExpandedRows,\n ],\n (expanded, rowModel, expandRowsFn, paginateExpandedRows) => {\n if (\n !expandRowsFn ||\n // Do not expand if rows are not included in pagination\n !paginateExpandedRows ||\n (expanded !== true && !Object.keys(expanded ?? {}).length)\n ) {\n return rowModel\n }\n\n return expandRowsFn(instance, rowModel)\n },\n {\n key: 'getExpandedRowModel',\n debug: () => instance.options.debugAll ?? instance.options.debugTable,\n }\n ),\n\n getPreExpandedRowModel: () => instance.getGroupedRowModel(),\n }\n },\n\n createRow: <TGenerics extends PartialGenerics>(\n row: Row<TGenerics>,\n instance: TableInstance<TGenerics>\n ): ExpandedRow => {\n return {\n toggleExpanded: expanded =>\n void instance.toggleRowExpanded(row.id, expanded),\n getIsExpanded: () => instance.getIsRowExpanded(row.id),\n getCanExpand: () => row.subRows && !!row.subRows.length,\n getToggleExpandedProps: userProps => {\n const initialProps: ToggleExpandedProps = {\n title: 'Toggle Row Expanded',\n onClick: (e: MouseEvent | TouchEvent) => {\n e.stopPropagation()\n instance.toggleRowExpanded(row.id)\n },\n }\n return propGetter(initialProps, userProps)\n },\n }\n },\n}\n"],"names":["Expanding","getInitialState","expanded","getDefaultOptions","instance","onExpandedChange","makeStateUpdater","autoResetExpanded","expandSubRows","paginateExpandedRows","getInstance","registered","_notifyExpandedReset","options","autoResetAll","resetExpanded","setExpanded","updater","functionalUpdate","getState","toggleRowExpanded","rowId","old","exists","oldExpanded","Object","keys","getRowModel","rowsById","forEach","rest","toggleAllRowsExpanded","getIsAllRowsExpanded","initialState","getIsRowExpanded","row","getPreExpandedRowModel","process","env","NODE_ENV","console","warn","Error","getRowCanExpand","getRow","enableExpanded","defaultCanExpand","subRows","length","getToggleExpandedProps","userProps","canExpand","initialProps","title","undefined","onClick","e","persist","propGetter","getToggleAllRowsExpandedProps","getIsSomeRowsExpanded","values","some","Boolean","id","getExpandedDepth","maxDepth","rowIds","splitId","split","Math","max","getExpandedRowModel","memo","getGroupedRowModel","expandRowsFn","rowModel","key","debug","debugAll","debugTable","createRow","toggleExpanded","getIsExpanded","getCanExpand","stopPropagation"],"mappings":"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"}