@salutejs/plasma-new-hope 0.336.0-canary.2210.17491654160.0 → 0.336.0-canary.2211.17492872934.0
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.
- package/cjs/components/CodeField/CodeField.css +6 -7
- package/cjs/components/CodeField/CodeField.js +24 -61
- package/cjs/components/CodeField/CodeField.js.map +1 -1
- package/cjs/components/CodeField/CodeField.styles.js +1 -7
- package/cjs/components/CodeField/CodeField.styles.js.map +1 -1
- package/cjs/components/CodeField/{CodeField.styles_7tebk.css → CodeField.styles_ebdpd0.css} +0 -1
- package/cjs/components/CodeField/utils/handleCodeError.js +2 -2
- package/cjs/components/CodeField/utils/handleCodeError.js.map +1 -1
- package/cjs/components/CodeField/utils/handleItemError.js +4 -14
- package/cjs/components/CodeField/utils/handleItemError.js.map +1 -1
- package/cjs/index.css +6 -7
- package/emotion/cjs/components/CodeField/CodeField.js +20 -51
- package/emotion/cjs/components/CodeField/CodeField.styles.js +11 -18
- package/emotion/cjs/components/CodeField/utils/handleCodeError.js +2 -2
- package/emotion/cjs/components/CodeField/utils/handleItemError.js +3 -12
- package/emotion/cjs/components/CodeField/utils/index.js +0 -4
- package/emotion/cjs/examples/components/Combobox/Combobox.js +15 -0
- package/emotion/es/components/CodeField/CodeField.js +22 -53
- package/emotion/es/components/CodeField/CodeField.styles.js +11 -15
- package/emotion/es/components/CodeField/utils/handleCodeError.js +2 -2
- package/emotion/es/components/CodeField/utils/handleItemError.js +3 -12
- package/emotion/es/components/CodeField/utils/index.js +0 -1
- package/emotion/es/examples/components/Combobox/Combobox.js +7 -0
- package/es/components/CodeField/CodeField.css +6 -7
- package/es/components/CodeField/CodeField.js +26 -63
- package/es/components/CodeField/CodeField.js.map +1 -1
- package/es/components/CodeField/CodeField.styles.js +2 -7
- package/es/components/CodeField/CodeField.styles.js.map +1 -1
- package/es/components/CodeField/{CodeField.styles_7tebk.css → CodeField.styles_ebdpd0.css} +0 -1
- package/es/components/CodeField/utils/handleCodeError.js +2 -2
- package/es/components/CodeField/utils/handleCodeError.js.map +1 -1
- package/es/components/CodeField/utils/handleItemError.js +4 -14
- package/es/components/CodeField/utils/handleItemError.js.map +1 -1
- package/es/index.css +6 -7
- package/package.json +2 -2
- package/styled-components/cjs/components/CodeField/CodeField.js +20 -51
- package/styled-components/cjs/components/CodeField/CodeField.styles.js +5 -14
- package/styled-components/cjs/components/CodeField/utils/handleCodeError.js +2 -2
- package/styled-components/cjs/components/CodeField/utils/handleItemError.js +3 -12
- package/styled-components/cjs/components/CodeField/utils/index.js +0 -4
- package/styled-components/es/components/CodeField/CodeField.js +22 -53
- package/styled-components/es/components/CodeField/CodeField.styles.js +5 -11
- package/styled-components/es/components/CodeField/utils/handleCodeError.js +2 -2
- package/styled-components/es/components/CodeField/utils/handleItemError.js +3 -12
- package/styled-components/es/components/CodeField/utils/index.js +0 -1
- package/styled-components/es/examples/components/Combobox/Combobox.js +0 -7
- package/types/components/Autocomplete/Autocomplete.types.d.ts +6 -6
- package/types/components/Autocomplete/Autocomplete.types.d.ts.map +1 -1
- package/types/components/CodeField/CodeField.d.ts.map +1 -1
- package/types/components/CodeField/CodeField.styles.d.ts +0 -1
- package/types/components/CodeField/CodeField.styles.d.ts.map +1 -1
- package/types/components/CodeField/utils/handleCodeError.d.ts +2 -2
- package/types/components/CodeField/utils/handleCodeError.d.ts.map +1 -1
- package/types/components/CodeField/utils/handleItemError.d.ts +2 -3
- package/types/components/CodeField/utils/handleItemError.d.ts.map +1 -1
- package/types/components/CodeField/utils/index.d.ts +0 -1
- package/types/components/CodeField/utils/index.d.ts.map +1 -1
- package/types/examples/components/Autocomplete/Autocomplete.d.ts +40 -40
- package/types/examples/components/Autocomplete/Autocomplete.d.ts.map +1 -1
- package/cjs/components/CodeField/hooks/useWebOTP.js +0 -107
- package/cjs/components/CodeField/hooks/useWebOTP.js.map +0 -1
- package/cjs/components/CodeField/utils/isWebOTPSupported.js +0 -10
- package/cjs/components/CodeField/utils/isWebOTPSupported.js.map +0 -1
- package/emotion/cjs/components/CodeField/hooks/useWebOTP.js +0 -256
- package/emotion/cjs/components/CodeField/utils/isWebOTPSupported.js +0 -13
- package/emotion/es/components/CodeField/hooks/useWebOTP.js +0 -246
- package/emotion/es/components/CodeField/utils/isWebOTPSupported.js +0 -3
- package/es/components/CodeField/hooks/useWebOTP.js +0 -103
- package/es/components/CodeField/hooks/useWebOTP.js.map +0 -1
- package/es/components/CodeField/utils/isWebOTPSupported.js +0 -6
- package/es/components/CodeField/utils/isWebOTPSupported.js.map +0 -1
- package/styled-components/cjs/components/CodeField/hooks/useWebOTP.js +0 -256
- package/styled-components/cjs/components/CodeField/utils/isWebOTPSupported.js +0 -13
- package/styled-components/es/components/CodeField/hooks/useWebOTP.js +0 -246
- package/styled-components/es/components/CodeField/utils/isWebOTPSupported.js +0 -3
- package/types/components/CodeField/hooks/useWebOTP.d.ts +0 -24
- package/types/components/CodeField/hooks/useWebOTP.d.ts.map +0 -1
- package/types/components/CodeField/utils/isWebOTPSupported.d.ts +0 -2
- package/types/components/CodeField/utils/isWebOTPSupported.d.ts.map +0 -1
@@ -27,7 +27,7 @@ import { classes } from "../CodeField.tokens";
|
|
27
27
|
import { ANIMATION_TIMEOUT } from "./constants";
|
28
28
|
import { getCodeValue } from "./initialValuesHelper";
|
29
29
|
export var handleCodeError = function(param) {
|
30
|
-
var codeLength = param.codeLength, codeErrorBehavior = param.codeErrorBehavior, currentCode = param.currentCode, inputRefs = param.inputRefs, inputContainerRef = param.inputContainerRef, captionRef = param.captionRef,
|
30
|
+
var codeLength = param.codeLength, codeErrorBehavior = param.codeErrorBehavior, currentCode = param.currentCode, inputRefs = param.inputRefs, inputContainerRef = param.inputContainerRef, captionRef = param.captionRef, setCode = param.setCode, codeSetter = param.codeSetter;
|
31
31
|
if (!inputContainerRef.current) {
|
32
32
|
return;
|
33
33
|
}
|
@@ -41,7 +41,7 @@ export var handleCodeError = function(param) {
|
|
41
41
|
var newCode = _to_consumable_array(currentCode);
|
42
42
|
newCode.pop();
|
43
43
|
codeSetter(newCode);
|
44
|
-
|
44
|
+
setCode(currentCode);
|
45
45
|
(_inputContainerRef_current = inputContainerRef.current) === null || _inputContainerRef_current === void 0 ? void 0 : _inputContainerRef_current.classList.remove(classes.codeErrorAnimation);
|
46
46
|
setTimeout(function() {
|
47
47
|
var _inputRefs_current_, _inputRefs_current_1;
|
@@ -26,17 +26,14 @@ function _unsupported_iterable_to_array(o, minLen) {
|
|
26
26
|
import { classes } from "../CodeField.tokens";
|
27
27
|
import { ANIMATION_TIMEOUT } from "./constants";
|
28
28
|
export var handleItemError = function(param) {
|
29
|
-
var currentSymbol = param.currentSymbol, itemErrorBehavior = param.itemErrorBehavior, index = param.index, newCode = param.newCode, inputRefs = param.inputRefs,
|
29
|
+
var currentSymbol = param.currentSymbol, itemErrorBehavior = param.itemErrorBehavior, index = param.index, newCode = param.newCode, inputRefs = param.inputRefs, setCode = param.setCode, codeSetter = param.codeSetter;
|
30
30
|
if (!inputRefs.current[index] || currentSymbol === ' ') {
|
31
31
|
return;
|
32
32
|
}
|
33
33
|
switch(itemErrorBehavior){
|
34
34
|
case 'keep':
|
35
35
|
var _inputRefs_current_index;
|
36
|
-
|
37
|
-
if (onChange) {
|
38
|
-
onChange(newCode.join(''));
|
39
|
-
}
|
36
|
+
setCode(newCode);
|
40
37
|
(_inputRefs_current_index = inputRefs.current[index]) === null || _inputRefs_current_index === void 0 ? void 0 : _inputRefs_current_index.classList.add(classes.itemError, classes.itemErrorAnimation);
|
41
38
|
setTimeout(function() {
|
42
39
|
var _inputRefs_current_index;
|
@@ -50,17 +47,11 @@ export var handleItemError = function(param) {
|
|
50
47
|
case 'forbid-enter':
|
51
48
|
newCode[index] = '';
|
52
49
|
codeSetter(newCode);
|
53
|
-
if (onChange) {
|
54
|
-
onChange(newCode.join(''));
|
55
|
-
}
|
56
50
|
break;
|
57
51
|
case 'remove-symbol':
|
58
52
|
default:
|
59
53
|
var _inputRefs_current_index1;
|
60
|
-
|
61
|
-
if (onChange) {
|
62
|
-
onChange(newCode.join(''));
|
63
|
-
}
|
54
|
+
setCode(newCode);
|
64
55
|
(_inputRefs_current_index1 = inputRefs.current[index]) === null || _inputRefs_current_index1 === void 0 ? void 0 : _inputRefs_current_index1.classList.add(classes.itemError, classes.itemErrorFade, classes.itemErrorAnimation);
|
65
56
|
setTimeout(function() {
|
66
57
|
var _inputRefs_current_index;
|
@@ -0,0 +1,7 @@
|
|
1
|
+
import { component, mergeConfig } from "../../../engines";
|
2
|
+
import { comboboxNewConfig } from "../../..";
|
3
|
+
import { config } from "./Combobox.config";
|
4
|
+
var mergedConfig = mergeConfig(comboboxNewConfig, config);
|
5
|
+
var ComboboxComponent = component(mergedConfig);
|
6
|
+
var Combobox = ComboboxComponent;
|
7
|
+
export { Combobox };
|
@@ -1,10 +1,9 @@
|
|
1
|
-
.
|
2
|
-
.
|
3
|
-
.
|
4
|
-
.
|
5
|
-
.
|
6
|
-
.
|
7
|
-
|
1
|
+
.CodeField_styles_ebdpd0_b1xx9skx__3407b383{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;width:-webkit-min-content;width:-moz-min-content;width:min-content;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}.CodeField_styles_ebdpd0_b1xx9skx__3407b383.CodeField_styles_ebdpd0_codefieldCaptionAlignLeft__3407b383{-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}
|
2
|
+
.CodeField_styles_ebdpd0_c1wzspax__3407b383{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}
|
3
|
+
.CodeField_styles_ebdpd0_c7swj1z__3407b383{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}
|
4
|
+
.CodeField_styles_ebdpd0_s13uxcg8__3407b383{width:var(--plasma-codefield-separator-width);}
|
5
|
+
.CodeField_styles_ebdpd0_ig5h1kg__3407b383{box-sizing:border-box;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;padding:0;outline:none;pointer-events:none;text-align:center;}
|
6
|
+
.CodeField_styles_ebdpd0_c1jpzjak__3407b383{text-align:var(--c1jpzjak-0);-webkit-align-self:var(--c1jpzjak-0);-ms-flex-item-align:var(--c1jpzjak-0);align-self:var(--c1jpzjak-0);width:var(--c1jpzjak-1);white-space:pre-line;}
|
8
7
|
|
9
8
|
.base_9a5yza_b1g41h91__e66aaab8 .base_9a5yza_c1jpzjak__e66aaab8{color:var(--plasma-codefield-caption-color);}.base_9a5yza_b1g41h91__e66aaab8 .base_9a5yza_c1jpzjak__e66aaab8.base_9a5yza_codefieldCaptionError__e66aaab8{color:var(--plasma-codefield-caption-color-error);}.base_9a5yza_b1g41h91__e66aaab8 .base_9a5yza_ig5h1kg__e66aaab8{color:var(--plasma-codefield-code-color);caret-color:var(--plasma-codefield-caret-color);background-color:var(--plasma-codefield-background-color);box-shadow:inset 0 0 0 var(--plasma-codefield-border-width) var(--plasma-codefield-border-color);}.base_9a5yza_b1g41h91__e66aaab8:hover .base_9a5yza_codefieldItemHoverEnabled__e66aaab8{background-color:var(--plasma-codefield-background-color-hover);box-shadow:inset 0 0 0 var(--plasma-codefield-border-width) var(--plasma-codefield-border-color-hover);}.base_9a5yza_b1g41h91__e66aaab8:focus-within .base_9a5yza_ig5h1kg__e66aaab8:focus-within{background-color:var(--plasma-codefield-background-color-focus);box-shadow:inset 0 0 0 var(--plasma-codefield-border-width) var(--plasma-codefield-border-color-focus);}.base_9a5yza_b1g41h91__e66aaab8.base_9a5yza_b1g41h91__e66aaab8 .base_9a5yza_codefieldCodeErrorAnimation__e66aaab8{-webkit-animation:base_9a5yza_shakingErrorB1g41h91__e66aaab8 0.3s forwards;animation:base_9a5yza_shakingErrorB1g41h91__e66aaab8 0.3s forwards;}.base_9a5yza_b1g41h91__e66aaab8.base_9a5yza_b1g41h91__e66aaab8 .base_9a5yza_codefieldCodeError__e66aaab8 .base_9a5yza_ig5h1kg__e66aaab8{color:var(--plasma-codefield-code-color-error);background-color:var(--plasma-codefield-background-error-color);box-shadow:inset 0 0 0 var(--plasma-codefield-border-width) var(--plasma-codefield-border-error-color);}.base_9a5yza_b1g41h91__e66aaab8.base_9a5yza_b1g41h91__e66aaab8 .base_9a5yza_codefieldCodeError__e66aaab8:focus-within .base_9a5yza_ig5h1kg__e66aaab8{background-color:var(--plasma-codefield-background-error-color);box-shadow:inset 0 0 0 var(--plasma-codefield-border-width) var(--plasma-codefield-border-error-color);}.base_9a5yza_b1g41h91__e66aaab8.base_9a5yza_b1g41h91__e66aaab8 .base_9a5yza_codefieldCodeError__e66aaab8.base_9a5yza_codefieldCodeErrorFade__e66aaab8 .base_9a5yza_ig5h1kg__e66aaab8{-webkit-animation:base_9a5yza_fadeErrorB1g41h91__e66aaab8 0.3s forwards;animation:base_9a5yza_fadeErrorB1g41h91__e66aaab8 0.3s forwards;}.base_9a5yza_b1g41h91__e66aaab8.base_9a5yza_b1g41h91__e66aaab8 .base_9a5yza_codefieldItemErrorAnimation__e66aaab8{-webkit-animation:base_9a5yza_shakingErrorB1g41h91__e66aaab8 0.3s forwards;animation:base_9a5yza_shakingErrorB1g41h91__e66aaab8 0.3s forwards;}.base_9a5yza_b1g41h91__e66aaab8.base_9a5yza_b1g41h91__e66aaab8 .base_9a5yza_codefieldItemError__e66aaab8,.base_9a5yza_b1g41h91__e66aaab8.base_9a5yza_b1g41h91__e66aaab8 .base_9a5yza_codefieldItemError__e66aaab8:focus-within{color:var(--plasma-codefield-code-color-error);background-color:var(--plasma-codefield-background-error-color);box-shadow:inset 0 0 0 var(--plasma-codefield-border-width) var(--plasma-codefield-border-error-color);}.base_9a5yza_b1g41h91__e66aaab8.base_9a5yza_b1g41h91__e66aaab8 .base_9a5yza_codefieldItemError__e66aaab8.base_9a5yza_codefieldCodeErrorFade__e66aaab8,.base_9a5yza_b1g41h91__e66aaab8.base_9a5yza_b1g41h91__e66aaab8 .base_9a5yza_codefieldItemError__e66aaab8:focus-within.base_9a5yza_codefieldCodeErrorFade__e66aaab8{-webkit-animation:base_9a5yza_shakingErrorB1g41h91__e66aaab8 0.3s forwards :local(fadeError-b1g41h91) 0.3s :local(forwards);animation:base_9a5yza_shakingErrorB1g41h91__e66aaab8 0.3s forwards :local(fadeError-b1g41h91) 0.3s :local(forwards);}@-webkit-keyframes base_9a5yza_shakingErrorB1g41h91__e66aaab8{14%{-webkit-transform:translateX(-0.125rem);-ms-transform:translateX(-0.125rem);transform:translateX(-0.125rem);}28%{-webkit-transform:translateX(0.125rem);-ms-transform:translateX(0.125rem);transform:translateX(0.125rem);}42%{-webkit-transform:translateX(-0.125rem);-ms-transform:translateX(-0.125rem);transform:translateX(-0.125rem);}57%{-webkit-transform:translateX(0.125rem);-ms-transform:translateX(0.125rem);transform:translateX(0.125rem);}71%{-webkit-transform:translateX(-0.125rem);-ms-transform:translateX(-0.125rem);transform:translateX(-0.125rem);}85%{-webkit-transform:translateX(0.125rem);-ms-transform:translateX(0.125rem);transform:translateX(0.125rem);}100%{-webkit-transform:translateX(-0.125rem);-ms-transform:translateX(-0.125rem);transform:translateX(-0.125rem);}}@keyframes base_9a5yza_shakingErrorB1g41h91__e66aaab8{14%{-webkit-transform:translateX(-0.125rem);-ms-transform:translateX(-0.125rem);transform:translateX(-0.125rem);}28%{-webkit-transform:translateX(0.125rem);-ms-transform:translateX(0.125rem);transform:translateX(0.125rem);}42%{-webkit-transform:translateX(-0.125rem);-ms-transform:translateX(-0.125rem);transform:translateX(-0.125rem);}57%{-webkit-transform:translateX(0.125rem);-ms-transform:translateX(0.125rem);transform:translateX(0.125rem);}71%{-webkit-transform:translateX(-0.125rem);-ms-transform:translateX(-0.125rem);transform:translateX(-0.125rem);}85%{-webkit-transform:translateX(0.125rem);-ms-transform:translateX(0.125rem);transform:translateX(0.125rem);}100%{-webkit-transform:translateX(-0.125rem);-ms-transform:translateX(-0.125rem);transform:translateX(-0.125rem);}}@-webkit-keyframes base_9a5yza_fadeErrorB1g41h91__e66aaab8{50%{color:var(--plasma-codefield-code-color-error);}100%{color:transparent;}}@keyframes base_9a5yza_fadeErrorB1g41h91__e66aaab8{50%{color:var(--plasma-codefield-code-color-error);}100%{color:transparent;}}
|
10
9
|
|
@@ -1,20 +1,18 @@
|
|
1
|
-
import { objectWithoutProperties as _objectWithoutProperties, slicedToArray as _slicedToArray, extends as _extends,
|
1
|
+
import { objectWithoutProperties as _objectWithoutProperties, slicedToArray as _slicedToArray, extends as _extends, defineProperty as _defineProperty, toConsumableArray as _toConsumableArray } from '../../_virtual/_rollupPluginBabelHelpers.js';
|
2
2
|
import React, { forwardRef, useState, useRef, useCallback, Fragment } from 'react';
|
3
3
|
import cls from 'classnames';
|
4
4
|
import { FORBIDDEN_KEYS, BACKSPACE_KEY, ONLY_DIGITS_PATTERN } from './utils/constants.js';
|
5
5
|
import { classes } from './CodeField.tokens.js';
|
6
|
-
import { CodeWrapper, CodeGroup, ItemInput, Separator, CaptionWrapper,
|
6
|
+
import { CodeWrapper, CodeGroup, ItemInput, Separator, CaptionWrapper, base } from './CodeField.styles.js';
|
7
7
|
import { base as base$1 } from './variations/_view/base.js';
|
8
8
|
import { base as base$2 } from './variations/_size/base.js';
|
9
9
|
import { base as base$3 } from './variations/_shape/base.js';
|
10
10
|
import { base as base$4 } from './variations/_disabled/base.js';
|
11
|
-
import { useWebOTP } from './hooks/useWebOTP.js';
|
12
11
|
import { getCodeValue, getPlaceholderValue, getFieldPattern } from './utils/initialValuesHelper.js';
|
13
12
|
import { useCodeHook } from '../../hooks/useCodeHook.js';
|
14
13
|
import { useDidMountEffect } from '../../hooks/useDidMountEffect.js';
|
15
14
|
import { handleCodeError } from './utils/handleCodeError.js';
|
16
15
|
import { getSizeValueFromProp } from '../../utils/getSizeValueFromProp.js';
|
17
|
-
import { isWebOTPSupported } from './utils/isWebOTPSupported.js';
|
18
16
|
import { handleItemError } from './utils/handleItemError.js';
|
19
17
|
|
20
18
|
var _Separator;
|
@@ -49,19 +47,14 @@ var codeFieldRoot = function codeFieldRoot(Root) {
|
|
49
47
|
onChange = _ref.onChange,
|
50
48
|
onFullCodeEnter = _ref.onFullCodeEnter,
|
51
49
|
rest = _objectWithoutProperties(_ref, _excluded);
|
52
|
-
var _useState = useState(getCodeValue(codeLength, '')),
|
50
|
+
var _useState = useState(getCodeValue(codeLength, outerValue || '')),
|
53
51
|
_useState2 = _slicedToArray(_useState, 2),
|
54
|
-
|
55
|
-
|
56
|
-
var code = outerValue !== null && outerValue !== void 0 && outerValue.length ? getCodeValue(codeLength, outerValue) : innerValue;
|
52
|
+
code = _useState2[0],
|
53
|
+
setCode = _useState2[1];
|
57
54
|
var _useState3 = useState(code.join('')),
|
58
55
|
_useState4 = _slicedToArray(_useState3, 2),
|
59
56
|
originalValue = _useState4[0],
|
60
57
|
setOriginalValue = _useState4[1];
|
61
|
-
var _useState5 = useState(null),
|
62
|
-
_useState6 = _slicedToArray(_useState5, 2),
|
63
|
-
otpVal = _useState6[0],
|
64
|
-
setOtpVal = _useState6[1];
|
65
58
|
var inputRefs = useRef([]);
|
66
59
|
var inputContainerRef = useRef(null);
|
67
60
|
var captionRef = useRef(null);
|
@@ -69,7 +62,6 @@ var codeFieldRoot = function codeFieldRoot(Root) {
|
|
69
62
|
var placeholderValue = getPlaceholderValue(codeLength, placeholder);
|
70
63
|
var parts = codeLength === 6 ? 2 : 1;
|
71
64
|
var widthValue = width ? getSizeValueFromProp(width, 'rem') : undefined;
|
72
|
-
var isWebOTPEnabled = autoComplete === 'one-time-code' && !disabled && isWebOTPSupported();
|
73
65
|
var getLastActiveIndex = function getLastActiveIndex() {
|
74
66
|
if (code.length && code.length < codeLength) {
|
75
67
|
return code.length;
|
@@ -79,28 +71,6 @@ var codeFieldRoot = function codeFieldRoot(Root) {
|
|
79
71
|
});
|
80
72
|
return lastEmptyIndex >= 0 ? lastEmptyIndex : codeLength - 1;
|
81
73
|
};
|
82
|
-
var codeSetter = function codeSetter(newCode) {
|
83
|
-
setInnerValue(newCode);
|
84
|
-
var originalCode = newCode.join('');
|
85
|
-
setOriginalValue(originalCode);
|
86
|
-
if (onChange) {
|
87
|
-
onChange(originalCode);
|
88
|
-
}
|
89
|
-
if (originalCode.length > 0) {
|
90
|
-
stopWebOTPListener();
|
91
|
-
}
|
92
|
-
};
|
93
|
-
var _useWebOTP = useWebOTP({
|
94
|
-
codeString: originalValue,
|
95
|
-
enableSMSAutoRead: autoComplete === 'one-time-code',
|
96
|
-
disabled: Boolean(disabled),
|
97
|
-
codeLength: codeLength,
|
98
|
-
codeSetter: codeSetter,
|
99
|
-
onFullCodeEnter: onFullCodeEnter,
|
100
|
-
setOtpVal: setOtpVal
|
101
|
-
}),
|
102
|
-
startWebOTPListener = _useWebOTP.startWebOTPListener,
|
103
|
-
stopWebOTPListener = _useWebOTP.stopWebOTPListener;
|
104
74
|
var handleClick = function handleClick() {
|
105
75
|
if (disabled) {
|
106
76
|
return;
|
@@ -120,33 +90,28 @@ var codeFieldRoot = function codeFieldRoot(Root) {
|
|
120
90
|
return;
|
121
91
|
}
|
122
92
|
if (key === BACKSPACE_KEY) {
|
123
|
-
if (index > 0) {
|
124
|
-
var _inputRefs$current
|
125
|
-
|
126
|
-
newCode[index] = '';
|
127
|
-
if (index >= codeLength - 1 && code[index]) {
|
128
|
-
codeSetter(newCode);
|
129
|
-
return;
|
130
|
-
}
|
131
|
-
if (!code[index]) {
|
132
|
-
var _inputRefs$current;
|
133
|
-
newCode[index - 1] = '';
|
134
|
-
(_inputRefs$current = inputRefs.current[index - 1]) === null || _inputRefs$current === void 0 || _inputRefs$current.focus();
|
135
|
-
}
|
136
|
-
(_inputRefs$current$in = inputRefs.current[index]) === null || _inputRefs$current$in === void 0 || _inputRefs$current$in.classList.remove(classes.itemError);
|
137
|
-
codeSetter(newCode);
|
93
|
+
if (index > 0 && code[index] === '') {
|
94
|
+
var _inputRefs$current;
|
95
|
+
(_inputRefs$current = inputRefs.current[index - 1]) === null || _inputRefs$current === void 0 || _inputRefs$current.focus();
|
138
96
|
}
|
139
97
|
}
|
140
98
|
};
|
99
|
+
var codeSetter = function codeSetter(newCode) {
|
100
|
+
setCode(newCode);
|
101
|
+
setOriginalValue(newCode.join(''));
|
102
|
+
if (onChange) {
|
103
|
+
onChange(newCode.join(''));
|
104
|
+
}
|
105
|
+
};
|
141
106
|
var handleChange = function handleChange(event, index) {
|
142
|
-
var _inputRefs$current$
|
107
|
+
var _inputRefs$current$in;
|
143
108
|
if (disabled) {
|
144
109
|
return;
|
145
110
|
}
|
146
111
|
var rawSymbol = event.currentTarget.value;
|
147
112
|
var symbol = rawSymbol.charAt(rawSymbol.length - 1);
|
148
113
|
var newCode = _toConsumableArray(code);
|
149
|
-
(_inputRefs$current$
|
114
|
+
(_inputRefs$current$in = inputRefs.current[index]) === null || _inputRefs$current$in === void 0 || _inputRefs$current$in.classList.remove(classes.itemError);
|
150
115
|
if (isError) {
|
151
116
|
var _captionRef$current;
|
152
117
|
(_captionRef$current = captionRef.current) === null || _captionRef$current === void 0 || _captionRef$current.classList.remove(classes.captionError);
|
@@ -168,6 +133,8 @@ var codeFieldRoot = function codeFieldRoot(Root) {
|
|
168
133
|
return;
|
169
134
|
}
|
170
135
|
if (!symbol) {
|
136
|
+
newCode[index] = '';
|
137
|
+
codeSetter(newCode);
|
171
138
|
return;
|
172
139
|
}
|
173
140
|
if (fieldPattern.test(symbol)) {
|
@@ -185,9 +152,8 @@ var codeFieldRoot = function codeFieldRoot(Root) {
|
|
185
152
|
index: index,
|
186
153
|
newCode: newCode,
|
187
154
|
inputRefs: inputRefs,
|
188
|
-
|
189
|
-
codeSetter: codeSetter
|
190
|
-
onChange: onChange
|
155
|
+
setCode: setCode,
|
156
|
+
codeSetter: codeSetter
|
191
157
|
});
|
192
158
|
}
|
193
159
|
};
|
@@ -214,7 +180,6 @@ var codeFieldRoot = function codeFieldRoot(Root) {
|
|
214
180
|
if (onFullCodeEnter) {
|
215
181
|
onFullCodeEnter(fullCode);
|
216
182
|
}
|
217
|
-
startWebOTPListener();
|
218
183
|
}, []);
|
219
184
|
useCodeHook({
|
220
185
|
inputRefs: inputRefs,
|
@@ -234,12 +199,12 @@ var codeFieldRoot = function codeFieldRoot(Root) {
|
|
234
199
|
inputRefs: inputRefs,
|
235
200
|
inputContainerRef: inputContainerRef,
|
236
201
|
captionRef: captionRef,
|
237
|
-
|
202
|
+
setCode: setCode,
|
238
203
|
codeSetter: codeSetter
|
239
204
|
});
|
240
205
|
}
|
241
206
|
}, [isError]);
|
242
|
-
return /*#__PURE__*/React.createElement(
|
207
|
+
return /*#__PURE__*/React.createElement(Root, _extends({
|
243
208
|
ref: ref,
|
244
209
|
view: view,
|
245
210
|
size: size,
|
@@ -247,7 +212,7 @@ var codeFieldRoot = function codeFieldRoot(Root) {
|
|
247
212
|
disabled: disabled,
|
248
213
|
onClick: handleClick,
|
249
214
|
className: cls(className, _defineProperty({}, classes.captionAlignLeft, captionAlign === 'left'))
|
250
|
-
},
|
215
|
+
}, rest), /*#__PURE__*/React.createElement(CodeWrapper, {
|
251
216
|
ref: inputContainerRef
|
252
217
|
}, _toConsumableArray(Array(parts)).map(function (_, partIndex) {
|
253
218
|
return /*#__PURE__*/React.createElement(Fragment, {
|
@@ -263,6 +228,7 @@ var codeFieldRoot = function codeFieldRoot(Root) {
|
|
263
228
|
},
|
264
229
|
className: cls(_defineProperty(_defineProperty({}, classes.segmented, shape === 'segmented'), classes.hoverEnabled, !disabled && inputCorrectIndex >= originalValue.length)),
|
265
230
|
value: code[inputCorrectIndex] || '',
|
231
|
+
autoComplete: autoComplete,
|
266
232
|
onChange: function onChange(e) {
|
267
233
|
handleChange(e, inputCorrectIndex);
|
268
234
|
},
|
@@ -279,10 +245,7 @@ var codeFieldRoot = function codeFieldRoot(Root) {
|
|
279
245
|
ref: captionRef,
|
280
246
|
captionAlign: captionAlign,
|
281
247
|
widthValue: widthValue
|
282
|
-
}, caption)
|
283
|
-
autoComplete: autoComplete,
|
284
|
-
tabIndex: -1
|
285
|
-
}, rest))), /*#__PURE__*/React.createElement("div", null, JSON.stringify(otpVal)));
|
248
|
+
}, caption));
|
286
249
|
});
|
287
250
|
};
|
288
251
|
var codeFieldConfig = {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"CodeField.js","sources":["../../../src/components/CodeField/CodeField.tsx"],"sourcesContent":["import React, { forwardRef, Fragment, useCallback, useRef, useState } from 'react';\nimport cls from 'classnames';\nimport type { ChangeEvent, KeyboardEvent, ClipboardEvent } from 'react';\nimport type { RootProps } from 'src/engines';\nimport { useDidMountEffect } from 'src/hooks';\nimport { getSizeValueFromProp } from 'src/utils';\n\nimport { useCodeHook } from '../../hooks';\n\nimport type { CodeFieldProps } from './CodeField.types';\nimport { BACKSPACE_KEY, FORBIDDEN_KEYS, ONLY_DIGITS_PATTERN } from './utils/constants';\nimport {\n getCodeValue,\n getFieldPattern,\n getPlaceholderValue,\n handleCodeError,\n handleItemError,\n isWebOTPSupported,\n} from './utils';\nimport { classes } from './CodeField.tokens';\nimport { base, CaptionWrapper, CodeGroup, CodeWrapper, HiddenInput, ItemInput, Separator } from './CodeField.styles';\nimport { base as viewCSS } from './variations/_view/base';\nimport { base as sizeCSS } from './variations/_size/base';\nimport { base as shapeCSS } from './variations/_shape/base';\nimport { base as disabledCSS } from './variations/_disabled/base';\nimport { useWebOTP } from './hooks/useWebOTP';\n\nexport const codeFieldRoot = (Root: RootProps<HTMLDivElement, CodeFieldProps>) =>\n forwardRef<HTMLInputElement, CodeFieldProps>(\n (\n {\n className,\n value: outerValue,\n placeholder,\n autoFocus,\n codeLength = 6,\n caption,\n captionAlign = 'left',\n width,\n shape = 'default',\n view,\n size,\n disabled,\n isError,\n allowedSymbols = ONLY_DIGITS_PATTERN,\n itemErrorBehavior = 'remove-symbol',\n codeErrorBehavior = 'remove-code',\n autoComplete = 'one-time-code',\n setIsError,\n onChange,\n onFullCodeEnter,\n ...rest\n },\n ref,\n ) => {\n const [innerValue, setInnerValue] = useState<Array<string>>(getCodeValue(codeLength, ''));\n const code = outerValue?.length ? getCodeValue(codeLength, outerValue) : innerValue;\n\n const [originalValue, setOriginalValue] = useState<string>(code.join(''));\n const [otpVal, setOtpVal] = useState<Credential | null>(null);\n\n const inputRefs = useRef<Array<HTMLInputElement>>([]);\n const inputContainerRef = useRef<HTMLDivElement | null>(null);\n const captionRef = useRef<HTMLDivElement | null>(null);\n\n const fieldPattern = getFieldPattern(allowedSymbols);\n const placeholderValue = getPlaceholderValue(codeLength, placeholder);\n const parts = codeLength === 6 ? 2 : 1;\n\n const widthValue = width ? getSizeValueFromProp(width, 'rem') : undefined;\n const isWebOTPEnabled = autoComplete === 'one-time-code' && !disabled && isWebOTPSupported();\n\n const getLastActiveIndex = () => {\n if (code.length && code.length < codeLength) {\n return code.length;\n }\n\n const lastEmptyIndex = code.findIndex((digit) => digit === '');\n return lastEmptyIndex >= 0 ? lastEmptyIndex : codeLength - 1;\n };\n\n const codeSetter = (newCode: Array<string>) => {\n setInnerValue(newCode);\n const originalCode = newCode.join('');\n setOriginalValue(originalCode);\n\n if (onChange) {\n onChange(originalCode);\n }\n\n if (originalCode.length > 0) {\n stopWebOTPListener();\n }\n };\n\n const { startWebOTPListener, stopWebOTPListener } = useWebOTP({\n codeString: originalValue,\n enableSMSAutoRead: autoComplete === 'one-time-code',\n disabled: Boolean(disabled),\n codeLength,\n codeSetter,\n onFullCodeEnter,\n setOtpVal,\n });\n\n const handleClick = () => {\n if (disabled) {\n return;\n }\n\n const lastActiveIndex = getLastActiveIndex();\n\n if (inputRefs.current[lastActiveIndex]) {\n inputRefs.current[lastActiveIndex].focus();\n }\n };\n\n const handleOnKeyDown = (event: KeyboardEvent<HTMLInputElement>, index: number) => {\n if (disabled) {\n return;\n }\n\n const { key } = event;\n if (FORBIDDEN_KEYS.includes(key)) {\n event.preventDefault();\n\n return;\n }\n\n if (key === BACKSPACE_KEY) {\n if (index > 0) {\n const newCode = [...code];\n\n newCode[index] = '';\n\n if (index >= codeLength - 1 && code[index]) {\n codeSetter(newCode);\n return;\n }\n\n if (!code[index]) {\n newCode[index - 1] = '';\n inputRefs.current[index - 1]?.focus();\n }\n\n inputRefs.current[index]?.classList.remove(classes.itemError);\n codeSetter(newCode);\n }\n }\n };\n\n const handleChange = (event: ChangeEvent<HTMLInputElement>, index: number) => {\n if (disabled) {\n return;\n }\n\n const rawSymbol = event.currentTarget.value;\n const symbol = rawSymbol.charAt(rawSymbol.length - 1);\n const newCode = [...code];\n\n inputRefs.current[index]?.classList.remove(classes.itemError);\n if (isError) {\n captionRef.current?.classList.remove(classes.captionError);\n\n if (codeErrorBehavior === 'keep') {\n inputContainerRef.current?.classList.remove(classes.codeError, classes.codeErrorAnimation);\n }\n\n if (setIsError) {\n setIsError(false);\n }\n }\n\n if (!fieldPattern) {\n newCode[index] = symbol;\n codeSetter(newCode);\n\n if (symbol && index < codeLength - 1) {\n inputRefs.current[index + 1]?.focus();\n }\n\n return;\n }\n\n if (!symbol) {\n return;\n }\n\n if (fieldPattern.test(symbol)) {\n newCode[index] = symbol.charAt(symbol.length - 1);\n codeSetter(newCode);\n\n if (index < codeLength - 1) {\n inputRefs.current[index + 1]?.focus();\n }\n } else {\n newCode[index] = symbol.charAt(symbol.length - 1);\n\n handleItemError({\n currentSymbol: symbol,\n itemErrorBehavior,\n index,\n newCode,\n inputRefs,\n setInnerValue,\n codeSetter,\n onChange,\n });\n }\n };\n\n const handlePaste = (event: ClipboardEvent<HTMLInputElement>) => {\n const newCode = [...code];\n\n if (disabled) {\n return;\n }\n\n event.preventDefault();\n\n const rawData = event.clipboardData.getData('text/plain');\n\n const pastedData = (fieldPattern\n ? rawData\n .split('')\n .map((symb) => symb.match(fieldPattern)?.[0] || '')\n .filter(Boolean) || []\n : rawData.split('')\n ).slice(0, codeLength);\n\n pastedData.forEach((element, index) => {\n newCode[index] = element;\n });\n\n const activeIndex = Math.min(pastedData.length, codeLength - 1);\n inputRefs.current[activeIndex]?.focus();\n\n codeSetter(newCode);\n };\n\n const handleFullCodeEnter = useCallback((fullCode: string) => {\n if (onFullCodeEnter) {\n onFullCodeEnter(fullCode);\n }\n\n startWebOTPListener();\n }, []);\n\n useCodeHook({\n inputRefs,\n codeLength,\n disabled,\n autoFocus,\n originalValue,\n getLastActiveIndex,\n handleFullCodeEnter,\n });\n\n useDidMountEffect(() => {\n if (isError) {\n handleCodeError({\n codeLength,\n codeErrorBehavior,\n currentCode: code,\n inputRefs,\n inputContainerRef,\n captionRef,\n setInnerValue,\n codeSetter,\n });\n }\n }, [isError]);\n\n return (\n <>\n <Root\n ref={ref}\n view={view}\n size={size}\n shape={shape}\n disabled={disabled}\n onClick={handleClick}\n className={cls(className, {\n [classes.captionAlignLeft]: captionAlign === 'left',\n })}\n {...(!isWebOTPEnabled && { ...rest })}\n >\n <CodeWrapper ref={inputContainerRef}>\n {[...Array(parts)].map((_, partIndex) => (\n <Fragment key={partIndex}>\n <CodeGroup role=\"group\">\n {[...Array(codeLength / parts)].map((_, i) => {\n const inputCorrectIndex = i + (codeLength / parts) * partIndex;\n\n return (\n <ItemInput\n key={partIndex + i + partIndex * i}\n ref={(element: HTMLInputElement) => {\n inputRefs.current[inputCorrectIndex] = element;\n }}\n className={cls({\n [classes.segmented]: shape === 'segmented',\n [classes.hoverEnabled]:\n !disabled && inputCorrectIndex >= originalValue.length,\n })}\n value={code[inputCorrectIndex] || ''}\n onChange={(e: ChangeEvent<HTMLInputElement>) => {\n handleChange(e, inputCorrectIndex);\n }}\n onKeyDown={(e: KeyboardEvent<HTMLInputElement>) => {\n handleOnKeyDown(e, inputCorrectIndex);\n }}\n onPaste={handlePaste}\n tabIndex={\n !disabled && originalValue.length === inputCorrectIndex ? 0 : -1\n }\n {...(placeholderValue && {\n placeholder: placeholderValue[inputCorrectIndex],\n })}\n />\n );\n })}\n </CodeGroup>\n {partIndex !== parts - 1 && <Separator />}\n </Fragment>\n ))}\n </CodeWrapper>\n\n {caption && (\n <CaptionWrapper ref={captionRef} captionAlign={captionAlign} widthValue={widthValue}>\n {caption}\n </CaptionWrapper>\n )}\n\n {isWebOTPEnabled && <HiddenInput autoComplete={autoComplete} tabIndex={-1} {...rest} />}\n </Root>\n <div>{JSON.stringify(otpVal)}</div>\n </>\n );\n },\n );\n\nexport const codeFieldConfig = {\n name: 'CodeField',\n tag: 'div',\n layout: codeFieldRoot,\n base,\n variations: {\n view: {\n css: viewCSS,\n },\n size: {\n css: sizeCSS,\n },\n shape: {\n css: shapeCSS,\n },\n disabled: {\n css: disabledCSS,\n attrs: true,\n },\n },\n defaults: {\n size: 'm',\n view: 'default',\n shape: 'default',\n },\n};\n"],"names":["codeFieldRoot","Root","forwardRef","_ref","ref","className","outerValue","value","placeholder","autoFocus","_ref$codeLength","codeLength","caption","_ref$captionAlign","captionAlign","width","_ref$shape","shape","view","size","disabled","isError","_ref$allowedSymbols","allowedSymbols","ONLY_DIGITS_PATTERN","_ref$itemErrorBehavio","itemErrorBehavior","_ref$codeErrorBehavio","codeErrorBehavior","_ref$autoComplete","autoComplete","setIsError","onChange","onFullCodeEnter","rest","_objectWithoutProperties","_excluded","_useState","useState","getCodeValue","_useState2","_slicedToArray","innerValue","setInnerValue","code","length","_useState3","join","_useState4","originalValue","setOriginalValue","_useState5","_useState6","otpVal","setOtpVal","inputRefs","useRef","inputContainerRef","captionRef","fieldPattern","getFieldPattern","placeholderValue","getPlaceholderValue","parts","widthValue","getSizeValueFromProp","undefined","isWebOTPEnabled","isWebOTPSupported","getLastActiveIndex","lastEmptyIndex","findIndex","digit","codeSetter","newCode","originalCode","stopWebOTPListener","_useWebOTP","useWebOTP","codeString","enableSMSAutoRead","Boolean","startWebOTPListener","handleClick","lastActiveIndex","current","focus","handleOnKeyDown","event","index","key","FORBIDDEN_KEYS","includes","preventDefault","BACKSPACE_KEY","_inputRefs$current$in","_toConsumableArray","_inputRefs$current","classList","remove","classes","itemError","handleChange","_inputRefs$current$in2","rawSymbol","currentTarget","symbol","charAt","_captionRef$current","captionError","_inputContainerRef$cu","codeError","codeErrorAnimation","_inputRefs$current2","test","_inputRefs$current3","handleItemError","currentSymbol","handlePaste","_inputRefs$current$ac","rawData","clipboardData","getData","pastedData","split","map","symb","_symb$match","match","filter","slice","forEach","element","activeIndex","Math","min","handleFullCodeEnter","useCallback","fullCode","useCodeHook","useDidMountEffect","handleCodeError","currentCode","React","createElement","Fragment","_extends","onClick","cls","_defineProperty","captionAlignLeft","_objectSpread","CodeWrapper","Array","_","partIndex","CodeGroup","role","i","inputCorrectIndex","ItemInput","segmented","hoverEnabled","e","onKeyDown","onPaste","tabIndex","_Separator","Separator","CaptionWrapper","HiddenInput","JSON","stringify","codeFieldConfig","name","tag","layout","base","variations","css","viewCSS","sizeCSS","shapeCSS","disabledCSS","attrs","defaults"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"CodeField.js","sources":["../../../src/components/CodeField/CodeField.tsx"],"sourcesContent":["import React, { forwardRef, Fragment, useCallback, useRef, useState } from 'react';\nimport cls from 'classnames';\nimport type { ChangeEvent, KeyboardEvent, ClipboardEvent } from 'react';\nimport type { RootProps } from 'src/engines';\nimport { useDidMountEffect } from 'src/hooks';\nimport { getSizeValueFromProp } from 'src/utils';\n\nimport { useCodeHook } from '../../hooks';\n\nimport type { CodeFieldProps } from './CodeField.types';\nimport { BACKSPACE_KEY, FORBIDDEN_KEYS, ONLY_DIGITS_PATTERN } from './utils/constants';\nimport { getCodeValue, getFieldPattern, getPlaceholderValue, handleCodeError, handleItemError } from './utils';\nimport { classes } from './CodeField.tokens';\nimport { base, CaptionWrapper, CodeGroup, CodeWrapper, ItemInput, Separator } from './CodeField.styles';\nimport { base as viewCSS } from './variations/_view/base';\nimport { base as sizeCSS } from './variations/_size/base';\nimport { base as shapeCSS } from './variations/_shape/base';\nimport { base as disabledCSS } from './variations/_disabled/base';\n\nexport const codeFieldRoot = (Root: RootProps<HTMLDivElement, CodeFieldProps>) =>\n forwardRef<HTMLInputElement, CodeFieldProps>(\n (\n {\n className,\n value: outerValue,\n placeholder,\n autoFocus,\n codeLength = 6,\n caption,\n captionAlign = 'left',\n width,\n shape = 'default',\n view,\n size,\n disabled,\n isError,\n allowedSymbols = ONLY_DIGITS_PATTERN,\n itemErrorBehavior = 'remove-symbol',\n codeErrorBehavior = 'remove-code',\n autoComplete = 'one-time-code',\n setIsError,\n onChange,\n onFullCodeEnter,\n ...rest\n },\n ref,\n ) => {\n const [code, setCode] = useState<Array<string>>(getCodeValue(codeLength, outerValue || ''));\n const [originalValue, setOriginalValue] = useState<string>(code.join(''));\n\n const inputRefs = useRef<Array<HTMLInputElement>>([]);\n const inputContainerRef = useRef<HTMLDivElement | null>(null);\n const captionRef = useRef<HTMLDivElement | null>(null);\n\n const fieldPattern = getFieldPattern(allowedSymbols);\n const placeholderValue = getPlaceholderValue(codeLength, placeholder);\n const parts = codeLength === 6 ? 2 : 1;\n\n const widthValue = width ? getSizeValueFromProp(width, 'rem') : undefined;\n\n const getLastActiveIndex = () => {\n if (code.length && code.length < codeLength) {\n return code.length;\n }\n\n const lastEmptyIndex = code.findIndex((digit) => digit === '');\n return lastEmptyIndex >= 0 ? lastEmptyIndex : codeLength - 1;\n };\n\n const handleClick = () => {\n if (disabled) {\n return;\n }\n\n const lastActiveIndex = getLastActiveIndex();\n\n if (inputRefs.current[lastActiveIndex]) {\n inputRefs.current[lastActiveIndex].focus();\n }\n };\n\n const handleOnKeyDown = (event: KeyboardEvent<HTMLInputElement>, index: number) => {\n if (disabled) {\n return;\n }\n\n const { key } = event;\n if (FORBIDDEN_KEYS.includes(key)) {\n event.preventDefault();\n\n return;\n }\n\n if (key === BACKSPACE_KEY) {\n if (index > 0 && code[index] === '') {\n inputRefs.current[index - 1]?.focus();\n }\n }\n };\n\n const codeSetter = (newCode: Array<string>) => {\n setCode(newCode);\n setOriginalValue(newCode.join(''));\n\n if (onChange) {\n onChange(newCode.join(''));\n }\n };\n\n const handleChange = (event: ChangeEvent<HTMLInputElement>, index: number) => {\n if (disabled) {\n return;\n }\n\n const rawSymbol = event.currentTarget.value;\n const symbol = rawSymbol.charAt(rawSymbol.length - 1);\n const newCode = [...code];\n\n inputRefs.current[index]?.classList.remove(classes.itemError);\n if (isError) {\n captionRef.current?.classList.remove(classes.captionError);\n\n if (codeErrorBehavior === 'keep') {\n inputContainerRef.current?.classList.remove(classes.codeError, classes.codeErrorAnimation);\n }\n\n if (setIsError) {\n setIsError(false);\n }\n }\n\n if (!fieldPattern) {\n newCode[index] = symbol;\n codeSetter(newCode);\n\n if (symbol && index < codeLength - 1) {\n inputRefs.current[index + 1]?.focus();\n }\n\n return;\n }\n\n if (!symbol) {\n newCode[index] = '';\n codeSetter(newCode);\n\n return;\n }\n\n if (fieldPattern.test(symbol)) {\n newCode[index] = symbol.charAt(symbol.length - 1);\n codeSetter(newCode);\n\n if (index < codeLength - 1) {\n inputRefs.current[index + 1]?.focus();\n }\n } else {\n newCode[index] = symbol.charAt(symbol.length - 1);\n\n handleItemError({\n currentSymbol: symbol,\n itemErrorBehavior,\n index,\n newCode,\n inputRefs,\n setCode,\n codeSetter,\n });\n }\n };\n\n const handlePaste = (event: ClipboardEvent<HTMLInputElement>) => {\n const newCode = [...code];\n\n if (disabled) {\n return;\n }\n\n event.preventDefault();\n\n const rawData = event.clipboardData.getData('text/plain');\n\n const pastedData = (fieldPattern\n ? rawData\n .split('')\n .map((symb) => symb.match(fieldPattern)?.[0] || '')\n .filter(Boolean) || []\n : rawData.split('')\n ).slice(0, codeLength);\n\n pastedData.forEach((element, index) => {\n newCode[index] = element;\n });\n\n const activeIndex = Math.min(pastedData.length, codeLength - 1);\n inputRefs.current[activeIndex]?.focus();\n\n codeSetter(newCode);\n };\n\n const handleFullCodeEnter = useCallback((fullCode: string) => {\n if (onFullCodeEnter) {\n onFullCodeEnter(fullCode);\n }\n }, []);\n\n useCodeHook({\n inputRefs,\n codeLength,\n disabled,\n autoFocus,\n originalValue,\n getLastActiveIndex,\n handleFullCodeEnter,\n });\n\n useDidMountEffect(() => {\n if (isError) {\n handleCodeError({\n codeLength,\n codeErrorBehavior,\n currentCode: code,\n inputRefs,\n inputContainerRef,\n captionRef,\n setCode,\n codeSetter,\n });\n }\n }, [isError]);\n\n return (\n <Root\n ref={ref}\n view={view}\n size={size}\n shape={shape}\n disabled={disabled}\n onClick={handleClick}\n className={cls(className, {\n [classes.captionAlignLeft]: captionAlign === 'left',\n })}\n {...rest}\n >\n <CodeWrapper ref={inputContainerRef}>\n {[...Array(parts)].map((_, partIndex) => (\n <Fragment key={partIndex}>\n <CodeGroup role=\"group\">\n {[...Array(codeLength / parts)].map((_, i) => {\n const inputCorrectIndex = i + (codeLength / parts) * partIndex;\n\n return (\n <ItemInput\n key={partIndex + i + partIndex * i}\n ref={(element: HTMLInputElement) => {\n inputRefs.current[inputCorrectIndex] = element;\n }}\n className={cls({\n [classes.segmented]: shape === 'segmented',\n [classes.hoverEnabled]:\n !disabled && inputCorrectIndex >= originalValue.length,\n })}\n value={code[inputCorrectIndex] || ''}\n autoComplete={autoComplete}\n onChange={(e: ChangeEvent<HTMLInputElement>) => {\n handleChange(e, inputCorrectIndex);\n }}\n onKeyDown={(e: KeyboardEvent<HTMLInputElement>) => {\n handleOnKeyDown(e, inputCorrectIndex);\n }}\n onPaste={handlePaste}\n tabIndex={\n !disabled && originalValue.length === inputCorrectIndex ? 0 : -1\n }\n {...(placeholderValue && {\n placeholder: placeholderValue[inputCorrectIndex],\n })}\n />\n );\n })}\n </CodeGroup>\n {partIndex !== parts - 1 && <Separator />}\n </Fragment>\n ))}\n </CodeWrapper>\n {caption && (\n <CaptionWrapper ref={captionRef} captionAlign={captionAlign} widthValue={widthValue}>\n {caption}\n </CaptionWrapper>\n )}\n </Root>\n );\n },\n );\n\nexport const codeFieldConfig = {\n name: 'CodeField',\n tag: 'div',\n layout: codeFieldRoot,\n base,\n variations: {\n view: {\n css: viewCSS,\n },\n size: {\n css: sizeCSS,\n },\n shape: {\n css: shapeCSS,\n },\n disabled: {\n css: disabledCSS,\n attrs: true,\n },\n },\n defaults: {\n size: 'm',\n view: 'default',\n shape: 'default',\n },\n};\n"],"names":["codeFieldRoot","Root","forwardRef","_ref","ref","className","outerValue","value","placeholder","autoFocus","_ref$codeLength","codeLength","caption","_ref$captionAlign","captionAlign","width","_ref$shape","shape","view","size","disabled","isError","_ref$allowedSymbols","allowedSymbols","ONLY_DIGITS_PATTERN","_ref$itemErrorBehavio","itemErrorBehavior","_ref$codeErrorBehavio","codeErrorBehavior","_ref$autoComplete","autoComplete","setIsError","onChange","onFullCodeEnter","rest","_objectWithoutProperties","_excluded","_useState","useState","getCodeValue","_useState2","_slicedToArray","code","setCode","_useState3","join","_useState4","originalValue","setOriginalValue","inputRefs","useRef","inputContainerRef","captionRef","fieldPattern","getFieldPattern","placeholderValue","getPlaceholderValue","parts","widthValue","getSizeValueFromProp","undefined","getLastActiveIndex","length","lastEmptyIndex","findIndex","digit","handleClick","lastActiveIndex","current","focus","handleOnKeyDown","event","index","key","FORBIDDEN_KEYS","includes","preventDefault","BACKSPACE_KEY","_inputRefs$current","codeSetter","newCode","handleChange","_inputRefs$current$in","rawSymbol","currentTarget","symbol","charAt","_toConsumableArray","classList","remove","classes","itemError","_captionRef$current","captionError","_inputContainerRef$cu","codeError","codeErrorAnimation","_inputRefs$current2","test","_inputRefs$current3","handleItemError","currentSymbol","handlePaste","_inputRefs$current$ac","rawData","clipboardData","getData","pastedData","split","map","symb","_symb$match","match","filter","Boolean","slice","forEach","element","activeIndex","Math","min","handleFullCodeEnter","useCallback","fullCode","useCodeHook","useDidMountEffect","handleCodeError","currentCode","React","createElement","_extends","onClick","cls","_defineProperty","captionAlignLeft","CodeWrapper","Array","_","partIndex","Fragment","CodeGroup","role","i","inputCorrectIndex","ItemInput","segmented","hoverEnabled","e","onKeyDown","onPaste","tabIndex","_Separator","Separator","CaptionWrapper","codeFieldConfig","name","tag","layout","base","variations","css","viewCSS","sizeCSS","shapeCSS","disabledCSS","attrs","defaults"],"mappings":"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"}
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import './CodeField.
|
1
|
+
import './CodeField.styles_ebdpd0.css';
|
2
2
|
import { styled } from '@linaria/react';
|
3
3
|
|
4
4
|
var base = "b1xx9skx";
|
@@ -43,11 +43,6 @@ var CaptionWrapper = /*#__PURE__*/styled('div')({
|
|
43
43
|
"c1jpzjak-1": [/*#__PURE__*/_exp5()]
|
44
44
|
}
|
45
45
|
});
|
46
|
-
var HiddenInput = /*#__PURE__*/styled('input')({
|
47
|
-
name: "HiddenInput",
|
48
|
-
"class": "h1x845wl",
|
49
|
-
propsAsIs: false
|
50
|
-
});
|
51
46
|
|
52
|
-
export { CaptionWrapper, CodeGroup, CodeWrapper,
|
47
|
+
export { CaptionWrapper, CodeGroup, CodeWrapper, ItemInput, Separator, base };
|
53
48
|
//# sourceMappingURL=CodeField.styles.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"CodeField.styles.js","sources":["../../../src/components/CodeField/CodeField.styles.ts"],"sourcesContent":["import { css } from '@linaria/core';\nimport { styled } from '@linaria/react';\n\nimport { classes, tokens } from './CodeField.tokens';\n\nexport const base = css`\n display: flex;\n flex-direction: column;\n justify-content: center;\n width: min-content;\n align-items: center;\n\n &.${classes.captionAlignLeft} {\n align-items: flex-start;\n }\n`;\n\nexport const CodeWrapper = styled.div`\n display: flex;\n align-items: center;\n`;\n\nexport const CodeGroup = styled.div`\n display: flex;\n align-items: center;\n`;\n\nexport const Separator = styled.div`\n width: var(${tokens.separatorWidth});\n`;\n\nexport const ItemInput = styled.input`\n box-sizing: border-box;\n appearance: none;\n border: 0;\n padding: 0;\n outline: none;\n pointer-events: none;\n text-align: center;\n`;\n\nexport const CaptionWrapper = styled.div<{ captionAlign: 'left' | 'center'; widthValue?: string }>`\n text-align: ${({ captionAlign }) => captionAlign};\n align-self: ${({ captionAlign }) => captionAlign};\n width: ${({ widthValue }) => widthValue || 'auto'};\n white-space: pre-line;\n`;\n
|
1
|
+
{"version":3,"file":"CodeField.styles.js","sources":["../../../src/components/CodeField/CodeField.styles.ts"],"sourcesContent":["import { css } from '@linaria/core';\nimport { styled } from '@linaria/react';\n\nimport { classes, tokens } from './CodeField.tokens';\n\nexport const base = css`\n display: flex;\n flex-direction: column;\n justify-content: center;\n width: min-content;\n align-items: center;\n\n &.${classes.captionAlignLeft} {\n align-items: flex-start;\n }\n`;\n\nexport const CodeWrapper = styled.div`\n display: flex;\n align-items: center;\n`;\n\nexport const CodeGroup = styled.div`\n display: flex;\n align-items: center;\n`;\n\nexport const Separator = styled.div`\n width: var(${tokens.separatorWidth});\n`;\n\nexport const ItemInput = styled.input`\n box-sizing: border-box;\n appearance: none;\n border: 0;\n padding: 0;\n outline: none;\n pointer-events: none;\n text-align: center;\n`;\n\nexport const CaptionWrapper = styled.div<{ captionAlign: 'left' | 'center'; widthValue?: string }>`\n text-align: ${({ captionAlign }) => captionAlign};\n align-self: ${({ captionAlign }) => captionAlign};\n width: ${({ widthValue }) => widthValue || 'auto'};\n white-space: pre-line;\n`;\n"],"names":["base","CodeWrapper","styled","name","class","propsAsIs","CodeGroup","Separator","ItemInput","_exp4","_ref","captionAlign","_exp5","_ref2","widthValue","CaptionWrapper","vars"],"mappings":";;AAKO,IAAMA,IAAI,GAUhB,WAAA;AAEM,IAAMC,WAAW,gBAAGC,MAAM,CAAA,KAAA,CAAA,CAAA;AAAAC,EAAAA,IAAA,EAAA,aAAA;AAAAC,EAAAA,OAAAA,EAAA,UAAA;AAAAC,EAAAA,SAAA,EAAA,KAAA;AAAA,CAGhC,EAAA;AAEM,IAAMC,SAAS,gBAAGJ,MAAM,CAAA,KAAA,CAAA,CAAA;AAAAC,EAAAA,IAAA,EAAA,WAAA;AAAAC,EAAAA,OAAAA,EAAA,SAAA;AAAAC,EAAAA,SAAA,EAAA,KAAA;AAAA,CAG9B,EAAA;AAEM,IAAME,SAAS,gBAAGL,MAAM,CAAA,KAAA,CAAA,CAAA;AAAAC,EAAAA,IAAA,EAAA,WAAA;AAAAC,EAAAA,OAAAA,EAAA,UAAA;AAAAC,EAAAA,SAAA,EAAA,KAAA;AAAA,CAE9B,EAAA;AAEM,IAAMG,SAAS,gBAAGN,MAAM,CAAA,OAAA,CAAA,CAAA;AAAAC,EAAAA,IAAA,EAAA,WAAA;AAAAC,EAAAA,OAAAA,EAAA,SAAA;AAAAC,EAAAA,SAAA,EAAA,KAAA;AAAA,CAQ9B,EAAA;AAAC,IAAAI,KAAA,GAtCgBA,SAsChBA,KAAAA,GAAA;AAAA,EAAA,OAIgB,UAAAC,IAAA,EAAA;AAAA,IAAA,IAAGC,YAAAA,GAAAA,IAAAA,CAAAA,YAAAA,CAAAA;AAAAA,IAAAA,OAAmBA,YAAY,CAAA;AAAA,GAAA,CAAA;AAAA,CAAA,CAAA;AAAA,IAAAC,KAAA,GA1ClCA,SA0CkCA,KAAAA,GAAA;AAAA,EAAA,OACvC,UAAAC,KAAA,EAAA;AAAA,IAAA,IAAGC,UAAAA,GAAAA,KAAAA,CAAAA,UAAAA,CAAAA;IAAAA,OAAiBA,UAAU,IAAI,MAAM,CAAA;AAAA,GAAA,CAAA;AAAA,CAAA,CAAA;AAH9C,IAAMC,cAAc,gBAAGb,MAAM,CAAA,KAAA,CAAA,CAAA;AAAAC,EAAAA,IAAA,EAAA,gBAAA;AAAAC,EAAAA,OAAAA,EAAA,UAAA;AAAAC,EAAAA,SAAA,EAAA,KAAA;AAAAW,EAAAA,IAAA,EAAA;AAAA,IAAA,YAAA,EAAA,cAElBP,KAAkC,EAAA,CAAA;AAAA,IAAA,YAAA,EAAA,cACvCG,KAAwC,EAAA,CAAA;AAAA,GAAA;AAAA,CAEpD;;;;"}
|
@@ -4,4 +4,3 @@
|
|
4
4
|
.s13uxcg8{width:var(--plasma-codefield-separator-width);}
|
5
5
|
.ig5h1kg{box-sizing:border-box;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;padding:0;outline:none;pointer-events:none;text-align:center;}
|
6
6
|
.c1jpzjak{text-align:var(--c1jpzjak-0);-webkit-align-self:var(--c1jpzjak-0);-ms-flex-item-align:var(--c1jpzjak-0);align-self:var(--c1jpzjak-0);width:var(--c1jpzjak-1);white-space:pre-line;}
|
7
|
-
|
@@ -11,7 +11,7 @@ var handleCodeError = function handleCodeError(_ref) {
|
|
11
11
|
inputRefs = _ref.inputRefs,
|
12
12
|
inputContainerRef = _ref.inputContainerRef,
|
13
13
|
captionRef = _ref.captionRef,
|
14
|
-
|
14
|
+
setCode = _ref.setCode,
|
15
15
|
codeSetter = _ref.codeSetter;
|
16
16
|
if (!inputContainerRef.current) {
|
17
17
|
return;
|
@@ -25,7 +25,7 @@ var handleCodeError = function handleCodeError(_ref) {
|
|
25
25
|
var newCode = _toConsumableArray(currentCode);
|
26
26
|
newCode.pop();
|
27
27
|
codeSetter(newCode);
|
28
|
-
|
28
|
+
setCode(currentCode);
|
29
29
|
(_inputContainerRef$cu = inputContainerRef.current) === null || _inputContainerRef$cu === void 0 || _inputContainerRef$cu.classList.remove(classes.codeErrorAnimation);
|
30
30
|
setTimeout(function () {
|
31
31
|
var _inputRefs$current, _inputRefs$current2;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"handleCodeError.js","sources":["../../../../src/components/CodeField/utils/handleCodeError.ts"],"sourcesContent":["import { Dispatch, MutableRefObject, SetStateAction } from 'react';\n\nimport type { CodeErrorBehavior } from '../CodeField.types';\nimport { classes } from '../CodeField.tokens';\n\nimport { ANIMATION_TIMEOUT } from './constants';\nimport { getCodeValue } from './initialValuesHelper';\n\ntype ValidateSymbolsArgs = {\n codeLength: number;\n codeErrorBehavior: CodeErrorBehavior;\n currentCode: Array<string>;\n inputContainerRef: MutableRefObject<HTMLDivElement | null>;\n inputRefs: MutableRefObject<Array<HTMLInputElement | null>>;\n captionRef: MutableRefObject<HTMLDivElement | null>;\n
|
1
|
+
{"version":3,"file":"handleCodeError.js","sources":["../../../../src/components/CodeField/utils/handleCodeError.ts"],"sourcesContent":["import { Dispatch, MutableRefObject, SetStateAction } from 'react';\n\nimport type { CodeErrorBehavior } from '../CodeField.types';\nimport { classes } from '../CodeField.tokens';\n\nimport { ANIMATION_TIMEOUT } from './constants';\nimport { getCodeValue } from './initialValuesHelper';\n\ntype ValidateSymbolsArgs = {\n codeLength: number;\n codeErrorBehavior: CodeErrorBehavior;\n currentCode: Array<string>;\n inputContainerRef: MutableRefObject<HTMLDivElement | null>;\n inputRefs: MutableRefObject<Array<HTMLInputElement | null>>;\n captionRef: MutableRefObject<HTMLDivElement | null>;\n setCode: Dispatch<SetStateAction<Array<string>>>;\n codeSetter: (newCode: Array<string>) => void;\n};\n\nexport const handleCodeError = ({\n codeLength,\n codeErrorBehavior,\n currentCode,\n inputRefs,\n inputContainerRef,\n captionRef,\n setCode,\n codeSetter,\n}: ValidateSymbolsArgs) => {\n if (!inputContainerRef.current) {\n return;\n }\n\n switch (codeErrorBehavior) {\n case 'keep':\n inputContainerRef.current.classList.add(classes.codeError, classes.codeErrorAnimation);\n captionRef.current?.classList.add(classes.captionError);\n\n setTimeout(() => {\n const newCode = [...currentCode];\n\n newCode.pop();\n codeSetter(newCode);\n setCode(currentCode);\n\n inputContainerRef.current?.classList.remove(classes.codeErrorAnimation);\n\n setTimeout(() => {\n inputRefs.current[inputRefs.current.length - 1]?.setSelectionRange(0, 1);\n inputRefs.current[inputRefs.current.length - 1]?.focus();\n }, 0);\n }, ANIMATION_TIMEOUT);\n\n break;\n case 'remove-code':\n default:\n inputContainerRef.current.classList.add(\n classes.codeError,\n classes.codeErrorAnimation,\n classes.codeErrorFade,\n );\n captionRef.current?.classList.add(classes.captionError);\n\n setTimeout(() => {\n codeSetter(getCodeValue(codeLength, ''));\n\n inputRefs.current[0]?.focus();\n inputContainerRef.current?.classList.remove(\n classes.codeError,\n classes.codeErrorAnimation,\n classes.codeErrorFade,\n );\n }, ANIMATION_TIMEOUT);\n }\n};\n"],"names":["handleCodeError","_ref","_captionRef$current","_captionRef$current2","codeLength","codeErrorBehavior","currentCode","inputRefs","inputContainerRef","captionRef","setCode","codeSetter","current","classList","add","classes","codeError","codeErrorAnimation","captionError","setTimeout","_inputContainerRef$cu","newCode","_toConsumableArray","pop","remove","_inputRefs$current","_inputRefs$current2","length","setSelectionRange","focus","ANIMATION_TIMEOUT","codeErrorFade","_inputRefs$current$","_inputContainerRef$cu2","getCodeValue"],"mappings":"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"}
|
@@ -9,18 +9,14 @@ var handleItemError = function handleItemError(_ref) {
|
|
9
9
|
index = _ref.index,
|
10
10
|
newCode = _ref.newCode,
|
11
11
|
inputRefs = _ref.inputRefs,
|
12
|
-
|
13
|
-
codeSetter = _ref.codeSetter
|
14
|
-
onChange = _ref.onChange;
|
12
|
+
setCode = _ref.setCode,
|
13
|
+
codeSetter = _ref.codeSetter;
|
15
14
|
if (!inputRefs.current[index] || currentSymbol === ' ') {
|
16
15
|
return;
|
17
16
|
}
|
18
17
|
switch (itemErrorBehavior) {
|
19
18
|
case 'keep':
|
20
|
-
|
21
|
-
if (onChange) {
|
22
|
-
onChange(newCode.join(''));
|
23
|
-
}
|
19
|
+
setCode(newCode);
|
24
20
|
(_inputRefs$current$in = inputRefs.current[index]) === null || _inputRefs$current$in === void 0 || _inputRefs$current$in.classList.add(classes.itemError, classes.itemErrorAnimation);
|
25
21
|
setTimeout(function () {
|
26
22
|
var _inputRefs$current$in2;
|
@@ -34,16 +30,10 @@ var handleItemError = function handleItemError(_ref) {
|
|
34
30
|
case 'forbid-enter':
|
35
31
|
newCode[index] = '';
|
36
32
|
codeSetter(newCode);
|
37
|
-
if (onChange) {
|
38
|
-
onChange(newCode.join(''));
|
39
|
-
}
|
40
33
|
break;
|
41
34
|
case 'remove-symbol':
|
42
35
|
default:
|
43
|
-
|
44
|
-
if (onChange) {
|
45
|
-
onChange(newCode.join(''));
|
46
|
-
}
|
36
|
+
setCode(newCode);
|
47
37
|
(_inputRefs$current$in4 = inputRefs.current[index]) === null || _inputRefs$current$in4 === void 0 || _inputRefs$current$in4.classList.add(classes.itemError, classes.itemErrorFade, classes.itemErrorAnimation);
|
48
38
|
setTimeout(function () {
|
49
39
|
var _inputRefs$current$in5;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"handleItemError.js","sources":["../../../../src/components/CodeField/utils/handleItemError.ts"],"sourcesContent":["import { Dispatch, MutableRefObject, SetStateAction } from 'react';\n\nimport type { ItemErrorBehavior } from '../CodeField.types';\nimport { classes } from '../CodeField.tokens';\n\nimport { ANIMATION_TIMEOUT } from './constants';\n\ntype ValidateSymbolsArgs = {\n currentSymbol: string;\n itemErrorBehavior: ItemErrorBehavior;\n index: number;\n newCode: Array<string>;\n inputRefs: MutableRefObject<Array<HTMLInputElement | null>>;\n
|
1
|
+
{"version":3,"file":"handleItemError.js","sources":["../../../../src/components/CodeField/utils/handleItemError.ts"],"sourcesContent":["import { Dispatch, MutableRefObject, SetStateAction } from 'react';\n\nimport type { ItemErrorBehavior } from '../CodeField.types';\nimport { classes } from '../CodeField.tokens';\n\nimport { ANIMATION_TIMEOUT } from './constants';\n\ntype ValidateSymbolsArgs = {\n currentSymbol: string;\n itemErrorBehavior: ItemErrorBehavior;\n index: number;\n newCode: Array<string>;\n inputRefs: MutableRefObject<Array<HTMLInputElement | null>>;\n setCode: Dispatch<SetStateAction<Array<string>>>;\n codeSetter: (newCode: Array<string>) => void;\n};\n\nexport const handleItemError = ({\n currentSymbol,\n itemErrorBehavior,\n index,\n newCode,\n inputRefs,\n setCode,\n codeSetter,\n}: ValidateSymbolsArgs) => {\n if (!inputRefs.current[index] || currentSymbol === ' ') {\n return;\n }\n\n switch (itemErrorBehavior) {\n case 'keep':\n setCode(newCode);\n inputRefs.current[index]?.classList.add(classes.itemError, classes.itemErrorAnimation);\n\n setTimeout(() => {\n inputRefs.current[index]?.classList.remove(classes.itemErrorAnimation);\n\n setTimeout(() => inputRefs.current[index]?.setSelectionRange(0, 1), 0);\n }, ANIMATION_TIMEOUT);\n\n break;\n case 'forbid-enter':\n newCode[index] = '';\n codeSetter(newCode);\n\n break;\n case 'remove-symbol':\n default:\n setCode(newCode);\n inputRefs.current[index]?.classList.add(\n classes.itemError,\n classes.itemErrorFade,\n classes.itemErrorAnimation,\n );\n\n setTimeout(() => {\n const updatedCode = [...newCode];\n updatedCode[index] = '';\n\n codeSetter(updatedCode);\n\n inputRefs.current[index]?.classList.remove(\n classes.itemError,\n classes.itemErrorFade,\n classes.itemErrorAnimation,\n );\n }, ANIMATION_TIMEOUT);\n }\n};\n"],"names":["handleItemError","_ref","_inputRefs$current$in","_inputRefs$current$in4","currentSymbol","itemErrorBehavior","index","newCode","inputRefs","setCode","codeSetter","current","classList","add","classes","itemError","itemErrorAnimation","setTimeout","_inputRefs$current$in2","remove","_inputRefs$current$in3","setSelectionRange","ANIMATION_TIMEOUT","itemErrorFade","_inputRefs$current$in5","updatedCode","_toConsumableArray"],"mappings":";;;;IAiBaA,eAAe,GAAG,SAAlBA,eAAeA,CAAAC,IAAA,EAQD;EAAA,IAAAC,qBAAA,EAAAC,sBAAA,CAAA;AAAA,EAAA,IAPvBC,aAAa,GAAAH,IAAA,CAAbG,aAAa;IACbC,iBAAiB,GAAAJ,IAAA,CAAjBI,iBAAiB;IACjBC,KAAK,GAAAL,IAAA,CAALK,KAAK;IACLC,OAAO,GAAAN,IAAA,CAAPM,OAAO;IACPC,SAAS,GAAAP,IAAA,CAATO,SAAS;IACTC,OAAO,GAAAR,IAAA,CAAPQ,OAAO;IACPC,UAAU,GAAAT,IAAA,CAAVS,UAAU,CAAA;EAEV,IAAI,CAACF,SAAS,CAACG,OAAO,CAACL,KAAK,CAAC,IAAIF,aAAa,KAAK,GAAG,EAAE;AACpD,IAAA,OAAA;AACJ,GAAA;AAEA,EAAA,QAAQC,iBAAiB;AACrB,IAAA,KAAK,MAAM;MACPI,OAAO,CAACF,OAAO,CAAC,CAAA;MAChB,CAAAL,qBAAA,GAAAM,SAAS,CAACG,OAAO,CAACL,KAAK,CAAC,MAAAJ,IAAAA,IAAAA,qBAAA,KAAxBA,KAAAA,CAAAA,IAAAA,qBAAA,CAA0BU,SAAS,CAACC,GAAG,CAACC,OAAO,CAACC,SAAS,EAAED,OAAO,CAACE,kBAAkB,CAAC,CAAA;AAEtFC,MAAAA,UAAU,CAAC,YAAM;AAAA,QAAA,IAAAC,sBAAA,CAAA;QACb,CAAAA,sBAAA,GAAAV,SAAS,CAACG,OAAO,CAACL,KAAK,CAAC,MAAAY,IAAAA,IAAAA,sBAAA,eAAxBA,sBAAA,CAA0BN,SAAS,CAACO,MAAM,CAACL,OAAO,CAACE,kBAAkB,CAAC,CAAA;AAEtEC,QAAAA,UAAU,CAAC,YAAA;AAAA,UAAA,IAAAG,sBAAA,CAAA;AAAA,UAAA,OAAA,CAAAA,sBAAA,GAAMZ,SAAS,CAACG,OAAO,CAACL,KAAK,CAAC,MAAA,IAAA,IAAAc,sBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAxBA,sBAAA,CAA0BC,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;AAAA,SAAA,EAAE,CAAC,CAAC,CAAA;OACzE,EAAEC,iBAAiB,CAAC,CAAA;AAErB,MAAA,MAAA;AACJ,IAAA,KAAK,cAAc;AACff,MAAAA,OAAO,CAACD,KAAK,CAAC,GAAG,EAAE,CAAA;MACnBI,UAAU,CAACH,OAAO,CAAC,CAAA;AAEnB,MAAA,MAAA;AACJ,IAAA,KAAK,eAAe,CAAA;AACpB,IAAA;MACIE,OAAO,CAACF,OAAO,CAAC,CAAA;AAChB,MAAA,CAAAJ,sBAAA,GAAAK,SAAS,CAACG,OAAO,CAACL,KAAK,CAAC,MAAAH,IAAAA,IAAAA,sBAAA,KAAxBA,KAAAA,CAAAA,IAAAA,sBAAA,CAA0BS,SAAS,CAACC,GAAG,CACnCC,OAAO,CAACC,SAAS,EACjBD,OAAO,CAACS,aAAa,EACrBT,OAAO,CAACE,kBACZ,CAAC,CAAA;AAEDC,MAAAA,UAAU,CAAC,YAAM;AAAA,QAAA,IAAAO,sBAAA,CAAA;AACb,QAAA,IAAMC,WAAW,GAAAC,kBAAA,CAAOnB,OAAO,CAAC,CAAA;AAChCkB,QAAAA,WAAW,CAACnB,KAAK,CAAC,GAAG,EAAE,CAAA;QAEvBI,UAAU,CAACe,WAAW,CAAC,CAAA;AAEvB,QAAA,CAAAD,sBAAA,GAAAhB,SAAS,CAACG,OAAO,CAACL,KAAK,CAAC,MAAAkB,IAAAA,IAAAA,sBAAA,KAAxBA,KAAAA,CAAAA,IAAAA,sBAAA,CAA0BZ,SAAS,CAACO,MAAM,CACtCL,OAAO,CAACC,SAAS,EACjBD,OAAO,CAACS,aAAa,EACrBT,OAAO,CAACE,kBACZ,CAAC,CAAA;OACJ,EAAEM,iBAAiB,CAAC,CAAA;AAC7B,GAAA;AACJ;;;;"}
|