UNPKG

ll-package

Version:

2 lines (1 loc) 2.51 kB
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const E=require("../../../@babel/runtime/helpers/esm/objectSpread2.js"),z=require("../../../@babel/runtime/helpers/esm/extends.js"),e=require("vue"),B=require("../vc-resize-observer/index.js"),D=require("../_util/classNames.js"),i=require("../_util/raf.js"),F=require("../_util/warning.js"),U=require("../_util/antInputDirective.js"),V=require("../_util/omit.js"),Z=require("./inputProps.js"),j=require("./calculateNodeHeight.js"),S=0,x=1,m=2,O=e.defineComponent({compatConfig:{MODE:3},name:"ResizableTextArea",inheritAttrs:!1,props:Z.textAreaProps(),setup(l,T){let{attrs:c,emit:p,expose:q}=T,y,I;const a=e.ref(),b=e.ref({}),s=e.ref(m);e.onBeforeUnmount(()=>{i.default.cancel(y),i.default.cancel(I)});const g=()=>{try{if(document.activeElement===a.value){const t=a.value.selectionStart,d=a.value.selectionEnd,v=a.value.scrollTop;a.value.setSelectionRange(t,d),a.value.scrollTop=v}}catch{}},o=e.ref(),r=e.ref();e.watchEffect(()=>{const t=l.autoSize||l.autosize;t?(o.value=t.minRows,r.value=t.maxRows):(o.value=void 0,r.value=void 0)});const u=e.computed(()=>!!(l.autoSize||l.autosize)),f=()=>{s.value=S};e.watch([()=>l.value,o,r,u],()=>{u.value&&f()},{immediate:!0,flush:"post"});const R=e.ref();e.watch([s,a],()=>{if(a.value)if(s.value===S)s.value=x;else if(s.value===x){const t=j.default(a.value,!1,o.value,r.value);s.value=m,R.value=t}else g()},{immediate:!0,flush:"post"});const C=e.getCurrentInstance(),A=e.ref(),h=()=>{i.default.cancel(A.value)},P=t=>{s.value===m&&(p("resize",t),u.value&&(h(),A.value=i.default(()=>{f()})))};e.onBeforeUnmount(()=>{h()}),q({resizeTextarea:()=>{f()},textArea:a,instance:C}),F.default(l.autosize===void 0,"Input.TextArea","autosize is deprecated, please use autoSize instead.");const _=()=>{const{prefixCls:t,disabled:d}=l,v=V.default(l,["prefixCls","onPressEnter","autoSize","autosize","defaultValue","allowClear","type","lazy","maxlength","valueModifiers"]),M=D.default(t,c.class,{[`${t}-disabled`]:d}),N=u.value?R.value:null,w=[c.style,b.value,N],n=z.default(z.default(z.default({},v),c),{style:w,class:M});return(s.value===S||s.value===x)&&w.push({overflowX:"hidden",overflowY:"hidden"}),n.autofocus||delete n.autofocus,n.rows===0&&delete n.rows,e.createVNode(B.default,{onResize:P,disabled:!u.value},{default:()=>[e.withDirectives(e.createVNode("textarea",E.default(E.default({},n),{},{ref:a}),null),[[U.default]])]})};return()=>_()}}),$=O;exports.default=$;