kendo.dataviz.map.min.js 51.2 KB
/** 
 * Kendo UI v2016.1.112 (http://www.telerik.com/kendo-ui)                                                                                                                                               
 * Copyright 2016 Telerik AD. All rights reserved.                                                                                                                                                      
 *                                                                                                                                                                                                      
 * Kendo UI commercial licenses may be obtained at                                                                                                                                                      
 * http://www.telerik.com/purchase/license-agreement/kendo-ui-complete                                                                                                                                  
 * If you do not own a commercial license, this file shall be governed by the trial license terms.                                                                                                      
                                                                                                                                                                                                       
                                                                                                                                                                                                       
                                                                                                                                                                                                       
                                                                                                                                                                                                       
                                                                                                                                                                                                       
                                                                                                                                                                                                       
                                                                                                                                                                                                       
                                                                                                                                                                                                       
                                                                                                                                                                                                       
                                                                                                                                                                                                       
                                                                                                                                                                                                       
                                                                                                                                                                                                       
                                                                                                                                                                                                       
                                                                                                                                                                                                       
                                                                                                                                                                                                       

*/
!function(t,define){define("util/main.min",["kendo.core.min"],t)}(function(){return function(){function t(t){return typeof t!==V}function e(t,e){var n=i(e);return O.round(t*n)/n}function i(t){return t?O.pow(10,t):1}function n(t,e,i){return O.max(O.min(t,i),e)}function o(t){return t*I}function a(t){return t/I}function r(t){return"number"==typeof t&&!isNaN(t)}function s(e,i){return t(e)?e:i}function h(t){return t*t}function l(t){var e,i=[];for(e in t)i.push(e+t[e]);return i.sort().join("")}function c(t){var e,i=2166136261;for(e=0;t.length>e;++e)i+=(i<<1)+(i<<4)+(i<<7)+(i<<8)+(i<<24),i^=t.charCodeAt(e);return i>>>0}function u(t){return c(l(t))}function d(t){var e,i=t.length,n=j,o=D;for(e=0;i>e;e++)o=O.max(o,t[e]),n=O.min(n,t[e]);return{min:n,max:o}}function f(t){return d(t).min}function m(t){return d(t).max}function p(t){return v(t).min}function _(t){return v(t).max}function v(t){var e,i,n,o=j,a=D;for(e=0,i=t.length;i>e;e++)n=t[e],null!==n&&isFinite(n)&&(o=O.min(o,n),a=O.max(a,n));return{min:o===j?void 0:o,max:a===D?void 0:a}}function g(t){return t?t[t.length-1]:void 0}function y(t,e){return t.push.apply(t,e),t}function w(t){return N.template(t,{useWithBlock:!1,paramName:"d"})}function b(e,i){return t(i)&&null!==i?" "+e+"='"+i+"' ":""}function x(t){var e,i="";for(e=0;t.length>e;e++)i+=b(t[e][0],t[e][1]);return i}function k(e){var i,n,o="";for(i=0;e.length>i;i++)n=e[i][1],t(n)&&(o+=e[i][0]+":"+n+";");return""!==o?o:void 0}function z(t){return"string"!=typeof t&&(t+="px"),t}function S(t){var e,i,n=[];if(t)for(e=N.toHyphens(t).split("-"),i=0;e.length>i;i++)n.push("k-pos-"+e[i]);return n.join(" ")}function T(e){return""===e||null===e||"none"===e||"transparent"===e||!t(e)}function C(t){for(var e={1:"i",10:"x",100:"c",2:"ii",20:"xx",200:"cc",3:"iii",30:"xxx",300:"ccc",4:"iv",40:"xl",400:"cd",5:"v",50:"l",500:"d",6:"vi",60:"lx",600:"dc",7:"vii",70:"lxx",700:"dcc",8:"viii",80:"lxxx",800:"dccc",9:"ix",90:"xc",900:"cm",1e3:"m"},i=[1e3,900,800,700,600,500,400,300,200,100,90,80,70,60,50,40,30,20,10,9,8,7,6,5,4,3,2,1],n="";t>0;)i[0]>t?i.shift():(n+=e[i[0]],t-=i[0]);return n}function E(t){var e,i,n,o,a;for(t=t.toLowerCase(),e={i:1,v:5,x:10,l:50,c:100,d:500,m:1e3},i=0,n=0,o=0;t.length>o;++o){if(a=e[t.charAt(o)],!a)return null;i+=a,a>n&&(i-=2*n),n=a}return i}function L(t){var e=Object.create(null);return function(){var i,n="";for(i=arguments.length;--i>=0;)n+=":"+arguments[i];return n in e?e[n]:t.apply(this,arguments)}}function A(t){for(var e,i,n=[],o=0,a=t.length;a>o;)e=t.charCodeAt(o++),e>=55296&&56319>=e&&a>o?(i=t.charCodeAt(o++),56320==(64512&i)?n.push(((1023&e)<<10)+(1023&i)+65536):(n.push(e),o--)):n.push(e);return n}function M(t){return t.map(function(t){var e="";return t>65535&&(t-=65536,e+=String.fromCharCode(t>>>10&1023|55296),t=56320|1023&t),e+=String.fromCharCode(t)}).join("")}var O=Math,N=window.kendo,P=N.deepExtend,I=O.PI/180,j=Number.MAX_VALUE,D=-Number.MAX_VALUE,V="undefined",R=Date.now;R||(R=function(){return(new Date).getTime()}),P(N,{util:{MAX_NUM:j,MIN_NUM:D,append:y,arrayLimits:d,arrayMin:f,arrayMax:m,defined:t,deg:a,hashKey:c,hashObject:u,isNumber:r,isTransparent:T,last:g,limitValue:n,now:R,objectKey:l,round:e,rad:o,renderAttr:b,renderAllAttr:x,renderPos:S,renderSize:z,renderStyle:k,renderTemplate:w,sparseArrayLimits:v,sparseArrayMin:p,sparseArrayMax:_,sqr:h,valueOrDefault:s,romanToArabic:E,arabicToRoman:C,memoize:L,ucs2encode:M,ucs2decode:A}}),N.drawing.util=N.util,N.dataviz.util=N.util}(),window.kendo},"function"==typeof define&&define.amd?define:function(t,e,i){(i||e)()}),function(t,define){define("util/text-metrics",["kendo.core","util/main"],t)}(function(){!function(t){function e(t,e,i){return l.current.measure(t,e,i)}var i=document,n=window.kendo,o=n.Class,a=n.util,r=a.defined,s=o.extend({init:function(t){this._size=t,this._length=0,this._map={}},put:function(t,e){var i=this,n=i._map,o={key:t,value:e};n[t]=o,i._head?(i._tail.newer=o,o.older=i._tail,i._tail=o):i._head=i._tail=o,i._length>=i._size?(n[i._head.key]=null,i._head=i._head.newer,i._head.older=null):i._length++},get:function(t){var e=this,i=e._map[t];return i?(i===e._head&&i!==e._tail&&(e._head=i.newer,e._head.older=null),i!==e._tail&&(i.older&&(i.older.newer=i.newer,i.newer.older=i.older),i.older=e._tail,i.newer=null,e._tail.newer=i,e._tail=i),i.value):void 0}}),h=t("<div style='position: absolute !important; top: -4000px !important; width: auto !important; height: auto !important;padding: 0 !important; margin: 0 !important; border: 0 !important;line-height: normal !important; visibility: hidden !important; white-space: nowrap!important;' />")[0],l=o.extend({init:function(t){this._cache=new s(1e3),this._initOptions(t)},options:{baselineMarkerSize:1},measure:function(e,n,o){var s,l,c,u,d,f=a.objectKey(n),m=a.hashKey(e+f),p=this._cache.get(m);if(p)return p;s={width:0,height:0,baseline:0},l=o?o:h,c=this._baselineMarker().cloneNode(!1);for(u in n)d=n[u],r(d)&&(l.style[u]=d);return t(l).text(e),l.appendChild(c),i.body.appendChild(l),(e+"").length&&(s.width=l.offsetWidth-this.options.baselineMarkerSize,s.height=l.offsetHeight,s.baseline=c.offsetTop+this.options.baselineMarkerSize),s.width>0&&s.height>0&&this._cache.put(m,s),l.parentNode.removeChild(l),s},_baselineMarker:function(){return t("<div class='k-baseline-marker' style='display: inline-block; vertical-align: baseline;width: "+this.options.baselineMarkerSize+"px; height: "+this.options.baselineMarkerSize+"px;overflow: hidden;' />")[0]}});l.current=new l,n.util.TextMetrics=l,n.util.LRUCache=s,n.util.measureText=e}(window.kendo.jQuery)},"function"==typeof define&&define.amd?define:function(t,e,i){(i||e)()}),function(t,define){define("util/base64.min",["util/main.min"],t)}(function(){return function(){function t(t){var i,n,o,r,s,h,l,c="",u=0;for(t=e(t);t.length>u;)i=t.charCodeAt(u++),n=t.charCodeAt(u++),o=t.charCodeAt(u++),r=i>>2,s=(3&i)<<4|n>>4,h=(15&n)<<2|o>>6,l=63&o,isNaN(n)?h=l=64:isNaN(o)&&(l=64),c=c+a.charAt(r)+a.charAt(s)+a.charAt(h)+a.charAt(l);return c}function e(t){var e,i,n="";for(e=0;t.length>e;e++)i=t.charCodeAt(e),128>i?n+=o(i):2048>i?(n+=o(192|i>>>6),n+=o(128|63&i)):65536>i&&(n+=o(224|i>>>12),n+=o(128|i>>>6&63),n+=o(128|63&i));return n}var i=window.kendo,n=i.deepExtend,o=String.fromCharCode,a="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";n(i.util,{encodeBase64:t,encodeUTF8:e})}(),window.kendo},"function"==typeof define&&define.amd?define:function(t,e,i){(i||e)()}),function(t,define){define("mixins/observers.min",["kendo.core.min"],t)}(function(){return function(t){var e=Math,i=window.kendo,n=i.deepExtend,o=t.inArray,a={observers:function(){return this._observers=this._observers||[]},addObserver:function(t){return this._observers?this._observers.push(t):this._observers=[t],this},removeObserver:function(t){var e=this.observers(),i=o(t,e);return-1!=i&&e.splice(i,1),this},trigger:function(t,e){var i,n,o=this._observers;if(o&&!this._suspended)for(n=0;o.length>n;n++)i=o[n],i[t]&&i[t](e);return this},optionsChange:function(t){this.trigger("optionsChange",t)},geometryChange:function(t){this.trigger("geometryChange",t)},suspend:function(){return this._suspended=(this._suspended||0)+1,this},resume:function(){return this._suspended=e.max((this._suspended||0)-1,0),this},_observerField:function(t,e){this[t]&&this[t].removeObserver(this),this[t]=e,e.addObserver(this)}};n(i,{mixins:{ObserversMixin:a}})}(window.kendo.jQuery),window.kendo},"function"==typeof define&&define.amd?define:function(t,e,i){(i||e)()}),function(t,define){define("dataviz/map/location.min",["kendo.drawing.min"],t)}(function(){!function(t,e){var i,n=Math,o=n.abs,a=n.atan,r=n.atan2,s=n.cos,h=n.max,l=n.min,c=n.sin,u=n.tan,d=window.kendo,f=d.Class,m=d.dataviz,p=d.deepExtend,_=d.util,v=_.defined,g=_.deg,y=_.rad,w=_.round,b=_.sqr,x=_.valueOrDefault,k=f.extend({init:function(t,e){1===arguments.length?(this.lat=t[0],this.lng=t[1]):(this.lat=t,this.lng=e)},DISTANCE_ITERATIONS:100,DISTANCE_CONVERGENCE:1e-12,DISTANCE_PRECISION:2,FORMAT:"{0:N6},{1:N6}",toArray:function(){return[this.lat,this.lng]},equals:function(t){return t&&t.lat===this.lat&&t.lng===this.lng},clone:function(){return new k(this.lat,this.lng)},round:function(t){return this.lng=w(this.lng,t),this.lat=w(this.lat,t),this},wrap:function(){return this.lng=this.lng%180,this.lat=this.lat%90,this},distanceTo:function(t,e){return this.greatCircleTo(t,e).distance},destination:function(t,e,i){var o,a,h,l,u;return e=y(e),i=i||m.map.datums.WGS84,o=y(this.lat),a=y(this.lng),h=t/d.dataviz.map.datums.WGS84.a,l=n.asin(c(o)*s(h)+s(o)*c(h)*s(e)),u=a+r(c(e)*c(h)*s(o),s(h)-c(o)*c(l)),new k(g(l),g(u))},greatCircleTo:function(t,e){var i,h,l,d,f,p,_,v,x,z,S,T,C,E,L,A,M,O,N,P,I,j,D,V,R,Z,U,F,G;if(t=k.create(t),e=e||m.map.datums.WGS84,!t||this.clone().round(8).equals(t.clone().round(8)))return{distance:0,azimuthFrom:0,azimuthTo:0};for(i=e.a,h=e.b,l=e.f,d=y(t.lng-this.lng),f=a((1-l)*u(y(this.lat))),p=c(f),_=s(f),v=a((1-l)*u(y(t.lat))),x=c(v),z=s(v),S=d,C=this.DISTANCE_ITERATIONS,E=!1;!E&&C-- >0;)L=c(S),A=s(S),M=n.sqrt(b(z*L)+b(_*x-p*z*A)),N=p*x+_*z*A,I=r(M,N),j=_*z*L/M,O=1-b(j),P=0,0!==O&&(P=N-2*p*x/O),T=S,D=l/16*O*(4+l*(4-3*O)),S=d+(1-D)*l*j*(I+D*M*(P+D*N*(-1+2*b(P)))),E=o(S-T)<=this.DISTANCE_CONVERGENCE;return V=O*(b(i)-b(h))/b(h),R=1+V/16384*(4096+V*(-768+V*(320-175*V))),Z=V/1024*(256+V*(-128+V*(74-47*V))),U=Z*M*(P+Z/4*(N*(-1+2*b(P))-Z/6*P*(-3+4*b(M))*(-3+4*b(P)))),F=r(z*L,_*x-p*z*A),G=r(_*L,-p*z+_*x*A),{distance:w(h*R*(I-U),this.DISTANCE_PRECISION),azimuthFrom:g(F),azimuthTo:g(G)}}});k.fn.toString=function(){return d.format(this.FORMAT,this.lat,this.lng)},k.fromLngLat=function(t){return new k(t[1],t[0])},k.fromLatLng=function(t){return new k(t[0],t[1])},k.create=function(t,i){return v(t)?t instanceof k?t.clone():1===arguments.length&&2===t.length?k.fromLatLng(t):new k(t,i):e},i=f.extend({init:function(t,e){t=k.create(t),e=k.create(e),t.lng+180>e.lng+180&&e.lat+90>t.lat+90?(this.se=t,this.nw=e):(this.se=e,this.nw=t)},contains:function(t){var e=this.nw,i=this.se,n=x(t.lng,t[1]),o=x(t.lat,t[0]);return t&&n+180>=e.lng+180&&i.lng+180>=n+180&&o+90>=i.lat+90&&e.lat+90>=o+90},center:function(){var t=this.nw,e=this.se,i=t.lng+(e.lng-t.lng)/2,n=t.lat+(e.lat-t.lat)/2;return new k(n,i)},containsAny:function(t){var e,i=!1;for(e=0;t.length>e;e++)i=i||this.contains(t[e]);return i},include:function(t){var e=this.nw,i=this.se,n=x(t.lng,t[1]),o=x(t.lat,t[0]);e.lng=l(e.lng,n),e.lat=h(e.lat,o),i.lng=h(i.lng,n),i.lat=l(i.lat,o)},includeAll:function(t){for(var e=0;t.length>e;e++)this.include(t[e])},edges:function(){var t=this.nw,e=this.se;return{nw:this.nw,ne:new k(t.lat,e.lng),se:this.se,sw:new k(e.lat,t.lng)}},toArray:function(){var t=this.nw,e=this.se;return[t,new k(t.lat,e.lng),e,new k(e.lat,t.lng)]},overlaps:function(t){return this.containsAny(t.toArray())||t.containsAny(this.toArray())}}),i.World=new i([90,-180],[-90,180]),i.create=function(t,n){return t instanceof i?t:t&&n?new i(t,n):t&&4===t.length&&!n?new i([t[0],t[1]],[t[2],t[3]]):e},p(m,{map:{Extent:i,Location:k}})}(window.kendo.jQuery)},"function"==typeof define&&define.amd?define:function(t,e,i){(i||e)()}),function(t,define){define("dataviz/map/attribution.min",["kendo.drawing.min"],t)}(function(){!function(){var t=window.kendo,e=t.ui.Widget,i=t.template,n=t.util.valueOrDefault,o=t.util.defined,a=e.extend({init:function(t,i){e.fn.init.call(this,t,i),this._initOptions(i),this.items=[],this.element.addClass("k-widget k-attribution")},options:{name:"Attribution",separator:"&nbsp;|&nbsp;",itemTemplate:"#= text #"},filter:function(t,e){this._extent=t,this._zoom=e,this._render()},add:function(t){o(t)&&("string"==typeof t&&(t={text:t}),this.items.push(t),this._render())},remove:function(t){var e,i,n=[];for(e=0;this.items.length>e;e++)i=this.items[e],i.text!==t&&n.push(i);this.items=n,this._render()},clear:function(){this.items=[],this.element.empty()},_render:function(){var t,e,n,o=[],a=i(this.options.itemTemplate);for(t=0;this.items.length>t;t++)e=this.items[t],n=this._itemText(e),""!==n&&o.push(a({text:n}));o.length>0?this.element.empty().append(o.join(this.options.separator)).show():this.element.hide()},_itemText:function(t){var e="",i=this._inZoomLevel(t.minZoom,t.maxZoom),n=this._inArea(t.extent);return i&&n&&(e+=t.text),e},_inZoomLevel:function(t,e){var i=!0;return t=n(t,-Number.MAX_VALUE),e=n(e,Number.MAX_VALUE),i=this._zoom>t&&e>this._zoom},_inArea:function(t){var e=!0;return t&&(e=t.contains(this._extent)),e}});t.dataviz.ui.plugin(a)}(window.kendo.jQuery)},"function"==typeof define&&define.amd?define:function(t,e,i){(i||e)()}),function(t,define){define("dataviz/map/navigator.min",["kendo.core.min"],t)}(function(){!function(t){function e(t){return i.format('<button class="k-button k-navigator-{0}"><span class="k-icon k-i-arrow-{0}"/></button>',t)}var i=window.kendo,n=i.ui.Widget,o=i.keys,a=t.proxy,r=".kendoNavigator",s=e("n")+e("e")+e("s")+e("w"),h=n.extend({init:function(t,e){n.fn.init.call(this,t,e),this._initOptions(e),this.element.addClass("k-widget k-header k-shadow k-navigator").append(s).on("click"+r,".k-button",a(this,"_click"));var o=this.element.parent().closest("["+i.attr("role")+"]");this._keyroot=o.length>0?o:this.element,this._tabindex(this._keyroot),this._keydown=a(this._keydown,this),this._keyroot.on("keydown",this._keydown)},options:{name:"Navigator",panStep:1},events:["pan"],dispose:function(){this._keyroot.off("keydown",this._keydown)},_pan:function(t,e){var i=this.options.panStep;this.trigger("pan",{x:t*i,y:e*i})},_click:function(e){var i=0,n=0,o=t(e.currentTarget);o.is(".k-navigator-n")?n=1:o.is(".k-navigator-s")?n=-1:o.is(".k-navigator-e")?i=1:o.is(".k-navigator-w")&&(i=-1),this._pan(i,n),e.preventDefault()},_keydown:function(t){switch(t.which){case o.UP:this._pan(0,1),t.preventDefault();break;case o.DOWN:this._pan(0,-1),t.preventDefault();break;case o.RIGHT:this._pan(1,0),t.preventDefault();break;case o.LEFT:this._pan(-1,0),t.preventDefault()}}});i.dataviz.ui.plugin(h)}(window.kendo.jQuery)},"function"==typeof define&&define.amd?define:function(t,e,i){(i||e)()}),function(t,define){define("dataviz/map/zoom.min",["kendo.core.min"],t)}(function(){!function(t){function e(t,e){return i.format('<button class="k-button k-zoom-{0}" title="zoom-{0}">{1}</button>',t,e)}var i=window.kendo,n=i.ui.Widget,o=i.keys,a=t.proxy,r=".kendoZoomControl",s=e("in","+")+e("out","-"),h=187,l=189,c=61,u=173,d=n.extend({init:function(t,e){n.fn.init.call(this,t,e),this._initOptions(e),this.element.addClass("k-widget k-zoom-control k-button-wrap k-buttons-horizontal").append(s).on("click"+r,".k-button",a(this,"_click"));var o=this.element.parent().closest("["+i.attr("role")+"]");this._keyroot=o.length>0?o:this.element,this._tabindex(this._keyroot),this._keydown=a(this._keydown,this),this._keyroot.on("keydown",this._keydown)},options:{name:"ZoomControl",zoomStep:1},events:["change"],_change:function(t){var e=this.options.zoomStep;this.trigger("change",{delta:t*e})},_click:function(e){var i=t(e.currentTarget),n=1;i.is(".k-zoom-out")&&(n=-1),this._change(n),e.preventDefault()},_keydown:function(t){switch(t.which){case o.NUMPAD_PLUS:case h:case c:this._change(1);break;case o.NUMPAD_MINUS:case l:case u:this._change(-1)}}});i.dataviz.ui.plugin(d)}(window.kendo.jQuery)},"function"==typeof define&&define.amd?define:function(t,e,i){(i||e)()}),function(t,define){define("dataviz/map/crs.min",["dataviz/map/location.min","kendo.drawing.min"],t)}(function(){!function(t,e){var i=Math,n=i.atan,o=i.exp,a=i.pow,r=i.sin,s=i.log,h=i.tan,l=window.kendo,c=l.Class,u=l.dataviz,d=l.deepExtend,f=l.geometry,m=f.Point,p=u.map,_=p.Location,v=l.util,g=v.rad,y=v.deg,w=v.limitValue,b=i.PI,x=b/2,k=b/4,z=b/180,S={a:6378137,b:6356752.314245179,f:.0033528106647474805,e:.08181919084262149},T=c.extend({init:function(t){this._initOptions(t)},MAX_LNG:180,MAX_LAT:85.0840590501,INVERSE_ITERATIONS:15,INVERSE_CONVERGENCE:1e-12,options:{centralMeridian:0,datum:S},forward:function(t,e){var i=this,n=i.options,o=n.datum,a=o.a,r=n.centralMeridian,s=w(t.lat,-i.MAX_LAT,i.MAX_LAT),h=e?w(t.lng,-i.MAX_LNG,i.MAX_LNG):t.lng,l=g(h-r)*a,c=i._projectLat(s);return new m(l,c)},_projectLat:function(t){var e=this.options.datum,i=e.e,n=e.a,o=g(t),l=h(k+o/2),c=i*r(o),u=a((1-c)/(1+c),i/2);return n*s(l*u)},inverse:function(t,e){var i=this,n=i.options,o=n.datum,a=o.a,r=n.centralMeridian,s=t.x/(z*a)+r,h=w(i._inverseY(t.y),-i.MAX_LAT,i.MAX_LAT);return e&&(s=w(s,-i.MAX_LNG,i.MAX_LNG)),new _(h,s)},_inverseY:function(t){var e,s,h,l,c=this,u=c.options.datum,d=u.a,f=u.e,m=f/2,p=o(-t/d),_=x-2*n(p);for(e=0;c.INVERSE_ITERATIONS>=e&&(s=f*r(_),h=a((1-s)/(1+s),m),l=x-2*n(p*h)-_,_+=l,!(i.abs(l)<=c.INVERSE_CONVERGENCE));e++);return y(_)}}),C=T.extend({MAX_LAT:85.0511287798,_projectLat:function(t){var e=this.options.datum.a,i=g(t),n=h(k+i/2);return e*s(n)},_inverseY:function(t){var e=this.options.datum.a,i=o(-t/e);return y(x-2*n(i))}}),E=c.extend({forward:function(t){return new m(t.lng,t.lat)},inverse:function(t){return new _(t.y,t.x)}}),L=c.extend({init:function(){var t=this,e=t._proj=new C,i=this.c=2*b*e.options.datum.a;this._tm=f.transform().translate(.5,.5).scale(1/i,-1/i),this._itm=f.transform().scale(i,-i).translate(-.5,-.5)},toPoint:function(t,e,i){var n=this._proj.forward(t,i);return n.transform(this._tm).scale(e||1)},toLocation:function(t,e,i){return t=t.clone().scale(1/(e||1)).transform(this._itm),this._proj.inverse(t,i)}}),A=c.extend({init:function(){this._proj=new T},toPoint:function(t){return this._proj.forward(t)},toLocation:function(t){return this._proj.inverse(t)}}),M=c.extend({init:function(){this._proj=new E},toPoint:function(t){return this._proj.forward(t)},toLocation:function(t){return this._proj.inverse(t)}});d(u,{map:{crs:{EPSG3395:A,EPSG3857:L,EPSG4326:M},datums:{WGS84:S},projections:{Equirectangular:E,Mercator:T,SphericalMercator:C}}})}(window.kendo.jQuery)},"function"==typeof define&&define.amd?define:function(t,e,i){(i||e)()}),function(t,define){define("dataviz/map/layers/base.min",["kendo.core.min","dataviz/map/location.min"],t)}(function(){!function(t,e){var i=t.proxy,n=window.kendo,o=n.Class,a=n.dataviz,r=n.deepExtend,s=a.map.Extent,h=n.util,l=h.defined,c=o.extend({init:function(e,n){this._initOptions(n),this.map=e,this.element=t("<div class='k-layer'></div>").css({zIndex:this.options.zIndex,opacity:this.options.opacity}).appendTo(e.scrollElement),this._beforeReset=i(this._beforeReset,this),this._reset=i(this._reset,this),this._resize=i(this._resize,this),this._panEnd=i(this._panEnd,this),this._activate(),this._updateAttribution()},destroy:function(){this._deactivate()},show:function(){this.reset(),this._activate(),this._applyExtent(!0)},hide:function(){this._deactivate(),this._setVisibility(!1)},reset:function(){this._beforeReset(),this._reset()},_reset:function(){this._applyExtent()},_beforeReset:t.noop,_resize:t.noop,_panEnd:function(){this._applyExtent()},_applyExtent:function(){var t=this.options,e=this.map.zoom(),i=!l(t.minZoom)||e>=t.minZoom,n=!l(t.maxZoom)||t.maxZoom>=e,o=s.create(t.extent),a=!o||o.overlaps(this.map.extent());this._setVisibility(i&&n&&a)},_setVisibility:function(t){this.element.css("display",t?"":"none")},_activate:function(){var t=this.map;t.bind("beforeReset",this._beforeReset),t.bind("reset",this._reset),t.bind("resize",this._resize),t.bind("panEnd",this._panEnd)},_deactivate:function(){var t=this.map;t.unbind("beforeReset",this._beforeReset),t.unbind("reset",this._reset),t.unbind("resize",this._resize),t.unbind("panEnd",this._panEnd)},_updateAttribution:function(){var t=this.map.attribution;t&&t.add(this.options.attribution)}});r(a,{map:{layers:{Layer:c}}})}(window.kendo.jQuery)},"function"==typeof define&&define.amd?define:function(t,e,i){(i||e)()}),function(t,define){define("dataviz/map/layers/shape.min",["dataviz/map/layers/base.min","dataviz/map/location.min"],t)}(function(){!function(t,e){var i=t.proxy,n=window.kendo,o=n.Class,a=n.data.DataSource,r=n.dataviz,s=n.deepExtend,h=n.util.last,l=n.util.defined,c=n.geometry,u=n.drawing,d=u.Group,f=r.map,m=f.Location,p=f.layers.Layer,_=p.extend({init:function(t,e){p.fn.init.call(this,t,e),this.surface=u.Surface.create(this.element,{width:t.scrollElement.width(),height:t.scrollElement.height()}),this._initRoot(),this.movable=new n.ui.Movable(this.surface.element),this._markers=[],this._click=this._handler("shapeClick"),this.surface.bind("click",this._click),this._mouseenter=this._handler("shapeMouseEnter"),this.surface.bind("mouseenter",this._mouseenter),this._mouseleave=this._handler("shapeMouseLeave"),this.surface.bind("mouseleave",this._mouseleave),this._initDataSource()},options:{autoBind:!0},destroy:function(){p.fn.destroy.call(this),this.surface.destroy(),this.dataSource.unbind("change",this._dataChange)},setDataSource:function(t){this.dataSource&&this.dataSource.unbind("change",this._dataChange),this.dataSource=n.data.DataSource.create(t),this.dataSource.bind("change",this._dataChange),this.options.autoBind&&this.dataSource.fetch()},_reset:function(){p.fn._reset.call(this),this._translateSurface(),this._data&&this._load(this._data)},_initRoot:function(){this._root=new d,this.surface.draw(this._root)},_beforeReset:function(){this.surface.clear(),this._initRoot()},_resize:function(){this.surface.size(this.map.size())},_initDataSource:function(){var t=this.options.dataSource;this._dataChange=i(this._dataChange,this),this.dataSource=a.create(t).bind("change",this._dataChange),t&&this.options.autoBind&&this.dataSource.fetch()},_dataChange:function(t){this._data=t.sender.view(),this._load(this._data)},_load:function(t){var e,i,n;for(this._clearMarkers(),this._loader||(this._loader=new v(this.map,this.options.style,this)),e=new d,i=0;t.length>i;i++)n=this._loader.parse(t[i]),n&&e.append(n);this._root.clear(),this._root.append(e)},shapeCreated:function(t){var e,i=!1;return t instanceof u.Circle&&(i=l(this._createMarker(t))),i||(e={layer:this,shape:t},i=this.map.trigger("shapeCreated",e)),i},_createMarker:function(t){var e=this.map.markers.bind({location:t.location},t.dataItem);return e&&this._markers.push(e),e},_clearMarkers:function(){for(var t=0;this._markers.length>t;t++)this.map.markers.remove(this._markers[t]);this._markers=[]},_panEnd:function(t){p.fn._panEnd.call(this,t),this._translateSurface()},_translateSurface:function(){var t=this.map,e=t.locationToView(t.extent().nw);this.surface.translate&&(this.surface.translate(e),this.movable.moveTo({x:e.x,y:e.y}))},_handler:function(t){var e=this;return function(i){if(i.element){var n={layer:e,shape:i.element,originalEvent:i.originalEvent};e.map.trigger(t,n)}}}}),v=o.extend({init:function(t,e,i){this.observer=i,this.locator=t,this.style=e},parse:function(t){var e=new d;return"Feature"===t.type?this._loadGeometryTo(e,t.geometry,t):this._loadGeometryTo(e,t,t),2>e.children.length&&(e=e.children[0]),e},_shapeCreated:function(t){var e=!1;return this.observer&&this.observer.shapeCreated&&(e=this.observer.shapeCreated(t)),e},_loadGeometryTo:function(t,e,i){var n,o,a=e.coordinates;switch(e.type){case"LineString":o=this._loadPolygon(t,[a],i),this._setLineFill(o);break;case"MultiLineString":for(n=0;a.length>n;n++)o=this._loadPolygon(t,[a[n]],i),this._setLineFill(o);break;case"Polygon":this._loadPolygon(t,a,i);break;case"MultiPolygon":for(n=0;a.length>n;n++)this._loadPolygon(t,a[n],i);break;case"Point":this._loadPoint(t,a,i);break;case"MultiPoint":for(n=0;a.length>n;n++)this._loadPoint(t,a[n],i)}},_setLineFill:function(t){var e=t.segments;(4>e.length||!e[0].anchor().equals(h(e).anchor()))&&(t.options.fill=null)},_loadShape:function(t,e){return this._shapeCreated(e)||t.append(e),e},_loadPolygon:function(t,e,i){var n=this._buildPolygon(e);return n.dataItem=i,this._loadShape(t,n)},_buildPolygon:function(t){var e,i,n,o=t.length>1?u.MultiPath:u.Path,a=new o(this.style);for(e=0;t.length>e;e++)for(i=0;t[e].length>i;i++)n=this.locator.locationToView(m.fromLngLat(t[e][i])),0===i?a.moveTo(n.x,n.y):a.lineTo(n.x,n.y);return a},_loadPoint:function(t,e,i){var n=m.fromLngLat(e),o=this.locator.locationToView(n),a=new c.Circle(o,10),r=new u.Circle(a,this.style);return r.dataItem=i,r.location=n,this._loadShape(t,r)}});s(n.data,{schemas:{geojson:{type:"json",data:function(t){return"FeatureCollection"===t.type?t.features:"GeometryCollection"===t.type?t.geometries:t}}},transports:{geojson:{read:{dataType:"json"}}}}),s(r,{map:{layers:{shape:_,ShapeLayer:_},GeoJSONLoader:v}})}(window.kendo.jQuery)},"function"==typeof define&&define.amd?define:function(t,e,i){(i||e)()}),function(t,define){define("dataviz/map/layers/bubble.min",["dataviz/map/layers/shape.min"],t)}(function(){!function(t,e){var i=window.kendo,n=i.getter,o=i.dataviz,a=i.deepExtend,r=i.util,s=r.defined,h=i.geometry,l=i.drawing,c=o.map,u=c.Location,d=c.layers.ShapeLayer,f=d.extend({options:{autoBind:!0,locationField:"location",valueField:"value",minSize:0,maxSize:100,scale:"sqrt",symbol:"circle"},_load:function(t){var e,i,o,a,r,h,l,c,d,f,m;if(this.surface.clear(),0!==t.length)for(e=this.options,i=n(e.valueField),t=t.slice(0),t.sort(function(t,e){return i(e)-i(t)}),o=this._scaleType(),r=0;t.length>r;r++)h=t[r],l=n(e.locationField)(h),c=n(e.valueField)(h),s(l)&&s(c)&&(a||(a=new o([0,c],[e.minSize,e.maxSize])),l=u.create(l),d=this.map.locationToView(l),f=a.map(c),m=this._createSymbol({center:d,size:f,style:e.style,dataItem:h,location:l}),m.dataItem=h,m.location=l,m.value=c,this._drawSymbol(m))},_scaleType:function(){var t=this.options.scale;return i.isFunction(t)?t:o.map.scales[t]},_createSymbol:function(t){var e=this.options.symbol;return i.isFunction(e)||(e=o.map.symbols[e]),e(t)},_drawSymbol:function(t){var e={layer:this,shape:t},i=this.map.trigger("shapeCreated",e);i||this.surface.draw(t)}}),m=i.Class.extend({init:function(t,e){var i,n;this._domain=t,this._range=e,i=Math.sqrt(t[1])-Math.sqrt(t[0]),n=e[1]-e[0],this._ratio=n/i},map:function(t){var e=(Math.sqrt(t)-Math.sqrt(this._domain[0]))*this._ratio;return this._range[0]+e}}),p={circle:function(t){var e=new h.Circle(t.center,t.size/2);return new l.Circle(e,t.style)},square:function(t){var e=new l.Path(t.style),i=t.size/2,n=t.center;return e.moveTo(n.x-i,n.y-i).lineTo(n.x+i,n.y-i).lineTo(n.x+i,n.y+i).lineTo(n.x-i,n.y+i).close(),e}};a(o,{map:{layers:{bubble:f,BubbleLayer:f},scales:{sqrt:m},symbols:p}})}(window.kendo.jQuery)},"function"==typeof define&&define.amd?define:function(t,e,i){(i||e)()}),function(t,define){define("dataviz/map/layers/tile.min",["dataviz/map/layers/base.min","dataviz/map/location.min"],t)}(function(){!function(t,e){function i(t){return new u(m(t.x),m(t.y))}var n=Math,o=t.proxy,a=window.kendo,r=a.Class,s=a.template,h=a.dataviz,l=a.deepExtend,c=a.geometry,u=c.Point,d=h.map.layers.Layer,f=a.util,m=f.round,p=f.renderSize,_=f.limitValue,v=d.extend({init:function(t,e){d.fn.init.call(this,t,e),"string"==typeof this.options.subdomains&&(this.options.subdomains=this.options.subdomains.split(""));var i=this._viewType();this._view=new i(this.element,this.options)},destroy:function(){d.fn.destroy.call(this),this._view.destroy(),this._view=null},_beforeReset:function(){var t=this.map,e=t.locationToLayer(t.extent().nw).round();this._view.viewOrigin(e)},_reset:function(){d.fn._reset.call(this),this._updateView(),this._view.reset()},_viewType:function(){return g},_activate:function(){d.fn._activate.call(this),a.support.mobileOS||(this._pan||(this._pan=a.throttle(o(this._render,this),100)),this.map.bind("pan",this._pan))},_deactivate:function(){d.fn._deactivate.call(this),this._pan&&this.map.unbind("pan",this._pan)},_updateView:function(){var t=this._view,e=this.map,i=e.extent(),n={nw:e.locationToLayer(i.nw).round(),se:e.locationToLayer(i.se).round()};t.center(e.locationToLayer(e.center())),t.extent(n),t.zoom(e.zoom())},_resize:function(){this._render()},_panEnd:function(t){d.fn._panEnd.call(this,t),this._render()},_render:function(){this._updateView(),this._view.render()}}),g=r.extend({init:function(t,e){this.element=t,this._initOptions(e),this.pool=new w},options:{tileSize:256,subdomains:["a","b","c"],urlTemplate:""},center:function(t){this._center=t},extent:function(t){this._extent=t},viewOrigin:function(t){this._viewOrigin=t},zoom:function(t){this._zoom=t},pointToTileIndex:function(t){return new u(n.floor(t.x/this.options.tileSize),n.floor(t.y/this.options.tileSize))},tileCount:function(){var t=this.size(),e=this.pointToTileIndex(this._extent.nw),i=this._extent.nw,o=this.indexToPoint(e).translate(-i.x,-i.y);return{x:n.ceil((n.abs(o.x)+t.width)/this.options.tileSize),y:n.ceil((n.abs(o.y)+t.height)/this.options.tileSize)}},size:function(){var t=this._extent.nw,e=this._extent.se,i=e.clone().translate(-t.x,-t.y);return{width:i.x,height:i.y}},indexToPoint:function(t){var e=t.x,i=t.y;return new u(e*this.options.tileSize,i*this.options.tileSize)},subdomainText:function(){var t=this.options.subdomains;return t[this.subdomainIndex++%t.length]},destroy:function(){this.element.empty(),this.pool.empty()},reset:function(){this.pool.reset(),this.subdomainIndex=0,this.render()},render:function(){var t,e,i,n=this.tileCount(),o=this.pointToTileIndex(this._extent.nw);for(e=0;n.x>e;e++)for(i=0;n.y>i;i++)t=this.createTile({x:o.x+e,y:o.y+i}),t.visible||t.show()},createTile:function(t){var e=this.tileOptions(t),i=this.pool.get(this._center,e);return 0===i.element.parent().length&&this.element.append(i.element),i},tileOptions:function(t){var e=this.wrapIndex(t),n=this.indexToPoint(t),o=this._viewOrigin,a=n.clone().translate(-o.x,-o.y);return{index:e,currentIndex:t,point:n,offset:i(a),zoom:this._zoom,size:this.options.tileSize,subdomain:this.subdomainText(),urlTemplate:this.options.urlTemplate,errorUrlTemplate:this.options.errorUrlTemplate}},wrapIndex:function(t){var e=n.pow(2,this._zoom);return{x:this.wrapValue(t.x,e),y:_(t.y,0,e-1)}},wrapValue:function(t,e){var i=n.abs(t)%e;return t=t>=0?i:e-(0===i?e:i)}}),y=r.extend({init:function(t,e){this.id=t,this.visible=!0,this._initOptions(e),this.createElement(),this.show()},options:{urlTemplate:"",errorUrlTemplate:""},createElement:function(){this.element=t("<img style='position: absolute; display: block;' />").css({width:this.options.size,height:this.options.size}).error(o(function(t){this.errorUrl()?t.target.setAttribute("src",this.errorUrl()):t.target.removeAttribute("src")},this))},show:function(){var t,e=this.element[0];e.style.top=p(this.options.offset.y),e.style.left=p(this.options.offset.x),t=this.url(),t&&e.setAttribute("src",t),e.style.visibility="visible",this.visible=!0},hide:function(){this.element[0].style.visibility="hidden",this.visible=!1},url:function(){var t=s(this.options.urlTemplate);return t(this.urlOptions())},errorUrl:function(){var t=s(this.options.errorUrlTemplate);return t(this.urlOptions())},urlOptions:function(){var t=this.options;return{zoom:t.zoom,subdomain:t.subdomain,z:t.zoom,x:t.index.x,y:t.index.y,s:t.subdomain,quadkey:t.quadkey,q:t.quadkey,culture:t.culture,c:t.culture}},destroy:function(){this.element&&(this.element.remove(),this.element=null)}}),w=r.extend({init:function(){this._items=[]},options:{maxSize:100},get:function(t,e){return this._items.length>=this.options.maxSize&&this._remove(t),this._create(e)},empty:function(){var t,e=this._items;for(t=0;e.length>t;t++)e[t].destroy();this._items=[]},reset:function(){var t,e=this._items;for(t=0;e.length>t;t++)e[t].hide()},_create:function(t){var e,i,n=this._items,o=f.hashKey(""+t.point+(""+t.offset)+t.zoom+t.urlTemplate);for(i=0;n.length>i;i++)n[i].id===o&&(e=n[i]);return e?e.show():(e=new y(o,t),this._items.push(e)),e},_remove:function(t){var e,i,n=this._items,o=-1,a=-1;for(e=0;n.length>e;e++)i=n[e].options.point.distanceTo(t),i>o&&(a=e,o=i);-1!==a&&(n[a].destroy(),n.splice(a,1))}});l(h,{map:{layers:{tile:v,TileLayer:v,ImageTile:y,TilePool:w,TileView:g}}})}(window.kendo.jQuery)},"function"==typeof define&&define.amd?define:function(t,e,i){(i||e)()}),function(t,define){define("dataviz/map/layers/bing.min",["dataviz/map/layers/tile.min"],t)}(function(){!function(t,e){var i=window.kendo,n=i.dataviz,o=i.deepExtend,a=i.util.defined,r=n.map.Extent,s=n.map.Location,h=n.map.layers.TileLayer,l=n.map.layers.TileView,c=h.extend({init:function(e,i){h.fn.init.call(this,e,i),
this._onMetadata=t.proxy(this._onMetadata,this),this._fetchMetadata()},options:{baseUrl:"//dev.virtualearth.net/REST/v1/Imagery/Metadata/",imagerySet:"road"},_fetchMetadata:function(){var e=this.options;if(!e.key)throw Error("Bing tile layer: API key is required");t.ajax({url:e.baseUrl+e.imagerySet,data:{output:"json",include:"ImageryProviders",key:e.key,uriScheme:this._scheme(window.location.protocol)},type:"get",dataType:"jsonp",jsonp:"jsonp",success:this._onMetadata})},_scheme:function(t){return"https"===t.replace(":","")?"https":"http"},_onMetadata:function(t){var e,i;t&&t.resourceSets.length&&(e=this.resource=t.resourceSets[0].resources[0],o(this._view.options,{urlTemplate:e.imageUrl.replace("{subdomain}","#= subdomain #").replace("{quadkey}","#= quadkey #").replace("{culture}","#= culture #"),subdomains:e.imageUrlSubdomains}),i=this.options,a(i.minZoom)||(i.minZoom=e.zoomMin),a(i.maxZoom)||(i.maxZoom=e.zoomMax),this._addAttribution(),"none"!==this.element.css("display")&&this._reset())},_viewType:function(){return u},_addAttribution:function(){var t,e,i,n,o,a=this.map.attribution;if(a&&(t=this.resource.imageryProviders))for(e=0;t.length>e;e++)for(i=t[e],n=0;i.coverageAreas.length>n;n++)o=i.coverageAreas[n],a.add({text:i.attribution,minZoom:o.zoomMin,maxZoom:o.zoomMax,extent:new r(new s(o.bbox[2],o.bbox[1]),new s(o.bbox[0],o.bbox[3]))})},imagerySet:function(t){return t?(this.options.imagerySet=t,this.map.attribution.clear(),this._fetchMetadata(),e):this.options.imagerySet}}),u=l.extend({options:{culture:"en-US"},tileOptions:function(t){var e=l.fn.tileOptions.call(this,t);return e.culture=this.options.culture,e.quadkey=this.tileQuadKey(this.wrapIndex(t)),e},tileQuadKey:function(t){var e,i,n,o="";for(n=this._zoom;n>0;n--)e=0,i=1<<n-1,0!==(t.x&i)&&e++,0!==(t.y&i)&&(e+=2),o+=e;return o}});o(n,{map:{layers:{bing:c,BingLayer:c,BingView:u}}})}(window.kendo.jQuery)},"function"==typeof define&&define.amd?define:function(t,e,i){(i||e)()}),function(t,define){define("dataviz/map/layers/marker.min",["dataviz/map/layers/base.min","dataviz/map/location.min","kendo.data.min","kendo.tooltip.min"],t)}(function(){!function(t,e){var i=document,n=Math,o=t.inArray,a=t.proxy,r=window.kendo,s=r.Class,h=r.data.DataSource,l=r.ui.Tooltip,c=r.dataviz,u=r.deepExtend,d=c.map,f=d.Location,m=d.layers.Layer,p=m.extend({init:function(t,e){m.fn.init.call(this,t,e),this._markerClick=a(this._markerClick,this),this.element.on("click",".k-marker",this._markerClick),this.items=[],this._initDataSource()},destroy:function(){m.fn.destroy.call(this),this.element.off("click",".k-marker",this._markerClick),this.dataSource.unbind("change",this._dataChange),this.clear()},options:{zIndex:1e3,autoBind:!0,dataSource:{},locationField:"location",titleField:"title"},add:function(e){if(!t.isArray(e))return this._addOne(e);for(var i=0;e.length>i;i++)this._addOne(e[i])},remove:function(t){t.destroy();var e=o(t,this.items);e>-1&&this.items.splice(e,1)},clear:function(){for(var t=0;this.items.length>t;t++)this.items[t].destroy();this.items=[]},update:function(t){var e,i=t.location();i&&(t.showAt(this.map.locationToView(i)),e={marker:t,layer:this},this.map.trigger("markerActivate",e))},_reset:function(){var t,e;for(m.fn._reset.call(this),t=this.items,e=0;t.length>e;e++)this.update(t[e])},bind:function(t,i){var n,o,a=d.Marker.create(t,this.options);return a.dataItem=i,n={marker:a,layer:this},o=this.map.trigger("markerCreated",n),o?e:(this.add(a),a)},setDataSource:function(t){this.dataSource&&this.dataSource.unbind("change",this._dataChange),this.dataSource=r.data.DataSource.create(t),this.dataSource.bind("change",this._dataChange),this.options.autoBind&&this.dataSource.fetch()},_addOne:function(t){var e=_.create(t,this.options);return e.addTo(this),e},_initDataSource:function(){var t=this.options.dataSource;this._dataChange=a(this._dataChange,this),this.dataSource=h.create(t).bind("change",this._dataChange),t&&this.options.autoBind&&this.dataSource.fetch()},_dataChange:function(t){this._load(t.sender.view())},_load:function(t){var e,i,n,o;for(this._data=t,this.clear(),e=r.getter(this.options.locationField),i=r.getter(this.options.titleField),n=0;t.length>n;n++)o=t[n],this.bind({location:e(o),title:i(o)},o)},_markerClick:function(e){var i={marker:t(e.target).data("kendoMarker"),layer:this};this.map.trigger("markerClick",i)}}),_=s.extend({init:function(t){this.options=t||{}},addTo:function(t){this.layer=t.markers||t,this.layer.items.push(this),this.layer.update(this)},location:function(t){return t?(this.options.location=f.create(t).toArray(),this.layer&&this.layer.update(this),this):f.create(this.options.location)},showAt:function(t){this.render(),this.element.css({left:n.round(t.x),top:n.round(t.y)}),this.tooltip&&this.tooltip.popup&&this.tooltip.popup._position()},hide:function(){this.element&&(this.element.remove(),this.element=null),this.tooltip&&(this.tooltip.destroy(),this.tooltip=null)},destroy:function(){this.layer=null,this.hide()},render:function(){var e,n;this.element||(e=this.options,n=this.layer,this.element=t(i.createElement("span")).addClass("k-marker k-marker-"+r.toHyphens(e.shape||"pin")).attr("title",e.title).attr(e.attributes||{}).data("kendoMarker",this).css("zIndex",e.zIndex),n&&n.element.append(this.element),this.renderTooltip())},renderTooltip:function(){var t,e,i=this,n=i.options.title,o=i.options.tooltip||{};o&&l&&(t=o.template,t&&(e=r.template(t),o.content=function(t){return t.location=i.location(),t.marker=i,e(t)}),(n||o.content||o.contentUrl)&&(this.tooltip=new l(this.element,o),this.tooltip.marker=this))}});_.create=function(t,e){return t instanceof _?t:new _(u({},e,t))},u(c,{map:{layers:{marker:p,MarkerLayer:p},Marker:_}})}(window.kendo.jQuery)},"function"==typeof define&&define.amd?define:function(t,e,i){(i||e)()}),function(t,define){define("dataviz/map/main.min",["dataviz/map/crs.min","dataviz/map/location.min"],t)}(function(){!function(t,e){var i=document,n=Math,o=n.min,a=n.pow,r=t.proxy,s=window.kendo,h=s.ui.Widget,l=s.deepExtend,c=s.dataviz,u=c.ui,d=s.geometry,f=d.Point,m=c.map,p=m.Extent,_=m.Location,v=m.crs.EPSG3857,g=s.util,y=g.defined,w=g.limitValue,b=g.renderPos,x=g.valueOrDefault,k="k-",z=.9,S=.93,T="DOMMouseScroll mousewheel",C=5,E=h.extend({init:function(t,e){s.destroy(t),h.fn.init.call(this,t),this._initOptions(e),this.bind(this.events,e),this.crs=new v,this.element.addClass(k+this.options.name.toLowerCase()).css("position","relative").empty().append(i.createElement("div")),this._viewOrigin=this._getOrigin(),this._initScroller(),this._initMarkers(),this._initControls(),this._initLayers(),this._reset(),this._mousewheel=r(this._mousewheel,this),this.element.bind("click",r(this._click,this)),this.element.bind(T,this._mousewheel)},options:{name:"Map",controls:{attribution:!0,navigator:{panStep:100},zoom:!0},layers:[],layerDefaults:{shape:{style:{fill:{color:"#fff"},stroke:{color:"#aaa",width:.5}}},bubble:{style:{fill:{color:"#fff",opacity:.5},stroke:{color:"#aaa",width:.5}}},marker:{shape:"pinTarget",tooltip:{position:"top"}}},center:[0,0],zoom:3,minSize:256,minZoom:1,maxZoom:19,markers:[],markerDefaults:{shape:"pinTarget",tooltip:{position:"top"}},wraparound:!0},events:["beforeReset","click","reset","pan","panEnd","markerActivate","markerClick","markerCreated","shapeClick","shapeCreated","shapeMouseEnter","shapeMouseLeave","zoomStart","zoomEnd"],destroy:function(){this.scroller.destroy(),this.navigator&&this.navigator.destroy(),this.attribution&&this.attribution.destroy(),this.zoomControl&&this.zoomControl.destroy(),this.markers.destroy();for(var t=0;this.layers.length>t;t++)this.layers[t].destroy();h.fn.destroy.call(this)},zoom:function(t){var e=this.options;return y(t)?(t=n.round(w(t,e.minZoom,e.maxZoom)),e.zoom!==t&&(e.zoom=t,this._reset()),this):e.zoom},center:function(t){return t?(this.options.center=_.create(t).toArray(),this._reset(),this):_.create(this.options.center)},extent:function(t){return t?(this._setExtent(t),this):this._getExtent()},setOptions:function(t){h.fn.setOptions.call(this,t),this._reset()},locationToLayer:function(t,e){var i=!this.options.wraparound;return t=_.create(t),this.crs.toPoint(t,this._layerSize(e),i)},layerToLocation:function(t,e){var i=!this.options.wraparound;return t=f.create(t),this.crs.toLocation(t,this._layerSize(e),i)},locationToView:function(t){var e,i;return t=_.create(t),e=this.locationToLayer(this._viewOrigin),i=this.locationToLayer(t),i.translateWith(e.scale(-1))},viewToLocation:function(t,e){var i=this.locationToLayer(this._getOrigin(),e);return t=f.create(t),t=t.clone().translateWith(i),this.layerToLocation(t,e)},eventOffset:function(t){var e=this.element.offset(),i=t.originalEvent||t,n=x(i.pageX,i.clientX)-e.left,o=x(i.pageY,i.clientY)-e.top;return new d.Point(n,o)},eventToView:function(t){var e=this.eventOffset(t);return this.locationToView(this.viewToLocation(e))},eventToLayer:function(t){return this.locationToLayer(this.eventToLocation(t))},eventToLocation:function(t){var e=this.eventOffset(t);return this.viewToLocation(e)},viewSize:function(){var t=this.element,e=this._layerSize(),i=t.width();return this.options.wraparound||(i=o(e,i)),{width:i,height:o(e,t.height())}},exportVisual:function(){return this._reset(),!1},_setOrigin:function(t,e){var i,n=this.viewSize();return t=this._origin=_.create(t),i=this.locationToLayer(t,e),i.x+=n.width/2,i.y+=n.height/2,this.options.center=this.layerToLocation(i,e).toArray(),this},_getOrigin:function(t){var e,i=this.viewSize();return(t||!this._origin)&&(e=this.locationToLayer(this.center()),e.x-=i.width/2,e.y-=i.height/2,this._origin=this.layerToLocation(e)),this._origin},_setExtent:function(t){var e,i,o,a,r,s,h;for(t=p.create(t),this.center(t.center()),e=this.element.width(),i=this.element.height(),o=this.options.maxZoom;o>=this.options.minZoom&&(a=this.locationToLayer(t.nw,o),r=this.locationToLayer(t.se,o),s=n.abs(r.x-a.x),h=n.abs(r.y-a.y),!(e>=s&&i>=h));o--);this.zoom(o)},_getExtent:function(){var t,e=this._getOrigin(),i=this.locationToLayer(e),n=this.viewSize();return i.x+=n.width,i.y+=n.height,t=this.layerToLocation(i),new p(e,t)},_zoomAround:function(t,e){this._setOrigin(this.layerToLocation(t,e),e),this.zoom(e)},_initControls:function(){var t=this.options.controls;u.Attribution&&t.attribution&&this._createAttribution(t.attribution),s.support.mobileOS||(u.Navigator&&t.navigator&&this._createNavigator(t.navigator),u.ZoomControl&&t.zoom&&this._createZoomControl(t.zoom))},_createControlElement:function(e,i){var n=e.position||i,o="."+b(n).replace(" ","."),a=t(".k-map-controls"+o,this.element);return 0===a.length&&(a=t("<div>").addClass("k-map-controls "+b(n)).appendTo(this.element)),t("<div>").appendTo(a)},_createAttribution:function(t){var e=this._createControlElement(t,"bottomRight");this.attribution=new u.Attribution(e,t)},_createNavigator:function(t){var e=this._createControlElement(t,"topLeft"),i=this.navigator=new u.Navigator(e,t);this._navigatorPan=r(this._navigatorPan,this),i.bind("pan",this._navigatorPan),this._navigatorCenter=r(this._navigatorCenter,this),i.bind("center",this._navigatorCenter)},_navigatorPan:function(t){var e=this,i=e.scroller,n=i.scrollLeft+t.x,o=i.scrollTop-t.y,a=this._virtualSize,r=this.element.height(),s=this.element.width();n=w(n,a.x.min,a.x.max-s),o=w(o,a.y.min,a.y.max-r),e.scroller.one("scroll",function(t){e._scrollEnd(t)}),e.scroller.scrollTo(-n,-o)},_navigatorCenter:function(){this.center(this.options.center)},_createZoomControl:function(t){var e=this._createControlElement(t,"topLeft"),i=this.zoomControl=new u.ZoomControl(e,t);this._zoomControlChange=r(this._zoomControlChange,this),i.bind("change",this._zoomControlChange)},_zoomControlChange:function(t){this.trigger("zoomStart",{originalEvent:t})||(this.zoom(this.zoom()+t.delta),this.trigger("zoomEnd",{originalEvent:t}))},_initScroller:function(){var t=s.support.mobileOS?S:z,e=this.options.zoomable!==!1,i=this.scroller=new s.mobile.ui.Scroller(this.element.children(0),{friction:t,velocityMultiplier:C,zoom:e,mousewheelScrolling:!1});i.bind("scroll",r(this._scroll,this)),i.bind("scrollEnd",r(this._scrollEnd,this)),i.userEvents.bind("gesturestart",r(this._scaleStart,this)),i.userEvents.bind("gestureend",r(this._scale,this)),this.scrollElement=i.scrollElement},_initLayers:function(){var t,e,i,n,o,a=this.options.layers,r=this.layers=[];for(t=0;a.length>t;t++)e=a[t],i=e.type||"shape",n=this.options.layerDefaults[i],o=c.map.layers[i],r.push(new o(this,l({},n,e)))},_initMarkers:function(){this.markers=new m.layers.MarkerLayer(this,this.options.markerDefaults),this.markers.add(this.options.markers)},_scroll:function(t){var e=this.locationToLayer(this._viewOrigin).round(),i=t.sender.movable,n=new d.Point(i.x,i.y).scale(-1).scale(1/i.scale);e.x+=n.x,e.y+=n.y,this._scrollOffset=n,this._setOrigin(this.layerToLocation(e)),this.trigger("pan",{originalEvent:t,origin:this._getOrigin(),center:this.center()})},_scrollEnd:function(t){this._scrollOffset&&this._panComplete()&&(this._scrollOffset=null,this._panEndTS=new Date,this.trigger("panEnd",{originalEvent:t,origin:this._getOrigin(),center:this.center()}))},_panComplete:function(){return new Date-(this._panEndTS||0)>50},_scaleStart:function(t){if(this.trigger("zoomStart",{originalEvent:t})){var e=t.touches[1];e&&e.cancel()}},_scale:function(t){var e=this.scroller.movable.scale,i=this._scaleToZoom(e),n=new d.Point(t.center.x,t.center.y),o=this.viewToLocation(n,i),a=this.locationToLayer(o,i),r=a.translate(-n.x,-n.y);this._zoomAround(r,i),this.trigger("zoomEnd",{originalEvent:t})},_scaleToZoom:function(t){var e=this._layerSize()*t,i=e/this.options.minSize,o=n.log(i)/n.log(2);return n.round(o)},_reset:function(){this.attribution&&this.attribution.filter(this.center(),this.zoom()),this._viewOrigin=this._getOrigin(!0),this._resetScroller(),this.trigger("beforeReset"),this.trigger("reset")},_resetScroller:function(){var t,e,i,n,o=this.scroller,r=o.dimensions.x,s=o.dimensions.y,h=this._layerSize(),l=this.extent().nw,c=this.locationToLayer(l).round();o.movable.round=!0,o.reset(),o.userEvents.cancel(),t=this.zoom(),o.dimensions.forcedMinScale=a(2,this.options.minZoom-t),o.dimensions.maxScale=a(2,this.options.maxZoom-t),e={min:-c.x,max:h-c.x},i={min:-c.y,max:h-c.y},this.options.wraparound&&(e.max=20*h,e.min=-e.max),this.options.pannable===!1&&(n=this.viewSize(),e.min=i.min=0,e.max=n.width,i.max=n.height),r.makeVirtual(),s.makeVirtual(),r.virtualSize(e.min,e.max),s.virtualSize(i.min,i.max),this._virtualSize={x:e,y:i}},_renderLayers:function(){var t,e,i,n,o,a=this.options.layers,r=this.layers=[],s=this.scrollWrap;for(s.empty(),t=0;a.length>t;t++)e=a[t],i=e.type||"shape",n=this.options.layerDefaults[i],o=c.map.layers[i],r.push(new o(this,l({},n,e)))},_layerSize:function(t){return t=x(t,this.options.zoom),this.options.minSize*a(2,t)},_click:function(t){if(this._panComplete()){var e=this.eventOffset(t);this.trigger("click",{originalEvent:t,location:this.viewToLocation(e)})}},_mousewheel:function(t){var e,i,n,o,a,r,s,h;t.preventDefault(),e=c.mwDelta(t)>0?-1:1,i=this.options,n=this.zoom(),o=w(n+e,i.minZoom,i.maxZoom),i.zoomable!==!1&&o!==n&&(this.trigger("zoomStart",{originalEvent:t})||(a=this.eventOffset(t),r=this.viewToLocation(a),s=this.locationToLayer(r,o),h=s.translate(-a.x,-a.y),this._zoomAround(h,o),this.trigger("zoomEnd",{originalEvent:t})))}});c.ui.plugin(E)}(window.kendo.jQuery)},"function"==typeof define&&define.amd?define:function(t,e,i){(i||e)()}),function(t,define){define("kendo.dataviz.map.min",["kendo.data.min","kendo.userevents.min","kendo.tooltip.min","kendo.mobile.scroller.min","kendo.draganddrop.min","kendo.drawing.min","dataviz/map/location.min","dataviz/map/attribution.min","dataviz/map/navigator.min","dataviz/map/zoom.min","dataviz/map/crs.min","dataviz/map/layers/base.min","dataviz/map/layers/shape.min","dataviz/map/layers/bubble.min","dataviz/map/layers/tile.min","dataviz/map/layers/bing.min","dataviz/map/layers/marker.min","dataviz/map/main.min"],t)}(function(){},"function"==typeof define&&define.amd?define:function(t,e,i){(i||e)()});
//# sourceMappingURL=kendo.dataviz.map.min.js.map