UNPKG

terriajs

Version:

Geospatial data visualization platform.

55 lines 2.64 kB
import { jsx as _jsx } from "react/jsx-runtime"; import { runInAction } from "mobx"; import { observer } from "mobx-react"; import defined from "terriajs-cesium/Source/Core/defined"; import addedByUser from "../../Core/addedByUser"; import { DataSourceAction } from "../../Core/AnalyticEvents/analyticEvents"; import getPath from "../../Core/getPath"; import CatalogGroup from "./CatalogGroup"; import CatalogItem, { ButtonState } from "./CatalogItem"; import toggleItemOnMapFromCatalog, { Op as ToggleOnMapOp } from "./toggleItemOnMapFromCatalog"; export default observer(function DataCatalogReference({ reference, viewState, onActionButtonClicked, isTopLevel }) { const setPreviewedItem = () => viewState .viewCatalogMember(reference) .then((result) => result.raiseError(viewState.terria)); const add = async (event) => { const keepCatalogOpen = event.shiftKey || event.ctrlKey; if (onActionButtonClicked) { onActionButtonClicked(reference); return; } if (defined(viewState.storyShown)) { runInAction(() => { viewState.storyShown = false; }); } if (reference.isFunction || viewState.useSmallScreenInterface) { await setPreviewedItem(); } else { await toggleItemOnMapFromCatalog(viewState, reference, keepCatalogOpen, { [ToggleOnMapOp.Add]: DataSourceAction.addFromCatalogue, [ToggleOnMapOp.Remove]: DataSourceAction.removeFromCatalogue }); } }; const isSelected = addedByUser(reference) ? viewState.userDataPreviewedItem === reference : viewState.previewedItem === reference; const path = getPath(reference, " -> "); let btnState; if (reference.isLoading) { btnState = ButtonState.Loading; } else if (viewState.useSmallScreenInterface) { btnState = ButtonState.Preview; } else if (reference.isFunction) { btnState = ButtonState.Stats; } else { btnState = ButtonState.Add; } return reference.isGroup ? (_jsx(CatalogGroup, { text: reference.name || "...", isPrivate: reference.isPrivate, title: path, onClick: setPreviewedItem, topLevel: isTopLevel, loading: reference.isLoadingReference, open: reference.isLoadingReference })) : (_jsx(CatalogItem, { onTextClick: setPreviewedItem, selected: isSelected, text: reference.name || "...", isPrivate: reference.isPrivate, title: path, btnState: btnState, onBtnClick: reference.isFunction ? setPreviewedItem : add })); }); //# sourceMappingURL=DataCatalogReference.js.map