@hh.ru/magritte-ui-phone-input 1.0.2 → 1.0.4

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.
@@ -4,7 +4,7 @@ import { forwardRef, useRef, useState, useEffect } from 'react';
4
4
  import classNames from 'classnames';
5
5
  import { useBreakpoint } from '@hh.ru/magritte-ui-breakpoint';
6
6
 
7
- var styles = {"calling-code-input":"magritte-calling-code-input___Hb20f_1-0-2","callingCodeInput":"magritte-calling-code-input___Hb20f_1-0-2","calling-code-input-container":"magritte-calling-code-input-container___UXmHV_1-0-2","callingCodeInputContainer":"magritte-calling-code-input-container___UXmHV_1-0-2","disabled":"magritte-disabled___fvEeH_1-0-2","focused":"magritte-focused___Ok8x4_1-0-2","invalid":"magritte-invalid___kptbH_1-0-2","ghost-data":"magritte-ghost-data___zShvn_1-0-2","ghostData":"magritte-ghost-data___zShvn_1-0-2","focus-visible":"magritte-focus-visible___kbwmg_1-0-2","focusVisible":"magritte-focus-visible___kbwmg_1-0-2","flag-container":"magritte-flag-container___wsoAd_1-0-2","flagContainer":"magritte-flag-container___wsoAd_1-0-2","input-container":"magritte-input-container___WSSZi_1-0-2","inputContainer":"magritte-input-container___WSSZi_1-0-2","phone-input-container":"magritte-phone-input-container___D587K_1-0-2","phoneInputContainer":"magritte-phone-input-container___D587K_1-0-2","flag-icon":"magritte-flag-icon___teIdY_1-0-2","flagIcon":"magritte-flag-icon___teIdY_1-0-2","flag-emoji":"magritte-flag-emoji___pyJS7_1-0-2","flagEmoji":"magritte-flag-emoji___pyJS7_1-0-2","no-flag-emoji":"magritte-no-flag-emoji___yiuyr_1-0-2","noFlagEmoji":"magritte-no-flag-emoji___yiuyr_1-0-2"};
7
+ var styles = {"calling-code-input":"magritte-calling-code-input___Hb20f_1-0-4","callingCodeInput":"magritte-calling-code-input___Hb20f_1-0-4","calling-code-input-container":"magritte-calling-code-input-container___UXmHV_1-0-4","callingCodeInputContainer":"magritte-calling-code-input-container___UXmHV_1-0-4","disabled":"magritte-disabled___fvEeH_1-0-4","focused":"magritte-focused___Ok8x4_1-0-4","invalid":"magritte-invalid___kptbH_1-0-4","ghost-data":"magritte-ghost-data___zShvn_1-0-4","ghostData":"magritte-ghost-data___zShvn_1-0-4","focus-visible":"magritte-focus-visible___kbwmg_1-0-4","focusVisible":"magritte-focus-visible___kbwmg_1-0-4","flag-container":"magritte-flag-container___wsoAd_1-0-4","flagContainer":"magritte-flag-container___wsoAd_1-0-4","input-container":"magritte-input-container___WSSZi_1-0-4","inputContainer":"magritte-input-container___WSSZi_1-0-4","phone-input-container":"magritte-phone-input-container___D587K_1-0-4","phoneInputContainer":"magritte-phone-input-container___D587K_1-0-4","flag-icon":"magritte-flag-icon___teIdY_1-0-4","flagIcon":"magritte-flag-icon___teIdY_1-0-4","flag-emoji":"magritte-flag-emoji___pyJS7_1-0-4","flagEmoji":"magritte-flag-emoji___pyJS7_1-0-4","no-flag-emoji":"magritte-no-flag-emoji___yiuyr_1-0-4","noFlagEmoji":"magritte-no-flag-emoji___yiuyr_1-0-4"};
8
8
 
9
9
  const CallingCodeInput = forwardRef(({ onFocus, onBlur, value, onChange, flag, onKeyDown, invalid, disabled, className }, ref) => {
10
10
  const inputRef = useRef(null);
@@ -45,4 +45,4 @@ const CallingCodeInput = forwardRef(({ onFocus, onBlur, value, onChange, flag, o
45
45
  CallingCodeInput.displayName = 'CallingCodeInput';
46
46
 
47
47
  export { CallingCodeInput as C, styles as s };
48
- //# sourceMappingURL=CallingCodeInput-Da5MyyDD.js.map
48
+ //# sourceMappingURL=CallingCodeInput-D0eba3P4.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CallingCodeInput-Da5MyyDD.js","sources":["../src/CallingCodeInput.tsx"],"sourcesContent":["import {\n type KeyboardEventHandler,\n type ChangeEvent,\n type ReactNode,\n forwardRef,\n useState,\n useEffect,\n useRef,\n} from 'react';\nimport classnames from 'classnames';\n\nimport { useBreakpoint } from '@hh.ru/magritte-ui-breakpoint';\n\nimport styles from './phoneInput.less';\n\ninterface CallingCodeInputProps {\n flag: ReactNode;\n onChange: (value: string) => void;\n value: string;\n onFocus: VoidFunction;\n onBlur: VoidFunction;\n onKeyDown?: KeyboardEventHandler<HTMLInputElement>;\n invalid?: boolean;\n disabled?: boolean;\n className?: string | boolean;\n}\n\nexport const CallingCodeInput = forwardRef<HTMLDivElement, CallingCodeInputProps>(\n ({ onFocus, onBlur, value, onChange, flag, onKeyDown, invalid, disabled, className }, ref) => {\n const inputRef = useRef<HTMLInputElement>(null);\n const [isFocused, setIsFocused] = useState(false);\n const [isFocusVisible, setIsFocusVisible] = useState(false);\n const { isMobile } = useBreakpoint();\n\n useEffect(() => {\n if (inputRef.current) {\n setIsFocusVisible(isFocused && inputRef.current.classList.contains('focus-visible'));\n }\n }, [isFocused]);\n\n return (\n <div\n className={classnames(styles.callingCodeInputContainer, className, {\n [styles.focusVisible]: isFocusVisible && !disabled,\n [styles.focused]: isFocused && !disabled,\n [styles.invalid]: invalid && !disabled,\n [styles.disabled]: disabled,\n })}\n tabIndex={0}\n onFocus={() => {\n if (!isMobile) {\n inputRef.current?.focus();\n return;\n }\n\n setIsFocused(true);\n onFocus();\n }}\n onBlur={() => {\n if (!isMobile) {\n return;\n }\n setIsFocused(false);\n onBlur();\n }}\n ref={ref}\n data-qa=\"magritte-phone-input-calling-code\"\n >\n <div className={styles.flagContainer}>{flag}</div>\n <div className={styles.inputContainer}>\n <input\n ref={inputRef}\n onFocus={() => {\n setIsFocused(true);\n onFocus();\n }}\n onBlur={() => {\n setIsFocused(false);\n onBlur();\n }}\n onKeyDown={onKeyDown}\n className={styles.callingCodeInput}\n value={value}\n onChange={(event: ChangeEvent<HTMLInputElement>) => onChange(event.target.value)}\n disabled={disabled}\n data-qa=\"magritte-phone-input-calling-code-input\"\n />\n <div className={styles.ghostData} data-qa=\"magritte-phone-input-calling-code-value\">\n {value}\n </div>\n </div>\n </div>\n );\n }\n);\n\nCallingCodeInput.displayName = 'CallingCodeInput';\n"],"names":["_jsxs","classnames","_jsx"],"mappings":"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"}
1
+ {"version":3,"file":"CallingCodeInput-D0eba3P4.js","sources":["../src/CallingCodeInput.tsx"],"sourcesContent":["import {\n type KeyboardEventHandler,\n type ChangeEvent,\n type ReactNode,\n forwardRef,\n useState,\n useEffect,\n useRef,\n} from 'react';\nimport classnames from 'classnames';\n\nimport { useBreakpoint } from '@hh.ru/magritte-ui-breakpoint';\n\nimport styles from './phoneInput.less';\n\ninterface CallingCodeInputProps {\n flag: ReactNode;\n onChange: (value: string) => void;\n value: string;\n onFocus: VoidFunction;\n onBlur: VoidFunction;\n onKeyDown?: KeyboardEventHandler<HTMLInputElement>;\n invalid?: boolean;\n disabled?: boolean;\n className?: string | boolean;\n}\n\nexport const CallingCodeInput = forwardRef<HTMLDivElement, CallingCodeInputProps>(\n ({ onFocus, onBlur, value, onChange, flag, onKeyDown, invalid, disabled, className }, ref) => {\n const inputRef = useRef<HTMLInputElement>(null);\n const [isFocused, setIsFocused] = useState(false);\n const [isFocusVisible, setIsFocusVisible] = useState(false);\n const { isMobile } = useBreakpoint();\n\n useEffect(() => {\n if (inputRef.current) {\n setIsFocusVisible(isFocused && inputRef.current.classList.contains('focus-visible'));\n }\n }, [isFocused]);\n\n return (\n <div\n className={classnames(styles.callingCodeInputContainer, className, {\n [styles.focusVisible]: isFocusVisible && !disabled,\n [styles.focused]: isFocused && !disabled,\n [styles.invalid]: invalid && !disabled,\n [styles.disabled]: disabled,\n })}\n tabIndex={0}\n onFocus={() => {\n if (!isMobile) {\n inputRef.current?.focus();\n return;\n }\n\n setIsFocused(true);\n onFocus();\n }}\n onBlur={() => {\n if (!isMobile) {\n return;\n }\n setIsFocused(false);\n onBlur();\n }}\n ref={ref}\n data-qa=\"magritte-phone-input-calling-code\"\n >\n <div className={styles.flagContainer}>{flag}</div>\n <div className={styles.inputContainer}>\n <input\n ref={inputRef}\n onFocus={() => {\n setIsFocused(true);\n onFocus();\n }}\n onBlur={() => {\n setIsFocused(false);\n onBlur();\n }}\n onKeyDown={onKeyDown}\n className={styles.callingCodeInput}\n value={value}\n onChange={(event: ChangeEvent<HTMLInputElement>) => onChange(event.target.value)}\n disabled={disabled}\n data-qa=\"magritte-phone-input-calling-code-input\"\n />\n <div className={styles.ghostData} data-qa=\"magritte-phone-input-calling-code-value\">\n {value}\n </div>\n </div>\n </div>\n );\n }\n);\n\nCallingCodeInput.displayName = 'CallingCodeInput';\n"],"names":["_jsxs","classnames","_jsx"],"mappings":"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"}
@@ -3,5 +3,5 @@ import 'react/jsx-runtime';
3
3
  import 'react';
4
4
  import 'classnames';
5
5
  import '@hh.ru/magritte-ui-breakpoint';
6
- export { C as CallingCodeInput } from './CallingCodeInput-Da5MyyDD.js';
6
+ export { C as CallingCodeInput } from './CallingCodeInput-D0eba3P4.js';
7
7
  //# sourceMappingURL=CallingCodeInput.js.map
package/PhoneInput.d.ts CHANGED
@@ -1,29 +1,51 @@
1
1
  import { type FC, type Ref } from 'react';
2
2
  import { type CountryCode, type CountryCallingCode } from 'libphonenumber-js';
3
3
  export interface PhoneInputProps {
4
+ /** Код страны который будет выбран при инициализации компонента */
4
5
  defaultCountry?: CountryCode;
6
+ /** Национальная часть номера который будет введен в компонент при инициализации */
5
7
  defaultNationalNumber?: string;
8
+ /** Обработчик изменения номера телефона */
6
9
  onChange: (data: {
10
+ /** Двухбуквенный код страны */
7
11
  country: CountryCode;
12
+ /** Международный телефонный код страны */
8
13
  callingCode: CountryCallingCode;
14
+ /** Национальная часть номера, содержит только цифры */
9
15
  nationalNumber: string;
16
+ /** Номер телефона в международном формате */
10
17
  phone: string;
18
+ /** Флаг валидности номера */
11
19
  isValid: boolean;
20
+ /** Флаг загрузки API для валидации номера */
12
21
  isPhoneValidationApiLoaded: boolean;
13
22
  }) => void;
23
+ /** Обработчик ошибки загрузки API для валидации номера */
14
24
  onPhoneValidationApiLoadError?: (error: Error, reload: VoidFunction) => void;
25
+ /** Список стран доступных для выбора */
15
26
  availableCountries?: CountryCode[];
27
+ /** Флаг приоритетных стран, которые будут отображаться в начале списка */
16
28
  priorityCountries?: CountryCode[];
29
+ /** Флаг валидности номера */
17
30
  invalid?: boolean;
31
+ /** Описание которое будет отображаться под полями ввода */
18
32
  description?: string;
33
+ /** Сообщение об ошибке валидации, будет отображаться только если установлен флаг invalid */
19
34
  errorMessage?: string;
35
+ /** Локализация */
20
36
  trls: {
37
+ /** Словарь содержащий названия стран */
21
38
  countryNames: Partial<Record<CountryCode, string>>;
39
+ /** Название блока с приоритетными странами */
22
40
  priorityCountriesTitle: string;
23
41
  };
42
+ /** Обработчик фокуса на компоненте */
24
43
  onFocus?: VoidFunction;
44
+ /** Обработчик потери фокуса на компоненте */
25
45
  onBlur?: VoidFunction;
46
+ /** Атрибут data-qa */
26
47
  'data-qa'?: string;
48
+ /** Ссылка на обертку полей ввода */
27
49
  inputsWrapperRef?: Ref<HTMLDivElement>;
28
50
  }
29
51
  export declare const PhoneInput: FC<PhoneInputProps>;
package/PhoneInput.js CHANGED
@@ -8,7 +8,7 @@ import { RegionSelect } from './RegionSelect.js';
8
8
  import { phoneFormatterFactory } from './phoneFormatter.js';
9
9
  import { useCountrySelectOptions } from './useCountriesSelectOptions.js';
10
10
  import { useLibPhoneNumber } from './useLibPhoneNumber.js';
11
- import { s as styles } from './CallingCodeInput-Da5MyyDD.js';
11
+ import { s as styles } from './CallingCodeInput-D0eba3P4.js';
12
12
  import 'classnames';
13
13
  import '@hh.ru/magritte-ui-cell';
14
14
  import '@hh.ru/magritte-ui-icon/country';
@@ -34,7 +34,7 @@ const PhoneInput = forwardRef(({ defaultCountry = 'RU', defaultNationalNumber =
34
34
  return 'max';
35
35
  }, [availableCountries, trls.countryNames]);
36
36
  const libPhoneNumberAPI = useLibPhoneNumber(metadataVariant);
37
- const { getCountryCallingCode, parsePhoneNumber, isValidPhoneNumber, isLoaded } = libPhoneNumberAPI;
37
+ const { getCountryCallingCode, isValidPhoneNumber, isLoaded } = libPhoneNumberAPI;
38
38
  const [country, setCountry] = useState(defaultCountry);
39
39
  const countryRef = useRef(country);
40
40
  const countryCallingCodeRef = useRef(getCountryCallingCode(country));
@@ -89,14 +89,8 @@ const PhoneInput = forwardRef(({ defaultCountry = 'RU', defaultNationalNumber =
89
89
  });
90
90
  };
91
91
  return (jsxs("div", { ref: ref, children: [jsxs("div", { className: styles.phoneInputContainer, onFocus: focusHandler, onBlur: blurHandler, ref: wrapperRefMultiplexer, "data-qa": dataQa, children: [jsx(RegionSelect, { country: country, selectOptions: selectOptions, callingCode: countryCallingCodeRef.current, onChange: (newCountry) => {
92
- try {
93
- const phone = parsePhoneNumber(phoneValue, newCountry);
94
- if (phone.country !== newCountry) {
95
- setPhoneValue('');
96
- }
97
- }
98
- catch {
99
- // do nothing
92
+ if (country !== newCountry) {
93
+ setPhoneValue('');
100
94
  }
101
95
  setCountry(newCountry);
102
96
  onChangeHandler(newCountry, phoneValue);
package/PhoneInput.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"PhoneInput.js","sources":["../src/PhoneInput.tsx"],"sourcesContent":["import { type FC, type Ref, useState, useRef, useMemo, forwardRef } from 'react';\nimport { type CountryCode, type CountryCallingCode } from 'libphonenumber-js';\n\nimport { useMultipleRefs } from '@hh.ru/magritte-common-use-multiple-refs';\nimport { FormHelper } from '@hh.ru/magritte-ui-form-helper';\nimport { Input } from '@hh.ru/magritte-ui-input';\nimport { RegionSelect } from '@hh.ru/magritte-ui-phone-input/RegionSelect';\nimport { phoneFormatterFactory } from '@hh.ru/magritte-ui-phone-input/phoneFormatter';\nimport { useCountrySelectOptions } from '@hh.ru/magritte-ui-phone-input/useCountriesSelectOptions';\nimport { type MetadataVariant, useLibPhoneNumber } from '@hh.ru/magritte-ui-phone-input/useLibPhoneNumber';\n\nimport styles from './phoneInput.less';\n\nexport interface PhoneInputProps {\n defaultCountry?: CountryCode;\n defaultNationalNumber?: string;\n onChange: (data: {\n country: CountryCode;\n callingCode: CountryCallingCode;\n nationalNumber: string;\n phone: string;\n isValid: boolean;\n isPhoneValidationApiLoaded: boolean;\n }) => void;\n onPhoneValidationApiLoadError?: (error: Error, reload: VoidFunction) => void;\n availableCountries?: CountryCode[];\n priorityCountries?: CountryCode[];\n invalid?: boolean;\n description?: string;\n errorMessage?: string;\n trls: {\n countryNames: Partial<Record<CountryCode, string>>;\n priorityCountriesTitle: string;\n };\n onFocus?: VoidFunction;\n onBlur?: VoidFunction;\n 'data-qa'?: string;\n inputsWrapperRef?: Ref<HTMLDivElement>;\n}\n\nconst DEFAULT_PRIORITY_COUNTRIES: CountryCode[] = ['RU', 'BY', 'KZ', 'UZ'] as const;\nconst notDigitsRegExp = /[\\D]/g;\n\nexport const PhoneInput: FC<PhoneInputProps> = forwardRef<HTMLDivElement, PhoneInputProps>(\n (\n {\n defaultCountry = 'RU',\n defaultNationalNumber = '',\n onChange,\n availableCountries,\n invalid,\n description,\n errorMessage,\n priorityCountries = DEFAULT_PRIORITY_COUNTRIES,\n onFocus,\n onBlur,\n trls,\n 'data-qa': dataQa = 'magritte-phone-input-wrapper',\n inputsWrapperRef,\n },\n ref\n ) => {\n const metadataVariant: MetadataVariant = useMemo<MetadataVariant>(() => {\n const minimalMetadata =\n availableCountries?.length === DEFAULT_PRIORITY_COUNTRIES.length &&\n DEFAULT_PRIORITY_COUNTRIES.every((country) => availableCountries.includes(country));\n if (minimalMetadata) {\n return 'ru-by-kz-uz';\n }\n\n const keys = Object.keys(trls.countryNames);\n if (\n keys.length === DEFAULT_PRIORITY_COUNTRIES.length &&\n DEFAULT_PRIORITY_COUNTRIES.every((country) => keys.includes(country))\n ) {\n return 'ru-by-kz-uz';\n }\n\n return 'max';\n }, [availableCountries, trls.countryNames]);\n\n const libPhoneNumberAPI = useLibPhoneNumber(metadataVariant);\n const { getCountryCallingCode, parsePhoneNumber, isValidPhoneNumber, isLoaded } = libPhoneNumberAPI;\n const [country, setCountry] = useState<CountryCode>(defaultCountry);\n const countryRef = useRef<CountryCode>(country);\n const countryCallingCodeRef = useRef<CountryCallingCode>(getCountryCallingCode(country));\n const focusInsideRef = useRef(false);\n const wrapperRef = useRef<HTMLDivElement>(null);\n const wrapperRefMultiplexer = useMultipleRefs(wrapperRef, inputsWrapperRef);\n const [phoneValue, setPhoneValue] = useState(defaultNationalNumber);\n const phoneInputRef = useRef<HTMLInputElement>(null);\n countryRef.current = country;\n countryCallingCodeRef.current = getCountryCallingCode(country);\n\n const selectOptions = useCountrySelectOptions({\n availableCountries,\n trls,\n priorityCountries,\n libPhoneNumberAPI,\n });\n\n const phoneFormatter = useMemo(() => {\n return phoneFormatterFactory({\n // обернуто в промис т.к. форматтер вызывается в процессе рендера BaseInput и не может синхронно\n // вызывать изменения стейта другого компонента\n setCountry: (country) => Promise.resolve().then(() => setCountry(country)),\n currentCountryRef: countryRef,\n libPhoneNumberAPI,\n });\n }, [libPhoneNumberAPI]);\n\n const onChangeHandler = (country: CountryCode, phoneValue: string) => {\n const callingCode = getCountryCallingCode(country);\n const nationalNumber = phoneValue.replace(notDigitsRegExp, '');\n onChange({\n country,\n callingCode,\n phone: `+${callingCode}${nationalNumber}`,\n nationalNumber,\n isValid: isValidPhoneNumber(nationalNumber, country),\n isPhoneValidationApiLoaded: isLoaded,\n });\n };\n\n const focusHandler = () => {\n if (focusInsideRef.current) {\n return;\n }\n\n focusInsideRef.current = true;\n onFocus?.();\n };\n\n const blurHandler = () => {\n requestAnimationFrame(() => {\n if (wrapperRef.current?.contains(document.activeElement)) {\n return;\n }\n\n focusInsideRef.current = false;\n onBlur?.();\n });\n };\n\n return (\n <div ref={ref}>\n <div\n className={styles.phoneInputContainer}\n onFocus={focusHandler}\n onBlur={blurHandler}\n ref={wrapperRefMultiplexer}\n data-qa={dataQa}\n >\n <RegionSelect\n country={country}\n selectOptions={selectOptions}\n callingCode={countryCallingCodeRef.current}\n onChange={(newCountry) => {\n try {\n const phone = parsePhoneNumber(phoneValue, newCountry);\n if (phone.country !== newCountry) {\n setPhoneValue('');\n }\n } catch {\n // do nothing\n }\n setCountry(newCountry);\n onChangeHandler(newCountry, phoneValue);\n phoneInputRef.current?.focus();\n }}\n availableCountries={availableCountries}\n priorityCountries={priorityCountries}\n libPhoneNumberAPI={libPhoneNumberAPI}\n invalid={invalid}\n />\n <Input\n ref={phoneInputRef}\n size=\"large\"\n onChange={(value) => {\n setPhoneValue(value);\n onChangeHandler(country, value);\n }}\n formatter={phoneFormatter}\n value={phoneValue}\n invalid={invalid}\n inputMode=\"tel\"\n data-qa=\"magritte-phone-input-national-number-input\"\n />\n </div>\n <FormHelper\n invalid={invalid}\n description={description}\n errorMessage={errorMessage}\n data-qa=\"magritte-phone-input-form-helper\"\n />\n </div>\n );\n }\n);\n\nPhoneInput.displayName = 'PhoneInput';\n"],"names":["_jsxs","_jsx"],"mappings":"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"}
1
+ {"version":3,"file":"PhoneInput.js","sources":["../src/PhoneInput.tsx"],"sourcesContent":["import { type FC, type Ref, useState, useRef, useMemo, forwardRef } from 'react';\nimport { type CountryCode, type CountryCallingCode } from 'libphonenumber-js';\n\nimport { useMultipleRefs } from '@hh.ru/magritte-common-use-multiple-refs';\nimport { FormHelper } from '@hh.ru/magritte-ui-form-helper';\nimport { Input } from '@hh.ru/magritte-ui-input';\nimport { RegionSelect } from '@hh.ru/magritte-ui-phone-input/RegionSelect';\nimport { phoneFormatterFactory } from '@hh.ru/magritte-ui-phone-input/phoneFormatter';\nimport { useCountrySelectOptions } from '@hh.ru/magritte-ui-phone-input/useCountriesSelectOptions';\nimport { type MetadataVariant, useLibPhoneNumber } from '@hh.ru/magritte-ui-phone-input/useLibPhoneNumber';\n\nimport styles from './phoneInput.less';\n\nexport interface PhoneInputProps {\n /** Код страны который будет выбран при инициализации компонента */\n defaultCountry?: CountryCode;\n /** Национальная часть номера который будет введен в компонент при инициализации */\n defaultNationalNumber?: string;\n /** Обработчик изменения номера телефона */\n onChange: (data: {\n /** Двухбуквенный код страны */\n country: CountryCode;\n /** Международный телефонный код страны */\n callingCode: CountryCallingCode;\n /** Национальная часть номера, содержит только цифры */\n nationalNumber: string;\n /** Номер телефона в международном формате */\n phone: string;\n /** Флаг валидности номера */\n isValid: boolean;\n /** Флаг загрузки API для валидации номера */\n isPhoneValidationApiLoaded: boolean;\n }) => void;\n /** Обработчик ошибки загрузки API для валидации номера */\n onPhoneValidationApiLoadError?: (error: Error, reload: VoidFunction) => void;\n /** Список стран доступных для выбора */\n availableCountries?: CountryCode[];\n /** Флаг приоритетных стран, которые будут отображаться в начале списка */\n priorityCountries?: CountryCode[];\n /** Флаг валидности номера */\n invalid?: boolean;\n /** Описание которое будет отображаться под полями ввода */\n description?: string;\n /** Сообщение об ошибке валидации, будет отображаться только если установлен флаг invalid */\n errorMessage?: string;\n /** Локализация */\n trls: {\n /** Словарь содержащий названия стран */\n countryNames: Partial<Record<CountryCode, string>>;\n /** Название блока с приоритетными странами */\n priorityCountriesTitle: string;\n };\n /** Обработчик фокуса на компоненте */\n onFocus?: VoidFunction;\n /** Обработчик потери фокуса на компоненте */\n onBlur?: VoidFunction;\n /** Атрибут data-qa */\n 'data-qa'?: string;\n /** Ссылка на обертку полей ввода */\n inputsWrapperRef?: Ref<HTMLDivElement>;\n}\n\nconst DEFAULT_PRIORITY_COUNTRIES: CountryCode[] = ['RU', 'BY', 'KZ', 'UZ'] as const;\nconst notDigitsRegExp = /[\\D]/g;\n\nexport const PhoneInput: FC<PhoneInputProps> = forwardRef<HTMLDivElement, PhoneInputProps>(\n (\n {\n defaultCountry = 'RU',\n defaultNationalNumber = '',\n onChange,\n availableCountries,\n invalid,\n description,\n errorMessage,\n priorityCountries = DEFAULT_PRIORITY_COUNTRIES,\n onFocus,\n onBlur,\n trls,\n 'data-qa': dataQa = 'magritte-phone-input-wrapper',\n inputsWrapperRef,\n },\n ref\n ) => {\n const metadataVariant: MetadataVariant = useMemo<MetadataVariant>(() => {\n const minimalMetadata =\n availableCountries?.length === DEFAULT_PRIORITY_COUNTRIES.length &&\n DEFAULT_PRIORITY_COUNTRIES.every((country) => availableCountries.includes(country));\n if (minimalMetadata) {\n return 'ru-by-kz-uz';\n }\n\n const keys = Object.keys(trls.countryNames);\n if (\n keys.length === DEFAULT_PRIORITY_COUNTRIES.length &&\n DEFAULT_PRIORITY_COUNTRIES.every((country) => keys.includes(country))\n ) {\n return 'ru-by-kz-uz';\n }\n\n return 'max';\n }, [availableCountries, trls.countryNames]);\n\n const libPhoneNumberAPI = useLibPhoneNumber(metadataVariant);\n const { getCountryCallingCode, isValidPhoneNumber, isLoaded } = libPhoneNumberAPI;\n const [country, setCountry] = useState<CountryCode>(defaultCountry);\n const countryRef = useRef<CountryCode>(country);\n const countryCallingCodeRef = useRef<CountryCallingCode>(getCountryCallingCode(country));\n const focusInsideRef = useRef(false);\n const wrapperRef = useRef<HTMLDivElement>(null);\n const wrapperRefMultiplexer = useMultipleRefs(wrapperRef, inputsWrapperRef);\n const [phoneValue, setPhoneValue] = useState(defaultNationalNumber);\n const phoneInputRef = useRef<HTMLInputElement>(null);\n countryRef.current = country;\n countryCallingCodeRef.current = getCountryCallingCode(country);\n\n const selectOptions = useCountrySelectOptions({\n availableCountries,\n trls,\n priorityCountries,\n libPhoneNumberAPI,\n });\n\n const phoneFormatter = useMemo(() => {\n return phoneFormatterFactory({\n // обернуто в промис т.к. форматтер вызывается в процессе рендера BaseInput и не может синхронно\n // вызывать изменения стейта другого компонента\n setCountry: (country) => Promise.resolve().then(() => setCountry(country)),\n currentCountryRef: countryRef,\n libPhoneNumberAPI,\n });\n }, [libPhoneNumberAPI]);\n\n const onChangeHandler = (country: CountryCode, phoneValue: string) => {\n const callingCode = getCountryCallingCode(country);\n const nationalNumber = phoneValue.replace(notDigitsRegExp, '');\n onChange({\n country,\n callingCode,\n phone: `+${callingCode}${nationalNumber}`,\n nationalNumber,\n isValid: isValidPhoneNumber(nationalNumber, country),\n isPhoneValidationApiLoaded: isLoaded,\n });\n };\n\n const focusHandler = () => {\n if (focusInsideRef.current) {\n return;\n }\n\n focusInsideRef.current = true;\n onFocus?.();\n };\n\n const blurHandler = () => {\n requestAnimationFrame(() => {\n if (wrapperRef.current?.contains(document.activeElement)) {\n return;\n }\n\n focusInsideRef.current = false;\n onBlur?.();\n });\n };\n\n return (\n <div ref={ref}>\n <div\n className={styles.phoneInputContainer}\n onFocus={focusHandler}\n onBlur={blurHandler}\n ref={wrapperRefMultiplexer}\n data-qa={dataQa}\n >\n <RegionSelect\n country={country}\n selectOptions={selectOptions}\n callingCode={countryCallingCodeRef.current}\n onChange={(newCountry) => {\n if (country !== newCountry) {\n setPhoneValue('');\n }\n setCountry(newCountry);\n onChangeHandler(newCountry, phoneValue);\n phoneInputRef.current?.focus();\n }}\n availableCountries={availableCountries}\n priorityCountries={priorityCountries}\n libPhoneNumberAPI={libPhoneNumberAPI}\n invalid={invalid}\n />\n <Input\n ref={phoneInputRef}\n size=\"large\"\n onChange={(value) => {\n setPhoneValue(value);\n onChangeHandler(country, value);\n }}\n formatter={phoneFormatter}\n value={phoneValue}\n invalid={invalid}\n inputMode=\"tel\"\n data-qa=\"magritte-phone-input-national-number-input\"\n />\n </div>\n <FormHelper\n invalid={invalid}\n description={description}\n errorMessage={errorMessage}\n data-qa=\"magritte-phone-input-form-helper\"\n />\n </div>\n );\n }\n);\n\nPhoneInput.displayName = 'PhoneInput';\n"],"names":["_jsxs","_jsx"],"mappings":";;;;;;;;;;;;;;;;;;AA8DA,MAAM,0BAA0B,GAAkB,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAU,CAAC;AACpF,MAAM,eAAe,GAAG,OAAO,CAAC;MAEnB,UAAU,GAAwB,UAAU,CACrD,CACI,EACI,cAAc,GAAG,IAAI,EACrB,qBAAqB,GAAG,EAAE,EAC1B,QAAQ,EACR,kBAAkB,EAClB,OAAO,EACP,WAAW,EACX,YAAY,EACZ,iBAAiB,GAAG,0BAA0B,EAC9C,OAAO,EACP,MAAM,EACN,IAAI,EACJ,SAAS,EAAE,MAAM,GAAG,8BAA8B,EAClD,gBAAgB,GACnB,EACD,GAAG,KACH;AACA,IAAA,MAAM,eAAe,GAAoB,OAAO,CAAkB,MAAK;QACnE,MAAM,eAAe,GACjB,kBAAkB,EAAE,MAAM,KAAK,0BAA0B,CAAC,MAAM;AAChE,YAAA,0BAA0B,CAAC,KAAK,CAAC,CAAC,OAAO,KAAK,kBAAkB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;QACxF,IAAI,eAAe,EAAE;AACjB,YAAA,OAAO,aAAa,CAAC;SACxB;QAED,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AAC5C,QAAA,IACI,IAAI,CAAC,MAAM,KAAK,0BAA0B,CAAC,MAAM;AACjD,YAAA,0BAA0B,CAAC,KAAK,CAAC,CAAC,OAAO,KAAK,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,EACvE;AACE,YAAA,OAAO,aAAa,CAAC;SACxB;AAED,QAAA,OAAO,KAAK,CAAC;KAChB,EAAE,CAAC,kBAAkB,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;AAE5C,IAAA,MAAM,iBAAiB,GAAG,iBAAiB,CAAC,eAAe,CAAC,CAAC;IAC7D,MAAM,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,QAAQ,EAAE,GAAG,iBAAiB,CAAC;IAClF,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAc,cAAc,CAAC,CAAC;AACpE,IAAA,MAAM,UAAU,GAAG,MAAM,CAAc,OAAO,CAAC,CAAC;IAChD,MAAM,qBAAqB,GAAG,MAAM,CAAqB,qBAAqB,CAAC,OAAO,CAAC,CAAC,CAAC;AACzF,IAAA,MAAM,cAAc,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;AACrC,IAAA,MAAM,UAAU,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAC;IAChD,MAAM,qBAAqB,GAAG,eAAe,CAAC,UAAU,EAAE,gBAAgB,CAAC,CAAC;IAC5E,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,qBAAqB,CAAC,CAAC;AACpE,IAAA,MAAM,aAAa,GAAG,MAAM,CAAmB,IAAI,CAAC,CAAC;AACrD,IAAA,UAAU,CAAC,OAAO,GAAG,OAAO,CAAC;AAC7B,IAAA,qBAAqB,CAAC,OAAO,GAAG,qBAAqB,CAAC,OAAO,CAAC,CAAC;IAE/D,MAAM,aAAa,GAAG,uBAAuB,CAAC;QAC1C,kBAAkB;QAClB,IAAI;QACJ,iBAAiB;QACjB,iBAAiB;AACpB,KAAA,CAAC,CAAC;AAEH,IAAA,MAAM,cAAc,GAAG,OAAO,CAAC,MAAK;AAChC,QAAA,OAAO,qBAAqB,CAAC;;;YAGzB,UAAU,EAAE,CAAC,OAAO,KAAK,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,MAAM,UAAU,CAAC,OAAO,CAAC,CAAC;AAC1E,YAAA,iBAAiB,EAAE,UAAU;YAC7B,iBAAiB;AACpB,SAAA,CAAC,CAAC;AACP,KAAC,EAAE,CAAC,iBAAiB,CAAC,CAAC,CAAC;AAExB,IAAA,MAAM,eAAe,GAAG,CAAC,OAAoB,EAAE,UAAkB,KAAI;AACjE,QAAA,MAAM,WAAW,GAAG,qBAAqB,CAAC,OAAO,CAAC,CAAC;QACnD,MAAM,cAAc,GAAG,UAAU,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;AAC/D,QAAA,QAAQ,CAAC;YACL,OAAO;YACP,WAAW;AACX,YAAA,KAAK,EAAE,CAAA,CAAA,EAAI,WAAW,CAAA,EAAG,cAAc,CAAE,CAAA;YACzC,cAAc;AACd,YAAA,OAAO,EAAE,kBAAkB,CAAC,cAAc,EAAE,OAAO,CAAC;AACpD,YAAA,0BAA0B,EAAE,QAAQ;AACvC,SAAA,CAAC,CAAC;AACP,KAAC,CAAC;IAEF,MAAM,YAAY,GAAG,MAAK;AACtB,QAAA,IAAI,cAAc,CAAC,OAAO,EAAE;YACxB,OAAO;SACV;AAED,QAAA,cAAc,CAAC,OAAO,GAAG,IAAI,CAAC;QAC9B,OAAO,IAAI,CAAC;AAChB,KAAC,CAAC;IAEF,MAAM,WAAW,GAAG,MAAK;QACrB,qBAAqB,CAAC,MAAK;YACvB,IAAI,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE;gBACtD,OAAO;aACV;AAED,YAAA,cAAc,CAAC,OAAO,GAAG,KAAK,CAAC;YAC/B,MAAM,IAAI,CAAC;AACf,SAAC,CAAC,CAAC;AACP,KAAC,CAAC;IAEF,QACIA,cAAK,GAAG,EAAE,GAAG,EACT,QAAA,EAAA,CAAAA,IAAA,CAAA,KAAA,EAAA,EACI,SAAS,EAAE,MAAM,CAAC,mBAAmB,EACrC,OAAO,EAAE,YAAY,EACrB,MAAM,EAAE,WAAW,EACnB,GAAG,EAAE,qBAAqB,aACjB,MAAM,EAAA,QAAA,EAAA,CAEfC,IAAC,YAAY,EAAA,EACT,OAAO,EAAE,OAAO,EAChB,aAAa,EAAE,aAAa,EAC5B,WAAW,EAAE,qBAAqB,CAAC,OAAO,EAC1C,QAAQ,EAAE,CAAC,UAAU,KAAI;AACrB,4BAAA,IAAI,OAAO,KAAK,UAAU,EAAE;gCACxB,aAAa,CAAC,EAAE,CAAC,CAAC;6BACrB;4BACD,UAAU,CAAC,UAAU,CAAC,CAAC;AACvB,4BAAA,eAAe,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;AACxC,4BAAA,aAAa,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC;AACnC,yBAAC,EACD,kBAAkB,EAAE,kBAAkB,EACtC,iBAAiB,EAAE,iBAAiB,EACpC,iBAAiB,EAAE,iBAAiB,EACpC,OAAO,EAAE,OAAO,EAAA,CAClB,EACFA,GAAA,CAAC,KAAK,EAAA,EACF,GAAG,EAAE,aAAa,EAClB,IAAI,EAAC,OAAO,EACZ,QAAQ,EAAE,CAAC,KAAK,KAAI;4BAChB,aAAa,CAAC,KAAK,CAAC,CAAC;AACrB,4BAAA,eAAe,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;AACpC,yBAAC,EACD,SAAS,EAAE,cAAc,EACzB,KAAK,EAAE,UAAU,EACjB,OAAO,EAAE,OAAO,EAChB,SAAS,EAAC,KAAK,EAAA,SAAA,EACP,4CAA4C,EACtD,CAAA,CAAA,EAAA,CACA,EACNA,GAAA,CAAC,UAAU,EACP,EAAA,OAAO,EAAE,OAAO,EAChB,WAAW,EAAE,WAAW,EACxB,YAAY,EAAE,YAAY,EAAA,SAAA,EAClB,kCAAkC,EAC5C,CAAA,CAAA,EAAA,CACA,EACR;AACN,CAAC,EACH;AAEF,UAAU,CAAC,WAAW,GAAG,YAAY;;;;"}
package/RegionSelect.js CHANGED
@@ -4,7 +4,7 @@ import { useState, useRef, useCallback, useEffect } from 'react';
4
4
  import classNames from 'classnames';
5
5
  import { CellText, Cell, CellRightLabel } from '@hh.ru/magritte-ui-cell';
6
6
  import { RUSize24, BYSize24, KZSize24, UZSize24 } from '@hh.ru/magritte-ui-icon/country';
7
- import { s as styles, C as CallingCodeInput } from './CallingCodeInput-Da5MyyDD.js';
7
+ import { s as styles, C as CallingCodeInput } from './CallingCodeInput-D0eba3P4.js';
8
8
  import { useIsFlagEmojiSupported } from './useIsFlagEmojiSupported.js';
9
9
  import { Select } from '@hh.ru/magritte-ui-select';
10
10
  import '@hh.ru/magritte-ui-breakpoint';
package/index.css CHANGED
@@ -49,7 +49,7 @@
49
49
  --magritte-color-component-input-text-state-content-focused-v19-1-2:#ffffff;
50
50
  --magritte-color-component-input-text-state-content-invalid-v19-1-2:#ffffff;
51
51
  }
52
- .magritte-calling-code-input___Hb20f_1-0-2{
52
+ .magritte-calling-code-input___Hb20f_1-0-4{
53
53
  display:none;
54
54
  position:absolute;
55
55
  inset:0;
@@ -71,16 +71,16 @@
71
71
  text-decoration:var(--magritte-typography-label-2-regular-text-decoration-v19-1-2);
72
72
  }
73
73
  @media (min-width: 1020px){
74
- body.magritte-old-layout .magritte-calling-code-input___Hb20f_1-0-2{
74
+ body.magritte-old-layout .magritte-calling-code-input___Hb20f_1-0-4{
75
75
  display:block;
76
76
  }
77
77
  }
78
78
  @media (min-width: 1024px){
79
- body:not(.magritte-old-layout) .magritte-calling-code-input___Hb20f_1-0-2{
79
+ body:not(.magritte-old-layout) .magritte-calling-code-input___Hb20f_1-0-4{
80
80
  display:block;
81
81
  }
82
82
  }
83
- .magritte-calling-code-input-container___UXmHV_1-0-2{
83
+ .magritte-calling-code-input-container___UXmHV_1-0-4{
84
84
  display:inline-flex;
85
85
  gap:12px;
86
86
  background-color:var(--magritte-color-component-input-background-field-v19-1-2);
@@ -89,54 +89,54 @@
89
89
  box-shadow:inset 0 0 0 1px var(--magritte-color-component-input-stroke-field-v19-1-2);
90
90
  cursor:text;
91
91
  }
92
- .magritte-calling-code-input-container___UXmHV_1-0-2:hover:not(.magritte-disabled___fvEeH_1-0-2):not(.magritte-focused___Ok8x4_1-0-2):not(.magritte-invalid___kptbH_1-0-2){
92
+ .magritte-calling-code-input-container___UXmHV_1-0-4:hover:not(.magritte-disabled___fvEeH_1-0-4):not(.magritte-focused___Ok8x4_1-0-4):not(.magritte-invalid___kptbH_1-0-4){
93
93
  background-color:var(--magritte-color-component-input-background-state-field-hovered-v19-1-2);
94
94
  box-shadow:inset 0 0 0 1px var(--magritte-color-component-input-stroke-state-field-hovered-v19-1-2);
95
95
  }
96
- .magritte-calling-code-input-container___UXmHV_1-0-2:hover:not(.magritte-disabled___fvEeH_1-0-2):not(.magritte-focused___Ok8x4_1-0-2):not(.magritte-invalid___kptbH_1-0-2) .magritte-calling-code-input___Hb20f_1-0-2,
97
- .magritte-calling-code-input-container___UXmHV_1-0-2:hover:not(.magritte-disabled___fvEeH_1-0-2):not(.magritte-focused___Ok8x4_1-0-2):not(.magritte-invalid___kptbH_1-0-2) .magritte-ghost-data___zShvn_1-0-2{
96
+ .magritte-calling-code-input-container___UXmHV_1-0-4:hover:not(.magritte-disabled___fvEeH_1-0-4):not(.magritte-focused___Ok8x4_1-0-4):not(.magritte-invalid___kptbH_1-0-4) .magritte-calling-code-input___Hb20f_1-0-4,
97
+ .magritte-calling-code-input-container___UXmHV_1-0-4:hover:not(.magritte-disabled___fvEeH_1-0-4):not(.magritte-focused___Ok8x4_1-0-4):not(.magritte-invalid___kptbH_1-0-4) .magritte-ghost-data___zShvn_1-0-4{
98
98
  color:var(--magritte-color-component-input-text-state-content-hovered-v19-1-2);
99
99
  }
100
- .magritte-calling-code-input-container___UXmHV_1-0-2.magritte-focused___Ok8x4_1-0-2{
100
+ .magritte-calling-code-input-container___UXmHV_1-0-4.magritte-focused___Ok8x4_1-0-4{
101
101
  background-color:var(--magritte-color-component-input-background-state-field-focused-v19-1-2);
102
102
  box-shadow:inset 0 0 0 2px var(--magritte-color-component-input-stroke-state-field-focused-v19-1-2);
103
103
  }
104
- .magritte-calling-code-input-container___UXmHV_1-0-2.magritte-focused___Ok8x4_1-0-2 .magritte-calling-code-input___Hb20f_1-0-2,
105
- .magritte-calling-code-input-container___UXmHV_1-0-2.magritte-focused___Ok8x4_1-0-2 .magritte-ghost-data___zShvn_1-0-2{
104
+ .magritte-calling-code-input-container___UXmHV_1-0-4.magritte-focused___Ok8x4_1-0-4 .magritte-calling-code-input___Hb20f_1-0-4,
105
+ .magritte-calling-code-input-container___UXmHV_1-0-4.magritte-focused___Ok8x4_1-0-4 .magritte-ghost-data___zShvn_1-0-4{
106
106
  color:var(--magritte-color-component-input-text-state-content-focused-v19-1-2);
107
107
  }
108
- .magritte-calling-code-input-container___UXmHV_1-0-2.magritte-focused___Ok8x4_1-0-2.magritte-invalid___kptbH_1-0-2{
108
+ .magritte-calling-code-input-container___UXmHV_1-0-4.magritte-focused___Ok8x4_1-0-4.magritte-invalid___kptbH_1-0-4{
109
109
  background-color:var(--magritte-color-component-input-background-state-field-invalid-v19-1-2);
110
110
  box-shadow:inset 0 0 0 2px var(--magritte-color-component-input-stroke-state-field-invalid-v19-1-2);
111
111
  }
112
- .magritte-calling-code-input-container___UXmHV_1-0-2.magritte-focused___Ok8x4_1-0-2.magritte-invalid___kptbH_1-0-2 .magritte-calling-code-input___Hb20f_1-0-2,
113
- .magritte-calling-code-input-container___UXmHV_1-0-2.magritte-focused___Ok8x4_1-0-2.magritte-invalid___kptbH_1-0-2 .magritte-ghost-data___zShvn_1-0-2{
112
+ .magritte-calling-code-input-container___UXmHV_1-0-4.magritte-focused___Ok8x4_1-0-4.magritte-invalid___kptbH_1-0-4 .magritte-calling-code-input___Hb20f_1-0-4,
113
+ .magritte-calling-code-input-container___UXmHV_1-0-4.magritte-focused___Ok8x4_1-0-4.magritte-invalid___kptbH_1-0-4 .magritte-ghost-data___zShvn_1-0-4{
114
114
  color:var(--magritte-color-component-input-text-state-content-invalid-v19-1-2);
115
115
  }
116
- .magritte-calling-code-input-container___UXmHV_1-0-2.magritte-focus-visible___kbwmg_1-0-2{
116
+ .magritte-calling-code-input-container___UXmHV_1-0-4.magritte-focus-visible___kbwmg_1-0-4{
117
117
  outline:var(--magritte-color-component-input-stroke-state-accent-focused-accessible-v19-1-2) solid 4px;
118
118
  }
119
- .magritte-calling-code-input-container___UXmHV_1-0-2.magritte-focus-visible___kbwmg_1-0-2.magritte-invalid___kptbH_1-0-2{
119
+ .magritte-calling-code-input-container___UXmHV_1-0-4.magritte-focus-visible___kbwmg_1-0-4.magritte-invalid___kptbH_1-0-4{
120
120
  outline-color:var(--magritte-color-component-input-stroke-state-negative-focused-accessible-v19-1-2);
121
121
  }
122
- .magritte-calling-code-input-container___UXmHV_1-0-2.magritte-invalid___kptbH_1-0-2{
122
+ .magritte-calling-code-input-container___UXmHV_1-0-4.magritte-invalid___kptbH_1-0-4{
123
123
  background-color:var(--magritte-color-component-input-background-state-field-invalid-v19-1-2);
124
124
  box-shadow:inset 0 0 0 1px var(--magritte-color-component-input-stroke-state-field-invalid-v19-1-2);
125
125
  }
126
- .magritte-calling-code-input-container___UXmHV_1-0-2.magritte-invalid___kptbH_1-0-2 .magritte-calling-code-input___Hb20f_1-0-2,
127
- .magritte-calling-code-input-container___UXmHV_1-0-2.magritte-invalid___kptbH_1-0-2 .magritte-ghost-data___zShvn_1-0-2{
126
+ .magritte-calling-code-input-container___UXmHV_1-0-4.magritte-invalid___kptbH_1-0-4 .magritte-calling-code-input___Hb20f_1-0-4,
127
+ .magritte-calling-code-input-container___UXmHV_1-0-4.magritte-invalid___kptbH_1-0-4 .magritte-ghost-data___zShvn_1-0-4{
128
128
  color:var(--magritte-color-component-input-text-state-content-invalid-v19-1-2);
129
129
  }
130
- .magritte-calling-code-input-container___UXmHV_1-0-2 .magritte-disabled___fvEeH_1-0-2{
130
+ .magritte-calling-code-input-container___UXmHV_1-0-4 .magritte-disabled___fvEeH_1-0-4{
131
131
  cursor:default;
132
132
  background-color:var(--magritte-color-component-input-background-state-field-disabled-v19-1-2);
133
133
  box-shadow:inset 0 0 0 1px var(--magritte-color-component-input-stroke-state-field-disabled-v19-1-2);
134
134
  }
135
- .magritte-calling-code-input-container___UXmHV_1-0-2 .magritte-disabled___fvEeH_1-0-2 .magritte-calling-code-input___Hb20f_1-0-2,
136
- .magritte-calling-code-input-container___UXmHV_1-0-2 .magritte-disabled___fvEeH_1-0-2 .magritte-ghost-data___zShvn_1-0-2{
135
+ .magritte-calling-code-input-container___UXmHV_1-0-4 .magritte-disabled___fvEeH_1-0-4 .magritte-calling-code-input___Hb20f_1-0-4,
136
+ .magritte-calling-code-input-container___UXmHV_1-0-4 .magritte-disabled___fvEeH_1-0-4 .magritte-ghost-data___zShvn_1-0-4{
137
137
  color:var(--magritte-color-component-input-text-state-content-disabled-v19-1-2);
138
138
  }
139
- .magritte-flag-container___wsoAd_1-0-2{
139
+ .magritte-flag-container___wsoAd_1-0-4{
140
140
  display:flex;
141
141
  align-items:center;
142
142
  height:24px;
@@ -144,11 +144,11 @@
144
144
  font-weight:normal;
145
145
  font-size:24px;
146
146
  }
147
- .magritte-input-container___WSSZi_1-0-2{
147
+ .magritte-input-container___WSSZi_1-0-4{
148
148
  position:relative;
149
149
  flex:0 1 auto;
150
150
  }
151
- .magritte-ghost-data___zShvn_1-0-2{
151
+ .magritte-ghost-data___zShvn_1-0-4{
152
152
  display:flex;
153
153
  align-items:center;
154
154
  height:24px;
@@ -163,29 +163,29 @@
163
163
  text-decoration:var(--magritte-typography-label-2-regular-text-decoration-v19-1-2);
164
164
  }
165
165
  @media (min-width: 1020px){
166
- body.magritte-old-layout .magritte-ghost-data___zShvn_1-0-2{
166
+ body.magritte-old-layout .magritte-ghost-data___zShvn_1-0-4{
167
167
  visibility:hidden;
168
168
  }
169
169
  }
170
170
  @media (min-width: 1024px){
171
- body:not(.magritte-old-layout) .magritte-ghost-data___zShvn_1-0-2{
171
+ body:not(.magritte-old-layout) .magritte-ghost-data___zShvn_1-0-4{
172
172
  visibility:hidden;
173
173
  }
174
174
  }
175
- .magritte-phone-input-container___D587K_1-0-2{
175
+ .magritte-phone-input-container___D587K_1-0-4{
176
176
  display:flex;
177
177
  gap:12px;
178
178
  }
179
- .magritte-flag-icon___teIdY_1-0-2{
179
+ .magritte-flag-icon___teIdY_1-0-4{
180
180
  display:none;
181
181
  line-height:0;
182
182
  }
183
- .magritte-flag-emoji___pyJS7_1-0-2{
183
+ .magritte-flag-emoji___pyJS7_1-0-4{
184
184
  display:inline;
185
185
  }
186
- .magritte-no-flag-emoji___yiuyr_1-0-2 .magritte-flag-icon___teIdY_1-0-2{
186
+ .magritte-no-flag-emoji___yiuyr_1-0-4 .magritte-flag-icon___teIdY_1-0-4{
187
187
  display:inline;
188
188
  }
189
- .magritte-no-flag-emoji___yiuyr_1-0-2 .magritte-flag-emoji___pyJS7_1-0-2{
189
+ .magritte-no-flag-emoji___yiuyr_1-0-4 .magritte-flag-emoji___pyJS7_1-0-4{
190
190
  display:none;
191
191
  }
package/index.js CHANGED
@@ -9,7 +9,7 @@ import './RegionSelect.js';
9
9
  import 'classnames';
10
10
  import '@hh.ru/magritte-ui-cell';
11
11
  import '@hh.ru/magritte-ui-icon/country';
12
- import './CallingCodeInput-Da5MyyDD.js';
12
+ import './CallingCodeInput-D0eba3P4.js';
13
13
  import '@hh.ru/magritte-ui-breakpoint';
14
14
  import './useIsFlagEmojiSupported.js';
15
15
  import '@hh.ru/magritte-ui-select';
@@ -17129,4 +17129,4 @@ var metadata_max = {
17129
17129
  };
17130
17130
 
17131
17131
  export { countries, country_calling_codes, metadata_max as default, nonGeographic, version };
17132
- //# sourceMappingURL=metadata.max-BLFf0P8M.js.map
17132
+ //# sourceMappingURL=metadata.max-BOCt6aW9.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"metadata.max-BLFf0P8M.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"metadata.max-BOCt6aW9.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -309,4 +309,4 @@ var metadata_ru_by_kz_uz = {
309
309
  };
310
310
 
311
311
  export { countries, country_calling_codes, metadata_ru_by_kz_uz as default, nonGeographic, version };
312
- //# sourceMappingURL=metadata.ru_by_kz_uz-2v1ZflwS.js.map
312
+ //# sourceMappingURL=metadata.ru_by_kz_uz-Dux6Cxwl.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"metadata.ru_by_kz_uz-2v1ZflwS.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"metadata.ru_by_kz_uz-Dux6Cxwl.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hh.ru/magritte-ui-phone-input",
3
- "version": "1.0.2",
3
+ "version": "1.0.4",
4
4
  "main": "index.js",
5
5
  "types": "index.d.ts",
6
6
  "sideEffects": [
@@ -29,12 +29,12 @@
29
29
  "@hh.ru/magritte-ui-form-helper": "1.0.12",
30
30
  "@hh.ru/magritte-ui-icon": "7.9.2",
31
31
  "@hh.ru/magritte-ui-input": "7.0.2",
32
- "@hh.ru/magritte-ui-select": "8.4.1",
32
+ "@hh.ru/magritte-ui-select": "8.5.0",
33
33
  "libphonenumber-js": "1.11.12"
34
34
  },
35
35
  "peerDependencies": {
36
36
  "classnames": ">=2.3.2",
37
37
  "react": ">=18.2.0"
38
38
  },
39
- "gitHead": "01139f44e3220b2f920526a7d93ac4d43082ace6"
39
+ "gitHead": "44c46e418e6a9932af582e0ce4881f81b64ba64b"
40
40
  }
package/phoneFormatter.js CHANGED
@@ -2,6 +2,7 @@ import './index.css';
2
2
  const notDigitsOrPlusRegExp = /[\D+]/g;
3
3
  const prohibitedSymbolsRegExp = /[^0-9+()-]/g;
4
4
  const digitRegexp = /\d/;
5
+ const notSpaceRegExp = /[^\s]/;
5
6
  const phoneFormatterFactory = (params) => {
6
7
  const { setCountry, currentCountryRef, libPhoneNumberAPI: { formatIncompletePhoneNumber, parsePhoneNumber }, } = params;
7
8
  return (prevValue, value, caretPosition) => {
@@ -24,7 +25,7 @@ const phoneFormatterFactory = (params) => {
24
25
  // do nothing
25
26
  }
26
27
  if (digitsBeforeCaret.length === 0) {
27
- caret = 0;
28
+ caret = formattedValue.substring(0, caret).match(notSpaceRegExp)?.[0].length || 0;
28
29
  }
29
30
  else {
30
31
  // в результате форматирования в строке с номером могут появляться дополнительные символы
@@ -1 +1 @@
1
- {"version":3,"file":"phoneFormatter.js","sources":["../src/phoneFormatter.ts"],"sourcesContent":["import { type RefObject } from 'react';\nimport { type CountryCode } from 'libphonenumber-js';\n\nimport { type InputFormatter } from '@hh.ru/magritte-ui-input';\nimport { type LibPhoneNumberAPI } from '@hh.ru/magritte-ui-phone-input/useLibPhoneNumber';\n\nconst notDigitsOrPlusRegExp = /[\\D+]/g;\nconst prohibitedSymbolsRegExp = /[^0-9+()-]/g;\nconst digitRegexp = /\\d/;\n\nexport const phoneFormatterFactory = (params: {\n setCountry: (country: CountryCode) => void;\n currentCountryRef: RefObject<CountryCode>;\n libPhoneNumberAPI: LibPhoneNumberAPI;\n}): InputFormatter => {\n const {\n setCountry,\n currentCountryRef,\n libPhoneNumberAPI: { formatIncompletePhoneNumber, parsePhoneNumber },\n } = params;\n\n return (prevValue: string, value: string, caretPosition: number) => {\n let formattedValue = value.replace(prohibitedSymbolsRegExp, '');\n let caret = caretPosition;\n\n let digitsBeforeCaret = value.substring(0, caret).replace(notDigitsOrPlusRegExp, '');\n\n // удалили один символ и этот символ не цифра, надо удалить ближайшую цифру слева от каретки\n if (prevValue.length - value.length === 1 && notDigitsOrPlusRegExp.test(prevValue[caretPosition])) {\n digitsBeforeCaret = digitsBeforeCaret.slice(0, -1);\n formattedValue = `${digitsBeforeCaret}${value.substring(caret)}`;\n }\n\n try {\n const phoneNumber = parsePhoneNumber(formattedValue, currentCountryRef.current || 'RU');\n\n formattedValue = formatIncompletePhoneNumber(\n phoneNumber.nationalNumber,\n phoneNumber.country || currentCountryRef.current || 'RU'\n );\n\n if (phoneNumber.country && phoneNumber.country !== currentCountryRef.current) {\n setCountry(phoneNumber.country);\n }\n } catch {\n // do nothing\n }\n\n if (digitsBeforeCaret.length === 0) {\n caret = 0;\n } else {\n // в результате форматирования в строке с номером могут появляться дополнительные символы\n // при этом каретка должна сохранить свое положение относительно цифр в номере\n // для этого находим позицию каретки в строке до форматирования, извлекаем из неё только цифры находящиеся\n // перед кареткой, находим длину строки после форматирования которая содержит те же цифры что и в строке до\n // форматирования перед кареткой и сдвигаем каретку на эту длину\n // для этого используем регулярку в которую добавляем все символы перед кареткой и возможные символы между\n // ними которые могут появиться после форматирования\n // кроме того делаем все символы опциональными, т.к. после форматирования может удалиться часть\n // символов в начале номера относящаяся к коду страны\n const caretPositionRegExp = new RegExp(\n digitsBeforeCaret\n .split('')\n .reduce<string[]>((acc, char, index) => {\n // символы из строки нужно экранировать т.к. там могут оказаться символы имеющие специальное\n // значение в регулярных выражениях, например +\n acc.push(`\\\\u{${char.charCodeAt(0).toString(16)}}?`);\n if (index !== digitsBeforeCaret.length - 1) {\n acc.push('\\\\s?-?\\\\(?\\\\)?\\\\s?');\n }\n return acc;\n }, [])\n .join(''),\n 'u'\n );\n\n // применяем регулярку к отформатированной строке и сдвигаем каретку на длину найденного совпадения\n const match = formattedValue.match(caretPositionRegExp)?.[0];\n if (match) {\n const positionOfFirstDigitToTheRightOfCaret = formattedValue\n .substring(match.length)\n .search(digitRegexp);\n\n caret =\n positionOfFirstDigitToTheRightOfCaret === -1\n ? formattedValue.length\n : positionOfFirstDigitToTheRightOfCaret + match.length;\n }\n }\n\n return {\n formattedValue,\n outputValue: formattedValue,\n caretPosition: caret,\n };\n };\n};\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"phoneFormatter.js","sources":["../src/phoneFormatter.ts"],"sourcesContent":["import { type RefObject } from 'react';\nimport { type CountryCode } from 'libphonenumber-js';\n\nimport { type InputFormatter } from '@hh.ru/magritte-ui-input';\nimport { type LibPhoneNumberAPI } from '@hh.ru/magritte-ui-phone-input/useLibPhoneNumber';\n\nconst notDigitsOrPlusRegExp = /[\\D+]/g;\nconst prohibitedSymbolsRegExp = /[^0-9+()-]/g;\nconst digitRegexp = /\\d/;\nconst notSpaceRegExp = /[^\\s]/;\n\nexport const phoneFormatterFactory = (params: {\n setCountry: (country: CountryCode) => void;\n currentCountryRef: RefObject<CountryCode>;\n libPhoneNumberAPI: LibPhoneNumberAPI;\n}): InputFormatter => {\n const {\n setCountry,\n currentCountryRef,\n libPhoneNumberAPI: { formatIncompletePhoneNumber, parsePhoneNumber },\n } = params;\n\n return (prevValue: string, value: string, caretPosition: number) => {\n let formattedValue = value.replace(prohibitedSymbolsRegExp, '');\n let caret = caretPosition;\n\n let digitsBeforeCaret = value.substring(0, caret).replace(notDigitsOrPlusRegExp, '');\n\n // удалили один символ и этот символ не цифра, надо удалить ближайшую цифру слева от каретки\n if (prevValue.length - value.length === 1 && notDigitsOrPlusRegExp.test(prevValue[caretPosition])) {\n digitsBeforeCaret = digitsBeforeCaret.slice(0, -1);\n formattedValue = `${digitsBeforeCaret}${value.substring(caret)}`;\n }\n\n try {\n const phoneNumber = parsePhoneNumber(formattedValue, currentCountryRef.current || 'RU');\n\n formattedValue = formatIncompletePhoneNumber(\n phoneNumber.nationalNumber,\n phoneNumber.country || currentCountryRef.current || 'RU'\n );\n\n if (phoneNumber.country && phoneNumber.country !== currentCountryRef.current) {\n setCountry(phoneNumber.country);\n }\n } catch {\n // do nothing\n }\n\n if (digitsBeforeCaret.length === 0) {\n caret = formattedValue.substring(0, caret).match(notSpaceRegExp)?.[0].length || 0;\n } else {\n // в результате форматирования в строке с номером могут появляться дополнительные символы\n // при этом каретка должна сохранить свое положение относительно цифр в номере\n // для этого находим позицию каретки в строке до форматирования, извлекаем из неё только цифры находящиеся\n // перед кареткой, находим длину строки после форматирования которая содержит те же цифры что и в строке до\n // форматирования перед кареткой и сдвигаем каретку на эту длину\n // для этого используем регулярку в которую добавляем все символы перед кареткой и возможные символы между\n // ними которые могут появиться после форматирования\n // кроме того делаем все символы опциональными, т.к. после форматирования может удалиться часть\n // символов в начале номера относящаяся к коду страны\n const caretPositionRegExp = new RegExp(\n digitsBeforeCaret\n .split('')\n .reduce<string[]>((acc, char, index) => {\n // символы из строки нужно экранировать т.к. там могут оказаться символы имеющие специальное\n // значение в регулярных выражениях, например +\n acc.push(`\\\\u{${char.charCodeAt(0).toString(16)}}?`);\n if (index !== digitsBeforeCaret.length - 1) {\n acc.push('\\\\s?-?\\\\(?\\\\)?\\\\s?');\n }\n return acc;\n }, [])\n .join(''),\n 'u'\n );\n\n // применяем регулярку к отформатированной строке и сдвигаем каретку на длину найденного совпадения\n const match = formattedValue.match(caretPositionRegExp)?.[0];\n if (match) {\n const positionOfFirstDigitToTheRightOfCaret = formattedValue\n .substring(match.length)\n .search(digitRegexp);\n\n caret =\n positionOfFirstDigitToTheRightOfCaret === -1\n ? formattedValue.length\n : positionOfFirstDigitToTheRightOfCaret + match.length;\n }\n }\n\n return {\n formattedValue,\n outputValue: formattedValue,\n caretPosition: caret,\n };\n };\n};\n"],"names":[],"mappings":"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"}
@@ -36,11 +36,11 @@ const useLibPhoneNumber = (variant, onLoadError) => {
36
36
  loadMetadata = () =>
37
37
  /* eslint-disable @typescript-eslint/ban-ts-comment */
38
38
  // @ts-ignore
39
- import('./metadata.ru_by_kz_uz-2v1ZflwS.js');
39
+ import('./metadata.ru_by_kz_uz-Dux6Cxwl.js');
40
40
  }
41
41
  else {
42
42
  // @ts-ignore
43
- loadMetadata = () => import('./metadata.max-BLFf0P8M.js');
43
+ loadMetadata = () => import('./metadata.max-BOCt6aW9.js');
44
44
  /* eslint-enable @typescript-eslint/ban-ts-comment */
45
45
  }
46
46
  const loadApi = () => Promise.all([loadLibPhoneNumber(), loadMetadata()]).then(([libPhoneNumber, metadata]) => {