Skip to content

Commit

Permalink
Merge branch 'rob-raymond-sdc-master'
Browse files Browse the repository at this point in the history
  • Loading branch information
nosir committed Mar 7, 2020
2 parents 0f1b62c + 4d5bd77 commit 8240bb0
Show file tree
Hide file tree
Showing 5 changed files with 25 additions and 6 deletions.
4 changes: 2 additions & 2 deletions src/Cleave.js
Original file line number Diff line number Diff line change
Expand Up @@ -277,7 +277,7 @@ Cleave.prototype = {
value = Util.stripDelimiters(value, pps.delimiter, pps.delimiters);

// strip prefix
value = Util.getPrefixStrippedValue(value, pps.prefix, pps.prefixLength, pps.result, pps.delimiter, pps.delimiters, pps.noImmediatePrefix, pps.tailPrefix);
value = Util.getPrefixStrippedValue(value, pps.prefix, pps.prefixLength, pps.result, pps.delimiter, pps.delimiters, pps.noImmediatePrefix, pps.tailPrefix, pps.signBeforePrefix);

// strip non-numeric characters
value = pps.numericOnly ? Util.strip(value, /[^\d]/g) : value;
Expand Down Expand Up @@ -421,7 +421,7 @@ Cleave.prototype = {
rawValue = owner.element.value;

if (pps.rawValueTrimPrefix) {
rawValue = Util.getPrefixStrippedValue(rawValue, pps.prefix, pps.prefixLength, pps.result, pps.delimiter, pps.delimiters, pps.noImmediatePrefix, pps.tailPrefix);
rawValue = Util.getPrefixStrippedValue(rawValue, pps.prefix, pps.prefixLength, pps.result, pps.delimiter, pps.delimiters, pps.noImmediatePrefix, pps.tailPrefix, pps.signBeforePrefix);
}

if (pps.numeral) {
Expand Down
4 changes: 2 additions & 2 deletions src/Cleave.react.js
Original file line number Diff line number Diff line change
Expand Up @@ -207,7 +207,7 @@ var cleaveReactClass = CreateReactClass({
rawValue = pps.result;

if (pps.rawValueTrimPrefix) {
rawValue = Util.getPrefixStrippedValue(rawValue, pps.prefix, pps.prefixLength, pps.result, pps.delimiter, pps.delimiters, pps.noImmediatePrefix, pps.tailPrefix);
rawValue = Util.getPrefixStrippedValue(rawValue, pps.prefix, pps.prefixLength, pps.result, pps.delimiter, pps.delimiters, pps.noImmediatePrefix, pps.tailPrefix, pps.signBeforePrefix);
}

if (pps.numeral) {
Expand Down Expand Up @@ -346,7 +346,7 @@ var cleaveReactClass = CreateReactClass({
value = Util.stripDelimiters(value, pps.delimiter, pps.delimiters);

// strip prefix
value = Util.getPrefixStrippedValue(value, pps.prefix, pps.prefixLength, pps.result, pps.delimiter, pps.delimiters, pps.noImmediatePrefix, pps.tailPrefix);
value = Util.getPrefixStrippedValue(value, pps.prefix, pps.prefixLength, pps.result, pps.delimiter, pps.delimiters, pps.noImmediatePrefix, pps.tailPrefix, pps.signBeforePrefix);

// strip non-numeric characters
value = pps.numericOnly ? Util.strip(value, /[^\d]/g) : value;
Expand Down
7 changes: 6 additions & 1 deletion src/utils/Util.js
Original file line number Diff line number Diff line change
Expand Up @@ -85,12 +85,17 @@ var Util = {
// PREFIX-123 | PEFIX-123 | 123
// PREFIX-123 | PREFIX-23 | 23
// PREFIX-123 | PREFIX-1234 | 1234
getPrefixStrippedValue: function (value, prefix, prefixLength, prevResult, delimiter, delimiters, noImmediatePrefix, tailPrefix) {
getPrefixStrippedValue: function (value, prefix, prefixLength, prevResult, delimiter, delimiters, noImmediatePrefix, tailPrefix, signBeforePrefix) {
// No prefix
if (prefixLength === 0) {
return value;
}

if (signBeforePrefix && (value.slice(0, 1) == '-')) {
var prev = (prevResult.slice(0, 1) == '-') ? prevResult.slice(1) : prevResult;
return '-' + this.getPrefixStrippedValue(value.slice(1), prefix, prefixLength, prev, delimiter, delimiters, noImmediatePrefix, tailPrefix, signBeforePrefix);
}

// Pre result prefix string does not match pre-defined prefix
if (prevResult.slice(0, prefixLength) !== prefix && !tailPrefix) {
// Check if the first time user entered something
Expand Down
14 changes: 14 additions & 0 deletions test/fixtures/util.json
Original file line number Diff line number Diff line change
Expand Up @@ -176,6 +176,20 @@
[]
],
"expected": "12"
},
{
"params": [
"-test123",
"test",
4,
"-test123",
"-",
[],
false,
false,
true
],
"expected": "-123"
}
]
}
2 changes: 1 addition & 1 deletion test/unit/Util_spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ describe('Util', function () {
_.each(json.getPrefixStrippedValue, function (data) {
var params = data.params;
it('should get prefix stripped value for: ' + params[0] + ' as: ' + data.expected, function () {
Util.getPrefixStrippedValue(params[0], params[1], params[2], params[3], params[4], params[5], params[6]).should.eql(data.expected);
Util.getPrefixStrippedValue(params[0], params[1], params[2], params[3], params[4], params[5], params[6], params[7], params[8]).should.eql(data.expected);
});
});
});
Expand Down

0 comments on commit 8240bb0

Please sign in to comment.