@tanstack/react-table 8.0.0-alpha.1 → 8.0.0-alpha.2

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":"Headers.js","sources":["../../../src/features/Headers.ts"],"sourcesContent":["import {\n Cell,\n Column,\n FooterGroupProps,\n FooterProps,\n Getter,\n Header,\n HeaderGroup,\n HeaderGroupProps,\n HeaderProps,\n PropGetterValue,\n ReactTable,\n Row,\n} from '../types'\nimport { propGetter, memo, flexRender } from '../utils'\n\nexport type HeadersRow<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n> = {\n _getAllVisibleCells: () => Cell<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getVisibleCells: () => Cell<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getLeftVisibleCells: () => Cell<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getCenterVisibleCells: () => Cell<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getRightVisibleCells: () => Cell<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n}\n\nexport type HeadersInstance<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n> = {\n createHeader: (\n column: Column<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>,\n options: {\n id?: string\n isPlaceholder?: boolean\n placeholderId?: string\n depth: number\n }\n ) => Header<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n getHeaderGroups: () => HeaderGroup<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getLeftHeaderGroups: () => HeaderGroup<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getCenterHeaderGroups: () => HeaderGroup<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getRightHeaderGroups: () => HeaderGroup<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n\n getFooterGroups: () => HeaderGroup<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getCenterFooterGroups: () => HeaderGroup<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getLeftFooterGroups: () => HeaderGroup<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getRightFooterGroups: () => HeaderGroup<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n\n getFlatHeaders: () => Header<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getLeftFlatHeaders: () => Header<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getCenterFlatHeaders: () => Header<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getRightFlatHeaders: () => Header<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n\n getLeafHeaders: () => Header<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getLeftLeafHeaders: () => Header<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getCenterLeafHeaders: () => Header<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getRightLeafHeaders: () => Header<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n\n getHeader: (\n id: string\n ) => Header<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n\n getHeaderGroupProps: <TGetter extends Getter<HeaderGroupProps>>(\n id: string,\n userProps?: TGetter\n ) => undefined | PropGetterValue<HeaderGroupProps, TGetter>\n getFooterGroupProps: <TGetter extends Getter<FooterGroupProps>>(\n id: string,\n userProps?: TGetter\n ) => undefined | PropGetterValue<FooterGroupProps, TGetter>\n getHeaderProps: <TGetter extends Getter<HeaderProps>>(\n headerId: string,\n userProps?: TGetter\n ) => undefined | PropGetterValue<HeaderProps, TGetter>\n getFooterProps: <TGetter extends Getter<FooterProps>>(\n headerId: string,\n userProps?: TGetter\n ) => undefined | PropGetterValue<FooterProps, TGetter>\n getTotalWidth: () => number\n}\n\n//\n\nexport function createRow<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n>(\n row: Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>,\n instance: ReactTable<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n): HeadersRow<TData, TValue, TFilterFns, TSortingFns, TAggregationFns> {\n return {\n _getAllVisibleCells: memo(\n () => [\n row\n .getAllCells()\n .filter(cell => cell.column.getIsVisible())\n .map(d => d.id)\n .join('_'),\n ],\n _ => {\n return row.getAllCells().filter(cell => cell.column.getIsVisible())\n },\n 'row._getAllVisibleCells',\n instance.options.debug\n ),\n getVisibleCells: memo(\n () => [\n row.getLeftVisibleCells(),\n row.getCenterVisibleCells(),\n row.getRightVisibleCells(),\n ],\n (left, center, right) => [...left, ...center, ...right],\n 'row.getVisibleCells',\n instance.options.debug\n ),\n getCenterVisibleCells: memo(\n () => [\n row._getAllVisibleCells(),\n instance.getState().columnPinning.left,\n instance.getState().columnPinning.right,\n ],\n (allCells, left, right) => {\n const leftAndRight = [...(left ?? []), ...(right ?? [])]\n\n return allCells.filter(d => !leftAndRight.includes(d.columnId))\n },\n 'row.getCenterVisibleCells',\n instance.options.debug\n ),\n getLeftVisibleCells: memo(\n () => [\n row._getAllVisibleCells(),\n instance.getState().columnPinning.left,\n ,\n ],\n (allCells, left) => {\n const cells = (left ?? [])\n .map(columnId => allCells.find(cell => cell.columnId === columnId)!)\n .filter(Boolean)\n\n return cells\n },\n 'row.getLeftVisibleCells',\n instance.options.debug\n ),\n getRightVisibleCells: memo(\n () => [\n row._getAllVisibleCells(),\n instance.getState().columnPinning.right,\n ],\n (allCells, right) => {\n const cells = (right ?? [])\n .map(columnId => allCells.find(cell => cell.columnId === columnId)!)\n .filter(Boolean)\n\n return cells\n },\n 'row.getRightVisibleCells',\n instance.options.debug\n ),\n }\n}\n\nexport function getInstance<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n>(\n instance: ReactTable<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n): HeadersInstance<TData, TValue, TFilterFns, TSortingFns, TAggregationFns> {\n return {\n createHeader: (\n column: Column<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>,\n options: {\n id?: string\n isPlaceholder?: boolean\n placeholderId?: string\n depth: number\n }\n ) => {\n const id = options.id ?? column.id\n\n let header: Header<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n > = {\n id,\n column,\n isPlaceholder: options.isPlaceholder,\n placeholderId: options.placeholderId,\n depth: options.depth,\n subHeaders: [],\n colSpan: 0,\n rowSpan: 0,\n getWidth: () => {\n let sum = 0\n\n const recurse = (\n header: Header<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >\n ) => {\n if (header.subHeaders.length) {\n header.subHeaders.forEach(recurse)\n } else {\n sum += header.column.getWidth() ?? 0\n }\n }\n\n recurse(header)\n\n return sum\n },\n getLeafHeaders: (): Header<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[] => {\n const leafHeaders: Header<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[] = []\n\n const recurseHeader = (\n h: Header<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n ) => {\n if (h.subHeaders && h.subHeaders.length) {\n h.subHeaders.map(recurseHeader)\n }\n leafHeaders.push(h)\n }\n\n recurseHeader(header)\n return leafHeaders\n },\n getHeaderProps: userProps =>\n instance.getHeaderProps(header.id, userProps)!,\n getFooterProps: userProps =>\n instance.getFooterProps(header.id, userProps)!,\n renderHeader: () => flexRender(column.header, { header, column }),\n renderFooter: () => flexRender(column.footer, { header, column }),\n }\n\n return header\n },\n\n // Header Groups\n\n getHeaderGroups: memo(\n () => [\n instance.getAllColumns(),\n instance.getVisibleLeafColumns(),\n instance.getState().columnPinning.left,\n instance.getState().columnPinning.right,\n ],\n (allColumns, leafColumns, left, right) => {\n const leftColumns = leafColumns.filter(column =>\n left?.includes(column.id)\n )\n const rightColumns = leafColumns.filter(column =>\n right?.includes(column.id)\n )\n const centerColumns = leafColumns.filter(\n column => !left?.includes(column.id) && !right?.includes(column.id)\n )\n const headerGroups = buildHeaderGroups(\n allColumns,\n [...leftColumns, ...centerColumns, ...rightColumns],\n instance\n )\n\n return headerGroups\n },\n 'getHeaderGroups',\n instance.options.debug\n ),\n\n getCenterHeaderGroups: memo(\n () => [\n instance.getAllColumns(),\n instance.getVisibleLeafColumns(),\n instance.getState().columnPinning.left,\n instance.getState().columnPinning.right,\n ],\n (allColumns, leafColumns, left, right) => {\n leafColumns = leafColumns.filter(\n column => !left?.includes(column.id) && !right?.includes(column.id)\n )\n return buildHeaderGroups(allColumns, leafColumns, instance, 'center')\n },\n 'getCenterHeaderGroups',\n instance.options.debug\n ),\n\n getLeftHeaderGroups: memo(\n () => [\n instance.getAllColumns(),\n instance.getVisibleLeafColumns(),\n instance.getState().columnPinning.left,\n ],\n (allColumns, leafColumns, left) => {\n leafColumns = leafColumns.filter(column => left?.includes(column.id))\n return buildHeaderGroups(allColumns, leafColumns, instance, 'left')\n },\n 'getLeftHeaderGroups',\n instance.options.debug\n ),\n\n getRightHeaderGroups: memo(\n () => [\n instance.getAllColumns(),\n instance.getVisibleLeafColumns(),\n instance.getState().columnPinning.right,\n ],\n (allColumns, leafColumns, right) => {\n leafColumns = leafColumns.filter(column => right?.includes(column.id))\n return buildHeaderGroups(allColumns, leafColumns, instance, 'right')\n },\n 'getRightHeaderGroups',\n instance.options.debug\n ),\n\n // Footer Groups\n\n getFooterGroups: memo(\n () => [instance.getHeaderGroups()],\n headerGroups => {\n return [...headerGroups].reverse()\n },\n 'getFooterGroups',\n instance.options.debug\n ),\n\n getLeftFooterGroups: memo(\n () => [instance.getLeftHeaderGroups()],\n headerGroups => {\n return [...headerGroups].reverse()\n },\n 'getLeftFooterGroups',\n instance.options.debug\n ),\n\n getCenterFooterGroups: memo(\n () => [instance.getCenterHeaderGroups()],\n headerGroups => {\n return [...headerGroups].reverse()\n },\n 'getCenterFooterGroups',\n instance.options.debug\n ),\n\n getRightFooterGroups: memo(\n () => [instance.getRightHeaderGroups()],\n headerGroups => {\n return [...headerGroups].reverse()\n },\n 'getRightFooterGroups',\n instance.options.debug\n ),\n\n // Flat Headers\n\n getFlatHeaders: memo(\n () => [instance.getHeaderGroups()],\n headerGroups => {\n return headerGroups\n .map(headerGroup => {\n return headerGroup.headers\n })\n .flat()\n },\n 'getFlatHeaders',\n instance.options.debug\n ),\n\n getLeftFlatHeaders: memo(\n () => [instance.getLeftHeaderGroups()],\n left => {\n return left\n .map(headerGroup => {\n return headerGroup.headers\n })\n .flat()\n },\n 'getLeftFlatHeaders',\n instance.options.debug\n ),\n\n getCenterFlatHeaders: memo(\n () => [instance.getCenterHeaderGroups()],\n left => {\n return left\n .map(headerGroup => {\n return headerGroup.headers\n })\n .flat()\n },\n 'getCenterFlatHeaders',\n instance.options.debug\n ),\n\n getRightFlatHeaders: memo(\n () => [instance.getRightHeaderGroups()],\n left => {\n return left\n .map(headerGroup => {\n return headerGroup.headers\n })\n .flat()\n },\n 'getRightFlatHeaders',\n instance.options.debug\n ),\n\n // Leaf Headers\n\n getCenterLeafHeaders: memo(\n () => [instance.getCenterFlatHeaders()],\n flatHeaders => {\n return flatHeaders.filter(header => !header.subHeaders?.length)\n },\n 'getCenterLeafHeaders',\n instance.options.debug\n ),\n\n getLeftLeafHeaders: memo(\n () => [instance.getLeftFlatHeaders()],\n flatHeaders => {\n return flatHeaders.filter(header => !header.subHeaders?.length)\n },\n 'getLeftLeafHeaders',\n instance.options.debug\n ),\n\n getRightLeafHeaders: memo(\n () => [instance.getRightFlatHeaders()],\n flatHeaders => {\n return flatHeaders.filter(header => !header.subHeaders?.length)\n },\n 'getRightLeafHeaders',\n instance.options.debug\n ),\n\n getLeafHeaders: memo(\n () => [\n instance.getLeftHeaderGroups(),\n instance.getCenterHeaderGroups(),\n instance.getRightHeaderGroups(),\n ],\n (left, center, right) => {\n return [\n ...(left[0]?.headers ?? []),\n ...(center[0]?.headers ?? []),\n ...(right[0]?.headers ?? []),\n ]\n .map(header => {\n return header.getLeafHeaders()\n })\n .flat()\n },\n 'getLeafHeaders',\n instance.options.debug\n ),\n\n getHeader: (id: string) => {\n const header = [\n ...instance.getFlatHeaders(),\n ...instance.getCenterFlatHeaders(),\n ...instance.getLeftFlatHeaders(),\n ...instance.getRightFlatHeaders(),\n ].find(d => d.id === id)\n\n if (!header) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(`Could not find header with id: ${id}`)\n }\n throw new Error()\n }\n\n return header\n },\n\n getHeaderGroupProps: (id, userProps) => {\n const headerGroup = instance.getHeaderGroups().find(d => d.id === id)\n\n if (!headerGroup) {\n return\n }\n\n return propGetter(\n {\n key: headerGroup.id,\n role: 'row',\n },\n userProps\n )\n },\n\n getFooterGroupProps: (id, userProps) => {\n const headerGroup = instance.getFooterGroups().find(d => d.id === id)\n\n if (!headerGroup) {\n return\n }\n\n const initialProps = {\n key: headerGroup.id,\n role: 'row',\n }\n\n return propGetter(initialProps, userProps)\n },\n\n getHeaderProps: (id, userProps) => {\n const header = instance.getHeader(id)\n\n if (!header) {\n throw new Error()\n }\n\n const initialProps: HeaderProps = {\n key: header.id,\n role: 'columnheader',\n colSpan: header.colSpan,\n rowSpan: header.rowSpan,\n }\n\n return propGetter(initialProps, userProps)\n },\n\n getFooterProps: (id, userProps) => {\n const header = instance.getHeader(id)\n if (!header) {\n return\n }\n\n const initialProps: FooterProps = {\n key: header.id,\n role: 'columnfooter',\n colSpan: header.colSpan,\n rowSpan: header.rowSpan,\n }\n\n return propGetter(initialProps, userProps)\n },\n\n getTotalWidth: () => {\n let width = 0\n\n instance.getVisibleLeafColumns().forEach(column => {\n width += column.getWidth() ?? 0\n })\n\n return width\n },\n }\n}\n\nexport function buildHeaderGroups<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n>(\n allColumns: Column<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>[],\n columnsToGroup: Column<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[],\n instance: ReactTable<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>,\n headerFamily?: 'center' | 'left' | 'right'\n) {\n // Find the max depth of the columns:\n // build the leaf column row\n // build each buffer row going up\n // placeholder for non-existent level\n // real column for existing level\n\n let maxDepth = 0\n\n const findMaxDepth = (\n columns: Column<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>[],\n depth = 1\n ) => {\n maxDepth = Math.max(maxDepth, depth)\n\n columns\n .filter(column => column.getIsVisible())\n .forEach(column => {\n if (column.columns?.length) {\n findMaxDepth(column.columns, depth + 1)\n }\n }, 0)\n }\n\n findMaxDepth(allColumns)\n\n let headerGroups: HeaderGroup<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[] = []\n\n const createHeaderGroup = (\n headersToGroup: Header<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[],\n depth: number\n ) => {\n // The header group we are creating\n const headerGroup: HeaderGroup<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n > = {\n depth,\n id: [headerFamily, `${depth}`].filter(Boolean).join('_'),\n headers: [],\n getHeaderGroupProps: getterValue =>\n instance.getHeaderGroupProps(`${depth}`, getterValue)!,\n getFooterGroupProps: getterValue =>\n instance.getFooterGroupProps(`${depth}`, getterValue)!,\n }\n\n // The parent columns we're going to scan next\n const parentHeaders: Header<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[] = []\n\n // Scan each column for parents\n headersToGroup.forEach(headerToGroup => {\n // What is the latest (last) parent column?\n\n const latestParentHeader = [...parentHeaders].reverse()[0]\n\n const isLeafHeader = headerToGroup.column.depth === headerGroup.depth\n\n let column: Column<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >\n let isPlaceholder = false\n\n if (isLeafHeader && headerToGroup.column.parent) {\n // The parent header is new\n column = headerToGroup.column.parent\n } else {\n // The parent header is repeated\n column = headerToGroup.column\n isPlaceholder = true\n }\n\n const header = instance.createHeader(column, {\n id: [headerFamily, depth, column.id, headerToGroup?.id]\n .filter(Boolean)\n .join('_'),\n isPlaceholder,\n placeholderId: isPlaceholder\n ? `${parentHeaders.filter(d => d.column === column).length}`\n : undefined,\n depth,\n })\n\n if (!latestParentHeader || latestParentHeader.column !== header.column) {\n header.subHeaders.push(headerToGroup)\n parentHeaders.push(header)\n } else {\n latestParentHeader.subHeaders.push(headerToGroup)\n }\n\n // if (!headerToGroup.isPlaceholder) {\n // headerToGroup.column.header = headerToGroup;\n // }\n\n headerGroup.headers.push(headerToGroup)\n })\n\n headerGroups.push(headerGroup)\n\n if (depth > 0) {\n createHeaderGroup(parentHeaders, depth - 1)\n }\n }\n\n const bottomHeaders = columnsToGroup.map(column =>\n instance.createHeader(column, {\n depth: maxDepth,\n })\n )\n\n createHeaderGroup(bottomHeaders, maxDepth - 1)\n\n headerGroups.reverse()\n\n // headerGroups = headerGroups.filter(headerGroup => {\n // return !headerGroup.headers.every(header => header.isPlaceholder)\n // })\n\n const recurseHeadersForSpans = (\n headers: Header<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>[]\n ) => {\n const filteredHeaders = headers.filter(header =>\n header.column.getIsVisible()\n )\n\n return filteredHeaders.map(header => {\n let colSpan = 0\n let rowSpan = 0\n let childRowSpans = [0]\n\n if (header.subHeaders && header.subHeaders.length) {\n childRowSpans = []\n\n recurseHeadersForSpans(header.subHeaders).forEach(\n ({ colSpan: childColSpan, rowSpan: childRowSpan }) => {\n colSpan += childColSpan\n childRowSpans.push(childRowSpan)\n }\n )\n } else {\n colSpan = 1\n }\n\n const minChildRowSpan = Math.min(...childRowSpans)\n rowSpan = rowSpan + minChildRowSpan\n\n header.colSpan = colSpan > 0 ? colSpan : undefined\n header.rowSpan = rowSpan > 0 ? rowSpan : undefined\n\n return { colSpan, rowSpan }\n })\n }\n\n recurseHeadersForSpans(headerGroups[0]?.headers ?? [])\n\n return headerGroups\n}\n"],"names":["createRow","row","instance","_getAllVisibleCells","memo","getAllCells","filter","cell","column","getIsVisible","map","d","id","join","_","options","debug","getVisibleCells","getLeftVisibleCells","getCenterVisibleCells","getRightVisibleCells","left","center","right","getState","columnPinning","allCells","leftAndRight","includes","columnId","cells","find","Boolean","getInstance","createHeader","header","isPlaceholder","placeholderId","depth","subHeaders","colSpan","rowSpan","getWidth","sum","recurse","length","forEach","getLeafHeaders","leafHeaders","recurseHeader","h","push","getHeaderProps","userProps","getFooterProps","renderHeader","flexRender","renderFooter","footer","getHeaderGroups","getAllColumns","getVisibleLeafColumns","allColumns","leafColumns","leftColumns","rightColumns","centerColumns","headerGroups","buildHeaderGroups","getCenterHeaderGroups","getLeftHeaderGroups","getRightHeaderGroups","getFooterGroups","reverse","getLeftFooterGroups","getCenterFooterGroups","getRightFooterGroups","getFlatHeaders","headerGroup","headers","flat","getLeftFlatHeaders","getCenterFlatHeaders","getRightFlatHeaders","getCenterLeafHeaders","flatHeaders","getLeftLeafHeaders","getRightLeafHeaders","getHeader","process","env","NODE_ENV","console","warn","Error","getHeaderGroupProps","propGetter","key","role","getFooterGroupProps","initialProps","getTotalWidth","width","columnsToGroup","headerFamily","maxDepth","findMaxDepth","columns","Math","max","createHeaderGroup","headersToGroup","getterValue","parentHeaders","headerToGroup","latestParentHeader","isLeafHeader","parent","undefined","bottomHeaders","recurseHeadersForSpans","filteredHeaders","childRowSpans","childColSpan","childRowSpan","minChildRowSpan","min"],"mappings":"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"}
1
+ {"version":3,"file":"Headers.js","sources":["../../../src/features/Headers.ts"],"sourcesContent":["import {\n Cell,\n Column,\n CoreHeader,\n FooterGroupProps,\n FooterProps,\n Getter,\n Header,\n HeaderGroup,\n HeaderGroupProps,\n HeaderProps,\n PropGetterValue,\n ReactTable,\n Row,\n} from '../types'\nimport { propGetter, memo, flexRender } from '../utils'\n\nimport * as ColumnSizing from './ColumnSizing'\n\nexport type HeadersRow<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n> = {\n _getAllVisibleCells: () => Cell<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getVisibleCells: () => Cell<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getLeftVisibleCells: () => Cell<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getCenterVisibleCells: () => Cell<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getRightVisibleCells: () => Cell<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n}\n\nexport type HeadersInstance<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n> = {\n createHeader: (\n column: Column<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>,\n options: {\n id?: string\n isPlaceholder?: boolean\n placeholderId?: string\n depth: number\n }\n ) => Header<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n getHeaderGroups: () => HeaderGroup<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getLeftHeaderGroups: () => HeaderGroup<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getCenterHeaderGroups: () => HeaderGroup<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getRightHeaderGroups: () => HeaderGroup<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n\n getFooterGroups: () => HeaderGroup<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getCenterFooterGroups: () => HeaderGroup<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getLeftFooterGroups: () => HeaderGroup<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getRightFooterGroups: () => HeaderGroup<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n\n getFlatHeaders: () => Header<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getLeftFlatHeaders: () => Header<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getCenterFlatHeaders: () => Header<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getRightFlatHeaders: () => Header<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n\n getLeafHeaders: () => Header<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getLeftLeafHeaders: () => Header<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getCenterLeafHeaders: () => Header<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getRightLeafHeaders: () => Header<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n\n getHeader: (\n id: string\n ) => Header<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n\n getHeaderGroupProps: <TGetter extends Getter<HeaderGroupProps>>(\n id: string,\n userProps?: TGetter\n ) => undefined | PropGetterValue<HeaderGroupProps, TGetter>\n getFooterGroupProps: <TGetter extends Getter<FooterGroupProps>>(\n id: string,\n userProps?: TGetter\n ) => undefined | PropGetterValue<FooterGroupProps, TGetter>\n getHeaderProps: <TGetter extends Getter<HeaderProps>>(\n headerId: string,\n userProps?: TGetter\n ) => undefined | PropGetterValue<HeaderProps, TGetter>\n getFooterProps: <TGetter extends Getter<FooterProps>>(\n headerId: string,\n userProps?: TGetter\n ) => undefined | PropGetterValue<FooterProps, TGetter>\n getTotalWidth: () => number\n}\n\n//\n\nexport function createRow<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n>(\n row: Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>,\n instance: ReactTable<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n): HeadersRow<TData, TValue, TFilterFns, TSortingFns, TAggregationFns> {\n return {\n _getAllVisibleCells: memo(\n () => [\n row\n .getAllCells()\n .filter(cell => cell.column.getIsVisible())\n .map(d => d.id)\n .join('_'),\n ],\n _ => {\n return row.getAllCells().filter(cell => cell.column.getIsVisible())\n },\n 'row._getAllVisibleCells',\n instance.options.debug\n ),\n getVisibleCells: memo(\n () => [\n row.getLeftVisibleCells(),\n row.getCenterVisibleCells(),\n row.getRightVisibleCells(),\n ],\n (left, center, right) => [...left, ...center, ...right],\n 'row.getVisibleCells',\n instance.options.debug\n ),\n getCenterVisibleCells: memo(\n () => [\n row._getAllVisibleCells(),\n instance.getState().columnPinning.left,\n instance.getState().columnPinning.right,\n ],\n (allCells, left, right) => {\n const leftAndRight = [...(left ?? []), ...(right ?? [])]\n\n return allCells.filter(d => !leftAndRight.includes(d.columnId))\n },\n 'row.getCenterVisibleCells',\n instance.options.debug\n ),\n getLeftVisibleCells: memo(\n () => [\n row._getAllVisibleCells(),\n instance.getState().columnPinning.left,\n ,\n ],\n (allCells, left) => {\n const cells = (left ?? [])\n .map(columnId => allCells.find(cell => cell.columnId === columnId)!)\n .filter(Boolean)\n\n return cells\n },\n 'row.getLeftVisibleCells',\n instance.options.debug\n ),\n getRightVisibleCells: memo(\n () => [\n row._getAllVisibleCells(),\n instance.getState().columnPinning.right,\n ],\n (allCells, right) => {\n const cells = (right ?? [])\n .map(columnId => allCells.find(cell => cell.columnId === columnId)!)\n .filter(Boolean)\n\n return cells\n },\n 'row.getRightVisibleCells',\n instance.options.debug\n ),\n }\n}\n\nexport function getInstance<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n>(\n instance: ReactTable<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n): HeadersInstance<TData, TValue, TFilterFns, TSortingFns, TAggregationFns> {\n return {\n createHeader: (\n column: Column<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>,\n options: {\n id?: string\n isPlaceholder?: boolean\n placeholderId?: string\n depth: number\n }\n ) => {\n const id = options.id ?? column.id\n\n let header: CoreHeader<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n > = {\n id,\n column,\n isPlaceholder: options.isPlaceholder,\n placeholderId: options.placeholderId,\n depth: options.depth,\n subHeaders: [],\n colSpan: 0,\n rowSpan: 0,\n getWidth: () => {\n let sum = 0\n\n const recurse = (\n header: CoreHeader<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >\n ) => {\n if (header.subHeaders.length) {\n header.subHeaders.forEach(recurse)\n } else {\n sum += header.column.getWidth() ?? 0\n }\n }\n\n recurse(header)\n\n return sum\n },\n getLeafHeaders: (): Header<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[] => {\n const leafHeaders: CoreHeader<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[] = []\n\n const recurseHeader = (\n h: CoreHeader<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >\n ) => {\n if (h.subHeaders && h.subHeaders.length) {\n h.subHeaders.map(recurseHeader)\n }\n leafHeaders.push(h)\n }\n\n recurseHeader(header)\n\n return leafHeaders as Header<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n },\n getHeaderProps: userProps =>\n instance.getHeaderProps(header.id, userProps)!,\n getFooterProps: userProps =>\n instance.getFooterProps(header.id, userProps)!,\n renderHeader: () => flexRender(column.header, { header, column }),\n renderFooter: () => flexRender(column.footer, { header, column }),\n }\n\n header = Object.assign(\n header,\n ColumnSizing.createHeader(\n header as Header<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >,\n instance\n )\n )\n\n // Yes, we have to convert instance to uknown, because we know more than the compiler here.\n return header as Header<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >\n },\n\n // Header Groups\n\n getHeaderGroups: memo(\n () => [\n instance.getAllColumns(),\n instance.getVisibleLeafColumns(),\n instance.getState().columnPinning.left,\n instance.getState().columnPinning.right,\n ],\n (allColumns, leafColumns, left, right) => {\n const leftColumns = leafColumns.filter(column =>\n left?.includes(column.id)\n )\n const rightColumns = leafColumns.filter(column =>\n right?.includes(column.id)\n )\n const centerColumns = leafColumns.filter(\n column => !left?.includes(column.id) && !right?.includes(column.id)\n )\n const headerGroups = buildHeaderGroups(\n allColumns,\n [...leftColumns, ...centerColumns, ...rightColumns],\n instance\n )\n\n return headerGroups\n },\n 'getHeaderGroups',\n instance.options.debug\n ),\n\n getCenterHeaderGroups: memo(\n () => [\n instance.getAllColumns(),\n instance.getVisibleLeafColumns(),\n instance.getState().columnPinning.left,\n instance.getState().columnPinning.right,\n ],\n (allColumns, leafColumns, left, right) => {\n leafColumns = leafColumns.filter(\n column => !left?.includes(column.id) && !right?.includes(column.id)\n )\n return buildHeaderGroups(allColumns, leafColumns, instance, 'center')\n },\n 'getCenterHeaderGroups',\n instance.options.debug\n ),\n\n getLeftHeaderGroups: memo(\n () => [\n instance.getAllColumns(),\n instance.getVisibleLeafColumns(),\n instance.getState().columnPinning.left,\n ],\n (allColumns, leafColumns, left) => {\n leafColumns = leafColumns.filter(column => left?.includes(column.id))\n return buildHeaderGroups(allColumns, leafColumns, instance, 'left')\n },\n 'getLeftHeaderGroups',\n instance.options.debug\n ),\n\n getRightHeaderGroups: memo(\n () => [\n instance.getAllColumns(),\n instance.getVisibleLeafColumns(),\n instance.getState().columnPinning.right,\n ],\n (allColumns, leafColumns, right) => {\n leafColumns = leafColumns.filter(column => right?.includes(column.id))\n return buildHeaderGroups(allColumns, leafColumns, instance, 'right')\n },\n 'getRightHeaderGroups',\n instance.options.debug\n ),\n\n // Footer Groups\n\n getFooterGroups: memo(\n () => [instance.getHeaderGroups()],\n headerGroups => {\n return [...headerGroups].reverse()\n },\n 'getFooterGroups',\n instance.options.debug\n ),\n\n getLeftFooterGroups: memo(\n () => [instance.getLeftHeaderGroups()],\n headerGroups => {\n return [...headerGroups].reverse()\n },\n 'getLeftFooterGroups',\n instance.options.debug\n ),\n\n getCenterFooterGroups: memo(\n () => [instance.getCenterHeaderGroups()],\n headerGroups => {\n return [...headerGroups].reverse()\n },\n 'getCenterFooterGroups',\n instance.options.debug\n ),\n\n getRightFooterGroups: memo(\n () => [instance.getRightHeaderGroups()],\n headerGroups => {\n return [...headerGroups].reverse()\n },\n 'getRightFooterGroups',\n instance.options.debug\n ),\n\n // Flat Headers\n\n getFlatHeaders: memo(\n () => [instance.getHeaderGroups()],\n headerGroups => {\n return headerGroups\n .map(headerGroup => {\n return headerGroup.headers\n })\n .flat()\n },\n 'getFlatHeaders',\n instance.options.debug\n ),\n\n getLeftFlatHeaders: memo(\n () => [instance.getLeftHeaderGroups()],\n left => {\n return left\n .map(headerGroup => {\n return headerGroup.headers\n })\n .flat()\n },\n 'getLeftFlatHeaders',\n instance.options.debug\n ),\n\n getCenterFlatHeaders: memo(\n () => [instance.getCenterHeaderGroups()],\n left => {\n return left\n .map(headerGroup => {\n return headerGroup.headers\n })\n .flat()\n },\n 'getCenterFlatHeaders',\n instance.options.debug\n ),\n\n getRightFlatHeaders: memo(\n () => [instance.getRightHeaderGroups()],\n left => {\n return left\n .map(headerGroup => {\n return headerGroup.headers\n })\n .flat()\n },\n 'getRightFlatHeaders',\n instance.options.debug\n ),\n\n // Leaf Headers\n\n getCenterLeafHeaders: memo(\n () => [instance.getCenterFlatHeaders()],\n flatHeaders => {\n return flatHeaders.filter(header => !header.subHeaders?.length)\n },\n 'getCenterLeafHeaders',\n instance.options.debug\n ),\n\n getLeftLeafHeaders: memo(\n () => [instance.getLeftFlatHeaders()],\n flatHeaders => {\n return flatHeaders.filter(header => !header.subHeaders?.length)\n },\n 'getLeftLeafHeaders',\n instance.options.debug\n ),\n\n getRightLeafHeaders: memo(\n () => [instance.getRightFlatHeaders()],\n flatHeaders => {\n return flatHeaders.filter(header => !header.subHeaders?.length)\n },\n 'getRightLeafHeaders',\n instance.options.debug\n ),\n\n getLeafHeaders: memo(\n () => [\n instance.getLeftHeaderGroups(),\n instance.getCenterHeaderGroups(),\n instance.getRightHeaderGroups(),\n ],\n (left, center, right) => {\n return [\n ...(left[0]?.headers ?? []),\n ...(center[0]?.headers ?? []),\n ...(right[0]?.headers ?? []),\n ]\n .map(header => {\n return header.getLeafHeaders()\n })\n .flat()\n },\n 'getLeafHeaders',\n instance.options.debug\n ),\n\n getHeader: (id: string) => {\n const header = [\n ...instance.getFlatHeaders(),\n ...instance.getCenterFlatHeaders(),\n ...instance.getLeftFlatHeaders(),\n ...instance.getRightFlatHeaders(),\n ].find(d => d.id === id)\n\n if (!header) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(`Could not find header with id: ${id}`)\n }\n throw new Error()\n }\n\n return header\n },\n\n getHeaderGroupProps: (id, userProps) => {\n const headerGroup = instance.getHeaderGroups().find(d => d.id === id)\n\n if (!headerGroup) {\n return\n }\n\n return propGetter(\n {\n key: headerGroup.id,\n role: 'row',\n },\n userProps\n )\n },\n\n getFooterGroupProps: (id, userProps) => {\n const headerGroup = instance.getFooterGroups().find(d => d.id === id)\n\n if (!headerGroup) {\n return\n }\n\n const initialProps = {\n key: headerGroup.id,\n role: 'row',\n }\n\n return propGetter(initialProps, userProps)\n },\n\n getHeaderProps: (id, userProps) => {\n const header = instance.getHeader(id)\n\n if (!header) {\n throw new Error()\n }\n\n const initialProps: HeaderProps = {\n key: header.id,\n role: 'columnheader',\n colSpan: header.colSpan,\n rowSpan: header.rowSpan,\n }\n\n return propGetter(initialProps, userProps)\n },\n\n getFooterProps: (id, userProps) => {\n const header = instance.getHeader(id)\n if (!header) {\n return\n }\n\n const initialProps: FooterProps = {\n key: header.id,\n role: 'columnfooter',\n colSpan: header.colSpan,\n rowSpan: header.rowSpan,\n }\n\n return propGetter(initialProps, userProps)\n },\n\n getTotalWidth: () => {\n let width = 0\n\n instance.getVisibleLeafColumns().forEach(column => {\n width += column.getWidth() ?? 0\n })\n\n return width\n },\n }\n}\n\nexport function buildHeaderGroups<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n>(\n allColumns: Column<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>[],\n columnsToGroup: Column<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[],\n instance: ReactTable<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>,\n headerFamily?: 'center' | 'left' | 'right'\n) {\n // Find the max depth of the columns:\n // build the leaf column row\n // build each buffer row going up\n // placeholder for non-existent level\n // real column for existing level\n\n let maxDepth = 0\n\n const findMaxDepth = (\n columns: Column<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>[],\n depth = 1\n ) => {\n maxDepth = Math.max(maxDepth, depth)\n\n columns\n .filter(column => column.getIsVisible())\n .forEach(column => {\n if (column.columns?.length) {\n findMaxDepth(column.columns, depth + 1)\n }\n }, 0)\n }\n\n findMaxDepth(allColumns)\n\n let headerGroups: HeaderGroup<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[] = []\n\n const createHeaderGroup = (\n headersToGroup: Header<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[],\n depth: number\n ) => {\n // The header group we are creating\n const headerGroup: HeaderGroup<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n > = {\n depth,\n id: [headerFamily, `${depth}`].filter(Boolean).join('_'),\n headers: [],\n getHeaderGroupProps: getterValue =>\n instance.getHeaderGroupProps(`${depth}`, getterValue)!,\n getFooterGroupProps: getterValue =>\n instance.getFooterGroupProps(`${depth}`, getterValue)!,\n }\n\n // The parent columns we're going to scan next\n const parentHeaders: Header<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[] = []\n\n // Scan each column for parents\n headersToGroup.forEach(headerToGroup => {\n // What is the latest (last) parent column?\n\n const latestParentHeader = [...parentHeaders].reverse()[0]\n\n const isLeafHeader = headerToGroup.column.depth === headerGroup.depth\n\n let column: Column<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >\n let isPlaceholder = false\n\n if (isLeafHeader && headerToGroup.column.parent) {\n // The parent header is new\n column = headerToGroup.column.parent\n } else {\n // The parent header is repeated\n column = headerToGroup.column\n isPlaceholder = true\n }\n\n const header = instance.createHeader(column, {\n id: [headerFamily, depth, column.id, headerToGroup?.id]\n .filter(Boolean)\n .join('_'),\n isPlaceholder,\n placeholderId: isPlaceholder\n ? `${parentHeaders.filter(d => d.column === column).length}`\n : undefined,\n depth,\n })\n\n if (!latestParentHeader || latestParentHeader.column !== header.column) {\n header.subHeaders.push(headerToGroup)\n parentHeaders.push(header)\n } else {\n latestParentHeader.subHeaders.push(headerToGroup)\n }\n\n // if (!headerToGroup.isPlaceholder) {\n // headerToGroup.column.header = headerToGroup;\n // }\n\n headerGroup.headers.push(headerToGroup)\n })\n\n headerGroups.push(headerGroup)\n\n if (depth > 0) {\n createHeaderGroup(parentHeaders, depth - 1)\n }\n }\n\n const bottomHeaders = columnsToGroup.map(column =>\n instance.createHeader(column, {\n depth: maxDepth,\n })\n )\n\n createHeaderGroup(bottomHeaders, maxDepth - 1)\n\n headerGroups.reverse()\n\n // headerGroups = headerGroups.filter(headerGroup => {\n // return !headerGroup.headers.every(header => header.isPlaceholder)\n // })\n\n const recurseHeadersForSpans = (\n headers: Header<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>[]\n ) => {\n const filteredHeaders = headers.filter(header =>\n header.column.getIsVisible()\n )\n\n return filteredHeaders.map(header => {\n let colSpan = 0\n let rowSpan = 0\n let childRowSpans = [0]\n\n if (header.subHeaders && header.subHeaders.length) {\n childRowSpans = []\n\n recurseHeadersForSpans(header.subHeaders).forEach(\n ({ colSpan: childColSpan, rowSpan: childRowSpan }) => {\n colSpan += childColSpan\n childRowSpans.push(childRowSpan)\n }\n )\n } else {\n colSpan = 1\n }\n\n const minChildRowSpan = Math.min(...childRowSpans)\n rowSpan = rowSpan + minChildRowSpan\n\n header.colSpan = colSpan > 0 ? colSpan : undefined\n header.rowSpan = rowSpan > 0 ? rowSpan : undefined\n\n return { colSpan, rowSpan }\n })\n }\n\n recurseHeadersForSpans(headerGroups[0]?.headers ?? [])\n\n return headerGroups\n}\n"],"names":["createRow","row","instance","_getAllVisibleCells","memo","getAllCells","filter","cell","column","getIsVisible","map","d","id","join","_","options","debug","getVisibleCells","getLeftVisibleCells","getCenterVisibleCells","getRightVisibleCells","left","center","right","getState","columnPinning","allCells","leftAndRight","includes","columnId","cells","find","Boolean","getInstance","createHeader","header","isPlaceholder","placeholderId","depth","subHeaders","colSpan","rowSpan","getWidth","sum","recurse","length","forEach","getLeafHeaders","leafHeaders","recurseHeader","h","push","getHeaderProps","userProps","getFooterProps","renderHeader","flexRender","renderFooter","footer","Object","assign","ColumnSizing","getHeaderGroups","getAllColumns","getVisibleLeafColumns","allColumns","leafColumns","leftColumns","rightColumns","centerColumns","headerGroups","buildHeaderGroups","getCenterHeaderGroups","getLeftHeaderGroups","getRightHeaderGroups","getFooterGroups","reverse","getLeftFooterGroups","getCenterFooterGroups","getRightFooterGroups","getFlatHeaders","headerGroup","headers","flat","getLeftFlatHeaders","getCenterFlatHeaders","getRightFlatHeaders","getCenterLeafHeaders","flatHeaders","getLeftLeafHeaders","getRightLeafHeaders","getHeader","process","env","NODE_ENV","console","warn","Error","getHeaderGroupProps","propGetter","key","role","getFooterGroupProps","initialProps","getTotalWidth","width","columnsToGroup","headerFamily","maxDepth","findMaxDepth","columns","Math","max","createHeaderGroup","headersToGroup","getterValue","parentHeaders","headerToGroup","latestParentHeader","isLeafHeader","parent","undefined","bottomHeaders","recurseHeadersForSpans","filteredHeaders","childRowSpans","childColSpan","childRowSpan","minChildRowSpan","min"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sources":["../../src/utils.tsx"],"sourcesContent":["import React from 'react'\nimport { Getter, NoInfer, PropGetterValue, Renderable } from './types'\n\nexport type IsAny<T> = 0 extends 1 & T ? true : false\nexport type PartialKeys<T, K extends keyof T> = Omit<T, K> & Partial<Pick<T, K>>\nexport type RequiredKeys<T, K extends keyof T> = Omit<T, K> &\n Required<Pick<T, K>>\nexport type Overwrite<T, U> = Omit<T, keyof U> & U\n\nexport type DataUpdateFunction<TInput, TOutput> = (input: TInput) => TOutput\n\nexport type Updater<TInput, TOutput> =\n | TOutput\n | DataUpdateFunction<TInput, TOutput>\n\nexport function functionalUpdate<TInput, TOutput = TInput>(\n updater: Updater<TInput, TOutput>,\n input: TInput\n): TOutput {\n return typeof updater === 'function'\n ? (updater as DataUpdateFunction<TInput, TOutput>)(input)\n : updater\n}\n\nexport function noop() {\n //\n}\n\nexport function makeStateUpdater(key: string, instance: unknown) {\n return (updater: Updater<any, any>) => {\n ;(instance as any).setState(<TTableState,>(old: TTableState) => {\n return {\n ...old,\n [key]: functionalUpdate(updater, (old as any)[key]),\n }\n })\n }\n}\n\n// SSR has issues with useLayoutEffect still, so use useEffect during SSR\nexport const safeUseLayoutEffect =\n typeof document !== 'undefined' ? React.useLayoutEffect : React.useEffect\n\nexport function useMountedLayoutEffect(fn: any, deps: any[]) {\n const mountedRef = React.useRef(false)\n\n safeUseLayoutEffect(() => {\n if (mountedRef.current) {\n fn()\n }\n mountedRef.current = true\n // eslint-disable-next-line\n }, deps)\n}\n\nexport function useGetLatest<T>(obj: T): () => T {\n const ref = React.useRef<T>()\n ref.current = obj\n\n return React.useCallback(() => ref.current!, [])\n}\n\ntype AnyFunction = (...args: any) => any\n\nexport function isFunction<T extends AnyFunction>(d: any): d is T {\n return d instanceof Function\n}\n\nexport function flattenBy<TNode>(\n arr: TNode[],\n getChildren: (item: TNode) => TNode[]\n) {\n const flat: TNode[] = []\n\n const recurse = (subArr: TNode[]) => {\n subArr.forEach(item => {\n flat.push(item)\n const children = getChildren(item)\n if (children?.length) {\n recurse(children)\n }\n })\n }\n\n recurse(arr)\n\n return flat\n}\n\ntype PropGetterImpl = <TBaseProps, TGetter extends Getter<TBaseProps>>(\n initial: TBaseProps,\n userProps?: TGetter\n) => PropGetterValue<TBaseProps, TGetter>\n\n// @ts-ignore // Just rely on the type, not the implementation\nexport const propGetter: PropGetterImpl = (initial, getter) => {\n if (isFunction(getter)) {\n return getter(initial)\n }\n\n return {\n ...initial,\n ...(getter ?? {}),\n }\n}\n\nexport function memo<TDeps extends readonly any[], TResult>(\n getDeps: () => [...TDeps],\n fn: (...args: NoInfer<[...TDeps]>) => TResult,\n key?: string,\n debug?: boolean\n): () => TResult {\n let deps: any[] = []\n let result: TResult | undefined\n\n return () => {\n const newDeps = getDeps()\n const newSerializedDeps = newDeps\n const oldSerializedDeps = deps\n\n const depsChanged =\n newSerializedDeps.length !== oldSerializedDeps.length ||\n newSerializedDeps.some(\n (dep: any, index: number) => oldSerializedDeps[index] !== dep\n )\n\n if (depsChanged) {\n if (debug) {\n console.info(key, {\n length: `${oldSerializedDeps.length} -> ${newSerializedDeps.length}`,\n ...newSerializedDeps\n .map((_, index) => {\n if (oldSerializedDeps[index] !== newSerializedDeps[index]) {\n return [\n index,\n oldSerializedDeps[index],\n newSerializedDeps[index],\n ]\n }\n\n return false\n })\n .filter(Boolean)\n .reduce(\n (accu, curr: any) => ({\n ...accu,\n [curr[0]]: curr.slice(1),\n }),\n {}\n ),\n parent,\n })\n }\n result = fn(...newDeps)\n deps = newSerializedDeps\n }\n\n return result!\n }\n}\n\n// Copied from: https://github.com/jonschlinkert/is-plain-object\nexport function isPlainObject(o: any): o is Object {\n if (!hasObjectPrototype(o)) {\n return false\n }\n\n // If has modified constructor\n const ctor = o.constructor\n if (typeof ctor === 'undefined') {\n return true\n }\n\n // If has modified prototype\n const prot = ctor.prototype\n if (!hasObjectPrototype(prot)) {\n return false\n }\n\n // If constructor does not have an Object-specific method\n if (!prot.hasOwnProperty('isPrototypeOf')) {\n return false\n }\n\n // Most likely a plain Object\n return true\n}\n\nfunction hasObjectPrototype(o: any): boolean {\n return Object.prototype.toString.call(o) === '[object Object]'\n}\n\nexport type Render = typeof flexRender\n\nexport function flexRender<TProps extends {}>(\n Comp: Renderable<TProps>,\n props: TProps\n): React.ReactNode {\n return !Comp ? null : isReactComponent(Comp) ? <Comp {...props} /> : Comp\n}\n\nfunction isReactComponent(component: unknown): component is React.FC {\n return (\n isClassComponent(component) ||\n typeof component === 'function' ||\n isExoticComponent(component)\n )\n}\n\nfunction isClassComponent(component: any) {\n return (\n typeof component === 'function' &&\n (() => {\n const proto = Object.getPrototypeOf(component)\n return proto.prototype && proto.prototype.isReactComponent\n })()\n )\n}\n\nfunction isExoticComponent(component: any) {\n return (\n typeof component === 'object' &&\n typeof component.$$typeof === 'symbol' &&\n ['react.memo', 'react.forward_ref'].includes(component.$$typeof.description)\n )\n}\n\n// export function hashString(str: string, seed = 0): string {\n// let h1 = 0xdeadbeef ^ seed,\n// h2 = 0x41c6ce57 ^ seed\n// for (let i = 0, ch; i < str.length; i++) {\n// ch = str.charCodeAt(i)\n// h1 = Math.imul(h1 ^ ch, 2654435761)\n// h2 = Math.imul(h2 ^ ch, 1597334677)\n// }\n// h1 =\n// Math.imul(h1 ^ (h1 >>> 16), 2246822507) ^\n// Math.imul(h2 ^ (h2 >>> 13), 3266489909)\n// h2 =\n// Math.imul(h2 ^ (h2 >>> 16), 2246822507) ^\n// Math.imul(h1 ^ (h1 >>> 13), 3266489909)\n// return (4294967296 * (2097151 & h2) + (h1 >>> 0)).toString()\n// }\n"],"names":["functionalUpdate","updater","input","makeStateUpdater","key","instance","setState","old","document","React","useLayoutEffect","useEffect","isFunction","d","Function","flattenBy","arr","getChildren","flat","recurse","subArr","forEach","item","push","children","length","propGetter","initial","getter","memo","getDeps","fn","debug","deps","result","newDeps","newSerializedDeps","oldSerializedDeps","depsChanged","some","dep","index","console","info","map","_","filter","Boolean","reduce","accu","curr","slice","parent","flexRender","Comp","props","isReactComponent","component","isClassComponent","isExoticComponent","proto","Object","getPrototypeOf","prototype","$$typeof","includes","description"],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sources":["../../src/utils.tsx"],"sourcesContent":["import React from 'react'\nimport {\n Getter,\n NoInfer,\n PropGetterValue,\n Renderable,\n TableState,\n} from './types'\n\nexport type IsAny<T> = 0 extends 1 & T ? true : false\nexport type PartialKeys<T, K extends keyof T> = Omit<T, K> & Partial<Pick<T, K>>\nexport type RequiredKeys<T, K extends keyof T> = Omit<T, K> &\n Required<Pick<T, K>>\nexport type Overwrite<T, U> = Omit<T, keyof U> & U\n\nexport type DataUpdateFunction<TInput, TOutput> = (input: TInput) => TOutput\n\nexport type Updater<TInput, TOutput> =\n | TOutput\n | DataUpdateFunction<TInput, TOutput>\n\nexport function functionalUpdate<TInput, TOutput = TInput>(\n updater: Updater<TInput, TOutput>,\n input: TInput\n): TOutput {\n return typeof updater === 'function'\n ? (updater as DataUpdateFunction<TInput, TOutput>)(input)\n : updater\n}\n\nexport function noop() {\n //\n}\n\nexport function makeStateUpdater(key: keyof TableState, instance: unknown) {\n return (updater: Updater<any, any>) => {\n ;(instance as any).setState(<TTableState,>(old: TTableState) => {\n return {\n ...old,\n [key]: functionalUpdate(updater, (old as any)[key]),\n }\n })\n }\n}\n\n// SSR has issues with useLayoutEffect still, so use useEffect during SSR\nexport const safeUseLayoutEffect =\n typeof document !== 'undefined' ? React.useLayoutEffect : React.useEffect\n\nexport function useMountedLayoutEffect(fn: any, deps: any[]) {\n const mountedRef = React.useRef(false)\n\n safeUseLayoutEffect(() => {\n if (mountedRef.current) {\n fn()\n }\n mountedRef.current = true\n // eslint-disable-next-line\n }, deps)\n}\n\nexport function useGetLatest<T>(obj: T): () => T {\n const ref = React.useRef<T>()\n ref.current = obj\n\n return React.useCallback(() => ref.current!, [])\n}\n\ntype AnyFunction = (...args: any) => any\n\nexport function isFunction<T extends AnyFunction>(d: any): d is T {\n return d instanceof Function\n}\n\nexport function flattenBy<TNode>(\n arr: TNode[],\n getChildren: (item: TNode) => TNode[]\n) {\n const flat: TNode[] = []\n\n const recurse = (subArr: TNode[]) => {\n subArr.forEach(item => {\n flat.push(item)\n const children = getChildren(item)\n if (children?.length) {\n recurse(children)\n }\n })\n }\n\n recurse(arr)\n\n return flat\n}\n\ntype PropGetterImpl = <TBaseProps, TGetter extends Getter<TBaseProps>>(\n initial: TBaseProps,\n userProps?: TGetter\n) => PropGetterValue<TBaseProps, TGetter>\n\n// @ts-ignore // Just rely on the type, not the implementation\nexport const propGetter: PropGetterImpl = (initial, getter) => {\n if (isFunction(getter)) {\n return getter(initial)\n }\n\n return {\n ...initial,\n ...(getter ?? {}),\n }\n}\n\nexport function memo<TDeps extends readonly any[], TResult>(\n getDeps: () => [...TDeps],\n fn: (...args: NoInfer<[...TDeps]>) => TResult,\n key?: string,\n debug?: boolean\n): () => TResult {\n let deps: any[] = []\n let result: TResult | undefined\n\n return () => {\n const newDeps = getDeps()\n const newSerializedDeps = newDeps\n const oldSerializedDeps = deps\n\n const depsChanged =\n newSerializedDeps.length !== oldSerializedDeps.length ||\n newSerializedDeps.some(\n (dep: any, index: number) => oldSerializedDeps[index] !== dep\n )\n\n if (depsChanged) {\n if (debug) {\n console.info(key, {\n length: `${oldSerializedDeps.length} -> ${newSerializedDeps.length}`,\n ...newSerializedDeps\n .map((_, index) => {\n if (oldSerializedDeps[index] !== newSerializedDeps[index]) {\n return [\n index,\n oldSerializedDeps[index],\n newSerializedDeps[index],\n ]\n }\n\n return false\n })\n .filter(Boolean)\n .reduce(\n (accu, curr: any) => ({\n ...accu,\n [curr[0]]: curr.slice(1),\n }),\n {}\n ),\n parent,\n })\n }\n result = fn(...newDeps)\n deps = newSerializedDeps\n }\n\n return result!\n }\n}\n\n// Copied from: https://github.com/jonschlinkert/is-plain-object\nexport function isPlainObject(o: any): o is Object {\n if (!hasObjectPrototype(o)) {\n return false\n }\n\n // If has modified constructor\n const ctor = o.constructor\n if (typeof ctor === 'undefined') {\n return true\n }\n\n // If has modified prototype\n const prot = ctor.prototype\n if (!hasObjectPrototype(prot)) {\n return false\n }\n\n // If constructor does not have an Object-specific method\n if (!prot.hasOwnProperty('isPrototypeOf')) {\n return false\n }\n\n // Most likely a plain Object\n return true\n}\n\nfunction hasObjectPrototype(o: any): boolean {\n return Object.prototype.toString.call(o) === '[object Object]'\n}\n\nexport type Render = typeof flexRender\n\nexport function flexRender<TProps extends {}>(\n Comp: Renderable<TProps>,\n props: TProps\n): React.ReactNode {\n return !Comp ? null : isReactComponent(Comp) ? <Comp {...props} /> : Comp\n}\n\nfunction isReactComponent(component: unknown): component is React.FC {\n return (\n isClassComponent(component) ||\n typeof component === 'function' ||\n isExoticComponent(component)\n )\n}\n\nfunction isClassComponent(component: any) {\n return (\n typeof component === 'function' &&\n (() => {\n const proto = Object.getPrototypeOf(component)\n return proto.prototype && proto.prototype.isReactComponent\n })()\n )\n}\n\nfunction isExoticComponent(component: any) {\n return (\n typeof component === 'object' &&\n typeof component.$$typeof === 'symbol' &&\n ['react.memo', 'react.forward_ref'].includes(component.$$typeof.description)\n )\n}\n\n// export function hashString(str: string, seed = 0): string {\n// let h1 = 0xdeadbeef ^ seed,\n// h2 = 0x41c6ce57 ^ seed\n// for (let i = 0, ch; i < str.length; i++) {\n// ch = str.charCodeAt(i)\n// h1 = Math.imul(h1 ^ ch, 2654435761)\n// h2 = Math.imul(h2 ^ ch, 1597334677)\n// }\n// h1 =\n// Math.imul(h1 ^ (h1 >>> 16), 2246822507) ^\n// Math.imul(h2 ^ (h2 >>> 13), 3266489909)\n// h2 =\n// Math.imul(h2 ^ (h2 >>> 16), 2246822507) ^\n// Math.imul(h1 ^ (h1 >>> 13), 3266489909)\n// return (4294967296 * (2097151 & h2) + (h1 >>> 0)).toString()\n// }\n"],"names":["functionalUpdate","updater","input","makeStateUpdater","key","instance","setState","old","document","React","useLayoutEffect","useEffect","isFunction","d","Function","flattenBy","arr","getChildren","flat","recurse","subArr","forEach","item","push","children","length","propGetter","initial","getter","memo","getDeps","fn","debug","deps","result","newDeps","newSerializedDeps","oldSerializedDeps","depsChanged","some","dep","index","console","info","map","_","filter","Boolean","reduce","accu","curr","slice","parent","flexRender","Comp","props","isReactComponent","component","isClassComponent","isExoticComponent","proto","Object","getPrototypeOf","prototype","$$typeof","includes","description"],"mappings":"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"}