"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _xeUtils=_interopRequireDefault(require("xe-utils/methods/xe-utils")),_conf=_interopRequireDefault(require("../../conf")),_tools=require("../../tools");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _defineProperty(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}var _default2={name:"PlxTooltip",props:{value:Boolean,size:String,trigger:{type:String,default:function(){return _conf.default.tooltip.trigger}},theme:{type:String,default:function(){return _conf.default.tooltip.theme}},content:[String,Function],zIndex:[String,Number],isArrow:{type:Boolean,default:!0},enterable:Boolean,leaveDelay:{type:Number,default:_conf.default.tooltip.leaveDelay}},data:function(){return{isUpdate:!1,isHover:!1,visible:!1,message:"",tipZindex:0,tipStore:{style:{},placement:"",arrowStyle:null}}},computed:{vSize:function(){return this.size||this.$parent.size||this.$parent.vSize}},watch:{content:function(e){this.message=e},value:function(e){this.isUpdate||this[e?"show":"close"](),this.isUpdate=!1}},mounted:function(){var i,o=this.$el,e=this.trigger,t=this.content,s=this.value,n=o.parentNode;this.message=t,this.tipZindex=_tools.UtilTools.nextZIndex(),_xeUtils.default.arrayEach(o.children,function(e,t){1<t&&(n.insertBefore(e,o),i=i||e)}),n.removeChild(o),(this.target=i)&&("hover"===e?(i.onmouseleave=this.targetMouseleaveEvent,i.onmouseenter=this.targetMouseenterEvent):"click"===e&&(i.onclick=this.clickEvent)),s&&this.show()},beforeDestroy:function(){var e=this.$el,t=this.target,i=this.trigger,o=e.parentNode;o&&o.removeChild(e),t&&("hover"===i?(t.onmouseenter=null,t.onmouseleave=null):"click"===i&&(t.onclick=null))},render:function(e){var t,i=this.vSize,o=this.theme,s=this.message,n=this.isHover,r=this.isArrow,l=this.visible,a=this.tipStore,c=this.enterable,u=null;return c&&(u={mouseenter:this.wrapperMouseenterEvent,mouseleave:this.wrapperMouseleaveEvent}),e("div",{class:["plx-table--tooltip-wrapper","theme--".concat(o),"placement--".concat(a.placement),(_defineProperty(t={},"size--".concat(i),i),_defineProperty(t,"is--enterable",c),_defineProperty(t,"is--visible",l),_defineProperty(t,"is--arrow",r),_defineProperty(t,"is--hover",n),t)],style:a.style,ref:"tipWrapper",on:u},[e("div",{class:"plx-table--tooltip-content"},this.$slots.content||s),e("div",{class:"plx-table--tooltip-arrow",style:a.arrowStyle})].concat(this.$slots.default))},methods:{show:function(){return this.toVisible(this.target)},close:function(){return Object.assign(this.tipStore,{style:{},placement:"",arrowStyle:null}),this.update(!1),this.$nextTick()},update:function(e){e!==this.visible&&(this.visible=e,this.isUpdate=!0,this.$listeners.input&&this.$emit("input",this.visible))},updateZindex:function(){this.tipZindex<_tools.UtilTools.getLastZIndex()&&(this.tipZindex=_tools.UtilTools.nextZIndex())},toVisible:function(i,e){var o=this;if(this.targetActive=!0,i){var s=this.$el,n=this.tipStore,r=this.zIndex,t=_tools.DomTools.getAbsolutePos(i),l=t.top,a=t.left,c=_tools.DomTools.getDomNode(),u=c.scrollTop,h=c.scrollLeft,p=c.visibleWidth,f=s.parentNode,d=a;return n.placement="top",n.style={width:"auto"},n.arrowStyle={left:"50%"},f||document.body.appendChild(s),e&&(this.message=e),this.update(!0),this.updateZindex(),this.$nextTick().then(function(){if(s){var e=s.clientHeight,t=_xeUtils.default.toNumber(getComputedStyle(s).width);return d=a+Math.floor((i.offsetWidth-t)/2),n.style={zIndex:r||o.tipZindex,width:"".concat(t,"px"),top:"".concat(l-e-6,"px"),left:"".concat(d,"px")},o.$nextTick()}}).then(function(){if(s){var e=s.clientHeight,t=s.clientWidth;Object.assign(n.style,{top:"".concat(l-e-6,"px"),left:"".concat(d,"px")}),l-e<u+6&&(n.placement="bottom",n.style.top="".concat(l+i.offsetHeight+6,"px")),d<h+6?(d=h+6,n.arrowStyle.left="".concat(d+16<a?a-d+16:16,"px"),n.style.left="".concat(d,"px")):h+p<d+t&&(d=h+p-t-6,n.arrowStyle.left="".concat(t-Math.max(Math.floor((d+t-a)/2),22),"px"),n.style.left="".concat(d,"px"))}})}return this.$nextTick()},clickEvent:function(){this[this.visible?"close":"show"]()},targetMouseenterEvent:function(){this.show()},targetMouseleaveEvent:function(){var e=this,t=this.trigger,i=this.enterable,o=this.leaveDelay;this.targetActive=!1,i&&"hover"===t?setTimeout(function(){e.isHover||e.close()},o):this.close()},wrapperMouseenterEvent:function(){this.isHover=!0},wrapperMouseleaveEvent:function(e){var t=this,i=this.$listeners,o=this.trigger,s=this.enterable,n=this.leaveDelay;this.isHover=!1,i.leave?this.$emit("leave",e):s&&"hover"===o&&setTimeout(function(){t.targetActive||t.close()},n)}}};exports.default=_default2;