zingchart
Version:
Our JavaScript charting library is a commercial product. But the full branded version is free to try, forever.
8 lines (7 loc) • 28.9 kB
JavaScript
/*
All of the code within the ZingChart software is developed and copyrighted by ZingChart, Inc., and may not be copied,
replicated, or used in any other software or application without prior permission from ZingChart. All usage must coincide with the
ZingChart End User License Agreement which can be requested by email at support@zingchart.com.
Build 2.9.16-hf1
*/
ZC.WJ.push("maps"),zingchart.maps||(zingchart.maps={},zingchart.maps.maps={},zingchart.maps.data={}),zingchart.maps.FORCESCALE=0,zingchart.maps.CONNECTORS=1,zingchart.maps.LITE=0,zingchart.maps._DEFAULTS_={_COMMON_:{label:{"font-size":9,padding:"1 2",overlap:!1},tooltip:{"border-radius":6,"background-color":"#fff",color:"#303030","border-width":1,"border-color":"#909090",padding:10}},_POLY_:{alpha:.9,shadow:!0,"shadow-distance":3,"shadow-color":"#ccc","border-width":1,"border-color":"#a3a3a3","background-color":"#e3e3e3","hover-state":{shadow:!0,"background-color":"#d3d3d3","offset-x":-1,"offset-y":-1,"shadow-distance":3},connector:{"line-color":"#666","line-width":1}},_LINE_:{alpha:1,shadow:!1,"line-width":2,"line-color":"#4ea8fc","hover-state":{"line-color":"#4ec8cc","offset-x":0,"offset-y":0,shadow:!1}},_POINT_:{alpha:1,size:3,shadow:!1,"background-color":"#333","hover-state":{"offset-x":0,"offset-y":0,shadow:!1,"border-width":1,"border-color":"#aaa","background-color":"#666"},label:{"font-size":10,"offset-y":8}}},zingchart.maps.LIGHT={"background-color":"#fff",_COMMON_:{label:{"font-size":9,padding:"1 2",overlap:!1},tooltip:{"border-radius":6,"background-color":"#fff",color:"#303030","border-width":1,"border-color":"#909090",padding:10}},_POLY_:{alpha:1,"border-width":1,"border-color":"#fff","background-color":"#DDDDDD","hover-state":{"background-color":"#C4C4C4"},connector:{"line-color":"#666","line-width":1}},_LINE_:{alpha:1,shadow:!1,"line-width":2,"line-color":"#4ea8fc","hover-state":{"line-color":"#4ec8cc","offset-x":0,"offset-y":0,shadow:!1}},_POINT_:{alpha:1,size:3,shadow:!1,"background-color":"#333","hover-state":{"offset-x":0,"offset-y":0,shadow:!1,"border-width":1,"border-color":"#aaa","background-color":"#666"},label:{"font-size":10,"offset-y":8}}},zingchart.maps.DARK={"background-color":"#221F1F",_COMMON_:{label:{"font-size":9,padding:"1 2"},tooltip:{"border-radius":6,"background-color":"#fff",color:"#303030","border-width":1,"border-color":"#909090",padding:10}},_POLY_:{alpha:1,"border-width":1,"border-color":"#221F1F","background-color":"#DDDDDD","hover-state":{"background-color":"#C4C4C4"},connector:{"line-color":"#DDDDDD","line-width":1}},_LINE_:{alpha:1,shadow:!1,"line-width":2,"line-color":"#4ea8fc","hover-state":{"line-color":"#4ec8cc","offset-x":0,"offset-y":0,shadow:!1}},_POINT_:{alpha:1,size:3,shadow:!1,"background-color":"#333","hover-state":{"offset-x":0,"offset-y":0,shadow:!1,"border-width":1,"border-color":"#aaa","background-color":"#666"},label:{"font-size":10,"offset-y":8}}},zingchart.maps.upgrade=function(a){var o,t=zingchart.maps.data,e=a.split(".");for(var r in 1===e.length?t=t[a]:2===e.length&&(t=t[e[0]][e[1]]),t)if("_GROUPS_"!==r&&"_DEFAULTS_"!==r&&"_RULES_"!==r&&null===ZC._n_(t[r].cpoint))if(null!==ZC._n_(t[r].label.x)&&null!==ZC._n_(t[r].label.y))t[r].cpoint={x:t[r].label.x,y:t[r].label.y};else{if("point"===t[r].type)o=t[r].coords[0];else if("line"===t[r].type){var i=ZC._i_(t[r].coords.length/2);o=t[r].coords[i]||t[r].coords[i+1]||t[r].coords[i-1]}else o=zingchart.maps.centroid(t[r].coords);t[r].cpoint={x:o[0].toFixed(4)+"lon",y:o[1].toFixed(4)+"lat"},t[r].label.x=o[0].toFixed(4)+"lon",t[r].label.y=o[1].toFixed(4)+"lat"}},zingchart.maps.centroid=function(a){var o,t,e,r,i=0,n=0,_=0;for(e=0,r=a.length;e<r-1;e++)null!==ZC._n_(o=a[e])&&null!==ZC._n_(t=a[e+1])&&(_+=o[0]*t[1]-t[0]*o[1],i+=(o[0]+t[0])*(o[0]*t[1]-t[0]*o[1]),n+=(o[1]+t[1])*(o[0]*t[1]-t[0]*o[1]));return[i/=6*(_*=.5),n/=6*_,_]},zingchart.maps.getMapByGraphIndex=function(a,o){var t;for(var e in zingchart.maps.maps)if((t=zingchart.maps.maps[e])._INFO_.loaderid===a&&t._INFO_.graphinfo.graph.index===o)return t;return null},zingchart.maps.zoomIn=function(a){var o=zingchart.maps.maps[a]||zingchart.maps.data[a];if(o&&o._INFO_){o._INFO_.zoom*=1.25,zingchart.maps.setView(o._INFO_.loaderid,o._INFO_.id,o._INFO_.zoom,o._INFO_.offsetX,o._INFO_.offsetY),ZC.AO.C0("maps.zoom",zingchart.getLoader(o._INFO_.loaderid),o._INFO_)}},zingchart.maps.zoomOut=function(a){var o=zingchart.maps.maps[a]||zingchart.maps.data[a];if(o&&o._INFO_){var t,e=zingchart.getLoader(o._INFO_.loaderid).AG[o._INFO_.graphinfo.graph.index],r=e.iX+e.I/2,i=e.iY+e.F/2,n=e.I/2,_=e.F/2,s=[(o._INFO_.bbox[0]+o._INFO_.bbox[2])/2,(o._INFO_.bbox[1]+o._INFO_.bbox[3])/2],l=zingchart.maps.getLonLat(o._INFO_.id,[n,_]);if(o._INFO_.zoom=Math.max(.1,o._INFO_.zoom/1.25),o._INFO_.zoom>1.25)t=zingchart.maps.getXY(o._INFO_.id,l),o._INFO_.offsetX-=t[0]-n,o._INFO_.offsetY-=t[1]-_;else{var p=(t=zingchart.maps.getXY(o._INFO_.id,s))[0]-r,c=t[1]-i/2;o._INFO_.offsetX=p*((o._INFO_.zoom-1)/5),o._INFO_.offsetY=c*((o._INFO_.zoom-1)/5)}zingchart.maps.setView(o._INFO_.loaderid,o._INFO_.id,o._INFO_.zoom,o._INFO_.offsetX,o._INFO_.offsetY),ZC.AO.C0("maps.zoom",zingchart.getLoader(o._INFO_.loaderid),o._INFO_)}},zingchart.maps.destroyMap=function(a){delete zingchart.maps.maps[a]},zingchart.maps.setView=function(a,o,t,e,r){for(var i=zingchart.getLoader(a),n=0,_=0,s=0;s<i.o.graphset.length;s++)if(i.o.graphset[s].shapes)for(var l=0;l<i.o.graphset[s].shapes.length;l++)if("zingchart.maps"===i.o.graphset[s].shapes[l].type&&i.o.graphset[s].shapes[l].options&&(i.o.graphset[s].shapes[l].options.id===o||i.o.graphset[s].shapes[l].options.name===o)){n=s,_=l;break}var p=i.o.graphset[n].shapes[_];if(p.options=p.options||{},p.options.zoom=Math.abs(ZC._f_(t||"1")),p.options["offset-x"]=ZC._i_(e||"0"),p.options["offset-y"]=ZC._i_(r||"0"),p.options.style=p.options.style||{},p.options.style.label=p.options.style.label||{},null===ZC._n_(p.options.style.label.visible_)&&(p.options.style&&p.options.style.label?p.options.style.label.visible_=null===ZC._n_(p.options.style.label.visible)||p.options.style.label.visible:(p.options.style=p.options.style||{},p.options.style.label=p.options.style.label||{},p.options.style.label.visible_=!0)),ZC._n_(p.options.style.label["adjust-font-size"])&&ZC._b_(p.options.style.label["adjust-font-size"])){var c=zingchart.maps.maps[o]||zingchart.maps.data[o];c&&c._INFO_&&(c._INFO_.baseFontSize||(c._INFO_.baseFontSize=11,p.options.style.label["font-size"]&&(c._INFO_.baseFontSize=ZC._i_(p.options.style.label["font-size"]))),p.options.style.label["font-size"]=Math.min(19,c._INFO_.baseFontSize*c._INFO_.zoom*.65))}zingchart.maps.SKIP_LABELS?p.options.style.label.visible=!1:(p.options.style.label.visible=null===ZC._n_(p.options.style.label.visible_)||p.options.style.label.visible_,p.options.style.label.visible_=null),i.clearGenerated(),zingchart.exec(a,"setdata",{data:i.o})},zingchart.bind(null,"shape_mouseover",function(a){var o=zingchart.getLoader(a.id),t=ZC.Q.MJ(a.ev),e=o.A5D(t[0],t[1]);if(e){var r=zingchart.maps.getMapByGraphIndex(a.id,e.L);r&&r._INFO_["color-scale"]&&zingchart.plugins.colorscale&&zingchart.plugins.colorscale.info&&zingchart.plugins.colorscale.info[a.id+"_"+e.L]&&zingchart.plugins.colorscale.AGM(a.id,{graphid:a.graphid,value:a["data-value"]})}}),zingchart.bind(null,"shape_mouseout",function(a){var o=zingchart.getLoader(a.id),t=ZC.Q.MJ(a.ev),e=o.A5D(t[0],t[1]);if(e){var r=zingchart.maps.getMapByGraphIndex(a.id,e.L);r&&r._INFO_["color-scale"]&&zingchart.plugins.colorscale&&zingchart.plugins.colorscale.info&&zingchart.plugins.colorscale.info[a.id+"_"+e.L]&&zingchart.plugins.colorscale.clear(a.id,{graphid:a.graphid})}}),zingchart.bind(null,"shape_dblclick",function(a){var o=zingchart.getLoader(a.id),t=ZC.Q.MJ(a.ev),e=o.A5D(t[0],t[1]);if(e){var r=zingchart.maps.getMapByGraphIndex(a.id,e.L);if(r){if(!r._INFO_.zooming)return;zingchart.maps.zoomToItem(r._INFO_.id,a.shapeid)}}}),zingchart.bind(null,"label_click",function(a){var o=zingchart.getLoader(a.id),t=ZC.Q.MJ(a.ev),e=o.A5D(t[0],t[1]);if(e){var r=zingchart.maps.getMapByGraphIndex(a.id,e.L);r&&(a.labelid===r._INFO_.id+"_zoom_in"?zingchart.maps.zoomIn(r._INFO_.id):a.labelid===r._INFO_.id+"_zoom_out"&&zingchart.maps.zoomOut(r._INFO_.id))}}),zingchart.bind(null,"mousedown",function(a){if(0===a.ev.button&&("none"===a.target||"shape"===a.target)){var o=zingchart.getLoader(a.id),t=ZC.Q.MJ(a.ev);a.ev.preventDefault();var e=o.A5D(t[0],t[1]);if(e){var r=zingchart.maps.getMapByGraphIndex(a.id,e.L);r&&r._INFO_.panning&&(zingchart.maps.MD=!0,zingchart.maps.REFX=a.ev.pageX,zingchart.maps.REFY=a.ev.pageY,zingchart.maps.OFFX=0,zingchart.maps.OFFY=0,zingchart.maps.REFOFFX=r._INFO_.offsetX,zingchart.maps.REFOFFY=r._INFO_.offsetY)}}}),zingchart.bind(null,"mousemove",function(a){if(zingchart.maps.MD){var o=zingchart.getLoader(a.id),t=ZC.Q.MJ(a.ev),e=o.A5D(t[0],t[1]);if(e){var r=zingchart.maps.getMapByGraphIndex(a.id,e.L);r&&(zingchart.maps.OFFX=zingchart.maps.REFOFFX+a.ev.pageX-zingchart.maps.REFX,zingchart.maps.OFFY=zingchart.maps.REFOFFY+a.ev.pageY-zingchart.maps.REFY,ZC._a_(zingchart.maps.REFOFFX-zingchart.maps.OFFX)+ZC._a_(zingchart.maps.REFOFFY-zingchart.maps.OFFY)>5&&(zingchart.maps.setView(a.id,r._INFO_.id,r._INFO_.zoom,zingchart.maps.OFFX,zingchart.maps.OFFY),ZC.AO.C0("maps.zoom",zingchart.getLoader(r._INFO_.loaderid),r._INFO_)))}}}),zingchart.bind(null,"mouseup",function(a){if(zingchart.maps.MD){var o=zingchart.getLoader(a.id),t=ZC.Q.MJ(a.ev),e=o.A5D(t[0],t[1]);if(e)zingchart.maps.getMapByGraphIndex(a.id,e.L)&&(zingchart.maps.MD=!1,zingchart.maps.REFOFFX=zingchart.maps.OFFX,zingchart.maps.REFOFFY=zingchart.maps.OFFY)}}),zingchart.bind(null,"mousewheel",function(a){var o=zingchart.getLoader(a.id),t=ZC.Q.MJ(a.ev),e=o.A5D(t[0],t[1]);if(e){var r=zingchart.maps.getMapByGraphIndex(a.id,e.L),i=e.iX+e.I/2,n=e.iY+e.F/2;if(r){if(!r._INFO_.scrolling||a.ev.altKey)return;a.ev.preventDefault();var _,s,l=ZC.A4("#"+o.K+"-top"),p=t[0]-l.offset().left-e.iX,c=t[1]-l.offset().top-e.iY;if(a.ev.wheelDelta>0)_=zingchart.maps.getLonLat(r._INFO_.id,[p,c]),r._INFO_.zoom*=1.25,s=zingchart.maps.getXY(r._INFO_.id,_),r._INFO_.offsetX-=s[0]-p,r._INFO_.offsetY-=s[1]-c;else{var h=[(r._INFO_.bbox[0]+r._INFO_.bbox[2])/2,(r._INFO_.bbox[1]+r._INFO_.bbox[3])/2];if(_=zingchart.maps.getLonLat(r._INFO_.id,[p,c]),r._INFO_.zoom=Math.max(1,r._INFO_.zoom/1.25),r._INFO_.zoom>1.25)s=zingchart.maps.getXY(r._INFO_.id,_),r._INFO_.offsetX-=s[0]-p,r._INFO_.offsetY-=s[1]-c;else{var f=(s=zingchart.maps.getXY(r._INFO_.id,h))[0]-i,d=s[1]-n/2;r._INFO_.offsetX=f*((r._INFO_.zoom-1)/5),r._INFO_.offsetY=d*((r._INFO_.zoom-1)/5)}}zingchart.maps.setView(a.id,r._INFO_.id,r._INFO_.zoom,r._INFO_.offsetX,r._INFO_.offsetY),ZC.AO.C0("maps.zoom",zingchart.getLoader(r._INFO_.loaderid),r._INFO_)}}}),zingchart.maps.viewAll=function(a){var o=zingchart.maps.maps[a];(o||(o=zingchart.maps.data[a]))&&zingchart.maps.zoomTo(a,{zoom:1,offsetX:0,offsetY:0})},zingchart.maps.zoomToItem=function(a,o){var t,e;if(t=zingchart.maps.maps[a]){if(!(e=t[o]))return}else if(!(t=zingchart.maps.data[a])||!(e=t[o]))return;if(t._INFO_){var r=t._INFO_.bbox[2]-t._INFO_.bbox[0],i=t._INFO_.bbox[1]-t._INFO_.bbox[3],n=(t._INFO_.bbox[2]+t._INFO_.bbox[0])/2,_=(t._INFO_.bbox[1]+t._INFO_.bbox[3])/2,s=e.bbox[2]-e.bbox[0],l=e.bbox[1]-e.bbox[3],p=(e.bbox[2]+e.bbox[0])/2,c=(e.bbox[1]+e.bbox[3])/2,h=Math.min(r/s,i/l),f=h,d=h*((n-p)*(t._INFO_.width/r)),g=h*((c-_)*(t._INFO_.height/i));zingchart.maps.zoomTo(a,{zoom:f,offsetX:d,offsetY:g})}},zingchart.maps.zoomTo=function(a,o){var t=zingchart.maps.maps[a]||zingchart.maps.data[a];if(t){var e={zoom:t._INFO_.zoom,offsetX:t._INFO_.offsetX,offsetY:t._INFO_.offsetY};zingchart.exec(t._INFO_.loaderid,"setobjectsmode",{mode:"flat"}),zingchart.maps.SKIP_LABELS=!0;var r=0,i=window.setInterval(function(){var n="regularEaseOut",_=ZC.E8[n](r,e.zoom,o.zoom-e.zoom,10),s=ZC.E8[n](r,e.offsetX,o.offsetX-e.offsetX,10),l=ZC.E8[n](r,e.offsetY,o.offsetY-e.offsetY,10);10===r&&(zingchart.maps.SKIP_LABELS=!1,zingchart.exec(t._INFO_.loaderid,"setobjectsmode",{mode:"normal"})),zingchart.maps.setView(t._INFO_.loaderid,a,_,s,l),++r>10&&(window.clearInterval(i),t._INFO_.zoom=o.fZoom,t._INFO_.offsetX=o.fOffX,t._INFO_.offsetY=o.fOffY,ZC.AO.C0("maps.zoom",zingchart.getLoader(t._INFO_.loaderid),t._INFO_))},1)}},zingchart.maps.getInfo=function(a){var o=zingchart.maps.maps[a];return o||(o=zingchart.maps.data[a]),o},zingchart.maps.getItems=function(a){var o=zingchart.maps.maps[a];if(o||(o=zingchart.maps.data[a]),o){var t=[];for(var e in o)"_DEFAULTS_"!==e&&"_INFO_"!==e&&"_GROUPS_"!==e&&"_RULES_"!==e&&(o._INFO_?-1!==ZC.AV(o._INFO_.items,e)&&t.push(e):t.push(e));return t}return null},zingchart.maps.getItemInfo=function(a,o){var t,e;if(t=zingchart.maps.maps[a]){if(e=t[o])return e}else if((t=zingchart.maps.data[a])&&(e=t[o]))return e;return null},zingchart.maps.getXY=function(a,o,t){var e;if(t=t||"",e=zingchart.maps.maps[a]){var r={};return ZC._cp_(e._INFO_,r),""!==t&&ZC._cp_({map:a,item:t},r),zingchart.maps.lonlat2xy(e._INFO_.x,e._INFO_.y,e._INFO_.width,e._INFO_.height,o,e._INFO_.bbox,r)}return null},zingchart.maps.getLonLat=function(a,o){var t;return(t=zingchart.maps.maps[a])?zingchart.maps.xy2lonlat(t._INFO_.x,t._INFO_.y,t._INFO_.width,t._INFO_.height,o,t._INFO_.bbox,t._INFO_):null},zingchart.maps.registerMap=function(a,o){ZC.WJ.push("maps-"+a),zingchart.maps[a]||(zingchart.maps[a]={}),zingchart.maps.data[a]||(zingchart.maps.data[a]=o),zingchart.maps.data[a]._GROUPS_={},zingchart.maps.data[a]._DEFAULTS_=zingchart.maps._DEFAULTS_,zingchart.maps[a]=function(o,t,e){return zingchart.maps.convert({loader:this,loaderdata:t||{},graphid:"undefined"==typeof o.graphid?0:o.graphid,data:e,id:o.id||a,x:"undefined"==typeof o.x?0:o.x,y:"undefined"==typeof o.y?0:o.y,width:"undefined"==typeof o.width?1:o.width,height:"undefined"==typeof o.height?1:o.height,level:"undefined"==typeof o.level?1:o.level,groups:o.groups||[],items:o.items||[],ignore:o.ignore||[],bbox:o.bbox||null,map:zingchart.maps.data[a]})}},zingchart.maps.lonlat2xy=function(a,o,t,e,r,i,n,_){void 0===_&&(_=!1),n=n||{};var s=Math.abs(ZC._f_(n.zoom||"1")),l=ZC._i_(n.offsetX||"0"),p=ZC._i_(n.offsetY||"0"),c=t/ZC._a_(i[2]-i[0]),h=e/ZC._a_(i[3]-i[1]);c*=s,h*=s,a-=t*(s-1)/2,o+=e*(s-1)/2,o+=p;var f,d,g=(a+=l)+(ZC._f_(r[0])-ZC.CY(i[0],i[2]))*c,m=o+e-(ZC._f_(r[1])-ZC.CY(i[1],i[3]))*h;if(n&&n.map&&((f=zingchart.maps.maps[n.map])||(f=zingchart.maps.data[n.map]),f)){if((d=f[n.item])&&(g+=d.transform.offsetLon*c,m-=d.transform.offsetLat*h,1!==d.transform.scale)){var b=a+(ZC.CY(d.bbox[0],d.bbox[2])-ZC.CY(i[0],i[2]))*c,z=o+e-(ZC.CY(d.bbox[1],d.bbox[3])-ZC.CY(i[1],i[3]))*h,C=ZC._a_(d.bbox[3]-d.bbox[1])*h;g=b+(g-b)*d.transform.scale,m=z-C+(m-(z-C))*d.transform.scale}_&&(g+=f._INFO_.graphinfo.graph.x,m+=f._INFO_.graphinfo.graph.y)}return[g,m]},zingchart.maps.xy2lonlat=function(a,o,t,e,r,i,n){n=n||{};var _=Math.abs(ZC._f_(n.zoom||"1")),s=ZC._i_(n.offsetX||"0"),l=ZC._i_(n.offsetY||"0");a-=t*(_-1)/2,o-=e*(_-1)/2;var p=t/ZC._a_(i[2]-i[0]),c=e/ZC._a_(i[3]-i[1]);return p*=_,c*=_,[i[0]+(r[0]-a-s)/p,i[1]+(o-r[1]+l)/c]},zingchart.maps.mappoints=function(a,o,t,e,r,i,n,_,s){var l,p,c,h,f,d,g,m=[],b=null;d=t/ZC._a_(r[2]-r[0]),g=e/ZC._a_(r[3]-r[1]),_=_||{};var z=Math.abs(ZC._f_(_.zoom||"1")),C=ZC._i_(_.offsetX||"0");d*=z,g*=z,a-=t*(z-1)/2,o-=e*(z-1)/2,o+=ZC._i_(_.offsetY||"0"),c=(a+=C)+(ZC.CY(i.bbox[0],i.bbox[2])-ZC.CY(r[0],r[2]))*d,h=o+e*z-(ZC.CY(i.bbox[1],i.bbox[3])-ZC.CY(r[1],r[3]))*g,ZC._a_(i.bbox[2]-i.bbox[0]),f=ZC._a_(i.bbox[3]-i.bbox[1])*g;for(var O=0,F=i.coords.length;O<F;O++)if(null===ZC._n_(i.coords[O]))m.push(null);else{var u=i.transform.offsetLon,Z=i.transform.offsetLat,x=i.transform.scale;if("__"===i.id&&null!==ZC._n_(n))for(var I=0,v=n.length;I<v;I++)if(i.coords[O][0]>=n[I].bbox[0]-n[I].offsetLon&&i.coords[O][0]<=n[I].bbox[2]-n[I].offsetLon&&i.coords[O][1]>=n[I].bbox[3]-n[I].offsetLat&&i.coords[O][1]<=n[I].bbox[1]-n[I].offsetLat){u=n[I].offsetLon,Z=n[I].offsetLat,x=n[I].scale,b=n[I].bbox;break}if(l=a+(i.coords[O][0]-ZC.CY(r[0],r[2]))*d+u*d,p=o+(ZC.BR(r[1],r[3])-i.coords[O][1])*g-Z*g,1!==x)if("__"===i.id){var N=a+(ZC.CY(b[0],b[2])-ZC.CY(r[0],r[2]))*d,y=o+e-(ZC.CY(b[1],b[3])-ZC.CY(r[1],r[3]))*g,L=ZC._a_(b[3]-b[1])*g;l=N+(l-N)*x,p=y-L+(p-(y-L))*x}else l=c+(l-c)*x,p=h-f+(p-(h-f))*x;null!==ZC._n_(s)?m.push([parseInt(l,10)-ZC.AN.E1,parseInt(p,10)-ZC.AN.E2,parseInt(s,10)]):m.push([parseInt(l,10),parseInt(p,10)])}return m},zingchart.maps.translate=function(a,o,t,e,r){var i=t/ZC._a_(r[2]-r[0]),n=e/ZC._a_(r[3]-r[1]);return"x"===a?o*i:o*n},zingchart.maps.convert=function(a){var o=a.data.options||{};ZC._todash_(o);var t=a.id,e=a.groups,r=a.items,i=a.ignore,n=a.bbox,_=a.level,s=!1;"01"===_&&(_=1,s=!0);var l=Math.abs(ZC._f_(o.zoom||"1")),p=ZC._i_(o["offset-x"]||"0"),c=ZC._i_(o["offset-y"]||"0"),h=!0,f=!0,d=!0;null!==ZC._n_(o.zooming)&&(h=ZC._b_(o.zooming)),null!==ZC._n_(o.panning)&&(f=ZC._b_(o.panning)),null!==ZC._n_(o.scrolling)&&(d=ZC._b_(o.scrolling));var g,m=a.loader.A5J(a.loaderdata,a.graphid);a.loader.MF&&(g=a.loader.MF.theme||"light"),a.loader.o&&(g=a.loader.o.theme||"light"),"light"===g?a.map._DEFAULTS_=zingchart.maps.LIGHT:"dark"===g&&(a.map._DEFAULTS_=zingchart.maps.DARK),ZC.AN&&(ZC.AN.A4F=2.5*ZC.BR(m.graph.width,m.graph.height),ZC.AN.E1=m.plotarea.x+m.plotarea.width/2,ZC.AN.E2=m.plotarea.y+m.plotarea.height/2);var b=ZC.IO(a.x);b=ZC._i_(b>0&&b<1?b*m.plotarea.width:b),b+=m.plotarea.x;var z=ZC.IO(a.y);z=ZC._i_(b>0&&z<1?z*m.plotarea.height:z),z+=m.plotarea.y;var C=ZC.IO(a.width);C=ZC._i_(C<=1?C*m.plotarea.width:C);var O=ZC.IO(a.height);O=ZC._i_(O<=1?O*m.plotarea.height:O);var F,u,Z,x,I={};if(ZC._cp_(a.map,I),0===C||0===O||!I)return[];for(F in I)"_DEFAULTS_"!==F&&"_INFO_"!==F&&"_GROUPS_"!==F&&"_RULES_"!==F&&(null===ZC._n_(I[F].transform)&&(I[F].transform={offsetLon:0,offsetLat:0,scale:1}),null===ZC._n_(I[F].connector)&&(I[F].connector={points:[],anchor:""}));for(F in I)if("_DEFAULTS_"!==F&&"_INFO_"!==F&&"_GROUPS_"!==F&&"_RULES_"!==F&&!(0===_&&"__"!==F||0!==_&&"__"===F&&!s)){x=[ZC.MAX,-ZC.MAX,-ZC.MAX,ZC.MAX];var v=I[F].transform.offsetLon,N=I[F].transform.offsetLat,y=I[F].transform.scale;for(u=0;u<I[F].coords.length;u++)if(null!==ZC._n_(I[F].coords[u])){if("__"===F&&null!==ZC._n_(I._RULES_))for(var L=0,E=I._RULES_.length;L<E;L++)if(I[F].coords[u][0]>=I._RULES_[L].bbox[0]-I._RULES_[L].offsetLon&&I[F].coords[u][0]<=I._RULES_[L].bbox[2]-I._RULES_[L].offsetLon&&I[F].coords[u][1]>=I._RULES_[L].bbox[3]-I._RULES_[L].offsetLat&&I[F].coords[u][1]<=I._RULES_[L].bbox[1]-I._RULES_[L].offsetLat){v=I._RULES_[L].offsetLon,N=I._RULES_[L].offsetLat,y=I._RULES_[L].scale;break}x[0]=ZC.CY(x[0],I[F].coords[u][0]+v),x[1]=ZC.BR(x[1],I[F].coords[u][1]+N),x[2]=ZC.BR(x[2],I[F].coords[u][0]+v),x[3]=ZC.CY(x[3],I[F].coords[u][1]+N)}1!==y&&"__"!==F&&(x[2]=x[0]+(x[2]-x[0])*y,x[3]=x[1]-(x[1]-x[3])*y),I[F].id=F,I[F].bbox=x}x=[ZC.MAX,-ZC.MAX,-ZC.MAX,ZC.MAX];var A=[];if(e.length>0&&I._GROUPS_){for(u=0,Z=e.length;u<Z;u++)I._GROUPS_[e[u]]&&(A=A.concat(I._GROUPS_[e[u]]));for(u=A.length-1;u>=0;u--)if(-1===A[u].indexOf("@"))-1!==ZC.AV(i,A[u])&&A.splice(u,1);else{var S=A[u].split("@");-1!==ZC.AV(i,S[0])&&A.splice(u,1)}}if(r.length>0)for(u=0,Z=r.length;u<Z;u++)-1===ZC.AV(i,r[u])&&A.push(r[u]);else for(F in I)if(I.hasOwnProperty(F)){if("_DEFAULTS_"===F||"_INFO_"===F||"_GROUPS_"===F||"_RULES_"===F)continue;if(0===_&&"__"!==F||0!==_&&"__"===F&&!s)continue;0===e.length&&-1===ZC.AV(i,F)&&A.push(F)}for(u=A.length-1;u>=0;u--)if(A[u]&&-1!==A[u].indexOf("@")){var M=A[u].split("@");-1!==ZC.AV(A,M[0])&&A.splice(u,1)}if(null!==ZC._n_(n)&&4===n.length)x=n;else for(u=0,Z=A.length;u<Z;u++)I[F=A[u]]&&(x[0]=ZC.CY(x[0],I[F].bbox[0]),x[1]=ZC.BR(x[1],I[F].bbox[1]),x[2]=ZC.BR(x[2],I[F].bbox[2]),x[3]=ZC.CY(x[3],I[F].bbox[3]));var w,Y=ZC._a_(x[2]-x[0])/20,R=ZC._a_(x[3]-x[1])/20;for(F in x[0]-=Y,x[1]+=R,x[2]+=Y,x[3]-=R,I)"_DEFAULTS_"!==F&&"_INFO_"!==F&&"_GROUPS_"!==F&&"_RULES_"!==F&&(0===_&&"__"!==F||0!==_&&"__"===F&&!s||(Y=ZC.CY(1,ZC._a_(I[F].bbox[2]-I[F].bbox[0])/8),R=ZC.CY(1,ZC._a_(I[F].bbox[3]-I[F].bbox[1])/8),I[F].bbox[0]-=Y,I[F].bbox[1]+=R,I[F].bbox[2]+=Y,I[F].bbox[3]-=R));var D=1+.8*ZC._a_((x[3]+x[1])/180),U=C/ZC._a_(x[2]-x[0]),X=O/ZC._a_(x[3]-x[1]);if(!o.hasOwnProperty("scale")||ZC._b_(o.scale)){if((w=D*U/X)>1.05){var T=ZC._i_(C/w);b+=(C-T)/2,C=T}else if(w<.95){var k=ZC._i_(O*w);z+=(O-k)/2,O=k}U=C/ZC._a_(x[2]-x[0]),X=O/ZC._a_(x[3]-x[1])}for(var P in zingchart.maps.maps)if(t!==P){var G=zingchart.maps.maps[P];G&&G._INFO_&&a.loader.K===G._INFO_.loaderid&&G._INFO_.graphinfo&&G._INFO_.graphinfo.graph&&G._INFO_.graphinfo.graph.index===m.graph.index&&(G._INFO_.graphinfo.graph.index=-1)}I._INFO_={loaderid:a.loader.K,x:b,y:z,zoom:l,zooming:h,panning:f,scrolling:d,offsetX:p,offsetY:c,width:C,height:O,id:t,bbox:x,groups:e,items:A,ignore:i,graphinfo:m},3*A.length>zingchart.DEV.MAXPOOLSIZE&&(zingchart.DEV.MAXPOOLSIZE+=3*A.length),zingchart.maps.maps[t]=I;var V,B={},J={};if(V=o.choropleth){var j,Q=ZC.MAX,K=-ZC.MAX,W="";for(u=0,Z=A.length;u<Z;u++)F=A[u],null!==ZC._n_(o.style)&&null!==ZC._n_(o.style.items)&&null!==ZC._n_(o.style.items[F])&&null!==ZC._n_(o.style.items[F]["data-value"])&&(j=ZC._f_(o.style.items[F]["data-value"]),Q=Math.min(Q,j),K=Math.max(K,j),J[F]={"data-value":j});var H=V.aspect||"gradient",q=V.progression||"lin",$=V.intervals||4,aa=V.color||"#336699",oa=V["max-percent"]||50,ta=V.effect||"lighten",ea=ZC._b_(V.mirrored),ra=oa/(K-Q);"log"===q&&(ra=oa/(ZC.FV(K,10)-ZC.FV(Q,10)));var ia=oa/$,na=V.labels||[],_a=V.steps||[],sa=V.colors||[];if("intervals"===H){if(_a.length)$=_a.length-1;else if("lin"===q){var la=(K-Q)/$;for(u=0;u<$;u+=1)_a.push(Q+u*la);_a.push(K)}else{var pa=Math.floor(ZC.FV(Q,10)),ca=Math.ceil(ZC.FV(K,10));for(pa===ca&&ca++,$=Math.max(1,ca-pa-1),u=pa;u<=ca;u+=1)u===pa&&pa<1?_a.push(0):_a.push(Math.pow(10,u));ia=oa/$}if(!sa.length)for(u=0;u<=$;u+=1)sa.push("lighten"===ta?ZC.AO.PP(aa,u*ia):ZC.AO.JQ(aa,u*ia))}for(u=0,Z=A.length;u<Z;u++)if(J[F=A[u]]){if(j=J[F]["data-value"],"gradient"===H){var ha=ZC._i_((j-Q)*ra);"log"===q&&(ha=ZC._i_((ZC.FV(j,10)-ZC.FV(Q,10))*ra)),ea&&(ha=oa-ha),W="lighten"===ta?ZC.AO.PP(aa,ha):ZC.AO.JQ(aa,ha)}else if("intervals"===H){for(var fa=0;fa<_a.length-1;fa++)if(j>=_a[fa]&&j<_a[fa+1]){W=sa[fa];break}""===W&&j===K&&(W=sa[sa.length-1])}J[F]={"data-color":W,"background-color":W,"hover-state":{"background-color":W}},V["override-tooltip"]&&(J[F].tooltip={"background-color":ZC.AO.JQ(W,15)})}I._INFO_.choropleth={aspect:H,progression:q,intervals:$,color:aa,maxPercent:oa,effect:ta,minValue:Q,maxValue:K,steps:_a,colors:sa,labels:na,mirrored:ea}}for(o["color-scale"]&&(I._INFO_["color-scale"]=!0),u=0,Z=A.length;u<Z;u++)if(I[F=A[u]]){var da=I[F].type||"poly",ga=0;"line"!==da&&"point"!==da||(ga+=10),I[F].sort&&(I[F].sort&&(I[F].sort=.5),ga+=I[F].sort);var ma,ba,za,Ca=null;if(null!==ZC._n_(o.style)&&(o.style["3d"]&&(Ca=1),null!==ZC._n_(o.style.z)&&(Ca=o.style.z),null!==ZC._n_(o.style.items)&&null!==ZC._n_(o.style.items[F])&&null!==ZC._n_(o.style.items[F].z)&&(Ca=o.style.items[F].z)),"poly"===da||"line"===da)B[F]={type:da,id:F,points:zingchart.maps.mappoints(b,z,C,O,x,I[F],I._RULES_,I._INFO_,Ca),label:{map:t},"z-sort":ga,"z-index":ga,tooltip:{},connector:{},"map-item":!0,generated:!0};else if("point"===da){var Oa=zingchart.maps.mappoints(b,z,C,O,x,I[F],I._RULES_,I._INFO_,Ca);B[F]={type:"circle",id:F,size:5,x:Oa[0][0],y:Oa[0][1],label:{map:t},"z-sort":ga,"z-index":ga,tooltip:{},connector:{},"map-item":!0,generated:!0}}if("poly"===da||"line"===da){var Fa=zingchart.maps.centroid(B[F].points);ba=Fa[0],za=Fa[1],ma=Fa[2]}I._DEFAULTS_&&(ZC._cp_(I._DEFAULTS_._COMMON_,B[F]),"poly"===da?ZC._cp_(I._DEFAULTS_._POLY_,B[F]):"line"===da?ZC._cp_(I._DEFAULTS_._LINE_,B[F]):"point"===da&&ZC._cp_(I._DEFAULTS_._POINT_,B[F])),I[F].style&&ZC._cp_(I[F].style,B[F]),ZC._todash_(B[F]);var ua=I[F].label.text,Za=I[F].tooltip.text;ZC._cp_(o.style,B[F],null,null,null,["items"]);var xa=I[F].tooltip.text||"",Ia=B[F].tooltip.text||"";ZC._cp_(I[F].tooltip,B[F].tooltip);var va=B[F].label.text;ZC._cp_(I[F].label,B[F].label),va&&(B[F].label.text=va),1===zingchart.maps.CONNECTORS&&ZC._cp_(I[F].connector,B[F].connector),"poly"!==da&&"line"!==da||"auto"===B[F].label.visible&&ma<400&&(0===zingchart.maps.CONNECTORS||0===B[F].connector.points.length)&&(B[F].label.visible=!1),J[F]&&ZC._cp_(J[F],B[F]);var Na=!1;for(var ya in null!==ZC._n_(o.style)&&null!==ZC._n_(o.style.items)&&(ZC._cp_(o.style.items[F],B[F]),o.style.items[F]&&o.style.items[F].tooltip&&o.style.items[F].tooltip.text&&(xa=o.style.items[F].tooltip.text,-1===Ia.indexOf("%text")&&(Na=!0))),B[F].tooltip.text=""===Ia||Na?xa:Ia.replace("%text",xa),B[F])"data-"===ya.substring(0,5)&&(B[F].tooltip.text=B[F].tooltip.text.replace("%"+ya,B[F][ya]),B[F].label.text=B[F].label.text.replace("%"+ya,B[F][ya]));if(B[F].tooltip.text=B[F].tooltip.text.replace("%short-text",ua).replace("%long-text",Za),B[F].label.text=B[F].label.text.replace("%short-text",ua).replace("%long-text",Za),zingchart.maps.CONNECTORS&&null!==ZC._n_(B[F].connector.points)){for(var La=0,Ea=B[F].connector.points.length;La<Ea;La++)B[F].connector.points[La]=zingchart.maps.lonlat2xy(b,z,C,O,B[F].connector.points[La],x,{zoom:l,offsetX:p,offsetY:c});B[F].connector.points=ZC.AO.A5M(B[F].connector.points,m.graph.x,m.graph.y)}null===ZC._n_(B[F].label.x)&&(B[F].label.x=ba+m.graph.x),null===ZC._n_(B[F].label.y)&&(B[F].label.y=za+m.graph.y)}var Aa=m.graph.width,Sa=m.graph.height;o.style=o.style||{};var Ma=o.style.controls||{};if(null===ZC._n_(Ma.visible)||ZC._b_(Ma.visible)){var wa=ZC._i_(Ma.x||"-1"),Ya=ZC._i_(Ma.y||"-1"),Ra=Ma.placement||"";""!==Ra||-1!==wa&&-1!==Ya||(Ra="tl");switch(Ra){case"tl":wa=10,Ya=10;break;case"tr":wa=0+Aa-25-10,Ya=10;break;case"bl":wa=10,Ya=0+Sa-50-10;break;case"br":wa=0+Aa-25-10,Ya=0+Sa-50-10}B._ZOOM_IN_={objtype:"label",id:I._INFO_.id+"_zoom_in",generated:!0,x:wa,y:Ya,width:25,height:25,"border-width":1,"border-color":"#999","background-color":"#eee","border-radius":"2 2 0 0","font-size":17,text:"+",tooltip:{text:"Zoom In"}},ZC._cp_(zingchart.maps._DEFAULTS_._COMMON_.tooltip,B._ZOOM_IN_.tooltip),ZC._cp_(Ma["zoom-in"],B._ZOOM_IN_),B._ZOOM_OUT_={objtype:"label",id:I._INFO_.id+"_zoom_out",generated:!0,x:wa,y:Ya+25-1,width:25,height:25,"border-width":1,"border-color":"#999","background-color":"#eee","border-radius":"0 0 2 2","font-size":17,text:"-",tooltip:{text:"Zoom Out"}},ZC._cp_(zingchart.maps._DEFAULTS_._COMMON_.tooltip,B._ZOOM_OUT_.tooltip),ZC._cp_(Ma["zoom-out"],B._ZOOM_OUT_)}return w=D*U/X,!zingchart.maps.FORCESCALE&&(w>1.05||w<.95)&&(B._ALERT_={type:"circle",id:"_ALERT_",x:b+10,y:z+10,size:8,"background-color":"#c00",label:{color:"#fff",bold:!0,text:"!"},tooltip:{text:"Scaling Error<br />Use "+C+"/"+ZC._i_(O*w)+" or "+ZC._i_(C/w)+"/"+O,"background-color":"#c00","border-radius":8,color:"#fff"}}),B},zingchart.maps.exportMap=function(a,o,t=4){var e=['ZC.WJ.push("maps-{{exportid}}");',"","(function() {","","if (!zingchart.maps.{{exportid}}) {","zingchart.maps.{{exportid}} = {};","};","","if (!zingchart.maps.data.{{exportid}}) {","zingchart.maps.data.{{exportid}} = {};","};","","var _COORDS_ = {","{{coords}}","};","","zingchart.maps.data.{{exportid}} = {","_GROUPS_:{","{{groups}}","},","_DEFAULTS_:zingchart.maps._DEFAULTS_,","{{items}}","};","",'zingchart.maps.upgrade("{{exportid}}");',"","})();","","zingchart.maps.{{exportid}} = function(p, ld, d) {","return zingchart.maps.convert({","loader:this,","loaderdata:ld || {},",'graphid:((typeof(p.graphid) == "undefined")?0:p.graphid),',"data:d,",'id:p.id || "{{exportid}}",','x:((typeof(p.x) == "undefined")?0:p.x),','y:((typeof(p.y) == "undefined")?0:p.y),','width:((typeof(p.width) == "undefined")?1:p.width),','height:((typeof(p.height) == "undefined")?1:p.height),','level:((typeof(p.level) == "undefined")?1:p.level),',"groups:p.groups || [],","items:p.items || [],","ignore:p.ignore || [],","bbox:p.bbox || null,","map:zingchart.maps.data.{{exportid}}","});","}"].join("\n"),r=['"{{id}}":{','coords:_COORDS_["{{id}}"],',"tooltip:{",'text:"{{text}}"',"},","cpoint:{",'x:"{{x}}", y:"{{y}}"',"},","label:{",'text:"{{id}}", x:"{{x}}", y:"{{y}}"',"}","}"].join("\n"),i=e;i=i.replace(/\{\{exportid\}\}/gi,o);var n=[],_=[],s=[],l=zingchart.maps.data[a];for(var p in l._GROUPS_){var c='"'+p+'":["'+l._GROUPS_[p].join('","')+'"]';_.push(c)}for(var h in l)if("_DEFAULTS_"!==h&&"_GROUPS_"!==h){var f=r;f=(f=(f=(f=f.replace(/\{\{id\}\}/g,h)).replace(/\{\{text\}\}/g,l[h].tooltip.text)).replace(/\{\{x\}\}/g,l[h].cpoint.x)).replace(/\{\{y\}\}/g,l[h].cpoint.y),s.push(f);for(var d='"'+h+'":',g=[],m=[],b=0;b<l[h].coords.length;b++)if(l[h].coords[b]){var z=parseFloat(l[h].coords[b][0].toFixed(t)),C=parseFloat(l[h].coords[b][1].toFixed(t));(0===m.length||m[0]!==z&&m[1]!==C)&&g.push([z,C]),m=[z,C]}else g.push(null);d+=JSON.stringify(g).replace(/\"/g,""),n.push(d)}return i=(i=(i=i.replace(/\{\{coords\}\}/gi,n.join(",\n"))).replace(/\{\{groups\}\}/gi,_.join(",\n"))).replace(/\{\{items\}\}/gi,s.join(",\n"))};