物管理前端
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

13 lines
9.8 KiB

import{u as Me}from"./use-rtl-CRyak7TN.js";import{b as Se,c as X,u as Te,f as re,r as Pe}from"./light-Cua7cqmF.js";import{i as _e}from"./light-BULoejUF.js";import{u as De}from"./use-locale-CFjRjALw.js";import{u as Fe}from"./use-form-item-CNgNT5jP.js";import{u as Oe}from"./use-merged-state-CzrzZJbg.js";import{u as h}from"./use-memo-BgHp9YyU.js";import{_ as Ce}from"./Input-CFQSA5NN.js";import{r as Q,a as q}from"./resolve-slot-Dzko3qih.js";import{o as J}from"./delegate-CI_DDEu_.js";import{N as Y}from"./Icon-Ck7Ij_E6.js";import{d as ie,G as u,s as N,O as Ae,t as ke,c as Ue,Q as $e}from"./index-bVOhw2NF.js";import{X as Z}from"./Button-B7xQqa1N.js";import{A as Ee}from"./Add-CgLKrdZy.js";import{c as V}from"./call-f2ri57Kd.js";const He=ie({name:"Remove",render(){return u("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512"},u("line",{x1:"400",y1:"256",x2:"112",y2:"256",style:`
fill: none;
stroke: currentColor;
stroke-linecap: round;
stroke-linejoin: round;
stroke-width: 32px;
`}))}});function Le(t){return t==null||typeof t=="string"&&t.trim()===""?null:Number(t)}function je(t){return t.includes(".")&&(/^(-)?\d+.*(\.|0)$/.test(t)||/^\.\d+$/.test(t))}function H(t){return t==null?!0:!Number.isNaN(t)}function ee(t,l){return typeof t!="number"?"":l===void 0?String(t):t.toFixed(l)}function L(t){if(t===null)return null;if(typeof t=="number")return t;{const l=Number(t);return Number.isNaN(l)?null:l}}const ze=Se([X("input-number-suffix",`
display: inline-block;
margin-right: 10px;
`),X("input-number-prefix",`
display: inline-block;
margin-left: 10px;
`)]),te=800,ne=100,Ge=Object.assign(Object.assign({},re.props),{autofocus:Boolean,loading:{type:Boolean,default:void 0},placeholder:String,defaultValue:{type:Number,default:null},value:Number,step:{type:[Number,String],default:1},min:[Number,String],max:[Number,String],size:String,disabled:{type:Boolean,default:void 0},validator:Function,bordered:{type:Boolean,default:void 0},showButton:{type:Boolean,default:!0},buttonPlacement:{type:String,default:"right"},inputProps:Object,readonly:Boolean,clearable:Boolean,keyboard:{type:Object,default:{}},updateValueOnInput:{type:Boolean,default:!0},round:{type:Boolean,default:void 0},parse:Function,format:Function,precision:Number,status:String,"onUpdate:value":[Function,Array],onUpdateValue:[Function,Array],onFocus:[Function,Array],onBlur:[Function,Array],onClear:[Function,Array],onChange:[Function,Array]}),ot=ie({name:"InputNumber",props:Ge,setup(t){const{mergedBorderedRef:l,mergedClsPrefixRef:g,mergedRtlRef:P}=Te(t),o=re("InputNumber","-input-number",ze,_e,t,g),{localeRef:v}=De("InputNumber"),R=Fe(t),{mergedSizeRef:le,mergedDisabledRef:ue,mergedStatusRef:oe}=R,d=N(null),j=N(null),z=N(null),_=N(t.defaultValue),ae=Ae(t,"value"),f=Oe(ae,_),p=N(""),D=e=>{const n=String(e).split(".")[1];return n?n.length:0},se=e=>{const n=[t.min,t.max,t.step,e].map(r=>r===void 0?0:D(r));return Math.max(...n)},de=h(()=>{const{placeholder:e}=t;return e!==void 0?e:v.value.placeholder}),M=h(()=>{const e=L(t.step);return e!==null?e===0?1:Math.abs(e):1}),G=h(()=>{const e=L(t.min);return e!==null?e:null}),K=h(()=>{const e=L(t.max);return e!==null?e:null}),b=()=>{const{value:e}=f;if(H(e)){const{format:n,precision:r}=t;n?p.value=n(e):e===null||r===void 0||D(e)>r?p.value=ee(e,void 0):p.value=ee(e,r)}else p.value=String(e)};b();const y=e=>{const{value:n}=f;if(e===n){b();return}const{"onUpdate:value":r,onUpdateValue:i,onChange:s}=t,{nTriggerFormInput:c,nTriggerFormChange:x}=R;s&&V(s,e),i&&V(i,e),r&&V(r,e),_.value=e,c(),x()},a=({offset:e,doUpdateIfValid:n,fixPrecision:r,isInputing:i})=>{const{value:s}=p;if(i&&je(s))return!1;const c=(t.parse||Le)(s);if(c===null)return n&&y(null),null;if(H(c)){const x=D(c),{precision:B}=t;if(B!==void 0&&B<x&&!r)return!1;let m=Number.parseFloat((c+e).toFixed(B??se(c)));if(H(m)){const{value:$}=K,{value:E}=G;if($!==null&&m>$){if(!n||i)return!1;m=$}if(E!==null&&m<E){if(!n||i)return!1;m=E}return t.validator&&!t.validator(m)?!1:(n&&y(m),m)}}return!1},fe=h(()=>a({offset:0,doUpdateIfValid:!1,isInputing:!1,fixPrecision:!1})===!1),F=h(()=>{const{value:e}=f;if(t.validator&&e===null)return!1;const{value:n}=M;return a({offset:-n,doUpdateIfValid:!1,isInputing:!1,fixPrecision:!1})!==!1}),O=h(()=>{const{value:e}=f;if(t.validator&&e===null)return!1;const{value:n}=M;return a({offset:+n,doUpdateIfValid:!1,isInputing:!1,fixPrecision:!1})!==!1});function ce(e){const{onFocus:n}=t,{nTriggerFormFocus:r}=R;n&&V(n,e),r()}function me(e){var n,r;if(e.target===((n=d.value)===null||n===void 0?void 0:n.wrapperElRef))return;const i=a({offset:0,doUpdateIfValid:!0,isInputing:!1,fixPrecision:!0});if(i!==!1){const x=(r=d.value)===null||r===void 0?void 0:r.inputElRef;x&&(x.value=String(i||"")),f.value===i&&b()}else b();const{onBlur:s}=t,{nTriggerFormBlur:c}=R;s&&V(s,e),c(),$e(()=>{b()})}function ve(e){const{onClear:n}=t;n&&V(n,e)}function C(){const{value:e}=O;if(!e){U();return}const{value:n}=f;if(n===null)t.validator||y(W());else{const{value:r}=M;a({offset:r,doUpdateIfValid:!0,isInputing:!1,fixPrecision:!0})}}function A(){const{value:e}=F;if(!e){k();return}const{value:n}=f;if(n===null)t.validator||y(W());else{const{value:r}=M;a({offset:-r,doUpdateIfValid:!0,isInputing:!1,fixPrecision:!0})}}const pe=ce,he=me;function W(){if(t.validator)return null;const{value:e}=G,{value:n}=K;return e!==null?Math.max(0,e):n!==null?Math.min(0,n):0}function ge(e){ve(e),y(null)}function be(e){var n,r,i;!((n=z.value)===null||n===void 0)&&n.$el.contains(e.target)&&e.preventDefault(),!((r=j.value)===null||r===void 0)&&r.$el.contains(e.target)&&e.preventDefault(),(i=d.value)===null||i===void 0||i.activate()}let I=null,w=null,S=null;function k(){S&&(window.clearTimeout(S),S=null),I&&(window.clearInterval(I),I=null)}let T=null;function U(){T&&(window.clearTimeout(T),T=null),w&&(window.clearInterval(w),w=null)}function xe(){k(),S=window.setTimeout(()=>{I=window.setInterval(()=>{A()},ne)},te),J("mouseup",document,k,{once:!0})}function Ve(){U(),T=window.setTimeout(()=>{w=window.setInterval(()=>{C()},ne)},te),J("mouseup",document,U,{once:!0})}const ye=()=>{w||C()},Ie=()=>{I||A()};function we(e){var n,r;if(e.key==="Enter"){if(e.target===((n=d.value)===null||n===void 0?void 0:n.wrapperElRef))return;a({offset:0,doUpdateIfValid:!0,isInputing:!1,fixPrecision:!0})!==!1&&((r=d.value)===null||r===void 0||r.deactivate())}else if(e.key==="ArrowUp"){if(!O.value||t.keyboard.ArrowUp===!1)return;e.preventDefault(),a({offset:0,doUpdateIfValid:!0,isInputing:!1,fixPrecision:!0})!==!1&&C()}else if(e.key==="ArrowDown"){if(!F.value||t.keyboard.ArrowDown===!1)return;e.preventDefault(),a({offset:0,doUpdateIfValid:!0,isInputing:!1,fixPrecision:!0})!==!1&&A()}}function Be(e){p.value=e,t.updateValueOnInput&&!t.format&&!t.parse&&t.precision===void 0&&a({offset:0,doUpdateIfValid:!0,isInputing:!0,fixPrecision:!1})}ke(f,()=>{b()});const Ne={focus:()=>{var e;return(e=d.value)===null||e===void 0?void 0:e.focus()},blur:()=>{var e;return(e=d.value)===null||e===void 0?void 0:e.blur()},select:()=>{var e;return(e=d.value)===null||e===void 0?void 0:e.select()}},Re=Me("InputNumber",P,g);return Object.assign(Object.assign({},Ne),{rtlEnabled:Re,inputInstRef:d,minusButtonInstRef:j,addButtonInstRef:z,mergedClsPrefix:g,mergedBordered:l,uncontrolledValue:_,mergedValue:f,mergedPlaceholder:de,displayedValueInvalid:fe,mergedSize:le,mergedDisabled:ue,displayedValue:p,addable:O,minusable:F,mergedStatus:oe,handleFocus:pe,handleBlur:he,handleClear:ge,handleMouseDown:be,handleAddClick:ye,handleMinusClick:Ie,handleAddMousedown:Ve,handleMinusMousedown:xe,handleKeyDown:we,handleUpdateDisplayedValue:Be,mergedTheme:o,inputThemeOverrides:{paddingSmall:"0 8px 0 10px",paddingMedium:"0 8px 0 12px",paddingLarge:"0 8px 0 14px"},buttonThemeOverrides:Ue(()=>{const{self:{iconColorDisabled:e}}=o.value,[n,r,i,s]=Pe(e);return{textColorTextDisabled:`rgb(${n}, ${r}, ${i})`,opacityDisabled:`${s}`}})})},render(){const{mergedClsPrefix:t,$slots:l}=this,g=()=>u(Z,{text:!0,disabled:!this.minusable||this.mergedDisabled||this.readonly,focusable:!1,theme:this.mergedTheme.peers.Button,themeOverrides:this.mergedTheme.peerOverrides.Button,builtinThemeOverrides:this.buttonThemeOverrides,onClick:this.handleMinusClick,onMousedown:this.handleMinusMousedown,ref:"minusButtonInstRef"},{icon:()=>q(l["minus-icon"],()=>[u(Y,{clsPrefix:t},{default:()=>u(He,null)})])}),P=()=>u(Z,{text:!0,disabled:!this.addable||this.mergedDisabled||this.readonly,focusable:!1,theme:this.mergedTheme.peers.Button,themeOverrides:this.mergedTheme.peerOverrides.Button,builtinThemeOverrides:this.buttonThemeOverrides,onClick:this.handleAddClick,onMousedown:this.handleAddMousedown,ref:"addButtonInstRef"},{icon:()=>q(l["add-icon"],()=>[u(Y,{clsPrefix:t},{default:()=>u(Ee,null)})])});return u("div",{class:[`${t}-input-number`,this.rtlEnabled&&`${t}-input-number--rtl`]},u(Ce,{ref:"inputInstRef",autofocus:this.autofocus,status:this.mergedStatus,bordered:this.mergedBordered,loading:this.loading,value:this.displayedValue,onUpdateValue:this.handleUpdateDisplayedValue,theme:this.mergedTheme.peers.Input,themeOverrides:this.mergedTheme.peerOverrides.Input,builtinThemeOverrides:this.inputThemeOverrides,size:this.mergedSize,placeholder:this.mergedPlaceholder,disabled:this.mergedDisabled,readonly:this.readonly,round:this.round,textDecoration:this.displayedValueInvalid?"line-through":void 0,onFocus:this.handleFocus,onBlur:this.handleBlur,onKeydown:this.handleKeyDown,onMousedown:this.handleMouseDown,onClear:this.handleClear,clearable:this.clearable,inputProps:this.inputProps,internalLoadingBeforeSuffix:!0},{prefix:()=>{var o;return this.showButton&&this.buttonPlacement==="both"?[g(),Q(l.prefix,v=>v?u("span",{class:`${t}-input-number-prefix`},v):null)]:(o=l.prefix)===null||o===void 0?void 0:o.call(l)},suffix:()=>{var o;return this.showButton?[Q(l.suffix,v=>v?u("span",{class:`${t}-input-number-suffix`},v):null),this.buttonPlacement==="right"?g():null,P()]:(o=l.suffix)===null||o===void 0?void 0:o.call(l)}}))}});export{ot as _};