@tanstack/table-core 8.0.0-alpha.87 → 8.0.0-alpha.88
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.
- package/build/cjs/core/cell.js +9 -7
- package/build/cjs/core/cell.js.map +1 -1
- package/build/cjs/core/column.js +1 -1
- package/build/cjs/core/column.js.map +1 -1
- package/build/cjs/features/Expanding.js +6 -2
- package/build/cjs/features/Expanding.js.map +1 -1
- package/build/cjs/features/Visibility.js +2 -2
- package/build/cjs/features/Visibility.js.map +1 -1
- package/build/cjs/utils/getCoreRowModel.js +4 -8
- package/build/cjs/utils/getCoreRowModel.js.map +1 -1
- package/build/esm/index.js +22 -20
- package/build/esm/index.js.map +1 -1
- package/build/stats-html.html +1 -1
- package/build/stats-react.json +315 -315
- package/build/types/index.d.ts +0 -2
- package/build/umd/index.development.js +22 -20
- package/build/umd/index.development.js.map +1 -1
- package/build/umd/index.production.js +1 -1
- package/build/umd/index.production.js.map +1 -1
- package/package.json +4 -4
- package/src/core/cell.ts +4 -3
- package/src/core/column.ts +0 -1
- package/src/features/Expanding.ts +6 -2
- package/src/features/Visibility.ts +3 -9
- package/src/index.ts +0 -2
- package/src/utils/getCoreRowModel.ts +8 -11
package/build/cjs/core/cell.js
CHANGED
|
@@ -18,13 +18,15 @@ function createCell(instance, row, column, columnId) {
|
|
|
18
18
|
row,
|
|
19
19
|
column,
|
|
20
20
|
getValue: () => row.getValue(columnId),
|
|
21
|
-
renderCell: () =>
|
|
22
|
-
instance,
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
21
|
+
renderCell: () => {
|
|
22
|
+
return column.columnDef.cell ? instance._render(column.columnDef.cell, {
|
|
23
|
+
instance,
|
|
24
|
+
column,
|
|
25
|
+
row,
|
|
26
|
+
cell: cell,
|
|
27
|
+
getValue: cell.getValue
|
|
28
|
+
}) : null;
|
|
29
|
+
}
|
|
28
30
|
};
|
|
29
31
|
|
|
30
32
|
instance._features.forEach(feature => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cell.js","sources":["../../../src/core/cell.ts"],"sourcesContent":["import { Cell, Column, Row, TableGenerics, TableInstance } from '../types'\n\nexport type CoreCell<TGenerics extends TableGenerics> = {\n id: string\n getValue: () => TGenerics['Value']\n row: Row<TGenerics>\n column: Column<TGenerics>\n renderCell: () => string | null | TGenerics['Rendered']\n}\n\nexport function createCell<TGenerics extends TableGenerics>(\n instance: TableInstance<TGenerics>,\n row: Row<TGenerics>,\n column: Column<TGenerics>,\n columnId: string\n) {\n const cell: CoreCell<TGenerics> = {\n id: `${row.id}_${column.id}`,\n row,\n column,\n getValue: () => row.getValue(columnId),\n renderCell: ()
|
|
1
|
+
{"version":3,"file":"cell.js","sources":["../../../src/core/cell.ts"],"sourcesContent":["import { Cell, Column, Row, TableGenerics, TableInstance } from '../types'\n\nexport type CoreCell<TGenerics extends TableGenerics> = {\n id: string\n getValue: () => TGenerics['Value']\n row: Row<TGenerics>\n column: Column<TGenerics>\n renderCell: () => string | null | TGenerics['Rendered']\n}\n\nexport function createCell<TGenerics extends TableGenerics>(\n instance: TableInstance<TGenerics>,\n row: Row<TGenerics>,\n column: Column<TGenerics>,\n columnId: string\n) {\n const cell: CoreCell<TGenerics> = {\n id: `${row.id}_${column.id}`,\n row,\n column,\n getValue: () => row.getValue(columnId),\n renderCell: () => {\n return column.columnDef.cell\n ? instance._render(column.columnDef.cell, {\n instance,\n column,\n row,\n cell: cell as Cell<TGenerics>,\n getValue: cell.getValue,\n })\n : null\n },\n }\n\n instance._features.forEach(feature => {\n Object.assign(\n cell,\n feature.createCell?.(\n cell as Cell<TGenerics>,\n column,\n row as Row<TGenerics>,\n instance\n )\n )\n }, {})\n\n return cell as Cell<TGenerics>\n}\n"],"names":["createCell","instance","row","column","columnId","cell","id","getValue","renderCell","columnDef","_render","_features","forEach","feature","Object","assign"],"mappings":";;;;;;;;;;;;;;AAUO,SAASA,UAAT,CACLC,QADK,EAELC,GAFK,EAGLC,MAHK,EAILC,QAJK,EAKL;AACA,EAAA,MAAMC,IAAyB,GAAG;AAChCC,IAAAA,EAAE,EAAKJ,GAAG,CAACI,EAAT,GAAeH,GAAAA,GAAAA,MAAM,CAACG,EADQ;AAEhCJ,IAAAA,GAFgC;AAGhCC,IAAAA,MAHgC;AAIhCI,IAAAA,QAAQ,EAAE,MAAML,GAAG,CAACK,QAAJ,CAAaH,QAAb,CAJgB;AAKhCI,IAAAA,UAAU,EAAE,MAAM;AAChB,MAAA,OAAOL,MAAM,CAACM,SAAP,CAAiBJ,IAAjB,GACHJ,QAAQ,CAACS,OAAT,CAAiBP,MAAM,CAACM,SAAP,CAAiBJ,IAAlC,EAAwC;AACtCJ,QAAAA,QADsC;AAEtCE,QAAAA,MAFsC;AAGtCD,QAAAA,GAHsC;AAItCG,QAAAA,IAAI,EAAEA,IAJgC;AAKtCE,QAAAA,QAAQ,EAAEF,IAAI,CAACE,QAAAA;AALuB,OAAxC,CADG,GAQH,IARJ,CAAA;AASD,KAAA;AAf+B,GAAlC,CAAA;;AAkBAN,EAAAA,QAAQ,CAACU,SAAT,CAAmBC,OAAnB,CAA2BC,OAAO,IAAI;AACpCC,IAAAA,MAAM,CAACC,MAAP,CACEV,IADF,EAEEQ,OAAO,CAACb,UAFV,IAAA,IAAA,GAAA,KAAA,CAAA,GAEEa,OAAO,CAACb,UAAR,CACEK,IADF,EAEEF,MAFF,EAGED,GAHF,EAIED,QAJF,CAFF,CAAA,CAAA;AASD,GAVD,EAUG,EAVH,CAAA,CAAA;;AAYA,EAAA,OAAOI,IAAP,CAAA;AACD;;;;"}
|
package/build/cjs/core/column.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"column.js","sources":["../../../src/core/column.ts"],"sourcesContent":["import {\n Cell,\n Column,\n Header,\n TableGenerics,\n TableInstance,\n Row,\n AccessorFn,\n ColumnDef,\n Renderable,\n} from '../types'\nimport { memo } from '../utils'\n\nexport type CoreColumnDefType = 'data' | 'display' | 'group'\n\nexport type CoreColumnDef<TGenerics extends TableGenerics> = {\n id: string\n accessorKey?: string & keyof TGenerics['Row']\n accessorFn?: AccessorFn<TGenerics['Row']>\n columns?: ColumnDef<TGenerics>[]\n header?: Renderable<\n TGenerics,\n {\n instance: TableInstance<TGenerics>\n header: Header<TGenerics>\n column: Column<TGenerics>\n }\n >\n footer?: Renderable<\n TGenerics,\n {\n instance: TableInstance<TGenerics>\n header: Header<TGenerics>\n column: Column<TGenerics>\n }\n >\n cell?: Renderable<\n TGenerics,\n {\n instance: TableInstance<TGenerics>\n row: Row<TGenerics>\n column: Column<TGenerics>\n cell: Cell<TGenerics>\n getValue: () => TGenerics['Value']\n }\n >\n meta?: TGenerics['ColumnMeta']\n}\n\nexport type CoreColumn<TGenerics extends TableGenerics> = {\n id: string\n depth: number\n accessorFn?: AccessorFn<TGenerics['Row']>\n columnDef: ColumnDef<TGenerics>\n columnDefType: CoreColumnDefType\n columns: Column<TGenerics>[]\n parent?: Column<TGenerics>\n getFlatColumns: () => Column<TGenerics>[]\n getLeafColumns: () => Column<TGenerics>[]\n}\n\nexport function createColumn<TGenerics extends TableGenerics>(\n instance: TableInstance<TGenerics>,\n columnDef: ColumnDef<TGenerics> & { columnDefType?: CoreColumnDefType },\n depth: number,\n parent?: Column<TGenerics>\n) {\n const defaultColumn = instance._getDefaultColumnDef()\n\n columnDef = {\n ...defaultColumn,\n ...columnDef,\n }\n\n let id =\n columnDef.id ??\n columnDef.accessorKey ??\n (typeof columnDef.header === 'string' ? columnDef.header : undefined)\n\n let accessorFn: AccessorFn<TGenerics['Row']> | undefined\n\n if (columnDef.accessorFn) {\n accessorFn = columnDef.accessorFn\n } else if (columnDef.accessorKey) {\n accessorFn = (originalRow?: TGenerics['Row']) =>\n (originalRow as any)[columnDef.accessorKey]\n }\n\n if (!id) {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error(\n columnDef.accessorFn\n ? `Columns require an id when using an accessorFn`\n : `Columns require an id when using a non-string header`\n )\n }\n throw new Error()\n }\n\n let column: CoreColumn<TGenerics> = {\n
|
|
1
|
+
{"version":3,"file":"column.js","sources":["../../../src/core/column.ts"],"sourcesContent":["import {\n Cell,\n Column,\n Header,\n TableGenerics,\n TableInstance,\n Row,\n AccessorFn,\n ColumnDef,\n Renderable,\n} from '../types'\nimport { memo } from '../utils'\n\nexport type CoreColumnDefType = 'data' | 'display' | 'group'\n\nexport type CoreColumnDef<TGenerics extends TableGenerics> = {\n id: string\n accessorKey?: string & keyof TGenerics['Row']\n accessorFn?: AccessorFn<TGenerics['Row']>\n columns?: ColumnDef<TGenerics>[]\n header?: Renderable<\n TGenerics,\n {\n instance: TableInstance<TGenerics>\n header: Header<TGenerics>\n column: Column<TGenerics>\n }\n >\n footer?: Renderable<\n TGenerics,\n {\n instance: TableInstance<TGenerics>\n header: Header<TGenerics>\n column: Column<TGenerics>\n }\n >\n cell?: Renderable<\n TGenerics,\n {\n instance: TableInstance<TGenerics>\n row: Row<TGenerics>\n column: Column<TGenerics>\n cell: Cell<TGenerics>\n getValue: () => TGenerics['Value']\n }\n >\n meta?: TGenerics['ColumnMeta']\n}\n\nexport type CoreColumn<TGenerics extends TableGenerics> = {\n id: string\n depth: number\n accessorFn?: AccessorFn<TGenerics['Row']>\n columnDef: ColumnDef<TGenerics>\n columnDefType: CoreColumnDefType\n columns: Column<TGenerics>[]\n parent?: Column<TGenerics>\n getFlatColumns: () => Column<TGenerics>[]\n getLeafColumns: () => Column<TGenerics>[]\n}\n\nexport function createColumn<TGenerics extends TableGenerics>(\n instance: TableInstance<TGenerics>,\n columnDef: ColumnDef<TGenerics> & { columnDefType?: CoreColumnDefType },\n depth: number,\n parent?: Column<TGenerics>\n) {\n const defaultColumn = instance._getDefaultColumnDef()\n\n columnDef = {\n ...defaultColumn,\n ...columnDef,\n }\n\n let id =\n columnDef.id ??\n columnDef.accessorKey ??\n (typeof columnDef.header === 'string' ? columnDef.header : undefined)\n\n let accessorFn: AccessorFn<TGenerics['Row']> | undefined\n\n if (columnDef.accessorFn) {\n accessorFn = columnDef.accessorFn\n } else if (columnDef.accessorKey) {\n accessorFn = (originalRow?: TGenerics['Row']) =>\n (originalRow as any)[columnDef.accessorKey]\n }\n\n if (!id) {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error(\n columnDef.accessorFn\n ? `Columns require an id when using an accessorFn`\n : `Columns require an id when using a non-string header`\n )\n }\n throw new Error()\n }\n\n let column: CoreColumn<TGenerics> = {\n id: `${id}`,\n accessorFn,\n parent: parent as any,\n depth,\n columnDef,\n columnDefType: columnDef.columnDefType as CoreColumnDefType,\n columns: [],\n getFlatColumns: memo(\n () => [true],\n () => {\n return [\n column as Column<TGenerics>,\n ...column.columns?.flatMap(d => d.getFlatColumns()),\n ]\n },\n {\n key: process.env.NODE_ENV === 'production' && 'column.getFlatColumns',\n debug: () => instance.options.debugAll ?? instance.options.debugColumns,\n }\n ),\n getLeafColumns: memo(\n () => [instance._getOrderColumnsFn()],\n orderColumns => {\n if (column.columns?.length) {\n let leafColumns = column.columns.flatMap(column =>\n column.getLeafColumns()\n )\n\n return orderColumns(leafColumns)\n }\n\n return [column as Column<TGenerics>]\n },\n {\n key: process.env.NODE_ENV === 'production' && 'column.getLeafColumns',\n debug: () => instance.options.debugAll ?? instance.options.debugColumns,\n }\n ),\n }\n\n column = instance._features.reduce((obj, feature) => {\n return Object.assign(obj, feature.createColumn?.(column, instance))\n }, column)\n\n // Yes, we have to convert instance to uknown, because we know more than the compiler here.\n return column as Column<TGenerics>\n}\n"],"names":["createColumn","instance","columnDef","depth","parent","defaultColumn","_getDefaultColumnDef","id","accessorKey","header","undefined","accessorFn","originalRow","process","env","NODE_ENV","Error","column","columnDefType","columns","getFlatColumns","memo","flatMap","d","key","debug","options","debugAll","debugColumns","getLeafColumns","_getOrderColumnsFn","orderColumns","length","leafColumns","_features","reduce","obj","feature","Object","assign"],"mappings":";;;;;;;;;;;;;;;;AA6DO,SAASA,YAAT,CACLC,QADK,EAELC,SAFK,EAGLC,KAHK,EAILC,MAJK,EAKL;AAAA,EAAA,IAAA,IAAA,EAAA,aAAA,CAAA;;AACA,EAAA,MAAMC,aAAa,GAAGJ,QAAQ,CAACK,oBAAT,EAAtB,CAAA;;AAEAJ,EAAAA,SAAS,GAAG,EACV,GAAGG,aADO;AAEV,IAAGH,GAAAA,SAAAA;AAFO,GAAZ,CAAA;AAKA,EAAIK,IAAAA,EAAE,4BACJL,SAAS,CAACK,EADN,KAEJL,IAAAA,GAAAA,aAAAA,GAAAA,SAAS,CAACM,WAFN,KAAA,IAAA,GAAA,IAAA,GAGH,OAAON,SAAS,CAACO,MAAjB,KAA4B,QAA5B,GAAuCP,SAAS,CAACO,MAAjD,GAA0DC,SAH7D,CAAA;AAKA,EAAA,IAAIC,UAAJ,CAAA;;AAEA,EAAIT,IAAAA,SAAS,CAACS,UAAd,EAA0B;AACxBA,IAAAA,UAAU,GAAGT,SAAS,CAACS,UAAvB,CAAA;AACD,GAFD,MAEO,IAAIT,SAAS,CAACM,WAAd,EAA2B;AAChCG,IAAAA,UAAU,GAAIC,WAAD,IACVA,WAAD,CAAqBV,SAAS,CAACM,WAA/B,CADF,CAAA;AAED,GAAA;;AAED,EAAI,IAAA,CAACD,EAAL,EAAS;AACP,IAAA,IAAIM,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAA7B,EAA2C;AACzC,MAAA,MAAM,IAAIC,KAAJ,CACJd,SAAS,CAACS,UAAV,4GADI,CAAN,CAAA;AAKD,KAAA;;AACD,IAAM,MAAA,IAAIK,KAAJ,EAAN,CAAA;AACD,GAAA;;AAED,EAAA,IAAIC,MAA6B,GAAG;AAClCV,IAAAA,EAAE,OAAKA,EAD2B;AAElCI,IAAAA,UAFkC;AAGlCP,IAAAA,MAAM,EAAEA,MAH0B;AAIlCD,IAAAA,KAJkC;AAKlCD,IAAAA,SALkC;AAMlCgB,IAAAA,aAAa,EAAEhB,SAAS,CAACgB,aANS;AAOlCC,IAAAA,OAAO,EAAE,EAPyB;AAQlCC,IAAAA,cAAc,EAAEC,UAAI,CAClB,MAAM,CAAC,IAAD,CADY,EAElB,MAAM;AAAA,MAAA,IAAA,eAAA,CAAA;;AACJ,MAAA,OAAO,CACLJ,MADK,EAEL,uBAAGA,MAAM,CAACE,OAAV,KAAG,IAAA,GAAA,KAAA,CAAA,GAAA,eAAA,CAAgBG,OAAhB,CAAwBC,CAAC,IAAIA,CAAC,CAACH,cAAF,EAA7B,CAAH,CAFK,CAAP,CAAA;AAID,KAPiB,EAQlB;AACEI,MAAAA,GAAG,EAAEX,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAAzB,IAAyC,uBADhD;AAEEU,MAAAA,KAAK,EAAE,MAAA;AAAA,QAAA,IAAA,qBAAA,CAAA;;AAAA,QAAMxB,OAAAA,CAAAA,qBAAAA,GAAAA,QAAQ,CAACyB,OAAT,CAAiBC,QAAvB,oCAAmC1B,QAAQ,CAACyB,OAAT,CAAiBE,YAApD,CAAA;AAAA,OAAA;AAFT,KARkB,CARc;AAqBlCC,IAAAA,cAAc,EAAER,UAAI,CAClB,MAAM,CAACpB,QAAQ,CAAC6B,kBAAT,EAAD,CADY,EAElBC,YAAY,IAAI;AAAA,MAAA,IAAA,gBAAA,CAAA;;AACd,MAAA,IAAA,CAAA,gBAAA,GAAId,MAAM,CAACE,OAAX,KAAI,IAAA,IAAA,gBAAA,CAAgBa,MAApB,EAA4B;AAC1B,QAAA,IAAIC,WAAW,GAAGhB,MAAM,CAACE,OAAP,CAAeG,OAAf,CAAuBL,MAAM,IAC7CA,MAAM,CAACY,cAAP,EADgB,CAAlB,CAAA;AAIA,QAAOE,OAAAA,YAAY,CAACE,WAAD,CAAnB,CAAA;AACD,OAAA;;AAED,MAAO,OAAA,CAAChB,MAAD,CAAP,CAAA;AACD,KAZiB,EAalB;AACEO,MAAAA,GAAG,EAAEX,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAAzB,IAAyC,uBADhD;AAEEU,MAAAA,KAAK,EAAE,MAAA;AAAA,QAAA,IAAA,sBAAA,CAAA;;AAAA,QAAMxB,OAAAA,CAAAA,sBAAAA,GAAAA,QAAQ,CAACyB,OAAT,CAAiBC,QAAvB,qCAAmC1B,QAAQ,CAACyB,OAAT,CAAiBE,YAApD,CAAA;AAAA,OAAA;AAFT,KAbkB,CAAA;AArBc,GAApC,CAAA;AAyCAX,EAAAA,MAAM,GAAGhB,QAAQ,CAACiC,SAAT,CAAmBC,MAAnB,CAA0B,CAACC,GAAD,EAAMC,OAAN,KAAkB;AACnD,IAAA,OAAOC,MAAM,CAACC,MAAP,CAAcH,GAAd,EAAmBC,OAAO,CAACrC,YAA3B,IAAmBqC,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,OAAO,CAACrC,YAAR,CAAuBiB,MAAvB,EAA+BhB,QAA/B,CAAnB,CAAP,CAAA;AACD,GAFQ,EAENgB,MAFM,CAAT,CA1EA;;AA+EA,EAAA,OAAOA,MAAP,CAAA;AACD;;;;"}
|
|
@@ -85,8 +85,12 @@ const Expanding = {
|
|
|
85
85
|
getIsAllRowsExpanded: () => {
|
|
86
86
|
const expanded = instance.getState().expanded; // If expanded is true, save some cycles and return true
|
|
87
87
|
|
|
88
|
-
if (expanded ===
|
|
89
|
-
return true;
|
|
88
|
+
if (typeof expanded === 'boolean') {
|
|
89
|
+
return expanded === true;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
if (!Object.keys(expanded).length) {
|
|
93
|
+
return false;
|
|
90
94
|
} // If any row is not expanded, return false
|
|
91
95
|
|
|
92
96
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Expanding.js","sources":["../../../src/features/Expanding.ts"],"sourcesContent":["import { RowModel } from '..'\nimport { TableFeature } from '../core/instance'\nimport {\n OnChangeFn,\n TableGenerics,\n TableInstance,\n Row,\n Updater,\n} 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<TGenerics extends TableGenerics> = {\n manualExpanding?: boolean\n onExpandedChange?: OnChangeFn<ExpandedState>\n autoResetExpanded?: boolean\n enableExpanding?: boolean\n getExpandedRowModel?: (\n instance: TableInstance<TGenerics>\n ) => () => RowModel<TGenerics>\n getIsRowExpanded?: (row: Row<TGenerics>) => boolean\n getRowCanExpand?: (row: Row<TGenerics>) => boolean\n paginateExpandedRows?: boolean\n}\n\nexport type ExpandedInstance<TGenerics extends TableGenerics> = {\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<TGenerics>\n _getExpandedRowModel?: () => RowModel<TGenerics>\n getPreExpandedRowModel: () => RowModel<TGenerics>\n}\n\n//\n\nexport const Expanding: TableFeature = {\n getInitialState: (state): ExpandedTableState => {\n return {\n expanded: {},\n ...state,\n }\n },\n\n getDefaultOptions: <TGenerics extends TableGenerics>(\n instance: TableInstance<TGenerics>\n ): ExpandedOptions<TGenerics> => {\n return {\n onExpandedChange: makeStateUpdater('expanded', instance),\n autoResetExpanded: true,\n paginateExpandedRows: true,\n }\n },\n\n createInstance: <TGenerics extends TableGenerics>(\n instance: TableInstance<TGenerics>\n ): ExpandedInstance<TGenerics> => {\n let registered = false\n let queued = false\n\n return {\n _autoResetExpanded: () => {\n if (!registered) {\n instance._queue(() => {\n registered = true\n })\n return\n }\n\n if (instance.options.autoResetAll === false) {\n return\n }\n\n if (\n instance.options.autoResetAll === true ||\n instance.options.autoResetExpanded\n ) {\n if (queued) return\n queued = true\n instance._queue(() => {\n instance.resetExpanded()\n queued = false\n })\n }\n },\n setExpanded: updater => instance.options.onExpandedChange?.(updater),\n toggleAllRowsExpanded: expanded => {\n if (expanded ?? !instance.getIsAllRowsExpanded()) {\n instance.setExpanded(true)\n } else {\n instance.setExpanded({})\n }\n },\n resetExpanded: defaultState => {\n instance.setExpanded(\n defaultState ? {} : instance.initialState?.expanded ?? {}\n )\n },\n getCanSomeRowsExpand: () => {\n return instance.getRowModel().flatRows.some(row => row.getCanExpand())\n },\n getToggleAllRowsExpandedHandler: () => {\n return (e: unknown) => {\n ;(e as any).persist?.()\n instance.toggleAllRowsExpanded()\n }\n },\n getIsSomeRowsExpanded: () => {\n const expanded = instance.getState().expanded\n return expanded === true || Object.values(expanded).some(Boolean)\n },\n getIsAllRowsExpanded: () => {\n const expanded = instance.getState().expanded\n\n // If expanded is true, save some cycles and return true\n if (expanded === true) {\n return true\n }\n\n // If any row is not expanded, return false\n if (instance.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 instance.getState().expanded === true\n ? Object.keys(instance.getRowModel().rowsById)\n : Object.keys(instance.getState().expanded)\n\n rowIds.forEach(id => {\n const splitId = id.split('.')\n maxDepth = Math.max(maxDepth, splitId.length)\n })\n\n return maxDepth\n },\n getPreExpandedRowModel: () => instance.getGroupedRowModel(),\n getExpandedRowModel: () => {\n if (\n !instance._getExpandedRowModel &&\n instance.options.getExpandedRowModel\n ) {\n instance._getExpandedRowModel =\n instance.options.getExpandedRowModel(instance)\n }\n\n if (\n instance.options.manualExpanding ||\n !instance._getExpandedRowModel\n ) {\n return instance.getPreExpandedRowModel()\n }\n\n return instance._getExpandedRowModel()\n },\n }\n },\n\n createRow: <TGenerics extends TableGenerics>(\n row: Row<TGenerics>,\n instance: TableInstance<TGenerics>\n ): ExpandedRow => {\n return {\n toggleExpanded: expanded => {\n instance.setExpanded(old => {\n const exists = old === true ? true : !!old?.[row.id]\n\n let oldExpanded: ExpandedStateList = {}\n\n if (old === true) {\n Object.keys(instance.getRowModel().rowsById).forEach(rowId => {\n oldExpanded[rowId] = true\n })\n } else {\n oldExpanded = old\n }\n\n expanded = expanded ?? !exists\n\n if (!exists && expanded) {\n return {\n ...oldExpanded,\n [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 = instance.getState().expanded\n\n return !!(\n instance.options.getIsRowExpanded?.(row) ??\n (expanded === true || expanded?.[row.id])\n )\n },\n getCanExpand: () => {\n return (\n (instance.options.getRowCanExpand?.(row) ?? true) &&\n (instance.options.enableExpanding ?? true) &&\n !!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","instance","onExpandedChange","makeStateUpdater","autoResetExpanded","paginateExpandedRows","createInstance","registered","queued","_autoResetExpanded","_queue","options","autoResetAll","resetExpanded","setExpanded","updater","toggleAllRowsExpanded","getIsAllRowsExpanded","defaultState","initialState","getCanSomeRowsExpand","getRowModel","flatRows","some","row","getCanExpand","getToggleAllRowsExpandedHandler","e","persist","getIsSomeRowsExpanded","getState","Object","values","Boolean","getIsExpanded","getExpandedDepth","maxDepth","rowIds","keys","rowsById","forEach","id","splitId","split","Math","max","length","getPreExpandedRowModel","getGroupedRowModel","getExpandedRowModel","_getExpandedRowModel","manualExpanding","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/instance'\nimport {\n OnChangeFn,\n TableGenerics,\n TableInstance,\n Row,\n Updater,\n} 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<TGenerics extends TableGenerics> = {\n manualExpanding?: boolean\n onExpandedChange?: OnChangeFn<ExpandedState>\n autoResetExpanded?: boolean\n enableExpanding?: boolean\n getExpandedRowModel?: (\n instance: TableInstance<TGenerics>\n ) => () => RowModel<TGenerics>\n getIsRowExpanded?: (row: Row<TGenerics>) => boolean\n getRowCanExpand?: (row: Row<TGenerics>) => boolean\n paginateExpandedRows?: boolean\n}\n\nexport type ExpandedInstance<TGenerics extends TableGenerics> = {\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<TGenerics>\n _getExpandedRowModel?: () => RowModel<TGenerics>\n getPreExpandedRowModel: () => RowModel<TGenerics>\n}\n\n//\n\nexport const Expanding: TableFeature = {\n getInitialState: (state): ExpandedTableState => {\n return {\n expanded: {},\n ...state,\n }\n },\n\n getDefaultOptions: <TGenerics extends TableGenerics>(\n instance: TableInstance<TGenerics>\n ): ExpandedOptions<TGenerics> => {\n return {\n onExpandedChange: makeStateUpdater('expanded', instance),\n autoResetExpanded: true,\n paginateExpandedRows: true,\n }\n },\n\n createInstance: <TGenerics extends TableGenerics>(\n instance: TableInstance<TGenerics>\n ): ExpandedInstance<TGenerics> => {\n let registered = false\n let queued = false\n\n return {\n _autoResetExpanded: () => {\n if (!registered) {\n instance._queue(() => {\n registered = true\n })\n return\n }\n\n if (instance.options.autoResetAll === false) {\n return\n }\n\n if (\n instance.options.autoResetAll === true ||\n instance.options.autoResetExpanded\n ) {\n if (queued) return\n queued = true\n instance._queue(() => {\n instance.resetExpanded()\n queued = false\n })\n }\n },\n setExpanded: updater => instance.options.onExpandedChange?.(updater),\n toggleAllRowsExpanded: expanded => {\n if (expanded ?? !instance.getIsAllRowsExpanded()) {\n instance.setExpanded(true)\n } else {\n instance.setExpanded({})\n }\n },\n resetExpanded: defaultState => {\n instance.setExpanded(\n defaultState ? {} : instance.initialState?.expanded ?? {}\n )\n },\n getCanSomeRowsExpand: () => {\n return instance.getRowModel().flatRows.some(row => row.getCanExpand())\n },\n getToggleAllRowsExpandedHandler: () => {\n return (e: unknown) => {\n ;(e as any).persist?.()\n instance.toggleAllRowsExpanded()\n }\n },\n getIsSomeRowsExpanded: () => {\n const expanded = instance.getState().expanded\n return expanded === true || Object.values(expanded).some(Boolean)\n },\n getIsAllRowsExpanded: () => {\n const expanded = instance.getState().expanded\n\n // If expanded is true, save some cycles and return true\n if (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 (instance.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 instance.getState().expanded === true\n ? Object.keys(instance.getRowModel().rowsById)\n : Object.keys(instance.getState().expanded)\n\n rowIds.forEach(id => {\n const splitId = id.split('.')\n maxDepth = Math.max(maxDepth, splitId.length)\n })\n\n return maxDepth\n },\n getPreExpandedRowModel: () => instance.getGroupedRowModel(),\n getExpandedRowModel: () => {\n if (\n !instance._getExpandedRowModel &&\n instance.options.getExpandedRowModel\n ) {\n instance._getExpandedRowModel =\n instance.options.getExpandedRowModel(instance)\n }\n\n if (\n instance.options.manualExpanding ||\n !instance._getExpandedRowModel\n ) {\n return instance.getPreExpandedRowModel()\n }\n\n return instance._getExpandedRowModel()\n },\n }\n },\n\n createRow: <TGenerics extends TableGenerics>(\n row: Row<TGenerics>,\n instance: TableInstance<TGenerics>\n ): ExpandedRow => {\n return {\n toggleExpanded: expanded => {\n instance.setExpanded(old => {\n const exists = old === true ? true : !!old?.[row.id]\n\n let oldExpanded: ExpandedStateList = {}\n\n if (old === true) {\n Object.keys(instance.getRowModel().rowsById).forEach(rowId => {\n oldExpanded[rowId] = true\n })\n } else {\n oldExpanded = old\n }\n\n expanded = expanded ?? !exists\n\n if (!exists && expanded) {\n return {\n ...oldExpanded,\n [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 = instance.getState().expanded\n\n return !!(\n instance.options.getIsRowExpanded?.(row) ??\n (expanded === true || expanded?.[row.id])\n )\n },\n getCanExpand: () => {\n return (\n (instance.options.getRowCanExpand?.(row) ?? true) &&\n (instance.options.enableExpanding ?? true) &&\n !!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","instance","onExpandedChange","makeStateUpdater","autoResetExpanded","paginateExpandedRows","createInstance","registered","queued","_autoResetExpanded","_queue","options","autoResetAll","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","getGroupedRowModel","getExpandedRowModel","_getExpandedRowModel","manualExpanding","createRow","toggleExpanded","old","exists","oldExpanded","rowId","_","rest","getIsRowExpanded","getRowCanExpand","enableExpanding","subRows","getToggleExpandedHandler","canExpand"],"mappings":"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"}
|
|
@@ -55,8 +55,8 @@ const Visibility = {
|
|
|
55
55
|
},
|
|
56
56
|
createRow: (row, instance) => {
|
|
57
57
|
return {
|
|
58
|
-
_getAllVisibleCells: utils.memo(() => [row.getAllCells()
|
|
59
|
-
return
|
|
58
|
+
_getAllVisibleCells: utils.memo(() => [row.getAllCells(), instance.getState().columnVisibility], cells => {
|
|
59
|
+
return cells.filter(cell => cell.column.getIsVisible());
|
|
60
60
|
}, {
|
|
61
61
|
key: process.env.NODE_ENV === 'production' && 'row._getAllVisibleCells',
|
|
62
62
|
debug: () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Visibility.js","sources":["../../../src/features/Visibility.ts"],"sourcesContent":["import { TableFeature } from '../core/instance'\nimport {\n Cell,\n Column,\n OnChangeFn,\n TableGenerics,\n TableInstance,\n Updater,\n Row,\n} from '../types'\nimport { makeStateUpdater, memo } from '../utils'\n\nexport type VisibilityState = Record<string, boolean>\n\nexport type VisibilityTableState = {\n columnVisibility: VisibilityState\n}\n\nexport type VisibilityOptions = {\n onColumnVisibilityChange?: OnChangeFn<VisibilityState>\n enableHiding?: boolean\n}\n\nexport type VisibilityDefaultOptions = {\n onColumnVisibilityChange: OnChangeFn<VisibilityState>\n}\n\nexport type VisibilityInstance<TGenerics extends TableGenerics> = {\n getVisibleFlatColumns: () => Column<TGenerics>[]\n getVisibleLeafColumns: () => Column<TGenerics>[]\n getLeftVisibleLeafColumns: () => Column<TGenerics>[]\n getRightVisibleLeafColumns: () => Column<TGenerics>[]\n getCenterVisibleLeafColumns: () => Column<TGenerics>[]\n setColumnVisibility: (updater: Updater<VisibilityState>) => void\n resetColumnVisibility: (defaultState?: boolean) => void\n toggleAllColumnsVisible: (value?: boolean) => void\n getIsAllColumnsVisible: () => boolean\n getIsSomeColumnsVisible: () => boolean\n getToggleAllColumnsVisibilityHandler: () => (event: unknown) => void\n}\n\nexport type VisibilityColumnDef = {\n enableHiding?: boolean\n}\n\nexport type VisibilityRow<TGenerics extends TableGenerics> = {\n _getAllVisibleCells: () => Cell<TGenerics>[]\n getVisibleCells: () => Cell<TGenerics>[]\n}\n\nexport type VisibilityColumn = {\n getCanHide: () => boolean\n getIsVisible: () => boolean\n toggleVisibility: (value?: boolean) => void\n getToggleVisibilityHandler: () => (event: unknown) => void\n}\n\n//\n\nexport const Visibility: TableFeature = {\n getInitialState: (state): VisibilityTableState => {\n return {\n columnVisibility: {},\n ...state,\n }\n },\n\n getDefaultOptions: <TGenerics extends TableGenerics>(\n instance: TableInstance<TGenerics>\n ): VisibilityDefaultOptions => {\n return {\n onColumnVisibilityChange: makeStateUpdater('columnVisibility', instance),\n }\n },\n\n createColumn: <TGenerics extends TableGenerics>(\n column: Column<TGenerics>,\n instance: TableInstance<TGenerics>\n ): VisibilityColumn => {\n return {\n toggleVisibility: value => {\n if (column.getCanHide()) {\n instance.setColumnVisibility(old => ({\n ...old,\n [column.id]: value ?? !column.getIsVisible(),\n }))\n }\n },\n getIsVisible: () => {\n return instance.getState().columnVisibility?.[column.id] ?? true\n },\n\n getCanHide: () => {\n return (\n (column.columnDef.enableHiding ?? true) &&\n (instance.options.enableHiding ?? true)\n )\n },\n getToggleVisibilityHandler: () => {\n return (e: unknown) => {\n column.toggleVisibility?.(\n ((e as MouseEvent).target as HTMLInputElement).checked\n )\n }\n },\n }\n },\n\n createRow: <TGenerics extends TableGenerics>(\n row: Row<TGenerics>,\n instance: TableInstance<TGenerics>\n ): VisibilityRow<TGenerics> => {\n return {\n _getAllVisibleCells: memo(\n () => [\n row\n .getAllCells()\n .filter(cell => cell.column.getIsVisible())\n .map(d => d.id)\n .join('_'),\n ],\n _ => {\n return row.getAllCells().filter(cell => cell.column.getIsVisible())\n },\n {\n key:\n process.env.NODE_ENV === 'production' && 'row._getAllVisibleCells',\n debug: () => instance.options.debugAll ?? instance.options.debugRows,\n }\n ),\n getVisibleCells: memo(\n () => [\n row.getLeftVisibleCells(),\n row.getCenterVisibleCells(),\n row.getRightVisibleCells(),\n ],\n (left, center, right) => [...left, ...center, ...right],\n {\n key: process.env.NODE_ENV === 'development' && 'row.getVisibleCells',\n debug: () => instance.options.debugAll ?? instance.options.debugRows,\n }\n ),\n }\n },\n\n createInstance: <TGenerics extends TableGenerics>(\n instance: TableInstance<TGenerics>\n ): VisibilityInstance<TGenerics> => {\n const makeVisibleColumnsMethod = (\n key: string,\n getColumns: () => Column<TGenerics>[]\n ): (() => Column<TGenerics>[]) => {\n return memo(\n () => [\n getColumns(),\n getColumns()\n .filter(d => d.getIsVisible())\n .map(d => d.id)\n .join('_'),\n ],\n columns => {\n return columns.filter(d => d.getIsVisible?.())\n },\n {\n key,\n debug: () =>\n instance.options.debugAll ?? instance.options.debugColumns,\n }\n )\n }\n\n return {\n getVisibleFlatColumns: makeVisibleColumnsMethod(\n 'getVisibleFlatColumns',\n () => instance.getAllFlatColumns()\n ),\n getVisibleLeafColumns: makeVisibleColumnsMethod(\n 'getVisibleLeafColumns',\n () => instance.getAllLeafColumns()\n ),\n getLeftVisibleLeafColumns: makeVisibleColumnsMethod(\n 'getLeftVisibleLeafColumns',\n () => instance.getLeftLeafColumns()\n ),\n getRightVisibleLeafColumns: makeVisibleColumnsMethod(\n 'getRightVisibleLeafColumns',\n () => instance.getRightLeafColumns()\n ),\n getCenterVisibleLeafColumns: makeVisibleColumnsMethod(\n 'getCenterVisibleLeafColumns',\n () => instance.getCenterLeafColumns()\n ),\n\n setColumnVisibility: updater =>\n instance.options.onColumnVisibilityChange?.(updater),\n\n resetColumnVisibility: defaultState => {\n instance.setColumnVisibility(\n defaultState ? {} : instance.initialState.columnVisibility ?? {}\n )\n },\n\n toggleAllColumnsVisible: value => {\n value = value ?? !instance.getIsAllColumnsVisible()\n\n instance.setColumnVisibility(\n instance.getAllLeafColumns().reduce(\n (obj, column) => ({\n ...obj,\n [column.id]: !value ? !column.getCanHide?.() : value,\n }),\n {}\n )\n )\n },\n\n getIsAllColumnsVisible: () =>\n !instance.getAllLeafColumns().some(column => !column.getIsVisible?.()),\n\n getIsSomeColumnsVisible: () =>\n instance.getAllLeafColumns().some(column => column.getIsVisible?.()),\n\n getToggleAllColumnsVisibilityHandler: () => {\n return (e: unknown) => {\n instance.toggleAllColumnsVisible(\n ((e as MouseEvent).target as HTMLInputElement)?.checked\n )\n }\n },\n }\n },\n}\n"],"names":["Visibility","getInitialState","state","columnVisibility","getDefaultOptions","instance","onColumnVisibilityChange","makeStateUpdater","createColumn","column","toggleVisibility","value","getCanHide","setColumnVisibility","old","id","getIsVisible","getState","columnDef","enableHiding","options","getToggleVisibilityHandler","e","target","checked","createRow","row","_getAllVisibleCells","memo","getAllCells","filter","cell","map","d","join","_","key","process","env","NODE_ENV","debug","debugAll","debugRows","getVisibleCells","getLeftVisibleCells","getCenterVisibleCells","getRightVisibleCells","left","center","right","createInstance","makeVisibleColumnsMethod","getColumns","columns","debugColumns","getVisibleFlatColumns","getAllFlatColumns","getVisibleLeafColumns","getAllLeafColumns","getLeftVisibleLeafColumns","getLeftLeafColumns","getRightVisibleLeafColumns","getRightLeafColumns","getCenterVisibleLeafColumns","getCenterLeafColumns","updater","resetColumnVisibility","defaultState","initialState","toggleAllColumnsVisible","getIsAllColumnsVisible","reduce","obj","some","getIsSomeColumnsVisible","getToggleAllColumnsVisibilityHandler"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Visibility.js","sources":["../../../src/features/Visibility.ts"],"sourcesContent":["import { TableFeature } from '../core/instance'\nimport {\n Cell,\n Column,\n OnChangeFn,\n TableGenerics,\n TableInstance,\n Updater,\n Row,\n} from '../types'\nimport { makeStateUpdater, memo } from '../utils'\n\nexport type VisibilityState = Record<string, boolean>\n\nexport type VisibilityTableState = {\n columnVisibility: VisibilityState\n}\n\nexport type VisibilityOptions = {\n onColumnVisibilityChange?: OnChangeFn<VisibilityState>\n enableHiding?: boolean\n}\n\nexport type VisibilityDefaultOptions = {\n onColumnVisibilityChange: OnChangeFn<VisibilityState>\n}\n\nexport type VisibilityInstance<TGenerics extends TableGenerics> = {\n getVisibleFlatColumns: () => Column<TGenerics>[]\n getVisibleLeafColumns: () => Column<TGenerics>[]\n getLeftVisibleLeafColumns: () => Column<TGenerics>[]\n getRightVisibleLeafColumns: () => Column<TGenerics>[]\n getCenterVisibleLeafColumns: () => Column<TGenerics>[]\n setColumnVisibility: (updater: Updater<VisibilityState>) => void\n resetColumnVisibility: (defaultState?: boolean) => void\n toggleAllColumnsVisible: (value?: boolean) => void\n getIsAllColumnsVisible: () => boolean\n getIsSomeColumnsVisible: () => boolean\n getToggleAllColumnsVisibilityHandler: () => (event: unknown) => void\n}\n\nexport type VisibilityColumnDef = {\n enableHiding?: boolean\n}\n\nexport type VisibilityRow<TGenerics extends TableGenerics> = {\n _getAllVisibleCells: () => Cell<TGenerics>[]\n getVisibleCells: () => Cell<TGenerics>[]\n}\n\nexport type VisibilityColumn = {\n getCanHide: () => boolean\n getIsVisible: () => boolean\n toggleVisibility: (value?: boolean) => void\n getToggleVisibilityHandler: () => (event: unknown) => void\n}\n\n//\n\nexport const Visibility: TableFeature = {\n getInitialState: (state): VisibilityTableState => {\n return {\n columnVisibility: {},\n ...state,\n }\n },\n\n getDefaultOptions: <TGenerics extends TableGenerics>(\n instance: TableInstance<TGenerics>\n ): VisibilityDefaultOptions => {\n return {\n onColumnVisibilityChange: makeStateUpdater('columnVisibility', instance),\n }\n },\n\n createColumn: <TGenerics extends TableGenerics>(\n column: Column<TGenerics>,\n instance: TableInstance<TGenerics>\n ): VisibilityColumn => {\n return {\n toggleVisibility: value => {\n if (column.getCanHide()) {\n instance.setColumnVisibility(old => ({\n ...old,\n [column.id]: value ?? !column.getIsVisible(),\n }))\n }\n },\n getIsVisible: () => {\n return instance.getState().columnVisibility?.[column.id] ?? true\n },\n\n getCanHide: () => {\n return (\n (column.columnDef.enableHiding ?? true) &&\n (instance.options.enableHiding ?? true)\n )\n },\n getToggleVisibilityHandler: () => {\n return (e: unknown) => {\n column.toggleVisibility?.(\n ((e as MouseEvent).target as HTMLInputElement).checked\n )\n }\n },\n }\n },\n\n createRow: <TGenerics extends TableGenerics>(\n row: Row<TGenerics>,\n instance: TableInstance<TGenerics>\n ): VisibilityRow<TGenerics> => {\n return {\n _getAllVisibleCells: memo(\n () => [row.getAllCells(), instance.getState().columnVisibility],\n cells => {\n return cells.filter(cell => cell.column.getIsVisible())\n },\n {\n key:\n process.env.NODE_ENV === 'production' && 'row._getAllVisibleCells',\n debug: () => instance.options.debugAll ?? instance.options.debugRows,\n }\n ),\n getVisibleCells: memo(\n () => [\n row.getLeftVisibleCells(),\n row.getCenterVisibleCells(),\n row.getRightVisibleCells(),\n ],\n (left, center, right) => [...left, ...center, ...right],\n {\n key: process.env.NODE_ENV === 'development' && 'row.getVisibleCells',\n debug: () => instance.options.debugAll ?? instance.options.debugRows,\n }\n ),\n }\n },\n\n createInstance: <TGenerics extends TableGenerics>(\n instance: TableInstance<TGenerics>\n ): VisibilityInstance<TGenerics> => {\n const makeVisibleColumnsMethod = (\n key: string,\n getColumns: () => Column<TGenerics>[]\n ): (() => Column<TGenerics>[]) => {\n return memo(\n () => [\n getColumns(),\n getColumns()\n .filter(d => d.getIsVisible())\n .map(d => d.id)\n .join('_'),\n ],\n columns => {\n return columns.filter(d => d.getIsVisible?.())\n },\n {\n key,\n debug: () =>\n instance.options.debugAll ?? instance.options.debugColumns,\n }\n )\n }\n\n return {\n getVisibleFlatColumns: makeVisibleColumnsMethod(\n 'getVisibleFlatColumns',\n () => instance.getAllFlatColumns()\n ),\n getVisibleLeafColumns: makeVisibleColumnsMethod(\n 'getVisibleLeafColumns',\n () => instance.getAllLeafColumns()\n ),\n getLeftVisibleLeafColumns: makeVisibleColumnsMethod(\n 'getLeftVisibleLeafColumns',\n () => instance.getLeftLeafColumns()\n ),\n getRightVisibleLeafColumns: makeVisibleColumnsMethod(\n 'getRightVisibleLeafColumns',\n () => instance.getRightLeafColumns()\n ),\n getCenterVisibleLeafColumns: makeVisibleColumnsMethod(\n 'getCenterVisibleLeafColumns',\n () => instance.getCenterLeafColumns()\n ),\n\n setColumnVisibility: updater =>\n instance.options.onColumnVisibilityChange?.(updater),\n\n resetColumnVisibility: defaultState => {\n instance.setColumnVisibility(\n defaultState ? {} : instance.initialState.columnVisibility ?? {}\n )\n },\n\n toggleAllColumnsVisible: value => {\n value = value ?? !instance.getIsAllColumnsVisible()\n\n instance.setColumnVisibility(\n instance.getAllLeafColumns().reduce(\n (obj, column) => ({\n ...obj,\n [column.id]: !value ? !column.getCanHide?.() : value,\n }),\n {}\n )\n )\n },\n\n getIsAllColumnsVisible: () =>\n !instance.getAllLeafColumns().some(column => !column.getIsVisible?.()),\n\n getIsSomeColumnsVisible: () =>\n instance.getAllLeafColumns().some(column => column.getIsVisible?.()),\n\n getToggleAllColumnsVisibilityHandler: () => {\n return (e: unknown) => {\n instance.toggleAllColumnsVisible(\n ((e as MouseEvent).target as HTMLInputElement)?.checked\n )\n }\n },\n }\n },\n}\n"],"names":["Visibility","getInitialState","state","columnVisibility","getDefaultOptions","instance","onColumnVisibilityChange","makeStateUpdater","createColumn","column","toggleVisibility","value","getCanHide","setColumnVisibility","old","id","getIsVisible","getState","columnDef","enableHiding","options","getToggleVisibilityHandler","e","target","checked","createRow","row","_getAllVisibleCells","memo","getAllCells","cells","filter","cell","key","process","env","NODE_ENV","debug","debugAll","debugRows","getVisibleCells","getLeftVisibleCells","getCenterVisibleCells","getRightVisibleCells","left","center","right","createInstance","makeVisibleColumnsMethod","getColumns","d","map","join","columns","debugColumns","getVisibleFlatColumns","getAllFlatColumns","getVisibleLeafColumns","getAllLeafColumns","getLeftVisibleLeafColumns","getLeftLeafColumns","getRightVisibleLeafColumns","getRightLeafColumns","getCenterVisibleLeafColumns","getCenterLeafColumns","updater","resetColumnVisibility","defaultState","initialState","toggleAllColumnsVisible","getIsAllColumnsVisible","reduce","obj","some","getIsSomeColumnsVisible","getToggleAllColumnsVisibilityHandler"],"mappings":"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"}
|
|
@@ -22,27 +22,23 @@ function getCoreRowModel() {
|
|
|
22
22
|
flatRows: [],
|
|
23
23
|
rowsById: {}
|
|
24
24
|
};
|
|
25
|
-
let rows;
|
|
26
|
-
let row$1;
|
|
27
|
-
let originalRow;
|
|
28
25
|
|
|
29
26
|
const accessRows = function (originalRows, depth, parent) {
|
|
30
27
|
if (depth === void 0) {
|
|
31
28
|
depth = 0;
|
|
32
29
|
}
|
|
33
30
|
|
|
34
|
-
rows = [];
|
|
31
|
+
const rows = [];
|
|
35
32
|
|
|
36
33
|
for (let i = 0; i < originalRows.length; i++) {
|
|
37
|
-
|
|
34
|
+
// This could be an expensive check at scale, so we should move it somewhere else, but where?
|
|
38
35
|
// if (!id) {
|
|
39
36
|
// if (process.env.NODE_ENV !== 'production') {
|
|
40
37
|
// throw new Error(`getRowId expected an ID, but got ${id}`)
|
|
41
38
|
// }
|
|
42
39
|
// }
|
|
43
40
|
// Make the row
|
|
44
|
-
|
|
45
|
-
row$1 = row.createRow(instance, instance._getRowId(originalRow, i, parent), originalRow, i, depth); // Keep track of every row in a flat array
|
|
41
|
+
const row$1 = row.createRow(instance, instance._getRowId(originalRows[i], i, parent), originalRows[i], i, depth); // Keep track of every row in a flat array
|
|
46
42
|
|
|
47
43
|
rowModel.flatRows.push(row$1); // Also keep track of every row by its ID
|
|
48
44
|
|
|
@@ -53,7 +49,7 @@ function getCoreRowModel() {
|
|
|
53
49
|
if (instance.options.getSubRows) {
|
|
54
50
|
var _row$originalSubRows;
|
|
55
51
|
|
|
56
|
-
row$1.originalSubRows = instance.options.getSubRows(
|
|
52
|
+
row$1.originalSubRows = instance.options.getSubRows(originalRows[i], i); // Then recursively access them
|
|
57
53
|
|
|
58
54
|
if ((_row$originalSubRows = row$1.originalSubRows) != null && _row$originalSubRows.length) {
|
|
59
55
|
row$1.subRows = accessRows(row$1.originalSubRows, depth + 1, row$1);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getCoreRowModel.js","sources":["../../../src/utils/getCoreRowModel.ts"],"sourcesContent":["import { createRow } from '../core/row'\nimport { TableInstance, Row, RowModel, TableGenerics } from '../types'\nimport { memo } from '../utils'\n\nexport function getCoreRowModel<TGenerics extends TableGenerics>(): (\n instance: TableInstance<TGenerics>\n) => () => RowModel<TGenerics> {\n return instance =>\n memo(\n () => [instance.options.data],\n (\n data\n ): {\n rows: Row<TGenerics>[]\n flatRows: Row<TGenerics>[]\n rowsById: Record<string, Row<TGenerics>>\n } => {\n const rowModel: RowModel<TGenerics> = {\n rows: [],\n flatRows: [],\n rowsById: {},\n }\n\n
|
|
1
|
+
{"version":3,"file":"getCoreRowModel.js","sources":["../../../src/utils/getCoreRowModel.ts"],"sourcesContent":["import { createRow } from '../core/row'\nimport { TableInstance, Row, RowModel, TableGenerics } from '../types'\nimport { memo } from '../utils'\n\nexport function getCoreRowModel<TGenerics extends TableGenerics>(): (\n instance: TableInstance<TGenerics>\n) => () => RowModel<TGenerics> {\n return instance =>\n memo(\n () => [instance.options.data],\n (\n data\n ): {\n rows: Row<TGenerics>[]\n flatRows: Row<TGenerics>[]\n rowsById: Record<string, Row<TGenerics>>\n } => {\n const rowModel: RowModel<TGenerics> = {\n rows: [],\n flatRows: [],\n rowsById: {},\n }\n\n const accessRows = (\n originalRows: TGenerics['Row'][],\n depth = 0,\n parent?: Row<TGenerics>\n ): Row<TGenerics>[] => {\n const rows = [] as Row<TGenerics>[]\n\n for (let i = 0; i < originalRows.length; i++) {\n // This could be an expensive check at scale, so we should move it somewhere else, but where?\n // if (!id) {\n // if (process.env.NODE_ENV !== 'production') {\n // throw new Error(`getRowId expected an ID, but got ${id}`)\n // }\n // }\n\n // Make the row\n const row = createRow(\n instance,\n instance._getRowId(originalRows[i], i, parent),\n originalRows[i],\n i,\n depth\n )\n\n // Keep track of every row in a flat array\n rowModel.flatRows.push(row)\n // Also keep track of every row by its ID\n rowModel.rowsById[row.id] = row\n // Push instance row into parent\n rows.push(row)\n\n // Get the original subrows\n if (instance.options.getSubRows) {\n row.originalSubRows = instance.options.getSubRows(\n originalRows[i],\n i\n )\n\n // Then recursively access them\n if (row.originalSubRows?.length) {\n row.subRows = accessRows(row.originalSubRows, depth + 1, row)\n }\n }\n }\n\n return rows\n }\n\n rowModel.rows = accessRows(data)\n\n return rowModel\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getRowModel',\n debug: () => instance.options.debugAll ?? instance.options.debugTable,\n onChange: () => {\n instance._autoResetPageIndex()\n },\n }\n )\n}\n"],"names":["getCoreRowModel","instance","memo","options","data","rowModel","rows","flatRows","rowsById","accessRows","originalRows","depth","parent","i","length","row","createRow","_getRowId","push","id","getSubRows","originalSubRows","subRows","key","process","env","NODE_ENV","debug","debugAll","debugTable","onChange","_autoResetPageIndex"],"mappings":";;;;;;;;;;;;;;;;;AAIO,SAASA,eAAT,GAEwB;AAC7B,EAAA,OAAOC,QAAQ,IACbC,UAAI,CACF,MAAM,CAACD,QAAQ,CAACE,OAAT,CAAiBC,IAAlB,CADJ,EAGAA,IADF,IAMK;AACH,IAAA,MAAMC,QAA6B,GAAG;AACpCC,MAAAA,IAAI,EAAE,EAD8B;AAEpCC,MAAAA,QAAQ,EAAE,EAF0B;AAGpCC,MAAAA,QAAQ,EAAE,EAAA;AAH0B,KAAtC,CAAA;;AAMA,IAAMC,MAAAA,UAAU,GAAG,UACjBC,YADiB,EAEjBC,KAFiB,EAGjBC,MAHiB,EAII;AAAA,MAAA,IAFrBD,KAEqB,KAAA,KAAA,CAAA,EAAA;AAFrBA,QAAAA,KAEqB,GAFb,CAEa,CAAA;AAAA,OAAA;;AACrB,MAAML,MAAAA,IAAI,GAAG,EAAb,CAAA;;AAEA,MAAA,KAAK,IAAIO,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGH,YAAY,CAACI,MAAjC,EAAyCD,CAAC,EAA1C,EAA8C;AAC5C;AACA;AACA;AACA;AACA;AACA;AAEA;AACA,QAAA,MAAME,KAAG,GAAGC,aAAS,CACnBf,QADmB,EAEnBA,QAAQ,CAACgB,SAAT,CAAmBP,YAAY,CAACG,CAAD,CAA/B,EAAoCA,CAApC,EAAuCD,MAAvC,CAFmB,EAGnBF,YAAY,CAACG,CAAD,CAHO,EAInBA,CAJmB,EAKnBF,KALmB,CAArB,CAT4C;;AAkB5CN,QAAAA,QAAQ,CAACE,QAAT,CAAkBW,IAAlB,CAAuBH,KAAvB,EAlB4C;;AAoB5CV,QAAAA,QAAQ,CAACG,QAAT,CAAkBO,KAAG,CAACI,EAAtB,CAAA,GAA4BJ,KAA5B,CApB4C;;AAsB5CT,QAAAA,IAAI,CAACY,IAAL,CAAUH,KAAV,EAtB4C;;AAyB5C,QAAA,IAAId,QAAQ,CAACE,OAAT,CAAiBiB,UAArB,EAAiC;AAAA,UAAA,IAAA,oBAAA,CAAA;;AAC/BL,UAAAA,KAAG,CAACM,eAAJ,GAAsBpB,QAAQ,CAACE,OAAT,CAAiBiB,UAAjB,CACpBV,YAAY,CAACG,CAAD,CADQ,EAEpBA,CAFoB,CAAtB,CAD+B;;AAO/B,UAAA,IAAA,CAAA,oBAAA,GAAIE,KAAG,CAACM,eAAR,KAAI,IAAA,IAAA,oBAAA,CAAqBP,MAAzB,EAAiC;AAC/BC,YAAAA,KAAG,CAACO,OAAJ,GAAcb,UAAU,CAACM,KAAG,CAACM,eAAL,EAAsBV,KAAK,GAAG,CAA9B,EAAiCI,KAAjC,CAAxB,CAAA;AACD,WAAA;AACF,SAAA;AACF,OAAA;;AAED,MAAA,OAAOT,IAAP,CAAA;AACD,KA9CD,CAAA;;AAgDAD,IAAAA,QAAQ,CAACC,IAAT,GAAgBG,UAAU,CAACL,IAAD,CAA1B,CAAA;AAEA,IAAA,OAAOC,QAAP,CAAA;AACD,GAlEC,EAmEF;AACEkB,IAAAA,GAAG,EAAEC,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,aAAzB,IAA0C,aADjD;AAEEC,IAAAA,KAAK,EAAE,MAAA;AAAA,MAAA,IAAA,qBAAA,CAAA;;AAAA,MAAM1B,OAAAA,CAAAA,qBAAAA,GAAAA,QAAQ,CAACE,OAAT,CAAiByB,QAAvB,oCAAmC3B,QAAQ,CAACE,OAAT,CAAiB0B,UAApD,CAAA;AAAA,KAFT;AAGEC,IAAAA,QAAQ,EAAE,MAAM;AACd7B,MAAAA,QAAQ,CAAC8B,mBAAT,EAAA,CAAA;AACD,KAAA;AALH,GAnEE,CADN,CAAA;AA4ED;;;;"}
|
package/build/esm/index.js
CHANGED
|
@@ -110,7 +110,7 @@ function createColumn(instance, columnDef, depth, parent) {
|
|
|
110
110
|
throw new Error();
|
|
111
111
|
}
|
|
112
112
|
|
|
113
|
-
let column = {
|
|
113
|
+
let column = {
|
|
114
114
|
id: "" + id,
|
|
115
115
|
accessorFn,
|
|
116
116
|
parent: parent,
|
|
@@ -874,8 +874,12 @@ const Expanding = {
|
|
|
874
874
|
getIsAllRowsExpanded: () => {
|
|
875
875
|
const expanded = instance.getState().expanded; // If expanded is true, save some cycles and return true
|
|
876
876
|
|
|
877
|
-
if (expanded ===
|
|
878
|
-
return true;
|
|
877
|
+
if (typeof expanded === 'boolean') {
|
|
878
|
+
return expanded === true;
|
|
879
|
+
}
|
|
880
|
+
|
|
881
|
+
if (!Object.keys(expanded).length) {
|
|
882
|
+
return false;
|
|
879
883
|
} // If any row is not expanded, return false
|
|
880
884
|
|
|
881
885
|
|
|
@@ -2686,8 +2690,8 @@ const Visibility = {
|
|
|
2686
2690
|
},
|
|
2687
2691
|
createRow: (row, instance) => {
|
|
2688
2692
|
return {
|
|
2689
|
-
_getAllVisibleCells: memo(() => [row.getAllCells()
|
|
2690
|
-
return
|
|
2693
|
+
_getAllVisibleCells: memo(() => [row.getAllCells(), instance.getState().columnVisibility], cells => {
|
|
2694
|
+
return cells.filter(cell => cell.column.getIsVisible());
|
|
2691
2695
|
}, {
|
|
2692
2696
|
key: process.env.NODE_ENV === 'production' && 'row._getAllVisibleCells',
|
|
2693
2697
|
debug: () => {
|
|
@@ -3040,13 +3044,15 @@ function createCell(instance, row, column, columnId) {
|
|
|
3040
3044
|
row,
|
|
3041
3045
|
column,
|
|
3042
3046
|
getValue: () => row.getValue(columnId),
|
|
3043
|
-
renderCell: () =>
|
|
3044
|
-
instance,
|
|
3045
|
-
|
|
3046
|
-
|
|
3047
|
-
|
|
3048
|
-
|
|
3049
|
-
|
|
3047
|
+
renderCell: () => {
|
|
3048
|
+
return column.columnDef.cell ? instance._render(column.columnDef.cell, {
|
|
3049
|
+
instance,
|
|
3050
|
+
column,
|
|
3051
|
+
row,
|
|
3052
|
+
cell: cell,
|
|
3053
|
+
getValue: cell.getValue
|
|
3054
|
+
}) : null;
|
|
3055
|
+
}
|
|
3050
3056
|
};
|
|
3051
3057
|
|
|
3052
3058
|
instance._features.forEach(feature => {
|
|
@@ -3121,27 +3127,23 @@ function getCoreRowModel() {
|
|
|
3121
3127
|
flatRows: [],
|
|
3122
3128
|
rowsById: {}
|
|
3123
3129
|
};
|
|
3124
|
-
let rows;
|
|
3125
|
-
let row;
|
|
3126
|
-
let originalRow;
|
|
3127
3130
|
|
|
3128
3131
|
const accessRows = function (originalRows, depth, parent) {
|
|
3129
3132
|
if (depth === void 0) {
|
|
3130
3133
|
depth = 0;
|
|
3131
3134
|
}
|
|
3132
3135
|
|
|
3133
|
-
rows = [];
|
|
3136
|
+
const rows = [];
|
|
3134
3137
|
|
|
3135
3138
|
for (let i = 0; i < originalRows.length; i++) {
|
|
3136
|
-
|
|
3139
|
+
// This could be an expensive check at scale, so we should move it somewhere else, but where?
|
|
3137
3140
|
// if (!id) {
|
|
3138
3141
|
// if (process.env.NODE_ENV !== 'production') {
|
|
3139
3142
|
// throw new Error(`getRowId expected an ID, but got ${id}`)
|
|
3140
3143
|
// }
|
|
3141
3144
|
// }
|
|
3142
3145
|
// Make the row
|
|
3143
|
-
|
|
3144
|
-
row = createRow(instance, instance._getRowId(originalRow, i, parent), originalRow, i, depth); // Keep track of every row in a flat array
|
|
3146
|
+
const row = createRow(instance, instance._getRowId(originalRows[i], i, parent), originalRows[i], i, depth); // Keep track of every row in a flat array
|
|
3145
3147
|
|
|
3146
3148
|
rowModel.flatRows.push(row); // Also keep track of every row by its ID
|
|
3147
3149
|
|
|
@@ -3152,7 +3154,7 @@ function getCoreRowModel() {
|
|
|
3152
3154
|
if (instance.options.getSubRows) {
|
|
3153
3155
|
var _row$originalSubRows;
|
|
3154
3156
|
|
|
3155
|
-
row.originalSubRows = instance.options.getSubRows(
|
|
3157
|
+
row.originalSubRows = instance.options.getSubRows(originalRows[i], i); // Then recursively access them
|
|
3156
3158
|
|
|
3157
3159
|
if ((_row$originalSubRows = row.originalSubRows) != null && _row$originalSubRows.length) {
|
|
3158
3160
|
row.subRows = accessRows(row.originalSubRows, depth + 1, row);
|