UNPKG

@react-input/number-format

Version:

React input component for formatted number input with locale-specific.

2 lines (1 loc) 5.66 kB
import{b as e,c as i,d as a,e as c,g as t,f as n,u as l,_ as r,l as o,r as s,h as d,i as g,j as u,n as v}from"./helpers-BCsiD6pI.js";import{Input as p,SyntheticChangeError as m}from"@react-input/core";var f,h=["locales"],x=["locales"];function E(e,i){var a={minusSign:"-",decimal:".",digits:"\\d",signBackwards:!1},c=g(e,i),t=g(e.replace(",","."),a);return e=u(c||t,c?i:a),e=v(e,i)}var R=function(f){function R(){var i,a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return c(this,R),(i=t(this,R,[{init:function(e){var i=e.initialValue,c=e.controlled,t=a.locales,n=r(a,h);if(!c&&i.length>0){var l=o(t),g=s(t,n),u=E(i,l);(u=u.replace(/(.+)(-)$/,"$2$1")).length>0&&(i=d(u,{locales:t,options:n,localizedValues:l,resolvedOptions:g}))}return{value:i,options:{locales:t,options:n}}},tracking:function(i){var c=i.inputType,t=i.previousValue,n=i.previousOptions,l=i.addedValue,p=i.changeStart,f=i.changeEnd,h=a.locales,R=r(a,x),S=o(n.locales),$=o(h),w=s(h,R),V=RegExp("^[".concat($.minusSign,"]$")),O=RegExp("^[,".concat($.decimal,"]$"));if(l=V.test(l)?l.replace(V,"-"):O.test(l)?l.replace(O,"."):E(l,$),"insert"===c&&!l)throw new m("The added value does not contain allowed characters.");var b=t.slice(0,p);b=g(b,S),b=u(b,S),b=v(b,S);var k=t.slice(f);k=g(k,S),k=u(k,S);var F=b+l+(k=v(k,S));if(F=F.replace(/[.](?=.*[.])/g,""),$.signBackwards)F=F.replace(/[-](?=.*[-.\d])/g,"");else{var y=F.search(/[-.\d]/);F=F.replace(/[-]/g,(function(e,i){return-1!==y&&i>y?"":e}))}F=F.replace(/(.+)(-)$/,"$2$1");var z="-"===l&&p===f,B=t.includes(S.minusSign),D=F.includes("-");if(z&&B&&D&&(F=F.replace("-","")),!z||B||D||(F="-".concat(F)),/\..*0$/.test(F)){var T="([".concat(S.digits,"])([").concat(S.decimal,"])([").concat(S.digits,"]+)"),j=RegExp(T).exec(t);if(null!==j){var I,N=j[3],L=Number(j[5])+j[1].length+j[2].length,P=null!==(I=s(n.locales,n.options).minimumFractionDigits)&&void 0!==I?I:0;p>=L&&f<L+(P||1)&&N.length<=(P||1)&&(F=F.replace(/0+$/g,""))}}var _="deleteBackward"===c||"deleteForward"===c;if(_&&t.includes(S.decimal)&&!F.includes(".")){var q,A="[".concat(S.digits[0],"]*[^").concat(S.decimal).concat(S.digits,"]*$"),C="[^".concat(S.digits[0],"]"),G=null===(q=RegExp(A).exec(t))||void 0===q?void 0:q[0].replace(RegExp(C,"g"),"").length;void 0!==G&&void 0!==w.minimumFractionDigits&&(G>w.minimumFractionDigits&&(G=w.minimumFractionDigits),F=F.replace(RegExp("0{0,".concat(G,"}$")),""))}var H="",J=""===F||"-"===F||/^-?(\.0*)?$/.test(F);_&&J||(H=d(F,{locales:h,options:R,localizedValues:$,resolvedOptions:w}));var K=function(i){var a=i.localizedValues,c=i.previousLocalizedValues,t=i.resolvedOptions,n=i.inputType,l=i.value,r=i.previousValue,o=i.addedValue,s=i.changeStart,d=i.changeEnd;if(r.includes(a.decimal)&&"."===o){var g=l.indexOf(a.decimal);if(-1!==g){var u=g+1;return{start:u,end:u}}}if(r.includes(a.minusSign)&&"-"===o){var v=l.indexOf(a.minusSign);if(-1!==v){var p=v+(a.signBackwards?0:1);return{start:p,end:p}}}if("deleteBackward"===n||"deleteForward"===n){var m=r.split(c.decimal),f=e(m,1)[0];if(d<=f.length&&!RegExp("[".concat(c.digits.slice(1),"]")).test(f)){var h=f.indexOf(c.digits[0]),x=f.lastIndexOf(c.digits[0]);if(-1!==h&&-1!==x){var E=x+1;if((s!==h||d!==E)&&d>h&&d<=E)return{start:h,end:E}}}}for(var R=void 0!==t.maximumIntegerDigits?Number(t.maximumIntegerDigits):void 0,S=l.length,$=0,w=0,V=!1;w<s;w++){var O=c.digits.includes(r[w]),b=r[w]===c.decimal;!V&&(b||O&&r[w]!==c.digits[0])&&(V=!0),V&&(b||O)&&($+=1)}if("insert"===n){var k=r.slice(0,s),F=r.indexOf(c.decimal),y=k.replace(RegExp("[^".concat(c.decimal).concat(c.digits,"]"),"g"),"").replace(RegExp("^".concat(c.digits[0],"+"),"g"),"").split(c.decimal),z=e(y,2),B=z[0],D=z[1],T=void 0===D?"":D,j=-1!==F&&d<=F?"\\.":"\\.(?=.*\\.)",I=o.replace(RegExp("-|".concat(j),"g"),""),N=I.includes("."),L=I.split("."),P=e(L,2),_=P[0],q=P[1],A=void 0===q?"":q;if(-1!==F&&s>F)if(N){$-=1;var C=B+T;void 0!==R&&C.length>R&&($=R,B=C.slice(0,R))}else A=_,_="";var G="[".concat(c.decimal).concat(c.digits.slice(1),"]");RegExp(G).test(k)||(_=_.replace(/^0+/g,""));var H=void 0!==R?R-B.length:void 0;$+=(_.slice(0,H)+(N?".":"")+A).replace(RegExp("[^\\.".concat(a.decimal,"\\d").concat(a.digits,"]+"),"g"),"").length}for(var J=0,K=!1,M=0;J<l.length;J++){var Q=a.digits.includes(l[J]),U=l[J]===a.decimal;if(!K&&(U||Q&&l[J]!==a.digits[0])&&(K=!0),K&&M>=$){S=J;break}K&&(U||Q)&&(M+=1)}if("deleteForward"===n){var W,X="\\".concat(a.minusSign),Y="^.{".concat(S,"}[^").concat(a.decimal).concat(a.digits,"]*[").concat(X).concat(a.decimal).concat(a.digits,"]"),Z=null===(W=RegExp(Y).exec(l))||void 0===W?void 0:W[0].length;void 0!==Z&&(S=Z-1)}else{var ee,ie="deleteBackward"===n?"\\".concat(a.minusSign):"",ae="[".concat(ie).concat(a.decimal).concat(a.digits,"][^").concat(a.decimal).concat(a.digits,"]*.{").concat(l.length-S,"}$"),ce=null===(ee=RegExp(ae).exec(l))||void 0===ee?void 0:ee.index;void 0!==ce&&(S=ce+1)}var te="[\\".concat(a.minusSign).concat(a.decimal).concat(a.digits.slice(1),"]"),ne="[\\".concat(a.minusSign).concat(a.decimal).concat(a.digits,"][^").concat(a.decimal).concat(a.digits,"]*$"),le=l.search(RegExp(te)),re=l.search(RegExp(ne));return-1!==le&&S<le?S=le:-1!==re&&S>re+1&&(S=re+1),{start:S,end:S}}({localizedValues:$,previousLocalizedValues:S,resolvedOptions:w,inputType:c,value:H,previousValue:t,addedValue:l,changeStart:p,changeEnd:f});return{value:H,selectionStart:K.start,selectionEnd:K.end,options:{locales:h,options:R}}}}])).format=function(e){return n(e,a)},i.unformat=function(e){return l(e,a.locales)},i}return i(R,p),a(R)}();f=R,Object.defineProperty(f.prototype,Symbol.toStringTag,{writable:!1,enumerable:!1,configurable:!0,value:"NumberFormat"});export{R as default};