@finos/legend-data-cube 0.0.36 → 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
@@ -1,76 +1,264 @@
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
- import { makeObservable, observable, action } from 'mobx';
17
- export var DataCubeSettingKey;
18
- (function (DataCubeSettingKey) {
19
- DataCubeSettingKey["ENABLE_DEBUG_MODE"] = "engine.enableDebugMode";
20
- DataCubeSettingKey["GRID_CLIENT_ROW_BUFFER"] = "engine.grid-client.rowBuffer";
21
- DataCubeSettingKey["GRID_CLIENT_PURGE_CLOSED_ROW_NODES"] = "engine.grid-client.purgeClosedRowNodes";
22
- DataCubeSettingKey["GRID_CLIENT_SUPPRESS_LARGE_DATASET_WARNING"] = "engine.grid-client.suppressLargeDatasetWarning";
23
- })(DataCubeSettingKey || (DataCubeSettingKey = {}));
24
- export const DEFAULT_SETTINGS = {
25
- [DataCubeSettingKey.ENABLE_DEBUG_MODE]: false,
26
- [DataCubeSettingKey.GRID_CLIENT_ROW_BUFFER]: 50,
27
- [DataCubeSettingKey.GRID_CLIENT_PURGE_CLOSED_ROW_NODES]: false,
28
- [DataCubeSettingKey.GRID_CLIENT_SUPPRESS_LARGE_DATASET_WARNING]: false,
29
- };
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { DataCubeSettingGroup, DataCubeSettingKey, DataCubeSettingType, } from './core/DataCubeSetting.js';
3
+ import { hashArray, IllegalStateError, isBoolean, isNumber, isString, LogEvent, UnsupportedOperationError, } from '@finos/legend-shared';
4
+ import { DataCubeEvent } from '../__lib__/DataCubeEvent.js';
5
+ import { action, computed, makeObservable, observable, runInAction, } from 'mobx';
6
+ import { DataCubeSettingsPanel } from '../components/core/DataCubeSettingsPanel.js';
30
7
  export class DataCubeSettings {
31
8
  dataCube;
32
- constructor(dataCube) {
9
+ display;
10
+ configurations = new Map();
11
+ defaultValues = new Map();
12
+ defaultValuesHashCode;
13
+ values = new Map();
14
+ currentValues = new Map();
15
+ getSettingValues;
16
+ onSettingValuesChanged;
17
+ gridClientLicense;
18
+ constructor(dataCube, options) {
33
19
  makeObservable(this, {
34
- enableDebugMode: observable,
35
- setEnableDebugMode: action,
36
- gridClientRowBuffer: observable,
37
- setGridClientRowBuffer: action,
38
- gridClientPurgeClosedRowNodes: observable,
39
- setGridClientPurgeClosedRowNodes: action,
40
- gridClientSuppressLargeDatasetWarning: observable,
41
- setGridClientSuppressLargeDatasetWarning: action,
20
+ values: observable,
21
+ save: action,
22
+ valuesHashCode: computed,
23
+ currentValues: observable,
24
+ resetDefaultValues: action,
25
+ currentValuesHashCode: computed,
42
26
  });
43
27
  this.dataCube = dataCube;
28
+ this.getSettingValues = options?.getSettingValues;
29
+ this.onSettingValuesChanged = options?.onSettingValuesChanged;
30
+ this.display = this.dataCube.engine.layout.newDisplay('Settings', () => _jsx(DataCubeSettingsPanel, {}), {
31
+ x: -50,
32
+ y: 50,
33
+ width: 600,
34
+ height: 400,
35
+ minWidth: 300,
36
+ minHeight: 200,
37
+ center: false,
38
+ });
39
+ const CORE_SETTINGS = [
40
+ {
41
+ key: DataCubeSettingKey.DEBUGGER__ENABLE_DEBUG_MODE,
42
+ title: `Debug Mode: Enabled`,
43
+ description: `Enables debug logging when running data queries, updating snapshots, etc.`,
44
+ group: DataCubeSettingGroup.DEBUG,
45
+ type: DataCubeSettingType.BOOLEAN,
46
+ defaultValue: false,
47
+ },
48
+ {
49
+ key: DataCubeSettingKey.GRID_CLIENT__SUPPRESS_LARGE_DATASET_WARNING,
50
+ title: `Large Dataset Warning: Disabled`,
51
+ description: `Suggests user to enable pagination when handling large datasets to improve performance.`,
52
+ group: DataCubeSettingGroup.GRID,
53
+ type: DataCubeSettingType.BOOLEAN,
54
+ defaultValue: false,
55
+ },
56
+ {
57
+ key: DataCubeSettingKey.GRID_CLIENT__ROW_BUFFER,
58
+ title: `Row Buffer`,
59
+ description: `Sets the number of rows the grid renders outside of the viewable area. e.g. if the buffer is 10 and your grid is showing 50 rows (as that's all that fits on your screen without scrolling), then the grid will actually render 70 in total (10 extra above and 10 extra below). Then when you scroll, the grid will already have 10 rows ready and waiting to show, no redraw is needed. A low small buffer will make initial draws of the grid faster; whereas a big one will reduce the redraw visible vertically scrolling.`,
60
+ group: DataCubeSettingGroup.GRID,
61
+ type: DataCubeSettingType.NUMERIC,
62
+ defaultValue: 50,
63
+ numericValueMin: 10,
64
+ numericValueStep: 10,
65
+ action: (newValue) => this.dataCube.runTaskForEachView((view) => {
66
+ view.grid.client.updateGridOptions({
67
+ rowBuffer: newValue,
68
+ });
69
+ }),
70
+ },
71
+ {
72
+ key: DataCubeSettingKey.GRID_CLIENT__PURGE_CLOSED_ROW_NODES,
73
+ title: `Refresh Group Node Data: Enabled`,
74
+ description: `Forces refresh data when group node is opened.`,
75
+ group: DataCubeSettingGroup.GRID,
76
+ type: DataCubeSettingType.BOOLEAN,
77
+ defaultValue: false,
78
+ action: (newValue) => this.dataCube.runTaskForEachView((view) => {
79
+ view.grid.client.updateGridOptions({
80
+ purgeClosedRowNodes: newValue,
81
+ });
82
+ }),
83
+ },
84
+ {
85
+ key: DataCubeSettingKey.GRID_CLIENT__ACTION__REFRESH_FAILED_DATA_FETCHES,
86
+ title: `Refresh Failed Data Fetch: Action`,
87
+ description: `Manually re-runs all failed data fetches in the grid.`,
88
+ group: DataCubeSettingGroup.GRID,
89
+ type: DataCubeSettingType.ACTION,
90
+ action: () => this.dataCube.refreshFailedDataFetches(),
91
+ defaultValue: undefined,
92
+ },
93
+ ];
94
+ [...CORE_SETTINGS, ...(options?.getSettingItems?.() ?? [])].forEach((configuration) => {
95
+ this.configurations.set(configuration.key, configuration);
96
+ this.setValue(configuration.key, configuration.defaultValue, [
97
+ this.defaultValues,
98
+ this.values,
99
+ this.currentValues,
100
+ ]);
101
+ });
102
+ const settingValues = this.getSettingValues?.() ?? {};
103
+ Object.keys(settingValues).forEach((key) => {
104
+ const value = settingValues[key];
105
+ // for unknown settings (e.g. outdated settings, settings' keys changed, etc.), we ignore them
106
+ const configuration = this.configurations.get(key);
107
+ if (!configuration) {
108
+ return;
109
+ }
110
+ this.setValue(key, value, [this.values, this.currentValues]);
111
+ });
112
+ // NOTE: if we support explicity setting values from options, they should
113
+ // be processed here, as they should override the settings retrieved from
114
+ // cache.
115
+ this.defaultValuesHashCode = this.computeValuesHashCode(this.defaultValues);
116
+ }
117
+ setValue(key, value, valueIndexes) {
118
+ const configuration = this.configurations.get(key);
119
+ if (!configuration) {
120
+ this.dataCube.engine.logWarning(LogEvent.create(DataCubeEvent.SETTINGS__FAILURE__FOUND_UNREGISTERED_SETTING), `Can't set value for unregistered setting '${key}'`);
121
+ return false;
122
+ }
123
+ switch (configuration.type) {
124
+ case DataCubeSettingType.BOOLEAN: {
125
+ if (!(isBoolean(value) ||
126
+ (value === undefined && configuration.valueOptional))) {
127
+ this.dataCube.engine.logWarning(LogEvent.create(DataCubeEvent.SETTINGS__FAILURE__FOUND_UNREGISTERED_SETTING), `Can't set value for setting '${key}': boolean value expected`);
128
+ return false;
129
+ }
130
+ break;
131
+ }
132
+ case DataCubeSettingType.NUMERIC: {
133
+ if (!(isNumber(value) ||
134
+ (value === undefined && configuration.valueOptional))) {
135
+ this.dataCube.engine.logWarning(LogEvent.create(DataCubeEvent.SETTINGS__FAILURE__FOUND_UNREGISTERED_SETTING), `Can't set value for setting '${key}': numeric value expected`);
136
+ return false;
137
+ }
138
+ break;
139
+ }
140
+ case DataCubeSettingType.STRING: {
141
+ if (!(isString(value) ||
142
+ (value === undefined && configuration.valueOptional))) {
143
+ this.dataCube.engine.logWarning(LogEvent.create(DataCubeEvent.SETTINGS__FAILURE__FOUND_UNREGISTERED_SETTING), `Can't set value for setting '${key}': string value expected`);
144
+ return false;
145
+ }
146
+ break;
147
+ }
148
+ case DataCubeSettingType.ACTION: {
149
+ return false;
150
+ }
151
+ default:
152
+ throw new UnsupportedOperationError(`Can't set value for unsupported setting type '${configuration.type}'`);
153
+ }
154
+ valueIndexes.forEach((valueIndex) => {
155
+ runInAction(() => valueIndex.set(key, value));
156
+ });
157
+ return true;
158
+ }
159
+ getConfiguration(key) {
160
+ const configuration = this.configurations.get(key);
161
+ if (!configuration) {
162
+ this.dataCube.engine.logWarning(LogEvent.create(DataCubeEvent.SETTINGS__FAILURE__FOUND_UNREGISTERED_SETTING), `Can't retrieve value for unregistered setting '${key}'`);
163
+ throw new IllegalStateError(`Can't retrieve value for unregistered setting '${key}'`);
164
+ }
165
+ return configuration;
44
166
  }
45
- enableDebugMode = DEFAULT_SETTINGS[DataCubeSettingKey.ENABLE_DEBUG_MODE];
46
- gridClientRowBuffer = DEFAULT_SETTINGS[DataCubeSettingKey.GRID_CLIENT_ROW_BUFFER];
47
- gridClientPurgeClosedRowNodes = DEFAULT_SETTINGS[DataCubeSettingKey.GRID_CLIENT_PURGE_CLOSED_ROW_NODES];
48
- gridClientSuppressLargeDatasetWarning = DEFAULT_SETTINGS[DataCubeSettingKey.GRID_CLIENT_SUPPRESS_LARGE_DATASET_WARNING];
49
- setEnableDebugMode(value) {
50
- this.enableDebugMode = value;
51
- this.dataCube.onSettingChanged?.(DataCubeSettingKey.ENABLE_DEBUG_MODE, value);
167
+ getBooleanValue(key) {
168
+ const value = this.values.get(key);
169
+ const configuration = this.getConfiguration(key);
170
+ if (configuration.type !== DataCubeSettingType.BOOLEAN ||
171
+ !isBoolean(value)) {
172
+ this.dataCube.engine.logWarning(LogEvent.create(DataCubeEvent.SETTINGS__FAILURE__RETRIEVE_INCOMPATIBLE_VALUE), `Can't retrieve boolean value for setting '${key}'`);
173
+ throw new IllegalStateError(`Can't retrieve boolean value for setting '${key}'`);
174
+ }
175
+ return value;
52
176
  }
53
- setGridClientRowBuffer(value) {
54
- this.gridClientRowBuffer = value;
55
- this.dataCube.onSettingChanged?.(DataCubeSettingKey.GRID_CLIENT_ROW_BUFFER, value);
56
- this.propagateGridOptionUpdates();
177
+ getNumericValue(key) {
178
+ const value = this.values.get(key);
179
+ const configuration = this.getConfiguration(key);
180
+ if (configuration.type !== DataCubeSettingType.NUMERIC ||
181
+ !isNumber(value)) {
182
+ this.dataCube.engine.logWarning(LogEvent.create(DataCubeEvent.SETTINGS__FAILURE__RETRIEVE_INCOMPATIBLE_VALUE), `Can't retrieve numeric value for setting '${key}'`);
183
+ throw new IllegalStateError(`Can't retrieve numeric value for setting '${key}'`);
184
+ }
185
+ return value;
57
186
  }
58
- setGridClientPurgeClosedRowNodes(value) {
59
- this.gridClientPurgeClosedRowNodes = value;
60
- this.dataCube.onSettingChanged?.(DataCubeSettingKey.GRID_CLIENT_PURGE_CLOSED_ROW_NODES, value);
61
- this.propagateGridOptionUpdates();
187
+ getStringValue(key) {
188
+ const value = this.values.get(key);
189
+ const configuration = this.getConfiguration(key);
190
+ if (configuration.type !== DataCubeSettingType.STRING || !isString(value)) {
191
+ this.dataCube.engine.logWarning(LogEvent.create(DataCubeEvent.SETTINGS__FAILURE__RETRIEVE_INCOMPATIBLE_VALUE), `Can't retrieve string value for setting '${key}'`);
192
+ throw new IllegalStateError(`Can't retrieve string value for setting '${key}'`);
193
+ }
194
+ return value;
62
195
  }
63
- setGridClientSuppressLargeDatasetWarning(value) {
64
- this.gridClientSuppressLargeDatasetWarning = value;
65
- this.dataCube.onSettingChanged?.(DataCubeSettingKey.GRID_CLIENT_SUPPRESS_LARGE_DATASET_WARNING, value);
196
+ updateValue(key, value) {
197
+ const configuration = this.configurations.get(key);
198
+ if (!configuration) {
199
+ this.dataCube.engine.logWarning(LogEvent.create(DataCubeEvent.SETTINGS__FAILURE__FOUND_UNREGISTERED_SETTING), `Can't set value for unregistered setting '${key}'`);
200
+ return;
201
+ }
202
+ if (!this.setValue(key, value, [this.values, this.currentValues])) {
203
+ return;
204
+ }
205
+ // trigger hook
206
+ this.onSettingValuesChanged?.(this.getCurrentSettingValues());
207
+ // trigger action
208
+ configuration.action?.(value);
209
+ }
210
+ computeValuesHashCode(values) {
211
+ return hashArray(Array.from(values.entries())
212
+ .toSorted((a, b) => a[0].localeCompare(b[0]))
213
+ .map(([key, value]) => `${key}:${value}`));
214
+ }
215
+ get valuesHashCode() {
216
+ return this.computeValuesHashCode(this.values);
217
+ }
218
+ get currentValuesHashCode() {
219
+ return this.computeValuesHashCode(this.currentValues);
220
+ }
221
+ resetDefaultValues() {
222
+ this.currentValues.clear();
223
+ this.defaultValues.forEach((value, key) => this.currentValues.set(key, value));
224
+ }
225
+ getCurrentSettingValues() {
226
+ const settingValues = {};
227
+ this.values.forEach((value, key) => {
228
+ const configuration = this.configurations.get(key);
229
+ // skip if value is the same as default value
230
+ if (configuration && value !== configuration.defaultValue) {
231
+ settingValues[key] = value;
232
+ }
233
+ });
234
+ return settingValues;
66
235
  }
67
- propagateGridOptionUpdates() {
68
- this.dataCube.runTaskForEachView((view) => {
69
- view.grid.client.updateGridOptions({
70
- rowBuffer: this.gridClientRowBuffer,
71
- purgeClosedRowNodes: this.gridClientPurgeClosedRowNodes,
72
- });
236
+ save() {
237
+ const changedSettingKeys = new Set();
238
+ this.values.forEach((value, key) => {
239
+ if (value !== this.currentValues.get(key)) {
240
+ changedSettingKeys.add(key);
241
+ }
73
242
  });
243
+ // update values
244
+ this.values.clear();
245
+ this.currentValues.forEach((value, key) => this.values.set(key, value));
246
+ // trigger hook
247
+ this.onSettingValuesChanged?.(this.getCurrentSettingValues());
248
+ // trigger action
249
+ let requiresReload = false;
250
+ for (const key of changedSettingKeys) {
251
+ const configuration = this.configurations.get(key);
252
+ if (configuration?.requiresReload) {
253
+ requiresReload = true;
254
+ }
255
+ if (configuration?.action) {
256
+ configuration.action(this.values.get(key));
257
+ }
258
+ }
259
+ if (requiresReload) {
260
+ this.dataCube.reload();
261
+ }
74
262
  }
75
263
  }
76
264
  //# sourceMappingURL=DataCubeSettings.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DataCubeSettings.js","sourceRoot":"","sources":["../../src/stores/DataCubeSettings.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAG1D,MAAM,CAAN,IAAY,kBAKX;AALD,WAAY,kBAAkB;IAC5B,kEAA4C,CAAA;IAC5C,6EAAuD,CAAA;IACvD,mGAA6E,CAAA;IAC7E,mHAA6F,CAAA;AAC/F,CAAC,EALW,kBAAkB,KAAlB,kBAAkB,QAK7B;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,EAAE,KAAK;IAC7C,CAAC,kBAAkB,CAAC,sBAAsB,CAAC,EAAE,EAAE;IAC/C,CAAC,kBAAkB,CAAC,kCAAkC,CAAC,EAAE,KAAK;IAC9D,CAAC,kBAAkB,CAAC,0CAA0C,CAAC,EAAE,KAAK;CACvE,CAAC;AAEF,MAAM,OAAO,gBAAgB;IAClB,QAAQ,CAAgB;IAEjC,YAAY,QAAuB;QACjC,cAAc,CAAC,IAAI,EAAE;YACnB,eAAe,EAAE,UAAU;YAC3B,kBAAkB,EAAE,MAAM;YAE1B,mBAAmB,EAAE,UAAU;YAC/B,sBAAsB,EAAE,MAAM;YAE9B,6BAA6B,EAAE,UAAU;YACzC,gCAAgC,EAAE,MAAM;YAExC,qCAAqC,EAAE,UAAU;YACjD,wCAAwC,EAAE,MAAM;SACjD,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;IAED,eAAe,GAAG,gBAAgB,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,CAAC;IACzE,mBAAmB,GACjB,gBAAgB,CAAC,kBAAkB,CAAC,sBAAsB,CAAC,CAAC;IAC9D,6BAA6B,GAC3B,gBAAgB,CAAC,kBAAkB,CAAC,kCAAkC,CAAC,CAAC;IAC1E,qCAAqC,GACnC,gBAAgB,CACd,kBAAkB,CAAC,0CAA0C,CAC9D,CAAC;IAEJ,kBAAkB,CAAC,KAAc;QAC/B,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;QAC7B,IAAI,CAAC,QAAQ,CAAC,gBAAgB,EAAE,CAC9B,kBAAkB,CAAC,iBAAiB,EACpC,KAAK,CACN,CAAC;IACJ,CAAC;IAED,sBAAsB,CAAC,KAAa;QAClC,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;QACjC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,EAAE,CAC9B,kBAAkB,CAAC,sBAAsB,EACzC,KAAK,CACN,CAAC;QACF,IAAI,CAAC,0BAA0B,EAAE,CAAC;IACpC,CAAC;IAED,gCAAgC,CAAC,KAAc;QAC7C,IAAI,CAAC,6BAA6B,GAAG,KAAK,CAAC;QAC3C,IAAI,CAAC,QAAQ,CAAC,gBAAgB,EAAE,CAC9B,kBAAkB,CAAC,kCAAkC,EACrD,KAAK,CACN,CAAC;QACF,IAAI,CAAC,0BAA0B,EAAE,CAAC;IACpC,CAAC;IAED,wCAAwC,CAAC,KAAc;QACrD,IAAI,CAAC,qCAAqC,GAAG,KAAK,CAAC;QACnD,IAAI,CAAC,QAAQ,CAAC,gBAAgB,EAAE,CAC9B,kBAAkB,CAAC,0CAA0C,EAC7D,KAAK,CACN,CAAC;IACJ,CAAC;IAEO,0BAA0B;QAChC,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC,IAAI,EAAE,EAAE;YACxC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC;gBACjC,SAAS,EAAE,IAAI,CAAC,mBAAmB;gBACnC,mBAAmB,EAAE,IAAI,CAAC,6BAA6B;aACxD,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;CACF"}
1
+ {"version":3,"file":"DataCubeSettings.js","sourceRoot":"","sources":["../../src/stores/DataCubeSettings.tsx"],"names":[],"mappings":"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"}
@@ -22,19 +22,22 @@ import type { DataCubeSource } from './core/models/DataCubeSource.js';
22
22
  import { DataCubeSettings } from './DataCubeSettings.js';
23
23
  import type { DataCubeAPI } from './DataCubeAPI.js';
24
24
  import type { DataCubeOptions } from './DataCubeOptions.js';
25
+ import type { DataCubeQuery } from './core/models/DataCubeQuery.js';
25
26
  export declare class DataCubeState implements DataCubeAPI {
27
+ uuid: string;
26
28
  readonly engine: DataCubeEngine;
29
+ readonly query: DataCubeQuery;
27
30
  readonly settings: DataCubeSettings;
28
- readonly initState: ActionState;
29
- readonly settingsDisplay: DisplayState;
30
31
  readonly documentationDisplay: DisplayState;
31
- readonly view: DataCubeViewState;
32
+ readonly initializeState: ActionState;
33
+ onInitialized?: ((dataCube: DataCubeState) => void) | undefined;
32
34
  onNameChanged?: ((name: string, source: DataCubeSource) => void) | undefined;
33
- onSettingChanged?: ((key: string, value: string | number | boolean | object | undefined) => void) | undefined;
34
35
  innerHeaderComponent?: ((dataCube: DataCubeState) => React.ReactNode) | undefined;
35
36
  currentDocumentationEntry?: DocumentationEntry | undefined;
36
37
  currentActionAlert?: ActionAlert | undefined;
37
- constructor(engine: DataCubeEngine, options?: DataCubeOptions | undefined);
38
+ view: DataCubeViewState;
39
+ constructor(query: DataCubeQuery, engine: DataCubeEngine, options?: DataCubeOptions | undefined);
40
+ reload(): void;
38
41
  getSettings(): DataCubeSettings;
39
42
  openDocumentationEntry(entry: DocumentationEntry | undefined): void;
40
43
  alertAction(alert: ActionAlert | undefined): void;
@@ -1 +1 @@
1
- {"version":3,"file":"DataCubeState.d.ts","sourceRoot":"","sources":["../../src/stores/DataCubeState.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAC;AAGzE,OAAO,EACL,WAAW,EAEX,KAAK,kBAAkB,EACxB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAEL,KAAK,WAAW,EACjB,MAAM,qCAAqC,CAAC;AAC7C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAEtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAE5D,qBAAa,aAAc,YAAW,WAAW;IAC/C,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;IAChC,QAAQ,CAAC,QAAQ,EAAG,gBAAgB,CAAC;IACrC,QAAQ,CAAC,SAAS,cAAwB;IAC1C,QAAQ,CAAC,eAAe,EAAE,YAAY,CAAC;IACvC,QAAQ,CAAC,oBAAoB,EAAE,YAAY,CAAC;IAG5C,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC;IAEjC,aAAa,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IAC7E,gBAAgB,CAAC,EACb,CAAC,CACC,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,KAClD,IAAI,CAAC,GACV,SAAS,CAAC;IACd,oBAAoB,CAAC,EACjB,CAAC,CAAC,QAAQ,EAAE,aAAa,KAAK,KAAK,CAAC,SAAS,CAAC,GAC9C,SAAS,CAAC;IAEd,yBAAyB,CAAC,EAAE,kBAAkB,GAAG,SAAS,CAAC;IAC3D,kBAAkB,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC;gBAEjC,MAAM,EAAE,cAAc,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,SAAS;IA8DzE,WAAW;IAIX,sBAAsB,CAAC,KAAK,EAAE,kBAAkB,GAAG,SAAS;IAI5D,WAAW,CAAC,KAAK,EAAE,WAAW,GAAG,SAAS;IAI1C,wBAAwB;IAMxB,kBAAkB,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,iBAAiB,KAAK,IAAI;IAMtD,UAAU;CAqBjB"}
1
+ {"version":3,"file":"DataCubeState.d.ts","sourceRoot":"","sources":["../../src/stores/DataCubeState.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAC;AAEzE,OAAO,EACL,WAAW,EAGX,KAAK,kBAAkB,EACxB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAEL,KAAK,WAAW,EACjB,MAAM,qCAAqC,CAAC;AAC7C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAEtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAEpE,qBAAa,aAAc,YAAW,WAAW;IAC/C,IAAI,SAAU;IAEd,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;IAEhC,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC;IAC9B,QAAQ,CAAC,QAAQ,EAAG,gBAAgB,CAAC;IACrC,QAAQ,CAAC,oBAAoB,EAAE,YAAY,CAAC;IAC5C,QAAQ,CAAC,eAAe,cAAwB;IAEhD,aAAa,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,aAAa,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IAChE,aAAa,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IAC7E,oBAAoB,CAAC,EACjB,CAAC,CAAC,QAAQ,EAAE,aAAa,KAAK,KAAK,CAAC,SAAS,CAAC,GAC9C,SAAS,CAAC;IAEd,yBAAyB,CAAC,EAAE,kBAAkB,GAAG,SAAS,CAAC;IAC3D,kBAAkB,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC;IAI7C,IAAI,EAAE,iBAAiB,CAAC;gBAGtB,KAAK,EAAE,aAAa,EACpB,MAAM,EAAE,cAAc,EACtB,OAAO,CAAC,EAAE,eAAe,GAAG,SAAS;IAqCvC,MAAM;IAKN,WAAW;IAIX,sBAAsB,CAAC,KAAK,EAAE,kBAAkB,GAAG,SAAS;IAI5D,WAAW,CAAC,KAAK,EAAE,WAAW,GAAG,SAAS;IAI1C,wBAAwB;IAMxB,kBAAkB,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,iBAAiB,KAAK,IAAI;IAMtD,UAAU;CAyBjB"}
@@ -17,44 +17,38 @@ import { jsx as _jsx } from "react/jsx-runtime";
17
17
  import {} from './core/DataCubeEngine.js';
18
18
  import { DataCubeViewState } from './view/DataCubeViewState.js';
19
19
  import { DocumentationPanel } from '../components/core/DataCubeDocumentationPanel.js';
20
- import { DataCubeSettingsPanel } from '../components/core/DataCubeSettingsPanel.js';
21
- import { ActionState, assertErrorThrown, } from '@finos/legend-shared';
20
+ import { ActionState, assertErrorThrown, uuid, } from '@finos/legend-shared';
22
21
  import { AlertType, } from '../components/core/DataCubeAlert.js';
23
22
  import { action, makeObservable, observable } from 'mobx';
24
23
  import { DataCubeSettings } from './DataCubeSettings.js';
25
24
  export class DataCubeState {
25
+ uuid = uuid();
26
26
  engine;
27
+ query;
27
28
  settings;
28
- initState = ActionState.create();
29
- settingsDisplay;
30
29
  documentationDisplay;
31
- // NOTE: when we support multiview, there can be multiple view states to support
32
- // the first one in that list will be taken as the main view state
33
- view;
30
+ initializeState = ActionState.create();
31
+ onInitialized;
34
32
  onNameChanged;
35
- onSettingChanged;
36
33
  innerHeaderComponent;
37
34
  currentDocumentationEntry;
38
35
  currentActionAlert;
39
- constructor(engine, options) {
36
+ // NOTE: when we support multiview, there can be multiple view states to support
37
+ // the first one in that list will be taken as the main view state
38
+ view;
39
+ constructor(query, engine, options) {
40
40
  makeObservable(this, {
41
41
  currentDocumentationEntry: observable,
42
42
  openDocumentationEntry: action,
43
43
  currentActionAlert: observable,
44
44
  alertAction: action,
45
+ uuid: observable,
46
+ reload: action,
45
47
  });
48
+ this.query = query;
46
49
  this.engine = engine;
47
- this.settings = new DataCubeSettings(this);
50
+ this.settings = new DataCubeSettings(this, options);
48
51
  this.view = new DataCubeViewState(this);
49
- this.settingsDisplay = this.engine.layout.newDisplay('Settings', () => _jsx(DataCubeSettingsPanel, {}), {
50
- x: -50,
51
- y: 50,
52
- width: 600,
53
- height: 400,
54
- minWidth: 300,
55
- minHeight: 200,
56
- center: false,
57
- });
58
52
  this.documentationDisplay = this.engine.layout.newDisplay('Documentation', () => _jsx(DocumentationPanel, {}), {
59
53
  x: -50,
60
54
  y: -50,
@@ -64,25 +58,13 @@ export class DataCubeState {
64
58
  minHeight: 200,
65
59
  center: false,
66
60
  });
61
+ this.onInitialized = options?.onInitialized;
67
62
  this.onNameChanged = options?.onNameChanged;
68
- this.onSettingChanged = options?.onSettingChanged;
69
63
  this.innerHeaderComponent = options?.innerHeaderComponent;
70
- this.settings.enableDebugMode =
71
- options?.enableDebugMode !== undefined
72
- ? options.enableDebugMode
73
- : this.settings.enableDebugMode;
74
- this.settings.gridClientRowBuffer =
75
- options?.gridClientRowBuffer !== undefined
76
- ? options.gridClientRowBuffer
77
- : this.settings.gridClientRowBuffer;
78
- this.settings.gridClientPurgeClosedRowNodes =
79
- options?.gridClientPurgeClosedRowNodes !== undefined
80
- ? options.gridClientPurgeClosedRowNodes
81
- : this.settings.gridClientPurgeClosedRowNodes;
82
- this.settings.gridClientSuppressLargeDatasetWarning =
83
- options?.gridClientSuppressLargeDatasetWarning !== undefined
84
- ? options.gridClientSuppressLargeDatasetWarning
85
- : this.settings.gridClientSuppressLargeDatasetWarning;
64
+ }
65
+ reload() {
66
+ this.view = new DataCubeViewState(this);
67
+ this.uuid = uuid();
86
68
  }
87
69
  getSettings() {
88
70
  return this.settings;
@@ -104,14 +86,17 @@ export class DataCubeState {
104
86
  runner(this.view);
105
87
  }
106
88
  async initialize() {
107
- if (!this.initState.isInInitialState) {
108
- this.engine.logDebug('REPL store is re-initialized');
89
+ if (!this.initializeState.isInInitialState) {
90
+ this.engine.logDebug('DataCube state is re-initialized');
109
91
  return;
110
92
  }
111
- this.initState.inProgress();
93
+ this.initializeState.inProgress();
112
94
  try {
113
- await this.engine.initialize();
114
- this.initState.pass();
95
+ await this.engine.initialize({
96
+ gridClientLicense: this.settings.gridClientLicense,
97
+ });
98
+ this.onInitialized?.(this);
99
+ this.initializeState.pass();
115
100
  }
116
101
  catch (error) {
117
102
  assertErrorThrown(error);
@@ -121,7 +106,7 @@ export class DataCubeState {
121
106
  type: AlertType.ERROR,
122
107
  actions: [],
123
108
  });
124
- this.initState.fail();
109
+ this.initializeState.fail();
125
110
  }
126
111
  }
127
112
  }
@@ -1 +1 @@
1
- {"version":3,"file":"DataCubeState.js","sourceRoot":"","sources":["../../src/stores/DataCubeState.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DataCubeState.js","sourceRoot":"","sources":["../../src/stores/DataCubeState.tsx"],"names":[],"mappings":"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"}
@@ -56,44 +56,34 @@ import { DataCubeQueryFilterOperation__IsNull } from './filter/DataCubeQueryFilt
56
56
  import { DataCubeQueryFilterOperation__IsNotNull } from './filter/DataCubeQueryFilterOperation__IsNotNull.js';
57
57
  import type { DataCubeQuerySnapshot } from './DataCubeQuerySnapshot.js';
58
58
  import type { DataCubeColumn } from './models/DataCubeColumn.js';
59
- import type { DataCubeQuery } from './models/DataCubeQuery.js';
60
59
  import { type DataCubeSource } from './models/DataCubeSource.js';
61
60
  import { type DocumentationEntry, type LogEvent, type PlainObject } from '@finos/legend-shared';
62
61
  import { AlertType, type ActionAlertAction } from '../../components/core/DataCubeAlert.js';
63
62
  import { LayoutManagerState, type WindowConfiguration } from './DataCubeLayoutManagerState.js';
64
- import type { DataCubeAPI } from '../DataCubeAPI.js';
65
63
  export type CompletionItem = {
66
64
  completion: string;
67
65
  display: string;
68
66
  };
69
- export type RelationType = {
67
+ export type DataCubeRelationType = {
70
68
  columns: DataCubeColumn[];
71
69
  };
70
+ export type DataCubeExecutionOptions = {
71
+ debug?: boolean | undefined;
72
+ };
72
73
  export type DataCubeExecutionResult = {
73
74
  result: TDSExecutionResult;
74
75
  executedQuery: string;
75
76
  executedSQL: string;
76
77
  };
77
- export type DataCubeEngineConfiguration = {
78
- gridClientLicense?: string | undefined;
79
- };
80
78
  export declare abstract class DataCubeEngine {
81
79
  readonly layout: LayoutManagerState;
82
80
  readonly filterOperations: (DataCubeQueryFilterOperation__Equal | DataCubeQueryFilterOperation__LessThanOrEqual | DataCubeQueryFilterOperation__LessThan | DataCubeQueryFilterOperation__GreaterThanOrEqual | DataCubeQueryFilterOperation__GreaterThan | DataCubeQueryFilterOperation__NotEqual | DataCubeQueryFilterOperation__EqualColumn | DataCubeQueryFilterOperation__EqualCaseInsensitive | DataCubeQueryFilterOperation__NotEqualCaseInsensitive | DataCubeQueryFilterOperation__EqualCaseInsensitiveColumn | DataCubeQueryFilterOperation__NotEqualCaseInsensitiveColumn | DataCubeQueryFilterOperation__NotEqualColumn | DataCubeQueryFilterOperation__LessThanColumn | DataCubeQueryFilterOperation__LessThanOrEqualColumn | DataCubeQueryFilterOperation__GreaterThanColumn | DataCubeQueryFilterOperation__GreaterThanOrEqualColumn | DataCubeQueryFilterOperation__Contain | DataCubeQueryFilterOperation__ContainCaseInsensitive | DataCubeQueryFilterOperation__NotContain | DataCubeQueryFilterOperation__StartWith | DataCubeQueryFilterOperation__StartWithCaseInsensitive | DataCubeQueryFilterOperation__NotStartWith | DataCubeQueryFilterOperation__EndWith | DataCubeQueryFilterOperation__EndWithCaseInsensitive | DataCubeQueryFilterOperation__NotEndWith | DataCubeQueryFilterOperation__IsNull | DataCubeQueryFilterOperation__IsNotNull)[];
83
81
  readonly aggregateOperations: (DataCubeQueryAggregateOperation__Sum | DataCubeQueryAggregateOperation__Average | DataCubeQueryAggregateOperation__Count | DataCubeQueryAggregateOperation__Min | DataCubeQueryAggregateOperation__Max | DataCubeQueryAggregateOperation__UniqueValue | DataCubeQueryAggregateOperation__First | DataCubeQueryAggregateOperation__Last | DataCubeQueryAggregateOperation__VariancePopulation | DataCubeQueryAggregateOperation__VarianceSample | DataCubeQueryAggregateOperation__StdDevPopulation | DataCubeQueryAggregateOperation__StdDevSample | DataCubeQueryAggregateOperation__JoinStrings)[];
84
- protected fetchConfiguration(): Promise<DataCubeEngineConfiguration>;
85
- initialize(): Promise<void>;
82
+ initialize(options?: {
83
+ gridClientLicense?: string | undefined;
84
+ }): Promise<void>;
86
85
  getFilterOperation(value: string): import("./filter/DataCubeQueryFilterOperation.js").DataCubeQueryFilterOperation;
87
86
  getAggregateOperation(value: string): import("./aggregation/DataCubeQueryAggregateOperation.js").DataCubeQueryAggregateOperation;
88
- abstract getBaseQuery(): Promise<DataCubeQuery | undefined>;
89
- abstract processQuerySource(value: PlainObject): Promise<DataCubeSource>;
90
- abstract parseValueSpecification(code: string, returnSourceInformation?: boolean | undefined): Promise<V1_ValueSpecification>;
91
- abstract getValueSpecificationCode(value: V1_ValueSpecification, pretty?: boolean | undefined): Promise<string>;
92
- abstract getQueryTypeahead(code: string, baseQuery: V1_Lambda, source: DataCubeSource): Promise<CompletionItem[]>;
93
- abstract getQueryRelationType(query: V1_Lambda, source: DataCubeSource): Promise<RelationType>;
94
- abstract getQueryCodeRelationReturnType(code: string, baseQuery: V1_ValueSpecification, source: DataCubeSource): Promise<RelationType>;
95
- abstract executeQuery(query: V1_Lambda, source: DataCubeSource, api: DataCubeAPI): Promise<DataCubeExecutionResult>;
96
- abstract buildExecutionContext(source: DataCubeSource): V1_AppliedFunction | undefined;
97
87
  /**
98
88
  * By default, for a function chain, Pure grammar composer will extract the first parameter of the first function
99
89
  * and render it as the caller of that function rather than a parameter
@@ -103,7 +93,14 @@ export declare abstract class DataCubeEngine {
103
93
  * Then remove this dummy value from the final code.
104
94
  */
105
95
  getPartialQueryCode(snapshot: DataCubeQuerySnapshot, pretty?: boolean | undefined): Promise<string>;
106
- generateInitialQuery(snapshot: DataCubeQuerySnapshot): V1_AppliedFunction;
96
+ abstract processQuerySource(value: PlainObject): Promise<DataCubeSource>;
97
+ abstract parseValueSpecification(code: string, returnSourceInformation?: boolean | undefined): Promise<V1_ValueSpecification>;
98
+ abstract getValueSpecificationCode(value: V1_ValueSpecification, pretty?: boolean | undefined): Promise<string>;
99
+ abstract getQueryTypeahead(code: string, baseQuery: V1_Lambda, source: DataCubeSource): Promise<CompletionItem[]>;
100
+ abstract getQueryRelationType(query: V1_Lambda, source: DataCubeSource): Promise<DataCubeRelationType>;
101
+ abstract getQueryCodeRelationReturnType(code: string, baseQuery: V1_ValueSpecification, source: DataCubeSource): Promise<DataCubeRelationType>;
102
+ abstract executeQuery(query: V1_Lambda, source: DataCubeSource, options?: DataCubeExecutionOptions | undefined): Promise<DataCubeExecutionResult>;
103
+ abstract buildExecutionContext(source: DataCubeSource): V1_AppliedFunction | undefined;
107
104
  getDocumentationURL(): string | undefined;
108
105
  getDocumentationEntry(key: string): DocumentationEntry | undefined;
109
106
  shouldDisplayDocumentationEntry(entry: DocumentationEntry): boolean;