@finos/legend-application-repl 0.0.27 → 0.0.29
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/grammar/datacube_filter__lexer.g4 +40 -0
- package/grammar/datacube_filter__parser.g4 +14 -0
- package/grammar/generateGrammar.js +43 -0
- package/grammar/parser/generated/datacube_filter__lexer.interp +59 -0
- package/grammar/parser/generated/datacube_filter__lexer.tokens +14 -0
- package/grammar/parser/generated/datacube_filter__lexer.ts +142 -0
- package/grammar/parser/generated/datacube_filter__parser.interp +38 -0
- package/grammar/parser/generated/datacube_filter__parser.tokens +14 -0
- package/grammar/parser/generated/datacube_filter__parser.ts +514 -0
- package/grammar/parser/parser.ts +55 -0
- package/lib/components/Core_LegendREPLApplicationPlugin.d.ts.map +1 -1
- package/lib/components/Core_LegendREPLApplicationPlugin.js +0 -7
- package/lib/components/Core_LegendREPLApplicationPlugin.js.map +1 -1
- package/lib/components/LegendREPLApplication.d.ts +0 -1
- package/lib/components/LegendREPLApplication.d.ts.map +1 -1
- package/lib/components/LegendREPLFrameworkProvider.d.ts +0 -1
- package/lib/components/LegendREPLFrameworkProvider.d.ts.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/dataCube/DataCube.d.ts.map +1 -1
- package/lib/components/dataCube/DataCube.js +15 -4
- package/lib/components/dataCube/DataCube.js.map +1 -1
- package/lib/components/dataCube/editor/DataCubeEditor.d.ts +2 -4
- package/lib/components/dataCube/editor/DataCubeEditor.d.ts.map +1 -1
- package/lib/components/dataCube/editor/DataCubeEditor.js +109 -32
- package/lib/components/dataCube/editor/DataCubeEditor.js.map +1 -1
- package/lib/components/dataCube/editor/DataCubeEditorCodePanel.d.ts +1 -1
- package/lib/components/dataCube/editor/DataCubeEditorCodePanel.d.ts.map +1 -1
- package/lib/components/dataCube/editor/DataCubeEditorCodePanel.js +178 -104
- package/lib/components/dataCube/editor/DataCubeEditorCodePanel.js.map +1 -1
- package/lib/components/dataCube/editor/{DataCubeEditorSortPanel.d.ts → DataCubeEditorColumnPropertiesPanel.d.ts} +2 -5
- package/lib/components/dataCube/editor/DataCubeEditorColumnPropertiesPanel.d.ts.map +1 -0
- package/lib/components/dataCube/editor/DataCubeEditorColumnPropertiesPanel.js +27 -0
- package/lib/components/dataCube/editor/DataCubeEditorColumnPropertiesPanel.js.map +1 -0
- package/lib/components/dataCube/editor/DataCubeEditorColumnsPanel.d.ts +19 -0
- package/lib/components/dataCube/editor/DataCubeEditorColumnsPanel.d.ts.map +1 -0
- package/lib/components/dataCube/editor/DataCubeEditorColumnsPanel.js +27 -0
- package/lib/components/dataCube/editor/DataCubeEditorColumnsPanel.js.map +1 -0
- package/lib/components/dataCube/editor/DataCubeEditorColumnsSelector.d.ts +22 -0
- package/lib/components/dataCube/editor/DataCubeEditorColumnsSelector.d.ts.map +1 -0
- package/lib/components/dataCube/editor/DataCubeEditorColumnsSelector.js +230 -0
- package/lib/components/dataCube/editor/DataCubeEditorColumnsSelector.js.map +1 -0
- package/lib/components/dataCube/editor/DataCubeEditorExtendedColumnsPanel.d.ts +19 -0
- package/lib/components/dataCube/editor/DataCubeEditorExtendedColumnsPanel.d.ts.map +1 -0
- package/lib/components/dataCube/editor/DataCubeEditorExtendedColumnsPanel.js +27 -0
- package/lib/components/dataCube/editor/DataCubeEditorExtendedColumnsPanel.js.map +1 -0
- package/lib/components/dataCube/editor/DataCubeEditorFilterPanel.d.ts +19 -0
- package/lib/components/dataCube/editor/DataCubeEditorFilterPanel.d.ts.map +1 -0
- package/lib/components/dataCube/editor/DataCubeEditorFilterPanel.js +27 -0
- package/lib/components/dataCube/editor/DataCubeEditorFilterPanel.js.map +1 -0
- package/lib/components/dataCube/editor/DataCubeEditorGeneralPropertiesPanel.d.ts +19 -0
- package/lib/components/dataCube/editor/DataCubeEditorGeneralPropertiesPanel.d.ts.map +1 -0
- package/lib/components/dataCube/editor/DataCubeEditorGeneralPropertiesPanel.js +27 -0
- package/lib/components/dataCube/editor/DataCubeEditorGeneralPropertiesPanel.js.map +1 -0
- package/lib/components/dataCube/editor/DataCubeEditorHPivotsPanel.d.ts +19 -0
- package/lib/components/dataCube/editor/DataCubeEditorHPivotsPanel.d.ts.map +1 -0
- package/lib/components/dataCube/editor/DataCubeEditorHPivotsPanel.js +27 -0
- package/lib/components/dataCube/editor/DataCubeEditorHPivotsPanel.js.map +1 -0
- package/lib/components/dataCube/editor/DataCubeEditorSortsPanel.d.ts +19 -0
- package/lib/components/dataCube/editor/DataCubeEditorSortsPanel.d.ts.map +1 -0
- package/lib/components/dataCube/editor/DataCubeEditorSortsPanel.js +26 -0
- package/lib/components/dataCube/editor/DataCubeEditorSortsPanel.js.map +1 -0
- package/lib/components/dataCube/editor/DataCubeEditorVPivotsPanel.d.ts +19 -0
- package/lib/components/dataCube/editor/DataCubeEditorVPivotsPanel.d.ts.map +1 -0
- package/lib/components/dataCube/editor/DataCubeEditorVPivotsPanel.js +27 -0
- package/lib/components/dataCube/editor/DataCubeEditorVPivotsPanel.js.map +1 -0
- package/lib/components/dataCube/grid/DataCubeGrid.d.ts +1 -4
- package/lib/components/dataCube/grid/DataCubeGrid.d.ts.map +1 -1
- package/lib/components/dataCube/grid/DataCubeGrid.js +75 -30
- package/lib/components/dataCube/grid/DataCubeGrid.js.map +1 -1
- package/lib/grammar/generated/datacube_filter__lexer.d.ts +31 -0
- package/lib/grammar/generated/datacube_filter__lexer.js +118 -0
- package/lib/grammar/generated/datacube_filter__parser.d.ts +91 -0
- package/lib/grammar/generated/datacube_filter__parser.js +485 -0
- package/lib/grammar/parser.d.ts +16 -0
- package/lib/grammar/parser.js +39 -0
- package/lib/index.css +2 -2
- package/lib/index.css.map +1 -1
- package/lib/package.json +9 -6
- package/lib/server/REPLServerClient.d.ts +2 -3
- package/lib/server/REPLServerClient.d.ts.map +1 -1
- package/lib/server/models/DataCubeEngineModels.d.ts +8 -1
- package/lib/server/models/DataCubeEngineModels.d.ts.map +1 -1
- package/lib/server/models/DataCubeEngineModels.js +13 -0
- package/lib/server/models/DataCubeEngineModels.js.map +1 -1
- package/lib/stores/dataCube/DataCubeDefaultConfig.d.ts +17 -0
- package/lib/stores/dataCube/DataCubeDefaultConfig.d.ts.map +1 -0
- package/lib/stores/dataCube/DataCubeDefaultConfig.js +17 -0
- package/lib/stores/dataCube/DataCubeDefaultConfig.js.map +1 -0
- package/lib/stores/dataCube/DataCubeState.d.ts +6 -6
- package/lib/stores/dataCube/DataCubeState.d.ts.map +1 -1
- package/lib/stores/dataCube/DataCubeState.js +18 -14
- package/lib/stores/dataCube/DataCubeState.js.map +1 -1
- package/lib/stores/dataCube/{DataCubeStore.d.ts → REPLStore.d.ts} +1 -1
- package/lib/stores/dataCube/REPLStore.d.ts.map +1 -0
- package/lib/stores/dataCube/{DataCubeStore.js → REPLStore.js} +1 -1
- package/lib/stores/dataCube/REPLStore.js.map +1 -0
- package/lib/stores/dataCube/core/DataCubeCoreState.d.ts +29 -0
- package/lib/stores/dataCube/core/DataCubeCoreState.d.ts.map +1 -0
- package/lib/stores/dataCube/core/DataCubeCoreState.js +46 -0
- package/lib/stores/dataCube/core/DataCubeCoreState.js.map +1 -0
- package/lib/stores/dataCube/core/DataCubeEngine.d.ts +2 -3
- package/lib/stores/dataCube/core/DataCubeEngine.d.ts.map +1 -1
- package/lib/stores/dataCube/core/DataCubeEngine.js +2 -3
- package/lib/stores/dataCube/core/DataCubeEngine.js.map +1 -1
- package/lib/stores/dataCube/core/DataCubeQueryBuilder.d.ts +27 -3
- package/lib/stores/dataCube/core/DataCubeQueryBuilder.d.ts.map +1 -1
- package/lib/stores/dataCube/core/DataCubeQueryBuilder.js +210 -278
- package/lib/stores/dataCube/core/DataCubeQueryBuilder.js.map +1 -1
- package/lib/stores/dataCube/core/DataCubeQueryEngine.d.ts +72 -0
- package/lib/stores/dataCube/core/DataCubeQueryEngine.d.ts.map +1 -0
- package/lib/stores/dataCube/core/DataCubeQueryEngine.js +67 -0
- package/lib/stores/dataCube/core/DataCubeQueryEngine.js.map +1 -0
- package/lib/stores/dataCube/core/DataCubeQuerySnapshot.d.ts +73 -38
- package/lib/stores/dataCube/core/DataCubeQuerySnapshot.d.ts.map +1 -1
- package/lib/stores/dataCube/core/DataCubeQuerySnapshot.js +101 -40
- package/lib/stores/dataCube/core/DataCubeQuerySnapshot.js.map +1 -1
- package/lib/stores/dataCube/core/DataCubeQuerySnapshotBuilder.d.ts +32 -0
- package/lib/stores/dataCube/core/DataCubeQuerySnapshotBuilder.d.ts.map +1 -0
- package/lib/stores/dataCube/core/DataCubeQuerySnapshotBuilder.js +232 -0
- package/lib/stores/dataCube/core/DataCubeQuerySnapshotBuilder.js.map +1 -0
- package/lib/stores/dataCube/core/DataCubeQuerySnapshotManager.d.ts +8 -2
- package/lib/stores/dataCube/core/DataCubeQuerySnapshotManager.d.ts.map +1 -1
- package/lib/stores/dataCube/core/DataCubeQuerySnapshotManager.js +20 -5
- package/lib/stores/dataCube/core/DataCubeQuerySnapshotManager.js.map +1 -1
- package/lib/stores/dataCube/core/DataCubeQuerySnapshotSubscriber.d.ts +8 -3
- package/lib/stores/dataCube/core/DataCubeQuerySnapshotSubscriber.d.ts.map +1 -1
- package/lib/stores/dataCube/core/DataCubeQuerySnapshotSubscriber.js +8 -4
- package/lib/stores/dataCube/core/DataCubeQuerySnapshotSubscriber.js.map +1 -1
- package/lib/stores/dataCube/editor/{DataCubeEditorCodeState.d.ts → DataCubeEditorCodePanelState.d.ts} +6 -5
- package/lib/stores/dataCube/editor/DataCubeEditorCodePanelState.d.ts.map +1 -0
- package/lib/stores/dataCube/editor/{DataCubeEditorCodeState.js → DataCubeEditorCodePanelState.js} +7 -7
- package/lib/stores/dataCube/editor/DataCubeEditorCodePanelState.js.map +1 -0
- package/lib/stores/dataCube/editor/DataCubeEditorColumnsSelectorState.d.ts +30 -0
- package/lib/stores/dataCube/editor/DataCubeEditorColumnsSelectorState.d.ts.map +1 -0
- package/lib/stores/dataCube/editor/DataCubeEditorColumnsSelectorState.js +51 -0
- package/lib/stores/dataCube/editor/DataCubeEditorColumnsSelectorState.js.map +1 -0
- package/lib/stores/dataCube/editor/DataCubeEditorGeneralPropertiesPanelState.d.ts +29 -0
- package/lib/stores/dataCube/editor/DataCubeEditorGeneralPropertiesPanelState.d.ts.map +1 -0
- package/lib/stores/dataCube/editor/DataCubeEditorGeneralPropertiesPanelState.js +63 -0
- package/lib/stores/dataCube/editor/DataCubeEditorGeneralPropertiesPanelState.js.map +1 -0
- package/lib/stores/dataCube/editor/{DataCubeEditorQuerySnapshotBuilder.d.ts → DataCubeEditorPanelState.d.ts} +2 -2
- package/lib/stores/dataCube/editor/DataCubeEditorPanelState.d.ts.map +1 -0
- package/lib/stores/dataCube/editor/{DataCubeEditorQuerySnapshotBuilder.js → DataCubeEditorPanelState.js} +1 -1
- package/lib/stores/dataCube/editor/DataCubeEditorPanelState.js.map +1 -0
- package/lib/stores/dataCube/editor/DataCubeEditorSortsPanelState.d.ts +34 -0
- package/lib/stores/dataCube/editor/DataCubeEditorSortsPanelState.d.ts.map +1 -0
- package/lib/stores/dataCube/editor/DataCubeEditorSortsPanelState.js +67 -0
- package/lib/stores/dataCube/editor/DataCubeEditorSortsPanelState.js.map +1 -0
- package/lib/stores/dataCube/editor/DataCubeEditorState.d.ts +10 -7
- package/lib/stores/dataCube/editor/DataCubeEditorState.d.ts.map +1 -1
- package/lib/stores/dataCube/editor/DataCubeEditorState.js +25 -17
- package/lib/stores/dataCube/editor/DataCubeEditorState.js.map +1 -1
- package/lib/stores/dataCube/grid/DataCubeGridClientEngine.d.ts +13 -7
- package/lib/stores/dataCube/grid/DataCubeGridClientEngine.d.ts.map +1 -1
- package/lib/stores/dataCube/grid/DataCubeGridClientEngine.js +87 -86
- package/lib/stores/dataCube/grid/DataCubeGridClientEngine.js.map +1 -1
- package/lib/stores/dataCube/grid/DataCubeGridQueryBuilder.d.ts +20 -0
- package/lib/stores/dataCube/grid/DataCubeGridQueryBuilder.d.ts.map +1 -0
- package/lib/stores/dataCube/grid/DataCubeGridQueryBuilder.js +103 -0
- package/lib/stores/dataCube/grid/DataCubeGridQueryBuilder.js.map +1 -0
- package/lib/stores/dataCube/grid/DataCubeGridQuerySnapshotAnalyzer.d.ts +7 -1
- package/lib/stores/dataCube/grid/DataCubeGridQuerySnapshotAnalyzer.d.ts.map +1 -1
- package/lib/stores/dataCube/grid/DataCubeGridQuerySnapshotAnalyzer.js +121 -214
- package/lib/stores/dataCube/grid/DataCubeGridQuerySnapshotAnalyzer.js.map +1 -1
- package/lib/stores/dataCube/grid/DataCubeGridQuerySnapshotBuilder.d.ts +25 -0
- package/lib/stores/dataCube/grid/DataCubeGridQuerySnapshotBuilder.d.ts.map +1 -0
- package/lib/stores/dataCube/grid/DataCubeGridQuerySnapshotBuilder.js +83 -0
- package/lib/stores/dataCube/grid/DataCubeGridQuerySnapshotBuilder.js.map +1 -0
- package/lib/stores/dataCube/grid/DataCubeGridState.d.ts +6 -5
- package/lib/stores/dataCube/grid/DataCubeGridState.d.ts.map +1 -1
- package/lib/stores/dataCube/grid/DataCubeGridState.js +32 -10
- package/lib/stores/dataCube/grid/DataCubeGridState.js.map +1 -1
- package/package.json +15 -12
- package/src/components/Core_LegendREPLApplicationPlugin.tsx +0 -7
- package/src/components/REPLStoreProvider.tsx +1 -1
- package/src/components/dataCube/DataCube.tsx +51 -29
- package/src/components/dataCube/editor/DataCubeEditor.tsx +204 -95
- package/src/components/dataCube/editor/DataCubeEditorCodePanel.tsx +186 -190
- package/src/components/dataCube/editor/DataCubeEditorColumnPropertiesPanel.tsx +42 -0
- package/src/components/dataCube/editor/DataCubeEditorColumnsPanel.tsx +41 -0
- package/src/components/dataCube/editor/DataCubeEditorColumnsSelector.tsx +408 -0
- package/src/components/dataCube/editor/DataCubeEditorExtendedColumnsPanel.tsx +41 -0
- package/src/components/dataCube/editor/DataCubeEditorFilterPanel.tsx +41 -0
- package/src/components/dataCube/editor/DataCubeEditorGeneralPropertiesPanel.tsx +48 -0
- package/src/components/dataCube/editor/DataCubeEditorHPivotsPanel.tsx +41 -0
- package/src/components/dataCube/editor/DataCubeEditorSortsPanel.tsx +41 -0
- package/src/components/dataCube/editor/DataCubeEditorVPivotsPanel.tsx +41 -0
- package/src/components/dataCube/grid/DataCubeGrid.tsx +134 -43
- package/src/server/REPLServerClient.ts +2 -2
- package/src/server/models/DataCubeEngineModels.ts +23 -1
- package/{lib/grid.css → src/stores/dataCube/DataCubeDefaultConfig.ts} +2 -2
- package/src/stores/dataCube/DataCubeState.ts +26 -20
- package/src/stores/dataCube/core/DataCubeCoreState.ts +57 -0
- package/src/stores/dataCube/core/DataCubeEngine.ts +6 -4
- package/src/stores/dataCube/core/DataCubeQueryBuilder.ts +349 -353
- package/src/stores/dataCube/core/DataCubeQueryEngine.ts +90 -0
- package/src/stores/dataCube/core/DataCubeQuerySnapshot.ts +168 -156
- package/src/stores/dataCube/core/DataCubeQuerySnapshotBuilder.ts +398 -0
- package/src/stores/dataCube/core/DataCubeQuerySnapshotManager.ts +37 -5
- package/src/stores/dataCube/core/DataCubeQuerySnapshotSubscriber.ts +13 -5
- package/src/stores/dataCube/editor/{DataCubeEditorCodeState.ts → DataCubeEditorCodePanelState.ts} +6 -6
- package/src/stores/dataCube/editor/DataCubeEditorColumnsSelectorState.ts +61 -0
- package/src/stores/dataCube/editor/DataCubeEditorGeneralPropertiesPanelState.ts +80 -0
- package/src/stores/dataCube/editor/{DataCubeEditorQuerySnapshotBuilder.ts → DataCubeEditorPanelState.ts} +1 -1
- package/src/stores/dataCube/editor/DataCubeEditorSortsPanelState.ts +116 -0
- package/src/stores/dataCube/editor/DataCubeEditorState.ts +29 -20
- package/src/stores/dataCube/grid/DataCubeGridClientEngine.ts +96 -128
- package/src/stores/dataCube/grid/DataCubeGridQueryBuilder.ts +154 -0
- package/src/stores/dataCube/grid/DataCubeGridQuerySnapshotAnalyzer.tsx +191 -0
- package/src/stores/dataCube/grid/DataCubeGridQuerySnapshotBuilder.ts +127 -0
- package/src/stores/dataCube/grid/DataCubeGridState.ts +41 -14
- package/tsconfig.json +23 -9
- package/lib/components/dataCube/editor/DataCubeEditorSortPanel.d.ts.map +0 -1
- package/lib/components/dataCube/editor/DataCubeEditorSortPanel.js +0 -61
- package/lib/components/dataCube/editor/DataCubeEditorSortPanel.js.map +0 -1
- package/lib/grid.css.map +0 -1
- package/lib/repl.css +0 -17
- package/lib/repl.css.map +0 -1
- package/lib/stores/dataCube/DataCubeMetaModelConst.d.ts +0 -63
- package/lib/stores/dataCube/DataCubeMetaModelConst.d.ts.map +0 -1
- package/lib/stores/dataCube/DataCubeMetaModelConst.js +0 -72
- package/lib/stores/dataCube/DataCubeMetaModelConst.js.map +0 -1
- package/lib/stores/dataCube/DataCubeStore.d.ts.map +0 -1
- package/lib/stores/dataCube/DataCubeStore.js.map +0 -1
- package/lib/stores/dataCube/core/DataCubeQueryAnalyzer.d.ts +0 -37
- package/lib/stores/dataCube/core/DataCubeQueryAnalyzer.d.ts.map +0 -1
- package/lib/stores/dataCube/core/DataCubeQueryAnalyzer.js +0 -269
- package/lib/stores/dataCube/core/DataCubeQueryAnalyzer.js.map +0 -1
- package/lib/stores/dataCube/editor/DataCubeEditorCodeState.d.ts.map +0 -1
- package/lib/stores/dataCube/editor/DataCubeEditorCodeState.js.map +0 -1
- package/lib/stores/dataCube/editor/DataCubeEditorQuerySnapshotBuilder.d.ts.map +0 -1
- package/lib/stores/dataCube/editor/DataCubeEditorQuerySnapshotBuilder.js.map +0 -1
- package/lib/stores/dataCube/editor/DataCubeEditorSortState.d.ts +0 -46
- package/lib/stores/dataCube/editor/DataCubeEditorSortState.d.ts.map +0 -1
- package/lib/stores/dataCube/editor/DataCubeEditorSortState.js +0 -133
- package/lib/stores/dataCube/editor/DataCubeEditorSortState.js.map +0 -1
- package/src/components/dataCube/editor/DataCubeEditorSortPanel.tsx +0 -274
- package/src/stores/dataCube/DataCubeMetaModelConst.ts +0 -76
- package/src/stores/dataCube/core/DataCubeQueryAnalyzer.ts +0 -424
- package/src/stores/dataCube/editor/DataCubeEditorSortState.ts +0 -198
- package/src/stores/dataCube/grid/DataCubeGridQuerySnapshotAnalyzer.ts +0 -281
- /package/src/stores/dataCube/{DataCubeStore.ts → REPLStore.ts} +0 -0
|
@@ -15,113 +15,222 @@
|
|
|
15
15
|
*/
|
|
16
16
|
|
|
17
17
|
import { observer } from 'mobx-react-lite';
|
|
18
|
-
import {
|
|
19
|
-
TimesIcon,
|
|
20
|
-
clsx,
|
|
21
|
-
BasePopover,
|
|
22
|
-
Modal,
|
|
23
|
-
ModalBody,
|
|
24
|
-
ModalFooter,
|
|
25
|
-
ModalFooterButton,
|
|
26
|
-
ModalHeader,
|
|
27
|
-
ModalHeaderActions,
|
|
28
|
-
ModalTitle,
|
|
29
|
-
} from '@finos/legend-art';
|
|
30
|
-
import type { REPLStore } from '../../../stores/dataCube/DataCubeStore.js';
|
|
18
|
+
import { DataCubeIcon, ResizableAndDraggableBox, cn } from '@finos/legend-art';
|
|
31
19
|
import { DATA_CUBE_EDITOR_TAB } from '../../../stores/dataCube/editor/DataCubeEditorState.js';
|
|
32
|
-
import {
|
|
20
|
+
import { useEffect, useState } from 'react';
|
|
21
|
+
import { useREPLStore } from '../../REPLStoreProvider.js';
|
|
22
|
+
import { DataCubeEditorSortsPanel } from './DataCubeEditorSortsPanel.js';
|
|
23
|
+
import { DataCubeEditorGeneralPropertiesPanel } from './DataCubeEditorGeneralPropertiesPanel.js';
|
|
24
|
+
import { DataCubeEditorColumnsPanel } from './DataCubeEditorColumnsPanel.js';
|
|
25
|
+
import { DataCubeEditorVPivotsPanel } from './DataCubeEditorVPivotsPanel.js';
|
|
26
|
+
import { DataCubeEditorHPivotsPanel } from './DataCubeEditorHPivotsPanel.js';
|
|
27
|
+
import { DataCubeEditorFilterPanel } from './DataCubeEditorFilterPanel.js';
|
|
28
|
+
import { DataCubeEditorExtendedColumnsPanel } from './DataCubeEditorExtendedColumnsPanel.js';
|
|
29
|
+
import { DataCubeEditorCodePanel } from './DataCubeEditorCodePanel.js';
|
|
30
|
+
import { DataCubeEditorColumnPropertiesPanel } from './DataCubeEditorColumnPropertiesPanel.js';
|
|
33
31
|
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
const
|
|
44
|
-
|
|
32
|
+
const __DATA_CUBE_EDITOR_HEADER_CLASS_NAME = 'data-cube__editor__header';
|
|
33
|
+
const PANEL_DEFAULT_OFFSET = 50;
|
|
34
|
+
const PANEL_DEFAULT_HEIGHT = 600;
|
|
35
|
+
const PANEL_DEFAULT_WIDTH = 800;
|
|
36
|
+
const PANEL_DEFALT_MIN_HEIGHT = 300;
|
|
37
|
+
const PANEL_DEFAULT_MIN_WIDTH = 300;
|
|
38
|
+
|
|
39
|
+
export const DataCubeEditor = observer(
|
|
40
|
+
(props: { containerRef: React.RefObject<HTMLDivElement> }) => {
|
|
41
|
+
const { containerRef } = props;
|
|
42
|
+
const [windowSpec, setWindowSpec] = useState({
|
|
43
|
+
x: PANEL_DEFAULT_OFFSET,
|
|
44
|
+
y: PANEL_DEFAULT_OFFSET,
|
|
45
|
+
width: PANEL_DEFAULT_WIDTH,
|
|
46
|
+
height: PANEL_DEFAULT_HEIGHT,
|
|
47
|
+
});
|
|
48
|
+
const replStore = useREPLStore();
|
|
49
|
+
const editor = replStore.dataCubeState.editor;
|
|
50
|
+
const selectedTab = editor.currentTab;
|
|
51
|
+
const tabs = [
|
|
52
|
+
DATA_CUBE_EDITOR_TAB.COLUMNS,
|
|
53
|
+
DATA_CUBE_EDITOR_TAB.VERTICAL_PIVOTS,
|
|
54
|
+
DATA_CUBE_EDITOR_TAB.HORIZONTAL_PIVOTS,
|
|
55
|
+
DATA_CUBE_EDITOR_TAB.EXTENDED_COLUMNS,
|
|
56
|
+
DATA_CUBE_EDITOR_TAB.FILTER,
|
|
45
57
|
DATA_CUBE_EDITOR_TAB.SORTS,
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
// DATA_CUBE_EDITOR_TAB.COLUMN_PROPERTIES,
|
|
58
|
+
DATA_CUBE_EDITOR_TAB.GENERAL_PROPERTIES,
|
|
59
|
+
DATA_CUBE_EDITOR_TAB.COLUMN_PROPERTIES,
|
|
60
|
+
DATA_CUBE_EDITOR_TAB.CODE,
|
|
50
61
|
];
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
62
|
+
|
|
63
|
+
useEffect(() => {
|
|
64
|
+
if (containerRef.current) {
|
|
65
|
+
const { width: containerWidth, height: containerHeight } =
|
|
66
|
+
containerRef.current.getBoundingClientRect();
|
|
67
|
+
setWindowSpec({
|
|
68
|
+
x: PANEL_DEFAULT_OFFSET,
|
|
69
|
+
y: PANEL_DEFAULT_OFFSET,
|
|
70
|
+
width:
|
|
71
|
+
PANEL_DEFAULT_WIDTH + PANEL_DEFAULT_OFFSET * 2 > containerWidth
|
|
72
|
+
? containerWidth - PANEL_DEFAULT_OFFSET * 2
|
|
73
|
+
: PANEL_DEFAULT_WIDTH,
|
|
74
|
+
height:
|
|
75
|
+
PANEL_DEFAULT_HEIGHT + PANEL_DEFAULT_OFFSET * 2 > containerHeight
|
|
76
|
+
? containerHeight - PANEL_DEFAULT_OFFSET * 2
|
|
77
|
+
: PANEL_DEFAULT_HEIGHT,
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
}, [containerRef]);
|
|
58
81
|
|
|
59
82
|
return (
|
|
60
|
-
<
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
83
|
+
<ResizableAndDraggableBox
|
|
84
|
+
className="absolute z-10"
|
|
85
|
+
handle={`.${__DATA_CUBE_EDITOR_HEADER_CLASS_NAME}`}
|
|
86
|
+
position={{ x: windowSpec.x, y: windowSpec.y }}
|
|
87
|
+
size={{ width: windowSpec.width, height: windowSpec.height }}
|
|
88
|
+
minWidth={PANEL_DEFAULT_MIN_WIDTH}
|
|
89
|
+
minHeight={PANEL_DEFALT_MIN_HEIGHT}
|
|
90
|
+
onDragStop={(event, data) => {
|
|
91
|
+
setWindowSpec({ ...windowSpec, x: data.x, y: data.y });
|
|
92
|
+
}}
|
|
93
|
+
dragHandleClassName={__DATA_CUBE_EDITOR_HEADER_CLASS_NAME}
|
|
94
|
+
onResize={(event, direction, ref, delta, position) => {
|
|
95
|
+
setWindowSpec({
|
|
96
|
+
...position,
|
|
97
|
+
width: ref.offsetWidth,
|
|
98
|
+
height: ref.offsetHeight,
|
|
99
|
+
});
|
|
100
|
+
}}
|
|
101
|
+
enableResizing={{
|
|
102
|
+
top: true,
|
|
103
|
+
right: true,
|
|
104
|
+
bottom: true,
|
|
105
|
+
left: true,
|
|
106
|
+
topRight: true,
|
|
107
|
+
bottomRight: true,
|
|
108
|
+
bottomLeft: true,
|
|
109
|
+
topLeft: true,
|
|
67
110
|
}}
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
111
|
+
resizeHandleStyles={{
|
|
112
|
+
top: { cursor: 'ns-resize' },
|
|
113
|
+
right: { cursor: 'ew-resize' },
|
|
114
|
+
bottom: { cursor: 'ns-resize' },
|
|
115
|
+
left: { cursor: 'ew-resize' },
|
|
116
|
+
topRight: {
|
|
117
|
+
cursor: 'nesw-resize',
|
|
118
|
+
width: 14,
|
|
119
|
+
height: 14,
|
|
120
|
+
top: -7,
|
|
121
|
+
right: -7,
|
|
122
|
+
},
|
|
123
|
+
bottomRight: {
|
|
124
|
+
cursor: 'nwse-resize',
|
|
125
|
+
width: 14,
|
|
126
|
+
height: 14,
|
|
127
|
+
bottom: -7,
|
|
128
|
+
right: -7,
|
|
129
|
+
},
|
|
130
|
+
bottomLeft: {
|
|
131
|
+
cursor: 'nesw-resize',
|
|
132
|
+
width: 14,
|
|
133
|
+
height: 14,
|
|
134
|
+
bottom: -7,
|
|
135
|
+
left: -7,
|
|
136
|
+
},
|
|
137
|
+
topLeft: {
|
|
138
|
+
cursor: 'nwse-resize',
|
|
139
|
+
width: 14,
|
|
140
|
+
height: 14,
|
|
141
|
+
top: -7,
|
|
142
|
+
left: -7,
|
|
143
|
+
},
|
|
71
144
|
}}
|
|
72
145
|
>
|
|
73
|
-
<
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
<
|
|
81
|
-
<
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
146
|
+
<div className="h-full w-full border border-neutral-400 bg-neutral-200 shadow-xl">
|
|
147
|
+
<div
|
|
148
|
+
className={cn(
|
|
149
|
+
__DATA_CUBE_EDITOR_HEADER_CLASS_NAME,
|
|
150
|
+
'flex h-6 w-full select-none items-center justify-between border-b border-b-neutral-300 bg-white active:cursor-move',
|
|
151
|
+
)}
|
|
152
|
+
>
|
|
153
|
+
<div className="px-2">Properties</div>
|
|
154
|
+
<button
|
|
155
|
+
className="flex h-[23px] w-6 items-center justify-center hover:bg-red-500 hover:text-white"
|
|
156
|
+
onClick={() => editor.closePanel()}
|
|
157
|
+
>
|
|
158
|
+
<DataCubeIcon.X />
|
|
159
|
+
</button>
|
|
160
|
+
</div>
|
|
161
|
+
<div className="relative h-[calc(100%_-_64px)] flex-1 px-2 pt-8">
|
|
162
|
+
<div className="absolute top-0 flex h-9 w-[calc(100%_-_16px)] min-w-[400px] overflow-auto px-0.5 pt-2">
|
|
163
|
+
{tabs.map((tab) => (
|
|
164
|
+
<button
|
|
165
|
+
key={tab}
|
|
166
|
+
onClick={(): void => editor.setCurrentTab(tab)}
|
|
167
|
+
className={cn(
|
|
168
|
+
'relative flex h-6 items-center justify-center whitespace-nowrap border border-b-0 border-l-0 border-neutral-300 px-2 first:border-l focus:z-10',
|
|
169
|
+
{
|
|
170
|
+
'-top-0.5 h-[27px] border-b-0 bg-white':
|
|
171
|
+
tab === selectedTab,
|
|
172
|
+
},
|
|
173
|
+
)}
|
|
174
|
+
>
|
|
175
|
+
{tab}
|
|
176
|
+
</button>
|
|
177
|
+
))}
|
|
178
|
+
</div>
|
|
179
|
+
<div className="h-full w-full overflow-auto border border-neutral-300 bg-white">
|
|
180
|
+
{selectedTab === DATA_CUBE_EDITOR_TAB.COLUMNS && (
|
|
181
|
+
<DataCubeEditorColumnsPanel />
|
|
182
|
+
)}
|
|
108
183
|
{selectedTab === DATA_CUBE_EDITOR_TAB.SORTS && (
|
|
109
|
-
<
|
|
184
|
+
<DataCubeEditorSortsPanel />
|
|
185
|
+
)}
|
|
186
|
+
{selectedTab === DATA_CUBE_EDITOR_TAB.VERTICAL_PIVOTS && (
|
|
187
|
+
<DataCubeEditorVPivotsPanel />
|
|
188
|
+
)}
|
|
189
|
+
{selectedTab === DATA_CUBE_EDITOR_TAB.HORIZONTAL_PIVOTS && (
|
|
190
|
+
<DataCubeEditorHPivotsPanel />
|
|
191
|
+
)}
|
|
192
|
+
{selectedTab === DATA_CUBE_EDITOR_TAB.EXTENDED_COLUMNS && (
|
|
193
|
+
<DataCubeEditorExtendedColumnsPanel />
|
|
194
|
+
)}
|
|
195
|
+
{selectedTab === DATA_CUBE_EDITOR_TAB.FILTER && (
|
|
196
|
+
<DataCubeEditorFilterPanel />
|
|
197
|
+
)}
|
|
198
|
+
{selectedTab === DATA_CUBE_EDITOR_TAB.GENERAL_PROPERTIES && (
|
|
199
|
+
<DataCubeEditorGeneralPropertiesPanel />
|
|
200
|
+
)}
|
|
201
|
+
{selectedTab === DATA_CUBE_EDITOR_TAB.COLUMN_PROPERTIES && (
|
|
202
|
+
<DataCubeEditorColumnPropertiesPanel />
|
|
203
|
+
)}
|
|
204
|
+
{selectedTab === DATA_CUBE_EDITOR_TAB.CODE && (
|
|
205
|
+
<DataCubeEditorCodePanel />
|
|
110
206
|
)}
|
|
111
207
|
</div>
|
|
112
|
-
</
|
|
113
|
-
<
|
|
114
|
-
<
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
208
|
+
</div>
|
|
209
|
+
<div className="flex h-10 items-center justify-end px-2">
|
|
210
|
+
<button
|
|
211
|
+
className="h-6 w-20 border border-neutral-400 bg-neutral-300 px-2 hover:brightness-95"
|
|
212
|
+
onClick={(): void => {
|
|
213
|
+
editor.applyChanges();
|
|
214
|
+
editor.closePanel();
|
|
215
|
+
}}
|
|
216
|
+
>
|
|
217
|
+
OK
|
|
218
|
+
</button>
|
|
219
|
+
<button
|
|
220
|
+
className="ml-2 h-6 w-20 border border-neutral-400 bg-neutral-300 px-2 hover:brightness-95"
|
|
221
|
+
onClick={() => editor.closePanel()}
|
|
222
|
+
>
|
|
223
|
+
Cancel
|
|
224
|
+
</button>
|
|
225
|
+
<button
|
|
226
|
+
className="ml-2 h-6 w-20 border border-neutral-400 bg-neutral-300 px-2 hover:brightness-95"
|
|
227
|
+
onClick={() => editor.applyChanges()}
|
|
228
|
+
>
|
|
229
|
+
Apply
|
|
230
|
+
</button>
|
|
231
|
+
</div>
|
|
232
|
+
</div>
|
|
233
|
+
</ResizableAndDraggableBox>
|
|
125
234
|
);
|
|
126
235
|
},
|
|
127
236
|
);
|