@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.
Files changed (260) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +1 -0
  3. package/lib/components/DSL_DataQuality_ClassElementDriver.d.ts +46 -0
  4. package/lib/components/DSL_DataQuality_ClassElementDriver.d.ts.map +1 -0
  5. package/lib/components/DSL_DataQuality_ClassElementDriver.js +116 -0
  6. package/lib/components/DSL_DataQuality_ClassElementDriver.js.map +1 -0
  7. package/lib/components/DSL_DataQuality_LegendStudioApplicationPlugin.d.ts +30 -0
  8. package/lib/components/DSL_DataQuality_LegendStudioApplicationPlugin.d.ts.map +1 -0
  9. package/lib/components/DSL_DataQuality_LegendStudioApplicationPlugin.js +161 -0
  10. package/lib/components/DSL_DataQuality_LegendStudioApplicationPlugin.js.map +1 -0
  11. package/lib/components/DSL_DataQuality_LegendStudioPlugin_Extension.d.ts +25 -0
  12. package/lib/components/DSL_DataQuality_LegendStudioPlugin_Extension.d.ts.map +1 -0
  13. package/lib/components/DSL_DataQuality_LegendStudioPlugin_Extension.js +2 -0
  14. package/lib/components/DSL_DataQuality_LegendStudioPlugin_Extension.js.map +1 -0
  15. package/lib/components/DSL_DataQuality_ServiceElementDriver.d.ts +27 -0
  16. package/lib/components/DSL_DataQuality_ServiceElementDriver.d.ts.map +1 -0
  17. package/lib/components/DSL_DataQuality_ServiceElementDriver.js +41 -0
  18. package/lib/components/DSL_DataQuality_ServiceElementDriver.js.map +1 -0
  19. package/lib/components/DSL_NewDataQualityClassValidationElement.d.ts +19 -0
  20. package/lib/components/DSL_NewDataQualityClassValidationElement.d.ts.map +1 -0
  21. package/lib/components/DSL_NewDataQualityClassValidationElement.js +64 -0
  22. package/lib/components/DSL_NewDataQualityClassValidationElement.js.map +1 -0
  23. package/lib/components/DSL_NewDataQualityServiceValidationElement.d.ts +19 -0
  24. package/lib/components/DSL_NewDataQualityServiceValidationElement.d.ts.map +1 -0
  25. package/lib/components/DSL_NewDataQualityServiceValidationElement.js +41 -0
  26. package/lib/components/DSL_NewDataQualityServiceValidationElement.js.map +1 -0
  27. package/lib/components/DataQualityClassValidationEditor.d.ts +19 -0
  28. package/lib/components/DataQualityClassValidationEditor.d.ts.map +1 -0
  29. package/lib/components/DataQualityClassValidationEditor.js +29 -0
  30. package/lib/components/DataQualityClassValidationEditor.js.map +1 -0
  31. package/lib/components/DataQualityConstraintsSelection.d.ts +39 -0
  32. package/lib/components/DataQualityConstraintsSelection.d.ts.map +1 -0
  33. package/lib/components/DataQualityConstraintsSelection.js +133 -0
  34. package/lib/components/DataQualityConstraintsSelection.js.map +1 -0
  35. package/lib/components/DataQualityDataSpaceBuilder.d.ts +22 -0
  36. package/lib/components/DataQualityDataSpaceBuilder.d.ts.map +1 -0
  37. package/lib/components/DataQualityDataSpaceBuilder.js +101 -0
  38. package/lib/components/DataQualityDataSpaceBuilder.js.map +1 -0
  39. package/lib/components/DataQualityExplorerPanel.d.ts +29 -0
  40. package/lib/components/DataQualityExplorerPanel.d.ts.map +1 -0
  41. package/lib/components/DataQualityExplorerPanel.js +185 -0
  42. package/lib/components/DataQualityExplorerPanel.js.map +1 -0
  43. package/lib/components/DataQualityFilterPanel.d.ts +24 -0
  44. package/lib/components/DataQualityFilterPanel.d.ts.map +1 -0
  45. package/lib/components/DataQualityFilterPanel.js +32 -0
  46. package/lib/components/DataQualityFilterPanel.js.map +1 -0
  47. package/lib/components/DataQualityMappingAndRuntimeBuilder.d.ts +22 -0
  48. package/lib/components/DataQualityMappingAndRuntimeBuilder.d.ts.map +1 -0
  49. package/lib/components/DataQualityMappingAndRuntimeBuilder.js +98 -0
  50. package/lib/components/DataQualityMappingAndRuntimeBuilder.js.map +1 -0
  51. package/lib/components/DataQualityResultPanel.d.ts +22 -0
  52. package/lib/components/DataQualityResultPanel.d.ts.map +1 -0
  53. package/lib/components/DataQualityResultPanel.js +110 -0
  54. package/lib/components/DataQualityResultPanel.js.map +1 -0
  55. package/lib/components/DataQualityResultValues.d.ts +24 -0
  56. package/lib/components/DataQualityResultValues.d.ts.map +1 -0
  57. package/lib/components/DataQualityResultValues.js +31 -0
  58. package/lib/components/DataQualityResultValues.js.map +1 -0
  59. package/lib/components/DataQualityServiceValidationEditor.d.ts +19 -0
  60. package/lib/components/DataQualityServiceValidationEditor.d.ts.map +1 -0
  61. package/lib/components/DataQualityServiceValidationEditor.js +29 -0
  62. package/lib/components/DataQualityServiceValidationEditor.js.map +1 -0
  63. package/lib/components/DataQualitySideBar.d.ts +40 -0
  64. package/lib/components/DataQualitySideBar.d.ts.map +1 -0
  65. package/lib/components/DataQualitySideBar.js +78 -0
  66. package/lib/components/DataQualitySideBar.js.map +1 -0
  67. package/lib/components/DataQualityStructuralValidationsPanel.d.ts +22 -0
  68. package/lib/components/DataQualityStructuralValidationsPanel.d.ts.map +1 -0
  69. package/lib/components/DataQualityStructuralValidationsPanel.js +50 -0
  70. package/lib/components/DataQualityStructuralValidationsPanel.js.map +1 -0
  71. package/lib/components/DataQualityTabs.d.ts +22 -0
  72. package/lib/components/DataQualityTabs.d.ts.map +1 -0
  73. package/lib/components/DataQualityTabs.js +58 -0
  74. package/lib/components/DataQualityTabs.js.map +1 -0
  75. package/lib/components/DataQualityValidationEditor.d.ts +23 -0
  76. package/lib/components/DataQualityValidationEditor.d.ts.map +1 -0
  77. package/lib/components/DataQualityValidationEditor.js +24 -0
  78. package/lib/components/DataQualityValidationEditor.js.map +1 -0
  79. package/lib/components/constants/DataQualityConstants.d.ts +24 -0
  80. package/lib/components/constants/DataQualityConstants.d.ts.map +1 -0
  81. package/lib/components/constants/DataQualityConstants.js +25 -0
  82. package/lib/components/constants/DataQualityConstants.js.map +1 -0
  83. package/lib/components/index.d.ts +19 -0
  84. package/lib/components/index.d.ts.map +1 -0
  85. package/lib/components/index.js +19 -0
  86. package/lib/components/index.js.map +1 -0
  87. package/lib/components/states/ConstraintState.d.ts +30 -0
  88. package/lib/components/states/ConstraintState.d.ts.map +1 -0
  89. package/lib/components/states/ConstraintState.js +55 -0
  90. package/lib/components/states/ConstraintState.js.map +1 -0
  91. package/lib/components/states/DataQualityClassValidationState.d.ts +43 -0
  92. package/lib/components/states/DataQualityClassValidationState.d.ts.map +1 -0
  93. package/lib/components/states/DataQualityClassValidationState.js +162 -0
  94. package/lib/components/states/DataQualityClassValidationState.js.map +1 -0
  95. package/lib/components/states/DataQualityGraphFetchTreeState.d.ts +34 -0
  96. package/lib/components/states/DataQualityGraphFetchTreeState.d.ts.map +1 -0
  97. package/lib/components/states/DataQualityGraphFetchTreeState.js +70 -0
  98. package/lib/components/states/DataQualityGraphFetchTreeState.js.map +1 -0
  99. package/lib/components/states/DataQualityQueryBuilderState.d.ts +19 -0
  100. package/lib/components/states/DataQualityQueryBuilderState.d.ts.map +1 -0
  101. package/lib/components/states/DataQualityQueryBuilderState.js +19 -0
  102. package/lib/components/states/DataQualityQueryBuilderState.js.map +1 -0
  103. package/lib/components/states/DataQualityResultState.d.ts +44 -0
  104. package/lib/components/states/DataQualityResultState.d.ts.map +1 -0
  105. package/lib/components/states/DataQualityResultState.js +154 -0
  106. package/lib/components/states/DataQualityResultState.js.map +1 -0
  107. package/lib/components/states/DataQualityServiceValidationState.d.ts +25 -0
  108. package/lib/components/states/DataQualityServiceValidationState.d.ts.map +1 -0
  109. package/lib/components/states/DataQualityServiceValidationState.js +33 -0
  110. package/lib/components/states/DataQualityServiceValidationState.js.map +1 -0
  111. package/lib/components/states/DataQualityState.d.ts +67 -0
  112. package/lib/components/states/DataQualityState.d.ts.map +1 -0
  113. package/lib/components/states/DataQualityState.js +204 -0
  114. package/lib/components/states/DataQualityState.js.map +1 -0
  115. package/lib/components/utils/DataQualityGraphFetchTreeUtil.d.ts +51 -0
  116. package/lib/components/utils/DataQualityGraphFetchTreeUtil.d.ts.map +1 -0
  117. package/lib/components/utils/DataQualityGraphFetchTreeUtil.js +321 -0
  118. package/lib/components/utils/DataQualityGraphFetchTreeUtil.js.map +1 -0
  119. package/lib/graph/metamodel/DSL_DataQuality_HashUtils.d.ts +29 -0
  120. package/lib/graph/metamodel/DSL_DataQuality_HashUtils.d.ts.map +1 -0
  121. package/lib/graph/metamodel/DSL_DataQuality_HashUtils.js +30 -0
  122. package/lib/graph/metamodel/DSL_DataQuality_HashUtils.js.map +1 -0
  123. package/lib/graph/metamodel/DSL_DataQuality_PureGraphPlugin.d.ts +22 -0
  124. package/lib/graph/metamodel/DSL_DataQuality_PureGraphPlugin.d.ts.map +1 -0
  125. package/lib/graph/metamodel/DSL_DataQuality_PureGraphPlugin.js +31 -0
  126. package/lib/graph/metamodel/DSL_DataQuality_PureGraphPlugin.js.map +1 -0
  127. package/lib/graph/metamodel/pure/packageableElements/data-quality/DataQualityGraphFetchTree.d.ts +26 -0
  128. package/lib/graph/metamodel/pure/packageableElements/data-quality/DataQualityGraphFetchTree.d.ts.map +1 -0
  129. package/lib/graph/metamodel/pure/packageableElements/data-quality/DataQualityGraphFetchTree.js +44 -0
  130. package/lib/graph/metamodel/pure/packageableElements/data-quality/DataQualityGraphFetchTree.js.map +1 -0
  131. package/lib/graph/metamodel/pure/packageableElements/data-quality/DataQualityValidationConfiguration.d.ts +47 -0
  132. package/lib/graph/metamodel/pure/packageableElements/data-quality/DataQualityValidationConfiguration.d.ts.map +1 -0
  133. package/lib/graph/metamodel/pure/packageableElements/data-quality/DataQualityValidationConfiguration.js +75 -0
  134. package/lib/graph/metamodel/pure/packageableElements/data-quality/DataQualityValidationConfiguration.js.map +1 -0
  135. package/lib/graph-manager/DSL_DataQuality_GraphManagerHelper.d.ts +20 -0
  136. package/lib/graph-manager/DSL_DataQuality_GraphManagerHelper.d.ts.map +1 -0
  137. package/lib/graph-manager/DSL_DataQuality_GraphManagerHelper.js +20 -0
  138. package/lib/graph-manager/DSL_DataQuality_GraphManagerHelper.js.map +1 -0
  139. package/lib/graph-manager/DSL_DataQuality_GraphManagerPreset.d.ts +20 -0
  140. package/lib/graph-manager/DSL_DataQuality_GraphManagerPreset.d.ts.map +1 -0
  141. package/lib/graph-manager/DSL_DataQuality_GraphManagerPreset.js +30 -0
  142. package/lib/graph-manager/DSL_DataQuality_GraphManagerPreset.js.map +1 -0
  143. package/lib/graph-manager/DSL_DataQuality_GraphModifierHelper.d.ts +26 -0
  144. package/lib/graph-manager/DSL_DataQuality_GraphModifierHelper.d.ts.map +1 -0
  145. package/lib/graph-manager/DSL_DataQuality_GraphModifierHelper.js +57 -0
  146. package/lib/graph-manager/DSL_DataQuality_GraphModifierHelper.js.map +1 -0
  147. package/lib/graph-manager/DSL_DataQuality_PureGraphManagerPlugin.d.ts +7 -0
  148. package/lib/graph-manager/DSL_DataQuality_PureGraphManagerPlugin.d.ts.map +1 -0
  149. package/lib/graph-manager/DSL_DataQuality_PureGraphManagerPlugin.js +42 -0
  150. package/lib/graph-manager/DSL_DataQuality_PureGraphManagerPlugin.js.map +1 -0
  151. package/lib/graph-manager/action/changeDetection/DSL_DataQuality_ObserverHelper.d.ts +24 -0
  152. package/lib/graph-manager/action/changeDetection/DSL_DataQuality_ObserverHelper.d.ts.map +1 -0
  153. package/lib/graph-manager/action/changeDetection/DSL_DataQuality_ObserverHelper.js +98 -0
  154. package/lib/graph-manager/action/changeDetection/DSL_DataQuality_ObserverHelper.js.map +1 -0
  155. package/lib/graph-manager/index.d.ts +19 -0
  156. package/lib/graph-manager/index.d.ts.map +1 -0
  157. package/lib/graph-manager/index.js +19 -0
  158. package/lib/graph-manager/index.js.map +1 -0
  159. package/lib/graph-manager/protocol/pure/DSL_DataQuality_PureGraphManagerExtension.d.ts +27 -0
  160. package/lib/graph-manager/protocol/pure/DSL_DataQuality_PureGraphManagerExtension.d.ts.map +1 -0
  161. package/lib/graph-manager/protocol/pure/DSL_DataQuality_PureGraphManagerExtension.js +21 -0
  162. package/lib/graph-manager/protocol/pure/DSL_DataQuality_PureGraphManagerExtension.js.map +1 -0
  163. package/lib/graph-manager/protocol/pure/DSL_DataQuality_PureProtocolProcessorPlugin.d.ts +25 -0
  164. package/lib/graph-manager/protocol/pure/DSL_DataQuality_PureProtocolProcessorPlugin.d.ts.map +1 -0
  165. package/lib/graph-manager/protocol/pure/DSL_DataQuality_PureProtocolProcessorPlugin.js +140 -0
  166. package/lib/graph-manager/protocol/pure/DSL_DataQuality_PureProtocolProcessorPlugin.js.map +1 -0
  167. package/lib/graph-manager/protocol/pure/DSL_DataQuality_buildGraphManagerExtension.d.ts +18 -0
  168. package/lib/graph-manager/protocol/pure/DSL_DataQuality_buildGraphManagerExtension.d.ts.map +1 -0
  169. package/lib/graph-manager/protocol/pure/DSL_DataQuality_buildGraphManagerExtension.js +20 -0
  170. package/lib/graph-manager/protocol/pure/DSL_DataQuality_buildGraphManagerExtension.js.map +1 -0
  171. package/lib/graph-manager/protocol/pure/v1/V1_DSL_Data_Quality_PureGraphManagerExtension.d.ts +41 -0
  172. package/lib/graph-manager/protocol/pure/v1/V1_DSL_Data_Quality_PureGraphManagerExtension.d.ts.map +1 -0
  173. package/lib/graph-manager/protocol/pure/v1/V1_DSL_Data_Quality_PureGraphManagerExtension.js +95 -0
  174. package/lib/graph-manager/protocol/pure/v1/V1_DSL_Data_Quality_PureGraphManagerExtension.js.map +1 -0
  175. package/lib/graph-manager/protocol/pure/v1/V1_DataQualityConstraintsConfiguration.d.ts +46 -0
  176. package/lib/graph-manager/protocol/pure/v1/V1_DataQualityConstraintsConfiguration.d.ts.map +1 -0
  177. package/lib/graph-manager/protocol/pure/v1/V1_DataQualityConstraintsConfiguration.js +76 -0
  178. package/lib/graph-manager/protocol/pure/v1/V1_DataQualityConstraintsConfiguration.js.map +1 -0
  179. package/lib/graph-manager/protocol/pure/v1/model/graphFetch/V1_DataQualityPropertyGraphFetchTree.d.ts +22 -0
  180. package/lib/graph-manager/protocol/pure/v1/model/graphFetch/V1_DataQualityPropertyGraphFetchTree.d.ts.map +1 -0
  181. package/lib/graph-manager/protocol/pure/v1/model/graphFetch/V1_DataQualityPropertyGraphFetchTree.js +32 -0
  182. package/lib/graph-manager/protocol/pure/v1/model/graphFetch/V1_DataQualityPropertyGraphFetchTree.js.map +1 -0
  183. package/lib/graph-manager/protocol/pure/v1/model/graphFetch/V1_DataQualityRootGraphFetchTree.d.ts +22 -0
  184. package/lib/graph-manager/protocol/pure/v1/model/graphFetch/V1_DataQualityRootGraphFetchTree.d.ts.map +1 -0
  185. package/lib/graph-manager/protocol/pure/v1/model/graphFetch/V1_DataQualityRootGraphFetchTree.js +31 -0
  186. package/lib/graph-manager/protocol/pure/v1/model/graphFetch/V1_DataQualityRootGraphFetchTree.js.map +1 -0
  187. package/lib/graph-manager/protocol/pure/v1/transformation/V1_ValueSpecificationBuilderHelper.d.ts +24 -0
  188. package/lib/graph-manager/protocol/pure/v1/transformation/V1_ValueSpecificationBuilderHelper.d.ts.map +1 -0
  189. package/lib/graph-manager/protocol/pure/v1/transformation/V1_ValueSpecificationBuilderHelper.js +92 -0
  190. package/lib/graph-manager/protocol/pure/v1/transformation/V1_ValueSpecificationBuilderHelper.js.map +1 -0
  191. package/lib/graph-manager/protocol/pure/v1/transformation/V1_ValueSpecificationSerializer.d.ts +20 -0
  192. package/lib/graph-manager/protocol/pure/v1/transformation/V1_ValueSpecificationSerializer.d.ts.map +1 -0
  193. package/lib/graph-manager/protocol/pure/v1/transformation/V1_ValueSpecificationSerializer.js +56 -0
  194. package/lib/graph-manager/protocol/pure/v1/transformation/V1_ValueSpecificationSerializer.js.map +1 -0
  195. package/lib/graph-manager/protocol/pure/v1/transformation/V1_ValueSpecificationTransformer.d.ts +22 -0
  196. package/lib/graph-manager/protocol/pure/v1/transformation/V1_ValueSpecificationTransformer.d.ts.map +1 -0
  197. package/lib/graph-manager/protocol/pure/v1/transformation/V1_ValueSpecificationTransformer.js +70 -0
  198. package/lib/graph-manager/protocol/pure/v1/transformation/V1_ValueSpecificationTransformer.js.map +1 -0
  199. package/lib/graph-manager/protocol/pure/v1/transformation/pureProtocol/V1_DSL_DataQuality_ProtocolHelper.d.ts +29 -0
  200. package/lib/graph-manager/protocol/pure/v1/transformation/pureProtocol/V1_DSL_DataQuality_ProtocolHelper.d.ts.map +1 -0
  201. package/lib/graph-manager/protocol/pure/v1/transformation/pureProtocol/V1_DSL_DataQuality_ProtocolHelper.js +80 -0
  202. package/lib/graph-manager/protocol/pure/v1/transformation/pureProtocol/V1_DSL_DataQuality_ProtocolHelper.js.map +1 -0
  203. package/lib/index.css +17 -0
  204. package/lib/index.css.map +1 -0
  205. package/lib/package.json +87 -0
  206. package/package.json +87 -0
  207. package/src/components/DSL_DataQuality_ClassElementDriver.tsx +175 -0
  208. package/src/components/DSL_DataQuality_LegendStudioApplicationPlugin.tsx +220 -0
  209. package/src/components/DSL_DataQuality_LegendStudioPlugin_Extension.ts +39 -0
  210. package/src/components/DSL_DataQuality_ServiceElementDriver.tsx +57 -0
  211. package/src/components/DSL_NewDataQualityClassValidationElement.tsx +156 -0
  212. package/src/components/DSL_NewDataQualityServiceValidationElement.tsx +74 -0
  213. package/src/components/DataQualityClassValidationEditor.tsx +49 -0
  214. package/src/components/DataQualityConstraintsSelection.tsx +376 -0
  215. package/src/components/DataQualityDataSpaceBuilder.tsx +274 -0
  216. package/src/components/DataQualityExplorerPanel.tsx +584 -0
  217. package/src/components/DataQualityFilterPanel.tsx +50 -0
  218. package/src/components/DataQualityMappingAndRuntimeBuilder.tsx +224 -0
  219. package/src/components/DataQualityResultPanel.tsx +335 -0
  220. package/src/components/DataQualityResultValues.tsx +61 -0
  221. package/src/components/DataQualityServiceValidationEditor.tsx +49 -0
  222. package/src/components/DataQualitySideBar.tsx +216 -0
  223. package/src/components/DataQualityStructuralValidationsPanel.tsx +105 -0
  224. package/src/components/DataQualityTabs.tsx +104 -0
  225. package/src/components/DataQualityValidationEditor.tsx +52 -0
  226. package/src/components/constants/DataQualityConstants.ts +24 -0
  227. package/src/components/index.ts +19 -0
  228. package/src/components/states/ConstraintState.ts +70 -0
  229. package/src/components/states/DataQualityClassValidationState.ts +308 -0
  230. package/src/components/states/DataQualityGraphFetchTreeState.ts +125 -0
  231. package/src/components/states/DataQualityQueryBuilderState.ts +19 -0
  232. package/src/components/states/DataQualityResultState.ts +217 -0
  233. package/src/components/states/DataQualityServiceValidationState.ts +56 -0
  234. package/src/components/states/DataQualityState.ts +354 -0
  235. package/src/components/utils/DataQualityGraphFetchTreeUtil.ts +592 -0
  236. package/src/graph/metamodel/DSL_DataQuality_HashUtils.ts +29 -0
  237. package/src/graph/metamodel/DSL_DataQuality_PureGraphPlugin.ts +36 -0
  238. package/src/graph/metamodel/pure/packageableElements/data-quality/DataQualityGraphFetchTree.ts +55 -0
  239. package/src/graph/metamodel/pure/packageableElements/data-quality/DataQualityValidationConfiguration.ts +107 -0
  240. package/src/graph-manager/DSL_DataQuality_GraphManagerHelper.ts +46 -0
  241. package/src/graph-manager/DSL_DataQuality_GraphManagerPreset.ts +31 -0
  242. package/src/graph-manager/DSL_DataQuality_GraphModifierHelper.ts +113 -0
  243. package/src/graph-manager/DSL_DataQuality_PureGraphManagerPlugin.ts +59 -0
  244. package/src/graph-manager/action/changeDetection/DSL_DataQuality_ObserverHelper.ts +153 -0
  245. package/src/graph-manager/index.ts +19 -0
  246. package/src/graph-manager/protocol/pure/DSL_DataQuality_PureGraphManagerExtension.ts +59 -0
  247. package/src/graph-manager/protocol/pure/DSL_DataQuality_PureProtocolProcessorPlugin.ts +283 -0
  248. package/src/graph-manager/protocol/pure/DSL_DataQuality_buildGraphManagerExtension.ts +27 -0
  249. package/src/graph-manager/protocol/pure/v1/V1_DSL_Data_Quality_PureGraphManagerExtension.ts +246 -0
  250. package/src/graph-manager/protocol/pure/v1/V1_DataQualityConstraintsConfiguration.ts +103 -0
  251. package/src/graph-manager/protocol/pure/v1/model/graphFetch/V1_DataQualityPropertyGraphFetchTree.ts +37 -0
  252. package/src/graph-manager/protocol/pure/v1/model/graphFetch/V1_DataQualityRootGraphFetchTree.ts +36 -0
  253. package/src/graph-manager/protocol/pure/v1/transformation/V1_ValueSpecificationBuilderHelper.ts +241 -0
  254. package/src/graph-manager/protocol/pure/v1/transformation/V1_ValueSpecificationSerializer.ts +113 -0
  255. package/src/graph-manager/protocol/pure/v1/transformation/V1_ValueSpecificationTransformer.ts +139 -0
  256. package/src/graph-manager/protocol/pure/v1/transformation/pureProtocol/V1_DSL_DataQuality_ProtocolHelper.ts +186 -0
  257. package/style/_data-quality-validation-builder.scss +1660 -0
  258. package/style/index.scss +67 -0
  259. package/tsconfig.json +137 -0
  260. package/tsconfig.package.json +9 -0
@@ -0,0 +1,216 @@
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
+ clsx,
19
+ createFilter,
20
+ CustomSelectorInput,
21
+ PURE_ClassIcon,
22
+ } from '@finos/legend-art';
23
+ import { observer } from 'mobx-react-lite';
24
+ import { useApplicationStore } from '@finos/legend-application';
25
+ import type { DataQualityState } from './states/DataQualityState.js';
26
+ import { DataQualityDataSpaceBuilderSetupPanelContent } from './DataQualityDataSpaceBuilder.js';
27
+ import { DataQualityMappingAndRuntimeBuilder } from './DataQualityMappingAndRuntimeBuilder.js';
28
+ import { ELEMENT_CREATION_BASIS } from './DSL_DataQuality_ClassElementDriver.js';
29
+ import { type Class, isElementDeprecated } from '@finos/legend-graph';
30
+ import {
31
+ getPackageableElementOptionFormatter,
32
+ type PackageableElementOption,
33
+ } from '@finos/legend-lego/graph-editor';
34
+ import type { DataQualityClassValidationState } from './states/DataQualityClassValidationState.js';
35
+ import type { DataQualityServiceValidationState } from './states/DataQualityServiceValidationState.js';
36
+ import { DATA_QUALITY_VALIDATION_TEST_ID } from './constants/DataQualityConstants.js';
37
+
38
+ const generateClassLabel = (
39
+ val: Class,
40
+ dataQualityState: DataQualityState,
41
+ ): string | React.ReactNode => {
42
+ const isDeprecatedClass = isElementDeprecated(
43
+ val,
44
+ dataQualityState.graphManagerState.graph,
45
+ );
46
+
47
+ return (
48
+ <div
49
+ className={clsx('data-quality-validation__setup__class-option-label', {
50
+ 'data-quality-validation__setup__class-option-label--deprecated':
51
+ isDeprecatedClass,
52
+ })}
53
+ >
54
+ <div className="data-quality-validation__setup__class-option-label__name">
55
+ {val.name}
56
+ </div>
57
+ </div>
58
+ );
59
+ };
60
+
61
+ export const DataQualityClassSelector = observer(
62
+ (props: {
63
+ dataQualityState: DataQualityState;
64
+ classes: Class[];
65
+ onClassChange?: ((val: Class) => void) | undefined;
66
+ noMatchMessage?: string | undefined;
67
+ }) => {
68
+ const { dataQualityState, classes, onClassChange, noMatchMessage } = props;
69
+ const { dataQualityQueryBuilderState } = dataQualityState;
70
+ const applicationStore = useApplicationStore();
71
+
72
+ const elementFilterOption = createFilter({
73
+ ignoreCase: true,
74
+ ignoreAccents: false,
75
+ stringify: (option: PackageableElementOption<Class>): string =>
76
+ option.value.path,
77
+ });
78
+
79
+ const classOptions = classes.map((_class) => ({
80
+ value: _class,
81
+ label: generateClassLabel(_class, dataQualityState),
82
+ }));
83
+ const selectedClassOption = dataQualityQueryBuilderState.class
84
+ ? {
85
+ value: dataQualityQueryBuilderState.class,
86
+ label: generateClassLabel(
87
+ dataQualityQueryBuilderState.class,
88
+ dataQualityState,
89
+ ),
90
+ }
91
+ : null;
92
+ const changeClass = (val: PackageableElementOption<Class>): void => {
93
+ if (val.value === dataQualityQueryBuilderState.class) {
94
+ return;
95
+ }
96
+ dataQualityState.changeClass(val.value);
97
+ dataQualityState.updateElementOnClassChange();
98
+ onClassChange?.(val.value);
99
+ };
100
+
101
+ return (
102
+ <div className="data-quality-validation__setup__config-group data-quality-validation__setup__config-group--class">
103
+ <div className="data-quality-validation__setup__config-group__content">
104
+ <div className="data-quality-validation__setup__config-group__item">
105
+ <div
106
+ className="btn--sm data-quality-validation__setup__config-group__item__label"
107
+ title="class"
108
+ >
109
+ <PURE_ClassIcon />
110
+ </div>
111
+ <CustomSelectorInput
112
+ className="panel__content__form__section__dropdown data-quality-validation__setup__config-group__item__selector data-quality-validation__setup__config-group__item__selector__milestoned"
113
+ placeholder={
114
+ classOptions.length
115
+ ? 'Choose a class...'
116
+ : noMatchMessage ?? 'No class found'
117
+ }
118
+ disabled={
119
+ classOptions.length < 1 ||
120
+ (classOptions.length === 1 && Boolean(selectedClassOption))
121
+ }
122
+ noMatchMessage={noMatchMessage}
123
+ options={classOptions}
124
+ onChange={changeClass}
125
+ value={selectedClassOption}
126
+ darkMode={
127
+ !applicationStore.layoutService
128
+ .TEMPORARY__isLightColorThemeEnabled
129
+ }
130
+ filterOption={elementFilterOption}
131
+ formatOptionLabel={getPackageableElementOptionFormatter({
132
+ darkMode:
133
+ !applicationStore.layoutService
134
+ .TEMPORARY__isLightColorThemeEnabled,
135
+ })}
136
+ />
137
+ </div>
138
+ </div>
139
+ </div>
140
+ );
141
+ },
142
+ );
143
+ export const DataQualityServiceValidationSideBar = observer(
144
+ (props: {
145
+ dataQualityState: DataQualityServiceValidationState;
146
+ children: React.ReactNode;
147
+ }) => {
148
+ const { dataQualityState, children } = props;
149
+
150
+ return (
151
+ <div
152
+ className={clsx(
153
+ 'data-quality-validation__side-bar',
154
+ dataQualityState.sideBarClassName,
155
+ )}
156
+ >
157
+ <div
158
+ data-testid={
159
+ DATA_QUALITY_VALIDATION_TEST_ID.DATA_QUALITY_VALIDATION_SETUP
160
+ }
161
+ className="panel data-quality-validation__setup"
162
+ >
163
+ <div className="panel__content data-quality-validation__setup__content">
164
+ service selection to be show
165
+ </div>
166
+ </div>
167
+ <div className="data-quality-validation__side-bar__content">
168
+ {children}
169
+ </div>
170
+ </div>
171
+ );
172
+ },
173
+ );
174
+
175
+ export const DataQualityClassValidationSideBar = observer(
176
+ (props: {
177
+ dataQualityClassValidationState: DataQualityClassValidationState;
178
+ children: React.ReactNode;
179
+ }) => {
180
+ const { dataQualityClassValidationState, children } = props;
181
+ const validationElementCreationBasis =
182
+ dataQualityClassValidationState.validationElementCreationBasis;
183
+
184
+ return (
185
+ <div
186
+ className={clsx(
187
+ 'data-quality-validation__side-bar',
188
+ dataQualityClassValidationState.sideBarClassName,
189
+ )}
190
+ >
191
+ <div
192
+ data-testid={
193
+ DATA_QUALITY_VALIDATION_TEST_ID.DATA_QUALITY_VALIDATION_SETUP
194
+ }
195
+ className="panel data-quality-validation__setup"
196
+ >
197
+ <div className="panel__content data-quality-validation__setup__content">
198
+ {validationElementCreationBasis ===
199
+ ELEMENT_CREATION_BASIS.DATASPACE_BASED ? (
200
+ <DataQualityDataSpaceBuilderSetupPanelContent
201
+ dataQualityState={dataQualityClassValidationState}
202
+ />
203
+ ) : (
204
+ <DataQualityMappingAndRuntimeBuilder
205
+ dataQualityState={dataQualityClassValidationState}
206
+ />
207
+ )}
208
+ </div>
209
+ </div>
210
+ <div className="data-quality-validation__side-bar__content">
211
+ {children}
212
+ </div>
213
+ </div>
214
+ );
215
+ },
216
+ );
@@ -0,0 +1,105 @@
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 { observer } from 'mobx-react-lite';
18
+ import {
19
+ Dialog,
20
+ ModalBody,
21
+ ModalFooter,
22
+ Modal,
23
+ ModalFooterButton,
24
+ ModalHeader,
25
+ TreeView,
26
+ } from '@finos/legend-art';
27
+ import type { DataQualityState } from './states/DataQualityState.js';
28
+ import {
29
+ DataQualityConstraintsTreeNodeContainer,
30
+ getQueryBuilderExplorerTreeNodeSortRank,
31
+ } from './DataQualityConstraintsSelection.js';
32
+ import { DataQualityGraphFetchTreeNodeData } from './utils/DataQualityGraphFetchTreeUtil.js';
33
+
34
+ export const DataQualityStructuralValidationsPanel = observer(
35
+ (props: { dataQualityState: DataQualityState }) => {
36
+ const { dataQualityState } = props;
37
+ const { structuralValidationsGraphFetchTreeState } = dataQualityState;
38
+ const structureValidationsTree =
39
+ structuralValidationsGraphFetchTreeState.treeData;
40
+ if (!structureValidationsTree) {
41
+ return null;
42
+ }
43
+ const closePlanViewer = (): void => {
44
+ dataQualityState.setShowStructuralValidations(false);
45
+ };
46
+ const isDarkMode =
47
+ !dataQualityState.applicationStore.layoutService
48
+ .TEMPORARY__isLightColorThemeEnabled;
49
+
50
+ const getChildNodes = (
51
+ node: DataQualityGraphFetchTreeNodeData,
52
+ ): DataQualityGraphFetchTreeNodeData[] =>
53
+ node.childrenIds
54
+ .map((id) => structureValidationsTree.nodes.get(id))
55
+ .filter(
56
+ (_node): _node is DataQualityGraphFetchTreeNodeData =>
57
+ _node instanceof DataQualityGraphFetchTreeNodeData,
58
+ )
59
+ .sort((a, b) => a.label.localeCompare(b.label))
60
+ .sort(
61
+ (a, b) =>
62
+ getQueryBuilderExplorerTreeNodeSortRank(b) -
63
+ getQueryBuilderExplorerTreeNodeSortRank(a),
64
+ );
65
+
66
+ return (
67
+ <Dialog
68
+ open={dataQualityState.showStructuralValidations}
69
+ onClose={closePlanViewer}
70
+ classes={{
71
+ root: 'data-quality-editor-modal__root-container',
72
+ container: 'data-quality-editor-modal__container',
73
+ paper: 'data-quality-editor-modal__content',
74
+ }}
75
+ >
76
+ <Modal className="data-quality-editor-modal" darkMode={isDarkMode}>
77
+ <ModalHeader title="Structural Attributes" />
78
+ <ModalBody>
79
+ <div className="data-quality-validation-graph-fetch-constraints-selection__config-group__item">
80
+ <TreeView
81
+ components={{
82
+ TreeNodeContainer: DataQualityConstraintsTreeNodeContainer,
83
+ }}
84
+ className="data-quality-validation-graph-fetch-tree__container__tree"
85
+ treeData={structureValidationsTree}
86
+ getChildNodes={getChildNodes}
87
+ innerProps={{
88
+ dataQualityState,
89
+ isReadOnly: true,
90
+ }}
91
+ />
92
+ </div>
93
+ </ModalBody>
94
+ <ModalFooter>
95
+ <ModalFooterButton
96
+ onClick={closePlanViewer}
97
+ text="Close"
98
+ type="secondary"
99
+ />
100
+ </ModalFooter>
101
+ </Modal>
102
+ </Dialog>
103
+ );
104
+ },
105
+ );
@@ -0,0 +1,104 @@
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 DataQualityState,
19
+ DATA_QUALITY_TAB,
20
+ } from './states/DataQualityState.js';
21
+ import { observer } from 'mobx-react-lite';
22
+ import { clsx } from '@finos/legend-art';
23
+ import { prettyCONSTName } from '@finos/legend-shared';
24
+ import { DataQualityConstraintsSelection } from './DataQualityConstraintsSelection.js';
25
+ import { DataQualityResultPanel } from './DataQualityResultPanel.js';
26
+ import { DataQualityFilterPanel } from './DataQualityFilterPanel.js';
27
+ import { type DSL_DataQuality_LegendStudioPlugin_Extension } from './DSL_DataQuality_LegendStudioPlugin_Extension.js';
28
+
29
+ export const DataQualityTabs = observer(
30
+ (props: { dataQualityState: DataQualityState }) => {
31
+ const { dataQualityState } = props;
32
+ const { selectedTab } = dataQualityState;
33
+ const changeTab =
34
+ (tab: string): (() => void) =>
35
+ (): void =>
36
+ dataQualityState.setSelectedTab(tab);
37
+
38
+ const tabsToRender = dataQualityState.tabsToShow;
39
+ const renderTabs = (): React.ReactNode => {
40
+ switch (selectedTab) {
41
+ case DATA_QUALITY_TAB.CONSTRAINTS_SELECTION:
42
+ return (
43
+ <DataQualityConstraintsSelection
44
+ dataQualityState={dataQualityState}
45
+ />
46
+ );
47
+ case DATA_QUALITY_TAB.FILTER:
48
+ return (
49
+ <DataQualityFilterPanel
50
+ filterState={
51
+ dataQualityState.dataQualityQueryBuilderState.filterState
52
+ }
53
+ dataQualityState={dataQualityState}
54
+ />
55
+ );
56
+ case DATA_QUALITY_TAB.TRIAL_RUNS:
57
+ return <DataQualityResultPanel dataQualityState={dataQualityState} />;
58
+ default: {
59
+ if (selectedTab) {
60
+ const extraTabRenderers = dataQualityState.editorStore.pluginManager
61
+ .getApplicationPlugins()
62
+ .flatMap(
63
+ (plugin) =>
64
+ (
65
+ plugin as DSL_DataQuality_LegendStudioPlugin_Extension
66
+ ).getComponentRenderers?.() ?? [],
67
+ );
68
+ for (const extraTabRenderer of extraTabRenderers) {
69
+ const componentToRender = extraTabRenderer(
70
+ selectedTab,
71
+ dataQualityState,
72
+ );
73
+ if (componentToRender) {
74
+ return componentToRender;
75
+ }
76
+ }
77
+ }
78
+ return undefined;
79
+ }
80
+ }
81
+ };
82
+
83
+ return (
84
+ <div className="panel">
85
+ <div className="panel__header">
86
+ <div className="uml-element-editor__tabs">
87
+ {tabsToRender.map((tab) => (
88
+ <div
89
+ key={tab}
90
+ onClick={changeTab(tab)}
91
+ className={clsx('data-quality__tab', {
92
+ 'data-quality__tab--active': tab === selectedTab,
93
+ })}
94
+ >
95
+ {prettyCONSTName(tab)}
96
+ </div>
97
+ ))}
98
+ </div>
99
+ </div>
100
+ <div className="panel__content">{renderTabs()}</div>
101
+ </div>
102
+ );
103
+ },
104
+ );
@@ -0,0 +1,52 @@
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 { observer } from 'mobx-react-lite';
18
+ import {
19
+ ResizablePanel,
20
+ ResizablePanelGroup,
21
+ ResizablePanelSplitter,
22
+ } from '@finos/legend-art';
23
+ import { DataQualityTabs } from './DataQualityTabs.js';
24
+ import type { DataQualityState } from './states/DataQualityState.js';
25
+
26
+ export const DataQualityValidationEditor = observer(
27
+ (props: {
28
+ dataQualityState: DataQualityState;
29
+ SideBarBasisComponent: React.ReactNode;
30
+ }) => {
31
+ const { SideBarBasisComponent, dataQualityState } = props;
32
+ return (
33
+ <div className="data-quality-validation">
34
+ <div className="data-quality-validation__body">
35
+ <div className="data-quality-validation__content">
36
+ <div className="data-quality-validation__main">
37
+ <ResizablePanelGroup orientation="vertical">
38
+ <ResizablePanel size={300} minSize={120}>
39
+ {SideBarBasisComponent}
40
+ </ResizablePanel>
41
+ <ResizablePanelSplitter />
42
+ <ResizablePanel minSize={120}>
43
+ <DataQualityTabs dataQualityState={dataQualityState} />
44
+ </ResizablePanel>
45
+ </ResizablePanelGroup>
46
+ </div>
47
+ </div>
48
+ </div>
49
+ </div>
50
+ );
51
+ },
52
+ );
@@ -0,0 +1,24 @@
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
+ export enum DATA_QUALITY_VALIDATION_TEST_ID {
18
+ DATA_QUALITY_VALIDATION_EXPLORER = 'data-quality-validation__explorer',
19
+ DATA_QUALITY_VALIDATION_TOOLTIP_ICON = 'data-quality-validation__tooltip__icon',
20
+ DATA_QUALITY_VALIDATION_SETUP = 'data-quality-validation__setup',
21
+ DATA_QUALITY_VALIDATION_TREE = 'data-quality-validation-tree',
22
+ DATA_QUALITY_VALIDATION_RESULT_PANEL = 'data-quality-result-panel',
23
+ DATA_QUALITY_VALIDATION_RESULT_ANALYTICS = 'data-quality-result-analytics',
24
+ }
@@ -0,0 +1,19 @@
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
+ export * from './DSL_DataQuality_LegendStudioApplicationPlugin.js';
18
+ export * from '../components/states/DataQualityState.js';
19
+ export * from '../components/DSL_DataQuality_LegendStudioPlugin_Extension.js';
@@ -0,0 +1,70 @@
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 Constraint,
19
+ buildSourceInformationSourceId,
20
+ LAMBDA_PIPE,
21
+ } from '@finos/legend-graph';
22
+ import { action, makeObservable, observable } from 'mobx';
23
+ import { uuid } from '@finos/legend-shared';
24
+
25
+ export const CONSTRAINT_SOURCE_ID_LABEL = 'constraint';
26
+
27
+ export class ConstraintState {
28
+ readonly uuid = uuid();
29
+ constraint: Constraint;
30
+ lambdaString: string;
31
+ isSelected = false;
32
+ lambdaPrefix: string = LAMBDA_PIPE;
33
+
34
+ constructor(constraint: Constraint) {
35
+ makeObservable(this, {
36
+ constraint: observable,
37
+ isSelected: observable,
38
+ lambdaString: observable,
39
+ setLambdaString: action,
40
+ setIsSelected: action,
41
+ });
42
+
43
+ this.constraint = constraint;
44
+ this.lambdaString = '';
45
+ }
46
+
47
+ setLambdaString(val: string): void {
48
+ this.lambdaString = val;
49
+ }
50
+
51
+ setIsSelected(val: boolean) {
52
+ this.isSelected = val;
53
+ }
54
+
55
+ extractLambdaString(fullLambdaString: string): string {
56
+ return fullLambdaString.substring(
57
+ fullLambdaString.indexOf(this.lambdaPrefix) + this.lambdaPrefix.length,
58
+ fullLambdaString.length,
59
+ );
60
+ }
61
+
62
+ get lambdaId(): string {
63
+ return buildSourceInformationSourceId([
64
+ this.constraint._OWNER.path,
65
+ CONSTRAINT_SOURCE_ID_LABEL,
66
+ this.constraint.name,
67
+ this.uuid, // in case of duplications
68
+ ]);
69
+ }
70
+ }