@finos/legend-cube-builder 0.0.4 → 0.0.6
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 +24 -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 +83 -5
- 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 +16 -2
- package/lib/__lib__/LegendCubeHelpText.js.map +1 -1
- package/lib/__lib__/LegendCubeLabels.d.ts +130 -9
- package/lib/__lib__/LegendCubeLabels.d.ts.map +1 -1
- package/lib/__lib__/LegendCubeLabels.js +169 -17
- package/lib/__lib__/LegendCubeLabels.js.map +1 -1
- package/lib/__lib__/LegendCubeNavigation.d.ts +23 -0
- package/lib/__lib__/LegendCubeNavigation.d.ts.map +1 -0
- package/lib/__lib__/LegendCubeNavigation.js +33 -0
- package/lib/__lib__/LegendCubeNavigation.js.map +1 -0
- 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 +10 -1
- package/lib/__lib__/LegendCubeTesting.d.ts.map +1 -1
- package/lib/__lib__/LegendCubeTesting.js +9 -0
- package/lib/__lib__/LegendCubeTesting.js.map +1 -1
- package/lib/__lib__/LegendCubeTour.d.ts +62 -0
- package/lib/__lib__/LegendCubeTour.d.ts.map +1 -0
- package/lib/__lib__/LegendCubeTour.js +149 -0
- package/lib/__lib__/LegendCubeTour.js.map +1 -0
- 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__/CubeExampleTestUtils.d.ts +34 -0
- package/lib/__test-utils__/CubeExampleTestUtils.d.ts.map +1 -0
- package/lib/__test-utils__/CubeExampleTestUtils.js +72 -0
- package/lib/__test-utils__/CubeExampleTestUtils.js.map +1 -0
- 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__/CubeVariantTestUtils.d.ts +16 -0
- package/lib/__test-utils__/CubeVariantTestUtils.d.ts.map +1 -0
- package/lib/__test-utils__/CubeVariantTestUtils.js +66 -0
- package/lib/__test-utils__/CubeVariantTestUtils.js.map +1 -0
- 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 +11 -7
- 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 +22 -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 +78 -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 +6 -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 +40 -6
- 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 +11 -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 +54 -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 +6 -4
- 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/CubeExplodeEditor.d.ts +26 -0
- package/lib/components/editors/CubeExplodeEditor.d.ts.map +1 -0
- package/lib/components/editors/CubeExplodeEditor.js +61 -0
- package/lib/components/editors/CubeExplodeEditor.js.map +1 -0
- 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 +86 -0
- package/lib/components/editors/CubeExpressionFilterEditor.js.map +1 -0
- package/lib/components/editors/CubeExtendEditor.d.ts.map +1 -1
- package/lib/components/editors/CubeExtendEditor.js +13 -12
- 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/CubeJsonFieldsTree.d.ts +46 -0
- package/lib/components/editors/CubeJsonFieldsTree.d.ts.map +1 -0
- package/lib/components/editors/CubeJsonFieldsTree.js +93 -0
- package/lib/components/editors/CubeJsonFieldsTree.js.map +1 -0
- 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 +11 -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 +43 -28
- package/lib/components/grid/CubeGridRegion.js.map +1 -1
- package/lib/components/grid/CubeGridValues.d.ts +36 -4
- package/lib/components/grid/CubeGridValues.d.ts.map +1 -1
- package/lib/components/grid/CubeGridValues.js +116 -4
- package/lib/components/grid/CubeGridValues.js.map +1 -1
- package/lib/components/grid/CubeJsonExplorerDialog.d.ts +27 -0
- package/lib/components/grid/CubeJsonExplorerDialog.d.ts.map +1 -0
- package/lib/components/grid/CubeJsonExplorerDialog.js +102 -0
- package/lib/components/grid/CubeJsonExplorerDialog.js.map +1 -0
- package/lib/components/grid/CubeJsonViewerDialog.d.ts +27 -0
- package/lib/components/grid/CubeJsonViewerDialog.d.ts.map +1 -0
- package/lib/components/grid/CubeJsonViewerDialog.js +68 -0
- package/lib/components/grid/CubeJsonViewerDialog.js.map +1 -0
- package/lib/components/grid/CubeResultGrid.d.ts +81 -6
- package/lib/components/grid/CubeResultGrid.d.ts.map +1 -1
- package/lib/components/grid/CubeResultGrid.js +400 -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 +116 -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 +36 -14
- 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 +2 -2
- package/lib/components/source-picker/CubeIngestTab.d.ts.map +1 -1
- package/lib/components/source-picker/CubeIngestTab.js +49 -20
- 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/components/tour/CubeTour.d.ts +36 -0
- package/lib/components/tour/CubeTour.d.ts.map +1 -0
- package/lib/components/tour/CubeTour.js +183 -0
- package/lib/components/tour/CubeTour.js.map +1 -0
- 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 +13 -3
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +11 -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 +189 -43
- package/lib/stores/CubeEditorState.d.ts.map +1 -1
- package/lib/stores/CubeEditorState.js +532 -117
- 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 +136 -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 +6 -3
- 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 +25 -6
- package/lib/stores/CubeGridQuickActions.d.ts.map +1 -1
- package/lib/stores/CubeGridQuickActions.js +52 -23
- 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/CubePureText.d.ts +20 -0
- package/lib/stores/CubePureText.d.ts.map +1 -0
- package/lib/stores/CubePureText.js +24 -0
- package/lib/stores/CubePureText.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/CubeTourState.d.ts +49 -0
- package/lib/stores/CubeTourState.d.ts.map +1 -0
- package/lib/stores/CubeTourState.js +92 -0
- package/lib/stores/CubeTourState.js.map +1 -0
- package/lib/stores/LegendCubeHost.d.ts +88 -0
- package/lib/stores/LegendCubeHost.d.ts.map +1 -0
- package/lib/stores/LegendCubeHost.js +149 -0
- package/lib/stores/LegendCubeHost.js.map +1 -0
- 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/CubeExplodeDraft.d.ts +87 -0
- package/lib/stores/editors/CubeExplodeDraft.d.ts.map +1 -0
- package/lib/stores/editors/CubeExplodeDraft.js +221 -0
- package/lib/stores/editors/CubeExplodeDraft.js.map +1 -0
- package/lib/stores/editors/CubeExpressionFilterDraft.d.ts +94 -0
- package/lib/stores/editors/CubeExpressionFilterDraft.d.ts.map +1 -0
- package/lib/stores/editors/CubeExpressionFilterDraft.js +258 -0
- package/lib/stores/editors/CubeExpressionFilterDraft.js.map +1 -0
- package/lib/stores/editors/CubeExtendDraft.d.ts +9 -0
- package/lib/stores/editors/CubeExtendDraft.d.ts.map +1 -1
- package/lib/stores/editors/CubeExtendDraft.js +26 -0
- package/lib/stores/editors/CubeExtendDraft.js.map +1 -1
- 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 +25 -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 +27 -0
- package/lib/stores/fixtures/CubeSalesDuckDbModel.d.ts.map +1 -0
- package/lib/stores/fixtures/CubeSalesDuckDbModel.js +52 -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 +62 -15
- package/lib/stores/source-picker/CubeIngestTabState.d.ts.map +1 -1
- package/lib/stores/source-picker/CubeIngestTabState.js +212 -60
- 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/lib/stores/variant/CubeJson.d.ts +48 -0
- package/lib/stores/variant/CubeJson.d.ts.map +1 -0
- package/lib/stores/variant/CubeJson.js +207 -0
- package/lib/stores/variant/CubeJson.js.map +1 -0
- package/lib/stores/variant/CubeJsonExplorerState.d.ts +88 -0
- package/lib/stores/variant/CubeJsonExplorerState.d.ts.map +1 -0
- package/lib/stores/variant/CubeJsonExplorerState.js +297 -0
- package/lib/stores/variant/CubeJsonExplorerState.js.map +1 -0
- package/lib/stores/variant/CubeJsonFieldsState.d.ts +83 -0
- package/lib/stores/variant/CubeJsonFieldsState.d.ts.map +1 -0
- package/lib/stores/variant/CubeJsonFieldsState.js +207 -0
- package/lib/stores/variant/CubeJsonFieldsState.js.map +1 -0
- package/lib/stores/variant/CubeJsonOffers.d.ts +76 -0
- package/lib/stores/variant/CubeJsonOffers.d.ts.map +1 -0
- package/lib/stores/variant/CubeJsonOffers.js +250 -0
- package/lib/stores/variant/CubeJsonOffers.js.map +1 -0
- package/lib/stores/variant/CubeJsonParse.d.ts +28 -0
- package/lib/stores/variant/CubeJsonParse.d.ts.map +1 -0
- package/lib/stores/variant/CubeJsonParse.js +53 -0
- package/lib/stores/variant/CubeJsonParse.js.map +1 -0
- package/lib/stores/variant/CubeJsonSampling.d.ts +41 -0
- package/lib/stores/variant/CubeJsonSampling.d.ts.map +1 -0
- package/lib/stores/variant/CubeJsonSampling.js +59 -0
- package/lib/stores/variant/CubeJsonSampling.js.map +1 -0
- package/lib/stores/variant/CubeJsonShape.d.ts +87 -0
- package/lib/stores/variant/CubeJsonShape.d.ts.map +1 -0
- package/lib/stores/variant/CubeJsonShape.js +209 -0
- package/lib/stores/variant/CubeJsonShape.js.map +1 -0
- package/lib/stores/variant/CubeJsonViewerState.d.ts +33 -0
- package/lib/stores/variant/CubeJsonViewerState.d.ts.map +1 -0
- package/lib/stores/variant/CubeJsonViewerState.js +53 -0
- package/lib/stores/variant/CubeJsonViewerState.js.map +1 -0
- package/package.json +10 -9
- package/src/__lib__/LegendCubeCommand.ts +7 -0
- package/src/__lib__/LegendCubeFunctionLabels.ts +41 -0
- package/src/__lib__/LegendCubeHelpText.ts +27 -1
- package/src/__lib__/LegendCubeLabels.ts +225 -16
- package/src/__lib__/LegendCubeNavigation.ts +48 -0
- package/src/__lib__/LegendCubeProjectSourceLabels.ts +26 -0
- package/src/__lib__/LegendCubeServiceLabels.ts +41 -0
- package/src/__lib__/LegendCubeTesting.ts +9 -0
- package/src/__lib__/LegendCubeTour.ts +173 -0
- package/src/__test-utils__/CubeEngineTestSupport.ts +2 -1
- package/src/__test-utils__/CubeExampleTestUtils.ts +119 -0
- 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__/CubeVariantTestUtils.ts +103 -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 +15 -6
- package/src/components/CubeDialogTheme.ts +25 -0
- package/src/components/CubeEditor.tsx +170 -129
- package/src/components/CubeFileMenu.tsx +129 -0
- package/src/components/CubeLambdaImportBanner.tsx +97 -0
- package/src/components/CubeNodeIcon.tsx +9 -0
- package/src/components/CubeSchemaColumnsTable.tsx +7 -2
- package/src/components/canvas/CubeCanvas.tsx +65 -10
- 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 +37 -3
- package/src/components/dev-settings/CubeDevSettings.tsx +169 -0
- package/src/components/editors/CubeColumnChecklist.tsx +8 -2
- package/src/components/editors/CubeColumnPicker.tsx +9 -3
- package/src/components/editors/CubeConcatEditor.tsx +2 -2
- package/src/components/editors/CubeExplodeEditor.tsx +207 -0
- package/src/components/editors/CubeExpressionFilterEditor.tsx +210 -0
- package/src/components/editors/CubeExtendEditor.tsx +34 -21
- 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/CubeJsonFieldsTree.tsx +316 -0
- package/src/components/editors/CubeNodeEditorPanel.tsx +22 -10
- package/src/components/editors/CubeNodeEditorPopper.tsx +9 -1
- package/src/components/editors/CubeNodeEditorRegistry.ts +15 -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 +190 -56
- package/src/components/grid/CubeGridValues.ts +154 -4
- package/src/components/grid/CubeJsonExplorerDialog.tsx +304 -0
- package/src/components/grid/CubeJsonViewerDialog.tsx +190 -0
- package/src/components/grid/CubeResultGrid.tsx +586 -42
- package/src/components/grid/CubeRunStatsPanel.tsx +156 -0
- package/src/components/grid/CubeServerSideGrid.tsx +213 -0
- package/src/components/grid/CubeSqlDialog.tsx +90 -0
- package/src/components/grid/CubeSqlFormat.ts +37 -0
- package/src/components/palette/CubePalette.tsx +54 -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 +195 -83
- 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/components/tour/CubeTour.tsx +317 -0
- 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 +39 -2
- package/src/stores/CubeAddPlacement.ts +25 -5
- package/src/stores/CubeDevSettingsState.ts +117 -0
- package/src/stores/CubeEditorState.ts +722 -201
- package/src/stores/CubeEngineChecks.ts +240 -0
- package/src/stores/CubeExamples.ts +188 -1
- package/src/stores/CubeExamplesState.ts +13 -3
- 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 +56 -23
- 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/CubePureText.ts +28 -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/CubeTourState.ts +116 -0
- package/src/stores/LegendCubeHost.ts +243 -0
- package/src/stores/LocalModelCatalog.ts +6 -1
- package/src/stores/editors/CubeExplodeDraft.ts +272 -0
- package/src/stores/editors/CubeExpressionFilterDraft.ts +389 -0
- package/src/stores/editors/CubeExtendDraft.ts +29 -0
- package/src/stores/editors/CubeFunctionDraft.ts +92 -0
- package/src/stores/editors/CubeNodeDraftRegistry.ts +34 -2
- package/src/stores/editors/CubePivotDraft.ts +355 -0
- package/src/stores/fixtures/CubeSalesDuckDbModel.ts +60 -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 +331 -106
- 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/src/stores/variant/CubeJson.ts +229 -0
- package/src/stores/variant/CubeJsonExplorerState.ts +378 -0
- package/src/stores/variant/CubeJsonFieldsState.ts +252 -0
- package/src/stores/variant/CubeJsonOffers.ts +359 -0
- package/src/stores/variant/CubeJsonParse.ts +75 -0
- package/src/stores/variant/CubeJsonSampling.ts +90 -0
- package/src/stores/variant/CubeJsonShape.ts +279 -0
- package/src/stores/variant/CubeJsonViewerState.ts +59 -0
- package/tsconfig.json +72 -1
package/docs/hosting.md
CHANGED
|
@@ -1,8 +1,16 @@
|
|
|
1
1
|
# Hosting the Cube page
|
|
2
2
|
|
|
3
|
-
A Legend application hosts the page by giving it a `CubeHost` and contributing its shortcuts.
|
|
4
|
-
host today:
|
|
5
|
-
|
|
3
|
+
A Legend application hosts the page by giving it a `CubeHost` and contributing its shortcuts. Three applications
|
|
4
|
+
host it today:
|
|
5
|
+
|
|
6
|
+
- **Legend Query**, at `/query/cube`: `LegendQueryCubeHost` (`src/stores/cube/`), and the lazy route and page
|
|
7
|
+
(`src/components/cube/`) of `@finos/legend-application-query`.
|
|
8
|
+
- **Legend Analytics**, at `/analytics/`, an application of its own: `createLegendAnalyticsCubeHost`
|
|
9
|
+
(`src/stores/`) and the page at its root (`src/components/`) of `@finos/legend-application-analytics`, with its
|
|
10
|
+
bootstrap and deployment (PLAN §11.19).
|
|
11
|
+
- **Legend Studio**, from an ingest definition's editor (see [Legend Studio](#legend-studio-create-matview)).
|
|
12
|
+
|
|
13
|
+
Legend Query and Legend Analytics build their hosts on one `LegendCubeHost` (below).
|
|
6
14
|
|
|
7
15
|
## The host
|
|
8
16
|
|
|
@@ -15,9 +23,24 @@ interface CubeHost {
|
|
|
15
23
|
readonly dataProductCatalog?: CubeDataProductCatalog | undefined;
|
|
16
24
|
readonly ingestCatalog?: CubeIngestCatalog | undefined;
|
|
17
25
|
readonly projectCatalog?: CubeProjectCatalog | undefined;
|
|
26
|
+
readonly serviceCatalog?: CubeServiceCatalog | undefined;
|
|
27
|
+
/** False to leave out the Sample Data tab and the Examples, as Studio does */
|
|
28
|
+
readonly offersSampleData?: boolean | undefined;
|
|
29
|
+
readonly engineClientSettings?: CubeEngineClientSettings | undefined;
|
|
18
30
|
}
|
|
19
31
|
```
|
|
20
32
|
|
|
33
|
+
**A Legend deployment's host:** `new LegendCubeHost(applicationStore, config, parts?)` builds every part below from
|
|
34
|
+
a plain `LegendCubeHostConfig`, the deployment's servers: `engine` (a `CubeEngineConfig`), and `depotServerUrl`,
|
|
35
|
+
`lakehouseContractUrl`, `lakehousePlatformUrl`, `marketplaceServerUrl`, `marketplaceApplicationUrl`,
|
|
36
|
+
`marketplaceProductionParallelUrl`, `enterpriseStereotype` and `getPreferredEnvironment`, each only where the
|
|
37
|
+
deployment has it. It offers each source by the rules below (no lakehouse, no data products; no platform, no ingest
|
|
38
|
+
data sets; no depot, no projects), links data products to the marketplace of their deployment's class, and registers
|
|
39
|
+
every engine client with its `engineClientSettings`, which Dev Settings changes. Tests give an engine, a connection
|
|
40
|
+
explorer or a project catalog as `parts`. Legend Query passes `buildLegendQueryCubeHostConfig`, Legend Analytics
|
|
41
|
+
`buildLegendAnalyticsCubeHostConfig`; a host whose sources are its own builds its parts
|
|
42
|
+
with the functions below instead.
|
|
43
|
+
|
|
21
44
|
- **The application store** gives the page its commands, user data, clipboard, theme, notifications and alerts, and
|
|
22
45
|
its telemetry service, which Cube doesn't use yet: it sends no events. Cube keeps no auth or config of its own.
|
|
23
46
|
- **The engine:** `buildCubeEngine(config, tracerService)` builds Legend's implementation of the `CubeEngine` port.
|
|
@@ -25,7 +48,10 @@ interface CubeHost {
|
|
|
25
48
|
and options, so Cube talks to the engine its query editor uses.
|
|
26
49
|
- **The models:** `new LocalModelCatalog(engine)`. It offers `BUNDLED_MODELS` (the Northwind, Sports and Trades datasets of the Sample Data tab)
|
|
27
50
|
and caches each model's outline: its tables, for the source picker, and its runtimes' connections with their
|
|
28
|
-
database types, which Drop, Slice, Limit and Distinct need on some databases (PLAN §11.4)
|
|
51
|
+
database types, which Drop, Slice, Limit and Distinct need on some databases (PLAN §11.4), and which tell DuckDB's
|
|
52
|
+
refusal of `%` and `_` in filter patterns (PLAN §8.2) and where Pivot can run (PLAN §11.12). A data product or
|
|
53
|
+
ingest cube's database is the one its lakehouse runtime routes to, from one table in `CubeLakehouseRuntime.ts`
|
|
54
|
+
(Snowflake for now). Users can also paste a Pure
|
|
29
55
|
model.
|
|
30
56
|
- **Direct database connections (optional):** `buildCubeConnectionExplorer(config, tracerService)` builds the explorer
|
|
31
57
|
that reads the database behind a connection through the engine's schema exploration
|
|
@@ -58,6 +84,9 @@ interface CubeHost {
|
|
|
58
84
|
dialog's Project tab (PLAN §6.3). It reads nothing until the tab opens. Project cubes save the engine's pointer, so
|
|
59
85
|
the engine must fetch from the same depot. Legend Query builds it from `depot.url`.
|
|
60
86
|
|
|
87
|
+
Legend Analytics mounts the page at its root with no flag: deploying the application is the opt-in. Its config takes
|
|
88
|
+
the keys below as Legend Query's does, with `depot` optional too, and only `engine` required.
|
|
89
|
+
|
|
61
90
|
Legend Query mounts the Cube page at `/query/cube` only where its config turns on non-production features,
|
|
62
91
|
since Cube is still a proof of concept: `"extensions": { "core": { "NonProductionFeatureFlag": true } }`. Without
|
|
63
92
|
it, as in production, the address shows nothing. To see it locally, add it to the deployment's
|
|
@@ -108,6 +137,48 @@ lives as long as the page; Legend Query makes a new host on each visit.
|
|
|
108
137
|
in-memory H2 database through its connection's `testDataSetupSqls`. On an engine that forbids LocalH2, its queries don't
|
|
109
138
|
run.
|
|
110
139
|
|
|
140
|
+
## Legend Studio: Create MatView
|
|
141
|
+
|
|
142
|
+
An ingest definition's editor in Studio offers **Create MatView** in every deployment: unlike Legend Query's
|
|
143
|
+
`/query/cube`, it doesn't depend on `NonProductionFeatureFlag` (`EmbeddedCubeState`, `src/stores/editor/embedded-cube/` of `@finos/legend-application-studio`). The page opens full
|
|
144
|
+
screen over the editor, as the embedded query builder does, with `LegendStudioCubeHost`:
|
|
145
|
+
|
|
146
|
+
- **The project:** `CubeHost.project` (`LegendStudioCubeWorkspace`) says the page reads one project's own sources. The
|
|
147
|
+
source dialog's Ingest and Data Product tabs then list that project's definitions and products by name, each path
|
|
148
|
+
muted beside it, with no class, producer deployment, search or warehouse to pick, and name the lakehouse runtime
|
|
149
|
+
its runs use: the project's first, the one Studio's own queries of an ingest definition or a data product pick.
|
|
150
|
+
Without one, the tabs say to add one. No sample data or examples (`offersSampleData: false`), databases or
|
|
151
|
+
services; one kind of source per cube, as in Legend Query.
|
|
152
|
+
- **Ingest data sets:** `LegendStudioCubeIngestCatalog` lists the workspace's definitions under one producer that
|
|
153
|
+
stands for the project, names each by the URN it would have if the project deployed it (`formatCubeIngestUrn`),
|
|
154
|
+
and types their data sets from their content (`readCubeIngestDataSets`), with no engine call.
|
|
155
|
+
- **Data products:** `LegendStudioCubeDataProductCatalog` lists the workspace's products, as version `workspace`, and
|
|
156
|
+
types their lakehouse access points with the engine (`#P{product.accessPoint}#`), a product's in one call.
|
|
157
|
+
- **The model typing and runs read:** the workspace, as Studio's own queries send it: the ingest catalog's
|
|
158
|
+
`getModelElements` (`ingestDefinitionSource` on `buildCubeEngine`) and the workspace's `getProjectModel`
|
|
159
|
+
(`dataProductModelSource`), in place of the deployed definitions and the project's deployed version. A run adds
|
|
160
|
+
Cube's lakehouse runtime, in the project runtime's environment (`lakehouseEnvironment`), on the cube's warehouse,
|
|
161
|
+
which starts as the runtime's.
|
|
162
|
+
- **Add MatView:** a button the host adds to the header (`headerActions` on `CubeEditor`) takes the step that runs
|
|
163
|
+
as a lambda with no runtime and no row limit (`buildCubeRunningStepLambda`), asks for a name, a classification of
|
|
164
|
+
its data and a primary key among the step's columns (`analysis.schemas` of the selected step), but the
|
|
165
|
+
milestoning columns a write mode adds (`LAKE_IN_ID`, `LAKE_DIGEST`, …), and appends a
|
|
166
|
+
`FunctionSource` data set to the definition. Studio sees it as a local change; Lineage and View SQL work on it.
|
|
167
|
+
- **Edit MatView:** the button's menu lists the definition's materialized views. Cube opens on one, read back into
|
|
168
|
+
its steps (`initialLambda` on `CubeEditor`, Import Pure, PLAN §11.18): the host binds its sources as the source
|
|
169
|
+
dialog would add them, and a banner says when Cube writes the view another way. The header button is then
|
|
170
|
+
**Save MatView**, which replaces that view's lambda in place, keeping its name, place and other keys, and adding
|
|
171
|
+
the empty lists the engine reads that it lacks. When the view has no classification of its data, or its primary
|
|
172
|
+
key has a column the step no longer has or a milestoning one, Save MatView first asks for them again in Add
|
|
173
|
+
MatView's dialog.
|
|
174
|
+
- **Loading:** Studio loads Cube with the dialog, on its first opening (`React.lazy`), so Cube's code stays out of
|
|
175
|
+
Studio's main bundle.
|
|
176
|
+
|
|
177
|
+
While the page is open, Studio's own shortcuts are off (its F9 compiles), and Cube's are on: Studio's core plugin
|
|
178
|
+
contributes `LEGEND_CUBE_COMMAND_CONFIG`. The floating step editor is placed in the dialog that hosts the page, so the
|
|
179
|
+
dialog doesn't hide it. In a light theme, Cube's dialogs draw their primary button as an accent button
|
|
180
|
+
(`CubeDialogTheme.ts`): legend-art's light variant draws it grey.
|
|
181
|
+
|
|
111
182
|
## Shortcuts
|
|
112
183
|
|
|
113
184
|
A Legend application binds keys only through its plugins. The host returns the page's commands from one of its
|
|
@@ -129,6 +200,11 @@ The page registers the commands while it is open: F9 runs the query, and Ctrl+Z
|
|
|
129
200
|
scans `../legend-*/src/**/*.tsx`. So Tailwind classes go in `.tsx` files only.
|
|
130
201
|
- React Flow's stylesheet comes with the canvas. Load the page lazily, as Legend Query does, to keep it and the page's
|
|
131
202
|
libraries out of the host's main bundle.
|
|
203
|
+
- In the legacy light theme, the legend-art components the page uses (dialogs, menus, form fields, inputs, tooltips,
|
|
204
|
+
notifications) take their light look from the application's own stylesheet: Legend Query's light mode
|
|
205
|
+
(`legend-application-query/style/light-mode.scss`), whose matching rules Legend Analytics copies into
|
|
206
|
+
`legend-application-analytics-bootstrap/style/light-mode.scss`, imported after every other style. A new host
|
|
207
|
+
defaulting to the light theme needs the same.
|
|
132
208
|
|
|
133
209
|
## The dev loop
|
|
134
210
|
|
|
@@ -137,7 +213,9 @@ The page registers the commands while it is open: F9 runs the query, and Ctrl+Z
|
|
|
137
213
|
(`fixtures/legend-docker-setup/grammar-test-setup/grammar-test-setup-docker-compose.yml`). Check it with
|
|
138
214
|
`curl -s localhost:6300/api/server/v1/info`.
|
|
139
215
|
2. Run `yarn build` once: `yarn dev:ts` doesn't build the stylesheets.
|
|
140
|
-
3. Run `yarn dev:ts` and `yarn dev:query`, and open `http://localhost:9001/query/cube
|
|
216
|
+
3. Run `yarn dev:ts` and `yarn dev:query`, and open `http://localhost:9001/query/cube`; or `yarn dev:analytics`, and
|
|
217
|
+
open `http://localhost:9009/analytics/` (run `yarn workspace @finos/legend-application-analytics-deployment setup`
|
|
218
|
+
once for its local config).
|
|
141
219
|
4. Run `yarn workspace @finos/legend-cube-builder dev:sass` to rebuild the stylesheet as you change it (the root
|
|
142
220
|
`yarn dev:ts` already rebuilds the TypeScript).
|
|
143
221
|
|
package/docs/testing.md
CHANGED
|
@@ -127,6 +127,24 @@ would serve it.
|
|
|
127
127
|
failing column found and located, a plan that fails, and a run. A test that needs a typed Extend without the engine
|
|
128
128
|
builds one with `TEST__typedExtend` (`src/__test-utils__/CubeExpressionTestUtils.ts`), whose types the conformance
|
|
129
129
|
cases check against the engine.
|
|
130
|
+
- **Filter by Expression** (PLAN §11.11). `CubeExpressionFilter.engine-roundtrip-test.ts` checks conditions through the
|
|
131
|
+
adapter (the cube model's function, a nullable comparison without `->toOne()`, a condition's type named when it
|
|
132
|
+
isn't one Boolean, an unknown column located, `&&` without parentheses refused) and runs them on H2: the late
|
|
133
|
+
orders, an empty value kept by a negation compared directly and by neither after `->toOne()`, a window column after
|
|
134
|
+
a Partition, an Extend's column. The plan-only test pins the condition in the `WHERE` on every type, and a window
|
|
135
|
+
column's filter after the window, never `QUALIFY`; the direct connection runs the empty values and the window on H2
|
|
136
|
+
and DuckDB. A test that needs a checked filter without the engine builds one with `TEST__checkedExpressionFilter`.
|
|
137
|
+
- **Pivot** (PLAN §11.12). `CubePivot.engine-roundtrip-test.ts` runs Cube's pivot on a DuckDB direct connection
|
|
138
|
+
(H2 can't run it): sums, counts with 0 where no rows are, averages and minimums, no row column, string values with a
|
|
139
|
+
space, a quote and a bar, a date and a Boolean pivot column, and later steps over the value columns; and Cube
|
|
140
|
+
refusing H2 and Trino. The plan-only test pins a PIVOT on Snowflake, Databricks, MemSQL and DuckDB whose names the
|
|
141
|
+
outer select reads, Trino and Athena planning none, and the other 14 refusing it: when the engine changes, it fails,
|
|
142
|
+
and `PIVOT_UNSUPPORTED_DATABASE_TYPES` can change. Two conformance cases pin the cast's types and emptiness.
|
|
143
|
+
- **The operations cleanup** (PLAN §11.14). `CubeOperationsCleanup.engine-roundtrip-test.ts` runs, on H2 and DuckDB
|
|
144
|
+
direct connections, a String's and a Boolean's Min and Max in a Group and a window, a String's Max in a Pivot
|
|
145
|
+
(DuckDB), the grid's float rule finding a `REAL` value (DuckDB; H2's is CubeDrilldown's), and a Join of `ID` and
|
|
146
|
+
`id` reported and fixed (DuckDB, which keeps their case). The plan-only test pins a pattern that isn't a literal:
|
|
147
|
+
`contains(a, b)` on Snowflake, the column's own SQL as the text on the others, which Cube refuses (a canary).
|
|
130
148
|
- `src/__tests__/CubeExamples.engine-roundtrip-test.ts` compiles the Sports and Trades sample models and opens every
|
|
131
149
|
example cube (PLAN §6.9) as the Examples dialog does: it types its tables, checks every node types as Cube infers it
|
|
132
150
|
(Sum outputs nullable to Cube only, PLAN §5.7) and runs it, counting rows.
|
|
@@ -186,3 +204,17 @@ The engine tests in `src/__tests__/` import `V1_*` classes there, as an exceptio
|
|
|
186
204
|
- **Changing the sample projects:** edit `fixtures/legend-mock-server/scripts/generate-cube-depot.mjs` and run it with
|
|
187
205
|
the engine up (`node scripts/generate-cube-depot.mjs`). The engine caches a pointer's project per version, so restart
|
|
188
206
|
it after changing a version it has fetched.
|
|
207
|
+
|
|
208
|
+
### The results grid
|
|
209
|
+
|
|
210
|
+
- **Server-side mode in jsdom.** ag-grid's server-side row model renders in jsdom, group rows and their expansion
|
|
211
|
+
included, so the region's tests drive it as a user would (`CubeGridRegion.test.tsx`). The logic sits below it, in
|
|
212
|
+
`CubeGridFetcher` and `CubeGridState` (store tests on the fake engine) and the core's `deriveDrilldownLevel`.
|
|
213
|
+
- **Each level on the engine:** `src/__tests__/CubeDrilldown.engine-roundtrip-test.ts` runs drill-down levels on H2
|
|
214
|
+
and compares their groups with groups counted and summed from the run's own rows, keys of every type included (a
|
|
215
|
+
32-bit `REAL` key needs `In [v, fround(v)]`), and over a Partition and a Limit run.
|
|
216
|
+
- **Around the databases:** the plan-only dialect test plans each level shape on every database type, and the
|
|
217
|
+
conformance suite checks the derived Groups' types against the engine's.
|
|
218
|
+
- **Export:** `src/__tests__/CubeExport.engine-roundtrip-test.ts` reads the engine's CSV. The engine test client sends
|
|
219
|
+
the serialization format the client asks for (Studio's CSV is the engine's `CSV_TRANSFORMED`). jsdom has no
|
|
220
|
+
`URL.createObjectURL`, so a test that saves a file stubs it (`CubeExportState.test.ts`).
|
|
@@ -17,6 +17,7 @@ import type { CommandConfigData } from '@finos/legend-application';
|
|
|
17
17
|
export declare enum LEGEND_CUBE_COMMAND_KEY {
|
|
18
18
|
EXECUTE = "legend-cube.execute",
|
|
19
19
|
UNDO = "legend-cube.undo",
|
|
20
|
+
REDO = "legend-cube.redo",
|
|
20
21
|
VALIDATE_EXPRESSIONS = "legend-cube.validate-expressions"
|
|
21
22
|
}
|
|
22
23
|
/** Keys as `KeyboardEvent.code` names */
|
|
@@ -24,4 +25,5 @@ export declare const LEGEND_CUBE_COMMAND_CONFIG: CommandConfigData;
|
|
|
24
25
|
/** How the buttons' tooltips name the shortcuts */
|
|
25
26
|
export declare const EXECUTE_SHORTCUT_LABEL = "F9";
|
|
26
27
|
export declare const UNDO_SHORTCUT_LABEL = "Ctrl+Z / Cmd+Z";
|
|
28
|
+
export declare const REDO_SHORTCUT_LABEL = "Ctrl+Shift+Z / Cmd+Shift+Z";
|
|
27
29
|
//# sourceMappingURL=LegendCubeCommand.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LegendCubeCommand.d.ts","sourceRoot":"","sources":["../../src/__lib__/LegendCubeCommand.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAOnE,oBAAY,uBAAuB;IACjC,OAAO,wBAAwB;IAC/B,IAAI,qBAAqB;IACzB,oBAAoB,qCAAqC;CAC1D;AAED,yCAAyC;AACzC,eAAO,MAAM,0BAA0B,EAAE,
|
|
1
|
+
{"version":3,"file":"LegendCubeCommand.d.ts","sourceRoot":"","sources":["../../src/__lib__/LegendCubeCommand.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAOnE,oBAAY,uBAAuB;IACjC,OAAO,wBAAwB;IAC/B,IAAI,qBAAqB;IACzB,IAAI,qBAAqB;IACzB,oBAAoB,qCAAqC;CAC1D;AAED,yCAAyC;AACzC,eAAO,MAAM,0BAA0B,EAAE,iBAmBxC,CAAC;AAEF,mDAAmD;AACnD,eAAO,MAAM,sBAAsB,OAAO,CAAC;AAC3C,eAAO,MAAM,mBAAmB,mBAAmB,CAAC;AACpD,eAAO,MAAM,mBAAmB,+BAA+B,CAAC"}
|
|
@@ -21,6 +21,7 @@ export var LEGEND_CUBE_COMMAND_KEY;
|
|
|
21
21
|
(function (LEGEND_CUBE_COMMAND_KEY) {
|
|
22
22
|
LEGEND_CUBE_COMMAND_KEY["EXECUTE"] = "legend-cube.execute";
|
|
23
23
|
LEGEND_CUBE_COMMAND_KEY["UNDO"] = "legend-cube.undo";
|
|
24
|
+
LEGEND_CUBE_COMMAND_KEY["REDO"] = "legend-cube.redo";
|
|
24
25
|
LEGEND_CUBE_COMMAND_KEY["VALIDATE_EXPRESSIONS"] = "legend-cube.validate-expressions";
|
|
25
26
|
})(LEGEND_CUBE_COMMAND_KEY || (LEGEND_CUBE_COMMAND_KEY = {}));
|
|
26
27
|
/** Keys as `KeyboardEvent.code` names */
|
|
@@ -34,6 +35,11 @@ export const LEGEND_CUBE_COMMAND_CONFIG = {
|
|
|
34
35
|
defaultKeyboardShortcut: 'Control+KeyZ',
|
|
35
36
|
additionalKeyboardShortcuts: ['Meta+KeyZ'],
|
|
36
37
|
},
|
|
38
|
+
[LEGEND_CUBE_COMMAND_KEY.REDO]: {
|
|
39
|
+
title: 'Redo the last change undone',
|
|
40
|
+
defaultKeyboardShortcut: 'Control+Shift+KeyZ',
|
|
41
|
+
additionalKeyboardShortcuts: ['Meta+Shift+KeyZ', 'Control+KeyY'],
|
|
42
|
+
},
|
|
37
43
|
[LEGEND_CUBE_COMMAND_KEY.VALIDATE_EXPRESSIONS]: {
|
|
38
44
|
title: "Validate the Extend's expressions",
|
|
39
45
|
defaultKeyboardShortcut: 'F10',
|
|
@@ -42,4 +48,5 @@ export const LEGEND_CUBE_COMMAND_CONFIG = {
|
|
|
42
48
|
/** How the buttons' tooltips name the shortcuts */
|
|
43
49
|
export const EXECUTE_SHORTCUT_LABEL = 'F9';
|
|
44
50
|
export const UNDO_SHORTCUT_LABEL = 'Ctrl+Z / Cmd+Z';
|
|
51
|
+
export const REDO_SHORTCUT_LABEL = 'Ctrl+Shift+Z / Cmd+Shift+Z';
|
|
45
52
|
//# sourceMappingURL=LegendCubeCommand.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LegendCubeCommand.js","sourceRoot":"","sources":["../../src/__lib__/LegendCubeCommand.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH,wEAAwE;AACxE,2EAA2E;AAC3E,6EAA6E;AAC7E,oDAAoD;AAEpD,MAAM,CAAN,IAAY,
|
|
1
|
+
{"version":3,"file":"LegendCubeCommand.js","sourceRoot":"","sources":["../../src/__lib__/LegendCubeCommand.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH,wEAAwE;AACxE,2EAA2E;AAC3E,6EAA6E;AAC7E,oDAAoD;AAEpD,MAAM,CAAN,IAAY,uBAKX;AALD,WAAY,uBAAuB;IACjC,0DAA+B,CAAA;IAC/B,oDAAyB,CAAA;IACzB,oDAAyB,CAAA;IACzB,oFAAyD,CAAA;AAC3D,CAAC,EALW,uBAAuB,KAAvB,uBAAuB,QAKlC;AAED,yCAAyC;AACzC,MAAM,CAAC,MAAM,0BAA0B,GAAsB;IAC3D,CAAC,uBAAuB,CAAC,OAAO,CAAC,EAAE;QACjC,KAAK,EAAE,mBAAmB;QAC1B,uBAAuB,EAAE,IAAI;KAC9B;IACD,CAAC,uBAAuB,CAAC,IAAI,CAAC,EAAE;QAC9B,KAAK,EAAE,sBAAsB;QAC7B,uBAAuB,EAAE,cAAc;QACvC,2BAA2B,EAAE,CAAC,WAAW,CAAC;KAC3C;IACD,CAAC,uBAAuB,CAAC,IAAI,CAAC,EAAE;QAC9B,KAAK,EAAE,6BAA6B;QACpC,uBAAuB,EAAE,oBAAoB;QAC7C,2BAA2B,EAAE,CAAC,iBAAiB,EAAE,cAAc,CAAC;KACjE;IACD,CAAC,uBAAuB,CAAC,oBAAoB,CAAC,EAAE;QAC9C,KAAK,EAAE,mCAAmC;QAC1C,uBAAuB,EAAE,KAAK;KAC/B;CACF,CAAC;AAEF,mDAAmD;AACnD,MAAM,CAAC,MAAM,sBAAsB,GAAG,IAAI,CAAC;AAC3C,MAAM,CAAC,MAAM,mBAAmB,GAAG,gBAAgB,CAAC;AACpD,MAAM,CAAC,MAAM,mBAAmB,GAAG,4BAA4B,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
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 { SchemaDiff } from '@finos/legend-cube';
|
|
17
|
+
export declare const getFunctionDriftWarning: (diff: SchemaDiff) => string;
|
|
18
|
+
export declare const getFunctionRecheckWarning: (firstLine: string) => string;
|
|
19
|
+
export declare const CUBE_FUNCTION_MESSAGE: {
|
|
20
|
+
readonly NO_ANSWER: "The engine gave no columns for this function";
|
|
21
|
+
/** Under a function with its own runtime */
|
|
22
|
+
readonly RUNS_ON: (runtime: string) => string;
|
|
23
|
+
/** A function with its own runtime, on a cube that runs on another */
|
|
24
|
+
readonly OTHER_RUNTIME: (runtime: string, cubeRuntime: string) => string;
|
|
25
|
+
readonly NONE: "This version has no function that returns a relation.";
|
|
26
|
+
readonly NO_MATCH: "No function matches the search.";
|
|
27
|
+
readonly CUBE_CHANGED: "The cube changed while the function was being added; pick it again.";
|
|
28
|
+
};
|
|
29
|
+
//# sourceMappingURL=LegendCubeFunctionLabels.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LegendCubeFunctionLabels.d.ts","sourceRoot":"","sources":["../../src/__lib__/LegendCubeFunctionLabels.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAMrD,eAAO,MAAM,uBAAuB,GAAI,MAAM,UAAU,KAAG,MAC+B,CAAC;AAE3F,eAAO,MAAM,yBAAyB,GAAI,WAAW,MAAM,KAAG,MACmB,CAAC;AAElF,eAAO,MAAM,qBAAqB;;IAEhC,4CAA4C;gCACzB,MAAM,KAAG,MAAM;IAElC,sEAAsE;sCAC7C,MAAM,eAAe,MAAM,KAAG,MAAM;;;;CAMrD,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
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 { getSchemaChangeList } from './LegendCubeLabels.js';
|
|
17
|
+
// The text of function sources (PLAN §6.5): the source dialog's Project
|
|
18
|
+
// tab, when it reads functions, and a function's panel
|
|
19
|
+
export const getFunctionDriftWarning = (diff) => `This function's columns changed since the cube was saved: ${getSchemaChangeList(diff)}`;
|
|
20
|
+
export const getFunctionRecheckWarning = (firstLine) => `Could not re-check this function, so it keeps its saved columns: ${firstLine}`;
|
|
21
|
+
export const CUBE_FUNCTION_MESSAGE = {
|
|
22
|
+
NO_ANSWER: 'The engine gave no columns for this function',
|
|
23
|
+
/** Under a function with its own runtime */
|
|
24
|
+
RUNS_ON: (runtime) => `Runs on ${runtime}, set by the function`,
|
|
25
|
+
/** A function with its own runtime, on a cube that runs on another */
|
|
26
|
+
OTHER_RUNTIME: (runtime, cubeRuntime) => `It reads through ${runtime}, but the cube runs on ${cubeRuntime}`,
|
|
27
|
+
NONE: 'This version has no function that returns a relation.',
|
|
28
|
+
NO_MATCH: 'No function matches the search.',
|
|
29
|
+
CUBE_CHANGED: 'The cube changed while the function was being added; pick it again.',
|
|
30
|
+
};
|
|
31
|
+
//# sourceMappingURL=LegendCubeFunctionLabels.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LegendCubeFunctionLabels.js","sourceRoot":"","sources":["../../src/__lib__/LegendCubeFunctionLabels.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D,wEAAwE;AACxE,uDAAuD;AAEvD,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,IAAgB,EAAU,EAAE,CAClE,6DAA6D,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC;AAE3F,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,SAAiB,EAAU,EAAE,CACrE,oEAAoE,SAAS,EAAE,CAAC;AAElF,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,SAAS,EAAE,8CAA8C;IACzD,4CAA4C;IAC5C,OAAO,EAAE,CAAC,OAAe,EAAU,EAAE,CACnC,WAAW,OAAO,uBAAuB;IAC3C,sEAAsE;IACtE,aAAa,EAAE,CAAC,OAAe,EAAE,WAAmB,EAAU,EAAE,CAC9D,oBAAoB,OAAO,0BAA0B,WAAW,EAAE;IACpE,IAAI,EAAE,uDAAuD;IAC7D,QAAQ,EAAE,iCAAiC;IAC3C,YAAY,EACV,qEAAqE;CAC/D,CAAC"}
|
|
@@ -15,5 +15,9 @@
|
|
|
15
15
|
*/
|
|
16
16
|
export declare const CUBE_NODE_HELP_TEXT: Readonly<Record<string, string>>;
|
|
17
17
|
/** The tooltip of the editor's Select link (spec §17.9) */
|
|
18
|
-
export declare const SELECT_NODE_TOOLTIP = "
|
|
18
|
+
export declare const SELECT_NODE_TOOLTIP = "Make this the step that runs: Execute shows its rows in the grid.";
|
|
19
|
+
/** The marker on the step that runs, on the canvas and in its editor */
|
|
20
|
+
export declare const RUNNING_NODE_LABEL = "Runs";
|
|
21
|
+
/** What a node's menu and editor call making it the step that runs */
|
|
22
|
+
export declare const RUN_THIS_STEP_LABEL = "Run this step";
|
|
19
23
|
//# sourceMappingURL=LegendCubeHelpText.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LegendCubeHelpText.d.ts","sourceRoot":"","sources":["../../src/__lib__/LegendCubeHelpText.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;
|
|
1
|
+
{"version":3,"file":"LegendCubeHelpText.d.ts","sourceRoot":"","sources":["../../src/__lib__/LegendCubeHelpText.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAiCH,eAAO,MAAM,mBAAmB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAkDhE,CAAC;AAEF,2DAA2D;AAC3D,eAAO,MAAM,mBAAmB,sEACqC,CAAC;AAEtE,wEAAwE;AACxE,eAAO,MAAM,kBAAkB,SAAS,CAAC;AAEzC,sEAAsE;AACtE,eAAO,MAAM,mBAAmB,kBAAkB,CAAC"}
|
|
@@ -13,24 +13,34 @@
|
|
|
13
13
|
* See the License for the specific language governing permissions and
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
|
-
import { Concat, DataProductAccessPointSource, Difference, IngestDatasetSource, Distinct, Drop, Extend, Filter, Group, Join, Limit, Partition, RelationalTableSource, Rename, Restrict, Slice, Sort, UnknownNode, } from '@finos/legend-cube';
|
|
16
|
+
import { Concat, DataProductAccessPointSource, Difference, IngestDatasetSource, Distinct, Drop, ExpressionFilter, Explode, Extend, Filter, FunctionSource, Group, Join, Limit, Partition, Pivot, RelationalTableSource, Rename, Restrict, ServiceSource, Slice, Sort, UnknownNode, } from '@finos/legend-cube';
|
|
17
17
|
// The node editor's help text, verbatim from the original (spec §17.9), but
|
|
18
18
|
// Slice's, which counts rows from 0 and leaves the stop row out (D5, PLAN
|
|
19
19
|
// §11.4), and Concat's, which matches columns by position (PLAN §11.5, Q8).
|
|
20
20
|
// A new node type adds its entry here.
|
|
21
21
|
export const CUBE_NODE_HELP_TEXT = {
|
|
22
22
|
[RelationalTableSource.TYPE]: 'Sources data from relational database table.',
|
|
23
|
+
/** Added by Cube: the original's PURE Native Function source (PLAN §6.5) */
|
|
24
|
+
[FunctionSource.TYPE]: 'Sources data from a function of the model that returns a relation, called with a value for each parameter.',
|
|
23
25
|
/** Added by Cube: the original has no data product source (PLAN §6.8) */
|
|
24
26
|
[DataProductAccessPointSource.TYPE]: 'Sources data from an access point of a deployed data product.',
|
|
25
27
|
/** Added by Cube: the original has no ingest data set source (PLAN §6.7) */
|
|
26
28
|
[IngestDatasetSource.TYPE]: 'Sources data from a data set of a deployed ingest definition.',
|
|
29
|
+
/** Added by Cube: the original's service source is read another way, still to come (PLAN §6.4) */
|
|
30
|
+
[ServiceSource.TYPE]: "Sources data from a deployed service. In progress: Cube can't read services yet.",
|
|
27
31
|
[Concat.TYPE]: 'Combines the rows of the two previous data sets, keeping duplicates, in no particular order. Both must have the same columns: the same names, in the same order, with the same types.',
|
|
28
32
|
[Difference.TYPE]: 'Compares numeric values of specified columns from two previous data sets.',
|
|
29
33
|
[Distinct.TYPE]: 'Removes duplicate rows from the previous data set.',
|
|
30
34
|
[Drop.TYPE]: 'Reduces the number of rows in the previous data set, removing the specified number of rows from the beginning of the data set.',
|
|
31
35
|
[Extend.TYPE]: 'Extends outgoing data set with new columns produced by expressions.',
|
|
36
|
+
/** Added by Cube: the original has no JSON operations (PLAN §11.20) */
|
|
37
|
+
[Explode.TYPE]: 'Makes a row for each element of an array in a JSON (Variant) column of the previous data set, keeping its columns and adding the element as a new column. A row whose array is empty, or missing, is kept once, with an empty element.',
|
|
32
38
|
[Filter.TYPE]: 'Reduces the number of rows in the previous data set, keeping only rows matching the specified criteria.',
|
|
39
|
+
/** Added by Cube: the original has no filter by expression (PLAN §11.11) */
|
|
40
|
+
[ExpressionFilter.TYPE]: 'Reduces the number of rows in the previous data set, keeping only rows for which the expression is true.',
|
|
33
41
|
[Group.TYPE]: 'Aggregates the data from the previous data set using the specified columns and aggregation functions.',
|
|
42
|
+
/** Added by Cube: the original has pivot only in the grid (PLAN §11.12) */
|
|
43
|
+
[Pivot.TYPE]: 'Turns the values of a column of the previous data set into columns: a row for each combination of the row columns that has a picked value, and a column for each picked value, holding its aggregate.',
|
|
34
44
|
[Join.TYPE]: 'Joins two previous data sets using specified columns as join keys.',
|
|
35
45
|
[Partition.TYPE]: 'Adds new columns with outputs of window functions for optional window partition and order.',
|
|
36
46
|
[Limit.TYPE]: 'Reduces the number of rows in the previous data set, keeping the specified number of rows from the beginning of the data set.',
|
|
@@ -41,5 +51,9 @@ export const CUBE_NODE_HELP_TEXT = {
|
|
|
41
51
|
[UnknownNode.TYPE]: 'Source or transformation unknown to the application.',
|
|
42
52
|
};
|
|
43
53
|
/** The tooltip of the editor's Select link (spec §17.9) */
|
|
44
|
-
export const SELECT_NODE_TOOLTIP = '
|
|
54
|
+
export const SELECT_NODE_TOOLTIP = 'Make this the step that runs: Execute shows its rows in the grid.';
|
|
55
|
+
/** The marker on the step that runs, on the canvas and in its editor */
|
|
56
|
+
export const RUNNING_NODE_LABEL = 'Runs';
|
|
57
|
+
/** What a node's menu and editor call making it the step that runs */
|
|
58
|
+
export const RUN_THIS_STEP_LABEL = 'Run this step';
|
|
45
59
|
//# sourceMappingURL=LegendCubeHelpText.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LegendCubeHelpText.js","sourceRoot":"","sources":["../../src/__lib__/LegendCubeHelpText.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EACL,MAAM,EACN,4BAA4B,EAC5B,UAAU,EACV,mBAAmB,EACnB,QAAQ,EACR,IAAI,EACJ,MAAM,EACN,MAAM,EACN,KAAK,EACL,IAAI,EACJ,KAAK,EACL,SAAS,EACT,qBAAqB,EACrB,MAAM,EACN,QAAQ,EACR,KAAK,EACL,IAAI,EACJ,WAAW,GACZ,MAAM,oBAAoB,CAAC;AAE5B,4EAA4E;AAC5E,0EAA0E;AAC1E,4EAA4E;AAC5E,uCAAuC;AAEvC,MAAM,CAAC,MAAM,mBAAmB,GAAqC;IACnE,CAAC,qBAAqB,CAAC,IAAI,CAAC,EAAE,8CAA8C;IAC5E,yEAAyE;IACzE,CAAC,4BAA4B,CAAC,IAAI,CAAC,EACjC,+DAA+D;IACjE,4EAA4E;IAC5E,CAAC,mBAAmB,CAAC,IAAI,CAAC,EACxB,+DAA+D;IACjE,CAAC,MAAM,CAAC,IAAI,CAAC,EACX,uLAAuL;IACzL,CAAC,UAAU,CAAC,IAAI,CAAC,EACf,2EAA2E;IAC7E,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,oDAAoD;IACrE,CAAC,IAAI,CAAC,IAAI,CAAC,EACT,gIAAgI;IAClI,CAAC,MAAM,CAAC,IAAI,CAAC,EACX,qEAAqE;IACvE,CAAC,MAAM,CAAC,IAAI,CAAC,EACX,yGAAyG;IAC3G,CAAC,KAAK,CAAC,IAAI,CAAC,EACV,uGAAuG;IACzG,CAAC,IAAI,CAAC,IAAI,CAAC,EACT,oEAAoE;IACtE,CAAC,SAAS,CAAC,IAAI,CAAC,EACd,4FAA4F;IAC9F,CAAC,KAAK,CAAC,IAAI,CAAC,EACV,+HAA+H;IACjI,CAAC,MAAM,CAAC,IAAI,CAAC,EACX,kEAAkE;IACpE,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,4DAA4D;IAC7E,CAAC,KAAK,CAAC,IAAI,CAAC,EACV,8JAA8J;IAChK,CAAC,IAAI,CAAC,IAAI,CAAC,EACT,oHAAoH;IACtH,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,sDAAsD;CAC3E,CAAC;AAEF,2DAA2D;AAC3D,MAAM,CAAC,MAAM,mBAAmB,GAC9B,
|
|
1
|
+
{"version":3,"file":"LegendCubeHelpText.js","sourceRoot":"","sources":["../../src/__lib__/LegendCubeHelpText.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EACL,MAAM,EACN,4BAA4B,EAC5B,UAAU,EACV,mBAAmB,EACnB,QAAQ,EACR,IAAI,EACJ,gBAAgB,EAChB,OAAO,EACP,MAAM,EACN,MAAM,EACN,cAAc,EACd,KAAK,EACL,IAAI,EACJ,KAAK,EACL,SAAS,EACT,KAAK,EACL,qBAAqB,EACrB,MAAM,EACN,QAAQ,EACR,aAAa,EACb,KAAK,EACL,IAAI,EACJ,WAAW,GACZ,MAAM,oBAAoB,CAAC;AAE5B,4EAA4E;AAC5E,0EAA0E;AAC1E,4EAA4E;AAC5E,uCAAuC;AAEvC,MAAM,CAAC,MAAM,mBAAmB,GAAqC;IACnE,CAAC,qBAAqB,CAAC,IAAI,CAAC,EAAE,8CAA8C;IAC5E,4EAA4E;IAC5E,CAAC,cAAc,CAAC,IAAI,CAAC,EACnB,4GAA4G;IAC9G,yEAAyE;IACzE,CAAC,4BAA4B,CAAC,IAAI,CAAC,EACjC,+DAA+D;IACjE,4EAA4E;IAC5E,CAAC,mBAAmB,CAAC,IAAI,CAAC,EACxB,+DAA+D;IACjE,kGAAkG;IAClG,CAAC,aAAa,CAAC,IAAI,CAAC,EAClB,kFAAkF;IACpF,CAAC,MAAM,CAAC,IAAI,CAAC,EACX,uLAAuL;IACzL,CAAC,UAAU,CAAC,IAAI,CAAC,EACf,2EAA2E;IAC7E,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,oDAAoD;IACrE,CAAC,IAAI,CAAC,IAAI,CAAC,EACT,gIAAgI;IAClI,CAAC,MAAM,CAAC,IAAI,CAAC,EACX,qEAAqE;IACvE,uEAAuE;IACvE,CAAC,OAAO,CAAC,IAAI,CAAC,EACZ,wOAAwO;IAC1O,CAAC,MAAM,CAAC,IAAI,CAAC,EACX,yGAAyG;IAC3G,4EAA4E;IAC5E,CAAC,gBAAgB,CAAC,IAAI,CAAC,EACrB,0GAA0G;IAC5G,CAAC,KAAK,CAAC,IAAI,CAAC,EACV,uGAAuG;IACzG,2EAA2E;IAC3E,CAAC,KAAK,CAAC,IAAI,CAAC,EACV,uMAAuM;IACzM,CAAC,IAAI,CAAC,IAAI,CAAC,EACT,oEAAoE;IACtE,CAAC,SAAS,CAAC,IAAI,CAAC,EACd,4FAA4F;IAC9F,CAAC,KAAK,CAAC,IAAI,CAAC,EACV,+HAA+H;IACjI,CAAC,MAAM,CAAC,IAAI,CAAC,EACX,kEAAkE;IACpE,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,4DAA4D;IAC7E,CAAC,KAAK,CAAC,IAAI,CAAC,EACV,8JAA8J;IAChK,CAAC,IAAI,CAAC,IAAI,CAAC,EACT,oHAAoH;IACtH,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,sDAAsD;CAC3E,CAAC;AAEF,2DAA2D;AAC3D,MAAM,CAAC,MAAM,mBAAmB,GAC9B,mEAAmE,CAAC;AAEtE,wEAAwE;AACxE,MAAM,CAAC,MAAM,kBAAkB,GAAG,MAAM,CAAC;AAEzC,sEAAsE;AACtE,MAAM,CAAC,MAAM,mBAAmB,GAAG,eAAe,CAAC"}
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
* See the License for the specific language governing permissions and
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
|
-
import type
|
|
16
|
+
import { type SchemaColumn, type SchemaDiff } from '@finos/legend-cube';
|
|
17
17
|
import { CubeTableFlag } from '../graph-manager/CubeEngine.js';
|
|
18
18
|
/** The rows a run returns by default (PLAN §9, Settled before M1.8) */
|
|
19
19
|
export declare const DEFAULT_ROW_LIMIT = 1000;
|
|
@@ -25,7 +25,11 @@ export declare enum LEGEND_CUBE_USER_DATA_KEY {
|
|
|
25
25
|
ROW_LIMIT = "legend-cube.row-limit",
|
|
26
26
|
PALETTE_COLLAPSED = "legend-cube.palette-collapsed",
|
|
27
27
|
/** The warehouse the viewer last picked for a data product cube (PLAN §6.8) */
|
|
28
|
-
DATA_PRODUCT_WAREHOUSE = "legend-cube.data-product-warehouse"
|
|
28
|
+
DATA_PRODUCT_WAREHOUSE = "legend-cube.data-product-warehouse",
|
|
29
|
+
/** Server-side or local (PLAN §11.10) */
|
|
30
|
+
GRID_MODE = "legend-cube.grid-mode",
|
|
31
|
+
/** Engine requests sent uncompressed, for the browser's Network tab (PLAN §11.16) */
|
|
32
|
+
UNCOMPRESSED_REQUESTS = "legend-cube.uncompressed-requests"
|
|
29
33
|
}
|
|
30
34
|
export declare const UNSAVED_CUBE_NAME = "Unsaved Query";
|
|
31
35
|
/** Why a source is disabled on a cube: it reads database tables or data products, never both (PLAN §6.8) */
|
|
@@ -36,23 +40,50 @@ export declare const UNSERVED_SOURCE_KIND_TITLE = "This Legend deployment doesn'
|
|
|
36
40
|
export declare const READ_ONLY_CUBE_TITLE = "This cube was saved by a newer version of Legend Cube, so it can't be changed or exported";
|
|
37
41
|
/** How a SQL NULL shows in the grid, distinct from an empty string */
|
|
38
42
|
export declare const NULL_CELL_TEXT = "(null)";
|
|
43
|
+
/** What the Runs panel calls a run (PLAN §11.10, §11.16); a fetch of the grid's rows is described by its level */
|
|
44
|
+
export declare const CUBE_RUN_LABEL: {
|
|
45
|
+
EXECUTE: string;
|
|
46
|
+
EXPORT_CSV: string;
|
|
47
|
+
pivotValues: (column: string) => string;
|
|
48
|
+
};
|
|
49
|
+
/**
|
|
50
|
+
* Above a run's Pure (PLAN §11.16): unlike Show Pure, it shows the limit a
|
|
51
|
+
* grid run adds, one more than the row limit, to tell whether there are more
|
|
52
|
+
*/
|
|
53
|
+
export declare const CUBE_RUN_PURE_NOTE = "As it ran, with any row limit Cube added to it.";
|
|
39
54
|
/** Pending labels: lower-case gerunds, shown as they are (spec §17.13) */
|
|
40
55
|
export declare enum CUBE_PENDING_LABEL {
|
|
41
56
|
LOADING_MODEL = "loading model",
|
|
42
57
|
RESOLVING_SOURCE = "resolving source",
|
|
43
58
|
EXECUTING_QUERY = "executing query",
|
|
59
|
+
FETCHING_ROWS = "fetching rows",
|
|
60
|
+
EXPORTING_CSV = "exporting CSV",
|
|
44
61
|
RENDERING_QUERY = "rendering query",
|
|
45
62
|
REFRESHING_SOURCE = "refreshing source",
|
|
46
|
-
|
|
63
|
+
CHECKING_EXPRESSIONS = "checking expressions"
|
|
47
64
|
}
|
|
48
|
-
|
|
65
|
+
/**
|
|
66
|
+
* Why a row limit can't be taken: the number its text holds
|
|
67
|
+
* (`parseWholeNumberText`, so `0x10`, `1e3` and `1.0` hold none, PLAN
|
|
68
|
+
* §11.14) isn't a safe whole number of at least 1
|
|
69
|
+
*/
|
|
70
|
+
export declare const getRowLimitError: (value: number | undefined) => string | undefined;
|
|
49
71
|
export declare const getTruncationMessage: (rowLimit: number) => string;
|
|
72
|
+
/** In server-side mode, when a drill-down level or a sorted level was cut at the row limit (PLAN §11.10) */
|
|
73
|
+
export declare const getLevelTruncationMessage: (rowLimit: number) => string;
|
|
50
74
|
/** How the picker shows a table's problem, and why (PLAN §6.2.6) */
|
|
51
75
|
export declare const CUBE_TABLE_FLAG_LABELS: Readonly<Record<CubeTableFlag, {
|
|
52
76
|
label: string;
|
|
53
77
|
description: string;
|
|
54
78
|
}>>;
|
|
55
|
-
/** A column's type
|
|
79
|
+
/** A column's exact type: its display name, `?` when it takes NULL, e.g. `Varchar(5)?`; for hover and type messages */
|
|
80
|
+
export declare const getExactColumnTypeLabel: (column: SchemaColumn) => string;
|
|
81
|
+
/**
|
|
82
|
+
* A column's type as the editors show it: the kind of value, and whether it
|
|
83
|
+
* is optional (can be empty), e.g. `Text, optional`; an enumeration, or a
|
|
84
|
+
* type Cube doesn't know, by its name. The exact type
|
|
85
|
+
* (`getExactColumnTypeLabel`) is on hover.
|
|
86
|
+
*/
|
|
56
87
|
export declare const getColumnTypeLabel: (column: SchemaColumn) => string;
|
|
57
88
|
/** Why Execute (and Show Pure) can't run, one reason a line, for a tooltip */
|
|
58
89
|
export declare const formatDisabledReasons: (reasons: readonly string[]) => string;
|
|
@@ -66,15 +97,31 @@ export declare const CUBE_SORT_COLUMN_DISABLED_REASON: {
|
|
|
66
97
|
TAKEN: string;
|
|
67
98
|
};
|
|
68
99
|
/** Why the grid's quick actions (spec §12.4) can't be used */
|
|
100
|
+
/** Why a Variant cell's Open JSON can't be used (PLAN §11.20) */
|
|
101
|
+
export declare const CUBE_JSON_DISABLED_REASON: {
|
|
102
|
+
NOT_A_ROW: string;
|
|
103
|
+
EMPTY: string;
|
|
104
|
+
};
|
|
69
105
|
export declare const CUBE_QUICK_ACTION_DISABLED_REASON: {
|
|
70
106
|
STALE_ROWS: string;
|
|
71
107
|
RUNNING: string;
|
|
72
108
|
EDITING: string;
|
|
73
109
|
UNREADABLE_VALUE: string;
|
|
110
|
+
/** On a group row's cell that holds its aggregation (PLAN §11.10) */
|
|
111
|
+
AGGREGATE_VALUE: string;
|
|
112
|
+
/** On a group row's cell that shows nothing */
|
|
113
|
+
NO_VALUE: string;
|
|
74
114
|
notSortable: (typeName: string) => string;
|
|
75
115
|
notGroupable: (typeName: string) => string;
|
|
76
116
|
notComparable: (typeName: string) => string;
|
|
77
117
|
};
|
|
118
|
+
/** Why 'Format Column' can't be used on a column (spec §13.1) */
|
|
119
|
+
export declare const CUBE_FORMAT_NOT_A_NUMBER = "Only number columns can be formatted.";
|
|
120
|
+
/** Why 'Drilldown by' can't be used on a column (PLAN §11.10) */
|
|
121
|
+
export declare const CUBE_DRILLDOWN_BLOCKER: {
|
|
122
|
+
ALREADY_A_LEVEL: string;
|
|
123
|
+
notGroupable: (typeName: string) => string;
|
|
124
|
+
};
|
|
78
125
|
/** Beside a condition comparing a floating-point column for equality (R133) */
|
|
79
126
|
export declare const FILTER_FLOAT_COMPARISON_HINT = "exact comparison on floating-point columns may not match";
|
|
80
127
|
/** The Filter and Join editors' warning on a column that can hold both dates and timestamps (PLAN §11.5) */
|
|
@@ -117,6 +164,55 @@ export declare const getConcatUntypedWarning: (columns: readonly string[]) => st
|
|
|
117
164
|
export declare const CUBE_GROUP_COLUMN_DISABLED_REASON = "can't be grouped";
|
|
118
165
|
/** What the Group editor says about its aggregations (PLAN §11.5; Count counts non-empty values, D4) */
|
|
119
166
|
export declare const GROUP_EDITOR_NOTES: string[];
|
|
167
|
+
/** Why the Pivot editor won't take a column (PLAN §11.12), shown after the column's type */
|
|
168
|
+
export declare const PIVOT_COLUMN_DISABLED_REASON: {
|
|
169
|
+
/** a row column that can't be compared */
|
|
170
|
+
readonly NOT_GROUPABLE: "can't be grouped";
|
|
171
|
+
/** a pivot column of another type than a String, an integer, a StrictDate or a Boolean */
|
|
172
|
+
readonly NOT_PIVOTABLE: "can't be pivoted";
|
|
173
|
+
/** a column the pivot uses for another part */
|
|
174
|
+
readonly PIVOT_COLUMN: "the pivot column";
|
|
175
|
+
readonly ROW_COLUMN: "a row column";
|
|
176
|
+
readonly AGGREGATED: "the aggregated column";
|
|
177
|
+
};
|
|
178
|
+
/** Why the Pivot editor won't tick a value (PLAN §11.12) */
|
|
179
|
+
export declare const PIVOT_VALUE_DISABLED_REASON: {
|
|
180
|
+
readonly NOT_A_COLUMN_NAME: "can't name a column";
|
|
181
|
+
/** another value ticked has the same text in another case */
|
|
182
|
+
readonly DIFFERS_ONLY_IN_CASE: "only its case differs from a ticked value";
|
|
183
|
+
/** as many values are ticked as a Pivot takes */
|
|
184
|
+
readonly TOO_MANY: "as many values as a Pivot takes are ticked";
|
|
185
|
+
};
|
|
186
|
+
/** What the Pivot editor says (PLAN §11.12) */
|
|
187
|
+
export declare const PIVOT_EDITOR_NOTES: readonly ["Each picked value becomes a column, named by the value, holding the aggregation of its rows; each combination of the row columns with a picked value becomes a row. Values not picked, and combinations holding only them, are left out.", "Load values lists the pivot column's values, each once, up to 100. An empty value can't be pivoted, nor one that can't name a column; of two values that differ only in case, one can be ticked, as some databases would mix up their columns.", "Pivot runs on Snowflake, Databricks, SingleStore and DuckDB; other databases, such as H2 and Postgres, can't run it."];
|
|
188
|
+
/** Why the Explode Array editor won't pick a column (PLAN §11.20) */
|
|
189
|
+
export declare const EXPLODE_COLUMN_DISABLED_REASON: {
|
|
190
|
+
/** a column of another type than Variant */
|
|
191
|
+
readonly NOT_JSON: "not JSON";
|
|
192
|
+
};
|
|
193
|
+
/** Under the Explode Array editor (PLAN §11.20) */
|
|
194
|
+
export declare const EXPLODE_EDITOR_NOTES: readonly ["One row per element of the array, the other columns repeated on each. A row whose array is empty, or that has none, is kept once, with an empty element.", "Find arrays reads the column's first values, as Explore JSON does, and lists the arrays they hold. Keys can be typed too: none when the column is the array.", "The element is JSON: Explore JSON, in its column menu, makes columns of its fields. Explode Array runs on Snowflake, Databricks, Postgres and DuckDB."];
|
|
195
|
+
/** Explore JSON's one row per element offer, as its tooltip explains it (PLAN §11.20) */
|
|
196
|
+
export declare const CUBE_JSON_EXPLODE_OFFER_TITLE = "Adds an Explode Array node: a row for each element, the element as a new JSON column. One array at a time.";
|
|
197
|
+
/** The tooltips of a Variant column's fields in an expression editor (PLAN §11.20, V.9) */
|
|
198
|
+
export declare const CUBE_JSON_FIELDS_TITLE: {
|
|
199
|
+
readonly OPEN: "Show its fields, read from its first values just before this step: listed in Runs; a field clicked is written into the expression";
|
|
200
|
+
readonly FORMS: "Other forms of the field: counts, lists, the first element, totals, as JSON";
|
|
201
|
+
readonly EXPLODE: "One row per element is a step of its own: add Explode Array from the palette, or from Explore JSON in the grid";
|
|
202
|
+
readonly READ_AGAIN: "Read the column again";
|
|
203
|
+
readonly EVERY_ROW: "Read every value of the column, for the shape of the whole column: listed in Runs, and it can be stopped";
|
|
204
|
+
};
|
|
205
|
+
/** What a Variant column's fields were read from, in an expression editor (PLAN §11.20, V.9) */
|
|
206
|
+
export declare const getCubeJsonFieldsStatus: (sample: {
|
|
207
|
+
readonly rows: number;
|
|
208
|
+
readonly complete: boolean;
|
|
209
|
+
}) => string;
|
|
210
|
+
/** Says that Find arrays found none in the values read (PLAN §11.20) */
|
|
211
|
+
export declare const EXPLODE_NO_ARRAYS_NOTICE = "No array in the values read: type the keys to one.";
|
|
212
|
+
/** Says that Load values found no value to list (PLAN §11.12) */
|
|
213
|
+
export declare const PIVOT_NO_VALUES_NOTICE = "The pivot column has no value to list: its rows are all empty, or there are none.";
|
|
214
|
+
/** Says that the engine has more values than the Pivot editor lists (PLAN §11.12) */
|
|
215
|
+
export declare const getPivotValuesCutNotice: (shown: number) => string;
|
|
120
216
|
/** Why the Partition editor won't tick a column that can't be compared (PLAN §11.6) */
|
|
121
217
|
export declare const CUBE_PARTITION_COLUMN_DISABLED_REASON = "can't be partitioned by";
|
|
122
218
|
/** What a Partition row shows in the column's place for a function that takes none (PLAN §11.6) */
|
|
@@ -141,20 +237,45 @@ export declare const EXTEND_APPLY_DISABLED_REASON: Readonly<{
|
|
|
141
237
|
}>;
|
|
142
238
|
/** The warning on an Extend whose saved types the engine couldn't check again, e.g. offline (PLAN §11.7) */
|
|
143
239
|
export declare const getExtendRetypeWarning: (firstLine: string) => string;
|
|
240
|
+
/** The warning on a Filter by Expression whose condition the engine couldn't check again, e.g. offline (PLAN §11.11) */
|
|
241
|
+
export declare const getConditionRecheckWarning: (firstLine: string) => string;
|
|
144
242
|
/** The notice of a node editor kept open, since its changes can't be applied yet, e.g. an Extend's expressions not validated */
|
|
145
243
|
export declare const getEditorKeptOpenNotice: (nodeId: string, waiting: string) => string;
|
|
244
|
+
/** Why the Filter by Expression editor's Apply waits (PLAN §11.11) */
|
|
245
|
+
export declare const EXPRESSION_FILTER_APPLY_DISABLED_REASON: Readonly<{
|
|
246
|
+
NOT_VALIDATED: "Validate the condition first (F10)";
|
|
247
|
+
VALIDATING: "Validating the condition";
|
|
248
|
+
}>;
|
|
249
|
+
/**
|
|
250
|
+
* The hint after an engine error on `and`, `or` or `not` given something
|
|
251
|
+
* other than a Boolean, which Pure's precedence usually causes: comparisons
|
|
252
|
+
* bind no tighter than `&&`, `||` and `!` (PLAN §11.11)
|
|
253
|
+
*/
|
|
254
|
+
export declare const EXPRESSION_FILTER_PARENTHESES_HINT = "Put each comparison in parentheses: ($x.A > 1) && ($x.B > 3).";
|
|
255
|
+
/** What the Filter by Expression editor says about conditions (PLAN §11.11) */
|
|
256
|
+
export declare const EXPRESSION_FILTER_EDITOR_NOTES: readonly ["A condition of one row, written as in Query's text mode: x | $x.SHIPPED_DATE > $x.REQUIRED_DATE. The rows for which it is true are kept, in their order.", "Put each comparison in parentheses when you combine them: ($x.A > 1) && ($x.B > 3). In Pure, &&, || and ! bind as tightly as >, <, >= and <=; == binds tighter.", "An optional column, compared directly ($x.A > 6), fails the condition when it is empty and passes its negation. After ->toOne(), an empty value fails both.", "Validate (F10) checks the condition with the engine and plans it for the cube's database.", "startsWith, endsWith and contains can't take a value with a backslash (\\) yet, nor, on DuckDB, one with % or _.", "A JSON (Variant) column’s {} opens its fields, read from its first values just before this step: a field clicked is written into the condition."];
|
|
146
257
|
/** The hint after an engine error on a column that can be empty, in arithmetic (PLAN §11.7) */
|
|
147
|
-
export declare const EXTEND_TO_ONE_HINT = "
|
|
148
|
-
/** The problem a database refusing an Extend's plan gives (PLAN §11.7) */
|
|
258
|
+
export declare const EXTEND_TO_ONE_HINT = "An optional column needs ->toOne() first, such as $x.QTY->toOne() + 1.";
|
|
259
|
+
/** The problem a database refusing an Extend's or a Filter by Expression's plan gives (PLAN §11.7, §11.11) */
|
|
149
260
|
export declare const getExtendPlanProblem: (databaseType: string | undefined, detail: string) => string;
|
|
150
261
|
/** Under the Rename editor's rows: the rule for new column names (PLAN §11.4) */
|
|
151
262
|
export declare const COLUMN_NAME_RULES_HINT = "Names can't start or end with a space, or contain \" or \\ or control characters, and have at most 128 characters.";
|
|
152
263
|
/**
|
|
153
264
|
* A node type's label as the node editor's title shows it, each word
|
|
154
|
-
* capitalised (QUESTIONS.md U1(a)), e.g. 'Take
|
|
155
|
-
* keeps its own wording
|
|
265
|
+
* capitalised but `a`, `an` and `of` (QUESTIONS.md U1(a)), e.g. 'Take a Range
|
|
266
|
+
* of Rows'; the registry keeps its own wording
|
|
156
267
|
*/
|
|
157
268
|
export declare const toEditorTitle: (label: string) => string;
|
|
158
269
|
/** The source dialog's body until a tab is chosen, opened from the empty canvas (spec §17.8, U4(b)) */
|
|
159
270
|
export declare const SELECT_SOURCE_TYPE_PROMPT = "Select source type above";
|
|
271
|
+
/** Why the source dialog's Add is disabled: nothing picked yet, or not ready */
|
|
272
|
+
export declare const CUBE_PICK_TO_ADD_TITLE = "Pick what to add first";
|
|
273
|
+
/**
|
|
274
|
+
* The badge a node type shows beside its name: WIP for one that doesn't
|
|
275
|
+
* work yet (a service, PLAN §6.4), else BETA for one in beta, else none
|
|
276
|
+
*/
|
|
277
|
+
export declare const getCubeNodeBadge: (definition: {
|
|
278
|
+
readonly beta: boolean;
|
|
279
|
+
readonly wip?: boolean | undefined;
|
|
280
|
+
}) => "WIP" | "BETA" | undefined;
|
|
160
281
|
//# sourceMappingURL=LegendCubeLabels.d.ts.map
|