@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,1660 @@
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
+ @use 'mixins' as *;
18
+
19
+ .data-quality-validation {
20
+ height: 100%;
21
+ width: 100%;
22
+
23
+ &__body {
24
+ height: 100%;
25
+ width: 100%;
26
+ display: flex;
27
+ }
28
+
29
+ &__content {
30
+ height: 100%;
31
+ width: 100%;
32
+ display: flex;
33
+ flex-direction: column;
34
+ background: var(--color-dark-grey-50);
35
+ }
36
+
37
+ &__main {
38
+ height: 100%;
39
+ width: 100%;
40
+ padding: 0.3rem;
41
+ }
42
+
43
+ &__header {
44
+ @include flexVCenter;
45
+
46
+ height: 3.2rem;
47
+ background: var(--color-dark-grey-100);
48
+ }
49
+
50
+ &__header__statuses {
51
+ @include flexVCenter;
52
+
53
+ height: 2.2rem;
54
+ margin-left: 0.5rem;
55
+ padding: 0 0.2rem;
56
+ background: var(--color-dark-grey-200);
57
+ border-radius: 0.2rem;
58
+ }
59
+
60
+ &__header__status {
61
+ @include flexCenter;
62
+
63
+ height: 2.2rem;
64
+ width: 2.2rem;
65
+
66
+ svg {
67
+ color: var(--color-dark-grey-400);
68
+ }
69
+
70
+ &--action:hover svg {
71
+ color: var(--color-light-grey-400);
72
+ }
73
+
74
+ &__icon {
75
+ &--calendar {
76
+ font-size: 1.6rem;
77
+ }
78
+ }
79
+ }
80
+
81
+ &__header__actions {
82
+ @include flexVCenter;
83
+
84
+ justify-content: flex-end;
85
+ flex: 1;
86
+
87
+ &__undo-redo {
88
+ @include flexVCenter;
89
+
90
+ &__button {
91
+ color: var(--color-light-blue-50);
92
+ margin-left: 1rem;
93
+ margin-right: 1rem;
94
+
95
+ svg {
96
+ font-size: 1.1rem;
97
+ }
98
+
99
+ &__label {
100
+ font-size: 1.2rem;
101
+ font-weight: 700;
102
+ }
103
+ }
104
+
105
+ &__button[disabled] {
106
+ color: var(--color-dark-grey-500);
107
+ }
108
+ }
109
+ }
110
+
111
+ &__header__advanced-dropdown {
112
+ @include flexCenter;
113
+
114
+ height: 2.2rem;
115
+ padding: 0 1rem;
116
+ border-radius: 0.2rem;
117
+ margin-right: 0.5rem;
118
+ font-weight: 500;
119
+ border: 0.1rem solid var(--color-dark-grey-300);
120
+
121
+ &__label {
122
+ font-size: 1.2rem;
123
+ color: var(--color-dark-grey-500);
124
+ }
125
+
126
+ &__icon {
127
+ margin-left: 1rem;
128
+ color: var(--color-dark-grey-500);
129
+ }
130
+
131
+ svg {
132
+ cursor: pointer;
133
+ }
134
+ }
135
+
136
+ &__header__advanced-dropdown-content {
137
+ @include flexCenter;
138
+
139
+ svg {
140
+ font-size: 1rem;
141
+ margin-left: 1rem;
142
+ }
143
+ }
144
+
145
+ &__sql__modal {
146
+ overflow: auto;
147
+ }
148
+
149
+ .panel {
150
+ height: 100%;
151
+ padding: 0.3rem;
152
+
153
+ &__header {
154
+ height: 3.4rem;
155
+ min-height: 3.4rem;
156
+ padding-left: 0.5rem;
157
+ color: var(--color-light-grey-300);
158
+ font-weight: bold;
159
+ background: var(--color-dark-grey-100);
160
+ border-radius: 0.2rem 0.2rem 0 0;
161
+ border-top: 0.1rem solid var(--color-dark-grey-200);
162
+ }
163
+
164
+ &__header__title__label {
165
+ @include flexCenter;
166
+
167
+ padding: 0.7rem;
168
+ height: 2.2rem;
169
+ background: var(--color-dark-grey-280);
170
+ }
171
+
172
+ &__header__action {
173
+ color: var(--color-light-grey-400);
174
+ }
175
+
176
+ &__header__action svg {
177
+ color: var(--color-light-grey-400);
178
+ }
179
+
180
+ &__header__action:hover svg {
181
+ color: var(--color-light-grey-100);
182
+ }
183
+
184
+ &__header__action[disabled] svg,
185
+ &__header__action[disabled]:hover svg {
186
+ color: var(--color-dark-grey-300);
187
+ }
188
+
189
+ &__header__action--toggled svg {
190
+ color: var(--color-blue-150);
191
+ }
192
+
193
+ &__header__action--toggled:hover svg {
194
+ color: var(--color-blue-50);
195
+ }
196
+
197
+ &__header__action--toggled[disabled] svg,
198
+ &__header__action--toggled[disabled]:hover svg {
199
+ color: var(--color-blue-300);
200
+ }
201
+
202
+ &__content {
203
+ height: calc(100% - 3.4rem);
204
+ background: var(--color-dark-grey-80);
205
+ border-radius: 0 0 0.2rem 0.2rem;
206
+ border-bottom: 0.1rem solid var(--color-dark-grey-85);
207
+ box-shadow: var(--color-dark-shade-280) 0 0.1rem 0.5rem 0;
208
+ }
209
+ }
210
+
211
+ &__status-bar {
212
+ @include flexVCenter;
213
+ @include flexHSpaceBetween;
214
+
215
+ height: 2.2rem;
216
+ background: var(--color-blue-100);
217
+ color: var(--color-light-grey-0);
218
+ padding: 0 0.5rem 0 1rem;
219
+
220
+ &__left {
221
+ height: 100%;
222
+ display: flex;
223
+ align-items: center;
224
+ }
225
+
226
+ &__right {
227
+ height: 100%;
228
+ display: flex;
229
+ align-items: center;
230
+ }
231
+
232
+ &__action {
233
+ @include flexCenter;
234
+
235
+ cursor: pointer;
236
+ background: none;
237
+ height: 100%;
238
+ width: 3rem;
239
+
240
+ &__toggler {
241
+ color: var(--color-dark-shade-300);
242
+
243
+ &--toggled {
244
+ color: var(--color-light-grey-0);
245
+ }
246
+ }
247
+ }
248
+
249
+ &__view-diff-btn {
250
+ &:not([disabled]) {
251
+ color: var(--color-light-grey-0);
252
+ }
253
+
254
+ svg {
255
+ font-size: 1.8rem;
256
+ }
257
+ }
258
+
259
+ &__compile-btn {
260
+ @include flexCenter;
261
+
262
+ background: none;
263
+ color: var(--color-light-grey-0);
264
+ cursor: pointer;
265
+ padding: 0 0.5rem;
266
+
267
+ &[disabled] {
268
+ color: var(--color-dark-shade-300);
269
+ }
270
+
271
+ &--wiggling svg {
272
+ animation: hammer-wiggle 0.5s infinite ease;
273
+ transform-origin: bottom left;
274
+ }
275
+
276
+ @keyframes hammer-wiggle {
277
+ from {
278
+ transform: rotate(-7deg);
279
+ }
280
+
281
+ to {
282
+ transform: rotate(10deg);
283
+ }
284
+ }
285
+ }
286
+ }
287
+
288
+ &__property__name {
289
+ &__editor {
290
+ @include flexVCenter;
291
+
292
+ margin-left: -0.6rem;
293
+ height: 3.4rem;
294
+ flex: 2;
295
+
296
+ &__input {
297
+ padding: 0.5rem;
298
+ width: 100%;
299
+ height: 2.8rem;
300
+ line-height: 2.8rem;
301
+ background: var(--color-dark-grey-100);
302
+ border: 0.1rem solid var(--color-dark-grey-300);
303
+ color: var(--color-light-grey-200);
304
+
305
+ &:focus {
306
+ border: 0.1rem solid var(--color-blue-200);
307
+ outline: none;
308
+ }
309
+ }
310
+ }
311
+
312
+ &__display {
313
+ @include ellipsisTextOverflow;
314
+
315
+ font-size: 1.4rem;
316
+ flex: 4;
317
+ max-width: fit-content;
318
+
319
+ &__content {
320
+ &--error {
321
+ color: var(--color-red-200) !important;
322
+ }
323
+ }
324
+ }
325
+ }
326
+
327
+ .editable-value {
328
+ color: var(--color-blue-40);
329
+ cursor: pointer;
330
+ text-decoration: underline;
331
+ text-decoration-style: dotted;
332
+
333
+ &:hover {
334
+ text-decoration-style: solid;
335
+ }
336
+ }
337
+ }
338
+
339
+ .data-quality-validation__setup {
340
+ .panel__content {
341
+ height: 100%;
342
+ }
343
+
344
+ &__content {
345
+ padding: 0.5rem;
346
+ border-bottom: 0.1rem solid var(--color-dark-grey-200);
347
+ overflow: hidden;
348
+ border-radius: 0.2rem;
349
+ }
350
+
351
+ &__config-group {
352
+ width: 100%;
353
+
354
+ &__header {
355
+ @include flexVCenter;
356
+
357
+ justify-content: space-between;
358
+ height: 1.6rem;
359
+ padding-left: 1rem;
360
+ background: var(--color-blue-300);
361
+ border-radius: 0.2rem 0.2rem 0.2rem 0;
362
+
363
+ &__title {
364
+ color: var(--color-light-grey-300);
365
+ font-size: 1rem;
366
+ font-weight: 500;
367
+ }
368
+
369
+ &__dropdown-trigger {
370
+ @include flexCenter;
371
+
372
+ height: 100%;
373
+ width: 3rem;
374
+
375
+ svg {
376
+ color: var(--color-light-grey-300);
377
+ }
378
+ }
379
+ }
380
+
381
+ &__content {
382
+ display: flex;
383
+ flex-direction: column;
384
+ width: 100%;
385
+ padding: 0.5rem 0 0 0.5rem;
386
+ border-left: 0.5rem solid var(--color-blue-300);
387
+ }
388
+
389
+ &__item {
390
+ @include flexVCenter;
391
+
392
+ width: 100%;
393
+ }
394
+
395
+ &__item__label {
396
+ @include flexCenter;
397
+
398
+ background: var(--color-dark-grey-100);
399
+ margin-right: 0.5rem;
400
+ }
401
+
402
+ &__item__selector {
403
+ width: 100%;
404
+ max-width: unset;
405
+ }
406
+
407
+ &__item + &__item {
408
+ margin-top: 0.5rem;
409
+ }
410
+
411
+ &--class &__header {
412
+ background: var(--color-purple-400);
413
+ }
414
+
415
+ &--class &__content {
416
+ padding-top: 0;
417
+ border-left: 0.5rem solid var(--color-purple-400);
418
+ }
419
+
420
+ &--class &__item__label {
421
+ border: 0.1rem solid var(--color-purple-400);
422
+ }
423
+ }
424
+
425
+ &__class-option-label {
426
+ @include flexVCenter;
427
+
428
+ &--deprecated &__name {
429
+ text-decoration: line-through 0.1rem;
430
+ }
431
+
432
+ &__milestoning {
433
+ @include flexCenter;
434
+
435
+ cursor: default;
436
+ width: 2rem;
437
+ font-size: 1.2rem;
438
+ color: var(--color-light-grey-400);
439
+ }
440
+ }
441
+
442
+ &__milestoning {
443
+ margin-left: 0.5rem;
444
+ }
445
+
446
+ &__config-group + &__config-group {
447
+ margin-top: 0.5rem;
448
+ }
449
+
450
+ &__runtime-option--custom {
451
+ @include flexVCenter;
452
+
453
+ svg {
454
+ color: var(--color-blue-100);
455
+ }
456
+
457
+ &__label {
458
+ @include flexCenter;
459
+
460
+ margin-left: 0.5rem;
461
+ height: 1.6rem;
462
+ font-size: 1.2rem;
463
+ font-weight: 500;
464
+ background: var(--color-dark-grey-250);
465
+ padding: 0 0.5rem;
466
+ border-radius: 0.2rem;
467
+ }
468
+ }
469
+ }
470
+
471
+ .data-quality-validation__side-bar {
472
+ display: flex;
473
+ flex-direction: column;
474
+ width: 100%;
475
+ height: 100%;
476
+
477
+ .data-quality-validation__setup.panel {
478
+ height: 13.1rem;
479
+ }
480
+
481
+ &__content {
482
+ height: calc(100% - 13.1rem);
483
+ }
484
+ }
485
+
486
+ .data-quality-validation__setup__data-space {
487
+ &--with-runtime {
488
+ .data-quality-validation__setup.panel {
489
+ height: 16.4rem;
490
+ }
491
+
492
+ .data-quality-validation__side-bar__content {
493
+ height: calc(100% - 16.4rem);
494
+ }
495
+ }
496
+
497
+ &__option {
498
+ @include ellipsisTextOverflow;
499
+
500
+ display: inline-flex;
501
+ }
502
+
503
+ &__option__path {
504
+ font-size: 1.2rem;
505
+ color: var(--color-dark-grey-400);
506
+ margin-left: 0.5rem;
507
+ line-height: 1.4rem;
508
+ }
509
+
510
+ &__option__gav {
511
+ font-size: 1.2rem;
512
+ color: var(--color-blue-50);
513
+ margin-left: 0.5rem;
514
+ line-height: 1.4rem;
515
+ }
516
+
517
+ &__icon__execution-context {
518
+ color: var(--color-lime-75);
519
+ }
520
+ }
521
+
522
+ .data-quality-validation__explorer {
523
+ .backdrop__element {
524
+ // this is needed to make DnD elements from the explorer tree floats above other backdrop elements
525
+ z-index: 101;
526
+ }
527
+
528
+ &__header__action--active.panel__header__action:hover,
529
+ &__header__action--active.panel__header__action {
530
+ svg {
531
+ color: var(--color-light-grey-100);
532
+ }
533
+ }
534
+
535
+ &__content {
536
+ overflow-y: auto;
537
+ padding: 0.5rem 0;
538
+ }
539
+
540
+ &--on-backdrop {
541
+ z-index: 1;
542
+ }
543
+
544
+ &__preview-data-modal {
545
+ width: auto;
546
+ height: auto;
547
+ min-width: 30vw;
548
+ }
549
+
550
+ &__preview-data-modal__placeholder {
551
+ @include flexCenter;
552
+
553
+ color: var(--color-light-grey-400);
554
+ font-family: 'Roboto Mono', monospace;
555
+ min-height: 5vw;
556
+ }
557
+
558
+ &__preview-data-modal__body {
559
+ @include flexCenter;
560
+
561
+ padding: 2rem;
562
+
563
+ .table {
564
+ width: 100%;
565
+ color: var(--color-light-grey-400);
566
+ font-family: 'Roboto Mono', monospace;
567
+ }
568
+ }
569
+ }
570
+
571
+ .data-quality-validation__icon {
572
+ &__edit {
573
+ font-size: 1.2rem;
574
+ }
575
+
576
+ &__more-options {
577
+ font-size: 1.6rem;
578
+ }
579
+
580
+ &__query-option {
581
+ font-size: 1.8rem;
582
+ }
583
+
584
+ &__query-option--small {
585
+ font-size: 1.4rem;
586
+ }
587
+ }
588
+
589
+ .data-quality-tree-view {
590
+ &__node__expand-icon {
591
+ @include flexCenter;
592
+
593
+ width: 1.7rem;
594
+ height: 1.4rem;
595
+
596
+ svg {
597
+ font-size: 1rem;
598
+ }
599
+ }
600
+
601
+ &__node__container {
602
+ height: 2.2rem;
603
+
604
+ @include flexVCenter;
605
+
606
+ cursor: pointer;
607
+
608
+ &[draggable='true'] {
609
+ cursor: grab;
610
+ }
611
+ }
612
+
613
+ &__node__icon {
614
+ padding-right: 0.5rem;
615
+ height: 2.2rem;
616
+
617
+ @include flexCenter;
618
+
619
+ width: 2rem;
620
+ min-width: 2rem;
621
+ }
622
+
623
+ &__node__label {
624
+ height: 2.2rem;
625
+ line-height: 2.2rem;
626
+
627
+ @include ellipsisTextOverflow;
628
+ }
629
+ }
630
+
631
+ .data-quality-validation__tooltip {
632
+ border-radius: 0.2rem !important;
633
+ background: var(--color-dark-grey-200) !important;
634
+ opacity: 0.9 !important;
635
+ transition: none;
636
+ // as this tooltip can contain long documentation, it's best we limit its dimension
637
+ max-height: 30rem;
638
+ overflow: auto;
639
+
640
+ &--right {
641
+ margin: 0 0.5rem !important;
642
+ }
643
+
644
+ &__arrow {
645
+ color: var(--color-dark-grey-200) !important;
646
+ opacity: 0.9 !important;
647
+ }
648
+
649
+ &__header {
650
+ font-size: 1.5rem;
651
+ padding-bottom: 0.5rem;
652
+ border-bottom: 1px solid var(--color-dark-grey-500);
653
+ }
654
+
655
+ &__content {
656
+ padding: 0.5rem;
657
+ }
658
+
659
+ &__item {
660
+ display: flex;
661
+ line-height: 3rem;
662
+ }
663
+
664
+ &__item__label {
665
+ font-size: 1.3rem;
666
+ color: var(--color-dark-grey-500);
667
+ }
668
+
669
+ &__item__value {
670
+ font-size: 1.3rem;
671
+ font-weight: 500;
672
+ margin-left: 0.5rem;
673
+ // as this tooltip can contain long documentation, it's best we limit its dimension
674
+ max-width: 50rem;
675
+ white-space: pre-line; // properly preserve newline characters
676
+ }
677
+
678
+ &__item__action {
679
+ margin-left: 0.5rem;
680
+
681
+ svg {
682
+ color: var(--color-light-grey-150);
683
+
684
+ &:hover {
685
+ color: white;
686
+ }
687
+ }
688
+ }
689
+
690
+ &__combo {
691
+ display: flex;
692
+ align-items: center;
693
+ justify-content: space-between;
694
+ }
695
+
696
+ &__taggedValues {
697
+ max-height: 20rem;
698
+ overflow-y: scroll;
699
+ background-color: var(--color-dark-grey-100);
700
+ margin-top: 0.5rem;
701
+ margin-left: 1rem;
702
+ opacity: 0.9;
703
+ border: 1rem solid var(--color-dark-grey-100);
704
+
705
+ &__show-btn {
706
+ height: 1.5rem;
707
+ outline: none !important;
708
+ margin-left: 1rem;
709
+ white-space: nowrap;
710
+ }
711
+ }
712
+ }
713
+
714
+ .data-quality-validation-explorer-tree {
715
+ &__root {
716
+ padding: 0.5rem 0;
717
+ }
718
+
719
+ &__node__icon {
720
+ width: 4rem;
721
+ min-width: 4rem;
722
+ }
723
+
724
+ &__expand-icon,
725
+ &__type-icon {
726
+ @include flexCenter;
727
+
728
+ width: 1.7rem;
729
+ min-width: 1.7rem;
730
+ height: 1.4rem;
731
+ }
732
+
733
+ &__expand-icon svg {
734
+ font-size: 1rem;
735
+ color: var(--color-light-grey-200);
736
+ }
737
+
738
+ &__node__container:hover {
739
+ background: var(--color-dark-blue-shade-100);
740
+ }
741
+
742
+ &__node__container:hover &__node__action {
743
+ svg {
744
+ color: var(--color-dark-grey-500);
745
+ }
746
+ }
747
+
748
+ &__node__container--selected-from-context-menu {
749
+ background: var(--color-dark-blue-shade-100);
750
+ }
751
+
752
+ &__node__container--selected {
753
+ background: var(--color-light-blue-450);
754
+ }
755
+
756
+ &__node__label {
757
+ @include ellipsisTextOverflow;
758
+
759
+ height: 2rem;
760
+ line-height: 2rem;
761
+ min-width: 0;
762
+ color: var(--color-light-grey-400);
763
+ user-select: none;
764
+ }
765
+
766
+ &__node__label--property__name {
767
+ display: inline-flex;
768
+ }
769
+
770
+ &__node__label--deprecated {
771
+ text-decoration: line-through 0.1rem;
772
+ }
773
+
774
+ &__node__label--with-action {
775
+ width: calc(100% - 2rem);
776
+ }
777
+
778
+ &__node__label--with-preview {
779
+ width: calc(100% - 4rem);
780
+ }
781
+
782
+ &__node__label--highlight {
783
+ animation: highlight-keyframes 4s;
784
+
785
+ @keyframes highlight-keyframes {
786
+ 0% {
787
+ background: var(--color-blue-200);
788
+ }
789
+
790
+ 25% {
791
+ background: var(--color-blue-200);
792
+ }
793
+
794
+ 100% {
795
+ background: unset;
796
+ }
797
+ }
798
+ }
799
+
800
+ &__node__label__derived-property {
801
+ display: inline-flex;
802
+ font-weight: 700;
803
+ font-size: 1.1rem;
804
+ font-family: 'Roboto Mono', monospace;
805
+ color: var(--color-light-grey-400);
806
+ height: 2rem;
807
+ line-height: 2rem;
808
+ margin-left: 0.5rem;
809
+ }
810
+
811
+ &__node__label__multiple {
812
+ display: inline-flex;
813
+ font-weight: 700;
814
+ font-size: 1.6rem;
815
+ font-family: 'Roboto Mono', monospace;
816
+ height: 2rem;
817
+ line-height: 2rem;
818
+ margin-left: 0.5rem;
819
+ color: var(--color-yellow-200);
820
+ vertical-align: text-top;
821
+ }
822
+
823
+ &__node__actions {
824
+ display: flex;
825
+ height: 2rem;
826
+ padding-right: 0.5rem;
827
+ }
828
+
829
+ &__node__action {
830
+ @include flexCenter;
831
+
832
+ height: 2rem;
833
+ width: 2rem;
834
+
835
+ svg {
836
+ font-size: 1.3rem;
837
+ color: var(--color-dark-blue-shade-100);
838
+ }
839
+
840
+ &:hover svg {
841
+ color: var(--color-light-grey-200) !important;
842
+ }
843
+
844
+ &[disabled] svg {
845
+ color: var(--color-dark-grey-300);
846
+ }
847
+ }
848
+
849
+ &__icon {
850
+ color: var(--color-primitive);
851
+
852
+ &__boolean,
853
+ &__number,
854
+ &__time {
855
+ font-size: 1.2rem;
856
+ }
857
+ }
858
+
859
+ &__node__container--unmapped &__node__label,
860
+ &__node__container--unmapped &__type-icon .icon,
861
+ &__node__container--unmapped &__type-icon .icon svg,
862
+ &__node__container--unmapped &__type-icon &__icon,
863
+ &__node__container--unmapped &__node__label__derived-property,
864
+ &__node__container--unmapped &__node__label__multiple {
865
+ color: var(--color-dark-grey-350);
866
+ }
867
+
868
+ &__node__container--highlighted &__node__label,
869
+ &__node__container--highlighted &__node__label__derived-property,
870
+ &__node__container--highlighted &__node__label__multiple {
871
+ color: var(--color-skin-200);
872
+ }
873
+
874
+ &__node__info {
875
+ cursor: pointer;
876
+ }
877
+ }
878
+
879
+ .data-quality-validation-graph-fetch-panel {
880
+ overflow: hidden !important;
881
+ }
882
+
883
+ .data-quality-validation-graph-fetch-tree {
884
+ height: 100%;
885
+ width: 100%;
886
+ display: flex;
887
+ flex-direction: column;
888
+
889
+ &__toolbar {
890
+ @include flexVCenter;
891
+
892
+ justify-content: space-between;
893
+ height: 2.8rem;
894
+ margin-top: 0.3rem;
895
+ font-size: 1.2rem;
896
+ border-bottom: 0.1rem solid var(--color-dark-grey-100);
897
+
898
+ &__hint-icon {
899
+ @include flexCenter;
900
+
901
+ width: 3rem;
902
+
903
+ svg {
904
+ color: var(--color-dark-grey-500);
905
+ }
906
+ }
907
+ }
908
+
909
+ &__actions {
910
+ display: flex;
911
+ align-items: center;
912
+ cursor: pointer;
913
+
914
+ &__action {
915
+ margin-right: 1rem;
916
+ }
917
+
918
+ &__action-btn {
919
+ @include flexVCenter;
920
+
921
+ height: 100%;
922
+ margin: 0 0.3rem;
923
+
924
+ &__label {
925
+ @include flexVCenter;
926
+
927
+ height: 2.2rem;
928
+ padding: 0.5rem;
929
+ border-radius: 0.2rem 0 0 0.2rem;
930
+ background: var(--color-blue-200);
931
+ }
932
+
933
+ &__label__icon {
934
+ font-size: 1.4rem;
935
+ color: var(--color-light-grey-180);
936
+ }
937
+
938
+ &__label__title {
939
+ margin-left: 0.5rem;
940
+ color: var(--color-light-grey-180);
941
+ font-size: 1.2rem;
942
+ font-weight: 500;
943
+ }
944
+
945
+ &__label:hover &__label__icon,
946
+ &__label:hover &__label__title,
947
+ &__dropdown-btn:hover svg {
948
+ color: var(--color-light-grey-50);
949
+ }
950
+
951
+ &__label[disabled],
952
+ &__dropdown-btn[disabled] {
953
+ background: var(--color-dark-grey-250);
954
+ }
955
+
956
+ &__label[disabled] &__label__icon,
957
+ &__label[disabled] &__label__title,
958
+ &__dropdown-btn[disabled] svg {
959
+ color: var(--color-dark-grey-500);
960
+ }
961
+ }
962
+ }
963
+
964
+ &__container {
965
+ height: calc(100% - 2.8rem);
966
+ width: 100%;
967
+ padding: 0.5rem 0;
968
+
969
+ &__tree {
970
+ width: 100%;
971
+ }
972
+ }
973
+
974
+ &__node__container {
975
+ display: flex;
976
+ width: 100%;
977
+ height: 2.8rem;
978
+
979
+ &:hover {
980
+ background: var(--color-dark-blue-shade-100);
981
+ }
982
+ }
983
+
984
+ &__node__content {
985
+ @include flexVCenter;
986
+
987
+ height: 100%;
988
+ width: calc(100% - 3.3rem);
989
+ }
990
+
991
+ &__node__actions {
992
+ @include flexVCenter;
993
+
994
+ height: 100%;
995
+ padding-right: 0.5rem;
996
+ }
997
+
998
+ &__node__action {
999
+ @include flexCenter;
1000
+
1001
+ width: 3.4rem;
1002
+ height: 3.4rem;
1003
+
1004
+ svg {
1005
+ color: var(--color-light-grey-400);
1006
+ }
1007
+
1008
+ &:hover {
1009
+ svg {
1010
+ color: var(--color-light-grey-200);
1011
+ }
1012
+ }
1013
+ }
1014
+
1015
+ &__node__icon {
1016
+ width: 4.5rem;
1017
+ min-width: 4.5rem;
1018
+ }
1019
+
1020
+ &__expand-icon,
1021
+ &__type-icon {
1022
+ @include flexHCenter;
1023
+
1024
+ width: 1.5rem;
1025
+ min-width: 1.5rem;
1026
+ }
1027
+
1028
+ &__expand-icon svg {
1029
+ color: var(--color-light-grey-200);
1030
+ font-size: 1.2rem;
1031
+ }
1032
+
1033
+ &__node__label {
1034
+ display: flex;
1035
+ color: var(--color-light-grey-400);
1036
+ }
1037
+
1038
+ &__node__constraint {
1039
+ align-items: center;
1040
+ }
1041
+
1042
+ &__constraint__checkbox {
1043
+ width: 25px;
1044
+ padding-right: 5px;
1045
+ padding-bottom: 5px;
1046
+ }
1047
+
1048
+ &__constraint__name {
1049
+ margin-right: 20px;
1050
+ width: 30%;
1051
+ overflow-x: scroll;
1052
+ overflow-y: hidden;
1053
+ }
1054
+
1055
+ &__constraint__value {
1056
+ width: 50%;
1057
+ overflow-x: scroll;
1058
+ overflow-y: hidden;
1059
+ white-space: nowrap;
1060
+ }
1061
+
1062
+ &__node__sub-type,
1063
+ &__node__type {
1064
+ @include flexVCenter;
1065
+ }
1066
+
1067
+ &__node__sub-type__label,
1068
+ &__node__type__label {
1069
+ @include flexVCenter;
1070
+
1071
+ margin-left: 0.5rem;
1072
+ border-radius: 0.2rem;
1073
+ font-size: 1rem;
1074
+ padding: 0 0.5rem;
1075
+ height: 1.6rem;
1076
+ font-weight: 500;
1077
+ }
1078
+
1079
+ &__node__type__label {
1080
+ background: var(--color-dark-grey-250);
1081
+ color: var(--color-light-grey-200);
1082
+ }
1083
+
1084
+ &__node__sub-type__label {
1085
+ background: var(--color-light-grey-400);
1086
+ color: var(--color-dark-grey-250);
1087
+ border-radius: 0.2rem 1.4rem 1.4rem 0.2rem;
1088
+ padding-right: 0.7rem;
1089
+ }
1090
+ }
1091
+
1092
+ .data-quality-validation-graph-fetch-constraints-selection {
1093
+ width: 100%;
1094
+
1095
+ &__structural-attributes {
1096
+ display: flex;
1097
+ justify-content: right;
1098
+ }
1099
+
1100
+ &__config-group {
1101
+ width: 100%;
1102
+ height: 100%;
1103
+
1104
+ &__header {
1105
+ @include flexVCenter;
1106
+
1107
+ justify-content: space-between;
1108
+ height: 1.6rem;
1109
+ padding-left: 1rem;
1110
+ background: var(--color-dark-grey-280);
1111
+ border-radius: 0.2rem 0.2rem 0.2rem 0;
1112
+
1113
+ &__title {
1114
+ color: var(--color-light-grey-300);
1115
+ font-size: 1rem;
1116
+ font-weight: 500;
1117
+ }
1118
+
1119
+ &__dropdown-trigger {
1120
+ @include flexCenter;
1121
+
1122
+ height: 100%;
1123
+ width: 3rem;
1124
+
1125
+ svg {
1126
+ color: var(--color-light-grey-300);
1127
+ }
1128
+ }
1129
+ }
1130
+
1131
+ &__content {
1132
+ height: calc(100% - 2.2rem);
1133
+ position: relative;
1134
+ overflow-y: scroll;
1135
+ display: flex;
1136
+ flex-direction: column;
1137
+ width: 100%;
1138
+ padding: 0.5rem 0 0 0.5rem;
1139
+ border-left: 0.5rem solid var(--color-dark-grey-280);
1140
+ }
1141
+
1142
+ &__item {
1143
+ @include flexVCenter;
1144
+
1145
+ width: 100%;
1146
+ }
1147
+
1148
+ &__item__label {
1149
+ @include flexCenter;
1150
+
1151
+ background: var(--color-dark-grey-100);
1152
+ margin-right: 0.5rem;
1153
+ }
1154
+
1155
+ &__item__selector {
1156
+ width: 100%;
1157
+ max-width: unset;
1158
+ }
1159
+
1160
+ &__item + &__item {
1161
+ margin-top: 0.5rem;
1162
+ }
1163
+
1164
+ &--class &__header {
1165
+ background: var(--color-purple-400);
1166
+ }
1167
+
1168
+ &--class &__content {
1169
+ padding-top: 0;
1170
+ border-left: 0.5rem solid var(--color-purple-400);
1171
+ }
1172
+
1173
+ &--class &__item__label {
1174
+ border: 0.1rem solid var(--color-purple-400);
1175
+ }
1176
+ }
1177
+ }
1178
+
1179
+ .data-quality-editor-modal {
1180
+ padding: 0;
1181
+ height: 50vh;
1182
+ width: 50vw;
1183
+ overflow: hidden;
1184
+
1185
+ &__root-container {
1186
+ margin-top: 0 !important;
1187
+ }
1188
+
1189
+ &__container {
1190
+ align-items: center !important;
1191
+ }
1192
+
1193
+ &__content {
1194
+ max-width: 100vw !important;
1195
+ }
1196
+
1197
+ &__content--scrollable {
1198
+ max-width: 100vw !important;
1199
+ }
1200
+
1201
+ .modal__body {
1202
+ height: calc(100% - 8.6rem);
1203
+ padding: 0;
1204
+ }
1205
+
1206
+ .modal__body.modal__body--footless {
1207
+ height: calc(100% - 3.6rem);
1208
+ }
1209
+ }
1210
+
1211
+ .data-quality-validation__result__stale-status__icon,
1212
+ .data-quality-validation__result__stale-status__label {
1213
+ color: var(--color-legacylight-orange-100);
1214
+ }
1215
+
1216
+ .data-quality-validation__result__execute-btn__label {
1217
+ background: var(--color-legacylight-green-100);
1218
+ color: var(--color-white);
1219
+
1220
+ &:hover .data-quality-validation__result__execute-btn__label__title,
1221
+ &__title,
1222
+ &:hover svg,
1223
+ svg {
1224
+ color: var(--color-light-grey-0);
1225
+ }
1226
+ }
1227
+
1228
+ .data-quality-validation__result__execute-btn__dropdown-btn {
1229
+ background: var(--color-legacylight-green-100);
1230
+ border-color: var(--color-dark-shade-50);
1231
+
1232
+ :hover svg,
1233
+ svg {
1234
+ color: var(--color-white);
1235
+ }
1236
+ }
1237
+
1238
+ .data-quality-validation__result__execute-btn
1239
+ .data-quality-validation__result__execute-btn__label,
1240
+ .data-quality-validation__result__execute-btn[disabled]:hover
1241
+ .data-quality-validation__result__execute-btn__label,
1242
+ .data-quality-validation__result__execute-btn[disabled]
1243
+ .data-quality-validation__result__execute-btn__label {
1244
+ &__title,
1245
+ svg {
1246
+ color: var(--color-white);
1247
+ }
1248
+ }
1249
+
1250
+ .data-quality-validation__result__execute-btn[disabled]:hover
1251
+ .data-quality-validation__result__execute-btn__dropdown-btn,
1252
+ .data-quality-validation__result__execute-btn[disabled]
1253
+ .data-quality-validation__result__execute-btn__dropdown-btn {
1254
+ background: var(--color-legacylight-light-grey-200);
1255
+ border-color: var(--color-dark-shade-50);
1256
+
1257
+ svg {
1258
+ color: var(--color-light-grey-400);
1259
+ }
1260
+ }
1261
+
1262
+ .data-quality-validation__result__stop-btn__label.btn--caution {
1263
+ background: var(--color-legacylight-orange-100);
1264
+ color: var(--color-white);
1265
+
1266
+ &:hover .data-quality-validation__result__stop-btn__label__title,
1267
+ &__title,
1268
+ &:hover svg,
1269
+ svg {
1270
+ color: var(--color-white);
1271
+ }
1272
+ }
1273
+
1274
+ .data-quality-validation__result__stop-btn__dropdown-btn {
1275
+ background: var(--color-legacylight-green-100);
1276
+ border-color: var(--color-dark-shade-50);
1277
+
1278
+ :hover svg,
1279
+ svg {
1280
+ color: var(--color-white);
1281
+ }
1282
+ }
1283
+
1284
+ .btn__dropdown-combo__label[disabled],
1285
+ .btn__dropdown-combo__dropdown-btn[disabled] {
1286
+ background: var(--color-light-grey-400);
1287
+ }
1288
+
1289
+ .ag-row-selected .ag-cell-focus {
1290
+ background: var(--color-purple-0) !important;
1291
+ }
1292
+
1293
+ .data-quality-validation__result {
1294
+ .panel__content {
1295
+ width: 100%;
1296
+ }
1297
+
1298
+ &__content {
1299
+ position: relative;
1300
+ }
1301
+
1302
+ &__analytics {
1303
+ font-size: 1.2rem;
1304
+ color: var(--color-dark-grey-400);
1305
+ margin-left: 0.5rem;
1306
+ font-family: 'Roboto Mono', monospace;
1307
+ }
1308
+
1309
+ &__stale-status {
1310
+ @include flexVCenter;
1311
+
1312
+ margin-left: 1rem;
1313
+
1314
+ &__label {
1315
+ font-size: 1.2rem;
1316
+ color: var(--color-yellow-200);
1317
+ margin-left: 0.5rem;
1318
+ font-family: 'Roboto Mono', monospace;
1319
+ }
1320
+
1321
+ &__icon {
1322
+ color: var(--color-yellow-200);
1323
+ margin-left: 0.5rem;
1324
+ }
1325
+ }
1326
+
1327
+ &__advanced__mode {
1328
+ @include flexVCenter;
1329
+
1330
+ height: 100%;
1331
+ padding: 0.5rem;
1332
+
1333
+ &__label {
1334
+ @include flexCenter;
1335
+
1336
+ background: var(--color-dark-grey-280);
1337
+ padding: 0 1rem;
1338
+ height: 2.2rem;
1339
+ border-radius: 0.2rem 0 0 0.2rem;
1340
+ font-size: 1.2rem;
1341
+ user-select: none;
1342
+ }
1343
+
1344
+ &__toggler__btn {
1345
+ @include flexVCenter;
1346
+
1347
+ background: var(--color-dark-grey-280);
1348
+ padding: 0 0.5rem 0 0;
1349
+ height: 2.2rem;
1350
+
1351
+ svg {
1352
+ font-size: 2rem;
1353
+ color: var(--color-dark-grey-100);
1354
+ }
1355
+
1356
+ &[disabled] svg,
1357
+ &[disabled]:hover svg {
1358
+ cursor: not-allowed;
1359
+ color: var(--color-dark-grey-180);
1360
+ }
1361
+ }
1362
+
1363
+ &__toggler__btn--toggled {
1364
+ svg {
1365
+ font-size: 2rem;
1366
+ color: var(--color-blue-150);
1367
+ }
1368
+
1369
+ &[disabled] svg,
1370
+ &[disabled]:hover svg {
1371
+ cursor: not-allowed;
1372
+ color: var(--color-dark-grey-100);
1373
+ }
1374
+ }
1375
+ }
1376
+
1377
+ &__limit {
1378
+ @include flexVCenter;
1379
+
1380
+ height: 100%;
1381
+ padding: 0 0.5rem;
1382
+
1383
+ &__label {
1384
+ @include flexCenter;
1385
+
1386
+ background: var(--color-dark-grey-280);
1387
+ padding: 0 1rem;
1388
+ height: 100%;
1389
+ border-radius: 0.2rem 0 0 0.2rem;
1390
+ font-size: 1.2rem;
1391
+ user-select: none;
1392
+ }
1393
+
1394
+ &__input {
1395
+ height: 100%;
1396
+
1397
+ &:not(:focus) {
1398
+ border: 0.1rem solid var(--color-dark-grey-250);
1399
+ }
1400
+
1401
+ &[disabled] {
1402
+ cursor: not-allowed;
1403
+ }
1404
+ }
1405
+ }
1406
+
1407
+ &__slice {
1408
+ display: flex;
1409
+ align-items: center;
1410
+ border-radius: 0.2rem;
1411
+
1412
+ &__input {
1413
+ height: 2.8rem;
1414
+ width: 100%;
1415
+
1416
+ &[disabled] {
1417
+ cursor: not-allowed;
1418
+ }
1419
+
1420
+ &__wrapper {
1421
+ width: 15rem;
1422
+ }
1423
+ }
1424
+
1425
+ &__range {
1426
+ display: flex;
1427
+ align-items: center;
1428
+ padding: 0 0.3rem;
1429
+ font-size: 2rem;
1430
+ font-weight: bold;
1431
+ height: 2.8rem;
1432
+ color: var(--color-light-grey-150);
1433
+ cursor: default;
1434
+ }
1435
+ }
1436
+
1437
+ &__values {
1438
+ padding: 0 !important;
1439
+ position: relative;
1440
+ height: 100%;
1441
+
1442
+ &__table {
1443
+ width: 100%;
1444
+ height: 100%;
1445
+
1446
+ .ag-cell {
1447
+ padding: 0;
1448
+ }
1449
+
1450
+ &__cell {
1451
+ @include flexVCenter;
1452
+
1453
+ width: 100%;
1454
+ height: 100%;
1455
+ padding: 0 7px;
1456
+ display: flex;
1457
+
1458
+ &--active {
1459
+ background-color: var(--color-purple-400);
1460
+ }
1461
+ }
1462
+ }
1463
+ }
1464
+
1465
+ &__tds-grid {
1466
+ height: 100%;
1467
+
1468
+ // NOTE: we need to ensure the specificity here in case a later imported ag-theme-balham-dark
1469
+ // might override our theme customization here
1470
+ &.ag-theme-balham-dark {
1471
+ // Customize ag-grid theme
1472
+ // See https://www.ag-grid.com/javascript-grid-themes-customising/#customising-themes
1473
+ --ag-border-color: var(--color-dark-grey-200);
1474
+ --ag-background-color: var(--color-dark-grey-50);
1475
+ --ag-foreground-color: var(--color-light-grey-200);
1476
+ --ag-header-background-color: var(--color-dark-grey-100);
1477
+ --ag-header-foreground-color: var(--color-light-grey-50);
1478
+ --ag-balham-active-color: var(--color-yellow-200);
1479
+ --ag-odd-row-background-color: var(--color-dark-grey-50);
1480
+ --ag-even-row-background-color: var(--color-dark-grey-50);
1481
+ --ag-row-hover-color: var(--color-dark-blue-shade-100);
1482
+ --ag-row-border-color: var(--color-dark-grey-200);
1483
+ --ag-selected-row-background-color: var(--color-navy-300);
1484
+ --ag-range-selection-background-color: var(--color-navy-300);
1485
+ }
1486
+
1487
+ &__text {
1488
+ margin-bottom: 2rem;
1489
+ }
1490
+ }
1491
+
1492
+ &__header__actions {
1493
+ @include flexVCenter;
1494
+ }
1495
+
1496
+ &__sql__actions {
1497
+ height: 2.2rem;
1498
+ padding: 0 0.7rem;
1499
+
1500
+ svg {
1501
+ font-size: 1.8rem;
1502
+ }
1503
+ }
1504
+
1505
+ &__stop-btn {
1506
+ @include flexVCenter;
1507
+
1508
+ height: 100%;
1509
+ width: 12rem;
1510
+ margin: 0 0.3rem;
1511
+
1512
+ &__label {
1513
+ @include flexVCenter;
1514
+
1515
+ height: 2.2rem;
1516
+ width: 12rem;
1517
+ padding: 1rem;
1518
+ border-radius: 0.2rem;
1519
+ justify-content: left;
1520
+ }
1521
+
1522
+ &__label__icon {
1523
+ font-size: 1.2rem;
1524
+ color: var(--color-light-grey-180);
1525
+ }
1526
+
1527
+ &__label__title {
1528
+ margin-left: 0.7rem;
1529
+ color: var(--color-light-grey-180);
1530
+ font-size: 1.2rem;
1531
+ font-weight: 500;
1532
+ }
1533
+
1534
+ &__label:hover &__label__icon,
1535
+ &__label:hover &__label__title {
1536
+ color: var(--color-light-grey-50);
1537
+ }
1538
+ }
1539
+
1540
+ &__execute-btn {
1541
+ margin: 0 0.3rem;
1542
+ height: 100%;
1543
+
1544
+ & &__btn {
1545
+ height: 100%;
1546
+ font-size: 1.2rem;
1547
+ font-weight: 500;
1548
+ color: var(--color-light-grey-50);
1549
+ gap: 0.5rem;
1550
+
1551
+ & svg {
1552
+ color: var(--color-light-grey-50);
1553
+ }
1554
+
1555
+ &--green {
1556
+ background: var(--color-green-100);
1557
+ }
1558
+
1559
+ &--green[disabled] {
1560
+ opacity: 0.8;
1561
+ background: var(--color-green-80) !important;
1562
+ color: var(--color-light-grey-0);
1563
+
1564
+ & svg {
1565
+ color: var(--color-light-grey-0);
1566
+ }
1567
+ }
1568
+
1569
+ &--green:hover {
1570
+ background: var(--color-green-200);
1571
+ }
1572
+ }
1573
+ }
1574
+
1575
+ &__export__dropdown {
1576
+ @include flexVCenter;
1577
+
1578
+ margin-left: 0.5rem;
1579
+ height: 100%;
1580
+ border: 0.1rem solid var(--color-dark-grey-280);
1581
+ background: var(--color-dark-grey-280);
1582
+ color: var(--color-light-grey-50);
1583
+
1584
+ &[disabled],
1585
+ &[disabled]:hover {
1586
+ background: var(--color-dark-grey-200);
1587
+ border-color: var(--color-dark-grey-200);
1588
+ color: var(--color-dark-grey-500);
1589
+ opacity: 0.8;
1590
+ }
1591
+
1592
+ &:hover {
1593
+ background: var(--color-dark-grey-300);
1594
+ }
1595
+
1596
+ &__label {
1597
+ @include flexCenter;
1598
+ @include flexConstantDimension;
1599
+
1600
+ height: 100%;
1601
+ font-weight: 500;
1602
+ font-size: 1.2rem;
1603
+ width: 5rem;
1604
+ }
1605
+
1606
+ &__trigger {
1607
+ @include flexCenter;
1608
+ @include flexConstantDimension;
1609
+
1610
+ height: 100%;
1611
+ width: 2.2rem;
1612
+ }
1613
+
1614
+ &__menu__item {
1615
+ @include flexCenter;
1616
+
1617
+ width: 15rem;
1618
+ height: 2rem;
1619
+ }
1620
+ }
1621
+ }
1622
+
1623
+ .data-quality {
1624
+ &__tab {
1625
+ @include flexCenter;
1626
+
1627
+ display: inline-flex;
1628
+ height: 100%;
1629
+ color: var(--color-light-grey-400);
1630
+ padding: 0 1rem;
1631
+ border-right: 0.1rem solid var(--color-dark-grey-80);
1632
+ white-space: nowrap;
1633
+ cursor: pointer;
1634
+ }
1635
+
1636
+ &__tab--active {
1637
+ position: relative;
1638
+ }
1639
+
1640
+ &__tab--active::after {
1641
+ content: '';
1642
+ height: 0.2rem;
1643
+ width: 100%;
1644
+ position: absolute;
1645
+ bottom: 0;
1646
+ background: var(--color-yellow-200);
1647
+ }
1648
+
1649
+ &__tab__hint {
1650
+ @include flexCenter;
1651
+
1652
+ border-radius: 0.2rem;
1653
+ margin-left: 1rem;
1654
+ color: var(--color-light-grey-300);
1655
+
1656
+ svg {
1657
+ font-size: 1.2rem;
1658
+ }
1659
+ }
1660
+ }