{"version":3,"file":"FormPhoneV2.e573d987.es5.js","mappings":"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AQ,YAAc,QAAQ,YAAc,QAAQ,YAAc,QAAQ,YAAc,QAAQ,YAAc,QAAQ,YAAc,QAAQ,YAAc,QAAQ,YAAc,QAAQ,YAAc,QAAQ,YAAc,QAAQ,YAAc,QAAQ,YAAc,QAAQ,YAAc,QAAQ,aAAe,QAAQ,aAAe,QAAQ,aAAe,QAAQ,aAAe,QAAQ,cAAgB,QAAQ,cAAgB,QAAQ,cAAgB,QAAQ,cAAgB,QAAQ,cAAgB,QAAQ,cAAgB,QAAQ,cAAgB,QAAQ,cAAgB,QAAQ,cAAgB,QAAQ,cAAgB,QAAQ,cAAgB,QAAQ,cAAgB,QAAQ,cAAgB,QAAQ,cAAgB,QAAQ,cAAgB,QAAQ,cAAgB,QAAQ,cAAgB,QAAQ,cAAgB,QAAQ,cAAgB,QAAQ,cAAgB,QAAQ,eAAiB,QAAQ,eAAiB,QAAQ,eAAiB,QAAQ,eAAiB,QAAQ,eAAiB,SAAS,eAAiB,SAAS,eAAiB,SAAS,eAAiB,SAAS,eAAiB,SAAS,eAAiB,SAAS,eAAiB,SAAS,eAAiB,SAAS,eAAiB,SAAS,eAAiB,SAAS,eAAiB,SAAS,eAAiB,SAAS,YAAc,SAAS,YAAc,SAAS,YAAc,SAAS,YAAc,SAAS,aAAe,SAAS,aAAe,SAAS,aAAe,SAAS,aAAe,SAAS,aAAe,SAAS,aAAe,SAAS,aAAe,SAAS,aAAe,SAAS,aAAe,SAAS,aAAe,SAAS,aAAe,SAAS,aAAe,SAAS,aAAe,SAAS,aAAe,SAAS,aAAe,SAAS,aAAe,SAAS,YAAc,SAAS,YAAc,SAAS,YAAc,SAAS,YAAc,SAAS,aAAe,SAAS,aAAe,SAAS,aAAe,SAAS,aAAe,SAAS,aAAe,SAAS,aAAe,SAAS,aAAe,SAAS,aAAe,SAAS,aAAe,SAAS,aAAe,SAAS,aAAe,SAAS,aAAe,SAAS,aAAe,SAAS,aAAe,SAAS,aAAe,SAAS,aAAe,SAAS,cAAgB,SAAS,cAAgB,SAAS,cAAgB,SAAS,cAAgB,SAAS,eAAiB,SAAS,eAAiB,SAAS,eAAiB,SAAS,eAAiB,SAAS,eAAiB,SAAS,eAAiB,SAAS,eAAiB,SAAS,eAAiB,SAAS,eAAiB,SAAS,eAAiB,SAAS,eAAiB,SAAS,eAAiB,SAAS,eAAiB,SAAS,eAAiB,SAAS,eAAiB,SAAS,eAAiB,SAAS,eAAiB,SAAS,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","sources":["webpack://assr-alfaleasing/./node_modules/@alfa-bank/site-form-phone/node_modules/@alfa-bank/site-helpers-transform/src/strings/pascalize.ts","webpack://assr-alfaleasing/./node_modules/@alfa-bank/site-form-phone/node_modules/@alfa-bank/site-caption/src/caption.tsx","webpack://assr-alfaleasing/./node_modules/@alfa-bank/site-form-phone/node_modules/@alfa-bank/site-caption/src/index.ts","webpack://assr-alfaleasing/./node_modules/@alfa-bank/site-form-phone/node_modules/@alfa-bank/site-caption/src/styles/styles.css?849a","webpack://assr-alfaleasing/./node_modules/@alfa-bank/site-form-phone/node_modules/@alfa-bank/site-input/src/input/index.ts","webpack://assr-alfaleasing/./node_modules/@alfa-bank/site-form-phone/node_modules/@alfa-bank/site-input/src/input/styles.css?f114","webpack://assr-alfaleasing/./node_modules/@alfa-bank/site-form-phone/node_modules/@alfa-bank/site-icon/src/success.tsx","webpack://assr-alfaleasing/./node_modules/@alfa-bank/site-form-phone/node_modules/@alfa-bank/site-icon/src/error.tsx","webpack://assr-alfaleasing/./node_modules/@alfa-bank/site-form-phone/node_modules/@alfa-bank/site-input/src/input/input.tsx","webpack://assr-alfaleasing/./node_modules/@alfa-bank/site-form-phone/node_modules/@alfa-bank/site-input/src/helpers.ts","webpack://assr-alfaleasing/./node_modules/@alfa-bank/site-form-phone/node_modules/@alfa-bank/site-helpers-form/src/text/get-numbers-from-str.ts","webpack://assr-alfaleasing/./node_modules/@alfa-bank/site-form-phone/node_modules/@alfa-bank/site-input/src/phone-input-v2/config.ts","webpack://assr-alfaleasing/./node_modules/@alfa-bank/site-form-phone/node_modules/@alfa-bank/site-input/src/phone-input-v2/helpers.ts","webpack://assr-alfaleasing/./node_modules/@alfa-bank/site-form-phone/node_modules/@alfa-bank/site-input/src/phone-input-v2/use-cursor-position.ts","webpack://assr-alfaleasing/./node_modules/@alfa-bank/site-form-phone/node_modules/@alfa-bank/site-input/src/phone-input-v2/use-mask-formatting-tools.ts","webpack://assr-alfaleasing/./node_modules/@alfa-bank/site-form-phone/node_modules/@alfa-bank/site-input/src/phone-input-v2/index.ts","webpack://assr-alfaleasing/./node_modules/@alfa-bank/site-form-phone/node_modules/@alfa-bank/site-input/src/phone-input-v2/styles.css?3acc","webpack://assr-alfaleasing/./node_modules/@alfa-bank/site-form-phone/node_modules/@alfa-bank/site-input/src/phone-input-v2/phone-input.tsx","webpack://assr-alfaleasing/./node_modules/@alfa-bank/site-form-phone/node_modules/@alfa-bank/site-input/src/phone-input-v2/use-prefix-selection.ts","webpack://assr-alfaleasing/./node_modules/@alfa-bank/site-form-phone/node_modules/@alfa-bank/site-input/src/phone-input-v2/use-value-from-query.tsx","webpack://assr-alfaleasing/./node_modules/@alfa-bank/site-form-phone/node_modules/@alfa-bank/site-helpers-form/src/meta/is-error.ts","webpack://assr-alfaleasing/./node_modules/@alfa-bank/site-form-phone/node_modules/@alfa-bank/site-helpers-form/src/validation/phone.ts","webpack://assr-alfaleasing/./node_modules/@alfa-bank/site-form-phone/node_modules/@alfa-bank/site-helpers-form/src/validation/utils/index.ts","webpack://assr-alfaleasing/./node_modules/@alfa-bank/site-form-phone/node_modules/@alfa-bank/site-helpers-form/src/validation/alfa-phone.ts","webpack://assr-alfaleasing/./node_modules/@alfa-bank/site-form-phone/node_modules/@alfa-bank/site-helpers-form/src/validation/not-empty.ts","webpack://assr-alfaleasing/./node_modules/@alfa-bank/site-form-phone/src/helpers.ts","webpack://assr-alfaleasing/./node_modules/@alfa-bank/site-form-phone/src/form-phone.tsx","webpack://assr-alfaleasing/./node_modules/@alfa-bank/site-form-phone/src/index.ts","webpack://assr-alfaleasing/./node_modules/@alfa-bank/site-form-phone/node_modules/@alfa-bank/site-helpers-form/src/meta/is-success.ts","webpack://assr-alfaleasing/./node_modules/@alfa-bank/site-form-phone/node_modules/@alfa-bank/site-helpers-form/src/meta/get-caption.ts","webpack://assr-alfaleasing/./node_modules/@alfa-bank/site-form-utils/src/actions/index.ts","webpack://assr-alfaleasing/./node_modules/@alfa-bank/site-form-utils/src/components/form-field/index.tsx","webpack://assr-alfaleasing/./node_modules/@alfa-bank/site-hint/src/desktop/index.ts","webpack://assr-alfaleasing/./node_modules/@alfa-bank/site-hint/src/hint-icon.tsx","webpack://assr-alfaleasing/./node_modules/@alfa-bank/site-hint/src/styles/styles.css?fd62","webpack://assr-alfaleasing/./node_modules/@alfa-bank/site-hint/src/hint.tsx","webpack://assr-alfaleasing/./node_modules/@alfa-bank/site-pure-input/src/utils.ts","webpack://assr-alfaleasing/./node_modules/@alfa-bank/site-pure-input/src/index.ts","webpack://assr-alfaleasing/./node_modules/@alfa-bank/site-pure-input/src/styles/styles.css?47a3","webpack://assr-alfaleasing/./node_modules/@alfa-bank/site-pure-input/src/pure-input.tsx","webpack://assr-alfaleasing/./node_modules/@alfa-bank/site-pure-input/src/config.ts","webpack://assr-alfaleasing/./node_modules/@alfa-bank/site-util-create-widget/src/create-widget.ts","webpack://assr-alfaleasing/./node_modules/@alfa-bank/site-util-create-widget/src/styles/common.css","webpack://assr-alfaleasing/./node_modules/@alfa-bank/site-util-create-widget/src/generate-style.ts","webpack://assr-alfaleasing/./node_modules/@alfa-bank/site-util-create-widget/src/helpers.tsx","webpack://assr-alfaleasing/./node_modules/classnames/index.js","webpack://assr-alfaleasing/./node_modules/lodash/_arrayMap.js","webpack://assr-alfaleasing/./node_modules/lodash/_asciiToArray.js","webpack://assr-alfaleasing/./node_modules/lodash/_asciiWords.js","webpack://assr-alfaleasing/./node_modules/lodash/_baseSlice.js","webpack://assr-alfaleasing/./node_modules/lodash/_baseToString.js","webpack://assr-alfaleasing/./node_modules/lodash/_castSlice.js","webpack://assr-alfaleasing/./node_modules/lodash/_createCaseFirst.js","webpack://assr-alfaleasing/./node_modules/lodash/_hasUnicode.js","webpack://assr-alfaleasing/./node_modules/lodash/_hasUnicodeWord.js","webpack://assr-alfaleasing/./node_modules/lodash/_stringToArray.js","webpack://assr-alfaleasing/./node_modules/lodash/_unicodeToArray.js","webpack://assr-alfaleasing/./node_modules/lodash/_unicodeWords.js","webpack://assr-alfaleasing/./node_modules/lodash/isSymbol.js","webpack://assr-alfaleasing/./node_modules/lodash/toString.js","webpack://assr-alfaleasing/./node_modules/lodash/upperFirst.js","webpack://assr-alfaleasing/./node_modules/lodash/words.js","webpack://assr-alfaleasing/./node_modules/querystringify/index.js","webpack://assr-alfaleasing/./node_modules/requires-port/index.js","webpack://assr-alfaleasing/./node_modules/url-parse/index.js"],"sourcesContent":["import upperFirst from 'lodash/upperFirst';\nimport words from 'lodash/words';\n\n/**\n * Переводит строки в ПаскальКейс. Немного отличается от capitalize + camelCase, так как\n * camelCase сначала переводит все буквы в нижний регистр.\n * BodyText -> BodyText\n * body-text -> BodyText\n * bodytext -> Bodytext\n * @param text строка\n */\nexport const pascalize = (text = '') =>\n words(text)\n .map(word => upperFirst(word))\n .join('');\n","import React, { FC, memo } from 'react';\nimport cn from 'classnames';\nimport { pascalize as pas } from '@alfa-bank/site-helpers-transform/strings/pascalize';\n\nimport { TCaption } from './models';\n\nconst CaptionComponent: FC = ({\n children,\n className,\n dataTestId = 'caption',\n size = 'xs',\n styles,\n theme = '',\n}) => {\n const classnames = cn(\n styles.caption,\n styles[`theme${pas(theme)}`],\n styles[`size${pas(size)}`],\n className\n );\n\n return (\n
\n {children}\n
\n );\n};\n\nexport const Caption = memo(CaptionComponent);\n","import { createWidget } from '@alfa-bank/site-util-create-widget/create-widget';\n\nimport { TCaption, IDeps } from './models';\nimport { Caption as Component } from './caption';\nimport styles from './styles/styles.css';\n\nexport const Caption = createWidget({\n styles,\n})(Component);\n","// extracted by mini-css-extract-plugin\nexport default {\"caption\":\"ayUby\",\"themeWhite\":\"byUby\",\"themeBlue\":\"cyUby\",\"sizeXs\":\"dyUby\",\"sizeS\":\"eyUby\",\"sizeM\":\"fyUby\",\"sizeL\":\"gyUby\",\"sizeXl\":\"hyUby\",\"sizeXxl\":\"iyUby\"};","import { createWidget } from '@alfa-bank/site-util-create-widget/create-widget';\nimport { Caption } from '@alfa-bank/site-caption';\nimport { HintDesktop as Hint } from '@alfa-bank/site-hint/desktop';\nimport { IconSuccess } from '@alfa-bank/site-icon/success';\nimport { IconError } from '@alfa-bank/site-icon/error';\nimport { PureInput } from '@alfa-bank/site-pure-input';\n\nimport { Input as Component } from './input';\nimport { TInput, IDeps } from './models';\nimport styles from './styles.css';\n\nexport const Input = createWidget({\n styles,\n IconSuccess,\n IconError,\n PureInput,\n Caption,\n Hint,\n})(Component);\n","// extracted by mini-css-extract-plugin\nexport default {\"inputWrapper\":\"am7Bm\",\"label\":\"bm7Bm\",\"placeholder\":\"cm7Bm\",\"emptyValue\":\"dm7Bm\",\"caption\":\"em7Bm\",\"external\":\"fm7Bm\",\"captionError\":\"gm7Bm\",\"status\":\"hm7Bm\",\"cancel\":\"im7Bm\"};","import React, { FC, SVGAttributes } from 'react';\n\nexport const IconSuccess: FC> = props => (\n \n \n \n \n);\n","import React, { FC, SVGAttributes } from 'react';\n\nexport const IconError: FC> = props => (\n \n \n \n \n);\n","import React, { FC } from 'react';\nimport cn from 'classnames';\n\nimport { TInput } from './models';\n\nexport const Input: FC = ({\n Caption,\n Hint,\n IconError,\n IconSuccess,\n PureInput,\n addHiddenInput,\n caption,\n className = '',\n dataTestId = 'input',\n disabled,\n error,\n forwardedRef,\n hideStatusIcon,\n id,\n infoBlock,\n infoText,\n name = '',\n onCancel,\n paddingleft = '',\n placeholder,\n styles,\n success,\n value = '',\n ...rest\n}) => (\n
\n \n\n
\n {infoBlock && infoText && {infoText}}\n {!hideStatusIcon && success && }\n {!hideStatusIcon && error && (\n \n \n \n )}\n
\n\n {caption && (\n \n {caption}\n \n )}\n
\n);\n","export const getPlaceholderMask = (value: string, mask: string) => mask.slice(value.length);\n\nexport const isEditableIndex = (patternIndex: number, permanents: number[]) =>\n !permanents.includes(patternIndex);\n\n/**\n * Функция используется для проверки корректности отображения значения телефона в инпуте с использование маски.\n * Функция, оставить только цифры, и символы использующиеся в маске \"+7 abc(123)\" -> \"+7 (123)\",\n * обрежет двойные пробелы '+7 (999) 999- 99-99' -> '+7 (999) 999-99-99'\n * @param value строка с номером телефона\n */\nexport const getCorrectDisplayedPhone = (value: string) =>\n value\n .trim()\n .replace(/[^\\d\\s()+-]+/g, '')\n .replace(/\\s+/g, ' ');\n","// TODO переделать на функцию из набора ACCEPTS (их пока нет)\n/**\n * Очищает строку от всего, кроме цифр\n */\nexport const getNumbersFromStr = (value?: string): string =>\n value ? value.toString().replace(/\\D+/g, '') : '';\n","export const DEFAULT_MASK = '+7 (***) ***-**-**';\nexport const NUMBER_SYMBOL = '*';\nexport const DATA_TEST_ID = 'phoneInput';\n\nexport const COUNTRY_CODE = '7';\nexport const INVALID_CODES = [/^88/, /^89/, /^7/];\n\nexport const defaultHandler = () => {};\n","import { getNumbersFromStr } from '@alfa-bank/site-helpers-form/text/get-numbers-from-str';\n\nimport { isEditableIndex } from '../helpers';\n\nimport { COUNTRY_CODE, INVALID_CODES, NUMBER_SYMBOL } from './config';\nimport {\n ICursorArgs,\n TClosestEditableF,\n TStartsInvalidF,\n TInputRef,\n TInputSelection,\n TMaskOptions,\n} from './models';\n\n/**\n * Определяет, нужно ли убрать из пользовательского ввода префикс маски,\n * когда пользователь произвел вставку значения из буфера обмена\n */\nconst shouldRemovePrefixFromInput: TStartsInvalidF = (value, fieldLength) => {\n const valueStr = value.join('');\n const isLongerThanField = value.length > fieldLength;\n const isInvalidStart = INVALID_CODES.some(reg => reg.test(valueStr));\n\n return isLongerThanField && isInvalidStart;\n};\n\n/**\n * Определяет совпадает ли начало пользовательского ввода с префиксом маски,\n * когда пользователь произвел вставку значения из буфера обмена\n */\nexport const validateInput = (valueNumbersArray: string[], maskNumbersArray: string[]) => {\n const maskWithoutCountryCode = maskNumbersArray.slice(1);\n const shouldBeValidated = maskWithoutCountryCode.length === valueNumbersArray.length;\n\n if (!shouldBeValidated) {\n return true;\n }\n\n return maskWithoutCountryCode.every(\n (digit, index) => digit === NUMBER_SYMBOL || digit === valueNumbersArray[index]\n );\n};\n\n/**\n * Определяется является ли символ в маске числом\n * (либо нередактируемым числом в самой маске, либо символом обозначающим пользовательский ввод)\n */\nconst isMaskNumber = (char: string) => /\\d/.test(char) || char === NUMBER_SYMBOL;\n\n/**\n * Генерирует префикс из маски\n * (возвращает маску до первого редактируемого символа)\n */\nexport const generatePrefix = (mask: string, numberSymbol: string) => {\n const firstEditableIndex = Array.from(mask).findIndex(char => char === numberSymbol);\n\n return mask.slice(0, firstEditableIndex);\n};\n\n/**\n * Генерирует плейсхолдер из маски\n * (заменяет все редактируемые символы заданным символом)\n */\nexport const generatePlaceholder = (\n mask: string,\n numberSymbol: string,\n placeholderNumberSymbol = '0'\n) => Array.from(mask, char => (char === numberSymbol ? placeholderNumberSymbol : char)).join('');\n\n/**\n * Находит индекс ближайшего редактируемого символа, находящегося слева от курсора\n */\nexport const closestEditableIndex: TClosestEditableF = ({ input, maskOptions }) => {\n const { maskFull, prefix } = maskOptions;\n const prefixIndex = prefix.length;\n const currIndex = Number(input?.selectionEnd) - 1;\n\n if (currIndex < prefixIndex) return undefined;\n\n let index = currIndex;\n\n /* istanbul ignore next */\n while (index > prefixIndex && maskFull.permanents.includes(index)) {\n index -= 1;\n }\n\n return index;\n};\n\n/**\n * Находит индекс ближайшего нередактируемого числа, находящегося справа от заданной позиции\n */\nexport const nextNonEditableNumberIndex = (currrentIndex: number, maskOptions: TMaskOptions) =>\n Math.min(\n ...maskOptions.maskFull.permanents.filter(\n maskIndex =>\n maskIndex - currrentIndex >= 0 &&\n isMaskNumber(maskOptions.maskFull.asArray[maskIndex]) &&\n maskOptions.maskFull.asArray[maskIndex] !== NUMBER_SYMBOL\n )\n );\n\nconst addPermSymbol = (acc: number[], character: string, index: number) => {\n const isPermanentSymbol = character !== NUMBER_SYMBOL;\n\n return isPermanentSymbol ? [...acc, index] : acc;\n};\n\n/**\n * Создает массив индексов редактируемых символов без учета специальных символов\n */\nconst getMaskEditableNumbers = (mask: string, maskFullPermanents: number[]) => {\n let maskNumberIndex = -1;\n\n return Array.from(mask, (chr, index) => {\n if (!isMaskNumber(chr)) {\n return null;\n }\n\n maskNumberIndex += 1;\n if (isEditableIndex(index, maskFullPermanents)) {\n return maskNumberIndex;\n }\n\n return null;\n }).filter(maskEditableNumberIndex => maskEditableNumberIndex !== null) as number[];\n};\n\nexport const getMaskOptions = (mask: string) => {\n // массив всех символов в маске\n const maskFullArray = mask.split('');\n\n // массив индексов нередактируемых символов\n const maskFullPermanents = maskFullArray.reduce(addPermSymbol, [] as number[]);\n\n // маска без специальных символов, только числа\n const maskNumbersArray = maskFullArray.filter(isMaskNumber);\n\n // индексы редактируемых чисел в maskNumbers\n const maskNumbersEditables = getMaskEditableNumbers(mask, maskFullPermanents);\n\n // длина последовательности чисел на окончании маски\n const maskTailLength = maskNumbersArray.length - (Math.max(...maskNumbersEditables) + 1);\n\n return {\n // полная маска\n maskFull: {\n asArray: maskFullArray,\n asString: mask,\n permanents: maskFullPermanents,\n },\n // маска без спецсимволов, только числа\n maskNumbers: {\n asArray: maskNumbersArray,\n asString: maskNumbersArray.join(''),\n editables: maskNumbersEditables,\n tailLength: maskTailLength,\n },\n lastEditablePosition: mask.length,\n prefix: generatePrefix(mask, NUMBER_SYMBOL),\n } as const;\n};\n\n/**\n * Очищает маску после удаленного символа,\n * предотвращая попадание чисел из маски на позиции, где должен быть пользовательский ввод\n */\nexport const getMaskRemovalFunc =\n (maskOptions: TMaskOptions) => (newValue: string, oldValue: string) => {\n const maskOffset = Math.min(newValue.length - oldValue.length, 0);\n if (!maskOffset) {\n return newValue;\n }\n\n const deletionPoint = Array.from(oldValue).findIndex(\n (char, index) => char !== newValue[index]\n );\n\n const nextFixedNumberIndex =\n nextNonEditableNumberIndex(deletionPoint + 1, maskOptions) + maskOffset;\n\n return newValue.slice(0, nextFixedNumberIndex);\n };\n\nconst getValueNumbers = (maskOptions: TMaskOptions, value: string) => {\n const { maskNumbers, prefix } = maskOptions;\n const valueNumbers: string = getNumbersFromStr(value);\n const valueNumbersArray = Array.from(valueNumbers);\n\n if (\n shouldRemovePrefixFromInput(\n valueNumbersArray,\n maskNumbers.asString.length - maskNumbers.tailLength\n )\n ) {\n valueNumbersArray.splice(0, getNumbersFromStr(prefix).length);\n\n const hasCountryCode =\n valueNumbersArray.length === maskNumbers.asString.length &&\n INVALID_CODES.some(reg => reg.test(valueNumbersArray.join('')));\n\n if (!validateInput(valueNumbersArray.slice(hasCountryCode ? 1 : 0), maskNumbers.asArray)) {\n valueNumbersArray.splice(0);\n }\n\n if (valueNumbersArray.length && !hasCountryCode) {\n valueNumbersArray.unshift(COUNTRY_CODE);\n }\n }\n\n return valueNumbersArray;\n};\n\nexport const getFormatFunc = (maskOptions: TMaskOptions) => (value: string) => {\n const { maskFull, maskNumbers, prefix } = maskOptions;\n const valueNumbersArray = getValueNumbers(maskOptions, value);\n\n const valueEditableNumbersArrray = valueNumbersArray.filter((_, index) =>\n maskNumbers.editables.includes(index)\n );\n // Дописана ли маска после последнего введенного числа\n let injectedTrailingMask = false;\n\n return maskFull.asArray.reduce((result, char, index) => {\n const isEditableSymbol = isEditableIndex(index, maskFull.permanents);\n const injectedEditableNumbers =\n valueEditableNumbersArrray.length === 0 && index > prefix.length - 1;\n\n if (injectedEditableNumbers && injectedTrailingMask) {\n return result;\n }\n\n if (injectedEditableNumbers && isEditableSymbol) {\n injectedTrailingMask = true;\n\n return result;\n }\n\n const injectingSymbol = isEditableSymbol\n ? valueEditableNumbersArrray.shift() || char\n : char;\n\n return `${result}${injectingSymbol}`;\n }, '');\n};\n\nexport const getInitialCursor = (prefixLength: number): TInputSelection => ({\n start: prefixLength,\n end: prefixLength,\n});\n\nexport const getCursorFromRef = (inputRef: TInputRef): TInputSelection => ({\n start: inputRef.current?.selectionStart,\n end: inputRef.current?.selectionEnd,\n});\n\nexport const getCursorFromValue = (value: string): TInputSelection => ({\n start: value.length,\n end: value.length,\n});\n\nexport const getNextNumPosition = (options: ICursorArgs) => {\n const {\n maskOptions: { maskFull },\n position,\n } = options;\n\n const maskAfterCursor = position ? maskFull.asArray.slice(position - 1) : maskFull.asArray;\n\n /**\n * Поскольку после введенного пользователем числа также дописывается маска, курсор должен быть\n * помещен после неё\n */\n let foundNextDigit = false;\n const nextPosition = maskAfterCursor.findIndex((item, index, arr) => {\n if (item === NUMBER_SYMBOL) {\n foundNextDigit = true;\n }\n\n const nextSymbolIsNotPartOfMask =\n arr[index + 1] === undefined || arr[index + 1] === NUMBER_SYMBOL;\n\n return foundNextDigit && nextSymbolIsNotPartOfMask;\n });\n\n const offset = nextPosition >= 0 ? nextPosition : maskAfterCursor.length;\n\n return position ? position + offset : offset;\n};\n","import { useEffect } from 'react';\n\nimport { ICursorArgs } from './models';\nimport { getNextNumPosition } from './helpers';\n\nexport const useCursorPosition = (options: ICursorArgs) => {\n const { hasFocus, inputRef, isDeleting, maskOptions, position } = options;\n const nextNumPosition = getNextNumPosition(options);\n\n useEffect(() => {\n if (!hasFocus.current) return;\n\n const { current: input } = inputRef;\n if (!input) return;\n\n const { selectionStart: nativePosition } = input;\n\n // isDirectTyping введение ли символов в конец, а не в середину\n const isDirectTyping = nativePosition === nextNumPosition;\n\n if (nativePosition && isDirectTyping && !isDeleting) {\n input.setSelectionRange(nativePosition, nativePosition);\n } else if (position && isDeleting) {\n input.setSelectionRange(position, position);\n } else if (nextNumPosition) {\n input.setSelectionRange(nextNumPosition, nextNumPosition);\n }\n }, [position, inputRef, maskOptions, hasFocus, nextNumPosition, isDeleting]);\n};\n","import { useMemo } from 'react';\n\nimport { getFormatFunc, getMaskOptions, getMaskRemovalFunc } from './helpers';\n\nexport const useMaskFormattingTools = (mask: string) => {\n const maskOptions = useMemo(() => getMaskOptions(mask), [mask]);\n const formatValue = useMemo(() => getFormatFunc(maskOptions), [maskOptions]);\n const removeMaskNumbersAfterDeletedSymbol = useMemo(\n () => getMaskRemovalFunc(maskOptions),\n [maskOptions]\n );\n\n return {\n maskOptions,\n formatValue,\n removeMaskNumbersAfterDeletedSymbol,\n };\n};\n","import { createWidget } from '@alfa-bank/site-util-create-widget/create-widget';\n\nimport { Input } from '../input';\n\nimport { TPhoneInput, IDeps } from './models';\nimport { PhoneInput as Component } from './phone-input';\nimport styles from './styles.css';\n\nexport const PhoneInput = createWidget({\n Input,\n styles,\n})(Component);\n","// extracted by mini-css-extract-plugin\nexport default {\"wrapper\":\"a1cOf\",\"placeholderWrapper\":\"b1cOf\",\"placeholderHidden\":\"c1cOf\"};","import React, {\n FC,\n useState,\n MouseEvent,\n createRef,\n useRef,\n ChangeEvent,\n SyntheticEvent,\n useMemo,\n useEffect,\n} from 'react';\nimport { THandler, TKeyboardEventHandler } from '@alfa-bank/site-pure-input/src/models';\n\nimport { getPlaceholderMask } from '../helpers';\n\nimport {\n getInitialCursor,\n getCursorFromRef,\n getCursorFromValue,\n closestEditableIndex,\n generatePlaceholder,\n} from './helpers';\nimport { useCursorPosition } from './use-cursor-position';\nimport { TPhoneInput, TInputSelection, TFocusHandler, TOnChange } from './models';\nimport { DATA_TEST_ID, defaultHandler, DEFAULT_MASK, NUMBER_SYMBOL } from './config';\nimport { usePrefixSelection } from './use-prefix-selection';\nimport { useValueFromQuery } from './use-value-from-query';\nimport { useMaskFormattingTools } from './use-mask-formatting-tools';\n\nexport const PhoneInput: FC = ({\n Input,\n dataTestId = DATA_TEST_ID,\n forwardedRef,\n mask = DEFAULT_MASK,\n onCancel = defaultHandler,\n onChange = defaultHandler,\n onKeyDown = defaultHandler,\n placeholderNumberSymbol,\n styles,\n queryName,\n value: initValue,\n hasPlaceholderMask,\n ...rest\n}) => {\n const { formatValue, maskOptions, removeMaskNumbersAfterDeletedSymbol } =\n useMaskFormattingTools(mask);\n\n const [value, setValue] = useState(() => formatValue(String(initValue || maskOptions.prefix)));\n const initialCursor = getInitialCursor(maskOptions.prefix.length);\n\n const inputRef = forwardedRef || createRef();\n const isDeleteOperation = useRef(false);\n const hasFocus = useRef(false);\n const cursorPosition = useRef(initialCursor);\n\n const position = cursorPosition.current.start;\n const isDeleting = isDeleteOperation.current;\n useCursorPosition({ hasFocus, position, inputRef, maskOptions, isDeleting });\n usePrefixSelection(inputRef, maskOptions.prefix);\n\n /** Генерация полного плейсхолдера на основе маски */\n const generatedPlaceholder = useMemo(\n () =>\n generatePlaceholder(\n maskOptions.maskFull.asString,\n NUMBER_SYMBOL,\n placeholderNumberSymbol\n ),\n [maskOptions.maskFull.asString, placeholderNumberSymbol]\n );\n\n /** Генерация отображаемого плейсхолдера на основе введенного значения и полного плейсхолдера */\n const placeholderMask = useMemo(\n () => getPlaceholderMask(value, generatedPlaceholder),\n [value, generatedPlaceholder]\n );\n\n const handleChange: TOnChange = eventProps => {\n const { event, name, value: newValue } = eventProps;\n\n const isNotInitialValue = value !== maskOptions.prefix;\n const newValueIsLongerThanField =\n newValue.toString().length > maskOptions.maskFull.asString.length;\n\n /**\n * Предотвратить набор, если поле заполнено.\n * Проверка на изначальное значение требуется, чтобы оставить возможность\n * вставить телефон из буфера обмена (в таком случае новое значение до форматирования в любом случае будет длинее поля)\n */\n if (isNotInitialValue && newValueIsLongerThanField) return;\n\n const preformattedValue = removeMaskNumbersAfterDeletedSymbol(String(newValue), value);\n const formattedValue = formatValue(preformattedValue);\n\n setValue(formattedValue);\n\n cursorPosition.current =\n initValue === '' || initValue === maskOptions.prefix\n ? getCursorFromValue(formattedValue)\n : getCursorFromRef(inputRef);\n onChange({ value: formattedValue, name, event });\n event?.preventDefault?.();\n };\n\n const handleDeleteSymbol = (event: SyntheticEvent) => {\n const { current: input } = inputRef;\n isDeleteOperation.current = true;\n\n const hasSelection = input?.selectionStart !== input?.selectionEnd;\n\n // если выделенаа конкретная часть текста которую требуется удалить, то достаточно стандартного поведения\n if (hasSelection) {\n return;\n }\n\n event.preventDefault();\n\n // индекс ближайшего числа, которое можно изменить\n const closestIndex = closestEditableIndex({ input, maskOptions });\n\n const finalValue = closestIndex\n ? // если такое число существует, то сохраняется строка до и после него, а само число удаляется\n value.slice(0, closestIndex) + value.slice(closestIndex + 1)\n : // если нет, то значение остается прежним\n value;\n\n // курсор перемеещается на место удаленного числа\n if (closestIndex) {\n input?.setSelectionRange(closestIndex, closestIndex);\n }\n\n // событие передается дальше в хэндлер handleChange, вместе с новым значением\n const e = event as ChangeEvent;\n handleChange({ value: finalValue, event: e, name: '' });\n };\n\n const handleKeyDown: TKeyboardEventHandler = eventProps => {\n const { prefix } = maskOptions;\n const { event, name, value: newValue } = eventProps;\n const { key, target } = event;\n const { selectionStart } = target as HTMLInputElement;\n const isCursorOnPrefix = Number(selectionStart) <= prefix.length;\n cursorPosition.current = getCursorFromRef(inputRef);\n\n // не пускать каретку левее скобочек \"(\"\n if (key === 'ArrowLeft' && isCursorOnPrefix) {\n event.preventDefault();\n }\n\n if (key === 'Backspace') {\n handleDeleteSymbol(event);\n } else {\n isDeleteOperation.current = false;\n }\n\n onKeyDown({ event, name, value: String(newValue) });\n };\n\n const handleCancel = (event: MouseEvent) => {\n const formattedValue = formatValue('');\n setValue(formattedValue);\n\n onCancel(event);\n };\n\n const handleFocus: TFocusHandler = event => {\n const { onFocus } = rest;\n\n hasFocus.current = true;\n\n onFocus?.(event);\n };\n\n const handleBlur: THandler> | undefined = event => {\n const { onBlur } = rest;\n\n hasFocus.current = false;\n onBlur?.(event);\n };\n\n useEffect(() => {\n const isNotInitialValue = initValue\n ? String(initValue).length >= maskOptions.prefix.length\n : false;\n if (initValue === value || !isNotInitialValue) return;\n\n handleChange({ name: rest.name, value: String(initValue) });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [initValue]);\n\n useValueFromQuery(queryName, rest.name, handleChange);\n\n return (\n
\n {hasPlaceholderMask && (\n
\n {value}\n {placeholderMask}\n
\n )}\n\n \n
\n );\n};\n","import { RefObject, useEffect } from 'react';\n\n/** Запрещает курсору находиться на префиксе телефона '+7 (' */\nexport const usePrefixSelection = (inputRef: RefObject, prefix: string) => {\n useEffect(() => {\n const input = inputRef.current;\n const correctPrefixSelection = () => {\n /* istanbul ignore next */\n if (!input || input.selectionStart === null) return;\n\n if (input.selectionStart < prefix.length) {\n const { length } = prefix;\n\n const selectionEnd = input.selectionEnd || 0;\n const positionEnd = selectionEnd < length ? length : selectionEnd;\n input.setSelectionRange(length, positionEnd);\n }\n };\n\n if (input) {\n input.addEventListener('select', correctPrefixSelection);\n input.addEventListener('click', correctPrefixSelection);\n }\n\n return () => {\n if (input) {\n input.removeEventListener('select', correctPrefixSelection);\n input.removeEventListener('click', correctPrefixSelection);\n }\n };\n }, []);\n};\n","import { useEffect } from 'react';\nimport UrlParse from 'url-parse';\n\n/** Забирает значение инпута из квери параметра при инициализации на клиенте */\nexport function useValueFromQuery(\n queryName = '',\n name = '',\n handleChange: (a: { name?: string; value: string }) => void\n) {\n useEffect(() => {\n if (queryName) {\n const { query } = new UrlParse(window.location.toString(), {}, true);\n const phoneValue = `+${decodeURIComponent(query[queryName] ?? '')\n .slice(1)\n .replace(/\\+/g, ' ')}`;\n if (/^\\+7 \\(\\d{3}\\) \\d{3}-\\d{2}-\\d{2}$/.test(phoneValue)) {\n handleChange({ name, value: phoneValue });\n }\n }\n }, []);\n}\n","import { getNumbersFromStr } from '../text/get-numbers-from-str';\n\nimport { TMeta } from './models';\n\nexport const isError = ({ active, dirtySinceLastSubmit, error, submitError, touched }: TMeta) => {\n if (active) return false;\n if (error) return touched;\n if (submitError) return !dirtySinceLastSubmit;\n\n return false;\n};\n\nexport const isPhoneError = (\n { active, dirtySinceLastSubmit, error, submitError, touched }: TMeta,\n value: string\n) => {\n if (getNumbersFromStr(value).length === 11 && error) {\n return active || touched;\n }\n if (error) return touched;\n if (submitError) return !dirtySinceLastSubmit;\n\n return false;\n};\n","import { getNumbersFromStr } from '../text/get-numbers-from-str';\n\nimport { TValidatorValue } from './models';\nimport { validateNotEmpty } from './not-empty';\nimport { composeValidators, validate } from './utils';\n\nexport const DEFAULT_PHONE_MESSAGE =\n 'Телефон указан неверно. Должно быть 11 цифр, например: +7 (901) 123-45-67';\n\n/**\n * Валидирует строку с телефоном\n */\nexport const isValidPhone = (value?: string, blockedPhones: string[] = []): boolean => {\n const clearValue = getNumbersFromStr(value);\n\n // Проверяем, что телефон полного формата 79991112233\n if (clearValue.length !== 11) {\n return false;\n }\n\n // Проверяем, что первые цифры (после кода страны) не 1, 2, 7\n if (['0', '1', '2', '5'].includes(clearValue[1])) {\n return false;\n }\n\n // Проверяем, что телефон не из чёрного списка\n if (blockedPhones.some(phone => phone === clearValue)) {\n return false;\n }\n\n return true;\n};\n\nexport const validatePhoneValue = (customMessage?: string) => (value: TValidatorValue) =>\n validate(isValidPhone(value), DEFAULT_PHONE_MESSAGE, customMessage);\n\nexport const validatePhone = (message?: string) =>\n composeValidators(validateNotEmpty(), validatePhoneValue(message));\n","import { TError, TValidatorValue, TValue } from '../models';\n\nconst VALID_STATUS = undefined;\n\nexport const composeValidators =\n (...validators: Array<(value: string, allValues: object) => TValidatorValue>) =>\n (value: string, allValues: object = {}) =>\n validators.reduce(\n (error, validator) => error || validator(value, allValues),\n VALID_STATUS\n );\n\nexport const validate = (value: TValue, defaultMessages = '', customMessage?: string) =>\n value ? VALID_STATUS : customMessage || defaultMessages;\n","import { isValidPhone, DEFAULT_PHONE_MESSAGE } from './phone';\nimport { TValidatorValue } from './models';\nimport { validateNotEmpty } from './not-empty';\nimport { composeValidators, validate } from './utils';\n\n/**\n * Список запрещенных в Альфе телефонов\n */\nconst alfaBlockedPhones = [\n '70000000000',\n '71111111111',\n '72222222222',\n '73333333333',\n '74444444444',\n '75555555555',\n '76666666666',\n '77777777777',\n '78888888888',\n '79999999999',\n '70987654321',\n '71234567890',\n '70123456789',\n '79876543210',\n];\n\nexport const isValidAlfaPhone = (value?: string) => isValidPhone(value, alfaBlockedPhones);\n\nconst validateAlfaPhoneValue = (customMessage?: string) => (value: TValidatorValue) =>\n validate(isValidAlfaPhone(value), DEFAULT_PHONE_MESSAGE, customMessage);\n\nexport const validateAlfaPhone = (message?: string) =>\n composeValidators(validateAlfaPhoneValue(message), validateNotEmpty());\n","import { TValidatorValue } from './models';\nimport { validate } from './utils';\n\nconst EMPTY_MESSAGE = 'Поле обязательно для заполнения';\n\nexport const validateNotEmpty =\n (message = EMPTY_MESSAGE) =>\n (value?: TValidatorValue) =>\n validate(value, message);\n","import { validateAlfaPhone } from '@alfa-bank/site-helpers-form/validation/alfa-phone';\n\nimport { TFormats } from './models';\n\nconst brackets = '()';\n\nconst phoneFormatsMap: Record = {\n noBrackets: brackets,\n onlyNumbers: `${brackets}+-\\\\s`,\n};\n\n/**\n * Форматирует значение телефона по указанным форматам§\n *\n * @param value - значение телефона\n * @param formats - массив форматов\n */\nexport const formatPhoneValue = (value: string, formats: TFormats[]) =>\n formats.reduce((result, format) => {\n const regexp = new RegExp(`[${phoneFormatsMap[format]}]`, 'g');\n\n return result.replace(regexp, '');\n }, value);\n\n/**\n * Валидация телефона\n *\n * @param isRequired - обязательность поля\n */\nexport const validatePhone =\n (isRequired = true) =>\n (value: string) => {\n const needValidate = value || (!value && isRequired);\n\n if (needValidate) return validateAlfaPhone()(value);\n\n return undefined;\n };\n","import React, { FC } from 'react';\nimport { StaticActions as actions } from '@alfa-bank/site-form-utils/actions';\n\nimport { formatPhoneValue } from './helpers';\nimport { TFormats, TPhone } from './models';\n\n/**\n * Поле ввода номера телефона\n * memo требуется для того чтоб избежать лишнего\n * ререндера при сабмите, при котором Final Form сбрасывает значения\n * meta.touched, из-за чего пропадают галочки напротив\n * корректно заполненных полей\n */\nexport const Phone: FC = React.memo(\n ({\n Field,\n PhoneInput,\n className,\n formatRules,\n getCaption,\n hasPlaceholderMask,\n hideStatusIcon,\n isError,\n isRequired = true, // для обратной совместимости\n isSuccess,\n mask,\n name,\n placeholderNumberSymbol,\n queryName,\n settings,\n validatePhone,\n }) => (\n {\n const { name: inputName, value: inputValue, ...restInputProps } = input;\n const { noBrackets } = settings;\n\n /** Для обратной совместимости с пропом noBrackets */\n const phoneFormatRules = noBrackets ? ['noBrackets' as TFormats] : formatRules;\n const inputProps = phoneFormatRules ? restInputProps : input;\n\n return (\n
\n {\n // Чистим поле, если оно необязательно и вернулась только маска\n if (!isRequired && inputValue === '+7 (') {\n actions.onChange(input)('');\n }\n\n actions.onBlur(input)();\n }}\n onCancel={actions.onCancel({ input, meta })}\n onChange={({ value }) => {\n actions.onChange(input)(String(value));\n\n if (!validatePhone(isRequired)(String(value))) {\n actions.onComplete({ input, meta });\n }\n }}\n onFocus={actions.onFocus(input)}\n placeholder={settings.placeholder}\n placeholderNumberSymbol={placeholderNumberSymbol}\n queryName={queryName}\n success={isSuccess(meta)}\n type=\"tel\"\n />\n {phoneFormatRules && (\n \n )}\n
\n );\n }}\n validate={validatePhone(isRequired)}\n />\n )\n);\n","import { createWidget } from '@alfa-bank/site-util-create-widget/create-widget';\nimport { PhoneInput } from '@alfa-bank/site-input/phone-input-v2';\nimport { getPhoneCaption as getCaption } from '@alfa-bank/site-helpers-form/meta/get-caption';\nimport { isPhoneError as isError } from '@alfa-bank/site-helpers-form/meta/is-error';\nimport { isSuccess } from '@alfa-bank/site-helpers-form/meta/is-success';\nimport { Field } from '@alfa-bank/site-form-utils/components/form-field';\n\nimport { validatePhone } from './helpers';\nimport { TPhone, IDeps } from './models';\nimport { Phone as Component } from './form-phone';\n\nexport const FormPhone = createWidget({\n Field,\n PhoneInput,\n isSuccess,\n isError,\n getCaption,\n validatePhone,\n})(Component);\n","import { TMeta } from './models';\n\nconst VALID_STATUS = undefined;\n\nexport const isSuccess = ({\n dirtySinceLastSubmit,\n error,\n submitError,\n submitSucceeded,\n submitting,\n touched,\n}: TMeta) => {\n /**\n * При отправке формы React Final Form аннулирует\n * свойство touched, что может приводить к\n * незапланированной смене success-статуса, поэтому\n * если поле было отправлено, то мы это расцениваем\n * равнозначно touched, чтоб не вводить пользователя\n * в заблуждение\n */\n const submitted = submitSucceeded || submitting;\n\n if (!touched && !submitted) return VALID_STATUS;\n if (error) return false;\n if (submitError) return dirtySinceLastSubmit;\n\n return true;\n};\n","import { TMeta } from './models';\nimport { isPhoneError, isError } from './is-error';\n\nexport const getCaption = (meta: TMeta, caption = '') => {\n if (isError(meta)) {\n return meta.error || meta.submitError;\n }\n\n return caption;\n};\n\nexport const getPhoneCaption = (meta: TMeta, caption = '', value: string) => {\n if (isPhoneError(meta, value)) {\n return meta.error || meta.submitError;\n }\n\n return caption;\n};\n","/**\n * В данном файле содержатся утилиты, предназначенные для расширения логики формы\n * React Final Form. На данный момент их названия не отражают того какие действия они выполняют и для чего предназначены, а только указывают на некоторые случаи их применения. В связи с этим лучше руководствоваться комментариями. В будущем неплохо бы изменить нейминг на более удобный\n */\nimport { FieldInputProps, FieldRenderProps } from 'react-final-form';\n\nimport { TFormActionElement } from '../models';\n\nexport class StaticActions {\n /**\n * Вызывает коллбэк onBlur из FieldInputProps. Используется, когда требуется вручную обозначить, что фокус должен быть убран с выбранного поля (например, когда оно корректно заполнено).\n */\n static onBlur =\n (input: FieldInputProps) =>\n () =>\n input.onBlur();\n\n /**\n * Вызывает асинхронный коллбэк onFocus из FieldInputProps. Используется, когда требуется вручную обозначить, что фокус должен быть перемещен на выбранное поле. Асинхроный вызов требуется, чтобы удостовериться, что onFocus вызван после onBlur во избежание некорректного поведения формы.\n */\n static onFocus =\n (input: FieldInputProps) =>\n () =>\n setTimeout(() => input.onFocus(), 0);\n\n /**\n * Вызывает callback onChange, переданный в FieldInputProps,\n * также в случае если значение оказалось типа boolean, будет\n * вызван экшен onBlur, этим предполагается запустить процесс\n * валидации для чекбоксов, если таковая у них присутствует.\n * Также, если значение true и при этом передана meta, для смены\n * фокуса будет вызван экшен onComplete\n */\n static onChange =\n (\n input: FieldInputProps,\n /** Вызывается, если value === true */\n meta?: FieldRenderProps['meta']\n ) =>\n (value: T) => {\n input.onChange(value);\n\n // Для чекбоксов - форсить валидацию по блуру\n if (typeof value === 'boolean') {\n StaticActions.onBlur(input)();\n if (value && meta) {\n StaticActions.onComplete({ input, meta });\n }\n }\n };\n\n /**\n * Будет инициирован перевод фокуса путем вызова коллбэка\n * onComplete из field.meta.data; если же у поля нет способности\n * к переводу фокуса, будет просто вызван экшен onBlur\n */\n static onComplete = (field: FieldRenderProps) => {\n StaticActions.onBlur(field.input)();\n if (!field.meta.data?.dispatchesFocus) return;\n field.meta.data?.onComplete?.(field.input.name);\n };\n\n /**\n * Используется для полей, где присутствуют suggestions (выпадающие списки с вариантами автозаполнения).\n * Не стоит сочетать с экшеном onBlur: вызов onBlur до onSelect может привести к непредсказуемому поведению,\n * а вызов onBlur после не имеет смысла, так как он все равно вызывается внутри экшена onComplete\n */\n static onSelect = (field: FieldRenderProps) => (value: string) => {\n StaticActions.onChange(field.input)(value);\n StaticActions.onComplete(field);\n };\n\n /**\n * Перевод фокуса на выбранное поле при условии, что в field.meta.data есть ref для него\n */\n static onCancel = (field: FieldRenderProps) => () => {\n const { current } = StaticActions.getRef(field.meta);\n\n if (current) {\n current.focus();\n }\n };\n\n /**\n * Достает ref поля из fieldInputProps.meta.data.ref\n */\n static getRef = (meta: FieldRenderProps['meta']) => meta.data?.ref ?? {};\n\n /**\n * Достает коллбэк updateAction из fieldInputProps.meta.data\n */\n static updateAction = (\n meta: FieldRenderProps['meta'],\n actions: Record\n ) => meta.data?.onUpdateFormAction?.(actions);\n\n /**\n * Используется вместе с компонентом Fields. Преобразует массив имен в объект имен\n */\n static getNames = (\n names: Record | Array>>\n ): Record => (Array.isArray(names) ? Object.assign({}, ...names) : names);\n}\n","import React, { useRef } from 'react';\nimport { Field as FinalFormField, useForm } from 'react-final-form';\n\nimport { TField } from './models';\n\nexport const Field = ({\n data,\n dispatchesFocus,\n name,\n receivesFocus,\n render,\n ...rest\n}: TField) => {\n const { mutators } = useForm();\n const ref = useRef(null);\n\n return (\n \n );\n};\n","import { createWidget } from '@alfa-bank/site-util-create-widget/create-widget';\nimport { ArrowPopover as Tooltip } from '@alfa-bank/site-popover/arrow-popover';\n\nimport { Hint as Component } from '../hint';\nimport { THint, IDeps } from '../models';\nimport { Icon } from '../hint-icon';\nimport styles from '../styles/styles.css';\n\nexport const HintDesktop = createWidget({\n Icon,\n Tooltip,\n styles,\n})(Component);\n","import React from 'react';\n\nexport const Icon = () => {\n return (\n \n \n \n \n \n \n \n \n );\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"button\":\"a19QJ\"};","import React, { FC, MouseEvent } from 'react';\n\nimport { THint } from './models';\n\nexport const Hint: FC = ({ Icon, Tooltip, children, styles }) => {\n const preventEventBubbling = (event: MouseEvent) => event.preventDefault();\n\n return (\n \n \n \n );\n};\n","import { SyntheticEvent } from 'react';\n\nimport { THandler } from './models';\n\nexport const getHandler =\n >(callback?: THandler) =>\n (event: T) => {\n if (callback) {\n const { name, value } = event.target as HTMLInputElement;\n\n callback({ value, name, event });\n }\n };\n","import { createWidget } from '@alfa-bank/site-util-create-widget/create-widget';\n\nimport { PureInput as Component } from './pure-input';\nimport { TPureInput, IDeps } from './models';\nimport styles from './styles/styles.css';\n\nexport const PureInput = createWidget({\n styles,\n})(Component);\n","// extracted by mini-css-extract-plugin\nexport default {\"background-$(backgroundColorBg)\":\"a5tnN\",\"background-$(backgroundColor)\":\"b5tnN\",\"input\":\"c5tnN\",\"hasFloatingLabel\":\"d5tnN\",\"error\":\"e5tnN\",\"valid\":\"f5tnN\",\"disabled\":\"g5tnN\"};","import React, { FC } from 'react';\nimport cn from 'classnames';\n\nimport { getHandler } from './utils';\nimport { DEFAULT_TYPE, DEFAULT_AUTO_COMPLETE } from './config';\nimport { TPureInput } from './models';\n\nexport const PureInput: FC = ({\n autoComplete = DEFAULT_AUTO_COMPLETE,\n className = '',\n dataTestId = 'input',\n disabled,\n error,\n valid,\n forwardedRef,\n onBlur,\n onChange,\n onFocus,\n onKeyDown,\n onMouseDown,\n onMouseUp,\n onPaste,\n paddingleft = '',\n styles,\n type = DEFAULT_TYPE,\n value = '',\n name = '',\n hasFloatingLabel = true,\n ...rest\n}) => (\n \n);\n","export const DEFAULT_AUTO_COMPLETE = 'off';\n\nexport const DEFAULT_TYPE = 'text';\n","import { ComponentType } from 'react';\n\nimport { ICreateWidget } from './models';\nimport { hoist, createWrapper } from './helpers';\n\n/**\n * Функция hoc, для создания виджета, принимает объект зависимостей\n * и возвращает компонент с внедренными зависимостями\n */\nexport const createWidget: ICreateWidget =\n (dependencies?: T) =>\n (Widget: ComponentType) =>\n hoist(createWrapper(Widget, dependencies), Widget);\n","// extracted by mini-css-extract-plugin\nexport default {\"borderRadius0\":\"aG2mw\",\"borderRadius4\":\"bG2mw\",\"borderRadius8\":\"cG2mw\",\"borderRadius12\":\"dG2mw\",\"marginTop0\":\"eG2mw\",\"marginTop2\":\"fG2mw\",\"marginTop4\":\"gG2mw\",\"marginTop8\":\"hG2mw\",\"marginTop12\":\"iG2mw\",\"marginTop16\":\"jG2mw\",\"marginTop20\":\"kG2mw\",\"marginTop24\":\"lG2mw\",\"marginTop28\":\"mG2mw\",\"marginTop32\":\"nG2mw\",\"marginTop36\":\"oG2mw\",\"marginTop40\":\"pG2mw\",\"marginTop44\":\"qG2mw\",\"marginTop48\":\"rG2mw\",\"marginTop52\":\"sG2mw\",\"marginTop56\":\"tG2mw\",\"marginTop60\":\"uG2mw\",\"marginTop64\":\"vG2mw\",\"marginTop68\":\"wG2mw\",\"marginTop72\":\"xG2mw\",\"marginRight0\":\"yG2mw\",\"marginRight2\":\"zG2mw\",\"marginRight4\":\"AG2mw\",\"marginRight8\":\"BG2mw\",\"marginRight12\":\"CG2mw\",\"marginRight16\":\"DG2mw\",\"marginRight20\":\"EG2mw\",\"marginRight24\":\"FG2mw\",\"marginRight28\":\"GG2mw\",\"marginRight32\":\"HG2mw\",\"marginRight36\":\"IG2mw\",\"marginRight40\":\"JG2mw\",\"marginRight44\":\"KG2mw\",\"marginRight48\":\"LG2mw\",\"marginRight52\":\"MG2mw\",\"marginRight56\":\"NG2mw\",\"marginRight60\":\"OG2mw\",\"marginRight64\":\"PG2mw\",\"marginRight68\":\"QG2mw\",\"marginRight72\":\"RG2mw\",\"marginBottom0\":\"SG2mw\",\"marginBottom2\":\"TG2mw\",\"marginBottom4\":\"UG2mw\",\"marginBottom8\":\"VG2mw\",\"marginBottom12\":\"WG2mw\",\"marginBottom16\":\"XG2mw\",\"marginBottom20\":\"YG2mw\",\"marginBottom24\":\"ZG2mw\",\"marginBottom28\":\"__G2mw\",\"marginBottom32\":\"_0G2mw\",\"marginBottom36\":\"_1G2mw\",\"marginBottom40\":\"_2G2mw\",\"marginBottom44\":\"_3G2mw\",\"marginBottom48\":\"_4G2mw\",\"marginBottom52\":\"_5G2mw\",\"marginBottom56\":\"_6G2mw\",\"marginBottom60\":\"_7G2mw\",\"marginBottom64\":\"_8G2mw\",\"marginBottom68\":\"_9G2mw\",\"marginBottom72\":\"_-G2mw\",\"marginLeft0\":\"aaG2mw\",\"marginLeft2\":\"abG2mw\",\"marginLeft4\":\"acG2mw\",\"marginLeft8\":\"adG2mw\",\"marginLeft12\":\"aeG2mw\",\"marginLeft16\":\"afG2mw\",\"marginLeft20\":\"agG2mw\",\"marginLeft24\":\"ahG2mw\",\"marginLeft28\":\"aiG2mw\",\"marginLeft32\":\"ajG2mw\",\"marginLeft36\":\"akG2mw\",\"marginLeft40\":\"alG2mw\",\"marginLeft44\":\"amG2mw\",\"marginLeft48\":\"anG2mw\",\"marginLeft52\":\"aoG2mw\",\"marginLeft56\":\"apG2mw\",\"marginLeft60\":\"aqG2mw\",\"marginLeft64\":\"arG2mw\",\"marginLeft68\":\"asG2mw\",\"marginLeft72\":\"atG2mw\",\"paddingTop0\":\"auG2mw\",\"paddingTop2\":\"avG2mw\",\"paddingTop4\":\"awG2mw\",\"paddingTop8\":\"axG2mw\",\"paddingTop12\":\"ayG2mw\",\"paddingTop16\":\"azG2mw\",\"paddingTop20\":\"aAG2mw\",\"paddingTop24\":\"aBG2mw\",\"paddingTop28\":\"aCG2mw\",\"paddingTop32\":\"aDG2mw\",\"paddingTop36\":\"aEG2mw\",\"paddingTop40\":\"aFG2mw\",\"paddingTop44\":\"aGG2mw\",\"paddingTop48\":\"aHG2mw\",\"paddingTop52\":\"aIG2mw\",\"paddingTop56\":\"aJG2mw\",\"paddingTop60\":\"aKG2mw\",\"paddingTop64\":\"aLG2mw\",\"paddingTop68\":\"aMG2mw\",\"paddingTop72\":\"aNG2mw\",\"paddingRight0\":\"aOG2mw\",\"paddingRight2\":\"aPG2mw\",\"paddingRight4\":\"aQG2mw\",\"paddingRight8\":\"aRG2mw\",\"paddingRight12\":\"aSG2mw\",\"paddingRight16\":\"aTG2mw\",\"paddingRight20\":\"aUG2mw\",\"paddingRight24\":\"aVG2mw\",\"paddingRight28\":\"aWG2mw\",\"paddingRight32\":\"aXG2mw\",\"paddingRight36\":\"aYG2mw\",\"paddingRight40\":\"aZG2mw\",\"paddingRight44\":\"a_G2mw\",\"paddingRight48\":\"a0G2mw\",\"paddingRight52\":\"a1G2mw\",\"paddingRight56\":\"a2G2mw\",\"paddingRight60\":\"a3G2mw\",\"paddingRight64\":\"a4G2mw\",\"paddingRight68\":\"a5G2mw\",\"paddingRight72\":\"a6G2mw\",\"paddingBottom0\":\"a7G2mw\",\"paddingBottom2\":\"a8G2mw\",\"paddingBottom4\":\"a9G2mw\",\"paddingBottom8\":\"a-G2mw\",\"paddingBottom12\":\"baG2mw\",\"paddingBottom16\":\"bbG2mw\",\"paddingBottom20\":\"bcG2mw\",\"paddingBottom24\":\"bdG2mw\",\"paddingBottom28\":\"beG2mw\",\"paddingBottom32\":\"bfG2mw\",\"paddingBottom36\":\"bgG2mw\",\"paddingBottom40\":\"bhG2mw\",\"paddingBottom44\":\"biG2mw\",\"paddingBottom48\":\"bjG2mw\",\"paddingBottom52\":\"bkG2mw\",\"paddingBottom56\":\"blG2mw\",\"paddingBottom60\":\"bmG2mw\",\"paddingBottom64\":\"bnG2mw\",\"paddingBottom68\":\"boG2mw\",\"paddingBottom72\":\"bpG2mw\",\"paddingLeft0\":\"bqG2mw\",\"paddingLeft2\":\"brG2mw\",\"paddingLeft4\":\"bsG2mw\",\"paddingLeft8\":\"btG2mw\",\"paddingLeft12\":\"buG2mw\",\"paddingLeft16\":\"bvG2mw\",\"paddingLeft20\":\"bwG2mw\",\"paddingLeft24\":\"bxG2mw\",\"paddingLeft28\":\"byG2mw\",\"paddingLeft32\":\"bzG2mw\",\"paddingLeft36\":\"bAG2mw\",\"paddingLeft40\":\"bBG2mw\",\"paddingLeft44\":\"bCG2mw\",\"paddingLeft48\":\"bDG2mw\",\"paddingLeft52\":\"bEG2mw\",\"paddingLeft56\":\"bFG2mw\",\"paddingLeft60\":\"bGG2mw\",\"paddingLeft64\":\"bHG2mw\",\"paddingLeft68\":\"bIG2mw\",\"paddingLeft72\":\"bJG2mw\"};","import isEmpty from 'lodash/isEmpty';\n\nimport styles from './styles/common.css';\nimport { IStyler } from './models';\n\ntype TStyle = keyof typeof styles;\n\nconst RULES: Array<[keyof IStyler, keyof IStyler]> = [\n ['borderRadius', 'borderRadius'],\n ['marginTop', 'margin'],\n ['marginRight', 'margin'],\n ['marginBottom', 'margin'],\n ['marginLeft', 'margin'],\n ['paddingTop', 'padding'],\n ['paddingRight', 'padding'],\n ['paddingBottom', 'padding'],\n ['paddingLeft', 'padding'],\n];\n\nexport const generateStyle = (\n styler: IStyler = {},\n injectedClassName?: string\n): { className: string } | undefined => {\n const classNames: string[] = [];\n\n if (isEmpty(styler)) {\n return injectedClassName ? { className: injectedClassName } : undefined;\n }\n\n for (const [rule, fallback] of RULES) {\n if (styler[rule] !== undefined) {\n classNames.push(styles[`${rule}${styler[rule]}` as TStyle]);\n } else if (styler[fallback] !== undefined) {\n classNames.push(styles[`${rule}${styler[fallback]}` as TStyle]);\n }\n }\n\n if (injectedClassName) {\n classNames.push(injectedClassName);\n }\n\n if (classNames.length) return { className: classNames.join(' ') };\n\n return undefined;\n};\n","import React, { ComponentType } from 'react';\nimport hoistStatics from 'hoist-non-react-statics';\n\nimport { generateStyle } from './generate-style';\nimport { TWrapper } from './models';\n\n/**\n * Вернуть объект с названием виджета\n */\nexport const getDisplayName = (TargetWidget: ComponentType) => ({\n displayName: TargetWidget.displayName || TargetWidget.name || 'UnnamedWidget',\n});\n\n/**\n * Создать обертку, добавляющую стайлер и зависимости\n */\nexport const createWrapper =\n (Widget: ComponentType, dependencies?: T): ComponentType> =>\n ({ className, styler, ...props }) =>\n ;\n\n/**\n * Добавить изначальные свойства виджета, displayName и любые дополнительные\n */\nexport const hoist = (\n Wrapper: ComponentType,\n Widget: ComponentType,\n ...rest: any[]\n): ComponentType =>\n Object.assign(hoistStatics(Wrapper, Widget), getDisplayName(Widget), ...rest);\n","/*!\n Copyright (c) 2018 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames() {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tif (arg.length) {\n\t\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\t\tif (inner) {\n\t\t\t\t\t\tclasses.push(inner);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tif (arg.toString === Object.prototype.toString) {\n\t\t\t\t\tfor (var key in arg) {\n\t\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tclasses.push(arg.toString());\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\nmodule.exports = arrayMap;\n","/**\n * Converts an ASCII `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction asciiToArray(string) {\n return string.split('');\n}\n\nmodule.exports = asciiToArray;\n","/** Used to match words composed of alphanumeric characters. */\nvar reAsciiWord = /[^\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\x7f]+/g;\n\n/**\n * Splits an ASCII `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\nfunction asciiWords(string) {\n return string.match(reAsciiWord) || [];\n}\n\nmodule.exports = asciiWords;\n","/**\n * The base implementation of `_.slice` without an iteratee call guard.\n *\n * @private\n * @param {Array} array The array to slice.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the slice of `array`.\n */\nfunction baseSlice(array, start, end) {\n var index = -1,\n length = array.length;\n\n if (start < 0) {\n start = -start > length ? 0 : (length + start);\n }\n end = end > length ? length : end;\n if (end < 0) {\n end += length;\n }\n length = start > end ? 0 : ((end - start) >>> 0);\n start >>>= 0;\n\n var result = Array(length);\n while (++index < length) {\n result[index] = array[index + start];\n }\n return result;\n}\n\nmodule.exports = baseSlice;\n","var Symbol = require('./_Symbol'),\n arrayMap = require('./_arrayMap'),\n isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = baseToString;\n","var baseSlice = require('./_baseSlice');\n\n/**\n * Casts `array` to a slice if it's needed.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {number} start The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the cast slice.\n */\nfunction castSlice(array, start, end) {\n var length = array.length;\n end = end === undefined ? length : end;\n return (!start && end >= length) ? array : baseSlice(array, start, end);\n}\n\nmodule.exports = castSlice;\n","var castSlice = require('./_castSlice'),\n hasUnicode = require('./_hasUnicode'),\n stringToArray = require('./_stringToArray'),\n toString = require('./toString');\n\n/**\n * Creates a function like `_.lowerFirst`.\n *\n * @private\n * @param {string} methodName The name of the `String` case method to use.\n * @returns {Function} Returns the new case function.\n */\nfunction createCaseFirst(methodName) {\n return function(string) {\n string = toString(string);\n\n var strSymbols = hasUnicode(string)\n ? stringToArray(string)\n : undefined;\n\n var chr = strSymbols\n ? strSymbols[0]\n : string.charAt(0);\n\n var trailing = strSymbols\n ? castSlice(strSymbols, 1).join('')\n : string.slice(1);\n\n return chr[methodName]() + trailing;\n };\n}\n\nmodule.exports = createCaseFirst;\n","/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsVarRange = '\\\\ufe0e\\\\ufe0f';\n\n/** Used to compose unicode capture groups. */\nvar rsZWJ = '\\\\u200d';\n\n/** Used to detect strings with [zero-width joiners or code points from the astral planes](http://eev.ee/blog/2015/09/12/dark-corners-of-unicode/). */\nvar reHasUnicode = RegExp('[' + rsZWJ + rsAstralRange + rsComboRange + rsVarRange + ']');\n\n/**\n * Checks if `string` contains Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a symbol is found, else `false`.\n */\nfunction hasUnicode(string) {\n return reHasUnicode.test(string);\n}\n\nmodule.exports = hasUnicode;\n","/** Used to detect strings that need a more robust regexp to match words. */\nvar reHasUnicodeWord = /[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;\n\n/**\n * Checks if `string` contains a word composed of Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a word is found, else `false`.\n */\nfunction hasUnicodeWord(string) {\n return reHasUnicodeWord.test(string);\n}\n\nmodule.exports = hasUnicodeWord;\n","var asciiToArray = require('./_asciiToArray'),\n hasUnicode = require('./_hasUnicode'),\n unicodeToArray = require('./_unicodeToArray');\n\n/**\n * Converts `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction stringToArray(string) {\n return hasUnicode(string)\n ? unicodeToArray(string)\n : asciiToArray(string);\n}\n\nmodule.exports = stringToArray;\n","/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsVarRange = '\\\\ufe0e\\\\ufe0f';\n\n/** Used to compose unicode capture groups. */\nvar rsAstral = '[' + rsAstralRange + ']',\n rsCombo = '[' + rsComboRange + ']',\n rsFitz = '\\\\ud83c[\\\\udffb-\\\\udfff]',\n rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n rsNonAstral = '[^' + rsAstralRange + ']',\n rsRegional = '(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}',\n rsSurrPair = '[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]',\n rsZWJ = '\\\\u200d';\n\n/** Used to compose unicode regexes. */\nvar reOptMod = rsModifier + '?',\n rsOptVar = '[' + rsVarRange + ']?',\n rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n rsSeq = rsOptVar + reOptMod + rsOptJoin,\n rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')';\n\n/** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */\nvar reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g');\n\n/**\n * Converts a Unicode `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction unicodeToArray(string) {\n return string.match(reUnicode) || [];\n}\n\nmodule.exports = unicodeToArray;\n","/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsDingbatRange = '\\\\u2700-\\\\u27bf',\n rsLowerRange = 'a-z\\\\xdf-\\\\xf6\\\\xf8-\\\\xff',\n rsMathOpRange = '\\\\xac\\\\xb1\\\\xd7\\\\xf7',\n rsNonCharRange = '\\\\x00-\\\\x2f\\\\x3a-\\\\x40\\\\x5b-\\\\x60\\\\x7b-\\\\xbf',\n rsPunctuationRange = '\\\\u2000-\\\\u206f',\n rsSpaceRange = ' \\\\t\\\\x0b\\\\f\\\\xa0\\\\ufeff\\\\n\\\\r\\\\u2028\\\\u2029\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000',\n rsUpperRange = 'A-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde',\n rsVarRange = '\\\\ufe0e\\\\ufe0f',\n rsBreakRange = rsMathOpRange + rsNonCharRange + rsPunctuationRange + rsSpaceRange;\n\n/** Used to compose unicode capture groups. */\nvar rsApos = \"['\\u2019]\",\n rsBreak = '[' + rsBreakRange + ']',\n rsCombo = '[' + rsComboRange + ']',\n rsDigits = '\\\\d+',\n rsDingbat = '[' + rsDingbatRange + ']',\n rsLower = '[' + rsLowerRange + ']',\n rsMisc = '[^' + rsAstralRange + rsBreakRange + rsDigits + rsDingbatRange + rsLowerRange + rsUpperRange + ']',\n rsFitz = '\\\\ud83c[\\\\udffb-\\\\udfff]',\n rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n rsNonAstral = '[^' + rsAstralRange + ']',\n rsRegional = '(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}',\n rsSurrPair = '[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]',\n rsUpper = '[' + rsUpperRange + ']',\n rsZWJ = '\\\\u200d';\n\n/** Used to compose unicode regexes. */\nvar rsMiscLower = '(?:' + rsLower + '|' + rsMisc + ')',\n rsMiscUpper = '(?:' + rsUpper + '|' + rsMisc + ')',\n rsOptContrLower = '(?:' + rsApos + '(?:d|ll|m|re|s|t|ve))?',\n rsOptContrUpper = '(?:' + rsApos + '(?:D|LL|M|RE|S|T|VE))?',\n reOptMod = rsModifier + '?',\n rsOptVar = '[' + rsVarRange + ']?',\n rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n rsOrdLower = '\\\\d*(?:1st|2nd|3rd|(?![123])\\\\dth)(?=\\\\b|[A-Z_])',\n rsOrdUpper = '\\\\d*(?:1ST|2ND|3RD|(?![123])\\\\dTH)(?=\\\\b|[a-z_])',\n rsSeq = rsOptVar + reOptMod + rsOptJoin,\n rsEmoji = '(?:' + [rsDingbat, rsRegional, rsSurrPair].join('|') + ')' + rsSeq;\n\n/** Used to match complex or compound words. */\nvar reUnicodeWord = RegExp([\n rsUpper + '?' + rsLower + '+' + rsOptContrLower + '(?=' + [rsBreak, rsUpper, '$'].join('|') + ')',\n rsMiscUpper + '+' + rsOptContrUpper + '(?=' + [rsBreak, rsUpper + rsMiscLower, '$'].join('|') + ')',\n rsUpper + '?' + rsMiscLower + '+' + rsOptContrLower,\n rsUpper + '+' + rsOptContrUpper,\n rsOrdUpper,\n rsOrdLower,\n rsDigits,\n rsEmoji\n].join('|'), 'g');\n\n/**\n * Splits a Unicode `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\nfunction unicodeWords(string) {\n return string.match(reUnicodeWord) || [];\n}\n\nmodule.exports = unicodeWords;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nmodule.exports = isSymbol;\n","var baseToString = require('./_baseToString');\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\nmodule.exports = toString;\n","var createCaseFirst = require('./_createCaseFirst');\n\n/**\n * Converts the first character of `string` to upper case.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.upperFirst('fred');\n * // => 'Fred'\n *\n * _.upperFirst('FRED');\n * // => 'FRED'\n */\nvar upperFirst = createCaseFirst('toUpperCase');\n\nmodule.exports = upperFirst;\n","var asciiWords = require('./_asciiWords'),\n hasUnicodeWord = require('./_hasUnicodeWord'),\n toString = require('./toString'),\n unicodeWords = require('./_unicodeWords');\n\n/**\n * Splits `string` into an array of its words.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to inspect.\n * @param {RegExp|string} [pattern] The pattern to match words.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the words of `string`.\n * @example\n *\n * _.words('fred, barney, & pebbles');\n * // => ['fred', 'barney', 'pebbles']\n *\n * _.words('fred, barney, & pebbles', /[^, ]+/g);\n * // => ['fred', 'barney', '&', 'pebbles']\n */\nfunction words(string, pattern, guard) {\n string = toString(string);\n pattern = guard ? undefined : pattern;\n\n if (pattern === undefined) {\n return hasUnicodeWord(string) ? unicodeWords(string) : asciiWords(string);\n }\n return string.match(pattern) || [];\n}\n\nmodule.exports = words;\n","'use strict';\n\nvar has = Object.prototype.hasOwnProperty\n , undef;\n\n/**\n * Decode a URI encoded string.\n *\n * @param {String} input The URI encoded string.\n * @returns {String|Null} The decoded string.\n * @api private\n */\nfunction decode(input) {\n try {\n return decodeURIComponent(input.replace(/\\+/g, ' '));\n } catch (e) {\n return null;\n }\n}\n\n/**\n * Attempts to encode a given input.\n *\n * @param {String} input The string that needs to be encoded.\n * @returns {String|Null} The encoded string.\n * @api private\n */\nfunction encode(input) {\n try {\n return encodeURIComponent(input);\n } catch (e) {\n return null;\n }\n}\n\n/**\n * Simple query string parser.\n *\n * @param {String} query The query string that needs to be parsed.\n * @returns {Object}\n * @api public\n */\nfunction querystring(query) {\n var parser = /([^=?#&]+)=?([^&]*)/g\n , result = {}\n , part;\n\n while (part = parser.exec(query)) {\n var key = decode(part[1])\n , value = decode(part[2]);\n\n //\n // Prevent overriding of existing properties. This ensures that build-in\n // methods like `toString` or __proto__ are not overriden by malicious\n // querystrings.\n //\n // In the case if failed decoding, we want to omit the key/value pairs\n // from the result.\n //\n if (key === null || value === null || key in result) continue;\n result[key] = value;\n }\n\n return result;\n}\n\n/**\n * Transform a query string to an object.\n *\n * @param {Object} obj Object that should be transformed.\n * @param {String} prefix Optional prefix.\n * @returns {String}\n * @api public\n */\nfunction querystringify(obj, prefix) {\n prefix = prefix || '';\n\n var pairs = []\n , value\n , key;\n\n //\n // Optionally prefix with a '?' if needed\n //\n if ('string' !== typeof prefix) prefix = '?';\n\n for (key in obj) {\n if (has.call(obj, key)) {\n value = obj[key];\n\n //\n // Edge cases where we actually want to encode the value to an empty\n // string instead of the stringified value.\n //\n if (!value && (value === null || value === undef || isNaN(value))) {\n value = '';\n }\n\n key = encode(key);\n value = encode(value);\n\n //\n // If we failed to encode the strings, we should bail out as we don't\n // want to add invalid strings to the query.\n //\n if (key === null || value === null) continue;\n pairs.push(key +'='+ value);\n }\n }\n\n return pairs.length ? prefix + pairs.join('&') : '';\n}\n\n//\n// Expose the module.\n//\nexports.stringify = querystringify;\nexports.parse = querystring;\n","'use strict';\n\n/**\n * Check if we're required to add a port number.\n *\n * @see https://url.spec.whatwg.org/#default-port\n * @param {Number|String} port Port number we need to check\n * @param {String} protocol Protocol we need to check against.\n * @returns {Boolean} Is it a default port for the given protocol\n * @api private\n */\nmodule.exports = function required(port, protocol) {\n protocol = protocol.split(':')[0];\n port = +port;\n\n if (!port) return false;\n\n switch (protocol) {\n case 'http':\n case 'ws':\n return port !== 80;\n\n case 'https':\n case 'wss':\n return port !== 443;\n\n case 'ftp':\n return port !== 21;\n\n case 'gopher':\n return port !== 70;\n\n case 'file':\n return false;\n }\n\n return port !== 0;\n};\n","'use strict';\n\nvar required = require('requires-port')\n , qs = require('querystringify')\n , slashes = /^[A-Za-z][A-Za-z0-9+-.]*:\\/\\//\n , protocolre = /^([a-z][a-z0-9.+-]*:)?(\\/\\/)?([\\S\\s]*)/i\n , whitespace = '[\\\\x09\\\\x0A\\\\x0B\\\\x0C\\\\x0D\\\\x20\\\\xA0\\\\u1680\\\\u180E\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200A\\\\u202F\\\\u205F\\\\u3000\\\\u2028\\\\u2029\\\\uFEFF]'\n , left = new RegExp('^'+ whitespace +'+');\n\n/**\n * Trim a given string.\n *\n * @param {String} str String to trim.\n * @public\n */\nfunction trimLeft(str) {\n return (str ? str : '').toString().replace(left, '');\n}\n\n/**\n * These are the parse rules for the URL parser, it informs the parser\n * about:\n *\n * 0. The char it Needs to parse, if it's a string it should be done using\n * indexOf, RegExp using exec and NaN means set as current value.\n * 1. The property we should set when parsing this value.\n * 2. Indication if it's backwards or forward parsing, when set as number it's\n * the value of extra chars that should be split off.\n * 3. Inherit from location if non existing in the parser.\n * 4. `toLowerCase` the resulting value.\n */\nvar rules = [\n ['#', 'hash'], // Extract from the back.\n ['?', 'query'], // Extract from the back.\n function sanitize(address) { // Sanitize what is left of the address\n return address.replace('\\\\', '/');\n },\n ['/', 'pathname'], // Extract from the back.\n ['@', 'auth', 1], // Extract from the front.\n [NaN, 'host', undefined, 1, 1], // Set left over value.\n [/:(\\d+)$/, 'port', undefined, 1], // RegExp the back.\n [NaN, 'hostname', undefined, 1, 1] // Set left over.\n];\n\n/**\n * These properties should not be copied or inherited from. This is only needed\n * for all non blob URL's as a blob URL does not include a hash, only the\n * origin.\n *\n * @type {Object}\n * @private\n */\nvar ignore = { hash: 1, query: 1 };\n\n/**\n * The location object differs when your code is loaded through a normal page,\n * Worker or through a worker using a blob. And with the blobble begins the\n * trouble as the location object will contain the URL of the blob, not the\n * location of the page where our code is loaded in. The actual origin is\n * encoded in the `pathname` so we can thankfully generate a good \"default\"\n * location from it so we can generate proper relative URL's again.\n *\n * @param {Object|String} loc Optional default location object.\n * @returns {Object} lolcation object.\n * @public\n */\nfunction lolcation(loc) {\n var globalVar;\n\n if (typeof window !== 'undefined') globalVar = window;\n else if (typeof global !== 'undefined') globalVar = global;\n else if (typeof self !== 'undefined') globalVar = self;\n else globalVar = {};\n\n var location = globalVar.location || {};\n loc = loc || location;\n\n var finaldestination = {}\n , type = typeof loc\n , key;\n\n if ('blob:' === loc.protocol) {\n finaldestination = new Url(unescape(loc.pathname), {});\n } else if ('string' === type) {\n finaldestination = new Url(loc, {});\n for (key in ignore) delete finaldestination[key];\n } else if ('object' === type) {\n for (key in loc) {\n if (key in ignore) continue;\n finaldestination[key] = loc[key];\n }\n\n if (finaldestination.slashes === undefined) {\n finaldestination.slashes = slashes.test(loc.href);\n }\n }\n\n return finaldestination;\n}\n\n/**\n * @typedef ProtocolExtract\n * @type Object\n * @property {String} protocol Protocol matched in the URL, in lowercase.\n * @property {Boolean} slashes `true` if protocol is followed by \"//\", else `false`.\n * @property {String} rest Rest of the URL that is not part of the protocol.\n */\n\n/**\n * Extract protocol information from a URL with/without double slash (\"//\").\n *\n * @param {String} address URL we want to extract from.\n * @return {ProtocolExtract} Extracted information.\n * @private\n */\nfunction extractProtocol(address) {\n address = trimLeft(address);\n var match = protocolre.exec(address);\n\n return {\n protocol: match[1] ? match[1].toLowerCase() : '',\n slashes: !!match[2],\n rest: match[3]\n };\n}\n\n/**\n * Resolve a relative URL pathname against a base URL pathname.\n *\n * @param {String} relative Pathname of the relative URL.\n * @param {String} base Pathname of the base URL.\n * @return {String} Resolved pathname.\n * @private\n */\nfunction resolve(relative, base) {\n if (relative === '') return base;\n\n var path = (base || '/').split('/').slice(0, -1).concat(relative.split('/'))\n , i = path.length\n , last = path[i - 1]\n , unshift = false\n , up = 0;\n\n while (i--) {\n if (path[i] === '.') {\n path.splice(i, 1);\n } else if (path[i] === '..') {\n path.splice(i, 1);\n up++;\n } else if (up) {\n if (i === 0) unshift = true;\n path.splice(i, 1);\n up--;\n }\n }\n\n if (unshift) path.unshift('');\n if (last === '.' || last === '..') path.push('');\n\n return path.join('/');\n}\n\n/**\n * The actual URL instance. Instead of returning an object we've opted-in to\n * create an actual constructor as it's much more memory efficient and\n * faster and it pleases my OCD.\n *\n * It is worth noting that we should not use `URL` as class name to prevent\n * clashes with the global URL instance that got introduced in browsers.\n *\n * @constructor\n * @param {String} address URL we want to parse.\n * @param {Object|String} [location] Location defaults for relative paths.\n * @param {Boolean|Function} [parser] Parser for the query string.\n * @private\n */\nfunction Url(address, location, parser) {\n address = trimLeft(address);\n\n if (!(this instanceof Url)) {\n return new Url(address, location, parser);\n }\n\n var relative, extracted, parse, instruction, index, key\n , instructions = rules.slice()\n , type = typeof location\n , url = this\n , i = 0;\n\n //\n // The following if statements allows this module two have compatibility with\n // 2 different API:\n //\n // 1. Node.js's `url.parse` api which accepts a URL, boolean as arguments\n // where the boolean indicates that the query string should also be parsed.\n //\n // 2. The `URL` interface of the browser which accepts a URL, object as\n // arguments. The supplied object will be used as default values / fall-back\n // for relative paths.\n //\n if ('object' !== type && 'string' !== type) {\n parser = location;\n location = null;\n }\n\n if (parser && 'function' !== typeof parser) parser = qs.parse;\n\n location = lolcation(location);\n\n //\n // Extract protocol information before running the instructions.\n //\n extracted = extractProtocol(address || '');\n relative = !extracted.protocol && !extracted.slashes;\n url.slashes = extracted.slashes || relative && location.slashes;\n url.protocol = extracted.protocol || location.protocol || '';\n address = extracted.rest;\n\n //\n // When the authority component is absent the URL starts with a path\n // component.\n //\n if (!extracted.slashes) instructions[3] = [/(.*)/, 'pathname'];\n\n for (; i < instructions.length; i++) {\n instruction = instructions[i];\n\n if (typeof instruction === 'function') {\n address = instruction(address);\n continue;\n }\n\n parse = instruction[0];\n key = instruction[1];\n\n if (parse !== parse) {\n url[key] = address;\n } else if ('string' === typeof parse) {\n if (~(index = address.indexOf(parse))) {\n if ('number' === typeof instruction[2]) {\n url[key] = address.slice(0, index);\n address = address.slice(index + instruction[2]);\n } else {\n url[key] = address.slice(index);\n address = address.slice(0, index);\n }\n }\n } else if ((index = parse.exec(address))) {\n url[key] = index[1];\n address = address.slice(0, index.index);\n }\n\n url[key] = url[key] || (\n relative && instruction[3] ? location[key] || '' : ''\n );\n\n //\n // Hostname, host and protocol should be lowercased so they can be used to\n // create a proper `origin`.\n //\n if (instruction[4]) url[key] = url[key].toLowerCase();\n }\n\n //\n // Also parse the supplied query string in to an object. If we're supplied\n // with a custom parser as function use that instead of the default build-in\n // parser.\n //\n if (parser) url.query = parser(url.query);\n\n //\n // If the URL is relative, resolve the pathname against the base URL.\n //\n if (\n relative\n && location.slashes\n && url.pathname.charAt(0) !== '/'\n && (url.pathname !== '' || location.pathname !== '')\n ) {\n url.pathname = resolve(url.pathname, location.pathname);\n }\n\n //\n // We should not add port numbers if they are already the default port number\n // for a given protocol. As the host also contains the port number we're going\n // override it with the hostname which contains no port number.\n //\n if (!required(url.port, url.protocol)) {\n url.host = url.hostname;\n url.port = '';\n }\n\n //\n // Parse down the `auth` for the username and password.\n //\n url.username = url.password = '';\n if (url.auth) {\n instruction = url.auth.split(':');\n url.username = instruction[0] || '';\n url.password = instruction[1] || '';\n }\n\n url.origin = url.protocol && url.host && url.protocol !== 'file:'\n ? url.protocol +'//'+ url.host\n : 'null';\n\n //\n // The href is just the compiled result.\n //\n url.href = url.toString();\n}\n\n/**\n * This is convenience method for changing properties in the URL instance to\n * insure that they all propagate correctly.\n *\n * @param {String} part Property we need to adjust.\n * @param {Mixed} value The newly assigned value.\n * @param {Boolean|Function} fn When setting the query, it will be the function\n * used to parse the query.\n * When setting the protocol, double slash will be\n * removed from the final url if it is true.\n * @returns {URL} URL instance for chaining.\n * @public\n */\nfunction set(part, value, fn) {\n var url = this;\n\n switch (part) {\n case 'query':\n if ('string' === typeof value && value.length) {\n value = (fn || qs.parse)(value);\n }\n\n url[part] = value;\n break;\n\n case 'port':\n url[part] = value;\n\n if (!required(value, url.protocol)) {\n url.host = url.hostname;\n url[part] = '';\n } else if (value) {\n url.host = url.hostname +':'+ value;\n }\n\n break;\n\n case 'hostname':\n url[part] = value;\n\n if (url.port) value += ':'+ url.port;\n url.host = value;\n break;\n\n case 'host':\n url[part] = value;\n\n if (/:\\d+$/.test(value)) {\n value = value.split(':');\n url.port = value.pop();\n url.hostname = value.join(':');\n } else {\n url.hostname = value;\n url.port = '';\n }\n\n break;\n\n case 'protocol':\n url.protocol = value.toLowerCase();\n url.slashes = !fn;\n break;\n\n case 'pathname':\n case 'hash':\n if (value) {\n var char = part === 'pathname' ? '/' : '#';\n url[part] = value.charAt(0) !== char ? char + value : value;\n } else {\n url[part] = value;\n }\n break;\n\n default:\n url[part] = value;\n }\n\n for (var i = 0; i < rules.length; i++) {\n var ins = rules[i];\n\n if (ins[4]) url[ins[1]] = url[ins[1]].toLowerCase();\n }\n\n url.origin = url.protocol && url.host && url.protocol !== 'file:'\n ? url.protocol +'//'+ url.host\n : 'null';\n\n url.href = url.toString();\n\n return url;\n}\n\n/**\n * Transform the properties back in to a valid and full URL string.\n *\n * @param {Function} stringify Optional query stringify function.\n * @returns {String} Compiled version of the URL.\n * @public\n */\nfunction toString(stringify) {\n if (!stringify || 'function' !== typeof stringify) stringify = qs.stringify;\n\n var query\n , url = this\n , protocol = url.protocol;\n\n if (protocol && protocol.charAt(protocol.length - 1) !== ':') protocol += ':';\n\n var result = protocol + (url.slashes ? '//' : '');\n\n if (url.username) {\n result += url.username;\n if (url.password) result += ':'+ url.password;\n result += '@';\n }\n\n result += url.host + url.pathname;\n\n query = 'object' === typeof url.query ? stringify(url.query) : url.query;\n if (query) result += '?' !== query.charAt(0) ? '?'+ query : query;\n\n if (url.hash) result += url.hash;\n\n return result;\n}\n\nUrl.prototype = { set: set, toString: toString };\n\n//\n// Expose the URL parser and some additional properties that might be useful for\n// others or testing.\n//\nUrl.extractProtocol = extractProtocol;\nUrl.location = lolcation;\nUrl.trimLeft = trimLeft;\nUrl.qs = qs;\n\nmodule.exports = Url;\n"],"names":["pascalize","text","words","map","word","upperFirst","join","CaptionComponent","children","className","dataTestId","size","styles","theme","classnames","cn","caption","pas","Caption","memo","createWidget","Component","Input","IconSuccess","props","height","viewBox","width","d","fill","IconError","PureInput","Hint","addHiddenInput","disabled","error","forwardedRef","hideStatusIcon","id","infoBlock","infoText","name","onCancel","paddingleft","placeholder","success","value","rest","inputWrapper","label","htmlFor","hasFloatingLabel","Boolean","readOnly","type","emptyValue","style","left","status","cancel","onClick","external","captionError","isEditableIndex","patternIndex","permanents","includes","getNumbersFromStr","toString","replace","NUMBER_SYMBOL","INVALID_CODES","defaultHandler","isMaskNumber","char","test","generatePrefix","mask","numberSymbol","firstEditableIndex","Array","from","findIndex","slice","addPermSymbol","acc","character","index","getMaskOptions","maskFullArray","split","maskFullPermanents","reduce","maskNumbersArray","filter","maskNumbersEditables","maskNumberIndex","chr","maskEditableNumberIndex","getMaskEditableNumbers","maskTailLength","length","Math","max","maskFull","asArray","asString","maskNumbers","editables","tailLength","lastEditablePosition","prefix","getMaskRemovalFunc","maskOptions","newValue","oldValue","maskOffset","min","nextFixedNumberIndex","currrentIndex","maskIndex","nextNonEditableNumberIndex","getValueNumbers","valueNumbers","valueNumbersArray","fieldLength","valueStr","isLongerThanField","isInvalidStart","some","reg","shouldRemovePrefixFromInput","splice","hasCountryCode","maskWithoutCountryCode","every","digit","validateInput","unshift","getCursorFromRef","inputRef","start","current","selectionStart","end","selectionEnd","useCursorPosition","options","hasFocus","isDeleting","position","nextNumPosition","maskAfterCursor","foundNextDigit","nextPosition","item","arr","nextSymbolIsNotPartOfMask","undefined","offset","getNextNumPosition","useEffect","input","nativePosition","setSelectionRange","useMaskFormattingTools","useMemo","formatValue","valueEditableNumbersArrray","_","injectedTrailingMask","result","isEditableSymbol","injectedEditableNumbers","shift","getFormatFunc","removeMaskNumbersAfterDeletedSymbol","PhoneInput","prefixLength","onChange","onKeyDown","placeholderNumberSymbol","queryName","initValue","hasPlaceholderMask","useState","String","setValue","initialCursor","createRef","isDeleteOperation","useRef","cursorPosition","correctPrefixSelection","positionEnd","addEventListener","removeEventListener","usePrefixSelection","generatedPlaceholder","generatePlaceholder","placeholderMask","getPlaceholderMask","handleChange","eventProps","event","isNotInitialValue","newValueIsLongerThanField","preformattedValue","formattedValue","getCursorFromValue","preventDefault","handleDeleteSymbol","closestIndex","prefixIndex","currIndex","Number","closestEditableIndex","finalValue","query","UrlParse","window","location","phoneValue","decodeURIComponent","useValueFromQuery","wrapper","placeholderWrapper","placeholderHidden","onBlur","onFocus","key","target","isCursorOnPrefix","isPhoneError","active","dirtySinceLastSubmit","submitError","touched","DEFAULT_PHONE_MESSAGE","isValidPhone","blockedPhones","clearValue","phone","VALID_STATUS","validate","defaultMessages","customMessage","alfaBlockedPhones","validateAlfaPhoneValue","isValidAlfaPhone","validateAlfaPhone","message","validators","allValues","validator","composeValidators","validateNotEmpty","phoneFormatsMap","noBrackets","onlyNumbers","brackets","Phone","React","Field","formatRules","getCaption","isError","isRequired","isSuccess","settings","validatePhone","data","dispatchesFocus","receivesFocus","render","formats","meta","inputName","inputValue","restInputProps","phoneFormatRules","inputProps","actions","format","regexp","RegExp","FormPhone","submitSucceeded","submitting","StaticActions","setTimeout","onComplete","field","onSelect","getRef","focus","ref","updateAction","onUpdateFormAction","getNames","names","isArray","Object","assign","mutators","useForm","HintDesktop","Icon","xmlns","transform","Tooltip","preventEventBubbling","content","onClose","onOpen","button","getHandler","callback","autoComplete","valid","onMouseDown","onMouseUp","onPaste","paddingLeft","dependencies","Widget","hoist","createWrapper","RULES","getDisplayName","TargetWidget","displayName","styler","injectedClassName","classNames","isEmpty","rule","fallback","push","generateStyle","Wrapper","hoistStatics","hasOwn","hasOwnProperty","classes","i","arguments","arg","argType","inner","apply","prototype","call","module","exports","default","array","iteratee","string","reAsciiWord","match","Symbol","arrayMap","isSymbol","symbolProto","symbolToString","baseToString","baseSlice","castSlice","hasUnicode","stringToArray","methodName","strSymbols","charAt","trailing","reHasUnicode","reHasUnicodeWord","asciiToArray","unicodeToArray","rsAstral","rsCombo","rsFitz","rsNonAstral","rsRegional","rsSurrPair","reOptMod","rsOptVar","rsSeq","rsSymbol","reUnicode","rsDingbatRange","rsLowerRange","rsUpperRange","rsBreakRange","rsMathOpRange","rsBreak","rsDigits","rsDingbat","rsLower","rsMisc","rsUpper","rsMiscLower","rsMiscUpper","rsOptContrLower","rsOptContrUpper","rsModifier","rsEmoji","reUnicodeWord","baseGetTag","isObjectLike","createCaseFirst","asciiWords","hasUnicodeWord","unicodeWords","pattern","guard","has","decode","e","encode","encodeURIComponent","stringify","obj","pairs","isNaN","parse","part","parser","exec","port","protocol","required","qs","slashes","protocolre","trimLeft","str","rules","address","NaN","ignore","hash","lolcation","loc","g","self","finaldestination","Url","unescape","pathname","href","extractProtocol","toLowerCase","this","relative","extracted","instruction","instructions","url","indexOf","base","path","concat","last","up","resolve","host","hostname","username","password","auth","origin","set","fn","pop","ins"],"sourceRoot":""}