@tracktor/map 1.4.2 → 1.4.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/main.umd.cjs CHANGED
@@ -1,5 +1,5 @@
1
1
  (function(){"use strict";try{if(typeof document<"u"){var o=document.createElement("style");o.appendChild(document.createTextNode(`.mapboxgl-map{font:12px/20px Helvetica Neue,Arial,Helvetica,sans-serif;overflow:hidden;position:relative;-webkit-tap-highlight-color:rgb(0 0 0/0)}.mapboxgl-canvas{left:0;position:absolute;top:0}.mapboxgl-map:-webkit-full-screen{height:100%;width:100%}.mapboxgl-canary{background-color:salmon}.mapboxgl-canvas-container.mapboxgl-interactive,.mapboxgl-ctrl-group button.mapboxgl-ctrl-compass{cursor:grab;-webkit-user-select:none;user-select:none}.mapboxgl-canvas-container.mapboxgl-interactive.mapboxgl-track-pointer{cursor:pointer}.mapboxgl-canvas-container.mapboxgl-interactive:active,.mapboxgl-ctrl-group button.mapboxgl-ctrl-compass:active{cursor:grabbing}.mapboxgl-canvas-container.mapboxgl-touch-zoom-rotate,.mapboxgl-canvas-container.mapboxgl-touch-zoom-rotate .mapboxgl-canvas{touch-action:pan-x pan-y}.mapboxgl-canvas-container.mapboxgl-touch-drag-pan,.mapboxgl-canvas-container.mapboxgl-touch-drag-pan .mapboxgl-canvas{touch-action:pinch-zoom}.mapboxgl-canvas-container.mapboxgl-touch-zoom-rotate.mapboxgl-touch-drag-pan,.mapboxgl-canvas-container.mapboxgl-touch-zoom-rotate.mapboxgl-touch-drag-pan .mapboxgl-canvas{touch-action:none}.mapboxgl-ctrl-bottom,.mapboxgl-ctrl-bottom-left,.mapboxgl-ctrl-bottom-right,.mapboxgl-ctrl-left,.mapboxgl-ctrl-right,.mapboxgl-ctrl-top,.mapboxgl-ctrl-top-left,.mapboxgl-ctrl-top-right{pointer-events:none;position:absolute;z-index:2}.mapboxgl-ctrl-top-left{left:0;top:0}.mapboxgl-ctrl-top{left:50%;top:0;transform:translate(-50%)}.mapboxgl-ctrl-top-right{right:0;top:0}.mapboxgl-ctrl-right{right:0;top:50%;transform:translateY(-50%)}.mapboxgl-ctrl-bottom-right{bottom:0;right:0}.mapboxgl-ctrl-bottom{bottom:0;left:50%;transform:translate(-50%)}.mapboxgl-ctrl-bottom-left{bottom:0;left:0}.mapboxgl-ctrl-left{left:0;top:50%;transform:translateY(-50%)}.mapboxgl-ctrl{clear:both;pointer-events:auto;transform:translate(0)}.mapboxgl-ctrl-top-left .mapboxgl-ctrl{float:left;margin:10px 0 0 10px}.mapboxgl-ctrl-top .mapboxgl-ctrl{float:left;margin:10px 0}.mapboxgl-ctrl-top-right .mapboxgl-ctrl{float:right;margin:10px 10px 0 0}.mapboxgl-ctrl-bottom-right .mapboxgl-ctrl,.mapboxgl-ctrl-right .mapboxgl-ctrl{float:right;margin:0 10px 10px 0}.mapboxgl-ctrl-bottom .mapboxgl-ctrl{float:left;margin:10px 0}.mapboxgl-ctrl-bottom-left .mapboxgl-ctrl,.mapboxgl-ctrl-left .mapboxgl-ctrl{float:left;margin:0 0 10px 10px}.mapboxgl-ctrl-group{background:#fff;border-radius:4px}.mapboxgl-ctrl-group:not(:empty){box-shadow:0 0 0 2px #0000001a}@media(-ms-high-contrast:active){.mapboxgl-ctrl-group:not(:empty){box-shadow:0 0 0 2px ButtonText}}.mapboxgl-ctrl-group button{background-color:initial;border:0;box-sizing:border-box;cursor:pointer;display:block;height:29px;outline:none;overflow:hidden;padding:0;width:29px}.mapboxgl-ctrl-group button+button{border-top:1px solid #ddd}.mapboxgl-ctrl button .mapboxgl-ctrl-icon{background-position:50%;background-repeat:no-repeat;display:block;height:100%;width:100%}@media(-ms-high-contrast:active){.mapboxgl-ctrl-icon{background-color:initial}.mapboxgl-ctrl-group button+button{border-top:1px solid ButtonText}}.mapboxgl-ctrl-attrib-button:focus,.mapboxgl-ctrl-group button:focus{box-shadow:0 0 2px 2px #0096ff}.mapboxgl-ctrl button:disabled{cursor:not-allowed}.mapboxgl-ctrl button:disabled .mapboxgl-ctrl-icon{opacity:.25}.mapboxgl-ctrl-group button:first-child{border-radius:4px 4px 0 0}.mapboxgl-ctrl-group button:last-child{border-radius:0 0 4px 4px}.mapboxgl-ctrl-group button:only-child{border-radius:inherit}.mapboxgl-ctrl button:not(:disabled):hover{background-color:#0000000d}.mapboxgl-ctrl-group button:focus:focus-visible{box-shadow:0 0 2px 2px #0096ff}.mapboxgl-ctrl-group button:focus:not(:focus-visible){box-shadow:none}.mapboxgl-ctrl button.mapboxgl-ctrl-zoom-out .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23333' viewBox='0 0 29 29'%3E%3Cpath d='M10 13c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h9c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-9z'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-zoom-in .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23333' viewBox='0 0 29 29'%3E%3Cpath d='M14.5 8.5c-.75 0-1.5.75-1.5 1.5v3h-3c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h3v3c0 .75.75 1.5 1.5 1.5S16 19.75 16 19v-3h3c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-3v-3c0-.75-.75-1.5-1.5-1.5z'/%3E%3C/svg%3E")}@media(-ms-high-contrast:active){.mapboxgl-ctrl button.mapboxgl-ctrl-zoom-out .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='M10 13c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h9c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-9z'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-zoom-in .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='M14.5 8.5c-.75 0-1.5.75-1.5 1.5v3h-3c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h3v3c0 .75.75 1.5 1.5 1.5S16 19.75 16 19v-3h3c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-3v-3c0-.75-.75-1.5-1.5-1.5z'/%3E%3C/svg%3E")}}@media(-ms-high-contrast:black-on-white){.mapboxgl-ctrl button.mapboxgl-ctrl-zoom-out .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23000' viewBox='0 0 29 29'%3E%3Cpath d='M10 13c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h9c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-9z'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-zoom-in .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23000' viewBox='0 0 29 29'%3E%3Cpath d='M14.5 8.5c-.75 0-1.5.75-1.5 1.5v3h-3c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h3v3c0 .75.75 1.5 1.5 1.5S16 19.75 16 19v-3h3c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-3v-3c0-.75-.75-1.5-1.5-1.5z'/%3E%3C/svg%3E")}}.mapboxgl-ctrl button.mapboxgl-ctrl-fullscreen .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23333' viewBox='0 0 29 29'%3E%3Cpath d='M24 16v5.5c0 1.75-.75 2.5-2.5 2.5H16v-1l3-1.5-4-5.5 1-1 5.5 4 1.5-3h1zM6 16l1.5 3 5.5-4 1 1-4 5.5 3 1.5v1H7.5C5.75 24 5 23.25 5 21.5V16h1zm7-11v1l-3 1.5 4 5.5-1 1-5.5-4L6 13H5V7.5C5 5.75 5.75 5 7.5 5H13zm11 2.5c0-1.75-.75-2.5-2.5-2.5H16v1l3 1.5-4 5.5 1 1 5.5-4 1.5 3h1V7.5z'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-shrink .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 29 29'%3E%3Cpath d='M18.5 16c-1.75 0-2.5.75-2.5 2.5V24h1l1.5-3 5.5 4 1-1-4-5.5 3-1.5v-1h-5.5zM13 18.5c0-1.75-.75-2.5-2.5-2.5H5v1l3 1.5L4 24l1 1 5.5-4 1.5 3h1v-5.5zm3-8c0 1.75.75 2.5 2.5 2.5H24v-1l-3-1.5L25 5l-1-1-5.5 4L17 5h-1v5.5zM10.5 13c1.75 0 2.5-.75 2.5-2.5V5h-1l-1.5 3L5 4 4 5l4 5.5L5 12v1h5.5z'/%3E%3C/svg%3E")}@media(-ms-high-contrast:active){.mapboxgl-ctrl button.mapboxgl-ctrl-fullscreen .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='M24 16v5.5c0 1.75-.75 2.5-2.5 2.5H16v-1l3-1.5-4-5.5 1-1 5.5 4 1.5-3h1zM6 16l1.5 3 5.5-4 1 1-4 5.5 3 1.5v1H7.5C5.75 24 5 23.25 5 21.5V16h1zm7-11v1l-3 1.5 4 5.5-1 1-5.5-4L6 13H5V7.5C5 5.75 5.75 5 7.5 5H13zm11 2.5c0-1.75-.75-2.5-2.5-2.5H16v1l3 1.5-4 5.5 1 1 5.5-4 1.5 3h1V7.5z'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-shrink .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='M18.5 16c-1.75 0-2.5.75-2.5 2.5V24h1l1.5-3 5.5 4 1-1-4-5.5 3-1.5v-1h-5.5zM13 18.5c0-1.75-.75-2.5-2.5-2.5H5v1l3 1.5L4 24l1 1 5.5-4 1.5 3h1v-5.5zm3-8c0 1.75.75 2.5 2.5 2.5H24v-1l-3-1.5L25 5l-1-1-5.5 4L17 5h-1v5.5zM10.5 13c1.75 0 2.5-.75 2.5-2.5V5h-1l-1.5 3L5 4 4 5l4 5.5L5 12v1h5.5z'/%3E%3C/svg%3E")}}@media(-ms-high-contrast:black-on-white){.mapboxgl-ctrl button.mapboxgl-ctrl-fullscreen .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23000' viewBox='0 0 29 29'%3E%3Cpath d='M24 16v5.5c0 1.75-.75 2.5-2.5 2.5H16v-1l3-1.5-4-5.5 1-1 5.5 4 1.5-3h1zM6 16l1.5 3 5.5-4 1 1-4 5.5 3 1.5v1H7.5C5.75 24 5 23.25 5 21.5V16h1zm7-11v1l-3 1.5 4 5.5-1 1-5.5-4L6 13H5V7.5C5 5.75 5.75 5 7.5 5H13zm11 2.5c0-1.75-.75-2.5-2.5-2.5H16v1l3 1.5-4 5.5 1 1 5.5-4 1.5 3h1V7.5z'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-shrink .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23000' viewBox='0 0 29 29'%3E%3Cpath d='M18.5 16c-1.75 0-2.5.75-2.5 2.5V24h1l1.5-3 5.5 4 1-1-4-5.5 3-1.5v-1h-5.5zM13 18.5c0-1.75-.75-2.5-2.5-2.5H5v1l3 1.5L4 24l1 1 5.5-4 1.5 3h1v-5.5zm3-8c0 1.75.75 2.5 2.5 2.5H24v-1l-3-1.5L25 5l-1-1-5.5 4L17 5h-1v5.5zM10.5 13c1.75 0 2.5-.75 2.5-2.5V5h-1l-1.5 3L5 4 4 5l4 5.5L5 12v1h5.5z'/%3E%3C/svg%3E")}}.mapboxgl-ctrl button.mapboxgl-ctrl-compass .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23333' viewBox='0 0 29 29'%3E%3Cpath d='M10.5 14l4-8 4 8h-8z'/%3E%3Cpath id='south' d='M10.5 16l4 8 4-8h-8z' fill='%23ccc'/%3E%3C/svg%3E")}@media(-ms-high-contrast:active){.mapboxgl-ctrl button.mapboxgl-ctrl-compass .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='M10.5 14l4-8 4 8h-8z'/%3E%3Cpath id='south' d='M10.5 16l4 8 4-8h-8z' fill='%23999'/%3E%3C/svg%3E")}}@media(-ms-high-contrast:black-on-white){.mapboxgl-ctrl button.mapboxgl-ctrl-compass .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23000' viewBox='0 0 29 29'%3E%3Cpath d='M10.5 14l4-8 4 8h-8z'/%3E%3Cpath id='south' d='M10.5 16l4 8 4-8h-8z' fill='%23ccc'/%3E%3C/svg%3E")}}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23333'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-buildings-toggle .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg fill='none' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3E%3Cpath d='M3.3335 11.6666C3.3335 12.5871 4.07969 13.3333 5.00016 13.3333C5.92064 13.3333 6.66683 12.5871 6.66683 11.6666L6.66683 6.66659L11.6668 6.66659C12.5873 6.66659 13.3335 5.92039 13.3335 4.99992C13.3335 4.07944 12.5873 3.33325 11.6668 3.33325H3.3335V11.6666Z' fill='currentColor'/%3E%3Cpath d='M26.6668 11.6666C26.6668 12.5871 25.9206 13.3333 25.0002 13.3333C24.0797 13.3333 23.3335 12.5871 23.3335 11.6666L23.3335 6.66659L18.3335 6.66659C17.413 6.66659 16.6668 5.92039 16.6668 4.99992C16.6668 4.07944 17.413 3.33325 18.3335 3.33325H26.6668L26.6668 11.6666Z' fill='currentColor'/%3E%3Cpath d='M13.3335 24.9999C13.3335 25.9204 12.5873 26.6666 11.6668 26.6666H3.3335V18.3333C3.3335 17.4128 4.07969 16.6666 5.00016 16.6666C5.92064 16.6666 6.66683 17.4128 6.66683 18.3333V23.3333H11.6668C12.5873 23.3333 13.3335 24.0794 13.3335 24.9999Z' fill='currentColor'/%3E%3Cpath d='M18.3335 26.6666C17.413 26.6666 16.6668 25.9204 16.6668 24.9999C16.6668 24.0794 17.413 23.3333 18.3335 23.3333H23.3335V18.3333C23.3335 17.4128 24.0797 16.6666 25.0002 16.6666C25.9206 16.6666 26.6668 17.4128 26.6668 18.3333V26.6666H18.3335Z' fill='currentColor'/%3E%3C/svg%3E");background-size:26px 26px}.mapboxgl-ctrl button.mapboxgl-ctrl-buildings-toggle.mapboxgl-ctrl-level-button-selected .mapboxgl-ctrl-icon{filter:invert(1) brightness(1)}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate:disabled .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23aaa'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' fill='%23f00'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-active .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%2333b5e5'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-active-error .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23e58978'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-background .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%2333b5e5'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2' display='none'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-background-error .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23e54e33'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2' display='none'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-waiting .mapboxgl-ctrl-icon{animation:mapboxgl-spin 2s linear infinite}@media(-ms-high-contrast:active){.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23fff'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate:disabled .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23999'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' fill='%23f00'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-active .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%2333b5e5'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-active-error .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23e58978'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-background .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%2333b5e5'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2' display='none'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-background-error .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23e54e33'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2' display='none'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E")}}@media(-ms-high-contrast:black-on-white){.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23000'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate:disabled .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23666'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' fill='%23f00'/%3E%3C/svg%3E")}}@keyframes mapboxgl-spin{0%{transform:rotate(0)}to{transform:rotate(1turn)}}a.mapboxgl-ctrl-logo{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' fill-rule='evenodd' viewBox='0 0 88 23'%3E%3Cdefs%3E%3Cpath id='logo' d='M11.5 2.25c5.105 0 9.25 4.145 9.25 9.25s-4.145 9.25-9.25 9.25-9.25-4.145-9.25-9.25 4.145-9.25 9.25-9.25zM6.997 15.983c-.051-.338-.828-5.802 2.233-8.873a4.395 4.395 0 013.13-1.28c1.27 0 2.49.51 3.39 1.42.91.9 1.42 2.12 1.42 3.39 0 1.18-.449 2.301-1.28 3.13C12.72 16.93 7 16 7 16l-.003-.017zM15.3 10.5l-2 .8-.8 2-.8-2-2-.8 2-.8.8-2 .8 2 2 .8z'/%3E%3Cpath id='text' d='M50.63 8c.13 0 .23.1.23.23V9c.7-.76 1.7-1.18 2.73-1.18 2.17 0 3.95 1.85 3.95 4.17s-1.77 4.19-3.94 4.19c-1.04 0-2.03-.43-2.74-1.18v3.77c0 .13-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V8.23c0-.12.1-.23.23-.23h1.4zm-3.86.01c.01 0 .01 0 .01-.01.13 0 .22.1.22.22v7.55c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V15c-.7.76-1.69 1.19-2.73 1.19-2.17 0-3.94-1.87-3.94-4.19 0-2.32 1.77-4.19 3.94-4.19 1.03 0 2.02.43 2.73 1.18v-.75c0-.12.1-.23.23-.23h1.4zm26.375-.19a4.24 4.24 0 00-4.16 3.29c-.13.59-.13 1.19 0 1.77a4.233 4.233 0 004.17 3.3c2.35 0 4.26-1.87 4.26-4.19 0-2.32-1.9-4.17-4.27-4.17zM60.63 5c.13 0 .23.1.23.23v3.76c.7-.76 1.7-1.18 2.73-1.18 1.88 0 3.45 1.4 3.84 3.28.13.59.13 1.2 0 1.8-.39 1.88-1.96 3.29-3.84 3.29-1.03 0-2.02-.43-2.73-1.18v.77c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V5.23c0-.12.1-.23.23-.23h1.4zm-34 11h-1.4c-.13 0-.23-.11-.23-.23V8.22c.01-.13.1-.22.23-.22h1.4c.13 0 .22.11.23.22v.68c.5-.68 1.3-1.09 2.16-1.1h.03c1.09 0 2.09.6 2.6 1.55.45-.95 1.4-1.55 2.44-1.56 1.62 0 2.93 1.25 2.9 2.78l.03 5.2c0 .13-.1.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.8 0-1.46.7-1.59 1.62l.01 4.68c0 .13-.11.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.85 0-1.54.79-1.6 1.8v4.5c0 .13-.1.23-.23.23zm53.615 0h-1.61c-.04 0-.08-.01-.12-.03-.09-.06-.13-.19-.06-.28l2.43-3.71-2.39-3.65a.213.213 0 01-.03-.12c0-.12.09-.21.21-.21h1.61c.13 0 .24.06.3.17l1.41 2.37 1.4-2.37a.34.34 0 01.3-.17h1.6c.04 0 .08.01.12.03.09.06.13.19.06.28l-2.37 3.65 2.43 3.7c0 .05.01.09.01.13 0 .12-.09.21-.21.21h-1.61c-.13 0-.24-.06-.3-.17l-1.44-2.42-1.44 2.42a.34.34 0 01-.3.17zm-7.12-1.49c-1.33 0-2.42-1.12-2.42-2.51 0-1.39 1.08-2.52 2.42-2.52 1.33 0 2.42 1.12 2.42 2.51 0 1.39-1.08 2.51-2.42 2.52zm-19.865 0c-1.32 0-2.39-1.11-2.42-2.48v-.07c.02-1.38 1.09-2.49 2.4-2.49 1.32 0 2.41 1.12 2.41 2.51 0 1.39-1.07 2.52-2.39 2.53zm-8.11-2.48c-.01 1.37-1.09 2.47-2.41 2.47s-2.42-1.12-2.42-2.51c0-1.39 1.08-2.52 2.4-2.52 1.33 0 2.39 1.11 2.41 2.48l.02.08zm18.12 2.47c-1.32 0-2.39-1.11-2.41-2.48v-.06c.02-1.38 1.09-2.48 2.41-2.48s2.42 1.12 2.42 2.51c0 1.39-1.09 2.51-2.42 2.51z'/%3E%3C/defs%3E%3Cmask id='clip'%3E%3Crect x='0' y='0' width='100%25' height='100%25' fill='white'/%3E%3Cuse xlink:href='%23logo'/%3E%3Cuse xlink:href='%23text'/%3E%3C/mask%3E%3Cg id='outline' opacity='0.3' stroke='%23000' stroke-width='3'%3E%3Ccircle mask='url(%23clip)' cx='11.5' cy='11.5' r='9.25'/%3E%3Cuse xlink:href='%23text' mask='url(%23clip)'/%3E%3C/g%3E%3Cg id='fill' opacity='0.9' fill='%23fff'%3E%3Cuse xlink:href='%23logo'/%3E%3Cuse xlink:href='%23text'/%3E%3C/g%3E%3C/svg%3E");background-repeat:no-repeat;cursor:pointer;display:block;height:23px;margin:0 0 -4px -4px;overflow:hidden;width:88px}a.mapboxgl-ctrl-logo.mapboxgl-compact{width:23px}@media(-ms-high-contrast:active){a.mapboxgl-ctrl-logo{background-color:initial;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' fill-rule='evenodd' viewBox='0 0 88 23'%3E%3Cdefs%3E%3Cpath id='logo' d='M11.5 2.25c5.105 0 9.25 4.145 9.25 9.25s-4.145 9.25-9.25 9.25-9.25-4.145-9.25-9.25 4.145-9.25 9.25-9.25zM6.997 15.983c-.051-.338-.828-5.802 2.233-8.873a4.395 4.395 0 013.13-1.28c1.27 0 2.49.51 3.39 1.42.91.9 1.42 2.12 1.42 3.39 0 1.18-.449 2.301-1.28 3.13C12.72 16.93 7 16 7 16l-.003-.017zM15.3 10.5l-2 .8-.8 2-.8-2-2-.8 2-.8.8-2 .8 2 2 .8z'/%3E%3Cpath id='text' d='M50.63 8c.13 0 .23.1.23.23V9c.7-.76 1.7-1.18 2.73-1.18 2.17 0 3.95 1.85 3.95 4.17s-1.77 4.19-3.94 4.19c-1.04 0-2.03-.43-2.74-1.18v3.77c0 .13-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V8.23c0-.12.1-.23.23-.23h1.4zm-3.86.01c.01 0 .01 0 .01-.01.13 0 .22.1.22.22v7.55c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V15c-.7.76-1.69 1.19-2.73 1.19-2.17 0-3.94-1.87-3.94-4.19 0-2.32 1.77-4.19 3.94-4.19 1.03 0 2.02.43 2.73 1.18v-.75c0-.12.1-.23.23-.23h1.4zm26.375-.19a4.24 4.24 0 00-4.16 3.29c-.13.59-.13 1.19 0 1.77a4.233 4.233 0 004.17 3.3c2.35 0 4.26-1.87 4.26-4.19 0-2.32-1.9-4.17-4.27-4.17zM60.63 5c.13 0 .23.1.23.23v3.76c.7-.76 1.7-1.18 2.73-1.18 1.88 0 3.45 1.4 3.84 3.28.13.59.13 1.2 0 1.8-.39 1.88-1.96 3.29-3.84 3.29-1.03 0-2.02-.43-2.73-1.18v.77c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V5.23c0-.12.1-.23.23-.23h1.4zm-34 11h-1.4c-.13 0-.23-.11-.23-.23V8.22c.01-.13.1-.22.23-.22h1.4c.13 0 .22.11.23.22v.68c.5-.68 1.3-1.09 2.16-1.1h.03c1.09 0 2.09.6 2.6 1.55.45-.95 1.4-1.55 2.44-1.56 1.62 0 2.93 1.25 2.9 2.78l.03 5.2c0 .13-.1.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.8 0-1.46.7-1.59 1.62l.01 4.68c0 .13-.11.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.85 0-1.54.79-1.6 1.8v4.5c0 .13-.1.23-.23.23zm53.615 0h-1.61c-.04 0-.08-.01-.12-.03-.09-.06-.13-.19-.06-.28l2.43-3.71-2.39-3.65a.213.213 0 01-.03-.12c0-.12.09-.21.21-.21h1.61c.13 0 .24.06.3.17l1.41 2.37 1.4-2.37a.34.34 0 01.3-.17h1.6c.04 0 .08.01.12.03.09.06.13.19.06.28l-2.37 3.65 2.43 3.7c0 .05.01.09.01.13 0 .12-.09.21-.21.21h-1.61c-.13 0-.24-.06-.3-.17l-1.44-2.42-1.44 2.42a.34.34 0 01-.3.17zm-7.12-1.49c-1.33 0-2.42-1.12-2.42-2.51 0-1.39 1.08-2.52 2.42-2.52 1.33 0 2.42 1.12 2.42 2.51 0 1.39-1.08 2.51-2.42 2.52zm-19.865 0c-1.32 0-2.39-1.11-2.42-2.48v-.07c.02-1.38 1.09-2.49 2.4-2.49 1.32 0 2.41 1.12 2.41 2.51 0 1.39-1.07 2.52-2.39 2.53zm-8.11-2.48c-.01 1.37-1.09 2.47-2.41 2.47s-2.42-1.12-2.42-2.51c0-1.39 1.08-2.52 2.4-2.52 1.33 0 2.39 1.11 2.41 2.48l.02.08zm18.12 2.47c-1.32 0-2.39-1.11-2.41-2.48v-.06c.02-1.38 1.09-2.48 2.41-2.48s2.42 1.12 2.42 2.51c0 1.39-1.09 2.51-2.42 2.51z'/%3E%3C/defs%3E%3Cmask id='clip'%3E%3Crect x='0' y='0' width='100%25' height='100%25' fill='white'/%3E%3Cuse xlink:href='%23logo'/%3E%3Cuse xlink:href='%23text'/%3E%3C/mask%3E%3Cg id='outline' opacity='1' stroke='%23000' stroke-width='3'%3E%3Ccircle mask='url(%23clip)' cx='11.5' cy='11.5' r='9.25'/%3E%3Cuse xlink:href='%23text' mask='url(%23clip)'/%3E%3C/g%3E%3Cg id='fill' opacity='1' fill='%23fff'%3E%3Cuse xlink:href='%23logo'/%3E%3Cuse xlink:href='%23text'/%3E%3C/g%3E%3C/svg%3E")}}@media(-ms-high-contrast:black-on-white){a.mapboxgl-ctrl-logo{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' fill-rule='evenodd' viewBox='0 0 88 23'%3E%3Cdefs%3E%3Cpath id='logo' d='M11.5 2.25c5.105 0 9.25 4.145 9.25 9.25s-4.145 9.25-9.25 9.25-9.25-4.145-9.25-9.25 4.145-9.25 9.25-9.25zM6.997 15.983c-.051-.338-.828-5.802 2.233-8.873a4.395 4.395 0 013.13-1.28c1.27 0 2.49.51 3.39 1.42.91.9 1.42 2.12 1.42 3.39 0 1.18-.449 2.301-1.28 3.13C12.72 16.93 7 16 7 16l-.003-.017zM15.3 10.5l-2 .8-.8 2-.8-2-2-.8 2-.8.8-2 .8 2 2 .8z'/%3E%3Cpath id='text' d='M50.63 8c.13 0 .23.1.23.23V9c.7-.76 1.7-1.18 2.73-1.18 2.17 0 3.95 1.85 3.95 4.17s-1.77 4.19-3.94 4.19c-1.04 0-2.03-.43-2.74-1.18v3.77c0 .13-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V8.23c0-.12.1-.23.23-.23h1.4zm-3.86.01c.01 0 .01 0 .01-.01.13 0 .22.1.22.22v7.55c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V15c-.7.76-1.69 1.19-2.73 1.19-2.17 0-3.94-1.87-3.94-4.19 0-2.32 1.77-4.19 3.94-4.19 1.03 0 2.02.43 2.73 1.18v-.75c0-.12.1-.23.23-.23h1.4zm26.375-.19a4.24 4.24 0 00-4.16 3.29c-.13.59-.13 1.19 0 1.77a4.233 4.233 0 004.17 3.3c2.35 0 4.26-1.87 4.26-4.19 0-2.32-1.9-4.17-4.27-4.17zM60.63 5c.13 0 .23.1.23.23v3.76c.7-.76 1.7-1.18 2.73-1.18 1.88 0 3.45 1.4 3.84 3.28.13.59.13 1.2 0 1.8-.39 1.88-1.96 3.29-3.84 3.29-1.03 0-2.02-.43-2.73-1.18v.77c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V5.23c0-.12.1-.23.23-.23h1.4zm-34 11h-1.4c-.13 0-.23-.11-.23-.23V8.22c.01-.13.1-.22.23-.22h1.4c.13 0 .22.11.23.22v.68c.5-.68 1.3-1.09 2.16-1.1h.03c1.09 0 2.09.6 2.6 1.55.45-.95 1.4-1.55 2.44-1.56 1.62 0 2.93 1.25 2.9 2.78l.03 5.2c0 .13-.1.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.8 0-1.46.7-1.59 1.62l.01 4.68c0 .13-.11.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.85 0-1.54.79-1.6 1.8v4.5c0 .13-.1.23-.23.23zm53.615 0h-1.61c-.04 0-.08-.01-.12-.03-.09-.06-.13-.19-.06-.28l2.43-3.71-2.39-3.65a.213.213 0 01-.03-.12c0-.12.09-.21.21-.21h1.61c.13 0 .24.06.3.17l1.41 2.37 1.4-2.37a.34.34 0 01.3-.17h1.6c.04 0 .08.01.12.03.09.06.13.19.06.28l-2.37 3.65 2.43 3.7c0 .05.01.09.01.13 0 .12-.09.21-.21.21h-1.61c-.13 0-.24-.06-.3-.17l-1.44-2.42-1.44 2.42a.34.34 0 01-.3.17zm-7.12-1.49c-1.33 0-2.42-1.12-2.42-2.51 0-1.39 1.08-2.52 2.42-2.52 1.33 0 2.42 1.12 2.42 2.51 0 1.39-1.08 2.51-2.42 2.52zm-19.865 0c-1.32 0-2.39-1.11-2.42-2.48v-.07c.02-1.38 1.09-2.49 2.4-2.49 1.32 0 2.41 1.12 2.41 2.51 0 1.39-1.07 2.52-2.39 2.53zm-8.11-2.48c-.01 1.37-1.09 2.47-2.41 2.47s-2.42-1.12-2.42-2.51c0-1.39 1.08-2.52 2.4-2.52 1.33 0 2.39 1.11 2.41 2.48l.02.08zm18.12 2.47c-1.32 0-2.39-1.11-2.41-2.48v-.06c.02-1.38 1.09-2.48 2.41-2.48s2.42 1.12 2.42 2.51c0 1.39-1.09 2.51-2.42 2.51z'/%3E%3C/defs%3E%3Cmask id='clip'%3E%3Crect x='0' y='0' width='100%25' height='100%25' fill='white'/%3E%3Cuse xlink:href='%23logo'/%3E%3Cuse xlink:href='%23text'/%3E%3C/mask%3E%3Cg id='outline' opacity='1' stroke='%23fff' stroke-width='3' fill='%23fff'%3E%3Ccircle mask='url(%23clip)' cx='11.5' cy='11.5' r='9.25'/%3E%3Cuse xlink:href='%23text' mask='url(%23clip)'/%3E%3C/g%3E%3Cg id='fill' opacity='1' fill='%23000'%3E%3Cuse xlink:href='%23logo'/%3E%3Cuse xlink:href='%23text'/%3E%3C/g%3E%3C/svg%3E")}}.mapboxgl-ctrl.mapboxgl-ctrl-attrib{background-color:#ffffff80;margin:0;padding:0 5px}@media screen{.mapboxgl-ctrl-attrib.mapboxgl-compact{background-color:#fff;border-radius:12px;box-sizing:initial;margin:10px;min-height:20px;padding:2px 24px 2px 0;position:relative}.mapboxgl-ctrl-attrib.mapboxgl-compact-show{padding:2px 28px 2px 8px;visibility:visible}.mapboxgl-ctrl-bottom-left>.mapboxgl-ctrl-attrib.mapboxgl-compact-show,.mapboxgl-ctrl-left>.mapboxgl-ctrl-attrib.mapboxgl-compact-show,.mapboxgl-ctrl-top-left>.mapboxgl-ctrl-attrib.mapboxgl-compact-show{border-radius:12px;padding:2px 8px 2px 28px}.mapboxgl-ctrl-attrib.mapboxgl-compact .mapboxgl-ctrl-attrib-inner{display:none}.mapboxgl-ctrl-attrib-button{background-color:#ffffff80;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill-rule='evenodd'%3E%3Cpath d='M4 10a6 6 0 1 0 12 0 6 6 0 1 0-12 0m5-3a1 1 0 1 0 2 0 1 1 0 1 0-2 0m0 3a1 1 0 1 1 2 0v3a1 1 0 1 1-2 0'/%3E%3C/svg%3E");border:0;border-radius:12px;box-sizing:border-box;cursor:pointer;display:none;height:24px;outline:none;position:absolute;right:0;top:0;width:24px}.mapboxgl-ctrl-bottom-left .mapboxgl-ctrl-attrib-button,.mapboxgl-ctrl-left .mapboxgl-ctrl-attrib-button,.mapboxgl-ctrl-top-left .mapboxgl-ctrl-attrib-button{left:0}.mapboxgl-ctrl-attrib.mapboxgl-compact .mapboxgl-ctrl-attrib-button,.mapboxgl-ctrl-attrib.mapboxgl-compact-show .mapboxgl-ctrl-attrib-inner{display:block}.mapboxgl-ctrl-attrib.mapboxgl-compact-show .mapboxgl-ctrl-attrib-button{background-color:#0000000d}.mapboxgl-ctrl-bottom-right>.mapboxgl-ctrl-attrib.mapboxgl-compact:after{bottom:0;right:0}.mapboxgl-ctrl-right>.mapboxgl-ctrl-attrib.mapboxgl-compact:after{right:0}.mapboxgl-ctrl-top-right>.mapboxgl-ctrl-attrib.mapboxgl-compact:after{right:0;top:0}.mapboxgl-ctrl-top-left>.mapboxgl-ctrl-attrib.mapboxgl-compact:after{left:0;top:0}.mapboxgl-ctrl-bottom-left>.mapboxgl-ctrl-attrib.mapboxgl-compact:after{bottom:0;left:0}.mapboxgl-ctrl-left>.mapboxgl-ctrl-attrib.mapboxgl-compact:after{left:0}}@media screen and (-ms-high-contrast:active){.mapboxgl-ctrl-attrib.mapboxgl-compact:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill-rule='evenodd' fill='%23fff'%3E%3Cpath d='M4 10a6 6 0 1 0 12 0 6 6 0 1 0-12 0m5-3a1 1 0 1 0 2 0 1 1 0 1 0-2 0m0 3a1 1 0 1 1 2 0v3a1 1 0 1 1-2 0'/%3E%3C/svg%3E")}}@media screen and (-ms-high-contrast:black-on-white){.mapboxgl-ctrl-attrib.mapboxgl-compact:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill-rule='evenodd'%3E%3Cpath d='M4 10a6 6 0 1 0 12 0 6 6 0 1 0-12 0m5-3a1 1 0 1 0 2 0 1 1 0 1 0-2 0m0 3a1 1 0 1 1 2 0v3a1 1 0 1 1-2 0'/%3E%3C/svg%3E")}}.mapboxgl-ctrl-attrib a{color:#000000bf;text-decoration:none}.mapboxgl-ctrl-attrib a:hover{color:inherit;text-decoration:underline}.mapboxgl-ctrl-attrib .mapbox-improve-map{font-weight:700;margin-left:2px}.mapboxgl-attrib-empty{display:none}.mapboxgl-ctrl-scale{background-color:#ffffffbf;border:2px solid #333;border-top:#333;box-sizing:border-box;color:#333;font-size:10px;padding:0 5px;white-space:nowrap}.mapboxgl-popup{display:flex;left:0;pointer-events:none;position:absolute;top:0;will-change:transform}.mapboxgl-popup-anchor-top,.mapboxgl-popup-anchor-top-left,.mapboxgl-popup-anchor-top-right{flex-direction:column}.mapboxgl-popup-anchor-bottom,.mapboxgl-popup-anchor-bottom-left,.mapboxgl-popup-anchor-bottom-right{flex-direction:column-reverse}.mapboxgl-popup-anchor-left{flex-direction:row}.mapboxgl-popup-anchor-right{flex-direction:row-reverse}.mapboxgl-popup-tip{border:10px solid #0000;height:0;width:0;z-index:1}.mapboxgl-popup-anchor-top .mapboxgl-popup-tip{align-self:center;border-bottom-color:#fff;border-top:none}.mapboxgl-popup-anchor-top-left .mapboxgl-popup-tip{align-self:flex-start;border-bottom-color:#fff;border-left:none;border-top:none}.mapboxgl-popup-anchor-top-right .mapboxgl-popup-tip{align-self:flex-end;border-bottom-color:#fff;border-right:none;border-top:none}.mapboxgl-popup-anchor-bottom .mapboxgl-popup-tip{align-self:center;border-bottom:none;border-top-color:#fff}.mapboxgl-popup-anchor-bottom-left .mapboxgl-popup-tip{align-self:flex-start;border-bottom:none;border-left:none;border-top-color:#fff}.mapboxgl-popup-anchor-bottom-right .mapboxgl-popup-tip{align-self:flex-end;border-bottom:none;border-right:none;border-top-color:#fff}.mapboxgl-popup-anchor-left .mapboxgl-popup-tip{align-self:center;border-left:none;border-right-color:#fff}.mapboxgl-popup-anchor-right .mapboxgl-popup-tip{align-self:center;border-left-color:#fff;border-right:none}.mapboxgl-popup-close-button{background-color:initial;border:0;border-radius:0 3px 0 0;cursor:pointer;position:absolute;right:0;top:0}.mapboxgl-popup-close-button:hover{background-color:#0000000d}.mapboxgl-popup-content{background:#fff;border-radius:3px;box-shadow:0 1px 2px #0000001a;padding:10px 10px 15px;pointer-events:auto;position:relative}.mapboxgl-popup-anchor-top-left .mapboxgl-popup-content{border-top-left-radius:0}.mapboxgl-popup-anchor-top-right .mapboxgl-popup-content{border-top-right-radius:0}.mapboxgl-popup-anchor-bottom-left .mapboxgl-popup-content{border-bottom-left-radius:0}.mapboxgl-popup-anchor-bottom-right .mapboxgl-popup-content{border-bottom-right-radius:0}.mapboxgl-popup-track-pointer{display:none}.mapboxgl-popup-track-pointer *{pointer-events:none;-webkit-user-select:none;user-select:none}.mapboxgl-map:hover .mapboxgl-popup-track-pointer{display:flex}.mapboxgl-map:active .mapboxgl-popup-track-pointer{display:none}.mapboxgl-marker{left:0;opacity:1;position:absolute;top:0;transition:opacity .2s;will-change:transform}.mapboxgl-user-location-dot,.mapboxgl-user-location-dot:before{background-color:#1da1f2;border-radius:50%;height:15px;width:15px}.mapboxgl-user-location-dot:before{animation:mapboxgl-user-location-dot-pulse 2s infinite;content:"";position:absolute}.mapboxgl-user-location-dot:after{border:2px solid #fff;border-radius:50%;box-shadow:0 0 3px #00000059;box-sizing:border-box;content:"";height:19px;left:-2px;position:absolute;top:-2px;width:19px}.mapboxgl-user-location-show-heading .mapboxgl-user-location-heading{height:0;width:0}.mapboxgl-user-location-show-heading .mapboxgl-user-location-heading:after,.mapboxgl-user-location-show-heading .mapboxgl-user-location-heading:before{border-bottom:7.5px solid #4aa1eb;content:"";position:absolute}.mapboxgl-user-location-show-heading .mapboxgl-user-location-heading:before{border-left:7.5px solid #0000;transform:translateY(-28px) skewY(-20deg)}.mapboxgl-user-location-show-heading .mapboxgl-user-location-heading:after{border-right:7.5px solid #0000;transform:translate(7.5px,-28px) skewY(20deg)}@keyframes mapboxgl-user-location-dot-pulse{0%{opacity:1;transform:scale(1)}70%{opacity:0;transform:scale(3)}to{opacity:0;transform:scale(1)}}.mapboxgl-user-location-dot-stale{background-color:#aaa}.mapboxgl-user-location-dot-stale:after{display:none}.mapboxgl-user-location-accuracy-circle{background-color:#1da1f233;border-radius:100%;height:1px;width:1px}.mapboxgl-crosshair,.mapboxgl-crosshair .mapboxgl-interactive,.mapboxgl-crosshair .mapboxgl-interactive:active{cursor:crosshair}.mapboxgl-boxzoom{background:#fff;border:2px dotted #202020;height:0;left:0;opacity:.5;position:absolute;top:0;width:0}@media print{.mapbox-improve-map{display:none}}.mapboxgl-scroll-zoom-blocker,.mapboxgl-touch-pan-blocker{align-items:center;background:#000000b3;color:#fff;display:flex;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif;height:100%;justify-content:center;left:0;opacity:0;pointer-events:none;position:absolute;text-align:center;top:0;transition:opacity .75s ease-in-out;transition-delay:1s;width:100%}.mapboxgl-scroll-zoom-blocker-show,.mapboxgl-touch-pan-blocker-show{opacity:1;transition:opacity .1s ease-in-out}.mapboxgl-canvas-container.mapboxgl-touch-pan-blocker-override.mapboxgl-scrollable-page,.mapboxgl-canvas-container.mapboxgl-touch-pan-blocker-override.mapboxgl-scrollable-page .mapboxgl-canvas{touch-action:pan-x pan-y}.mapboxgl-ctrl-separator{background-color:#e0e0e0;height:1px}.mapboxgl-ctrl button.mapboxgl-ctrl-level-button{color:#333;font-size:18px;font-weight:700;height:50px;width:50px}.mapboxgl-ctrl button.mapboxgl-ctrl-level-button:first-child{border-top-left-radius:8px;border-top-right-radius:8px}.mapboxgl-ctrl button.mapboxgl-ctrl-level-button:last-child{border-bottom-left-radius:8px;border-bottom-right-radius:8px}.mapboxgl-ctrl button.mapboxgl-ctrl-level-button:hover{background-color:#f5f5f5}.mapboxgl-ctrl button.mapboxgl-ctrl-level-button-selected{background-color:#4a5568;color:#fff}.mapboxgl-ctrl button.mapboxgl-ctrl-level-button-selected:hover{background-color:#2d3748}`)),document.head.appendChild(o)}}catch(t){console.error("vite-plugin-css-injected-by-js",t)}})();
2
- (function(T,p){typeof exports=="object"&&typeof module<"u"?p(exports,require("react"),require("@mui/x-license"),require("mapbox-gl"),require("@tracktor/design-system"),require("react-map-gl"),require("@tracktor/react-utils")):typeof define=="function"&&define.amd?define(["exports","react","@mui/x-license","mapbox-gl","@tracktor/design-system","react-map-gl","@tracktor/react-utils"],p):(T=typeof globalThis<"u"?globalThis:T||self,p(T["@tracktor/map"]={},T.React,T.muiXLicense,T.mapboxgl,T.designSystem,T.MapboxMap,T.reactUtils))})(this,(function(T,p,fe,oe,j,x,S){"use strict";var V={exports:{}},L={};/**
2
+ (function(b,f){typeof exports=="object"&&typeof module<"u"?f(exports,require("react"),require("@mui/x-license"),require("mapbox-gl"),require("@tracktor/design-system"),require("react-map-gl"),require("@tracktor/react-utils")):typeof define=="function"&&define.amd?define(["exports","react","@mui/x-license","mapbox-gl","@tracktor/design-system","react-map-gl","@tracktor/react-utils"],f):(b=typeof globalThis<"u"?globalThis:b||self,f(b["@tracktor/map"]={},b.React,b.muiXLicense,b.mapboxgl,b.designSystem,b.MapboxMap,b.reactUtils))})(this,(function(b,f,be,ae,j,S,A){"use strict";var V={exports:{}},I={};/**
3
3
  * @license React
4
4
  * react-jsx-runtime.production.js
5
5
  *
@@ -7,7 +7,7 @@
7
7
  *
8
8
  * This source code is licensed under the MIT license found in the
9
9
  * LICENSE file in the root directory of this source tree.
10
- */var se;function pe(){if(se)return L;se=1;var t=Symbol.for("react.transitional.element"),r=Symbol.for("react.fragment");function s(l,n,c){var a=null;if(c!==void 0&&(a=""+c),n.key!==void 0&&(a=""+n.key),"key"in n){c={};for(var u in n)u!=="key"&&(c[u]=n[u])}else c=n;return n=c.ref,{$$typeof:t,type:l,key:a,ref:n!==void 0?n:null,props:c}}return L.Fragment=r,L.jsx=s,L.jsxs=s,L}var M={};/**
10
+ */var le;function _e(){if(le)return I;le=1;var t=Symbol.for("react.transitional.element"),r=Symbol.for("react.fragment");function s(a,n,c){var o=null;if(c!==void 0&&(o=""+c),n.key!==void 0&&(o=""+n.key),"key"in n){c={};for(var u in n)u!=="key"&&(c[u]=n[u])}else c=n;return n=c.ref,{$$typeof:t,type:a,key:o,ref:n!==void 0?n:null,props:c}}return I.Fragment=r,I.jsx=s,I.jsxs=s,I}var D={};/**
11
11
  * @license React
12
12
  * react-jsx-runtime.development.js
13
13
  *
@@ -15,9 +15,9 @@
15
15
  *
16
16
  * This source code is licensed under the MIT license found in the
17
17
  * LICENSE file in the root directory of this source tree.
18
- */var ae;function me(){return ae||(ae=1,process.env.NODE_ENV!=="production"&&(function(){function t(e){if(e==null)return null;if(typeof e=="function")return e.$$typeof===te?null:e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case w:return"Fragment";case D:return"Profiler";case z:return"StrictMode";case Y:return"Suspense";case W:return"SuspenseList";case Z:return"Activity"}if(typeof e=="object")switch(typeof e.tag=="number"&&console.error("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."),e.$$typeof){case I:return"Portal";case q:return e.displayName||"Context";case $:return(e._context.displayName||"Context")+".Consumer";case J:var i=e.render;return e=e.displayName,e||(e=i.displayName||i.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case ee:return i=e.displayName||null,i!==null?i:t(e.type)||"Memo";case B:i=e._payload,e=e._init;try{return t(e(i))}catch{}}return null}function r(e){return""+e}function s(e){try{r(e);var i=!1}catch{i=!0}if(i){i=console;var y=i.error,R=typeof Symbol=="function"&&Symbol.toStringTag&&e[Symbol.toStringTag]||e.constructor.name||"Object";return y.call(i,"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.",R),r(e)}}function l(e){if(e===w)return"<>";if(typeof e=="object"&&e!==null&&e.$$typeof===B)return"<...>";try{var i=t(e);return i?"<"+i+">":"<...>"}catch{return"<...>"}}function n(){var e=G.A;return e===null?null:e.getOwner()}function c(){return Error("react-stack-top-frame")}function a(e){if(A.call(e,"key")){var i=Object.getOwnPropertyDescriptor(e,"key").get;if(i&&i.isReactWarning)return!1}return e.key!==void 0}function u(e,i){function y(){H||(H=!0,console.error("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)",i))}y.isReactWarning=!0,Object.defineProperty(e,"key",{get:y,configurable:!0})}function f(){var e=t(this.type);return N[e]||(N[e]=!0,console.error("Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.")),e=this.props.ref,e!==void 0?e:null}function b(e,i,y,R,P,k){var o=y.ref;return e={$$typeof:v,type:e,key:i,props:y,_owner:R},(o!==void 0?o:null)!==null?Object.defineProperty(e,"ref",{enumerable:!1,get:f}):Object.defineProperty(e,"ref",{enumerable:!1,value:null}),e._store={},Object.defineProperty(e._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:0}),Object.defineProperty(e,"_debugInfo",{configurable:!1,enumerable:!1,writable:!0,value:null}),Object.defineProperty(e,"_debugStack",{configurable:!1,enumerable:!1,writable:!0,value:P}),Object.defineProperty(e,"_debugTask",{configurable:!1,enumerable:!1,writable:!0,value:k}),Object.freeze&&(Object.freeze(e.props),Object.freeze(e)),e}function m(e,i,y,R,P,k){var o=i.children;if(o!==void 0)if(R)if(re(o)){for(R=0;R<o.length;R++)E(o[R]);Object.freeze&&Object.freeze(o)}else console.error("React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.");else E(o);if(A.call(i,"key")){o=t(e);var _=Object.keys(i).filter(function(ne){return ne!=="key"});R=0<_.length?"{key: someKey, "+_.join(": ..., ")+": ...}":"{key: someKey}",U[o+R]||(_=0<_.length?"{"+_.join(": ..., ")+": ...}":"{}",console.error(`A props object containing a "key" prop is being spread into JSX:
18
+ */var ie;function xe(){return ie||(ie=1,process.env.NODE_ENV!=="production"&&(function(){function t(e){if(e==null)return null;if(typeof e=="function")return e.$$typeof===ne?null:e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case w:return"Fragment";case Y:return"Profiler";case z:return"StrictMode";case B:return"Suspense";case W:return"SuspenseList";case X:return"Activity"}if(typeof e=="object")switch(typeof e.tag=="number"&&console.error("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."),e.$$typeof){case v:return"Portal";case te:return e.displayName||"Context";case ee:return(e._context.displayName||"Context")+".Consumer";case J:var i=e.render;return e=e.displayName,e||(e=i.displayName||i.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case re:return i=e.displayName||null,i!==null?i:t(e.type)||"Memo";case U:i=e._payload,e=e._init;try{return t(e(i))}catch{}}return null}function r(e){return""+e}function s(e){try{r(e);var i=!1}catch{i=!0}if(i){i=console;var m=i.error,R=typeof Symbol=="function"&&Symbol.toStringTag&&e[Symbol.toStringTag]||e.constructor.name||"Object";return m.call(i,"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.",R),r(e)}}function a(e){if(e===w)return"<>";if(typeof e=="object"&&e!==null&&e.$$typeof===U)return"<...>";try{var i=t(e);return i?"<"+i+">":"<...>"}catch{return"<...>"}}function n(){var e=M.A;return e===null?null:e.getOwner()}function c(){return Error("react-stack-top-frame")}function o(e){if(O.call(e,"key")){var i=Object.getOwnPropertyDescriptor(e,"key").get;if(i&&i.isReactWarning)return!1}return e.key!==void 0}function u(e,i){function m(){Z||(Z=!0,console.error("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)",i))}m.isReactWarning=!0,Object.defineProperty(e,"key",{get:m,configurable:!0})}function E(){var e=t(this.type);return F[e]||(F[e]=!0,console.error("Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.")),e=this.props.ref,e!==void 0?e:null}function _(e,i,m,R,N,k){var l=m.ref;return e={$$typeof:d,type:e,key:i,props:m,_owner:R},(l!==void 0?l:null)!==null?Object.defineProperty(e,"ref",{enumerable:!1,get:E}):Object.defineProperty(e,"ref",{enumerable:!1,value:null}),e._store={},Object.defineProperty(e._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:0}),Object.defineProperty(e,"_debugInfo",{configurable:!1,enumerable:!1,writable:!0,value:null}),Object.defineProperty(e,"_debugStack",{configurable:!1,enumerable:!1,writable:!0,value:N}),Object.defineProperty(e,"_debugTask",{configurable:!1,enumerable:!1,writable:!0,value:k}),Object.freeze&&(Object.freeze(e.props),Object.freeze(e)),e}function y(e,i,m,R,N,k){var l=i.children;if(l!==void 0)if(R)if(oe(l)){for(R=0;R<l.length;R++)x(l[R]);Object.freeze&&Object.freeze(l)}else console.error("React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.");else x(l);if(O.call(i,"key")){l=t(e);var T=Object.keys(i).filter(function(se){return se!=="key"});R=0<T.length?"{key: someKey, "+T.join(": ..., ")+": ...}":"{key: someKey}",G[l+R]||(T=0<T.length?"{"+T.join(": ..., ")+": ...}":"{}",console.error(`A props object containing a "key" prop is being spread into JSX:
19
19
  let props = %s;
20
20
  <%s {...props} />
21
21
  React keys must be passed directly to JSX without using spread:
22
22
  let props = %s;
23
- <%s key={someKey} {...props} />`,R,o,_,o),U[o+R]=!0)}if(o=null,y!==void 0&&(s(y),o=""+y),a(i)&&(s(i.key),o=""+i.key),"key"in i){y={};for(var F in i)F!=="key"&&(y[F]=i[F])}else y=i;return o&&u(y,typeof e=="function"?e.displayName||e.name||"Unknown":e),b(e,o,y,n(),P,k)}function E(e){h(e)?e._store&&(e._store.validated=1):typeof e=="object"&&e!==null&&e.$$typeof===B&&(e._payload.status==="fulfilled"?h(e._payload.value)&&e._payload.value._store&&(e._payload.value._store.validated=1):e._store&&(e._store.validated=1))}function h(e){return typeof e=="object"&&e!==null&&e.$$typeof===v}var d=p,v=Symbol.for("react.transitional.element"),I=Symbol.for("react.portal"),w=Symbol.for("react.fragment"),z=Symbol.for("react.strict_mode"),D=Symbol.for("react.profiler"),$=Symbol.for("react.consumer"),q=Symbol.for("react.context"),J=Symbol.for("react.forward_ref"),Y=Symbol.for("react.suspense"),W=Symbol.for("react.suspense_list"),ee=Symbol.for("react.memo"),B=Symbol.for("react.lazy"),Z=Symbol.for("react.activity"),te=Symbol.for("react.client.reference"),G=d.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,A=Object.prototype.hasOwnProperty,re=Array.isArray,C=console.createTask?console.createTask:function(){return null};d={react_stack_bottom_frame:function(e){return e()}};var H,N={},O=d.react_stack_bottom_frame.bind(d,c)(),X=C(l(c)),U={};M.Fragment=w,M.jsx=function(e,i,y){var R=1e4>G.recentlyCreatedOwnerStacks++;return m(e,i,y,!1,R?Error("react-stack-top-frame"):O,R?C(l(e)):X)},M.jsxs=function(e,i,y){var R=1e4>G.recentlyCreatedOwnerStacks++;return m(e,i,y,!0,R?Error("react-stack-top-frame"):O,R?C(l(e)):X)}})()),M}var le;function ge(){return le||(le=1,process.env.NODE_ENV==="production"?V.exports=pe():V.exports=me()),V.exports}var g=ge();const ye=p.createContext({licenceMapbox:"",licenseMuiX:""}),be=({children:t,licenseMuiX:r,licenceMapbox:s})=>{p.useEffect(()=>{r&&fe.LicenseInfo.setLicenseKey(r)},[r]);const l=p.useMemo(()=>({licenceMapbox:s,licenseMuiX:r}),[r,s]);return s&&(oe.accessToken=s),g.jsx(ye.Provider,{value:l,children:t})},Ee=t=>({".mapboxgl-popup-close-button":{color:t.palette.mode==="dark"?"#fff !important":"#000 !important",fontSize:"20px !important"},".mapboxgl-popup-content":{backgroundColor:"transparent!important",borderRadius:"0px !important",boxShadow:"none!important",padding:"0px 0px!important",width:"fit-content!important"},".mapboxgl-popup-tip":{borderTopColor:`${t.palette.mode==="dark"?"#1e1e1e":"#ffffff"} !important`}}),ie=t=>Number.isFinite(t.lng)&&Number.isFinite(t.lat),ce=t=>S.isString(t)||S.isNumber(t)?String(t):JSON.stringify(t),he=t=>{if(!t)return[];const r=S.isArray(t)?t:t.type==="FeatureCollection"?t.features:[t],s=[];for(const l of r){const n=l.geometry;n.type==="Point"&&s.push(n.coordinates),n.type==="LineString"&&s.push(...n.coordinates),n.type==="Polygon"&&s.push(...n.coordinates[0])}return s},Re=({markers:t=[],features:r,padding:s=50,duration:l=1e3,disableAnimation:n,fitBounds:c=!0,animationKey:a,openPopup:u})=>{const{current:f}=x.useMap(),b=p.useRef(""),m=p.useMemo(()=>t.filter(ie),[t]),E=p.useMemo(()=>he(r),[r]),h=p.useMemo(()=>{const d=[...m.map(v=>[v.lng,v.lat]),...E];return d.length===0?null:d.reduce((v,[I,w])=>v.extend([I,w]),new oe.LngLatBounds)},[m,E]);return p.useEffect(()=>{if(u){b.current=a!==void 0?ce(a):"__initial_skip__";return}if(f&&c&&h){if(a!==void 0){const d=ce(a);if(b.current===d)return;b.current=d}else if(b.current==="__initial_skip__")return;if(!h.isEmpty()){if(m.length===1&&E.length===0){const d=m[0];f.flyTo({center:[d.lng,d.lat],duration:n?0:l,zoom:14});return}f.fitBounds([h.getSouthWest().toArray(),h.getNorthEast().toArray()],{duration:n?0:l,padding:s})}}},[f,h,s,l,n,a,c,m,E,u]),null},Te=async(t,r,s="driving")=>{const n=`https://api.mapbox.com/directions/v5/mapbox/${s}/${t.join(",")};${r.join(",")}?geometries=geojson&overview=full&access_token=undefined`,c=await fetch(n);return c.ok?{geometry:(await c.json()).routes[0].geometry,properties:{},type:"Feature"}:null},_e=async(t,r,s="driving")=>{const c=`${`https://routing.openstreetmap.de/${{cycling:"routed-bike",driving:"routed-car",walking:"routed-foot"}[s]}`}/route/v1/driving/${t.join(",")};${r.join(",")}?overview=full&geometries=geojson`;try{const a=await fetch(c);if(!a.ok)return console.error("OSRM API error:",a.status,a.statusText),null;const u=await a.json();return!u.routes||u.routes.length===0?(console.warn("No routes found in OSRM response."),null):{geometry:u.routes[0].geometry,properties:{distance:u.routes[0].distance,duration:u.routes[0].duration},type:"Feature"}}catch(a){return console.error("Error fetching OSRM route:",a),null}},ue=({profile:t,engine:r,to:s,from:l,itineraryLineStyle:n})=>{const[c,a]=p.useState(null);return p.useEffect(()=>{l&&s&&(async()=>{try{const u=r==="OSRM"?await _e(l,s,t):await Te(l,s,t);u?a(u):(console.warn("No route found between the specified points."),a(null))}catch(u){console.error("Error fetching route:",u),a(null)}})()},[l,s,t,r]),c?g.jsx(x.Source,{type:"geojson",data:c,children:g.jsx(x.Layer,{type:"line",paint:{"line-color":n?.color??"#9c3333","line-opacity":n?.opacity??.8,"line-width":n?.width??4},layout:{"line-cap":"round","line-join":"round"}})}):null},ve="#000000",xe="#FFFFFF",Q={default:"#009ba6",primary:"#3F83F8",secondary:"#9C27B0",success:"#4CAF50",warning:"#FF9800"},ke=t=>t in Q,je=({color:t,variant:r})=>{const{palette:s}=j.useTheme(),l=s.mode==="dark"?ve:xe,n=r&&ke(r)&&Q[r]||t||(S.isString(r)?r:Q.default);return g.jsx(j.Box,{component:"div",style:{backgroundColor:l,border:`7px solid ${n}`,borderRadius:"50%",boxShadow:"0 0 4px rgba(0,0,0,0.3)",height:28,width:28}})},Se=async(t,r,s="driving",l)=>{if(!r.length)return null;const c=[t,...r.map(d=>d.coords)].map(d=>`${d[0]},${d[1]}`).join(";"),a=`https://api.mapbox.com/directions-matrix/v1/mapbox/${s}/${c}?sources=0&annotations=distance&access_token=undefined`,u=await fetch(a);if(!u.ok)return console.error("Erreur Mapbox Matrix :",u.status,u.statusText),null;const f=await u.json();if(!(Array.isArray(f.distances)&&Array.isArray(f.distances[0])))return console.error("Response wrong format Mapbox Matrix :",f),null;const b=f.distances[0]?.slice(1).filter(d=>typeof d=="number")??[];if(!b.length)return null;const m=Math.min(...b.filter(d=>typeof d=="number")),E=b.indexOf(m);if(E===-1)return null;const h=r[E];return l!=null&&m>l?null:{distance:m,id:h.id,point:h.coords}},we=async(t,r,s="driving",l)=>{const n={cycling:"routed-bike",driving:"routed-car",walking:"routed-foot"},c=[t,...r.map(d=>d.coords)].map(d=>`${d[0]},${d[1]}`).join(";"),a=`https://routing.openstreetmap.de/${n[s]}/table/v1/driving/${c}?sources=0&annotations=distance`,u=await fetch(a);if(!u.ok)return console.error("Error OSRM Table:",u.status,u.statusText),null;const f=await u.json();if(!(f.distances&&Array.isArray(f.distances))||f.distances.length===0)return console.error("OSRM Table unexpected response:",f),null;const b=f.distances[0];if(!b||b.length===0)return console.error("OSRM Table first row empty:",f),null;let m=-1,E=1/0;for(let d=1;d<b.length;d++){const v=b[d];v!=null&&v<E&&(E=v,m=d)}if(m===-1)return null;const h=r[m-1];return l!=null&&E>l?null:{distance:E,id:h.id,point:h.coords}},Ae=({origin:t,maxDistanceMeters:r,destinations:s,onNearestFound:l,profile:n="driving",engine:c="OSRM"})=>{const[a,u]=p.useState(null),f=p.useRef(null);return console.log("engine:",c),p.useEffect(()=>{if(!t||t.length!==2||!s?.length)return;const b=s.map(m=>({coords:[m.lng,m.lat],id:m.id}));(async()=>{const E=await(c==="OSRM"?we:Se)(t,b,n,r);E&&u(h=>!h||h.id!==E.id||h.distance!==E.distance?E:h)})()},[t,r,s,n,c]),p.useEffect(()=>{if(!a){l?.(null,null,0),f.current=null;return}if(r!=null&&a.distance>r){l?.(null,null,0),f.current=null;return}const b=f.current;(!b||b.id!==a.id||b.distance!==a.distance)&&(l?.(a.id,a.point,a.distance),f.current=a)},[a,l,r]),a?.point?g.jsx(ue,{from:t,to:a.point,profile:n,engine:c}):null},Ce=p.memo(Ae),Oe=t=>S.isArray(t)?{features:t,type:"FeatureCollection"}:t.type==="FeatureCollection"?t:{features:[t],type:"FeatureCollection"},Pe=({features:t})=>{if(!t)return null;const r=Oe(t),s=r.features.filter(n=>n.geometry.type==="Polygon"||n.geometry.type==="MultiPolygon"),l=r.features.filter(n=>n.geometry.type==="LineString"||n.geometry.type==="MultiLineString");return g.jsxs(g.Fragment,{children:[s.length>0&&g.jsx(x.Source,{id:"features-polygon",type:"geojson",data:{features:s,type:"FeatureCollection"},children:g.jsx(x.Layer,{id:"polygon-fill",type:"fill",paint:{"fill-color":["coalesce",["get","color"],"#4ADE80"],"fill-opacity":.4}})}),l.length>0&&g.jsx(x.Source,{id:"features-line",type:"geojson",data:{features:l,type:"FeatureCollection"},children:g.jsx(x.Layer,{id:"line-stroke",type:"line",paint:{"line-color":["coalesce",["get","color"],"#3B82F6"],"line-opacity":.9,"line-width":3}})})]})},K={satellite:"mapbox://styles/mapbox/satellite-streets-v12",street:{dark:"mapbox://styles/mapbox/dark-v11",light:"mapbox://styles/mapbox/streets-v12"}},de=(t,r)=>{const s=r==="dark";switch(t){case"satellite":return K.satellite;default:return s?K.street.dark:K.street.light}},Ne=({mapStyle:t,theme:r,baseMapView:s,doubleClickZoom:l,cooperativeGestures:n})=>({cooperativeGestures:n,doubleClickZoom:l,failIfMajorPerformanceCaveat:!1,style:t??de(s,r)}),Fe=({containerStyle:t,square:r,loading:s,height:l=300,width:n="100%",center:c=[2.3522,48.8566],zoom:a=5,popupMaxWidth:u,openPopup:f,openPopupOnHover:b,markers:m=[],fitBounds:E=!0,fitBoundsPadding:h,fitBoundDuration:d,fitBoundsAnimationKey:v,disableAnimation:I,mapStyle:w,onMapClick:z,baseMapView:D,cooperativeGestures:$=!0,doubleClickZoom:q=!0,projection:J,theme:Y,features:W,from:ee,to:B,profile:Z="driving",itineraryLineStyle:te,engine:G="OSRM",findNearestMarker:A,onNearestFound:re})=>{const C=j.useTheme(),H=p.useRef(null),[N,O]=p.useState(f??null),X=p.useMemo(()=>{if(S.isArray(c))return{latitude:c[1],longitude:c[0],zoom:a}},[c,a]),U=p.useMemo(()=>w||de(D,Y??C.palette.mode),[D,w,Y,C.palette.mode]),{style:e,cooperativeGestures:i,doubleClickZoom:y}=Ne({baseMapView:D,cooperativeGestures:$,doubleClickZoom:q,mapStyle:U,theme:Y??C.palette.mode}),R=(o,_)=>{!b&&_&&O(o)},P=(o,_)=>{b&&O(_?o:null)};p.useEffect(()=>{O(f??null)},[f]);const k=p.useMemo(()=>N?m?.find(o=>o.id===N)??null:null,[N,m]);return g.jsxs(j.Box,{"data-testid":"mapbox-container",sx:{height:l,position:"relative",width:n,...t},children:[g.jsx(j.GlobalStyles,{styles:Ee}),s&&g.jsx(j.Skeleton,{"data-testid":"skeleton-loader",width:n,height:l,variant:r?"rectangular":"rounded",sx:{inset:0,position:"absolute",zIndex:2}}),!s&&g.jsxs(x,{ref:H,cooperativeGestures:i,doubleClickZoom:y,mapStyle:e,projection:J,initialViewState:X,style:{height:"100%",width:"100%"},mapboxAccessToken:void 0,onClick:o=>{const _=m.find(F=>{const{lng:ne,lat:Ye}=o.lngLat,We=Math.abs(Number(F.lng||null)-ne),Be=Math.abs(Number(F.lat||null)-Ye);return We<.01&&Be<.01});z?.(o.lngLat.lng,o.lngLat.lat,_??null)},children:[m.filter(ie).map(o=>g.jsx(x.Marker,{longitude:o.lng,latitude:o.lat,anchor:"bottom",onClick:_=>{_.originalEvent.stopPropagation(),o.id&&R(o.id,!!o.Tooltip),z?.(o.lng,o.lat,o)},children:g.jsx(j.Box,{component:"div",onMouseEnter:()=>o.id&&P(o.id,!!o.Tooltip),onMouseLeave:()=>P(null),style:{cursor:o.Tooltip?"pointer":"default"},children:o.IconComponent?g.jsx(o.IconComponent,{...o.iconProps}):g.jsx(je,{color:o.color,variant:o.variant})})},o.id)),k?.Tooltip&&g.jsx(x.Popup,{longitude:S.isNumber(k.lng)?k.lng:0,latitude:S.isNumber(k.lat)?k.lat:0,anchor:"top",onClose:()=>O(null),maxWidth:u,closeOnClick:!0,closeOnMove:!1,children:g.jsx(j.Box,{component:"div",sx:{minHeight:60,minWidth:240},children:k.Tooltip})}),g.jsx(ue,{from:ee,to:B,profile:Z,engine:G,itineraryLineStyle:te}),g.jsx(Ce,{origin:A?.origin,destinations:A?.destinations,onNearestFound:re,maxDistanceMeters:A?.maxDistanceMeters,engine:A?.engine,profile:Z}),W&&g.jsx(Pe,{features:W}),E&&g.jsx(Re,{markers:m,features:W,padding:h,duration:I?0:d,animationKey:v,openPopup:!!f})]},`${i}-${y}-${J}-${U}-${A?.maxDistanceMeters}`)]})},Le=p.memo(Fe),Me=["OSRM","Mapbox"],Ie=["driving","walking","cycling"],De=(t,r)=>Number.isFinite(t)&&Number.isFinite(r)&&t>=-90&&t<=90&&r>=-180&&r<=180;T.DEFAULT_CENTER_LAT=46.8677,T.DEFAULT_CENTER_LNG=2.333,T.MapProvider=be,T.MarkerMap=Le,T.engines=Me,T.isValidLatLng=De,T.profiles=Ie,Object.defineProperty(T,Symbol.toStringTag,{value:"Module"})}));
23
+ <%s key={someKey} {...props} />`,R,l,T,l),G[l+R]=!0)}if(l=null,m!==void 0&&(s(m),l=""+m),o(i)&&(s(i.key),l=""+i.key),"key"in i){m={};for(var L in i)L!=="key"&&(m[L]=i[L])}else m=i;return l&&u(m,typeof e=="function"?e.displayName||e.name||"Unknown":e),_(e,l,m,n(),N,k)}function x(e){g(e)?e._store&&(e._store.validated=1):typeof e=="object"&&e!==null&&e.$$typeof===U&&(e._payload.status==="fulfilled"?g(e._payload.value)&&e._payload.value._store&&(e._payload.value._store.validated=1):e._store&&(e._store.validated=1))}function g(e){return typeof e=="object"&&e!==null&&e.$$typeof===d}var h=f,d=Symbol.for("react.transitional.element"),v=Symbol.for("react.portal"),w=Symbol.for("react.fragment"),z=Symbol.for("react.strict_mode"),Y=Symbol.for("react.profiler"),ee=Symbol.for("react.consumer"),te=Symbol.for("react.context"),J=Symbol.for("react.forward_ref"),B=Symbol.for("react.suspense"),W=Symbol.for("react.suspense_list"),re=Symbol.for("react.memo"),U=Symbol.for("react.lazy"),X=Symbol.for("react.activity"),ne=Symbol.for("react.client.reference"),M=h.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,O=Object.prototype.hasOwnProperty,oe=Array.isArray,C=console.createTask?console.createTask:function(){return null};h={react_stack_bottom_frame:function(e){return e()}};var Z,F={},P=h.react_stack_bottom_frame.bind(h,c)(),H=C(a(c)),G={};D.Fragment=w,D.jsx=function(e,i,m){var R=1e4>M.recentlyCreatedOwnerStacks++;return y(e,i,m,!1,R?Error("react-stack-top-frame"):P,R?C(a(e)):H)},D.jsxs=function(e,i,m){var R=1e4>M.recentlyCreatedOwnerStacks++;return y(e,i,m,!0,R?Error("react-stack-top-frame"):P,R?C(a(e)):H)}})()),D}var ce;function ve(){return ce||(ce=1,process.env.NODE_ENV==="production"?V.exports=_e():V.exports=xe()),V.exports}var p=ve();const Te=f.createContext({licenceMapbox:"",licenseMuiX:""}),Se=({children:t,licenseMuiX:r,licenceMapbox:s})=>{f.useEffect(()=>{r&&be.LicenseInfo.setLicenseKey(r)},[r]);const a=f.useMemo(()=>({licenceMapbox:s,licenseMuiX:r}),[r,s]);return s&&(ae.accessToken=s),p.jsx(Te.Provider,{value:a,children:t})},ke=t=>A.isArray(t)?{features:t,type:"FeatureCollection"}:t.type==="FeatureCollection"?t:{features:[t],type:"FeatureCollection"},je=({features:t})=>{if(!t)return null;const r=ke(t),s=r.features.filter(n=>n.geometry.type==="Polygon"||n.geometry.type==="MultiPolygon"),a=r.features.filter(n=>n.geometry.type==="LineString"||n.geometry.type==="MultiLineString");return p.jsxs(p.Fragment,{children:[s.length>0&&p.jsx(S.Source,{id:"features-polygon",type:"geojson",data:{features:s,type:"FeatureCollection"},children:p.jsx(S.Layer,{id:"polygon-fill",type:"fill",paint:{"fill-color":["coalesce",["get","color"],"#4ADE80"],"fill-opacity":.4}})}),a.length>0&&p.jsx(S.Source,{id:"features-line",type:"geojson",data:{features:a,type:"FeatureCollection"},children:p.jsx(S.Layer,{id:"line-stroke",type:"line",paint:{"line-color":["coalesce",["get","color"],"#3B82F6"],"line-opacity":.9,"line-width":3}})})]})},Ae="#000000",we="#FFFFFF",Q={default:"#009ba6",primary:"#3F83F8",secondary:"#9C27B0",success:"#4CAF50",warning:"#FF9800"},Oe=t=>t in Q,Ce=({color:t,variant:r})=>{const{palette:s}=j.useTheme(),a=s.mode==="dark"?Ae:we,n=r&&Oe(r)&&Q[r]||t||(A.isString(r)?r:Q.default);return p.jsx(j.Box,{component:"div",style:{backgroundColor:a,border:`7px solid ${n}`,borderRadius:"50%",boxShadow:"0 0 4px rgba(0,0,0,0.3)",height:28,width:28}})},Pe=t=>({".mapboxgl-popup-close-button":{color:t.palette.mode==="dark"?"#fff !important":"#000 !important",fontSize:"20px !important"},".mapboxgl-popup-content":{backgroundColor:"transparent!important",borderRadius:"0px !important",boxShadow:"none!important",padding:"0px 0px!important",width:"fit-content!important"},".mapboxgl-popup-tip":{borderTopColor:`${t.palette.mode==="dark"?"#1e1e1e":"#ffffff"} !important`}}),ue=t=>Number.isFinite(t.lng)&&Number.isFinite(t.lat),de=t=>A.isString(t)||A.isNumber(t)?String(t):JSON.stringify(t),Ne=t=>{if(!t)return[];const r=A.isArray(t)?t:t.type==="FeatureCollection"?t.features:[t],s=[];for(const a of r){const n=a.geometry;n.type==="Point"&&s.push(n.coordinates),n.type==="LineString"&&s.push(...n.coordinates),n.type==="Polygon"&&s.push(...n.coordinates[0])}return s},Me=({markers:t=[],features:r,padding:s=50,duration:a=1e3,disableAnimation:n,fitBounds:c=!0,animationKey:o,openPopup:u})=>{const{current:E}=S.useMap(),_=f.useRef(""),y=f.useMemo(()=>t.filter(ue),[t]),x=f.useMemo(()=>Ne(r),[r]),g=f.useMemo(()=>{const h=[...y.map(d=>[d.lng,d.lat]),...x];return h.length===0?null:h.reduce((d,[v,w])=>d.extend([v,w]),new ae.LngLatBounds)},[y,x]);return f.useEffect(()=>{if(u){_.current=o!==void 0?de(o):"__initial_skip__";return}if(E&&c&&g){if(o!==void 0){const h=de(o);if(_.current===h)return;_.current=h}else if(_.current==="__initial_skip__")return;if(!g.isEmpty()){if(y.length===1&&x.length===0){const h=y[0];E.flyTo({center:[h.lng,h.lat],duration:n?0:a,zoom:14});return}E.fitBounds([g.getSouthWest().toArray(),g.getNorthEast().toArray()],{duration:n?0:a,padding:s})}}},[E,g,s,a,n,o,c,y,x,u]),null},Fe="https://api.mapbox.com",fe=(t,r,s,a,n={})=>{const c=new URLSearchParams({access_token:"",...n});return`${Fe}/${t}/${r}/mapbox/${s}/${a}?${c.toString()}`},pe=async t=>{try{const r=await fetch(t);return r.ok?await r.json():(console.error(`Mapbox API error: ${r.status} ${r.statusText}`),null)}catch(r){return console.error("Mapbox network error:",r),null}},Le=async(t,r,s="driving")=>{const a=`${t.join(",")};${r.join(",")}`,n=fe("directions","v5",s,a,{geometries:"geojson",overview:"full"}),c=await pe(n);if(!c?.routes?.length)return null;const o=c.routes[0];return{geometry:o.geometry,properties:{distance:o.distance,duration:o.duration},type:"Feature"}},K=25,Ie=5,De=async(t,r,s)=>{const a=[];for(let n=0;n<t.length;n+=r){const c=t.slice(n,n+r),o=await Promise.all(c.map(s));a.push(...o)}return a},me={findNearest:async(t,r,s="driving",a)=>{if(r.length===0)return null;const n=Array.from({length:Math.ceil(r.length/(K-1))},(o,u)=>r.slice(u*(K-1),(u+1)*(K-1)));return(await De(n,Ie,async o=>{const u=[t,...o.map(d=>d.coords)].map(d=>d.join(",")).join(";"),E=fe("directions-matrix","v1",s,u,{annotations:"distance",sources:"0"}),y=(await pe(E))?.distances?.[0];if(!y?.length)return null;const g=y.map((d,v)=>({distance:d,index:v})).slice(1).filter(({distance:d})=>d!=null).reduce((d,v)=>v.distance<d.distance?v:d,{distance:1/0,index:-1});if(g.index===-1)return null;const h=o[g.index-1];return a!=null&&g.distance>a?null:{distance:g.distance,id:h.id,point:h.coords}})).filter(o=>o!=null).sort((o,u)=>o.distance-u.distance)[0]??null},getRoute:Le},Ye={cycling:"routed-bike",driving:"routed-car",walking:"routed-foot"},Be="https://routing.openstreetmap.de",ge=(t,r,s,a)=>{const n=`${Be}/${Ye[r]}/${t}/v1/${r}/${s}`,c=a?`?${new URLSearchParams(a).toString()}`:"";return`${n}${c}`},ye=async t=>{try{const r=await fetch(t);return r.ok?await r.json():(console.error("OSRM API error:",r.status,r.statusText),null)}catch(r){return console.error("Error fetching OSRM API:",r),null}},We=async(t,r,s="driving")=>{const a=`${t.join(",")};${r.join(",")}`,n=ge("route",s,a,{geometries:"geojson",overview:"full"}),c=await ye(n);if(!c?.routes?.length)return null;const o=c.routes[0];return{geometry:o.geometry,properties:{distance:o.distance,duration:o.duration},type:"Feature"}},$=100,he={findNearest:async(t,r,s="driving",a)=>{if(r.length===0)return null;const n=Array.from({length:Math.ceil(r.length/($-1))},(o,u)=>r.slice(u*($-1),(u+1)*($-1)));return(await Promise.all(n.map(async o=>{const u=[t,...o.map(d=>d.coords)].map(d=>d.join(",")).join(";"),E=ge("table",s,u,{annotations:"distance",sources:0}),y=(await ye(E))?.distances?.[0];if(!y?.length)return null;const g=y.map((d,v)=>({distance:d,index:v})).slice(1).filter(({distance:d})=>d!=null).reduce((d,v)=>v.distance<d.distance?v:d,{distance:1/0,index:-1});if(g.index===-1)return null;const h=o[g.index-1];return a!=null&&g.distance>a?null:{distance:g.distance,id:h.id,point:h.coords}}))).filter(o=>o!=null).sort((o,u)=>o.distance-u.distance)[0]??null},getRoute:We},Re=({profile:t,engine:r,to:s,from:a,itineraryLineStyle:n})=>{const[c,o]=f.useState(null);return f.useEffect(()=>{a&&s&&(async()=>{try{const u=r==="OSRM"?await he.getRoute(a,s,t):await me.getRoute(a,s,t);u?o(u):(console.warn("No route found between the specified points."),o(null))}catch(u){console.error("Error fetching route:",u),o(null)}})()},[a,s,t,r]),c?p.jsx(S.Source,{type:"geojson",data:c,children:p.jsx(S.Layer,{type:"line",paint:{"line-color":n?.color??"#9c3333","line-opacity":n?.opacity??.8,"line-width":n?.width??4},layout:{"line-cap":"round","line-join":"round"}})}):null},Ue=({origin:t,maxDistanceMeters:r,destinations:s,onNearestFound:a,profile:n="driving",engine:c="OSRM"})=>{const[o,u]=f.useState(null),E=f.useRef(null);return f.useEffect(()=>{let _=!1;if(!t||t.length!==2||!s?.length){u(null);return}u(null);const y=s.map(x=>({coords:[x.lng,x.lat],id:x.id}));return(async()=>{const g=await(c==="OSRM"?he.findNearest:me.findNearest)(t,y,n,r);!_&&g&&u(g)})(),()=>{_=!0}},[t,r,s,n,c]),f.useEffect(()=>{if(!o){a?.(null,null,0),E.current=null;return}if(r!=null&&o.distance>r){a?.(null,null,0),E.current=null;return}const _=E.current;(!_||_.id!==o.id||_.distance!==o.distance)&&(a?.(o.id,o.point,o.distance),E.current=o)},[o,a,r]),o?.point?(console.log("nearestResult",o),p.jsx(Re,{from:t,to:o.point,profile:n,engine:c})):null},Ge=f.memo(Ue),q={satellite:"mapbox://styles/mapbox/satellite-streets-v12",street:{dark:"mapbox://styles/mapbox/dark-v11",light:"mapbox://styles/mapbox/streets-v12"}},Ee=(t,r)=>{const s=r==="dark";switch(t){case"satellite":return q.satellite;default:return s?q.street.dark:q.street.light}},Ve=({mapStyle:t,theme:r,baseMapView:s,doubleClickZoom:a,cooperativeGestures:n})=>({cooperativeGestures:n,doubleClickZoom:a,failIfMajorPerformanceCaveat:!1,style:t??Ee(s,r)}),ze=({containerStyle:t,square:r,loading:s,height:a=300,width:n="100%",center:c=[2.3522,48.8566],zoom:o=5,popupMaxWidth:u,openPopup:E,openPopupOnHover:_,markers:y=[],fitBounds:x=!0,fitBoundsPadding:g,fitBoundDuration:h,fitBoundsAnimationKey:d,disableAnimation:v,mapStyle:w,onMapClick:z,baseMapView:Y,cooperativeGestures:ee=!0,doubleClickZoom:te=!0,projection:J,theme:B,features:W,from:re,to:U,profile:X="driving",itineraryLineStyle:ne,engine:M="OSRM",findNearestMarker:O,onNearestFound:oe})=>{const C=j.useTheme(),Z=f.useRef(null),[F,P]=f.useState(E??null),H=f.useMemo(()=>{if(A.isArray(c))return{latitude:c[1],longitude:c[0],zoom:o}},[c,o]),G=f.useMemo(()=>w||Ee(Y,B??C.palette.mode),[Y,w,B,C.palette.mode]),{style:e,cooperativeGestures:i,doubleClickZoom:m}=Ve({baseMapView:Y,cooperativeGestures:ee,doubleClickZoom:te,mapStyle:G,theme:B??C.palette.mode}),R=(l,T)=>{!_&&T&&P(l)},N=(l,T)=>{_&&P(T?l:null)};f.useEffect(()=>{P(E??null)},[E]);const k=f.useMemo(()=>F?y?.find(l=>l.id===F)??null:null,[F,y]);return p.jsxs(j.Box,{"data-testid":"mapbox-container",sx:{height:a,position:"relative",width:n,...t},children:[p.jsx(j.GlobalStyles,{styles:Pe}),s&&p.jsx(j.Skeleton,{"data-testid":"skeleton-loader",width:n,height:a,variant:r?"rectangular":"rounded",sx:{inset:0,position:"absolute",zIndex:2}}),!s&&p.jsxs(S,{ref:Z,cooperativeGestures:i,doubleClickZoom:m,mapStyle:e,projection:J,initialViewState:H,style:{height:"100%",width:"100%"},mapboxAccessToken:void 0,onClick:l=>{const T=y.find(L=>{const{lng:se,lat:Qe}=l.lngLat,Ke=Math.abs(Number(L.lng||null)-se),$e=Math.abs(Number(L.lat||null)-Qe);return Ke<.01&&$e<.01});z?.(l.lngLat.lng,l.lngLat.lat,T??null)},children:[y.filter(ue).map(l=>p.jsx(S.Marker,{longitude:l.lng,latitude:l.lat,anchor:"bottom",onClick:T=>{T.originalEvent.stopPropagation(),l.id&&R(l.id,!!l.Tooltip),z?.(l.lng,l.lat,l)},children:p.jsx(j.Box,{component:"div",onMouseEnter:()=>l.id&&N(l.id,!!l.Tooltip),onMouseLeave:()=>N(null),style:{cursor:l.Tooltip?"pointer":"default"},children:l.IconComponent?p.jsx(l.IconComponent,{...l.iconProps}):p.jsx(Ce,{color:l.color,variant:l.variant})})},l.id)),k?.Tooltip&&p.jsx(S.Popup,{longitude:A.isNumber(k.lng)?k.lng:0,latitude:A.isNumber(k.lat)?k.lat:0,anchor:"top",onClose:()=>P(null),maxWidth:u,closeOnClick:!0,closeOnMove:!1,children:p.jsx(j.Box,{component:"div",sx:{minHeight:60,minWidth:240},children:k.Tooltip})}),p.jsx(Re,{from:re,to:U,profile:X,engine:M,itineraryLineStyle:ne}),p.jsx(Ge,{origin:O?.origin,destinations:O?.destinations,onNearestFound:oe,maxDistanceMeters:O?.maxDistanceMeters,engine:M,profile:X}),W&&p.jsx(je,{features:W}),x&&p.jsx(Me,{markers:y,features:W,padding:g,duration:v?0:h,animationKey:d,openPopup:!!E})]},`${i}-${m}-${J}-${G}-${O?.maxDistanceMeters}`)]})},Je=f.memo(ze),Xe=["OSRM","Mapbox"],Ze=["driving","walking","cycling"],He=(t,r)=>Number.isFinite(t)&&Number.isFinite(r)&&t>=-90&&t<=90&&r>=-180&&r<=180;b.DEFAULT_CENTER_LAT=46.8677,b.DEFAULT_CENTER_LNG=2.333,b.MapProvider=Se,b.MarkerMap=Je,b.engines=Xe,b.isValidLatLng=He,b.profiles=Ze,Object.defineProperty(b,Symbol.toStringTag,{value:"Module"})}));
@@ -0,0 +1,2 @@
1
+ export declare const buildMapboxUrl: (endpoint: string, version: string, profile: string, coords: string, params?: Record<string, string>) => string;
2
+ export declare const fetchMapbox: <T>(url: string) => Promise<T | null>;
@@ -0,0 +1,5 @@
1
+ declare const MapboxService: {
2
+ findNearest: (from: [number, number], destinations: import('./types').Destination[], profile?: import('./types').MapboxProfile, maxDistanceMeters?: number) => Promise<import('./types').NearestResult | null>;
3
+ getRoute: (from: [number, number], to: [number, number], profile?: import('./types').MapboxProfile) => Promise<import('./types').RouteFeature | null>;
4
+ };
5
+ export default MapboxService;
@@ -0,0 +1,6 @@
1
+ import { MapboxProfile, RouteFeature } from './types';
2
+ /**
3
+ * Get a route between two points using Mapbox Directions API.
4
+ * Returns a GeoJSON Feature (LineString) or null if not found.
5
+ */
6
+ export declare const getMapboxRoute: (from: [number, number], to: [number, number], profile?: MapboxProfile) => Promise<RouteFeature | null>;
@@ -0,0 +1,13 @@
1
+ import { Destination, MapboxProfile, NearestResult } from './types';
2
+ /**
3
+ * Find the nearest destination using the Mapbox Directions Matrix API.
4
+ * Automatically splits large destination lists into chunks (<= 25 points)
5
+ * and executes requests in limited parallel batches to avoid API throttling.
6
+ *
7
+ * @param from - The origin coordinate [longitude, latitude].
8
+ * @param destinations - List of destination coordinates with IDs.
9
+ * @param profile - Mapbox routing profile (driving, walking, cycling...).
10
+ * @param maxDistanceMeters - Optional distance limit in meters.
11
+ * @returns The nearest destination, or null if none found.
12
+ */
13
+ export declare const findNearestWithMapboxMatrix: (from: [number, number], destinations: Destination[], profile?: MapboxProfile, maxDistanceMeters?: number) => Promise<NearestResult | null>;
@@ -0,0 +1,17 @@
1
+ import { Feature, GeoJsonProperties, LineString } from 'geojson';
2
+ export type MapboxProfile = "driving" | "walking" | "cycling";
3
+ export interface Destination {
4
+ id: number | string;
5
+ coords: [number, number];
6
+ }
7
+ export interface NearestResult {
8
+ distance: number;
9
+ id: number | string;
10
+ point: [number, number];
11
+ }
12
+ export interface RouteFeature extends Feature<LineString, GeoJsonProperties> {
13
+ properties: {
14
+ distance: number;
15
+ duration: number;
16
+ };
17
+ }
@@ -0,0 +1,10 @@
1
+ import { RoutingProfile } from './types';
2
+ export declare const OSRM_BASE_URL = "https://routing.openstreetmap.de";
3
+ /**
4
+ * Build an OSRM API endpoint for a given service and profile.
5
+ */
6
+ export declare const buildOSRMUrl: (service: "route" | "table", profile: RoutingProfile, path: string, params?: Record<string, string | number | boolean>) => string;
7
+ /**
8
+ * Fetch and parse JSON safely from the OSRM API.
9
+ */
10
+ export declare const fetchOSRM: <T>(url: string) => Promise<T | null>;
@@ -0,0 +1,5 @@
1
+ declare const OSRMService: {
2
+ findNearest: (from: [number, number], destinations: import('./types').Destination[], profile?: import('./types').RoutingProfile, maxDistanceMeters?: number) => Promise<import('./types').NearestResult | null>;
3
+ getRoute: (from: [number, number], to: [number, number], profile?: import('./types').RoutingProfile) => Promise<import('./types').RouteFeature | null>;
4
+ };
5
+ export default OSRMService;
@@ -0,0 +1,6 @@
1
+ import { RouteFeature, RoutingProfile } from './types';
2
+ /**
3
+ * Get a route between two points using the OSRM API.
4
+ * Returns a GeoJSON Feature (LineString) or null if not found.
5
+ */
6
+ export declare const getOSRMRoute: (from: [number, number], to: [number, number], profile?: RoutingProfile) => Promise<RouteFeature | null>;
@@ -0,0 +1,13 @@
1
+ import { Destination, NearestResult, RoutingProfile } from './types';
2
+ /**
3
+ * Find the nearest destination using the OSRM Table API.
4
+ * Automatically splits large destination lists into smaller chunks
5
+ * to stay under the OSRM API limit and returns the closest destination.
6
+ *
7
+ * @param from - The source coordinate [longitude, latitude].
8
+ * @param destinations - The list of destination points to compare.
9
+ * @param profile - OSRM routing profile (e.g. 'driving', 'walking', 'cycling').
10
+ * @param maxDistanceMeters - Optional max distance filter (in meters).
11
+ * @returns The closest destination within max distance, or null if none found.
12
+ */
13
+ export declare const findNearestWithOSRMTable: (from: [number, number], destinations: Destination[], profile?: RoutingProfile, maxDistanceMeters?: number) => Promise<NearestResult | null>;
@@ -0,0 +1,12 @@
1
+ import { Feature, GeoJsonProperties, LineString } from 'geojson';
2
+ export type RoutingProfile = "driving" | "walking" | "cycling";
3
+ export interface Destination {
4
+ id: number | string;
5
+ coords: [number, number];
6
+ }
7
+ export interface NearestResult {
8
+ distance: number;
9
+ id: number | string;
10
+ point: [number, number];
11
+ }
12
+ export type RouteFeature = Feature<LineString, GeoJsonProperties>;
@@ -22,7 +22,6 @@ export interface FindNearestMarkerParams {
22
22
  }[];
23
23
  onNearestFound?: (id: number | string | null, coords: [number, number] | null, distanceMeters: number) => void;
24
24
  profile?: Profile;
25
- engine?: Engine;
26
25
  }
27
26
  export interface MarkerMapProps {
28
27
  /**
@@ -1,5 +1,5 @@
1
1
  import { ComponentType, ReactNode } from 'react';
2
- import { VariantMarker } from '../Features/Markers/DefaultMarkers.tsx';
2
+ import { VariantMarker } from '../components/Markers/Markers.tsx';
3
3
  interface CustomMarkerMapProps {
4
4
  geometry: {
5
5
  coordinates: number[];
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "description": "A React library to easily display map with multiple tools",
4
4
  "private": false,
5
5
  "license": "UNLICENSED",
6
- "version": "1.4.2",
6
+ "version": "1.4.4",
7
7
  "type": "module",
8
8
  "main": "dist/main.umd.cjs",
9
9
  "module": "dist/main.js",
@@ -1,11 +0,0 @@
1
- export interface NearestResult {
2
- distance: number;
3
- id: number | string;
4
- point: [number, number];
5
- }
6
- interface Destination {
7
- id: number | string;
8
- coords: [number, number];
9
- }
10
- export declare const mapboxFindNearestPoint: (from: [number, number], destinations: Destination[], profile?: "driving" | "walking" | "cycling", maxDistanceMeters?: number) => Promise<NearestResult | null>;
11
- export default mapboxFindNearestPoint;
@@ -1,3 +0,0 @@
1
- import { Feature, GeoJsonProperties, LineString } from 'geojson';
2
- declare const mapboxRoute: (from: [number, number], to: [number, number], profile?: "driving" | "walking" | "cycling") => Promise<Feature<LineString, GeoJsonProperties> | null>;
3
- export default mapboxRoute;
@@ -1,14 +0,0 @@
1
- import { Feature, GeoJsonProperties, LineString } from 'geojson';
2
- type RoutingProfile = "driving" | "walking" | "cycling";
3
- /**
4
- * Get a route between two points using the OSRM API.
5
- *
6
- * @param from - Coordinates [longitude, latitude] of the starting point
7
- * @param to - Coordinates [longitude, latitude] of the destination point
8
- * @param profile - Routing profile: "driving", "walking", or "cycling"
9
- * @returns A GeoJSON Feature representing the route, or null if not found
10
- *
11
- * ⚠️ Note: This service uses a public OSRM server with usage limitations.
12
- */
13
- declare const OSRMRoute: (from: [number, number], to: [number, number], profile?: RoutingProfile) => Promise<Feature<LineString, GeoJsonProperties> | null>;
14
- export default OSRMRoute;
@@ -1,11 +0,0 @@
1
- export interface NearestResult {
2
- distance: number;
3
- id: number | string;
4
- point: [number, number];
5
- }
6
- interface Destination {
7
- id: number | string;
8
- coords: [number, number];
9
- }
10
- export declare const findNearestWithOSRMTable: (from: [number, number], destinations: Destination[], profile?: "driving" | "walking" | "cycling", maxDistanceMeters?: number) => Promise<NearestResult | null>;
11
- export default findNearestWithOSRMTable;