UNPKG

vxe-table-select-area

Version:

一个基于 vxe-table 的可区域选中复制、粘贴的组件

1 lines 6.27 kB
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _xeUtils=_interopRequireDefault(require("xe-utils")),_conf=_interopRequireDefault(require("../../v-x-e-table/src/conf")),_size=_interopRequireDefault(require("../../mixins/size")),_utils=_interopRequireDefault(require("../../tools/utils")),_dom=_interopRequireDefault(require("../../tools/dom"));function _interopRequireDefault(t){return t&&t.__esModule?t:{default:t}}function _typeof(t){return(_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function _defineProperty(t,e,i){return(e=_toPropertyKey(e))in t?Object.defineProperty(t,e,{value:i,enumerable:!0,configurable:!0,writable:!0}):t[e]=i,t}function _toPropertyKey(t){t=_toPrimitive(t,"string");return"symbol"===_typeof(t)?t:String(t)}function _toPrimitive(t,e){if("object"!==_typeof(t)||null===t)return t;var i=t[Symbol.toPrimitive];if(void 0===i)return("string"===e?String:Number)(t);i=i.call(t,e||"default");if("object"!==_typeof(i))return i;throw new TypeError("@@toPrimitive must return a primitive value.")}function updateTipStyle(t){var e,i,n,o,r,l,s,u,a=t.$el,p=t.tipTarget,t=t.tipStore;p&&(e=(n=_dom.default.getDomNode()).scrollTop,i=n.scrollLeft,n=n.visibleWidth,o=(r=_dom.default.getAbsolutePos(p)).top,r=r.left,l=a.offsetHeight,a=a.offsetWidth,s=o-l-6,i+n<(u=Math.max(6,r+Math.floor((p.offsetWidth-a)/2)))+a+6&&(u=i+n-a-6),o-l<e+6&&(t.placement="bottom",s=o+p.offsetHeight+6),t.style.top="".concat(s,"px"),t.style.left="".concat(u,"px"),t.arrowStyle.left="".concat(r-u+p.offsetWidth/2,"px"))}function showTip(t){var e=t.$el,i=t.tipStore,n=t.zIndex;return e.parentNode||document.body.appendChild(e),t.updateValue(!0),t.updateZindex(),i.placement="top",i.style={width:"auto",left:0,top:0,zIndex:n||t.tipZindex},i.arrowStyle={left:"50%"},t.updatePlacement()}function renderContent(t,e){var i=e.$scopedSlots,n=e.useHTML,e=e.tipContent;return i.content?t("div",{key:1,class:"vxe-table--tooltip-content"},i.content.call(this,{})):n?t("div",{key:2,class:"vxe-table--tooltip-content",domProps:{innerHTML:e}}):t("div",{key:3,class:"vxe-table--tooltip-content"},_utils.default.formatText(e))}var _default2={name:"VxeTooltip",mixins:[_size.default],props:{value:Boolean,size:{type:String,default:function(){return _conf.default.tooltip.size||_conf.default.size}},trigger:{type:String,default:function(){return _conf.default.tooltip.trigger}},theme:{type:String,default:function(){return _conf.default.tooltip.theme}},content:{type:[String,Number],default:null},useHTML:Boolean,zIndex:[String,Number],isArrow:{type:Boolean,default:!0},enterable:Boolean,enterDelay:{type:Number,default:function(){return _conf.default.tooltip.enterDelay}},leaveDelay:{type:Number,default:function(){return _conf.default.tooltip.leaveDelay}}},data:function(){return{isUpdate:!1,visible:!1,tipContent:"",tipActive:!1,tipTarget:null,tipZindex:0,tipStore:{style:{},placement:"",arrowStyle:null}}},watch:{content:function(t){this.tipContent=t},value:function(t){this.isUpdate||this[t?"open":"close"](),this.isUpdate=!1}},created:function(){var t=this;this.showDelayTip=_xeUtils.default.debounce(function(){t.tipActive&&showTip(t)},this.enterDelay,{leading:!1,trailing:!0})},mounted:function(){var i,n=this.$el,t=this.trigger,e=this.content,o=this.value,r=n.parentNode;r&&(this.tipContent=e,this.tipZindex=_utils.default.nextZIndex(),_xeUtils.default.arrayEach(n.children,function(t,e){1<e&&(r.insertBefore(t,n),i=i||t)}),r.removeChild(n),(this.target=i)&&("hover"===t?(i.onmouseleave=this.targetMouseleaveEvent,i.onmouseenter=this.targetMouseenterEvent):"click"===t&&(i.onclick=this.clickEvent)),o)&&this.open()},beforeDestroy:function(){var t=this.$el,e=this.target,i=this.trigger,n=t.parentNode;n&&n.removeChild(t),e&&("hover"===i?(e.onmouseenter=null,e.onmouseleave=null):"click"===i&&(e.onclick=null))},render:function(t){var e,i=this.$scopedSlots,n=this.vSize,o=this.theme,r=this.tipActive,l=this.isArrow,s=this.visible,u=this.tipStore,a=this.enterable;return a&&(e={mouseenter:this.wrapperMouseenterEvent,mouseleave:this.wrapperMouseleaveEvent}),t("div",{class:["vxe-table--tooltip-wrapper","theme--".concat(o),(_defineProperty(o={},"size--".concat(n),n),_defineProperty(o,"placement--".concat(u.placement),u.placement),_defineProperty(o,"is--enterable",a),_defineProperty(o,"is--visible",s),_defineProperty(o,"is--arrow",l),_defineProperty(o,"is--actived",r),o)],style:u.style,ref:"tipWrapper",on:e},[renderContent(t,this),t("div",{class:"vxe-table--tooltip-arrow",style:u.arrowStyle})].concat(i.default?i.default.call(this,{}):[]))},methods:{open:function(t,e){return this.toVisible(t||this.target,e)},close:function(){return this.tipTarget=null,this.tipActive=!1,Object.assign(this.tipStore,{style:{},placement:"",arrowStyle:null}),this.updateValue(!1),this.$nextTick()},updateValue:function(t){t!==this.visible&&(this.visible=t,this.isUpdate=!0,this.$listeners.input)&&this.$emit("input",this.visible)},updateZindex:function(){this.tipZindex<_utils.default.getLastZIndex()&&(this.tipZindex=_utils.default.nextZIndex())},toVisible:function(t,e){if(t){var i=this.trigger,n=this.enterDelay;if(this.tipActive=!0,this.tipTarget=t,e&&(this.tipContent=e),!n||"hover"!==i)return showTip(this);this.showDelayTip()}return this.$nextTick()},updatePlacement:function(){var e=this;return this.$nextTick().then(function(){var t=e.$el;if(e.tipTarget&&t)return updateTipStyle(e),e.$nextTick().then(function(){return updateTipStyle(e)})})},isActived:function(){return this.tipActive},setActived:function(t){this.tipActive=!!t},clickEvent:function(){this[this.visible?"close":"open"]()},targetMouseenterEvent:function(){this.open()},targetMouseleaveEvent:function(){var t=this,e=this.trigger,i=this.enterable,n=this.leaveDelay;this.tipActive=!1,i&&"hover"===e?setTimeout(function(){t.tipActive||t.close()},n):this.close()},wrapperMouseenterEvent:function(){this.tipActive=!0},wrapperMouseleaveEvent:function(){var t=this,e=this.trigger,i=this.enterable,n=this.leaveDelay;this.tipActive=!1,i&&"hover"===e&&setTimeout(function(){t.tipActive||t.close()},n)}}};exports.default=_default2;