intelicoreact 0.1.54 → 0.1.57

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,8 @@ Object.defineProperty(exports, "__esModule", {
9
9
  });
10
10
  exports.default = InputMask;
11
11
 
12
+ var _toArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toArray"));
13
+
12
14
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
13
15
 
14
16
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
@@ -19,9 +21,7 @@ var _react = _interopRequireWildcard(require("react"));
19
21
 
20
22
  var _reactFeather = require("react-feather");
21
23
 
22
- var _index = require("../../../Constants/index.constants");
23
-
24
- var _usePrevious = _interopRequireDefault(require("../../../Functions/useFormTools/functions/usePrevious"));
24
+ var _index2 = require("../../../Constants/index.constants");
25
25
 
26
26
  var _Hint = _interopRequireDefault(require("../../UI/Hint/Hint"));
27
27
 
@@ -31,6 +31,8 @@ var _InputCarretPosition = require("./InputCarretPosition");
31
31
 
32
32
  require("./InputMask.scss");
33
33
 
34
+ var _config = require("./config");
35
+
34
36
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
35
37
 
36
38
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
@@ -39,19 +41,6 @@ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (O
39
41
 
40
42
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
41
43
 
42
- var UPPERCASE_LETTER_MASK_CHAR = 'L';
43
- var LOWERCASE_LETTER_MASK_CHAR = 'l';
44
- var DIGIT_MASK_CHAR = 'D';
45
- var SPACE_CHAR = "\xA0";
46
- var EXCLUDED_KEYS = ['Tab'];
47
- var DEFAULT_ERRORS = {
48
- onlyLetter: 'Type letter',
49
- onlyDigit: 'Type digit',
50
- onlyUpperCase: 'Type letter in UpperCase',
51
- onlyLowerCase: 'Type letter in LowerCase',
52
- default: null
53
- };
54
-
55
44
  function InputMask() {
56
45
  var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
57
46
  maskPattern = _ref.maskPattern,
@@ -83,7 +72,7 @@ function InputMask() {
83
72
  _ref$className = _ref.className,
84
73
  className = _ref$className === void 0 ? '' : _ref$className,
85
74
  _ref$errors = _ref.errors,
86
- customErrors = _ref$errors === void 0 ? DEFAULT_ERRORS : _ref$errors,
75
+ customErrors = _ref$errors === void 0 ? _config.DEFAULT_ERRORS : _ref$errors,
87
76
  _ref$error = _ref.error,
88
77
  customError = _ref$error === void 0 ? '' : _ref$error,
89
78
  ref = _ref.ref,
@@ -108,7 +97,7 @@ function InputMask() {
108
97
  _ref$hintPosition = _ref.hintPosition,
109
98
  hintPosition = _ref$hintPosition === void 0 ? 'right' : _ref$hintPosition;
110
99
 
111
- var errors = _objectSpread(_objectSpread({}, DEFAULT_ERRORS), customErrors);
100
+ var errors = _objectSpread(_objectSpread({}, _config.DEFAULT_ERRORS), customErrors);
112
101
 
113
102
  var _useState = (0, _react.useState)(false),
114
103
  _useState2 = (0, _slicedToArray2.default)(_useState, 2),
@@ -124,47 +113,90 @@ function InputMask() {
124
113
 
125
114
  var _useState5 = (0, _react.useState)(false),
126
115
  _useState6 = (0, _slicedToArray2.default)(_useState5, 2),
127
- isSelecting = _useState6[0],
128
- setIsSelecting = _useState6[1];
116
+ isFocused = _useState6[0],
117
+ setFocused = _useState6[1]; // ERRORS MANAGEMENT FUNCTIONS | START //
118
+
129
119
 
130
120
  var _useState7 = (0, _react.useState)(false),
131
121
  _useState8 = (0, _slicedToArray2.default)(_useState7, 2),
132
- isFocused = _useState8[0],
133
- setFocused = _useState8[1];
122
+ isError = _useState8[0],
123
+ setError = _useState8[1];
134
124
 
135
125
  var _useState9 = (0, _react.useState)(false),
136
126
  _useState10 = (0, _slicedToArray2.default)(_useState9, 2),
137
- isError = _useState10[0],
138
- setError = _useState10[1];
127
+ blinkError = _useState10[0],
128
+ setBlinkError = _useState10[1];
139
129
 
140
- var _useState11 = (0, _react.useState)(false),
130
+ var _useState11 = (0, _react.useState)(errors.default),
141
131
  _useState12 = (0, _slicedToArray2.default)(_useState11, 2),
142
- blinkError = _useState12[0],
143
- setBlinkError = _useState12[1];
144
-
145
- var _useState13 = (0, _react.useState)(errors.default),
146
- _useState14 = (0, _slicedToArray2.default)(_useState13, 2),
147
- errorMessage = _useState14[0],
148
- setErrorMessage = _useState14[1];
132
+ errorMessage = _useState12[0],
133
+ setErrorMessage = _useState12[1];
149
134
 
150
135
  var clearErrorMessage = function clearErrorMessage() {
151
136
  return setErrorMessage(errors.default);
152
- };
137
+ }; // ERRORS MANAGEMENT FUNCTIONS | END //
138
+ // SELECTION MANAGEMENT FUNCTIONS | START //
139
+
140
+
141
+ var _useState13 = (0, _react.useState)(false),
142
+ _useState14 = (0, _slicedToArray2.default)(_useState13, 2),
143
+ isSelecting = _useState14[0],
144
+ setIsSelecting = _useState14[1];
153
145
 
154
- var _useState15 = (0, _react.useState)(null),
146
+ var _useState15 = (0, _react.useState)(''),
155
147
  _useState16 = (0, _slicedToArray2.default)(_useState15, 2),
156
- focusedItemRef = _useState16[0],
157
- setFocusedItemRef = _useState16[1];
148
+ selectedText = _useState16[0],
149
+ setSelectedText = _useState16[1];
158
150
 
159
- var _useState17 = (0, _react.useState)([]),
151
+ var _useState17 = (0, _react.useState)(null),
160
152
  _useState18 = (0, _slicedToArray2.default)(_useState17, 2),
161
- innerValue = _useState18[0],
162
- setInnerValue = _useState18[1];
153
+ selectionStartX = _useState18[0],
154
+ setSelectionStartX = _useState18[1];
163
155
 
164
- var _useState19 = (0, _react.useState)(''),
156
+ var _useState19 = (0, _react.useState)(null),
165
157
  _useState20 = (0, _slicedToArray2.default)(_useState19, 2),
166
- selectedText = _useState20[0],
167
- setSelectedText = _useState20[1];
158
+ selectionEndX = _useState20[0],
159
+ setSelectionEndX = _useState20[1]; // SELECTION MANAGEMENT FUNCTIONS | END //
160
+ // SERVICE WATCHERS MANAGEMENT FUNCTIONS | START //
161
+
162
+
163
+ var _useState21 = (0, _react.useState)([]),
164
+ _useState22 = (0, _slicedToArray2.default)(_useState21, 2),
165
+ serviceWatchers = _useState22[0],
166
+ setServiceWatchers = _useState22[1];
167
+
168
+ var pushServiceWatcher = function pushServiceWatcher(fn) {
169
+ return setServiceWatchers(function (state) {
170
+ return [].concat((0, _toConsumableArray2.default)(state), [{
171
+ fn: fn,
172
+ dt: Date.now()
173
+ }]);
174
+ });
175
+ };
176
+
177
+ var popServiceWatcher = function popServiceWatcher() {
178
+ var _serviceWatchers = (0, _toArray2.default)(serviceWatchers),
179
+ poped = _serviceWatchers[0],
180
+ rest = _serviceWatchers.slice(1);
181
+
182
+ setServiceWatchers(rest);
183
+ return poped.fn || _functions.voidFn;
184
+ };
185
+
186
+ var serviceWatchersWorker = function serviceWatchersWorker() {
187
+ popServiceWatcher()();
188
+ };
189
+
190
+ (0, _react.useEffect)(function () {
191
+ if (!serviceWatchers.length) return false;
192
+ serviceWatchersWorker();
193
+ }, [serviceWatchers]); // SERVICE WATCHERS MANAGEMENT FUNCTIONS | END //
194
+ // INNER VALUE MANAGEMENT FUNCTIONS | START //
195
+
196
+ var _useState23 = (0, _react.useState)([]),
197
+ _useState24 = (0, _slicedToArray2.default)(_useState23, 2),
198
+ innerValue = _useState24[0],
199
+ setInnerValue = _useState24[1];
168
200
 
169
201
  var addInnerValueChar = function addInnerValueChar(_ref2) {
170
202
  var char = _ref2.char,
@@ -209,96 +241,25 @@ function InputMask() {
209
241
  isSelected: false
210
242
  }, i);
211
243
  });
212
- };
213
-
214
- var getPlaceholderCharByIndex = function getPlaceholderCharByIndex(i) {
215
- var _getCharByIndex = getCharByIndex(i),
216
- maskChar = _getCharByIndex.maskChar;
217
-
218
- if (usePatternPlaceholder) {
219
- return maskPatternPlaceholder[i] || maskPlaceholder;
220
- } else {
221
- if (isDigitMaskChar(maskChar) && maskDigitPlaceholder) return maskDigitPlaceholder;
222
- if (isLetterMaskChar(maskChar) && maskLetterPlaceholder) return maskLetterPlaceholder;
223
- return maskPlaceholder;
224
- }
225
- };
226
-
227
- var getInnerValueAsString = function getInnerValueAsString() {
228
- var _ref4 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
229
- _ref4$replaceSpace = _ref4.replaceSpace,
230
- replaceSpace = _ref4$replaceSpace === void 0 ? false : _ref4$replaceSpace;
231
-
232
- var result = innerValue.slice(0, innerValue.length - 1).map(function (_ref5, i) {
233
- var char = _ref5.char,
234
- maskChar = _ref5.maskChar;
235
- return char === '' ? getPlaceholderCharByIndex(i) || maskChar : char;
236
- }).join('');
237
- return replaceSpace ? result.replace(/\u00A0/g, ' ') : result;
238
- };
239
-
240
- var getSelectedValueAsString = function getSelectedValueAsString() {
241
- return selectedText;
242
- };
244
+ }; // INNER VALUE MANAGEMENT FUNCTIONS | END //
245
+ // CHECKERS | START //
243
246
 
244
- var getClearInnerValueAsString = function getClearInnerValueAsString() {
245
- return innerValue.reduce(function (result, _ref6) {
246
- var char = _ref6.char,
247
- maskChar = _ref6.maskChar,
248
- isSpecialSymbol = _ref6.isSpecialSymbol;
249
- if (char !== maskChar && char !== '' || isSpecialSymbol) result += char;
250
- return result;
251
- }, '');
252
- };
253
-
254
- var getLastTypedIndex = function getLastTypedIndex() {
255
- return innerValue.reduce(function (lastIndex, _ref7, i) {
256
- var char = _ref7.char,
257
- isSpecialSymbol = _ref7.isSpecialSymbol;
258
- if (!isSpecialSymbol && char !== SPACE_CHAR && char !== '' || lastIndex === null) lastIndex = i;
259
- return lastIndex;
260
- }, -1) + 1;
261
- };
262
247
 
263
- var isLetter = function isLetter(char) {
264
- return (char === null || char === void 0 ? void 0 : char.length) === 1 && (char === null || char === void 0 ? void 0 : char.match(/[a-z]/i));
248
+ var isSpecialSymbolMaskChar = function isSpecialSymbolMaskChar(_ref4) {
249
+ var char = _ref4.char;
250
+ return !(0, _functions.isDigitMaskChar)(char) && !(0, _functions.isLetterMaskChar)(char);
265
251
  };
266
252
 
267
- var isUpperCaseLetter = function isUpperCaseLetter(char) {
268
- return isLetter(char) ? char === char.slice().toUpperCase() : false;
269
- };
270
-
271
- var isLowerCaseLetter = function isLowerCaseLetter(char) {
272
- return isLetter(char) ? char === char.slice().toLowerCase() : false;
273
- };
274
-
275
- var isDigit = function isDigit(char) {
276
- return Number.isInteger(parseInt(char));
277
- };
278
-
279
- var isDigitMaskChar = function isDigitMaskChar(char) {
280
- return char === DIGIT_MASK_CHAR;
281
- };
282
-
283
- var isLetterMaskChar = function isLetterMaskChar(char) {
284
- return char === UPPERCASE_LETTER_MASK_CHAR || char === LOWERCASE_LETTER_MASK_CHAR;
285
- };
286
-
287
- var isSpecialSymbolMaskChar = function isSpecialSymbolMaskChar(_ref8) {
288
- var char = _ref8.char;
289
- return !isDigitMaskChar(char) && !isLetterMaskChar(char);
290
- };
291
-
292
- var isValidChar = function isValidChar(_ref9) {
293
- var key = _ref9.char,
294
- i = _ref9.i,
295
- _ref9$disableErrors = _ref9.disableErrors,
296
- disableErrors = _ref9$disableErrors === void 0 ? false : _ref9$disableErrors;
253
+ var isValidChar = function isValidChar(_ref5) {
254
+ var key = _ref5.char,
255
+ i = _ref5.i,
256
+ _ref5$disableErrors = _ref5.disableErrors,
257
+ disableErrors = _ref5$disableErrors === void 0 ? false : _ref5$disableErrors;
297
258
  var maskChar = getMaskCharByIndex(i);
298
259
 
299
260
  switch (maskChar) {
300
- case DIGIT_MASK_CHAR:
301
- if (!isDigit(key)) {
261
+ case _config.DIGIT_MASK_CHAR:
262
+ if (!(0, _functions.isDigit)(key)) {
302
263
  if (!disableErrors) {
303
264
  setErrorMessage(errors.onlyDigit);
304
265
  }
@@ -308,30 +269,30 @@ function InputMask() {
308
269
 
309
270
  break;
310
271
 
311
- case UPPERCASE_LETTER_MASK_CHAR:
272
+ case _config.UPPERCASE_LETTER_MASK_CHAR:
312
273
  if (adaptTextCase) key = key.toUpperCase();
313
274
 
314
- if (!isLetter(key) && !isCaseSensitive) {
275
+ if (!(0, _functions.isLetter)(key) && !isCaseSensitive) {
315
276
  if (!disableErrors) setErrorMessage(errors.onlyLetter);
316
277
  return false;
317
278
  }
318
279
 
319
- if (isCaseSensitive && !isUpperCaseLetter(key)) {
280
+ if (isCaseSensitive && !(0, _functions.isUpperCaseLetter)(key)) {
320
281
  if (!disableErrors) setErrorMessage(errors.onlyUpperCase);
321
282
  return false;
322
283
  }
323
284
 
324
285
  break;
325
286
 
326
- case LOWERCASE_LETTER_MASK_CHAR:
287
+ case _config.LOWERCASE_LETTER_MASK_CHAR:
327
288
  if (adaptTextCase) key = key.toLowerCase();
328
289
 
329
- if (!isLetter(key) && !isCaseSensitive) {
290
+ if (!(0, _functions.isLetter)(key) && !isCaseSensitive) {
330
291
  if (!disableErrors) setErrorMessage(errors.onlyLetter);
331
292
  return false;
332
293
  }
333
294
 
334
- if (isCaseSensitive && !isLowerCaseLetter(key)) {
295
+ if (isCaseSensitive && !(0, _functions.isLowerCaseLetter)(key)) {
335
296
  if (!disableErrors) setErrorMessage(errors.onlyLowerCase);
336
297
  return false;
337
298
  }
@@ -340,23 +301,24 @@ function InputMask() {
340
301
 
341
302
  default:
342
303
  return false;
343
- break;
344
304
  }
345
305
 
346
306
  return true;
347
307
  };
348
308
 
349
- var isSpecialSymbolChar = function isSpecialSymbolChar(_ref10) {
350
- var char = _ref10.char;
351
- return !isDigit(char) && !isLetter(char);
352
- };
309
+ var isSpecialSymbolChar = function isSpecialSymbolChar(_ref6) {
310
+ var char = _ref6.char;
311
+ return !(0, _functions.isDigit)(char) && !(0, _functions.isLetter)(char);
312
+ }; // CHECKERS | END //
313
+ // GETTERS | START //
314
+
353
315
 
354
316
  var getCharObj = function getCharObj(char) {
355
317
  var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
356
318
  var isSpecialSymbol = isSpecialSymbolChar({
357
319
  char: char
358
320
  });
359
- if (char === ' ') char = SPACE_CHAR;
321
+ if (char === ' ') char = _config.SPACE_CHAR;
360
322
  return _objectSpread({
361
323
  char: isSpecialSymbol ? char : '',
362
324
  maskChar: char,
@@ -366,14 +328,6 @@ function InputMask() {
366
328
  }, data);
367
329
  };
368
330
 
369
- var getFirstChar = function getFirstChar() {
370
- return innerValue[0] ? _objectSpread({}, innerValue[0]) : undefined;
371
- };
372
-
373
- var getLastChar = function getLastChar() {
374
- return innerValue.length ? (0, _toConsumableArray2.default)(innerValue).pop() : undefined;
375
- };
376
-
377
331
  var getCharByIndex = function getCharByIndex(i) {
378
332
  return innerValue[i] ? _objectSpread({}, innerValue[i]) : undefined;
379
333
  };
@@ -385,19 +339,108 @@ function InputMask() {
385
339
  };
386
340
 
387
341
  var getSelectStartIndex = function getSelectStartIndex() {
388
- var sel = (0, _functions.getSelectionText)();
389
- var str = getInnerValueAsString();
390
- return str.indexOf(sel);
342
+ if (selectionStartX === selectionEndX) return 0;
343
+ var minX = selectionStartX < selectionEndX ? selectionStartX : selectionEndX;
344
+ var maxX = selectionStartX > selectionEndX ? selectionStartX : selectionEndX;
345
+
346
+ var _innerValue$reduce = innerValue.reduce(function (resObj, _ref7, index) {
347
+ var _ref$current;
348
+
349
+ var char = _ref7.char,
350
+ ref = _ref7.ref;
351
+ if ((ref === null || ref === void 0 ? void 0 : ref.current) === null) return resObj;
352
+
353
+ var _ref$current$getBound = ref === null || ref === void 0 ? void 0 : (_ref$current = ref.current) === null || _ref$current === void 0 ? void 0 : _ref$current.getBoundingClientRect(),
354
+ charX = _ref$current$getBound.left,
355
+ charWidth = _ref$current$getBound.width;
356
+
357
+ var charCenterX = charX + charWidth / 2; // If Char X-Coord Out Of Range
358
+
359
+ // If Char X-Coord Out Of Range
360
+ if (!charX || minX > charCenterX || maxX < charCenterX) return resObj;
361
+ if (resObj.index === null || minX <= charCenterX && charCenterX >= maxX && charCenterX < resObj.charX) return {
362
+ index: index,
363
+ charX: charCenterX
364
+ };
365
+ return resObj;
366
+ }, {
367
+ index: null,
368
+ charX: null
369
+ }),
370
+ index = _innerValue$reduce.index;
371
+
372
+ return index;
391
373
  };
392
374
 
375
+ var getPlaceholderCharByIndex = function getPlaceholderCharByIndex(i) {
376
+ var _getCharByIndex = getCharByIndex(i),
377
+ maskChar = _getCharByIndex.maskChar;
378
+
379
+ if (usePatternPlaceholder) {
380
+ return maskPatternPlaceholder[i] || maskPlaceholder;
381
+ } else {
382
+ if ((0, _functions.isDigitMaskChar)(maskChar) && maskDigitPlaceholder) return maskDigitPlaceholder;
383
+ if ((0, _functions.isLetterMaskChar)(maskChar) && maskLetterPlaceholder) return maskLetterPlaceholder;
384
+ return maskPlaceholder;
385
+ }
386
+ };
387
+
388
+ var getInnerValueAsString = function getInnerValueAsString() {
389
+ var _ref8 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
390
+ _ref8$replaceSpace = _ref8.replaceSpace,
391
+ replaceSpace = _ref8$replaceSpace === void 0 ? false : _ref8$replaceSpace;
392
+
393
+ var result = innerValue.slice(0, innerValue.length - 1).map(function (_ref9, i) {
394
+ var char = _ref9.char,
395
+ maskChar = _ref9.maskChar;
396
+ return char === '' ? getPlaceholderCharByIndex(i) || maskChar : char;
397
+ }).join('');
398
+ return replaceSpace ? result.replace(/\u00A0/g, ' ') : result;
399
+ };
400
+
401
+ var getClearInnerValueWithSpecSymbAsString = function getClearInnerValueWithSpecSymbAsString() {
402
+ return innerValue.reduce(function (result, _ref10) {
403
+ var char = _ref10.char,
404
+ maskChar = _ref10.maskChar,
405
+ isSpecialSymbol = _ref10.isSpecialSymbol;
406
+ if (char !== maskChar && char !== '' || isSpecialSymbol) result += char;
407
+ return result;
408
+ }, '');
409
+ };
410
+
411
+ var getClearInnerValueAsString = function getClearInnerValueAsString() {
412
+ var start = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
413
+ return innerValue.filter(function (charObj, i) {
414
+ return i >= start;
415
+ }).filter(function (_ref11) {
416
+ var isSpecialSymbol = _ref11.isSpecialSymbol;
417
+ return !isSpecialSymbol;
418
+ }).reduce(function (result, _ref12) {
419
+ var char = _ref12.char,
420
+ maskChar = _ref12.maskChar,
421
+ isSpecialSymbol = _ref12.isSpecialSymbol;
422
+ if (char !== maskChar && char !== '' || isSpecialSymbol) result += char;
423
+ return result;
424
+ }, '');
425
+ };
426
+
427
+ var getLastTypedIndex = function getLastTypedIndex() {
428
+ return innerValue.reduce(function (lastIndex, _ref13, i) {
429
+ var char = _ref13.char,
430
+ isSpecialSymbol = _ref13.isSpecialSymbol;
431
+ if (!isSpecialSymbol && char !== _config.SPACE_CHAR && char !== '' || lastIndex === null) lastIndex = i;
432
+ return lastIndex;
433
+ }, -1) + 1;
434
+ }; // GETTERS | END //
435
+ // SETTERS | START //
436
+
437
+
393
438
  var setFocusOnChar = function setFocusOnChar(i, prevIndex) {
394
- var _ref$current;
439
+ var _ref$current2;
395
440
 
396
441
  var charObj = getCharByIndex(i);
397
442
  if (!charObj) return false;
398
- var char = charObj.char,
399
- maskChar = charObj.maskChar,
400
- ref = charObj.ref,
443
+ var ref = charObj.ref,
401
444
  isSpecialSymbol = charObj.isSpecialSymbol;
402
445
  if (!ref) return false;
403
446
 
@@ -405,27 +448,15 @@ function InputMask() {
405
448
  return prevIndex > i ? onArrowLeftDown(null, i) : onArrowRightDown(null, i);
406
449
  }
407
450
 
408
- (_ref$current = ref.current) === null || _ref$current === void 0 ? void 0 : _ref$current.focus();
451
+ (_ref$current2 = ref.current) === null || _ref$current2 === void 0 ? void 0 : _ref$current2.focus();
409
452
  setTimeout(function () {
410
453
  return (0, _InputCarretPosition.setCaretPosition)(ref.current, 0);
411
- }, 10);
412
- setFocusedItemRef(ref);
413
-
414
- _onFocus(null, i);
454
+ }, 10); // onFocus(null, i);
415
455
 
416
456
  return true;
417
- };
418
-
419
- var clearValue = function clearValue(e) {
420
- e.stopPropagation();
421
- e.preventDefault();
422
- innerValue.map(function (charObj, i) {
423
- updateInnerValueChar({
424
- char: ''
425
- }, i);
426
- });
427
- onHomeDown(null, 0);
428
- }; ///--- Event Handlers ---///
457
+ }; // SETTERS | END //
458
+ ///--- Event Handlers ---///
459
+ // SERVICE KEYS HANDLERS | START //
429
460
 
430
461
 
431
462
  var onArrowLeftDown = function onArrowLeftDown(e, i) {
@@ -433,39 +464,24 @@ function InputMask() {
433
464
  };
434
465
 
435
466
  var onArrowRightDown = function onArrowRightDown(e, i) {
436
- var key = (e === null || e === void 0 ? void 0 : e.key) || null;
437
- var nextIndex = i + 1;
438
- if (maskAsPlaceholder && nextIndex > getLastTypedIndex() && key === 'ArrowRight') nextIndex = getLastTypedIndex();
439
- setFocusOnChar(nextIndex, i);
467
+ var key = (e === null || e === void 0 ? void 0 : e.key) || null; // If Current Index Equals LastTyped Index in MaskAsPlaceholder Mode
468
+
469
+ if (maskAsPlaceholder && i === getLastTypedIndex() && key === 'ArrowRight') return false;
470
+ return setFocusOnChar(i + 1, i);
440
471
  };
441
472
 
442
473
  var onBackspaceDown = function onBackspaceDown(e, i) {
443
- // if (Boolean(getSelectionText().length)) {
444
- // const selStartInd = getSelectStartIndex();
445
- // const selEndInd = getSelectionText().length+selStartInd;
446
- // console.log(selStartInd, selEndInd)
447
- // if (selStartInd > 0) {
448
- // resetSelectionText();
449
- // for (let index = selStartInd; index < selEndInd; ++index) {
450
- // console.log({index})
451
- // updateInnerValueChar({char: ''}, index);
452
- // }
453
- // setFocusOnChar(selStartInd, i);
454
- // }
455
- // return true;
456
- // }
474
+ if ((0, _functions.getSelectionText)().length) return deleteSelectedText();
457
475
  var prevIndex = i - 1;
458
476
  var charObj = getCharByIndex(prevIndex);
459
477
  if (!charObj) return false;
460
- var char = charObj.char,
461
- isSpecialSymbol = charObj.isSpecialSymbol;
478
+ var isSpecialSymbol = charObj.isSpecialSymbol;
462
479
  if (isSpecialSymbol) return onBackspaceDown(e, prevIndex);
463
480
 
464
481
  if (maskAsPlaceholder) {
465
482
  var newText = getInnerValueAsString().substr(0, prevIndex) + getInnerValueAsString().substr(i);
466
483
  resetInnerValue();
467
-
468
- _onPaste({
484
+ onPaste({
469
485
  text: newText
470
486
  }, 0);
471
487
  } else {
@@ -479,21 +495,21 @@ function InputMask() {
479
495
  };
480
496
 
481
497
  var onDeleteDown = function onDeleteDown(e, i) {
498
+ if ((0, _functions.getSelectionText)().length) return deleteSelectedText();
482
499
  var nextIndex = i + 1;
483
500
  var charObj = getCharByIndex(i);
484
501
  if (!charObj) return false;
485
502
  var char = charObj.char,
486
503
  isSpecialSymbol = charObj.isSpecialSymbol;
487
504
  if (isSpecialSymbol) return onDeleteDown(e, i + 1);
505
+ if (char === '') return false;
488
506
 
489
507
  if (maskAsPlaceholder) {
490
508
  var newText = getInnerValueAsString().substr(0, i) + getInnerValueAsString().substr(nextIndex);
491
509
  resetInnerValue();
492
-
493
- _onPaste({
510
+ onPaste({
494
511
  text: newText
495
512
  }, 0);
496
-
497
513
  setFocusOnChar(i, i);
498
514
  } else {
499
515
  updateInnerValueChar({
@@ -510,8 +526,12 @@ function InputMask() {
510
526
  };
511
527
 
512
528
  var onEndDown = function onEndDown(e, i) {
513
- return setFocusOnChar(maskAsPlaceholder ? getLastTypedIndex() : innerValue.length - 1, 0);
514
- };
529
+ return setTimeout(function () {
530
+ return setFocusOnChar(maskAsPlaceholder ? getLastTypedIndex() : 0, 0);
531
+ }, 10);
532
+ }; // SERVICE KEYS HANDLERS | END //
533
+ // GENERAL EVENT HANDLERS | START //
534
+
515
535
 
516
536
  var handleServiceKeyDown = function handleServiceKeyDown(e, i) {
517
537
  var key = e.key;
@@ -548,9 +568,11 @@ function InputMask() {
548
568
  };
549
569
 
550
570
  var handleKeyDown = function handleKeyDown(e, i) {
551
- var _ref11 = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {},
552
- _ref11$disableErrors = _ref11.disableErrors,
553
- disableErrors = _ref11$disableErrors === void 0 ? false : _ref11$disableErrors;
571
+ var _getClearInnerValueAs;
572
+
573
+ var _ref14 = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {},
574
+ _ref14$disableErrors = _ref14.disableErrors,
575
+ disableErrors = _ref14$disableErrors === void 0 ? false : _ref14$disableErrors;
554
576
 
555
577
  try {
556
578
  e.stopPropagation();
@@ -559,17 +581,33 @@ function InputMask() {
559
581
 
560
582
  var key = e.key;
561
583
  var charObj = getCharByIndex(i);
562
- if (!charObj) return false;
584
+ if (!charObj || i === innerValue.length - 1) return false;
563
585
  var isSpecialSymbol = charObj.isSpecialSymbol,
564
- maskChar = charObj.maskChar; //IF DEFAULT CHAR IS SPACE, SWITCH TO NEXT INPUT
586
+ maskChar = charObj.maskChar,
587
+ isReadOnly = charObj.isReadOnly;
588
+ if (isReadOnly) return false; //IF DEFAULT CHAR IS SPACE, SWITCH TO NEXT INPUT
565
589
 
566
- if (maskChar === SPACE_CHAR) return handleKeyDown(e, i + 1);
590
+ if (maskChar === _config.SPACE_CHAR) return handleKeyDown(e, i + 1);
567
591
  if (isSpecialSymbol && maskChar !== key) return false;
568
592
  if (!isValidChar({
569
593
  char: key,
570
594
  i: i,
571
595
  disableErrors: disableErrors
572
596
  })) return false;
597
+
598
+ if (maskAsPlaceholder && ((_getClearInnerValueAs = getClearInnerValueAsString(i)) === null || _getClearInnerValueAs === void 0 ? void 0 : _getClearInnerValueAs.length) !== 0) {
599
+ var fromIndex = i + 1;
600
+ var text = innerValue.slice().filter(function (charObj, index) {
601
+ return index >= i;
602
+ }).map(function (_ref15, index) {
603
+ var char = _ref15.char;
604
+ return char;
605
+ }).join('');
606
+ onPaste({
607
+ text: text
608
+ }, fromIndex, false);
609
+ }
610
+
573
611
  updateInnerValueChar({
574
612
  char: key
575
613
  }, i);
@@ -590,18 +628,20 @@ function InputMask() {
590
628
  };
591
629
 
592
630
  var _onKeyDown = function onKeyDown(e, i) {
631
+ if (!isFocused) return false;
593
632
  var key = e.key,
594
633
  ctrlKey = e.ctrlKey,
595
634
  altKey = e.altKey;
635
+ if (_index2.KEYBOARD_SERVICE_KEYS.includes(key) && _config.EXCLUDED_KEYS.includes(key)) return true;
596
636
  setError(false);
597
637
  clearErrorMessage();
598
638
 
599
639
  if (ctrlKey || altKey) {
600
- if (!_index.KEYBOARD_SERVICE_KEYS.includes(key)) handleKeyCombinations(e, i);
640
+ if (!_index2.KEYBOARD_SERVICE_KEYS.includes(key)) handleKeyCombinations(e, i);
601
641
  return true;
602
642
  }
603
643
 
604
- var handleResult = _index.KEYBOARD_SERVICE_KEYS.includes(key) ? handleServiceKeyDown(e, i) : handleKeyDown(e, i);
644
+ var handleResult = _index2.KEYBOARD_SERVICE_KEYS.includes(key) ? handleServiceKeyDown(e, i) : handleKeyDown(e, i);
605
645
 
606
646
  if (blinkErrors && !handleResult) {
607
647
  setBlinkError(true);
@@ -609,13 +649,16 @@ function InputMask() {
609
649
  };
610
650
 
611
651
  var onClick = function onClick(e, cb) {
612
- var _ref12 = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {},
613
- _ref12$ignoreIsSelect = _ref12.ignoreIsSelecting,
614
- ignoreIsSelecting = _ref12$ignoreIsSelect === void 0 ? false : _ref12$ignoreIsSelect;
652
+ var _ref16 = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {},
653
+ _ref16$ignoreIsSelect = _ref16.ignoreIsSelecting,
654
+ ignoreIsSelecting = _ref16$ignoreIsSelect === void 0 ? false : _ref16$ignoreIsSelect;
615
655
 
616
- e.stopPropagation();
617
- e.preventDefault();
618
- if (isSelecting && (Boolean(selectedText.length) || Boolean((0, _functions.getSelectionText)().length)) && !ignoreIsSelecting) return false;
656
+ try {
657
+ e.stopPropagation();
658
+ e.preventDefault();
659
+ } catch (error) {}
660
+
661
+ if (isSelecting && (selectedText.length || (0, _functions.getSelectionText)().length) && !ignoreIsSelecting) return false;
619
662
  setFocused(true);
620
663
  if (typeof cb === 'function') cb(e);
621
664
  };
@@ -637,7 +680,7 @@ function InputMask() {
637
680
  (0, _functions.resetSelectionText)();
638
681
  setTimeout(function () {
639
682
  return onClick(e, function () {
640
- return _onFocus(e, i);
683
+ return setFocusOnChar(i, 0);
641
684
  }, {
642
685
  ignoreIsSelecting: true
643
686
  });
@@ -645,11 +688,28 @@ function InputMask() {
645
688
  };
646
689
 
647
690
  var onWrapperClick = function onWrapperClick(e) {
648
- return cancelDefaultAction(e, function () {
649
- !isMouseDown ? onClick(e, function () {
650
- return onEndDown(e, 0);
651
- }) : null;
652
- });
691
+ e.stopPropagation();
692
+ e.preventDefault();
693
+
694
+ if (!isMouseDown && !isSelecting) {
695
+ onClick(e);
696
+ setFocusOnChar(0, 0);
697
+ }
698
+ };
699
+
700
+ var onClearClick = function onClearClick(e) {
701
+ e.stopPropagation();
702
+ e.preventDefault();
703
+ resetInnerValue();
704
+ onHomeDown(null, 0);
705
+ };
706
+
707
+ var onMouseDownMove = function onMouseDownMove(e) {
708
+ if (!isMouseDown) return false;
709
+ setIsSelecting(true);
710
+ var clientX = e.clientX;
711
+ if (selectionStartX === null) setSelectionStartX(clientX);
712
+ setSelectionEndX(clientX);
653
713
  };
654
714
 
655
715
  var onBlur = function onBlur(e) {
@@ -674,22 +734,31 @@ function InputMask() {
674
734
  setFocused(true);
675
735
  };
676
736
 
677
- var _onPaste = function onPaste(e, i) {
678
- var _e$clipboardData;
737
+ var onPaste = function onPaste(e, i) {
738
+ var _ref17, _window, _e$clipboardData;
679
739
 
740
+ var setFocusToEnd = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
680
741
  setIsSelecting(false);
681
742
  (0, _functions.resetSelectionText)();
682
-
683
- try {
684
- e.preventDefault();
685
- e.stopPropagation();
686
- } catch (error) {}
687
-
688
- var pastedText = (e === null || e === void 0 ? void 0 : (_e$clipboardData = e.clipboardData) === null || _e$clipboardData === void 0 ? void 0 : _e$clipboardData.getData('Text')) || e.text;
743
+ var pastedText = ((_ref17 = (e === null || e === void 0 ? void 0 : e.clipboardData) || ((_window = window) === null || _window === void 0 ? void 0 : _window.clipboardData)) === null || _ref17 === void 0 ? void 0 : _ref17.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;
689
744
  if (!pastedText) return false;
690
745
  var replacedIndexes = [];
691
- var result = pastedText.split('').filter(function (char) {
692
- return isDigit(char) || isLetter(char);
746
+
747
+ if (maskAsPlaceholder && (e === null || e === void 0 ? void 0 : e.type) === 'paste') {
748
+ var fromIndex = i + parseInt(pastedText === null || pastedText === void 0 ? void 0 : pastedText.length);
749
+ var text = innerValue.slice().filter(function (charObj, index) {
750
+ return index >= i;
751
+ }).map(function (_ref18, index) {
752
+ var char = _ref18.char;
753
+ return char;
754
+ }).join('');
755
+ onPaste({
756
+ text: text
757
+ }, fromIndex, false);
758
+ }
759
+
760
+ pastedText.split('').filter(function (char) {
761
+ return (0, _functions.isDigit)(char) || (0, _functions.isLetter)(char);
693
762
  }).map(function (pastedChar, offset) {
694
763
  var charIndex = i + offset;
695
764
  var isReplaced = false;
@@ -742,26 +811,28 @@ function InputMask() {
742
811
  _replacedIndexes$reve2 = (0, _slicedToArray2.default)(_replacedIndexes$reve, 1),
743
812
  lastCharIndex = _replacedIndexes$reve2[0];
744
813
 
745
- setFocusOnChar(lastCharIndex + 1, i);
814
+ if (setFocusToEnd) setFocusOnChar(lastCharIndex + 1, i);
746
815
  };
747
816
 
748
- var _onCopy = function onCopy(e, i) {
817
+ var onCopy = function onCopy(e, i) {
749
818
  (0, _functions.copyToClipboard)((0, _functions.getSelectionText)());
750
819
  setIsSelecting(false);
751
820
  setFocusOnChar(i, 0);
752
821
  };
753
822
 
754
- var _onCut = function onCut(e, i) {
823
+ var onCut = function onCut(e, i) {
755
824
  (0, _functions.copyToClipboard)((0, _functions.getSelectionText)());
756
825
  resetInnerValue();
757
826
  setIsSelecting(false);
758
827
  setFocusOnChar(i, 0);
759
- };
828
+ }; // GENERAL EVENT HANDLERS | END //
829
+ // HELPERS | START //
830
+
760
831
 
761
832
  var cancelDefaultAction = function cancelDefaultAction(e, cb) {
762
833
  var key = e.key;
763
834
 
764
- if (!EXCLUDED_KEYS.includes(key) && _index.KEYBOARD_SERVICE_KEYS.includes(key)) {
835
+ if (!_config.EXCLUDED_KEYS.includes(key) && _index2.KEYBOARD_SERVICE_KEYS.includes(key)) {
765
836
  e.preventDefault();
766
837
  e.stopPropagation();
767
838
  }
@@ -774,19 +845,61 @@ function InputMask() {
774
845
  e.preventDefault();
775
846
  e.stopPropagation();
776
847
  setIsSelecting(true);
848
+ setSelectionStartX(-1);
849
+ setSelectionEndX(-1);
777
850
  (0, _functions.selectElementContents)(inputRef.current);
778
851
  setSelectedText((0, _functions.getSelectionText)());
779
- }; ///--- OBSERVERS ---///
852
+ };
853
+
854
+ var deleteSelectedText = function deleteSelectedText() {
855
+ var _getClearInnerValueAs2;
856
+
857
+ var selStartInd = getSelectStartIndex();
858
+ if (selStartInd === null || selStartInd === undefined || selStartInd < 0) return false;
859
+ var selEndInd = (0, _functions.getSelectionText)().length + selStartInd;
860
+ (0, _functions.resetSelectionText)();
861
+
862
+ if (maskAsPlaceholder && ((_getClearInnerValueAs2 = getClearInnerValueAsString(selEndInd + 1)) === null || _getClearInnerValueAs2 === void 0 ? void 0 : _getClearInnerValueAs2.length) !== 0) {
863
+ var fromIndex = selStartInd;
864
+ var text = innerValue.slice().filter(function (charObj, index) {
865
+ return index >= selEndInd;
866
+ }).map(function (_ref19, index) {
867
+ var char = _ref19.char;
868
+ return char;
869
+ }).join('');
870
+ onPaste({
871
+ text: text
872
+ }, fromIndex, false);
873
+
874
+ for (var index = fromIndex + text.length; index < innerValue.length; ++index) {
875
+ updateInnerValueChar({
876
+ char: ''
877
+ }, index);
878
+ }
879
+ } else {
880
+ for (var _index = selStartInd; _index < selEndInd; ++_index) {
881
+ updateInnerValueChar({
882
+ char: ''
883
+ }, _index);
884
+ }
885
+ }
886
+
887
+ setFocusOnChar(selStartInd, -1);
888
+ return true;
889
+ }; // HELPERS | END //
890
+ ///--- OBSERVERS ---///
780
891
  //Render Mask
781
892
 
782
893
 
783
894
  (0, _react.useEffect)(function () {
784
895
  if (!maskPattern) maskPattern = '';
785
- maskPattern.concat(' ').split('').map(function (char, id) {
896
+ maskPattern.concat(' ').split('').map(function (char, id, i) {
786
897
  return addInnerValueChar({
787
- char: char
788
- }, {
789
- id: id
898
+ char: char,
899
+ data: {
900
+ id: id,
901
+ isReadOnly: id === maskPattern.length
902
+ }
790
903
  });
791
904
  });
792
905
  setMaskRendered(true);
@@ -796,8 +909,8 @@ function InputMask() {
796
909
 
797
910
  if (value && value !== '') {
798
911
  var valueCharIndex = 0;
799
- innerValue.map(function (_ref13, i) {
800
- var isSpecialSymbol = _ref13.isSpecialSymbol;
912
+ innerValue.map(function (_ref20, i) {
913
+ var isSpecialSymbol = _ref20.isSpecialSymbol;
801
914
  if (isSpecialSymbol) return false;
802
915
  var char = value[valueCharIndex];
803
916
 
@@ -825,7 +938,6 @@ function InputMask() {
825
938
 
826
939
  (0, _react.useEffect)(function () {
827
940
  if (!isFocused) {
828
- setFocusedItemRef(null);
829
941
  setSelectedText('');
830
942
  }
831
943
  }, [isFocused]); // Default Focused
@@ -855,14 +967,32 @@ function InputMask() {
855
967
  if (!isSelecting) {
856
968
  setSelectedText('');
857
969
  (0, _functions.resetSelectionText)();
970
+ setSelectionStartX(null);
971
+ setSelectionEndX(null);
972
+ }
973
+
974
+ if (!isMouseDown && isSelecting) {
975
+ document.addEventListener('keydown', function (e) {
976
+ return pushServiceWatcher(function () {
977
+ _onKeyDown(e);
978
+
979
+ setIsSelecting(false);
980
+ });
981
+ }, {
982
+ once: true
983
+ });
858
984
  }
859
985
 
860
- if (!isMouseDown && isSelecting && !Boolean((0, _functions.getSelectionText)().length)) setIsSelecting(false);
986
+ if (!isMouseDown && isSelecting && !(0, _functions.getSelectionText)().length) setIsSelecting(false);
861
987
  }, [isSelecting, isMouseDown]);
862
988
  (0, _react.useEffect)(function () {
863
989
  document.addEventListener('mouseup', function () {
864
990
  setIsMouseDown(function (isMouseDown) {
865
- document.addEventListener('keydown', _onKeyDown, {
991
+ document.addEventListener('keydown', function (e) {
992
+ return pushServiceWatcher(function () {
993
+ return _onKeyDown(e);
994
+ });
995
+ }, {
866
996
  once: true
867
997
  });
868
998
 
@@ -891,54 +1021,51 @@ function InputMask() {
891
1021
  maskChar = obj.maskChar,
892
1022
  isSpecialSymbol = obj.isSpecialSymbol,
893
1023
  isSelected = obj.isSelected;
1024
+ var prevChar = getCharByIndex(i - 1);
894
1025
  if (i === innerValue.length - 1 && isSelecting) return /*#__PURE__*/_react.default.createElement("span", {
895
1026
  style: {
896
1027
  width: '1px'
897
1028
  }
898
1029
  });
899
1030
  return /*#__PURE__*/_react.default.createElement("span", {
900
- tabIndex: i === 0 ? 'auto' : -1,
1031
+ tabIndex: i === 0 ? 0 : -1,
901
1032
  key: i,
902
1033
  maxLength: 1,
903
1034
  "attr-char-id": i,
904
- className: "\n input-mask_value_item\n ".concat(className, "\n ").concat(isDigitMaskChar(obj.maskChar) ? 'input-mask_value_item--digit' : '', "\n ").concat(isLetterMaskChar(obj.maskChar) ? 'input-mask_value_item--letter' : '', "\n ").concat(obj.isSpecialSymbol ? 'input-mask_value_item--spec' : '', "\n ").concat(isSelected ? 'input-mask_value_item--selected' : '', "\n "),
1035
+ 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 ").concat(isSelected ? 'input-mask_value_item--selected' : '', "\n ").concat(char === '' || isSpecialSymbol ? 'unselectable' : '', "\n ") // ${!isSelecting && (char === '' || isSpecialSymbol) ? 'unselectable' : ''}
1036
+ ,
905
1037
  onClick: function onClick(e) {
906
1038
  return onCharClick(e, i);
907
1039
  },
908
1040
  onFocus: function onFocus(e) {
909
1041
  return _onFocus(e, i);
910
- },
911
- onBlur: onBlur,
1042
+ } // onBlur={onBlur}
1043
+ ,
912
1044
  onKeyPress: cancelDefaultAction,
913
1045
  onKeyDown: function onKeyDown(e) {
914
1046
  return _onKeyDown(e, i);
915
1047
  },
916
1048
  onChange: function onChange() {},
917
1049
  contentEditable: !isSelecting,
918
- inputMode: isDigitMaskChar(maskChar) ? 'numeric' : 'text',
1050
+ inputMode: (0, _functions.isDigitMaskChar)(i !== innerValue.length - 1 ? maskChar : prevChar === null || prevChar === void 0 ? void 0 : prevChar.maskChar) ? 'numeric' : 'text',
919
1051
  suppressContentEditableWarning: true,
920
- onPaste: function onPaste(e) {
921
- return cancelDefaultAction(e, function () {
922
- return _onPaste(e, i);
923
- });
924
- },
925
- onCopy: function onCopy(e) {
926
- return cancelDefaultAction(e, function () {
927
- return _onCopy(e, i);
928
- });
929
- },
930
- onCut: function onCut(e) {
931
- return cancelDefaultAction(e, function () {
932
- return _onCut(e, i);
933
- });
934
- },
935
- onSelect: cancelDefaultAction,
1052
+ onPaste: cancelDefaultAction,
1053
+ onCopy: cancelDefaultAction,
1054
+ onCut: cancelDefaultAction,
936
1055
  ref: ref,
937
1056
  onDoubleClick: function onDoubleClick(e) {
938
1057
  setIsSelecting(true);
939
1058
  setTimeout(function () {
940
1059
  return selectAllText(e, i);
941
1060
  }, 50);
1061
+ },
1062
+ onMouseDown: function onMouseDown(e) {
1063
+ return cancelDefaultAction(e, function () {
1064
+ return setIsMouseDown(true);
1065
+ });
1066
+ },
1067
+ onMouseMove: function onMouseMove(e) {
1068
+ return cancelDefaultAction(e, onMouseDownMove);
942
1069
  }
943
1070
  }, isSpecialSymbol ? maskChar : char === '' ? getPlaceholderCharByIndex(i) : char);
944
1071
  };
@@ -977,16 +1104,18 @@ function InputMask() {
977
1104
  return /*#__PURE__*/_react.default.createElement("div", {
978
1105
  className: "\n input-mask_wrapper\n ".concat(className, "\n ").concat(isError ? 'input-mask_error' : '', "\n ").concat(isFocused ? 'input-mask_focus' : '', "\n ").concat(blinkError ? 'input-mask_blink-error' : '', "\n "),
979
1106
  onClick: onWrapperClick,
980
- onBlur: onBlur,
981
- tabIndex: "auto"
1107
+ onBlur: onBlur
982
1108
  }, /*#__PURE__*/_react.default.createElement("div", {
983
- className: "\n input-mask\n ".concat(isError ? 'input-mask_error' : '', "\n ").concat(isFocused ? 'input-mask_focus' : '', "\n ").concat(blinkError ? 'input-mask_blink-error' : '', "\n ") // onMouseDown={() => setIsMouseDown(true)}
984
- // onMouseUp={() => setIsMouseDown(false)}
985
- // onMouseMove={() => isMouseDown ? setIsSelecting(true) : null}
986
- ,
987
- onMouseDown: cancelDefaultAction,
1109
+ className: "\n input-mask\n ".concat(isError ? 'input-mask_error' : '', "\n ").concat(isFocused ? 'input-mask_focus' : '', "\n ").concat(blinkError ? 'input-mask_blink-error' : '', "\n "),
1110
+ onMouseDown: function onMouseDown(e) {
1111
+ return cancelDefaultAction(e, function () {
1112
+ return setIsMouseDown(true);
1113
+ });
1114
+ },
1115
+ onMouseMove: function onMouseMove(e) {
1116
+ return cancelDefaultAction(e, onMouseDownMove);
1117
+ },
988
1118
  onMouseUp: cancelDefaultAction,
989
- onMouseMove: cancelDefaultAction,
990
1119
  onClick: onWrapperClick,
991
1120
  onBlur: onBlur
992
1121
  }, showHint && isHintLeft && /*#__PURE__*/_react.default.createElement("div", {
@@ -1001,14 +1130,16 @@ function InputMask() {
1001
1130
  className: "input-mask_value",
1002
1131
  ref: inputRef,
1003
1132
  onKeyUp: cancelDefaultAction,
1004
- onKeyDown: cancelDefaultAction,
1133
+ onKeyDown: function onKeyDown(e) {
1134
+ return cancelDefaultAction(e, _onKeyDown);
1135
+ },
1005
1136
  onKeyPress: cancelDefaultAction,
1006
1137
  onBlur: onBlur,
1007
1138
  onClick: onWrapperClick
1008
1139
  }, renderInputValue()), isClearable && /*#__PURE__*/_react.default.createElement("div", {
1009
1140
  className: "input-mask_clear"
1010
1141
  }, /*#__PURE__*/_react.default.createElement(_reactFeather.X, {
1011
- onClick: clearValue
1142
+ onClick: onClearClick
1012
1143
  })), isIconRight && showIcon && /*#__PURE__*/_react.default.createElement("div", {
1013
1144
  className: "input-mask_icon input-mask_icon--right"
1014
1145
  }, icon), showHint && isHintRight && /*#__PURE__*/_react.default.createElement("div", {