UNPKG

terriajs

Version:

Geospatial data visualization platform.

190 lines 11.2 kB
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime"; import createReactClass from "create-react-class"; import PropTypes from "prop-types"; import PointParameterEditor from "./PointParameterEditor"; import LineParameterEditor from "./LineParameterEditor"; import PolygonParameterEditor from "./PolygonParameterEditor"; import RectangleParameterEditor from "./RectangleParameterEditor"; import RegionParameterEditor from "./RegionParameterEditor"; import RegionTypeParameterEditor from "./RegionTypeParameterEditor"; import BooleanParameterEditor from "./BooleanParameterEditor"; import BooleanParameterGroupEditor from "./BooleanParameterGroupEditor"; import DateParameterEditor from "./DateParameterEditor"; import DateTimeParameterEditor from "./DateTimeParameterEditor"; import EnumerationParameterEditor from "./EnumerationParameterEditor"; import GenericParameterEditor from "./GenericParameterEditor"; import NumberParameterEditor from "./NumberParameterEditor"; import GeoJsonParameterEditor from "./GeoJsonParameterEditor"; import defined from "terriajs-cesium/Source/Core/defined"; import Styles from "./parameter-editors.scss"; import InfoParameterEditor from "./InfoParameterEditor"; import parseCustomMarkdownToReact from "../Custom/parseCustomMarkdownToReact"; const ParameterEditor = createReactClass({ displayName: "ParameterEditor", propTypes: { parameter: PropTypes.object, viewState: PropTypes.object, previewed: PropTypes.object, parameterViewModel: PropTypes.object }, fieldId: new Date().getTime(), renderLabel() { return (_jsxs("div", { children: [_jsxs("label", { className: Styles.label, htmlFor: this.fieldId + this.props.parameter.type, children: [this.props.parameter.name, this.props.parameter.isRequired && _jsx("span", { children: " (required)" })] }, this.props.parameter.id), typeof this.props.parameter.description === "string" && this.props.parameter.description !== "" && typeof this.props.parameter.rangeDescription === "string" && this.props.parameter.rangeDescription !== "" ? parseCustomMarkdownToReact(`${this.props.parameter.description} ${this.props.parameter.rangeDescription}`, { parameter: this.props.parameter }) : parseCustomMarkdownToReact(this.props.parameter.description, { parameter: this.props.parameter })] })); }, renderEditor() { for (let i = 0; i < ParameterEditor.parameterTypeConverters.length; ++i) { const converter = ParameterEditor.parameterTypeConverters[i]; const editor = converter.parameterTypeToDiv(this.props.parameter.type, this); if (defined(editor)) { return (_jsx("div", { style: { color: this.props.parameter.isValid ? "inherit" : "#ff0000" }, children: editor })); } } const genericEditor = ParameterEditor.parameterTypeConverters.filter(function (item) { return item.id === "generic"; })[0]; return genericEditor.parameterTypeToDiv("generic", this); }, render() { return (_jsx("div", { id: this.fieldId + this.props.parameter.type, className: Styles.fieldParameterEditor, children: this.renderEditor() })); } }); ParameterEditor.parameterTypeConverters = [ { id: "point", parameterTypeToDiv: function PointParameterToDiv(type, parameterEditor) { if (type === this.id) { return (_jsxs("div", { children: [parameterEditor.renderLabel(), _jsx(PointParameterEditor, { previewed: parameterEditor.props.previewed, viewState: parameterEditor.props.viewState, parameter: parameterEditor.props.parameter, parameterViewModel: parameterEditor.props.parameterViewModel })] })); } } }, { id: "line", parameterTypeToDiv: function LineParameterToDiv(type, parameterEditor) { if (type === this.id) { return (_jsxs("div", { children: [parameterEditor.renderLabel(), _jsx(LineParameterEditor, { previewed: parameterEditor.props.previewed, viewState: parameterEditor.props.viewState, parameter: parameterEditor.props.parameter, parameterViewModel: parameterEditor.props.parameterViewModel })] })); } } }, { id: "rectangle", parameterTypeToDiv: function RectangleParameterToDiv(type, parameterEditor) { if (type === this.id) { return (_jsxs("div", { children: [parameterEditor.renderLabel(), _jsx(RectangleParameterEditor, { previewed: parameterEditor.props.previewed, viewState: parameterEditor.props.viewState, parameter: parameterEditor.props.parameter, parameterViewModel: parameterEditor.props.parameterViewModel })] })); } } }, { id: "polygon", parameterTypeToDiv: function PolygonParameterToDiv(type, parameterEditor) { if (type === this.id) { return (_jsxs("div", { children: [parameterEditor.renderLabel(), _jsx(PolygonParameterEditor, { previewed: parameterEditor.props.previewed, viewState: parameterEditor.props.viewState, parameter: parameterEditor.props.parameter, parameterViewModel: parameterEditor.props.parameterViewModel })] })); } } }, { id: "enumeration", parameterTypeToDiv: function EnumerationParameterToDiv(type, parameterEditor) { if (type === this.id) { return (_jsxs("div", { children: [parameterEditor.renderLabel(), _jsx(EnumerationParameterEditor, { previewed: parameterEditor.props.previewed, viewState: parameterEditor.props.viewState, parameter: parameterEditor.props.parameter, parameterViewModel: parameterEditor.props.parameterViewModel })] })); } } }, { id: "date", parameterTypeToDiv: function DateParameterToDiv(type, parameterEditor) { if (type === this.id) { return (_jsxs("div", { children: [parameterEditor.renderLabel(), _jsx(DateParameterEditor, { previewed: parameterEditor.props.previewed, parameter: parameterEditor.props.parameter, parameterViewModel: parameterEditor.props.parameterViewModel })] })); } } }, { id: "dateTime", parameterTypeToDiv: function DateTimeParameterToDiv(type, parameterEditor) { if (type === this.id) { return (_jsxs("div", { children: [parameterEditor.renderLabel(), _jsx(DateTimeParameterEditor, { previewed: parameterEditor.props.previewed, parameter: parameterEditor.props.parameter, parameterViewModel: parameterEditor.props.parameterViewModel, terria: parameterEditor.props.viewState.terria })] })); } } }, { id: "region", parameterTypeToDiv: function RegionParameterToDiv(type, parameterEditor) { if (type === this.id) { return (_jsxs("div", { children: [parameterEditor.renderLabel(), _jsx(RegionParameterEditor, { previewed: parameterEditor.props.previewed, viewState: parameterEditor.props.viewState, parameter: parameterEditor.props.parameter, parameterViewModel: parameterEditor.props.parameterViewModel })] })); } } }, { id: "regionType", parameterTypeToDiv: function RegionTypeParameterToDiv(type, parameterEditor) { if (type === this.id) { const regionParam = parameterEditor.props.previewed.parameters.filter(function (param) { return (defined(param.regionTypeParameter) && param.regionTypeParameter === parameterEditor.props.parameter); })[0]; return (_jsxs("div", { children: [regionParam === undefined && (_jsxs(_Fragment, { children: [parameterEditor.renderLabel(), _jsx(RegionTypeParameterEditor, { previewed: parameterEditor.props.previewed, parameter: parameterEditor.props.parameter, parameterViewModel: parameterEditor.props.parameterViewModel })] })), !parameterEditor.props.parameter.showInUi && (_jsx("div", { className: "Placeholder for regionType" }))] })); } } }, { id: "boolean", parameterTypeToDiv: function BooleanParameterToDiv(type, parameterEditor) { if (type === this.id) { return (_jsxs("div", { children: [parameterEditor.props.parameter.hasNamedStates && parameterEditor.renderLabel(), _jsx(BooleanParameterEditor, { previewed: parameterEditor.props.previewed, parameter: parameterEditor.props.parameter, parameterViewModel: parameterEditor.props.parameterViewModel })] })); } } }, { id: "boolean-group", parameterTypeToDiv: function BooleanParameterGroupToDiv(type, parameterEditor) { if (type === this.id) { return (_jsxs("div", { children: [parameterEditor.renderLabel(), _jsx(BooleanParameterGroupEditor, { previewed: parameterEditor.props.previewed, parameter: parameterEditor.props.parameter, parameterViewModel: parameterEditor.props.parameterViewModel })] })); } } }, { id: "geojson", parameterTypeToDiv: function GeoJsonParameterToDiv(type, parameterEditor) { if (type === this.id) { return (_jsxs("div", { children: [parameterEditor.renderLabel(), _jsx(GeoJsonParameterEditor, { previewed: parameterEditor.props.previewed, viewState: parameterEditor.props.viewState, parameter: parameterEditor.props.parameter })] })); } } }, { id: "info", parameterTypeToDiv: function GenericParameterToDiv(type, parameterEditor) { if (type === this.id) { return (_jsxs("div", { children: [parameterEditor.renderLabel(), _jsx(InfoParameterEditor, { previewed: parameterEditor.props.previewed, parameter: parameterEditor.props.parameter, parameterViewModel: parameterEditor.props.parameterViewModel })] })); } } }, { id: "generic", parameterTypeToDiv: function GenericParameterToDiv(type, parameterEditor) { if (type === this.id) { return (_jsxs("div", { children: [parameterEditor.renderLabel(), _jsx(GenericParameterEditor, { previewed: parameterEditor.props.previewed, parameter: parameterEditor.props.parameter, parameterViewModel: parameterEditor.props.parameterViewModel })] })); } } }, { id: "number", parameterTypeToDiv: function NumberParameterToDiv(type, parameterEditor) { if (type === this.id) { return (_jsxs("div", { children: [parameterEditor.renderLabel(), _jsx(NumberParameterEditor, { previewed: parameterEditor.props.previewed, parameter: parameterEditor.props.parameter, parameterViewModel: parameterEditor.props.parameterViewModel })] })); } } } ]; export default ParameterEditor; //# sourceMappingURL=ParameterEditor.js.map