{"version":3,"file":"static/js/8412.5adae6b6.chunk.js","mappings":"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","sources":["components/Card.js","plugins/BaseWindowPlugin.js","plugins/Collector/Collector.js","plugins/Collector/CollectorModel.js","plugins/Collector/CollectorView.js","../node_modules/@mui/icons-material/RateReview.js","../node_modules/@mui/material/CardActionArea/cardActionAreaClasses.js","../node_modules/@mui/material/CardActionArea/CardActionArea.js","../node_modules/@mui/material/CardHeader/cardHeaderClasses.js","../node_modules/@mui/material/CardHeader/CardHeader.js","../node_modules/@mui/material/Card/cardClasses.js","../node_modules/@mui/material/Card/Card.js"],"sourcesContent":["import React from \"react\";\nimport propTypes from \"prop-types\";\nimport { styled } from \"@mui/material/styles\";\nimport {\n Card as MUICard,\n CardHeader,\n CardActionArea,\n Avatar,\n} from \"@mui/material\";\n\nconst StyledCard = styled(MUICard)(({ theme }) => ({\n marginBottom: theme.spacing(1),\n width: \"210px\",\n [theme.breakpoints.down(\"sm\")]: {\n boxShadow: \"none\",\n borderBottom: \"1px solid #ccc\",\n borderRadius: 0,\n margin: 0,\n width: \"100%\",\n justifyContent: \"left\",\n },\n}));\n\nconst StyledAvatar = styled(Avatar)(({ theme }) => ({\n background: theme.palette.text.primary,\n}));\n\nclass Card extends React.PureComponent {\n state = {\n open: false,\n text: \"\",\n };\n\n static propTypes = {\n abstract: propTypes.string.isRequired,\n icon: propTypes.object.isRequired,\n onClick: propTypes.func.isRequired,\n title: propTypes.string.isRequired,\n };\n\n static defaultProps = {\n abstract: \"Beskrivning saknas\",\n title: \"Titel saknas\",\n };\n\n render() {\n const { abstract, icon, onClick, title } = this.props;\n\n return (\n \n \n {icon}}\n title={title}\n subheader={abstract}\n />\n \n \n );\n }\n}\n\nexport default Card;\n","import React from \"react\";\nimport propTypes from \"prop-types\";\nimport { isMobile } from \"./../utils/IsMobile\";\nimport { createPortal } from \"react-dom\";\nimport { Hidden, ListItem, ListItemIcon, ListItemText } from \"@mui/material\";\nimport Window from \"../components/Window.js\";\nimport Card from \"../components/Card.js\";\nimport PluginControlButton from \"../components/PluginControlButton\";\n\nclass BaseWindowPlugin extends React.PureComponent {\n static propTypes = {\n app: propTypes.object.isRequired,\n children: propTypes.object.isRequired,\n custom: propTypes.object.isRequired,\n map: propTypes.object.isRequired,\n options: propTypes.object.isRequired,\n type: propTypes.string.isRequired,\n };\n\n constructor(props) {\n super(props);\n // 'type' is basically a unique identifier for each plugin\n this.type = props.type.toLowerCase() || undefined;\n\n // There will be defaults in props.custom, so that each plugin has own default title/description\n this.description = props.options.description || props.custom.description;\n\n // Should Window be visible at start?\n const visibleAtStart =\n (this.props.app.config.mapConfig.map.clean === false && // Never show in clean mode\n (isMobile\n ? props.options.visibleAtStartMobile\n : props.options.visibleAtStart)) ||\n false;\n\n // If plugin is shown at start, we want to register it as shown in the Analytics module too.\n // Normally, the event would be sent when user clicks on the button that activates the plugin,\n // but in this case there won't be any click as the window will be visible at start.\n if (visibleAtStart) {\n this.props.app.globalObserver.publish(\"analytics.trackEvent\", {\n eventName: \"pluginShown\",\n pluginName: this.type,\n activeMap: this.props.app.config.activeMap,\n });\n }\n\n // Title and Color are kept in state and not as class properties. Keeping them in state\n // ensures re-render when new props arrive and update the state variables (see componentDidUpdate() too).\n this.state = {\n title: props.options.title || props.custom.title || \"Unnamed plugin\",\n color: props.options.color || props.custom.color || null,\n windowVisible: visibleAtStart,\n };\n\n // Title is a special case: we want to use the state.title and pass on to Window in order\n // to update Window's title dynamically. At the same time, we want all other occurrences,\n // e.g. Widget or Drawer button's label to remain the same.\n this.title = props.options.title || props.custom.title || \"Unnamed plugin\";\n\n // Try to get values from admin's option. Fallback to customs from Plugin defaults, or finally to hard-coded values.\n this.width = props.options.width || props.custom.width || 400;\n this.height = props.options.height || props.custom.height || \"auto\";\n this.position = props.options.position || props.custom.position || \"left\";\n\n // Register Window in our global register\n props.app.registerWindowPlugin(this);\n\n // Subscribe to a global event that makes it possible to show/hide Windows.\n // First we prepare a unique event name for each plugin so it looks like '{pluginName}.showWindow'.\n const eventName = `${this.type}.showWindow`;\n // Next, subscribe to that event, expect 'opts' array.\n // To find all places where this event is publish, search for 'globalObserver.publish(\"show'\n props.app.globalObserver.subscribe(eventName, (opts) => {\n this.showWindow(opts);\n });\n\n // Same as above, but to close the window.\n const closeEventName = `${this.type}.closeWindow`;\n\n props.app.globalObserver.subscribe(closeEventName, () => {\n this.closeWindow();\n });\n }\n\n // Does not run on initial render, but runs on subsequential re-renders.\n componentDidUpdate(prevProps) {\n // Window's title and color can be updated on-the-flight, so we keep them\n // in state and ensure that state is updated when new props arrive.\n prevProps.custom.title !== this.props.custom.title &&\n this.setState({ title: this.props.custom.title });\n\n prevProps.custom.color !== this.props.custom.color &&\n this.setState({ color: this.props.custom.color });\n }\n\n pluginIsWidget(target) {\n return [\"left\", \"right\"].includes(target);\n }\n\n handleButtonClick = (e) => {\n this.showWindow({\n hideOtherPluginWindows: true,\n runCallback: true,\n });\n this.props.app.globalObserver.publish(\"core.onlyHideDrawerIfNeeded\");\n };\n\n showWindow = (opts = {}) => {\n const hideOtherPluginWindows = opts.hideOtherPluginWindows || true,\n runCallback = opts.runCallback || true;\n // Let the App know which tool is currently active\n this.props.app.activeTool = this.type;\n\n // Tell the Analytics model about this\n this.props.app.globalObserver.publish(\"analytics.trackEvent\", {\n eventName: \"pluginShown\",\n pluginName: this.type,\n activeMap: this.props.app.config.activeMap,\n });\n\n // AppModel keeps track of recently shown plugins.\n this.props.app.pushPluginIntoHistory({\n type: this.type,\n icon: this.props.custom.icon,\n title: this.title,\n description: this.description,\n });\n\n // Don't continue if visibility hasn't changed\n if (this.state.windowVisible === true) {\n return null;\n }\n\n hideOtherPluginWindows === true && this.props.app.onWindowOpen(this);\n\n this.setState(\n {\n windowVisible: true,\n },\n () => {\n // Notify the app that a plugin's visibility has changed\n this.props.app.globalObserver.publish(\"core.pluginVisibilityChanged\");\n\n // If there's a callback defined in custom, run it\n runCallback === true &&\n typeof this.props.custom.onWindowShow === \"function\" &&\n this.props.custom.onWindowShow();\n }\n );\n };\n\n closeWindow = () => {\n // If closeWindow was initiated by the tool that is currently\n // active, we should unset the activeTool property\n if (this.type === this.props.app.activeTool)\n this.props.app.activeTool = undefined;\n\n this.setState(\n {\n windowVisible: false,\n },\n () => {\n // Notify the app that a plugin's visibility has changed\n this.props.app.globalObserver.publish(\"core.pluginVisibilityChanged\");\n\n typeof this.props.custom.onWindowHide === \"function\" &&\n this.props.custom.onWindowHide();\n }\n );\n };\n /**\n * @summary Render the plugin and its buttons according to settings in admin.\n * @description See comments in code to follow the rendering logic.\n * @param {*} custom\n * @returns {object} React.Component\n * @memberof BaseWindowPlugin\n */\n renderWindow(custom) {\n const { target } = this.props.options;\n // BaseWindowPlugin, which calls this method, will supply an object.\n // If that object contains a render() function, we want to call it\n // and bypass any other functionality from this method.\n return typeof custom?.render === \"function\" ? (\n custom.render()\n ) : (\n // If there was not custom render method, we do \"normal\" rendering.\n // That includes rendering the plugin Window itself, as well as a\n // button (that will trigger opening of the plugin Window).\n <>\n t.type === \"layerswitcher\"\n )}\n >\n {/* We have to pass windowVisible down to the children so that we can conditionally render\n the component, since it does not accept components with display: \"none\". We use the\n windowVisible-prop to make sure that we don't render the when the window\n is not visible.*/}\n {React.cloneElement(this.props.children, {\n windowVisible: this.state.windowVisible,\n })}\n \n {/* Always render a Drawer button unless its target is \"hidden\". \n It's a backup for plugins render elsewhere: we hide \n Widget and Control buttons on small screens and fall \n back to Drawer button). */}\n {target !== \"hidden\" && this.renderDrawerButton()}\n {/* Widget buttons must also render a Widget */}\n {this.pluginIsWidget(target) &&\n this.renderWidgetButton(`${target}-column`)}\n {/* Finally, render a Control button if target has that value */}\n {target === \"control\" && this.renderControlButton()}\n >\n );\n }\n\n /**\n * This is a bit of a special case. This method will render\n * not only plugins specified as Drawer plugins (target===toolbar),\n * but it will also render Widget and Control plugins - given some special condition.\n *\n * Those special conditions are small screens, where there's no screen\n * estate to render the Widget button in Map Overlay.\n */\n renderDrawerButton() {\n return createPortal(\n \n \n {this.props.custom.icon}\n \n \n ,\n document.getElementById(\"plugin-buttons\")\n );\n }\n\n renderWidgetButton(id) {\n return createPortal(\n // Hide Widget button on small screens, see renderDrawerButton too\n \n \n ,\n document.getElementById(id)\n );\n }\n\n renderControlButton() {\n return createPortal(\n // Hide Control button on small screens, see renderDrawerButton too\n \n \n ,\n document.getElementById(\"plugin-control-buttons\")\n );\n }\n\n render() {\n // Don't render if \"clean\" query param is specified, otherwise go on\n return (\n this.props.app.config.mapConfig.map.clean !== true &&\n this.renderWindow(this.props.custom)\n );\n }\n}\n\nexport default BaseWindowPlugin;\n","import React from \"react\";\nimport BaseWindowPlugin from \"../BaseWindowPlugin\";\n\nimport RateReviewIcon from \"@mui/icons-material/RateReview\";\n\nimport Observer from \"react-event-observer\";\nimport CollectorView from \"./CollectorView.js\";\nimport CollectorModel from \"./CollectorModel.js\";\n\nclass Collector extends React.Component {\n constructor(props) {\n super(props);\n\n this.app = props.app;\n this.options = props.options;\n this.form = this.options.form || [];\n this.serviceConfig = this.getLayerConfigById(this.options.serviceId);\n\n this.observer = new Observer();\n\n this.collectorModel = new CollectorModel({\n map: props.map,\n app: props.app,\n observer: this.observer,\n globalObserver: this.app.globalObserver,\n options: {\n ...props.options,\n serviceConfig: this.serviceConfig,\n },\n });\n }\n\n getLayerConfigById(serviceId) {\n return this.app.config.layersConfig.find(\n (layerConfig) =>\n layerConfig.type === \"edit\" && layerConfig.id === serviceId\n );\n }\n\n onWindowHide = () => {\n this.collectorModel.reset();\n this.collectorModel.observer.publish(\"abortInteraction\");\n };\n\n render() {\n return (\n ,\n title: \"Tyck till\",\n description: \"Vi vill veta vad du tycker!\",\n height: 450,\n width: 430,\n onWindowHide: this.onWindowHide,\n }}\n >\n \n \n );\n }\n}\n\nexport default Collector;\n","import { WFS } from \"ol/format\";\nimport { Style, Stroke, Fill, Circle, RegularShape, Icon } from \"ol/style\";\nimport { MultiPoint, Polygon } from \"ol/geom\";\nimport Feature from \"ol/Feature\";\nimport Vector from \"ol/layer/Vector\";\nimport VectorSource from \"ol/source/Vector\";\nimport { all as strategyAll } from \"ol/loadingstrategy\";\nimport { Draw } from \"ol/interaction\";\nimport X2JS from \"x2js\";\nimport { hfetch } from \"utils/FetchWrapper\";\n\nclass CollectorModel {\n constructor(settings) {\n this.app = settings.app;\n this.map = settings.map;\n this.observer = settings.observer;\n this.globalObserver = settings.globalObserver;\n this.activeServices = [settings.options.serviceId];\n this.sources = [settings.options.serviceConfig];\n this.vectorSource = undefined;\n this.layer = undefined;\n this.select = undefined;\n this.modify = undefined;\n this.key = undefined;\n this.editFeature = undefined;\n this.editSource = undefined;\n this.filty = false;\n this.saving = false;\n this.geometryName = \"geom\";\n this.wkt = settings.options.wkt ?? false;\n this.serviceConfig = settings.options.serviceConfig;\n if (this.serviceConfig) {\n this.setFormValuesFromConfig();\n this.setLayer(settings.options.serviceConfig);\n } else {\n console.warn(\"Edit service is missing or not properly configured.\");\n }\n }\n\n setFormValuesFromConfig = () => {\n if (this.serviceConfig) {\n this.formValues = this.serviceConfig.editableFields.reduce(\n (obj, field) => {\n obj[field.name] = this.valueByDataType(field);\n return obj;\n },\n {}\n );\n } else {\n this.formValues = {};\n }\n };\n\n valueByDataType(field) {\n switch (field.dataType) {\n case \"date-time\":\n return new Date().getTime();\n case \"int\":\n case \"number\":\n return 0;\n case \"string\":\n if (field.textType === \"flerval\") {\n return field.values.map((f) => ({ checked: false, value: f }));\n }\n return \"\";\n default:\n return \"\";\n }\n }\n\n write(features) {\n var format = new WFS(),\n lr = this.editSource.layers[0].split(\":\"),\n fp = lr.length === 2 ? lr[0] : \"\",\n ft = lr.length === 2 ? lr[1] : lr[0],\n options = {\n featureNS: this.editSource.uri,\n featurePrefix: fp,\n featureType: ft,\n hasZ: false,\n version: \"1.1.0\", // or \"1.0.0\"\n srsName: this.editSource.projection,\n };\n\n return format.writeTransaction(\n features.inserts,\n features.updates,\n features.deletes,\n options\n );\n }\n\n refreshLayer(layerName) {\n var source,\n foundLayer = this.map\n .getLayers()\n .getArray()\n .find((layer) => {\n var match = false;\n if (layer.getSource().getParams) {\n let params = layer.getSource().getParams();\n if (typeof params === \"object\") {\n let paramName = params.LAYERS.split(\":\");\n let layerSplit = layerName.split(\":\");\n if (paramName.length === 2 && layerSplit.length === 2) {\n match = layerName === params.LAYERS;\n }\n if (paramName.length === 1) {\n match = layerSplit[1] === params.LAYERS;\n }\n }\n }\n return match;\n });\n\n if (foundLayer) {\n source = foundLayer.getSource();\n source.changed();\n source.updateParams({ time: Date.now() });\n this.map.updateSize();\n }\n }\n\n parseWFSTresponse(response) {\n var str =\n typeof response !== \"string\"\n ? new XMLSerializer().serializeToString(response)\n : response;\n return new X2JS().xml2js(str);\n }\n\n transact(features, done) {\n var node = this.write(features),\n serializer = new XMLSerializer(),\n src = this.editSource,\n payload = node ? serializer.serializeToString(node) : undefined;\n\n if (payload && this.saving === false) {\n this.saving = true;\n hfetch(src.url, {\n method: \"POST\",\n body: payload,\n credentials: \"same-origin\",\n headers: {\n \"Content-Type\": \"text/xml\",\n },\n })\n .then((response) => {\n this.saving = false;\n response.text().then((wfsResponseText) => {\n this.refreshLayer(src.layers[0]);\n this.vectorSource\n .getFeatures()\n .filter((f) => f.modification !== undefined)\n .forEach((f) => (f.modification = undefined));\n done(this.parseWFSTresponse(wfsResponseText));\n });\n })\n .catch((response) => {\n this.saving = false;\n response.text().then((errorMessage) => {\n done(errorMessage);\n });\n });\n }\n }\n\n save(done) {\n var inserts = this.vectorSource.getFeatures();\n const formValues = { ...this.formValues };\n Object.keys(formValues).forEach((key) => {\n if (Array.isArray(formValues[key])) {\n formValues[key] = formValues[key]\n .filter((v) => v.checked)\n .map((v) => v.value)\n .join(\", \");\n }\n });\n\n if (inserts.length === 0) {\n inserts.push(new Feature());\n }\n\n if (inserts.length > 0) {\n inserts[0].setProperties(formValues);\n this.transact({ inserts: inserts }, done);\n }\n }\n\n getSelectStyle(feature) {\n return [\n new Style({\n stroke: new Stroke({\n color: \"rgba(0, 255, 255, 1)\",\n width: 3,\n }),\n fill: new Fill({\n color: \"rgba(0, 0, 0, 0.5)\",\n }),\n image: new Circle({\n fill: new Fill({\n color: \"rgba(0, 0, 0, 0.5)\",\n }),\n stroke: new Stroke({\n color: \"rgba(0, 255, 255, 1)\",\n width: 2,\n }),\n radius: 3,\n }),\n }),\n new Style({\n image: new RegularShape({\n fill: new Fill({\n color: \"rgba(0, 0, 0, 0.2)\",\n }),\n stroke: new Stroke({\n color: \"rgba(0, 0, 0, 1)\",\n width: 2,\n }),\n points: 4,\n radius: 8,\n angle: Math.PI / 4,\n }),\n geometry: (feature) => {\n var coordinates =\n feature.getGeometry() instanceof Polygon\n ? feature.getGeometry().getCoordinates()[0]\n : feature.getGeometry().getCoordinates();\n return new MultiPoint(coordinates);\n },\n }),\n ];\n }\n\n getVectorStyle(feature) {\n return [\n new Style({\n stroke: new Stroke({\n color: \"rgba(255, 165, 20, 1)\",\n width: 3,\n }),\n fill: new Fill({\n color: \"rgba(255, 165, 20, 0.5)\",\n }),\n image: new Icon({\n scale: 1 / 2,\n anchor: [0.5, 1],\n anchorXUnits: \"fraction\",\n anchorYUnits: \"fraction\",\n src: \"marker_x2.png\",\n }),\n }),\n ];\n }\n\n getHiddenStyle(feature) {\n return [\n new Style({\n stroke: new Stroke({\n color: \"rgba(0, 0, 0, 0)\",\n width: 0,\n }),\n fill: new Fill({\n color: \"rgba(1, 2, 3, 0)\",\n }),\n image: new Circle({\n fill: new Fill({\n color: \"rgba(0, 0, 0, 0)\",\n }),\n stroke: new Stroke({\n color: \"rgba(0, 0, 0, 0)\",\n width: 0,\n }),\n radius: 0,\n }),\n }),\n ];\n }\n\n getSketchStyle() {\n return [\n new Style({\n fill: new Fill({\n color: \"rgba(255, 255, 255, 0.5)\",\n }),\n stroke: new Stroke({\n color: \"rgba(0, 0, 0, 0.5)\",\n width: 4,\n }),\n image: new Circle({\n radius: 6,\n fill: new Fill({\n color: \"rgba(0, 0, 0, 0.5)\",\n }),\n stroke: new Stroke({\n color: \"rgba(255, 255, 255, 0.5)\",\n width: 2,\n }),\n }),\n }),\n ];\n }\n\n refreshEditingLayer() {\n var mapLayers = this.map\n .getLayers()\n .getArray()\n .filter(\n (layer) => layer.getProperties().caption === this.editSource.caption\n );\n\n mapLayers.forEach((mapLayer) => {\n if (mapLayer.getSource) {\n let s = mapLayer.getSource();\n if (s.clear) {\n s.clear();\n }\n if (s.getParams) {\n var params = s.getParams();\n params.t = new Date().getMilliseconds();\n s.updateParams(params);\n }\n if (s.changed) {\n s.changed();\n }\n }\n });\n }\n\n setLayer(serviceConfig) {\n this.source = serviceConfig;\n this.filty = true;\n this.vectorSource = new VectorSource({\n strategy: strategyAll,\n projection: this.source.projection,\n });\n\n this.layer = new Vector({\n layerType: \"system\",\n zIndex: 5000,\n name: \"pluginCollector\",\n caption: \"Collector layer\",\n source: this.vectorSource,\n style: this.getVectorStyle(),\n });\n\n if (this.layer) {\n this.map.removeLayer(this.layer);\n }\n\n this.map.addLayer(this.layer);\n this.editSource = this.source;\n this.editFeature = null;\n this.observer.publish(\"editSource\", this.source);\n this.observer.publish(\"editFeature\", null);\n this.observer.publish(\"layerChanged\", this.layer);\n }\n\n activateAdd(geometryType) {\n this.draw = new Draw({\n source: this.vectorSource,\n style: this.getSketchStyle(),\n type: geometryType,\n geometryName: this.geometryName,\n });\n\n this.draw.on(\"drawend\", (event) => {\n // WKT supports insertion of multiple features and clear should therefore\n // not be executed in this case\n if (!this.wkt) {\n this.vectorSource.clear();\n }\n event.feature.modification = \"added\";\n });\n this.map.addInteraction(this.draw);\n this.map.clickLock.add(\"collector\");\n }\n\n activateInteraction(type, geometryType) {\n if (type === \"add\") {\n this.activateAdd(geometryType);\n }\n if (type === \"move\") {\n this.activateMove();\n }\n if (type === \"modify\") {\n this.activateModify();\n }\n if (type === \"remove\") {\n this.map.clickLock.add(\"collector\");\n this.activateRemove();\n }\n this.map.snapHelper.add(\"collector\");\n }\n\n deactivateInteraction() {\n this.map.snapHelper.delete(\"collector\");\n if (this.select) {\n this.map.removeInteraction(this.select);\n }\n if (this.modify) {\n this.map.removeInteraction(this.modify);\n }\n if (this.draw) {\n this.map.removeInteraction(this.draw);\n }\n if (this.move) {\n this.map.removeInteraction(this.move);\n }\n if (this.snap) {\n this.map.removeInteraction(this.snap);\n }\n if (this.remove) {\n this.remove = false;\n this.map.clickLock.delete(\"collector\");\n\n this.map.un(\"singleclick\", this.removeSelected);\n }\n }\n\n reset() {\n if (this.vectorSource) {\n this.vectorSource.clear();\n }\n this.map.clickLock.delete(\"collector\");\n\n this.deactivateInteraction();\n this.setFormValuesFromConfig();\n this.observer.publish(\"reset\");\n }\n\n deactivate() {\n this.reset();\n this.observer.publish(\"editFeature\", this.editFeature);\n this.observer.publish(\"editSource\", this.editSource);\n this.observer.publish(\"deactivate\");\n }\n\n getSources() {\n return this.sources.filter((source) => {\n return this.activeServices.some((serviceId) => serviceId === source.id);\n });\n }\n}\n\nexport default CollectorModel;\n","import React, { Component } from \"react\";\nimport CollectorForm from \"./components/CollectorForm.js\";\nimport \"./style.css\";\n\nclass CollectorView extends Component {\n constructor(props) {\n super(props);\n this.state = {};\n this.model = props.model;\n }\n\n componentDidMount() {}\n\n onClose = () => {\n this.props.onClose();\n };\n\n render() {\n return (\n \n );\n }\n}\n\nexport default CollectorView;\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\nvar _jsxRuntime = require(\"react/jsx-runtime\");\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M20 2H4c-1.1 0-1.99.9-1.99 2L2 22l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zM6 14v-2.47l6.88-6.88c.2-.2.51-.2.71 0l1.77 1.77c.2.2.2.51 0 .71L8.47 14H6zm12 0h-7.5l2-2H18v2z\"\n}), 'RateReview');\nexports.default = _default;","import { unstable_generateUtilityClasses as generateUtilityClasses } from '@mui/utils';\nimport generateUtilityClass from '../generateUtilityClass';\nexport function getCardActionAreaUtilityClass(slot) {\n return generateUtilityClass('MuiCardActionArea', slot);\n}\nconst cardActionAreaClasses = generateUtilityClasses('MuiCardActionArea', ['root', 'focusVisible', 'focusHighlight']);\nexport default cardActionAreaClasses;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"children\", \"className\", \"focusVisibleClassName\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport useThemeProps from '../styles/useThemeProps';\nimport styled from '../styles/styled';\nimport cardActionAreaClasses, { getCardActionAreaUtilityClass } from './cardActionAreaClasses';\nimport ButtonBase from '../ButtonBase';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['root'],\n focusHighlight: ['focusHighlight']\n };\n return composeClasses(slots, getCardActionAreaUtilityClass, classes);\n};\nconst CardActionAreaRoot = styled(ButtonBase, {\n name: 'MuiCardActionArea',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})(({\n theme\n}) => ({\n display: 'block',\n textAlign: 'inherit',\n width: '100%',\n [`&:hover .${cardActionAreaClasses.focusHighlight}`]: {\n opacity: (theme.vars || theme).palette.action.hoverOpacity,\n '@media (hover: none)': {\n opacity: 0\n }\n },\n [`&.${cardActionAreaClasses.focusVisible} .${cardActionAreaClasses.focusHighlight}`]: {\n opacity: (theme.vars || theme).palette.action.focusOpacity\n }\n}));\nconst CardActionAreaFocusHighlight = styled('span', {\n name: 'MuiCardActionArea',\n slot: 'FocusHighlight',\n overridesResolver: (props, styles) => styles.focusHighlight\n})(({\n theme\n}) => ({\n overflow: 'hidden',\n pointerEvents: 'none',\n position: 'absolute',\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n borderRadius: 'inherit',\n opacity: 0,\n backgroundColor: 'currentcolor',\n transition: theme.transitions.create('opacity', {\n duration: theme.transitions.duration.short\n })\n}));\nconst CardActionArea = /*#__PURE__*/React.forwardRef(function CardActionArea(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiCardActionArea'\n });\n const {\n children,\n className,\n focusVisibleClassName\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const ownerState = props;\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsxs(CardActionAreaRoot, _extends({\n className: clsx(classes.root, className),\n focusVisibleClassName: clsx(focusVisibleClassName, classes.focusVisible),\n ref: ref,\n ownerState: ownerState\n }, other, {\n children: [children, /*#__PURE__*/_jsx(CardActionAreaFocusHighlight, {\n className: classes.focusHighlight,\n ownerState: ownerState\n })]\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? CardActionArea.propTypes /* remove-proptypes */ = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * @ignore\n */\n focusVisibleClassName: PropTypes.string,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nexport default CardActionArea;","import { unstable_generateUtilityClasses as generateUtilityClasses } from '@mui/utils';\nimport generateUtilityClass from '../generateUtilityClass';\nexport function getCardHeaderUtilityClass(slot) {\n return generateUtilityClass('MuiCardHeader', slot);\n}\nconst cardHeaderClasses = generateUtilityClasses('MuiCardHeader', ['root', 'avatar', 'action', 'content', 'title', 'subheader']);\nexport default cardHeaderClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"action\", \"avatar\", \"className\", \"component\", \"disableTypography\", \"subheader\", \"subheaderTypographyProps\", \"title\", \"titleTypographyProps\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport Typography from '../Typography';\nimport useThemeProps from '../styles/useThemeProps';\nimport styled from '../styles/styled';\nimport cardHeaderClasses, { getCardHeaderUtilityClass } from './cardHeaderClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['root'],\n avatar: ['avatar'],\n action: ['action'],\n content: ['content'],\n title: ['title'],\n subheader: ['subheader']\n };\n return composeClasses(slots, getCardHeaderUtilityClass, classes);\n};\nconst CardHeaderRoot = styled('div', {\n name: 'MuiCardHeader',\n slot: 'Root',\n overridesResolver: (props, styles) => _extends({\n [`& .${cardHeaderClasses.title}`]: styles.title,\n [`& .${cardHeaderClasses.subheader}`]: styles.subheader\n }, styles.root)\n})({\n display: 'flex',\n alignItems: 'center',\n padding: 16\n});\nconst CardHeaderAvatar = styled('div', {\n name: 'MuiCardHeader',\n slot: 'Avatar',\n overridesResolver: (props, styles) => styles.avatar\n})({\n display: 'flex',\n flex: '0 0 auto',\n marginRight: 16\n});\nconst CardHeaderAction = styled('div', {\n name: 'MuiCardHeader',\n slot: 'Action',\n overridesResolver: (props, styles) => styles.action\n})({\n flex: '0 0 auto',\n alignSelf: 'flex-start',\n marginTop: -4,\n marginRight: -8,\n marginBottom: -4\n});\nconst CardHeaderContent = styled('div', {\n name: 'MuiCardHeader',\n slot: 'Content',\n overridesResolver: (props, styles) => styles.content\n})({\n flex: '1 1 auto'\n});\nconst CardHeader = /*#__PURE__*/React.forwardRef(function CardHeader(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiCardHeader'\n });\n const {\n action,\n avatar,\n className,\n component = 'div',\n disableTypography = false,\n subheader: subheaderProp,\n subheaderTypographyProps,\n title: titleProp,\n titleTypographyProps\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const ownerState = _extends({}, props, {\n component,\n disableTypography\n });\n const classes = useUtilityClasses(ownerState);\n let title = titleProp;\n if (title != null && title.type !== Typography && !disableTypography) {\n title = /*#__PURE__*/_jsx(Typography, _extends({\n variant: avatar ? 'body2' : 'h5',\n className: classes.title,\n component: \"span\",\n display: \"block\"\n }, titleTypographyProps, {\n children: title\n }));\n }\n let subheader = subheaderProp;\n if (subheader != null && subheader.type !== Typography && !disableTypography) {\n subheader = /*#__PURE__*/_jsx(Typography, _extends({\n variant: avatar ? 'body2' : 'body1',\n className: classes.subheader,\n color: \"text.secondary\",\n component: \"span\",\n display: \"block\"\n }, subheaderTypographyProps, {\n children: subheader\n }));\n }\n return /*#__PURE__*/_jsxs(CardHeaderRoot, _extends({\n className: clsx(classes.root, className),\n as: component,\n ref: ref,\n ownerState: ownerState\n }, other, {\n children: [avatar && /*#__PURE__*/_jsx(CardHeaderAvatar, {\n className: classes.avatar,\n ownerState: ownerState,\n children: avatar\n }), /*#__PURE__*/_jsxs(CardHeaderContent, {\n className: classes.content,\n ownerState: ownerState,\n children: [title, subheader]\n }), action && /*#__PURE__*/_jsx(CardHeaderAction, {\n className: classes.action,\n ownerState: ownerState,\n children: action\n })]\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? CardHeader.propTypes /* remove-proptypes */ = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n /**\n * The action to display in the card header.\n */\n action: PropTypes.node,\n /**\n * The Avatar element to display.\n */\n avatar: PropTypes.node,\n /**\n * @ignore\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n /**\n * If `true`, `subheader` and `title` won't be wrapped by a Typography component.\n * This can be useful to render an alternative Typography variant by wrapping\n * the `title` text, and optional `subheader` text\n * with the Typography component.\n * @default false\n */\n disableTypography: PropTypes.bool,\n /**\n * The content of the component.\n */\n subheader: PropTypes.node,\n /**\n * These props will be forwarded to the subheader\n * (as long as disableTypography is not `true`).\n */\n subheaderTypographyProps: PropTypes.object,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * The content of the component.\n */\n title: PropTypes.node,\n /**\n * These props will be forwarded to the title\n * (as long as disableTypography is not `true`).\n */\n titleTypographyProps: PropTypes.object\n} : void 0;\nexport default CardHeader;","import { unstable_generateUtilityClasses as generateUtilityClasses } from '@mui/utils';\nimport generateUtilityClass from '../generateUtilityClass';\nexport function getCardUtilityClass(slot) {\n return generateUtilityClass('MuiCard', slot);\n}\nconst cardClasses = generateUtilityClasses('MuiCard', ['root']);\nexport default cardClasses;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"className\", \"raised\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { chainPropTypes } from '@mui/utils';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport styled from '../styles/styled';\nimport useThemeProps from '../styles/useThemeProps';\nimport Paper from '../Paper';\nimport { getCardUtilityClass } from './cardClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['root']\n };\n return composeClasses(slots, getCardUtilityClass, classes);\n};\nconst CardRoot = styled(Paper, {\n name: 'MuiCard',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})(() => {\n return {\n overflow: 'hidden'\n };\n});\nconst Card = /*#__PURE__*/React.forwardRef(function Card(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiCard'\n });\n const {\n className,\n raised = false\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const ownerState = _extends({}, props, {\n raised\n });\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(CardRoot, _extends({\n className: clsx(classes.root, className),\n elevation: raised ? 8 : undefined,\n ref: ref,\n ownerState: ownerState\n }, other));\n});\nprocess.env.NODE_ENV !== \"production\" ? Card.propTypes /* remove-proptypes */ = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * If `true`, the card will use raised styling.\n * @default false\n */\n raised: chainPropTypes(PropTypes.bool, props => {\n if (props.raised && props.variant === 'outlined') {\n return new Error('MUI: Combining `raised={true}` with `variant=\"outlined\"` has no effect.');\n }\n return null;\n }),\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nexport default Card;"],"names":["StyledCard","styled","MUICard","theme","marginBottom","spacing","width","breakpoints","down","boxShadow","borderBottom","borderRadius","margin","justifyContent","StyledAvatar","Avatar","background","palette","text","primary","Card","React","state","open","render","abstract","icon","onClick","title","this","props","avatar","subheader","defaultProps","BaseWindowPlugin","constructor","super","handleButtonClick","e","showWindow","hideOtherPluginWindows","runCallback","app","globalObserver","publish","opts","activeTool","type","eventName","pluginName","activeMap","config","pushPluginIntoHistory","custom","description","windowVisible","onWindowOpen","setState","onWindowShow","closeWindow","undefined","onWindowHide","toLowerCase","options","visibleAtStart","mapConfig","map","clean","isMobile","visibleAtStartMobile","color","height","position","registerWindowPlugin","subscribe","closeEventName","componentDidUpdate","prevProps","pluginIsWidget","target","includes","renderWindow","onClose","onResize","onMaximize","onMinimize","draggingEnabled","customPanelHeaderButtons","resizingEnabled","scrollable","allowMaximizedWindow","disablePadding","mode","layerswitcherConfig","tools","find","t","children","renderDrawerButton","renderWidgetButton","renderControlButton","createPortal","mdUp","button","divider","selected","document","getElementById","id","mdDown","Collector","collectorModel","reset","observer","form","serviceConfig","getLayerConfigById","serviceId","Observer","CollectorModel","layersConfig","layerConfig","model","settings","setFormValuesFromConfig","formValues","editableFields","reduce","obj","field","name","valueByDataType","activeServices","sources","vectorSource","layer","select","modify","key","editFeature","editSource","filty","saving","geometryName","wkt","setLayer","console","warn","dataType","Date","getTime","textType","values","f","checked","value","write","features","format","WFS","lr","layers","split","fp","length","ft","featureNS","uri","featurePrefix","featureType","hasZ","version","srsName","projection","writeTransaction","inserts","updates","deletes","refreshLayer","layerName","source","foundLayer","getLayers","getArray","match","getSource","getParams","params","paramName","LAYERS","layerSplit","changed","updateParams","time","now","updateSize","parseWFSTresponse","response","str","XMLSerializer","serializeToString","X2JS","xml2js","transact","done","node","serializer","src","payload","hfetch","url","method","body","credentials","headers","then","wfsResponseText","getFeatures","filter","modification","forEach","catch","errorMessage","save","Object","keys","Array","isArray","v","join","push","Feature","setProperties","getSelectStyle","feature","Style","stroke","Stroke","fill","Fill","image","Circle","radius","RegularShape","points","angle","Math","PI","geometry","coordinates","getGeometry","Polygon","getCoordinates","MultiPoint","getVectorStyle","Icon","scale","anchor","anchorXUnits","anchorYUnits","getHiddenStyle","getSketchStyle","refreshEditingLayer","getProperties","caption","mapLayer","s","clear","getMilliseconds","VectorSource","strategy","strategyAll","Vector","layerType","zIndex","style","removeLayer","addLayer","activateAdd","geometryType","draw","Draw","on","event","addInteraction","clickLock","add","activateInteraction","activateMove","activateModify","activateRemove","snapHelper","deactivateInteraction","delete","removeInteraction","move","snap","remove","un","removeSelected","deactivate","getSources","some","CollectorView","Component","componentDidMount","CollectorForm","localObserver","_interopRequireDefault","require","exports","_createSvgIcon","_jsxRuntime","_default","default","jsx","d","getCardActionAreaUtilityClass","slot","generateUtilityClass","generateUtilityClasses","_excluded","CardActionAreaRoot","ButtonBase","overridesResolver","styles","root","display","textAlign","cardActionAreaClasses","opacity","vars","action","hoverOpacity","focusOpacity","CardActionAreaFocusHighlight","focusHighlight","overflow","pointerEvents","top","right","bottom","left","backgroundColor","transition","transitions","create","duration","short","inProps","ref","useThemeProps","className","focusVisibleClassName","other","_objectWithoutPropertiesLoose","ownerState","classes","composeClasses","useUtilityClasses","_jsxs","_extends","clsx","focusVisible","_jsx","getCardHeaderUtilityClass","CardHeaderRoot","cardHeaderClasses","alignItems","padding","CardHeaderAvatar","flex","marginRight","CardHeaderAction","alignSelf","marginTop","CardHeaderContent","content","component","disableTypography","subheaderProp","subheaderTypographyProps","titleProp","titleTypographyProps","Typography","variant","as","getCardUtilityClass","CardRoot","Paper","raised","elevation"],"sourceRoot":""}