/**
 * Skipped minification because the original files appears to be already minified.
 * Original file: /npm/react-currency-input-field@4.0.5/dist/cjs/index.js
 *
 * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files
 */
"use strict";var Se=Object.create;var q=Object.defineProperty;var Pe=Object.getOwnPropertyDescriptor;var Ne=Object.getOwnPropertyNames;var Me=Object.getPrototypeOf,Te=Object.prototype.hasOwnProperty;var Le=(r,t)=>{for(var e in t)q(r,e,{get:t[e],enumerable:!0})},pe=(r,t,e,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of Ne(t))!Te.call(r,i)&&i!==e&&q(r,i,{get:()=>t[i],enumerable:!(o=Pe(t,i))||o.enumerable});return r};var ke=(r,t,e)=>(e=r!=null?Se(Me(r)):{},pe(t||!r||!r.__esModule?q(e,"default",{value:r,enumerable:!0}):e,r)),ve=r=>pe(q({},"__esModule",{value:!0}),r);var je={};Le(je,{CurrencyInput:()=>B,cleanValue:()=>M,default:()=>We,formatValue:()=>O});module.exports=ve(je);var l=ke(require("react"));var g=r=>r.replace(/[-/\\^$*+?.()|[\]{}]/g,"\\$&");var Ae={k:1e3,m:1e6,b:1e9},fe=(r,t=".")=>{let e=new RegExp(`(\\d+(${g(t)}\\d*)?)([kmb])$`,"i"),o=r.match(e);if(o){let[,i,,s]=o,n=Ae[s.toLowerCase()];return Number(i.replace(t,"."))*n}};var me=(r,t=",")=>{let e=new RegExp(g(t),"g");return r.replace(e,"")};var ge=(r,t)=>{let e=g(t.join("")),o=new RegExp(`[^\\d${e}]`,"gi");return r.replace(o,"")};var M=({value:r,groupSeparator:t=",",decimalSeparator:e=".",allowDecimals:o=!0,decimalsLimit:i=2,allowNegativeValue:s=!0,disableAbbreviations:n=!1,prefix:u="",transformRawValue:f=d=>d})=>{let d=f(r);if(d==="-")return d;let y=n?[]:["k","m","b"],F=new RegExp(`((^|\\D)-\\d)|(-${g(u)})`).test(d),[v,R]=RegExp(`(\\d+)-?${g(u)}`).exec(r)||[],c=u?v?d.replace(v,"").concat(R):d.replace(u,""):d,$=me(c,t),x=ge($,[t,e,...y]),C=x;if(!n){if(y.some(S=>S===x.toLowerCase().replace(e,"")))return"";let N=fe(x,e);N&&(C=String(N))}let A=F&&s?"-":"";if(e&&C.includes(e)){let[N,S]=x.split(e),J=i&&S?S.slice(0,i):S,D=o?`${e}${J}`:"";return`${A}${N}${D}`}return`${A}${C}`};var ee=(r,t,e)=>{if(e!==void 0&&r.length>1){if(e===0)return r.replace(t,"");if(r.includes(t)){let[s,n]=r.split(t);if(n.length===e)return r;if(n.length>e)return`${s}${t}${n.slice(0,e)}`}let o=r.length>e?new RegExp(`(\\d+)(\\d{${e}})`):new RegExp("(\\d)(\\d+)"),i=r.match(o);if(i){let[,s,n]=i;return`${s}${t}${n}`}}return r};var j=(r,{groupSeparator:t=",",decimalSeparator:e="."})=>{let o=new RegExp(`\\d([^${g(t)}${g(e)}0-9]+)`),i=r.match(o);return i?i[1]:void 0};var O=r=>{let{value:t,decimalSeparator:e,intlConfig:o,decimalScale:i,prefix:s="",suffix:n=""}=r;if(t===""||t===void 0)return"";if(t==="-")return"-";let u=new RegExp(`^\\d?-${s?`${g(s)}?`:""}\\d`).test(t),f=e!=="."?De(t,e,u):t;e&&e!=="-"&&f.startsWith(e)&&(f="0"+f);let{locale:d,currency:y,...E}=o||{},F={...E,minimumFractionDigits:i||0,maximumFractionDigits:20},R=(o?new Intl.NumberFormat(d,{...F,...y&&{style:"currency",currency:y}}):new Intl.NumberFormat(void 0,F)).formatToParts(Number(f)),c=He(R,r),$=j(c,{...r}),x=t.slice(-1)===e?e:"",[,C]=f.match(RegExp("\\d+\\.(\\d+)"))||[];return i===void 0&&C&&e&&(c.includes(e)?c=c.replace(RegExp(`(\\d+)(${g(e)})(\\d+)`,"g"),`$1$2${C}`):$&&!n?c=c.replace($,`${e}${C}${$}`):c=`${c}${e}${C}`),n&&x?`${c}${x}${n}`:$&&x?c.replace($,`${x}${$}`):$&&n?c.replace($,`${x}${n}`):[c,x,n].join("")},De=(r,t,e)=>{let o=r;return t&&t!=="."&&(o=o.replace(RegExp(g(t),"g"),"."),e&&t==="-"&&(o=`-${o.slice(1)}`)),o},He=(r,{prefix:t,groupSeparator:e,decimalSeparator:o,decimalScale:i,disableGroupSeparators:s=!1})=>r.reduce((n,{type:u,value:f},d)=>d===0&&t?u==="minusSign"?[f,t]:u==="currency"?[...n,t]:[t,f]:u==="currency"?t?n:[...n,f]:u==="group"?s?n:[...n,e!==void 0?e:f]:u==="decimal"?i!==void 0&&i===0?n:[...n,o!==void 0?o:f]:u==="fraction"?[...n,i!==void 0?f.slice(0,i):f]:[...n,f],[""]).join("");var Ke={currencySymbol:"",groupSeparator:"",decimalSeparator:"",prefix:"",suffix:""},te=r=>{let{locale:t,currency:e,...o}=r||{};return(t?new Intl.NumberFormat(t,{...o,...e&&{currency:e,style:"currency"}}):new Intl.NumberFormat).formatToParts(1000.1).reduce((s,n,u)=>n.type==="currency"?u===0?{...s,currencySymbol:n.value,prefix:n.value}:{...s,currencySymbol:n.value,suffix:n.value}:n.type==="group"?{...s,groupSeparator:n.value}:n.type==="decimal"?{...s,decimalSeparator:n.value}:s,Ke)};var z=r=>RegExp(/\d/,"gi").test(r);var re=(r,t,e)=>{if(e===void 0||t===""||t===void 0||r===""||r===void 0)return r;if(!r.match(/\d/g))return"";let[o,i]=r.split(t);if(e===0)return o;let s=i||"";if(s.length<e)for(;s.length<e;)s+="0";else s=s.slice(0,e);return`${o}${t}${s}`};var ne=({selectionStart:r,value:t,lastKeyStroke:e,stateValue:o,groupSeparator:i})=>{let s=r,n=t;if(o&&s){let u=t.split("");return e==="Backspace"&&o[s]===i&&(u.splice(s-1,1),s-=1),e==="Delete"&&o[s]===i&&(u.splice(s,1),s+=1),n=u.join(""),{modifiedValue:n,cursorPosition:s}}return{modifiedValue:n,cursorPosition:r}};var B=(0,l.forwardRef)(({allowDecimals:r=!0,allowNegativeValue:t=!0,id:e,name:o,className:i,customInput:s,decimalsLimit:n,defaultValue:u,disabled:f=!1,maxLength:d,value:y,onValueChange:E,fixedDecimalLength:F,placeholder:v,decimalScale:R,prefix:c,suffix:$,intlConfig:x,step:C,min:A,max:N,disableGroupSeparators:S=!1,disableAbbreviations:J=!1,decimalSeparator:D,groupSeparator:Q,onChange:oe,onFocus:se,onBlur:U,onKeyDown:ie,onKeyUp:ue,transformRawValue:xe,formatValueOnBlur:be=!0,...ye},Ce)=>{if(D&&z(D))throw new Error("decimalSeparator cannot be a number");if(Q&&z(Q))throw new Error("groupSeparator cannot be a number");let G=(0,l.useMemo)(()=>te(x),[x]),m=D||G.decimalSeparator||"",T=Q||G.groupSeparator||"";if(m&&T&&m===T&&S===!1)throw new Error("decimalSeparator cannot be the same as groupSeparator");let H={decimalSeparator:m,groupSeparator:T,disableGroupSeparators:S,intlConfig:x,prefix:c||G.prefix,suffix:$},X={decimalSeparator:m,groupSeparator:T,allowDecimals:r,decimalsLimit:n||F||2,allowNegativeValue:t,disableAbbreviations:J,prefix:c||G.prefix,transformRawValue:xe},[h,K]=(0,l.useState)(()=>u!=null?O({...H,decimalScale:R,value:String(u)}):y!=null?O({...H,decimalScale:R,value:String(y)}):""),[Y,he]=(0,l.useState)(!1),[Z,_]=(0,l.useState)(0),[ae,Ve]=(0,l.useState)(0),[$e,we]=(0,l.useState)(null),P=(0,l.useRef)(null);(0,l.useImperativeHandle)(Ce,()=>P.current);let le=(p,V)=>{he(!0);let{modifiedValue:b,cursorPosition:w}=ne({selectionStart:V,value:p,lastKeyStroke:$e,stateValue:h,groupSeparator:T}),a=M({value:b,...X});if(d&&a.replace(/-/g,"").length>d)return;if(a===""||a==="-"||a===m){E&&E(void 0,o,{float:null,formatted:"",value:""}),K(a),_(1);return}let I=m?a.replace(m,"."):a,L=parseFloat(I),k=O({value:a,...H});if(w!=null){let W=w+(k.length-p.length);W=W<=0?c?c.length:0:W,_(W),Ve(ae+1)}K(k),E&&E(a,o,{float:L,formatted:k,value:a})},Ee=p=>{let{target:{value:V,selectionStart:b}}=p;le(V,b),oe&&oe(p)},Re=p=>(se&&se(p),h?h.length:0),Ie=p=>{let{target:{value:V}}=p,b=M({value:V,...X});if(b==="-"||b===m||!b){K(""),U&&U(p);return}let w=ee(b,m,F),a=re(w,m,R!==void 0?R:F),I=m?a.replace(m,"."):a,L=parseFloat(I),k=O({...H,value:a});E&&be&&E(a,o,{float:L,formatted:k,value:a}),K(k),U&&U(p)},Oe=p=>{let{key:V}=p;if(we(V),C&&(V==="ArrowUp"||V==="ArrowDown")){p.preventDefault(),_(h.length);let b=y!=null?String(y):void 0,w=m&&b?b.replace(m,"."):b,a=parseFloat(w??M({value:h,...X}))||0,I=V==="ArrowUp"?a+C:a-C;if(A!==void 0&&I<Number(A)||!t&&I<0||N!==void 0&&I>Number(N))return;let L=String(C).includes(".")?Number(String(C).split(".")[1].length):void 0;le(String(L?I.toFixed(L):I).replace(".",m))}ie&&ie(p)},Fe=p=>{let{key:V,currentTarget:{selectionStart:b}}=p;if(V!=="ArrowUp"&&V!=="ArrowDown"&&h!=="-"){let w=j(h,{groupSeparator:T,decimalSeparator:m});if(w&&b&&b>h.length-w.length&&P.current){let a=h.length-w.length;P.current.setSelectionRange(a,a)}}ue&&ue(p)};(0,l.useEffect)(()=>{y==null&&u==null&&K("")},[u,y]),(0,l.useEffect)(()=>{Y&&h!=="-"&&P.current&&document.activeElement===P.current&&P.current.setSelectionRange(Z,Z)},[h,Z,P,Y,ae]);let ce={type:"text",inputMode:"decimal",id:e,name:o,className:i,onChange:Ee,onBlur:Ie,onFocus:Re,onKeyDown:Oe,onKeyUp:Fe,placeholder:v,disabled:f,value:y!=null&&h!=="-"&&(!m||h!==m)?O({...H,decimalScale:Y?void 0:R,value:String(y)}):h,ref:P,...ye};return s?l.default.createElement(s,{...ce}):l.default.createElement("input",{...ce})});B.displayName="CurrencyInput";var de=B;var We=de;
//# sourceMappingURL=index.js.map
