1
0
mirror of https://github.com/ZeroCatDev/Classworks.git synced 2025-12-08 13:49:37 +00:00
Classworks/assets/VTextarea-DTZJ2fR2.js

2 lines
4.9 KiB
JavaScript

import{g as re,p as se,bf as G,$ as ce,a1 as b,W as v,X as de,aH as fe,be as ve,ah as me,a2 as m,b1 as xe,c as ge,aO as he,d as p,i as r,F as M,E as z,I as U,b4 as we,e as Ve,ar as O,ab as ye,a3 as P,bz as be,aP as Pe}from"./index-UWNvEtdO.js";import{a as Ce,j as Fe,b as W,c as $,d as ke,k as Ie,e as Re,f as Se,l as Ne}from"./VTextField-DrEjs8Br.js";const Ae=se({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,...Ne(),...Se(),...Re()},"VTextarea"),ze=re()({name:"VTextarea",directives:{vIntersect:G},inheritAttrs:!1,props:Ae(),emits:{"click:control":e=>!0,"mousedown:control":e=>!0,"update:focused":e=>!0,"update:modelValue":e=>!0,"update:rows":e=>!0},setup(e,j){let{attrs:C,emit:F,slots:n}=j;const l=ce(e,"modelValue"),{isFocused:x,focus:X,blur:q}=Ce(e),{onIntersect:J}=Ie(e),K=b(()=>typeof e.counterValue=="function"?e.counterValue(l.value):(l.value||"").toString().length),L=b(()=>{if(C.maxlength)return C.maxlength;if(!(!e.counter||typeof e.counter!="number"&&typeof e.counter!="string"))return e.counter}),B=v(),h=v(),H=de(""),s=v(),k=v(0),{platform:Q}=fe(),w=Fe(e),Y=b(()=>e.persistentPlaceholder||x.value||e.active);function I(){var t;w.isSuppressing.value&&w.update(),s.value!==document.activeElement&&((t=s.value)==null||t.focus()),x.value||X()}function Z(t){I(),F("click:control",t)}function ee(t){F("mousedown:control",t)}function te(t){t.stopPropagation(),I(),P(()=>{l.value="",Pe(e["onClick:clear"],t)})}function ae(t){var u;const a=t.target;if(l.value=a.value,(u=e.modelModifiers)!=null&&u.trim){const f=[a.selectionStart,a.selectionEnd];P(()=>{a.selectionStart=f[0],a.selectionEnd=f[1]})}}const c=v(),g=v(Number(e.rows)),R=b(()=>["plain","underlined"].includes(e.variant));ve(()=>{e.autoGrow||(g.value=Number(e.rows))});function d(){P(()=>{if(!s.value)return;if(Q.value.firefox){k.value=12;return}const{offsetWidth:t,clientWidth:a}=s.value;k.value=Math.max(0,t-a)}),e.autoGrow&&P(()=>{if(!c.value||!h.value)return;const t=getComputedStyle(c.value),a=getComputedStyle(h.value.$el),u=parseFloat(t.getPropertyValue("--v-field-padding-top"))+parseFloat(t.getPropertyValue("--v-input-padding-top"))+parseFloat(t.getPropertyValue("--v-field-padding-bottom")),f=c.value.scrollHeight,V=parseFloat(t.lineHeight),S=Math.max(parseFloat(e.rows)*V+u,parseFloat(a.getPropertyValue("--v-input-control-height"))),N=parseFloat(e.maxRows)*V+u||1/0,i=be(f??0,S,N);g.value=Math.floor((i-u)/V),H.value=O(i)})}me(d),m(l,d),m(()=>e.rows,d),m(()=>e.maxRows,d),m(()=>e.density,d),m(g,t=>{F("update:rows",t)});let o;return m(c,t=>{t?(o=new ResizeObserver(d),o.observe(c.value)):o==null||o.disconnect()}),xe(()=>{o==null||o.disconnect()}),ge(()=>{const t=!!(n.counter||e.counter||e.counterValue),a=!!(t||n.details),[u,f]=he(C),{modelValue:V,...S}=W.filterProps(e),N={...$.filterProps(e),"onClick:clear":te};return p(W,z({ref:B,modelValue:l.value,"onUpdate:modelValue":i=>l.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":R.value},e.class],style:[{"--v-textarea-scroll-bar-width":O(k.value)},e.style]},u,S,{centerAffix:g.value===1&&!R.value,focused:x.value}),{...n,default:i=>{let{id:y,isDisabled:T,isDirty:_,isReadonly:le,isValid:ne,hasDetails:oe}=i;return p($,z({ref:h,style:{"--v-textarea-control-height":H.value},onClick:Z,onMousedown:ee,"onClick:prependInner":e["onClick:prependInner"],"onClick:appendInner":e["onClick:appendInner"]},N,{id:y.value,active:Y.value||_.value,centerAffix:g.value===1&&!R.value,dirty:_.value||e.dirty,disabled:T.value,focused:x.value,details:oe.value,error:ne.value===!1}),{...n,default:ue=>{let{props:{class:D,...E},controlRef:ie}=ue;return r(M,null,[e.prefix&&r("span",{class:"v-text-field__prefix"},[e.prefix]),U(r("textarea",z({ref:A=>s.value=ie.value=A,class:D,value:l.value,onInput:ae,autofocus:e.autofocus,readonly:le.value,disabled:T.value,placeholder:e.placeholder,rows:e.rows,name:w.fieldName.value,autocomplete:w.fieldAutocomplete.value,onFocus:I,onBlur:q},E,f),null),[[G,{handler:J},null,{once:!0}]]),e.autoGrow&&U(r("textarea",{class:Ve([D,"v-textarea__sizer"]),id:`${E.id}-sizer`,"onUpdate:modelValue":A=>l.value=A,ref:c,readonly:!0,"aria-hidden":"true"},null),[[we,l.value]]),e.suffix&&r("span",{class:"v-text-field__suffix"},[e.suffix])])}})},details:a?i=>{var y;return r(M,null,[(y=n.details)==null?void 0:y.call(n,i),t&&r(M,null,[r("span",null,null),p(ke,{active:e.persistentCounter||x.value,value:K.value,max:L.value,disabled:e.disabled},n.counter)])])}:void 0})}),ye({},B,h,s)}});export{ze as V};