@finos/legend-data-cube 0.0.42 → 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/index.d.ts +1 -0
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +1 -0
- package/lib/index.js.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/index.tsx +1 -0
- 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
|
@@ -14,45 +14,21 @@
|
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
16
|
|
|
17
|
-
import { action, makeObservable, observable } from 'mobx';
|
|
18
17
|
import { type DataCubeQuerySnapshot } from '../../core/DataCubeQuerySnapshot.js';
|
|
19
|
-
import { _toCol } from '../../core/model/DataCubeColumn.js';
|
|
18
|
+
import { _findCol, _toCol } from '../../core/model/DataCubeColumn.js';
|
|
20
19
|
import {
|
|
21
20
|
DataCubeColumnKind,
|
|
22
21
|
DataCubeQuerySortDirection,
|
|
23
22
|
} from '../../core/DataCubeQueryEngine.js';
|
|
24
23
|
import type { DataCubeQueryEditorPanelState } from './DataCubeEditorPanelState.js';
|
|
25
24
|
import {
|
|
26
|
-
DataCubeEditorColumnSelectorColumnState,
|
|
27
25
|
DataCubeEditorColumnSelectorState,
|
|
26
|
+
DataCubeEditorSortColumnState,
|
|
28
27
|
} from './DataCubeEditorColumnSelectorState.js';
|
|
29
28
|
import type { DataCubeEditorState } from './DataCubeEditorState.js';
|
|
30
29
|
import type { DataCubeConfiguration } from '../../core/model/DataCubeConfiguration.js';
|
|
31
30
|
import { uniqBy } from '@finos/legend-shared';
|
|
32
31
|
|
|
33
|
-
export class DataCubeEditorSortColumnState extends DataCubeEditorColumnSelectorColumnState {
|
|
34
|
-
direction: DataCubeQuerySortDirection;
|
|
35
|
-
|
|
36
|
-
constructor(
|
|
37
|
-
name: string,
|
|
38
|
-
type: string,
|
|
39
|
-
direction: DataCubeQuerySortDirection,
|
|
40
|
-
) {
|
|
41
|
-
super(name, type);
|
|
42
|
-
|
|
43
|
-
makeObservable(this, {
|
|
44
|
-
direction: observable,
|
|
45
|
-
setDirection: action,
|
|
46
|
-
});
|
|
47
|
-
|
|
48
|
-
this.direction = direction;
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
setDirection(val: DataCubeQuerySortDirection) {
|
|
52
|
-
this.direction = val;
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
|
|
56
32
|
export class DataCubeEditorSortColumnSelectorState extends DataCubeEditorColumnSelectorState<DataCubeEditorSortColumnState> {
|
|
57
33
|
override cloneColumn(column: DataCubeEditorSortColumnState) {
|
|
58
34
|
return new DataCubeEditorSortColumnState(
|
|
@@ -78,8 +54,9 @@ export class DataCubeEditorSortColumnSelectorState extends DataCubeEditorColumnS
|
|
|
78
54
|
this._editor.columnProperties.getColumnConfiguration(
|
|
79
55
|
column.name,
|
|
80
56
|
).kind === DataCubeColumnKind.DIMENSION &&
|
|
81
|
-
!
|
|
82
|
-
|
|
57
|
+
!_findCol(
|
|
58
|
+
this._editor.horizontalPivots.selector.selectedColumns,
|
|
59
|
+
column.name,
|
|
83
60
|
),
|
|
84
61
|
),
|
|
85
62
|
]
|
|
@@ -113,7 +90,7 @@ export class DataCubeEditorSortsPanelState
|
|
|
113
90
|
adaptPropagatedChanges(): void {
|
|
114
91
|
this.selector.setSelectedColumns(
|
|
115
92
|
this.selector.selectedColumns.filter((column) =>
|
|
116
|
-
this.selector.availableColumns
|
|
93
|
+
_findCol(this.selector.availableColumns, column.name),
|
|
117
94
|
),
|
|
118
95
|
);
|
|
119
96
|
}
|
|
@@ -23,6 +23,7 @@ import {
|
|
|
23
23
|
type DataCubeQuerySnapshotExtendedColumn,
|
|
24
24
|
} from '../../core/DataCubeQuerySnapshot.js';
|
|
25
25
|
import {
|
|
26
|
+
_findCol,
|
|
26
27
|
_toCol,
|
|
27
28
|
type DataCubeColumn,
|
|
28
29
|
} from '../../core/model/DataCubeColumn.js';
|
|
@@ -177,9 +178,7 @@ export class DataCubeEditorState extends DataCubeQuerySnapshotController {
|
|
|
177
178
|
this.sorts.selector.availableColumns
|
|
178
179
|
.filter(
|
|
179
180
|
(col) =>
|
|
180
|
-
!tempSnapshot.data.groupExtendedColumns.
|
|
181
|
-
(column) => column.name === col.name,
|
|
182
|
-
),
|
|
181
|
+
!_findCol(tempSnapshot.data.groupExtendedColumns, col.name),
|
|
183
182
|
)
|
|
184
183
|
.map(_toCol);
|
|
185
184
|
}
|
|
@@ -18,7 +18,7 @@ import { uniqBy } from '@finos/legend-shared';
|
|
|
18
18
|
import type { DataCubeConfiguration } from '../../core/model/DataCubeConfiguration.js';
|
|
19
19
|
import { DataCubeColumnKind } from '../../core/DataCubeQueryEngine.js';
|
|
20
20
|
import { type DataCubeQuerySnapshot } from '../../core/DataCubeQuerySnapshot.js';
|
|
21
|
-
import { _toCol } from '../../core/model/DataCubeColumn.js';
|
|
21
|
+
import { _findCol, _toCol } from '../../core/model/DataCubeColumn.js';
|
|
22
22
|
import {
|
|
23
23
|
DataCubeEditorColumnSelectorColumnState,
|
|
24
24
|
DataCubeEditorColumnSelectorState,
|
|
@@ -42,12 +42,11 @@ export class DataCubeEditorVerticalPivotColumnSelectorState extends DataCubeEdit
|
|
|
42
42
|
(column) =>
|
|
43
43
|
column.kind === DataCubeColumnKind.DIMENSION &&
|
|
44
44
|
// exclude group-level extended columns
|
|
45
|
-
!this._editor.groupExtendColumns.
|
|
46
|
-
(col) => col.name === column.name,
|
|
47
|
-
) &&
|
|
45
|
+
!_findCol(this._editor.groupExtendColumns, column.name) &&
|
|
48
46
|
// exclude pivot columns
|
|
49
|
-
!
|
|
50
|
-
|
|
47
|
+
!_findCol(
|
|
48
|
+
this._editor.horizontalPivots.selector.selectedColumns,
|
|
49
|
+
column.name,
|
|
51
50
|
),
|
|
52
51
|
)
|
|
53
52
|
.map(
|
|
@@ -69,7 +68,7 @@ export class DataCubeEditorVerticalPivotsPanelState
|
|
|
69
68
|
adaptPropagatedChanges(): void {
|
|
70
69
|
this.selector.setSelectedColumns(
|
|
71
70
|
this.selector.selectedColumns.filter((column) =>
|
|
72
|
-
this.selector.availableColumns
|
|
71
|
+
_findCol(this.selector.availableColumns, column.name),
|
|
73
72
|
),
|
|
74
73
|
);
|
|
75
74
|
}
|
|
@@ -52,6 +52,7 @@ import {
|
|
|
52
52
|
_serializeValueSpecification,
|
|
53
53
|
_deserializeValueSpecification,
|
|
54
54
|
} from '../../core/DataCubeQueryBuilderUtils.js';
|
|
55
|
+
import { _findCol } from '../../core/model/DataCubeColumn.js';
|
|
55
56
|
|
|
56
57
|
export abstract class DataCubeColumnBaseEditorState {
|
|
57
58
|
protected readonly uuid = uuid();
|
|
@@ -244,9 +245,7 @@ export abstract class DataCubeColumnBaseEditorState {
|
|
|
244
245
|
this.buildExtendBaseQuery(),
|
|
245
246
|
this.view.source,
|
|
246
247
|
);
|
|
247
|
-
let returnType = returnRelationType.columns.
|
|
248
|
-
(col) => col.name === this._name,
|
|
249
|
-
)?.type;
|
|
248
|
+
let returnType = _findCol(returnRelationType.columns, this._name)?.type;
|
|
250
249
|
returnType =
|
|
251
250
|
returnType && isPrimitiveType(returnType) ? returnType : undefined;
|
|
252
251
|
this.setReturnType(returnType);
|
|
@@ -20,6 +20,7 @@ import {
|
|
|
20
20
|
type DataCubeQuerySnapshotExtendedColumn,
|
|
21
21
|
} from '../../core/DataCubeQuerySnapshot.js';
|
|
22
22
|
import {
|
|
23
|
+
_findCol,
|
|
23
24
|
_toCol,
|
|
24
25
|
type DataCubeColumn,
|
|
25
26
|
} from '../../core/model/DataCubeColumn.js';
|
|
@@ -45,7 +46,7 @@ import {
|
|
|
45
46
|
DataCubeColumnKind,
|
|
46
47
|
getDataType,
|
|
47
48
|
} from '../../core/DataCubeQueryEngine.js';
|
|
48
|
-
import {
|
|
49
|
+
import { newColumnConfiguration } from '../../core/DataCubeConfigurationBuilder.js';
|
|
49
50
|
import { _lambda } from '../../core/DataCubeQueryBuilderUtils.js';
|
|
50
51
|
import { EngineError } from '@finos/legend-graph';
|
|
51
52
|
|
|
@@ -142,21 +143,21 @@ export class DataCubeExtendManagerState extends DataCubeQuerySnapshotController
|
|
|
142
143
|
}
|
|
143
144
|
|
|
144
145
|
if (
|
|
145
|
-
!this.leafExtendedColumns
|
|
146
|
-
!this.groupExtendedColumns
|
|
146
|
+
!_findCol(this.leafExtendedColumns, columnName) &&
|
|
147
|
+
!_findCol(this.groupExtendedColumns, columnName)
|
|
147
148
|
) {
|
|
148
149
|
return;
|
|
149
150
|
}
|
|
150
151
|
const editor = new DataCubeExistingColumnEditorState(
|
|
151
152
|
this,
|
|
152
153
|
guaranteeNonNullable(
|
|
153
|
-
this.leafExtendedColumns
|
|
154
|
-
this.groupExtendedColumns
|
|
154
|
+
_findCol(this.leafExtendedColumns, columnName) ??
|
|
155
|
+
_findCol(this.groupExtendedColumns, columnName),
|
|
155
156
|
).data,
|
|
156
157
|
guaranteeNonNullable(
|
|
157
|
-
this.columnConfigurations
|
|
158
|
+
_findCol(this.columnConfigurations, columnName),
|
|
158
159
|
).kind,
|
|
159
|
-
Boolean(this.groupExtendedColumns
|
|
160
|
+
Boolean(_findCol(this.groupExtendedColumns, columnName)),
|
|
160
161
|
);
|
|
161
162
|
await editor.initialize();
|
|
162
163
|
this.existingColumnEditors.push(editor);
|
|
@@ -169,7 +170,7 @@ export class DataCubeExtendManagerState extends DataCubeQuerySnapshotController
|
|
|
169
170
|
columnKind: DataCubeColumnKind | undefined,
|
|
170
171
|
editor: DataCubeNewColumnState,
|
|
171
172
|
) {
|
|
172
|
-
const columnConfiguration =
|
|
173
|
+
const columnConfiguration = newColumnConfiguration(column);
|
|
173
174
|
if (columnKind) {
|
|
174
175
|
columnConfiguration.kind = columnKind;
|
|
175
176
|
columnConfiguration.excludedFromPivot =
|
|
@@ -197,14 +198,14 @@ export class DataCubeExtendManagerState extends DataCubeQuerySnapshotController
|
|
|
197
198
|
columnKind: DataCubeColumnKind | undefined,
|
|
198
199
|
) {
|
|
199
200
|
if (
|
|
200
|
-
!this.leafExtendedColumns
|
|
201
|
-
!this.groupExtendedColumns
|
|
201
|
+
!_findCol(this.leafExtendedColumns, columnName) &&
|
|
202
|
+
!_findCol(this.groupExtendedColumns, columnName)
|
|
202
203
|
) {
|
|
203
204
|
return;
|
|
204
205
|
}
|
|
205
206
|
|
|
206
207
|
const columnConfiguration = guaranteeNonNullable(
|
|
207
|
-
this.columnConfigurations
|
|
208
|
+
_findCol(this.columnConfigurations, columnName),
|
|
208
209
|
);
|
|
209
210
|
|
|
210
211
|
const task = this.view.taskService.newTask('Column update check');
|
|
@@ -326,8 +327,8 @@ export class DataCubeExtendManagerState extends DataCubeQuerySnapshotController
|
|
|
326
327
|
|
|
327
328
|
async deleteColumn(columnName: string) {
|
|
328
329
|
if (
|
|
329
|
-
!this.leafExtendedColumns
|
|
330
|
-
!this.groupExtendedColumns
|
|
330
|
+
!_findCol(this.leafExtendedColumns, columnName) &&
|
|
331
|
+
!_findCol(this.groupExtendedColumns, columnName)
|
|
331
332
|
) {
|
|
332
333
|
return;
|
|
333
334
|
}
|
|
@@ -37,6 +37,7 @@ import {
|
|
|
37
37
|
} from '../../core/model/DataCubeConfiguration.js';
|
|
38
38
|
import type { DisplayState } from '../../services/DataCubeLayoutService.js';
|
|
39
39
|
import { DataCubeFilterEditor } from '../../../components/view/filter/DataCubeFilterEditor.js';
|
|
40
|
+
import { _findCol } from '../../core/model/DataCubeColumn.js';
|
|
40
41
|
|
|
41
42
|
/**
|
|
42
43
|
* This query editor state backs the form editor for filter. It batches changes made
|
|
@@ -295,10 +296,7 @@ export class DataCubeFilterEditorState extends DataCubeQuerySnapshotController {
|
|
|
295
296
|
);
|
|
296
297
|
// NOTE: filtering group-level extended columns is not supported
|
|
297
298
|
this.columns = configuration.columns.filter(
|
|
298
|
-
(column) =>
|
|
299
|
-
!snapshot.data.groupExtendedColumns.find(
|
|
300
|
-
(col) => col.name === column.name,
|
|
301
|
-
),
|
|
299
|
+
(column) => !_findCol(snapshot.data.groupExtendedColumns, column.name),
|
|
302
300
|
);
|
|
303
301
|
|
|
304
302
|
this.tree.nodes = new Map<string, DataCubeFilterEditorTreeNode>();
|
|
@@ -31,18 +31,19 @@ import {
|
|
|
31
31
|
pruneObject,
|
|
32
32
|
} from '@finos/legend-shared';
|
|
33
33
|
import { buildExecutableQuery } from '../../core/DataCubeQueryBuilder.js';
|
|
34
|
-
import {
|
|
34
|
+
import {
|
|
35
|
+
PureClientVersion,
|
|
36
|
+
type TabularDataSet,
|
|
37
|
+
V1_Lambda,
|
|
38
|
+
} from '@finos/legend-graph';
|
|
35
39
|
import { makeObservable, observable, runInAction } from 'mobx';
|
|
36
40
|
import type {
|
|
37
41
|
DataCubeConfiguration,
|
|
38
42
|
DataCubeConfigurationColorKey,
|
|
39
43
|
} from '../../core/model/DataCubeConfiguration.js';
|
|
40
44
|
import { type DataCubeQuerySnapshot } from '../../core/DataCubeQuerySnapshot.js';
|
|
41
|
-
import { _sortByColName } from '../../core/model/DataCubeColumn.js';
|
|
42
|
-
import {
|
|
43
|
-
isPivotResultColumnName,
|
|
44
|
-
type DataCubeQueryFunctionMap,
|
|
45
|
-
} from '../../core/DataCubeQueryEngine.js';
|
|
45
|
+
import { _findCol, _sortByColName } from '../../core/model/DataCubeColumn.js';
|
|
46
|
+
import { isPivotResultColumnName } from '../../core/DataCubeQueryEngine.js';
|
|
46
47
|
import { buildQuerySnapshot } from './DataCubeGridQuerySnapshotBuilder.js';
|
|
47
48
|
import { AlertType } from '../../services/DataCubeAlertService.js';
|
|
48
49
|
import { sum } from 'mathjs';
|
|
@@ -260,6 +261,7 @@ async function getCastColumns(
|
|
|
260
261
|
const snapshot = currentSnapshot.clone();
|
|
261
262
|
guaranteeNonNullable(snapshot.data.pivot).castColumns = [];
|
|
262
263
|
snapshot.data.groupBy = undefined;
|
|
264
|
+
snapshot.data.groupExtendedColumns = [];
|
|
263
265
|
snapshot.data.sortColumns = [];
|
|
264
266
|
snapshot.data.limit = 0;
|
|
265
267
|
const query = buildExecutableQuery(
|
|
@@ -277,18 +279,6 @@ async function getCastColumns(
|
|
|
277
279
|
filterOperations,
|
|
278
280
|
aggregateOperations,
|
|
279
281
|
) => {
|
|
280
|
-
const _unprocess = (funcMapKey: keyof DataCubeQueryFunctionMap) => {
|
|
281
|
-
const func = funcMap[funcMapKey];
|
|
282
|
-
if (func) {
|
|
283
|
-
sequence.splice(sequence.indexOf(func), 1);
|
|
284
|
-
funcMap[funcMapKey] = undefined;
|
|
285
|
-
}
|
|
286
|
-
};
|
|
287
|
-
|
|
288
|
-
if (funcMap.groupExtend) {
|
|
289
|
-
_unprocess('groupExtend');
|
|
290
|
-
}
|
|
291
|
-
|
|
292
282
|
// when both pivot and groupBy present, we need to account for the count column
|
|
293
283
|
// in the cast expression
|
|
294
284
|
if (funcMap.pivot && currentSnapshot.data.groupBy) {
|
|
@@ -304,6 +294,11 @@ async function getCastColumns(
|
|
|
304
294
|
debug: view.settingService.getBooleanValue(
|
|
305
295
|
DataCubeSettingKey.DEBUGGER__ENABLE_DEBUG_MODE,
|
|
306
296
|
),
|
|
297
|
+
clientVersion: view.settingService.getBooleanValue(
|
|
298
|
+
DataCubeSettingKey.DEBUGGER__USE_DEV_CLIENT_PROTOCOL_VERSION,
|
|
299
|
+
)
|
|
300
|
+
? PureClientVersion.VX_X_X
|
|
301
|
+
: undefined,
|
|
307
302
|
});
|
|
308
303
|
|
|
309
304
|
return result.result.builder.columns.map((column) => ({
|
|
@@ -380,8 +375,9 @@ export class DataCubeGridClientServerSideDataSource
|
|
|
380
375
|
newSnapshot.data.pivot.castColumns = castColumns;
|
|
381
376
|
newSnapshot.data.sortColumns = newSnapshot.data.sortColumns.filter(
|
|
382
377
|
(column) =>
|
|
383
|
-
|
|
384
|
-
|
|
378
|
+
_findCol(
|
|
379
|
+
[...castColumns, ...newSnapshot.data.groupExtendedColumns],
|
|
380
|
+
column.name,
|
|
385
381
|
),
|
|
386
382
|
);
|
|
387
383
|
} catch (error) {
|
|
@@ -430,6 +426,11 @@ export class DataCubeGridClientServerSideDataSource
|
|
|
430
426
|
debug: this._view.settingService.getBooleanValue(
|
|
431
427
|
DataCubeSettingKey.DEBUGGER__ENABLE_DEBUG_MODE,
|
|
432
428
|
),
|
|
429
|
+
clientVersion: this._view.settingService.getBooleanValue(
|
|
430
|
+
DataCubeSettingKey.DEBUGGER__USE_DEV_CLIENT_PROTOCOL_VERSION,
|
|
431
|
+
)
|
|
432
|
+
? PureClientVersion.VX_X_X
|
|
433
|
+
: undefined,
|
|
433
434
|
},
|
|
434
435
|
);
|
|
435
436
|
const rowData = buildRowData(result.result.result, newSnapshot);
|
|
@@ -21,9 +21,13 @@
|
|
|
21
21
|
* AG Grid, from the query snapshot.
|
|
22
22
|
***************************************************************************************/
|
|
23
23
|
|
|
24
|
-
import {
|
|
24
|
+
import {
|
|
25
|
+
type DataCubeQuerySnapshot,
|
|
26
|
+
type DataCubeQuerySnapshotPivot,
|
|
27
|
+
} from '../../core/DataCubeQuerySnapshot.js';
|
|
25
28
|
import {
|
|
26
29
|
_findCol,
|
|
30
|
+
_toCol,
|
|
27
31
|
type DataCubeColumn,
|
|
28
32
|
} from '../../core/model/DataCubeColumn.js';
|
|
29
33
|
import type {
|
|
@@ -61,11 +65,11 @@ import {
|
|
|
61
65
|
last,
|
|
62
66
|
getQueryParameters,
|
|
63
67
|
getQueryParameterValue,
|
|
64
|
-
guaranteeNonNullable,
|
|
65
68
|
isNonNullable,
|
|
66
69
|
isNullable,
|
|
67
70
|
isNumber,
|
|
68
71
|
isValidUrl,
|
|
72
|
+
assertTrue,
|
|
69
73
|
} from '@finos/legend-shared';
|
|
70
74
|
import type {
|
|
71
75
|
DataCubeColumnConfiguration,
|
|
@@ -216,17 +220,15 @@ function _displaySpec(columnData: ColumnData) {
|
|
|
216
220
|
column.hideFromView ||
|
|
217
221
|
!column.isSelected ||
|
|
218
222
|
(Boolean(
|
|
219
|
-
snapshot.data.pivot &&
|
|
220
|
-
!snapshot.data.pivot.castColumns.find((col) => col.name === name),
|
|
223
|
+
snapshot.data.pivot && !_findCol(snapshot.data.pivot.castColumns, name),
|
|
221
224
|
) &&
|
|
222
|
-
!snapshot.data.groupExtendedColumns
|
|
225
|
+
!_findCol(snapshot.data.groupExtendedColumns, name)),
|
|
223
226
|
lockVisible:
|
|
224
227
|
!column.isSelected ||
|
|
225
228
|
(Boolean(
|
|
226
|
-
snapshot.data.pivot &&
|
|
227
|
-
!snapshot.data.pivot.castColumns.find((col) => col.name === name),
|
|
229
|
+
snapshot.data.pivot && !_findCol(snapshot.data.pivot.castColumns, name),
|
|
228
230
|
) &&
|
|
229
|
-
!snapshot.data.groupExtendedColumns
|
|
231
|
+
!_findCol(snapshot.data.groupExtendedColumns, name)),
|
|
230
232
|
pinned:
|
|
231
233
|
column.pinned !== undefined
|
|
232
234
|
? column.pinned === DataCubeColumnPinPlacement.RIGHT
|
|
@@ -643,7 +645,7 @@ function generatePivotResultColumnHeaderTooltip(
|
|
|
643
645
|
return values.join(' / ');
|
|
644
646
|
}
|
|
645
647
|
if (values.length === snapshot.data.pivot.columns.length + 1) {
|
|
646
|
-
const baseColumnName =
|
|
648
|
+
const baseColumnName = at(values, values.length - 1);
|
|
647
649
|
const columnConfiguration = _findCol(configuration.columns, baseColumnName);
|
|
648
650
|
return `Column = ${
|
|
649
651
|
columnConfiguration
|
|
@@ -783,6 +785,53 @@ function generateDefinitionForPivotResultColumns(
|
|
|
783
785
|
return columnDefs;
|
|
784
786
|
}
|
|
785
787
|
|
|
788
|
+
/**
|
|
789
|
+
* We tried to push-down to the DB level to ensure a particular order
|
|
790
|
+
* for the pivot result columns, we do so by preceding pivot() with a sort().
|
|
791
|
+
*
|
|
792
|
+
* Implementations of pivot() is highly non-standard across different DBs, so
|
|
793
|
+
* this rearranging needs to be done client-side.
|
|
794
|
+
*/
|
|
795
|
+
function rearrangePivotResultColumns(
|
|
796
|
+
pivotResultColumns: DataCubeColumn[],
|
|
797
|
+
pivotData: DataCubeQuerySnapshotPivot,
|
|
798
|
+
configuration: DataCubeConfiguration,
|
|
799
|
+
) {
|
|
800
|
+
try {
|
|
801
|
+
const columns: (DataCubeColumn & { values: string[] })[] = [];
|
|
802
|
+
for (const pivotResultColumn of pivotResultColumns) {
|
|
803
|
+
const column = {
|
|
804
|
+
...pivotResultColumn,
|
|
805
|
+
values: pivotResultColumn.name
|
|
806
|
+
.split(PIVOT_COLUMN_NAME_VALUE_SEPARATOR)
|
|
807
|
+
.slice(0, -1), // remove the last entry
|
|
808
|
+
};
|
|
809
|
+
assertTrue(column.values.length === pivotData.columns.length);
|
|
810
|
+
columns.push(column);
|
|
811
|
+
}
|
|
812
|
+
const columnConfigs = pivotData.columns
|
|
813
|
+
.map((col) => configuration.getColumn(col.name))
|
|
814
|
+
.filter(isNonNullable);
|
|
815
|
+
assertTrue(columnConfigs.length === pivotData.columns.length);
|
|
816
|
+
|
|
817
|
+
// apply multi dimensional sorts by starting from the last pivot column to the first
|
|
818
|
+
for (let i = pivotData.columns.length - 1; i >= 0; i--) {
|
|
819
|
+
const direction =
|
|
820
|
+
columnConfigs[i]?.pivotSortDirection ??
|
|
821
|
+
DataCubeQuerySortDirection.ASCENDING;
|
|
822
|
+
columns.sort((a, b) =>
|
|
823
|
+
direction === DataCubeQuerySortDirection.ASCENDING
|
|
824
|
+
? at(a.values, i).localeCompare(at(b.values, i))
|
|
825
|
+
: at(b.values, i).localeCompare(at(a.values, i)),
|
|
826
|
+
);
|
|
827
|
+
}
|
|
828
|
+
|
|
829
|
+
return columns.map((col) => _toCol(col));
|
|
830
|
+
} catch {
|
|
831
|
+
return pivotResultColumns;
|
|
832
|
+
}
|
|
833
|
+
}
|
|
834
|
+
|
|
786
835
|
export function generateColumnDefs(
|
|
787
836
|
snapshot: DataCubeQuerySnapshot,
|
|
788
837
|
configuration: DataCubeConfiguration,
|
|
@@ -795,17 +844,17 @@ export function generateColumnDefs(
|
|
|
795
844
|
// must still be included in the column definitions, and made hidden instead.
|
|
796
845
|
const columns = configuration.columns.filter(
|
|
797
846
|
(col) =>
|
|
798
|
-
snapshot.data.selectColumns
|
|
799
|
-
snapshot.data.groupExtendedColumns.
|
|
800
|
-
(column) => column.name === col.name,
|
|
801
|
-
),
|
|
847
|
+
_findCol(snapshot.data.selectColumns, col.name) ??
|
|
848
|
+
_findCol(snapshot.data.groupExtendedColumns, col.name),
|
|
802
849
|
);
|
|
803
850
|
let pivotResultColumns: DataCubeColumn[] = [];
|
|
804
851
|
|
|
805
852
|
if (snapshot.data.pivot) {
|
|
806
853
|
const castColumns = snapshot.data.pivot.castColumns;
|
|
807
|
-
pivotResultColumns =
|
|
808
|
-
isPivotResultColumnName(col.name),
|
|
854
|
+
pivotResultColumns = rearrangePivotResultColumns(
|
|
855
|
+
castColumns.filter((col) => isPivotResultColumnName(col.name)),
|
|
856
|
+
snapshot.data.pivot,
|
|
857
|
+
configuration,
|
|
809
858
|
);
|
|
810
859
|
}
|
|
811
860
|
|
|
@@ -26,15 +26,16 @@ import {
|
|
|
26
26
|
type DataCubeQuerySnapshotSortColumn,
|
|
27
27
|
} from '../../core/DataCubeQuerySnapshot.js';
|
|
28
28
|
import {
|
|
29
|
+
_findCol,
|
|
29
30
|
_toCol,
|
|
30
31
|
type DataCubeColumn,
|
|
31
32
|
} from '../../core/model/DataCubeColumn.js';
|
|
32
33
|
import { DataCubeQuerySnapshotController } from '../../services/DataCubeQuerySnapshotService.js';
|
|
33
34
|
import {
|
|
34
|
-
type DataCubeQuerySortDirection,
|
|
35
35
|
type DataCubeColumnPinPlacement,
|
|
36
36
|
DataCubeColumnKind,
|
|
37
37
|
DataCubeQueryFilterGroupOperator,
|
|
38
|
+
DataCubeQuerySortDirection,
|
|
38
39
|
isPivotResultColumnName,
|
|
39
40
|
getPivotResultColumnBaseColumnName,
|
|
40
41
|
} from '../../core/DataCubeQueryEngine.js';
|
|
@@ -92,7 +93,7 @@ export class DataCubeGridControllerState extends DataCubeQuerySnapshotController
|
|
|
92
93
|
| undefined;
|
|
93
94
|
|
|
94
95
|
getColumnConfiguration(colName: string | undefined) {
|
|
95
|
-
return this.configuration.columns
|
|
96
|
+
return _findCol(this.configuration.columns, colName);
|
|
96
97
|
}
|
|
97
98
|
|
|
98
99
|
// --------------------------------- FILTER ---------------------------------
|
|
@@ -184,7 +185,7 @@ export class DataCubeGridControllerState extends DataCubeQuerySnapshotController
|
|
|
184
185
|
];
|
|
185
186
|
|
|
186
187
|
const rearrangedSelectColumns = columns
|
|
187
|
-
.map((colName) => this.selectColumns
|
|
188
|
+
.map((colName) => _findCol(this.selectColumns, colName))
|
|
188
189
|
.filter(isNonNullable);
|
|
189
190
|
this.selectColumns = [
|
|
190
191
|
...rearrangedSelectColumns,
|
|
@@ -221,14 +222,15 @@ export class DataCubeGridControllerState extends DataCubeQuerySnapshotController
|
|
|
221
222
|
}
|
|
222
223
|
|
|
223
224
|
getHorizontalPivotableColumn(colName: string) {
|
|
224
|
-
return
|
|
225
|
-
.filter(
|
|
225
|
+
return _findCol(
|
|
226
|
+
this.configuration.columns.filter(
|
|
226
227
|
(col) =>
|
|
227
228
|
col.kind === DataCubeColumnKind.DIMENSION &&
|
|
228
229
|
// exclude group-level extended columns
|
|
229
|
-
!this.groupExtendedColumns
|
|
230
|
-
)
|
|
231
|
-
|
|
230
|
+
!_findCol(this.groupExtendedColumns, col.name),
|
|
231
|
+
),
|
|
232
|
+
colName,
|
|
233
|
+
);
|
|
232
234
|
}
|
|
233
235
|
|
|
234
236
|
setHorizontalPivotOnColumn(colName: string) {
|
|
@@ -277,20 +279,17 @@ export class DataCubeGridControllerState extends DataCubeQuerySnapshotController
|
|
|
277
279
|
verticalPivotColumns: DataCubeColumn[] = [];
|
|
278
280
|
|
|
279
281
|
getVerticalPivotableColumn(colName: string) {
|
|
280
|
-
return
|
|
281
|
-
.filter(
|
|
282
|
+
return _findCol(
|
|
283
|
+
this.configuration.columns.filter(
|
|
282
284
|
(col) =>
|
|
283
285
|
col.kind === DataCubeColumnKind.DIMENSION &&
|
|
284
286
|
// exclude group-level extended columns
|
|
285
|
-
!this.groupExtendedColumns.
|
|
286
|
-
(column) => column.name === col.name,
|
|
287
|
-
) &&
|
|
287
|
+
!_findCol(this.groupExtendedColumns, col.name) &&
|
|
288
288
|
// exclude pivot columns
|
|
289
|
-
!this.horizontalPivotColumns.
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
.find((col) => col.name === colName);
|
|
289
|
+
!_findCol(this.horizontalPivotColumns, col.name),
|
|
290
|
+
),
|
|
291
|
+
colName,
|
|
292
|
+
);
|
|
294
293
|
}
|
|
295
294
|
|
|
296
295
|
setVerticalPivotOnColumn(colName: string) {
|
|
@@ -349,12 +348,15 @@ export class DataCubeGridControllerState extends DataCubeQuerySnapshotController
|
|
|
349
348
|
if (!colName) {
|
|
350
349
|
return undefined;
|
|
351
350
|
}
|
|
352
|
-
return
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
351
|
+
return _findCol(
|
|
352
|
+
[
|
|
353
|
+
...(this.horizontalPivotCastColumns.length
|
|
354
|
+
? this.horizontalPivotCastColumns
|
|
355
|
+
: this.selectColumns),
|
|
356
|
+
...this.groupExtendedColumns,
|
|
357
|
+
],
|
|
358
|
+
colName,
|
|
359
|
+
);
|
|
358
360
|
}
|
|
359
361
|
|
|
360
362
|
setSortByColumn(colName: string, direction: DataCubeQuerySortDirection) {
|
|
@@ -430,23 +432,24 @@ export class DataCubeGridControllerState extends DataCubeQuerySnapshotController
|
|
|
430
432
|
|
|
431
433
|
private propagateChanges(baseSnapshot: DataCubeQuerySnapshot) {
|
|
432
434
|
this.verticalPivotColumns = this.verticalPivotColumns.filter(
|
|
433
|
-
(col) =>
|
|
434
|
-
!this.horizontalPivotColumns.find((column) => column.name === col.name),
|
|
435
|
+
(col) => !_findCol(this.horizontalPivotColumns, col.name),
|
|
435
436
|
);
|
|
436
437
|
this.configuration.pivotLayout.expandedPaths = _pruneExpandedPaths(
|
|
437
438
|
baseSnapshot.data.groupBy?.columns ?? [],
|
|
438
439
|
this.verticalPivotColumns,
|
|
439
440
|
this.configuration.pivotLayout.expandedPaths,
|
|
440
441
|
);
|
|
442
|
+
this.configuration.columns.forEach((col) => {
|
|
443
|
+
col.pivotSortDirection = _findCol(this.horizontalPivotColumns, col.name)
|
|
444
|
+
? (col.pivotSortDirection ?? DataCubeQuerySortDirection.ASCENDING)
|
|
445
|
+
: undefined;
|
|
446
|
+
});
|
|
441
447
|
|
|
442
448
|
this.selectColumns = uniqBy(
|
|
443
449
|
[
|
|
444
450
|
...this.configuration.columns.filter(
|
|
445
451
|
(col) =>
|
|
446
|
-
col.isSelected &&
|
|
447
|
-
!this.groupExtendedColumns.find(
|
|
448
|
-
(column) => column.name === col.name,
|
|
449
|
-
),
|
|
452
|
+
col.isSelected && !_findCol(this.groupExtendedColumns, col.name),
|
|
450
453
|
),
|
|
451
454
|
...this.horizontalPivotColumns,
|
|
452
455
|
...this.verticalPivotColumns,
|
|
@@ -468,9 +471,7 @@ export class DataCubeGridControllerState extends DataCubeQuerySnapshotController
|
|
|
468
471
|
(column) =>
|
|
469
472
|
this.getColumnConfiguration(column.name)?.kind ===
|
|
470
473
|
DataCubeColumnKind.DIMENSION &&
|
|
471
|
-
!this.horizontalPivotColumns.
|
|
472
|
-
(col) => col.name === column.name,
|
|
473
|
-
),
|
|
474
|
+
!_findCol(this.horizontalPivotColumns, column.name),
|
|
474
475
|
),
|
|
475
476
|
]
|
|
476
477
|
: [
|
|
@@ -482,7 +483,7 @@ export class DataCubeGridControllerState extends DataCubeQuerySnapshotController
|
|
|
482
483
|
(col) => col.name,
|
|
483
484
|
);
|
|
484
485
|
this.sortColumns = this.sortColumns.filter((col) =>
|
|
485
|
-
sortableColumns
|
|
486
|
+
_findCol(sortableColumns, col.name),
|
|
486
487
|
);
|
|
487
488
|
}
|
|
488
489
|
|