intelicoreact 0.1.67 → 0.1.70

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.
@@ -9,6 +9,10 @@ Object.defineProperty(exports, "__esModule", {
9
9
  });
10
10
  exports.default = InputMask;
11
11
 
12
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
13
+
14
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
15
+
12
16
  var _toArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toArray"));
13
17
 
14
18
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
@@ -119,7 +123,7 @@ function InputMask() {
119
123
  isFocused = _useState6[0],
120
124
  setFocused = _useState6[1];
121
125
 
122
- var _useState7 = (0, _react.useState)(null),
126
+ var _useState7 = (0, _react.useState)(false),
123
127
  _useState8 = (0, _slicedToArray2.default)(_useState7, 2),
124
128
  isInitValue = _useState8[0],
125
129
  setIsInitValue = _useState8[1]; // ERRORS MANAGEMENT FUNCTIONS | START //
@@ -474,7 +478,11 @@ function InputMask() {
474
478
  if (isSpecialSymbol) return onBackspaceDown(e, prevIndex);
475
479
 
476
480
  if (maskAsPlaceholder) {
477
- var newText = getInnerValueAsString().substring(0, prevIndex) + getInnerValueAsString().substring(i, maxEditableLen !== -1 ? maxEditableLen : getInnerValueAsString().length);
481
+ var newText = innerValue.slice(0, prevIndex).concat(innerValue.slice(i, maxEditableLen !== -1 ? maxEditableLen : innerValue.length)).reduce(function (text, _ref12) {
482
+ var char = _ref12.char;
483
+ return text.concat(char);
484
+ }, ''); // const newText = getInnerValueAsString().substring(0, prevIndex) + getInnerValueAsString().substring(i, maxEditableLen !== -1 ? maxEditableLen : getInnerValueAsString().length);
485
+
478
486
  resetInnerValue();
479
487
 
480
488
  _onPaste({
@@ -490,34 +498,84 @@ function InputMask() {
490
498
  return true;
491
499
  };
492
500
 
493
- var onDeleteDown = function onDeleteDown(e, i) {
494
- if ((0, _functions.getSelectionText)().length) return deleteSelectedText();
495
- var nextIndex = i + 1;
496
- var charObj = getCharByIndex(i);
497
- if (!charObj) return false;
498
- var char = charObj.char,
499
- isSpecialSymbol = charObj.isSpecialSymbol;
500
- if (isSpecialSymbol) return onDeleteDown(e, i + 1);
501
- if (char === '') return false;
502
-
503
- if (maskAsPlaceholder) {
504
- var newText = getInnerValueAsString().substring(0, i) + getInnerValueAsString().substring(nextIndex, maxEditableLen !== -1 ? maxEditableLen : getInnerValueAsString().length);
505
- resetInnerValue();
506
-
507
- _onPaste({
508
- text: newText
509
- }, 0);
510
-
511
- setFocusOnChar(i, i);
512
- } else {
513
- updateInnerValueChar({
514
- char: ''
515
- }, i);
516
- setFocusOnChar(nextIndex, i);
517
- }
501
+ var onDeleteDown = /*#__PURE__*/function () {
502
+ var _ref13 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(e, i) {
503
+ var nextIndex, charObj, char, isSpecialSymbol, newText;
504
+ return _regenerator.default.wrap(function _callee$(_context) {
505
+ while (1) {
506
+ switch (_context.prev = _context.next) {
507
+ case 0:
508
+ if (!(0, _functions.getSelectionText)().length) {
509
+ _context.next = 2;
510
+ break;
511
+ }
512
+
513
+ return _context.abrupt("return", deleteSelectedText());
514
+
515
+ case 2:
516
+ nextIndex = i + 1;
517
+ charObj = getCharByIndex(i);
518
+
519
+ if (charObj) {
520
+ _context.next = 6;
521
+ break;
522
+ }
523
+
524
+ return _context.abrupt("return", false);
525
+
526
+ case 6:
527
+ char = charObj.char, isSpecialSymbol = charObj.isSpecialSymbol;
528
+
529
+ if (!isSpecialSymbol) {
530
+ _context.next = 9;
531
+ break;
532
+ }
533
+
534
+ return _context.abrupt("return", onDeleteDown(e, i + 1));
535
+
536
+ case 9:
537
+ if (!(char === '')) {
538
+ _context.next = 11;
539
+ break;
540
+ }
541
+
542
+ return _context.abrupt("return", false);
543
+
544
+ case 11:
545
+ if (maskAsPlaceholder) {
546
+ newText = innerValue.slice(0, i).concat(innerValue.slice(nextIndex, maxEditableLen !== -1 ? maxEditableLen : innerValue.length)).reduce(function (text, _ref14) {
547
+ var char = _ref14.char;
548
+ return text.concat(char);
549
+ }, ''); // const newText = getInnerValueAsString().substring(0, i) + getInnerValueAsString().substring(nextIndex, maxEditableLen !== -1 ? maxEditableLen : getInnerValueAsString().length);
550
+
551
+ resetInnerValue();
552
+
553
+ _onPaste({
554
+ text: newText
555
+ }, 0);
556
+
557
+ setFocusOnChar(i, i);
558
+ } else {
559
+ updateInnerValueChar({
560
+ char: ''
561
+ }, i);
562
+ setFocusOnChar(nextIndex, i);
563
+ }
564
+
565
+ return _context.abrupt("return", true);
566
+
567
+ case 13:
568
+ case "end":
569
+ return _context.stop();
570
+ }
571
+ }
572
+ }, _callee);
573
+ }));
518
574
 
519
- return true;
520
- };
575
+ return function onDeleteDown(_x, _x2) {
576
+ return _ref13.apply(this, arguments);
577
+ };
578
+ }();
521
579
 
522
580
  var onHomeDown = function onHomeDown(e, i) {
523
581
  return setFocusOnChar(0, -1);
@@ -565,58 +623,160 @@ function InputMask() {
565
623
  }
566
624
  };
567
625
 
568
- var handleKeyDown = function handleKeyDown(e, i) {
569
- var _getClearInnerValueAs;
570
-
571
- var _ref12 = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {},
572
- _ref12$disableErrors = _ref12.disableErrors,
573
- disableErrors = _ref12$disableErrors === void 0 ? false : _ref12$disableErrors;
574
-
575
- try {
576
- e.stopPropagation();
577
- e.preventDefault();
578
- } catch (e) {}
579
-
580
- var key = e.key;
581
- var charObj = getCharByIndex(i);
582
- if (!charObj || i === innerValue.length - 1) return false;
583
- if (maskAsPlaceholder && i > getLastTypedIndex() + 1) return handleKeyDown(e, getLastTypedIndex() === 0 ? 0 : getLastTypedIndex() + 1, {
584
- disableErrors: disableErrors
585
- });
586
- var isSpecialSymbol = charObj.isSpecialSymbol,
587
- maskChar = charObj.maskChar,
588
- isReadOnly = charObj.isReadOnly;
589
- if (isReadOnly) return false; //IF DEFAULT CHAR IS SPACE, SWITCH TO NEXT INPUT
590
-
591
- if (maskChar === _config.SPACE_CHAR) return handleKeyDown(e, i + 1);
592
- if (isSpecialSymbol && maskChar !== key) return false;
593
- if (!isValidChar({
594
- char: key,
595
- i: i,
596
- disableErrors: disableErrors
597
- })) return false;
598
-
599
- if (maskAsPlaceholder && ((_getClearInnerValueAs = getClearInnerValueAsString(i)) === null || _getClearInnerValueAs === void 0 ? void 0 : _getClearInnerValueAs.length) !== 0) {
600
- var fromIndex = i + 1;
601
- var text = innerValue.slice().filter(function (_ref13, index) {
602
- var isCharSymbol = _ref13.isCharSymbol;
603
- return index >= i && !isCharSymbol;
604
- }).map(function (_ref14, index) {
605
- var char = _ref14.char;
606
- return char;
607
- }).join('');
608
-
609
- _onPaste({
610
- text: text
611
- }, fromIndex, false);
612
- }
626
+ var handleKeyDown = /*#__PURE__*/function () {
627
+ var _ref15 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(e, i) {
628
+ var _getClearInnerValueAs;
629
+
630
+ var _ref16,
631
+ _ref16$disableErrors,
632
+ disableErrors,
633
+ key,
634
+ keyCode,
635
+ charObj,
636
+ charRef,
637
+ isSpecialSymbol,
638
+ maskChar,
639
+ isReadOnly,
640
+ fromIndex,
641
+ text,
642
+ _args2 = arguments;
643
+
644
+ return _regenerator.default.wrap(function _callee2$(_context2) {
645
+ while (1) {
646
+ switch (_context2.prev = _context2.next) {
647
+ case 0:
648
+ _ref16 = _args2.length > 2 && _args2[2] !== undefined ? _args2[2] : {}, _ref16$disableErrors = _ref16.disableErrors, disableErrors = _ref16$disableErrors === void 0 ? false : _ref16$disableErrors;
649
+
650
+ try {
651
+ e.stopPropagation();
652
+ e.preventDefault();
653
+ } catch (e) {}
654
+
655
+ key = e.key, keyCode = e.keyCode;
656
+ charObj = getCharByIndex(i); // Android Text Typing FIX
657
+ // eslint-disable-next-line eqeqeq
658
+
659
+ if (!(keyCode == _config.ANDROID_CHROME_TEXT_CODE)) {
660
+ _context2.next = 9;
661
+ break;
662
+ }
663
+
664
+ charRef = charObj.ref;
665
+ _context2.next = 8;
666
+ return new Promise(function (resolve) {
667
+ setTimeout(function () {
668
+ var _charRef$current, _charRef$current$inne;
669
+
670
+ //Typed Text
671
+ if ((charRef === null || charRef === void 0 ? void 0 : (_charRef$current = charRef.current) === null || _charRef$current === void 0 ? void 0 : (_charRef$current$inne = _charRef$current.innerText) === null || _charRef$current$inne === void 0 ? void 0 : _charRef$current$inne.length) >= 2) {
672
+ var _charRef$current2;
673
+
674
+ var _charRef$current$inne2 = charRef === null || charRef === void 0 ? void 0 : (_charRef$current2 = charRef.current) === null || _charRef$current2 === void 0 ? void 0 : _charRef$current2.innerText,
675
+ _charRef$current$inne3 = (0, _slicedToArray2.default)(_charRef$current$inne2, 2),
676
+ _key = _charRef$current$inne3[0],
677
+ prevChar = _charRef$current$inne3[1];
678
+
679
+ charRef.current.innerText = prevChar;
680
+ resolve(_key);
681
+ } else {
682
+ resolve(null);
683
+ }
684
+ }, 1);
685
+ });
686
+
687
+ case 8:
688
+ key = _context2.sent;
689
+
690
+ case 9:
691
+ if (!(!charObj || i === innerValue.length - 1)) {
692
+ _context2.next = 11;
693
+ break;
694
+ }
695
+
696
+ return _context2.abrupt("return", false);
697
+
698
+ case 11:
699
+ if (!(maskAsPlaceholder && i > getLastTypedIndex() + 1)) {
700
+ _context2.next = 13;
701
+ break;
702
+ }
703
+
704
+ return _context2.abrupt("return", handleKeyDown(e, getLastTypedIndex() === 0 ? 0 : getLastTypedIndex() + 1, {
705
+ disableErrors: disableErrors
706
+ }));
707
+
708
+ case 13:
709
+ isSpecialSymbol = charObj.isSpecialSymbol, maskChar = charObj.maskChar, isReadOnly = charObj.isReadOnly;
710
+
711
+ if (!isReadOnly) {
712
+ _context2.next = 16;
713
+ break;
714
+ }
715
+
716
+ return _context2.abrupt("return", false);
717
+
718
+ case 16:
719
+ if (!(maskChar === _config.SPACE_CHAR)) {
720
+ _context2.next = 18;
721
+ break;
722
+ }
723
+
724
+ return _context2.abrupt("return", handleKeyDown(e, i + 1));
725
+
726
+ case 18:
727
+ if (!(isSpecialSymbol && maskChar !== key)) {
728
+ _context2.next = 20;
729
+ break;
730
+ }
731
+
732
+ return _context2.abrupt("return", false);
733
+
734
+ case 20:
735
+ if (isValidChar({
736
+ char: key,
737
+ i: i,
738
+ disableErrors: disableErrors
739
+ })) {
740
+ _context2.next = 22;
741
+ break;
742
+ }
743
+
744
+ return _context2.abrupt("return", false);
745
+
746
+ case 22:
747
+ if (maskAsPlaceholder && ((_getClearInnerValueAs = getClearInnerValueAsString(i)) === null || _getClearInnerValueAs === void 0 ? void 0 : _getClearInnerValueAs.length) !== 0) {
748
+ fromIndex = i + 1;
749
+ text = innerValue.slice().filter(function (_ref17, index) {
750
+ var isCharSymbol = _ref17.isCharSymbol;
751
+ return index >= i && !isCharSymbol;
752
+ }).map(function (_ref18, index) {
753
+ var char = _ref18.char;
754
+ return char;
755
+ }).join('');
756
+
757
+ _onPaste({
758
+ text: text
759
+ }, fromIndex, false);
760
+ }
761
+
762
+ updateInnerValueChar({
763
+ char: key
764
+ }, i);
765
+ onArrowRightDown(e, i);
766
+ return _context2.abrupt("return", true);
767
+
768
+ case 26:
769
+ case "end":
770
+ return _context2.stop();
771
+ }
772
+ }
773
+ }, _callee2);
774
+ }));
613
775
 
614
- updateInnerValueChar({
615
- char: key
616
- }, i);
617
- onArrowRightDown(e, i);
618
- return true;
619
- };
776
+ return function handleKeyDown(_x3, _x4) {
777
+ return _ref15.apply(this, arguments);
778
+ };
779
+ }();
620
780
 
621
781
  var handleKeyCombinations = function handleKeyCombinations(e, i) {
622
782
  var key = e.key,
@@ -655,9 +815,9 @@ function InputMask() {
655
815
  };
656
816
 
657
817
  var onClick = function onClick(e, cb) {
658
- var _ref15 = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {},
659
- _ref15$ignoreIsSelect = _ref15.ignoreIsSelecting,
660
- ignoreIsSelecting = _ref15$ignoreIsSelect === void 0 ? false : _ref15$ignoreIsSelect;
818
+ var _ref19 = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {},
819
+ _ref19$ignoreIsSelect = _ref19.ignoreIsSelecting,
820
+ ignoreIsSelecting = _ref19$ignoreIsSelect === void 0 ? false : _ref19$ignoreIsSelect;
661
821
 
662
822
  try {
663
823
  e.stopPropagation();
@@ -670,9 +830,9 @@ function InputMask() {
670
830
  };
671
831
 
672
832
  var onCharClick = function onCharClick(e, i) {
673
- e.preventDefault();
674
- e.stopPropagation();
675
-
833
+ // ??????????????????? DON'T REMOVE !
834
+ // e.preventDefault();
835
+ // e.stopPropagation();
676
836
  var _getCharByIndex2 = getCharByIndex(i),
677
837
  char = _getCharByIndex2.char,
678
838
  maskChar = _getCharByIndex2.maskChar;
@@ -741,7 +901,7 @@ function InputMask() {
741
901
  };
742
902
 
743
903
  var _onPaste = function onPaste(e, i) {
744
- var _ref16, _window, _e$clipboardData;
904
+ var _ref20, _window, _e$clipboardData;
745
905
 
746
906
  var setFocusToEnd = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
747
907
 
@@ -752,17 +912,17 @@ function InputMask() {
752
912
 
753
913
  setIsSelecting(false);
754
914
  (0, _functions.resetSelectionText)();
755
- var pastedText = ((_ref16 = (e === null || e === void 0 ? void 0 : e.clipboardData) || ((_window = window) === null || _window === void 0 ? void 0 : _window.clipboardData)) === null || _ref16 === void 0 ? void 0 : _ref16.getData('text/plain')) || (e === null || e === void 0 ? void 0 : (_e$clipboardData = e.clipboardData) === null || _e$clipboardData === void 0 ? void 0 : _e$clipboardData.getData('Text')) || e.text;
915
+ var pastedText = ((_ref20 = (e === null || e === void 0 ? void 0 : e.clipboardData) || ((_window = window) === null || _window === void 0 ? void 0 : _window.clipboardData)) === null || _ref20 === void 0 ? void 0 : _ref20.getData('text/plain')) || (e === null || e === void 0 ? void 0 : (_e$clipboardData = e.clipboardData) === null || _e$clipboardData === void 0 ? void 0 : _e$clipboardData.getData('Text')) || e.text;
756
916
  if (!pastedText) return false;
757
917
  var replacedIndexes = [];
758
918
 
759
919
  if (maskAsPlaceholder && (e === null || e === void 0 ? void 0 : e.type) === 'paste') {
760
920
  var fromIndex = i + parseInt(pastedText === null || pastedText === void 0 ? void 0 : pastedText.length);
761
- var text = innerValue.slice().filter(function (_ref17, index) {
762
- var isCharSymbol = _ref17.isCharSymbol;
921
+ var text = innerValue.slice().filter(function (_ref21, index) {
922
+ var isCharSymbol = _ref21.isCharSymbol;
763
923
  return index >= i && !isCharSymbol;
764
- }).map(function (_ref18, index) {
765
- var char = _ref18.char;
924
+ }).map(function (_ref22, index) {
925
+ var char = _ref22.char;
766
926
  return char;
767
927
  }).join('');
768
928
 
@@ -885,13 +1045,13 @@ function InputMask() {
885
1045
  (0, _functions.resetSelectionText)();
886
1046
 
887
1047
  if (maskAsPlaceholder && ((_getClearInnerValueAs2 = getClearInnerValueAsString(selEndInd + 1)) === null || _getClearInnerValueAs2 === void 0 ? void 0 : _getClearInnerValueAs2.length) !== 0) {
888
- var text = innerValue.slice().filter(function (_ref19, index) {
889
- var isSpecialSymbol = _ref19.isSpecialSymbol,
890
- isCharSymbol = _ref19.isCharSymbol;
1048
+ var text = innerValue.slice().filter(function (_ref23, index) {
1049
+ var isSpecialSymbol = _ref23.isSpecialSymbol,
1050
+ isCharSymbol = _ref23.isCharSymbol;
891
1051
  if (maxEditableLen !== -1 && index > maxEditableLen - 1) return false;
892
1052
  return (index < selStartInd || index >= selEndInd) && !isSpecialSymbol && !isCharSymbol;
893
- }).map(function (_ref20, index) {
894
- var char = _ref20.char;
1053
+ }).map(function (_ref24, index) {
1054
+ var char = _ref24.char;
895
1055
  return char;
896
1056
  }).join('');
897
1057
  resetInnerValue();
@@ -933,18 +1093,22 @@ function InputMask() {
933
1093
  setMaskRendered(true);
934
1094
  }, [maskPattern]);
935
1095
  (0, _react.useEffect)(function () {
936
- if (!isMaskRendered || isInitValue) return false;
1096
+ if (!isMaskRendered || isInitValue || maskPattern.replace(/D/g, '') === (value === null || value === void 0 ? void 0 : value.toString())) return false;
937
1097
 
938
1098
  if (value && value !== '' && value !== getClearInnerValueAsString()) {
939
1099
  var valueCharIndex = 0;
940
- innerValue.map(function (_ref21, i) {
941
- var isSpecialSymbol = _ref21.isSpecialSymbol;
1100
+ innerValue.map(function (_ref25, i) {
1101
+ var _maskPattern;
1102
+
1103
+ var isSpecialSymbol = _ref25.isSpecialSymbol;
942
1104
  if (isSpecialSymbol) return false;
943
1105
  var char = value[valueCharIndex];
1106
+ var whileLimit = ((_maskPattern = maskPattern) === null || _maskPattern === void 0 ? void 0 : _maskPattern.length) || 0;
944
1107
 
945
- while (isSpecialSymbolChar({
1108
+ while (whileLimit && isSpecialSymbolChar({
946
1109
  char: value[valueCharIndex]
947
1110
  })) {
1111
+ whileLimit--;
948
1112
  char = value[++valueCharIndex];
949
1113
  } //If Valid
950
1114
 
@@ -962,9 +1126,9 @@ function InputMask() {
962
1126
  ++valueCharIndex;
963
1127
  });
964
1128
  }
965
- }, [isMaskRendered,
966
- /*value,*/
967
- isInitValue]); // Focus Observer
1129
+
1130
+ setIsInitValue(true);
1131
+ }, [isMaskRendered, value, isInitValue]); // Focus Observer
968
1132
 
969
1133
  (0, _react.useEffect)(function () {
970
1134
  if (!isFocused) {
@@ -981,8 +1145,7 @@ function InputMask() {
981
1145
  (0, _react.useEffect)(function () {
982
1146
  if (!isMaskRendered) return false;
983
1147
  setError(false);
984
- clearErrorMessage(); //console.log('getClearInnerValueAsString', getClearInnerValueAsString())
985
-
1148
+ clearErrorMessage();
986
1149
  onChangeProp(getClearInnerValueAsString(), getInnerValueAsString({
987
1150
  replaceSpace: true
988
1151
  }));
@@ -1060,7 +1223,6 @@ function InputMask() {
1060
1223
  return /*#__PURE__*/_react.default.createElement("span", {
1061
1224
  tabIndex: i === 0 ? 0 : -1,
1062
1225
  key: i,
1063
- maxLength: 1,
1064
1226
  "attr-char-id": i,
1065
1227
  className: "\n input-mask_value_item\n ".concat(className, "\n ").concat((0, _functions.isDigitMaskChar)(obj.maskChar) ? 'input-mask_value_item--digit' : '', "\n ").concat((0, _functions.isLetterMaskChar)(obj.maskChar) ? 'input-mask_value_item--letter' : '', "\n ").concat(obj.isSpecialSymbol ? 'input-mask_value_item--spec' : '', "\n ") // ${char === '' || isSpecialSymbol ? 'unselectable' : ''}
1066
1228
  // ${!isSelecting && (char === '' || isSpecialSymbol) ? 'unselectable' : ''}
@@ -5,6 +5,7 @@ module.exports = {
5
5
  LOWERCASE_LETTER_MASK_CHAR: 'l',
6
6
  DIGIT_MASK_CHAR: 'D',
7
7
  SPACE_CHAR: "\xA0",
8
+ ANDROID_CHROME_TEXT_CODE: 229,
8
9
  EXCLUDED_KEYS: ['Tab'],
9
10
  DEFAULT_ERRORS: {
10
11
  onlyLetter: 'Type letter',
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "intelicoreact",
3
- "version": "0.1.67",
3
+ "version": "0.1.70",
4
4
  "description": "fix input mask cycling",
5
5
  "main": "dist/index.js",
6
6
  "files": [