Skip to content

Commit 996f977

Browse files
committed
[ISSUE-455] Fix noImmediatePrefix broken issue
1 parent 98106d5 commit 996f977

17 files changed

+91
-54
lines changed

bower.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
"description":
44
"JavaScript library for formatting input text content when you are typing",
55
"keywords": ["cleave", "javascript", "html", "form", "input"],
6-
"version": "1.5.2",
6+
"version": "1.5.3",
77
"author": {
88
"name": "Max Huang",
99
"email": "[email protected]",

dist/cleave-angular.js

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -332,8 +332,10 @@ return /******/ (function(modules) { // webpackBootstrap
332332
value = Util.stripDelimiters(value, pps.delimiter, pps.delimiters);
333333

334334
// strip prefix
335-
// var strippedPreviousResult = Util.stripDelimiters(pps.result, pps.delimiter, pps.delimiters);
336-
value = Util.getPrefixStrippedValue(value, pps.prefix, pps.prefixLength, pps.result, pps.delimiter, pps.delimiters);
335+
value = Util.getPrefixStrippedValue(
336+
value, pps.prefix, pps.prefixLength,
337+
pps.result, pps.delimiter, pps.delimiters, pps.noImmediatePrefix
338+
);
337339

338340
// strip non-numeric characters
339341
value = pps.numericOnly ? Util.strip(value, /[^\d]/g) : value;
@@ -342,7 +344,7 @@ return /******/ (function(modules) { // webpackBootstrap
342344
value = pps.uppercase ? value.toUpperCase() : value;
343345
value = pps.lowercase ? value.toLowerCase() : value;
344346

345-
// prefix
347+
// prevent from showing prefix when no immediate option enabled with empty input value
346348
if (pps.prefix && (!pps.noImmediatePrefix || value.length)) {
347349
value = pps.prefix + value;
348350

@@ -1405,15 +1407,17 @@ return /******/ (function(modules) { // webpackBootstrap
14051407
// PREFIX-123 | PEFIX-123 | 123
14061408
// PREFIX-123 | PREFIX-23 | 23
14071409
// PREFIX-123 | PREFIX-1234 | 1234
1408-
getPrefixStrippedValue: function (value, prefix, prefixLength, prevResult, delimiter, delimiters) {
1410+
getPrefixStrippedValue: function (value, prefix, prefixLength, prevResult, delimiter, delimiters, noImmediatePrefix) {
14091411
// No prefix
14101412
if (prefixLength === 0) {
14111413
return value;
14121414
}
14131415

1414-
// Pre result has issue
1415-
// Revert to raw prefix
1416+
// Pre result prefix string does not match pre-defined prefix
14161417
if (prevResult.slice(0, prefixLength) !== prefix) {
1418+
// Check if the first time user entered something
1419+
if (noImmediatePrefix && !prevResult && value) return value;
1420+
14171421
return '';
14181422
}
14191423

dist/cleave-angular.min.js

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/cleave-esm.js

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -775,15 +775,17 @@ var Util = {
775775
// PREFIX-123 | PEFIX-123 | 123
776776
// PREFIX-123 | PREFIX-23 | 23
777777
// PREFIX-123 | PREFIX-1234 | 1234
778-
getPrefixStrippedValue: function (value, prefix, prefixLength, prevResult, delimiter, delimiters) {
778+
getPrefixStrippedValue: function (value, prefix, prefixLength, prevResult, delimiter, delimiters, noImmediatePrefix) {
779779
// No prefix
780780
if (prefixLength === 0) {
781781
return value;
782782
}
783783

784-
// Pre result has issue
785-
// Revert to raw prefix
784+
// Pre result prefix string does not match pre-defined prefix
786785
if (prevResult.slice(0, prefixLength) !== prefix) {
786+
// Check if the first time user entered something
787+
if (noImmediatePrefix && !prevResult && value) return value;
788+
787789
return '';
788790
}
789791

@@ -1306,8 +1308,10 @@ Cleave.prototype = {
13061308
value = Util.stripDelimiters(value, pps.delimiter, pps.delimiters);
13071309

13081310
// strip prefix
1309-
// var strippedPreviousResult = Util.stripDelimiters(pps.result, pps.delimiter, pps.delimiters);
1310-
value = Util.getPrefixStrippedValue(value, pps.prefix, pps.prefixLength, pps.result, pps.delimiter, pps.delimiters);
1311+
value = Util.getPrefixStrippedValue(
1312+
value, pps.prefix, pps.prefixLength,
1313+
pps.result, pps.delimiter, pps.delimiters, pps.noImmediatePrefix
1314+
);
13111315

13121316
// strip non-numeric characters
13131317
value = pps.numericOnly ? Util.strip(value, /[^\d]/g) : value;
@@ -1316,7 +1320,7 @@ Cleave.prototype = {
13161320
value = pps.uppercase ? value.toUpperCase() : value;
13171321
value = pps.lowercase ? value.toLowerCase() : value;
13181322

1319-
// prefix
1323+
// prevent from showing prefix when no immediate option enabled with empty input value
13201324
if (pps.prefix && (!pps.noImmediatePrefix || value.length)) {
13211325
value = pps.prefix + value;
13221326

dist/cleave-esm.min.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/cleave-react-node.js

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -413,7 +413,7 @@ return /******/ (function(modules) { // webpackBootstrap
413413
value = Util.stripDelimiters(value, pps.delimiter, pps.delimiters);
414414

415415
// strip prefix
416-
value = Util.getPrefixStrippedValue(value, pps.prefix, pps.prefixLength, pps.result, pps.delimiter, pps.delimiters);
416+
value = Util.getPrefixStrippedValue(value, pps.prefix, pps.prefixLength, pps.result, pps.delimiter, pps.delimiters, pps.noImmediatePrefix);
417417

418418
// strip non-numeric characters
419419
value = pps.numericOnly ? Util.strip(value, /[^\d]/g) : value;
@@ -422,7 +422,7 @@ return /******/ (function(modules) { // webpackBootstrap
422422
value = pps.uppercase ? value.toUpperCase() : value;
423423
value = pps.lowercase ? value.toLowerCase() : value;
424424

425-
// prefix
425+
// prevent from showing prefix when no immediate option enabled with empty input value
426426
if (pps.prefix && (!pps.noImmediatePrefix || value.length)) {
427427
value = pps.prefix + value;
428428

@@ -2601,15 +2601,17 @@ return /******/ (function(modules) { // webpackBootstrap
26012601
// PREFIX-123 | PEFIX-123 | 123
26022602
// PREFIX-123 | PREFIX-23 | 23
26032603
// PREFIX-123 | PREFIX-1234 | 1234
2604-
getPrefixStrippedValue: function getPrefixStrippedValue(value, prefix, prefixLength, prevResult, delimiter, delimiters) {
2604+
getPrefixStrippedValue: function getPrefixStrippedValue(value, prefix, prefixLength, prevResult, delimiter, delimiters, noImmediatePrefix) {
26052605
// No prefix
26062606
if (prefixLength === 0) {
26072607
return value;
26082608
}
26092609

2610-
// Pre result has issue
2611-
// Revert to raw prefix
2610+
// Pre result prefix string does not match pre-defined prefix
26122611
if (prevResult.slice(0, prefixLength) !== prefix) {
2612+
// Check if the first time user entered something
2613+
if (noImmediatePrefix && !prevResult && value) return value;
2614+
26132615
return '';
26142616
}
26152617

dist/cleave-react-node.min.js

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/cleave-react.js

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -413,7 +413,7 @@ return /******/ (function(modules) { // webpackBootstrap
413413
value = Util.stripDelimiters(value, pps.delimiter, pps.delimiters);
414414

415415
// strip prefix
416-
value = Util.getPrefixStrippedValue(value, pps.prefix, pps.prefixLength, pps.result, pps.delimiter, pps.delimiters);
416+
value = Util.getPrefixStrippedValue(value, pps.prefix, pps.prefixLength, pps.result, pps.delimiter, pps.delimiters, pps.noImmediatePrefix);
417417

418418
// strip non-numeric characters
419419
value = pps.numericOnly ? Util.strip(value, /[^\d]/g) : value;
@@ -422,7 +422,7 @@ return /******/ (function(modules) { // webpackBootstrap
422422
value = pps.uppercase ? value.toUpperCase() : value;
423423
value = pps.lowercase ? value.toLowerCase() : value;
424424

425-
// prefix
425+
// prevent from showing prefix when no immediate option enabled with empty input value
426426
if (pps.prefix && (!pps.noImmediatePrefix || value.length)) {
427427
value = pps.prefix + value;
428428

@@ -2795,15 +2795,17 @@ return /******/ (function(modules) { // webpackBootstrap
27952795
// PREFIX-123 | PEFIX-123 | 123
27962796
// PREFIX-123 | PREFIX-23 | 23
27972797
// PREFIX-123 | PREFIX-1234 | 1234
2798-
getPrefixStrippedValue: function getPrefixStrippedValue(value, prefix, prefixLength, prevResult, delimiter, delimiters) {
2798+
getPrefixStrippedValue: function getPrefixStrippedValue(value, prefix, prefixLength, prevResult, delimiter, delimiters, noImmediatePrefix) {
27992799
// No prefix
28002800
if (prefixLength === 0) {
28012801
return value;
28022802
}
28032803

2804-
// Pre result has issue
2805-
// Revert to raw prefix
2804+
// Pre result prefix string does not match pre-defined prefix
28062805
if (prevResult.slice(0, prefixLength) !== prefix) {
2806+
// Check if the first time user entered something
2807+
if (noImmediatePrefix && !prevResult && value) return value;
2808+
28072809
return '';
28082810
}
28092811

dist/cleave-react.min.js

Lines changed: 3 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/cleave.js

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -332,8 +332,10 @@ return /******/ (function(modules) { // webpackBootstrap
332332
value = Util.stripDelimiters(value, pps.delimiter, pps.delimiters);
333333

334334
// strip prefix
335-
// var strippedPreviousResult = Util.stripDelimiters(pps.result, pps.delimiter, pps.delimiters);
336-
value = Util.getPrefixStrippedValue(value, pps.prefix, pps.prefixLength, pps.result, pps.delimiter, pps.delimiters);
335+
value = Util.getPrefixStrippedValue(
336+
value, pps.prefix, pps.prefixLength,
337+
pps.result, pps.delimiter, pps.delimiters, pps.noImmediatePrefix
338+
);
337339

338340
// strip non-numeric characters
339341
value = pps.numericOnly ? Util.strip(value, /[^\d]/g) : value;
@@ -342,7 +344,7 @@ return /******/ (function(modules) { // webpackBootstrap
342344
value = pps.uppercase ? value.toUpperCase() : value;
343345
value = pps.lowercase ? value.toLowerCase() : value;
344346

345-
// prefix
347+
// prevent from showing prefix when no immediate option enabled with empty input value
346348
if (pps.prefix && (!pps.noImmediatePrefix || value.length)) {
347349
value = pps.prefix + value;
348350

@@ -1348,15 +1350,17 @@ return /******/ (function(modules) { // webpackBootstrap
13481350
// PREFIX-123 | PEFIX-123 | 123
13491351
// PREFIX-123 | PREFIX-23 | 23
13501352
// PREFIX-123 | PREFIX-1234 | 1234
1351-
getPrefixStrippedValue: function (value, prefix, prefixLength, prevResult, delimiter, delimiters) {
1353+
getPrefixStrippedValue: function (value, prefix, prefixLength, prevResult, delimiter, delimiters, noImmediatePrefix) {
13521354
// No prefix
13531355
if (prefixLength === 0) {
13541356
return value;
13551357
}
13561358

1357-
// Pre result has issue
1358-
// Revert to raw prefix
1359+
// Pre result prefix string does not match pre-defined prefix
13591360
if (prevResult.slice(0, prefixLength) !== prefix) {
1361+
// Check if the first time user entered something
1362+
if (noImmediatePrefix && !prevResult && value) return value;
1363+
13601364
return '';
13611365
}
13621366

0 commit comments

Comments
 (0)