terriajs
Version:
Geospatial data visualization platform.
39 lines • 2.84 kB
JavaScript
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
import { action } from "mobx";
import { observer } from "mobx-react";
import { useTranslation } from "react-i18next";
import { getName } from "../../ModelMixins/CatalogMemberMixin";
import { filterSelectableDimensions } from "../../Models/SelectableDimensions/SelectableDimensions";
import { useViewState } from "../Context";
import SelectableDimension from "../SelectableDimensions/SelectableDimension";
import WorkbenchItemControls from "../Workbench/Controls/WorkbenchItemControls";
import { Panel } from "./Panel";
import { PanelMenu } from "./PanelMenu";
import WorkflowPanel from "./WorkflowPanel";
/** Two main components:
* - Title panel with `title`, item `WorkbenchItemControls` and menu
* - Panel for each top-level selectable dimension
*/
const SelectableDimensionWorkflow = observer(() => {
const viewState = useViewState();
const terria = viewState.terria;
const [t] = useTranslation();
return terria.selectableDimensionWorkflow ? (_jsxs(WorkflowPanel, { viewState: viewState, icon: terria.selectableDimensionWorkflow.icon, title: terria.selectableDimensionWorkflow.name, closeButtonText: t("compare.done"), onClose: action(() => {
terria.selectableDimensionWorkflow = undefined;
}), footer: terria.selectableDimensionWorkflow.footer, children: [_jsx(Panel, { title: getName(terria.selectableDimensionWorkflow.item), menuComponent: terria.selectableDimensionWorkflow.menu ? (_jsx(PanelMenu, { ...terria.selectableDimensionWorkflow.menu })) : undefined, children: _jsx(WorkbenchItemControls, { item: terria.selectableDimensionWorkflow.item, viewState: viewState, disableViewingControlsMenu: true, controls: {
disableAll: true,
opacity: true,
timer: true,
dateTime: true,
shortReport: true
} }) }), terria.selectableDimensionWorkflow.selectableDimensions.map((groupDim, _i) => {
if (groupDim.disable)
return null;
const childDims = filterSelectableDimensions()(groupDim.selectableDimensions);
if (childDims.length === 0)
return null;
return (_jsx(Panel, { title: groupDim.name ?? groupDim.id, isOpen: groupDim.isOpen ?? true, onToggle: groupDim.onToggle, collapsible: true, children: childDims.map((childDim) => (_jsx(SelectableDimension, { id: `${terria.selectableDimensionWorkflow?.item.uniqueId}-${childDim.id}`, dim: childDim }, `${terria.selectableDimensionWorkflow?.item.uniqueId}-${childDim.id}-fragment`))) }, groupDim.name ?? groupDim.id));
})] })) : null;
});
export default SelectableDimensionWorkflow;
//# sourceMappingURL=SelectableDimensionWorkflow.js.map