@finos/legend-application-repl 0.0.30 → 0.0.32
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/lib/components/LegendREPLFrameworkProvider.js +1 -1
- package/lib/components/LegendREPLFrameworkProvider.js.map +1 -1
- package/lib/components/REPLStoreProvider.d.ts +1 -1
- package/lib/components/REPLStoreProvider.d.ts.map +1 -1
- package/lib/components/REPLStoreProvider.js +1 -1
- package/lib/components/REPLStoreProvider.js.map +1 -1
- package/lib/components/REPLWindow.d.ts +33 -0
- package/lib/components/REPLWindow.d.ts.map +1 -0
- package/lib/components/REPLWindow.js +117 -0
- package/lib/components/REPLWindow.js.map +1 -0
- package/lib/components/dataCube/DataCube.d.ts.map +1 -1
- package/lib/components/dataCube/DataCube.js +13 -9
- package/lib/components/dataCube/DataCube.js.map +1 -1
- package/lib/components/dataCube/editor/DataCubeEditor.d.ts.map +1 -1
- package/lib/components/dataCube/editor/DataCubeEditor.js +13 -90
- package/lib/components/dataCube/editor/DataCubeEditor.js.map +1 -1
- package/lib/components/dataCube/editor/DataCubeEditorCodePanel.d.ts.map +1 -1
- package/lib/components/dataCube/editor/DataCubeEditorCodePanel.js +3 -2
- package/lib/components/dataCube/editor/DataCubeEditorCodePanel.js.map +1 -1
- package/lib/components/dataCube/editor/DataCubeEditorColumnPropertiesPanel.d.ts.map +1 -1
- package/lib/components/dataCube/editor/DataCubeEditorColumnPropertiesPanel.js +237 -6
- package/lib/components/dataCube/editor/DataCubeEditorColumnPropertiesPanel.js.map +1 -1
- package/lib/components/dataCube/editor/DataCubeEditorColumnsPanel.js +2 -2
- package/lib/components/dataCube/editor/DataCubeEditorColumnsPanel.js.map +1 -1
- package/lib/components/dataCube/editor/DataCubeEditorColumnsSelector.d.ts +5 -0
- package/lib/components/dataCube/editor/DataCubeEditorColumnsSelector.d.ts.map +1 -1
- package/lib/components/dataCube/editor/DataCubeEditorColumnsSelector.js +130 -48
- package/lib/components/dataCube/editor/DataCubeEditorColumnsSelector.js.map +1 -1
- package/lib/{stores/dataCube/DataCubeDefaultConfig.d.ts → components/dataCube/editor/DataCubeEditorDeveloperPanel.d.ts} +4 -2
- package/lib/components/dataCube/editor/DataCubeEditorDeveloperPanel.d.ts.map +1 -0
- package/lib/components/dataCube/editor/DataCubeEditorDeveloperPanel.js +28 -0
- package/lib/components/dataCube/editor/DataCubeEditorDeveloperPanel.js.map +1 -0
- package/lib/components/dataCube/editor/DataCubeEditorExtendedColumnsPanel.d.ts.map +1 -1
- package/lib/components/dataCube/editor/DataCubeEditorExtendedColumnsPanel.js +3 -2
- package/lib/components/dataCube/editor/DataCubeEditorExtendedColumnsPanel.js.map +1 -1
- package/lib/components/dataCube/editor/DataCubeEditorFilterPanel.d.ts.map +1 -1
- package/lib/components/dataCube/editor/DataCubeEditorFilterPanel.js +3 -2
- package/lib/components/dataCube/editor/DataCubeEditorFilterPanel.js.map +1 -1
- package/lib/components/dataCube/editor/DataCubeEditorGeneralPropertiesPanel.d.ts.map +1 -1
- package/lib/components/dataCube/editor/DataCubeEditorGeneralPropertiesPanel.js +145 -5
- package/lib/components/dataCube/editor/DataCubeEditorGeneralPropertiesPanel.js.map +1 -1
- package/lib/components/dataCube/editor/DataCubeEditorHPivotsPanel.d.ts.map +1 -1
- package/lib/components/dataCube/editor/DataCubeEditorHPivotsPanel.js +3 -2
- package/lib/components/dataCube/editor/DataCubeEditorHPivotsPanel.js.map +1 -1
- package/lib/components/dataCube/editor/DataCubeEditorShared.d.ts +47 -0
- package/lib/components/dataCube/editor/DataCubeEditorShared.d.ts.map +1 -0
- package/lib/components/dataCube/editor/DataCubeEditorShared.js +188 -0
- package/lib/components/dataCube/editor/DataCubeEditorShared.js.map +1 -0
- package/lib/components/dataCube/editor/DataCubeEditorSortsPanel.d.ts.map +1 -1
- package/lib/components/dataCube/editor/DataCubeEditorSortsPanel.js +36 -3
- package/lib/components/dataCube/editor/DataCubeEditorSortsPanel.js.map +1 -1
- package/lib/components/dataCube/editor/DataCubeEditorVPivotsPanel.d.ts.map +1 -1
- package/lib/components/dataCube/editor/DataCubeEditorVPivotsPanel.js +3 -2
- package/lib/components/dataCube/editor/DataCubeEditorVPivotsPanel.js.map +1 -1
- package/lib/components/dataCube/grid/DataCubeGrid.d.ts +3 -0
- package/lib/components/dataCube/grid/DataCubeGrid.d.ts.map +1 -1
- package/lib/components/dataCube/grid/DataCubeGrid.js +190 -63
- package/lib/components/dataCube/grid/DataCubeGrid.js.map +1 -1
- package/lib/{stores/dataCube/DataCubeDefaultConfig.js → components/dataCube/grid/DataCubeGridShared.d.ts} +3 -2
- package/lib/components/dataCube/grid/DataCubeGridShared.d.ts.map +1 -0
- package/lib/components/dataCube/grid/DataCubeGridShared.js +25 -0
- package/lib/components/dataCube/grid/DataCubeGridShared.js.map +1 -0
- package/lib/components/dataCube/grid/menu/DataCubeGridMenu.d.ts +23 -0
- package/lib/components/dataCube/grid/menu/DataCubeGridMenu.d.ts.map +1 -0
- package/lib/components/dataCube/grid/menu/DataCubeGridMenu.js +413 -0
- package/lib/components/dataCube/grid/menu/DataCubeGridMenu.js.map +1 -0
- package/{src/stores/dataCube/DataCubeDefaultConfig.ts → lib/components/dataCube/grid/menu/DataCubeGridSortsMenu.d.ts} +4 -2
- package/lib/components/dataCube/grid/menu/DataCubeGridSortsMenu.d.ts.map +1 -0
- package/lib/components/dataCube/grid/menu/DataCubeGridSortsMenu.js +83 -0
- package/lib/components/dataCube/grid/menu/DataCubeGridSortsMenu.js.map +1 -0
- package/lib/index.css +2 -2
- package/lib/index.css.map +1 -1
- package/lib/package.json +14 -12
- package/lib/server/models/DataCubeQuery.d.ts +3 -5
- package/lib/server/models/DataCubeQuery.d.ts.map +1 -1
- package/lib/server/models/DataCubeQuery.js +0 -2
- package/lib/server/models/DataCubeQuery.js.map +1 -1
- package/lib/stores/{dataCube/REPLStore.d.ts → REPLStore.d.ts} +6 -4
- package/lib/stores/REPLStore.d.ts.map +1 -0
- package/lib/stores/{dataCube/REPLStore.js → REPLStore.js} +8 -5
- package/lib/stores/REPLStore.js.map +1 -0
- package/lib/stores/dataCube/{core/DataCubeEngine.d.ts → DataCubeInfrastructure.d.ts} +20 -4
- package/lib/stores/dataCube/DataCubeInfrastructure.d.ts.map +1 -0
- package/lib/stores/dataCube/{core/DataCubeEngine.js → DataCubeInfrastructure.js} +31 -3
- package/lib/stores/dataCube/DataCubeInfrastructure.js.map +1 -0
- package/lib/stores/dataCube/DataCubeState.d.ts +14 -5
- package/lib/stores/dataCube/DataCubeState.d.ts.map +1 -1
- package/lib/stores/dataCube/DataCubeState.js +37 -9
- package/lib/stores/dataCube/DataCubeState.js.map +1 -1
- package/lib/stores/dataCube/core/DataCubeConfiguration.d.ts +93 -0
- package/lib/stores/dataCube/core/DataCubeConfiguration.d.ts.map +1 -0
- package/lib/stores/dataCube/core/DataCubeConfiguration.js +167 -0
- package/lib/stores/dataCube/core/DataCubeConfiguration.js.map +1 -0
- package/lib/stores/dataCube/core/DataCubeConfigurationBuilder.d.ts +25 -0
- package/lib/stores/dataCube/core/DataCubeConfigurationBuilder.d.ts.map +1 -0
- package/lib/stores/dataCube/core/DataCubeConfigurationBuilder.js +45 -0
- package/lib/stores/dataCube/core/DataCubeConfigurationBuilder.js.map +1 -0
- package/lib/stores/dataCube/core/DataCubeCoreState.d.ts +1 -1
- package/lib/stores/dataCube/core/DataCubeCoreState.d.ts.map +1 -1
- package/lib/stores/dataCube/core/DataCubeCoreState.js +4 -4
- package/lib/stores/dataCube/core/DataCubeCoreState.js.map +1 -1
- package/lib/stores/dataCube/core/DataCubeQueryBuilder.js +12 -12
- package/lib/stores/dataCube/core/DataCubeQueryBuilder.js.map +1 -1
- package/lib/stores/dataCube/core/DataCubeQueryEngine.d.ts +99 -4
- package/lib/stores/dataCube/core/DataCubeQueryEngine.d.ts.map +1 -1
- package/lib/stores/dataCube/core/DataCubeQueryEngine.js +149 -3
- package/lib/stores/dataCube/core/DataCubeQueryEngine.js.map +1 -1
- package/lib/stores/dataCube/core/DataCubeQuerySnapshot.d.ts +19 -5
- package/lib/stores/dataCube/core/DataCubeQuerySnapshot.d.ts.map +1 -1
- package/lib/stores/dataCube/core/DataCubeQuerySnapshot.js +36 -6
- package/lib/stores/dataCube/core/DataCubeQuerySnapshot.js.map +1 -1
- package/lib/stores/dataCube/core/DataCubeQuerySnapshotBuilder.d.ts.map +1 -1
- package/lib/stores/dataCube/core/DataCubeQuerySnapshotBuilder.js +42 -23
- package/lib/stores/dataCube/core/DataCubeQuerySnapshotBuilder.js.map +1 -1
- package/lib/stores/dataCube/core/DataCubeQuerySnapshotManager.d.ts.map +1 -1
- package/lib/stores/dataCube/core/DataCubeQuerySnapshotManager.js +6 -2
- package/lib/stores/dataCube/core/DataCubeQuerySnapshotManager.js.map +1 -1
- package/lib/stores/dataCube/core/DataCubeQuerySnapshotSubscriber.d.ts +1 -3
- package/lib/stores/dataCube/core/DataCubeQuerySnapshotSubscriber.d.ts.map +1 -1
- package/lib/stores/dataCube/core/DataCubeQuerySnapshotSubscriber.js +2 -3
- package/lib/stores/dataCube/core/DataCubeQuerySnapshotSubscriber.js.map +1 -1
- package/lib/stores/dataCube/editor/DataCubeEditorCodePanelState.d.ts +3 -1
- package/lib/stores/dataCube/editor/DataCubeEditorCodePanelState.d.ts.map +1 -1
- package/lib/stores/dataCube/editor/DataCubeEditorCodePanelState.js +4 -2
- package/lib/stores/dataCube/editor/DataCubeEditorCodePanelState.js.map +1 -1
- package/lib/stores/dataCube/editor/DataCubeEditorColumnPropertiesPanelState.d.ts +36 -0
- package/lib/stores/dataCube/editor/DataCubeEditorColumnPropertiesPanelState.d.ts.map +1 -0
- package/lib/stores/dataCube/editor/DataCubeEditorColumnPropertiesPanelState.js +66 -0
- package/lib/stores/dataCube/editor/DataCubeEditorColumnPropertiesPanelState.js.map +1 -0
- package/lib/stores/dataCube/editor/DataCubeEditorColumnsSelectorState.d.ts +3 -0
- package/lib/stores/dataCube/editor/DataCubeEditorColumnsSelectorState.d.ts.map +1 -1
- package/lib/stores/dataCube/editor/DataCubeEditorColumnsSelectorState.js +10 -0
- package/lib/stores/dataCube/editor/DataCubeEditorColumnsSelectorState.js.map +1 -1
- package/lib/stores/dataCube/editor/DataCubeEditorGeneralPropertiesPanelState.d.ts +8 -3
- package/lib/stores/dataCube/editor/DataCubeEditorGeneralPropertiesPanelState.d.ts.map +1 -1
- package/lib/stores/dataCube/editor/DataCubeEditorGeneralPropertiesPanelState.js +20 -24
- package/lib/stores/dataCube/editor/DataCubeEditorGeneralPropertiesPanelState.js.map +1 -1
- package/lib/stores/dataCube/editor/DataCubeEditorHPivotPanelState.d.ts +27 -0
- package/lib/stores/dataCube/editor/DataCubeEditorHPivotPanelState.d.ts.map +1 -0
- package/lib/stores/dataCube/editor/DataCubeEditorHPivotPanelState.js +30 -0
- package/lib/stores/dataCube/editor/DataCubeEditorHPivotPanelState.js.map +1 -0
- package/lib/stores/dataCube/editor/DataCubeEditorPanelState.d.ts +1 -1
- package/lib/stores/dataCube/editor/DataCubeEditorPanelState.d.ts.map +1 -1
- package/lib/stores/dataCube/editor/DataCubeEditorSortsPanelState.d.ts +13 -6
- package/lib/stores/dataCube/editor/DataCubeEditorSortsPanelState.d.ts.map +1 -1
- package/lib/stores/dataCube/editor/DataCubeEditorSortsPanelState.js +64 -19
- package/lib/stores/dataCube/editor/DataCubeEditorSortsPanelState.js.map +1 -1
- package/lib/stores/dataCube/editor/DataCubeEditorState.d.ts +8 -4
- package/lib/stores/dataCube/editor/DataCubeEditorState.d.ts.map +1 -1
- package/lib/stores/dataCube/editor/DataCubeEditorState.js +26 -17
- package/lib/stores/dataCube/editor/DataCubeEditorState.js.map +1 -1
- package/lib/stores/dataCube/editor/DataCubeMutableConfiguration.d.ts +100 -0
- package/lib/stores/dataCube/editor/DataCubeMutableConfiguration.d.ts.map +1 -0
- package/lib/stores/dataCube/editor/DataCubeMutableConfiguration.js +450 -0
- package/lib/stores/dataCube/editor/DataCubeMutableConfiguration.js.map +1 -0
- package/lib/stores/dataCube/grid/DataCubeGridClientEngine.d.ts +39 -2
- package/lib/stores/dataCube/grid/DataCubeGridClientEngine.d.ts.map +1 -1
- package/lib/stores/dataCube/grid/DataCubeGridClientEngine.js +63 -3
- package/lib/stores/dataCube/grid/DataCubeGridClientEngine.js.map +1 -1
- package/lib/stores/dataCube/grid/DataCubeGridQueryBuilder.d.ts.map +1 -1
- package/lib/stores/dataCube/grid/DataCubeGridQueryBuilder.js +0 -9
- package/lib/stores/dataCube/grid/DataCubeGridQueryBuilder.js.map +1 -1
- package/lib/stores/dataCube/grid/DataCubeGridQuerySnapshotAnalyzer.d.ts +4 -1
- package/lib/stores/dataCube/grid/DataCubeGridQuerySnapshotAnalyzer.d.ts.map +1 -1
- package/lib/stores/dataCube/grid/DataCubeGridQuerySnapshotAnalyzer.js +330 -38
- package/lib/stores/dataCube/grid/DataCubeGridQuerySnapshotAnalyzer.js.map +1 -1
- package/lib/stores/dataCube/grid/DataCubeGridQuerySnapshotBuilder.d.ts.map +1 -1
- package/lib/stores/dataCube/grid/DataCubeGridQuerySnapshotBuilder.js +16 -28
- package/lib/stores/dataCube/grid/DataCubeGridQuerySnapshotBuilder.js.map +1 -1
- package/lib/stores/dataCube/grid/DataCubeGridState.d.ts +16 -2
- package/lib/stores/dataCube/grid/DataCubeGridState.d.ts.map +1 -1
- package/lib/stores/dataCube/grid/DataCubeGridState.js +51 -21
- package/lib/stores/dataCube/grid/DataCubeGridState.js.map +1 -1
- package/package.json +20 -18
- package/src/components/LegendREPLFrameworkProvider.tsx +1 -1
- package/src/components/REPLStoreProvider.tsx +1 -1
- package/src/components/REPLWindow.tsx +179 -0
- package/src/components/dataCube/DataCube.tsx +44 -23
- package/src/components/dataCube/editor/DataCubeEditor.tsx +80 -186
- package/src/components/dataCube/editor/DataCubeEditorCodePanel.tsx +4 -2
- package/src/components/dataCube/editor/DataCubeEditorColumnPropertiesPanel.tsx +1044 -13
- package/src/components/dataCube/editor/DataCubeEditorColumnsPanel.tsx +2 -2
- package/src/components/dataCube/editor/DataCubeEditorColumnsSelector.tsx +264 -51
- package/src/components/dataCube/editor/DataCubeEditorDeveloperPanel.tsx +43 -0
- package/src/components/dataCube/editor/DataCubeEditorExtendedColumnsPanel.tsx +4 -2
- package/src/components/dataCube/editor/DataCubeEditorFilterPanel.tsx +4 -2
- package/src/components/dataCube/editor/DataCubeEditorGeneralPropertiesPanel.tsx +743 -13
- package/src/components/dataCube/editor/DataCubeEditorHPivotsPanel.tsx +4 -2
- package/src/components/dataCube/editor/DataCubeEditorShared.tsx +484 -0
- package/src/components/dataCube/editor/DataCubeEditorSortsPanel.tsx +103 -4
- package/src/components/dataCube/editor/DataCubeEditorVPivotsPanel.tsx +4 -2
- package/src/components/dataCube/grid/DataCubeGrid.tsx +314 -120
- package/src/components/dataCube/grid/DataCubeGridShared.tsx +45 -0
- package/src/components/dataCube/grid/menu/DataCubeGridMenu.tsx +441 -0
- package/src/components/dataCube/grid/menu/DataCubeGridSortsMenu.tsx +119 -0
- package/src/server/models/DataCubeQuery.ts +2 -6
- package/src/stores/{dataCube/REPLStore.ts → REPLStore.ts} +9 -6
- package/src/stores/dataCube/{core/DataCubeEngine.ts → DataCubeInfrastructure.ts} +40 -3
- package/src/stores/dataCube/DataCubeState.ts +44 -10
- package/src/stores/dataCube/core/DataCubeConfiguration.ts +220 -0
- package/src/stores/dataCube/core/DataCubeConfigurationBuilder.ts +60 -0
- package/src/stores/dataCube/core/DataCubeCoreState.ts +7 -4
- package/src/stores/dataCube/core/DataCubeQueryBuilder.ts +18 -18
- package/src/stores/dataCube/core/DataCubeQueryEngine.ts +157 -4
- package/src/stores/dataCube/core/DataCubeQuerySnapshot.ts +43 -6
- package/src/stores/dataCube/core/DataCubeQuerySnapshotBuilder.ts +49 -29
- package/src/stores/dataCube/core/DataCubeQuerySnapshotManager.ts +9 -2
- package/src/stores/dataCube/core/DataCubeQuerySnapshotSubscriber.ts +6 -5
- package/src/stores/dataCube/editor/DataCubeEditorCodePanelState.ts +5 -2
- package/src/stores/dataCube/editor/DataCubeEditorColumnPropertiesPanelState.ts +96 -0
- package/src/stores/dataCube/editor/DataCubeEditorColumnsSelectorState.ts +12 -0
- package/src/stores/dataCube/editor/DataCubeEditorGeneralPropertiesPanelState.ts +31 -28
- package/src/stores/dataCube/editor/DataCubeEditorHPivotPanelState.ts +43 -0
- package/src/stores/dataCube/editor/DataCubeEditorPanelState.ts +1 -1
- package/src/stores/dataCube/editor/DataCubeEditorSortsPanelState.ts +92 -25
- package/src/stores/dataCube/editor/DataCubeEditorState.ts +32 -18
- package/src/stores/dataCube/editor/DataCubeMutableConfiguration.ts +641 -0
- package/src/stores/dataCube/grid/DataCubeGridClientEngine.ts +88 -3
- package/src/stores/dataCube/grid/DataCubeGridQueryBuilder.ts +0 -10
- package/src/stores/dataCube/grid/DataCubeGridQuerySnapshotAnalyzer.tsx +494 -45
- package/src/stores/dataCube/grid/DataCubeGridQuerySnapshotBuilder.ts +16 -36
- package/src/stores/dataCube/grid/DataCubeGridState.ts +73 -20
- package/tsconfig.json +13 -3
- package/lib/stores/dataCube/DataCubeDefaultConfig.d.ts.map +0 -1
- package/lib/stores/dataCube/DataCubeDefaultConfig.js.map +0 -1
- package/lib/stores/dataCube/REPLStore.d.ts.map +0 -1
- package/lib/stores/dataCube/REPLStore.js.map +0 -1
- package/lib/stores/dataCube/core/DataCubeEngine.d.ts.map +0 -1
- package/lib/stores/dataCube/core/DataCubeEngine.js.map +0 -1
|
@@ -20,11 +20,43 @@ import { APPLICATION_EVENT } from '@finos/legend-application';
|
|
|
20
20
|
import { buildQuerySnapshot } from './DataCubeGridQuerySnapshotBuilder.js';
|
|
21
21
|
import { generateRowGroupingDrilldownExecutableQueryPostProcessor } from './DataCubeGridQueryBuilder.js';
|
|
22
22
|
import { makeObservable, observable, runInAction } from 'mobx';
|
|
23
|
+
export var INTERNAL__GRID_CLIENT_UTILITY_CSS_CLASS_NAME;
|
|
24
|
+
(function (INTERNAL__GRID_CLIENT_UTILITY_CSS_CLASS_NAME) {
|
|
25
|
+
INTERNAL__GRID_CLIENT_UTILITY_CSS_CLASS_NAME["ROOT"] = "data-cube-grid.ag-theme-balham";
|
|
26
|
+
INTERNAL__GRID_CLIENT_UTILITY_CSS_CLASS_NAME["HIGHLIGHT_ROW"] = "data-cube-grid__utility--highlight-row";
|
|
27
|
+
INTERNAL__GRID_CLIENT_UTILITY_CSS_CLASS_NAME["SHOW_VERTICAL_GRID_LINES"] = "data-cube-grid__utility--show-vertical-grid-lines";
|
|
28
|
+
INTERNAL__GRID_CLIENT_UTILITY_CSS_CLASS_NAME["SHOW_HORIZONTAL_GRID_LINES"] = "data-cube-grid__utility--show-horizontal-grid-lines";
|
|
29
|
+
INTERNAL__GRID_CLIENT_UTILITY_CSS_CLASS_NAME["BLUR"] = "data-cube-grid__utility--blur";
|
|
30
|
+
INTERNAL__GRID_CLIENT_UTILITY_CSS_CLASS_NAME["FONT_FAMILY_PREFIX"] = "data-cube-grid__utility--font-family-";
|
|
31
|
+
INTERNAL__GRID_CLIENT_UTILITY_CSS_CLASS_NAME["FONT_SIZE_PREFIX"] = "data-cube-grid__utility--font-size-";
|
|
32
|
+
INTERNAL__GRID_CLIENT_UTILITY_CSS_CLASS_NAME["FONT_BOLD"] = "data-cube-grid__utility--font-style-bold";
|
|
33
|
+
INTERNAL__GRID_CLIENT_UTILITY_CSS_CLASS_NAME["FONT_ITALIC"] = "data-cube-grid__utility--font-style-italic";
|
|
34
|
+
INTERNAL__GRID_CLIENT_UTILITY_CSS_CLASS_NAME["FONT_UNDERLINE_PREFIX"] = "data-cube-grid__utility--font-style-underline-";
|
|
35
|
+
INTERNAL__GRID_CLIENT_UTILITY_CSS_CLASS_NAME["FONT_STRIKETHROUGH"] = "data-cube-grid__utility--font-style-strikethrough";
|
|
36
|
+
INTERNAL__GRID_CLIENT_UTILITY_CSS_CLASS_NAME["FONT_CASE_PREFIX"] = "data-cube-grid__utility--font-style-case-";
|
|
37
|
+
INTERNAL__GRID_CLIENT_UTILITY_CSS_CLASS_NAME["TEXT_ALIGN_PREFIX"] = "data-cube-grid__utility--text-align-";
|
|
38
|
+
INTERNAL__GRID_CLIENT_UTILITY_CSS_CLASS_NAME["TEXT_COLOR_PREFIX"] = "data-cube-grid__utility--text-color-";
|
|
39
|
+
INTERNAL__GRID_CLIENT_UTILITY_CSS_CLASS_NAME["BACKGROUND_COLOR_PREFIX"] = "data-cube-grid__utility--background-color-";
|
|
40
|
+
})(INTERNAL__GRID_CLIENT_UTILITY_CSS_CLASS_NAME || (INTERNAL__GRID_CLIENT_UTILITY_CSS_CLASS_NAME = {}));
|
|
41
|
+
export const generateFontFamilyUtilityClassName = (fontFamily) => `${INTERNAL__GRID_CLIENT_UTILITY_CSS_CLASS_NAME.FONT_FAMILY_PREFIX}${fontFamily.replaceAll(' ', '-')}`;
|
|
42
|
+
export const generateFontSizeUtilityClassName = (fontSize) => `${INTERNAL__GRID_CLIENT_UTILITY_CSS_CLASS_NAME.FONT_SIZE_PREFIX}${fontSize}`;
|
|
43
|
+
export const generateFontUnderlineUtilityClassName = (variant) => `${INTERNAL__GRID_CLIENT_UTILITY_CSS_CLASS_NAME.FONT_UNDERLINE_PREFIX}${variant ?? 'none'}`;
|
|
44
|
+
export const generateFontCaseUtilityClassName = (fontCase) => `${INTERNAL__GRID_CLIENT_UTILITY_CSS_CLASS_NAME.FONT_CASE_PREFIX}${fontCase ?? 'none'}`;
|
|
45
|
+
export const generateTextAlignUtilityClassName = (alignment) => `${INTERNAL__GRID_CLIENT_UTILITY_CSS_CLASS_NAME.TEXT_ALIGN_PREFIX}${alignment}`;
|
|
46
|
+
export const generateTextColorUtilityClassName = (color, key) => `${INTERNAL__GRID_CLIENT_UTILITY_CSS_CLASS_NAME.TEXT_COLOR_PREFIX}${key}-${color.substring(1)}`;
|
|
47
|
+
export const generateBackgroundColorUtilityClassName = (color, key) => `${INTERNAL__GRID_CLIENT_UTILITY_CSS_CLASS_NAME.BACKGROUND_COLOR_PREFIX}${key}-${color.substring(1)}`;
|
|
48
|
+
export const INTERNAL__GRID_CLIENT_COLUMN_MIN_WIDTH = 50;
|
|
23
49
|
export const INTERNAL__GRID_CLIENT_HEADER_HEIGHT = 24;
|
|
24
50
|
export const INTERNAL__GRID_CLIENT_ROW_HEIGHT = 20;
|
|
25
|
-
export const
|
|
51
|
+
export const INTERNAL__GRID_CLIENT_TOOLTIP_SHOW_DELAY = 1000;
|
|
52
|
+
export const INTERNAL__GRID_CLIENT_AUTO_RESIZE_PADDING = 10;
|
|
26
53
|
export const INTERNAL__GRID_CLIENT_TREE_COLUMN_ID = 'INTERNAL__tree';
|
|
27
54
|
export const INTERNAL__GRID_CLIENT_ROW_GROUPING_COUNT_AGG_COLUMN_ID = 'INTERNAL__count';
|
|
55
|
+
export var GridClientPinnedAlignement;
|
|
56
|
+
(function (GridClientPinnedAlignement) {
|
|
57
|
+
GridClientPinnedAlignement["LEFT"] = "left";
|
|
58
|
+
GridClientPinnedAlignement["RIGHT"] = "right";
|
|
59
|
+
})(GridClientPinnedAlignement || (GridClientPinnedAlignement = {}));
|
|
28
60
|
export var GridClientSortDirection;
|
|
29
61
|
(function (GridClientSortDirection) {
|
|
30
62
|
GridClientSortDirection["ASCENDING"] = "asc";
|
|
@@ -38,6 +70,28 @@ export var GridClientAggregateOperation;
|
|
|
38
70
|
GridClientAggregateOperation["MIN"] = "min";
|
|
39
71
|
GridClientAggregateOperation["AVERAGE"] = "avg";
|
|
40
72
|
})(GridClientAggregateOperation || (GridClientAggregateOperation = {}));
|
|
73
|
+
export function getDataForAllNodes(client) {
|
|
74
|
+
const rows = [];
|
|
75
|
+
client.forEachNode((node) => {
|
|
76
|
+
if (node.data) {
|
|
77
|
+
rows.push(node.data);
|
|
78
|
+
}
|
|
79
|
+
});
|
|
80
|
+
return rows;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* NOTE: this method does not work for server-side row model.
|
|
84
|
+
* It only works when client-side filter is being applied
|
|
85
|
+
*/
|
|
86
|
+
export function getDataForAllFilteredNodes(client) {
|
|
87
|
+
const rows = [];
|
|
88
|
+
client.forEachNodeAfterFilter((node) => {
|
|
89
|
+
if (node.data) {
|
|
90
|
+
rows.push(node.data);
|
|
91
|
+
}
|
|
92
|
+
});
|
|
93
|
+
return rows;
|
|
94
|
+
}
|
|
41
95
|
function TDStoRowData(tds) {
|
|
42
96
|
return tds.rows.map((_row, rowIdx) => {
|
|
43
97
|
const row = {};
|
|
@@ -61,6 +115,7 @@ export class DataCubeGridClientServerSideDataSource {
|
|
|
61
115
|
this.grid = grid;
|
|
62
116
|
}
|
|
63
117
|
async fetchRows(params) {
|
|
118
|
+
const task = this.grid.dataCube.newTask('Fetching data');
|
|
64
119
|
// ------------------------------ GRID OPTIONS ------------------------------
|
|
65
120
|
// Here, we make adjustments to the grid display in response to the new
|
|
66
121
|
// request, in case the grid action has not impacted the layout in an
|
|
@@ -74,8 +129,10 @@ export class DataCubeGridClientServerSideDataSource {
|
|
|
74
129
|
}
|
|
75
130
|
// ------------------------------ SNAPSHOT ------------------------------
|
|
76
131
|
const currentSnapshot = guaranteeNonNullable(this.grid.getLatestSnapshot());
|
|
132
|
+
// TODO: when we support pivoting, we should make a quick call to check for columns
|
|
133
|
+
// created by pivots and specify them as cast columns when pivot is activated
|
|
77
134
|
const syncedSnapshot = buildQuerySnapshot(params.request, currentSnapshot);
|
|
78
|
-
if (syncedSnapshot.
|
|
135
|
+
if (syncedSnapshot.hashCode !== currentSnapshot.hashCode) {
|
|
79
136
|
this.grid.publishSnapshot(syncedSnapshot);
|
|
80
137
|
}
|
|
81
138
|
// ------------------------------ DATA ------------------------------
|
|
@@ -93,7 +150,7 @@ export class DataCubeGridClientServerSideDataSource {
|
|
|
93
150
|
});
|
|
94
151
|
const lambda = new V1_Lambda();
|
|
95
152
|
lambda.body.push(executableQuery);
|
|
96
|
-
const result = await this.grid.dataCube.engine.executeQuery(lambda);
|
|
153
|
+
const result = await this.grid.dataCube.infrastructure.engine.executeQuery(lambda);
|
|
97
154
|
const rowData = TDStoRowData(result.result);
|
|
98
155
|
if (this.grid.isPaginationEnabled) {
|
|
99
156
|
params.success({ rowData });
|
|
@@ -124,6 +181,9 @@ export class DataCubeGridClientServerSideDataSource {
|
|
|
124
181
|
this.grid.dataCube.application.notificationService.notifyError(error);
|
|
125
182
|
params.fail();
|
|
126
183
|
}
|
|
184
|
+
finally {
|
|
185
|
+
this.grid.dataCube.endTask(task);
|
|
186
|
+
}
|
|
127
187
|
}
|
|
128
188
|
getRows(params) {
|
|
129
189
|
this.fetchRows(params).catch((error) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataCubeGridClientEngine.js","sourceRoot":"","sources":["../../../../src/stores/dataCube/grid/DataCubeGridClientEngine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;
|
|
1
|
+
{"version":3,"file":"DataCubeGridClientEngine.js","sourceRoot":"","sources":["../../../../src/stores/dataCube/grid/DataCubeGridClientEngine.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataCubeGridQueryBuilder.d.ts","sourceRoot":"","sources":["../../../../src/stores/dataCube/grid/DataCubeGridQueryBuilder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EACL,KAAK,kBAAkB,EAExB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAGL,KAAK,qBAAqB,EAC3B,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAEL,KAAK,wBAAwB,EAC9B,MAAM,gCAAgC,CAAC;AAmCxC,wBAAgB,wDAAwD,CACtE,eAAe,EAAE,MAAM,EAAE,cAGb,qBAAqB,YACrB,kBAAkB,EAAE,WACrB,wBAAwB,
|
|
1
|
+
{"version":3,"file":"DataCubeGridQueryBuilder.d.ts","sourceRoot":"","sources":["../../../../src/stores/dataCube/grid/DataCubeGridQueryBuilder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EACL,KAAK,kBAAkB,EAExB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAGL,KAAK,qBAAqB,EAC3B,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAEL,KAAK,wBAAwB,EAC9B,MAAM,gCAAgC,CAAC;AAmCxC,wBAAgB,wDAAwD,CACtE,eAAe,EAAE,MAAM,EAAE,cAGb,qBAAqB,YACrB,kBAAkB,EAAE,WACrB,wBAAwB,UA0EpC"}
|
|
@@ -88,15 +88,6 @@ export function generateRowGroupingDrilldownExecutableQueryPostProcessor(drilldo
|
|
|
88
88
|
}
|
|
89
89
|
// --------------------------------- PIVOT ---------------------------------
|
|
90
90
|
// TODO: @akphi - implement this and CAST
|
|
91
|
-
// --------------------------------- SELECT ---------------------------------
|
|
92
|
-
if (funcMap.select && drilldownValues.length < groupBy.columns.length) {
|
|
93
|
-
funcMap.select.parameters = [
|
|
94
|
-
_cols([
|
|
95
|
-
...data.selectColumns.map((col) => _colSpec(col.name)),
|
|
96
|
-
_colSpec(INTERNAL__GRID_CLIENT_ROW_GROUPING_COUNT_AGG_COLUMN_ID),
|
|
97
|
-
]),
|
|
98
|
-
];
|
|
99
|
-
}
|
|
100
91
|
}
|
|
101
92
|
};
|
|
102
93
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataCubeGridQueryBuilder.js","sourceRoot":"","sources":["../../../../src/stores/dataCube/grid/DataCubeGridQueryBuilder.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"DataCubeGridQueryBuilder.js","sourceRoot":"","sources":["../../../../src/stores/dataCube/grid/DataCubeGridQueryBuilder.ts"],"names":[],"mappings":"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"}
|
|
@@ -21,5 +21,8 @@
|
|
|
21
21
|
***************************************************************************************/
|
|
22
22
|
import { type DataCubeQuerySnapshot } from '../core/DataCubeQuerySnapshot.js';
|
|
23
23
|
import type { GridOptions } from '@ag-grid-community/core';
|
|
24
|
-
|
|
24
|
+
import type { DataCubeConfiguration } from '../core/DataCubeConfiguration.js';
|
|
25
|
+
import type { DataCubeState } from '../DataCubeState.js';
|
|
26
|
+
export declare function generateBaseGridOptions(dataCube: DataCubeState): GridOptions;
|
|
27
|
+
export declare function generateGridOptionsFromSnapshot(snapshot: DataCubeQuerySnapshot, configuration: DataCubeConfiguration, dataCube: DataCubeState): GridOptions;
|
|
25
28
|
//# sourceMappingURL=DataCubeGridQuerySnapshotAnalyzer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataCubeGridQuerySnapshotAnalyzer.d.ts","sourceRoot":"","sources":["../../../../src/stores/dataCube/grid/DataCubeGridQuerySnapshotAnalyzer.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH;;;;;yFAKyF;AAEzF,OAAO,EAIL,KAAK,qBAAqB,EAE3B,MAAM,kCAAkC,CAAC;AAC1C,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"DataCubeGridQuerySnapshotAnalyzer.d.ts","sourceRoot":"","sources":["../../../../src/stores/dataCube/grid/DataCubeGridQuerySnapshotAnalyzer.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH;;;;;yFAKyF;AAEzF,OAAO,EAIL,KAAK,qBAAqB,EAE3B,MAAM,kCAAkC,CAAC;AAC1C,OAAO,KAAK,EAGV,WAAW,EAEZ,MAAM,yBAAyB,CAAC;AA8BjC,OAAO,KAAK,EAEV,qBAAqB,EACtB,MAAM,kCAAkC,CAAC;AAW1C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AA4WzD,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,aAAa,GAAG,WAAW,CAmF5E;AAED,wBAAgB,+BAA+B,CAC7C,QAAQ,EAAE,qBAAqB,EAC/B,aAAa,EAAE,qBAAqB,EACpC,QAAQ,EAAE,aAAa,GACtB,WAAW,CA2Gb"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
1
2
|
/**
|
|
2
3
|
* Copyright (c) 2020-present, Goldman Sachs
|
|
3
4
|
*
|
|
@@ -19,11 +20,31 @@
|
|
|
19
20
|
* These are utilities used to build the configuration for the grid client,
|
|
20
21
|
* AG Grid, from the query snapshot.
|
|
21
22
|
***************************************************************************************/
|
|
22
|
-
import { DataCubeQuerySnapshotAggregateFunction,
|
|
23
|
-
import { INTERNAL__GRID_CLIENT_TREE_COLUMN_ID, GridClientAggregateOperation, GridClientSortDirection, } from './DataCubeGridClientEngine.js';
|
|
23
|
+
import { DataCubeQuerySnapshotAggregateFunction, DataCubeQuerySnapshotSortOperation, _findCol, } from '../core/DataCubeQuerySnapshot.js';
|
|
24
|
+
import { INTERNAL__GRID_CLIENT_TREE_COLUMN_ID, GridClientAggregateOperation, GridClientSortDirection, INTERNAL__GRID_CLIENT_COLUMN_MIN_WIDTH, INTERNAL__GRID_CLIENT_UTILITY_CSS_CLASS_NAME, generateFontFamilyUtilityClassName, generateFontSizeUtilityClassName, generateFontUnderlineUtilityClassName, generateTextAlignUtilityClassName, generateTextColorUtilityClassName, generateBackgroundColorUtilityClassName, generateFontCaseUtilityClassName, GridClientPinnedAlignement, INTERNAL__GRID_CLIENT_ROW_HEIGHT, INTERNAL__GRID_CLIENT_AUTO_RESIZE_PADDING, INTERNAL__GRID_CLIENT_HEADER_HEIGHT, INTERNAL__GRID_CLIENT_TOOLTIP_SHOW_DELAY, } from './DataCubeGridClientEngine.js';
|
|
24
25
|
import { PRIMITIVE_TYPE } from '@finos/legend-graph';
|
|
25
|
-
import { IllegalStateError } from '@finos/legend-shared';
|
|
26
|
+
import { getQueryParameters, getQueryParameterValue, guaranteeNonNullable, IllegalStateError, isNonNullable, isNumber, isValidUrl, } from '@finos/legend-shared';
|
|
27
|
+
import { DataCubeColumnDataType, DataCubeColumnPinPlacement, DataCubeNumberScale, DEFAULT_ROW_BUFFER, DEFAULT_URL_LABEL_QUERY_PARAM, getDataType, } from '../core/DataCubeQueryEngine.js';
|
|
28
|
+
import { DataCubeIcon } from '@finos/legend-art';
|
|
29
|
+
import { buildGridMenu } from '../../../components/dataCube/grid/menu/DataCubeGridMenu.js';
|
|
26
30
|
// --------------------------------- UTILITIES ---------------------------------
|
|
31
|
+
// See https://www.ag-grid.com/javascript-data-grid/cell-data-types/
|
|
32
|
+
function _cellDataType(column) {
|
|
33
|
+
switch (column.type) {
|
|
34
|
+
case PRIMITIVE_TYPE.NUMBER:
|
|
35
|
+
case PRIMITIVE_TYPE.DECIMAL:
|
|
36
|
+
case PRIMITIVE_TYPE.INTEGER:
|
|
37
|
+
case PRIMITIVE_TYPE.FLOAT:
|
|
38
|
+
return 'number';
|
|
39
|
+
case PRIMITIVE_TYPE.DATE:
|
|
40
|
+
case PRIMITIVE_TYPE.DATETIME:
|
|
41
|
+
case PRIMITIVE_TYPE.STRICTDATE:
|
|
42
|
+
return 'dateString';
|
|
43
|
+
case PRIMITIVE_TYPE.STRING:
|
|
44
|
+
default:
|
|
45
|
+
return 'text';
|
|
46
|
+
}
|
|
47
|
+
}
|
|
27
48
|
function _allowedAggFuncs(column) {
|
|
28
49
|
switch (column.type) {
|
|
29
50
|
case PRIMITIVE_TYPE.STRING:
|
|
@@ -63,51 +84,311 @@ function _aggFunc(func) {
|
|
|
63
84
|
throw new IllegalStateError(`Unsupported aggregate function '${func}'`);
|
|
64
85
|
}
|
|
65
86
|
}
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
87
|
+
function scaleNumber(value, type) {
|
|
88
|
+
switch (type) {
|
|
89
|
+
case DataCubeNumberScale.PERCENT:
|
|
90
|
+
return { value: value * 1e2, unit: '%' };
|
|
91
|
+
case DataCubeNumberScale.BASIS_POINT:
|
|
92
|
+
return { value: value * 1e4, unit: 'bp' };
|
|
93
|
+
case DataCubeNumberScale.THOUSANDS:
|
|
94
|
+
return { value: value / 1e3, unit: 'k' };
|
|
95
|
+
case DataCubeNumberScale.MILLIONS:
|
|
96
|
+
return { value: value / 1e6, unit: 'm' };
|
|
97
|
+
case DataCubeNumberScale.BILLIONS:
|
|
98
|
+
return { value: value / 1e9, unit: 'b' };
|
|
99
|
+
case DataCubeNumberScale.TRILLIONS:
|
|
100
|
+
return { value: value / 1e12, unit: 't' };
|
|
101
|
+
case DataCubeNumberScale.AUTO:
|
|
102
|
+
return scaleNumber(value, value >= 1e12
|
|
103
|
+
? DataCubeNumberScale.TRILLIONS
|
|
104
|
+
: value >= 1e9
|
|
105
|
+
? DataCubeNumberScale.BILLIONS
|
|
106
|
+
: value >= 1e6
|
|
107
|
+
? DataCubeNumberScale.MILLIONS
|
|
108
|
+
: value >= 1e3
|
|
109
|
+
? DataCubeNumberScale.THOUSANDS
|
|
110
|
+
: undefined);
|
|
111
|
+
default:
|
|
112
|
+
return { value, unit: undefined };
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
function DataCubeGridLoadingCellRenderer(props) {
|
|
116
|
+
if (props.node.failedLoad) {
|
|
117
|
+
return _jsx("span", { className: "inline-flex items-center", children: "#ERR" });
|
|
118
|
+
}
|
|
119
|
+
return (_jsxs("span", { className: "inline-flex items-center", children: [_jsx(DataCubeIcon.Loader, { className: "mr-1 animate-spin stroke-2" }), "Loading"] }));
|
|
120
|
+
}
|
|
121
|
+
function getCellRenderer(columnData) {
|
|
122
|
+
const { column, configuration } = columnData;
|
|
123
|
+
const dataType = getDataType(column.type);
|
|
124
|
+
if (dataType === DataCubeColumnDataType.TEXT && configuration.displayAsLink) {
|
|
125
|
+
return function LinkRenderer(params) {
|
|
126
|
+
const isUrl = isValidUrl(params.value);
|
|
127
|
+
if (!isUrl) {
|
|
128
|
+
return params.value;
|
|
129
|
+
}
|
|
130
|
+
const url = params.value;
|
|
131
|
+
const label = getQueryParameterValue(configuration.linkLabelParameter ?? DEFAULT_URL_LABEL_QUERY_PARAM, getQueryParameters(url, true));
|
|
132
|
+
return (_jsx("a", { href: url, target: "_blank", rel: "noreferrer", className: "text-blue-600 underline", children: label ?? url }));
|
|
74
133
|
};
|
|
75
134
|
}
|
|
135
|
+
return null;
|
|
136
|
+
}
|
|
137
|
+
function _displaySpec(columnData) {
|
|
138
|
+
const { column, configuration, gridConfiguration } = columnData;
|
|
139
|
+
const dataType = getDataType(column.type);
|
|
140
|
+
const fontFamily = configuration.fontFamily ?? gridConfiguration.fontFamily;
|
|
141
|
+
const fontSize = configuration.fontSize ?? gridConfiguration.fontSize;
|
|
142
|
+
const fontBold = configuration.fontBold ?? gridConfiguration.fontBold;
|
|
143
|
+
const fontItalic = configuration.fontItalic ?? gridConfiguration.fontItalic;
|
|
144
|
+
const fontStrikethrough = configuration.fontStrikethrough ?? gridConfiguration.fontStrikethrough;
|
|
145
|
+
const fontUnderline = configuration.fontUnderline ?? gridConfiguration.fontUnderline;
|
|
146
|
+
const fontCase = configuration.fontCase ?? gridConfiguration.fontCase;
|
|
147
|
+
const textAlign = configuration.textAlign ?? gridConfiguration.textAlign;
|
|
148
|
+
const normalForegroundColor = configuration.normalForegroundColor ??
|
|
149
|
+
gridConfiguration.normalForegroundColor;
|
|
150
|
+
const normalBackgroundColor = configuration.normalBackgroundColor ??
|
|
151
|
+
gridConfiguration.normalBackgroundColor;
|
|
152
|
+
const negativeForegroundColor = configuration.negativeForegroundColor ??
|
|
153
|
+
gridConfiguration.negativeForegroundColor;
|
|
154
|
+
const negativeBackgroundColor = configuration.negativeBackgroundColor ??
|
|
155
|
+
gridConfiguration.negativeBackgroundColor;
|
|
156
|
+
const zeroForegroundColor = configuration.zeroForegroundColor ?? gridConfiguration.zeroForegroundColor;
|
|
157
|
+
const zeroBackgroundColor = configuration.zeroBackgroundColor ?? gridConfiguration.zeroBackgroundColor;
|
|
158
|
+
const errorForegroundColor = configuration.errorForegroundColor ??
|
|
159
|
+
gridConfiguration.errorForegroundColor;
|
|
160
|
+
const errorBackgroundColor = configuration.errorBackgroundColor ??
|
|
161
|
+
gridConfiguration.errorBackgroundColor;
|
|
162
|
+
const cellRenderer = getCellRenderer(columnData);
|
|
163
|
+
return {
|
|
164
|
+
// setting the cell data type might helps guide the grid to render the cell properly
|
|
165
|
+
// and optimize the grid performance slightly by avoiding unnecessary type inference
|
|
166
|
+
cellDataType: _cellDataType(column),
|
|
167
|
+
valueFormatter: dataType === DataCubeColumnDataType.NUMBER
|
|
168
|
+
? (params) => {
|
|
169
|
+
const value = params.value;
|
|
170
|
+
if (value === null || value === undefined) {
|
|
171
|
+
return null;
|
|
172
|
+
}
|
|
173
|
+
const showNegativeNumberInParens = configuration.negativeNumberInParens && value < 0;
|
|
174
|
+
// 1. apply the number scale
|
|
175
|
+
const scaledNumber = scaleNumber(value, configuration.numberScale);
|
|
176
|
+
// 2. apply the number formatter
|
|
177
|
+
const formattedValue = (showNegativeNumberInParens
|
|
178
|
+
? Math.abs(scaledNumber.value)
|
|
179
|
+
: scaledNumber.value).toLocaleString(undefined, {
|
|
180
|
+
useGrouping: configuration.displayCommas,
|
|
181
|
+
...(configuration.decimals !== undefined
|
|
182
|
+
? {
|
|
183
|
+
minimumFractionDigits: configuration.decimals,
|
|
184
|
+
maximumFractionDigits: configuration.decimals,
|
|
185
|
+
}
|
|
186
|
+
: {}),
|
|
187
|
+
});
|
|
188
|
+
// 3. add the parentheses (and then the unit)
|
|
189
|
+
return ((showNegativeNumberInParens
|
|
190
|
+
? `(${formattedValue})`
|
|
191
|
+
: formattedValue) +
|
|
192
|
+
(scaledNumber.unit ? ` ${scaledNumber.unit}` : ''));
|
|
193
|
+
}
|
|
194
|
+
: (params) => params.value,
|
|
195
|
+
loadingCellRenderer: DataCubeGridLoadingCellRenderer,
|
|
196
|
+
cellClassRules: {
|
|
197
|
+
[generateFontFamilyUtilityClassName(fontFamily)]: () => true,
|
|
198
|
+
[generateFontSizeUtilityClassName(fontSize)]: () => true,
|
|
199
|
+
[INTERNAL__GRID_CLIENT_UTILITY_CSS_CLASS_NAME.FONT_BOLD]: () => fontBold,
|
|
200
|
+
[INTERNAL__GRID_CLIENT_UTILITY_CSS_CLASS_NAME.FONT_ITALIC]: () => fontItalic,
|
|
201
|
+
[INTERNAL__GRID_CLIENT_UTILITY_CSS_CLASS_NAME.FONT_STRIKETHROUGH]: () => fontStrikethrough,
|
|
202
|
+
[generateFontUnderlineUtilityClassName(fontUnderline)]: () => Boolean(fontUnderline),
|
|
203
|
+
[generateFontCaseUtilityClassName(fontCase)]: (params) => dataType === DataCubeColumnDataType.TEXT && Boolean(fontCase),
|
|
204
|
+
[generateTextAlignUtilityClassName(textAlign)]: () => true,
|
|
205
|
+
[generateTextColorUtilityClassName(normalForegroundColor, 'normal')]: () => true,
|
|
206
|
+
[generateBackgroundColorUtilityClassName(normalBackgroundColor, 'normal')]: () => true,
|
|
207
|
+
[generateTextColorUtilityClassName(zeroForegroundColor, 'zero')]: (params) => dataType === DataCubeColumnDataType.NUMBER &&
|
|
208
|
+
isNumber(params.value) &&
|
|
209
|
+
params.value === 0,
|
|
210
|
+
[generateBackgroundColorUtilityClassName(zeroBackgroundColor, 'zero')]: (params) => dataType === DataCubeColumnDataType.NUMBER &&
|
|
211
|
+
isNumber(params.value) &&
|
|
212
|
+
params.value === 0,
|
|
213
|
+
[generateTextColorUtilityClassName(negativeForegroundColor, 'negative')]: (params) => dataType === DataCubeColumnDataType.NUMBER &&
|
|
214
|
+
isNumber(params.value) &&
|
|
215
|
+
params.value < 0,
|
|
216
|
+
[generateBackgroundColorUtilityClassName(negativeBackgroundColor, 'negative')]: (params) => dataType === DataCubeColumnDataType.NUMBER &&
|
|
217
|
+
isNumber(params.value) &&
|
|
218
|
+
params.value < 0,
|
|
219
|
+
[generateTextColorUtilityClassName(errorForegroundColor, 'error')]: (params) => params.node.failedLoad,
|
|
220
|
+
[generateBackgroundColorUtilityClassName(errorBackgroundColor, 'error')]: (params) => params.node.failedLoad,
|
|
221
|
+
[INTERNAL__GRID_CLIENT_UTILITY_CSS_CLASS_NAME.BLUR]: () => configuration.blur,
|
|
222
|
+
},
|
|
223
|
+
cellRenderer: cellRenderer,
|
|
224
|
+
pinned: configuration.pinned !== undefined
|
|
225
|
+
? configuration.pinned === DataCubeColumnPinPlacement.RIGHT
|
|
226
|
+
? GridClientPinnedAlignement.RIGHT
|
|
227
|
+
: GridClientPinnedAlignement.LEFT
|
|
228
|
+
: null,
|
|
229
|
+
tooltipValueGetter: (params) => isNonNullable(params.value)
|
|
230
|
+
? `Value = ${params.value === '' ? "''" : params.value === true ? 'TRUE' : params.value === false ? 'FALSE' : params.value}`
|
|
231
|
+
: `Missing Value`,
|
|
232
|
+
};
|
|
233
|
+
}
|
|
234
|
+
function _sizeSpec(columnData) {
|
|
235
|
+
const { configuration } = columnData;
|
|
76
236
|
return {
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
237
|
+
// NOTE: there is a problem with ag-grid when scrolling horizontally, the header row
|
|
238
|
+
// lags behind the data, it seems to be caused by synchronizing scroll not working properly
|
|
239
|
+
// There is currently, no way around this
|
|
240
|
+
// See https://github.com/ag-grid/ag-grid/issues/5233
|
|
241
|
+
// See https://github.com/ag-grid/ag-grid/issues/7620
|
|
242
|
+
// See https://github.com/ag-grid/ag-grid/issues/6292
|
|
243
|
+
// See https://issues.chromium.org/issues/40890343#comment11
|
|
244
|
+
//
|
|
245
|
+
// TODO: if we support column resize to fit content, should we disable this behavior?
|
|
246
|
+
resizable: configuration.fixedWidth === undefined,
|
|
247
|
+
// suppressAutoSize: columnConfiguration.fixedWidth !== undefined,
|
|
248
|
+
width: configuration.fixedWidth,
|
|
249
|
+
minWidth: Math.max(configuration.minWidth ?? INTERNAL__GRID_CLIENT_COLUMN_MIN_WIDTH, INTERNAL__GRID_CLIENT_COLUMN_MIN_WIDTH),
|
|
250
|
+
maxWidth: configuration.maxWidth,
|
|
81
251
|
};
|
|
82
252
|
}
|
|
83
|
-
function
|
|
253
|
+
function _sortSpec(columnData) {
|
|
254
|
+
const { snapshot, column } = columnData;
|
|
255
|
+
const sortColumns = snapshot.data.sortColumns;
|
|
256
|
+
const sortCol = _findCol(sortColumns, column.name);
|
|
257
|
+
return {
|
|
258
|
+
sortable: true, // if this is pivot column, no sorting is allowed
|
|
259
|
+
sort: sortCol
|
|
260
|
+
? sortCol.operation === DataCubeQuerySnapshotSortOperation.ASCENDING
|
|
261
|
+
? GridClientSortDirection.ASCENDING
|
|
262
|
+
: GridClientSortDirection.DESCENDING
|
|
263
|
+
: null,
|
|
264
|
+
sortIndex: sortCol ? sortColumns.indexOf(sortCol) : null,
|
|
265
|
+
};
|
|
266
|
+
}
|
|
267
|
+
function _rowGroupSpec(columnData) {
|
|
268
|
+
const { snapshot, column } = columnData;
|
|
84
269
|
const data = snapshot.data;
|
|
85
270
|
const columns = snapshot.stageCols('aggregation');
|
|
86
|
-
const
|
|
87
|
-
const groupByCol = _findCol(data.groupBy?.columns,
|
|
88
|
-
const aggCol = _findCol(data.groupBy?.aggColumns,
|
|
271
|
+
const rowGroupColumn = _findCol(columns, column.name);
|
|
272
|
+
const groupByCol = _findCol(data.groupBy?.columns, column.name);
|
|
273
|
+
const aggCol = _findCol(data.groupBy?.aggColumns, column.name);
|
|
89
274
|
return {
|
|
275
|
+
enableRowGroup: true,
|
|
276
|
+
enableValue: true,
|
|
90
277
|
rowGroup: Boolean(groupByCol),
|
|
91
278
|
// TODO: @akphi - add this from configuration object
|
|
92
279
|
aggFunc: aggCol
|
|
93
280
|
? _aggFunc(aggCol.function)
|
|
94
|
-
:
|
|
281
|
+
: rowGroupColumn
|
|
95
282
|
? [
|
|
96
283
|
PRIMITIVE_TYPE.NUMBER,
|
|
97
284
|
PRIMITIVE_TYPE.DECIMAL,
|
|
98
285
|
PRIMITIVE_TYPE.FLOAT,
|
|
99
286
|
PRIMITIVE_TYPE.INTEGER,
|
|
100
|
-
].includes(
|
|
287
|
+
].includes(rowGroupColumn.type)
|
|
101
288
|
? GridClientAggregateOperation.SUM
|
|
102
289
|
: null
|
|
103
290
|
: null,
|
|
104
291
|
// TODO: @akphi - add this from configuration object
|
|
105
|
-
allowedAggFuncs:
|
|
292
|
+
allowedAggFuncs: rowGroupColumn ? _allowedAggFuncs(rowGroupColumn) : [],
|
|
293
|
+
};
|
|
294
|
+
}
|
|
295
|
+
// --------------------------------- MAIN ---------------------------------
|
|
296
|
+
export function generateBaseGridOptions(dataCube) {
|
|
297
|
+
const grid = dataCube.grid;
|
|
298
|
+
return {
|
|
299
|
+
// -------------------------------------- README --------------------------------------
|
|
300
|
+
// NOTE: we observe performance degradataion when configuring the grid via React component
|
|
301
|
+
// props when the options is non-static, i.e. changed when the query configuration changes.
|
|
302
|
+
// As such, we must ONLY ADD STATIC CONFIGURATION HERE, and dynamic configuration should be
|
|
303
|
+
// programatically updated when the query is modified.
|
|
304
|
+
//
|
|
305
|
+
//
|
|
306
|
+
// -------------------------------------- ROW GROUPING --------------------------------------
|
|
307
|
+
rowGroupPanelShow: 'always',
|
|
308
|
+
groupDisplayType: 'custom', // keeps the column set stable even when row grouping is used
|
|
309
|
+
suppressRowGroupHidesColumns: true, // keeps the column set stable even when row grouping is used
|
|
310
|
+
suppressAggFuncInHeader: true, // keeps the columns stable when aggregation is used
|
|
311
|
+
// -------------------------------------- PIVOT --------------------------------------
|
|
312
|
+
// pivotPanelShow: "always"
|
|
313
|
+
// pivotMode:true,
|
|
314
|
+
// -------------------------------------- SORT --------------------------------------
|
|
315
|
+
// Force multi-sorting since this is what the query supports anyway
|
|
316
|
+
alwaysMultiSort: true,
|
|
317
|
+
// -------------------------------------- DISPLAY --------------------------------------
|
|
318
|
+
rowHeight: INTERNAL__GRID_CLIENT_ROW_HEIGHT,
|
|
319
|
+
headerHeight: INTERNAL__GRID_CLIENT_HEADER_HEIGHT,
|
|
320
|
+
suppressBrowserResizeObserver: true,
|
|
321
|
+
noRowsOverlayComponent: () => (_jsxs("div", { className: "flex items-center border-[1.5px] border-neutral-300 p-2 font-medium text-neutral-400", children: [_jsx("div", { children: _jsx(DataCubeIcon.WarningCircle, { className: "mr-1 stroke-2 text-lg" }) }), "0 rows"] })),
|
|
322
|
+
loadingOverlayComponent: () => (_jsxs("div", { className: "flex items-center border-[1.5px] border-neutral-300 p-2 font-medium text-neutral-400", children: [_jsx("div", { children: _jsx(DataCubeIcon.Loader, { className: "mr-1 animate-spin stroke-2 text-lg" }) }), "Loading..."] })),
|
|
323
|
+
// Show cursor position when scrolling
|
|
324
|
+
onBodyScroll: (event) => {
|
|
325
|
+
const rowCount = event.api.getDisplayedRowCount();
|
|
326
|
+
const range = event.api.getVerticalPixelRange();
|
|
327
|
+
const start = Math.max(1, Math.ceil(range.top / INTERNAL__GRID_CLIENT_ROW_HEIGHT) + 1);
|
|
328
|
+
const end = Math.min(rowCount, Math.floor(range.bottom / INTERNAL__GRID_CLIENT_ROW_HEIGHT));
|
|
329
|
+
grid.setScrollHintText(`${start}-${end}/${rowCount}`);
|
|
330
|
+
event.api.hidePopupMenu(); // hide context-menu while scrolling
|
|
331
|
+
},
|
|
332
|
+
onBodyScrollEnd: () => grid.setScrollHintText(''),
|
|
333
|
+
// -------------------------------------- CONTEXT MENU --------------------------------------
|
|
334
|
+
preventDefaultOnContextMenu: true, // prevent showing the browser's context menu
|
|
335
|
+
columnMenu: 'new', // ensure context menu works on header
|
|
336
|
+
getContextMenuItems: buildGridMenu,
|
|
337
|
+
getMainMenuItems: buildGridMenu,
|
|
338
|
+
// -------------------------------------- COLUMN SIZING --------------------------------------
|
|
339
|
+
autoSizePadding: INTERNAL__GRID_CLIENT_AUTO_RESIZE_PADDING,
|
|
340
|
+
autoSizeStrategy: {
|
|
341
|
+
// resize to fit content initially
|
|
342
|
+
type: 'fitCellContents',
|
|
343
|
+
},
|
|
344
|
+
// -------------------------------------- TOOLTIP --------------------------------------
|
|
345
|
+
tooltipShowDelay: INTERNAL__GRID_CLIENT_TOOLTIP_SHOW_DELAY,
|
|
346
|
+
tooltipInteraction: true,
|
|
347
|
+
// -------------------------------------- COLUMN MOVING --------------------------------------
|
|
348
|
+
suppressDragLeaveHidesColumns: true,
|
|
349
|
+
// -------------------------------------- SERVER SIDE ROW MODEL --------------------------------------
|
|
350
|
+
suppressScrollOnNewData: true,
|
|
351
|
+
suppressServerSideFullWidthLoadingRow: true, // make sure each column has its own loading indicator instead of the whole row
|
|
352
|
+
// -------------------------------------- SELECTION --------------------------------------
|
|
353
|
+
enableRangeSelection: true,
|
|
354
|
+
// -------------------------------------- PERFORMANCE --------------------------------------
|
|
355
|
+
animateRows: false, // improve performance
|
|
356
|
+
suppressColumnMoveAnimation: true, // improve performance
|
|
106
357
|
};
|
|
107
358
|
}
|
|
108
|
-
export function generateGridOptionsFromSnapshot(snapshot) {
|
|
359
|
+
export function generateGridOptionsFromSnapshot(snapshot, configuration, dataCube) {
|
|
109
360
|
const data = snapshot.data;
|
|
110
361
|
const gridOptions = {
|
|
362
|
+
/**
|
|
363
|
+
* NOTE: there is a strange issue where if we put dynamic configuration directly
|
|
364
|
+
* such as rowClassRules which depends on some changing state (e.g. alternateRows)
|
|
365
|
+
* as the grid component's props, the grid performance will be heavily compromised
|
|
366
|
+
* while if we programatically set it like this, it does not seem so taxing to the
|
|
367
|
+
* performance; perhaps something to do with React component rendering on props change
|
|
368
|
+
* so in general for grid options which are not static, we must configure them here
|
|
369
|
+
*/
|
|
370
|
+
rowClassRules: configuration.alternateRows
|
|
371
|
+
? {
|
|
372
|
+
[INTERNAL__GRID_CLIENT_UTILITY_CSS_CLASS_NAME.HIGHLIGHT_ROW]: (params) => params.rowIndex % (configuration.alternateRowsCount * 2) >=
|
|
373
|
+
configuration.alternateRowsCount,
|
|
374
|
+
}
|
|
375
|
+
: null,
|
|
376
|
+
rowBuffer: DEFAULT_ROW_BUFFER,
|
|
377
|
+
// -------------------------------------- EVENT HANDLERS --------------------------------------
|
|
378
|
+
onColumnPinned: (event) => {
|
|
379
|
+
if (event.column) {
|
|
380
|
+
const column = event.column;
|
|
381
|
+
const columnConfiguration = dataCube.editor.columnProperties.getColumnConfiguration(column.getColId());
|
|
382
|
+
const pinned = column.getPinned();
|
|
383
|
+
columnConfiguration?.setPinned(pinned === null
|
|
384
|
+
? undefined
|
|
385
|
+
: pinned === GridClientPinnedAlignement.LEFT
|
|
386
|
+
? DataCubeColumnPinPlacement.LEFT
|
|
387
|
+
: DataCubeColumnPinPlacement.RIGHT);
|
|
388
|
+
dataCube.editor.applyChanges();
|
|
389
|
+
}
|
|
390
|
+
},
|
|
391
|
+
// -------------------------------------- COLUMNS --------------------------------------
|
|
111
392
|
columnDefs: [
|
|
112
393
|
{
|
|
113
394
|
headerName: '',
|
|
@@ -132,26 +413,37 @@ export function generateGridOptionsFromSnapshot(snapshot) {
|
|
|
132
413
|
hide: !snapshot.data.groupBy,
|
|
133
414
|
lockPinned: true,
|
|
134
415
|
lockPosition: true,
|
|
416
|
+
pinned: GridClientPinnedAlignement.LEFT,
|
|
135
417
|
cellStyle: {
|
|
136
418
|
flex: 1,
|
|
137
|
-
|
|
419
|
+
justifyContent: 'space-between',
|
|
138
420
|
display: 'flex',
|
|
139
421
|
},
|
|
422
|
+
// TODO: display: coloring, text, etc.
|
|
423
|
+
// TODO: pinning (should we pin this left by default?)
|
|
424
|
+
// TODO: tooltip
|
|
425
|
+
loadingCellRenderer: DataCubeGridLoadingCellRenderer,
|
|
426
|
+
sortable: false, // TODO: @akphi - we can support this in the configuration
|
|
140
427
|
},
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
428
|
+
// TODO: handle pivot and column grouping
|
|
429
|
+
...data.selectColumns.map((column) => {
|
|
430
|
+
const columnData = {
|
|
431
|
+
snapshot,
|
|
432
|
+
column,
|
|
433
|
+
configuration: guaranteeNonNullable(configuration.columns.find((col) => col.name === column.name)),
|
|
434
|
+
gridConfiguration: configuration,
|
|
435
|
+
};
|
|
436
|
+
return {
|
|
437
|
+
headerName: column.name,
|
|
438
|
+
field: column.name,
|
|
439
|
+
menuTabs: [],
|
|
440
|
+
suppressMovable: true,
|
|
441
|
+
..._displaySpec(columnData),
|
|
442
|
+
..._sizeSpec(columnData),
|
|
443
|
+
..._sortSpec(columnData),
|
|
444
|
+
..._rowGroupSpec(columnData),
|
|
445
|
+
};
|
|
446
|
+
}),
|
|
155
447
|
],
|
|
156
448
|
};
|
|
157
449
|
return gridOptions;
|