@agile-team/mach-table 0.23.0 → 0.25.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.
package/README.md CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  # @agile-team/mach-table
6
6
 
7
- Enterprise-grade, framework-independent TypeScript data grid. Zero runtime dependencies, virtualized rows and columns, polished cell/full-row editing, async validation, action columns, change tracking, versioned state and resilient infinite loading.
7
+ MachTable 0.25 的框架无关 TypeScript Core:零运行时依赖,提供行列双虚拟化、领域化 API、单元格/整行编辑、树与分组、随机访问远程数据、区段隔离状态持久化和可诊断扩展系统。
8
8
 
9
9
  ```bash
10
10
  pnpm add @agile-team/mach-table
@@ -17,133 +17,43 @@ import "@agile-team/mach-table/styles/mach-table.css";
17
17
  const api = createGrid(document.querySelector("#grid")!, {
18
18
  columnDefs: [
19
19
  { field: "id", headerName: "ID", width: 120 },
20
- { field: "name", headerName: "Name", flex: 1, editable: true }
20
+ { field: "name", headerName: "名称", flex: 1, editable: true }
21
21
  ],
22
22
  rowData: [{ id: "1", name: "MachTable" }],
23
23
  rowKey: "id",
24
24
  enableColumnResize: true,
25
- stateKey: "customer-list"
25
+ persistence: { key: "tenant:user:customers", sections: ["columns"] }
26
26
  });
27
27
 
28
- // Required for native integrations when the host is removed.
29
- api.destroy();
30
- ```
31
-
32
- Complex business workflows use first-class APIs instead of adapter-specific glue:
33
-
34
- ```ts
35
- const state = api.getState();
36
- await api.saveChanges((changes) => orderApi.save(changes));
37
- api.rollbackChanges();
38
- console.info(api.getDiagnostics());
39
-
40
- await api.applyTransactionAsync({ update: realtimeRows });
41
- api.applyState(state);
42
- ```
43
-
44
- 0.23 adds governed domain APIs, incremental update invalidation and bounded remote-resource scheduling without removing the flat 0.x API:
45
-
46
- ```ts
47
28
  api.batch((grid) => {
48
- grid.rows.apply({ update: changedRows });
29
+ grid.rows.transact({ update: [{ id: "1", name: "Updated" }] });
49
30
  grid.columns.setVisible("internalNote", false);
50
- grid.refreshCells({ rowIds: changedIds, columns: ["status"] });
31
+ grid.view.refreshCells({ rowIds: ["1"] });
51
32
  });
52
33
 
53
- console.info(api.diagnostics.get().updates);
54
- ```
55
-
56
- For very large remote datasets, opt into random-access blocks. Sequential infinite loading remains the compatibility default:
57
-
58
- ```ts
59
- const options = {
60
- datasource,
61
- datasourceMode: "block" as const,
62
- datasourceRowCount: 1_000_000,
63
- blockSize: 200,
64
- maxBlocksInCache: 12,
65
- blockPrefetch: 1
66
- };
67
-
68
- await api.rows.ensureLoaded(40_000, 40_200, { signal });
69
- console.info(api.rows.getCacheSnapshot());
70
- ```
71
-
72
- Worker runtime helpers are intentionally split from the default entry:
73
-
74
- ```ts
75
- import { createWorkerDataProcessor, installGridDataWorker } from "@agile-team/mach-table/worker";
76
- ```
77
-
78
- 0.18 added governed runtime APIs, nested filters, named views, conflict-aware saves and performance evidence:
34
+ const saved = await api.editing.save(orderApi.saveChanges);
35
+ console.table(saved.conflicts);
36
+ console.info(api.diagnostics.get());
79
37
 
80
- ```ts
81
- const views = createGridViewManager(api, { scope: "tenant:user:orders" });
82
- await views.save("My pending orders");
83
-
84
- const result = await api.saveChangesDetailed(orderApi.saveChanges);
85
- console.table(result.failures);
86
- console.table(result.conflicts);
87
- console.info(api.getDiagnostics().performance);
38
+ // 原生宿主卸载时必须销毁;Vue/React 适配器会自动处理。
39
+ api.destroy();
88
40
  ```
89
41
 
90
- `GridState` v1 inputs migrate to v2 automatically. `GridFeature` manifests can declare `version`, `requires` and `conflicts`; invalid graphs are isolated before setup side effects run. JavaScript/JSON option patches are sanitized from the same metadata registry used by Core and framework adapters.
91
-
92
- 0.13 added a built-in/headless column workbench and cancellable lazy trees:
93
-
94
- ```ts
95
- api.openColumnWorkbench();
96
- const columns = api.getColumnWorkbenchItems();
97
-
98
- const treeOptions = {
99
- treeData: true,
100
- isTreeRowExpandable: ({ data }) => data.hasChildren,
101
- loadTreeChildren: ({ data, signal }) => catalogApi.children(data.id, { signal })
102
- };
103
- ```
42
+ `persistence.sections` 同时约束进入 store 的数据与恢复范围;异步 store 写入有序,晚到加载不会覆盖加载期间的用户操作。
104
43
 
105
- XLSX stays outside Core; install `@agile-team/mach-table-xlsx` only on Excel routes.
44
+ 公共命令按 `rows`、`columns`、`selection`、`editing`、`filtering`、`sorting`、`pagination`、`hierarchy`、`view`、`state`、`io`、`diagnostics` 划分。完整签名见 [GridApi](https://github.com/ChenyCHENYU/MachTable/blob/main/docs/api/grid-api.md)。
106
45
 
107
- Polished editing and row actions are built in rather than adapter-specific:
46
+ 大型本地数据 Worker 使用独立入口:
108
47
 
109
48
  ```ts
110
- import { rowActionsColumn } from "@agile-team/mach-table";
111
-
112
- const options = {
113
- editType: "fullRow" as const,
114
- columnDefs: [
115
- { field: "name", editable: true },
116
- { field: "age", editable: true, cellEditor: "number" },
117
- rowActionsColumn({ onView, onDelete, overflow: "drawer" })
118
- ]
119
- };
49
+ import { createWorkerDataProcessor } from "@agile-team/mach-table/worker";
120
50
  ```
121
51
 
122
- Cell mode remains the default and renders a subtle pencil plus inline confirm/cancel controls. Use `editableIndicator: "always" | "hover" | "none"` to match the page density.
123
-
124
- 0.14 removes common page glue with automatic GridState persistence, an explicit error overlay, compact row keys and framework-neutral toolbar commands:
125
-
126
- ```ts
127
- import { createMachTableCommands } from "@agile-team/mach-table";
128
-
129
- const commands = createMachTableCommands({ getApi: () => api });
130
- commands.search("pending");
131
- await commands.refresh();
132
-
133
- api.setOverlay("error", () => "Request failed. Please retry.");
134
- ```
135
-
136
- `rowKey: "id"` is shorthand for a stable field path; `getRowId` remains available for derived IDs and wins when both are present. `domLayout: "autoHeight"` is intended only for small client-side tables—normal virtual layout remains the large-data default.
137
-
138
- Column resizing is deliberately opt-in. Set `enableColumnResize: true`; add `stateKey` to remember the complete workspace, or `columnStateKey` to remember only widths/order/visibility/pinning/sort. Pointer cancellation rolls back, completed drags persist once, and untouched automatic/flex columns remain responsive.
139
-
140
- For framework applications use the official adapters:
141
-
142
- - Vue 3: [`@agile-team/mach-table-vue`](https://www.npmjs.com/package/@agile-team/mach-table-vue)
143
- - React 18+: [`@agile-team/mach-table-react`](https://www.npmjs.com/package/@agile-team/mach-table-react)
52
+ Vue/React 项目请只安装对应适配包,它会自动安装并重导出 Core:
144
53
 
145
- Documentation: [Quick start](https://github.com/ChenyCHENYU/MachTable/blob/main/docs/guide/getting-started.md) · [Enterprise integration](https://github.com/ChenyCHENYU/MachTable/blob/main/docs/guide/enterprise-integration.md) · [API](https://github.com/ChenyCHENYU/MachTable/tree/main/docs/api)
54
+ - [@agile-team/mach-table-vue](https://www.npmjs.com/package/@agile-team/mach-table-vue)
55
+ - [@agile-team/mach-table-react](https://www.npmjs.com/package/@agile-team/mach-table-react)
146
56
 
147
- > Overlay strings render as text by default. Prefer HTMLElement factories for rich content; enable `allowUnsafeOverlayHtml` only for fully trusted static markup.
57
+ 文档:[快速开始](https://github.com/ChenyCHENYU/MachTable/blob/main/docs/guide/getting-started.md) · [企业接入](https://github.com/ChenyCHENYU/MachTable/blob/main/docs/guide/enterprise-integration.md) · [API](https://github.com/ChenyCHENYU/MachTable/tree/main/docs/api)
148
58
 
149
- Source-available © ChenyCHENYU (Agile Team). Any use requires prior written authorization. See the [license](https://github.com/ChenyCHENYU/MachTable/blob/main/LICENSE) and [authorization process](https://github.com/ChenyCHENYU/MachTable/blob/main/LICENSING.md).
59
+ Source-available © ChenyCHENYU (Agile Team). 任何使用均须事先取得书面授权。详见 [LICENSE](https://github.com/ChenyCHENYU/MachTable/blob/main/LICENSE) [授权流程](https://github.com/ChenyCHENYU/MachTable/blob/main/LICENSING.md)
@@ -0,0 +1 @@
1
+ "use strict";var f=Object.defineProperty;var O=Object.getOwnPropertyDescriptor;var h=Object.getOwnPropertyNames;var D=Object.prototype.hasOwnProperty;var C=(e,n)=>{for(var t in n)f(e,t,{get:n[t],enumerable:!0})},w=(e,n,t,o)=>{if(n&&typeof n=="object"||typeof n=="function")for(let a of h(n))!D.call(e,a)&&a!==t&&f(e,a,{get:()=>n[a],enumerable:!(o=O(n,a))||o.enumerable});return e};var M=e=>w(f({},"__esModule",{value:!0}),e);var S={};C(S,{GRID_OPTION_KEYS:()=>g,GRID_OPTION_META:()=>c,mergeMachTableConfig:()=>T,normalizeMachTableConfig:()=>k,resolveMachTableGridOptions:()=>y});module.exports=M(S);var c={columnDefs:{kind:"array",update:"columnDefs"},rowData:{kind:"array",update:"rowData"},defaultColDef:{kind:"object",update:"options"},columnTypes:{kind:"object",update:"options"},rowKey:{kind:"unknown",update:"options"},rowHeight:{kind:"number",update:"options"},headerHeight:{kind:"number",update:"options"},rowBuffer:{kind:"number",update:"options"},columnLayout:{kind:"string",update:"options"},enableColumnResize:{kind:"boolean",update:"options"},domLayout:{kind:"string",update:"options"},rowSelection:{kind:"string",update:"options"},multiSort:{kind:"boolean",update:"options"},size:{kind:"string",update:"options"},stripedRows:{kind:"boolean",update:"options"},showCellBorders:{kind:"boolean",update:"options"},theme:{kind:"string",update:"options"},quickFilterText:{kind:"string",update:"quickFilter"},advancedFilterModel:{kind:"object",update:"options"},masterDetail:{kind:"boolean",update:"options"},detailRowHeight:{kind:"number",update:"options"},detailRowRenderer:{kind:"function",update:"options"},isRowExpandable:{kind:"function",update:"options"},detailToggleColumn:{kind:"boolean",update:"options"},columnMenu:{kind:"boolean",update:"options"},aggFuncs:{kind:"object",update:"options"},components:{kind:"object",update:"options"},actionPolicy:{kind:"object",update:"options"},features:{kind:"array",update:"options"},initialState:{kind:"object",update:"options"},persistence:{kind:"boolean-object",update:"options"},locale:{kind:"object",update:"options"},editType:{kind:"string",update:"options"},editableIndicator:{kind:"string",update:"options"},rowEditValidator:{kind:"function",update:"options"},singleClickEdit:{kind:"boolean",update:"options"},manualSorting:{kind:"boolean",update:"options"},manualFiltering:{kind:"boolean",update:"options"},showSummary:{kind:"boolean",update:"options"},summaryMethod:{kind:"function",update:"options"},treeData:{kind:"boolean",update:"options"},childrenKey:{kind:"string",update:"options"},isTreeRowExpandable:{kind:"function",update:"options"},loadTreeChildren:{kind:"function",update:"options"},autoCheckedChildren:{kind:"boolean",update:"options"},defaultExpandAll:{kind:"boolean",update:"options"},indexOffset:{kind:"number",update:"options"},applyRowDrag:{kind:"boolean",update:"options"},undoStackSize:{kind:"number",update:"options"},asyncTransactionWaitMillis:{kind:"number",update:"options"},getRowHeight:{kind:"function",update:"options"},pinnedTopRowData:{kind:"array",update:"options"},pinnedBottomRowData:{kind:"array",update:"options"},pagination:{kind:"boolean-object",update:"options"},watermark:{kind:"boolean-object",update:"options"},suppressWarnings:{kind:"boolean",update:"options"},enableRangeSelection:{kind:"boolean",update:"options"},suppressClipboard:{kind:"boolean",update:"options"},contextMenu:{kind:"boolean",update:"options"},getContextMenuItems:{kind:"function",update:"options"},tooltipComponent:{kind:"function",update:"options"},tooltipShowDelay:{kind:"number",update:"options"},flashCells:{kind:"boolean",update:"options"},fillHandle:{kind:"boolean",update:"options"},statusBar:{kind:"boolean-object",update:"options"},datasource:{kind:"object",update:"options"},datasourceMode:{kind:"string",update:"options"},blockSize:{kind:"number",update:"options"},infiniteBufferRows:{kind:"number",update:"options"},maxBlocksInCache:{kind:"number",update:"options"},datasourceMaxConcurrentRequests:{kind:"number",update:"options"},blockPrefetch:{kind:"number",update:"options"},datasourceRowCount:{kind:"number",update:"options"},dataProcessor:{kind:"object",update:"options"},dataProcessorMinRows:{kind:"number",update:"options"},datasourceRetryCount:{kind:"number",update:"options"},datasourceRetryDelay:{kind:"number",update:"options"},datasourceRetryJitter:{kind:"number",update:"options"},suppressCellFocus:{kind:"boolean",update:"options"},suppressRowHoverHighlight:{kind:"boolean",update:"options"},suppressNoRowsOverlay:{kind:"boolean",update:"options"},suppressHeaderFocus:{kind:"boolean",update:"options"},ariaLabel:{kind:"string",update:"options"},ariaLabelledBy:{kind:"string",update:"options"},ariaDescribedBy:{kind:"string",update:"options"},loading:{kind:"boolean",update:"options"},error:{kind:"unknown",update:"options"},overlayNoRowsTemplate:{kind:"unknown",update:"options"},overlayLoadingTemplate:{kind:"unknown",update:"options"},overlayErrorTemplate:{kind:"unknown",update:"options"},allowUnsafeOverlayHtml:{kind:"boolean",update:"options"},className:{kind:"string",update:"options"}},g=Object.freeze(Object.keys(c)),v=Object.freeze(g.filter(e=>c[e].update==="options"));function b(e,n){return n===void 0?e:typeof n!="object"||n===null||typeof e!="object"||e===null?n:{...e,...n}}function R(e,n){return typeof e!="function"?n:typeof n!="function"?e:(...t)=>{let o;try{e(...t)}catch(a){o=a}try{n(...t)}catch(a){o??(o=a)}if(o!==void 0)throw o}}function P(e,n){let t={...e,...n,features:n.features??e.features};if((e.defaultColDef||n.defaultColDef)&&(t.defaultColDef={...e.defaultColDef,...n.defaultColDef}),(e.locale||n.locale)&&(t.locale={...e.locale,...n.locale}),(e.components||n.components)&&(t.components={cellRenderers:{...e.components?.cellRenderers,...n.components?.cellRenderers},cellEditors:{...e.components?.cellEditors,...n.components?.cellEditors}}),e.columnTypes||n.columnTypes){let o={};for(let a of new Set([...Object.keys(e.columnTypes??{}),...Object.keys(n.columnTypes??{})]))o[a]={...e.columnTypes?.[a],...n.columnTypes?.[a]};t.columnTypes=o}(e.aggFuncs||n.aggFuncs)&&(t.aggFuncs={...e.aggFuncs,...n.aggFuncs}),t.pagination=b(e.pagination,n.pagination),t.statusBar=b(e.statusBar,n.statusBar),t.watermark=b(e.watermark,n.watermark);for(let o of new Set([...Object.keys(e),...Object.keys(n)])){if(!/^on[A-Z]/.test(o))continue;let a=e[o],i=n[o];typeof a=="function"&&typeof i=="function"&&(t[o]=R(a,i))}return t}function p(...e){return e.reduce(P,{})}function G(e){return e?(Array.isArray(e)?e:[e]).filter(n=>typeof n=="string"&&n.trim().length>0):[]}var E=new Set(["rowData","columnDefs","datasource","loading","error","initialState","persistence","components","columnTypes","stateKey","stateStore","stateSaveDebounceMs","columnStateKey","columnStateStore"]);function m(e,n,t){if(!n||typeof n!="object"||Array.isArray(n))return{};let o={};for(let[a,i]of Object.entries(n)){if(!E.has(a)){o[a]=i;continue}let d={code:t==="defaults"?"INVALID_DEFAULT_OPTION":"INVALID_PRESET_OPTION",option:a,layer:t,message:`[MachTable] "${a}" is instance-only and cannot be declared in config ${t}.`};if(e.onConfigWarning?.(d),e.strict!==!1)throw new TypeError(d.message)}return o}function k(e={}){let n=m(e,e.defaults,"defaults");return{defaults:p({columnTypes:e.columnTypes,components:e.components},n),presets:Object.fromEntries(Object.entries(e.presets??{}).map(([t,o])=>[t,p(m(e,o,`preset:${t}`))])),defaultPreset:e.defaultPreset??!1,strict:e.strict!==!1,...e.onConfigWarning?{onConfigWarning:e.onConfigWarning}:{}}}function T(e,n){let t=k({...n,strict:n.strict??e.strict,onConfigWarning:n.onConfigWarning??e.onConfigWarning}),o={...e.presets};for(let[a,i]of Object.entries(t.presets))o[a]=p(e.presets[a]??{},i);return{defaults:p(e.defaults,t.defaults),presets:o,defaultPreset:n.defaultPreset===void 0?e.defaultPreset:n.defaultPreset,strict:n.strict??e.strict,...n.onConfigWarning??e.onConfigWarning?{onConfigWarning:n.onConfigWarning??e.onConfigWarning}:{}}}function y(e,n,t,o){let a=n===void 0?e.defaultPreset:n,i=[{name:"application defaults",options:e.defaults}];for(let r of G(a)){let s=e.presets[r];if(!s){let l={code:"UNKNOWN_PRESET",preset:r,message:`[MachTable] Unknown preset "${r}". Register it in mach-table.config.ts or remove the preset.`};o?o(l):e.onConfigWarning?e.onConfigWarning(l):console.warn(l.message);continue}i.push({name:`preset:${r}`,options:s})}i.push({name:"table props",options:t});let d=p(...i.map(r=>r.options));return{options:d,explain(r){let s=i.filter(u=>Object.prototype.hasOwnProperty.call(u.options,r)).map(u=>({name:u.name,value:u.options[r]})),l=s[s.length-1];return{key:r,value:d[r],source:l?.name??"MachTable built-in",layers:s}}}}0&&(module.exports={GRID_OPTION_KEYS,GRID_OPTION_META,mergeMachTableConfig,normalizeMachTableConfig,resolveMachTableGridOptions});
@@ -0,0 +1,384 @@
1
+ import { G as GridOptions, a as GridEventType } from './options-CL6BYXVZ.cjs';
2
+ export { M as MachTableOptionExplanation, R as ResolvedMachTableConfig, a as ResolvedMachTableGridOptions, m as mergeMachTableConfig, n as normalizeMachTableConfig, r as resolveMachTableGridOptions } from './configuration-DmUvpJLO.cjs';
3
+
4
+ type EventOptionKey = `on${Capitalize<GridEventType>}`;
5
+ type GridOptionKey = Exclude<keyof GridOptions<any>, EventOptionKey>;
6
+ /**
7
+ * Runtime single source of truth for every non-event GridOptions property.
8
+ *
9
+ * The mapped `satisfies` type intentionally makes adding a GridOptions field a
10
+ * compile error until its adapter/update behavior is declared here.
11
+ */
12
+ declare const GRID_OPTION_META: {
13
+ readonly columnDefs: {
14
+ readonly kind: "array";
15
+ readonly update: "columnDefs";
16
+ };
17
+ readonly rowData: {
18
+ readonly kind: "array";
19
+ readonly update: "rowData";
20
+ };
21
+ readonly defaultColDef: {
22
+ readonly kind: "object";
23
+ readonly update: "options";
24
+ };
25
+ readonly columnTypes: {
26
+ readonly kind: "object";
27
+ readonly update: "options";
28
+ };
29
+ readonly rowKey: {
30
+ readonly kind: "unknown";
31
+ readonly update: "options";
32
+ };
33
+ readonly rowHeight: {
34
+ readonly kind: "number";
35
+ readonly update: "options";
36
+ };
37
+ readonly headerHeight: {
38
+ readonly kind: "number";
39
+ readonly update: "options";
40
+ };
41
+ readonly rowBuffer: {
42
+ readonly kind: "number";
43
+ readonly update: "options";
44
+ };
45
+ readonly columnLayout: {
46
+ readonly kind: "string";
47
+ readonly update: "options";
48
+ };
49
+ readonly enableColumnResize: {
50
+ readonly kind: "boolean";
51
+ readonly update: "options";
52
+ };
53
+ readonly domLayout: {
54
+ readonly kind: "string";
55
+ readonly update: "options";
56
+ };
57
+ readonly rowSelection: {
58
+ readonly kind: "string";
59
+ readonly update: "options";
60
+ };
61
+ readonly multiSort: {
62
+ readonly kind: "boolean";
63
+ readonly update: "options";
64
+ };
65
+ readonly size: {
66
+ readonly kind: "string";
67
+ readonly update: "options";
68
+ };
69
+ readonly stripedRows: {
70
+ readonly kind: "boolean";
71
+ readonly update: "options";
72
+ };
73
+ readonly showCellBorders: {
74
+ readonly kind: "boolean";
75
+ readonly update: "options";
76
+ };
77
+ readonly theme: {
78
+ readonly kind: "string";
79
+ readonly update: "options";
80
+ };
81
+ readonly quickFilterText: {
82
+ readonly kind: "string";
83
+ readonly update: "quickFilter";
84
+ };
85
+ readonly advancedFilterModel: {
86
+ readonly kind: "object";
87
+ readonly update: "options";
88
+ };
89
+ readonly masterDetail: {
90
+ readonly kind: "boolean";
91
+ readonly update: "options";
92
+ };
93
+ readonly detailRowHeight: {
94
+ readonly kind: "number";
95
+ readonly update: "options";
96
+ };
97
+ readonly detailRowRenderer: {
98
+ readonly kind: "function";
99
+ readonly update: "options";
100
+ };
101
+ readonly isRowExpandable: {
102
+ readonly kind: "function";
103
+ readonly update: "options";
104
+ };
105
+ readonly detailToggleColumn: {
106
+ readonly kind: "boolean";
107
+ readonly update: "options";
108
+ };
109
+ readonly columnMenu: {
110
+ readonly kind: "boolean";
111
+ readonly update: "options";
112
+ };
113
+ readonly aggFuncs: {
114
+ readonly kind: "object";
115
+ readonly update: "options";
116
+ };
117
+ readonly components: {
118
+ readonly kind: "object";
119
+ readonly update: "options";
120
+ };
121
+ readonly actionPolicy: {
122
+ readonly kind: "object";
123
+ readonly update: "options";
124
+ };
125
+ readonly features: {
126
+ readonly kind: "array";
127
+ readonly update: "options";
128
+ };
129
+ readonly initialState: {
130
+ readonly kind: "object";
131
+ readonly update: "options";
132
+ };
133
+ readonly persistence: {
134
+ readonly kind: "boolean-object";
135
+ readonly update: "options";
136
+ };
137
+ readonly locale: {
138
+ readonly kind: "object";
139
+ readonly update: "options";
140
+ };
141
+ readonly editType: {
142
+ readonly kind: "string";
143
+ readonly update: "options";
144
+ };
145
+ readonly editableIndicator: {
146
+ readonly kind: "string";
147
+ readonly update: "options";
148
+ };
149
+ readonly rowEditValidator: {
150
+ readonly kind: "function";
151
+ readonly update: "options";
152
+ };
153
+ readonly singleClickEdit: {
154
+ readonly kind: "boolean";
155
+ readonly update: "options";
156
+ };
157
+ readonly manualSorting: {
158
+ readonly kind: "boolean";
159
+ readonly update: "options";
160
+ };
161
+ readonly manualFiltering: {
162
+ readonly kind: "boolean";
163
+ readonly update: "options";
164
+ };
165
+ readonly showSummary: {
166
+ readonly kind: "boolean";
167
+ readonly update: "options";
168
+ };
169
+ readonly summaryMethod: {
170
+ readonly kind: "function";
171
+ readonly update: "options";
172
+ };
173
+ readonly treeData: {
174
+ readonly kind: "boolean";
175
+ readonly update: "options";
176
+ };
177
+ readonly childrenKey: {
178
+ readonly kind: "string";
179
+ readonly update: "options";
180
+ };
181
+ readonly isTreeRowExpandable: {
182
+ readonly kind: "function";
183
+ readonly update: "options";
184
+ };
185
+ readonly loadTreeChildren: {
186
+ readonly kind: "function";
187
+ readonly update: "options";
188
+ };
189
+ readonly autoCheckedChildren: {
190
+ readonly kind: "boolean";
191
+ readonly update: "options";
192
+ };
193
+ readonly defaultExpandAll: {
194
+ readonly kind: "boolean";
195
+ readonly update: "options";
196
+ };
197
+ readonly indexOffset: {
198
+ readonly kind: "number";
199
+ readonly update: "options";
200
+ };
201
+ readonly applyRowDrag: {
202
+ readonly kind: "boolean";
203
+ readonly update: "options";
204
+ };
205
+ readonly undoStackSize: {
206
+ readonly kind: "number";
207
+ readonly update: "options";
208
+ };
209
+ readonly asyncTransactionWaitMillis: {
210
+ readonly kind: "number";
211
+ readonly update: "options";
212
+ };
213
+ readonly getRowHeight: {
214
+ readonly kind: "function";
215
+ readonly update: "options";
216
+ };
217
+ readonly pinnedTopRowData: {
218
+ readonly kind: "array";
219
+ readonly update: "options";
220
+ };
221
+ readonly pinnedBottomRowData: {
222
+ readonly kind: "array";
223
+ readonly update: "options";
224
+ };
225
+ readonly pagination: {
226
+ readonly kind: "boolean-object";
227
+ readonly update: "options";
228
+ };
229
+ readonly watermark: {
230
+ readonly kind: "boolean-object";
231
+ readonly update: "options";
232
+ };
233
+ readonly suppressWarnings: {
234
+ readonly kind: "boolean";
235
+ readonly update: "options";
236
+ };
237
+ readonly enableRangeSelection: {
238
+ readonly kind: "boolean";
239
+ readonly update: "options";
240
+ };
241
+ readonly suppressClipboard: {
242
+ readonly kind: "boolean";
243
+ readonly update: "options";
244
+ };
245
+ readonly contextMenu: {
246
+ readonly kind: "boolean";
247
+ readonly update: "options";
248
+ };
249
+ readonly getContextMenuItems: {
250
+ readonly kind: "function";
251
+ readonly update: "options";
252
+ };
253
+ readonly tooltipComponent: {
254
+ readonly kind: "function";
255
+ readonly update: "options";
256
+ };
257
+ readonly tooltipShowDelay: {
258
+ readonly kind: "number";
259
+ readonly update: "options";
260
+ };
261
+ readonly flashCells: {
262
+ readonly kind: "boolean";
263
+ readonly update: "options";
264
+ };
265
+ readonly fillHandle: {
266
+ readonly kind: "boolean";
267
+ readonly update: "options";
268
+ };
269
+ readonly statusBar: {
270
+ readonly kind: "boolean-object";
271
+ readonly update: "options";
272
+ };
273
+ readonly datasource: {
274
+ readonly kind: "object";
275
+ readonly update: "options";
276
+ };
277
+ readonly datasourceMode: {
278
+ readonly kind: "string";
279
+ readonly update: "options";
280
+ };
281
+ readonly blockSize: {
282
+ readonly kind: "number";
283
+ readonly update: "options";
284
+ };
285
+ readonly infiniteBufferRows: {
286
+ readonly kind: "number";
287
+ readonly update: "options";
288
+ };
289
+ readonly maxBlocksInCache: {
290
+ readonly kind: "number";
291
+ readonly update: "options";
292
+ };
293
+ readonly datasourceMaxConcurrentRequests: {
294
+ readonly kind: "number";
295
+ readonly update: "options";
296
+ };
297
+ readonly blockPrefetch: {
298
+ readonly kind: "number";
299
+ readonly update: "options";
300
+ };
301
+ readonly datasourceRowCount: {
302
+ readonly kind: "number";
303
+ readonly update: "options";
304
+ };
305
+ readonly dataProcessor: {
306
+ readonly kind: "object";
307
+ readonly update: "options";
308
+ };
309
+ readonly dataProcessorMinRows: {
310
+ readonly kind: "number";
311
+ readonly update: "options";
312
+ };
313
+ readonly datasourceRetryCount: {
314
+ readonly kind: "number";
315
+ readonly update: "options";
316
+ };
317
+ readonly datasourceRetryDelay: {
318
+ readonly kind: "number";
319
+ readonly update: "options";
320
+ };
321
+ readonly datasourceRetryJitter: {
322
+ readonly kind: "number";
323
+ readonly update: "options";
324
+ };
325
+ readonly suppressCellFocus: {
326
+ readonly kind: "boolean";
327
+ readonly update: "options";
328
+ };
329
+ readonly suppressRowHoverHighlight: {
330
+ readonly kind: "boolean";
331
+ readonly update: "options";
332
+ };
333
+ readonly suppressNoRowsOverlay: {
334
+ readonly kind: "boolean";
335
+ readonly update: "options";
336
+ };
337
+ readonly suppressHeaderFocus: {
338
+ readonly kind: "boolean";
339
+ readonly update: "options";
340
+ };
341
+ readonly ariaLabel: {
342
+ readonly kind: "string";
343
+ readonly update: "options";
344
+ };
345
+ readonly ariaLabelledBy: {
346
+ readonly kind: "string";
347
+ readonly update: "options";
348
+ };
349
+ readonly ariaDescribedBy: {
350
+ readonly kind: "string";
351
+ readonly update: "options";
352
+ };
353
+ readonly loading: {
354
+ readonly kind: "boolean";
355
+ readonly update: "options";
356
+ };
357
+ readonly error: {
358
+ readonly kind: "unknown";
359
+ readonly update: "options";
360
+ };
361
+ readonly overlayNoRowsTemplate: {
362
+ readonly kind: "unknown";
363
+ readonly update: "options";
364
+ };
365
+ readonly overlayLoadingTemplate: {
366
+ readonly kind: "unknown";
367
+ readonly update: "options";
368
+ };
369
+ readonly overlayErrorTemplate: {
370
+ readonly kind: "unknown";
371
+ readonly update: "options";
372
+ };
373
+ readonly allowUnsafeOverlayHtml: {
374
+ readonly kind: "boolean";
375
+ readonly update: "options";
376
+ };
377
+ readonly className: {
378
+ readonly kind: "string";
379
+ readonly update: "options";
380
+ };
381
+ };
382
+ declare const GRID_OPTION_KEYS: readonly GridOptionKey[];
383
+
384
+ export { GRID_OPTION_KEYS, GRID_OPTION_META };