{"version":3,"file":"js/decidim_homepage_interactive_map-0cc9f946b3002b05e1ea.js","mappings":"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","sources":["webpack://app/webpack/runtime/chunk loaded","webpack://app/../usr/local/bundle/bundler/gems/decidim-module-decidim_awesome-058af7db4773/app/packs/src/vendor/jquery.truncate.js","webpack://app/../usr/local/bundle/gems/decidim-core-0.27.4/app/packs/src/decidim/map/svg-icon.js","webpack://app/../usr/local/bundle/gems/decidim-core-0.27.4/app/packs/src/decidim/map/icon.js","webpack://app/../usr/local/bundle/bundler/gems/decidim-module-homepage_interactive_map-dd685166fdf9/app/packs/src/decidim/homepage_interactive_map/interactive_map.js","webpack://app/../usr/local/bundle/bundler/gems/decidim-module-homepage_interactive_map-dd685166fdf9/app/packs/src/decidim/homepage_interactive_map/scope.js","webpack://app/../usr/local/bundle/bundler/gems/decidim-module-homepage_interactive_map-dd685166fdf9/app/packs/src/vendor/leaflet-polylabel-centroid.js","webpack://app/../usr/local/bundle/gems/decidim-core-0.27.4/app/packs/src/decidim/vendor/leaflet-tilelayer-here.js","webpack://app/./node_modules/leaflet-svgicon/index.js","webpack://app/./node_modules/leaflet-svgicon/src/svg-icon.js","webpack://app/./node_modules/leaflet-tilelayer-here/leaflet-tilelayer-here.js","webpack://app/./node_modules/leaflet.featuregroup.subgroup/dist/leaflet.featuregroup.subgroup.js","webpack://app/webpack/bootstrap","webpack://app/webpack/runtime/hasOwnProperty shorthand","webpack://app/webpack/runtime/jsonp chunk loading","webpack://app/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = function(result, chunkIds, fn, priority) {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every(function(key) { return __webpack_require__.O[key](chunkIds[j]); })) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","// From https://github.com/pathable/truncate/\n\n(function($) {\n\n // Matches trailing non-space characters.\n var chop = /(\\s*\\S+|\\s)$/;\n\n // Matches the first word in the string.\n var start = /^(\\S*)/;\n\n // Return a truncated html string. Delegates to $.fn.truncate.\n $.truncate = function(html, options) {\n return $('
').append(html).truncate(options).html();\n };\n\n // Truncate the contents of an element in place.\n $.fn.truncate = function(options) {\n if ($.isNumeric(options)) options = { length: options };\n var o = $.extend({}, $.truncate.defaults, options);\n\n return this.each(function() {\n var self = $(this);\n\n if (o.noBreaks) self.find('br').replaceWith(' ');\n\n var text = self.text();\n var excess = text.length - o.length;\n\n if (o.stripTags) self.text(text);\n\n // Chop off any partial words if appropriate.\n if (o.words && excess > 0) {\n var truncated = text.slice(0, o.length).replace(chop, '').length;\n\n if (o.keepFirstWord && truncated === 0) {\n excess = text.length - start.exec(text)[0].length - 1;\n } else {\n excess = text.length - truncated - 1;\n }\n }\n\n if (excess < 0 || !excess && !o.truncated) return;\n\n // Iterate over each child node in reverse, removing excess text.\n $.each(self.contents().get().reverse(), function(i, el) {\n var $el = $(el);\n var text = $el.text();\n var length = text.length;\n\n // If the text is longer than the excess, remove the node and continue.\n if (length <= excess) {\n o.truncated = true;\n excess -= length;\n $el.remove();\n return;\n }\n\n // Remove the excess text and append the ellipsis.\n if (el.nodeType === 3) {\n // should we finish the block anyway?\n if (o.finishBlock) {\n $(el.splitText(length)).replaceWith(o.ellipsis);\n } else {\n $(el.splitText(length - excess - 1)).replaceWith(o.ellipsis);\n }\n return false;\n }\n\n // Recursively truncate child nodes.\n $el.truncate($.extend(o, { length: length - excess }));\n return false;\n });\n });\n };\n\n $.truncate.defaults = {\n\n // Strip all html elements, leaving only plain text.\n stripTags: false,\n\n // Only truncate at word boundaries.\n words: false,\n\n // When 'words' is active, keeps the first word in the string\n // even if it's longer than a target length.\n keepFirstWord: false,\n\n // Replace instances of
with a single space.\n noBreaks: false,\n\n // if true always truncate the content at the end of the block.\n finishBlock: false,\n\n // The maximum length of the truncated html.\n length: Infinity,\n\n // The character to use as the ellipsis. The word joiner (U+2060) can be\n // used to prevent a hanging ellipsis, but displays incorrectly in Chrome\n // on Windows 7.\n // http://code.google.com/p/chromium/issues/detail?id=68323\n ellipsis: '\\u2026' // '\\u2060\\u2026'\n\n };\n\n})(jQuery);\n","/* eslint prefer-reflect: 0 */\n\n// Leaflet-SVGIcon\n// SVG icon for any marker class\n//\n// Copyright (c) 2016 University of New Hampshire - The MIT License\n// Author: Ilya Atkin \n// Originally copied from https://github.com/iatkin/leaflet-svgicon\n//\n\nlet SVGIcon = L.DivIcon.extend({\n options: {\n \"circleText\": \"\",\n \"className\": \"svg-icon\",\n // defaults to [iconSize.x/2, iconSize.x/2]\n \"circleAnchor\": null,\n // defaults to color\n \"circleColor\": null,\n // defaults to opacity\n \"circleOpacity\": null,\n \"circleFillColor\": \"rgb(255,255,255)\",\n // default to opacity\n \"circleFillOpacity\": null,\n \"circleRatio\": 0.5,\n // defaults to weight\n \"circleWeight\": null,\n \"color\": \"rgb(0,102,255)\",\n // defaults to color\n \"fillColor\": null,\n \"fillOpacity\": 0.4,\n \"fontColor\": \"rgb(0, 0, 0)\",\n \"fontOpacity\": \"1\",\n // defaults to iconSize.x/4\n \"fontSize\": null,\n \"fontWeight\": \"normal\",\n // defaults to [iconSize.x/2, iconSize.y] (point tip)\n \"iconAnchor\": null,\n \"iconSize\": L.point(32, 48),\n \"opacity\": 1,\n \"popupAnchor\": null,\n \"shadowAngle\": 45,\n \"shadowBlur\": 1,\n \"shadowColor\": \"rgb(0,0,10)\",\n \"shadowEnable\": false,\n \"shadowLength\": 0.75,\n \"shadowOpacity\": 0.5,\n \"shadowTranslate\": L.point(0, 0),\n \"weight\": 2\n },\n initialize: function(_options) {\n let options = L.Util.setOptions(this, _options)\n\n // iconSize needs to be converted to a Point object if it is not passed as one\n options.iconSize = L.point(options.iconSize)\n\n // in addition to setting option dependant defaults, Point-based options are converted to Point objects\n if (options.circleAnchor) {\n options.circleAnchor = L.point(options.circleAnchor)\n } else {\n options.circleAnchor = L.point(Number(options.iconSize.x) / 2, Number(options.iconSize.x) / 2)\n }\n if (!options.circleColor) {\n options.circleColor = options.color\n }\n if (!options.circleFillOpacity) {\n options.circleFillOpacity = options.opacity\n }\n if (!options.circleOpacity) {\n options.circleOpacity = options.opacity\n }\n if (!options.circleWeight) {\n options.circleWeight = options.weight\n }\n if (!options.fillColor) {\n options.fillColor = options.color\n }\n if (!options.fontSize) {\n options.fontSize = Number(options.iconSize.x / 4)\n }\n if (options.iconAnchor) {\n options.iconAnchor = L.point(options.iconAnchor)\n }\n else {\n options.iconAnchor = L.point(Number(options.iconSize.x) / 2, Number(options.iconSize.y))\n }\n if (options.popupAnchor) {\n options.popupAnchor = L.point(options.popupAnchor)\n }\n else {\n options.popupAnchor = L.point(0, (-0.75) * (options.iconSize.y))\n }\n\n options.html = this._createSVG()\n },\n _createCircle: function() {\n let cx = Number(this.options.circleAnchor.x)\n let cy = Number(this.options.circleAnchor.y)\n let radius = this.options.iconSize.x / 2 * Number(this.options.circleRatio)\n let fill = this.options.circleFillColor\n let fillOpacity = this.options.circleFillOpacity\n let stroke = this.options.circleColor\n let strokeOpacity = this.options.circleOpacity\n let strokeWidth = this.options.circleWeight\n let className = `${this.options.className}-circle`\n\n let circle = ``\n\n return circle\n },\n _createPathDescription: function() {\n let height = Number(this.options.iconSize.y)\n let width = Number(this.options.iconSize.x)\n let weight = Number(this.options.weight)\n let margin = weight / 2\n\n let startPoint = `M ${margin} ${width / 2} `\n let leftLine = `L ${width / 2} ${height - weight} `\n let rightLine = `L ${width - margin} ${width / 2} `\n let arc = `A ${width / 4} ${width / 4} 0 0 0 ${margin} ${width / 2} Z`\n\n let description = startPoint + leftLine + rightLine + arc\n\n return description\n },\n _createPath: function() {\n let pathDescription = this._createPathDescription()\n let strokeWidth = this.options.weight\n let stroke = this.options.color\n let strokeOpacity = this.options.opacity\n let fill = this.options.fillColor\n let fillOpacity = this.options.fillOpacity\n let className = `${this.options.className}-path`\n\n let path = ``\n\n return path\n },\n _createShadow: function() {\n let pathDescription = this._createPathDescription()\n let strokeWidth = this.options.weight\n let stroke = this.options.shadowColor\n let fill = this.options.shadowColor\n let className = `${this.options.className}-shadow`\n\n let origin = `${this.options.iconSize.x / 2}px ${this.options.iconSize.y}px`\n let rotation = this.options.shadowAngle\n let height = this.options.shadowLength\n let opacity = this.options.shadowOpacity\n let blur = this.options.shadowBlur\n let translate = `${this.options.shadowTranslate.x}px, ${this.options.shadowTranslate.y}px`\n\n let blurFilter = ``\n\n let shadow = ``\n\n return blurFilter + shadow\n },\n _createSVG: function() {\n let path = this._createPath()\n let circle = this._createCircle()\n let text = this._createText()\n let shadow = \"\"\n if (this.options.shadowEnable) {\n shadow = this._createShadow()\n }\n\n let className = `${this.options.className}-svg`\n let width = this.options.iconSize.x\n let height = this.options.iconSize.y\n\n if (this.options.shadowEnable) {\n width += this.options.iconSize.y * this.options.shadowLength - (this.options.iconSize.x / 2)\n width = Math.max(width, 32)\n height += this.options.iconSize.y * this.options.shadowLength\n }\n\n let style = `width:${width}px; height:${height}`\n let svg = `${shadow}${path}${circle}${text}`\n\n return svg\n },\n _createText: function() {\n let fontSize = `${this.options.fontSize}px`\n let fontWeight = this.options.fontWeight\n let lineHeight = Number(this.options.fontSize)\n\n let coordX = this.options.circleAnchor.x\n // 35% was found experimentally\n let coordY = this.options.circleAnchor.y + (lineHeight * 0.35)\n let circleText = this.options.circleText\n let textColor = this.options.fontColor.replace(\"rgb(\", \"rgba(\").replace(\")\", `,${this.options.fontOpacity})`)\n\n let text = `${circleText}`\n\n return text\n }\n})\n\nlet SVGMarker = L.Marker.extend({\n options: {\n \"iconFactory\": L.divIcon.svgIcon,\n \"iconOptions\": {}\n },\n initialize: function(latlng, _options) {\n let options = L.Util.setOptions(this, _options)\n options.icon = options.iconFactory(options.iconOptions)\n this._latlng = latlng\n },\n onAdd: function(map) {\n L.Marker.prototype.onAdd.call(this, map)\n },\n setStyle: function(style) {\n if (this._icon) {\n // let svg = this._icon.children[0]\n let iconBody = this._icon.children[0].children[0]\n let iconCircle = this._icon.children[0].children[1]\n\n if (style.color && !style.iconOptions) {\n let stroke = style.color.replace(\"rgb\", \"rgba\").replace(\")\", `,${this.options.icon.options.opacity})`)\n let fill = style.color.replace(\"rgb\", \"rgba\").replace(\")\", `,${this.options.icon.options.fillOpacity})`)\n iconBody.setAttribute(\"stroke\", stroke)\n iconBody.setAttribute(\"fill\", fill)\n iconCircle.setAttribute(\"stroke\", stroke)\n\n this.options.icon.fillColor = fill\n this.options.icon.color = stroke\n this.options.icon.circleColor = stroke\n }\n if (style.opacity) {\n this.setOpacity(style.opacity)\n }\n if (style.iconOptions) {\n if (style.color) {\n style.iconOptions.color = style.color\n }\n let iconOptions = L.Util.setOptions(this.options.icon, style.iconOptions)\n this.setIcon(L.divIcon.svgIcon(iconOptions))\n }\n }\n }\n});\n\nexport { SVGMarker, SVGIcon }\n\n","import { SVGIcon } from \"src/decidim/map/svg-icon\";\n\nL.DivIcon.SVGIcon = SVGIcon;\nL.DivIcon.SVGIcon.DecidimIcon = L.DivIcon.SVGIcon.extend({\n options: {\n fillColor: \"#ef604d\",\n fillOpacity: 1,\n opacity: 0\n },\n _createPathDescription: function() {\n return \"M14 1.17a11.685 11.685 0 0 0-11.685 11.685c0 11.25 10.23 20.61 10.665 21a1.5 1.5 0 0 0 2.025 0c0.435-.435 10.665-9.81 10.665-21A11.685 11.685 0 0 0 14 1.17Zm0 17.415A5.085 5.085 0 1 1 19.085 13.5 5.085 5.085 0 0 1 14 18.585Z\";\n },\n _createCircle: function() {\n return \"\"\n },\n // Improved version of the _createSVG, essentially the same as in later\n // versions of Leaflet. It adds the `px` values after the width and height\n // CSS making the focus borders work correctly across all browsers.\n _createSVG: function() {\n const path = this._createPath();\n const circle = this._createCircle();\n const text = this._createText();\n const className = `${this.options.className}-svg`;\n\n const style = `width:${this.options.iconSize.x}px; height:${this.options.iconSize.y}px;`;\n\n const svg = `${path}${circle}${text}`;\n\n return svg;\n }\n});\n","import * as L from \"leaflet\";\nimport \"src/decidim/vendor/leaflet-tilelayer-here\"\nimport \"src/decidim/map/icon.js\" // comes with Decidim\nimport \"leaflet.markercluster\"; // Comes with Decidim\nimport \"leaflet.featuregroup.subgroup\" // included in this package.json\nimport \"src/vendor/jquery.truncate\"\n\nimport \"src/vendor/leaflet-polylabel-centroid\";\n\nL.DivIcon.SVGIcon.DecidimIcon = L.DivIcon.SVGIcon.extend({\n options: {\n iconSize: L.point(24,34),\n fillColor: getComputedStyle(document.documentElement).getPropertyValue('--primary'),\n fillOpacity: 1,\n opacity: 0,\n },\n _createPathDescription: function() {\n return \"M12,0.17 C5.5465527,0.17 0.315,5.4015527 0.315,11.855 C0.315,23.105 10.545,32.465 10.98,32.855 C11.5531636,33.3793645 12.4318364,33.3793645 13.005,32.855 C13.44,32.42 23.67,23.045 23.67,11.855 C23.67,5.40740603 18.4475887,0.178276757 12,0.17 Z M12,17.585 C9.19163205,17.585 6.915,15.308368 6.915,12.5 C6.915,9.69163205 9.19163205,7.415 12,7.415 C14.808368,7.415 17.085,9.69163205 17.085,12.5 C17.085,15.308368 14.808368,17.585 12,17.585 L12,17.585 Z\";\n },\n _createCircle: function() {\n return \"\"\n }\n});\n\n(() => {\n $(document).ready(() => {\n const here_api_key = $(\"#interactive_map\").data(\"here-api-key\");\n const geoJson = $(\"#interactive_map\").data(\"geojson-data\");\n const $viewParticipatoryProcess = $(\"#view-participatory-process\");\n\n // Used to prevent click event when double click navigating\n const clickDelay = 500;\n let clickTimer = 0;\n let clickPrevent = false;\n\n // Style options\n const colorOpacity = 0.5;\n const hoverColorOpacity = 0.8;\n const strokeWeight = 1.5;\n const polyLineColor = 1;\n const strokeColor = \"#8a8a8a\";\n const iconSize = 28;\n\n const map = L.map('interactive_map', {scrollWheelZoom: false});\n\n let zoomOrigin = map.getZoom();\n let allZonesLayer = L.featureGroup();\n let allZonesMarkers = [];\n let allProcessesLinks = {};\n\n function zoneMarkerIconCSS(size) {\n return {\n 'font-size': `${(size / 2) - 2}px`,\n 'width' : `${size - 2}px`,\n 'height' : `${size - 2}px`,\n 'line-height' : `${size - 2}px`,\n 'border-radius' : `${size / 2}px`\n }\n }\n\n function processMarkerIconCSS(size) {\n return {\n 'font-size': `${Math.round(size / 3)}px`,\n 'width' : `${size / 2}px`,\n 'height' : `${size / 2}px`,\n 'line-height' : `${size / 2}px`,\n 'border-radius' : `${size / 4}px`\n }\n }\n\n function popupMaxwidth() {\n if ($(window).width() < 600) {\n return 260\n } else {\n return 640\n }\n }\n\n function popupMinwidth() {\n if ($(window).width() < 600) {\n return 204\n } else {\n return 500\n }\n }\n\n function isCoordinates(value, length) {\n return Array.isArray(value) && (value.length === length) && !!value.reduce((a, v) => (a && (a !== null)));\n }\n\n function hasLocation(participatory_process) {\n return (participatory_process.location !== undefined) && isCoordinates(participatory_process.location, 2);\n }\n\n function updateProcessMarkerPosition(marker, delta, zoom) {\n if (marker.origin === undefined) {\n return;\n }\n let oldPoint = map.project(L.latLng(marker.origin), zoom);\n\n let radius = ( delta / 2.5 ) + ( marker.getRadius() / 1.75 ) ;\n let newPoint = L.point(\n oldPoint.x + ( radius * Math.cos( Math.PI / 4 ) ),\n oldPoint.y - ( radius * Math.sin( Math.PI / 4 ) )\n );\n marker._latlng = map.unproject(newPoint, zoom);\n }\n\n function calculateIconSize() {\n const delta = Math.round(1.75 * (map.getZoom()));\n return (delta + 2) * 2;\n }\n\n function tmpl(participatoryProcess, linkTxt) {\n return `\n
\n

${participatoryProcess.title}

\n
\n
\n
\n ${participatoryProcess.start_date} - ${participatoryProcess.end_date}\n
\n
\n \n
\n
\n `\n }\n\n\n L.tileLayer.here({\n apiKey: here_api_key,\n scheme: \"normal.day.grey\"\n }, {continuousWorld: true}).addTo(map);\n\n map.createPane(\"processPane\").style.zIndex = 610;\n let allProcessesLayer = L.markerClusterGroup({\n clusterPane: \"processPane\",\n zoomToBoundsOnClick: false,\n removeOutsideVisibleBounds: true,\n spiderfyDistanceMultiplier: 2,\n chunkedLoading: true,\n showCoverageOnHover: false,\n maxClusterRadius: 40,\n spiderLegPolylineOptions: {\n weight: 2,\n color: getComputedStyle(document.documentElement).getPropertyValue('--primary'),\n opacity: polyLineColor\n },\n iconCreateFunction: (cluster) => {\n let actualIconSize = ( map.getZoom() > zoomOrigin ) ? calculateIconSize() : iconSize;\n\n let style = Object.entries(processMarkerIconCSS(actualIconSize)).map(\n (v) => `${v[0]}: ${v[1]};`\n ).join(\" \");\n\n return new L.DivIcon({\n html: '
' + cluster.getChildCount() + '
',\n className: 'marker-cluster',\n iconSize: new L.Point(actualIconSize / 2, actualIconSize / 2)\n });\n }\n });\n\n // Convert data from GeoJSON\n const geoJsonLayer = L.geoJson(geoJson, {\n style: (feature) => {\n return {\n interactive: false,\n stroke: true,\n color: strokeColor,\n weight: strokeWeight,\n fillColor: feature.color,\n fillOpacity: colorOpacity\n }\n }\n });\n\n // We parsed the data to generate advanced layers configuration\n geoJsonLayer.eachLayer((layer) => {\n let { feature } = layer;\n let zoneLayer = L.featureGroup();\n\n // Zone = Assembly with scope\n\n // Base zone polygon\n zoneLayer.addLayer(layer);\n\n zoneLayer.on(\"mouseover\", function() {\n this.setStyle({\n fillOpacity: hoverColorOpacity\n });\n });\n\n zoneLayer.on(\"mouseout\", function() {\n this.setStyle({\n fillOpacity: colorOpacity\n });\n });\n\n\n // Zone label\n const icon = L.divIcon({\n className: 'district-number',\n html: feature.code,\n iconSize: new L.Point(iconSize, iconSize)\n });\n const centroid = L.PolylabelCentroid(L.GeoJSON.latLngsToCoords(layer._latlngs[0], 1), 1/1000);\n\n let zoneMarker = L.marker(centroid, { icon });\n\n allZonesMarkers.push(zoneMarker);\n zoneLayer.addLayer(zoneMarker);\n\n // Navigate to target page\n zoneMarker.on(\"keypress\", (e) => {\n if( e.originalEvent.key === \"Enter\" ) {\n return window.location = feature.link;\n }\n });\n\n // Navigate to target page if not double click\n zoneMarker.on(\"click\", (e) => {\n clickTimer = setTimeout(() => {\n if (!clickPrevent) {\n return window.location = feature.link;\n }\n clickPrevent = false;\n }, clickDelay);\n });\n\n // Zoom to Polygone / Zone\n zoneMarker.on(\"dblclick\", (e) => {\n clearTimeout(clickTimer);\n clickPrevent = true;\n map.fitBounds(zoneLayer.getBounds(), {\n padding: [25, 25]\n });\n });\n\n // Manage linked participatory processes\n feature.participatory_processes.forEach((participatory_process) => {\n\n // Filling the registry links\n if(Object.keys(allProcessesLinks).includes(participatory_process.id.toString())) {\n allProcessesLinks[participatory_process.id.toString()].push(layer);\n // Process with location are only displayed once\n if( hasLocation(participatory_process) ) { return }\n } else {\n allProcessesLinks[participatory_process.id.toString()] = [layer];\n }\n\n let marker = new L.circleMarker(\n // marker is placed on its location or the center of the assembly\n hasLocation(participatory_process) ? participatory_process.location : centroid,\n {\n pane: \"processPane\",\n radius: Math.round(iconSize / 4),\n weight: 0,\n fillOpacity: 1,\n fillColor: getComputedStyle(document.documentElement).getPropertyValue('--primary'),\n }\n );\n\n let node = document.createElement(\"div\");\n $(node).html((tmpl(participatory_process, $viewParticipatoryProcess.val())));\n\n marker.bindPopup(node, {\n maxwidth: popupMaxwidth(),\n minWidth: popupMinwidth(),\n keepInView: true,\n className: \"interactive-map-info\"\n }).openPopup();\n\n marker.participatory_process_data = participatory_process;\n marker.origin = centroid;\n\n // Add marker to marker cluster group\n allProcessesLayer.addLayer(marker);\n });\n\n // Add zone to layer group\n allZonesLayer.addLayer(zoneLayer);\n });\n\n // Add zones to map\n allZonesLayer.addTo(map);\n\n // Map is centered on all the zone\n map.fitBounds(allZonesLayer.getBounds(), {\n padding: [25, 25]\n });\n\n // Update the starting zoom\n zoomOrigin = map.getZoom();\n\n\n // Now, all the element are actually projected on the map\n allProcessesLayer.eachLayer((marker) => {\n\n // Each participatory process should highlight its linked assemblies / zones\n let linked = allProcessesLinks[marker.participatory_process_data.id.toString()];\n\n linked.forEach((layer) => {\n marker.on(\"mouseover\", function() {\n layer.bringToFront().setStyle({\n fillOpacity: hoverColorOpacity,\n color: getComputedStyle(document.documentElement).getPropertyValue('--primary'),\n weight: 2\n });\n });\n\n marker.on(\"mouseout\", function() {\n layer.bringToBack().setStyle({\n fillOpacity: colorOpacity,\n color: strokeColor,\n weight: strokeWeight\n });\n });\n });\n\n // Translate the marker centered on the zone outside the zone label\n // ( like an notification badge )\n if(!hasLocation(marker.participatory_process_data)) {\n updateProcessMarkerPosition(marker, iconSize, map.getZoom());\n }\n });\n\n // Map zoom events\n map.on('zoomstart', (e) => {\n $('#interactive_map .leaflet-process-pane').hide();\n });\n\n map.on('zoomend', (e) => {\n let actualIconSize = iconSize;\n\n if (map.getZoom() > zoomOrigin) {\n actualIconSize = calculateIconSize()\n $('#interactive_map .district-number').css(zoneMarkerIconCSS(actualIconSize));\n } else {\n $('#interactive_map .district-number').css(zoneMarkerIconCSS(iconSize));\n }\n\n allZonesMarkers.forEach((marker) => {\n let icon = marker.options.icon;\n icon.options.iconSize = new L.Point(actualIconSize, actualIconSize);\n marker.setIcon(icon);\n });\n\n allProcessesLayer.eachLayer((marker) => {\n if(!hasLocation(marker.participatory_process_data)) {\n updateProcessMarkerPosition(marker, actualIconSize, map.getZoom());\n }\n });\n\n allProcessesLayer.refreshClusters();\n $('#interactive_map .leaflet-process-pane').show();\n });\n // Add markers to map\n allProcessesLayer.addTo(map);\n });\n})(window);\n","$(document).ready(() => {\n let $geolocalized = $(\"#scope_geolocalized\");\n let $geojson = $(\"#geojson\");\n\n function toggleSubField(field, subfield) {\n if (field.is(\":checked\")) {\n subfield.show();\n } else {\n subfield.hide();\n }\n }\n\n $geolocalized.on(\"click\", function () {\n toggleSubField($geolocalized, $geojson);\n }\n );\n\n toggleSubField($geolocalized, $geojson);\n});\n","// Leaflet Polylabel Centroid\n// USAGE : L.PolylabelCentroid(coordinates, precision, debug)\n// + coordinates (required) : GeoJSON Polygon coordinates\n// + precision (optional) : default to 1.0, decrease for better precision (like 1/1000)\n// + debug (optional) : activate debug coinsole output\n\n// ----------------------------------------------------------------------------\n\n// TinyQueue\n// source : https://github.com/mourner/tinyqueue/blob/3a212a4f73ad9c39caeb27922c86ff4115e59c66/index.js\n\nclass Queue {\n constructor(data = [], compare = defaultCompare) {\n this.data = data;\n this.length = this.data.length;\n this.compare = compare;\n\n if (this.length > 0) {\n for (let i = (this.length >> 1) - 1; i >= 0; i--) this._down(i);\n }\n }\n\n push(item) {\n this.data.push(item);\n this.length++;\n this._up(this.length - 1);\n }\n\n pop() {\n if (this.length === 0) return undefined;\n\n const top = this.data[0];\n const bottom = this.data.pop();\n this.length--;\n\n if (this.length > 0) {\n this.data[0] = bottom;\n this._down(0);\n }\n\n return top;\n }\n\n peek() {\n return this.data[0];\n }\n\n _up(pos) {\n const {data, compare} = this;\n const item = data[pos];\n\n while (pos > 0) {\n const parent = (pos - 1) >> 1;\n const current = data[parent];\n if (compare(item, current) >= 0) break;\n data[pos] = current;\n pos = parent;\n }\n\n data[pos] = item;\n }\n\n _down(pos) {\n const {data, compare} = this;\n const halfLength = this.length >> 1;\n const item = data[pos];\n\n while (pos < halfLength) {\n let left = (pos << 1) + 1;\n let best = data[left];\n const right = left + 1;\n\n if (right < this.length && compare(data[right], best) < 0) {\n left = right;\n best = data[right];\n }\n if (compare(best, item) >= 0) break;\n\n data[pos] = best;\n pos = left;\n }\n\n data[pos] = item;\n }\n}\n\n// ----------------------------------------------------------------------------\n\n// Polylabel\n// source : https://github.com/mapbox/polylabel/blob/6854a05e221fac42b9e025cbf356b2a057f212aa/polylabel.js\n\nfunction defaultCompare(a, b) {\n return a < b ? -1 : a > b ? 1 : 0;\n}\n\nfunction polylabel(polygon, precision, debug) {\n precision = precision || 1.0;\n\n // find the bounding box of the outer ring\n var minX, minY, maxX, maxY;\n for (var i = 0; i < polygon[0].length; i++) {\n var p = polygon[0][i];\n if (!i || p[0] < minX) minX = p[0];\n if (!i || p[1] < minY) minY = p[1];\n if (!i || p[0] > maxX) maxX = p[0];\n if (!i || p[1] > maxY) maxY = p[1];\n }\n\n var width = maxX - minX;\n var height = maxY - minY;\n var cellSize = Math.min(width, height);\n var h = cellSize / 2;\n\n if (cellSize === 0) return [minX, minY];\n\n // a priority queue of cells in order of their \"potential\" (max distance to polygon)\n var cellQueue = new Queue(undefined, compareMax);\n\n // cover polygon with initial cells\n for (var x = minX; x < maxX; x += cellSize) {\n for (var y = minY; y < maxY; y += cellSize) {\n cellQueue.push(new Cell(x + h, y + h, h, polygon));\n }\n }\n\n // take centroid as the first best guess\n var bestCell = getCentroidCell(polygon);\n\n // special case for rectangular polygons\n var bboxCell = new Cell(minX + width / 2, minY + height / 2, 0, polygon);\n if (bboxCell.d > bestCell.d) bestCell = bboxCell;\n\n var numProbes = cellQueue.length;\n\n while (cellQueue.length) {\n // pick the most promising cell from the queue\n var cell = cellQueue.pop();\n\n // update the best cell if we found a better one\n if (cell.d > bestCell.d) {\n bestCell = cell;\n if (debug) console.log('found best %d after %d probes', Math.round(1e4 * cell.d) / 1e4, numProbes);\n }\n\n // do not drill down further if there's no chance of a better solution\n if (cell.max - bestCell.d <= precision) continue;\n\n // split the cell into four cells\n h = cell.h / 2;\n cellQueue.push(new Cell(cell.x - h, cell.y - h, h, polygon));\n cellQueue.push(new Cell(cell.x + h, cell.y - h, h, polygon));\n cellQueue.push(new Cell(cell.x - h, cell.y + h, h, polygon));\n cellQueue.push(new Cell(cell.x + h, cell.y + h, h, polygon));\n numProbes += 4;\n }\n\n if (debug) {\n console.log('num probes: ' + numProbes);\n console.log('best distance: ' + bestCell.d);\n }\n\n return [bestCell.x, bestCell.y];\n}\n\nfunction compareMax(a, b) {\n return b.max - a.max;\n}\n\nfunction Cell(x, y, h, polygon) {\n this.x = x; // cell center x\n this.y = y; // cell center y\n this.h = h; // half the cell size\n this.d = pointToPolygonDist(x, y, polygon); // distance from cell center to polygon\n this.max = this.d + this.h * Math.SQRT2; // max distance to polygon within a cell\n}\n\n// signed distance from point to polygon outline (negative if point is outside)\nfunction pointToPolygonDist(x, y, polygon) {\n var inside = false;\n var minDistSq = Infinity;\n\n for (var k = 0; k < polygon.length; k++) {\n var ring = polygon[k];\n\n for (var i = 0, len = ring.length, j = len - 1; i < len; j = i++) {\n var a = ring[i];\n var b = ring[j];\n\n if ((a[1] > y !== b[1] > y) &&\n (x < (b[0] - a[0]) * (y - a[1]) / (b[1] - a[1]) + a[0])) inside = !inside;\n\n minDistSq = Math.min(minDistSq, getSegDistSq(x, y, a, b));\n }\n }\n\n return (inside ? 1 : -1) * Math.sqrt(minDistSq);\n}\n\n// get polygon centroid\nfunction getCentroidCell(polygon) {\n var area = 0;\n var x = 0;\n var y = 0;\n var points = polygon[0];\n\n for (var i = 0, len = points.length, j = len - 1; i < len; j = i++) {\n var a = points[i];\n var b = points[j];\n var f = a[0] * b[1] - b[0] * a[1];\n x += (a[0] + b[0]) * f;\n y += (a[1] + b[1]) * f;\n area += f * 3;\n }\n if (area === 0) return new Cell(points[0][0], points[0][1], 0, polygon);\n return new Cell(x / area, y / area, 0, polygon);\n}\n\n// get squared distance from a point to a segment\nfunction getSegDistSq(px, py, a, b) {\n\n var x = a[0];\n var y = a[1];\n var dx = b[0] - x;\n var dy = b[1] - y;\n\n if (dx !== 0 || dy !== 0) {\n\n var t = ((px - x) * dx + (py - y) * dy) / (dx * dx + dy * dy);\n\n if (t > 1) {\n x = b[0];\n y = b[1];\n\n } else if (t > 0) {\n x += dx * t;\n y += dy * t;\n }\n }\n\n dx = px - x;\n dy = py - y;\n\n return dx * dx + dy * dy;\n}\n\n// ----------------------------------------------------------------------------\n\nL.PolylabelCentroid = function(polygon, precision, debug) {\n return polylabel(polygon, precision, debug).reverse();\n}\n","/* eslint-disable */\n\n// 🍂class TileLayer.HERE\n// Tile layer for HERE maps tiles.\nL.TileLayer.HERE = L.TileLayer.extend({\n\n options: {\n subdomains: '1234',\n minZoom: 2,\n maxZoom: 18,\n\n // 🍂option scheme: String = 'normal.day'\n // The \"map scheme\", as documented in the HERE API.\n scheme: 'normal.day',\n\n // 🍂option resource: String = 'maptile'\n // The \"map resource\", as documented in the HERE API.\n resource: 'maptile',\n\n // 🍂option mapId: String = 'newest'\n // Version of the map tiles to be used, or a hash of an unique map\n mapId: 'newest',\n\n // 🍂option format: String = 'png8'\n // Image format to be used (`png8`, `png`, or `jpg`)\n format: 'png8',\n\n // 🍂option appId: String = ''\n // Required option. The `app_id` provided as part of the HERE credentials\n appId: '',\n\n // 🍂option appCode: String = ''\n // Required option. The `app_code` provided as part of the HERE credentials\n appCode: '',\n\n // 🍂option useCIT: boolean = false\n // Whether to use the CIT when loading the here-maptiles\n useCIT: false,\n\n // 🍂option useHTTPS: boolean = true\n // Whether to use HTTPS when loading the here-maptiles\n useHTTPS: true,\n\n // 🍂option language: String = ''\n // The language of the descriptions on the maps that are loaded\n language: '',\n\n // 🍂option language: String = ''\n // The second language of the descriptions on the maps that are loaded\n language2: '',\n },\n\n\n initialize: function initialize(options) {\n options = L.setOptions(this, options);\n\n // Decide if this scheme uses the aerial servers or the basemap servers\n var schemeStart = options.scheme.split('.')[0];\n options.tileResolution = 256;\n\n // {Base URL}{Path}/{resource (tile type)}/{map id}/{scheme}/{zoom}/{column}/{row}/{size}/{format}\n // ?apiKey={YOUR_API_KEY}\n // &{param}={value}\n\n var params = [\n 'apiKey=' + encodeURIComponent(options.apiKey)\n ];\n // Fallback to old app_id,app_code if no apiKey passed\n if(!options.apiKey) {\n params = [\n 'app_id=' + encodeURIComponent(options.appId),\n 'app_code=' + encodeURIComponent(options.appCode),\n ];\n }\n if(options.language) {\n params.push('lg=' + encodeURIComponent(options.language));\n }\n if(options.language2) {\n params.push('lg2=' + encodeURIComponent(options.language2));\n }\n var urlQuery = '?' + params.join('&');\n\n var path = '/maptile/2.1/{resource}/{mapId}/{scheme}/{z}/{x}/{y}/{tileResolution}/{format}' + urlQuery;\n var attributionPath = '/maptile/2.1/copyright/{mapId}?apiKey={apiKey}';\n\n var baseUrl = 'maps.ls.hereapi.com';\n\n // Old style with apiId/apiCode for compatibility\n if(!options.apiKey) {\n // make sure the CIT-url can be used\n baseUrl = 'maps' + (options.useCIT ? '.cit' : '') + '.api.here.com';\n attributionPath = '/maptile/2.1/copyright/{mapId}?app_id={appId}&app_code={appCode}';\n }\n\n var tileServer = 'base.' + baseUrl;\n if (schemeStart == 'satellite' || schemeStart == 'terrain' || schemeStart == 'hybrid') {\n tileServer = 'aerial.' + baseUrl;\n }\n if (options.scheme.indexOf('.traffic.') !== -1) {\n tileServer = 'traffic' + baseUrl;\n }\n\n var protocol = 'http' + (options.useHTTPS ? 's' : '');\n var tileUrl = protocol + '://{s}.' + tileServer + path;\n\n this._attributionUrl = L.Util.template(protocol + '://1.' + tileServer + attributionPath, this.options);\n\n L.TileLayer.prototype.initialize.call(this, tileUrl, options);\n\n this._attributionText = '';\n\n },\n\n onAdd: function onAdd(map) {\n L.TileLayer.prototype.onAdd.call(this, map);\n\n if (!this._attributionBBoxes) {\n this._fetchAttributionBBoxes();\n }\n },\n\n onRemove: function onRemove(map) {\n //\n // Remove the attribution text, and clear the cached text so it will be recalculated\n // if/when we are shown again.\n //\n this._map.attributionControl.removeAttribution(this._attributionText);\n this._attributionText = '';\n\n this._map.off('moveend zoomend resetview', this._findCopyrightBBox, this);\n\n //\n // Call the prototype last, once we've tidied up our own changes\n //\n L.TileLayer.prototype.onRemove.call(this, map);\n },\n\n _fetchAttributionBBoxes: function _onMapMove() {\n var xmlhttp = new XMLHttpRequest();\n xmlhttp.onreadystatechange = L.bind(function(){\n if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {\n this._parseAttributionBBoxes(JSON.parse(xmlhttp.responseText));\n }\n }, this);\n xmlhttp.open(\"GET\", this._attributionUrl, true);\n xmlhttp.send();\n },\n\n _parseAttributionBBoxes: function _parseAttributionBBoxes(json) {\n if (!this._map) { return; }\n var providers = json[this.options.scheme.split('.')[0]] || json.normal;\n for (var i=0; i= zoom) {\n\n if (!providers[i].boxes) {\n // No boxes = attribution always visible\n visibleProviders.push(providers[i]);\n } else {\n for (var j=0; jHERE maps'];\n for (var i=0; i' + provider.label + '');\n }\n\n var attributionText = '© ' + attributions.join(', ') + '. ';\n\n if (attributionText !== this._attributionText) {\n this._map.attributionControl.removeAttribution(this._attributionText);\n this._map.attributionControl.addAttribution(this._attributionText = attributionText);\n }\n },\n\n});\n\n\nL.tileLayer.here = function(opts){\n return new L.TileLayer.HERE(opts);\n}\n","var Lib = require('./src/svg-icon');\n\nexports.SVGIcon = Lib.SVGIcon;\nexports.SVGMarker = Lib.SVGMarker;\n","var SVGIcon = L.DivIcon.extend({\n options: {\n \"circleText\": \"\",\n \"className\": \"svg-icon\",\n \"circleAnchor\": null, //defaults to [iconSize.x/2, iconSize.x/2]\n \"circleColor\": null, //defaults to color\n \"circleOpacity\": null, // defaults to opacity\n \"circleFillColor\": \"rgb(255,255,255)\",\n \"circleFillOpacity\": null, //default to opacity\n \"circleRatio\": 0.5,\n \"circleWeight\": null, //defaults to weight\n \"color\": \"rgb(0,102,255)\",\n \"fillColor\": null, // defaults to color\n \"fillOpacity\": 0.4,\n \"fontColor\": \"rgb(0, 0, 0)\",\n \"fontOpacity\": \"1\",\n \"fontSize\": null, // defaults to iconSize.x/4\n \"iconAnchor\": null, //defaults to [iconSize.x/2, iconSize.y] (point tip)\n \"iconSize\": L.point(32,48),\n \"opacity\": 1,\n \"popupAnchor\": null,\n \"weight\": 2\n },\n initialize: function(options) {\n options = L.Util.setOptions(this, options)\n\n //iconSize needs to be converted to a Point object if it is not passed as one\n options.iconSize = L.point(options.iconSize)\n\n //in addition to setting option dependant defaults, Point-based options are converted to Point objects\n if (!options.circleAnchor) {\n options.circleAnchor = L.point(Number(options.iconSize.x)/2, Number(options.iconSize.x)/2)\n }\n else {\n options.circleAnchor = L.point(options.circleAnchor)\n }\n if (!options.circleColor) {\n options.circleColor = options.color\n }\n if (!options.circleFillOpacity) {\n options.circleFillOpacity = options.opacity\n }\n if (!options.circleOpacity) {\n options.circleOpacity = options.opacity\n }\n if (!options.circleWeight) {\n options.circleWeight = options.weight\n }\n if (!options.fillColor) {\n options.fillColor = options.color\n }\n if (!options.fontSize) {\n options.fontSize = Number(options.iconSize.x/4)\n }\n if (!options.iconAnchor) {\n options.iconAnchor = L.point(Number(options.iconSize.x)/2, Number(options.iconSize.y))\n }\n else {\n options.iconAnchor = L.point(options.iconAnchor)\n }\n if (!options.popupAnchor) {\n options.popupAnchor = L.point(0, (-0.75)*(options.iconSize.y))\n }\n else {\n options.popupAnchor = L.point(options.popupAnchor)\n }\n\n var path = this._createPath()\n var circle = this._createCircle()\n\n options.html = this._createSVG()\n },\n _createCircle: function() {\n var cx = Number(this.options.circleAnchor.x)\n var cy = Number(this.options.circleAnchor.y)\n var radius = this.options.iconSize.x/2 * Number(this.options.circleRatio)\n var fill = this.options.circleFillColor\n var fillOpacity = this.options.circleFillOpacity\n var stroke = this.options.circleColor\n var strokeOpacity = this.options.circleOpacity\n var strokeWidth = this.options.circleWeight\n var className = this.options.className + \"-circle\"\n\n var circle = ''\n\n return circle\n },\n _createPathDescription: function() {\n var height = Number(this.options.iconSize.y)\n var width = Number(this.options.iconSize.x)\n var weight = Number(this.options.weight)\n var margin = weight / 2\n\n var startPoint = \"M \" + margin + \" \" + (width/2) + \" \"\n var leftLine = \"L \" + (width/2) + \" \" + (height - weight) + \" \"\n var rightLine = \"L \" + (width - margin) + \" \" + (width/2) + \" \"\n var arc = \"A \" + (width/4) + \" \" + (width/4) + \" 0 0 0 \" + margin + \" \" + (width/2) + \" Z\"\n\n var d = startPoint + leftLine + rightLine + arc\n\n return d\n },\n _createPath: function() {\n var pathDescription = this._createPathDescription()\n var strokeWidth = this.options.weight\n var stroke = this.options.color\n var strokeOpacity = this.options.Opacity\n var fill = this.options.fillColor\n var fillOpacity = this.options.fillOpacity\n var className = this.options.className + \"-path\"\n\n var path = ''\n\n return path\n },\n _createSVG: function() {\n var path = this._createPath()\n var circle = this._createCircle()\n var text = this._createText()\n var className = this.options.className + \"-svg\"\n\n var style = \"width:\" + this.options.iconSize.x + \"px; height:\" + this.options.iconSize.y + \"px;\"\n\n var svg = '' + path + circle + text + ''\n\n return svg\n },\n _createText: function() {\n var fontSize = this.options.fontSize + \"px\"\n var lineHeight = Number(this.options.fontSize)\n\n var x = Number(this.options.iconSize.x) / 2\n var y = x + (lineHeight * 0.35) //35% was found experimentally\n var circleText = this.options.circleText\n var textColor = this.options.fontColor.replace(\"rgb(\", \"rgba(\").replace(\")\", \",\" + this.options.fontOpacity + \")\")\n\n var text = '' + circleText + ''\n\n return text\n }\n})\n\nvar SVGMarker = L.Marker.extend({\n options: {\n \"iconFactory\": SVGIcon,\n \"iconOptions\": {}\n },\n initialize: function(latlng, options) {\n options = L.Util.setOptions(this, options)\n options.icon = options.iconFactory(options.iconOptions)\n this._latlng = latlng\n },\n onAdd: function(map) {\n L.Marker.prototype.onAdd.call(this, map)\n },\n setStyle: function(style) {\n if (this._icon) {\n var svg = this._icon.children[0]\n var iconBody = this._icon.children[0].children[0]\n var iconCircle = this._icon.children[0].children[1]\n\n if (style.color && !style.iconOptions) {\n var stroke = style.color.replace(\"rgb\",\"rgba\").replace(\")\", \",\"+this.options.icon.options.opacity+\")\")\n var fill = style.color.replace(\"rgb\",\"rgba\").replace(\")\", \",\"+this.options.icon.options.fillOpacity+\")\")\n iconBody.setAttribute(\"stroke\", stroke)\n iconBody.setAttribute(\"fill\", fill)\n iconCircle.setAttribute(\"stroke\", stroke)\n\n this.options.icon.fillColor = fill\n this.options.icon.color = stroke\n this.options.icon.circleColor = stroke\n }\n if (style.opacity) {\n this.setOpacity(style.opacity)\n }\n if (style.iconOptions) {\n if (style.color) { style.iconOptions.color = style.color }\n var iconOptions = L.Util.setOptions(this.options.icon, style.iconOptions)\n this.setIcon(SVGIcon(iconOptions))\n }\n }\n }\n})\n\nmodule.exports = {\n SVGMarker: SVGMarker,\n SVGIcon: SVGIcon\n}\n","\n// class TileLayer.HERE\n// Tile layer for HERE maps tiles.\nL.TileLayer.HERE = L.TileLayer.extend({\n\n\toptions: {\n\t\tsubdomains: '1234',\n\t\tminZoom: 2,\n\t\tmaxZoom: 18,\n\n\t\t// option scheme: String = 'normal.day'\n\t\t// The \"map scheme\", as documented in the HERE API.\n\t\tscheme: 'normal.day',\n\n\t\t// option resource: String = 'maptile'\n\t\t// The \"map resource\", as documented in the HERE API.\n\t\tresource: 'maptile',\n\n\t\t// option mapId: String = 'newest'\n\t\t// Version of the map tiles to be used, or a hash of an unique map\n\t\tmapId: 'newest',\n\n\t\t// option format: String = 'png8'\n\t\t// Image format to be used (`png8`, `png`, or `jpg`)\n\t\tformat: 'png8',\n\n\t\t// Deprecated\n\t\t// option appId: String = ''\n\t\t// Optional option. The `app_id` provided as part of the HERE credentials\n\t\tappId: '',\n\n\t\t// Deprecated\n\t\t// option appCode: String = ''\n\t\t// Optional option. The `app_code` provided as part of the HERE credentials\n\t\tappCode: '',\n\n\t\t// option apiKey: String = ''\n\t\t// Required option. The `apiKey` provided as part of the HERE credentials\n\t\tapiKey: ''\n\t},\n\n\n\tinitialize: function initialize(options) {\n\t\toptions = L.setOptions(this, options);\n\n\t\t// Decide if this scheme uses the aerial servers or the basemap servers\n\t\tvar schemeStart = options.scheme.split('.')[0];\n\t\toptions.tileResolution = 256;\n\n\t\tif (L.Browser.retina) {\n\t\t\toptions.tileResolution = 512;\n\t\t}\n\n\t\t// \t\t{Base URL}{Path}/{resource (tile type)}/{map id}/{scheme}/{zoom}/{column}/{row}/{size}/{format}\n\t\t// \t\t?app_id={YOUR_APP_ID}\n\t\t// \t\t&app_code={YOUR_APP_CODE}\n\t\t// \t\t&{param}={value}\n\n\t\tvar path = '/{resource}/2.1/{resource}/{mapId}/{scheme}/{z}/{x}/{y}/{tileResolution}/{format}?apiKey={apiKey}&lg=por&ppi=72&pview=DEF';\n\t\tvar attributionPath = '/maptile/2.1/copyright/{mapId}?apiKey={apiKey}&lg=por&ppi=72&pview=DEF';\n\n\t\tvar tileServer = 'base.maps.ls.hereapi.com';\n\t\tif (schemeStart == 'satellite' ||\n\t\t\tschemeStart == 'terrain' ||\n\t\t\tschemeStart == 'hybrid') {\n\t\t\ttileServer = 'aerial.maps.ls.hereapi.com';\n\t\t}\n\t\tif (options.scheme.indexOf('.traffic.') !== -1) {\n\t\t\ttileServer = 'traffic.maps.ls.hereapi.com';\n\t\t}\n\n\t\tvar tileUrl = 'https://{s}.' + tileServer + path;\n\n\t\tthis._attributionUrl = L.Util.template('https://1.' + tileServer + attributionPath, this.options);\n\n\t\tL.TileLayer.prototype.initialize.call(this, tileUrl, options);\n\n\t\tthis._attributionText = '';\n\n\t},\n\n\tonAdd: function onAdd(map) {\n\t\tL.TileLayer.prototype.onAdd.call(this, map);\n\n\t\tif (!this._attributionBBoxes) {\n\t\t\tthis._fetchAttributionBBoxes();\n\t\t}\n\t},\n\n\tonRemove: function onRemove(map) {\n\t\tL.TileLayer.prototype.onRemove.call(this, map);\n\n\t\tif (this._map.attributionControl) {\n\t\t\tthis._map.attributionControl.removeAttribution(this._attributionText);\n\t\t}\n\n\t\tthis._map.off('moveend zoomend resetview', this._findCopyrightBBox, this);\n\t},\n\n\t_fetchAttributionBBoxes: function _onMapMove() {\n\t\tvar xmlhttp = new XMLHttpRequest();\n\t\txmlhttp.onreadystatechange = L.bind(function () {\n\t\t\tif (xmlhttp.readyState == 4 && xmlhttp.status == 200) {\n\t\t\t\tthis._parseAttributionBBoxes(JSON.parse(xmlhttp.responseText));\n\t\t\t}\n\t\t}, this);\n\t\txmlhttp.open(\"GET\", this._attributionUrl, true);\n\t\txmlhttp.send();\n\t},\n\n\t_parseAttributionBBoxes: function _parseAttributionBBoxes(json) {\n\t\tif (!this._map) { return; }\n\t\tvar providers = json[this.options.scheme.split('.')[0]] || json.normal;\n\t\tfor (var i = 0; i < providers.length; i++) {\n\t\t\tif (providers[i].boxes) {\n\t\t\t\tfor (var j = 0; j < providers[i].boxes.length; j++) {\n\t\t\t\t\tvar box = providers[i].boxes[j];\n\t\t\t\t\tproviders[i].boxes[j] = L.latLngBounds([[box[0], box[1]], [box[2], box[3]]]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tthis._map.on('moveend zoomend resetview', this._findCopyrightBBox, this);\n\n\t\tthis._attributionProviders = providers;\n\n\t\tthis._findCopyrightBBox();\n\t},\n\n\t_findCopyrightBBox: function _findCopyrightBBox() {\n\t\tif (!this._map) { return; }\n\t\tvar providers = this._attributionProviders;\n\t\tvar visibleProviders = [];\n\t\tvar zoom = this._map.getZoom();\n\t\tvar visibleBounds = this._map.getBounds();\n\n\t\tfor (var i = 0; i < providers.length; i++) {\n\t\t\tif (providers[i].minLevel < zoom && providers[i].maxLevel > zoom)\n\n\t\t\t\tif (!providers[i].boxes) {\n\t\t\t\t\t// No boxes = attribution always visible\n\t\t\t\t\tvisibleProviders.push(providers[i]);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\tfor (var j = 0; j < providers[i].boxes.length; j++) {\n\t\t\t\tvar box = providers[i].boxes[j];\n\t\t\t\tif (visibleBounds.overlaps(box)) {\n\t\t\t\t\tvisibleProviders.push(providers[i]);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tvar attributionText = '© HERE maps';\n\n\t\tif (attributionText !== this._attributionText && this._map.attributionControl) {\n\t\t\tthis._map.attributionControl.removeAttribution(this._attributionText);\n\t\t\tthis._map.attributionControl.addAttribution(this._attributionText = attributionText);\n\t\t}\n\t}\n});\n\n\nL.tileLayer.here = function (opts) {\n\treturn new L.TileLayer.HERE(opts);\n}","/*!\n Leaflet.FeatureGroup.SubGroup 1.0.2+00bb0d4\n (c) 2015-2017 Boris Seang\n License BSD-2-Clause\n */\n!function(e,r){\"function\"==typeof define&&define.amd?define([\"leaflet\"],r):r(\"object\"==typeof module&&module.exports?require(\"leaflet\"):e.L)}(this,function(e){e.FeatureGroup.SubGroup=e.FeatureGroup.extend({initialize:function(r,t){e.FeatureGroup.prototype.initialize.call(this,t),this.setParentGroup(r)},setParentGroup:function(r){var t=r instanceof e.LayerGroup;return this._parentGroup=r,this.onAdd=t?\"function\"==typeof r.addLayers?this._onAddToGroupBatch:this._onAddToGroup:this._onAddToMap,this.onRemove=t?\"function\"==typeof r.removeLayers?this._onRemoveFromGroupBatch:this._onRemoveFromGroup:this._onRemoveFromMap,this.addLayer=t?this._addLayerToGroup:this._addLayerToMap,this.removeLayer=t?this._removeLayerFromGroup:this._removeLayerFromMap,this},setParentGroupSafe:function(e){var r=this._map;return r&&r.removeLayer(this),this.setParentGroup(e),r&&r.addLayer(this),this},getParentGroup:function(){return this._parentGroup},_onAddToGroupBatch:function(e){var r=this.getLayers();this._map=e,this._parentGroup.addLayers(r)},_onRemoveFromGroupBatch:function(){var e=this.getLayers();this._parentGroup.removeLayers(e),this._map=null},_onAddToGroup:function(e){var r=this._parentGroup;this._map=e,this.eachLayer(r.addLayer,r)},_onRemoveFromGroup:function(){var e=this._parentGroup;this.eachLayer(e.removeLayer,e),this._map=null},_onAddToMap:e.FeatureGroup.prototype.onAdd,_onRemoveFromMap:e.FeatureGroup.prototype.onRemove,_addLayerToGroup:function(e){if(this.hasLayer(e))return this;e.addEventParent(this);var r=this.getLayerId(e);return this._layers[r]=e,this._map&&this._parentGroup.addLayer(e),this.fire(\"layeradd\",{layer:e})},_removeLayerFromGroup:function(e){if(!this.hasLayer(e))return this;var r=e in this._layers?e:this.getLayerId(e);return e=this._layers[r],e.removeEventParent(this),this._map&&e&&this._parentGroup.removeLayer(e),delete this._layers[r],this.fire(\"layerremove\",{layer:e})},_addLayerToMap:e.FeatureGroup.prototype.addLayer,_removeLayerFromMap:e.FeatureGroup.prototype.removeLayer}),e.featureGroup.subGroup=function(r,t){return new e.FeatureGroup.SubGroup(r,t)}});","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t8466: 0\n};\n\n// no chunk on demand loading\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = function(chunkId) { return installedChunks[chunkId] === 0; };\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkapp\"] = self[\"webpackChunkapp\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [5732,5243], function() { return __webpack_require__(19447); })\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","$","chop","start","truncate","html","options","append","fn","isNumeric","length","o","extend","defaults","this","each","self","noBreaks","find","replaceWith","text","excess","stripTags","words","truncated","slice","replace","keepFirstWord","exec","contents","get","reverse","i","el","$el","remove","nodeType","finishBlock","splitText","ellipsis","Infinity","jQuery","SVGIcon","L","DivIcon","point","initialize","_options","Util","setOptions","iconSize","circleAnchor","Number","x","circleColor","color","circleFillOpacity","opacity","circleOpacity","circleWeight","weight","fillColor","fontSize","iconAnchor","y","popupAnchor","_createSVG","_createCircle","cx","cy","radius","circleRatio","fill","circleFillColor","fillOpacity","stroke","strokeOpacity","strokeWidth","className","_createPathDescription","height","width","margin","_createPath","pathDescription","_createShadow","shadowColor","origin","rotation","shadowAngle","shadowLength","shadowOpacity","blur","shadowBlur","translate","shadowTranslate","path","circle","_createText","shadow","shadowEnable","Math","max","style","fontWeight","lineHeight","coordX","coordY","circleText","textColor","fontColor","fontOpacity","Marker","divIcon","svgIcon","latlng","icon","iconFactory","iconOptions","_latlng","onAdd","map","prototype","call","setStyle","_icon","iconBody","children","iconCircle","setAttribute","setOpacity","setIcon","DecidimIcon","getComputedStyle","document","documentElement","getPropertyValue","window","ready","here_api_key","data","geoJson","$viewParticipatoryProcess","clickTimer","clickPrevent","strokeColor","scrollWheelZoom","zoomOrigin","getZoom","allZonesLayer","allZonesMarkers","allProcessesLinks","zoneMarkerIconCSS","size","hasLocation","participatory_process","undefined","location","value","Array","isArray","reduce","a","v","updateProcessMarkerPosition","marker","delta","zoom","oldPoint","project","getRadius","newPoint","cos","PI","sin","unproject","calculateIconSize","round","apiKey","scheme","continuousWorld","addTo","createPane","zIndex","allProcessesLayer","clusterPane","zoomToBoundsOnClick","removeOutsideVisibleBounds","spiderfyDistanceMultiplier","chunkedLoading","showCoverageOnHover","maxClusterRadius","spiderLegPolylineOptions","iconCreateFunction","cluster","actualIconSize","Object","entries","join","getChildCount","feature","interactive","eachLayer","layer","zoneLayer","addLayer","on","code","centroid","_latlngs","zoneMarker","push","e","originalEvent","key","link","setTimeout","clearTimeout","fitBounds","getBounds","padding","participatory_processes","forEach","keys","includes","id","toString","participatoryProcess","linkTxt","pane","node","createElement","val","title","start_date","end_date","bindPopup","maxwidth","minWidth","keepInView","openPopup","participatory_process_data","bringToFront","bringToBack","hide","css","refreshClusters","show","$geolocalized","$geojson","toggleSubField","field","subfield","is","Queue","compare","defaultCompare","_down","item","_up","top","bottom","pop","pos","parent","current","halfLength","left","best","right","b","polylabel","polygon","precision","debug","minX","minY","maxX","maxY","p","cellSize","min","h","cellQueue","compareMax","Cell","bestCell","area","points","len","j","f","getCentroidCell","bboxCell","d","numProbes","cell","console","log","inside","minDistSq","k","ring","getSegDistSq","sqrt","pointToPolygonDist","SQRT2","px","py","dx","dy","t","PolylabelCentroid","TileLayer","HERE","subdomains","minZoom","maxZoom","resource","mapId","format","appId","appCode","useCIT","useHTTPS","language","language2","schemeStart","split","tileResolution","params","encodeURIComponent","attributionPath","baseUrl","tileServer","indexOf","protocol","tileUrl","_attributionUrl","template","_attributionText","_attributionBBoxes","_fetchAttributionBBoxes","onRemove","_map","attributionControl","removeAttribution","off","_findCopyrightBBox","xmlhttp","XMLHttpRequest","onreadystatechange","bind","readyState","status","_parseAttributionBBoxes","JSON","parse","responseText","open","send","json","providers","normal","boxes","box","latLngBounds","_attributionProviders","visibleProviders","visibleBounds","minLevel","maxLevel","intersects","attributions","provider","alt","label","attributionText","addAttribution","tileLayer","here","opts","Lib","SVGMarker","Opacity","module","exports","Browser","retina","overlaps","FeatureGroup","SubGroup","r","setParentGroup","LayerGroup","_parentGroup","addLayers","_onAddToGroupBatch","_onAddToGroup","_onAddToMap","removeLayers","_onRemoveFromGroupBatch","_onRemoveFromGroup","_onRemoveFromMap","_addLayerToGroup","_addLayerToMap","removeLayer","_removeLayerFromGroup","_removeLayerFromMap","setParentGroupSafe","getParentGroup","getLayers","hasLayer","addEventParent","getLayerId","_layers","fire","removeEventParent","featureGroup","subGroup","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","m","O","result","chunkIds","priority","notFulfilled","fulfilled","every","splice","obj","prop","hasOwnProperty","installedChunks","chunkId","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","some","chunkLoadingGlobal","__webpack_exports__"],"sourceRoot":""}