js-pkg
Version:
Npm package of Syncfusion.JavaScript.
11 lines (10 loc) • 35 kB
JavaScript
/*!
* filename: ej.tooltip.min.js
* version : 15.3.0.33
* Copyright Syncfusion Inc. 2001 - 2017. All rights reserved.
* Use of this code is subject to the terms of our license.
* A copy of the current license can be obtained at any time by e-mailing
* licensing@syncfusion.com. Any infringement will be prosecuted under
* applicable laws.
*/
(function(n){typeof define=="function"&&define.amd?define(["./../common/ej.core.min"],n):n()})(function(){"use strict";var n=this&&this.__extends||function(n,t){function r(){this.constructor=n}for(var i in t)t.hasOwnProperty(i)&&(n[i]=t[i]);n.prototype=t===null?Object.create(t):(r.prototype=t.prototype,new r)},t=function(t){function i(n,i){return t.call(this),this._rootCSS="e-tooltip",this._setFirst=!1,this.PluginName="ejTooltip",this.id="null",this.model=null,this.defaults={height:"auto",width:"auto",enabled:!0,content:null,containment:"body",target:null,title:null,closeMode:"none",autoCloseTimeout:4e3,position:{stem:{horizontal:"center",vertical:"bottom"},target:{horizontal:"center",vertical:"top"}},associate:"target",collision:"flipfit",showShadow:!1,cssClass:null,animation:{effect:"none",speed:0},isBalloon:!0,showRoundedCorner:!1,enableRTL:!1,allowKeyboardNavigation:!0,tip:{size:{width:20,height:10},adjust:{xValue:0,yValue:0}},trigger:"hover",create:null,click:null,destroy:null,hover:null,tracking:null,beforeOpen:null,beforeClose:null,open:null,close:null},this.dataTypes={enabled:"boolean",closeMode:"enum",autoCloseTimeout:"number",trigger:"enum",position:{stem:"data",target:"data"},associate:"enum",collision:"enum",showShadow:"boolean",animation:{effect:"enum",speed:"number"},isBalloon:"boolean",showRoundedCorner:"boolean",enableRTL:"boolean",allowKeyboardNavigation:"boolean",tip:{size:{width:"number",height:"number"},adjust:{xValue:"number",yValue:"number"}}},this.isTrack=!0,this._isCancel=!1,this._isHidden=!0,this.arrowValue={left:0,top:0,width:0,height:0,display:null},this.tooltipPos={width:0,height:0,left:0,top:0,bottom:0,right:0,position:"absolute"},this.targetPos={width:0,height:0,left:0,top:0,bottom:0,right:0,position:"absolute"},this.mouseTimer=null,this.positionTarget=null,this.positionTooltip=null,this.containerSize=null,this._createTitle=function(){this.tooltipTitle=ej.buildTag("div.e-def e-header"," ",{},{});this.tooltipHeader=ej.buildTag("div"," ",{},{});$(this.tooltipTitle).html(this.model.title).appendTo(this.tooltipHeader)},n&&(n.jquery||(n=$("#"+n)),n.length)?$(n).ejTooltip(i).data(this.PluginName):void 0}return n(i,t),i.prototype.setModel=function(n,t){this.setModel(n,t)},i.prototype.option=function(n,t){this.option(n,t)},i.prototype.triggerEvents=function(n,t){var i,r,u,f,e,o,s;switch(n){case"click":r=t;i=this._trigger(n,r);break;case"hover":u=t;i=this._trigger(n,u);break;case"tracking":f=t;i=this._trigger(n,f);break;case"beforeOpen":e=t;i=this._trigger(n,e);break;case"open":o=t;i=this._trigger(n,o);break;case"beforeClose":case"close":s=t;i=this._trigger(n,s)}return i},i.prototype.enable=function(){this.tooltip.hasClass("e-disable")&&(this.model.enabled=!0,this.tooltip.removeClass("e-disable"))},i.prototype.disable=function(){this.tooltip.hasClass("e-disable")||(this.model.enabled=!1,this.tooltip.addClass("e-disable"))},i.prototype.show=function(n,t){if(this.model.enabled){if(ej.isNullOrUndefined(n)){var i=this.model.target==null?this.element:$(this.element).find(this.model.target+":first");this._positionElement(i)}else this._positionElement(n);ej.isNullOrUndefined(t)?this._showTooltip():typeof t=="string"?$(this.tooltip).show(t):typeof t=="function"&&t.call.apply(this.tooltip)}},i.prototype.hide=function(n){this.model.enabled&&(ej.isNullOrUndefined(n)?this._hideTooltip():typeof n=="string"?$(this.tooltip).hide(n):typeof n=="function"&&n.call.apply(this.tooltip))},i.prototype._destroy=function(){this.mouseTimer&&clearTimeout(this.mouseTimer);this.timer&&clearTimeout(this.timer);$(this.tooltip).remove();this.tooltip=null},i.prototype._setModel=function(n){var t,i;for(t in n)switch(t){case"height":this._setHeight(n[t]);break;case"width":this._setWidth(n[t]);break;case"enabled":this._enabled(n[t]);break;case"content":this._setContent(n[t]);break;case"title":this.model.title=n[t];this.model.title==null?($(this.tooltipHeader).remove(),this.tooltipHeader=null,this.tooltipTitle=null,this.model.closeMode===ej.Tooltip.CloseMode.Sticky&&this._iconRender()):ej.isNullOrUndefined(this.tooltipHeader)?this._createHeader():$(this.tooltipTitle).html(this.model.title);this.tooltipPos.height=$(this.tooltip).outerHeight();break;case"associate":this.model.associate=n[t];this._wireMouseEvents(!1);this._wireMouseEvents(!0);break;case"position":this._setPosition(n[t]);break;case"collision":this.model.collision=n[t];break;case"closeMode":typeof n[t]!="undefined"&&(this.model.closeMode=n[t],this.model.closeMode==ej.Tooltip.CloseMode.Sticky?this._iconRender():($(this.tooltipClose).remove(),this.tooltipClose=null),this.tooltipPos.height=$(this.tooltip).outerHeight());break;case"cssClass":this._setSkin(n[t]);break;case"showShadow":this._shadowEffect(n[t],this.model.position);break;case"isBalloon":ej.isNullOrUndefined(n[t])||(this.model.isBalloon=n[t],this.model.isBalloon?this._renderArrow():($(this.tip).remove(),this.tip=null));break;case"animation":i=n[t];this.model.animation=$.extend(!0,this.model.animation,i);this.model.animation.effect!=ej.Tooltip.Effect.None?(this._off($(this.tooltip),"mouseenter",this._onTooltipMouseEnter),this._off($(this.tooltip),"mouseleave",this._onTooltipMouseLeave)):this.model.animation.effect==ej.Tooltip.Effect.None&&(this._on($(this.tooltip),"mouseenter",this._onTooltipMouseEnter),this._on($(this.tooltip),"mouseleave",this._onTooltipMouseLeave));break;case"enableRTL":this._setRTL(n[t]);break;case"target":this._wireTriggerEvents(!1);this.model.target=n[t];this._wireTriggerEvents(!0);this._renderTarget();break;case"trigger":this._setTrigger(n[t]);break;case"showRoundedCorner":this.model.showRoundedCorner=n[t];this._roundedCorner(n[t]);break;case"allowKeyboardNavigation":this.model.allowKeyboardNavigation=n[t];this.model.allowKeyboardNavigation?this._on($(window),"keydown",this._keyDown):this._off($(window),"keydown",this._keyDown)}},i.prototype._enabled=function(n){n?this.enable(n):this.disable(n);this.model.enabled=n},i.prototype._shadowEffect=function(n,t){this.model.showShadow=n;var i=null;if($(this.tooltip).removeClass("e-tooltipShadowLeft e-tooltipShadowRight"),this.model.showShadow){if(this.model.isBalloon)switch(t.stem.horizontal){case"center":i=t.stem.vertical=="top"?"e-tooltipShadowLeft":t.stem.vertical=="bottom"?"e-tooltipShadowRight":"e-tooltipShadowLeft";break;case"right":i=t.target.horizontal=="center"&&t.stem.vertical=="top"?"e-tooltipShadowLeft":"e-tooltipShadowRight";break;case"left":i=t.target.horizontal=="center"&&t.stem.vertical=="bottom"?"e-tooltipShadowRight":"e-tooltipShadowLeft"}else i="e-tooltipShadowLeft";$(this.tooltip).addClass(i)}},i.prototype._setContent=function(n){this.model.content=n;$(this.tooltipContent).html(this.model.content);this.tooltipPos.height=$(this.tooltip).outerHeight();this.tooltipPos.width=$(this.tooltip).outerWidth()},i.prototype._setPosition=function(n){this.model.position.stem=$.extend(!0,this.model.position.stem,n.stem);this.model.position.target=$.extend(!0,this.model.position.target,n.target)},i.prototype._setTrigger=function(n){this._wireTriggerEvents(!1);this.model.trigger=n;this._wireTriggerEvents(!0)},i.prototype._init=function(){this.id=this.element[0].id;this.positionTarget=$.extend(!0,{},this.model.position.target);this.positionTooltip=$.extend(!0,{},this.model.position.stem);this.tipSize=$.extend(!0,{},this.model.tip.size);this._initialize();this._render();this.enable(this.model.enabled);this._wireEvents(!0)},i.prototype._initialize=function(){ej.isNullOrUndefined(this.model.target)?ej.isNullOrUndefined(this.model.content)&&!ej.isNullOrUndefined(this.element.attr("title"))&&(this.model.content=this.element.attr("title"),this.element.attr("data-content",this.model.content),this.element.removeAttr("title")):this._renderTarget()},i.prototype._wireEvents=function(n){var t=n?"_on":"_off";this._wireTriggerEvents(n);this.model.allowKeyboardNavigation&&this[t]($(window),"keydown",this._keyDown);this.model.target!=null?this[t](this.element,"scroll",this.model.target,this._hideTooltip):this[t](this.element,"scroll",this._hideTooltip);this[t]($(this.tooltip),"mouseenter",this._onTooltipMouseEnter);this[t]($(this.tooltip),"mouseleave",this._onTooltipMouseLeave);this[t]($(window),"resize",this._hideTooltip);this[t]($(window),"touchend",this._docTouchEndHandler)},i.prototype._wireTriggerEvents=function(n){var t=n?"_on":"_off",i;this.model.trigger==ej.Tooltip.Trigger.Focus?this.model.target!=null?this[t](this.element,"blur",this.model.target,this._hideTooltip):this[t](this.element,"blur",this._hideTooltip):this.model.target!=null?this[t](this.element,ej.isDevice()?"touchstart":"mouseleave",this.model.target,this._onMouseOut):this[t](this.element,ej.isDevice()?"touchstart":"mouseleave",this._onMouseOut);this._wireMouseEvents(n);i=this.model.trigger==ej.Tooltip.Trigger.Click?ej.isDevice()?"touchstart":"click":this.model.trigger==ej.Tooltip.Trigger.Focus?ej.isDevice()?"touchstart":"focus":ej.isDevice()?"touchstart":"mouseenter";this.model.target!=null?this[t](this.element,i,this.model.target,this._targetHover):this[t](this.element,i,this._targetHover)},i.prototype._wireMouseEvents=function(n){var t=n?"_on":"_off";(this.model.associate==ej.Tooltip.Associate.MouseEnter||this.model.associate==ej.Tooltip.Associate.MouseFollow)&&(this.model.target!=null?this[t](this.element,ej.isDevice()?"touchstart":"mousemove",this.model.target,this._tooltipMove):this[t](this.element,ej.isDevice()?"touchstart":"mousemove",this._tooltipMove))},i.prototype._render=function(){this.tooltip=ej.buildTag("div.e-tooltip-wrap e-widget","",{},{role:"tooltip","aria-readonly":"true","aria-hidden":"true","aria-describedby":this.id+"_content",id:this.id+"_Main"});this.tooltipInter=ej.buildTag("div.e-tipContainer","",{},{});this.tooltip.append(this.tooltipInter);this.model.isBalloon&&this._renderArrow();$(this.model.containment).append(this.tooltip);this._setHeight(this.model.height);this._setWidth(this.model.width);this._createHeader();this._tooltipContent();this.model.cssClass&&this.tooltip.addClass(this.model.cssClass);this.model.showRoundedCorner&&this._roundedCorner(this.model.showRoundedCorner);this.model.enableRTL&&this._setRTL(this.model.enableRTL);$(this.tooltip).css({top:"auto",left:"auto"});this.tooltipPos={width:$(this.tooltip).outerWidth(),height:$(this.tooltip).outerHeight(),left:$(this.tooltip).offset().left,top:$(this.tooltip).offset().top,position:"absolute"};ej.isNullOrUndefined(this.model.target)&&(this._containerCalc(this.element),this._positionElement(this.element))},i.prototype._containerCalc=function(n){ej.isNullOrUndefined(n)&&(n=this.element);var t=$(n).offset();this.containerSize={height:this.model.containment=="body"?$(window).innerHeight()||document.documentElement.clientHeight||document.body.clientHeight:$(this.model.containment).innerHeight(),width:this.model.containment=="body"?$(window).innerWidth()||document.documentElement.clientWidth||document.body.clientWidth:$(this.model.containment).innerWidth()};this.containerSize.left=this.model.containment!="body"?$(this.model.containment).css("position")=="static"?$(this.model.containment).offset().left-$(this.model.containment).offsetParent().offset().left:0:0;this.containerSize.top=this.model.containment!="body"?$(this.model.containment).css("position")=="static"?$(this.model.containment).offset().top-$(this.model.containment).offsetParent().offset().top:0:0;t.left-=this.model.containment!="body"?$(this.model.containment).css("position")=="static"?$(this.model.containment).offsetParent().offset().left:$(this.model.containment).offset().left:0;t.top-=this.model.containment!="body"?$(this.model.containment).css("position")=="static"?$(this.model.containment).offsetParent().offset().top:$(this.model.containment).offset().top:0;this.targetPos.left=t.left;this.targetPos.top=t.top},i.prototype._setHeight=function(n){this.model.height=n;!isNaN(+n)&&isFinite(n)?$(this.tooltip).css("height",n+"px"):$(this.tooltip).css("height",n);this.tooltipPos.height=$(this.tooltip).outerHeight()},i.prototype._setWidth=function(n){this.model.width=n;this.model.width!="auto"&&(n=!isNaN(+n)&&isFinite(n)?n+"px":n,$(this.tooltip).css("max-width",n),$(this.tooltip).css("min-width","0px"));$(this.tooltip).css("width",n);this.tooltipPos.height=$(this.tooltip).outerHeight()},i.prototype._setRTL=function(n){this.model.enableRTL=n;n?this.tooltip.addClass("e-rtl"):this.tooltip.removeClass("e-rtl")},i.prototype._setSkin=function(n){this.model.cssClass!=n&&(this.tooltip.removeClass(this.model.cssClass).addClass(n),this.model.cssClass=n)},i.prototype._roundedCorner=function(){this.model.showRoundedCorner?this.tooltip.addClass("e-corner"):this.tooltip.removeClass("e-corner")},i.prototype._renderArrow=function(){ej.isNullOrUndefined(this.tip)&&(this.tip=ej.buildTag("div.e-arrowTip"," ",{id:this.id+"_eTip"},{}),$(this.tip).append("<div class='e-arrowTipOuter'><\/div>").append("<div class='e-arrowTipInner'><\/div>"),$(this.tip).insertBefore(this.tooltipInter))},i.prototype._adjustArrow=function(n){var r,u,f=$(this.tooltip).width(),i=$(this.tooltip).height(),t=n.stem,o=n.target,e={tipHeight:0,tipWidth:0};o.horizontal=="right"||o.horizontal=="left"?(r=t.horizontal=="left"?-this.model.tip.size.height:t.horizontal=="right"?f:f/2-this.tipSize.width/2,u=t.horizontal!="center"?t.vertical=="top"?5:t.vertical=="center"?i/2-this.tipSize.width/2:i-5-this.tipSize.width:t.vertical=="top"?-this.tipSize.height:t.vertical=="bottom"?i:this.tooltipPos.height/2-this.tipSize.width/2,e=this._arrowBinding(n,"horizontal")):(u=t.vertical=="top"?-this.tipSize.height:t.vertical=="bottom"?i:i/2-this.tipSize.width/2,r=t.vertical=="center"?t.horizontal=="left"?-this.model.tip.size.height:f:t.horizontal=="left"?10:t.horizontal=="center"?this.tooltipPos.width/2-this.tipSize.width/2:f-10-this.tipSize.width,e=this._arrowBinding(n,"vertical"));this.arrowValue.left=r;this.arrowValue.top=u;$(this.tip).css({height:e.tipHeight+"px",width:e.tipWidth+"px",left:r+"px",top:u+"px",display:t.horizontal=="center"&&t.vertical=="center"?"none":"block"})},i.prototype._arrowBinding=function(n,t){var f=n.stem,c=t=="horizontal"?f.horizontal!="center":f.vertical=="center",r,u,e=$(this.tooltip).css("border-top-color"),o=$(this.tooltip).css("background-color"),s=this.model.tip.size.height,h=this.model.tip.size.height-1,i={"border-top":"none","border-bottom":"none","border-right":"none","border-left":"none"};return c?(r=this.model.tip.size.height,u=this.model.tip.size.width,$(this.tip).find(".e-arrowTipOuter").css(this._arrow(n,s,e,i,"horizontal")),$(this.tip).find(".e-arrowTipInner").css(this._arrow(n,h,o,i,"horizontal"))):(r=this.model.tip.size.width,u=this.model.tip.size.height,$(this.tip).find(".e-arrowTipOuter").css(this._arrow(n,s,e,i,"vertical")),$(this.tip).find(".e-arrowTipInner").css(this._arrow(n,h,o,i,"vertical"))),{tipHeight:u,tipWidth:r}},i.prototype._arrow=function(n,t,i,r,u){var f=n.stem,e=u=="horizontal"?f.horizontal=="right"?"0px":"1px":"1px",o=u=="horizontal"?"1px":f.vertical=="bottom"?"0px":"1px";return r["border-top"]=u=="horizontal"?t+"px solid transparent":f.vertical=="bottom"?t+"px solid "+i:"none",r["border-bottom"]=u=="horizontal"?t+"px solid transparent":f.vertical=="top"?t+"px solid "+i:"none",r["border-right"]=u=="horizontal"?f.horizontal=="left"?t+"px solid "+i:"none":t+"px solid transparent",r["border-left"]=u=="horizontal"?f.horizontal=="right"?t+"px solid "+i:"none":t+"px solid transparent",t==this.model.tip.size.height-1&&(r.left=e,r.top=o),r},i.prototype._iconRender=function(){this.model.closeMode==ej.Tooltip.CloseMode.Sticky&&(ej.isNullOrUndefined(this.tooltipClose)||$(this.tooltipClose).remove(),this.tooltipClose=ej.buildTag("div .e-icon"," ",{},{id:"_closeIcon"}),this.model.title!=null?$(this.tooltipClose).insertAfter(this.tooltipTitle).addClass("e-close"):$(this.tooltipClose).insertBefore(this.tooltipInter).addClass("e-cross-circle"),this._on($(this.tooltipClose),"click",this._hideTooltip))},i.prototype._renderTarget=function(){this.targetElement=$(this.element).find(this.model.target);for(var n=0;n<this.targetElement.length;n++)ej.isNullOrUndefined($(this.targetElement[n]).attr("title"))||(this.targetElement[n].setAttribute("data-content",this.targetElement[n].title),this.targetElement[n].removeAttribute("title"))},i.prototype._tooltipContent=function(){this.tooltipContent=ej.buildTag("div.e-tipcontent e-def","",{},{id:this.id+"_content"});$(this.tooltipContent).html(this.model.content).addClass("e-def");this.model.title!=null?$(this.tooltipContent).insertAfter(this.tooltipHeader):$(this.tooltipContent).appendTo(this.tooltipInter)},i.prototype._positionElement=function(n){this.tooltipPos.width=$(this.tooltip).outerWidth();this.tooltipPos.height=$(this.tooltip).outerHeight();this.targetPos.width=$(n).outerWidth();this.targetPos.height=$(n).outerHeight();this._containerCalc(n);this.model.associate==ej.Tooltip.Associate.Window?this._browserPosition():this.model.associate==ej.Tooltip.Associate.Axis?this._axisPosition():this.model.associate==ej.Tooltip.Associate.Target&&this._tooltipPosition(this.model.position);this.model.collision!=ej.Tooltip.Collision.None&&this.model.associate==ej.Tooltip.Associate.Target&&this._calcCollision(this.model.position,n)},i.prototype._browserPosition=function(){if(this.model.containment=="body"){this.containerSize={height:$(window).innerHeight()||document.documentElement.clientHeight||document.body.clientHeight,width:$(window).innerWidth()||document.documentElement.clientWidth||document.body.clientWidth};var t=$.extend(!0,{},this.model.position),n={position:"absolute",left:"auto",top:"auto",bottom:"auto",right:"auto"};ej.isNullOrUndefined(this.tip)||$(this.tip).css({display:"none"});this.model.position.target.horizontal=="right"?n.right=0:n.left=this.model.position.target.horizontal=="left"?0:this.containerSize.width/2-this.tooltipPos.width/2;this.model.position.target.vertical=="top"?n.top=0:this.model.position.target.vertical=="center"?n.top=this.containerSize.height/2-this.tooltipPos.height/2:n.bottom=0;this.model.showShadow&&this._shadowEffect(this.model.showShadow,t);$(this.tooltip).css(n)}},i.prototype._tooltipMove=function(n){if(this.model.closeMode==ej.Tooltip.CloseMode.None&&this.model.enabled){var t=this;if(this._isCancel)return;this.model.associate==ej.Tooltip.Associate.MouseFollow?this._mousePosition(n):this.model.associate==ej.Tooltip.Associate.MouseEnter&&(clearTimeout(this.mouseTimer),this.mouseTimer=setTimeout(function(){t.isTrack&&t._mousePosition(n)},300))}},i.prototype._mousePosition=function(n){var r,u,w,h;n.type=="touchstart"?(n.preventDefault(),r=n.touches[0].pageX,u=n.touches[0].pageY):n.type=="mousemove"&&(r=n.pageX,u=n.pageY);this.isCollision=!0;this._containerCalc(n.currentTarget);var c=0,l=0,f=0,t=$.extend(!0,{},this.model.position.stem),e=$.extend(!0,{},this.model.position),o={left:0,top:0},i={left:r,top:u},s={left:r,top:u},a=this.containerSize.left,v=this.containerSize.top,y=this.model.containment!="body"?r-$(this.model.containment).offset().left:r,p=this.model.containment!="body"?u-$(this.model.containment).offset().top:u;for(e.target.horizontal=e.target.vertical="center",this.model.containment!="body"&&(o=$(this.model.containment).css("position")=="static"?$(this.model.containment).offsetParent().offset():$(this.model.containment).offset()),s.left-=o.left,s.top-=o.top;this.isCollision;)if(i=$.extend(!0,{},s),w=this.model.isBalloon?t.vertical=="top"||t.vertical=="bottom"?5+this.tipSize.height/2:0:0,h=this.model.isBalloon?t.horizontal=="right"||t.horizontal=="left"?10+this.tipSize.width/2:0:0,c=this.model.tip.adjust.xValue!=0?this.model.tip.adjust.xValue:7,l=this.model.tip.adjust.yValue!=0?this.model.tip.adjust.yValue:10,f=this.model.isBalloon?t.horizontal!="center"?this.model.tip.size.height:t.vertical!="center"?this.model.tip.size.height:0:2,i.left+=t.horizontal=="right"?-this.tooltipPos.width:t.horizontal=="left"?0:-(this.tooltipPos.width/2),i.top+=t.vertical=="bottom"?-this.tooltipPos.height:t.vertical=="top"?0:-(this.tooltipPos.height/2),i.left+=t.vertical!="center"?t.horizontal=="right"?h:t.horizontal=="left"?-h:0:0,i.left+=t.vertical=="center"?t.horizontal=="right"?-f:t.horizontal=="left"?+(f+c):0:0,i.top+=t.vertical=="top"?+(f+l):t.vertical=="bottom"?-f:0,this.targetElement!=n.currentTarget&&(this.targetElement=n.currentTarget,(i.left<a||i.left+this.tooltipPos.width>a+this.containerSize.width)&&(this.positionTooltip.horizontal=y>=this.tooltipPos.width?"right":this.containerSize.width-y>=this.tooltipPos.width?"left":"center"),(i.top<v||i.top+this.tooltipPos.height>this.containerSize.height+v)&&(this.positionTooltip.vertical=p>=this.tooltipPos.height?"bottom":this.containerSize.height-p>=this.tooltipPos.height?"top":"center")),this.positionTooltip.horizontal!=t.horizontal||this.positionTooltip.vertical!=t.vertical)this.isCollision=!0,t=$.extend(!0,{},this.positionTooltip);else if(this.isCollision=!1,$(this.tooltip).css({top:i.top+"px",left:i.left+"px",position:"absolute",right:"auto",bottom:"auto"}),e.stem=$.extend(!0,{},this.positionTooltip),this.model.showShadow&&this._shadowEffect(this.model.showShadow,e),this.model.isBalloon&&this._adjustArrow(e),this._showTooltip(),this.model.associate==ej.Tooltip.Associate.MouseEnter&&(this.isTrack=!1),this.model.associate==ej.Tooltip.Associate.MouseFollow&&this.triggerEvents("tracking",{position:this.model.position,event:n}))return},i.prototype._axisPosition=function(){var i=$.extend(!0,{},this.model.position),r,u,n,t;typeof this.model.position.target.horizontal=="number"&&(r=this.model.position.target.horizontal.toString());typeof this.model.position.target.vertical=="number"&&(u=this.model.position.target.vertical.toString());n=parseInt(r);t=parseInt(u);ej.isNullOrUndefined(this.tip)||$(this.tip).css({display:"none"});this.model.showShadow&&this._shadowEffect(this.model.showShadow,i);this.model.isBalloon&&this._adjustArrow(i);isFinite(n)&&isFinite(t)&&$(this.tooltip).css({top:t,left:n,position:"absolute"})},i.prototype._tooltipPosition=function(n){var u=0,t=$.extend(!0,{},n.stem),r=$.extend(!0,{},n.target),i=$.extend(!0,{},this.targetPos),o=t.vertical==="top"||t.vertical==="bottom"?5+this.tipSize.width/2:0,s=t.horizontal==="right"||t.horizontal==="left"?10+this.tipSize.width/2:0,u=this.model.isBalloon?t.horizontal!=="center"?this.model.tip.size.height:t.vertical!=="center"?this.model.tip.size.height:0:0,f=this.model.tip.adjust.xValue!=0?this.model.tip.adjust.xValue:this.model.isBalloon?0:2,e=this.model.tip.adjust.yValue!=0?this.model.tip.adjust.yValue:this.model.isBalloon?0:2;i.left+=r.horizontal==="right"?this.targetPos.width:r.horizontal==="left"?0:this.targetPos.width/2;i.top+=r.vertical==="bottom"?this.targetPos.height:r.vertical==="top"?0:this.targetPos.height/2;i.left+=t.horizontal==="right"?-this.tooltipPos.width:t.horizontal==="left"?0:-(this.tooltipPos.width/2);i.top+=t.vertical==="bottom"?-this.tooltipPos.height:t.vertical==="top"?0:-(this.tooltipPos.height/2);i.left+=r.horizontal!=="center"?t.horizontal==="right"?-u:t.horizontal==="left"?u:0:t.vertical==="center"?t.horizontal==="right"?-u:t.horizontal==="left"?u:0:0;i.top+=r.horizontal==="center"?t.vertical==="bottom"?-u:t.vertical==="top"?u:0:t.horizontal==="center"?t.vertical==="bottom"?-u:t.vertical==="top"?u:0:0;i.left+=r.horizontal==="center"&&t.vertical!=="center"?t.horizontal==="right"?s:t.horizontal==="left"?-s:0:0;i.top+=r.horizontal!=="center"&&t.horizontal!=="center"?t.vertical==="top"?-o:t.vertical==="bottom"?o:0:0;i.left+=r.horizontal!=="center"?t.horizontal==="right"?-f:t.horizontal==="left"?f:0:t.vertical==="center"?t.horizontal==="right"?-f:t.horizontal==="left"?f:0:0;i.top+=r.horizontal==="center"?t.vertical==="bottom"?-e:t.vertical==="top"?e:0:t.horizontal==="center"?t.vertical==="bottom"?-e:t.vertical==="top"?e:0:0;this.tooltipPos.left=i.left;this.tooltipPos.top=i.top;this.model.collision===ej.Tooltip.Collision.None&&(this.model.isBalloon&&this._adjustArrow(n),this._shadowEffect(this.model.showShadow,n),$(this.tooltip).css({top:i.top+"px",left:i.left+"px",position:"absolute"}))},i.prototype._calcCollision=function(n,t){var n=$.extend(!0,{},n),i=$.extend(!0,{},n),o=this.model.tip.size.height,f=!0,r=this.model.containment!="body"?$(t).offset().left-$(this.model.containment).offset().left:$(t).offset().left,u=this.model.containment!="body"?$(t).offset().top-$(this.model.containment).offset().top:$(t).offset().top,e={topSpace:u,rightSpace:this.containerSize.width-(r+this.targetPos.width),bottomSpace:this.containerSize.height-(u+this.targetPos.height),leftSpace:r,centerRight:this.containerSize.width-(r+this.targetPos.width/2),centerLeft:r+this.targetPos.width/2,centerTop:u+this.targetPos.height/2,centerBottom:this.containerSize.height-(u+this.targetPos.height/2),tooltipWidth:this.tooltipPos.width+o,tooltipHeight:this.tooltipPos.height+o};if(this.model.collision===ej.Tooltip.Collision.Fit)this._collisionFit(n,e);else{while(f)i=this._collisionFlip(i,e),i.target.horizontal!=n.target.horizontal||i.target.vertical!=n.target.vertical||i.stem.horizontal!=n.stem.horizontal||i.stem.vertical!=n.stem.vertical?(this._tooltipPosition(i),n=$.extend(!0,{},i)):f=!1;f||(this.model.collision==ej.Tooltip.Collision.FlipFit?this._collisionFit(i,e):(this._adjustArrow(i),this._shadowEffect(this.model.showShadow,i),$(this.tooltip).css({top:this.tooltipPos.top+"px",left:this.tooltipPos.left+"px",position:"absolute"})))}},i.prototype._collisionFlip=function(n,t){var r=$.extend(!0,{},this.tooltipPos),i=$.extend(!0,{},n),e=$(this.model.containment).scrollLeft(),o=$(this.model.containment).scrollTop(),u=this.containerSize.left,f=this.containerSize.top;return(r.left+r.width>u+this.containerSize.width+e||r.left<u)&&(n.target.horizontal!="center"?i.target.horizontal=t.leftSpace>=t.tooltipWidth?"left":t.rightSpace>=t.tooltipWidth?"right":"center":i.stem.horizontal=t.centerLeft>=t.tooltipWidth?"right":t.centerRight>=t.tooltipWidth?"left":"center"),r.top<f&&(i.target.vertical=t.bottomSpace>=t.tooltipHeight?"bottom":"center"),r.top+r.height>this.containerSize.height+o+f&&(i.target.vertical=t.topSpace>=t.tooltipHeight?"top":"center"),(i.target.horizontal!=n.target.horizontal||i.target.vertical!=n.target.vertical)&&(i.stem.horizontal=i.target.horizontal=="center"?t.centerLeft>=t.tooltipWidth?"right":t.centerRight>=t.tooltipWidth?"left":"center":i.target.horizontal=="right"?"left":"right"),(i.target.vertical!=n.target.vertical||i.target.horizontal!=n.target.horizontal)&&(i.stem.vertical=i.target.vertical=="center"?t.centerTop>=t.tooltipHeight?"bottom":t.centerBottom>=t.tooltipHeight?"top":t.centerTop>t.centerBottom?"bottom":"top":i.target.vertical=="top"?"bottom":"top"),i},i.prototype._collisionFit=function(n,t){var i=$.extend(!0,{},this.tooltipPos),o=!1,s=!1,f=1,e=1,c=null,l=$(this.model.containment).scrollLeft(),h,r,u,a,v;h=this.model.containment=="body"?document.documentElement.scrollTop||document.body.scrollTop:$(this.model.containment).scrollTop();r=this.containerSize.left;u=this.containerSize.top;(i.left<r||i.left+i.width>this.containerSize.width+l+r)&&(f=i.left<r?r:i.left+i.width>this.containerSize.width+l+r?i.left-(i.left+i.width-(this.containerSize.width+r)):1,o=!0);(i.top<u||i.top+i.height>this.containerSize.height+h+u)&&(e=i.top<u?u:i.top+i.height>this.containerSize.height+h+u?i.top-(i.top+i.height-(this.containerSize.height+u)):1,s=!0);$(this.tooltip).css({top:e!=1?e+"px":i.top+"px",left:f!=1?f+"px":i.left+"px",position:"absolute"});this._adjustArrow(n);c={left:this.arrowValue.left,top:this.arrowValue.top,height:this.model.tip.size.height,width:this.model.tip.size.width,display:$(this.tip).css("display")};this.tooltipPos.top=e=e!=1?e:i.top;this.tooltipPos.left=f=f!=1?f:i.left;a=$(this.tooltip).width();v=$(this.tooltip).height();(o||s&&c.display!="none")&&(this.model.isBalloon&&(o&&(this.arrowValue.left=this._horizontalAdjustment(n,t)),s&&(this.arrowValue.top=this._verticalAdjustment(n,t))),this.arrowValue.left==-this.model.tip.size.height||this.arrowValue.left==a?$(this.tip).css({left:this.arrowValue.left+"px",top:this.arrowValue.top+"px",display:"block"}):this.arrowValue.top==-this.model.tip.size.height||this.arrowValue.top==v?$(this.tip).css({left:this.arrowValue.left+"px",top:this.arrowValue.top+"px",display:"block"}):$(this.tip).css({left:this.arrowValue.left+"px",top:this.arrowValue.top+"px",display:"none"}));this._shadowEffect(this.model.showShadow,n)},i.prototype._horizontalAdjustment=function(n,t){var r={left:this.arrowValue.left,top:this.arrowValue.top},u,i;return $(this.tooltip).css({display:"block"}),u=n.target.horizontal!="center"?this.model.tip.size.height:this.model.tip.size.height,i=n.target.horizontal!="center"&&n.stem.horizontal=="left"?$(this.tip).offset().left:n.target.horizontal!="center"&&n.stem.horizontal=="right"?$(this.tip).offset().left+u:$(this.tip).offset().left,$(this.tooltip).css({display:"none"}),i>t.leftSpace&&i+u<t.leftSpace+this.targetPos.width?r.left:((i>t.leftSpace+this.targetPos.width||i<t.leftSpace)&&(r.left=t.leftSpace+this.targetPos.width/2-parseInt(this.tooltipPos.left.toString())),r.left)},i.prototype._verticalAdjustment=function(n,t){var r={left:this.arrowValue.left,top:this.arrowValue.top,height:this.model.tip.size.height,width:this.model.tip.size.width,display:this.arrowValue.display},u,i;return $(this.tooltip).css({display:"block"}),u=n.target.horizontal!="center"?this.model.tip.size.height:this.model.tip.size.height,i=n.target.horizontal=="center"&&n.stem.vertical=="top"?$(this.tip).offset().top:$(this.tip).offset().top+u,$(this.tooltip).css({display:"none"}),i>t.topSpace&&i<t.topSpace+this.targetPos.height?r.top:((i<t.topSpace||i+u>t.topSpace+this.targetPos.height)&&(r.top=t.topSpace+this.targetPos.height/2-parseInt(this.tooltipPos.top.toString())),r.top)},i.prototype._createHeader=function(){this.model.title!=null&&(ej.isNullOrUndefined(this.tooltipTitle)&&this._createTitle(),ej.isNullOrUndefined(this.tooltipContent)?$(this.tooltipHeader).appendTo(this.tooltipInter).addClass("e-tooltipHeader"):$(this.tooltipHeader).insertBefore(this.tooltipContent).addClass("e-tooltipHeader"));this.model.closeMode==ej.Tooltip.CloseMode.Sticky&&this._iconRender()},i.prototype._hideTooltip=function(){var n;if(this._isHidden=!0,n=this.model.animation.speed!=0?this.model.animation.speed:this.model.animation.effect==ej.Tooltip.Effect.Slide?200:this.model.animation.effect==ej.Tooltip.Effect.Fade?800:0,this.model.enabled==!0&&$(this.tooltip).css("display")=="block"){if(this.triggerEvents("beforeClose",{}))return;if(this.model.animation.effect==ej.Tooltip.Effect.Fade?$(this.tooltip).fadeOut(n):this.model.animation.effect==ej.Tooltip.Effect.Slide?$(this.tooltip).slideUp(n):$(this.tooltip).css({display:"none"}),$(this.tooltip).css("display")=="none"&&$(this.tooltip).attr("aria-hidden","true").removeClass("e-customAnimation"),this.triggerEvents("close",{}))return}},i.prototype._showTooltip=function(){var n,t;this._isHidden&&(n=this.model.animation.speed!=0?this.model.animation.speed:this.model.animation.effect==ej.Tooltip.Effect.Slide?200:this.model.animation.effect==ej.Tooltip.Effect.Fade?800:0,this._isHidden=!1,$(this.tooltip).css("display")=="none"&&this.model.enabled==!0&&(this.model.animation.effect==ej.Tooltip.Effect.Fade?$(this.tooltip).fadeIn(n):this.model.animation.effect==ej.Tooltip.Effect.Slide?$(this.tooltip).slideDown(n):$(this.tooltip).css({display:"block"}),$(this.tooltip).css("display")=="block"&&($(this.tooltip).attr("aria-hidden","false").css({zIndex:ej.getMaxZindex()+1}),this.model.animation.effect==ej.Tooltip.Effect.None&&$(this.tooltip).addClass("e-customAnimation"),t=this._getScrollableParents(),this._on(t,"scroll",this._hideTooltip)),this.triggerEvents("open",{})))},i.prototype._getScrollableParents=function(){return $(this.element).parentsUntil("html").filter(function(){return $(this).css("overflow")!="visible"}).add($(window))},i.prototype._tooltipAuto=function(){var n=this;this.timer=setTimeout(function(){n._hideTooltip()},n.model.autoCloseTimeout)},i.prototype._beforeOpenTooltip=function(n){this.positionTooltip=$.extend(!0,{},this.model.position.stem);this.positionTarget=$.extend(!0,{},this.model.position.target);this.targetElement=this.element;ej.isNullOrUndefined(this.model.target)||ej.isNullOrUndefined($(n.currentTarget).attr("data-content"))||(this.model.content=$(n.currentTarget).attr("data-content"),this._setContent(this.model.content))},i.prototype._targetHover=function(n){if(this.isTrack=!0,this.model.enabled)if(this._isHidden||(ej.browserInfo().name=="msie"||ej.browserInfo().name=="edge")&&this.model.associate==ej.Tooltip.Associate.MouseFollow){if(this.tooltip.stop(!0,!0),this.triggerEvents("beforeOpen",{event:n})){this._isCancel=!0;return}this._isCancel=!1;this._beforeOpenTooltip(n);this.model.associate!=ej.Tooltip.Associate.MouseEnter&&this.model.associate!=ej.Tooltip.Associate.MouseFollow?(ej.isNullOrUndefined(this.model.target)?this._positionElement(this.element):this._positionElement(n.currentTarget),clearTimeout(this.timer),this._showTooltip(),this.model.closeMode==ej.Tooltip.CloseMode.Auto&&this._tooltipAuto(),n.type=="click"?this.triggerEvents("click",{event:n}):this.triggerEvents("hover",{event:n})):this.isTrack=!0}else ej.isNullOrUndefined(this.model.target)||this._positionElement(n.currentTarget)},i.prototype._onMouseOut=function(){this.model.enabled&&!this._isHidden&&(this.model.closeMode==ej.Tooltip.CloseMode.None&&this._hideTooltip(),clearTimeout(this.mouseTimer));this.isTrack=!1},i.prototype._onTooltipMouseEnter=function(){var n=this;this.model.enabled&&this.model.animation.effect==ej.Tooltip.Effect.None&&$(n.tooltip).css({display:"block"})},i.prototype._onTooltipMouseLeave=function(){var n=this;this.model.enabled&&this.model.animation.effect==ej.Tooltip.Effect.None&&n.model.closeMode==ej.Tooltip.CloseMode.None&&$(n.tooltip).css({display:"none"})},i.prototype._docTouchEndHandler=function(n){$(n.target).closest(".e-tooltip").length||this.model.closeMode!=ej.Tooltip.CloseMode.None||this._hideTooltip()},i.prototype._keyDown=function(n){var t=n.keyCode?n.keyCode:n.which?n.which:n.charCode;if(this.model.enabled)switch(t){case 27:n.preventDefault();this._hideTooltip()}},i}(ej.WidgetBase);window.ej.widget("ejTooltip","ej.Tooltip",new t);window.ejTooltip=null;ej.Tooltip.CloseMode={Auto:"auto",None:"none",Sticky:"sticky"};ej.Tooltip.Effect={Slide:"slide",Fade:"fade",None:"none"};ej.Tooltip.Trigger={Hover:"hover",Click:"click",Focus:"focus"};ej.Tooltip.Collision={Flip:"flip",FlipFit:"flipfit",None:"none",Fit:"fit"};ej.Tooltip.Associate={Window:"window",MouseFollow:"mousefollow",MouseEnter:"mouseenter",Target:"target",Axis:"axis"}});