intelicoreact 1.1.49 → 1.1.52

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.
@@ -0,0 +1,832 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ var _typeof = require("@babel/runtime/helpers/typeof");
6
+
7
+ Object.defineProperty(exports, "__esModule", {
8
+ value: true
9
+ });
10
+ exports.default = InputMask3;
11
+
12
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
13
+
14
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
15
+
16
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
17
+
18
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
19
+
20
+ var _react = _interopRequireWildcard(require("react"));
21
+
22
+ var _reactFeather = require("react-feather");
23
+
24
+ var _classnames = _interopRequireDefault(require("classnames"));
25
+
26
+ var _DynamicIcon = _interopRequireDefault(require("../../UI/DynamicIcon/DynamicIcon"));
27
+
28
+ var _Spinner = _interopRequireDefault(require("../../Layout/Spinner/Spinner"));
29
+
30
+ var _Hint = _interopRequireDefault(require("../../UI/Hint/Hint"));
31
+
32
+ var _index = require("../../../Constants/index.constants");
33
+
34
+ var _config = require("./config");
35
+
36
+ var _functions = require("./functions");
37
+
38
+ var _utils = require("../../../Functions/utils");
39
+
40
+ require("./InputMask3.scss");
41
+
42
+ 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); }
43
+
44
+ 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; }
45
+
46
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
47
+
48
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
49
+
50
+ function InputMask3() {
51
+ var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
52
+ _ref$autocomplete = _ref.autocomplete,
53
+ autocomplete = _ref$autocomplete === void 0 ? 'off' : _ref$autocomplete,
54
+ maskPattern = _ref.maskPattern,
55
+ maskPatternPlaceholder = _ref.maskPatternPlaceholder,
56
+ maskPlaceholder = _ref.maskPlaceholder,
57
+ maskDigitPlaceholder = _ref.maskDigitPlaceholder,
58
+ maskLetterPlaceholder = _ref.maskLetterPlaceholder,
59
+ usePatternPlaceholder = _ref.usePatternPlaceholder,
60
+ _ref$maxEditableIndex = _ref.maxEditableIndex,
61
+ maxEditableIndex = _ref$maxEditableIndex === void 0 ? -1 : _ref$maxEditableIndex,
62
+ _ref$isFocusedDefault = _ref.isFocusedDefault,
63
+ isFocusedDefault = _ref$isFocusedDefault === void 0 ? false : _ref$isFocusedDefault,
64
+ isClearable = _ref.isClearable,
65
+ isCaseSensitive = _ref.isCaseSensitive,
66
+ adaptTextCase = _ref.adaptTextCase,
67
+ _ref$isUseAutoSelect = _ref.isUseAutoSelect,
68
+ isUseAutoSelect = _ref$isUseAutoSelect === void 0 ? true : _ref$isUseAutoSelect,
69
+ _ref$isLoading = _ref.isLoading,
70
+ isLoading = _ref$isLoading === void 0 ? false : _ref$isLoading,
71
+ _ref$hiddenChar = _ref.hiddenChar,
72
+ hiddenChar = _ref$hiddenChar === void 0 ? '*' : _ref$hiddenChar,
73
+ _ref$withHiddenMode = _ref.withHiddenMode,
74
+ withHiddenMode = _ref$withHiddenMode === void 0 ? false : _ref$withHiddenMode,
75
+ icon = _ref.icon,
76
+ showIcon = _ref.showIcon,
77
+ isIconLeft = _ref.isIconLeft,
78
+ isIconRight = _ref.isIconRight,
79
+ iconDynamicKey = _ref.iconDynamicKey,
80
+ _ref$iconDynamicProps = _ref.iconDynamicProps,
81
+ iconDynamicProps = _ref$iconDynamicProps === void 0 ? {} : _ref$iconDynamicProps,
82
+ value = _ref.value,
83
+ _ref$blinkErrors = _ref.blinkErrors,
84
+ blinkErrors = _ref$blinkErrors === void 0 ? true : _ref$blinkErrors,
85
+ _ref$blinkDuration = _ref.blinkDuration,
86
+ blinkDuration = _ref$blinkDuration === void 0 ? 100 : _ref$blinkDuration,
87
+ _ref$showErrors = _ref.showErrors,
88
+ showErrors = _ref$showErrors === void 0 ? false : _ref$showErrors,
89
+ _ref$className = _ref.className,
90
+ className = _ref$className === void 0 ? '' : _ref$className,
91
+ _ref$errors = _ref.errors,
92
+ customErrors = _ref$errors === void 0 ? _config.DEFAULT_ERRORS : _ref$errors,
93
+ _ref$error = _ref.error,
94
+ customError = _ref$error === void 0 ? '' : _ref$error,
95
+ _ref$onChange = _ref.onChange,
96
+ onChangeProp = _ref$onChange === void 0 ? function () {} : _ref$onChange,
97
+ _ref$onFocus = _ref.onFocus,
98
+ onFocusProp = _ref$onFocus === void 0 ? function () {} : _ref$onFocus,
99
+ _ref$onBlur = _ref.onBlur,
100
+ onBlurProp = _ref$onBlur === void 0 ? function () {} : _ref$onBlur,
101
+ _ref$onKeyDown = _ref.onKeyDown,
102
+ onKeyDownProp = _ref$onKeyDown === void 0 ? function () {} : _ref$onKeyDown,
103
+ _ref$onFilled = _ref.onFilled,
104
+ onFilledProp = _ref$onFilled === void 0 ? function () {} : _ref$onFilled,
105
+ _ref$showHint = _ref.showHint,
106
+ showHint = _ref$showHint === void 0 ? false : _ref$showHint,
107
+ _ref$hintText = _ref.hintText,
108
+ hintText = _ref$hintText === void 0 ? '' : _ref$hintText,
109
+ _ref$hintClassName = _ref.hintClassName,
110
+ hintClassName = _ref$hintClassName === void 0 ? '' : _ref$hintClassName,
111
+ _ref$isHintRight = _ref.isHintRight,
112
+ isHintRight = _ref$isHintRight === void 0 ? true : _ref$isHintRight,
113
+ _ref$isHintLeft = _ref.isHintLeft,
114
+ isHintLeft = _ref$isHintLeft === void 0 ? false : _ref$isHintLeft,
115
+ _ref$hintPosition = _ref.hintPosition,
116
+ hintPosition = _ref$hintPosition === void 0 ? 'right' : _ref$hintPosition,
117
+ _ref$hideMaskOnBlur = _ref.hideMaskOnBlur,
118
+ hideMaskOnBlur = _ref$hideMaskOnBlur === void 0 ? true : _ref$hideMaskOnBlur,
119
+ _ref$returnMaskedValu = _ref.returnMaskedValue,
120
+ returnMaskedValue = _ref$returnMaskedValu === void 0 ? false : _ref$returnMaskedValu,
121
+ name = _ref.name,
122
+ fieldKey = _ref.fieldKey,
123
+ id = _ref.id,
124
+ disabled = _ref.disabled,
125
+ testId = _ref.testId;
126
+
127
+ var errors = _objectSpread(_objectSpread({}, _config.DEFAULT_ERRORS), customErrors);
128
+
129
+ if (maxEditableIndex === -1) maxEditableIndex = maskPattern.length;
130
+
131
+ var _useState = (0, _react.useState)(false),
132
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
133
+ isMaskRendered = _useState2[0],
134
+ setMaskRendered = _useState2[1];
135
+
136
+ var _useState3 = (0, _react.useState)(false),
137
+ _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
138
+ isFocused = _useState4[0],
139
+ setFocused = _useState4[1];
140
+
141
+ var _useState5 = (0, _react.useState)(false),
142
+ _useState6 = (0, _slicedToArray2.default)(_useState5, 2),
143
+ isInitValue = _useState6[0],
144
+ setIsInitValue = _useState6[1];
145
+
146
+ var _useState7 = (0, _react.useState)(0),
147
+ _useState8 = (0, _slicedToArray2.default)(_useState7, 2),
148
+ selectedLength = _useState8[0],
149
+ setSelectedLength = _useState8[1];
150
+
151
+ var _useState9 = (0, _react.useState)(false),
152
+ _useState10 = (0, _slicedToArray2.default)(_useState9, 2),
153
+ isValueHidden = _useState10[0],
154
+ setIsValueHidden = _useState10[1];
155
+
156
+ var inputRef = (0, _react.useRef)(null);
157
+ var keyDownRef = (0, _react.useRef)(null);
158
+
159
+ var setKeyDown = function setKeyDown(keyCode) {
160
+ return keyDownRef.current = keyCode;
161
+ };
162
+
163
+ var getKeyDown = function getKeyDown() {
164
+ return keyDownRef.current;
165
+ };
166
+
167
+ var DynamicIconComponent = iconDynamicKey && !icon ? /*#__PURE__*/_react.default.createElement(_DynamicIcon.default, (0, _extends2.default)({
168
+ iconKey: iconDynamicKey
169
+ }, iconDynamicProps)) : null;
170
+
171
+ var setCaret = function setCaret(caret) {
172
+ if (caret < 0) caret = 0;
173
+ var input = inputRef.current;
174
+ if (input) setTimeout(function () {
175
+ return input.setSelectionRange(caret, caret);
176
+ }, 0);
177
+ }; // ERRORS MANAGEMENT FUNCTIONS | START //
178
+
179
+
180
+ var _useState11 = (0, _react.useState)(false),
181
+ _useState12 = (0, _slicedToArray2.default)(_useState11, 2),
182
+ isError = _useState12[0],
183
+ setError = _useState12[1];
184
+
185
+ var _useState13 = (0, _react.useState)(false),
186
+ _useState14 = (0, _slicedToArray2.default)(_useState13, 2),
187
+ blinkError = _useState14[0],
188
+ setBlinkError = _useState14[1];
189
+
190
+ var _useState15 = (0, _react.useState)(errors.default),
191
+ _useState16 = (0, _slicedToArray2.default)(_useState15, 2),
192
+ errorMessage = _useState16[0],
193
+ setErrorMessage = _useState16[1];
194
+
195
+ var clearErrorMessage = function clearErrorMessage() {
196
+ return setErrorMessage(errors.default);
197
+ }; // ERRORS MANAGEMENT FUNCTIONS | END //
198
+ // INNER VALUE MANAGEMENT FUNCTIONS | START //
199
+
200
+
201
+ var _useState17 = (0, _react.useState)([]),
202
+ _useState18 = (0, _slicedToArray2.default)(_useState17, 2),
203
+ innerValue = _useState18[0],
204
+ setInnerValue = _useState18[1];
205
+
206
+ var prevValueRef = (0, _react.useRef)([]);
207
+
208
+ var addInnerValueChar = function addInnerValueChar(_ref2) {
209
+ var char = _ref2.char,
210
+ _ref2$data = _ref2.data,
211
+ data = _ref2$data === void 0 ? {} : _ref2$data;
212
+ setInnerValue(function (state) {
213
+ var stateCopy = (0, _toConsumableArray2.default)(state);
214
+ var charObj = getCharObj(char, data);
215
+ stateCopy.push(charObj);
216
+ return stateCopy;
217
+ });
218
+ };
219
+
220
+ var updateInnerValueChar = function updateInnerValueChar() {
221
+ var _ref3 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
222
+ _ref3$char = _ref3.char,
223
+ char = _ref3$char === void 0 ? null : _ref3$char;
224
+
225
+ var i = arguments.length > 1 ? arguments[1] : undefined;
226
+ setInnerValue(function (state) {
227
+ if (!state[i]) return state;
228
+ var stateCopy = (0, _toConsumableArray2.default)(state);
229
+ if (!stateCopy[i].isSpecialSymbol && char !== null) stateCopy[i].char = char;
230
+ return stateCopy;
231
+ });
232
+ };
233
+
234
+ var resetInnerValue = function resetInnerValue() {
235
+ setInnerValue(function (innerValue) {
236
+ return innerValue.map(function (item) {
237
+ if (!item.isSpecialSymbol && item.char !== null) item.char = '';
238
+ return item;
239
+ });
240
+ });
241
+ };
242
+
243
+ var setValue = function setValue(value) {
244
+ var _maskPattern;
245
+
246
+ var disableErrors = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
247
+ value = value === null || value === undefined ? '' : value.toString();
248
+ resetInnerValue();
249
+ var staticLength = maskPattern.length - maxEditableIndex;
250
+ if (value.length > maxEditableIndex) value = value.slice(0, value.length - staticLength);else if (maxEditableIndex !== ((_maskPattern = maskPattern) === null || _maskPattern === void 0 ? void 0 : _maskPattern.length) - 1) value = value.slice(0, maxEditableIndex);
251
+ var valueCharIndex = 0;
252
+ setInnerValue(function (innerValue) {
253
+ var newValue = innerValue.map(function (item, i) {
254
+ var _maskPattern2;
255
+
256
+ var isSpecialSymbol = item.isSpecialSymbol;
257
+ if (isSpecialSymbol) return item;
258
+ var char = value[valueCharIndex];
259
+ var whileLimit = ((_maskPattern2 = maskPattern) === null || _maskPattern2 === void 0 ? void 0 : _maskPattern2.length) || 0;
260
+
261
+ while (whileLimit && (isSpecialSymbolChar({
262
+ char: value[valueCharIndex]
263
+ }) || !isValidChar({
264
+ char: char,
265
+ i: i,
266
+ disableErrors: true
267
+ }))) {
268
+ whileLimit--;
269
+ char = value[++valueCharIndex];
270
+ } // If Valid
271
+
272
+
273
+ if (isValidChar({
274
+ char: char,
275
+ i: i,
276
+ disableErrors: disableErrors
277
+ })) {
278
+ item.char = char;
279
+ }
280
+
281
+ ++valueCharIndex;
282
+ return item;
283
+ });
284
+ return newValue;
285
+ });
286
+ }; // INNER VALUE MANAGEMENT FUNCTIONS | END //
287
+ // CHECKERS | START //
288
+
289
+
290
+ var isValidChar = function isValidChar(_ref4) {
291
+ var key = _ref4.char,
292
+ i = _ref4.i,
293
+ _ref4$disableErrors = _ref4.disableErrors,
294
+ disableErrors = _ref4$disableErrors === void 0 ? false : _ref4$disableErrors;
295
+ var maskChar = getMaskCharByIndex(i);
296
+
297
+ switch (maskChar) {
298
+ case _config.DIGIT_MASK_CHAR:
299
+ if (!(0, _functions.isDigit)(key)) {
300
+ if (!disableErrors) {
301
+ setErrorMessage(errors.onlyDigit);
302
+ }
303
+
304
+ return false;
305
+ }
306
+
307
+ break;
308
+
309
+ case _config.UPPERCASE_LETTER_MASK_CHAR:
310
+ if (adaptTextCase) key = key.toUpperCase();
311
+
312
+ if (!(0, _functions.isLetter)(key) && !isCaseSensitive) {
313
+ if (!disableErrors) setErrorMessage(errors.onlyLetter);
314
+ return false;
315
+ }
316
+
317
+ if (isCaseSensitive && !(0, _functions.isUpperCaseLetter)(key)) {
318
+ if (!disableErrors) setErrorMessage(errors.onlyUpperCase);
319
+ return false;
320
+ }
321
+
322
+ break;
323
+
324
+ case _config.LOWERCASE_LETTER_MASK_CHAR:
325
+ if (adaptTextCase) key = key.toLowerCase();
326
+
327
+ if (!(0, _functions.isLetter)(key) && !isCaseSensitive) {
328
+ if (!disableErrors) setErrorMessage(errors.onlyLetter);
329
+ return false;
330
+ }
331
+
332
+ if (isCaseSensitive && !(0, _functions.isLowerCaseLetter)(key)) {
333
+ if (!disableErrors) setErrorMessage(errors.onlyLowerCase);
334
+ return false;
335
+ }
336
+
337
+ break;
338
+
339
+ default:
340
+ return false;
341
+ }
342
+
343
+ return true;
344
+ };
345
+
346
+ var isSpecialSymbolMaskChar = function isSpecialSymbolMaskChar(_ref5) {
347
+ var char = _ref5.char;
348
+ return !(0, _functions.isDigitMaskChar)(char) && !(0, _functions.isLetterMaskChar)(char);
349
+ };
350
+
351
+ var isSpecialSymbolChar = function isSpecialSymbolChar(_ref6) {
352
+ var char = _ref6.char;
353
+ return !(0, _functions.isDigit)(char) && !(0, _functions.isLetter)(char);
354
+ };
355
+
356
+ var isSpecialSymbol = function isSpecialSymbol(i) {
357
+ var _getCharByIndex;
358
+
359
+ return (_getCharByIndex = getCharByIndex(i)) === null || _getCharByIndex === void 0 ? void 0 : _getCharByIndex.isSpecialSymbol;
360
+ }; // CHECKERS | END //
361
+ // GETTERS | START //
362
+
363
+
364
+ var getCharObj = function getCharObj(char) {
365
+ var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
366
+ var isSpecialSymbol = isSpecialSymbolChar({
367
+ char: char
368
+ });
369
+ var isSpecialSymbolMask = isSpecialSymbolMaskChar({
370
+ char: char
371
+ });
372
+ if (char === ' ') char = _config.SPACE_CHAR;
373
+ return _objectSpread({
374
+ char: isSpecialSymbolMask ? char : '',
375
+ maskChar: char,
376
+ isSpecialSymbol: isSpecialSymbolMask,
377
+ isCharSymbol: !isSpecialSymbol && char !== '' && isSpecialSymbolMask,
378
+ ref: /*#__PURE__*/(0, _react.createRef)()
379
+ }, data);
380
+ };
381
+
382
+ var getCharByIndex = function getCharByIndex(i) {
383
+ return innerValue[i] ? _objectSpread({}, innerValue[i]) : undefined;
384
+ };
385
+
386
+ var getMaskCharByIndex = function getMaskCharByIndex(i) {
387
+ var _innerValue$i;
388
+
389
+ return ((_innerValue$i = innerValue[i]) === null || _innerValue$i === void 0 ? void 0 : _innerValue$i.maskChar) || undefined;
390
+ };
391
+
392
+ var getPlaceholderCharByIndex = function getPlaceholderCharByIndex(i) {
393
+ var _getCharByIndex2 = getCharByIndex(i),
394
+ maskChar = _getCharByIndex2.maskChar;
395
+
396
+ if (usePatternPlaceholder) {
397
+ return maskPatternPlaceholder[i] || maskPlaceholder;
398
+ }
399
+
400
+ if ((0, _functions.isDigitMaskChar)(maskChar) && maskDigitPlaceholder) return maskDigitPlaceholder;
401
+ if ((0, _functions.isLetterMaskChar)(maskChar) && maskLetterPlaceholder) return maskLetterPlaceholder;
402
+ return maskPlaceholder;
403
+ };
404
+
405
+ var getClearInnerValueAsString = function getClearInnerValueAsString() {
406
+ var _getInputValue, _getInputValue$split;
407
+
408
+ var symbolsInfo = innerValue === null || innerValue === void 0 ? void 0 : innerValue.map(function (_ref7) {
409
+ var isSpecialSymbol = _ref7.isSpecialSymbol,
410
+ isCharSymbol = _ref7.isCharSymbol;
411
+ return {
412
+ isSpecialSymbol: isSpecialSymbol,
413
+ isCharSymbol: isCharSymbol
414
+ };
415
+ });
416
+ var clearValue = (_getInputValue = getInputValue({
417
+ noLastTyppedCharIndexCheck: true
418
+ })) === null || _getInputValue === void 0 ? void 0 : (_getInputValue$split = _getInputValue.split('')) === null || _getInputValue$split === void 0 ? void 0 : _getInputValue$split.reduce(function (resultStr, symbol, i) {
419
+ if (!symbolsInfo[i].isSpecialSymbol || symbolsInfo[i].isCharSymbol) resultStr += symbol;
420
+ return resultStr;
421
+ }, '');
422
+ return clearValue;
423
+ };
424
+
425
+ var getInputValue = function getInputValue() {
426
+ var _ref8 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
427
+ noLastTyppedCharIndexCheck = _ref8.noLastTyppedCharIndexCheck,
428
+ _ref8$noHide = _ref8.noHide,
429
+ noHide = _ref8$noHide === void 0 ? false : _ref8$noHide;
430
+
431
+ var isValid = true;
432
+ var lastTyppedCharIndex = innerValue.reduce(function (result, _ref9, i) {
433
+ var char = _ref9.char,
434
+ isSpecialSymbol = _ref9.isSpecialSymbol;
435
+ return char !== '' && !isSpecialSymbol ? i : result;
436
+ }, 0);
437
+ var value = innerValue.reduce(function (result, _ref10, i) {
438
+ var char = _ref10.char,
439
+ isSpecialSymbol = _ref10.isSpecialSymbol;
440
+
441
+ if (char !== '' && isValid && (!noLastTyppedCharIndexCheck ? i <= lastTyppedCharIndex : true)) {
442
+ if (isValueHidden && !isSpecialSymbol && !noHide) {
443
+ result += hiddenChar;
444
+ } else {
445
+ result += char;
446
+ }
447
+ } else {
448
+ isValid = false;
449
+ }
450
+
451
+ return result;
452
+ }, '');
453
+ return value;
454
+ };
455
+
456
+ var inputValue = (0, _react.useMemo)(getInputValue, [innerValue, isValueHidden]); // GETTERS | END //
457
+ /// --- Event Handlers ---///
458
+ // GENERAL EVENT HANDLERS | START //
459
+
460
+ var onVisibleChange = function onVisibleChange(e) {
461
+ clearErrorMessage();
462
+ var _e$target = e.target,
463
+ value = _e$target.value,
464
+ caretPos = _e$target.selectionStart,
465
+ char = e.nativeEvent.data;
466
+
467
+ if (caretPos > maxEditableIndex) {
468
+ (0, _utils.disableDefaultBehavior)();
469
+ setCaret(maxEditableIndex);
470
+ setBlinkError(true);
471
+ return;
472
+ }
473
+
474
+ setValue(value);
475
+ var caretOffset = value.length - caretPos; // Correct Caret Position
476
+
477
+ if (!value.lastIndexEqualsTo(caretPos - 1)) {
478
+ if (value.longerThan(inputValue)) {
479
+ if (!isValidChar({
480
+ char: char,
481
+ i: caretPos - 1
482
+ })) {
483
+ (0, _utils.disableDefaultBehavior)(e);
484
+ setCaret(caretPos - 1);
485
+ } else {
486
+ var newCaretPos = value.length - caretOffset;
487
+ setCaret(isSpecialSymbol(newCaretPos) ? newCaretPos + 1 : newCaretPos);
488
+ }
489
+ } else if (inputValue.longerThan(value)) {
490
+ switch (getKeyDown()) {
491
+ case _index.KEYBOARD_KEY_CODES.Backspace:
492
+ if (isSpecialSymbol(caretPos)) {
493
+ (0, _utils.disableDefaultBehavior)(e);
494
+ }
495
+
496
+ setCaret(caretPos);
497
+ break;
498
+
499
+ case _index.KEYBOARD_KEY_CODES.Delete:
500
+ if (isSpecialSymbol(caretPos)) {
501
+ (0, _utils.disableDefaultBehavior)(e);
502
+ setCaret(caretPos + 1);
503
+ } else {
504
+ setCaret(caretPos);
505
+ }
506
+
507
+ break;
508
+
509
+ default:
510
+ if (selectedLength > 0) {
511
+ setCaret(caretPos);
512
+ }
513
+
514
+ }
515
+ }
516
+ }
517
+ /* Checking if the character is a special symbol and if it is not, it is checking if the character
518
+ is valid or not. If it is not valid, it will blink the error. */
519
+
520
+
521
+ if (blinkErrors) {
522
+ setTimeout(function () {
523
+ if ((value.longerThan(inputValue) && !isSpecialSymbol(caretPos - 1) || inputValue.longerThan(value) && !isSpecialSymbol(caretPos)) && (char && !isValidChar({
524
+ char: char,
525
+ i: caretPos - 1
526
+ }) || inputValue === getInputValue() && getInputValue()[caretPos - 1] !== char)) {
527
+ (0, _utils.disableDefaultBehavior)(e);
528
+ setBlinkError(true);
529
+ }
530
+ }, 0);
531
+ }
532
+ };
533
+
534
+ var onHiddenChange = function onHiddenChange(e) {
535
+ var _maskPattern3;
536
+
537
+ var SSN = getInputValue({
538
+ noHide: true
539
+ });
540
+ var _e$target2 = e.target,
541
+ value = _e$target2.value,
542
+ caretPos = _e$target2.selectionStart,
543
+ char = e.nativeEvent.data;
544
+
545
+ if (value.replace(/-/g, '').length < SSN.length) {
546
+ var last = SSN.length - 1;
547
+ setValue(SSN.slice(0, last));
548
+ return;
549
+ }
550
+
551
+ var numValue = value.replace(/\D/g, '');
552
+ var newSSN = '';
553
+
554
+ if (isValueHidden) {
555
+ if (SSN.length > maxEditableIndex) {
556
+ newSSN = SSN.slice(0, maxEditableIndex) + numValue;
557
+ } else {
558
+ newSSN = SSN + numValue;
559
+ }
560
+ } else {
561
+ newSSN = numValue;
562
+ }
563
+
564
+ if (newSSN.length > ((_maskPattern3 = maskPattern) === null || _maskPattern3 === void 0 ? void 0 : _maskPattern3.length)) {
565
+ return;
566
+ }
567
+
568
+ setValue(newSSN);
569
+ };
570
+
571
+ var onChange = isValueHidden ? onHiddenChange : onVisibleChange;
572
+
573
+ var onKeyDown = function onKeyDown(e) {
574
+ onKeyDownProp === null || onKeyDownProp === void 0 ? void 0 : onKeyDownProp(e);
575
+ var keyCode = e.keyCode;
576
+ setKeyDown(keyCode);
577
+ };
578
+
579
+ var onKeyUp = function onKeyUp(e) {
580
+ setKeyDown(null); // On Filled Callback
581
+
582
+ if (getInputValue({
583
+ noLastTyppedCharIndexCheck: true
584
+ }).length === maskPattern.length && e.target.selectionStart >= maxEditableIndex) onFilledProp();
585
+ };
586
+
587
+ var onClearClick = function onClearClick(e) {
588
+ var _inputRef$current;
589
+
590
+ e.stopPropagation();
591
+ e.preventDefault();
592
+ resetInnerValue();
593
+ inputRef === null || inputRef === void 0 ? void 0 : (_inputRef$current = inputRef.current) === null || _inputRef$current === void 0 ? void 0 : _inputRef$current.focus();
594
+ setCaret(0);
595
+ clearErrorMessage();
596
+ };
597
+
598
+ var _onFocus = function onFocus(e) {
599
+ setFocused(true);
600
+ onFocusProp();
601
+ };
602
+
603
+ var onBlur = function onBlur() {
604
+ setFocused(false);
605
+ onBlurProp();
606
+ };
607
+
608
+ var onClick = function onClick(e) {
609
+ var cursor = e.target.selectionStart;
610
+ if (cursor >= maxEditableIndex) setCaret(maxEditableIndex);
611
+ };
612
+
613
+ var onSelect = function onSelect(e) {
614
+ var _e$target3, _ref12;
615
+
616
+ var _ref11 = (_e$target3 = e.target) !== null && _e$target3 !== void 0 ? _e$target3 : {},
617
+ selectionStart = _ref11.selectionStart,
618
+ selectionEnd = _ref11.selectionEnd;
619
+
620
+ setSelectedLength((_ref12 = selectionEnd - selectionStart) !== null && _ref12 !== void 0 ? _ref12 : 0);
621
+ if (selectionStart >= maxEditableIndex) setCaret(maxEditableIndex);
622
+ }; // GENERAL EVENT HANDLERS | END //
623
+ /// --- OBSERVERS ---///
624
+ // Render Mask
625
+
626
+
627
+ (0, _react.useEffect)(function () {
628
+ setIsInitValue(false);
629
+ setInnerValue([]);
630
+ setMaskRendered(false);
631
+ if (!maskPattern) maskPattern = '';
632
+ maskPattern.split('').map(function (char, id) {
633
+ addInnerValueChar({
634
+ char: char,
635
+ data: {
636
+ id: id,
637
+ isReadOnly: id === maskPattern.length
638
+ }
639
+ });
640
+ if (value !== null && value !== void 0 && value[id]) updateInnerValueChar({
641
+ char: value[id]
642
+ }, id);
643
+ });
644
+ setMaskRendered(true);
645
+ }, [maskPattern]);
646
+ (0, _react.useEffect)(function () {
647
+ if (isMaskRendered && !isInitValue || isInitValue && ![getInputValue(), getClearInnerValueAsString()].includes(value) && value !== '') {
648
+ setValue(value);
649
+ setIsInitValue(true);
650
+ }
651
+ }, [isMaskRendered, value, isInitValue]); // OnChange Observer
652
+
653
+ (0, _react.useEffect)(function () {
654
+ if (isMaskRendered && isInitValue) {
655
+ var _prevValueRef$current, _prevValueRef$current2;
656
+
657
+ setError(false);
658
+ var values = [getClearInnerValueAsString(), getInputValue({
659
+ noLastTyppedCharIndexCheck: true
660
+ })];
661
+ if (returnMaskedValue) values.reverse();
662
+
663
+ if ((prevValueRef === null || prevValueRef === void 0 ? void 0 : (_prevValueRef$current = prevValueRef.current) === null || _prevValueRef$current === void 0 ? void 0 : _prevValueRef$current[0]) !== values[0] && (prevValueRef === null || prevValueRef === void 0 ? void 0 : (_prevValueRef$current2 = prevValueRef.current) === null || _prevValueRef$current2 === void 0 ? void 0 : _prevValueRef$current2[1]) !== values[1] && value !== values[0] && value !== values[1]) {
664
+ prevValueRef.current = values;
665
+ onChangeProp.apply(void 0, values);
666
+ }
667
+ }
668
+ }, [innerValue, isMaskRendered, isInitValue, value]); // Blink Error
669
+
670
+ (0, _react.useEffect)(function () {
671
+ if (blinkError) {
672
+ setTimeout(function () {
673
+ setBlinkError(false);
674
+ }, blinkDuration);
675
+ }
676
+ }, [blinkError]);
677
+ (0, _react.useEffect)(function () {
678
+ setError(customError !== '');
679
+ setErrorMessage(customError === '' ? errors.default : customError);
680
+ }, [customError, isError]); /// --- RENDER ---///
681
+
682
+ var renderChar = function renderChar(obj, i) {
683
+ var className = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '';
684
+ var char = obj.char,
685
+ ref = obj.ref,
686
+ maskChar = obj.maskChar,
687
+ isSpecialSymbol = obj.isSpecialSymbol;
688
+ return /*#__PURE__*/_react.default.createElement("span", {
689
+ tabIndex: -1,
690
+ key: i,
691
+ "attr-char-id": i,
692
+ className: (0, _classnames.default)('input-mask_value_item', className, {
693
+ 'input-mask_value_item--digit': (0, _functions.isDigitMaskChar)(obj.maskChar),
694
+ 'input-mask_value_item--letter': (0, _functions.isLetterMaskChar)(obj.maskChar),
695
+ 'input-mask_value_item--spec': obj.isSpecialSymbol,
696
+ 'input-mask_value_item--hidden': i < inputValue.length
697
+ }),
698
+ ref: ref
699
+ }, !isFocused && hideMaskOnBlur && getClearInnerValueAsString().length === 0 ? _config.SPACE_CHAR : isSpecialSymbol ? maskChar : char === '' ? getPlaceholderCharByIndex(i) : char);
700
+ };
701
+
702
+ var renderMaskChar = function renderMaskChar(obj, i) {
703
+ return renderChar(obj, i, 'input-mask_value_item_mask-char');
704
+ };
705
+
706
+ var renderValueChar = function renderValueChar(obj, i) {
707
+ return isValueHidden ? renderChar(_objectSpread(_objectSpread({}, obj), {}, {
708
+ char: hiddenChar
709
+ }), i, 'input-mask_value_item_value-hidden-char') : renderChar(obj, i, 'input-mask_value_item_value-char');
710
+ };
711
+
712
+ var renderSpecialChar = function renderSpecialChar(obj, i) {
713
+ return renderChar(obj, i, 'input-mask_value_item_spec-char');
714
+ };
715
+
716
+ var renderInputValue = function renderInputValue() {
717
+ return innerValue.map(function (obj, i) {
718
+ var char = obj.char,
719
+ isSpecialSymbol = obj.isSpecialSymbol;
720
+
721
+ if (isSpecialSymbol) {
722
+ return renderSpecialChar(obj, i);
723
+ }
724
+
725
+ var isMaskItem = function () {
726
+ return char === '';
727
+ }();
728
+
729
+ return isMaskItem ? renderMaskChar(obj, i) : renderValueChar(obj, i);
730
+ });
731
+ };
732
+
733
+ var renderMask = function renderMask() {
734
+ return /*#__PURE__*/_react.default.createElement("div", {
735
+ className: "input-mask_value"
736
+ }, renderInputValue());
737
+ };
738
+
739
+ var renderInput = function renderInput() {
740
+ return /*#__PURE__*/_react.default.createElement("input", {
741
+ name: name || fieldKey || id || testId || '',
742
+ "data-testid": testId,
743
+ className: "input-mask_input ".concat(className),
744
+ ref: inputRef,
745
+ value: inputValue,
746
+ onChange: onChange,
747
+ onKeyDown: onKeyDown,
748
+ onKeyUp: onKeyUp,
749
+ onBlur: onBlur,
750
+ onClick: onClick,
751
+ autoComplete: autocomplete,
752
+ onFocus: function onFocus() {
753
+ if (isUseAutoSelect) inputRef.current.select();
754
+ if (_onFocus) _onFocus.apply(void 0, arguments);
755
+ },
756
+ onDragStart: function onDragStart(e) {
757
+ e.stopPropagation();
758
+ e.preventDefault();
759
+ },
760
+ onDragEnd: function onDragEnd(e) {
761
+ e.stopPropagation();
762
+ e.preventDefault();
763
+ },
764
+ onSelect: onSelect
765
+ });
766
+ };
767
+
768
+ var renderHideToggler = function renderHideToggler() {
769
+ return /*#__PURE__*/_react.default.createElement("span", {
770
+ className: "formatted-raw-ssn-eye-holder",
771
+ onClick: function onClick() {
772
+ return setIsValueHidden(function (v) {
773
+ return !v;
774
+ });
775
+ },
776
+ "data-testid": "formattedRawSNN--eye--key-".concat(testId, "--container")
777
+ }, ' ', isValueHidden ? /*#__PURE__*/_react.default.createElement(_reactFeather.Eye, {
778
+ strokeWidth: 1,
779
+ className: "password-icon"
780
+ }) : /*#__PURE__*/_react.default.createElement(_reactFeather.EyeOff, {
781
+ strokeWidth: 1,
782
+ className: "password-icon"
783
+ }));
784
+ };
785
+
786
+ var renderClearButton = function renderClearButton() {
787
+ return /*#__PURE__*/_react.default.createElement("div", {
788
+ className: "input-mask_clear"
789
+ }, /*#__PURE__*/_react.default.createElement(_reactFeather.X, {
790
+ onClick: onClearClick
791
+ }));
792
+ };
793
+
794
+ var renderHint = function renderHint() {
795
+ return /*#__PURE__*/_react.default.createElement("div", {
796
+ className: "input-mask_hint input-mask_hint--".concat(hintPosition)
797
+ }, /*#__PURE__*/_react.default.createElement(_Hint.default, {
798
+ hint: hintText,
799
+ className: hintClassName,
800
+ side: hintPosition
801
+ }));
802
+ };
803
+
804
+ var renderIcon = function renderIcon() {
805
+ var position = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'left';
806
+ return /*#__PURE__*/_react.default.createElement("div", {
807
+ className: "input-mask_icon input-mask_icon--".concat(position)
808
+ }, DynamicIconComponent !== null && DynamicIconComponent !== void 0 ? DynamicIconComponent : icon);
809
+ };
810
+
811
+ var render = function render() {
812
+ return /*#__PURE__*/_react.default.createElement("div", {
813
+ className: (0, _classnames.default)('input-mask3_wrapper', className, {
814
+ 'input-mask_error': isError
815
+ }, {
816
+ 'input-mask_focus': isFocused
817
+ }, {
818
+ 'input-mask_blink-error': blinkError
819
+ }, {
820
+ disabled: disabled || isLoading
821
+ })
822
+ }, /*#__PURE__*/_react.default.createElement("div", {
823
+ className: "\n input-mask\n ".concat(isError ? 'input-mask_error' : '', "\n ").concat(isFocused ? 'input-mask_focus' : '', "\n ").concat(blinkError ? 'input-mask_blink-error' : '', "\n ")
824
+ }, showHint && isHintLeft && renderHint(), isIconLeft && showIcon && renderIcon('left'), renderMask(), renderInput(), withHiddenMode && renderHideToggler(), isClearable && renderClearButton(), isIconRight && showIcon && renderIcon('right'), showHint && isHintRight && renderHint()), showErrors && errorMessage && /*#__PURE__*/_react.default.createElement("div", {
825
+ className: "input-mask_error-text"
826
+ }, errorMessage), isLoading && /*#__PURE__*/_react.default.createElement(_Spinner.default, {
827
+ size: "small"
828
+ }));
829
+ };
830
+
831
+ return render();
832
+ }
@@ -0,0 +1,182 @@
1
+ .unselectable {
2
+ -webkit-touch-callout: none; /* iOS Safari */ /* Chrome/Safari/Opera */ /* Konqueror */ /* Firefox */ /* Internet Explorer/Edge */
3
+ user-select: none; /* Non-prefixed version, currently
4
+ not supported by any browser */
5
+ }
6
+
7
+ .input-mask3_wrapper {
8
+ position: relative;
9
+ display: block;
10
+ // width: fit-content;
11
+ width: 100%;
12
+
13
+ outline: none;
14
+
15
+ & .input-mask {
16
+ position: relative;
17
+
18
+ display: inline-flex;
19
+ align-items: center;
20
+ justify-content: space-between;
21
+
22
+ box-sizing: border-box;
23
+ width: 100%;
24
+ padding: 8px;
25
+
26
+ cursor: text;
27
+
28
+ border: 1px solid #E2E5EC;
29
+ border-radius: 4px;
30
+ background-color: #FFF;
31
+
32
+ &_input {
33
+ position: absolute;
34
+ top: 0;
35
+ left: 0;
36
+
37
+ box-sizing: border-box;
38
+ width: 100%;
39
+ height: 100%;
40
+ padding: 8px;
41
+
42
+ color: #333;
43
+ border: none;
44
+ outline: none;
45
+ background: rgb(0 0 0 / 0%);
46
+
47
+ font-size: 16px;
48
+ }
49
+
50
+ &_focus {
51
+ border-color: #6B81DD;
52
+ filter: drop-shadow(0 0 4px rgb(93 120 255 / 50%));
53
+ }
54
+
55
+ &_error,
56
+ &_blink-error {
57
+ border-color: #DD6B6B;
58
+ filter: drop-shadow(0 0 4px rgb(255 93 93 / 50%));
59
+ }
60
+
61
+ &_icon {
62
+ position: relative;
63
+
64
+ width: 16px;
65
+ height: 16px;
66
+
67
+ &--left {
68
+ margin-right: 4px;
69
+ }
70
+
71
+ &--right {
72
+ right: 0;
73
+
74
+ margin-left: 4px;
75
+ }
76
+ }
77
+
78
+ &_hint {
79
+ display: flex;
80
+ align-items: center;
81
+
82
+ text-align: center;
83
+
84
+ & .hint__text_right {
85
+ top: 50%;
86
+ left: 24px;
87
+
88
+ transform: translateY(-50%);
89
+
90
+ &::before {
91
+ top: calc(50% - 4px);
92
+ left: -3px;
93
+ }
94
+ }
95
+
96
+ & .hint__text_left {
97
+ top: 50%;
98
+ right: 32px;
99
+
100
+ transform: translateY(-50%);
101
+
102
+ &::before {
103
+ top: calc(50% - 4px);
104
+ right: -3px;
105
+ }
106
+ }
107
+
108
+ &--left {
109
+ margin-right: 4px;
110
+ }
111
+
112
+ &--right {
113
+ right: 0;
114
+
115
+ margin-left: 4px;
116
+ }
117
+ }
118
+
119
+ &_clear {
120
+ position: relative;
121
+ z-index: 9;
122
+
123
+ width: 16px;
124
+ height: 16px;
125
+
126
+ cursor: pointer !important;
127
+ }
128
+
129
+ &_value {
130
+ position: relative;
131
+
132
+ display: flex;
133
+ align-items: center;
134
+
135
+ width: 100%;
136
+
137
+ outline: none;
138
+
139
+ &_item {
140
+ display: inline-flex;
141
+
142
+ width: unset;
143
+ min-width: 0;
144
+ margin: 0;
145
+ padding: 0;
146
+
147
+ border: none;
148
+ outline: none;
149
+
150
+ font-size: 16px;
151
+
152
+ &_mask-char {
153
+ color: #9C9C9C;
154
+ }
155
+
156
+ &_value-char {
157
+ opacity: 0;
158
+ }
159
+
160
+ &_spec-char {
161
+ text-align: center;
162
+ }
163
+
164
+ &--hidden {
165
+ visibility: hidden;
166
+ }
167
+ }
168
+ }
169
+ }
170
+
171
+ .input-mask_error-text {
172
+ margin-top: 8px;
173
+
174
+ color: rgb(211 82 82);
175
+
176
+ font-size: 12px;
177
+ }
178
+
179
+ .lds-ring.lds-ring_small {
180
+ top: calc(50% - 18px);
181
+ }
182
+ }
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+
3
+ module.exports = {
4
+ UPPERCASE_LETTER_MASK_CHAR: 'L',
5
+ LOWERCASE_LETTER_MASK_CHAR: 'l',
6
+ DIGIT_MASK_CHAR: 'D',
7
+ SPACE_CHAR: "\xA0",
8
+ ANDROID_CHROME_TEXT_CODE: 229,
9
+ EXCLUDED_KEYS: ['Tab'],
10
+ DEFAULT_ERRORS: {
11
+ onlyLetter: 'Type letter',
12
+ onlyDigit: 'Type digit',
13
+ onlyUpperCase: 'Type letter in UpperCase',
14
+ onlyLowerCase: 'Type letter in LowerCase',
15
+ default: null
16
+ }
17
+ };
@@ -0,0 +1,91 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.voidFn = exports.selectElementContents = exports.resetSelectionText = exports.isUpperCaseLetter = exports.isLowerCaseLetter = exports.isLetterMaskChar = exports.isLetter = exports.isDigitMaskChar = exports.isDigit = exports.getSelectionText = exports.copyToClipboard = void 0;
7
+
8
+ var _config = require("./config");
9
+
10
+ var getSelectionText = function getSelectionText() {
11
+ var _text;
12
+
13
+ var text = '';
14
+
15
+ if (window.getSelection) {
16
+ text = window.getSelection().toString();
17
+ } else if (document.selection && document.selection.type !== 'Control') {
18
+ text = document.selection.createRange().text;
19
+ }
20
+
21
+ return (_text = text) === null || _text === void 0 ? void 0 : _text.replace(/\n/g, '');
22
+ };
23
+
24
+ exports.getSelectionText = getSelectionText;
25
+
26
+ var resetSelectionText = function resetSelectionText() {
27
+ if (window.getSelection) {
28
+ window.getSelection().removeAllRanges();
29
+ }
30
+ };
31
+
32
+ exports.resetSelectionText = resetSelectionText;
33
+
34
+ var copyToClipboard = function copyToClipboard(str) {
35
+ if (navigator && navigator.clipboard && navigator.clipboard.writeText) return navigator.clipboard.writeText(str); // eslint-disable-next-line prefer-promise-reject-errors
36
+
37
+ return Promise.reject('The Clipboard API is not available.');
38
+ };
39
+
40
+ exports.copyToClipboard = copyToClipboard;
41
+
42
+ var selectElementContents = function selectElementContents(el) {
43
+ var startOffset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : -1;
44
+ var endOffset = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : -1;
45
+ var sel = window.getSelection();
46
+ sel.selectAllChildren(el);
47
+ };
48
+
49
+ exports.selectElementContents = selectElementContents;
50
+
51
+ var isLetter = function isLetter(char) {
52
+ return Boolean((char === null || char === void 0 ? void 0 : char.length) === 1 && (char === null || char === void 0 ? void 0 : char.match(/[a-z]/i)));
53
+ };
54
+
55
+ exports.isLetter = isLetter;
56
+
57
+ var isUpperCaseLetter = function isUpperCaseLetter(char) {
58
+ return isLetter(char) ? char === char.slice().toUpperCase() : false;
59
+ };
60
+
61
+ exports.isUpperCaseLetter = isUpperCaseLetter;
62
+
63
+ var isLowerCaseLetter = function isLowerCaseLetter(char) {
64
+ return isLetter(char) ? char === char.slice().toLowerCase() : false;
65
+ };
66
+
67
+ exports.isLowerCaseLetter = isLowerCaseLetter;
68
+
69
+ var isDigit = function isDigit(char) {
70
+ return Boolean(Number.isInteger(parseInt(char)));
71
+ };
72
+
73
+ exports.isDigit = isDigit;
74
+
75
+ var isDigitMaskChar = function isDigitMaskChar(char) {
76
+ return char === _config.DIGIT_MASK_CHAR;
77
+ };
78
+
79
+ exports.isDigitMaskChar = isDigitMaskChar;
80
+
81
+ var isLetterMaskChar = function isLetterMaskChar(char) {
82
+ return char === _config.UPPERCASE_LETTER_MASK_CHAR || char === _config.LOWERCASE_LETTER_MASK_CHAR;
83
+ };
84
+
85
+ exports.isLetterMaskChar = isLetterMaskChar;
86
+
87
+ var voidFn = function voidFn() {
88
+ console.error('Void Function Called');
89
+ };
90
+
91
+ exports.voidFn = voidFn;
@@ -83,30 +83,20 @@ var InputAddress = function InputAddress(_ref) {
83
83
  isLoading = _useState8[0],
84
84
  setIsLoading = _useState8[1];
85
85
 
86
- var _useState9 = (0, _react.useState)(false),
86
+ var _useState9 = (0, _react.useState)(null),
87
87
  _useState10 = (0, _slicedToArray2.default)(_useState9, 2),
88
- internalError = _useState10[0],
89
- setInternalError = _useState10[1];
88
+ hightlightedIndex = _useState10[0],
89
+ setHightlightedIndex = _useState10[1];
90
90
 
91
91
  var _useState11 = (0, _react.useState)(false),
92
92
  _useState12 = (0, _slicedToArray2.default)(_useState11, 2),
93
- isSelectedFromList = _useState12[0],
94
- setIsSelectedFromList = _useState12[1];
93
+ isFocused = _useState12[0],
94
+ setIsFocused = _useState12[1];
95
95
 
96
- var _useState13 = (0, _react.useState)(null),
96
+ var _useState13 = (0, _react.useState)(false),
97
97
  _useState14 = (0, _slicedToArray2.default)(_useState13, 2),
98
- hightlightedIndex = _useState14[0],
99
- setHightlightedIndex = _useState14[1];
100
-
101
- var _useState15 = (0, _react.useState)(false),
102
- _useState16 = (0, _slicedToArray2.default)(_useState15, 2),
103
- isFocused = _useState16[0],
104
- setIsFocused = _useState16[1];
105
-
106
- var _useState17 = (0, _react.useState)(false),
107
- _useState18 = (0, _slicedToArray2.default)(_useState17, 2),
108
- isListVisible = _useState18[0],
109
- setIsListVisible = _useState18[1];
98
+ isListVisible = _useState14[0],
99
+ setIsListVisible = _useState14[1];
110
100
 
111
101
  var isWrongAddress = (0, _react.useMemo)(function () {
112
102
  var _query$street;
@@ -120,7 +110,6 @@ var InputAddress = function InputAddress(_ref) {
120
110
 
121
111
  var setQueryAsItem = function setQueryAsItem(e, item) {
122
112
  if (e) e === null || e === void 0 ? void 0 : e.stopPropagation();
123
- setIsSelectedFromList(true);
124
113
  setTimeout(function () {
125
114
  return setQuery(item);
126
115
  }, 1);
@@ -161,19 +150,18 @@ var InputAddress = function InputAddress(_ref) {
161
150
  setHightlightedIndex(null);
162
151
  inputRef === null || inputRef === void 0 ? void 0 : (_inputRef$current2 = inputRef.current) === null || _inputRef$current2 === void 0 ? void 0 : _inputRef$current2.blur();
163
152
  } else {
164
- var _listRef$current, _listRef$current$getB, _listRef$current2, _listRef$current2$get, _listRef$current3, _newHightlightedEleme;
153
+ var _listRef$current, _listRef$current$getB, _listRef$current2, _newHightlightedEleme;
165
154
 
166
- var prevHightlightedIndex = hightlightedIndex;
167
155
  var newHightlightedIndex = null;
168
156
  var listItemsElements = document.getElementsByClassName('input-address__list--item');
169
- var listTop = listRef === null || listRef === void 0 ? void 0 : (_listRef$current = listRef.current) === null || _listRef$current === void 0 ? void 0 : (_listRef$current$getB = _listRef$current.getBoundingClientRect()) === null || _listRef$current$getB === void 0 ? void 0 : _listRef$current$getB.top;
170
- var listHeight = listRef === null || listRef === void 0 ? void 0 : (_listRef$current2 = listRef.current) === null || _listRef$current2 === void 0 ? void 0 : (_listRef$current2$get = _listRef$current2.getBoundingClientRect()) === null || _listRef$current2$get === void 0 ? void 0 : _listRef$current2$get.height;
171
- var listScrollTop = (listRef === null || listRef === void 0 ? void 0 : (_listRef$current3 = listRef.current) === null || _listRef$current3 === void 0 ? void 0 : _listRef$current3.scrollTop) || 0;
157
+ var listHeight = listRef === null || listRef === void 0 ? void 0 : (_listRef$current = listRef.current) === null || _listRef$current === void 0 ? void 0 : (_listRef$current$getB = _listRef$current.getBoundingClientRect()) === null || _listRef$current$getB === void 0 ? void 0 : _listRef$current$getB.height;
158
+ var listScrollTop = (listRef === null || listRef === void 0 ? void 0 : (_listRef$current2 = listRef.current) === null || _listRef$current2 === void 0 ? void 0 : _listRef$current2.scrollTop) || 0;
159
+ var lastItemIndex = parseInt(listItems === null || listItems === void 0 ? void 0 : listItems.length) - 1;
172
160
  /** Arrows Controllers **/
173
161
 
174
162
  if (keyCode === 40) {
175
163
  // Down Key Controller
176
- if (hightlightedIndex === null || hightlightedIndex === (listItems === null || listItems === void 0 ? void 0 : listItems.length) - 1) {
164
+ if (hightlightedIndex === null || hightlightedIndex === lastItemIndex) {
177
165
  newHightlightedIndex = 0;
178
166
  } else if (hightlightedIndex + 1 < (listItems === null || listItems === void 0 ? void 0 : listItems.length)) {
179
167
  newHightlightedIndex = hightlightedIndex + 1;
@@ -181,7 +169,7 @@ var InputAddress = function InputAddress(_ref) {
181
169
  } else if (keyCode === 38) {
182
170
  // Up Key Controller
183
171
  if (hightlightedIndex === null || hightlightedIndex === 0) {
184
- newHightlightedIndex = (listItems === null || listItems === void 0 ? void 0 : listItems.length) - 1;
172
+ newHightlightedIndex = lastItemIndex;
185
173
  } else if (hightlightedIndex - 1 >= 0) {
186
174
  newHightlightedIndex = hightlightedIndex - 1;
187
175
  }
@@ -194,23 +182,23 @@ var InputAddress = function InputAddress(_ref) {
194
182
 
195
183
  if (newHightlightedElementTopInList + newHightlightedElementHeight > listScrollTop + listHeight) {
196
184
  if (Math.abs(newHightlightedElementTopInList + newHightlightedElementHeight - (listScrollTop + listHeight)) <= newHightlightedElementHeight) {
197
- var _listRef$current4;
185
+ var _listRef$current3;
198
186
 
199
- listRef === null || listRef === void 0 ? void 0 : (_listRef$current4 = listRef.current) === null || _listRef$current4 === void 0 ? void 0 : _listRef$current4.scrollTo(0, listScrollTop + newHightlightedElementHeight);
187
+ listRef === null || listRef === void 0 ? void 0 : (_listRef$current3 = listRef.current) === null || _listRef$current3 === void 0 ? void 0 : _listRef$current3.scrollTo(0, listScrollTop + newHightlightedElementHeight);
200
188
  } else {
201
- var _listRef$current5;
189
+ var _listRef$current4;
202
190
 
203
- listRef === null || listRef === void 0 ? void 0 : (_listRef$current5 = listRef.current) === null || _listRef$current5 === void 0 ? void 0 : _listRef$current5.scrollTo(0, newHightlightedElementTopInList);
191
+ listRef === null || listRef === void 0 ? void 0 : (_listRef$current4 = listRef.current) === null || _listRef$current4 === void 0 ? void 0 : _listRef$current4.scrollTo(0, newHightlightedElementTopInList);
204
192
  }
205
193
  } else if (newHightlightedElementTopInList < listScrollTop) {
206
194
  if (Math.abs(newHightlightedElementTopInList - listScrollTop) < newHightlightedElementHeight) {
207
- var _listRef$current6;
195
+ var _listRef$current5;
208
196
 
209
- listRef === null || listRef === void 0 ? void 0 : (_listRef$current6 = listRef.current) === null || _listRef$current6 === void 0 ? void 0 : _listRef$current6.scrollTo(0, listScrollTop - newHightlightedElementHeight);
197
+ listRef === null || listRef === void 0 ? void 0 : (_listRef$current5 = listRef.current) === null || _listRef$current5 === void 0 ? void 0 : _listRef$current5.scrollTo(0, listScrollTop - newHightlightedElementHeight);
210
198
  } else {
211
- var _listRef$current7;
199
+ var _listRef$current6;
212
200
 
213
- listRef === null || listRef === void 0 ? void 0 : (_listRef$current7 = listRef.current) === null || _listRef$current7 === void 0 ? void 0 : _listRef$current7.scrollTo(0, newHightlightedElementTopInList);
201
+ listRef === null || listRef === void 0 ? void 0 : (_listRef$current6 = listRef.current) === null || _listRef$current6 === void 0 ? void 0 : _listRef$current6.scrollTo(0, newHightlightedElementTopInList);
214
202
  }
215
203
  }
216
204
 
@@ -220,23 +208,6 @@ var InputAddress = function InputAddress(_ref) {
220
208
 
221
209
  var onChangeInternal = function onChangeInternal(value) {
222
210
  setQuery(value);
223
- setIsSelectedFromList(false);
224
- };
225
-
226
- var onFocus = function onFocus() {
227
- setIsFocused(true);
228
- setInternalError(false);
229
- };
230
-
231
- var onBlur = function onBlur() {
232
- if (typeof query === 'string' && isWrongAddress) {
233
- onChange('');
234
- setInternalError(true);
235
- }
236
-
237
- setTimeout(function () {
238
- return setIsFocused(false);
239
- }, 50);
240
211
  };
241
212
 
242
213
  var getHintMessage = function getHintMessage() {
@@ -247,13 +218,13 @@ var InputAddress = function InputAddress(_ref) {
247
218
  var getSelectedItemLabel = function getSelectedItemLabel() {
248
219
  var _query$street2;
249
220
 
250
- if (typeof query === "string") return query;
221
+ if (typeof query === 'string') return query;
251
222
  if (!renderSelectedItem || typeof renderSelectedItem !== 'function') return "".concat((query === null || query === void 0 ? void 0 : query.streetNumber) || '', " ").concat((query === null || query === void 0 ? void 0 : (_query$street2 = query.street) === null || _query$street2 === void 0 ? void 0 : _query$street2.fullName) || '');
252
223
  return renderSelectedItem(query);
253
224
  };
254
225
 
255
226
  var getListItemLabel = function getListItemLabel(item) {
256
- if (typeof item === "string") return item;
227
+ if (typeof item === 'string') return item;
257
228
  if (!renderListItem || typeof renderListItem !== 'function') return item === null || item === void 0 ? void 0 : item.fullPrediction;
258
229
  return renderListItem(item);
259
230
  };
@@ -297,8 +268,12 @@ var InputAddress = function InputAddress(_ref) {
297
268
  className: (0, _classnames.default)('input-address__input', className),
298
269
  value: value,
299
270
  onChange: onChangeInternal,
300
- onFocus: onFocus,
301
- onBlur: onBlur,
271
+ onFocus: function onFocus() {
272
+ return setIsFocused(true);
273
+ },
274
+ onBlur: function onBlur() {
275
+ return setIsFocused(false);
276
+ },
302
277
  onKeyDown: onKeyDown
303
278
  }), isWrongAddress && /*#__PURE__*/_react.default.createElement("div", {
304
279
  className: (0, _classnames.default)('input-address__alert', {
@@ -351,7 +326,7 @@ var InputAddress = function InputAddress(_ref) {
351
326
 
352
327
  return /*#__PURE__*/_react.default.createElement("div", {
353
328
  className: (0, _classnames.default)('input-address', {
354
- 'input-address--error': error || internalError || isWrongAddress && !isFocused
329
+ 'input-address--error': error || isWrongAddress && !isFocused
355
330
  })
356
331
  }, renderInput(), isListVisible && renderList());
357
332
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "intelicoreact",
3
- "version": "1.1.49",
3
+ "version": "1.1.52",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "files": [