@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
|
@@ -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 =
|
|
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
|
-
|
|
304
|
-
|
|
305
|
-
|
|
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
|
-
|
|
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 (
|
|
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
|
-
.
|
|
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.
|
|
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(
|
|
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
|
|
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 (
|
|
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.
|
|
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
|
-
}
|