@tanstack/table-core 8.5.27 → 8.5.30

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 (38) hide show
  1. package/build/cjs/core/cell.js.map +1 -1
  2. package/build/cjs/core/column.js.map +1 -1
  3. package/build/cjs/core/headers.js.map +1 -1
  4. package/build/cjs/core/row.js.map +1 -1
  5. package/build/cjs/core/table.js.map +1 -1
  6. package/build/cjs/features/ColumnSizing.js.map +1 -1
  7. package/build/cjs/features/Expanding.js.map +1 -1
  8. package/build/cjs/features/Filters.js.map +1 -1
  9. package/build/cjs/features/Grouping.js.map +1 -1
  10. package/build/cjs/features/Ordering.js.map +1 -1
  11. package/build/cjs/features/Pagination.js.map +1 -1
  12. package/build/cjs/features/Pinning.js.map +1 -1
  13. package/build/cjs/features/RowSelection.js.map +1 -1
  14. package/build/cjs/features/Sorting.js.map +1 -1
  15. package/build/cjs/features/Visibility.js.map +1 -1
  16. package/build/esm/index.js.map +1 -1
  17. package/build/stats-html.html +1 -1
  18. package/build/stats-react.json +310 -310
  19. package/build/types/index.d.ts +265 -238
  20. package/build/umd/index.development.js.map +1 -1
  21. package/build/umd/index.production.js.map +1 -1
  22. package/package.json +1 -1
  23. package/src/core/cell.ts +3 -3
  24. package/src/core/column.ts +2 -5
  25. package/src/core/headers.ts +5 -5
  26. package/src/core/row.ts +1 -1
  27. package/src/core/table.ts +6 -7
  28. package/src/features/ColumnSizing.ts +8 -8
  29. package/src/features/Expanding.ts +4 -4
  30. package/src/features/Filters.ts +17 -11
  31. package/src/features/Grouping.ts +16 -10
  32. package/src/features/Ordering.ts +5 -5
  33. package/src/features/Pagination.ts +6 -6
  34. package/src/features/Pinning.ts +8 -8
  35. package/src/features/RowSelection.ts +4 -4
  36. package/src/features/Sorting.ts +15 -9
  37. package/src/features/Visibility.ts +7 -7
  38. package/src/types.ts +133 -110
@@ -1 +1 @@
1
- {"version":3,"file":"cell.js","sources":["../../../src/core/cell.ts"],"sourcesContent":["import { RowData, Cell, Column, Row, Table } from '../types'\nimport { Getter, memo } from '../utils'\n\nexport type CellContext<TData extends RowData, TValue> = {\n table: Table<TData>\n column: Column<TData, TValue>\n row: Row<TData>\n cell: Cell<TData, TValue>\n getValue: Getter<TValue>\n renderValue: Getter<TValue | null>\n}\n\nexport type CoreCell<TData extends RowData, TValue> = {\n id: string\n getValue: CellContext<TData, TValue>['getValue']\n renderValue: CellContext<TData, TValue>['renderValue']\n row: Row<TData>\n column: Column<TData, TValue>\n getContext: () => CellContext<TData, TValue>\n}\n\nexport function createCell<TData extends RowData, TValue>(\n table: Table<TData>,\n row: Row<TData>,\n column: Column<TData, TValue>,\n columnId: string\n) {\n const getRenderValue = () =>\n cell.getValue() ?? table.options.renderFallbackValue\n\n const cell: CoreCell<TData, TValue> = {\n id: `${row.id}_${column.id}`,\n row,\n column,\n getValue: () => row.getValue(columnId),\n renderValue: getRenderValue,\n getContext: memo(\n () => [table, column, row, cell],\n (table, column, row, cell) => ({\n table,\n column,\n row,\n cell: cell as Cell<TData, TValue>,\n getValue: cell.getValue,\n renderValue: cell.renderValue,\n }),\n {\n key: process.env.NODE_ENV === 'development' && 'cell.getContext',\n debug: () => table.options.debugAll,\n }\n ),\n }\n\n table._features.forEach(feature => {\n Object.assign(\n cell,\n feature.createCell?.(\n cell as Cell<TData, TValue>,\n column,\n row as Row<TData>,\n table\n )\n )\n }, {})\n\n return cell as Cell<TData, TValue>\n}\n"],"names":["createCell","table","row","column","columnId","getRenderValue","cell","getValue","options","renderFallbackValue","id","renderValue","getContext","memo","key","process","env","NODE_ENV","debug","debugAll","_features","forEach","feature","Object","assign"],"mappings":";;;;;;;;;;;;;;;;AAqBO,SAASA,UAAU,CACxBC,KAAmB,EACnBC,GAAe,EACfC,MAA6B,EAC7BC,QAAgB,EAChB;AACA,EAAA,MAAMC,cAAc,GAAG,MACrBC,IAAI,CAACC,QAAQ,EAAE,IAAIN,KAAK,CAACO,OAAO,CAACC,mBAAmB,CAAA;AAEtD,EAAA,MAAMH,IAA6B,GAAG;IACpCI,EAAE,EAAG,GAAER,GAAG,CAACQ,EAAG,CAAGP,CAAAA,EAAAA,MAAM,CAACO,EAAG,CAAC,CAAA;IAC5BR,GAAG;IACHC,MAAM;AACNI,IAAAA,QAAQ,EAAE,MAAML,GAAG,CAACK,QAAQ,CAACH,QAAQ,CAAC;AACtCO,IAAAA,WAAW,EAAEN,cAAc;IAC3BO,UAAU,EAAEC,UAAI,CACd,MAAM,CAACZ,KAAK,EAAEE,MAAM,EAAED,GAAG,EAAEI,IAAI,CAAC,EAChC,CAACL,KAAK,EAAEE,MAAM,EAAED,GAAG,EAAEI,IAAI,MAAM;MAC7BL,KAAK;MACLE,MAAM;MACND,GAAG;AACHI,MAAAA,IAAI,EAAEA,IAA2B;MACjCC,QAAQ,EAAED,IAAI,CAACC,QAAQ;MACvBI,WAAW,EAAEL,IAAI,CAACK,WAAAA;AACpB,KAAC,CAAC,EACF;MACEG,GAAG,EAAEC,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,aAAa,IAAI,iBAAiB;AAChEC,MAAAA,KAAK,EAAE,MAAMjB,KAAK,CAACO,OAAO,CAACW,QAAAA;KAC5B,CAAA;GAEJ,CAAA;AAEDlB,EAAAA,KAAK,CAACmB,SAAS,CAACC,OAAO,CAACC,OAAO,IAAI;IACjCC,MAAM,CAACC,MAAM,CACXlB,IAAI,EACJgB,OAAO,CAACtB,UAAU,IAAlBsB,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,OAAO,CAACtB,UAAU,CAChBM,IAAI,EACJH,MAAM,EACND,GAAG,EACHD,KAAK,CACN,CACF,CAAA;GACF,EAAE,EAAE,CAAC,CAAA;AAEN,EAAA,OAAOK,IAAI,CAAA;AACb;;;;"}
1
+ {"version":3,"file":"cell.js","sources":["../../../src/core/cell.ts"],"sourcesContent":["import { RowData, Cell, Column, Row, Table } from '../types'\nimport { Getter, memo } from '../utils'\n\nexport interface CellContext<TData extends RowData, TValue> {\n table: Table<TData>\n column: Column<TData, TValue>\n row: Row<TData>\n cell: Cell<TData, TValue>\n getValue: Getter<TValue>\n renderValue: Getter<TValue | null>\n}\n\nexport interface CoreCell<TData extends RowData, TValue> {\n id: string\n getValue: CellContext<TData, TValue>['getValue']\n renderValue: CellContext<TData, TValue>['renderValue']\n row: Row<TData>\n column: Column<TData, TValue>\n getContext: () => CellContext<TData, TValue>\n}\n\nexport function createCell<TData extends RowData, TValue>(\n table: Table<TData>,\n row: Row<TData>,\n column: Column<TData, TValue>,\n columnId: string\n): Cell<TData, TValue> {\n const getRenderValue = () =>\n cell.getValue() ?? table.options.renderFallbackValue\n\n const cell: CoreCell<TData, TValue> = {\n id: `${row.id}_${column.id}`,\n row,\n column,\n getValue: () => row.getValue(columnId),\n renderValue: getRenderValue,\n getContext: memo(\n () => [table, column, row, cell],\n (table, column, row, cell) => ({\n table,\n column,\n row,\n cell: cell as Cell<TData, TValue>,\n getValue: cell.getValue,\n renderValue: cell.renderValue,\n }),\n {\n key: process.env.NODE_ENV === 'development' && 'cell.getContext',\n debug: () => table.options.debugAll,\n }\n ),\n }\n\n table._features.forEach(feature => {\n Object.assign(\n cell,\n feature.createCell?.(\n cell as Cell<TData, TValue>,\n column,\n row as Row<TData>,\n table\n )\n )\n }, {})\n\n return cell as Cell<TData, TValue>\n}\n"],"names":["createCell","table","row","column","columnId","getRenderValue","cell","getValue","options","renderFallbackValue","id","renderValue","getContext","memo","key","process","env","NODE_ENV","debug","debugAll","_features","forEach","feature","Object","assign"],"mappings":";;;;;;;;;;;;;;;;AAqBO,SAASA,UAAU,CACxBC,KAAmB,EACnBC,GAAe,EACfC,MAA6B,EAC7BC,QAAgB,EACK;AACrB,EAAA,MAAMC,cAAc,GAAG,MACrBC,IAAI,CAACC,QAAQ,EAAE,IAAIN,KAAK,CAACO,OAAO,CAACC,mBAAmB,CAAA;AAEtD,EAAA,MAAMH,IAA6B,GAAG;IACpCI,EAAE,EAAG,GAAER,GAAG,CAACQ,EAAG,CAAGP,CAAAA,EAAAA,MAAM,CAACO,EAAG,CAAC,CAAA;IAC5BR,GAAG;IACHC,MAAM;AACNI,IAAAA,QAAQ,EAAE,MAAML,GAAG,CAACK,QAAQ,CAACH,QAAQ,CAAC;AACtCO,IAAAA,WAAW,EAAEN,cAAc;IAC3BO,UAAU,EAAEC,UAAI,CACd,MAAM,CAACZ,KAAK,EAAEE,MAAM,EAAED,GAAG,EAAEI,IAAI,CAAC,EAChC,CAACL,KAAK,EAAEE,MAAM,EAAED,GAAG,EAAEI,IAAI,MAAM;MAC7BL,KAAK;MACLE,MAAM;MACND,GAAG;AACHI,MAAAA,IAAI,EAAEA,IAA2B;MACjCC,QAAQ,EAAED,IAAI,CAACC,QAAQ;MACvBI,WAAW,EAAEL,IAAI,CAACK,WAAAA;AACpB,KAAC,CAAC,EACF;MACEG,GAAG,EAAEC,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,aAAa,IAAI,iBAAiB;AAChEC,MAAAA,KAAK,EAAE,MAAMjB,KAAK,CAACO,OAAO,CAACW,QAAAA;KAC5B,CAAA;GAEJ,CAAA;AAEDlB,EAAAA,KAAK,CAACmB,SAAS,CAACC,OAAO,CAACC,OAAO,IAAI;IACjCC,MAAM,CAACC,MAAM,CACXlB,IAAI,EACJgB,OAAO,CAACtB,UAAU,IAAlBsB,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,OAAO,CAACtB,UAAU,CAChBM,IAAI,EACJH,MAAM,EACND,GAAG,EACHD,KAAK,CACN,CACF,CAAA;GACF,EAAE,EAAE,CAAC,CAAA;AAEN,EAAA,OAAOK,IAAI,CAAA;AACb;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"column.js","sources":["../../../src/core/column.ts"],"sourcesContent":["import { TaggedTemplateExpression } from '@babel/types'\nimport {\n Column,\n Table,\n AccessorFn,\n ColumnDef,\n ColumnDefTemplate,\n RowData,\n ColumnMeta,\n ColumnDefResolved,\n} from '../types'\nimport { memo } from '../utils'\n\nexport type CoreColumn<TData extends RowData, TValue> = {\n id: string\n depth: number\n accessorFn?: AccessorFn<TData, TValue>\n columnDef: ColumnDef<TData, TValue>\n columns: Column<TData, TValue>[]\n parent?: Column<TData, TValue>\n getFlatColumns: () => Column<TData, TValue>[]\n getLeafColumns: () => Column<TData, TValue>[]\n}\n\nexport function createColumn<TData extends RowData, TValue>(\n table: Table<TData>,\n columnDef: ColumnDef<TData, TValue>,\n depth: number,\n parent?: Column<TData, TValue>\n) {\n const defaultColumn = table._getDefaultColumnDef()\n\n const resolvedColumnDef = {\n ...defaultColumn,\n ...columnDef,\n } as ColumnDefResolved<TData>\n\n const accessorKey = resolvedColumnDef.accessorKey\n\n let id =\n resolvedColumnDef.id ??\n (accessorKey ? accessorKey.replace('.', '_') : undefined) ??\n (typeof resolvedColumnDef.header === 'string'\n ? resolvedColumnDef.header\n : undefined)\n\n let accessorFn: AccessorFn<TData> | undefined\n\n if (resolvedColumnDef.accessorFn) {\n accessorFn = resolvedColumnDef.accessorFn\n } else if (accessorKey) {\n // Support deep accessor keys\n if (accessorKey.includes('.')) {\n accessorFn = (originalRow: TData) => {\n let result = originalRow as Record<string, any>\n\n for (const key of accessorKey.split('.')) {\n result = result[key]\n if (process.env.NODE_ENV !== 'production' && result === undefined) {\n throw new Error(\n `\"${key}\" in deeply nested key \"${accessorKey}\" returned undefined.`\n )\n }\n }\n\n return result\n }\n } else {\n accessorFn = (originalRow: TData) =>\n (originalRow as any)[resolvedColumnDef.accessorKey]\n }\n }\n\n if (!id) {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error(\n resolvedColumnDef.accessorFn\n ? `Columns require an id when using an accessorFn`\n : `Columns require an id when using a non-string header`\n )\n }\n throw new Error()\n }\n\n let column: CoreColumn<TData, any> = {\n id: `${String(id)}`,\n accessorFn,\n parent: parent as any,\n depth,\n columnDef: resolvedColumnDef as ColumnDef<TData, any>,\n columns: [],\n getFlatColumns: memo(\n () => [true],\n () => {\n return [\n column as Column<TData, TValue>,\n ...column.columns?.flatMap(d => d.getFlatColumns()),\n ]\n },\n {\n key: process.env.NODE_ENV === 'production' && 'column.getFlatColumns',\n debug: () => table.options.debugAll ?? table.options.debugColumns,\n }\n ),\n getLeafColumns: memo(\n () => [table._getOrderColumnsFn()],\n orderColumns => {\n if (column.columns?.length) {\n let leafColumns = column.columns.flatMap(column =>\n column.getLeafColumns()\n )\n\n return orderColumns(leafColumns)\n }\n\n return [column as Column<TData, TValue>]\n },\n {\n key: process.env.NODE_ENV === 'production' && 'column.getLeafColumns',\n debug: () => table.options.debugAll ?? table.options.debugColumns,\n }\n ),\n }\n\n column = table._features.reduce((obj, feature) => {\n return Object.assign(obj, feature.createColumn?.(column, table))\n }, column)\n\n // Yes, we have to convert table to uknown, because we know more than the compiler here.\n return column as Column<TData, TValue>\n}\n"],"names":["createColumn","table","columnDef","depth","parent","defaultColumn","_getDefaultColumnDef","resolvedColumnDef","accessorKey","id","replace","undefined","header","accessorFn","includes","originalRow","result","key","split","process","env","NODE_ENV","Error","column","String","columns","getFlatColumns","memo","flatMap","d","debug","options","debugAll","debugColumns","getLeafColumns","_getOrderColumnsFn","orderColumns","length","leafColumns","_features","reduce","obj","feature","Object","assign"],"mappings":";;;;;;;;;;;;;;;;AAwBO,SAASA,YAAY,CAC1BC,KAAmB,EACnBC,SAAmC,EACnCC,KAAa,EACbC,MAA8B,EAC9B;AACA,EAAA,MAAMC,aAAa,GAAGJ,KAAK,CAACK,oBAAoB,EAAE,CAAA;AAElD,EAAA,MAAMC,iBAAiB,GAAG;AACxB,IAAA,GAAGF,aAAa;IAChB,GAAGH,SAAAA;GACwB,CAAA;AAE7B,EAAA,MAAMM,WAAW,GAAGD,iBAAiB,CAACC,WAAW,CAAA;AAEjD,EAAA,IAAIC,EAAE,GACJF,iBAAiB,CAACE,EAAE,KACnBD,WAAW,GAAGA,WAAW,CAACE,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,GAAGC,SAAS,CAAC,KACxD,OAAOJ,iBAAiB,CAACK,MAAM,KAAK,QAAQ,GACzCL,iBAAiB,CAACK,MAAM,GACxBD,SAAS,CAAC,CAAA;AAEhB,EAAA,IAAIE,UAAyC,CAAA;EAE7C,IAAIN,iBAAiB,CAACM,UAAU,EAAE;IAChCA,UAAU,GAAGN,iBAAiB,CAACM,UAAU,CAAA;GAC1C,MAAM,IAAIL,WAAW,EAAE;AACtB;AACA,IAAA,IAAIA,WAAW,CAACM,QAAQ,CAAC,GAAG,CAAC,EAAE;MAC7BD,UAAU,GAAIE,WAAkB,IAAK;QACnC,IAAIC,MAAM,GAAGD,WAAkC,CAAA;QAE/C,KAAK,MAAME,GAAG,IAAIT,WAAW,CAACU,KAAK,CAAC,GAAG,CAAC,EAAE;AACxCF,UAAAA,MAAM,GAAGA,MAAM,CAACC,GAAG,CAAC,CAAA;UACpB,IAAIE,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,YAAY,IAAIL,MAAM,KAAKL,SAAS,EAAE;YACjE,MAAM,IAAIW,KAAK,CACZ,CAAA,CAAA,EAAGL,GAAI,CAA0BT,wBAAAA,EAAAA,WAAY,uBAAsB,CACrE,CAAA;AACH,WAAA;AACF,SAAA;AAEA,QAAA,OAAOQ,MAAM,CAAA;OACd,CAAA;AACH,KAAC,MAAM;MACLH,UAAU,GAAIE,WAAkB,IAC7BA,WAAW,CAASR,iBAAiB,CAACC,WAAW,CAAC,CAAA;AACvD,KAAA;AACF,GAAA;EAEA,IAAI,CAACC,EAAE,EAAE;AACP,IAAA,IAAIU,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,YAAY,EAAE;MACzC,MAAM,IAAIC,KAAK,CACbf,iBAAiB,CAACM,UAAU,GACvB,CAAA,8CAAA,CAA+C,GAC/C,CAAA,oDAAA,CAAqD,CAC3D,CAAA;AACH,KAAA;IACA,MAAM,IAAIS,KAAK,EAAE,CAAA;AACnB,GAAA;AAEA,EAAA,IAAIC,MAA8B,GAAG;AACnCd,IAAAA,EAAE,EAAG,CAAEe,EAAAA,MAAM,CAACf,EAAE,CAAE,CAAC,CAAA;IACnBI,UAAU;AACVT,IAAAA,MAAM,EAAEA,MAAa;IACrBD,KAAK;AACLD,IAAAA,SAAS,EAAEK,iBAA0C;AACrDkB,IAAAA,OAAO,EAAE,EAAE;IACXC,cAAc,EAAEC,UAAI,CAClB,MAAM,CAAC,IAAI,CAAC,EACZ,MAAM;AAAA,MAAA,IAAA,eAAA,CAAA;AACJ,MAAA,OAAO,CACLJ,MAAM,EACN,uBAAGA,MAAM,CAACE,OAAO,KAAd,IAAA,GAAA,KAAA,CAAA,GAAA,eAAA,CAAgBG,OAAO,CAACC,CAAC,IAAIA,CAAC,CAACH,cAAc,EAAE,CAAC,CACpD,CAAA,CAAA;AACH,KAAC,EACD;MACET,GAAG,EAAEE,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,YAAY,IAAI,uBAAuB;MACrES,KAAK,EAAE,MAAM7B,KAAK,CAAC8B,OAAO,CAACC,QAAQ,IAAI/B,KAAK,CAAC8B,OAAO,CAACE,YAAAA;AACvD,KAAC,CACF;AACDC,IAAAA,cAAc,EAAEP,UAAI,CAClB,MAAM,CAAC1B,KAAK,CAACkC,kBAAkB,EAAE,CAAC,EAClCC,YAAY,IAAI;AAAA,MAAA,IAAA,gBAAA,CAAA;AACd,MAAA,IAAA,CAAA,gBAAA,GAAIb,MAAM,CAACE,OAAO,KAAd,IAAA,IAAA,gBAAA,CAAgBY,MAAM,EAAE;AAC1B,QAAA,IAAIC,WAAW,GAAGf,MAAM,CAACE,OAAO,CAACG,OAAO,CAACL,MAAM,IAC7CA,MAAM,CAACW,cAAc,EAAE,CACxB,CAAA;QAED,OAAOE,YAAY,CAACE,WAAW,CAAC,CAAA;AAClC,OAAA;MAEA,OAAO,CAACf,MAAM,CAA0B,CAAA;AAC1C,KAAC,EACD;MACEN,GAAG,EAAEE,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,YAAY,IAAI,uBAAuB;MACrES,KAAK,EAAE,MAAM7B,KAAK,CAAC8B,OAAO,CAACC,QAAQ,IAAI/B,KAAK,CAAC8B,OAAO,CAACE,YAAAA;KACtD,CAAA;GAEJ,CAAA;EAEDV,MAAM,GAAGtB,KAAK,CAACsC,SAAS,CAACC,MAAM,CAAC,CAACC,GAAG,EAAEC,OAAO,KAAK;AAChD,IAAA,OAAOC,MAAM,CAACC,MAAM,CAACH,GAAG,EAAEC,OAAO,CAAC1C,YAAY,IAApB0C,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,OAAO,CAAC1C,YAAY,CAAGuB,MAAM,EAAEtB,KAAK,CAAC,CAAC,CAAA;GACjE,EAAEsB,MAAM,CAAC,CAAA;;AAEV;AACA,EAAA,OAAOA,MAAM,CAAA;AACf;;;;"}
1
+ {"version":3,"file":"column.js","sources":["../../../src/core/column.ts"],"sourcesContent":["import {\n Column,\n Table,\n AccessorFn,\n ColumnDef,\n RowData,\n ColumnDefResolved,\n} from '../types'\nimport { memo } from '../utils'\n\nexport interface CoreColumn<TData extends RowData, TValue> {\n id: string\n depth: number\n accessorFn?: AccessorFn<TData, TValue>\n columnDef: ColumnDef<TData, TValue>\n columns: Column<TData, TValue>[]\n parent?: Column<TData, TValue>\n getFlatColumns: () => Column<TData, TValue>[]\n getLeafColumns: () => Column<TData, TValue>[]\n}\n\nexport function createColumn<TData extends RowData, TValue>(\n table: Table<TData>,\n columnDef: ColumnDef<TData, TValue>,\n depth: number,\n parent?: Column<TData, TValue>\n): Column<TData, TValue> {\n const defaultColumn = table._getDefaultColumnDef()\n\n const resolvedColumnDef = {\n ...defaultColumn,\n ...columnDef,\n } as ColumnDefResolved<TData>\n\n const accessorKey = resolvedColumnDef.accessorKey\n\n let id =\n resolvedColumnDef.id ??\n (accessorKey ? accessorKey.replace('.', '_') : undefined) ??\n (typeof resolvedColumnDef.header === 'string'\n ? resolvedColumnDef.header\n : undefined)\n\n let accessorFn: AccessorFn<TData> | undefined\n\n if (resolvedColumnDef.accessorFn) {\n accessorFn = resolvedColumnDef.accessorFn\n } else if (accessorKey) {\n // Support deep accessor keys\n if (accessorKey.includes('.')) {\n accessorFn = (originalRow: TData) => {\n let result = originalRow as Record<string, any>\n\n for (const key of accessorKey.split('.')) {\n result = result[key]\n if (process.env.NODE_ENV !== 'production' && result === undefined) {\n throw new Error(\n `\"${key}\" in deeply nested key \"${accessorKey}\" returned undefined.`\n )\n }\n }\n\n return result\n }\n } else {\n accessorFn = (originalRow: TData) =>\n (originalRow as any)[resolvedColumnDef.accessorKey]\n }\n }\n\n if (!id) {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error(\n resolvedColumnDef.accessorFn\n ? `Columns require an id when using an accessorFn`\n : `Columns require an id when using a non-string header`\n )\n }\n throw new Error()\n }\n\n let column: CoreColumn<TData, any> = {\n id: `${String(id)}`,\n accessorFn,\n parent: parent as any,\n depth,\n columnDef: resolvedColumnDef as ColumnDef<TData, any>,\n columns: [],\n getFlatColumns: memo(\n () => [true],\n () => {\n return [\n column as Column<TData, TValue>,\n ...column.columns?.flatMap(d => d.getFlatColumns()),\n ]\n },\n {\n key: process.env.NODE_ENV === 'production' && 'column.getFlatColumns',\n debug: () => table.options.debugAll ?? table.options.debugColumns,\n }\n ),\n getLeafColumns: memo(\n () => [table._getOrderColumnsFn()],\n orderColumns => {\n if (column.columns?.length) {\n let leafColumns = column.columns.flatMap(column =>\n column.getLeafColumns()\n )\n\n return orderColumns(leafColumns)\n }\n\n return [column as Column<TData, TValue>]\n },\n {\n key: process.env.NODE_ENV === 'production' && 'column.getLeafColumns',\n debug: () => table.options.debugAll ?? table.options.debugColumns,\n }\n ),\n }\n\n column = table._features.reduce((obj, feature) => {\n return Object.assign(obj, feature.createColumn?.(column, table))\n }, column)\n\n // Yes, we have to convert table to uknown, because we know more than the compiler here.\n return column as Column<TData, TValue>\n}\n"],"names":["createColumn","table","columnDef","depth","parent","defaultColumn","_getDefaultColumnDef","resolvedColumnDef","accessorKey","id","replace","undefined","header","accessorFn","includes","originalRow","result","key","split","process","env","NODE_ENV","Error","column","String","columns","getFlatColumns","memo","flatMap","d","debug","options","debugAll","debugColumns","getLeafColumns","_getOrderColumnsFn","orderColumns","length","leafColumns","_features","reduce","obj","feature","Object","assign"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"headers.js","sources":["../../../src/core/headers.ts"],"sourcesContent":["import { RowData, Column, Header, HeaderGroup, Table } from '../types'\nimport { memo } from '../utils'\nimport { TableFeature } from './table'\n\nexport type CoreHeaderGroup<TData extends RowData> = {\n id: string\n depth: number\n headers: Header<TData, unknown>[]\n}\n\nexport type HeaderContext<TData, TValue> = {\n table: Table<TData>\n header: Header<TData, TValue>\n column: Column<TData, TValue>\n}\n\nexport type CoreHeader<TData extends RowData, TValue> = {\n id: string\n index: number\n depth: number\n column: Column<TData, TValue>\n headerGroup: HeaderGroup<TData>\n subHeaders: Header<TData, TValue>[]\n colSpan: number\n rowSpan: number\n getLeafHeaders: () => Header<TData, unknown>[]\n isPlaceholder: boolean\n placeholderId?: string\n getContext: () => HeaderContext<TData, TValue>\n}\n\nexport type HeadersInstance<TData extends RowData> = {\n getHeaderGroups: () => HeaderGroup<TData>[]\n getLeftHeaderGroups: () => HeaderGroup<TData>[]\n getCenterHeaderGroups: () => HeaderGroup<TData>[]\n getRightHeaderGroups: () => HeaderGroup<TData>[]\n\n getFooterGroups: () => HeaderGroup<TData>[]\n getLeftFooterGroups: () => HeaderGroup<TData>[]\n getCenterFooterGroups: () => HeaderGroup<TData>[]\n getRightFooterGroups: () => HeaderGroup<TData>[]\n\n getFlatHeaders: () => Header<TData, unknown>[]\n getLeftFlatHeaders: () => Header<TData, unknown>[]\n getCenterFlatHeaders: () => Header<TData, unknown>[]\n getRightFlatHeaders: () => Header<TData, unknown>[]\n\n getLeafHeaders: () => Header<TData, unknown>[]\n getLeftLeafHeaders: () => Header<TData, unknown>[]\n getCenterLeafHeaders: () => Header<TData, unknown>[]\n getRightLeafHeaders: () => Header<TData, unknown>[]\n}\n\n//\n\nfunction createHeader<TData extends RowData, TValue>(\n table: Table<TData>,\n column: Column<TData, TValue>,\n options: {\n id?: string\n isPlaceholder?: boolean\n placeholderId?: string\n index: number\n depth: number\n }\n) {\n const id = options.id ?? column.id\n\n let header: CoreHeader<TData, TValue> = {\n id,\n column,\n index: options.index,\n isPlaceholder: !!options.isPlaceholder,\n placeholderId: options.placeholderId,\n depth: options.depth,\n subHeaders: [],\n colSpan: 0,\n rowSpan: 0,\n headerGroup: null!,\n getLeafHeaders: (): Header<TData, unknown>[] => {\n const leafHeaders: Header<TData, unknown>[] = []\n\n const recurseHeader = (h: CoreHeader<TData, any>) => {\n if (h.subHeaders && h.subHeaders.length) {\n h.subHeaders.map(recurseHeader)\n }\n leafHeaders.push(h as Header<TData, unknown>)\n }\n\n recurseHeader(header)\n\n return leafHeaders\n },\n getContext: () => ({\n table,\n header: header as Header<TData, TValue>,\n column,\n }),\n }\n\n table._features.forEach(feature => {\n Object.assign(header, feature.createHeader?.(header, table))\n })\n\n return header as Header<TData, TValue>\n}\n\nexport const Headers: TableFeature = {\n createTable: <TData extends RowData>(\n table: Table<TData>\n ): HeadersInstance<TData> => {\n return {\n // Header Groups\n\n getHeaderGroups: memo(\n () => [\n table.getAllColumns(),\n table.getVisibleLeafColumns(),\n table.getState().columnPinning.left,\n table.getState().columnPinning.right,\n ],\n (allColumns, leafColumns, left, right) => {\n const leftColumns =\n left\n ?.map(columnId => leafColumns.find(d => d.id === columnId)!)\n .filter(Boolean) ?? []\n\n const rightColumns =\n right\n ?.map(columnId => leafColumns.find(d => d.id === columnId)!)\n .filter(Boolean) ?? []\n\n const centerColumns = leafColumns.filter(\n column => !left?.includes(column.id) && !right?.includes(column.id)\n )\n\n const headerGroups = buildHeaderGroups(\n allColumns,\n [...leftColumns, ...centerColumns, ...rightColumns],\n table\n )\n\n return headerGroups\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getHeaderGroups',\n debug: () => table.options.debugAll ?? table.options.debugHeaders,\n }\n ),\n\n getCenterHeaderGroups: memo(\n () => [\n table.getAllColumns(),\n table.getVisibleLeafColumns(),\n table.getState().columnPinning.left,\n table.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, table, 'center')\n },\n {\n key:\n process.env.NODE_ENV === 'development' && 'getCenterHeaderGroups',\n debug: () => table.options.debugAll ?? table.options.debugHeaders,\n }\n ),\n\n getLeftHeaderGroups: memo(\n () => [\n table.getAllColumns(),\n table.getVisibleLeafColumns(),\n table.getState().columnPinning.left,\n ],\n (allColumns, leafColumns, left) => {\n const orderedLeafColumns =\n left\n ?.map(columnId => leafColumns.find(d => d.id === columnId)!)\n .filter(Boolean) ?? []\n\n return buildHeaderGroups(\n allColumns,\n orderedLeafColumns,\n table,\n 'left'\n )\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getLeftHeaderGroups',\n debug: () => table.options.debugAll ?? table.options.debugHeaders,\n }\n ),\n\n getRightHeaderGroups: memo(\n () => [\n table.getAllColumns(),\n table.getVisibleLeafColumns(),\n table.getState().columnPinning.right,\n ],\n (allColumns, leafColumns, right) => {\n const orderedLeafColumns =\n right\n ?.map(columnId => leafColumns.find(d => d.id === columnId)!)\n .filter(Boolean) ?? []\n\n return buildHeaderGroups(\n allColumns,\n orderedLeafColumns,\n table,\n 'right'\n )\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getRightHeaderGroups',\n debug: () => table.options.debugAll ?? table.options.debugHeaders,\n }\n ),\n\n // Footer Groups\n\n getFooterGroups: memo(\n () => [table.getHeaderGroups()],\n headerGroups => {\n return [...headerGroups].reverse()\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getFooterGroups',\n debug: () => table.options.debugAll ?? table.options.debugHeaders,\n }\n ),\n\n getLeftFooterGroups: memo(\n () => [table.getLeftHeaderGroups()],\n headerGroups => {\n return [...headerGroups].reverse()\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getLeftFooterGroups',\n debug: () => table.options.debugAll ?? table.options.debugHeaders,\n }\n ),\n\n getCenterFooterGroups: memo(\n () => [table.getCenterHeaderGroups()],\n headerGroups => {\n return [...headerGroups].reverse()\n },\n {\n key:\n process.env.NODE_ENV === 'development' && 'getCenterFooterGroups',\n debug: () => table.options.debugAll ?? table.options.debugHeaders,\n }\n ),\n\n getRightFooterGroups: memo(\n () => [table.getRightHeaderGroups()],\n headerGroups => {\n return [...headerGroups].reverse()\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getRightFooterGroups',\n debug: () => table.options.debugAll ?? table.options.debugHeaders,\n }\n ),\n\n // Flat Headers\n\n getFlatHeaders: memo(\n () => [table.getHeaderGroups()],\n headerGroups => {\n return headerGroups\n .map(headerGroup => {\n return headerGroup.headers\n })\n .flat()\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getFlatHeaders',\n debug: () => table.options.debugAll ?? table.options.debugHeaders,\n }\n ),\n\n getLeftFlatHeaders: memo(\n () => [table.getLeftHeaderGroups()],\n left => {\n return left\n .map(headerGroup => {\n return headerGroup.headers\n })\n .flat()\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getLeftFlatHeaders',\n debug: () => table.options.debugAll ?? table.options.debugHeaders,\n }\n ),\n\n getCenterFlatHeaders: memo(\n () => [table.getCenterHeaderGroups()],\n left => {\n return left\n .map(headerGroup => {\n return headerGroup.headers\n })\n .flat()\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getCenterFlatHeaders',\n debug: () => table.options.debugAll ?? table.options.debugHeaders,\n }\n ),\n\n getRightFlatHeaders: memo(\n () => [table.getRightHeaderGroups()],\n left => {\n return left\n .map(headerGroup => {\n return headerGroup.headers\n })\n .flat()\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getRightFlatHeaders',\n debug: () => table.options.debugAll ?? table.options.debugHeaders,\n }\n ),\n\n // Leaf Headers\n\n getCenterLeafHeaders: memo(\n () => [table.getCenterFlatHeaders()],\n flatHeaders => {\n return flatHeaders.filter(header => !header.subHeaders?.length)\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getCenterLeafHeaders',\n debug: () => table.options.debugAll ?? table.options.debugHeaders,\n }\n ),\n\n getLeftLeafHeaders: memo(\n () => [table.getLeftFlatHeaders()],\n flatHeaders => {\n return flatHeaders.filter(header => !header.subHeaders?.length)\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getLeftLeafHeaders',\n debug: () => table.options.debugAll ?? table.options.debugHeaders,\n }\n ),\n\n getRightLeafHeaders: memo(\n () => [table.getRightFlatHeaders()],\n flatHeaders => {\n return flatHeaders.filter(header => !header.subHeaders?.length)\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getRightLeafHeaders',\n debug: () => table.options.debugAll ?? table.options.debugHeaders,\n }\n ),\n\n getLeafHeaders: memo(\n () => [\n table.getLeftHeaderGroups(),\n table.getCenterHeaderGroups(),\n table.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 {\n key: process.env.NODE_ENV === 'development' && 'getLeafHeaders',\n debug: () => table.options.debugAll ?? table.options.debugHeaders,\n }\n ),\n }\n },\n}\n\nexport function buildHeaderGroups<TData extends RowData>(\n allColumns: Column<TData, unknown>[],\n columnsToGroup: Column<TData, unknown>[],\n table: Table<TData>,\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 = (columns: Column<TData, unknown>[], depth = 1) => {\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<TData>[] = []\n\n const createHeaderGroup = (\n headersToGroup: Header<TData, unknown>[],\n depth: number\n ) => {\n // The header group we are creating\n const headerGroup: HeaderGroup<TData> = {\n depth,\n id: [headerFamily, `${depth}`].filter(Boolean).join('_'),\n headers: [],\n }\n\n // The parent columns we're going to scan next\n const pendingParentHeaders: Header<TData, unknown>[] = []\n\n // Scan each column for parents\n headersToGroup.forEach(headerToGroup => {\n // What is the latest (last) parent column?\n\n const latestPendingParentHeader = [...pendingParentHeaders].reverse()[0]\n\n const isLeafHeader = headerToGroup.column.depth === headerGroup.depth\n\n let column: Column<TData, unknown>\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 if (\n latestPendingParentHeader &&\n latestPendingParentHeader?.column === column\n ) {\n // This column is repeated. Add it as a sub header to the next batch\n latestPendingParentHeader.subHeaders.push(headerToGroup)\n } else {\n // This is a new header. Let's create it\n const header = createHeader(table, column, {\n id: [headerFamily, depth, column.id, headerToGroup?.id]\n .filter(Boolean)\n .join('_'),\n isPlaceholder,\n placeholderId: isPlaceholder\n ? `${pendingParentHeaders.filter(d => d.column === column).length}`\n : undefined,\n depth,\n index: pendingParentHeaders.length,\n })\n\n // Add the headerToGroup as a subHeader of the new header\n header.subHeaders.push(headerToGroup)\n // Add the new header to the pendingParentHeaders to get grouped\n // in the next batch\n pendingParentHeaders.push(header)\n }\n\n headerGroup.headers.push(headerToGroup)\n headerToGroup.headerGroup = headerGroup\n })\n\n headerGroups.push(headerGroup)\n\n if (depth > 0) {\n createHeaderGroup(pendingParentHeaders, depth - 1)\n }\n }\n\n const bottomHeaders = columnsToGroup.map((column, index) =>\n createHeader(table, column, {\n depth: maxDepth,\n index,\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, unknown>[]\n ): { colSpan: number; rowSpan: number }[] => {\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\n header.rowSpan = rowSpan\n\n return { colSpan, rowSpan }\n })\n }\n\n recurseHeadersForSpans(headerGroups[0]?.headers ?? [])\n\n return headerGroups\n}\n"],"names":["createHeader","table","column","options","id","header","index","isPlaceholder","placeholderId","depth","subHeaders","colSpan","rowSpan","headerGroup","getLeafHeaders","leafHeaders","recurseHeader","h","length","map","push","getContext","_features","forEach","feature","Object","assign","Headers","createTable","getHeaderGroups","memo","getAllColumns","getVisibleLeafColumns","getState","columnPinning","left","right","allColumns","leafColumns","leftColumns","columnId","find","d","filter","Boolean","rightColumns","centerColumns","includes","headerGroups","buildHeaderGroups","key","process","env","NODE_ENV","debug","debugAll","debugHeaders","getCenterHeaderGroups","getLeftHeaderGroups","orderedLeafColumns","getRightHeaderGroups","getFooterGroups","reverse","getLeftFooterGroups","getCenterFooterGroups","getRightFooterGroups","getFlatHeaders","headers","flat","getLeftFlatHeaders","getCenterFlatHeaders","getRightFlatHeaders","getCenterLeafHeaders","flatHeaders","getLeftLeafHeaders","getRightLeafHeaders","center","columnsToGroup","headerFamily","maxDepth","findMaxDepth","columns","Math","max","getIsVisible","createHeaderGroup","headersToGroup","join","pendingParentHeaders","headerToGroup","latestPendingParentHeader","isLeafHeader","parent","undefined","bottomHeaders","recurseHeadersForSpans","filteredHeaders","childRowSpans","childColSpan","childRowSpan","minChildRowSpan","min"],"mappings":";;;;;;;;;;;;;;;;AAqDA;;AAEA,SAASA,YAAY,CACnBC,KAAmB,EACnBC,MAA6B,EAC7BC,OAMC,EACD;EACA,MAAMC,EAAE,GAAGD,OAAO,CAACC,EAAE,IAAIF,MAAM,CAACE,EAAE,CAAA;AAElC,EAAA,IAAIC,MAAiC,GAAG;IACtCD,EAAE;IACFF,MAAM;IACNI,KAAK,EAAEH,OAAO,CAACG,KAAK;AACpBC,IAAAA,aAAa,EAAE,CAAC,CAACJ,OAAO,CAACI,aAAa;IACtCC,aAAa,EAAEL,OAAO,CAACK,aAAa;IACpCC,KAAK,EAAEN,OAAO,CAACM,KAAK;AACpBC,IAAAA,UAAU,EAAE,EAAE;AACdC,IAAAA,OAAO,EAAE,CAAC;AACVC,IAAAA,OAAO,EAAE,CAAC;AACVC,IAAAA,WAAW,EAAE,IAAK;AAClBC,IAAAA,cAAc,EAAE,MAAgC;MAC9C,MAAMC,WAAqC,GAAG,EAAE,CAAA;MAEhD,MAAMC,aAAa,GAAIC,CAAyB,IAAK;QACnD,IAAIA,CAAC,CAACP,UAAU,IAAIO,CAAC,CAACP,UAAU,CAACQ,MAAM,EAAE;AACvCD,UAAAA,CAAC,CAACP,UAAU,CAACS,GAAG,CAACH,aAAa,CAAC,CAAA;AACjC,SAAA;AACAD,QAAAA,WAAW,CAACK,IAAI,CAACH,CAAC,CAA2B,CAAA;OAC9C,CAAA;MAEDD,aAAa,CAACX,MAAM,CAAC,CAAA;AAErB,MAAA,OAAOU,WAAW,CAAA;KACnB;AACDM,IAAAA,UAAU,EAAE,OAAO;MACjBpB,KAAK;AACLI,MAAAA,MAAM,EAAEA,MAA+B;AACvCH,MAAAA,MAAAA;KACD,CAAA;GACF,CAAA;AAEDD,EAAAA,KAAK,CAACqB,SAAS,CAACC,OAAO,CAACC,OAAO,IAAI;AACjCC,IAAAA,MAAM,CAACC,MAAM,CAACrB,MAAM,EAAEmB,OAAO,CAACxB,YAAY,IAApBwB,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,OAAO,CAACxB,YAAY,CAAGK,MAAM,EAAEJ,KAAK,CAAC,CAAC,CAAA;AAC9D,GAAC,CAAC,CAAA;AAEF,EAAA,OAAOI,MAAM,CAAA;AACf,CAAA;AAEO,MAAMsB,OAAqB,GAAG;EACnCC,WAAW,EACT3B,KAAmB,IACQ;IAC3B,OAAO;AACL;;AAEA4B,MAAAA,eAAe,EAAEC,UAAI,CACnB,MAAM,CACJ7B,KAAK,CAAC8B,aAAa,EAAE,EACrB9B,KAAK,CAAC+B,qBAAqB,EAAE,EAC7B/B,KAAK,CAACgC,QAAQ,EAAE,CAACC,aAAa,CAACC,IAAI,EACnClC,KAAK,CAACgC,QAAQ,EAAE,CAACC,aAAa,CAACE,KAAK,CACrC,EACD,CAACC,UAAU,EAAEC,WAAW,EAAEH,IAAI,EAAEC,KAAK,KAAK;AACxC,QAAA,MAAMG,WAAW,GACf,CAAAJ,IAAI,IAAJA,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,IAAI,CACAhB,GAAG,CAACqB,QAAQ,IAAIF,WAAW,CAACG,IAAI,CAACC,CAAC,IAAIA,CAAC,CAACtC,EAAE,KAAKoC,QAAQ,CAAE,CAAC,CAC3DG,MAAM,CAACC,OAAO,CAAC,KAAI,EAAE,CAAA;AAE1B,QAAA,MAAMC,YAAY,GAChB,CAAAT,KAAK,IAALA,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,KAAK,CACDjB,GAAG,CAACqB,QAAQ,IAAIF,WAAW,CAACG,IAAI,CAACC,CAAC,IAAIA,CAAC,CAACtC,EAAE,KAAKoC,QAAQ,CAAE,CAAC,CAC3DG,MAAM,CAACC,OAAO,CAAC,KAAI,EAAE,CAAA;AAE1B,QAAA,MAAME,aAAa,GAAGR,WAAW,CAACK,MAAM,CACtCzC,MAAM,IAAI,EAACiC,IAAI,IAAJA,IAAAA,IAAAA,IAAI,CAAEY,QAAQ,CAAC7C,MAAM,CAACE,EAAE,CAAC,CAAI,IAAA,EAACgC,KAAK,IAALA,IAAAA,IAAAA,KAAK,CAAEW,QAAQ,CAAC7C,MAAM,CAACE,EAAE,CAAC,CACpE,CAAA,CAAA;AAED,QAAA,MAAM4C,YAAY,GAAGC,iBAAiB,CACpCZ,UAAU,EACV,CAAC,GAAGE,WAAW,EAAE,GAAGO,aAAa,EAAE,GAAGD,YAAY,CAAC,EACnD5C,KAAK,CACN,CAAA;AAED,QAAA,OAAO+C,YAAY,CAAA;AACrB,OAAC,EACD;QACEE,GAAG,EAAEC,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,aAAa,IAAI,iBAAiB;QAChEC,KAAK,EAAE,MAAMrD,KAAK,CAACE,OAAO,CAACoD,QAAQ,IAAItD,KAAK,CAACE,OAAO,CAACqD,YAAAA;AACvD,OAAC,CACF;AAEDC,MAAAA,qBAAqB,EAAE3B,UAAI,CACzB,MAAM,CACJ7B,KAAK,CAAC8B,aAAa,EAAE,EACrB9B,KAAK,CAAC+B,qBAAqB,EAAE,EAC7B/B,KAAK,CAACgC,QAAQ,EAAE,CAACC,aAAa,CAACC,IAAI,EACnClC,KAAK,CAACgC,QAAQ,EAAE,CAACC,aAAa,CAACE,KAAK,CACrC,EACD,CAACC,UAAU,EAAEC,WAAW,EAAEH,IAAI,EAAEC,KAAK,KAAK;AACxCE,QAAAA,WAAW,GAAGA,WAAW,CAACK,MAAM,CAC9BzC,MAAM,IAAI,EAACiC,IAAI,IAAA,IAAA,IAAJA,IAAI,CAAEY,QAAQ,CAAC7C,MAAM,CAACE,EAAE,CAAC,CAAA,IAAI,EAACgC,KAAK,IAALA,IAAAA,IAAAA,KAAK,CAAEW,QAAQ,CAAC7C,MAAM,CAACE,EAAE,CAAC,CACpE,CAAA,CAAA;QACD,OAAO6C,iBAAiB,CAACZ,UAAU,EAAEC,WAAW,EAAErC,KAAK,EAAE,QAAQ,CAAC,CAAA;AACpE,OAAC,EACD;QACEiD,GAAG,EACDC,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,aAAa,IAAI,uBAAuB;QACnEC,KAAK,EAAE,MAAMrD,KAAK,CAACE,OAAO,CAACoD,QAAQ,IAAItD,KAAK,CAACE,OAAO,CAACqD,YAAAA;AACvD,OAAC,CACF;AAEDE,MAAAA,mBAAmB,EAAE5B,UAAI,CACvB,MAAM,CACJ7B,KAAK,CAAC8B,aAAa,EAAE,EACrB9B,KAAK,CAAC+B,qBAAqB,EAAE,EAC7B/B,KAAK,CAACgC,QAAQ,EAAE,CAACC,aAAa,CAACC,IAAI,CACpC,EACD,CAACE,UAAU,EAAEC,WAAW,EAAEH,IAAI,KAAK;AACjC,QAAA,MAAMwB,kBAAkB,GACtB,CAAAxB,IAAI,IAAJA,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,IAAI,CACAhB,GAAG,CAACqB,QAAQ,IAAIF,WAAW,CAACG,IAAI,CAACC,CAAC,IAAIA,CAAC,CAACtC,EAAE,KAAKoC,QAAQ,CAAE,CAAC,CAC3DG,MAAM,CAACC,OAAO,CAAC,KAAI,EAAE,CAAA;QAE1B,OAAOK,iBAAiB,CACtBZ,UAAU,EACVsB,kBAAkB,EAClB1D,KAAK,EACL,MAAM,CACP,CAAA;AACH,OAAC,EACD;QACEiD,GAAG,EAAEC,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,aAAa,IAAI,qBAAqB;QACpEC,KAAK,EAAE,MAAMrD,KAAK,CAACE,OAAO,CAACoD,QAAQ,IAAItD,KAAK,CAACE,OAAO,CAACqD,YAAAA;AACvD,OAAC,CACF;AAEDI,MAAAA,oBAAoB,EAAE9B,UAAI,CACxB,MAAM,CACJ7B,KAAK,CAAC8B,aAAa,EAAE,EACrB9B,KAAK,CAAC+B,qBAAqB,EAAE,EAC7B/B,KAAK,CAACgC,QAAQ,EAAE,CAACC,aAAa,CAACE,KAAK,CACrC,EACD,CAACC,UAAU,EAAEC,WAAW,EAAEF,KAAK,KAAK;AAClC,QAAA,MAAMuB,kBAAkB,GACtB,CAAAvB,KAAK,IAALA,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,KAAK,CACDjB,GAAG,CAACqB,QAAQ,IAAIF,WAAW,CAACG,IAAI,CAACC,CAAC,IAAIA,CAAC,CAACtC,EAAE,KAAKoC,QAAQ,CAAE,CAAC,CAC3DG,MAAM,CAACC,OAAO,CAAC,KAAI,EAAE,CAAA;QAE1B,OAAOK,iBAAiB,CACtBZ,UAAU,EACVsB,kBAAkB,EAClB1D,KAAK,EACL,OAAO,CACR,CAAA;AACH,OAAC,EACD;QACEiD,GAAG,EAAEC,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,aAAa,IAAI,sBAAsB;QACrEC,KAAK,EAAE,MAAMrD,KAAK,CAACE,OAAO,CAACoD,QAAQ,IAAItD,KAAK,CAACE,OAAO,CAACqD,YAAAA;AACvD,OAAC,CACF;AAED;;AAEAK,MAAAA,eAAe,EAAE/B,UAAI,CACnB,MAAM,CAAC7B,KAAK,CAAC4B,eAAe,EAAE,CAAC,EAC/BmB,YAAY,IAAI;AACd,QAAA,OAAO,CAAC,GAAGA,YAAY,CAAC,CAACc,OAAO,EAAE,CAAA;AACpC,OAAC,EACD;QACEZ,GAAG,EAAEC,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,aAAa,IAAI,iBAAiB;QAChEC,KAAK,EAAE,MAAMrD,KAAK,CAACE,OAAO,CAACoD,QAAQ,IAAItD,KAAK,CAACE,OAAO,CAACqD,YAAAA;AACvD,OAAC,CACF;AAEDO,MAAAA,mBAAmB,EAAEjC,UAAI,CACvB,MAAM,CAAC7B,KAAK,CAACyD,mBAAmB,EAAE,CAAC,EACnCV,YAAY,IAAI;AACd,QAAA,OAAO,CAAC,GAAGA,YAAY,CAAC,CAACc,OAAO,EAAE,CAAA;AACpC,OAAC,EACD;QACEZ,GAAG,EAAEC,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,aAAa,IAAI,qBAAqB;QACpEC,KAAK,EAAE,MAAMrD,KAAK,CAACE,OAAO,CAACoD,QAAQ,IAAItD,KAAK,CAACE,OAAO,CAACqD,YAAAA;AACvD,OAAC,CACF;AAEDQ,MAAAA,qBAAqB,EAAElC,UAAI,CACzB,MAAM,CAAC7B,KAAK,CAACwD,qBAAqB,EAAE,CAAC,EACrCT,YAAY,IAAI;AACd,QAAA,OAAO,CAAC,GAAGA,YAAY,CAAC,CAACc,OAAO,EAAE,CAAA;AACpC,OAAC,EACD;QACEZ,GAAG,EACDC,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,aAAa,IAAI,uBAAuB;QACnEC,KAAK,EAAE,MAAMrD,KAAK,CAACE,OAAO,CAACoD,QAAQ,IAAItD,KAAK,CAACE,OAAO,CAACqD,YAAAA;AACvD,OAAC,CACF;AAEDS,MAAAA,oBAAoB,EAAEnC,UAAI,CACxB,MAAM,CAAC7B,KAAK,CAAC2D,oBAAoB,EAAE,CAAC,EACpCZ,YAAY,IAAI;AACd,QAAA,OAAO,CAAC,GAAGA,YAAY,CAAC,CAACc,OAAO,EAAE,CAAA;AACpC,OAAC,EACD;QACEZ,GAAG,EAAEC,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,aAAa,IAAI,sBAAsB;QACrEC,KAAK,EAAE,MAAMrD,KAAK,CAACE,OAAO,CAACoD,QAAQ,IAAItD,KAAK,CAACE,OAAO,CAACqD,YAAAA;AACvD,OAAC,CACF;AAED;;AAEAU,MAAAA,cAAc,EAAEpC,UAAI,CAClB,MAAM,CAAC7B,KAAK,CAAC4B,eAAe,EAAE,CAAC,EAC/BmB,YAAY,IAAI;AACd,QAAA,OAAOA,YAAY,CAChB7B,GAAG,CAACN,WAAW,IAAI;UAClB,OAAOA,WAAW,CAACsD,OAAO,CAAA;SAC3B,CAAC,CACDC,IAAI,EAAE,CAAA;AACX,OAAC,EACD;QACElB,GAAG,EAAEC,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,aAAa,IAAI,gBAAgB;QAC/DC,KAAK,EAAE,MAAMrD,KAAK,CAACE,OAAO,CAACoD,QAAQ,IAAItD,KAAK,CAACE,OAAO,CAACqD,YAAAA;AACvD,OAAC,CACF;AAEDa,MAAAA,kBAAkB,EAAEvC,UAAI,CACtB,MAAM,CAAC7B,KAAK,CAACyD,mBAAmB,EAAE,CAAC,EACnCvB,IAAI,IAAI;AACN,QAAA,OAAOA,IAAI,CACRhB,GAAG,CAACN,WAAW,IAAI;UAClB,OAAOA,WAAW,CAACsD,OAAO,CAAA;SAC3B,CAAC,CACDC,IAAI,EAAE,CAAA;AACX,OAAC,EACD;QACElB,GAAG,EAAEC,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,aAAa,IAAI,oBAAoB;QACnEC,KAAK,EAAE,MAAMrD,KAAK,CAACE,OAAO,CAACoD,QAAQ,IAAItD,KAAK,CAACE,OAAO,CAACqD,YAAAA;AACvD,OAAC,CACF;AAEDc,MAAAA,oBAAoB,EAAExC,UAAI,CACxB,MAAM,CAAC7B,KAAK,CAACwD,qBAAqB,EAAE,CAAC,EACrCtB,IAAI,IAAI;AACN,QAAA,OAAOA,IAAI,CACRhB,GAAG,CAACN,WAAW,IAAI;UAClB,OAAOA,WAAW,CAACsD,OAAO,CAAA;SAC3B,CAAC,CACDC,IAAI,EAAE,CAAA;AACX,OAAC,EACD;QACElB,GAAG,EAAEC,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,aAAa,IAAI,sBAAsB;QACrEC,KAAK,EAAE,MAAMrD,KAAK,CAACE,OAAO,CAACoD,QAAQ,IAAItD,KAAK,CAACE,OAAO,CAACqD,YAAAA;AACvD,OAAC,CACF;AAEDe,MAAAA,mBAAmB,EAAEzC,UAAI,CACvB,MAAM,CAAC7B,KAAK,CAAC2D,oBAAoB,EAAE,CAAC,EACpCzB,IAAI,IAAI;AACN,QAAA,OAAOA,IAAI,CACRhB,GAAG,CAACN,WAAW,IAAI;UAClB,OAAOA,WAAW,CAACsD,OAAO,CAAA;SAC3B,CAAC,CACDC,IAAI,EAAE,CAAA;AACX,OAAC,EACD;QACElB,GAAG,EAAEC,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,aAAa,IAAI,qBAAqB;QACpEC,KAAK,EAAE,MAAMrD,KAAK,CAACE,OAAO,CAACoD,QAAQ,IAAItD,KAAK,CAACE,OAAO,CAACqD,YAAAA;AACvD,OAAC,CACF;AAED;;AAEAgB,MAAAA,oBAAoB,EAAE1C,UAAI,CACxB,MAAM,CAAC7B,KAAK,CAACqE,oBAAoB,EAAE,CAAC,EACpCG,WAAW,IAAI;AACb,QAAA,OAAOA,WAAW,CAAC9B,MAAM,CAACtC,MAAM,IAAA;AAAA,UAAA,IAAA,kBAAA,CAAA;AAAA,UAAA,OAAI,wBAACA,MAAM,CAACK,UAAU,KAAA,IAAA,IAAjB,mBAAmBQ,MAAM,CAAA,CAAA;SAAC,CAAA,CAAA;AACjE,OAAC,EACD;QACEgC,GAAG,EAAEC,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,aAAa,IAAI,sBAAsB;QACrEC,KAAK,EAAE,MAAMrD,KAAK,CAACE,OAAO,CAACoD,QAAQ,IAAItD,KAAK,CAACE,OAAO,CAACqD,YAAAA;AACvD,OAAC,CACF;AAEDkB,MAAAA,kBAAkB,EAAE5C,UAAI,CACtB,MAAM,CAAC7B,KAAK,CAACoE,kBAAkB,EAAE,CAAC,EAClCI,WAAW,IAAI;AACb,QAAA,OAAOA,WAAW,CAAC9B,MAAM,CAACtC,MAAM,IAAA;AAAA,UAAA,IAAA,mBAAA,CAAA;AAAA,UAAA,OAAI,yBAACA,MAAM,CAACK,UAAU,KAAA,IAAA,IAAjB,oBAAmBQ,MAAM,CAAA,CAAA;SAAC,CAAA,CAAA;AACjE,OAAC,EACD;QACEgC,GAAG,EAAEC,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,aAAa,IAAI,oBAAoB;QACnEC,KAAK,EAAE,MAAMrD,KAAK,CAACE,OAAO,CAACoD,QAAQ,IAAItD,KAAK,CAACE,OAAO,CAACqD,YAAAA;AACvD,OAAC,CACF;AAEDmB,MAAAA,mBAAmB,EAAE7C,UAAI,CACvB,MAAM,CAAC7B,KAAK,CAACsE,mBAAmB,EAAE,CAAC,EACnCE,WAAW,IAAI;AACb,QAAA,OAAOA,WAAW,CAAC9B,MAAM,CAACtC,MAAM,IAAA;AAAA,UAAA,IAAA,mBAAA,CAAA;AAAA,UAAA,OAAI,yBAACA,MAAM,CAACK,UAAU,KAAA,IAAA,IAAjB,oBAAmBQ,MAAM,CAAA,CAAA;SAAC,CAAA,CAAA;AACjE,OAAC,EACD;QACEgC,GAAG,EAAEC,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,aAAa,IAAI,qBAAqB;QACpEC,KAAK,EAAE,MAAMrD,KAAK,CAACE,OAAO,CAACoD,QAAQ,IAAItD,KAAK,CAACE,OAAO,CAACqD,YAAAA;AACvD,OAAC,CACF;MAED1C,cAAc,EAAEgB,UAAI,CAClB,MAAM,CACJ7B,KAAK,CAACyD,mBAAmB,EAAE,EAC3BzD,KAAK,CAACwD,qBAAqB,EAAE,EAC7BxD,KAAK,CAAC2D,oBAAoB,EAAE,CAC7B,EACD,CAACzB,IAAI,EAAEyC,MAAM,EAAExC,KAAK,KAAK;AAAA,QAAA,IAAA,MAAA,EAAA,QAAA,EAAA,OAAA,CAAA;QACvB,OAAO,CACL,IAAI,CAAAD,CAAAA,MAAAA,GAAAA,IAAI,CAAC,CAAC,CAAC,qBAAP,MAASgC,CAAAA,OAAO,KAAI,EAAE,CAAC,EAC3B,IAAI,CAAA,CAAA,QAAA,GAAAS,MAAM,CAAC,CAAC,CAAC,KAAT,IAAA,GAAA,KAAA,CAAA,GAAA,QAAA,CAAWT,OAAO,KAAI,EAAE,CAAC,EAC7B,IAAI,YAAA/B,KAAK,CAAC,CAAC,CAAC,KAAA,IAAA,GAAA,KAAA,CAAA,GAAR,QAAU+B,OAAO,KAAI,EAAE,CAAC,CAC7B,CACEhD,GAAG,CAACd,MAAM,IAAI;UACb,OAAOA,MAAM,CAACS,cAAc,EAAE,CAAA;SAC/B,CAAC,CACDsD,IAAI,EAAE,CAAA;AACX,OAAC,EACD;QACElB,GAAG,EAAEC,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,aAAa,IAAI,gBAAgB;QAC/DC,KAAK,EAAE,MAAMrD,KAAK,CAACE,OAAO,CAACoD,QAAQ,IAAItD,KAAK,CAACE,OAAO,CAACqD,YAAAA;OACtD,CAAA;KAEJ,CAAA;AACH,GAAA;AACF,EAAC;AAEM,SAASP,iBAAiB,CAC/BZ,UAAoC,EACpCwC,cAAwC,EACxC5E,KAAmB,EACnB6E,YAA0C,EAC1C;AAAA,EAAA,IAAA,cAAA,CAAA;AACA;AACA;AACA;AACA;AACA;;EAEA,IAAIC,QAAQ,GAAG,CAAC,CAAA;AAEhB,EAAA,MAAMC,YAAY,GAAG,UAACC,OAAiC,EAAExE,KAAK,EAAS;AAAA,IAAA,IAAdA,KAAK,KAAA,KAAA,CAAA,EAAA;AAALA,MAAAA,KAAK,GAAG,CAAC,CAAA;AAAA,KAAA;IAChEsE,QAAQ,GAAGG,IAAI,CAACC,GAAG,CAACJ,QAAQ,EAAEtE,KAAK,CAAC,CAAA;AAEpCwE,IAAAA,OAAO,CACJtC,MAAM,CAACzC,MAAM,IAAIA,MAAM,CAACkF,YAAY,EAAE,CAAC,CACvC7D,OAAO,CAACrB,MAAM,IAAI;AAAA,MAAA,IAAA,eAAA,CAAA;AACjB,MAAA,IAAA,CAAA,eAAA,GAAIA,MAAM,CAAC+E,OAAO,KAAd,IAAA,IAAA,eAAA,CAAgB/D,MAAM,EAAE;QAC1B8D,YAAY,CAAC9E,MAAM,CAAC+E,OAAO,EAAExE,KAAK,GAAG,CAAC,CAAC,CAAA;AACzC,OAAA;KACD,EAAE,CAAC,CAAC,CAAA;GACR,CAAA;EAEDuE,YAAY,CAAC3C,UAAU,CAAC,CAAA;EAExB,IAAIW,YAAkC,GAAG,EAAE,CAAA;AAE3C,EAAA,MAAMqC,iBAAiB,GAAG,CACxBC,cAAwC,EACxC7E,KAAa,KACV;AACH;AACA,IAAA,MAAMI,WAA+B,GAAG;MACtCJ,KAAK;AACLL,MAAAA,EAAE,EAAE,CAAC0E,YAAY,EAAG,CAAA,EAAErE,KAAM,CAAC,CAAA,CAAC,CAACkC,MAAM,CAACC,OAAO,CAAC,CAAC2C,IAAI,CAAC,GAAG,CAAC;AACxDpB,MAAAA,OAAO,EAAE,EAAA;KACV,CAAA;;AAED;IACA,MAAMqB,oBAA8C,GAAG,EAAE,CAAA;;AAEzD;AACAF,IAAAA,cAAc,CAAC/D,OAAO,CAACkE,aAAa,IAAI;AACtC;;MAEA,MAAMC,yBAAyB,GAAG,CAAC,GAAGF,oBAAoB,CAAC,CAAC1B,OAAO,EAAE,CAAC,CAAC,CAAC,CAAA;MAExE,MAAM6B,YAAY,GAAGF,aAAa,CAACvF,MAAM,CAACO,KAAK,KAAKI,WAAW,CAACJ,KAAK,CAAA;AAErE,MAAA,IAAIP,MAA8B,CAAA;MAClC,IAAIK,aAAa,GAAG,KAAK,CAAA;AAEzB,MAAA,IAAIoF,YAAY,IAAIF,aAAa,CAACvF,MAAM,CAAC0F,MAAM,EAAE;AAC/C;AACA1F,QAAAA,MAAM,GAAGuF,aAAa,CAACvF,MAAM,CAAC0F,MAAM,CAAA;AACtC,OAAC,MAAM;AACL;QACA1F,MAAM,GAAGuF,aAAa,CAACvF,MAAM,CAAA;AAC7BK,QAAAA,aAAa,GAAG,IAAI,CAAA;AACtB,OAAA;MAEA,IACEmF,yBAAyB,IACzB,CAAAA,yBAAyB,IAAA,IAAA,GAAA,KAAA,CAAA,GAAzBA,yBAAyB,CAAExF,MAAM,MAAKA,MAAM,EAC5C;AACA;AACAwF,QAAAA,yBAAyB,CAAChF,UAAU,CAACU,IAAI,CAACqE,aAAa,CAAC,CAAA;AAC1D,OAAC,MAAM;AACL;AACA,QAAA,MAAMpF,MAAM,GAAGL,YAAY,CAACC,KAAK,EAAEC,MAAM,EAAE;UACzCE,EAAE,EAAE,CAAC0E,YAAY,EAAErE,KAAK,EAAEP,MAAM,CAACE,EAAE,EAAEqF,aAAa,IAAA,IAAA,GAAA,KAAA,CAAA,GAAbA,aAAa,CAAErF,EAAE,CAAC,CACpDuC,MAAM,CAACC,OAAO,CAAC,CACf2C,IAAI,CAAC,GAAG,CAAC;UACZhF,aAAa;UACbC,aAAa,EAAED,aAAa,GACvB,CAAA,EAAEiF,oBAAoB,CAAC7C,MAAM,CAACD,CAAC,IAAIA,CAAC,CAACxC,MAAM,KAAKA,MAAM,CAAC,CAACgB,MAAO,CAAA,CAAC,GACjE2E,SAAS;UACbpF,KAAK;UACLH,KAAK,EAAEkF,oBAAoB,CAACtE,MAAAA;AAC9B,SAAC,CAAC,CAAA;;AAEF;AACAb,QAAAA,MAAM,CAACK,UAAU,CAACU,IAAI,CAACqE,aAAa,CAAC,CAAA;AACrC;AACA;AACAD,QAAAA,oBAAoB,CAACpE,IAAI,CAACf,MAAM,CAAC,CAAA;AACnC,OAAA;AAEAQ,MAAAA,WAAW,CAACsD,OAAO,CAAC/C,IAAI,CAACqE,aAAa,CAAC,CAAA;MACvCA,aAAa,CAAC5E,WAAW,GAAGA,WAAW,CAAA;AACzC,KAAC,CAAC,CAAA;AAEFmC,IAAAA,YAAY,CAAC5B,IAAI,CAACP,WAAW,CAAC,CAAA;IAE9B,IAAIJ,KAAK,GAAG,CAAC,EAAE;AACb4E,MAAAA,iBAAiB,CAACG,oBAAoB,EAAE/E,KAAK,GAAG,CAAC,CAAC,CAAA;AACpD,KAAA;GACD,CAAA;AAED,EAAA,MAAMqF,aAAa,GAAGjB,cAAc,CAAC1D,GAAG,CAAC,CAACjB,MAAM,EAAEI,KAAK,KACrDN,YAAY,CAACC,KAAK,EAAEC,MAAM,EAAE;AAC1BO,IAAAA,KAAK,EAAEsE,QAAQ;AACfzE,IAAAA,KAAAA;AACF,GAAC,CAAC,CACH,CAAA;AAED+E,EAAAA,iBAAiB,CAACS,aAAa,EAAEf,QAAQ,GAAG,CAAC,CAAC,CAAA;EAE9C/B,YAAY,CAACc,OAAO,EAAE,CAAA;;AAEtB;AACA;AACA;;EAEA,MAAMiC,sBAAsB,GAC1B5B,OAAiC,IACU;AAC3C,IAAA,MAAM6B,eAAe,GAAG7B,OAAO,CAACxB,MAAM,CAACtC,MAAM,IAC3CA,MAAM,CAACH,MAAM,CAACkF,YAAY,EAAE,CAC7B,CAAA;AAED,IAAA,OAAOY,eAAe,CAAC7E,GAAG,CAACd,MAAM,IAAI;MACnC,IAAIM,OAAO,GAAG,CAAC,CAAA;MACf,IAAIC,OAAO,GAAG,CAAC,CAAA;AACf,MAAA,IAAIqF,aAAa,GAAG,CAAC,CAAC,CAAC,CAAA;MAEvB,IAAI5F,MAAM,CAACK,UAAU,IAAIL,MAAM,CAACK,UAAU,CAACQ,MAAM,EAAE;AACjD+E,QAAAA,aAAa,GAAG,EAAE,CAAA;QAElBF,sBAAsB,CAAC1F,MAAM,CAACK,UAAU,CAAC,CAACa,OAAO,CAC/C,IAAsD,IAAA;UAAA,IAArD;AAAEZ,YAAAA,OAAO,EAAEuF,YAAY;AAAEtF,YAAAA,OAAO,EAAEuF,YAAAA;WAAc,GAAA,IAAA,CAAA;AAC/CxF,UAAAA,OAAO,IAAIuF,YAAY,CAAA;AACvBD,UAAAA,aAAa,CAAC7E,IAAI,CAAC+E,YAAY,CAAC,CAAA;AAClC,SAAC,CACF,CAAA;AACH,OAAC,MAAM;AACLxF,QAAAA,OAAO,GAAG,CAAC,CAAA;AACb,OAAA;MAEA,MAAMyF,eAAe,GAAGlB,IAAI,CAACmB,GAAG,CAAC,GAAGJ,aAAa,CAAC,CAAA;MAClDrF,OAAO,GAAGA,OAAO,GAAGwF,eAAe,CAAA;MAEnC/F,MAAM,CAACM,OAAO,GAAGA,OAAO,CAAA;MACxBN,MAAM,CAACO,OAAO,GAAGA,OAAO,CAAA;MAExB,OAAO;QAAED,OAAO;AAAEC,QAAAA,OAAAA;OAAS,CAAA;AAC7B,KAAC,CAAC,CAAA;GACH,CAAA;EAEDmF,sBAAsB,CAAC,CAAA/C,CAAAA,cAAAA,GAAAA,YAAY,CAAC,CAAC,CAAC,KAAA,IAAA,GAAA,KAAA,CAAA,GAAf,cAAiBmB,CAAAA,OAAO,KAAI,EAAE,CAAC,CAAA;AAEtD,EAAA,OAAOnB,YAAY,CAAA;AACrB;;;;;"}
1
+ {"version":3,"file":"headers.js","sources":["../../../src/core/headers.ts"],"sourcesContent":["import { RowData, Column, Header, HeaderGroup, Table } from '../types'\nimport { memo } from '../utils'\nimport { TableFeature } from './table'\n\nexport interface CoreHeaderGroup<TData extends RowData> {\n id: string\n depth: number\n headers: Header<TData, unknown>[]\n}\n\nexport interface HeaderContext<TData, TValue> {\n table: Table<TData>\n header: Header<TData, TValue>\n column: Column<TData, TValue>\n}\n\nexport interface CoreHeader<TData extends RowData, TValue> {\n id: string\n index: number\n depth: number\n column: Column<TData, TValue>\n headerGroup: HeaderGroup<TData>\n subHeaders: Header<TData, TValue>[]\n colSpan: number\n rowSpan: number\n getLeafHeaders: () => Header<TData, unknown>[]\n isPlaceholder: boolean\n placeholderId?: string\n getContext: () => HeaderContext<TData, TValue>\n}\n\nexport interface HeadersInstance<TData extends RowData> {\n getHeaderGroups: () => HeaderGroup<TData>[]\n getLeftHeaderGroups: () => HeaderGroup<TData>[]\n getCenterHeaderGroups: () => HeaderGroup<TData>[]\n getRightHeaderGroups: () => HeaderGroup<TData>[]\n\n getFooterGroups: () => HeaderGroup<TData>[]\n getLeftFooterGroups: () => HeaderGroup<TData>[]\n getCenterFooterGroups: () => HeaderGroup<TData>[]\n getRightFooterGroups: () => HeaderGroup<TData>[]\n\n getFlatHeaders: () => Header<TData, unknown>[]\n getLeftFlatHeaders: () => Header<TData, unknown>[]\n getCenterFlatHeaders: () => Header<TData, unknown>[]\n getRightFlatHeaders: () => Header<TData, unknown>[]\n\n getLeafHeaders: () => Header<TData, unknown>[]\n getLeftLeafHeaders: () => Header<TData, unknown>[]\n getCenterLeafHeaders: () => Header<TData, unknown>[]\n getRightLeafHeaders: () => Header<TData, unknown>[]\n}\n\n//\n\nfunction createHeader<TData extends RowData, TValue>(\n table: Table<TData>,\n column: Column<TData, TValue>,\n options: {\n id?: string\n isPlaceholder?: boolean\n placeholderId?: string\n index: number\n depth: number\n }\n): Header<TData, TValue> {\n const id = options.id ?? column.id\n\n let header: CoreHeader<TData, TValue> = {\n id,\n column,\n index: options.index,\n isPlaceholder: !!options.isPlaceholder,\n placeholderId: options.placeholderId,\n depth: options.depth,\n subHeaders: [],\n colSpan: 0,\n rowSpan: 0,\n headerGroup: null!,\n getLeafHeaders: (): Header<TData, unknown>[] => {\n const leafHeaders: Header<TData, unknown>[] = []\n\n const recurseHeader = (h: CoreHeader<TData, any>) => {\n if (h.subHeaders && h.subHeaders.length) {\n h.subHeaders.map(recurseHeader)\n }\n leafHeaders.push(h as Header<TData, unknown>)\n }\n\n recurseHeader(header)\n\n return leafHeaders\n },\n getContext: () => ({\n table,\n header: header as Header<TData, TValue>,\n column,\n }),\n }\n\n table._features.forEach(feature => {\n Object.assign(header, feature.createHeader?.(header, table))\n })\n\n return header as Header<TData, TValue>\n}\n\nexport const Headers: TableFeature = {\n createTable: <TData extends RowData>(\n table: Table<TData>\n ): HeadersInstance<TData> => {\n return {\n // Header Groups\n\n getHeaderGroups: memo(\n () => [\n table.getAllColumns(),\n table.getVisibleLeafColumns(),\n table.getState().columnPinning.left,\n table.getState().columnPinning.right,\n ],\n (allColumns, leafColumns, left, right) => {\n const leftColumns =\n left\n ?.map(columnId => leafColumns.find(d => d.id === columnId)!)\n .filter(Boolean) ?? []\n\n const rightColumns =\n right\n ?.map(columnId => leafColumns.find(d => d.id === columnId)!)\n .filter(Boolean) ?? []\n\n const centerColumns = leafColumns.filter(\n column => !left?.includes(column.id) && !right?.includes(column.id)\n )\n\n const headerGroups = buildHeaderGroups(\n allColumns,\n [...leftColumns, ...centerColumns, ...rightColumns],\n table\n )\n\n return headerGroups\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getHeaderGroups',\n debug: () => table.options.debugAll ?? table.options.debugHeaders,\n }\n ),\n\n getCenterHeaderGroups: memo(\n () => [\n table.getAllColumns(),\n table.getVisibleLeafColumns(),\n table.getState().columnPinning.left,\n table.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, table, 'center')\n },\n {\n key:\n process.env.NODE_ENV === 'development' && 'getCenterHeaderGroups',\n debug: () => table.options.debugAll ?? table.options.debugHeaders,\n }\n ),\n\n getLeftHeaderGroups: memo(\n () => [\n table.getAllColumns(),\n table.getVisibleLeafColumns(),\n table.getState().columnPinning.left,\n ],\n (allColumns, leafColumns, left) => {\n const orderedLeafColumns =\n left\n ?.map(columnId => leafColumns.find(d => d.id === columnId)!)\n .filter(Boolean) ?? []\n\n return buildHeaderGroups(\n allColumns,\n orderedLeafColumns,\n table,\n 'left'\n )\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getLeftHeaderGroups',\n debug: () => table.options.debugAll ?? table.options.debugHeaders,\n }\n ),\n\n getRightHeaderGroups: memo(\n () => [\n table.getAllColumns(),\n table.getVisibleLeafColumns(),\n table.getState().columnPinning.right,\n ],\n (allColumns, leafColumns, right) => {\n const orderedLeafColumns =\n right\n ?.map(columnId => leafColumns.find(d => d.id === columnId)!)\n .filter(Boolean) ?? []\n\n return buildHeaderGroups(\n allColumns,\n orderedLeafColumns,\n table,\n 'right'\n )\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getRightHeaderGroups',\n debug: () => table.options.debugAll ?? table.options.debugHeaders,\n }\n ),\n\n // Footer Groups\n\n getFooterGroups: memo(\n () => [table.getHeaderGroups()],\n headerGroups => {\n return [...headerGroups].reverse()\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getFooterGroups',\n debug: () => table.options.debugAll ?? table.options.debugHeaders,\n }\n ),\n\n getLeftFooterGroups: memo(\n () => [table.getLeftHeaderGroups()],\n headerGroups => {\n return [...headerGroups].reverse()\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getLeftFooterGroups',\n debug: () => table.options.debugAll ?? table.options.debugHeaders,\n }\n ),\n\n getCenterFooterGroups: memo(\n () => [table.getCenterHeaderGroups()],\n headerGroups => {\n return [...headerGroups].reverse()\n },\n {\n key:\n process.env.NODE_ENV === 'development' && 'getCenterFooterGroups',\n debug: () => table.options.debugAll ?? table.options.debugHeaders,\n }\n ),\n\n getRightFooterGroups: memo(\n () => [table.getRightHeaderGroups()],\n headerGroups => {\n return [...headerGroups].reverse()\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getRightFooterGroups',\n debug: () => table.options.debugAll ?? table.options.debugHeaders,\n }\n ),\n\n // Flat Headers\n\n getFlatHeaders: memo(\n () => [table.getHeaderGroups()],\n headerGroups => {\n return headerGroups\n .map(headerGroup => {\n return headerGroup.headers\n })\n .flat()\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getFlatHeaders',\n debug: () => table.options.debugAll ?? table.options.debugHeaders,\n }\n ),\n\n getLeftFlatHeaders: memo(\n () => [table.getLeftHeaderGroups()],\n left => {\n return left\n .map(headerGroup => {\n return headerGroup.headers\n })\n .flat()\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getLeftFlatHeaders',\n debug: () => table.options.debugAll ?? table.options.debugHeaders,\n }\n ),\n\n getCenterFlatHeaders: memo(\n () => [table.getCenterHeaderGroups()],\n left => {\n return left\n .map(headerGroup => {\n return headerGroup.headers\n })\n .flat()\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getCenterFlatHeaders',\n debug: () => table.options.debugAll ?? table.options.debugHeaders,\n }\n ),\n\n getRightFlatHeaders: memo(\n () => [table.getRightHeaderGroups()],\n left => {\n return left\n .map(headerGroup => {\n return headerGroup.headers\n })\n .flat()\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getRightFlatHeaders',\n debug: () => table.options.debugAll ?? table.options.debugHeaders,\n }\n ),\n\n // Leaf Headers\n\n getCenterLeafHeaders: memo(\n () => [table.getCenterFlatHeaders()],\n flatHeaders => {\n return flatHeaders.filter(header => !header.subHeaders?.length)\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getCenterLeafHeaders',\n debug: () => table.options.debugAll ?? table.options.debugHeaders,\n }\n ),\n\n getLeftLeafHeaders: memo(\n () => [table.getLeftFlatHeaders()],\n flatHeaders => {\n return flatHeaders.filter(header => !header.subHeaders?.length)\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getLeftLeafHeaders',\n debug: () => table.options.debugAll ?? table.options.debugHeaders,\n }\n ),\n\n getRightLeafHeaders: memo(\n () => [table.getRightFlatHeaders()],\n flatHeaders => {\n return flatHeaders.filter(header => !header.subHeaders?.length)\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getRightLeafHeaders',\n debug: () => table.options.debugAll ?? table.options.debugHeaders,\n }\n ),\n\n getLeafHeaders: memo(\n () => [\n table.getLeftHeaderGroups(),\n table.getCenterHeaderGroups(),\n table.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 {\n key: process.env.NODE_ENV === 'development' && 'getLeafHeaders',\n debug: () => table.options.debugAll ?? table.options.debugHeaders,\n }\n ),\n }\n },\n}\n\nexport function buildHeaderGroups<TData extends RowData>(\n allColumns: Column<TData, unknown>[],\n columnsToGroup: Column<TData, unknown>[],\n table: Table<TData>,\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 = (columns: Column<TData, unknown>[], depth = 1) => {\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<TData>[] = []\n\n const createHeaderGroup = (\n headersToGroup: Header<TData, unknown>[],\n depth: number\n ) => {\n // The header group we are creating\n const headerGroup: HeaderGroup<TData> = {\n depth,\n id: [headerFamily, `${depth}`].filter(Boolean).join('_'),\n headers: [],\n }\n\n // The parent columns we're going to scan next\n const pendingParentHeaders: Header<TData, unknown>[] = []\n\n // Scan each column for parents\n headersToGroup.forEach(headerToGroup => {\n // What is the latest (last) parent column?\n\n const latestPendingParentHeader = [...pendingParentHeaders].reverse()[0]\n\n const isLeafHeader = headerToGroup.column.depth === headerGroup.depth\n\n let column: Column<TData, unknown>\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 if (\n latestPendingParentHeader &&\n latestPendingParentHeader?.column === column\n ) {\n // This column is repeated. Add it as a sub header to the next batch\n latestPendingParentHeader.subHeaders.push(headerToGroup)\n } else {\n // This is a new header. Let's create it\n const header = createHeader(table, column, {\n id: [headerFamily, depth, column.id, headerToGroup?.id]\n .filter(Boolean)\n .join('_'),\n isPlaceholder,\n placeholderId: isPlaceholder\n ? `${pendingParentHeaders.filter(d => d.column === column).length}`\n : undefined,\n depth,\n index: pendingParentHeaders.length,\n })\n\n // Add the headerToGroup as a subHeader of the new header\n header.subHeaders.push(headerToGroup)\n // Add the new header to the pendingParentHeaders to get grouped\n // in the next batch\n pendingParentHeaders.push(header)\n }\n\n headerGroup.headers.push(headerToGroup)\n headerToGroup.headerGroup = headerGroup\n })\n\n headerGroups.push(headerGroup)\n\n if (depth > 0) {\n createHeaderGroup(pendingParentHeaders, depth - 1)\n }\n }\n\n const bottomHeaders = columnsToGroup.map((column, index) =>\n createHeader(table, column, {\n depth: maxDepth,\n index,\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, unknown>[]\n ): { colSpan: number; rowSpan: number }[] => {\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\n header.rowSpan = rowSpan\n\n return { colSpan, rowSpan }\n })\n }\n\n recurseHeadersForSpans(headerGroups[0]?.headers ?? [])\n\n return headerGroups\n}\n"],"names":["createHeader","table","column","options","id","header","index","isPlaceholder","placeholderId","depth","subHeaders","colSpan","rowSpan","headerGroup","getLeafHeaders","leafHeaders","recurseHeader","h","length","map","push","getContext","_features","forEach","feature","Object","assign","Headers","createTable","getHeaderGroups","memo","getAllColumns","getVisibleLeafColumns","getState","columnPinning","left","right","allColumns","leafColumns","leftColumns","columnId","find","d","filter","Boolean","rightColumns","centerColumns","includes","headerGroups","buildHeaderGroups","key","process","env","NODE_ENV","debug","debugAll","debugHeaders","getCenterHeaderGroups","getLeftHeaderGroups","orderedLeafColumns","getRightHeaderGroups","getFooterGroups","reverse","getLeftFooterGroups","getCenterFooterGroups","getRightFooterGroups","getFlatHeaders","headers","flat","getLeftFlatHeaders","getCenterFlatHeaders","getRightFlatHeaders","getCenterLeafHeaders","flatHeaders","getLeftLeafHeaders","getRightLeafHeaders","center","columnsToGroup","headerFamily","maxDepth","findMaxDepth","columns","Math","max","getIsVisible","createHeaderGroup","headersToGroup","join","pendingParentHeaders","headerToGroup","latestPendingParentHeader","isLeafHeader","parent","undefined","bottomHeaders","recurseHeadersForSpans","filteredHeaders","childRowSpans","childColSpan","childRowSpan","minChildRowSpan","min"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"row.js","sources":["../../../src/core/row.ts"],"sourcesContent":["import { RowData, Cell, Row, Table } from '../types'\nimport { flattenBy, memo } from '../utils'\nimport { createCell } from './cell'\n\nexport type CoreRow<TData extends RowData> = {\n id: string\n index: number\n original: TData\n depth: number\n _valuesCache: Record<string, unknown>\n _uniqueValuesCache: Record<string, unknown>\n getValue: <TValue>(columnId: string) => TValue\n getUniqueValues: <TValue>(columnId: string) => TValue[]\n renderValue: <TValue>(columnId: string) => TValue\n subRows: Row<TData>[]\n getLeafRows: () => Row<TData>[]\n originalSubRows?: TData[]\n getAllCells: () => Cell<TData, unknown>[]\n _getAllCellsByColumnId: () => Record<string, Cell<TData, unknown>>\n}\n\nexport const createRow = <TData extends RowData>(\n table: Table<TData>,\n id: string,\n original: TData,\n rowIndex: number,\n depth: number,\n subRows?: Row<TData>[]\n): Row<TData> => {\n let row: CoreRow<TData> = {\n id,\n index: rowIndex,\n original,\n depth,\n _valuesCache: {},\n _uniqueValuesCache: {},\n getValue: columnId => {\n if (row._valuesCache.hasOwnProperty(columnId)) {\n return row._valuesCache[columnId]\n }\n\n const column = table.getColumn(columnId)\n\n if (!column.accessorFn) {\n return undefined\n }\n\n row._valuesCache[columnId] = column.accessorFn(\n row.original as TData,\n rowIndex\n )\n\n return row._valuesCache[columnId] as any\n },\n getUniqueValues: columnId => {\n if (row._uniqueValuesCache.hasOwnProperty(columnId)) {\n return row._uniqueValuesCache[columnId]\n }\n\n const column = table.getColumn(columnId)\n\n if (!column.accessorFn) {\n return undefined\n }\n\n if (!column.columnDef.getUniqueValues) {\n row._uniqueValuesCache[columnId] = [row.getValue(columnId)]\n return row._uniqueValuesCache[columnId]\n }\n\n row._uniqueValuesCache[columnId] = column.columnDef.getUniqueValues(\n row.original as TData,\n rowIndex\n )\n\n return row._uniqueValuesCache[columnId] as any\n },\n renderValue: columnId =>\n row.getValue(columnId) ?? table.options.renderFallbackValue,\n subRows: subRows ?? [],\n getLeafRows: () => flattenBy(row.subRows, d => d.subRows),\n getAllCells: memo(\n () => [table.getAllLeafColumns()],\n leafColumns => {\n return leafColumns.map(column => {\n return createCell(table, row as Row<TData>, column, column.id)\n })\n },\n {\n key: process.env.NODE_ENV === 'development' && 'row.getAllCells',\n debug: () => table.options.debugAll ?? table.options.debugRows,\n }\n ),\n\n _getAllCellsByColumnId: memo(\n () => [row.getAllCells()],\n allCells => {\n return allCells.reduce((acc, cell) => {\n acc[cell.column.id] = cell\n return acc\n }, {} as Record<string, Cell<TData, unknown>>)\n },\n {\n key:\n process.env.NODE_ENV === 'production' && 'row.getAllCellsByColumnId',\n debug: () => table.options.debugAll ?? table.options.debugRows,\n }\n ),\n }\n\n for (let i = 0; i < table._features.length; i++) {\n const feature = table._features[i]\n Object.assign(row, feature?.createRow?.(row, table))\n }\n\n return row as Row<TData>\n}\n"],"names":["createRow","table","id","original","rowIndex","depth","subRows","row","index","_valuesCache","_uniqueValuesCache","getValue","columnId","hasOwnProperty","column","getColumn","accessorFn","undefined","getUniqueValues","columnDef","renderValue","options","renderFallbackValue","getLeafRows","flattenBy","d","getAllCells","memo","getAllLeafColumns","leafColumns","map","createCell","key","process","env","NODE_ENV","debug","debugAll","debugRows","_getAllCellsByColumnId","allCells","reduce","acc","cell","i","_features","length","feature","Object","assign"],"mappings":"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"}
1
+ {"version":3,"file":"row.js","sources":["../../../src/core/row.ts"],"sourcesContent":["import { RowData, Cell, Row, Table } from '../types'\nimport { flattenBy, memo } from '../utils'\nimport { createCell } from './cell'\n\nexport interface CoreRow<TData extends RowData> {\n id: string\n index: number\n original: TData\n depth: number\n _valuesCache: Record<string, unknown>\n _uniqueValuesCache: Record<string, unknown>\n getValue: <TValue>(columnId: string) => TValue\n getUniqueValues: <TValue>(columnId: string) => TValue[]\n renderValue: <TValue>(columnId: string) => TValue\n subRows: Row<TData>[]\n getLeafRows: () => Row<TData>[]\n originalSubRows?: TData[]\n getAllCells: () => Cell<TData, unknown>[]\n _getAllCellsByColumnId: () => Record<string, Cell<TData, unknown>>\n}\n\nexport const createRow = <TData extends RowData>(\n table: Table<TData>,\n id: string,\n original: TData,\n rowIndex: number,\n depth: number,\n subRows?: Row<TData>[]\n): Row<TData> => {\n let row: CoreRow<TData> = {\n id,\n index: rowIndex,\n original,\n depth,\n _valuesCache: {},\n _uniqueValuesCache: {},\n getValue: columnId => {\n if (row._valuesCache.hasOwnProperty(columnId)) {\n return row._valuesCache[columnId]\n }\n\n const column = table.getColumn(columnId)\n\n if (!column.accessorFn) {\n return undefined\n }\n\n row._valuesCache[columnId] = column.accessorFn(\n row.original as TData,\n rowIndex\n )\n\n return row._valuesCache[columnId] as any\n },\n getUniqueValues: columnId => {\n if (row._uniqueValuesCache.hasOwnProperty(columnId)) {\n return row._uniqueValuesCache[columnId]\n }\n\n const column = table.getColumn(columnId)\n\n if (!column.accessorFn) {\n return undefined\n }\n\n if (!column.columnDef.getUniqueValues) {\n row._uniqueValuesCache[columnId] = [row.getValue(columnId)]\n return row._uniqueValuesCache[columnId]\n }\n\n row._uniqueValuesCache[columnId] = column.columnDef.getUniqueValues(\n row.original as TData,\n rowIndex\n )\n\n return row._uniqueValuesCache[columnId] as any\n },\n renderValue: columnId =>\n row.getValue(columnId) ?? table.options.renderFallbackValue,\n subRows: subRows ?? [],\n getLeafRows: () => flattenBy(row.subRows, d => d.subRows),\n getAllCells: memo(\n () => [table.getAllLeafColumns()],\n leafColumns => {\n return leafColumns.map(column => {\n return createCell(table, row as Row<TData>, column, column.id)\n })\n },\n {\n key: process.env.NODE_ENV === 'development' && 'row.getAllCells',\n debug: () => table.options.debugAll ?? table.options.debugRows,\n }\n ),\n\n _getAllCellsByColumnId: memo(\n () => [row.getAllCells()],\n allCells => {\n return allCells.reduce((acc, cell) => {\n acc[cell.column.id] = cell\n return acc\n }, {} as Record<string, Cell<TData, unknown>>)\n },\n {\n key:\n process.env.NODE_ENV === 'production' && 'row.getAllCellsByColumnId',\n debug: () => table.options.debugAll ?? table.options.debugRows,\n }\n ),\n }\n\n for (let i = 0; i < table._features.length; i++) {\n const feature = table._features[i]\n Object.assign(row, feature?.createRow?.(row, table))\n }\n\n return row as Row<TData>\n}\n"],"names":["createRow","table","id","original","rowIndex","depth","subRows","row","index","_valuesCache","_uniqueValuesCache","getValue","columnId","hasOwnProperty","column","getColumn","accessorFn","undefined","getUniqueValues","columnDef","renderValue","options","renderFallbackValue","getLeafRows","flattenBy","d","getAllCells","memo","getAllLeafColumns","leafColumns","map","createCell","key","process","env","NODE_ENV","debug","debugAll","debugRows","_getAllCellsByColumnId","allCells","reduce","acc","cell","i","_features","length","feature","Object","assign"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"table.js","sources":["../../../src/core/table.ts"],"sourcesContent":["import { flattenBy, functionalUpdate, memo, RequiredKeys } from '../utils'\n\nimport {\n Updater,\n TableOptionsResolved,\n TableState,\n Table,\n ColumnDefTemplate,\n InitialTableState,\n Row,\n Column,\n RowModel,\n ColumnDef,\n TableOptions,\n RowData,\n TableMeta,\n ColumnDefResolved,\n GroupColumnDef,\n} from '../types'\n\n//\nimport { createColumn } from './column'\nimport { Headers } from './headers'\n//\n\nimport { ColumnSizing } from '../features/ColumnSizing'\nimport { Expanding } from '../features/Expanding'\nimport { Filters } from '../features/Filters'\nimport { Grouping, GroupingColumnDef } from '../features/Grouping'\nimport { Ordering } from '../features/Ordering'\nimport { Pagination } from '../features/Pagination'\nimport { Pinning } from '../features/Pinning'\nimport { RowSelection } from '../features/RowSelection'\nimport { Sorting } from '../features/Sorting'\nimport { Visibility } from '../features/Visibility'\n\nexport type TableFeature = {\n getDefaultOptions?: (table: any) => any\n getInitialState?: (initialState?: InitialTableState) => any\n createTable?: (table: any) => any\n getDefaultColumnDef?: () => any\n createColumn?: (column: any, table: any) => any\n createHeader?: (column: any, table: any) => any\n createCell?: (cell: any, column: any, row: any, table: any) => any\n createRow?: (row: any, table: any) => any\n}\n\nconst features = [\n Headers,\n Visibility,\n Ordering,\n Pinning,\n Filters,\n Sorting,\n Grouping,\n Expanding,\n Pagination,\n RowSelection,\n ColumnSizing,\n] as const\n\n//\n\nexport type CoreTableState = {}\n\nexport type CoreOptions<TData extends RowData> = {\n data: TData[]\n state: Partial<TableState>\n onStateChange: (updater: Updater<TableState>) => void\n debugAll?: boolean\n debugTable?: boolean\n debugHeaders?: boolean\n debugColumns?: boolean\n debugRows?: boolean\n initialState?: InitialTableState\n autoResetAll?: boolean\n mergeOptions?: (\n defaultOptions: TableOptions<TData>,\n options: Partial<TableOptions<TData>>\n ) => TableOptions<TData>\n meta?: TableMeta<TData>\n getCoreRowModel: (table: Table<any>) => () => RowModel<any>\n getSubRows?: (originalRow: TData, index: number) => undefined | TData[]\n getRowId?: (originalRow: TData, index: number, parent?: Row<TData>) => string\n columns: ColumnDef<TData, any>[]\n defaultColumn?: Partial<ColumnDef<TData, unknown>>\n renderFallbackValue: any\n}\n\nexport type CoreInstance<TData extends RowData> = {\n initialState: TableState\n reset: () => void\n options: RequiredKeys<TableOptionsResolved<TData>, 'state'>\n setOptions: (newOptions: Updater<TableOptionsResolved<TData>>) => void\n getState: () => TableState\n setState: (updater: Updater<TableState>) => void\n _features: readonly TableFeature[]\n _queue: (cb: () => void) => void\n _getRowId: (_: TData, index: number, parent?: Row<TData>) => string\n getCoreRowModel: () => RowModel<TData>\n _getCoreRowModel?: () => RowModel<TData>\n getRowModel: () => RowModel<TData>\n getRow: (id: string) => Row<TData>\n _getDefaultColumnDef: () => Partial<ColumnDef<TData, unknown>>\n _getColumnDefs: () => ColumnDef<TData, unknown>[]\n _getAllFlatColumnsById: () => Record<string, Column<TData, unknown>>\n getAllColumns: () => Column<TData, unknown>[]\n getAllFlatColumns: () => Column<TData, unknown>[]\n getAllLeafColumns: () => Column<TData, unknown>[]\n getColumn: (columnId: string) => Column<TData, unknown>\n}\n\nexport function createTable<TData extends RowData>(\n options: TableOptionsResolved<TData>\n): Table<TData> {\n if (options.debugAll || options.debugTable) {\n console.info('Creating Table Instance...')\n }\n\n let table = { _features: features } as unknown as Table<TData>\n\n const defaultOptions = table._features.reduce((obj, feature) => {\n return Object.assign(obj, feature.getDefaultOptions?.(table))\n }, {}) as TableOptionsResolved<TData>\n\n const mergeOptions = (options: TableOptionsResolved<TData>) => {\n if (table.options.mergeOptions) {\n return table.options.mergeOptions(defaultOptions, options)\n }\n\n return {\n ...defaultOptions,\n ...options,\n }\n }\n\n const coreInitialState: CoreTableState = {}\n\n let initialState = {\n ...coreInitialState,\n ...(options.initialState ?? {}),\n } as TableState\n\n table._features.forEach(feature => {\n initialState = feature.getInitialState?.(initialState) ?? initialState\n })\n\n const queued: (() => void)[] = []\n let queuedTimeout = false\n\n const coreInstance: CoreInstance<TData> = {\n _features: features,\n options: {\n ...defaultOptions,\n ...options,\n },\n initialState,\n _queue: cb => {\n queued.push(cb)\n\n if (!queuedTimeout) {\n queuedTimeout = true\n\n // Schedule a microtask to run the queued callbacks after\n // the current call stack (render, etc) has finished.\n Promise.resolve()\n .then(() => {\n while (queued.length) {\n queued.shift()!()\n }\n queuedTimeout = false\n })\n .catch(error =>\n setTimeout(() => {\n throw error\n })\n )\n }\n },\n reset: () => {\n table.setState(table.initialState)\n },\n setOptions: updater => {\n const newOptions = functionalUpdate(updater, table.options)\n table.options = mergeOptions(newOptions) as RequiredKeys<\n TableOptionsResolved<TData>,\n 'state'\n >\n },\n\n getState: () => {\n return table.options.state as TableState\n },\n\n setState: (updater: Updater<TableState>) => {\n table.options.onStateChange?.(updater)\n },\n\n _getRowId: (row: TData, index: number, parent?: Row<TData>) =>\n table.options.getRowId?.(row, index, parent) ??\n `${parent ? [parent.id, index].join('.') : index}`,\n\n getCoreRowModel: () => {\n if (!table._getCoreRowModel) {\n table._getCoreRowModel = table.options.getCoreRowModel(table)\n }\n\n return table._getCoreRowModel!()\n },\n\n // The final calls start at the bottom of the model,\n // expanded rows, which then work their way up\n\n getRowModel: () => {\n return table.getPaginationRowModel()\n },\n getRow: (id: string) => {\n const row = table.getRowModel().rowsById[id]\n\n if (!row) {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error(`getRow expected an ID, but got ${id}`)\n }\n throw new Error()\n }\n\n return row\n },\n _getDefaultColumnDef: memo(\n () => [table.options.defaultColumn],\n defaultColumn => {\n defaultColumn = (defaultColumn ?? {}) as Partial<\n ColumnDef<TData, unknown>\n >\n\n return {\n header: props => {\n const resolvedColumnDef = props.header.column\n .columnDef as ColumnDefResolved<TData>\n\n if (resolvedColumnDef.accessorKey) {\n return resolvedColumnDef.accessorKey\n }\n\n if (resolvedColumnDef.accessorFn) {\n return resolvedColumnDef.id\n }\n\n return null\n },\n // footer: props => props.header.column.id,\n cell: props => props.renderValue<any>()?.toString?.() ?? null,\n ...table._features.reduce((obj, feature) => {\n return Object.assign(obj, feature.getDefaultColumnDef?.())\n }, {}),\n ...defaultColumn,\n } as Partial<ColumnDef<TData, unknown>>\n },\n {\n debug: () => table.options.debugAll ?? table.options.debugColumns,\n key: process.env.NODE_ENV === 'development' && 'getDefaultColumnDef',\n }\n ),\n\n _getColumnDefs: () => table.options.columns,\n\n getAllColumns: memo(\n () => [table._getColumnDefs()],\n columnDefs => {\n const recurseColumns = (\n columnDefs: ColumnDef<TData, unknown>[],\n parent?: Column<TData, unknown>,\n depth = 0\n ): Column<TData, unknown>[] => {\n return columnDefs.map(columnDef => {\n const column = createColumn(table, columnDef, depth, parent)\n\n const groupingColumnDef = columnDef as GroupColumnDef<\n TData,\n unknown\n >\n\n column.columns = groupingColumnDef.columns\n ? recurseColumns(groupingColumnDef.columns, column, depth + 1)\n : []\n\n return column\n })\n }\n\n return recurseColumns(columnDefs)\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getAllColumns',\n debug: () => table.options.debugAll ?? table.options.debugColumns,\n }\n ),\n\n getAllFlatColumns: memo(\n () => [table.getAllColumns()],\n allColumns => {\n return allColumns.flatMap(column => {\n return column.getFlatColumns()\n })\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getAllFlatColumns',\n debug: () => table.options.debugAll ?? table.options.debugColumns,\n }\n ),\n\n _getAllFlatColumnsById: memo(\n () => [table.getAllFlatColumns()],\n flatColumns => {\n return flatColumns.reduce((acc, column) => {\n acc[column.id] = column\n return acc\n }, {} as Record<string, Column<TData, unknown>>)\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getAllFlatColumnsById',\n debug: () => table.options.debugAll ?? table.options.debugColumns,\n }\n ),\n\n getAllLeafColumns: memo(\n () => [table.getAllColumns(), table._getOrderColumnsFn()],\n (allColumns, orderColumns) => {\n let leafColumns = allColumns.flatMap(column => column.getLeafColumns())\n return orderColumns(leafColumns)\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getAllLeafColumns',\n debug: () => table.options.debugAll ?? table.options.debugColumns,\n }\n ),\n\n getColumn: columnId => {\n const column = table._getAllFlatColumnsById()[columnId]\n\n if (!column) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(`[Table] Column with id ${columnId} does not exist.`)\n }\n throw new Error()\n }\n\n return column\n },\n }\n\n Object.assign(table, coreInstance)\n\n table._features.forEach(feature => {\n return Object.assign(table, feature.createTable?.(table))\n })\n\n return table\n}\n"],"names":["features","Headers","Visibility","Ordering","Pinning","Filters","Sorting","Grouping","Expanding","Pagination","RowSelection","ColumnSizing","createTable","options","debugAll","debugTable","console","info","table","_features","defaultOptions","reduce","obj","feature","Object","assign","getDefaultOptions","mergeOptions","coreInitialState","initialState","forEach","getInitialState","queued","queuedTimeout","coreInstance","_queue","cb","push","Promise","resolve","then","length","shift","catch","error","setTimeout","reset","setState","setOptions","updater","newOptions","functionalUpdate","getState","state","onStateChange","_getRowId","row","index","parent","getRowId","id","join","getCoreRowModel","_getCoreRowModel","getRowModel","getPaginationRowModel","getRow","rowsById","process","env","NODE_ENV","Error","_getDefaultColumnDef","memo","defaultColumn","header","props","resolvedColumnDef","column","columnDef","accessorKey","accessorFn","cell","renderValue","toString","getDefaultColumnDef","debug","debugColumns","key","_getColumnDefs","columns","getAllColumns","columnDefs","recurseColumns","depth","map","createColumn","groupingColumnDef","getAllFlatColumns","allColumns","flatMap","getFlatColumns","_getAllFlatColumnsById","flatColumns","acc","getAllLeafColumns","_getOrderColumnsFn","orderColumns","leafColumns","getLeafColumns","getColumn","columnId","warn"],"mappings":"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"}
1
+ {"version":3,"file":"table.js","sources":["../../../src/core/table.ts"],"sourcesContent":["import { functionalUpdate, memo, RequiredKeys } from '../utils'\n\nimport {\n Updater,\n TableOptionsResolved,\n TableState,\n Table,\n InitialTableState,\n Row,\n Column,\n RowModel,\n ColumnDef,\n TableOptions,\n RowData,\n TableMeta,\n ColumnDefResolved,\n GroupColumnDef,\n} from '../types'\n\n//\nimport { createColumn } from './column'\nimport { Headers } from './headers'\n//\n\nimport { ColumnSizing } from '../features/ColumnSizing'\nimport { Expanding } from '../features/Expanding'\nimport { Filters } from '../features/Filters'\nimport { Grouping } from '../features/Grouping'\nimport { Ordering } from '../features/Ordering'\nimport { Pagination } from '../features/Pagination'\nimport { Pinning } from '../features/Pinning'\nimport { RowSelection } from '../features/RowSelection'\nimport { Sorting } from '../features/Sorting'\nimport { Visibility } from '../features/Visibility'\n\nexport interface TableFeature {\n getDefaultOptions?: (table: any) => any\n getInitialState?: (initialState?: InitialTableState) => any\n createTable?: (table: any) => any\n getDefaultColumnDef?: () => any\n createColumn?: (column: any, table: any) => any\n createHeader?: (column: any, table: any) => any\n createCell?: (cell: any, column: any, row: any, table: any) => any\n createRow?: (row: any, table: any) => any\n}\n\nconst features = [\n Headers,\n Visibility,\n Ordering,\n Pinning,\n Filters,\n Sorting,\n Grouping,\n Expanding,\n Pagination,\n RowSelection,\n ColumnSizing,\n] as const\n\n//\n\nexport interface CoreTableState {}\n\nexport interface CoreOptions<TData extends RowData> {\n data: TData[]\n state: Partial<TableState>\n onStateChange: (updater: Updater<TableState>) => void\n debugAll?: boolean\n debugTable?: boolean\n debugHeaders?: boolean\n debugColumns?: boolean\n debugRows?: boolean\n initialState?: InitialTableState\n autoResetAll?: boolean\n mergeOptions?: (\n defaultOptions: TableOptions<TData>,\n options: Partial<TableOptions<TData>>\n ) => TableOptions<TData>\n meta?: TableMeta<TData>\n getCoreRowModel: (table: Table<any>) => () => RowModel<any>\n getSubRows?: (originalRow: TData, index: number) => undefined | TData[]\n getRowId?: (originalRow: TData, index: number, parent?: Row<TData>) => string\n columns: ColumnDef<TData, any>[]\n defaultColumn?: Partial<ColumnDef<TData, unknown>>\n renderFallbackValue: any\n}\n\nexport interface CoreInstance<TData extends RowData> {\n initialState: TableState\n reset: () => void\n options: RequiredKeys<TableOptionsResolved<TData>, 'state'>\n setOptions: (newOptions: Updater<TableOptionsResolved<TData>>) => void\n getState: () => TableState\n setState: (updater: Updater<TableState>) => void\n _features: readonly TableFeature[]\n _queue: (cb: () => void) => void\n _getRowId: (_: TData, index: number, parent?: Row<TData>) => string\n getCoreRowModel: () => RowModel<TData>\n _getCoreRowModel?: () => RowModel<TData>\n getRowModel: () => RowModel<TData>\n getRow: (id: string) => Row<TData>\n _getDefaultColumnDef: () => Partial<ColumnDef<TData, unknown>>\n _getColumnDefs: () => ColumnDef<TData, unknown>[]\n _getAllFlatColumnsById: () => Record<string, Column<TData, unknown>>\n getAllColumns: () => Column<TData, unknown>[]\n getAllFlatColumns: () => Column<TData, unknown>[]\n getAllLeafColumns: () => Column<TData, unknown>[]\n getColumn: (columnId: string) => Column<TData, unknown>\n}\n\nexport function createTable<TData extends RowData>(\n options: TableOptionsResolved<TData>\n): Table<TData> {\n if (options.debugAll || options.debugTable) {\n console.info('Creating Table Instance...')\n }\n\n let table = { _features: features } as unknown as Table<TData>\n\n const defaultOptions = table._features.reduce((obj, feature) => {\n return Object.assign(obj, feature.getDefaultOptions?.(table))\n }, {}) as TableOptionsResolved<TData>\n\n const mergeOptions = (options: TableOptionsResolved<TData>) => {\n if (table.options.mergeOptions) {\n return table.options.mergeOptions(defaultOptions, options)\n }\n\n return {\n ...defaultOptions,\n ...options,\n }\n }\n\n const coreInitialState: CoreTableState = {}\n\n let initialState = {\n ...coreInitialState,\n ...(options.initialState ?? {}),\n } as TableState\n\n table._features.forEach(feature => {\n initialState = feature.getInitialState?.(initialState) ?? initialState\n })\n\n const queued: (() => void)[] = []\n let queuedTimeout = false\n\n const coreInstance: CoreInstance<TData> = {\n _features: features,\n options: {\n ...defaultOptions,\n ...options,\n },\n initialState,\n _queue: cb => {\n queued.push(cb)\n\n if (!queuedTimeout) {\n queuedTimeout = true\n\n // Schedule a microtask to run the queued callbacks after\n // the current call stack (render, etc) has finished.\n Promise.resolve()\n .then(() => {\n while (queued.length) {\n queued.shift()!()\n }\n queuedTimeout = false\n })\n .catch(error =>\n setTimeout(() => {\n throw error\n })\n )\n }\n },\n reset: () => {\n table.setState(table.initialState)\n },\n setOptions: updater => {\n const newOptions = functionalUpdate(updater, table.options)\n table.options = mergeOptions(newOptions) as RequiredKeys<\n TableOptionsResolved<TData>,\n 'state'\n >\n },\n\n getState: () => {\n return table.options.state as TableState\n },\n\n setState: (updater: Updater<TableState>) => {\n table.options.onStateChange?.(updater)\n },\n\n _getRowId: (row: TData, index: number, parent?: Row<TData>) =>\n table.options.getRowId?.(row, index, parent) ??\n `${parent ? [parent.id, index].join('.') : index}`,\n\n getCoreRowModel: () => {\n if (!table._getCoreRowModel) {\n table._getCoreRowModel = table.options.getCoreRowModel(table)\n }\n\n return table._getCoreRowModel!()\n },\n\n // The final calls start at the bottom of the model,\n // expanded rows, which then work their way up\n\n getRowModel: () => {\n return table.getPaginationRowModel()\n },\n getRow: (id: string) => {\n const row = table.getRowModel().rowsById[id]\n\n if (!row) {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error(`getRow expected an ID, but got ${id}`)\n }\n throw new Error()\n }\n\n return row\n },\n _getDefaultColumnDef: memo(\n () => [table.options.defaultColumn],\n defaultColumn => {\n defaultColumn = (defaultColumn ?? {}) as Partial<\n ColumnDef<TData, unknown>\n >\n\n return {\n header: props => {\n const resolvedColumnDef = props.header.column\n .columnDef as ColumnDefResolved<TData>\n\n if (resolvedColumnDef.accessorKey) {\n return resolvedColumnDef.accessorKey\n }\n\n if (resolvedColumnDef.accessorFn) {\n return resolvedColumnDef.id\n }\n\n return null\n },\n // footer: props => props.header.column.id,\n cell: props => props.renderValue<any>()?.toString?.() ?? null,\n ...table._features.reduce((obj, feature) => {\n return Object.assign(obj, feature.getDefaultColumnDef?.())\n }, {}),\n ...defaultColumn,\n } as Partial<ColumnDef<TData, unknown>>\n },\n {\n debug: () => table.options.debugAll ?? table.options.debugColumns,\n key: process.env.NODE_ENV === 'development' && 'getDefaultColumnDef',\n }\n ),\n\n _getColumnDefs: () => table.options.columns,\n\n getAllColumns: memo(\n () => [table._getColumnDefs()],\n columnDefs => {\n const recurseColumns = (\n columnDefs: ColumnDef<TData, unknown>[],\n parent?: Column<TData, unknown>,\n depth = 0\n ): Column<TData, unknown>[] => {\n return columnDefs.map(columnDef => {\n const column = createColumn(table, columnDef, depth, parent)\n\n const groupingColumnDef = columnDef as GroupColumnDef<\n TData,\n unknown\n >\n\n column.columns = groupingColumnDef.columns\n ? recurseColumns(groupingColumnDef.columns, column, depth + 1)\n : []\n\n return column\n })\n }\n\n return recurseColumns(columnDefs)\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getAllColumns',\n debug: () => table.options.debugAll ?? table.options.debugColumns,\n }\n ),\n\n getAllFlatColumns: memo(\n () => [table.getAllColumns()],\n allColumns => {\n return allColumns.flatMap(column => {\n return column.getFlatColumns()\n })\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getAllFlatColumns',\n debug: () => table.options.debugAll ?? table.options.debugColumns,\n }\n ),\n\n _getAllFlatColumnsById: memo(\n () => [table.getAllFlatColumns()],\n flatColumns => {\n return flatColumns.reduce((acc, column) => {\n acc[column.id] = column\n return acc\n }, {} as Record<string, Column<TData, unknown>>)\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getAllFlatColumnsById',\n debug: () => table.options.debugAll ?? table.options.debugColumns,\n }\n ),\n\n getAllLeafColumns: memo(\n () => [table.getAllColumns(), table._getOrderColumnsFn()],\n (allColumns, orderColumns) => {\n let leafColumns = allColumns.flatMap(column => column.getLeafColumns())\n return orderColumns(leafColumns)\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getAllLeafColumns',\n debug: () => table.options.debugAll ?? table.options.debugColumns,\n }\n ),\n\n getColumn: columnId => {\n const column = table._getAllFlatColumnsById()[columnId]\n\n if (!column) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(`[Table] Column with id ${columnId} does not exist.`)\n }\n throw new Error()\n }\n\n return column\n },\n }\n\n Object.assign(table, coreInstance)\n\n table._features.forEach(feature => {\n return Object.assign(table, feature.createTable?.(table))\n })\n\n return table\n}\n"],"names":["features","Headers","Visibility","Ordering","Pinning","Filters","Sorting","Grouping","Expanding","Pagination","RowSelection","ColumnSizing","createTable","options","debugAll","debugTable","console","info","table","_features","defaultOptions","reduce","obj","feature","Object","assign","getDefaultOptions","mergeOptions","coreInitialState","initialState","forEach","getInitialState","queued","queuedTimeout","coreInstance","_queue","cb","push","Promise","resolve","then","length","shift","catch","error","setTimeout","reset","setState","setOptions","updater","newOptions","functionalUpdate","getState","state","onStateChange","_getRowId","row","index","parent","getRowId","id","join","getCoreRowModel","_getCoreRowModel","getRowModel","getPaginationRowModel","getRow","rowsById","process","env","NODE_ENV","Error","_getDefaultColumnDef","memo","defaultColumn","header","props","resolvedColumnDef","column","columnDef","accessorKey","accessorFn","cell","renderValue","toString","getDefaultColumnDef","debug","debugColumns","key","_getColumnDefs","columns","getAllColumns","columnDefs","recurseColumns","depth","map","createColumn","groupingColumnDef","getAllFlatColumns","allColumns","flatMap","getFlatColumns","_getAllFlatColumnsById","flatColumns","acc","getAllLeafColumns","_getOrderColumnsFn","orderColumns","leafColumns","getLeafColumns","getColumn","columnId","warn"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ColumnSizing.js","sources":["../../../src/features/ColumnSizing.ts"],"sourcesContent":["import { TableFeature } from '../core/table'\nimport { RowData, Column, Header, OnChangeFn, Table, Updater } from '../types'\nimport { makeStateUpdater } from '../utils'\nimport { ColumnPinningPosition } from './Pinning'\n\n//\n\nexport type ColumnSizingTableState = {\n columnSizing: ColumnSizingState\n columnSizingInfo: ColumnSizingInfoState\n}\n\nexport type ColumnSizingState = Record<string, number>\n\nexport type ColumnSizingInfoState = {\n startOffset: null | number\n startSize: null | number\n deltaOffset: null | number\n deltaPercentage: null | number\n isResizingColumn: false | string\n columnSizingStart: [string, number][]\n}\n\nexport type ColumnResizeMode = 'onChange' | 'onEnd'\n\nexport type ColumnSizingOptions = {\n enableColumnResizing?: boolean\n columnResizeMode?: ColumnResizeMode\n onColumnSizingChange?: OnChangeFn<ColumnSizingState>\n onColumnSizingInfoChange?: OnChangeFn<ColumnSizingInfoState>\n}\n\nexport type ColumnSizingDefaultOptions = {\n columnResizeMode: ColumnResizeMode\n onColumnSizingChange: OnChangeFn<ColumnSizingState>\n onColumnSizingInfoChange: OnChangeFn<ColumnSizingInfoState>\n}\n\nexport type ColumnSizingInstance = {\n setColumnSizing: (updater: Updater<ColumnSizingState>) => void\n setColumnSizingInfo: (updater: Updater<ColumnSizingInfoState>) => void\n resetColumnSizing: (defaultState?: boolean) => void\n resetHeaderSizeInfo: (defaultState?: boolean) => void\n getTotalSize: () => number\n getLeftTotalSize: () => number\n getCenterTotalSize: () => number\n getRightTotalSize: () => number\n}\n\nexport type ColumnSizingColumnDef = {\n enableResizing?: boolean\n size?: number\n minSize?: number\n maxSize?: number\n}\n\nexport type ColumnSizingColumn = {\n getSize: () => number\n getStart: (position?: ColumnPinningPosition) => number\n getCanResize: () => boolean\n getIsResizing: () => boolean\n resetSize: () => void\n}\n\nexport type ColumnSizingHeader = {\n getSize: () => number\n getStart: (position?: ColumnPinningPosition) => number\n getResizeHandler: () => (event: unknown) => void\n}\n\n//\n\nexport const defaultColumnSizing = {\n size: 150,\n minSize: 20,\n maxSize: Number.MAX_SAFE_INTEGER,\n}\n\nconst getDefaultColumnSizingInfoState = (): ColumnSizingInfoState => ({\n startOffset: null,\n startSize: null,\n deltaOffset: null,\n deltaPercentage: null,\n isResizingColumn: false,\n columnSizingStart: [],\n})\n\nexport const ColumnSizing: TableFeature = {\n getDefaultColumnDef: (): ColumnSizingColumnDef => {\n return defaultColumnSizing\n },\n getInitialState: (state): ColumnSizingTableState => {\n return {\n columnSizing: {},\n columnSizingInfo: getDefaultColumnSizingInfoState(),\n ...state,\n }\n },\n\n getDefaultOptions: <TData extends RowData>(\n table: Table<TData>\n ): ColumnSizingDefaultOptions => {\n return {\n columnResizeMode: 'onEnd',\n onColumnSizingChange: makeStateUpdater('columnSizing', table),\n onColumnSizingInfoChange: makeStateUpdater('columnSizingInfo', table),\n }\n },\n\n createColumn: <TData extends RowData, TValue>(\n column: Column<TData, TValue>,\n table: Table<TData>\n ): ColumnSizingColumn => {\n return {\n getSize: () => {\n const columnSize = table.getState().columnSizing[column.id]\n\n return Math.min(\n Math.max(\n column.columnDef.minSize ?? defaultColumnSizing.minSize,\n columnSize ?? column.columnDef.size ?? defaultColumnSizing.size\n ),\n column.columnDef.maxSize ?? defaultColumnSizing.maxSize\n )\n },\n getStart: position => {\n const columns = !position\n ? table.getVisibleLeafColumns()\n : position === 'left'\n ? table.getLeftVisibleLeafColumns()\n : table.getRightVisibleLeafColumns()\n\n const index = columns.findIndex(d => d.id === column.id)\n\n if (index > 0) {\n const prevSiblingColumn = columns[index - 1]!\n\n return (\n prevSiblingColumn.getStart(position) + prevSiblingColumn.getSize()\n )\n }\n\n return 0\n },\n resetSize: () => {\n table.setColumnSizing(({ [column.id]: _, ...rest }) => {\n return rest\n })\n },\n getCanResize: () => {\n return (\n (column.columnDef.enableResizing ?? true) &&\n (table.options.enableColumnResizing ?? true)\n )\n },\n getIsResizing: () => {\n return table.getState().columnSizingInfo.isResizingColumn === column.id\n },\n }\n },\n\n createHeader: <TData extends RowData, TValue>(\n header: Header<TData, TValue>,\n table: Table<TData>\n ): ColumnSizingHeader => {\n return {\n getSize: () => {\n let sum = 0\n\n const recurse = (header: Header<TData, TValue>) => {\n if (header.subHeaders.length) {\n header.subHeaders.forEach(recurse)\n } else {\n sum += header.column.getSize() ?? 0\n }\n }\n\n recurse(header)\n\n return sum\n },\n getStart: () => {\n if (header.index > 0) {\n const prevSiblingHeader =\n header.headerGroup.headers[header.index - 1]!\n return prevSiblingHeader.getStart() + prevSiblingHeader.getSize()\n }\n\n return 0\n },\n getResizeHandler: () => {\n const column = table.getColumn(header.column.id)\n const canResize = column.getCanResize()\n\n return (e: unknown) => {\n if (!canResize) {\n return\n }\n\n ;(e as any).persist?.()\n\n if (isTouchStartEvent(e)) {\n // lets not respond to multiple touches (e.g. 2 or 3 fingers)\n if (e.touches && e.touches.length > 1) {\n return\n }\n }\n\n const startSize = header.getSize()\n\n const columnSizingStart: [string, number][] = header\n ? header\n .getLeafHeaders()\n .map(d => [d.column.id, d.column.getSize()])\n : [[column.id, column.getSize()]]\n\n const clientX = isTouchStartEvent(e)\n ? Math.round(e.touches[0]!.clientX)\n : (e as MouseEvent).clientX\n\n const updateOffset = (\n eventType: 'move' | 'end',\n clientXPos?: number\n ) => {\n if (typeof clientXPos !== 'number') {\n return\n }\n\n let newColumnSizing: ColumnSizingState = {}\n\n table.setColumnSizingInfo(old => {\n const deltaOffset = clientXPos - (old?.startOffset ?? 0)\n const deltaPercentage = Math.max(\n deltaOffset / (old?.startSize ?? 0),\n -0.999999\n )\n\n old.columnSizingStart.forEach(([columnId, headerSize]) => {\n newColumnSizing[columnId] =\n Math.round(\n Math.max(headerSize + headerSize * deltaPercentage, 0) * 100\n ) / 100\n })\n\n return {\n ...old,\n deltaOffset,\n deltaPercentage,\n }\n })\n\n if (\n table.options.columnResizeMode === 'onChange' ||\n eventType === 'end'\n ) {\n table.setColumnSizing(old => ({\n ...old,\n ...newColumnSizing,\n }))\n }\n }\n\n const onMove = (clientXPos?: number) =>\n updateOffset('move', clientXPos)\n\n const onEnd = (clientXPos?: number) => {\n updateOffset('end', clientXPos)\n\n table.setColumnSizingInfo(old => ({\n ...old,\n isResizingColumn: false,\n startOffset: null,\n startSize: null,\n deltaOffset: null,\n deltaPercentage: null,\n columnSizingStart: [],\n }))\n }\n\n const mouseEvents = {\n moveHandler: (e: MouseEvent) => onMove(e.clientX),\n upHandler: (e: MouseEvent) => {\n document.removeEventListener('mousemove', mouseEvents.moveHandler)\n document.removeEventListener('mouseup', mouseEvents.upHandler)\n onEnd(e.clientX)\n },\n }\n\n const touchEvents = {\n moveHandler: (e: TouchEvent) => {\n if (e.cancelable) {\n e.preventDefault()\n e.stopPropagation()\n }\n onMove(e.touches[0]!.clientX)\n return false\n },\n upHandler: (e: TouchEvent) => {\n document.removeEventListener('touchmove', touchEvents.moveHandler)\n document.removeEventListener('touchend', touchEvents.upHandler)\n if (e.cancelable) {\n e.preventDefault()\n e.stopPropagation()\n }\n onEnd(e.touches[0]?.clientX)\n },\n }\n\n const passiveIfSupported = passiveEventSupported()\n ? { passive: false }\n : false\n\n if (isTouchStartEvent(e)) {\n document.addEventListener(\n 'touchmove',\n touchEvents.moveHandler,\n passiveIfSupported\n )\n document.addEventListener(\n 'touchend',\n touchEvents.upHandler,\n passiveIfSupported\n )\n } else {\n document.addEventListener(\n 'mousemove',\n mouseEvents.moveHandler,\n passiveIfSupported\n )\n document.addEventListener(\n 'mouseup',\n mouseEvents.upHandler,\n passiveIfSupported\n )\n }\n\n table.setColumnSizingInfo(old => ({\n ...old,\n startOffset: clientX,\n startSize,\n deltaOffset: 0,\n deltaPercentage: 0,\n columnSizingStart,\n isResizingColumn: column.id,\n }))\n }\n },\n }\n },\n\n createTable: <TData extends RowData>(\n table: Table<TData>\n ): ColumnSizingInstance => {\n return {\n setColumnSizing: updater => table.options.onColumnSizingChange?.(updater),\n setColumnSizingInfo: updater =>\n table.options.onColumnSizingInfoChange?.(updater),\n resetColumnSizing: defaultState => {\n table.setColumnSizing(\n defaultState ? {} : table.initialState.columnSizing ?? {}\n )\n },\n resetHeaderSizeInfo: defaultState => {\n table.setColumnSizingInfo(\n defaultState\n ? getDefaultColumnSizingInfoState()\n : table.initialState.columnSizingInfo ??\n getDefaultColumnSizingInfoState()\n )\n },\n getTotalSize: () =>\n table.getHeaderGroups()[0]?.headers.reduce((sum, header) => {\n return sum + header.getSize()\n }, 0) ?? 0,\n getLeftTotalSize: () =>\n table.getLeftHeaderGroups()[0]?.headers.reduce((sum, header) => {\n return sum + header.getSize()\n }, 0) ?? 0,\n getCenterTotalSize: () =>\n table.getCenterHeaderGroups()[0]?.headers.reduce((sum, header) => {\n return sum + header.getSize()\n }, 0) ?? 0,\n getRightTotalSize: () =>\n table.getRightHeaderGroups()[0]?.headers.reduce((sum, header) => {\n return sum + header.getSize()\n }, 0) ?? 0,\n }\n },\n}\n\nlet passiveSupported: boolean | null = null\nexport function passiveEventSupported() {\n if (typeof passiveSupported === 'boolean') return passiveSupported\n\n let supported = false\n try {\n const options = {\n get passive() {\n supported = true\n return false\n },\n }\n\n const noop = () => {}\n\n window.addEventListener('test', noop, options)\n window.removeEventListener('test', noop)\n } catch (err) {\n supported = false\n }\n passiveSupported = supported\n return passiveSupported\n}\n\nfunction isTouchStartEvent(e: unknown): e is TouchEvent {\n return (e as TouchEvent).type === 'touchstart'\n}\n"],"names":["defaultColumnSizing","size","minSize","maxSize","Number","MAX_SAFE_INTEGER","getDefaultColumnSizingInfoState","startOffset","startSize","deltaOffset","deltaPercentage","isResizingColumn","columnSizingStart","ColumnSizing","getDefaultColumnDef","getInitialState","state","columnSizing","columnSizingInfo","getDefaultOptions","table","columnResizeMode","onColumnSizingChange","makeStateUpdater","onColumnSizingInfoChange","createColumn","column","getSize","columnSize","getState","id","Math","min","max","columnDef","getStart","position","columns","getVisibleLeafColumns","getLeftVisibleLeafColumns","getRightVisibleLeafColumns","index","findIndex","d","prevSiblingColumn","resetSize","setColumnSizing","_","rest","getCanResize","enableResizing","options","enableColumnResizing","getIsResizing","createHeader","header","sum","recurse","subHeaders","length","forEach","prevSiblingHeader","headerGroup","headers","getResizeHandler","getColumn","canResize","e","persist","isTouchStartEvent","touches","getLeafHeaders","map","clientX","round","updateOffset","eventType","clientXPos","newColumnSizing","setColumnSizingInfo","old","columnId","headerSize","onMove","onEnd","mouseEvents","moveHandler","upHandler","document","removeEventListener","touchEvents","cancelable","preventDefault","stopPropagation","passiveIfSupported","passiveEventSupported","passive","addEventListener","createTable","updater","resetColumnSizing","defaultState","initialState","resetHeaderSizeInfo","getTotalSize","getHeaderGroups","reduce","getLeftTotalSize","getLeftHeaderGroups","getCenterTotalSize","getCenterHeaderGroups","getRightTotalSize","getRightHeaderGroups","passiveSupported","supported","noop","window","err","type"],"mappings":"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"}
1
+ {"version":3,"file":"ColumnSizing.js","sources":["../../../src/features/ColumnSizing.ts"],"sourcesContent":["import { TableFeature } from '../core/table'\nimport { RowData, Column, Header, OnChangeFn, Table, Updater } from '../types'\nimport { makeStateUpdater } from '../utils'\nimport { ColumnPinningPosition } from './Pinning'\n\n//\n\nexport interface ColumnSizingTableState {\n columnSizing: ColumnSizingState\n columnSizingInfo: ColumnSizingInfoState\n}\n\nexport type ColumnSizingState = Record<string, number>\n\nexport interface ColumnSizingInfoState {\n startOffset: null | number\n startSize: null | number\n deltaOffset: null | number\n deltaPercentage: null | number\n isResizingColumn: false | string\n columnSizingStart: [string, number][]\n}\n\nexport type ColumnResizeMode = 'onChange' | 'onEnd'\n\nexport interface ColumnSizingOptions {\n enableColumnResizing?: boolean\n columnResizeMode?: ColumnResizeMode\n onColumnSizingChange?: OnChangeFn<ColumnSizingState>\n onColumnSizingInfoChange?: OnChangeFn<ColumnSizingInfoState>\n}\n\nexport interface ColumnSizingDefaultOptions {\n columnResizeMode: ColumnResizeMode\n onColumnSizingChange: OnChangeFn<ColumnSizingState>\n onColumnSizingInfoChange: OnChangeFn<ColumnSizingInfoState>\n}\n\nexport interface ColumnSizingInstance {\n setColumnSizing: (updater: Updater<ColumnSizingState>) => void\n setColumnSizingInfo: (updater: Updater<ColumnSizingInfoState>) => void\n resetColumnSizing: (defaultState?: boolean) => void\n resetHeaderSizeInfo: (defaultState?: boolean) => void\n getTotalSize: () => number\n getLeftTotalSize: () => number\n getCenterTotalSize: () => number\n getRightTotalSize: () => number\n}\n\nexport interface ColumnSizingColumnDef {\n enableResizing?: boolean\n size?: number\n minSize?: number\n maxSize?: number\n}\n\nexport interface ColumnSizingColumn {\n getSize: () => number\n getStart: (position?: ColumnPinningPosition) => number\n getCanResize: () => boolean\n getIsResizing: () => boolean\n resetSize: () => void\n}\n\nexport interface ColumnSizingHeader {\n getSize: () => number\n getStart: (position?: ColumnPinningPosition) => number\n getResizeHandler: () => (event: unknown) => void\n}\n\n//\n\nexport const defaultColumnSizing = {\n size: 150,\n minSize: 20,\n maxSize: Number.MAX_SAFE_INTEGER,\n}\n\nconst getDefaultColumnSizingInfoState = (): ColumnSizingInfoState => ({\n startOffset: null,\n startSize: null,\n deltaOffset: null,\n deltaPercentage: null,\n isResizingColumn: false,\n columnSizingStart: [],\n})\n\nexport const ColumnSizing: TableFeature = {\n getDefaultColumnDef: (): ColumnSizingColumnDef => {\n return defaultColumnSizing\n },\n getInitialState: (state): ColumnSizingTableState => {\n return {\n columnSizing: {},\n columnSizingInfo: getDefaultColumnSizingInfoState(),\n ...state,\n }\n },\n\n getDefaultOptions: <TData extends RowData>(\n table: Table<TData>\n ): ColumnSizingDefaultOptions => {\n return {\n columnResizeMode: 'onEnd',\n onColumnSizingChange: makeStateUpdater('columnSizing', table),\n onColumnSizingInfoChange: makeStateUpdater('columnSizingInfo', table),\n }\n },\n\n createColumn: <TData extends RowData, TValue>(\n column: Column<TData, TValue>,\n table: Table<TData>\n ): ColumnSizingColumn => {\n return {\n getSize: () => {\n const columnSize = table.getState().columnSizing[column.id]\n\n return Math.min(\n Math.max(\n column.columnDef.minSize ?? defaultColumnSizing.minSize,\n columnSize ?? column.columnDef.size ?? defaultColumnSizing.size\n ),\n column.columnDef.maxSize ?? defaultColumnSizing.maxSize\n )\n },\n getStart: position => {\n const columns = !position\n ? table.getVisibleLeafColumns()\n : position === 'left'\n ? table.getLeftVisibleLeafColumns()\n : table.getRightVisibleLeafColumns()\n\n const index = columns.findIndex(d => d.id === column.id)\n\n if (index > 0) {\n const prevSiblingColumn = columns[index - 1]!\n\n return (\n prevSiblingColumn.getStart(position) + prevSiblingColumn.getSize()\n )\n }\n\n return 0\n },\n resetSize: () => {\n table.setColumnSizing(({ [column.id]: _, ...rest }) => {\n return rest\n })\n },\n getCanResize: () => {\n return (\n (column.columnDef.enableResizing ?? true) &&\n (table.options.enableColumnResizing ?? true)\n )\n },\n getIsResizing: () => {\n return table.getState().columnSizingInfo.isResizingColumn === column.id\n },\n }\n },\n\n createHeader: <TData extends RowData, TValue>(\n header: Header<TData, TValue>,\n table: Table<TData>\n ): ColumnSizingHeader => {\n return {\n getSize: () => {\n let sum = 0\n\n const recurse = (header: Header<TData, TValue>) => {\n if (header.subHeaders.length) {\n header.subHeaders.forEach(recurse)\n } else {\n sum += header.column.getSize() ?? 0\n }\n }\n\n recurse(header)\n\n return sum\n },\n getStart: () => {\n if (header.index > 0) {\n const prevSiblingHeader =\n header.headerGroup.headers[header.index - 1]!\n return prevSiblingHeader.getStart() + prevSiblingHeader.getSize()\n }\n\n return 0\n },\n getResizeHandler: () => {\n const column = table.getColumn(header.column.id)\n const canResize = column.getCanResize()\n\n return (e: unknown) => {\n if (!canResize) {\n return\n }\n\n ;(e as any).persist?.()\n\n if (isTouchStartEvent(e)) {\n // lets not respond to multiple touches (e.g. 2 or 3 fingers)\n if (e.touches && e.touches.length > 1) {\n return\n }\n }\n\n const startSize = header.getSize()\n\n const columnSizingStart: [string, number][] = header\n ? header\n .getLeafHeaders()\n .map(d => [d.column.id, d.column.getSize()])\n : [[column.id, column.getSize()]]\n\n const clientX = isTouchStartEvent(e)\n ? Math.round(e.touches[0]!.clientX)\n : (e as MouseEvent).clientX\n\n const updateOffset = (\n eventType: 'move' | 'end',\n clientXPos?: number\n ) => {\n if (typeof clientXPos !== 'number') {\n return\n }\n\n let newColumnSizing: ColumnSizingState = {}\n\n table.setColumnSizingInfo(old => {\n const deltaOffset = clientXPos - (old?.startOffset ?? 0)\n const deltaPercentage = Math.max(\n deltaOffset / (old?.startSize ?? 0),\n -0.999999\n )\n\n old.columnSizingStart.forEach(([columnId, headerSize]) => {\n newColumnSizing[columnId] =\n Math.round(\n Math.max(headerSize + headerSize * deltaPercentage, 0) * 100\n ) / 100\n })\n\n return {\n ...old,\n deltaOffset,\n deltaPercentage,\n }\n })\n\n if (\n table.options.columnResizeMode === 'onChange' ||\n eventType === 'end'\n ) {\n table.setColumnSizing(old => ({\n ...old,\n ...newColumnSizing,\n }))\n }\n }\n\n const onMove = (clientXPos?: number) =>\n updateOffset('move', clientXPos)\n\n const onEnd = (clientXPos?: number) => {\n updateOffset('end', clientXPos)\n\n table.setColumnSizingInfo(old => ({\n ...old,\n isResizingColumn: false,\n startOffset: null,\n startSize: null,\n deltaOffset: null,\n deltaPercentage: null,\n columnSizingStart: [],\n }))\n }\n\n const mouseEvents = {\n moveHandler: (e: MouseEvent) => onMove(e.clientX),\n upHandler: (e: MouseEvent) => {\n document.removeEventListener('mousemove', mouseEvents.moveHandler)\n document.removeEventListener('mouseup', mouseEvents.upHandler)\n onEnd(e.clientX)\n },\n }\n\n const touchEvents = {\n moveHandler: (e: TouchEvent) => {\n if (e.cancelable) {\n e.preventDefault()\n e.stopPropagation()\n }\n onMove(e.touches[0]!.clientX)\n return false\n },\n upHandler: (e: TouchEvent) => {\n document.removeEventListener('touchmove', touchEvents.moveHandler)\n document.removeEventListener('touchend', touchEvents.upHandler)\n if (e.cancelable) {\n e.preventDefault()\n e.stopPropagation()\n }\n onEnd(e.touches[0]?.clientX)\n },\n }\n\n const passiveIfSupported = passiveEventSupported()\n ? { passive: false }\n : false\n\n if (isTouchStartEvent(e)) {\n document.addEventListener(\n 'touchmove',\n touchEvents.moveHandler,\n passiveIfSupported\n )\n document.addEventListener(\n 'touchend',\n touchEvents.upHandler,\n passiveIfSupported\n )\n } else {\n document.addEventListener(\n 'mousemove',\n mouseEvents.moveHandler,\n passiveIfSupported\n )\n document.addEventListener(\n 'mouseup',\n mouseEvents.upHandler,\n passiveIfSupported\n )\n }\n\n table.setColumnSizingInfo(old => ({\n ...old,\n startOffset: clientX,\n startSize,\n deltaOffset: 0,\n deltaPercentage: 0,\n columnSizingStart,\n isResizingColumn: column.id,\n }))\n }\n },\n }\n },\n\n createTable: <TData extends RowData>(\n table: Table<TData>\n ): ColumnSizingInstance => {\n return {\n setColumnSizing: updater => table.options.onColumnSizingChange?.(updater),\n setColumnSizingInfo: updater =>\n table.options.onColumnSizingInfoChange?.(updater),\n resetColumnSizing: defaultState => {\n table.setColumnSizing(\n defaultState ? {} : table.initialState.columnSizing ?? {}\n )\n },\n resetHeaderSizeInfo: defaultState => {\n table.setColumnSizingInfo(\n defaultState\n ? getDefaultColumnSizingInfoState()\n : table.initialState.columnSizingInfo ??\n getDefaultColumnSizingInfoState()\n )\n },\n getTotalSize: () =>\n table.getHeaderGroups()[0]?.headers.reduce((sum, header) => {\n return sum + header.getSize()\n }, 0) ?? 0,\n getLeftTotalSize: () =>\n table.getLeftHeaderGroups()[0]?.headers.reduce((sum, header) => {\n return sum + header.getSize()\n }, 0) ?? 0,\n getCenterTotalSize: () =>\n table.getCenterHeaderGroups()[0]?.headers.reduce((sum, header) => {\n return sum + header.getSize()\n }, 0) ?? 0,\n getRightTotalSize: () =>\n table.getRightHeaderGroups()[0]?.headers.reduce((sum, header) => {\n return sum + header.getSize()\n }, 0) ?? 0,\n }\n },\n}\n\nlet passiveSupported: boolean | null = null\nexport function passiveEventSupported() {\n if (typeof passiveSupported === 'boolean') return passiveSupported\n\n let supported = false\n try {\n const options = {\n get passive() {\n supported = true\n return false\n },\n }\n\n const noop = () => {}\n\n window.addEventListener('test', noop, options)\n window.removeEventListener('test', noop)\n } catch (err) {\n supported = false\n }\n passiveSupported = supported\n return passiveSupported\n}\n\nfunction isTouchStartEvent(e: unknown): e is TouchEvent {\n return (e as TouchEvent).type === 'touchstart'\n}\n"],"names":["defaultColumnSizing","size","minSize","maxSize","Number","MAX_SAFE_INTEGER","getDefaultColumnSizingInfoState","startOffset","startSize","deltaOffset","deltaPercentage","isResizingColumn","columnSizingStart","ColumnSizing","getDefaultColumnDef","getInitialState","state","columnSizing","columnSizingInfo","getDefaultOptions","table","columnResizeMode","onColumnSizingChange","makeStateUpdater","onColumnSizingInfoChange","createColumn","column","getSize","columnSize","getState","id","Math","min","max","columnDef","getStart","position","columns","getVisibleLeafColumns","getLeftVisibleLeafColumns","getRightVisibleLeafColumns","index","findIndex","d","prevSiblingColumn","resetSize","setColumnSizing","_","rest","getCanResize","enableResizing","options","enableColumnResizing","getIsResizing","createHeader","header","sum","recurse","subHeaders","length","forEach","prevSiblingHeader","headerGroup","headers","getResizeHandler","getColumn","canResize","e","persist","isTouchStartEvent","touches","getLeafHeaders","map","clientX","round","updateOffset","eventType","clientXPos","newColumnSizing","setColumnSizingInfo","old","columnId","headerSize","onMove","onEnd","mouseEvents","moveHandler","upHandler","document","removeEventListener","touchEvents","cancelable","preventDefault","stopPropagation","passiveIfSupported","passiveEventSupported","passive","addEventListener","createTable","updater","resetColumnSizing","defaultState","initialState","resetHeaderSizeInfo","getTotalSize","getHeaderGroups","reduce","getLeftTotalSize","getLeftHeaderGroups","getCenterTotalSize","getCenterHeaderGroups","getRightTotalSize","getRightHeaderGroups","passiveSupported","supported","noop","window","err","type"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Expanding.js","sources":["../../../src/features/Expanding.ts"],"sourcesContent":["import { RowModel } from '..'\nimport { TableFeature } from '../core/table'\nimport { OnChangeFn, Table, Row, Updater, RowData } from '../types'\nimport { makeStateUpdater } from '../utils'\n\nexport type ExpandedStateList = Record<string, boolean>\nexport type ExpandedState = true | Record<string, boolean>\nexport type ExpandedTableState = {\n expanded: ExpandedState\n}\n\nexport type ExpandedRow = {\n toggleExpanded: (expanded?: boolean) => void\n getIsExpanded: () => boolean\n getCanExpand: () => boolean\n getToggleExpandedHandler: () => () => void\n}\n\nexport type ExpandedOptions<TData extends RowData> = {\n manualExpanding?: boolean\n onExpandedChange?: OnChangeFn<ExpandedState>\n autoResetExpanded?: boolean\n enableExpanding?: boolean\n getExpandedRowModel?: (table: Table<any>) => () => RowModel<any>\n getIsRowExpanded?: (row: Row<TData>) => boolean\n getRowCanExpand?: (row: Row<TData>) => boolean\n paginateExpandedRows?: boolean\n}\n\nexport type ExpandedInstance<TData extends RowData> = {\n _autoResetExpanded: () => void\n setExpanded: (updater: Updater<ExpandedState>) => void\n toggleAllRowsExpanded: (expanded?: boolean) => void\n resetExpanded: (defaultState?: boolean) => void\n getCanSomeRowsExpand: () => boolean\n getToggleAllRowsExpandedHandler: () => (event: unknown) => void\n getIsSomeRowsExpanded: () => boolean\n getIsAllRowsExpanded: () => boolean\n getExpandedDepth: () => number\n getExpandedRowModel: () => RowModel<TData>\n _getExpandedRowModel?: () => RowModel<TData>\n getPreExpandedRowModel: () => RowModel<TData>\n}\n\n//\n\nexport const Expanding: TableFeature = {\n getInitialState: (state): ExpandedTableState => {\n return {\n expanded: {},\n ...state,\n }\n },\n\n getDefaultOptions: <TData extends RowData>(\n table: Table<TData>\n ): ExpandedOptions<TData> => {\n return {\n onExpandedChange: makeStateUpdater('expanded', table),\n paginateExpandedRows: true,\n }\n },\n\n createTable: <TData extends RowData>(\n table: Table<TData>\n ): ExpandedInstance<TData> => {\n let registered = false\n let queued = false\n\n return {\n _autoResetExpanded: () => {\n if (!registered) {\n table._queue(() => {\n registered = true\n })\n return\n }\n\n if (\n table.options.autoResetAll ??\n table.options.autoResetExpanded ??\n !table.options.manualExpanding\n ) {\n if (queued) return\n queued = true\n table._queue(() => {\n table.resetExpanded()\n queued = false\n })\n }\n },\n setExpanded: updater => table.options.onExpandedChange?.(updater),\n toggleAllRowsExpanded: expanded => {\n if (expanded ?? !table.getIsAllRowsExpanded()) {\n table.setExpanded(true)\n } else {\n table.setExpanded({})\n }\n },\n resetExpanded: defaultState => {\n table.setExpanded(\n defaultState ? {} : table.initialState?.expanded ?? {}\n )\n },\n getCanSomeRowsExpand: () => {\n return table.getRowModel().flatRows.some(row => row.getCanExpand())\n },\n getToggleAllRowsExpandedHandler: () => {\n return (e: unknown) => {\n ;(e as any).persist?.()\n table.toggleAllRowsExpanded()\n }\n },\n getIsSomeRowsExpanded: () => {\n const expanded = table.getState().expanded\n return expanded === true || Object.values(expanded).some(Boolean)\n },\n getIsAllRowsExpanded: () => {\n const expanded = table.getState().expanded\n\n // If expanded is true, save some cycles and return true\n if (typeof expanded === 'boolean') {\n return expanded === true\n }\n\n if (!Object.keys(expanded).length) {\n return false\n }\n\n // If any row is not expanded, return false\n if (table.getRowModel().flatRows.some(row => !row.getIsExpanded())) {\n return false\n }\n\n // They must all be expanded :shrug:\n return true\n },\n getExpandedDepth: () => {\n let maxDepth = 0\n\n const rowIds =\n table.getState().expanded === true\n ? Object.keys(table.getRowModel().rowsById)\n : Object.keys(table.getState().expanded)\n\n rowIds.forEach(id => {\n const splitId = id.split('.')\n maxDepth = Math.max(maxDepth, splitId.length)\n })\n\n return maxDepth\n },\n getPreExpandedRowModel: () => table.getSortedRowModel(),\n getExpandedRowModel: () => {\n if (!table._getExpandedRowModel && table.options.getExpandedRowModel) {\n table._getExpandedRowModel = table.options.getExpandedRowModel(table)\n }\n\n if (table.options.manualExpanding || !table._getExpandedRowModel) {\n return table.getPreExpandedRowModel()\n }\n\n return table._getExpandedRowModel()\n },\n }\n },\n\n createRow: <TData extends RowData>(\n row: Row<TData>,\n table: Table<TData>\n ): ExpandedRow => {\n return {\n toggleExpanded: expanded => {\n table.setExpanded(old => {\n const exists = old === true ? true : !!old?.[row.id]\n\n let oldExpanded: ExpandedStateList = {}\n\n if (old === true) {\n Object.keys(table.getRowModel().rowsById).forEach(rowId => {\n oldExpanded[rowId] = true\n })\n } else {\n oldExpanded = old\n }\n\n expanded = expanded ?? !exists\n\n if (!exists && expanded) {\n return {\n ...oldExpanded,\n [row.id]: true,\n }\n }\n\n if (exists && !expanded) {\n const { [row.id]: _, ...rest } = oldExpanded\n return rest\n }\n\n return old\n })\n },\n getIsExpanded: () => {\n const expanded = table.getState().expanded\n\n return !!(\n table.options.getIsRowExpanded?.(row) ??\n (expanded === true || expanded?.[row.id])\n )\n },\n getCanExpand: () => {\n return (\n table.options.getRowCanExpand?.(row) ??\n ((table.options.enableExpanding ?? true) && !!row.subRows?.length)\n )\n },\n getToggleExpandedHandler: () => {\n const canExpand = row.getCanExpand()\n\n return () => {\n if (!canExpand) return\n row.toggleExpanded()\n }\n },\n }\n },\n}\n"],"names":["Expanding","getInitialState","state","expanded","getDefaultOptions","table","onExpandedChange","makeStateUpdater","paginateExpandedRows","createTable","registered","queued","_autoResetExpanded","_queue","options","autoResetAll","autoResetExpanded","manualExpanding","resetExpanded","setExpanded","updater","toggleAllRowsExpanded","getIsAllRowsExpanded","defaultState","initialState","getCanSomeRowsExpand","getRowModel","flatRows","some","row","getCanExpand","getToggleAllRowsExpandedHandler","e","persist","getIsSomeRowsExpanded","getState","Object","values","Boolean","keys","length","getIsExpanded","getExpandedDepth","maxDepth","rowIds","rowsById","forEach","id","splitId","split","Math","max","getPreExpandedRowModel","getSortedRowModel","getExpandedRowModel","_getExpandedRowModel","createRow","toggleExpanded","old","exists","oldExpanded","rowId","_","rest","getIsRowExpanded","getRowCanExpand","enableExpanding","subRows","getToggleExpandedHandler","canExpand"],"mappings":"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"}
1
+ {"version":3,"file":"Expanding.js","sources":["../../../src/features/Expanding.ts"],"sourcesContent":["import { RowModel } from '..'\nimport { TableFeature } from '../core/table'\nimport { OnChangeFn, Table, Row, Updater, RowData } from '../types'\nimport { makeStateUpdater } from '../utils'\n\nexport type ExpandedStateList = Record<string, boolean>\nexport type ExpandedState = true | Record<string, boolean>\nexport interface ExpandedTableState {\n expanded: ExpandedState\n}\n\nexport interface ExpandedRow {\n toggleExpanded: (expanded?: boolean) => void\n getIsExpanded: () => boolean\n getCanExpand: () => boolean\n getToggleExpandedHandler: () => () => void\n}\n\nexport interface ExpandedOptions<TData extends RowData> {\n manualExpanding?: boolean\n onExpandedChange?: OnChangeFn<ExpandedState>\n autoResetExpanded?: boolean\n enableExpanding?: boolean\n getExpandedRowModel?: (table: Table<any>) => () => RowModel<any>\n getIsRowExpanded?: (row: Row<TData>) => boolean\n getRowCanExpand?: (row: Row<TData>) => boolean\n paginateExpandedRows?: boolean\n}\n\nexport interface ExpandedInstance<TData extends RowData> {\n _autoResetExpanded: () => void\n setExpanded: (updater: Updater<ExpandedState>) => void\n toggleAllRowsExpanded: (expanded?: boolean) => void\n resetExpanded: (defaultState?: boolean) => void\n getCanSomeRowsExpand: () => boolean\n getToggleAllRowsExpandedHandler: () => (event: unknown) => void\n getIsSomeRowsExpanded: () => boolean\n getIsAllRowsExpanded: () => boolean\n getExpandedDepth: () => number\n getExpandedRowModel: () => RowModel<TData>\n _getExpandedRowModel?: () => RowModel<TData>\n getPreExpandedRowModel: () => RowModel<TData>\n}\n\n//\n\nexport const Expanding: TableFeature = {\n getInitialState: (state): ExpandedTableState => {\n return {\n expanded: {},\n ...state,\n }\n },\n\n getDefaultOptions: <TData extends RowData>(\n table: Table<TData>\n ): ExpandedOptions<TData> => {\n return {\n onExpandedChange: makeStateUpdater('expanded', table),\n paginateExpandedRows: true,\n }\n },\n\n createTable: <TData extends RowData>(\n table: Table<TData>\n ): ExpandedInstance<TData> => {\n let registered = false\n let queued = false\n\n return {\n _autoResetExpanded: () => {\n if (!registered) {\n table._queue(() => {\n registered = true\n })\n return\n }\n\n if (\n table.options.autoResetAll ??\n table.options.autoResetExpanded ??\n !table.options.manualExpanding\n ) {\n if (queued) return\n queued = true\n table._queue(() => {\n table.resetExpanded()\n queued = false\n })\n }\n },\n setExpanded: updater => table.options.onExpandedChange?.(updater),\n toggleAllRowsExpanded: expanded => {\n if (expanded ?? !table.getIsAllRowsExpanded()) {\n table.setExpanded(true)\n } else {\n table.setExpanded({})\n }\n },\n resetExpanded: defaultState => {\n table.setExpanded(\n defaultState ? {} : table.initialState?.expanded ?? {}\n )\n },\n getCanSomeRowsExpand: () => {\n return table.getRowModel().flatRows.some(row => row.getCanExpand())\n },\n getToggleAllRowsExpandedHandler: () => {\n return (e: unknown) => {\n ;(e as any).persist?.()\n table.toggleAllRowsExpanded()\n }\n },\n getIsSomeRowsExpanded: () => {\n const expanded = table.getState().expanded\n return expanded === true || Object.values(expanded).some(Boolean)\n },\n getIsAllRowsExpanded: () => {\n const expanded = table.getState().expanded\n\n // If expanded is true, save some cycles and return true\n if (typeof expanded === 'boolean') {\n return expanded === true\n }\n\n if (!Object.keys(expanded).length) {\n return false\n }\n\n // If any row is not expanded, return false\n if (table.getRowModel().flatRows.some(row => !row.getIsExpanded())) {\n return false\n }\n\n // They must all be expanded :shrug:\n return true\n },\n getExpandedDepth: () => {\n let maxDepth = 0\n\n const rowIds =\n table.getState().expanded === true\n ? Object.keys(table.getRowModel().rowsById)\n : Object.keys(table.getState().expanded)\n\n rowIds.forEach(id => {\n const splitId = id.split('.')\n maxDepth = Math.max(maxDepth, splitId.length)\n })\n\n return maxDepth\n },\n getPreExpandedRowModel: () => table.getSortedRowModel(),\n getExpandedRowModel: () => {\n if (!table._getExpandedRowModel && table.options.getExpandedRowModel) {\n table._getExpandedRowModel = table.options.getExpandedRowModel(table)\n }\n\n if (table.options.manualExpanding || !table._getExpandedRowModel) {\n return table.getPreExpandedRowModel()\n }\n\n return table._getExpandedRowModel()\n },\n }\n },\n\n createRow: <TData extends RowData>(\n row: Row<TData>,\n table: Table<TData>\n ): ExpandedRow => {\n return {\n toggleExpanded: expanded => {\n table.setExpanded(old => {\n const exists = old === true ? true : !!old?.[row.id]\n\n let oldExpanded: ExpandedStateList = {}\n\n if (old === true) {\n Object.keys(table.getRowModel().rowsById).forEach(rowId => {\n oldExpanded[rowId] = true\n })\n } else {\n oldExpanded = old\n }\n\n expanded = expanded ?? !exists\n\n if (!exists && expanded) {\n return {\n ...oldExpanded,\n [row.id]: true,\n }\n }\n\n if (exists && !expanded) {\n const { [row.id]: _, ...rest } = oldExpanded\n return rest\n }\n\n return old\n })\n },\n getIsExpanded: () => {\n const expanded = table.getState().expanded\n\n return !!(\n table.options.getIsRowExpanded?.(row) ??\n (expanded === true || expanded?.[row.id])\n )\n },\n getCanExpand: () => {\n return (\n table.options.getRowCanExpand?.(row) ??\n ((table.options.enableExpanding ?? true) && !!row.subRows?.length)\n )\n },\n getToggleExpandedHandler: () => {\n const canExpand = row.getCanExpand()\n\n return () => {\n if (!canExpand) return\n row.toggleExpanded()\n }\n },\n }\n },\n}\n"],"names":["Expanding","getInitialState","state","expanded","getDefaultOptions","table","onExpandedChange","makeStateUpdater","paginateExpandedRows","createTable","registered","queued","_autoResetExpanded","_queue","options","autoResetAll","autoResetExpanded","manualExpanding","resetExpanded","setExpanded","updater","toggleAllRowsExpanded","getIsAllRowsExpanded","defaultState","initialState","getCanSomeRowsExpand","getRowModel","flatRows","some","row","getCanExpand","getToggleAllRowsExpandedHandler","e","persist","getIsSomeRowsExpanded","getState","Object","values","Boolean","keys","length","getIsExpanded","getExpandedDepth","maxDepth","rowIds","rowsById","forEach","id","splitId","split","Math","max","getPreExpandedRowModel","getSortedRowModel","getExpandedRowModel","_getExpandedRowModel","createRow","toggleExpanded","old","exists","oldExpanded","rowId","_","rest","getIsRowExpanded","getRowCanExpand","enableExpanding","subRows","getToggleExpandedHandler","canExpand"],"mappings":"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"}