nemesiscodex/openfonacide

View on GitHub
static/js/leaflet.groupedlayercontrol.min.js

Summary

Maintainability
A
0 mins
Test Coverage
/*! Version: 0.2.0
Date: 2015-03-16 */

L.Control.GroupedLayers=L.Control.extend({options:{collapsed:!0,position:"topright",autoZIndex:!0,exclusiveGroups:[]},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(var 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},onRemove:function(a){a.off("layeradd",this._onLayerChange).off("layerremove",this._onLayerChange)},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);return delete this._layers[b],this._update(),this},_initLayout:function(){var a="leaflet-control-layers",b=this._container=L.DomUtil.create("div",a);b.setAttribute("aria-haspopup",!0),L.Browser.touch?L.DomEvent.on(b,"click",L.DomEvent.stopPropagation):(L.DomEvent.disableClickPropagation(b),L.DomEvent.on(b,"wheel",L.DomEvent.stopPropagation));var c=this._form=L.DomUtil.create("form",a+"-list");if(this.options.collapsed){L.Browser.android||L.DomEvent.on(b,"mouseover",this._expand,this).on(b,"mouseout",this._collapse,this);var d=this._layersLink=L.DomUtil.create("a",a+"-toggle",b);d.href="#",d.title="Layers",L.Browser.touch?L.DomEvent.on(d,"click",L.DomEvent.stop).on(d,"click",this._expand,this):L.DomEvent.on(d,"focus",this._expand,this),this._map.on("click",this._collapse,this)}else this._expand();this._baseLayersList=L.DomUtil.create("div",a+"-base",c),this._separator=L.DomUtil.create("div",a+"-separator",c),this._overlaysList=L.DomUtil.create("div",a+"-overlays",c),b.appendChild(c)},_addLayer:function(a,b,c,d){var e=L.Util.stamp(a);this._layers[e]={layer:a,name:b,overlay:d},c=c||"";var f=this._groupList.indexOf(c);-1===f&&(f=this._groupList.push(c)-1);var g=-1!=this.options.exclusiveGroups.indexOf(c);this._layers[e].group={name:c,id:f,exclusive:g},this.options.autoZIndex&&a.setZIndex&&(this._lastZIndex++,a.setZIndex(this._lastZIndex))},_update:function(){if(this._container){this._baseLayersList.innerHTML="",this._overlaysList.innerHTML="",this._domGroups.length=0;var a,b,c=!1,d=!1;for(a in this._layers)b=this._layers[a],this._addItem(b),d=d||b.overlay,c=c||!b.overlay;this._separator.style.display=d&&c?"":"none"}},_onLayerChange:function(a){var b=this._layers[L.Util.stamp(a.layer)];if(b){this._handlingClick||this._update();var c=b.overlay?"layeradd"===a.type?"overlayadd":"overlayremove":"layeradd"===a.type?"baselayerchange":null;c&&this._map.fire(c,b)}},_createRadioElement:function(a,b){var c='<input type="radio" class="leaflet-control-layers-selector" name="'+a+'"';b&&(c+=' checked="checked"'),c+="/>";var d=document.createElement("div");return d.innerHTML=c,d.firstChild},_addItem:function(a){var b,c,d=document.createElement("label"),e=this._map.hasLayer(a.layer);a.overlay?a.group.exclusive?(groupRadioName="leaflet-exclusive-group-layer-"+a.group.id,b=this._createRadioElement(groupRadioName,e)):(b=document.createElement("input"),b.type="checkbox",b.className="leaflet-control-layers-selector",b.defaultChecked=e):b=this._createRadioElement("leaflet-base-layers",e),b.layerId=L.Util.stamp(a.layer),L.DomEvent.on(b,"click",this._onInputClick,this);var f=document.createElement("span");if(f.innerHTML=" "+a.name,d.appendChild(b),d.appendChild(f),a.overlay){c=this._overlaysList;var g=this._domGroups[a.group.id];if(!g){g=document.createElement("div"),g.className="leaflet-control-layers-group",g.id="leaflet-control-layers-group-"+a.group.id;var h=document.createElement("span");h.className="leaflet-control-layers-group-name",h.innerHTML=a.group.name,g.appendChild(h),c.appendChild(g),this._domGroups[a.group.id]=g}c=g}else c=this._baseLayersList;return c.appendChild(d),d},_onInputClick:function(){var a,b,c,d=this._form.getElementsByTagName("input"),e=d.length;for(this._handlingClick=!0,a=0;e>a;a++)b=d[a],c=this._layers[b.layerId],b.checked&&!this._map.hasLayer(c.layer)?this._map.addLayer(c.layer):!b.checked&&this._map.hasLayer(c.layer)&&this._map.removeLayer(c.layer);this._handlingClick=!1},_expand:function(){L.DomUtil.addClass(this._container,"leaflet-control-layers-expanded")},_collapse:function(){this._container.className=this._container.className.replace(" leaflet-control-layers-expanded","")}}),L.control.groupedLayers=function(a,b,c){return new L.Control.GroupedLayers(a,b,c)};
//# sourceMappingURL=leaflet.groupedlayercontrol.min.js.map