ll-package
Version:
2 lines (1 loc) • 4.8 kB
JavaScript
Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const S=require("../../../@babel/runtime/helpers/esm/objectSpread2.js"),g=require("../../../@babel/runtime/helpers/esm/extends.js"),n=require("vue"),Z=require("./ClearableLabeledInput.js"),p=require("./ResizableTextArea.js"),ee=require("./inputProps.js"),C=require("../vc-input/utils/commonUtils.js"),te=require("../_util/classNames.js"),z=require("../form/FormItemContext.js"),ae=require("../config-provider/hooks/useConfigInject.js"),le=require("../_util/omit.js"),M=require("../_util/statusUtils.js"),ne=require("./style/index.js"),ue=require("../config-provider/DisabledContext.js");function P(t,v){return[...t||""].slice(0,v).join("")}function O(t,v,i,b){let r=i;return t?r=P(i,b):[...v||""].length<i.length&&[...i||""].length>b&&(r=v),r}const oe=n.defineComponent({compatConfig:{MODE:3},name:"ATextarea",inheritAttrs:!1,props:ee.textAreaProps(),setup(t,v){let{attrs:i,expose:b,emit:r}=v;const T=z.useInjectFormItemContext(),m=z.FormItemInputContext.useInject(),D=n.computed(()=>M.getMergedStatus(m.status,t.status)),h=n.shallowRef(t.value===void 0?t.defaultValue:t.value),c=n.shallowRef(),d=n.shallowRef(""),{prefixCls:o,size:A,direction:V}=ae.default("input",t),[B,q]=ne.default(o),F=ue.useInjectDisabled(),f=n.computed(()=>t.showCount===""||t.showCount||!1),I=n.computed(()=>Number(t.maxlength)>0),x=n.shallowRef(!1),_=n.shallowRef(),y=n.shallowRef(0),L=e=>{x.value=!0,_.value=d.value,y.value=e.currentTarget.selectionStart,r("compositionstart",e)},K=e=>{var a;x.value=!1;let l=e.currentTarget.value;if(I.value){const s=y.value>=t.maxlength+1||y.value===((a=_.value)===null||a===void 0?void 0:a.length);l=O(s,_.value,l,t.maxlength)}l!==d.value&&($(l),C.resolveOnChange(e.currentTarget,e,R,l)),r("compositionend",e)},U=n.getCurrentInstance();n.watch(()=>t.value,()=>{var e;"value"in U.vnode.props,h.value=(e=t.value)!==null&&e!==void 0?e:""});const N=e=>{var a;C.triggerFocus((a=c.value)===null||a===void 0?void 0:a.textArea,e)},G=()=>{var e,a;(a=(e=c.value)===null||e===void 0?void 0:e.textArea)===null||a===void 0||a.blur()},$=(e,a)=>{h.value!==e&&(t.value===void 0?h.value=e:n.nextTick(()=>{var l,s,u;c.value.textArea.value!==d.value&&((u=(l=c.value)===null||l===void 0?void 0:(s=l.instance).update)===null||u===void 0||u.call(s))}),n.nextTick(()=>{a&&a()}))},H=e=>{e.keyCode===13&&r("pressEnter",e),r("keydown",e)},J=e=>{const{onBlur:a}=t;a==null||a(e),T.onFieldBlur()},R=e=>{r("update:value",e.target.value),r("change",e),r("input",e),T.onFieldChange()},Q=e=>{C.resolveOnChange(c.value.textArea,e,R),$("",()=>{N()})},E=e=>{const{composing:a}=e.target;let l=e.target.value;if(x.value=!!(e.isComposing||a),!(x.value&&t.lazy||h.value===l)){if(I.value){const s=e.target,u=s.selectionStart>=t.maxlength+1||s.selectionStart===l.length||!s.selectionStart;l=O(u,d.value,l,t.maxlength)}C.resolveOnChange(e.currentTarget,e,R,l),$(l)}},W=()=>{var e,a;const{class:l}=i,{bordered:s=!0}=t,u=g.default(g.default(g.default({},le.default(t,["allowClear"])),i),{class:[{[`${o.value}-borderless`]:!s,[`${l}`]:l&&!f.value,[`${o.value}-sm`]:A.value==="small",[`${o.value}-lg`]:A.value==="large"},M.getStatusClassNames(o.value,D.value),q.value],disabled:F.value,showCount:null,prefixCls:o.value,onInput:E,onChange:E,onBlur:J,onKeydown:H,onCompositionstart:L,onCompositionend:K});return!((e=t.valueModifiers)===null||e===void 0)&&e.lazy&&delete u.onInput,n.createVNode(p.default,S.default(S.default({},u),{},{id:(a=u==null?void 0:u.id)!==null&&a!==void 0?a:T.id.value,ref:c,maxlength:t.maxlength}),null)};return b({focus:N,blur:G,resizableTextArea:c}),n.watchEffect(()=>{let e=C.fixControlledValue(h.value);!x.value&&I.value&&(t.value===null||t.value===void 0)&&(e=P(e,t.maxlength)),d.value=e}),()=>{var e;const{maxlength:a,bordered:l=!0,hidden:s}=t,{style:u,class:X}=i,Y=g.default(g.default(g.default({},t),i),{prefixCls:o.value,inputType:"text",handleReset:Q,direction:V.value,bordered:l,style:f.value?void 0:u,hashId:q.value,disabled:(e=t.disabled)!==null&&e!==void 0?e:F.value});let j=n.createVNode(Z.default,S.default(S.default({},Y),{},{value:d.value,status:t.status}),{element:W});if(f.value||m.hasFeedback){const k=[...d.value].length;let w="";typeof f.value=="object"?w=f.value.formatter({value:d.value,count:k,maxlength:a}):w=`${k}${I.value?` / ${a}`:""}`,j=n.createVNode("div",{hidden:s,class:te.default(`${o.value}-textarea`,{[`${o.value}-textarea-rtl`]:V.value==="rtl",[`${o.value}-textarea-show-count`]:f.value,[`${o.value}-textarea-in-form-item`]:m.isFormItemInput},`${o.value}-textarea-show-count`,X,q.value),style:u,"data-count":typeof w!="object"?w:void 0},[j,m.hasFeedback&&n.createVNode("span",{class:`${o.value}-textarea-suffix`},[m.feedbackIcon])])}return B(j)}}});exports.default=oe;
;