@hh.ru/magritte-ui-phone-input 4.2.74 → 4.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/{CallingCodeInput-B2J7IUp3.js → CallingCodeInput-BcCQZB3Z.js} +3 -3
- package/CallingCodeInput-BcCQZB3Z.js.map +1 -0
- package/CallingCodeInput.js +1 -1
- package/PhoneInput.d.ts +5 -0
- package/PhoneInput.js +20 -7
- package/PhoneInput.js.map +1 -1
- package/RegionSelect.d.ts +1 -0
- package/RegionSelect.js +3 -3
- package/RegionSelect.js.map +1 -1
- package/index.css +86 -83
- package/index.js +2 -2
- package/{metadata.max-_TCaIJWC.js → metadata.max-C-HdkbBh.js} +1 -1
- package/{metadata.max-_TCaIJWC.js.map → metadata.max-C-HdkbBh.js.map} +1 -1
- package/{metadata.mobile-DlAlt9iv.js → metadata.mobile-AjZd4M6a.js} +1 -1
- package/{metadata.mobile-DlAlt9iv.js.map → metadata.mobile-AjZd4M6a.js.map} +1 -1
- package/{metadata.ru_by_kz_uz.max-B4n-estX.js → metadata.ru_by_kz_uz.max-BOkcOFdo.js} +1 -1
- package/{metadata.ru_by_kz_uz.max-B4n-estX.js.map → metadata.ru_by_kz_uz.max-BOkcOFdo.js.map} +1 -1
- package/{metadata.ru_by_kz_uz.mobile-JZvRvZvv.js → metadata.ru_by_kz_uz.mobile-EY2PCC7u.js} +1 -1
- package/{metadata.ru_by_kz_uz.mobile-JZvRvZvv.js.map → metadata.ru_by_kz_uz.mobile-EY2PCC7u.js.map} +1 -1
- package/package.json +8 -8
- package/phoneFormatter.d.ts +1 -0
- package/phoneFormatter.js +4 -3
- package/phoneFormatter.js.map +1 -1
- package/useLibPhoneNumber.js +4 -4
- package/CallingCodeInput-B2J7IUp3.js.map +0 -1
|
@@ -5,7 +5,7 @@ import classNames from 'classnames';
|
|
|
5
5
|
import { useMultipleRefs } from '@hh.ru/magritte-common-use-multiple-refs';
|
|
6
6
|
import { useBreakpoint } from '@hh.ru/magritte-ui-breakpoint';
|
|
7
7
|
|
|
8
|
-
var styles = {"calling-code-input":"magritte-calling-code-input___Hb20f_4-
|
|
8
|
+
var styles = {"calling-code-input":"magritte-calling-code-input___Hb20f_4-3-0","callingCodeInput":"magritte-calling-code-input___Hb20f_4-3-0","calling-code-input-container":"magritte-calling-code-input-container___UXmHV_4-3-0","callingCodeInputContainer":"magritte-calling-code-input-container___UXmHV_4-3-0","disabled":"magritte-disabled___fvEeH_4-3-0","focused":"magritte-focused___Ok8x4_4-3-0","invalid":"magritte-invalid___kptbH_4-3-0","ghost-data":"magritte-ghost-data___zShvn_4-3-0","ghostData":"magritte-ghost-data___zShvn_4-3-0","focus-visible":"magritte-focus-visible___kbwmg_4-3-0","focusVisible":"magritte-focus-visible___kbwmg_4-3-0","country-locked":"magritte-country-locked___9HDyw_4-3-0","countryLocked":"magritte-country-locked___9HDyw_4-3-0","flag-container":"magritte-flag-container___wsoAd_4-3-0","flagContainer":"magritte-flag-container___wsoAd_4-3-0","input-container":"magritte-input-container___WSSZi_4-3-0","inputContainer":"magritte-input-container___WSSZi_4-3-0","phone-input-container":"magritte-phone-input-container___D587K_4-3-0","phoneInputContainer":"magritte-phone-input-container___D587K_4-3-0","flag-emoji":"magritte-flag-emoji___pyJS7_4-3-0","flagEmoji":"magritte-flag-emoji___pyJS7_4-3-0","no-flag-emoji":"magritte-no-flag-emoji___yiuyr_4-3-0","noFlagEmoji":"magritte-no-flag-emoji___yiuyr_4-3-0"};
|
|
9
9
|
|
|
10
10
|
const CallingCodeInput = forwardRef(({ onFocus, onBlur, value, onChange, flag, onKeyDownInput, onKeyDownContainer, invalid, disabled, className, inputElementRef, descriptionId, }, ref) => {
|
|
11
11
|
const inputRef = useRef(null);
|
|
@@ -21,7 +21,7 @@ const CallingCodeInput = forwardRef(({ onFocus, onBlur, value, onChange, flag, o
|
|
|
21
21
|
return (jsxs("div", { className: classNames(styles.callingCodeInputContainer, className, {
|
|
22
22
|
[styles.focusVisible]: isFocusVisible && !disabled,
|
|
23
23
|
[styles.focused]: isFocused && !disabled,
|
|
24
|
-
[styles.invalid]: invalid
|
|
24
|
+
[styles.invalid]: invalid,
|
|
25
25
|
[styles.disabled]: disabled,
|
|
26
26
|
}), tabIndex: disabled ? -1 : 0, onFocus: () => {
|
|
27
27
|
if (disabled) {
|
|
@@ -50,4 +50,4 @@ const CallingCodeInput = forwardRef(({ onFocus, onBlur, value, onChange, flag, o
|
|
|
50
50
|
CallingCodeInput.displayName = 'CallingCodeInput';
|
|
51
51
|
|
|
52
52
|
export { CallingCodeInput as C, styles as s };
|
|
53
|
-
//# sourceMappingURL=CallingCodeInput-
|
|
53
|
+
//# sourceMappingURL=CallingCodeInput-BcCQZB3Z.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CallingCodeInput-BcCQZB3Z.js","sources":["src/CallingCodeInput.tsx"],"sourcesContent":["import {\n type KeyboardEventHandler,\n type ChangeEvent,\n type ReactNode,\n type Ref,\n forwardRef,\n useState,\n useEffect,\n useRef,\n} from 'react';\nimport classnames from 'classnames';\n\nimport { useMultipleRefs } from '@hh.ru/magritte-common-use-multiple-refs';\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 onKeyDownInput?: KeyboardEventHandler<HTMLInputElement>;\n onKeyDownContainer?: KeyboardEventHandler<HTMLDivElement>;\n invalid?: boolean;\n disabled?: boolean;\n className?: string | boolean;\n inputElementRef: Ref<HTMLInputElement>;\n descriptionId: string;\n}\n\nexport const CallingCodeInput = forwardRef<HTMLDivElement, CallingCodeInputProps>(\n (\n {\n onFocus,\n onBlur,\n value,\n onChange,\n flag,\n onKeyDownInput,\n onKeyDownContainer,\n invalid,\n disabled,\n className,\n inputElementRef,\n descriptionId,\n },\n ref\n ) => {\n const inputRef = useRef<HTMLInputElement>(null);\n const inputRefMultiplexer = useMultipleRefs(inputRef, inputElementRef);\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,\n [styles.disabled]: disabled,\n })}\n tabIndex={disabled ? -1 : 0}\n onFocus={() => {\n if (disabled) {\n return;\n }\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 onKeyDown={onKeyDownContainer}\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={inputRefMultiplexer}\n onFocus={() => {\n setIsFocused(true);\n onFocus();\n }}\n onBlur={() => {\n setIsFocused(false);\n onBlur?.();\n }}\n onKeyDown={onKeyDownInput}\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 aria-describedby={descriptionId}\n aria-invalid={invalid}\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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"}
|
package/CallingCodeInput.js
CHANGED
|
@@ -4,5 +4,5 @@ import 'react';
|
|
|
4
4
|
import 'classnames';
|
|
5
5
|
import '@hh.ru/magritte-common-use-multiple-refs';
|
|
6
6
|
import '@hh.ru/magritte-ui-breakpoint';
|
|
7
|
-
export { C as CallingCodeInput } from './CallingCodeInput-
|
|
7
|
+
export { C as CallingCodeInput } from './CallingCodeInput-BcCQZB3Z.js';
|
|
8
8
|
//# sourceMappingURL=CallingCodeInput.js.map
|
package/PhoneInput.d.ts
CHANGED
|
@@ -26,6 +26,11 @@ export interface PhoneInputProps {
|
|
|
26
26
|
availableCountries?: CountryCode[];
|
|
27
27
|
/** Флаг приоритетных стран, которые будут отображаться в начале списка */
|
|
28
28
|
priorityCountries?: CountryCode[];
|
|
29
|
+
/**
|
|
30
|
+
* Фиксирует регион на указанной стране: селект блокируется (отображается как disabled),
|
|
31
|
+
* а ввод номера другого региона не меняет выбранную страну. Если проп не задан — регион можно менять.
|
|
32
|
+
*/
|
|
33
|
+
lockedCountry?: CountryCode;
|
|
29
34
|
/** Флаг валидности номера */
|
|
30
35
|
invalid?: boolean;
|
|
31
36
|
/** Описание которое будет отображаться под полями ввода */
|
package/PhoneInput.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import './index.css';
|
|
2
2
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
3
|
-
import { forwardRef, useId, useMemo, useState, useRef } from 'react';
|
|
3
|
+
import { forwardRef, useId, useMemo, useState, useRef, useEffect } from 'react';
|
|
4
|
+
import classNames from 'classnames';
|
|
4
5
|
import { useDisabled } from '@hh.ru/magritte-common-use-disabled';
|
|
5
6
|
import { useMultipleRefs } from '@hh.ru/magritte-common-use-multiple-refs';
|
|
6
7
|
import { FormHelper } from '@hh.ru/magritte-ui-form-helper';
|
|
@@ -9,8 +10,7 @@ import { RegionSelect } from './RegionSelect.js';
|
|
|
9
10
|
import { phoneFormatterFactory } from './phoneFormatter.js';
|
|
10
11
|
import { useCountrySelectDataProvider } from './useCountrySelectDataProvider.js';
|
|
11
12
|
import { useLibPhoneNumber } from './useLibPhoneNumber.js';
|
|
12
|
-
import { s as styles } from './CallingCodeInput-
|
|
13
|
-
import 'classnames';
|
|
13
|
+
import { s as styles } from './CallingCodeInput-BcCQZB3Z.js';
|
|
14
14
|
import '@hh.ru/magritte-common-flag-emoji-font';
|
|
15
15
|
import '@hh.ru/magritte-common-keyboard';
|
|
16
16
|
import '@hh.ru/magritte-ui-breakpoint';
|
|
@@ -21,7 +21,7 @@ import './basicMetadata.js';
|
|
|
21
21
|
|
|
22
22
|
const DEFAULT_PRIORITY_COUNTRIES = ['RU', 'BY', 'KZ', 'UZ'];
|
|
23
23
|
const notDigitsRegExp = /[\D]/g;
|
|
24
|
-
const PhoneInput = forwardRef(({ defaultCountry = 'RU', defaultNationalNumber = '', onChange, availableCountries, invalid, description, errorMessage, priorityCountries = DEFAULT_PRIORITY_COUNTRIES, onFocus, onBlur, countryNames, priorityCountriesTitle, mobileOnly, 'data-qa': dataQa = 'magritte-phone-input-wrapper', inputsWrapperRef, phoneInputElementRef, codeInputElementRef, onPhoneValidationApiLoadError, disabled, }, ref) => {
|
|
24
|
+
const PhoneInput = forwardRef(({ defaultCountry = 'RU', defaultNationalNumber = '', onChange, availableCountries, invalid, description, errorMessage, priorityCountries = DEFAULT_PRIORITY_COUNTRIES, lockedCountry, onFocus, onBlur, countryNames, priorityCountriesTitle, mobileOnly, 'data-qa': dataQa = 'magritte-phone-input-wrapper', inputsWrapperRef, phoneInputElementRef, codeInputElementRef, onPhoneValidationApiLoadError, disabled, }, ref) => {
|
|
25
25
|
const descriptionId = useId();
|
|
26
26
|
const metadataVariant = useMemo(() => {
|
|
27
27
|
const minimalMetadata = availableCountries?.length === DEFAULT_PRIORITY_COUNTRIES.length &&
|
|
@@ -38,7 +38,7 @@ const PhoneInput = forwardRef(({ defaultCountry = 'RU', defaultNationalNumber =
|
|
|
38
38
|
}, [availableCountries, countryNames]);
|
|
39
39
|
const libPhoneNumberAPI = useLibPhoneNumber(metadataVariant, !!mobileOnly, onPhoneValidationApiLoadError);
|
|
40
40
|
const { getCountryCallingCode, isValidPhoneNumber, isLoaded } = libPhoneNumberAPI;
|
|
41
|
-
const [country, setCountry] = useState(defaultCountry);
|
|
41
|
+
const [country, setCountry] = useState(lockedCountry ?? defaultCountry);
|
|
42
42
|
const countryRef = useRef(country);
|
|
43
43
|
const countryCallingCodeRef = useRef(getCountryCallingCode(country));
|
|
44
44
|
const focusInsideRef = useRef(false);
|
|
@@ -49,6 +49,7 @@ const PhoneInput = forwardRef(({ defaultCountry = 'RU', defaultNationalNumber =
|
|
|
49
49
|
const inputRefMultiplexer = useMultipleRefs(phoneInputRef, phoneInputElementRef);
|
|
50
50
|
const forceDisabled = useDisabled();
|
|
51
51
|
const isComponentDisabled = forceDisabled || !!disabled;
|
|
52
|
+
const isCountryLocked = lockedCountry !== undefined;
|
|
52
53
|
countryCallingCodeRef.current = getCountryCallingCode(country);
|
|
53
54
|
const availableCountriesRef = useRef();
|
|
54
55
|
availableCountriesRef.current = availableCountries;
|
|
@@ -70,8 +71,9 @@ const PhoneInput = forwardRef(({ defaultCountry = 'RU', defaultNationalNumber =
|
|
|
70
71
|
currentCountryRef: countryRef,
|
|
71
72
|
availableCountriesRef,
|
|
72
73
|
libPhoneNumberAPI,
|
|
74
|
+
countryLocked: isCountryLocked,
|
|
73
75
|
});
|
|
74
|
-
}, [libPhoneNumberAPI]);
|
|
76
|
+
}, [libPhoneNumberAPI, isCountryLocked]);
|
|
75
77
|
const onChangeHandler = (country, phoneValue, event) => {
|
|
76
78
|
const callingCode = getCountryCallingCode(country);
|
|
77
79
|
const nationalNumber = phoneValue.replace(notDigitsRegExp, '');
|
|
@@ -84,6 +86,15 @@ const PhoneInput = forwardRef(({ defaultCountry = 'RU', defaultNationalNumber =
|
|
|
84
86
|
isPhoneValidationApiLoaded: isLoaded,
|
|
85
87
|
}, event);
|
|
86
88
|
};
|
|
89
|
+
useEffect(() => {
|
|
90
|
+
if (lockedCountry !== undefined && countryRef.current !== lockedCountry) {
|
|
91
|
+
setCountry(lockedCountry);
|
|
92
|
+
countryRef.current = lockedCountry;
|
|
93
|
+
setPhoneValue('');
|
|
94
|
+
onChangeHandler(lockedCountry, '');
|
|
95
|
+
}
|
|
96
|
+
// eslint-disable-next-line disable-autofix/react-hooks/exhaustive-deps
|
|
97
|
+
}, [lockedCountry]);
|
|
87
98
|
const focusHandler = () => {
|
|
88
99
|
if (focusInsideRef.current) {
|
|
89
100
|
return;
|
|
@@ -100,7 +111,9 @@ const PhoneInput = forwardRef(({ defaultCountry = 'RU', defaultNationalNumber =
|
|
|
100
111
|
onBlur?.();
|
|
101
112
|
});
|
|
102
113
|
};
|
|
103
|
-
return (jsxs("div", { ref: ref, children: [jsxs("div", { className: styles.phoneInputContainer,
|
|
114
|
+
return (jsxs("div", { ref: ref, children: [jsxs("div", { className: classNames(styles.phoneInputContainer, {
|
|
115
|
+
[styles.countryLocked]: isCountryLocked && !isComponentDisabled,
|
|
116
|
+
}), onFocus: focusHandler, onBlur: blurHandler, ref: wrapperRefMultiplexer, "data-qa": dataQa, children: [jsx(RegionSelect, { ref: codeInputElementRef, country: country, countryLocked: isCountryLocked, selectDataProvider: selectDataProvider, selectOptions: selectOptions, showSearchInMobile: selectOptions.length > 10, callingCode: countryCallingCodeRef.current, descriptionId: descriptionId, onChange: (newCountry) => {
|
|
104
117
|
let currentPhoneValue = phoneValue;
|
|
105
118
|
if (country !== newCountry) {
|
|
106
119
|
setPhoneValue('');
|
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, ChangeEvent, useId } from 'react';\nimport { type CountryCode, type CountryCallingCode } from 'libphonenumber-js';\n\nimport { useDisabled } from '@hh.ru/magritte-common-use-disabled';\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 { useCountrySelectDataProvider } from '@hh.ru/magritte-ui-phone-input/useCountrySelectDataProvider';\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: (\n 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 },\n event?: ChangeEvent<HTMLInputElement>\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 countryNames: Partial<Record<CountryCode, string>>;\n /** Название блока с приоритетными странами */\n priorityCountriesTitle?: string;\n /** Обработчик фокуса на компоненте */\n onFocus?: VoidFunction;\n /** Обработчик потери фокуса на компоненте */\n onBlur?: VoidFunction;\n /**\n * Включает режим парсинга только мобильных номеров, в этом режиме уменьшается время загрузки компонента,\n * но номера фиксированных линий связи не пройдут валидацию\n * */\n mobileOnly?: boolean;\n /** Атрибут data-qa */\n 'data-qa'?: string;\n /** Ссылка на обертку полей ввода */\n inputsWrapperRef?: Ref<HTMLDivElement>;\n /** Ссылка на элемент input */\n phoneInputElementRef?: Ref<HTMLInputElement>;\n codeInputElementRef?: Ref<HTMLInputElement>;\n disabled?: boolean;\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 countryNames,\n priorityCountriesTitle,\n mobileOnly,\n 'data-qa': dataQa = 'magritte-phone-input-wrapper',\n inputsWrapperRef,\n phoneInputElementRef,\n codeInputElementRef,\n onPhoneValidationApiLoadError,\n disabled,\n },\n ref\n ) => {\n const descriptionId = useId();\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(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, countryNames]);\n\n const libPhoneNumberAPI = useLibPhoneNumber(metadataVariant, !!mobileOnly, onPhoneValidationApiLoadError);\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 const inputRefMultiplexer = useMultipleRefs(phoneInputRef, phoneInputElementRef);\n const forceDisabled = useDisabled();\n const isComponentDisabled = forceDisabled || !!disabled;\n countryCallingCodeRef.current = getCountryCallingCode(country);\n const availableCountriesRef = useRef<CountryCode[] | undefined>();\n availableCountriesRef.current = availableCountries;\n\n const { dataProvider: selectDataProvider, options: selectOptions } = useCountrySelectDataProvider({\n availableCountries,\n countryNames,\n priorityCountriesTitle,\n priorityCountries,\n libPhoneNumberAPI,\n });\n\n const phoneFormatter = useMemo(() => {\n return phoneFormatterFactory({\n // обернуто в промис т.к. форматтер вызывается в процессе рендера BaseInput и не может синхронно\n // вызывать изменения стейта другого компонента\n setCountry: (country) => {\n countryRef.current = country;\n void Promise.resolve().then(() => setCountry(country));\n },\n currentCountryRef: countryRef,\n availableCountriesRef,\n libPhoneNumberAPI,\n });\n }, [libPhoneNumberAPI]);\n\n const onChangeHandler = (country: CountryCode, phoneValue: string, event?: ChangeEvent<HTMLInputElement>) => {\n const callingCode = getCountryCallingCode(country);\n const nationalNumber = phoneValue.replace(notDigitsRegExp, '');\n onChange(\n {\n country,\n callingCode,\n phone: `+${callingCode}${nationalNumber}`,\n nationalNumber,\n isValid: isValidPhoneNumber(nationalNumber, country),\n isPhoneValidationApiLoaded: isLoaded,\n },\n event\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 ref={codeInputElementRef}\n country={country}\n selectDataProvider={selectDataProvider}\n selectOptions={selectOptions}\n showSearchInMobile={selectOptions.length > 10}\n callingCode={countryCallingCodeRef.current}\n descriptionId={descriptionId}\n onChange={(newCountry) => {\n let currentPhoneValue = phoneValue;\n if (country !== newCountry) {\n setPhoneValue('');\n currentPhoneValue = '';\n }\n setCountry(newCountry);\n countryRef.current = newCountry;\n onChangeHandler(newCountry, currentPhoneValue);\n phoneInputRef.current?.focus();\n }}\n availableCountries={availableCountries}\n priorityCountries={priorityCountries}\n libPhoneNumberAPI={libPhoneNumberAPI}\n invalid={invalid}\n disabled={isComponentDisabled}\n metadataVariant={metadataVariant}\n />\n <Input\n ref={inputRefMultiplexer}\n size=\"large\"\n onChange={(value, event) => {\n setPhoneValue(value);\n onChangeHandler(countryRef.current, value, event);\n }}\n formatter={phoneFormatter}\n value={phoneValue}\n invalid={invalid}\n disabled={isComponentDisabled}\n inputMode=\"tel\"\n data-qa=\"magritte-phone-input-national-number-input\"\n aria-describedby={descriptionId}\n />\n </div>\n <FormHelper\n invalid={invalid}\n description={description}\n disabled={isComponentDisabled}\n errorMessage={errorMessage}\n descriptionId={descriptionId}\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, ChangeEvent, useId, useEffect } from 'react';\nimport classNames from 'classnames';\nimport { type CountryCode, type CountryCallingCode } from 'libphonenumber-js';\n\nimport { useDisabled } from '@hh.ru/magritte-common-use-disabled';\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 { useCountrySelectDataProvider } from '@hh.ru/magritte-ui-phone-input/useCountrySelectDataProvider';\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: (\n 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 },\n event?: ChangeEvent<HTMLInputElement>\n ) => void;\n /** Обработчик ошибки загрузки API для валидации номера */\n onPhoneValidationApiLoadError?: (error: Error, reload: VoidFunction) => void;\n /** Список стран доступных для выбора */\n availableCountries?: CountryCode[];\n /** Флаг приоритетных стран, которые будут отображаться в начале списка */\n priorityCountries?: CountryCode[];\n /**\n * Фиксирует регион на указанной стране: селект блокируется (отображается как disabled),\n * а ввод номера другого региона не меняет выбранную страну. Если проп не задан — регион можно менять.\n */\n lockedCountry?: CountryCode;\n /** Флаг валидности номера */\n invalid?: boolean;\n /** Описание которое будет отображаться под полями ввода */\n description?: string;\n /** Сообщение об ошибке валидации, будет отображаться только если установлен флаг invalid */\n errorMessage?: string;\n /** Словарь содержащий названия стран */\n countryNames: Partial<Record<CountryCode, string>>;\n /** Название блока с приоритетными странами */\n priorityCountriesTitle?: string;\n /** Обработчик фокуса на компоненте */\n onFocus?: VoidFunction;\n /** Обработчик потери фокуса на компоненте */\n onBlur?: VoidFunction;\n /**\n * Включает режим парсинга только мобильных номеров, в этом режиме уменьшается время загрузки компонента,\n * но номера фиксированных линий связи не пройдут валидацию\n * */\n mobileOnly?: boolean;\n /** Атрибут data-qa */\n 'data-qa'?: string;\n /** Ссылка на обертку полей ввода */\n inputsWrapperRef?: Ref<HTMLDivElement>;\n /** Ссылка на элемент input */\n phoneInputElementRef?: Ref<HTMLInputElement>;\n codeInputElementRef?: Ref<HTMLInputElement>;\n disabled?: boolean;\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 lockedCountry,\n onFocus,\n onBlur,\n countryNames,\n priorityCountriesTitle,\n mobileOnly,\n 'data-qa': dataQa = 'magritte-phone-input-wrapper',\n inputsWrapperRef,\n phoneInputElementRef,\n codeInputElementRef,\n onPhoneValidationApiLoadError,\n disabled,\n },\n ref\n ) => {\n const descriptionId = useId();\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(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, countryNames]);\n\n const libPhoneNumberAPI = useLibPhoneNumber(metadataVariant, !!mobileOnly, onPhoneValidationApiLoadError);\n const { getCountryCallingCode, isValidPhoneNumber, isLoaded } = libPhoneNumberAPI;\n const [country, setCountry] = useState<CountryCode>(lockedCountry ?? 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 const inputRefMultiplexer = useMultipleRefs(phoneInputRef, phoneInputElementRef);\n const forceDisabled = useDisabled();\n const isComponentDisabled = forceDisabled || !!disabled;\n const isCountryLocked = lockedCountry !== undefined;\n countryCallingCodeRef.current = getCountryCallingCode(country);\n const availableCountriesRef = useRef<CountryCode[] | undefined>();\n availableCountriesRef.current = availableCountries;\n\n const { dataProvider: selectDataProvider, options: selectOptions } = useCountrySelectDataProvider({\n availableCountries,\n countryNames,\n priorityCountriesTitle,\n priorityCountries,\n libPhoneNumberAPI,\n });\n\n const phoneFormatter = useMemo(() => {\n return phoneFormatterFactory({\n // обернуто в промис т.к. форматтер вызывается в процессе рендера BaseInput и не может синхронно\n // вызывать изменения стейта другого компонента\n setCountry: (country) => {\n countryRef.current = country;\n void Promise.resolve().then(() => setCountry(country));\n },\n currentCountryRef: countryRef,\n availableCountriesRef,\n libPhoneNumberAPI,\n countryLocked: isCountryLocked,\n });\n }, [libPhoneNumberAPI, isCountryLocked]);\n\n const onChangeHandler = (country: CountryCode, phoneValue: string, event?: ChangeEvent<HTMLInputElement>) => {\n const callingCode = getCountryCallingCode(country);\n const nationalNumber = phoneValue.replace(notDigitsRegExp, '');\n onChange(\n {\n country,\n callingCode,\n phone: `+${callingCode}${nationalNumber}`,\n nationalNumber,\n isValid: isValidPhoneNumber(nationalNumber, country),\n isPhoneValidationApiLoaded: isLoaded,\n },\n event\n );\n };\n\n useEffect(() => {\n if (lockedCountry !== undefined && countryRef.current !== lockedCountry) {\n setCountry(lockedCountry);\n countryRef.current = lockedCountry;\n setPhoneValue('');\n onChangeHandler(lockedCountry, '');\n }\n // eslint-disable-next-line disable-autofix/react-hooks/exhaustive-deps\n }, [lockedCountry]);\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={classNames(styles.phoneInputContainer, {\n [styles.countryLocked]: isCountryLocked && !isComponentDisabled,\n })}\n onFocus={focusHandler}\n onBlur={blurHandler}\n ref={wrapperRefMultiplexer}\n data-qa={dataQa}\n >\n <RegionSelect\n ref={codeInputElementRef}\n country={country}\n countryLocked={isCountryLocked}\n selectDataProvider={selectDataProvider}\n selectOptions={selectOptions}\n showSearchInMobile={selectOptions.length > 10}\n callingCode={countryCallingCodeRef.current}\n descriptionId={descriptionId}\n onChange={(newCountry) => {\n let currentPhoneValue = phoneValue;\n if (country !== newCountry) {\n setPhoneValue('');\n currentPhoneValue = '';\n }\n setCountry(newCountry);\n countryRef.current = newCountry;\n onChangeHandler(newCountry, currentPhoneValue);\n phoneInputRef.current?.focus();\n }}\n availableCountries={availableCountries}\n priorityCountries={priorityCountries}\n libPhoneNumberAPI={libPhoneNumberAPI}\n invalid={invalid}\n disabled={isComponentDisabled}\n metadataVariant={metadataVariant}\n />\n <Input\n ref={inputRefMultiplexer}\n size=\"large\"\n onChange={(value, event) => {\n setPhoneValue(value);\n onChangeHandler(countryRef.current, value, event);\n }}\n formatter={phoneFormatter}\n value={phoneValue}\n invalid={invalid}\n disabled={isComponentDisabled}\n inputMode=\"tel\"\n data-qa=\"magritte-phone-input-national-number-input\"\n aria-describedby={descriptionId}\n />\n </div>\n <FormHelper\n invalid={invalid}\n description={description}\n disabled={isComponentDisabled}\n errorMessage={errorMessage}\n descriptionId={descriptionId}\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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"}
|
package/RegionSelect.d.ts
CHANGED
|
@@ -4,6 +4,7 @@ import { type PhoneCodeOption } from '@hh.ru/magritte-ui-phone-input/useCountryS
|
|
|
4
4
|
import { type LibPhoneNumberAPI, type MetadataVariant } from '@hh.ru/magritte-ui-phone-input/useLibPhoneNumber';
|
|
5
5
|
type RegionSelectProps = {
|
|
6
6
|
country: CountryCode;
|
|
7
|
+
countryLocked: boolean;
|
|
7
8
|
selectDataProvider: DataProvider<PhoneCodeOption>;
|
|
8
9
|
selectOptions: PhoneCodeOption[];
|
|
9
10
|
callingCode: CountryCallingCode;
|
package/RegionSelect.js
CHANGED
|
@@ -6,7 +6,7 @@ import { useIsFlagEmojiSupported, useFlagEmojiFont } from '@hh.ru/magritte-commo
|
|
|
6
6
|
import { keyboardMatches, keyboardKeys } from '@hh.ru/magritte-common-keyboard';
|
|
7
7
|
import { useBreakpoint } from '@hh.ru/magritte-ui-breakpoint';
|
|
8
8
|
import { CellText, Cell, CellRightLabel } from '@hh.ru/magritte-ui-cell';
|
|
9
|
-
import { s as styles, C as CallingCodeInput } from './CallingCodeInput-
|
|
9
|
+
import { s as styles, C as CallingCodeInput } from './CallingCodeInput-BcCQZB3Z.js';
|
|
10
10
|
import { Select, RenderHeaderDefault } from '@hh.ru/magritte-ui-select';
|
|
11
11
|
import '@hh.ru/magritte-common-use-multiple-refs';
|
|
12
12
|
|
|
@@ -23,7 +23,7 @@ const renderSelectItem = ({ data, onChange, type }) => {
|
|
|
23
23
|
}
|
|
24
24
|
return (jsx(Cell, { left: jsx("div", { className: styles.flagContainer, children: jsx("span", { className: classNames(styles.flagEmoji), children: getFlagEmoji(data.value) }) }), right: jsxs(CellRightLabel, { hideIcon: true, children: ["+", data.callingCode] }), horPadding: false, vertPadding: false, onClick: () => onChange(data, true), tabIndex: -1, children: jsx(CellText, { children: data.text }) }));
|
|
25
25
|
};
|
|
26
|
-
const RegionSelect = forwardRef(({ selectDataProvider, selectOptions, country, callingCode, onChange, invalid, libPhoneNumberAPI, showSearchInMobile, disabled, metadataVariant, descriptionId, }, ref) => {
|
|
26
|
+
const RegionSelect = forwardRef(({ selectDataProvider, selectOptions, country, countryLocked, callingCode, onChange, invalid, libPhoneNumberAPI, showSearchInMobile, disabled, metadataVariant, descriptionId, }, ref) => {
|
|
27
27
|
const { getCountryCallingCode } = libPhoneNumberAPI;
|
|
28
28
|
const [inputValue, setInputValue] = useState(`+${callingCode}`);
|
|
29
29
|
const exactMatchRef = useRef(true);
|
|
@@ -44,7 +44,7 @@ const RegionSelect = forwardRef(({ selectDataProvider, selectOptions, country, c
|
|
|
44
44
|
onChange?.(selectedValue.value, getCountryCallingCode(selectedValue.value));
|
|
45
45
|
}, widthEqualToActivator: false, searchable: true, renderMobileItem: renderSelectItem, renderDesktopItem: renderSelectItem, pickerRef: pickerRefCallback, renderHeader: (props) => {
|
|
46
46
|
return jsx(RenderHeaderDefault, { ...props, searchable: showSearchInMobile });
|
|
47
|
-
}, renderTrigger: ({ setSearchValue, onChange: toggleVisibility, onFocus, onBlur, onKeyDown, ref: triggerRef, }) => (jsx(CallingCodeInput, { ref: triggerRef, inputElementRef: ref, className: !isFlagEmojiSupported && styles.noFlagEmoji, flag: jsx("span", { className: classNames(styles.flagEmoji), children: getFlagEmoji(country) }), invalid: invalid, disabled: disabled, descriptionId: descriptionId, onKeyDownContainer: (event) => {
|
|
47
|
+
}, renderTrigger: ({ setSearchValue, onChange: toggleVisibility, onFocus, onBlur, onKeyDown, ref: triggerRef, }) => (jsx(CallingCodeInput, { ref: triggerRef, inputElementRef: ref, className: !isFlagEmojiSupported && styles.noFlagEmoji, flag: jsx("span", { className: classNames(styles.flagEmoji), children: getFlagEmoji(country) }), invalid: invalid, disabled: disabled || countryLocked, descriptionId: descriptionId, onKeyDownContainer: (event) => {
|
|
48
48
|
if (isMobile &&
|
|
49
49
|
keyboardMatches(event.nativeEvent, [keyboardKeys.Space, keyboardKeys.Enter])) {
|
|
50
50
|
event.preventDefault();
|
package/RegionSelect.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RegionSelect.js","sources":["src/RegionSelect.tsx"],"sourcesContent":["import { type Ref, forwardRef, useState, useRef, useEffect, useCallback, useMemo } from 'react';\nimport classNames from 'classnames';\nimport { type CountryCode, type CountryCallingCode } from 'libphonenumber-js';\n\nimport { DataProvider } from '@hh.ru/magritte-common-data-provider';\nimport { useFlagEmojiFont, useIsFlagEmojiSupported } from '@hh.ru/magritte-common-flag-emoji-font';\nimport { keyboardKeys, keyboardMatches } from '@hh.ru/magritte-common-keyboard';\nimport { useBreakpoint } from '@hh.ru/magritte-ui-breakpoint';\nimport { Cell, CellRightLabel, CellText } from '@hh.ru/magritte-ui-cell';\nimport { CallingCodeInput } from '@hh.ru/magritte-ui-phone-input/CallingCodeInput';\nimport { type PhoneCodeOption } from '@hh.ru/magritte-ui-phone-input/useCountrySelectDataProvider';\nimport { type LibPhoneNumberAPI, type MetadataVariant } from '@hh.ru/magritte-ui-phone-input/useLibPhoneNumber';\nimport { RenderOptionType, Select, RenderHeaderDefault } from '@hh.ru/magritte-ui-select';\n\nimport styles from './phoneInput.less';\n\nconst getFlagEmoji = (countryCode: CountryCode) => {\n const codePoints = countryCode\n .toUpperCase()\n .split('')\n .map((char) => 127397 + char.charCodeAt(0));\n return String.fromCodePoint(...codePoints);\n};\n\nconst renderSelectItem: RenderOptionType<PhoneCodeOption> = ({ data, onChange, type }) => {\n if (type === 'delimiter') {\n return (\n <CellText maxLines={1} style=\"secondary\">\n {data.text}\n </CellText>\n );\n }\n\n return (\n <Cell\n left={\n <div className={styles.flagContainer}>\n <span className={classNames(styles.flagEmoji)}>{getFlagEmoji(data.value)}</span>\n </div>\n }\n right={<CellRightLabel hideIcon>+{data.callingCode}</CellRightLabel>}\n horPadding={false}\n vertPadding={false}\n onClick={() => onChange(data, true)}\n tabIndex={-1}\n >\n <CellText>{data.text}</CellText>\n </Cell>\n );\n};\n\ntype RegionSelectProps = {\n country: CountryCode;\n selectDataProvider: DataProvider<PhoneCodeOption>;\n selectOptions: PhoneCodeOption[];\n callingCode: CountryCallingCode;\n onChange: (country: CountryCode, callingCode: CountryCallingCode) => void;\n availableCountries?: CountryCode[];\n priorityCountries: CountryCode[];\n invalid?: boolean;\n libPhoneNumberAPI: LibPhoneNumberAPI;\n showSearchInMobile: boolean;\n disabled?: boolean;\n metadataVariant: MetadataVariant;\n descriptionId: string;\n};\n\nexport const RegionSelect = forwardRef<HTMLInputElement, RegionSelectProps>(\n (\n {\n selectDataProvider,\n selectOptions,\n country,\n callingCode,\n onChange,\n invalid,\n libPhoneNumberAPI,\n showSearchInMobile,\n disabled,\n metadataVariant,\n descriptionId,\n },\n ref\n ) => {\n const { getCountryCallingCode } = libPhoneNumberAPI;\n const [inputValue, setInputValue] = useState<string>(`+${callingCode}`);\n const exactMatchRef = useRef(true);\n const { isMobile } = useBreakpoint();\n\n const isFlagEmojiSupported = useIsFlagEmojiSupported();\n useFlagEmojiFont(metadataVariant, isFlagEmojiSupported);\n const pickerRefCallback = useCallback(\n (node: HTMLElement) => {\n if (node) {\n node.classList.toggle(styles.noFlagEmoji, !isFlagEmojiSupported);\n }\n },\n [isFlagEmojiSupported]\n );\n\n useEffect(() => {\n setInputValue(`+${callingCode}`);\n }, [callingCode]);\n\n const value = useMemo(() => selectOptions.find((item) => item.value === country), [selectOptions, country]);\n return (\n <Select\n type=\"radio\"\n dataProvider={selectDataProvider}\n value={value}\n onChange={(selectedValue) => {\n exactMatchRef.current = true;\n onChange?.(selectedValue.value, getCountryCallingCode(selectedValue.value));\n }}\n widthEqualToActivator={false}\n searchable={true}\n renderMobileItem={renderSelectItem}\n renderDesktopItem={renderSelectItem}\n pickerRef={pickerRefCallback}\n renderHeader={(props) => {\n return <RenderHeaderDefault {...props} searchable={showSearchInMobile} />;\n }}\n renderTrigger={({\n setSearchValue,\n onChange: toggleVisibility,\n onFocus,\n onBlur,\n onKeyDown,\n ref: triggerRef,\n }) => (\n <CallingCodeInput\n ref={triggerRef as Ref<HTMLDivElement>}\n inputElementRef={ref}\n className={!isFlagEmojiSupported && styles.noFlagEmoji}\n flag={<span className={classNames(styles.flagEmoji)}>{getFlagEmoji(country)}</span>}\n invalid={invalid}\n disabled={disabled}\n descriptionId={descriptionId}\n onKeyDownContainer={(event) => {\n if (\n isMobile &&\n keyboardMatches(event.nativeEvent, [keyboardKeys.Space, keyboardKeys.Enter])\n ) {\n event.preventDefault();\n toggleVisibility(true);\n }\n }}\n onChange={(value) => {\n if (value === '') {\n setInputValue('+');\n setSearchValue('');\n }\n if (!value.startsWith('+')) {\n return;\n }\n const code = value.substring(1);\n let hasPartialMatch = false;\n const exactMatch = selectOptions.find((option) => {\n if (!option.value) {\n return false;\n }\n\n if (option.callingCode.startsWith(code)) {\n hasPartialMatch = true;\n }\n\n return option.callingCode === code;\n });\n\n // выполнится даже если есть точное совпадение\n if (hasPartialMatch) {\n exactMatchRef.current = false;\n setInputValue(`+${code}`);\n setSearchValue(code === '' ? '' : `+${code}`);\n }\n\n if (exactMatch) {\n exactMatchRef.current = true;\n onChange(exactMatch.value, exactMatch.callingCode);\n }\n }}\n value={inputValue}\n onFocus={() => {\n setSearchValue('');\n onFocus?.();\n }}\n onBlur={onBlur}\n onKeyDownInput={onKeyDown}\n />\n )}\n onBlur={() => {\n if (!exactMatchRef.current) {\n const code = inputValue.substring(1);\n const bestMatch = selectOptions.find((option) => option?.callingCode.startsWith(code));\n if (bestMatch && bestMatch.value) {\n onChange(bestMatch.value, bestMatch.callingCode);\n setInputValue(`+${bestMatch.callingCode}`);\n }\n }\n }}\n />\n );\n }\n);\n\nRegionSelect.displayName = 'RegionSelect';\n"],"names":["_jsx","_jsxs"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"RegionSelect.js","sources":["src/RegionSelect.tsx"],"sourcesContent":["import { type Ref, forwardRef, useState, useRef, useEffect, useCallback, useMemo } from 'react';\nimport classNames from 'classnames';\nimport { type CountryCode, type CountryCallingCode } from 'libphonenumber-js';\n\nimport { DataProvider } from '@hh.ru/magritte-common-data-provider';\nimport { useFlagEmojiFont, useIsFlagEmojiSupported } from '@hh.ru/magritte-common-flag-emoji-font';\nimport { keyboardKeys, keyboardMatches } from '@hh.ru/magritte-common-keyboard';\nimport { useBreakpoint } from '@hh.ru/magritte-ui-breakpoint';\nimport { Cell, CellRightLabel, CellText } from '@hh.ru/magritte-ui-cell';\nimport { CallingCodeInput } from '@hh.ru/magritte-ui-phone-input/CallingCodeInput';\nimport { type PhoneCodeOption } from '@hh.ru/magritte-ui-phone-input/useCountrySelectDataProvider';\nimport { type LibPhoneNumberAPI, type MetadataVariant } from '@hh.ru/magritte-ui-phone-input/useLibPhoneNumber';\nimport { RenderOptionType, Select, RenderHeaderDefault } from '@hh.ru/magritte-ui-select';\n\nimport styles from './phoneInput.less';\n\nconst getFlagEmoji = (countryCode: CountryCode) => {\n const codePoints = countryCode\n .toUpperCase()\n .split('')\n .map((char) => 127397 + char.charCodeAt(0));\n return String.fromCodePoint(...codePoints);\n};\n\nconst renderSelectItem: RenderOptionType<PhoneCodeOption> = ({ data, onChange, type }) => {\n if (type === 'delimiter') {\n return (\n <CellText maxLines={1} style=\"secondary\">\n {data.text}\n </CellText>\n );\n }\n\n return (\n <Cell\n left={\n <div className={styles.flagContainer}>\n <span className={classNames(styles.flagEmoji)}>{getFlagEmoji(data.value)}</span>\n </div>\n }\n right={<CellRightLabel hideIcon>+{data.callingCode}</CellRightLabel>}\n horPadding={false}\n vertPadding={false}\n onClick={() => onChange(data, true)}\n tabIndex={-1}\n >\n <CellText>{data.text}</CellText>\n </Cell>\n );\n};\n\ntype RegionSelectProps = {\n country: CountryCode;\n countryLocked: boolean;\n selectDataProvider: DataProvider<PhoneCodeOption>;\n selectOptions: PhoneCodeOption[];\n callingCode: CountryCallingCode;\n onChange: (country: CountryCode, callingCode: CountryCallingCode) => void;\n availableCountries?: CountryCode[];\n priorityCountries: CountryCode[];\n invalid?: boolean;\n libPhoneNumberAPI: LibPhoneNumberAPI;\n showSearchInMobile: boolean;\n disabled?: boolean;\n metadataVariant: MetadataVariant;\n descriptionId: string;\n};\n\nexport const RegionSelect = forwardRef<HTMLInputElement, RegionSelectProps>(\n (\n {\n selectDataProvider,\n selectOptions,\n country,\n countryLocked,\n callingCode,\n onChange,\n invalid,\n libPhoneNumberAPI,\n showSearchInMobile,\n disabled,\n metadataVariant,\n descriptionId,\n },\n ref\n ) => {\n const { getCountryCallingCode } = libPhoneNumberAPI;\n const [inputValue, setInputValue] = useState<string>(`+${callingCode}`);\n const exactMatchRef = useRef(true);\n const { isMobile } = useBreakpoint();\n\n const isFlagEmojiSupported = useIsFlagEmojiSupported();\n useFlagEmojiFont(metadataVariant, isFlagEmojiSupported);\n const pickerRefCallback = useCallback(\n (node: HTMLElement) => {\n if (node) {\n node.classList.toggle(styles.noFlagEmoji, !isFlagEmojiSupported);\n }\n },\n [isFlagEmojiSupported]\n );\n\n useEffect(() => {\n setInputValue(`+${callingCode}`);\n }, [callingCode]);\n\n const value = useMemo(() => selectOptions.find((item) => item.value === country), [selectOptions, country]);\n return (\n <Select\n type=\"radio\"\n dataProvider={selectDataProvider}\n value={value}\n onChange={(selectedValue) => {\n exactMatchRef.current = true;\n onChange?.(selectedValue.value, getCountryCallingCode(selectedValue.value));\n }}\n widthEqualToActivator={false}\n searchable={true}\n renderMobileItem={renderSelectItem}\n renderDesktopItem={renderSelectItem}\n pickerRef={pickerRefCallback}\n renderHeader={(props) => {\n return <RenderHeaderDefault {...props} searchable={showSearchInMobile} />;\n }}\n renderTrigger={({\n setSearchValue,\n onChange: toggleVisibility,\n onFocus,\n onBlur,\n onKeyDown,\n ref: triggerRef,\n }) => (\n <CallingCodeInput\n ref={triggerRef as Ref<HTMLDivElement>}\n inputElementRef={ref}\n className={!isFlagEmojiSupported && styles.noFlagEmoji}\n flag={<span className={classNames(styles.flagEmoji)}>{getFlagEmoji(country)}</span>}\n invalid={invalid}\n disabled={disabled || countryLocked}\n descriptionId={descriptionId}\n onKeyDownContainer={(event) => {\n if (\n isMobile &&\n keyboardMatches(event.nativeEvent, [keyboardKeys.Space, keyboardKeys.Enter])\n ) {\n event.preventDefault();\n toggleVisibility(true);\n }\n }}\n onChange={(value) => {\n if (value === '') {\n setInputValue('+');\n setSearchValue('');\n }\n if (!value.startsWith('+')) {\n return;\n }\n const code = value.substring(1);\n let hasPartialMatch = false;\n const exactMatch = selectOptions.find((option) => {\n if (!option.value) {\n return false;\n }\n\n if (option.callingCode.startsWith(code)) {\n hasPartialMatch = true;\n }\n\n return option.callingCode === code;\n });\n\n // выполнится даже если есть точное совпадение\n if (hasPartialMatch) {\n exactMatchRef.current = false;\n setInputValue(`+${code}`);\n setSearchValue(code === '' ? '' : `+${code}`);\n }\n\n if (exactMatch) {\n exactMatchRef.current = true;\n onChange(exactMatch.value, exactMatch.callingCode);\n }\n }}\n value={inputValue}\n onFocus={() => {\n setSearchValue('');\n onFocus?.();\n }}\n onBlur={onBlur}\n onKeyDownInput={onKeyDown}\n />\n )}\n onBlur={() => {\n if (!exactMatchRef.current) {\n const code = inputValue.substring(1);\n const bestMatch = selectOptions.find((option) => option?.callingCode.startsWith(code));\n if (bestMatch && bestMatch.value) {\n onChange(bestMatch.value, bestMatch.callingCode);\n setInputValue(`+${bestMatch.callingCode}`);\n }\n }\n }}\n />\n );\n }\n);\n\nRegionSelect.displayName = 'RegionSelect';\n"],"names":["_jsx","_jsxs"],"mappings":";;;;;;;;;;;AAgBA,MAAM,YAAY,GAAG,CAAC,WAAwB,KAAI;IAC9C,MAAM,UAAU,GAAG,WAAW;AACzB,SAAA,WAAW,EAAE;SACb,KAAK,CAAC,EAAE,CAAC;AACT,SAAA,GAAG,CAAC,CAAC,IAAI,KAAK,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;AAChD,IAAA,OAAO,MAAM,CAAC,aAAa,CAAC,GAAG,UAAU,CAAC,CAAC;AAC/C,CAAC,CAAC;AAEF,MAAM,gBAAgB,GAAsC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAI;AACrF,IAAA,IAAI,IAAI,KAAK,WAAW,EAAE;AACtB,QAAA,QACIA,GAAC,CAAA,QAAQ,EAAC,EAAA,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAC,WAAW,EACnC,QAAA,EAAA,IAAI,CAAC,IAAI,EAAA,CACH,EACb;KACL;AAED,IAAA,QACIA,GAAC,CAAA,IAAI,EACD,EAAA,IAAI,EACAA,GAAK,CAAA,KAAA,EAAA,EAAA,SAAS,EAAE,MAAM,CAAC,aAAa,EAAA,QAAA,EAChCA,GAAM,CAAA,MAAA,EAAA,EAAA,SAAS,EAAE,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,EAAA,QAAA,EAAG,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,EAAA,CAAQ,GAC9E,EAEV,KAAK,EAAEC,IAAC,CAAA,cAAc,IAAC,QAAQ,EAAA,IAAA,EAAA,QAAA,EAAA,CAAA,GAAA,EAAG,IAAI,CAAC,WAAW,CAAkB,EAAA,CAAA,EACpE,UAAU,EAAE,KAAK,EACjB,WAAW,EAAE,KAAK,EAClB,OAAO,EAAE,MAAM,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,EACnC,QAAQ,EAAE,CAAC,CAAC,EAAA,QAAA,EAEZD,GAAC,CAAA,QAAQ,cAAE,IAAI,CAAC,IAAI,EAAY,CAAA,EAAA,CAC7B,EACT;AACN,CAAC,CAAC;AAmBK,MAAM,YAAY,GAAG,UAAU,CAClC,CACI,EACI,kBAAkB,EAClB,aAAa,EACb,OAAO,EACP,aAAa,EACb,WAAW,EACX,QAAQ,EACR,OAAO,EACP,iBAAiB,EACjB,kBAAkB,EAClB,QAAQ,EACR,eAAe,EACf,aAAa,GAChB,EACD,GAAG,KACH;AACA,IAAA,MAAM,EAAE,qBAAqB,EAAE,GAAG,iBAAiB,CAAC;AACpD,IAAA,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAS,CAAI,CAAA,EAAA,WAAW,CAAE,CAAA,CAAC,CAAC;AACxE,IAAA,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;AACnC,IAAA,MAAM,EAAE,QAAQ,EAAE,GAAG,aAAa,EAAE,CAAC;AAErC,IAAA,MAAM,oBAAoB,GAAG,uBAAuB,EAAE,CAAC;AACvD,IAAA,gBAAgB,CAAC,eAAe,EAAE,oBAAoB,CAAC,CAAC;AACxD,IAAA,MAAM,iBAAiB,GAAG,WAAW,CACjC,CAAC,IAAiB,KAAI;QAClB,IAAI,IAAI,EAAE;AACN,YAAA,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,oBAAoB,CAAC,CAAC;SACpE;AACL,KAAC,EACD,CAAC,oBAAoB,CAAC,CACzB,CAAC;IAEF,SAAS,CAAC,MAAK;AACX,QAAA,aAAa,CAAC,CAAA,CAAA,EAAI,WAAW,CAAA,CAAE,CAAC,CAAC;AACrC,KAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;AAElB,IAAA,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,aAAa,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,KAAK,KAAK,OAAO,CAAC,EAAE,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC,CAAC;IAC5G,QACIA,IAAC,MAAM,EAAA,EACH,IAAI,EAAC,OAAO,EACZ,YAAY,EAAE,kBAAkB,EAChC,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,CAAC,aAAa,KAAI;AACxB,YAAA,aAAa,CAAC,OAAO,GAAG,IAAI,CAAC;AAC7B,YAAA,QAAQ,GAAG,aAAa,CAAC,KAAK,EAAE,qBAAqB,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;SAC/E,EACD,qBAAqB,EAAE,KAAK,EAC5B,UAAU,EAAE,IAAI,EAChB,gBAAgB,EAAE,gBAAgB,EAClC,iBAAiB,EAAE,gBAAgB,EACnC,SAAS,EAAE,iBAAiB,EAC5B,YAAY,EAAE,CAAC,KAAK,KAAI;YACpB,OAAOA,GAAA,CAAC,mBAAmB,EAAK,EAAA,GAAA,KAAK,EAAE,UAAU,EAAE,kBAAkB,EAAA,CAAI,CAAC;AAC9E,SAAC,EACD,aAAa,EAAE,CAAC,EACZ,cAAc,EACd,QAAQ,EAAE,gBAAgB,EAC1B,OAAO,EACP,MAAM,EACN,SAAS,EACT,GAAG,EAAE,UAAU,GAClB,MACGA,GAAC,CAAA,gBAAgB,IACb,GAAG,EAAE,UAAiC,EACtC,eAAe,EAAE,GAAG,EACpB,SAAS,EAAE,CAAC,oBAAoB,IAAI,MAAM,CAAC,WAAW,EACtD,IAAI,EAAEA,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAE,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,YAAG,YAAY,CAAC,OAAO,CAAC,EAAA,CAAQ,EACnF,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,QAAQ,IAAI,aAAa,EACnC,aAAa,EAAE,aAAa,EAC5B,kBAAkB,EAAE,CAAC,KAAK,KAAI;AAC1B,gBAAA,IACI,QAAQ;AACR,oBAAA,eAAe,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,YAAY,CAAC,KAAK,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC,EAC9E;oBACE,KAAK,CAAC,cAAc,EAAE,CAAC;oBACvB,gBAAgB,CAAC,IAAI,CAAC,CAAC;iBAC1B;AACL,aAAC,EACD,QAAQ,EAAE,CAAC,KAAK,KAAI;AAChB,gBAAA,IAAI,KAAK,KAAK,EAAE,EAAE;oBACd,aAAa,CAAC,GAAG,CAAC,CAAC;oBACnB,cAAc,CAAC,EAAE,CAAC,CAAC;iBACtB;gBACD,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;oBACxB,OAAO;iBACV;gBACD,MAAM,IAAI,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;gBAChC,IAAI,eAAe,GAAG,KAAK,CAAC;gBAC5B,MAAM,UAAU,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,MAAM,KAAI;AAC7C,oBAAA,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE;AACf,wBAAA,OAAO,KAAK,CAAC;qBAChB;oBAED,IAAI,MAAM,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;wBACrC,eAAe,GAAG,IAAI,CAAC;qBAC1B;AAED,oBAAA,OAAO,MAAM,CAAC,WAAW,KAAK,IAAI,CAAC;AACvC,iBAAC,CAAC,CAAC;;gBAGH,IAAI,eAAe,EAAE;AACjB,oBAAA,aAAa,CAAC,OAAO,GAAG,KAAK,CAAC;AAC9B,oBAAA,aAAa,CAAC,CAAA,CAAA,EAAI,IAAI,CAAA,CAAE,CAAC,CAAC;AAC1B,oBAAA,cAAc,CAAC,IAAI,KAAK,EAAE,GAAG,EAAE,GAAG,CAAA,CAAA,EAAI,IAAI,CAAA,CAAE,CAAC,CAAC;iBACjD;gBAED,IAAI,UAAU,EAAE;AACZ,oBAAA,aAAa,CAAC,OAAO,GAAG,IAAI,CAAC;oBAC7B,QAAQ,CAAC,UAAU,CAAC,KAAK,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC;iBACtD;aACJ,EACD,KAAK,EAAE,UAAU,EACjB,OAAO,EAAE,MAAK;gBACV,cAAc,CAAC,EAAE,CAAC,CAAC;gBACnB,OAAO,IAAI,CAAC;AAChB,aAAC,EACD,MAAM,EAAE,MAAM,EACd,cAAc,EAAE,SAAS,EAAA,CAC3B,CACL,EACD,MAAM,EAAE,MAAK;AACT,YAAA,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE;gBACxB,MAAM,IAAI,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;gBACrC,MAAM,SAAS,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM,EAAE,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;AACvF,gBAAA,IAAI,SAAS,IAAI,SAAS,CAAC,KAAK,EAAE;oBAC9B,QAAQ,CAAC,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC,WAAW,CAAC,CAAC;AACjD,oBAAA,aAAa,CAAC,CAAI,CAAA,EAAA,SAAS,CAAC,WAAW,CAAA,CAAE,CAAC,CAAC;iBAC9C;aACJ;SACJ,EAAA,CACH,EACJ;AACN,CAAC,EACH;AAEF,YAAY,CAAC,WAAW,GAAG,cAAc;;;;"}
|
package/index.css
CHANGED
|
@@ -1,45 +1,45 @@
|
|
|
1
1
|
:root{
|
|
2
|
-
--magritte-color-text-primary-v24-7-
|
|
3
|
-
--magritte-color-component-input-stroke-state-field-hovered-v24-7-
|
|
4
|
-
--magritte-color-component-input-stroke-state-field-focused-v24-7-
|
|
5
|
-
--magritte-color-component-input-stroke-state-accent-focused-accessible-v24-7-
|
|
6
|
-
--magritte-color-component-input-stroke-state-field-invalid-v24-7-
|
|
7
|
-
--magritte-color-component-input-stroke-state-negative-focused-accessible-v24-7-
|
|
8
|
-
--magritte-color-component-input-stroke-state-field-disabled-v24-7-
|
|
9
|
-
--magritte-color-component-input-background-field-v24-7-
|
|
10
|
-
--magritte-color-component-input-background-state-field-hovered-v24-7-
|
|
11
|
-
--magritte-color-component-input-background-state-field-focused-v24-7-
|
|
12
|
-
--magritte-color-component-input-background-state-field-invalid-v24-7-
|
|
13
|
-
--magritte-color-component-input-background-state-field-disabled-v24-7-
|
|
14
|
-
--magritte-color-component-input-stroke-field-v24-7-
|
|
15
|
-
--magritte-color-component-input-text-state-content-disabled-v24-7-
|
|
16
|
-
--magritte-color-component-input-text-state-content-hovered-v24-7-
|
|
17
|
-
--magritte-color-component-input-text-state-content-focused-v24-7-
|
|
18
|
-
--magritte-color-component-input-text-state-content-invalid-v24-7-
|
|
19
|
-
--magritte-color-component-input-text-content-v24-7-
|
|
2
|
+
--magritte-color-text-primary-v24-7-3:#000000;
|
|
3
|
+
--magritte-color-component-input-stroke-state-field-hovered-v24-7-3:#CCD5DF;
|
|
4
|
+
--magritte-color-component-input-stroke-state-field-focused-v24-7-3:#0070ff;
|
|
5
|
+
--magritte-color-component-input-stroke-state-accent-focused-accessible-v24-7-3:#0070ff7a;
|
|
6
|
+
--magritte-color-component-input-stroke-state-field-invalid-v24-7-3:#ff4d3a;
|
|
7
|
+
--magritte-color-component-input-stroke-state-negative-focused-accessible-v24-7-3:#ff4d3a7a;
|
|
8
|
+
--magritte-color-component-input-stroke-state-field-disabled-v24-7-3:#EEF1F7;
|
|
9
|
+
--magritte-color-component-input-background-field-v24-7-3:#ffffff;
|
|
10
|
+
--magritte-color-component-input-background-state-field-hovered-v24-7-3:#ffffff;
|
|
11
|
+
--magritte-color-component-input-background-state-field-focused-v24-7-3:#ffffff;
|
|
12
|
+
--magritte-color-component-input-background-state-field-invalid-v24-7-3:#ffffff;
|
|
13
|
+
--magritte-color-component-input-background-state-field-disabled-v24-7-3:#F4F6FB;
|
|
14
|
+
--magritte-color-component-input-stroke-field-v24-7-3:#DCE3EB;
|
|
15
|
+
--magritte-color-component-input-text-state-content-disabled-v24-7-3:#AABBCA;
|
|
16
|
+
--magritte-color-component-input-text-state-content-hovered-v24-7-3:#000000;
|
|
17
|
+
--magritte-color-component-input-text-state-content-focused-v24-7-3:#000000;
|
|
18
|
+
--magritte-color-component-input-text-state-content-invalid-v24-7-3:#000000;
|
|
19
|
+
--magritte-color-component-input-text-content-v24-7-3:#000000;
|
|
20
20
|
}
|
|
21
21
|
|
|
22
22
|
.magritte-night-theme{
|
|
23
|
-
--magritte-color-text-primary-v24-7-
|
|
24
|
-
--magritte-color-component-input-stroke-state-field-hovered-v24-7-
|
|
25
|
-
--magritte-color-component-input-stroke-state-field-disabled-v24-7-
|
|
26
|
-
--magritte-color-component-input-background-field-v24-7-
|
|
27
|
-
--magritte-color-component-input-background-state-field-hovered-v24-7-
|
|
28
|
-
--magritte-color-component-input-background-state-field-focused-v24-7-
|
|
29
|
-
--magritte-color-component-input-background-state-field-invalid-v24-7-
|
|
30
|
-
--magritte-color-component-input-background-state-field-disabled-v24-7-
|
|
31
|
-
--magritte-color-component-input-stroke-field-v24-7-
|
|
32
|
-
--magritte-color-component-input-text-content-v24-7-
|
|
33
|
-
--magritte-color-component-input-text-state-content-disabled-v24-7-
|
|
34
|
-
--magritte-color-component-input-text-state-content-hovered-v24-7-
|
|
35
|
-
--magritte-color-component-input-text-state-content-focused-v24-7-
|
|
36
|
-
--magritte-color-component-input-text-state-content-invalid-v24-7-
|
|
23
|
+
--magritte-color-text-primary-v24-7-3:#ffffff;
|
|
24
|
+
--magritte-color-component-input-stroke-state-field-hovered-v24-7-3:#3B3B3B;
|
|
25
|
+
--magritte-color-component-input-stroke-state-field-disabled-v24-7-3:#1B1B1B;
|
|
26
|
+
--magritte-color-component-input-background-field-v24-7-3:#111;
|
|
27
|
+
--magritte-color-component-input-background-state-field-hovered-v24-7-3:#111;
|
|
28
|
+
--magritte-color-component-input-background-state-field-focused-v24-7-3:#111;
|
|
29
|
+
--magritte-color-component-input-background-state-field-invalid-v24-7-3:#111;
|
|
30
|
+
--magritte-color-component-input-background-state-field-disabled-v24-7-3:#111;
|
|
31
|
+
--magritte-color-component-input-stroke-field-v24-7-3:#303030;
|
|
32
|
+
--magritte-color-component-input-text-content-v24-7-3:#ffffff;
|
|
33
|
+
--magritte-color-component-input-text-state-content-disabled-v24-7-3:#474747;
|
|
34
|
+
--magritte-color-component-input-text-state-content-hovered-v24-7-3:#ffffff;
|
|
35
|
+
--magritte-color-component-input-text-state-content-focused-v24-7-3:#ffffff;
|
|
36
|
+
--magritte-color-component-input-text-state-content-invalid-v24-7-3:#ffffff;
|
|
37
37
|
}
|
|
38
38
|
|
|
39
39
|
.magritte-zp-day-theme{
|
|
40
|
-
--magritte-color-component-input-stroke-state-field-focused-v24-7-
|
|
40
|
+
--magritte-color-component-input-stroke-state-field-focused-v24-7-3:#7195AF;
|
|
41
41
|
}
|
|
42
|
-
.magritte-calling-code-input___Hb20f_4-
|
|
42
|
+
.magritte-calling-code-input___Hb20f_4-3-0{
|
|
43
43
|
display:none;
|
|
44
44
|
position:absolute;
|
|
45
45
|
inset:0;
|
|
@@ -48,8 +48,8 @@
|
|
|
48
48
|
border:0;
|
|
49
49
|
text-overflow:ellipsis;
|
|
50
50
|
padding:0;
|
|
51
|
-
color:var(--magritte-color-component-input-text-content-v24-7-
|
|
52
|
-
caret-color:var(--magritte-ui-input-caret-color-override, var(--magritte-color-text-primary-v24-7-
|
|
51
|
+
color:var(--magritte-color-component-input-text-content-v24-7-3);
|
|
52
|
+
caret-color:var(--magritte-ui-input-caret-color-override, var(--magritte-color-text-primary-v24-7-3));
|
|
53
53
|
outline:none;
|
|
54
54
|
font-family:"hh sans";
|
|
55
55
|
font-weight:400;
|
|
@@ -61,72 +61,75 @@
|
|
|
61
61
|
text-decoration:none;
|
|
62
62
|
}
|
|
63
63
|
@media (min-width: 1020px){
|
|
64
|
-
body.magritte-old-layout .magritte-calling-code-input___Hb20f_4-
|
|
64
|
+
body.magritte-old-layout .magritte-calling-code-input___Hb20f_4-3-0{
|
|
65
65
|
display:block;
|
|
66
66
|
}
|
|
67
67
|
}
|
|
68
68
|
@media (min-width: 1024px){
|
|
69
|
-
body:not(.magritte-old-layout) .magritte-calling-code-input___Hb20f_4-
|
|
69
|
+
body:not(.magritte-old-layout) .magritte-calling-code-input___Hb20f_4-3-0{
|
|
70
70
|
display:block;
|
|
71
71
|
}
|
|
72
72
|
}
|
|
73
|
-
.magritte-calling-code-input-container___UXmHV_4-
|
|
73
|
+
.magritte-calling-code-input-container___UXmHV_4-3-0{
|
|
74
74
|
display:inline-flex;
|
|
75
75
|
gap:12px;
|
|
76
|
-
background-color:var(--magritte-color-component-input-background-field-v24-7-
|
|
76
|
+
background-color:var(--magritte-color-component-input-background-field-v24-7-3);
|
|
77
77
|
padding:16px;
|
|
78
78
|
border-radius:12px;
|
|
79
|
-
box-shadow:inset 0 0 0 1px var(--magritte-color-component-input-stroke-field-v24-7-
|
|
79
|
+
box-shadow:inset 0 0 0 1px var(--magritte-color-component-input-stroke-field-v24-7-3);
|
|
80
80
|
cursor:text;
|
|
81
81
|
}
|
|
82
|
-
.magritte-calling-code-input-container___UXmHV_4-
|
|
83
|
-
background-color:var(--magritte-color-component-input-background-state-field-hovered-v24-7-
|
|
84
|
-
box-shadow:inset 0 0 0 1px var(--magritte-color-component-input-stroke-state-field-hovered-v24-7-
|
|
82
|
+
.magritte-calling-code-input-container___UXmHV_4-3-0:hover:not(.magritte-disabled___fvEeH_4-3-0):not(.magritte-focused___Ok8x4_4-3-0):not(.magritte-invalid___kptbH_4-3-0){
|
|
83
|
+
background-color:var(--magritte-color-component-input-background-state-field-hovered-v24-7-3);
|
|
84
|
+
box-shadow:inset 0 0 0 1px var(--magritte-color-component-input-stroke-state-field-hovered-v24-7-3);
|
|
85
85
|
}
|
|
86
|
-
.magritte-calling-code-input-container___UXmHV_4-
|
|
87
|
-
.magritte-calling-code-input-container___UXmHV_4-
|
|
88
|
-
color:var(--magritte-color-component-input-text-state-content-hovered-v24-7-
|
|
86
|
+
.magritte-calling-code-input-container___UXmHV_4-3-0:hover:not(.magritte-disabled___fvEeH_4-3-0):not(.magritte-focused___Ok8x4_4-3-0):not(.magritte-invalid___kptbH_4-3-0) .magritte-calling-code-input___Hb20f_4-3-0,
|
|
87
|
+
.magritte-calling-code-input-container___UXmHV_4-3-0:hover:not(.magritte-disabled___fvEeH_4-3-0):not(.magritte-focused___Ok8x4_4-3-0):not(.magritte-invalid___kptbH_4-3-0) .magritte-ghost-data___zShvn_4-3-0{
|
|
88
|
+
color:var(--magritte-color-component-input-text-state-content-hovered-v24-7-3);
|
|
89
89
|
}
|
|
90
|
-
.magritte-calling-code-input-container___UXmHV_4-
|
|
91
|
-
background-color:var(--magritte-color-component-input-background-state-field-focused-v24-7-
|
|
92
|
-
box-shadow:inset 0 0 0 2px var(--magritte-color-component-input-stroke-state-field-focused-v24-7-
|
|
90
|
+
.magritte-calling-code-input-container___UXmHV_4-3-0.magritte-focused___Ok8x4_4-3-0{
|
|
91
|
+
background-color:var(--magritte-color-component-input-background-state-field-focused-v24-7-3);
|
|
92
|
+
box-shadow:inset 0 0 0 2px var(--magritte-color-component-input-stroke-state-field-focused-v24-7-3);
|
|
93
93
|
}
|
|
94
|
-
.magritte-calling-code-input-container___UXmHV_4-
|
|
95
|
-
.magritte-calling-code-input-container___UXmHV_4-
|
|
96
|
-
color:var(--magritte-color-component-input-text-state-content-focused-v24-7-
|
|
94
|
+
.magritte-calling-code-input-container___UXmHV_4-3-0.magritte-focused___Ok8x4_4-3-0 .magritte-calling-code-input___Hb20f_4-3-0,
|
|
95
|
+
.magritte-calling-code-input-container___UXmHV_4-3-0.magritte-focused___Ok8x4_4-3-0 .magritte-ghost-data___zShvn_4-3-0{
|
|
96
|
+
color:var(--magritte-color-component-input-text-state-content-focused-v24-7-3);
|
|
97
97
|
}
|
|
98
|
-
.magritte-calling-code-input-container___UXmHV_4-
|
|
99
|
-
background-color:var(--magritte-color-component-input-background-state-field-invalid-v24-7-
|
|
100
|
-
box-shadow:inset 0 0 0 2px var(--magritte-color-component-input-stroke-state-field-invalid-v24-7-
|
|
98
|
+
.magritte-calling-code-input-container___UXmHV_4-3-0.magritte-focused___Ok8x4_4-3-0.magritte-invalid___kptbH_4-3-0{
|
|
99
|
+
background-color:var(--magritte-color-component-input-background-state-field-invalid-v24-7-3);
|
|
100
|
+
box-shadow:inset 0 0 0 2px var(--magritte-color-component-input-stroke-state-field-invalid-v24-7-3);
|
|
101
101
|
}
|
|
102
|
-
.magritte-calling-code-input-container___UXmHV_4-
|
|
103
|
-
.magritte-calling-code-input-container___UXmHV_4-
|
|
104
|
-
color:var(--magritte-color-component-input-text-state-content-invalid-v24-7-
|
|
102
|
+
.magritte-calling-code-input-container___UXmHV_4-3-0.magritte-focused___Ok8x4_4-3-0.magritte-invalid___kptbH_4-3-0 .magritte-calling-code-input___Hb20f_4-3-0,
|
|
103
|
+
.magritte-calling-code-input-container___UXmHV_4-3-0.magritte-focused___Ok8x4_4-3-0.magritte-invalid___kptbH_4-3-0 .magritte-ghost-data___zShvn_4-3-0{
|
|
104
|
+
color:var(--magritte-color-component-input-text-state-content-invalid-v24-7-3);
|
|
105
105
|
}
|
|
106
|
-
.magritte-calling-code-input-container___UXmHV_4-
|
|
107
|
-
outline:var(--magritte-color-component-input-stroke-state-accent-focused-accessible-v24-7-
|
|
106
|
+
.magritte-calling-code-input-container___UXmHV_4-3-0.magritte-focus-visible___kbwmg_4-3-0{
|
|
107
|
+
outline:var(--magritte-color-component-input-stroke-state-accent-focused-accessible-v24-7-3) solid 4px;
|
|
108
108
|
}
|
|
109
|
-
.magritte-calling-code-input-container___UXmHV_4-
|
|
110
|
-
outline-color:var(--magritte-color-component-input-stroke-state-negative-focused-accessible-v24-7-
|
|
109
|
+
.magritte-calling-code-input-container___UXmHV_4-3-0.magritte-focus-visible___kbwmg_4-3-0.magritte-invalid___kptbH_4-3-0{
|
|
110
|
+
outline-color:var(--magritte-color-component-input-stroke-state-negative-focused-accessible-v24-7-3);
|
|
111
111
|
}
|
|
112
|
-
.magritte-calling-code-input-container___UXmHV_4-
|
|
113
|
-
background-color:var(--magritte-color-component-input-background-state-field-invalid-v24-7-
|
|
114
|
-
box-shadow:inset 0 0 0 1px var(--magritte-color-component-input-stroke-state-field-invalid-v24-7-
|
|
112
|
+
.magritte-calling-code-input-container___UXmHV_4-3-0.magritte-invalid___kptbH_4-3-0{
|
|
113
|
+
background-color:var(--magritte-color-component-input-background-state-field-invalid-v24-7-3);
|
|
114
|
+
box-shadow:inset 0 0 0 1px var(--magritte-color-component-input-stroke-state-field-invalid-v24-7-3);
|
|
115
115
|
}
|
|
116
|
-
.magritte-calling-code-input-container___UXmHV_4-
|
|
117
|
-
.magritte-calling-code-input-container___UXmHV_4-
|
|
118
|
-
color:var(--magritte-color-component-input-text-state-content-invalid-v24-7-
|
|
116
|
+
.magritte-calling-code-input-container___UXmHV_4-3-0.magritte-invalid___kptbH_4-3-0 .magritte-calling-code-input___Hb20f_4-3-0,
|
|
117
|
+
.magritte-calling-code-input-container___UXmHV_4-3-0.magritte-invalid___kptbH_4-3-0 .magritte-ghost-data___zShvn_4-3-0{
|
|
118
|
+
color:var(--magritte-color-component-input-text-state-content-invalid-v24-7-3);
|
|
119
119
|
}
|
|
120
|
-
.magritte-calling-code-input-container___UXmHV_4-
|
|
120
|
+
.magritte-calling-code-input-container___UXmHV_4-3-0.magritte-disabled___fvEeH_4-3-0{
|
|
121
121
|
cursor:default;
|
|
122
|
-
background-color:var(--magritte-color-component-input-background-state-field-disabled-v24-7-
|
|
123
|
-
box-shadow:inset 0 0 0 1px var(--magritte-color-component-input-stroke-state-field-disabled-v24-7-
|
|
122
|
+
background-color:var(--magritte-color-component-input-background-state-field-disabled-v24-7-3);
|
|
123
|
+
box-shadow:inset 0 0 0 1px var(--magritte-color-component-input-stroke-state-field-disabled-v24-7-3);
|
|
124
124
|
}
|
|
125
|
-
.magritte-calling-code-input-container___UXmHV_4-
|
|
126
|
-
.magritte-calling-code-input-container___UXmHV_4-
|
|
127
|
-
color:var(--magritte-color-component-input-text-state-content-disabled-v24-7-
|
|
125
|
+
.magritte-calling-code-input-container___UXmHV_4-3-0.magritte-disabled___fvEeH_4-3-0 .magritte-calling-code-input___Hb20f_4-3-0,
|
|
126
|
+
.magritte-calling-code-input-container___UXmHV_4-3-0.magritte-disabled___fvEeH_4-3-0 .magritte-ghost-data___zShvn_4-3-0{
|
|
127
|
+
color:var(--magritte-color-component-input-text-state-content-disabled-v24-7-3);
|
|
128
128
|
}
|
|
129
|
-
.magritte-
|
|
129
|
+
.magritte-country-locked___9HDyw_4-3-0 .magritte-calling-code-input-container___UXmHV_4-3-0.magritte-invalid___kptbH_4-3-0{
|
|
130
|
+
box-shadow:inset 0 0 0 1px var(--magritte-color-component-input-stroke-state-field-invalid-v24-7-3);
|
|
131
|
+
}
|
|
132
|
+
.magritte-flag-container___wsoAd_4-3-0{
|
|
130
133
|
display:flex;
|
|
131
134
|
align-items:center;
|
|
132
135
|
height:24px;
|
|
@@ -135,11 +138,11 @@
|
|
|
135
138
|
font-size:24px;
|
|
136
139
|
line-height:24px;
|
|
137
140
|
}
|
|
138
|
-
.magritte-input-container___WSSZi_4-
|
|
141
|
+
.magritte-input-container___WSSZi_4-3-0{
|
|
139
142
|
position:relative;
|
|
140
143
|
flex:0 1 auto;
|
|
141
144
|
}
|
|
142
|
-
.magritte-ghost-data___zShvn_4-
|
|
145
|
+
.magritte-ghost-data___zShvn_4-3-0{
|
|
143
146
|
display:flex;
|
|
144
147
|
align-items:center;
|
|
145
148
|
height:24px;
|
|
@@ -154,23 +157,23 @@
|
|
|
154
157
|
text-decoration:none;
|
|
155
158
|
}
|
|
156
159
|
@media (min-width: 1020px){
|
|
157
|
-
body.magritte-old-layout .magritte-ghost-data___zShvn_4-
|
|
160
|
+
body.magritte-old-layout .magritte-ghost-data___zShvn_4-3-0{
|
|
158
161
|
visibility:hidden;
|
|
159
162
|
}
|
|
160
163
|
}
|
|
161
164
|
@media (min-width: 1024px){
|
|
162
|
-
body:not(.magritte-old-layout) .magritte-ghost-data___zShvn_4-
|
|
165
|
+
body:not(.magritte-old-layout) .magritte-ghost-data___zShvn_4-3-0{
|
|
163
166
|
visibility:hidden;
|
|
164
167
|
}
|
|
165
168
|
}
|
|
166
|
-
.magritte-phone-input-container___D587K_4-
|
|
169
|
+
.magritte-phone-input-container___D587K_4-3-0{
|
|
167
170
|
display:flex;
|
|
168
171
|
gap:12px;
|
|
169
172
|
}
|
|
170
|
-
.magritte-flag-emoji___pyJS7_4-
|
|
173
|
+
.magritte-flag-emoji___pyJS7_4-3-0{
|
|
171
174
|
display:inline;
|
|
172
175
|
}
|
|
173
|
-
.magritte-no-flag-emoji___yiuyr_4-
|
|
176
|
+
.magritte-no-flag-emoji___yiuyr_4-3-0 .magritte-flag-emoji___pyJS7_4-3-0{
|
|
174
177
|
font-family:FlagEmoji;
|
|
175
178
|
font-weight:normal;
|
|
176
179
|
font-size:18px;
|
package/index.js
CHANGED
|
@@ -2,17 +2,17 @@ import './index.css';
|
|
|
2
2
|
export { PhoneInput } from './PhoneInput.js';
|
|
3
3
|
import 'react/jsx-runtime';
|
|
4
4
|
import 'react';
|
|
5
|
+
import 'classnames';
|
|
5
6
|
import '@hh.ru/magritte-common-use-disabled';
|
|
6
7
|
import '@hh.ru/magritte-common-use-multiple-refs';
|
|
7
8
|
import '@hh.ru/magritte-ui-form-helper';
|
|
8
9
|
import '@hh.ru/magritte-ui-input';
|
|
9
10
|
import './RegionSelect.js';
|
|
10
|
-
import 'classnames';
|
|
11
11
|
import '@hh.ru/magritte-common-flag-emoji-font';
|
|
12
12
|
import '@hh.ru/magritte-common-keyboard';
|
|
13
13
|
import '@hh.ru/magritte-ui-breakpoint';
|
|
14
14
|
import '@hh.ru/magritte-ui-cell';
|
|
15
|
-
import './CallingCodeInput-
|
|
15
|
+
import './CallingCodeInput-BcCQZB3Z.js';
|
|
16
16
|
import '@hh.ru/magritte-ui-select';
|
|
17
17
|
import './phoneFormatter.js';
|
|
18
18
|
import './useCountrySelectDataProvider.js';
|
|
@@ -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-
|
|
17132
|
+
//# sourceMappingURL=metadata.max-C-HdkbBh.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metadata.max-_TCaIJWC.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
1
|
+
{"version":3,"file":"metadata.max-C-HdkbBh.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -12474,4 +12474,4 @@ var metadata_mobile = {
|
|
|
12474
12474
|
};
|
|
12475
12475
|
|
|
12476
12476
|
export { countries, country_calling_codes, metadata_mobile as default, nonGeographic, version };
|
|
12477
|
-
//# sourceMappingURL=metadata.mobile-
|
|
12477
|
+
//# sourceMappingURL=metadata.mobile-AjZd4M6a.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metadata.mobile-DlAlt9iv.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
1
|
+
{"version":3,"file":"metadata.mobile-AjZd4M6a.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -309,4 +309,4 @@ var metadata_ru_by_kz_uz_max = {
|
|
|
309
309
|
};
|
|
310
310
|
|
|
311
311
|
export { countries, country_calling_codes, metadata_ru_by_kz_uz_max as default, nonGeographic, version };
|
|
312
|
-
//# sourceMappingURL=metadata.ru_by_kz_uz.max-
|
|
312
|
+
//# sourceMappingURL=metadata.ru_by_kz_uz.max-BOkcOFdo.js.map
|
package/{metadata.ru_by_kz_uz.max-B4n-estX.js.map → metadata.ru_by_kz_uz.max-BOkcOFdo.js.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metadata.ru_by_kz_uz.max-
|
|
1
|
+
{"version":3,"file":"metadata.ru_by_kz_uz.max-BOkcOFdo.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -234,4 +234,4 @@ var metadata_ru_by_kz_uz_mobile = {
|
|
|
234
234
|
};
|
|
235
235
|
|
|
236
236
|
export { countries, country_calling_codes, metadata_ru_by_kz_uz_mobile as default, nonGeographic, version };
|
|
237
|
-
//# sourceMappingURL=metadata.ru_by_kz_uz.mobile-
|
|
237
|
+
//# sourceMappingURL=metadata.ru_by_kz_uz.mobile-EY2PCC7u.js.map
|
package/{metadata.ru_by_kz_uz.mobile-JZvRvZvv.js.map → metadata.ru_by_kz_uz.mobile-EY2PCC7u.js.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metadata.ru_by_kz_uz.mobile-
|
|
1
|
+
{"version":3,"file":"metadata.ru_by_kz_uz.mobile-EY2PCC7u.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": "4.
|
|
3
|
+
"version": "4.3.0",
|
|
4
4
|
"main": "index.js",
|
|
5
5
|
"types": "index.d.ts",
|
|
6
6
|
"sideEffects": [
|
|
@@ -27,19 +27,19 @@
|
|
|
27
27
|
"@hh.ru/magritte-common-keyboard": "4.3.4",
|
|
28
28
|
"@hh.ru/magritte-common-use-disabled": "1.0.15",
|
|
29
29
|
"@hh.ru/magritte-common-use-multiple-refs": "1.1.11",
|
|
30
|
-
"@hh.ru/magritte-design-tokens": "24.7.
|
|
30
|
+
"@hh.ru/magritte-design-tokens": "24.7.3",
|
|
31
31
|
"@hh.ru/magritte-ui-breakpoint": "6.1.1",
|
|
32
|
-
"@hh.ru/magritte-ui-cell": "7.2.
|
|
33
|
-
"@hh.ru/magritte-ui-form-helper": "2.1.
|
|
34
|
-
"@hh.ru/magritte-ui-input": "9.4.
|
|
32
|
+
"@hh.ru/magritte-ui-cell": "7.2.29",
|
|
33
|
+
"@hh.ru/magritte-ui-form-helper": "2.1.16",
|
|
34
|
+
"@hh.ru/magritte-ui-input": "9.4.31",
|
|
35
35
|
"@hh.ru/magritte-ui-mock-component": "1.1.7",
|
|
36
|
-
"@hh.ru/magritte-ui-select": "12.9.
|
|
37
|
-
"@hh.ru/magritte-ui-typography": "5.3.
|
|
36
|
+
"@hh.ru/magritte-ui-select": "12.9.11",
|
|
37
|
+
"@hh.ru/magritte-ui-typography": "5.3.7",
|
|
38
38
|
"libphonenumber-js": "1.11.12"
|
|
39
39
|
},
|
|
40
40
|
"peerDependencies": {
|
|
41
41
|
"classnames": ">=2.3.2",
|
|
42
42
|
"react": ">=18.2.0"
|
|
43
43
|
},
|
|
44
|
-
"gitHead": "
|
|
44
|
+
"gitHead": "70ac6d4c2faa2fe631fae008bb817f6cb21f6520"
|
|
45
45
|
}
|
package/phoneFormatter.d.ts
CHANGED
package/phoneFormatter.js
CHANGED
|
@@ -19,7 +19,7 @@ const buildRegExpFromNumber = (number, inTheMiddle = false, optionalDigits = tru
|
|
|
19
19
|
return new RegExp(inTheMiddle ? `.*(${regExp}).*` : regExp, 'u');
|
|
20
20
|
};
|
|
21
21
|
const phoneFormatterFactory = (params) => {
|
|
22
|
-
const { setCountry, currentCountryRef, libPhoneNumberAPI: { formatIncompletePhoneNumber, parsePhoneNumber, getCountryCallingCode }, availableCountriesRef, } = params;
|
|
22
|
+
const { setCountry, currentCountryRef, libPhoneNumberAPI: { formatIncompletePhoneNumber, parsePhoneNumber, getCountryCallingCode }, availableCountriesRef, countryLocked, } = params;
|
|
23
23
|
return (prevValue, value, caretPosition) => {
|
|
24
24
|
let sanitizedValue = value.replace(prohibitedSymbolsRegExp, '');
|
|
25
25
|
let formattedValue = sanitizedValue;
|
|
@@ -32,9 +32,10 @@ const phoneFormatterFactory = (params) => {
|
|
|
32
32
|
}
|
|
33
33
|
try {
|
|
34
34
|
const phoneNumber = parsePhoneNumber(formattedValue, currentCountryRef.current || 'RU');
|
|
35
|
-
const allowedCountry = !availableCountriesRef?.current ||
|
|
35
|
+
const allowedCountry = (!availableCountriesRef?.current ||
|
|
36
36
|
!phoneNumber.country ||
|
|
37
|
-
availableCountriesRef.current.includes(phoneNumber.country)
|
|
37
|
+
availableCountriesRef.current.includes(phoneNumber.country)) &&
|
|
38
|
+
(!countryLocked || currentCountryRef.current === phoneNumber.country);
|
|
38
39
|
const country = (allowedCountry ? phoneNumber.country : false) || currentCountryRef.current || 'RU';
|
|
39
40
|
formattedValue =
|
|
40
41
|
phoneNumber.isValid() && allowedCountry
|
package/phoneFormatter.js.map
CHANGED
|
@@ -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/;\nconst notSpaceRegExp = /[^\\s]/;\n\nconst buildRegExpFromNumber = (number: string, inTheMiddle = false, optionalDigits = true) => {\n const regExp = number\n .split('')\n .reduce<string[]>((acc, char, index) => {\n // символы из строки нужно экранировать т.к. там могут оказаться символы имеющие специальное\n // значение в регулярных выражениях, например +\n acc.push(`\\\\u{${char.charCodeAt(0).toString(16)}}${optionalDigits ? '?' : ''}`);\n if (index !== number.length - 1) {\n acc.push('\\\\s?-?\\\\(?\\\\)?\\\\s?');\n }\n return acc;\n }, [])\n .join('');\n return new RegExp(inTheMiddle ? `.*(${regExp}).*` : regExp, 'u');\n};\n\nexport const phoneFormatterFactory = (params: {\n setCountry: (country: CountryCode) => void;\n currentCountryRef: RefObject<CountryCode>;\n availableCountriesRef?: RefObject<CountryCode[] | undefined>;\n libPhoneNumberAPI: LibPhoneNumberAPI;\n}): InputFormatter => {\n const {\n setCountry,\n currentCountryRef,\n libPhoneNumberAPI: { formatIncompletePhoneNumber, parsePhoneNumber, getCountryCallingCode },\n availableCountriesRef,\n } = params;\n\n return (prevValue: string, value: string, caretPosition: number) => {\n let sanitizedValue = value.replace(prohibitedSymbolsRegExp, '');\n let formattedValue = sanitizedValue;\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 const allowedCountry =\n !availableCountriesRef?.current ||\n
|
|
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\nconst buildRegExpFromNumber = (number: string, inTheMiddle = false, optionalDigits = true) => {\n const regExp = number\n .split('')\n .reduce<string[]>((acc, char, index) => {\n // символы из строки нужно экранировать т.к. там могут оказаться символы имеющие специальное\n // значение в регулярных выражениях, например +\n acc.push(`\\\\u{${char.charCodeAt(0).toString(16)}}${optionalDigits ? '?' : ''}`);\n if (index !== number.length - 1) {\n acc.push('\\\\s?-?\\\\(?\\\\)?\\\\s?');\n }\n return acc;\n }, [])\n .join('');\n return new RegExp(inTheMiddle ? `.*(${regExp}).*` : regExp, 'u');\n};\n\nexport const phoneFormatterFactory = (params: {\n setCountry: (country: CountryCode) => void;\n currentCountryRef: RefObject<CountryCode>;\n availableCountriesRef?: RefObject<CountryCode[] | undefined>;\n libPhoneNumberAPI: LibPhoneNumberAPI;\n countryLocked: boolean;\n}): InputFormatter => {\n const {\n setCountry,\n currentCountryRef,\n libPhoneNumberAPI: { formatIncompletePhoneNumber, parsePhoneNumber, getCountryCallingCode },\n availableCountriesRef,\n countryLocked,\n } = params;\n\n return (prevValue: string, value: string, caretPosition: number) => {\n let sanitizedValue = value.replace(prohibitedSymbolsRegExp, '');\n let formattedValue = sanitizedValue;\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 const allowedCountry =\n (!availableCountriesRef?.current ||\n !phoneNumber.country ||\n availableCountriesRef.current.includes(phoneNumber.country)) &&\n (!countryLocked || currentCountryRef.current === phoneNumber.country);\n\n const country = (allowedCountry ? phoneNumber.country : false) || currentCountryRef.current || 'RU';\n\n formattedValue =\n phoneNumber.isValid() && allowedCountry\n ? phoneNumber.format('NATIONAL', { nationalPrefix: false })\n : formatIncompletePhoneNumber(phoneNumber.nationalNumber, country);\n\n const code = getCountryCallingCode(country);\n if (sanitizedValue.startsWith(`+${code}`)) {\n sanitizedValue = sanitizedValue.slice(code.length + 1);\n }\n if (country !== currentCountryRef.current) {\n setCountry(country);\n }\n } catch {\n // do nothing\n }\n\n // В процессе форматирования libphonenumber может дописать в national number префикс, который не используется\n // в международном номере (для Беларуси например 80), при этом требование дизайна в остальном форматировать\n // часть номера после кода по национальным стандартам. Поэтому находим цифры которые пользователь не вводил\n // и удаляем их.\n const currentValueRegExp = buildRegExpFromNumber(\n sanitizedValue.replace(notDigitsOrPlusRegExp, ''),\n true,\n false\n );\n formattedValue = formattedValue.match(currentValueRegExp)?.[1] || formattedValue;\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 = buildRegExpFromNumber(digitsBeforeCaret);\n\n // применяем регулярку к отформатированной строке и сдвигаем каретку на длину найденного совпадения\n const match = formattedValue.match(caretPositionRegExp)?.[0];\n\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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"}
|
package/useLibPhoneNumber.js
CHANGED
|
@@ -37,16 +37,16 @@ const useLibPhoneNumber = (variant, mobileOnly, onLoadError) => {
|
|
|
37
37
|
/* eslint-disable @typescript-eslint/ban-ts-comment */
|
|
38
38
|
(mobileOnly
|
|
39
39
|
? // @ts-ignore
|
|
40
|
-
import('./metadata.ru_by_kz_uz.mobile-
|
|
40
|
+
import('./metadata.ru_by_kz_uz.mobile-EY2PCC7u.js')
|
|
41
41
|
: // @ts-ignore
|
|
42
|
-
import('./metadata.ru_by_kz_uz.max-
|
|
42
|
+
import('./metadata.ru_by_kz_uz.max-BOkcOFdo.js'));
|
|
43
43
|
}
|
|
44
44
|
else {
|
|
45
45
|
loadMetadata = () => (mobileOnly
|
|
46
46
|
? // @ts-ignore
|
|
47
|
-
import('./metadata.mobile-
|
|
47
|
+
import('./metadata.mobile-AjZd4M6a.js')
|
|
48
48
|
: // @ts-ignore
|
|
49
|
-
import('./metadata.max-
|
|
49
|
+
import('./metadata.max-C-HdkbBh.js'));
|
|
50
50
|
/* eslint-enable @typescript-eslint/ban-ts-comment */
|
|
51
51
|
}
|
|
52
52
|
const loadApi = () => Promise.all([loadLibPhoneNumber(), loadMetadata()]).then(([libPhoneNumber, metadata]) => {
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"CallingCodeInput-B2J7IUp3.js","sources":["src/CallingCodeInput.tsx"],"sourcesContent":["import {\n type KeyboardEventHandler,\n type ChangeEvent,\n type ReactNode,\n type Ref,\n forwardRef,\n useState,\n useEffect,\n useRef,\n} from 'react';\nimport classnames from 'classnames';\n\nimport { useMultipleRefs } from '@hh.ru/magritte-common-use-multiple-refs';\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 onKeyDownInput?: KeyboardEventHandler<HTMLInputElement>;\n onKeyDownContainer?: KeyboardEventHandler<HTMLDivElement>;\n invalid?: boolean;\n disabled?: boolean;\n className?: string | boolean;\n inputElementRef: Ref<HTMLInputElement>;\n descriptionId: string;\n}\n\nexport const CallingCodeInput = forwardRef<HTMLDivElement, CallingCodeInputProps>(\n (\n {\n onFocus,\n onBlur,\n value,\n onChange,\n flag,\n onKeyDownInput,\n onKeyDownContainer,\n invalid,\n disabled,\n className,\n inputElementRef,\n descriptionId,\n },\n ref\n ) => {\n const inputRef = useRef<HTMLInputElement>(null);\n const inputRefMultiplexer = useMultipleRefs(inputRef, inputElementRef);\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={disabled ? -1 : 0}\n onFocus={() => {\n if (disabled) {\n return;\n }\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 onKeyDown={onKeyDownContainer}\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={inputRefMultiplexer}\n onFocus={() => {\n setIsFocused(true);\n onFocus();\n }}\n onBlur={() => {\n setIsFocused(false);\n onBlur?.();\n }}\n onKeyDown={onKeyDownInput}\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 aria-describedby={descriptionId}\n aria-invalid={invalid}\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":";;;;;;;;AAgCO,MAAM,gBAAgB,GAAG,UAAU,CACtC,CACI,EACI,OAAO,EACP,MAAM,EACN,KAAK,EACL,QAAQ,EACR,IAAI,EACJ,cAAc,EACd,kBAAkB,EAClB,OAAO,EACP,QAAQ,EACR,SAAS,EACT,eAAe,EACf,aAAa,GAChB,EACD,GAAG,KACH;AACA,IAAA,MAAM,QAAQ,GAAG,MAAM,CAAmB,IAAI,CAAC,CAAC;IAChD,MAAM,mBAAmB,GAAG,eAAe,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;IACvE,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAClD,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC5D,IAAA,MAAM,EAAE,QAAQ,EAAE,GAAG,aAAa,EAAE,CAAC;IAErC,SAAS,CAAC,MAAK;AACX,QAAA,IAAI,QAAQ,CAAC,OAAO,EAAE;AAClB,YAAA,iBAAiB,CAAC,SAAS,IAAI,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC;SACxF;AACL,KAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;IAEhB,QACIA,IACI,CAAA,KAAA,EAAA,EAAA,SAAS,EAAEC,UAAU,CAAC,MAAM,CAAC,yBAAyB,EAAE,SAAS,EAAE;YAC/D,CAAC,MAAM,CAAC,YAAY,GAAG,cAAc,IAAI,CAAC,QAAQ;YAClD,CAAC,MAAM,CAAC,OAAO,GAAG,SAAS,IAAI,CAAC,QAAQ;YACxC,CAAC,MAAM,CAAC,OAAO,GAAG,OAAO,IAAI,CAAC,QAAQ;AACtC,YAAA,CAAC,MAAM,CAAC,QAAQ,GAAG,QAAQ;AAC9B,SAAA,CAAC,EACF,QAAQ,EAAE,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,EAC3B,OAAO,EAAE,MAAK;YACV,IAAI,QAAQ,EAAE;gBACV,OAAO;aACV;YACD,IAAI,CAAC,QAAQ,EAAE;AACX,gBAAA,QAAQ,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC;gBAC1B,OAAO;aACV;YAED,YAAY,CAAC,IAAI,CAAC,CAAC;AACnB,YAAA,OAAO,EAAE,CAAC;AACd,SAAC,EACD,MAAM,EAAE,MAAK;YACT,IAAI,CAAC,QAAQ,EAAE;gBACX,OAAO;aACV;YACD,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,MAAM,IAAI,CAAC;AACf,SAAC,EACD,SAAS,EAAE,kBAAkB,EAC7B,GAAG,EAAE,GAAG,EACA,SAAA,EAAA,mCAAmC,aAE3CC,GAAK,CAAA,KAAA,EAAA,EAAA,SAAS,EAAE,MAAM,CAAC,aAAa,EAAA,QAAA,EAAG,IAAI,EAAA,CAAO,EAClDF,IAAK,CAAA,KAAA,EAAA,EAAA,SAAS,EAAE,MAAM,CAAC,cAAc,EAAA,QAAA,EAAA,CACjCE,GACI,CAAA,OAAA,EAAA,EAAA,GAAG,EAAE,mBAAmB,EACxB,OAAO,EAAE,MAAK;4BACV,YAAY,CAAC,IAAI,CAAC,CAAC;AACnB,4BAAA,OAAO,EAAE,CAAC;AACd,yBAAC,EACD,MAAM,EAAE,MAAK;4BACT,YAAY,CAAC,KAAK,CAAC,CAAC;4BACpB,MAAM,IAAI,CAAC;yBACd,EACD,SAAS,EAAE,cAAc,EACzB,SAAS,EAAE,MAAM,CAAC,gBAAgB,EAClC,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,CAAC,KAAoC,KAAK,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,EAChF,QAAQ,EAAE,QAAQ,EAAA,SAAA,EACV,yCAAyC,EAAA,kBAAA,EAC/B,aAAa,EAAA,cAAA,EACjB,OAAO,EAAA,CACvB,EACFA,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,MAAM,CAAC,SAAS,EAAU,SAAA,EAAA,yCAAyC,EAC9E,QAAA,EAAA,KAAK,EACJ,CAAA,CAAA,EAAA,CACJ,CACJ,EAAA,CAAA,EACR;AACN,CAAC,EACH;AAEF,gBAAgB,CAAC,WAAW,GAAG,kBAAkB;;;;"}
|