@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.
- package/lib/components/DataQualityCustomSelector.d.ts +35 -0
- package/lib/components/DataQualityCustomSelector.d.ts.map +1 -0
- package/lib/components/DataQualityCustomSelector.js +27 -0
- package/lib/components/DataQualityCustomSelector.js.map +1 -0
- package/lib/components/DataQualityRelationLambdaGUIDataTypeHandlers.d.ts +47 -0
- package/lib/components/DataQualityRelationLambdaGUIDataTypeHandlers.d.ts.map +1 -0
- package/lib/components/DataQualityRelationLambdaGUIDataTypeHandlers.js +47 -0
- package/lib/components/DataQualityRelationLambdaGUIDataTypeHandlers.js.map +1 -0
- package/lib/components/DataQualityRelationLambdaGUIValidationEditor.d.ts +23 -0
- package/lib/components/DataQualityRelationLambdaGUIValidationEditor.d.ts.map +1 -0
- package/lib/components/DataQualityRelationLambdaGUIValidationEditor.js +47 -0
- package/lib/components/DataQualityRelationLambdaGUIValidationEditor.js.map +1 -0
- package/lib/components/DataQualityRelationValidationEditor.d.ts.map +1 -1
- package/lib/components/DataQualityRelationValidationEditor.js +8 -4
- package/lib/components/DataQualityRelationValidationEditor.js.map +1 -1
- package/lib/components/DataQualityValidationFilterEditor.d.ts +25 -0
- package/lib/components/DataQualityValidationFilterEditor.d.ts.map +1 -0
- package/lib/components/DataQualityValidationFilterEditor.js +116 -0
- package/lib/components/DataQualityValidationFilterEditor.js.map +1 -0
- package/lib/components/DataQualityValidationFunctionRenderer.d.ts +39 -0
- package/lib/components/DataQualityValidationFunctionRenderer.d.ts.map +1 -0
- package/lib/components/DataQualityValidationFunctionRenderer.js +54 -0
- package/lib/components/DataQualityValidationFunctionRenderer.js.map +1 -0
- package/lib/components/DataQualityValidationHelperFunctionEditor.d.ts +25 -0
- package/lib/components/DataQualityValidationHelperFunctionEditor.d.ts.map +1 -0
- package/lib/components/DataQualityValidationHelperFunctionEditor.js +45 -0
- package/lib/components/DataQualityValidationHelperFunctionEditor.js.map +1 -0
- package/lib/components/constants/DataQualityConstants.d.ts +57 -0
- package/lib/components/constants/DataQualityConstants.d.ts.map +1 -1
- package/lib/components/constants/DataQualityConstants.js +63 -0
- package/lib/components/constants/DataQualityConstants.js.map +1 -1
- package/lib/components/states/DataQualityRelationValidationConfigurationState.d.ts +4 -1
- package/lib/components/states/DataQualityRelationValidationConfigurationState.d.ts.map +1 -1
- package/lib/components/states/DataQualityRelationValidationConfigurationState.js +26 -2
- package/lib/components/states/DataQualityRelationValidationConfigurationState.js.map +1 -1
- package/lib/components/states/DataQualityRelationValidationState.d.ts +5 -2
- package/lib/components/states/DataQualityRelationValidationState.d.ts.map +1 -1
- package/lib/components/states/DataQualityRelationValidationState.js +14 -2
- package/lib/components/states/DataQualityRelationValidationState.js.map +1 -1
- package/lib/components/states/DataQualityValidationLambdaFormState.d.ts +41 -0
- package/lib/components/states/DataQualityValidationLambdaFormState.d.ts.map +1 -0
- package/lib/components/states/DataQualityValidationLambdaFormState.js +121 -0
- package/lib/components/states/DataQualityValidationLambdaFormState.js.map +1 -0
- package/lib/components/states/LambdaEditorWithGUIState.d.ts +59 -0
- package/lib/components/states/LambdaEditorWithGUIState.d.ts.map +1 -0
- package/lib/components/states/LambdaEditorWithGUIState.js +196 -0
- package/lib/components/states/LambdaEditorWithGUIState.js.map +1 -0
- package/lib/components/utils/DataQualityFunctionDefaults.d.ts +36 -0
- package/lib/components/utils/DataQualityFunctionDefaults.d.ts.map +1 -0
- package/lib/components/utils/DataQualityFunctionDefaults.js +166 -0
- package/lib/components/utils/DataQualityFunctionDefaults.js.map +1 -0
- package/lib/components/utils/DataQualityLambdaParameterExtractorVisitor.d.ts +32 -0
- package/lib/components/utils/DataQualityLambdaParameterExtractorVisitor.d.ts.map +1 -0
- package/lib/components/utils/DataQualityLambdaParameterExtractorVisitor.js +173 -0
- package/lib/components/utils/DataQualityLambdaParameterExtractorVisitor.js.map +1 -0
- package/lib/components/utils/DataQualityLambdaParameterParser.d.ts +31 -0
- package/lib/components/utils/DataQualityLambdaParameterParser.d.ts.map +1 -0
- package/lib/components/utils/DataQualityLambdaParameterParser.js +162 -0
- package/lib/components/utils/DataQualityLambdaParameterParser.js.map +1 -0
- package/lib/components/utils/DataQualityValidateFunctionToPureLambdaVisitor.d.ts +30 -0
- package/lib/components/utils/DataQualityValidateFunctionToPureLambdaVisitor.d.ts.map +1 -0
- package/lib/components/utils/DataQualityValidateFunctionToPureLambdaVisitor.js +118 -0
- package/lib/components/utils/DataQualityValidateFunctionToPureLambdaVisitor.js.map +1 -0
- package/lib/components/utils/DataQualityValidationDescriptionGeneratorVisitor.d.ts +25 -0
- package/lib/components/utils/DataQualityValidationDescriptionGeneratorVisitor.d.ts.map +1 -0
- package/lib/components/utils/DataQualityValidationDescriptionGeneratorVisitor.js +89 -0
- package/lib/components/utils/DataQualityValidationDescriptionGeneratorVisitor.js.map +1 -0
- package/lib/components/utils/DataQualityValidationFunction.d.ts +94 -0
- package/lib/components/utils/DataQualityValidationFunction.d.ts.map +1 -0
- package/lib/components/utils/DataQualityValidationFunction.js +95 -0
- package/lib/components/utils/DataQualityValidationFunction.js.map +1 -0
- package/lib/components/utils/DataQualityValidationFunctionCloningVisitor.d.ts +47 -0
- package/lib/components/utils/DataQualityValidationFunctionCloningVisitor.d.ts.map +1 -0
- package/lib/components/utils/DataQualityValidationFunctionCloningVisitor.js +125 -0
- package/lib/components/utils/DataQualityValidationFunctionCloningVisitor.js.map +1 -0
- package/lib/components/utils/DataQualityValidationFunctionFactory.d.ts +32 -0
- package/lib/components/utils/DataQualityValidationFunctionFactory.d.ts.map +1 -0
- package/lib/components/utils/DataQualityValidationFunctionFactory.js +122 -0
- package/lib/components/utils/DataQualityValidationFunctionFactory.js.map +1 -0
- package/lib/components/utils/DataQualityValidationFunctionModifier.d.ts +24 -0
- package/lib/components/utils/DataQualityValidationFunctionModifier.d.ts.map +1 -0
- package/lib/components/utils/DataQualityValidationFunctionModifier.js +118 -0
- package/lib/components/utils/DataQualityValidationFunctionModifier.js.map +1 -0
- package/lib/components/utils/DataQualityValidationFunctionObserver.d.ts +25 -0
- package/lib/components/utils/DataQualityValidationFunctionObserver.d.ts.map +1 -0
- package/lib/components/utils/DataQualityValidationFunctionObserver.js +93 -0
- package/lib/components/utils/DataQualityValidationFunctionObserver.js.map +1 -0
- package/lib/components/utils/DataQualityValidationFunctionsUtils.d.ts +31 -0
- package/lib/components/utils/DataQualityValidationFunctionsUtils.d.ts.map +1 -0
- package/lib/components/utils/DataQualityValidationFunctionsUtils.js +143 -0
- package/lib/components/utils/DataQualityValidationFunctionsUtils.js.map +1 -0
- package/lib/components/utils/DataQualityValidationNameGeneratorVisitor.d.ts +29 -0
- package/lib/components/utils/DataQualityValidationNameGeneratorVisitor.d.ts.map +1 -0
- package/lib/components/utils/DataQualityValidationNameGeneratorVisitor.js +117 -0
- package/lib/components/utils/DataQualityValidationNameGeneratorVisitor.js.map +1 -0
- package/lib/data-quality-custom-selector.css +17 -0
- package/lib/data-quality-custom-selector.css.map +1 -0
- package/lib/graph-manager/protocol/pure/DSL_DataQuality_PureProtocolProcessorPlugin.d.ts +2 -1
- package/lib/graph-manager/protocol/pure/DSL_DataQuality_PureProtocolProcessorPlugin.d.ts.map +1 -1
- package/lib/graph-manager/protocol/pure/DSL_DataQuality_PureProtocolProcessorPlugin.js +8 -0
- package/lib/graph-manager/protocol/pure/DSL_DataQuality_PureProtocolProcessorPlugin.js.map +1 -1
- package/lib/graph-manager/protocol/pure/v1/V1_DataQualityValidationFunctionExpression.d.ts +18 -0
- package/lib/graph-manager/protocol/pure/v1/V1_DataQualityValidationFunctionExpression.d.ts.map +1 -0
- package/lib/graph-manager/protocol/pure/v1/V1_DataQualityValidationFunctionExpression.js +21 -0
- package/lib/graph-manager/protocol/pure/v1/V1_DataQualityValidationFunctionExpression.js.map +1 -0
- package/lib/index.css +2 -2
- package/lib/index.css.map +1 -1
- package/lib/package.json +1 -1
- package/package.json +9 -9
- package/src/components/DataQualityCustomSelector.tsx +87 -0
- package/src/components/DataQualityRelationLambdaGUIDataTypeHandlers.tsx +151 -0
- package/src/components/DataQualityRelationLambdaGUIValidationEditor.tsx +105 -0
- package/src/components/DataQualityRelationValidationEditor.tsx +57 -14
- package/src/components/DataQualityValidationFilterEditor.tsx +366 -0
- package/src/components/DataQualityValidationFunctionRenderer.tsx +154 -0
- package/src/components/DataQualityValidationHelperFunctionEditor.tsx +79 -0
- package/src/components/constants/DataQualityConstants.ts +63 -0
- package/src/components/states/DataQualityRelationValidationConfigurationState.ts +48 -2
- package/src/components/states/DataQualityRelationValidationState.ts +17 -2
- package/src/components/states/DataQualityValidationLambdaFormState.ts +201 -0
- package/src/components/states/LambdaEditorWithGUIState.ts +267 -0
- package/src/components/utils/DataQualityFunctionDefaults.ts +314 -0
- package/src/components/utils/DataQualityLambdaParameterExtractorVisitor.ts +296 -0
- package/src/components/utils/DataQualityLambdaParameterParser.ts +312 -0
- package/src/components/utils/DataQualityValidateFunctionToPureLambdaVisitor.ts +171 -0
- package/src/components/utils/DataQualityValidationDescriptionGeneratorVisitor.ts +132 -0
- package/src/components/utils/DataQualityValidationFunction.ts +192 -0
- package/src/components/utils/DataQualityValidationFunctionCloningVisitor.ts +254 -0
- package/src/components/utils/DataQualityValidationFunctionFactory.ts +199 -0
- package/src/components/utils/DataQualityValidationFunctionModifier.ts +195 -0
- package/src/components/utils/DataQualityValidationFunctionObserver.ts +141 -0
- package/src/components/utils/DataQualityValidationFunctionsUtils.ts +191 -0
- package/src/components/utils/DataQualityValidationNameGeneratorVisitor.ts +176 -0
- package/src/graph-manager/protocol/pure/DSL_DataQuality_PureProtocolProcessorPlugin.ts +24 -0
- package/src/graph-manager/protocol/pure/v1/V1_DataQualityValidationFunctionExpression.ts +40 -0
- package/style/_data-quality-relation-validation-builder.scss +16 -1
- package/style/_data-quality-validation-gui-editor.scss +290 -0
- package/style/data-quality-custom-selector.scss +79 -0
- package/style/index.scss +2 -0
- 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;
|
|
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,
|
|
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) =>
|
|
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" }),
|
|
81
|
-
|
|
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":";AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EACL,wBAAwB,EACxB,aAAa,EACb,oBAAoB,EACpB,UAAU,EACV,SAAS,EACT,mBAAmB,
|
|
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"}
|