Socket
Socket
Sign inDemoInstall

text-mask-addons

Package Overview
Dependencies
Maintainers
1
Versions
29
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

text-mask-addons - npm Package Compare versions

Comparing version 0.2.1 to 0.3.0

2

dist/createCurrencyMask.js

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

!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.createCurrencyMask=t():e.createCurrencyMask=t()}(this,function(){return function(e){function t(o){if(r[o])return r[o].exports;var n=r[o]={exports:{},id:o,loaded:!1};return e[o].call(n.exports,n,n.exports,t),n.loaded=!0,n.exports}var r={};return t.m=e,t.c=r,t.p="",t(0)}([function(e,t){"use strict";function r(){var e=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],t=e.prefix,r=void 0===t?"$":t,n=e.suffix,u=void 0===n?"":n;return function(e){return e=e.replace(/\D+/g,"").replace(/\d/g,"1"),""===e?r+"1"+u:""+r+o(e)+u}}function o(e){var t=e.toString().split(".");return t[0].replace(/\B(?=(\d{3})+(?!\d))/g,",")+(t[1]?"."+t[1]:"")}Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=r}])});
!function(e,o){"object"==typeof exports&&"object"==typeof module?module.exports=o():"function"==typeof define&&define.amd?define([],o):"object"==typeof exports?exports.createCurrencyMask=o():e.createCurrencyMask=o()}(this,function(){return function(e){function o(r){if(t[r])return t[r].exports;var n=t[r]={exports:{},id:r,loaded:!1};return e[r].call(n.exports,n,n.exports,o),n.loaded=!0,n.exports}var t={};return o.m=e,o.c=t,o.p="",o(0)}([function(e,o){"use strict";function t(){var e=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],o=e.prefix,t=void 0===o?u:o,l=e.suffix,s=void 0===l?f:l,v=e.includeThousandsSeparator,y=void 0===v||v,m=e.thousandsSeparatorSymbol,b=void 0===m?d:m,x=e.allowDecimal,S=void 0!==x&&x,g=e.decimalSymbol,h=void 0===g?a:g,j=e.decimalLimit,M=void 0===j?2:j,k=e.requireFraction,C=void 0!==k&&k;return function(e){var o=e.length;if(e===f||e[0]===t[0]&&1===o)return""+t+c+s;var u=e.lastIndexOf(h),d=u!==-1,a=void 0,l=void 0,v=void 0;if(a=e,d&&(S||C)?(a=e.slice(0,u),l=r(e.slice(u+1,o))):a=e,a=r(a),v=y?n(a,b):a,d&&S||C===!0)if(v+=e[u-1]===h?"":"[]",v+=h+"[]",l)("undefined"==typeof M?"undefined":i(M))===p&&(l=l.slice(0,M)),v+=l;else if(C===!0)for(var m=0;m<M;m++)v+=c;return""+t+v+s}}function r(e){return e.replace(l,f).replace(s,c)}function n(e,o){return e.replace(/\B(?=(\d{3})+(?!\d))/g,o)}Object.defineProperty(o,"__esModule",{value:!0});var i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol?"symbol":typeof e};o["default"]=t;var u="$",f="",d=",",c="1",a=".",l=/\D+/g,s=/\d/g,p="number"}])});

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

{"errors":[],"warnings":[],"version":"1.13.1","hash":"3ff3f79ed34530f7a2a2","publicPath":"","assetsByChunkName":{"createCurrencyMask":"createCurrencyMask.js","autoCorrectedMmddyyyyPipe":"autoCorrectedMmddyyyyPipe.js"},"assets":[{"name":"createCurrencyMask.js","size":880,"chunks":[0],"chunkNames":["createCurrencyMask"],"emitted":true},{"name":"autoCorrectedMmddyyyyPipe.js","size":1027,"chunks":[1],"chunkNames":["autoCorrectedMmddyyyyPipe"],"emitted":true},{"name":"stats.json","size":0,"chunks":[],"chunkNames":[]}],"chunks":[{"id":0,"rendered":true,"initial":true,"entry":true,"extraAsync":false,"size":888,"names":["createCurrencyMask"],"files":["createCurrencyMask.js"],"hash":"2c7db4492527b776918d","parents":[],"modules":[{"id":0,"identifier":"/Users/mk/Code/github/msafi/text-mask/node_modules/babel-loader/index.js!/Users/mk/Code/github/msafi/text-mask/addons/src/createCurrencyMask.js","name":"./addons/src/createCurrencyMask.js","index":1,"index2":1,"size":888,"cacheable":true,"built":true,"optional":false,"prefetched":false,"chunks":[0],"assets":[],"issuer":null,"failed":false,"errors":0,"warnings":0,"reasons":[],"source":"'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = createCurrencyMask;\nfunction createCurrencyMask() {\n var _ref = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n\n var _ref$prefix = _ref.prefix;\n var prefix = _ref$prefix === undefined ? '$' : _ref$prefix;\n var _ref$suffix = _ref.suffix;\n var suffix = _ref$suffix === undefined ? '' : _ref$suffix;\n\n return function (rawValue) {\n rawValue = rawValue.replace(/\\D+/g, '').replace(/\\d/g, '1');\n\n if (rawValue === '') {\n return prefix + '1' + suffix;\n } else {\n return '' + prefix + numberWithCommas(rawValue) + suffix;\n }\n };\n}\n\n// http://stackoverflow.com/a/10899795/604296\nfunction numberWithCommas(n) {\n var parts = n.toString().split('.');\n\n return parts[0].replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',') + (parts[1] ? '.' + parts[1] : '');\n}"}],"filteredModules":0,"origins":[{"moduleId":0,"module":"/Users/mk/Code/github/msafi/text-mask/node_modules/babel-loader/index.js!/Users/mk/Code/github/msafi/text-mask/addons/src/createCurrencyMask.js","moduleIdentifier":"/Users/mk/Code/github/msafi/text-mask/node_modules/babel-loader/index.js!/Users/mk/Code/github/msafi/text-mask/addons/src/createCurrencyMask.js","moduleName":"./addons/src/createCurrencyMask.js","loc":"","name":"createCurrencyMask","reasons":[]}]},{"id":1,"rendered":true,"initial":true,"entry":true,"extraAsync":false,"size":1597,"names":["autoCorrectedMmddyyyyPipe"],"files":["autoCorrectedMmddyyyyPipe.js"],"hash":"9e662bdd77d08496784e","parents":[],"modules":[{"id":0,"identifier":"/Users/mk/Code/github/msafi/text-mask/node_modules/babel-loader/index.js!/Users/mk/Code/github/msafi/text-mask/addons/src/autoCorrectedMmddyyyyPipe.js","name":"./addons/src/autoCorrectedMmddyyyyPipe.js","index":0,"index2":0,"size":1597,"cacheable":true,"built":true,"optional":false,"prefetched":false,"chunks":[1],"assets":[],"issuer":null,"failed":false,"errors":0,"warnings":0,"reasons":[],"source":"'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = autoCorrectedMmddyyyyPipe;\nfunction autoCorrectedMmddyyyyPipe(conformedValue) {\n var conformedValueArr = conformedValue.split('');\n var indexesOfPipedChars = [];\n\n var month1stDigit = parseDigit(conformedValue[0]);\n var month2ndDigit = parseDigit(conformedValue[1]);\n var day1stDigit = parseDigit(conformedValue[3]);\n var day2ndDigit = parseDigit(conformedValue[4]);\n var year1stDigit = parseDigit(conformedValue[6]);\n\n if (month1stDigit > 1) {\n conformedValueArr.splice(0, 2, 0, month1stDigit);\n\n indexesOfPipedChars.push(0);\n }\n\n if (month1stDigit === 1 && month2ndDigit > 2 || month1stDigit === 0 && month2ndDigit === 0) {\n return false;\n }\n\n if (day1stDigit > 3) {\n conformedValueArr.splice(3, 2, 0, day1stDigit);\n\n indexesOfPipedChars.push(3);\n }\n\n if (day1stDigit === 3 && day2ndDigit > 1 || day1stDigit === 0 && day2ndDigit === 0) {\n return false;\n }\n\n if (year1stDigit === 0) {\n conformedValueArr.splice(6, 3, 2, 0, year1stDigit);\n\n indexesOfPipedChars.push(6, 7);\n }\n\n return {\n value: conformedValueArr.join(''),\n indexesOfPipedChars: indexesOfPipedChars\n };\n}\n\nvar digitsNumbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];\nvar digitsStrings = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'];\nvar allDigits = digitsNumbers.concat(digitsStrings);\nfunction parseDigit(value) {\n var digit = allDigits.find(function (digit) {\n return digit === value;\n });\n\n if (digit === undefined) {\n return value;\n } else {\n return Number(digit);\n }\n}"}],"filteredModules":0,"origins":[{"moduleId":0,"module":"/Users/mk/Code/github/msafi/text-mask/node_modules/babel-loader/index.js!/Users/mk/Code/github/msafi/text-mask/addons/src/autoCorrectedMmddyyyyPipe.js","moduleIdentifier":"/Users/mk/Code/github/msafi/text-mask/node_modules/babel-loader/index.js!/Users/mk/Code/github/msafi/text-mask/addons/src/autoCorrectedMmddyyyyPipe.js","moduleName":"./addons/src/autoCorrectedMmddyyyyPipe.js","loc":"","name":"autoCorrectedMmddyyyyPipe","reasons":[]}]}],"modules":[{"id":0,"identifier":"/Users/mk/Code/github/msafi/text-mask/node_modules/babel-loader/index.js!/Users/mk/Code/github/msafi/text-mask/addons/src/autoCorrectedMmddyyyyPipe.js","name":"./addons/src/autoCorrectedMmddyyyyPipe.js","index":0,"index2":0,"size":1597,"cacheable":true,"built":true,"optional":false,"prefetched":false,"chunks":[1],"assets":[],"issuer":null,"failed":false,"errors":0,"warnings":0,"reasons":[],"source":"'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = autoCorrectedMmddyyyyPipe;\nfunction autoCorrectedMmddyyyyPipe(conformedValue) {\n var conformedValueArr = conformedValue.split('');\n var indexesOfPipedChars = [];\n\n var month1stDigit = parseDigit(conformedValue[0]);\n var month2ndDigit = parseDigit(conformedValue[1]);\n var day1stDigit = parseDigit(conformedValue[3]);\n var day2ndDigit = parseDigit(conformedValue[4]);\n var year1stDigit = parseDigit(conformedValue[6]);\n\n if (month1stDigit > 1) {\n conformedValueArr.splice(0, 2, 0, month1stDigit);\n\n indexesOfPipedChars.push(0);\n }\n\n if (month1stDigit === 1 && month2ndDigit > 2 || month1stDigit === 0 && month2ndDigit === 0) {\n return false;\n }\n\n if (day1stDigit > 3) {\n conformedValueArr.splice(3, 2, 0, day1stDigit);\n\n indexesOfPipedChars.push(3);\n }\n\n if (day1stDigit === 3 && day2ndDigit > 1 || day1stDigit === 0 && day2ndDigit === 0) {\n return false;\n }\n\n if (year1stDigit === 0) {\n conformedValueArr.splice(6, 3, 2, 0, year1stDigit);\n\n indexesOfPipedChars.push(6, 7);\n }\n\n return {\n value: conformedValueArr.join(''),\n indexesOfPipedChars: indexesOfPipedChars\n };\n}\n\nvar digitsNumbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];\nvar digitsStrings = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'];\nvar allDigits = digitsNumbers.concat(digitsStrings);\nfunction parseDigit(value) {\n var digit = allDigits.find(function (digit) {\n return digit === value;\n });\n\n if (digit === undefined) {\n return value;\n } else {\n return Number(digit);\n }\n}"},{"id":0,"identifier":"/Users/mk/Code/github/msafi/text-mask/node_modules/babel-loader/index.js!/Users/mk/Code/github/msafi/text-mask/addons/src/createCurrencyMask.js","name":"./addons/src/createCurrencyMask.js","index":1,"index2":1,"size":888,"cacheable":true,"built":true,"optional":false,"prefetched":false,"chunks":[0],"assets":[],"issuer":null,"failed":false,"errors":0,"warnings":0,"reasons":[],"source":"'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = createCurrencyMask;\nfunction createCurrencyMask() {\n var _ref = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n\n var _ref$prefix = _ref.prefix;\n var prefix = _ref$prefix === undefined ? '$' : _ref$prefix;\n var _ref$suffix = _ref.suffix;\n var suffix = _ref$suffix === undefined ? '' : _ref$suffix;\n\n return function (rawValue) {\n rawValue = rawValue.replace(/\\D+/g, '').replace(/\\d/g, '1');\n\n if (rawValue === '') {\n return prefix + '1' + suffix;\n } else {\n return '' + prefix + numberWithCommas(rawValue) + suffix;\n }\n };\n}\n\n// http://stackoverflow.com/a/10899795/604296\nfunction numberWithCommas(n) {\n var parts = n.toString().split('.');\n\n return parts[0].replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',') + (parts[1] ? '.' + parts[1] : '');\n}"}],"filteredModules":0,"children":[]}
{"errors":[],"warnings":[],"version":"1.13.1","hash":"8fee24219a697238dc2c","publicPath":"","assetsByChunkName":{"createCurrencyMask":"createCurrencyMask.js","autoCorrectedMmddyyyyPipe":"autoCorrectedMmddyyyyPipe.js"},"assets":[{"name":"createCurrencyMask.js","size":1644,"chunks":[0],"chunkNames":["createCurrencyMask"],"emitted":true},{"name":"autoCorrectedMmddyyyyPipe.js","size":1027,"chunks":[1],"chunkNames":["autoCorrectedMmddyyyyPipe"],"emitted":true},{"name":"stats.json","size":0,"chunks":[],"chunkNames":[]}],"chunks":[{"id":0,"rendered":true,"initial":true,"entry":true,"extraAsync":false,"size":3469,"names":["createCurrencyMask"],"files":["createCurrencyMask.js"],"hash":"adb757bea804df1e7313","parents":[],"modules":[{"id":0,"identifier":"/Users/mk/Code/github/msafi/text-mask/node_modules/babel-loader/index.js!/Users/mk/Code/github/msafi/text-mask/addons/src/createCurrencyMask.js","name":"./addons/src/createCurrencyMask.js","index":1,"index2":1,"size":3469,"cacheable":true,"built":true,"optional":false,"prefetched":false,"chunks":[0],"assets":[],"issuer":null,"failed":false,"errors":0,"warnings":0,"reasons":[],"source":"'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol ? \"symbol\" : typeof obj; };\n\nexports.default = createCurrencyMask;\nvar dollarSign = '$';\nvar emptyString = '';\nvar comma = ',';\nvar one = '1';\nvar period = '.';\nvar noneDigitsRegExp = /\\D+/g;\nvar digitsRegExp = /\\d/g;\nvar number = 'number';\n\nfunction createCurrencyMask() {\n var _ref = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n\n var _ref$prefix = _ref.prefix;\n var prefix = _ref$prefix === undefined ? dollarSign : _ref$prefix;\n var _ref$suffix = _ref.suffix;\n var suffix = _ref$suffix === undefined ? emptyString : _ref$suffix;\n var _ref$includeThousands = _ref.includeThousandsSeparator;\n var includeThousandsSeparator = _ref$includeThousands === undefined ? true : _ref$includeThousands;\n var _ref$thousandsSeparat = _ref.thousandsSeparatorSymbol;\n var thousandsSeparatorSymbol = _ref$thousandsSeparat === undefined ? comma : _ref$thousandsSeparat;\n var _ref$allowDecimal = _ref.allowDecimal;\n var allowDecimal = _ref$allowDecimal === undefined ? false : _ref$allowDecimal;\n var _ref$decimalSymbol = _ref.decimalSymbol;\n var decimalSymbol = _ref$decimalSymbol === undefined ? period : _ref$decimalSymbol;\n var _ref$decimalLimit = _ref.decimalLimit;\n var decimalLimit = _ref$decimalLimit === undefined ? 2 : _ref$decimalLimit;\n var _ref$requireFraction = _ref.requireFraction;\n var requireFraction = _ref$requireFraction === undefined ? false : _ref$requireFraction;\n\n return function (rawValue) {\n var rawValueLength = rawValue.length;\n\n if (rawValue === emptyString || rawValue[0] === prefix[0] && rawValueLength === 1) {\n return '' + prefix + one + suffix;\n }\n\n var indexOfLastDecimal = rawValue.lastIndexOf(decimalSymbol);\n var hasDecimal = indexOfLastDecimal !== -1;\n\n var integer = void 0;\n var fraction = void 0;\n var numberMask = void 0;\n\n integer = rawValue;\n\n if (hasDecimal && (allowDecimal || requireFraction)) {\n integer = rawValue.slice(0, indexOfLastDecimal);\n fraction = convertToMask(rawValue.slice(indexOfLastDecimal + 1, rawValueLength));\n } else {\n integer = rawValue;\n }\n\n integer = convertToMask(integer);\n\n numberMask = includeThousandsSeparator ? addThousandsSeparator(integer, thousandsSeparatorSymbol) : integer;\n\n if (hasDecimal && allowDecimal || requireFraction === true) {\n numberMask += rawValue[indexOfLastDecimal - 1] === decimalSymbol ? '' : '[]';\n numberMask += decimalSymbol + '[]';\n\n if (fraction) {\n if ((typeof decimalLimit === 'undefined' ? 'undefined' : _typeof(decimalLimit)) === number) {\n fraction = fraction.slice(0, decimalLimit);\n }\n numberMask += fraction;\n } else if (requireFraction === true) {\n for (var i = 0; i < decimalLimit; i++) {\n numberMask += one;\n }\n }\n }\n\n return '' + prefix + numberMask + suffix;\n };\n}\n\nfunction convertToMask(strNumber) {\n return strNumber.replace(noneDigitsRegExp, emptyString).replace(digitsRegExp, one);\n}\n\n// http://stackoverflow.com/a/10899795/604296\nfunction addThousandsSeparator(n, thousandsSeparatorSymbol) {\n return n.replace(/\\B(?=(\\d{3})+(?!\\d))/g, thousandsSeparatorSymbol);\n}"}],"filteredModules":0,"origins":[{"moduleId":0,"module":"/Users/mk/Code/github/msafi/text-mask/node_modules/babel-loader/index.js!/Users/mk/Code/github/msafi/text-mask/addons/src/createCurrencyMask.js","moduleIdentifier":"/Users/mk/Code/github/msafi/text-mask/node_modules/babel-loader/index.js!/Users/mk/Code/github/msafi/text-mask/addons/src/createCurrencyMask.js","moduleName":"./addons/src/createCurrencyMask.js","loc":"","name":"createCurrencyMask","reasons":[]}]},{"id":1,"rendered":true,"initial":true,"entry":true,"extraAsync":false,"size":1597,"names":["autoCorrectedMmddyyyyPipe"],"files":["autoCorrectedMmddyyyyPipe.js"],"hash":"9e662bdd77d08496784e","parents":[],"modules":[{"id":0,"identifier":"/Users/mk/Code/github/msafi/text-mask/node_modules/babel-loader/index.js!/Users/mk/Code/github/msafi/text-mask/addons/src/autoCorrectedMmddyyyyPipe.js","name":"./addons/src/autoCorrectedMmddyyyyPipe.js","index":0,"index2":0,"size":1597,"cacheable":true,"built":true,"optional":false,"prefetched":false,"chunks":[1],"assets":[],"issuer":null,"failed":false,"errors":0,"warnings":0,"reasons":[],"source":"'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = autoCorrectedMmddyyyyPipe;\nfunction autoCorrectedMmddyyyyPipe(conformedValue) {\n var conformedValueArr = conformedValue.split('');\n var indexesOfPipedChars = [];\n\n var month1stDigit = parseDigit(conformedValue[0]);\n var month2ndDigit = parseDigit(conformedValue[1]);\n var day1stDigit = parseDigit(conformedValue[3]);\n var day2ndDigit = parseDigit(conformedValue[4]);\n var year1stDigit = parseDigit(conformedValue[6]);\n\n if (month1stDigit > 1) {\n conformedValueArr.splice(0, 2, 0, month1stDigit);\n\n indexesOfPipedChars.push(0);\n }\n\n if (month1stDigit === 1 && month2ndDigit > 2 || month1stDigit === 0 && month2ndDigit === 0) {\n return false;\n }\n\n if (day1stDigit > 3) {\n conformedValueArr.splice(3, 2, 0, day1stDigit);\n\n indexesOfPipedChars.push(3);\n }\n\n if (day1stDigit === 3 && day2ndDigit > 1 || day1stDigit === 0 && day2ndDigit === 0) {\n return false;\n }\n\n if (year1stDigit === 0) {\n conformedValueArr.splice(6, 3, 2, 0, year1stDigit);\n\n indexesOfPipedChars.push(6, 7);\n }\n\n return {\n value: conformedValueArr.join(''),\n indexesOfPipedChars: indexesOfPipedChars\n };\n}\n\nvar digitsNumbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];\nvar digitsStrings = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'];\nvar allDigits = digitsNumbers.concat(digitsStrings);\nfunction parseDigit(value) {\n var digit = allDigits.find(function (digit) {\n return digit === value;\n });\n\n if (digit === undefined) {\n return value;\n } else {\n return Number(digit);\n }\n}"}],"filteredModules":0,"origins":[{"moduleId":0,"module":"/Users/mk/Code/github/msafi/text-mask/node_modules/babel-loader/index.js!/Users/mk/Code/github/msafi/text-mask/addons/src/autoCorrectedMmddyyyyPipe.js","moduleIdentifier":"/Users/mk/Code/github/msafi/text-mask/node_modules/babel-loader/index.js!/Users/mk/Code/github/msafi/text-mask/addons/src/autoCorrectedMmddyyyyPipe.js","moduleName":"./addons/src/autoCorrectedMmddyyyyPipe.js","loc":"","name":"autoCorrectedMmddyyyyPipe","reasons":[]}]}],"modules":[{"id":0,"identifier":"/Users/mk/Code/github/msafi/text-mask/node_modules/babel-loader/index.js!/Users/mk/Code/github/msafi/text-mask/addons/src/autoCorrectedMmddyyyyPipe.js","name":"./addons/src/autoCorrectedMmddyyyyPipe.js","index":0,"index2":0,"size":1597,"cacheable":true,"built":true,"optional":false,"prefetched":false,"chunks":[1],"assets":[],"issuer":null,"failed":false,"errors":0,"warnings":0,"reasons":[],"source":"'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = autoCorrectedMmddyyyyPipe;\nfunction autoCorrectedMmddyyyyPipe(conformedValue) {\n var conformedValueArr = conformedValue.split('');\n var indexesOfPipedChars = [];\n\n var month1stDigit = parseDigit(conformedValue[0]);\n var month2ndDigit = parseDigit(conformedValue[1]);\n var day1stDigit = parseDigit(conformedValue[3]);\n var day2ndDigit = parseDigit(conformedValue[4]);\n var year1stDigit = parseDigit(conformedValue[6]);\n\n if (month1stDigit > 1) {\n conformedValueArr.splice(0, 2, 0, month1stDigit);\n\n indexesOfPipedChars.push(0);\n }\n\n if (month1stDigit === 1 && month2ndDigit > 2 || month1stDigit === 0 && month2ndDigit === 0) {\n return false;\n }\n\n if (day1stDigit > 3) {\n conformedValueArr.splice(3, 2, 0, day1stDigit);\n\n indexesOfPipedChars.push(3);\n }\n\n if (day1stDigit === 3 && day2ndDigit > 1 || day1stDigit === 0 && day2ndDigit === 0) {\n return false;\n }\n\n if (year1stDigit === 0) {\n conformedValueArr.splice(6, 3, 2, 0, year1stDigit);\n\n indexesOfPipedChars.push(6, 7);\n }\n\n return {\n value: conformedValueArr.join(''),\n indexesOfPipedChars: indexesOfPipedChars\n };\n}\n\nvar digitsNumbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];\nvar digitsStrings = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'];\nvar allDigits = digitsNumbers.concat(digitsStrings);\nfunction parseDigit(value) {\n var digit = allDigits.find(function (digit) {\n return digit === value;\n });\n\n if (digit === undefined) {\n return value;\n } else {\n return Number(digit);\n }\n}"},{"id":0,"identifier":"/Users/mk/Code/github/msafi/text-mask/node_modules/babel-loader/index.js!/Users/mk/Code/github/msafi/text-mask/addons/src/createCurrencyMask.js","name":"./addons/src/createCurrencyMask.js","index":1,"index2":1,"size":3469,"cacheable":true,"built":true,"optional":false,"prefetched":false,"chunks":[0],"assets":[],"issuer":null,"failed":false,"errors":0,"warnings":0,"reasons":[],"source":"'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol ? \"symbol\" : typeof obj; };\n\nexports.default = createCurrencyMask;\nvar dollarSign = '$';\nvar emptyString = '';\nvar comma = ',';\nvar one = '1';\nvar period = '.';\nvar noneDigitsRegExp = /\\D+/g;\nvar digitsRegExp = /\\d/g;\nvar number = 'number';\n\nfunction createCurrencyMask() {\n var _ref = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n\n var _ref$prefix = _ref.prefix;\n var prefix = _ref$prefix === undefined ? dollarSign : _ref$prefix;\n var _ref$suffix = _ref.suffix;\n var suffix = _ref$suffix === undefined ? emptyString : _ref$suffix;\n var _ref$includeThousands = _ref.includeThousandsSeparator;\n var includeThousandsSeparator = _ref$includeThousands === undefined ? true : _ref$includeThousands;\n var _ref$thousandsSeparat = _ref.thousandsSeparatorSymbol;\n var thousandsSeparatorSymbol = _ref$thousandsSeparat === undefined ? comma : _ref$thousandsSeparat;\n var _ref$allowDecimal = _ref.allowDecimal;\n var allowDecimal = _ref$allowDecimal === undefined ? false : _ref$allowDecimal;\n var _ref$decimalSymbol = _ref.decimalSymbol;\n var decimalSymbol = _ref$decimalSymbol === undefined ? period : _ref$decimalSymbol;\n var _ref$decimalLimit = _ref.decimalLimit;\n var decimalLimit = _ref$decimalLimit === undefined ? 2 : _ref$decimalLimit;\n var _ref$requireFraction = _ref.requireFraction;\n var requireFraction = _ref$requireFraction === undefined ? false : _ref$requireFraction;\n\n return function (rawValue) {\n var rawValueLength = rawValue.length;\n\n if (rawValue === emptyString || rawValue[0] === prefix[0] && rawValueLength === 1) {\n return '' + prefix + one + suffix;\n }\n\n var indexOfLastDecimal = rawValue.lastIndexOf(decimalSymbol);\n var hasDecimal = indexOfLastDecimal !== -1;\n\n var integer = void 0;\n var fraction = void 0;\n var numberMask = void 0;\n\n integer = rawValue;\n\n if (hasDecimal && (allowDecimal || requireFraction)) {\n integer = rawValue.slice(0, indexOfLastDecimal);\n fraction = convertToMask(rawValue.slice(indexOfLastDecimal + 1, rawValueLength));\n } else {\n integer = rawValue;\n }\n\n integer = convertToMask(integer);\n\n numberMask = includeThousandsSeparator ? addThousandsSeparator(integer, thousandsSeparatorSymbol) : integer;\n\n if (hasDecimal && allowDecimal || requireFraction === true) {\n numberMask += rawValue[indexOfLastDecimal - 1] === decimalSymbol ? '' : '[]';\n numberMask += decimalSymbol + '[]';\n\n if (fraction) {\n if ((typeof decimalLimit === 'undefined' ? 'undefined' : _typeof(decimalLimit)) === number) {\n fraction = fraction.slice(0, decimalLimit);\n }\n numberMask += fraction;\n } else if (requireFraction === true) {\n for (var i = 0; i < decimalLimit; i++) {\n numberMask += one;\n }\n }\n }\n\n return '' + prefix + numberMask + suffix;\n };\n}\n\nfunction convertToMask(strNumber) {\n return strNumber.replace(noneDigitsRegExp, emptyString).replace(digitsRegExp, one);\n}\n\n// http://stackoverflow.com/a/10899795/604296\nfunction addThousandsSeparator(n, thousandsSeparatorSymbol) {\n return n.replace(/\\B(?=(\\d{3})+(?!\\d))/g, thousandsSeparatorSymbol);\n}"}],"filteredModules":0,"children":[]}
{
"name": "text-mask-addons",
"version": "0.2.1",
"version": "0.3.0",
"description": "Addons for Text Mask https://github.com/msafi/text-mask",

@@ -5,0 +5,0 @@ "author": "M.K. Safi <msafi@msafi.com>",

@@ -20,6 +20,14 @@ # Text Mask Addons

`createCurrencyMask` returns a `currencyMask` function that will format user input as currency.
`createCurrencyMask` accepts an object with `prefix` and `suffix` keys. The default `prefix`
is `$` and the default `suffix` is nothing. So, `currencyMask` by default will turn an input like
`3000` to `$3,000`.
`createCurrencyMask` accepts an object with the following keys:
1. `prefix` (string): what to display before the amount. Defaults to `'$'`.
1. `suffix` (string): what to display after the amount. Defaults to empty string.
1. `includeThousandsSeparator` (boolean): whether or not to separate thousands. Defaults to to `true`.
1. `thousandsSeparatorSymbol` (string): character with which to separate thousands. Default to `','`.
1. `allowDecimal` (boolean): whether or not to allow the user to enter a fraction with the amount. Default to `false`.
1. `decimalSymbol` (string): character that will act as a decimal point. Defaults to `'.'`
1. `decimalLimit` (number): how many digits to allow after the decimal. Defaults to `2`
1. `requireFraction` (boolean): whether or not to always include a decimal point and placeholder for decimal digits
after the integer. Defaults to `false`.
### Usage

@@ -26,0 +34,0 @@

@@ -0,23 +1,77 @@

const dollarSign = '$'
const emptyString = ''
const comma = ','
const one = '1'
const period = '.'
const noneDigitsRegExp = /\D+/g
const digitsRegExp = /\d/g
const number = 'number'
export default function createCurrencyMask({
prefix = '$',
suffix = ''
prefix = dollarSign,
suffix = emptyString,
includeThousandsSeparator = true,
thousandsSeparatorSymbol = comma,
allowDecimal = false,
decimalSymbol = period,
decimalLimit = 2,
requireFraction = false
} = {}) {
return function(rawValue) {
rawValue = rawValue
.replace(/\D+/g, '')
.replace(/\d/g, '1')
const rawValueLength = rawValue.length
if (rawValue === '') {
return `${prefix}1${suffix}`
if (
rawValue === emptyString ||
(rawValue[0] === prefix[0] && rawValueLength === 1)
) {
return `${prefix}${one}${suffix}`
}
const indexOfLastDecimal = rawValue.lastIndexOf(decimalSymbol)
const hasDecimal = indexOfLastDecimal !== -1
let integer
let fraction
let numberMask
integer = rawValue
if (hasDecimal && (allowDecimal || requireFraction)) {
integer = rawValue.slice(0, indexOfLastDecimal)
fraction = convertToMask(rawValue.slice(indexOfLastDecimal + 1, rawValueLength))
} else {
return `${prefix}${numberWithCommas(rawValue)}${suffix}`
integer = rawValue
}
integer = convertToMask(integer)
numberMask = (includeThousandsSeparator) ? addThousandsSeparator(integer, thousandsSeparatorSymbol) : integer
if ((hasDecimal && allowDecimal) || requireFraction === true) {
numberMask += (rawValue[indexOfLastDecimal - 1] === decimalSymbol) ? '' : '[]'
numberMask += `${decimalSymbol}[]`
if (fraction) {
if (typeof decimalLimit === number) {
fraction = fraction.slice(0, decimalLimit)
}
numberMask += fraction
} else if (requireFraction === true) {
for (let i = 0; i < decimalLimit; i++) {
numberMask += one
}
}
}
return `${prefix}${numberMask}${suffix}`
}
}
function convertToMask(strNumber) {
return strNumber.replace(noneDigitsRegExp, emptyString).replace(digitsRegExp, one)
}
// http://stackoverflow.com/a/10899795/604296
function numberWithCommas(n) {
var parts = n.toString().split('.')
return parts[0].replace(/\B(?=(\d{3})+(?!\d))/g, ',') + (parts[1] ? '.' + parts[1] : '')
function addThousandsSeparator(n, thousandsSeparatorSymbol) {
return n.replace(/\B(?=(\d{3})+(?!\d))/g, thousandsSeparatorSymbol)
}

@@ -24,3 +24,51 @@ const createCurrencyMask = (isVerify()) ?

describe('currencyMask', () => {
it('can be configured to add a thousands separator or not', () => {
let currencyMaskWithoutThousandsSeparator = createCurrencyMask({includeThousandsSeparator: false})
expect(currencyMaskWithoutThousandsSeparator('1000')).to.equal('$1111')
let currencyMaskWithThousandsSeparator = createCurrencyMask()
expect(currencyMaskWithThousandsSeparator('1000')).to.equal('$1,111')
})
it('can be configured with a custom character for the thousands separator', () => {
let currencyMask = createCurrencyMask({thousandsSeparatorSymbol: '.'})
expect(currencyMask('1000')).to.equal('$1.111')
})
it('can be configured to accept a fraction and returns the fraction separator with caret traps', () => {
let currencyMask = createCurrencyMask({allowDecimal: true})
expect(currencyMask('1000.')).to.equal('$1,111[].[]')
})
it('rejects fractions by default', () => {
let currencyMask = createCurrencyMask()
expect(currencyMask('1000.')).to.equal('$1,111')
})
it('can be configured with a custom character for the fraction separator', () => {
let currencyMask = createCurrencyMask({
allowDecimal: true,
decimalSymbol: ',',
thousandsSeparatorSymbol: '.'
})
expect(currencyMask('1000,')).to.equal('$1.111[],[]')
})
it('can limit the length of the fraction', () => {
let currencyMask = createCurrencyMask({allowDecimal: true, decimalLimit: 2})
expect(currencyMask('1000.3823')).to.equal('$1,111[].[]11')
})
it('can require a fraction', () => {
let currencyMask = createCurrencyMask({requireFraction: true})
expect(currencyMask('1000')).to.equal('$1,111[].[]11')
})
describe('currencyMask default behavior', () => {
let currencyMask = null

@@ -27,0 +75,0 @@

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc