@progress/kendo-ui
Version:
This package is part of the [Kendo UI for jQuery](http://www.telerik.com/kendo-ui) suite.
1 lines • 4.37 kB
JavaScript
module.exports=function(i){var r={};function a(t){if(r[t])return r[t].exports;var e=r[t]={exports:{},id:t,loaded:!1};return i[t].call(e.exports,e,e.exports,a),e.loaded=!0,e.exports}return a.m=i,a.c=r,a.p="",a(0)}({0:function(t,e,i){t.exports=i(930)},3:function(t,e){t.exports=function(){throw Error("define cannot be used indirect")}},925:function(t,e){t.exports=require("../location")},930:function(t,e,i){var r;i(3),i=[i(931),i(925),i(932),i(933)],void 0===(e="function"==typeof(r=function(){var i=window.kendo.jQuery,d=void 0,l=document,e=Math,u=i.inArray,n=window.kendo,p=n.Class,f=n.data.DataSource,o=n.ui.Tooltip,t=n.dataviz,r=n.deepExtend,s=t.map,a=s.Location,h=s.layers.Layer,m=h.extend({init:function(t,e){h.fn.init.call(this,t,e);this._markerClick=this._markerClick.bind(this);this.element.on("click",".k-marker",this._markerClick);this.items=[];this._initDataSource()},destroy:function(){h.fn.destroy.call(this);this.element.off("click",".k-marker",this._markerClick);this.dataSource.unbind("change",this._dataChange);this.clear()},options:{zIndex:1e3,autoBind:true,dataSource:{},locationField:"location",titleField:"title"},add:function(t){if(Array.isArray(t))for(var e=0;e<t.length;e++)this._addOne(t[e]);else return this._addOne(t)},remove:function(t){t.destroy();var e=u(t,this.items);if(e>-1)this.items.splice(e,1)},clear:function(){for(var t=0;t<this.items.length;t++)this.items[t].destroy();this.items=[]},update:function(t){var e=t.location();if(e){t.showAt(this.map.locationToView(e));var i={marker:t,layer:this};this.map.trigger("markerActivate",i)}},_reset:function(){h.fn._reset.call(this);var t=this.items;for(var e=0;e<t.length;e++)this.update(t[e])},bind:function(t,e){var i=s.Marker.create(t,this.options);i.dataItem=e;var r={marker:i,layer:this};var a=this.map.trigger("markerCreated",r);if(!a){this.add(i);return i}},setDataSource:function(t){if(this.dataSource)this.dataSource.unbind("change",this._dataChange);this.dataSource=n.data.DataSource.create(t);this.dataSource.bind("change",this._dataChange);if(this.options.autoBind)this.dataSource.fetch()},_addOne:function(t){var e=c.create(t,this.options);e.addTo(this);return e},_initDataSource:function(){var t=this.options.dataSource;this._dataChange=this._dataChange.bind(this);this.dataSource=f.create(t).bind("change",this._dataChange);if(t&&this.options.autoBind)this.dataSource.fetch()},_dataChange:function(t){this._load(t.sender.view())},_load:function(t){this._data=t;this.clear();var e=n.getter(this.options.locationField);var i=n.getter(this.options.titleField);for(var r=0;r<t.length;r++){var a=t[r];this.bind({location:e(a),title:i(a)},a)}},_markerClick:function(t){var e={marker:i(t.target).data("kendoMarker"),layer:this};this.map.trigger("markerClick",e)}}),c=p.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){if(t){this.options.location=a.create(t).toArray();if(this.layer)this.layer.update(this);return this}else return a.create(this.options.location)},showAt:function(t){this.render();this.element.css({left:e.round(t.x),top:e.round(t.y)});if(this.tooltip&&this.tooltip.popup)this.tooltip.popup._position()},hide:function(){if(this.element){this.element.remove();this.element=null}if(this.tooltip){this.tooltip.destroy();this.tooltip=null}},destroy:function(){this.layer=null;this.hide()},render:function(){if(!this.element){var t=this.options;var e=this.layer;this.element=i(l.createElement("span")).addClass("k-marker k-icon k-i-marker-"+n.toHyphens(t.shape||"pin")).attr("title",t.title).attr(t.attributes||{}).data("kendoMarker",this).css("zIndex",t.zIndex);if(e)e.element.append(this.element);this.renderTooltip()}},renderTooltip:function(){var e=this;var t=e.options.title;var i=e.options.tooltip||{};if(i&&o){var r=i.template;if(r){var a=n.template(r);i.content=function(t){t.location=e.location();t.marker=e;return a(t)}}if(t||i.content||i.contentUrl){this.tooltip=new o(this.element,i);this.tooltip.marker=this}}}});c.create=function(t,e){if(t instanceof c)return t;return new c(r({},e,t))},r(t,{map:{layers:{marker:m,MarkerLayer:m},Marker:c}})})?r.apply(e,i):r)||(t.exports=e)},931:function(t,e){t.exports=require("./base")},932:function(t,e){t.exports=require("../../../kendo.data")},933:function(t,e){t.exports=require("../../../kendo.tooltip")}});