908ae938b5
Co-authored-by: Cursor <cursoragent@cursor.com>
1 line
5.1 KiB
JavaScript
1 line
5.1 KiB
JavaScript
import{Cr as e,Dn as t,Fr as n,G as r,Hr as i,Mr as a,Nn as o,Nr as s,On as c,Vr as l,Yr as u,_n as d,a as f,ar as p,br as m,cr as h,d as g,f as _,fn as v,g as y,i as b,ln as ee,mr as x,o as S,on as C,p as w,qn as T,r as te,s as E,sr as D,tr as O,wn as k,xn as A,xr as j,y as M,yr as N}from"./index-Br7lTitF.js";var P=A({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))},maxHeight:{type:[Number,String],validator:e=>!isNaN(parseFloat(e))},maxRows:{type:[Number,String],validator:e=>!isNaN(parseFloat(e))},suffix:String,modelModifiers:Object,...b(),...T(E(),[`direction`]),..._()},`VTextarea`),F=d()({name:`VTextarea`,directives:{vIntersect:r},inheritAttrs:!1,props:P(),emits:{"click:control":e=>!0,"mousedown:control":e=>!0,"update:focused":e=>!0,"update:modelValue":e=>!0,"update:rows":e=>!0},setup(d,{attrs:_,emit:b,slots:T}){let E=ee(d,`modelValue`),{isFocused:A,focus:P,blur:F}=w(d),{onIntersect:ne}=te(d),re=D(()=>typeof d.counterValue==`function`?d.counterValue(E.value):(E.value||``).toString().length),ie=D(()=>{if(_.maxlength)return _.maxlength;if(!(!d.counter||typeof d.counter!=`number`&&typeof d.counter!=`string`))return d.counter}),I=l(),L=l(),R=i(``),z=l(),B=l(0),{platform:V}=C(),H=f(d),U=D(()=>d.persistentPlaceholder||A.value||d.active);function W(){H.isSuppressing.value&&H.update(),z.value!==document.activeElement&&z.value?.focus(),A.value||P()}function G(e){W(),b(`click:control`,e)}function K(e){b(`mousedown:control`,e)}function q(e){e.stopPropagation(),W(),m(()=>{E.value=``,k(d[`onClick:clear`],e)})}function J(e){let t=e.target;if(!d.modelModifiers?.trim){E.value=t.value;return}let n=t.value,r=t.selectionStart,i=t.selectionEnd;E.value=n,m(()=>{let e=0;n.trimStart().length===t.value.length&&(e=n.length-t.value.length),r!=null&&(t.selectionStart=r-e),i!=null&&(t.selectionEnd=i-e)})}let Y=l(),X=l(Number(d.rows)),Z=D(()=>[`plain`,`underlined`].includes(d.variant));s(()=>{d.autoGrow||(X.value=Number(d.rows))});function Q(){m(()=>{if(!z.value)return;if(V.value.firefox){B.value=12;return}let{offsetWidth:e,clientWidth:t}=z.value;B.value=Math.max(0,e-t)}),d.autoGrow&&m(()=>{if(!Y.value||!L.value)return;let e=getComputedStyle(Y.value),n=getComputedStyle(L.value.$el),r=parseFloat(e.getPropertyValue(`--v-field-padding-top`))+parseFloat(e.getPropertyValue(`--v-input-padding-top`))+parseFloat(e.getPropertyValue(`--v-field-padding-bottom`)),i=Y.value.scrollHeight,a=parseFloat(e.lineHeight),o=Math.max(parseFloat(d.rows)*a+r,parseFloat(n.getPropertyValue(`--v-input-control-height`))),s=d.maxHeight?parseFloat(d.maxHeight):parseFloat(d.maxRows)*a+r||1/0,l=t(i??0,o,s);X.value=Math.floor((l-r)/a),R.value=c(l)})}e(Q),a(E,Q),a(()=>d.rows,Q),a(()=>d.maxHeight,Q),a(()=>d.maxRows,Q),a(()=>d.density,Q),a(X,e=>{b(`update:rows`,e)});let $;return a(Y,e=>{e?($=new ResizeObserver(Q),$.observe(Y.value)):$?.disconnect()}),j(()=>{$?.disconnect()}),v(()=>{let e=!!(T.counter||d.counter||d.counterValue),t=!!(e||T.details),[i,a]=o(_),{modelValue:s,...l}=S.filterProps(d),f={...g.filterProps(d),"onClick:clear":q};return x(S,N({ref:I,modelValue:E.value,"onUpdate:modelValue":e=>E.value=e,class:[`v-textarea v-text-field`,{"v-textarea--prefixed":d.prefix,"v-textarea--suffixed":d.suffix,"v-text-field--prefixed":d.prefix,"v-text-field--suffixed":d.suffix,"v-textarea--auto-grow":d.autoGrow,"v-textarea--no-resize":d.noResize||d.autoGrow,"v-input--plain-underlined":Z.value},d.class],style:[{"--v-textarea-max-height":d.maxHeight?c(d.maxHeight):void 0,"--v-textarea-scroll-bar-width":c(B.value)},d.style]},i,l,{centerAffix:X.value===1&&!Z.value,focused:A.value,indentDetails:d.indentDetails??!Z.value}),{...T,default:({id:e,isDisabled:t,isDirty:i,isReadonly:o,isValid:s,hasDetails:c})=>x(g,N({ref:L,style:{"--v-textarea-control-height":R.value},onClick:G,onMousedown:K,"onClick:prependInner":d[`onClick:prependInner`],"onClick:appendInner":d[`onClick:appendInner`]},f,{id:e.value,active:U.value||i.value,labelId:`${e.value}-label`,centerAffix:X.value===1&&!Z.value,dirty:i.value||d.dirty,disabled:t.value,focused:A.value,details:c.value,error:s.value===!1}),{...T,default:({props:{class:i,...s},controlRef:c})=>h(p,null,[d.prefix&&h(`span`,{class:`v-text-field__prefix`},[d.prefix]),n(h(`textarea`,N({ref:e=>z.value=c.value=e,class:i,value:E.value,onInput:J,autofocus:d.autofocus,readonly:o.value,disabled:t.value,placeholder:d.placeholder,rows:d.rows,name:H.fieldName.value,autocomplete:H.fieldAutocomplete.value,onFocus:W,onBlur:F,"aria-labelledby":`${e.value}-label`},s,a),null),[[r,{handler:ne},null,{once:!0}]]),d.autoGrow&&n(h(`textarea`,{class:u([i,`v-textarea__sizer`]),id:`${s.id}-sizer`,"onUpdate:modelValue":e=>E.value=e,ref:Y,readonly:!0,"aria-hidden":`true`},null),[[O,E.value]]),d.suffix&&h(`span`,{class:`v-text-field__suffix`},[d.suffix])])}),details:t?t=>h(p,null,[T.details?.(t),e&&h(p,null,[h(`span`,null,null),x(y,{active:d.persistentCounter||A.value,value:re.value,max:ie.value,disabled:d.disabled},T.counter)])]):void 0})}),M({},I,L,z)}});export{F as t}; |