@finos/legend-extension-dsl-data-quality 2.1.13 → 2.1.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (140) hide show
  1. package/lib/components/DataQualityCustomSelector.d.ts +35 -0
  2. package/lib/components/DataQualityCustomSelector.d.ts.map +1 -0
  3. package/lib/components/DataQualityCustomSelector.js +27 -0
  4. package/lib/components/DataQualityCustomSelector.js.map +1 -0
  5. package/lib/components/DataQualityRelationLambdaGUIDataTypeHandlers.d.ts +47 -0
  6. package/lib/components/DataQualityRelationLambdaGUIDataTypeHandlers.d.ts.map +1 -0
  7. package/lib/components/DataQualityRelationLambdaGUIDataTypeHandlers.js +47 -0
  8. package/lib/components/DataQualityRelationLambdaGUIDataTypeHandlers.js.map +1 -0
  9. package/lib/components/DataQualityRelationLambdaGUIValidationEditor.d.ts +23 -0
  10. package/lib/components/DataQualityRelationLambdaGUIValidationEditor.d.ts.map +1 -0
  11. package/lib/components/DataQualityRelationLambdaGUIValidationEditor.js +47 -0
  12. package/lib/components/DataQualityRelationLambdaGUIValidationEditor.js.map +1 -0
  13. package/lib/components/DataQualityRelationValidationEditor.d.ts.map +1 -1
  14. package/lib/components/DataQualityRelationValidationEditor.js +8 -4
  15. package/lib/components/DataQualityRelationValidationEditor.js.map +1 -1
  16. package/lib/components/DataQualityValidationFilterEditor.d.ts +25 -0
  17. package/lib/components/DataQualityValidationFilterEditor.d.ts.map +1 -0
  18. package/lib/components/DataQualityValidationFilterEditor.js +116 -0
  19. package/lib/components/DataQualityValidationFilterEditor.js.map +1 -0
  20. package/lib/components/DataQualityValidationFunctionRenderer.d.ts +39 -0
  21. package/lib/components/DataQualityValidationFunctionRenderer.d.ts.map +1 -0
  22. package/lib/components/DataQualityValidationFunctionRenderer.js +54 -0
  23. package/lib/components/DataQualityValidationFunctionRenderer.js.map +1 -0
  24. package/lib/components/DataQualityValidationHelperFunctionEditor.d.ts +25 -0
  25. package/lib/components/DataQualityValidationHelperFunctionEditor.d.ts.map +1 -0
  26. package/lib/components/DataQualityValidationHelperFunctionEditor.js +45 -0
  27. package/lib/components/DataQualityValidationHelperFunctionEditor.js.map +1 -0
  28. package/lib/components/constants/DataQualityConstants.d.ts +57 -0
  29. package/lib/components/constants/DataQualityConstants.d.ts.map +1 -1
  30. package/lib/components/constants/DataQualityConstants.js +63 -0
  31. package/lib/components/constants/DataQualityConstants.js.map +1 -1
  32. package/lib/components/states/DataQualityRelationValidationConfigurationState.d.ts +4 -1
  33. package/lib/components/states/DataQualityRelationValidationConfigurationState.d.ts.map +1 -1
  34. package/lib/components/states/DataQualityRelationValidationConfigurationState.js +26 -2
  35. package/lib/components/states/DataQualityRelationValidationConfigurationState.js.map +1 -1
  36. package/lib/components/states/DataQualityRelationValidationState.d.ts +5 -2
  37. package/lib/components/states/DataQualityRelationValidationState.d.ts.map +1 -1
  38. package/lib/components/states/DataQualityRelationValidationState.js +14 -2
  39. package/lib/components/states/DataQualityRelationValidationState.js.map +1 -1
  40. package/lib/components/states/DataQualityValidationLambdaFormState.d.ts +41 -0
  41. package/lib/components/states/DataQualityValidationLambdaFormState.d.ts.map +1 -0
  42. package/lib/components/states/DataQualityValidationLambdaFormState.js +121 -0
  43. package/lib/components/states/DataQualityValidationLambdaFormState.js.map +1 -0
  44. package/lib/components/states/LambdaEditorWithGUIState.d.ts +59 -0
  45. package/lib/components/states/LambdaEditorWithGUIState.d.ts.map +1 -0
  46. package/lib/components/states/LambdaEditorWithGUIState.js +196 -0
  47. package/lib/components/states/LambdaEditorWithGUIState.js.map +1 -0
  48. package/lib/components/utils/DataQualityFunctionDefaults.d.ts +36 -0
  49. package/lib/components/utils/DataQualityFunctionDefaults.d.ts.map +1 -0
  50. package/lib/components/utils/DataQualityFunctionDefaults.js +166 -0
  51. package/lib/components/utils/DataQualityFunctionDefaults.js.map +1 -0
  52. package/lib/components/utils/DataQualityLambdaParameterExtractorVisitor.d.ts +32 -0
  53. package/lib/components/utils/DataQualityLambdaParameterExtractorVisitor.d.ts.map +1 -0
  54. package/lib/components/utils/DataQualityLambdaParameterExtractorVisitor.js +173 -0
  55. package/lib/components/utils/DataQualityLambdaParameterExtractorVisitor.js.map +1 -0
  56. package/lib/components/utils/DataQualityLambdaParameterParser.d.ts +31 -0
  57. package/lib/components/utils/DataQualityLambdaParameterParser.d.ts.map +1 -0
  58. package/lib/components/utils/DataQualityLambdaParameterParser.js +162 -0
  59. package/lib/components/utils/DataQualityLambdaParameterParser.js.map +1 -0
  60. package/lib/components/utils/DataQualityValidateFunctionToPureLambdaVisitor.d.ts +30 -0
  61. package/lib/components/utils/DataQualityValidateFunctionToPureLambdaVisitor.d.ts.map +1 -0
  62. package/lib/components/utils/DataQualityValidateFunctionToPureLambdaVisitor.js +118 -0
  63. package/lib/components/utils/DataQualityValidateFunctionToPureLambdaVisitor.js.map +1 -0
  64. package/lib/components/utils/DataQualityValidationDescriptionGeneratorVisitor.d.ts +25 -0
  65. package/lib/components/utils/DataQualityValidationDescriptionGeneratorVisitor.d.ts.map +1 -0
  66. package/lib/components/utils/DataQualityValidationDescriptionGeneratorVisitor.js +89 -0
  67. package/lib/components/utils/DataQualityValidationDescriptionGeneratorVisitor.js.map +1 -0
  68. package/lib/components/utils/DataQualityValidationFunction.d.ts +94 -0
  69. package/lib/components/utils/DataQualityValidationFunction.d.ts.map +1 -0
  70. package/lib/components/utils/DataQualityValidationFunction.js +95 -0
  71. package/lib/components/utils/DataQualityValidationFunction.js.map +1 -0
  72. package/lib/components/utils/DataQualityValidationFunctionCloningVisitor.d.ts +47 -0
  73. package/lib/components/utils/DataQualityValidationFunctionCloningVisitor.d.ts.map +1 -0
  74. package/lib/components/utils/DataQualityValidationFunctionCloningVisitor.js +125 -0
  75. package/lib/components/utils/DataQualityValidationFunctionCloningVisitor.js.map +1 -0
  76. package/lib/components/utils/DataQualityValidationFunctionFactory.d.ts +32 -0
  77. package/lib/components/utils/DataQualityValidationFunctionFactory.d.ts.map +1 -0
  78. package/lib/components/utils/DataQualityValidationFunctionFactory.js +122 -0
  79. package/lib/components/utils/DataQualityValidationFunctionFactory.js.map +1 -0
  80. package/lib/components/utils/DataQualityValidationFunctionModifier.d.ts +24 -0
  81. package/lib/components/utils/DataQualityValidationFunctionModifier.d.ts.map +1 -0
  82. package/lib/components/utils/DataQualityValidationFunctionModifier.js +118 -0
  83. package/lib/components/utils/DataQualityValidationFunctionModifier.js.map +1 -0
  84. package/lib/components/utils/DataQualityValidationFunctionObserver.d.ts +25 -0
  85. package/lib/components/utils/DataQualityValidationFunctionObserver.d.ts.map +1 -0
  86. package/lib/components/utils/DataQualityValidationFunctionObserver.js +93 -0
  87. package/lib/components/utils/DataQualityValidationFunctionObserver.js.map +1 -0
  88. package/lib/components/utils/DataQualityValidationFunctionsUtils.d.ts +31 -0
  89. package/lib/components/utils/DataQualityValidationFunctionsUtils.d.ts.map +1 -0
  90. package/lib/components/utils/DataQualityValidationFunctionsUtils.js +143 -0
  91. package/lib/components/utils/DataQualityValidationFunctionsUtils.js.map +1 -0
  92. package/lib/components/utils/DataQualityValidationNameGeneratorVisitor.d.ts +29 -0
  93. package/lib/components/utils/DataQualityValidationNameGeneratorVisitor.d.ts.map +1 -0
  94. package/lib/components/utils/DataQualityValidationNameGeneratorVisitor.js +117 -0
  95. package/lib/components/utils/DataQualityValidationNameGeneratorVisitor.js.map +1 -0
  96. package/lib/data-quality-custom-selector.css +17 -0
  97. package/lib/data-quality-custom-selector.css.map +1 -0
  98. package/lib/graph-manager/protocol/pure/DSL_DataQuality_PureProtocolProcessorPlugin.d.ts +2 -1
  99. package/lib/graph-manager/protocol/pure/DSL_DataQuality_PureProtocolProcessorPlugin.d.ts.map +1 -1
  100. package/lib/graph-manager/protocol/pure/DSL_DataQuality_PureProtocolProcessorPlugin.js +8 -0
  101. package/lib/graph-manager/protocol/pure/DSL_DataQuality_PureProtocolProcessorPlugin.js.map +1 -1
  102. package/lib/graph-manager/protocol/pure/v1/V1_DataQualityValidationFunctionExpression.d.ts +18 -0
  103. package/lib/graph-manager/protocol/pure/v1/V1_DataQualityValidationFunctionExpression.d.ts.map +1 -0
  104. package/lib/graph-manager/protocol/pure/v1/V1_DataQualityValidationFunctionExpression.js +21 -0
  105. package/lib/graph-manager/protocol/pure/v1/V1_DataQualityValidationFunctionExpression.js.map +1 -0
  106. package/lib/index.css +2 -2
  107. package/lib/index.css.map +1 -1
  108. package/lib/package.json +1 -1
  109. package/package.json +9 -9
  110. package/src/components/DataQualityCustomSelector.tsx +87 -0
  111. package/src/components/DataQualityRelationLambdaGUIDataTypeHandlers.tsx +151 -0
  112. package/src/components/DataQualityRelationLambdaGUIValidationEditor.tsx +105 -0
  113. package/src/components/DataQualityRelationValidationEditor.tsx +57 -14
  114. package/src/components/DataQualityValidationFilterEditor.tsx +366 -0
  115. package/src/components/DataQualityValidationFunctionRenderer.tsx +154 -0
  116. package/src/components/DataQualityValidationHelperFunctionEditor.tsx +79 -0
  117. package/src/components/constants/DataQualityConstants.ts +63 -0
  118. package/src/components/states/DataQualityRelationValidationConfigurationState.ts +48 -2
  119. package/src/components/states/DataQualityRelationValidationState.ts +17 -2
  120. package/src/components/states/DataQualityValidationLambdaFormState.ts +201 -0
  121. package/src/components/states/LambdaEditorWithGUIState.ts +267 -0
  122. package/src/components/utils/DataQualityFunctionDefaults.ts +314 -0
  123. package/src/components/utils/DataQualityLambdaParameterExtractorVisitor.ts +296 -0
  124. package/src/components/utils/DataQualityLambdaParameterParser.ts +312 -0
  125. package/src/components/utils/DataQualityValidateFunctionToPureLambdaVisitor.ts +171 -0
  126. package/src/components/utils/DataQualityValidationDescriptionGeneratorVisitor.ts +132 -0
  127. package/src/components/utils/DataQualityValidationFunction.ts +192 -0
  128. package/src/components/utils/DataQualityValidationFunctionCloningVisitor.ts +254 -0
  129. package/src/components/utils/DataQualityValidationFunctionFactory.ts +199 -0
  130. package/src/components/utils/DataQualityValidationFunctionModifier.ts +195 -0
  131. package/src/components/utils/DataQualityValidationFunctionObserver.ts +141 -0
  132. package/src/components/utils/DataQualityValidationFunctionsUtils.ts +191 -0
  133. package/src/components/utils/DataQualityValidationNameGeneratorVisitor.ts +176 -0
  134. package/src/graph-manager/protocol/pure/DSL_DataQuality_PureProtocolProcessorPlugin.ts +24 -0
  135. package/src/graph-manager/protocol/pure/v1/V1_DataQualityValidationFunctionExpression.ts +40 -0
  136. package/style/_data-quality-relation-validation-builder.scss +16 -1
  137. package/style/_data-quality-validation-gui-editor.scss +290 -0
  138. package/style/data-quality-custom-selector.scss +79 -0
  139. package/style/index.scss +2 -0
  140. package/tsconfig.json +21 -0
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Copyright (c) 2026-present, Goldman Sachs
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ import type { ReactNode } from 'react';
17
+ export type Option<T = string> = {
18
+ value: T;
19
+ label: string;
20
+ };
21
+ export interface DataQualityCustomSelectorProps<T> {
22
+ value?: T | undefined;
23
+ options: T[];
24
+ onChange: (value: T) => void;
25
+ disabled?: boolean;
26
+ placeholder?: string;
27
+ className?: string;
28
+ title?: string;
29
+ renderLabel?: (option: T) => ReactNode;
30
+ }
31
+ export declare const DataQualityCustomSelector: <T extends {
32
+ value: string;
33
+ label: string;
34
+ }>(props: DataQualityCustomSelectorProps<T>) => React.ReactElement;
35
+ //# sourceMappingURL=DataQualityCustomSelector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DataQualityCustomSelector.d.ts","sourceRoot":"","sources":["../../src/components/DataQualityCustomSelector.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAQH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,MAAM,MAAM,MAAM,CAAC,CAAC,GAAG,MAAM,IAAI;IAAE,KAAK,EAAE,CAAC,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAE7D,MAAM,WAAW,8BAA8B,CAAC,CAAC;IAC/C,KAAK,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC;IACtB,OAAO,EAAE,CAAC,EAAE,CAAC;IACb,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,CAAC;IAC7B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,SAAS,CAAC;CACxC;AAED,eAAO,MAAM,yBAAyB,GACpC,CAAC,SAAS;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,EAE1C,OAAO,8BAA8B,CAAC,CAAC,CAAC,KACvC,KAAK,CAAC,YA6CR,CAAC"}
@@ -0,0 +1,27 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ /**
3
+ * Copyright (c) 2026-present, Goldman Sachs
4
+ *
5
+ * Licensed under the Apache License, Version 2.0 (the "License");
6
+ * you may not use this file except in compliance with the License.
7
+ * You may obtain a copy of the License at
8
+ *
9
+ * http://www.apache.org/licenses/LICENSE-2.0
10
+ *
11
+ * Unless required by applicable law or agreed to in writing, software
12
+ * distributed under the License is distributed on an "AS IS" BASIS,
13
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ * See the License for the specific language governing permissions and
15
+ * limitations under the License.
16
+ */
17
+ import { CaretDownIcon, ControlledDropdownMenu, MenuContent, MenuContentItem, } from '@finos/legend-art';
18
+ export const DataQualityCustomSelector = (props) => {
19
+ const { value, options, onChange, disabled = false, placeholder = 'Choose option...', className, title = 'Choose option...', } = props;
20
+ const selectedOption = options.find((opt) => opt.value === value?.value);
21
+ return (_jsxs(ControlledDropdownMenu, { className: className ?? 'data-quality-custom-selector', title: title, disabled: disabled, content: _jsx(MenuContent, { children: options.map((opt) => (_jsx(MenuContentItem, { className: "data-quality-custom-selector__dropdown__option", onClick: () => onChange(opt), children: opt.label }, String(opt.value)))) }), menuProps: {
22
+ anchorOrigin: { vertical: 'bottom', horizontal: 'left' },
23
+ transformOrigin: { vertical: 'top', horizontal: 'left' },
24
+ elevation: 7,
25
+ }, children: [_jsx("div", { className: "data-quality-custom-selector__label", children: selectedOption?.label ?? placeholder }), _jsx("div", { className: "data-quality-custom-selector__dropdown__trigger", children: _jsx(CaretDownIcon, {}) })] }));
26
+ };
27
+ //# sourceMappingURL=DataQualityCustomSelector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DataQualityCustomSelector.js","sourceRoot":"","sources":["../../src/components/DataQualityCustomSelector.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EACL,aAAa,EACb,sBAAsB,EACtB,WAAW,EACX,eAAe,GAChB,MAAM,mBAAmB,CAAC;AAgB3B,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAGvC,KAAwC,EACpB,EAAE;IACtB,MAAM,EACJ,KAAK,EACL,OAAO,EACP,QAAQ,EACR,QAAQ,GAAG,KAAK,EAChB,WAAW,GAAG,kBAAkB,EAChC,SAAS,EACT,KAAK,GAAG,kBAAkB,GAC3B,GAAG,KAAK,CAAC;IAEV,MAAM,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,KAAK,KAAK,EAAE,KAAK,CAAC,CAAC;IAEzE,OAAO,CACL,MAAC,sBAAsB,IACrB,SAAS,EAAE,SAAS,IAAI,8BAA8B,EACtD,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,QAAQ,EAClB,OAAO,EACL,KAAC,WAAW,cACT,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CACpB,KAAC,eAAe,IAEd,SAAS,EAAC,gDAAgD,EAC1D,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,YAE3B,GAAG,CAAC,KAAK,IAJL,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAKN,CACnB,CAAC,GACU,EAEhB,SAAS,EAAE;YACT,YAAY,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE;YACxD,eAAe,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE;YACxD,SAAS,EAAE,CAAC;SACb,aAED,cAAK,SAAS,EAAC,qCAAqC,YACjD,cAAc,EAAE,KAAK,IAAI,WAAW,GACjC,EACN,cAAK,SAAS,EAAC,iDAAiD,YAC9D,KAAC,aAAa,KAAG,GACb,IACiB,CAC1B,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,47 @@
1
+ /**
2
+ * Copyright (c) 2025-present, Goldman Sachs
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ import type { ColumnOption } from './states/LambdaEditorWithGUIState.js';
17
+ import type { ColSpecArrayInstance } from '@finos/legend-graph';
18
+ type Option = {
19
+ value: string;
20
+ label: string;
21
+ };
22
+ interface RenderColumnProps {
23
+ column: ColumnOption | undefined;
24
+ onChange: (value: ColumnOption) => void;
25
+ options: ColumnOption[];
26
+ placeholder?: string;
27
+ disabled: boolean;
28
+ }
29
+ interface FunctionSelectProps {
30
+ value?: string;
31
+ onChange: (val: string) => void;
32
+ disabled: boolean;
33
+ options?: Option[];
34
+ }
35
+ interface RenderColumnsProps {
36
+ columns: ColSpecArrayInstance;
37
+ onChange: (value: string[]) => void;
38
+ options: ColumnOption[];
39
+ placeholder?: string;
40
+ darkMode: boolean;
41
+ disabled: boolean;
42
+ }
43
+ export declare const RenderColumn: (props: RenderColumnProps) => import("react/jsx-runtime").JSX.Element;
44
+ export declare const RenderColumns: (props: RenderColumnsProps) => import("react/jsx-runtime").JSX.Element;
45
+ export declare const FunctionSelectionHandler: (props: FunctionSelectProps) => import("react/jsx-runtime").JSX.Element;
46
+ export {};
47
+ //# sourceMappingURL=DataQualityRelationLambdaGUIDataTypeHandlers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DataQualityRelationLambdaGUIDataTypeHandlers.d.ts","sourceRoot":"","sources":["../../src/components/DataQualityRelationLambdaGUIDataTypeHandlers.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAKH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAC;AACzE,OAAO,KAAK,EAAgB,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAE9E,KAAK,MAAM,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAE/C,UAAU,iBAAiB;IACzB,MAAM,EAAE,YAAY,GAAG,SAAS,CAAC;IACjC,QAAQ,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC;IACxC,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,UAAU,mBAAmB;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,UAAU,kBAAkB;IAC1B,OAAO,EAAE,oBAAoB,CAAC;IAC9B,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IACpC,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,eAAO,MAAM,YAAY,GAAI,OAAO,iBAAiB,4CAapD,CAAC;AAEF,eAAO,MAAM,aAAa,GAAI,OAAO,kBAAkB,4CAwEtD,CAAC;AAEF,eAAO,MAAM,wBAAwB,GAAI,OAAO,mBAAmB,4CAalE,CAAC"}
@@ -0,0 +1,47 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ /**
3
+ * Copyright (c) 2025-present, Goldman Sachs
4
+ *
5
+ * Licensed under the Apache License, Version 2.0 (the "License");
6
+ * you may not use this file except in compliance with the License.
7
+ * You may obtain a copy of the License at
8
+ *
9
+ * http://www.apache.org/licenses/LICENSE-2.0
10
+ *
11
+ * Unless required by applicable law or agreed to in writing, software
12
+ * distributed under the License is distributed on an "AS IS" BASIS,
13
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ * See the License for the specific language governing permissions and
15
+ * limitations under the License.
16
+ */
17
+ import { CustomSelectorInput, BaseMenuItem, Checkbox } from '@finos/legend-art';
18
+ import {} from 'react';
19
+ import { DataQualityCustomSelector } from './DataQualityCustomSelector.js';
20
+ export const RenderColumn = (props) => {
21
+ const { column, onChange, options, ...rest } = props;
22
+ return (_jsx(DataQualityCustomSelector, { ...rest, value: column, placeholder: "Select column", renderLabel: ({ label }) => label, options: options, onChange: onChange }));
23
+ };
24
+ export const RenderColumns = (props) => {
25
+ const { columns = [], onChange, options = [], placeholder, darkMode, disabled, ...rest } = props;
26
+ const CustomOption = ({ children, ...optionProps }) => {
27
+ const { data, isSelected, selectOption } = optionProps;
28
+ const handleClick = (event) => {
29
+ event.preventDefault();
30
+ selectOption(data);
31
+ };
32
+ return (_jsxs(BaseMenuItem, { onClick: handleClick, className: "data-quality-validation-gui-editor__column-list-item", dense: true, children: [_jsx(Checkbox, { size: "small", checked: isSelected, onClick: handleClick }), _jsx("div", { children: children })] }));
33
+ };
34
+ return (_jsx(CustomSelectorInput, { ...rest, value: options.filter(({ value: v }) => columns.values[0]?.colSpecs.find((col) => col.name === v)), placeholder: placeholder ?? 'Select columns', isMulti: true, options: options, hideSelectedOptions: false, closeMenuOnSelect: false, components: {
35
+ Option: CustomOption,
36
+ MultiValueContainer: ({ children }) => {
37
+ return (_jsx("div", { className: "data-quality-validation-gui-editor__column-list-item", children: children }));
38
+ },
39
+ MultiValueLabel: ({ children }) => children,
40
+ MultiValueRemove: () => null,
41
+ }, onChange: (values) => onChange(values.map((change) => change.value)), darkMode: darkMode, disabled: disabled }));
42
+ };
43
+ export const FunctionSelectionHandler = (props) => {
44
+ const { value, onChange, options = [], ...rest } = props;
45
+ return (_jsx(DataQualityCustomSelector, { ...rest, value: options.find((opt) => opt.value === value), options: options, renderLabel: ({ label }) => label, onChange: (change) => onChange(change.value), placeholder: "Select operation" }));
46
+ };
47
+ //# sourceMappingURL=DataQualityRelationLambdaGUIDataTypeHandlers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DataQualityRelationLambdaGUIDataTypeHandlers.js","sourceRoot":"","sources":["../../src/components/DataQualityRelationLambdaGUIDataTypeHandlers.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Copyright (c) 2026-present, Goldman Sachs
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ import type { DataQualityRelationValidationState } from './states/DataQualityRelationValidationState.js';
17
+ export declare const DataQualityRelationLambdaGUIValidationEditor: ((props: {
18
+ validationState: DataQualityRelationValidationState;
19
+ disabled: boolean;
20
+ }) => import("react/jsx-runtime").JSX.Element | null) & {
21
+ displayName: string;
22
+ };
23
+ //# sourceMappingURL=DataQualityRelationLambdaGUIValidationEditor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DataQualityRelationLambdaGUIValidationEditor.d.ts","sourceRoot":"","sources":["../../src/components/DataQualityRelationLambdaGUIValidationEditor.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,OAAO,KAAK,EAAE,kCAAkC,EAAE,MAAM,gDAAgD,CAAC;AAgBzG,eAAO,MAAM,4CAA4C,WAC/C;IACN,eAAe,EAAE,kCAAkC,CAAC;IACpD,QAAQ,EAAE,OAAO,CAAC;CACnB;;CAmEF,CAAC"}
@@ -0,0 +1,47 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ /**
3
+ * Copyright (c) 2026-present, Goldman Sachs
4
+ *
5
+ * Licensed under the Apache License, Version 2.0 (the "License");
6
+ * you may not use this file except in compliance with the License.
7
+ * You may obtain a copy of the License at
8
+ *
9
+ * http://www.apache.org/licenses/LICENSE-2.0
10
+ *
11
+ * Unless required by applicable law or agreed to in writing, software
12
+ * distributed under the License is distributed on an "AS IS" BASIS,
13
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ * See the License for the specific language governing permissions and
15
+ * limitations under the License.
16
+ */
17
+ import { observer } from 'mobx-react-lite';
18
+ import { RenderColumns } from './DataQualityRelationLambdaGUIDataTypeHandlers.js';
19
+ import { ColSpec, ColSpecArray, ColSpecArrayInstance, Multiplicity, } from '@finos/legend-graph';
20
+ import { useApplicationStore } from '@finos/legend-application';
21
+ import { DataQualityValidationCustomHelperFunction, DataQualityValidationFilterFunction, } from './utils/DataQualityValidationFunction.js';
22
+ import { DataQualityValidationFilterEditor } from './DataQualityValidationFilterEditor.js';
23
+ import { DataQualityValidationHelperFunctionEditor } from './DataQualityValidationHelperFunctionEditor.js';
24
+ export const DataQualityRelationLambdaGUIValidationEditor = observer((props) => {
25
+ const { validationState, disabled } = props;
26
+ const { dataQualityValidationLambdaFormState, columnOptions } = validationState;
27
+ const appStore = useApplicationStore();
28
+ const darkMode = !appStore.layoutService.TEMPORARY__isLightColorThemeEnabled;
29
+ if (!dataQualityValidationLambdaFormState) {
30
+ return null;
31
+ }
32
+ const { assertion, otherFunction } = dataQualityValidationLambdaFormState;
33
+ return (_jsxs("div", { className: "data-quality-validation-gui-editor", children: [_jsxs("div", { className: "data-quality-validation-gui-editor__functions-list", children: [otherFunction instanceof DataQualityValidationFilterFunction && (_jsx(DataQualityValidationFilterEditor, { validationFunction: otherFunction, disabled: disabled, validationState: validationState }, otherFunction.name)), otherFunction instanceof
34
+ DataQualityValidationCustomHelperFunction && (_jsx(DataQualityValidationHelperFunctionEditor, { validationFunction: otherFunction, disabled: disabled, validationState: validationState }, otherFunction.name))] }), _jsxs("div", { className: "data-quality-validation-gui-editor__function data-quality-validation-gui-editor__function--assert-helper", children: [_jsx("div", { className: "data-quality-uml-element-editor__lambda__label data-quality-validation-gui-editor__function--assert-helper--description", children: "Columns to persist" }), _jsx(RenderColumns, { columns: assertion.parameters.columns, onChange: (values) => {
35
+ const colSpecArray = new ColSpecArray();
36
+ colSpecArray.colSpecs = values.map((value) => {
37
+ const colSpecValue = new ColSpec();
38
+ colSpecValue.name = value;
39
+ return colSpecValue;
40
+ });
41
+ const colSpecArrayInstance = new ColSpecArrayInstance(Multiplicity.ZERO_MANY);
42
+ colSpecArrayInstance.values = [colSpecArray];
43
+ assertion.parameters.columns = colSpecArrayInstance;
44
+ validationState.debouncedHandleValidationFormChange();
45
+ }, options: columnOptions, placeholder: "Select Columns", disabled: disabled, darkMode: darkMode })] })] }));
46
+ });
47
+ //# sourceMappingURL=DataQualityRelationLambdaGUIValidationEditor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DataQualityRelationLambdaGUIValidationEditor.js","sourceRoot":"","sources":["../../src/components/DataQualityRelationLambdaGUIValidationEditor.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAE3C,OAAO,EAAE,aAAa,EAAE,MAAM,mDAAmD,CAAC;AAClF,OAAO,EACL,OAAO,EACP,YAAY,EACZ,oBAAoB,EACpB,YAAY,GACb,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EACL,yCAAyC,EACzC,mCAAmC,GACpC,MAAM,0CAA0C,CAAC;AAClD,OAAO,EAAE,iCAAiC,EAAE,MAAM,wCAAwC,CAAC;AAC3F,OAAO,EAAE,yCAAyC,EAAE,MAAM,gDAAgD,CAAC;AAE3G,MAAM,CAAC,MAAM,4CAA4C,GAAG,QAAQ,CAClE,CAAC,KAGA,EAAE,EAAE;IACH,MAAM,EAAE,eAAe,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;IAC5C,MAAM,EAAE,oCAAoC,EAAE,aAAa,EAAE,GAC3D,eAAe,CAAC;IAClB,MAAM,QAAQ,GAAG,mBAAmB,EAAE,CAAC;IACvC,MAAM,QAAQ,GACZ,CAAC,QAAQ,CAAC,aAAa,CAAC,mCAAmC,CAAC;IAE9D,IAAI,CAAC,oCAAoC,EAAE,CAAC;QAC1C,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,GAAG,oCAAoC,CAAC;IAE1E,OAAO,CACL,eAAK,SAAS,EAAC,oCAAoC,aACjD,eAAK,SAAS,EAAC,oDAAoD,aAChE,aAAa,YAAY,mCAAmC,IAAI,CAC/D,KAAC,iCAAiC,IAEhC,kBAAkB,EAAE,aAAa,EACjC,QAAQ,EAAE,QAAQ,EAClB,eAAe,EAAE,eAAe,IAH3B,aAAa,CAAC,IAAI,CAIvB,CACH,EAEA,aAAa;wBACZ,yCAAyC,IAAI,CAC7C,KAAC,yCAAyC,IAExC,kBAAkB,EAAE,aAAa,EACjC,QAAQ,EAAE,QAAQ,EAClB,eAAe,EAAE,eAAe,IAH3B,aAAa,CAAC,IAAI,CAIvB,CACH,IACG,EACN,eAAK,SAAS,EAAC,0GAA0G,aACvH,cAAK,SAAS,EAAC,yHAAyH,mCAElI,EACN,KAAC,aAAa,IACZ,OAAO,EAAE,SAAS,CAAC,UAAU,CAAC,OAAO,EACrC,QAAQ,EAAE,CAAC,MAAgB,EAAE,EAAE;4BAC7B,MAAM,YAAY,GAAG,IAAI,YAAY,EAAE,CAAC;4BACxC,YAAY,CAAC,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;gCAC3C,MAAM,YAAY,GAAG,IAAI,OAAO,EAAE,CAAC;gCACnC,YAAY,CAAC,IAAI,GAAG,KAAK,CAAC;gCAC1B,OAAO,YAAY,CAAC;4BACtB,CAAC,CAAC,CAAC;4BAEH,MAAM,oBAAoB,GAAG,IAAI,oBAAoB,CACnD,YAAY,CAAC,SAAS,CACvB,CAAC;4BACF,oBAAoB,CAAC,MAAM,GAAG,CAAC,YAAY,CAAC,CAAC;4BAE7C,SAAS,CAAC,UAAU,CAAC,OAAO,GAAG,oBAAoB,CAAC;4BACpD,eAAe,CAAC,mCAAmC,EAAE,CAAC;wBACxD,CAAC,EACD,OAAO,EAAE,aAAa,EACtB,WAAW,EAAC,gBAAgB,EAC5B,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,GAClB,IACE,IACF,CACP,CAAC;AACJ,CAAC,CACF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"DataQualityRelationValidationEditor.d.ts","sourceRoot":"","sources":["../../src/components/DataQualityRelationValidationEditor.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAoBH,OAAO,EACL,KAAK,+CAA+C,EAErD,MAAM,6DAA6D,CAAC;AACrE,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,gGAAgG,CAAC;AAUpJ,MAAM,MAAM,4BAA4B,GAAG;IACzC,UAAU,EAAE,6BAA6B,CAAC;CAC3C,CAAC;AACF,eAAO,MAAM,4BAA4B,wBAAwB,CAAC;AAElE,eAAO,MAAM,mCAAmC,WACtC;IACN,oCAAoC,EAAE,+CAA+C,CAAC;IACtF,UAAU,EAAE,6BAA6B,CAAC;IAC1C,gBAAgB,EAAE,MAAM,IAAI,CAAC;IAC7B,UAAU,EAAE,OAAO,CAAC;CACrB;;CAwMF,CAAC"}
1
+ {"version":3,"file":"DataQualityRelationValidationEditor.d.ts","sourceRoot":"","sources":["../../src/components/DataQualityRelationValidationEditor.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAqBH,OAAO,EACL,KAAK,+CAA+C,EAErD,MAAM,6DAA6D,CAAC;AACrE,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,gGAAgG,CAAC;AAWpJ,MAAM,MAAM,4BAA4B,GAAG;IACzC,UAAU,EAAE,6BAA6B,CAAC;CAC3C,CAAC;AACF,eAAO,MAAM,4BAA4B,wBAAwB,CAAC;AAElE,eAAO,MAAM,mCAAmC,WACtC;IACN,oCAAoC,EAAE,+CAA+C,CAAC;IACtF,UAAU,EAAE,6BAA6B,CAAC;IAC1C,gBAAgB,EAAE,MAAM,IAAI,CAAC;IAC7B,UAAU,EAAE,OAAO,CAAC;CACrB;;CAiPF,CAAC"}
@@ -16,7 +16,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
16
16
  */
17
17
  import { useCallback, useRef } from 'react';
18
18
  import { observer } from 'mobx-react-lite';
19
- import { FilledWindowMaximizeIcon, PanelDnDEntry, PanelEntryDragHandle, RocketIcon, TimesIcon, useDragPreviewLayer, clsx, } from '@finos/legend-art';
19
+ import { clsx, FilledWindowMaximizeIcon, PanelDnDEntry, PanelEntryDragHandle, RocketIcon, Switch, TimesIcon, useDragPreviewLayer, } from '@finos/legend-art';
20
20
  import { flowResult } from 'mobx';
21
21
  import { PrimitiveType } from '@finos/legend-graph';
22
22
  import { ApplicationNavigationContextData, useApplicationStore, } from '@finos/legend-application';
@@ -26,6 +26,7 @@ import { dataQualityRelationValidation_setDescription, dataQualityRelationValida
26
26
  import { DataQualityValidationDetailPanel } from './DataQualityValidationDetailPanel.js';
27
27
  import { useDrag, useDrop } from 'react-dnd';
28
28
  import { DSL_DATA_QUALITY_LEGEND_STUDIO_APPLICATION_NAVIGATION_CONTEXT_KEY } from '../__lib__/studio/DSL_DataQuality_LegendStudioApplicationNavigationContext.js';
29
+ import { DataQualityRelationLambdaGUIValidationEditor } from './DataQualityRelationLambdaGUIValidationEditor.js';
29
30
  export const RELATION_VALIDATION_DND_TYPE = 'RELATION_VALIDATION';
30
31
  export const DataQualityRelationValidationEditor = observer((props) => {
31
32
  const ref = useRef(null);
@@ -34,7 +35,10 @@ export const DataQualityRelationValidationEditor = observer((props) => {
34
35
  const applicationStore = useApplicationStore();
35
36
  const hasParserError = relationValidationConfigurationState.validationStates.some((state) => Boolean(state.parserError));
36
37
  const validationState = relationValidationConfigurationState.getValidationState(validation);
37
- const changeName = (event) => dataQualityRelationValidation_setName(validation, event.target.value);
38
+ const changeName = (event) => {
39
+ dataQualityRelationValidation_setName(validation, event.target.value);
40
+ validationState.isCurrentNameSameAsComputed = !event.target.value.trim();
41
+ };
38
42
  const changeDescription = (event) => dataQualityRelationValidation_setDescription(validation, event.target.value);
39
43
  const handleHover = useCallback((item) => {
40
44
  const draggingProperty = item.validation;
@@ -77,7 +81,7 @@ export const DataQualityRelationValidationEditor = observer((props) => {
77
81
  };
78
82
  return (_jsxs(PanelDnDEntry, { ref: ref, placeholder: _jsx("div", { className: "uml-element-editor__dnd__placeholder" }), className: "relation-validation__container", showPlaceholder: isBeingDragged, children: [_jsxs("div", { className: clsx('relation-validation', {
79
83
  backdrop__element: validationState.parserError,
80
- }), children: [_jsxs("div", { className: "relation-validation__content", children: [_jsx(PanelEntryDragHandle, { dragSourceConnector: handleRef, isDragging: isBeingDragged }), _jsx("input", { className: "relation-validation__content__name", spellCheck: false, disabled: isReadOnly, value: validation.name, onChange: changeName, placeholder: "Validation name" }), !isReadOnly && (_jsx("button", { className: "uml-element-editor__remove-btn", onClick: remove, tabIndex: -1, title: "Remove", children: _jsx(TimesIcon, {}) })), _jsx("button", { className: "uml-element-editor__remove-btn", onClick: runQuery, tabIndex: -1, title: "Run Validation", disabled: hasParserError, children: _jsx(RocketIcon, {}) }), _jsx("button", { className: "uml-element-editor__remove-btn", onClick: openValidationDialog, tabIndex: -1, title: "Open Validation Details dialog", children: _jsx(FilledWindowMaximizeIcon, {}) })] }), _jsxs("div", { className: "data-quality-uml-element-editor__lambda", children: [_jsx("div", { className: "data-quality-uml-element-editor__lambda__label", children: "Assertion" }), _jsx("div", { className: "data-quality-uml-element-editor__lambda__value", children: _jsx(InlineLambdaEditor, { disabled: relationValidationConfigurationState.isConvertingValidationLambdaObjects ||
81
- isReadOnly, lambdaEditorState: validationState, forceBackdrop: hasParserError, expectedType: PrimitiveType.BOOLEAN, onEditorFocus: () => onLambdaEditorFocus(true), disablePopUp: true, className: "relation-validation__lambda" }) })] })] }), validationState.isValidationDialogOpen && (_jsx(DataQualityValidationDetailPanel, { dataQualityRelationValidationState: relationValidationConfigurationState, isReadOnly: isReadOnly, relationValidationState: validationState, changeName: changeName, changeDescription: changeDescription, onLambdaEditorFocus: onLambdaEditorFocus, forceBackdrop: hasParserError }))] }));
84
+ }), children: [_jsxs("div", { className: "relation-validation__content", children: [_jsx(PanelEntryDragHandle, { dragSourceConnector: handleRef, isDragging: isBeingDragged }), _jsx("input", { className: "relation-validation__content__name", spellCheck: false, disabled: isReadOnly, value: validation.name, onChange: changeName, placeholder: "Validation name" }), validationState.canEditInGUI && (_jsxs("div", { className: "data-quality-uml-element-editor__editor-switch-container", children: [_jsx(Switch, { checked: validationState.isTextEditor, size: "small", id: `code-editor-switch-${validation._UUID}`, onChange: () => validationState.toggleEditorMode(), disabled: validationState.disableEditorToggle }), _jsx("label", { className: "data-quality-uml-element-editor__lambda__label", htmlFor: `code-editor-switch-${validation._UUID}`, children: '</> Code' })] })), !isReadOnly && (_jsx("button", { className: "uml-element-editor__remove-btn", onClick: remove, tabIndex: -1, title: "Remove", children: _jsx(TimesIcon, {}) })), _jsx("button", { className: "uml-element-editor__remove-btn", onClick: runQuery, tabIndex: -1, title: "Run Validation", disabled: hasParserError, children: _jsx(RocketIcon, {}) }), _jsx("button", { className: "uml-element-editor__remove-btn", onClick: openValidationDialog, tabIndex: -1, title: "Open Validation Details dialog", children: _jsx(FilledWindowMaximizeIcon, {}) })] }), _jsxs("div", { className: "data-quality-uml-element-editor__lambda", children: [_jsx("div", { className: "data-quality-uml-element-editor__lambda__label", children: "Assertion" }), _jsxs("div", { className: "data-quality-uml-element-editor__lambda__value", children: [validationState.isTextEditor && (_jsx(InlineLambdaEditor, { disabled: relationValidationConfigurationState.isConvertingValidationLambdaObjects ||
85
+ isReadOnly, lambdaEditorState: validationState, forceBackdrop: hasParserError, expectedType: PrimitiveType.BOOLEAN, onEditorFocus: () => onLambdaEditorFocus(true), disablePopUp: true, className: "relation-validation__lambda" })), validationState.isGUIEditor && (_jsx(DataQualityRelationLambdaGUIValidationEditor, { validationState: validationState, disabled: isReadOnly }))] })] }), _jsxs("div", { className: "relation-validation-editor__content", children: [_jsx("div", { className: "data-quality-uml-element-editor__lambda__label", children: "Description" }), _jsx("input", { className: "relation-validation-editor__content__name", spellCheck: false, disabled: isReadOnly || validationState.isGUIEditor, value: validation.description, onChange: changeDescription, placeholder: "Enter the description" })] })] }), validationState.isValidationDialogOpen && (_jsx(DataQualityValidationDetailPanel, { dataQualityRelationValidationState: relationValidationConfigurationState, isReadOnly: isReadOnly, relationValidationState: validationState, changeName: changeName, changeDescription: changeDescription, onLambdaEditorFocus: onLambdaEditorFocus, forceBackdrop: hasParserError }))] }));
82
86
  });
83
87
  //# sourceMappingURL=DataQualityRelationValidationEditor.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DataQualityRelationValidationEditor.js","sourceRoot":"","sources":["../../src/components/DataQualityRelationValidationEditor.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DataQualityRelationValidationEditor.js","sourceRoot":"","sources":["../../src/components/DataQualityRelationValidationEditor.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Copyright (c) 2026-present, Goldman Sachs
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ import type { DataQualityRelationValidationState } from './states/DataQualityRelationValidationState.js';
17
+ import { type DataQualityValidationFilterFunction } from './utils/DataQualityValidationFunction.js';
18
+ export declare const DataQualityValidationFilterEditor: ((props: {
19
+ validationState: DataQualityRelationValidationState;
20
+ disabled: boolean;
21
+ validationFunction: DataQualityValidationFilterFunction;
22
+ }) => import("react/jsx-runtime").JSX.Element | null) & {
23
+ displayName: string;
24
+ };
25
+ //# sourceMappingURL=DataQualityValidationFilterEditor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DataQualityValidationFilterEditor.d.ts","sourceRoot":"","sources":["../../src/components/DataQualityValidationFilterEditor.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,OAAO,KAAK,EAAE,kCAAkC,EAAE,MAAM,gDAAgD,CAAC;AAOzG,OAAO,EAGL,KAAK,mCAAmC,EACzC,MAAM,0CAA0C,CAAC;AAyQlD,eAAO,MAAM,iCAAiC,WACpC;IACN,eAAe,EAAE,kCAAkC,CAAC;IACpD,QAAQ,EAAE,OAAO,CAAC;IAClB,kBAAkB,EAAE,mCAAmC,CAAC;CACzD;;CAmEF,CAAC"}
@@ -0,0 +1,116 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ /**
3
+ * Copyright (c) 2026-present, Goldman Sachs
4
+ *
5
+ * Licensed under the Apache License, Version 2.0 (the "License");
6
+ * you may not use this file except in compliance with the License.
7
+ * You may obtain a copy of the License at
8
+ *
9
+ * http://www.apache.org/licenses/LICENSE-2.0
10
+ *
11
+ * Unless required by applicable law or agreed to in writing, software
12
+ * distributed under the License is distributed on an "AS IS" BASIS,
13
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ * See the License for the specific language governing permissions and
15
+ * limitations under the License.
16
+ */
17
+ import { observer } from 'mobx-react-lite';
18
+ import { PropertyExplicitReference, } from '@finos/legend-graph';
19
+ import { DataQualityValidationFilterCondition, DataQualityValidationLogicalGroupFunction, } from './utils/DataQualityValidationFunction.js';
20
+ import { DataQualityValidationFunctionRenderer } from './DataQualityValidationFunctionRenderer.js';
21
+ import { DataQualityValidationFunctionsUtils } from './utils/DataQualityValidationFunctionsUtils.js';
22
+ import { propertyExpression_setFunc } from '@finos/legend-query-builder';
23
+ import { ControlledDropdownMenu, MenuContent, MenuContentItem, PlusIcon, TrashIcon, } from '@finos/legend-art';
24
+ import { dataQualityValidationFilterFunction_addLogicalOperation, dataQualityValidationFilterFunction_deleteCondition, dataQualityValidationFilterFunction_transformConditionToLogicalGroup, dataQualityValidationLogicalGroupFunction_changeGroupFunction, } from './utils/DataQualityValidationFunctionModifier.js';
25
+ import { DataQualityValidationFunctionFactory } from './utils/DataQualityValidationFunctionFactory.js';
26
+ import { DATA_QUALITY_VALIDATION_LOGICAL_FUNCTIONS } from './constants/DataQualityConstants.js';
27
+ const DataQualityValidationFilterConditionEditor = observer((props) => {
28
+ const { condition, validationState, disabled, showAddButton, showDeleteButton, handleFunctionChange, onAdd, onDelete, getFunctionOptions, handleColumnChange, handleFunctionParamChange, } = props;
29
+ const { columnOptions } = validationState;
30
+ const observerContext = validationState.editorStore.changeDetectionState.observerContext;
31
+ const graph = validationState.editorStore.graphManagerState.graph;
32
+ const column = condition.parameters.property;
33
+ const columnOption = columnOptions.find(({ value }) => value === column.func.value.name);
34
+ return (_jsxs("div", { className: "data-quality-validation-gui-editor__filter-validation", children: [_jsx(DataQualityValidationFunctionRenderer, { id: condition.id, columnOptions: columnOptions, graph: graph, observerContext: observerContext, readOnly: disabled, functionName: condition.name, functionParameters: condition.parameters.otherParams, functionOptions: getFunctionOptions(columnOption?.type ?? ''), handleColChange: (value) => {
35
+ propertyExpression_setFunc(column, PropertyExplicitReference.create({
36
+ name: value,
37
+ }));
38
+ handleColumnChange(value);
39
+ }, selectedColumn: columnOption, handleFunctionChange: handleFunctionChange, handleFunctionParametersChange: (param, index) => {
40
+ condition.parameters.otherParams[index] = param;
41
+ handleFunctionParamChange(param, index);
42
+ } }), showAddButton && (_jsx(ControlledDropdownMenu, { className: "data-quality-validation-gui-editor__filter-validation__add-condition", title: "Add Condition", content: _jsxs(MenuContent, { children: [_jsx(MenuContentItem, { onClick: () => onAdd?.(DATA_QUALITY_VALIDATION_LOGICAL_FUNCTIONS.AND), children: "And" }), _jsx(MenuContentItem, { onClick: () => {
43
+ onAdd?.(DATA_QUALITY_VALIDATION_LOGICAL_FUNCTIONS.OR);
44
+ }, children: "Or" })] }), children: _jsx(PlusIcon, { size: 10, color: "white" }) })), showDeleteButton && (_jsx("button", { className: "data-quality-validation-gui-editor__filter-validation__add-condition", title: "Add Condition", onClick: onDelete, children: _jsx(TrashIcon, { size: 10, color: "white" }) }))] }));
45
+ });
46
+ const RenderConditionTree = observer((props) => {
47
+ const { condition, validationState, disabled, validationFunction } = props;
48
+ const observerContext = validationState.editorStore.changeDetectionState.observerContext;
49
+ const graph = validationState.editorStore.graphManagerState.graph;
50
+ const functionFactory = new DataQualityValidationFunctionFactory(graph, observerContext);
51
+ if (condition instanceof DataQualityValidationLogicalGroupFunction) {
52
+ return (_jsxs("div", { className: "data-quality-validation-gui-editor__logical-group", children: [_jsx("div", { className: "data-quality-validation-gui-editor__logical-group__branch", children: _jsx(RenderConditionTree, { condition: condition.parameters.left, validationState: validationState, disabled: disabled, validationFunction: validationFunction }) }), _jsx("button", { className: "data-quality-validation-gui-editor__logical-group__operator", title: "Switch operator", onClick: () => {
53
+ condition.changeName();
54
+ validationState.debouncedHandleValidationFormChange();
55
+ }, children: condition.name.toUpperCase() }), _jsx("div", { className: "data-quality-validation-gui-editor__logical-group__branch", children: _jsx(RenderConditionTree, { condition: condition.parameters.right, validationState: validationState, disabled: disabled, validationFunction: validationFunction }) })] }));
56
+ }
57
+ const handleFunctionChange = (name, id) => {
58
+ const findAndChange = (node, parent, isLeftChild) => {
59
+ if (node.id === id) {
60
+ if (parent) {
61
+ dataQualityValidationLogicalGroupFunction_changeGroupFunction(parent, name, isLeftChild ? 'left' : 'right', functionFactory, observerContext);
62
+ return true;
63
+ }
64
+ // If no parent, this is the root - handle separately
65
+ return false;
66
+ }
67
+ if (node instanceof DataQualityValidationLogicalGroupFunction) {
68
+ return (findAndChange(node.parameters.left, node, true) ||
69
+ findAndChange(node.parameters.right, node, false));
70
+ }
71
+ return false;
72
+ };
73
+ findAndChange(validationFunction.parameters.lambda.body);
74
+ validationState.debouncedHandleValidationFormChange();
75
+ };
76
+ if (condition instanceof DataQualityValidationFilterCondition) {
77
+ return (_jsx(DataQualityValidationFilterConditionEditor, { condition: condition, validationState: validationState, disabled: disabled, showAddButton: true, showDeleteButton: true, getFunctionOptions: (type) => DataQualityValidationFunctionsUtils.getFilterFunctionOptionsByColType(type), handleFunctionChange: handleFunctionChange, onDelete: () => {
78
+ dataQualityValidationFilterFunction_deleteCondition(validationFunction, condition);
79
+ validationState.debouncedHandleValidationFormChange();
80
+ }, onAdd: (newOperator) => {
81
+ dataQualityValidationFilterFunction_transformConditionToLogicalGroup(validationFunction, condition, newOperator, functionFactory, observerContext);
82
+ validationState.debouncedHandleValidationFormChange();
83
+ }, handleColumnChange: () => {
84
+ validationState.debouncedHandleValidationFormChange();
85
+ }, handleFunctionParamChange: () => {
86
+ validationState.debouncedHandleValidationFormChange();
87
+ } }));
88
+ }
89
+ return null;
90
+ });
91
+ export const DataQualityValidationFilterEditor = observer((props) => {
92
+ const { validationState, validationFunction, disabled } = props;
93
+ const { dataQualityValidationLambdaFormState } = validationState;
94
+ const observerContext = validationState.editorStore.changeDetectionState.observerContext;
95
+ const graph = validationState.editorStore.graphManagerState.graph;
96
+ const functionFactory = new DataQualityValidationFunctionFactory(graph, observerContext);
97
+ if (!dataQualityValidationLambdaFormState) {
98
+ return null;
99
+ }
100
+ const { handleValidationBodyChange } = dataQualityValidationLambdaFormState;
101
+ const { body } = validationFunction.parameters.lambda;
102
+ if (body instanceof DataQualityValidationFilterCondition) {
103
+ return (_jsx(DataQualityValidationFilterConditionEditor, { condition: body, validationState: validationState, disabled: disabled, showAddButton: !!body.name, showDeleteButton: false, getFunctionOptions: (type) => DataQualityValidationFunctionsUtils.getFunctionOptionsByColType(type), handleFunctionChange: (name) => {
104
+ handleValidationBodyChange(name);
105
+ validationState.debouncedHandleValidationFormChange();
106
+ }, onAdd: (operator) => {
107
+ dataQualityValidationFilterFunction_addLogicalOperation(validationFunction, body, operator, functionFactory, observerContext);
108
+ }, handleColumnChange: () => {
109
+ validationState.debouncedHandleValidationFormChange();
110
+ }, handleFunctionParamChange: () => {
111
+ validationState.debouncedHandleValidationFormChange();
112
+ } }));
113
+ }
114
+ return (_jsx("div", { className: "data-quality-validation-gui-editor__filter-validation", children: _jsx("div", { className: "data-quality-validation-gui-editor__filter-validation__body", children: _jsx(RenderConditionTree, { condition: body, validationState: validationState, disabled: disabled, validationFunction: validationFunction }) }) }));
115
+ });
116
+ //# sourceMappingURL=DataQualityValidationFilterEditor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DataQualityValidationFilterEditor.js","sourceRoot":"","sources":["../../src/components/DataQualityValidationFilterEditor.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ /**
2
+ * Copyright (c) 2026-present, Goldman Sachs
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ import { type CollectionInstanceValue, type ObserverContext, type PrimitiveInstanceValue, type PureModel, type ValueSpecification } from '@finos/legend-graph';
17
+ import type { Option } from './DataQualityCustomSelector.js';
18
+ interface ColumnOption {
19
+ value: string;
20
+ label: string;
21
+ type: string;
22
+ }
23
+ interface DataQualityValidationFunctionRendererProps {
24
+ id: string;
25
+ columnOptions: ColumnOption[];
26
+ functionOptions?: Option[];
27
+ handleColChange: (value: string, type: string) => void;
28
+ readOnly: boolean;
29
+ selectedColumn: ColumnOption | undefined;
30
+ functionName: string;
31
+ functionParameters: ValueSpecification[];
32
+ handleFunctionChange: (name: string, id: string) => void;
33
+ handleFunctionParametersChange: (param: PrimitiveInstanceValue | CollectionInstanceValue, index: number) => void;
34
+ graph: PureModel;
35
+ observerContext: ObserverContext;
36
+ }
37
+ export declare function DataQualityValidationFunctionRenderer({ id, columnOptions, functionOptions, handleColChange, readOnly, selectedColumn, functionParameters, handleFunctionChange, handleFunctionParametersChange, functionName, graph, observerContext, }: DataQualityValidationFunctionRendererProps): import("react/jsx-runtime").JSX.Element;
38
+ export {};
39
+ //# sourceMappingURL=DataQualityValidationFunctionRenderer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DataQualityValidationFunctionRenderer.d.ts","sourceRoot":"","sources":["../../src/components/DataQualityValidationFunctionRenderer.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAQH,OAAO,EAEL,KAAK,uBAAuB,EAC5B,KAAK,eAAe,EACpB,KAAK,sBAAsB,EAC3B,KAAK,SAAS,EACd,KAAK,kBAAkB,EACxB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gCAAgC,CAAC;AAG7D,UAAU,YAAY;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd;AAED,UAAU,0CAA0C;IAClD,EAAE,EAAE,MAAM,CAAC;IACX,aAAa,EAAE,YAAY,EAAE,CAAC;IAC9B,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,eAAe,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACvD,QAAQ,EAAE,OAAO,CAAC;IAClB,cAAc,EAAE,YAAY,GAAG,SAAS,CAAC;IACzC,YAAY,EAAE,MAAM,CAAC;IACrB,kBAAkB,EAAE,kBAAkB,EAAE,CAAC;IACzC,oBAAoB,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IACzD,8BAA8B,EAAE,CAC9B,KAAK,EAAE,sBAAsB,GAAG,uBAAuB,EACvD,KAAK,EAAE,MAAM,KACV,IAAI,CAAC;IACV,KAAK,EAAE,SAAS,CAAC;IACjB,eAAe,EAAE,eAAe,CAAC;CAClC;AAED,wBAAgB,qCAAqC,CAAC,EACpD,EAAE,EACF,aAAa,EACb,eAAe,EACf,eAAe,EACf,QAAQ,EACR,cAAc,EACd,kBAAkB,EAClB,oBAAoB,EACpB,8BAA8B,EAC9B,YAAY,EACZ,KAAK,EACL,eAAe,GAChB,EAAE,0CAA0C,2CAmE5C"}