@finos/legend-extension-dsl-data-quality 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|
+
}
|