@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.
- package/README.md +1 -1
- package/lib/__lib__/DataCubeEvent.d.ts +21 -0
- package/lib/__lib__/DataCubeEvent.d.ts.map +1 -0
- package/lib/__lib__/DataCubeEvent.js +22 -0
- package/lib/__lib__/DataCubeEvent.js.map +1 -0
- package/lib/components/DataCube.d.ts +3 -1
- package/lib/components/DataCube.d.ts.map +1 -1
- package/lib/components/DataCube.js +10 -9
- package/lib/components/DataCube.js.map +1 -1
- package/lib/components/DataCubeProvider.js +1 -1
- package/lib/components/DataCubeProvider.js.map +1 -1
- package/lib/components/core/DataCubeAlert.d.ts +3 -2
- package/lib/components/core/DataCubeAlert.d.ts.map +1 -1
- package/lib/components/core/DataCubeAlert.js +4 -2
- package/lib/components/core/DataCubeAlert.js.map +1 -1
- package/lib/components/core/DataCubeFormUtils.d.ts +26 -0
- package/lib/components/core/DataCubeFormUtils.d.ts.map +1 -1
- package/lib/components/core/DataCubeFormUtils.js +127 -4
- package/lib/components/core/DataCubeFormUtils.js.map +1 -1
- package/lib/components/core/DataCubeLayoutManager.js +1 -1
- package/lib/components/core/DataCubeLayoutManager.js.map +1 -1
- package/lib/components/core/DataCubeSettingsPanel.d.ts.map +1 -1
- package/lib/components/core/DataCubeSettingsPanel.js +53 -27
- package/lib/components/core/DataCubeSettingsPanel.js.map +1 -1
- package/lib/components/view/editor/DataCubeEditor.d.ts.map +1 -1
- package/lib/components/view/editor/DataCubeEditor.js +6 -5
- package/lib/components/view/editor/DataCubeEditor.js.map +1 -1
- package/lib/components/view/editor/DataCubeEditorColumnPropertiesPanel.d.ts.map +1 -1
- package/lib/components/view/editor/DataCubeEditorColumnPropertiesPanel.js +4 -4
- package/lib/components/view/editor/DataCubeEditorColumnPropertiesPanel.js.map +1 -1
- package/lib/components/view/editor/DataCubeEditorGeneralPropertiesPanel.d.ts.map +1 -1
- package/lib/components/view/editor/DataCubeEditorGeneralPropertiesPanel.js +2 -2
- package/lib/components/view/editor/DataCubeEditorGeneralPropertiesPanel.js.map +1 -1
- package/lib/components/view/extend/DataCubeColumnEditor.d.ts.map +1 -1
- package/lib/components/view/extend/DataCubeColumnEditor.js +12 -12
- package/lib/components/view/extend/DataCubeColumnEditor.js.map +1 -1
- package/lib/components/view/filter/DataCubeFilterEditor.d.ts.map +1 -1
- package/lib/components/view/filter/DataCubeFilterEditor.js +4 -4
- package/lib/components/view/filter/DataCubeFilterEditor.js.map +1 -1
- package/lib/components/view/grid/DataCubeGrid.d.ts.map +1 -1
- package/lib/components/view/grid/DataCubeGrid.js +7 -7
- package/lib/components/view/grid/DataCubeGrid.js.map +1 -1
- package/lib/index.css +1 -1
- package/lib/index.d.ts +7 -2
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +7 -2
- package/lib/index.js.map +1 -1
- package/lib/package.json +2 -2
- package/lib/stores/DataCubeOptions.d.ts +6 -5
- package/lib/stores/DataCubeOptions.d.ts.map +1 -1
- package/lib/stores/DataCubeSettings.d.ts +25 -22
- package/lib/stores/DataCubeSettings.d.ts.map +1 -1
- package/lib/stores/DataCubeSettings.js +250 -62
- package/lib/stores/DataCubeSettings.js.map +1 -1
- package/lib/stores/DataCubeState.d.ts +8 -5
- package/lib/stores/DataCubeState.d.ts.map +1 -1
- package/lib/stores/DataCubeState.js +27 -42
- package/lib/stores/DataCubeState.js.map +1 -1
- package/lib/stores/core/DataCubeEngine.d.ts +15 -18
- package/lib/stores/core/DataCubeEngine.d.ts.map +1 -1
- package/lib/stores/core/DataCubeEngine.js +5 -16
- package/lib/stores/core/DataCubeEngine.js.map +1 -1
- package/lib/stores/core/DataCubeQueryBuilder.d.ts +1 -0
- package/lib/stores/core/DataCubeQueryBuilder.d.ts.map +1 -1
- package/lib/stores/core/DataCubeQueryBuilder.js.map +1 -1
- package/lib/stores/core/DataCubeQueryBuilderUtils.d.ts +3 -0
- package/lib/stores/core/DataCubeQueryBuilderUtils.d.ts.map +1 -1
- package/lib/stores/core/DataCubeQueryBuilderUtils.js +12 -1
- package/lib/stores/core/DataCubeQueryBuilderUtils.js.map +1 -1
- package/lib/stores/core/DataCubeQuerySnapshotBuilder.d.ts.map +1 -1
- package/lib/stores/core/DataCubeQuerySnapshotBuilder.js +46 -30
- package/lib/stores/core/DataCubeQuerySnapshotBuilder.js.map +1 -1
- package/lib/stores/core/DataCubeSetting.d.ts +51 -0
- package/lib/stores/core/DataCubeSetting.d.ts.map +1 -0
- package/lib/stores/core/DataCubeSetting.js +36 -0
- package/lib/stores/core/DataCubeSetting.js.map +1 -0
- package/lib/stores/core/models/AdhocQueryDataCubeSource.d.ts +29 -0
- package/lib/stores/core/models/AdhocQueryDataCubeSource.d.ts.map +1 -0
- package/lib/stores/core/models/AdhocQueryDataCubeSource.js +35 -0
- package/lib/stores/core/models/AdhocQueryDataCubeSource.js.map +1 -0
- package/lib/stores/core/models/DataCubeSource.d.ts +1 -1
- package/lib/stores/core/models/DataCubeSource.d.ts.map +1 -1
- package/lib/stores/core/models/DataCubeSource.js +1 -1
- package/lib/stores/core/models/DataCubeSource.js.map +1 -1
- package/lib/stores/view/DataCubeQuerySnapshotManager.d.ts.map +1 -1
- package/lib/stores/view/DataCubeQuerySnapshotManager.js +9 -2
- package/lib/stores/view/DataCubeQuerySnapshotManager.js.map +1 -1
- package/lib/stores/view/DataCubeViewState.d.ts +1 -1
- package/lib/stores/view/DataCubeViewState.d.ts.map +1 -1
- package/lib/stores/view/DataCubeViewState.js +5 -14
- package/lib/stores/view/DataCubeViewState.js.map +1 -1
- package/lib/stores/view/extend/DataCubeColumnEditorState.d.ts.map +1 -1
- package/lib/stores/view/extend/DataCubeColumnEditorState.js +5 -5
- package/lib/stores/view/extend/DataCubeColumnEditorState.js.map +1 -1
- package/lib/stores/view/grid/DataCubeGridClientEngine.d.ts +1 -1
- package/lib/stores/view/grid/DataCubeGridClientEngine.d.ts.map +1 -1
- package/lib/stores/view/grid/DataCubeGridClientEngine.js +11 -7
- package/lib/stores/view/grid/DataCubeGridClientEngine.js.map +1 -1
- package/lib/stores/view/grid/DataCubeGridQueryBuilder.d.ts.map +1 -1
- package/lib/stores/view/grid/DataCubeGridQueryBuilder.js +2 -2
- package/lib/stores/view/grid/DataCubeGridQueryBuilder.js.map +1 -1
- package/lib/stores/view/grid/DataCubeGridState.d.ts +1 -0
- package/lib/stores/view/grid/DataCubeGridState.d.ts.map +1 -1
- package/lib/stores/view/grid/DataCubeGridState.js +8 -3
- package/lib/stores/view/grid/DataCubeGridState.js.map +1 -1
- package/package.json +6 -6
- package/src/__lib__/DataCubeEvent.ts +21 -0
- package/src/components/DataCube.tsx +14 -8
- package/src/components/DataCubeProvider.tsx +1 -1
- package/src/components/core/DataCubeAlert.tsx +12 -7
- package/src/components/core/DataCubeFormUtils.tsx +245 -16
- package/src/components/core/DataCubeLayoutManager.tsx +1 -1
- package/src/components/core/DataCubeSettingsPanel.tsx +166 -134
- package/src/components/view/editor/DataCubeEditor.tsx +12 -16
- package/src/components/view/editor/DataCubeEditorColumnPropertiesPanel.tsx +6 -5
- package/src/components/view/editor/DataCubeEditorGeneralPropertiesPanel.tsx +4 -3
- package/src/components/view/extend/DataCubeColumnEditor.tsx +24 -28
- package/src/components/view/filter/DataCubeFilterEditor.tsx +10 -18
- package/src/components/view/grid/DataCubeGrid.tsx +8 -7
- package/src/index.tsx +13 -2
- package/src/stores/DataCubeOptions.ts +14 -10
- package/src/stores/DataCubeSettings.tsx +421 -0
- package/src/stores/DataCubeState.tsx +38 -51
- package/src/stores/core/DataCubeEngine.tsx +45 -62
- package/src/stores/core/DataCubeQueryBuilder.ts +1 -0
- package/src/stores/core/DataCubeQueryBuilderUtils.ts +17 -0
- package/src/stores/core/DataCubeQuerySnapshotBuilder.ts +59 -30
- package/src/stores/core/DataCubeSetting.ts +63 -0
- package/src/stores/core/models/AdhocQueryDataCubeSource.ts +45 -0
- package/src/stores/core/models/DataCubeSource.ts +1 -1
- package/src/stores/view/DataCubeQuerySnapshotManager.ts +16 -4
- package/src/stores/view/DataCubeViewState.ts +8 -17
- package/src/stores/view/extend/DataCubeColumnEditorState.tsx +8 -6
- package/src/stores/view/grid/DataCubeGridClientEngine.ts +22 -11
- package/src/stores/view/grid/DataCubeGridQueryBuilder.ts +7 -1
- package/src/stores/view/grid/DataCubeGridState.ts +17 -3
- package/tsconfig.json +4 -1
- package/src/stores/DataCubeSettings.ts +0 -107
|
@@ -1,76 +1,264 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
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
|
-
|
|
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
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
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
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
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
|
-
|
|
54
|
-
|
|
55
|
-
this.
|
|
56
|
-
|
|
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
|
-
|
|
59
|
-
|
|
60
|
-
this.
|
|
61
|
-
|
|
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
|
-
|
|
64
|
-
|
|
65
|
-
|
|
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
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
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.
|
|
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
|
|
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
|
-
|
|
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;
|
|
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 {
|
|
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
|
-
|
|
32
|
-
|
|
33
|
-
view;
|
|
30
|
+
initializeState = ActionState.create();
|
|
31
|
+
onInitialized;
|
|
34
32
|
onNameChanged;
|
|
35
|
-
onSettingChanged;
|
|
36
33
|
innerHeaderComponent;
|
|
37
34
|
currentDocumentationEntry;
|
|
38
35
|
currentActionAlert;
|
|
39
|
-
|
|
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
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
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.
|
|
108
|
-
this.engine.logDebug('
|
|
89
|
+
if (!this.initializeState.isInInitialState) {
|
|
90
|
+
this.engine.logDebug('DataCube state is re-initialized');
|
|
109
91
|
return;
|
|
110
92
|
}
|
|
111
|
-
this.
|
|
93
|
+
this.initializeState.inProgress();
|
|
112
94
|
try {
|
|
113
|
-
await this.engine.initialize(
|
|
114
|
-
|
|
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.
|
|
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":";AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAuB,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAEhE,OAAO,EAAE,kBAAkB,EAAE,MAAM,kDAAkD,CAAC;AACtF,OAAO,
|
|
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
|
|
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
|
-
|
|
85
|
-
|
|
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
|
-
|
|
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;
|