@finos/legend-extension-dsl-data-quality 1.0.0
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/LICENSE +201 -0
- package/README.md +1 -0
- package/lib/components/DSL_DataQuality_ClassElementDriver.d.ts +46 -0
- package/lib/components/DSL_DataQuality_ClassElementDriver.d.ts.map +1 -0
- package/lib/components/DSL_DataQuality_ClassElementDriver.js +116 -0
- package/lib/components/DSL_DataQuality_ClassElementDriver.js.map +1 -0
- package/lib/components/DSL_DataQuality_LegendStudioApplicationPlugin.d.ts +30 -0
- package/lib/components/DSL_DataQuality_LegendStudioApplicationPlugin.d.ts.map +1 -0
- package/lib/components/DSL_DataQuality_LegendStudioApplicationPlugin.js +161 -0
- package/lib/components/DSL_DataQuality_LegendStudioApplicationPlugin.js.map +1 -0
- package/lib/components/DSL_DataQuality_LegendStudioPlugin_Extension.d.ts +25 -0
- package/lib/components/DSL_DataQuality_LegendStudioPlugin_Extension.d.ts.map +1 -0
- package/lib/components/DSL_DataQuality_LegendStudioPlugin_Extension.js +2 -0
- package/lib/components/DSL_DataQuality_LegendStudioPlugin_Extension.js.map +1 -0
- package/lib/components/DSL_DataQuality_ServiceElementDriver.d.ts +27 -0
- package/lib/components/DSL_DataQuality_ServiceElementDriver.d.ts.map +1 -0
- package/lib/components/DSL_DataQuality_ServiceElementDriver.js +41 -0
- package/lib/components/DSL_DataQuality_ServiceElementDriver.js.map +1 -0
- package/lib/components/DSL_NewDataQualityClassValidationElement.d.ts +19 -0
- package/lib/components/DSL_NewDataQualityClassValidationElement.d.ts.map +1 -0
- package/lib/components/DSL_NewDataQualityClassValidationElement.js +64 -0
- package/lib/components/DSL_NewDataQualityClassValidationElement.js.map +1 -0
- package/lib/components/DSL_NewDataQualityServiceValidationElement.d.ts +19 -0
- package/lib/components/DSL_NewDataQualityServiceValidationElement.d.ts.map +1 -0
- package/lib/components/DSL_NewDataQualityServiceValidationElement.js +41 -0
- package/lib/components/DSL_NewDataQualityServiceValidationElement.js.map +1 -0
- package/lib/components/DataQualityClassValidationEditor.d.ts +19 -0
- package/lib/components/DataQualityClassValidationEditor.d.ts.map +1 -0
- package/lib/components/DataQualityClassValidationEditor.js +29 -0
- package/lib/components/DataQualityClassValidationEditor.js.map +1 -0
- package/lib/components/DataQualityConstraintsSelection.d.ts +39 -0
- package/lib/components/DataQualityConstraintsSelection.d.ts.map +1 -0
- package/lib/components/DataQualityConstraintsSelection.js +133 -0
- package/lib/components/DataQualityConstraintsSelection.js.map +1 -0
- package/lib/components/DataQualityDataSpaceBuilder.d.ts +22 -0
- package/lib/components/DataQualityDataSpaceBuilder.d.ts.map +1 -0
- package/lib/components/DataQualityDataSpaceBuilder.js +101 -0
- package/lib/components/DataQualityDataSpaceBuilder.js.map +1 -0
- package/lib/components/DataQualityExplorerPanel.d.ts +29 -0
- package/lib/components/DataQualityExplorerPanel.d.ts.map +1 -0
- package/lib/components/DataQualityExplorerPanel.js +185 -0
- package/lib/components/DataQualityExplorerPanel.js.map +1 -0
- package/lib/components/DataQualityFilterPanel.d.ts +24 -0
- package/lib/components/DataQualityFilterPanel.d.ts.map +1 -0
- package/lib/components/DataQualityFilterPanel.js +32 -0
- package/lib/components/DataQualityFilterPanel.js.map +1 -0
- package/lib/components/DataQualityMappingAndRuntimeBuilder.d.ts +22 -0
- package/lib/components/DataQualityMappingAndRuntimeBuilder.d.ts.map +1 -0
- package/lib/components/DataQualityMappingAndRuntimeBuilder.js +98 -0
- package/lib/components/DataQualityMappingAndRuntimeBuilder.js.map +1 -0
- package/lib/components/DataQualityResultPanel.d.ts +22 -0
- package/lib/components/DataQualityResultPanel.d.ts.map +1 -0
- package/lib/components/DataQualityResultPanel.js +110 -0
- package/lib/components/DataQualityResultPanel.js.map +1 -0
- package/lib/components/DataQualityResultValues.d.ts +24 -0
- package/lib/components/DataQualityResultValues.d.ts.map +1 -0
- package/lib/components/DataQualityResultValues.js +31 -0
- package/lib/components/DataQualityResultValues.js.map +1 -0
- package/lib/components/DataQualityServiceValidationEditor.d.ts +19 -0
- package/lib/components/DataQualityServiceValidationEditor.d.ts.map +1 -0
- package/lib/components/DataQualityServiceValidationEditor.js +29 -0
- package/lib/components/DataQualityServiceValidationEditor.js.map +1 -0
- package/lib/components/DataQualitySideBar.d.ts +40 -0
- package/lib/components/DataQualitySideBar.d.ts.map +1 -0
- package/lib/components/DataQualitySideBar.js +78 -0
- package/lib/components/DataQualitySideBar.js.map +1 -0
- package/lib/components/DataQualityStructuralValidationsPanel.d.ts +22 -0
- package/lib/components/DataQualityStructuralValidationsPanel.d.ts.map +1 -0
- package/lib/components/DataQualityStructuralValidationsPanel.js +50 -0
- package/lib/components/DataQualityStructuralValidationsPanel.js.map +1 -0
- package/lib/components/DataQualityTabs.d.ts +22 -0
- package/lib/components/DataQualityTabs.d.ts.map +1 -0
- package/lib/components/DataQualityTabs.js +58 -0
- package/lib/components/DataQualityTabs.js.map +1 -0
- package/lib/components/DataQualityValidationEditor.d.ts +23 -0
- package/lib/components/DataQualityValidationEditor.d.ts.map +1 -0
- package/lib/components/DataQualityValidationEditor.js +24 -0
- package/lib/components/DataQualityValidationEditor.js.map +1 -0
- package/lib/components/constants/DataQualityConstants.d.ts +24 -0
- package/lib/components/constants/DataQualityConstants.d.ts.map +1 -0
- package/lib/components/constants/DataQualityConstants.js +25 -0
- package/lib/components/constants/DataQualityConstants.js.map +1 -0
- package/lib/components/index.d.ts +19 -0
- package/lib/components/index.d.ts.map +1 -0
- package/lib/components/index.js +19 -0
- package/lib/components/index.js.map +1 -0
- package/lib/components/states/ConstraintState.d.ts +30 -0
- package/lib/components/states/ConstraintState.d.ts.map +1 -0
- package/lib/components/states/ConstraintState.js +55 -0
- package/lib/components/states/ConstraintState.js.map +1 -0
- package/lib/components/states/DataQualityClassValidationState.d.ts +43 -0
- package/lib/components/states/DataQualityClassValidationState.d.ts.map +1 -0
- package/lib/components/states/DataQualityClassValidationState.js +162 -0
- package/lib/components/states/DataQualityClassValidationState.js.map +1 -0
- package/lib/components/states/DataQualityGraphFetchTreeState.d.ts +34 -0
- package/lib/components/states/DataQualityGraphFetchTreeState.d.ts.map +1 -0
- package/lib/components/states/DataQualityGraphFetchTreeState.js +70 -0
- package/lib/components/states/DataQualityGraphFetchTreeState.js.map +1 -0
- package/lib/components/states/DataQualityQueryBuilderState.d.ts +19 -0
- package/lib/components/states/DataQualityQueryBuilderState.d.ts.map +1 -0
- package/lib/components/states/DataQualityQueryBuilderState.js +19 -0
- package/lib/components/states/DataQualityQueryBuilderState.js.map +1 -0
- package/lib/components/states/DataQualityResultState.d.ts +44 -0
- package/lib/components/states/DataQualityResultState.d.ts.map +1 -0
- package/lib/components/states/DataQualityResultState.js +154 -0
- package/lib/components/states/DataQualityResultState.js.map +1 -0
- package/lib/components/states/DataQualityServiceValidationState.d.ts +25 -0
- package/lib/components/states/DataQualityServiceValidationState.d.ts.map +1 -0
- package/lib/components/states/DataQualityServiceValidationState.js +33 -0
- package/lib/components/states/DataQualityServiceValidationState.js.map +1 -0
- package/lib/components/states/DataQualityState.d.ts +67 -0
- package/lib/components/states/DataQualityState.d.ts.map +1 -0
- package/lib/components/states/DataQualityState.js +204 -0
- package/lib/components/states/DataQualityState.js.map +1 -0
- package/lib/components/utils/DataQualityGraphFetchTreeUtil.d.ts +51 -0
- package/lib/components/utils/DataQualityGraphFetchTreeUtil.d.ts.map +1 -0
- package/lib/components/utils/DataQualityGraphFetchTreeUtil.js +321 -0
- package/lib/components/utils/DataQualityGraphFetchTreeUtil.js.map +1 -0
- package/lib/graph/metamodel/DSL_DataQuality_HashUtils.d.ts +29 -0
- package/lib/graph/metamodel/DSL_DataQuality_HashUtils.d.ts.map +1 -0
- package/lib/graph/metamodel/DSL_DataQuality_HashUtils.js +30 -0
- package/lib/graph/metamodel/DSL_DataQuality_HashUtils.js.map +1 -0
- package/lib/graph/metamodel/DSL_DataQuality_PureGraphPlugin.d.ts +22 -0
- package/lib/graph/metamodel/DSL_DataQuality_PureGraphPlugin.d.ts.map +1 -0
- package/lib/graph/metamodel/DSL_DataQuality_PureGraphPlugin.js +31 -0
- package/lib/graph/metamodel/DSL_DataQuality_PureGraphPlugin.js.map +1 -0
- package/lib/graph/metamodel/pure/packageableElements/data-quality/DataQualityGraphFetchTree.d.ts +26 -0
- package/lib/graph/metamodel/pure/packageableElements/data-quality/DataQualityGraphFetchTree.d.ts.map +1 -0
- package/lib/graph/metamodel/pure/packageableElements/data-quality/DataQualityGraphFetchTree.js +44 -0
- package/lib/graph/metamodel/pure/packageableElements/data-quality/DataQualityGraphFetchTree.js.map +1 -0
- package/lib/graph/metamodel/pure/packageableElements/data-quality/DataQualityValidationConfiguration.d.ts +47 -0
- package/lib/graph/metamodel/pure/packageableElements/data-quality/DataQualityValidationConfiguration.d.ts.map +1 -0
- package/lib/graph/metamodel/pure/packageableElements/data-quality/DataQualityValidationConfiguration.js +75 -0
- package/lib/graph/metamodel/pure/packageableElements/data-quality/DataQualityValidationConfiguration.js.map +1 -0
- package/lib/graph-manager/DSL_DataQuality_GraphManagerHelper.d.ts +20 -0
- package/lib/graph-manager/DSL_DataQuality_GraphManagerHelper.d.ts.map +1 -0
- package/lib/graph-manager/DSL_DataQuality_GraphManagerHelper.js +20 -0
- package/lib/graph-manager/DSL_DataQuality_GraphManagerHelper.js.map +1 -0
- package/lib/graph-manager/DSL_DataQuality_GraphManagerPreset.d.ts +20 -0
- package/lib/graph-manager/DSL_DataQuality_GraphManagerPreset.d.ts.map +1 -0
- package/lib/graph-manager/DSL_DataQuality_GraphManagerPreset.js +30 -0
- package/lib/graph-manager/DSL_DataQuality_GraphManagerPreset.js.map +1 -0
- package/lib/graph-manager/DSL_DataQuality_GraphModifierHelper.d.ts +26 -0
- package/lib/graph-manager/DSL_DataQuality_GraphModifierHelper.d.ts.map +1 -0
- package/lib/graph-manager/DSL_DataQuality_GraphModifierHelper.js +57 -0
- package/lib/graph-manager/DSL_DataQuality_GraphModifierHelper.js.map +1 -0
- package/lib/graph-manager/DSL_DataQuality_PureGraphManagerPlugin.d.ts +7 -0
- package/lib/graph-manager/DSL_DataQuality_PureGraphManagerPlugin.d.ts.map +1 -0
- package/lib/graph-manager/DSL_DataQuality_PureGraphManagerPlugin.js +42 -0
- package/lib/graph-manager/DSL_DataQuality_PureGraphManagerPlugin.js.map +1 -0
- package/lib/graph-manager/action/changeDetection/DSL_DataQuality_ObserverHelper.d.ts +24 -0
- package/lib/graph-manager/action/changeDetection/DSL_DataQuality_ObserverHelper.d.ts.map +1 -0
- package/lib/graph-manager/action/changeDetection/DSL_DataQuality_ObserverHelper.js +98 -0
- package/lib/graph-manager/action/changeDetection/DSL_DataQuality_ObserverHelper.js.map +1 -0
- package/lib/graph-manager/index.d.ts +19 -0
- package/lib/graph-manager/index.d.ts.map +1 -0
- package/lib/graph-manager/index.js +19 -0
- package/lib/graph-manager/index.js.map +1 -0
- package/lib/graph-manager/protocol/pure/DSL_DataQuality_PureGraphManagerExtension.d.ts +27 -0
- package/lib/graph-manager/protocol/pure/DSL_DataQuality_PureGraphManagerExtension.d.ts.map +1 -0
- package/lib/graph-manager/protocol/pure/DSL_DataQuality_PureGraphManagerExtension.js +21 -0
- package/lib/graph-manager/protocol/pure/DSL_DataQuality_PureGraphManagerExtension.js.map +1 -0
- package/lib/graph-manager/protocol/pure/DSL_DataQuality_PureProtocolProcessorPlugin.d.ts +25 -0
- package/lib/graph-manager/protocol/pure/DSL_DataQuality_PureProtocolProcessorPlugin.d.ts.map +1 -0
- package/lib/graph-manager/protocol/pure/DSL_DataQuality_PureProtocolProcessorPlugin.js +140 -0
- package/lib/graph-manager/protocol/pure/DSL_DataQuality_PureProtocolProcessorPlugin.js.map +1 -0
- package/lib/graph-manager/protocol/pure/DSL_DataQuality_buildGraphManagerExtension.d.ts +18 -0
- package/lib/graph-manager/protocol/pure/DSL_DataQuality_buildGraphManagerExtension.d.ts.map +1 -0
- package/lib/graph-manager/protocol/pure/DSL_DataQuality_buildGraphManagerExtension.js +20 -0
- package/lib/graph-manager/protocol/pure/DSL_DataQuality_buildGraphManagerExtension.js.map +1 -0
- package/lib/graph-manager/protocol/pure/v1/V1_DSL_Data_Quality_PureGraphManagerExtension.d.ts +41 -0
- package/lib/graph-manager/protocol/pure/v1/V1_DSL_Data_Quality_PureGraphManagerExtension.d.ts.map +1 -0
- package/lib/graph-manager/protocol/pure/v1/V1_DSL_Data_Quality_PureGraphManagerExtension.js +95 -0
- package/lib/graph-manager/protocol/pure/v1/V1_DSL_Data_Quality_PureGraphManagerExtension.js.map +1 -0
- package/lib/graph-manager/protocol/pure/v1/V1_DataQualityConstraintsConfiguration.d.ts +46 -0
- package/lib/graph-manager/protocol/pure/v1/V1_DataQualityConstraintsConfiguration.d.ts.map +1 -0
- package/lib/graph-manager/protocol/pure/v1/V1_DataQualityConstraintsConfiguration.js +76 -0
- package/lib/graph-manager/protocol/pure/v1/V1_DataQualityConstraintsConfiguration.js.map +1 -0
- package/lib/graph-manager/protocol/pure/v1/model/graphFetch/V1_DataQualityPropertyGraphFetchTree.d.ts +22 -0
- package/lib/graph-manager/protocol/pure/v1/model/graphFetch/V1_DataQualityPropertyGraphFetchTree.d.ts.map +1 -0
- package/lib/graph-manager/protocol/pure/v1/model/graphFetch/V1_DataQualityPropertyGraphFetchTree.js +32 -0
- package/lib/graph-manager/protocol/pure/v1/model/graphFetch/V1_DataQualityPropertyGraphFetchTree.js.map +1 -0
- package/lib/graph-manager/protocol/pure/v1/model/graphFetch/V1_DataQualityRootGraphFetchTree.d.ts +22 -0
- package/lib/graph-manager/protocol/pure/v1/model/graphFetch/V1_DataQualityRootGraphFetchTree.d.ts.map +1 -0
- package/lib/graph-manager/protocol/pure/v1/model/graphFetch/V1_DataQualityRootGraphFetchTree.js +31 -0
- package/lib/graph-manager/protocol/pure/v1/model/graphFetch/V1_DataQualityRootGraphFetchTree.js.map +1 -0
- package/lib/graph-manager/protocol/pure/v1/transformation/V1_ValueSpecificationBuilderHelper.d.ts +24 -0
- package/lib/graph-manager/protocol/pure/v1/transformation/V1_ValueSpecificationBuilderHelper.d.ts.map +1 -0
- package/lib/graph-manager/protocol/pure/v1/transformation/V1_ValueSpecificationBuilderHelper.js +92 -0
- package/lib/graph-manager/protocol/pure/v1/transformation/V1_ValueSpecificationBuilderHelper.js.map +1 -0
- package/lib/graph-manager/protocol/pure/v1/transformation/V1_ValueSpecificationSerializer.d.ts +20 -0
- package/lib/graph-manager/protocol/pure/v1/transformation/V1_ValueSpecificationSerializer.d.ts.map +1 -0
- package/lib/graph-manager/protocol/pure/v1/transformation/V1_ValueSpecificationSerializer.js +56 -0
- package/lib/graph-manager/protocol/pure/v1/transformation/V1_ValueSpecificationSerializer.js.map +1 -0
- package/lib/graph-manager/protocol/pure/v1/transformation/V1_ValueSpecificationTransformer.d.ts +22 -0
- package/lib/graph-manager/protocol/pure/v1/transformation/V1_ValueSpecificationTransformer.d.ts.map +1 -0
- package/lib/graph-manager/protocol/pure/v1/transformation/V1_ValueSpecificationTransformer.js +70 -0
- package/lib/graph-manager/protocol/pure/v1/transformation/V1_ValueSpecificationTransformer.js.map +1 -0
- package/lib/graph-manager/protocol/pure/v1/transformation/pureProtocol/V1_DSL_DataQuality_ProtocolHelper.d.ts +29 -0
- package/lib/graph-manager/protocol/pure/v1/transformation/pureProtocol/V1_DSL_DataQuality_ProtocolHelper.d.ts.map +1 -0
- package/lib/graph-manager/protocol/pure/v1/transformation/pureProtocol/V1_DSL_DataQuality_ProtocolHelper.js +80 -0
- package/lib/graph-manager/protocol/pure/v1/transformation/pureProtocol/V1_DSL_DataQuality_ProtocolHelper.js.map +1 -0
- package/lib/index.css +17 -0
- package/lib/index.css.map +1 -0
- package/lib/package.json +87 -0
- package/package.json +87 -0
- package/src/components/DSL_DataQuality_ClassElementDriver.tsx +175 -0
- package/src/components/DSL_DataQuality_LegendStudioApplicationPlugin.tsx +220 -0
- package/src/components/DSL_DataQuality_LegendStudioPlugin_Extension.ts +39 -0
- package/src/components/DSL_DataQuality_ServiceElementDriver.tsx +57 -0
- package/src/components/DSL_NewDataQualityClassValidationElement.tsx +156 -0
- package/src/components/DSL_NewDataQualityServiceValidationElement.tsx +74 -0
- package/src/components/DataQualityClassValidationEditor.tsx +49 -0
- package/src/components/DataQualityConstraintsSelection.tsx +376 -0
- package/src/components/DataQualityDataSpaceBuilder.tsx +274 -0
- package/src/components/DataQualityExplorerPanel.tsx +584 -0
- package/src/components/DataQualityFilterPanel.tsx +50 -0
- package/src/components/DataQualityMappingAndRuntimeBuilder.tsx +224 -0
- package/src/components/DataQualityResultPanel.tsx +335 -0
- package/src/components/DataQualityResultValues.tsx +61 -0
- package/src/components/DataQualityServiceValidationEditor.tsx +49 -0
- package/src/components/DataQualitySideBar.tsx +216 -0
- package/src/components/DataQualityStructuralValidationsPanel.tsx +105 -0
- package/src/components/DataQualityTabs.tsx +104 -0
- package/src/components/DataQualityValidationEditor.tsx +52 -0
- package/src/components/constants/DataQualityConstants.ts +24 -0
- package/src/components/index.ts +19 -0
- package/src/components/states/ConstraintState.ts +70 -0
- package/src/components/states/DataQualityClassValidationState.ts +308 -0
- package/src/components/states/DataQualityGraphFetchTreeState.ts +125 -0
- package/src/components/states/DataQualityQueryBuilderState.ts +19 -0
- package/src/components/states/DataQualityResultState.ts +217 -0
- package/src/components/states/DataQualityServiceValidationState.ts +56 -0
- package/src/components/states/DataQualityState.ts +354 -0
- package/src/components/utils/DataQualityGraphFetchTreeUtil.ts +592 -0
- package/src/graph/metamodel/DSL_DataQuality_HashUtils.ts +29 -0
- package/src/graph/metamodel/DSL_DataQuality_PureGraphPlugin.ts +36 -0
- package/src/graph/metamodel/pure/packageableElements/data-quality/DataQualityGraphFetchTree.ts +55 -0
- package/src/graph/metamodel/pure/packageableElements/data-quality/DataQualityValidationConfiguration.ts +107 -0
- package/src/graph-manager/DSL_DataQuality_GraphManagerHelper.ts +46 -0
- package/src/graph-manager/DSL_DataQuality_GraphManagerPreset.ts +31 -0
- package/src/graph-manager/DSL_DataQuality_GraphModifierHelper.ts +113 -0
- package/src/graph-manager/DSL_DataQuality_PureGraphManagerPlugin.ts +59 -0
- package/src/graph-manager/action/changeDetection/DSL_DataQuality_ObserverHelper.ts +153 -0
- package/src/graph-manager/index.ts +19 -0
- package/src/graph-manager/protocol/pure/DSL_DataQuality_PureGraphManagerExtension.ts +59 -0
- package/src/graph-manager/protocol/pure/DSL_DataQuality_PureProtocolProcessorPlugin.ts +283 -0
- package/src/graph-manager/protocol/pure/DSL_DataQuality_buildGraphManagerExtension.ts +27 -0
- package/src/graph-manager/protocol/pure/v1/V1_DSL_Data_Quality_PureGraphManagerExtension.ts +246 -0
- package/src/graph-manager/protocol/pure/v1/V1_DataQualityConstraintsConfiguration.ts +103 -0
- package/src/graph-manager/protocol/pure/v1/model/graphFetch/V1_DataQualityPropertyGraphFetchTree.ts +37 -0
- package/src/graph-manager/protocol/pure/v1/model/graphFetch/V1_DataQualityRootGraphFetchTree.ts +36 -0
- package/src/graph-manager/protocol/pure/v1/transformation/V1_ValueSpecificationBuilderHelper.ts +241 -0
- package/src/graph-manager/protocol/pure/v1/transformation/V1_ValueSpecificationSerializer.ts +113 -0
- package/src/graph-manager/protocol/pure/v1/transformation/V1_ValueSpecificationTransformer.ts +139 -0
- package/src/graph-manager/protocol/pure/v1/transformation/pureProtocol/V1_DSL_DataQuality_ProtocolHelper.ts +186 -0
- package/style/_data-quality-validation-builder.scss +1660 -0
- package/style/index.scss +67 -0
- package/tsconfig.json +137 -0
- package/tsconfig.package.json +9 -0
package/lib/package.json
ADDED
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@finos/legend-extension-dsl-data-quality",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "Legend extension for Data Quality",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"legend",
|
|
7
|
+
"legend-extension",
|
|
8
|
+
"dsl",
|
|
9
|
+
"dsl-data-quality"
|
|
10
|
+
],
|
|
11
|
+
"homepage": "https://github.com/finos/legend-studio/tree/master/packages/legend-extension-dsl-data-quality",
|
|
12
|
+
"bugs": {
|
|
13
|
+
"url": "https://github.com/finos/legend-studio/issues"
|
|
14
|
+
},
|
|
15
|
+
"repository": {
|
|
16
|
+
"type": "git",
|
|
17
|
+
"url": "https://github.com/finos/legend-studio.git",
|
|
18
|
+
"directory": "packages/legend-extension-dsl-data-quality"
|
|
19
|
+
},
|
|
20
|
+
"license": "Apache-2.0",
|
|
21
|
+
"sideEffects": false,
|
|
22
|
+
"type": "module",
|
|
23
|
+
"exports": {
|
|
24
|
+
"./graph": "./lib/graph-manager/index.js",
|
|
25
|
+
"./application-studio": "./lib/components/index.js",
|
|
26
|
+
"./lib/index.css": "./lib/index.css"
|
|
27
|
+
},
|
|
28
|
+
"scripts": {
|
|
29
|
+
"build": "yarn clean && yarn build:sass && yarn build:ts",
|
|
30
|
+
"build:sass": "cross-env INIT_CWD=$INIT_CWD node ../../scripts/workflow/buildSass.js",
|
|
31
|
+
"build:ts": "tsc --project ./tsconfig.build.json",
|
|
32
|
+
"clean": "npm-run-all clean:cache clean:lib",
|
|
33
|
+
"clean:cache": "rimraf \"build\"",
|
|
34
|
+
"clean:lib": "rimraf \"lib\"",
|
|
35
|
+
"dev": "npm-run-all --parallel dev:sass dev:ts",
|
|
36
|
+
"dev:sass": "sass style:lib --watch --load-path=../../node_modules/@finos/legend-art/scss",
|
|
37
|
+
"dev:ts": "tsc --watch --preserveWatchOutput",
|
|
38
|
+
"lint:js": "cross-env NODE_ENV=production eslint --cache --cache-location ./build/.eslintcache --report-unused-disable-directives --parser-options=project:\"./tsconfig.json\" \"./src/**/*.{js,ts,tsx}\"",
|
|
39
|
+
"publish:prepare": "node ../../scripts/release/preparePublishContent.js",
|
|
40
|
+
"publish:snapshot": "node ../../scripts/release/publishDevSnapshot.js",
|
|
41
|
+
"test": "jest",
|
|
42
|
+
"test:watch": "jest --watch"
|
|
43
|
+
},
|
|
44
|
+
"dependencies": {
|
|
45
|
+
"@finos/legend-application": "workspace:*",
|
|
46
|
+
"@finos/legend-application-studio": "workspace:*",
|
|
47
|
+
"@finos/legend-art": "workspace:*",
|
|
48
|
+
"@finos/legend-extension-dsl-data-space": "workspace:*",
|
|
49
|
+
"@finos/legend-graph": "workspace:*",
|
|
50
|
+
"@finos/legend-lego": "workspace:*",
|
|
51
|
+
"@finos/legend-query-builder": "workspace:*",
|
|
52
|
+
"@finos/legend-shared": "workspace:*",
|
|
53
|
+
"@finos/legend-storage": "workspace:*",
|
|
54
|
+
"@types/react": "18.3.3",
|
|
55
|
+
"@types/react-dom": "18.3.0",
|
|
56
|
+
"mobx": "6.12.3",
|
|
57
|
+
"mobx-react-lite": "4.0.7",
|
|
58
|
+
"react": "18.3.1",
|
|
59
|
+
"react-dnd": "16.0.1",
|
|
60
|
+
"react-dom": "18.3.1",
|
|
61
|
+
"serializr": "3.0.2"
|
|
62
|
+
},
|
|
63
|
+
"devDependencies": {
|
|
64
|
+
"@finos/legend-dev-utils": "workspace:*",
|
|
65
|
+
"@jest/globals": "29.7.0",
|
|
66
|
+
"cross-env": "7.0.3",
|
|
67
|
+
"eslint": "8.57.0",
|
|
68
|
+
"jest": "29.7.0",
|
|
69
|
+
"npm-run-all": "4.1.5",
|
|
70
|
+
"rimraf": "5.0.7",
|
|
71
|
+
"sass": "1.77.4",
|
|
72
|
+
"typescript": "5.4.5"
|
|
73
|
+
},
|
|
74
|
+
"peerDependencies": {
|
|
75
|
+
"react": "^18.0.0"
|
|
76
|
+
},
|
|
77
|
+
"publishConfig": {
|
|
78
|
+
"directory": "build/publishContent"
|
|
79
|
+
},
|
|
80
|
+
"extensions": {
|
|
81
|
+
"graphManagerPreset": "@finos/legend-graph-manager-preset-dsl-data-quality",
|
|
82
|
+
"applicationStudioPlugin": "@finos/legend-application-plugin-data-quality",
|
|
83
|
+
"pureGraphPlugin": "@finos/legend-pure-graph-plugin-dsl-data-quality",
|
|
84
|
+
"pureGraphManagerPlugin": "@finos/legend-pure-graph-manager-plugin-dsl-data-quality",
|
|
85
|
+
"pureProtocolProcessorPlugin": "@finos/legend-pure-protocol-processor-plugin-dsl-data-quality"
|
|
86
|
+
}
|
|
87
|
+
}
|
package/package.json
ADDED
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@finos/legend-extension-dsl-data-quality",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "Legend extension for Data Quality",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"legend",
|
|
7
|
+
"legend-extension",
|
|
8
|
+
"dsl",
|
|
9
|
+
"dsl-data-quality"
|
|
10
|
+
],
|
|
11
|
+
"homepage": "https://github.com/finos/legend-studio/tree/master/packages/legend-extension-dsl-data-quality",
|
|
12
|
+
"bugs": {
|
|
13
|
+
"url": "https://github.com/finos/legend-studio/issues"
|
|
14
|
+
},
|
|
15
|
+
"repository": {
|
|
16
|
+
"type": "git",
|
|
17
|
+
"url": "https://github.com/finos/legend-studio.git",
|
|
18
|
+
"directory": "packages/legend-extension-dsl-data-quality"
|
|
19
|
+
},
|
|
20
|
+
"license": "Apache-2.0",
|
|
21
|
+
"sideEffects": false,
|
|
22
|
+
"type": "module",
|
|
23
|
+
"exports": {
|
|
24
|
+
"./graph": "./lib/graph-manager/index.js",
|
|
25
|
+
"./application-studio": "./lib/components/index.js",
|
|
26
|
+
"./lib/index.css": "./lib/index.css"
|
|
27
|
+
},
|
|
28
|
+
"scripts": {
|
|
29
|
+
"build": "yarn clean && yarn build:sass && yarn build:ts",
|
|
30
|
+
"build:sass": "cross-env INIT_CWD=$INIT_CWD node ../../scripts/workflow/buildSass.js",
|
|
31
|
+
"build:ts": "tsc --project ./tsconfig.build.json",
|
|
32
|
+
"clean": "npm-run-all clean:cache clean:lib",
|
|
33
|
+
"clean:cache": "rimraf \"build\"",
|
|
34
|
+
"clean:lib": "rimraf \"lib\"",
|
|
35
|
+
"dev": "npm-run-all --parallel dev:sass dev:ts",
|
|
36
|
+
"dev:sass": "sass style:lib --watch --load-path=../../node_modules/@finos/legend-art/scss",
|
|
37
|
+
"dev:ts": "tsc --watch --preserveWatchOutput",
|
|
38
|
+
"lint:js": "cross-env NODE_ENV=production eslint --cache --cache-location ./build/.eslintcache --report-unused-disable-directives --parser-options=project:\"./tsconfig.json\" \"./src/**/*.{js,ts,tsx}\"",
|
|
39
|
+
"publish:prepare": "node ../../scripts/release/preparePublishContent.js",
|
|
40
|
+
"publish:snapshot": "node ../../scripts/release/publishDevSnapshot.js",
|
|
41
|
+
"test": "jest",
|
|
42
|
+
"test:watch": "jest --watch"
|
|
43
|
+
},
|
|
44
|
+
"dependencies": {
|
|
45
|
+
"@finos/legend-application": "15.1.13",
|
|
46
|
+
"@finos/legend-application-studio": "28.17.17",
|
|
47
|
+
"@finos/legend-art": "7.1.41",
|
|
48
|
+
"@finos/legend-extension-dsl-data-space": "10.3.34",
|
|
49
|
+
"@finos/legend-graph": "31.10.8",
|
|
50
|
+
"@finos/legend-lego": "1.2.44",
|
|
51
|
+
"@finos/legend-query-builder": "4.14.56",
|
|
52
|
+
"@finos/legend-shared": "10.0.43",
|
|
53
|
+
"@finos/legend-storage": "3.0.93",
|
|
54
|
+
"@types/react": "18.3.3",
|
|
55
|
+
"@types/react-dom": "18.3.0",
|
|
56
|
+
"mobx": "6.12.3",
|
|
57
|
+
"mobx-react-lite": "4.0.7",
|
|
58
|
+
"react": "18.3.1",
|
|
59
|
+
"react-dnd": "16.0.1",
|
|
60
|
+
"react-dom": "18.3.1",
|
|
61
|
+
"serializr": "3.0.2"
|
|
62
|
+
},
|
|
63
|
+
"devDependencies": {
|
|
64
|
+
"@finos/legend-dev-utils": "2.1.11",
|
|
65
|
+
"@jest/globals": "29.7.0",
|
|
66
|
+
"cross-env": "7.0.3",
|
|
67
|
+
"eslint": "8.57.0",
|
|
68
|
+
"jest": "29.7.0",
|
|
69
|
+
"npm-run-all": "4.1.5",
|
|
70
|
+
"rimraf": "5.0.7",
|
|
71
|
+
"sass": "1.77.4",
|
|
72
|
+
"typescript": "5.4.5"
|
|
73
|
+
},
|
|
74
|
+
"peerDependencies": {
|
|
75
|
+
"react": "^18.0.0"
|
|
76
|
+
},
|
|
77
|
+
"publishConfig": {
|
|
78
|
+
"directory": "build/publishContent"
|
|
79
|
+
},
|
|
80
|
+
"extensions": {
|
|
81
|
+
"graphManagerPreset": "@finos/legend-graph-manager-preset-dsl-data-quality",
|
|
82
|
+
"applicationStudioPlugin": "@finos/legend-application-plugin-data-quality",
|
|
83
|
+
"pureGraphPlugin": "@finos/legend-pure-graph-plugin-dsl-data-quality",
|
|
84
|
+
"pureGraphManagerPlugin": "@finos/legend-pure-graph-manager-plugin-dsl-data-quality",
|
|
85
|
+
"pureProtocolProcessorPlugin": "@finos/legend-pure-protocol-processor-plugin-dsl-data-quality"
|
|
86
|
+
}
|
|
87
|
+
}
|
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2020-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
|
+
|
|
17
|
+
import {
|
|
18
|
+
type EditorStore,
|
|
19
|
+
NewElementDriver,
|
|
20
|
+
} from '@finos/legend-application-studio';
|
|
21
|
+
import {
|
|
22
|
+
DataQualityClassValidationsConfiguration,
|
|
23
|
+
DataSpaceDataQualityExecutionContext,
|
|
24
|
+
MappingAndRuntimeDataQualityExecutionContext,
|
|
25
|
+
} from '../graph/metamodel/pure/packageableElements/data-quality/DataQualityValidationConfiguration.js';
|
|
26
|
+
import { action, computed, makeObservable, observable } from 'mobx';
|
|
27
|
+
import {
|
|
28
|
+
filterByType,
|
|
29
|
+
getNullableFirstEntry,
|
|
30
|
+
guaranteeNonNullable,
|
|
31
|
+
} from '@finos/legend-shared';
|
|
32
|
+
import {
|
|
33
|
+
type Mapping,
|
|
34
|
+
type PackageableRuntime,
|
|
35
|
+
getMappingCompatibleRuntimes,
|
|
36
|
+
PackageableElementExplicitReference,
|
|
37
|
+
} from '@finos/legend-graph';
|
|
38
|
+
import {
|
|
39
|
+
type PackageableElementOption,
|
|
40
|
+
buildElementOption,
|
|
41
|
+
} from '@finos/legend-lego/graph-editor';
|
|
42
|
+
import { DataSpace } from '@finos/legend-extension-dsl-data-space/graph';
|
|
43
|
+
|
|
44
|
+
export type RuntimeOption = {
|
|
45
|
+
label: string;
|
|
46
|
+
value: PackageableRuntime | undefined;
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
export enum ELEMENT_CREATION_BASIS {
|
|
50
|
+
MAPPING_RUNTIME_BASED = 'Mapping/Runtime',
|
|
51
|
+
DATASPACE_BASED = 'DataSpace',
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
export class DataQuality_ClassElementDriver extends NewElementDriver<DataQualityClassValidationsConfiguration> {
|
|
55
|
+
dqElementCreationBasis: ELEMENT_CREATION_BASIS;
|
|
56
|
+
dataSpaceSelected: PackageableElementOption<DataSpace> | undefined;
|
|
57
|
+
mappingSelected: PackageableElementOption<Mapping> | undefined;
|
|
58
|
+
runtimeSelected: RuntimeOption | undefined;
|
|
59
|
+
|
|
60
|
+
constructor(editorStore: EditorStore) {
|
|
61
|
+
super(editorStore);
|
|
62
|
+
|
|
63
|
+
makeObservable(this, {
|
|
64
|
+
dataSpaceSelected: observable,
|
|
65
|
+
mappingSelected: observable,
|
|
66
|
+
runtimeSelected: observable,
|
|
67
|
+
dqElementCreationBasis: observable,
|
|
68
|
+
setDataSpaceSelected: action,
|
|
69
|
+
setMappingSelected: action,
|
|
70
|
+
setRuntimeSelected: action,
|
|
71
|
+
setDqElementCreationBasis: action,
|
|
72
|
+
runtimeOptions: computed,
|
|
73
|
+
});
|
|
74
|
+
this.dqElementCreationBasis = ELEMENT_CREATION_BASIS.DATASPACE_BASED;
|
|
75
|
+
this.dataSpaceSelected = getNullableFirstEntry(this.dataSpaceOptions);
|
|
76
|
+
this.mappingSelected = getNullableFirstEntry(this.mappingOptions);
|
|
77
|
+
this.runtimeSelected = getNullableFirstEntry(this.runtimeOptions);
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
get dataSpaceOptions(): PackageableElementOption<DataSpace>[] {
|
|
81
|
+
return this.editorStore.graphManagerState.graph.allOwnElements
|
|
82
|
+
.filter(filterByType(DataSpace))
|
|
83
|
+
.map(buildElementOption);
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
get mappingOptions(): PackageableElementOption<Mapping>[] {
|
|
87
|
+
return this.editorStore.graphManagerState.usableMappings.map(
|
|
88
|
+
buildElementOption,
|
|
89
|
+
);
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
get compatibleMappingRuntimes(): PackageableRuntime[] {
|
|
93
|
+
return this.mappingSelected?.value
|
|
94
|
+
? getMappingCompatibleRuntimes(
|
|
95
|
+
this.mappingSelected.value,
|
|
96
|
+
this.editorStore.graphManagerState.usableRuntimes,
|
|
97
|
+
)
|
|
98
|
+
: [];
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
get runtimeOptions(): RuntimeOption[] {
|
|
102
|
+
return this.compatibleMappingRuntimes.map((runtime) =>
|
|
103
|
+
buildElementOption(runtime),
|
|
104
|
+
);
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
setDataSpaceSelected(
|
|
108
|
+
dataSpace: PackageableElementOption<DataSpace> | undefined,
|
|
109
|
+
): void {
|
|
110
|
+
this.dataSpaceSelected = dataSpace;
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
setMappingSelected(
|
|
114
|
+
mappingSelected: PackageableElementOption<Mapping> | undefined,
|
|
115
|
+
): void {
|
|
116
|
+
this.mappingSelected = mappingSelected;
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
setRuntimeSelected(runtimeSelected: RuntimeOption | undefined): void {
|
|
120
|
+
this.runtimeSelected = runtimeSelected;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
setDqElementCreationBasis(
|
|
124
|
+
dqElementCreationBasis: ELEMENT_CREATION_BASIS,
|
|
125
|
+
): void {
|
|
126
|
+
this.dqElementCreationBasis = dqElementCreationBasis;
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
get isValid(): boolean {
|
|
130
|
+
if (
|
|
131
|
+
this.dqElementCreationBasis === ELEMENT_CREATION_BASIS.DATASPACE_BASED
|
|
132
|
+
) {
|
|
133
|
+
return Boolean(this.dataSpaceSelected);
|
|
134
|
+
}
|
|
135
|
+
return Boolean(this.mappingSelected && this.runtimeSelected);
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
createElement(name: string): DataQualityClassValidationsConfiguration {
|
|
139
|
+
const dataQualityConstraintsConfiguration =
|
|
140
|
+
new DataQualityClassValidationsConfiguration(name);
|
|
141
|
+
if (
|
|
142
|
+
this.dqElementCreationBasis === ELEMENT_CREATION_BASIS.DATASPACE_BASED
|
|
143
|
+
) {
|
|
144
|
+
const dataSpaceToSet = PackageableElementExplicitReference.create(
|
|
145
|
+
this.dataSpaceSelected!.value,
|
|
146
|
+
);
|
|
147
|
+
const dataSpaceExecutionContext =
|
|
148
|
+
new DataSpaceDataQualityExecutionContext();
|
|
149
|
+
dataSpaceExecutionContext.context =
|
|
150
|
+
dataSpaceToSet.value.defaultExecutionContext.name;
|
|
151
|
+
dataSpaceExecutionContext.dataSpace = dataSpaceToSet;
|
|
152
|
+
dataQualityConstraintsConfiguration.context = dataSpaceExecutionContext;
|
|
153
|
+
dataQualityConstraintsConfiguration.dataQualityRootGraphFetchTree =
|
|
154
|
+
undefined;
|
|
155
|
+
} else {
|
|
156
|
+
if (this.mappingSelected && this.runtimeSelected) {
|
|
157
|
+
const mappingOption = guaranteeNonNullable(this.mappingSelected);
|
|
158
|
+
const _mapping = mappingOption.value;
|
|
159
|
+
const mapping = PackageableElementExplicitReference.create(_mapping);
|
|
160
|
+
const runtimeOption = guaranteeNonNullable(this.runtimeSelected.value);
|
|
161
|
+
const runtimeValue =
|
|
162
|
+
PackageableElementExplicitReference.create(runtimeOption);
|
|
163
|
+
const mappingAndRuntimeExecutionContext =
|
|
164
|
+
new MappingAndRuntimeDataQualityExecutionContext();
|
|
165
|
+
mappingAndRuntimeExecutionContext.mapping = mapping;
|
|
166
|
+
mappingAndRuntimeExecutionContext.runtime = runtimeValue;
|
|
167
|
+
dataQualityConstraintsConfiguration.context =
|
|
168
|
+
mappingAndRuntimeExecutionContext;
|
|
169
|
+
}
|
|
170
|
+
dataQualityConstraintsConfiguration.dataQualityRootGraphFetchTree =
|
|
171
|
+
undefined;
|
|
172
|
+
}
|
|
173
|
+
return dataQualityConstraintsConfiguration;
|
|
174
|
+
}
|
|
175
|
+
}
|
|
@@ -0,0 +1,220 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2020-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
|
+
|
|
17
|
+
import packageJson from '../../package.json';
|
|
18
|
+
import {
|
|
19
|
+
type DSL_LegendStudioApplicationPlugin_Extension,
|
|
20
|
+
type ElementClassifier,
|
|
21
|
+
type ElementEditorRenderer,
|
|
22
|
+
type ElementEditorStateCreator,
|
|
23
|
+
type ElementIconGetter,
|
|
24
|
+
type ElementTypeLabelGetter,
|
|
25
|
+
type NewElementDriverCreator,
|
|
26
|
+
type NewElementDriverEditorRenderer,
|
|
27
|
+
type NewElementFromStateCreator,
|
|
28
|
+
type ElementEditorState,
|
|
29
|
+
type NewElementDriver,
|
|
30
|
+
type EditorStore,
|
|
31
|
+
type NewElementState,
|
|
32
|
+
LegendStudioApplicationPlugin,
|
|
33
|
+
PACKAGEABLE_ELEMENT_GROUP_BY_CATEGORY,
|
|
34
|
+
} from '@finos/legend-application-studio';
|
|
35
|
+
import type { PackageableElement } from '@finos/legend-graph';
|
|
36
|
+
import {
|
|
37
|
+
DataQualityClassValidationsConfiguration,
|
|
38
|
+
DataQualityServiceValidationConfiguration,
|
|
39
|
+
} from '../graph/metamodel/pure/packageableElements/data-quality/DataQualityValidationConfiguration.js';
|
|
40
|
+
import { EyeIcon } from '@finos/legend-art';
|
|
41
|
+
import { DataQualityClassValidationEditor } from './DataQualityClassValidationEditor.js';
|
|
42
|
+
import { DataQuality_ClassElementDriver } from './DSL_DataQuality_ClassElementDriver.js';
|
|
43
|
+
import { NewDataQualityServiceValidationElementEditor } from './DSL_NewDataQualityServiceValidationElement.js';
|
|
44
|
+
import { DataQuality_ServiceElementDriver } from './DSL_DataQuality_ServiceElementDriver.js';
|
|
45
|
+
import { DataQualityServiceValidationEditor } from './DataQualityServiceValidationEditor.js';
|
|
46
|
+
import { DataQualityClassValidationState } from './states/DataQualityClassValidationState.js';
|
|
47
|
+
import { NewDataQualityClassValidationElementEditor } from './DSL_NewDataQualityClassValidationElement.js';
|
|
48
|
+
import { type ReactNode } from 'react';
|
|
49
|
+
import { DataQualityServiceValidationState } from './states/DataQualityServiceValidationState.js';
|
|
50
|
+
|
|
51
|
+
const DATA_QUALITY_ELEMENT_TYPE = 'DATAQUALITY';
|
|
52
|
+
const DATA_QUALITY_SERVICE_VALIDATION_ELEMENT_TYPE =
|
|
53
|
+
'DATAQUALITYSERVICEVALIDATION';
|
|
54
|
+
|
|
55
|
+
const DATA_QUALITY_ELEMENT_TYPE_LABEL = 'Data Quality Class Validation';
|
|
56
|
+
const DATA_QUALITY_SERVICE_VALIDATION_TYPE_LABEL =
|
|
57
|
+
'Data Quality Service Validation';
|
|
58
|
+
|
|
59
|
+
export class DSL_DataQuality_LegendStudioApplicationPlugin
|
|
60
|
+
extends LegendStudioApplicationPlugin
|
|
61
|
+
implements DSL_LegendStudioApplicationPlugin_Extension
|
|
62
|
+
{
|
|
63
|
+
constructor() {
|
|
64
|
+
super(packageJson.extensions.applicationStudioPlugin, packageJson.version);
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
getExtraSupportedElementTypes(): string[] {
|
|
68
|
+
return [
|
|
69
|
+
DATA_QUALITY_ELEMENT_TYPE,
|
|
70
|
+
DATA_QUALITY_SERVICE_VALIDATION_ELEMENT_TYPE,
|
|
71
|
+
];
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
getExtraSupportedElementTypesWithCategory(): Map<string, string[]> {
|
|
75
|
+
const elementTypeswithCategory = new Map<string, string[]>();
|
|
76
|
+
elementTypeswithCategory.set(PACKAGEABLE_ELEMENT_GROUP_BY_CATEGORY.OTHER, [
|
|
77
|
+
DATA_QUALITY_ELEMENT_TYPE,
|
|
78
|
+
// DATA_QUALITY_SERVICE_VALIDATION_ELEMENT_TYPE,
|
|
79
|
+
]);
|
|
80
|
+
return elementTypeswithCategory;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
getExtraElementClassifiers(): ElementClassifier[] {
|
|
84
|
+
return [
|
|
85
|
+
(element: PackageableElement): string | undefined => {
|
|
86
|
+
if (element instanceof DataQualityClassValidationsConfiguration) {
|
|
87
|
+
return DATA_QUALITY_ELEMENT_TYPE;
|
|
88
|
+
}
|
|
89
|
+
if (element instanceof DataQualityServiceValidationConfiguration) {
|
|
90
|
+
return DATA_QUALITY_SERVICE_VALIDATION_ELEMENT_TYPE;
|
|
91
|
+
}
|
|
92
|
+
return undefined;
|
|
93
|
+
},
|
|
94
|
+
];
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
getExtraElementIconGetters(): ElementIconGetter[] {
|
|
98
|
+
return [
|
|
99
|
+
(type: string): React.ReactNode | undefined => {
|
|
100
|
+
if (type === DATA_QUALITY_ELEMENT_TYPE) {
|
|
101
|
+
return (
|
|
102
|
+
<div className="icon icon--dataQuality">
|
|
103
|
+
<EyeIcon />
|
|
104
|
+
</div>
|
|
105
|
+
);
|
|
106
|
+
}
|
|
107
|
+
if (type === DATA_QUALITY_SERVICE_VALIDATION_ELEMENT_TYPE) {
|
|
108
|
+
return (
|
|
109
|
+
<div className="icon icon--dataQuality">
|
|
110
|
+
<EyeIcon />
|
|
111
|
+
</div>
|
|
112
|
+
);
|
|
113
|
+
}
|
|
114
|
+
return undefined;
|
|
115
|
+
},
|
|
116
|
+
];
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
getExtraElementTypeLabelGetters(): ElementTypeLabelGetter[] {
|
|
120
|
+
return [
|
|
121
|
+
(type: string): string | undefined => {
|
|
122
|
+
if (type === DATA_QUALITY_ELEMENT_TYPE) {
|
|
123
|
+
return DATA_QUALITY_ELEMENT_TYPE_LABEL;
|
|
124
|
+
}
|
|
125
|
+
if (type === DATA_QUALITY_SERVICE_VALIDATION_ELEMENT_TYPE) {
|
|
126
|
+
return DATA_QUALITY_SERVICE_VALIDATION_TYPE_LABEL;
|
|
127
|
+
}
|
|
128
|
+
return undefined;
|
|
129
|
+
},
|
|
130
|
+
];
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
getExtraNewElementFromStateCreators(): NewElementFromStateCreator[] {
|
|
134
|
+
return [
|
|
135
|
+
(
|
|
136
|
+
type: string,
|
|
137
|
+
name: string,
|
|
138
|
+
state: NewElementState,
|
|
139
|
+
): PackageableElement | undefined => {
|
|
140
|
+
if (type === DATA_QUALITY_ELEMENT_TYPE) {
|
|
141
|
+
return state
|
|
142
|
+
.getNewElementDriver(DataQuality_ClassElementDriver)
|
|
143
|
+
.createElement(name);
|
|
144
|
+
}
|
|
145
|
+
if (type === DATA_QUALITY_SERVICE_VALIDATION_ELEMENT_TYPE) {
|
|
146
|
+
return state
|
|
147
|
+
.getNewElementDriver(DataQuality_ServiceElementDriver)
|
|
148
|
+
.createElement(name);
|
|
149
|
+
}
|
|
150
|
+
return undefined;
|
|
151
|
+
},
|
|
152
|
+
];
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
getExtraElementEditorRenderers(): ElementEditorRenderer[] {
|
|
156
|
+
return [
|
|
157
|
+
(elementEditorState: ElementEditorState): React.ReactNode | undefined => {
|
|
158
|
+
if (elementEditorState instanceof DataQualityServiceValidationState) {
|
|
159
|
+
return (
|
|
160
|
+
<DataQualityServiceValidationEditor key={elementEditorState.uuid} />
|
|
161
|
+
);
|
|
162
|
+
}
|
|
163
|
+
if (elementEditorState instanceof DataQualityClassValidationState) {
|
|
164
|
+
return (
|
|
165
|
+
<DataQualityClassValidationEditor key={elementEditorState.uuid} />
|
|
166
|
+
);
|
|
167
|
+
}
|
|
168
|
+
return undefined;
|
|
169
|
+
},
|
|
170
|
+
];
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
getExtraElementEditorStateCreators(): ElementEditorStateCreator[] {
|
|
174
|
+
return [
|
|
175
|
+
(
|
|
176
|
+
editorStore: EditorStore,
|
|
177
|
+
element: PackageableElement,
|
|
178
|
+
): ElementEditorState | undefined => {
|
|
179
|
+
if (element instanceof DataQualityClassValidationsConfiguration) {
|
|
180
|
+
return new DataQualityClassValidationState(editorStore, element);
|
|
181
|
+
}
|
|
182
|
+
if (element instanceof DataQualityServiceValidationConfiguration) {
|
|
183
|
+
return new DataQualityServiceValidationState(editorStore, element);
|
|
184
|
+
}
|
|
185
|
+
return undefined;
|
|
186
|
+
},
|
|
187
|
+
];
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
getExtraNewElementDriverEditorRenderers(): NewElementDriverEditorRenderer[] {
|
|
191
|
+
return [
|
|
192
|
+
(type: string): ReactNode | undefined => {
|
|
193
|
+
if (type === DATA_QUALITY_ELEMENT_TYPE) {
|
|
194
|
+
return <NewDataQualityClassValidationElementEditor />;
|
|
195
|
+
}
|
|
196
|
+
if (type === DATA_QUALITY_SERVICE_VALIDATION_ELEMENT_TYPE) {
|
|
197
|
+
return <NewDataQualityServiceValidationElementEditor />;
|
|
198
|
+
}
|
|
199
|
+
return undefined;
|
|
200
|
+
},
|
|
201
|
+
];
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
getExtraNewElementDriverCreators(): NewElementDriverCreator[] {
|
|
205
|
+
return [
|
|
206
|
+
(
|
|
207
|
+
editorStore: EditorStore,
|
|
208
|
+
type: string,
|
|
209
|
+
): NewElementDriver<PackageableElement> | undefined => {
|
|
210
|
+
if (type === DATA_QUALITY_ELEMENT_TYPE) {
|
|
211
|
+
return new DataQuality_ClassElementDriver(editorStore);
|
|
212
|
+
}
|
|
213
|
+
if (type === DATA_QUALITY_SERVICE_VALIDATION_ELEMENT_TYPE) {
|
|
214
|
+
return new DataQuality_ServiceElementDriver(editorStore);
|
|
215
|
+
}
|
|
216
|
+
return undefined;
|
|
217
|
+
},
|
|
218
|
+
];
|
|
219
|
+
}
|
|
220
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2020-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 { DataQualityState } from './states/DataQualityState.js';
|
|
17
|
+
import type {
|
|
18
|
+
EditorExtensionState,
|
|
19
|
+
EditorStore,
|
|
20
|
+
ElementEditorState,
|
|
21
|
+
LegendStudioApplicationPlugin,
|
|
22
|
+
} from '@finos/legend-application-studio';
|
|
23
|
+
|
|
24
|
+
export type ExtensionStateBuilder = (
|
|
25
|
+
editorStore: EditorStore,
|
|
26
|
+
dataQualityState: DataQualityState,
|
|
27
|
+
) => EditorExtensionState | undefined;
|
|
28
|
+
|
|
29
|
+
export type ComponentRenderer = (
|
|
30
|
+
tabName: string,
|
|
31
|
+
elementEditorState: ElementEditorState,
|
|
32
|
+
) => React.ReactNode | undefined;
|
|
33
|
+
|
|
34
|
+
export interface DSL_DataQuality_LegendStudioPlugin_Extension
|
|
35
|
+
extends LegendStudioApplicationPlugin {
|
|
36
|
+
getExtensionStates?(): ExtensionStateBuilder[];
|
|
37
|
+
getComponentRenderers?(): ComponentRenderer[];
|
|
38
|
+
getAllTabs?(): (() => string[])[];
|
|
39
|
+
}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2020-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
|
+
|
|
17
|
+
import {
|
|
18
|
+
type EditorStore,
|
|
19
|
+
NewElementDriver,
|
|
20
|
+
} from '@finos/legend-application-studio';
|
|
21
|
+
import { DataQualityServiceValidationConfiguration } from '../graph/metamodel/pure/packageableElements/data-quality/DataQualityValidationConfiguration.js';
|
|
22
|
+
import { action, makeObservable, observable } from 'mobx';
|
|
23
|
+
import type { Service } from '@finos/legend-graph';
|
|
24
|
+
import {
|
|
25
|
+
type PackageableElementOption,
|
|
26
|
+
buildElementOption,
|
|
27
|
+
} from '@finos/legend-lego/graph-editor';
|
|
28
|
+
|
|
29
|
+
export class DataQuality_ServiceElementDriver extends NewElementDriver<DataQualityServiceValidationConfiguration> {
|
|
30
|
+
serviceSelected: PackageableElementOption<Service> | undefined;
|
|
31
|
+
|
|
32
|
+
constructor(editorStore: EditorStore) {
|
|
33
|
+
super(editorStore);
|
|
34
|
+
|
|
35
|
+
makeObservable(this, {
|
|
36
|
+
serviceSelected: observable,
|
|
37
|
+
setServiceSelected: action,
|
|
38
|
+
});
|
|
39
|
+
|
|
40
|
+
this.serviceSelected =
|
|
41
|
+
editorStore.graphManagerState.usableServices.map(buildElementOption)[0];
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
setServiceSelected(
|
|
45
|
+
serviceSelected: PackageableElementOption<Service> | undefined,
|
|
46
|
+
): void {
|
|
47
|
+
this.serviceSelected = serviceSelected;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
get isValid(): boolean {
|
|
51
|
+
return Boolean(this.serviceSelected);
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
createElement(name: string): DataQualityServiceValidationConfiguration {
|
|
55
|
+
return new DataQualityServiceValidationConfiguration(name);
|
|
56
|
+
}
|
|
57
|
+
}
|