@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.
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
+ });