UNPKG

@finos/legend-application-marketplace

Version:
100 lines 6.68 kB
import { jsx as _jsx, Fragment as _Fragment, 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 { observer } from 'mobx-react-lite'; import { PlayIcon, QuestionCircleIcon, clsx, InfoCircleIcon, DataAccessIcon, GovernanceIcon, CostCircleIcon, DatasetIcon, AvailabilityIcon, HomeIcon, MenuContent, MenuContentItem, MenuIcon, ControlledDropdownMenu, DataReadyIcon, SparkleIcon, } from '@finos/legend-art'; import {} from '@finos/legend-lego/application'; import { DATA_PRODUCT_VIEWER_ACTIVITY_MODE, generateAnchorForActivity, } from '../../../stores/lakehouse/DataProductViewerNavigation.js'; const ActivityBarMenu = observer((props) => { const { dataSpaceViewerState } = props; const layoutState = dataSpaceViewerState.layoutState; // actions const toggleExpandedMode = () => layoutState.enableExpandedMode(!layoutState.isExpandedModeEnabled); return (_jsx(_Fragment, { children: _jsx("div", { className: "data-space__viewer__activity-bar__menu", children: _jsx(ControlledDropdownMenu, { className: "data-space__viewer__activity-bar__menu-item", menuProps: { anchorOrigin: { vertical: 'top', horizontal: 'right' }, transformOrigin: { vertical: 'top', horizontal: 'left' }, elevation: 7, }, content: _jsx(MenuContent, { children: _jsx(MenuContentItem, { onClick: toggleExpandedMode, children: layoutState.isExpandedModeEnabled ? 'Disable Expanded Mode' : 'Enable Expanded Mode' }) }), children: _jsx(MenuIcon, {}) }) }) })); }); const DataProductViewerActivityBarItemExperimentalBadge = () => (_jsx("div", { className: "data-space__viewer__activity-bar__item__experimental-badge", title: "This is work in progess", children: _jsx(SparkleIcon, {}) })); export const DataProductViewerActivityBar = observer((props) => { const { dataSpaceViewerState } = props; const changeActivity = (activity) => () => { dataSpaceViewerState.changeZone(generateAnchorForActivity(activity), true); }; const wikiActivities = [ { mode: DATA_PRODUCT_VIEWER_ACTIVITY_MODE.DESCRIPTION, title: 'Description', icon: (_jsx(HomeIcon, { className: "data-space__viewer__activity-bar__icon--home" })), }, { mode: DATA_PRODUCT_VIEWER_ACTIVITY_MODE.DATA_ACCESS, title: 'Data Access', icon: (_jsx(DataAccessIcon, { className: "data-space__viewer__activity-bar__icon--access" })), }, ]; const activities = [ { mode: DATA_PRODUCT_VIEWER_ACTIVITY_MODE.EXECUTION_CONTEXT, title: 'Execution Context', icon: _jsx(PlayIcon, {}), }, { mode: DATA_PRODUCT_VIEWER_ACTIVITY_MODE.DATA_STORES, title: 'Data Stores (Work In Progress)', icon: (_jsxs(_Fragment, { children: [_jsx(DatasetIcon, { className: "data-space__viewer__activity-bar__icon--dataset" }), _jsx(DataProductViewerActivityBarItemExperimentalBadge, {})] })), }, { mode: DATA_PRODUCT_VIEWER_ACTIVITY_MODE.DATA_AVAILABILITY, title: 'Data Availability (Work In Progress)', icon: (_jsxs(_Fragment, { children: [_jsx(AvailabilityIcon, { className: "data-space__viewer__activity-bar__icon--availability" }), _jsx(DataProductViewerActivityBarItemExperimentalBadge, {})] })), }, { mode: DATA_PRODUCT_VIEWER_ACTIVITY_MODE.DATA_READINESS, title: 'Data Readiness (Work In Progress)', icon: (_jsxs(_Fragment, { children: [_jsx(DataReadyIcon, { className: "data-space__viewer__activity-bar__icon--readiness" }), _jsx(DataProductViewerActivityBarItemExperimentalBadge, {})] })), }, { mode: DATA_PRODUCT_VIEWER_ACTIVITY_MODE.DATA_COST, title: 'Data Cost (Work In Progress)', icon: (_jsxs(_Fragment, { children: [_jsx(CostCircleIcon, { className: "data-space__viewer__activity-bar__icon--cost" }), _jsx(DataProductViewerActivityBarItemExperimentalBadge, {})] })), }, { mode: DATA_PRODUCT_VIEWER_ACTIVITY_MODE.DATA_GOVERNANCE, title: 'Data Governance (Work In Progress)', icon: (_jsxs(_Fragment, { children: [_jsx(GovernanceIcon, { className: "data-space__viewer__activity-bar__icon--governance" }), _jsx(DataProductViewerActivityBarItemExperimentalBadge, {})] })), }, { mode: DATA_PRODUCT_VIEWER_ACTIVITY_MODE.INFO, title: 'Info', icon: (_jsx(InfoCircleIcon, { className: "data-space__viewer__activity-bar__icon--info" })), }, { mode: DATA_PRODUCT_VIEWER_ACTIVITY_MODE.SUPPORT, title: 'Support', icon: (_jsx(QuestionCircleIcon, { className: "data-space__viewer__activity-bar__icon--support" })), }, ]; return (_jsxs("div", { className: "data-space__viewer__activity-bar", children: [_jsx(ActivityBarMenu, { dataSpaceViewerState: dataSpaceViewerState }), _jsxs("div", { className: "data-space__viewer__activity-bar__items", children: [wikiActivities.map((activity) => (_jsx("button", { className: clsx('data-space__viewer__activity-bar__item', { 'data-space__viewer__activity-bar__item--active': dataSpaceViewerState.currentActivity === activity.mode, }), onClick: changeActivity(activity.mode), tabIndex: -1, title: activity.title, children: activity.icon }, activity.mode))), _jsx("div", { className: "data-space__viewer__activity-bar__divider" }), activities.map((activity) => (_jsx("button", { className: clsx('data-space__viewer__activity-bar__item', { 'data-space__viewer__activity-bar__item--active': dataSpaceViewerState.currentActivity === activity.mode, }), onClick: changeActivity(activity.mode), tabIndex: -1, title: activity.title, children: activity.icon }, activity.mode)))] })] })); }); //# sourceMappingURL=DataProductViewerActivityBar.js.map