intelicoreact 0.2.68 → 0.2.71

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,692 @@
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 = InputMask2;
11
+
12
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
13
+
14
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
15
+
16
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
17
+
18
+ var _react = _interopRequireWildcard(require("react"));
19
+
20
+ var _reactFeather = require("react-feather");
21
+
22
+ var _indexConstants = require("../../../Constants/index.constants.js");
23
+
24
+ var _Hint = _interopRequireDefault(require("../../UI/Hint/Hint"));
25
+
26
+ var _functions = require("./functions");
27
+
28
+ require("./InputMask2.scss");
29
+
30
+ var _config = require("./config");
31
+
32
+ var _classnames = _interopRequireDefault(require("classnames"));
33
+
34
+ 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
+
36
+ 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; }
37
+
38
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
39
+
40
+ 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
+
42
+ function InputMask2() {
43
+ var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
44
+ maskPattern = _ref.maskPattern,
45
+ maskPatternPlaceholder = _ref.maskPatternPlaceholder,
46
+ maskPlaceholder = _ref.maskPlaceholder,
47
+ maskDigitPlaceholder = _ref.maskDigitPlaceholder,
48
+ maskLetterPlaceholder = _ref.maskLetterPlaceholder,
49
+ usePatternPlaceholder = _ref.usePatternPlaceholder,
50
+ _ref$maskAsPlaceholde = _ref.maskAsPlaceholder,
51
+ maskAsPlaceholder = _ref$maskAsPlaceholde === void 0 ? true : _ref$maskAsPlaceholde,
52
+ _ref$maxEditableIndex = _ref.maxEditableIndex,
53
+ maxEditableIndex = _ref$maxEditableIndex === void 0 ? -1 : _ref$maxEditableIndex,
54
+ _ref$isFocusedDefault = _ref.isFocusedDefault,
55
+ isFocusedDefault = _ref$isFocusedDefault === void 0 ? false : _ref$isFocusedDefault,
56
+ isClearable = _ref.isClearable,
57
+ isCaseSensitive = _ref.isCaseSensitive,
58
+ adaptTextCase = _ref.adaptTextCase,
59
+ icon = _ref.icon,
60
+ showIcon = _ref.showIcon,
61
+ isIconLeft = _ref.isIconLeft,
62
+ isIconRight = _ref.isIconRight,
63
+ value = _ref.value,
64
+ _ref$blinkErrors = _ref.blinkErrors,
65
+ blinkErrors = _ref$blinkErrors === void 0 ? true : _ref$blinkErrors,
66
+ _ref$blinkDuration = _ref.blinkDuration,
67
+ blinkDuration = _ref$blinkDuration === void 0 ? 100 : _ref$blinkDuration,
68
+ _ref$showErrors = _ref.showErrors,
69
+ showErrors = _ref$showErrors === void 0 ? false : _ref$showErrors,
70
+ _ref$className = _ref.className,
71
+ className = _ref$className === void 0 ? '' : _ref$className,
72
+ _ref$errors = _ref.errors,
73
+ customErrors = _ref$errors === void 0 ? _config.DEFAULT_ERRORS : _ref$errors,
74
+ _ref$error = _ref.error,
75
+ customError = _ref$error === void 0 ? '' : _ref$error,
76
+ ref = _ref.ref,
77
+ _ref$onChange = _ref.onChange,
78
+ onChangeProp = _ref$onChange === void 0 ? function () {} : _ref$onChange,
79
+ _ref$onFocus = _ref.onFocus,
80
+ onFocusProp = _ref$onFocus === void 0 ? function () {} : _ref$onFocus,
81
+ _ref$onBlur = _ref.onBlur,
82
+ onBlurProp = _ref$onBlur === void 0 ? function () {} : _ref$onBlur,
83
+ _ref$onKeyDown = _ref.onKeyDown,
84
+ onKeyDownProp = _ref$onKeyDown === void 0 ? function () {} : _ref$onKeyDown,
85
+ _ref$onFilled = _ref.onFilled,
86
+ onFilledProp = _ref$onFilled === void 0 ? function () {} : _ref$onFilled,
87
+ _ref$imitateTypingOnP = _ref.imitateTypingOnPaste,
88
+ imitateTypingOnPaste = _ref$imitateTypingOnP === void 0 ? false : _ref$imitateTypingOnP,
89
+ _ref$imitateTypingOnP2 = _ref.imitateTypingOnPasteDelay,
90
+ imitateTypingOnPasteDelay = _ref$imitateTypingOnP2 === void 0 ? 100 : _ref$imitateTypingOnP2,
91
+ _ref$showHint = _ref.showHint,
92
+ showHint = _ref$showHint === void 0 ? false : _ref$showHint,
93
+ _ref$hintText = _ref.hintText,
94
+ hintText = _ref$hintText === void 0 ? '' : _ref$hintText,
95
+ _ref$hintClassName = _ref.hintClassName,
96
+ hintClassName = _ref$hintClassName === void 0 ? '' : _ref$hintClassName,
97
+ _ref$isHintRight = _ref.isHintRight,
98
+ isHintRight = _ref$isHintRight === void 0 ? true : _ref$isHintRight,
99
+ _ref$isHintLeft = _ref.isHintLeft,
100
+ isHintLeft = _ref$isHintLeft === void 0 ? false : _ref$isHintLeft,
101
+ _ref$hintPosition = _ref.hintPosition,
102
+ hintPosition = _ref$hintPosition === void 0 ? 'right' : _ref$hintPosition,
103
+ _ref$hideMaskOnBlur = _ref.hideMaskOnBlur,
104
+ hideMaskOnBlur = _ref$hideMaskOnBlur === void 0 ? true : _ref$hideMaskOnBlur,
105
+ _ref$returnMaskedValu = _ref.returnMaskedValue,
106
+ returnMaskedValue = _ref$returnMaskedValu === void 0 ? false : _ref$returnMaskedValu,
107
+ name = _ref.name;
108
+
109
+ var errors = _objectSpread(_objectSpread({}, _config.DEFAULT_ERRORS), customErrors);
110
+
111
+ if (maxEditableIndex === -1) maxEditableIndex = maskPattern.length;
112
+
113
+ var _useState = (0, _react.useState)(false),
114
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
115
+ isMaskRendered = _useState2[0],
116
+ setMaskRendered = _useState2[1];
117
+
118
+ var _useState3 = (0, _react.useState)(false),
119
+ _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
120
+ isFocused = _useState4[0],
121
+ setFocused = _useState4[1];
122
+
123
+ var _useState5 = (0, _react.useState)(false),
124
+ _useState6 = (0, _slicedToArray2.default)(_useState5, 2),
125
+ isInitValue = _useState6[0],
126
+ setIsInitValue = _useState6[1];
127
+
128
+ var inputRef = (0, _react.useRef)(null);
129
+
130
+ var _useState7 = (0, _react.useState)(null),
131
+ _useState8 = (0, _slicedToArray2.default)(_useState7, 2),
132
+ cursor = _useState8[0],
133
+ setCursor = _useState8[1];
134
+
135
+ var _useState9 = (0, _react.useState)(null),
136
+ _useState10 = (0, _slicedToArray2.default)(_useState9, 2),
137
+ prevCursor = _useState10[0],
138
+ setPrevCursor = _useState10[1]; // ERRORS MANAGEMENT FUNCTIONS | START //
139
+
140
+
141
+ var _useState11 = (0, _react.useState)(false),
142
+ _useState12 = (0, _slicedToArray2.default)(_useState11, 2),
143
+ isError = _useState12[0],
144
+ setError = _useState12[1];
145
+
146
+ var _useState13 = (0, _react.useState)(false),
147
+ _useState14 = (0, _slicedToArray2.default)(_useState13, 2),
148
+ blinkError = _useState14[0],
149
+ setBlinkError = _useState14[1];
150
+
151
+ var _useState15 = (0, _react.useState)(errors.default),
152
+ _useState16 = (0, _slicedToArray2.default)(_useState15, 2),
153
+ errorMessage = _useState16[0],
154
+ setErrorMessage = _useState16[1];
155
+
156
+ var clearErrorMessage = function clearErrorMessage() {
157
+ return setErrorMessage(errors.default);
158
+ }; // ERRORS MANAGEMENT FUNCTIONS | END //
159
+ // INNER VALUE MANAGEMENT FUNCTIONS | START //
160
+
161
+
162
+ var _useState17 = (0, _react.useState)([]),
163
+ _useState18 = (0, _slicedToArray2.default)(_useState17, 2),
164
+ innerValue = _useState18[0],
165
+ setInnerValue = _useState18[1];
166
+
167
+ var addInnerValueChar = function addInnerValueChar(_ref2) {
168
+ var char = _ref2.char,
169
+ _ref2$i = _ref2.i,
170
+ i = _ref2$i === void 0 ? null : _ref2$i,
171
+ _ref2$data = _ref2.data,
172
+ data = _ref2$data === void 0 ? {} : _ref2$data;
173
+ setInnerValue(function (state) {
174
+ var stateCopy = (0, _toConsumableArray2.default)(state);
175
+ var charObj = getCharObj(char, data);
176
+ stateCopy.push(charObj);
177
+ return stateCopy;
178
+ });
179
+ };
180
+
181
+ var updateInnerValueChar = function updateInnerValueChar() {
182
+ var _ref3 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
183
+ _ref3$char = _ref3.char,
184
+ char = _ref3$char === void 0 ? null : _ref3$char;
185
+
186
+ var i = arguments.length > 1 ? arguments[1] : undefined;
187
+ setInnerValue(function (state) {
188
+ if (!state[i]) return state;
189
+ var stateCopy = (0, _toConsumableArray2.default)(state);
190
+ if (!stateCopy[i].isSpecialSymbol && char !== null) stateCopy[i].char = char;
191
+ return stateCopy;
192
+ });
193
+ };
194
+
195
+ var resetInnerValue = function resetInnerValue() {
196
+ setInnerValue(function (innerValue) {
197
+ return innerValue.map(function (item) {
198
+ if (!item.isSpecialSymbol && item.char !== null) item.char = '';
199
+ return item;
200
+ });
201
+ });
202
+ };
203
+
204
+ var setValue = function setValue(value) {
205
+ var _maskPattern;
206
+
207
+ var disableErrors = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
208
+ resetInnerValue();
209
+ if (maxEditableIndex !== ((_maskPattern = maskPattern) === null || _maskPattern === void 0 ? void 0 : _maskPattern.length) - 1) value = value.slice(0, maxEditableIndex);
210
+ var valueCharIndex = 0;
211
+ setInnerValue(function (innerValue) {
212
+ var newValue = innerValue.map(function (item, i) {
213
+ var _maskPattern2;
214
+
215
+ var isSpecialSymbol = item.isSpecialSymbol;
216
+ if (isSpecialSymbol) return item;
217
+ var char = value[valueCharIndex];
218
+ var whileLimit = ((_maskPattern2 = maskPattern) === null || _maskPattern2 === void 0 ? void 0 : _maskPattern2.length) || 0;
219
+
220
+ while (whileLimit && (isSpecialSymbolChar({
221
+ char: value[valueCharIndex]
222
+ }) || !isValidChar({
223
+ char: char,
224
+ i: i,
225
+ disableErrors: true
226
+ }))) {
227
+ whileLimit--;
228
+ char = value[++valueCharIndex];
229
+ } //If Valid
230
+
231
+
232
+ if (isValidChar({
233
+ char: char,
234
+ i: i,
235
+ disableErrors: disableErrors
236
+ })) {
237
+ item.char = char;
238
+ }
239
+
240
+ ++valueCharIndex;
241
+ return item;
242
+ });
243
+ return newValue;
244
+ });
245
+ }; // INNER VALUE MANAGEMENT FUNCTIONS | END //
246
+ // CHECKERS | START //
247
+
248
+
249
+ var isValidChar = function isValidChar(_ref4) {
250
+ var key = _ref4.char,
251
+ i = _ref4.i,
252
+ _ref4$disableErrors = _ref4.disableErrors,
253
+ disableErrors = _ref4$disableErrors === void 0 ? false : _ref4$disableErrors;
254
+ var maskChar = getMaskCharByIndex(i);
255
+
256
+ switch (maskChar) {
257
+ case _config.DIGIT_MASK_CHAR:
258
+ if (!(0, _functions.isDigit)(key)) {
259
+ if (!disableErrors) {
260
+ setErrorMessage(errors.onlyDigit);
261
+ }
262
+
263
+ return false;
264
+ }
265
+
266
+ break;
267
+
268
+ case _config.UPPERCASE_LETTER_MASK_CHAR:
269
+ if (adaptTextCase) key = key.toUpperCase();
270
+
271
+ if (!(0, _functions.isLetter)(key) && !isCaseSensitive) {
272
+ if (!disableErrors) setErrorMessage(errors.onlyLetter);
273
+ return false;
274
+ }
275
+
276
+ if (isCaseSensitive && !(0, _functions.isUpperCaseLetter)(key)) {
277
+ if (!disableErrors) setErrorMessage(errors.onlyUpperCase);
278
+ return false;
279
+ }
280
+
281
+ break;
282
+
283
+ case _config.LOWERCASE_LETTER_MASK_CHAR:
284
+ if (adaptTextCase) key = key.toLowerCase();
285
+
286
+ if (!(0, _functions.isLetter)(key) && !isCaseSensitive) {
287
+ if (!disableErrors) setErrorMessage(errors.onlyLetter);
288
+ return false;
289
+ }
290
+
291
+ if (isCaseSensitive && !(0, _functions.isLowerCaseLetter)(key)) {
292
+ if (!disableErrors) setErrorMessage(errors.onlyLowerCase);
293
+ return false;
294
+ }
295
+
296
+ break;
297
+
298
+ default:
299
+ return false;
300
+ }
301
+
302
+ return true;
303
+ };
304
+
305
+ var isSpecialSymbolMaskChar = function isSpecialSymbolMaskChar(_ref5) {
306
+ var char = _ref5.char;
307
+ return !(0, _functions.isDigitMaskChar)(char) && !(0, _functions.isLetterMaskChar)(char);
308
+ };
309
+
310
+ var isSpecialSymbolChar = function isSpecialSymbolChar(_ref6) {
311
+ var char = _ref6.char;
312
+ return !(0, _functions.isDigit)(char) && !(0, _functions.isLetter)(char);
313
+ }; // CHECKERS | END //
314
+ // GETTERS | START //
315
+
316
+
317
+ var getCharObj = function getCharObj(char) {
318
+ var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
319
+ var isSpecialSymbol = isSpecialSymbolChar({
320
+ char: char
321
+ });
322
+ var isSpecialSymbolMask = isSpecialSymbolMaskChar({
323
+ char: char
324
+ });
325
+ if (char === ' ') char = _config.SPACE_CHAR;
326
+ return _objectSpread({
327
+ char: isSpecialSymbolMask ? char : '',
328
+ maskChar: char,
329
+ isSpecialSymbol: isSpecialSymbolMask,
330
+ isCharSymbol: !isSpecialSymbol && char !== '' && isSpecialSymbolMask,
331
+ ref: /*#__PURE__*/(0, _react.createRef)()
332
+ }, data);
333
+ };
334
+
335
+ var getCharByIndex = function getCharByIndex(i) {
336
+ return innerValue[i] ? _objectSpread({}, innerValue[i]) : undefined;
337
+ };
338
+
339
+ var getMaskCharByIndex = function getMaskCharByIndex(i) {
340
+ var _innerValue$i;
341
+
342
+ return ((_innerValue$i = innerValue[i]) === null || _innerValue$i === void 0 ? void 0 : _innerValue$i.maskChar) || undefined;
343
+ };
344
+
345
+ var getPlaceholderCharByIndex = function getPlaceholderCharByIndex(i) {
346
+ var _getCharByIndex = getCharByIndex(i),
347
+ maskChar = _getCharByIndex.maskChar;
348
+
349
+ if (usePatternPlaceholder) {
350
+ return maskPatternPlaceholder[i] || maskPlaceholder;
351
+ } else {
352
+ if ((0, _functions.isDigitMaskChar)(maskChar) && maskDigitPlaceholder) return maskDigitPlaceholder;
353
+ if ((0, _functions.isLetterMaskChar)(maskChar) && maskLetterPlaceholder) return maskLetterPlaceholder;
354
+ return maskPlaceholder;
355
+ }
356
+ };
357
+
358
+ var getInnerValueAsString = function getInnerValueAsString() {
359
+ var _ref7 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
360
+ _ref7$replaceSpace = _ref7.replaceSpace,
361
+ replaceSpace = _ref7$replaceSpace === void 0 ? false : _ref7$replaceSpace;
362
+
363
+ var result = innerValue.slice().map(function (_ref8, i) {
364
+ var char = _ref8.char,
365
+ maskChar = _ref8.maskChar;
366
+ return char === '' ? getPlaceholderCharByIndex(i) || maskChar : char;
367
+ }).join('');
368
+ return replaceSpace ? result.replace(/\u00A0/g, ' ') : result;
369
+ };
370
+
371
+ var getClearInnerValueAsString = function getClearInnerValueAsString() {
372
+ return innerValue.reduce(function (result, _ref9, i, arr) {
373
+ var char = _ref9.char,
374
+ maskChar = _ref9.maskChar,
375
+ isSpecialSymbol = _ref9.isSpecialSymbol,
376
+ isCharSymbol = _ref9.isCharSymbol;
377
+ if (char !== maskChar && char !== '' || !isSpecialSymbol || isCharSymbol) result += char; // || isCharSymbol
378
+
379
+ return result;
380
+ }, '');
381
+ };
382
+
383
+ var getInputValue = function getInputValue() {
384
+ var result = '';
385
+ var isValid = true;
386
+ var value = innerValue.reduce(function (result, _ref10, i, arr) {
387
+ var char = _ref10.char,
388
+ maskChar = _ref10.maskChar,
389
+ isSpecialSymbol = _ref10.isSpecialSymbol,
390
+ isCharSymbol = _ref10.isCharSymbol;
391
+
392
+ // if (maxEditableIndex === maskPattern.length-1) {
393
+ if (char !== '' && isValid) {
394
+ result += char;
395
+ } else {
396
+ isValid = false;
397
+ } // } else {
398
+ // result += char === '' ? getPlaceholderCharByIndex(i) : char;
399
+ // }
400
+
401
+
402
+ return result;
403
+ }, '');
404
+ return value;
405
+ };
406
+
407
+ var inputValue = (0, _react.useMemo)(getInputValue, [innerValue]);
408
+
409
+ var getLastFilledIndex = function getLastFilledIndex() {
410
+ return innerValue.reduce(function (result, _ref11, i, arr) {
411
+ var char = _ref11.char,
412
+ maskChar = _ref11.maskChar,
413
+ isSpecialSymbol = _ref11.isSpecialSymbol,
414
+ isCharSymbol = _ref11.isCharSymbol;
415
+ if (char !== '' && char !== maskChar && char !== getPlaceholderCharByIndex(i)) return i;
416
+ return result;
417
+ }, 0);
418
+ }; // GETTERS | END //
419
+ ///--- Event Handlers ---///
420
+ // GENERAL EVENT HANDLERS | START //
421
+
422
+
423
+ var onChange = function onChange(e) {
424
+ var value = e.target.value;
425
+ setErrorMessage(null);
426
+ var char = e.nativeEvent.data;
427
+ var cursor = e.target.selectionStart - 1;
428
+
429
+ if (char && !isValidChar({
430
+ char: char,
431
+ i: cursor
432
+ })) {
433
+ e.preventDefault();
434
+ e.stopPropagation();
435
+ setCursor(cursor);
436
+ setBlinkError(true);
437
+ return false;
438
+ }
439
+
440
+ setValue(value);
441
+
442
+ if (blinkErrors) {
443
+ setTimeout(function () {
444
+ if (inputValue === getInputValue() && getInputValue()[cursor] !== char) setBlinkError(true);
445
+ }, 10);
446
+ }
447
+ };
448
+
449
+ var onKeyDown = function onKeyDown(e) {
450
+ var _getCharByIndex2, _getCharByIndex4;
451
+
452
+ onKeyDownProp(e);
453
+ var keyCode = e.keyCode;
454
+ var cursor = e.target.selectionStart;
455
+
456
+ if (keyCode !== 8 && keyCode !== 37 && (_getCharByIndex2 = getCharByIndex(cursor)) !== null && _getCharByIndex2 !== void 0 && _getCharByIndex2.isSpecialSymbol) {
457
+ if (keyCode === 46) {
458
+ e.preventDefault();
459
+ e.stopPropagation();
460
+ }
461
+
462
+ while ((_getCharByIndex3 = getCharByIndex(cursor)) !== null && _getCharByIndex3 !== void 0 && _getCharByIndex3.isSpecialSymbol && cursor <= maxEditableIndex) {
463
+ var _getCharByIndex3;
464
+
465
+ ++cursor;
466
+ }
467
+
468
+ setCursor(cursor);
469
+ }
470
+
471
+ if (keyCode === 8 && (_getCharByIndex4 = getCharByIndex(cursor - 1)) !== null && _getCharByIndex4 !== void 0 && _getCharByIndex4.isSpecialSymbol) {
472
+ e.preventDefault();
473
+ e.stopPropagation();
474
+
475
+ while ((_getCharByIndex5 = getCharByIndex(cursor - 1)) !== null && _getCharByIndex5 !== void 0 && _getCharByIndex5.isSpecialSymbol && cursor > 0) {
476
+ var _getCharByIndex5;
477
+
478
+ --cursor;
479
+ }
480
+
481
+ setCursor(cursor);
482
+ }
483
+
484
+ if (cursor > maxEditableIndex) setCursor(maxEditableIndex);
485
+ };
486
+
487
+ var onKeyUp = function onKeyUp(e) {
488
+ if (inputValue.length === maskPattern.length && e.target.selectionStart >= maxEditableIndex) onFilledProp();
489
+ };
490
+
491
+ var onClearClick = function onClearClick(e) {
492
+ var _inputRef$current;
493
+
494
+ e.stopPropagation();
495
+ e.preventDefault();
496
+ resetInnerValue();
497
+ inputRef === null || inputRef === void 0 ? void 0 : (_inputRef$current = inputRef.current) === null || _inputRef$current === void 0 ? void 0 : _inputRef$current.focus();
498
+ setCursor(0);
499
+ setErrorMessage(null);
500
+ };
501
+
502
+ var onFocus = function onFocus(e) {
503
+ setFocused(true);
504
+ onFocusProp();
505
+ };
506
+
507
+ var onBlur = function onBlur(e) {
508
+ setFocused(false);
509
+ onBlurProp();
510
+ };
511
+
512
+ var onClick = function onClick(e) {
513
+ var cursor = e.target.selectionStart;
514
+ if (cursor >= maxEditableIndex) setCursor(maxEditableIndex);
515
+ };
516
+
517
+ var handleChange = function handleChange(e) {
518
+ var _getCharByIndex6;
519
+
520
+ var cursor = e.target.selectionStart;
521
+ if ((_getCharByIndex6 = getCharByIndex(cursor)) !== null && _getCharByIndex6 !== void 0 && _getCharByIndex6.isSpecialSymbol) cursor >= prevCursor && cursor + 1 <= maxEditableIndex ? ++cursor : cursor;
522
+ setCursor(cursor > maxEditableIndex ? maxEditableIndex : cursor);
523
+ onChange && onChange(e);
524
+ }; // GENERAL EVENT HANDLERS | END //
525
+ ///--- OBSERVERS ---///
526
+
527
+
528
+ (0, _react.useEffect)(function () {
529
+ if (cursor === null) return false;
530
+ var input = inputRef.current;
531
+ if (input) input.setSelectionRange(cursor, cursor);
532
+ setPrevCursor(cursor);
533
+ setCursor(null);
534
+ }, [inputRef, cursor, inputValue]); //Render Mask
535
+
536
+ (0, _react.useEffect)(function () {
537
+ setInnerValue([]);
538
+ setMaskRendered(false);
539
+ if (!maskPattern) maskPattern = '';
540
+ maskPattern.split('').map(function (char, id, i) {
541
+ addInnerValueChar({
542
+ char: char,
543
+ i: i,
544
+ data: {
545
+ id: id,
546
+ isReadOnly: id === maskPattern.length
547
+ }
548
+ });
549
+ if (value !== null && value !== void 0 && value[id]) updateInnerValueChar({
550
+ char: value[id]
551
+ }, id);
552
+ });
553
+ setMaskRendered(true);
554
+ }, [maskPattern]);
555
+ (0, _react.useEffect)(function () {
556
+ if (value !== getClearInnerValueAsString()) setIsInitValue(false);
557
+ }, [value]);
558
+ (0, _react.useEffect)(function () {
559
+ if (!isMaskRendered || isInitValue || value === getClearInnerValueAsString()) return false;
560
+ if (value && value !== '') setValue(value);
561
+ setIsInitValue(true);
562
+ }, [isMaskRendered, value, isInitValue]); // Default Focused
563
+
564
+ (0, _react.useEffect)(function () {
565
+ if (isFocusedDefault && isMaskRendered) {
566
+ setFocusOnChar(0, -1);
567
+ }
568
+ }, [isFocusedDefault, isMaskRendered]); // OnChange Observer
569
+
570
+ (0, _react.useEffect)(function () {
571
+ if (!isMaskRendered || !isFocused) return false;
572
+ setError(false);
573
+ var values = [getInputValue(), getInnerValueAsString({
574
+ replaceSpace: true
575
+ })];
576
+ if (returnMaskedValue) values.reverse();
577
+ onChangeProp.apply(void 0, values);
578
+ }, [innerValue, isMaskRendered]); // Blink Error
579
+
580
+ (0, _react.useEffect)(function () {
581
+ if (!blinkError) return false;
582
+ setTimeout(function () {
583
+ setBlinkError(false);
584
+ }, blinkDuration);
585
+ }, [blinkError]);
586
+ (0, _react.useEffect)(function () {
587
+ setError(customError !== '');
588
+ setErrorMessage(customError === '' ? errors.default : customError);
589
+ }, [customError, isError]); ///--- RENDER ---///
590
+
591
+ var renderChar = function renderChar(obj, i) {
592
+ var className = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '';
593
+ var char = obj.char,
594
+ ref = obj.ref,
595
+ maskChar = obj.maskChar,
596
+ isSpecialSymbol = obj.isSpecialSymbol;
597
+ var prevChar = getCharByIndex(i - 1);
598
+ return /*#__PURE__*/_react.default.createElement("span", {
599
+ tabIndex: -1,
600
+ key: i,
601
+ "attr-char-id": i,
602
+ className: (0, _classnames.default)('input-mask_value_item', className, {
603
+ 'input-mask_value_item--digit': (0, _functions.isDigitMaskChar)(obj.maskChar),
604
+ 'input-mask_value_item--letter': (0, _functions.isLetterMaskChar)(obj.maskChar),
605
+ 'input-mask_value_item--spec': obj.isSpecialSymbol,
606
+ 'input-mask_value_item--hidden': inputValue.length === maskPattern.length
607
+ }),
608
+ ref: ref
609
+ }, !isFocused && hideMaskOnBlur && getClearInnerValueAsString().length === 0 ? _config.SPACE_CHAR : isSpecialSymbol ? maskChar : char === '' ? getPlaceholderCharByIndex(i) : char);
610
+ };
611
+
612
+ var renderMaskChar = function renderMaskChar(obj, i) {
613
+ return renderChar(obj, i, 'input-mask_value_item_mask-char');
614
+ };
615
+
616
+ var renderValueChar = function renderValueChar(obj, i) {
617
+ return renderChar(obj, i, 'input-mask_value_item_value-char');
618
+ };
619
+
620
+ var renderSpecialChar = function renderSpecialChar(obj, i) {
621
+ return renderChar(obj, i, 'input-mask_value_item_spec-char');
622
+ };
623
+
624
+ var renderInputValue = function renderInputValue() {
625
+ return innerValue.map(function (obj, i) {
626
+ var char = obj.char,
627
+ isSpecialSymbol = obj.isSpecialSymbol;
628
+
629
+ if (isSpecialSymbol) {
630
+ return renderSpecialChar(obj, i);
631
+ }
632
+
633
+ var isMaskItem = function () {
634
+ return char === '';
635
+ }();
636
+
637
+ return isMaskItem ? renderMaskChar(obj, i) : renderValueChar(obj, i);
638
+ });
639
+ };
640
+
641
+ var renderMask = function renderMask() {
642
+ return /*#__PURE__*/_react.default.createElement("div", {
643
+ className: "input-mask_value"
644
+ }, renderInputValue());
645
+ };
646
+
647
+ var renderInput = function renderInput() {
648
+ return /*#__PURE__*/_react.default.createElement("input", {
649
+ className: "input-mask_input ".concat(className),
650
+ ref: inputRef,
651
+ value: inputValue,
652
+ onChange: handleChange,
653
+ onKeyDown: onKeyDown,
654
+ onKeyUp: onKeyUp,
655
+ onFocus: onFocus,
656
+ onBlur: onBlur,
657
+ onClick: onClick
658
+ });
659
+ };
660
+
661
+ var render = function render() {
662
+ return /*#__PURE__*/_react.default.createElement("div", {
663
+ className: "\n input-mask2_wrapper\n ".concat(className, "\n ").concat(isError ? 'input-mask_error' : '', "\n ").concat(isFocused ? 'input-mask_focus' : '', "\n ").concat(blinkError ? 'input-mask_blink-error' : '', "\n ")
664
+ }, /*#__PURE__*/_react.default.createElement("div", {
665
+ className: "\n input-mask\n ".concat(isError ? 'input-mask_error' : '', "\n ").concat(isFocused ? 'input-mask_focus' : '', "\n ").concat(blinkError ? 'input-mask_blink-error' : '', "\n ")
666
+ }, showHint && isHintLeft && /*#__PURE__*/_react.default.createElement("div", {
667
+ className: "input-mask_hint input-mask_hint--left"
668
+ }, /*#__PURE__*/_react.default.createElement(_Hint.default, {
669
+ hint: hintText,
670
+ className: hintClassName,
671
+ side: hintPosition
672
+ })), isIconLeft && showIcon && /*#__PURE__*/_react.default.createElement("div", {
673
+ className: "input-mask_icon input-mask_icon--left"
674
+ }, icon), renderMask(), renderInput(), isClearable && /*#__PURE__*/_react.default.createElement("div", {
675
+ className: "input-mask_clear"
676
+ }, /*#__PURE__*/_react.default.createElement(_reactFeather.X, {
677
+ onClick: onClearClick
678
+ })), isIconRight && showIcon && /*#__PURE__*/_react.default.createElement("div", {
679
+ className: "input-mask_icon input-mask_icon--right"
680
+ }, icon), showHint && isHintRight && /*#__PURE__*/_react.default.createElement("div", {
681
+ className: "input-mask_hint input-mask_hint--right"
682
+ }, /*#__PURE__*/_react.default.createElement(_Hint.default, {
683
+ hint: hintText,
684
+ className: hintClassName,
685
+ side: hintPosition
686
+ }))), showErrors && errorMessage && /*#__PURE__*/_react.default.createElement("div", {
687
+ className: "input-mask_error-text"
688
+ }, errorMessage));
689
+ };
690
+
691
+ return render();
692
+ }
@@ -0,0 +1,165 @@
1
+ .unselectable {
2
+ -webkit-touch-callout: none; /* iOS Safari */
3
+ -webkit-user-select: none; /* Chrome/Safari/Opera */
4
+ -khtml-user-select: none; /* Konqueror */
5
+ -moz-user-select: none; /* Firefox */
6
+ -ms-user-select: none; /* Internet Explorer/Edge */
7
+ user-select: none; /* Non-prefixed version, currently
8
+ not supported by any browser */
9
+ }
10
+
11
+ .input-mask2_wrapper{
12
+ outline: none;
13
+ display: block;
14
+ // width: fit-content;
15
+ width: 100%;
16
+
17
+ & .input-mask{
18
+ display: inline-flex;
19
+ justify-content: space-between;
20
+ align-items: center;
21
+ border: 1px solid #e2e5ec;
22
+ box-sizing: border-box;
23
+ background-color: #fff;
24
+ border-radius: 4px;
25
+ padding:8px;
26
+ cursor: text;
27
+ width: 100%;
28
+ position: relative;
29
+
30
+ &_input {
31
+ position: absolute;
32
+ color: #333333;
33
+ background: rgba(0,0,0,0);
34
+ border: none;
35
+ font-size: 16px;
36
+ left: 0;
37
+ top: 0;
38
+ height: 100%;
39
+ width: 100%;
40
+ padding: 8px;
41
+ box-sizing: border-box;
42
+ outline: none;
43
+ }
44
+
45
+ &_focus{
46
+ border-color: #6b81dd;
47
+ filter: drop-shadow(0px 0px 4px rgba(93, 120, 255, 0.5));
48
+ }
49
+
50
+ &_error,
51
+ &_blink-error{
52
+ border-color: #dd6b6b;
53
+ filter: drop-shadow(0px 0px 4px rgba(255, 93, 93, 0.5));
54
+ }
55
+
56
+ &_icon{
57
+ height: 16px;
58
+ width: 16px;
59
+ position: relative;
60
+
61
+ &--left{
62
+ margin-right: 4px;
63
+ }
64
+
65
+ &--right{
66
+ margin-left: 4px;
67
+ right: 0;
68
+ }
69
+ }
70
+
71
+ &_hint{
72
+ display: flex;
73
+ text-align: center;
74
+ align-items: center;
75
+
76
+ & .hint__text_right{
77
+ top: 50%;
78
+ left: 24px;
79
+ transform: translateY(-50%);
80
+
81
+ &::before{
82
+ top: calc(50% - 4px);
83
+ left: -3px;
84
+ }
85
+ }
86
+
87
+ & .hint__text_left{
88
+ top: 50%;
89
+ right: 32px;
90
+ transform: translateY(-50%);
91
+
92
+ &::before{
93
+ top: calc(50% - 4px);
94
+ right: -3px;
95
+ }
96
+ }
97
+
98
+ &--left{
99
+ margin-right: 4px;
100
+ }
101
+
102
+ &--right{
103
+ margin-left: 4px;
104
+ right: 0;
105
+ }
106
+ }
107
+
108
+ &_clear{
109
+ position: relative;
110
+ z-index: 9;
111
+ height: 16px;
112
+ width: 16px;
113
+ cursor: pointer!important;
114
+ }
115
+
116
+ &_value{
117
+ display: flex;
118
+ align-items: center;
119
+ outline: none;
120
+ position: relative;
121
+ width: 100%;
122
+
123
+ &_item{
124
+ display: inline-flex;
125
+ min-width: 0;
126
+ font-size: 16px;
127
+ width: unset;
128
+ padding: 0;
129
+ margin: 0;
130
+ border: none;
131
+ outline: none;
132
+
133
+ &--letter{
134
+ }
135
+
136
+ &_mask-char{
137
+ color: #9c9c9c;
138
+ }
139
+
140
+ // &_value-char,
141
+ // &_spec-char{
142
+ // color: #333333;
143
+ // }
144
+
145
+ &_value-char {
146
+ opacity: 0;
147
+ }
148
+
149
+ &_spec-char{
150
+ text-align: center;
151
+ }
152
+
153
+ &--hidden{
154
+ visibility: hidden;
155
+ }
156
+ }
157
+ }
158
+ }
159
+
160
+ .input-mask_error-text{
161
+ font-size: 12px;
162
+ margin-top: 8px;
163
+ color:rgb(211, 82, 82);
164
+ }
165
+ }
@@ -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,89 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.voidFn = exports.isLetterMaskChar = exports.isDigitMaskChar = exports.isDigit = exports.isLowerCaseLetter = exports.isUpperCaseLetter = exports.isLetter = exports.selectElementContents = exports.copyToClipboard = exports.resetSelectionText = exports.getSelectionText = void 0;
7
+
8
+ var _config = require("./config");
9
+
10
+ var getSelectionText = function getSelectionText() {
11
+ var text = '';
12
+
13
+ if (window.getSelection) {
14
+ text = window.getSelection().toString();
15
+ } else if (document.selection && document.selection.type !== 'Control') {
16
+ text = document.selection.createRange().text;
17
+ }
18
+
19
+ return text.replace(/\n/g, '');
20
+ };
21
+
22
+ exports.getSelectionText = getSelectionText;
23
+
24
+ var resetSelectionText = function resetSelectionText() {
25
+ if (window.getSelection) {
26
+ window.getSelection().removeAllRanges();
27
+ }
28
+ };
29
+
30
+ exports.resetSelectionText = resetSelectionText;
31
+
32
+ var copyToClipboard = function copyToClipboard(str) {
33
+ if (navigator && navigator.clipboard && navigator.clipboard.writeText) return navigator.clipboard.writeText(str); // eslint-disable-next-line prefer-promise-reject-errors
34
+
35
+ return Promise.reject('The Clipboard API is not available.');
36
+ };
37
+
38
+ exports.copyToClipboard = copyToClipboard;
39
+
40
+ var selectElementContents = function selectElementContents(el) {
41
+ var startOffset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : -1;
42
+ var endOffset = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : -1;
43
+ var sel = window.getSelection();
44
+ sel.selectAllChildren(el);
45
+ };
46
+
47
+ exports.selectElementContents = selectElementContents;
48
+
49
+ var isLetter = function isLetter(char) {
50
+ return Boolean((char === null || char === void 0 ? void 0 : char.length) === 1 && (char === null || char === void 0 ? void 0 : char.match(/[a-z]/i)));
51
+ };
52
+
53
+ exports.isLetter = isLetter;
54
+
55
+ var isUpperCaseLetter = function isUpperCaseLetter(char) {
56
+ return isLetter(char) ? char === char.slice().toUpperCase() : false;
57
+ };
58
+
59
+ exports.isUpperCaseLetter = isUpperCaseLetter;
60
+
61
+ var isLowerCaseLetter = function isLowerCaseLetter(char) {
62
+ return isLetter(char) ? char === char.slice().toLowerCase() : false;
63
+ };
64
+
65
+ exports.isLowerCaseLetter = isLowerCaseLetter;
66
+
67
+ var isDigit = function isDigit(char) {
68
+ return Boolean(Number.isInteger(parseInt(char)));
69
+ };
70
+
71
+ exports.isDigit = isDigit;
72
+
73
+ var isDigitMaskChar = function isDigitMaskChar(char) {
74
+ return char === _config.DIGIT_MASK_CHAR;
75
+ };
76
+
77
+ exports.isDigitMaskChar = isDigitMaskChar;
78
+
79
+ var isLetterMaskChar = function isLetterMaskChar(char) {
80
+ return char === _config.UPPERCASE_LETTER_MASK_CHAR || char === _config.LOWERCASE_LETTER_MASK_CHAR;
81
+ };
82
+
83
+ exports.isLetterMaskChar = isLetterMaskChar;
84
+
85
+ var voidFn = function voidFn() {
86
+ console.error('Void Function Called');
87
+ };
88
+
89
+ exports.voidFn = voidFn;
@@ -48,7 +48,7 @@ var CircleProgressBar = function CircleProgressBar(_ref) {
48
48
  setStrokeDashoffset = _useState2[1];
49
49
 
50
50
  (0, _react.useEffect)(function () {
51
- setStrokeDashoffset("calc(".concat(circumference, " - (").concat(circumference, " * ").concat(amountProgress, ") / 100)"));
51
+ setStrokeDashoffset(circumference - circumference * amountProgress / 100);
52
52
  }, [amountProgress]);
53
53
  return /*#__PURE__*/_react.default.createElement("div", {
54
54
  "data-testid": 'test-circleProgress',
@@ -43,7 +43,7 @@ var ProgressLine = function ProgressLine(_ref) {
43
43
  _ref$variant = _ref.variant,
44
44
  variant = _ref$variant === void 0 ? 'info' : _ref$variant,
45
45
  _ref$useVariantLabelC = _ref.useVariantLabelColor,
46
- useVariantLabelColor = _ref$useVariantLabelC === void 0 ? false : _ref$useVariantLabelC,
46
+ useVariantLabelColor = _ref$useVariantLabelC === void 0 ? true : _ref$useVariantLabelC,
47
47
  _ref$className = _ref.className,
48
48
  className = _ref$className === void 0 ? '' : _ref$className;
49
49
 
@@ -96,7 +96,7 @@ var ProgressLine = function ProgressLine(_ref) {
96
96
  return /*#__PURE__*/_react.default.createElement("div", {
97
97
  className: "progress-line"
98
98
  }, renderLabel(), /*#__PURE__*/_react.default.createElement("div", {
99
- className: "progress-line__wrapper variant-".concat(variant, " value-").concat(valueVerticalPosition, "-").concat(valueHorizontalPosition, " ").concat(className)
99
+ className: "progress-line__wrapper variant-".concat(useVariantLabelColor && variant, " value-").concat(valueVerticalPosition, "-").concat(valueHorizontalPosition, " ").concat(className)
100
100
  }, renderProgressValue(), renderLine()));
101
101
  };
102
102
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "intelicoreact",
3
- "version": "0.2.68",
3
+ "version": "0.2.71",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "files": [