1/*! Version: 0.6.1 2Date: 2025-01-13 */ 3 4L.Control.GroupedLayers=L.Control.extend({options:{sortLayers:!0,sortGroups:!0,sortBaseLayers:!1,collapsed:!0,position:"topright",autoZIndex:!0,exclusiveGroups:[],groupCheckboxes:!1,groupsCollapsable:!1,groupsCollapsed:!0,groupsExpandedClass:"leaflet-control-layers-group-collapse-default",groupsCollapsedClass:"leaflet-control-layers-group-expand-default",sortFunction:function(a,b){return b>a?-1:a>b?1:0}},initialize:function(a,b,c){var d,e;L.Util.setOptions(this,c),this._layers=[],this._lastZIndex=0,this._handlingClick=!1,this._groupList=[],this._domGroups=[];for(d in a)this._addLayer(a[d],d);for(d in b)for(e in b[d])this._addLayer(b[d][e],e,d,!0)},onAdd:function(a){return this._initLayout(),this._update(),a.on("layeradd",this._onLayerChange,this).on("layerremove",this._onLayerChange,this),this._container},addTo:function(a){return L.Control.prototype.addTo.call(this,a),this._expandIfNotCollapsed()},onRemove:function(a){a.off("layeradd",this._onLayerChange,this).off("layerremove",this._onLayerChange,this)},addBaseLayer:function(a,b){return this._addLayer(a,b),this._update(),this},addOverlay:function(a,b,c){return this._addLayer(a,b,c,!0),this._update(),this},removeLayer:function(a){var b=L.Util.stamp(a),c=this._getLayer(b);return c&&this._layers.splice(this._layers.indexOf(c),1),this._update(),this},_getLayer:function(a){for(var b=0;b<this._layers.length;b++){var c=this._layers[b];if(c&&L.stamp(c.layer)===a)return c}},_initLayout:function(){var a="leaflet-control-layers",b=this._container=L.DomUtil.create("div",a),c=this.options.collapsed;b.setAttribute("aria-haspopup",!0),L.DomEvent.disableClickPropagation(b),L.DomEvent.disableScrollPropagation(b);var d=this._form=L.DomUtil.create("form",a+"-list");c&&(this._map.on("click",this._collapse,this),L.Browser.android||L.DomEvent.on(b,{mouseenter:this._expand,mouseleave:this._collapse},this));var e=this._layersLink=L.DomUtil.create("a",a+"-toggle",b);e.href="#",e.title="Layers",L.Browser.touch?(L.DomEvent.on(e,"click",L.DomEvent.stop),L.DomEvent.on(e,"click",this._expand,this)):L.DomEvent.on(e,"focus",this._expand,this),c||this._expand(),this._baseLayersList=L.DomUtil.create("div",a+"-base",d),this._separator=L.DomUtil.create("div",a+"-separator",d),this._overlaysList=L.DomUtil.create("div",a+"-overlays",d),b.appendChild(d)},_addLayer:function(a,b,c,d){var e={layer:a,name:b,overlay:d};this._layers.push(e),c=c||"";var f=this._indexOf(this._groupList,c);-1===f&&(f=this._groupList.push(c)-1);var g=-1!==this._indexOf(this.options.exclusiveGroups,c);e.group={name:c,id:f,exclusive:g},this.options.autoZIndex&&a.setZIndex&&(this._lastZIndex++,a.setZIndex(this._lastZIndex)),this.options.sortLayers&&this._layers.sort(L.bind(function(a,b){return 1==a.overlay&&1==b.overlay?this.options.sortFunction(a.name,b.name):void 0},this)),this.options.sortBaseLayers&&this._layers.sort(L.bind(function(a,b){return void 0==a.overlay&&void 0==b.overlay?this.options.sortFunction(a.name,b.name):void 0},this)),this.options.sortGroups&&this._layers.sort(L.bind(function(a,b){return this.options.sortFunction(a.group.name,b.group.name)},this)),this._expandIfNotCollapsed()},_update:function(){if(this._container){this._baseLayersList.innerHTML="",this._overlaysList.innerHTML="",this._domGroups.length=0;for(var a=!1,b=!1,c=0;c<this._layers.length;c++){var d=this._layers[c];this._addItem(d),b=b||d.overlay,a=a||!d.overlay}this.options.groupCheckboxes&&this._refreshGroupsCheckStates(),this._separator.style.display=b&&a?"":"none"}},_onLayerChange:function(a){var b,c=this._getLayer(L.Util.stamp(a.layer));c&&(this._handlingClick||this._update(),b=c.overlay?"layeradd"===a.type?"overlayadd":"overlayremove":"layeradd"===a.type?"baselayerchange":null,b&&this._map.fire(b,c))},_createRadioElement:function(a,b){var c=document.createElement("input");return c.type="radio",c.name=a,c.className="leaflet-control-layers-selector",c.checked=b,c},_addItem:function(a){var b,c,d,e=document.createElement("label"),f=this._map.hasLayer(a.layer);a.overlay?a.group.exclusive?(d="leaflet-exclusive-group-layer-"+a.group.id,b=this._createRadioElement(d,f)):(b=document.createElement("input"),b.type="checkbox",b.className="leaflet-control-layers-selector",b.defaultChecked=f):b=this._createRadioElement("leaflet-base-layers",f),b.layerId=L.Util.stamp(a.layer),b.groupID=a.group.id,L.DomEvent.on(b,"click",this._onInputClick,this);var g=document.createElement("span");if(g.innerHTML=" "+a.name,e.appendChild(b),e.appendChild(g),a.overlay){c=this._overlaysList;var h=this._domGroups[a.group.id];if(!h){h=document.createElement("div"),h.className="leaflet-control-layers-group",h.id="leaflet-control-layers-group-"+a.group.id;var i=document.createElement("label");if(i.className="leaflet-control-layers-group-label",""!==a.group.name&&!a.group.exclusive&&this.options.groupCheckboxes){var j=document.createElement("input");j.type="checkbox",j.className="leaflet-control-layers-group-selector",j.groupID=a.group.id,j.legend=this,L.DomEvent.on(j,"click",this._onGroupInputClick,j),i.appendChild(j)}if(this.options.groupsCollapsable){h.classList.add("group-collapsable");const k=this.options.groupsCollapsed;if(k){const l="string"==typeof k?[k]:k,m=l===!0||Array.isArray(l)&&l.includes(a.group.name);m&&h.classList.add("collapsed")}var n=document.createElement("span");n.className="leaflet-control-layers-group-collapse "+this.options.groupsExpandedClass,i.appendChild(n);var o=document.createElement("span");o.className="leaflet-control-layers-group-expand "+this.options.groupsCollapsedClass,i.appendChild(o),L.DomEvent.on(i,"click",this._onGroupCollapseToggle,h)}var p=document.createElement("span");p.className="leaflet-control-layers-group-name",p.innerHTML=a.group.name,i.appendChild(p),h.appendChild(i),c.appendChild(h),this._domGroups[a.group.id]=h}c=h}else c=this._baseLayersList;return c.appendChild(e),e},_onGroupCollapseToggle:function(a){L.DomEvent.stopPropagation(a),L.DomEvent.preventDefault(a),this.classList.contains("group-collapsable")&&this.classList.contains("collapsed")?this.classList.remove("collapsed"):this.classList.contains("group-collapsable")&&!this.classList.contains("collapsed")&&this.classList.add("collapsed")},_onGroupInputClick:function(a){L.DomEvent.stopPropagation(a);var b,c=this.legend;c._handlingClick=!0;for(var d=c._form.getElementsByTagName("input"),e=0;e<d.length;e++){var f=d[e];if(f.groupID===this.groupID&&"leaflet-control-layers-selector"===f.className){f.checked=this.checked;var b=c._getLayer(f.layerId);f.checked&&!c._map.hasLayer(b.layer)?c._map.addLayer(b.layer):!f.checked&&c._map.hasLayer(b.layer)&&c._map.removeLayer(b.layer)}}c._handlingClick=!1},_onInputClick:function(){var a,b,c,d=this._form.getElementsByClassName("leaflet-control-layers-selector");this._handlingClick=!0;for(var e=0;e<d.length;e++){var f=d[e];if(L.DomUtil.hasClass(f,"leaflet-control-layers-selector")){var a=this._getLayer(f.layerId);f.checked&&!this._map.hasLayer(a.layer)?c=a.layer:!f.checked&&this._map.hasLayer(a.layer)&&(b=a.layer)}}void 0!==b&&this._map.removeLayer(b),void 0!==c&&this._map.addLayer(c),this.options.groupCheckboxes&&this._refreshGroupsCheckStates(),this._handlingClick=!1},_refreshGroupsCheckStates:function(){for(var a=0;a<this._domGroups.length;a++){var b=this._domGroups[a];if(b){var c=b.getElementsByClassName("leaflet-control-layers-group-selector")[0],d=b.querySelectorAll("input.leaflet-control-layers-selector"),e=b.querySelectorAll("input.leaflet-control-layers-selector:checked");c&&(c.indeterminate=!1,e.length===d.length?c.checked=!0:0===e.length?c.checked=!1:c.indeterminate=!0)}}},_expand:function(){L.DomUtil.addClass(this._container,"leaflet-control-layers-expanded"),this._form.style.height=null;var a=this._map.getSize().y-(this._container.offsetTop+50);return a<this._form.clientHeight?(L.DomUtil.addClass(this._form,"leaflet-control-layers-scrollbar"),this._form.style.height=a+"px"):L.DomUtil.removeClass(this._form,"leaflet-control-layers-scrollbar"),this},_expandIfNotCollapsed:function(){return this._map&&!this.options.collapsed&&this._expand(),this},_collapse:function(){this._container.className=this._container.className.replace(" leaflet-control-layers-expanded","")},_indexOf:function(a,b){for(var c=0,d=a.length;d>c;c++)if(a[c]===b)return c;return-1}}),L.control.groupedLayers=function(a,b,c){return new L.Control.GroupedLayers(a,b,c)}; 5//# sourceMappingURL=leaflet.groupedlayercontrol.min.js.map
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.