UNPKG

@progress/kendo-ui

Version:

This package is part of the [Kendo UI for jQuery](http://www.telerik.com/kendo-ui) suite.

3 lines (2 loc) 9.62 kB
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("kendo.drawing.cmn.chunk.js"),require("kendo.color.js"),require("kendo.core.js"),require("kendo.popup.js"),require("kendo.icons.js")):"function"==typeof define&&define.amd?define(["exports","kendo.drawing.cmn.chunk","kendo.color","kendo.core.min","kendo.popup","kendo.icons"],t):t(((e="undefined"!=typeof globalThis?globalThis:e||self).kendo=e.kendo||{},e.kendo._globals=e.kendo._globals||{},e.kendo._globals.Drawing={}),e.kendo._globals.DrawingCmnChunk)}(this,(function(e,t){window.kendo.jQuery,window.kendo.util=window.kendo.util||{},kendo.deepExtend(kendo.util,{LRUCache:t.N,TextMetrics:t.K,measureText:t.n,objectKey:t.J,hashKey:t.H,normalizeText:t.F,encodeBase64:t.E}),function(e){window.kendo=window.kendo||{};let i=kendo.deepExtend({},t.O);kendo.deepExtend(kendo,{drawing:e.extend(!0,{},t.U,{Segment:t.S,pdf:i}),pdf:i,geometry:t.Q}),kendo.drawing.exportPDF=function(e,i){let o=t.V(e,i);return kendo.convertPromiseToDeferred(o)},kendo.drawing.exportImage=function(e,i){let o=t.W(e,i);return kendo.convertPromiseToDeferred(o)},kendo.drawing.exportSVG=function(e,i){let o=t.X(e,i);return kendo.convertPromiseToDeferred(o)},kendo.drawing.drawText=t.D,kendo.drawing.Color=t.C,kendo.dataviz.drawing=kendo.drawing,kendo.dataviz.geometry=t.Q}(window.kendo.jQuery),function(e){var t=".kendo",i=window.kendo,o=i.deepExtend,n=i.drawing.util,s=n.defined,r=n.limitValue,a=n.eventCoordinates,h=i._outerWidth,d=i._outerHeight,u=`<div class="k-tooltip-button">${i.ui.icon(e('<a href="#" title="Close"></a>'),{icon:"x"})}</div>`,l=i.Class.extend({init:function(t,i){this.element=e('<div class="k-tooltip"><div class="k-tooltip-content"></div></div>'),this.content=this.element.children(".k-tooltip-content"),i=i||{},this.options=o({},this.options,this._tooltipOptions(i)),this.popupOptions={appendTo:i.appendTo,animation:i.animation,copyAnchorStyles:!1,collision:"fit fit"},this._openPopupHandler=this._openPopup.bind(this),this.surface=t,this._bindEvents()},options:{position:"top",showOn:"mouseenter",offset:7,autoHide:!0,hideDelay:0,showAfter:100},_bindEvents:function(){this._showHandler=this._showEvent.bind(this),this._surfaceLeaveHandler=this._surfaceLeave.bind(this),this._mouseleaveHandler=this._mouseleave.bind(this),this._mousemoveHandler=this._mousemove.bind(this),this.surface.bind("click",this._showHandler),this.surface.bind("mouseenter",this._showHandler),this.surface.bind("mouseleave",this._mouseleaveHandler),this.surface.bind("mousemove",this._mousemoveHandler),this.surface.element.on("mouseleave"+t,this._surfaceLeaveHandler),this.element.on("click"+t,".k-tooltip-button",this._hideClick.bind(this)),this.element.on("mouseleave"+t,this._tooltipLeave.bind(this))},getPopup:function(){return this.popup||(this.popup=new i.ui.Popup(this.element,this.popupOptions)),this.popup},destroy:function(){var e=this.popup;this.surface.unbind("click",this._showHandler),this.surface.unbind("mouseenter",this._showHandler),this.surface.unbind("mouseleave",this._mouseleaveHandler),this.surface.unbind("mousemove",this._mousemoveHandler),this.surface.element.off("mouseleave"+t,this._surfaceLeaveHandler),this.element.off("click"+t),this.element.off("mouseleave"+t),e&&(e.destroy(),delete this.popup),delete this.popupOptions,clearTimeout(this._timeout),delete this.element,delete this.content,delete this.surface},_tooltipOptions:function(e){return{position:(e=e||{}).position,showOn:e.showOn,offset:e.offset,autoHide:e.autoHide,width:e.width,height:e.height,content:e.content,shared:e.shared,hideDelay:e.hideDelay,showAfter:e.showAfter}},_tooltipShape:function(e){for(;e&&!e.options.tooltip;)e=e.parent;return e},_updateContent:function(e,t,o){var n=o.content;if(i.isFunction(n)&&(n=n({element:t,target:e})),n)return this.content.html(n),!0},_position:function(e,t,i,o){var n=t.position,s=t.offset||0,h=this.surface,d=h._instance._elementOffset(),u=h.getSize(),l=h._instance._offset,p=e.bbox(),c=i.width,f=i.height,_=0,m=0;if(p.origin.translate(d.left,d.top),l&&p.origin.translate(-l.x,-l.y),"cursor"==n&&o){var g=a(o);_=g.x-c/2,m=g.y-f-s}else"left"==n?(_=p.origin.x-c-s,m=p.center().y-f/2):"right"==n?(_=p.bottomRight().x+s,m=p.center().y-f/2):"bottom"==n?(_=p.center().x-c/2,m=p.bottomRight().y+s):(_=p.center().x-c/2,m=p.origin.y-f-s);return{left:r(_,d.left,d.left+u.width),top:r(m,d.top,d.top+u.height)}},show:function(e,t){this._show(e,e,o({},this.options,this._tooltipOptions(e.options.tooltip),t))},hide:function(){var e=this.popup,t=this._current;delete this._current,clearTimeout(this._showTimeout),e&&e.visible()&&t&&!this.surface.trigger("tooltipClose",{element:t.shape,target:t.target,popup:e})&&e.close()},_hideClick:function(e){e.preventDefault(),this.hide()},_show:function(e,t,i,o,n){var s=this._current;if(clearTimeout(this._timeout),!s||!(s.shape===t&&i.shared||s.target===e)){clearTimeout(this._showTimeout);var r=this.getPopup();if(!this.surface.trigger("tooltipOpen",{element:t,target:e,popup:r})&&this._updateContent(e,t,i)){this._autoHide(i);var a=this._measure(i);r.visible()&&r.close(!0),this._current={options:i,elementSize:a,shape:t,target:e,position:this._position(i.shared?t:e,i,a,o)},n?this._showTimeout=setTimeout(this._openPopupHandler,i.showAfter||0):this._openPopup()}}},_openPopup:function(){var e=this._current.position;this.getPopup().open(e.left,e.top)},_autoHide:function(t){t.autoHide&&this._closeButton&&(this.element.removeClass("k-tooltip-closable"),this._closeButton.remove(),delete this._closeButton),t.autoHide||this._closeButton||(this.element.addClass("k-tooltip-closable"),this._closeButton=e(u).appendTo(this.element))},_showEvent:function(e){var t=this._tooltipShape(e.element);if(t){var i=o({},this.options,this._tooltipOptions(t.options.tooltip));i&&i.showOn==e.type&&this._show(e.element,t,i,e.originalEvent,!0)}},_measure:function(e){this.element.css({width:s(e.width)?e.width:"auto",height:s(e.height)?e.height:"auto"});const t=this.element.clone().appendTo(document.body).css({visibility:"hidden"}),i=h(t),o=d(t);return t.remove(),this.element.css({width:i,height:o}),{width:i,height:o}},_mouseleave:function(e){if(this.popup&&!this._popupRelatedTarget(e.originalEvent)){var t=this,i=t._current;i&&i.options.autoHide&&(t._timeout=setTimeout((function(){clearTimeout(t._showTimeout),t.hide()}),i.options.hideDelay||0))}},_mousemove:function(e){var t=this._current;if(t&&e.element){var i=t.options;if("cursor"==i.position){var o=this._position(e.element,i,t.elementSize,e.originalEvent);t.position=o,this.getPopup().wrapper.css({left:o.left,top:o.top})}}},_surfaceLeave:function(e){this.popup&&!this._popupRelatedTarget(e)&&(clearTimeout(this._showTimeout),this.hide())},_popupRelatedTarget:function(t){return t.relatedTarget&&e(t.relatedTarget).closest(this.popup.wrapper).length},_tooltipLeave:function(){var e=this,t=e._current;t&&t.options.autoHide&&(e._timeout=setTimeout((function(){e.hide()}),t.options.hideDelay||0))}});i.drawing.SurfaceTooltip=l,i.dataviz.drawing.SurfaceTooltip=l}(window.kendo.jQuery),function(){var e=window.kendo,t=e.drawing,i=t.Surface,o=e.ui.Widget,n=e.deepExtend;e.support.svg=i.support.svg,e.support.canvas=i.support.canvas;var s=o.extend({init:function(e,t){o.fn.init.call(this,e,{}),this.options=n({},this.options,t),this._instance=i.create(this.element[0],t),this._instance.translate&&(this.translate=r),this._triggerInstanceHandler=this._triggerInstanceEvent.bind(this),this._bindHandler("click"),this._bindHandler("mouseenter"),this._bindHandler("mouseleave"),this._bindHandler("mousemove"),this._enableTracking()},options:{name:"Surface",tooltip:{}},events:["click","mouseenter","mouseleave","mousemove","resize","tooltipOpen","tooltipClose"],_triggerInstanceEvent:function(e){this.trigger(e.type,e)},_bindHandler:function(e){this._instance.bind(e,this._triggerInstanceHandler)},draw:function(e){this._instance.draw(e)},clear:function(){this._instance&&this._instance.clear(),this.hideTooltip()},destroy:function(){this._instance&&(this._instance.destroy(),delete this._instance),this._tooltip&&(this._tooltip.destroy(),delete this._tooltip),o.fn.destroy.call(this)},exportVisual:function(){return this._instance.exportVisual()},eventTarget:function(e){return this._instance.eventTarget(e)},showTooltip:function(e,t){this._tooltip&&this._tooltip.show(e,t)},hideTooltip:function(){this._tooltip&&this._tooltip.hide()},suspendTracking:function(){this._instance.suspendTracking(),this.hideTooltip()},resumeTracking:function(){this._instance.resumeTracking()},getSize:function(){return{width:this.element.width(),height:this.element.height()}},setSize:function(e){this.element.css({width:e.width,height:e.height}),this._size=e,this._instance.currentSize(e),this._resize()},_resize:function(){this._instance.currentSize(this._size),this._instance._resize()},_enableTracking:function(){e.ui.Popup&&(this._tooltip=new t.SurfaceTooltip(this,this.options.tooltip||{}))}});function r(e){this._instance.translate(e)}e.ui.plugin(s),s.create=function(e,t){return new s(e,t)},e.drawing.Surface=s}(window.kendo.jQuery),window.kendo.drawing=window.kendo.drawing||{},function(e){var i=window.kendo,o=i.drawing;o.drawDOM=function(o,n){"string"==typeof n?.template&&(n.template=i.template(n.template));let s=t.Y(e(o)[0],n);return i.convertPromiseToDeferred(s)},o.drawDOM.drawText=t.D,o.drawDOM.getFontFaces=t.Z}(window.kendo.jQuery);e.__meta__={id:"drawing",name:"Drawing API",category:"framework",description:"The Kendo UI low-level drawing API",depends:["core","color","popup","icons","drawing.cmn.chunk"]}})); //# sourceMappingURL=kendo.drawing.min.js.map