@tanstack/table-core 8.9.11 → 8.10.1

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.
@@ -1 +1 @@
1
- {"version":3,"file":"Pinning.js","sources":["../../../src/features/Pinning.ts"],"sourcesContent":["import { TableFeature } from '../core/table'\nimport {\n OnChangeFn,\n Updater,\n Table,\n Column,\n Row,\n Cell,\n RowData,\n} from '../types'\nimport { makeStateUpdater, memo } from '../utils'\n\nexport type ColumnPinningPosition = false | 'left' | 'right'\n\nexport interface ColumnPinningState {\n left?: string[]\n right?: string[]\n}\n\nexport interface ColumnPinningTableState {\n columnPinning: ColumnPinningState\n}\n\nexport interface ColumnPinningOptions {\n onColumnPinningChange?: OnChangeFn<ColumnPinningState>\n enablePinning?: boolean\n}\n\nexport interface ColumnPinningDefaultOptions {\n onColumnPinningChange: OnChangeFn<ColumnPinningState>\n}\n\nexport interface ColumnPinningColumnDef {\n enablePinning?: boolean\n}\n\nexport interface ColumnPinningColumn {\n getCanPin: () => boolean\n getPinnedIndex: () => number\n getIsPinned: () => ColumnPinningPosition\n pin: (position: ColumnPinningPosition) => void\n}\n\nexport interface ColumnPinningRow<TData extends RowData> {\n getLeftVisibleCells: () => Cell<TData, unknown>[]\n getCenterVisibleCells: () => Cell<TData, unknown>[]\n getRightVisibleCells: () => Cell<TData, unknown>[]\n}\n\nexport interface ColumnPinningInstance<TData extends RowData> {\n setColumnPinning: (updater: Updater<ColumnPinningState>) => void\n resetColumnPinning: (defaultState?: boolean) => void\n getIsSomeColumnsPinned: (position?: ColumnPinningPosition) => boolean\n getLeftLeafColumns: () => Column<TData, unknown>[]\n getRightLeafColumns: () => Column<TData, unknown>[]\n getCenterLeafColumns: () => Column<TData, unknown>[]\n}\n\n//\n\nconst getDefaultPinningState = (): ColumnPinningState => ({\n left: [],\n right: [],\n})\n\nexport const Pinning: TableFeature = {\n getInitialState: (state): ColumnPinningTableState => {\n return {\n columnPinning: getDefaultPinningState(),\n ...state,\n }\n },\n\n getDefaultOptions: <TData extends RowData>(\n table: Table<TData>\n ): ColumnPinningDefaultOptions => {\n return {\n onColumnPinningChange: makeStateUpdater('columnPinning', table),\n }\n },\n\n createColumn: <TData extends RowData, TValue>(\n column: Column<TData, TValue>,\n table: Table<TData>\n ): void => {\n column.pin = position => {\n const columnIds = column\n .getLeafColumns()\n .map(d => d.id)\n .filter(Boolean) as string[]\n\n table.setColumnPinning(old => {\n if (position === 'right') {\n return {\n left: (old?.left ?? []).filter(d => !columnIds?.includes(d)),\n right: [\n ...(old?.right ?? []).filter(d => !columnIds?.includes(d)),\n ...columnIds,\n ],\n }\n }\n\n if (position === 'left') {\n return {\n left: [\n ...(old?.left ?? []).filter(d => !columnIds?.includes(d)),\n ...columnIds,\n ],\n right: (old?.right ?? []).filter(d => !columnIds?.includes(d)),\n }\n }\n\n return {\n left: (old?.left ?? []).filter(d => !columnIds?.includes(d)),\n right: (old?.right ?? []).filter(d => !columnIds?.includes(d)),\n }\n })\n }\n\n column.getCanPin = () => {\n const leafColumns = column.getLeafColumns()\n\n return leafColumns.some(\n d =>\n (d.columnDef.enablePinning ?? true) &&\n (table.options.enablePinning ?? true)\n )\n }\n\n column.getIsPinned = () => {\n const leafColumnIds = column.getLeafColumns().map(d => d.id)\n\n const { left, right } = table.getState().columnPinning\n\n const isLeft = leafColumnIds.some(d => left?.includes(d))\n const isRight = leafColumnIds.some(d => right?.includes(d))\n\n return isLeft ? 'left' : isRight ? 'right' : false\n }\n\n column.getPinnedIndex = () => {\n const position = column.getIsPinned()\n\n return position\n ? table.getState().columnPinning?.[position]?.indexOf(column.id) ?? -1\n : 0\n }\n },\n\n createRow: <TData extends RowData>(\n row: Row<TData>,\n table: Table<TData>\n ): void => {\n row.getCenterVisibleCells = memo(\n () => [\n row._getAllVisibleCells(),\n table.getState().columnPinning.left,\n table.getState().columnPinning.right,\n ],\n (allCells, left, right) => {\n const leftAndRight: string[] = [...(left ?? []), ...(right ?? [])]\n\n return allCells.filter(d => !leftAndRight.includes(d.column.id))\n },\n {\n key:\n process.env.NODE_ENV === 'production' && 'row.getCenterVisibleCells',\n debug: () => table.options.debugAll ?? table.options.debugRows,\n }\n )\n row.getLeftVisibleCells = memo(\n () => [row._getAllVisibleCells(), table.getState().columnPinning.left, ,],\n (allCells, left) => {\n const cells = (left ?? [])\n .map(columnId => allCells.find(cell => cell.column.id === columnId)!)\n .filter(Boolean)\n .map(d => ({ ...d, position: 'left' } as Cell<TData, unknown>))\n\n return cells\n },\n {\n key: process.env.NODE_ENV === 'production' && 'row.getLeftVisibleCells',\n debug: () => table.options.debugAll ?? table.options.debugRows,\n }\n )\n row.getRightVisibleCells = memo(\n () => [row._getAllVisibleCells(), table.getState().columnPinning.right],\n (allCells, right) => {\n const cells = (right ?? [])\n .map(columnId => allCells.find(cell => cell.column.id === columnId)!)\n .filter(Boolean)\n .map(d => ({ ...d, position: 'right' } as Cell<TData, unknown>))\n\n return cells\n },\n {\n key:\n process.env.NODE_ENV === 'production' && 'row.getRightVisibleCells',\n debug: () => table.options.debugAll ?? table.options.debugRows,\n }\n )\n },\n\n createTable: <TData extends RowData>(table: Table<TData>): void => {\n table.setColumnPinning = updater =>\n table.options.onColumnPinningChange?.(updater)\n\n table.resetColumnPinning = defaultState =>\n table.setColumnPinning(\n defaultState\n ? getDefaultPinningState()\n : table.initialState?.columnPinning ?? getDefaultPinningState()\n )\n\n table.getIsSomeColumnsPinned = position => {\n const pinningState = table.getState().columnPinning\n\n if (!position) {\n return Boolean(pinningState.left?.length || pinningState.right?.length)\n }\n return Boolean(pinningState[position]?.length)\n }\n\n table.getLeftLeafColumns = memo(\n () => [table.getAllLeafColumns(), table.getState().columnPinning.left],\n (allColumns, left) => {\n return (left ?? [])\n .map(columnId => allColumns.find(column => column.id === columnId)!)\n .filter(Boolean)\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getLeftLeafColumns',\n debug: () => table.options.debugAll ?? table.options.debugColumns,\n }\n )\n\n table.getRightLeafColumns = memo(\n () => [table.getAllLeafColumns(), table.getState().columnPinning.right],\n (allColumns, right) => {\n return (right ?? [])\n .map(columnId => allColumns.find(column => column.id === columnId)!)\n .filter(Boolean)\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getRightLeafColumns',\n debug: () => table.options.debugAll ?? table.options.debugColumns,\n }\n )\n\n table.getCenterLeafColumns = memo(\n () => [\n table.getAllLeafColumns(),\n table.getState().columnPinning.left,\n table.getState().columnPinning.right,\n ],\n (allColumns, left, right) => {\n const leftAndRight: string[] = [...(left ?? []), ...(right ?? [])]\n\n return allColumns.filter(d => !leftAndRight.includes(d.id))\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getCenterLeafColumns',\n debug: () => table.options.debugAll ?? table.options.debugColumns,\n }\n )\n },\n}\n"],"names":["getDefaultPinningState","left","right","Pinning","getInitialState","state","columnPinning","getDefaultOptions","table","onColumnPinningChange","makeStateUpdater","createColumn","column","pin","position","columnIds","getLeafColumns","map","d","id","filter","Boolean","setColumnPinning","old","_old$left3","_old$right3","_old$left","_old$right","includes","_old$left2","_old$right2","getCanPin","leafColumns","some","_d$columnDef$enablePi","_table$options$enable","columnDef","enablePinning","options","getIsPinned","leafColumnIds","getState","isLeft","isRight","getPinnedIndex","_table$getState$colum","_table$getState$colum2","indexOf","createRow","row","getCenterVisibleCells","memo","_getAllVisibleCells","allCells","leftAndRight","key","process","env","NODE_ENV","debug","_table$options$debugA","debugAll","debugRows","getLeftVisibleCells","cells","columnId","find","cell","_table$options$debugA2","getRightVisibleCells","_table$options$debugA3","createTable","updater","resetColumnPinning","defaultState","_table$initialState$c","_table$initialState","initialState","getIsSomeColumnsPinned","_pinningState$positio","pinningState","_pinningState$left","_pinningState$right","length","getLeftLeafColumns","getAllLeafColumns","allColumns","_table$options$debugA4","debugColumns","getRightLeafColumns","_table$options$debugA5","getCenterLeafColumns","_table$options$debugA6"],"mappings":"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"}
1
+ {"version":3,"file":"Pinning.js","sources":["../../../src/features/Pinning.ts"],"sourcesContent":["import { TableFeature } from '../core/table'\nimport {\n OnChangeFn,\n Updater,\n Table,\n Column,\n Row,\n Cell,\n RowData,\n} from '../types'\nimport { makeStateUpdater, memo } from '../utils'\n\nexport type ColumnPinningPosition = false | 'left' | 'right'\nexport type RowPinningPosition = false | 'top' | 'bottom'\n\nexport interface ColumnPinningState {\n left?: string[]\n right?: string[]\n}\n\nexport interface RowPinningState {\n top?: string[]\n bottom?: string[]\n}\n\nexport interface ColumnPinningTableState {\n columnPinning: ColumnPinningState\n}\n\nexport interface RowPinningTableState {\n rowPinning: RowPinningState\n}\n\nexport interface ColumnPinningOptions {\n onColumnPinningChange?: OnChangeFn<ColumnPinningState>\n enablePinning?: boolean\n enableColumnPinning?: boolean\n}\n\nexport interface RowPinningOptions<TData extends RowData> {\n onRowPinningChange?: OnChangeFn<RowPinningState>\n enableRowPinning?: boolean | ((row: Row<TData>) => boolean)\n keepPinnedRows?: boolean\n}\n\nexport interface ColumnPinningDefaultOptions {\n onColumnPinningChange: OnChangeFn<ColumnPinningState>\n}\n\nexport interface RowPinningDefaultOptions {\n onRowPinningChange: OnChangeFn<RowPinningState>\n}\n\nexport interface ColumnPinningColumnDef {\n enablePinning?: boolean\n}\n\nexport interface ColumnPinningColumn {\n getCanPin: () => boolean\n getPinnedIndex: () => number\n getIsPinned: () => ColumnPinningPosition\n pin: (position: ColumnPinningPosition) => void\n}\n\nexport interface ColumnPinningRow<TData extends RowData> {\n getLeftVisibleCells: () => Cell<TData, unknown>[]\n getCenterVisibleCells: () => Cell<TData, unknown>[]\n getRightVisibleCells: () => Cell<TData, unknown>[]\n}\n\nexport interface RowPinningRow {\n getCanPin: () => boolean\n getIsPinned: () => RowPinningPosition\n getPinnedIndex: () => number\n pin: (\n position: RowPinningPosition,\n includeLeafRows?: boolean,\n includeParentRows?: boolean\n ) => void\n}\n\nexport interface ColumnPinningInstance<TData extends RowData> {\n setColumnPinning: (updater: Updater<ColumnPinningState>) => void\n resetColumnPinning: (defaultState?: boolean) => void\n getIsSomeColumnsPinned: (position?: ColumnPinningPosition) => boolean\n getLeftLeafColumns: () => Column<TData, unknown>[]\n getRightLeafColumns: () => Column<TData, unknown>[]\n getCenterLeafColumns: () => Column<TData, unknown>[]\n}\n\nexport interface RowPinningInstance<TData extends RowData> {\n setRowPinning: (updater: Updater<RowPinningState>) => void\n resetRowPinning: (defaultState?: boolean) => void\n getIsSomeRowsPinned: (position?: RowPinningPosition) => boolean\n _getPinnedRows: (position: 'top' | 'bottom') => Row<TData>[]\n getTopRows: () => Row<TData>[]\n getBottomRows: () => Row<TData>[]\n getCenterRows: () => Row<TData>[]\n}\n\n//\n\nconst getDefaultColumnPinningState = (): ColumnPinningState => ({\n left: [],\n right: [],\n})\n\nconst getDefaultRowPinningState = (): RowPinningState => ({\n top: [],\n bottom: [],\n})\n\nexport const Pinning: TableFeature = {\n getInitialState: (state): ColumnPinningTableState & RowPinningState => {\n return {\n columnPinning: getDefaultColumnPinningState(),\n rowPinning: getDefaultRowPinningState(),\n ...state,\n }\n },\n\n getDefaultOptions: <TData extends RowData>(\n table: Table<TData>\n ): ColumnPinningDefaultOptions & RowPinningDefaultOptions => {\n return {\n onColumnPinningChange: makeStateUpdater('columnPinning', table),\n onRowPinningChange: makeStateUpdater('rowPinning', table),\n }\n },\n\n createColumn: <TData extends RowData, TValue>(\n column: Column<TData, TValue>,\n table: Table<TData>\n ): void => {\n column.pin = position => {\n const columnIds = column\n .getLeafColumns()\n .map(d => d.id)\n .filter(Boolean) as string[]\n\n table.setColumnPinning(old => {\n if (position === 'right') {\n return {\n left: (old?.left ?? []).filter(d => !columnIds?.includes(d)),\n right: [\n ...(old?.right ?? []).filter(d => !columnIds?.includes(d)),\n ...columnIds,\n ],\n }\n }\n\n if (position === 'left') {\n return {\n left: [\n ...(old?.left ?? []).filter(d => !columnIds?.includes(d)),\n ...columnIds,\n ],\n right: (old?.right ?? []).filter(d => !columnIds?.includes(d)),\n }\n }\n\n return {\n left: (old?.left ?? []).filter(d => !columnIds?.includes(d)),\n right: (old?.right ?? []).filter(d => !columnIds?.includes(d)),\n }\n })\n }\n\n column.getCanPin = () => {\n const leafColumns = column.getLeafColumns()\n\n return leafColumns.some(\n d =>\n (d.columnDef.enablePinning ?? true) &&\n (table.options.enableColumnPinning ??\n table.options.enablePinning ??\n true)\n )\n }\n\n column.getIsPinned = () => {\n const leafColumnIds = column.getLeafColumns().map(d => d.id)\n\n const { left, right } = table.getState().columnPinning\n\n const isLeft = leafColumnIds.some(d => left?.includes(d))\n const isRight = leafColumnIds.some(d => right?.includes(d))\n\n return isLeft ? 'left' : isRight ? 'right' : false\n }\n\n column.getPinnedIndex = () => {\n const position = column.getIsPinned()\n\n return position\n ? table.getState().columnPinning?.[position]?.indexOf(column.id) ?? -1\n : 0\n }\n },\n\n createRow: <TData extends RowData>(\n row: Row<TData>,\n table: Table<TData>\n ): void => {\n row.pin = (position, includeLeafRows, includeParentRows) => {\n const leafRowIds = includeLeafRows\n ? row.getLeafRows().map(({ id }) => id)\n : []\n const parentRowIds = includeParentRows\n ? row.getParentRows().map(({ id }) => id)\n : []\n const rowIds = new Set([...parentRowIds, row.id, ...leafRowIds])\n\n table.setRowPinning(old => {\n if (position === 'bottom') {\n return {\n top: (old?.top ?? []).filter(d => !rowIds?.has(d)),\n bottom: [\n ...(old?.bottom ?? []).filter(d => !rowIds?.has(d)),\n ...Array.from(rowIds),\n ],\n }\n }\n\n if (position === 'top') {\n return {\n top: [\n ...(old?.top ?? []).filter(d => !rowIds?.has(d)),\n ...Array.from(rowIds),\n ],\n bottom: (old?.bottom ?? []).filter(d => !rowIds?.has(d)),\n }\n }\n\n return {\n top: (old?.top ?? []).filter(d => !rowIds?.has(d)),\n bottom: (old?.bottom ?? []).filter(d => !rowIds?.has(d)),\n }\n })\n }\n row.getCanPin = () => {\n const { enableRowPinning, enablePinning } = table.options\n if (typeof enableRowPinning === 'function') {\n return enableRowPinning(row)\n }\n return enableRowPinning ?? enablePinning ?? true\n }\n row.getIsPinned = () => {\n const rowIds = [row.id]\n\n const { top, bottom } = table.getState().rowPinning\n\n const isTop = rowIds.some(d => top?.includes(d))\n const isBottom = rowIds.some(d => bottom?.includes(d))\n\n return isTop ? 'top' : isBottom ? 'bottom' : false\n }\n row.getPinnedIndex = () => {\n const position = row.getIsPinned()\n if (!position) return -1\n\n const visiblePinnedRowIds = table\n ._getPinnedRows(position)\n ?.map(({ id }) => id)\n\n return visiblePinnedRowIds?.indexOf(row.id) ?? -1\n }\n row.getCenterVisibleCells = memo(\n () => [\n row._getAllVisibleCells(),\n table.getState().columnPinning.left,\n table.getState().columnPinning.right,\n ],\n (allCells, left, right) => {\n const leftAndRight: string[] = [...(left ?? []), ...(right ?? [])]\n\n return allCells.filter(d => !leftAndRight.includes(d.column.id))\n },\n {\n key:\n process.env.NODE_ENV === 'development' && 'row.getCenterVisibleCells',\n debug: () => table.options.debugAll ?? table.options.debugRows,\n }\n )\n row.getLeftVisibleCells = memo(\n () => [row._getAllVisibleCells(), table.getState().columnPinning.left, ,],\n (allCells, left) => {\n const cells = (left ?? [])\n .map(columnId => allCells.find(cell => cell.column.id === columnId)!)\n .filter(Boolean)\n .map(d => ({ ...d, position: 'left' }) as Cell<TData, unknown>)\n\n return cells\n },\n {\n key:\n process.env.NODE_ENV === 'development' && 'row.getLeftVisibleCells',\n debug: () => table.options.debugAll ?? table.options.debugRows,\n }\n )\n row.getRightVisibleCells = memo(\n () => [row._getAllVisibleCells(), table.getState().columnPinning.right],\n (allCells, right) => {\n const cells = (right ?? [])\n .map(columnId => allCells.find(cell => cell.column.id === columnId)!)\n .filter(Boolean)\n .map(d => ({ ...d, position: 'right' }) as Cell<TData, unknown>)\n\n return cells\n },\n {\n key:\n process.env.NODE_ENV === 'development' && 'row.getRightVisibleCells',\n debug: () => table.options.debugAll ?? table.options.debugRows,\n }\n )\n },\n\n createTable: <TData extends RowData>(table: Table<TData>): void => {\n table.setColumnPinning = updater =>\n table.options.onColumnPinningChange?.(updater)\n\n table.resetColumnPinning = defaultState =>\n table.setColumnPinning(\n defaultState\n ? getDefaultColumnPinningState()\n : table.initialState?.columnPinning ?? getDefaultColumnPinningState()\n )\n\n table.getIsSomeColumnsPinned = position => {\n const pinningState = table.getState().columnPinning\n\n if (!position) {\n return Boolean(pinningState.left?.length || pinningState.right?.length)\n }\n return Boolean(pinningState[position]?.length)\n }\n\n table.getLeftLeafColumns = memo(\n () => [table.getAllLeafColumns(), table.getState().columnPinning.left],\n (allColumns, left) => {\n return (left ?? [])\n .map(columnId => allColumns.find(column => column.id === columnId)!)\n .filter(Boolean)\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getLeftLeafColumns',\n debug: () => table.options.debugAll ?? table.options.debugColumns,\n }\n )\n\n table.getRightLeafColumns = memo(\n () => [table.getAllLeafColumns(), table.getState().columnPinning.right],\n (allColumns, right) => {\n return (right ?? [])\n .map(columnId => allColumns.find(column => column.id === columnId)!)\n .filter(Boolean)\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getRightLeafColumns',\n debug: () => table.options.debugAll ?? table.options.debugColumns,\n }\n )\n\n table.getCenterLeafColumns = memo(\n () => [\n table.getAllLeafColumns(),\n table.getState().columnPinning.left,\n table.getState().columnPinning.right,\n ],\n (allColumns, left, right) => {\n const leftAndRight: string[] = [...(left ?? []), ...(right ?? [])]\n\n return allColumns.filter(d => !leftAndRight.includes(d.id))\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getCenterLeafColumns',\n debug: () => table.options.debugAll ?? table.options.debugColumns,\n }\n )\n\n table.setRowPinning = updater => table.options.onRowPinningChange?.(updater)\n\n table.resetRowPinning = defaultState =>\n table.setRowPinning(\n defaultState\n ? getDefaultRowPinningState()\n : table.initialState?.rowPinning ?? getDefaultRowPinningState()\n )\n\n table.getIsSomeRowsPinned = position => {\n const pinningState = table.getState().rowPinning\n\n if (!position) {\n return Boolean(pinningState.top?.length || pinningState.bottom?.length)\n }\n return Boolean(pinningState[position]?.length)\n }\n\n table._getPinnedRows = (position: 'top' | 'bottom') =>\n memo(\n () => [table.getRowModel().rows, table.getState().rowPinning[position]],\n (visibleRows, pinnedRowIds) => {\n const rows =\n table.options.keepPinnedRows ?? true\n ? //get all rows that are pinned even if they would not be otherwise visible\n //account for expanded parent rows, but not pagination or filtering\n (pinnedRowIds ?? []).map(rowId => {\n const row = table.getRow(rowId, true)\n return row.getIsAllParentsExpanded() ? row : null\n })\n : //else get only visible rows that are pinned\n (pinnedRowIds ?? []).map(\n rowId => visibleRows.find(row => row.id === rowId)!\n )\n\n return rows\n .filter(Boolean)\n .map(d => ({ ...d, position })) as Row<TData>[]\n },\n {\n key:\n process.env.NODE_ENV === 'development' &&\n `row.get${position === 'top' ? 'Top' : 'Bottom'}Rows`,\n debug: () => table.options.debugAll ?? table.options.debugRows,\n }\n )()\n\n table.getTopRows = () => table._getPinnedRows('top')\n\n table.getBottomRows = () => table._getPinnedRows('bottom')\n\n table.getCenterRows = memo(\n () => [\n table.getRowModel().rows,\n table.getState().rowPinning.top,\n table.getState().rowPinning.bottom,\n ],\n (allRows, top, bottom) => {\n const topAndBottom = new Set([...(top ?? []), ...(bottom ?? [])])\n return allRows.filter(d => !topAndBottom.has(d.id))\n },\n {\n key: process.env.NODE_ENV === 'development' && 'row.getCenterRows',\n debug: () => table.options.debugAll ?? table.options.debugRows,\n }\n )\n },\n}\n"],"names":["getDefaultColumnPinningState","left","right","getDefaultRowPinningState","top","bottom","Pinning","getInitialState","state","columnPinning","rowPinning","getDefaultOptions","table","onColumnPinningChange","makeStateUpdater","onRowPinningChange","createColumn","column","pin","position","columnIds","getLeafColumns","map","d","id","filter","Boolean","setColumnPinning","old","_old$left3","_old$right3","_old$left","_old$right","includes","_old$left2","_old$right2","getCanPin","leafColumns","some","_d$columnDef$enablePi","_ref","_table$options$enable","columnDef","enablePinning","options","enableColumnPinning","getIsPinned","leafColumnIds","getState","isLeft","isRight","getPinnedIndex","_table$getState$colum","_table$getState$colum2","indexOf","createRow","row","includeLeafRows","includeParentRows","leafRowIds","getLeafRows","_ref2","parentRowIds","getParentRows","_ref3","rowIds","Set","setRowPinning","_old$top3","_old$bottom3","_old$top","_old$bottom","has","Array","from","_old$top2","_old$bottom2","_ref4","enableRowPinning","isTop","isBottom","_table$_getPinnedRows","_visiblePinnedRowIds$","visiblePinnedRowIds","_getPinnedRows","_ref5","getCenterVisibleCells","memo","_getAllVisibleCells","allCells","leftAndRight","key","process","env","NODE_ENV","debug","_table$options$debugA","debugAll","debugRows","getLeftVisibleCells","cells","columnId","find","cell","_table$options$debugA2","getRightVisibleCells","_table$options$debugA3","createTable","updater","resetColumnPinning","defaultState","_table$initialState$c","_table$initialState","initialState","getIsSomeColumnsPinned","_pinningState$positio","pinningState","_pinningState$left","_pinningState$right","length","getLeftLeafColumns","getAllLeafColumns","allColumns","_table$options$debugA4","debugColumns","getRightLeafColumns","_table$options$debugA5","getCenterLeafColumns","_table$options$debugA6","resetRowPinning","_table$initialState$r","_table$initialState2","getIsSomeRowsPinned","_pinningState$positio2","_pinningState$top","_pinningState$bottom","getRowModel","rows","visibleRows","pinnedRowIds","_table$options$keepPi","keepPinnedRows","rowId","getRow","getIsAllParentsExpanded","_table$options$debugA7","getTopRows","getBottomRows","getCenterRows","allRows","topAndBottom","_table$options$debugA8"],"mappings":"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"}
@@ -905,6 +905,15 @@ const Expanding = {
905
905
  var _table$options$getRow, _table$options$enable, _row$subRows;
906
906
  return (_table$options$getRow = table.options.getRowCanExpand == null ? void 0 : table.options.getRowCanExpand(row)) != null ? _table$options$getRow : ((_table$options$enable = table.options.enableExpanding) != null ? _table$options$enable : true) && !!((_row$subRows = row.subRows) != null && _row$subRows.length);
907
907
  };
908
+ row.getIsAllParentsExpanded = () => {
909
+ let isFullyExpanded = true;
910
+ let currentRow = row;
911
+ while (isFullyExpanded && currentRow.parentId) {
912
+ currentRow = table.getRow(currentRow.parentId, true);
913
+ isFullyExpanded = currentRow.getIsExpanded();
914
+ }
915
+ return isFullyExpanded;
916
+ };
908
917
  row.getToggleExpandedHandler = () => {
909
918
  const canExpand = row.getCanExpand();
910
919
  return () => {
@@ -1628,20 +1637,26 @@ const Pagination = {
1628
1637
 
1629
1638
  //
1630
1639
 
1631
- const getDefaultPinningState = () => ({
1640
+ const getDefaultColumnPinningState = () => ({
1632
1641
  left: [],
1633
1642
  right: []
1634
1643
  });
1644
+ const getDefaultRowPinningState = () => ({
1645
+ top: [],
1646
+ bottom: []
1647
+ });
1635
1648
  const Pinning = {
1636
1649
  getInitialState: state => {
1637
1650
  return {
1638
- columnPinning: getDefaultPinningState(),
1651
+ columnPinning: getDefaultColumnPinningState(),
1652
+ rowPinning: getDefaultRowPinningState(),
1639
1653
  ...state
1640
1654
  };
1641
1655
  },
1642
1656
  getDefaultOptions: table => {
1643
1657
  return {
1644
- onColumnPinningChange: makeStateUpdater('columnPinning', table)
1658
+ onColumnPinningChange: makeStateUpdater('columnPinning', table),
1659
+ onRowPinningChange: makeStateUpdater('rowPinning', table)
1645
1660
  };
1646
1661
  },
1647
1662
  createColumn: (column, table) => {
@@ -1672,8 +1687,8 @@ const Pinning = {
1672
1687
  column.getCanPin = () => {
1673
1688
  const leafColumns = column.getLeafColumns();
1674
1689
  return leafColumns.some(d => {
1675
- var _d$columnDef$enablePi, _table$options$enable;
1676
- return ((_d$columnDef$enablePi = d.columnDef.enablePinning) != null ? _d$columnDef$enablePi : true) && ((_table$options$enable = table.options.enablePinning) != null ? _table$options$enable : true);
1690
+ var _d$columnDef$enablePi, _ref, _table$options$enable;
1691
+ return ((_d$columnDef$enablePi = d.columnDef.enablePinning) != null ? _d$columnDef$enablePi : true) && ((_ref = (_table$options$enable = table.options.enableColumnPinning) != null ? _table$options$enable : table.options.enablePinning) != null ? _ref : true);
1677
1692
  });
1678
1693
  };
1679
1694
  column.getIsPinned = () => {
@@ -1693,11 +1708,80 @@ const Pinning = {
1693
1708
  };
1694
1709
  },
1695
1710
  createRow: (row, table) => {
1711
+ row.pin = (position, includeLeafRows, includeParentRows) => {
1712
+ const leafRowIds = includeLeafRows ? row.getLeafRows().map(_ref2 => {
1713
+ let {
1714
+ id
1715
+ } = _ref2;
1716
+ return id;
1717
+ }) : [];
1718
+ const parentRowIds = includeParentRows ? row.getParentRows().map(_ref3 => {
1719
+ let {
1720
+ id
1721
+ } = _ref3;
1722
+ return id;
1723
+ }) : [];
1724
+ const rowIds = new Set([...parentRowIds, row.id, ...leafRowIds]);
1725
+ table.setRowPinning(old => {
1726
+ var _old$top3, _old$bottom3;
1727
+ if (position === 'bottom') {
1728
+ var _old$top, _old$bottom;
1729
+ return {
1730
+ top: ((_old$top = old == null ? void 0 : old.top) != null ? _old$top : []).filter(d => !(rowIds != null && rowIds.has(d))),
1731
+ bottom: [...((_old$bottom = old == null ? void 0 : old.bottom) != null ? _old$bottom : []).filter(d => !(rowIds != null && rowIds.has(d))), ...Array.from(rowIds)]
1732
+ };
1733
+ }
1734
+ if (position === 'top') {
1735
+ var _old$top2, _old$bottom2;
1736
+ return {
1737
+ top: [...((_old$top2 = old == null ? void 0 : old.top) != null ? _old$top2 : []).filter(d => !(rowIds != null && rowIds.has(d))), ...Array.from(rowIds)],
1738
+ bottom: ((_old$bottom2 = old == null ? void 0 : old.bottom) != null ? _old$bottom2 : []).filter(d => !(rowIds != null && rowIds.has(d)))
1739
+ };
1740
+ }
1741
+ return {
1742
+ top: ((_old$top3 = old == null ? void 0 : old.top) != null ? _old$top3 : []).filter(d => !(rowIds != null && rowIds.has(d))),
1743
+ bottom: ((_old$bottom3 = old == null ? void 0 : old.bottom) != null ? _old$bottom3 : []).filter(d => !(rowIds != null && rowIds.has(d)))
1744
+ };
1745
+ });
1746
+ };
1747
+ row.getCanPin = () => {
1748
+ var _ref4;
1749
+ const {
1750
+ enableRowPinning,
1751
+ enablePinning
1752
+ } = table.options;
1753
+ if (typeof enableRowPinning === 'function') {
1754
+ return enableRowPinning(row);
1755
+ }
1756
+ return (_ref4 = enableRowPinning != null ? enableRowPinning : enablePinning) != null ? _ref4 : true;
1757
+ };
1758
+ row.getIsPinned = () => {
1759
+ const rowIds = [row.id];
1760
+ const {
1761
+ top,
1762
+ bottom
1763
+ } = table.getState().rowPinning;
1764
+ const isTop = rowIds.some(d => top == null ? void 0 : top.includes(d));
1765
+ const isBottom = rowIds.some(d => bottom == null ? void 0 : bottom.includes(d));
1766
+ return isTop ? 'top' : isBottom ? 'bottom' : false;
1767
+ };
1768
+ row.getPinnedIndex = () => {
1769
+ var _table$_getPinnedRows, _visiblePinnedRowIds$;
1770
+ const position = row.getIsPinned();
1771
+ if (!position) return -1;
1772
+ const visiblePinnedRowIds = (_table$_getPinnedRows = table._getPinnedRows(position)) == null ? void 0 : _table$_getPinnedRows.map(_ref5 => {
1773
+ let {
1774
+ id
1775
+ } = _ref5;
1776
+ return id;
1777
+ });
1778
+ return (_visiblePinnedRowIds$ = visiblePinnedRowIds == null ? void 0 : visiblePinnedRowIds.indexOf(row.id)) != null ? _visiblePinnedRowIds$ : -1;
1779
+ };
1696
1780
  row.getCenterVisibleCells = memo(() => [row._getAllVisibleCells(), table.getState().columnPinning.left, table.getState().columnPinning.right], (allCells, left, right) => {
1697
1781
  const leftAndRight = [...(left != null ? left : []), ...(right != null ? right : [])];
1698
1782
  return allCells.filter(d => !leftAndRight.includes(d.column.id));
1699
1783
  }, {
1700
- key: process.env.NODE_ENV === 'production' && 'row.getCenterVisibleCells',
1784
+ key: process.env.NODE_ENV === 'development' && 'row.getCenterVisibleCells',
1701
1785
  debug: () => {
1702
1786
  var _table$options$debugA;
1703
1787
  return (_table$options$debugA = table.options.debugAll) != null ? _table$options$debugA : table.options.debugRows;
@@ -1710,7 +1794,7 @@ const Pinning = {
1710
1794
  }));
1711
1795
  return cells;
1712
1796
  }, {
1713
- key: process.env.NODE_ENV === 'production' && 'row.getLeftVisibleCells',
1797
+ key: process.env.NODE_ENV === 'development' && 'row.getLeftVisibleCells',
1714
1798
  debug: () => {
1715
1799
  var _table$options$debugA2;
1716
1800
  return (_table$options$debugA2 = table.options.debugAll) != null ? _table$options$debugA2 : table.options.debugRows;
@@ -1723,7 +1807,7 @@ const Pinning = {
1723
1807
  }));
1724
1808
  return cells;
1725
1809
  }, {
1726
- key: process.env.NODE_ENV === 'production' && 'row.getRightVisibleCells',
1810
+ key: process.env.NODE_ENV === 'development' && 'row.getRightVisibleCells',
1727
1811
  debug: () => {
1728
1812
  var _table$options$debugA3;
1729
1813
  return (_table$options$debugA3 = table.options.debugAll) != null ? _table$options$debugA3 : table.options.debugRows;
@@ -1734,7 +1818,7 @@ const Pinning = {
1734
1818
  table.setColumnPinning = updater => table.options.onColumnPinningChange == null ? void 0 : table.options.onColumnPinningChange(updater);
1735
1819
  table.resetColumnPinning = defaultState => {
1736
1820
  var _table$initialState$c, _table$initialState;
1737
- return table.setColumnPinning(defaultState ? getDefaultPinningState() : (_table$initialState$c = (_table$initialState = table.initialState) == null ? void 0 : _table$initialState.columnPinning) != null ? _table$initialState$c : getDefaultPinningState());
1821
+ return table.setColumnPinning(defaultState ? getDefaultColumnPinningState() : (_table$initialState$c = (_table$initialState = table.initialState) == null ? void 0 : _table$initialState.columnPinning) != null ? _table$initialState$c : getDefaultColumnPinningState());
1738
1822
  };
1739
1823
  table.getIsSomeColumnsPinned = position => {
1740
1824
  var _pinningState$positio;
@@ -1773,6 +1857,54 @@ const Pinning = {
1773
1857
  return (_table$options$debugA6 = table.options.debugAll) != null ? _table$options$debugA6 : table.options.debugColumns;
1774
1858
  }
1775
1859
  });
1860
+ table.setRowPinning = updater => table.options.onRowPinningChange == null ? void 0 : table.options.onRowPinningChange(updater);
1861
+ table.resetRowPinning = defaultState => {
1862
+ var _table$initialState$r, _table$initialState2;
1863
+ return table.setRowPinning(defaultState ? getDefaultRowPinningState() : (_table$initialState$r = (_table$initialState2 = table.initialState) == null ? void 0 : _table$initialState2.rowPinning) != null ? _table$initialState$r : getDefaultRowPinningState());
1864
+ };
1865
+ table.getIsSomeRowsPinned = position => {
1866
+ var _pinningState$positio2;
1867
+ const pinningState = table.getState().rowPinning;
1868
+ if (!position) {
1869
+ var _pinningState$top, _pinningState$bottom;
1870
+ return Boolean(((_pinningState$top = pinningState.top) == null ? void 0 : _pinningState$top.length) || ((_pinningState$bottom = pinningState.bottom) == null ? void 0 : _pinningState$bottom.length));
1871
+ }
1872
+ return Boolean((_pinningState$positio2 = pinningState[position]) == null ? void 0 : _pinningState$positio2.length);
1873
+ };
1874
+ table._getPinnedRows = position => memo(() => [table.getRowModel().rows, table.getState().rowPinning[position]], (visibleRows, pinnedRowIds) => {
1875
+ var _table$options$keepPi;
1876
+ const rows = ((_table$options$keepPi = table.options.keepPinnedRows) != null ? _table$options$keepPi : true) ?
1877
+ //get all rows that are pinned even if they would not be otherwise visible
1878
+ //account for expanded parent rows, but not pagination or filtering
1879
+ (pinnedRowIds != null ? pinnedRowIds : []).map(rowId => {
1880
+ const row = table.getRow(rowId, true);
1881
+ return row.getIsAllParentsExpanded() ? row : null;
1882
+ }) :
1883
+ //else get only visible rows that are pinned
1884
+ (pinnedRowIds != null ? pinnedRowIds : []).map(rowId => visibleRows.find(row => row.id === rowId));
1885
+ return rows.filter(Boolean).map(d => ({
1886
+ ...d,
1887
+ position
1888
+ }));
1889
+ }, {
1890
+ key: process.env.NODE_ENV === 'development' && `row.get${position === 'top' ? 'Top' : 'Bottom'}Rows`,
1891
+ debug: () => {
1892
+ var _table$options$debugA7;
1893
+ return (_table$options$debugA7 = table.options.debugAll) != null ? _table$options$debugA7 : table.options.debugRows;
1894
+ }
1895
+ })();
1896
+ table.getTopRows = () => table._getPinnedRows('top');
1897
+ table.getBottomRows = () => table._getPinnedRows('bottom');
1898
+ table.getCenterRows = memo(() => [table.getRowModel().rows, table.getState().rowPinning.top, table.getState().rowPinning.bottom], (allRows, top, bottom) => {
1899
+ const topAndBottom = new Set([...(top != null ? top : []), ...(bottom != null ? bottom : [])]);
1900
+ return allRows.filter(d => !topAndBottom.has(d.id));
1901
+ }, {
1902
+ key: process.env.NODE_ENV === 'development' && 'row.getCenterRows',
1903
+ debug: () => {
1904
+ var _table$options$debugA8;
1905
+ return (_table$options$debugA8 = table.options.debugAll) != null ? _table$options$debugA8 : table.options.debugRows;
1906
+ }
1907
+ });
1776
1908
  }
1777
1909
  };
1778
1910
 
@@ -2664,8 +2796,8 @@ function createTable(options) {
2664
2796
  getRowModel: () => {
2665
2797
  return table.getPaginationRowModel();
2666
2798
  },
2667
- getRow: id => {
2668
- const row = table.getRowModel().rowsById[id];
2799
+ getRow: (id, searchAll) => {
2800
+ const row = (searchAll ? table.getCoreRowModel() : table.getRowModel()).rowsById[id];
2669
2801
  if (!row) {
2670
2802
  if (process.env.NODE_ENV !== 'production') {
2671
2803
  throw new Error(`getRow expected an ID, but got ${id}`);