vxe-table-select-area
Version:
一个基于 vxe-table 的可区域选中复制、粘贴的组件
1 lines • 7.88 kB
JavaScript
"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=_interopRequireWildcard(require("../../tools/utils")),_dom=_interopRequireDefault(require("../../tools/dom")),_event=require("../../tools/event");function _getRequireWildcardCache(e){var t,n;return"function"!=typeof WeakMap?null:(t=new WeakMap,n=new WeakMap,(_getRequireWildcardCache=function(e){return e?n:t})(e))}function _interopRequireWildcard(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==_typeof(e)&&"function"!=typeof e)return{default:e};t=_getRequireWildcardCache(t);if(t&&t.has(e))return t.get(e);var n,i,o={},r=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(n in e)"default"!==n&&Object.prototype.hasOwnProperty.call(e,n)&&((i=r?Object.getOwnPropertyDescriptor(e,n):null)&&(i.get||i.set)?Object.defineProperty(o,n,i):o[n]=e[n]);return o.default=e,t&&t.set(e,o),o}function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _typeof(e){return(_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function _defineProperty(e,t,n){return(t=_toPropertyKey(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function _toPropertyKey(e){e=_toPrimitive(e,"string");return"symbol"===_typeof(e)?e:String(e)}function _toPrimitive(e,t){if("object"!==_typeof(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0===n)return("string"===t?String:Number)(e);n=n.call(e,t||"default");if("object"!==_typeof(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}var _default2={name:"VxeButton",mixins:[_size.default],props:{type:String,size:{type:String,default:function(){return _conf.default.button.size||_conf.default.size}},name:[String,Number],content:String,placement:String,status:String,icon:String,round:Boolean,circle:Boolean,disabled:Boolean,loading:Boolean,destroyOnClose:Boolean,className:String,transfer:{type:Boolean,default:function(){return _conf.default.button.transfer}}},data:function(){return{inited:!1,showPanel:!1,animatVisible:!1,panelIndex:0,panelStyle:null,panelPlacement:null}},computed:{isText:function(){return"text"===this.type},isFormBtn:function(){return-1<["submit","reset","button"].indexOf(this.type)},btnType:function(){return this.isText?this.type:"button"}},created:function(){_event.GlobalEvent.on(this,"mousewheel",this.handleGlobalMousewheelEvent)},beforeDestroy:function(){var e=this.$refs.panel;e&&e.parentNode&&e.parentNode.removeChild(e)},destroyed:function(){_event.GlobalEvent.off(this,"mousewheel")},render:function(e){var t,n=this,i=this.$scopedSlots,o=this.$listeners,r=this.className,s=this.inited,a=this.type,u=this.destroyOnClose,l=this.isFormBtn,c=this.status,d=this.btnType,f=this.vSize,p=this.name,h=this.disabled,m=this.loading,v=this.showPanel,b=this.animatVisible,y=this.panelPlacement,i=i.dropdowns;return i?e("div",{class:["vxe-button--dropdown",r,(_defineProperty(t={},"size--".concat(f),f),_defineProperty(t,"is--active",v),t)]},[e("button",{ref:"xBtn",class:["vxe-button","type--".concat(d),(_defineProperty(t={},"size--".concat(f),f),_defineProperty(t,"theme--".concat(c),c),_defineProperty(t,"is--round",this.round),_defineProperty(t,"is--circle",this.circle),_defineProperty(t,"is--disabled",h||m),_defineProperty(t,"is--loading",m),t)],attrs:{name:p,type:l?a:"button",disabled:h||m},on:Object.assign({mouseenter:this.mouseenterTargetEvent,mouseleave:this.mouseleaveEvent},_xeUtils.default.objectMap(o,function(e,t){return function(e){return n.$emit(t,{$event:e})}}))},this.renderContent(e).concat([e("i",{class:"vxe-button--dropdown-arrow ".concat(_conf.default.icon.BUTTON_DROPDOWN)})])),e("div",{ref:"panel",class:["vxe-button--dropdown-panel",(_defineProperty(t={},"size--".concat(f),f),_defineProperty(t,"animat--leave",b),_defineProperty(t,"animat--enter",v),t)],attrs:{placement:y},style:this.panelStyle},s?[e("div",{class:"vxe-button--dropdown-wrapper",on:{mousedown:this.mousedownDropdownEvent,click:this.clickDropdownEvent,mouseenter:this.mouseenterEvent,mouseleave:this.mouseleaveEvent}},u&&!v?[]:i.call(this,{},e))]:null)]):e("button",{ref:"xBtn",class:["vxe-button","type--".concat(d),r,(_defineProperty(b={},"size--".concat(f),f),_defineProperty(b,"theme--".concat(c),c),_defineProperty(b,"is--round",this.round),_defineProperty(b,"is--circle",this.circle),_defineProperty(b,"is--disabled",h||m),_defineProperty(b,"is--loading",m),b)],attrs:{name:p,type:l?a:"button",disabled:h||m},on:_xeUtils.default.objectMap(o,function(e,t){return function(e){return n.$emit(t,{$event:e})}})},this.renderContent(e))},methods:{renderContent:function(e){var t=this.$scopedSlots,n=this.content,i=this.icon,o=[];return this.loading?o.push(e("i",{class:["vxe-button--loading-icon",_conf.default.icon.BUTTON_LOADING]})):t.icon?o.push(e("span",{class:"vxe-button--custom-icon"},t.icon.call(this,{}))):i&&o.push(e("i",{class:["vxe-button--icon",i]})),t.default?o.push(e("span",{class:"vxe-button--content"},t.default.call(this,{}))):n&&o.push(e("span",{class:"vxe-button--content"},[(0,_utils.getFuncText)(n)])),o},handleGlobalMousewheelEvent:function(e){this.showPanel&&!_dom.default.getEventTargetNode(e,this.$refs.panel).flag&&this.closePanel()},updateZindex:function(){this.panelIndex<_utils.default.getLastZIndex()&&(this.panelIndex=_utils.default.nextZIndex())},mousedownDropdownEvent:function(e){0===e.button&&e.stopPropagation()},clickDropdownEvent:function(e){var t=this,n=e.currentTarget,i=this.$refs.panel,n=_dom.default.getEventTargetNode(e,n,"vxe-button"),o=n.flag,n=n.targetElem;o&&(i&&(i.dataset.active="N"),this.showPanel=!1,setTimeout(function(){i&&"Y"===i.dataset.active||(t.animatVisible=!1)},350),this.$emit("dropdown-click",{name:n.getAttribute("name"),$event:e}))},mouseenterTargetEvent:function(){var e=this,t=this.$refs.panel;t.dataset.active="Y",this.inited||(this.inited=!0,this.transfer&&document.body.appendChild(t)),this.showTime=setTimeout(function(){"Y"===t.dataset.active?e.mouseenterEvent():e.animatVisible=!1},250)},mouseenterEvent:function(){var e=this,t=this.$refs.panel;t.dataset.active="Y",this.animatVisible=!0,setTimeout(function(){"Y"===t.dataset.active&&(e.showPanel=!0,e.updateZindex(),e.updatePlacement(),setTimeout(function(){e.showPanel&&e.updatePlacement()},50))},20)},mouseleaveEvent:function(){this.closePanel()},closePanel:function(){var e=this,t=this.$refs.panel;clearTimeout(this.showTime),t?(t.dataset.active="N",setTimeout(function(){"Y"!==t.dataset.active&&(e.showPanel=!1,setTimeout(function(){"Y"!==t.dataset.active&&(e.animatVisible=!1)},350))},100)):(this.animatVisible=!1,this.showPanel=!1)},updatePlacement:function(){var p=this;return this.$nextTick().then(function(){var e,t,n,i,o,r,s,a,u=p.$refs,l=p.transfer,c=p.placement,d=p.panelIndex,f=u.xBtn,u=u.panel;if(u&&f)return e=f.offsetHeight,t=f.offsetWidth,n=u.offsetHeight,u=u.offsetWidth,d={zIndex:d},a=(f=_dom.default.getAbsolutePos(f)).top,i=f.left,o=f.boundingTop,r=f.visibleHeight,f=f.visibleWidth,s="bottom",l?(l=a+e,"top"===c?(s="top",l=a-n):c||(r<o+e+n+5&&(s="top",l=a-n),l<5&&(s="bottom",l=a+e)),f<(a=i+t-u)+u+5&&(a-=a+u+5-f),a<5&&(a=5),Object.assign(d,{left:"".concat(a,"px"),right:"auto",top:"".concat(l,"px"),minWidth:"".concat(t,"px")})):"top"===c?(s="top",d.bottom="".concat(e,"px")):c||r<o+e+n&&5<o-e-n&&(s="top",d.bottom="".concat(e,"px")),p.panelStyle=d,p.panelPlacement=s,p.$nextTick()})},focus:function(){return this.$el.focus(),this.$nextTick()},blur:function(){return this.$el.blur(),this.$nextTick()}}};exports.default=_default2;