@finos/legend-application-marketplace
Version:
Legend Marketplace application core
100 lines • 6.68 kB
JavaScript
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