react-native-masked-text
Advanced tools
Comparing version 1.6.3 to 1.6.4
@@ -1,129 +0,129 @@ | ||
import { MoneyMask } from '../lib/masks'; | ||
import { MoneyMask } from '../lib/masks' | ||
test('getType results money', () => { | ||
var expected = 'money'; | ||
var received = MoneyMask.getType(); | ||
var expected = 'money' | ||
var received = MoneyMask.getType() | ||
expect(received).toBe(expected); | ||
}); | ||
expect(received).toBe(expected) | ||
}) | ||
test('1 results R$0,01', () => { | ||
var mask = new MoneyMask(); | ||
var expected = 'R$0,01'; | ||
var received = mask.getValue('1'); | ||
var mask = new MoneyMask() | ||
var expected = 'R$0,01' | ||
var received = mask.getValue('1') | ||
expect(received).toBe(expected); | ||
}); | ||
expect(received).toBe(expected) | ||
}) | ||
test('111 results R$1,11', () => { | ||
var mask = new MoneyMask(); | ||
var expected = 'R$1,11'; | ||
var received = mask.getValue('111'); | ||
var mask = new MoneyMask() | ||
var expected = 'R$1,11' | ||
var received = mask.getValue('111') | ||
expect(received).toBe(expected); | ||
}); | ||
expect(received).toBe(expected) | ||
}) | ||
test('1111 results R$11,11', () => { | ||
var mask = new MoneyMask(); | ||
var expected = 'R$11,11'; | ||
var received = mask.getValue('1111'); | ||
var mask = new MoneyMask() | ||
var expected = 'R$11,11' | ||
var received = mask.getValue('1111') | ||
expect(received).toBe(expected); | ||
}); | ||
expect(received).toBe(expected) | ||
}) | ||
test('11111 results R$111,11', () => { | ||
var mask = new MoneyMask(); | ||
var expected = 'R$111,11'; | ||
var received = mask.getValue('11111'); | ||
var mask = new MoneyMask() | ||
var expected = 'R$111,11' | ||
var received = mask.getValue('11111') | ||
expect(received).toBe(expected); | ||
}); | ||
expect(received).toBe(expected) | ||
}) | ||
test('111111 results R$1.111,11', () => { | ||
var mask = new MoneyMask(); | ||
var expected = 'R$1.111,11'; | ||
var received = mask.getValue('111111'); | ||
var mask = new MoneyMask() | ||
var expected = 'R$1.111,11' | ||
var received = mask.getValue('111111') | ||
expect(received).toBe(expected); | ||
}); | ||
expect(received).toBe(expected) | ||
}) | ||
test('111111111 results R$1.111.111,11', () => { | ||
var mask = new MoneyMask(); | ||
var expected = 'R$1.111.111,11'; | ||
var received = mask.getValue('111111111'); | ||
var mask = new MoneyMask() | ||
var expected = 'R$1.111.111,11' | ||
var received = mask.getValue('111111111') | ||
expect(received).toBe(expected); | ||
}); | ||
expect(received).toBe(expected) | ||
}) | ||
test(' results R$0,00', () => { | ||
var mask = new MoneyMask(); | ||
var expected = 'R$0,00'; | ||
var received = mask.getValue(''); | ||
var mask = new MoneyMask() | ||
var expected = 'R$0,00' | ||
var received = mask.getValue('') | ||
expect(received).toBe(expected); | ||
}); | ||
expect(received).toBe(expected) | ||
}) | ||
test('11111 precision 3 results R$11,111', () => { | ||
var mask = new MoneyMask(); | ||
var expected = 'R$11,111'; | ||
var mask = new MoneyMask() | ||
var expected = 'R$11,111' | ||
var received = mask.getValue('11111', { | ||
precision: 3 | ||
}); | ||
}) | ||
expect(received).toBe(expected); | ||
}); | ||
expect(received).toBe(expected) | ||
}) | ||
test('111 separator . results R$1.11', () => { | ||
var mask = new MoneyMask(); | ||
var expected = 'R$1.11'; | ||
var mask = new MoneyMask() | ||
var expected = 'R$1.11' | ||
var received = mask.getValue('111', { | ||
separator: '.' | ||
}); | ||
}) | ||
expect(received).toBe(expected); | ||
}); | ||
expect(received).toBe(expected) | ||
}) | ||
test('111111 delimiter , results R$1,111,11', () => { | ||
var mask = new MoneyMask(); | ||
var expected = 'R$1,111,11'; | ||
var mask = new MoneyMask() | ||
var expected = 'R$1,111,11' | ||
var received = mask.getValue('111111', { | ||
delimiter: ',' | ||
}); | ||
}) | ||
expect(received).toBe(expected); | ||
}); | ||
expect(received).toBe(expected) | ||
}) | ||
test('1 unit US$ results US$0,01', () => { | ||
var mask = new MoneyMask(); | ||
var expected = 'US$0,01'; | ||
var mask = new MoneyMask() | ||
var expected = 'US$0,01' | ||
var received = mask.getValue('1', { | ||
unit: 'US$' | ||
}); | ||
}) | ||
expect(received).toBe(expected); | ||
}); | ||
expect(received).toBe(expected) | ||
}) | ||
test('1 suffixUnit $$$ results R$0,01', () => { | ||
var mask = new MoneyMask(); | ||
var expected = 'R$0,01 $$$'; | ||
var mask = new MoneyMask() | ||
var expected = 'R$0,01 $$$' | ||
var received = mask.getValue('1', { | ||
suffixUnit: '$$$' | ||
}); | ||
}) | ||
expect(received).toBe(expected); | ||
}); | ||
expect(received).toBe(expected) | ||
}) | ||
test('1 zeroCents results R$1,00', () => { | ||
var mask = new MoneyMask(); | ||
var expected = 'R$1,00'; | ||
var mask = new MoneyMask() | ||
var expected = 'R$1,00' | ||
var received = mask.getValue('1', { | ||
zeroCents: true | ||
}); | ||
}) | ||
expect(received).toBe(expected); | ||
}); | ||
expect(received).toBe(expected) | ||
}) | ||
test('US$ config with value 1234567 results US$12,345.67', () => { | ||
var mask = new MoneyMask(); | ||
var expected = 'US$12,345.67'; | ||
var mask = new MoneyMask() | ||
var expected = 'US$12,345.67' | ||
var received = mask.getValue('1234567', { | ||
@@ -133,67 +133,99 @@ unit: 'US$', | ||
separator: '.' | ||
}); | ||
}) | ||
expect(received).toBe(expected); | ||
}); | ||
expect(received).toBe(expected) | ||
}) | ||
test('1 results R$0,01 and raw value 0.01', () => { | ||
var mask = new MoneyMask(); | ||
var expected = 'R$0,01'; | ||
var received = mask.getValue('1'); | ||
var mask = new MoneyMask() | ||
var expected = 'R$0,01' | ||
var received = mask.getValue('1') | ||
var expectedRawValue = 0.01; | ||
var receivedRawValue = mask.getRawValue(received); | ||
var expectedRawValue = 0.01 | ||
var receivedRawValue = mask.getRawValue(received) | ||
expect(received).toBe(expected); | ||
expect(receivedRawValue).toBe(expectedRawValue); | ||
}); | ||
expect(received).toBe(expected) | ||
expect(receivedRawValue).toBe(expectedRawValue) | ||
}) | ||
test('111111 results R$1.111,11 and raw value 1111.11', () => { | ||
var mask = new MoneyMask(); | ||
var expected = 'R$1.111,11'; | ||
var received = mask.getValue('111111'); | ||
var mask = new MoneyMask() | ||
var expected = 'R$1.111,11' | ||
var received = mask.getValue('111111') | ||
var expectedRawValue = 1111.11; | ||
var receivedRawValue = mask.getRawValue(received); | ||
var expectedRawValue = 1111.11 | ||
var receivedRawValue = mask.getRawValue(received) | ||
expect(received).toBe(expected); | ||
expect(receivedRawValue).toBe(expectedRawValue); | ||
}); | ||
expect(received).toBe(expected) | ||
expect(receivedRawValue).toBe(expectedRawValue) | ||
}) | ||
test('1 zeroCents results R$1,00 and raw value 1', () => { | ||
var mask = new MoneyMask(); | ||
var expected = 'R$1,00'; | ||
var mask = new MoneyMask() | ||
var expected = 'R$1,00' | ||
var received = mask.getValue('1', { | ||
zeroCents: true | ||
}); | ||
}) | ||
var expectedRawValue = 1; | ||
var receivedRawValue = mask.getRawValue(received); | ||
var expectedRawValue = 1 | ||
var receivedRawValue = mask.getRawValue(received) | ||
expect(received).toBe(expected); | ||
expect(receivedRawValue).toBe(expectedRawValue); | ||
}); | ||
expect(received).toBe(expected) | ||
expect(receivedRawValue).toBe(expectedRawValue) | ||
}) | ||
test('111111 delimiter , results R$1,111,11 and raw value 1111.11', () => { | ||
var mask = new MoneyMask(); | ||
var expected = 'R$1,111,11'; | ||
var mask = new MoneyMask() | ||
var expected = 'R$1,111,11' | ||
var received = mask.getValue('111111', { | ||
delimiter: ',' | ||
}); | ||
}) | ||
var expectedRawValue = 1111.11; | ||
var receivedRawValue = mask.getRawValue(received); | ||
var expectedRawValue = 1111.11 | ||
var receivedRawValue = mask.getRawValue(received) | ||
expect(received).toBe(expected); | ||
expect(receivedRawValue).toBe(expectedRawValue); | ||
}); | ||
expect(received).toBe(expected) | ||
expect(receivedRawValue).toBe(expectedRawValue) | ||
}) | ||
test('1 unit US$ results US$ 0,01', () => { | ||
var mask = new MoneyMask(); | ||
var expected = 'US$ 0,01'; | ||
var mask = new MoneyMask() | ||
var expected = 'US$ 0,01' | ||
var received = mask.getValue('1', { | ||
unit: 'US$ ' | ||
}); | ||
}) | ||
expect(received).toBe(expected); | ||
}); | ||
expect(received).toBe(expected) | ||
}) | ||
test('number 1.9 must return R$1,90', () => { | ||
var mask = new MoneyMask() | ||
const expected = 'R$1,90' | ||
const received = mask.getValue(1.9) | ||
expect(received).toBe(expected) | ||
}) | ||
test('number 0.05 must return R$0,05', () => { | ||
var mask = new MoneyMask() | ||
const expected = 'R$0,05' | ||
const received = mask.getValue(0.05) | ||
expect(received).toBe(expected) | ||
}) | ||
test('number 0.85 must return R$0,85', () => { | ||
var mask = new MoneyMask() | ||
const expected = 'R$0,85' | ||
const received = mask.getValue(0.85) | ||
expect(received).toBe(expected) | ||
}) | ||
test('number 1111.2 must return R$1.111,20', () => { | ||
var mask = new MoneyMask() | ||
const expected = 'R$1.111,20' | ||
const received = mask.getValue(1111.2) | ||
expect(received).toBe(expected) | ||
}) |
@@ -20,13 +20,12 @@ Object.defineProperty(exports,"__esModule",{value:true});var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor);}}return function(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);return Constructor;};}();var _get=function get(object,property,receiver){if(object===null)object=Function.prototype;var desc=Object.getOwnPropertyDescriptor(object,property);if(desc===undefined){var parent=Object.getPrototypeOf(object);if(parent===null){return undefined;}else{return get(parent,property,receiver);}}else if("value"in desc){return desc.value;}else{var getter=desc.get;if(getter===undefined){return undefined;}return getter.call(receiver);}};var _base=require('./_base.mask');var _base2=_interopRequireDefault(_base);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj};}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}}function _possibleConstructorReturn(self,call){if(!self){throw new ReferenceError("this hasn't been initialised - super() hasn't been called");}return call&&(typeof call==="object"||typeof call==="function")?call:self;}function _inherits(subClass,superClass){if(typeof superClass!=="function"&&superClass!==null){throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:false,writable:true,configurable:true}});if(superClass)Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass;} | ||
if(mergedSettings.suffixUnit&&oldValue&&value){ | ||
var sanitized=this._sanitize(value,mergedSettings); | ||
if(value.length==oldValue.length-1){ | ||
var cleared=this.removeNotNumbers(value); | ||
value=cleared.substr(0,cleared.length-1); | ||
if(mergedSettings.suffixUnit&&oldValue&&sanitized){ | ||
if(sanitized.length==oldValue.length-1){ | ||
var cleared=this.removeNotNumbers(sanitized); | ||
sanitized=cleared.substr(0,cleared.length-1); | ||
} | ||
} | ||
var masked=this.getVMasker().toMoney(value,mergedSettings); | ||
var masked=this.getVMasker().toMoney(sanitized,mergedSettings); | ||
@@ -48,2 +47,10 @@ return masked; | ||
return true; | ||
}},{key:'_sanitize',value:function _sanitize( | ||
value,settings){ | ||
if(typeof value==='number'){ | ||
return value.toFixed(settings.precision); | ||
} | ||
return value; | ||
}},{key:'_insert',value:function _insert( | ||
@@ -53,7 +60,10 @@ | ||
if(index>0){ | ||
return text.substring(0,index)+string+text.substring(index,text.length); | ||
}else | ||
{ | ||
return( | ||
text.substring(0,index)+ | ||
string+ | ||
text.substring(index,text.length)); | ||
}else{ | ||
return string+text; | ||
} | ||
}}],[{key:'getType',value:function getType(){return'money';}}]);return MoneyMask;}(_base2.default);exports.default=MoneyMask; |
@@ -1,2 +0,2 @@ | ||
import BaseMask from './_base.mask'; | ||
import BaseMask from './_base.mask' | ||
@@ -10,49 +10,59 @@ const MONEY_MASK_SETTINGS = { | ||
zeroCents: false | ||
}; | ||
} | ||
export default class MoneyMask extends BaseMask { | ||
static getType() { | ||
return 'money'; | ||
return 'money' | ||
} | ||
getValue(value, settings, oldValue) { | ||
let mergedSettings = super.mergeSettings(MONEY_MASK_SETTINGS, settings); | ||
let mergedSettings = super.mergeSettings(MONEY_MASK_SETTINGS, settings) | ||
if (mergedSettings.suffixUnit && oldValue && value) { | ||
// value: 123 R | ||
// oldValue: 123 R$ | ||
let sanitized = this._sanitize(value, mergedSettings) | ||
if (value.length == oldValue.length - 1) { | ||
let cleared = this.removeNotNumbers(value); | ||
value = cleared.substr(0, cleared.length - 1); | ||
if (mergedSettings.suffixUnit && oldValue && sanitized) { | ||
if (sanitized.length == oldValue.length - 1) { | ||
let cleared = this.removeNotNumbers(sanitized) | ||
sanitized = cleared.substr(0, cleared.length - 1) | ||
} | ||
} | ||
let masked = this.getVMasker().toMoney(value, mergedSettings); | ||
let masked = this.getVMasker().toMoney(sanitized, mergedSettings) | ||
return masked; | ||
return masked | ||
} | ||
getRawValue(maskedValue, settings) { | ||
let mergedSettings = super.mergeSettings(MONEY_MASK_SETTINGS, settings); | ||
let normalized = super.removeNotNumbers(maskedValue); | ||
let mergedSettings = super.mergeSettings(MONEY_MASK_SETTINGS, settings) | ||
let normalized = super.removeNotNumbers(maskedValue) | ||
let dotPosition = normalized.length - mergedSettings.precision; | ||
normalized = this._insert(normalized, dotPosition, '.'); | ||
let dotPosition = normalized.length - mergedSettings.precision | ||
normalized = this._insert(normalized, dotPosition, '.') | ||
return Number(normalized); | ||
return Number(normalized) | ||
} | ||
validate(value, settings) { | ||
return true; | ||
return true | ||
} | ||
_sanitize(value, settings) { | ||
if (typeof value === 'number') { | ||
return value.toFixed(settings.precision) | ||
} | ||
return value | ||
} | ||
_insert(text, index, string) { | ||
if (index > 0) { | ||
return text.substring(0, index) + string + text.substring(index, text.length); | ||
return ( | ||
text.substring(0, index) + | ||
string + | ||
text.substring(index, text.length) | ||
) | ||
} else { | ||
return string + text | ||
} | ||
else { | ||
return string + text; | ||
} | ||
}; | ||
} | ||
} | ||
} |
{ | ||
"name": "react-native-masked-text", | ||
"version": "1.6.3", | ||
"version": "1.6.4", | ||
"description": "Text and TextInput with mask for React Native applications", | ||
@@ -5,0 +5,0 @@ "licenses": [ |
@@ -407,2 +407,5 @@ # react-native-masked-text | ||
# Changelog | ||
## 1.6.4 | ||
* Fixing wrong format when use money mask and values with only one decimal place (`1.9`) (thanks to [Pablo](https://github.com/rochapablo)). | ||
## 1.6.3 | ||
@@ -409,0 +412,0 @@ * Fixing moment version (thanks to [Edward Coleridge Smith](https://github.com/edcs)) |
118696
2271
481