{"version":3,"file":"js/decidim_homepage_interactive_map-b82067cc295f1badf25c.js","mappings":"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","sources":["webpack://app/webpack/runtime/chunk loaded","webpack://app/../usr/local/bundle/bundler/gems/decidim-module-decidim_awesome-b9aae42bc835/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-1ff222533cb3/app/packs/src/decidim/homepage_interactive_map/interactive_map.js","webpack://app/../usr/local/bundle/bundler/gems/decidim-module-homepage_interactive_map-1ff222533cb3/app/packs/src/decidim/homepage_interactive_map/scope.js","webpack://app/../usr/local/bundle/bundler/gems/decidim-module-homepage_interactive_map-1ff222533cb3/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 $('<div></div>').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 <br> 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 <ilya.atkin@unh.edu>\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 = `<circle class=\"${className}\" cx=\"${cx}\" cy=\"${cy}\" r=\"${radius\n    }\" fill=\"${fill}\" fill-opacity=\"${fillOpacity\n    }\" stroke=\"${stroke}\" stroke-opacity=${strokeOpacity}\" stroke-width=\"${strokeWidth}\"/>`\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 = `<path class=\"${className}\" d=\"${pathDescription\n    }\" stroke-width=\"${strokeWidth}\" stroke=\"${stroke}\" stroke-opacity=\"${strokeOpacity\n    }\" fill=\"${fill}\" fill-opacity=\"${fillOpacity}\"/>`\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 = `<filter id='iconShadowBlur'><feGaussianBlur in='SourceGraphic' stdDeviation='${blur}'/></filter>`\n\n    let shadow = `<path filter=\"url(#iconShadowBlur\") class=\"${className}\" d=\"${pathDescription}\" fill=\"${fill}\" stroke-width=\"${strokeWidth}\" stroke=\"${stroke}\" style=\"opacity: ${opacity}; transform-origin: ${origin}; transform: rotate(${rotation}deg) translate(${translate}) scale(1, ${height})\" />`\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 = `<svg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" class=\"${className}\" style=\"${style}\">${shadow}${path}${circle}${text}</svg>`\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 = `<text text-anchor=\"middle\" x=\"${coordX}\" y=\"${coordY}\" style=\"font-size: ${fontSize}; font-weight: ${fontWeight}\" fill=\"${textColor}\">${circleText}</text>`\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 = `<svg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" class=\"${className}\" style=\"${style}\">${path}${circle}${text}</svg>`;\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            <div class=\"map-info__content homepage_interactive_map\">\n              <h3>${participatoryProcess.title}</h3>\n              <div id=\"bodyContent\">\n                <div class=\"card__datetime\">\n                  <div class=\"card__datetime__date\">\n                    ${participatoryProcess.start_date} - ${participatoryProcess.end_date}\n                  </div>\n                </div>\n                <div class=\"map-info__button\">\n                  <a href=\"${participatoryProcess.link}\" class=\"button button--sc\">\n                    ${linkTxt}\n                  </a>\n                </div>\n              </div>\n            </div>\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: '<div style=\"' + style + '\">' + cluster.getChildCount() + '</div>',\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<providers.length; i++) {\n      if (providers[i].boxes) {\n        for (var j=0; j<providers[i].boxes.length; j++) {\n          var box = providers[i].boxes[j];\n          providers[i].boxes[j] = L.latLngBounds( [ [box[0], box[1]], [box[2], box[3]] ]);\n        }\n      }\n    }\n\n    this._map.on('moveend zoomend resetview', this._findCopyrightBBox, this);\n\n    this._attributionProviders = providers;\n\n    this._findCopyrightBBox();\n  },\n\n  _findCopyrightBBox: function _findCopyrightBBox() {\n    if (!this._map) { return; }\n    var providers = this._attributionProviders;\n    var visibleProviders = [];\n    var zoom = this._map.getZoom();\n    var visibleBounds = this._map.getBounds();\n\n    for (var i=0; i<providers.length; i++) {\n      if (providers[i].minLevel <= zoom && providers[i].maxLevel >= 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; j<providers[i].boxes.length; j++) {\n            var box = providers[i].boxes[j];\n            if (visibleBounds.intersects(box)) {\n              visibleProviders.push(providers[i]);\n              break;\n            }\n          }\n        }\n      }\n    }\n\n    var attributions = ['<a href=\"https://legal.here.com/en-gb/terms\" target=\"_blank\" rel=\"noopener noreferrer\">HERE maps</a>'];\n    for (var i=0; i<visibleProviders.length; i++) {\n      var provider = visibleProviders[i];\n      attributions.push('<abbr title=\"' + provider.alt + '\">' + provider.label + '</abbr>');\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 = '<circle class=\"' + className + '\" cx=\"' + cx + '\" cy=\"' + cy + '\" r=\"' + radius +\n            '\" fill=\"' + fill + '\" fill-opacity=\"'+ fillOpacity +\n            '\" stroke=\"' + stroke + '\" stroke-opacity=' + strokeOpacity + '\" stroke-width=\"' + strokeWidth + '\"/>'\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 = '<path class=\"' + className + '\" d=\"' + pathDescription +\n            '\" stroke-width=\"' + strokeWidth + '\" stroke=\"' + stroke + '\" stroke-opacity=\"' + strokeOpacity +\n            '\" fill=\"' + fill + '\" fill-opacity=\"' + fillOpacity + '\"/>'\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 = '<svg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" class=\"' + className + '\" style=\"' + style + '\">' + path + circle + text + '</svg>'\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 = '<text text-anchor=\"middle\" x=\"' + x + '\" y=\"' + y + '\" style=\"font-size: ' + fontSize + '\" fill=\"' + textColor + '\">' + circleText + '</text>'\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","L.TileLayer.HERE = L.TileLayer.extend({\n\toptions: {\n\t\tsubdomains: '1234',\n\t\tminZoom: 2,\n\t\tmaxZoom: 18,\n\n\t\t// option style: String = 'explore.day'\n\t\tstyle: 'explore.day',\n\n\t\t// option resource: String = 'base'\n\t\tresource: 'base',\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// option apiKey: String = ''\n\t\t// Required option. The `apiKey` provided as part of the HERE credentials\n\t\tapiKey: '',\n\n\t\t// option features: String = ''\n\t\t// Map Features\n\t\tfeatures: null,\n\n\t\t// option mapVersion: String = ''\n\t\t// Map Version\n\t\tmapVersion: null,\n\n\t\t// option language: String = ''\n\t\t// Map language\n\t\tlanguage: null\n\t},\n\n\n\tinitialize: function initialize(options) {\n\t\toptions = L.setOptions(this, options);\n\n\t\toptions.tileResolution = 256;\n\n\t\tif (L.Browser.retina) {\n\t\t\toptions.tileResolution = 512;\n\t\t}\n\n\t\tvar tileUrl = 'https://maps.hereapi.com/v3/{resource}/mc/{z}/{x}/{y}/{format}?apiKey={apiKey}&style={style}&size={tileResolution}';\n\t\tvar copyrightUrl = 'https://maps.hereapi.com/v3/copyright?apiKey={apiKey}';\n\n\t\tif (options.features) {\n\t\t\ttileUrl += '&features={features}'\n\t\t}\n\n\t\tif (options.mapVersion) {\n\t\t\ttileUrl += '&mv={mapVersion}'\n\t\t}\n\n\t\tif (options.language) {\n\t\t\ttileUrl += '&lang={language}'\n\t\t}\n\n\t\tthis._attributionUrl = L.Util.template(copyrightUrl, this.options);\n\n\t\tL.TileLayer.prototype.initialize.call(this, tileUrl, options);\n\n\t\tthis._attributionText = '';\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.copyrights.in;\n\n\t\tfor (var i = 0; i < providers.length; i++) {\n\t\t\tif (providers[i].boundingBoxes) {\n\t\t\t\tfor (var j = 0; j < providers[i].boundingBoxes.length; j++) {\n\t\t\t\t\tvar box = providers[i].boundingBoxes[j];\n\t\t\t\t\tproviders[i].boundingBoxes[j] = L.latLngBounds([[box.east, box.north], [box.west, box.south]]);\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].boundingBoxes) {\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].boundingBoxes.length; j++) {\n\t\t\t\tvar box = providers[i].boundingBoxes[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 = '© <a href=\"https://legal.here.com/terms/serviceterms/gb/\">HERE maps</a>';\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","/*!\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__(40304); })\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","features","mapVersion","Browser","retina","copyrights","in","boundingBoxes","east","north","west","south","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":""}