2023-09-06 18:53:48 +08:00

2 lines
5.6 KiB
JavaScript

import{w as _,d as T}from"./index-331c6de1.js";import{E as ue}from"./index-c1eb81db.js";import{b as se,o as oe,a as d,C as h,k as E,p as ie,u as ce,r as de,aj as me,E as L,D as pe,ak as fe}from"./index-e37943c3.js";import{C as J,I as k,U as y,d as Y}from"./event-e06a23af.js";import{d as X,b as be,r as ve,R as Ne,c as V,w as Ve,o as ye,a1 as he,e as f,f as z,Q as j,u as t,n as K,y as M,x as Q,v as S,H as W,_ as Ie,m as we,l as ge}from"./base-d77b0726.js";import{u as _e}from"./index-a20d1a31.js";import{u as Ee}from"./index-6245131d.js";import{v as q}from"./index-edeae892.js";const Se=se({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:oe,controls:{type:Boolean,default:!0},controlsPosition:{type:String,default:"",values:["","right"]},valueOnClear:{type:[String,Number,null],validator:l=>l===null||d(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={[J]:(l,P)=>P!==l,blur:l=>l instanceof FocusEvent,focus:l=>l instanceof FocusEvent,[k]:l=>d(l)||h(l),[y]:l=>d(l)||h(l)},Pe=["aria-label","onKeydown"],Ae=["aria-label","onKeydown"],Ce=X({name:"ElInputNumber"}),Fe=X({...Ce,props:Se,emits:ke,setup(l,{expose:P,emit:c}){const a=l,{t:O}=_e(),m=be("input-number"),v=ve(),s=Ne({currentValue:a.modelValue,userInput:null}),{formItem:b}=Ee(),U=V(()=>d(a.modelValue)&&a.modelValue<=a.min),R=V(()=>d(a.modelValue)&&a.modelValue>=a.max),Z=V(()=>{const e=G(a.step);return E(a.precision)?Math.max(G(a.modelValue),e):(e>a.precision,a.precision)}),A=V(()=>a.controls&&a.controlsPosition==="right"),$=ie(),N=ce(),C=V(()=>{if(s.userInput!==null)return s.userInput;let e=s.currentValue;if(h(e))return"";if(d(e)){if(Number.isNaN(e))return"";E(a.precision)||(e=e.toFixed(a.precision))}return e}),F=(e,n)=>{if(E(n)&&(n=Z.value),n===0)return Math.round(e);let r=String(e);const o=r.indexOf(".");if(o===-1||!r.replace(".","").split("")[o+n])return e;const w=r.length;return r.charAt(w-1)==="5"&&(r=`${r.slice(0,Math.max(0,w-1))}6`),Number.parseFloat(Number(r).toFixed(n))},G=e=>{if(h(e))return 0;const n=e.toString(),r=n.indexOf(".");let o=0;return r!==-1&&(o=n.length-r-1),o},H=(e,n=1)=>d(e)?F(e+a.step*n):s.currentValue,x=()=>{if(a.readonly||N.value||R.value)return;const e=Number(C.value)||0,n=H(e);I(n),c(k,s.currentValue)},B=()=>{if(a.readonly||N.value||U.value)return;const e=Number(C.value)||0,n=H(e,-1);I(n),c(k,s.currentValue)},D=(e,n)=>{const{max:r,min:o,step:u,precision:p,stepStrictly:w,valueOnClear:g}=a;let i=Number(e);if(h(e)||Number.isNaN(i))return null;if(e===""){if(g===null)return null;i=we(g)?{min:o,max:r}[g]:g}return w&&(i=F(Math.round(i/u)*u,p)),E(p)||(i=F(i,p)),(i>r||i<o)&&(i=i>r?r:o,n&&c(y,i)),i},I=(e,n=!0)=>{var r;const o=s.currentValue,u=D(e);if(o!==u){if(!n){c(y,u);return}s.userInput=null,c(y,u),c(J,u,o),a.validateEvent&&((r=b==null?void 0:b.validate)==null||r.call(b,"change").catch(p=>Y())),s.currentValue=u}},ee=e=>{s.userInput=e;const n=e===""?null:Number(e);c(k,n),I(n,!1)},ne=e=>{const n=e!==""?Number(e):"";(d(n)&&!Number.isNaN(n)||e==="")&&I(n),s.userInput=null},te=()=>{var e,n;(n=(e=v.value)==null?void 0:e.focus)==null||n.call(e)},re=()=>{var e,n;(n=(e=v.value)==null?void 0:e.blur)==null||n.call(e)},ae=e=>{c("focus",e)},le=e=>{var n;c("blur",e),a.validateEvent&&((n=b==null?void 0:b.validate)==null||n.call(b,"blur").catch(r=>Y()))};return Ve(()=>a.modelValue,e=>{const n=D(s.userInput),r=D(e,!0);!d(n)&&(!n||n!==r)&&(s.currentValue=r,s.userInput=null)},{immediate:!0}),ye(()=>{var e;const{min:n,max:r,modelValue:o}=a,u=(e=v.value)==null?void 0:e.input;if(u.setAttribute("role","spinbutton"),Number.isFinite(r)?u.setAttribute("aria-valuemax",String(r)):u.removeAttribute("aria-valuemax"),Number.isFinite(n)?u.setAttribute("aria-valuemin",String(n)):u.removeAttribute("aria-valuemin"),u.setAttribute("aria-valuenow",String(s.currentValue)),u.setAttribute("aria-disabled",String(N.value)),!d(o)&&o!=null){let p=Number(o);Number.isNaN(p)&&(p=null),c(y,p)}}),he(()=>{var e;const n=(e=v.value)==null?void 0:e.input;n==null||n.setAttribute("aria-valuenow",`${s.currentValue}`)}),P({focus:te,blur:re}),(e,n)=>(f(),z("div",{class:K([t(m).b(),t(m).m(t($)),t(m).is("disabled",t(N)),t(m).is("without-controls",!e.controls),t(m).is("controls-right",t(A))]),onDragstart:n[0]||(n[0]=T(()=>{},["prevent"]))},[e.controls?j((f(),z("span",{key:0,role:"button","aria-label":t(O)("el.inputNumber.decrease"),class:K([t(m).e("decrease"),t(m).is("disabled",t(U))]),onKeydown:_(B,["enter"])},[M(t(L),null,{default:Q(()=>[t(A)?(f(),S(t(de),{key:0})):(f(),S(t(me),{key:1}))]),_:1})],42,Pe)),[[t(q),B]]):W("v-if",!0),e.controls?j((f(),z("span",{key:1,role:"button","aria-label":t(O)("el.inputNumber.increase"),class:K([t(m).e("increase"),t(m).is("disabled",t(R))]),onKeydown:_(x,["enter"])},[M(t(L),null,{default:Q(()=>[t(A)?(f(),S(t(pe),{key:0})):(f(),S(t(fe),{key:1}))]),_:1})],42,Ae)),[[t(q),x]]):W("v-if",!0),M(t(ue),{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($),max:e.max,min:e.min,name:e.name,label:e.label,"validate-event":!1,onKeydown:[_(T(x,["prevent"]),["up"]),_(T(B,["prevent"]),["down"])],onBlur:le,onFocus:ae,onInput:ee,onChange:ne},null,8,["id","step","model-value","placeholder","readonly","disabled","size","max","min","name","label","onKeydown"])],34))}});var xe=Ie(Fe,[["__file","/home/runner/work/element-plus/element-plus/packages/components/input-number/src/input-number.vue"]]);const Re=ge(xe);export{Re as E};