UNPKG

vxe-table-select-area

Version:

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

1 lines 5.37 kB
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var autoTxtElem,_xeUtils=_interopRequireDefault(require("xe-utils")),_conf=_interopRequireDefault(require("../../v-x-e-table/src/conf")),_size=_interopRequireDefault(require("../../mixins/size")),_utils=require("../../tools/utils");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.")}var _default2={name:"VxeTextarea",mixins:[_size.default],model:{prop:"value",event:"modelValue"},props:{value:[String,Number],immediate:{type:Boolean,default:!0},name:String,readonly:Boolean,disabled:Boolean,placeholder:String,maxlength:[String,Number],rows:{type:[String,Number],default:2},cols:{type:[String,Number],default:null},showWordCount:Boolean,countMethod:Function,autosize:[Boolean,Object],form:String,resize:{type:String,default:function(){return _conf.default.textarea.resize}},className:String,size:{type:String,default:function(){return _conf.default.textarea.size||_conf.default.size}}},inject:{$xeform:{default:null},$xeformiteminfo:{default:null}},data:function(){return{inputValue:this.value}},computed:{inputCount:function(){return _xeUtils.default.getSize(this.inputValue)},isCountError:function(){return this.maxlength&&this.inputCount>_xeUtils.default.toNumber(this.maxlength)},defaultEvents:function(){var i=this,n={};return _xeUtils.default.each(this.$listeners,function(t,e){-1===["input","change","blur"].indexOf(e)&&(n[e]=i.triggerEvent)}),n.input=this.inputEvent,n.change=this.changeEvent,n.blur=this.blurEvent,n},sizeOpts:function(){return Object.assign({minRows:1,maxRows:10},_conf.default.textarea.autosize,this.autosize)}},watch:{value:function(t){this.inputValue=t,this.updateAutoTxt()}},mounted:function(){this.autosize&&(this.updateAutoTxt(),this.handleResize())},render:function(t){var e=this.className,i=this.defaultEvents,n=this.inputValue,r=this.vSize,o=this.name,u=this.form,a=this.resize,s=this.placeholder,l=this.readonly,f=this.disabled,d=this.maxlength,c=this.autosize,h=this.showWordCount,m=this.countMethod,p=this.rows,x=this.cols,o={name:o,form:u,placeholder:s,maxlength:d,readonly:l,disabled:f,rows:p,cols:x};return s&&(o.placeholder=(0,_utils.getFuncText)(s)),t("div",{class:["vxe-textarea",e,(_defineProperty(u={},"size--".concat(r),r),_defineProperty(u,"is--autosize",c),_defineProperty(u,"is--disabled",f),_defineProperty(u,"def--rows",!_xeUtils.default.eqNull(p)),_defineProperty(u,"def--cols",!_xeUtils.default.eqNull(x)),u)]},[t("textarea",{ref:"textarea",class:"vxe-textarea--inner",domProps:{value:n},attrs:o,style:a?{resize:a}:null,on:i}),h?t("span",{class:["vxe-textarea--count",{"is--error":this.isCountError}]},m?"".concat(m({value:n})):"".concat(this.inputCount).concat(d?"/".concat(d):"")):null])},methods:{focus:function(){return this.$refs.textarea.focus(),this.$nextTick()},blur:function(){return this.$refs.textarea.blur(),this.$nextTick()},triggerEvent:function(t){var e=this.inputValue;this.$emit(t.type,{value:e,$event:t})},emitUpdate:function(t,e){this.inputValue=t,this.$emit("modelValue",t),this.value!==t&&(this.$emit("change",{value:t,$event:e}),this.$xeform)&&this.$xeformiteminfo&&this.$xeform.triggerItemEvent(e,this.$xeformiteminfo.itemConfig.field,t)},inputEvent:function(t){var e=this.immediate,i=t.target.value;this.inputValue=i,e&&this.emitUpdate(i,t),this.handleResize(),this.triggerEvent(t)},changeEvent:function(t){this.immediate?this.triggerEvent(t):this.emitUpdate(this.inputValue,t)},blurEvent:function(t){var e=this.inputValue;this.immediate||this.emitUpdate(e,t),this.$emit("blur",{value:e,$event:t})},updateAutoTxt:function(){var t,e=this.$refs,i=this.inputValue,n=this.size;this.autosize&&((autoTxtElem=autoTxtElem||document.createElement("div")).parentNode||document.body.appendChild(autoTxtElem),e=e.textarea,t=getComputedStyle(e),autoTxtElem.className=["vxe-textarea--autosize",n?"size--".concat(n):""].join(" "),autoTxtElem.style.width="".concat(e.clientWidth,"px"),autoTxtElem.style.padding=t.padding,autoTxtElem.innerHTML=(""+(i||" ")).replace(/\n$/,"\n "))},handleResize:function(){var a=this;this.autosize&&this.$nextTick(function(){var t=a.$refs,e=a.sizeOpts,i=e.minRows,e=e.maxRows,t=t.textarea,n=autoTxtElem.clientHeight,r=getComputedStyle(t),o=_xeUtils.default.toNumber(r.lineHeight),r=_xeUtils.default.toNumber(r.paddingTop)+_xeUtils.default.toNumber(r.paddingBottom)+_xeUtils.default.toNumber(r.borderTopWidth)+_xeUtils.default.toNumber(r.borderBottomWidth),n=(n-r)/o,n=n&&/[0-9]/.test(n)?n:Math.floor(n)+1,u=n;n<i?u=i:e<n&&(u=e),t.style.height="".concat(u*o+r,"px")})}}};exports.default=_default2;