UNPKG

vxe-table-select-area

Version:

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

1 lines 5.36 kB
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _conf=_interopRequireDefault(require("../../v-x-e-table/src/conf")),_size=_interopRequireDefault(require("../../mixins/size")),_utils=_interopRequireDefault(require("../../tools/utils")),_dom=_interopRequireDefault(require("../../tools/dom")),_event=require("../../tools/event");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,i){return(t=_toPropertyKey(t))in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,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 i=e[Symbol.toPrimitive];if(void 0===i)return("string"===t?String:Number)(e);i=i.call(e,t||"default");if("object"!==_typeof(i))return i;throw new TypeError("@@toPrimitive must return a primitive value.")}var _default2={name:"VxePulldown",mixins:[_size.default],props:{value:Boolean,disabled:Boolean,placement:String,size:{type:String,default:function(){return _conf.default.size}},destroyOnClose:Boolean,transfer:Boolean},data:function(){return{inited:!1,panelIndex:0,panelStyle:null,panelPlacement:null,currentValue:null,visiblePanel:!1,animatVisible:!1,isActivated:!1}},watch:{value:function(e){e?this.showPanel():this.hidePanel()}},created:function(){_event.GlobalEvent.on(this,"mousewheel",this.handleGlobalMousewheelEvent),_event.GlobalEvent.on(this,"mousedown",this.handleGlobalMousedownEvent),_event.GlobalEvent.on(this,"blur",this.handleGlobalBlurEvent)},beforeDestroy:function(){var e=this.$refs.panel;e&&e.parentNode&&e.parentNode.removeChild(e)},destroyed:function(){_event.GlobalEvent.off(this,"mousewheel"),_event.GlobalEvent.off(this,"mousedown"),_event.GlobalEvent.off(this,"blur")},render:function(e){var t,i=this.$scopedSlots,n=this.inited,l=this.vSize,o=this.destroyOnClose,a=this.transfer,s=this.isActivated,r=this.disabled,u=this.animatVisible,d=this.visiblePanel,f=this.panelStyle,h=this.panelPlacement,p=i.default,i=i.dropdown;return e("div",{class:["vxe-pulldown",(_defineProperty(t={},"size--".concat(l),l),_defineProperty(t,"is--visivle",d),_defineProperty(t,"is--disabled",r),_defineProperty(t,"is--active",s),t)]},[e("div",{ref:"content",class:"vxe-pulldown--content"},p?p.call(this,{$pulldown:this},e):[]),e("div",{ref:"panel",class:["vxe-table--ignore-clear vxe-pulldown--panel",(_defineProperty(r={},"size--".concat(l),l),_defineProperty(r,"is--transfer",a),_defineProperty(r,"animat--leave",u),_defineProperty(r,"animat--enter",d),r)],attrs:{placement:h},style:f},i?[e("div",{class:"vxe-pulldown--wrapper"},!n||o&&!d&&!u?[]:i.call(this,{$pulldown:this},e))]:[])])},methods:{handleGlobalMousewheelEvent:function(e){var t=this.$refs,i=this.disabled,n=this.visiblePanel;i||n&&(_dom.default.getEventTargetNode(e,t.panel).flag?this.updatePlacement():(this.hidePanel(),this.$emit("hide-panel",{$event:e})))},handleGlobalMousedownEvent:function(e){var t=this.$refs,i=this.$el,n=this.disabled,l=this.visiblePanel;n||(this.isActivated=_dom.default.getEventTargetNode(e,i).flag||_dom.default.getEventTargetNode(e,t.panel).flag,l&&!this.isActivated&&(this.hidePanel(),this.$emit("hide-panel",{$event:e})))},handleGlobalBlurEvent:function(e){this.visiblePanel&&(this.isActivated=!1,this.hidePanel(),this.$emit("hide-panel",{$event:e}))},updateZindex:function(){this.panelIndex<_utils.default.getLastZIndex()&&(this.panelIndex=_utils.default.nextZIndex())},isPanelVisible:function(){return this.visiblePanel},togglePanel:function(){return this.visiblePanel?this.hidePanel():this.showPanel()},showPanel:function(){var t=this;return this.inited||(this.inited=!0,this.transfer&&document.body.appendChild(this.$refs.panel)),new Promise(function(e){t.disabled?e(t.$nextTick()):(clearTimeout(t.hidePanelTimeout),t.isActivated=!0,t.animatVisible=!0,setTimeout(function(){t.visiblePanel=!0,t.$emit("update:input",!0),t.updatePlacement(),setTimeout(function(){e(t.updatePlacement())},40)},10),t.updateZindex())})},hidePanel:function(){var t=this;return this.visiblePanel=!1,this.$emit("update:input",!1),new Promise(function(e){t.animatVisible?t.hidePanelTimeout=setTimeout(function(){t.animatVisible=!1,e(t.$nextTick())},350):e(t.$nextTick())})},updatePlacement:function(){var h=this;return this.$nextTick().then(function(){var e,t,i,n,l,o,a,s,r=h.$refs,u=h.transfer,d=h.placement,f=h.panelIndex;return h.visiblePanel&&(n=r.panel,r=r.content,n)&&r&&(e=r.offsetHeight,t=r.offsetWidth,i=n.offsetHeight,n=n.offsetWidth,f={zIndex:f},l=(r=_dom.default.getAbsolutePos(r)).boundingTop,s=r.boundingLeft,o=r.visibleHeight,r=r.visibleWidth,a="bottom",u?(u=l+e,"top"===d?(a="top",u=l-i):d||(o<u+i+5&&(a="top",u=l-i),u<5&&(a="bottom",u=l+e)),r<(s=s)+n+5&&(s-=s+n+5-r),s<5&&(s=5),Object.assign(f,{left:"".concat(s,"px"),top:"".concat(u,"px"),minWidth:"".concat(t,"px")})):"top"===d?(a="top",f.bottom="".concat(e,"px")):d||o<l+e+i&&5<l-e-i&&(a="top",f.bottom="".concat(e,"px")),h.panelStyle=f,h.panelPlacement=a),h.$nextTick()})}}};exports.default=_default2;