2 lines
5.7 KiB
JavaScript
2 lines
5.7 KiB
JavaScript
import{ah as ie,as as ce,aV as p,bt as Z,cm as F,aq as y,aU as h,d as ee,bF as de,ae as me,r as pe,U as be,aY as fe,O as V,aW as E,at as ve,aX as Ne,i as Ve,b as he,aG as ye,o as b,c as T,w as L,e as t,$ as z,p as _,ag as R,k as M,m as H,q as S,bC as Ie,cn as ge,Q,x as X,bD as we,bp as Ee,z as K,B as _e,al as Se,aF as Fe,ay as Pe,aB as j,am as Ae}from"./index-ce293e15.js";import{v as J}from"./index-04e76e1c.js";const Ce=ie({id:{type:String,default:void 0},step:{type:Number,default:1},stepStrictly:Boolean,max:{type:Number,default:Number.POSITIVE_INFINITY},min:{type:Number,default:Number.NEGATIVE_INFINITY},modelValue:Number,readonly:Boolean,disabled:Boolean,size:ce,controls:{type:Boolean,default:!0},controlsPosition:{type:String,default:"",values:["","right"]},valueOnClear:{type:[String,Number,null],validator:l=>l===null||p(l)||["min","max"].includes(l),default:null},name:String,label:String,placeholder:String,precision:{type:Number,validator:l=>l>=0&&l===Number.parseInt(`${l}`,10)},validateEvent:{type:Boolean,default:!0}}),ke={[Z]:(l,P)=>P!==l,blur:l=>l instanceof FocusEvent,focus:l=>l instanceof FocusEvent,[F]:l=>p(l)||y(l),[h]:l=>p(l)||y(l)},Be=["aria-label","onKeydown"],xe=["aria-label","onKeydown"],De=ee({name:"ElInputNumber"}),Te=ee({...De,props:Ce,emits:ke,setup(l,{expose:P,emit:c}){const r=l,{t:O}=de(),d=me("input-number"),v=pe(),u=be({currentValue:r.modelValue,userInput:null}),{formItem:f}=fe(),U=V(()=>p(r.modelValue)&&r.modelValue<=r.min),$=V(()=>p(r.modelValue)&&r.modelValue>=r.max),ne=V(()=>{const e=G(r.step);return E(r.precision)?Math.max(G(r.modelValue),e):(e>r.precision,r.precision)}),A=V(()=>r.controls&&r.controlsPosition==="right"),W=ve(),N=Ne(),C=V(()=>{if(u.userInput!==null)return u.userInput;let e=u.currentValue;if(y(e))return"";if(p(e)){if(Number.isNaN(e))return"";E(r.precision)||(e=e.toFixed(r.precision))}return e}),k=(e,n)=>{if(E(n)&&(n=ne.value),n===0)return Math.round(e);let a=String(e);const s=a.indexOf(".");if(s===-1||!a.replace(".","").split("")[s+n])return e;const g=a.length;return a.charAt(g-1)==="5"&&(a=`${a.slice(0,Math.max(0,g-1))}6`),Number.parseFloat(Number(a).toFixed(n))},G=e=>{if(y(e))return 0;const n=e.toString(),a=n.indexOf(".");let s=0;return a!==-1&&(s=n.length-a-1),s},Y=(e,n=1)=>p(e)?k(e+r.step*n):u.currentValue,B=()=>{if(r.readonly||N.value||$.value)return;const e=Number(C.value)||0,n=Y(e);I(n),c(F,u.currentValue),D()},x=()=>{if(r.readonly||N.value||U.value)return;const e=Number(C.value)||0,n=Y(e,-1);I(n),c(F,u.currentValue),D()},q=(e,n)=>{const{max:a,min:s,step:o,precision:m,stepStrictly:g,valueOnClear:w}=r;a<s&&Fe("InputNumber","min should not be greater than max.");let i=Number(e);if(y(e)||Number.isNaN(i))return null;if(e===""){if(w===null)return null;i=Pe(w)?{min:s,max:a}[w]:w}return g&&(i=k(Math.round(i/o)*o,m)),E(m)||(i=k(i,m)),(i>a||i<s)&&(i=i>a?a:s,n&&c(h,i)),i},I=(e,n=!0)=>{var a;const s=u.currentValue,o=q(e);if(!n){c(h,o);return}s===o&&e||(u.userInput=null,c(h,o),s!==o&&c(Z,o,s),r.validateEvent&&((a=f==null?void 0:f.validate)==null||a.call(f,"change").catch(m=>j())),u.currentValue=o)},te=e=>{u.userInput=e;const n=e===""?null:Number(e);c(F,n),I(n,!1)},ae=e=>{const n=e!==""?Number(e):"";(p(n)&&!Number.isNaN(n)||e==="")&&I(n),D(),u.userInput=null},re=()=>{var e,n;(n=(e=v.value)==null?void 0:e.focus)==null||n.call(e)},le=()=>{var e,n;(n=(e=v.value)==null?void 0:e.blur)==null||n.call(e)},ue=e=>{c("focus",e)},se=e=>{var n;u.userInput=null,c("blur",e),r.validateEvent&&((n=f==null?void 0:f.validate)==null||n.call(f,"blur").catch(a=>j()))},D=()=>{u.currentValue!==r.modelValue&&(u.currentValue=r.modelValue)},oe=e=>{document.activeElement===e.target&&e.preventDefault()};return Ve(()=>r.modelValue,(e,n)=>{const a=q(e,!0);u.userInput===null&&a!==n&&(u.currentValue=a)},{immediate:!0}),he(()=>{var e;const{min:n,max:a,modelValue:s}=r,o=(e=v.value)==null?void 0:e.input;if(o.setAttribute("role","spinbutton"),Number.isFinite(a)?o.setAttribute("aria-valuemax",String(a)):o.removeAttribute("aria-valuemax"),Number.isFinite(n)?o.setAttribute("aria-valuemin",String(n)):o.removeAttribute("aria-valuemin"),o.setAttribute("aria-valuenow",u.currentValue||u.currentValue===0?String(u.currentValue):""),o.setAttribute("aria-disabled",String(N.value)),!p(s)&&s!=null){let m=Number(s);Number.isNaN(m)&&(m=null),c(h,m)}}),ye(()=>{var e,n;const a=(e=v.value)==null?void 0:e.input;a==null||a.setAttribute("aria-valuenow",`${(n=u.currentValue)!=null?n:""}`)}),P({focus:re,blur:le}),(e,n)=>(b(),T("div",{class:z([t(d).b(),t(d).m(t(W)),t(d).is("disabled",t(N)),t(d).is("without-controls",!e.controls),t(d).is("controls-right",t(A))]),onDragstart:n[0]||(n[0]=K(()=>{},["prevent"]))},[e.controls?L((b(),T("span",{key:0,role:"button","aria-label":t(O)("el.inputNumber.decrease"),class:z([t(d).e("decrease"),t(d).is("disabled",t(U))]),onKeydown:_(x,["enter"])},[R(e.$slots,"decrease-icon",{},()=>[M(t(Q),null,{default:H(()=>[t(A)?(b(),S(t(Ie),{key:0})):(b(),S(t(ge),{key:1}))]),_:1})])],42,Be)),[[t(J),x]]):X("v-if",!0),e.controls?L((b(),T("span",{key:1,role:"button","aria-label":t(O)("el.inputNumber.increase"),class:z([t(d).e("increase"),t(d).is("disabled",t($))]),onKeydown:_(B,["enter"])},[R(e.$slots,"increase-icon",{},()=>[M(t(Q),null,{default:H(()=>[t(A)?(b(),S(t(we),{key:0})):(b(),S(t(Ee),{key:1}))]),_:1})])],42,xe)),[[t(J),B]]):X("v-if",!0),M(t(_e),{id:e.id,ref_key:"input",ref:v,type:"number",step:e.step,"model-value":t(C),placeholder:e.placeholder,readonly:e.readonly,disabled:t(N),size:t(W),max:e.max,min:e.min,name:e.name,label:e.label,"validate-event":!1,onWheel:oe,onKeydown:[_(K(B,["prevent"]),["up"]),_(K(x,["prevent"]),["down"])],onBlur:se,onFocus:ue,onInput:te,onChange:ae},null,8,["id","step","model-value","placeholder","readonly","disabled","size","max","min","name","label","onKeydown"])],34))}});var ze=Se(Te,[["__file","input-number.vue"]]);const Oe=Ae(ze);export{Oe as E};
|