{"version":3,"file":"MapControls-D5YOipCu.js","sources":["../../../app/javascript/vue/tools/MeasureFormatters.js","../../../app/javascript/vue/common/MapPopup/MapPopup.vue","../../../app/javascript/vue/apps/garden/components/Paths/_DestroyWarning.vue","../../../app/javascript/vue/apps/garden/components/Paths/_Popup.vue","../../../node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.mjs","../../../node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs","../../../app/javascript/vue/common/Tooltip/Tooltip.vue","../../../app/javascript/vue/apps/garden/components/Elements/_Tooltip.vue","../../../app/javascript/vue/apps/garden/components/Patches/_Tooltip.vue","../../../app/javascript/vue/apps/garden/components/Paths/_Tooltip.vue","../../../node_modules/@experiments-labs/rise_ui/src/components/Drawer/Drawer.vue","../../../app/javascript/vue/assets/images/multi_pattern.svg","../../../app/javascript/vue/assets/images/empty_pattern.svg","../../../node_modules/ol/Overlay.js","../../../node_modules/ol/interaction/Modify.js","../../../node_modules/@babel/runtime/helpers/esm/typeof.js","../../../node_modules/@babel/runtime/helpers/esm/toPrimitive.js","../../../node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","../../../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../../../node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../../../node_modules/@babel/runtime/helpers/esm/createClass.js","../../../node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../../../node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","../../../node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","../../../node_modules/@babel/runtime/helpers/esm/superPropBase.js","../../../node_modules/@babel/runtime/helpers/esm/get.js","../../../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../../../node_modules/@babel/runtime/helpers/esm/inherits.js","../../../node_modules/ol/interaction/Select.js","../../../node_modules/ol/interaction/Translate.js","../../../node_modules/ol-rotate-feature/dist/ol-rotate-feature.esm.js","../../../app/javascript/vue/classes/StyleLibrary.js","../../../node_modules/ol/format/Feature.js","../../../node_modules/ol/format/JSONFeature.js","../../../node_modules/ol/format/GeoJSON.js","../../../app/javascript/vue/tools/Geometry.js","../../../app/javascript/vue/classes/GardenMap.js","../../../app/javascript/vue/common/MapControls/MapControls.vue"],"sourcesContent":["import { getArea, getLength } from 'ol/sphere'\nimport { Polygon, LineString } from 'ol/geom'\n\n/**\n * @typedef {import('../classes/models/Path')} Path\n * @typedef {import('../classes/models/Patch')} Patch\n */\n\n/**\n * Measures a given geometry depending on its type\n *\n * @param {Patch|Path} entity - Geometry from Patch or Path entity\n * @returns {string} - Formatted measure (length or area)\n */\nexport function formatGeometryMeasure (entity) {\n switch (entity.geometry.geometry.type) {\n case 'LineString':\n return formatLength(getLength(new LineString(entity.geometry.geometry.coordinates)))\n case 'Polygon':\n return formatArea(getArea(new Polygon(entity.geometry.geometry.coordinates)))\n case 'Point':\n if (entity.geometry.properties && entity.geometry.properties.radius) {\n // Convert radius in a line to determine its real length\n const radiusLine = new LineString([[0, 0], [0, entity.geometry.properties.radius]])\n const radius = getLength(radiusLine)\n return formatArea(Math.PI * Math.pow(radius, 2))\n }\n }\n}\n\n/**\n * Returns a human readable length\n *\n * @param {number} length - Length in meters\n * @returns {string} - Formatted length\n */\nexport function formatLength (length) {\n if (length >= 1000) return Math.round(length / 1000 * 100) / 100 + 'km'\n return Math.round(length * 100) / 100 + 'm'\n}\n\n/**\n * Returns a human readable area\n *\n * @param {number} area - Area in square meters\n * @returns {string} - Formatted area\n */\nexport function formatArea (area) {\n if (area > 10000) return Math.round((area / 1000000) * 100) / 100 + 'km2'\n return Math.round(area * 100) / 100 + 'm2'\n}\n","\n \n\n\n\n","\n {{ $t('js.path.destroy_warning') }}\n
\n