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_ES6
*/
ZC.X6.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.AP.C1("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.AP.C1("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[ZC._[16]].length;s++)if(i.o[ZC._[16]][s].shapes)for(var l=0;l<i.o[ZC._[16]][s].shapes.length;l++)if("zingchart.maps"===i.o[ZC._[16]][s].shapes[l].type&&i.o[ZC._[16]][s].shapes[l].options&&(i.o[ZC._[16]][s].shapes[l].options.id===o||i.o[ZC._[16]][s].shapes[l].options.name===o)){n=s,_=l;break}var p=i.o[ZC._[16]][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.MT(a.ev),e=o.A2B(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.MT(a.ev),e=o.A2B(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.MT(a.ev),e=o.A2B(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.MT(a.ev),e=o.A2B(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,ZC._[47],function(a){if(0===a.ev.button&&("none"===a.target||"shape"===a.target)){var o=zingchart.getLoader(a.id),t=ZC.Q.MT(a.ev);a.ev.preventDefault();var e=o.A2B(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,ZC._[48],function(a){if(zingchart.maps.MD){var o=zingchart.getLoader(a.id),t=ZC.Q.MT(a.ev),e=o.A2B(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.AP.C1("maps.zoom",zingchart.getLoader(r._INFO_.loaderid),r._INFO_)))}}}),zingchart.bind(null,ZC._[49],function(a){if(zingchart.maps.MD){var o=zingchart.getLoader(a.id),t=ZC.Q.MT(a.ev),e=o.A2B(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.MT(a.ev),e=o.A2B(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,g=s[1]-n/2;r._INFO_.offsetX=f*((r._INFO_.zoom-1)/5),r._INFO_.offsetY=g*((r._INFO_.zoom-1)/5)}}zingchart.maps.setView(a.id,r._INFO_.id,r._INFO_.zoom,r._INFO_.offsetX,r._INFO_.offsetY),ZC.AP.C1("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,g=h*((n-p)*(t._INFO_.width/r)),d=h*((c-_)*(t._INFO_.height/i));zingchart.maps.zoomTo(a,{zoom:f,offsetX:g,offsetY:d})}},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",_=ED[n](r,e.zoom,o.zoom-e.zoom,10),s=ED[n](r,e.offsetX,o.offsetX-e.offsetX,10),l=ED[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.AP.C1("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.X6.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:typeof o.graphid===ZC._[31]?0:o.graphid,data:e,id:o.id||a,x:typeof o.x===ZC._[31]?0:o.x,y:typeof o.y===ZC._[31]?0:o.y,width:typeof o.width===ZC._[31]?1:o.width,height:typeof o.height===ZC._[31]?1:o.height,level:typeof o.level===ZC._[31]?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,_){typeof _===ZC._[31]&&(_=!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,g,d=(a+=l)+(ZC._f_(r[0])-ZC.CX(i[0],i[2]))*c,m=o+e-(ZC._f_(r[1])-ZC.CX(i[1],i[3]))*h;if(n&&n.map&&((f=zingchart.maps.maps[n.map])||(f=zingchart.maps.data[n.map]),f)){if((g=f[n.item])&&(d+=g.transform.offsetLon*c,m-=g.transform.offsetLat*h,1!==g.transform.scale)){var b=a+(ZC.CX(g.bbox[0],g.bbox[2])-ZC.CX(i[0],i[2]))*c,z=o+e-(ZC.CX(g.bbox[1],g.bbox[3])-ZC.CX(i[1],i[3]))*h,C=ZC._a_(g.bbox[3]-g.bbox[1])*h;d=b+(d-b)*g.transform.scale,m=z-C+(m-(z-C))*g.transform.scale}_&&(d+=f._INFO_.graphinfo.graph.x,m+=f._INFO_.graphinfo.graph.y)}return[d,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,g,d,m=[],b=null;g=t/ZC._a_(r[2]-r[0]),d=e/ZC._a_(r[3]-r[1]),_=_||{};var z=Math.abs(ZC._f_(_.zoom||"1")),C=ZC._i_(_.offsetX||"0");g*=z,d*=z,a-=t*(z-1)/2,o-=e*(z-1)/2,o+=ZC._i_(_.offsetY||"0"),c=(a+=C)+(ZC.CX(i.bbox[0],i.bbox[2])-ZC.CX(r[0],r[2]))*g,h=o+e*z-(ZC.CX(i.bbox[1],i.bbox[3])-ZC.CX(r[1],r[3]))*d,ZC._a_(i.bbox[2]-i.bbox[0]),f=ZC._a_(i.bbox[3]-i.bbox[1])*d;for(var O=0,F=i.coords.length;O<F;O++)if(null===ZC._n_(i.coords[O]))m.push(null);else{var Z=i.transform.offsetLon,u=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){Z=n[I].offsetLon,u=n[I].offsetLat,x=n[I].scale,b=n[I].bbox;break}if(l=a+(i.coords[O][0]-ZC.CX(r[0],r[2]))*g+Z*g,p=o+(ZC.BR(r[1],r[3])-i.coords[O][1])*d-u*d,1!==x)if("__"===i.id){var N=a+(ZC.CX(b[0],b[2])-ZC.CX(r[0],r[2]))*g,y=o+e-(ZC.CX(b[1],b[3])-ZC.CX(r[1],r[3]))*d,L=ZC._a_(b[3]-b[1])*d;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.AO.E0,parseInt(p,10)-ZC.AO.E1,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,g=!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)&&(g=ZC._b_(o.scrolling));var d,m=a.loader.A0S(a.loaderdata,a.graphid);a.loader.MO&&(d=a.loader.MO.theme||"light"),a.loader.o&&(d=a.loader.o.theme||"light"),"light"===d?a.map._DEFAULTS_=zingchart.maps.LIGHT:"dark"===d&&(a.map._DEFAULTS_=zingchart.maps.DARK),ZC.AO&&(ZC.AO.A54=2.5*ZC.BR(m.graph.width,m.graph.height),ZC.AO.E0=m.plotarea.x+m.plotarea.width/2,ZC.AO.E1=m.plotarea.y+m.plotarea.height/2);var b=ZC.IX(a.x);b=ZC._i_(b>0&&b<1?b*m.plotarea.width:b),b+=m.plotarea.x;var z=ZC.IX(a.y);z=ZC._i_(b>0&&z<1?z*m.plotarea.height:z),z+=m.plotarea.y;var C=ZC.IX(a.width);C=ZC._i_(C<=1?C*m.plotarea.width:C);var O=ZC.IX(a.height);O=ZC._i_(O<=1?O*m.plotarea.height:O);var F,Z,u,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(Z=0;Z<I[F].coords.length;Z++)if(null!==ZC._n_(I[F].coords[Z])){if("__"===F&&null!==ZC._n_(I._RULES_))for(var L=0,E=I._RULES_.length;L<E;L++)if(I[F].coords[Z][0]>=I._RULES_[L].bbox[0]-I._RULES_[L].offsetLon&&I[F].coords[Z][0]<=I._RULES_[L].bbox[2]-I._RULES_[L].offsetLon&&I[F].coords[Z][1]>=I._RULES_[L].bbox[3]-I._RULES_[L].offsetLat&&I[F].coords[Z][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.CX(x[0],I[F].coords[Z][0]+v),x[1]=ZC.BR(x[1],I[F].coords[Z][1]+N),x[2]=ZC.BR(x[2],I[F].coords[Z][0]+v),x[3]=ZC.CX(x[3],I[F].coords[Z][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 X=[];if(e.length>0&&I._GROUPS_){for(Z=0,u=e.length;Z<u;Z++)I._GROUPS_[e[Z]]&&(X=X.concat(I._GROUPS_[e[Z]]));for(Z=X.length-1;Z>=0;Z--)if(-1===X[Z].indexOf("@"))-1!==ZC.AV(i,X[Z])&&X.splice(Z,1);else{var A=X[Z].split("@");-1!==ZC.AV(i,A[0])&&X.splice(Z,1)}}if(r.length>0)for(Z=0,u=r.length;Z<u;Z++)-1===ZC.AV(i,r[Z])&&X.push(r[Z]);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)&&X.push(F)}for(Z=X.length-1;Z>=0;Z--)if(X[Z]&&-1!==X[Z].indexOf("@")){var S=X[Z].split("@");-1!==ZC.AV(X,S[0])&&X.splice(Z,1)}if(null!==ZC._n_(n)&&4===n.length)x=n;else for(Z=0,u=X.length;Z<u;Z++)I[F=X[Z]]&&(x[0]=ZC.CX(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.CX(x[3],I[F].bbox[3]));var M,w=ZC._a_(x[2]-x[0])/20,R=ZC._a_(x[3]-x[1])/20;for(F in x[0]-=w,x[1]+=R,x[2]+=w,x[3]-=R,I)"_DEFAULTS_"!==F&&"_INFO_"!==F&&"_GROUPS_"!==F&&"_RULES_"!==F&&(0===_&&"__"!==F||0!==_&&"__"===F&&!s||(w=ZC.CX(1,ZC._a_(I[F].bbox[2]-I[F].bbox[0])/8),R=ZC.CX(1,ZC._a_(I[F].bbox[3]-I[F].bbox[1])/8),I[F].bbox[0]-=w,I[F].bbox[1]+=R,I[F].bbox[2]+=w,I[F].bbox[3]-=R));var U=1+.8*ZC._a_((x[3]+x[1])/180),D=C/ZC._a_(x[2]-x[0]),T=O/ZC._a_(x[3]-x[1]);if(!o.hasOwnProperty("scale")||ZC._b_(o.scale)){if((M=U*D/T)>1.05){var Y=ZC._i_(C/M);b+=(C-Y)/2,C=Y}else if(M<.95){var P=ZC._i_(O*M);z+=(O-P)/2,O=P}D=C/ZC._a_(x[2]-x[0]),T=O/ZC._a_(x[3]-x[1])}for(var k in zingchart.maps.maps)if(t!==k){var G=zingchart.maps.maps[k];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:g,offsetX:p,offsetY:c,width:C,height:O,id:t,bbox:x,groups:e,items:X,ignore:i,graphinfo:m},3*X.length>zingchart.DEV.MAXPOOLSIZE&&(zingchart.DEV.MAXPOOLSIZE+=3*X.length),zingchart.maps.maps[t]=I;var B,V={},j={};if(B=o.choropleth){var Q,K=ZC.MAX,W=-ZC.MAX,J="";for(Z=0,u=X.length;Z<u;Z++)F=X[Z],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"])&&(Q=ZC._f_(o.style.items[F]["data-value"]),K=Math.min(K,Q),W=Math.max(W,Q),j[F]={"data-value":Q});var H=B.aspect||"gradient",q=B.progression||"lin",$=B.intervals||4,aa=B.color||"#336699",oa=B["max-percent"]||50,ta=B.effect||"lighten",ea=ZC._b_(B.mirrored),ra=oa/(W-K);"log"===q&&(ra=oa/(ZC.FW(W,10)-ZC.FW(K,10)));var ia=oa/$,na=B[ZC._[10]]||[],_a=B.steps||[],sa=B.colors||[];if("intervals"===H){if(_a.length)$=_a.length-1;else if("lin"===q){var la=(W-K)/$;for(Z=0;Z<$;Z+=1)_a.push(K+Z*la);_a.push(W)}else{var pa=Math.floor(ZC.FW(K,10)),ca=Math.ceil(ZC.FW(W,10));for(pa===ca&&ca++,$=Math.max(1,ca-pa-1),Z=pa;Z<=ca;Z+=1)Z===pa&&pa<1?_a.push(0):_a.push(Math.pow(10,Z));ia=oa/$}if(!sa.length)for(Z=0;Z<=$;Z+=1)sa.push("lighten"===ta?ZC.AP.Q3(aa,Z*ia):ZC.AP.JW(aa,Z*ia))}for(Z=0,u=X.length;Z<u;Z++)if(j[F=X[Z]]){if(Q=j[F]["data-value"],"gradient"===H){var ha=ZC._i_((Q-K)*ra);"log"===q&&(ha=ZC._i_((ZC.FW(Q,10)-ZC.FW(K,10))*ra)),ea&&(ha=oa-ha),J="lighten"===ta?ZC.AP.Q3(aa,ha):ZC.AP.JW(aa,ha)}else if("intervals"===H){for(var fa=0;fa<_a.length-1;fa++)if(Q>=_a[fa]&&Q<_a[fa+1]){J=sa[fa];break}""===J&&Q===W&&(J=sa[sa.length-1])}j[F]={"data-color":J,"background-color":J,"hover-state":{"background-color":J}},B["override-tooltip"]&&(j[F].tooltip={"background-color":ZC.AP.JW(J,15)})}I._INFO_.choropleth={aspect:H,progression:q,intervals:$,color:aa,maxPercent:oa,effect:ta,minValue:K,maxValue:W,steps:_a,colors:sa,labels:na,mirrored:ea}}for(o["color-scale"]&&(I._INFO_["color-scale"]=!0),Z=0,u=X.length;Z<u;Z++)if(I[F=X[Z]]){var ga=I[F].type||"poly",da=0;"line"!==ga&&"point"!==ga||(da+=10),I[F].sort&&(I[F].sort&&(I[F].sort=.5),da+=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"===ga||"line"===ga)V[F]={type:ga,id:F,points:zingchart.maps.mappoints(b,z,C,O,x,I[F],I._RULES_,I._INFO_,Ca),label:{map:t},"z-sort":da,"z-index":da,tooltip:{},connector:{},"map-item":!0,generated:!0};else if("point"===ga){var Oa=zingchart.maps.mappoints(b,z,C,O,x,I[F],I._RULES_,I._INFO_,Ca);V[F]={type:"circle",id:F,size:5,x:Oa[0][0],y:Oa[0][1],label:{map:t},"z-sort":da,"z-index":da,tooltip:{},connector:{},"map-item":!0,generated:!0}}if("poly"===ga||"line"===ga){var Fa=zingchart.maps.centroid(V[F].points);ba=Fa[0],za=Fa[1],ma=Fa[2]}I._DEFAULTS_&&(ZC._cp_(I._DEFAULTS_._COMMON_,V[F]),"poly"===ga?ZC._cp_(I._DEFAULTS_._POLY_,V[F]):"line"===ga?ZC._cp_(I._DEFAULTS_._LINE_,V[F]):"point"===ga&&ZC._cp_(I._DEFAULTS_._POINT_,V[F])),I[F].style&&ZC._cp_(I[F].style,V[F]),ZC._todash_(V[F]);var Za=I[F].label.text,ua=I[F].tooltip.text;ZC._cp_(o.style,V[F],null,null,null,["items"]);var xa=I[F].tooltip.text||"",Ia=V[F].tooltip.text||"";ZC._cp_(I[F].tooltip,V[F].tooltip);var va=V[F].label.text;ZC._cp_(I[F].label,V[F].label),va&&(V[F].label.text=va),1===zingchart.maps.CONNECTORS&&ZC._cp_(I[F].connector,V[F].connector),"poly"!==ga&&"line"!==ga||"auto"===V[F].label.visible&&ma<400&&(0===zingchart.maps.CONNECTORS||0===V[F].connector.points.length)&&(V[F].label.visible=!1),j[F]&&ZC._cp_(j[F],V[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],V[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))),V[F].tooltip.text=""===Ia||Na?xa:Ia.replace("%text",xa),V[F])"data-"===ya.substring(0,5)&&(V[F].tooltip.text=V[F].tooltip.text.replace("%"+ya,V[F][ya]),V[F].label.text=V[F].label.text.replace("%"+ya,V[F][ya]));if(V[F].tooltip.text=V[F].tooltip.text.replace("%short-text",Za).replace("%long-text",ua),V[F].label.text=V[F].label.text.replace("%short-text",Za).replace("%long-text",ua),zingchart.maps.CONNECTORS&&null!==ZC._n_(V[F].connector.points)){for(var La=0,Ea=V[F].connector.points.length;La<Ea;La++)V[F].connector.points[La]=zingchart.maps.lonlat2xy(b,z,C,O,V[F].connector.points[La],x,{zoom:l,offsetX:p,offsetY:c});V[F].connector.points=ZC.AP.A69(V[F].connector.points,m.graph.x,m.graph.y)}null===ZC._n_(V[F].label.x)&&(V[F].label.x=ba+m.graph.x),null===ZC._n_(V[F].label.y)&&(V[F].label.y=za+m.graph.y)}var Xa=m.graph.width,Aa=m.graph.height;o.style=o.style||{};var Sa=o.style.controls||{};if(null===ZC._n_(Sa.visible)||ZC._b_(Sa.visible)){var Ma=ZC._i_(Sa.x||"-1"),wa=ZC._i_(Sa.y||"-1"),Ra=Sa[ZC._[7]]||"";""!==Ra||-1!==Ma&&-1!==wa||(Ra="tl");switch(Ra){case"tl":Ma=10,wa=10;break;case"tr":Ma=0+Xa-25-10,wa=10;break;case"bl":Ma=10,wa=0+Aa-50-10;break;case"br":Ma=0+Xa-25-10,wa=0+Aa-50-10}V._ZOOM_IN_={objtype:"label",id:I._INFO_.id+"_zoom_in",generated:!0,x:Ma,y:wa,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,V._ZOOM_IN_.tooltip),ZC._cp_(Sa["zoom-in"],V._ZOOM_IN_),V._ZOOM_OUT_={objtype:"label",id:I._INFO_.id+"_zoom_out",generated:!0,x:Ma,y:wa+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,V._ZOOM_OUT_.tooltip),ZC._cp_(Sa["zoom-out"],V._ZOOM_OUT_)}return M=U*D/T,!zingchart.maps.FORCESCALE&&(M>1.05||M<.95)&&(V._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*M)+" or "+ZC._i_(C/M)+"/"+O,"background-color":"#c00","border-radius":8,color:"#fff"}}),V},zingchart.maps.exportMap=function(a,o,t=4){var e=['ZC.X6.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 g='"'+h+'":',d=[],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)&&d.push([z,C]),m=[z,C]}else d.push(null);g+=JSON.stringify(d).replace(/\"/g,""),n.push(g)}return i=(i=(i=i.replace(/\{\{coords\}\}/gi,n.join(",\n"))).replace(/\{\{groups\}\}/gi,_.join(",\n"))).replace(/\{\{items\}\}/gi,s.join(",\n"))};