@tanstack/table-core 9.0.0-beta.11 → 9.0.0-beta.12

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 (44) hide show
  1. package/dist/core/columns/coreColumnsFeature.utils.cjs.map +1 -1
  2. package/dist/core/columns/coreColumnsFeature.utils.js.map +1 -1
  3. package/dist/core/headers/buildHeaderGroups.cjs.map +1 -1
  4. package/dist/core/headers/buildHeaderGroups.js.map +1 -1
  5. package/dist/features/column-filtering/columnFilteringFeature.utils.cjs.map +1 -1
  6. package/dist/features/column-filtering/columnFilteringFeature.utils.js.map +1 -1
  7. package/dist/features/column-pinning/columnPinningFeature.utils.cjs.map +1 -1
  8. package/dist/features/column-pinning/columnPinningFeature.utils.d.cts +3 -2
  9. package/dist/features/column-pinning/columnPinningFeature.utils.d.ts +3 -2
  10. package/dist/features/column-pinning/columnPinningFeature.utils.js.map +1 -1
  11. package/dist/features/column-resizing/columnResizingFeature.types.d.cts +1 -4
  12. package/dist/features/column-resizing/columnResizingFeature.types.d.ts +1 -4
  13. package/dist/features/global-filtering/globalFilteringFeature.utils.cjs.map +1 -1
  14. package/dist/features/global-filtering/globalFilteringFeature.utils.js.map +1 -1
  15. package/dist/helpers/columnHelper.cjs.map +1 -1
  16. package/dist/helpers/columnHelper.d.cts +2 -2
  17. package/dist/helpers/columnHelper.d.ts +2 -2
  18. package/dist/helpers/columnHelper.js.map +1 -1
  19. package/dist/types/Column.d.cts +2 -2
  20. package/dist/types/Column.d.ts +2 -2
  21. package/dist/types/HeaderGroup.d.cts +1 -1
  22. package/dist/types/HeaderGroup.d.ts +1 -1
  23. package/dist/types/RowModel.d.cts +1 -1
  24. package/dist/types/RowModel.d.ts +1 -1
  25. package/dist/types/RowModelFns.d.cts +1 -1
  26. package/dist/types/RowModelFns.d.ts +1 -1
  27. package/dist/types/Table.d.cts +2 -11
  28. package/dist/types/Table.d.ts +2 -11
  29. package/dist/types/TableState.d.cts +1 -1
  30. package/dist/types/TableState.d.ts +1 -1
  31. package/package.json +1 -1
  32. package/src/core/columns/coreColumnsFeature.utils.ts +1 -1
  33. package/src/core/headers/buildHeaderGroups.ts +3 -1
  34. package/src/features/column-filtering/columnFilteringFeature.utils.ts +1 -1
  35. package/src/features/column-pinning/columnPinningFeature.utils.ts +6 -14
  36. package/src/features/column-resizing/columnResizingFeature.types.ts +1 -4
  37. package/src/features/global-filtering/globalFilteringFeature.utils.ts +1 -1
  38. package/src/helpers/columnHelper.ts +4 -4
  39. package/src/types/Column.ts +4 -4
  40. package/src/types/HeaderGroup.ts +4 -4
  41. package/src/types/RowModel.ts +5 -5
  42. package/src/types/RowModelFns.ts +5 -5
  43. package/src/types/Table.ts +11 -32
  44. package/src/types/TableState.ts +15 -1
@@ -1 +1 @@
1
- {"version":3,"file":"columnPinningFeature.utils.js","names":[],"sources":["../../../src/features/column-pinning/columnPinningFeature.utils.ts"],"sourcesContent":["import {\n column_getIsVisible,\n row_getVisibleCells,\n row_getVisibleCellsByColumnId,\n table_getVisibleLeafColumns,\n} from '../column-visibility/columnVisibilityFeature.utils'\nimport { buildHeaderGroups } from '../../core/headers/buildHeaderGroups'\nimport { callMemoOrStaticFn, cloneState } from '../../utils'\nimport type { Header } from '../../types/Header'\nimport type { HeaderGroup } from '../../types/HeaderGroup'\nimport type { Cell } from '../../types/Cell'\nimport type { Row } from '../../types/Row'\nimport type { CellData, RowData, Updater } from '../../types/type-utils'\nimport type { TableFeatures } from '../../types/TableFeatures'\nimport type { Table_Internal } from '../../types/Table'\nimport type { Column_Internal } from '../../types/Column'\nimport type {\n ColumnPinningPosition,\n ColumnPinningState,\n} from './columnPinningFeature.types'\n\n// State\n\n/**\n * Creates the default column pinning state.\n *\n * Both pinning regions start empty. Reset APIs use this value when\n * `defaultState` is `true`.\n *\n * @example\n * ```ts\n * const pinning = getDefaultColumnPinningState()\n * ```\n */\nexport function getDefaultColumnPinningState(): ColumnPinningState {\n return {\n left: [],\n right: [],\n }\n}\n\n// Column APIs\n\n/**\n * Moves this column's leaf column ids into a pinning region.\n *\n * Pinning a group column pins all of its leaves. The leaf ids are first removed\n * from both regions, then appended to the requested `'left'` or `'right'`\n * region. Passing `false` unpins them back to the center.\n *\n * @example\n * ```ts\n * column_pin(column, 'left')\n * ```\n */\nexport function column_pin<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(\n column: Column_Internal<TFeatures, TData, TValue>,\n position: ColumnPinningPosition,\n) {\n // Single pass: collect non-empty leaf-column ids.\n const leafColumns = column.getLeafColumns()\n const columnIds: Array<string> = []\n for (let i = 0; i < leafColumns.length; i++) {\n const id = leafColumns[i]!.id\n if (id) columnIds.push(id)\n }\n\n table_setColumnPinning(column.table, (old) => {\n if (position === 'right') {\n return {\n left: old.left.filter((d) => !columnIds.includes(d)),\n right: [\n ...old.right.filter((d) => !columnIds.includes(d)),\n ...columnIds,\n ],\n }\n }\n\n if (position === 'left') {\n return {\n left: [...old.left.filter((d) => !columnIds.includes(d)), ...columnIds],\n right: old.right.filter((d) => !columnIds.includes(d)),\n }\n }\n\n return {\n left: old.left.filter((d) => !columnIds.includes(d)),\n right: old.right.filter((d) => !columnIds.includes(d)),\n }\n })\n}\n\n/**\n * Checks whether this column or any of its leaf columns can be pinned.\n *\n * Column-level `enablePinning` and table `enableColumnPinning` both default to\n * `true`; at least one leaf column must allow pinning.\n *\n * @example\n * ```ts\n * const canPin = column_getCanPin(column)\n * ```\n */\nexport function column_getCanPin<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(column: Column_Internal<TFeatures, TData, TValue>) {\n const leafColumns = column.getLeafColumns() as Array<\n Column_Internal<TFeatures, TData, TValue>\n >\n\n return leafColumns.some(\n (leafColumn) =>\n (leafColumn.columnDef.enablePinning ?? true) &&\n (column.table.options.enableColumnPinning ?? true),\n )\n}\n\n/**\n * Reads this column's current pinning region.\n *\n * Group columns report `'left'` or `'right'` when any leaf column is pinned in\n * that region. Unpinned columns return `false`.\n *\n * @example\n * ```ts\n * const position = column_getIsPinned(column)\n * ```\n */\nexport function column_getIsPinned<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(\n column: Column_Internal<TFeatures, TData, TValue>,\n): ColumnPinningPosition | false {\n const leafColumnIds = column.getLeafColumns().map((d) => d.id)\n\n const { left, right } =\n column.table.atoms.columnPinning?.get() ?? getDefaultColumnPinningState()\n\n const isLeft = leafColumnIds.some((d) => left.includes(d))\n const isRight = leafColumnIds.some((d) => right.includes(d))\n\n return isLeft ? 'left' : isRight ? 'right' : false\n}\n\n/**\n * Finds this column's index within its pinned region.\n *\n * Unpinned columns return `0`; pinned columns return their position in\n * `state.columnPinning.left` or `state.columnPinning.right`.\n *\n * @example\n * ```ts\n * const index = column_getPinnedIndex(column)\n * ```\n */\nexport function column_getPinnedIndex<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(column: Column_Internal<TFeatures, TData, TValue>) {\n const position = column_getIsPinned(column)\n\n return position\n ? (column.table.atoms.columnPinning?.get()?.[position].indexOf(column.id) ??\n -1)\n : 0\n}\n\n// Row APIs\n\n/**\n * Collects visible cells whose columns are not pinned left or right.\n *\n * The result preserves the row's visible-cell order for center columns.\n *\n * @example\n * ```ts\n * const centerCells = row_getCenterVisibleCells(row)\n * ```\n */\nexport function row_getCenterVisibleCells<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(row: Row<TFeatures, TData>) {\n const allCells = callMemoOrStaticFn(\n row,\n 'getVisibleCells',\n row_getVisibleCells,\n )\n const { left, right } =\n row.table.atoms.columnPinning?.get() ?? getDefaultColumnPinningState()\n const leftAndRight: Array<string> = [...left, ...right]\n return allCells.filter((d) => !leftAndRight.includes(d.column.id))\n}\n\n/**\n * Collects visible cells for columns pinned to the left region.\n *\n * Cells are returned in `state.columnPinning.left` order and are marked with\n * `cell.position = 'left'`.\n *\n * @example\n * ```ts\n * const leftCells = row_getLeftVisibleCells(row)\n * ```\n */\nexport function row_getLeftVisibleCells<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(row: Row<TFeatures, TData>): Array<Cell<TFeatures, TData, unknown>> {\n const { left } =\n row.table.atoms.columnPinning?.get() ?? getDefaultColumnPinningState()\n if (!left.length) return []\n const allVisibleCells = callMemoOrStaticFn(\n row,\n 'getVisibleCellsByColumnId',\n row_getVisibleCellsByColumnId,\n )\n const cells: Array<Cell<TFeatures, TData, unknown>> = []\n for (let i = 0; i < left.length; i++) {\n const columnId = left[i]!\n const cell = allVisibleCells[columnId]\n if (cell) {\n // Assign position property directly to preserve prototype chain\n ;(cell as any).position = 'left'\n cells.push(cell)\n }\n }\n return cells\n}\n\n/**\n * Collects visible cells for columns pinned to the right region.\n *\n * Cells are returned in `state.columnPinning.right` order and are marked with\n * `cell.position = 'right'`.\n *\n * @example\n * ```ts\n * const rightCells = row_getRightVisibleCells(row)\n * ```\n */\nexport function row_getRightVisibleCells<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(row: Row<TFeatures, TData>) {\n const { right } =\n row.table.atoms.columnPinning?.get() ?? getDefaultColumnPinningState()\n if (!right.length) return [] as Array<Cell<TFeatures, TData, unknown>>\n const allVisibleCells = callMemoOrStaticFn(\n row,\n 'getVisibleCellsByColumnId',\n row_getVisibleCellsByColumnId,\n )\n const cells: Array<Cell<TFeatures, TData, unknown>> = []\n for (let i = 0; i < right.length; i++) {\n const columnId = right[i]!\n const cell = allVisibleCells[columnId]\n if (cell) {\n // Assign position property directly to preserve prototype chain\n ;(cell as any).position = 'right'\n cells.push(cell)\n }\n }\n return cells\n}\n\n// Table APIs\n\n/**\n * Routes a column pinning updater through the table's pinning change handler.\n *\n * The updater may be a next `{ left, right }` state or a function of the\n * previous state, matching the instance `table.setColumnPinning` behavior.\n *\n * @example\n * ```ts\n * table_setColumnPinning(table, (old) => ({ ...old, left: ['select'] }))\n * ```\n */\nexport function table_setColumnPinning<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n table: Table_Internal<TFeatures, TData>,\n updater: Updater<ColumnPinningState>,\n) {\n table.options.onColumnPinningChange?.(updater)\n}\n\n/**\n * Resets `columnPinning` to the configured initial state or feature default.\n *\n * With no argument, the reset clones `table.initialState.columnPinning` when it\n * exists. Passing `true` ignores initial state and resets to empty left/right\n * arrays.\n *\n * @example\n * ```ts\n * table_resetColumnPinning(table)\n * table_resetColumnPinning(table, true)\n * ```\n */\nexport function table_resetColumnPinning<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>, defaultState?: boolean) {\n table_setColumnPinning(\n table,\n defaultState\n ? getDefaultColumnPinningState()\n : cloneState(\n table.initialState.columnPinning ?? getDefaultColumnPinningState(),\n ),\n )\n}\n\n/**\n * Checks whether any columns are pinned.\n *\n * Omit `position` to check both sides, or pass `'left'`/`'right'` to inspect a\n * single pinning region.\n *\n * @example\n * ```ts\n * const hasPinnedColumns = table_getIsSomeColumnsPinned(table)\n * ```\n */\nexport function table_getIsSomeColumnsPinned<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>, position?: ColumnPinningPosition) {\n const pinningState = table.atoms.columnPinning?.get()\n\n if (!position) {\n return Boolean(pinningState?.left.length || pinningState?.right.length)\n }\n return Boolean(pinningState?.[position].length)\n}\n\n// header groups\n\n/**\n * Builds header groups for visible columns pinned to the left region.\n *\n * The leaf columns are read in `state.columnPinning.left` order and then passed\n * through the same header-group builder as the unpinned table.\n *\n * @example\n * ```ts\n * const headerGroups = table_getLeftHeaderGroups(table)\n * ```\n */\nexport function table_getLeftHeaderGroups<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n const allColumns = table.getAllColumns()\n const leafColumnsById = table.getAllLeafColumnsById() as Record<\n string,\n Column_Internal<TFeatures, TData, unknown>\n >\n const { left } =\n table.atoms.columnPinning?.get() ?? getDefaultColumnPinningState()\n\n const orderedLeafColumns: Array<Column_Internal<TFeatures, TData, unknown>> =\n []\n for (let i = 0; i < left.length; i++) {\n const column = leafColumnsById[left[i]!]\n if (\n column &&\n callMemoOrStaticFn(column, 'getIsVisible', column_getIsVisible)\n ) {\n orderedLeafColumns.push(column)\n }\n }\n\n return buildHeaderGroups(allColumns, orderedLeafColumns, table, 'left')\n}\n\n/**\n * Builds header groups for visible columns pinned to the right region.\n *\n * The leaf columns are read in `state.columnPinning.right` order and then\n * passed through the same header-group builder as the unpinned table.\n *\n * @example\n * ```ts\n * const headerGroups = table_getRightHeaderGroups(table)\n * ```\n */\nexport function table_getRightHeaderGroups<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n const allColumns = table.getAllColumns()\n const leafColumnsById = table.getAllLeafColumnsById() as Record<\n string,\n Column_Internal<TFeatures, TData, unknown>\n >\n const { right } =\n table.atoms.columnPinning?.get() ?? getDefaultColumnPinningState()\n\n const orderedLeafColumns: Array<Column_Internal<TFeatures, TData, unknown>> =\n []\n for (let i = 0; i < right.length; i++) {\n const column = leafColumnsById[right[i]!]\n if (\n column &&\n callMemoOrStaticFn(column, 'getIsVisible', column_getIsVisible)\n ) {\n orderedLeafColumns.push(column)\n }\n }\n\n return buildHeaderGroups(allColumns, orderedLeafColumns, table, 'right')\n}\n\n/**\n * Builds header groups for visible columns that are not pinned.\n *\n * Left- and right-pinned column ids are removed from the visible leaf column\n * list before header groups are built for the center region.\n *\n * @example\n * ```ts\n * const headerGroups = table_getCenterHeaderGroups(table)\n * ```\n */\nexport function table_getCenterHeaderGroups<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n table: Table_Internal<TFeatures, TData>,\n): Array<HeaderGroup<TFeatures, TData>> {\n const allColumns = table.getAllColumns()\n let leafColumns = callMemoOrStaticFn(\n table,\n 'getVisibleLeafColumns',\n table_getVisibleLeafColumns,\n ) as unknown as Array<Column_Internal<TFeatures, TData, unknown>>\n const { left, right } =\n table.atoms.columnPinning?.get() ?? getDefaultColumnPinningState()\n const leftAndRight: Array<string> = [...left, ...right]\n\n leafColumns = leafColumns.filter(\n (column) => !leftAndRight.includes(column.id),\n )\n return buildHeaderGroups(allColumns, leafColumns, table, 'center')\n}\n\n// footer groups\n\n/**\n * Builds footer groups for the left pinned region.\n *\n * Footer groups reuse the left header groups in reverse order.\n *\n * @example\n * ```ts\n * const footerGroups = table_getLeftFooterGroups(table)\n * ```\n */\nexport function table_getLeftFooterGroups<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n const headerGroups = callMemoOrStaticFn(\n table,\n 'getLeftHeaderGroups',\n table_getLeftHeaderGroups,\n )\n return [...headerGroups].reverse()\n}\n\n/**\n * Builds footer groups for the right pinned region.\n *\n * Footer groups reuse the right header groups in reverse order.\n *\n * @example\n * ```ts\n * const footerGroups = table_getRightFooterGroups(table)\n * ```\n */\nexport function table_getRightFooterGroups<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n const headerGroups = callMemoOrStaticFn(\n table,\n 'getRightHeaderGroups',\n table_getRightHeaderGroups,\n )\n return [...headerGroups].reverse()\n}\n\n/**\n * Builds footer groups for the center, unpinned region.\n *\n * Footer groups reuse the center header groups in reverse order.\n *\n * @example\n * ```ts\n * const footerGroups = table_getCenterFooterGroups(table)\n * ```\n */\nexport function table_getCenterFooterGroups<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n const headerGroups = callMemoOrStaticFn(\n table,\n 'getCenterHeaderGroups',\n table_getCenterHeaderGroups,\n )\n return [...headerGroups].reverse()\n}\n\n// flat headers\n\n/**\n * Flattens every header from the left pinned header groups.\n *\n * Parent headers and placeholder headers are included.\n *\n * @example\n * ```ts\n * const headers = table_getLeftFlatHeaders(table)\n * ```\n */\nexport function table_getLeftFlatHeaders<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n const leftHeaderGroups = callMemoOrStaticFn(\n table,\n 'getLeftHeaderGroups',\n table_getLeftHeaderGroups,\n )\n const result: Array<Header<TFeatures, TData, unknown>> = []\n for (let i = 0; i < leftHeaderGroups.length; i++) {\n const headers = leftHeaderGroups[i]!.headers\n for (let j = 0; j < headers.length; j++) {\n result.push(headers[j]!)\n }\n }\n return result\n}\n\n/**\n * Flattens every header from the right pinned header groups.\n *\n * Parent headers and placeholder headers are included.\n *\n * @example\n * ```ts\n * const headers = table_getRightFlatHeaders(table)\n * ```\n */\nexport function table_getRightFlatHeaders<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n const rightHeaderGroups = callMemoOrStaticFn(\n table,\n 'getRightHeaderGroups',\n table_getRightHeaderGroups,\n )\n const result: Array<Header<TFeatures, TData, unknown>> = []\n for (let i = 0; i < rightHeaderGroups.length; i++) {\n const headers = rightHeaderGroups[i]!.headers\n for (let j = 0; j < headers.length; j++) {\n result.push(headers[j]!)\n }\n }\n return result\n}\n\n/**\n * Flattens every header from the center header groups.\n *\n * Parent headers and placeholder headers are included.\n *\n * @example\n * ```ts\n * const headers = table_getCenterFlatHeaders(table)\n * ```\n */\nexport function table_getCenterFlatHeaders<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n const centerHeaderGroups = callMemoOrStaticFn(\n table,\n 'getCenterHeaderGroups',\n table_getCenterHeaderGroups,\n )\n const result: Array<Header<TFeatures, TData, unknown>> = []\n for (let i = 0; i < centerHeaderGroups.length; i++) {\n const headers = centerHeaderGroups[i]!.headers\n for (let j = 0; j < headers.length; j++) {\n result.push(headers[j]!)\n }\n }\n return result\n}\n\n// leaf headers\n\n/**\n * Collects leaf headers for the left pinned region.\n *\n * Parent headers are filtered out from the left flat header list.\n *\n * @example\n * ```ts\n * const headers = table_getLeftLeafHeaders(table)\n * ```\n */\nexport function table_getLeftLeafHeaders<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n return callMemoOrStaticFn(\n table,\n 'getLeftFlatHeaders',\n table_getLeftFlatHeaders,\n ).filter((header) => !header.subHeaders.length)\n}\n\n/**\n * Collects leaf headers for the right pinned region.\n *\n * Parent headers are filtered out from the right flat header list.\n *\n * @example\n * ```ts\n * const headers = table_getRightLeafHeaders(table)\n * ```\n */\nexport function table_getRightLeafHeaders<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n return callMemoOrStaticFn(\n table,\n 'getRightFlatHeaders',\n table_getRightFlatHeaders,\n ).filter((header) => !header.subHeaders.length)\n}\n\n/**\n * Collects leaf headers for the center, unpinned region.\n *\n * Parent headers are filtered out from the center flat header list.\n *\n * @example\n * ```ts\n * const headers = table_getCenterLeafHeaders(table)\n * ```\n */\nexport function table_getCenterLeafHeaders<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n return callMemoOrStaticFn(\n table,\n 'getCenterFlatHeaders',\n table_getCenterFlatHeaders,\n ).filter((header) => !header.subHeaders.length)\n}\n\n// leaf columns\n\n/**\n * Resolves leaf columns pinned to the left region.\n *\n * The result follows `state.columnPinning.left` order and skips stale ids that\n * no longer correspond to a leaf column.\n *\n * @example\n * ```ts\n * const columns = table_getLeftLeafColumns(table)\n * ```\n */\nexport function table_getLeftLeafColumns<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n const { left } =\n table.atoms.columnPinning?.get() ?? getDefaultColumnPinningState()\n const leafColumnsById = table.getAllLeafColumnsById()\n const result: Array<Column_Internal<TFeatures, TData, unknown>> = []\n for (let i = 0; i < left.length; i++) {\n const column = leafColumnsById[left[i]!]\n if (column) result.push(column)\n }\n return result\n}\n\n/**\n * Resolves leaf columns pinned to the right region.\n *\n * The result follows `state.columnPinning.right` order and skips stale ids that\n * no longer correspond to a leaf column.\n *\n * @example\n * ```ts\n * const columns = table_getRightLeafColumns(table)\n * ```\n */\nexport function table_getRightLeafColumns<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n const { right } =\n table.atoms.columnPinning?.get() ?? getDefaultColumnPinningState()\n const leafColumnsById = table.getAllLeafColumnsById()\n const result: Array<Column_Internal<TFeatures, TData, unknown>> = []\n for (let i = 0; i < right.length; i++) {\n const column = leafColumnsById[right[i]!]\n if (column) result.push(column)\n }\n return result\n}\n\n/**\n * Resolves leaf columns that are not pinned to either side.\n *\n * Left- and right-pinned ids are removed from `table.getAllLeafColumns()`.\n *\n * @example\n * ```ts\n * const columns = table_getCenterLeafColumns(table)\n * ```\n */\nexport function table_getCenterLeafColumns<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n const { left, right } =\n table.atoms.columnPinning?.get() ?? getDefaultColumnPinningState()\n const leftAndRight: Array<string> = [...left, ...right]\n return table.getAllLeafColumns().filter((d) => !leftAndRight.includes(d.id))\n}\n\n/**\n * Resolves leaf columns for a requested pinning region.\n *\n * Pass `'left'`, `'center'`, or `'right'` for a partition, or pass `false` to\n * read all leaf columns without partitioning.\n *\n * @example\n * ```ts\n * const columns = table_getPinnedLeafColumns(table, 'center')\n * ```\n */\nexport function table_getPinnedLeafColumns<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n table: Table_Internal<TFeatures, TData>,\n position: ColumnPinningPosition | 'center',\n) {\n return !position\n ? table.getAllLeafColumns()\n : position === 'left'\n ? callMemoOrStaticFn(\n table,\n 'getLeftLeafColumns',\n table_getLeftLeafColumns,\n )\n : position === 'right'\n ? callMemoOrStaticFn(\n table,\n 'getRightLeafColumns',\n table_getRightLeafColumns,\n )\n : callMemoOrStaticFn(\n table,\n 'getCenterLeafColumns',\n table_getCenterLeafColumns,\n )\n}\n\n// visible leaf columns\n\n/**\n * Resolves visible leaf columns pinned to the left region.\n *\n * Hidden pinned columns are filtered out after the left pin order is applied.\n *\n * @example\n * ```ts\n * const columns = table_getLeftVisibleLeafColumns(table)\n * ```\n */\nexport function table_getLeftVisibleLeafColumns<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n return callMemoOrStaticFn(\n table,\n 'getLeftLeafColumns',\n table_getLeftLeafColumns,\n ).filter((column) =>\n callMemoOrStaticFn(column, 'getIsVisible', column_getIsVisible),\n )\n}\n\n/**\n * Resolves visible leaf columns pinned to the right region.\n *\n * Hidden pinned columns are filtered out after the right pin order is applied.\n *\n * @example\n * ```ts\n * const columns = table_getRightVisibleLeafColumns(table)\n * ```\n */\nexport function table_getRightVisibleLeafColumns<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n return callMemoOrStaticFn(\n table,\n 'getRightLeafColumns',\n table_getRightLeafColumns,\n ).filter((column) =>\n callMemoOrStaticFn(column, 'getIsVisible', column_getIsVisible),\n )\n}\n\n/**\n * Resolves visible leaf columns that are not pinned.\n *\n * This is the center partition used by layouts that render pinned columns\n * separately from the scrollable middle region.\n *\n * @example\n * ```ts\n * const columns = table_getCenterVisibleLeafColumns(table)\n * ```\n */\nexport function table_getCenterVisibleLeafColumns<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n return callMemoOrStaticFn(\n table,\n 'getCenterLeafColumns',\n table_getCenterLeafColumns,\n ).filter((column) =>\n callMemoOrStaticFn(column, 'getIsVisible', column_getIsVisible),\n )\n}\n\n/**\n * Resolves visible leaf columns for a requested pinning region.\n *\n * Omit `position` to get all visible leaf columns, or pass `'left'`, `'center'`,\n * or `'right'` to get one partition.\n *\n * @example\n * ```ts\n * const columns = table_getPinnedVisibleLeafColumns(table, 'left')\n * ```\n */\nexport function table_getPinnedVisibleLeafColumns<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n table: Table_Internal<TFeatures, TData>,\n position?: ColumnPinningPosition | 'center',\n) {\n return !position\n ? callMemoOrStaticFn(\n table,\n 'getVisibleLeafColumns',\n table_getVisibleLeafColumns,\n )\n : position === 'left'\n ? callMemoOrStaticFn(\n table,\n 'getLeftVisibleLeafColumns',\n table_getLeftVisibleLeafColumns,\n )\n : position === 'right'\n ? callMemoOrStaticFn(\n table,\n 'getRightVisibleLeafColumns',\n table_getRightVisibleLeafColumns,\n )\n : callMemoOrStaticFn(\n table,\n 'getCenterVisibleLeafColumns',\n table_getCenterVisibleLeafColumns,\n )\n}\n"],"mappings":"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CX,mBACE,OACA,sBACA,wBACF,IACA,aAAa,UACX,mBACE,OACA,uBACA,yBACF,IACA,mBACE,OACA,wBACA,0BACF;AACV;;;;;;;;;;;AAcA,SAAgB,gCAGd,OAAyC;CACzC,OAAO,mBACL,OACA,sBACA,wBACF,CAAC,CAAC,QAAQ,WACR,mBAAmB,QAAQ,gBAAgB,mBAAmB,CAChE;AACF;;;;;;;;;;;AAYA,SAAgB,iCAGd,OAAyC;CACzC,OAAO,mBACL,OACA,uBACA,yBACF,CAAC,CAAC,QAAQ,WACR,mBAAmB,QAAQ,gBAAgB,mBAAmB,CAChE;AACF;;;;;;;;;;;;AAaA,SAAgB,kCAGd,OAAyC;CACzC,OAAO,mBACL,OACA,wBACA,0BACF,CAAC,CAAC,QAAQ,WACR,mBAAmB,QAAQ,gBAAgB,mBAAmB,CAChE;AACF;;;;;;;;;;;;AAaA,SAAgB,kCAId,OACA,UACA;CACA,OAAO,CAAC,WACJ,mBACE,OACA,yBACA,2BACF,IACA,aAAa,SACX,mBACE,OACA,6BACA,+BACF,IACA,aAAa,UACX,mBACE,OACA,8BACA,gCACF,IACA,mBACE,OACA,+BACA,iCACF;AACV"}
1
+ {"version":3,"file":"columnPinningFeature.utils.js","names":[],"sources":["../../../src/features/column-pinning/columnPinningFeature.utils.ts"],"sourcesContent":["import {\n column_getIsVisible,\n row_getVisibleCells,\n row_getVisibleCellsByColumnId,\n table_getVisibleLeafColumns,\n} from '../column-visibility/columnVisibilityFeature.utils'\nimport { buildHeaderGroups } from '../../core/headers/buildHeaderGroups'\nimport { callMemoOrStaticFn, cloneState } from '../../utils'\nimport type { Header } from '../../types/Header'\nimport type { HeaderGroup } from '../../types/HeaderGroup'\nimport type { Cell } from '../../types/Cell'\nimport type { Row } from '../../types/Row'\nimport type { CellData, RowData, Updater } from '../../types/type-utils'\nimport type { TableFeatures } from '../../types/TableFeatures'\nimport type { Table_Internal } from '../../types/Table'\nimport type { Column, Column_Internal } from '../../types/Column'\nimport type {\n ColumnPinningPosition,\n ColumnPinningState,\n} from './columnPinningFeature.types'\n\n// State\n\n/**\n * Creates the default column pinning state.\n *\n * Both pinning regions start empty. Reset APIs use this value when\n * `defaultState` is `true`.\n *\n * @example\n * ```ts\n * const pinning = getDefaultColumnPinningState()\n * ```\n */\nexport function getDefaultColumnPinningState(): ColumnPinningState {\n return {\n left: [],\n right: [],\n }\n}\n\n// Column APIs\n\n/**\n * Moves this column's leaf column ids into a pinning region.\n *\n * Pinning a group column pins all of its leaves. The leaf ids are first removed\n * from both regions, then appended to the requested `'left'` or `'right'`\n * region. Passing `false` unpins them back to the center.\n *\n * @example\n * ```ts\n * column_pin(column, 'left')\n * ```\n */\nexport function column_pin<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(\n column: Column_Internal<TFeatures, TData, TValue>,\n position: ColumnPinningPosition,\n) {\n // Single pass: collect non-empty leaf-column ids.\n const leafColumns = column.getLeafColumns()\n const columnIds: Array<string> = []\n for (let i = 0; i < leafColumns.length; i++) {\n const id = leafColumns[i]!.id\n if (id) columnIds.push(id)\n }\n\n table_setColumnPinning(column.table, (old) => {\n if (position === 'right') {\n return {\n left: old.left.filter((d) => !columnIds.includes(d)),\n right: [\n ...old.right.filter((d) => !columnIds.includes(d)),\n ...columnIds,\n ],\n }\n }\n\n if (position === 'left') {\n return {\n left: [...old.left.filter((d) => !columnIds.includes(d)), ...columnIds],\n right: old.right.filter((d) => !columnIds.includes(d)),\n }\n }\n\n return {\n left: old.left.filter((d) => !columnIds.includes(d)),\n right: old.right.filter((d) => !columnIds.includes(d)),\n }\n })\n}\n\n/**\n * Checks whether this column or any of its leaf columns can be pinned.\n *\n * Column-level `enablePinning` and table `enableColumnPinning` both default to\n * `true`; at least one leaf column must allow pinning.\n *\n * @example\n * ```ts\n * const canPin = column_getCanPin(column)\n * ```\n */\nexport function column_getCanPin<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(column: Column_Internal<TFeatures, TData, TValue>) {\n const leafColumns = column.getLeafColumns() as Array<\n Column_Internal<TFeatures, TData, TValue>\n >\n\n return leafColumns.some(\n (leafColumn) =>\n (leafColumn.columnDef.enablePinning ?? true) &&\n (column.table.options.enableColumnPinning ?? true),\n )\n}\n\n/**\n * Reads this column's current pinning region.\n *\n * Group columns report `'left'` or `'right'` when any leaf column is pinned in\n * that region. Unpinned columns return `false`.\n *\n * @example\n * ```ts\n * const position = column_getIsPinned(column)\n * ```\n */\nexport function column_getIsPinned<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(\n column: Column_Internal<TFeatures, TData, TValue>,\n): ColumnPinningPosition | false {\n const leafColumnIds = column.getLeafColumns().map((d) => d.id)\n\n const { left, right } =\n column.table.atoms.columnPinning?.get() ?? getDefaultColumnPinningState()\n\n const isLeft = leafColumnIds.some((d) => left.includes(d))\n const isRight = leafColumnIds.some((d) => right.includes(d))\n\n return isLeft ? 'left' : isRight ? 'right' : false\n}\n\n/**\n * Finds this column's index within its pinned region.\n *\n * Unpinned columns return `0`; pinned columns return their position in\n * `state.columnPinning.left` or `state.columnPinning.right`.\n *\n * @example\n * ```ts\n * const index = column_getPinnedIndex(column)\n * ```\n */\nexport function column_getPinnedIndex<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(column: Column_Internal<TFeatures, TData, TValue>) {\n const position = column_getIsPinned(column)\n\n return position\n ? (column.table.atoms.columnPinning?.get()?.[position].indexOf(column.id) ??\n -1)\n : 0\n}\n\n// Row APIs\n\n/**\n * Collects visible cells whose columns are not pinned left or right.\n *\n * The result preserves the row's visible-cell order for center columns.\n *\n * @example\n * ```ts\n * const centerCells = row_getCenterVisibleCells(row)\n * ```\n */\nexport function row_getCenterVisibleCells<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(row: Row<TFeatures, TData>) {\n const allCells = callMemoOrStaticFn(\n row,\n 'getVisibleCells',\n row_getVisibleCells,\n )\n const { left, right } =\n row.table.atoms.columnPinning?.get() ?? getDefaultColumnPinningState()\n const leftAndRight: Array<string> = [...left, ...right]\n return allCells.filter((d) => !leftAndRight.includes(d.column.id))\n}\n\n/**\n * Collects visible cells for columns pinned to the left region.\n *\n * Cells are returned in `state.columnPinning.left` order and are marked with\n * `cell.position = 'left'`.\n *\n * @example\n * ```ts\n * const leftCells = row_getLeftVisibleCells(row)\n * ```\n */\nexport function row_getLeftVisibleCells<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(row: Row<TFeatures, TData>): Array<Cell<TFeatures, TData, unknown>> {\n const { left } =\n row.table.atoms.columnPinning?.get() ?? getDefaultColumnPinningState()\n if (!left.length) return []\n const allVisibleCells = callMemoOrStaticFn(\n row,\n 'getVisibleCellsByColumnId',\n row_getVisibleCellsByColumnId,\n )\n const cells: Array<Cell<TFeatures, TData, unknown>> = []\n for (let i = 0; i < left.length; i++) {\n const columnId = left[i]!\n const cell = allVisibleCells[columnId]\n if (cell) {\n // Assign position property directly to preserve prototype chain\n ;(cell as any).position = 'left'\n cells.push(cell)\n }\n }\n return cells\n}\n\n/**\n * Collects visible cells for columns pinned to the right region.\n *\n * Cells are returned in `state.columnPinning.right` order and are marked with\n * `cell.position = 'right'`.\n *\n * @example\n * ```ts\n * const rightCells = row_getRightVisibleCells(row)\n * ```\n */\nexport function row_getRightVisibleCells<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(row: Row<TFeatures, TData>) {\n const { right } =\n row.table.atoms.columnPinning?.get() ?? getDefaultColumnPinningState()\n if (!right.length) return [] as Array<Cell<TFeatures, TData, unknown>>\n const allVisibleCells = callMemoOrStaticFn(\n row,\n 'getVisibleCellsByColumnId',\n row_getVisibleCellsByColumnId,\n )\n const cells: Array<Cell<TFeatures, TData, unknown>> = []\n for (let i = 0; i < right.length; i++) {\n const columnId = right[i]!\n const cell = allVisibleCells[columnId]\n if (cell) {\n // Assign position property directly to preserve prototype chain\n ;(cell as any).position = 'right'\n cells.push(cell)\n }\n }\n return cells\n}\n\n// Table APIs\n\n/**\n * Routes a column pinning updater through the table's pinning change handler.\n *\n * The updater may be a next `{ left, right }` state or a function of the\n * previous state, matching the instance `table.setColumnPinning` behavior.\n *\n * @example\n * ```ts\n * table_setColumnPinning(table, (old) => ({ ...old, left: ['select'] }))\n * ```\n */\nexport function table_setColumnPinning<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n table: Table_Internal<TFeatures, TData>,\n updater: Updater<ColumnPinningState>,\n) {\n table.options.onColumnPinningChange?.(updater)\n}\n\n/**\n * Resets `columnPinning` to the configured initial state or feature default.\n *\n * With no argument, the reset clones `table.initialState.columnPinning` when it\n * exists. Passing `true` ignores initial state and resets to empty left/right\n * arrays.\n *\n * @example\n * ```ts\n * table_resetColumnPinning(table)\n * table_resetColumnPinning(table, true)\n * ```\n */\nexport function table_resetColumnPinning<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>, defaultState?: boolean) {\n table_setColumnPinning(\n table,\n defaultState\n ? getDefaultColumnPinningState()\n : cloneState(\n table.initialState.columnPinning ?? getDefaultColumnPinningState(),\n ),\n )\n}\n\n/**\n * Checks whether any columns are pinned.\n *\n * Omit `position` to check both sides, or pass `'left'`/`'right'` to inspect a\n * single pinning region.\n *\n * @example\n * ```ts\n * const hasPinnedColumns = table_getIsSomeColumnsPinned(table)\n * ```\n */\nexport function table_getIsSomeColumnsPinned<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>, position?: ColumnPinningPosition) {\n const pinningState = table.atoms.columnPinning?.get()\n\n if (!position) {\n return Boolean(pinningState?.left.length || pinningState?.right.length)\n }\n return Boolean(pinningState?.[position].length)\n}\n\n// header groups\n\n/**\n * Builds header groups for visible columns pinned to the left region.\n *\n * The leaf columns are read in `state.columnPinning.left` order and then passed\n * through the same header-group builder as the unpinned table.\n *\n * @example\n * ```ts\n * const headerGroups = table_getLeftHeaderGroups(table)\n * ```\n */\nexport function table_getLeftHeaderGroups<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n const allColumns = table.getAllColumns()\n const leafColumnsById = table.getAllLeafColumnsById()\n const { left } =\n table.atoms.columnPinning?.get() ?? getDefaultColumnPinningState()\n\n const orderedLeafColumns: Array<Column<TFeatures, TData, unknown>> = []\n for (let i = 0; i < left.length; i++) {\n const column = leafColumnsById[left[i]!]\n if (\n column &&\n callMemoOrStaticFn(column, 'getIsVisible', column_getIsVisible)\n ) {\n orderedLeafColumns.push(column)\n }\n }\n\n return buildHeaderGroups(allColumns, orderedLeafColumns, table, 'left')\n}\n\n/**\n * Builds header groups for visible columns pinned to the right region.\n *\n * The leaf columns are read in `state.columnPinning.right` order and then\n * passed through the same header-group builder as the unpinned table.\n *\n * @example\n * ```ts\n * const headerGroups = table_getRightHeaderGroups(table)\n * ```\n */\nexport function table_getRightHeaderGroups<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n const allColumns = table.getAllColumns()\n const leafColumnsById = table.getAllLeafColumnsById()\n const { right } =\n table.atoms.columnPinning?.get() ?? getDefaultColumnPinningState()\n\n const orderedLeafColumns: Array<Column<TFeatures, TData, unknown>> = []\n for (let i = 0; i < right.length; i++) {\n const column = leafColumnsById[right[i]!]\n if (\n column &&\n callMemoOrStaticFn(column, 'getIsVisible', column_getIsVisible)\n ) {\n orderedLeafColumns.push(column)\n }\n }\n\n return buildHeaderGroups(allColumns, orderedLeafColumns, table, 'right')\n}\n\n/**\n * Builds header groups for visible columns that are not pinned.\n *\n * Left- and right-pinned column ids are removed from the visible leaf column\n * list before header groups are built for the center region.\n *\n * @example\n * ```ts\n * const headerGroups = table_getCenterHeaderGroups(table)\n * ```\n */\nexport function table_getCenterHeaderGroups<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n table: Table_Internal<TFeatures, TData>,\n): Array<HeaderGroup<TFeatures, TData>> {\n const allColumns = table.getAllColumns()\n let leafColumns = callMemoOrStaticFn(\n table,\n 'getVisibleLeafColumns',\n table_getVisibleLeafColumns,\n )\n const { left, right } =\n table.atoms.columnPinning?.get() ?? getDefaultColumnPinningState()\n const leftAndRight: Array<string> = [...left, ...right]\n\n leafColumns = leafColumns.filter(\n (column) => !leftAndRight.includes(column.id),\n )\n return buildHeaderGroups(allColumns, leafColumns, table, 'center')\n}\n\n// footer groups\n\n/**\n * Builds footer groups for the left pinned region.\n *\n * Footer groups reuse the left header groups in reverse order.\n *\n * @example\n * ```ts\n * const footerGroups = table_getLeftFooterGroups(table)\n * ```\n */\nexport function table_getLeftFooterGroups<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n const headerGroups = callMemoOrStaticFn(\n table,\n 'getLeftHeaderGroups',\n table_getLeftHeaderGroups,\n )\n return [...headerGroups].reverse()\n}\n\n/**\n * Builds footer groups for the right pinned region.\n *\n * Footer groups reuse the right header groups in reverse order.\n *\n * @example\n * ```ts\n * const footerGroups = table_getRightFooterGroups(table)\n * ```\n */\nexport function table_getRightFooterGroups<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n const headerGroups = callMemoOrStaticFn(\n table,\n 'getRightHeaderGroups',\n table_getRightHeaderGroups,\n )\n return [...headerGroups].reverse()\n}\n\n/**\n * Builds footer groups for the center, unpinned region.\n *\n * Footer groups reuse the center header groups in reverse order.\n *\n * @example\n * ```ts\n * const footerGroups = table_getCenterFooterGroups(table)\n * ```\n */\nexport function table_getCenterFooterGroups<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n const headerGroups = callMemoOrStaticFn(\n table,\n 'getCenterHeaderGroups',\n table_getCenterHeaderGroups,\n )\n return [...headerGroups].reverse()\n}\n\n// flat headers\n\n/**\n * Flattens every header from the left pinned header groups.\n *\n * Parent headers and placeholder headers are included.\n *\n * @example\n * ```ts\n * const headers = table_getLeftFlatHeaders(table)\n * ```\n */\nexport function table_getLeftFlatHeaders<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n const leftHeaderGroups = callMemoOrStaticFn(\n table,\n 'getLeftHeaderGroups',\n table_getLeftHeaderGroups,\n )\n const result: Array<Header<TFeatures, TData, unknown>> = []\n for (let i = 0; i < leftHeaderGroups.length; i++) {\n const headers = leftHeaderGroups[i]!.headers\n for (let j = 0; j < headers.length; j++) {\n result.push(headers[j]!)\n }\n }\n return result\n}\n\n/**\n * Flattens every header from the right pinned header groups.\n *\n * Parent headers and placeholder headers are included.\n *\n * @example\n * ```ts\n * const headers = table_getRightFlatHeaders(table)\n * ```\n */\nexport function table_getRightFlatHeaders<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n const rightHeaderGroups = callMemoOrStaticFn(\n table,\n 'getRightHeaderGroups',\n table_getRightHeaderGroups,\n )\n const result: Array<Header<TFeatures, TData, unknown>> = []\n for (let i = 0; i < rightHeaderGroups.length; i++) {\n const headers = rightHeaderGroups[i]!.headers\n for (let j = 0; j < headers.length; j++) {\n result.push(headers[j]!)\n }\n }\n return result\n}\n\n/**\n * Flattens every header from the center header groups.\n *\n * Parent headers and placeholder headers are included.\n *\n * @example\n * ```ts\n * const headers = table_getCenterFlatHeaders(table)\n * ```\n */\nexport function table_getCenterFlatHeaders<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n const centerHeaderGroups = callMemoOrStaticFn(\n table,\n 'getCenterHeaderGroups',\n table_getCenterHeaderGroups,\n )\n const result: Array<Header<TFeatures, TData, unknown>> = []\n for (let i = 0; i < centerHeaderGroups.length; i++) {\n const headers = centerHeaderGroups[i]!.headers\n for (let j = 0; j < headers.length; j++) {\n result.push(headers[j]!)\n }\n }\n return result\n}\n\n// leaf headers\n\n/**\n * Collects leaf headers for the left pinned region.\n *\n * Parent headers are filtered out from the left flat header list.\n *\n * @example\n * ```ts\n * const headers = table_getLeftLeafHeaders(table)\n * ```\n */\nexport function table_getLeftLeafHeaders<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n return callMemoOrStaticFn(\n table,\n 'getLeftFlatHeaders',\n table_getLeftFlatHeaders,\n ).filter((header) => !header.subHeaders.length)\n}\n\n/**\n * Collects leaf headers for the right pinned region.\n *\n * Parent headers are filtered out from the right flat header list.\n *\n * @example\n * ```ts\n * const headers = table_getRightLeafHeaders(table)\n * ```\n */\nexport function table_getRightLeafHeaders<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n return callMemoOrStaticFn(\n table,\n 'getRightFlatHeaders',\n table_getRightFlatHeaders,\n ).filter((header) => !header.subHeaders.length)\n}\n\n/**\n * Collects leaf headers for the center, unpinned region.\n *\n * Parent headers are filtered out from the center flat header list.\n *\n * @example\n * ```ts\n * const headers = table_getCenterLeafHeaders(table)\n * ```\n */\nexport function table_getCenterLeafHeaders<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n return callMemoOrStaticFn(\n table,\n 'getCenterFlatHeaders',\n table_getCenterFlatHeaders,\n ).filter((header) => !header.subHeaders.length)\n}\n\n// leaf columns\n\n/**\n * Resolves leaf columns pinned to the left region.\n *\n * The result follows `state.columnPinning.left` order and skips stale ids that\n * no longer correspond to a leaf column.\n *\n * @example\n * ```ts\n * const columns = table_getLeftLeafColumns(table)\n * ```\n */\nexport function table_getLeftLeafColumns<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n const { left } =\n table.atoms.columnPinning?.get() ?? getDefaultColumnPinningState()\n const leafColumnsById = table.getAllLeafColumnsById()\n const result: Array<Column_Internal<TFeatures, TData, unknown>> = []\n for (let i = 0; i < left.length; i++) {\n const column = leafColumnsById[left[i]!]\n if (column) result.push(column)\n }\n return result\n}\n\n/**\n * Resolves leaf columns pinned to the right region.\n *\n * The result follows `state.columnPinning.right` order and skips stale ids that\n * no longer correspond to a leaf column.\n *\n * @example\n * ```ts\n * const columns = table_getRightLeafColumns(table)\n * ```\n */\nexport function table_getRightLeafColumns<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n const { right } =\n table.atoms.columnPinning?.get() ?? getDefaultColumnPinningState()\n const leafColumnsById = table.getAllLeafColumnsById()\n const result: Array<Column_Internal<TFeatures, TData, unknown>> = []\n for (let i = 0; i < right.length; i++) {\n const column = leafColumnsById[right[i]!]\n if (column) result.push(column)\n }\n return result\n}\n\n/**\n * Resolves leaf columns that are not pinned to either side.\n *\n * Left- and right-pinned ids are removed from `table.getAllLeafColumns()`.\n *\n * @example\n * ```ts\n * const columns = table_getCenterLeafColumns(table)\n * ```\n */\nexport function table_getCenterLeafColumns<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n const { left, right } =\n table.atoms.columnPinning?.get() ?? getDefaultColumnPinningState()\n const leftAndRight: Array<string> = [...left, ...right]\n return table.getAllLeafColumns().filter((d) => !leftAndRight.includes(d.id))\n}\n\n/**\n * Resolves leaf columns for a requested pinning region.\n *\n * Pass `'left'`, `'center'`, or `'right'` for a partition, or pass `false` to\n * read all leaf columns without partitioning.\n *\n * @example\n * ```ts\n * const columns = table_getPinnedLeafColumns(table, 'center')\n * ```\n */\nexport function table_getPinnedLeafColumns<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n table: Table_Internal<TFeatures, TData>,\n position: ColumnPinningPosition | 'center',\n) {\n return !position\n ? table.getAllLeafColumns()\n : position === 'left'\n ? callMemoOrStaticFn(\n table,\n 'getLeftLeafColumns',\n table_getLeftLeafColumns,\n )\n : position === 'right'\n ? callMemoOrStaticFn(\n table,\n 'getRightLeafColumns',\n table_getRightLeafColumns,\n )\n : callMemoOrStaticFn(\n table,\n 'getCenterLeafColumns',\n table_getCenterLeafColumns,\n )\n}\n\n// visible leaf columns\n\n/**\n * Resolves visible leaf columns pinned to the left region.\n *\n * Hidden pinned columns are filtered out after the left pin order is applied.\n *\n * @example\n * ```ts\n * const columns = table_getLeftVisibleLeafColumns(table)\n * ```\n */\nexport function table_getLeftVisibleLeafColumns<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n return callMemoOrStaticFn(\n table,\n 'getLeftLeafColumns',\n table_getLeftLeafColumns,\n ).filter((column) =>\n callMemoOrStaticFn(column, 'getIsVisible', column_getIsVisible),\n )\n}\n\n/**\n * Resolves visible leaf columns pinned to the right region.\n *\n * Hidden pinned columns are filtered out after the right pin order is applied.\n *\n * @example\n * ```ts\n * const columns = table_getRightVisibleLeafColumns(table)\n * ```\n */\nexport function table_getRightVisibleLeafColumns<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n return callMemoOrStaticFn(\n table,\n 'getRightLeafColumns',\n table_getRightLeafColumns,\n ).filter((column) =>\n callMemoOrStaticFn(column, 'getIsVisible', column_getIsVisible),\n )\n}\n\n/**\n * Resolves visible leaf columns that are not pinned.\n *\n * This is the center partition used by layouts that render pinned columns\n * separately from the scrollable middle region.\n *\n * @example\n * ```ts\n * const columns = table_getCenterVisibleLeafColumns(table)\n * ```\n */\nexport function table_getCenterVisibleLeafColumns<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n return callMemoOrStaticFn(\n table,\n 'getCenterLeafColumns',\n table_getCenterLeafColumns,\n ).filter((column) =>\n callMemoOrStaticFn(column, 'getIsVisible', column_getIsVisible),\n )\n}\n\n/**\n * Resolves visible leaf columns for a requested pinning region.\n *\n * Omit `position` to get all visible leaf columns, or pass `'left'`, `'center'`,\n * or `'right'` to get one partition.\n *\n * @example\n * ```ts\n * const columns = table_getPinnedVisibleLeafColumns(table, 'left')\n * ```\n */\nexport function table_getPinnedVisibleLeafColumns<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n table: Table_Internal<TFeatures, TData>,\n position?: ColumnPinningPosition | 'center',\n) {\n return !position\n ? callMemoOrStaticFn(\n table,\n 'getVisibleLeafColumns',\n table_getVisibleLeafColumns,\n )\n : position === 'left'\n ? callMemoOrStaticFn(\n table,\n 'getLeftVisibleLeafColumns',\n table_getLeftVisibleLeafColumns,\n )\n : position === 'right'\n ? callMemoOrStaticFn(\n table,\n 'getRightVisibleLeafColumns',\n table_getRightVisibleLeafColumns,\n )\n : callMemoOrStaticFn(\n table,\n 'getCenterVisibleLeafColumns',\n table_getCenterVisibleLeafColumns,\n )\n}\n"],"mappings":"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a,SACX,mBACE,OACA,sBACA,wBACF,IACA,aAAa,UACX,mBACE,OACA,uBACA,yBACF,IACA,mBACE,OACA,wBACA,0BACF;AACV;;;;;;;;;;;AAcA,SAAgB,gCAGd,OAAyC;CACzC,OAAO,mBACL,OACA,sBACA,wBACF,CAAC,CAAC,QAAQ,WACR,mBAAmB,QAAQ,gBAAgB,mBAAmB,CAChE;AACF;;;;;;;;;;;AAYA,SAAgB,iCAGd,OAAyC;CACzC,OAAO,mBACL,OACA,uBACA,yBACF,CAAC,CAAC,QAAQ,WACR,mBAAmB,QAAQ,gBAAgB,mBAAmB,CAChE;AACF;;;;;;;;;;;;AAaA,SAAgB,kCAGd,OAAyC;CACzC,OAAO,mBACL,OACA,wBACA,0BACF,CAAC,CAAC,QAAQ,WACR,mBAAmB,QAAQ,gBAAgB,mBAAmB,CAChE;AACF;;;;;;;;;;;;AAaA,SAAgB,kCAId,OACA,UACA;CACA,OAAO,CAAC,WACJ,mBACE,OACA,yBACA,2BACF,IACA,aAAa,SACX,mBACE,OACA,6BACA,+BACF,IACA,aAAa,UACX,mBACE,OACA,8BACA,gCACF,IACA,mBACE,OACA,+BACA,iCACF;AACV"}
@@ -46,11 +46,8 @@ interface Table_ColumnResizing {
46
46
  resetHeaderSizeInfo: (defaultState?: boolean) => void;
47
47
  /**
48
48
  * Updates transient resize interaction state with a next state or updater function.
49
- *
50
- * The lowercase `c` in this API name matches the current generated v9 table
51
- * API for the `columnResizing` state slice.
52
49
  */
53
- setcolumnResizing: (updater: Updater<columnResizingState>) => void;
50
+ setColumnResizing: (updater: Updater<columnResizingState>) => void;
54
51
  }
55
52
  interface ColumnDef_ColumnResizing {
56
53
  /**
@@ -46,11 +46,8 @@ interface Table_ColumnResizing {
46
46
  resetHeaderSizeInfo: (defaultState?: boolean) => void;
47
47
  /**
48
48
  * Updates transient resize interaction state with a next state or updater function.
49
- *
50
- * The lowercase `c` in this API name matches the current generated v9 table
51
- * API for the `columnResizing` state slice.
52
49
  */
53
- setcolumnResizing: (updater: Updater<columnResizingState>) => void;
50
+ setColumnResizing: (updater: Updater<columnResizingState>) => void;
54
51
  }
55
52
  interface ColumnDef_ColumnResizing {
56
53
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"globalFilteringFeature.utils.cjs","names":["filterFn_includesString","isFunction","cloneState"],"sources":["../../../src/features/global-filtering/globalFilteringFeature.utils.ts"],"sourcesContent":["import { filterFn_includesString } from '../../fns/filterFns'\nimport { cloneState, isFunction } from '../../utils'\nimport type { Column_Internal } from '../../types/Column'\nimport type { FilterFn } from '../column-filtering/columnFilteringFeature.types'\nimport type { CellData, RowData } from '../../types/type-utils'\nimport type { TableFeatures } from '../../types/TableFeatures'\nimport type { Table_Internal } from '../../types/Table'\n\n/**\n * Checks whether this accessor column participates in global filtering.\n *\n * The column must have an accessor and pass column-level, table-level, and\n * optional `getColumnCanGlobalFilter` checks.\n *\n * @example\n * ```ts\n * const canGlobalFilter = column_getCanGlobalFilter(column)\n * ```\n */\nexport function column_getCanGlobalFilter<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(column: Column_Internal<TFeatures, TData, TValue>): boolean {\n return (\n (column.columnDef.enableGlobalFilter ?? true) &&\n (column.table.options.enableGlobalFilter ?? true) &&\n (column.table.options.enableFilters ?? true) &&\n (column.table.options.getColumnCanGlobalFilter?.(column) ?? true) &&\n !!column.accessorFn\n )\n}\n\n/**\n * Provides the built-in automatic global filter function.\n *\n * Global filtering defaults to `includesString`, which gives search-box style\n * matching across globally filterable columns.\n *\n * @example\n * ```ts\n * const filterFn = table_getGlobalAutoFilterFn()\n * ```\n */\nexport function table_getGlobalAutoFilterFn() {\n return filterFn_includesString\n}\n\n/**\n * Resolves the filter function used for global filtering.\n *\n * Function-valued `options.globalFilterFn` is returned directly, `'auto'`\n * delegates to `table_getGlobalAutoFilterFn`, and string values are looked up in\n * the table's filter function registry.\n *\n * @example\n * ```ts\n * const filterFn = table_getGlobalFilterFn(table)\n * ```\n */\nexport function table_getGlobalFilterFn<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n table: Table_Internal<TFeatures, TData>,\n): FilterFn<TFeatures, TData> | undefined {\n const { globalFilterFn: globalFilterFn } = table.options\n const filterFns: Record<string, FilterFn<TFeatures, TData>> | undefined =\n table._rowModelFns.filterFns\n\n const filterFn = isFunction(globalFilterFn)\n ? globalFilterFn\n : globalFilterFn === 'auto'\n ? table_getGlobalAutoFilterFn()\n : filterFns?.[globalFilterFn as string]\n\n return filterFn\n}\n\n/**\n * Routes a global filter updater through the table's global filter handler.\n *\n * The updater may be a next value or a function of the previous value, matching\n * the instance `table.setGlobalFilter` behavior.\n *\n * @example\n * ```ts\n * table_setGlobalFilter(table, 'search text')\n * ```\n */\nexport function table_setGlobalFilter<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>, updater: any) {\n table.options.onGlobalFilterChange?.(updater)\n}\n\n/**\n * Resets `globalFilter` to the configured initial state or feature default.\n *\n * With no argument, the reset clones `table.initialState.globalFilter`. Passing\n * `true` ignores initial state and resets to `undefined`.\n *\n * @example\n * ```ts\n * table_resetGlobalFilter(table)\n * table_resetGlobalFilter(table, true)\n * ```\n */\nexport function table_resetGlobalFilter<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>, defaultState?: boolean) {\n table_setGlobalFilter(\n table,\n defaultState ? undefined : cloneState(table.initialState.globalFilter),\n )\n}\n"],"mappings":";;;;;;;;;;;;;;;AAmBA,SAAgB,0BAId,QAA4D;;CAC5D,QACG,OAAO,UAAU,sBAAsB,UACvC,OAAO,MAAM,QAAQ,sBAAsB,UAC3C,OAAO,MAAM,QAAQ,iBAAiB,8DACtC,OAAO,MAAM,SAAQ,qIAA2B,MAAM,MAAK,SAC5D,CAAC,CAAC,OAAO;AAEb;;;;;;;;;;;;AAaA,SAAgB,8BAA8B;CAC5C,OAAOA;AACT;;;;;;;;;;;;;AAcA,SAAgB,wBAId,OACwC;CACxC,MAAM,EAAkB,mBAAmB,MAAM;CACjD,MAAM,YACJ,MAAM,aAAa;CAQrB,OANiBC,yBAAW,cAAc,IACtC,iBACA,mBAAmB,SACjB,4BAA4B,0DAC5B,UAAY;AAGpB;;;;;;;;;;;;AAaA,SAAgB,sBAGd,OAAyC,SAAc;;CACvD,iDAAM,SAAQ,iHAAuB,OAAO;AAC9C;;;;;;;;;;;;;AAcA,SAAgB,wBAGd,OAAyC,cAAwB;CACjE,sBACE,OACA,eAAe,SAAYC,yBAAW,MAAM,aAAa,YAAY,CACvE;AACF"}
1
+ {"version":3,"file":"globalFilteringFeature.utils.cjs","names":["filterFn_includesString","isFunction","cloneState"],"sources":["../../../src/features/global-filtering/globalFilteringFeature.utils.ts"],"sourcesContent":["import { filterFn_includesString } from '../../fns/filterFns'\nimport { cloneState, isFunction } from '../../utils'\nimport type { Column_Internal } from '../../types/Column'\nimport type { FilterFn } from '../column-filtering/columnFilteringFeature.types'\nimport type { CellData, RowData } from '../../types/type-utils'\nimport type { TableFeatures } from '../../types/TableFeatures'\nimport type { Table_Internal } from '../../types/Table'\n\n/**\n * Checks whether this accessor column participates in global filtering.\n *\n * The column must have an accessor and pass column-level, table-level, and\n * optional `getColumnCanGlobalFilter` checks.\n *\n * @example\n * ```ts\n * const canGlobalFilter = column_getCanGlobalFilter(column)\n * ```\n */\nexport function column_getCanGlobalFilter<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(column: Column_Internal<TFeatures, TData, TValue>): boolean {\n return (\n (column.columnDef.enableGlobalFilter ?? true) &&\n (column.table.options.enableGlobalFilter ?? true) &&\n (column.table.options.enableFilters ?? true) &&\n (column.table.options.getColumnCanGlobalFilter?.(column as any) ?? true) &&\n !!column.accessorFn\n )\n}\n\n/**\n * Provides the built-in automatic global filter function.\n *\n * Global filtering defaults to `includesString`, which gives search-box style\n * matching across globally filterable columns.\n *\n * @example\n * ```ts\n * const filterFn = table_getGlobalAutoFilterFn()\n * ```\n */\nexport function table_getGlobalAutoFilterFn() {\n return filterFn_includesString\n}\n\n/**\n * Resolves the filter function used for global filtering.\n *\n * Function-valued `options.globalFilterFn` is returned directly, `'auto'`\n * delegates to `table_getGlobalAutoFilterFn`, and string values are looked up in\n * the table's filter function registry.\n *\n * @example\n * ```ts\n * const filterFn = table_getGlobalFilterFn(table)\n * ```\n */\nexport function table_getGlobalFilterFn<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n table: Table_Internal<TFeatures, TData>,\n): FilterFn<TFeatures, TData> | undefined {\n const { globalFilterFn: globalFilterFn } = table.options\n const filterFns: Record<string, FilterFn<TFeatures, TData>> | undefined =\n table._rowModelFns.filterFns\n\n const filterFn = isFunction(globalFilterFn)\n ? globalFilterFn\n : globalFilterFn === 'auto'\n ? table_getGlobalAutoFilterFn()\n : filterFns?.[globalFilterFn as string]\n\n return filterFn\n}\n\n/**\n * Routes a global filter updater through the table's global filter handler.\n *\n * The updater may be a next value or a function of the previous value, matching\n * the instance `table.setGlobalFilter` behavior.\n *\n * @example\n * ```ts\n * table_setGlobalFilter(table, 'search text')\n * ```\n */\nexport function table_setGlobalFilter<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>, updater: any) {\n table.options.onGlobalFilterChange?.(updater)\n}\n\n/**\n * Resets `globalFilter` to the configured initial state or feature default.\n *\n * With no argument, the reset clones `table.initialState.globalFilter`. Passing\n * `true` ignores initial state and resets to `undefined`.\n *\n * @example\n * ```ts\n * table_resetGlobalFilter(table)\n * table_resetGlobalFilter(table, true)\n * ```\n */\nexport function table_resetGlobalFilter<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>, defaultState?: boolean) {\n table_setGlobalFilter(\n table,\n defaultState ? undefined : cloneState(table.initialState.globalFilter),\n )\n}\n"],"mappings":";;;;;;;;;;;;;;;AAmBA,SAAgB,0BAId,QAA4D;;CAC5D,QACG,OAAO,UAAU,sBAAsB,UACvC,OAAO,MAAM,QAAQ,sBAAsB,UAC3C,OAAO,MAAM,QAAQ,iBAAiB,8DACtC,OAAO,MAAM,SAAQ,qIAA2B,MAAa,MAAK,SACnE,CAAC,CAAC,OAAO;AAEb;;;;;;;;;;;;AAaA,SAAgB,8BAA8B;CAC5C,OAAOA;AACT;;;;;;;;;;;;;AAcA,SAAgB,wBAId,OACwC;CACxC,MAAM,EAAkB,mBAAmB,MAAM;CACjD,MAAM,YACJ,MAAM,aAAa;CAQrB,OANiBC,yBAAW,cAAc,IACtC,iBACA,mBAAmB,SACjB,4BAA4B,0DAC5B,UAAY;AAGpB;;;;;;;;;;;;AAaA,SAAgB,sBAGd,OAAyC,SAAc;;CACvD,iDAAM,SAAQ,iHAAuB,OAAO;AAC9C;;;;;;;;;;;;;AAcA,SAAgB,wBAGd,OAAyC,cAAwB;CACjE,sBACE,OACA,eAAe,SAAYC,yBAAW,MAAM,aAAa,YAAY,CACvE;AACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"globalFilteringFeature.utils.js","names":[],"sources":["../../../src/features/global-filtering/globalFilteringFeature.utils.ts"],"sourcesContent":["import { filterFn_includesString } from '../../fns/filterFns'\nimport { cloneState, isFunction } from '../../utils'\nimport type { Column_Internal } from '../../types/Column'\nimport type { FilterFn } from '../column-filtering/columnFilteringFeature.types'\nimport type { CellData, RowData } from '../../types/type-utils'\nimport type { TableFeatures } from '../../types/TableFeatures'\nimport type { Table_Internal } from '../../types/Table'\n\n/**\n * Checks whether this accessor column participates in global filtering.\n *\n * The column must have an accessor and pass column-level, table-level, and\n * optional `getColumnCanGlobalFilter` checks.\n *\n * @example\n * ```ts\n * const canGlobalFilter = column_getCanGlobalFilter(column)\n * ```\n */\nexport function column_getCanGlobalFilter<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(column: Column_Internal<TFeatures, TData, TValue>): boolean {\n return (\n (column.columnDef.enableGlobalFilter ?? true) &&\n (column.table.options.enableGlobalFilter ?? true) &&\n (column.table.options.enableFilters ?? true) &&\n (column.table.options.getColumnCanGlobalFilter?.(column) ?? true) &&\n !!column.accessorFn\n )\n}\n\n/**\n * Provides the built-in automatic global filter function.\n *\n * Global filtering defaults to `includesString`, which gives search-box style\n * matching across globally filterable columns.\n *\n * @example\n * ```ts\n * const filterFn = table_getGlobalAutoFilterFn()\n * ```\n */\nexport function table_getGlobalAutoFilterFn() {\n return filterFn_includesString\n}\n\n/**\n * Resolves the filter function used for global filtering.\n *\n * Function-valued `options.globalFilterFn` is returned directly, `'auto'`\n * delegates to `table_getGlobalAutoFilterFn`, and string values are looked up in\n * the table's filter function registry.\n *\n * @example\n * ```ts\n * const filterFn = table_getGlobalFilterFn(table)\n * ```\n */\nexport function table_getGlobalFilterFn<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n table: Table_Internal<TFeatures, TData>,\n): FilterFn<TFeatures, TData> | undefined {\n const { globalFilterFn: globalFilterFn } = table.options\n const filterFns: Record<string, FilterFn<TFeatures, TData>> | undefined =\n table._rowModelFns.filterFns\n\n const filterFn = isFunction(globalFilterFn)\n ? globalFilterFn\n : globalFilterFn === 'auto'\n ? table_getGlobalAutoFilterFn()\n : filterFns?.[globalFilterFn as string]\n\n return filterFn\n}\n\n/**\n * Routes a global filter updater through the table's global filter handler.\n *\n * The updater may be a next value or a function of the previous value, matching\n * the instance `table.setGlobalFilter` behavior.\n *\n * @example\n * ```ts\n * table_setGlobalFilter(table, 'search text')\n * ```\n */\nexport function table_setGlobalFilter<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>, updater: any) {\n table.options.onGlobalFilterChange?.(updater)\n}\n\n/**\n * Resets `globalFilter` to the configured initial state or feature default.\n *\n * With no argument, the reset clones `table.initialState.globalFilter`. Passing\n * `true` ignores initial state and resets to `undefined`.\n *\n * @example\n * ```ts\n * table_resetGlobalFilter(table)\n * table_resetGlobalFilter(table, true)\n * ```\n */\nexport function table_resetGlobalFilter<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>, defaultState?: boolean) {\n table_setGlobalFilter(\n table,\n defaultState ? undefined : cloneState(table.initialState.globalFilter),\n )\n}\n"],"mappings":";;;;;;;;;;;;;;;AAmBA,SAAgB,0BAId,QAA4D;;CAC5D,QACG,OAAO,UAAU,sBAAsB,UACvC,OAAO,MAAM,QAAQ,sBAAsB,UAC3C,OAAO,MAAM,QAAQ,iBAAiB,8DACtC,OAAO,MAAM,SAAQ,qIAA2B,MAAM,MAAK,SAC5D,CAAC,CAAC,OAAO;AAEb;;;;;;;;;;;;AAaA,SAAgB,8BAA8B;CAC5C,OAAO;AACT;;;;;;;;;;;;;AAcA,SAAgB,wBAId,OACwC;CACxC,MAAM,EAAkB,mBAAmB,MAAM;CACjD,MAAM,YACJ,MAAM,aAAa;CAQrB,OANiB,WAAW,cAAc,IACtC,iBACA,mBAAmB,SACjB,4BAA4B,0DAC5B,UAAY;AAGpB;;;;;;;;;;;;AAaA,SAAgB,sBAGd,OAAyC,SAAc;;CACvD,iDAAM,SAAQ,iHAAuB,OAAO;AAC9C;;;;;;;;;;;;;AAcA,SAAgB,wBAGd,OAAyC,cAAwB;CACjE,sBACE,OACA,eAAe,SAAY,WAAW,MAAM,aAAa,YAAY,CACvE;AACF"}
1
+ {"version":3,"file":"globalFilteringFeature.utils.js","names":[],"sources":["../../../src/features/global-filtering/globalFilteringFeature.utils.ts"],"sourcesContent":["import { filterFn_includesString } from '../../fns/filterFns'\nimport { cloneState, isFunction } from '../../utils'\nimport type { Column_Internal } from '../../types/Column'\nimport type { FilterFn } from '../column-filtering/columnFilteringFeature.types'\nimport type { CellData, RowData } from '../../types/type-utils'\nimport type { TableFeatures } from '../../types/TableFeatures'\nimport type { Table_Internal } from '../../types/Table'\n\n/**\n * Checks whether this accessor column participates in global filtering.\n *\n * The column must have an accessor and pass column-level, table-level, and\n * optional `getColumnCanGlobalFilter` checks.\n *\n * @example\n * ```ts\n * const canGlobalFilter = column_getCanGlobalFilter(column)\n * ```\n */\nexport function column_getCanGlobalFilter<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(column: Column_Internal<TFeatures, TData, TValue>): boolean {\n return (\n (column.columnDef.enableGlobalFilter ?? true) &&\n (column.table.options.enableGlobalFilter ?? true) &&\n (column.table.options.enableFilters ?? true) &&\n (column.table.options.getColumnCanGlobalFilter?.(column as any) ?? true) &&\n !!column.accessorFn\n )\n}\n\n/**\n * Provides the built-in automatic global filter function.\n *\n * Global filtering defaults to `includesString`, which gives search-box style\n * matching across globally filterable columns.\n *\n * @example\n * ```ts\n * const filterFn = table_getGlobalAutoFilterFn()\n * ```\n */\nexport function table_getGlobalAutoFilterFn() {\n return filterFn_includesString\n}\n\n/**\n * Resolves the filter function used for global filtering.\n *\n * Function-valued `options.globalFilterFn` is returned directly, `'auto'`\n * delegates to `table_getGlobalAutoFilterFn`, and string values are looked up in\n * the table's filter function registry.\n *\n * @example\n * ```ts\n * const filterFn = table_getGlobalFilterFn(table)\n * ```\n */\nexport function table_getGlobalFilterFn<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n table: Table_Internal<TFeatures, TData>,\n): FilterFn<TFeatures, TData> | undefined {\n const { globalFilterFn: globalFilterFn } = table.options\n const filterFns: Record<string, FilterFn<TFeatures, TData>> | undefined =\n table._rowModelFns.filterFns\n\n const filterFn = isFunction(globalFilterFn)\n ? globalFilterFn\n : globalFilterFn === 'auto'\n ? table_getGlobalAutoFilterFn()\n : filterFns?.[globalFilterFn as string]\n\n return filterFn\n}\n\n/**\n * Routes a global filter updater through the table's global filter handler.\n *\n * The updater may be a next value or a function of the previous value, matching\n * the instance `table.setGlobalFilter` behavior.\n *\n * @example\n * ```ts\n * table_setGlobalFilter(table, 'search text')\n * ```\n */\nexport function table_setGlobalFilter<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>, updater: any) {\n table.options.onGlobalFilterChange?.(updater)\n}\n\n/**\n * Resets `globalFilter` to the configured initial state or feature default.\n *\n * With no argument, the reset clones `table.initialState.globalFilter`. Passing\n * `true` ignores initial state and resets to `undefined`.\n *\n * @example\n * ```ts\n * table_resetGlobalFilter(table)\n * table_resetGlobalFilter(table, true)\n * ```\n */\nexport function table_resetGlobalFilter<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>, defaultState?: boolean) {\n table_setGlobalFilter(\n table,\n defaultState ? undefined : cloneState(table.initialState.globalFilter),\n )\n}\n"],"mappings":";;;;;;;;;;;;;;;AAmBA,SAAgB,0BAId,QAA4D;;CAC5D,QACG,OAAO,UAAU,sBAAsB,UACvC,OAAO,MAAM,QAAQ,sBAAsB,UAC3C,OAAO,MAAM,QAAQ,iBAAiB,8DACtC,OAAO,MAAM,SAAQ,qIAA2B,MAAa,MAAK,SACnE,CAAC,CAAC,OAAO;AAEb;;;;;;;;;;;;AAaA,SAAgB,8BAA8B;CAC5C,OAAO;AACT;;;;;;;;;;;;;AAcA,SAAgB,wBAId,OACwC;CACxC,MAAM,EAAkB,mBAAmB,MAAM;CACjD,MAAM,YACJ,MAAM,aAAa;CAQrB,OANiB,WAAW,cAAc,IACtC,iBACA,mBAAmB,SACjB,4BAA4B,0DAC5B,UAAY;AAGpB;;;;;;;;;;;;AAaA,SAAgB,sBAGd,OAAyC,SAAc;;CACvD,iDAAM,SAAQ,iHAAuB,OAAO;AAC9C;;;;;;;;;;;;;AAcA,SAAgB,wBAGd,OAAyC,cAAwB;CACjE,sBACE,OACA,eAAe,SAAY,WAAW,MAAM,aAAa,YAAY,CACvE;AACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"columnHelper.cjs","names":[],"sources":["../../src/helpers/columnHelper.ts"],"sourcesContent":["import type { DeepKeys, DeepValue, RowData } from '../types/type-utils'\nimport type { TableFeatures } from '../types/TableFeatures'\nimport type {\n AccessorFn,\n AccessorFnColumnDef,\n AccessorKeyColumnDef,\n ColumnDef,\n DisplayColumnDef,\n GroupColumnDef,\n IdentifiedColumnDef,\n} from '../types/ColumnDef'\n\nexport type ColumnHelper<\n TFeatures extends TableFeatures,\n TData extends RowData,\n> = {\n /**\n * Creates a data column definition with an accessor key or function to extract the cell value.\n * @example\n * ```ts\n * helper.accessor('firstName', { cell: (info) => info.getValue() })\n * helper.accessor((row) => row.lastName, { id: 'lastName' })\n * ```\n */\n accessor: <\n TAccessor extends AccessorFn<TData> | DeepKeys<TData>,\n TValue extends TAccessor extends AccessorFn<TData, infer TReturn>\n ? TReturn\n : TAccessor extends DeepKeys<TData>\n ? DeepValue<TData, TAccessor>\n : never,\n >(\n accessor: TAccessor,\n column: TAccessor extends AccessorFn<TData>\n ? DisplayColumnDef<TFeatures, TData, TValue>\n : IdentifiedColumnDef<TFeatures, TData, TValue>,\n ) => TAccessor extends AccessorFn<TData>\n ? AccessorFnColumnDef<TFeatures, TData, TValue>\n : AccessorKeyColumnDef<TFeatures, TData, TValue>\n /**\n * Wraps an array of column definitions to preserve each column's individual TValue type.\n * Uses variadic tuple types to infer element types before checking constraints, preventing type widening.\n * @example\n * ```ts\n * helper.columns([helper.accessor('firstName', {}), helper.accessor('age', {})])\n * ```\n */\n columns: <TColumns extends ReadonlyArray<ColumnDef<TFeatures, TData, any>>>(\n columns: [...TColumns],\n ) => Array<ColumnDef<TFeatures, TData, any>> & [...TColumns]\n /**\n * Creates a display column definition for non-data columns like actions or row selection.\n * @example\n * ```ts\n * helper.display({ id: 'actions', header: 'Actions', cell: () => <button>Edit</button> })\n * ```\n */\n display: (\n column: DisplayColumnDef<TFeatures, TData>,\n ) => DisplayColumnDef<TFeatures, TData, unknown>\n /**\n * Creates a group column definition that contains nested child columns.\n * @example\n * ```ts\n * helper.group({\n * id: 'name',\n * header: 'Name',\n * columns: helper.columns([\n * helper.accessor('firstName', {}),\n * helper.accessor('lastName', { id: 'lastName' }),\n * ]),\n * })\n * ```\n */\n group: (\n column: GroupColumnDef<TFeatures, TData, unknown>,\n ) => GroupColumnDef<TFeatures, TData, unknown>\n}\n\n/**\n * Creates helper functions for authoring column definitions with stronger value\n * inference.\n *\n * `accessor` infers `TValue` from an accessor key or accessor function,\n * `display` creates non-data columns, `group` creates parent columns, and\n * `columns` preserves tuple-level value types for arrays. At runtime these\n * helpers only return column definition objects.\n *\n * @example\n * ```tsx\n * const helper = createColumnHelper<typeof features, Person>() // features is the result of `tableFeatures({})` helper\n * const columns = [\n * helper.display({ id: 'actions', header: 'Actions' }),\n * helper.accessor('firstName', {}),\n * helper.accessor((row) => row.lastName, { id: 'lastName' }),\n * ]\n * ```\n */\nexport function createColumnHelper<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(): ColumnHelper<TFeatures, TData> {\n return {\n accessor: (accessor, column) => {\n return typeof accessor === 'function'\n ? ({\n ...column,\n accessorFn: accessor,\n } as any)\n : {\n ...column,\n accessorKey: accessor,\n }\n },\n columns: <TColumns extends ReadonlyArray<ColumnDef<TFeatures, TData, any>>>(\n columns: [...TColumns],\n ): Array<ColumnDef<TFeatures, TData, any>> & [...TColumns] =>\n columns as Array<ColumnDef<TFeatures, TData, any>> & [...TColumns],\n display: (column) => column,\n group: (column) => column,\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAkGA,SAAgB,qBAGoB;CAClC,OAAO;EACL,WAAW,UAAU,WAAW;GAC9B,OAAO,OAAO,aAAa,aACtB;IACC,GAAG;IACH,YAAY;GACd,IACA;IACE,GAAG;IACH,aAAa;GACf;EACN;EACA,UACE,YAEA;EACF,UAAU,WAAW;EACrB,QAAQ,WAAW;CACrB;AACF"}
1
+ {"version":3,"file":"columnHelper.cjs","names":[],"sources":["../../src/helpers/columnHelper.ts"],"sourcesContent":["import type { DeepKeys, DeepValue, RowData } from '../types/type-utils'\nimport type { TableFeatures } from '../types/TableFeatures'\nimport type {\n AccessorFn,\n AccessorFnColumnDef,\n AccessorKeyColumnDef,\n ColumnDef,\n DisplayColumnDef,\n GroupColumnDef,\n IdentifiedColumnDef,\n} from '../types/ColumnDef'\n\nexport interface ColumnHelper<\n in out TFeatures extends TableFeatures,\n in out TData extends RowData,\n> {\n /**\n * Creates a data column definition with an accessor key or function to extract the cell value.\n * @example\n * ```ts\n * helper.accessor('firstName', { cell: (info) => info.getValue() })\n * helper.accessor((row) => row.lastName, { id: 'lastName' })\n * ```\n */\n accessor: <\n TAccessor extends AccessorFn<TData> | DeepKeys<TData>,\n TValue extends TAccessor extends AccessorFn<TData, infer TReturn>\n ? TReturn\n : TAccessor extends DeepKeys<TData>\n ? DeepValue<TData, TAccessor>\n : never,\n >(\n accessor: TAccessor,\n column: TAccessor extends AccessorFn<TData>\n ? DisplayColumnDef<TFeatures, TData, TValue>\n : IdentifiedColumnDef<TFeatures, TData, TValue>,\n ) => TAccessor extends AccessorFn<TData>\n ? AccessorFnColumnDef<TFeatures, TData, TValue>\n : AccessorKeyColumnDef<TFeatures, TData, TValue>\n /**\n * Wraps an array of column definitions to preserve each column's individual TValue type.\n * Uses variadic tuple types to infer element types before checking constraints, preventing type widening.\n * @example\n * ```ts\n * helper.columns([helper.accessor('firstName', {}), helper.accessor('age', {})])\n * ```\n */\n columns: <TColumns extends ReadonlyArray<ColumnDef<TFeatures, TData, any>>>(\n columns: [...TColumns],\n ) => Array<ColumnDef<TFeatures, TData, any>> & [...TColumns]\n /**\n * Creates a display column definition for non-data columns like actions or row selection.\n * @example\n * ```ts\n * helper.display({ id: 'actions', header: 'Actions', cell: () => <button>Edit</button> })\n * ```\n */\n display: (\n column: DisplayColumnDef<TFeatures, TData>,\n ) => DisplayColumnDef<TFeatures, TData, unknown>\n /**\n * Creates a group column definition that contains nested child columns.\n * @example\n * ```ts\n * helper.group({\n * id: 'name',\n * header: 'Name',\n * columns: helper.columns([\n * helper.accessor('firstName', {}),\n * helper.accessor('lastName', { id: 'lastName' }),\n * ]),\n * })\n * ```\n */\n group: (\n column: GroupColumnDef<TFeatures, TData, unknown>,\n ) => GroupColumnDef<TFeatures, TData, unknown>\n}\n\n/**\n * Creates helper functions for authoring column definitions with stronger value\n * inference.\n *\n * `accessor` infers `TValue` from an accessor key or accessor function,\n * `display` creates non-data columns, `group` creates parent columns, and\n * `columns` preserves tuple-level value types for arrays. At runtime these\n * helpers only return column definition objects.\n *\n * @example\n * ```tsx\n * const helper = createColumnHelper<typeof features, Person>() // features is the result of `tableFeatures({})` helper\n * const columns = [\n * helper.display({ id: 'actions', header: 'Actions' }),\n * helper.accessor('firstName', {}),\n * helper.accessor((row) => row.lastName, { id: 'lastName' }),\n * ]\n * ```\n */\nexport function createColumnHelper<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(): ColumnHelper<TFeatures, TData> {\n return {\n accessor: (accessor, column) => {\n return typeof accessor === 'function'\n ? ({\n ...column,\n accessorFn: accessor,\n } as any)\n : {\n ...column,\n accessorKey: accessor,\n }\n },\n columns: <TColumns extends ReadonlyArray<ColumnDef<TFeatures, TData, any>>>(\n columns: [...TColumns],\n ): Array<ColumnDef<TFeatures, TData, any>> & [...TColumns] =>\n columns as Array<ColumnDef<TFeatures, TData, any>> & [...TColumns],\n display: (column) => column,\n group: (column) => column,\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAkGA,SAAgB,qBAGoB;CAClC,OAAO;EACL,WAAW,UAAU,WAAW;GAC9B,OAAO,OAAO,aAAa,aACtB;IACC,GAAG;IACH,YAAY;GACd,IACA;IACE,GAAG;IACH,aAAa;GACf;EACN;EACA,UACE,YAEA;EACF,UAAU,WAAW;EACrB,QAAQ,WAAW;CACrB;AACF"}
@@ -3,7 +3,7 @@ import { AccessorFn, AccessorFnColumnDef, AccessorKeyColumnDef, ColumnDef, Displ
3
3
  import { TableFeatures } from "../types/TableFeatures.cjs";
4
4
 
5
5
  //#region src/helpers/columnHelper.d.ts
6
- type ColumnHelper<TFeatures extends TableFeatures, TData extends RowData> = {
6
+ interface ColumnHelper<in out TFeatures extends TableFeatures, in out TData extends RowData> {
7
7
  /**
8
8
  * Creates a data column definition with an accessor key or function to extract the cell value.
9
9
  * @example
@@ -45,7 +45,7 @@ type ColumnHelper<TFeatures extends TableFeatures, TData extends RowData> = {
45
45
  * ```
46
46
  */
47
47
  group: (column: GroupColumnDef<TFeatures, TData, unknown>) => GroupColumnDef<TFeatures, TData, unknown>;
48
- };
48
+ }
49
49
  /**
50
50
  * Creates helper functions for authoring column definitions with stronger value
51
51
  * inference.
@@ -3,7 +3,7 @@ import { AccessorFn, AccessorFnColumnDef, AccessorKeyColumnDef, ColumnDef, Displ
3
3
  import { TableFeatures } from "../types/TableFeatures.js";
4
4
 
5
5
  //#region src/helpers/columnHelper.d.ts
6
- type ColumnHelper<TFeatures extends TableFeatures, TData extends RowData> = {
6
+ interface ColumnHelper<in out TFeatures extends TableFeatures, in out TData extends RowData> {
7
7
  /**
8
8
  * Creates a data column definition with an accessor key or function to extract the cell value.
9
9
  * @example
@@ -45,7 +45,7 @@ type ColumnHelper<TFeatures extends TableFeatures, TData extends RowData> = {
45
45
  * ```
46
46
  */
47
47
  group: (column: GroupColumnDef<TFeatures, TData, unknown>) => GroupColumnDef<TFeatures, TData, unknown>;
48
- };
48
+ }
49
49
  /**
50
50
  * Creates helper functions for authoring column definitions with stronger value
51
51
  * inference.
@@ -1 +1 @@
1
- {"version":3,"file":"columnHelper.js","names":[],"sources":["../../src/helpers/columnHelper.ts"],"sourcesContent":["import type { DeepKeys, DeepValue, RowData } from '../types/type-utils'\nimport type { TableFeatures } from '../types/TableFeatures'\nimport type {\n AccessorFn,\n AccessorFnColumnDef,\n AccessorKeyColumnDef,\n ColumnDef,\n DisplayColumnDef,\n GroupColumnDef,\n IdentifiedColumnDef,\n} from '../types/ColumnDef'\n\nexport type ColumnHelper<\n TFeatures extends TableFeatures,\n TData extends RowData,\n> = {\n /**\n * Creates a data column definition with an accessor key or function to extract the cell value.\n * @example\n * ```ts\n * helper.accessor('firstName', { cell: (info) => info.getValue() })\n * helper.accessor((row) => row.lastName, { id: 'lastName' })\n * ```\n */\n accessor: <\n TAccessor extends AccessorFn<TData> | DeepKeys<TData>,\n TValue extends TAccessor extends AccessorFn<TData, infer TReturn>\n ? TReturn\n : TAccessor extends DeepKeys<TData>\n ? DeepValue<TData, TAccessor>\n : never,\n >(\n accessor: TAccessor,\n column: TAccessor extends AccessorFn<TData>\n ? DisplayColumnDef<TFeatures, TData, TValue>\n : IdentifiedColumnDef<TFeatures, TData, TValue>,\n ) => TAccessor extends AccessorFn<TData>\n ? AccessorFnColumnDef<TFeatures, TData, TValue>\n : AccessorKeyColumnDef<TFeatures, TData, TValue>\n /**\n * Wraps an array of column definitions to preserve each column's individual TValue type.\n * Uses variadic tuple types to infer element types before checking constraints, preventing type widening.\n * @example\n * ```ts\n * helper.columns([helper.accessor('firstName', {}), helper.accessor('age', {})])\n * ```\n */\n columns: <TColumns extends ReadonlyArray<ColumnDef<TFeatures, TData, any>>>(\n columns: [...TColumns],\n ) => Array<ColumnDef<TFeatures, TData, any>> & [...TColumns]\n /**\n * Creates a display column definition for non-data columns like actions or row selection.\n * @example\n * ```ts\n * helper.display({ id: 'actions', header: 'Actions', cell: () => <button>Edit</button> })\n * ```\n */\n display: (\n column: DisplayColumnDef<TFeatures, TData>,\n ) => DisplayColumnDef<TFeatures, TData, unknown>\n /**\n * Creates a group column definition that contains nested child columns.\n * @example\n * ```ts\n * helper.group({\n * id: 'name',\n * header: 'Name',\n * columns: helper.columns([\n * helper.accessor('firstName', {}),\n * helper.accessor('lastName', { id: 'lastName' }),\n * ]),\n * })\n * ```\n */\n group: (\n column: GroupColumnDef<TFeatures, TData, unknown>,\n ) => GroupColumnDef<TFeatures, TData, unknown>\n}\n\n/**\n * Creates helper functions for authoring column definitions with stronger value\n * inference.\n *\n * `accessor` infers `TValue` from an accessor key or accessor function,\n * `display` creates non-data columns, `group` creates parent columns, and\n * `columns` preserves tuple-level value types for arrays. At runtime these\n * helpers only return column definition objects.\n *\n * @example\n * ```tsx\n * const helper = createColumnHelper<typeof features, Person>() // features is the result of `tableFeatures({})` helper\n * const columns = [\n * helper.display({ id: 'actions', header: 'Actions' }),\n * helper.accessor('firstName', {}),\n * helper.accessor((row) => row.lastName, { id: 'lastName' }),\n * ]\n * ```\n */\nexport function createColumnHelper<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(): ColumnHelper<TFeatures, TData> {\n return {\n accessor: (accessor, column) => {\n return typeof accessor === 'function'\n ? ({\n ...column,\n accessorFn: accessor,\n } as any)\n : {\n ...column,\n accessorKey: accessor,\n }\n },\n columns: <TColumns extends ReadonlyArray<ColumnDef<TFeatures, TData, any>>>(\n columns: [...TColumns],\n ): Array<ColumnDef<TFeatures, TData, any>> & [...TColumns] =>\n columns as Array<ColumnDef<TFeatures, TData, any>> & [...TColumns],\n display: (column) => column,\n group: (column) => column,\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAkGA,SAAgB,qBAGoB;CAClC,OAAO;EACL,WAAW,UAAU,WAAW;GAC9B,OAAO,OAAO,aAAa,aACtB;IACC,GAAG;IACH,YAAY;GACd,IACA;IACE,GAAG;IACH,aAAa;GACf;EACN;EACA,UACE,YAEA;EACF,UAAU,WAAW;EACrB,QAAQ,WAAW;CACrB;AACF"}
1
+ {"version":3,"file":"columnHelper.js","names":[],"sources":["../../src/helpers/columnHelper.ts"],"sourcesContent":["import type { DeepKeys, DeepValue, RowData } from '../types/type-utils'\nimport type { TableFeatures } from '../types/TableFeatures'\nimport type {\n AccessorFn,\n AccessorFnColumnDef,\n AccessorKeyColumnDef,\n ColumnDef,\n DisplayColumnDef,\n GroupColumnDef,\n IdentifiedColumnDef,\n} from '../types/ColumnDef'\n\nexport interface ColumnHelper<\n in out TFeatures extends TableFeatures,\n in out TData extends RowData,\n> {\n /**\n * Creates a data column definition with an accessor key or function to extract the cell value.\n * @example\n * ```ts\n * helper.accessor('firstName', { cell: (info) => info.getValue() })\n * helper.accessor((row) => row.lastName, { id: 'lastName' })\n * ```\n */\n accessor: <\n TAccessor extends AccessorFn<TData> | DeepKeys<TData>,\n TValue extends TAccessor extends AccessorFn<TData, infer TReturn>\n ? TReturn\n : TAccessor extends DeepKeys<TData>\n ? DeepValue<TData, TAccessor>\n : never,\n >(\n accessor: TAccessor,\n column: TAccessor extends AccessorFn<TData>\n ? DisplayColumnDef<TFeatures, TData, TValue>\n : IdentifiedColumnDef<TFeatures, TData, TValue>,\n ) => TAccessor extends AccessorFn<TData>\n ? AccessorFnColumnDef<TFeatures, TData, TValue>\n : AccessorKeyColumnDef<TFeatures, TData, TValue>\n /**\n * Wraps an array of column definitions to preserve each column's individual TValue type.\n * Uses variadic tuple types to infer element types before checking constraints, preventing type widening.\n * @example\n * ```ts\n * helper.columns([helper.accessor('firstName', {}), helper.accessor('age', {})])\n * ```\n */\n columns: <TColumns extends ReadonlyArray<ColumnDef<TFeatures, TData, any>>>(\n columns: [...TColumns],\n ) => Array<ColumnDef<TFeatures, TData, any>> & [...TColumns]\n /**\n * Creates a display column definition for non-data columns like actions or row selection.\n * @example\n * ```ts\n * helper.display({ id: 'actions', header: 'Actions', cell: () => <button>Edit</button> })\n * ```\n */\n display: (\n column: DisplayColumnDef<TFeatures, TData>,\n ) => DisplayColumnDef<TFeatures, TData, unknown>\n /**\n * Creates a group column definition that contains nested child columns.\n * @example\n * ```ts\n * helper.group({\n * id: 'name',\n * header: 'Name',\n * columns: helper.columns([\n * helper.accessor('firstName', {}),\n * helper.accessor('lastName', { id: 'lastName' }),\n * ]),\n * })\n * ```\n */\n group: (\n column: GroupColumnDef<TFeatures, TData, unknown>,\n ) => GroupColumnDef<TFeatures, TData, unknown>\n}\n\n/**\n * Creates helper functions for authoring column definitions with stronger value\n * inference.\n *\n * `accessor` infers `TValue` from an accessor key or accessor function,\n * `display` creates non-data columns, `group` creates parent columns, and\n * `columns` preserves tuple-level value types for arrays. At runtime these\n * helpers only return column definition objects.\n *\n * @example\n * ```tsx\n * const helper = createColumnHelper<typeof features, Person>() // features is the result of `tableFeatures({})` helper\n * const columns = [\n * helper.display({ id: 'actions', header: 'Actions' }),\n * helper.accessor('firstName', {}),\n * helper.accessor((row) => row.lastName, { id: 'lastName' }),\n * ]\n * ```\n */\nexport function createColumnHelper<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(): ColumnHelper<TFeatures, TData> {\n return {\n accessor: (accessor, column) => {\n return typeof accessor === 'function'\n ? ({\n ...column,\n accessorFn: accessor,\n } as any)\n : {\n ...column,\n accessorKey: accessor,\n }\n },\n columns: <TColumns extends ReadonlyArray<ColumnDef<TFeatures, TData, any>>>(\n columns: [...TColumns],\n ): Array<ColumnDef<TFeatures, TData, any>> & [...TColumns] =>\n columns as Array<ColumnDef<TFeatures, TData, any>> & [...TColumns],\n display: (column) => column,\n group: (column) => column,\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAkGA,SAAgB,qBAGoB;CAClC,OAAO;EACL,WAAW,UAAU,WAAW;GAC9B,OAAO,OAAO,aAAa,aACtB;IACC,GAAG;IACH,YAAY;GACd,IACA;IACE,GAAG;IACH,aAAa;GACf;EACN;EACA,UACE,YAEA;EACF,UAAU,WAAW;EACrB,QAAQ,WAAW;CACrB;AACF"}
@@ -28,9 +28,9 @@ interface Column_FeatureMap<in out TFeatures extends TableFeatures, in out TData
28
28
  rowSortingFeature: Column_RowSorting<TFeatures, TData>;
29
29
  }
30
30
  type Column<TFeatures extends TableFeatures, TData extends RowData, TValue = unknown> = Column_Core<TFeatures, TData, TValue> & ExtractFeatureMapTypes<TFeatures, Column_FeatureMap<TFeatures, TData>>;
31
- type Column_Internal<TFeatures extends TableFeatures, TData extends RowData, TValue = unknown> = Column<TFeatures, TData, TValue> & {
31
+ interface Column_Internal<in out TFeatures extends TableFeatures, in out TData extends RowData, TValue = unknown> extends Omit<Column_Core<TFeatures, TData, TValue>, 'columnDef'> {
32
32
  columnDef: ColumnDefBase_All<TFeatures, TData, TValue>;
33
- };
33
+ }
34
34
  //#endregion
35
35
  export { Column, Column_Core, Column_FeatureMap, Column_Internal };
36
36
  //# sourceMappingURL=Column.d.cts.map
@@ -28,9 +28,9 @@ interface Column_FeatureMap<in out TFeatures extends TableFeatures, in out TData
28
28
  rowSortingFeature: Column_RowSorting<TFeatures, TData>;
29
29
  }
30
30
  type Column<TFeatures extends TableFeatures, TData extends RowData, TValue = unknown> = Column_Core<TFeatures, TData, TValue> & ExtractFeatureMapTypes<TFeatures, Column_FeatureMap<TFeatures, TData>>;
31
- type Column_Internal<TFeatures extends TableFeatures, TData extends RowData, TValue = unknown> = Column<TFeatures, TData, TValue> & {
31
+ interface Column_Internal<in out TFeatures extends TableFeatures, in out TData extends RowData, TValue = unknown> extends Omit<Column_Core<TFeatures, TData, TValue>, 'columnDef'> {
32
32
  columnDef: ColumnDefBase_All<TFeatures, TData, TValue>;
33
- };
33
+ }
34
34
  //#endregion
35
35
  export { Column, Column_Core, Column_FeatureMap, Column_Internal };
36
36
  //# sourceMappingURL=Column.d.ts.map
@@ -4,7 +4,7 @@ import { TableFeatures } from "./TableFeatures.cjs";
4
4
 
5
5
  //#region src/types/HeaderGroup.d.ts
6
6
  interface HeaderGroup_Core<in out TFeatures extends TableFeatures, in out TData extends RowData> extends HeaderGroup_Header<TFeatures, TData> {}
7
- type HeaderGroup<TFeatures extends TableFeatures, TData extends RowData> = HeaderGroup_Core<TFeatures, TData>;
7
+ interface HeaderGroup<in out TFeatures extends TableFeatures, in out TData extends RowData> extends HeaderGroup_Core<TFeatures, TData> {}
8
8
  //#endregion
9
9
  export { HeaderGroup, HeaderGroup_Core };
10
10
  //# sourceMappingURL=HeaderGroup.d.cts.map
@@ -4,7 +4,7 @@ import { TableFeatures } from "./TableFeatures.js";
4
4
 
5
5
  //#region src/types/HeaderGroup.d.ts
6
6
  interface HeaderGroup_Core<in out TFeatures extends TableFeatures, in out TData extends RowData> extends HeaderGroup_Header<TFeatures, TData> {}
7
- type HeaderGroup<TFeatures extends TableFeatures, TData extends RowData> = HeaderGroup_Core<TFeatures, TData>;
7
+ interface HeaderGroup<in out TFeatures extends TableFeatures, in out TData extends RowData> extends HeaderGroup_Core<TFeatures, TData> {}
8
8
  //#endregion
9
9
  export { HeaderGroup, HeaderGroup_Core };
10
10
  //# sourceMappingURL=HeaderGroup.d.ts.map
@@ -20,7 +20,7 @@ interface CachedRowModels_FeatureMap<in out TFeatures extends TableFeatures, in
20
20
  type CachedRowModels<TFeatures extends TableFeatures, TData extends RowData> = {
21
21
  CachedRowModel_Core: () => RowModel<TFeatures, TData>;
22
22
  } & ExtractFeatureMapTypes<TFeatures, CachedRowModels_FeatureMap<TFeatures, TData>>;
23
- type CachedRowModel_All<TFeatures extends TableFeatures, TData extends RowData = any> = Partial<CachedRowModel_Core<TFeatures, TData> & CachedRowModel_Expanded<TFeatures, TData> & CachedRowModel_Faceted<TFeatures, TData> & CachedRowModel_Filtered<TFeatures, TData> & CachedRowModel_Grouped<TFeatures, TData> & CachedRowModel_Paginated<TFeatures, TData> & CachedRowModel_Sorted<TFeatures, TData>>;
23
+ interface CachedRowModel_All<in out TFeatures extends TableFeatures, in out TData extends RowData = any> extends Partial<CachedRowModel_Core<TFeatures, TData> & CachedRowModel_Expanded<TFeatures, TData> & CachedRowModel_Faceted<TFeatures, TData> & CachedRowModel_Filtered<TFeatures, TData> & CachedRowModel_Grouped<TFeatures, TData> & CachedRowModel_Paginated<TFeatures, TData> & CachedRowModel_Sorted<TFeatures, TData>> {}
24
24
  //#endregion
25
25
  export { CachedRowModel_All, CachedRowModels, CachedRowModels_FeatureMap };
26
26
  //# sourceMappingURL=RowModel.d.cts.map
@@ -20,7 +20,7 @@ interface CachedRowModels_FeatureMap<in out TFeatures extends TableFeatures, in
20
20
  type CachedRowModels<TFeatures extends TableFeatures, TData extends RowData> = {
21
21
  CachedRowModel_Core: () => RowModel<TFeatures, TData>;
22
22
  } & ExtractFeatureMapTypes<TFeatures, CachedRowModels_FeatureMap<TFeatures, TData>>;
23
- type CachedRowModel_All<TFeatures extends TableFeatures, TData extends RowData = any> = Partial<CachedRowModel_Core<TFeatures, TData> & CachedRowModel_Expanded<TFeatures, TData> & CachedRowModel_Faceted<TFeatures, TData> & CachedRowModel_Filtered<TFeatures, TData> & CachedRowModel_Grouped<TFeatures, TData> & CachedRowModel_Paginated<TFeatures, TData> & CachedRowModel_Sorted<TFeatures, TData>>;
23
+ interface CachedRowModel_All<in out TFeatures extends TableFeatures, in out TData extends RowData = any> extends Partial<CachedRowModel_Core<TFeatures, TData> & CachedRowModel_Expanded<TFeatures, TData> & CachedRowModel_Faceted<TFeatures, TData> & CachedRowModel_Filtered<TFeatures, TData> & CachedRowModel_Grouped<TFeatures, TData> & CachedRowModel_Paginated<TFeatures, TData> & CachedRowModel_Sorted<TFeatures, TData>> {}
24
24
  //#endregion
25
25
  export { CachedRowModel_All, CachedRowModels, CachedRowModels_FeatureMap };
26
26
  //# sourceMappingURL=RowModel.d.ts.map
@@ -12,7 +12,7 @@ interface RowModelFns_FeatureMap<in out TFeatures extends TableFeatures, in out
12
12
  rowSortingFeature: RowModelFns_RowSorting<TFeatures, TData>;
13
13
  }
14
14
  type RowModelFns<TFeatures extends TableFeatures, TData extends RowData> = Partial<ExtractFeatureMapTypes<TFeatures, RowModelFns_FeatureMap<TFeatures, TData>>>;
15
- type RowModelFns_All<TFeatures extends TableFeatures, TData extends RowData> = Partial<RowModelFns_ColumnFiltering<TFeatures, TData> & RowModelFns_ColumnGrouping<TFeatures, TData> & RowModelFns_RowSorting<TFeatures, TData>>;
15
+ interface RowModelFns_All<in out TFeatures extends TableFeatures, in out TData extends RowData> extends Partial<RowModelFns_ColumnFiltering<TFeatures, TData> & RowModelFns_ColumnGrouping<TFeatures, TData> & RowModelFns_RowSorting<TFeatures, TData>> {}
16
16
  //#endregion
17
17
  export { RowModelFns, RowModelFns_All, RowModelFns_Core, RowModelFns_FeatureMap };
18
18
  //# sourceMappingURL=RowModelFns.d.cts.map
@@ -12,7 +12,7 @@ interface RowModelFns_FeatureMap<in out TFeatures extends TableFeatures, in out
12
12
  rowSortingFeature: RowModelFns_RowSorting<TFeatures, TData>;
13
13
  }
14
14
  type RowModelFns<TFeatures extends TableFeatures, TData extends RowData> = Partial<ExtractFeatureMapTypes<TFeatures, RowModelFns_FeatureMap<TFeatures, TData>>>;
15
- type RowModelFns_All<TFeatures extends TableFeatures, TData extends RowData> = Partial<RowModelFns_ColumnFiltering<TFeatures, TData> & RowModelFns_ColumnGrouping<TFeatures, TData> & RowModelFns_RowSorting<TFeatures, TData>>;
15
+ interface RowModelFns_All<in out TFeatures extends TableFeatures, in out TData extends RowData> extends Partial<RowModelFns_ColumnFiltering<TFeatures, TData> & RowModelFns_ColumnGrouping<TFeatures, TData> & RowModelFns_RowSorting<TFeatures, TData>> {}
16
16
  //#endregion
17
17
  export { RowModelFns, RowModelFns_All, RowModelFns_Core, RowModelFns_FeatureMap };
18
18
  //# sourceMappingURL=RowModelFns.d.ts.map
@@ -30,7 +30,7 @@ import { ReadonlyStore } from "@tanstack/store";
30
30
  * The core table object that only includes the core table functionality such as column, header, row, and table APIS.
31
31
  * No features are included.
32
32
  */
33
- type Table_Core<TFeatures extends TableFeatures, TData extends RowData> = Table_Table<TFeatures, TData> & Table_Columns<TFeatures, TData> & Table_Rows<TFeatures, TData> & Table_RowModels<TFeatures, TData> & Table_Headers<TFeatures, TData>;
33
+ interface Table_Core<in out TFeatures extends TableFeatures, in out TData extends RowData> extends Table_Table<TFeatures, TData>, Table_Columns<TFeatures, TData>, Table_Rows<TFeatures, TData>, Table_RowModels<TFeatures, TData>, Table_Headers<TFeatures, TData> {}
34
34
  interface Table_FeatureMap<in out TFeatures extends TableFeatures, in out TData extends RowData> {
35
35
  columnFilteringFeature: Table_ColumnFiltering;
36
36
  columnGroupingFeature: Table_ColumnGrouping<TFeatures, TData>;
@@ -59,17 +59,8 @@ type Table<TFeatures extends TableFeatures, TData extends RowData> = Table_Core<
59
59
  type Table_InternalBroadenedKeys = '_rowModels' | '_rowModelFns' | 'options' | 'initialState' | 'store';
60
60
  /**
61
61
  * Internal broad table shape used by feature implementations.
62
- *
63
- * Declared as an interface extending every stock feature's table API (rather
64
- * than the feature-conditional `Table` intersection) so that the compiler can
65
- * relate `Table_Internal` instantiations nominally instead of structurally
66
- * re-expanding the feature-map conditional for every internal call site.
67
- * Mirrors the `*_All` convention used for options, state, and row models.
68
- * Type parameters are annotated `in out` (invariant) so the checker can relate
69
- * instantiations by their type arguments without measuring variance or falling
70
- * back to member-by-member structural comparison.
71
62
  */
72
- interface Table_Internal<in out TFeatures extends TableFeatures, in out TData extends RowData = any> extends Omit<Table_Table<TFeatures, TData>, Table_InternalBroadenedKeys>, Table_Columns<TFeatures, TData>, Table_Rows<TFeatures, TData>, Table_RowModels<TFeatures, TData>, Table_Headers<TFeatures, TData>, Table_ColumnFiltering, Table_ColumnGrouping<TFeatures, TData>, Table_ColumnOrdering<TFeatures, TData>, Table_ColumnPinning<TFeatures, TData>, Table_ColumnResizing, Table_ColumnSizing, Table_ColumnVisibility<TFeatures, TData>, Table_ColumnFaceting<TFeatures, TData>, Table_GlobalFiltering<TFeatures, TData>, Table_RowExpanding<TFeatures, TData>, Table_RowPagination<TFeatures, TData>, Table_RowPinning<TFeatures, TData>, Table_RowSelection<TFeatures, TData>, Table_RowSorting<TFeatures, TData> {
63
+ interface Table_Internal<in out TFeatures extends TableFeatures, in out TData extends RowData = any> extends Omit<Table_Table<TFeatures, TData>, Table_InternalBroadenedKeys>, Table_Columns<TFeatures, TData>, Table_Rows<TFeatures, TData>, Table_RowModels<TFeatures, TData>, Table_Headers<TFeatures, TData> {
73
64
  _rowModels: CachedRowModel_All<TFeatures, TData>;
74
65
  _rowModelFns: RowModelFns_All<TFeatures, TData>;
75
66
  options: DebugOptions<TableFeatures> & TableOptions_All<TFeatures, TData> & {
@@ -30,7 +30,7 @@ import { ReadonlyStore } from "@tanstack/store";
30
30
  * The core table object that only includes the core table functionality such as column, header, row, and table APIS.
31
31
  * No features are included.
32
32
  */
33
- type Table_Core<TFeatures extends TableFeatures, TData extends RowData> = Table_Table<TFeatures, TData> & Table_Columns<TFeatures, TData> & Table_Rows<TFeatures, TData> & Table_RowModels<TFeatures, TData> & Table_Headers<TFeatures, TData>;
33
+ interface Table_Core<in out TFeatures extends TableFeatures, in out TData extends RowData> extends Table_Table<TFeatures, TData>, Table_Columns<TFeatures, TData>, Table_Rows<TFeatures, TData>, Table_RowModels<TFeatures, TData>, Table_Headers<TFeatures, TData> {}
34
34
  interface Table_FeatureMap<in out TFeatures extends TableFeatures, in out TData extends RowData> {
35
35
  columnFilteringFeature: Table_ColumnFiltering;
36
36
  columnGroupingFeature: Table_ColumnGrouping<TFeatures, TData>;
@@ -59,17 +59,8 @@ type Table<TFeatures extends TableFeatures, TData extends RowData> = Table_Core<
59
59
  type Table_InternalBroadenedKeys = '_rowModels' | '_rowModelFns' | 'options' | 'initialState' | 'store';
60
60
  /**
61
61
  * Internal broad table shape used by feature implementations.
62
- *
63
- * Declared as an interface extending every stock feature's table API (rather
64
- * than the feature-conditional `Table` intersection) so that the compiler can
65
- * relate `Table_Internal` instantiations nominally instead of structurally
66
- * re-expanding the feature-map conditional for every internal call site.
67
- * Mirrors the `*_All` convention used for options, state, and row models.
68
- * Type parameters are annotated `in out` (invariant) so the checker can relate
69
- * instantiations by their type arguments without measuring variance or falling
70
- * back to member-by-member structural comparison.
71
62
  */
72
- interface Table_Internal<in out TFeatures extends TableFeatures, in out TData extends RowData = any> extends Omit<Table_Table<TFeatures, TData>, Table_InternalBroadenedKeys>, Table_Columns<TFeatures, TData>, Table_Rows<TFeatures, TData>, Table_RowModels<TFeatures, TData>, Table_Headers<TFeatures, TData>, Table_ColumnFiltering, Table_ColumnGrouping<TFeatures, TData>, Table_ColumnOrdering<TFeatures, TData>, Table_ColumnPinning<TFeatures, TData>, Table_ColumnResizing, Table_ColumnSizing, Table_ColumnVisibility<TFeatures, TData>, Table_ColumnFaceting<TFeatures, TData>, Table_GlobalFiltering<TFeatures, TData>, Table_RowExpanding<TFeatures, TData>, Table_RowPagination<TFeatures, TData>, Table_RowPinning<TFeatures, TData>, Table_RowSelection<TFeatures, TData>, Table_RowSorting<TFeatures, TData> {
63
+ interface Table_Internal<in out TFeatures extends TableFeatures, in out TData extends RowData = any> extends Omit<Table_Table<TFeatures, TData>, Table_InternalBroadenedKeys>, Table_Columns<TFeatures, TData>, Table_Rows<TFeatures, TData>, Table_RowModels<TFeatures, TData>, Table_Headers<TFeatures, TData> {
73
64
  _rowModels: CachedRowModel_All<TFeatures, TData>;
74
65
  _rowModelFns: RowModelFns_All<TFeatures, TData>;
75
66
  options: DebugOptions<TableFeatures> & TableOptions_All<TFeatures, TData> & {
@@ -42,7 +42,7 @@ type TableState<TFeatures extends TableFeatures> = ExtractFeatureMapTypes<TFeatu
42
42
  * Feature internals use this when they may need to inspect optional slices owned
43
43
  * by other features.
44
44
  */
45
- type TableState_All = Partial<TableState<TableFeatures>>;
45
+ interface TableState_All extends Partial<TableState_ColumnFiltering & TableState_ColumnGrouping & TableState_ColumnOrdering & TableState_ColumnPinning & TableState_ColumnResizing & TableState_ColumnSizing & TableState_ColumnVisibility & TableState_GlobalFiltering & TableState_RowExpanding & TableState_RowPagination & TableState_RowPinning & TableState_RowSelection & TableState_RowSorting> {}
46
46
  //#endregion
47
47
  export { TableState, TableState_All, TableState_FeatureMap };
48
48
  //# sourceMappingURL=TableState.d.cts.map
@@ -42,7 +42,7 @@ type TableState<TFeatures extends TableFeatures> = ExtractFeatureMapTypes<TFeatu
42
42
  * Feature internals use this when they may need to inspect optional slices owned
43
43
  * by other features.
44
44
  */
45
- type TableState_All = Partial<TableState<TableFeatures>>;
45
+ interface TableState_All extends Partial<TableState_ColumnFiltering & TableState_ColumnGrouping & TableState_ColumnOrdering & TableState_ColumnPinning & TableState_ColumnResizing & TableState_ColumnSizing & TableState_ColumnVisibility & TableState_GlobalFiltering & TableState_RowExpanding & TableState_RowPagination & TableState_RowPinning & TableState_RowSelection & TableState_RowSorting> {}
46
46
  //#endregion
47
47
  export { TableState, TableState_All, TableState_FeatureMap };
48
48
  //# sourceMappingURL=TableState.d.ts.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tanstack/table-core",
3
- "version": "9.0.0-beta.11",
3
+ "version": "9.0.0-beta.12",
4
4
  "description": "Headless UI for building powerful tables & datagrids for TS/JS.",
5
5
  "author": "Tanner Linsley",
6
6
  "license": "MIT",
@@ -218,7 +218,7 @@ export function table_getAllLeafColumns<
218
218
  table,
219
219
  'getOrderColumns',
220
220
  table_getOrderColumnsFn,
221
- )(leafColumns)
221
+ )(leafColumns) as Array<Column<TFeatures, TData, unknown>>
222
222
  }
223
223
 
224
224
  /**
@@ -113,7 +113,9 @@ export function buildHeaderGroups<
113
113
  pendingParentHeaders.push(header)
114
114
  }
115
115
 
116
- headerGroup.headers.push(headerToGroup)
116
+ headerGroup.headers.push(
117
+ headerToGroup as Header<TFeatures, TData, unknown>,
118
+ )
117
119
  headerToGroup.headerGroup = headerGroup
118
120
  })
119
121
 
@@ -323,7 +323,7 @@ export function shouldAutoRemoveFilter<
323
323
  ) {
324
324
  return (
325
325
  (filterFn && filterFn.autoRemove
326
- ? filterFn.autoRemove(value, column as Column_Internal<TFeatures, TData>)
326
+ ? filterFn.autoRemove(value, column as any)
327
327
  : false) ||
328
328
  typeof value === 'undefined' ||
329
329
  (typeof value === 'string' && !value)