!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).BasemapControl=t()}(this,(function(){"use strict";return class{constructor(e){this.basemaps=e.basemaps??{},this.initialBasemap=e.initialBasemap??Object.keys(this.basemaps)[0],this.config=e,this._container=document.createElement("div")}onAdd(e){const t=this._container;t.className="maplibregl-ctrl maplibregl-ctrl-group maplibre-ctrl-basemap",t.innerHTML='<button>\n            <svg fill="#000000" height="18" width="18" version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" \n            viewBox="0 0 421.59 421.59" xml:space="preserve">\n            <g>\n                <g>\n                    <path d="M400.491,291.098l-58.865-36.976l58.864-36.971c2.185-1.372,3.511-3.771,3.511-6.351s-1.326-4.979-3.511-6.352\n                        l-58.865-36.977l58.862-36.973c2.185-1.373,3.511-3.771,3.511-6.351s-1.326-4.979-3.511-6.351L214.783,1.149\n                        c-2.438-1.532-5.54-1.532-7.979,0L21.1,117.796c-2.185,1.373-3.511,3.771-3.511,6.351c0,2.58,1.326,4.979,3.511,6.351\n                        l58.861,36.972l-58.859,36.978c-2.185,1.373-3.51,3.771-3.51,6.351c0,2.58,1.326,4.979,3.511,6.351l58.859,36.97l-58.859,36.979\n                        c-2.185,1.372-3.51,3.771-3.51,6.351c0,2.58,1.326,4.979,3.511,6.351l185.7,116.64c1.22,0.766,2.604,1.149,3.989,1.149\n                        s2.77-0.383,3.989-1.149L400.491,303.8c2.185-1.372,3.511-3.771,3.511-6.351C404.002,294.869,402.676,292.47,400.491,291.098z\n                        M39.189,124.147l171.605-107.79l171.604,107.79l-171.604,107.79L39.189,124.147z M39.191,210.798l54.869-34.471l112.744,70.818\n                        c1.219,0.766,2.604,1.149,3.989,1.149c1.385,0,2.77-0.383,3.989-1.149l112.742-70.817l54.875,34.47L210.792,318.582\n                        L39.191,210.798z M210.792,405.232L39.191,297.448l54.87-34.472l112.742,70.814c1.22,0.766,2.604,1.149,3.989,1.149\n                        s2.77-0.383,3.989-1.149l112.744-70.812l54.876,34.47L210.792,405.232z"/>\n                </g>\n            </g>\n            </svg>\n        </button>';const i=document.createElement("div");i.style.width=this.config.width??"150px",i.style.height=this.config.height??"100px",i.style.maxWidth="250px",i.style.maxHeight="250px",i.style.display="none",i.style.position="absolute",i.style.top="0",i.style.left="0",i.style.backgroundColor="white",i.style.border="2px solid #ccc",i.style.borderRadius="5px",i.style.zIndex="100",i.style.flexDirection="column",i.style.padding="2px 0px",i.style.overflowY="auto",i.style.overflowX="hidden";let n="";const s=t=>{e.setLayoutProperty(n,"visibility","none"),e.setLayoutProperty(t.target.value,"visibility","visible"),n=t.target.value};Object.entries(this.basemaps).map((([e,l])=>{let o;o=this.initialBasemap===e?"visible":"none";const a=document.createElement("div");a.style.display="flex",a.style.alignItems="center",a.style.padding="2px 5px",a.style.cursor="pointer",a.onmouseenter=()=>{a.style.backgroundColor="#eee"},a.onmouseleave=()=>{a.style.backgroundColor="white"};const p=document.createElement("input");p.style.cursor="pointer",p.style.margin="0px",p.type="radio",p.id=`basemap-${e}`,p.name="options",p.value=e,"visible"===o&&(n=e,p.checked=!0),p.addEventListener("change",s);const c=document.createElement("label");c.style.padding="0px 5px",c.style.cursor="pointer",c.style.display="inline-block",c.style.width="calc(100% - 13px)",c.htmlFor=`basemap-${e}`,c.textContent=l.name,a.appendChild(p),a.appendChild(c),i.appendChild(a),t.appendChild(i)}));const l=()=>{const t=document.getElementsByClassName("maplibre-ctrl-basemap")[0].getBoundingClientRect(),n=t.top,s=t.left,l=e.getCanvas().getBoundingClientRect(),o=l.height,a=l.width;i.style.display="flex";const p=i.getBoundingClientRect(),c=p.height,r=p.width;i.style.marginTop=n+c>o?`-${c-t.height}px`:"0px",i.style.marginLeft=s+r>a?`-${r}px`:`${t.width}px`};return this.config.keepOpen&&setTimeout(l,0),t.onclick=()=>{this.config.keepOpen&&("none"===i.style.display?i.style.display="flex":i.style.display="none")},t.onmouseenter=()=>{this.config.keepOpen||l()},t.onmouseleave=()=>{this.config.keepOpen||(i.style.display="none")},Object.entries(this.basemaps).map((([t,i])=>{let n;n=this.initialBasemap===t?"visible":"none";const s={type:"raster",tiles:i.tiles,tileSize:256,minzoom:i.minZoom??0,maxzoom:i.maxZoom??18,attribution:i.attribution??""},l={id:t,type:"raster",source:t,layout:{visibility:n}};e.addSource(t,s),e.addLayer(l)})),t}onRemove(e){this._container.parentNode?.removeChild(this._container),Object.entries(this.basemaps).map((([t])=>{e.removeLayer(t),e.removeSource(t)}))}}}));
//# sourceMappingURL=maplibre-basemaps.min.js.map
