UNPKG

@finos/legend-extension-dsl-data-quality

Version:
74 lines 5.89 kB
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime"; /** * Copyright (c) 2020-present, Goldman Sachs * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ import { clsx, createFilter, CustomSelectorInput, PURE_ClassIcon, } from '@finos/legend-art'; import { observer } from 'mobx-react-lite'; import { useApplicationStore } from '@finos/legend-application'; import { DataQualityDataSpaceBuilderSetupPanelContent } from './DataQualityDataSpaceBuilder.js'; import { DataQualityMappingAndRuntimeBuilder } from './DataQualityMappingAndRuntimeBuilder.js'; import { CLASS_ELEMENT_CREATION_BASIS } from './DSL_DataQuality_ElementDriver.js'; import { isElementDeprecated } from '@finos/legend-graph'; import { DATA_QUALITY_VALIDATION_TEST_ID } from './constants/DataQualityConstants.js'; const generateClassLabel = (val, dataQualityState) => { const isDeprecatedClass = isElementDeprecated(val, dataQualityState.graphManagerState.graph); return (_jsx("div", { className: clsx('data-quality-validation__setup__class-option-label', { 'data-quality-validation__setup__class-option-label--deprecated': isDeprecatedClass, }), children: _jsx("div", { className: "data-quality-validation__setup__class-option-label__name", children: val.name }) })); }; export const DataQualityClassSelector = observer((props) => { const { dataQualityState, classes, onClassChange, noMatchMessage } = props; const { dataQualityQueryBuilderState } = dataQualityState; const applicationStore = useApplicationStore(); const elementFilterOption = createFilter({ ignoreCase: true, ignoreAccents: false, stringify: (option) => option.data.value.path, }); const classOptions = classes.map((_class) => ({ value: _class, label: generateClassLabel(_class, dataQualityState), })); const selectedClassOption = dataQualityQueryBuilderState.sourceClass ? { value: dataQualityQueryBuilderState.sourceClass, label: generateClassLabel(dataQualityQueryBuilderState.sourceClass, dataQualityState), } : null; const changeClass = (val) => { if (val.value === dataQualityQueryBuilderState.sourceElement) { return; } dataQualityState.changeSourceElement(val.value); dataQualityState.updateElementOnClassChange(); onClassChange?.(val.value); }; return (_jsx("div", { className: "data-quality-validation__setup__config-group data-quality-validation__setup__config-group--class", children: _jsx("div", { className: "data-quality-validation__setup__config-group__content", children: _jsxs("div", { className: "data-quality-validation__setup__config-group__item", children: [_jsx("div", { className: "btn--sm data-quality-validation__setup__config-group__item__label", title: "class", children: _jsx(PURE_ClassIcon, {}) }), _jsx(CustomSelectorInput, { className: "panel__content__form__section__dropdown data-quality-validation__setup__config-group__item__selector data-quality-validation__setup__config-group__item__selector__milestoned", placeholder: classOptions.length ? 'Choose a class...' : (noMatchMessage ?? 'No class found'), disabled: classOptions.length < 1 || (classOptions.length === 1 && Boolean(selectedClassOption)), noMatchMessage: noMatchMessage, options: classOptions, onChange: changeClass, value: selectedClassOption, darkMode: !applicationStore.layoutService .TEMPORARY__isLightColorThemeEnabled, filterOption: elementFilterOption })] }) }) })); }); export const DataQualityServiceValidationSideBar = observer((props) => { const { dataQualityState, children } = props; return (_jsxs("div", { className: clsx('data-quality-validation__side-bar', dataQualityState.sideBarClassName), children: [_jsx("div", { "data-testid": DATA_QUALITY_VALIDATION_TEST_ID.DATA_QUALITY_VALIDATION_SETUP, className: "panel data-quality-validation__setup", children: _jsx("div", { className: "panel__content data-quality-validation__setup__content", children: "service selection to be show" }) }), _jsx("div", { className: "data-quality-validation__side-bar__content", children: children })] })); }); export const DataQualityClassValidationSideBar = observer((props) => { const { dataQualityClassValidationState, children } = props; const validationElementCreationBasis = dataQualityClassValidationState.validationElementCreationBasis; return (_jsxs("div", { className: clsx('data-quality-validation__side-bar', dataQualityClassValidationState.sideBarClassName), children: [_jsx("div", { "data-testid": DATA_QUALITY_VALIDATION_TEST_ID.DATA_QUALITY_VALIDATION_SETUP, className: "panel data-quality-validation__setup", children: _jsx("div", { className: "panel__content data-quality-validation__setup__content", children: validationElementCreationBasis === CLASS_ELEMENT_CREATION_BASIS.DATASPACE_BASED ? (_jsx(DataQualityDataSpaceBuilderSetupPanelContent, { dataQualityState: dataQualityClassValidationState })) : (_jsx(DataQualityMappingAndRuntimeBuilder, { dataQualityState: dataQualityClassValidationState })) }) }), _jsx("div", { className: "data-quality-validation__side-bar__content", children: children })] })); }); //# sourceMappingURL=DataQualitySideBar.js.map