@finos/legend-application-repl 0.0.47 → 0.0.49
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/dataCube/DataCube.d.ts.map +1 -1
- package/lib/components/dataCube/DataCube.js +14 -11
- package/lib/components/dataCube/DataCube.js.map +1 -1
- package/lib/components/dataCube/editor/DataCubeEditor.d.ts +4 -1
- package/lib/components/dataCube/editor/DataCubeEditor.d.ts.map +1 -1
- package/lib/components/dataCube/editor/DataCubeEditor.js +6 -7
- package/lib/components/dataCube/editor/DataCubeEditor.js.map +1 -1
- package/lib/components/dataCube/editor/DataCubeEditorCodePanel.d.ts +4 -1
- package/lib/components/dataCube/editor/DataCubeEditorCodePanel.d.ts.map +1 -1
- package/lib/components/dataCube/editor/DataCubeEditorCodePanel.js +2 -12
- package/lib/components/dataCube/editor/DataCubeEditorCodePanel.js.map +1 -1
- package/lib/components/dataCube/editor/DataCubeEditorColumnPropertiesPanel.d.ts +4 -1
- package/lib/components/dataCube/editor/DataCubeEditorColumnPropertiesPanel.d.ts.map +1 -1
- package/lib/components/dataCube/editor/DataCubeEditorColumnPropertiesPanel.js +57 -51
- package/lib/components/dataCube/editor/DataCubeEditorColumnPropertiesPanel.js.map +1 -1
- package/lib/components/dataCube/editor/DataCubeEditorColumnsPanel.d.ts +4 -1
- package/lib/components/dataCube/editor/DataCubeEditorColumnsPanel.d.ts.map +1 -1
- package/lib/components/dataCube/editor/DataCubeEditorColumnsPanel.js +3 -4
- package/lib/components/dataCube/editor/DataCubeEditorColumnsPanel.js.map +1 -1
- package/lib/components/dataCube/editor/DataCubeEditorColumnsSelector.js +1 -1
- package/lib/components/dataCube/editor/DataCubeEditorExtendedColumnsPanel.d.ts +4 -1
- package/lib/components/dataCube/editor/DataCubeEditorExtendedColumnsPanel.d.ts.map +1 -1
- package/lib/components/dataCube/editor/DataCubeEditorExtendedColumnsPanel.js +3 -4
- package/lib/components/dataCube/editor/DataCubeEditorExtendedColumnsPanel.js.map +1 -1
- package/lib/components/dataCube/editor/DataCubeEditorFilterPanel.d.ts +4 -1
- package/lib/components/dataCube/editor/DataCubeEditorFilterPanel.d.ts.map +1 -1
- package/lib/components/dataCube/editor/DataCubeEditorFilterPanel.js +289 -10
- package/lib/components/dataCube/editor/DataCubeEditorFilterPanel.js.map +1 -1
- package/lib/components/dataCube/editor/DataCubeEditorGeneralPropertiesPanel.d.ts +4 -1
- package/lib/components/dataCube/editor/DataCubeEditorGeneralPropertiesPanel.d.ts.map +1 -1
- package/lib/components/dataCube/editor/DataCubeEditorGeneralPropertiesPanel.js +30 -30
- package/lib/components/dataCube/editor/DataCubeEditorGeneralPropertiesPanel.js.map +1 -1
- package/lib/components/dataCube/editor/DataCubeEditorHorizontalPivotsPanel.d.ts +4 -1
- package/lib/components/dataCube/editor/DataCubeEditorHorizontalPivotsPanel.d.ts.map +1 -1
- package/lib/components/dataCube/editor/DataCubeEditorHorizontalPivotsPanel.js +3 -4
- package/lib/components/dataCube/editor/DataCubeEditorHorizontalPivotsPanel.js.map +1 -1
- package/lib/components/dataCube/editor/DataCubeEditorSortsPanel.d.ts +4 -1
- package/lib/components/dataCube/editor/DataCubeEditorSortsPanel.d.ts.map +1 -1
- package/lib/components/dataCube/editor/DataCubeEditorSortsPanel.js +19 -20
- package/lib/components/dataCube/editor/DataCubeEditorSortsPanel.js.map +1 -1
- package/lib/components/dataCube/editor/DataCubeEditorVerticalPivotsPanel.d.ts +4 -1
- package/lib/components/dataCube/editor/DataCubeEditorVerticalPivotsPanel.d.ts.map +1 -1
- package/lib/components/dataCube/editor/DataCubeEditorVerticalPivotsPanel.js +3 -4
- package/lib/components/dataCube/editor/DataCubeEditorVerticalPivotsPanel.js.map +1 -1
- package/lib/components/dataCube/grid/DataCubeGrid.d.ts +7 -2
- package/lib/components/dataCube/grid/DataCubeGrid.d.ts.map +1 -1
- package/lib/components/dataCube/grid/DataCubeGrid.js +53 -54
- package/lib/components/dataCube/grid/DataCubeGrid.js.map +1 -1
- package/lib/components/repl/Form.d.ts +4 -2
- package/lib/components/repl/Form.d.ts.map +1 -1
- package/lib/components/repl/Form.js +55 -19
- package/lib/components/repl/Form.js.map +1 -1
- package/lib/index.css +2 -2
- package/lib/index.css.map +1 -1
- package/lib/package.json +4 -3
- package/lib/stores/dataCube/DataCubeEngine.d.ts +30 -0
- package/lib/stores/dataCube/DataCubeEngine.d.ts.map +1 -1
- package/lib/stores/dataCube/DataCubeEngine.js +60 -1
- package/lib/stores/dataCube/DataCubeEngine.js.map +1 -1
- package/lib/stores/dataCube/DataCubeState.d.ts +2 -2
- package/lib/stores/dataCube/DataCubeState.d.ts.map +1 -1
- package/lib/stores/dataCube/DataCubeState.js +11 -5
- package/lib/stores/dataCube/DataCubeState.js.map +1 -1
- package/lib/stores/dataCube/core/DataCubeConfiguration.d.ts +0 -1
- package/lib/stores/dataCube/core/DataCubeConfiguration.d.ts.map +1 -1
- package/lib/stores/dataCube/core/DataCubeConfiguration.js +0 -2
- package/lib/stores/dataCube/core/DataCubeConfiguration.js.map +1 -1
- package/lib/stores/dataCube/core/DataCubeQueryBuilder.d.ts +8 -17
- package/lib/stores/dataCube/core/DataCubeQueryBuilder.d.ts.map +1 -1
- package/lib/stores/dataCube/core/DataCubeQueryBuilder.js +16 -230
- package/lib/stores/dataCube/core/DataCubeQueryBuilder.js.map +1 -1
- package/lib/stores/dataCube/core/DataCubeQueryBuilderUtils.d.ts +44 -0
- package/lib/stores/dataCube/core/DataCubeQueryBuilderUtils.d.ts.map +1 -0
- package/lib/stores/dataCube/core/DataCubeQueryBuilderUtils.js +220 -0
- package/lib/stores/dataCube/core/DataCubeQueryBuilderUtils.js.map +1 -0
- package/lib/stores/dataCube/core/DataCubeQueryEngine.d.ts +41 -20
- package/lib/stores/dataCube/core/DataCubeQueryEngine.d.ts.map +1 -1
- package/lib/stores/dataCube/core/DataCubeQueryEngine.js +70 -46
- package/lib/stores/dataCube/core/DataCubeQueryEngine.js.map +1 -1
- package/lib/stores/dataCube/core/DataCubeQuerySnapshot.d.ts +7 -5
- package/lib/stores/dataCube/core/DataCubeQuerySnapshot.d.ts.map +1 -1
- package/lib/stores/dataCube/core/DataCubeQuerySnapshot.js +1 -1
- package/lib/stores/dataCube/core/DataCubeQuerySnapshot.js.map +1 -1
- package/lib/stores/dataCube/core/DataCubeQuerySnapshotBuilder.d.ts +4 -4
- package/lib/stores/dataCube/core/DataCubeQuerySnapshotBuilder.d.ts.map +1 -1
- package/lib/stores/dataCube/core/DataCubeQuerySnapshotBuilder.js +18 -135
- package/lib/stores/dataCube/core/DataCubeQuerySnapshotBuilder.js.map +1 -1
- package/lib/stores/dataCube/core/DataCubeQuerySnapshotBuilderUtils.d.ts +31 -0
- package/lib/stores/dataCube/core/DataCubeQuerySnapshotBuilderUtils.d.ts.map +1 -0
- package/lib/stores/dataCube/core/DataCubeQuerySnapshotBuilderUtils.js +142 -0
- package/lib/stores/dataCube/core/DataCubeQuerySnapshotBuilderUtils.js.map +1 -0
- package/lib/stores/dataCube/core/DataCubeQuerySnapshotManager.d.ts +16 -1
- package/lib/stores/dataCube/core/DataCubeQuerySnapshotManager.d.ts.map +1 -1
- package/lib/stores/dataCube/core/DataCubeQuerySnapshotManager.js +25 -3
- package/lib/stores/dataCube/core/DataCubeQuerySnapshotManager.js.map +1 -1
- package/lib/stores/dataCube/core/{DataCubeCoreState.d.ts → DataCubeStaticContentDisplayState.d.ts} +3 -4
- package/lib/stores/dataCube/core/DataCubeStaticContentDisplayState.d.ts.map +1 -0
- package/lib/stores/dataCube/core/{DataCubeCoreState.js → DataCubeStaticContentDisplayState.js} +3 -6
- package/lib/stores/dataCube/core/DataCubeStaticContentDisplayState.js.map +1 -0
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterEditorState.d.ts +36 -0
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterEditorState.d.ts.map +1 -0
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterEditorState.js +151 -0
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterEditorState.js.map +1 -0
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation.d.ts +32 -0
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation.d.ts.map +1 -0
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation.js +64 -0
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation.js.map +1 -0
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__Contain.d.ts +34 -0
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__Contain.d.ts.map +1 -0
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__Contain.js +59 -0
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__Contain.js.map +1 -0
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__ContainCaseInsensitive.d.ts +34 -0
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__ContainCaseInsensitive.d.ts.map +1 -0
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__ContainCaseInsensitive.js +64 -0
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__ContainCaseInsensitive.js.map +1 -0
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__EndWith.d.ts +34 -0
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__EndWith.d.ts.map +1 -0
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__EndWith.js +59 -0
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__EndWith.js.map +1 -0
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__EndWithCaseInsensitive.d.ts +34 -0
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__EndWithCaseInsensitive.d.ts.map +1 -0
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__EndWithCaseInsensitive.js +64 -0
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__EndWithCaseInsensitive.js.map +1 -0
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__Equal.d.ts +34 -0
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__Equal.d.ts.map +1 -0
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__Equal.js +126 -0
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__Equal.js.map +1 -0
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__EqualCaseInsensitive.d.ts +34 -0
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__EqualCaseInsensitive.d.ts.map +1 -0
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__EqualCaseInsensitive.js +64 -0
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__EqualCaseInsensitive.js.map +1 -0
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__EqualCaseInsensitiveColumn.d.ts +34 -0
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__EqualCaseInsensitiveColumn.d.ts.map +1 -0
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__EqualCaseInsensitiveColumn.js +64 -0
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__EqualCaseInsensitiveColumn.js.map +1 -0
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__EqualColumn.d.ts +34 -0
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__EqualColumn.d.ts.map +1 -0
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__EqualColumn.js +60 -0
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__EqualColumn.js.map +1 -0
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__GreaterThan.d.ts +34 -0
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__GreaterThan.d.ts.map +1 -0
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__GreaterThan.js +59 -0
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__GreaterThan.js.map +1 -0
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__GreaterThanColumn.d.ts +34 -0
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__GreaterThanColumn.d.ts.map +1 -0
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__GreaterThanColumn.js +60 -0
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__GreaterThanColumn.js.map +1 -0
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__GreaterThanOrEqual.d.ts +34 -0
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__GreaterThanOrEqual.d.ts.map +1 -0
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__GreaterThanOrEqual.js +59 -0
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__GreaterThanOrEqual.js.map +1 -0
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__GreaterThanOrEqualColumn.d.ts +34 -0
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__GreaterThanOrEqualColumn.d.ts.map +1 -0
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__GreaterThanOrEqualColumn.js +60 -0
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__GreaterThanOrEqualColumn.js.map +1 -0
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__IsNotNull.d.ts +31 -0
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__IsNotNull.d.ts.map +1 -0
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__IsNotNull.js +54 -0
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__IsNotNull.js.map +1 -0
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__IsNull.d.ts +31 -0
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__IsNull.d.ts.map +1 -0
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__IsNull.js +54 -0
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__IsNull.js.map +1 -0
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__LessThan.d.ts +34 -0
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__LessThan.d.ts.map +1 -0
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__LessThan.js +59 -0
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__LessThan.js.map +1 -0
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__LessThanColumn.d.ts +34 -0
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__LessThanColumn.d.ts.map +1 -0
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__LessThanColumn.js +60 -0
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__LessThanColumn.js.map +1 -0
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__LessThanOrEqual.d.ts +34 -0
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__LessThanOrEqual.d.ts.map +1 -0
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__LessThanOrEqual.js +59 -0
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__LessThanOrEqual.js.map +1 -0
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__LessThanOrEqualColumn.d.ts +34 -0
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__LessThanOrEqualColumn.d.ts.map +1 -0
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__LessThanOrEqualColumn.js +60 -0
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__LessThanOrEqualColumn.js.map +1 -0
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__NotContain.d.ts +34 -0
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__NotContain.d.ts.map +1 -0
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__NotContain.js +59 -0
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__NotContain.js.map +1 -0
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__NotEndWith.d.ts +34 -0
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__NotEndWith.d.ts.map +1 -0
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__NotEndWith.js +59 -0
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__NotEndWith.js.map +1 -0
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__NotEqual.d.ts +34 -0
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__NotEqual.d.ts.map +1 -0
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__NotEqual.js +59 -0
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__NotEqual.js.map +1 -0
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__NotEqualCaseInsensitive.d.ts +34 -0
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__NotEqualCaseInsensitive.d.ts.map +1 -0
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__NotEqualCaseInsensitive.js +64 -0
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__NotEqualCaseInsensitive.js.map +1 -0
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__NotEqualCaseInsensitiveColumn.d.ts +34 -0
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__NotEqualCaseInsensitiveColumn.d.ts.map +1 -0
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__NotEqualCaseInsensitiveColumn.js +64 -0
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__NotEqualCaseInsensitiveColumn.js.map +1 -0
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__NotEqualColumn.d.ts +34 -0
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__NotEqualColumn.d.ts.map +1 -0
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__NotEqualColumn.js +60 -0
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__NotEqualColumn.js.map +1 -0
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__NotStartWith.d.ts +34 -0
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__NotStartWith.d.ts.map +1 -0
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__NotStartWith.js +59 -0
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__NotStartWith.js.map +1 -0
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__StartWith.d.ts +34 -0
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__StartWith.d.ts.map +1 -0
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__StartWith.js +59 -0
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__StartWith.js.map +1 -0
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__StartWithCaseInsensitive.d.ts +34 -0
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__StartWithCaseInsensitive.d.ts.map +1 -0
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__StartWithCaseInsensitive.js +64 -0
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__StartWithCaseInsensitive.js.map +1 -0
- package/lib/stores/dataCube/editor/DataCubeEditorColumnPropertiesPanelState.js +2 -2
- package/lib/stores/dataCube/editor/DataCubeEditorColumnPropertiesPanelState.js.map +1 -1
- package/lib/stores/dataCube/editor/DataCubeEditorFilterPanelState.d.ts +58 -0
- package/lib/stores/dataCube/editor/DataCubeEditorFilterPanelState.d.ts.map +1 -0
- package/lib/stores/dataCube/editor/DataCubeEditorFilterPanelState.js +205 -0
- package/lib/stores/dataCube/editor/DataCubeEditorFilterPanelState.js.map +1 -0
- package/lib/stores/dataCube/editor/DataCubeEditorSortsPanelState.d.ts +4 -4
- package/lib/stores/dataCube/editor/DataCubeEditorSortsPanelState.d.ts.map +1 -1
- package/lib/stores/dataCube/editor/DataCubeEditorSortsPanelState.js +2 -2
- package/lib/stores/dataCube/editor/DataCubeEditorSortsPanelState.js.map +1 -1
- package/lib/stores/dataCube/editor/DataCubeEditorState.d.ts +5 -4
- package/lib/stores/dataCube/editor/DataCubeEditorState.d.ts.map +1 -1
- package/lib/stores/dataCube/editor/DataCubeEditorState.js +9 -7
- package/lib/stores/dataCube/editor/DataCubeEditorState.js.map +1 -1
- package/lib/stores/dataCube/editor/DataCubeMutableConfiguration.d.ts +5 -4
- package/lib/stores/dataCube/editor/DataCubeMutableConfiguration.d.ts.map +1 -1
- package/lib/stores/dataCube/editor/DataCubeMutableConfiguration.js +6 -5
- package/lib/stores/dataCube/editor/DataCubeMutableConfiguration.js.map +1 -1
- package/lib/stores/dataCube/grid/DataCubeGridClientEngine.d.ts +2 -8
- package/lib/stores/dataCube/grid/DataCubeGridClientEngine.d.ts.map +1 -1
- package/lib/stores/dataCube/grid/DataCubeGridClientEngine.js +3 -10
- package/lib/stores/dataCube/grid/DataCubeGridClientEngine.js.map +1 -1
- package/lib/stores/dataCube/grid/DataCubeGridClientExportEngine.js +1 -1
- package/lib/stores/dataCube/grid/DataCubeGridClientExportEngine.js.map +1 -1
- package/lib/stores/dataCube/grid/DataCubeGridConfigurationBuilder.d.ts.map +1 -1
- package/lib/stores/dataCube/grid/DataCubeGridConfigurationBuilder.js +16 -40
- package/lib/stores/dataCube/grid/DataCubeGridConfigurationBuilder.js.map +1 -1
- package/lib/stores/dataCube/grid/DataCubeGridControllerState.d.ts +17 -7
- package/lib/stores/dataCube/grid/DataCubeGridControllerState.d.ts.map +1 -1
- package/lib/stores/dataCube/grid/DataCubeGridControllerState.js +59 -6
- package/lib/stores/dataCube/grid/DataCubeGridControllerState.js.map +1 -1
- package/lib/stores/dataCube/grid/DataCubeGridMenuBuilder.d.ts.map +1 -1
- package/lib/stores/dataCube/grid/DataCubeGridMenuBuilder.js +157 -53
- package/lib/stores/dataCube/grid/DataCubeGridMenuBuilder.js.map +1 -1
- package/lib/stores/dataCube/grid/DataCubeGridQueryBuilder.d.ts +2 -1
- package/lib/stores/dataCube/grid/DataCubeGridQueryBuilder.d.ts.map +1 -1
- package/lib/stores/dataCube/grid/DataCubeGridQueryBuilder.js +7 -7
- package/lib/stores/dataCube/grid/DataCubeGridQueryBuilder.js.map +1 -1
- package/lib/stores/dataCube/grid/DataCubeGridQuerySnapshotBuilder.js +4 -4
- package/lib/stores/dataCube/grid/DataCubeGridQuerySnapshotBuilder.js.map +1 -1
- package/lib/stores/dataCube/grid/DataCubeGridState.d.ts +2 -3
- package/lib/stores/dataCube/grid/DataCubeGridState.d.ts.map +1 -1
- package/lib/stores/dataCube/grid/DataCubeGridState.js +10 -6
- package/lib/stores/dataCube/grid/DataCubeGridState.js.map +1 -1
- package/package.json +10 -9
- package/src/components/dataCube/DataCube.tsx +20 -13
- package/src/components/dataCube/editor/DataCubeEditor.tsx +15 -15
- package/src/components/dataCube/editor/DataCubeEditorCodePanel.tsx +72 -80
- package/src/components/dataCube/editor/DataCubeEditorColumnPropertiesPanel.tsx +1020 -950
- package/src/components/dataCube/editor/DataCubeEditorColumnsPanel.tsx +46 -44
- package/src/components/dataCube/editor/DataCubeEditorColumnsSelector.tsx +1 -1
- package/src/components/dataCube/editor/DataCubeEditorExtendedColumnsPanel.tsx +20 -18
- package/src/components/dataCube/editor/DataCubeEditorFilterPanel.tsx +862 -19
- package/src/components/dataCube/editor/DataCubeEditorGeneralPropertiesPanel.tsx +687 -667
- package/src/components/dataCube/editor/DataCubeEditorHorizontalPivotsPanel.tsx +20 -18
- package/src/components/dataCube/editor/DataCubeEditorSortsPanel.tsx +71 -62
- package/src/components/dataCube/editor/DataCubeEditorVerticalPivotsPanel.tsx +19 -17
- package/src/components/dataCube/grid/DataCubeGrid.tsx +144 -140
- package/src/components/repl/Form.tsx +145 -98
- package/src/stores/dataCube/DataCubeEngine.ts +69 -1
- package/src/stores/dataCube/DataCubeState.ts +13 -9
- package/src/stores/dataCube/core/DataCubeConfiguration.ts +1 -3
- package/src/stores/dataCube/core/DataCubeQueryBuilder.ts +43 -355
- package/src/stores/dataCube/core/DataCubeQueryBuilderUtils.ts +353 -0
- package/src/stores/dataCube/core/DataCubeQueryEngine.ts +46 -21
- package/src/stores/dataCube/core/DataCubeQuerySnapshot.ts +8 -12
- package/src/stores/dataCube/core/DataCubeQuerySnapshotBuilder.ts +25 -194
- package/src/stores/dataCube/core/DataCubeQuerySnapshotBuilderUtils.ts +211 -0
- package/src/stores/dataCube/core/DataCubeQuerySnapshotManager.ts +50 -1
- package/src/stores/dataCube/core/{DataCubeCoreState.ts → DataCubeStaticContentDisplayState.ts} +2 -6
- package/src/stores/dataCube/core/filter/DataCubeQueryFilterEditorState.ts +227 -0
- package/src/stores/dataCube/core/filter/DataCubeQueryFilterOperation.ts +105 -0
- package/src/stores/dataCube/core/filter/DataCubeQueryFilterOperation__Contain.tsx +87 -0
- package/src/stores/dataCube/core/filter/DataCubeQueryFilterOperation__ContainCaseInsensitive.tsx +93 -0
- package/src/stores/dataCube/core/filter/DataCubeQueryFilterOperation__EndWith.tsx +87 -0
- package/src/stores/dataCube/core/filter/DataCubeQueryFilterOperation__EndWithCaseInsensitive.tsx +93 -0
- package/src/stores/dataCube/core/filter/DataCubeQueryFilterOperation__Equal.tsx +159 -0
- package/src/stores/dataCube/core/filter/DataCubeQueryFilterOperation__EqualCaseInsensitive.tsx +93 -0
- package/src/stores/dataCube/core/filter/DataCubeQueryFilterOperation__EqualCaseInsensitiveColumn.tsx +93 -0
- package/src/stores/dataCube/core/filter/DataCubeQueryFilterOperation__EqualColumn.tsx +89 -0
- package/src/stores/dataCube/core/filter/DataCubeQueryFilterOperation__GreaterThan.tsx +87 -0
- package/src/stores/dataCube/core/filter/DataCubeQueryFilterOperation__GreaterThanColumn.tsx +89 -0
- package/src/stores/dataCube/core/filter/DataCubeQueryFilterOperation__GreaterThanOrEqual.tsx +87 -0
- package/src/stores/dataCube/core/filter/DataCubeQueryFilterOperation__GreaterThanOrEqualColumn.tsx +89 -0
- package/src/stores/dataCube/core/filter/DataCubeQueryFilterOperation__IsNotNull.tsx +83 -0
- package/src/stores/dataCube/core/filter/DataCubeQueryFilterOperation__IsNull.tsx +80 -0
- package/src/stores/dataCube/core/filter/DataCubeQueryFilterOperation__LessThan.tsx +87 -0
- package/src/stores/dataCube/core/filter/DataCubeQueryFilterOperation__LessThanColumn.tsx +89 -0
- package/src/stores/dataCube/core/filter/DataCubeQueryFilterOperation__LessThanOrEqual.tsx +87 -0
- package/src/stores/dataCube/core/filter/DataCubeQueryFilterOperation__LessThanOrEqualColumn.tsx +89 -0
- package/src/stores/dataCube/core/filter/DataCubeQueryFilterOperation__NotContain.tsx +90 -0
- package/src/stores/dataCube/core/filter/DataCubeQueryFilterOperation__NotEndWith.tsx +90 -0
- package/src/stores/dataCube/core/filter/DataCubeQueryFilterOperation__NotEqual.tsx +90 -0
- package/src/stores/dataCube/core/filter/DataCubeQueryFilterOperation__NotEqualCaseInsensitive.tsx +96 -0
- package/src/stores/dataCube/core/filter/DataCubeQueryFilterOperation__NotEqualCaseInsensitiveColumn.tsx +96 -0
- package/src/stores/dataCube/core/filter/DataCubeQueryFilterOperation__NotEqualColumn.tsx +92 -0
- package/src/stores/dataCube/core/filter/DataCubeQueryFilterOperation__NotStartWith.tsx +90 -0
- package/src/stores/dataCube/core/filter/DataCubeQueryFilterOperation__StartWith.tsx +87 -0
- package/src/stores/dataCube/core/filter/DataCubeQueryFilterOperation__StartWithCaseInsensitive.tsx +93 -0
- package/src/stores/dataCube/editor/DataCubeEditorColumnPropertiesPanelState.ts +2 -2
- package/src/stores/dataCube/editor/DataCubeEditorFilterPanelState.ts +295 -0
- package/src/stores/dataCube/editor/DataCubeEditorSortsPanelState.ts +5 -9
- package/src/stores/dataCube/editor/DataCubeEditorState.tsx +9 -8
- package/src/stores/dataCube/editor/DataCubeMutableConfiguration.ts +10 -10
- package/src/stores/dataCube/grid/DataCubeGridClientEngine.ts +22 -23
- package/src/stores/dataCube/grid/DataCubeGridClientExportEngine.ts +1 -1
- package/src/stores/dataCube/grid/DataCubeGridConfigurationBuilder.tsx +16 -43
- package/src/stores/dataCube/grid/DataCubeGridControllerState.ts +91 -10
- package/src/stores/dataCube/grid/DataCubeGridMenuBuilder.tsx +218 -53
- package/src/stores/dataCube/grid/DataCubeGridQueryBuilder.ts +66 -61
- package/src/stores/dataCube/grid/DataCubeGridQuerySnapshotBuilder.ts +4 -4
- package/src/stores/dataCube/grid/DataCubeGridState.ts +10 -6
- package/tsconfig.json +33 -2
- package/lib/stores/dataCube/core/DataCubeCoreState.d.ts.map +0 -1
- package/lib/stores/dataCube/core/DataCubeCoreState.js.map +0 -1
- package/lib/stores/dataCube/core/DataCubeQuerySnapshotSubscriber.d.ts +0 -30
- package/lib/stores/dataCube/core/DataCubeQuerySnapshotSubscriber.d.ts.map +0 -1
- package/lib/stores/dataCube/core/DataCubeQuerySnapshotSubscriber.js +0 -41
- package/lib/stores/dataCube/core/DataCubeQuerySnapshotSubscriber.js.map +0 -1
- package/src/stores/dataCube/core/DataCubeQuerySnapshotSubscriber.ts +0 -62
|
@@ -0,0 +1,353 @@
|
|
|
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
|
+
/***************************************************************************************
|
|
18
|
+
* [CORE]
|
|
19
|
+
*
|
|
20
|
+
* These are utilities used to build the executable query from the query snapshot.
|
|
21
|
+
* The executable query is then used to fetch data.
|
|
22
|
+
***************************************************************************************/
|
|
23
|
+
|
|
24
|
+
import {
|
|
25
|
+
PRIMITIVE_TYPE,
|
|
26
|
+
V1_AppliedFunction,
|
|
27
|
+
V1_AppliedProperty,
|
|
28
|
+
V1_CBoolean,
|
|
29
|
+
V1_CDateTime,
|
|
30
|
+
V1_CDecimal,
|
|
31
|
+
V1_CFloat,
|
|
32
|
+
V1_CInteger,
|
|
33
|
+
V1_CStrictDate,
|
|
34
|
+
V1_CStrictTime,
|
|
35
|
+
V1_CString,
|
|
36
|
+
V1_ClassInstance,
|
|
37
|
+
V1_ClassInstanceType,
|
|
38
|
+
V1_ColSpec,
|
|
39
|
+
V1_ColSpecArray,
|
|
40
|
+
V1_Collection,
|
|
41
|
+
V1_Lambda,
|
|
42
|
+
V1_Multiplicity,
|
|
43
|
+
V1_PackageableElementPtr,
|
|
44
|
+
type V1_PrimitiveValueSpecification,
|
|
45
|
+
V1_Variable,
|
|
46
|
+
V1_deserializeValueSpecification,
|
|
47
|
+
extractElementNameFromPath as _functionName,
|
|
48
|
+
type V1_ValueSpecification,
|
|
49
|
+
} from '@finos/legend-graph';
|
|
50
|
+
import {
|
|
51
|
+
type DataCubeQuerySnapshotFilterCondition,
|
|
52
|
+
type DataCubeQuerySnapshotFilter,
|
|
53
|
+
_findCol,
|
|
54
|
+
type DataCubeQuerySnapshotColumn,
|
|
55
|
+
type DataCubeQuerySnapshotAggregateColumn,
|
|
56
|
+
} from './DataCubeQuerySnapshot.js';
|
|
57
|
+
import {
|
|
58
|
+
guaranteeNonNullable,
|
|
59
|
+
guaranteeIsString,
|
|
60
|
+
guaranteeIsBoolean,
|
|
61
|
+
guaranteeIsNumber,
|
|
62
|
+
UnsupportedOperationError,
|
|
63
|
+
guaranteeType,
|
|
64
|
+
type PlainObject,
|
|
65
|
+
} from '@finos/legend-shared';
|
|
66
|
+
import {
|
|
67
|
+
DataCubeFunction,
|
|
68
|
+
DEFAULT_LAMBDA_VARIABLE_NAME,
|
|
69
|
+
INTERNAL__FILLER_COUNT_AGG_COLUMN_NAME,
|
|
70
|
+
DataCubeQueryFilterGroupOperator,
|
|
71
|
+
DataCubeAggregateOperator,
|
|
72
|
+
type DataCubeOperationValue,
|
|
73
|
+
DataCubeOperationAdvancedValueType,
|
|
74
|
+
} from './DataCubeQueryEngine.js';
|
|
75
|
+
import type { DataCubeQueryFilterOperation } from './filter/DataCubeQueryFilterOperation.js';
|
|
76
|
+
|
|
77
|
+
// --------------------------------- UTILITIES ---------------------------------
|
|
78
|
+
|
|
79
|
+
export function _deserializeToLambda(json: PlainObject<V1_Lambda>) {
|
|
80
|
+
return guaranteeType(V1_deserializeValueSpecification(json, []), V1_Lambda);
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
export function _var(name?: string | undefined) {
|
|
84
|
+
const variable = new V1_Variable();
|
|
85
|
+
variable.name = name ?? DEFAULT_LAMBDA_VARIABLE_NAME;
|
|
86
|
+
return variable;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
export function _property(name: string, variable?: V1_Variable | undefined) {
|
|
90
|
+
const property = new V1_AppliedProperty();
|
|
91
|
+
property.property = name;
|
|
92
|
+
property.parameters.push(variable ?? _var());
|
|
93
|
+
return property;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
export function _lambda(
|
|
97
|
+
parameters: V1_Variable[],
|
|
98
|
+
body: V1_ValueSpecification[],
|
|
99
|
+
) {
|
|
100
|
+
const lambda = new V1_Lambda();
|
|
101
|
+
lambda.parameters = parameters;
|
|
102
|
+
lambda.body = body;
|
|
103
|
+
return lambda;
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
export { _functionName };
|
|
107
|
+
export function _function(
|
|
108
|
+
functionName: string,
|
|
109
|
+
parameters: V1_ValueSpecification[],
|
|
110
|
+
) {
|
|
111
|
+
const func = new V1_AppliedFunction();
|
|
112
|
+
func.function = functionName;
|
|
113
|
+
func.parameters = parameters;
|
|
114
|
+
return func;
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
export function _collection(values: V1_ValueSpecification[]) {
|
|
118
|
+
const collection = new V1_Collection();
|
|
119
|
+
collection.multiplicity = new V1_Multiplicity(values.length, values.length);
|
|
120
|
+
collection.values = values;
|
|
121
|
+
return collection;
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
export function _primitiveValue(type: string, value: unknown) {
|
|
125
|
+
const _val = <T extends V1_PrimitiveValueSpecification & { value: unknown }>(
|
|
126
|
+
primitiveValue: T,
|
|
127
|
+
val: unknown,
|
|
128
|
+
): T => {
|
|
129
|
+
primitiveValue.value = val;
|
|
130
|
+
return primitiveValue;
|
|
131
|
+
};
|
|
132
|
+
switch (type) {
|
|
133
|
+
case PRIMITIVE_TYPE.STRING:
|
|
134
|
+
return _val(new V1_CString(), guaranteeIsString(value));
|
|
135
|
+
case PRIMITIVE_TYPE.BOOLEAN:
|
|
136
|
+
return _val(new V1_CBoolean(), guaranteeIsBoolean(value));
|
|
137
|
+
case PRIMITIVE_TYPE.NUMBER:
|
|
138
|
+
case PRIMITIVE_TYPE.DECIMAL:
|
|
139
|
+
return _val(new V1_CDecimal(), guaranteeIsNumber(value));
|
|
140
|
+
case PRIMITIVE_TYPE.INTEGER:
|
|
141
|
+
return _val(new V1_CInteger(), guaranteeIsNumber(value));
|
|
142
|
+
case PRIMITIVE_TYPE.FLOAT:
|
|
143
|
+
return _val(new V1_CFloat(), guaranteeIsNumber(value));
|
|
144
|
+
case PRIMITIVE_TYPE.DATE:
|
|
145
|
+
case PRIMITIVE_TYPE.STRICTDATE:
|
|
146
|
+
return _val(new V1_CStrictDate(), guaranteeIsString(value));
|
|
147
|
+
case PRIMITIVE_TYPE.DATETIME:
|
|
148
|
+
return _val(new V1_CDateTime(), guaranteeIsString(value));
|
|
149
|
+
case PRIMITIVE_TYPE.STRICTTIME:
|
|
150
|
+
return _val(new V1_CStrictTime(), guaranteeIsString(value));
|
|
151
|
+
default:
|
|
152
|
+
throw new UnsupportedOperationError(`Unsupported value type '${type}'`);
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
export function _elementPtr(fullPath: string) {
|
|
157
|
+
const ptr = new V1_PackageableElementPtr();
|
|
158
|
+
ptr.fullPath = fullPath;
|
|
159
|
+
return ptr;
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
function _classInstance(type: string, value: unknown) {
|
|
163
|
+
const instance = new V1_ClassInstance();
|
|
164
|
+
instance.type = type;
|
|
165
|
+
instance.value = value;
|
|
166
|
+
return instance;
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
export function _colSpec(
|
|
170
|
+
name: string,
|
|
171
|
+
function1?: V1_Lambda | undefined,
|
|
172
|
+
function2?: V1_Lambda | undefined,
|
|
173
|
+
) {
|
|
174
|
+
const colSpec = new V1_ColSpec();
|
|
175
|
+
colSpec.name = name;
|
|
176
|
+
colSpec.function1 = function1;
|
|
177
|
+
colSpec.function2 = function2;
|
|
178
|
+
return colSpec;
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
export function _value(
|
|
182
|
+
value: DataCubeOperationValue,
|
|
183
|
+
variable?: V1_Variable | undefined,
|
|
184
|
+
) {
|
|
185
|
+
switch (value.type) {
|
|
186
|
+
case PRIMITIVE_TYPE.STRING:
|
|
187
|
+
case PRIMITIVE_TYPE.BOOLEAN:
|
|
188
|
+
case PRIMITIVE_TYPE.NUMBER:
|
|
189
|
+
case PRIMITIVE_TYPE.DECIMAL:
|
|
190
|
+
case PRIMITIVE_TYPE.INTEGER:
|
|
191
|
+
case PRIMITIVE_TYPE.FLOAT:
|
|
192
|
+
case PRIMITIVE_TYPE.DATE:
|
|
193
|
+
case PRIMITIVE_TYPE.DATETIME:
|
|
194
|
+
case PRIMITIVE_TYPE.STRICTDATE:
|
|
195
|
+
case PRIMITIVE_TYPE.STRICTTIME: {
|
|
196
|
+
if (Array.isArray(value.value)) {
|
|
197
|
+
return _collection(
|
|
198
|
+
value.value.map((val) => _primitiveValue(value.type, val)),
|
|
199
|
+
);
|
|
200
|
+
}
|
|
201
|
+
return _primitiveValue(value.type, value.value);
|
|
202
|
+
}
|
|
203
|
+
case DataCubeOperationAdvancedValueType.COLUMN:
|
|
204
|
+
return _property(guaranteeIsString(value.value), variable);
|
|
205
|
+
default:
|
|
206
|
+
throw new UnsupportedOperationError(
|
|
207
|
+
`Unsupported value type '${value.type}'`,
|
|
208
|
+
);
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
function _aggFunctionName(operation: string) {
|
|
213
|
+
switch (operation) {
|
|
214
|
+
case DataCubeAggregateOperator.SUM:
|
|
215
|
+
return DataCubeFunction.SUM;
|
|
216
|
+
case DataCubeAggregateOperator.AVERAGE:
|
|
217
|
+
return DataCubeFunction.AVERAGE;
|
|
218
|
+
case DataCubeAggregateOperator.COUNT:
|
|
219
|
+
return DataCubeFunction.COUNT;
|
|
220
|
+
case DataCubeAggregateOperator.MIN:
|
|
221
|
+
return DataCubeFunction.MIN;
|
|
222
|
+
case DataCubeAggregateOperator.MAX:
|
|
223
|
+
return DataCubeFunction.MAX;
|
|
224
|
+
case DataCubeAggregateOperator.FIRST:
|
|
225
|
+
return DataCubeFunction.FIRST;
|
|
226
|
+
case DataCubeAggregateOperator.LAST:
|
|
227
|
+
return DataCubeFunction.LAST;
|
|
228
|
+
case DataCubeAggregateOperator.VAR_POP:
|
|
229
|
+
return DataCubeFunction.VAR_POP;
|
|
230
|
+
case DataCubeAggregateOperator.VAR_SAMP:
|
|
231
|
+
return DataCubeFunction.VAR_SAMP;
|
|
232
|
+
case DataCubeAggregateOperator.STDDEV_POP:
|
|
233
|
+
return DataCubeFunction.STDDEV_POP;
|
|
234
|
+
case DataCubeAggregateOperator.STDDEV_SAMP:
|
|
235
|
+
return DataCubeFunction.STDDEV_SAMP;
|
|
236
|
+
default:
|
|
237
|
+
throw new UnsupportedOperationError(
|
|
238
|
+
`Unsupported aggregate operation '${operation}'`,
|
|
239
|
+
);
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
function _agg(
|
|
244
|
+
agg: DataCubeQuerySnapshotAggregateColumn,
|
|
245
|
+
variable?: V1_Variable | undefined,
|
|
246
|
+
) {
|
|
247
|
+
const parameters = agg.parameters.map((param) => _value(param));
|
|
248
|
+
return _function(_aggFunctionName(agg.operation), [
|
|
249
|
+
variable ?? _var(),
|
|
250
|
+
...parameters,
|
|
251
|
+
]);
|
|
252
|
+
}
|
|
253
|
+
|
|
254
|
+
export function _not(fn: V1_AppliedFunction) {
|
|
255
|
+
return _function(DataCubeFunction.NOT, [fn]);
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
// --------------------------------- BUILDING BLOCKS ---------------------------------
|
|
259
|
+
|
|
260
|
+
export function _col(
|
|
261
|
+
name: string,
|
|
262
|
+
function1?: V1_Lambda | undefined,
|
|
263
|
+
function2?: V1_Lambda | undefined,
|
|
264
|
+
) {
|
|
265
|
+
return _classInstance(
|
|
266
|
+
V1_ClassInstanceType.COL_SPEC,
|
|
267
|
+
_colSpec(name, function1, function2),
|
|
268
|
+
);
|
|
269
|
+
}
|
|
270
|
+
|
|
271
|
+
export function _cols(colSpecs: V1_ColSpec[]) {
|
|
272
|
+
const colSpecArray = new V1_ColSpecArray();
|
|
273
|
+
colSpecArray.colSpecs = colSpecs;
|
|
274
|
+
return _classInstance(V1_ClassInstanceType.COL_SPEC_ARRAY, colSpecArray);
|
|
275
|
+
}
|
|
276
|
+
|
|
277
|
+
export function _groupByAggCols(
|
|
278
|
+
columns: DataCubeQuerySnapshotAggregateColumn[],
|
|
279
|
+
) {
|
|
280
|
+
const variable = _var();
|
|
281
|
+
return columns.length
|
|
282
|
+
? columns.map((agg) =>
|
|
283
|
+
_colSpec(
|
|
284
|
+
agg.name,
|
|
285
|
+
_lambda([variable], [_property(agg.name, variable)]),
|
|
286
|
+
_lambda([variable], [_agg(agg)]),
|
|
287
|
+
),
|
|
288
|
+
)
|
|
289
|
+
: // if no aggregates are specified, add a dummy count() aggregate to satisfy compiler
|
|
290
|
+
[
|
|
291
|
+
_colSpec(
|
|
292
|
+
INTERNAL__FILLER_COUNT_AGG_COLUMN_NAME,
|
|
293
|
+
_lambda([variable], [variable]),
|
|
294
|
+
_lambda([variable], [_function(DataCubeFunction.COUNT, [variable])]),
|
|
295
|
+
),
|
|
296
|
+
];
|
|
297
|
+
}
|
|
298
|
+
|
|
299
|
+
export function _filter(
|
|
300
|
+
filter: DataCubeQuerySnapshotFilter | DataCubeQuerySnapshotFilterCondition,
|
|
301
|
+
filterOperations: DataCubeQueryFilterOperation[],
|
|
302
|
+
) {
|
|
303
|
+
if ('groupOperator' in filter) {
|
|
304
|
+
const filterGroup = filter;
|
|
305
|
+
const groupOperation =
|
|
306
|
+
filterGroup.groupOperator === DataCubeQueryFilterGroupOperator.AND
|
|
307
|
+
? DataCubeFunction.AND
|
|
308
|
+
: DataCubeFunction.OR;
|
|
309
|
+
let conditions: V1_ValueSpecification[] = [];
|
|
310
|
+
filterGroup.conditions.forEach((condition) => {
|
|
311
|
+
conditions.push(_filter(condition, filterOperations));
|
|
312
|
+
// NOTE: a group operation (and/or) function can only have 2 parameters, so we
|
|
313
|
+
// have to breakdown the group operation into nested group functions
|
|
314
|
+
if (conditions.length === 2) {
|
|
315
|
+
conditions = [_function(groupOperation, conditions)];
|
|
316
|
+
}
|
|
317
|
+
});
|
|
318
|
+
return guaranteeNonNullable(conditions[0]);
|
|
319
|
+
} else {
|
|
320
|
+
const filterCondition = filter;
|
|
321
|
+
const operation = filterOperations.find(
|
|
322
|
+
(op) => op.operator === filterCondition.operation,
|
|
323
|
+
);
|
|
324
|
+
const condition = operation?.buildConditionExpression(filterCondition);
|
|
325
|
+
if (!condition) {
|
|
326
|
+
throw new UnsupportedOperationError(
|
|
327
|
+
`Unsupported filter operation '${filterCondition.operation}'`,
|
|
328
|
+
);
|
|
329
|
+
}
|
|
330
|
+
return condition;
|
|
331
|
+
}
|
|
332
|
+
}
|
|
333
|
+
|
|
334
|
+
export function _groupByExtend(
|
|
335
|
+
columns: DataCubeQuerySnapshotColumn[],
|
|
336
|
+
columnsUsedInGroupBy: DataCubeQuerySnapshotColumn[],
|
|
337
|
+
) {
|
|
338
|
+
const missingCols = columns.filter(
|
|
339
|
+
(col) => !_findCol(columnsUsedInGroupBy, col.name),
|
|
340
|
+
);
|
|
341
|
+
return missingCols.length
|
|
342
|
+
? _function(_functionName(DataCubeFunction.EXTEND), [
|
|
343
|
+
_cols(
|
|
344
|
+
missingCols.map((col) =>
|
|
345
|
+
_colSpec(
|
|
346
|
+
col.name,
|
|
347
|
+
_lambda([_var()], [_primitiveValue(PRIMITIVE_TYPE.STRING, '')]),
|
|
348
|
+
),
|
|
349
|
+
),
|
|
350
|
+
),
|
|
351
|
+
])
|
|
352
|
+
: undefined;
|
|
353
|
+
}
|
|
@@ -39,18 +39,19 @@ export enum DataCubeFunction {
|
|
|
39
39
|
|
|
40
40
|
// filter
|
|
41
41
|
AND = 'meta::pure::functions::boolean::and',
|
|
42
|
-
NOT = 'meta::pure::functions::boolean::not',
|
|
43
42
|
OR = 'meta::pure::functions::boolean::or',
|
|
43
|
+
NOT = 'meta::pure::functions::boolean::not',
|
|
44
|
+
TO_LOWERCASE = 'meta::pure::functions::string::toLower',
|
|
44
45
|
|
|
45
46
|
CONTAINS = 'meta::pure::functions::string::contains',
|
|
46
47
|
ENDS_WITH = 'meta::pure::functions::string::endsWith',
|
|
47
48
|
EQUAL = 'meta::pure::functions::boolean::equal',
|
|
48
49
|
GREATER_THAN = 'meta::pure::functions::boolean::greaterThan',
|
|
49
|
-
|
|
50
|
+
GREATER_THAN_OR_EQUAL = 'meta::pure::functions::boolean::greaterThanEqual',
|
|
50
51
|
IN = 'meta::pure::functions::collection::in',
|
|
51
52
|
IS_EMPTY = 'meta::pure::functions::collection::isEmpty',
|
|
52
53
|
LESS_THAN = 'meta::pure::functions::boolean::lessThan',
|
|
53
|
-
|
|
54
|
+
LESS_THAN_OR_EQUAL = 'meta::pure::functions::boolean::lessThanEqual',
|
|
54
55
|
STARTS_WITH = 'meta::pure::functions::string::startsWith',
|
|
55
56
|
|
|
56
57
|
// aggregate
|
|
@@ -155,15 +156,17 @@ export enum DataCubeColumnKind {
|
|
|
155
156
|
DIMENSION = 'Dimension',
|
|
156
157
|
}
|
|
157
158
|
|
|
158
|
-
|
|
159
|
-
|
|
159
|
+
export enum DataCubeOperationAdvancedValueType {
|
|
160
|
+
COLUMN = 'COLUMN',
|
|
161
|
+
// PARAMETER
|
|
162
|
+
}
|
|
160
163
|
|
|
161
164
|
export type DataCubeOperationValue = {
|
|
162
165
|
value: unknown;
|
|
163
166
|
type: string;
|
|
164
167
|
};
|
|
165
168
|
|
|
166
|
-
export enum
|
|
169
|
+
export enum DataCubeAggregateOperator {
|
|
167
170
|
SUM = 'sum',
|
|
168
171
|
AVERAGE = 'avg',
|
|
169
172
|
COUNT = 'count',
|
|
@@ -197,27 +200,49 @@ export enum DataCubeAggregateOperation {
|
|
|
197
200
|
// custom
|
|
198
201
|
}
|
|
199
202
|
|
|
200
|
-
export enum
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
203
|
+
export enum DataCubeQueryFilterOperator {
|
|
204
|
+
LESS_THAN = '<', // DONE
|
|
205
|
+
LESS_THAN_OR_EQUAL = '<=', // DONE
|
|
206
|
+
EQUAL = '=', // DONE
|
|
207
|
+
NOT_EQUAL = '!=', // DONE
|
|
208
|
+
GREATER_THAN = '>', // DONE
|
|
209
|
+
GREATER_THAN_OR_EQUAL = '>=', // DONE
|
|
210
|
+
IN = 'in',
|
|
211
|
+
NOT_IN = 'not in',
|
|
212
|
+
IS_NULL = 'is null', // DONE
|
|
213
|
+
IS_NOT_NULL = 'is not null', // DONE
|
|
214
|
+
// string ONLY
|
|
215
|
+
EQUAL_CASE_INSENSITIVE = '= (case-insensitive)', // DONE
|
|
216
|
+
NOT_EQUAL_CASE_INSENSITIVE = '!= (case-insensitive)', // DONE
|
|
217
|
+
IN_CASE_INSENSITIVE = 'in (case-insensitive)',
|
|
218
|
+
NOT_IN_CASE_INSENSITIVE = 'not in (case-insensitive)',
|
|
219
|
+
CONTAIN = 'contains', // DONE
|
|
220
|
+
CONTAIN_CASE_INSENSITIVE = 'contains (case-insensitive)', // DONE
|
|
221
|
+
NOT_CONTAIN = 'does not contain', // DONE
|
|
222
|
+
START_WITH = 'starts with', // DONE
|
|
223
|
+
START_WITH_CASE_INSENSITIVE = 'starts with (case-insensitive)', // DONE
|
|
224
|
+
NOT_START_WITH = 'does not start with', // DONE
|
|
225
|
+
END_WITH = 'ends with', // DONE
|
|
226
|
+
END_WITH_CASE_INSENSITIVE = 'ends with (case-insensitive)', // DONE
|
|
227
|
+
NOT_END_WITH = 'does not end with', // DONE
|
|
228
|
+
// column
|
|
229
|
+
LESS_THAN_COLUMN = '< value in column', // DONE
|
|
230
|
+
LESS_THAN_OR_EQUAL_COLUMN = '<= value in column', // DONE
|
|
231
|
+
EQUAL_COLUMN = '= value in column', // DONE
|
|
232
|
+
EQUAL_CASE_INSENSITIVE_COLUMN = '= (case-insensitive) value in column', // DONE
|
|
233
|
+
NOT_EQUAL_COLUMN = '!= value in column', // DONE
|
|
234
|
+
NOT_EQUAL_CASE_INSENSITIVE_COLUMN = '!= (case-insensitive) value in column', // DONE
|
|
235
|
+
GREATER_THAN_COLUMN = '> value in column', // DONE
|
|
236
|
+
GREATER_THAN_OR_EQUAL_COLUMN = '>= value in column', // DONE
|
|
237
|
+
// TODO?: having, having in aggregate, between
|
|
213
238
|
}
|
|
214
239
|
|
|
215
|
-
export enum
|
|
240
|
+
export enum DataCubeQueryFilterGroupOperator {
|
|
216
241
|
AND = 'and',
|
|
217
242
|
OR = 'or',
|
|
218
243
|
}
|
|
219
244
|
|
|
220
|
-
export enum
|
|
245
|
+
export enum DataCubeQuerySortOperator {
|
|
221
246
|
ASCENDING = 'ascending',
|
|
222
247
|
DESCENDING = 'descending',
|
|
223
248
|
}
|
|
@@ -25,26 +25,22 @@ import {
|
|
|
25
25
|
type PlainObject,
|
|
26
26
|
type Writable,
|
|
27
27
|
} from '@finos/legend-shared';
|
|
28
|
-
import type {
|
|
29
|
-
DataCubeAggregateOperation,
|
|
30
|
-
DataCubeOperationValue,
|
|
31
|
-
DataCubeQueryFilterGroupOperation,
|
|
32
|
-
DataCubeQueryFilterOperation,
|
|
33
|
-
DataCubeQuerySortOperation,
|
|
34
|
-
} from './DataCubeQueryEngine.js';
|
|
28
|
+
import type { DataCubeOperationValue } from './DataCubeQueryEngine.js';
|
|
35
29
|
|
|
36
30
|
export type DataCubeQuerySnapshotFilterCondition =
|
|
37
31
|
DataCubeQuerySnapshotColumn & {
|
|
38
32
|
value: DataCubeOperationValue | undefined;
|
|
39
|
-
operation:
|
|
33
|
+
operation: string;
|
|
34
|
+
not?: boolean | undefined;
|
|
40
35
|
};
|
|
41
36
|
|
|
42
37
|
export type DataCubeQuerySnapshotFilter = {
|
|
43
|
-
|
|
38
|
+
groupOperator: string;
|
|
44
39
|
conditions: (
|
|
45
40
|
| DataCubeQuerySnapshotFilterCondition
|
|
46
41
|
| DataCubeQuerySnapshotFilter
|
|
47
42
|
)[];
|
|
43
|
+
not?: boolean | undefined;
|
|
48
44
|
};
|
|
49
45
|
|
|
50
46
|
export type DataCubeQuerySnapshotColumn = {
|
|
@@ -59,12 +55,12 @@ export type DataCubeQuerySnapshotExtendedColumn =
|
|
|
59
55
|
};
|
|
60
56
|
|
|
61
57
|
export type DataCubeQuerySnapshotSortColumn = DataCubeQuerySnapshotColumn & {
|
|
62
|
-
operation:
|
|
58
|
+
operation: string;
|
|
63
59
|
};
|
|
64
60
|
|
|
65
61
|
export type DataCubeQuerySnapshotAggregateColumn =
|
|
66
62
|
DataCubeQuerySnapshotColumn & {
|
|
67
|
-
operation:
|
|
63
|
+
operation: string;
|
|
68
64
|
parameters: DataCubeOperationValue[];
|
|
69
65
|
};
|
|
70
66
|
|
|
@@ -156,9 +152,9 @@ export class DataCubeQuerySnapshot {
|
|
|
156
152
|
*/
|
|
157
153
|
stageCols(stage: DataCubeQuerySnapshotStage) {
|
|
158
154
|
switch (stage) {
|
|
159
|
-
case 'filter':
|
|
160
155
|
case 'leaf-extend':
|
|
161
156
|
return [...this.data.sourceColumns];
|
|
157
|
+
case 'filter':
|
|
162
158
|
case 'select':
|
|
163
159
|
return [...this.data.sourceColumns, ...this.data.leafExtendedColumns];
|
|
164
160
|
case 'aggregation':
|