mirror of
https://github.com/ZeroCatDev/Classworks.git
synced 2025-09-05 01:19:23 +00:00
2 lines
4.4 KiB
JavaScript
2 lines
4.4 KiB
JavaScript
import{g as ae,p as ne,cd as _,a8 as le,f as y,r as v,s as oe,w as ue,af as ie,aa as m,bg as re,j as se,aN as ce,k as I,G as r,H as R,a0 as N,aJ as E,ce as de,l as fe,aP as ve,ag as S,m as me,bj as xe,aQ as ge}from"./index-B1_BiCfs.js";import{u as he,a as U,b as j,c as we,j as Ve,d as ye,m as Ce}from"./VTextField-CVE6iehY.js";const Pe=ne({autoGrow:Boolean,autofocus:Boolean,counter:[Boolean,Number,String],counterValue:Function,prefix:String,placeholder:String,persistentPlaceholder:Boolean,persistentCounter:Boolean,noResize:Boolean,rows:{type:[Number,String],default:5,validator:e=>!isNaN(parseFloat(e))},maxRows:{type:[Number,String],validator:e=>!isNaN(parseFloat(e))},suffix:String,modelModifiers:Object,...Ce(),...ye()},"VTextarea"),ke=ae()({name:"VTextarea",directives:{vIntersect:_},inheritAttrs:!1,props:Pe(),emits:{"click:control":e=>!0,"mousedown:control":e=>!0,"update:focused":e=>!0,"update:modelValue":e=>!0},setup(e,D){let{attrs:C,emit:B,slots:l}=D;const a=le(e,"modelValue"),{isFocused:f,focus:O,blur:$}=he(e),{onIntersect:J}=Ve(e),Q=y(()=>typeof e.counterValue=="function"?e.counterValue(a.value):(a.value||"").toString().length),q=y(()=>{if(C.maxlength)return C.maxlength;if(!(!e.counter||typeof e.counter!="number"&&typeof e.counter!="string"))return e.counter}),H=v(),x=v(),M=oe(""),g=v(),K=y(()=>e.persistentPlaceholder||f.value||e.active);function P(){var t;g.value!==document.activeElement&&((t=g.value)==null||t.focus()),f.value||O()}function L(t){P(),B("click:control",t)}function W(t){B("mousedown:control",t)}function X(t){t.stopPropagation(),P(),S(()=>{a.value="",ge(e["onClick:clear"],t)})}function Y(t){var u;const n=t.target;if(a.value=n.value,(u=e.modelModifiers)!=null&&u.trim){const d=[n.selectionStart,n.selectionEnd];S(()=>{n.selectionStart=d[0],n.selectionEnd=d[1]})}}const s=v(),h=v(Number(e.rows)),F=y(()=>["plain","underlined"].includes(e.variant));ue(()=>{e.autoGrow||(h.value=Number(e.rows))});function c(){e.autoGrow&&S(()=>{if(!s.value||!x.value)return;const t=getComputedStyle(s.value),n=getComputedStyle(x.value.$el),u=parseFloat(t.getPropertyValue("--v-field-padding-top"))+parseFloat(t.getPropertyValue("--v-input-padding-top"))+parseFloat(t.getPropertyValue("--v-field-padding-bottom")),d=s.value.scrollHeight,w=parseFloat(t.lineHeight),b=Math.max(parseFloat(e.rows)*w+u,parseFloat(n.getPropertyValue("--v-input-control-height"))),k=parseFloat(e.maxRows)*w+u||1/0,i=xe(d??0,b,k);h.value=Math.floor((i-u)/w),M.value=me(i)})}ie(c),m(a,c),m(()=>e.rows,c),m(()=>e.maxRows,c),m(()=>e.density,c);let o;return m(s,t=>{t?(o=new ResizeObserver(c),o.observe(s.value)):o==null||o.disconnect()}),re(()=>{o==null||o.disconnect()}),se(()=>{const t=!!(l.counter||e.counter||e.counterValue),n=!!(t||l.details),[u,d]=ce(C),{modelValue:w,...b}=U.filterProps(e),k=j.filterProps(e);return I(U,N({ref:H,modelValue:a.value,"onUpdate:modelValue":i=>a.value=i,class:["v-textarea v-text-field",{"v-textarea--prefixed":e.prefix,"v-textarea--suffixed":e.suffix,"v-text-field--prefixed":e.prefix,"v-text-field--suffixed":e.suffix,"v-textarea--auto-grow":e.autoGrow,"v-textarea--no-resize":e.noResize||e.autoGrow,"v-input--plain-underlined":F.value},e.class],style:e.style},u,b,{centerAffix:h.value===1&&!F.value,focused:f.value}),{...l,default:i=>{let{id:V,isDisabled:z,isDirty:A,isReadonly:Z,isValid:p}=i;return I(j,N({ref:x,style:{"--v-textarea-control-height":M.value},onClick:L,onMousedown:W,"onClick:clear":X,"onClick:prependInner":e["onClick:prependInner"],"onClick:appendInner":e["onClick:appendInner"]},k,{id:V.value,active:K.value||A.value,centerAffix:h.value===1&&!F.value,dirty:A.value||e.dirty,disabled:z.value,focused:f.value,error:p.value===!1}),{...l,default:ee=>{let{props:{class:G,...T}}=ee;return r(R,null,[e.prefix&&r("span",{class:"v-text-field__prefix"},[e.prefix]),E(r("textarea",N({ref:g,class:G,value:a.value,onInput:Y,autofocus:e.autofocus,readonly:Z.value,disabled:z.value,placeholder:e.placeholder,rows:e.rows,name:e.name,onFocus:P,onBlur:$},T,d),null),[[_,{handler:J},null,{once:!0}]]),e.autoGrow&&E(r("textarea",{class:fe([G,"v-textarea__sizer"]),id:`${T.id}-sizer`,"onUpdate:modelValue":te=>a.value=te,ref:s,readonly:!0,"aria-hidden":"true"},null),[[de,a.value]]),e.suffix&&r("span",{class:"v-text-field__suffix"},[e.suffix])])}})},details:n?i=>{var V;return r(R,null,[(V=l.details)==null?void 0:V.call(l,i),t&&r(R,null,[r("span",null,null),I(we,{active:e.persistentCounter||f.value,value:Q.value,max:q.value,disabled:e.disabled},l.counter)])])}:void 0})}),ve({},H,x,g)}});export{ke as V};
|