react-currency-input-field
Advanced tools
| export declare type CurrencyInputProps = { | ||
| /** | ||
| * Allow decimals. | ||
| * Default = true | ||
| */ | ||
| allowDecimals?: boolean; | ||
| /** | ||
| * Component id | ||
| */ | ||
| id: string; | ||
| /** | ||
| * Component name | ||
| */ | ||
| name?: string; | ||
| /** | ||
| * Class names | ||
| */ | ||
| className?: string; | ||
| /** | ||
| * Limit length of decimals allowed. | ||
| * Default = 2 | ||
| */ | ||
| decimalsLimit?: number; | ||
| /** | ||
| * Default value | ||
| */ | ||
| defaultValue?: number; | ||
| /** | ||
| * Handle change in value | ||
| */ | ||
| onChange: (value: number | null, name?: string) => void; | ||
| /** | ||
| * Placeholder | ||
| */ | ||
| placeholder?: string; | ||
| /** | ||
| * Include a prefix eg. £ | ||
| */ | ||
| prefix?: string; | ||
| }; |
+7
-0
@@ -0,1 +1,8 @@ | ||
| ## [0.5.1](https://github.com/cchanxzy/react-currency-input-field/compare/v0.5.0...v0.5.1) (2019-11-30) | ||
| ### Bug Fixes | ||
| * modify typescript config to correctly output types ([#19](https://github.com/cchanxzy/react-currency-input-field/issues/19)) ([392082e](https://github.com/cchanxzy/react-currency-input-field/commit/392082e7f59e202c97345d7e8d2a552adebced16)) | ||
| # [0.5.0](https://github.com/cchanxzy/react-currency-input-field/compare/v0.4.1...v0.5.0) (2019-11-30) | ||
@@ -2,0 +9,0 @@ |
@@ -1,19 +0,4 @@ | ||
| import React, { PureComponent } from 'react'; | ||
| interface IProps { | ||
| id: string; | ||
| className?: string; | ||
| limit?: number; | ||
| prefix?: string; | ||
| handleError?: () => void; | ||
| onChange: (value: number) => void; | ||
| placeholder?: string; | ||
| } | ||
| interface IState { | ||
| value: string; | ||
| } | ||
| export declare class CurrencyInput extends PureComponent<IProps, IState> { | ||
| private constructor(); | ||
| processChange(event: React.ChangeEvent<HTMLInputElement>): boolean; | ||
| render(): JSX.Element; | ||
| } | ||
| import { FC } from 'react'; | ||
| import { CurrencyInputProps } from './CurrencyInputProps'; | ||
| export declare const CurrencyInput: FC<CurrencyInputProps>; | ||
| export default CurrencyInput; |
@@ -1,3 +0,11 @@ | ||
| export declare const addCommas: (value: number) => string; | ||
| export declare const addCommas: (value: string) => string; | ||
| export declare const removeCommas: (value: string) => string; | ||
| export declare const checkIsValidNumber: (input: number, limit: number) => boolean; | ||
| export declare const checkIsValidNumber: (input: string) => boolean; | ||
| /** | ||
| * Remove prefix, commas and extra decimals from value | ||
| */ | ||
| export declare const cleanValue: (value: string, allowDecimals: boolean, decimalsLimit: number, prefix?: string | undefined) => string; | ||
| /** | ||
| * Format value with commas and prefix | ||
| */ | ||
| export declare const formatValue: (value: string, prefix?: string | undefined) => string; |
+1
-1
@@ -1,2 +0,2 @@ | ||
| module.exports=function(e){var r={};function t(n){if(r[n])return r[n].exports;var u=r[n]={i:n,l:!1,exports:{}};return e[n].call(u.exports,u,u.exports,t),u.l=!0,u.exports}return t.m=e,t.c=r,t.d=function(e,r,n){t.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:n})},t.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},t.t=function(e,r){if(1&r&&(e=t(e)),8&r)return e;if(4&r&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(t.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&r&&"string"!=typeof e)for(var u in e)t.d(n,u,function(r){return e[r]}.bind(null,u));return n},t.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(r,"a",r),r},t.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},t.p="",t(t.s=1)}([function(e,r){e.exports=require("react")},function(e,r,t){"use strict";t.r(r);var n=t(0),u=t.n(n),o=function(e,r){var t=e.split("."),n=t[0],u=t[1],o=r||"",i=e.includes(".")?"."+u:"";return""+o+function(e){return e.replace(/\B(?=(\d{3})+(?!\d))/g,",")}(n)+i},i=function(e){var r=e.allowDecimals,t=void 0===r||r,i=e.id,a=e.name,l=e.className,c=e.decimalsLimit,f=void 0===c?2:c,d=e.defaultValue,s=e.onChange,p=e.placeholder,m=e.prefix,v=Object(n.useState)(d?o(String(d),m):""),b=v[0],g=v[1];return u.a.createElement("input",{type:"string",id:i,name:a,className:l,onChange:function(e){var r,n=function(e,r,t,n){var u=function(e){return e.replace(/,/g,"")}(n?e.replace(n,""):e);if(u.includes(".")){var o=u.split("."),i=o[0],a=o[1];return""+i+(r?"."+(t?a.slice(0,t):a):"")}return u}(e.target.value,t,f,m);if(!n)return s(null,a),g("");r=n,Number(r)<0||isNaN(Number(r))||g(o(n,m)),s(Number(n),a)},onFocus:function(){return b?b.length:0},placeholder:p,value:b,pattern:"[0-9]*"})};r.default=i}]); | ||
| module.exports=function(e){var r={};function t(n){if(r[n])return r[n].exports;var u=r[n]={i:n,l:!1,exports:{}};return e[n].call(u.exports,u,u.exports,t),u.l=!0,u.exports}return t.m=e,t.c=r,t.d=function(e,r,n){t.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:n})},t.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},t.t=function(e,r){if(1&r&&(e=t(e)),8&r)return e;if(4&r&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(t.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&r&&"string"!=typeof e)for(var u in e)t.d(n,u,function(r){return e[r]}.bind(null,u));return n},t.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(r,"a",r),r},t.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},t.p="",t(t.s=0)}([function(e,r,t){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(r,"__esModule",{value:!0});var u=n(t(1));r.default=u.default},function(e,r,t){"use strict";var n=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var r={};if(null!=e)for(var t in e)Object.hasOwnProperty.call(e,t)&&(r[t]=e[t]);return r.default=e,r};Object.defineProperty(r,"__esModule",{value:!0});var u=n(t(2)),a=t(3);r.CurrencyInput=function(e){var r=e.allowDecimals,t=void 0===r||r,n=e.id,o=e.name,l=e.className,i=e.decimalsLimit,c=void 0===i?2:i,f=e.defaultValue,s=e.onChange,d=e.placeholder,p=e.prefix,m=u.useState(f?a.formatValue(String(f),p):""),v=m[0],b=m[1];return u.default.createElement("input",{type:"string",id:n,name:o,className:l,onChange:function(e){var r=e.target.value,n=a.cleanValue(r,t,c,p);if(!n)return s(null,o),b("");a.checkIsValidNumber(n)&&b(a.formatValue(n,p)),s(Number(n),o)},onFocus:function(){return v?v.length:0},placeholder:d,value:v,pattern:"[0-9]*"})},r.default=r.CurrencyInput},function(e,r){e.exports=require("react")},function(e,r,t){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.addCommas=function(e){return e.replace(/\B(?=(\d{3})+(?!\d))/g,",")},r.removeCommas=function(e){return e.replace(/,/g,"")},r.checkIsValidNumber=function(e){return!(Number(e)<0||isNaN(Number(e)))},r.cleanValue=function(e,t,n,u){var a=u?e.replace(u,""):e,o=r.removeCommas(a);if(o.includes(".")){var l=o.split("."),i=l[0],c=l[1];return""+i+(t?"."+(n?c.slice(0,n):c):"")}return o},r.formatValue=function(e,t){var n=e.split("."),u=n[0],a=n[1],o=t||"",l=e.includes(".")?"."+a:"";return""+o+r.addCommas(u)+l}}]); | ||
| //# sourceMappingURL=index.js.map |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///external \"react\"","webpack:///./src/components/utilities.ts","webpack:///./src/components/CurrencyInput.tsx","webpack:///./src/index.ts"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","require","formatValue","prefix","int","decimals","includePrefix","includeDecimals","includes","replace","addCommas","allowDecimals","id","className","decimalsLimit","defaultValue","onChange","placeholder","stateValue","setStateValue","type","event","input","valueOnly","withoutCommas","removeCommas","slice","cleanValue","Number","isNaN","onFocus","length","pattern"],"mappings":"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","file":"index.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 1);\n","module.exports = require(\"react\");","export const addCommas = (value: string): string => value.replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',');\n\nexport const removeCommas = (value: string): string => value.replace(/,/g, '');\n\nexport const checkIsValidNumber = (input: string): boolean => {\n if (Number(input) < 0 || isNaN(Number(input))) {\n return false;\n }\n\n return true;\n};\n\n/**\n * Remove prefix, commas and extra decimals from value\n */\nexport const cleanValue = (\n value: string,\n allowDecimals: boolean,\n decimalsLimit: number,\n prefix?: string\n): string => {\n const withoutPrefix = prefix ? value.replace(prefix, '') : value;\n const withoutCommas = removeCommas(withoutPrefix);\n\n if (withoutCommas.includes('.')) {\n const [int, decimals] = withoutCommas.split('.');\n const includeDecimals = allowDecimals\n ? `.${decimalsLimit ? decimals.slice(0, decimalsLimit) : decimals}`\n : '';\n\n return `${int}${includeDecimals}`;\n }\n\n return withoutCommas;\n};\n\n/**\n * Format value with commas and prefix\n */\nexport const formatValue = (value: string, prefix?: string): string => {\n const [int, decimals] = value.split('.');\n const includePrefix = prefix ? prefix : '';\n const includeDecimals = value.includes('.') ? `.${decimals}` : '';\n return `${includePrefix}${addCommas(int)}${includeDecimals}`;\n};\n","import React, { FC, useState } from 'react';\nimport { CurrencyInputProps } from './types';\nimport { checkIsValidNumber, cleanValue, formatValue } from './utilities';\n\nexport const CurrencyInput: FC<CurrencyInputProps> = ({\n allowDecimals = true,\n id,\n name,\n className,\n decimalsLimit = 2,\n defaultValue,\n onChange,\n placeholder,\n prefix,\n}: CurrencyInputProps) => {\n const [stateValue, setStateValue] = useState(\n defaultValue ? formatValue(String(defaultValue), prefix) : ''\n );\n\n const onFocus = (): number => (stateValue ? stateValue.length : 0);\n\n const processChange = (event: React.ChangeEvent<HTMLInputElement>): void => {\n const {\n target: { value },\n } = event;\n\n const valueOnly = cleanValue(value, allowDecimals, decimalsLimit, prefix);\n\n if (!valueOnly) {\n onChange(null, name);\n return setStateValue('');\n }\n\n if (checkIsValidNumber(valueOnly)) {\n setStateValue(formatValue(valueOnly, prefix));\n }\n\n onChange(Number(valueOnly), name);\n };\n\n return (\n <input\n type=\"string\"\n id={id}\n name={name}\n className={className}\n onChange={processChange}\n onFocus={onFocus}\n placeholder={placeholder}\n value={stateValue}\n pattern=\"[0-9]*\"\n />\n );\n};\n\nexport default CurrencyInput;\n","import CurrencyInput from './components/CurrencyInput';\nexport default CurrencyInput;\n"],"sourceRoot":""} | ||
| {"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/index.ts","webpack:///./src/components/CurrencyInput.tsx","webpack:///external \"react\"","webpack:///./src/components/utilities.ts"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","CurrencyInput","allowDecimals","id","className","decimalsLimit","defaultValue","onChange","placeholder","prefix","stateValue","setStateValue","type","event","valueOnly","cleanValue","checkIsValidNumber","formatValue","Number","onFocus","length","pattern","require","addCommas","replace","removeCommas","input","isNaN","withoutPrefix","withoutCommas","includes","int","decimals","slice","includePrefix","includeDecimals"],"mappings":"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","file":"index.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 0);\n","import CurrencyInput from './components/CurrencyInput';\nexport default CurrencyInput;\n","import React, { FC, useState } from 'react';\nimport { CurrencyInputProps } from './CurrencyInputProps';\nimport { checkIsValidNumber, cleanValue, formatValue } from './utilities';\n\nexport const CurrencyInput: FC<CurrencyInputProps> = ({\n allowDecimals = true,\n id,\n name,\n className,\n decimalsLimit = 2,\n defaultValue,\n onChange,\n placeholder,\n prefix,\n}: CurrencyInputProps) => {\n const [stateValue, setStateValue] = useState(\n defaultValue ? formatValue(String(defaultValue), prefix) : ''\n );\n\n const onFocus = (): number => (stateValue ? stateValue.length : 0);\n\n const processChange = (event: React.ChangeEvent<HTMLInputElement>): void => {\n const {\n target: { value },\n } = event;\n\n const valueOnly = cleanValue(value, allowDecimals, decimalsLimit, prefix);\n\n if (!valueOnly) {\n onChange(null, name);\n return setStateValue('');\n }\n\n if (checkIsValidNumber(valueOnly)) {\n setStateValue(formatValue(valueOnly, prefix));\n }\n\n onChange(Number(valueOnly), name);\n };\n\n return (\n <input\n type=\"string\"\n id={id}\n name={name}\n className={className}\n onChange={processChange}\n onFocus={onFocus}\n placeholder={placeholder}\n value={stateValue}\n pattern=\"[0-9]*\"\n />\n );\n};\n\nexport default CurrencyInput;\n","module.exports = require(\"react\");","export const addCommas = (value: string): string => value.replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',');\n\nexport const removeCommas = (value: string): string => value.replace(/,/g, '');\n\nexport const checkIsValidNumber = (input: string): boolean => {\n if (Number(input) < 0 || isNaN(Number(input))) {\n return false;\n }\n\n return true;\n};\n\n/**\n * Remove prefix, commas and extra decimals from value\n */\nexport const cleanValue = (\n value: string,\n allowDecimals: boolean,\n decimalsLimit: number,\n prefix?: string\n): string => {\n const withoutPrefix = prefix ? value.replace(prefix, '') : value;\n const withoutCommas = removeCommas(withoutPrefix);\n\n if (withoutCommas.includes('.')) {\n const [int, decimals] = withoutCommas.split('.');\n const includeDecimals = allowDecimals\n ? `.${decimalsLimit ? decimals.slice(0, decimalsLimit) : decimals}`\n : '';\n\n return `${int}${includeDecimals}`;\n }\n\n return withoutCommas;\n};\n\n/**\n * Format value with commas and prefix\n */\nexport const formatValue = (value: string, prefix?: string): string => {\n const [int, decimals] = value.split('.');\n const includePrefix = prefix ? prefix : '';\n const includeDecimals = value.includes('.') ? `.${decimals}` : '';\n return `${includePrefix}${addCommas(int)}${includeDecimals}`;\n};\n"],"sourceRoot":""} |
+5
-4
| { | ||
| "name": "react-currency-input-field", | ||
| "version": "0.5.0", | ||
| "version": "0.5.1", | ||
| "description": "React input field component for currency and numbers", | ||
@@ -9,9 +9,10 @@ "files": [ | ||
| "main": "dist/index.js", | ||
| "types": "dist/index", | ||
| "homepage": "https://cchanxzy.github.io/react-currency-input-field", | ||
| "scripts": { | ||
| "build": "NODE_ENV='prod' webpack --mode=production", | ||
| "build": "rm -rf dist && tsc && NODE_ENV='prod' webpack --mode=production", | ||
| "start": "NODE_ENV='dev' webpack-dev-server --mode=development --hot", | ||
| "test": "jest --coverage", | ||
| "test:watch": "jest --coverage --watch", | ||
| "lint": "tsc --noEmit && eslint 'src/**/*.{js,ts,tsx}' --max-warnings=0", | ||
| "lint": "tsc && eslint 'src/**/*.{js,ts,tsx}' --max-warnings=0", | ||
| "gh-predeploy": "NODE_ENV='dev' webpack --mode=development", | ||
@@ -73,3 +74,3 @@ "gh-deploy": "gh-pages -d dist", | ||
| "ts-jest": "^24.0.2", | ||
| "typescript": "^3.0.3", | ||
| "typescript": "^3.7.2", | ||
| "webpack": "^4.19.1", | ||
@@ -76,0 +77,0 @@ "webpack-cli": "^3.1.0", |
-127
| !(function(e) { | ||
| const t = {}; | ||
| function r(n) { | ||
| if (t[n]) return t[n].exports; | ||
| const o = (t[n] = { i: n, l: !1, exports: {} }); | ||
| return e[n].call(o.exports, o, o.exports, r), (o.l = !0), o.exports; | ||
| } | ||
| (r.m = e), | ||
| (r.c = t), | ||
| (r.d = function(e, t, n) { | ||
| r.o(e, t) || Object.defineProperty(e, t, { enumerable: !0, get: n }); | ||
| }), | ||
| (r.r = function(e) { | ||
| 'undefined' != typeof Symbol && | ||
| Symbol.toStringTag && | ||
| Object.defineProperty(e, Symbol.toStringTag, { value: 'Module' }), | ||
| Object.defineProperty(e, '__esModule', { value: !0 }); | ||
| }), | ||
| (r.t = function(e, t) { | ||
| if ((1 & t && (e = r(e)), 8 & t)) return e; | ||
| if (4 & t && 'object' == typeof e && e && e.__esModule) return e; | ||
| const n = Object.create(null); | ||
| if ( | ||
| (r.r(n), | ||
| Object.defineProperty(n, 'default', { enumerable: !0, value: e }), | ||
| 2 & t && 'string' != typeof e) | ||
| ) | ||
| for (const o in e) | ||
| r.d( | ||
| n, | ||
| o, | ||
| function(t) { | ||
| return e[t]; | ||
| }.bind(null, o) | ||
| ); | ||
| return n; | ||
| }), | ||
| (r.n = function(e) { | ||
| const t = | ||
| e && e.__esModule | ||
| ? function() { | ||
| return e.default; | ||
| } | ||
| : function() { | ||
| return e; | ||
| }; | ||
| return r.d(t, 'a', t), t; | ||
| }), | ||
| (r.o = function(e, t) { | ||
| return Object.prototype.hasOwnProperty.call(e, t); | ||
| }), | ||
| (r.p = ''), | ||
| r((r.s = 0)); | ||
| })([ | ||
| function(e, t, r) { | ||
| 'use strict'; | ||
| const n = | ||
| (this && this.__importDefault) || | ||
| function(e) { | ||
| return e && e.__esModule ? e : { default: e }; | ||
| }; | ||
| Object.defineProperty(t, '__esModule', { value: !0 }); | ||
| const o = n(r(1)); | ||
| t.default = o.default; | ||
| }, | ||
| function(e, t, r) { | ||
| 'use strict'; | ||
| const n = | ||
| (this && this.__importStar) || | ||
| function(e) { | ||
| if (e && e.__esModule) return e; | ||
| const t = {}; | ||
| if (null != e) for (const r in e) Object.hasOwnProperty.call(e, r) && (t[r] = e[r]); | ||
| return (t.default = e), t; | ||
| }; | ||
| Object.defineProperty(t, '__esModule', { value: !0 }); | ||
| const o = n(r(2)), | ||
| u = r(3); | ||
| class a extends o.PureComponent { | ||
| constructor(e) { | ||
| super(e), | ||
| (this.state = { value: '' }), | ||
| (this.processChange = this.processChange.bind(this)); | ||
| } | ||
| processChange(e) { | ||
| const { | ||
| target: { value: t }, | ||
| } = e, | ||
| { onChange: r, limit: n, prefix: o } = this.props; | ||
| let a = t; | ||
| if ((o && (a = t.replace(o, '')), '' === a || null === a)) | ||
| return this.setState({ value: '' }), r(null), !1; | ||
| const s = parseInt(u.removeCommas(a), 10); | ||
| const l = n || 9999999999999; | ||
| if (u.checkIsValidNumber(s, l)) { | ||
| let e = u.addCommas(s); | ||
| o && (e = `${o}${e}`), this.setState({ value: e }); | ||
| } | ||
| r(s); | ||
| } | ||
| render() { | ||
| const { className: e, id: t, handleError: r, placeholder: n } = this.props, | ||
| { value: u } = this.state; | ||
| return o.default.createElement('input', { | ||
| type: 'string', | ||
| id: t, | ||
| className: e, | ||
| onChange: this.processChange, | ||
| placeholder: n, | ||
| value: u, | ||
| }); | ||
| } | ||
| } | ||
| (t.CurrenyInput = a), (t.default = a); | ||
| }, | ||
| function(e, t) { | ||
| e.exports = React; | ||
| }, | ||
| function(e, t, r) { | ||
| 'use strict'; | ||
| Object.defineProperty(t, '__esModule', { value: !0 }), | ||
| (t.addCommas = e => e.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',')), | ||
| (t.removeCommas = e => e.replace(/,/g, '')), | ||
| (t.checkIsValidNumber = (e, t) => 0 === e || (!(e < 0 || Number.isNaN(e)) && e <= t)); | ||
| }, | ||
| ]); | ||
| //# sourceMappingURL=bundle.js.map |
| {"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/index.ts","webpack:///./src/components/CurrencyInput.tsx","webpack:///external \"React\"","webpack:///./src/components/utilities.ts"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","CurrencyInput_1","__importDefault","default","react_1","__importStar","utilities_1","CurrenyInput","PureComponent","[object Object]","props","super","this","state","processChange","event","target","onChange","limit","prefix","stringValue","replace","setState","intValue","parseInt","removeCommas","max","checkIsValidNumber","setValue","addCommas","className","id","handleError","placeholder","createElement","type","React","toString","input","Number","isNaN"],"mappings":"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","file":"bundle.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 0);\n","import CurrencyInput from './components/CurrencyInput';\nexport default CurrencyInput;","import React, { PureComponent } from 'react';\n\nimport {\n addCommas,\n removeCommas,\n checkIsValidNumber,\n} from './utilities';\n\ninterface IProps {\n id: string;\n className?: string;\n limit?: number;\n prefix?: string;\n handleError?: () => void,\n onChange: (value: number) => void;\n placeholder?: string;\n}\n\ninterface IState {\n value: string;\n}\n\nexport class CurrenyInput extends PureComponent<IProps, IState> {\n private constructor(props: IProps) {\n super(props);\n\n this.state = {\n value: '',\n };\n\n this.processChange = this.processChange.bind(this);\n }\n\n processChange(event: React.ChangeEvent<HTMLInputElement>) {\n const {\n target: {\n value,\n }\n } = event;\n\n const {\n onChange,\n limit,\n prefix,\n } = this.props;\n\n let stringValue = value;\n\n if (prefix) {\n stringValue = value.replace(prefix, '');\n }\n\n if (stringValue === '' || stringValue === null) {\n this.setState({\n value: '',\n });\n onChange(null);\n return false;\n }\n\n let intValue = parseInt(removeCommas(stringValue), 10);\n\n const max = limit || 9999999999999;\n\n if (checkIsValidNumber(intValue, max)) {\n let setValue = addCommas(intValue);\n\n if (prefix) {\n setValue = `${prefix}${setValue}`;\n }\n\n this.setState({ value: setValue });\n }\n onChange(intValue);\n }\n\n render() {\n const {\n className,\n id,\n handleError,\n placeholder,\n } = this.props;\n\n const { value } = this.state;\n\n return (\n <input\n type=\"string\"\n id={id}\n className={className}\n onChange={this.processChange}\n placeholder={placeholder}\n value={value}\n />\n );\n }\n}\n\nexport default CurrenyInput;\n","module.exports = React;","export const addCommas = (value:number) => value.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',');\n\nexport const removeCommas = (value:string) => value.replace(/,/g, '');\n\nexport const checkIsValidNumber = (input: number, limit: number) => {\n if (input === 0) {\n return true;\n }\n\n if (input < 0 || Number.isNaN(input)) {\n return false;\n }\n\n return (input <= limit);\n};\n"],"sourceRoot":""} |
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
21642
-32.41%9
-10%68
-57.23%1
Infinity%