index-DwGBNOfQ.js 5.6 KB

1
  1. import{c as Z,aw as ee,ax as ne,d as c,b1 as ae,i as ue,aK as le,f as te,ai as re,B as D,b5 as ie,a8 as E,s as oe,j as de}from"./index-BfrwV8vW.js";import{i as S}from"./index.es-C_BsA6yR.js";import{I as se}from"./index-3G62FRZJ.js";import{d as ce,u as fe,j as w,e as N,w as R,D as s,F as ve}from"./vue-vendor-BdC0yijC.js";var me=Object.defineProperty,z=Object.getOwnPropertySymbols,be=Object.prototype.hasOwnProperty,ye=Object.prototype.propertyIsEnumerable,F=(n,l,a)=>l in n?me(n,l,{enumerable:!0,configurable:!0,writable:!0,value:a}):n[l]=a,_e=(n,l)=>{for(var a in l||(l={}))be.call(l,a)&&F(n,a,l[a]);if(z)for(var a of z(l))ye.call(l,a)&&F(n,a,l[a]);return n};const xe=800,ge=150;S.enableBoundaryChecking(!1);var I=ce({name:"InputNumber",props:{modelValue:Number,defaultValue:Number,mode:{type:String,default:"embed"},precision:Number,step:{type:Number,default:1},disabled:{type:Boolean,default:!1},error:{type:Boolean,default:!1},max:{type:Number,default:1/0},min:{type:Number,default:-1/0},formatter:{type:Function},parser:{type:Function},placeholder:String,hideButton:{type:Boolean,default:!1},size:{type:String},allowClear:{type:Boolean,default:!1},modelEvent:{type:String,default:"change"},readOnly:{type:Boolean,default:!1},inputAttrs:{type:Object}},emits:{"update:modelValue":n=>!0,change:(n,l)=>!0,focus:n=>!0,blur:n=>!0,clear:n=>!0,input:(n,l,a)=>!0,keydown:n=>!0},setup(n,{emit:l,slots:a}){var V;const{size:A,disabled:j}=fe(n),i=Z("input-number"),O=w(),{mergedSize:K,mergedDisabled:f,eventHandlers:T}=ee({size:A,disabled:j}),{mergedSize:_}=ne(K),x=N(()=>{if(c(n.precision)){const e=`${n.step}`.split(".")[1],u=e&&e.length||0;return Math.max(u,n.precision)}}),g=e=>{var u,t;if(!c(e))return"";const d=x.value?e.toFixed(x.value):String(e);return(t=(u=n.formatter)==null?void 0:u.call(n,d))!=null?t:d},o=w(g((V=n.modelValue)!=null?V:n.defaultValue)),r=N(()=>{var e,u;if(!o.value)return;const t=Number((u=(e=n.parser)==null?void 0:e.call(n,o.value))!=null?u:o.value);return Number.isNaN(t)?void 0:t}),m=w(c(r.value)&&r.value<=n.min),b=w(c(r.value)&&r.value>=n.max);let y=0;const v=()=>{y&&(window.clearTimeout(y),y=0)},B=e=>{if(!ue(e))return c(n.min)&&e<n.min&&(e=n.min),c(n.max)&&e>n.max&&(e=n.max),c(x.value)?S.round(e,x.value):e},p=e=>{let u=!1,t=!1;c(e)&&(e<=n.min&&(u=!0),e>=n.max&&(t=!0)),b.value!==t&&(b.value=t),m.value!==u&&(m.value=u)},P=()=>{const e=B(r.value),u=g(e);(e!==r.value||o.value!==u)&&(o.value=u),l("update:modelValue",e)};R(()=>[n.max,n.min],()=>{P(),p(r.value)});const M=(e,u)=>{if(f.value||e==="plus"&&b.value||e==="minus"&&m.value)return;let t;c(r.value)?t=B(S[e](r.value,n.step)):t=n.min===-1/0?0:n.min,o.value=g(t),p(t),l("update:modelValue",t),l("change",t,u)},h=(e,u,t=!1)=>{var d;e.preventDefault(),!n.readOnly&&((d=O.value)==null||d.focus(),M(u,e),t&&(y=window.setTimeout(()=>e.target.dispatchEvent(e),y?ge:xe)))},k=(e,u)=>{var t,d,$,C;e=e.trim().replace(/。/g,"."),e=(d=(t=n.parser)==null?void 0:t.call(n,e))!=null?d:e,(c(Number(e))||/^(\.|-)$/.test(e))&&(o.value=(C=($=n.formatter)==null?void 0:$.call(n,e))!=null?C:e,p(r.value),l("input",r.value,o.value,u),n.modelEvent==="input"&&(l("update:modelValue",r.value),l("change",r.value,u)))},H=e=>{l("focus",e)},U=(e,u)=>{u instanceof MouseEvent&&!e||(P(),l("change",r.value,u))},W=e=>{l("blur",e)},Y=e=>{var u,t;o.value="",l("update:modelValue",void 0),l("change",void 0,e),(t=(u=T.value)==null?void 0:u.onChange)==null||t.call(u,e),l("clear",e)},L=ae(new Map([[E.ARROW_UP,e=>{e.preventDefault(),!n.readOnly&&M("plus",e)}],[E.ARROW_DOWN,e=>{e.preventDefault(),!n.readOnly&&M("minus",e)}]])),G=e=>{l("keydown",e),e.defaultPrevented||L(e)};R(()=>n.modelValue,e=>{e!==r.value&&(o.value=g(e),p(e))});const q=()=>{var e,u,t;return n.readOnly?null:s(ve,null,[a.suffix&&s("div",{class:`${i}-suffix`},[(e=a.suffix)==null?void 0:e.call(a)]),s("div",{class:`${i}-step`},[s("button",{class:[`${i}-step-button`,{[`${i}-step-button-disabled`]:f.value||b.value}],type:"button",tabindex:"-1",disabled:f.value||b.value,onMousedown:d=>h(d,"plus",!0),onMouseup:v,onMouseleave:v},[a.plus?(u=a.plus)==null?void 0:u.call(a):s(le,null,null)]),s("button",{class:[`${i}-step-button`,{[`${i}-step-button-disabled`]:f.value||m.value}],type:"button",tabindex:"-1",disabled:f.value||m.value,onMousedown:d=>h(d,"minus",!0),onMouseup:v,onMouseleave:v},[a.minus?(t=a.minus)==null?void 0:t.call(a):s(te,null,null)])])])},J=N(()=>[i,`${i}-mode-${n.mode}`,`${i}-size-${_.value}`,{[`${i}-readonly`]:n.readOnly}]),Q=()=>s(D,{size:_.value,tabindex:"-1",class:`${i}-step-button`,disabled:f.value||m.value,onMousedown:e=>h(e,"minus",!0),onMouseup:v,onMouseleave:v},{icon:()=>s(ie,null,null)}),X=()=>s(D,{size:_.value,tabindex:"-1",class:`${i}-step-button`,disabled:f.value||b.value,onMousedown:e=>h(e,"plus",!0),onMouseup:v,onMouseleave:v},{icon:()=>s(re,null,null)});return{inputRef:O,render:()=>{const e=n.mode==="embed"?{prepend:a.prepend,prefix:a.prefix,suffix:n.hideButton?a.suffix:q,append:a.append}:{prepend:n.hideButton?a.prepend:Q,prefix:a.prefix,suffix:a.suffix,append:n.hideButton?a.append:X};return s(se,{key:`__arco__${n.mode}`,ref:O,class:J.value,type:"text",allowClear:n.allowClear,size:_.value,modelValue:o.value,placeholder:n.placeholder,disabled:f.value,readonly:n.readOnly,error:n.error,inputAttrs:_e({role:"spinbutton","aria-valuemax":n.max,"aria-valuemin":n.min,"aria-valuenow":o.value},n.inputAttrs),onInput:k,onFocus:H,onBlur:W,onClear:Y,onChange:U,onKeydown:G},e)}}},methods:{focus(){var n;(n=this.inputRef)==null||n.focus()},blur(){var n;(n=this.inputRef)==null||n.blur()}},render(){return this.render()}});const Ne=Object.assign(I,{install:(n,l)=>{oe(n,l);const a=de(l);n.component(a+I.name,I)}});export{Ne as I};