@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,224 @@
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 { useApplicationStore } from '@finos/legend-application';
19
+ import {
20
+ type PackageableElementOption,
21
+ buildElementOption,
22
+ getPackageableElementOptionFormatter,
23
+ } from '@finos/legend-lego/graph-editor';
24
+ import {
25
+ type Mapping,
26
+ type Runtime,
27
+ getMappingCompatibleClasses,
28
+ getMappingCompatibleRuntimes,
29
+ PackageableElementExplicitReference,
30
+ RuntimePointer,
31
+ } from '@finos/legend-graph';
32
+ import {
33
+ createFilter,
34
+ CustomSelectorInput,
35
+ PURE_MappingIcon,
36
+ PURE_RuntimeIcon,
37
+ } from '@finos/legend-art';
38
+ import { DataQualityClassSelector } from './DataQualitySideBar.js';
39
+ import type { DataQualityClassValidationState } from './states/DataQualityClassValidationState.js';
40
+ import {
41
+ buildRuntimeValueOption,
42
+ getRuntimeOptionFormatter,
43
+ } from '@finos/legend-query-builder';
44
+
45
+ export const DataQualityMappingAndRuntimeBuilder = observer(
46
+ (props: { dataQualityState: DataQualityClassValidationState }) => {
47
+ const { dataQualityState } = props;
48
+ const { dataQualityQueryBuilderState } = dataQualityState;
49
+ const applicationStore = useApplicationStore();
50
+
51
+ const getRuntimesBasedOnMapping = (): RuntimePointer[] =>
52
+ dataQualityQueryBuilderState.executionContextState.mapping
53
+ ? getMappingCompatibleRuntimes(
54
+ dataQualityQueryBuilderState.executionContextState.mapping,
55
+ dataQualityState.graphManagerState.usableRuntimes,
56
+ ).map(
57
+ (rt) =>
58
+ new RuntimePointer(
59
+ PackageableElementExplicitReference.create(rt),
60
+ ),
61
+ )
62
+ : [];
63
+
64
+ const mappingOptions =
65
+ dataQualityState.graphManagerState.usableMappings.map(buildElementOption);
66
+
67
+ const selectedMappingOption = dataQualityQueryBuilderState
68
+ .executionContextState.mapping
69
+ ? buildElementOption(
70
+ dataQualityQueryBuilderState.executionContextState.mapping,
71
+ )
72
+ : null;
73
+
74
+ const changeMapping = (val: PackageableElementOption<Mapping>): void => {
75
+ if (
76
+ val.value ===
77
+ dataQualityQueryBuilderState.executionContextState.mapping ||
78
+ dataQualityState.isMappingReadOnly
79
+ ) {
80
+ return;
81
+ }
82
+ dataQualityState.changeMapping(val.value);
83
+ const runtimeOptions = getRuntimesBasedOnMapping();
84
+ if (runtimeOptions.length) {
85
+ dataQualityQueryBuilderState.changeRuntime(runtimeOptions[0]!);
86
+ }
87
+ dataQualityState.updateElementOnMappingChange();
88
+ const classes = getMappingCompatibleClasses(
89
+ dataQualityQueryBuilderState.executionContextState.mapping!,
90
+ dataQualityState.graphManagerState.usableClasses,
91
+ );
92
+ if (runtimeOptions.length && classes.length) {
93
+ dataQualityState.changeClass(classes[0]!);
94
+ dataQualityState.updateElementOnClassChange();
95
+ }
96
+ };
97
+
98
+ const mappingFilterOption = createFilter({
99
+ ignoreCase: true,
100
+ ignoreAccents: false,
101
+ stringify: (option: PackageableElementOption<Mapping>): string =>
102
+ option.value.path,
103
+ });
104
+
105
+ const runtimeOptions = getRuntimesBasedOnMapping().map(
106
+ buildRuntimeValueOption,
107
+ );
108
+
109
+ const selectedRuntimeOption = dataQualityQueryBuilderState
110
+ .executionContextState.runtimeValue
111
+ ? buildRuntimeValueOption(
112
+ dataQualityQueryBuilderState.executionContextState.runtimeValue,
113
+ )
114
+ : null;
115
+
116
+ const classes = selectedRuntimeOption
117
+ ? getMappingCompatibleClasses(
118
+ dataQualityQueryBuilderState.executionContextState.mapping!,
119
+ dataQualityState.graphManagerState.usableClasses,
120
+ )
121
+ : [];
122
+
123
+ const changeRuntime = (val: { value: Runtime }): void => {
124
+ if (
125
+ val.value ===
126
+ dataQualityQueryBuilderState.executionContextState.runtimeValue ||
127
+ dataQualityState.isRuntimeReadOnly
128
+ ) {
129
+ return;
130
+ }
131
+ dataQualityQueryBuilderState.changeRuntime(val.value);
132
+ dataQualityState.updateElementOnRuntimeChange(val.value);
133
+ };
134
+ const runtimeFilterOption = createFilter({
135
+ ignoreCase: true,
136
+ ignoreAccents: false,
137
+ stringify: (option: { value: Runtime }): string =>
138
+ option.value instanceof RuntimePointer
139
+ ? option.value.packageableRuntime.value.path
140
+ : 'custom',
141
+ });
142
+
143
+ return (
144
+ <>
145
+ <div className="data-quality-validation__setup__config-group">
146
+ <div className="data-quality-validation__setup__config-group__header">
147
+ <div className="data-quality-validation__setup__config-group__header__title">
148
+ execution context
149
+ </div>
150
+ </div>
151
+ <div className="data-quality-validation__setup__config-group__content">
152
+ <div className="data-quality-validation__setup__config-group__item">
153
+ <div
154
+ className="btn--sm data-quality-validation__setup__config-group__item__label"
155
+ title="mapping"
156
+ >
157
+ <PURE_MappingIcon />
158
+ </div>
159
+ <CustomSelectorInput
160
+ className="panel__content__form__section__dropdown data-quality-validation__setup__config-group__item__selector"
161
+ placeholder={
162
+ mappingOptions.length
163
+ ? 'Choose a mapping...'
164
+ : 'No mapping found'
165
+ }
166
+ disabled={dataQualityState.isMappingReadOnly}
167
+ options={mappingOptions}
168
+ onChange={changeMapping}
169
+ value={selectedMappingOption}
170
+ darkMode={
171
+ !applicationStore.layoutService
172
+ .TEMPORARY__isLightColorThemeEnabled
173
+ }
174
+ filterOption={mappingFilterOption}
175
+ formatOptionLabel={getPackageableElementOptionFormatter({
176
+ darkMode:
177
+ !applicationStore.layoutService
178
+ .TEMPORARY__isLightColorThemeEnabled,
179
+ })}
180
+ />
181
+ </div>
182
+ <div className="data-quality-validation__setup__config-group__item">
183
+ <div
184
+ className="btn--sm data-quality-validation__setup__config-group__item__label"
185
+ title="runtime"
186
+ >
187
+ <PURE_RuntimeIcon />
188
+ </div>
189
+ <CustomSelectorInput
190
+ className="panel__content__form__section__dropdown data-quality-validation__setup__config-group__item__selector"
191
+ placeholder={
192
+ runtimeOptions.length
193
+ ? 'Choose a runtime...'
194
+ : 'No runtime found'
195
+ }
196
+ disabled={
197
+ dataQualityState.isRuntimeReadOnly ||
198
+ !dataQualityQueryBuilderState.executionContextState.mapping
199
+ }
200
+ options={runtimeOptions}
201
+ onChange={changeRuntime}
202
+ value={selectedRuntimeOption}
203
+ darkMode={
204
+ !applicationStore.layoutService
205
+ .TEMPORARY__isLightColorThemeEnabled
206
+ }
207
+ filterOption={runtimeFilterOption}
208
+ formatOptionLabel={getRuntimeOptionFormatter({
209
+ darkMode:
210
+ !applicationStore.layoutService
211
+ .TEMPORARY__isLightColorThemeEnabled,
212
+ })}
213
+ />
214
+ </div>
215
+ </div>
216
+ </div>
217
+ <DataQualityClassSelector
218
+ dataQualityState={dataQualityState}
219
+ classes={classes}
220
+ />
221
+ </>
222
+ );
223
+ },
224
+ );
@@ -0,0 +1,335 @@
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 type { DataQualityState } from './states/DataQualityState.js';
19
+ import { useApplicationStore } from '@finos/legend-application';
20
+ import { flowResult } from 'mobx';
21
+ import {
22
+ type QueryBuilderState,
23
+ buildFilterConditionExpression,
24
+ ExecutionPlanViewer,
25
+ } from '@finos/legend-query-builder';
26
+ import {
27
+ type ExecutionResult,
28
+ buildRawLambdaFromLambdaFunction,
29
+ CORE_PURE_PATH,
30
+ FunctionType,
31
+ GenericType,
32
+ GenericTypeExplicitReference,
33
+ LambdaFunction,
34
+ Multiplicity,
35
+ PackageableElementExplicitReference,
36
+ VariableExpression,
37
+ } from '@finos/legend-graph';
38
+ import {
39
+ guaranteeNonNullable,
40
+ isNonNullable,
41
+ prettyDuration,
42
+ } from '@finos/legend-shared';
43
+ import { useRef, useState } from 'react';
44
+ import { DATA_QUALITY_VALIDATION_TEST_ID } from './constants/DataQualityConstants.js';
45
+ import {
46
+ BlankPanelContent,
47
+ CubesLoadingIndicator,
48
+ CubesLoadingIndicatorIcon,
49
+ MenuContent,
50
+ MenuContentItem,
51
+ PanelContent,
52
+ ExclamationTriangleIcon,
53
+ DebugIcon,
54
+ CaretDownIcon,
55
+ MenuContentItemIcon,
56
+ MenuContentItemLabel,
57
+ PauseCircleIcon,
58
+ PlayIcon,
59
+ ReportIcon,
60
+ ControlledDropdownMenu,
61
+ } from '@finos/legend-art';
62
+ import { DataQualityResultValues } from './DataQualityResultValues.js';
63
+ import { dataQualityClassValidation_setFilter } from '../graph-manager/DSL_DataQuality_GraphModifierHelper.js';
64
+ import type { DataQualityClassValidationsConfiguration } from '../graph/metamodel/pure/packageableElements/data-quality/DataQualityValidationConfiguration.js';
65
+
66
+ export const DataQualityResultPanel = observer(
67
+ (props: { dataQualityState: DataQualityState }) => {
68
+ const { dataQualityState } = props;
69
+ const applicationStore = useApplicationStore();
70
+ const resultState = dataQualityState.resultState;
71
+ const executionResult = resultState.executionResult;
72
+
73
+ const buildFilterExpression = (
74
+ queryBuilderState: QueryBuilderState,
75
+ ): void => {
76
+ const { filterState } = queryBuilderState;
77
+ const filterConditionExpressions = filterState.rootIds
78
+ .map((e) => guaranteeNonNullable(filterState.nodes.get(e)))
79
+ .map((e) => buildFilterConditionExpression(filterState, e))
80
+ .filter(isNonNullable);
81
+ if (!filterConditionExpressions.length) {
82
+ dataQualityClassValidation_setFilter(
83
+ dataQualityState.constraintsConfigurationElement as DataQualityClassValidationsConfiguration,
84
+ undefined,
85
+ );
86
+ return;
87
+ }
88
+ const genericType = new GenericType(queryBuilderState.class!);
89
+ const genericTypeReference =
90
+ GenericTypeExplicitReference.create(genericType);
91
+
92
+ const functionType = new FunctionType(
93
+ PackageableElementExplicitReference.create(
94
+ queryBuilderState.graphManagerState.graph.getType(CORE_PURE_PATH.ANY),
95
+ ),
96
+ Multiplicity.ONE,
97
+ );
98
+ functionType.parameters.push(
99
+ new VariableExpression(
100
+ filterState.lambdaParameterName,
101
+ Multiplicity.ONE,
102
+ genericTypeReference,
103
+ ),
104
+ );
105
+
106
+ const lambdaFunction = new LambdaFunction(functionType);
107
+ lambdaFunction.expressionSequence = filterConditionExpressions;
108
+ dataQualityClassValidation_setFilter(
109
+ dataQualityState.constraintsConfigurationElement as DataQualityClassValidationsConfiguration,
110
+ buildRawLambdaFromLambdaFunction(
111
+ lambdaFunction,
112
+ queryBuilderState.graphManagerState,
113
+ ),
114
+ );
115
+ };
116
+
117
+ const runQuery = (): void => {
118
+ resultState.pressedRunQuery.inProgress();
119
+ flowResult(resultState.runQuery()).catch(
120
+ applicationStore.alertUnhandledError,
121
+ );
122
+ resultState.pressedRunQuery.complete();
123
+ };
124
+ const cancelQuery = applicationStore.guardUnhandledError(() =>
125
+ flowResult(resultState.cancelQuery()),
126
+ );
127
+
128
+ const generatePlan = applicationStore.guardUnhandledError(() => {
129
+ buildFilterExpression(dataQualityState.dataQualityQueryBuilderState);
130
+ return flowResult(resultState.generatePlan(false));
131
+ });
132
+ const debugPlanGeneration = applicationStore.guardUnhandledError(() =>
133
+ flowResult(resultState.generatePlan(true)),
134
+ );
135
+
136
+ const allowSettingPreviewLimit = dataQualityState.isQuerySupported;
137
+
138
+ const isRunQueryDisabled =
139
+ resultState.isGeneratingPlan ||
140
+ resultState.pressedRunQuery.isInProgress ||
141
+ dataQualityState.dataQualityQueryBuilderState.filterState
142
+ .allValidationIssues.length !== 0;
143
+
144
+ const getResultSetDescription = (
145
+ _executionResult: ExecutionResult,
146
+ ): string | undefined => {
147
+ const queryDuration = resultState.executionDuration
148
+ ? prettyDuration(resultState.executionDuration, {
149
+ ms: true,
150
+ })
151
+ : undefined;
152
+ if (!queryDuration) {
153
+ return undefined;
154
+ }
155
+ return `query ran in ${queryDuration}`;
156
+ };
157
+ const resultDescription = executionResult
158
+ ? getResultSetDescription(executionResult)
159
+ : undefined;
160
+
161
+ const [previewLimitValue, setPreviewLimitValue] = useState(
162
+ resultState.previewLimit,
163
+ );
164
+
165
+ const changePreviewLimit: React.ChangeEventHandler<HTMLInputElement> = (
166
+ event,
167
+ ) => {
168
+ setPreviewLimitValue(parseInt(event.target.value, 10));
169
+ };
170
+
171
+ const inputRef = useRef<HTMLInputElement>(null);
172
+
173
+ const getPreviewLimit = (): void => {
174
+ if (isNaN(previewLimitValue) || previewLimitValue === 0) {
175
+ setPreviewLimitValue(1);
176
+ dataQualityState.resultState.setPreviewLimit(1);
177
+ } else {
178
+ dataQualityState.resultState.setPreviewLimit(previewLimitValue);
179
+ }
180
+ };
181
+
182
+ const onKeyDown: React.KeyboardEventHandler<HTMLInputElement> = (event) => {
183
+ if (event.code === 'Enter') {
184
+ getPreviewLimit();
185
+ inputRef.current?.focus();
186
+ } else if (event.code === 'Escape') {
187
+ inputRef.current?.select();
188
+ }
189
+ };
190
+
191
+ const isLoading =
192
+ resultState.isRunningQuery || resultState.isGeneratingPlan;
193
+
194
+ return (
195
+ <div
196
+ data-testid={
197
+ DATA_QUALITY_VALIDATION_TEST_ID.DATA_QUALITY_VALIDATION_RESULT_PANEL
198
+ }
199
+ className="panel data-quality-validation__result"
200
+ >
201
+ <div className="panel__header">
202
+ <div className="panel__header__title">
203
+ <div className="panel__header__title__label">results</div>
204
+ {resultState.pressedRunQuery.isInProgress && (
205
+ <div className="panel__header__title__label__status">
206
+ Running Query...
207
+ </div>
208
+ )}
209
+ <div
210
+ data-testid={
211
+ DATA_QUALITY_VALIDATION_TEST_ID.DATA_QUALITY_VALIDATION_RESULT_ANALYTICS
212
+ }
213
+ className="data-quality-validation__result__analytics"
214
+ >
215
+ {resultDescription ?? ''}
216
+ </div>
217
+ {executionResult && resultState.checkForStaleResults && (
218
+ <div className="data-quality-validation__result__stale-status">
219
+ <div className="data-quality-validation__result__stale-status__icon">
220
+ <ExclamationTriangleIcon />
221
+ </div>
222
+ <div className="data-quality-validation__result__stale-status__label">
223
+ Preview data might be stale
224
+ </div>
225
+ </div>
226
+ )}
227
+ </div>
228
+ <div className="panel__header__actions data-quality-validation__result__header__actions">
229
+ {allowSettingPreviewLimit && (
230
+ <div className="data-quality-validation__result__limit">
231
+ <div className="data-quality-validation__result__limit__label">
232
+ preview row limit
233
+ </div>
234
+ <input
235
+ ref={inputRef}
236
+ className="input--dark data-quality-validation__result__limit__input"
237
+ spellCheck={false}
238
+ type="number"
239
+ value={previewLimitValue}
240
+ onChange={changePreviewLimit}
241
+ onBlur={getPreviewLimit}
242
+ onKeyDown={onKeyDown}
243
+ />
244
+ </div>
245
+ )}
246
+
247
+ <div className="data-quality-validation__result__execute-btn btn__dropdown-combo btn__dropdown-combo--primary">
248
+ {resultState.isRunningQuery ? (
249
+ <button
250
+ className="btn__dropdown-combo__canceler data-quality-validation__result__execute-btn__btn"
251
+ onClick={cancelQuery}
252
+ tabIndex={-1}
253
+ >
254
+ <div className="btn--dark btn--caution btn__dropdown-combo__canceler__label data-quality-validation__result__execute-btn__btn">
255
+ <PauseCircleIcon />
256
+ Stop
257
+ </div>
258
+ </button>
259
+ ) : (
260
+ <>
261
+ <button
262
+ className="btn__dropdown-combo__label data-quality-validation__result__execute-btn__btn data-quality-validation__result__execute-btn__btn--green"
263
+ onClick={runQuery}
264
+ tabIndex={-1}
265
+ disabled={isRunQueryDisabled}
266
+ >
267
+ <PlayIcon />
268
+ Run Query
269
+ </button>
270
+ <ControlledDropdownMenu
271
+ className="btn__dropdown-combo__dropdown-btn data-quality-validation__result__execute-btn__btn data-quality-validation__result__execute-btn__btn--green"
272
+ disabled={isRunQueryDisabled}
273
+ content={
274
+ <MenuContent>
275
+ <MenuContentItem
276
+ className="btn__dropdown-combo__option"
277
+ onClick={generatePlan}
278
+ disabled={isRunQueryDisabled}
279
+ >
280
+ <MenuContentItemIcon>
281
+ <ReportIcon />
282
+ </MenuContentItemIcon>
283
+ <MenuContentItemLabel>
284
+ Generate Plan
285
+ </MenuContentItemLabel>
286
+ </MenuContentItem>
287
+ <MenuContentItem
288
+ className="btn__dropdown-combo__option"
289
+ onClick={debugPlanGeneration}
290
+ disabled={isRunQueryDisabled}
291
+ >
292
+ <MenuContentItemIcon>
293
+ <DebugIcon />
294
+ </MenuContentItemIcon>
295
+ <MenuContentItemLabel>Debug</MenuContentItemLabel>
296
+ </MenuContentItem>
297
+ </MenuContent>
298
+ }
299
+ menuProps={{
300
+ anchorOrigin: { vertical: 'bottom', horizontal: 'right' },
301
+ transformOrigin: { vertical: 'top', horizontal: 'right' },
302
+ }}
303
+ >
304
+ <CaretDownIcon />
305
+ </ControlledDropdownMenu>
306
+ </>
307
+ )}
308
+ </div>
309
+ </div>
310
+ </div>
311
+ <PanelContent className="data-quality-validation__result__content">
312
+ <CubesLoadingIndicator isLoading={isLoading}>
313
+ <CubesLoadingIndicatorIcon />
314
+ </CubesLoadingIndicator>
315
+ {!executionResult && !isLoading && (
316
+ <BlankPanelContent>
317
+ Build or load a valid query first
318
+ </BlankPanelContent>
319
+ )}
320
+ {executionResult && !isLoading && (
321
+ <div className="data-quality-validation__result__values">
322
+ <DataQualityResultValues
323
+ executionResult={executionResult}
324
+ dataQualityState={dataQualityState}
325
+ />
326
+ </div>
327
+ )}
328
+ </PanelContent>
329
+ <ExecutionPlanViewer
330
+ executionPlanState={resultState.executionPlanState}
331
+ />
332
+ </div>
333
+ );
334
+ },
335
+ );
@@ -0,0 +1,61 @@
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 type { DataQualityState } from './states/DataQualityState.js';
19
+ import {
20
+ type ExecutionResult,
21
+ extractExecutionResultValues,
22
+ RawExecutionResult,
23
+ } from '@finos/legend-graph';
24
+ import {
25
+ CODE_EDITOR_LANGUAGE,
26
+ CodeEditor,
27
+ } from '@finos/legend-lego/code-editor';
28
+ import { DEFAULT_TAB_SIZE } from '@finos/legend-application';
29
+
30
+ export const DataQualityResultValues = observer(
31
+ (props: {
32
+ executionResult: ExecutionResult;
33
+ dataQualityState: DataQualityState;
34
+ }) => {
35
+ const { executionResult } = props;
36
+ if (executionResult instanceof RawExecutionResult) {
37
+ const inputValue =
38
+ executionResult.value === null
39
+ ? 'null'
40
+ : executionResult.value.toString();
41
+ return (
42
+ <CodeEditor
43
+ language={CODE_EDITOR_LANGUAGE.TEXT}
44
+ inputValue={inputValue}
45
+ isReadOnly={true}
46
+ />
47
+ );
48
+ }
49
+ return (
50
+ <CodeEditor
51
+ language={CODE_EDITOR_LANGUAGE.JSON}
52
+ inputValue={JSON.stringify(
53
+ extractExecutionResultValues(executionResult),
54
+ null,
55
+ DEFAULT_TAB_SIZE,
56
+ )}
57
+ isReadOnly={true}
58
+ />
59
+ );
60
+ },
61
+ );
@@ -0,0 +1,49 @@
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 { DataQualityServiceValidationSideBar } from './DataQualitySideBar.js';
19
+ import { useEditorStore } from '@finos/legend-application-studio';
20
+ import { DataQualityServiceValidationState } from './states/DataQualityServiceValidationState.js';
21
+ import { DataQualityValidationEditor } from './DataQualityValidationEditor.js';
22
+ import { ResizablePanel, ResizablePanelGroup } from '@finos/legend-art';
23
+ import { DataQualityExplorerPanel } from './DataQualityExplorerPanel.js';
24
+
25
+ export const DataQualityServiceValidationEditor = observer(() => {
26
+ const editorStore = useEditorStore();
27
+ const dataQualityServiceValidationState =
28
+ editorStore.tabManagerState.getCurrentEditorState(
29
+ DataQualityServiceValidationState,
30
+ );
31
+ return (
32
+ <DataQualityValidationEditor
33
+ dataQualityState={dataQualityServiceValidationState}
34
+ SideBarBasisComponent={
35
+ <DataQualityServiceValidationSideBar
36
+ dataQualityState={dataQualityServiceValidationState}
37
+ >
38
+ <ResizablePanelGroup orientation="horizontal">
39
+ <ResizablePanel minSize={40} direction={1}>
40
+ <DataQualityExplorerPanel
41
+ dataQualityState={dataQualityServiceValidationState}
42
+ />
43
+ </ResizablePanel>
44
+ </ResizablePanelGroup>
45
+ </DataQualityServiceValidationSideBar>
46
+ }
47
+ />
48
+ );
49
+ });