@progress/kendo-vue-inputs 3.3.2 → 3.3.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -19,13 +19,14 @@ var __assign = undefined && undefined.__assign || function () {
19
19
  Object.defineProperty(exports, "__esModule", {
20
20
  value: true
21
21
  });
22
- exports.sanitizeNumber = exports.changeBasedSelection = exports.getDecimalCount = exports.getFirstNumberIndex = exports.getSuffix = exports.getPrefix = exports.getLastNumberIndex = exports.reverseString = exports.getInitialPosition = exports.getFormatSymbols = exports.getFormatPrefixSufix = exports.isDecimalDuplicated = exports.isMinusSymbolAdded = exports.setInvalid = exports.setSelection = exports.rangeSelection = exports.getMinCursorPosition = exports.getMaxCursorPosition = exports.rangeValue = exports.decreaseValue = exports.increaseValue = exports.formatValue = exports.getStateOrPropsValue = exports.getInitialState = void 0;
22
+ exports.sanitizeNumber = exports.changeBasedSelection = exports.getDecimalCount = exports.getFirstNumberIndex = exports.getSuffix = exports.getPrefix = exports.getLastNumberIndex = exports.reverseString = exports.getInitialPosition = exports.getFormatSymbols = exports.getFormatPrefixSufix = exports.isDecimalDuplicated = exports.isMinusSymbolRemoved = exports.isMinusSymbolAdded = exports.setInvalid = exports.setSelection = exports.rangeSelection = exports.getMinCursorPosition = exports.getMaxCursorPosition = exports.rangeValue = exports.decreaseValue = exports.increaseValue = exports.toFixedPrecision = exports.limitPrecision = exports.fractionLength = exports.formatValue = exports.getStateOrPropsValue = exports.getInitialState = void 0;
23
23
  var DEFAULT_NUMBER = 1111111.1111111;
24
24
  var MAX_DECIMAL = 0.31111111111111117;
25
25
  var MIN_DECIMAL = 1;
26
26
  var ONE_NUMBER = 1;
27
27
  var ZERO_NUMBER = 0;
28
28
  var DIGITS_REGEX = /\d/;
29
+ var MAX_PRECISION = 15;
29
30
  /**
30
31
  * @hidden
31
32
  */
@@ -72,8 +73,42 @@ exports.formatValue = function (value, format, intlService) {
72
73
  */
73
74
 
74
75
 
76
+ exports.fractionLength = function (value) {
77
+ return (String(value).split('.')[1] || '').length;
78
+ };
79
+ /**
80
+ * @hidden
81
+ */
82
+
83
+
84
+ var maxFractionLength = function maxFractionLength(value1, value2) {
85
+ return Math.max(exports.fractionLength(value1), exports.fractionLength(value2));
86
+ };
87
+ /**
88
+ * @hidden
89
+ */
90
+
91
+
92
+ exports.limitPrecision = function (precision) {
93
+ return Math.min(precision, MAX_PRECISION);
94
+ };
95
+ /**
96
+ * @hidden
97
+ */
98
+
99
+
100
+ exports.toFixedPrecision = function (value, precision) {
101
+ var maxPrecision = exports.limitPrecision(precision);
102
+ return parseFloat(value.toFixed(maxPrecision));
103
+ };
104
+ /**
105
+ * @hidden
106
+ */
107
+
108
+
75
109
  exports.increaseValue = function (value, newState, step, min, max, format, intlService) {
76
- var increasedValue = exports.rangeValue((value || 0) + (step || 0), min, max);
110
+ var maxPrecision = maxFractionLength(value || 0, step || 0);
111
+ var increasedValue = exports.rangeValue(exports.toFixedPrecision((value || 0) + (step || 0), maxPrecision), min, max);
77
112
  newState.eventValue = increasedValue;
78
113
  newState.currentLooseValue = exports.formatValue(increasedValue, format, intlService);
79
114
  newState.selectionStart = newState.selectionEnd = exports.getLastNumberIndex(newState.currentLooseValue, DIGITS_REGEX);
@@ -84,7 +119,8 @@ exports.increaseValue = function (value, newState, step, min, max, format, intlS
84
119
 
85
120
 
86
121
  exports.decreaseValue = function (value, newState, step, min, max, format, intlService) {
87
- var decreasedValue = exports.rangeValue((value || 0) - (step || 0), min, max);
122
+ var maxPrecision = maxFractionLength(value || 0, step || 0);
123
+ var decreasedValue = exports.rangeValue(exports.toFixedPrecision((value || 0) - (step || 0), maxPrecision), min, max);
88
124
  newState.eventValue = decreasedValue;
89
125
  newState.currentLooseValue = exports.formatValue(decreasedValue, format, intlService);
90
126
  newState.selectionStart = newState.selectionEnd = exports.getLastNumberIndex(newState.currentLooseValue, DIGITS_REGEX);
@@ -218,6 +254,16 @@ exports.isMinusSymbolAdded = function (newState, symbols) {
218
254
  */
219
255
 
220
256
 
257
+ exports.isMinusSymbolRemoved = function (newState, symbols) {
258
+ var newText = String(newState.currentLooseValue);
259
+ var oldText = String(newState.prevLooseValue);
260
+ return newText.indexOf(symbols.minusSign) === -1 && oldText.indexOf(symbols.minusSign) !== -1;
261
+ };
262
+ /**
263
+ * @hidden
264
+ */
265
+
266
+
221
267
  exports.isDecimalDuplicated = function (newState, symbols) {
222
268
  var newText = String(newState.currentLooseValue);
223
269
  return newText.split(symbols.decimal).length > 2;
@@ -372,8 +418,7 @@ exports.changeBasedSelection = function (currentValue, nextValue, selectionPosit
372
418
  */
373
419
 
374
420
 
375
- exports.sanitizeNumber = function (state, // NumericTextBoxData,
376
- format, intlService) {
421
+ exports.sanitizeNumber = function (state, format, intlService) {
377
422
  var newState = __assign({}, state);
378
423
 
379
424
  var prevLooseValue = newState.prevLooseValue;
@@ -411,6 +456,7 @@ format, intlService) {
411
456
  }) !== -1;
412
457
  }) !== 1;
413
458
  var isDelete = currentLooseValueAsString.length > 0 && currentLooseValueAsString.length < prevLooseValueAsString.length;
459
+ var isPercentFormat = format && format[0] === 'p' && currentLooseValueAsString && currentLooseValueAsString.indexOf(symbols.percentSign) === -1;
414
460
 
415
461
  if (!newState.isPaste) {
416
462
  // 1. Empty input
@@ -437,6 +483,12 @@ format, intlService) {
437
483
  var oldNumberStart = exports.getFirstNumberIndex(prevLooseValueAsString, DIGITS_REGEX);
438
484
  exports.setSelection(newState, newState.selectionEnd - 1 + (currentNumberStart - oldNumberStart), newState.currentLooseValue, formatInfo);
439
485
  return newState;
486
+ }
487
+
488
+ if (exports.isMinusSymbolRemoved(newState, symbols)) {
489
+ newState.eventValue = intlService.parseNumber(newState.currentLooseValue, format);
490
+ exports.setSelection(newState, newState.selectionStart, newState.currentLooseValue, formatInfo);
491
+ return newState;
440
492
  } // 4. Check is decimal symbol
441
493
 
442
494
 
@@ -462,7 +514,7 @@ format, intlService) {
462
514
  } // 6. Percent format
463
515
 
464
516
 
465
- if (format === 'p' && currentLooseValueAsString && currentLooseValueAsString.indexOf(symbols.percentSign) === -1) {
517
+ if (isPercentFormat) {
466
518
  newState.eventValue = intlService.parseNumber(currentLooseValueAsString, format) / 100;
467
519
  newState.currentLooseValue = exports.formatValue(newState.eventValue, format, intlService);
468
520
  return newState;
@@ -471,7 +523,7 @@ format, intlService) {
471
523
 
472
524
  var numericSymbols = String(newState.currentLooseValue).replace(/[^\d]/g, '');
473
525
 
474
- if (numericSymbols.length > 15) {
526
+ if (numericSymbols.length > MAX_PRECISION) {
475
527
  exports.setInvalid(newState, format, formatInfo, intlService);
476
528
  return newState;
477
529
  } // 8. Check prefix / suffix for modifications
@@ -604,6 +656,10 @@ format, intlService) {
604
656
 
605
657
  newState.eventValue = intlService.parseNumber(newState.currentLooseValue, format);
606
658
 
659
+ if (isPercentFormat) {
660
+ newState.eventValue = newState.eventValue / 100;
661
+ }
662
+
607
663
  if (typeof newState.eventValue === 'number') {
608
664
  var nextLooseValue = exports.formatValue(newState.eventValue, format, intlService); // First digit add
609
665
 
@@ -8,7 +8,7 @@ exports.packageMetadata = {
8
8
  name: '@progress/kendo-vue-inputs',
9
9
  productName: 'Kendo UI for Vue',
10
10
  productCodes: ['KENDOUIVUE', 'KENDOUICOMPLETE'],
11
- publishDate: 1653315229,
11
+ publishDate: 1653913910,
12
12
  version: '',
13
13
  licensingDocsUrl: 'https://www.telerik.com/kendo-vue-ui/my-license/?utm_medium=product&utm_source=kendovue&utm_campaign=kendo-ui-vue-purchase-license-keys-warning'
14
14
  };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@progress/kendo-vue-inputs",
3
3
  "description": "Kendo UI for Vue Input package",
4
- "version": "3.3.2",
4
+ "version": "3.3.3",
5
5
  "repository": {
6
6
  "type": "git",
7
7
  "url": "https://github.com/telerik/kendo-vue.git"
@@ -38,21 +38,21 @@
38
38
  "vue": "^2.6.12 || ^3.0.2"
39
39
  },
40
40
  "dependencies": {
41
- "@progress/kendo-vue-buttons": "3.3.2",
42
- "@progress/kendo-vue-common": "3.3.2",
43
- "@progress/kendo-vue-labels": "3.3.2",
44
- "@progress/kendo-vue-popup": "3.3.2"
41
+ "@progress/kendo-vue-buttons": "3.3.3",
42
+ "@progress/kendo-vue-common": "3.3.3",
43
+ "@progress/kendo-vue-labels": "3.3.3",
44
+ "@progress/kendo-vue-popup": "3.3.3"
45
45
  },
46
46
  "devDependencies": {
47
47
  "@progress/kendo-data-query": "^1.5.5",
48
48
  "@progress/kendo-date-math": "^1.5.4",
49
49
  "@progress/kendo-drawing": "^1.8.0",
50
50
  "@progress/kendo-licensing": "^1.1.0",
51
- "@progress/kendo-vue-buttons": "3.3.2",
52
- "@progress/kendo-vue-form": "3.3.2",
53
- "@progress/kendo-vue-intl": "3.3.2",
54
- "@progress/kendo-vue-labels": "3.3.2",
55
- "@progress/kendo-vue-tooltip": "3.3.2",
51
+ "@progress/kendo-vue-buttons": "3.3.3",
52
+ "@progress/kendo-vue-form": "3.3.3",
53
+ "@progress/kendo-vue-intl": "3.3.3",
54
+ "@progress/kendo-vue-labels": "3.3.3",
55
+ "@progress/kendo-vue-tooltip": "3.3.3",
56
56
  "cldr-core": "^34.0.0",
57
57
  "cldr-dates-full": "^34.0.0",
58
58
  "cldr-numbers-full": "^34.0.0"