@finos/legend-cube-builder 0.0.4 → 0.0.5
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/README.md +9 -3
- package/docs/adding-an-operation.md +22 -12
- package/docs/demo/DEMO-FAST-NOTES.md +67 -0
- package/docs/demo/README.md +102 -0
- package/docs/demo/specs/duckdb-sales-pivot.cube.json +110 -0
- package/docs/demo/specs/trades-desks-1-joined.cube.json +123 -0
- package/docs/demo/specs/trades-desks-2-grouped.cube.json +140 -0
- package/docs/demo/specs/trades-desks-3-ranked.cube.json +158 -0
- package/docs/demo/specs/trades-desks-4-extended.cube.json +208 -0
- package/docs/demo/specs/trades-desks-5-final.cube.json +248 -0
- package/docs/hosting.md +50 -3
- package/docs/testing.md +32 -0
- package/lib/__lib__/LegendCubeCommand.d.ts +2 -0
- package/lib/__lib__/LegendCubeCommand.d.ts.map +1 -1
- package/lib/__lib__/LegendCubeCommand.js +7 -0
- package/lib/__lib__/LegendCubeCommand.js.map +1 -1
- package/lib/__lib__/LegendCubeFunctionLabels.d.ts +29 -0
- package/lib/__lib__/LegendCubeFunctionLabels.d.ts.map +1 -0
- package/lib/__lib__/LegendCubeFunctionLabels.js +31 -0
- package/lib/__lib__/LegendCubeFunctionLabels.js.map +1 -0
- package/lib/__lib__/LegendCubeHelpText.d.ts +5 -1
- package/lib/__lib__/LegendCubeHelpText.d.ts.map +1 -1
- package/lib/__lib__/LegendCubeHelpText.js +14 -2
- package/lib/__lib__/LegendCubeHelpText.js.map +1 -1
- package/lib/__lib__/LegendCubeLabels.d.ts +100 -8
- package/lib/__lib__/LegendCubeLabels.d.ts.map +1 -1
- package/lib/__lib__/LegendCubeLabels.js +129 -14
- package/lib/__lib__/LegendCubeLabels.js.map +1 -1
- package/lib/__lib__/LegendCubeProjectSourceLabels.d.ts +26 -0
- package/lib/__lib__/LegendCubeProjectSourceLabels.d.ts.map +1 -0
- package/lib/__lib__/LegendCubeProjectSourceLabels.js +26 -0
- package/lib/__lib__/LegendCubeProjectSourceLabels.js.map +1 -0
- package/lib/__lib__/LegendCubeServiceLabels.d.ts +27 -0
- package/lib/__lib__/LegendCubeServiceLabels.d.ts.map +1 -0
- package/lib/__lib__/LegendCubeServiceLabels.js +32 -0
- package/lib/__lib__/LegendCubeServiceLabels.js.map +1 -0
- package/lib/__lib__/LegendCubeTesting.d.ts +7 -0
- package/lib/__lib__/LegendCubeTesting.d.ts.map +1 -1
- package/lib/__lib__/LegendCubeTesting.js +7 -0
- package/lib/__lib__/LegendCubeTesting.js.map +1 -1
- package/lib/__test-utils__/CubeEngineTestSupport.d.ts +1 -1
- package/lib/__test-utils__/CubeEngineTestSupport.d.ts.map +1 -1
- package/lib/__test-utils__/CubeEngineTestSupport.js +2 -2
- package/lib/__test-utils__/CubeEngineTestSupport.js.map +1 -1
- package/lib/__test-utils__/CubeExpressionTestUtils.d.ts +8 -1
- package/lib/__test-utils__/CubeExpressionTestUtils.d.ts.map +1 -1
- package/lib/__test-utils__/CubeExpressionTestUtils.js +20 -3
- package/lib/__test-utils__/CubeExpressionTestUtils.js.map +1 -1
- package/lib/__test-utils__/CubeFunctionTestOutline.d.ts +26 -0
- package/lib/__test-utils__/CubeFunctionTestOutline.d.ts.map +1 -0
- package/lib/__test-utils__/CubeFunctionTestOutline.js +56 -0
- package/lib/__test-utils__/CubeFunctionTestOutline.js.map +1 -0
- package/lib/__test-utils__/CubeLambdaCorpus.d.ts +36 -0
- package/lib/__test-utils__/CubeLambdaCorpus.d.ts.map +1 -0
- package/lib/__test-utils__/CubeLambdaCorpus.js +83 -0
- package/lib/__test-utils__/CubeLambdaCorpus.js.map +1 -0
- package/lib/__test-utils__/CubePageTestUtils.d.ts +6 -0
- package/lib/__test-utils__/CubePageTestUtils.d.ts.map +1 -1
- package/lib/__test-utils__/CubePageTestUtils.js +21 -0
- package/lib/__test-utils__/CubePageTestUtils.js.map +1 -1
- package/lib/__test-utils__/CubeTestApplication.d.ts +9 -0
- package/lib/__test-utils__/CubeTestApplication.d.ts.map +1 -1
- package/lib/__test-utils__/CubeTestApplication.js +16 -0
- package/lib/__test-utils__/CubeTestApplication.js.map +1 -1
- package/lib/__test-utils__/FakeCubeEngine.d.ts +5 -0
- package/lib/__test-utils__/FakeCubeEngine.d.ts.map +1 -1
- package/lib/__test-utils__/FakeCubeEngine.js +17 -0
- package/lib/__test-utils__/FakeCubeEngine.js.map +1 -1
- package/lib/__test-utils__/FakeCubeIngestCatalog.d.ts +7 -1
- package/lib/__test-utils__/FakeCubeIngestCatalog.d.ts.map +1 -1
- package/lib/__test-utils__/FakeCubeIngestCatalog.js +16 -0
- package/lib/__test-utils__/FakeCubeIngestCatalog.js.map +1 -1
- package/lib/__test-utils__/FakeCubeServiceCatalog.d.ts +26 -0
- package/lib/__test-utils__/FakeCubeServiceCatalog.d.ts.map +1 -0
- package/lib/__test-utils__/FakeCubeServiceCatalog.js +40 -0
- package/lib/__test-utils__/FakeCubeServiceCatalog.js.map +1 -0
- package/lib/components/CubeAddItems.d.ts.map +1 -1
- package/lib/components/CubeAddItems.js +9 -6
- package/lib/components/CubeAddItems.js.map +1 -1
- package/lib/components/CubeDialogTheme.d.ts +25 -0
- package/lib/components/CubeDialogTheme.d.ts.map +1 -0
- package/lib/components/CubeDialogTheme.js +25 -0
- package/lib/components/CubeDialogTheme.js.map +1 -0
- package/lib/components/CubeEditor.d.ts +12 -1
- package/lib/components/CubeEditor.d.ts.map +1 -1
- package/lib/components/CubeEditor.js +16 -14
- package/lib/components/CubeEditor.js.map +1 -1
- package/lib/components/CubeFileMenu.d.ts +28 -0
- package/lib/components/CubeFileMenu.d.ts.map +1 -0
- package/lib/components/CubeFileMenu.js +77 -0
- package/lib/components/CubeFileMenu.js.map +1 -0
- package/lib/components/CubeLambdaImportBanner.d.ts +26 -0
- package/lib/components/CubeLambdaImportBanner.d.ts.map +1 -0
- package/lib/components/CubeLambdaImportBanner.js +47 -0
- package/lib/components/CubeLambdaImportBanner.js.map +1 -0
- package/lib/components/CubeNodeIcon.d.ts.map +1 -1
- package/lib/components/CubeNodeIcon.js +5 -1
- package/lib/components/CubeNodeIcon.js.map +1 -1
- package/lib/components/CubeSchemaColumnsTable.d.ts.map +1 -1
- package/lib/components/CubeSchemaColumnsTable.js +2 -2
- package/lib/components/CubeSchemaColumnsTable.js.map +1 -1
- package/lib/components/canvas/CubeCanvas.d.ts.map +1 -1
- package/lib/components/canvas/CubeCanvas.js +38 -5
- package/lib/components/canvas/CubeCanvas.js.map +1 -1
- package/lib/components/canvas/CubeCanvasContextMenu.d.ts.map +1 -1
- package/lib/components/canvas/CubeCanvasContextMenu.js +2 -1
- package/lib/components/canvas/CubeCanvasContextMenu.js.map +1 -1
- package/lib/components/canvas/CubeCanvasElements.d.ts +18 -1
- package/lib/components/canvas/CubeCanvasElements.d.ts.map +1 -1
- package/lib/components/canvas/CubeCanvasElements.js +58 -3
- package/lib/components/canvas/CubeCanvasElements.js.map +1 -1
- package/lib/components/canvas/CubeCanvasLayout.js +1 -1
- package/lib/components/canvas/CubeCanvasNode.d.ts.map +1 -1
- package/lib/components/canvas/CubeCanvasNode.js +8 -4
- package/lib/components/canvas/CubeCanvasNode.js.map +1 -1
- package/lib/components/dev-settings/CubeDevSettings.d.ts +35 -0
- package/lib/components/dev-settings/CubeDevSettings.d.ts.map +1 -0
- package/lib/components/dev-settings/CubeDevSettings.js +50 -0
- package/lib/components/dev-settings/CubeDevSettings.js.map +1 -0
- package/lib/components/editors/CubeColumnChecklist.d.ts.map +1 -1
- package/lib/components/editors/CubeColumnChecklist.js +2 -2
- package/lib/components/editors/CubeColumnChecklist.js.map +1 -1
- package/lib/components/editors/CubeColumnPicker.d.ts.map +1 -1
- package/lib/components/editors/CubeColumnPicker.js +3 -3
- package/lib/components/editors/CubeColumnPicker.js.map +1 -1
- package/lib/components/editors/CubeConcatEditor.js +2 -2
- package/lib/components/editors/CubeConcatEditor.js.map +1 -1
- package/lib/components/editors/CubeExpressionFilterEditor.d.ts +25 -0
- package/lib/components/editors/CubeExpressionFilterEditor.d.ts.map +1 -0
- package/lib/components/editors/CubeExpressionFilterEditor.js +83 -0
- package/lib/components/editors/CubeExpressionFilterEditor.js.map +1 -0
- package/lib/components/editors/CubeExtendEditor.d.ts +2 -0
- package/lib/components/editors/CubeExtendEditor.d.ts.map +1 -1
- package/lib/components/editors/CubeExtendEditor.js +3 -3
- package/lib/components/editors/CubeExtendEditor.js.map +1 -1
- package/lib/components/editors/CubeFilterEditor.d.ts.map +1 -1
- package/lib/components/editors/CubeFilterEditor.js +13 -2
- package/lib/components/editors/CubeFilterEditor.js.map +1 -1
- package/lib/components/editors/CubeFunctionSourceEditor.d.ts +25 -0
- package/lib/components/editors/CubeFunctionSourceEditor.d.ts.map +1 -0
- package/lib/components/editors/CubeFunctionSourceEditor.js +55 -0
- package/lib/components/editors/CubeFunctionSourceEditor.js.map +1 -0
- package/lib/components/editors/CubeJoinEditor.d.ts.map +1 -1
- package/lib/components/editors/CubeJoinEditor.js +16 -4
- package/lib/components/editors/CubeJoinEditor.js.map +1 -1
- package/lib/components/editors/CubeNodeEditorPanel.d.ts.map +1 -1
- package/lib/components/editors/CubeNodeEditorPanel.js +18 -8
- package/lib/components/editors/CubeNodeEditorPanel.js.map +1 -1
- package/lib/components/editors/CubeNodeEditorPopper.d.ts +5 -1
- package/lib/components/editors/CubeNodeEditorPopper.d.ts.map +1 -1
- package/lib/components/editors/CubeNodeEditorPopper.js +10 -2
- package/lib/components/editors/CubeNodeEditorPopper.js.map +1 -1
- package/lib/components/editors/CubeNodeEditorRegistry.d.ts.map +1 -1
- package/lib/components/editors/CubeNodeEditorRegistry.js +9 -1
- package/lib/components/editors/CubeNodeEditorRegistry.js.map +1 -1
- package/lib/components/editors/CubePivotEditor.d.ts +26 -0
- package/lib/components/editors/CubePivotEditor.d.ts.map +1 -0
- package/lib/components/editors/CubePivotEditor.js +93 -0
- package/lib/components/editors/CubePivotEditor.js.map +1 -0
- package/lib/components/editors/CubeRestrictEditor.d.ts.map +1 -1
- package/lib/components/editors/CubeRestrictEditor.js +2 -2
- package/lib/components/editors/CubeRestrictEditor.js.map +1 -1
- package/lib/components/editors/CubeServiceSourceEditor.d.ts +25 -0
- package/lib/components/editors/CubeServiceSourceEditor.d.ts.map +1 -0
- package/lib/components/editors/CubeServiceSourceEditor.js +41 -0
- package/lib/components/editors/CubeServiceSourceEditor.js.map +1 -0
- package/lib/components/grid/CubeColumnFormatDialog.d.ts +28 -0
- package/lib/components/grid/CubeColumnFormatDialog.d.ts.map +1 -0
- package/lib/components/grid/CubeColumnFormatDialog.js +94 -0
- package/lib/components/grid/CubeColumnFormatDialog.js.map +1 -0
- package/lib/components/grid/CubeDrilldownBar.d.ts +37 -0
- package/lib/components/grid/CubeDrilldownBar.d.ts.map +1 -0
- package/lib/components/grid/CubeDrilldownBar.js +77 -0
- package/lib/components/grid/CubeDrilldownBar.js.map +1 -0
- package/lib/components/grid/CubeGridRegion.d.ts.map +1 -1
- package/lib/components/grid/CubeGridRegion.js +40 -26
- package/lib/components/grid/CubeGridRegion.js.map +1 -1
- package/lib/components/grid/CubeGridValues.d.ts +31 -1
- package/lib/components/grid/CubeGridValues.d.ts.map +1 -1
- package/lib/components/grid/CubeGridValues.js +108 -1
- package/lib/components/grid/CubeGridValues.js.map +1 -1
- package/lib/components/grid/CubeResultGrid.d.ts +68 -5
- package/lib/components/grid/CubeResultGrid.d.ts.map +1 -1
- package/lib/components/grid/CubeResultGrid.js +308 -35
- package/lib/components/grid/CubeResultGrid.js.map +1 -1
- package/lib/components/grid/CubeRunStatsPanel.d.ts +28 -0
- package/lib/components/grid/CubeRunStatsPanel.d.ts.map +1 -0
- package/lib/components/grid/CubeRunStatsPanel.js +61 -0
- package/lib/components/grid/CubeRunStatsPanel.js.map +1 -0
- package/lib/components/grid/CubeServerSideGrid.d.ts +36 -0
- package/lib/components/grid/CubeServerSideGrid.d.ts.map +1 -0
- package/lib/components/grid/CubeServerSideGrid.js +114 -0
- package/lib/components/grid/CubeServerSideGrid.js.map +1 -0
- package/lib/components/grid/CubeSqlDialog.d.ts +24 -0
- package/lib/components/grid/CubeSqlDialog.d.ts.map +1 -0
- package/lib/components/grid/CubeSqlDialog.js +39 -0
- package/lib/components/grid/CubeSqlDialog.js.map +1 -0
- package/lib/components/grid/CubeSqlFormat.d.ts +20 -0
- package/lib/components/grid/CubeSqlFormat.d.ts.map +1 -0
- package/lib/components/grid/CubeSqlFormat.js +32 -0
- package/lib/components/grid/CubeSqlFormat.js.map +1 -0
- package/lib/components/palette/CubePalette.d.ts.map +1 -1
- package/lib/components/palette/CubePalette.js +32 -13
- package/lib/components/palette/CubePalette.js.map +1 -1
- package/lib/components/show-pure/CubeShowPureDialog.d.ts +4 -1
- package/lib/components/show-pure/CubeShowPureDialog.d.ts.map +1 -1
- package/lib/components/show-pure/CubeShowPureDialog.js +8 -4
- package/lib/components/show-pure/CubeShowPureDialog.js.map +1 -1
- package/lib/components/source-picker/CubeDataProductTab.d.ts.map +1 -1
- package/lib/components/source-picker/CubeDataProductTab.js +37 -16
- package/lib/components/source-picker/CubeDataProductTab.js.map +1 -1
- package/lib/components/source-picker/CubeDirectConnectionTab.d.ts.map +1 -1
- package/lib/components/source-picker/CubeDirectConnectionTab.js +6 -4
- package/lib/components/source-picker/CubeDirectConnectionTab.js.map +1 -1
- package/lib/components/source-picker/CubeFunctionSteps.d.ts +36 -0
- package/lib/components/source-picker/CubeFunctionSteps.d.ts.map +1 -0
- package/lib/components/source-picker/CubeFunctionSteps.js +76 -0
- package/lib/components/source-picker/CubeFunctionSteps.js.map +1 -0
- package/lib/components/source-picker/CubeIngestTab.d.ts.map +1 -1
- package/lib/components/source-picker/CubeIngestTab.js +39 -16
- package/lib/components/source-picker/CubeIngestTab.js.map +1 -1
- package/lib/components/source-picker/CubeInlineModelTab.d.ts +3 -2
- package/lib/components/source-picker/CubeInlineModelTab.d.ts.map +1 -1
- package/lib/components/source-picker/CubeInlineModelTab.js +23 -13
- package/lib/components/source-picker/CubeInlineModelTab.js.map +1 -1
- package/lib/components/source-picker/CubePickerListItem.d.ts +47 -0
- package/lib/components/source-picker/CubePickerListItem.d.ts.map +1 -0
- package/lib/components/source-picker/CubePickerListItem.js +62 -0
- package/lib/components/source-picker/CubePickerListItem.js.map +1 -0
- package/lib/components/source-picker/CubeProjectTab.d.ts +4 -3
- package/lib/components/source-picker/CubeProjectTab.d.ts.map +1 -1
- package/lib/components/source-picker/CubeProjectTab.js +7 -4
- package/lib/components/source-picker/CubeProjectTab.js.map +1 -1
- package/lib/components/source-picker/CubeServiceTab.d.ts +27 -0
- package/lib/components/source-picker/CubeServiceTab.d.ts.map +1 -0
- package/lib/components/source-picker/CubeServiceTab.js +36 -0
- package/lib/components/source-picker/CubeServiceTab.js.map +1 -0
- package/lib/components/source-picker/CubeSourcePicker.d.ts.map +1 -1
- package/lib/components/source-picker/CubeSourcePicker.js +16 -3
- package/lib/components/source-picker/CubeSourcePicker.js.map +1 -1
- package/lib/components/source-picker/CubeTablePreview.d.ts +29 -0
- package/lib/components/source-picker/CubeTablePreview.d.ts.map +1 -0
- package/lib/components/source-picker/CubeTablePreview.js +10 -0
- package/lib/components/source-picker/CubeTablePreview.js.map +1 -0
- package/lib/components/spec-transfer/CubeImportPureDialog.d.ts +27 -0
- package/lib/components/spec-transfer/CubeImportPureDialog.d.ts.map +1 -0
- package/lib/components/spec-transfer/CubeImportPureDialog.js +38 -0
- package/lib/components/spec-transfer/CubeImportPureDialog.js.map +1 -0
- package/lib/components/spec-transfer/CubeSpecTransferDialog.d.ts.map +1 -1
- package/lib/components/spec-transfer/CubeSpecTransferDialog.js +9 -3
- package/lib/components/spec-transfer/CubeSpecTransferDialog.js.map +1 -1
- package/lib/graph-manager/CubeDataProductCatalog.d.ts +10 -0
- package/lib/graph-manager/CubeDataProductCatalog.d.ts.map +1 -1
- package/lib/graph-manager/CubeDataProductCatalog.js.map +1 -1
- package/lib/graph-manager/CubeEngine.d.ts +46 -1
- package/lib/graph-manager/CubeEngine.d.ts.map +1 -1
- package/lib/graph-manager/CubeEngine.js.map +1 -1
- package/lib/graph-manager/CubeEngineClientSettings.d.ts +43 -0
- package/lib/graph-manager/CubeEngineClientSettings.d.ts.map +1 -0
- package/lib/graph-manager/CubeEngineClientSettings.js +51 -0
- package/lib/graph-manager/CubeEngineClientSettings.js.map +1 -0
- package/lib/graph-manager/CubeIngest.d.ts +5 -0
- package/lib/graph-manager/CubeIngest.d.ts.map +1 -1
- package/lib/graph-manager/CubeIngest.js +10 -0
- package/lib/graph-manager/CubeIngest.js.map +1 -1
- package/lib/graph-manager/CubeIngestCatalog.d.ts +26 -0
- package/lib/graph-manager/CubeIngestCatalog.d.ts.map +1 -1
- package/lib/graph-manager/CubeIngestCatalog.js +6 -0
- package/lib/graph-manager/CubeIngestCatalog.js.map +1 -1
- package/lib/graph-manager/CubeLakehouseRuntime.d.ts +29 -0
- package/lib/graph-manager/CubeLakehouseRuntime.d.ts.map +1 -0
- package/lib/graph-manager/CubeLakehouseRuntime.js +40 -0
- package/lib/graph-manager/CubeLakehouseRuntime.js.map +1 -0
- package/lib/graph-manager/CubeProjectCatalog.d.ts +3 -3
- package/lib/graph-manager/CubeService.d.ts +20 -0
- package/lib/graph-manager/CubeService.d.ts.map +1 -0
- package/lib/graph-manager/CubeService.js +22 -0
- package/lib/graph-manager/CubeService.js.map +1 -0
- package/lib/graph-manager/CubeServiceCatalog.d.ts +31 -0
- package/lib/graph-manager/CubeServiceCatalog.d.ts.map +1 -0
- package/lib/graph-manager/CubeServiceCatalog.js +17 -0
- package/lib/graph-manager/CubeServiceCatalog.js.map +1 -0
- package/lib/graph-manager/protocol/pure/CubeEngineBuilder.d.ts +52 -5
- package/lib/graph-manager/protocol/pure/CubeEngineBuilder.d.ts.map +1 -1
- package/lib/graph-manager/protocol/pure/CubeEngineBuilder.js +63 -5
- package/lib/graph-manager/protocol/pure/CubeEngineBuilder.js.map +1 -1
- package/lib/graph-manager/protocol/pure/v1/V1_CubeDataProductModel.d.ts +9 -6
- package/lib/graph-manager/protocol/pure/v1/V1_CubeDataProductModel.d.ts.map +1 -1
- package/lib/graph-manager/protocol/pure/v1/V1_CubeDataProductModel.js +12 -8
- package/lib/graph-manager/protocol/pure/v1/V1_CubeDataProductModel.js.map +1 -1
- package/lib/graph-manager/protocol/pure/v1/V1_CubeFunctionOutlineBuilder.d.ts +30 -0
- package/lib/graph-manager/protocol/pure/v1/V1_CubeFunctionOutlineBuilder.d.ts.map +1 -0
- package/lib/graph-manager/protocol/pure/v1/V1_CubeFunctionOutlineBuilder.js +229 -0
- package/lib/graph-manager/protocol/pure/v1/V1_CubeFunctionOutlineBuilder.js.map +1 -0
- package/lib/graph-manager/protocol/pure/v1/V1_CubeIngestDefinition.d.ts.map +1 -1
- package/lib/graph-manager/protocol/pure/v1/V1_CubeIngestDefinition.js +18 -9
- package/lib/graph-manager/protocol/pure/v1/V1_CubeIngestDefinition.js.map +1 -1
- package/lib/graph-manager/protocol/pure/v1/V1_CubeIngestModel.d.ts +4 -9
- package/lib/graph-manager/protocol/pure/v1/V1_CubeIngestModel.d.ts.map +1 -1
- package/lib/graph-manager/protocol/pure/v1/V1_CubeIngestModel.js +2 -1
- package/lib/graph-manager/protocol/pure/v1/V1_CubeIngestModel.js.map +1 -1
- package/lib/graph-manager/protocol/pure/v1/V1_CubeLambdaReader.d.ts +34 -0
- package/lib/graph-manager/protocol/pure/v1/V1_CubeLambdaReader.d.ts.map +1 -0
- package/lib/graph-manager/protocol/pure/v1/V1_CubeLambdaReader.js +332 -0
- package/lib/graph-manager/protocol/pure/v1/V1_CubeLambdaReader.js.map +1 -0
- package/lib/graph-manager/protocol/pure/v1/V1_CubeLambdaSerializer.d.ts.map +1 -1
- package/lib/graph-manager/protocol/pure/v1/V1_CubeLambdaSerializer.js +49 -10
- package/lib/graph-manager/protocol/pure/v1/V1_CubeLambdaSerializer.js.map +1 -1
- package/lib/graph-manager/protocol/pure/v1/V1_CubeModelOutlineBuilder.d.ts +1 -1
- package/lib/graph-manager/protocol/pure/v1/V1_CubeModelOutlineBuilder.d.ts.map +1 -1
- package/lib/graph-manager/protocol/pure/v1/V1_CubeModelOutlineBuilder.js +3 -1
- package/lib/graph-manager/protocol/pure/v1/V1_CubeModelOutlineBuilder.js.map +1 -1
- package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeConnectionExplorer.d.ts +2 -1
- package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeConnectionExplorer.d.ts.map +1 -1
- package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeConnectionExplorer.js +2 -1
- package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeConnectionExplorer.js.map +1 -1
- package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeEngine.d.ts +18 -0
- package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeEngine.d.ts.map +1 -1
- package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeEngine.js +74 -6
- package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeEngine.js.map +1 -1
- package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeProjectCatalog.d.ts.map +1 -1
- package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeProjectCatalog.js +7 -4
- package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeProjectCatalog.js.map +1 -1
- package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeServiceCatalog.d.ts +31 -0
- package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeServiceCatalog.d.ts.map +1 -0
- package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeServiceCatalog.js +69 -0
- package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeServiceCatalog.js.map +1 -0
- package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeEngineTestUtils.d.ts.map +1 -1
- package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeEngineTestUtils.js +6 -2
- package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeEngineTestUtils.js.map +1 -1
- package/lib/index.css +2 -2
- package/lib/index.css.map +1 -1
- package/lib/index.d.ts +12 -3
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +10 -1
- package/lib/index.js.map +1 -1
- package/lib/stores/CubeAddPlacement.d.ts +10 -3
- package/lib/stores/CubeAddPlacement.d.ts.map +1 -1
- package/lib/stores/CubeAddPlacement.js +16 -5
- package/lib/stores/CubeAddPlacement.js.map +1 -1
- package/lib/stores/CubeDevSettingsState.d.ts +47 -0
- package/lib/stores/CubeDevSettingsState.d.ts.map +1 -0
- package/lib/stores/CubeDevSettingsState.js +99 -0
- package/lib/stores/CubeDevSettingsState.js.map +1 -0
- package/lib/stores/CubeEditorState.d.ts +173 -43
- package/lib/stores/CubeEditorState.d.ts.map +1 -1
- package/lib/stores/CubeEditorState.js +498 -113
- package/lib/stores/CubeEditorState.js.map +1 -1
- package/lib/stores/CubeEngineChecks.d.ts +59 -0
- package/lib/stores/CubeEngineChecks.d.ts.map +1 -0
- package/lib/stores/CubeEngineChecks.js +100 -0
- package/lib/stores/CubeEngineChecks.js.map +1 -0
- package/lib/stores/CubeExamples.d.ts.map +1 -1
- package/lib/stores/CubeExamples.js +39 -2
- package/lib/stores/CubeExamples.js.map +1 -1
- package/lib/stores/CubeExamplesState.d.ts +1 -1
- package/lib/stores/CubeExamplesState.d.ts.map +1 -1
- package/lib/stores/CubeExamplesState.js +2 -2
- package/lib/stores/CubeExamplesState.js.map +1 -1
- package/lib/stores/CubeExecutionState.d.ts.map +1 -1
- package/lib/stores/CubeExecutionState.js +24 -33
- package/lib/stores/CubeExecutionState.js.map +1 -1
- package/lib/stores/CubeExportState.d.ts +41 -0
- package/lib/stores/CubeExportState.d.ts.map +1 -0
- package/lib/stores/CubeExportState.js +134 -0
- package/lib/stores/CubeExportState.js.map +1 -0
- package/lib/stores/CubeExpressionFilterCheck.d.ts +51 -0
- package/lib/stores/CubeExpressionFilterCheck.d.ts.map +1 -0
- package/lib/stores/CubeExpressionFilterCheck.js +134 -0
- package/lib/stores/CubeExpressionFilterCheck.js.map +1 -0
- package/lib/stores/CubeExtendTyping.d.ts +6 -14
- package/lib/stores/CubeExtendTyping.d.ts.map +1 -1
- package/lib/stores/CubeExtendTyping.js +6 -33
- package/lib/stores/CubeExtendTyping.js.map +1 -1
- package/lib/stores/CubeFunctionRecheck.d.ts +30 -0
- package/lib/stores/CubeFunctionRecheck.d.ts.map +1 -0
- package/lib/stores/CubeFunctionRecheck.js +67 -0
- package/lib/stores/CubeFunctionRecheck.js.map +1 -0
- package/lib/stores/CubeGridFetcher.d.ts +75 -0
- package/lib/stores/CubeGridFetcher.d.ts.map +1 -0
- package/lib/stores/CubeGridFetcher.js +197 -0
- package/lib/stores/CubeGridFetcher.js.map +1 -0
- package/lib/stores/CubeGridQuickActions.d.ts +18 -6
- package/lib/stores/CubeGridQuickActions.d.ts.map +1 -1
- package/lib/stores/CubeGridQuickActions.js +32 -12
- package/lib/stores/CubeGridQuickActions.js.map +1 -1
- package/lib/stores/CubeGridState.d.ts +136 -0
- package/lib/stores/CubeGridState.d.ts.map +1 -0
- package/lib/stores/CubeGridState.js +317 -0
- package/lib/stores/CubeGridState.js.map +1 -0
- package/lib/stores/CubeHost.d.ts +42 -0
- package/lib/stores/CubeHost.d.ts.map +1 -1
- package/lib/stores/CubeHost.js +4 -0
- package/lib/stores/CubeHost.js.map +1 -1
- package/lib/stores/CubeLambdaImportState.d.ts +118 -0
- package/lib/stores/CubeLambdaImportState.d.ts.map +1 -0
- package/lib/stores/CubeLambdaImportState.js +302 -0
- package/lib/stores/CubeLambdaImportState.js.map +1 -0
- package/lib/stores/CubeLambdaSources.d.ts +45 -0
- package/lib/stores/CubeLambdaSources.d.ts.map +1 -0
- package/lib/stores/CubeLambdaSources.js +261 -0
- package/lib/stores/CubeLambdaSources.js.map +1 -0
- package/lib/stores/CubeQueryRun.d.ts +59 -0
- package/lib/stores/CubeQueryRun.d.ts.map +1 -0
- package/lib/stores/CubeQueryRun.js +101 -0
- package/lib/stores/CubeQueryRun.js.map +1 -0
- package/lib/stores/CubeRunStatsState.d.ts +61 -0
- package/lib/stores/CubeRunStatsState.d.ts.map +1 -0
- package/lib/stores/CubeRunStatsState.js +54 -0
- package/lib/stores/CubeRunStatsState.js.map +1 -0
- package/lib/stores/CubeRunningStepLambda.d.ts +25 -0
- package/lib/stores/CubeRunningStepLambda.d.ts.map +1 -0
- package/lib/stores/CubeRunningStepLambda.js +45 -0
- package/lib/stores/CubeRunningStepLambda.js.map +1 -0
- package/lib/stores/CubeServiceRecheck.d.ts +29 -0
- package/lib/stores/CubeServiceRecheck.d.ts.map +1 -0
- package/lib/stores/CubeServiceRecheck.js +33 -0
- package/lib/stores/CubeServiceRecheck.js.map +1 -0
- package/lib/stores/CubeShowPureState.d.ts +14 -1
- package/lib/stores/CubeShowPureState.d.ts.map +1 -1
- package/lib/stores/CubeShowPureState.js +41 -11
- package/lib/stores/CubeShowPureState.js.map +1 -1
- package/lib/stores/CubeSourcePickerState.d.ts +20 -4
- package/lib/stores/CubeSourcePickerState.d.ts.map +1 -1
- package/lib/stores/CubeSourcePickerState.js +75 -14
- package/lib/stores/CubeSourcePickerState.js.map +1 -1
- package/lib/stores/LocalModelCatalog.d.ts.map +1 -1
- package/lib/stores/LocalModelCatalog.js +3 -1
- package/lib/stores/LocalModelCatalog.js.map +1 -1
- package/lib/stores/editors/CubeExpressionFilterDraft.d.ts +91 -0
- package/lib/stores/editors/CubeExpressionFilterDraft.d.ts.map +1 -0
- package/lib/stores/editors/CubeExpressionFilterDraft.js +254 -0
- package/lib/stores/editors/CubeExpressionFilterDraft.js.map +1 -0
- package/lib/stores/editors/CubeFunctionDraft.d.ts +34 -0
- package/lib/stores/editors/CubeFunctionDraft.d.ts.map +1 -0
- package/lib/stores/editors/CubeFunctionDraft.js +69 -0
- package/lib/stores/editors/CubeFunctionDraft.js.map +1 -0
- package/lib/stores/editors/CubeNodeDraftRegistry.d.ts +4 -2
- package/lib/stores/editors/CubeNodeDraftRegistry.d.ts.map +1 -1
- package/lib/stores/editors/CubeNodeDraftRegistry.js +20 -3
- package/lib/stores/editors/CubeNodeDraftRegistry.js.map +1 -1
- package/lib/stores/editors/CubePivotDraft.d.ts +93 -0
- package/lib/stores/editors/CubePivotDraft.d.ts.map +1 -0
- package/lib/stores/editors/CubePivotDraft.js +267 -0
- package/lib/stores/editors/CubePivotDraft.js.map +1 -0
- package/lib/stores/fixtures/CubeSalesDuckDbModel.d.ts +26 -0
- package/lib/stores/fixtures/CubeSalesDuckDbModel.d.ts.map +1 -0
- package/lib/stores/fixtures/CubeSalesDuckDbModel.js +46 -0
- package/lib/stores/fixtures/CubeSalesDuckDbModel.js.map +1 -0
- package/lib/stores/fixtures/CubeTradesModel.d.ts +4 -0
- package/lib/stores/fixtures/CubeTradesModel.d.ts.map +1 -1
- package/lib/stores/fixtures/CubeTradesModel.js +31 -1
- package/lib/stores/fixtures/CubeTradesModel.js.map +1 -1
- package/lib/stores/source-picker/CubeDataProductTabState.d.ts +34 -5
- package/lib/stores/source-picker/CubeDataProductTabState.d.ts.map +1 -1
- package/lib/stores/source-picker/CubeDataProductTabState.js +111 -26
- package/lib/stores/source-picker/CubeDataProductTabState.js.map +1 -1
- package/lib/stores/source-picker/CubeDirectConnectionTabState.d.ts +25 -2
- package/lib/stores/source-picker/CubeDirectConnectionTabState.d.ts.map +1 -1
- package/lib/stores/source-picker/CubeDirectConnectionTabState.js +183 -31
- package/lib/stores/source-picker/CubeDirectConnectionTabState.js.map +1 -1
- package/lib/stores/source-picker/CubeIngestTabState.d.ts +22 -9
- package/lib/stores/source-picker/CubeIngestTabState.d.ts.map +1 -1
- package/lib/stores/source-picker/CubeIngestTabState.js +84 -29
- package/lib/stores/source-picker/CubeIngestTabState.js.map +1 -1
- package/lib/stores/source-picker/CubeInlineModelTabState.d.ts +100 -4
- package/lib/stores/source-picker/CubeInlineModelTabState.d.ts.map +1 -1
- package/lib/stores/source-picker/CubeInlineModelTabState.js +415 -28
- package/lib/stores/source-picker/CubeInlineModelTabState.js.map +1 -1
- package/lib/stores/source-picker/CubeProjectTabState.d.ts +18 -3
- package/lib/stores/source-picker/CubeProjectTabState.d.ts.map +1 -1
- package/lib/stores/source-picker/CubeProjectTabState.js +26 -1
- package/lib/stores/source-picker/CubeProjectTabState.js.map +1 -1
- package/lib/stores/source-picker/CubeServiceTabState.d.ts +74 -0
- package/lib/stores/source-picker/CubeServiceTabState.d.ts.map +1 -0
- package/lib/stores/source-picker/CubeServiceTabState.js +216 -0
- package/lib/stores/source-picker/CubeServiceTabState.js.map +1 -0
- package/lib/stores/source-picker/CubeSourcePickerTab.d.ts +15 -3
- package/lib/stores/source-picker/CubeSourcePickerTab.d.ts.map +1 -1
- package/lib/stores/source-picker/CubeSourcePickerTab.js +21 -0
- package/lib/stores/source-picker/CubeSourcePickerTab.js.map +1 -1
- package/package.json +10 -9
- package/src/__lib__/LegendCubeCommand.ts +7 -0
- package/src/__lib__/LegendCubeFunctionLabels.ts +41 -0
- package/src/__lib__/LegendCubeHelpText.ts +23 -1
- package/src/__lib__/LegendCubeLabels.ts +170 -13
- package/src/__lib__/LegendCubeProjectSourceLabels.ts +26 -0
- package/src/__lib__/LegendCubeServiceLabels.ts +41 -0
- package/src/__lib__/LegendCubeTesting.ts +7 -0
- package/src/__test-utils__/CubeEngineTestSupport.ts +2 -1
- package/src/__test-utils__/CubeExpressionTestUtils.ts +29 -2
- package/src/__test-utils__/CubeFunctionTestOutline.ts +78 -0
- package/src/__test-utils__/CubeLambdaCorpus.ts +137 -0
- package/src/__test-utils__/CubePageTestUtils.tsx +34 -0
- package/src/__test-utils__/CubeTestApplication.ts +25 -0
- package/src/__test-utils__/FakeCubeEngine.ts +27 -0
- package/src/__test-utils__/FakeCubeIngestCatalog.ts +18 -0
- package/src/__test-utils__/FakeCubeServiceCatalog.ts +57 -0
- package/src/components/CubeAddItems.tsx +13 -6
- package/src/components/CubeDialogTheme.ts +25 -0
- package/src/components/CubeEditor.tsx +155 -129
- package/src/components/CubeFileMenu.tsx +127 -0
- package/src/components/CubeLambdaImportBanner.tsx +97 -0
- package/src/components/CubeNodeIcon.tsx +7 -0
- package/src/components/CubeSchemaColumnsTable.tsx +7 -2
- package/src/components/canvas/CubeCanvas.tsx +52 -13
- package/src/components/canvas/CubeCanvasContextMenu.tsx +33 -2
- package/src/components/canvas/CubeCanvasElements.ts +76 -3
- package/src/components/canvas/CubeCanvasLayout.ts +1 -1
- package/src/components/canvas/CubeCanvasNode.tsx +30 -3
- package/src/components/dev-settings/CubeDevSettings.tsx +154 -0
- package/src/components/editors/CubeColumnChecklist.tsx +8 -2
- package/src/components/editors/CubeColumnPicker.tsx +6 -3
- package/src/components/editors/CubeConcatEditor.tsx +2 -2
- package/src/components/editors/CubeExpressionFilterEditor.tsx +193 -0
- package/src/components/editors/CubeExtendEditor.tsx +3 -3
- package/src/components/editors/CubeFilterEditor.tsx +13 -1
- package/src/components/editors/CubeFunctionSourceEditor.tsx +140 -0
- package/src/components/editors/CubeJoinEditor.tsx +23 -4
- package/src/components/editors/CubeNodeEditorPanel.tsx +22 -10
- package/src/components/editors/CubeNodeEditorPopper.tsx +9 -1
- package/src/components/editors/CubeNodeEditorRegistry.ts +12 -0
- package/src/components/editors/CubePivotEditor.tsx +277 -0
- package/src/components/editors/CubeRestrictEditor.tsx +8 -2
- package/src/components/editors/CubeServiceSourceEditor.tsx +77 -0
- package/src/components/grid/CubeColumnFormatDialog.tsx +289 -0
- package/src/components/grid/CubeDrilldownBar.tsx +219 -0
- package/src/components/grid/CubeGridRegion.tsx +170 -54
- package/src/components/grid/CubeGridValues.ts +146 -1
- package/src/components/grid/CubeResultGrid.tsx +443 -41
- package/src/components/grid/CubeRunStatsPanel.tsx +156 -0
- package/src/components/grid/CubeServerSideGrid.tsx +200 -0
- package/src/components/grid/CubeSqlDialog.tsx +90 -0
- package/src/components/grid/CubeSqlFormat.ts +37 -0
- package/src/components/palette/CubePalette.tsx +45 -12
- package/src/components/show-pure/CubeShowPureDialog.tsx +19 -5
- package/src/components/source-picker/CubeDataProductTab.tsx +169 -75
- package/src/components/source-picker/CubeDirectConnectionTab.tsx +42 -30
- package/src/components/source-picker/CubeFunctionSteps.tsx +244 -0
- package/src/components/source-picker/CubeIngestTab.tsx +159 -79
- package/src/components/source-picker/CubeInlineModelTab.tsx +110 -81
- package/src/components/source-picker/CubePickerListItem.tsx +118 -0
- package/src/components/source-picker/CubeProjectTab.tsx +6 -3
- package/src/components/source-picker/CubeServiceTab.tsx +151 -0
- package/src/components/source-picker/CubeSourcePicker.tsx +54 -18
- package/src/components/source-picker/CubeTablePreview.tsx +49 -0
- package/src/components/spec-transfer/CubeImportPureDialog.tsx +122 -0
- package/src/components/spec-transfer/CubeSpecTransferDialog.tsx +21 -8
- package/src/graph-manager/CubeDataProductCatalog.ts +11 -0
- package/src/graph-manager/CubeEngine.ts +51 -1
- package/src/graph-manager/CubeEngineClientSettings.ts +64 -0
- package/src/graph-manager/CubeIngest.ts +15 -0
- package/src/graph-manager/CubeIngestCatalog.ts +33 -0
- package/src/graph-manager/CubeLakehouseRuntime.ts +43 -0
- package/src/graph-manager/CubeProjectCatalog.ts +3 -3
- package/src/graph-manager/CubeService.ts +29 -0
- package/src/graph-manager/CubeServiceCatalog.ts +35 -0
- package/src/graph-manager/protocol/pure/CubeEngineBuilder.ts +115 -5
- package/src/graph-manager/protocol/pure/v1/V1_CubeDataProductModel.ts +13 -7
- package/src/graph-manager/protocol/pure/v1/V1_CubeFunctionOutlineBuilder.ts +312 -0
- package/src/graph-manager/protocol/pure/v1/V1_CubeIngestDefinition.ts +35 -9
- package/src/graph-manager/protocol/pure/v1/V1_CubeIngestModel.ts +6 -15
- package/src/graph-manager/protocol/pure/v1/V1_CubeLambdaReader.ts +471 -0
- package/src/graph-manager/protocol/pure/v1/V1_CubeLambdaSerializer.ts +70 -15
- package/src/graph-manager/protocol/pure/v1/V1_CubeModelOutlineBuilder.ts +3 -1
- package/src/graph-manager/protocol/pure/v1/V1_LegendCubeConnectionExplorer.ts +7 -1
- package/src/graph-manager/protocol/pure/v1/V1_LegendCubeEngine.ts +122 -7
- package/src/graph-manager/protocol/pure/v1/V1_LegendCubeProjectCatalog.ts +9 -4
- package/src/graph-manager/protocol/pure/v1/V1_LegendCubeServiceCatalog.ts +92 -0
- package/src/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeEngineTestUtils.ts +6 -1
- package/src/index.ts +32 -2
- package/src/stores/CubeAddPlacement.ts +25 -5
- package/src/stores/CubeDevSettingsState.ts +117 -0
- package/src/stores/CubeEditorState.ts +687 -197
- package/src/stores/CubeEngineChecks.ts +240 -0
- package/src/stores/CubeExamples.ts +70 -1
- package/src/stores/CubeExamplesState.ts +4 -2
- package/src/stores/CubeExecutionState.ts +26 -57
- package/src/stores/CubeExportState.ts +196 -0
- package/src/stores/CubeExpressionFilterCheck.ts +218 -0
- package/src/stores/CubeExtendTyping.ts +6 -46
- package/src/stores/CubeFunctionRecheck.ts +97 -0
- package/src/stores/CubeGridFetcher.ts +302 -0
- package/src/stores/CubeGridQuickActions.ts +33 -11
- package/src/stores/CubeGridState.ts +450 -0
- package/src/stores/CubeHost.ts +48 -0
- package/src/stores/CubeLambdaImportState.ts +434 -0
- package/src/stores/CubeLambdaSources.ts +390 -0
- package/src/stores/CubeQueryRun.ts +169 -0
- package/src/stores/CubeRunStatsState.ts +91 -0
- package/src/stores/CubeRunningStepLambda.ts +62 -0
- package/src/stores/CubeServiceRecheck.ts +53 -0
- package/src/stores/CubeShowPureState.ts +51 -12
- package/src/stores/CubeSourcePickerState.ts +89 -13
- package/src/stores/LocalModelCatalog.ts +6 -1
- package/src/stores/editors/CubeExpressionFilterDraft.ts +385 -0
- package/src/stores/editors/CubeFunctionDraft.ts +92 -0
- package/src/stores/editors/CubeNodeDraftRegistry.ts +27 -2
- package/src/stores/editors/CubePivotDraft.ts +355 -0
- package/src/stores/fixtures/CubeSalesDuckDbModel.ts +54 -0
- package/src/stores/fixtures/CubeTradesModel.ts +36 -1
- package/src/stores/source-picker/CubeDataProductTabState.ts +162 -35
- package/src/stores/source-picker/CubeDirectConnectionTabState.ts +246 -47
- package/src/stores/source-picker/CubeIngestTabState.ts +112 -38
- package/src/stores/source-picker/CubeInlineModelTabState.ts +514 -34
- package/src/stores/source-picker/CubeProjectTabState.ts +35 -3
- package/src/stores/source-picker/CubeServiceTabState.ts +288 -0
- package/src/stores/source-picker/CubeSourcePickerTab.ts +31 -2
- package/tsconfig.json +50 -0
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2026-present, Goldman Sachs
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
import { type ExpressionCheck, ExpressionFilter, type JsonObject, type QueryNode, type Schema } from '@finos/legend-cube';
|
|
17
|
+
import type { GeneratorFn } from '@finos/legend-shared';
|
|
18
|
+
import { type CubeSourceLocation } from '../../graph-manager/CubeEngine.js';
|
|
19
|
+
import type { CubeEditorState } from '../CubeEditorState.js';
|
|
20
|
+
import { CubeNodeDraft } from './CubeNodeDraft.js';
|
|
21
|
+
/** What the engine made of the condition's code the last time it was validated */
|
|
22
|
+
export interface CubeConditionCheckedCode {
|
|
23
|
+
readonly code: string;
|
|
24
|
+
readonly lambda: JsonObject;
|
|
25
|
+
readonly located: JsonObject;
|
|
26
|
+
}
|
|
27
|
+
/** The condition's problem from the last Validate: a message, where it is in the code, and a hint */
|
|
28
|
+
export interface CubeConditionProblem {
|
|
29
|
+
readonly message: string;
|
|
30
|
+
readonly location?: CubeSourceLocation | undefined;
|
|
31
|
+
readonly hint?: string | undefined;
|
|
32
|
+
/**
|
|
33
|
+
* Cube refused the condition before asking the engine (a backslash, `%` or
|
|
34
|
+
* `_` on DuckDB, a pattern that isn't a literal): the panel's problems show
|
|
35
|
+
* it, so the editor doesn't say it again (PLAN §11.14)
|
|
36
|
+
*/
|
|
37
|
+
readonly refused?: true;
|
|
38
|
+
}
|
|
39
|
+
/** What a new condition's code starts as (PLAN §11.11) */
|
|
40
|
+
export declare const NEW_CONDITION_CODE = "x | ";
|
|
41
|
+
/**
|
|
42
|
+
* The Filter by Expression editor's draft (PLAN §11.11): the condition's
|
|
43
|
+
* code, `x | …`. Validate (F10) has the engine parse it, checks Cube's rules,
|
|
44
|
+
* has the engine check it after the input, located so an error points into
|
|
45
|
+
* the code, then plans the query up to this node for the cube's database.
|
|
46
|
+
* Apply waits until the code is the one validated; the node then holds the
|
|
47
|
+
* engine's lambda and its check, so it needn't be checked again.
|
|
48
|
+
*/
|
|
49
|
+
export declare class CubeExpressionFilterDraft extends CubeNodeDraft<ExpressionFilter> {
|
|
50
|
+
readonly editorState: CubeEditorState;
|
|
51
|
+
code: string;
|
|
52
|
+
/** What the engine made of the code the last time it parsed it */
|
|
53
|
+
checked: CubeConditionCheckedCode | undefined;
|
|
54
|
+
/** The problem from the last Validate, while the code is the one validated */
|
|
55
|
+
problem: CubeConditionProblem | undefined;
|
|
56
|
+
/** The check the last Validate gave, for the code as it was then */
|
|
57
|
+
check: ExpressionCheck | undefined;
|
|
58
|
+
validating: boolean;
|
|
59
|
+
/** Anything was changed; until then, `build()` gives the original back */
|
|
60
|
+
private touched;
|
|
61
|
+
/** The database type the last plan was for, named in its problem */
|
|
62
|
+
private planDatabaseType;
|
|
63
|
+
constructor(original: ExpressionFilter, editorState: CubeEditorState);
|
|
64
|
+
/** The input's schema, when the input is valid */
|
|
65
|
+
get inputSchema(): Schema | undefined;
|
|
66
|
+
/** The code is the one the engine last parsed */
|
|
67
|
+
get isValidated(): boolean;
|
|
68
|
+
/** The code is the one validated, and the engine said it is one Boolean of a row */
|
|
69
|
+
get isChecked(): boolean;
|
|
70
|
+
/** Why Apply waits: a validation running, or the code not validated yet */
|
|
71
|
+
get applyDisabledReason(): string | undefined;
|
|
72
|
+
/** A code edit drops the problem, until the next Validate */
|
|
73
|
+
setCode(code: string): void;
|
|
74
|
+
build(): ExpressionFilter;
|
|
75
|
+
/**
|
|
76
|
+
* Goes on from a filter that differs from the original only in its check,
|
|
77
|
+
* e.g. checked in the background after an Apply, keeping the code
|
|
78
|
+
*/
|
|
79
|
+
follow(node: QueryNode): boolean;
|
|
80
|
+
/**
|
|
81
|
+
* Checks the condition with the engine (F10): parses the code when it
|
|
82
|
+
* changed since the last Validate, checks Cube's own rules and the
|
|
83
|
+
* database's, then, when the input is valid, checks the condition after
|
|
84
|
+
* the input, located in the code, and plans the query up to this node for
|
|
85
|
+
* the cube's database
|
|
86
|
+
*/
|
|
87
|
+
validate(): GeneratorFn<void>;
|
|
88
|
+
/** Plans the query up to the checked candidate, as a run with it selected would; the database's refusal, if any */
|
|
89
|
+
private planFrom;
|
|
90
|
+
}
|
|
91
|
+
//# sourceMappingURL=CubeExpressionFilterDraft.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CubeExpressionFilterDraft.d.ts","sourceRoot":"","sources":["../../../src/stores/editors/CubeExpressionFilterDraft.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAEL,KAAK,eAAe,EACpB,gBAAgB,EAEhB,KAAK,UAAU,EAIf,KAAK,SAAS,EACd,KAAK,MAAM,EAEZ,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAexD,OAAO,EAIL,KAAK,kBAAkB,EAExB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAS7D,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,kFAAkF;AAClF,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC;CAC9B;AAED,qGAAqG;AACrG,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,CAAC,EAAE,kBAAkB,GAAG,SAAS,CAAC;IACnD,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC;;;;OAIG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC;CACzB;AAED,0DAA0D;AAC1D,eAAO,MAAM,kBAAkB,SAAS,CAAC;AA2BzC;;;;;;;GAOG;AACH,qBAAa,yBAA0B,SAAQ,aAAa,CAAC,gBAAgB,CAAC;IAC5E,QAAQ,CAAC,WAAW,EAAE,eAAe,CAAC;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,kEAAkE;IAClE,OAAO,EAAE,wBAAwB,GAAG,SAAS,CAAC;IAC9C,8EAA8E;IAC9E,OAAO,EAAE,oBAAoB,GAAG,SAAS,CAAC;IAC1C,oEAAoE;IACpE,KAAK,EAAE,eAAe,GAAG,SAAS,CAAC;IACnC,UAAU,UAAS;IACnB,0EAA0E;IAC1E,OAAO,CAAC,OAAO,CAAS;IACxB,oEAAoE;IACpE,OAAO,CAAC,gBAAgB,CAAqB;gBAEjC,QAAQ,EAAE,gBAAgB,EAAE,WAAW,EAAE,eAAe;IAuBpE,kDAAkD;IAClD,IAAI,WAAW,IAAI,MAAM,GAAG,SAAS,CAMpC;IAED,iDAAiD;IACjD,IAAI,WAAW,IAAI,OAAO,CAEzB;IAED,oFAAoF;IACpF,IAAI,SAAS,IAAI,OAAO,CAWvB;IAED,2EAA2E;IAC3E,IAAa,mBAAmB,IAAI,MAAM,GAAG,SAAS,CAMrD;IAED,6DAA6D;IAC7D,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAS3B,KAAK,IAAI,gBAAgB;IAYzB;;;OAGG;IACM,MAAM,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO;IAczC;;;;;;OAMG;IACF,QAAQ,IAAI,WAAW,CAAC,IAAI,CAAC;IAuG9B,mHAAmH;YACrG,QAAQ;CAwCvB"}
|
|
@@ -0,0 +1,254 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2026-present, Goldman Sachs
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
import { dependsOnDatabaseType, ExpressionFilter, MESSAGE_CONDITION_NOT_BOOLEAN, QueryEmitter, UNCHECKED, } from '@finos/legend-cube';
|
|
17
|
+
import { action, computed, flow, flowResult, makeObservable, observable, } from 'mobx';
|
|
18
|
+
import { EXPRESSION_FILTER_APPLY_DISABLED_REASON, EXPRESSION_FILTER_PARENTHESES_HINT, EXTEND_TO_ONE_HINT, getExtendPlanProblem, } from '../../__lib__/LegendCubeLabels.js';
|
|
19
|
+
import { CubeEngineError, CubeEngineErrorKind, } from '../../graph-manager/CubeEngine.js';
|
|
20
|
+
import { buildCubeConditionCheckLambdas, readCubeConditionCheck, } from '../CubeExpressionFilterCheck.js';
|
|
21
|
+
import { getCubeExtendUpstream, withoutEngineContext, } from '../CubeExtendTyping.js';
|
|
22
|
+
import { CubeNodeDraft } from './CubeNodeDraft.js';
|
|
23
|
+
/** What a new condition's code starts as (PLAN §11.11) */
|
|
24
|
+
export const NEW_CONDITION_CODE = 'x | ';
|
|
25
|
+
/** An engine message about `and`, `or` or `not` given something other than a Boolean, which Pure's precedence causes */
|
|
26
|
+
const NEEDS_PARENTHESES = /Can't find a match for function '(?:and|or|not)\(/u;
|
|
27
|
+
/** An engine message about a column that can be empty in arithmetic, which `->toOne()` fixes */
|
|
28
|
+
const NEEDS_TO_ONE = /must have a multiplicity \[1\]|Can't find a match for function '(?:plus|minus|times|divide)[^']*\[0\.\.1\]/u;
|
|
29
|
+
const problemOf = (error) => ({
|
|
30
|
+
message: withoutEngineContext(error.firstLine),
|
|
31
|
+
location: error.location,
|
|
32
|
+
hint: NEEDS_PARENTHESES.test(error.detail)
|
|
33
|
+
? EXPRESSION_FILTER_PARENTHESES_HINT
|
|
34
|
+
: NEEDS_TO_ONE.test(error.detail)
|
|
35
|
+
? EXTEND_TO_ONE_HINT
|
|
36
|
+
: undefined,
|
|
37
|
+
});
|
|
38
|
+
const asEngineError = (error) => error instanceof CubeEngineError
|
|
39
|
+
? error
|
|
40
|
+
: new CubeEngineError(CubeEngineErrorKind.NETWORK, error instanceof Error ? error.message : String(error));
|
|
41
|
+
/**
|
|
42
|
+
* The Filter by Expression editor's draft (PLAN §11.11): the condition's
|
|
43
|
+
* code, `x | …`. Validate (F10) has the engine parse it, checks Cube's rules,
|
|
44
|
+
* has the engine check it after the input, located so an error points into
|
|
45
|
+
* the code, then plans the query up to this node for the cube's database.
|
|
46
|
+
* Apply waits until the code is the one validated; the node then holds the
|
|
47
|
+
* engine's lambda and its check, so it needn't be checked again.
|
|
48
|
+
*/
|
|
49
|
+
export class CubeExpressionFilterDraft extends CubeNodeDraft {
|
|
50
|
+
editorState;
|
|
51
|
+
code;
|
|
52
|
+
/** What the engine made of the code the last time it parsed it */
|
|
53
|
+
checked;
|
|
54
|
+
/** The problem from the last Validate, while the code is the one validated */
|
|
55
|
+
problem;
|
|
56
|
+
/** The check the last Validate gave, for the code as it was then */
|
|
57
|
+
check;
|
|
58
|
+
validating = false;
|
|
59
|
+
/** Anything was changed; until then, `build()` gives the original back */
|
|
60
|
+
touched = false;
|
|
61
|
+
/** The database type the last plan was for, named in its problem */
|
|
62
|
+
planDatabaseType;
|
|
63
|
+
constructor(original, editorState) {
|
|
64
|
+
super(original);
|
|
65
|
+
makeObservable(this, {
|
|
66
|
+
original: observable.ref,
|
|
67
|
+
code: observable,
|
|
68
|
+
checked: observable.ref,
|
|
69
|
+
problem: observable.ref,
|
|
70
|
+
check: observable.ref,
|
|
71
|
+
validating: observable,
|
|
72
|
+
touched: observable,
|
|
73
|
+
isValidated: computed,
|
|
74
|
+
isChecked: computed,
|
|
75
|
+
applyDisabledReason: computed,
|
|
76
|
+
setCode: action,
|
|
77
|
+
validate: flow,
|
|
78
|
+
follow: action,
|
|
79
|
+
});
|
|
80
|
+
this.editorState = editorState;
|
|
81
|
+
const { code, lambda } = original;
|
|
82
|
+
this.code = code || NEW_CONDITION_CODE;
|
|
83
|
+
this.checked = lambda ? { code, lambda, located: lambda } : undefined;
|
|
84
|
+
}
|
|
85
|
+
/** The input's schema, when the input is valid */
|
|
86
|
+
get inputSchema() {
|
|
87
|
+
const { query } = this.editorState.document;
|
|
88
|
+
const [inputId] = query.getInputIds(this.original.id);
|
|
89
|
+
return inputId === undefined
|
|
90
|
+
? undefined
|
|
91
|
+
: this.editorState.analysis.schemas.get(inputId);
|
|
92
|
+
}
|
|
93
|
+
/** The code is the one the engine last parsed */
|
|
94
|
+
get isValidated() {
|
|
95
|
+
return this.checked?.code === this.code;
|
|
96
|
+
}
|
|
97
|
+
/** The code is the one validated, and the engine said it is one Boolean of a row */
|
|
98
|
+
get isChecked() {
|
|
99
|
+
if (!this.isValidated) {
|
|
100
|
+
return false;
|
|
101
|
+
}
|
|
102
|
+
const input = this.inputSchema;
|
|
103
|
+
const check = this.check ?? this.original.check;
|
|
104
|
+
return (check.kind === 'checked' &&
|
|
105
|
+
input !== undefined &&
|
|
106
|
+
this.build().currentCheck(input).kind === 'checked');
|
|
107
|
+
}
|
|
108
|
+
/** Why Apply waits: a validation running, or the code not validated yet */
|
|
109
|
+
get applyDisabledReason() {
|
|
110
|
+
return this.validating
|
|
111
|
+
? EXPRESSION_FILTER_APPLY_DISABLED_REASON.VALIDATING
|
|
112
|
+
: this.isValidated
|
|
113
|
+
? undefined
|
|
114
|
+
: EXPRESSION_FILTER_APPLY_DISABLED_REASON.NOT_VALIDATED;
|
|
115
|
+
}
|
|
116
|
+
/** A code edit drops the problem, until the next Validate */
|
|
117
|
+
setCode(code) {
|
|
118
|
+
if (code === this.code) {
|
|
119
|
+
return;
|
|
120
|
+
}
|
|
121
|
+
this.code = code;
|
|
122
|
+
this.problem = undefined;
|
|
123
|
+
this.touched = true;
|
|
124
|
+
}
|
|
125
|
+
build() {
|
|
126
|
+
if (!this.touched) {
|
|
127
|
+
return this.original;
|
|
128
|
+
}
|
|
129
|
+
return this.original
|
|
130
|
+
.withCondition(this.code, this.isValidated ? this.checked?.lambda : undefined)
|
|
131
|
+
.withCheck(this.check ?? this.original.check);
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* Goes on from a filter that differs from the original only in its check,
|
|
135
|
+
* e.g. checked in the background after an Apply, keeping the code
|
|
136
|
+
*/
|
|
137
|
+
follow(node) {
|
|
138
|
+
const { original } = this;
|
|
139
|
+
if (!(node instanceof ExpressionFilter) ||
|
|
140
|
+
node.id !== original.id ||
|
|
141
|
+
JSON.stringify([node.code, node.lambda, node.rest]) !==
|
|
142
|
+
JSON.stringify([original.code, original.lambda, original.rest])) {
|
|
143
|
+
return false;
|
|
144
|
+
}
|
|
145
|
+
this.original = node;
|
|
146
|
+
return true;
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* Checks the condition with the engine (F10): parses the code when it
|
|
150
|
+
* changed since the last Validate, checks Cube's own rules and the
|
|
151
|
+
* database's, then, when the input is valid, checks the condition after
|
|
152
|
+
* the input, located in the code, and plans the query up to this node for
|
|
153
|
+
* the cube's database
|
|
154
|
+
*/
|
|
155
|
+
*validate() {
|
|
156
|
+
const { editorState } = this;
|
|
157
|
+
const { context } = editorState.document;
|
|
158
|
+
if (this.validating || !context) {
|
|
159
|
+
return;
|
|
160
|
+
}
|
|
161
|
+
this.validating = true;
|
|
162
|
+
this.touched = true;
|
|
163
|
+
try {
|
|
164
|
+
const nodeId = this.original.id;
|
|
165
|
+
const { code } = this;
|
|
166
|
+
// 1. parse the code, if it changed
|
|
167
|
+
let parsed = this.checked?.code === code ? this.checked : undefined;
|
|
168
|
+
if (!parsed) {
|
|
169
|
+
const result = (yield editorState.host.engine
|
|
170
|
+
.parseExpression(code, `${nodeId}:condition`)
|
|
171
|
+
.then((expression) => ({ code, ...expression }), asEngineError));
|
|
172
|
+
if (result instanceof CubeEngineError) {
|
|
173
|
+
this.checked = undefined;
|
|
174
|
+
this.problem = problemOf(result);
|
|
175
|
+
this.check = UNCHECKED;
|
|
176
|
+
return;
|
|
177
|
+
}
|
|
178
|
+
parsed = result;
|
|
179
|
+
this.checked = parsed;
|
|
180
|
+
}
|
|
181
|
+
this.problem = undefined;
|
|
182
|
+
const input = this.inputSchema;
|
|
183
|
+
if (!input) {
|
|
184
|
+
return;
|
|
185
|
+
}
|
|
186
|
+
// 2. Cube's own checks, which need no engine, then the database's:
|
|
187
|
+
// a pattern given % or _ on DuckDB, or one that isn't a literal but on
|
|
188
|
+
// Snowflake, which the model's outline tells
|
|
189
|
+
const candidate = this.original.withCondition(code, parsed.lambda);
|
|
190
|
+
if (dependsOnDatabaseType(candidate)) {
|
|
191
|
+
yield flowResult(editorState.loadModelOutline(context.model));
|
|
192
|
+
}
|
|
193
|
+
const cubeProblem = candidate.getConditionProblem() ??
|
|
194
|
+
editorState.getNodeDatabaseProblems(editorState.document.query, candidate)[0];
|
|
195
|
+
if (cubeProblem !== undefined) {
|
|
196
|
+
this.problem = { message: cubeProblem, refused: true };
|
|
197
|
+
this.check = UNCHECKED;
|
|
198
|
+
return;
|
|
199
|
+
}
|
|
200
|
+
// 3. check the condition after the input, located in its code
|
|
201
|
+
const query = editorState.document.query.replace(candidate);
|
|
202
|
+
const answers = (yield editorState.host.engine.typeLambdas(context.model, buildCubeConditionCheckLambdas(query, candidate, parsed.located, input, editorState.registry, true)));
|
|
203
|
+
const { check, error } = readCubeConditionCheck(answers, candidate, input, getCubeExtendUpstream(new QueryEmitter(query, editorState.registry), candidate.id, context.model));
|
|
204
|
+
this.check = check;
|
|
205
|
+
if (check.kind === 'failed') {
|
|
206
|
+
this.problem =
|
|
207
|
+
check.resultType !== undefined
|
|
208
|
+
? { message: MESSAGE_CONDITION_NOT_BOOLEAN(check.resultType) }
|
|
209
|
+
: error
|
|
210
|
+
? problemOf(error)
|
|
211
|
+
: { message: check.message };
|
|
212
|
+
return;
|
|
213
|
+
}
|
|
214
|
+
// 4. plan the query up to this node, for the cube's database
|
|
215
|
+
const failure = (yield this.planFrom(query.replace(candidate.withCheck(check)), candidate.id));
|
|
216
|
+
if (failure) {
|
|
217
|
+
this.problem = {
|
|
218
|
+
message: getExtendPlanProblem(this.planDatabaseType, failure.firstLine),
|
|
219
|
+
};
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
finally {
|
|
223
|
+
this.validating = false;
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
/** Plans the query up to the checked candidate, as a run with it selected would; the database's refusal, if any */
|
|
227
|
+
async planFrom(query, nodeId) {
|
|
228
|
+
const { editorState } = this;
|
|
229
|
+
const { context } = editorState.document;
|
|
230
|
+
const runtime = context?.runtime;
|
|
231
|
+
// a cube with no runtime yet can't be planned
|
|
232
|
+
if (!context || runtime === undefined) {
|
|
233
|
+
return undefined;
|
|
234
|
+
}
|
|
235
|
+
await flowResult(editorState.loadModelOutline(context.model));
|
|
236
|
+
this.planDatabaseType = editorState.getRunDatabaseType(query, nodeId, context.model, runtime);
|
|
237
|
+
let lambda;
|
|
238
|
+
try {
|
|
239
|
+
lambda = new QueryEmitter(query.selected === nodeId ? query : query.select(nodeId), editorState.registry).emitExecutionLambda({
|
|
240
|
+
rowLimit: 1,
|
|
241
|
+
runtime,
|
|
242
|
+
databaseType: this.planDatabaseType,
|
|
243
|
+
});
|
|
244
|
+
}
|
|
245
|
+
catch (error) {
|
|
246
|
+
// the query up to here can't run, e.g. a node above is invalid
|
|
247
|
+
return new CubeEngineError(CubeEngineErrorKind.COMPILE, error instanceof Error ? error.message : String(error), nodeId);
|
|
248
|
+
}
|
|
249
|
+
return editorState.host.engine
|
|
250
|
+
.planLambda(context.model, lambda)
|
|
251
|
+
.then(() => undefined, asEngineError);
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
//# sourceMappingURL=CubeExpressionFilterDraft.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CubeExpressionFilterDraft.js","sourceRoot":"","sources":["../../../src/stores/editors/CubeExpressionFilterDraft.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2026-present, Goldman Sachs
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
import { type EnteredValue, FunctionSource, type QueryNode } from '@finos/legend-cube';
|
|
17
|
+
import { CubeNodeDraft } from './CubeNodeDraft.js';
|
|
18
|
+
/**
|
|
19
|
+
* The draft of a function source (PLAN §6.5): the text of each parameter's
|
|
20
|
+
* value, as typed. A value is read against its parameter's type, and text
|
|
21
|
+
* that isn't one is kept as an invalid value, which the source reports.
|
|
22
|
+
*/
|
|
23
|
+
export declare class CubeFunctionDraft extends CubeNodeDraft<FunctionSource> {
|
|
24
|
+
valueTexts: string[];
|
|
25
|
+
constructor(original: FunctionSource);
|
|
26
|
+
/** The value each text gives, against its parameter's type: none for empty text */
|
|
27
|
+
get values(): readonly EnteredValue[];
|
|
28
|
+
setValueText(index: number, text: string): void;
|
|
29
|
+
/** The original while every value is the one it holds */
|
|
30
|
+
build(): FunctionSource;
|
|
31
|
+
/** Goes on when the engine types the function again in the background: its values are the same */
|
|
32
|
+
follow(node: QueryNode): boolean;
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=CubeFunctionDraft.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CubeFunctionDraft.d.ts","sourceRoot":"","sources":["../../../src/stores/editors/CubeFunctionDraft.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EACL,KAAK,YAAY,EACjB,cAAc,EAEd,KAAK,SAAS,EACf,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAYnD;;;;GAIG;AACH,qBAAa,iBAAkB,SAAQ,aAAa,CAAC,cAAc,CAAC;IAClE,UAAU,EAAE,MAAM,EAAE,CAAC;gBAET,QAAQ,EAAE,cAAc;IAUpC,mFAAmF;IACnF,IAAI,MAAM,IAAI,SAAS,YAAY,EAAE,CAIpC;IAED,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAM/C,yDAAyD;IACzD,KAAK,IAAI,cAAc;IASvB,kGAAkG;IACzF,MAAM,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO;CAa1C"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2026-present, Goldman Sachs
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
import { FunctionSource, getLiteralText, } from '@finos/legend-cube';
|
|
17
|
+
import { action, computed, makeObservable, observable } from 'mobx';
|
|
18
|
+
import { readCubeFunctionValue } from '../source-picker/CubeInlineModelTabState.js';
|
|
19
|
+
import { CubeNodeDraft } from './CubeNodeDraft.js';
|
|
20
|
+
const textOf = (value) => value === undefined
|
|
21
|
+
? ''
|
|
22
|
+
: value.kind === 'invalid'
|
|
23
|
+
? value.text
|
|
24
|
+
: getLiteralText(value);
|
|
25
|
+
const isSameValue = (left, right) => JSON.stringify(left) === JSON.stringify(right);
|
|
26
|
+
/**
|
|
27
|
+
* The draft of a function source (PLAN §6.5): the text of each parameter's
|
|
28
|
+
* value, as typed. A value is read against its parameter's type, and text
|
|
29
|
+
* that isn't one is kept as an invalid value, which the source reports.
|
|
30
|
+
*/
|
|
31
|
+
export class CubeFunctionDraft extends CubeNodeDraft {
|
|
32
|
+
valueTexts;
|
|
33
|
+
constructor(original) {
|
|
34
|
+
super(original);
|
|
35
|
+
makeObservable(this, {
|
|
36
|
+
valueTexts: observable.ref,
|
|
37
|
+
values: computed,
|
|
38
|
+
setValueText: action,
|
|
39
|
+
});
|
|
40
|
+
this.valueTexts = original.values.map(textOf);
|
|
41
|
+
}
|
|
42
|
+
/** The value each text gives, against its parameter's type: none for empty text */
|
|
43
|
+
get values() {
|
|
44
|
+
return this.original.parameters.map((parameter, index) => readCubeFunctionValue(this.valueTexts[index] ?? '', parameter));
|
|
45
|
+
}
|
|
46
|
+
setValueText(index, text) {
|
|
47
|
+
const texts = [...this.valueTexts];
|
|
48
|
+
texts[index] = text;
|
|
49
|
+
this.valueTexts = texts;
|
|
50
|
+
}
|
|
51
|
+
/** The original while every value is the one it holds */
|
|
52
|
+
build() {
|
|
53
|
+
const { original, values } = this;
|
|
54
|
+
return values.every((value, index) => isSameValue(value, original.values[index]))
|
|
55
|
+
? original
|
|
56
|
+
: original.withValues(values);
|
|
57
|
+
}
|
|
58
|
+
/** Goes on when the engine types the function again in the background: its values are the same */
|
|
59
|
+
follow(node) {
|
|
60
|
+
if (node instanceof FunctionSource &&
|
|
61
|
+
node.signature === this.original.signature &&
|
|
62
|
+
node.values.every((value, index) => isSameValue(value, this.original.values[index]))) {
|
|
63
|
+
this.original = node;
|
|
64
|
+
return true;
|
|
65
|
+
}
|
|
66
|
+
return false;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=CubeFunctionDraft.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CubeFunctionDraft.js","sourceRoot":"","sources":["../../../src/stores/editors/CubeFunctionDraft.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAEL,cAAc,EACd,cAAc,GAEf,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AACpE,OAAO,EAAE,qBAAqB,EAAE,MAAM,6CAA6C,CAAC;AACpF,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,MAAM,MAAM,GAAG,CAAC,KAAmB,EAAU,EAAE,CAC7C,KAAK,KAAK,SAAS;IACjB,CAAC,CAAC,EAAE;IACJ,CAAC,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS;QACxB,CAAC,CAAC,KAAK,CAAC,IAAI;QACZ,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;AAE9B,MAAM,WAAW,GAAG,CAAC,IAAkB,EAAE,KAAmB,EAAW,EAAE,CACvE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AAEjD;;;;GAIG;AACH,MAAM,OAAO,iBAAkB,SAAQ,aAA6B;IAClE,UAAU,CAAW;IAErB,YAAY,QAAwB;QAClC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAChB,cAAc,CAAC,IAAI,EAAE;YACnB,UAAU,EAAE,UAAU,CAAC,GAAG;YAC1B,MAAM,EAAE,QAAQ;YAChB,YAAY,EAAE,MAAM;SACrB,CAAC,CAAC;QACH,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAChD,CAAC;IAED,mFAAmF;IACnF,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,KAAK,EAAE,EAAE,CACvD,qBAAqB,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,SAAS,CAAC,CAC/D,CAAC;IACJ,CAAC;IAED,YAAY,CAAC,KAAa,EAAE,IAAY;QACtC,MAAM,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC;QACnC,KAAK,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;QACpB,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;IAC1B,CAAC;IAED,yDAAyD;IACzD,KAAK;QACH,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;QAClC,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CACnC,WAAW,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAC3C;YACC,CAAC,CAAC,QAAQ;YACV,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IAClC,CAAC;IAED,kGAAkG;IACzF,MAAM,CAAC,IAAe;QAC7B,IACE,IAAI,YAAY,cAAc;YAC9B,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC,QAAQ,CAAC,SAAS;YAC1C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CACjC,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAChD,EACD,CAAC;YACD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;YACrB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;CACF"}
|
|
@@ -20,8 +20,10 @@ import { type CubeNodeDraft } from './CubeNodeDraft.js';
|
|
|
20
20
|
export type CubeNodeDraftFactory = (node: QueryNode, editorState: CubeEditorState) => CubeNodeDraft;
|
|
21
21
|
/**
|
|
22
22
|
* The draft of each node type the panel edits, by type (PLAN §7.4). A
|
|
23
|
-
* transform with an editor in `CUBE_NODE_EDITORS` has its factory here
|
|
24
|
-
*
|
|
23
|
+
* transform with an editor in `CUBE_NODE_EDITORS` has its factory here, as
|
|
24
|
+
* has a function source, whose parameter values are edited (PLAN §6.5);
|
|
25
|
+
* another source, which has nothing to edit, has none, and so no Apply or
|
|
26
|
+
* Cancel.
|
|
25
27
|
*/
|
|
26
28
|
export declare const CUBE_NODE_DRAFT_FACTORIES: ReadonlyMap<string, CubeNodeDraftFactory>;
|
|
27
29
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CubeNodeDraftRegistry.d.ts","sourceRoot":"","sources":["../../../src/stores/editors/CubeNodeDraftRegistry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,
|
|
1
|
+
{"version":3,"file":"CubeNodeDraftRegistry.d.ts","sourceRoot":"","sources":["../../../src/stores/editors/CubeNodeDraftRegistry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAcL,KAAK,SAAS,EAKf,MAAM,oBAAoB,CAAC;AAE5B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAU7D,OAAO,EAAE,KAAK,aAAa,EAAyB,MAAM,oBAAoB,CAAC;AAQ/E,4CAA4C;AAC5C,MAAM,MAAM,oBAAoB,GAAG,CACjC,IAAI,EAAE,SAAS,EACf,WAAW,EAAE,eAAe,KACzB,aAAa,CAAC;AAEnB;;;;;;GAMG;AACH,eAAO,MAAM,yBAAyB,EAAE,WAAW,CACjD,MAAM,EACN,oBAAoB,CA6CpB,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,gCAAgC,EAAE,SAAS,MAAM,EAE7D,CAAC;AAEF,yEAAyE;AACzE,eAAO,MAAM,mBAAmB,GAC9B,MAAM,SAAS,EACf,aAAa,eAAe,KAC3B,aAE8B,CAAC"}
|
|
@@ -13,12 +13,15 @@
|
|
|
13
13
|
* See the License for the specific language governing permissions and
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
|
-
import { Concat, Difference, Distinct, Drop, Extend, Filter, Group, Join, Limit, Partition, Rename, Restrict, Slice, Sort, } from '@finos/legend-cube';
|
|
16
|
+
import { Concat, Difference, Distinct, Drop, ExpressionFilter, Pivot, Extend, Filter, FunctionSource, Group, Join, Limit, Partition, Rename, Restrict, Slice, Sort, } from '@finos/legend-cube';
|
|
17
17
|
import { guaranteeType } from '@finos/legend-shared';
|
|
18
18
|
import { CubeConcatDraft } from './CubeConcatDraft.js';
|
|
19
19
|
import { CubeDifferenceDraft } from './CubeDifferenceDraft.js';
|
|
20
|
+
import { CubeExpressionFilterDraft } from './CubeExpressionFilterDraft.js';
|
|
21
|
+
import { CubePivotDraft } from './CubePivotDraft.js';
|
|
20
22
|
import { CubeExtendDraft } from './CubeExtendDraft.js';
|
|
21
23
|
import { CubeFilterDraft } from './CubeFilterDraft.js';
|
|
24
|
+
import { CubeFunctionDraft } from './CubeFunctionDraft.js';
|
|
22
25
|
import { CubeGroupDraft } from './CubeGroupDraft.js';
|
|
23
26
|
import { CubeJoinDraft } from './CubeJoinDraft.js';
|
|
24
27
|
import { CubeReadOnlyNodeDraft } from './CubeNodeDraft.js';
|
|
@@ -30,10 +33,16 @@ import { CubeSliceDraft } from './CubeSliceDraft.js';
|
|
|
30
33
|
import { CubeSortDraft } from './CubeSortDraft.js';
|
|
31
34
|
/**
|
|
32
35
|
* The draft of each node type the panel edits, by type (PLAN §7.4). A
|
|
33
|
-
* transform with an editor in `CUBE_NODE_EDITORS` has its factory here
|
|
34
|
-
*
|
|
36
|
+
* transform with an editor in `CUBE_NODE_EDITORS` has its factory here, as
|
|
37
|
+
* has a function source, whose parameter values are edited (PLAN §6.5);
|
|
38
|
+
* another source, which has nothing to edit, has none, and so no Apply or
|
|
39
|
+
* Cancel.
|
|
35
40
|
*/
|
|
36
41
|
export const CUBE_NODE_DRAFT_FACTORIES = new Map([
|
|
42
|
+
[
|
|
43
|
+
FunctionSource.TYPE,
|
|
44
|
+
(node) => new CubeFunctionDraft(guaranteeType(node, FunctionSource)),
|
|
45
|
+
],
|
|
37
46
|
[Sort.TYPE, (node) => new CubeSortDraft(guaranteeType(node, Sort))],
|
|
38
47
|
[Group.TYPE, (node) => new CubeGroupDraft(guaranteeType(node, Group))],
|
|
39
48
|
[Filter.TYPE, (node) => new CubeFilterDraft(guaranteeType(node, Filter))],
|
|
@@ -59,6 +68,14 @@ export const CUBE_NODE_DRAFT_FACTORIES = new Map([
|
|
|
59
68
|
Extend.TYPE,
|
|
60
69
|
(node, editorState) => new CubeExtendDraft(guaranteeType(node, Extend), editorState),
|
|
61
70
|
],
|
|
71
|
+
[
|
|
72
|
+
ExpressionFilter.TYPE,
|
|
73
|
+
(node, editorState) => new CubeExpressionFilterDraft(guaranteeType(node, ExpressionFilter), editorState),
|
|
74
|
+
],
|
|
75
|
+
[
|
|
76
|
+
Pivot.TYPE,
|
|
77
|
+
(node, editorState) => new CubePivotDraft(guaranteeType(node, Pivot), editorState),
|
|
78
|
+
],
|
|
62
79
|
]);
|
|
63
80
|
/**
|
|
64
81
|
* The transforms with nothing to set (spec §17.6: Distinct is "description
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CubeNodeDraftRegistry.js","sourceRoot":"","sources":["../../../src/stores/editors/CubeNodeDraftRegistry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EACL,MAAM,EACN,UAAU,EACV,QAAQ,EACR,IAAI,EACJ,MAAM,EACN,MAAM,EACN,KAAK,EACL,IAAI,EACJ,KAAK,EACL,SAAS,EAET,MAAM,EACN,QAAQ,EACR,KAAK,EACL,IAAI,GACL,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAsB,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAC/E,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAQnD
|
|
1
|
+
{"version":3,"file":"CubeNodeDraftRegistry.js","sourceRoot":"","sources":["../../../src/stores/editors/CubeNodeDraftRegistry.ts"],"names":[],"mappings":"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"}
|