1 |
- import{M as ae,N as re,O as le,P as ie,Q as oe,x as ce,E as V,S as w,U as de,H as se,G as fe,d as ue,V as ve,W as L,X as ge,Y as me,Z as x,$ as he,a0 as be,a1 as _e,a2 as xe,a3 as y,a4 as ye,i as o,K as I,a5 as we,L as S,a6 as ke,a7 as A,z as Ce,w as ze,a8 as Ie,D as Se}from"./index.2557005b.js";import{c as pe,C as Ve}from"./index.8d2bbd78.js";import{u as Me}from"./use-id.5ece45a3.js";function Te(e){return Array.isArray(e)?!e.length:e===0?!1:!e}function Ee(e,r){return!(r.required&&Te(e)||r.pattern&&!r.pattern.test(String(e)))}function Pe(e,r){return new Promise(l=>{const c=r.validator(e,r);if(ae(c)){c.then(l);return}l(c)})}function B(e,r){const{message:l}=r;return re(l)?l(e,r):l||""}function Fe({target:e}){e.composing=!0}function R({target:e}){e.composing&&(e.composing=!1,e.dispatchEvent(new Event("input")))}function Le(e,r){const l=le();e.style.height="auto";let c=e.scrollHeight;if(oe(r)){const{maxHeight:i,minHeight:v}=r;i!==void 0&&(c=Math.min(c,i)),v!==void 0&&(c=Math.max(c,v))}c&&(e.style.height=`${c}px`,ie(l))}function Ae(e){return e==="number"?{type:"text",inputmode:"decimal"}:e==="digit"?{type:"tel",inputmode:"numeric"}:{type:e}}function p(e){return[...e].length}function Be(e,r){return[...e].slice(0,r).join("")}const[Re,s]=ce("field"),Ne={id:String,name:String,leftIcon:String,rightIcon:String,autofocus:Boolean,clearable:Boolean,maxlength:V,formatter:Function,clearIcon:w("clear"),modelValue:de(""),inputAlign:String,placeholder:String,autocomplete:String,errorMessage:String,clearTrigger:w("focus"),formatTrigger:w("onChange"),error:{type:Boolean,default:null},disabled:{type:Boolean,default:null},readonly:{type:Boolean,default:null}},Oe=se({},pe,Ne,{rows:V,type:w("text"),rules:Array,autosize:[Boolean,Object],labelWidth:V,labelClass:fe,labelAlign:String,showWordLimit:Boolean,errorMessageAlign:String,colon:{type:Boolean,default:null}});var De=ue({name:Re,props:Oe,emits:["blur","focus","clear","keypress","click-input","click-left-icon","click-right-icon","update:modelValue"],setup(e,{emit:r,slots:l}){const c=Me(),i=ve({focused:!1,validateFailed:!1,validateMessage:""}),v=L(),k=L(),{parent:f}=ge(me),g=()=>{var t;return String((t=e.modelValue)!=null?t:"")},u=t=>{if(I(e[t]))return e[t];if(f&&I(f.props[t]))return f.props[t]},N=x(()=>{const t=u("readonly");if(e.clearable&&!t){const n=g()!=="",a=e.clearTrigger==="always"||e.clearTrigger==="focus"&&i.focused;return n&&a}return!1}),M=x(()=>k.value&&l.input?k.value():e.modelValue),O=t=>t.reduce((n,a)=>n.then(()=>{if(i.validateFailed)return;let{value:d}=M;if(a.formatter&&(d=a.formatter(d,a)),!Ee(d,a)){i.validateFailed=!0,i.validateMessage=B(d,a);return}if(a.validator)return Pe(d,a).then(_=>{_&&typeof _=="string"?(i.validateFailed=!0,i.validateMessage=_):_===!1&&(i.validateFailed=!0,i.validateMessage=B(d,a))})}),Promise.resolve()),m=()=>{i.validateFailed&&(i.validateFailed=!1,i.validateMessage="")},T=(t=e.rules)=>new Promise(n=>{m(),t?O(t).then(()=>{i.validateFailed?n({name:e.name,message:i.validateMessage}):n()}):n()}),C=t=>{if(f&&e.rules){const n=f.props.validateTrigger===t,a=e.rules.filter(d=>d.trigger?d.trigger===t:n);a.length&&T(a)}},D=t=>{const{maxlength:n}=e;if(I(n)&&p(t)>n){const a=g();return a&&p(a)===+n?a:Be(t,+n)}return t},h=(t,n="onChange")=>{if(t=D(t),e.type==="number"||e.type==="digit"){const a=e.type==="number";t=we(t,a,a)}e.formatter&&n===e.formatTrigger&&(t=e.formatter(t)),v.value&&v.value.value!==t&&(v.value.value=t),t!==e.modelValue&&r("update:modelValue",t)},W=t=>{t.target.composing||h(t.target.value)},z=()=>{var t;return(t=v.value)==null?void 0:t.blur()},j=()=>{var t;return(t=v.value)==null?void 0:t.focus()},b=()=>{const t=v.value;e.type==="textarea"&&e.autosize&&t&&Le(t,e.autosize)},q=t=>{i.focused=!0,r("focus",t),y(b),u("readonly")&&z()},$=t=>{u("readonly")||(i.focused=!1,h(g(),"onBlur"),r("blur",t),C("onBlur"),y(b),Ie())},E=t=>r("click-input",t),H=t=>r("click-left-icon",t),K=t=>r("click-right-icon",t),U=t=>{A(t),r("update:modelValue",""),r("clear",t)},P=x(()=>{if(typeof e.error=="boolean")return e.error;if(f&&f.props.showError&&i.validateFailed)return!0}),Y=x(()=>{const t=u("labelWidth");if(t)return{width:he(t)}}),G=t=>{t.keyCode===13&&(!(f&&f.props.submitOnEnter)&&e.type!=="textarea"&&A(t),e.type==="search"&&z()),r("keypress",t)},F=()=>e.id||`${c}-input`,J=()=>{const t=s("control",[u("inputAlign"),{error:P.value,custom:!!l.input,"min-height":e.type==="textarea"&&!e.autosize}]);if(l.input)return o("div",{class:t,onClick:E},[l.input()]);const n={id:F(),ref:v,name:e.name,rows:e.rows!==void 0?+e.rows:void 0,class:t,value:e.modelValue,disabled:u("disabled"),readonly:u("readonly"),autofocus:e.autofocus,placeholder:e.placeholder,autocomplete:e.autocomplete,"aria-labelledby":e.label?`${c}-label`:void 0,onBlur:$,onFocus:q,onInput:W,onClick:E,onChange:R,onKeypress:G,onCompositionend:R,onCompositionstart:Fe};return e.type==="textarea"?o("textarea",n,null):o("input",Ce(Ae(e.type),n),null)},Q=()=>{const t=l["left-icon"];if(e.leftIcon||t)return o("div",{class:s("left-icon"),onClick:H},[t?t():o(S,{name:e.leftIcon,classPrefix:e.iconPrefix},null)])},X=()=>{const t=l["right-icon"];if(e.rightIcon||t)return o("div",{class:s("right-icon"),onClick:K},[t?t():o(S,{name:e.rightIcon,classPrefix:e.iconPrefix},null)])},Z=()=>{if(e.showWordLimit&&e.maxlength){const t=p(g());return o("div",{class:s("word-limit")},[o("span",{class:s("word-num")},[t]),ze("/"),e.maxlength])}},ee=()=>{if(f&&f.props.showErrorMessage===!1)return;const t=e.errorMessage||i.validateMessage;if(t){const n=l["error-message"],a=u("errorMessageAlign");return o("div",{class:s("error-message",a)},[n?n({message:t}):t])}},te=()=>{const t=u("colon")?":":"";if(l.label)return[l.label(),t];if(e.label)return o("label",{id:`${c}-label`,for:F()},[e.label+t])},ne=()=>[o("div",{class:s("body")},[J(),N.value&&o(S,{name:e.clearIcon,class:s("clear"),onTouchstart:U},null),X(),l.button&&o("div",{class:s("button")},[l.button()])]),Z(),ee()];return be({blur:z,focus:j,validate:T,formValue:M,resetValidation:m}),_e(ke,{customValue:k,resetValidation:m,validateWithTrigger:C}),xe(()=>e.modelValue,()=>{h(g()),m(),C("onChange"),y(b)}),ye(()=>{h(g(),e.formatTrigger),y(b)}),()=>{const t=u("disabled"),n=u("labelAlign"),a=te(),d=Q();return o(Ve,{size:e.size,icon:e.leftIcon,class:s({error:P.value,disabled:t,[`label-${n}`]:n}),center:e.center,border:e.border,isLink:e.isLink,clickable:e.clickable,titleStyle:Y.value,valueClass:s("value"),titleClass:[s("label",[n,{required:e.required}]),e.labelClass],arrowDirection:e.arrowDirection},{icon:d?()=>d:null,title:a?()=>a:null,value:ne,extra:l.extra})}}});const $e=Se(De);export{$e as F,Ne as f};
|