@salutejs/plasma-new-hope 0.336.0-canary.2210.17546691141.0 → 0.336.0-canary.2210.17550717632.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.
@@ -12,6 +12,7 @@ var base = require('./variations/_view/base.js');
12
12
  var base$1 = require('./variations/_size/base.js');
13
13
  var base$2 = require('./variations/_shape/base.js');
14
14
  var base$3 = require('./variations/_disabled/base.js');
15
+ var useWebOTP = require('./hooks/useWebOTP.js');
15
16
  var initialValuesHelper = require('./utils/initialValuesHelper.js');
16
17
  var useCodeHook = require('../../hooks/useCodeHook.js');
17
18
  var useDidMountEffect = require('../../hooks/useDidMountEffect.js');
@@ -27,8 +28,6 @@ var cls__default = /*#__PURE__*/_interopDefault(cls);
27
28
 
28
29
  var _Separator;
29
30
  var _excluded = ["className", "value", "placeholder", "autoFocus", "codeLength", "caption", "captionAlign", "width", "shape", "view", "size", "disabled", "isError", "allowedSymbols", "itemErrorBehavior", "codeErrorBehavior", "autoComplete", "setIsError", "onChange", "onFullCodeEnter"];
30
- // import { useWebOTP } from './hooks/useWebOTP';
31
-
32
31
  var codeFieldRoot = function codeFieldRoot(Root) {
33
32
  return /*#__PURE__*/React.forwardRef(function (_ref, ref) {
34
33
  var _autocompleteRef$curr;
@@ -69,8 +68,6 @@ var codeFieldRoot = function codeFieldRoot(Root) {
69
68
  _useState4 = _rollupPluginBabelHelpers.slicedToArray(_useState3, 2),
70
69
  originalValue = _useState4[0],
71
70
  setOriginalValue = _useState4[1];
72
- // const [otpVal, setOtpVal] = useState<Credential | null>(null);
73
-
74
71
  var inputRefs = React.useRef([]);
75
72
  var inputContainerRef = React.useRef(null);
76
73
  var captionRef = React.useRef(null);
@@ -96,22 +93,15 @@ var codeFieldRoot = function codeFieldRoot(Root) {
96
93
  if (onChange) {
97
94
  onChange(originalCode);
98
95
  }
99
-
100
- // if (originalCode.length > 0) {
101
- // stopWebOTPListener();
102
- // }
103
96
  };
104
-
105
- // const { startWebOTPListener, stopWebOTPListener } = useWebOTP({
106
- // codeString: originalValue,
107
- // enableSMSAutoRead: autoComplete === 'one-time-code',
108
- // disabled: Boolean(disabled),
109
- // codeLength,
110
- // codeSetter,
111
- // onFullCodeEnter,
112
- // setOtpVal,
113
- // });
114
-
97
+ useWebOTP.useWebOTP({
98
+ codeString: originalValue,
99
+ enableSMSAutoRead: autoComplete === 'one-time-code',
100
+ disabled: Boolean(disabled),
101
+ codeLength: codeLength,
102
+ codeSetter: codeSetter,
103
+ onFullCodeEnter: onFullCodeEnter
104
+ });
115
105
  var handleClick = function handleClick() {
116
106
  if (disabled) {
117
107
  return;
@@ -225,8 +215,6 @@ var codeFieldRoot = function codeFieldRoot(Root) {
225
215
  if (onFullCodeEnter) {
226
216
  onFullCodeEnter(fullCode);
227
217
  }
228
-
229
- // startWebOTPListener();
230
218
  }, []);
231
219
  useCodeHook.useCodeHook({
232
220
  inputRefs: inputRefs,
@@ -1 +1 @@
1
- {"version":3,"file":"CodeField.js","sources":["../../../src/components/CodeField/CodeField.tsx"],"sourcesContent":["import React, { forwardRef, Fragment, useCallback, useEffect, 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';\n// import { 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 = typeof outerValue === 'string' ? 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 const autocompleteRef = useRef<HTMLInputElement | 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 const originalCode = newCode.join('');\n\n setInnerValue(getCodeValue(codeLength, originalCode));\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 (!symbol) {\n return;\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 (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 useEffect(() => {\n if (disabled || !autocompleteRef.current) {\n return;\n }\n\n const autocompleteCode = autocompleteRef.current.value.split('');\n codeSetter(autocompleteCode);\n }, [autocompleteRef.current?.value, disabled]);\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 && (\n <HiddenInput ref={autocompleteRef} autoComplete={autoComplete} tabIndex={-1} {...rest} />\n )}\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","_autocompleteRef$curr","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","_useState3","join","_useState4","originalValue","setOriginalValue","inputRefs","useRef","inputContainerRef","captionRef","autocompleteRef","fieldPattern","getFieldPattern","placeholderValue","getPlaceholderValue","parts","widthValue","getSizeValueFromProp","undefined","isWebOTPEnabled","isWebOTPSupported","getLastActiveIndex","length","lastEmptyIndex","findIndex","digit","codeSetter","newCode","originalCode","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","Boolean","slice","forEach","element","activeIndex","Math","min","handleFullCodeEnter","useCallback","fullCode","useCodeHook","useDidMountEffect","handleCodeError","currentCode","useEffect","autocompleteCode","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","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, useEffect, 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 = typeof outerValue === 'string' ? getCodeValue(codeLength, outerValue) : innerValue;\n\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 const autocompleteRef = useRef<HTMLInputElement | 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 const originalCode = newCode.join('');\n\n setInnerValue(getCodeValue(codeLength, originalCode));\n setOriginalValue(originalCode);\n\n if (onChange) {\n onChange(originalCode);\n }\n };\n\n useWebOTP({\n codeString: originalValue,\n enableSMSAutoRead: autoComplete === 'one-time-code',\n disabled: Boolean(disabled),\n codeLength,\n codeSetter,\n onFullCodeEnter,\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 (!symbol) {\n return;\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 (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\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 useEffect(() => {\n if (disabled || !autocompleteRef.current) {\n return;\n }\n\n const autocompleteCode = autocompleteRef.current.value.split('');\n codeSetter(autocompleteCode);\n }, [autocompleteRef.current?.value, disabled]);\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 && (\n <HiddenInput ref={autocompleteRef} autoComplete={autoComplete} tabIndex={-1} {...rest} />\n )}\n </Root>\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","_autocompleteRef$curr","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","_useState3","join","_useState4","originalValue","setOriginalValue","inputRefs","useRef","inputContainerRef","captionRef","autocompleteRef","fieldPattern","getFieldPattern","placeholderValue","getPlaceholderValue","parts","widthValue","getSizeValueFromProp","undefined","isWebOTPEnabled","isWebOTPSupported","getLastActiveIndex","length","lastEmptyIndex","findIndex","digit","codeSetter","newCode","originalCode","useWebOTP","codeString","enableSMSAutoRead","Boolean","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","useEffect","autocompleteCode","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","codeFieldConfig","name","tag","layout","base","variations","css","viewCSS","sizeCSS","shapeCSS","disabledCSS","attrs","defaults"],"mappings":"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"}
@@ -0,0 +1,95 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var _rollupPluginBabelHelpers = require('../../../_virtual/_rollupPluginBabelHelpers.js');
6
+ var React = require('react');
7
+ var isWebOTPSupported = require('../utils/isWebOTPSupported.js');
8
+ var initialValuesHelper = require('../utils/initialValuesHelper.js');
9
+
10
+ var isOTPCredential = function isOTPCredential(credential) {
11
+ return credential !== null && 'code' in credential;
12
+ };
13
+ var useWebOTP = function useWebOTP(_ref) {
14
+ var codeString = _ref.codeString,
15
+ enableSMSAutoRead = _ref.enableSMSAutoRead,
16
+ disabled = _ref.disabled,
17
+ codeLength = _ref.codeLength,
18
+ codeSetter = _ref.codeSetter,
19
+ onFullCodeEnter = _ref.onFullCodeEnter;
20
+ var abortControllerRef = React.useRef(null);
21
+ var startWebOTPListener = React.useCallback(/*#__PURE__*/_rollupPluginBabelHelpers.asyncToGenerator(/*#__PURE__*/_rollupPluginBabelHelpers.regeneratorRuntime().mark(function _callee() {
22
+ var otp, otpCode, newCode;
23
+ return _rollupPluginBabelHelpers.regeneratorRuntime().wrap(function _callee$(_context) {
24
+ while (1) switch (_context.prev = _context.next) {
25
+ case 0:
26
+ if (!(!enableSMSAutoRead || disabled || !isWebOTPSupported.isWebOTPSupported())) {
27
+ _context.next = 2;
28
+ break;
29
+ }
30
+ return _context.abrupt("return");
31
+ case 2:
32
+ if (abortControllerRef.current) {
33
+ abortControllerRef.current.abort();
34
+ }
35
+ abortControllerRef.current = new AbortController();
36
+ _context.prev = 4;
37
+ _context.next = 7;
38
+ return navigator.credentials.get({
39
+ otp: {
40
+ transport: ['sms']
41
+ },
42
+ signal: abortControllerRef.current.signal
43
+ });
44
+ case 7:
45
+ otp = _context.sent;
46
+ if (otp && isOTPCredential(otp) && otp.code) {
47
+ otpCode = otp.code;
48
+ if (otpCode.length === codeLength) {
49
+ newCode = initialValuesHelper.getCodeValue(codeLength, otpCode);
50
+ codeSetter(newCode);
51
+ if (onFullCodeEnter) {
52
+ onFullCodeEnter(otpCode);
53
+ }
54
+ }
55
+ }
56
+ _context.next = 14;
57
+ break;
58
+ case 11:
59
+ _context.prev = 11;
60
+ _context.t0 = _context["catch"](4);
61
+ if (_context.t0 instanceof DOMException) {
62
+ if (_context.t0.name !== 'AbortError' && _context.t0.name !== 'NotAllowedError') {
63
+ console.warn('Web OTP API error:', _context.t0);
64
+ }
65
+ } else if (_context.t0 instanceof Error) {
66
+ console.warn('Web OTP API error:', _context.t0);
67
+ } else {
68
+ console.warn('Unknown Web OTP API error:', _context.t0);
69
+ }
70
+ case 14:
71
+ case "end":
72
+ return _context.stop();
73
+ }
74
+ }, _callee, null, [[4, 11]]);
75
+ })), [enableSMSAutoRead, disabled, codeLength, onFullCodeEnter]);
76
+ var stopWebOTPListener = React.useCallback(function () {
77
+ if (abortControllerRef.current) {
78
+ abortControllerRef.current.abort();
79
+ abortControllerRef.current = null;
80
+ }
81
+ }, []);
82
+ React.useEffect(function () {
83
+ if (isWebOTPSupported.isWebOTPSupported() && codeString === '' && enableSMSAutoRead && !disabled) {
84
+ startWebOTPListener();
85
+ } else {
86
+ stopWebOTPListener();
87
+ }
88
+ return function () {
89
+ stopWebOTPListener();
90
+ };
91
+ }, [codeString, enableSMSAutoRead, disabled, startWebOTPListener, stopWebOTPListener]);
92
+ };
93
+
94
+ exports.useWebOTP = useWebOTP;
95
+ //# sourceMappingURL=useWebOTP.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useWebOTP.js","sources":["../../../../src/components/CodeField/hooks/useWebOTP.ts"],"sourcesContent":["import { useCallback, useEffect, useRef } from 'react';\n\nimport { getCodeValue, isWebOTPSupported } from '../utils';\n\ntype UseWebOTPProps = {\n codeString: string;\n enableSMSAutoRead: boolean;\n disabled: boolean;\n codeLength: number;\n codeSetter: (newCode: Array<string>) => void;\n onFullCodeEnter?: (code: string) => void;\n};\n\ntype OTPTransport = 'sms';\n\ninterface OTPCredential extends Credential {\n code: string;\n}\n\ndeclare global {\n interface CredentialRequestOptions {\n otp?: {\n transport: OTPTransport[];\n };\n signal?: AbortSignal;\n }\n}\n\nconst isOTPCredential = (credential: Credential | null): credential is OTPCredential => {\n return credential !== null && 'code' in credential;\n};\n\nexport const useWebOTP = ({\n codeString,\n enableSMSAutoRead,\n disabled,\n codeLength,\n codeSetter,\n onFullCodeEnter,\n}: UseWebOTPProps) => {\n const abortControllerRef = useRef<AbortController | null>(null);\n\n const startWebOTPListener = useCallback(async () => {\n if (!enableSMSAutoRead || disabled || !isWebOTPSupported()) {\n return;\n }\n\n if (abortControllerRef.current) {\n abortControllerRef.current.abort();\n }\n\n abortControllerRef.current = new AbortController();\n\n try {\n const otp = await navigator.credentials.get({\n otp: { transport: ['sms'] as OTPTransport[] },\n signal: abortControllerRef.current.signal,\n });\n\n if (otp && isOTPCredential(otp) && otp.code) {\n const otpCode = otp.code;\n\n if (otpCode.length === codeLength) {\n const newCode = getCodeValue(codeLength, otpCode);\n codeSetter(newCode);\n\n if (onFullCodeEnter) {\n onFullCodeEnter(otpCode);\n }\n }\n }\n } catch (err) {\n if (err instanceof DOMException) {\n if (err.name !== 'AbortError' && err.name !== 'NotAllowedError') {\n console.warn('Web OTP API error:', err);\n }\n } else if (err instanceof Error) {\n console.warn('Web OTP API error:', err);\n } else {\n console.warn('Unknown Web OTP API error:', err);\n }\n }\n }, [enableSMSAutoRead, disabled, codeLength, onFullCodeEnter]);\n\n const stopWebOTPListener = useCallback(() => {\n if (abortControllerRef.current) {\n abortControllerRef.current.abort();\n abortControllerRef.current = null;\n }\n }, []);\n\n useEffect(() => {\n if (isWebOTPSupported() && codeString === '' && enableSMSAutoRead && !disabled) {\n startWebOTPListener();\n } else {\n stopWebOTPListener();\n }\n\n return () => {\n stopWebOTPListener();\n };\n }, [codeString, enableSMSAutoRead, disabled, startWebOTPListener, stopWebOTPListener]);\n};\n"],"names":["isOTPCredential","credential","useWebOTP","_ref","codeString","enableSMSAutoRead","disabled","codeLength","codeSetter","onFullCodeEnter","abortControllerRef","useRef","startWebOTPListener","useCallback","_asyncToGenerator","_regeneratorRuntime","mark","_callee","otp","otpCode","newCode","wrap","_callee$","_context","prev","next","isWebOTPSupported","abrupt","current","abort","AbortController","navigator","credentials","get","transport","signal","sent","code","length","getCodeValue","t0","DOMException","name","console","warn","Error","stop","stopWebOTPListener","useEffect"],"mappings":"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"}
@@ -29,6 +29,7 @@ var _base = require("./variations/_view/base");
29
29
  var _base1 = require("./variations/_size/base");
30
30
  var _base2 = require("./variations/_shape/base");
31
31
  var _base3 = require("./variations/_disabled/base");
32
+ var _useWebOTP = require("./hooks/useWebOTP");
32
33
  function _array_like_to_array(arr, len) {
33
34
  if (len == null || len > arr.length) len = arr.length;
34
35
  for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
@@ -216,7 +217,6 @@ var codeFieldRoot = function(Root) {
216
217
  var _useState = _sliced_to_array((0, _react.useState)((0, _utils1.getCodeValue)(codeLength, '')), 2), innerValue = _useState[0], setInnerValue = _useState[1];
217
218
  var code = typeof outerValue === 'string' ? (0, _utils1.getCodeValue)(codeLength, outerValue) : innerValue;
218
219
  var _useState1 = _sliced_to_array((0, _react.useState)(code.join('')), 2), originalValue = _useState1[0], setOriginalValue = _useState1[1];
219
- // const [otpVal, setOtpVal] = useState<Credential | null>(null);
220
220
  var inputRefs = (0, _react.useRef)([]);
221
221
  var inputContainerRef = (0, _react.useRef)(null);
222
222
  var captionRef = (0, _react.useRef)(null);
@@ -242,19 +242,15 @@ var codeFieldRoot = function(Root) {
242
242
  if (onChange) {
243
243
  onChange(originalCode);
244
244
  }
245
- // if (originalCode.length > 0) {
246
- // stopWebOTPListener();
247
- // }
248
245
  };
249
- // const { startWebOTPListener, stopWebOTPListener } = useWebOTP({
250
- // codeString: originalValue,
251
- // enableSMSAutoRead: autoComplete === 'one-time-code',
252
- // disabled: Boolean(disabled),
253
- // codeLength,
254
- // codeSetter,
255
- // onFullCodeEnter,
256
- // setOtpVal,
257
- // });
246
+ (0, _useWebOTP.useWebOTP)({
247
+ codeString: originalValue,
248
+ enableSMSAutoRead: autoComplete === 'one-time-code',
249
+ disabled: Boolean(disabled),
250
+ codeLength: codeLength,
251
+ codeSetter: codeSetter,
252
+ onFullCodeEnter: onFullCodeEnter
253
+ });
258
254
  var handleClick = function() {
259
255
  if (disabled) {
260
256
  return;
@@ -368,7 +364,6 @@ var codeFieldRoot = function(Root) {
368
364
  if (onFullCodeEnter) {
369
365
  onFullCodeEnter(fullCode);
370
366
  }
371
- // startWebOTPListener();
372
367
  }, []);
373
368
  (0, _hooks1.useCodeHook)({
374
369
  inputRefs: inputRefs,
@@ -137,12 +137,11 @@ function _ts_generator(thisArg, body) {
137
137
  };
138
138
  }
139
139
  }
140
- // Type guard function to check if credential is OTPCredential
141
140
  var isOTPCredential = function(credential) {
142
141
  return credential !== null && 'code' in credential;
143
142
  };
144
143
  var useWebOTP = function(param) {
145
- var codeString = param.codeString, enableSMSAutoRead = param.enableSMSAutoRead, disabled = param.disabled, codeLength = param.codeLength, codeSetter = param.codeSetter, onFullCodeEnter = param.onFullCodeEnter, setOtpVal = param.setOtpVal;
144
+ var codeString = param.codeString, enableSMSAutoRead = param.enableSMSAutoRead, disabled = param.disabled, codeLength = param.codeLength, codeSetter = param.codeSetter, onFullCodeEnter = param.onFullCodeEnter;
146
145
  var abortControllerRef = (0, _react.useRef)(null);
147
146
  var startWebOTPListener = (0, _react.useCallback)(function() {
148
147
  return _async_to_generator(function() {
@@ -180,16 +179,11 @@ var useWebOTP = function(param) {
180
179
  ];
181
180
  case 2:
182
181
  otp = _state.sent();
183
- console.log('otp received', otp);
184
- setOtpVal(otp);
185
- // Type guard to check if it's an OTP credential
186
182
  if (otp && isOTPCredential(otp) && otp.code) {
187
183
  otpCode = otp.code;
188
- // Validate the OTP code length matches our expected length
189
184
  if (otpCode.length === codeLength) {
190
185
  newCode = (0, _utils.getCodeValue)(codeLength, otpCode);
191
186
  codeSetter(newCode);
192
- // Trigger full code enter callback
193
187
  if (onFullCodeEnter) {
194
188
  onFullCodeEnter(otpCode);
195
189
  }
@@ -249,8 +243,4 @@ var useWebOTP = function(param) {
249
243
  startWebOTPListener,
250
244
  stopWebOTPListener
251
245
  ]);
252
- return {
253
- startWebOTPListener: startWebOTPListener,
254
- stopWebOTPListener: stopWebOTPListener
255
- };
256
246
  };
@@ -124,7 +124,7 @@ import { base as viewCSS } from "./variations/_view/base";
124
124
  import { base as sizeCSS } from "./variations/_size/base";
125
125
  import { base as shapeCSS } from "./variations/_shape/base";
126
126
  import { base as disabledCSS } from "./variations/_disabled/base";
127
- // import { useWebOTP } from './hooks/useWebOTP';
127
+ import { useWebOTP } from "./hooks/useWebOTP";
128
128
  export var codeFieldRoot = function(Root) {
129
129
  return /*#__PURE__*/ forwardRef(function(_param, ref) {
130
130
  var className = _param.className, outerValue = _param.value, placeholder = _param.placeholder, autoFocus = _param.autoFocus, _param_codeLength = _param.codeLength, codeLength = _param_codeLength === void 0 ? 6 : _param_codeLength, caption = _param.caption, _param_captionAlign = _param.captionAlign, captionAlign = _param_captionAlign === void 0 ? 'left' : _param_captionAlign, width = _param.width, _param_shape = _param.shape, shape = _param_shape === void 0 ? 'default' : _param_shape, view = _param.view, size = _param.size, disabled = _param.disabled, isError = _param.isError, _param_allowedSymbols = _param.allowedSymbols, allowedSymbols = _param_allowedSymbols === void 0 ? ONLY_DIGITS_PATTERN : _param_allowedSymbols, _param_itemErrorBehavior = _param.itemErrorBehavior, itemErrorBehavior = _param_itemErrorBehavior === void 0 ? 'remove-symbol' : _param_itemErrorBehavior, _param_codeErrorBehavior = _param.codeErrorBehavior, codeErrorBehavior = _param_codeErrorBehavior === void 0 ? 'remove-code' : _param_codeErrorBehavior, _param_autoComplete = _param.autoComplete, autoComplete = _param_autoComplete === void 0 ? 'one-time-code' : _param_autoComplete, setIsError = _param.setIsError, onChange = _param.onChange, onFullCodeEnter = _param.onFullCodeEnter, rest = _object_without_properties(_param, [
@@ -153,7 +153,6 @@ export var codeFieldRoot = function(Root) {
153
153
  var _useState = _sliced_to_array(useState(getCodeValue(codeLength, '')), 2), innerValue = _useState[0], setInnerValue = _useState[1];
154
154
  var code = typeof outerValue === 'string' ? getCodeValue(codeLength, outerValue) : innerValue;
155
155
  var _useState1 = _sliced_to_array(useState(code.join('')), 2), originalValue = _useState1[0], setOriginalValue = _useState1[1];
156
- // const [otpVal, setOtpVal] = useState<Credential | null>(null);
157
156
  var inputRefs = useRef([]);
158
157
  var inputContainerRef = useRef(null);
159
158
  var captionRef = useRef(null);
@@ -179,19 +178,15 @@ export var codeFieldRoot = function(Root) {
179
178
  if (onChange) {
180
179
  onChange(originalCode);
181
180
  }
182
- // if (originalCode.length > 0) {
183
- // stopWebOTPListener();
184
- // }
185
181
  };
186
- // const { startWebOTPListener, stopWebOTPListener } = useWebOTP({
187
- // codeString: originalValue,
188
- // enableSMSAutoRead: autoComplete === 'one-time-code',
189
- // disabled: Boolean(disabled),
190
- // codeLength,
191
- // codeSetter,
192
- // onFullCodeEnter,
193
- // setOtpVal,
194
- // });
182
+ useWebOTP({
183
+ codeString: originalValue,
184
+ enableSMSAutoRead: autoComplete === 'one-time-code',
185
+ disabled: Boolean(disabled),
186
+ codeLength: codeLength,
187
+ codeSetter: codeSetter,
188
+ onFullCodeEnter: onFullCodeEnter
189
+ });
195
190
  var handleClick = function() {
196
191
  if (disabled) {
197
192
  return;
@@ -305,7 +300,6 @@ export var codeFieldRoot = function(Root) {
305
300
  if (onFullCodeEnter) {
306
301
  onFullCodeEnter(fullCode);
307
302
  }
308
- // startWebOTPListener();
309
303
  }, []);
310
304
  useCodeHook({
311
305
  inputRefs: inputRefs,
@@ -127,12 +127,11 @@ function _ts_generator(thisArg, body) {
127
127
  }
128
128
  import { useCallback, useEffect, useRef } from "react";
129
129
  import { getCodeValue, isWebOTPSupported } from "../utils";
130
- // Type guard function to check if credential is OTPCredential
131
130
  var isOTPCredential = function(credential) {
132
131
  return credential !== null && 'code' in credential;
133
132
  };
134
133
  export var useWebOTP = function(param) {
135
- var codeString = param.codeString, enableSMSAutoRead = param.enableSMSAutoRead, disabled = param.disabled, codeLength = param.codeLength, codeSetter = param.codeSetter, onFullCodeEnter = param.onFullCodeEnter, setOtpVal = param.setOtpVal;
134
+ var codeString = param.codeString, enableSMSAutoRead = param.enableSMSAutoRead, disabled = param.disabled, codeLength = param.codeLength, codeSetter = param.codeSetter, onFullCodeEnter = param.onFullCodeEnter;
136
135
  var abortControllerRef = useRef(null);
137
136
  var startWebOTPListener = useCallback(function() {
138
137
  return _async_to_generator(function() {
@@ -170,16 +169,11 @@ export var useWebOTP = function(param) {
170
169
  ];
171
170
  case 2:
172
171
  otp = _state.sent();
173
- console.log('otp received', otp);
174
- setOtpVal(otp);
175
- // Type guard to check if it's an OTP credential
176
172
  if (otp && isOTPCredential(otp) && otp.code) {
177
173
  otpCode = otp.code;
178
- // Validate the OTP code length matches our expected length
179
174
  if (otpCode.length === codeLength) {
180
175
  newCode = getCodeValue(codeLength, otpCode);
181
176
  codeSetter(newCode);
182
- // Trigger full code enter callback
183
177
  if (onFullCodeEnter) {
184
178
  onFullCodeEnter(otpCode);
185
179
  }
@@ -239,8 +233,4 @@ export var useWebOTP = function(param) {
239
233
  startWebOTPListener,
240
234
  stopWebOTPListener
241
235
  ]);
242
- return {
243
- startWebOTPListener: startWebOTPListener,
244
- stopWebOTPListener: stopWebOTPListener
245
- };
246
236
  };
@@ -8,6 +8,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';
11
12
  import { getCodeValue, getPlaceholderValue, getFieldPattern } from './utils/initialValuesHelper.js';
12
13
  import { useCodeHook } from '../../hooks/useCodeHook.js';
13
14
  import { useDidMountEffect } from '../../hooks/useDidMountEffect.js';
@@ -18,8 +19,6 @@ import { handleItemError } from './utils/handleItemError.js';
18
19
 
19
20
  var _Separator;
20
21
  var _excluded = ["className", "value", "placeholder", "autoFocus", "codeLength", "caption", "captionAlign", "width", "shape", "view", "size", "disabled", "isError", "allowedSymbols", "itemErrorBehavior", "codeErrorBehavior", "autoComplete", "setIsError", "onChange", "onFullCodeEnter"];
21
- // import { useWebOTP } from './hooks/useWebOTP';
22
-
23
22
  var codeFieldRoot = function codeFieldRoot(Root) {
24
23
  return /*#__PURE__*/forwardRef(function (_ref, ref) {
25
24
  var _autocompleteRef$curr;
@@ -60,8 +59,6 @@ var codeFieldRoot = function codeFieldRoot(Root) {
60
59
  _useState4 = _slicedToArray(_useState3, 2),
61
60
  originalValue = _useState4[0],
62
61
  setOriginalValue = _useState4[1];
63
- // const [otpVal, setOtpVal] = useState<Credential | null>(null);
64
-
65
62
  var inputRefs = useRef([]);
66
63
  var inputContainerRef = useRef(null);
67
64
  var captionRef = useRef(null);
@@ -87,22 +84,15 @@ var codeFieldRoot = function codeFieldRoot(Root) {
87
84
  if (onChange) {
88
85
  onChange(originalCode);
89
86
  }
90
-
91
- // if (originalCode.length > 0) {
92
- // stopWebOTPListener();
93
- // }
94
87
  };
95
-
96
- // const { startWebOTPListener, stopWebOTPListener } = useWebOTP({
97
- // codeString: originalValue,
98
- // enableSMSAutoRead: autoComplete === 'one-time-code',
99
- // disabled: Boolean(disabled),
100
- // codeLength,
101
- // codeSetter,
102
- // onFullCodeEnter,
103
- // setOtpVal,
104
- // });
105
-
88
+ useWebOTP({
89
+ codeString: originalValue,
90
+ enableSMSAutoRead: autoComplete === 'one-time-code',
91
+ disabled: Boolean(disabled),
92
+ codeLength: codeLength,
93
+ codeSetter: codeSetter,
94
+ onFullCodeEnter: onFullCodeEnter
95
+ });
106
96
  var handleClick = function handleClick() {
107
97
  if (disabled) {
108
98
  return;
@@ -216,8 +206,6 @@ var codeFieldRoot = function codeFieldRoot(Root) {
216
206
  if (onFullCodeEnter) {
217
207
  onFullCodeEnter(fullCode);
218
208
  }
219
-
220
- // startWebOTPListener();
221
209
  }, []);
222
210
  useCodeHook({
223
211
  inputRefs: inputRefs,
@@ -1 +1 @@
1
- {"version":3,"file":"CodeField.js","sources":["../../../src/components/CodeField/CodeField.tsx"],"sourcesContent":["import React, { forwardRef, Fragment, useCallback, useEffect, 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';\n// import { 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 = typeof outerValue === 'string' ? 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 const autocompleteRef = useRef<HTMLInputElement | 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 const originalCode = newCode.join('');\n\n setInnerValue(getCodeValue(codeLength, originalCode));\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 (!symbol) {\n return;\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 (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 useEffect(() => {\n if (disabled || !autocompleteRef.current) {\n return;\n }\n\n const autocompleteCode = autocompleteRef.current.value.split('');\n codeSetter(autocompleteCode);\n }, [autocompleteRef.current?.value, disabled]);\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 && (\n <HiddenInput ref={autocompleteRef} autoComplete={autoComplete} tabIndex={-1} {...rest} />\n )}\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","_autocompleteRef$curr","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","_useState3","join","_useState4","originalValue","setOriginalValue","inputRefs","useRef","inputContainerRef","captionRef","autocompleteRef","fieldPattern","getFieldPattern","placeholderValue","getPlaceholderValue","parts","widthValue","getSizeValueFromProp","undefined","isWebOTPEnabled","isWebOTPSupported","getLastActiveIndex","length","lastEmptyIndex","findIndex","digit","codeSetter","newCode","originalCode","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","Boolean","slice","forEach","element","activeIndex","Math","min","handleFullCodeEnter","useCallback","fullCode","useCodeHook","useDidMountEffect","handleCodeError","currentCode","useEffect","autocompleteCode","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","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, useEffect, 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 = typeof outerValue === 'string' ? getCodeValue(codeLength, outerValue) : innerValue;\n\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 const autocompleteRef = useRef<HTMLInputElement | 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 const originalCode = newCode.join('');\n\n setInnerValue(getCodeValue(codeLength, originalCode));\n setOriginalValue(originalCode);\n\n if (onChange) {\n onChange(originalCode);\n }\n };\n\n useWebOTP({\n codeString: originalValue,\n enableSMSAutoRead: autoComplete === 'one-time-code',\n disabled: Boolean(disabled),\n codeLength,\n codeSetter,\n onFullCodeEnter,\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 (!symbol) {\n return;\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 (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\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 useEffect(() => {\n if (disabled || !autocompleteRef.current) {\n return;\n }\n\n const autocompleteCode = autocompleteRef.current.value.split('');\n codeSetter(autocompleteCode);\n }, [autocompleteRef.current?.value, disabled]);\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 && (\n <HiddenInput ref={autocompleteRef} autoComplete={autoComplete} tabIndex={-1} {...rest} />\n )}\n </Root>\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","_autocompleteRef$curr","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","_useState3","join","_useState4","originalValue","setOriginalValue","inputRefs","useRef","inputContainerRef","captionRef","autocompleteRef","fieldPattern","getFieldPattern","placeholderValue","getPlaceholderValue","parts","widthValue","getSizeValueFromProp","undefined","isWebOTPEnabled","isWebOTPSupported","getLastActiveIndex","length","lastEmptyIndex","findIndex","digit","codeSetter","newCode","originalCode","useWebOTP","codeString","enableSMSAutoRead","Boolean","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","useEffect","autocompleteCode","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","codeFieldConfig","name","tag","layout","base","variations","css","viewCSS","sizeCSS","shapeCSS","disabledCSS","attrs","defaults"],"mappings":";;;;;;;;;;;;;;;;;;;;;IA2BaA,aAAa,GAAG,SAAhBA,aAAaA,CAAIC,IAA+C,EAAA;AAAA,EAAA,oBACzEC,UAAU,CACN,UAAAC,IAAA,EAwBIC,GAAG,EACF;AAAA,IAAA,IAAAC,qBAAA,CAAA;AAAA,IAAA,IAvBGC,SAAS,GAAAH,IAAA,CAATG,SAAS;MACFC,UAAU,GAAAJ,IAAA,CAAjBK,KAAK;MACLC,WAAW,GAAAN,IAAA,CAAXM,WAAW;MACXC,SAAS,GAAAP,IAAA,CAATO,SAAS;MAAAC,eAAA,GAAAR,IAAA,CACTS,UAAU;AAAVA,MAAAA,UAAU,GAAAD,eAAA,KAAG,KAAA,CAAA,GAAA,CAAC,GAAAA,eAAA;MACdE,OAAO,GAAAV,IAAA,CAAPU,OAAO;MAAAC,iBAAA,GAAAX,IAAA,CACPY,YAAY;AAAZA,MAAAA,YAAY,GAAAD,iBAAA,KAAG,KAAA,CAAA,GAAA,MAAM,GAAAA,iBAAA;MACrBE,KAAK,GAAAb,IAAA,CAALa,KAAK;MAAAC,UAAA,GAAAd,IAAA,CACLe,KAAK;AAALA,MAAAA,KAAK,GAAAD,UAAA,KAAG,KAAA,CAAA,GAAA,SAAS,GAAAA,UAAA;MACjBE,IAAI,GAAAhB,IAAA,CAAJgB,IAAI;MACJC,IAAI,GAAAjB,IAAA,CAAJiB,IAAI;MACJC,QAAQ,GAAAlB,IAAA,CAARkB,QAAQ;MACRC,OAAO,GAAAnB,IAAA,CAAPmB,OAAO;MAAAC,mBAAA,GAAApB,IAAA,CACPqB,cAAc;AAAdA,MAAAA,cAAc,GAAAD,mBAAA,KAAGE,KAAAA,CAAAA,GAAAA,mBAAmB,GAAAF,mBAAA;MAAAG,qBAAA,GAAAvB,IAAA,CACpCwB,iBAAiB;AAAjBA,MAAAA,iBAAiB,GAAAD,qBAAA,KAAG,KAAA,CAAA,GAAA,eAAe,GAAAA,qBAAA;MAAAE,qBAAA,GAAAzB,IAAA,CACnC0B,iBAAiB;AAAjBA,MAAAA,iBAAiB,GAAAD,qBAAA,KAAG,KAAA,CAAA,GAAA,aAAa,GAAAA,qBAAA;MAAAE,iBAAA,GAAA3B,IAAA,CACjC4B,YAAY;AAAZA,MAAAA,YAAY,GAAAD,iBAAA,KAAG,KAAA,CAAA,GAAA,eAAe,GAAAA,iBAAA;MAC9BE,UAAU,GAAA7B,IAAA,CAAV6B,UAAU;MACVC,QAAQ,GAAA9B,IAAA,CAAR8B,QAAQ;MACRC,eAAe,GAAA/B,IAAA,CAAf+B,eAAe;AACZC,MAAAA,IAAI,GAAAC,wBAAA,CAAAjC,IAAA,EAAAkC,SAAA,CAAA,CAAA;IAIX,IAAAC,SAAA,GAAoCC,QAAQ,CAAgBC,YAAY,CAAC5B,UAAU,EAAE,EAAE,CAAC,CAAC;MAAA6B,UAAA,GAAAC,cAAA,CAAAJ,SAAA,EAAA,CAAA,CAAA;AAAlFK,MAAAA,UAAU,GAAAF,UAAA,CAAA,CAAA,CAAA;AAAEG,MAAAA,aAAa,GAAAH,UAAA,CAAA,CAAA,CAAA,CAAA;AAChC,IAAA,IAAMI,IAAI,GAAG,OAAOtC,UAAU,KAAK,QAAQ,GAAGiC,YAAY,CAAC5B,UAAU,EAAEL,UAAU,CAAC,GAAGoC,UAAU,CAAA;IAE/F,IAAAG,UAAA,GAA0CP,QAAQ,CAASM,IAAI,CAACE,IAAI,CAAC,EAAE,CAAC,CAAC;MAAAC,UAAA,GAAAN,cAAA,CAAAI,UAAA,EAAA,CAAA,CAAA;AAAlEG,MAAAA,aAAa,GAAAD,UAAA,CAAA,CAAA,CAAA;AAAEE,MAAAA,gBAAgB,GAAAF,UAAA,CAAA,CAAA,CAAA,CAAA;AAEtC,IAAA,IAAMG,SAAS,GAAGC,MAAM,CAA0B,EAAE,CAAC,CAAA;AACrD,IAAA,IAAMC,iBAAiB,GAAGD,MAAM,CAAwB,IAAI,CAAC,CAAA;AAC7D,IAAA,IAAME,UAAU,GAAGF,MAAM,CAAwB,IAAI,CAAC,CAAA;AACtD,IAAA,IAAMG,eAAe,GAAGH,MAAM,CAA0B,IAAI,CAAC,CAAA;AAE7D,IAAA,IAAMI,YAAY,GAAGC,eAAe,CAACjC,cAAc,CAAC,CAAA;AACpD,IAAA,IAAMkC,gBAAgB,GAAGC,mBAAmB,CAAC/C,UAAU,EAAEH,WAAW,CAAC,CAAA;IACrE,IAAMmD,KAAK,GAAGhD,UAAU,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IAEtC,IAAMiD,UAAU,GAAG7C,KAAK,GAAG8C,oBAAoB,CAAC9C,KAAK,EAAE,KAAK,CAAC,GAAG+C,SAAS,CAAA;IACzE,IAAMC,eAAe,GAAGjC,YAAY,KAAK,eAAe,IAAI,CAACV,QAAQ,IAAI4C,iBAAiB,EAAE,CAAA;AAE5F,IAAA,IAAMC,kBAAkB,GAAG,SAArBA,kBAAkBA,GAAS;MAC7B,IAAIrB,IAAI,CAACsB,MAAM,IAAItB,IAAI,CAACsB,MAAM,GAAGvD,UAAU,EAAE;QACzC,OAAOiC,IAAI,CAACsB,MAAM,CAAA;AACtB,OAAA;AAEA,MAAA,IAAMC,cAAc,GAAGvB,IAAI,CAACwB,SAAS,CAAC,UAACC,KAAK,EAAA;QAAA,OAAKA,KAAK,KAAK,EAAE,CAAA;OAAC,CAAA,CAAA;MAC9D,OAAOF,cAAc,IAAI,CAAC,GAAGA,cAAc,GAAGxD,UAAU,GAAG,CAAC,CAAA;KAC/D,CAAA;AAED,IAAA,IAAM2D,UAAU,GAAG,SAAbA,UAAUA,CAAIC,OAAsB,EAAK;AAC3C,MAAA,IAAMC,YAAY,GAAGD,OAAO,CAACzB,IAAI,CAAC,EAAE,CAAC,CAAA;AAErCH,MAAAA,aAAa,CAACJ,YAAY,CAAC5B,UAAU,EAAE6D,YAAY,CAAC,CAAC,CAAA;MACrDvB,gBAAgB,CAACuB,YAAY,CAAC,CAAA;AAE9B,MAAA,IAAIxC,QAAQ,EAAE;QACVA,QAAQ,CAACwC,YAAY,CAAC,CAAA;AAC1B,OAAA;KACH,CAAA;AAEDC,IAAAA,SAAS,CAAC;AACNC,MAAAA,UAAU,EAAE1B,aAAa;MACzB2B,iBAAiB,EAAE7C,YAAY,KAAK,eAAe;AACnDV,MAAAA,QAAQ,EAAEwD,OAAO,CAACxD,QAAQ,CAAC;AAC3BT,MAAAA,UAAU,EAAVA,UAAU;AACV2D,MAAAA,UAAU,EAAVA,UAAU;AACVrC,MAAAA,eAAe,EAAfA,eAAAA;AACJ,KAAC,CAAC,CAAA;AAEF,IAAA,IAAM4C,WAAW,GAAG,SAAdA,WAAWA,GAAS;AACtB,MAAA,IAAIzD,QAAQ,EAAE;AACV,QAAA,OAAA;AACJ,OAAA;AAEA,MAAA,IAAM0D,eAAe,GAAGb,kBAAkB,EAAE,CAAA;AAE5C,MAAA,IAAIf,SAAS,CAAC6B,OAAO,CAACD,eAAe,CAAC,EAAE;QACpC5B,SAAS,CAAC6B,OAAO,CAACD,eAAe,CAAC,CAACE,KAAK,EAAE,CAAA;AAC9C,OAAA;KACH,CAAA;IAED,IAAMC,eAAe,GAAG,SAAlBA,eAAeA,CAAIC,KAAsC,EAAEC,KAAa,EAAK;AAC/E,MAAA,IAAI/D,QAAQ,EAAE;AACV,QAAA,OAAA;AACJ,OAAA;AAEA,MAAA,IAAQgE,GAAG,GAAKF,KAAK,CAAbE,GAAG,CAAA;AACX,MAAA,IAAIC,cAAc,CAACC,QAAQ,CAACF,GAAG,CAAC,EAAE;QAC9BF,KAAK,CAACK,cAAc,EAAE,CAAA;AAEtB,QAAA,OAAA;AACJ,OAAA;MAEA,IAAIH,GAAG,KAAKI,aAAa,EAAE;QACvB,IAAIL,KAAK,GAAG,CAAC,EAAE;AAAA,UAAA,IAAAM,qBAAA,CAAA;AACX,UAAA,IAAMlB,OAAO,GAAAmB,kBAAA,CAAO9C,IAAI,CAAC,CAAA;AAEzB2B,UAAAA,OAAO,CAACY,KAAK,CAAC,GAAG,EAAE,CAAA;UAEnB,IAAIA,KAAK,IAAIxE,UAAU,GAAG,CAAC,IAAIiC,IAAI,CAACuC,KAAK,CAAC,EAAE;YACxCb,UAAU,CAACC,OAAO,CAAC,CAAA;AACnB,YAAA,OAAA;AACJ,WAAA;AAEA,UAAA,IAAI,CAAC3B,IAAI,CAACuC,KAAK,CAAC,EAAE;AAAA,YAAA,IAAAQ,kBAAA,CAAA;AACdpB,YAAAA,OAAO,CAACY,KAAK,GAAG,CAAC,CAAC,GAAG,EAAE,CAAA;AACvB,YAAA,CAAAQ,kBAAA,GAAAzC,SAAS,CAAC6B,OAAO,CAACI,KAAK,GAAG,CAAC,CAAC,cAAAQ,kBAAA,KAAA,KAAA,CAAA,IAA5BA,kBAAA,CAA8BX,KAAK,EAAE,CAAA;AACzC,WAAA;UAEA,CAAAS,qBAAA,GAAAvC,SAAS,CAAC6B,OAAO,CAACI,KAAK,CAAC,MAAAM,IAAAA,IAAAA,qBAAA,eAAxBA,qBAAA,CAA0BG,SAAS,CAACC,MAAM,CAACC,OAAO,CAACC,SAAS,CAAC,CAAA;UAC7DzB,UAAU,CAACC,OAAO,CAAC,CAAA;AACvB,SAAA;AACJ,OAAA;KACH,CAAA;IAED,IAAMyB,YAAY,GAAG,SAAfA,YAAYA,CAAId,KAAoC,EAAEC,KAAa,EAAK;AAAA,MAAA,IAAAc,sBAAA,CAAA;AAC1E,MAAA,IAAI7E,QAAQ,EAAE;AACV,QAAA,OAAA;AACJ,OAAA;AAEA,MAAA,IAAM8E,SAAS,GAAGhB,KAAK,CAACiB,aAAa,CAAC5F,KAAK,CAAA;MAC3C,IAAM6F,MAAM,GAAGF,SAAS,CAACG,MAAM,CAACH,SAAS,CAAChC,MAAM,GAAG,CAAC,CAAC,CAAA;AACrD,MAAA,IAAMK,OAAO,GAAAmB,kBAAA,CAAO9C,IAAI,CAAC,CAAA;MAEzB,CAAAqD,sBAAA,GAAA/C,SAAS,CAAC6B,OAAO,CAACI,KAAK,CAAC,MAAAc,IAAAA,IAAAA,sBAAA,eAAxBA,sBAAA,CAA0BL,SAAS,CAACC,MAAM,CAACC,OAAO,CAACC,SAAS,CAAC,CAAA;AAC7D,MAAA,IAAI1E,OAAO,EAAE;AAAA,QAAA,IAAAiF,mBAAA,CAAA;AACT,QAAA,CAAAA,mBAAA,GAAAjD,UAAU,CAAC0B,OAAO,cAAAuB,mBAAA,KAAA,KAAA,CAAA,IAAlBA,mBAAA,CAAoBV,SAAS,CAACC,MAAM,CAACC,OAAO,CAACS,YAAY,CAAC,CAAA;QAE1D,IAAI3E,iBAAiB,KAAK,MAAM,EAAE;AAAA,UAAA,IAAA4E,qBAAA,CAAA;UAC9B,CAAAA,qBAAA,GAAApD,iBAAiB,CAAC2B,OAAO,MAAAyB,IAAAA,IAAAA,qBAAA,eAAzBA,qBAAA,CAA2BZ,SAAS,CAACC,MAAM,CAACC,OAAO,CAACW,SAAS,EAAEX,OAAO,CAACY,kBAAkB,CAAC,CAAA;AAC9F,SAAA;AAEA,QAAA,IAAI3E,UAAU,EAAE;UACZA,UAAU,CAAC,KAAK,CAAC,CAAA;AACrB,SAAA;AACJ,OAAA;MAEA,IAAI,CAACqE,MAAM,EAAE;AACT,QAAA,OAAA;AACJ,OAAA;MAEA,IAAI,CAAC7C,YAAY,EAAE;AACfgB,QAAAA,OAAO,CAACY,KAAK,CAAC,GAAGiB,MAAM,CAAA;QACvB9B,UAAU,CAACC,OAAO,CAAC,CAAA;AAEnB,QAAA,IAAI6B,MAAM,IAAIjB,KAAK,GAAGxE,UAAU,GAAG,CAAC,EAAE;AAAA,UAAA,IAAAgG,mBAAA,CAAA;AAClC,UAAA,CAAAA,mBAAA,GAAAzD,SAAS,CAAC6B,OAAO,CAACI,KAAK,GAAG,CAAC,CAAC,cAAAwB,mBAAA,KAAA,KAAA,CAAA,IAA5BA,mBAAA,CAA8B3B,KAAK,EAAE,CAAA;AACzC,SAAA;AAEA,QAAA,OAAA;AACJ,OAAA;AAEA,MAAA,IAAIzB,YAAY,CAACqD,IAAI,CAACR,MAAM,CAAC,EAAE;AAC3B7B,QAAAA,OAAO,CAACY,KAAK,CAAC,GAAGiB,MAAM,CAACC,MAAM,CAACD,MAAM,CAAClC,MAAM,GAAG,CAAC,CAAC,CAAA;QACjDI,UAAU,CAACC,OAAO,CAAC,CAAA;AAEnB,QAAA,IAAIY,KAAK,GAAGxE,UAAU,GAAG,CAAC,EAAE;AAAA,UAAA,IAAAkG,mBAAA,CAAA;AACxB,UAAA,CAAAA,mBAAA,GAAA3D,SAAS,CAAC6B,OAAO,CAACI,KAAK,GAAG,CAAC,CAAC,cAAA0B,mBAAA,KAAA,KAAA,CAAA,IAA5BA,mBAAA,CAA8B7B,KAAK,EAAE,CAAA;AACzC,SAAA;AACJ,OAAC,MAAM;AACHT,QAAAA,OAAO,CAACY,KAAK,CAAC,GAAGiB,MAAM,CAACC,MAAM,CAACD,MAAM,CAAClC,MAAM,GAAG,CAAC,CAAC,CAAA;AAEjD4C,QAAAA,eAAe,CAAC;AACZC,UAAAA,aAAa,EAAEX,MAAM;AACrB1E,UAAAA,iBAAiB,EAAjBA,iBAAiB;AACjByD,UAAAA,KAAK,EAALA,KAAK;AACLZ,UAAAA,OAAO,EAAPA,OAAO;AACPrB,UAAAA,SAAS,EAATA,SAAS;AACTP,UAAAA,aAAa,EAAbA,aAAa;AACb2B,UAAAA,UAAU,EAAVA,UAAU;AACVtC,UAAAA,QAAQ,EAARA,QAAAA;AACJ,SAAC,CAAC,CAAA;AACN,OAAA;KACH,CAAA;AAED,IAAA,IAAMgF,WAAW,GAAG,SAAdA,WAAWA,CAAI9B,KAAuC,EAAK;AAAA,MAAA,IAAA+B,qBAAA,CAAA;AAC7D,MAAA,IAAM1C,OAAO,GAAAmB,kBAAA,CAAO9C,IAAI,CAAC,CAAA;AAEzB,MAAA,IAAIxB,QAAQ,EAAE;AACV,QAAA,OAAA;AACJ,OAAA;MAEA8D,KAAK,CAACK,cAAc,EAAE,CAAA;MAEtB,IAAM2B,OAAO,GAAGhC,KAAK,CAACiC,aAAa,CAACC,OAAO,CAAC,YAAY,CAAC,CAAA;AAEzD,MAAA,IAAMC,UAAU,GAAG,CAAC9D,YAAY,GAC1B2D,OAAO,CACFI,KAAK,CAAC,EAAE,CAAC,CACTC,GAAG,CAAC,UAACC,IAAI,EAAA;AAAA,QAAA,IAAAC,WAAA,CAAA;AAAA,QAAA,OAAK,EAAAA,WAAA,GAAAD,IAAI,CAACE,KAAK,CAACnE,YAAY,CAAC,MAAA,IAAA,IAAAkE,WAAA,KAAxBA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,WAAA,CAA2B,CAAC,CAAC,KAAI,EAAE,CAAA;OAAC,CAAA,CAClDE,MAAM,CAAC/C,OAAO,CAAC,IAAI,EAAE,GAC1BsC,OAAO,CAACI,KAAK,CAAC,EAAE,CAAC,EACrBM,KAAK,CAAC,CAAC,EAAEjH,UAAU,CAAC,CAAA;AAEtB0G,MAAAA,UAAU,CAACQ,OAAO,CAAC,UAACC,OAAO,EAAE3C,KAAK,EAAK;AACnCZ,QAAAA,OAAO,CAACY,KAAK,CAAC,GAAG2C,OAAO,CAAA;AAC5B,OAAC,CAAC,CAAA;AAEF,MAAA,IAAMC,WAAW,GAAGC,IAAI,CAACC,GAAG,CAACZ,UAAU,CAACnD,MAAM,EAAEvD,UAAU,GAAG,CAAC,CAAC,CAAA;AAC/D,MAAA,CAAAsG,qBAAA,GAAA/D,SAAS,CAAC6B,OAAO,CAACgD,WAAW,CAAC,MAAA,IAAA,IAAAd,qBAAA,KAA9BA,KAAAA,CAAAA,IAAAA,qBAAA,CAAgCjC,KAAK,EAAE,CAAA;MAEvCV,UAAU,CAACC,OAAO,CAAC,CAAA;KACtB,CAAA;AAED,IAAA,IAAM2D,mBAAmB,GAAGC,WAAW,CAAC,UAACC,QAAgB,EAAK;AAC1D,MAAA,IAAInG,eAAe,EAAE;QACjBA,eAAe,CAACmG,QAAQ,CAAC,CAAA;AAC7B,OAAA;KACH,EAAE,EAAE,CAAC,CAAA;AAENC,IAAAA,WAAW,CAAC;AACRnF,MAAAA,SAAS,EAATA,SAAS;AACTvC,MAAAA,UAAU,EAAVA,UAAU;AACVS,MAAAA,QAAQ,EAARA,QAAQ;AACRX,MAAAA,SAAS,EAATA,SAAS;AACTuC,MAAAA,aAAa,EAAbA,aAAa;AACbiB,MAAAA,kBAAkB,EAAlBA,kBAAkB;AAClBiE,MAAAA,mBAAmB,EAAnBA,mBAAAA;AACJ,KAAC,CAAC,CAAA;AAEFI,IAAAA,iBAAiB,CAAC,YAAM;AACpB,MAAA,IAAIjH,OAAO,EAAE;AACTkH,QAAAA,eAAe,CAAC;AACZ5H,UAAAA,UAAU,EAAVA,UAAU;AACViB,UAAAA,iBAAiB,EAAjBA,iBAAiB;AACjB4G,UAAAA,WAAW,EAAE5F,IAAI;AACjBM,UAAAA,SAAS,EAATA,SAAS;AACTE,UAAAA,iBAAiB,EAAjBA,iBAAiB;AACjBC,UAAAA,UAAU,EAAVA,UAAU;AACVV,UAAAA,aAAa,EAAbA,aAAa;AACb2B,UAAAA,UAAU,EAAVA,UAAAA;AACJ,SAAC,CAAC,CAAA;AACN,OAAA;AACJ,KAAC,EAAE,CAACjD,OAAO,CAAC,CAAC,CAAA;AAEboH,IAAAA,SAAS,CAAC,YAAM;AACZ,MAAA,IAAIrH,QAAQ,IAAI,CAACkC,eAAe,CAACyB,OAAO,EAAE;AACtC,QAAA,OAAA;AACJ,OAAA;MAEA,IAAM2D,gBAAgB,GAAGpF,eAAe,CAACyB,OAAO,CAACxE,KAAK,CAAC+G,KAAK,CAAC,EAAE,CAAC,CAAA;MAChEhD,UAAU,CAACoE,gBAAgB,CAAC,CAAA;AAChC,KAAC,EAAE,CAAAtI,CAAAA,qBAAA,GAACkD,eAAe,CAACyB,OAAO,MAAA,IAAA,IAAA3E,qBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAvBA,qBAAA,CAAyBG,KAAK,EAAEa,QAAQ,CAAC,CAAC,CAAA;AAE9C,IAAA,oBACIuH,KAAA,CAAAC,aAAA,CAAAD,KAAA,CAAAE,QAAA,EACIF,IAAAA,eAAAA,KAAA,CAAAC,aAAA,CAAC5I,IAAI,EAAA8I,QAAA,CAAA;AACD3I,MAAAA,GAAG,EAAEA,GAAI;AACTe,MAAAA,IAAI,EAAEA,IAAK;AACXC,MAAAA,IAAI,EAAEA,IAAK;AACXF,MAAAA,KAAK,EAAEA,KAAM;AACbG,MAAAA,QAAQ,EAAEA,QAAS;AACnB2H,MAAAA,OAAO,EAAElE,WAAY;AACrBxE,MAAAA,SAAS,EAAE2I,GAAG,CAAC3I,SAAS,EAAA4I,eAAA,CAAA,EAAA,EACnBnD,OAAO,CAACoD,gBAAgB,EAAGpI,YAAY,KAAK,MAAM,CACtD,CAAA;AAAE,KAAA,EACE,CAACiD,eAAe,IAAAoF,cAAA,CAASjH,EAAAA,EAAAA,IAAI,CAAE,CAAA,eAEpCyG,KAAA,CAAAC,aAAA,CAACQ,WAAW,EAAA;AAACjJ,MAAAA,GAAG,EAAEiD,iBAAAA;AAAkB,KAAA,EAC/BsC,kBAAA,CAAI2D,KAAK,CAAC1F,KAAK,CAAC,CAAE4D,CAAAA,GAAG,CAAC,UAAC+B,CAAC,EAAEC,SAAS,EAAA;AAAA,MAAA,oBAChCZ,KAAA,CAAAC,aAAA,CAACC,QAAQ,EAAA;AAACzD,QAAAA,GAAG,EAAEmE,SAAAA;AAAU,OAAA,eACrBZ,KAAA,CAAAC,aAAA,CAACY,SAAS,EAAA;AAACC,QAAAA,IAAI,EAAC,OAAA;AAAO,OAAA,EAClB/D,kBAAA,CAAI2D,KAAK,CAAC1I,UAAU,GAAGgD,KAAK,CAAC,CAAA,CAAE4D,GAAG,CAAC,UAAC+B,CAAC,EAAEI,CAAC,EAAK;QAC1C,IAAMC,iBAAiB,GAAGD,CAAC,GAAI/I,UAAU,GAAGgD,KAAK,GAAI4F,SAAS,CAAA;AAE9D,QAAA,oBACIZ,KAAA,CAAAC,aAAA,CAACgB,SAAS,EAAAd,QAAA,CAAA;AACN1D,UAAAA,GAAG,EAAEmE,SAAS,GAAGG,CAAC,GAAGH,SAAS,GAAGG,CAAE;AACnCvJ,UAAAA,GAAG,EAAE,SAAAA,GAAC2H,CAAAA,OAAyB,EAAK;AAChC5E,YAAAA,SAAS,CAAC6B,OAAO,CAAC4E,iBAAiB,CAAC,GAAG7B,OAAO,CAAA;WAChD;AACFzH,UAAAA,SAAS,EAAE2I,GAAG,CAAAC,eAAA,CAAAA,eAAA,CACTnD,EAAAA,EAAAA,OAAO,CAAC+D,SAAS,EAAG5I,KAAK,KAAK,WAAW,CACzC6E,EAAAA,OAAO,CAACgE,YAAY,EACjB,CAAC1I,QAAQ,IAAIuI,iBAAiB,IAAI3G,aAAa,CAACkB,MAAM,CAC7D,CAAE;AACH3D,UAAAA,KAAK,EAAEqC,IAAI,CAAC+G,iBAAiB,CAAC,IAAI,EAAG;AACrC3H,UAAAA,QAAQ,EAAE,SAAAA,QAAC+H,CAAAA,CAAgC,EAAK;AAC5C/D,YAAAA,YAAY,CAAC+D,CAAC,EAAEJ,iBAAiB,CAAC,CAAA;WACpC;AACFK,UAAAA,SAAS,EAAE,SAAAA,SAACD,CAAAA,CAAkC,EAAK;AAC/C9E,YAAAA,eAAe,CAAC8E,CAAC,EAAEJ,iBAAiB,CAAC,CAAA;WACvC;AACFM,UAAAA,OAAO,EAAEjD,WAAY;AACrBkD,UAAAA,QAAQ,EACJ,CAAC9I,QAAQ,IAAI4B,aAAa,CAACkB,MAAM,KAAKyF,iBAAiB,GAAG,CAAC,GAAG,CAAC,CAAA;AAClE,SAAA,EACIlG,gBAAgB,IAAI;UACrBjD,WAAW,EAAEiD,gBAAgB,CAACkG,iBAAiB,CAAA;AACnD,SAAC,CACJ,CAAC,CAAA;OAET,CACM,CAAC,EACXJ,SAAS,KAAK5F,KAAK,GAAG,CAAC,KAAAwG,UAAA,KAAAA,UAAA,gBAAIxB,KAAA,CAAAC,aAAA,CAACwB,SAAS,EAAA,IAAE,CAAC,CAAA,CACnC,CAAC,CAAA;KACd,CACQ,CAAC,EAEbxJ,OAAO,iBACJ+H,KAAA,CAAAC,aAAA,CAACyB,cAAc,EAAA;AAAClK,MAAAA,GAAG,EAAEkD,UAAW;AAACvC,MAAAA,YAAY,EAAEA,YAAa;AAAC8C,MAAAA,UAAU,EAAEA,UAAAA;KACpEhD,EAAAA,OACW,CACnB,EAEAmD,eAAe,iBACZ4E,KAAA,CAAAC,aAAA,CAAC0B,WAAW,EAAAxB,QAAA,CAAA;AAAC3I,MAAAA,GAAG,EAAEmD,eAAgB;AAACxB,MAAAA,YAAY,EAAEA,YAAa;AAACoI,MAAAA,QAAQ,EAAE,CAAC,CAAA;AAAE,KAAA,EAAKhI,IAAI,CAAG,CAE1F,CACR,CAAC,CAAA;AAEX,GACJ,CAAC,CAAA;AAAA,EAAA;AAEE,IAAMqI,eAAe,GAAG;AAC3BC,EAAAA,IAAI,EAAE,WAAW;AACjBC,EAAAA,GAAG,EAAE,KAAK;AACVC,EAAAA,MAAM,EAAE3K,aAAa;AACrB4K,EAAAA,IAAI,EAAJA,IAAI;AACJC,EAAAA,UAAU,EAAE;AACR1J,IAAAA,IAAI,EAAE;AACF2J,MAAAA,GAAG,EAAEC,MAAAA;KACR;AACD3J,IAAAA,IAAI,EAAE;AACF0J,MAAAA,GAAG,EAAEE,MAAAA;KACR;AACD9J,IAAAA,KAAK,EAAE;AACH4J,MAAAA,GAAG,EAAEG,MAAAA;KACR;AACD5J,IAAAA,QAAQ,EAAE;AACNyJ,MAAAA,GAAG,EAAEI,MAAW;AAChBC,MAAAA,KAAK,EAAE,IAAA;AACX,KAAA;GACH;AACDC,EAAAA,QAAQ,EAAE;AACNhK,IAAAA,IAAI,EAAE,GAAG;AACTD,IAAAA,IAAI,EAAE,SAAS;AACfD,IAAAA,KAAK,EAAE,SAAA;AACX,GAAA;AACJ;;;;"}
@@ -0,0 +1,91 @@
1
+ import { asyncToGenerator as _asyncToGenerator, regeneratorRuntime as _regeneratorRuntime } from '../../../_virtual/_rollupPluginBabelHelpers.js';
2
+ import { useRef, useCallback, useEffect } from 'react';
3
+ import { isWebOTPSupported } from '../utils/isWebOTPSupported.js';
4
+ import { getCodeValue } from '../utils/initialValuesHelper.js';
5
+
6
+ var isOTPCredential = function isOTPCredential(credential) {
7
+ return credential !== null && 'code' in credential;
8
+ };
9
+ var useWebOTP = function useWebOTP(_ref) {
10
+ var codeString = _ref.codeString,
11
+ enableSMSAutoRead = _ref.enableSMSAutoRead,
12
+ disabled = _ref.disabled,
13
+ codeLength = _ref.codeLength,
14
+ codeSetter = _ref.codeSetter,
15
+ onFullCodeEnter = _ref.onFullCodeEnter;
16
+ var abortControllerRef = useRef(null);
17
+ var startWebOTPListener = useCallback(/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
18
+ var otp, otpCode, newCode;
19
+ return _regeneratorRuntime().wrap(function _callee$(_context) {
20
+ while (1) switch (_context.prev = _context.next) {
21
+ case 0:
22
+ if (!(!enableSMSAutoRead || disabled || !isWebOTPSupported())) {
23
+ _context.next = 2;
24
+ break;
25
+ }
26
+ return _context.abrupt("return");
27
+ case 2:
28
+ if (abortControllerRef.current) {
29
+ abortControllerRef.current.abort();
30
+ }
31
+ abortControllerRef.current = new AbortController();
32
+ _context.prev = 4;
33
+ _context.next = 7;
34
+ return navigator.credentials.get({
35
+ otp: {
36
+ transport: ['sms']
37
+ },
38
+ signal: abortControllerRef.current.signal
39
+ });
40
+ case 7:
41
+ otp = _context.sent;
42
+ if (otp && isOTPCredential(otp) && otp.code) {
43
+ otpCode = otp.code;
44
+ if (otpCode.length === codeLength) {
45
+ newCode = getCodeValue(codeLength, otpCode);
46
+ codeSetter(newCode);
47
+ if (onFullCodeEnter) {
48
+ onFullCodeEnter(otpCode);
49
+ }
50
+ }
51
+ }
52
+ _context.next = 14;
53
+ break;
54
+ case 11:
55
+ _context.prev = 11;
56
+ _context.t0 = _context["catch"](4);
57
+ if (_context.t0 instanceof DOMException) {
58
+ if (_context.t0.name !== 'AbortError' && _context.t0.name !== 'NotAllowedError') {
59
+ console.warn('Web OTP API error:', _context.t0);
60
+ }
61
+ } else if (_context.t0 instanceof Error) {
62
+ console.warn('Web OTP API error:', _context.t0);
63
+ } else {
64
+ console.warn('Unknown Web OTP API error:', _context.t0);
65
+ }
66
+ case 14:
67
+ case "end":
68
+ return _context.stop();
69
+ }
70
+ }, _callee, null, [[4, 11]]);
71
+ })), [enableSMSAutoRead, disabled, codeLength, onFullCodeEnter]);
72
+ var stopWebOTPListener = useCallback(function () {
73
+ if (abortControllerRef.current) {
74
+ abortControllerRef.current.abort();
75
+ abortControllerRef.current = null;
76
+ }
77
+ }, []);
78
+ useEffect(function () {
79
+ if (isWebOTPSupported() && codeString === '' && enableSMSAutoRead && !disabled) {
80
+ startWebOTPListener();
81
+ } else {
82
+ stopWebOTPListener();
83
+ }
84
+ return function () {
85
+ stopWebOTPListener();
86
+ };
87
+ }, [codeString, enableSMSAutoRead, disabled, startWebOTPListener, stopWebOTPListener]);
88
+ };
89
+
90
+ export { useWebOTP };
91
+ //# sourceMappingURL=useWebOTP.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useWebOTP.js","sources":["../../../../src/components/CodeField/hooks/useWebOTP.ts"],"sourcesContent":["import { useCallback, useEffect, useRef } from 'react';\n\nimport { getCodeValue, isWebOTPSupported } from '../utils';\n\ntype UseWebOTPProps = {\n codeString: string;\n enableSMSAutoRead: boolean;\n disabled: boolean;\n codeLength: number;\n codeSetter: (newCode: Array<string>) => void;\n onFullCodeEnter?: (code: string) => void;\n};\n\ntype OTPTransport = 'sms';\n\ninterface OTPCredential extends Credential {\n code: string;\n}\n\ndeclare global {\n interface CredentialRequestOptions {\n otp?: {\n transport: OTPTransport[];\n };\n signal?: AbortSignal;\n }\n}\n\nconst isOTPCredential = (credential: Credential | null): credential is OTPCredential => {\n return credential !== null && 'code' in credential;\n};\n\nexport const useWebOTP = ({\n codeString,\n enableSMSAutoRead,\n disabled,\n codeLength,\n codeSetter,\n onFullCodeEnter,\n}: UseWebOTPProps) => {\n const abortControllerRef = useRef<AbortController | null>(null);\n\n const startWebOTPListener = useCallback(async () => {\n if (!enableSMSAutoRead || disabled || !isWebOTPSupported()) {\n return;\n }\n\n if (abortControllerRef.current) {\n abortControllerRef.current.abort();\n }\n\n abortControllerRef.current = new AbortController();\n\n try {\n const otp = await navigator.credentials.get({\n otp: { transport: ['sms'] as OTPTransport[] },\n signal: abortControllerRef.current.signal,\n });\n\n if (otp && isOTPCredential(otp) && otp.code) {\n const otpCode = otp.code;\n\n if (otpCode.length === codeLength) {\n const newCode = getCodeValue(codeLength, otpCode);\n codeSetter(newCode);\n\n if (onFullCodeEnter) {\n onFullCodeEnter(otpCode);\n }\n }\n }\n } catch (err) {\n if (err instanceof DOMException) {\n if (err.name !== 'AbortError' && err.name !== 'NotAllowedError') {\n console.warn('Web OTP API error:', err);\n }\n } else if (err instanceof Error) {\n console.warn('Web OTP API error:', err);\n } else {\n console.warn('Unknown Web OTP API error:', err);\n }\n }\n }, [enableSMSAutoRead, disabled, codeLength, onFullCodeEnter]);\n\n const stopWebOTPListener = useCallback(() => {\n if (abortControllerRef.current) {\n abortControllerRef.current.abort();\n abortControllerRef.current = null;\n }\n }, []);\n\n useEffect(() => {\n if (isWebOTPSupported() && codeString === '' && enableSMSAutoRead && !disabled) {\n startWebOTPListener();\n } else {\n stopWebOTPListener();\n }\n\n return () => {\n stopWebOTPListener();\n };\n }, [codeString, enableSMSAutoRead, disabled, startWebOTPListener, stopWebOTPListener]);\n};\n"],"names":["isOTPCredential","credential","useWebOTP","_ref","codeString","enableSMSAutoRead","disabled","codeLength","codeSetter","onFullCodeEnter","abortControllerRef","useRef","startWebOTPListener","useCallback","_asyncToGenerator","_regeneratorRuntime","mark","_callee","otp","otpCode","newCode","wrap","_callee$","_context","prev","next","isWebOTPSupported","abrupt","current","abort","AbortController","navigator","credentials","get","transport","signal","sent","code","length","getCodeValue","t0","DOMException","name","console","warn","Error","stop","stopWebOTPListener","useEffect"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@salutejs/plasma-new-hope",
3
- "version": "0.336.0-canary.2210.17546691141.0",
3
+ "version": "0.336.0-canary.2210.17550717632.0",
4
4
  "description": "Salute Design System blueprint",
5
5
  "main": "cjs/index.js",
6
6
  "module": "es/index.js",
@@ -137,5 +137,5 @@
137
137
  "sideEffects": [
138
138
  "*.css"
139
139
  ],
140
- "gitHead": "2655f37eacf1217feccd430765f880841ff9c64c"
140
+ "gitHead": "8a0e7f9f2a6ba0e6f731f49999833d445f411912"
141
141
  }
@@ -29,6 +29,7 @@ var _base = require("./variations/_view/base");
29
29
  var _base1 = require("./variations/_size/base");
30
30
  var _base2 = require("./variations/_shape/base");
31
31
  var _base3 = require("./variations/_disabled/base");
32
+ var _useWebOTP = require("./hooks/useWebOTP");
32
33
  function _array_like_to_array(arr, len) {
33
34
  if (len == null || len > arr.length) len = arr.length;
34
35
  for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
@@ -216,7 +217,6 @@ var codeFieldRoot = function(Root) {
216
217
  var _useState = _sliced_to_array((0, _react.useState)((0, _utils1.getCodeValue)(codeLength, '')), 2), innerValue = _useState[0], setInnerValue = _useState[1];
217
218
  var code = typeof outerValue === 'string' ? (0, _utils1.getCodeValue)(codeLength, outerValue) : innerValue;
218
219
  var _useState1 = _sliced_to_array((0, _react.useState)(code.join('')), 2), originalValue = _useState1[0], setOriginalValue = _useState1[1];
219
- // const [otpVal, setOtpVal] = useState<Credential | null>(null);
220
220
  var inputRefs = (0, _react.useRef)([]);
221
221
  var inputContainerRef = (0, _react.useRef)(null);
222
222
  var captionRef = (0, _react.useRef)(null);
@@ -242,19 +242,15 @@ var codeFieldRoot = function(Root) {
242
242
  if (onChange) {
243
243
  onChange(originalCode);
244
244
  }
245
- // if (originalCode.length > 0) {
246
- // stopWebOTPListener();
247
- // }
248
245
  };
249
- // const { startWebOTPListener, stopWebOTPListener } = useWebOTP({
250
- // codeString: originalValue,
251
- // enableSMSAutoRead: autoComplete === 'one-time-code',
252
- // disabled: Boolean(disabled),
253
- // codeLength,
254
- // codeSetter,
255
- // onFullCodeEnter,
256
- // setOtpVal,
257
- // });
246
+ (0, _useWebOTP.useWebOTP)({
247
+ codeString: originalValue,
248
+ enableSMSAutoRead: autoComplete === 'one-time-code',
249
+ disabled: Boolean(disabled),
250
+ codeLength: codeLength,
251
+ codeSetter: codeSetter,
252
+ onFullCodeEnter: onFullCodeEnter
253
+ });
258
254
  var handleClick = function() {
259
255
  if (disabled) {
260
256
  return;
@@ -368,7 +364,6 @@ var codeFieldRoot = function(Root) {
368
364
  if (onFullCodeEnter) {
369
365
  onFullCodeEnter(fullCode);
370
366
  }
371
- // startWebOTPListener();
372
367
  }, []);
373
368
  (0, _hooks1.useCodeHook)({
374
369
  inputRefs: inputRefs,
@@ -137,12 +137,11 @@ function _ts_generator(thisArg, body) {
137
137
  };
138
138
  }
139
139
  }
140
- // Type guard function to check if credential is OTPCredential
141
140
  var isOTPCredential = function(credential) {
142
141
  return credential !== null && 'code' in credential;
143
142
  };
144
143
  var useWebOTP = function(param) {
145
- var codeString = param.codeString, enableSMSAutoRead = param.enableSMSAutoRead, disabled = param.disabled, codeLength = param.codeLength, codeSetter = param.codeSetter, onFullCodeEnter = param.onFullCodeEnter, setOtpVal = param.setOtpVal;
144
+ var codeString = param.codeString, enableSMSAutoRead = param.enableSMSAutoRead, disabled = param.disabled, codeLength = param.codeLength, codeSetter = param.codeSetter, onFullCodeEnter = param.onFullCodeEnter;
146
145
  var abortControllerRef = (0, _react.useRef)(null);
147
146
  var startWebOTPListener = (0, _react.useCallback)(function() {
148
147
  return _async_to_generator(function() {
@@ -180,16 +179,11 @@ var useWebOTP = function(param) {
180
179
  ];
181
180
  case 2:
182
181
  otp = _state.sent();
183
- console.log('otp received', otp);
184
- setOtpVal(otp);
185
- // Type guard to check if it's an OTP credential
186
182
  if (otp && isOTPCredential(otp) && otp.code) {
187
183
  otpCode = otp.code;
188
- // Validate the OTP code length matches our expected length
189
184
  if (otpCode.length === codeLength) {
190
185
  newCode = (0, _utils.getCodeValue)(codeLength, otpCode);
191
186
  codeSetter(newCode);
192
- // Trigger full code enter callback
193
187
  if (onFullCodeEnter) {
194
188
  onFullCodeEnter(otpCode);
195
189
  }
@@ -249,8 +243,4 @@ var useWebOTP = function(param) {
249
243
  startWebOTPListener,
250
244
  stopWebOTPListener
251
245
  ]);
252
- return {
253
- startWebOTPListener: startWebOTPListener,
254
- stopWebOTPListener: stopWebOTPListener
255
- };
256
246
  };
@@ -1,16 +1 @@
1
1
  "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "Combobox", {
6
- enumerable: true,
7
- get: function() {
8
- return Combobox;
9
- }
10
- });
11
- var _engines = require("../../../engines");
12
- var _ = require("../../..");
13
- var _Comboboxconfig = require("./Combobox.config");
14
- var mergedConfig = (0, _engines.mergeConfig)(_.comboboxNewConfig, _Comboboxconfig.config);
15
- var ComboboxComponent = (0, _engines.component)(mergedConfig);
16
- var Combobox = ComboboxComponent;
@@ -124,7 +124,7 @@ import { base as viewCSS } from "./variations/_view/base";
124
124
  import { base as sizeCSS } from "./variations/_size/base";
125
125
  import { base as shapeCSS } from "./variations/_shape/base";
126
126
  import { base as disabledCSS } from "./variations/_disabled/base";
127
- // import { useWebOTP } from './hooks/useWebOTP';
127
+ import { useWebOTP } from "./hooks/useWebOTP";
128
128
  export var codeFieldRoot = function(Root) {
129
129
  return /*#__PURE__*/ forwardRef(function(_param, ref) {
130
130
  var className = _param.className, outerValue = _param.value, placeholder = _param.placeholder, autoFocus = _param.autoFocus, _param_codeLength = _param.codeLength, codeLength = _param_codeLength === void 0 ? 6 : _param_codeLength, caption = _param.caption, _param_captionAlign = _param.captionAlign, captionAlign = _param_captionAlign === void 0 ? 'left' : _param_captionAlign, width = _param.width, _param_shape = _param.shape, shape = _param_shape === void 0 ? 'default' : _param_shape, view = _param.view, size = _param.size, disabled = _param.disabled, isError = _param.isError, _param_allowedSymbols = _param.allowedSymbols, allowedSymbols = _param_allowedSymbols === void 0 ? ONLY_DIGITS_PATTERN : _param_allowedSymbols, _param_itemErrorBehavior = _param.itemErrorBehavior, itemErrorBehavior = _param_itemErrorBehavior === void 0 ? 'remove-symbol' : _param_itemErrorBehavior, _param_codeErrorBehavior = _param.codeErrorBehavior, codeErrorBehavior = _param_codeErrorBehavior === void 0 ? 'remove-code' : _param_codeErrorBehavior, _param_autoComplete = _param.autoComplete, autoComplete = _param_autoComplete === void 0 ? 'one-time-code' : _param_autoComplete, setIsError = _param.setIsError, onChange = _param.onChange, onFullCodeEnter = _param.onFullCodeEnter, rest = _object_without_properties(_param, [
@@ -153,7 +153,6 @@ export var codeFieldRoot = function(Root) {
153
153
  var _useState = _sliced_to_array(useState(getCodeValue(codeLength, '')), 2), innerValue = _useState[0], setInnerValue = _useState[1];
154
154
  var code = typeof outerValue === 'string' ? getCodeValue(codeLength, outerValue) : innerValue;
155
155
  var _useState1 = _sliced_to_array(useState(code.join('')), 2), originalValue = _useState1[0], setOriginalValue = _useState1[1];
156
- // const [otpVal, setOtpVal] = useState<Credential | null>(null);
157
156
  var inputRefs = useRef([]);
158
157
  var inputContainerRef = useRef(null);
159
158
  var captionRef = useRef(null);
@@ -179,19 +178,15 @@ export var codeFieldRoot = function(Root) {
179
178
  if (onChange) {
180
179
  onChange(originalCode);
181
180
  }
182
- // if (originalCode.length > 0) {
183
- // stopWebOTPListener();
184
- // }
185
181
  };
186
- // const { startWebOTPListener, stopWebOTPListener } = useWebOTP({
187
- // codeString: originalValue,
188
- // enableSMSAutoRead: autoComplete === 'one-time-code',
189
- // disabled: Boolean(disabled),
190
- // codeLength,
191
- // codeSetter,
192
- // onFullCodeEnter,
193
- // setOtpVal,
194
- // });
182
+ useWebOTP({
183
+ codeString: originalValue,
184
+ enableSMSAutoRead: autoComplete === 'one-time-code',
185
+ disabled: Boolean(disabled),
186
+ codeLength: codeLength,
187
+ codeSetter: codeSetter,
188
+ onFullCodeEnter: onFullCodeEnter
189
+ });
195
190
  var handleClick = function() {
196
191
  if (disabled) {
197
192
  return;
@@ -305,7 +300,6 @@ export var codeFieldRoot = function(Root) {
305
300
  if (onFullCodeEnter) {
306
301
  onFullCodeEnter(fullCode);
307
302
  }
308
- // startWebOTPListener();
309
303
  }, []);
310
304
  useCodeHook({
311
305
  inputRefs: inputRefs,
@@ -127,12 +127,11 @@ function _ts_generator(thisArg, body) {
127
127
  }
128
128
  import { useCallback, useEffect, useRef } from "react";
129
129
  import { getCodeValue, isWebOTPSupported } from "../utils";
130
- // Type guard function to check if credential is OTPCredential
131
130
  var isOTPCredential = function(credential) {
132
131
  return credential !== null && 'code' in credential;
133
132
  };
134
133
  export var useWebOTP = function(param) {
135
- var codeString = param.codeString, enableSMSAutoRead = param.enableSMSAutoRead, disabled = param.disabled, codeLength = param.codeLength, codeSetter = param.codeSetter, onFullCodeEnter = param.onFullCodeEnter, setOtpVal = param.setOtpVal;
134
+ var codeString = param.codeString, enableSMSAutoRead = param.enableSMSAutoRead, disabled = param.disabled, codeLength = param.codeLength, codeSetter = param.codeSetter, onFullCodeEnter = param.onFullCodeEnter;
136
135
  var abortControllerRef = useRef(null);
137
136
  var startWebOTPListener = useCallback(function() {
138
137
  return _async_to_generator(function() {
@@ -170,16 +169,11 @@ export var useWebOTP = function(param) {
170
169
  ];
171
170
  case 2:
172
171
  otp = _state.sent();
173
- console.log('otp received', otp);
174
- setOtpVal(otp);
175
- // Type guard to check if it's an OTP credential
176
172
  if (otp && isOTPCredential(otp) && otp.code) {
177
173
  otpCode = otp.code;
178
- // Validate the OTP code length matches our expected length
179
174
  if (otpCode.length === codeLength) {
180
175
  newCode = getCodeValue(codeLength, otpCode);
181
176
  codeSetter(newCode);
182
- // Trigger full code enter callback
183
177
  if (onFullCodeEnter) {
184
178
  onFullCodeEnter(otpCode);
185
179
  }
@@ -239,8 +233,4 @@ export var useWebOTP = function(param) {
239
233
  startWebOTPListener,
240
234
  stopWebOTPListener
241
235
  ]);
242
- return {
243
- startWebOTPListener: startWebOTPListener,
244
- stopWebOTPListener: stopWebOTPListener
245
- };
246
236
  };
@@ -1 +1 @@
1
- {"version":3,"file":"CodeField.d.ts","sourceRoot":"","sources":["../../../src/components/CodeField/CodeField.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAyE,MAAM,OAAO,CAAC;AAG9F,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAM7C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAkBxD,eAAO,MAAM,aAAa,SAAU,SAAS,CAAC,cAAc,EAAE,cAAc,CAAC;;;;;;;;;;;;;;;;;;;sLAsUxE,CAAC;AAEN,eAAO,MAAM,eAAe;;;mBAxUQ,SAAS,CAAC,cAAc,EAAE,cAAc,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiW5E,CAAC"}
1
+ {"version":3,"file":"CodeField.d.ts","sourceRoot":"","sources":["../../../src/components/CodeField/CodeField.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAyE,MAAM,OAAO,CAAC;AAG9F,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAM7C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAkBxD,eAAO,MAAM,aAAa,SAAU,SAAS,CAAC,cAAc,EAAE,cAAc,CAAC;;;;;;;;;;;;;;;;;;;sLA6TxE,CAAC;AAEN,eAAO,MAAM,eAAe;;;mBA/TQ,SAAS,CAAC,cAAc,EAAE,cAAc,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwV5E,CAAC"}
@@ -5,7 +5,6 @@ type UseWebOTPProps = {
5
5
  codeLength: number;
6
6
  codeSetter: (newCode: Array<string>) => void;
7
7
  onFullCodeEnter?: (code: string) => void;
8
- setOtpVal: React.Dispatch<React.SetStateAction<Credential | null>>;
9
8
  };
10
9
  type OTPTransport = 'sms';
11
10
  declare global {
@@ -16,9 +15,6 @@ declare global {
16
15
  signal?: AbortSignal;
17
16
  }
18
17
  }
19
- export declare const useWebOTP: ({ codeString, enableSMSAutoRead, disabled, codeLength, codeSetter, onFullCodeEnter, setOtpVal, }: UseWebOTPProps) => {
20
- startWebOTPListener: () => Promise<void>;
21
- stopWebOTPListener: () => void;
22
- };
18
+ export declare const useWebOTP: ({ codeString, enableSMSAutoRead, disabled, codeLength, codeSetter, onFullCodeEnter, }: UseWebOTPProps) => void;
23
19
  export {};
24
20
  //# sourceMappingURL=useWebOTP.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useWebOTP.d.ts","sourceRoot":"","sources":["../../../../src/components/CodeField/hooks/useWebOTP.ts"],"names":[],"mappings":"AAIA,KAAK,cAAc,GAAG;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC;IAC7C,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,SAAS,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC;CACtE,CAAC;AAEF,KAAK,YAAY,GAAG,KAAK,CAAC;AAM1B,OAAO,CAAC,MAAM,CAAC;IACX,UAAU,wBAAwB;QAC9B,GAAG,CAAC,EAAE;YACF,SAAS,EAAE,YAAY,EAAE,CAAC;SAC7B,CAAC;QACF,MAAM,CAAC,EAAE,WAAW,CAAC;KACxB;CACJ;AAOD,eAAO,MAAM,SAAS,qGAQnB,cAAc;;;CAwEhB,CAAC"}
1
+ {"version":3,"file":"useWebOTP.d.ts","sourceRoot":"","sources":["../../../../src/components/CodeField/hooks/useWebOTP.ts"],"names":[],"mappings":"AAIA,KAAK,cAAc,GAAG;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC;IAC7C,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CAC5C,CAAC;AAEF,KAAK,YAAY,GAAG,KAAK,CAAC;AAM1B,OAAO,CAAC,MAAM,CAAC;IACX,UAAU,wBAAwB;QAC9B,GAAG,CAAC,EAAE;YACF,SAAS,EAAE,YAAY,EAAE,CAAC;SAC7B,CAAC;QACF,MAAM,CAAC,EAAE,WAAW,CAAC;KACxB;CACJ;AAMD,eAAO,MAAM,SAAS,0FAOnB,cAAc,SA+DhB,CAAC"}