@finos/legend-extension-dsl-data-space
Version:
Legend extension for Data Space DSL
49 lines • 5.92 kB
JavaScript
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } 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 { observer } from 'mobx-react-lite';
import { BlankPanelContent, DocumentationIcon, EnvelopeIcon, HomeIcon, QuestionAnswerIcon, SparkleIcon, SupportIcon, } from '@finos/legend-art';
import { DataSpaceSupportCombinedInfo, DataSpaceSupportEmail, } from '../graph/metamodel/pure/model/packageableElements/dataSpace/DSL_DataSpace_DataSpace.js';
import {} from '../stores/DataSpaceViewerState.js';
const DataSpaceSupportEmailViewer = observer((props) => {
const { supportInfo } = props;
return (_jsx("div", { className: "data-space__viewer__support__section", children: _jsxs("div", { className: "data-space__viewer__support__entry", children: [_jsx("div", { className: "data-space__viewer__support__entry__icon", children: _jsx(EnvelopeIcon, {}) }), _jsx("a", { href: `mailto:${supportInfo.address}`, className: "data-space__viewer__support__entry__content", children: supportInfo.address })] }) }));
});
const DataSpaceSupportCombinedInfoViewer = observer((props) => {
const { supportInfo } = props;
return (_jsxs(_Fragment, { children: [_jsxs("div", { className: "data-space__viewer__support__section", children: [_jsxs("div", { className: "data-space__viewer__support__entry", title: "Website", children: [_jsx("div", { className: "data-space__viewer__support__entry__icon data-space__viewer__support__entry__icon--website", children: _jsx(HomeIcon, {}) }), supportInfo.website ? (_jsx("a", { href: supportInfo.website, className: "data-space__viewer__support__entry__content", children: supportInfo.website })) : (_jsx("div", { className: "data-space__viewer__support__entry__content", children: "(not specified)" }))] }), _jsxs("div", { className: "data-space__viewer__support__entry", title: "Documentation", children: [_jsx("div", { className: "data-space__viewer__support__entry__icon", children: _jsx(DocumentationIcon, {}) }), supportInfo.documentationUrl ? (_jsx("a", { href: supportInfo.documentationUrl, className: "data-space__viewer__support__entry__content", children: supportInfo.documentationUrl })) : (_jsx("div", { className: "data-space__viewer__support__entry__content", children: "(not specified)" }))] }), _jsxs("div", { className: "data-space__viewer__support__entry", title: "Support", children: [_jsx("div", { className: "data-space__viewer__support__entry__icon data-space__viewer__support__entry__icon--support", children: _jsx(SupportIcon, {}) }), supportInfo.supportUrl ? (_jsx("a", { href: supportInfo.supportUrl, className: "data-space__viewer__support__entry__content", children: supportInfo.supportUrl })) : (_jsx("div", { className: "data-space__viewer__support__entry__content", children: "(not specified)" }))] }), _jsxs("div", { className: "data-space__viewer__support__entry", title: "FAQ", children: [_jsx("div", { className: "data-space__viewer__support__entry__icon data-space__viewer__support__entry__icon--faq", children: _jsx(QuestionAnswerIcon, {}) }), supportInfo.faqUrl ? (_jsx("a", { href: supportInfo.faqUrl, className: "data-space__viewer__support__entry__content", children: supportInfo.faqUrl })) : (_jsx("div", { className: "data-space__viewer__support__entry__content", children: "(not specified)" }))] })] }), supportInfo.emails?.length && (_jsx("div", { className: "data-space__viewer__support__section", children: supportInfo.emails.map((email, idx) => (
// eslint-disable-next-line react/no-array-index-key
_jsxs("div", { className: "data-space__viewer__support__entry", children: [_jsx("div", { className: "data-space__viewer__support__entry__icon", children: _jsx(EnvelopeIcon, {}) }), _jsx("a", { href: `mailto:${email}`, className: "data-space__viewer__support__entry__content", children: email })] }, idx))) }))] }));
});
const DataSpaceSupport = observer((props) => {
const { dataSpaceViewerState } = props;
const supportInfo = dataSpaceViewerState.dataSpaceAnalysisResult.supportInfo;
if (supportInfo === undefined) {
return _jsx(BlankPanelContent, { children: "No support info available" });
}
else if (supportInfo instanceof DataSpaceSupportEmail) {
return (_jsx(DataSpaceSupportEmailViewer, { dataSpaceViewerState: dataSpaceViewerState, supportInfo: supportInfo }));
}
else if (supportInfo instanceof DataSpaceSupportCombinedInfo) {
return (_jsx(DataSpaceSupportCombinedInfoViewer, { dataSpaceViewerState: dataSpaceViewerState, supportInfo: supportInfo }));
}
return (_jsxs("div", { className: "data-space__viewer__panel__content__placeholder", children: [_jsx(SparkleIcon, {}), " This is work in progress"] }));
});
export const DataSpaceSupportPanel = observer((props) => {
const { dataSpaceViewerState } = props;
return (_jsxs("div", { className: "data-space__viewer__panel", children: [_jsx("div", { className: "data-space__viewer__panel__header", children: _jsx("div", { className: "data-space__viewer__panel__header__label", children: "Support" }) }), _jsx("div", { className: "data-space__viewer__panel__content", children: _jsx("div", { className: "data-space__viewer__support-info", children: _jsx(DataSpaceSupport, { dataSpaceViewerState: dataSpaceViewerState }) }) })] }));
});
//# sourceMappingURL=DataSpaceSupportPanel.js.map