@tanstack/table-core 8.0.0-alpha.73 → 8.0.0-alpha.74
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.js +1 -92
- package/build/cjs/core.js.map +1 -1
- package/build/cjs/utils/getCoreRowModel.js +31 -45
- package/build/cjs/utils/getCoreRowModel.js.map +1 -1
- package/build/esm/index.js +32 -137
- package/build/esm/index.js.map +1 -1
- package/build/stats-html.html +1 -1
- package/build/stats-react.json +298 -298
- package/build/umd/index.development.js +32 -137
- 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 +1 -1
- package/src/core.ts +0 -107
- package/src/utils/getCoreRowModel.ts +42 -55
package/build/cjs/core.js
CHANGED
|
@@ -39,7 +39,6 @@ var Headers = require('./features/Headers.js');
|
|
|
39
39
|
// data: Batch[]
|
|
40
40
|
// facets: Batch[]
|
|
41
41
|
// }
|
|
42
|
-
// export type TaskPriority = keyof CoreBatches
|
|
43
42
|
function createTableInstance(options) {
|
|
44
43
|
var _options$initialState;
|
|
45
44
|
|
|
@@ -78,64 +77,7 @@ function createTableInstance(options) {
|
|
|
78
77
|
});
|
|
79
78
|
|
|
80
79
|
const queued = [];
|
|
81
|
-
let queuedTimeout = false;
|
|
82
|
-
// let working = false
|
|
83
|
-
// let latestCallback: ReturnType<typeof requestIdleCallback>
|
|
84
|
-
// let batchUid = 0
|
|
85
|
-
// const onProgress = () => {}
|
|
86
|
-
// const getBatch = () => {
|
|
87
|
-
// instance.batches.data = instance.batches.data.filter(d => d.tasks.length)
|
|
88
|
-
// instance.batches.facets = instance.batches.facets.filter(
|
|
89
|
-
// d => d.tasks.length
|
|
90
|
-
// )
|
|
91
|
-
// return (
|
|
92
|
-
// instance.batches.data.find(d => d.tasks.length) ??
|
|
93
|
-
// instance.batches.facets.find(d => d.tasks.length)
|
|
94
|
-
// )
|
|
95
|
-
// }
|
|
96
|
-
// const startWorkLoop = () => {
|
|
97
|
-
// working = true
|
|
98
|
-
// const workLoop = (deadline: IdleDeadline) => {
|
|
99
|
-
// const batch = getBatch()
|
|
100
|
-
// if (!batch) {
|
|
101
|
-
// working = false
|
|
102
|
-
// return
|
|
103
|
-
// }
|
|
104
|
-
// // Prioritize tasks
|
|
105
|
-
// while (deadline.timeRemaining() > 0 && batch.tasks.length) {
|
|
106
|
-
// batch.tasks.shift()!()
|
|
107
|
-
// }
|
|
108
|
-
// onProgress()
|
|
109
|
-
// if (working) {
|
|
110
|
-
// latestCallback = requestIdleCallback(workLoop, { timeout: 10000 })
|
|
111
|
-
// }
|
|
112
|
-
// }
|
|
113
|
-
// latestCallback = requestIdleCallback(workLoop, { timeout: 10000 })
|
|
114
|
-
// }
|
|
115
|
-
// const startWork = () => {
|
|
116
|
-
// if (getBatch() && !working) {
|
|
117
|
-
// if (
|
|
118
|
-
// (process.env.NODE_ENV === 'development' && instance.options.debugAll) ??
|
|
119
|
-
// instance.options.debugTable
|
|
120
|
-
// ) {
|
|
121
|
-
// console.info('Starting work...')
|
|
122
|
-
// }
|
|
123
|
-
// startWorkLoop()
|
|
124
|
-
// }
|
|
125
|
-
// }
|
|
126
|
-
// const stopWork = () => {
|
|
127
|
-
// if (working) {
|
|
128
|
-
// if (
|
|
129
|
-
// (process.env.NODE_ENV === 'development' && instance.options.debugAll) ??
|
|
130
|
-
// instance.options.debugTable
|
|
131
|
-
// ) {
|
|
132
|
-
// console.info('Stopping work...')
|
|
133
|
-
// }
|
|
134
|
-
// working = false
|
|
135
|
-
// cancelIdleCallback(latestCallback)
|
|
136
|
-
// }
|
|
137
|
-
// }
|
|
138
|
-
|
|
80
|
+
let queuedTimeout = false;
|
|
139
81
|
const midInstance = { ...instance,
|
|
140
82
|
// init: () => {
|
|
141
83
|
// startWork()
|
|
@@ -168,39 +110,6 @@ function createTableInstance(options) {
|
|
|
168
110
|
}));
|
|
169
111
|
}
|
|
170
112
|
},
|
|
171
|
-
// batches: {
|
|
172
|
-
// data: [],
|
|
173
|
-
// facets: [],
|
|
174
|
-
// },
|
|
175
|
-
// createBatch: priority => {
|
|
176
|
-
// const batchId = batchUid++
|
|
177
|
-
// let canceled: boolean
|
|
178
|
-
// const batch: Batch = {
|
|
179
|
-
// id: batchId,
|
|
180
|
-
// priority,
|
|
181
|
-
// tasks: [],
|
|
182
|
-
// schedule: cb => {
|
|
183
|
-
// if (canceled) return
|
|
184
|
-
// batch.tasks.push(cb)
|
|
185
|
-
// if (!working && !workScheduled) {
|
|
186
|
-
// workScheduled = true
|
|
187
|
-
// instance.queue(() => {
|
|
188
|
-
// workScheduled = false
|
|
189
|
-
// instance.setState(old => ({ ...old }))
|
|
190
|
-
// })
|
|
191
|
-
// }
|
|
192
|
-
// },
|
|
193
|
-
// cancel: () => {
|
|
194
|
-
// canceled = true
|
|
195
|
-
// batch.tasks = []
|
|
196
|
-
// instance.batches[priority] = instance.batches[priority].filter(
|
|
197
|
-
// b => b.id !== batchId
|
|
198
|
-
// )
|
|
199
|
-
// },
|
|
200
|
-
// }
|
|
201
|
-
// instance.batches[priority].push(batch)
|
|
202
|
-
// return batch
|
|
203
|
-
// },
|
|
204
113
|
reset: () => {
|
|
205
114
|
instance.setState(instance.initialState);
|
|
206
115
|
},
|
package/build/cjs/core.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core.js","sources":["../../src/core.ts"],"sourcesContent":["import { functionalUpdate, RequiredKeys } from './utils'\n\nimport {\n Updater,\n TableOptions,\n TableState,\n TableInstance,\n Renderable,\n TableFeature,\n TableGenerics,\n InitialTableState,\n} from './types'\n\nimport { Columns } from './features/Columns'\nimport { Rows } from './features/Rows'\nimport { Cells } from './features/Cells'\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'\nimport { Headers } from './features/Headers'\n//\n\nexport type CoreTableState = {\n // coreProgress: number\n}\n\nexport type CoreOptions<TGenerics extends TableGenerics> = {\n data: TGenerics['Row'][]\n state: Partial<TableState>\n onStateChange: (updater: Updater<TableState>) => void\n render: TGenerics['Renderer']\n debugAll?: boolean\n debugTable?: boolean\n debugHeaders?: boolean\n debugColumns?: boolean\n debugRows?: boolean\n initialState?: InitialTableState\n autoResetAll?: boolean\n mergeOptions?: <T>(defaultOptions: T, options: Partial<T>) => T\n meta?: TGenerics['TableMeta']\n // keepPreviousData?: boolean\n}\n\nexport type CoreInstance<TGenerics extends TableGenerics> = {\n // generics: TGenerics\n initialState: TableState\n reset: () => void\n options: RequiredKeys<TableOptions<TGenerics>, 'state'>\n setOptions: (newOptions: Updater<TableOptions<TGenerics>>) => void\n getState: () => TableState\n setState: (updater: Updater<TableState>) => void\n _queue: (cb: () => void) => void\n _render: <TProps>(\n template: Renderable<TGenerics, TProps>,\n props: TProps\n ) => string | null | TGenerics['Rendered']\n _features: readonly TableFeature[]\n // getOverallProgress: () => number\n // getProgressStage: () =>\n // | undefined\n // | 'coreRowModel'\n // | 'filteredRowModel'\n // | 'facetedRowModel'\n // createBatch: (priority: keyof CoreBatches) => Batch\n // init: () => void\n // willUpdate: () => void\n // destroy: () => void\n // batches: CoreBatches\n}\n\n// export type Batch = {\n// id: number\n// priority: keyof CoreBatches\n// tasks: (() => void)[]\n// schedule: (cb: () => void) => void\n// cancel: () => void\n// }\n\n// type CoreBatches = {\n// data: Batch[]\n// facets: Batch[]\n// }\n\n// export type TaskPriority = keyof CoreBatches\n\nexport function createTableInstance<TGenerics extends TableGenerics>(\n options: TableOptions<TGenerics>\n): TableInstance<TGenerics> {\n if (options.debugAll || options.debugTable) {\n console.info('Creating Table Instance...')\n }\n\n let instance = {\n _features: [\n Columns,\n Rows,\n Cells,\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 } as unknown as CoreInstance<TGenerics>\n\n const defaultOptions = instance._features.reduce((obj, feature) => {\n return Object.assign(obj, feature.getDefaultOptions?.(instance))\n }, {}) as TableOptions<TGenerics>\n\n const mergeOptions = (options: TableOptions<TGenerics>) => {\n if (instance.options.mergeOptions) {\n return instance.options.mergeOptions(defaultOptions, options)\n }\n\n return {\n ...defaultOptions,\n ...options,\n }\n }\n\n const coreInitialState: CoreTableState = {\n // coreProgress: 1,\n }\n\n let initialState = {\n ...coreInitialState,\n ...(options.initialState ?? {}),\n } as TableState\n\n instance._features.forEach(feature => {\n initialState = feature.getInitialState?.(initialState) ?? initialState\n })\n\n const queued: (() => void)[] = []\n let queuedTimeout = false\n\n // let workScheduled = false\n // let working = false\n // let latestCallback: ReturnType<typeof requestIdleCallback>\n // let batchUid = 0\n // const onProgress = () => {}\n // const getBatch = () => {\n // instance.batches.data = instance.batches.data.filter(d => d.tasks.length)\n // instance.batches.facets = instance.batches.facets.filter(\n // d => d.tasks.length\n // )\n\n // return (\n // instance.batches.data.find(d => d.tasks.length) ??\n // instance.batches.facets.find(d => d.tasks.length)\n // )\n // }\n\n // const startWorkLoop = () => {\n // working = true\n\n // const workLoop = (deadline: IdleDeadline) => {\n // const batch = getBatch()\n\n // if (!batch) {\n // working = false\n // return\n // }\n // // Prioritize tasks\n // while (deadline.timeRemaining() > 0 && batch.tasks.length) {\n // batch.tasks.shift()!()\n // }\n\n // onProgress()\n\n // if (working) {\n // latestCallback = requestIdleCallback(workLoop, { timeout: 10000 })\n // }\n // }\n\n // latestCallback = requestIdleCallback(workLoop, { timeout: 10000 })\n // }\n\n // const startWork = () => {\n // if (getBatch() && !working) {\n // if (\n // (process.env.NODE_ENV === 'development' && instance.options.debugAll) ??\n // instance.options.debugTable\n // ) {\n // console.info('Starting work...')\n // }\n // startWorkLoop()\n // }\n // }\n\n // const stopWork = () => {\n // if (working) {\n // if (\n // (process.env.NODE_ENV === 'development' && instance.options.debugAll) ??\n // instance.options.debugTable\n // ) {\n // console.info('Stopping work...')\n // }\n\n // working = false\n // cancelIdleCallback(latestCallback)\n // }\n // }\n\n const midInstance: CoreInstance<TGenerics> = {\n ...instance,\n // init: () => {\n // startWork()\n // },\n // willUpdate: () => {\n // startWork()\n // },\n // destroy: () => {\n // stopWork()\n // },\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 // batches: {\n // data: [],\n // facets: [],\n // },\n // createBatch: priority => {\n // const batchId = batchUid++\n // let canceled: boolean\n\n // const batch: Batch = {\n // id: batchId,\n // priority,\n // tasks: [],\n // schedule: cb => {\n // if (canceled) return\n // batch.tasks.push(cb)\n\n // if (!working && !workScheduled) {\n // workScheduled = true\n // instance.queue(() => {\n // workScheduled = false\n // instance.setState(old => ({ ...old }))\n // })\n // }\n // },\n // cancel: () => {\n // canceled = true\n // batch.tasks = []\n // instance.batches[priority] = instance.batches[priority].filter(\n // b => b.id !== batchId\n // )\n // },\n // }\n\n // instance.batches[priority].push(batch)\n\n // return batch\n // },\n reset: () => {\n instance.setState(instance.initialState)\n },\n setOptions: updater => {\n const newOptions = functionalUpdate(updater, instance.options)\n instance.options = mergeOptions(newOptions)\n },\n _render: (template, props) => {\n if (typeof instance.options.render === 'function') {\n return instance.options.render(template, props)\n }\n\n if (typeof template === 'function') {\n return (template as Function)(props)\n }\n\n return template\n },\n\n getState: () => {\n return instance.options.state as TableState\n },\n\n setState: (updater: Updater<TableState>) => {\n instance.options.onStateChange?.(updater)\n },\n\n // getOverallProgress: () => {\n // const { coreProgress, filtersProgress, facetProgress } =\n // instance.getState()\n\n // return mean(() =>\n // [coreProgress, filtersProgress].filter(d => d < 1)\n // ) as number\n // },\n // getProgressStage: () => {\n // const { coreProgress, filtersProgress, facetProgress } =\n // instance.getState()\n\n // if (coreProgress < 1) {\n // return 'coreRowModel'\n // }\n\n // if (filtersProgress < 1) {\n // return 'filteredRowModel'\n // }\n\n // if (Object.values(facetProgress).some(d => d < 1)) {\n // return 'facetedRowModel'\n // }\n // },\n }\n\n instance = Object.assign(instance, midInstance)\n\n instance._features.forEach(feature => {\n return Object.assign(instance, feature.createInstance?.(instance))\n })\n\n return instance as TableInstance<TGenerics>\n}\n"],"names":["createTableInstance","options","debugAll","debugTable","console","info","instance","_features","Columns","Rows","Cells","Headers","Visibility","Ordering","Pinning","Filters","Sorting","Grouping","Expanding","Pagination","RowSelection","ColumnSizing","defaultOptions","reduce","obj","feature","Object","assign","getDefaultOptions","mergeOptions","coreInitialState","initialState","forEach","getInitialState","queued","queuedTimeout","midInstance","_queue","cb","push","Promise","resolve","then","length","shift","catch","error","setTimeout","reset","setState","setOptions","updater","newOptions","functionalUpdate","_render","template","props","render","getState","state","onStateChange","createInstance"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"core.js","sources":["../../src/core.ts"],"sourcesContent":["import { functionalUpdate, RequiredKeys } from './utils'\n\nimport {\n Updater,\n TableOptions,\n TableState,\n TableInstance,\n Renderable,\n TableFeature,\n TableGenerics,\n InitialTableState,\n} from './types'\n\nimport { Columns } from './features/Columns'\nimport { Rows } from './features/Rows'\nimport { Cells } from './features/Cells'\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'\nimport { Headers } from './features/Headers'\n//\n\nexport type CoreTableState = {\n // coreProgress: number\n}\n\nexport type CoreOptions<TGenerics extends TableGenerics> = {\n data: TGenerics['Row'][]\n state: Partial<TableState>\n onStateChange: (updater: Updater<TableState>) => void\n render: TGenerics['Renderer']\n debugAll?: boolean\n debugTable?: boolean\n debugHeaders?: boolean\n debugColumns?: boolean\n debugRows?: boolean\n initialState?: InitialTableState\n autoResetAll?: boolean\n mergeOptions?: <T>(defaultOptions: T, options: Partial<T>) => T\n meta?: TGenerics['TableMeta']\n // keepPreviousData?: boolean\n}\n\nexport type CoreInstance<TGenerics extends TableGenerics> = {\n // generics: TGenerics\n initialState: TableState\n reset: () => void\n options: RequiredKeys<TableOptions<TGenerics>, 'state'>\n setOptions: (newOptions: Updater<TableOptions<TGenerics>>) => void\n getState: () => TableState\n setState: (updater: Updater<TableState>) => void\n _queue: (cb: () => void) => void\n _render: <TProps>(\n template: Renderable<TGenerics, TProps>,\n props: TProps\n ) => string | null | TGenerics['Rendered']\n _features: readonly TableFeature[]\n // getOverallProgress: () => number\n // getProgressStage: () =>\n // | undefined\n // | 'coreRowModel'\n // | 'filteredRowModel'\n // | 'facetedRowModel'\n // createBatch: (priority: keyof CoreBatches) => Batch\n // init: () => void\n // willUpdate: () => void\n // destroy: () => void\n // batches: CoreBatches\n}\n\n// export type Batch = {\n// id: number\n// priority: keyof CoreBatches\n// tasks: (() => void)[]\n// schedule: (cb: () => void) => void\n// cancel: () => void\n// }\n\n// type CoreBatches = {\n// data: Batch[]\n// facets: Batch[]\n// }\n\nexport function createTableInstance<TGenerics extends TableGenerics>(\n options: TableOptions<TGenerics>\n): TableInstance<TGenerics> {\n if (options.debugAll || options.debugTable) {\n console.info('Creating Table Instance...')\n }\n\n let instance = {\n _features: [\n Columns,\n Rows,\n Cells,\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 } as unknown as CoreInstance<TGenerics>\n\n const defaultOptions = instance._features.reduce((obj, feature) => {\n return Object.assign(obj, feature.getDefaultOptions?.(instance))\n }, {}) as TableOptions<TGenerics>\n\n const mergeOptions = (options: TableOptions<TGenerics>) => {\n if (instance.options.mergeOptions) {\n return instance.options.mergeOptions(defaultOptions, options)\n }\n\n return {\n ...defaultOptions,\n ...options,\n }\n }\n\n const coreInitialState: CoreTableState = {\n // coreProgress: 1,\n }\n\n let initialState = {\n ...coreInitialState,\n ...(options.initialState ?? {}),\n } as TableState\n\n instance._features.forEach(feature => {\n initialState = feature.getInitialState?.(initialState) ?? initialState\n })\n\n const queued: (() => void)[] = []\n let queuedTimeout = false\n\n const midInstance: CoreInstance<TGenerics> = {\n ...instance,\n // init: () => {\n // startWork()\n // },\n // willUpdate: () => {\n // startWork()\n // },\n // destroy: () => {\n // stopWork()\n // },\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 instance.setState(instance.initialState)\n },\n setOptions: updater => {\n const newOptions = functionalUpdate(updater, instance.options)\n instance.options = mergeOptions(newOptions)\n },\n _render: (template, props) => {\n if (typeof instance.options.render === 'function') {\n return instance.options.render(template, props)\n }\n\n if (typeof template === 'function') {\n return (template as Function)(props)\n }\n\n return template\n },\n\n getState: () => {\n return instance.options.state as TableState\n },\n\n setState: (updater: Updater<TableState>) => {\n instance.options.onStateChange?.(updater)\n },\n\n // getOverallProgress: () => {\n // const { coreProgress, filtersProgress, facetProgress } =\n // instance.getState()\n\n // return mean(() =>\n // [coreProgress, filtersProgress].filter(d => d < 1)\n // ) as number\n // },\n // getProgressStage: () => {\n // const { coreProgress, filtersProgress, facetProgress } =\n // instance.getState()\n\n // if (coreProgress < 1) {\n // return 'coreRowModel'\n // }\n\n // if (filtersProgress < 1) {\n // return 'filteredRowModel'\n // }\n\n // if (Object.values(facetProgress).some(d => d < 1)) {\n // return 'facetedRowModel'\n // }\n // },\n }\n\n instance = Object.assign(instance, midInstance)\n\n instance._features.forEach(feature => {\n return Object.assign(instance, feature.createInstance?.(instance))\n })\n\n return instance as TableInstance<TGenerics>\n}\n"],"names":["createTableInstance","options","debugAll","debugTable","console","info","instance","_features","Columns","Rows","Cells","Headers","Visibility","Ordering","Pinning","Filters","Sorting","Grouping","Expanding","Pagination","RowSelection","ColumnSizing","defaultOptions","reduce","obj","feature","Object","assign","getDefaultOptions","mergeOptions","coreInitialState","initialState","forEach","getInitialState","queued","queuedTimeout","midInstance","_queue","cb","push","Promise","resolve","then","length","shift","catch","error","setTimeout","reset","setState","setOptions","updater","newOptions","functionalUpdate","_render","template","props","render","getState","state","onStateChange","createInstance"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6EA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEO,SAASA,mBAAT,CACLC,OADK,EAEqB;AAAA,EAAA,IAAA,qBAAA,CAAA;;AAC1B,EAAA,IAAIA,OAAO,CAACC,QAAR,IAAoBD,OAAO,CAACE,UAAhC,EAA4C;AAC1CC,IAAAA,OAAO,CAACC,IAAR,CAAa,4BAAb,CAAA,CAAA;AACD,GAAA;;AAED,EAAA,IAAIC,QAAQ,GAAG;AACbC,IAAAA,SAAS,EAAE,CACTC,eADS,EAETC,SAFS,EAGTC,WAHS,EAITC,eAJS,EAKTC,qBALS,EAMTC,iBANS,EAOTC,eAPS,EAQTC,eARS,EASTC,eATS,EAUTC,iBAVS,EAWTC,mBAXS,EAYTC,qBAZS,EAaTC,yBAbS,EAcTC,yBAdS,CAAA;AADE,GAAf,CAAA;;AAmBA,EAAA,MAAMC,cAAc,GAAGhB,QAAQ,CAACC,SAAT,CAAmBgB,MAAnB,CAA0B,CAACC,GAAD,EAAMC,OAAN,KAAkB;AACjE,IAAA,OAAOC,MAAM,CAACC,MAAP,CAAcH,GAAd,EAAmBC,OAAO,CAACG,iBAA3B,IAAA,IAAA,GAAA,KAAA,CAAA,GAAmBH,OAAO,CAACG,iBAAR,CAA4BtB,QAA5B,CAAnB,CAAP,CAAA;AACD,GAFsB,EAEpB,EAFoB,CAAvB,CAAA;;AAIA,EAAMuB,MAAAA,YAAY,GAAI5B,OAAD,IAAsC;AACzD,IAAA,IAAIK,QAAQ,CAACL,OAAT,CAAiB4B,YAArB,EAAmC;AACjC,MAAOvB,OAAAA,QAAQ,CAACL,OAAT,CAAiB4B,YAAjB,CAA8BP,cAA9B,EAA8CrB,OAA9C,CAAP,CAAA;AACD,KAAA;;AAED,IAAO,OAAA,EACL,GAAGqB,cADE;AAEL,MAAGrB,GAAAA,OAAAA;AAFE,KAAP,CAAA;AAID,GATD,CAAA;;AAWA,EAAM6B,MAAAA,gBAAgC,GAAG;AAAA,GAAzC,CAAA;AAIA,EAAA,IAAIC,YAAY,GAAG,EACjB,GAAGD,gBADc;AAEjB,IAAA,IAAA,CAAA,qBAAA,GAAI7B,OAAO,CAAC8B,YAAZ,KAAA,IAAA,GAAA,qBAAA,GAA4B,EAA5B,CAAA;AAFiB,GAAnB,CAAA;;AAKAzB,EAAAA,QAAQ,CAACC,SAAT,CAAmByB,OAAnB,CAA2BP,OAAO,IAAI;AAAA,IAAA,IAAA,qBAAA,CAAA;;AACpCM,IAAAA,YAAY,GAAA,CAAA,qBAAA,GAAGN,OAAO,CAACQ,eAAX,IAAA,IAAA,GAAA,KAAA,CAAA,GAAGR,OAAO,CAACQ,eAAR,CAA0BF,YAA1B,CAAH,oCAA8CA,YAA1D,CAAA;AACD,GAFD,CAAA,CAAA;;AAIA,EAAMG,MAAAA,MAAsB,GAAG,EAA/B,CAAA;AACA,EAAIC,IAAAA,aAAa,GAAG,KAApB,CAAA;AAEA,EAAA,MAAMC,WAAoC,GAAG,EAC3C,GAAG9B,QADwC;AAE3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACAL,IAAAA,OAAO,EAAE,EACP,GAAGqB,cADI;AAEP,MAAGrB,GAAAA,OAAAA;AAFI,KAXkC;AAe3C8B,IAAAA,YAf2C;AAgB3CM,IAAAA,MAAM,EAAEC,EAAE,IAAI;AACZJ,MAAAA,MAAM,CAACK,IAAP,CAAYD,EAAZ,CAAA,CAAA;;AAEA,MAAI,IAAA,CAACH,aAAL,EAAoB;AAClBA,QAAAA,aAAa,GAAG,IAAhB,CADkB;AAIlB;;AACAK,QAAAA,OAAO,CAACC,OAAR,EACGC,CAAAA,IADH,CACQ,MAAM;AACV,UAAOR,OAAAA,MAAM,CAACS,MAAd,EAAsB;AACpBT,YAAAA,MAAM,CAACU,KAAP,EAAA,EAAA,CAAA;AACD,WAAA;;AACDT,UAAAA,aAAa,GAAG,KAAhB,CAAA;AACD,SANH,EAOGU,KAPH,CAOSC,KAAK,IACVC,UAAU,CAAC,MAAM;AACf,UAAA,MAAMD,KAAN,CAAA;AACD,SAFS,CARd,CAAA,CAAA;AAYD,OAAA;AACF,KArC0C;AAsC3CE,IAAAA,KAAK,EAAE,MAAM;AACX1C,MAAAA,QAAQ,CAAC2C,QAAT,CAAkB3C,QAAQ,CAACyB,YAA3B,CAAA,CAAA;AACD,KAxC0C;AAyC3CmB,IAAAA,UAAU,EAAEC,OAAO,IAAI;AACrB,MAAMC,MAAAA,UAAU,GAAGC,sBAAgB,CAACF,OAAD,EAAU7C,QAAQ,CAACL,OAAnB,CAAnC,CAAA;AACAK,MAAAA,QAAQ,CAACL,OAAT,GAAmB4B,YAAY,CAACuB,UAAD,CAA/B,CAAA;AACD,KA5C0C;AA6C3CE,IAAAA,OAAO,EAAE,CAACC,QAAD,EAAWC,KAAX,KAAqB;AAC5B,MAAI,IAAA,OAAOlD,QAAQ,CAACL,OAAT,CAAiBwD,MAAxB,KAAmC,UAAvC,EAAmD;AACjD,QAAOnD,OAAAA,QAAQ,CAACL,OAAT,CAAiBwD,MAAjB,CAAwBF,QAAxB,EAAkCC,KAAlC,CAAP,CAAA;AACD,OAAA;;AAED,MAAA,IAAI,OAAOD,QAAP,KAAoB,UAAxB,EAAoC;AAClC,QAAQA,OAAAA,QAAD,CAAuBC,KAAvB,CAAP,CAAA;AACD,OAAA;;AAED,MAAA,OAAOD,QAAP,CAAA;AACD,KAvD0C;AAyD3CG,IAAAA,QAAQ,EAAE,MAAM;AACd,MAAA,OAAOpD,QAAQ,CAACL,OAAT,CAAiB0D,KAAxB,CAAA;AACD,KA3D0C;AA6D3CV,IAAAA,QAAQ,EAAGE,OAAD,IAAkC;AAC1C7C,MAAAA,QAAQ,CAACL,OAAT,CAAiB2D,aAAjB,IAAA,IAAA,GAAA,KAAA,CAAA,GAAAtD,QAAQ,CAACL,OAAT,CAAiB2D,aAAjB,CAAiCT,OAAjC,CAAA,CAAA;AACD,KA/D0C;AAkE3C;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;;AAxF2C,GAA7C,CAAA;AA2FA7C,EAAAA,QAAQ,GAAGoB,MAAM,CAACC,MAAP,CAAcrB,QAAd,EAAwB8B,WAAxB,CAAX,CAAA;;AAEA9B,EAAAA,QAAQ,CAACC,SAAT,CAAmByB,OAAnB,CAA2BP,OAAO,IAAI;AACpC,IAAA,OAAOC,MAAM,CAACC,MAAP,CAAcrB,QAAd,EAAwBmB,OAAO,CAACoC,cAAhC,IAAA,IAAA,GAAA,KAAA,CAAA,GAAwBpC,OAAO,CAACoC,cAAR,CAAyBvD,QAAzB,CAAxB,CAAP,CAAA;AACD,GAFD,CAAA,CAAA;;AAIA,EAAA,OAAOA,QAAP,CAAA;AACD;;;;"}
|
|
@@ -16,69 +16,55 @@ var utils = require('../utils.js');
|
|
|
16
16
|
|
|
17
17
|
function getCoreRowModel() {
|
|
18
18
|
return instance => utils.memo(() => [instance.options.data], data => {
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
19
|
+
const rowModel = {
|
|
20
|
+
rows: [],
|
|
21
|
+
flatRows: [],
|
|
22
|
+
rowsById: {}
|
|
23
|
+
};
|
|
24
|
+
let rows;
|
|
25
|
+
let row;
|
|
26
|
+
let originalRow;
|
|
24
27
|
|
|
25
|
-
const
|
|
28
|
+
const accessRows = function (originalRows, depth, parent) {
|
|
26
29
|
if (depth === void 0) {
|
|
27
30
|
depth = 0;
|
|
28
31
|
}
|
|
29
32
|
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
if (!id) {
|
|
33
|
-
if (process.env.NODE_ENV !== 'production') {
|
|
34
|
-
throw new Error("getRowId expected an ID, but got " + id);
|
|
35
|
-
}
|
|
36
|
-
}
|
|
33
|
+
rows = [];
|
|
37
34
|
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
} // Make the row
|
|
35
|
+
for (let i = 0; i < originalRows.length; i++) {
|
|
36
|
+
originalRow = originalRows[i]; // This could be an expensive check at scale, so we should move it somewhere else, but where?
|
|
37
|
+
// if (!id) {
|
|
38
|
+
// if (process.env.NODE_ENV !== 'production') {
|
|
39
|
+
// throw new Error(`getRowId expected an ID, but got ${id}`)
|
|
40
|
+
// }
|
|
41
|
+
// }
|
|
42
|
+
// Make the row
|
|
47
43
|
|
|
44
|
+
row = instance.createRow(instance.getRowId(originalRow, i, parent), originalRow, i, depth); // Keep track of every row in a flat array
|
|
48
45
|
|
|
49
|
-
|
|
46
|
+
rowModel.flatRows.push(row); // Also keep track of every row by its ID
|
|
50
47
|
|
|
51
|
-
|
|
48
|
+
rowModel.rowsById[row.id] = row; // Push instance row into parent
|
|
52
49
|
|
|
53
|
-
|
|
50
|
+
rows.push(row); // Get the original subrows
|
|
54
51
|
|
|
55
|
-
|
|
52
|
+
if (instance.options.getSubRows) {
|
|
53
|
+
var _row$originalSubRows;
|
|
56
54
|
|
|
57
|
-
|
|
58
|
-
const originalSubRows = instance.options.getSubRows(originalRow, rowIndex); // Then recursively access them
|
|
55
|
+
row.originalSubRows = instance.options.getSubRows(originalRow, i); // Then recursively access them
|
|
59
56
|
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
const subRows = [];
|
|
63
|
-
|
|
64
|
-
for (let i = 0; i < row.originalSubRows.length; i++) {
|
|
65
|
-
accessRow(row.originalSubRows[i], i, depth + 1, subRows, row);
|
|
57
|
+
if ((_row$originalSubRows = row.originalSubRows) != null && _row$originalSubRows.length) {
|
|
58
|
+
row.subRows = accessRows(row.originalSubRows, depth + 1, row);
|
|
66
59
|
}
|
|
67
|
-
|
|
68
|
-
row.subRows = subRows;
|
|
69
60
|
}
|
|
70
61
|
}
|
|
71
|
-
};
|
|
72
62
|
|
|
73
|
-
|
|
74
|
-
accessRow(data[i], i, 0, rows);
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
return {
|
|
78
|
-
rows,
|
|
79
|
-
flatRows,
|
|
80
|
-
rowsById
|
|
63
|
+
return rows;
|
|
81
64
|
};
|
|
65
|
+
|
|
66
|
+
rowModel.rows = accessRows(data);
|
|
67
|
+
return rowModel;
|
|
82
68
|
}, {
|
|
83
69
|
key: process.env.NODE_ENV === 'development' && 'getRowModel',
|
|
84
70
|
debug: () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getCoreRowModel.js","sources":["../../../src/utils/getCoreRowModel.ts"],"sourcesContent":["import { 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
|
|
1
|
+
{"version":3,"file":"getCoreRowModel.js","sources":["../../../src/utils/getCoreRowModel.ts"],"sourcesContent":["import { 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 let rows\n let row\n let originalRow\n\n const accessRows = (\n originalRows: TGenerics['Row'][],\n depth = 0,\n parent?: Row<TGenerics>\n ): Row<TGenerics>[] => {\n rows = []\n\n for (let i = 0; i < originalRows.length; i++) {\n originalRow = originalRows[i]\n\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 row = instance.createRow(\n instance.getRowId(originalRow, i, parent),\n originalRow,\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(originalRow, i)\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","row","originalRow","accessRows","originalRows","depth","parent","i","length","createRow","getRowId","push","id","getSubRows","originalSubRows","subRows","key","process","env","NODE_ENV","debug","debugAll","debugTable","onChange","_autoResetPageIndex"],"mappings":";;;;;;;;;;;;;;;;AAGO,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,IAAA,IAAIF,IAAJ,CAAA;AACA,IAAA,IAAIG,GAAJ,CAAA;AACA,IAAA,IAAIC,WAAJ,CAAA;;AAEA,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;;AACrBP,MAAAA,IAAI,GAAG,EAAP,CAAA;;AAEA,MAAA,KAAK,IAAIS,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGH,YAAY,CAACI,MAAjC,EAAyCD,CAAC,EAA1C,EAA8C;AAC5CL,QAAAA,WAAW,GAAGE,YAAY,CAACG,CAAD,CAA1B,CAD4C;AAI5C;AACA;AACA;AACA;AACA;AAEA;;AACAN,QAAAA,GAAG,GAAGR,QAAQ,CAACgB,SAAT,CACJhB,QAAQ,CAACiB,QAAT,CAAkBR,WAAlB,EAA+BK,CAA/B,EAAkCD,MAAlC,CADI,EAEJJ,WAFI,EAGJK,CAHI,EAIJF,KAJI,CAAN,CAX4C;;AAmB5CR,QAAAA,QAAQ,CAACE,QAAT,CAAkBY,IAAlB,CAAuBV,GAAvB,EAnB4C;;AAqB5CJ,QAAAA,QAAQ,CAACG,QAAT,CAAkBC,GAAG,CAACW,EAAtB,CAAA,GAA4BX,GAA5B,CArB4C;;AAuB5CH,QAAAA,IAAI,CAACa,IAAL,CAAUV,GAAV,EAvB4C;;AA0B5C,QAAA,IAAIR,QAAQ,CAACE,OAAT,CAAiBkB,UAArB,EAAiC;AAAA,UAAA,IAAA,oBAAA,CAAA;;AAC/BZ,UAAAA,GAAG,CAACa,eAAJ,GAAsBrB,QAAQ,CAACE,OAAT,CAAiBkB,UAAjB,CAA4BX,WAA5B,EAAyCK,CAAzC,CAAtB,CAD+B;;AAI/B,UAAA,IAAA,CAAA,oBAAA,GAAIN,GAAG,CAACa,eAAR,KAAI,IAAA,IAAA,oBAAA,CAAqBN,MAAzB,EAAiC;AAC/BP,YAAAA,GAAG,CAACc,OAAJ,GAAcZ,UAAU,CAACF,GAAG,CAACa,eAAL,EAAsBT,KAAK,GAAG,CAA9B,EAAiCJ,GAAjC,CAAxB,CAAA;AACD,WAAA;AACF,SAAA;AACF,OAAA;;AAED,MAAA,OAAOH,IAAP,CAAA;AACD,KA5CD,CAAA;;AA8CAD,IAAAA,QAAQ,CAACC,IAAT,GAAgBK,UAAU,CAACP,IAAD,CAA1B,CAAA;AAEA,IAAA,OAAOC,QAAP,CAAA;AACD,GApEC,EAqEF;AACEmB,IAAAA,GAAG,EAAEC,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,aAAzB,IAA0C,aADjD;AAEEC,IAAAA,KAAK,EAAE,MAAA;AAAA,MAAA,IAAA,qBAAA,CAAA;;AAAA,MAAM3B,OAAAA,CAAAA,qBAAAA,GAAAA,QAAQ,CAACE,OAAT,CAAiB0B,QAAvB,oCAAmC5B,QAAQ,CAACE,OAAT,CAAiB2B,UAApD,CAAA;AAAA,KAFT;AAGEC,IAAAA,QAAQ,EAAE,MAAM;AACd9B,MAAAA,QAAQ,CAAC+B,mBAAT,EAAA,CAAA;AACD,KAAA;AALH,GArEE,CADN,CAAA;AA8ED;;;;"}
|
package/build/esm/index.js
CHANGED
|
@@ -3024,7 +3024,6 @@ function buildHeaderGroups(allColumns, columnsToGroup, instance, headerFamily) {
|
|
|
3024
3024
|
// data: Batch[]
|
|
3025
3025
|
// facets: Batch[]
|
|
3026
3026
|
// }
|
|
3027
|
-
// export type TaskPriority = keyof CoreBatches
|
|
3028
3027
|
function createTableInstance(options) {
|
|
3029
3028
|
var _options$initialState;
|
|
3030
3029
|
|
|
@@ -3063,64 +3062,7 @@ function createTableInstance(options) {
|
|
|
3063
3062
|
});
|
|
3064
3063
|
|
|
3065
3064
|
const queued = [];
|
|
3066
|
-
let queuedTimeout = false;
|
|
3067
|
-
// let working = false
|
|
3068
|
-
// let latestCallback: ReturnType<typeof requestIdleCallback>
|
|
3069
|
-
// let batchUid = 0
|
|
3070
|
-
// const onProgress = () => {}
|
|
3071
|
-
// const getBatch = () => {
|
|
3072
|
-
// instance.batches.data = instance.batches.data.filter(d => d.tasks.length)
|
|
3073
|
-
// instance.batches.facets = instance.batches.facets.filter(
|
|
3074
|
-
// d => d.tasks.length
|
|
3075
|
-
// )
|
|
3076
|
-
// return (
|
|
3077
|
-
// instance.batches.data.find(d => d.tasks.length) ??
|
|
3078
|
-
// instance.batches.facets.find(d => d.tasks.length)
|
|
3079
|
-
// )
|
|
3080
|
-
// }
|
|
3081
|
-
// const startWorkLoop = () => {
|
|
3082
|
-
// working = true
|
|
3083
|
-
// const workLoop = (deadline: IdleDeadline) => {
|
|
3084
|
-
// const batch = getBatch()
|
|
3085
|
-
// if (!batch) {
|
|
3086
|
-
// working = false
|
|
3087
|
-
// return
|
|
3088
|
-
// }
|
|
3089
|
-
// // Prioritize tasks
|
|
3090
|
-
// while (deadline.timeRemaining() > 0 && batch.tasks.length) {
|
|
3091
|
-
// batch.tasks.shift()!()
|
|
3092
|
-
// }
|
|
3093
|
-
// onProgress()
|
|
3094
|
-
// if (working) {
|
|
3095
|
-
// latestCallback = requestIdleCallback(workLoop, { timeout: 10000 })
|
|
3096
|
-
// }
|
|
3097
|
-
// }
|
|
3098
|
-
// latestCallback = requestIdleCallback(workLoop, { timeout: 10000 })
|
|
3099
|
-
// }
|
|
3100
|
-
// const startWork = () => {
|
|
3101
|
-
// if (getBatch() && !working) {
|
|
3102
|
-
// if (
|
|
3103
|
-
// (process.env.NODE_ENV === 'development' && instance.options.debugAll) ??
|
|
3104
|
-
// instance.options.debugTable
|
|
3105
|
-
// ) {
|
|
3106
|
-
// console.info('Starting work...')
|
|
3107
|
-
// }
|
|
3108
|
-
// startWorkLoop()
|
|
3109
|
-
// }
|
|
3110
|
-
// }
|
|
3111
|
-
// const stopWork = () => {
|
|
3112
|
-
// if (working) {
|
|
3113
|
-
// if (
|
|
3114
|
-
// (process.env.NODE_ENV === 'development' && instance.options.debugAll) ??
|
|
3115
|
-
// instance.options.debugTable
|
|
3116
|
-
// ) {
|
|
3117
|
-
// console.info('Stopping work...')
|
|
3118
|
-
// }
|
|
3119
|
-
// working = false
|
|
3120
|
-
// cancelIdleCallback(latestCallback)
|
|
3121
|
-
// }
|
|
3122
|
-
// }
|
|
3123
|
-
|
|
3065
|
+
let queuedTimeout = false;
|
|
3124
3066
|
const midInstance = { ...instance,
|
|
3125
3067
|
// init: () => {
|
|
3126
3068
|
// startWork()
|
|
@@ -3153,39 +3095,6 @@ function createTableInstance(options) {
|
|
|
3153
3095
|
}));
|
|
3154
3096
|
}
|
|
3155
3097
|
},
|
|
3156
|
-
// batches: {
|
|
3157
|
-
// data: [],
|
|
3158
|
-
// facets: [],
|
|
3159
|
-
// },
|
|
3160
|
-
// createBatch: priority => {
|
|
3161
|
-
// const batchId = batchUid++
|
|
3162
|
-
// let canceled: boolean
|
|
3163
|
-
// const batch: Batch = {
|
|
3164
|
-
// id: batchId,
|
|
3165
|
-
// priority,
|
|
3166
|
-
// tasks: [],
|
|
3167
|
-
// schedule: cb => {
|
|
3168
|
-
// if (canceled) return
|
|
3169
|
-
// batch.tasks.push(cb)
|
|
3170
|
-
// if (!working && !workScheduled) {
|
|
3171
|
-
// workScheduled = true
|
|
3172
|
-
// instance.queue(() => {
|
|
3173
|
-
// workScheduled = false
|
|
3174
|
-
// instance.setState(old => ({ ...old }))
|
|
3175
|
-
// })
|
|
3176
|
-
// }
|
|
3177
|
-
// },
|
|
3178
|
-
// cancel: () => {
|
|
3179
|
-
// canceled = true
|
|
3180
|
-
// batch.tasks = []
|
|
3181
|
-
// instance.batches[priority] = instance.batches[priority].filter(
|
|
3182
|
-
// b => b.id !== batchId
|
|
3183
|
-
// )
|
|
3184
|
-
// },
|
|
3185
|
-
// }
|
|
3186
|
-
// instance.batches[priority].push(batch)
|
|
3187
|
-
// return batch
|
|
3188
|
-
// },
|
|
3189
3098
|
reset: () => {
|
|
3190
3099
|
instance.setState(instance.initialState);
|
|
3191
3100
|
},
|
|
@@ -3296,69 +3205,55 @@ function createTable(_, __, options) {
|
|
|
3296
3205
|
|
|
3297
3206
|
function getCoreRowModel() {
|
|
3298
3207
|
return instance => memo(() => [instance.options.data], data => {
|
|
3299
|
-
|
|
3300
|
-
|
|
3301
|
-
|
|
3302
|
-
|
|
3303
|
-
|
|
3208
|
+
const rowModel = {
|
|
3209
|
+
rows: [],
|
|
3210
|
+
flatRows: [],
|
|
3211
|
+
rowsById: {}
|
|
3212
|
+
};
|
|
3213
|
+
let rows;
|
|
3214
|
+
let row;
|
|
3215
|
+
let originalRow;
|
|
3304
3216
|
|
|
3305
|
-
const
|
|
3217
|
+
const accessRows = function (originalRows, depth, parent) {
|
|
3306
3218
|
if (depth === void 0) {
|
|
3307
3219
|
depth = 0;
|
|
3308
3220
|
}
|
|
3309
3221
|
|
|
3310
|
-
|
|
3311
|
-
|
|
3312
|
-
if (!id) {
|
|
3313
|
-
if (process.env.NODE_ENV !== 'production') {
|
|
3314
|
-
throw new Error("getRowId expected an ID, but got " + id);
|
|
3315
|
-
}
|
|
3316
|
-
}
|
|
3317
|
-
|
|
3318
|
-
const values = {};
|
|
3319
|
-
|
|
3320
|
-
for (let i = 0; i < leafColumns.length; i++) {
|
|
3321
|
-
const column = leafColumns[i];
|
|
3322
|
-
|
|
3323
|
-
if (column && column.accessorFn) {
|
|
3324
|
-
values[column.id] = column.accessorFn(originalRow, rowIndex);
|
|
3325
|
-
}
|
|
3326
|
-
} // Make the row
|
|
3222
|
+
rows = [];
|
|
3327
3223
|
|
|
3224
|
+
for (let i = 0; i < originalRows.length; i++) {
|
|
3225
|
+
originalRow = originalRows[i]; // This could be an expensive check at scale, so we should move it somewhere else, but where?
|
|
3226
|
+
// if (!id) {
|
|
3227
|
+
// if (process.env.NODE_ENV !== 'production') {
|
|
3228
|
+
// throw new Error(`getRowId expected an ID, but got ${id}`)
|
|
3229
|
+
// }
|
|
3230
|
+
// }
|
|
3231
|
+
// Make the row
|
|
3328
3232
|
|
|
3329
|
-
|
|
3233
|
+
row = instance.createRow(instance.getRowId(originalRow, i, parent), originalRow, i, depth); // Keep track of every row in a flat array
|
|
3330
3234
|
|
|
3331
|
-
|
|
3235
|
+
rowModel.flatRows.push(row); // Also keep track of every row by its ID
|
|
3332
3236
|
|
|
3333
|
-
|
|
3237
|
+
rowModel.rowsById[row.id] = row; // Push instance row into parent
|
|
3334
3238
|
|
|
3335
|
-
|
|
3239
|
+
rows.push(row); // Get the original subrows
|
|
3336
3240
|
|
|
3337
|
-
|
|
3338
|
-
|
|
3241
|
+
if (instance.options.getSubRows) {
|
|
3242
|
+
var _row$originalSubRows;
|
|
3339
3243
|
|
|
3340
|
-
|
|
3341
|
-
row.originalSubRows = originalSubRows;
|
|
3342
|
-
const subRows = [];
|
|
3244
|
+
row.originalSubRows = instance.options.getSubRows(originalRow, i); // Then recursively access them
|
|
3343
3245
|
|
|
3344
|
-
|
|
3345
|
-
|
|
3246
|
+
if ((_row$originalSubRows = row.originalSubRows) != null && _row$originalSubRows.length) {
|
|
3247
|
+
row.subRows = accessRows(row.originalSubRows, depth + 1, row);
|
|
3346
3248
|
}
|
|
3347
|
-
|
|
3348
|
-
row.subRows = subRows;
|
|
3349
3249
|
}
|
|
3350
3250
|
}
|
|
3351
|
-
};
|
|
3352
|
-
|
|
3353
|
-
for (let i = 0; i < data.length; i++) {
|
|
3354
|
-
accessRow(data[i], i, 0, rows);
|
|
3355
|
-
}
|
|
3356
3251
|
|
|
3357
|
-
|
|
3358
|
-
rows,
|
|
3359
|
-
flatRows,
|
|
3360
|
-
rowsById
|
|
3252
|
+
return rows;
|
|
3361
3253
|
};
|
|
3254
|
+
|
|
3255
|
+
rowModel.rows = accessRows(data);
|
|
3256
|
+
return rowModel;
|
|
3362
3257
|
}, {
|
|
3363
3258
|
key: process.env.NODE_ENV === 'development' && 'getRowModel',
|
|
3364
3259
|
debug: () => {
|