1
0
mirror of https://github.com/ZeroCatDev/Classworks.git synced 2025-09-03 16:19:22 +00:00
Classworks/assets/VTextarea-GxradEKI.js

2 lines
4.5 KiB
JavaScript

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