@finos/legend-data-cube 0.0.43 → 0.0.44
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/docs/column-configuration.kind.md +2 -0
- package/lib/__lib__/DataCubeSetting.d.ts +1 -0
- package/lib/__lib__/DataCubeSetting.d.ts.map +1 -1
- package/lib/__lib__/DataCubeSetting.js +1 -0
- package/lib/__lib__/DataCubeSetting.js.map +1 -1
- package/lib/components/view/editor/DataCubeEditorColumnPropertiesPanel.d.ts.map +1 -1
- package/lib/components/view/editor/DataCubeEditorColumnPropertiesPanel.js +12 -6
- package/lib/components/view/editor/DataCubeEditorColumnPropertiesPanel.js.map +1 -1
- package/lib/components/view/editor/DataCubeEditorColumnSelector.d.ts +7 -1
- package/lib/components/view/editor/DataCubeEditorColumnSelector.d.ts.map +1 -1
- package/lib/components/view/editor/DataCubeEditorColumnSelector.js +23 -1
- package/lib/components/view/editor/DataCubeEditorColumnSelector.js.map +1 -1
- package/lib/components/view/editor/DataCubeEditorColumnsPanel.d.ts.map +1 -1
- package/lib/components/view/editor/DataCubeEditorColumnsPanel.js +2 -1
- package/lib/components/view/editor/DataCubeEditorColumnsPanel.js.map +1 -1
- package/lib/components/view/editor/DataCubeEditorHorizontalPivotsPanel.d.ts.map +1 -1
- package/lib/components/view/editor/DataCubeEditorHorizontalPivotsPanel.js +2 -4
- package/lib/components/view/editor/DataCubeEditorHorizontalPivotsPanel.js.map +1 -1
- package/lib/components/view/editor/DataCubeEditorSortsPanel.d.ts.map +1 -1
- package/lib/components/view/editor/DataCubeEditorSortsPanel.js +4 -25
- package/lib/components/view/editor/DataCubeEditorSortsPanel.js.map +1 -1
- package/lib/components/view/filter/DataCubeFilterEditor.d.ts.map +1 -1
- package/lib/components/view/filter/DataCubeFilterEditor.js +2 -1
- package/lib/components/view/filter/DataCubeFilterEditor.js.map +1 -1
- package/lib/index.css +2 -2
- package/lib/index.css.map +1 -1
- package/lib/package.json +5 -5
- package/lib/stores/core/DataCubeConfigurationBuilder.d.ts +4 -3
- package/lib/stores/core/DataCubeConfigurationBuilder.d.ts.map +1 -1
- package/lib/stores/core/DataCubeConfigurationBuilder.js +59 -3
- package/lib/stores/core/DataCubeConfigurationBuilder.js.map +1 -1
- package/lib/stores/core/DataCubeEngine.d.ts +2 -0
- package/lib/stores/core/DataCubeEngine.d.ts.map +1 -1
- package/lib/stores/core/DataCubeEngine.js +1 -2
- package/lib/stores/core/DataCubeEngine.js.map +1 -1
- package/lib/stores/core/DataCubeQueryBuilder.d.ts.map +1 -1
- package/lib/stores/core/DataCubeQueryBuilder.js +12 -22
- package/lib/stores/core/DataCubeQueryBuilder.js.map +1 -1
- package/lib/stores/core/DataCubeQueryBuilderUtils.d.ts +6 -5
- package/lib/stores/core/DataCubeQueryBuilderUtils.d.ts.map +1 -1
- package/lib/stores/core/DataCubeQueryBuilderUtils.js +59 -30
- package/lib/stores/core/DataCubeQueryBuilderUtils.js.map +1 -1
- package/lib/stores/core/DataCubeQueryEngine.d.ts +14 -7
- package/lib/stores/core/DataCubeQueryEngine.d.ts.map +1 -1
- package/lib/stores/core/DataCubeQueryEngine.js +76 -45
- package/lib/stores/core/DataCubeQueryEngine.js.map +1 -1
- package/lib/stores/core/DataCubeQuerySnapshot.d.ts +11 -0
- package/lib/stores/core/DataCubeQuerySnapshot.d.ts.map +1 -1
- package/lib/stores/core/DataCubeQuerySnapshot.js.map +1 -1
- package/lib/stores/core/DataCubeQuerySnapshotBuilder.d.ts +2 -3
- package/lib/stores/core/DataCubeQuerySnapshotBuilder.d.ts.map +1 -1
- package/lib/stores/core/DataCubeQuerySnapshotBuilder.js +226 -128
- package/lib/stores/core/DataCubeQuerySnapshotBuilder.js.map +1 -1
- package/lib/stores/core/DataCubeQuerySnapshotBuilderUtils.d.ts +36 -7
- package/lib/stores/core/DataCubeQuerySnapshotBuilderUtils.d.ts.map +1 -1
- package/lib/stores/core/DataCubeQuerySnapshotBuilderUtils.js +359 -126
- package/lib/stores/core/DataCubeQuerySnapshotBuilderUtils.js.map +1 -1
- package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation.d.ts +10 -2
- package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation.d.ts.map +1 -1
- package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation.js +15 -6
- package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation.js.map +1 -1
- package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__Average.d.ts +6 -2
- package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__Average.d.ts.map +1 -1
- package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__Average.js +13 -3
- package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__Average.js.map +1 -1
- package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__Count.d.ts +6 -2
- package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__Count.d.ts.map +1 -1
- package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__Count.js +13 -3
- package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__Count.js.map +1 -1
- package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__First.d.ts +6 -2
- package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__First.d.ts.map +1 -1
- package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__First.js +13 -3
- package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__First.js.map +1 -1
- package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__JoinStrings.d.ts +6 -2
- package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__JoinStrings.d.ts.map +1 -1
- package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__JoinStrings.js +23 -10
- package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__JoinStrings.js.map +1 -1
- package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__Last.d.ts +6 -2
- package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__Last.d.ts.map +1 -1
- package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__Last.js +13 -3
- package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__Last.js.map +1 -1
- package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__Max.d.ts +6 -2
- package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__Max.d.ts.map +1 -1
- package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__Max.js +13 -3
- package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__Max.js.map +1 -1
- package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__Min.d.ts +6 -2
- package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__Min.d.ts.map +1 -1
- package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__Min.js +13 -3
- package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__Min.js.map +1 -1
- package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__StdDevPopulation.d.ts +6 -2
- package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__StdDevPopulation.d.ts.map +1 -1
- package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__StdDevPopulation.js +13 -3
- package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__StdDevPopulation.js.map +1 -1
- package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__StdDevSample.d.ts +6 -2
- package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__StdDevSample.d.ts.map +1 -1
- package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__StdDevSample.js +13 -3
- package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__StdDevSample.js.map +1 -1
- package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__Sum.d.ts +6 -2
- package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__Sum.d.ts.map +1 -1
- package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__Sum.js +14 -3
- package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__Sum.js.map +1 -1
- package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__UniqueValue.d.ts +6 -2
- package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__UniqueValue.d.ts.map +1 -1
- package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__UniqueValue.js +13 -3
- package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__UniqueValue.js.map +1 -1
- package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__VariancePopulation.d.ts +6 -2
- package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__VariancePopulation.d.ts.map +1 -1
- package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__VariancePopulation.js +13 -3
- package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__VariancePopulation.js.map +1 -1
- package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__VarianceSample.d.ts +6 -2
- package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__VarianceSample.d.ts.map +1 -1
- package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__VarianceSample.js +13 -3
- package/lib/stores/core/aggregation/DataCubeQueryAggregateOperation__VarianceSample.js.map +1 -1
- package/lib/stores/core/filter/DataCubeQueryFilterOperation.d.ts +0 -2
- package/lib/stores/core/filter/DataCubeQueryFilterOperation.d.ts.map +1 -1
- package/lib/stores/core/filter/DataCubeQueryFilterOperation.js +1 -30
- package/lib/stores/core/filter/DataCubeQueryFilterOperation.js.map +1 -1
- package/lib/stores/core/filter/DataCubeQueryFilterOperation__Contain.d.ts.map +1 -1
- package/lib/stores/core/filter/DataCubeQueryFilterOperation__Contain.js +8 -7
- package/lib/stores/core/filter/DataCubeQueryFilterOperation__Contain.js.map +1 -1
- package/lib/stores/core/filter/DataCubeQueryFilterOperation__ContainCaseInsensitive.d.ts.map +1 -1
- package/lib/stores/core/filter/DataCubeQueryFilterOperation__ContainCaseInsensitive.js +10 -10
- package/lib/stores/core/filter/DataCubeQueryFilterOperation__ContainCaseInsensitive.js.map +1 -1
- package/lib/stores/core/filter/DataCubeQueryFilterOperation__EndWith.d.ts.map +1 -1
- package/lib/stores/core/filter/DataCubeQueryFilterOperation__EndWith.js +8 -7
- package/lib/stores/core/filter/DataCubeQueryFilterOperation__EndWith.js.map +1 -1
- package/lib/stores/core/filter/DataCubeQueryFilterOperation__EndWithCaseInsensitive.d.ts.map +1 -1
- package/lib/stores/core/filter/DataCubeQueryFilterOperation__EndWithCaseInsensitive.js +10 -10
- package/lib/stores/core/filter/DataCubeQueryFilterOperation__EndWithCaseInsensitive.js.map +1 -1
- package/lib/stores/core/filter/DataCubeQueryFilterOperation__Equal.d.ts.map +1 -1
- package/lib/stores/core/filter/DataCubeQueryFilterOperation__Equal.js +5 -6
- package/lib/stores/core/filter/DataCubeQueryFilterOperation__Equal.js.map +1 -1
- package/lib/stores/core/filter/DataCubeQueryFilterOperation__EqualCaseInsensitive.d.ts.map +1 -1
- package/lib/stores/core/filter/DataCubeQueryFilterOperation__EqualCaseInsensitive.js +10 -10
- package/lib/stores/core/filter/DataCubeQueryFilterOperation__EqualCaseInsensitive.js.map +1 -1
- package/lib/stores/core/filter/DataCubeQueryFilterOperation__EqualCaseInsensitiveColumn.d.ts.map +1 -1
- package/lib/stores/core/filter/DataCubeQueryFilterOperation__EqualCaseInsensitiveColumn.js +6 -7
- package/lib/stores/core/filter/DataCubeQueryFilterOperation__EqualCaseInsensitiveColumn.js.map +1 -1
- package/lib/stores/core/filter/DataCubeQueryFilterOperation__EqualColumn.d.ts.map +1 -1
- package/lib/stores/core/filter/DataCubeQueryFilterOperation__EqualColumn.js +6 -7
- package/lib/stores/core/filter/DataCubeQueryFilterOperation__EqualColumn.js.map +1 -1
- package/lib/stores/core/filter/DataCubeQueryFilterOperation__GreaterThan.d.ts.map +1 -1
- package/lib/stores/core/filter/DataCubeQueryFilterOperation__GreaterThan.js +5 -6
- package/lib/stores/core/filter/DataCubeQueryFilterOperation__GreaterThan.js.map +1 -1
- package/lib/stores/core/filter/DataCubeQueryFilterOperation__GreaterThanColumn.d.ts.map +1 -1
- package/lib/stores/core/filter/DataCubeQueryFilterOperation__GreaterThanColumn.js +6 -7
- package/lib/stores/core/filter/DataCubeQueryFilterOperation__GreaterThanColumn.js.map +1 -1
- package/lib/stores/core/filter/DataCubeQueryFilterOperation__GreaterThanOrEqual.d.ts.map +1 -1
- package/lib/stores/core/filter/DataCubeQueryFilterOperation__GreaterThanOrEqual.js +5 -6
- package/lib/stores/core/filter/DataCubeQueryFilterOperation__GreaterThanOrEqual.js.map +1 -1
- package/lib/stores/core/filter/DataCubeQueryFilterOperation__GreaterThanOrEqualColumn.d.ts.map +1 -1
- package/lib/stores/core/filter/DataCubeQueryFilterOperation__GreaterThanOrEqualColumn.js +6 -7
- package/lib/stores/core/filter/DataCubeQueryFilterOperation__GreaterThanOrEqualColumn.js.map +1 -1
- package/lib/stores/core/filter/DataCubeQueryFilterOperation__IsNotNull.d.ts.map +1 -1
- package/lib/stores/core/filter/DataCubeQueryFilterOperation__IsNotNull.js +2 -6
- package/lib/stores/core/filter/DataCubeQueryFilterOperation__IsNotNull.js.map +1 -1
- package/lib/stores/core/filter/DataCubeQueryFilterOperation__IsNull.d.ts.map +1 -1
- package/lib/stores/core/filter/DataCubeQueryFilterOperation__IsNull.js +2 -2
- package/lib/stores/core/filter/DataCubeQueryFilterOperation__IsNull.js.map +1 -1
- package/lib/stores/core/filter/DataCubeQueryFilterOperation__LessThan.d.ts.map +1 -1
- package/lib/stores/core/filter/DataCubeQueryFilterOperation__LessThan.js +5 -6
- package/lib/stores/core/filter/DataCubeQueryFilterOperation__LessThan.js.map +1 -1
- package/lib/stores/core/filter/DataCubeQueryFilterOperation__LessThanColumn.d.ts.map +1 -1
- package/lib/stores/core/filter/DataCubeQueryFilterOperation__LessThanColumn.js +6 -7
- package/lib/stores/core/filter/DataCubeQueryFilterOperation__LessThanColumn.js.map +1 -1
- package/lib/stores/core/filter/DataCubeQueryFilterOperation__LessThanOrEqual.d.ts.map +1 -1
- package/lib/stores/core/filter/DataCubeQueryFilterOperation__LessThanOrEqual.js +5 -6
- package/lib/stores/core/filter/DataCubeQueryFilterOperation__LessThanOrEqual.js.map +1 -1
- package/lib/stores/core/filter/DataCubeQueryFilterOperation__LessThanOrEqualColumn.d.ts.map +1 -1
- package/lib/stores/core/filter/DataCubeQueryFilterOperation__LessThanOrEqualColumn.js +6 -7
- package/lib/stores/core/filter/DataCubeQueryFilterOperation__LessThanOrEqualColumn.js.map +1 -1
- package/lib/stores/core/filter/DataCubeQueryFilterOperation__NotContain.d.ts.map +1 -1
- package/lib/stores/core/filter/DataCubeQueryFilterOperation__NotContain.js +8 -11
- package/lib/stores/core/filter/DataCubeQueryFilterOperation__NotContain.js.map +1 -1
- package/lib/stores/core/filter/DataCubeQueryFilterOperation__NotEndWith.d.ts.map +1 -1
- package/lib/stores/core/filter/DataCubeQueryFilterOperation__NotEndWith.js +8 -11
- package/lib/stores/core/filter/DataCubeQueryFilterOperation__NotEndWith.js.map +1 -1
- package/lib/stores/core/filter/DataCubeQueryFilterOperation__NotEqual.d.ts.map +1 -1
- package/lib/stores/core/filter/DataCubeQueryFilterOperation__NotEqual.js +6 -10
- package/lib/stores/core/filter/DataCubeQueryFilterOperation__NotEqual.js.map +1 -1
- package/lib/stores/core/filter/DataCubeQueryFilterOperation__NotEqualCaseInsensitive.d.ts.map +1 -1
- package/lib/stores/core/filter/DataCubeQueryFilterOperation__NotEqualCaseInsensitive.js +10 -14
- package/lib/stores/core/filter/DataCubeQueryFilterOperation__NotEqualCaseInsensitive.js.map +1 -1
- package/lib/stores/core/filter/DataCubeQueryFilterOperation__NotEqualCaseInsensitiveColumn.d.ts.map +1 -1
- package/lib/stores/core/filter/DataCubeQueryFilterOperation__NotEqualCaseInsensitiveColumn.js +6 -11
- package/lib/stores/core/filter/DataCubeQueryFilterOperation__NotEqualCaseInsensitiveColumn.js.map +1 -1
- package/lib/stores/core/filter/DataCubeQueryFilterOperation__NotEqualColumn.d.ts.map +1 -1
- package/lib/stores/core/filter/DataCubeQueryFilterOperation__NotEqualColumn.js +6 -11
- package/lib/stores/core/filter/DataCubeQueryFilterOperation__NotEqualColumn.js.map +1 -1
- package/lib/stores/core/filter/DataCubeQueryFilterOperation__NotStartWith.d.ts.map +1 -1
- package/lib/stores/core/filter/DataCubeQueryFilterOperation__NotStartWith.js +8 -11
- package/lib/stores/core/filter/DataCubeQueryFilterOperation__NotStartWith.js.map +1 -1
- package/lib/stores/core/filter/DataCubeQueryFilterOperation__StartWith.d.ts.map +1 -1
- package/lib/stores/core/filter/DataCubeQueryFilterOperation__StartWith.js +8 -7
- package/lib/stores/core/filter/DataCubeQueryFilterOperation__StartWith.js.map +1 -1
- package/lib/stores/core/filter/DataCubeQueryFilterOperation__StartWithCaseInsensitive.d.ts.map +1 -1
- package/lib/stores/core/filter/DataCubeQueryFilterOperation__StartWithCaseInsensitive.js +10 -10
- package/lib/stores/core/filter/DataCubeQueryFilterOperation__StartWithCaseInsensitive.js.map +1 -1
- package/lib/stores/core/model/DataCubeColumn.d.ts +1 -1
- package/lib/stores/core/model/DataCubeColumn.d.ts.map +1 -1
- package/lib/stores/core/model/DataCubeColumn.js.map +1 -1
- package/lib/stores/core/model/DataCubeConfiguration.d.ts +4 -3
- package/lib/stores/core/model/DataCubeConfiguration.d.ts.map +1 -1
- package/lib/stores/core/model/DataCubeConfiguration.js +4 -0
- package/lib/stores/core/model/DataCubeConfiguration.js.map +1 -1
- package/lib/stores/services/DataCubeQuerySnapshotService.d.ts.map +1 -1
- package/lib/stores/services/DataCubeQuerySnapshotService.js +2 -2
- package/lib/stores/services/DataCubeQuerySnapshotService.js.map +1 -1
- package/lib/stores/services/DataCubeSettingService.d.ts.map +1 -1
- package/lib/stores/services/DataCubeSettingService.js +8 -0
- package/lib/stores/services/DataCubeSettingService.js.map +1 -1
- package/lib/stores/view/DataCubeViewState.d.ts.map +1 -1
- package/lib/stores/view/DataCubeViewState.js +1 -1
- package/lib/stores/view/DataCubeViewState.js.map +1 -1
- package/lib/stores/view/editor/DataCubeEditorColumnPropertiesPanelState.d.ts.map +1 -1
- package/lib/stores/view/editor/DataCubeEditorColumnPropertiesPanelState.js +3 -2
- package/lib/stores/view/editor/DataCubeEditorColumnPropertiesPanelState.js.map +1 -1
- package/lib/stores/view/editor/DataCubeEditorColumnSelectorState.d.ts +7 -0
- package/lib/stores/view/editor/DataCubeEditorColumnSelectorState.d.ts.map +1 -1
- package/lib/stores/view/editor/DataCubeEditorColumnSelectorState.js +20 -3
- package/lib/stores/view/editor/DataCubeEditorColumnSelectorState.js.map +1 -1
- package/lib/stores/view/editor/DataCubeEditorColumnsPanelState.d.ts.map +1 -1
- package/lib/stores/view/editor/DataCubeEditorColumnsPanelState.js +2 -2
- package/lib/stores/view/editor/DataCubeEditorColumnsPanelState.js.map +1 -1
- package/lib/stores/view/editor/DataCubeEditorHorizontalPivotsPanelState.d.ts +4 -4
- package/lib/stores/view/editor/DataCubeEditorHorizontalPivotsPanelState.d.ts.map +1 -1
- package/lib/stores/view/editor/DataCubeEditorHorizontalPivotsPanelState.js +14 -8
- package/lib/stores/view/editor/DataCubeEditorHorizontalPivotsPanelState.js.map +1 -1
- package/lib/stores/view/editor/DataCubeEditorMutableConfiguration.d.ts +1 -5
- package/lib/stores/view/editor/DataCubeEditorMutableConfiguration.d.ts.map +1 -1
- package/lib/stores/view/editor/DataCubeEditorMutableConfiguration.js +2 -6
- package/lib/stores/view/editor/DataCubeEditorMutableConfiguration.js.map +1 -1
- package/lib/stores/view/editor/DataCubeEditorSortsPanelState.d.ts +1 -7
- package/lib/stores/view/editor/DataCubeEditorSortsPanelState.d.ts.map +1 -1
- package/lib/stores/view/editor/DataCubeEditorSortsPanelState.js +4 -19
- package/lib/stores/view/editor/DataCubeEditorSortsPanelState.js.map +1 -1
- package/lib/stores/view/editor/DataCubeEditorState.d.ts.map +1 -1
- package/lib/stores/view/editor/DataCubeEditorState.js +2 -2
- package/lib/stores/view/editor/DataCubeEditorState.js.map +1 -1
- package/lib/stores/view/editor/DataCubeEditorVerticalPivotsPanelState.d.ts.map +1 -1
- package/lib/stores/view/editor/DataCubeEditorVerticalPivotsPanelState.js +4 -4
- package/lib/stores/view/editor/DataCubeEditorVerticalPivotsPanelState.js.map +1 -1
- package/lib/stores/view/extend/DataCubeColumnEditorState.d.ts.map +1 -1
- package/lib/stores/view/extend/DataCubeColumnEditorState.js +2 -1
- package/lib/stores/view/extend/DataCubeColumnEditorState.js.map +1 -1
- package/lib/stores/view/extend/DataCubeExtendManagerState.d.ts.map +1 -1
- package/lib/stores/view/extend/DataCubeExtendManagerState.js +12 -12
- package/lib/stores/view/extend/DataCubeExtendManagerState.js.map +1 -1
- package/lib/stores/view/filter/DataCubeFilterEditorState.d.ts.map +1 -1
- package/lib/stores/view/filter/DataCubeFilterEditorState.js +2 -1
- package/lib/stores/view/filter/DataCubeFilterEditorState.js.map +1 -1
- package/lib/stores/view/grid/DataCubeGridClientEngine.d.ts.map +1 -1
- package/lib/stores/view/grid/DataCubeGridClientEngine.js +11 -14
- package/lib/stores/view/grid/DataCubeGridClientEngine.js.map +1 -1
- package/lib/stores/view/grid/DataCubeGridConfigurationBuilder.d.ts.map +1 -1
- package/lib/stores/view/grid/DataCubeGridConfigurationBuilder.js +48 -12
- package/lib/stores/view/grid/DataCubeGridConfigurationBuilder.js.map +1 -1
- package/lib/stores/view/grid/DataCubeGridControllerState.d.ts +1 -1
- package/lib/stores/view/grid/DataCubeGridControllerState.d.ts.map +1 -1
- package/lib/stores/view/grid/DataCubeGridControllerState.js +20 -20
- package/lib/stores/view/grid/DataCubeGridControllerState.js.map +1 -1
- package/lib/stores/view/grid/DataCubeGridMenuBuilder.d.ts.map +1 -1
- package/lib/stores/view/grid/DataCubeGridMenuBuilder.js +8 -12
- package/lib/stores/view/grid/DataCubeGridMenuBuilder.js.map +1 -1
- package/lib/stores/view/grid/DataCubeGridQueryBuilder.js +1 -1
- package/lib/stores/view/grid/DataCubeGridQueryBuilder.js.map +1 -1
- package/lib/stores/view/grid/DataCubeGridQuerySnapshotBuilder.js +1 -1
- package/lib/stores/view/grid/DataCubeGridQuerySnapshotBuilder.js.map +1 -1
- package/package.json +8 -8
- package/src/__lib__/DataCubeSetting.ts +1 -0
- package/src/components/view/editor/DataCubeEditorColumnPropertiesPanel.tsx +40 -17
- package/src/components/view/editor/DataCubeEditorColumnSelector.tsx +75 -1
- package/src/components/view/editor/DataCubeEditorColumnsPanel.tsx +3 -6
- package/src/components/view/editor/DataCubeEditorHorizontalPivotsPanel.tsx +5 -12
- package/src/components/view/editor/DataCubeEditorSortsPanel.tsx +12 -80
- package/src/components/view/filter/DataCubeFilterEditor.tsx +2 -3
- package/src/stores/core/DataCubeConfigurationBuilder.ts +80 -5
- package/src/stores/core/DataCubeEngine.tsx +10 -2
- package/src/stores/core/DataCubeQueryBuilder.ts +36 -37
- package/src/stores/core/DataCubeQueryBuilderUtils.ts +74 -41
- package/src/stores/core/DataCubeQueryEngine.ts +120 -60
- package/src/stores/core/DataCubeQuerySnapshot.ts +13 -0
- package/src/stores/core/DataCubeQuerySnapshotBuilder.ts +379 -157
- package/src/stores/core/DataCubeQuerySnapshotBuilderUtils.ts +597 -157
- package/src/stores/core/aggregation/DataCubeQueryAggregateOperation.ts +39 -16
- package/src/stores/core/aggregation/DataCubeQueryAggregateOperation__Average.tsx +26 -4
- package/src/stores/core/aggregation/DataCubeQueryAggregateOperation__Count.tsx +26 -4
- package/src/stores/core/aggregation/DataCubeQueryAggregateOperation__First.tsx +26 -4
- package/src/stores/core/aggregation/DataCubeQueryAggregateOperation__JoinStrings.tsx +41 -26
- package/src/stores/core/aggregation/DataCubeQueryAggregateOperation__Last.tsx +26 -4
- package/src/stores/core/aggregation/DataCubeQueryAggregateOperation__Max.tsx +26 -4
- package/src/stores/core/aggregation/DataCubeQueryAggregateOperation__Min.tsx +26 -4
- package/src/stores/core/aggregation/DataCubeQueryAggregateOperation__StdDevPopulation.tsx +29 -6
- package/src/stores/core/aggregation/DataCubeQueryAggregateOperation__StdDevSample.tsx +30 -4
- package/src/stores/core/aggregation/DataCubeQueryAggregateOperation__Sum.tsx +26 -4
- package/src/stores/core/aggregation/DataCubeQueryAggregateOperation__UniqueValue.tsx +26 -4
- package/src/stores/core/aggregation/DataCubeQueryAggregateOperation__VariancePopulation.tsx +26 -4
- package/src/stores/core/aggregation/DataCubeQueryAggregateOperation__VarianceSample.tsx +26 -4
- package/src/stores/core/filter/DataCubeQueryFilterOperation.ts +1 -52
- package/src/stores/core/filter/DataCubeQueryFilterOperation__Contain.tsx +12 -9
- package/src/stores/core/filter/DataCubeQueryFilterOperation__ContainCaseInsensitive.tsx +10 -13
- package/src/stores/core/filter/DataCubeQueryFilterOperation__EndWith.tsx +9 -10
- package/src/stores/core/filter/DataCubeQueryFilterOperation__EndWithCaseInsensitive.tsx +10 -13
- package/src/stores/core/filter/DataCubeQueryFilterOperation__Equal.tsx +5 -8
- package/src/stores/core/filter/DataCubeQueryFilterOperation__EqualCaseInsensitive.tsx +10 -13
- package/src/stores/core/filter/DataCubeQueryFilterOperation__EqualCaseInsensitiveColumn.tsx +6 -8
- package/src/stores/core/filter/DataCubeQueryFilterOperation__EqualColumn.tsx +5 -7
- package/src/stores/core/filter/DataCubeQueryFilterOperation__GreaterThan.tsx +6 -9
- package/src/stores/core/filter/DataCubeQueryFilterOperation__GreaterThanColumn.tsx +6 -8
- package/src/stores/core/filter/DataCubeQueryFilterOperation__GreaterThanOrEqual.tsx +6 -9
- package/src/stores/core/filter/DataCubeQueryFilterOperation__GreaterThanOrEqualColumn.tsx +6 -8
- package/src/stores/core/filter/DataCubeQueryFilterOperation__IsNotNull.tsx +6 -8
- package/src/stores/core/filter/DataCubeQueryFilterOperation__IsNull.tsx +6 -2
- package/src/stores/core/filter/DataCubeQueryFilterOperation__LessThan.tsx +6 -9
- package/src/stores/core/filter/DataCubeQueryFilterOperation__LessThanColumn.tsx +6 -8
- package/src/stores/core/filter/DataCubeQueryFilterOperation__LessThanOrEqual.tsx +6 -9
- package/src/stores/core/filter/DataCubeQueryFilterOperation__LessThanOrEqualColumn.tsx +6 -8
- package/src/stores/core/filter/DataCubeQueryFilterOperation__NotContain.tsx +12 -15
- package/src/stores/core/filter/DataCubeQueryFilterOperation__NotEndWith.tsx +12 -15
- package/src/stores/core/filter/DataCubeQueryFilterOperation__NotEqual.tsx +10 -14
- package/src/stores/core/filter/DataCubeQueryFilterOperation__NotEqualCaseInsensitive.tsx +11 -20
- package/src/stores/core/filter/DataCubeQueryFilterOperation__NotEqualCaseInsensitiveColumn.tsx +7 -19
- package/src/stores/core/filter/DataCubeQueryFilterOperation__NotEqualColumn.tsx +9 -17
- package/src/stores/core/filter/DataCubeQueryFilterOperation__NotStartWith.tsx +10 -17
- package/src/stores/core/filter/DataCubeQueryFilterOperation__StartWith.tsx +9 -10
- package/src/stores/core/filter/DataCubeQueryFilterOperation__StartWithCaseInsensitive.tsx +10 -13
- package/src/stores/core/model/DataCubeColumn.ts +1 -1
- package/src/stores/core/model/DataCubeConfiguration.ts +7 -1
- package/src/stores/services/DataCubeQuerySnapshotService.ts +2 -1
- package/src/stores/services/DataCubeSettingService.tsx +8 -0
- package/src/stores/view/DataCubeViewState.ts +2 -3
- package/src/stores/view/editor/DataCubeEditorColumnPropertiesPanelState.ts +3 -2
- package/src/stores/view/editor/DataCubeEditorColumnSelectorState.ts +31 -6
- package/src/stores/view/editor/DataCubeEditorColumnsPanelState.ts +2 -7
- package/src/stores/view/editor/DataCubeEditorHorizontalPivotsPanelState.ts +33 -10
- package/src/stores/view/editor/DataCubeEditorMutableConfiguration.ts +4 -20
- package/src/stores/view/editor/DataCubeEditorSortsPanelState.ts +6 -29
- package/src/stores/view/editor/DataCubeEditorState.tsx +2 -3
- package/src/stores/view/editor/DataCubeEditorVerticalPivotsPanelState.ts +6 -7
- package/src/stores/view/extend/DataCubeColumnEditorState.tsx +2 -3
- package/src/stores/view/extend/DataCubeExtendManagerState.tsx +14 -13
- package/src/stores/view/filter/DataCubeFilterEditorState.tsx +2 -4
- package/src/stores/view/grid/DataCubeGridClientEngine.ts +21 -20
- package/src/stores/view/grid/DataCubeGridConfigurationBuilder.tsx +64 -15
- package/src/stores/view/grid/DataCubeGridControllerState.ts +35 -34
- package/src/stores/view/grid/DataCubeGridMenuBuilder.tsx +17 -23
- package/src/stores/view/grid/DataCubeGridQueryBuilder.ts +1 -1
- package/src/stores/view/grid/DataCubeGridQuerySnapshotBuilder.ts +1 -1
|
@@ -24,13 +24,12 @@ import { type V1_ValueSpecification } from '@finos/legend-graph';
|
|
|
24
24
|
import type { DataCubeQuery } from './model/DataCubeQuery.js';
|
|
25
25
|
import { DataCubeQuerySnapshot } from './DataCubeQuerySnapshot.js';
|
|
26
26
|
import type { DataCubeSource } from './model/DataCubeSource.js';
|
|
27
|
-
import type {
|
|
28
|
-
import type { DataCubeQueryAggregateOperation } from './aggregation/DataCubeQueryAggregateOperation.js';
|
|
27
|
+
import type { DataCubeEngine } from './DataCubeEngine.js';
|
|
29
28
|
/**
|
|
30
29
|
* Analyze the partial query to build a query snapshot.
|
|
31
30
|
*
|
|
32
31
|
* Implementation-wise, this extracts the function call sequence, then walk the
|
|
33
32
|
* sequence in order to fill in the information for the snapshot.
|
|
34
33
|
*/
|
|
35
|
-
export declare function validateAndBuildQuerySnapshot(partialQuery: V1_ValueSpecification, source: DataCubeSource, baseQuery: DataCubeQuery,
|
|
34
|
+
export declare function validateAndBuildQuerySnapshot(partialQuery: V1_ValueSpecification, source: DataCubeSource, baseQuery: DataCubeQuery, engine: DataCubeEngine): Promise<DataCubeQuerySnapshot>;
|
|
36
35
|
//# sourceMappingURL=DataCubeQuerySnapshotBuilder.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataCubeQuerySnapshotBuilder.d.ts","sourceRoot":"","sources":["../../../src/stores/core/DataCubeQuerySnapshotBuilder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH;;;;;;yFAMyF;AAEzF,OAAO,
|
|
1
|
+
{"version":3,"file":"DataCubeQuerySnapshotBuilder.d.ts","sourceRoot":"","sources":["../../../src/stores/core/DataCubeQuerySnapshotBuilder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH;;;;;;yFAMyF;AAEzF,OAAO,EAKL,KAAK,qBAAqB,EAE3B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EACL,qBAAqB,EAItB,MAAM,4BAA4B,CAAC;AAkCpC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAoR1D;;;;;GAKG;AACH,wBAAsB,6BAA6B,CACjD,YAAY,EAAE,qBAAqB,EACnC,MAAM,EAAE,cAAc,EACtB,SAAS,EAAE,aAAa,EACxB,MAAM,EAAE,cAAc,kCAiQvB"}
|
|
@@ -20,16 +20,24 @@
|
|
|
20
20
|
* executable query. This is needed when we initialize the engine by loading a
|
|
21
21
|
* persisted query.
|
|
22
22
|
***************************************************************************************/
|
|
23
|
-
import { V1_AppliedFunction, V1_CInteger,
|
|
24
|
-
import { DataCubeQuerySnapshot } from './DataCubeQuerySnapshot.js';
|
|
25
|
-
import { _toCol } from './model/DataCubeColumn.js';
|
|
26
|
-
import { assertTrue, at, guaranteeNonNullable } from '@finos/legend-shared';
|
|
27
|
-
import {
|
|
28
|
-
import {
|
|
29
|
-
import { _colSpecArrayParam,
|
|
23
|
+
import { V1_AppliedFunction, V1_CInteger, extractElementNameFromPath as _name, matchFunctionName, V1_Lambda, } from '@finos/legend-graph';
|
|
24
|
+
import { DataCubeQuerySnapshot, } from './DataCubeQuerySnapshot.js';
|
|
25
|
+
import { _findCol, _toCol, } from './model/DataCubeColumn.js';
|
|
26
|
+
import { assertTrue, at, guaranteeNonNullable, isNonNullable, } from '@finos/legend-shared';
|
|
27
|
+
import { DataCubeFunction, } from './DataCubeQueryEngine.js';
|
|
28
|
+
import { newConfiguration } from './DataCubeConfigurationBuilder.js';
|
|
29
|
+
import { _colSpecArrayParam, _param, _extractExtendedColumns, _filter, _relationType, _genericTypeParam, _packageableType, _aggCol, _sort, _unwrapLambda, _pivotSort, _groupBySort, _validatePivot, _checkDuplicateColumns, _validateGroupBy, } from './DataCubeQuerySnapshotBuilderUtils.js';
|
|
30
|
+
import { _deserializeValueSpecification, _serializeValueSpecification, } from './DataCubeQueryBuilderUtils.js';
|
|
30
31
|
// --------------------------------- BUILDING BLOCKS ---------------------------------
|
|
31
32
|
const _SUPPORTED_TOP_LEVEL_FUNCTIONS = [
|
|
32
|
-
{
|
|
33
|
+
{
|
|
34
|
+
func: DataCubeFunction.EXTEND,
|
|
35
|
+
parameters: 1,
|
|
36
|
+
// handle OLAP form where first parameter is over() expression used to construct the window
|
|
37
|
+
stopCondition: (_func) => matchFunctionName(_func.function, DataCubeFunction.EXTEND) &&
|
|
38
|
+
_func.parameters[0] instanceof V1_AppliedFunction &&
|
|
39
|
+
matchFunctionName(_func.parameters[0].function, DataCubeFunction.OVER),
|
|
40
|
+
},
|
|
33
41
|
{ func: DataCubeFunction.FILTER, parameters: 1 },
|
|
34
42
|
{ func: DataCubeFunction.SELECT, parameters: 1 },
|
|
35
43
|
{ func: DataCubeFunction.GROUP_BY, parameters: 2 },
|
|
@@ -54,13 +62,6 @@ var _FUNCTION_SEQUENCE_COMPOSITION_PART;
|
|
|
54
62
|
_FUNCTION_SEQUENCE_COMPOSITION_PART["SORT"] = "sort";
|
|
55
63
|
_FUNCTION_SEQUENCE_COMPOSITION_PART["LIMIT"] = "limit";
|
|
56
64
|
})(_FUNCTION_SEQUENCE_COMPOSITION_PART || (_FUNCTION_SEQUENCE_COMPOSITION_PART = {}));
|
|
57
|
-
// function isFunctionInValidSequence(
|
|
58
|
-
// value: string,
|
|
59
|
-
// ): value is _FUNCTION_SEQUENCE_COMPOSITION_PART {
|
|
60
|
-
// return Object.values(_FUNCTION_SEQUENCE_COMPOSITION_PART).includes(
|
|
61
|
-
// value as _FUNCTION_SEQUENCE_COMPOSITION_PART,
|
|
62
|
-
// );
|
|
63
|
-
// }
|
|
64
65
|
// This corresponds to the function sequence that we currently support:
|
|
65
66
|
//
|
|
66
67
|
// ->extend()*
|
|
@@ -143,9 +144,9 @@ const _FUNCTION_SEQUENCE_COMPOSITION_PATTERN = [
|
|
|
143
144
|
const _FUNCTION_SEQUENCE_COMPOSITION_PATTERN_REGEXP = new RegExp(`^${_FUNCTION_SEQUENCE_COMPOSITION_PATTERN
|
|
144
145
|
.map((node) => 'funcs' in node
|
|
145
146
|
? `(${node.funcs
|
|
146
|
-
.map((childNode) => `(?<${childNode.name}
|
|
147
|
+
.map((childNode) => `(?<${childNode.name}>${childNode.repeat ? `(?:<${_name(childNode.func)}>____\\d+)*` : `<${_name(childNode.func)}>____\\d+`})${childNode.repeat ? '' : !childNode.required ? '?' : ''}`)
|
|
147
148
|
.join('')})${node.repeat ? '*' : !node.required ? '?' : ''}`
|
|
148
|
-
: `(?<${node.name}
|
|
149
|
+
: `(?<${node.name}>${node.repeat ? `(?:<${_name(node.func)}>____\\d+)*` : `<${_name(node.func)}>____\\d+`})${node.repeat ? '' : !node.required ? '?' : ''}`)
|
|
149
150
|
.join('')}$`);
|
|
150
151
|
/**
|
|
151
152
|
* Turn the function sequence into a map of available functions
|
|
@@ -154,7 +155,7 @@ const _FUNCTION_SEQUENCE_COMPOSITION_PATTERN_REGEXP = new RegExp(`^${_FUNCTION_S
|
|
|
154
155
|
function extractFunctionMap(query) {
|
|
155
156
|
// Make sure this is a sequence of function calls
|
|
156
157
|
if (!(query instanceof V1_AppliedFunction)) {
|
|
157
|
-
throw new Error(`Can't process expression:
|
|
158
|
+
throw new Error(`Can't process expression: expected a function expression`);
|
|
158
159
|
}
|
|
159
160
|
const sequence = [];
|
|
160
161
|
let currentFunc = query;
|
|
@@ -162,16 +163,21 @@ function extractFunctionMap(query) {
|
|
|
162
163
|
const supportedFunc = _SUPPORTED_TOP_LEVEL_FUNCTIONS.find((spec) => matchFunctionName(currentFunc.function, spec.func));
|
|
163
164
|
// Check that all functions in sequence are supported (matching name and number of parameters)
|
|
164
165
|
if (!supportedFunc) {
|
|
165
|
-
throw new Error(`Can't process expression:
|
|
166
|
+
throw new Error(`Can't process expression: found unsupported function ${currentFunc.function}()`);
|
|
166
167
|
}
|
|
167
168
|
// recursively unwrap the nested function expression to build the function sequence,
|
|
168
169
|
// i.e. if we have the expression x(y(z(t(...)))), we need to unwrap them and build the sequence
|
|
169
170
|
// t(...)->z()->y()->x() and simultaneously, remove the first parameter from each function for
|
|
170
171
|
// simplicity, except for the innermost function
|
|
171
172
|
if (currentFunc.parameters.length > supportedFunc.parameters) {
|
|
173
|
+
// if stop condition is fulfilled, no more function sequence drilling is needed
|
|
174
|
+
if (supportedFunc.stopCondition?.(currentFunc)) {
|
|
175
|
+
sequence.unshift(currentFunc);
|
|
176
|
+
break;
|
|
177
|
+
}
|
|
172
178
|
// assert that the supported function has the expected number of parameters
|
|
173
|
-
assertTrue(currentFunc.parameters.length === supportedFunc.parameters + 1, `Can't process ${_name(currentFunc.function)}() expression:
|
|
174
|
-
const func = _param(currentFunc, 0, V1_AppliedFunction, `Can't process expression:
|
|
179
|
+
assertTrue(currentFunc.parameters.length === supportedFunc.parameters + 1, `Can't process ${_name(currentFunc.function)}() expression: expected at most ${supportedFunc.parameters + 1} parameters provided, got ${currentFunc.parameters.length}`);
|
|
180
|
+
const func = _param(currentFunc, 0, V1_AppliedFunction, `Can't process expression: expected a sequence of function calls (e.g. x()->y()->z())`);
|
|
175
181
|
currentFunc.parameters = currentFunc.parameters.slice(1);
|
|
176
182
|
sequence.unshift(currentFunc);
|
|
177
183
|
currentFunc = func;
|
|
@@ -187,32 +193,40 @@ function extractFunctionMap(query) {
|
|
|
187
193
|
.join('');
|
|
188
194
|
const matchResult = sequenceFormText.match(_FUNCTION_SEQUENCE_COMPOSITION_PATTERN_REGEXP);
|
|
189
195
|
if (!matchResult) {
|
|
190
|
-
throw new Error(`Can't process expression:
|
|
196
|
+
throw new Error(`Can't process expression: unsupported function composition ${sequence.map((fn) => `${_name(fn.function)}()`).join('->')} (supported composition: ${_FUNCTION_SEQUENCE_COMPOSITION_PATTERN.map((node) => `${'funcs' in node ? `[${node.funcs.map((childNode) => `${_name(childNode.func)}()`).join('->')}]` : `${_name(node.func)}()`}`).join('->')})`);
|
|
191
197
|
}
|
|
192
198
|
const _process = (key) => {
|
|
193
199
|
const match = matchResult.groups?.[key];
|
|
194
|
-
if (!match
|
|
200
|
+
if (!match) {
|
|
195
201
|
return undefined;
|
|
196
202
|
}
|
|
197
|
-
const
|
|
198
|
-
if (
|
|
203
|
+
const funcMatches = match.match(/\<.*?\>____\d+/g);
|
|
204
|
+
if (!funcMatches?.length) {
|
|
199
205
|
return undefined;
|
|
200
206
|
}
|
|
201
|
-
|
|
202
|
-
|
|
207
|
+
return funcMatches
|
|
208
|
+
.map((funcMatch) => {
|
|
209
|
+
const idx = Number(funcMatch.split('____')[1]);
|
|
210
|
+
if (isNaN(idx) || idx >= sequence.length) {
|
|
211
|
+
return undefined;
|
|
212
|
+
}
|
|
213
|
+
const func = at(sequence, idx);
|
|
214
|
+
return func;
|
|
215
|
+
})
|
|
216
|
+
.filter(isNonNullable);
|
|
203
217
|
};
|
|
204
218
|
return {
|
|
205
219
|
leafExtend: _process(_FUNCTION_SEQUENCE_COMPOSITION_PART.LEAF_EXTEND),
|
|
206
|
-
select: _process(_FUNCTION_SEQUENCE_COMPOSITION_PART.SELECT),
|
|
207
|
-
filter: _process(_FUNCTION_SEQUENCE_COMPOSITION_PART.FILTER),
|
|
208
|
-
pivotSort: _process(_FUNCTION_SEQUENCE_COMPOSITION_PART.PIVOT_SORT),
|
|
209
|
-
pivot: _process(_FUNCTION_SEQUENCE_COMPOSITION_PART.PIVOT),
|
|
210
|
-
pivotCast: _process(_FUNCTION_SEQUENCE_COMPOSITION_PART.PIVOT_CAST),
|
|
211
|
-
groupBy: _process(_FUNCTION_SEQUENCE_COMPOSITION_PART.GROUP_BY),
|
|
212
|
-
groupBySort: _process(_FUNCTION_SEQUENCE_COMPOSITION_PART.GROUP_BY_SORT),
|
|
220
|
+
select: _process(_FUNCTION_SEQUENCE_COMPOSITION_PART.SELECT)?.[0],
|
|
221
|
+
filter: _process(_FUNCTION_SEQUENCE_COMPOSITION_PART.FILTER)?.[0],
|
|
222
|
+
pivotSort: _process(_FUNCTION_SEQUENCE_COMPOSITION_PART.PIVOT_SORT)?.[0],
|
|
223
|
+
pivot: _process(_FUNCTION_SEQUENCE_COMPOSITION_PART.PIVOT)?.[0],
|
|
224
|
+
pivotCast: _process(_FUNCTION_SEQUENCE_COMPOSITION_PART.PIVOT_CAST)?.[0],
|
|
225
|
+
groupBy: _process(_FUNCTION_SEQUENCE_COMPOSITION_PART.GROUP_BY)?.[0],
|
|
226
|
+
groupBySort: _process(_FUNCTION_SEQUENCE_COMPOSITION_PART.GROUP_BY_SORT)?.[0],
|
|
213
227
|
groupExtend: _process(_FUNCTION_SEQUENCE_COMPOSITION_PART.GROUP_EXTEND),
|
|
214
|
-
sort: _process(_FUNCTION_SEQUENCE_COMPOSITION_PART.SORT),
|
|
215
|
-
limit: _process(_FUNCTION_SEQUENCE_COMPOSITION_PART.LIMIT),
|
|
228
|
+
sort: _process(_FUNCTION_SEQUENCE_COMPOSITION_PART.SORT)?.[0],
|
|
229
|
+
limit: _process(_FUNCTION_SEQUENCE_COMPOSITION_PART.LIMIT)?.[0],
|
|
216
230
|
};
|
|
217
231
|
}
|
|
218
232
|
// --------------------------------- MAIN ---------------------------------
|
|
@@ -222,24 +236,26 @@ function extractFunctionMap(query) {
|
|
|
222
236
|
* Implementation-wise, this extracts the function call sequence, then walk the
|
|
223
237
|
* sequence in order to fill in the information for the snapshot.
|
|
224
238
|
*/
|
|
225
|
-
export function validateAndBuildQuerySnapshot(partialQuery, source, baseQuery,
|
|
239
|
+
export async function validateAndBuildQuerySnapshot(partialQuery, source, baseQuery, engine) {
|
|
226
240
|
// --------------------------------- BASE ---------------------------------
|
|
227
241
|
// Build the function call sequence and the function map to make the
|
|
228
242
|
// analysis more ergonomic
|
|
229
|
-
|
|
243
|
+
// Clone the query since we will mutate it during the process
|
|
244
|
+
const query = _deserializeValueSpecification(_serializeValueSpecification(partialQuery));
|
|
245
|
+
const funcMap = extractFunctionMap(query);
|
|
230
246
|
const snapshot = DataCubeQuerySnapshot.create({});
|
|
231
247
|
const data = snapshot.data;
|
|
232
|
-
const
|
|
248
|
+
const registeredColumns = new Map();
|
|
233
249
|
/**
|
|
234
250
|
* We want to make sure all columns, either from source or created, e.g. extended columns,
|
|
235
251
|
* have unique names. This is to simplify the logic within DataCube so different components
|
|
236
252
|
* can easily refer to columns by name without having to worry about conflicts.
|
|
237
253
|
*/
|
|
238
254
|
const _checkColName = (col, message) => {
|
|
239
|
-
if (
|
|
255
|
+
if (registeredColumns.has(col.name)) {
|
|
240
256
|
throw new Error(message);
|
|
241
257
|
}
|
|
242
|
-
|
|
258
|
+
registeredColumns.set(col.name, col);
|
|
243
259
|
};
|
|
244
260
|
const colsMap = new Map();
|
|
245
261
|
const _getCol = (colName) => {
|
|
@@ -247,130 +263,212 @@ export function validateAndBuildQuerySnapshot(partialQuery, source, baseQuery, f
|
|
|
247
263
|
return _toCol(column);
|
|
248
264
|
};
|
|
249
265
|
const _setCol = (col) => colsMap.set(col.name, col);
|
|
250
|
-
// const _unsetCol = (col: DataCubeColumn) => colsMap.delete(col.name);
|
|
251
266
|
// -------------------------------- SOURCE --------------------------------
|
|
252
267
|
data.sourceColumns = source.columns;
|
|
268
|
+
// validate
|
|
269
|
+
_checkDuplicateColumns(data.sourceColumns, (colName) => `Can't process source: found duplicate source columns '${colName}'`);
|
|
270
|
+
data.sourceColumns.forEach((col) => _checkColName(col, `Can't process source: another column with name '${col.name}' is already registered`));
|
|
253
271
|
data.sourceColumns.forEach((col) => _setCol(col));
|
|
254
|
-
data.sourceColumns.forEach((col) => _checkColName(col, `Can't process source column '${col.name}': another column with the same name is already registered`));
|
|
255
272
|
// --------------------------- LEAF-LEVEL EXTEND ---------------------------
|
|
256
|
-
if (funcMap.leafExtend) {
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
//
|
|
273
|
+
if (funcMap.leafExtend?.length) {
|
|
274
|
+
data.leafExtendedColumns = await _extractExtendedColumns(funcMap.leafExtend, Array.from(colsMap.values()), engine);
|
|
275
|
+
// validate
|
|
276
|
+
// NOTE: these duplication checks might not be necessary since compiler would catch these
|
|
277
|
+
// issues anyway, but we leave them here to be defensive
|
|
278
|
+
_checkDuplicateColumns(data.leafExtendedColumns, (colName) => `Can't process extend() expression: found duplicate extended columns '${colName}'`);
|
|
279
|
+
data.leafExtendedColumns.forEach((col) => _checkColName(col, `Can't process extend() expression: another column with name '${col.name}' is already registered`));
|
|
260
280
|
data.leafExtendedColumns.forEach((col) => _setCol(col));
|
|
261
|
-
data.leafExtendedColumns.forEach((col) => _checkColName(col, `Can't process leaf-level extended column '${col.name}': another column with the same name is already registered`));
|
|
262
281
|
}
|
|
263
282
|
// --------------------------------- FILTER ---------------------------------
|
|
264
283
|
if (funcMap.filter) {
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
const lambda = _param(funcMap.filter, 0, V1_Lambda, `Can't process filter() expression: Expected parameter at index 0 to be a lambda expression`);
|
|
268
|
-
assertTrue(lambda.body.length === 1, `Can't process filter() expression: Expected lambda body to have exactly 1 expression`);
|
|
269
|
-
data.filter = _filter(guaranteeNonNullable(lambda.body[0]), _getCol, filterOperations);
|
|
284
|
+
const lambda = _param(funcMap.filter, 0, V1_Lambda, `Can't process filter() expression: expected parameter at index 0 to be a lambda expression`);
|
|
285
|
+
data.filter = _filter(_unwrapLambda(lambda, `Can't process filter() expression`), _getCol, engine.filterOperations);
|
|
270
286
|
}
|
|
271
287
|
// --------------------------------- SELECT ---------------------------------
|
|
272
288
|
if (funcMap.select) {
|
|
273
289
|
data.selectColumns = _colSpecArrayParam(funcMap.select, 0).colSpecs.map((colSpec) => _getCol(colSpec.name));
|
|
274
|
-
//
|
|
290
|
+
// validate
|
|
291
|
+
_checkDuplicateColumns(data.selectColumns, (colName) => `Can't process select() expression: found duplicate select columns '${colName}'`);
|
|
292
|
+
// restrict the set of available columns to only selected columns
|
|
293
|
+
colsMap.clear();
|
|
294
|
+
data.selectColumns.forEach((col) => _setCol(col));
|
|
295
|
+
}
|
|
296
|
+
else {
|
|
297
|
+
// mandate that if select() expression is not present, we consider this
|
|
298
|
+
// as no-column is selected
|
|
299
|
+
colsMap.clear();
|
|
275
300
|
}
|
|
276
301
|
// --------------------------------- PIVOT ---------------------------------
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
302
|
+
let pivotAggColumns = [];
|
|
303
|
+
let pivotSortColumns = [];
|
|
304
|
+
if (funcMap.pivot && funcMap.pivotCast && funcMap.pivotSort) {
|
|
305
|
+
const pivotColumns = _colSpecArrayParam(funcMap.pivot, 0).colSpecs.map((colSpec) => _getCol(colSpec.name));
|
|
306
|
+
const castColumns = _relationType(_genericTypeParam(funcMap.pivotCast, 0).genericType).columns.map((column) => ({
|
|
307
|
+
name: column.name,
|
|
308
|
+
type: _packageableType(column.genericType).fullPath,
|
|
309
|
+
}));
|
|
280
310
|
data.pivot = {
|
|
281
|
-
columns:
|
|
282
|
-
castColumns:
|
|
283
|
-
name: column.name,
|
|
284
|
-
type: _packageableType(column.genericType).fullPath,
|
|
285
|
-
})),
|
|
311
|
+
columns: pivotColumns,
|
|
312
|
+
castColumns: castColumns,
|
|
286
313
|
};
|
|
314
|
+
// process aggregate columns
|
|
315
|
+
pivotAggColumns = _colSpecArrayParam(funcMap.pivot, 1).colSpecs.map((colSpec) => _aggCol(colSpec, _getCol, engine.aggregateOperations));
|
|
316
|
+
// process sort columns
|
|
317
|
+
pivotSortColumns = _pivotSort(funcMap.pivotSort, pivotColumns, _getCol);
|
|
318
|
+
// validate
|
|
319
|
+
_validatePivot(data.pivot, pivotAggColumns, Array.from(colsMap.values()));
|
|
320
|
+
// restrict the set of available columns to only casted columns
|
|
321
|
+
colsMap.clear();
|
|
322
|
+
castColumns.forEach((col) => _setCol(col));
|
|
287
323
|
}
|
|
288
|
-
// TODO: verify groupBy agg columns, pivot agg columns and configuration agree
|
|
289
324
|
// --------------------------------- GROUP BY ---------------------------------
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
325
|
+
let groupByAggColumns = [];
|
|
326
|
+
let groupBySortColumns = [];
|
|
327
|
+
if (funcMap.groupBy && funcMap.groupBySort) {
|
|
328
|
+
const groupByColumns = _colSpecArrayParam(funcMap.groupBy, 0).colSpecs.map((colSpec) => _getCol(colSpec.name));
|
|
293
329
|
data.groupBy = {
|
|
294
|
-
columns:
|
|
330
|
+
columns: groupByColumns,
|
|
295
331
|
};
|
|
296
|
-
//
|
|
297
|
-
|
|
298
|
-
//
|
|
332
|
+
// process aggregate columns
|
|
333
|
+
groupByAggColumns = _colSpecArrayParam(funcMap.groupBy, 1).colSpecs.map((colSpec) => _aggCol(colSpec, _getCol, engine.aggregateOperations));
|
|
334
|
+
// process sort columns
|
|
335
|
+
groupBySortColumns = _groupBySort(funcMap.groupBySort, groupByColumns, _getCol);
|
|
336
|
+
// validate
|
|
337
|
+
_validateGroupBy(data.groupBy, groupByAggColumns, data.pivot, pivotAggColumns, Array.from(colsMap.values()));
|
|
299
338
|
}
|
|
300
339
|
// --------------------------- GROUP-LEVEL EXTEND ---------------------------
|
|
301
|
-
if (funcMap.groupExtend) {
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
//
|
|
340
|
+
if (funcMap.groupExtend?.length) {
|
|
341
|
+
data.groupExtendedColumns = await _extractExtendedColumns(funcMap.groupExtend, Array.from(colsMap.values()), engine);
|
|
342
|
+
// validate
|
|
343
|
+
// NOTE: these duplication checks might not be necessary since compiler would catch these
|
|
344
|
+
// issues anyway, but we leave them here to be defensive
|
|
345
|
+
_checkDuplicateColumns(data.groupExtendedColumns, (colName) => `Can't process extend() expression: found duplicate extended columns '${colName}'`);
|
|
346
|
+
data.groupExtendedColumns.forEach((col) => _checkColName(col, `Can't process extend() expression: another column with name '${col.name}' is already registered`));
|
|
305
347
|
data.groupExtendedColumns.forEach((col) => _setCol(col));
|
|
306
|
-
data.groupExtendedColumns.forEach((col) => _checkColName(col, `Can't process group-level extended column '${col.name}': another column with the same name is already registered`));
|
|
307
348
|
}
|
|
308
349
|
// --------------------------------- SORT ---------------------------------
|
|
309
350
|
if (funcMap.sort) {
|
|
310
|
-
data.sortColumns =
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
DataCubeFunction.DESCENDING,
|
|
314
|
-
]);
|
|
315
|
-
return {
|
|
316
|
-
..._getCol(_colSpecParam(sortColFunc, 0).name),
|
|
317
|
-
direction: matchFunctionName(sortColFunc.function, DataCubeFunction.ASCENDING)
|
|
318
|
-
? DataCubeQuerySortDirection.ASCENDING
|
|
319
|
-
: DataCubeQuerySortDirection.DESCENDING,
|
|
320
|
-
};
|
|
321
|
-
});
|
|
351
|
+
data.sortColumns = _sort(funcMap.sort, _getCol);
|
|
352
|
+
// validate
|
|
353
|
+
_checkDuplicateColumns(data.sortColumns, (colName) => `Can't process sort() expression: found duplicate sort columns '${colName}'`);
|
|
322
354
|
}
|
|
323
355
|
// --------------------------------- LIMIT ---------------------------------
|
|
324
356
|
if (funcMap.limit) {
|
|
325
|
-
|
|
357
|
+
// NOTE: negative number -10 is parsed as minus(10) so this check will also
|
|
358
|
+
// reject negative number
|
|
359
|
+
const value = _param(funcMap.limit, 0, V1_CInteger, `Can't process limit() expression: expected limit to be a non-negative integer value`);
|
|
326
360
|
data.limit = value.value;
|
|
327
361
|
}
|
|
328
362
|
// --------------------------------- CONFIGURATION ---------------------------------
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
//
|
|
337
|
-
// But in the example above, if the column is part of an aggregation, we have to ensure
|
|
338
|
-
// the configuration is consistent with the query. Conflicts can happen, for example:
|
|
339
|
-
// - column kind and type conflict with aggregation
|
|
340
|
-
// - column kind and type conflict with the column configuration
|
|
341
|
-
//
|
|
342
|
-
// In those cases, we need to reconcile to make sure the query and the configuration to agree.
|
|
343
|
-
// The query will take precedence when conflicts happen, and if the conflict cannot be resolved
|
|
344
|
-
// somehow, we will throw a validation error. We decide so because in certain cases, configuration
|
|
345
|
-
// needs to be generated from default presets, such as for use cases where the query comes from a
|
|
346
|
-
// different source, such as Studio or Query, or another part of Engine, where the layout
|
|
347
|
-
// configuration is not specified.
|
|
348
|
-
//
|
|
349
|
-
// ----------------------------------------------------------------------------------
|
|
350
|
-
const configuration = validateAndBuildConfiguration(snapshot, funcMap, baseQuery);
|
|
363
|
+
const configuration = validateAndBuildConfiguration({
|
|
364
|
+
snapshot,
|
|
365
|
+
groupByAggColumns,
|
|
366
|
+
groupBySortColumns,
|
|
367
|
+
pivotAggColumns,
|
|
368
|
+
pivotSortColumns,
|
|
369
|
+
}, baseQuery, engine);
|
|
351
370
|
data.configuration = configuration.serialize();
|
|
352
371
|
return snapshot.finalize();
|
|
353
372
|
}
|
|
354
373
|
/**
|
|
355
|
-
*
|
|
356
|
-
*
|
|
357
|
-
*
|
|
358
|
-
*
|
|
359
|
-
*
|
|
374
|
+
* Builds and/or validates the configuration.
|
|
375
|
+
*
|
|
376
|
+
* TL;DR;
|
|
377
|
+
* If not provided, generate a default configuration based off the metadata extracted
|
|
378
|
+
* when processing the query in previous steps.
|
|
379
|
+
* If provided, check if the configuration aggree with the query processing metadata.
|
|
380
|
+
*
|
|
381
|
+
* CONTEXT:
|
|
382
|
+
* A data-cube conceptually consists of a data query, in form of a Pure query, instead
|
|
383
|
+
* of a particular specification object format, and this configuration, that holds mostly
|
|
384
|
+
* layout and styling customization. But there are overlaps, i.e. certain _meta_ query
|
|
385
|
+
* configuration are stored in this configuration, e.g. column aggregation type, because
|
|
386
|
+
* a column aggregation's preference needs to be specified even when there's no aggregation
|
|
387
|
+
* specified over that column in the data query.
|
|
388
|
+
*
|
|
389
|
+
* But in the example above, if the column is part of an aggregation, we have to ensure
|
|
390
|
+
* the configuration is consistent with the query. Conflicts can happen, for example:
|
|
391
|
+
* - column kind and type conflict with aggregation
|
|
392
|
+
* - column kind and type conflict with the column configuration
|
|
393
|
+
*
|
|
394
|
+
* In those cases, we need to make sure the query and the configuration to agree.
|
|
395
|
+
* If a config is provided, we will need to validate that config. If none is provided,
|
|
396
|
+
* we will generate a config from the query processing metadata, in which case, no
|
|
397
|
+
* validation is needed. The latter case comes up quite often where the query comes from a
|
|
398
|
+
* different source, such as Studio or Query, or another part of Engine, and the layout
|
|
399
|
+
* configuration is not specified.
|
|
360
400
|
*/
|
|
361
|
-
function validateAndBuildConfiguration(
|
|
362
|
-
const data = snapshot.data;
|
|
363
|
-
const
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
401
|
+
function validateAndBuildConfiguration(context, baseQuery, engine) {
|
|
402
|
+
const data = context.snapshot.data;
|
|
403
|
+
const config = baseQuery.configuration;
|
|
404
|
+
// generate a default configuration anyway to be used to compare with the
|
|
405
|
+
// provided configuration for validation purpose
|
|
406
|
+
const _config = newConfiguration(context);
|
|
407
|
+
if (!config) {
|
|
408
|
+
return _config;
|
|
409
|
+
}
|
|
410
|
+
// check tree column sort direction (only relevant if groupBy is present)
|
|
411
|
+
if (data.groupBy) {
|
|
412
|
+
assertTrue(config.treeColumnSortDirection === _config.treeColumnSortDirection, `Can't process configuration: tree column sort direction mismatch (expected: '${_config.treeColumnSortDirection.toLowerCase()}', found: '${config.treeColumnSortDirection.toLowerCase()}')`);
|
|
413
|
+
}
|
|
414
|
+
// check columns
|
|
415
|
+
const columns = config.columns;
|
|
416
|
+
const _columns = _config.columns;
|
|
417
|
+
const columnNames = new Set();
|
|
418
|
+
// check for duplicate columns
|
|
419
|
+
columns.forEach((col) => {
|
|
420
|
+
if (columnNames.has(col.name)) {
|
|
421
|
+
throw new Error(`Can't process configuration: found duplicate columns '${col.name}'`);
|
|
422
|
+
}
|
|
423
|
+
else {
|
|
424
|
+
columnNames.add(col.name);
|
|
425
|
+
}
|
|
426
|
+
});
|
|
427
|
+
// check for extra columns
|
|
428
|
+
columns.forEach((col) => {
|
|
429
|
+
if (!_findCol(_columns, col.name)) {
|
|
430
|
+
throw new Error(`Can't process configuration: found extra column '${col.name}'`);
|
|
431
|
+
}
|
|
432
|
+
});
|
|
433
|
+
// check for missing columns
|
|
434
|
+
_columns.forEach((col) => {
|
|
435
|
+
if (!_findCol(columns, col.name)) {
|
|
436
|
+
throw new Error(`Can't process configuration: missing column '${col.name}'`);
|
|
437
|
+
}
|
|
438
|
+
});
|
|
439
|
+
// check for columns ordering
|
|
440
|
+
const columnsOrdering = [
|
|
441
|
+
...data.selectColumns,
|
|
442
|
+
...data.groupExtendedColumns,
|
|
443
|
+
...[...data.sourceColumns, ...data.leafExtendedColumns].filter((col) => !_findCol(data.selectColumns, col.name)),
|
|
444
|
+
];
|
|
445
|
+
columnsOrdering.forEach((_col, idx) => {
|
|
446
|
+
const col = at(columns, idx);
|
|
447
|
+
assertTrue(_col.name === col.name, `Can't process configuration: column ordering mismatch at index ${idx} (expected: '${_col.name}', found: '${col.name})', expected ordering: ${columnsOrdering.map((c) => c.name).join(', ')}`);
|
|
448
|
+
});
|
|
449
|
+
columns.forEach((column) => {
|
|
450
|
+
const _column = guaranteeNonNullable(_findCol(_columns, column.name));
|
|
451
|
+
// check type
|
|
452
|
+
assertTrue(column.type === _column.type, `Can't process configuration: type mismatch for column '${column.name}' (expected: '${_column.type}', found: '${column.type}')`);
|
|
453
|
+
// check selection
|
|
454
|
+
assertTrue(column.isSelected === _column.isSelected, `Can't process configuration: selection mismatch for column '${column.name}' (expected: '${_column.isSelected}', found: '${column.isSelected}')`);
|
|
455
|
+
// check kind (only relevant if aggregation is present)
|
|
456
|
+
if (data.pivot ?? data.groupBy) {
|
|
457
|
+
assertTrue(column.kind === _column.kind, `Can't process configuration: kind mismatch for column '${column.name}' (expected: '${_column.kind.toLowerCase()}', found: '${column.kind.toLowerCase()}')`);
|
|
458
|
+
}
|
|
459
|
+
// check aggregation (only relevant if aggregation is present)
|
|
460
|
+
if (data.pivot ?? data.groupBy) {
|
|
461
|
+
assertTrue(column.aggregateOperator === _column.aggregateOperator, `Can't process configuration: aggregation operator mismatch for column '${column.name}' (expected: '${_column.aggregateOperator}', found: '${column.aggregateOperator}')`);
|
|
462
|
+
assertTrue(engine
|
|
463
|
+
.getAggregateOperation(column.aggregateOperator)
|
|
464
|
+
.isCompatibleWithParameterValues(column.aggregationParameters), `Can't process configuration: incompatible aggregation parameter values for column '${column.name}' (operator: '${column.aggregateOperator}')`);
|
|
465
|
+
}
|
|
466
|
+
// check pivot sort direction and exclusion (only relevant if pivot is present)
|
|
467
|
+
if (data.pivot) {
|
|
468
|
+
assertTrue(column.excludedFromPivot === _column.excludedFromPivot, `Can't process configuration: pivot exclusion mismatch for column '${column.name}' (expected: '${_column.excludedFromPivot}', found: '${column.excludedFromPivot}')`);
|
|
469
|
+
assertTrue(column.pivotSortDirection === _column.pivotSortDirection, `Can't process configuration: pivot sort direction mismatch for column '${column.name}' (expected: '${_column.pivotSortDirection?.toLowerCase() ?? 'none'}', found: '${column.pivotSortDirection?.toLowerCase() ?? 'none'}')`);
|
|
470
|
+
}
|
|
373
471
|
});
|
|
374
|
-
return
|
|
472
|
+
return config;
|
|
375
473
|
}
|
|
376
474
|
//# sourceMappingURL=DataCubeQuerySnapshotBuilder.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataCubeQuerySnapshotBuilder.js","sourceRoot":"","sources":["../../../src/stores/core/DataCubeQuerySnapshotBuilder.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DataCubeQuerySnapshotBuilder.js","sourceRoot":"","sources":["../../../src/stores/core/DataCubeQuerySnapshotBuilder.ts"],"names":[],"mappings":"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"}
|