🚀 Big News: Socket Acquires Coana to Bring Reachability Analysis to Every Appsec Team.Learn more
Socket
DemoInstallSign in
Socket

headless-currency-input

Package Overview
Dependencies
Maintainers
1
Versions
9
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

headless-currency-input - npm Package Compare versions

Comparing version

to
1.5.0

4

dist/index.d.ts
import * as react_jsx_runtime from 'react/jsx-runtime';
import { FormEvent, ForwardedRef } from 'react';
import { ForwardedRef } from 'react';
import { InputAttributes, NumberFormatBaseProps } from 'react-number-format';

@@ -10,3 +10,3 @@

customInput?: React.ComponentType<BaseType>;
onInput?: (event: FormEvent<HTMLInputElement>) => void;
onClick?: (event: React.MouseEvent<HTMLInputElement>) => void;
};

@@ -13,0 +13,0 @@ declare function RenderCurrencyInput<BaseType = InputAttributes>(props: CurrencyInputProps<BaseType>, forwadedRef: ForwardedRef<HTMLInputElement>): react_jsx_runtime.JSX.Element;

@@ -1,2 +0,2 @@

'use strict';var utils=require('@react-aria/utils'),intl=require('@sumup/intl'),react=require('react'),reactNumberFormat=require('react-number-format'),jsxRuntime=require('react/jsx-runtime');function f(e,m=0){return e.value=e.value,e!==null?e.selectionStart||e.selectionStart===0?(e.focus(),e.setSelectionRange(m,m),true):(e.focus(),false):false}function E(e,m){let u=react.useRef(null),{locale:s="en",currency:y="USD",withCurrencySymbol:I=true}=e,n=intl.resolveCurrencyFormat(s,y),d=(n==null?void 0:n.currencyPosition)==="prefix"?`${n.currencySymbol} `:"",o=(n==null?void 0:n.minimumFractionDigits)??0,g=(n==null?void 0:n.maximumFractionDigits)??0,l=10**o;function b(t){var a,c;let r=0;Number(t)?r=Number(t):(r=0,typeof document<"u"&&document.activeElement===u.current&&((a=u.current)==null||a.setSelectionRange(t.length+(o??0),t.length+(o??0)),t.length&&t.length<=3&&((c=u.current)==null||c.setSelectionRange(t.length+(o??0),t.length+(o??0)))));let i=new Intl.NumberFormat(n==null?void 0:n.locale,{style:"currency",currency:n==null?void 0:n.currency,currencyDisplay:"code",minimumFractionDigits:o,maximumFractionDigits:g}).format(o?r/l:r).replace(/[a-z]{3}/i,"").trim();return I?`${d}${i}`:`${i}`}function T(t,r){var c;let i=o?(Number.parseFloat(t.value)/l).toFixed(o):t.value,a=t.floatValue&&o?t.floatValue/l:t.floatValue;(c=e==null?void 0:e.onValueChange)==null||c.call(e,{value:i,floatValue:a,formattedValue:t.formattedValue},r);}function v(t){var r;if(u.current){let i=u.current.value,a=i.indexOf("."),c=a===-1?i.length:a+o+1;f(u.current,c);}(r=e==null?void 0:e.onFocus)==null||r.call(e,t);}function F(t){var r;if(u.current){let i=u.current.value,a=i.indexOf("."),c=a===-1?i.length:a+o+1;f(u.current,c);}(r=e==null?void 0:e.onInput)==null||r.call(e,t);}return jsxRuntime.jsx(reactNumberFormat.NumberFormatBase,{...e,format:b,onFocus:v,onInput:F,onValueChange:T,getInputRef:utils.mergeRefs(u,m),prefix:void 0,valueIsNumericString:false})}var M=react.forwardRef(E);exports.CurrencyInput=M;//# sourceMappingURL=index.js.map
'use strict';var utils=require('@react-aria/utils'),intl=require('@sumup/intl'),react=require('react'),reactNumberFormat=require('react-number-format'),jsxRuntime=require('react/jsx-runtime');function s(e,c=0){return e===null?false:(e.select(),e.setSelectionRange(0,0),e.selectionStart||e.selectionStart===0?(e.focus(),e.setSelectionRange(c,c),true):(e.focus(),false))}function C(e){let c=e.selectionStart??0,r=e.selectionEnd??0;return Math.max(c,r)}function $(e,c){let r=react.useRef(null),{locale:m="en",currency:b="USD",withCurrencySymbol:T=true,...R}=e,o=intl.resolveCurrencyFormat(m,b),P=(o==null?void 0:o.currencyPosition)==="prefix"?`${o.currencySymbol} `:"",a=(o==null?void 0:o.minimumFractionDigits)??0,v=(o==null?void 0:o.maximumFractionDigits)??0,f=10**a;function B(t){let n=0;if(Number(t)?n=Number(t):n=0,!r.current)return t;let u=new Intl.NumberFormat(o==null?void 0:o.locale,{style:"currency",currency:o==null?void 0:o.currency,currencyDisplay:"code",minimumFractionDigits:a,maximumFractionDigits:v}).format(a?n/f:n).replace(/[a-z]{3}/i,"").trim(),i=T?`${P}${u}`:u;return (!t||t==="0")&&I(i.length),i}function S(t,n){var l;let u=a?(Number.parseFloat(t.value)/f).toFixed(a):t.value,i=t.floatValue&&a?t.floatValue/f:t.floatValue;(l=e==null?void 0:e.onValueChange)==null||l.call(e,{value:u,floatValue:i,formattedValue:t.formattedValue},n);}let E=()=>{var n;return ((n=new Intl.NumberFormat(m).formatToParts(1.1).find(u=>u.type==="decimal"))==null?void 0:n.value)??"."},d=()=>{var n;return ((n=new Intl.NumberFormat(m).formatToParts(1e3).find(u=>u.type==="group"))==null?void 0:n.value)??""},I=t=>{r.current&&s(r.current,t);},g=(t=false)=>{if(!r.current)return;let n=C(r.current),u=a?`\\${E()}`:"",i=d()?`\\${d()}`:"",l=[u,i].filter(Boolean).join("|"),N=new RegExp(`^(${l})$`),y=t?r.current.value[n-1]:r.current.value[n];if(y!=null&&y.match(N)){let D=n+(t?-1:1);I(D);}};function F(t){var u;let{key:n}=t;t.defaultPrevented||(n==="Backspace"?g(true):n==="Delete"&&g(false),(u=e==null?void 0:e.onKeyDown)==null||u.call(e,t));}function w(t){var n;r.current&&s(r.current,r.current.value.length),(n=e==null?void 0:e.onFocus)==null||n.call(e,t);}function x(t){var n;r.current&&s(r.current,r.current.value.length),(n=e==null?void 0:e.onClick)==null||n.call(e,t);}return jsxRuntime.jsx(reactNumberFormat.NumberFormatBase,{...R,format:B,onFocus:w,onClick:x,onKeyDown:F,onValueChange:S,getInputRef:utils.mergeRefs(r,c),prefix:void 0,valueIsNumericString:false})}var j=react.forwardRef($);exports.CurrencyInput=j;//# sourceMappingURL=index.js.map
//# sourceMappingURL=index.js.map
{
"name": "headless-currency-input",
"version": "1.4.0",
"version": "1.5.0",
"description": "Headless Currency Input is a component to format currency input in an elegant way.",

@@ -5,0 +5,0 @@ "keywords": [

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet