UNPKG

terriajs

Version:

Geospatial data visualization platform.

61 lines 3.68 kB
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; return c > 3 && r && Object.defineProperty(target, key, r), r; }; import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime"; import { runInAction } from "mobx"; import { observer } from "mobx-react"; import { Component, Fragment } from "react"; import isDefined from "../../../Core/isDefined"; import CatalogMemberMixin from "../../../ModelMixins/CatalogMemberMixin"; import CommonStrata from "../../../Models/Definition/CommonStrata"; import Box from "../../../Styled/Box"; import Spacing from "../../../Styled/Spacing"; import Text from "../../../Styled/Text"; import Collapsible from "../../Custom/Collapsible/Collapsible"; import parseCustomMarkdownToReact from "../../Custom/parseCustomMarkdownToReact"; let ShortReport = class ShortReport extends Component { clickShortReport(item, reportName, isOpen) { const shortReportSections = item.shortReportSections; const clickedReport = shortReportSections.find((report) => report.name === reportName); if (isDefined(clickedReport)) { runInAction(() => { /** * Ensure short report order is reflected by all strata up to this point * & replicate all onto user stratum so that toggling doesn't re-order * reports - a stopgap for the lack of consistent behavior surrounding * removals / re-ordering of objectArrayTraits */ shortReportSections.forEach((report) => report.setTrait(CommonStrata.user, "show", report.show)); clickedReport.setTrait(CommonStrata.user, "show", isOpen); }); } return false; } render() { if (!CatalogMemberMixin.isMixedInto(this.props.item)) return null; const item = this.props.item; const shortReportSections = item.shortReportSections?.filter((r) => isDefined(r.name)); if ((!isDefined(item.shortReport) || item.shortReport === "") && (!isDefined(shortReportSections) || shortReportSections.length === 0)) { return null; } return (_jsxs(Box, { fullWidth: true, displayInlineBlock: true, children: [isDefined(item.shortReport) && (_jsx(Text, { textGreyLighter: true, medium: true, children: parseCustomMarkdownToReact(item.shortReport, { catalogItem: item }) })), shortReportSections .filter((r) => r.name) .map((r, i) => (_jsxs(Fragment, { children: [r.content ? (_jsx(Collapsible, { title: r.name, isOpen: r.show, onToggle: (show) => this.clickShortReport(item, r.name, show), children: parseCustomMarkdownToReact(r.content, { catalogItem: item }) })) : (_jsx(Text, { textGreyLighter: true, medium: true, children: parseCustomMarkdownToReact(r.name, { catalogItem: item }) })), i < shortReportSections.length - 1 && _jsx(Spacing, { bottom: 2 })] }, r.name)))] })); } }; ShortReport = __decorate([ observer ], ShortReport); export default ShortReport; //# sourceMappingURL=ShortReport.js.map