Skip to content

Commit c0a3359

Browse files
committed
feature: strict positive number
Signed-off-by: Changyu Geng <[email protected]>
1 parent e3fa6f3 commit c0a3359

18 files changed

+142
-31
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.6.0",
6+
"version": "1.6.1",
77
"author": {
88
"name": "Max Huang",
99
"email": "[email protected]",

dist/cleave-angular.js

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@ return /******/ (function(modules) { // webpackBootstrap
6262
* @param {String | HTMLElement} element
6363
* @param {Object} opts
6464
*/
65+
6566
var Cleave = function (element, opts) {
6667
var owner = this;
6768
var hasMultipleElements = false;
@@ -116,6 +117,7 @@ return /******/ (function(modules) { // webpackBootstrap
116117
owner.isBackward = '';
117118

118119
owner.onChangeListener = owner.onChange.bind(owner);
120+
owner.onBlurListener = owner.onBlur.bind(owner);
119121
owner.onKeyDownListener = owner.onKeyDown.bind(owner);
120122
owner.onFocusListener = owner.onFocus.bind(owner);
121123
owner.onCutListener = owner.onCut.bind(owner);
@@ -124,6 +126,7 @@ return /******/ (function(modules) { // webpackBootstrap
124126
owner.initSwapHiddenInput();
125127

126128
owner.element.addEventListener('input', owner.onChangeListener);
129+
owner.element.addEventListener('blur', owner.onBlurListener );
127130
owner.element.addEventListener('keydown', owner.onKeyDownListener);
128131
owner.element.addEventListener('focus', owner.onFocusListener);
129132
owner.element.addEventListener('cut', owner.onCutListener);
@@ -395,6 +398,20 @@ return /******/ (function(modules) { // webpackBootstrap
395398
owner.updateValueState();
396399
},
397400

401+
onBlur: function () {
402+
var owner = this, pps = owner.properties,
403+
value = parseFloat(owner.getRawValue());
404+
405+
// numeral formatter
406+
if (pps.numeral && (isNaN(value) // if `.` only entered
407+
|| (pps.numeralPositiveOnly === 'strict' && value === 0))) {
408+
pps.result = '';
409+
owner.updateValueState();
410+
411+
return;
412+
}
413+
},
414+
398415
updateCreditCardPropsByValue: function (value) {
399416
var owner = this, pps = owner.properties,
400417
Util = Cleave.Util,
@@ -530,6 +547,7 @@ return /******/ (function(modules) { // webpackBootstrap
530547
var owner = this;
531548

532549
owner.element.removeEventListener('input', owner.onChangeListener);
550+
owner.element.removeEventListener('blur', owner.onBlurListener);
533551
owner.element.removeEventListener('keydown', owner.onKeyDownListener);
534552
owner.element.removeEventListener('focus', owner.onFocusListener);
535553
owner.element.removeEventListener('cut', owner.onCutListener);
@@ -1667,14 +1685,14 @@ return /******/ (function(modules) { // webpackBootstrap
16671685
target.numeralDecimalScale = opts.numeralDecimalScale >= 0 ? opts.numeralDecimalScale : 2;
16681686
target.numeralDecimalMark = opts.numeralDecimalMark || '.';
16691687
target.numeralThousandsGroupStyle = opts.numeralThousandsGroupStyle || 'thousand';
1670-
target.numeralPositiveOnly = !!opts.numeralPositiveOnly;
1688+
target.numeralPositiveOnly = opts.numeralPositiveOnly;
16711689
target.stripLeadingZeroes = opts.stripLeadingZeroes !== false;
16721690
target.signBeforePrefix = !!opts.signBeforePrefix;
16731691
target.tailPrefix = !!opts.tailPrefix;
16741692

16751693
// others
16761694
target.swapHiddenInput = !!opts.swapHiddenInput;
1677-
1695+
16781696
target.numericOnly = target.creditCard || target.date || !!opts.numericOnly;
16791697

16801698
target.uppercase = !!opts.uppercase;

dist/cleave-angular.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-esm.js

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1005,14 +1005,14 @@ var DefaultProperties = {
10051005
target.numeralDecimalScale = opts.numeralDecimalScale >= 0 ? opts.numeralDecimalScale : 2;
10061006
target.numeralDecimalMark = opts.numeralDecimalMark || '.';
10071007
target.numeralThousandsGroupStyle = opts.numeralThousandsGroupStyle || 'thousand';
1008-
target.numeralPositiveOnly = !!opts.numeralPositiveOnly;
1008+
target.numeralPositiveOnly = opts.numeralPositiveOnly;
10091009
target.stripLeadingZeroes = opts.stripLeadingZeroes !== false;
10101010
target.signBeforePrefix = !!opts.signBeforePrefix;
10111011
target.tailPrefix = !!opts.tailPrefix;
10121012

10131013
// others
10141014
target.swapHiddenInput = !!opts.swapHiddenInput;
1015-
1015+
10161016
target.numericOnly = target.creditCard || target.date || !!opts.numericOnly;
10171017

10181018
target.uppercase = !!opts.uppercase;
@@ -1062,6 +1062,7 @@ var DefaultProperties_1 = DefaultProperties;
10621062
* @param {String | HTMLElement} element
10631063
* @param {Object} opts
10641064
*/
1065+
10651066
var Cleave = function (element, opts) {
10661067
var owner = this;
10671068
var hasMultipleElements = false;
@@ -1116,6 +1117,7 @@ Cleave.prototype = {
11161117
owner.isBackward = '';
11171118

11181119
owner.onChangeListener = owner.onChange.bind(owner);
1120+
owner.onBlurListener = owner.onBlur.bind(owner);
11191121
owner.onKeyDownListener = owner.onKeyDown.bind(owner);
11201122
owner.onFocusListener = owner.onFocus.bind(owner);
11211123
owner.onCutListener = owner.onCut.bind(owner);
@@ -1124,6 +1126,7 @@ Cleave.prototype = {
11241126
owner.initSwapHiddenInput();
11251127

11261128
owner.element.addEventListener('input', owner.onChangeListener);
1129+
owner.element.addEventListener('blur', owner.onBlurListener );
11271130
owner.element.addEventListener('keydown', owner.onKeyDownListener);
11281131
owner.element.addEventListener('focus', owner.onFocusListener);
11291132
owner.element.addEventListener('cut', owner.onCutListener);
@@ -1395,6 +1398,20 @@ Cleave.prototype = {
13951398
owner.updateValueState();
13961399
},
13971400

1401+
onBlur: function () {
1402+
var owner = this, pps = owner.properties,
1403+
value = parseFloat(owner.getRawValue());
1404+
1405+
// numeral formatter
1406+
if (pps.numeral && (isNaN(value) // if `.` only entered
1407+
|| (pps.numeralPositiveOnly === 'strict' && value === 0))) {
1408+
pps.result = '';
1409+
owner.updateValueState();
1410+
1411+
return;
1412+
}
1413+
},
1414+
13981415
updateCreditCardPropsByValue: function (value) {
13991416
var owner = this, pps = owner.properties,
14001417
Util = Cleave.Util,
@@ -1530,6 +1547,7 @@ Cleave.prototype = {
15301547
var owner = this;
15311548

15321549
owner.element.removeEventListener('input', owner.onChangeListener);
1550+
owner.element.removeEventListener('blur', owner.onBlurListener);
15331551
owner.element.removeEventListener('keydown', owner.onKeyDownListener);
15341552
owner.element.removeEventListener('focus', owner.onFocusListener);
15351553
owner.element.removeEventListener('cut', owner.onCutListener);

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: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -327,7 +327,14 @@ return /******/ (function(modules) { // webpackBootstrap
327327

328328
onBlur: function onBlur(event) {
329329
var owner = this,
330-
pps = owner.properties;
330+
pps = owner.properties,
331+
value = parseFloat(owner.getRawValue());
332+
333+
// numeral formatter
334+
if (pps.numeral && (isNaN(value) // if `.` only entered
335+
|| pps.numeralPositiveOnly === 'strict' && value === 0)) {
336+
pps.result = '';
337+
}
331338

332339
event.target.rawValue = owner.getRawValue();
333340
event.target.value = pps.result;
@@ -2840,7 +2847,7 @@ return /******/ (function(modules) { // webpackBootstrap
28402847
target.numeralDecimalScale = opts.numeralDecimalScale >= 0 ? opts.numeralDecimalScale : 2;
28412848
target.numeralDecimalMark = opts.numeralDecimalMark || '.';
28422849
target.numeralThousandsGroupStyle = opts.numeralThousandsGroupStyle || 'thousand';
2843-
target.numeralPositiveOnly = !!opts.numeralPositiveOnly;
2850+
target.numeralPositiveOnly = opts.numeralPositiveOnly;
28442851
target.stripLeadingZeroes = opts.stripLeadingZeroes !== false;
28452852
target.signBeforePrefix = !!opts.signBeforePrefix;
28462853
target.tailPrefix = !!opts.tailPrefix;

dist/cleave-react-node.min.js

Lines changed: 4 additions & 3 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: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -327,7 +327,14 @@ return /******/ (function(modules) { // webpackBootstrap
327327

328328
onBlur: function onBlur(event) {
329329
var owner = this,
330-
pps = owner.properties;
330+
pps = owner.properties,
331+
value = parseFloat(owner.getRawValue());
332+
333+
// numeral formatter
334+
if (pps.numeral && (isNaN(value) // if `.` only entered
335+
|| pps.numeralPositiveOnly === 'strict' && value === 0)) {
336+
pps.result = '';
337+
}
331338

332339
event.target.rawValue = owner.getRawValue();
333340
event.target.value = pps.result;
@@ -3034,7 +3041,7 @@ return /******/ (function(modules) { // webpackBootstrap
30343041
target.numeralDecimalScale = opts.numeralDecimalScale >= 0 ? opts.numeralDecimalScale : 2;
30353042
target.numeralDecimalMark = opts.numeralDecimalMark || '.';
30363043
target.numeralThousandsGroupStyle = opts.numeralThousandsGroupStyle || 'thousand';
3037-
target.numeralPositiveOnly = !!opts.numeralPositiveOnly;
3044+
target.numeralPositiveOnly = opts.numeralPositiveOnly;
30383045
target.stripLeadingZeroes = opts.stripLeadingZeroes !== false;
30393046
target.signBeforePrefix = !!opts.signBeforePrefix;
30403047
target.tailPrefix = !!opts.tailPrefix;

dist/cleave-react.min.js

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

dist/cleave.js

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@ return /******/ (function(modules) { // webpackBootstrap
6262
* @param {String | HTMLElement} element
6363
* @param {Object} opts
6464
*/
65+
6566
var Cleave = function (element, opts) {
6667
var owner = this;
6768
var hasMultipleElements = false;
@@ -116,6 +117,7 @@ return /******/ (function(modules) { // webpackBootstrap
116117
owner.isBackward = '';
117118

118119
owner.onChangeListener = owner.onChange.bind(owner);
120+
owner.onBlurListener = owner.onBlur.bind(owner);
119121
owner.onKeyDownListener = owner.onKeyDown.bind(owner);
120122
owner.onFocusListener = owner.onFocus.bind(owner);
121123
owner.onCutListener = owner.onCut.bind(owner);
@@ -124,6 +126,7 @@ return /******/ (function(modules) { // webpackBootstrap
124126
owner.initSwapHiddenInput();
125127

126128
owner.element.addEventListener('input', owner.onChangeListener);
129+
owner.element.addEventListener('blur', owner.onBlurListener );
127130
owner.element.addEventListener('keydown', owner.onKeyDownListener);
128131
owner.element.addEventListener('focus', owner.onFocusListener);
129132
owner.element.addEventListener('cut', owner.onCutListener);
@@ -395,6 +398,20 @@ return /******/ (function(modules) { // webpackBootstrap
395398
owner.updateValueState();
396399
},
397400

401+
onBlur: function () {
402+
var owner = this, pps = owner.properties,
403+
value = parseFloat(owner.getRawValue());
404+
405+
// numeral formatter
406+
if (pps.numeral && (isNaN(value) // if `.` only entered
407+
|| (pps.numeralPositiveOnly === 'strict' && value === 0))) {
408+
pps.result = '';
409+
owner.updateValueState();
410+
411+
return;
412+
}
413+
},
414+
398415
updateCreditCardPropsByValue: function (value) {
399416
var owner = this, pps = owner.properties,
400417
Util = Cleave.Util,
@@ -530,6 +547,7 @@ return /******/ (function(modules) { // webpackBootstrap
530547
var owner = this;
531548

532549
owner.element.removeEventListener('input', owner.onChangeListener);
550+
owner.element.removeEventListener('blur', owner.onBlurListener);
533551
owner.element.removeEventListener('keydown', owner.onKeyDownListener);
534552
owner.element.removeEventListener('focus', owner.onFocusListener);
535553
owner.element.removeEventListener('cut', owner.onCutListener);
@@ -1610,14 +1628,14 @@ return /******/ (function(modules) { // webpackBootstrap
16101628
target.numeralDecimalScale = opts.numeralDecimalScale >= 0 ? opts.numeralDecimalScale : 2;
16111629
target.numeralDecimalMark = opts.numeralDecimalMark || '.';
16121630
target.numeralThousandsGroupStyle = opts.numeralThousandsGroupStyle || 'thousand';
1613-
target.numeralPositiveOnly = !!opts.numeralPositiveOnly;
1631+
target.numeralPositiveOnly = opts.numeralPositiveOnly;
16141632
target.stripLeadingZeroes = opts.stripLeadingZeroes !== false;
16151633
target.signBeforePrefix = !!opts.signBeforePrefix;
16161634
target.tailPrefix = !!opts.tailPrefix;
16171635

16181636
// others
16191637
target.swapHiddenInput = !!opts.swapHiddenInput;
1620-
1638+
16211639
target.numericOnly = target.creditCard || target.date || !!opts.numericOnly;
16221640

16231641
target.uppercase = !!opts.uppercase;

0 commit comments

Comments
 (0)