@finos/legend-data-cube 0.0.35 → 0.0.37

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 (138) hide show
  1. package/README.md +1 -1
  2. package/lib/__lib__/DataCubeEvent.d.ts +21 -0
  3. package/lib/__lib__/DataCubeEvent.d.ts.map +1 -0
  4. package/lib/__lib__/DataCubeEvent.js +22 -0
  5. package/lib/__lib__/DataCubeEvent.js.map +1 -0
  6. package/lib/components/DataCube.d.ts +3 -1
  7. package/lib/components/DataCube.d.ts.map +1 -1
  8. package/lib/components/DataCube.js +10 -9
  9. package/lib/components/DataCube.js.map +1 -1
  10. package/lib/components/DataCubeProvider.js +1 -1
  11. package/lib/components/DataCubeProvider.js.map +1 -1
  12. package/lib/components/core/DataCubeAlert.d.ts +3 -2
  13. package/lib/components/core/DataCubeAlert.d.ts.map +1 -1
  14. package/lib/components/core/DataCubeAlert.js +4 -2
  15. package/lib/components/core/DataCubeAlert.js.map +1 -1
  16. package/lib/components/core/DataCubeFormUtils.d.ts +26 -0
  17. package/lib/components/core/DataCubeFormUtils.d.ts.map +1 -1
  18. package/lib/components/core/DataCubeFormUtils.js +127 -4
  19. package/lib/components/core/DataCubeFormUtils.js.map +1 -1
  20. package/lib/components/core/DataCubeLayoutManager.js +1 -1
  21. package/lib/components/core/DataCubeLayoutManager.js.map +1 -1
  22. package/lib/components/core/DataCubeSettingsPanel.d.ts.map +1 -1
  23. package/lib/components/core/DataCubeSettingsPanel.js +53 -27
  24. package/lib/components/core/DataCubeSettingsPanel.js.map +1 -1
  25. package/lib/components/view/editor/DataCubeEditor.d.ts.map +1 -1
  26. package/lib/components/view/editor/DataCubeEditor.js +6 -5
  27. package/lib/components/view/editor/DataCubeEditor.js.map +1 -1
  28. package/lib/components/view/editor/DataCubeEditorColumnPropertiesPanel.d.ts.map +1 -1
  29. package/lib/components/view/editor/DataCubeEditorColumnPropertiesPanel.js +4 -4
  30. package/lib/components/view/editor/DataCubeEditorColumnPropertiesPanel.js.map +1 -1
  31. package/lib/components/view/editor/DataCubeEditorGeneralPropertiesPanel.d.ts.map +1 -1
  32. package/lib/components/view/editor/DataCubeEditorGeneralPropertiesPanel.js +2 -2
  33. package/lib/components/view/editor/DataCubeEditorGeneralPropertiesPanel.js.map +1 -1
  34. package/lib/components/view/extend/DataCubeColumnEditor.d.ts.map +1 -1
  35. package/lib/components/view/extend/DataCubeColumnEditor.js +12 -12
  36. package/lib/components/view/extend/DataCubeColumnEditor.js.map +1 -1
  37. package/lib/components/view/filter/DataCubeFilterEditor.d.ts.map +1 -1
  38. package/lib/components/view/filter/DataCubeFilterEditor.js +4 -4
  39. package/lib/components/view/filter/DataCubeFilterEditor.js.map +1 -1
  40. package/lib/components/view/grid/DataCubeGrid.d.ts.map +1 -1
  41. package/lib/components/view/grid/DataCubeGrid.js +7 -7
  42. package/lib/components/view/grid/DataCubeGrid.js.map +1 -1
  43. package/lib/index.css +1 -1
  44. package/lib/index.d.ts +7 -2
  45. package/lib/index.d.ts.map +1 -1
  46. package/lib/index.js +7 -2
  47. package/lib/index.js.map +1 -1
  48. package/lib/package.json +2 -2
  49. package/lib/stores/DataCubeOptions.d.ts +6 -5
  50. package/lib/stores/DataCubeOptions.d.ts.map +1 -1
  51. package/lib/stores/DataCubeSettings.d.ts +25 -22
  52. package/lib/stores/DataCubeSettings.d.ts.map +1 -1
  53. package/lib/stores/DataCubeSettings.js +250 -62
  54. package/lib/stores/DataCubeSettings.js.map +1 -1
  55. package/lib/stores/DataCubeState.d.ts +8 -5
  56. package/lib/stores/DataCubeState.d.ts.map +1 -1
  57. package/lib/stores/DataCubeState.js +27 -42
  58. package/lib/stores/DataCubeState.js.map +1 -1
  59. package/lib/stores/core/DataCubeEngine.d.ts +15 -18
  60. package/lib/stores/core/DataCubeEngine.d.ts.map +1 -1
  61. package/lib/stores/core/DataCubeEngine.js +5 -16
  62. package/lib/stores/core/DataCubeEngine.js.map +1 -1
  63. package/lib/stores/core/DataCubeQueryBuilder.d.ts +1 -0
  64. package/lib/stores/core/DataCubeQueryBuilder.d.ts.map +1 -1
  65. package/lib/stores/core/DataCubeQueryBuilder.js.map +1 -1
  66. package/lib/stores/core/DataCubeQueryBuilderUtils.d.ts +3 -0
  67. package/lib/stores/core/DataCubeQueryBuilderUtils.d.ts.map +1 -1
  68. package/lib/stores/core/DataCubeQueryBuilderUtils.js +12 -1
  69. package/lib/stores/core/DataCubeQueryBuilderUtils.js.map +1 -1
  70. package/lib/stores/core/DataCubeQuerySnapshotBuilder.d.ts.map +1 -1
  71. package/lib/stores/core/DataCubeQuerySnapshotBuilder.js +46 -30
  72. package/lib/stores/core/DataCubeQuerySnapshotBuilder.js.map +1 -1
  73. package/lib/stores/core/DataCubeSetting.d.ts +51 -0
  74. package/lib/stores/core/DataCubeSetting.d.ts.map +1 -0
  75. package/lib/stores/core/DataCubeSetting.js +36 -0
  76. package/lib/stores/core/DataCubeSetting.js.map +1 -0
  77. package/lib/stores/core/models/AdhocQueryDataCubeSource.d.ts +29 -0
  78. package/lib/stores/core/models/AdhocQueryDataCubeSource.d.ts.map +1 -0
  79. package/lib/stores/core/models/AdhocQueryDataCubeSource.js +35 -0
  80. package/lib/stores/core/models/AdhocQueryDataCubeSource.js.map +1 -0
  81. package/lib/stores/core/models/DataCubeSource.d.ts +1 -1
  82. package/lib/stores/core/models/DataCubeSource.d.ts.map +1 -1
  83. package/lib/stores/core/models/DataCubeSource.js +1 -1
  84. package/lib/stores/core/models/DataCubeSource.js.map +1 -1
  85. package/lib/stores/view/DataCubeQuerySnapshotManager.d.ts.map +1 -1
  86. package/lib/stores/view/DataCubeQuerySnapshotManager.js +9 -2
  87. package/lib/stores/view/DataCubeQuerySnapshotManager.js.map +1 -1
  88. package/lib/stores/view/DataCubeViewState.d.ts +1 -1
  89. package/lib/stores/view/DataCubeViewState.d.ts.map +1 -1
  90. package/lib/stores/view/DataCubeViewState.js +5 -14
  91. package/lib/stores/view/DataCubeViewState.js.map +1 -1
  92. package/lib/stores/view/extend/DataCubeColumnEditorState.d.ts.map +1 -1
  93. package/lib/stores/view/extend/DataCubeColumnEditorState.js +5 -5
  94. package/lib/stores/view/extend/DataCubeColumnEditorState.js.map +1 -1
  95. package/lib/stores/view/grid/DataCubeGridClientEngine.d.ts +1 -1
  96. package/lib/stores/view/grid/DataCubeGridClientEngine.d.ts.map +1 -1
  97. package/lib/stores/view/grid/DataCubeGridClientEngine.js +11 -7
  98. package/lib/stores/view/grid/DataCubeGridClientEngine.js.map +1 -1
  99. package/lib/stores/view/grid/DataCubeGridQueryBuilder.d.ts.map +1 -1
  100. package/lib/stores/view/grid/DataCubeGridQueryBuilder.js +2 -2
  101. package/lib/stores/view/grid/DataCubeGridQueryBuilder.js.map +1 -1
  102. package/lib/stores/view/grid/DataCubeGridState.d.ts +1 -0
  103. package/lib/stores/view/grid/DataCubeGridState.d.ts.map +1 -1
  104. package/lib/stores/view/grid/DataCubeGridState.js +8 -3
  105. package/lib/stores/view/grid/DataCubeGridState.js.map +1 -1
  106. package/package.json +6 -6
  107. package/src/__lib__/DataCubeEvent.ts +21 -0
  108. package/src/components/DataCube.tsx +14 -8
  109. package/src/components/DataCubeProvider.tsx +1 -1
  110. package/src/components/core/DataCubeAlert.tsx +12 -7
  111. package/src/components/core/DataCubeFormUtils.tsx +245 -16
  112. package/src/components/core/DataCubeLayoutManager.tsx +1 -1
  113. package/src/components/core/DataCubeSettingsPanel.tsx +166 -134
  114. package/src/components/view/editor/DataCubeEditor.tsx +12 -16
  115. package/src/components/view/editor/DataCubeEditorColumnPropertiesPanel.tsx +6 -5
  116. package/src/components/view/editor/DataCubeEditorGeneralPropertiesPanel.tsx +4 -3
  117. package/src/components/view/extend/DataCubeColumnEditor.tsx +24 -28
  118. package/src/components/view/filter/DataCubeFilterEditor.tsx +10 -18
  119. package/src/components/view/grid/DataCubeGrid.tsx +8 -7
  120. package/src/index.tsx +13 -2
  121. package/src/stores/DataCubeOptions.ts +14 -10
  122. package/src/stores/DataCubeSettings.tsx +421 -0
  123. package/src/stores/DataCubeState.tsx +38 -51
  124. package/src/stores/core/DataCubeEngine.tsx +45 -62
  125. package/src/stores/core/DataCubeQueryBuilder.ts +1 -0
  126. package/src/stores/core/DataCubeQueryBuilderUtils.ts +17 -0
  127. package/src/stores/core/DataCubeQuerySnapshotBuilder.ts +59 -30
  128. package/src/stores/core/DataCubeSetting.ts +63 -0
  129. package/src/stores/core/models/AdhocQueryDataCubeSource.ts +45 -0
  130. package/src/stores/core/models/DataCubeSource.ts +1 -1
  131. package/src/stores/view/DataCubeQuerySnapshotManager.ts +16 -4
  132. package/src/stores/view/DataCubeViewState.ts +8 -17
  133. package/src/stores/view/extend/DataCubeColumnEditorState.tsx +8 -6
  134. package/src/stores/view/grid/DataCubeGridClientEngine.ts +22 -11
  135. package/src/stores/view/grid/DataCubeGridQueryBuilder.ts +7 -1
  136. package/src/stores/view/grid/DataCubeGridState.ts +17 -3
  137. package/tsconfig.json +4 -1
  138. package/src/stores/DataCubeSettings.ts +0 -107
@@ -53,6 +53,7 @@ import {
53
53
  buildGridDataFetchExecutableQuery,
54
54
  } from './DataCubeGridQueryBuilder.js';
55
55
  import { _colSpecArrayParam } from '../../core/DataCubeQuerySnapshotBuilderUtils.js';
56
+ import { DataCubeSettingKey } from '../../core/DataCubeSetting.js';
56
57
 
57
58
  type DataCubeGridClientCellValue = string | number | boolean | null | undefined;
58
59
  type DataCubeGridClientRowData = {
@@ -121,7 +122,7 @@ export const INTERNAL__GRID_CLIENT_DEFAULT_CACHE_BLOCK_SIZE = 500;
121
122
  export const INTERNAL__GRID_CLIENT_DEFAULT_ENABLE_PAGINATION = true;
122
123
  // NOTE: The cache block size is used by ag-grid to pre-allocate memory for the grid
123
124
  // so the value set must be reasonable, or else it can crash the engine!
124
- export const INTERNAL__GRID_CLIENT_MAX_CACHE_BLOCK_SIZE = 1e4;
125
+ export const INTERNAL__GRID_CLIENT_MAX_CACHE_BLOCK_SIZE = 1e3;
125
126
 
126
127
  export const INTERNAL__GRID_CLIENT_PIVOT_COLUMN_GROUP_COLOR_ROTATION_SIZE = 5;
127
128
  export const INTERNAL__GRID_CLIENT_SIDE_BAR_WIDTH = 200;
@@ -299,11 +300,11 @@ async function getCastColumns(
299
300
 
300
301
  const lambda = new V1_Lambda();
301
302
  lambda.body.push(query);
302
- const result = await view.engine.executeQuery(
303
- lambda,
304
- view.source,
305
- view.dataCube,
306
- );
303
+ const result = await view.engine.executeQuery(lambda, view.source, {
304
+ debug: view.dataCube.settings.getBooleanValue(
305
+ DataCubeSettingKey.DEBUGGER__ENABLE_DEBUG_MODE,
306
+ ),
307
+ });
307
308
 
308
309
  return result.result.builder.columns.map((column) => ({
309
310
  name: column.name,
@@ -423,10 +424,18 @@ export class DataCubeGridClientServerSideDataSource
423
424
  const result = await this.grid.view.engine.executeQuery(
424
425
  lambda,
425
426
  this.grid.view.source,
426
- this.grid.view.dataCube,
427
+ {
428
+ debug: this.grid.view.dataCube.settings.getBooleanValue(
429
+ DataCubeSettingKey.DEBUGGER__ENABLE_DEBUG_MODE,
430
+ ),
431
+ },
427
432
  );
428
433
  const rowData = buildRowData(result.result.result, newSnapshot);
429
- if (this.grid.view.dataCube.settings.enableDebugMode) {
434
+ if (
435
+ this.grid.view.dataCube.settings.getBooleanValue(
436
+ DataCubeSettingKey.DEBUGGER__ENABLE_DEBUG_MODE,
437
+ )
438
+ ) {
430
439
  this.grid.view.engine.debugProcess(
431
440
  `Execution`,
432
441
  ['Query', result.executedQuery],
@@ -473,8 +482,9 @@ export class DataCubeGridClientServerSideDataSource
473
482
  // behavior by forcing a scroll top for every data fetch and also reset the cache block size to the default value to save memory
474
483
  if (rowData.length > INTERNAL__GRID_CLIENT_MAX_CACHE_BLOCK_SIZE) {
475
484
  if (
476
- !this.grid.view.dataCube.settings
477
- .gridClientSuppressLargeDatasetWarning
485
+ !this.grid.view.dataCube.settings.getBooleanValue(
486
+ DataCubeSettingKey.GRID_CLIENT__SUPPRESS_LARGE_DATASET_WARNING,
487
+ )
478
488
  ) {
479
489
  this.grid.view.engine.alert({
480
490
  message: `Large dataset (>${INTERNAL__GRID_CLIENT_MAX_CACHE_BLOCK_SIZE} rows) detected!`,
@@ -490,7 +500,8 @@ export class DataCubeGridClientServerSideDataSource
490
500
  {
491
501
  label: 'Dismiss Warning',
492
502
  handler: () => {
493
- this.grid.view.dataCube.settings.setGridClientSuppressLargeDatasetWarning(
503
+ this.grid.view.dataCube.settings.updateValue(
504
+ DataCubeSettingKey.GRID_CLIENT__SUPPRESS_LARGE_DATASET_WARNING,
494
505
  true,
495
506
  );
496
507
  },
@@ -21,6 +21,7 @@ import {
21
21
  type V1_AppliedFunction,
22
22
  V1_GenericType,
23
23
  V1_RelationType,
24
+ V1_getGenericTypeFullPath,
24
25
  } from '@finos/legend-graph';
25
26
  import { type DataCubeQuerySnapshot } from '../../core/DataCubeQuerySnapshot.js';
26
27
  import {
@@ -109,7 +110,12 @@ function _addCountAggColumnToPivot(
109
110
  ).rawType,
110
111
  V1_RelationType,
111
112
  ).columns.map((column) =>
112
- _colSpec(column.name, undefined, undefined, column.type),
113
+ _colSpec(
114
+ column.name,
115
+ undefined,
116
+ undefined,
117
+ V1_getGenericTypeFullPath(column.genericType),
118
+ ),
113
119
  );
114
120
  uniq(
115
121
  castColumns
@@ -36,6 +36,7 @@ import { generateGridOptionsFromSnapshot } from './DataCubeGridConfigurationBuil
36
36
  import { DataCubeConfiguration } from '../../core/models/DataCubeConfiguration.js';
37
37
  import { DataCubeGridControllerState } from './DataCubeGridControllerState.js';
38
38
  import { DataCubeGridClientExportEngine } from './DataCubeGridClientExportEngine.js';
39
+ import { DataCubeSettingKey } from '../../core/DataCubeSetting.js';
39
40
 
40
41
  /**
41
42
  * This query editor state is responsible for syncing the internal state of ag-grid
@@ -73,7 +74,7 @@ export class DataCubeGridState extends DataCubeQuerySnapshotController {
73
74
  makeObservable(this, {
74
75
  clientDataSource: observable,
75
76
 
76
- queryConfiguration: observable.ref,
77
+ queryConfiguration: observable,
77
78
 
78
79
  rowLimit: observable,
79
80
 
@@ -113,6 +114,10 @@ export class DataCubeGridState extends DataCubeQuerySnapshotController {
113
114
  this.scrollHintText = val;
114
115
  }
115
116
 
117
+ get isClientConfigured() {
118
+ return Boolean(this._client);
119
+ }
120
+
116
121
  get client() {
117
122
  return guaranteeNonNullable(this._client, 'Grid client is not configured');
118
123
  }
@@ -144,7 +149,11 @@ export class DataCubeGridState extends DataCubeQuerySnapshotController {
144
149
  configuration,
145
150
  this.view,
146
151
  );
147
- if (this.view.dataCube.settings.enableDebugMode) {
152
+ if (
153
+ this.view.dataCube.settings.getBooleanValue(
154
+ DataCubeSettingKey.DEBUGGER__ENABLE_DEBUG_MODE,
155
+ )
156
+ ) {
148
157
  this.view.engine.debugProcess(`New Grid Options`, [
149
158
  'Grid Options',
150
159
  gridOptions,
@@ -152,7 +161,12 @@ export class DataCubeGridState extends DataCubeQuerySnapshotController {
152
161
  }
153
162
  this.client.updateGridOptions({
154
163
  ...gridOptions,
155
- rowBuffer: this.view.dataCube.settings.gridClientRowBuffer,
164
+ rowBuffer: this.view.dataCube.settings.getNumericValue(
165
+ DataCubeSettingKey.GRID_CLIENT__ROW_BUFFER,
166
+ ),
167
+ purgeClosedRowNodes: this.view.dataCube.settings.getBooleanValue(
168
+ DataCubeSettingKey.GRID_CLIENT__PURGE_CLOSED_ROW_NODES,
169
+ ),
156
170
  // NOTE: ag-grid uses the cache block size as page size, so it's important to set this
157
171
  // in corresponding to the pagination setting, else it would cause unexpected scrolling behavior
158
172
  cacheBlockSize: this.isPaginationEnabled
package/tsconfig.json CHANGED
@@ -52,9 +52,9 @@
52
52
  ],
53
53
  "files": [
54
54
  "./src/__lib__/DataCubeDocumentation.ts",
55
+ "./src/__lib__/DataCubeEvent.ts",
55
56
  "./src/stores/DataCubeAPI.ts",
56
57
  "./src/stores/DataCubeOptions.ts",
57
- "./src/stores/DataCubeSettings.ts",
58
58
  "./src/stores/core/DataCubeConfigurationBuilder.ts",
59
59
  "./src/stores/core/DataCubeLayoutManagerState.ts",
60
60
  "./src/stores/core/DataCubeQueryBuilder.ts",
@@ -63,9 +63,11 @@
63
63
  "./src/stores/core/DataCubeQuerySnapshot.ts",
64
64
  "./src/stores/core/DataCubeQuerySnapshotBuilder.ts",
65
65
  "./src/stores/core/DataCubeQuerySnapshotBuilderUtils.ts",
66
+ "./src/stores/core/DataCubeSetting.ts",
66
67
  "./src/stores/core/aggregation/DataCubeQueryAggregateOperation.ts",
67
68
  "./src/stores/core/filter/DataCubeQueryFilterEditorState.ts",
68
69
  "./src/stores/core/filter/DataCubeQueryFilterOperation.ts",
70
+ "./src/stores/core/models/AdhocQueryDataCubeSource.ts",
69
71
  "./src/stores/core/models/DataCubeColumn.ts",
70
72
  "./src/stores/core/models/DataCubeConfiguration.ts",
71
73
  "./src/stores/core/models/DataCubeQuery.ts",
@@ -112,6 +114,7 @@
112
114
  "./src/components/view/filter/DataCubeFilterEditor.tsx",
113
115
  "./src/components/view/grid/DataCubeGrid.tsx",
114
116
  "./src/components/view/grid/DataCubeGridShared.tsx",
117
+ "./src/stores/DataCubeSettings.tsx",
115
118
  "./src/stores/DataCubeState.tsx",
116
119
  "./src/stores/core/DataCubeEngine.tsx",
117
120
  "./src/stores/core/aggregation/DataCubeQueryAggregateOperation__Average.tsx",
@@ -1,107 +0,0 @@
1
- /**
2
- * Copyright (c) 2020-present, Goldman Sachs
3
- *
4
- * Licensed under the Apache License, Version 2.0 (the "License");
5
- * you may not use this file except in compliance with the License.
6
- * You may obtain a copy of the License at
7
- *
8
- * http://www.apache.org/licenses/LICENSE-2.0
9
- *
10
- * Unless required by applicable law or agreed to in writing, software
11
- * distributed under the License is distributed on an "AS IS" BASIS,
12
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- * See the License for the specific language governing permissions and
14
- * limitations under the License.
15
- */
16
-
17
- import { makeObservable, observable, action } from 'mobx';
18
- import type { DataCubeState } from './DataCubeState.js';
19
-
20
- export enum DataCubeSettingKey {
21
- ENABLE_DEBUG_MODE = 'engine.enableDebugMode',
22
- GRID_CLIENT_ROW_BUFFER = 'engine.grid-client.rowBuffer',
23
- GRID_CLIENT_PURGE_CLOSED_ROW_NODES = 'engine.grid-client.purgeClosedRowNodes',
24
- GRID_CLIENT_SUPPRESS_LARGE_DATASET_WARNING = 'engine.grid-client.suppressLargeDatasetWarning',
25
- }
26
-
27
- export const DEFAULT_SETTINGS = {
28
- [DataCubeSettingKey.ENABLE_DEBUG_MODE]: false,
29
- [DataCubeSettingKey.GRID_CLIENT_ROW_BUFFER]: 50,
30
- [DataCubeSettingKey.GRID_CLIENT_PURGE_CLOSED_ROW_NODES]: false,
31
- [DataCubeSettingKey.GRID_CLIENT_SUPPRESS_LARGE_DATASET_WARNING]: false,
32
- };
33
-
34
- export class DataCubeSettings {
35
- readonly dataCube: DataCubeState;
36
-
37
- constructor(dataCube: DataCubeState) {
38
- makeObservable(this, {
39
- enableDebugMode: observable,
40
- setEnableDebugMode: action,
41
-
42
- gridClientRowBuffer: observable,
43
- setGridClientRowBuffer: action,
44
-
45
- gridClientPurgeClosedRowNodes: observable,
46
- setGridClientPurgeClosedRowNodes: action,
47
-
48
- gridClientSuppressLargeDatasetWarning: observable,
49
- setGridClientSuppressLargeDatasetWarning: action,
50
- });
51
-
52
- this.dataCube = dataCube;
53
- }
54
-
55
- enableDebugMode = DEFAULT_SETTINGS[DataCubeSettingKey.ENABLE_DEBUG_MODE];
56
- gridClientRowBuffer =
57
- DEFAULT_SETTINGS[DataCubeSettingKey.GRID_CLIENT_ROW_BUFFER];
58
- gridClientPurgeClosedRowNodes =
59
- DEFAULT_SETTINGS[DataCubeSettingKey.GRID_CLIENT_PURGE_CLOSED_ROW_NODES];
60
- gridClientSuppressLargeDatasetWarning =
61
- DEFAULT_SETTINGS[
62
- DataCubeSettingKey.GRID_CLIENT_SUPPRESS_LARGE_DATASET_WARNING
63
- ];
64
-
65
- setEnableDebugMode(value: boolean) {
66
- this.enableDebugMode = value;
67
- this.dataCube.onSettingChanged?.(
68
- DataCubeSettingKey.ENABLE_DEBUG_MODE,
69
- value,
70
- );
71
- }
72
-
73
- setGridClientRowBuffer(value: number) {
74
- this.gridClientRowBuffer = value;
75
- this.dataCube.onSettingChanged?.(
76
- DataCubeSettingKey.GRID_CLIENT_ROW_BUFFER,
77
- value,
78
- );
79
- this.propagateGridOptionUpdates();
80
- }
81
-
82
- setGridClientPurgeClosedRowNodes(value: boolean) {
83
- this.gridClientPurgeClosedRowNodes = value;
84
- this.dataCube.onSettingChanged?.(
85
- DataCubeSettingKey.GRID_CLIENT_PURGE_CLOSED_ROW_NODES,
86
- value,
87
- );
88
- this.propagateGridOptionUpdates();
89
- }
90
-
91
- setGridClientSuppressLargeDatasetWarning(value: boolean) {
92
- this.gridClientSuppressLargeDatasetWarning = value;
93
- this.dataCube.onSettingChanged?.(
94
- DataCubeSettingKey.GRID_CLIENT_SUPPRESS_LARGE_DATASET_WARNING,
95
- value,
96
- );
97
- }
98
-
99
- private propagateGridOptionUpdates() {
100
- this.dataCube.runTaskForEachView((view) => {
101
- view.grid.client.updateGridOptions({
102
- rowBuffer: this.gridClientRowBuffer,
103
- purgeClosedRowNodes: this.gridClientPurgeClosedRowNodes,
104
- });
105
- });
106
- }
107
- }