{"version":3,"file":"static/components/9912-87543d65775862075582.js?cv=7","mappings":"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","sources":["webpack:///home/runner/work/actionpopulaire.fr/actionpopulaire.fr/agir/carte/components/map/common.js","webpack:///home/runner/work/actionpopulaire.fr/actionpopulaire.fr/agir/front/components/genericComponents/_variables-light.scss","webpack:///home/runner/work/actionpopulaire.fr/actionpopulaire.fr/agir/lib/components/utils/url.js","webpack:///home/runner/work/actionpopulaire.fr/actionpopulaire.fr/agir/carte/components/map/style.css","webpack://Agir/./front/components/genericComponents/_variables-light.scss?fef0","webpack://Agir/./carte/components/map/style.css?c58e","webpack:///home/runner/work/actionpopulaire.fr/actionpopulaire.fr/agir/lib/components/utils/fontawesome.js","webpack:///home/runner/work/actionpopulaire.fr/actionpopulaire.fr/agir/lib/components/utils/logger.js","webpack:///home/runner/work/actionpopulaire.fr/actionpopulaire.fr/agir/carte/components/map/utils.js"],"sourcesContent":["import Attribution from \"ol/control/Attribution\";\nimport Zoom from \"ol/control/Zoom\";\nimport Feature from \"ol/Feature\";\nimport Point from \"ol/geom/Point\";\nimport TileLayer from \"ol/layer/Tile\";\nimport VectorLayer from \"ol/layer/Vector\";\nimport Map from \"ol/Map\";\nimport Overlay from \"ol/Overlay\";\nimport { fromLonLat, transformExtent } from \"ol/proj\";\nimport VectorSource from \"ol/source/Vector\";\nimport XYZ from \"ol/source/XYZ\";\nimport Fill from \"ol/style/Fill\";\nimport Icon from \"ol/style/Icon\";\nimport Style from \"ol/style/Style\";\nimport Text from \"ol/style/Text\";\nimport View from \"ol/View\";\n\nimport * as style from \"@agir/front/genericComponents/_variables-light.scss\";\nimport fontawesome from \"@agir/lib/utils/fontawesome\";\n\nimport markerIcon from \"./marker.svg\";\nimport markerIconBg from \"./marker_bg.svg\";\n\nimport { element } from \"./utils\";\n\nconst ARROW_SIZE = 20;\n\nconst attributions = `<a href=\"https://jawg.io?utm_medium=map&utm_source=attribution\" title=\"Tiles Courtesy of Jawg Maps\" target=\"_blank\" class=\"jawg-attrib\" >&copy; <b>Jawg</b>Maps</a> | <a href=\"https://www.openstreetmap.org/copyright\" title=\"OpenStreetMap is open data licensed under ODbL\" target=\"_blank\" class=\"osm-attrib\">&copy; OSM contributors</a>`;\n\nexport function setUpMap(elementId, layers) {\n  const view = new View({\n    center: fromLonLat([2, 47]),\n    zoom: 6,\n    enableRotation: false,\n  });\n  return new Map({\n    target: elementId,\n    controls: [new Attribution({collapsible: false, attributions})],\n    layers: [\n      new TileLayer({\n        source: new XYZ({\n          url: \"https://tile.jawg.io/jawg-streets/{z}/{x}/{y}.png?access-token=mGYrqYC5XjG6lXEoz0e5ejl1wSS0GovRMqBw8LEuhFfz2PYILpp8YFzx6TnKxAHe\",\n          attributions: [attributions],\n        }),\n      }),\n      ...layers,\n    ],\n    view,\n  });\n}\n\nexport function fitBounds(map, bounds) {\n  map\n    .getView()\n    .fit(transformExtent(bounds, \"EPSG:4326\", \"EPSG:3857\"), map.getSize());\n}\n\nexport function setUpPopup(map) {\n  const popupElement = element(\"div\", [], {\n    className: \"map_popup\",\n  });\n  popupElement.addEventListener(\"mousedown\", function (evt) {\n    evt.stopPropagation();\n  });\n\n  const popup = new Overlay({\n    element: popupElement,\n    positioning: \"bottom-center\",\n    offset: [0, -ARROW_SIZE],\n    stopEvent: true,\n  });\n\n  map.addOverlay(popup);\n\n  map.on(\"singleclick\", function (evt) {\n    popup.setPosition();\n    map.forEachFeatureAtPixel(evt.pixel, function (feature) {\n      const coords = feature.getGeometry().getCoordinates();\n      if (feature.get(\"popupContent\")) {\n        popup.getElement().innerHTML = feature.get(\"popupContent\");\n        popup.setOffset([0, feature.get(\"popupAnchor\")]);\n        popup.setPosition(coords);\n        return true;\n      }\n    });\n  });\n\n  map.on(\"pointermove\", function (evt) {\n    const hit = this.forEachFeatureAtPixel(evt.pixel, function (feature) {\n      return !!feature.get(\"popupContent\");\n    });\n    if (hit) {\n      this.getTargetElement().style.cursor = \"pointer\";\n    } else {\n      this.getTargetElement().style.cursor = \"\";\n    }\n  });\n}\n\nconst getMarkerIcons = (color = style.primary500) => [\n  new Style({\n    image: new Icon({\n      opacity: 1,\n      src: markerIcon,\n      color,\n      scale: 0.75,\n      anchor: [0.5, 1],\n    }),\n  }),\n  new Style({\n    image: new Icon({\n      opacity: 1,\n      src: markerIconBg,\n      scale: 0.75,\n      anchor: [0.5, 1],\n    }),\n  }),\n];\n\nexport function makeStyle(config, options = {}) {\n  options = Object.assign({ color: true }, options);\n\n  if (config.color && config.iconName) {\n    const iconStyle = fontawesome(config.iconName, true);\n    return [\n      ...getMarkerIcons(options.color ? config.color : style.primary500),\n      new Style({\n        text: new Text({\n          text: iconStyle?.text,\n          offsetY: -21,\n          font: `${iconStyle.fontWeight} 12px ${iconStyle.fontFamily}`,\n          fill: new Fill({ color: \"#FFFFFF\" }),\n        }),\n      }),\n    ];\n  } else if (config.iconUrl && config.iconAnchor) {\n    return new Style({\n      image: new Icon({\n        anchor: config.iconAnchor,\n        anchorXUnits: \"pixels\",\n        anchorYUnits: \"pixels\",\n        opacity: 1,\n        src: config.iconUrl,\n      }),\n    });\n  }\n\n  return null;\n}\n\nexport function createMap(\n  center,\n  zoom,\n  target,\n  iconConfiguration,\n  isStatic,\n  mapFilter,\n) {\n  const styles = iconConfiguration\n    ? makeStyle(iconConfiguration)\n    : getMarkerIcons();\n  const feature = new Feature({\n    geometry: new Point(fromLonLat(center)),\n  });\n  feature.setStyle(styles);\n  const tile = new TileLayer({\n    source: new XYZ({\n      url: \"https://tile.jawg.io/jawg-streets/{z}/{x}/{y}.png?access-token=mGYrqYC5XjG6lXEoz0e5ejl1wSS0GovRMqBw8LEuhFfz2PYILpp8YFzx6TnKxAHe\",\n      attributions: [attributions],\n    }),\n  });\n  tile.on(\"prerender\", (evt) => {\n    if (evt.context) {\n      const context = evt.context;\n      context.filter = mapFilter;\n      context.globalCompositeOperation = \"source-over\";\n    }\n  });\n  tile.on(\"postrender\", (evt) => {\n    if (evt.context) {\n      const context = evt.context;\n      context.filter = \"none\";\n    }\n  });\n  const map = new Map({\n    target,\n    controls: isStatic ? [new Attribution()] : [new Attribution(), new Zoom()],\n    interactions: isStatic ? [] : undefined,\n    layers: [\n      tile,\n      new VectorLayer({\n        source: new VectorSource({ features: [feature] }),\n      }),\n    ],\n    view: new View({\n      center: fromLonLat(center),\n      zoom,\n      enableRotation: false,\n    }),\n  });\n\n  /**\n   * Function to handle update of the center coordinates of the map\n   * @param  {Number[]} newCenter               The new center coordinates\n   */\n  const updateMapCenter = (newCenter) => {\n    // Avoid updating the map if nothing has changed\n    if (newCenter[0] === center[0] && newCenter[1] === center[1]) {\n      return;\n    }\n    // Update the view center\n    map.getView().setCenter(fromLonLat(newCenter));\n    // Update the marker position\n    feature.setGeometry(new Point(fromLonLat(newCenter)));\n  };\n\n  /**\n   * Function to handle update of the map filter\n   * @param {String} filter                The new filter\n   */\n  const updateMapFilter = (filter) => {\n    // Avoid updating the map if nothing has changed\n    if (mapFilter === filter) {\n      return;\n    }\n\n    mapFilter = filter;\n    tile.getSource().refresh();\n  };\n\n  return {\n    map,\n    updateMapCenter,\n    updateMapFilter,\n  };\n}\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, ``, \"\",{\"version\":3,\"sources\":[],\"names\":[],\"mappings\":\"\",\"sourceRoot\":\"\"}]);\n// Exports\nexport var background0 = `#fff`;\nexport var background25 = `#f9f9f9`;\nexport var background50 = `#eee`;\nexport var background75 = `#f5f5f5`;\nexport var background100 = `#dfdfdf`;\nexport var background200 = `#c4c4c4`;\nexport var backgroun500 = `#777`;\nexport var background700 = `#4f4f4f`;\nexport var text1000 = `#000a2c`;\nexport var text700 = `#4f4f4f`;\nexport var text500 = `#777`;\nexport var text200 = `#c4c4c4`;\nexport var text100 = `#dfdfdf`;\nexport var text50 = `#eee`;\nexport var text25 = `#fafafa`;\nexport var primary500 = `#571aff`;\nexport var primary600 = `#4d26b9`;\nexport var primary150 = `#cbbfec`;\nexport var primary100 = `#e9e1ff`;\nexport var primary50 = `#f6f2fc`;\nexport var secondary600 = `#f5e30f`;\nexport var secondary500 = `#f4ed0f`;\nexport var secondary100 = `#fcfbd9`;\nexport var success500 = `#16a460`;\nexport var success200 = `#b4ffdb`;\nexport var success100 = `#d9ffed`;\nexport var error500 = `#e93a55`;\nexport var error100 = `#fdecee`;\nexport var vermillon = `#ff5e35`;\nexport var LFIprimary600 = `#200054`;\nexport var LFIprimary500 = `#7b13d6`;\nexport var LFIprimary150 = `#fdbcff`;\nexport var LFIprimary100 = `#fdbcff`;\nexport var LFIsecondary600 = `#d31529`;\nexport var LFIsecondary500 = `#f91616`;\nexport var LFIsecondary150 = `#efa79c`;\nexport var LFIsecondary100 = `#ffe5dd`;\nexport var soutienPrimary = `#4c0297`;\nexport var soutienSecondary = `#d1271c`;\nexport var soutienLight = `#e5cbff`;\nexport var referralPink = `#f831a0`;\nexport var materielBlue = `#38a5f4`;\nexport var votingProxyOrange = `#ea610b`;\nexport var PULBleu = `#3f2682`;\nexport var textColor = `#000a2c`;\nexport var linkColor = `#571aff`;\nexport var linkHoverColor = `#4d26b9`;\nexport var markColor = `#f6f2fc`;\nexport var elaborateShadow = `0px 0px 3px rgba(0,35,44,.1),0px 2px 0px rgba(0,35,44,.08)`;\nexport var cardShadow = `0px 0px 1px 0px #c4c4c4,0px 1px 1px 0px #dfdfdf`;\nexport var mapFilter = `none`;\nexport var white = `#fff`;\nexport var black = `#000a2c`;\nexport var facebook = `#1778f2`;\nexport var facebookLight = `#bbdbff`;\nexport var twitter = `#1da1f2`;\nexport var whatsapp = `#24cc63`;\nexport var telegram = `#08c`;\nexport var nupesBlue = `#502582`;\nexport var nupesRed = `#f53b3b`;\nexport var nupesPink = `#f831a0`;\nexport var nupesGreen = `#34ad6c`;\nexport var nupesYellow = `#ffec00`;\nexport var fontFamilyBase = `\"Poppins\",sans-serif`;\nexport var fontSizeBase = `16px`;\nexport var lineHeightBase = `1.428571429`;\nexport var linkHoverDecoration = `underline`;\nexport var collapse = `992`;\nexport var collapseSmallMobile = `360`;\nexport var collapseMobile = `992`;\nexport var collapseTablet = `1282`;\nexport var softBorderRadius = `4px`;\nexport var borderRadius = `8px`;\nexport var zindexMainContent = `2`;\nexport var zindexTopBar = `10`;\nexport var zindexBottomBar = `10`;\nexport var zindexNavigationCounter = `10`;\nexport var zindexModal = `20`;\nexport var zindexPanel = `20`;\nexport var zindexFeedbackButton = `15`;\nexport default ___CSS_LOADER_EXPORT___;\n","export const parseURL = (url) =>\n  new URL(url, window.location && window.location.origin);\n\nexport const relativeToAbsoluteURL = ((a) => (url) => {\n  a.href = url;\n  return a.href;\n})(document.createElement(\"a\"));\n\nexport const stringifyQueryStringParams = (params = {}) => {\n  if (\n    !params ||\n    typeof params !== \"object\" ||\n    Object.keys(params).length === 0\n  ) {\n    return \"\";\n  }\n\n  return new URLSearchParams(\n    Object.entries(params).filter(([_, value]) => typeof value !== \"undefined\"),\n  ).toString();\n};\n\nexport const addQueryStringParams = (url, params = {}, relative = false) => {\n  if (!url) {\n    return \"\";\n  }\n  if (\n    !params ||\n    typeof params !== \"object\" ||\n    Object.keys(params).length === 0\n  ) {\n    return url;\n  }\n  try {\n    let parsedURL = url;\n    parsedURL = parseURL(url);\n    Object.entries(params).forEach(([key, value]) => {\n      if (typeof value !== \"undefined\") {\n        parsedURL.searchParams.set(key, value);\n      }\n    });\n    parsedURL = parsedURL.toString();\n    if (window?.location && relative) {\n      parsedURL = parsedURL.replace(window.location.origin, \"\");\n    }\n    return parsedURL;\n  } catch (e) {\n    return url;\n  }\n};\n\nexport const parseQueryStringParams = (url) => {\n  const params = Object.create(null);\n  let queryString = url ? url.split(\"?\")[1] : window.location.search.slice(1);\n  if (!queryString) {\n    return params;\n  }\n\n  queryString = queryString.split(\"#\")[0];\n  queryString.split(\"&\").forEach((entry) => {\n    // separate the keys and the values\n    let [key, value] = entry.split(\"=\");\n    value = typeof value === \"undefined\" ? true : value;\n\n    if (key.match(/\\[(\\d+)?\\]$/)) {\n      const name = key.replace(/\\[(\\d+)?\\]/, \"\");\n      params[name] = params[name] || [];\n      if (name.match(/\\[\\d+\\]$/)) {\n        var index = /\\[(\\d+)\\]/.exec(key)[1];\n        params[name][index] = value;\n      } else {\n        params[name].push(value);\n      }\n    } else {\n      if (!params[key]) {\n        params[key] = value;\n      } else if (params[key] && typeof params[key] === \"string\") {\n        params[key] = [params[key]];\n        params[key].push(value);\n      } else {\n        params[key].push(value);\n      }\n    }\n  });\n\n  return params;\n};\n\nexport const slugify = (string, separator = \"-\") => {\n  separator = separator.trim();\n  return (\n    string\n      .toString()\n      .normalize(\"NFD\")\n      .toLowerCase()\n      // remove all chars not letters, numbers, current separator and spaces (to be replaced)\n      .replace(new RegExp(`[^a-z0-9${separator} ]`, \"g\"), \"\")\n      .trim()\n      .replace(/\\s+/g, separator)\n  );\n};\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `/* arrow code from http://www.cssarrowplease.com/ */\n\n.map_popup {\n  position: relative;\n  background: #ffffff;\n  box-shadow: 0 3px 14px rgba(0, 0, 0, 0.4);\n  padding: 13px 19px;\n  -webkit-border-radius: 12px;\n  -moz-border-radius: 12px;\n  border-radius: 12px;\n  font-size: 15px;\n}\n\n.map_popup:after {\n  top: 100%;\n  left: 50%;\n  border: solid transparent;\n  content: \" \";\n  height: 0;\n  width: 0;\n  position: absolute;\n  pointer-events: none;\n  /*border-color: rgba(255, 255, 255, 0);*/\n  border-top-color: #ffffff;\n  border-width: 20px;\n  margin-left: -20px;\n}\n\n.map_popup a {\n  font-size: 18px;\n  font-weight: bold;\n}\n\n.layer_selector_button {\n  position: absolute;\n  top: 0.5em;\n  right: 0.5em;\n  font-family: 'Font Awesome 6 Pro', 'Font Awesome 6 Brands';\n  background: #ffffff;\n  border: none;\n  border-radius: 8px;\n  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);\n  width: 44px;\n  height: 44px;\n  font-size: 18px;\n  color: #1a237e;\n  cursor: pointer;\n  transition: all 0.2s ease;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  z-index: 1001;\n}\n\n.layer_selector_button:hover {\n  background: #f5f5f5;\n  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);\n  transform: translateY(-1px);\n}\n\n.layer_selector_button:active {\n  transform: translateY(0);\n  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.15);\n}\n\n.layer_selector {\n  display: none;\n  position: absolute;\n  background: #ffffff;\n  top: 3.7em;\n  right: 0.5em;\n  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.15);\n  border-radius: 12px;\n  padding: 12px;\n  min-width: 220px;\n  max-width: 280px;\n  z-index: 1000;\n  opacity: 0;\n  visibility: hidden;\n  transform: translateY(-10px);\n  transition: all 0.2s ease;\n}\n\n.layer_selector.visible {\n  display: block;\n  opacity: 1;\n  visibility: visible;\n  transform: translateY(0);\n}\n\n.layer_selector label {\n  display: flex;\n  align-items: center;\n  font-weight: 500;\n  font-size: 14px;\n  line-height: 1.5;\n  margin-bottom: 8px;\n  padding: 6px 10px;\n  border-radius: 6px;\n  cursor: pointer;\n  transition: background 0.15s ease;\n  color: #333;\n}\n\n.layer_selector label:has(input:checked) {\n    font-weight: bold;\n    background-color: #eeeeee;\n}\n\n.layer_selector label:hover {\n    background: #dddddd50;\n}\n\n.layer_selector input[type=\"checkbox\"] {\n  width: 18px;\n  height: 18px;\n  min-width: 18px;\n  margin-right: 10px;\n  accent-color: #1a237e;\n  cursor: pointer;\n  border: 2px solid #ccc;\n  border-radius: 4px;\n}\n\n.layer_selector input[type=\"checkbox\"]:checked {\n  border-color: #1a237e;\n  background: #1a237e;\n}\n\n.layer_selector span {\n  color: inherit;\n  font-weight: 600;\n}\n\n.active_groups_button {\n  position: absolute;\n  top: 0.5em;\n  right: 3em;\n  background: #ffffff;\n  border: none;\n  border-radius: 8px;\n  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);\n  padding: 8px 12px;\n  font-size: 14px;\n  cursor: pointer;\n  transition: all 0.2s ease;\n  z-index: 1001;\n  color: #333;\n}\n\n.active_groups_button:hover {\n  background: #f5f5f5;\n  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);\n  transform: translateY(-1px);\n}\n\n.active_groups_button:active {\n  transform: translateY(0);\n  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.15);\n}\n\n.active_groups_button label {\n  display: flex;\n  align-items: center;\n  gap: 8px;\n  margin: 0;\n  cursor: pointer;\n  font-weight: 500;\n}\n\n.active_groups_button input[type=\"checkbox\"] {\n  width: 18px;\n  height: 18px;\n  accent-color: #1a237e;\n  cursor: pointer;\n  border: 2px solid #ccc;\n  border-radius: 4px;\n}\n\n.active_groups_button input[type=\"checkbox\"]:checked {\n  border-color: #1a237e;\n  background: #1a237e;\n}\n\n.ol-zoom {\n  top: 2.5em;\n}\n\n.search_box {\n  position: absolute;\n  top: 0.5em;\n  left: 0.5em;\n  width: calc(100% - 300px);\n  max-width: 600px;\n}\n\n.search_box form {\n  padding-right: 34px;\n  font-size: 14px;\n}\n\n.search_box input {\n  margin-right: 0;\n  padding: 0 3px;\n  border: 1px solid black;\n  border-right: none;\n  height: 30px;\n  width: 100%;\n  border-radius: 2px 0 0 2px;\n}\n\n.search_box button {\n  text-align: center;\n  padding: 0;\n  margin-left: 0;\n  border-radius: 0 2px 2px 0;\n  border: 1px solid black;\n  height: 30px;\n  width: 30px;\n  margin-right: -30px;\n}\n\n.search_box ul {\n  display: none;\n  background: white;\n  border-radius: 0 0 5px 5px;\n  list-style: none;\n  padding: 0;\n  border: 1px solid black;\n  border-top: none;\n}\n\n.search_box ul.show {\n  display: block;\n}\n\n.search_box li + li {\n  border-top: solid black 1px;\n}\n\n.search_box li a {\n  color: black;\n  text-decoration: none;\n  display: block;\n  padding: 5px;\n  font-size: 12px;\n}\n\n.search_box li a:hover {\n  background: #ddd;\n}\n\n.ol-attribution {\n  font-size: 12px;\n}\n`, \"\",{\"version\":3,\"sources\":[\"webpack://./carte/components/map/style.css\"],\"names\":[],\"mappings\":\"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\",\"sourcesContent\":[\"/* arrow code from http://www.cssarrowplease.com/ */\\n\\n.map_popup {\\n  position: relative;\\n  background: #ffffff;\\n  box-shadow: 0 3px 14px rgba(0, 0, 0, 0.4);\\n  padding: 13px 19px;\\n  -webkit-border-radius: 12px;\\n  -moz-border-radius: 12px;\\n  border-radius: 12px;\\n  font-size: 15px;\\n}\\n\\n.map_popup:after {\\n  top: 100%;\\n  left: 50%;\\n  border: solid transparent;\\n  content: \\\" \\\";\\n  height: 0;\\n  width: 0;\\n  position: absolute;\\n  pointer-events: none;\\n  /*border-color: rgba(255, 255, 255, 0);*/\\n  border-top-color: #ffffff;\\n  border-width: 20px;\\n  margin-left: -20px;\\n}\\n\\n.map_popup a {\\n  font-size: 18px;\\n  font-weight: bold;\\n}\\n\\n.layer_selector_button {\\n  position: absolute;\\n  top: 0.5em;\\n  right: 0.5em;\\n  font-family: 'Font Awesome 6 Pro', 'Font Awesome 6 Brands';\\n  background: #ffffff;\\n  border: none;\\n  border-radius: 8px;\\n  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);\\n  width: 44px;\\n  height: 44px;\\n  font-size: 18px;\\n  color: #1a237e;\\n  cursor: pointer;\\n  transition: all 0.2s ease;\\n  display: flex;\\n  align-items: center;\\n  justify-content: center;\\n  z-index: 1001;\\n}\\n\\n.layer_selector_button:hover {\\n  background: #f5f5f5;\\n  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);\\n  transform: translateY(-1px);\\n}\\n\\n.layer_selector_button:active {\\n  transform: translateY(0);\\n  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.15);\\n}\\n\\n.layer_selector {\\n  display: none;\\n  position: absolute;\\n  background: #ffffff;\\n  top: 3.7em;\\n  right: 0.5em;\\n  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.15);\\n  border-radius: 12px;\\n  padding: 12px;\\n  min-width: 220px;\\n  max-width: 280px;\\n  z-index: 1000;\\n  opacity: 0;\\n  visibility: hidden;\\n  transform: translateY(-10px);\\n  transition: all 0.2s ease;\\n}\\n\\n.layer_selector.visible {\\n  display: block;\\n  opacity: 1;\\n  visibility: visible;\\n  transform: translateY(0);\\n}\\n\\n.layer_selector label {\\n  display: flex;\\n  align-items: center;\\n  font-weight: 500;\\n  font-size: 14px;\\n  line-height: 1.5;\\n  margin-bottom: 8px;\\n  padding: 6px 10px;\\n  border-radius: 6px;\\n  cursor: pointer;\\n  transition: background 0.15s ease;\\n  color: #333;\\n}\\n\\n.layer_selector label:has(input:checked) {\\n    font-weight: bold;\\n    background-color: #eeeeee;\\n}\\n\\n.layer_selector label:hover {\\n    background: #dddddd50;\\n}\\n\\n.layer_selector input[type=\\\"checkbox\\\"] {\\n  width: 18px;\\n  height: 18px;\\n  min-width: 18px;\\n  margin-right: 10px;\\n  accent-color: #1a237e;\\n  cursor: pointer;\\n  border: 2px solid #ccc;\\n  border-radius: 4px;\\n}\\n\\n.layer_selector input[type=\\\"checkbox\\\"]:checked {\\n  border-color: #1a237e;\\n  background: #1a237e;\\n}\\n\\n.layer_selector span {\\n  color: inherit;\\n  font-weight: 600;\\n}\\n\\n.active_groups_button {\\n  position: absolute;\\n  top: 0.5em;\\n  right: 3em;\\n  background: #ffffff;\\n  border: none;\\n  border-radius: 8px;\\n  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);\\n  padding: 8px 12px;\\n  font-size: 14px;\\n  cursor: pointer;\\n  transition: all 0.2s ease;\\n  z-index: 1001;\\n  color: #333;\\n}\\n\\n.active_groups_button:hover {\\n  background: #f5f5f5;\\n  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);\\n  transform: translateY(-1px);\\n}\\n\\n.active_groups_button:active {\\n  transform: translateY(0);\\n  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.15);\\n}\\n\\n.active_groups_button label {\\n  display: flex;\\n  align-items: center;\\n  gap: 8px;\\n  margin: 0;\\n  cursor: pointer;\\n  font-weight: 500;\\n}\\n\\n.active_groups_button input[type=\\\"checkbox\\\"] {\\n  width: 18px;\\n  height: 18px;\\n  accent-color: #1a237e;\\n  cursor: pointer;\\n  border: 2px solid #ccc;\\n  border-radius: 4px;\\n}\\n\\n.active_groups_button input[type=\\\"checkbox\\\"]:checked {\\n  border-color: #1a237e;\\n  background: #1a237e;\\n}\\n\\n.ol-zoom {\\n  top: 2.5em;\\n}\\n\\n.search_box {\\n  position: absolute;\\n  top: 0.5em;\\n  left: 0.5em;\\n  width: calc(100% - 300px);\\n  max-width: 600px;\\n}\\n\\n.search_box form {\\n  padding-right: 34px;\\n  font-size: 14px;\\n}\\n\\n.search_box input {\\n  margin-right: 0;\\n  padding: 0 3px;\\n  border: 1px solid black;\\n  border-right: none;\\n  height: 30px;\\n  width: 100%;\\n  border-radius: 2px 0 0 2px;\\n}\\n\\n.search_box button {\\n  text-align: center;\\n  padding: 0;\\n  margin-left: 0;\\n  border-radius: 0 2px 2px 0;\\n  border: 1px solid black;\\n  height: 30px;\\n  width: 30px;\\n  margin-right: -30px;\\n}\\n\\n.search_box ul {\\n  display: none;\\n  background: white;\\n  border-radius: 0 0 5px 5px;\\n  list-style: none;\\n  padding: 0;\\n  border: 1px solid black;\\n  border-top: none;\\n}\\n\\n.search_box ul.show {\\n  display: block;\\n}\\n\\n.search_box li + li {\\n  border-top: solid black 1px;\\n}\\n\\n.search_box li a {\\n  color: black;\\n  text-decoration: none;\\n  display: block;\\n  padding: 5px;\\n  font-size: 12px;\\n}\\n\\n.search_box li a:hover {\\n  background: #ddd;\\n}\\n\\n.ol-attribution {\\n  font-size: 12px;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","\n      import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n      import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n      import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n      import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n      import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n      import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n      import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[3].use[1]!../../../../node_modules/sass-loader/dist/cjs.js!./_variables-light.scss\";\n      \n      \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[3].use[1]!../../../../node_modules/sass-loader/dist/cjs.js!./_variables-light.scss\";\n       export default content && content.locals ? content.locals : undefined;\n","\n      import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n      import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n      import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n      import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n      import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n      import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n      import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!./style.css\";\n      \n      \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!./style.css\";\n       export default content && content.locals ? content.locals : undefined;\n","const BINDINGS = {};\n\nconst prefixClassName = (className) => {\n  if (!className || typeof className !== \"string\") {\n    return \"fa\";\n  }\n  className = className.toLowerCase().trim();\n  if (/^fa-/.test(className)) {\n    return className;\n  }\n  return `fa-${className}`;\n};\n\nconst fontawesome = (icon, asObject = false) => {\n  if (!icon || typeof icon !== \"string\") {\n    return null;\n  }\n\n  if (!BINDINGS[icon]) {\n    const [iconName, iconStyle = \"\"] = icon.toLowerCase().split(\":\");\n    const span = document.createElement(\"span\");\n\n    span.className = [\n      iconName.includes(\"fak\") && \"fak\",\n      prefixClassName(iconStyle),\n      prefixClassName(iconName),\n    ].join(\" \");\n    document.body.appendChild(span);\n    const spanStyle = window.getComputedStyle(span);\n    const beforeStyle = window.getComputedStyle(span, \":before\");\n    const content =\n      beforeStyle?.content &&\n      !beforeStyle.content.includes(\"none\") &&\n      beforeStyle.content.replace(new RegExp('\"', \"g\"), \"\");\n    BINDINGS[icon] = {\n      fontFamily: spanStyle.fontFamily,\n      fontWeight: spanStyle.fontWeight.replace(new RegExp('\"', \"g\"), \"\"),\n      text: content || \"\",\n      className: span.className,\n    };\n    document.body.removeChild(span);\n  }\n\n  return asObject ? BINDINGS[icon] : BINDINGS[icon].text;\n};\n\nexport default fontawesome;\n","import debug from \"debug\";\n\nconst generateLogger = (filename) => ({\n  debug: debug(`agir:${filename.replace(\"/\", \":\").replace(\".js\", \"\")}`),\n  warn: console.warn.bind(console),\n  info: console.info.bind(console),\n  error: console.error.bind(console),\n});\n\nexport default generateLogger;\n","import FontFaceOnload from \"fontfaceonload\";\n\nimport {\n  addQueryStringParams,\n  parseQueryStringParams,\n} from \"@agir/lib/utils/url\";\n\nexport function getQueryParameterByName(name) {\n  const url = window.location.href;\n  name = name.replace(/[[\\]]/g, \"\\\\$&\");\n  const regex = new RegExp(\"[?&]\" + name + \"(=([^&#]*)|&|#|$)\"),\n    results = regex.exec(url);\n  if (!results) return null;\n  if (!results[2]) return \"\";\n  return decodeURIComponent(results[2].replace(/\\+/g, \" \"));\n}\n\nfunction deepAssign(target, source) {\n  for (let key of Object.keys(source)) {\n    if (typeof source[key] === \"object\") {\n      if (!(key in target)) {\n        target[key] = {};\n      }\n      deepAssign(target[key], source[key]);\n    } else {\n      target[key] = source[key];\n    }\n  }\n}\n\nexport function element(tag, children = [], attrs = {}) {\n  const elem = document.createElement(tag);\n  children\n    .map((e) => {\n      if (e instanceof Element) {\n        return e;\n      } else if (e.constructor === String) {\n        return document.createTextNode(e);\n      }\n      return element.apply(null, e);\n    })\n    .forEach((e) => elem.appendChild(e));\n  deepAssign(elem, attrs);\n  return elem;\n}\n\nexport function fontIsLoaded(fontName) {\n  return new Promise((resolve, reject) =>\n    FontFaceOnload(fontName, {\n      success: resolve,\n      error: reject,\n    }),\n  );\n}\n\nexport const fontawesomeIsLoaded = () => {\n  return Promise.any([\n    fontIsLoaded(\"Font Awesome 6 Pro\"),\n    fontIsLoaded(\"Font Awesome 6 Brands\"),\n  ]);\n};\n\nexport const ARROW_SIZE = 20;\n\nexport const OVERSEAS_COUNTRY_CODE_TO_DEPARTEMENT = {\n  GP: \"971\",\n  MQ: \"972\",\n  GF: \"973\",\n  RE: \"974\",\n  PM: \"975\",\n  YT: \"976\",\n  TF: \"984\",\n  WF: \"986\",\n  PF: \"987\",\n  NC: \"988\",\n};\n\nexport const getDefaultBoundsForUser = (user) => {\n  if ([\"FR\", \"BL\", \"MF\"].includes(user?.country) && user?.zip) {\n    return JSON.stringify({ code_postal: user.zip });\n  }\n  if (OVERSEAS_COUNTRY_CODE_TO_DEPARTEMENT[user?.country]) {\n    return JSON.stringify({\n      departement: OVERSEAS_COUNTRY_CODE_TO_DEPARTEMENT[user?.country],\n    });\n  }\n};\n\nconst URLSearchParams = [\n  \"type\",\n  \"subtype\",\n  \"tag\",\n  \"include_past\",\n  \"include_hidden\",\n  \"date\",\n  \"group\",\n  \"certified\",\n  \"bounds\",\n  \"no_control\",\n];\n\nexport const parseURLSearchParams = () => {\n  const currentParams = parseQueryStringParams();\n  const newParams = Object.entries(currentParams).reduce(\n    (newParams, [key, value]) => {\n      if (URLSearchParams.includes(key)) {\n        newParams[key] = decodeURIComponent(value);\n      }\n      return newParams;\n    },\n    {},\n  );\n\n  return newParams;\n};\n\nexport const getMapUrl = (baseURL, defaultBounds) => {\n  const params = parseURLSearchParams();\n\n  if (!params.bounds && defaultBounds) {\n    params.bounds = defaultBounds;\n  }\n\n  return addQueryStringParams(baseURL, params);\n};\n"],"names":["ARROW_SIZE","attributions","setUpMap","elementId","layers","view","View","center","fromLonLat","zoom","enableRotation","Map","target","controls","Attribution","collapsible","TileLayer","source","XYZ","url","fitBounds","map","bounds","getView","fit","transformExtent","getSize","setUpPopup","popupElement","element","className","addEventListener","evt","stopPropagation","popup","Overlay","positioning","offset","stopEvent","addOverlay","on","setPosition","forEachFeatureAtPixel","pixel","feature","coords","getGeometry","getCoordinates","get","getElement","innerHTML","setOffset","hit","this","getTargetElement","style","cursor","getMarkerIcons","color","Style","image","Icon","opacity","src","markerIcon","scale","anchor","markerIconBg","makeStyle","config","options","Object","assign","iconName","iconStyle","fontawesome","text","Text","offsetY","font","fontWeight","fontFamily","fill","Fill","iconUrl","iconAnchor","anchorXUnits","anchorYUnits","createMap","iconConfiguration","isStatic","mapFilter","styles","Feature","geometry","Point","setStyle","tile","context","filter","globalCompositeOperation","Zoom","interactions","undefined","VectorLayer","VectorSource","features","updateMapCenter","newCenter","setCenter","setGeometry","updateMapFilter","getSource","refresh","___CSS_LOADER_EXPORT___","push","module","id","background0","background25","background50","background75","background100","background200","backgroun500","background700","text1000","text700","text500","text200","text100","text50","text25","primary500","primary600","primary150","primary100","primary50","secondary600","secondary500","secondary100","success500","success200","success100","error500","error100","vermillon","LFIprimary600","LFIprimary500","LFIprimary150","LFIprimary100","LFIsecondary600","LFIsecondary500","LFIsecondary150","LFIsecondary100","soutienPrimary","soutienSecondary","soutienLight","referralPink","materielBlue","votingProxyOrange","PULBleu","textColor","linkColor","linkHoverColor","markColor","elaborateShadow","cardShadow","white","black","facebook","facebookLight","twitter","whatsapp","telegram","nupesBlue","nupesRed","nupesPink","nupesGreen","nupesYellow","fontFamilyBase","fontSizeBase","lineHeightBase","linkHoverDecoration","collapse","collapseSmallMobile","collapseMobile","collapseTablet","softBorderRadius","borderRadius","zindexMainContent","zindexTopBar","zindexBottomBar","zindexNavigationCounter","zindexModal","zindexPanel","zindexFeedbackButton","relativeToAbsoluteURL","a","document","createElement","href","addQueryStringParams","params","relative","keys","length","_window","parsedURL","URL","window","location","origin","parseURL","entries","forEach","key","value","searchParams","set","toString","replace","e","parseQueryStringParams","create","queryString","split","search","slice","entry","match","name","index","exec","slugify","string","separator","trim","normalize","toLowerCase","RegExp","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","BINDINGS","prefixClassName","test","icon","asObject","span","includes","join","body","appendChild","spanStyle","getComputedStyle","beforeStyle","content","removeChild","filename","debug","warn","console","bind","info","error","deepAssign","tag","children","attrs","elem","Element","constructor","String","createTextNode","apply","fontIsLoaded","fontName","Promise","resolve","reject","FontFaceOnload","success","fontawesomeIsLoaded","any","OVERSEAS_COUNTRY_CODE_TO_DEPARTEMENT","GP","MQ","GF","RE","PM","YT","TF","WF","PF","NC","getDefaultBoundsForUser","user","country","zip","JSON","stringify","code_postal","departement","URLSearchParams","parseURLSearchParams","currentParams","reduce","newParams","decodeURIComponent","getMapUrl","baseURL","defaultBounds"],"sourceRoot":""}