UNPKG

@progress/kendo-react-inputs

Version:

React Inputs offer a customizable interface for users to enter and pick different information. KendoReact Input package

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