@tanstack/table-core 8.0.12 → 8.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (127) hide show
  1. package/build/cjs/core/cell.js +13 -13
  2. package/build/cjs/core/cell.js.map +1 -1
  3. package/build/cjs/core/column.js +20 -21
  4. package/build/cjs/core/column.js.map +1 -1
  5. package/build/cjs/core/headers.js +63 -68
  6. package/build/cjs/core/headers.js.map +1 -1
  7. package/build/cjs/core/row.js +16 -11
  8. package/build/cjs/core/row.js.map +1 -1
  9. package/build/cjs/core/{instance.js → table.js} +46 -57
  10. package/build/cjs/core/table.js.map +1 -0
  11. package/build/cjs/features/ColumnSizing.js +36 -36
  12. package/build/cjs/features/ColumnSizing.js.map +1 -1
  13. package/build/cjs/features/Expanding.js +34 -34
  14. package/build/cjs/features/Expanding.js.map +1 -1
  15. package/build/cjs/features/Filters.js +46 -52
  16. package/build/cjs/features/Filters.js.map +1 -1
  17. package/build/cjs/features/Grouping.js +24 -49
  18. package/build/cjs/features/Grouping.js.map +1 -1
  19. package/build/cjs/features/Ordering.js +8 -8
  20. package/build/cjs/features/Ordering.js.map +1 -1
  21. package/build/cjs/features/Pagination.js +37 -37
  22. package/build/cjs/features/Pagination.js.map +1 -1
  23. package/build/cjs/features/Pinning.js +33 -33
  24. package/build/cjs/features/Pinning.js.map +1 -1
  25. package/build/cjs/features/RowSelection.js +86 -74
  26. package/build/cjs/features/RowSelection.js.map +1 -1
  27. package/build/cjs/features/Sorting.js +36 -40
  28. package/build/cjs/features/Sorting.js.map +1 -1
  29. package/build/cjs/features/Visibility.js +30 -30
  30. package/build/cjs/features/Visibility.js.map +1 -1
  31. package/build/cjs/index.js +3 -4
  32. package/build/cjs/index.js.map +1 -1
  33. package/build/cjs/utils/filterRowsUtils.js +8 -8
  34. package/build/cjs/utils/filterRowsUtils.js.map +1 -1
  35. package/build/cjs/utils/getCoreRowModel.js +8 -8
  36. package/build/cjs/utils/getCoreRowModel.js.map +1 -1
  37. package/build/cjs/utils/getExpandedRowModel.js +4 -4
  38. package/build/cjs/utils/getExpandedRowModel.js.map +1 -1
  39. package/build/cjs/utils/getFacetedMinMaxValues.js +3 -3
  40. package/build/cjs/utils/getFacetedMinMaxValues.js.map +1 -1
  41. package/build/cjs/utils/getFacetedRowModel.js +4 -4
  42. package/build/cjs/utils/getFacetedRowModel.js.map +1 -1
  43. package/build/cjs/utils/getFacetedUniqueValues.js +3 -3
  44. package/build/cjs/utils/getFacetedUniqueValues.js.map +1 -1
  45. package/build/cjs/utils/getFilteredRowModel.js +8 -8
  46. package/build/cjs/utils/getFilteredRowModel.js.map +1 -1
  47. package/build/cjs/utils/getGroupedRowModel.js +9 -9
  48. package/build/cjs/utils/getGroupedRowModel.js.map +1 -1
  49. package/build/cjs/utils/getPaginationRowModel.js +4 -4
  50. package/build/cjs/utils/getPaginationRowModel.js.map +1 -1
  51. package/build/cjs/utils/getSortedRowModel.js +7 -7
  52. package/build/cjs/utils/getSortedRowModel.js.map +1 -1
  53. package/build/cjs/utils.js +2 -2
  54. package/build/cjs/utils.js.map +1 -1
  55. package/build/esm/index.js +585 -677
  56. package/build/esm/index.js.map +1 -1
  57. package/build/stats-html.html +1 -1
  58. package/build/stats-react.json +352 -377
  59. package/build/types/index.d.ts +761 -29
  60. package/build/umd/index.development.js +586 -678
  61. package/build/umd/index.development.js.map +1 -1
  62. package/build/umd/index.production.js +1 -1
  63. package/build/umd/index.production.js.map +1 -1
  64. package/package.json +1 -1
  65. package/src/core/cell.ts +34 -28
  66. package/src/core/column.ts +83 -72
  67. package/src/core/headers.ts +118 -149
  68. package/src/core/row.ts +31 -25
  69. package/src/core/{instance.ts → table.ts} +85 -116
  70. package/src/features/ColumnSizing.ts +45 -47
  71. package/src/features/Expanding.ts +53 -59
  72. package/src/features/Filters.ts +112 -132
  73. package/src/features/Grouping.ts +63 -112
  74. package/src/features/Ordering.ts +19 -21
  75. package/src/features/Pagination.ts +54 -55
  76. package/src/features/Pinning.ts +49 -61
  77. package/src/features/RowSelection.ts +115 -114
  78. package/src/features/Sorting.ts +57 -72
  79. package/src/features/Visibility.ts +48 -48
  80. package/src/index.ts +1 -2
  81. package/src/types.ts +64 -69
  82. package/src/utils/filterRowsUtils.ts +33 -28
  83. package/src/utils/getCoreRowModel.ts +22 -22
  84. package/src/utils/getExpandedRowModel.ts +15 -15
  85. package/src/utils/getFacetedMinMaxValues.ts +6 -6
  86. package/src/utils/getFacetedRowModel.ts +12 -12
  87. package/src/utils/getFacetedUniqueValues.ts +6 -6
  88. package/src/utils/getFilteredRowModel.ts +17 -17
  89. package/src/utils/getGroupedRowModel.ts +18 -21
  90. package/src/utils/getPaginationRowModel.ts +10 -13
  91. package/src/utils/getSortedRowModel.ts +14 -14
  92. package/src/utils.ts +8 -2
  93. package/build/cjs/core/instance.js.map +0 -1
  94. package/build/cjs/createTable.js +0 -72
  95. package/build/cjs/createTable.js.map +0 -1
  96. package/build/types/aggregationFns.d.ts +0 -13
  97. package/build/types/core/cell.d.ts +0 -9
  98. package/build/types/core/column.d.ts +0 -40
  99. package/build/types/core/headers.d.ts +0 -46
  100. package/build/types/core/instance.d.ts +0 -58
  101. package/build/types/core/row.d.ts +0 -15
  102. package/build/types/createTable.d.ts +0 -63
  103. package/build/types/features/ColumnSizing.d.ts +0 -63
  104. package/build/types/features/Expanding.d.ts +0 -39
  105. package/build/types/features/Filters.d.ts +0 -90
  106. package/build/types/features/Grouping.d.ts +0 -68
  107. package/build/types/features/Ordering.d.ts +0 -18
  108. package/build/types/features/Pagination.d.ts +0 -42
  109. package/build/types/features/Pinning.d.ts +0 -40
  110. package/build/types/features/RowSelection.d.ts +0 -40
  111. package/build/types/features/Sorting.d.ts +0 -63
  112. package/build/types/features/Visibility.d.ts +0 -40
  113. package/build/types/filterFns.d.ts +0 -13
  114. package/build/types/sortingFns.d.ts +0 -11
  115. package/build/types/types.d.ts +0 -53
  116. package/build/types/utils/filterRowsUtils.d.ts +0 -4
  117. package/build/types/utils/getCoreRowModel.d.ts +0 -2
  118. package/build/types/utils/getExpandedRowModel.d.ts +0 -7
  119. package/build/types/utils/getFacetedMinMaxValues.d.ts +0 -2
  120. package/build/types/utils/getFacetedRowModel.d.ts +0 -2
  121. package/build/types/utils/getFacetedUniqueValues.d.ts +0 -2
  122. package/build/types/utils/getFilteredRowModel.d.ts +0 -2
  123. package/build/types/utils/getGroupedRowModel.d.ts +0 -2
  124. package/build/types/utils/getPaginationRowModel.d.ts +0 -4
  125. package/build/types/utils/getSortedRowModel.d.ts +0 -2
  126. package/build/types/utils.d.ts +0 -19
  127. package/src/createTable.ts +0 -188
@@ -1,13 +1,13 @@
1
1
  import { createRow } from '../core/row'
2
- import { TableInstance, Row, RowModel, TableGenerics } from '../types'
2
+ import { Table, Row, RowModel, TableGenerics, RowData } from '../types'
3
3
  import { flattenBy, memo } from '../utils'
4
4
 
5
- export function getGroupedRowModel<TGenerics extends TableGenerics>(): (
6
- instance: TableInstance<TGenerics>
7
- ) => () => RowModel<TGenerics> {
8
- return instance =>
5
+ export function getGroupedRowModel<TData extends RowData>(): (
6
+ table: Table<TData>
7
+ ) => () => RowModel<TData> {
8
+ return table =>
9
9
  memo(
10
- () => [instance.getState().grouping, instance.getPreGroupedRowModel()],
10
+ () => [table.getState().grouping, table.getPreGroupedRowModel()],
11
11
  (grouping, rowModel) => {
12
12
  if (!rowModel.rows.length || !grouping.length) {
13
13
  return rowModel
@@ -15,11 +15,11 @@ export function getGroupedRowModel<TGenerics extends TableGenerics>(): (
15
15
 
16
16
  // Filter the grouping list down to columns that exist
17
17
  const existingGrouping = grouping.filter(columnId =>
18
- instance.getColumn(columnId)
18
+ table.getColumn(columnId)
19
19
  )
20
20
 
21
- const groupedFlatRows: Row<TGenerics>[] = []
22
- const groupedRowsById: Record<string, Row<TGenerics>> = {}
21
+ const groupedFlatRows: Row<TData>[] = []
22
+ const groupedRowsById: Record<string, Row<TData>> = {}
23
23
  // const onlyGroupedFlatRows: Row[] = [];
24
24
  // const onlyGroupedRowsById: Record<RowId, Row> = {};
25
25
  // const nonGroupedFlatRows: Row[] = [];
@@ -27,7 +27,7 @@ export function getGroupedRowModel<TGenerics extends TableGenerics>(): (
27
27
 
28
28
  // Recursively group the data
29
29
  const groupUpRecursively = (
30
- rows: Row<TGenerics>[],
30
+ rows: Row<TData>[],
31
31
  depth = 0,
32
32
  parentId: string
33
33
  ) => {
@@ -55,7 +55,7 @@ export function getGroupedRowModel<TGenerics extends TableGenerics>(): (
55
55
  ? flattenBy(groupedRows, row => row.subRows)
56
56
  : groupedRows
57
57
 
58
- const row = createRow(instance, id, undefined, index, depth)
58
+ const row = createRow(table, id, undefined, index, depth)
59
59
 
60
60
  Object.assign(row, {
61
61
  groupingColumnId: columnId,
@@ -82,7 +82,7 @@ export function getGroupedRowModel<TGenerics extends TableGenerics>(): (
82
82
  }
83
83
 
84
84
  // Aggregate the values
85
- const column = instance.getColumn(columnId)
85
+ const column = table.getColumn(columnId)
86
86
  const aggregateFn = column.getAggregationFn()
87
87
 
88
88
  if (aggregateFn) {
@@ -138,22 +138,19 @@ export function getGroupedRowModel<TGenerics extends TableGenerics>(): (
138
138
  },
139
139
  {
140
140
  key: process.env.NODE_ENV === 'development' && 'getGroupedRowModel',
141
- debug: () => instance.options.debugAll ?? instance.options.debugTable,
141
+ debug: () => table.options.debugAll ?? table.options.debugTable,
142
142
  onChange: () => {
143
- instance._queue(() => {
144
- instance._autoResetExpanded()
145
- instance._autoResetPageIndex()
143
+ table._queue(() => {
144
+ table._autoResetExpanded()
145
+ table._autoResetPageIndex()
146
146
  })
147
147
  },
148
148
  }
149
149
  )
150
150
  }
151
151
 
152
- function groupBy<TGenerics extends TableGenerics>(
153
- rows: Row<TGenerics>[],
154
- columnId: string
155
- ) {
156
- const groupMap = new Map<any, Row<TGenerics>[]>()
152
+ function groupBy<TData extends RowData>(rows: Row<TData>[], columnId: string) {
153
+ const groupMap = new Map<any, Row<TData>[]>()
157
154
 
158
155
  return rows.reduce((map, row) => {
159
156
  const resKey = `${row.getValue(columnId)}`
@@ -1,16 +1,13 @@
1
- import { TableInstance, RowModel, TableGenerics, Row } from '../types'
1
+ import { Table, RowModel, TableGenerics, Row, RowData } from '../types'
2
2
  import { memo } from '../utils'
3
3
  import { expandRows } from './getExpandedRowModel'
4
4
 
5
- export function getPaginationRowModel<TGenerics extends TableGenerics>(opts?: {
5
+ export function getPaginationRowModel<TData extends RowData>(opts?: {
6
6
  initialSync: boolean
7
- }): (instance: TableInstance<TGenerics>) => () => RowModel<TGenerics> {
8
- return instance =>
7
+ }): (table: Table<TData>) => () => RowModel<TData> {
8
+ return table =>
9
9
  memo(
10
- () => [
11
- instance.getState().pagination,
12
- instance.getPrePaginationRowModel(),
13
- ],
10
+ () => [table.getState().pagination, table.getPrePaginationRowModel()],
14
11
  (pagination, rowModel) => {
15
12
  if (!rowModel.rows.length) {
16
13
  return rowModel
@@ -23,16 +20,16 @@ export function getPaginationRowModel<TGenerics extends TableGenerics>(opts?: {
23
20
 
24
21
  rows = rows.slice(pageStart, pageEnd)
25
22
 
26
- let paginatedRowModel: RowModel<TGenerics>
23
+ let paginatedRowModel: RowModel<TData>
27
24
 
28
- if (!instance.options.paginateExpandedRows) {
25
+ if (!table.options.paginateExpandedRows) {
29
26
  paginatedRowModel = expandRows(
30
27
  {
31
28
  rows,
32
29
  flatRows,
33
30
  rowsById,
34
31
  },
35
- instance
32
+ table
36
33
  )
37
34
  } else {
38
35
  paginatedRowModel = {
@@ -44,7 +41,7 @@ export function getPaginationRowModel<TGenerics extends TableGenerics>(opts?: {
44
41
 
45
42
  paginatedRowModel.flatRows = []
46
43
 
47
- const handleRow = (row: Row<TGenerics>) => {
44
+ const handleRow = (row: Row<TData>) => {
48
45
  paginatedRowModel.flatRows.push(row)
49
46
  if (row.subRows.length) {
50
47
  row.subRows.forEach(handleRow)
@@ -57,7 +54,7 @@ export function getPaginationRowModel<TGenerics extends TableGenerics>(opts?: {
57
54
  },
58
55
  {
59
56
  key: process.env.NODE_ENV === 'development' && 'getPaginationRowModel',
60
- debug: () => instance.options.debugAll ?? instance.options.debugTable,
57
+ debug: () => table.options.debugAll ?? table.options.debugTable,
61
58
  }
62
59
  )
63
60
  }
@@ -1,25 +1,25 @@
1
- import { TableInstance, Row, RowModel, TableGenerics } from '../types'
1
+ import { Table, Row, RowModel, TableGenerics, RowData } from '../types'
2
2
  import { SortingFn } from '../features/Sorting'
3
3
  import { memo } from '../utils'
4
4
 
5
- export function getSortedRowModel<TGenerics extends TableGenerics>(): (
6
- instance: TableInstance<TGenerics>
7
- ) => () => RowModel<TGenerics> {
8
- return instance =>
5
+ export function getSortedRowModel<TData extends RowData>(): (
6
+ table: Table<TData>
7
+ ) => () => RowModel<TData> {
8
+ return table =>
9
9
  memo(
10
- () => [instance.getState().sorting, instance.getPreSortedRowModel()],
10
+ () => [table.getState().sorting, table.getPreSortedRowModel()],
11
11
  (sorting, rowModel) => {
12
12
  if (!rowModel.rows.length || !sorting?.length) {
13
13
  return rowModel
14
14
  }
15
15
 
16
- const sortingState = instance.getState().sorting
16
+ const sortingState = table.getState().sorting
17
17
 
18
- const sortedFlatRows: Row<TGenerics>[] = []
18
+ const sortedFlatRows: Row<TData>[] = []
19
19
 
20
20
  // Filter out sortings that correspond to non existing columns
21
21
  const availableSorting = sortingState.filter(sort =>
22
- instance.getColumn(sort.id).getCanSort()
22
+ table.getColumn(sort.id).getCanSort()
23
23
  )
24
24
 
25
25
  const columnInfoById: Record<
@@ -27,12 +27,12 @@ export function getSortedRowModel<TGenerics extends TableGenerics>(): (
27
27
  {
28
28
  sortUndefined?: false | -1 | 1
29
29
  invertSorting?: boolean
30
- sortingFn: SortingFn<TGenerics>
30
+ sortingFn: SortingFn<TData>
31
31
  }
32
32
  > = {}
33
33
 
34
34
  availableSorting.forEach(sortEntry => {
35
- const column = instance.getColumn(sortEntry.id)
35
+ const column = table.getColumn(sortEntry.id)
36
36
 
37
37
  columnInfoById[sortEntry.id] = {
38
38
  sortUndefined: column.columnDef.sortUndefined,
@@ -41,7 +41,7 @@ export function getSortedRowModel<TGenerics extends TableGenerics>(): (
41
41
  }
42
42
  })
43
43
 
44
- const sortData = (rows: Row<TGenerics>[]) => {
44
+ const sortData = (rows: Row<TData>[]) => {
45
45
  // This will also perform a stable sorting using the row index
46
46
  // if needed.
47
47
  const sortedData = rows.slice()
@@ -107,9 +107,9 @@ export function getSortedRowModel<TGenerics extends TableGenerics>(): (
107
107
  },
108
108
  {
109
109
  key: process.env.NODE_ENV === 'development' && 'getSortedRowModel',
110
- debug: () => instance.options.debugAll ?? instance.options.debugTable,
110
+ debug: () => table.options.debugAll ?? table.options.debugTable,
111
111
  onChange: () => {
112
- instance._autoResetPageIndex()
112
+ table._autoResetPageIndex()
113
113
  },
114
114
  }
115
115
  )
package/src/utils.ts CHANGED
@@ -9,6 +9,12 @@ export type Overwrite<T, U extends { [TKey in keyof T]?: any }> = Omit<
9
9
  > &
10
10
  U
11
11
 
12
+ export type UnionToIntersection<T> = (
13
+ T extends any ? (x: T) => any : never
14
+ ) extends (x: infer R) => any
15
+ ? R
16
+ : never
17
+
12
18
  export type IfDefined<T, N> = 0 extends 1 & T ? N : T extends {} ? T : N
13
19
 
14
20
  export function functionalUpdate<T>(updater: Updater<T>, input: T): T {
@@ -21,9 +27,9 @@ export function noop() {
21
27
  //
22
28
  }
23
29
 
24
- export function makeStateUpdater(key: keyof TableState, instance: unknown) {
30
+ export function makeStateUpdater(key: keyof TableState, table: unknown) {
25
31
  return (updater: Updater<any>) => {
26
- ;(instance as any).setState(<TTableState>(old: TTableState) => {
32
+ ;(table as any).setState(<TTableState>(old: TTableState) => {
27
33
  return {
28
34
  ...old,
29
35
  [key]: functionalUpdate(updater, (old as any)[key]),
@@ -1 +0,0 @@
1
- {"version":3,"file":"instance.js","sources":["../../../src/core/instance.ts"],"sourcesContent":["import { flattenBy, functionalUpdate, memo, RequiredKeys } from '../utils'\n\nimport {\n Updater,\n TableOptionsResolved,\n TableState,\n TableInstance,\n Renderable,\n TableGenerics,\n InitialTableState,\n Row,\n Column,\n RowModel,\n ColumnDef,\n TableOptions,\n} from '../types'\n\n//\nimport { createColumn } from './column'\nimport { Headers } from './headers'\n//\n\nimport { ColumnSizing } from '../features/ColumnSizing'\nimport { Expanding } from '../features/Expanding'\nimport { Filters } from '../features/Filters'\nimport { Grouping } from '../features/Grouping'\nimport { Ordering } from '../features/Ordering'\nimport { Pagination } from '../features/Pagination'\nimport { Pinning } from '../features/Pinning'\nimport { RowSelection } from '../features/RowSelection'\nimport { Sorting } from '../features/Sorting'\nimport { Visibility } from '../features/Visibility'\n\nexport type TableFeature = {\n getDefaultOptions?: (instance: any) => any\n getInitialState?: (initialState?: InitialTableState) => any\n createInstance?: (instance: any) => any\n getDefaultColumnDef?: () => any\n createColumn?: (column: any, instance: any) => any\n createHeader?: (column: any, instance: any) => any\n createCell?: (cell: any, column: any, row: any, instance: any) => any\n createRow?: (row: any, instance: any) => any\n}\n\nconst features = [\n Headers,\n Visibility,\n Ordering,\n Pinning,\n Filters,\n Sorting,\n Grouping,\n Expanding,\n Pagination,\n RowSelection,\n ColumnSizing,\n] as const\n\n//\n\nexport type CoreTableState = {}\n\nexport type CoreOptions<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?: (\n defaultOptions: TableOptions<TGenerics>,\n options: Partial<TableOptions<TGenerics>>\n ) => TableOptions<TGenerics>\n meta?: TGenerics['TableMeta']\n getCoreRowModel: (instance: TableInstance<any>) => () => RowModel<any>\n getSubRows?: (\n originalRow: TGenerics['Row'],\n index: number\n ) => undefined | TGenerics['Row'][]\n getRowId?: (\n originalRow: TGenerics['Row'],\n index: number,\n parent?: Row<TGenerics>\n ) => string\n columns: ColumnDef<TGenerics>[]\n defaultColumn?: Partial<ColumnDef<TGenerics>>\n renderFallbackValue: any\n}\n\nexport type CoreInstance<TGenerics extends TableGenerics> = {\n initialState: TableState\n reset: () => void\n options: RequiredKeys<TableOptionsResolved<TGenerics>, 'state'>\n setOptions: (newOptions: Updater<TableOptionsResolved<TGenerics>>) => void\n getState: () => TableState\n setState: (updater: Updater<TableState>) => void\n _features: readonly TableFeature[]\n _queue: (cb: () => void) => void\n _render: <TProps>(\n template: Renderable<TGenerics, TProps>,\n props: TProps\n ) => string | null | TGenerics['Rendered']\n _getRowId: (\n _: TGenerics['Row'],\n index: number,\n parent?: Row<TGenerics>\n ) => string\n getCoreRowModel: () => RowModel<TGenerics>\n _getCoreRowModel?: () => RowModel<TGenerics>\n getRowModel: () => RowModel<TGenerics>\n getRow: (id: string) => Row<TGenerics>\n _getDefaultColumnDef: () => Partial<ColumnDef<TGenerics>>\n _getColumnDefs: () => ColumnDef<TGenerics>[]\n _getAllFlatColumnsById: () => Record<string, Column<TGenerics>>\n getAllColumns: () => Column<TGenerics>[]\n getAllFlatColumns: () => Column<TGenerics>[]\n getAllLeafColumns: () => Column<TGenerics>[]\n getColumn: (columnId: string) => Column<TGenerics>\n}\n\nexport function createTableInstance<TGenerics extends TableGenerics>(\n options: TableOptionsResolved<TGenerics>\n): TableInstance<TGenerics> {\n if (options.debugAll || options.debugTable) {\n console.info('Creating Table Instance...')\n }\n\n let instance = { _features: features } as unknown as TableInstance<TGenerics>\n\n const defaultOptions = instance._features.reduce((obj, feature) => {\n return Object.assign(obj, feature.getDefaultOptions?.(instance))\n }, {}) as TableOptionsResolved<TGenerics>\n\n const mergeOptions = (options: TableOptionsResolved<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\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 coreInstance: CoreInstance<TGenerics> = {\n _features: features,\n options: {\n ...defaultOptions,\n ...options,\n },\n initialState,\n _queue: cb => {\n queued.push(cb)\n\n if (!queuedTimeout) {\n queuedTimeout = true\n\n // Schedule a microtask to run the queued callbacks after\n // the current call stack (render, etc) has finished.\n Promise.resolve()\n .then(() => {\n while (queued.length) {\n queued.shift()!()\n }\n queuedTimeout = false\n })\n .catch(error =>\n setTimeout(() => {\n throw error\n })\n )\n }\n },\n reset: () => {\n instance.setState(instance.initialState)\n },\n setOptions: updater => {\n const newOptions = functionalUpdate(updater, instance.options)\n instance.options = mergeOptions(newOptions) as RequiredKeys<\n TableOptionsResolved<TGenerics>,\n 'state'\n >\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 _getRowId: (\n row: TGenerics['Row'],\n index: number,\n parent?: Row<TGenerics>\n ) =>\n instance.options.getRowId?.(row, index, parent) ??\n `${parent ? [parent.id, index].join('.') : index}`,\n\n getCoreRowModel: () => {\n if (!instance._getCoreRowModel) {\n instance._getCoreRowModel = instance.options.getCoreRowModel(instance)\n }\n\n return instance._getCoreRowModel()\n },\n\n // The final calls start at the bottom of the model,\n // expanded rows, which then work their way up\n\n getRowModel: () => {\n return instance.getPaginationRowModel()\n },\n getRow: (id: string) => {\n const row = instance.getRowModel().rowsById[id]\n\n if (!row) {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error(`getRow expected an ID, but got ${id}`)\n }\n throw new Error()\n }\n\n return row\n },\n _getDefaultColumnDef: memo(\n () => [instance.options.defaultColumn],\n defaultColumn => {\n defaultColumn = (defaultColumn ?? {}) as Partial<ColumnDef<TGenerics>>\n\n return {\n header: props => props.header.column.id,\n footer: props => props.header.column.id,\n cell: props => props.getValue()?.toString?.() ?? null,\n ...instance._features.reduce((obj, feature) => {\n return Object.assign(obj, feature.getDefaultColumnDef?.())\n }, {}),\n ...defaultColumn,\n } as Partial<ColumnDef<TGenerics>>\n },\n {\n debug: () => instance.options.debugAll ?? instance.options.debugColumns,\n key: process.env.NODE_ENV === 'development' && 'getDefaultColumnDef',\n }\n ),\n\n _getColumnDefs: () => instance.options.columns,\n\n getAllColumns: memo(\n () => [instance._getColumnDefs()],\n columnDefs => {\n const recurseColumns = (\n columnDefs: ColumnDef<TGenerics>[],\n parent?: Column<TGenerics>,\n depth = 0\n ): Column<TGenerics>[] => {\n return columnDefs.map(columnDef => {\n const column = createColumn(instance, columnDef, depth, parent)\n\n column.columns = columnDef.columns\n ? recurseColumns(columnDef.columns, column, depth + 1)\n : []\n\n return column\n })\n }\n\n return recurseColumns(columnDefs)\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getAllColumns',\n debug: () => instance.options.debugAll ?? instance.options.debugColumns,\n }\n ),\n\n getAllFlatColumns: memo(\n () => [instance.getAllColumns()],\n allColumns => {\n return allColumns.flatMap(column => {\n return column.getFlatColumns()\n })\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getAllFlatColumns',\n debug: () => instance.options.debugAll ?? instance.options.debugColumns,\n }\n ),\n\n _getAllFlatColumnsById: memo(\n () => [instance.getAllFlatColumns()],\n flatColumns => {\n return flatColumns.reduce((acc, column) => {\n acc[column.id] = column\n return acc\n }, {} as Record<string, Column<TGenerics>>)\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getAllFlatColumnsById',\n debug: () => instance.options.debugAll ?? instance.options.debugColumns,\n }\n ),\n\n getAllLeafColumns: memo(\n () => [instance.getAllColumns(), instance._getOrderColumnsFn()],\n (allColumns, orderColumns) => {\n let leafColumns = allColumns.flatMap(column => column.getLeafColumns())\n return orderColumns(leafColumns)\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getAllLeafColumns',\n debug: () => instance.options.debugAll ?? instance.options.debugColumns,\n }\n ),\n\n getColumn: columnId => {\n const column = instance._getAllFlatColumnsById()[columnId]\n\n if (!column) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(`[Table] Column with id ${columnId} does not exist.`)\n }\n throw new Error()\n }\n\n return column\n },\n }\n\n Object.assign(instance, coreInstance)\n\n instance._features.forEach(feature => {\n return Object.assign(instance, feature.createInstance?.(instance))\n })\n\n return instance\n}\n"],"names":["features","Headers","Visibility","Ordering","Pinning","Filters","Sorting","Grouping","Expanding","Pagination","RowSelection","ColumnSizing","createTableInstance","options","debugAll","debugTable","console","info","instance","_features","defaultOptions","reduce","obj","feature","Object","assign","getDefaultOptions","mergeOptions","coreInitialState","initialState","forEach","getInitialState","queued","queuedTimeout","coreInstance","_queue","cb","push","Promise","resolve","then","length","shift","catch","error","setTimeout","reset","setState","setOptions","updater","newOptions","functionalUpdate","_render","template","props","render","getState","state","onStateChange","_getRowId","row","index","parent","getRowId","id","join","getCoreRowModel","_getCoreRowModel","getRowModel","getPaginationRowModel","getRow","rowsById","process","env","NODE_ENV","Error","_getDefaultColumnDef","memo","defaultColumn","header","column","footer","cell","getValue","toString","getDefaultColumnDef","debug","debugColumns","key","_getColumnDefs","columns","getAllColumns","columnDefs","recurseColumns","depth","map","columnDef","createColumn","getAllFlatColumns","allColumns","flatMap","getFlatColumns","_getAllFlatColumnsById","flatColumns","acc","getAllLeafColumns","_getOrderColumnsFn","orderColumns","leafColumns","getLeafColumns","getColumn","columnId","warn","createInstance"],"mappings":"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"}
@@ -1,72 +0,0 @@
1
- /**
2
- * table-core
3
- *
4
- * Copyright (c) TanStack
5
- *
6
- * This source code is licensed under the MIT license found in the
7
- * LICENSE.md file in the root directory of this source tree.
8
- *
9
- * @license MIT
10
- */
11
- 'use strict';
12
-
13
- Object.defineProperty(exports, '__esModule', { value: true });
14
-
15
- //
16
- function createTableFactory(opts) {
17
- return () => createTable(undefined, undefined, opts);
18
- } // A lot of returns in here are `as any` for a reason. Unless you
19
- // can find a better way to do this, then don't worry about them
20
-
21
- function createTable(_, __, options) {
22
- const table = {
23
- generics: undefined,
24
- options: options != null ? options : {
25
- render: (() => {
26
- throw new Error('');
27
- })()
28
- },
29
- // setGenerics: () => table as any,
30
- setRowType: () => table,
31
- setTableMetaType: () => table,
32
- setColumnMetaType: () => table,
33
- setFilterMetaType: () => table,
34
- setOptions: newOptions => createTable(_, __, { ...options,
35
- ...newOptions
36
- }),
37
- createDisplayColumn: column => ({ ...column,
38
- columnDefType: 'display'
39
- }),
40
- createGroup: column => ({ ...column,
41
- columnDefType: 'group'
42
- }),
43
- createDataColumn: (accessor, column) => {
44
- column = { ...column,
45
- columnDefType: 'data',
46
- id: column.id
47
- };
48
-
49
- if (typeof accessor === 'string') {
50
- var _column$id;
51
-
52
- return { ...column,
53
- id: (_column$id = column.id) != null ? _column$id : accessor,
54
- accessorKey: accessor
55
- };
56
- }
57
-
58
- if (typeof accessor === 'function') {
59
- return { ...column,
60
- accessorFn: accessor
61
- };
62
- }
63
-
64
- throw new Error('Invalid accessor');
65
- },
66
- createOptions: options => options
67
- };
68
- return table;
69
- }
70
-
71
- exports.createTableFactory = createTableFactory;
72
- //# sourceMappingURL=createTable.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"createTable.js","sources":["../../src/createTable.ts"],"sourcesContent":["import { CustomFilterFns, FilterFn } from './features/Filters'\nimport { AggregationFn, CustomAggregationFns } from './features/Grouping'\nimport { CustomSortingFns, SortingFn } from './features/Sorting'\nimport {\n ColumnDef,\n AccessorFn,\n AnyRender,\n TableGenerics,\n TableOptionsResolved,\n TableOptions,\n} from './types'\nimport { IfDefined, Overwrite } from './utils'\n\nexport type TableFactory<TGenerics extends TableGenerics> =\n () => Table<TGenerics>\n\nexport type CreateTableOptions<\n TRender extends AnyRender,\n TFilterFns extends CustomFilterFns<any>,\n TSortingFns extends CustomSortingFns<any>,\n TAggregationFns extends CustomAggregationFns<any>,\n TGenerics extends TableGenerics\n> = Partial<\n {\n render?: TRender\n filterFns?: TFilterFns\n sortingFns?: TSortingFns\n aggregationFns?: TAggregationFns\n } & Omit<\n TableOptionsResolved<TGenerics>,\n 'filterFns' | 'sortingFns' | 'aggregationFns'\n >\n>\n\nexport type Table<TGenerics extends TableGenerics> = {\n generics: TGenerics\n options: Partial<TableOptionsResolved<TGenerics>>\n // setGenerics: <T extends TableGenerics>() => Table<T>\n setRowType: <TRow>() => Table<Overwrite<TGenerics, { Row: TRow }>>\n setTableMetaType: <TTableMeta>() => Table<\n Overwrite<TGenerics, { TableMeta: TTableMeta }>\n >\n setColumnMetaType: <TColumnMeta>() => Table<\n Overwrite<TGenerics, { ColumnMeta: TColumnMeta }>\n >\n setFilterMetaType: <TFilterMeta>() => Table<\n Overwrite<TGenerics, { FilterMeta: TFilterMeta }>\n >\n setOptions: <\n TFilterFns extends Record<string, FilterFn<any>>,\n TSortingFns extends Record<string, SortingFn<any>>,\n TAggregationFns extends Record<string, AggregationFn<any>>\n >(\n options: CreateTableOptions<\n any,\n TFilterFns,\n TSortingFns,\n TAggregationFns,\n TGenerics\n >\n ) => Table<\n Overwrite<\n TGenerics,\n {\n FilterFns: IfDefined<TFilterFns, TGenerics['FilterFns']>\n SortingFns: IfDefined<TSortingFns, TGenerics['SortingFns']>\n AggregationFns: IfDefined<TAggregationFns, TGenerics['AggregationFns']>\n }\n >\n >\n createGroup: (\n column: Overwrite<\n | Overwrite<\n ColumnDef<any>,\n {\n header: string\n id?: string\n }\n >\n | Overwrite<\n ColumnDef<any>,\n {\n id: string\n header?: string | ((...any: any) => any)\n }\n >,\n {\n accessorFn?: never\n accessorKey?: never\n columns?: ColumnDef<any>[]\n }\n >\n ) => ColumnDef<TGenerics>\n createDisplayColumn: (\n column: Omit<ColumnDef<TGenerics>, 'columns'>\n ) => ColumnDef<TGenerics>\n createDataColumn: <\n TAccessor extends AccessorFn<TGenerics['Row']> | keyof TGenerics['Row']\n >(\n accessor: TAccessor,\n column: Overwrite<\n TAccessor extends (...args: any[]) => any\n ? // Accessor Fn\n ColumnDef<Overwrite<TGenerics, { Value: ReturnType<TAccessor> }>>\n : TAccessor extends keyof TGenerics['Row']\n ? // Accessor Key\n Overwrite<\n ColumnDef<\n Overwrite<TGenerics, { Value: TGenerics['Row'][TAccessor] }>\n >,\n {\n id?: string\n }\n >\n : never,\n {\n accessorFn?: never\n accessorKey?: never\n columns?: ColumnDef<any>[]\n }\n >\n ) => ColumnDef<TGenerics>\n createOptions: (options: TableOptions<TGenerics>) => TableOptions<TGenerics>\n}\n\n//\n\nexport function createTableFactory<TRenderer extends AnyRender>(opts: {\n render: TRenderer\n}): () => Table<{ Renderer: TRenderer; Rendered: ReturnType<TRenderer> }> {\n return () => createTable(undefined, undefined, opts)\n}\n\n// A lot of returns in here are `as any` for a reason. Unless you\n// can find a better way to do this, then don't worry about them\nfunction createTable<TGenerics extends TableGenerics>(\n _?: undefined,\n __?: undefined,\n options?: CreateTableOptions<any, any, any, any, TGenerics>\n): Table<TGenerics> {\n const table: Table<TGenerics> = {\n generics: undefined!,\n options: options ?? {\n render: (() => {\n throw new Error('')\n })(),\n },\n // setGenerics: () => table as any,\n setRowType: () => table as any,\n setTableMetaType: () => table as any,\n setColumnMetaType: () => table as any,\n setFilterMetaType: () => table as any,\n setOptions: newOptions =>\n createTable(_, __, {\n ...options,\n ...newOptions,\n } as any),\n createDisplayColumn: column => ({ ...column, columnDefType: 'display' }),\n createGroup: column => ({ ...column, columnDefType: 'group' } as any),\n createDataColumn: (accessor, column): any => {\n column = {\n ...column,\n columnDefType: 'data',\n id: column.id,\n }\n\n if (typeof accessor === 'string') {\n return {\n ...column,\n id: column.id ?? accessor,\n accessorKey: accessor,\n }\n }\n\n if (typeof accessor === 'function') {\n return {\n ...column,\n accessorFn: accessor,\n }\n }\n\n throw new Error('Invalid accessor')\n },\n createOptions: options => options,\n }\n\n return table\n}\n"],"names":["createTableFactory","opts","createTable","undefined","_","__","options","table","generics","render","Error","setRowType","setTableMetaType","setColumnMetaType","setFilterMetaType","setOptions","newOptions","createDisplayColumn","column","columnDefType","createGroup","createDataColumn","accessor","id","accessorKey","accessorFn","createOptions"],"mappings":";;;;;;;;;;;;;;AA6HA;AAEO,SAASA,kBAAT,CAAyDC,IAAzD,EAEmE;EACxE,OAAO,MAAMC,WAAW,CAACC,SAAD,EAAYA,SAAZ,EAAuBF,IAAvB,CAAxB,CAAA;AACD;AAGD;;AACA,SAASC,WAAT,CACEE,CADF,EAEEC,EAFF,EAGEC,OAHF,EAIoB;AAClB,EAAA,MAAMC,KAAuB,GAAG;AAC9BC,IAAAA,QAAQ,EAAEL,SADoB;AAE9BG,IAAAA,OAAO,EAAEA,OAAF,IAAEA,IAAAA,GAAAA,OAAF,GAAa;MAClBG,MAAM,EAAE,CAAC,MAAM;AACb,QAAA,MAAM,IAAIC,KAAJ,CAAU,EAAV,CAAN,CAAA;OADM,GAAA;KAHoB;AAO9B;IACAC,UAAU,EAAE,MAAMJ,KARY;IAS9BK,gBAAgB,EAAE,MAAML,KATM;IAU9BM,iBAAiB,EAAE,MAAMN,KAVK;IAW9BO,iBAAiB,EAAE,MAAMP,KAXK;IAY9BQ,UAAU,EAAEC,UAAU,IACpBd,WAAW,CAACE,CAAD,EAAIC,EAAJ,EAAQ,EACjB,GAAGC,OADc;MAEjB,GAAGU,UAAAA;AAFc,KAAR,CAbiB;AAiB9BC,IAAAA,mBAAmB,EAAEC,MAAM,KAAK,EAAE,GAAGA,MAAL;AAAaC,MAAAA,aAAa,EAAE,SAAA;AAA5B,KAAL,CAjBG;AAkB9BC,IAAAA,WAAW,EAAEF,MAAM,KAAK,EAAE,GAAGA,MAAL;AAAaC,MAAAA,aAAa,EAAE,OAAA;AAA5B,KAAL,CAlBW;AAmB9BE,IAAAA,gBAAgB,EAAE,CAACC,QAAD,EAAWJ,MAAX,KAA2B;MAC3CA,MAAM,GAAG,EACP,GAAGA,MADI;AAEPC,QAAAA,aAAa,EAAE,MAFR;QAGPI,EAAE,EAAEL,MAAM,CAACK,EAAAA;OAHb,CAAA;;AAMA,MAAA,IAAI,OAAOD,QAAP,KAAoB,QAAxB,EAAkC;AAAA,QAAA,IAAA,UAAA,CAAA;;QAChC,OAAO,EACL,GAAGJ,MADE;AAELK,UAAAA,EAAE,EAAEL,CAAAA,UAAAA,GAAAA,MAAM,CAACK,EAAT,yBAAeD,QAFZ;AAGLE,UAAAA,WAAW,EAAEF,QAAAA;SAHf,CAAA;AAKD,OAAA;;AAED,MAAA,IAAI,OAAOA,QAAP,KAAoB,UAAxB,EAAoC;QAClC,OAAO,EACL,GAAGJ,MADE;AAELO,UAAAA,UAAU,EAAEH,QAAAA;SAFd,CAAA;AAID,OAAA;;AAED,MAAA,MAAM,IAAIZ,KAAJ,CAAU,kBAAV,CAAN,CAAA;KAzC4B;IA2C9BgB,aAAa,EAAEpB,OAAO,IAAIA,OAAAA;GA3C5B,CAAA;AA8CA,EAAA,OAAOC,KAAP,CAAA;AACD;;;;"}
@@ -1,13 +0,0 @@
1
- import { AggregationFn } from './features/Grouping';
2
- export declare const aggregationFns: {
3
- sum: AggregationFn<any>;
4
- min: AggregationFn<any>;
5
- max: AggregationFn<any>;
6
- extent: AggregationFn<any>;
7
- mean: AggregationFn<any>;
8
- median: AggregationFn<any>;
9
- unique: AggregationFn<any>;
10
- uniqueCount: AggregationFn<any>;
11
- count: AggregationFn<any>;
12
- };
13
- export declare type BuiltInAggregationFn = keyof typeof aggregationFns;
@@ -1,9 +0,0 @@
1
- import { Cell, Column, Row, TableGenerics, TableInstance } from '../types';
2
- export declare type CoreCell<TGenerics extends TableGenerics> = {
3
- id: string;
4
- getValue: () => TGenerics['Value'];
5
- row: Row<TGenerics>;
6
- column: Column<TGenerics>;
7
- renderCell: () => string | null | TGenerics['Rendered'];
8
- };
9
- export declare function createCell<TGenerics extends TableGenerics>(instance: TableInstance<TGenerics>, row: Row<TGenerics>, column: Column<TGenerics>, columnId: string): Cell<TGenerics>;
@@ -1,40 +0,0 @@
1
- import { Cell, Column, Header, TableGenerics, TableInstance, Row, AccessorFn, ColumnDef, Renderable } from '../types';
2
- export declare type CoreColumnDefType = 'data' | 'display' | 'group';
3
- export declare type CoreColumnDef<TGenerics extends TableGenerics> = {
4
- id: string;
5
- accessorKey?: string & keyof TGenerics['Row'];
6
- accessorFn?: AccessorFn<TGenerics['Row']>;
7
- columns?: ColumnDef<TGenerics>[];
8
- header?: Renderable<TGenerics, {
9
- instance: TableInstance<TGenerics>;
10
- header: Header<TGenerics>;
11
- column: Column<TGenerics>;
12
- }>;
13
- footer?: Renderable<TGenerics, {
14
- instance: TableInstance<TGenerics>;
15
- header: Header<TGenerics>;
16
- column: Column<TGenerics>;
17
- }>;
18
- cell?: Renderable<TGenerics, {
19
- instance: TableInstance<TGenerics>;
20
- row: Row<TGenerics>;
21
- column: Column<TGenerics>;
22
- cell: Cell<TGenerics>;
23
- getValue: () => TGenerics['Value'];
24
- }>;
25
- meta?: TGenerics['ColumnMeta'];
26
- };
27
- export declare type CoreColumn<TGenerics extends TableGenerics> = {
28
- id: string;
29
- depth: number;
30
- accessorFn?: AccessorFn<TGenerics['Row']>;
31
- columnDef: ColumnDef<TGenerics>;
32
- columnDefType: CoreColumnDefType;
33
- columns: Column<TGenerics>[];
34
- parent?: Column<TGenerics>;
35
- getFlatColumns: () => Column<TGenerics>[];
36
- getLeafColumns: () => Column<TGenerics>[];
37
- };
38
- export declare function createColumn<TGenerics extends TableGenerics>(instance: TableInstance<TGenerics>, columnDef: ColumnDef<TGenerics> & {
39
- columnDefType?: CoreColumnDefType;
40
- }, depth: number, parent?: Column<TGenerics>): Column<TGenerics>;
@@ -1,46 +0,0 @@
1
- import { Column, Header, HeaderGroup, TableGenerics, TableInstance } from '../types';
2
- import { TableFeature } from './instance';
3
- export declare type CoreHeaderGroup<TGenerics extends TableGenerics> = {
4
- id: string;
5
- depth: number;
6
- headers: Header<TGenerics>[];
7
- };
8
- export declare type CoreHeader<TGenerics extends TableGenerics> = {
9
- id: string;
10
- index: number;
11
- depth: number;
12
- column: Column<TGenerics>;
13
- headerGroup: HeaderGroup<TGenerics>;
14
- subHeaders: Header<TGenerics>[];
15
- colSpan: number;
16
- rowSpan: number;
17
- getLeafHeaders: () => Header<TGenerics>[];
18
- isPlaceholder: boolean;
19
- placeholderId?: string;
20
- renderHeader: (options?: {
21
- renderPlaceholder?: boolean;
22
- }) => string | null | TGenerics['Rendered'];
23
- renderFooter: (options?: {
24
- renderPlaceholder?: boolean;
25
- }) => string | null | TGenerics['Rendered'];
26
- };
27
- export declare type HeadersInstance<TGenerics extends TableGenerics> = {
28
- getHeaderGroups: () => HeaderGroup<TGenerics>[];
29
- getLeftHeaderGroups: () => HeaderGroup<TGenerics>[];
30
- getCenterHeaderGroups: () => HeaderGroup<TGenerics>[];
31
- getRightHeaderGroups: () => HeaderGroup<TGenerics>[];
32
- getFooterGroups: () => HeaderGroup<TGenerics>[];
33
- getLeftFooterGroups: () => HeaderGroup<TGenerics>[];
34
- getCenterFooterGroups: () => HeaderGroup<TGenerics>[];
35
- getRightFooterGroups: () => HeaderGroup<TGenerics>[];
36
- getFlatHeaders: () => Header<TGenerics>[];
37
- getLeftFlatHeaders: () => Header<TGenerics>[];
38
- getCenterFlatHeaders: () => Header<TGenerics>[];
39
- getRightFlatHeaders: () => Header<TGenerics>[];
40
- getLeafHeaders: () => Header<TGenerics>[];
41
- getLeftLeafHeaders: () => Header<TGenerics>[];
42
- getCenterLeafHeaders: () => Header<TGenerics>[];
43
- getRightLeafHeaders: () => Header<TGenerics>[];
44
- };
45
- export declare const Headers: TableFeature;
46
- export declare function buildHeaderGroups<TGenerics extends TableGenerics>(allColumns: Column<TGenerics>[], columnsToGroup: Column<TGenerics>[], instance: TableInstance<TGenerics>, headerFamily?: 'center' | 'left' | 'right'): HeaderGroup<TGenerics>[];
@@ -1,58 +0,0 @@
1
- import { RequiredKeys } from '../utils';
2
- import { Updater, TableOptionsResolved, TableState, TableInstance, Renderable, TableGenerics, InitialTableState, Row, Column, RowModel, ColumnDef, TableOptions } from '../types';
3
- export declare type TableFeature = {
4
- getDefaultOptions?: (instance: any) => any;
5
- getInitialState?: (initialState?: InitialTableState) => any;
6
- createInstance?: (instance: any) => any;
7
- getDefaultColumnDef?: () => any;
8
- createColumn?: (column: any, instance: any) => any;
9
- createHeader?: (column: any, instance: any) => any;
10
- createCell?: (cell: any, column: any, row: any, instance: any) => any;
11
- createRow?: (row: any, instance: any) => any;
12
- };
13
- export declare type CoreTableState = {};
14
- export declare type CoreOptions<TGenerics extends TableGenerics> = {
15
- data: TGenerics['Row'][];
16
- state: Partial<TableState>;
17
- onStateChange: (updater: Updater<TableState>) => void;
18
- render: TGenerics['Renderer'];
19
- debugAll?: boolean;
20
- debugTable?: boolean;
21
- debugHeaders?: boolean;
22
- debugColumns?: boolean;
23
- debugRows?: boolean;
24
- initialState?: InitialTableState;
25
- autoResetAll?: boolean;
26
- mergeOptions?: (defaultOptions: TableOptions<TGenerics>, options: Partial<TableOptions<TGenerics>>) => TableOptions<TGenerics>;
27
- meta?: TGenerics['TableMeta'];
28
- getCoreRowModel: (instance: TableInstance<any>) => () => RowModel<any>;
29
- getSubRows?: (originalRow: TGenerics['Row'], index: number) => undefined | TGenerics['Row'][];
30
- getRowId?: (originalRow: TGenerics['Row'], index: number, parent?: Row<TGenerics>) => string;
31
- columns: ColumnDef<TGenerics>[];
32
- defaultColumn?: Partial<ColumnDef<TGenerics>>;
33
- renderFallbackValue: any;
34
- };
35
- export declare type CoreInstance<TGenerics extends TableGenerics> = {
36
- initialState: TableState;
37
- reset: () => void;
38
- options: RequiredKeys<TableOptionsResolved<TGenerics>, 'state'>;
39
- setOptions: (newOptions: Updater<TableOptionsResolved<TGenerics>>) => void;
40
- getState: () => TableState;
41
- setState: (updater: Updater<TableState>) => void;
42
- _features: readonly TableFeature[];
43
- _queue: (cb: () => void) => void;
44
- _render: <TProps>(template: Renderable<TGenerics, TProps>, props: TProps) => string | null | TGenerics['Rendered'];
45
- _getRowId: (_: TGenerics['Row'], index: number, parent?: Row<TGenerics>) => string;
46
- getCoreRowModel: () => RowModel<TGenerics>;
47
- _getCoreRowModel?: () => RowModel<TGenerics>;
48
- getRowModel: () => RowModel<TGenerics>;
49
- getRow: (id: string) => Row<TGenerics>;
50
- _getDefaultColumnDef: () => Partial<ColumnDef<TGenerics>>;
51
- _getColumnDefs: () => ColumnDef<TGenerics>[];
52
- _getAllFlatColumnsById: () => Record<string, Column<TGenerics>>;
53
- getAllColumns: () => Column<TGenerics>[];
54
- getAllFlatColumns: () => Column<TGenerics>[];
55
- getAllLeafColumns: () => Column<TGenerics>[];
56
- getColumn: (columnId: string) => Column<TGenerics>;
57
- };
58
- export declare function createTableInstance<TGenerics extends TableGenerics>(options: TableOptionsResolved<TGenerics>): TableInstance<TGenerics>;
@@ -1,15 +0,0 @@
1
- import { Cell, Row, TableGenerics, TableInstance } from '../types';
2
- export declare type CoreRow<TGenerics extends TableGenerics> = {
3
- id: string;
4
- index: number;
5
- original?: TGenerics['Row'];
6
- depth: number;
7
- _valuesCache: Record<string, any>;
8
- getValue: (columnId: string) => any;
9
- subRows: Row<TGenerics>[];
10
- getLeafRows: () => Row<TGenerics>[];
11
- originalSubRows?: TGenerics['Row'][];
12
- getAllCells: () => Cell<TGenerics>[];
13
- _getAllCellsByColumnId: () => Record<string, Cell<TGenerics>>;
14
- };
15
- export declare const createRow: <TGenerics extends TableGenerics>(instance: TableInstance<TGenerics>, id: string, original: TGenerics["Row"] | undefined, rowIndex: number, depth: number, subRows?: Row<TGenerics>[] | undefined) => Row<TGenerics>;
@@ -1,63 +0,0 @@
1
- import { CustomFilterFns, FilterFn } from './features/Filters';
2
- import { AggregationFn, CustomAggregationFns } from './features/Grouping';
3
- import { CustomSortingFns, SortingFn } from './features/Sorting';
4
- import { ColumnDef, AccessorFn, AnyRender, TableGenerics, TableOptionsResolved, TableOptions } from './types';
5
- import { IfDefined, Overwrite } from './utils';
6
- export declare type TableFactory<TGenerics extends TableGenerics> = () => Table<TGenerics>;
7
- export declare type CreateTableOptions<TRender extends AnyRender, TFilterFns extends CustomFilterFns<any>, TSortingFns extends CustomSortingFns<any>, TAggregationFns extends CustomAggregationFns<any>, TGenerics extends TableGenerics> = Partial<{
8
- render?: TRender;
9
- filterFns?: TFilterFns;
10
- sortingFns?: TSortingFns;
11
- aggregationFns?: TAggregationFns;
12
- } & Omit<TableOptionsResolved<TGenerics>, 'filterFns' | 'sortingFns' | 'aggregationFns'>>;
13
- export declare type Table<TGenerics extends TableGenerics> = {
14
- generics: TGenerics;
15
- options: Partial<TableOptionsResolved<TGenerics>>;
16
- setRowType: <TRow>() => Table<Overwrite<TGenerics, {
17
- Row: TRow;
18
- }>>;
19
- setTableMetaType: <TTableMeta>() => Table<Overwrite<TGenerics, {
20
- TableMeta: TTableMeta;
21
- }>>;
22
- setColumnMetaType: <TColumnMeta>() => Table<Overwrite<TGenerics, {
23
- ColumnMeta: TColumnMeta;
24
- }>>;
25
- setFilterMetaType: <TFilterMeta>() => Table<Overwrite<TGenerics, {
26
- FilterMeta: TFilterMeta;
27
- }>>;
28
- setOptions: <TFilterFns extends Record<string, FilterFn<any>>, TSortingFns extends Record<string, SortingFn<any>>, TAggregationFns extends Record<string, AggregationFn<any>>>(options: CreateTableOptions<any, TFilterFns, TSortingFns, TAggregationFns, TGenerics>) => Table<Overwrite<TGenerics, {
29
- FilterFns: IfDefined<TFilterFns, TGenerics['FilterFns']>;
30
- SortingFns: IfDefined<TSortingFns, TGenerics['SortingFns']>;
31
- AggregationFns: IfDefined<TAggregationFns, TGenerics['AggregationFns']>;
32
- }>>;
33
- createGroup: (column: Overwrite<Overwrite<ColumnDef<any>, {
34
- header: string;
35
- id?: string;
36
- }> | Overwrite<ColumnDef<any>, {
37
- id: string;
38
- header?: string | ((...any: any) => any);
39
- }>, {
40
- accessorFn?: never;
41
- accessorKey?: never;
42
- columns?: ColumnDef<any>[];
43
- }>) => ColumnDef<TGenerics>;
44
- createDisplayColumn: (column: Omit<ColumnDef<TGenerics>, 'columns'>) => ColumnDef<TGenerics>;
45
- createDataColumn: <TAccessor extends AccessorFn<TGenerics['Row']> | keyof TGenerics['Row']>(accessor: TAccessor, column: Overwrite<TAccessor extends (...args: any[]) => any ? ColumnDef<Overwrite<TGenerics, {
46
- Value: ReturnType<TAccessor>;
47
- }>> : TAccessor extends keyof TGenerics['Row'] ? Overwrite<ColumnDef<Overwrite<TGenerics, {
48
- Value: TGenerics['Row'][TAccessor];
49
- }>>, {
50
- id?: string;
51
- }> : never, {
52
- accessorFn?: never;
53
- accessorKey?: never;
54
- columns?: ColumnDef<any>[];
55
- }>) => ColumnDef<TGenerics>;
56
- createOptions: (options: TableOptions<TGenerics>) => TableOptions<TGenerics>;
57
- };
58
- export declare function createTableFactory<TRenderer extends AnyRender>(opts: {
59
- render: TRenderer;
60
- }): () => Table<{
61
- Renderer: TRenderer;
62
- Rendered: ReturnType<TRenderer>;
63
- }>;