@finos/legend-cube-builder 0.0.2 → 0.0.4
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 +93 -1
- package/docs/adding-an-operation.md +181 -0
- package/docs/hosting.md +157 -0
- package/docs/testing.md +188 -0
- package/lib/__lib__/LegendCubeCommand.d.ts +2 -1
- package/lib/__lib__/LegendCubeCommand.d.ts.map +1 -1
- package/lib/__lib__/LegendCubeCommand.js +5 -0
- package/lib/__lib__/LegendCubeCommand.js.map +1 -1
- package/lib/__lib__/LegendCubeDataProductLabels.d.ts +45 -0
- package/lib/__lib__/LegendCubeDataProductLabels.d.ts.map +1 -0
- package/lib/__lib__/LegendCubeDataProductLabels.js +60 -0
- package/lib/__lib__/LegendCubeDataProductLabels.js.map +1 -0
- package/lib/__lib__/LegendCubeDirectConnectionLabels.d.ts +56 -0
- package/lib/__lib__/LegendCubeDirectConnectionLabels.d.ts.map +1 -0
- package/lib/__lib__/LegendCubeDirectConnectionLabels.js +76 -0
- package/lib/__lib__/LegendCubeDirectConnectionLabels.js.map +1 -0
- package/lib/__lib__/LegendCubeHelpText.d.ts.map +1 -1
- package/lib/__lib__/LegendCubeHelpText.js +21 -3
- package/lib/__lib__/LegendCubeHelpText.js.map +1 -1
- package/lib/__lib__/LegendCubeIngestLabels.d.ts +25 -0
- package/lib/__lib__/LegendCubeIngestLabels.d.ts.map +1 -0
- package/lib/__lib__/LegendCubeIngestLabels.js +29 -0
- package/lib/__lib__/LegendCubeIngestLabels.js.map +1 -0
- package/lib/__lib__/LegendCubeLabels.d.ts +95 -3
- package/lib/__lib__/LegendCubeLabels.d.ts.map +1 -1
- package/lib/__lib__/LegendCubeLabels.js +121 -4
- package/lib/__lib__/LegendCubeLabels.js.map +1 -1
- package/lib/__lib__/LegendCubeProjectLabels.d.ts +22 -0
- package/lib/__lib__/LegendCubeProjectLabels.d.ts.map +1 -0
- package/lib/__lib__/LegendCubeProjectLabels.js +23 -0
- package/lib/__lib__/LegendCubeProjectLabels.js.map +1 -0
- package/lib/__lib__/LegendCubeTesting.d.ts +1 -0
- package/lib/__lib__/LegendCubeTesting.d.ts.map +1 -1
- package/lib/__lib__/LegendCubeTesting.js +1 -0
- package/lib/__lib__/LegendCubeTesting.js.map +1 -1
- package/lib/__test-utils__/CubeCanvasTestUtils.d.ts.map +1 -1
- package/lib/__test-utils__/CubeCanvasTestUtils.js +1 -1
- package/lib/__test-utils__/CubeCanvasTestUtils.js.map +1 -1
- package/lib/__test-utils__/CubeConnectionTestSupport.d.ts +22 -0
- package/lib/__test-utils__/CubeConnectionTestSupport.d.ts.map +1 -0
- package/lib/__test-utils__/CubeConnectionTestSupport.js +30 -0
- package/lib/__test-utils__/CubeConnectionTestSupport.js.map +1 -0
- package/lib/__test-utils__/CubeDirectConnectionFixtures.d.ts +31 -0
- package/lib/__test-utils__/CubeDirectConnectionFixtures.d.ts.map +1 -0
- package/lib/__test-utils__/CubeDirectConnectionFixtures.js +63 -0
- package/lib/__test-utils__/CubeDirectConnectionFixtures.js.map +1 -0
- package/lib/__test-utils__/CubeEngineTestSupport.d.ts +18 -0
- package/lib/__test-utils__/CubeEngineTestSupport.d.ts.map +1 -1
- package/lib/__test-utils__/CubeEngineTestSupport.js +51 -0
- package/lib/__test-utils__/CubeEngineTestSupport.js.map +1 -1
- package/lib/__test-utils__/CubeExpressionTestUtils.d.ts +37 -0
- package/lib/__test-utils__/CubeExpressionTestUtils.d.ts.map +1 -0
- package/lib/__test-utils__/CubeExpressionTestUtils.js +83 -0
- package/lib/__test-utils__/CubeExpressionTestUtils.js.map +1 -0
- package/lib/__test-utils__/CubeOperationsTestUtils.d.ts +67 -0
- package/lib/__test-utils__/CubeOperationsTestUtils.d.ts.map +1 -0
- package/lib/__test-utils__/CubeOperationsTestUtils.js +138 -0
- package/lib/__test-utils__/CubeOperationsTestUtils.js.map +1 -0
- package/lib/__test-utils__/CubePageTestUtils.d.ts +12 -0
- package/lib/__test-utils__/CubePageTestUtils.d.ts.map +1 -1
- package/lib/__test-utils__/CubePageTestUtils.js +25 -1
- package/lib/__test-utils__/CubePageTestUtils.js.map +1 -1
- package/lib/__test-utils__/CubeTestApplication.d.ts +5 -1
- package/lib/__test-utils__/CubeTestApplication.d.ts.map +1 -1
- package/lib/__test-utils__/CubeTestApplication.js +9 -1
- package/lib/__test-utils__/CubeTestApplication.js.map +1 -1
- package/lib/__test-utils__/FakeCubeConnectionExplorer.d.ts +33 -0
- package/lib/__test-utils__/FakeCubeConnectionExplorer.d.ts.map +1 -0
- package/lib/__test-utils__/FakeCubeConnectionExplorer.js +67 -0
- package/lib/__test-utils__/FakeCubeConnectionExplorer.js.map +1 -0
- package/lib/__test-utils__/FakeCubeDataProductCatalog.d.ts +45 -0
- package/lib/__test-utils__/FakeCubeDataProductCatalog.d.ts.map +1 -0
- package/lib/__test-utils__/FakeCubeDataProductCatalog.js +137 -0
- package/lib/__test-utils__/FakeCubeDataProductCatalog.js.map +1 -0
- package/lib/__test-utils__/FakeCubeEngine.d.ts +2 -0
- package/lib/__test-utils__/FakeCubeEngine.d.ts.map +1 -1
- package/lib/__test-utils__/FakeCubeEngine.js +21 -2
- package/lib/__test-utils__/FakeCubeEngine.js.map +1 -1
- package/lib/__test-utils__/FakeCubeIngestCatalog.d.ts +35 -0
- package/lib/__test-utils__/FakeCubeIngestCatalog.d.ts.map +1 -0
- package/lib/__test-utils__/FakeCubeIngestCatalog.js +107 -0
- package/lib/__test-utils__/FakeCubeIngestCatalog.js.map +1 -0
- package/lib/__test-utils__/FakeCubeProjectCatalog.d.ts +30 -0
- package/lib/__test-utils__/FakeCubeProjectCatalog.d.ts.map +1 -0
- package/lib/__test-utils__/FakeCubeProjectCatalog.js +64 -0
- package/lib/__test-utils__/FakeCubeProjectCatalog.js.map +1 -0
- package/lib/components/CubeAddItems.d.ts +35 -0
- package/lib/components/CubeAddItems.d.ts.map +1 -0
- package/lib/components/CubeAddItems.js +82 -0
- package/lib/components/CubeAddItems.js.map +1 -0
- package/lib/components/CubeEditor.d.ts +5 -1
- package/lib/components/CubeEditor.d.ts.map +1 -1
- package/lib/components/CubeEditor.js +33 -13
- package/lib/components/CubeEditor.js.map +1 -1
- package/lib/components/CubeEntrySourceBanner.d.ts +23 -0
- package/lib/components/CubeEntrySourceBanner.d.ts.map +1 -0
- package/lib/components/CubeEntrySourceBanner.js +32 -0
- package/lib/components/CubeEntrySourceBanner.js.map +1 -0
- package/lib/components/CubeNodeIcon.d.ts.map +1 -1
- package/lib/components/CubeNodeIcon.js +19 -2
- package/lib/components/CubeNodeIcon.js.map +1 -1
- package/lib/components/CubeSchemaColumnsTable.d.ts +21 -0
- package/lib/components/CubeSchemaColumnsTable.d.ts.map +1 -0
- package/lib/components/CubeSchemaColumnsTable.js +6 -0
- package/lib/components/CubeSchemaColumnsTable.js.map +1 -0
- package/lib/components/canvas/CubeCanvas.d.ts +4 -3
- package/lib/components/canvas/CubeCanvas.d.ts.map +1 -1
- package/lib/components/canvas/CubeCanvas.js +33 -12
- package/lib/components/canvas/CubeCanvas.js.map +1 -1
- package/lib/components/canvas/CubeCanvasContextMenu.d.ts +8 -4
- package/lib/components/canvas/CubeCanvasContextMenu.d.ts.map +1 -1
- package/lib/components/canvas/CubeCanvasContextMenu.js +19 -9
- package/lib/components/canvas/CubeCanvasContextMenu.js.map +1 -1
- package/lib/components/canvas/CubeCanvasDnd.d.ts +7 -5
- package/lib/components/canvas/CubeCanvasDnd.d.ts.map +1 -1
- package/lib/components/canvas/CubeCanvasDnd.js +14 -9
- package/lib/components/canvas/CubeCanvasDnd.js.map +1 -1
- package/lib/components/canvas/CubeCanvasElements.d.ts +2 -0
- package/lib/components/canvas/CubeCanvasElements.d.ts.map +1 -1
- package/lib/components/canvas/CubeCanvasElements.js +8 -4
- package/lib/components/canvas/CubeCanvasElements.js.map +1 -1
- package/lib/components/canvas/CubeCanvasNode.d.ts.map +1 -1
- package/lib/components/canvas/CubeCanvasNode.js +30 -17
- package/lib/components/canvas/CubeCanvasNode.js.map +1 -1
- package/lib/components/canvas/CubeCanvasNodeFocus.d.ts +22 -0
- package/lib/components/canvas/CubeCanvasNodeFocus.d.ts.map +1 -0
- package/lib/components/canvas/CubeCanvasNodeFocus.js +31 -0
- package/lib/components/canvas/CubeCanvasNodeFocus.js.map +1 -0
- package/lib/components/canvas/CubeNodeEditorAnchor.d.ts +44 -0
- package/lib/components/canvas/CubeNodeEditorAnchor.d.ts.map +1 -0
- package/lib/components/canvas/CubeNodeEditorAnchor.js +51 -0
- package/lib/components/canvas/CubeNodeEditorAnchor.js.map +1 -0
- package/lib/components/editors/CubeAggregationRowEditor.d.ts +48 -0
- package/lib/components/editors/CubeAggregationRowEditor.d.ts.map +1 -0
- package/lib/components/editors/CubeAggregationRowEditor.js +72 -0
- package/lib/components/editors/CubeAggregationRowEditor.js.map +1 -0
- package/lib/components/editors/CubeColumnChecklist.d.ts +42 -0
- package/lib/components/editors/CubeColumnChecklist.d.ts.map +1 -0
- package/lib/components/editors/CubeColumnChecklist.js +41 -0
- package/lib/components/editors/CubeColumnChecklist.js.map +1 -0
- package/lib/components/editors/CubeColumnPicker.d.ts +9 -2
- package/lib/components/editors/CubeColumnPicker.d.ts.map +1 -1
- package/lib/components/editors/CubeColumnPicker.js +9 -4
- package/lib/components/editors/CubeColumnPicker.js.map +1 -1
- package/lib/components/editors/CubeConcatEditor.d.ts +33 -0
- package/lib/components/editors/CubeConcatEditor.d.ts.map +1 -0
- package/lib/components/editors/CubeConcatEditor.js +147 -0
- package/lib/components/editors/CubeConcatEditor.js.map +1 -0
- package/lib/components/editors/CubeDataProductSourceEditor.d.ts +25 -0
- package/lib/components/editors/CubeDataProductSourceEditor.d.ts.map +1 -0
- package/lib/components/editors/CubeDataProductSourceEditor.js +53 -0
- package/lib/components/editors/CubeDataProductSourceEditor.js.map +1 -0
- package/lib/components/editors/CubeDifferenceEditor.d.ts +25 -0
- package/lib/components/editors/CubeDifferenceEditor.d.ts.map +1 -0
- package/lib/components/editors/CubeDifferenceEditor.js +29 -0
- package/lib/components/editors/CubeDifferenceEditor.js.map +1 -0
- package/lib/components/editors/CubeDistinctEditor.d.ts +23 -0
- package/lib/components/editors/CubeDistinctEditor.d.ts.map +1 -0
- package/lib/components/editors/CubeDistinctEditor.js +24 -0
- package/lib/components/editors/CubeDistinctEditor.js.map +1 -0
- package/lib/components/editors/CubeExtendEditor.d.ts +25 -0
- package/lib/components/editors/CubeExtendEditor.d.ts.map +1 -0
- package/lib/components/editors/CubeExtendEditor.js +86 -0
- package/lib/components/editors/CubeExtendEditor.js.map +1 -0
- package/lib/components/editors/CubeFilterEditor.d.ts.map +1 -1
- package/lib/components/editors/CubeFilterEditor.js +3 -3
- package/lib/components/editors/CubeFilterEditor.js.map +1 -1
- package/lib/components/editors/CubeGroupEditor.d.ts +28 -0
- package/lib/components/editors/CubeGroupEditor.d.ts.map +1 -0
- package/lib/components/editors/CubeGroupEditor.js +70 -0
- package/lib/components/editors/CubeGroupEditor.js.map +1 -0
- package/lib/components/editors/CubeIngestSourceEditor.d.ts +26 -0
- package/lib/components/editors/CubeIngestSourceEditor.d.ts.map +1 -0
- package/lib/components/editors/CubeIngestSourceEditor.js +47 -0
- package/lib/components/editors/CubeIngestSourceEditor.js.map +1 -0
- package/lib/components/editors/CubeIntegerField.d.ts +29 -0
- package/lib/components/editors/CubeIntegerField.d.ts.map +1 -0
- package/lib/components/editors/CubeIntegerField.js +30 -0
- package/lib/components/editors/CubeIntegerField.js.map +1 -0
- package/lib/components/editors/CubeJoinEditor.d.ts +2 -4
- package/lib/components/editors/CubeJoinEditor.d.ts.map +1 -1
- package/lib/components/editors/CubeJoinEditor.js +15 -37
- package/lib/components/editors/CubeJoinEditor.js.map +1 -1
- package/lib/components/editors/CubeJoinKeyRows.d.ts +34 -0
- package/lib/components/editors/CubeJoinKeyRows.d.ts.map +1 -0
- package/lib/components/editors/CubeJoinKeyRows.js +65 -0
- package/lib/components/editors/CubeJoinKeyRows.js.map +1 -0
- package/lib/components/editors/CubeNodeEditorPanel.d.ts +7 -5
- package/lib/components/editors/CubeNodeEditorPanel.d.ts.map +1 -1
- package/lib/components/editors/CubeNodeEditorPanel.js +53 -14
- package/lib/components/editors/CubeNodeEditorPanel.js.map +1 -1
- package/lib/components/editors/CubeNodeEditorPopper.d.ts +40 -0
- package/lib/components/editors/CubeNodeEditorPopper.d.ts.map +1 -0
- package/lib/components/editors/CubeNodeEditorPopper.js +125 -0
- package/lib/components/editors/CubeNodeEditorPopper.js.map +1 -0
- package/lib/components/editors/CubeNodeEditorRegistry.d.ts.map +1 -1
- package/lib/components/editors/CubeNodeEditorRegistry.js +28 -1
- package/lib/components/editors/CubeNodeEditorRegistry.js.map +1 -1
- package/lib/components/editors/CubePartitionEditor.d.ts +30 -0
- package/lib/components/editors/CubePartitionEditor.d.ts.map +1 -0
- package/lib/components/editors/CubePartitionEditor.js +93 -0
- package/lib/components/editors/CubePartitionEditor.js.map +1 -0
- package/lib/components/editors/CubeRenameEditor.d.ts +26 -0
- package/lib/components/editors/CubeRenameEditor.d.ts.map +1 -0
- package/lib/components/editors/CubeRenameEditor.js +60 -0
- package/lib/components/editors/CubeRenameEditor.js.map +1 -0
- package/lib/components/editors/CubeRestrictEditor.d.ts +26 -0
- package/lib/components/editors/CubeRestrictEditor.d.ts.map +1 -0
- package/lib/components/editors/CubeRestrictEditor.js +23 -0
- package/lib/components/editors/CubeRestrictEditor.js.map +1 -0
- package/lib/components/editors/CubeRowCountEditor.d.ts +25 -0
- package/lib/components/editors/CubeRowCountEditor.d.ts.map +1 -0
- package/lib/components/editors/CubeRowCountEditor.js +38 -0
- package/lib/components/editors/CubeRowCountEditor.js.map +1 -0
- package/lib/components/editors/CubeSliceEditor.d.ts +25 -0
- package/lib/components/editors/CubeSliceEditor.d.ts.map +1 -0
- package/lib/components/editors/CubeSliceEditor.js +40 -0
- package/lib/components/editors/CubeSliceEditor.js.map +1 -0
- package/lib/components/editors/CubeSortEditor.d.ts +27 -0
- package/lib/components/editors/CubeSortEditor.d.ts.map +1 -0
- package/lib/components/editors/CubeSortEditor.js +45 -0
- package/lib/components/editors/CubeSortEditor.js.map +1 -0
- package/lib/components/editors/CubeSortRowEditor.d.ts +47 -0
- package/lib/components/editors/CubeSortRowEditor.d.ts.map +1 -0
- package/lib/components/editors/CubeSortRowEditor.js +62 -0
- package/lib/components/editors/CubeSortRowEditor.js.map +1 -0
- package/lib/components/editors/CubeSourceEditor.d.ts.map +1 -1
- package/lib/components/editors/CubeSourceEditor.js +18 -6
- package/lib/components/editors/CubeSourceEditor.js.map +1 -1
- package/lib/components/editors/CubeValueEditor.d.ts.map +1 -1
- package/lib/components/editors/CubeValueEditor.js +2 -1
- package/lib/components/editors/CubeValueEditor.js.map +1 -1
- package/lib/components/editors/CubeWarehouseControl.d.ts +30 -0
- package/lib/components/editors/CubeWarehouseControl.d.ts.map +1 -0
- package/lib/components/editors/CubeWarehouseControl.js +44 -0
- package/lib/components/editors/CubeWarehouseControl.js.map +1 -0
- package/lib/components/editors/useCubeNodeEditorDismiss.d.ts +31 -0
- package/lib/components/editors/useCubeNodeEditorDismiss.d.ts.map +1 -0
- package/lib/components/editors/useCubeNodeEditorDismiss.js +83 -0
- package/lib/components/editors/useCubeNodeEditorDismiss.js.map +1 -0
- package/lib/components/examples/CubeExamplesDialog.d.ts +26 -0
- package/lib/components/examples/CubeExamplesDialog.d.ts.map +1 -0
- package/lib/components/examples/CubeExamplesDialog.js +68 -0
- package/lib/components/examples/CubeExamplesDialog.js.map +1 -0
- package/lib/components/grid/CubeGridRegion.d.ts.map +1 -1
- package/lib/components/grid/CubeGridRegion.js +20 -9
- package/lib/components/grid/CubeGridRegion.js.map +1 -1
- package/lib/components/grid/CubeGridValues.d.ts +16 -0
- package/lib/components/grid/CubeGridValues.d.ts.map +1 -1
- package/lib/components/grid/CubeGridValues.js +44 -0
- package/lib/components/grid/CubeGridValues.js.map +1 -1
- package/lib/components/grid/CubeResultGrid.d.ts +14 -1
- package/lib/components/grid/CubeResultGrid.d.ts.map +1 -1
- package/lib/components/grid/CubeResultGrid.js +55 -7
- package/lib/components/grid/CubeResultGrid.js.map +1 -1
- package/lib/components/palette/CubePalette.d.ts.map +1 -1
- package/lib/components/palette/CubePalette.js +23 -12
- package/lib/components/palette/CubePalette.js.map +1 -1
- package/lib/components/source-picker/CubeDataProductTab.d.ts +27 -0
- package/lib/components/source-picker/CubeDataProductTab.d.ts.map +1 -0
- package/lib/components/source-picker/CubeDataProductTab.js +102 -0
- package/lib/components/source-picker/CubeDataProductTab.js.map +1 -0
- package/lib/components/source-picker/CubeDirectConnectionTab.d.ts +27 -0
- package/lib/components/source-picker/CubeDirectConnectionTab.d.ts.map +1 -0
- package/lib/components/source-picker/CubeDirectConnectionTab.js +87 -0
- package/lib/components/source-picker/CubeDirectConnectionTab.js.map +1 -0
- package/lib/components/source-picker/CubeIngestTab.d.ts +28 -0
- package/lib/components/source-picker/CubeIngestTab.d.ts.map +1 -0
- package/lib/components/source-picker/CubeIngestTab.js +66 -0
- package/lib/components/source-picker/CubeIngestTab.js.map +1 -0
- package/lib/components/source-picker/CubeInlineModelTab.d.ts +37 -0
- package/lib/components/source-picker/CubeInlineModelTab.d.ts.map +1 -0
- package/lib/components/source-picker/CubeInlineModelTab.js +71 -0
- package/lib/components/source-picker/CubeInlineModelTab.js.map +1 -0
- package/lib/components/source-picker/CubePickerStep.d.ts +27 -0
- package/lib/components/source-picker/CubePickerStep.d.ts.map +1 -0
- package/lib/components/source-picker/CubePickerStep.js +23 -0
- package/lib/components/source-picker/CubePickerStep.js.map +1 -0
- package/lib/components/source-picker/CubeProjectTab.d.ts +27 -0
- package/lib/components/source-picker/CubeProjectTab.d.ts.map +1 -0
- package/lib/components/source-picker/CubeProjectTab.js +50 -0
- package/lib/components/source-picker/CubeProjectTab.js.map +1 -0
- package/lib/components/source-picker/CubeSourcePicker.d.ts +6 -0
- package/lib/components/source-picker/CubeSourcePicker.d.ts.map +1 -1
- package/lib/components/source-picker/CubeSourcePicker.js +20 -58
- package/lib/components/source-picker/CubeSourcePicker.js.map +1 -1
- package/lib/components/spec-transfer/CubeSpecTransferDialog.js +1 -1
- package/lib/components/spec-transfer/CubeSpecTransferDialog.js.map +1 -1
- package/lib/graph-manager/CubeConnectionExplorer.d.ts +90 -0
- package/lib/graph-manager/CubeConnectionExplorer.d.ts.map +1 -0
- package/lib/graph-manager/CubeConnectionExplorer.js +34 -0
- package/lib/graph-manager/CubeConnectionExplorer.js.map +1 -0
- package/lib/graph-manager/CubeDataProduct.d.ts +66 -0
- package/lib/graph-manager/CubeDataProduct.d.ts.map +1 -0
- package/lib/graph-manager/CubeDataProduct.js +102 -0
- package/lib/graph-manager/CubeDataProduct.js.map +1 -0
- package/lib/graph-manager/CubeDataProductCatalog.d.ts +167 -0
- package/lib/graph-manager/CubeDataProductCatalog.d.ts.map +1 -0
- package/lib/graph-manager/CubeDataProductCatalog.js +116 -0
- package/lib/graph-manager/CubeDataProductCatalog.js.map +1 -0
- package/lib/graph-manager/CubeDirectConnection.d.ts +38 -0
- package/lib/graph-manager/CubeDirectConnection.d.ts.map +1 -0
- package/lib/graph-manager/CubeDirectConnection.js +48 -0
- package/lib/graph-manager/CubeDirectConnection.js.map +1 -0
- package/lib/graph-manager/CubeEngine.d.ts +50 -2
- package/lib/graph-manager/CubeEngine.d.ts.map +1 -1
- package/lib/graph-manager/CubeEngine.js +4 -1
- package/lib/graph-manager/CubeEngine.js.map +1 -1
- package/lib/graph-manager/CubeIngest.d.ts +50 -0
- package/lib/graph-manager/CubeIngest.d.ts.map +1 -0
- package/lib/graph-manager/CubeIngest.js +88 -0
- package/lib/graph-manager/CubeIngest.js.map +1 -0
- package/lib/graph-manager/CubeIngestCatalog.d.ts +116 -0
- package/lib/graph-manager/CubeIngestCatalog.d.ts.map +1 -0
- package/lib/graph-manager/CubeIngestCatalog.js +80 -0
- package/lib/graph-manager/CubeIngestCatalog.js.map +1 -0
- package/lib/graph-manager/CubeLakehouseEnvironment.d.ts +26 -0
- package/lib/graph-manager/CubeLakehouseEnvironment.d.ts.map +1 -0
- package/lib/graph-manager/CubeLakehouseEnvironment.js +17 -0
- package/lib/graph-manager/CubeLakehouseEnvironment.js.map +1 -0
- package/lib/graph-manager/CubeModelOutlineHelper.d.ts +8 -0
- package/lib/graph-manager/CubeModelOutlineHelper.d.ts.map +1 -1
- package/lib/graph-manager/CubeModelOutlineHelper.js +21 -0
- package/lib/graph-manager/CubeModelOutlineHelper.js.map +1 -1
- package/lib/graph-manager/CubeProject.d.ts +41 -0
- package/lib/graph-manager/CubeProject.d.ts.map +1 -0
- package/lib/graph-manager/CubeProject.js +84 -0
- package/lib/graph-manager/CubeProject.js.map +1 -0
- package/lib/graph-manager/CubeProjectCatalog.d.ts +35 -0
- package/lib/graph-manager/CubeProjectCatalog.d.ts.map +1 -0
- package/lib/graph-manager/CubeProjectCatalog.js +17 -0
- package/lib/graph-manager/CubeProjectCatalog.js.map +1 -0
- package/lib/graph-manager/protocol/pure/CubeEngineBuilder.d.ts +63 -1
- package/lib/graph-manager/protocol/pure/CubeEngineBuilder.d.ts.map +1 -1
- package/lib/graph-manager/protocol/pure/CubeEngineBuilder.js +50 -1
- package/lib/graph-manager/protocol/pure/CubeEngineBuilder.js.map +1 -1
- package/lib/graph-manager/protocol/pure/v1/V1_CubeDataProductArtifact.d.ts +44 -0
- package/lib/graph-manager/protocol/pure/v1/V1_CubeDataProductArtifact.d.ts.map +1 -0
- package/lib/graph-manager/protocol/pure/v1/V1_CubeDataProductArtifact.js +192 -0
- package/lib/graph-manager/protocol/pure/v1/V1_CubeDataProductArtifact.js.map +1 -0
- package/lib/graph-manager/protocol/pure/v1/V1_CubeDataProductModel.d.ts +29 -0
- package/lib/graph-manager/protocol/pure/v1/V1_CubeDataProductModel.d.ts.map +1 -0
- package/lib/graph-manager/protocol/pure/v1/V1_CubeDataProductModel.js +84 -0
- package/lib/graph-manager/protocol/pure/v1/V1_CubeDataProductModel.js.map +1 -0
- package/lib/graph-manager/protocol/pure/v1/V1_CubeDirectConnection.d.ts +41 -0
- package/lib/graph-manager/protocol/pure/v1/V1_CubeDirectConnection.d.ts.map +1 -0
- package/lib/graph-manager/protocol/pure/v1/V1_CubeDirectConnection.js +246 -0
- package/lib/graph-manager/protocol/pure/v1/V1_CubeDirectConnection.js.map +1 -0
- package/lib/graph-manager/protocol/pure/v1/V1_CubeDirectModel.d.ts +43 -0
- package/lib/graph-manager/protocol/pure/v1/V1_CubeDirectModel.d.ts.map +1 -0
- package/lib/graph-manager/protocol/pure/v1/V1_CubeDirectModel.js +112 -0
- package/lib/graph-manager/protocol/pure/v1/V1_CubeDirectModel.js.map +1 -0
- package/lib/graph-manager/protocol/pure/v1/V1_CubeEngineErrors.d.ts.map +1 -1
- package/lib/graph-manager/protocol/pure/v1/V1_CubeEngineErrors.js +30 -4
- package/lib/graph-manager/protocol/pure/v1/V1_CubeEngineErrors.js.map +1 -1
- package/lib/graph-manager/protocol/pure/v1/V1_CubeExpression.d.ts +23 -0
- package/lib/graph-manager/protocol/pure/v1/V1_CubeExpression.d.ts.map +1 -0
- package/lib/graph-manager/protocol/pure/v1/V1_CubeExpression.js +68 -0
- package/lib/graph-manager/protocol/pure/v1/V1_CubeExpression.js.map +1 -0
- package/lib/graph-manager/protocol/pure/v1/V1_CubeIngestDefinition.d.ts +30 -0
- package/lib/graph-manager/protocol/pure/v1/V1_CubeIngestDefinition.d.ts.map +1 -0
- package/lib/graph-manager/protocol/pure/v1/V1_CubeIngestDefinition.js +140 -0
- package/lib/graph-manager/protocol/pure/v1/V1_CubeIngestDefinition.js.map +1 -0
- package/lib/graph-manager/protocol/pure/v1/V1_CubeIngestModel.d.ts +62 -0
- package/lib/graph-manager/protocol/pure/v1/V1_CubeIngestModel.d.ts.map +1 -0
- package/lib/graph-manager/protocol/pure/v1/V1_CubeIngestModel.js +119 -0
- package/lib/graph-manager/protocol/pure/v1/V1_CubeIngestModel.js.map +1 -0
- package/lib/graph-manager/protocol/pure/v1/V1_CubeLakehouseEnvironmentResolver.d.ts +33 -0
- package/lib/graph-manager/protocol/pure/v1/V1_CubeLakehouseEnvironmentResolver.d.ts.map +1 -0
- package/lib/graph-manager/protocol/pure/v1/V1_CubeLakehouseEnvironmentResolver.js +94 -0
- package/lib/graph-manager/protocol/pure/v1/V1_CubeLakehouseEnvironmentResolver.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 +63 -4
- package/lib/graph-manager/protocol/pure/v1/V1_CubeLambdaSerializer.js.map +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 +56 -3
- package/lib/graph-manager/protocol/pure/v1/V1_CubeModelOutlineBuilder.js.map +1 -1
- package/lib/graph-manager/protocol/pure/v1/V1_CubeSchemaExploration.d.ts +67 -0
- package/lib/graph-manager/protocol/pure/v1/V1_CubeSchemaExploration.d.ts.map +1 -0
- package/lib/graph-manager/protocol/pure/v1/V1_CubeSchemaExploration.js +238 -0
- package/lib/graph-manager/protocol/pure/v1/V1_CubeSchemaExploration.js.map +1 -0
- package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeConnectionExplorer.d.ts +34 -0
- package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeConnectionExplorer.d.ts.map +1 -0
- package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeConnectionExplorer.js +64 -0
- package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeConnectionExplorer.js.map +1 -0
- package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeDataProductCatalog.d.ts +104 -0
- package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeDataProductCatalog.d.ts.map +1 -0
- package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeDataProductCatalog.js +484 -0
- package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeDataProductCatalog.js.map +1 -0
- package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeEngine.d.ts +97 -3
- package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeEngine.d.ts.map +1 -1
- package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeEngine.js +585 -20
- package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeEngine.js.map +1 -1
- package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeIngestCatalog.d.ts +69 -0
- package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeIngestCatalog.d.ts.map +1 -0
- package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeIngestCatalog.js +270 -0
- package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeIngestCatalog.js.map +1 -0
- package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeProjectCatalog.d.ts +35 -0
- package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeProjectCatalog.d.ts.map +1 -0
- package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeProjectCatalog.js +91 -0
- package/lib/graph-manager/protocol/pure/v1/V1_LegendCubeProjectCatalog.js.map +1 -0
- package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeConnectionExplorerTestUtils.d.ts +25 -0
- package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeConnectionExplorerTestUtils.d.ts.map +1 -0
- package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeConnectionExplorerTestUtils.js +47 -0
- package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeConnectionExplorerTestUtils.js.map +1 -0
- package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeDataProductFixtures.d.ts +28 -0
- package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeDataProductFixtures.d.ts.map +1 -0
- package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeDataProductFixtures.js +310 -0
- package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeDataProductFixtures.js.map +1 -0
- package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeDataProductSearchFixtures.d.ts +33 -0
- package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeDataProductSearchFixtures.d.ts.map +1 -0
- package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeDataProductSearchFixtures.js +188 -0
- package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeDataProductSearchFixtures.js.map +1 -0
- package/lib/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeEngineTestUtils.d.ts +1 -1
- 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 +30 -4
- 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 +11 -1
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +10 -1
- package/lib/index.js.map +1 -1
- package/lib/stores/CubeAddPlacement.d.ts +32 -0
- package/lib/stores/CubeAddPlacement.d.ts.map +1 -0
- package/lib/stores/CubeAddPlacement.js +40 -0
- package/lib/stores/CubeAddPlacement.js.map +1 -0
- package/lib/stores/CubeDataProductRecheck.d.ts +27 -0
- package/lib/stores/CubeDataProductRecheck.d.ts.map +1 -0
- package/lib/stores/CubeDataProductRecheck.js +54 -0
- package/lib/stores/CubeDataProductRecheck.js.map +1 -0
- package/lib/stores/CubeDataProductRuntimeState.d.ts +88 -0
- package/lib/stores/CubeDataProductRuntimeState.d.ts.map +1 -0
- package/lib/stores/CubeDataProductRuntimeState.js +190 -0
- package/lib/stores/CubeDataProductRuntimeState.js.map +1 -0
- package/lib/stores/CubeDataProductWarehouse.d.ts +19 -0
- package/lib/stores/CubeDataProductWarehouse.d.ts.map +1 -0
- package/lib/stores/CubeDataProductWarehouse.js +25 -0
- package/lib/stores/CubeDataProductWarehouse.js.map +1 -0
- package/lib/stores/CubeEditorState.d.ts +133 -19
- package/lib/stores/CubeEditorState.d.ts.map +1 -1
- package/lib/stores/CubeEditorState.js +433 -52
- package/lib/stores/CubeEditorState.js.map +1 -1
- package/lib/stores/CubeEntrySource.d.ts +78 -0
- package/lib/stores/CubeEntrySource.d.ts.map +1 -0
- package/lib/stores/CubeEntrySource.js +200 -0
- package/lib/stores/CubeEntrySource.js.map +1 -0
- package/lib/stores/CubeExamples.d.ts +43 -0
- package/lib/stores/CubeExamples.d.ts.map +1 -0
- package/lib/stores/CubeExamples.js +296 -0
- package/lib/stores/CubeExamples.js.map +1 -0
- package/lib/stores/CubeExamplesState.d.ts +45 -0
- package/lib/stores/CubeExamplesState.d.ts.map +1 -0
- package/lib/stores/CubeExamplesState.js +81 -0
- package/lib/stores/CubeExamplesState.js.map +1 -0
- package/lib/stores/CubeExecutionState.d.ts +6 -2
- package/lib/stores/CubeExecutionState.d.ts.map +1 -1
- package/lib/stores/CubeExecutionState.js +34 -8
- package/lib/stores/CubeExecutionState.js.map +1 -1
- package/lib/stores/CubeExtendTyping.d.ts +72 -0
- package/lib/stores/CubeExtendTyping.d.ts.map +1 -0
- package/lib/stores/CubeExtendTyping.js +176 -0
- package/lib/stores/CubeExtendTyping.js.map +1 -0
- package/lib/stores/CubeGridQuickActions.d.ts +48 -0
- package/lib/stores/CubeGridQuickActions.d.ts.map +1 -0
- package/lib/stores/CubeGridQuickActions.js +124 -0
- package/lib/stores/CubeGridQuickActions.js.map +1 -0
- package/lib/stores/CubeHost.d.ts +32 -1
- package/lib/stores/CubeHost.d.ts.map +1 -1
- package/lib/stores/CubeHost.js +21 -1
- package/lib/stores/CubeHost.js.map +1 -1
- package/lib/stores/CubeIngestRecheck.d.ts +26 -0
- package/lib/stores/CubeIngestRecheck.d.ts.map +1 -0
- package/lib/stores/CubeIngestRecheck.js +53 -0
- package/lib/stores/CubeIngestRecheck.js.map +1 -0
- package/lib/stores/CubeNodeEditorState.d.ts +120 -6
- package/lib/stores/CubeNodeEditorState.d.ts.map +1 -1
- package/lib/stores/CubeNodeEditorState.js +275 -9
- package/lib/stores/CubeNodeEditorState.js.map +1 -1
- package/lib/stores/CubeShowPureState.d.ts +9 -3
- package/lib/stores/CubeShowPureState.d.ts.map +1 -1
- package/lib/stores/CubeShowPureState.js +28 -8
- package/lib/stores/CubeShowPureState.js.map +1 -1
- package/lib/stores/CubeSourcePickerState.d.ts +54 -65
- package/lib/stores/CubeSourcePickerState.d.ts.map +1 -1
- package/lib/stores/CubeSourcePickerState.js +155 -276
- package/lib/stores/CubeSourcePickerState.js.map +1 -1
- package/lib/stores/CubeSpecTransferState.d.ts +2 -2
- package/lib/stores/CubeSpecTransferState.js +2 -2
- package/lib/stores/LocalModelCatalog.d.ts +2 -0
- package/lib/stores/LocalModelCatalog.d.ts.map +1 -1
- package/lib/stores/LocalModelCatalog.js +17 -3
- package/lib/stores/LocalModelCatalog.js.map +1 -1
- package/lib/stores/editors/CubeAggregationRows.d.ts +80 -0
- package/lib/stores/editors/CubeAggregationRows.d.ts.map +1 -0
- package/lib/stores/editors/CubeAggregationRows.js +164 -0
- package/lib/stores/editors/CubeAggregationRows.js.map +1 -0
- package/lib/stores/editors/CubeConcatDraft.d.ts +30 -0
- package/lib/stores/editors/CubeConcatDraft.d.ts.map +1 -0
- package/lib/stores/editors/CubeConcatDraft.js +44 -0
- package/lib/stores/editors/CubeConcatDraft.js.map +1 -0
- package/lib/stores/editors/CubeDifferenceDraft.d.ts +49 -0
- package/lib/stores/editors/CubeDifferenceDraft.d.ts.map +1 -0
- package/lib/stores/editors/CubeDifferenceDraft.js +111 -0
- package/lib/stores/editors/CubeDifferenceDraft.js.map +1 -0
- package/lib/stores/editors/CubeExtendDraft.d.ts +110 -0
- package/lib/stores/editors/CubeExtendDraft.d.ts.map +1 -0
- package/lib/stores/editors/CubeExtendDraft.js +359 -0
- package/lib/stores/editors/CubeExtendDraft.js.map +1 -0
- package/lib/stores/editors/CubeGroupDraft.d.ts +61 -0
- package/lib/stores/editors/CubeGroupDraft.d.ts.map +1 -0
- package/lib/stores/editors/CubeGroupDraft.js +106 -0
- package/lib/stores/editors/CubeGroupDraft.js.map +1 -0
- package/lib/stores/editors/CubeIntegerText.d.ts +24 -0
- package/lib/stores/editors/CubeIntegerText.d.ts.map +1 -0
- package/lib/stores/editors/CubeIntegerText.js +33 -0
- package/lib/stores/editors/CubeIntegerText.js.map +1 -0
- package/lib/stores/editors/CubeJoinDraft.d.ts +20 -13
- package/lib/stores/editors/CubeJoinDraft.d.ts.map +1 -1
- package/lib/stores/editors/CubeJoinDraft.js +109 -29
- package/lib/stores/editors/CubeJoinDraft.js.map +1 -1
- package/lib/stores/editors/CubeJoinKeyPairs.d.ts +38 -0
- package/lib/stores/editors/CubeJoinKeyPairs.d.ts.map +1 -0
- package/lib/stores/editors/CubeJoinKeyPairs.js +33 -0
- package/lib/stores/editors/CubeJoinKeyPairs.js.map +1 -0
- package/lib/stores/editors/CubeNodeDraft.d.ts +20 -6
- package/lib/stores/editors/CubeNodeDraft.d.ts.map +1 -1
- package/lib/stores/editors/CubeNodeDraft.js +23 -5
- package/lib/stores/editors/CubeNodeDraft.js.map +1 -1
- package/lib/stores/editors/CubeNodeDraftRegistry.d.ts +6 -0
- package/lib/stores/editors/CubeNodeDraftRegistry.d.ts.map +1 -1
- package/lib/stores/editors/CubeNodeDraftRegistry.js +42 -1
- package/lib/stores/editors/CubeNodeDraftRegistry.js.map +1 -1
- package/lib/stores/editors/CubePartitionDraft.d.ts +70 -0
- package/lib/stores/editors/CubePartitionDraft.d.ts.map +1 -0
- package/lib/stores/editors/CubePartitionDraft.js +154 -0
- package/lib/stores/editors/CubePartitionDraft.js.map +1 -0
- package/lib/stores/editors/CubeRenameDraft.d.ts +44 -0
- package/lib/stores/editors/CubeRenameDraft.d.ts.map +1 -0
- package/lib/stores/editors/CubeRenameDraft.js +79 -0
- package/lib/stores/editors/CubeRenameDraft.js.map +1 -0
- package/lib/stores/editors/CubeRestrictDraft.d.ts +37 -0
- package/lib/stores/editors/CubeRestrictDraft.d.ts.map +1 -0
- package/lib/stores/editors/CubeRestrictDraft.js +73 -0
- package/lib/stores/editors/CubeRestrictDraft.js.map +1 -0
- package/lib/stores/editors/CubeRowCountDraft.d.ts +42 -0
- package/lib/stores/editors/CubeRowCountDraft.d.ts.map +1 -0
- package/lib/stores/editors/CubeRowCountDraft.js +55 -0
- package/lib/stores/editors/CubeRowCountDraft.js.map +1 -0
- package/lib/stores/editors/CubeSliceDraft.d.ts +42 -0
- package/lib/stores/editors/CubeSliceDraft.d.ts.map +1 -0
- package/lib/stores/editors/CubeSliceDraft.js +72 -0
- package/lib/stores/editors/CubeSliceDraft.js.map +1 -0
- package/lib/stores/editors/CubeSortDraft.d.ts +41 -0
- package/lib/stores/editors/CubeSortDraft.d.ts.map +1 -0
- package/lib/stores/editors/CubeSortDraft.js +73 -0
- package/lib/stores/editors/CubeSortDraft.js.map +1 -0
- package/lib/stores/editors/CubeSortRows.d.ts +34 -0
- package/lib/stores/editors/CubeSortRows.d.ts.map +1 -0
- package/lib/stores/editors/CubeSortRows.js +50 -0
- package/lib/stores/editors/CubeSortRows.js.map +1 -0
- package/lib/stores/fixtures/CubeNorthwindModel.d.ts +7 -0
- package/lib/stores/fixtures/CubeNorthwindModel.d.ts.map +1 -1
- package/lib/stores/fixtures/CubeNorthwindModel.js +99 -87
- package/lib/stores/fixtures/CubeNorthwindModel.js.map +1 -1
- package/lib/stores/fixtures/CubeSampleSql.d.ts +34 -0
- package/lib/stores/fixtures/CubeSampleSql.d.ts.map +1 -0
- package/lib/stores/fixtures/CubeSampleSql.js +64 -0
- package/lib/stores/fixtures/CubeSampleSql.js.map +1 -0
- package/lib/stores/fixtures/CubeSportsModel.d.ts +27 -0
- package/lib/stores/fixtures/CubeSportsModel.d.ts.map +1 -0
- package/lib/stores/fixtures/CubeSportsModel.js +158 -0
- package/lib/stores/fixtures/CubeSportsModel.js.map +1 -0
- package/lib/stores/fixtures/CubeTradesModel.d.ts +29 -0
- package/lib/stores/fixtures/CubeTradesModel.d.ts.map +1 -0
- package/lib/stores/fixtures/CubeTradesModel.js +197 -0
- package/lib/stores/fixtures/CubeTradesModel.js.map +1 -0
- package/lib/stores/source-picker/CubeCsvSetupSql.d.ts +71 -0
- package/lib/stores/source-picker/CubeCsvSetupSql.d.ts.map +1 -0
- package/lib/stores/source-picker/CubeCsvSetupSql.js +392 -0
- package/lib/stores/source-picker/CubeCsvSetupSql.js.map +1 -0
- package/lib/stores/source-picker/CubeDataProductTabState.d.ts +186 -0
- package/lib/stores/source-picker/CubeDataProductTabState.d.ts.map +1 -0
- package/lib/stores/source-picker/CubeDataProductTabState.js +681 -0
- package/lib/stores/source-picker/CubeDataProductTabState.js.map +1 -0
- package/lib/stores/source-picker/CubeDirectConnectionTabState.d.ts +140 -0
- package/lib/stores/source-picker/CubeDirectConnectionTabState.d.ts.map +1 -0
- package/lib/stores/source-picker/CubeDirectConnectionTabState.js +516 -0
- package/lib/stores/source-picker/CubeDirectConnectionTabState.js.map +1 -0
- package/lib/stores/source-picker/CubeIngestTabState.d.ts +114 -0
- package/lib/stores/source-picker/CubeIngestTabState.d.ts.map +1 -0
- package/lib/stores/source-picker/CubeIngestTabState.js +455 -0
- package/lib/stores/source-picker/CubeIngestTabState.js.map +1 -0
- package/lib/stores/source-picker/CubeInlineModelTabState.d.ts +107 -0
- package/lib/stores/source-picker/CubeInlineModelTabState.d.ts.map +1 -0
- package/lib/stores/source-picker/CubeInlineModelTabState.js +347 -0
- package/lib/stores/source-picker/CubeInlineModelTabState.js.map +1 -0
- package/lib/stores/source-picker/CubeProjectTabState.d.ts +62 -0
- package/lib/stores/source-picker/CubeProjectTabState.d.ts.map +1 -0
- package/lib/stores/source-picker/CubeProjectTabState.js +181 -0
- package/lib/stores/source-picker/CubeProjectTabState.js.map +1 -0
- package/lib/stores/source-picker/CubeSourcePickerTab.d.ts +48 -0
- package/lib/stores/source-picker/CubeSourcePickerTab.d.ts.map +1 -0
- package/lib/stores/source-picker/CubeSourcePickerTab.js +24 -0
- package/lib/stores/source-picker/CubeSourcePickerTab.js.map +1 -0
- package/package.json +12 -8
- package/src/__lib__/LegendCubeCommand.ts +5 -0
- package/src/__lib__/LegendCubeDataProductLabels.ts +91 -0
- package/src/__lib__/LegendCubeDirectConnectionLabels.ts +111 -0
- package/src/__lib__/LegendCubeHelpText.ts +46 -2
- package/src/__lib__/LegendCubeIngestLabels.ts +40 -0
- package/src/__lib__/LegendCubeLabels.ts +192 -4
- package/src/__lib__/LegendCubeProjectLabels.ts +25 -0
- package/src/__lib__/LegendCubeTesting.ts +1 -0
- package/src/__test-utils__/CubeCanvasTestUtils.ts +1 -1
- package/src/__test-utils__/CubeConnectionTestSupport.ts +45 -0
- package/src/__test-utils__/CubeDirectConnectionFixtures.ts +70 -0
- package/src/__test-utils__/CubeEngineTestSupport.ts +73 -0
- package/src/__test-utils__/CubeExpressionTestUtils.ts +119 -0
- package/src/__test-utils__/CubeOperationsTestUtils.ts +252 -0
- package/src/__test-utils__/CubePageTestUtils.tsx +35 -0
- package/src/__test-utils__/CubeTestApplication.ts +21 -2
- package/src/__test-utils__/FakeCubeConnectionExplorer.ts +111 -0
- package/src/__test-utils__/FakeCubeDataProductCatalog.ts +227 -0
- package/src/__test-utils__/FakeCubeEngine.ts +32 -2
- package/src/__test-utils__/FakeCubeIngestCatalog.ts +180 -0
- package/src/__test-utils__/FakeCubeProjectCatalog.ts +89 -0
- package/src/components/CubeAddItems.tsx +179 -0
- package/src/components/CubeEditor.tsx +73 -44
- package/src/components/CubeEntrySourceBanner.tsx +64 -0
- package/src/components/CubeNodeIcon.tsx +31 -1
- package/src/components/CubeSchemaColumnsTable.tsx +49 -0
- package/src/components/canvas/CubeCanvas.tsx +51 -14
- package/src/components/canvas/CubeCanvasContextMenu.tsx +31 -30
- package/src/components/canvas/CubeCanvasDnd.ts +16 -9
- package/src/components/canvas/CubeCanvasElements.ts +12 -3
- package/src/components/canvas/CubeCanvasNode.tsx +62 -36
- package/src/components/canvas/CubeCanvasNodeFocus.ts +37 -0
- package/src/components/canvas/CubeNodeEditorAnchor.ts +82 -0
- package/src/components/editors/CubeAggregationRowEditor.tsx +224 -0
- package/src/components/editors/CubeColumnChecklist.tsx +130 -0
- package/src/components/editors/CubeColumnPicker.tsx +36 -12
- package/src/components/editors/CubeConcatEditor.tsx +374 -0
- package/src/components/editors/CubeDataProductSourceEditor.tsx +134 -0
- package/src/components/editors/CubeDifferenceEditor.tsx +87 -0
- package/src/components/editors/CubeDistinctEditor.tsx +28 -0
- package/src/components/editors/CubeExtendEditor.tsx +271 -0
- package/src/components/editors/CubeFilterEditor.tsx +7 -0
- package/src/components/editors/CubeGroupEditor.tsx +135 -0
- package/src/components/editors/CubeIngestSourceEditor.tsx +104 -0
- package/src/components/editors/CubeIntegerField.tsx +51 -0
- package/src/components/editors/CubeJoinEditor.tsx +34 -131
- package/src/components/editors/CubeJoinKeyRows.tsx +183 -0
- package/src/components/editors/CubeNodeEditorPanel.tsx +103 -29
- package/src/components/editors/CubeNodeEditorPopper.tsx +183 -0
- package/src/components/editors/CubeNodeEditorRegistry.ts +41 -0
- package/src/components/editors/CubePartitionEditor.tsx +208 -0
- package/src/components/editors/CubeRenameEditor.tsx +148 -0
- package/src/components/editors/CubeRestrictEditor.tsx +103 -0
- package/src/components/editors/CubeRowCountEditor.tsx +53 -0
- package/src/components/editors/CubeSliceEditor.tsx +69 -0
- package/src/components/editors/CubeSortEditor.tsx +84 -0
- package/src/components/editors/CubeSortRowEditor.tsx +176 -0
- package/src/components/editors/CubeSourceEditor.tsx +42 -40
- package/src/components/editors/CubeValueEditor.tsx +2 -1
- package/src/components/editors/CubeWarehouseControl.tsx +113 -0
- package/src/components/editors/useCubeNodeEditorDismiss.ts +103 -0
- package/src/components/examples/CubeExamplesDialog.tsx +199 -0
- package/src/components/grid/CubeGridRegion.tsx +49 -10
- package/src/components/grid/CubeGridValues.ts +55 -0
- package/src/components/grid/CubeResultGrid.tsx +83 -13
- package/src/components/palette/CubePalette.tsx +33 -15
- package/src/components/source-picker/CubeDataProductTab.tsx +392 -0
- package/src/components/source-picker/CubeDirectConnectionTab.tsx +340 -0
- package/src/components/source-picker/CubeIngestTab.tsx +232 -0
- package/src/components/source-picker/CubeInlineModelTab.tsx +191 -0
- package/src/components/source-picker/CubePickerStep.tsx +49 -0
- package/src/components/source-picker/CubeProjectTab.tsx +114 -0
- package/src/components/source-picker/CubeSourcePicker.tsx +62 -227
- package/src/components/spec-transfer/CubeSpecTransferDialog.tsx +1 -1
- package/src/graph-manager/CubeConnectionExplorer.ts +106 -0
- package/src/graph-manager/CubeDataProduct.ts +150 -0
- package/src/graph-manager/CubeDataProductCatalog.ts +245 -0
- package/src/graph-manager/CubeDirectConnection.ts +67 -0
- package/src/graph-manager/CubeEngine.ts +57 -1
- package/src/graph-manager/CubeIngest.ts +144 -0
- package/src/graph-manager/CubeIngestCatalog.ts +169 -0
- package/src/graph-manager/CubeLakehouseEnvironment.ts +27 -0
- package/src/graph-manager/CubeModelOutlineHelper.ts +26 -0
- package/src/graph-manager/CubeProject.ts +117 -0
- package/src/graph-manager/CubeProjectCatalog.ts +40 -0
- package/src/graph-manager/protocol/pure/CubeEngineBuilder.ts +145 -1
- package/src/graph-manager/protocol/pure/v1/V1_CubeDataProductArtifact.ts +251 -0
- package/src/graph-manager/protocol/pure/v1/V1_CubeDataProductModel.ts +101 -0
- package/src/graph-manager/protocol/pure/v1/V1_CubeDirectConnection.ts +339 -0
- package/src/graph-manager/protocol/pure/v1/V1_CubeDirectModel.ts +151 -0
- package/src/graph-manager/protocol/pure/v1/V1_CubeEngineErrors.ts +45 -4
- package/src/graph-manager/protocol/pure/v1/V1_CubeExpression.ts +89 -0
- package/src/graph-manager/protocol/pure/v1/V1_CubeIngestDefinition.ts +201 -0
- package/src/graph-manager/protocol/pure/v1/V1_CubeIngestModel.ts +183 -0
- package/src/graph-manager/protocol/pure/v1/V1_CubeLakehouseEnvironmentResolver.ts +141 -0
- package/src/graph-manager/protocol/pure/v1/V1_CubeLambdaSerializer.ts +84 -4
- package/src/graph-manager/protocol/pure/v1/V1_CubeModelOutlineBuilder.ts +89 -3
- package/src/graph-manager/protocol/pure/v1/V1_CubeSchemaExploration.ts +361 -0
- package/src/graph-manager/protocol/pure/v1/V1_LegendCubeConnectionExplorer.ts +116 -0
- package/src/graph-manager/protocol/pure/v1/V1_LegendCubeDataProductCatalog.ts +744 -0
- package/src/graph-manager/protocol/pure/v1/V1_LegendCubeEngine.ts +967 -24
- package/src/graph-manager/protocol/pure/v1/V1_LegendCubeIngestCatalog.ts +459 -0
- package/src/graph-manager/protocol/pure/v1/V1_LegendCubeProjectCatalog.ts +147 -0
- package/src/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeConnectionExplorerTestUtils.ts +61 -0
- package/src/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeDataProductFixtures.ts +337 -0
- package/src/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeDataProductSearchFixtures.ts +206 -0
- package/src/graph-manager/protocol/pure/v1/__test-utils__/V1_CubeEngineTestUtils.ts +48 -4
- package/src/index.ts +20 -0
- package/src/stores/CubeAddPlacement.ts +67 -0
- package/src/stores/CubeDataProductRecheck.ts +93 -0
- package/src/stores/CubeDataProductRuntimeState.ts +256 -0
- package/src/stores/CubeDataProductWarehouse.ts +40 -0
- package/src/stores/CubeEditorState.ts +621 -68
- package/src/stores/CubeEntrySource.ts +278 -0
- package/src/stores/CubeExamples.ts +457 -0
- package/src/stores/CubeExamplesState.ts +108 -0
- package/src/stores/CubeExecutionState.ts +60 -8
- package/src/stores/CubeExtendTyping.ts +291 -0
- package/src/stores/CubeGridQuickActions.ts +184 -0
- package/src/stores/CubeHost.ts +71 -1
- package/src/stores/CubeIngestRecheck.ts +92 -0
- package/src/stores/CubeNodeEditorState.ts +348 -10
- package/src/stores/CubeShowPureState.ts +33 -8
- package/src/stores/CubeSourcePickerState.ts +160 -330
- package/src/stores/CubeSpecTransferState.ts +2 -2
- package/src/stores/LocalModelCatalog.ts +22 -3
- package/src/stores/editors/CubeAggregationRows.ts +299 -0
- package/src/stores/editors/CubeConcatDraft.ts +49 -0
- package/src/stores/editors/CubeDifferenceDraft.ts +147 -0
- package/src/stores/editors/CubeExtendDraft.ts +532 -0
- package/src/stores/editors/CubeGroupDraft.ts +145 -0
- package/src/stores/editors/CubeIntegerText.ts +34 -0
- package/src/stores/editors/CubeJoinDraft.ts +170 -54
- package/src/stores/editors/CubeJoinKeyPairs.ts +68 -0
- package/src/stores/editors/CubeNodeDraft.ts +26 -6
- package/src/stores/editors/CubeNodeDraftRegistry.ts +60 -1
- package/src/stores/editors/CubePartitionDraft.ts +214 -0
- package/src/stores/editors/CubeRenameDraft.ts +110 -0
- package/src/stores/editors/CubeRestrictDraft.ts +83 -0
- package/src/stores/editors/CubeRowCountDraft.ts +69 -0
- package/src/stores/editors/CubeSliceDraft.ts +87 -0
- package/src/stores/editors/CubeSortDraft.ts +98 -0
- package/src/stores/editors/CubeSortRows.ts +84 -0
- package/src/stores/fixtures/CubeNorthwindModel.ts +103 -88
- package/src/stores/fixtures/CubeSampleSql.ts +85 -0
- package/src/stores/fixtures/CubeSportsModel.ts +182 -0
- package/src/stores/fixtures/CubeTradesModel.ts +241 -0
- package/src/stores/source-picker/CubeCsvSetupSql.ts +444 -0
- package/src/stores/source-picker/CubeDataProductTabState.ts +839 -0
- package/src/stores/source-picker/CubeDirectConnectionTabState.ts +647 -0
- package/src/stores/source-picker/CubeIngestTabState.ts +551 -0
- package/src/stores/source-picker/CubeInlineModelTabState.ts +448 -0
- package/src/stores/source-picker/CubeProjectTabState.ts +218 -0
- package/src/stores/source-picker/CubeSourcePickerTab.ts +50 -0
- package/tsconfig.json +104 -0
|
@@ -0,0 +1,80 @@
|
|
|
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 { AggregationSetting, type AggregationUse, type ColumnAggregation, type Schema } from '@finos/legend-cube';
|
|
17
|
+
/** A row's settings as typed, by key: Lag's and Lead's offset, NTile's bucket count */
|
|
18
|
+
export type CubeAggregationSettingTexts = Readonly<Partial<Record<AggregationSetting, string>>>;
|
|
19
|
+
/**
|
|
20
|
+
* One aggregation row: a column (`undefined` for a function that takes none,
|
|
21
|
+
* `''` until picked), a function (`''` until picked; an unknown one is kept
|
|
22
|
+
* as saved) and an output name
|
|
23
|
+
*/
|
|
24
|
+
export interface CubeAggregationRow {
|
|
25
|
+
/** Identifies the row in the editor */
|
|
26
|
+
readonly key: number;
|
|
27
|
+
readonly column: string | undefined;
|
|
28
|
+
readonly function: string;
|
|
29
|
+
readonly name: string;
|
|
30
|
+
/**
|
|
31
|
+
* The settings as typed (PLAN §11.9): the function's own, and a saved one
|
|
32
|
+
* it doesn't take, kept so it is reported until the function is picked again
|
|
33
|
+
*/
|
|
34
|
+
readonly settings: CubeAggregationSettingTexts;
|
|
35
|
+
/** The settings as saved, kept while their text is as it opened, so one that isn't a whole number stays reported */
|
|
36
|
+
readonly savedSettings?: Pick<ColumnAggregation, 'offset' | 'buckets'>;
|
|
37
|
+
/**
|
|
38
|
+
* The name was typed: it no longer follows the column and the function.
|
|
39
|
+
* A name equal to the auto-name follows them again.
|
|
40
|
+
*/
|
|
41
|
+
readonly named: boolean;
|
|
42
|
+
}
|
|
43
|
+
export declare const blankAggregationRow: () => CubeAggregationRow;
|
|
44
|
+
/** Whether the use knows the function and it takes no column: Count rows, and in a window the rank functions */
|
|
45
|
+
export declare const takesNoAggregationColumn: (fn: string, use: AggregationUse) => boolean;
|
|
46
|
+
/**
|
|
47
|
+
* Whether a row builds an aggregation: it has a column, or its function takes
|
|
48
|
+
* none, or it holds a function the use doesn't know with no column (a newer
|
|
49
|
+
* client's, or in a Group a window function such as Rank), kept as saved
|
|
50
|
+
* (Q4). A blank row, or a column function whose column isn't picked yet, is
|
|
51
|
+
* left out.
|
|
52
|
+
*/
|
|
53
|
+
export declare const isBuiltAggregationRow: (row: CubeAggregationRow, use: AggregationUse) => boolean;
|
|
54
|
+
/** The rows of saved aggregations, or one blank row when there are none */
|
|
55
|
+
export declare const aggregationRowsOf: (aggregations: readonly ColumnAggregation[], use: AggregationUse) => CubeAggregationRow[];
|
|
56
|
+
/** The aggregations the rows build, in order (`isBuiltAggregationRow`) */
|
|
57
|
+
export declare const aggregationsOfRows: (rows: readonly CubeAggregationRow[], use: AggregationUse) => ColumnAggregation[];
|
|
58
|
+
/** The row with its column picked; with no function yet, Count */
|
|
59
|
+
export declare const withRowColumn: (row: CubeAggregationRow, column: string, use: AggregationUse) => CubeAggregationRow;
|
|
60
|
+
/**
|
|
61
|
+
* The row with its function picked: a function that takes no column clears
|
|
62
|
+
* it, and back to a column function leaves one to pick. It keeps only the
|
|
63
|
+
* function's own setting, as typed, or its default.
|
|
64
|
+
*/
|
|
65
|
+
export declare const withRowFunction: (row: CubeAggregationRow, fn: string, use: AggregationUse) => CubeAggregationRow;
|
|
66
|
+
/** The row with a setting typed, kept exactly as text */
|
|
67
|
+
export declare const withRowSetting: (row: CubeAggregationRow, setting: AggregationSetting, text: string) => CubeAggregationRow;
|
|
68
|
+
/** The row with its name typed, kept exactly; the auto-name itself follows again */
|
|
69
|
+
export declare const withRowName: (row: CubeAggregationRow, name: string, use: AggregationUse) => CubeAggregationRow;
|
|
70
|
+
export declare const isSameAggregations: (a: readonly ColumnAggregation[], b: readonly ColumnAggregation[]) => boolean;
|
|
71
|
+
/**
|
|
72
|
+
* Picked columns in the input's order, then those the input doesn't have, in
|
|
73
|
+
* the order they were picked: a saved column the input lost stays listed
|
|
74
|
+
* until it is unticked (a Group's keys, a Partition's columns, Q2)
|
|
75
|
+
*/
|
|
76
|
+
export declare const inInputOrder: (names: readonly string[], schema: Schema) => string[];
|
|
77
|
+
/** The picked columns with one ticked or unticked, in the input's order (`inInputOrder`) */
|
|
78
|
+
export declare const toggledColumns: (columns: readonly string[], name: string, schema: Schema) => string[];
|
|
79
|
+
export declare const isSameList: (a: readonly string[], b: readonly string[]) => boolean;
|
|
80
|
+
//# sourceMappingURL=CubeAggregationRows.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CubeAggregationRows.d.ts","sourceRoot":"","sources":["../../../src/stores/editors/CubeAggregationRows.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAGL,kBAAkB,EAClB,KAAK,cAAc,EACnB,KAAK,iBAAiB,EAItB,KAAK,MAAM,EAEZ,MAAM,oBAAoB,CAAC;AAQ5B,uFAAuF;AACvF,MAAM,MAAM,2BAA2B,GAAG,QAAQ,CAChD,OAAO,CAAC,MAAM,CAAC,kBAAkB,EAAE,MAAM,CAAC,CAAC,CAC5C,CAAC;AAEF;;;;GAIG;AACH,MAAM,WAAW,kBAAkB;IACjC,uCAAuC;IACvC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB;;;OAGG;IACH,QAAQ,CAAC,QAAQ,EAAE,2BAA2B,CAAC;IAC/C,oHAAoH;IACpH,QAAQ,CAAC,aAAa,CAAC,EAAE,IAAI,CAAC,iBAAiB,EAAE,QAAQ,GAAG,SAAS,CAAC,CAAC;IACvE;;;OAGG;IACH,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;CACzB;AAID,eAAO,MAAM,mBAAmB,QAAO,kBAOrC,CAAC;AA2CH,gHAAgH;AAChH,eAAO,MAAM,wBAAwB,GACnC,IAAI,MAAM,EACV,KAAK,cAAc,KAClB,OAA0E,CAAC;AAE9E;;;;;;GAMG;AACH,eAAO,MAAM,qBAAqB,GAChC,KAAK,kBAAkB,EACvB,KAAK,cAAc,KAClB,OAGwE,CAAC;AAc5E,2EAA2E;AAC3E,eAAO,MAAM,iBAAiB,GAC5B,cAAc,SAAS,iBAAiB,EAAE,EAC1C,KAAK,cAAc,KAClB,kBAAkB,EAqBQ,CAAC;AAE9B,0EAA0E;AAC1E,eAAO,MAAM,kBAAkB,GAC7B,MAAM,SAAS,kBAAkB,EAAE,EACnC,KAAK,cAAc,KAClB,iBAAiB,EAQb,CAAC;AAER,kEAAkE;AAClE,eAAO,MAAM,aAAa,GACxB,KAAK,kBAAkB,EACvB,QAAQ,MAAM,EACd,KAAK,cAAc,KAClB,kBAIA,CAAC;AAEJ;;;;GAIG;AACH,eAAO,MAAM,eAAe,GAC1B,KAAK,kBAAkB,EACvB,IAAI,MAAM,EACV,KAAK,cAAc,KAClB,kBAoBF,CAAC;AAEF,yDAAyD;AACzD,eAAO,MAAM,cAAc,GACzB,KAAK,kBAAkB,EACvB,SAAS,kBAAkB,EAC3B,MAAM,MAAM,KACX,kBAGD,CAAC;AAEH,oFAAoF;AACpF,eAAO,MAAM,WAAW,GACtB,KAAK,kBAAkB,EACvB,MAAM,MAAM,EACZ,KAAK,cAAc,KAClB,kBAID,CAAC;AAEH,eAAO,MAAM,kBAAkB,GAC7B,GAAG,SAAS,iBAAiB,EAAE,EAC/B,GAAG,SAAS,iBAAiB,EAAE,KAC9B,OASA,CAAC;AAEJ;;;;GAIG;AACH,eAAO,MAAM,YAAY,GACvB,OAAO,SAAS,MAAM,EAAE,EACxB,QAAQ,MAAM,KACb,MAAM,EAGR,CAAC;AAEF,4FAA4F;AAC5F,eAAO,MAAM,cAAc,GACzB,SAAS,SAAS,MAAM,EAAE,EAC1B,MAAM,MAAM,EACZ,QAAQ,MAAM,KACb,MAAM,EAMN,CAAC;AAEJ,eAAO,MAAM,UAAU,GACrB,GAAG,SAAS,MAAM,EAAE,EACpB,GAAG,SAAS,MAAM,EAAE,KACnB,OACmE,CAAC"}
|
|
@@ -0,0 +1,164 @@
|
|
|
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 { AGGREGATION_SETTING_DEFAULTS, AggregationFunction, AggregationSetting, getAggregationAutoName, getAggregationSetting, isAggregationFunctionOf, takesAggregationColumn, } from '@finos/legend-cube';
|
|
17
|
+
import { parseWholeNumberText } from './CubeIntegerText.js';
|
|
18
|
+
let nextRowKey = 1;
|
|
19
|
+
export const blankAggregationRow = () => ({
|
|
20
|
+
key: nextRowKey++,
|
|
21
|
+
column: '',
|
|
22
|
+
function: '',
|
|
23
|
+
name: '',
|
|
24
|
+
settings: {},
|
|
25
|
+
named: false,
|
|
26
|
+
});
|
|
27
|
+
/** The settings a saved aggregation holds, as texts */
|
|
28
|
+
const settingTextsOf = ({ offset, buckets, }) => ({
|
|
29
|
+
...(offset === undefined
|
|
30
|
+
? {}
|
|
31
|
+
: { [AggregationSetting.OFFSET]: String(offset) }),
|
|
32
|
+
...(buckets === undefined
|
|
33
|
+
? {}
|
|
34
|
+
: { [AggregationSetting.BUCKETS]: String(buckets) }),
|
|
35
|
+
});
|
|
36
|
+
/**
|
|
37
|
+
* The settings the texts give: a whole number, or the saved number while the
|
|
38
|
+
* text is as it opened (so a saved 2.5 stays 2.5, reported, never dropped), or
|
|
39
|
+
* none, which the node reports
|
|
40
|
+
*/
|
|
41
|
+
const settingsOfTexts = (texts, saved = {}) => {
|
|
42
|
+
const [offset, buckets] = [
|
|
43
|
+
AggregationSetting.OFFSET,
|
|
44
|
+
AggregationSetting.BUCKETS,
|
|
45
|
+
].map((key) => {
|
|
46
|
+
const text = texts[key];
|
|
47
|
+
const savedValue = saved[key];
|
|
48
|
+
return text === undefined
|
|
49
|
+
? undefined
|
|
50
|
+
: (parseWholeNumberText(text) ??
|
|
51
|
+
(savedValue !== undefined && text === String(savedValue)
|
|
52
|
+
? savedValue
|
|
53
|
+
: undefined));
|
|
54
|
+
});
|
|
55
|
+
return {
|
|
56
|
+
...(offset === undefined ? {} : { offset }),
|
|
57
|
+
...(buckets === undefined ? {} : { buckets }),
|
|
58
|
+
};
|
|
59
|
+
};
|
|
60
|
+
/** Whether the use knows the function and it takes no column: Count rows, and in a window the rank functions */
|
|
61
|
+
export const takesNoAggregationColumn = (fn, use) => isAggregationFunctionOf(fn, use) && !takesAggregationColumn(fn);
|
|
62
|
+
/**
|
|
63
|
+
* Whether a row builds an aggregation: it has a column, or its function takes
|
|
64
|
+
* none, or it holds a function the use doesn't know with no column (a newer
|
|
65
|
+
* client's, or in a Group a window function such as Rank), kept as saved
|
|
66
|
+
* (Q4). A blank row, or a column function whose column isn't picked yet, is
|
|
67
|
+
* left out.
|
|
68
|
+
*/
|
|
69
|
+
export const isBuiltAggregationRow = (row, use) => Boolean(row.column) ||
|
|
70
|
+
takesNoAggregationColumn(row.function, use) ||
|
|
71
|
+
(row.column === undefined && !isAggregationFunctionOf(row.function, use));
|
|
72
|
+
/** The row with its name following the column and the function, unless typed */
|
|
73
|
+
const withAutoName = (row, use) => row.named
|
|
74
|
+
? row
|
|
75
|
+
: {
|
|
76
|
+
...row,
|
|
77
|
+
name: getAggregationAutoName(row.function, row.column, use) ?? '',
|
|
78
|
+
};
|
|
79
|
+
/** The rows of saved aggregations, or one blank row when there are none */
|
|
80
|
+
export const aggregationRowsOf = (aggregations, use) => aggregations.length
|
|
81
|
+
? aggregations.map((aggregation) => {
|
|
82
|
+
const { column, function: fn, name } = aggregation;
|
|
83
|
+
return {
|
|
84
|
+
key: nextRowKey++,
|
|
85
|
+
column,
|
|
86
|
+
function: fn,
|
|
87
|
+
name,
|
|
88
|
+
settings: settingTextsOf(aggregation),
|
|
89
|
+
savedSettings: {
|
|
90
|
+
...(aggregation.offset === undefined
|
|
91
|
+
? {}
|
|
92
|
+
: { offset: aggregation.offset }),
|
|
93
|
+
...(aggregation.buckets === undefined
|
|
94
|
+
? {}
|
|
95
|
+
: { buckets: aggregation.buckets }),
|
|
96
|
+
},
|
|
97
|
+
named: name !== (getAggregationAutoName(fn, column, use) ?? ''),
|
|
98
|
+
};
|
|
99
|
+
})
|
|
100
|
+
: [blankAggregationRow()];
|
|
101
|
+
/** The aggregations the rows build, in order (`isBuiltAggregationRow`) */
|
|
102
|
+
export const aggregationsOfRows = (rows, use) => rows
|
|
103
|
+
.filter((row) => isBuiltAggregationRow(row, use))
|
|
104
|
+
.map(({ column, function: fn, name, settings, savedSettings }) => ({
|
|
105
|
+
column,
|
|
106
|
+
function: fn,
|
|
107
|
+
name,
|
|
108
|
+
...settingsOfTexts(settings, savedSettings),
|
|
109
|
+
}));
|
|
110
|
+
/** The row with its column picked; with no function yet, Count */
|
|
111
|
+
export const withRowColumn = (row, column, use) => withAutoName({ ...row, column, function: row.function || AggregationFunction.COUNT }, use);
|
|
112
|
+
/**
|
|
113
|
+
* The row with its function picked: a function that takes no column clears
|
|
114
|
+
* it, and back to a column function leaves one to pick. It keeps only the
|
|
115
|
+
* function's own setting, as typed, or its default.
|
|
116
|
+
*/
|
|
117
|
+
export const withRowFunction = (row, fn, use) => {
|
|
118
|
+
const setting = getAggregationSetting(fn);
|
|
119
|
+
return withAutoName({
|
|
120
|
+
...row,
|
|
121
|
+
function: fn,
|
|
122
|
+
column: takesNoAggregationColumn(fn, use)
|
|
123
|
+
? undefined
|
|
124
|
+
: (row.column ?? ''),
|
|
125
|
+
settings: setting === undefined
|
|
126
|
+
? {}
|
|
127
|
+
: {
|
|
128
|
+
[setting]: row.settings[setting] ??
|
|
129
|
+
String(AGGREGATION_SETTING_DEFAULTS[setting]),
|
|
130
|
+
},
|
|
131
|
+
}, use);
|
|
132
|
+
};
|
|
133
|
+
/** The row with a setting typed, kept exactly as text */
|
|
134
|
+
export const withRowSetting = (row, setting, text) => ({
|
|
135
|
+
...row,
|
|
136
|
+
settings: { ...row.settings, [setting]: text },
|
|
137
|
+
});
|
|
138
|
+
/** The row with its name typed, kept exactly; the auto-name itself follows again */
|
|
139
|
+
export const withRowName = (row, name, use) => ({
|
|
140
|
+
...row,
|
|
141
|
+
name,
|
|
142
|
+
named: name !== (getAggregationAutoName(row.function, row.column, use) ?? ''),
|
|
143
|
+
});
|
|
144
|
+
export const isSameAggregations = (a, b) => a.length === b.length &&
|
|
145
|
+
a.every((aggregation, index) => aggregation.column === b[index]?.column &&
|
|
146
|
+
aggregation.function === b[index]?.function &&
|
|
147
|
+
aggregation.name === b[index]?.name &&
|
|
148
|
+
aggregation.offset === b[index]?.offset &&
|
|
149
|
+
aggregation.buckets === b[index]?.buckets);
|
|
150
|
+
/**
|
|
151
|
+
* Picked columns in the input's order, then those the input doesn't have, in
|
|
152
|
+
* the order they were picked: a saved column the input lost stays listed
|
|
153
|
+
* until it is unticked (a Group's keys, a Partition's columns, Q2)
|
|
154
|
+
*/
|
|
155
|
+
export const inInputOrder = (names, schema) => [
|
|
156
|
+
...schema.names().filter((name) => names.includes(name)),
|
|
157
|
+
...names.filter((name) => schema.lookup(name) === undefined),
|
|
158
|
+
];
|
|
159
|
+
/** The picked columns with one ticked or unticked, in the input's order (`inInputOrder`) */
|
|
160
|
+
export const toggledColumns = (columns, name, schema) => inInputOrder(columns.includes(name)
|
|
161
|
+
? columns.filter((picked) => picked !== name)
|
|
162
|
+
: [...columns, name], schema);
|
|
163
|
+
export const isSameList = (a, b) => a.length === b.length && a.every((name, index) => name === b[index]);
|
|
164
|
+
//# sourceMappingURL=CubeAggregationRows.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CubeAggregationRows.js","sourceRoot":"","sources":["../../../src/stores/editors/CubeAggregationRows.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,30 @@
|
|
|
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 { Concat } from '@finos/legend-cube';
|
|
17
|
+
import { CubeNodeDraft } from './CubeNodeDraft.js';
|
|
18
|
+
/**
|
|
19
|
+
* The Concat editor's draft (PLAN §11.5): its one setting, Convert types
|
|
20
|
+
* (Q5), which converts types that differ within numbers, strings or dates
|
|
21
|
+
* to the type they share
|
|
22
|
+
*/
|
|
23
|
+
export declare class CubeConcatDraft extends CubeNodeDraft<Concat> {
|
|
24
|
+
widenTypes: boolean;
|
|
25
|
+
constructor(original: Concat);
|
|
26
|
+
setWidenTypes(widenTypes: boolean): void;
|
|
27
|
+
/** The original while the setting is as it was */
|
|
28
|
+
build(): Concat;
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=CubeConcatDraft.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CubeConcatDraft.d.ts","sourceRoot":"","sources":["../../../src/stores/editors/CubeConcatDraft.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAEjD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD;;;;GAIG;AACH,qBAAa,eAAgB,SAAQ,aAAa,CAAC,MAAM,CAAC;IACxD,UAAU,EAAE,OAAO,CAAC;gBAER,QAAQ,EAAE,MAAM;IAS5B,aAAa,CAAC,UAAU,EAAE,OAAO,GAAG,IAAI;IAIxC,kDAAkD;IAClD,KAAK,IAAI,MAAM;CAMhB"}
|
|
@@ -0,0 +1,44 @@
|
|
|
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 { action, makeObservable, observable } from 'mobx';
|
|
17
|
+
import { CubeNodeDraft } from './CubeNodeDraft.js';
|
|
18
|
+
/**
|
|
19
|
+
* The Concat editor's draft (PLAN §11.5): its one setting, Convert types
|
|
20
|
+
* (Q5), which converts types that differ within numbers, strings or dates
|
|
21
|
+
* to the type they share
|
|
22
|
+
*/
|
|
23
|
+
export class CubeConcatDraft extends CubeNodeDraft {
|
|
24
|
+
widenTypes;
|
|
25
|
+
constructor(original) {
|
|
26
|
+
super(original);
|
|
27
|
+
makeObservable(this, {
|
|
28
|
+
widenTypes: observable,
|
|
29
|
+
setWidenTypes: action,
|
|
30
|
+
});
|
|
31
|
+
this.widenTypes = original.widenTypes;
|
|
32
|
+
}
|
|
33
|
+
setWidenTypes(widenTypes) {
|
|
34
|
+
this.widenTypes = widenTypes;
|
|
35
|
+
}
|
|
36
|
+
/** The original while the setting is as it was */
|
|
37
|
+
build() {
|
|
38
|
+
const { original, widenTypes } = this;
|
|
39
|
+
return widenTypes === original.widenTypes
|
|
40
|
+
? original
|
|
41
|
+
: original.withWidenTypes(widenTypes);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=CubeConcatDraft.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CubeConcatDraft.js","sourceRoot":"","sources":["../../../src/stores/editors/CubeConcatDraft.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD;;;;GAIG;AACH,MAAM,OAAO,eAAgB,SAAQ,aAAqB;IACxD,UAAU,CAAU;IAEpB,YAAY,QAAgB;QAC1B,KAAK,CAAC,QAAQ,CAAC,CAAC;QAChB,cAAc,CAAC,IAAI,EAAE;YACnB,UAAU,EAAE,UAAU;YACtB,aAAa,EAAE,MAAM;SACtB,CAAC,CAAC;QACH,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAC;IACxC,CAAC;IAED,aAAa,CAAC,UAAmB;QAC/B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;IAED,kDAAkD;IAClD,KAAK;QACH,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC;QACtC,OAAO,UAAU,KAAK,QAAQ,CAAC,UAAU;YACvC,CAAC,CAAC,QAAQ;YACV,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;IAC1C,CAAC;CACF"}
|
|
@@ -0,0 +1,49 @@
|
|
|
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 Difference, type Schema, type SchemaColumn } from '@finos/legend-cube';
|
|
17
|
+
import { type CubeJoinKeyPair, type CubeJoinKeysDraft } from './CubeJoinKeyPairs.js';
|
|
18
|
+
import { CubeNodeDraft } from './CubeNodeDraft.js';
|
|
19
|
+
/**
|
|
20
|
+
* The Difference editor's draft (spec §17.6, PLAN §11.7): pairs of key
|
|
21
|
+
* columns, as a Join's (a pair with no column picked is left out when built),
|
|
22
|
+
* and the difference columns, stored in the Left input's order but kept in a
|
|
23
|
+
* saved order until the picks change (M4's Q2). Until something changes,
|
|
24
|
+
* `build()` gives the original back.
|
|
25
|
+
*/
|
|
26
|
+
export declare class CubeDifferenceDraft extends CubeNodeDraft<Difference> implements CubeJoinKeysDraft {
|
|
27
|
+
pairs: readonly CubeJoinKeyPair[];
|
|
28
|
+
differenceColumns: readonly string[];
|
|
29
|
+
/** Anything was changed; until then, `build()` gives the original back */
|
|
30
|
+
private touched;
|
|
31
|
+
/** The key lists the pairs built before any edit, so edits undone by hand give the original back */
|
|
32
|
+
private readonly initialKeyLists;
|
|
33
|
+
constructor(original: Difference);
|
|
34
|
+
addPair(): void;
|
|
35
|
+
removePair(key: number): void;
|
|
36
|
+
setLeftColumn(key: number, left: string): void;
|
|
37
|
+
setRightColumn(key: number, right: string): void;
|
|
38
|
+
/** Ticks or unticks a difference column; the columns then follow the Left input's order */
|
|
39
|
+
toggleDifferenceColumn(name: string, leftSchema: Schema): void;
|
|
40
|
+
clearDifferenceColumns(): void;
|
|
41
|
+
build(): Difference;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Why a column of the Left input can't be a difference column, `undefined`
|
|
45
|
+
* when it can: it is a join column on either side, or not a number, or not in
|
|
46
|
+
* the Right input with the same type (PLAN §11.7)
|
|
47
|
+
*/
|
|
48
|
+
export declare const getDifferenceColumnUnpickableReason: (column: SchemaColumn, rightSchema: Schema, joinColumns: readonly string[]) => string | undefined;
|
|
49
|
+
//# sourceMappingURL=CubeDifferenceDraft.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CubeDifferenceDraft.d.ts","sourceRoot":"","sources":["../../../src/stores/editors/CubeDifferenceDraft.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EACL,KAAK,UAAU,EAEf,KAAK,MAAM,EACX,KAAK,YAAY,EAClB,MAAM,oBAAoB,CAAC;AAI5B,OAAO,EAEL,KAAK,eAAe,EACpB,KAAK,iBAAiB,EAGvB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD;;;;;;GAMG;AACH,qBAAa,mBACX,SAAQ,aAAa,CAAC,UAAU,CAChC,YAAW,iBAAiB;IAE5B,KAAK,EAAE,SAAS,eAAe,EAAE,CAAC;IAClC,iBAAiB,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,0EAA0E;IAC1E,OAAO,CAAC,OAAO,CAAS;IACxB,oGAAoG;IACpG,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAuB;gBAE3C,QAAQ,EAAE,UAAU;IAkBhC,OAAO,IAAI,IAAI;IAKf,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAK7B,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAO9C,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAOhD,2FAA2F;IAC3F,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI;IAS9D,sBAAsB,IAAI,IAAI;IAK9B,KAAK,IAAI,UAAU;CAepB;AAED;;;;GAIG;AACH,eAAO,MAAM,mCAAmC,GAC9C,QAAQ,YAAY,EACpB,aAAa,MAAM,EACnB,aAAa,SAAS,MAAM,EAAE,KAC7B,MAAM,GAAG,SAWX,CAAC"}
|
|
@@ -0,0 +1,111 @@
|
|
|
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 { isNumericFamily, } from '@finos/legend-cube';
|
|
17
|
+
import { action, makeObservable, observable } from 'mobx';
|
|
18
|
+
import { CUBE_DIFFERENCE_COLUMN_REASONS } from '../../__lib__/LegendCubeLabels.js';
|
|
19
|
+
import { isSameList, toggledColumns } from './CubeAggregationRows.js';
|
|
20
|
+
import { blankJoinKeyPair, joinKeyListsOf, joinKeyPairsOf, } from './CubeJoinKeyPairs.js';
|
|
21
|
+
import { CubeNodeDraft } from './CubeNodeDraft.js';
|
|
22
|
+
/**
|
|
23
|
+
* The Difference editor's draft (spec §17.6, PLAN §11.7): pairs of key
|
|
24
|
+
* columns, as a Join's (a pair with no column picked is left out when built),
|
|
25
|
+
* and the difference columns, stored in the Left input's order but kept in a
|
|
26
|
+
* saved order until the picks change (M4's Q2). Until something changes,
|
|
27
|
+
* `build()` gives the original back.
|
|
28
|
+
*/
|
|
29
|
+
export class CubeDifferenceDraft extends CubeNodeDraft {
|
|
30
|
+
pairs;
|
|
31
|
+
differenceColumns;
|
|
32
|
+
/** Anything was changed; until then, `build()` gives the original back */
|
|
33
|
+
touched = false;
|
|
34
|
+
/** The key lists the pairs built before any edit, so edits undone by hand give the original back */
|
|
35
|
+
initialKeyLists;
|
|
36
|
+
constructor(original) {
|
|
37
|
+
super(original);
|
|
38
|
+
makeObservable(this, {
|
|
39
|
+
pairs: observable.ref,
|
|
40
|
+
differenceColumns: observable.ref,
|
|
41
|
+
touched: observable,
|
|
42
|
+
addPair: action,
|
|
43
|
+
removePair: action,
|
|
44
|
+
setLeftColumn: action,
|
|
45
|
+
setRightColumn: action,
|
|
46
|
+
toggleDifferenceColumn: action,
|
|
47
|
+
clearDifferenceColumns: action,
|
|
48
|
+
});
|
|
49
|
+
this.pairs = joinKeyPairsOf(original.leftColumns, original.rightColumns);
|
|
50
|
+
this.initialKeyLists = joinKeyListsOf(this.pairs);
|
|
51
|
+
this.differenceColumns = original.differenceColumns;
|
|
52
|
+
}
|
|
53
|
+
addPair() {
|
|
54
|
+
this.pairs = [...this.pairs, blankJoinKeyPair()];
|
|
55
|
+
this.touched = true;
|
|
56
|
+
}
|
|
57
|
+
removePair(key) {
|
|
58
|
+
this.pairs = this.pairs.filter((pair) => pair.key !== key);
|
|
59
|
+
this.touched = true;
|
|
60
|
+
}
|
|
61
|
+
setLeftColumn(key, left) {
|
|
62
|
+
this.pairs = this.pairs.map((pair) => pair.key === key ? { ...pair, left } : pair);
|
|
63
|
+
this.touched = true;
|
|
64
|
+
}
|
|
65
|
+
setRightColumn(key, right) {
|
|
66
|
+
this.pairs = this.pairs.map((pair) => pair.key === key ? { ...pair, right } : pair);
|
|
67
|
+
this.touched = true;
|
|
68
|
+
}
|
|
69
|
+
/** Ticks or unticks a difference column; the columns then follow the Left input's order */
|
|
70
|
+
toggleDifferenceColumn(name, leftSchema) {
|
|
71
|
+
this.differenceColumns = toggledColumns(this.differenceColumns, name, leftSchema);
|
|
72
|
+
this.touched = true;
|
|
73
|
+
}
|
|
74
|
+
clearDifferenceColumns() {
|
|
75
|
+
this.differenceColumns = [];
|
|
76
|
+
this.touched = true;
|
|
77
|
+
}
|
|
78
|
+
build() {
|
|
79
|
+
const [leftColumns, rightColumns] = joinKeyListsOf(this.pairs);
|
|
80
|
+
const [initialLeft, initialRight] = this.initialKeyLists;
|
|
81
|
+
const { original } = this;
|
|
82
|
+
return !this.touched ||
|
|
83
|
+
(isSameList(leftColumns, initialLeft) &&
|
|
84
|
+
isSameList(rightColumns, initialRight) &&
|
|
85
|
+
isSameList(this.differenceColumns, original.differenceColumns))
|
|
86
|
+
? original
|
|
87
|
+
: original.withSettings({
|
|
88
|
+
leftColumns,
|
|
89
|
+
rightColumns,
|
|
90
|
+
differenceColumns: this.differenceColumns,
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Why a column of the Left input can't be a difference column, `undefined`
|
|
96
|
+
* when it can: it is a join column on either side, or not a number, or not in
|
|
97
|
+
* the Right input with the same type (PLAN §11.7)
|
|
98
|
+
*/
|
|
99
|
+
export const getDifferenceColumnUnpickableReason = (column, rightSchema, joinColumns) => {
|
|
100
|
+
const rightType = rightSchema.type(column.name);
|
|
101
|
+
return joinColumns.includes(column.name)
|
|
102
|
+
? CUBE_DIFFERENCE_COLUMN_REASONS.JOIN_COLUMN
|
|
103
|
+
: !isNumericFamily(column.type.family)
|
|
104
|
+
? CUBE_DIFFERENCE_COLUMN_REASONS.NOT_NUMERIC
|
|
105
|
+
: rightType === undefined
|
|
106
|
+
? CUBE_DIFFERENCE_COLUMN_REASONS.NOT_IN_RIGHT
|
|
107
|
+
: !rightType.equals(column.type)
|
|
108
|
+
? CUBE_DIFFERENCE_COLUMN_REASONS.TYPE_DIFFERS(rightType.displayName)
|
|
109
|
+
: undefined;
|
|
110
|
+
};
|
|
111
|
+
//# sourceMappingURL=CubeDifferenceDraft.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CubeDifferenceDraft.js","sourceRoot":"","sources":["../../../src/stores/editors/CubeDifferenceDraft.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,110 @@
|
|
|
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 CubeType, Extend, type ExtendColumn, type ExtendTyping, type JsonObject, type QueryNode, type Schema } from '@finos/legend-cube';
|
|
17
|
+
import type { GeneratorFn } from '@finos/legend-shared';
|
|
18
|
+
import { type CubeSourceLocation } from '../../graph-manager/CubeEngine.js';
|
|
19
|
+
import type { CubeEditorState } from '../CubeEditorState.js';
|
|
20
|
+
import { CubeNodeDraft } from './CubeNodeDraft.js';
|
|
21
|
+
/** What the engine made of a row's code the last time it was validated */
|
|
22
|
+
export interface CubeExtendCheckedCode {
|
|
23
|
+
readonly code: string;
|
|
24
|
+
readonly lambda: JsonObject;
|
|
25
|
+
readonly located: JsonObject;
|
|
26
|
+
}
|
|
27
|
+
/** A row's problem from the last Validate: the engine's message, where it is in the code, and a hint */
|
|
28
|
+
export interface CubeExtendRowProblem {
|
|
29
|
+
readonly message: string;
|
|
30
|
+
readonly location?: CubeSourceLocation | undefined;
|
|
31
|
+
readonly hint?: string | undefined;
|
|
32
|
+
}
|
|
33
|
+
/** One new column in the editor */
|
|
34
|
+
export interface CubeExtendRow {
|
|
35
|
+
/** Identifies the row in the editor, and its code to the engine */
|
|
36
|
+
readonly key: number;
|
|
37
|
+
readonly name: string;
|
|
38
|
+
readonly code: string;
|
|
39
|
+
readonly checked?: CubeExtendCheckedCode | undefined;
|
|
40
|
+
readonly problem?: CubeExtendRowProblem | undefined;
|
|
41
|
+
/** The type the engine gave, while the row is as it was typed */
|
|
42
|
+
readonly type?: CubeType | undefined;
|
|
43
|
+
}
|
|
44
|
+
/** What a new column's code starts as (PLAN §11.7 Q2) */
|
|
45
|
+
export declare const NEW_EXPRESSION_CODE = "x | ";
|
|
46
|
+
/**
|
|
47
|
+
* The Extend editor's draft (PLAN §11.7): a row per new column, its name and
|
|
48
|
+
* its code, `x | …`. Validate (F10) has the engine check each changed code,
|
|
49
|
+
* type the columns as a chain after the input, located so an error points
|
|
50
|
+
* into the code, and plan the query for the cube's database. Apply waits
|
|
51
|
+
* until every row's code is the one validated; the node then holds the
|
|
52
|
+
* engine's lambdas and their typing, so it needn't be typed again.
|
|
53
|
+
*/
|
|
54
|
+
export declare class CubeExtendDraft extends CubeNodeDraft<Extend> {
|
|
55
|
+
readonly editorState: CubeEditorState;
|
|
56
|
+
rows: readonly CubeExtendRow[];
|
|
57
|
+
/** The typing the last Validate gave, for the rows as they were then */
|
|
58
|
+
typing: ExtendTyping | undefined;
|
|
59
|
+
validating: boolean;
|
|
60
|
+
/** Anything was changed; until then, `build()` gives the original back */
|
|
61
|
+
private touched;
|
|
62
|
+
/** The database type the last plan was for, named in its problem */
|
|
63
|
+
private planDatabaseType;
|
|
64
|
+
constructor(original: Extend, editorState: CubeEditorState);
|
|
65
|
+
/** The input's schema, when the input is valid */
|
|
66
|
+
get inputSchema(): Schema | undefined;
|
|
67
|
+
/** A row named `col_<n>`, the first such name no column has, in any case */
|
|
68
|
+
private newRow;
|
|
69
|
+
/** The columns the rows build: a row's lambda only while its code is the one validated */
|
|
70
|
+
get columns(): ExtendColumn[];
|
|
71
|
+
/** Every row's code is the one the engine last checked */
|
|
72
|
+
get isValidated(): boolean;
|
|
73
|
+
/** Why Apply waits: a validation running, or a code not validated yet */
|
|
74
|
+
get applyDisabledReason(): string | undefined;
|
|
75
|
+
private change;
|
|
76
|
+
addRow(): void;
|
|
77
|
+
removeRow(key: number): void;
|
|
78
|
+
/** Moves a row up (-1) or down (+1); a later column may use it, so its typing waits */
|
|
79
|
+
moveRow(key: number, offset: number): void;
|
|
80
|
+
setName(key: number, name: string): void;
|
|
81
|
+
/** A code edit drops the row's problem and type, until the next Validate */
|
|
82
|
+
setCode(key: number, code: string): void;
|
|
83
|
+
build(): Extend;
|
|
84
|
+
/**
|
|
85
|
+
* Goes on from an Extend that differs from the original only in its
|
|
86
|
+
* typing, e.g. typed in the background after an Apply, keeping the rows;
|
|
87
|
+
* rows not validated in this draft take the new types
|
|
88
|
+
*/
|
|
89
|
+
follow(node: QueryNode): boolean;
|
|
90
|
+
/**
|
|
91
|
+
* Checks every row with the engine (F10): parses each code changed since
|
|
92
|
+
* the last Validate, then, when every code parses and the input is valid,
|
|
93
|
+
* types the columns after the input, located in their codes, and plans the
|
|
94
|
+
* query up to this node for the cube's database; a plan that fails is
|
|
95
|
+
* planned again column by column to find the first that fails. Each
|
|
96
|
+
* problem goes on its row.
|
|
97
|
+
*/
|
|
98
|
+
validate(): GeneratorFn<void>;
|
|
99
|
+
/** Cube's problems, each on its row; whether there was one */
|
|
100
|
+
private putCubeProblems;
|
|
101
|
+
/** The problem on its row, or on every row when the engine named none */
|
|
102
|
+
private putProblem;
|
|
103
|
+
/**
|
|
104
|
+
* Plans the query up to the typed candidate, as a run would; when it
|
|
105
|
+
* fails with several columns, the first k columns for every k, to name
|
|
106
|
+
* the column the database can't run
|
|
107
|
+
*/
|
|
108
|
+
private planFrom;
|
|
109
|
+
}
|
|
110
|
+
//# sourceMappingURL=CubeExtendDraft.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CubeExtendDraft.d.ts","sourceRoot":"","sources":["../../../src/stores/editors/CubeExtendDraft.ts"],"names":[],"mappings":"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"}
|