@tracktor/map 1.2.6 → 1.3.0

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(E,i){typeof exports=="object"&&typeof module<"u"?i(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"],i):(E=typeof globalThis<"u"?globalThis:E||self,i(E["@tracktor/map"]={},E.React,E.muiXLicense,E.mapboxgl,E.designSystem,E.MapboxMap,E.reactUtils))})(this,(function(E,i,ue,oe,C,x,S){"use strict";var Z={exports:{}},Y={};/**
2
+ (function(v,d){typeof exports=="object"&&typeof module<"u"?d(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"],d):(v=typeof globalThis<"u"?globalThis:v||self,d(v["@tracktor/map"]={},v.React,v.muiXLicense,v.mapboxgl,v.designSystem,v.MapboxMap,v.reactUtils))})(this,(function(v,d,de,oe,w,x,A){"use strict";var H={exports:{}},D={};/**
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 ne;function fe(){if(ne)return Y;ne=1;var t=Symbol.for("react.transitional.element"),a=Symbol.for("react.fragment");function s(l,n,u){var m=null;if(u!==void 0&&(m=""+u),n.key!==void 0&&(m=""+n.key),"key"in n){u={};for(var b in n)b!=="key"&&(u[b]=n[b])}else u=n;return n=u.ref,{$$typeof:t,type:l,key:m,ref:n!==void 0?n:null,props:u}}return Y.Fragment=a,Y.jsx=s,Y.jsxs=s,Y}var B={};/**
10
+ */var ne;function fe(){if(ne)return D;ne=1;var t=Symbol.for("react.transitional.element"),o=Symbol.for("react.fragment");function n(s,r,c){var l=null;if(c!==void 0&&(l=""+c),r.key!==void 0&&(l=""+r.key),"key"in r){c={};for(var i in r)i!=="key"&&(c[i]=r[i])}else c=r;return r=c.ref,{$$typeof:t,type:s,key:l,ref:r!==void 0?r:null,props:c}}return D.Fragment=o,D.jsx=n,D.jsxs=n,D}var Y={};/**
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 de(){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===L?null:e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case j:return"Fragment";case F:return"Profiler";case G:return"StrictMode";case V:return"Suspense";case N:return"SuspenseList";case U: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 A:return"Portal";case W:return e.displayName||"Context";case P:return(e._context.displayName||"Context")+".Consumer";case w:var r=e.render;return e=e.displayName,e||(e=r.displayName||r.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case z:return r=e.displayName||null,r!==null?r:t(e.type)||"Memo";case O:r=e._payload,e=e._init;try{return t(e(r))}catch{}}return null}function a(e){return""+e}function s(e){try{a(e);var r=!1}catch{r=!0}if(r){r=console;var o=r.error,f=typeof Symbol=="function"&&Symbol.toStringTag&&e[Symbol.toStringTag]||e.constructor.name||"Object";return o.call(r,"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.",f),a(e)}}function l(e){if(e===j)return"<>";if(typeof e=="object"&&e!==null&&e.$$typeof===O)return"<...>";try{var r=t(e);return r?"<"+r+">":"<...>"}catch{return"<...>"}}function n(){var e=k.A;return e===null?null:e.getOwner()}function u(){return Error("react-stack-top-frame")}function m(e){if(y.call(e,"key")){var r=Object.getOwnPropertyDescriptor(e,"key").get;if(r&&r.isReactWarning)return!1}return e.key!==void 0}function b(e,r){function o(){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)",r))}o.isReactWarning=!0,Object.defineProperty(e,"key",{get:o,configurable:!0})}function h(){var e=t(this.type);return X[e]||(X[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 R(e,r,o,f,q,te){var d=o.ref;return e={$$typeof:v,type:e,key:r,props:o,_owner:f},(d!==void 0?d:null)!==null?Object.defineProperty(e,"ref",{enumerable:!1,get:h}):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:q}),Object.defineProperty(e,"_debugTask",{configurable:!1,enumerable:!1,writable:!0,value:te}),Object.freeze&&(Object.freeze(e.props),Object.freeze(e)),e}function g(e,r,o,f,q,te){var d=r.children;if(d!==void 0)if(f)if(M(d)){for(f=0;f<d.length;f++)T(d[f]);Object.freeze&&Object.freeze(d)}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 T(d);if(y.call(r,"key")){d=t(e);var I=Object.keys(r).filter(function(Pe){return Pe!=="key"});f=0<I.length?"{key: someKey, "+I.join(": ..., ")+": ...}":"{key: someKey}",K[d+f]||(I=0<I.length?"{"+I.join(": ..., ")+": ...}":"{}",console.error(`A props object containing a "key" prop is being spread into JSX:
18
+ */var se;function pe(){return se||(se=1,process.env.NODE_ENV!=="production"&&(function(){function t(e){if(e==null)return null;if(typeof e=="function")return e.$$typeof===L?null:e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case j:return"Fragment";case B:return"Profiler";case W:return"StrictMode";case V:return"Suspense";case N:return"SuspenseList";case k: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 O:return"Portal";case U:return e.displayName||"Context";case G:return(e._context.displayName||"Context")+".Consumer";case P:var a=e.render;return e=e.displayName,e||(e=a.displayName||a.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case z:return a=e.displayName||null,a!==null?a:t(e.type)||"Memo";case F:a=e._payload,e=e._init;try{return t(e(a))}catch{}}return null}function o(e){return""+e}function n(e){try{o(e);var a=!1}catch{a=!0}if(a){a=console;var m=a.error,g=typeof Symbol=="function"&&Symbol.toStringTag&&e[Symbol.toStringTag]||e.constructor.name||"Object";return m.call(a,"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.",g),o(e)}}function s(e){if(e===j)return"<>";if(typeof e=="object"&&e!==null&&e.$$typeof===F)return"<...>";try{var a=t(e);return a?"<"+a+">":"<...>"}catch{return"<...>"}}function r(){var e=J.A;return e===null?null:e.getOwner()}function c(){return Error("react-stack-top-frame")}function l(e){if(M.call(e,"key")){var a=Object.getOwnPropertyDescriptor(e,"key").get;if(a&&a.isReactWarning)return!1}return e.key!==void 0}function i(e,a){function m(){X||(X=!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)",a))}m.isReactWarning=!0,Object.defineProperty(e,"key",{get:m,configurable:!0})}function f(){var e=t(this.type);return Q[e]||(Q[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(e,a,m,g,C,y){var R=m.ref;return e={$$typeof:_,type:e,key:a,props:m,_owner:g},(R!==void 0?R: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:C}),Object.defineProperty(e,"_debugTask",{configurable:!1,enumerable:!1,writable:!0,value:y}),Object.freeze&&(Object.freeze(e.props),Object.freeze(e)),e}function b(e,a,m,g,C,y){var R=a.children;if(R!==void 0)if(g)if(te(R)){for(g=0;g<R.length;g++)h(R[g]);Object.freeze&&Object.freeze(R)}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 h(R);if(M.call(a,"key")){R=t(e);var I=Object.keys(a).filter(function(Me){return Me!=="key"});g=0<I.length?"{key: someKey, "+I.join(": ..., ")+": ...}":"{key: someKey}",q[R+g]||(I=0<I.length?"{"+I.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} />`,f,d,I,d),K[d+f]=!0)}if(d=null,o!==void 0&&(s(o),d=""+o),m(r)&&(s(r.key),d=""+r.key),"key"in r){o={};for(var re in r)re!=="key"&&(o[re]=r[re])}else o=r;return d&&b(o,typeof e=="function"?e.displayName||e.name||"Unknown":e),R(e,d,o,n(),q,te)}function T(e){_(e)?e._store&&(e._store.validated=1):typeof e=="object"&&e!==null&&e.$$typeof===O&&(e._payload.status==="fulfilled"?_(e._payload.value)&&e._payload.value._store&&(e._payload.value._store.validated=1):e._store&&(e._store.validated=1))}function _(e){return typeof e=="object"&&e!==null&&e.$$typeof===v}var p=i,v=Symbol.for("react.transitional.element"),A=Symbol.for("react.portal"),j=Symbol.for("react.fragment"),G=Symbol.for("react.strict_mode"),F=Symbol.for("react.profiler"),P=Symbol.for("react.consumer"),W=Symbol.for("react.context"),w=Symbol.for("react.forward_ref"),V=Symbol.for("react.suspense"),N=Symbol.for("react.suspense_list"),z=Symbol.for("react.memo"),O=Symbol.for("react.lazy"),U=Symbol.for("react.activity"),L=Symbol.for("react.client.reference"),k=p.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,y=Object.prototype.hasOwnProperty,M=Array.isArray,D=console.createTask?console.createTask:function(){return null};p={react_stack_bottom_frame:function(e){return e()}};var H,X={},J=p.react_stack_bottom_frame.bind(p,u)(),Q=D(l(u)),K={};B.Fragment=j,B.jsx=function(e,r,o){var f=1e4>k.recentlyCreatedOwnerStacks++;return g(e,r,o,!1,f?Error("react-stack-top-frame"):J,f?D(l(e)):Q)},B.jsxs=function(e,r,o){var f=1e4>k.recentlyCreatedOwnerStacks++;return g(e,r,o,!0,f?Error("react-stack-top-frame"):J,f?D(l(e)):Q)}})()),B}var se;function pe(){return se||(se=1,process.env.NODE_ENV==="production"?Z.exports=fe():Z.exports=de()),Z.exports}var c=pe();const me=i.createContext({licenceMapbox:"",licenseMuiX:""}),Ee=({children:t,licenseMuiX:a,licenceMapbox:s})=>{i.useEffect(()=>{a&&ue.LicenseInfo.setLicenseKey(a)},[a]);const l=i.useMemo(()=>({licenceMapbox:s,licenseMuiX:a}),[a,s]);return s&&(oe.accessToken=s),c.jsx(me.Provider,{value:l,children:t})},ge=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`}}),le=t=>Number.isFinite(t.lng)&&Number.isFinite(t.lat),ie=t=>S.isString(t)||S.isNumber(t)?String(t):JSON.stringify(t),ye=t=>{if(!t)return[];const a=S.isArray(t)?t:t.type==="FeatureCollection"?t.features:[t],s=[];for(const l of a){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},_e=({markers:t=[],features:a,padding:s=50,duration:l=1e3,disableAnimation:n,fitBounds:u=!0,animationKey:m,openPopup:b})=>{const{current:h}=x.useMap(),R=i.useRef(""),g=i.useMemo(()=>t.filter(le),[t]),T=i.useMemo(()=>ye(a),[a]),_=i.useMemo(()=>{const p=[...g.map(v=>[v.lng,v.lat]),...T];return p.length===0?null:p.reduce((v,[A,j])=>v.extend([A,j]),new oe.LngLatBounds)},[g,T]);return i.useEffect(()=>{if(b){m!==void 0?R.current=ie(m):R.current="__initial_skip__";return}if(h&&u&&_){if(m!==void 0){const p=ie(m);if(R.current===p)return;R.current=p}else if(R.current==="__initial_skip__")return;if(!_.isEmpty()){if(g.length===1&&T.length===0){const p=g[0];h.flyTo({center:[p.lng,p.lat],duration:n?0:l,zoom:14});return}h.fitBounds([_.getSouthWest().toArray(),_.getNorthEast().toArray()],{duration:n?0:l,padding:s})}}},[h,_,s,l,n,m,u,g,T,b]),null},Te=async(t,a,s="driving")=>{const n=`https://api.mapbox.com/directions/v5/mapbox/${s}/${t.join(",")};${a.join(",")}?geometries=geojson&overview=full&access_token=undefined`,u=await fetch(n);return u.ok?{geometry:(await u.json()).routes[0].geometry,properties:{},type:"Feature"}:null},$={satellite:"mapbox://styles/mapbox/satellite-streets-v12",street:{dark:"mapbox://styles/mapbox/dark-v11",light:"mapbox://styles/mapbox/streets-v12"}},ce=(t,a)=>{const s=a==="dark";switch(t){case"satellite":return $.satellite;default:return s?$.street.dark:$.street.light}},ve=({mapStyle:t,theme:a,baseMapView:s,doubleClickZoom:l,cooperativeGestures:n})=>({cooperativeGestures:n,doubleClickZoom:l,failIfMajorPerformanceCaveat:!1,style:t??ce(s,a)}),be=({center:t,zoom:a,openPopup:s,openPopupOnHover:l,markers:n,baseMapView:u,mapStyle:m,projection:b,cooperativeGestures:h,doubleClickZoom:R,theme:g,from:T,to:_,profile:p})=>{const v=C.useTheme(),A=i.useRef(null),[j,G]=i.useState(null),[F,P]=i.useState(s??null),W=i.useMemo(()=>{if(S.isArray(t))return{latitude:t[1],longitude:t[0],zoom:a}},[t,a]),w=i.useMemo(()=>m||ce(u,g??v.palette.mode),[u,m,g,v.palette.mode]),{style:V,cooperativeGestures:N,doubleClickZoom:z}=ve({baseMapView:u,cooperativeGestures:h,doubleClickZoom:R,mapStyle:w,theme:g??v.palette.mode}),O=()=>{const y=A.current?.getMap?.();y&&y.setStyle(w)},U=(y,M)=>{!l&&M&&P(y)},L=(y,M)=>{l&&P(M?y:null)},k=i.useMemo(()=>F?n?.find(y=>y.id===F)??null:null,[F,n]);return i.useEffect(()=>{P(s??null)},[s]),i.useEffect(()=>{T&&_&&Te(T,_,p).then(y=>{y&&G(y)})},[T,p,_]),{coopGestures:N,coreStyle:V,dblZoom:z,handleMapLoad:O,handleMarkerClick:U,handleMarkerHover:L,initialCenter:W,mapRef:A,route:j,selected:F,selectedMarker:k,setSelected:P}},ke="#000000",he="#FFFFFF",ee={default:"#009ba6",primary:"#3F83F8",secondary:"#9C27B0",success:"#4CAF50",warning:"#FF9800"},Re=t=>t in ee,xe=({color:t,variant:a})=>{const{palette:s}=C.useTheme(),l=s.mode==="dark"?ke:he,n=a&&Re(a)&&ee[a]||t||(S.isString(a)?a:ee.default);return c.jsx(C.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}})},je=t=>S.isArray(t)?{features:t,type:"FeatureCollection"}:t.type==="FeatureCollection"?t:{features:[t],type:"FeatureCollection"},Ce=({features:t})=>{if(!t)return null;const a=je(t),s=a.features.filter(n=>n.geometry.type==="Polygon"||n.geometry.type==="MultiPolygon"),l=a.features.filter(n=>n.geometry.type==="LineString"||n.geometry.type==="MultiLineString");return c.jsxs(c.Fragment,{children:[s.length>0&&c.jsx(x.Source,{id:"features-polygon",type:"geojson",data:{features:s,type:"FeatureCollection"},children:c.jsx(x.Layer,{id:"polygon-fill",type:"fill",paint:{"fill-color":["coalesce",["get","color"],"#4ADE80"],"fill-opacity":.4}})}),l.length>0&&c.jsx(x.Source,{id:"features-line",type:"geojson",data:{features:l,type:"FeatureCollection"},children:c.jsx(x.Layer,{id:"line-stroke",type:"line",paint:{"line-color":["coalesce",["get","color"],"#3B82F6"],"line-opacity":.9,"line-width":3}})})]})},Se=({containerStyle:t,square:a,loading:s,height:l=300,width:n="100%",center:u=[2.3522,48.8566],zoom:m=5,popupMaxWidth:b,openPopup:h,openPopupOnHover:R,markers:g=[],fitBounds:T=!0,fitBoundsPadding:_,fitBoundDuration:p,fitBoundsAnimationKey:v,disableAnimation:A,mapStyle:j,onMapClick:G,baseMapView:F,cooperativeGestures:P=!0,doubleClickZoom:W=!0,projection:w,theme:V,features:N,from:z,to:O,profile:U="driving",itineraryLineStyle:L})=>{const{selectedMarker:k,setSelected:y,handleMarkerClick:M,handleMarkerHover:D,handleMapLoad:H,mapRef:X,dblZoom:J,initialCenter:Q,coreStyle:K,coopGestures:e,route:r}=be({baseMapView:F,center:u,cooperativeGestures:P,doubleClickZoom:W,from:z,mapStyle:j,markers:g,openPopup:h,openPopupOnHover:R,profile:U,projection:w,theme:V,to:O,zoom:m});return c.jsxs(C.Box,{"data-testid":"mapbox-container",sx:{height:l,position:"relative",width:n,...t},children:[c.jsx(C.GlobalStyles,{styles:ge}),s&&c.jsx(C.Skeleton,{"data-testid":"skeleton-loader",width:n,height:l,variant:a?"rectangular":"rounded",sx:{inset:0,position:"absolute",zIndex:2}}),!s&&c.jsxs(x,{ref:X,onLoad:H,cooperativeGestures:e,doubleClickZoom:J,mapStyle:K,projection:w,initialViewState:Q,style:{height:"100%",width:"100%"},mapboxAccessToken:void 0,onClick:o=>{G?.(o.lngLat.lng,o.lngLat.lat)},children:[g.filter(le).map(o=>c.jsx(x.Marker,{longitude:o.lng,latitude:o.lat,anchor:"bottom",onClick:f=>{f.originalEvent.stopPropagation(),o.id&&M(o.id,!!o.Tooltip)},children:c.jsx(C.Box,{component:"div",onMouseEnter:()=>{o.id&&D(o.id,!!o.Tooltip)},onMouseLeave:()=>D(null),style:{cursor:o.Tooltip?"pointer":"default"},children:o.IconComponent?c.jsx(o.IconComponent,{...o.iconProps}):c.jsx(xe,{color:o.color,variant:o.variant})})},o.id)),k?.Tooltip&&c.jsx(x.Popup,{longitude:S.isNumber(k.lng)?k.lng:0,latitude:S.isNumber(k.lat)?k.lat:0,anchor:"top",onClose:()=>y(null),maxWidth:b,closeOnClick:!0,closeOnMove:!1,children:c.jsx(C.Box,{component:"div",sx:{minHeight:60,minWidth:240},children:k.Tooltip})}),r&&c.jsx(x.Source,{type:"geojson",data:r,children:c.jsx(x.Layer,{type:"line",paint:{"line-color":L?.color??"#9c3333","line-opacity":L?.opacity??.8,"line-width":L?.width??4},layout:{"line-cap":"round","line-join":"round"}})}),N&&c.jsx(Ce,{features:N}),T&&c.jsx(_e,{markers:g,features:N,padding:_,duration:A?0:p,animationKey:v,openPopup:!!h})]},`${e}-${J}-${w}-${j}`)]})},Ae=i.memo(Se),Fe=(t,a)=>Number.isFinite(t)&&Number.isFinite(a)&&t>=-90&&t<=90&&a>=-180&&a<=180;E.DEFAULT_CENTER_LAT=46.8677,E.DEFAULT_CENTER_LNG=2.333,E.MapProvider=Ee,E.MarkerMap=Ae,E.isValidLatLng=Fe,Object.defineProperty(E,Symbol.toStringTag,{value:"Module"})}));
23
+ <%s key={someKey} {...props} />`,g,R,I,R),q[R+g]=!0)}if(R=null,m!==void 0&&(n(m),R=""+m),l(a)&&(n(a.key),R=""+a.key),"key"in a){m={};for(var re in a)re!=="key"&&(m[re]=a[re])}else m=a;return R&&i(m,typeof e=="function"?e.displayName||e.name||"Unknown":e),E(e,R,m,r(),C,y)}function h(e){T(e)?e._store&&(e._store.validated=1):typeof e=="object"&&e!==null&&e.$$typeof===F&&(e._payload.status==="fulfilled"?T(e._payload.value)&&e._payload.value._store&&(e._payload.value._store.validated=1):e._store&&(e._store.validated=1))}function T(e){return typeof e=="object"&&e!==null&&e.$$typeof===_}var u=d,_=Symbol.for("react.transitional.element"),O=Symbol.for("react.portal"),j=Symbol.for("react.fragment"),W=Symbol.for("react.strict_mode"),B=Symbol.for("react.profiler"),G=Symbol.for("react.consumer"),U=Symbol.for("react.context"),P=Symbol.for("react.forward_ref"),V=Symbol.for("react.suspense"),N=Symbol.for("react.suspense_list"),z=Symbol.for("react.memo"),F=Symbol.for("react.lazy"),k=Symbol.for("react.activity"),L=Symbol.for("react.client.reference"),J=u.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,M=Object.prototype.hasOwnProperty,te=Array.isArray,S=console.createTask?console.createTask:function(){return null};u={react_stack_bottom_frame:function(e){return e()}};var X,Q={},Z=u.react_stack_bottom_frame.bind(u,c)(),K=S(s(c)),q={};Y.Fragment=j,Y.jsx=function(e,a,m){var g=1e4>J.recentlyCreatedOwnerStacks++;return b(e,a,m,!1,g?Error("react-stack-top-frame"):Z,g?S(s(e)):K)},Y.jsxs=function(e,a,m){var g=1e4>J.recentlyCreatedOwnerStacks++;return b(e,a,m,!0,g?Error("react-stack-top-frame"):Z,g?S(s(e)):K)}})()),Y}var ae;function me(){return ae||(ae=1,process.env.NODE_ENV==="production"?H.exports=fe():H.exports=pe()),H.exports}var p=me();const ge=d.createContext({licenceMapbox:"",licenseMuiX:""}),ye=({children:t,licenseMuiX:o,licenceMapbox:n})=>{d.useEffect(()=>{o&&de.LicenseInfo.setLicenseKey(o)},[o]);const s=d.useMemo(()=>({licenceMapbox:n,licenseMuiX:o}),[o,n]);return n&&(oe.accessToken=n),p.jsx(ge.Provider,{value:s,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`}}),le=t=>Number.isFinite(t.lng)&&Number.isFinite(t.lat),ie=t=>A.isString(t)||A.isNumber(t)?String(t):JSON.stringify(t),Re=t=>{if(!t)return[];const o=A.isArray(t)?t:t.type==="FeatureCollection"?t.features:[t],n=[];for(const s of o){const r=s.geometry;r.type==="Point"&&n.push(r.coordinates),r.type==="LineString"&&n.push(...r.coordinates),r.type==="Polygon"&&n.push(...r.coordinates[0])}return n},be=({markers:t=[],features:o,padding:n=50,duration:s=1e3,disableAnimation:r,fitBounds:c=!0,animationKey:l,openPopup:i})=>{const{current:f}=x.useMap(),E=d.useRef(""),b=d.useMemo(()=>t.filter(le),[t]),h=d.useMemo(()=>Re(o),[o]),T=d.useMemo(()=>{const u=[...b.map(_=>[_.lng,_.lat]),...h];return u.length===0?null:u.reduce((_,[O,j])=>_.extend([O,j]),new oe.LngLatBounds)},[b,h]);return d.useEffect(()=>{if(i){l!==void 0?E.current=ie(l):E.current="__initial_skip__";return}if(f&&c&&T){if(l!==void 0){const u=ie(l);if(E.current===u)return;E.current=u}else if(E.current==="__initial_skip__")return;if(!T.isEmpty()){if(b.length===1&&h.length===0){const u=b[0];f.flyTo({center:[u.lng,u.lat],duration:r?0:s,zoom:14});return}f.fitBounds([T.getSouthWest().toArray(),T.getNorthEast().toArray()],{duration:r?0:s,padding:n})}}},[f,T,n,s,r,l,c,b,h,i]),null},he=async(t,o,n="driving")=>{const r=`https://api.mapbox.com/directions/v5/mapbox/${n}/${t.join(",")};${o.join(",")}?geometries=geojson&overview=full&access_token=undefined`,c=await fetch(r);return c.ok?{geometry:(await c.json()).routes[0].geometry,properties:{},type:"Feature"}:null},_e=async(t,o,n="driving")=>{const c=`${`https://routing.openstreetmap.de/${{cycling:"routed-bike",driving:"routed-car",walking:"routed-foot"}[n]}`}/route/v1/driving/${t.join(",")};${o.join(",")}?overview=full&geometries=geojson`;try{const l=await fetch(c);if(!l.ok)return console.error("OSRM API error:",l.status,l.statusText),null;const i=await l.json();return!i.routes||i.routes.length===0?(console.warn("No routes found in OSRM response."),null):{geometry:i.routes[0].geometry,properties:{distance:i.routes[0].distance,duration:i.routes[0].duration},type:"Feature"}}catch(l){return console.error("Error fetching OSRM route:",l),null}},ce=({profile:t,routeService:o,to:n,from:s,itineraryLineStyle:r})=>{const[c,l]=d.useState(null);return d.useEffect(()=>{s&&n&&(async()=>{try{const i=o==="OSRM"?await _e(s,n,t):await he(s,n,t);i?l(i):(console.warn("No route found between the specified points."),l(null))}catch(i){console.error("Error fetching route:",i),l(null)}})()},[s,n,t,o]),c?p.jsx(x.Source,{type:"geojson",data:c,children:p.jsx(x.Layer,{type:"line",paint:{"line-color":r?.color??"#9c3333","line-opacity":r?.opacity??.8,"line-width":r?.width??4},layout:{"line-cap":"round","line-join":"round"}})}):null},$={satellite:"mapbox://styles/mapbox/satellite-streets-v12",street:{dark:"mapbox://styles/mapbox/dark-v11",light:"mapbox://styles/mapbox/streets-v12"}},ue=(t,o)=>{const n=o==="dark";switch(t){case"satellite":return $.satellite;default:return n?$.street.dark:$.street.light}},ve=({mapStyle:t,theme:o,baseMapView:n,doubleClickZoom:s,cooperativeGestures:r})=>({cooperativeGestures:r,doubleClickZoom:s,failIfMajorPerformanceCaveat:!1,style:t??ue(n,o)}),Te=({center:t,zoom:o,openPopup:n,openPopupOnHover:s,markers:r,baseMapView:c,mapStyle:l,projection:i,cooperativeGestures:f,doubleClickZoom:E,theme:b})=>{const h=w.useTheme(),T=d.useRef(null),[u,_]=d.useState(n??null),[O,j]=d.useState(!1),W=d.useMemo(()=>{if(A.isArray(t))return{latitude:t[1],longitude:t[0],zoom:o}},[t,o]),B=d.useMemo(()=>l||ue(c,b??h.palette.mode),[c,l,b,h.palette.mode]),{style:G,cooperativeGestures:U,doubleClickZoom:P}=ve({baseMapView:c,cooperativeGestures:f,doubleClickZoom:E,mapStyle:B,theme:b??h.palette.mode}),V=()=>{const k=T.current?.getMap?.();k&&k.once("idle",()=>{j(!0)})},N=(k,L)=>{!s&&L&&_(k)},z=(k,L)=>{s&&_(L?k:null)},F=d.useMemo(()=>u?r?.find(k=>k.id===u)??null:null,[u,r]);return d.useEffect(()=>{_(n??null)},[n]),{coopGestures:U,coreStyle:G,dblZoom:P,handleMapLoad:V,handleMarkerClick:N,handleMarkerHover:z,initialCenter:W,isMapReady:O,mapRef:T,selected:u,selectedMarker:F,setSelected:_}},ke="#000000",xe="#FFFFFF",ee={default:"#009ba6",primary:"#3F83F8",secondary:"#9C27B0",success:"#4CAF50",warning:"#FF9800"},je=t=>t in ee,Se=({color:t,variant:o})=>{const{palette:n}=w.useTheme(),s=n.mode==="dark"?ke:xe,r=o&&je(o)&&ee[o]||t||(A.isString(o)?o:ee.default);return p.jsx(w.Box,{component:"div",style:{backgroundColor:s,border:`7px solid ${r}`,borderRadius:"50%",boxShadow:"0 0 4px rgba(0,0,0,0.3)",height:28,width:28}})},Ce=async(t,o,n="driving",s)=>{const r={cycling:"routed-bike",driving:"routed-car",walking:"routed-foot"},c=[t,...o.map(u=>u.coords)].map(u=>`${u[0]},${u[1]}`).join(";"),l=`https://routing.openstreetmap.de/${r[n]}/table/v1/driving/${c}?sources=0&annotations=distance`,i=await fetch(l);if(!i.ok)return console.error("Error OSRM Table:",i.status,i.statusText),null;const f=await i.json();if(!(f.distances&&Array.isArray(f.distances))||f.distances.length===0)return console.error("OSRM Table unexpected response:",f),null;const E=f.distances[0];if(!E||E.length===0)return console.error("OSRM Table first row empty:",f),null;let b=-1,h=1/0;for(let u=1;u<E.length;u++){const _=E[u];_!=null&&_<h&&(h=_,b=u)}if(b===-1)return null;const T=o[b-1];return s!=null&&h>s?null:{distance:h,id:T.id,point:T.coords}},we=({origin:t,maxDistanceMeters:o,destinations:n,onNearestFound:s})=>{const[r,c]=d.useState(null),l=d.useRef(null);return d.useEffect(()=>{if(!t||t.length!==2||!n?.length)return;const i=n.map(f=>({coords:[f.lng,f.lat],id:f.id}));(async()=>{const f=await Ce(t,i,"driving",o);f&&c(E=>!E||E.id!==f.id||E.distance!==f.distance?f:E)})()},[t,o,n]),d.useEffect(()=>{if(!r){s?.(null,null,0),l.current=null;return}if(o!=null&&r.distance>o){s?.(null,null,0),l.current=null;return}const i=l.current;(!i||i.id!==r.id||i.distance!==r.distance)&&(s?.(r.id,r.point,r.distance),l.current=r)},[r,s,o]),r?.point?p.jsx(ce,{from:t,to:r.point,profile:"driving",routeService:"OSRM"}):null},Ae=d.memo(we),Oe=t=>A.isArray(t)?{features:t,type:"FeatureCollection"}:t.type==="FeatureCollection"?t:{features:[t],type:"FeatureCollection"},Pe=({features:t})=>{if(!t)return null;const o=Oe(t),n=o.features.filter(r=>r.geometry.type==="Polygon"||r.geometry.type==="MultiPolygon"),s=o.features.filter(r=>r.geometry.type==="LineString"||r.geometry.type==="MultiLineString");return p.jsxs(p.Fragment,{children:[n.length>0&&p.jsx(x.Source,{id:"features-polygon",type:"geojson",data:{features:n,type:"FeatureCollection"},children:p.jsx(x.Layer,{id:"polygon-fill",type:"fill",paint:{"fill-color":["coalesce",["get","color"],"#4ADE80"],"fill-opacity":.4}})}),s.length>0&&p.jsx(x.Source,{id:"features-line",type:"geojson",data:{features:s,type:"FeatureCollection"},children:p.jsx(x.Layer,{id:"line-stroke",type:"line",paint:{"line-color":["coalesce",["get","color"],"#3B82F6"],"line-opacity":.9,"line-width":3}})})]})},Ne=({containerStyle:t,square:o,loading:n,height:s=300,width:r="100%",center:c=[2.3522,48.8566],zoom:l=5,popupMaxWidth:i,openPopup:f,openPopupOnHover:E,markers:b=[],fitBounds:h=!0,fitBoundsPadding:T,fitBoundDuration:u,fitBoundsAnimationKey:_,disableAnimation:O,mapStyle:j,onMapClick:W,baseMapView:B,cooperativeGestures:G=!0,doubleClickZoom:U=!0,projection:P,theme:V,features:N,from:z,to:F,profile:k="driving",itineraryLineStyle:L,routeService:J="OSRM",findNearestMarker:M,onNearestFound:te})=>{const{selectedMarker:S,setSelected:X,handleMarkerClick:Q,handleMarkerHover:Z,handleMapLoad:K,mapRef:q,dblZoom:e,initialCenter:a,coreStyle:m,coopGestures:g,isMapReady:C}=Te({baseMapView:B,center:c,cooperativeGestures:G,doubleClickZoom:U,mapStyle:j,markers:b,openPopup:f,openPopupOnHover:E,projection:P,theme:V,zoom:l});return p.jsxs(w.Box,{"data-testid":"mapbox-container",sx:{height:s,position:"relative",width:r,...t},children:[p.jsx(w.GlobalStyles,{styles:Ee}),n&&p.jsx(w.Skeleton,{"data-testid":"skeleton-loader",width:r,height:s,variant:o?"rectangular":"rounded",sx:{inset:0,position:"absolute",zIndex:2}}),!n&&p.jsxs(x,{ref:q,onLoad:K,cooperativeGestures:g,doubleClickZoom:e,mapStyle:m,projection:P,initialViewState:a,style:{height:"100%",width:"100%"},mapboxAccessToken:void 0,onClick:y=>{W?.(y.lngLat.lng,y.lngLat.lat)},children:[C&&b.filter(le).map(y=>p.jsx(x.Marker,{longitude:y.lng,latitude:y.lat,anchor:"bottom",onClick:R=>{R.originalEvent.stopPropagation(),y.id&&Q(y.id,!!y.Tooltip)},children:p.jsx(w.Box,{component:"div",onMouseEnter:()=>{y.id&&Z(y.id,!!y.Tooltip)},onMouseLeave:()=>Z(null),style:{cursor:y.Tooltip?"pointer":"default"},children:y.IconComponent?p.jsx(y.IconComponent,{...y.iconProps}):p.jsx(Se,{color:y.color,variant:y.variant})})},y.id)),C&&S?.Tooltip&&p.jsx(x.Popup,{longitude:A.isNumber(S.lng)?S.lng:0,latitude:A.isNumber(S.lat)?S.lat:0,anchor:"top",onClose:()=>X(null),maxWidth:i,closeOnClick:!0,closeOnMove:!1,children:p.jsx(w.Box,{component:"div",sx:{minHeight:60,minWidth:240},children:S.Tooltip})}),C&&p.jsx(ce,{from:z,to:F,profile:k,routeService:J,itineraryLineStyle:L}),C&&p.jsx(Ae,{origin:M?.origin,destinations:M?.destinations,onNearestFound:te,maxDistanceMeters:M?.maxDistanceMeters}),N&&p.jsx(Pe,{features:N}),h&&p.jsx(be,{markers:b,features:N,padding:T,duration:O?0:u,animationKey:_,openPopup:!!f})]},`${g}-${e}-${P}-${j}-${M?.maxDistanceMeters}`)]})},Fe=d.memo(Ne),Le=(t,o)=>Number.isFinite(t)&&Number.isFinite(o)&&t>=-90&&t<=90&&o>=-180&&o<=180;v.DEFAULT_CENTER_LAT=46.8677,v.DEFAULT_CENTER_LNG=2.333,v.MapProvider=ye,v.MarkerMap=Fe,v.isValidLatLng=Le,Object.defineProperty(v,Symbol.toStringTag,{value:"Module"})}));
@@ -0,0 +1,3 @@
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;
@@ -0,0 +1,14 @@
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;
@@ -0,0 +1,11 @@
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;
@@ -3,6 +3,21 @@ import { Feature, FeatureCollection } from 'geojson';
3
3
  import { LngLatLike } from 'mapbox-gl';
4
4
  import { ProjectionSpecification as ReactMapProjection } from 'react-map-gl';
5
5
  import { MarkerProps } from './MarkerProps';
6
+ export interface ItineraryLineStyle {
7
+ color: string;
8
+ width: number;
9
+ opacity: number;
10
+ }
11
+ export interface FindNearestMarkerParams {
12
+ origin?: [number, number];
13
+ maxDistanceMeters?: number;
14
+ destinations?: {
15
+ lng: number;
16
+ lat: number;
17
+ id: number;
18
+ }[];
19
+ onNearestFound?: (id: number | string | null, coords: [number, number] | null, distanceMeters: number) => void;
20
+ }
6
21
  export interface MarkerMapProps {
7
22
  /**
8
23
  * Automatically adjusts the map's zoom and center
@@ -142,9 +157,25 @@ export interface MarkerMapProps {
142
157
  * If not provided, default styles will be used.
143
158
  * @default { color: "#3b82f6", width: 4, opacity: 0.8 }
144
159
  */
145
- itineraryLineStyle?: Partial<{
146
- color: string;
147
- width: number;
148
- opacity: number;
149
- }>;
160
+ itineraryLineStyle?: Partial<ItineraryLineStyle>;
161
+ /**
162
+ * Route service to use for calculating routes.
163
+ * @default "OSRM"
164
+ * Options are:
165
+ * - "OSRM": Uses the public OSRM API for routing.
166
+ * - "Mapbox": Uses the Mapbox Directions API for routing.
167
+ */
168
+ routeService?: "OSRM" | "Mapbox";
169
+ /**
170
+ * Parameters for finding the nearest marker to a given point.
171
+ * If provided, the map will automatically center and zoom
172
+ * to include the nearest marker within the specified distance.
173
+ */
174
+ findNearestMarker?: FindNearestMarkerParams;
175
+ /**
176
+ * Callback triggered when the nearest marker is found.
177
+ * @param id
178
+ * @param coords
179
+ */
180
+ onNearestFound?: (id: number | string | null, coords: [number, number] | null, distanceMeters: number) => void;
150
181
  }
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.2.6",
6
+ "version": "1.3.0",
7
7
  "type": "module",
8
8
  "main": "dist/main.umd.cjs",
9
9
  "module": "dist/main.js",
@@ -1,3 +0,0 @@
1
- import { Feature, GeoJsonProperties, LineString } from 'geojson';
2
- declare const getRoute: (from: [number, number], to: [number, number], profile?: "driving" | "walking" | "cycling") => Promise<Feature<LineString, GeoJsonProperties> | null>;
3
- export default getRoute;