@ekz/blueprintjs 0.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 (184) hide show
  1. package/LICENSE +21 -0
  2. package/lib/cjs/common/classes.d.ts +28 -0
  3. package/lib/cjs/common/classes.js +34 -0
  4. package/lib/cjs/common/classes.js.map +1 -0
  5. package/lib/cjs/common/index.d.ts +3 -0
  6. package/lib/cjs/common/index.js +9 -0
  7. package/lib/cjs/common/index.js.map +1 -0
  8. package/lib/cjs/components/pagination/index.d.ts +1 -0
  9. package/lib/cjs/components/pagination/index.js +5 -0
  10. package/lib/cjs/components/pagination/index.js.map +1 -0
  11. package/lib/cjs/components/pagination/pagination.d.ts +46 -0
  12. package/lib/cjs/components/pagination/pagination.js +57 -0
  13. package/lib/cjs/components/pagination/pagination.js.map +1 -0
  14. package/lib/cjs/components/table/columnFilter.d.ts +7 -0
  15. package/lib/cjs/components/table/columnFilter.js +22 -0
  16. package/lib/cjs/components/table/columnFilter.js.map +1 -0
  17. package/lib/cjs/components/table/columnHelpers.d.ts +340 -0
  18. package/lib/cjs/components/table/columnHelpers.js +42 -0
  19. package/lib/cjs/components/table/columnHelpers.js.map +1 -0
  20. package/lib/cjs/components/table/headerGroup.d.ts +8 -0
  21. package/lib/cjs/components/table/headerGroup.js +49 -0
  22. package/lib/cjs/components/table/headerGroup.js.map +1 -0
  23. package/lib/cjs/components/table/index.d.ts +9 -0
  24. package/lib/cjs/components/table/index.js +20 -0
  25. package/lib/cjs/components/table/index.js.map +1 -0
  26. package/lib/cjs/components/table/reactTableBase.d.ts +2 -0
  27. package/lib/cjs/components/table/reactTableBase.js +8 -0
  28. package/lib/cjs/components/table/reactTableBase.js.map +1 -0
  29. package/lib/cjs/components/table/table.d.ts +123 -0
  30. package/lib/cjs/components/table/table.js +243 -0
  31. package/lib/cjs/components/table/table.js.map +1 -0
  32. package/lib/cjs/components/table/tableMessages.d.ts +6 -0
  33. package/lib/cjs/components/table/tableMessages.js +11 -0
  34. package/lib/cjs/components/table/tableMessages.js.map +1 -0
  35. package/lib/cjs/components/table/theme.d.ts +4 -0
  36. package/lib/cjs/components/table/theme.js +9 -0
  37. package/lib/cjs/components/table/theme.js.map +1 -0
  38. package/lib/cjs/components/table/useAutoColumnSizer.d.ts +7 -0
  39. package/lib/cjs/components/table/useAutoColumnSizer.js +52 -0
  40. package/lib/cjs/components/table/useAutoColumnSizer.js.map +1 -0
  41. package/lib/cjs/components/table/useAutoHeight.d.ts +4 -0
  42. package/lib/cjs/components/table/useAutoHeight.js +70 -0
  43. package/lib/cjs/components/table/useAutoHeight.js.map +1 -0
  44. package/lib/cjs/components/table/useGroupedHeaderColumnSizer.d.ts +2 -0
  45. package/lib/cjs/components/table/useGroupedHeaderColumnSizer.js +57 -0
  46. package/lib/cjs/components/table/useGroupedHeaderColumnSizer.js.map +1 -0
  47. package/lib/cjs/components/table/useTable.d.ts +122 -0
  48. package/lib/cjs/components/table/useTable.js +31 -0
  49. package/lib/cjs/components/table/useTable.js.map +1 -0
  50. package/lib/cjs/components/table/useTableExport.d.ts +6 -0
  51. package/lib/cjs/components/table/useTableExport.js +41 -0
  52. package/lib/cjs/components/table/useTableExport.js.map +1 -0
  53. package/lib/cjs/components/table/useTableState.d.ts +3 -0
  54. package/lib/cjs/components/table/useTableState.js +14 -0
  55. package/lib/cjs/components/table/useTableState.js.map +1 -0
  56. package/lib/cjs/components/table/utils.d.ts +1 -0
  57. package/lib/cjs/components/table/utils.js +8 -0
  58. package/lib/cjs/components/table/utils.js.map +1 -0
  59. package/lib/cjs/index.d.ts +3 -0
  60. package/lib/cjs/index.js +7 -0
  61. package/lib/cjs/index.js.map +1 -0
  62. package/lib/css/blueprintjs.css +345 -0
  63. package/lib/css/blueprintjs.css.map +1 -0
  64. package/lib/esm/common/classes.d.ts +28 -0
  65. package/lib/esm/common/classes.js +31 -0
  66. package/lib/esm/common/classes.js.map +1 -0
  67. package/lib/esm/common/index.d.ts +3 -0
  68. package/lib/esm/common/index.js +4 -0
  69. package/lib/esm/common/index.js.map +1 -0
  70. package/lib/esm/components/pagination/index.d.ts +1 -0
  71. package/lib/esm/components/pagination/index.js +2 -0
  72. package/lib/esm/components/pagination/index.js.map +1 -0
  73. package/lib/esm/components/pagination/pagination.d.ts +46 -0
  74. package/lib/esm/components/pagination/pagination.js +53 -0
  75. package/lib/esm/components/pagination/pagination.js.map +1 -0
  76. package/lib/esm/components/table/columnFilter.d.ts +7 -0
  77. package/lib/esm/components/table/columnFilter.js +17 -0
  78. package/lib/esm/components/table/columnFilter.js.map +1 -0
  79. package/lib/esm/components/table/columnHelpers.d.ts +340 -0
  80. package/lib/esm/components/table/columnHelpers.js +37 -0
  81. package/lib/esm/components/table/columnHelpers.js.map +1 -0
  82. package/lib/esm/components/table/headerGroup.d.ts +8 -0
  83. package/lib/esm/components/table/headerGroup.js +44 -0
  84. package/lib/esm/components/table/headerGroup.js.map +1 -0
  85. package/lib/esm/components/table/index.d.ts +9 -0
  86. package/lib/esm/components/table/index.js +10 -0
  87. package/lib/esm/components/table/index.js.map +1 -0
  88. package/lib/esm/components/table/reactTableBase.d.ts +2 -0
  89. package/lib/esm/components/table/reactTableBase.js +3 -0
  90. package/lib/esm/components/table/reactTableBase.js.map +1 -0
  91. package/lib/esm/components/table/table.d.ts +123 -0
  92. package/lib/esm/components/table/table.js +239 -0
  93. package/lib/esm/components/table/table.js.map +1 -0
  94. package/lib/esm/components/table/tableMessages.d.ts +6 -0
  95. package/lib/esm/components/table/tableMessages.js +6 -0
  96. package/lib/esm/components/table/tableMessages.js.map +1 -0
  97. package/lib/esm/components/table/theme.d.ts +4 -0
  98. package/lib/esm/components/table/theme.js +6 -0
  99. package/lib/esm/components/table/theme.js.map +1 -0
  100. package/lib/esm/components/table/useAutoColumnSizer.d.ts +7 -0
  101. package/lib/esm/components/table/useAutoColumnSizer.js +47 -0
  102. package/lib/esm/components/table/useAutoColumnSizer.js.map +1 -0
  103. package/lib/esm/components/table/useAutoHeight.d.ts +4 -0
  104. package/lib/esm/components/table/useAutoHeight.js +66 -0
  105. package/lib/esm/components/table/useAutoHeight.js.map +1 -0
  106. package/lib/esm/components/table/useGroupedHeaderColumnSizer.d.ts +2 -0
  107. package/lib/esm/components/table/useGroupedHeaderColumnSizer.js +53 -0
  108. package/lib/esm/components/table/useGroupedHeaderColumnSizer.js.map +1 -0
  109. package/lib/esm/components/table/useTable.d.ts +122 -0
  110. package/lib/esm/components/table/useTable.js +28 -0
  111. package/lib/esm/components/table/useTable.js.map +1 -0
  112. package/lib/esm/components/table/useTableExport.d.ts +6 -0
  113. package/lib/esm/components/table/useTableExport.js +37 -0
  114. package/lib/esm/components/table/useTableExport.js.map +1 -0
  115. package/lib/esm/components/table/useTableState.d.ts +3 -0
  116. package/lib/esm/components/table/useTableState.js +11 -0
  117. package/lib/esm/components/table/useTableState.js.map +1 -0
  118. package/lib/esm/components/table/utils.d.ts +1 -0
  119. package/lib/esm/components/table/utils.js +5 -0
  120. package/lib/esm/components/table/utils.js.map +1 -0
  121. package/lib/esm/index.d.ts +3 -0
  122. package/lib/esm/index.js +4 -0
  123. package/lib/esm/index.js.map +1 -0
  124. package/lib/esnext/common/classes.d.ts +28 -0
  125. package/lib/esnext/common/classes.js +31 -0
  126. package/lib/esnext/common/classes.js.map +1 -0
  127. package/lib/esnext/common/index.d.ts +3 -0
  128. package/lib/esnext/common/index.js +4 -0
  129. package/lib/esnext/common/index.js.map +1 -0
  130. package/lib/esnext/components/pagination/index.d.ts +1 -0
  131. package/lib/esnext/components/pagination/index.js +2 -0
  132. package/lib/esnext/components/pagination/index.js.map +1 -0
  133. package/lib/esnext/components/pagination/pagination.d.ts +46 -0
  134. package/lib/esnext/components/pagination/pagination.js +53 -0
  135. package/lib/esnext/components/pagination/pagination.js.map +1 -0
  136. package/lib/esnext/components/table/columnFilter.d.ts +7 -0
  137. package/lib/esnext/components/table/columnFilter.js +17 -0
  138. package/lib/esnext/components/table/columnFilter.js.map +1 -0
  139. package/lib/esnext/components/table/columnHelpers.d.ts +340 -0
  140. package/lib/esnext/components/table/columnHelpers.js +37 -0
  141. package/lib/esnext/components/table/columnHelpers.js.map +1 -0
  142. package/lib/esnext/components/table/headerGroup.d.ts +8 -0
  143. package/lib/esnext/components/table/headerGroup.js +44 -0
  144. package/lib/esnext/components/table/headerGroup.js.map +1 -0
  145. package/lib/esnext/components/table/index.d.ts +9 -0
  146. package/lib/esnext/components/table/index.js +10 -0
  147. package/lib/esnext/components/table/index.js.map +1 -0
  148. package/lib/esnext/components/table/reactTableBase.d.ts +2 -0
  149. package/lib/esnext/components/table/reactTableBase.js +3 -0
  150. package/lib/esnext/components/table/reactTableBase.js.map +1 -0
  151. package/lib/esnext/components/table/table.d.ts +123 -0
  152. package/lib/esnext/components/table/table.js +239 -0
  153. package/lib/esnext/components/table/table.js.map +1 -0
  154. package/lib/esnext/components/table/tableMessages.d.ts +6 -0
  155. package/lib/esnext/components/table/tableMessages.js +6 -0
  156. package/lib/esnext/components/table/tableMessages.js.map +1 -0
  157. package/lib/esnext/components/table/theme.d.ts +4 -0
  158. package/lib/esnext/components/table/theme.js +6 -0
  159. package/lib/esnext/components/table/theme.js.map +1 -0
  160. package/lib/esnext/components/table/useAutoColumnSizer.d.ts +7 -0
  161. package/lib/esnext/components/table/useAutoColumnSizer.js +47 -0
  162. package/lib/esnext/components/table/useAutoColumnSizer.js.map +1 -0
  163. package/lib/esnext/components/table/useAutoHeight.d.ts +4 -0
  164. package/lib/esnext/components/table/useAutoHeight.js +66 -0
  165. package/lib/esnext/components/table/useAutoHeight.js.map +1 -0
  166. package/lib/esnext/components/table/useGroupedHeaderColumnSizer.d.ts +2 -0
  167. package/lib/esnext/components/table/useGroupedHeaderColumnSizer.js +53 -0
  168. package/lib/esnext/components/table/useGroupedHeaderColumnSizer.js.map +1 -0
  169. package/lib/esnext/components/table/useTable.d.ts +122 -0
  170. package/lib/esnext/components/table/useTable.js +28 -0
  171. package/lib/esnext/components/table/useTable.js.map +1 -0
  172. package/lib/esnext/components/table/useTableExport.d.ts +6 -0
  173. package/lib/esnext/components/table/useTableExport.js +37 -0
  174. package/lib/esnext/components/table/useTableExport.js.map +1 -0
  175. package/lib/esnext/components/table/useTableState.d.ts +3 -0
  176. package/lib/esnext/components/table/useTableState.js +11 -0
  177. package/lib/esnext/components/table/useTableState.js.map +1 -0
  178. package/lib/esnext/components/table/utils.d.ts +1 -0
  179. package/lib/esnext/components/table/utils.js +5 -0
  180. package/lib/esnext/components/table/utils.js.map +1 -0
  181. package/lib/esnext/index.d.ts +3 -0
  182. package/lib/esnext/index.js +4 -0
  183. package/lib/esnext/index.js.map +1 -0
  184. package/package.json +61 -0
@@ -0,0 +1,239 @@
1
+ import { Button, Classes as CoreClasses, InputGroup, Intent, MenuItem, NonIdealState, ResizeSensor, Spinner } from '@blueprintjs/core';
2
+ import { Search, Th, Cross } from '@blueprintjs/icons';
3
+ import { Select } from '@blueprintjs/select';
4
+ import { useDebouncedEffect } from '@ekz/react-utils';
5
+ import classNames from 'classnames';
6
+ import * as React from 'react';
7
+ import { Classes, DISPLAYNAME_PREFIX } from '../../common';
8
+ import { Pagination } from '../pagination';
9
+ import { HeaderGroupWrapper } from './headerGroup';
10
+ import { flexRender } from './reactTableBase';
11
+ import { useTableMessages } from './tableMessages';
12
+ import { TableTheme } from './theme';
13
+ import { useAutoColumnSizer } from './useAutoColumnSizer';
14
+ import { useAutoHeight } from './useAutoHeight';
15
+ import { useGroupedHeaderColumnSizer } from './useGroupedHeaderColumnSizer';
16
+ const DEFAULT_PAGE_SIZE_OPTIONS = [10, 30, 50, 100];
17
+ const Table = Object.assign(
18
+ // eslint-disable-next-line react/display-name
19
+ (props) => {
20
+ const { displayHeader = true, displayPagination = true, elevation = 2, ellipsize = true, theme = TableTheme.Standard, manualPageSizeVisible, manualPageSizeOptions } = props;
21
+ const table = props.table;
22
+ const tableState = table.getState();
23
+ const metadata = table.options.meta;
24
+ const tableMessages = useTableMessages();
25
+ const columnSizeVars = React.useMemo(() => {
26
+ const headers = table.getFlatHeaders();
27
+ return headers.reduce((result, header) => {
28
+ result[`--header-${header.id}-size`] = header.getSize();
29
+ result[`--col-${header.column.id}-size`] = header.column.getSize();
30
+ return result;
31
+ }, {});
32
+ // eslint-disable-next-line react-hooks/exhaustive-deps
33
+ }, [tableState.columnSizing, tableState.columnSizingInfo]);
34
+ const setGlobalFilter = table.setGlobalFilter;
35
+ const handleGlobalFilterChange = React.useCallback((event) => setGlobalFilter(event.currentTarget.value), [setGlobalFilter]);
36
+ const clearGlobalFilter = React.useCallback(() => setGlobalFilter(''), [setGlobalFilter]);
37
+ const displayTopToolbar = (props.leftToolbar != null && props.leftToolbar !== false) ||
38
+ (props.rightToolbar != null && props.rightToolbar !== false) ||
39
+ metadata.enableGlobalFilter;
40
+ const [ref, setRef] = React.useState(null);
41
+ const bodyRef = React.useRef(null);
42
+ const nonIdealStateRef = React.useRef(null);
43
+ const autoHeightProp = props.autoHeight;
44
+ const manualPageSizeEnabled = manualPageSizeVisible ?? true;
45
+ const finalPageSizeOptions = React.useMemo(() => {
46
+ if (!manualPageSizeEnabled)
47
+ return null;
48
+ return manualPageSizeOptions ?? DEFAULT_PAGE_SIZE_OPTIONS;
49
+ }, [manualPageSizeEnabled, manualPageSizeOptions]);
50
+ const [manualPageSizeValue, setManualPageSizeValue] = React.useState(null);
51
+ const pageSizeSelectItems = React.useMemo(() => {
52
+ if (!finalPageSizeOptions)
53
+ return null;
54
+ const items = finalPageSizeOptions.map((n) => ({
55
+ label: String(n),
56
+ value: n
57
+ }));
58
+ if (autoHeightProp) {
59
+ return [{ value: null, label: 'Auto' }, ...items];
60
+ }
61
+ return items;
62
+ }, [finalPageSizeOptions, autoHeightProp]);
63
+ const selectedPageSizeItem = React.useMemo(() => {
64
+ if (!pageSizeSelectItems)
65
+ return undefined;
66
+ return pageSizeSelectItems.find((opt) => opt.value === manualPageSizeValue);
67
+ }, [pageSizeSelectItems, manualPageSizeValue]);
68
+ const isAutoHeightEnabled = autoHeightProp !== undefined;
69
+ const autoHeightValue = manualPageSizeValue == null ? autoHeightProp : undefined;
70
+ const handleResize = useAutoHeight(autoHeightValue, props.autoHeightParentHeight, props.autoHeightMaxHeight, props.autoHeightAverageRowHeight, props.autoHeightObserveRows, props.theme, table, ref, bodyRef, nonIdealStateRef);
71
+ const { recalculate: recalcColumnSizing } = useAutoColumnSizer(ref, table, props.theme);
72
+ const groupedHeaderColumnSizeVars = useGroupedHeaderColumnSizer(table, tableState);
73
+ const lastObservedWidthRef = React.useRef(null);
74
+ const resizeRafIdRef = React.useRef(null);
75
+ // Clear any pending rAF on unmount to avoid calling setState after dispose
76
+ React.useEffect(() => () => {
77
+ if (resizeRafIdRef.current != null) {
78
+ cancelAnimationFrame(resizeRafIdRef.current);
79
+ }
80
+ }, []);
81
+ const handleColumnsResize = React.useCallback((entries) => {
82
+ const rawWidth = entries[0]?.contentRect?.width;
83
+ if (rawWidth == null)
84
+ return;
85
+ const width = Math.round(rawWidth);
86
+ const prev = lastObservedWidthRef.current;
87
+ if (prev == null || Math.abs(prev - width) >= 2) {
88
+ lastObservedWidthRef.current = width;
89
+ if (resizeRafIdRef.current != null) {
90
+ cancelAnimationFrame(resizeRafIdRef.current);
91
+ }
92
+ resizeRafIdRef.current = requestAnimationFrame(() => {
93
+ recalcColumnSizing();
94
+ resizeRafIdRef.current = null;
95
+ });
96
+ }
97
+ if (isAutoHeightEnabled) {
98
+ handleResize(entries);
99
+ }
100
+ }, [isAutoHeightEnabled, handleResize, recalcColumnSizing]);
101
+ const loadingIndicator = metadata.loadingIndicator != null ? (metadata.loadingIndicator) : (React.createElement(Spinner, { intent: Intent.PRIMARY, size: 40 }));
102
+ const targetRef = React.useRef(ref);
103
+ React.useEffect(() => {
104
+ targetRef.current = ref;
105
+ }, [ref]);
106
+ useDebouncedEffect(500, () => {
107
+ if (manualPageSizeValue != null && manualPageSizeValue > 0) {
108
+ table.setPageSize(manualPageSizeValue);
109
+ }
110
+ }, [manualPageSizeValue, table]);
111
+ const handleSelectPageSize = React.useCallback((item) => {
112
+ if (item.value === null) {
113
+ setManualPageSizeValue(null); // Auto
114
+ }
115
+ else {
116
+ setManualPageSizeValue(item.value);
117
+ }
118
+ }, []);
119
+ const renderPageSizeOption = React.useCallback((item, { handleClick, modifiers }) => {
120
+ if (!modifiers.matchesPredicate) {
121
+ return null;
122
+ }
123
+ return (React.createElement(MenuItem, { key: item.value, text: item.label, active: modifiers.active, disabled: modifiers.disabled, onClick: handleClick }));
124
+ }, []);
125
+ const prevTablePageSizeRef = React.useRef(tableState.pagination.pageSize);
126
+ React.useEffect(() => {
127
+ prevTablePageSizeRef.current = tableState.pagination.pageSize;
128
+ }, [tableState.pagination.pageSize]);
129
+ React.useEffect(() => {
130
+ const tablePageSize = tableState.pagination.pageSize;
131
+ const prev = prevTablePageSizeRef.current;
132
+ const shouldSync = manualPageSizeEnabled &&
133
+ prev !== tablePageSize &&
134
+ !(autoHeightProp && manualPageSizeValue == null) &&
135
+ manualPageSizeValue !== tablePageSize;
136
+ if (prev !== tablePageSize) {
137
+ prevTablePageSizeRef.current = tablePageSize;
138
+ }
139
+ if (shouldSync) {
140
+ setManualPageSizeValue(tablePageSize);
141
+ }
142
+ }, [
143
+ manualPageSizeEnabled,
144
+ autoHeightProp,
145
+ manualPageSizeValue,
146
+ tableState.pagination.pageSize
147
+ ]);
148
+ React.useEffect(() => {
149
+ const shouldAutoSelect = manualPageSizeEnabled && !autoHeightProp && manualPageSizeValue == null;
150
+ if (!shouldAutoSelect)
151
+ return;
152
+ const firstNumericOption = pageSizeSelectItems?.find((o) => o.value != null);
153
+ if (firstNumericOption) {
154
+ setManualPageSizeValue(firstNumericOption.value);
155
+ }
156
+ }, [manualPageSizeEnabled, autoHeightProp, manualPageSizeValue, pageSizeSelectItems]);
157
+ return (React.createElement(ResizeSensor, { targetRef: targetRef, observeParents: true, onResize: handleColumnsResize },
158
+ React.createElement("div", { ref: setRef, className: classNames(Classes.REACT_TABLE, props.className, {
159
+ [CoreClasses.elevationClass(elevation)]: elevation >= 0 && theme === TableTheme.Standard
160
+ }), "data-theme": theme ?? TableTheme.Standard },
161
+ displayTopToolbar && (React.createElement("div", { className: Classes.REACT_TABLE_TOP_TOOLBAR },
162
+ React.createElement("div", { className: Classes.REACT_TABLE_TOP_TOOLBAR_LEFT }, props.leftToolbar),
163
+ React.createElement("div", { className: Classes.REACT_TABLE_TOP_TOOLBAR_RIGHT },
164
+ props.rightToolbar,
165
+ metadata.enableGlobalFilter && (React.createElement(InputGroup, { className: Classes.REACT_TABLE_GLOBAL_FILTER, leftIcon: React.createElement(Search, null), rightElement: tableState.globalFilter != null &&
166
+ tableState.globalFilter.length > 0 ? (React.createElement(Button, { icon: React.createElement(Cross, null), onClick: clearGlobalFilter, minimal: true })) : (React.createElement(React.Fragment, null)), value: tableState.globalFilter ?? '', onChange: handleGlobalFilterChange }))))),
167
+ React.createElement("div", { className: Classes.REACT_TABLE_CONTENT, "data-top-toolbar": displayTopToolbar, "data-loading": metadata.isLoading, style: { ...columnSizeVars, ...groupedHeaderColumnSizeVars } },
168
+ metadata.isLoading && (React.createElement("div", { className: Classes.REACT_TABLE_LOADING }, loadingIndicator)),
169
+ displayHeader && (React.createElement("div", { className: Classes.REACT_TABLE_HEAD }, table.getHeaderGroups().map((headerGroup) => (React.createElement(HeaderGroupWrapper, { key: headerGroup.id, headerGroup: headerGroup, table: table }))))),
170
+ table.getRowCount() === 0 ? (React.createElement("div", { ref: nonIdealStateRef, className: Classes.REACT_TABLE_EMPTY, "data-loading": metadata.isLoading }, metadata.isLoading ? null : (React.createElement(NonIdealState, { icon: props.noResultsIcon ?? React.createElement(Th, { size: 64 }), title: props.noResultsTitle ??
171
+ tableMessages.noResultsTitle ??
172
+ 'No results available', description: props.noResultsDescription, action: props.noResultsActions })))) : tableState.columnSizingInfo.isResizingColumn ? (React.createElement(MemoizedTableBodyForResize, { table: table, ellipsize: ellipsize, metadata: metadata })) : (React.createElement(TableBody, { ref: bodyRef, table: table, ellipsize: ellipsize, metadata: metadata }))),
173
+ displayPagination && (manualPageSizeEnabled || table.getPageCount() > 1) && (React.createElement("div", { className: Classes.REACT_TABLE_PAGINATION },
174
+ manualPageSizeEnabled && pageSizeSelectItems != null && (React.createElement("div", { style: { flexShrink: 1, flexGrow: 1 } },
175
+ React.createElement("div", { style: { display: 'flex', alignItems: 'center', gap: 8 } },
176
+ React.createElement("span", { style: { whiteSpace: 'nowrap' } }, "Rows per page:"),
177
+ React.createElement(Select, { items: pageSizeSelectItems, itemRenderer: renderPageSizeOption, onItemSelect: handleSelectPageSize, filterable: false },
178
+ React.createElement(Button, { minimal: true, outlined: true, rightIcon: "caret-down", text: selectedPageSizeItem?.label ??
179
+ (manualPageSizeValue === null
180
+ ? 'Auto'
181
+ : String(manualPageSizeValue)) }))))),
182
+ React.createElement("div", { style: {
183
+ display: 'flex',
184
+ justifyContent: 'flex-end',
185
+ flexShrink: 1,
186
+ flexGrow: 1,
187
+ alignSelf: 'flex-end'
188
+ } },
189
+ React.createElement(Pagination, { centerPagesDisplayed: 3, selectedPage: table.getState().pagination.pageIndex, onPageChange: table.setPageIndex, pageCount: table.getPageCount(), previousMessage: null, nextMessage: null })))))));
190
+ }, {
191
+ displayName: `${DISPLAYNAME_PREFIX}.Table`,
192
+ ofType: function ofType() {
193
+ return Table;
194
+ }
195
+ });
196
+ const TableBody = React.forwardRef(function TableBody(props, ref) {
197
+ const onRowClick = props.metadata.onRowClick;
198
+ return (React.createElement("div", { ref: ref, className: Classes.REACT_TABLE_BODY }, props.table.getRowModel().rows.map((row) => {
199
+ const shouldRenderSubComponent = props.metadata.getSubComponentExpanded != null
200
+ ? props.metadata.getSubComponentExpanded(row.original, row.index)
201
+ : row.getIsExpanded();
202
+ const subComponent = shouldRenderSubComponent &&
203
+ props.metadata.getSubComponent &&
204
+ props.metadata.getSubComponent(row.original, row.index);
205
+ const clickable = onRowClick != null && props.metadata.getRowClickable != null
206
+ ? props.metadata.getRowClickable(row.original, row.index)
207
+ : onRowClick != null;
208
+ const className = props.metadata.getRowClassName != null &&
209
+ props.metadata.getRowClassName(row.original, row.index);
210
+ const onClick = clickable && onRowClick != null
211
+ ? (event) => {
212
+ let target = event.target;
213
+ while ((target instanceof HTMLElement || target instanceof SVGElement) &&
214
+ target.parentElement instanceof Element &&
215
+ !target.classList.contains(Classes.REACT_TABLE_CELL) &&
216
+ !target.dataset.skipRowClick) {
217
+ target = target.parentElement;
218
+ }
219
+ if (!('dataset' in target) || !target.dataset.skipRowClick) {
220
+ onRowClick(row.original, row, event);
221
+ }
222
+ }
223
+ : undefined;
224
+ return (React.createElement(React.Fragment, { key: row.id },
225
+ React.createElement("div", { className: classNames(Classes.REACT_TABLE_ROW, className), "data-depth": row.depth, "data-clickable": clickable, onClick: onClick }, row.getVisibleCells().map((cell) => {
226
+ const definition = cell.column.columnDef;
227
+ const customClassName = definition.getClassName != null
228
+ ? definition.getClassName(cell.getContext())
229
+ : null;
230
+ return (React.createElement("div", { key: cell.id, className: classNames(Classes.REACT_TABLE_CELL, customClassName, 'grouped'), "data-ellipsize": props.ellipsize, "data-skip-row-click": definition.skipRowClick, style: {
231
+ width: `calc(var(--col-${cell.column.id}-size) * 1px)`
232
+ } }, flexRender(cell.column.columnDef.cell, cell.getContext())));
233
+ })),
234
+ subComponent != null && subComponent !== false && (React.createElement("div", { className: Classes.REACT_TABLE_ROW_SUB_COMPONENT }, subComponent))));
235
+ })));
236
+ });
237
+ const MemoizedTableBodyForResize = React.memo(TableBody, (prev, next) => prev.table.options.data === next.table.options.data);
238
+ export { Table };
239
+ //# sourceMappingURL=table.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"table.js","sourceRoot":"","sources":["../../../../src/main/web/components/table/table.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import * as React from 'react';
2
+ export type TableMessages = {
3
+ noResultsTitle?: React.ReactNode;
4
+ };
5
+ export declare const TableMessagesContext: React.Context<TableMessages>;
6
+ export declare function useTableMessages(): TableMessages;
@@ -0,0 +1,6 @@
1
+ import * as React from 'react';
2
+ export const TableMessagesContext = React.createContext({});
3
+ export function useTableMessages() {
4
+ return React.useContext(TableMessagesContext);
5
+ }
6
+ //# sourceMappingURL=tableMessages.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tableMessages.js","sourceRoot":"","sources":["../../../../src/main/web/components/table/tableMessages.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAM/B,MAAM,CAAC,MAAM,oBAAoB,GAAG,KAAK,CAAC,aAAa,CAAgB,EAAE,CAAC,CAAC;AAE3E,MAAM,UAAU,gBAAgB;IAC5B,OAAO,KAAK,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAC;AAClD,CAAC"}
@@ -0,0 +1,4 @@
1
+ export declare enum TableTheme {
2
+ Standard = "standard",
3
+ Segment = "segment"
4
+ }
@@ -0,0 +1,6 @@
1
+ export var TableTheme;
2
+ (function (TableTheme) {
3
+ TableTheme["Standard"] = "standard";
4
+ TableTheme["Segment"] = "segment";
5
+ })(TableTheme || (TableTheme = {}));
6
+ //# sourceMappingURL=theme.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"theme.js","sourceRoot":"","sources":["../../../../src/main/web/components/table/theme.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,UAGX;AAHD,WAAY,UAAU;IAClB,mCAAqB,CAAA;IACrB,iCAAmB,CAAA;AACvB,CAAC,EAHW,UAAU,KAAV,UAAU,QAGrB"}
@@ -0,0 +1,7 @@
1
+ import type { Table } from './reactTableBase';
2
+ import { TableTheme } from './theme';
3
+ export declare const CELL_PADDING = 20;
4
+ export declare const CELL_BORDER = 1;
5
+ export declare function useAutoColumnSizer(ref: HTMLDivElement | null, table: Table<unknown>, theme: TableTheme | undefined): {
6
+ recalculate: () => void;
7
+ };
@@ -0,0 +1,47 @@
1
+ import * as React from 'react';
2
+ import { TableTheme } from './theme';
3
+ export const CELL_PADDING = 20;
4
+ export const CELL_BORDER = 1;
5
+ export function useAutoColumnSizer(ref, table, theme) {
6
+ const visibleFlatColumns = table.getVisibleFlatColumns();
7
+ const setColumnSizing = table.setColumnSizing;
8
+ const recalculate = React.useCallback(() => {
9
+ const availableWidth = (ref?.clientWidth ?? 0) -
10
+ visibleFlatColumns.length * CELL_PADDING - // cell padding
11
+ (visibleFlatColumns.length - CELL_BORDER) - // cell border
12
+ (theme === TableTheme.Segment ? 40 : 0); // theme padding
13
+ if (availableWidth > 0) {
14
+ const { autoColumns, totalFixedSize } = visibleFlatColumns.reduce((result, column) => {
15
+ if (column.columnDef.size === -1) {
16
+ return {
17
+ ...result,
18
+ autoColumns: [...result.autoColumns, column.id]
19
+ };
20
+ }
21
+ else {
22
+ return {
23
+ ...result,
24
+ totalFixedSize: result.totalFixedSize + (column.columnDef.size ?? 0)
25
+ };
26
+ }
27
+ }, {
28
+ autoColumns: [],
29
+ totalFixedSize: 0
30
+ });
31
+ if (autoColumns.length > 0) {
32
+ const remainingWidthPerColumn = Math.max((availableWidth - totalFixedSize) / autoColumns.length, 150);
33
+ const sizing = autoColumns.reduce((sizeByColumn, columnId) => ({
34
+ ...sizeByColumn,
35
+ [columnId]: remainingWidthPerColumn
36
+ }), {});
37
+ setColumnSizing((previousSizing) => ({ ...previousSizing, ...sizing }));
38
+ }
39
+ }
40
+ // eslint-disable-next-line react-hooks/exhaustive-deps
41
+ }, [visibleFlatColumns, setColumnSizing, theme, ref]);
42
+ React.useEffect(() => {
43
+ recalculate();
44
+ }, [recalculate, visibleFlatColumns, ref?.clientWidth]);
45
+ return { recalculate };
46
+ }
47
+ //# sourceMappingURL=useAutoColumnSizer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useAutoColumnSizer.js","sourceRoot":"","sources":["../../../../src/main/web/components/table/useAutoColumnSizer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAErC,MAAM,CAAC,MAAM,YAAY,GAAG,EAAE,CAAC;AAC/B,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,CAAC;AAE7B,MAAM,UAAU,kBAAkB,CAC9B,GAA0B,EAC1B,KAAqB,EACrB,KAA6B;IAE7B,MAAM,kBAAkB,GAAG,KAAK,CAAC,qBAAqB,EAAE,CAAC;IACzD,MAAM,eAAe,GAAG,KAAK,CAAC,eAAe,CAAC;IAE9C,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE;QACvC,MAAM,cAAc,GAChB,CAAC,GAAG,EAAE,WAAW,IAAI,CAAC,CAAC;YACvB,kBAAkB,CAAC,MAAM,GAAG,YAAY,GAAG,eAAe;YAC1D,CAAC,kBAAkB,CAAC,MAAM,GAAG,WAAW,CAAC,GAAG,cAAc;YAC1D,CAAC,KAAK,KAAK,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB;QAC7D,IAAI,cAAc,GAAG,CAAC,EAAE,CAAC;YACrB,MAAM,EAAE,WAAW,EAAE,cAAc,EAAE,GAAG,kBAAkB,CAAC,MAAM,CAI7D,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE;gBACf,IAAI,MAAM,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC;oBAC/B,OAAO;wBACH,GAAG,MAAM;wBACT,WAAW,EAAE,CAAC,GAAG,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,EAAE,CAAC;qBAClD,CAAC;gBACN,CAAC;qBAAM,CAAC;oBACJ,OAAO;wBACH,GAAG,MAAM;wBACT,cAAc,EAAE,MAAM,CAAC,cAAc,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,CAAC;qBACvE,CAAC;gBACN,CAAC;YACL,CAAC,EACD;gBACI,WAAW,EAAE,EAAE;gBACf,cAAc,EAAE,CAAC;aACpB,CACJ,CAAC;YACF,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACzB,MAAM,uBAAuB,GAAG,IAAI,CAAC,GAAG,CACpC,CAAC,cAAc,GAAG,cAAc,CAAC,GAAG,WAAW,CAAC,MAAM,EACtD,GAAG,CACN,CAAC;gBACF,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,CAC7B,CAAC,YAAY,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;oBACzB,GAAG,YAAY;oBACf,CAAC,QAAQ,CAAC,EAAE,uBAAuB;iBACtC,CAAC,EACF,EAAE,CACL,CAAC;gBACF,eAAe,CAAC,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,cAAc,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC,CAAC;YAC5E,CAAC;QACL,CAAC;QACD,uDAAuD;IAC3D,CAAC,EAAE,CAAC,kBAAkB,EAAE,eAAe,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;IAEtD,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACjB,WAAW,EAAE,CAAC;IAClB,CAAC,EAAE,CAAC,WAAW,EAAE,kBAAkB,EAAE,GAAG,EAAE,WAAW,CAAC,CAAC,CAAC;IAExD,OAAO,EAAE,WAAW,EAAE,CAAC;AAC3B,CAAC"}
@@ -0,0 +1,4 @@
1
+ import * as React from 'react';
2
+ import type { Table } from './reactTableBase';
3
+ import type { TableTheme } from './theme';
4
+ export declare function useAutoHeight(autoHeight: [minPageSize: number, maxPageSize: number] | undefined, autoHeightParentHeight: number | undefined, autoHeightMaxHeight: number | undefined, autoHeightAverageRowHeight: number | undefined, autoHeightObserveRows: boolean | undefined, theme: TableTheme | undefined, table: Table<unknown>, ref: HTMLDivElement | null, bodyRef: React.RefObject<HTMLDivElement>, nonIdealStateRef: React.RefObject<HTMLDivElement>): (entries: ResizeObserverEntry[]) => void;
@@ -0,0 +1,66 @@
1
+ import invariant from 'invariant';
2
+ import * as React from 'react';
3
+ export function useAutoHeight(autoHeight, autoHeightParentHeight, autoHeightMaxHeight, autoHeightAverageRowHeight, autoHeightObserveRows, theme, table, ref, bodyRef, nonIdealStateRef) {
4
+ const visibleRowCount = table.getRowModel().rows.length ?? 0;
5
+ const [minPageSize, maxPageSize] = autoHeight ?? [0, 0];
6
+ invariant(autoHeight == null || maxPageSize > minPageSize, 'maxPageSize must be greater than minPageSize');
7
+ invariant(autoHeight == null || minPageSize > 0, 'minPageSize must be greater than 0');
8
+ invariant(autoHeight == null || maxPageSize > 1, 'maxPageSize must be greater than 0');
9
+ const calculatePageSize = React.useCallback(() => {
10
+ if (minPageSize > 0 && maxPageSize > 0) {
11
+ const parentHeight = Math.min(autoHeightParentHeight ?? ref?.parentElement?.clientHeight ?? 0, autoHeightMaxHeight ?? Number.MAX_VALUE);
12
+ const tableHeight = ref?.clientHeight ?? 0;
13
+ const bodyHeight = bodyRef.current?.clientHeight ?? nonIdealStateRef.current?.clientHeight ?? 0;
14
+ const hasPagination = table.getPageCount() > 1;
15
+ const averageRowHeight = autoHeightAverageRowHeight ??
16
+ (visibleRowCount > 0 ? bodyHeight / visibleRowCount : 40);
17
+ const nonBodyTotalSize = tableHeight - bodyHeight + (hasPagination ? 0 : 54); // fixed footer height (pagination)
18
+ const pageSize = Math.min(Math.max((parentHeight - nonBodyTotalSize) / averageRowHeight, minPageSize), maxPageSize);
19
+ if (table.options.debugTable) {
20
+ // eslint-disable-next-line no-console
21
+ console.log('Calculating page size', {
22
+ averageRowHeight,
23
+ bodyHeight,
24
+ maxPageSize,
25
+ minPageSize,
26
+ pageSize,
27
+ parentHeight,
28
+ tableHeight,
29
+ visibleRowCount
30
+ });
31
+ }
32
+ table.setPageSize(Math.floor(pageSize));
33
+ }
34
+ // eslint-disable-next-line react-hooks/exhaustive-deps
35
+ }, [
36
+ ref,
37
+ minPageSize,
38
+ maxPageSize,
39
+ autoHeightParentHeight,
40
+ autoHeightMaxHeight,
41
+ autoHeightAverageRowHeight,
42
+ visibleRowCount,
43
+ theme,
44
+ table
45
+ ]);
46
+ React.useEffect(() => calculatePageSize(), [calculatePageSize]);
47
+ const handleResize = React.useCallback((entries) => {
48
+ if (entries.length > 0) {
49
+ if (entries[0].target !== ref) {
50
+ calculatePageSize();
51
+ }
52
+ }
53
+ }, [ref, calculatePageSize]);
54
+ const bodyRefCurrent = bodyRef.current;
55
+ React.useEffect(() => {
56
+ if (autoHeightObserveRows && autoHeight != null && bodyRefCurrent != null) {
57
+ const observer = new ResizeObserver(() => {
58
+ calculatePageSize();
59
+ });
60
+ observer.observe(bodyRefCurrent);
61
+ return () => observer.disconnect();
62
+ }
63
+ }, [autoHeightObserveRows, autoHeight, bodyRefCurrent, calculatePageSize]);
64
+ return handleResize;
65
+ }
66
+ //# sourceMappingURL=useAutoHeight.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useAutoHeight.js","sourceRoot":"","sources":["../../../../src/main/web/components/table/useAutoHeight.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import type { Table, TableState } from './reactTableBase';
2
+ export declare function useGroupedHeaderColumnSizer(table: Table<unknown>, tableState: TableState): Record<string, number>;
@@ -0,0 +1,53 @@
1
+ import React from 'react';
2
+ import { CELL_BORDER, CELL_PADDING } from './useAutoColumnSizer';
3
+ export function useGroupedHeaderColumnSizer(table, tableState) {
4
+ const columnSize = table.getVisibleFlatColumns().length;
5
+ const tableColumnOrder = table.getState().columnOrder;
6
+ const tableColumnVisibility = table.getState().columnVisibility;
7
+ const { columnSizing, columnSizingInfo } = tableState;
8
+ return React.useMemo(() => {
9
+ return table.getHeaderGroups().reduce((vars, group) => group.headers.reduce((result, header) => {
10
+ const isGroupHeader = !header.isPlaceholder && header.subHeaders?.length > 0;
11
+ if (!isGroupHeader)
12
+ return result;
13
+ result[`--header-${header.id}-size`] = getSpanSizeFromSizing(header, tableState.columnSizing, CELL_PADDING + CELL_BORDER);
14
+ return result;
15
+ }, vars), {});
16
+ // eslint-disable-next-line react-hooks/exhaustive-deps
17
+ }, [
18
+ table,
19
+ columnSize,
20
+ columnSizing,
21
+ columnSizingInfo,
22
+ tableColumnOrder,
23
+ tableColumnVisibility
24
+ ]);
25
+ }
26
+ function getSpanMetricsFromSizing(
27
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
28
+ header, sizing) {
29
+ if (!header.subHeaders?.length) {
30
+ const id = header.column.id;
31
+ return {
32
+ leafCount: 1,
33
+ leafSum: sizing[id] ?? header.getSize()
34
+ };
35
+ }
36
+ return header.subHeaders.reduce((acc, sub) => {
37
+ const m = getSpanMetricsFromSizing(sub, sizing);
38
+ return {
39
+ leafCount: acc.leafCount + m.leafCount,
40
+ leafSum: acc.leafSum + m.leafSum
41
+ };
42
+ }, { leafSum: 0, leafCount: 0 });
43
+ }
44
+ function getSpanSizeFromSizing(
45
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
46
+ header, sizing, betweenLeavesPx) {
47
+ if (header.isPlaceholder)
48
+ return header.getSize();
49
+ const { leafSum, leafCount } = getSpanMetricsFromSizing(header, sizing);
50
+ const between = Math.max(0, leafCount - 1) * betweenLeavesPx;
51
+ return leafSum + between;
52
+ }
53
+ //# sourceMappingURL=useGroupedHeaderColumnSizer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useGroupedHeaderColumnSizer.js","sourceRoot":"","sources":["../../../../src/main/web/components/table/useGroupedHeaderColumnSizer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEjE,MAAM,UAAU,2BAA2B,CACvC,KAAqB,EACrB,UAAsB;IAEtB,MAAM,UAAU,GAAG,KAAK,CAAC,qBAAqB,EAAE,CAAC,MAAM,CAAC;IACxD,MAAM,gBAAgB,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC,WAAW,CAAC;IACtD,MAAM,qBAAqB,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC,gBAAgB,CAAC;IAChE,MAAM,EAAE,YAAY,EAAE,gBAAgB,EAAE,GAAG,UAAU,CAAC;IACtD,OAAO,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE;QACtB,OAAO,KAAK,CAAC,eAAe,EAAE,CAAC,MAAM,CACjC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CACZ,KAAK,CAAC,OAAO,CAAC,MAAM,CAAyB,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE;YAC5D,MAAM,aAAa,GAAG,CAAC,MAAM,CAAC,aAAa,IAAI,MAAM,CAAC,UAAU,EAAE,MAAM,GAAG,CAAC,CAAC;YAE7E,IAAI,CAAC,aAAa;gBAAE,OAAO,MAAM,CAAC;YAElC,MAAM,CAAC,YAAY,MAAM,CAAC,EAAE,OAAO,CAAC,GAAG,qBAAqB,CACxD,MAAM,EACN,UAAU,CAAC,YAAY,EACvB,YAAY,GAAG,WAAW,CAC7B,CAAC;YAEF,OAAO,MAAM,CAAC;QAClB,CAAC,EAAE,IAAI,CAAC,EACZ,EAAE,CACL,CAAC;QACF,uDAAuD;IAC3D,CAAC,EAAE;QACC,KAAK;QACL,UAAU;QACV,YAAY;QACZ,gBAAgB;QAChB,gBAAgB;QAChB,qBAAqB;KACxB,CAAC,CAAC;AACP,CAAC;AAID,SAAS,wBAAwB;AAC7B,8DAA8D;AAC9D,MAAwB,EACxB,MAA0C;IAE1C,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,CAAC;QAC7B,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;QAC5B,OAAO;YACH,SAAS,EAAE,CAAC;YACZ,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC,IAAI,MAAM,CAAC,OAAO,EAAE;SAC1C,CAAC;IACN,CAAC;IAED,OAAO,MAAM,CAAC,UAAU,CAAC,MAAM,CAC3B,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QACT,MAAM,CAAC,GAAG,wBAAwB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QAChD,OAAO;YACH,SAAS,EAAE,GAAG,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS;YACtC,OAAO,EAAE,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO;SACnC,CAAC;IACN,CAAC,EACD,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,CAC/B,CAAC;AACN,CAAC;AAED,SAAS,qBAAqB;AAC1B,8DAA8D;AAC9D,MAAwB,EACxB,MAA0C,EAC1C,eAAuB;IAEvB,IAAI,MAAM,CAAC,aAAa;QAAE,OAAO,MAAM,CAAC,OAAO,EAAE,CAAC;IAElD,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,wBAAwB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxE,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,GAAG,CAAC,CAAC,GAAG,eAAe,CAAC;IAC7D,OAAO,OAAO,GAAG,OAAO,CAAC;AAC7B,CAAC"}
@@ -0,0 +1,122 @@
1
+ import { type InitialTableState, type Row, type Table as TableAPI, type TableOptions } from './reactTableBase';
2
+ /**
3
+ * `UseTableOptions` is a reexport of `TableOptions` with more options and relevant documentation.
4
+ * Not all properties supported by `@tanstack/react-table` have been documented here.
5
+ */
6
+ export interface UseTableOptions<T = unknown> extends Omit<TableOptions<T>, 'getCoreRowModel' | 'state' | 'onStateChange'> {
7
+ /**
8
+ * The typed column definitions. Every column in the table must have its own definition.
9
+ */
10
+ columns: TableOptions<T>['columns'];
11
+ /**
12
+ * The table data. Each row will receive an instance of this element.
13
+ */
14
+ data: TableOptions<T>['data'];
15
+ /**
16
+ * The table state can be provided to make the it controlled. See the documentation regarding recommended usage
17
+ * of this property.
18
+ */
19
+ state?: TableOptions<T>['state'];
20
+ /**
21
+ * Use this option to optionally pass initial state to the table. This state will be used
22
+ * when resetting various table states either automatically by the table (eg. `options.autoResetPageIndex`)
23
+ * or via functions like `table.resetRowSelection()`.
24
+ * */
25
+ initialState?: InitialTableState;
26
+ /**
27
+ * Allows row selection. An optional function can be provided to conditionally allow row selection.
28
+ *
29
+ * @default true
30
+ */
31
+ enableRowSelection?: TableOptions<T>['enableRowSelection'];
32
+ /**
33
+ * Allows row expansion.
34
+ *
35
+ * @default true
36
+ */
37
+ enableExpanding?: TableOptions<T>['enableExpanding'];
38
+ /**
39
+ * Allows column sorting.
40
+ *
41
+ * @default true
42
+ */
43
+ enableSorting?: TableOptions<T>['enableSorting'];
44
+ /**
45
+ * Allows general filtering.
46
+ *
47
+ * @default true
48
+ */
49
+ enableFilters?: TableOptions<T>['enableFilters'];
50
+ /**
51
+ * Allows global filter in top toolbar.
52
+ *
53
+ * @default true
54
+ */
55
+ enableGlobalFilter?: boolean;
56
+ /**
57
+ * Set true to display table loading indicator.
58
+ *
59
+ * @default false
60
+ */
61
+ isLoading?: boolean;
62
+ /**
63
+ * When set, the provided component will be used instead of the original `<Spinner />`.
64
+ */
65
+ loadingIndicator?: React.ReactNode;
66
+ /**
67
+ * When defined, the callback can return an optional class name that will be added to the specific row.
68
+ * Depending on the CSS properties in the class, it might be needed to use `!important` to take higher
69
+ * precedence.
70
+ */
71
+ getRowClassName?: (originalRow: T, index: number) => string | null | undefined;
72
+ /**
73
+ * When defined, callback is called to determine if the row is clickable. Return `false` to disable clicking.
74
+ */
75
+ getRowClickable?: (originalRow: T, index: number) => boolean;
76
+ /**
77
+ * Callback is called when row is clicked.
78
+ */
79
+ onRowClick?: (originalRow: T, row: Row<T>, event: React.MouseEvent<HTMLDivElement>) => void;
80
+ /**
81
+ * Callback is called when there are changes to the `pagination` property of the table `state`.
82
+ */
83
+ onPaginationChange?: TableOptions<T>['onPaginationChange'];
84
+ /**
85
+ * Callback is called when there are changes to the `rowSelection` property of the table `state`.
86
+ */
87
+ onRowSelectionChange?: TableOptions<T>['onRowSelectionChange'];
88
+ /**
89
+ * Callback is called when there are changes to the `expanded` property of the table `state`.
90
+ */
91
+ onExpandedChange?: TableOptions<T>['onExpandedChange'];
92
+ /**
93
+ * Callback is called when there are changes to the `globalFilter` property of the table `state`.
94
+ */
95
+ onGlobalFilterChange?: TableOptions<T>['onGlobalFilterChange'];
96
+ /**
97
+ * The callback might return an optional list of sub-rows to be rendered when the parent row
98
+ * is expanded.
99
+ */
100
+ getSubRows?: (originalRow: T, index: number) => undefined | T[];
101
+ /**
102
+ * The callback might return an optional `React.ReactNode` to be rendered below the expanded row.
103
+ */
104
+ getSubComponent?: (originalRow: T, index: number) => undefined | React.ReactNode;
105
+ /**
106
+ * Normally, the sub-components can be controlled using the standard `state.expanded` and its related
107
+ * event handlers. When that is not desirable, provide this callback which will override the `expanded`
108
+ * state. When using this callback, the column helper `expansion` only controls sub-rows.
109
+ */
110
+ getSubComponentExpanded?: (originalRow: T, index: number) => boolean;
111
+ }
112
+ export interface TableMetadata {
113
+ enableGlobalFilter: UseTableOptions['enableGlobalFilter'];
114
+ getRowClickable: UseTableOptions['getRowClickable'];
115
+ getSubComponent: UseTableOptions['getSubComponent'];
116
+ getSubComponentExpanded: UseTableOptions['getSubComponentExpanded'];
117
+ getRowClassName: UseTableOptions['getRowClassName'];
118
+ isLoading: UseTableOptions['isLoading'];
119
+ loadingIndicator: UseTableOptions['loadingIndicator'];
120
+ onRowClick: UseTableOptions['onRowClick'];
121
+ }
122
+ export declare function useTable<T>(options: UseTableOptions<T>): TableAPI<T>;