@progress/kendo-vue-inputs
Version:
9 lines (8 loc) • 7.82 kB
JavaScript
/**
* @license
*-------------------------------------------------------------------------------------------
* Copyright © 2025 Progress Software Corporation. All rights reserved.
* Licensed under commercial license. See LICENSE.md in the package root for more information
*-------------------------------------------------------------------------------------------
*/
;Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const S=11111111111111e-7,be=.31111111111111117,Le=1,w=1,ee=0,V=/\d/,ne=15,he=(t,n)=>t!==void 0?t:n,m=(t,n,r)=>t===null&&t===void 0?"":typeof t=="string"?t:r.formatNumber(t,n),v=t=>(String(t).split(".")[1]||"").length,te=(t,n)=>Math.max(v(t),v(n)),re=t=>Math.min(t,ne),G=(t,n)=>{const r=re(n);return parseFloat(t.toFixed(r))},Ie=(t,n,r,e,u,s,a)=>{const o=te(t||0,r||0),c=U(G((t||0)+(r||0),o),e,u);n.eventValue=c,n.currentLooseValue=m(c,s,a),n.selectionStart=n.selectionEnd=N(n.currentLooseValue,V)},Ne=(t,n,r,e,u,s,a)=>{const o=te(t||0,r||0),c=U(G((t||0)-(r||0),o),e,u);n.eventValue=c,n.currentLooseValue=m(c,s,a),n.selectionStart=n.selectionEnd=N(n.currentLooseValue,V)},U=(t,n,r)=>t==null?t:!(t>1||t<1||t===1)||r!==void 0&&n!==void 0&&r<n?null:(r!==void 0&&t>r&&(t=r),n!==void 0&&t<n&&(t=n),t),oe=(t,n)=>{const r=n.findIndex(([u,s])=>!!s&&t.indexOf(s)===t.length-s.length);if(r===-1)return-1;const e=n[r][1];return t.length-e.length},se=(t,n)=>{const r=n.findIndex(([u,s])=>!!u&&t.indexOf(u)===0);return r===-1?-1:n[r][0].length},ue=(t,n,r)=>{const e=oe(t,n);if(e!==-1&&r.selectionStart>e){r.selectionStart=r.selectionEnd=e;return}r.selectionStart>t.length&&(r.selectionStart=r.selectionEnd=t.length);const u=se(t,n);u!==-1&&r.selectionStart<u&&(r.selectionStart=r.selectionEnd=u),r.selectionStart===-1&&(r.selectionStart=r.selectionEnd=0)},p=(t,n,r,e)=>{t.selectionStart=t.selectionEnd=n,ue(r,e,t)},y=(t,n,r,e)=>{t.eventValue=e.parseNumber(t.prevLooseValue,n),t.currentLooseValue=t.prevLooseValue,t.valueIsCorrected=!0,p(t,t.selectionStart,t.currentLooseValue,r)},ie=(t,n)=>{const r=String(t.currentLooseValue),e=String(t.prevLooseValue);return r.split(n.minusSign).length!==e.split(n.minusSign).length&&r.length===e.length+n.minusSign.length},ce=(t,n)=>{const r=String(t.currentLooseValue),e=String(t.prevLooseValue);return r.indexOf(n.minusSign)===-1&&e.indexOf(n.minusSign)!==-1},le=(t,n)=>String(t.currentLooseValue).split(n.decimal).length>2,ae=(t,n)=>{const r=n.formatNumber(S,t),e=n.formatNumber(-S,t),u=n.formatNumber(ee,t),s=n.formatNumber(w,t),a=O(r),o=O(e),c=O(u),l=O(s),P=R(r),E=R(e),b=R(u),L=R(s);return{positiveInfo:[a,P],negativeInfo:[o,E],zeroInfo:[c,b],oneInfo:[l,L]}},de=(t,n)=>{const r=n.formatNumber(S,t),e=n.formatNumber(-S,t),u=n.formatNumber(ee,t),s=n.formatNumber(w,t),a=n.numberSymbols(),o=new RegExp(`[\\d\\${a.decimal}${a.group}]`,"g");return[r,e,u,s].map(l=>l.replace(o,"")).join("").split("").filter((l,P,E)=>E.indexOf(l)===P).join("")},C=(t,n)=>{const r=t.indexOf(n.decimal);return r>-1?r:N(t,V)},z=t=>t.split("").reverse().join(""),N=(t,n)=>t.length-z(t).search(n),O=t=>t.split(t[t.search(V)])[0],R=t=>{const n=z(t);return z(n.split(n[n.search(V)])[0])},F=(t,n)=>t.search(n),$=(t,n)=>{const r=t.indexOf(n);return r>-1?t.length-r-1:0},j=(t,n,r,e,u)=>{const s=t.replace(u,"")[0]==="0",a=n.replace(u,"")[0]==="0";if(s&&!a)return r-1;if(a&&e)return r+1;let o=0;for(let l=0;l<r;l++)V.test(t.charAt(l))&&o++;let c=0;for(;o>0&&n.length>c;)V.test(n.charAt(c))&&o--,c++;return c},Pe=(t,n,r)=>{const e={...t},{prevLooseValue:u}=e,s=r.numberSymbols(),a=de(n,r),o=String(e.currentLooseValue),c=String(u),l=new RegExp(`[^\\d\\${s.decimal}]`,"g"),P=new RegExp(`[^\\d\\${s.decimal}\\${s.group}]`,"g"),E=new RegExp(`[\\d\\${s.decimal}\\${s.group}]`),b=o.replace(l,""),L=F(o,V),D=L===-1?-1:N(o,V),ge=o.indexOf(s.decimal),X=(o.substring(0,L)+o.substring(L,D).replace(P,"")+o.substring(D,o.length)).split("").filter(x=>a.indexOf(x)!==-1||x.search(E)!==-1).join(""),Z=r.formatNumber(be,n).replace(l,""),W=Z.indexOf(s.decimal),I=W>-1?Z.length-W-1:0,k=r.formatNumber(Le,n).replace(l,""),q=k.indexOf(s.decimal),M=q>-1?k.length-q-1:0,{positiveInfo:fe,negativeInfo:me,zeroInfo:Ve,oneInfo:xe}=ae(n,r),g=[fe,me,Ve,xe],pe=g.findIndex(x=>x.findIndex(h=>!!h)!==-1)!==1,A=o.length>0&&o.length<c.length,H=n&&n[0]==="p"&&o&&o.indexOf(s.percentSign)===-1;if(!e.isPaste){if(o==="")return e.eventValue=null,e.currentLooseValue="",e;if(e.currentLooseValue===s.minusSign&&r.formatNumber(-0,n)!==c)return e.eventValue=-0,e.currentLooseValue=m(e.eventValue,n,r),p(e,C(e.currentLooseValue,s),e.currentLooseValue,g),e;if(ie(e,s)){const f=r.parseNumber(u,n);e.eventValue=-(f!==null?f:0),e.currentLooseValue=m(e.eventValue,n,r);const i=F(e.currentLooseValue,V),d=F(c,V);return p(e,e.selectionEnd-1+(i-d),e.currentLooseValue,g),e}if(ce(e,s))return e.eventValue=r.parseNumber(e.currentLooseValue,n),p(e,e.selectionStart,e.currentLooseValue,g),e;if(e.currentLooseValue===s.decimal){e.eventValue=0;const f=m(e.eventValue,n,r);if(M===0&&I>0){const i=N(f,V);e.currentLooseValue=f.substring(0,i)+s.decimal+f.substring(i)}else e.currentLooseValue=f;return p(e,C(e.currentLooseValue,s)+1,e.currentLooseValue,g),e}if(le(e,s))return y(e,n,g,r),e;if(H)return e.eventValue=r.parseNumber(o,n)/100,e.currentLooseValue=m(e.eventValue,n,r),e;if(String(e.currentLooseValue).replace(/[^\d]/g,"").length>ne||b!==o&&o&&pe&&g.findIndex(([i,d])=>{const _=o.indexOf(i),B=o.indexOf(d),J=_===0,K=B===o.length-d.length,Q=_+i.length!==L&&L!==-1&&o[_+i.length]!==s.decimal,Y=B!==D&&D!==-1&&o[B-1]!==s.decimal;return i&&d?Q||Y?!1:J&&K:i?Q?!1:J:d?Y?!1:K:!1})===-1)return y(e,n,g,r),e;if(b[b.length-1]===s.decimal&&I>0)return e.eventValue=r.parseNumber(o,n),e.currentLooseValue=X,e;if(e.currentLooseValue&&u&&(a+s.decimal+s.group).split("").findIndex(i=>o.split("").filter(d=>d===i).length<c.split("").filter(d=>d===i).length&&o.length+1===c.length?!(i===s.decimal&&$(c.replace(l,""),s.decimal)===0):!1)>-1)return e.eventValue=r.parseNumber(t.prevLooseValue,n),e.currentLooseValue=t.prevLooseValue,e;const h=$(b,s.decimal),T=b[b.length-1]==="0";if(A&&T&&h<M)return e.eventValue=r.parseNumber(e.currentLooseValue,n),e.currentLooseValue=m(e.eventValue,n,r),e;if(h>0){const f=o.substring(0,ge);if(T&&(!f||c.indexOf(f)!==0)){e.eventValue=r.parseNumber(e.currentLooseValue,n);const i=m(e.eventValue,n,r);return p(e,j(o,i,e.selectionEnd,A,l),i,g),e.currentLooseValue=i,e}if(h>I){const i=o.indexOf(s.decimal),d=o.substring(0,i)+o.substring(i,i+1+I)+o.substring(D,String(e.currentLooseValue).length);return e.eventValue=r.parseNumber(d,n),e.currentLooseValue=d,p(e,e.selectionStart,d,g),e}if(M!==I&&h<=I&&T)return e.eventValue=r.parseNumber(e.currentLooseValue,n),e.currentLooseValue=X,e;if(h<M)return e.eventValue=r.parseNumber(e.currentLooseValue,n),e.currentLooseValue=m(e.eventValue,n,r),e}}if(e.eventValue=r.parseNumber(e.currentLooseValue,n),H&&(e.eventValue=e.eventValue/100),typeof e.eventValue=="number"){const x=m(e.eventValue,n,r);o.length===1?p(e,C(x,s),x,g):p(e,j(o,x,e.selectionEnd,A,l),x,g),e.currentLooseValue=x}else e.currentLooseValue=m(r.parseNumber(b),n,r);return e};exports.changeBasedSelection=j;exports.decreaseValue=Ne;exports.formatValue=m;exports.fractionLength=v;exports.getDecimalCount=$;exports.getFirstNumberIndex=F;exports.getFormatPrefixSufix=ae;exports.getFormatSymbols=de;exports.getInitialPosition=C;exports.getLastNumberIndex=N;exports.getMaxCursorPosition=oe;exports.getMinCursorPosition=se;exports.getPrefix=O;exports.getStateOrPropsValue=he;exports.getSuffix=R;exports.increaseValue=Ie;exports.isDecimalDuplicated=le;exports.isMinusSymbolAdded=ie;exports.isMinusSymbolRemoved=ce;exports.limitPrecision=re;exports.rangeSelection=ue;exports.rangeValue=U;exports.reverseString=z;exports.sanitizeNumber=Pe;exports.setInvalid=y;exports.setSelection=p;exports.toFixedPrecision=G;