import{bH as ie,ad as re,ae as oe,r as se,by as ce,z as V,cL as de,al as fe,bo as H,ap as ve,P as me,ao as F,M as pe,o as be,af as ge,E as X,i as a,X as E,F as A,D as Ne,l as Y,aC as Z,av as he,aw as we,bC as Pe,at as xe}from"./index-i_vOnwSy.js";const Ve=50,De=500;function Ie(n){let{toggleUpDown:M}=n,l=-1,d=-1;ie(m);function D(i){m(),p(i),l=window.setTimeout(()=>{d=window.setInterval(()=>p(i),Ve)},De)}function m(){window.clearTimeout(l),window.clearInterval(d)}function p(i){M(i==="up")}return{holdStart:D,holdStop:m}}const Ce=oe({controlVariant:{type:String,default:"default"},inset:Boolean,hideInput:Boolean,modelValue:{type:Number,default:null},min:{type:Number,default:Number.MIN_SAFE_INTEGER},max:{type:Number,default:Number.MAX_SAFE_INTEGER},step:{type:Number,default:1},precision:{type:Number,default:0},...we(Pe(),["modelValue","validationValue"])},"VNumberInput"),Se=re()({name:"VNumberInput",props:{...Ce()},emits:{"update:modelValue":n=>!0},setup(n,M){let{slots:l}=M;const d=se(),{holdStart:D,holdStop:m}=Ie({toggleUpDown:z}),p=ce(n),i=V(()=>p.isDisabled.value||p.isReadonly.value),{isFocused:L,focus:j,blur:q}=de(n);function b(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:n.precision;const s=t==null?String(e):e.toFixed(t);return L.value?Number(s).toString():s}const u=fe(n,"modelValue",null,e=>e??null,e=>e==null?e??null:H(Number(e),n.min,n.max)),g=ve(null);me(()=>{L.value&&!i.value||(u.value==null?g.value=null:isNaN(u.value)||(g.value=b(u.value)))});const o=V({get:()=>g.value,set(e){e===null||e===""?(u.value=null,g.value=null):!isNaN(Number(e))&&Number(e)<=n.max&&Number(e)>=n.min&&(u.value=Number(e),g.value=e)}}),B=V(()=>i.value?!1:(u.value??0)+n.step<=n.max),R=V(()=>i.value?!1:(u.value??0)-n.step>=n.min),r=V(()=>n.hideInput?"stacked":n.controlVariant),U=F(()=>r.value==="split"?"$plus":"$collapse"),$=F(()=>r.value==="split"?"$minus":"$expand"),I=F(()=>r.value==="split"?"default":"small"),C=F(()=>r.value==="stacked"?"auto":"100%"),J={props:{onClick:y,onPointerup:S,onPointerdown:O}},Q={props:{onClick:y,onPointerup:S,onPointerdown:G}};pe(()=>n.precision,()=>ne()),be(()=>{_()});function K(e){if(e==null)return 0;const t=e.toString(),s=t.indexOf(".");return~s?t.length-s:0}function z(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0;if(i.value)return;if(u.value==null){o.value=b(H(0,n.min,n.max));return}let t=Math.max(K(u.value),K(n.step));n.precision!=null&&(t=Math.max(t,n.precision)),e?B.value&&(o.value=b(u.value+n.step,t)):R.value&&(o.value=b(u.value-n.step,t))}function W(e){var N,h,k,w;if(!e.data)return;const t=(N=e.target)==null?void 0:N.value,s=(h=e.target)==null?void 0:h.selectionStart,T=(k=e.target)==null?void 0:k.selectionEnd,v=t?t.slice(0,s)+e.data+t.slice(T):e.data;/^-?(\d+(\.\d*)?|(\.\d+)|\d*|\.)$/.test(v)||e.preventDefault(),n.precision!=null&&(((w=v.split(".")[1])==null?void 0:w.length)>n.precision&&e.preventDefault(),n.precision===0&&v.includes(".")&&e.preventDefault())}async function ee(e){["Enter","ArrowLeft","ArrowRight","Backspace","Delete","Tab"].includes(e.key)||e.ctrlKey||["ArrowDown","ArrowUp"].includes(e.key)&&(e.preventDefault(),_(),await xe(),e.key==="ArrowDown"?z(!1):z())}function y(e){e.stopPropagation()}function S(e){const t=e.currentTarget;t==null||t.releasePointerCapture(e.pointerId),e.preventDefault(),e.stopPropagation(),m()}function O(e){const t=e.currentTarget;t==null||t.setPointerCapture(e.pointerId),e.preventDefault(),e.stopPropagation(),D("up")}function G(e){const t=e.currentTarget;t==null||t.setPointerCapture(e.pointerId),e.preventDefault(),e.stopPropagation(),D("down")}function _(){if(i.value||!d.value)return;const e=d.value.value;e&&!isNaN(Number(e))?o.value=b(H(Number(e),n.min,n.max)):o.value=null}function ne(){if(!i.value){if(u.value===null||isNaN(u.value)){o.value=null;return}o.value=n.precision==null?String(u.value):u.value.toFixed(n.precision)}}function te(){if(!i.value){if(u.value===null||isNaN(u.value)){o.value=null;return}o.value=u.value.toString()}}function ue(){j(),te()}function le(){q(),_()}return ge(()=>{const{modelValue:e,...t}=X.filterProps(n);function s(){return l.increment?a(Z,{key:"increment-defaults",defaults:{VBtn:{disabled:!B.value,flat:!0,height:C.value,size:I.value,icon:U.value}}},{default:()=>[l.increment(J)]}):a(Y,{disabled:!B.value,flat:!0,key:"increment-btn",height:C.value,"data-testid":"increment","aria-hidden":"true",icon:U.value,onClick:y,onPointerup:S,onPointerdown:O,size:I.value,tabindex:"-1"},null)}function T(){return l.decrement?a(Z,{key:"decrement-defaults",defaults:{VBtn:{disabled:!R.value,flat:!0,height:C.value,size:I.value,icon:$.value}}},{default:()=>[l.decrement(Q)]}):a(Y,{disabled:!R.value,flat:!0,key:"decrement-btn",height:C.value,"data-testid":"decrement","aria-hidden":"true",icon:$.value,size:I.value,tabindex:"-1",onClick:y,onPointerup:S,onPointerdown:G},null)}function v(){return a("div",{class:"v-number-input__control"},[T(),a(E,{vertical:r.value!=="stacked"},null),s()])}function N(){return!n.hideInput&&!n.inset?a(E,{vertical:!0},null):void 0}const h=r.value==="split"?a("div",{class:"v-number-input__control"},[a(E,{vertical:!0},null),s()]):n.reverse||r.value==="hidden"?void 0:a(A,null,[N(),v()]),k=l["append-inner"]||h,w=r.value==="split"?a("div",{class:"v-number-input__control"},[T(),a(E,{vertical:!0},null)]):n.reverse&&r.value!=="hidden"?a(A,null,[v(),N()]):void 0,ae=l["prepend-inner"]||w;return a(X,Ne({ref:d,modelValue:o.value,"onUpdate:modelValue":f=>o.value=f,validationValue:u.value,onBeforeinput:W,onFocus:ue,onBlur:le,onKeydown:ee,class:["v-number-input",{"v-number-input--default":r.value==="default","v-number-input--hide-input":n.hideInput,"v-number-input--inset":n.inset,"v-number-input--reverse":n.reverse,"v-number-input--split":r.value==="split","v-number-input--stacked":r.value==="stacked"},n.class]},t,{style:n.style,inputmode:"decimal"}),{...l,"append-inner":k?function(){var x;for(var f=arguments.length,P=new Array(f),c=0;c<f;c++)P[c]=arguments[c];return a(A,null,[(x=l["append-inner"])==null?void 0:x.call(l,...P),h])}:void 0,"prepend-inner":ae?function(){var x;for(var f=arguments.length,P=new Array(f),c=0;c<f;c++)P[c]=arguments[c];return a(A,null,[w,(x=l["prepend-inner"])==null?void 0:x.call(l,...P)])}:void 0})}),he({},d)}});export{Se as V};