1 |
- {"version":3,"file":"settings-vue-settings-personal-info.js?v=e9e95889fd68d9985a6f","mappings":"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MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,KAAK,KAAK,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,KAAK,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,KAAK,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,KAAK,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,KAAK,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,KAAK,KAAK,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,KAAK,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,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","sources":["webpack:///nextcloud/webpack/runtime/chunk loaded","webpack:///nextcloud/webpack/runtime/load script","webpack://nextcloud/./node_modules/cropperjs/dist/cropper.css?9e96","webpack:///nextcloud/node_modules/vue-material-design-icons/Folder.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/Folder.vue?vue&type=script&lang=js","webpack://nextcloud/./node_modules/vue-material-design-icons/Folder.vue?b60e","webpack:///nextcloud/node_modules/vue-material-design-icons/Folder.vue?vue&type=template&id=07f089a4","webpack:///nextcloud/apps/settings/src/constants/AccountPropertyConstants.js","webpack:///nextcloud/apps/settings/src/service/PersonalInfo/PersonalInfoService.js","webpack:///nextcloud/apps/settings/src/logger.js","webpack:///nextcloud/apps/settings/src/utils/handlers.js","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/shared/FederationControl.vue","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/shared/FederationControl.vue?vue&type=script&lang=js","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/shared/FederationControl.vue?1c72","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/shared/FederationControl.vue?e342","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/shared/FederationControl.vue?d068","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/shared/HeaderBar.vue?vue&type=script&lang=js","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/shared/HeaderBar.vue","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/shared/HeaderBar.vue?8aba","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/shared/HeaderBar.vue?feed","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/shared/HeaderBar.vue?e65f","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/AvatarSection.vue","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/AvatarSection.vue?vue&type=script&lang=js","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/AvatarSection.vue?3317","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/AvatarSection.vue?5014","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/AvatarSection.vue?5282","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/DetailsSection.vue?08e9","webpack:///nextcloud/node_modules/vue-material-design-icons/Account.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/Account.vue?vue&type=script&lang=js","webpack://nextcloud/./node_modules/vue-material-design-icons/Account.vue?d3d9","webpack:///nextcloud/node_modules/vue-material-design-icons/Account.vue?vue&type=template&id=0571d43c","webpack:///nextcloud/node_modules/vue-material-design-icons/CircleSlice3.vue?vue&type=script&lang=js","webpack:///nextcloud/node_modules/vue-material-design-icons/CircleSlice3.vue","webpack://nextcloud/./node_modules/vue-material-design-icons/CircleSlice3.vue?093b","webpack:///nextcloud/node_modules/vue-material-design-icons/CircleSlice3.vue?vue&type=template&id=5ad5221a","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/DetailsSection.vue","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/DetailsSection.vue?vue&type=script&lang=js","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/DetailsSection.vue?5f62","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/DetailsSection.vue?295f","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/DisplayNameSection.vue?3162","webpack:///nextcloud/node_modules/vue-material-design-icons/AlertOctagon.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/AlertOctagon.vue?vue&type=script&lang=js","webpack://nextcloud/./node_modules/vue-material-design-icons/AlertOctagon.vue?61c5","webpack:///nextcloud/node_modules/vue-material-design-icons/AlertOctagon.vue?vue&type=template&id=e6426fdc","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/shared/AccountPropertySection.vue","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/shared/AccountPropertySection.vue?vue&type=script&lang=js","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/shared/AccountPropertySection.vue?6453","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/shared/AccountPropertySection.vue?ac46","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/shared/AccountPropertySection.vue?d38d","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/DisplayNameSection.vue","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/DisplayNameSection.vue?vue&type=script&lang=js","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/DisplayNameSection.vue?bde5","webpack:///nextcloud/apps/settings/src/service/PersonalInfo/EmailService.js","webpack:///nextcloud/apps/settings/src/utils/validate.js","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/EmailSection/Email.vue","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/EmailSection/Email.vue?vue&type=script&lang=js","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/EmailSection/Email.vue?93a5","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/EmailSection/Email.vue?bd2c","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/EmailSection/Email.vue?04df","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/EmailSection/EmailSection.vue","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/EmailSection/EmailSection.vue?vue&type=script&lang=js","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/EmailSection/EmailSection.vue?13c6","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/EmailSection/EmailSection.vue?1258","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/EmailSection/EmailSection.vue?3dd6","webpack:///nextcloud/node_modules/libphonenumber-js/metadata.min.json.js","webpack:///nextcloud/node_modules/libphonenumber-js/es6/helpers/isObject.js","webpack:///nextcloud/node_modules/libphonenumber-js/es6/normalizeArguments.js","webpack:///nextcloud/node_modules/libphonenumber-js/es6/constants.js","webpack:///nextcloud/node_modules/libphonenumber-js/es6/ParseError.js","webpack:///nextcloud/node_modules/libphonenumber-js/es6/tools/semver-compare.js","webpack:///nextcloud/node_modules/libphonenumber-js/es6/metadata.js","webpack:///nextcloud/node_modules/libphonenumber-js/es6/helpers/extension/createExtensionPattern.js","webpack:///nextcloud/node_modules/libphonenumber-js/es6/helpers/isViablePhoneNumber.js","webpack:///nextcloud/node_modules/libphonenumber-js/es6/helpers/extension/extractExtension.js","webpack:///nextcloud/node_modules/libphonenumber-js/es6/helpers/parseDigits.js","webpack:///nextcloud/node_modules/libphonenumber-js/es6/parseIncompletePhoneNumber.js","webpack:///nextcloud/node_modules/libphonenumber-js/es6/helpers/mergeArrays.js","webpack:///nextcloud/node_modules/libphonenumber-js/es6/helpers/checkNumberLength.js","webpack:///nextcloud/node_modules/libphonenumber-js/es6/isPossible.js","webpack:///nextcloud/node_modules/libphonenumber-js/es6/helpers/matchesEntirely.js","webpack:///nextcloud/node_modules/libphonenumber-js/es6/helpers/getNumberType.js","webpack:///nextcloud/node_modules/libphonenumber-js/es6/helpers/formatNationalNumberUsingFormat.js","webpack:///nextcloud/node_modules/libphonenumber-js/es6/helpers/getIddPrefix.js","webpack:///nextcloud/node_modules/libphonenumber-js/es6/format.js","webpack:///nextcloud/node_modules/libphonenumber-js/es6/helpers/applyInternationalSeparatorStyle.js","webpack:///nextcloud/node_modules/libphonenumber-js/es6/PhoneNumber.js","webpack:///nextcloud/node_modules/libphonenumber-js/es6/helpers/getPossibleCountriesForNumber.js","webpack:///nextcloud/node_modules/libphonenumber-js/es6/isValid.js","webpack:///nextcloud/node_modules/libphonenumber-js/es6/helpers/RFC3966.js","webpack:///nextcloud/node_modules/libphonenumber-js/es6/helpers/stripIddPrefix.js","webpack:///nextcloud/node_modules/libphonenumber-js/es6/helpers/extractNationalNumber.js","webpack:///nextcloud/node_modules/libphonenumber-js/es6/helpers/extractNationalNumberFromPossiblyIncompleteNumber.js","webpack:///nextcloud/node_modules/libphonenumber-js/es6/helpers/getCountryByNationalNumber.js","webpack:///nextcloud/node_modules/libphonenumber-js/es6/helpers/getCountryByCallingCode.js","webpack:///nextcloud/node_modules/libphonenumber-js/es6/helpers/extractPhoneContext.js","webpack:///nextcloud/node_modules/libphonenumber-js/es6/parse.js","webpack:///nextcloud/node_modules/libphonenumber-js/es6/helpers/extractFormattedPhoneNumberFromPossibleRfc3966NumberUri.js","webpack:///nextcloud/node_modules/libphonenumber-js/es6/helpers/extractCountryCallingCode.js","webpack:///nextcloud/node_modules/libphonenumber-js/es6/helpers/extractCountryCallingCodeFromInternationalNumberWithoutPlusSign.js","webpack:///nextcloud/node_modules/libphonenumber-js/es6/parsePhoneNumberWithError_.js","webpack:///nextcloud/node_modules/libphonenumber-js/es6/parsePhoneNumber_.js","webpack:///nextcloud/node_modules/libphonenumber-js/es6/isValidPhoneNumber.js","webpack:///nextcloud/node_modules/libphonenumber-js/min/exports/isValidPhoneNumber.js","webpack:///nextcloud/node_modules/libphonenumber-js/min/exports/withMetadataArgument.js","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/PhoneSection.vue","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/PhoneSection.vue?vue&type=script&lang=js","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/PhoneSection.vue?d5e3","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/PhoneSection.vue?8b50","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/LocationSection.vue","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/LocationSection.vue?vue&type=script&lang=js","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/LocationSection.vue?fdc7","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/LocationSection.vue?414f","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/WebsiteSection.vue","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/WebsiteSection.vue?vue&type=script&lang=js","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/WebsiteSection.vue?897b","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/WebsiteSection.vue?4b20","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/TwitterSection.vue","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/TwitterSection.vue?vue&type=script&lang=js","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/TwitterSection.vue?7e82","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/TwitterSection.vue?8ae2","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/FediverseSection.vue","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/FediverseSection.vue?vue&type=script&lang=js","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/FediverseSection.vue?e202","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/FediverseSection.vue?4a92","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/LanguageSection/Language.vue?vue&type=script&lang=js","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/LanguageSection/Language.vue","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/LanguageSection/Language.vue?fed0","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/LanguageSection/Language.vue?6358","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/LanguageSection/Language.vue?94ab","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/LanguageSection/LanguageSection.vue","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/LanguageSection/LanguageSection.vue?vue&type=script&lang=js","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/LanguageSection/LanguageSection.vue?a576","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/LanguageSection/LanguageSection.vue?a350","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/LanguageSection/LanguageSection.vue?41aa","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/LocaleSection/LocaleSection.vue?6463","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/LocaleSection/Locale.vue","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/LocaleSection/Locale.vue?vue&type=script&lang=js","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/LocaleSection/Locale.vue?1f21","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/LocaleSection/Locale.vue?9b6c","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/LocaleSection/Locale.vue?8511","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/LocaleSection/LocaleSection.vue","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/LocaleSection/LocaleSection.vue?vue&type=script&lang=js","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/LocaleSection/LocaleSection.vue?5db4","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/LocaleSection/LocaleSection.vue?fafb","webpack:///nextcloud/node_modules/vue-material-design-icons/ChevronDown.vue?vue&type=script&lang=js","webpack:///nextcloud/node_modules/vue-material-design-icons/ChevronDown.vue","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/ProfileSection/EditProfileAnchorLink.vue?vue&type=script&lang=js","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/ProfileSection/EditProfileAnchorLink.vue","webpack://nextcloud/./node_modules/vue-material-design-icons/ChevronDown.vue?e2b2","webpack:///nextcloud/node_modules/vue-material-design-icons/ChevronDown.vue?vue&type=template&id=5baf9b18","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/ProfileSection/EditProfileAnchorLink.vue?0e22","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/ProfileSection/EditProfileAnchorLink.vue?54aa","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/ProfileSection/EditProfileAnchorLink.vue?7d4b","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/ProfileSection/EditProfileAnchorLink.vue?253f","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/ProfileSection/ProfileCheckbox.vue?vue&type=script&lang=js","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/ProfileSection/ProfileCheckbox.vue","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/ProfileSection/ProfileCheckbox.vue?7612","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/ProfileSection/ProfileCheckbox.vue?9b34","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/ProfileSection/ProfilePreviewCard.vue?vue&type=script&lang=js","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/ProfileSection/ProfilePreviewCard.vue","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/ProfileSection/ProfilePreviewCard.vue?e1a8","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/ProfileSection/ProfilePreviewCard.vue?240c","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/ProfileSection/ProfilePreviewCard.vue?564e","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/ProfileSection/ProfileSection.vue","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/ProfileSection/ProfileSection.vue?vue&type=script&lang=js","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/ProfileSection/ProfileSection.vue?61d7","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/ProfileSection/ProfileSection.vue?c85f","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/ProfileSection/ProfileSection.vue?3f25","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/OrganisationSection.vue","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/OrganisationSection.vue?vue&type=script&lang=js","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/OrganisationSection.vue?5684","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/OrganisationSection.vue?adaf","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/RoleSection.vue","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/RoleSection.vue?vue&type=script&lang=js","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/RoleSection.vue?a7b4","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/RoleSection.vue?49db","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/HeadlineSection.vue","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/HeadlineSection.vue?vue&type=script&lang=js","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/HeadlineSection.vue?9d73","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/HeadlineSection.vue?d565","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/BiographySection.vue","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/BiographySection.vue?vue&type=script&lang=js","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/BiographySection.vue?a6b2","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/BiographySection.vue?7384","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/ProfileVisibilitySection/ProfileVisibilitySection.vue?d7f0","webpack:///nextcloud/apps/settings/src/service/ProfileService.js","webpack:///nextcloud/apps/settings/src/constants/ProfileConstants.js","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/ProfileVisibilitySection/VisibilityDropdown.vue","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/ProfileVisibilitySection/VisibilityDropdown.vue?vue&type=script&lang=js","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/ProfileVisibilitySection/VisibilityDropdown.vue?840b","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/ProfileVisibilitySection/VisibilityDropdown.vue?c222","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/ProfileVisibilitySection/VisibilityDropdown.vue?5e5d","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/ProfileVisibilitySection/ProfileVisibilitySection.vue","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/ProfileVisibilitySection/ProfileVisibilitySection.vue?vue&type=script&lang=js","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/ProfileVisibilitySection/ProfileVisibilitySection.vue?29ce","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/ProfileVisibilitySection/ProfileVisibilitySection.vue?7729","webpack:///nextcloud/apps/settings/src/main-personal-info.js","webpack:///nextcloud/node_modules/cropperjs/dist/cropper.js","webpack:///nextcloud/node_modules/cropperjs/dist/cropper.css","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/AvatarSection.vue?vue&type=style&index=0&id=21571d36&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/DetailsSection.vue?vue&type=style&index=0&id=f432848e&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/EmailSection/Email.vue?vue&type=style&index=0&id=60546b46&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/EmailSection/EmailSection.vue?vue&type=style&index=0&id=548961e2&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/LanguageSection/Language.vue?vue&type=style&index=0&id=395f9cd4&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/LanguageSection/LanguageSection.vue?vue&type=style&index=0&id=92685b76&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/LocaleSection/Locale.vue?vue&type=style&index=0&id=12e4d6c8&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/LocaleSection/LocaleSection.vue?vue&type=style&index=0&id=84fca724&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/ProfileSection/EditProfileAnchorLink.vue?vue&type=style&index=0&id=23992b06&prod&lang=scss","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/ProfileSection/EditProfileAnchorLink.vue?vue&type=style&index=1&id=23992b06&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/ProfileSection/ProfilePreviewCard.vue?vue&type=style&index=0&id=2e2362e7&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/ProfileSection/ProfileSection.vue?vue&type=style&index=0&id=e9466260&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/ProfileVisibilitySection/ProfileVisibilitySection.vue?vue&type=style&index=0&id=199109a6&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/ProfileVisibilitySection/VisibilityDropdown.vue?vue&type=style&index=0&id=fd4d0aac&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/shared/AccountPropertySection.vue?vue&type=style&index=0&id=594c0506&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/shared/FederationControl.vue?vue&type=style&index=0&id=ca40f658&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/shared/HeaderBar.vue?vue&type=style&index=0&id=0cd1bc3a&prod&lang=scss&scoped=true","webpack:///nextcloud/node_modules/vue-cropperjs/dist/VueCropper.js","webpack:///nextcloud/webpack/bootstrap","webpack:///nextcloud/webpack/runtime/compat get default export","webpack:///nextcloud/webpack/runtime/define property getters","webpack:///nextcloud/webpack/runtime/ensure chunk","webpack:///nextcloud/webpack/runtime/get javascript chunk filename","webpack:///nextcloud/webpack/runtime/global","webpack:///nextcloud/webpack/runtime/hasOwnProperty shorthand","webpack:///nextcloud/webpack/runtime/make namespace object","webpack:///nextcloud/webpack/runtime/node module decorator","webpack:///nextcloud/webpack/runtime/runtimeId","webpack:///nextcloud/webpack/runtime/publicPath","webpack:///nextcloud/webpack/runtime/jsonp chunk loading","webpack:///nextcloud/webpack/runtime/nonce","webpack:///nextcloud/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","var inProgress = {};\nvar dataWebpackPrefix = \"nextcloud:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","\n import API from \"!../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../css-loader/dist/cjs.js!./cropper.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../css-loader/dist/cjs.js!./cropper.css\";\n export default content && content.locals ? content.locals : undefined;\n","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : true\"\n :aria-label=\"title\"\n class=\"material-design-icon folder-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M10,4H4C2.89,4 2,4.89 2,6V18A2,2 0 0,0 4,20H20A2,2 0 0,0 22,18V8C22,6.89 21.1,6 20,6H12L10,4Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"FolderIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n</script>","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./Folder.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./Folder.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Folder.vue?vue&type=template&id=07f089a4\"\nimport script from \"./Folder.vue?vue&type=script&lang=js\"\nexport * from \"./Folder.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon folder-icon\",attrs:{\"aria-hidden\":_vm.title ? null : true,\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M10,4H4C2.89,4 2,4.89 2,6V18A2,2 0 0,0 4,20H20A2,2 0 0,0 22,18V8C22,6.89 21.1,6 20,6H12L10,4Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * @copyright 2021, Christopher Ng <chrng8@gmail.com>\n *\n * @author Christopher Ng <chrng8@gmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\n/*\n * SYNC to be kept in sync with `lib/public/Accounts/IAccountManager.php`\n */\n\nimport { translate as t } from '@nextcloud/l10n'\n\n/** Enum of account properties */\nexport const ACCOUNT_PROPERTY_ENUM = Object.freeze({\n\tADDRESS: 'address',\n\tAVATAR: 'avatar',\n\tBIOGRAPHY: 'biography',\n\tDISPLAYNAME: 'displayname',\n\tEMAIL_COLLECTION: 'additional_mail',\n\tEMAIL: 'email',\n\tHEADLINE: 'headline',\n\tNOTIFICATION_EMAIL: 'notify_email',\n\tFEDIVERSE: 'fediverse',\n\tORGANISATION: 'organisation',\n\tPHONE: 'phone',\n\tPROFILE_ENABLED: 'profile_enabled',\n\tROLE: 'role',\n\tTWITTER: 'twitter',\n\tWEBSITE: 'website',\n})\n\n/** Enum of account properties to human readable account property names */\nexport const ACCOUNT_PROPERTY_READABLE_ENUM = Object.freeze({\n\tADDRESS: t('settings', 'Location'),\n\tAVATAR: t('settings', 'Profile picture'),\n\tBIOGRAPHY: t('settings', 'About'),\n\tDISPLAYNAME: t('settings', 'Full name'),\n\tEMAIL_COLLECTION: t('settings', 'Additional email'),\n\tEMAIL: t('settings', 'Email'),\n\tHEADLINE: t('settings', 'Headline'),\n\tORGANISATION: t('settings', 'Organisation'),\n\tPHONE: t('settings', 'Phone number'),\n\tPROFILE_ENABLED: t('settings', 'Profile'),\n\tROLE: t('settings', 'Role'),\n\tTWITTER: t('settings', 'X (formerly Twitter)'),\n\tFEDIVERSE: t('settings', 'Fediverse (e.g. Mastodon)'),\n\tWEBSITE: t('settings', 'Website'),\n})\n\nexport const NAME_READABLE_ENUM = Object.freeze({\n\t[ACCOUNT_PROPERTY_ENUM.ADDRESS]: ACCOUNT_PROPERTY_READABLE_ENUM.ADDRESS,\n\t[ACCOUNT_PROPERTY_ENUM.AVATAR]: ACCOUNT_PROPERTY_READABLE_ENUM.AVATAR,\n\t[ACCOUNT_PROPERTY_ENUM.BIOGRAPHY]: ACCOUNT_PROPERTY_READABLE_ENUM.BIOGRAPHY,\n\t[ACCOUNT_PROPERTY_ENUM.DISPLAYNAME]: ACCOUNT_PROPERTY_READABLE_ENUM.DISPLAYNAME,\n\t[ACCOUNT_PROPERTY_ENUM.EMAIL_COLLECTION]: ACCOUNT_PROPERTY_READABLE_ENUM.EMAIL_COLLECTION,\n\t[ACCOUNT_PROPERTY_ENUM.EMAIL]: ACCOUNT_PROPERTY_READABLE_ENUM.EMAIL,\n\t[ACCOUNT_PROPERTY_ENUM.HEADLINE]: ACCOUNT_PROPERTY_READABLE_ENUM.HEADLINE,\n\t[ACCOUNT_PROPERTY_ENUM.ORGANISATION]: ACCOUNT_PROPERTY_READABLE_ENUM.ORGANISATION,\n\t[ACCOUNT_PROPERTY_ENUM.PHONE]: ACCOUNT_PROPERTY_READABLE_ENUM.PHONE,\n\t[ACCOUNT_PROPERTY_ENUM.PROFILE_ENABLED]: ACCOUNT_PROPERTY_READABLE_ENUM.PROFILE_ENABLED,\n\t[ACCOUNT_PROPERTY_ENUM.ROLE]: ACCOUNT_PROPERTY_READABLE_ENUM.ROLE,\n\t[ACCOUNT_PROPERTY_ENUM.TWITTER]: ACCOUNT_PROPERTY_READABLE_ENUM.TWITTER,\n\t[ACCOUNT_PROPERTY_ENUM.FEDIVERSE]: ACCOUNT_PROPERTY_READABLE_ENUM.FEDIVERSE,\n\t[ACCOUNT_PROPERTY_ENUM.WEBSITE]: ACCOUNT_PROPERTY_READABLE_ENUM.WEBSITE,\n})\n\n/** Enum of profile specific sections to human readable names */\nexport const PROFILE_READABLE_ENUM = Object.freeze({\n\tPROFILE_VISIBILITY: t('settings', 'Profile visibility'),\n})\n\n/** Enum of readable account properties to account property keys used by the server */\nexport const PROPERTY_READABLE_KEYS_ENUM = Object.freeze({\n\t[ACCOUNT_PROPERTY_READABLE_ENUM.ADDRESS]: ACCOUNT_PROPERTY_ENUM.ADDRESS,\n\t[ACCOUNT_PROPERTY_READABLE_ENUM.AVATAR]: ACCOUNT_PROPERTY_ENUM.AVATAR,\n\t[ACCOUNT_PROPERTY_READABLE_ENUM.BIOGRAPHY]: ACCOUNT_PROPERTY_ENUM.BIOGRAPHY,\n\t[ACCOUNT_PROPERTY_READABLE_ENUM.DISPLAYNAME]: ACCOUNT_PROPERTY_ENUM.DISPLAYNAME,\n\t[ACCOUNT_PROPERTY_READABLE_ENUM.EMAIL_COLLECTION]: ACCOUNT_PROPERTY_ENUM.EMAIL_COLLECTION,\n\t[ACCOUNT_PROPERTY_READABLE_ENUM.EMAIL]: ACCOUNT_PROPERTY_ENUM.EMAIL,\n\t[ACCOUNT_PROPERTY_READABLE_ENUM.HEADLINE]: ACCOUNT_PROPERTY_ENUM.HEADLINE,\n\t[ACCOUNT_PROPERTY_READABLE_ENUM.ORGANISATION]: ACCOUNT_PROPERTY_ENUM.ORGANISATION,\n\t[ACCOUNT_PROPERTY_READABLE_ENUM.PHONE]: ACCOUNT_PROPERTY_ENUM.PHONE,\n\t[ACCOUNT_PROPERTY_READABLE_ENUM.PROFILE_ENABLED]: ACCOUNT_PROPERTY_ENUM.PROFILE_ENABLED,\n\t[ACCOUNT_PROPERTY_READABLE_ENUM.ROLE]: ACCOUNT_PROPERTY_ENUM.ROLE,\n\t[ACCOUNT_PROPERTY_READABLE_ENUM.TWITTER]: ACCOUNT_PROPERTY_ENUM.TWITTER,\n\t[ACCOUNT_PROPERTY_READABLE_ENUM.FEDIVERSE]: ACCOUNT_PROPERTY_ENUM.FEDIVERSE,\n\t[ACCOUNT_PROPERTY_READABLE_ENUM.WEBSITE]: ACCOUNT_PROPERTY_ENUM.WEBSITE,\n})\n\n/**\n * Enum of account setting properties\n *\n * Account setting properties unlike account properties do not support scopes*\n */\nexport const ACCOUNT_SETTING_PROPERTY_ENUM = Object.freeze({\n\tLANGUAGE: 'language',\n\tLOCALE: 'locale',\n})\n\n/** Enum of account setting properties to human readable setting properties */\nexport const ACCOUNT_SETTING_PROPERTY_READABLE_ENUM = Object.freeze({\n\tLANGUAGE: t('settings', 'Language'),\n\tLOCALE: t('settings', 'Locale'),\n})\n\n/** Enum of scopes */\nexport const SCOPE_ENUM = Object.freeze({\n\tPRIVATE: 'v2-private',\n\tLOCAL: 'v2-local',\n\tFEDERATED: 'v2-federated',\n\tPUBLISHED: 'v2-published',\n})\n\n/** Enum of readable account properties to supported scopes */\nexport const PROPERTY_READABLE_SUPPORTED_SCOPES_ENUM = Object.freeze({\n\t[ACCOUNT_PROPERTY_READABLE_ENUM.ADDRESS]: [SCOPE_ENUM.LOCAL, SCOPE_ENUM.PRIVATE],\n\t[ACCOUNT_PROPERTY_READABLE_ENUM.AVATAR]: [SCOPE_ENUM.LOCAL, SCOPE_ENUM.PRIVATE],\n\t[ACCOUNT_PROPERTY_READABLE_ENUM.BIOGRAPHY]: [SCOPE_ENUM.LOCAL, SCOPE_ENUM.PRIVATE],\n\t[ACCOUNT_PROPERTY_READABLE_ENUM.DISPLAYNAME]: [SCOPE_ENUM.LOCAL],\n\t[ACCOUNT_PROPERTY_READABLE_ENUM.EMAIL_COLLECTION]: [SCOPE_ENUM.LOCAL],\n\t[ACCOUNT_PROPERTY_READABLE_ENUM.EMAIL]: [SCOPE_ENUM.LOCAL],\n\t[ACCOUNT_PROPERTY_READABLE_ENUM.HEADLINE]: [SCOPE_ENUM.LOCAL, SCOPE_ENUM.PRIVATE],\n\t[ACCOUNT_PROPERTY_READABLE_ENUM.ORGANISATION]: [SCOPE_ENUM.LOCAL, SCOPE_ENUM.PRIVATE],\n\t[ACCOUNT_PROPERTY_READABLE_ENUM.PHONE]: [SCOPE_ENUM.LOCAL, SCOPE_ENUM.PRIVATE],\n\t[ACCOUNT_PROPERTY_READABLE_ENUM.PROFILE_ENABLED]: [SCOPE_ENUM.LOCAL, SCOPE_ENUM.PRIVATE],\n\t[ACCOUNT_PROPERTY_READABLE_ENUM.ROLE]: [SCOPE_ENUM.LOCAL, SCOPE_ENUM.PRIVATE],\n\t[ACCOUNT_PROPERTY_READABLE_ENUM.TWITTER]: [SCOPE_ENUM.LOCAL, SCOPE_ENUM.PRIVATE],\n\t[ACCOUNT_PROPERTY_READABLE_ENUM.FEDIVERSE]: [SCOPE_ENUM.LOCAL, SCOPE_ENUM.PRIVATE],\n\t[ACCOUNT_PROPERTY_READABLE_ENUM.WEBSITE]: [SCOPE_ENUM.LOCAL, SCOPE_ENUM.PRIVATE],\n})\n\n/** List of readable account properties which aren't published to the lookup server */\nexport const UNPUBLISHED_READABLE_PROPERTIES = Object.freeze([\n\tACCOUNT_PROPERTY_READABLE_ENUM.BIOGRAPHY,\n\tACCOUNT_PROPERTY_READABLE_ENUM.HEADLINE,\n\tACCOUNT_PROPERTY_READABLE_ENUM.ORGANISATION,\n\tACCOUNT_PROPERTY_READABLE_ENUM.ROLE,\n])\n\n/** Scope suffix */\nexport const SCOPE_SUFFIX = 'Scope'\n\n/**\n * Enum of scope names to properties\n *\n * Used for federation control*\n */\nexport const SCOPE_PROPERTY_ENUM = Object.freeze({\n\t[SCOPE_ENUM.PRIVATE]: {\n\t\tname: SCOPE_ENUM.PRIVATE,\n\t\tdisplayName: t('settings', 'Private'),\n\t\ttooltip: t('settings', 'Only visible to people matched via phone number integration through Talk on mobile'),\n\t\ttooltipDisabled: t('settings', 'Not available as this property is required for core functionality including file sharing and calendar invitations'),\n\t\ticonClass: 'icon-phone',\n\t},\n\t[SCOPE_ENUM.LOCAL]: {\n\t\tname: SCOPE_ENUM.LOCAL,\n\t\tdisplayName: t('settings', 'Local'),\n\t\ttooltip: t('settings', 'Only visible to people on this instance and guests'),\n\t\t// tooltipDisabled is not required here as this scope is supported by all account properties\n\t\ticonClass: 'icon-password',\n\t},\n\t[SCOPE_ENUM.FEDERATED]: {\n\t\tname: SCOPE_ENUM.FEDERATED,\n\t\tdisplayName: t('settings', 'Federated'),\n\t\ttooltip: t('settings', 'Only synchronize to trusted servers'),\n\t\ttooltipDisabled: t('settings', 'Not available as federation has been disabled for your account, contact your system administrator if you have any questions'),\n\t\ticonClass: 'icon-contacts-dark',\n\t},\n\t[SCOPE_ENUM.PUBLISHED]: {\n\t\tname: SCOPE_ENUM.PUBLISHED,\n\t\tdisplayName: t('settings', 'Published'),\n\t\ttooltip: t('settings', 'Synchronize to trusted servers and the global and public address book'),\n\t\ttooltipDisabled: t('settings', 'Not available as publishing user specific data to the lookup server is not allowed, contact your system administrator if you have any questions'),\n\t\ticonClass: 'icon-link',\n\t},\n})\n\n/** Default additional email scope */\nexport const DEFAULT_ADDITIONAL_EMAIL_SCOPE = SCOPE_ENUM.LOCAL\n\n/** Enum of verification constants, according to IAccountManager */\nexport const VERIFICATION_ENUM = Object.freeze({\n\tNOT_VERIFIED: 0,\n\tVERIFICATION_IN_PROGRESS: 1,\n\tVERIFIED: 2,\n})\n\n/**\n * Email validation regex\n *\n * Sourced from https://github.com/mpyw/FILTER_VALIDATE_EMAIL.js/blob/71e62ca48841d2246a1b531e7e84f5a01f15e615/src/regexp/ascii.ts*\n */\n// eslint-disable-next-line no-control-regex\nexport const VALIDATE_EMAIL_REGEX = /^(?!(?:(?:\\x22?\\x5C[\\x00-\\x7E]\\x22?)|(?:\\x22?[^\\x5C\\x22]\\x22?)){255,})(?!(?:(?:\\x22?\\x5C[\\x00-\\x7E]\\x22?)|(?:\\x22?[^\\x5C\\x22]\\x22?)){65,}@)(?:(?:[\\x21\\x23-\\x27\\x2A\\x2B\\x2D\\x2F-\\x39\\x3D\\x3F\\x5E-\\x7E]+)|(?:\\x22(?:[\\x01-\\x08\\x0B\\x0C\\x0E-\\x1F\\x21\\x23-\\x5B\\x5D-\\x7F]|(?:\\x5C[\\x00-\\x7F]))*\\x22))(?:\\.(?:(?:[\\x21\\x23-\\x27\\x2A\\x2B\\x2D\\x2F-\\x39\\x3D\\x3F\\x5E-\\x7E]+)|(?:\\x22(?:[\\x01-\\x08\\x0B\\x0C\\x0E-\\x1F\\x21\\x23-\\x5B\\x5D-\\x7F]|(?:\\x5C[\\x00-\\x7F]))*\\x22)))*@(?:(?:(?!.*[^.]{64,})(?:(?:(?:xn--)?[a-z0-9]+(?:-+[a-z0-9]+)*\\.){1,126}){1,}(?:(?:[a-z][a-z0-9]*)|(?:(?:xn--)[a-z0-9]+))(?:-+[a-z0-9]+)*)|(?:\\[(?:(?:IPv6:(?:(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){7})|(?:(?!(?:.*[a-f0-9][:\\]]){7,})(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,5})?::(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,5})?)))|(?:(?:IPv6:(?:(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){5}:)|(?:(?!(?:.*[a-f0-9]:){5,})(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,3})?::(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,3}:)?)))?(?:(?:25[0-5])|(?:2[0-4][0-9])|(?:1[0-9]{2})|(?:[1-9]?[0-9]))(?:\\.(?:(?:25[0-5])|(?:2[0-4][0-9])|(?:1[0-9]{2})|(?:[1-9]?[0-9]))){3}))\\]))$/i\n","/**\n * @copyright 2021, Christopher Ng <chrng8@gmail.com>\n *\n * @author Christopher Ng <chrng8@gmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nimport axios from '@nextcloud/axios'\nimport { getCurrentUser } from '@nextcloud/auth'\nimport { generateOcsUrl } from '@nextcloud/router'\nimport { confirmPassword } from '@nextcloud/password-confirmation'\nimport '@nextcloud/password-confirmation/dist/style.css'\n\nimport { SCOPE_SUFFIX } from '../../constants/AccountPropertyConstants.js'\n\n/**\n * Save the primary account property value for the user\n *\n * @param {string} accountProperty the account property\n * @param {string|boolean} value the primary value\n * @return {object}\n */\nexport const savePrimaryAccountProperty = async (accountProperty, value) => {\n\t// TODO allow boolean values on backend route handler\n\t// Convert boolean to string for compatibility\n\tif (typeof value === 'boolean') {\n\t\tvalue = value ? '1' : '0'\n\t}\n\n\tconst userId = getCurrentUser().uid\n\tconst url = generateOcsUrl('cloud/users/{userId}', { userId })\n\n\tawait confirmPassword()\n\n\tconst res = await axios.put(url, {\n\t\tkey: accountProperty,\n\t\tvalue,\n\t})\n\n\treturn res.data\n}\n\n/**\n * Save the federation scope of the primary account property for the user\n *\n * @param {string} accountProperty the account property\n * @param {string} scope the federation scope\n * @return {object}\n */\nexport const savePrimaryAccountPropertyScope = async (accountProperty, scope) => {\n\tconst userId = getCurrentUser().uid\n\tconst url = generateOcsUrl('cloud/users/{userId}', { userId })\n\n\tawait confirmPassword()\n\n\tconst res = await axios.put(url, {\n\t\tkey: `${accountProperty}${SCOPE_SUFFIX}`,\n\t\tvalue: scope,\n\t})\n\n\treturn res.data\n}\n","/**\n * @copyright 2020 Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @author Roeland Jago Douma <roeland@famdouma.nl>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nimport { getLoggerBuilder } from '@nextcloud/logger'\n\nexport default getLoggerBuilder()\n\t.setApp('settings')\n\t.detectUser()\n\t.build()\n","/**\n * @copyright 2023 Christopher Ng <chrng8@gmail.com>\n *\n * @author Christopher Ng <chrng8@gmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nimport { showError } from '@nextcloud/dialogs'\nimport { translate as t } from '@nextcloud/l10n'\n\nimport logger from '../logger.js'\n\n/**\n * @param {import('axios').AxiosError} error the error\n * @param {string?} message the message to display\n */\nexport const handleError = (error, message) => {\n\tlet fullMessage = ''\n\n\tif (message) {\n\t\tfullMessage += message\n\t}\n\n\tif (error.response?.status === 429) {\n\t\tif (fullMessage) {\n\t\t\tfullMessage += '\\n'\n\t\t}\n\t\tfullMessage += t('settings', 'There were too many requests from your network. Retry later or contact your administrator if this is an error.')\n\t}\n\n\tshowError(fullMessage)\n\tlogger.error(fullMessage || t('Error'), error)\n}\n","<!--\n\t- @copyright 2021, Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @author Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @license GNU AGPL version 3 or any later version\n\t-\n\t- This program is free software: you can redistribute it and/or modify\n\t- it under the terms of the GNU Affero General Public License as\n\t- published by the Free Software Foundation, either version 3 of the\n\t- License, or (at your option) any later version.\n\t-\n\t- This program is distributed in the hope that it will be useful,\n\t- but WITHOUT ANY WARRANTY; without even the implied warranty of\n\t- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\t- GNU Affero General Public License for more details.\n\t-\n\t- You should have received a copy of the GNU Affero General Public License\n\t- along with this program. If not, see <http://www.gnu.org/licenses/>.\n\t-\n-->\n\n<template>\n\t<NcActions ref=\"federationActions\"\n\t\tclass=\"federation-actions\"\n\t\t:class=\"{ 'federation-actions--additional': additional }\"\n\t\t:aria-label=\"ariaLabel\"\n\t\t:default-icon=\"scopeIcon\"\n\t\t:disabled=\"disabled\">\n\t\t<NcActionButton v-for=\"federationScope in federationScopes\"\n\t\t\t:key=\"federationScope.name\"\n\t\t\t:close-after-click=\"true\"\n\t\t\t:disabled=\"!supportedScopes.includes(federationScope.name)\"\n\t\t\t:icon=\"federationScope.iconClass\"\n\t\t\t:name=\"federationScope.displayName\"\n\t\t\ttype=\"radio\"\n\t\t\t:value=\"federationScope.name\"\n\t\t\t:model-value=\"scope\"\n\t\t\t@update:modelValue=\"changeScope\">\n\t\t\t{{ supportedScopes.includes(federationScope.name) ? federationScope.tooltip : federationScope.tooltipDisabled }}\n\t\t</NcActionButton>\n\t</NcActions>\n</template>\n\n<script>\nimport NcActions from '@nextcloud/vue/dist/Components/NcActions.js'\nimport NcActionButton from '@nextcloud/vue/dist/Components/NcActionButton.js'\nimport { loadState } from '@nextcloud/initial-state'\n\nimport {\n\tACCOUNT_PROPERTY_READABLE_ENUM,\n\tACCOUNT_SETTING_PROPERTY_READABLE_ENUM,\n\tPROFILE_READABLE_ENUM,\n\tPROPERTY_READABLE_KEYS_ENUM,\n\tPROPERTY_READABLE_SUPPORTED_SCOPES_ENUM,\n\tSCOPE_ENUM, SCOPE_PROPERTY_ENUM,\n\tUNPUBLISHED_READABLE_PROPERTIES,\n} from '../../../constants/AccountPropertyConstants.js'\nimport { savePrimaryAccountPropertyScope } from '../../../service/PersonalInfo/PersonalInfoService.js'\nimport { handleError } from '../../../utils/handlers.js'\n\nconst {\n\tfederationEnabled,\n\tlookupServerUploadEnabled,\n} = loadState('settings', 'accountParameters', {})\n\nexport default {\n\tname: 'FederationControl',\n\n\tcomponents: {\n\t\tNcActions,\n\t\tNcActionButton,\n\t},\n\n\tprops: {\n\t\treadable: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t\tvalidator: (value) => Object.values(ACCOUNT_PROPERTY_READABLE_ENUM).includes(value) || Object.values(ACCOUNT_SETTING_PROPERTY_READABLE_ENUM).includes(value) || value === PROFILE_READABLE_ENUM.PROFILE_VISIBILITY,\n\t\t},\n\t\tadditional: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t\tadditionalValue: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\t\tdisabled: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t\thandleAdditionalScopeChange: {\n\t\t\ttype: Function,\n\t\t\tdefault: null,\n\t\t},\n\t\tscope: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\treadableLowerCase: this.readable.toLocaleLowerCase(),\n\t\t\tinitialScope: this.scope,\n\t\t}\n\t},\n\n\tcomputed: {\n\t\tariaLabel() {\n\t\t\treturn t('settings', 'Change scope level of {property}, current scope is {scope}', { property: this.readableLowerCase, scope: this.scopeDisplayNameLowerCase })\n\t\t},\n\n\t\tscopeDisplayNameLowerCase() {\n\t\t\treturn SCOPE_PROPERTY_ENUM[this.scope].displayName.toLocaleLowerCase()\n\t\t},\n\n\t\tscopeIcon() {\n\t\t\treturn SCOPE_PROPERTY_ENUM[this.scope].iconClass\n\t\t},\n\n\t\tfederationScopes() {\n\t\t\treturn Object.values(SCOPE_PROPERTY_ENUM)\n\t\t},\n\n\t\tsupportedScopes() {\n\t\t\tconst scopes = PROPERTY_READABLE_SUPPORTED_SCOPES_ENUM[this.readable]\n\n\t\t\tif (UNPUBLISHED_READABLE_PROPERTIES.includes(this.readable)) {\n\t\t\t\treturn scopes\n\t\t\t}\n\n\t\t\tif (federationEnabled) {\n\t\t\t\tscopes.push(SCOPE_ENUM.FEDERATED)\n\t\t\t}\n\n\t\t\tif (lookupServerUploadEnabled) {\n\t\t\t\tscopes.push(SCOPE_ENUM.PUBLISHED)\n\t\t\t}\n\n\t\t\treturn scopes\n\t\t},\n\t},\n\n\tmethods: {\n\t\tasync changeScope(scope) {\n\t\t\tthis.$emit('update:scope', scope)\n\n\t\t\tif (!this.additional) {\n\t\t\t\tawait this.updatePrimaryScope(scope)\n\t\t\t} else {\n\t\t\t\tawait this.updateAdditionalScope(scope)\n\t\t\t}\n\n\t\t\t// TODO: provide focus method from NcActions\n\t\t\tthis.$refs.federationActions.$refs.menuButton.$el.focus()\n\t\t},\n\n\t\tasync updatePrimaryScope(scope) {\n\t\t\ttry {\n\t\t\t\tconst responseData = await savePrimaryAccountPropertyScope(PROPERTY_READABLE_KEYS_ENUM[this.readable], scope)\n\t\t\t\tthis.handleResponse({\n\t\t\t\t\tscope,\n\t\t\t\t\tstatus: responseData.ocs?.meta?.status,\n\t\t\t\t})\n\t\t\t} catch (e) {\n\t\t\t\tthis.handleResponse({\n\t\t\t\t\terrorMessage: t('settings', 'Unable to update federation scope of the primary {property}', { property: this.readableLowerCase }),\n\t\t\t\t\terror: e,\n\t\t\t\t})\n\t\t\t}\n\t\t},\n\n\t\tasync updateAdditionalScope(scope) {\n\t\t\ttry {\n\t\t\t\tconst responseData = await this.handleAdditionalScopeChange(this.additionalValue, scope)\n\t\t\t\tthis.handleResponse({\n\t\t\t\t\tscope,\n\t\t\t\t\tstatus: responseData.ocs?.meta?.status,\n\t\t\t\t})\n\t\t\t} catch (e) {\n\t\t\t\tthis.handleResponse({\n\t\t\t\t\terrorMessage: t('settings', 'Unable to update federation scope of additional {property}', { property: this.readableLowerCase }),\n\t\t\t\t\terror: e,\n\t\t\t\t})\n\t\t\t}\n\t\t},\n\n\t\thandleResponse({ scope, status, errorMessage, error }) {\n\t\t\tif (status === 'ok') {\n\t\t\t\tthis.initialScope = scope\n\t\t\t} else {\n\t\t\t\tthis.$emit('update:scope', this.initialScope)\n\t\t\t\thandleError(error, errorMessage)\n\t\t\t}\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.federation-actions {\n\t&--additional {\n\t\t&:deep(button) {\n\t\t\t// TODO remove this hack\n\t\t\theight: 30px !important;\n\t\t\tmin-height: 30px !important;\n\t\t\twidth: 30px !important;\n\t\t\tmin-width: 30px !important;\n\t\t}\n\t}\n}\n</style>\n","import mod from \"-!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FederationControl.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FederationControl.vue?vue&type=script&lang=js\"","\n import API from \"!../../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../../node_modules/css-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FederationControl.vue?vue&type=style&index=0&id=ca40f658&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../../node_modules/css-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FederationControl.vue?vue&type=style&index=0&id=ca40f658&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./FederationControl.vue?vue&type=template&id=ca40f658&scoped=true\"\nimport script from \"./FederationControl.vue?vue&type=script&lang=js\"\nexport * from \"./FederationControl.vue?vue&type=script&lang=js\"\nimport style0 from \"./FederationControl.vue?vue&type=style&index=0&id=ca40f658&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"ca40f658\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('NcActions',{ref:\"federationActions\",staticClass:\"federation-actions\",class:{ 'federation-actions--additional': _vm.additional },attrs:{\"aria-label\":_vm.ariaLabel,\"default-icon\":_vm.scopeIcon,\"disabled\":_vm.disabled}},_vm._l((_vm.federationScopes),function(federationScope){return _c('NcActionButton',{key:federationScope.name,attrs:{\"close-after-click\":true,\"disabled\":!_vm.supportedScopes.includes(federationScope.name),\"icon\":federationScope.iconClass,\"name\":federationScope.displayName,\"type\":\"radio\",\"value\":federationScope.name,\"model-value\":_vm.scope},on:{\"update:modelValue\":_vm.changeScope}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.supportedScopes.includes(federationScope.name) ? federationScope.tooltip : federationScope.tooltipDisabled)+\"\\n\\t\")])}),1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HeaderBar.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HeaderBar.vue?vue&type=script&lang=js\"","<!--\n\t- @copyright 2021, Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @author Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @license GNU AGPL version 3 or any later version\n\t-\n\t- This program is free software: you can redistribute it and/or modify\n\t- it under the terms of the GNU Affero General Public License as\n\t- published by the Free Software Foundation, either version 3 of the\n\t- License, or (at your option) any later version.\n\t-\n\t- This program is distributed in the hope that it will be useful,\n\t- but WITHOUT ANY WARRANTY; without even the implied warranty of\n\t- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\t- GNU Affero General Public License for more details.\n\t-\n\t- You should have received a copy of the GNU Affero General Public License\n\t- along with this program. If not, see <http://www.gnu.org/licenses/>.\n\t-\n-->\n\n<template>\n\t<div class=\"headerbar-label\" :class=\"{ 'setting-property': isSettingProperty, 'profile-property': isProfileProperty }\">\n\t\t<h3 v-if=\"isHeading\">\n\t\t\t<!-- Already translated as required by prop validator -->\n\t\t\t{{ readable }}\n\t\t</h3>\n\t\t<label v-else :for=\"inputId\">\n\t\t\t<!-- Already translated as required by prop validator -->\n\t\t\t{{ readable }}\n\t\t</label>\n\n\t\t<template v-if=\"scope\">\n\t\t\t<FederationControl class=\"federation-control\"\n\t\t\t\t:readable=\"readable\"\n\t\t\t\t:scope.sync=\"localScope\"\n\t\t\t\t@update:scope=\"onScopeChange\" />\n\t\t</template>\n\n\t\t<template v-if=\"isEditable && isMultiValueSupported\">\n\t\t\t<NcButton type=\"tertiary\"\n\t\t\t\t:disabled=\"!isValidSection\"\n\t\t\t\t:aria-label=\"t('settings', 'Add additional email')\"\n\t\t\t\t@click.stop.prevent=\"onAddAdditional\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<Plus :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t\t{{ t('settings', 'Add') }}\n\t\t\t</NcButton>\n\t\t</template>\n\t</div>\n</template>\n\n<script>\nimport NcButton from '@nextcloud/vue/dist/Components/NcButton.js'\nimport Plus from 'vue-material-design-icons/Plus.vue'\n\nimport FederationControl from './FederationControl.vue'\n\nimport {\n\tACCOUNT_PROPERTY_READABLE_ENUM,\n\tPROFILE_READABLE_ENUM,\n} from '../../../constants/AccountPropertyConstants.js'\n\nexport default {\n\tname: 'HeaderBar',\n\n\tcomponents: {\n\t\tFederationControl,\n\t\tNcButton,\n\t\tPlus,\n\t},\n\n\tprops: {\n\t\tscope: {\n\t\t\ttype: String,\n\t\t\tdefault: null,\n\t\t},\n\t\treadable: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t\tinputId: {\n\t\t\ttype: String,\n\t\t\tdefault: null,\n\t\t},\n\t\tisEditable: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: true,\n\t\t},\n\t\tisMultiValueSupported: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t\tisValidSection: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: true,\n\t\t},\n\t\tisHeading: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tlocalScope: this.scope,\n\t\t}\n\t},\n\n\tcomputed: {\n\t\tisProfileProperty() {\n\t\t\treturn this.readable === ACCOUNT_PROPERTY_READABLE_ENUM.PROFILE_ENABLED\n\t\t},\n\n\t\tisSettingProperty() {\n\t\t\treturn !Object.values(ACCOUNT_PROPERTY_READABLE_ENUM).includes(this.readable) && !Object.values(PROFILE_READABLE_ENUM).includes(this.readable)\n\t\t},\n\t},\n\n\tmethods: {\n\t\tonAddAdditional() {\n\t\t\tthis.$emit('add-additional')\n\t\t},\n\n\t\tonScopeChange(scope) {\n\t\t\tthis.$emit('update:scope', scope)\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n\t.headerbar-label {\n\t\tfont-weight: normal;\n\t\tdisplay: inline-flex;\n\t\twidth: 100%;\n\t\tmargin: 12px 0 0 0;\n\t\tgap: 8px;\n\t\talign-items: center;\n\t\tfont-size: 16px;\n\t\tcolor: var(--color-text-light);\n\n\t\t&.profile-property {\n\t\t\theight: 38px;\n\t\t}\n\n\t\t&.setting-property {\n\t\t\theight: 44px;\n\t\t}\n\n\t\tlabel {\n\t\t\tcursor: pointer;\n\t\t}\n\t}\n\n\t.federation-control {\n\t\tmargin: 0;\n\t}\n\n\t.button-vue {\n\t\tmargin: 0 0 0 auto !important;\n\t}\n</style>\n","\n import API from \"!../../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../../node_modules/css-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HeaderBar.vue?vue&type=style&index=0&id=0cd1bc3a&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../../node_modules/css-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HeaderBar.vue?vue&type=style&index=0&id=0cd1bc3a&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./HeaderBar.vue?vue&type=template&id=0cd1bc3a&scoped=true\"\nimport script from \"./HeaderBar.vue?vue&type=script&lang=js\"\nexport * from \"./HeaderBar.vue?vue&type=script&lang=js\"\nimport style0 from \"./HeaderBar.vue?vue&type=style&index=0&id=0cd1bc3a&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0cd1bc3a\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"headerbar-label\",class:{ 'setting-property': _vm.isSettingProperty, 'profile-property': _vm.isProfileProperty }},[(_vm.isHeading)?_c('h3',[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.readable)+\"\\n\\t\")]):_c('label',{attrs:{\"for\":_vm.inputId}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.readable)+\"\\n\\t\")]),_vm._v(\" \"),(_vm.scope)?[_c('FederationControl',{staticClass:\"federation-control\",attrs:{\"readable\":_vm.readable,\"scope\":_vm.localScope},on:{\"update:scope\":[function($event){_vm.localScope=$event},_vm.onScopeChange]}})]:_vm._e(),_vm._v(\" \"),(_vm.isEditable && _vm.isMultiValueSupported)?[_c('NcButton',{attrs:{\"type\":\"tertiary\",\"disabled\":!_vm.isValidSection,\"aria-label\":_vm.t('settings', 'Add additional email')},on:{\"click\":function($event){$event.stopPropagation();$event.preventDefault();return _vm.onAddAdditional.apply(null, arguments)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('Plus',{attrs:{\"size\":20}})]},proxy:true}],null,false,32235154)},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Add'))+\"\\n\\t\\t\")])]:_vm._e()],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n\t- @copyright 2022 Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @author Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @license AGPL-3.0-or-later\n\t-\n\t- This program is free software: you can redistribute it and/or modify\n\t- it under the terms of the GNU Affero General Public License as\n\t- published by the Free Software Foundation, either version 3 of the\n\t- License, or (at your option) any later version.\n\t-\n\t- This program is distributed in the hope that it will be useful,\n\t- but WITHOUT ANY WARRANTY; without even the implied warranty of\n\t- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\t- GNU Affero General Public License for more details.\n\t-\n\t- You should have received a copy of the GNU Affero General Public License\n\t- along with this program. If not, see <http://www.gnu.org/licenses/>.\n\t-\n-->\n\n<template>\n\t<section id=\"vue-avatar-section\">\n\t\t<HeaderBar :is-heading=\"true\"\n\t\t\t:readable=\"avatar.readable\"\n\t\t\t:scope.sync=\"avatar.scope\" />\n\n\t\t<div v-if=\"!showCropper\" class=\"avatar__container\">\n\t\t\t<div class=\"avatar__preview\">\n\t\t\t\t<NcAvatar v-if=\"!loading\"\n\t\t\t\t\t:key=\"version\"\n\t\t\t\t\t:user=\"userId\"\n\t\t\t\t\t:aria-label=\"t('settings', 'Your profile picture')\"\n\t\t\t\t\t:disable-tooltip=\"true\"\n\t\t\t\t\t:show-user-status=\"false\"\n\t\t\t\t\t:size=\"180\" />\n\t\t\t\t<div v-else class=\"icon-loading\" />\n\t\t\t</div>\n\t\t\t<template v-if=\"avatarChangeSupported\">\n\t\t\t\t<div class=\"avatar__buttons\">\n\t\t\t\t\t<NcButton :aria-label=\"t('settings', 'Upload profile picture')\"\n\t\t\t\t\t\t@click=\"activateLocalFilePicker\">\n\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t<Upload :size=\"20\" />\n\t\t\t\t\t\t</template>\n\t\t\t\t\t</NcButton>\n\t\t\t\t\t<NcButton :aria-label=\"t('settings', 'Choose profile picture from Files')\"\n\t\t\t\t\t\t@click=\"openFilePicker\">\n\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t<Folder :size=\"20\" />\n\t\t\t\t\t\t</template>\n\t\t\t\t\t</NcButton>\n\t\t\t\t\t<NcButton v-if=\"!isGenerated\"\n\t\t\t\t\t\t:aria-label=\"t('settings', 'Remove profile picture')\"\n\t\t\t\t\t\t@click=\"removeAvatar\">\n\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t<Delete :size=\"20\" />\n\t\t\t\t\t\t</template>\n\t\t\t\t\t</NcButton>\n\t\t\t\t</div>\n\t\t\t\t<span>{{ t('settings', 'The file must be a PNG or JPG') }}</span>\n\t\t\t\t<input ref=\"input\"\n\t\t\t\t\ttype=\"file\"\n\t\t\t\t\t:accept=\"validMimeTypes.join(',')\"\n\t\t\t\t\t@change=\"onChange\">\n\t\t\t</template>\n\t\t\t<span v-else>\n\t\t\t\t{{ t('settings', 'Picture provided by original account') }}\n\t\t\t</span>\n\t\t</div>\n\n\t\t<!-- Use v-show to ensure early cropper ref availability -->\n\t\t<div v-show=\"showCropper\" class=\"avatar__container\">\n\t\t\t<VueCropper ref=\"cropper\"\n\t\t\t\tclass=\"avatar__cropper\"\n\t\t\t\tv-bind=\"cropperOptions\" />\n\t\t\t<div class=\"avatar__cropper-buttons\">\n\t\t\t\t<NcButton @click=\"cancel\">\n\t\t\t\t\t{{ t('settings', 'Cancel') }}\n\t\t\t\t</NcButton>\n\t\t\t\t<NcButton type=\"primary\"\n\t\t\t\t\t@click=\"saveAvatar\">\n\t\t\t\t\t{{ t('settings', 'Set as profile picture') }}\n\t\t\t\t</NcButton>\n\t\t\t</div>\n\t\t\t<span>{{ t('settings', 'Please note that it can take up to 24 hours for your profile picture to be updated everywhere.') }}</span>\n\t\t</div>\n\t</section>\n</template>\n\n<script>\nimport axios from '@nextcloud/axios'\nimport { loadState } from '@nextcloud/initial-state'\nimport { generateUrl } from '@nextcloud/router'\nimport { getCurrentUser } from '@nextcloud/auth'\nimport { getFilePickerBuilder, showError } from '@nextcloud/dialogs'\nimport { emit, subscribe, unsubscribe } from '@nextcloud/event-bus'\n\nimport NcAvatar from '@nextcloud/vue/dist/Components/NcAvatar.js'\nimport NcButton from '@nextcloud/vue/dist/Components/NcButton.js'\nimport VueCropper from 'vue-cropperjs'\n// eslint-disable-next-line n/no-extraneous-import\nimport 'cropperjs/dist/cropper.css'\n\nimport Upload from 'vue-material-design-icons/Upload.vue'\nimport Folder from 'vue-material-design-icons/Folder.vue'\nimport Delete from 'vue-material-design-icons/Delete.vue'\n\nimport HeaderBar from './shared/HeaderBar.vue'\nimport { NAME_READABLE_ENUM } from '../../constants/AccountPropertyConstants.js'\n\nconst { avatar } = loadState('settings', 'personalInfoParameters', {})\nconst { avatarChangeSupported } = loadState('settings', 'accountParameters', {})\n\nconst VALID_MIME_TYPES = ['image/png', 'image/jpeg']\n\nconst picker = getFilePickerBuilder(t('settings', 'Choose your profile picture'))\n\t.setMultiSelect(false)\n\t.setMimeTypeFilter(VALID_MIME_TYPES)\n\t.setType(1)\n\t.allowDirectories(false)\n\t.build()\n\nexport default {\n\tname: 'AvatarSection',\n\n\tcomponents: {\n\t\tDelete,\n\t\tFolder,\n\t\tHeaderBar,\n\t\tNcAvatar,\n\t\tNcButton,\n\t\tUpload,\n\t\tVueCropper,\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tavatar: { ...avatar, readable: NAME_READABLE_ENUM[avatar.name] },\n\t\t\tavatarChangeSupported,\n\t\t\tshowCropper: false,\n\t\t\tloading: false,\n\t\t\tuserId: getCurrentUser().uid,\n\t\t\tdisplayName: getCurrentUser().displayName,\n\t\t\tversion: oc_userconfig.avatar.version,\n\t\t\tisGenerated: oc_userconfig.avatar.generated,\n\t\t\tvalidMimeTypes: VALID_MIME_TYPES,\n\t\t\tcropperOptions: {\n\t\t\t\taspectRatio: 1 / 1,\n\t\t\t\tviewMode: 1,\n\t\t\t\tguides: false,\n\t\t\t\tcenter: false,\n\t\t\t\thighlight: false,\n\t\t\t\tautoCropArea: 1,\n\t\t\t\tminContainerWidth: 300,\n\t\t\t\tminContainerHeight: 300,\n\t\t\t},\n\t\t}\n\t},\n\n\tcreated() {\n\t\tsubscribe('settings:display-name:updated', this.handleDisplayNameUpdate)\n\t},\n\n\tbeforeDestroy() {\n\t\tunsubscribe('settings:display-name:updated', this.handleDisplayNameUpdate)\n\t},\n\n\tmethods: {\n\t\tactivateLocalFilePicker() {\n\t\t\t// Set to null so that selecting the same file will trigger the change event\n\t\t\tthis.$refs.input.value = null\n\t\t\tthis.$refs.input.click()\n\t\t},\n\n\t\tonChange(e) {\n\t\t\tthis.loading = true\n\t\t\tconst file = e.target.files[0]\n\t\t\tif (!this.validMimeTypes.includes(file.type)) {\n\t\t\t\tshowError(t('settings', 'Please select a valid png or jpg file'))\n\t\t\t\tthis.cancel()\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tconst reader = new FileReader()\n\t\t\treader.onload = (e) => {\n\t\t\t\tthis.$refs.cropper.replace(e.target.result)\n\t\t\t\tthis.showCropper = true\n\t\t\t}\n\t\t\treader.readAsDataURL(file)\n\t\t},\n\n\t\tasync openFilePicker() {\n\t\t\tconst path = await picker.pick()\n\t\t\tthis.loading = true\n\t\t\ttry {\n\t\t\t\tconst { data } = await axios.post(generateUrl('/avatar'), { path })\n\t\t\t\tif (data.status === 'success') {\n\t\t\t\t\tthis.handleAvatarUpdate(false)\n\t\t\t\t} else if (data.data === 'notsquare') {\n\t\t\t\t\tconst tempAvatar = generateUrl('/avatar/tmp') + '?requesttoken=' + encodeURIComponent(OC.requestToken) + '#' + Math.floor(Math.random() * 1000)\n\t\t\t\t\tthis.$refs.cropper.replace(tempAvatar)\n\t\t\t\t\tthis.showCropper = true\n\t\t\t\t} else {\n\t\t\t\t\tshowError(data.data.message)\n\t\t\t\t\tthis.cancel()\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\tshowError(t('settings', 'Error setting profile picture'))\n\t\t\t\tthis.cancel()\n\t\t\t}\n\t\t},\n\n\t\tsaveAvatar() {\n\t\t\tthis.showCropper = false\n\t\t\tthis.loading = true\n\n\t\t\tconst canvasData = this.$refs.cropper.getCroppedCanvas()\n\t\t\tconst scaleFactor = canvasData.width > 512 ? 512 / canvasData.width : 1\n\n\t\t\tthis.$refs.cropper.scale(scaleFactor, scaleFactor).getCroppedCanvas().toBlob(async (blob) => {\n\t\t\t\tif (blob === null) {\n\t\t\t\t\tshowError(t('settings', 'Error cropping profile picture'))\n\t\t\t\t\tthis.cancel()\n\t\t\t\t\treturn\n\t\t\t\t}\n\n\t\t\t\tconst formData = new FormData()\n\t\t\t\tformData.append('files[]', blob)\n\t\t\t\ttry {\n\t\t\t\t\tawait axios.post(generateUrl('/avatar'), formData)\n\t\t\t\t\tthis.handleAvatarUpdate(false)\n\t\t\t\t} catch (e) {\n\t\t\t\t\tshowError(t('settings', 'Error saving profile picture'))\n\t\t\t\t\tthis.handleAvatarUpdate(this.isGenerated)\n\t\t\t\t}\n\t\t\t})\n\t\t},\n\n\t\tasync removeAvatar() {\n\t\t\tthis.loading = true\n\t\t\ttry {\n\t\t\t\tawait axios.delete(generateUrl('/avatar'))\n\t\t\t\tthis.handleAvatarUpdate(true)\n\t\t\t} catch (e) {\n\t\t\t\tshowError(t('settings', 'Error removing profile picture'))\n\t\t\t\tthis.handleAvatarUpdate(this.isGenerated)\n\t\t\t}\n\t\t},\n\n\t\tcancel() {\n\t\t\tthis.showCropper = false\n\t\t\tthis.loading = false\n\t\t},\n\n\t\thandleAvatarUpdate(isGenerated) {\n\t\t\t// Update the avatar version so that avatar update handlers refresh correctly\n\t\t\tthis.version = oc_userconfig.avatar.version = Date.now()\n\t\t\tthis.isGenerated = oc_userconfig.avatar.generated = isGenerated\n\t\t\tthis.loading = false\n\t\t\temit('settings:avatar:updated', oc_userconfig.avatar.version)\n\t\t},\n\n\t\thandleDisplayNameUpdate() {\n\t\t\tthis.version = oc_userconfig.avatar.version\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\nsection {\n\tgrid-row: 1/3;\n\tpadding: 10px 10px;\n}\n.avatar {\n\t&__container {\n\t\tmargin: 0 auto;\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\tjustify-content: center;\n\t\talign-items: center;\n\t\tgap: 16px 0;\n\t\twidth: min(100%, 300px);\n\n\t\tspan {\n\t\t\tcolor: var(--color-text-lighter);\n\t\t}\n\t}\n\n\t&__preview {\n\t\tdisplay: flex;\n\t\tjustify-content: center;\n\t\talign-items: center;\n\t\twidth: 180px;\n\t\theight: 180px;\n\t}\n\n\t&__buttons {\n\t\tdisplay: flex;\n\t\tgap: 0 10px;\n\t}\n\n\t&__cropper {\n\t\twidth: 300px;\n\t\theight: 300px;\n\t\toverflow: hidden;\n\n\t\t&-buttons {\n\t\t\twidth: 100%;\n\t\t\tdisplay: flex;\n\t\t\tjustify-content: space-between;\n\t\t}\n\n\t\t&::v-deep .cropper-view-box {\n\t\t\tborder-radius: 50%;\n\t\t}\n\t}\n}\n\ninput[type=\"file\"] {\n\tdisplay: none;\n}\n</style>\n","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AvatarSection.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AvatarSection.vue?vue&type=script&lang=js\"","\n import API from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AvatarSection.vue?vue&type=style&index=0&id=21571d36&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AvatarSection.vue?vue&type=style&index=0&id=21571d36&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./AvatarSection.vue?vue&type=template&id=21571d36&scoped=true\"\nimport script from \"./AvatarSection.vue?vue&type=script&lang=js\"\nexport * from \"./AvatarSection.vue?vue&type=script&lang=js\"\nimport style0 from \"./AvatarSection.vue?vue&type=style&index=0&id=21571d36&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"21571d36\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('section',{attrs:{\"id\":\"vue-avatar-section\"}},[_c('HeaderBar',{attrs:{\"is-heading\":true,\"readable\":_vm.avatar.readable,\"scope\":_vm.avatar.scope},on:{\"update:scope\":function($event){return _vm.$set(_vm.avatar, \"scope\", $event)}}}),_vm._v(\" \"),(!_vm.showCropper)?_c('div',{staticClass:\"avatar__container\"},[_c('div',{staticClass:\"avatar__preview\"},[(!_vm.loading)?_c('NcAvatar',{key:_vm.version,attrs:{\"user\":_vm.userId,\"aria-label\":_vm.t('settings', 'Your profile picture'),\"disable-tooltip\":true,\"show-user-status\":false,\"size\":180}}):_c('div',{staticClass:\"icon-loading\"})],1),_vm._v(\" \"),(_vm.avatarChangeSupported)?[_c('div',{staticClass:\"avatar__buttons\"},[_c('NcButton',{attrs:{\"aria-label\":_vm.t('settings', 'Upload profile picture')},on:{\"click\":_vm.activateLocalFilePicker},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('Upload',{attrs:{\"size\":20}})]},proxy:true}],null,false,1329850251)}),_vm._v(\" \"),_c('NcButton',{attrs:{\"aria-label\":_vm.t('settings', 'Choose profile picture from Files')},on:{\"click\":_vm.openFilePicker},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('Folder',{attrs:{\"size\":20}})]},proxy:true}],null,false,4270628382)}),_vm._v(\" \"),(!_vm.isGenerated)?_c('NcButton',{attrs:{\"aria-label\":_vm.t('settings', 'Remove profile picture')},on:{\"click\":_vm.removeAvatar},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('Delete',{attrs:{\"size\":20}})]},proxy:true}],null,false,2705356561)}):_vm._e()],1),_vm._v(\" \"),_c('span',[_vm._v(_vm._s(_vm.t('settings', 'The file must be a PNG or JPG')))]),_vm._v(\" \"),_c('input',{ref:\"input\",attrs:{\"type\":\"file\",\"accept\":_vm.validMimeTypes.join(',')},on:{\"change\":_vm.onChange}})]:_c('span',[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Picture provided by original account'))+\"\\n\\t\\t\")])],2):_vm._e(),_vm._v(\" \"),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showCropper),expression:\"showCropper\"}],staticClass:\"avatar__container\"},[_c('VueCropper',_vm._b({ref:\"cropper\",staticClass:\"avatar__cropper\"},'VueCropper',_vm.cropperOptions,false)),_vm._v(\" \"),_c('div',{staticClass:\"avatar__cropper-buttons\"},[_c('NcButton',{on:{\"click\":_vm.cancel}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Cancel'))+\"\\n\\t\\t\\t\")]),_vm._v(\" \"),_c('NcButton',{attrs:{\"type\":\"primary\"},on:{\"click\":_vm.saveAvatar}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Set as profile picture'))+\"\\n\\t\\t\\t\")])],1),_vm._v(\" \"),_c('span',[_vm._v(_vm._s(_vm.t('settings', 'Please note that it can take up to 24 hours for your profile picture to be updated everywhere.')))])],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('section',[_c('HeaderBar',{attrs:{\"is-heading\":true,\"readable\":_vm.t('settings', 'Details')}}),_vm._v(\" \"),_c('div',{staticClass:\"details\"},[_c('div',{staticClass:\"details__groups\"},[_c('Account',{attrs:{\"size\":20}}),_vm._v(\" \"),_c('div',{staticClass:\"details__groups-info\"},[_c('p',[_vm._v(_vm._s(_vm.t('settings', 'You are a member of the following groups:')))]),_vm._v(\" \"),_c('p',{staticClass:\"details__groups-list\"},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.groups.join(', '))+\"\\n\\t\\t\\t\\t\")])])],1),_vm._v(\" \"),_c('div',{staticClass:\"details__quota\"},[_c('CircleSlice',{attrs:{\"size\":20}}),_vm._v(\" \"),_c('div',{staticClass:\"details__quota-info\"},[_c('p',{staticClass:\"details__quota-text\",domProps:{\"innerHTML\":_vm._s(_vm.quotaText)}}),_vm._v(\" \"),_c('NcProgressBar',{attrs:{\"size\":\"medium\",\"value\":_vm.usageRelative,\"error\":_vm.usageRelative > 80}})],1)],1)])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : true\"\n :aria-label=\"title\"\n class=\"material-design-icon account-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M12,4A4,4 0 0,1 16,8A4,4 0 0,1 12,12A4,4 0 0,1 8,8A4,4 0 0,1 12,4M12,14C16.42,14 20,15.79 20,18V20H4V18C4,15.79 7.58,14 12,14Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"AccountIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n</script>","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./Account.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./Account.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Account.vue?vue&type=template&id=0571d43c\"\nimport script from \"./Account.vue?vue&type=script&lang=js\"\nexport * from \"./Account.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon account-icon\",attrs:{\"aria-hidden\":_vm.title ? null : true,\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M12,4A4,4 0 0,1 16,8A4,4 0 0,1 12,12A4,4 0 0,1 8,8A4,4 0 0,1 12,4M12,14C16.42,14 20,15.79 20,18V20H4V18C4,15.79 7.58,14 12,14Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./CircleSlice3.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./CircleSlice3.vue?vue&type=script&lang=js\"","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : true\"\n :aria-label=\"title\"\n class=\"material-design-icon circle-slice3-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M12 2C17.5 2 22 6.5 22 12C22 17.5 17.5 22 12 22C6.5 22 2 17.5 2 12C2 6.5 6.5 2 12 2M12 4C7.58 4 4 7.58 4 12C4 16.42 7.58 20 12 20C16.42 20 20 16.42 20 12C20 7.58 16.42 4 12 4M12 5C15.87 5 19 8.13 19 12C19 13.93 18.22 15.68 16.95 16.95L12 12V5Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"CircleSlice3Icon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n</script>","import { render, staticRenderFns } from \"./CircleSlice3.vue?vue&type=template&id=5ad5221a\"\nimport script from \"./CircleSlice3.vue?vue&type=script&lang=js\"\nexport * from \"./CircleSlice3.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon circle-slice3-icon\",attrs:{\"aria-hidden\":_vm.title ? null : true,\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M12 2C17.5 2 22 6.5 22 12C22 17.5 17.5 22 12 22C6.5 22 2 17.5 2 12C2 6.5 6.5 2 12 2M12 4C7.58 4 4 7.58 4 12C4 16.42 7.58 20 12 20C16.42 20 20 16.42 20 12C20 7.58 16.42 4 12 4M12 5C15.87 5 19 8.13 19 12C19 13.93 18.22 15.68 16.95 16.95L12 12V5Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n\t- @copyright 2022 Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @author Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @license AGPL-3.0-or-later\n\t-\n\t- This program is free software: you can redistribute it and/or modify\n\t- it under the terms of the GNU Affero General Public License as\n\t- published by the Free Software Foundation, either version 3 of the\n\t- License, or (at your option) any later version.\n\t-\n\t- This program is distributed in the hope that it will be useful,\n\t- but WITHOUT ANY WARRANTY; without even the implied warranty of\n\t- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\t- GNU Affero General Public License for more details.\n\t-\n\t- You should have received a copy of the GNU Affero General Public License\n\t- along with this program. If not, see <http://www.gnu.org/licenses/>.\n\t-\n-->\n\n<template>\n\t<section>\n\t\t<HeaderBar :is-heading=\"true\" :readable=\"t('settings', 'Details')\" />\n\n\t\t<div class=\"details\">\n\t\t\t<div class=\"details__groups\">\n\t\t\t\t<Account :size=\"20\" />\n\t\t\t\t<div class=\"details__groups-info\">\n\t\t\t\t\t<p>{{ t('settings', 'You are a member of the following groups:') }}</p>\n\t\t\t\t\t<p class=\"details__groups-list\">\n\t\t\t\t\t\t{{ groups.join(', ') }}\n\t\t\t\t\t</p>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div class=\"details__quota\">\n\t\t\t\t<CircleSlice :size=\"20\" />\n\t\t\t\t<div class=\"details__quota-info\">\n\t\t\t\t\t<p class=\"details__quota-text\" v-html=\"quotaText\" />\n\t\t\t\t\t<NcProgressBar size=\"medium\"\n\t\t\t\t\t\t:value=\"usageRelative\"\n\t\t\t\t\t\t:error=\"usageRelative > 80\" />\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t</section>\n</template>\n\n<script>\nimport { loadState } from '@nextcloud/initial-state'\nimport NcProgressBar from '@nextcloud/vue/dist/Components/NcProgressBar.js'\n\nimport Account from 'vue-material-design-icons/Account.vue'\nimport CircleSlice from 'vue-material-design-icons/CircleSlice3.vue'\n\nimport HeaderBar from './shared/HeaderBar.vue'\n\n/** SYNC to be kept in sync with `lib/public/Files/FileInfo.php` */\nconst SPACE_UNLIMITED = -3\n\nconst { groups, quota, totalSpace, usage, usageRelative } = loadState('settings', 'personalInfoParameters', {})\n\nexport default {\n\tname: 'DetailsSection',\n\n\tcomponents: {\n\t\tAccount,\n\t\tCircleSlice,\n\t\tHeaderBar,\n\t\tNcProgressBar,\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tgroups,\n\t\t\tusageRelative,\n\t\t}\n\t},\n\n\tcomputed: {\n\t\tquotaText() {\n\t\t\tif (quota === SPACE_UNLIMITED) {\n\t\t\t\treturn t('settings', 'You are using <strong>{usage}</strong>', { usage })\n\t\t\t}\n\t\t\treturn t(\n\t\t\t\t'settings',\n\t\t\t\t'You are using <strong>{usage}</strong> of <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)',\n\t\t\t\t{ usage, totalSpace, usageRelative },\n\t\t\t)\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.details {\n\tdisplay: flex;\n\tflex-direction: column;\n\tmargin: 10px 32px 10px 0;\n\tgap: 16px 0;\n\tcolor: var(--color-text-lighter);\n\n\t&__groups,\n\t&__quota {\n\t\tdisplay: flex;\n\t\tgap: 0 10px;\n\n\t\t&-info {\n\t\t\tdisplay: flex;\n\t\t\tflex-direction: column;\n\t\t\twidth: 100%;\n\t\t\tgap: 4px 0;\n\t\t}\n\n\t\t&-list {\n\t\t\tfont-weight: bold;\n\t\t}\n\n\t\t&::v-deep .material-design-icon {\n\t\t\talign-self: flex-start;\n\t\t\tmargin-top: 2px;\n\t\t}\n\t}\n}\n</style>\n","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DetailsSection.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DetailsSection.vue?vue&type=script&lang=js\"","\n import API from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DetailsSection.vue?vue&type=style&index=0&id=f432848e&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DetailsSection.vue?vue&type=style&index=0&id=f432848e&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./DetailsSection.vue?vue&type=template&id=f432848e&scoped=true\"\nimport script from \"./DetailsSection.vue?vue&type=script&lang=js\"\nexport * from \"./DetailsSection.vue?vue&type=script&lang=js\"\nimport style0 from \"./DetailsSection.vue?vue&type=style&index=0&id=f432848e&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"f432848e\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('AccountPropertySection',_vm._b({attrs:{\"placeholder\":_vm.t('settings', 'Your full name'),\"autocomplete\":\"username\",\"is-editable\":_vm.displayNameChangeSupported,\"on-validate\":_vm.onValidate,\"on-save\":_vm.onSave}},'AccountPropertySection',_vm.displayName,false,true))\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : true\"\n :aria-label=\"title\"\n class=\"material-design-icon alert-octagon-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M13 13H11V7H13M11 15H13V17H11M15.73 3H8.27L3 8.27V15.73L8.27 21H15.73L21 15.73V8.27L15.73 3Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"AlertOctagonIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n</script>","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./AlertOctagon.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./AlertOctagon.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./AlertOctagon.vue?vue&type=template&id=e6426fdc\"\nimport script from \"./AlertOctagon.vue?vue&type=script&lang=js\"\nexport * from \"./AlertOctagon.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon alert-octagon-icon\",attrs:{\"aria-hidden\":_vm.title ? null : true,\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M13 13H11V7H13M11 15H13V17H11M15.73 3H8.27L3 8.27V15.73L8.27 21H15.73L21 15.73V8.27L15.73 3Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n\t- @copyright 2022 Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @author Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @license AGPL-3.0-or-later\n\t-\n\t- This program is free software: you can redistribute it and/or modify\n\t- it under the terms of the GNU Affero General Public License as\n\t- published by the Free Software Foundation, either version 3 of the\n\t- License, or (at your option) any later version.\n\t-\n\t- This program is distributed in the hope that it will be useful,\n\t- but WITHOUT ANY WARRANTY; without even the implied warranty of\n\t- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\t- GNU Affero General Public License for more details.\n\t-\n\t- You should have received a copy of the GNU Affero General Public License\n\t- along with this program. If not, see <http://www.gnu.org/licenses/>.\n\t-\n-->\n\n<template>\n\t<section>\n\t\t<HeaderBar :scope.sync=\"scope\"\n\t\t\t:readable.sync=\"readable\"\n\t\t\t:input-id=\"inputId\"\n\t\t\t:is-editable=\"isEditable\" />\n\n\t\t<div v-if=\"isEditable\" class=\"property\">\n\t\t\t<textarea v-if=\"multiLine\"\n\t\t\t\t:id=\"inputId\"\n\t\t\t\t:placeholder=\"placeholder\"\n\t\t\t\t:value=\"value\"\n\t\t\t\trows=\"8\"\n\t\t\t\tautocapitalize=\"none\"\n\t\t\t\tautocomplete=\"off\"\n\t\t\t\tspellcheck=\"false\"\n\t\t\t\t@input=\"onPropertyChange\" />\n\t\t\t<input v-else\n\t\t\t\t:id=\"inputId\"\n\t\t\t\tref=\"input\"\n\t\t\t\t:placeholder=\"placeholder\"\n\t\t\t\t:type=\"type\"\n\t\t\t\t:value=\"value\"\n\t\t\t\t:aria-describedby=\"helperText ? `${name}-helper-text` : undefined\"\n\t\t\t\tautocapitalize=\"none\"\n\t\t\t\tspellcheck=\"false\"\n\t\t\t\t:autocomplete=\"autocomplete\"\n\t\t\t\t@input=\"onPropertyChange\">\n\n\t\t\t<div class=\"property__actions-container\">\n\t\t\t\t<Transition name=\"fade\">\n\t\t\t\t\t<Check v-if=\"showCheckmarkIcon\" :size=\"20\" />\n\t\t\t\t\t<AlertOctagon v-else-if=\"showErrorIcon\" :size=\"20\" />\n\t\t\t\t</Transition>\n\t\t\t</div>\n\t\t</div>\n\t\t<span v-else>\n\t\t\t{{ value || t('settings', 'No {property} set', { property: readable.toLocaleLowerCase() }) }}\n\t\t</span>\n\n\t\t<p v-if=\"helperText\"\n\t\t\t:id=\"`${name}-helper-text`\"\n\t\t\tclass=\"property__helper-text-message property__helper-text-message--error\">\n\t\t\t<AlertCircle class=\"property__helper-text-message__icon\" :size=\"18\" />\n\t\t\t{{ helperText }}\n\t\t</p>\n\t</section>\n</template>\n\n<script>\nimport debounce from 'debounce'\n\nimport AlertCircle from 'vue-material-design-icons/AlertCircleOutline.vue'\nimport AlertOctagon from 'vue-material-design-icons/AlertOctagon.vue'\nimport Check from 'vue-material-design-icons/Check.vue'\n\nimport HeaderBar from '../shared/HeaderBar.vue'\n\nimport { savePrimaryAccountProperty } from '../../../service/PersonalInfo/PersonalInfoService.js'\nimport { handleError } from '../../../utils/handlers.js'\n\nexport default {\n\tname: 'AccountPropertySection',\n\n\tcomponents: {\n\t\tAlertCircle,\n\t\tAlertOctagon,\n\t\tCheck,\n\t\tHeaderBar,\n\t},\n\n\tprops: {\n\t\tname: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t\tvalue: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t\tscope: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t\treadable: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t\tplaceholder: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t\ttype: {\n\t\t\ttype: String,\n\t\t\tdefault: 'text',\n\t\t},\n\t\tisEditable: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: true,\n\t\t},\n\t\tmultiLine: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t\tonValidate: {\n\t\t\ttype: Function,\n\t\t\tdefault: null,\n\t\t},\n\t\tonSave: {\n\t\t\ttype: Function,\n\t\t\tdefault: null,\n\t\t},\n\t\tautocomplete: {\n\t\t\ttype: String,\n\t\t\tdefault: null,\n\t\t},\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tinitialValue: this.value,\n\t\t\thelperText: null,\n\t\t\tshowCheckmarkIcon: false,\n\t\t\tshowErrorIcon: false,\n\t\t}\n\t},\n\n\tcomputed: {\n\t\tinputId() {\n\t\t\treturn `account-property-${this.name}`\n\t\t},\n\t},\n\n\tmethods: {\n\t\tonPropertyChange(e) {\n\t\t\tthis.$emit('update:value', e.target.value)\n\t\t\tthis.debouncePropertyChange(e.target.value.trim())\n\t\t},\n\n\t\tdebouncePropertyChange: debounce(async function(value) {\n\t\t\tthis.helperText = null\n\t\t\tif (this.$refs.input && this.$refs.input.validationMessage) {\n\t\t\t\tthis.helperText = this.$refs.input.validationMessage\n\t\t\t\treturn\n\t\t\t}\n\t\t\tif (this.onValidate && !this.onValidate(value)) {\n\t\t\t\treturn\n\t\t\t}\n\t\t\tawait this.updateProperty(value)\n\t\t}, 500),\n\n\t\tasync updateProperty(value) {\n\t\t\ttry {\n\t\t\t\tconst responseData = await savePrimaryAccountProperty(\n\t\t\t\t\tthis.name,\n\t\t\t\t\tvalue,\n\t\t\t\t)\n\t\t\t\tthis.handleResponse({\n\t\t\t\t\tvalue,\n\t\t\t\t\tstatus: responseData.ocs?.meta?.status,\n\t\t\t\t})\n\t\t\t} catch (e) {\n\t\t\t\tthis.handleResponse({\n\t\t\t\t\terrorMessage: t('settings', 'Unable to update {property}', { property: this.readable.toLocaleLowerCase() }),\n\t\t\t\t\terror: e,\n\t\t\t\t})\n\t\t\t}\n\t\t},\n\n\t\thandleResponse({ value, status, errorMessage, error }) {\n\t\t\tif (status === 'ok') {\n\t\t\t\tthis.initialValue = value\n\t\t\t\tif (this.onSave) {\n\t\t\t\t\tthis.onSave(value)\n\t\t\t\t}\n\t\t\t\tthis.showCheckmarkIcon = true\n\t\t\t\tsetTimeout(() => { this.showCheckmarkIcon = false }, 2000)\n\t\t\t} else {\n\t\t\t\tthis.$emit('update:value', this.initialValue)\n\t\t\t\thandleError(error, errorMessage)\n\t\t\t\tthis.showErrorIcon = true\n\t\t\t\tsetTimeout(() => { this.showErrorIcon = false }, 2000)\n\t\t\t}\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\nsection {\n\tpadding: 10px 10px;\n\n\t&::v-deep button:disabled {\n\t\tcursor: default;\n\t}\n\n\t.property {\n\t\tdisplay: grid;\n\t\talign-items: center;\n\n\t\ttextarea {\n\t\t\tresize: vertical;\n\t\t\tgrid-area: 1 / 1;\n\t\t\twidth: 100%;\n\t\t}\n\n\t\tinput {\n\t\t\tgrid-area: 1 / 1;\n\t\t\twidth: 100%;\n\t\t}\n\n\t\t.property__actions-container {\n\t\t\tgrid-area: 1 / 1;\n\t\t\tjustify-self: flex-end;\n\t\t\talign-self: flex-end;\n\t\t\theight: 30px;\n\n\t\t\tdisplay: flex;\n\t\t\tgap: 0 2px;\n\t\t\tmargin-right: 5px;\n\t\t\tmargin-bottom: 5px;\n\t\t}\n\t}\n\n\t.property__helper-text-message {\n\t\tpadding: 4px 0;\n\t\tdisplay: flex;\n\t\talign-items: center;\n\n\t\t&__icon {\n\t\t\tmargin-right: 8px;\n\t\t\talign-self: start;\n\t\t\tmargin-top: 4px;\n\t\t}\n\n\t\t&--error {\n\t\t\tcolor: var(--color-error);\n\t\t}\n\t}\n\n\t.fade-enter,\n\t.fade-leave-to {\n\t\topacity: 0;\n\t}\n\n\t.fade-enter-active {\n\t\ttransition: opacity 200ms ease-out;\n\t}\n\n\t.fade-leave-active {\n\t\ttransition: opacity 300ms ease-out;\n\t}\n}\n</style>\n","import mod from \"-!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AccountPropertySection.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AccountPropertySection.vue?vue&type=script&lang=js\"","\n import API from \"!../../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../../node_modules/css-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AccountPropertySection.vue?vue&type=style&index=0&id=594c0506&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../../node_modules/css-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AccountPropertySection.vue?vue&type=style&index=0&id=594c0506&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./AccountPropertySection.vue?vue&type=template&id=594c0506&scoped=true\"\nimport script from \"./AccountPropertySection.vue?vue&type=script&lang=js\"\nexport * from \"./AccountPropertySection.vue?vue&type=script&lang=js\"\nimport style0 from \"./AccountPropertySection.vue?vue&type=style&index=0&id=594c0506&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"594c0506\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('section',[_c('HeaderBar',{attrs:{\"scope\":_vm.scope,\"readable\":_vm.readable,\"input-id\":_vm.inputId,\"is-editable\":_vm.isEditable},on:{\"update:scope\":function($event){_vm.scope=$event},\"update:readable\":function($event){_vm.readable=$event}}}),_vm._v(\" \"),(_vm.isEditable)?_c('div',{staticClass:\"property\"},[(_vm.multiLine)?_c('textarea',{attrs:{\"id\":_vm.inputId,\"placeholder\":_vm.placeholder,\"rows\":\"8\",\"autocapitalize\":\"none\",\"autocomplete\":\"off\",\"spellcheck\":\"false\"},domProps:{\"value\":_vm.value},on:{\"input\":_vm.onPropertyChange}}):_c('input',{ref:\"input\",attrs:{\"id\":_vm.inputId,\"placeholder\":_vm.placeholder,\"type\":_vm.type,\"aria-describedby\":_vm.helperText ? `${_vm.name}-helper-text` : undefined,\"autocapitalize\":\"none\",\"spellcheck\":\"false\",\"autocomplete\":_vm.autocomplete},domProps:{\"value\":_vm.value},on:{\"input\":_vm.onPropertyChange}}),_vm._v(\" \"),_c('div',{staticClass:\"property__actions-container\"},[_c('Transition',{attrs:{\"name\":\"fade\"}},[(_vm.showCheckmarkIcon)?_c('Check',{attrs:{\"size\":20}}):(_vm.showErrorIcon)?_c('AlertOctagon',{attrs:{\"size\":20}}):_vm._e()],1)],1)]):_c('span',[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.value || _vm.t('settings', 'No {property} set', { property: _vm.readable.toLocaleLowerCase() }))+\"\\n\\t\")]),_vm._v(\" \"),(_vm.helperText)?_c('p',{staticClass:\"property__helper-text-message property__helper-text-message--error\",attrs:{\"id\":`${_vm.name}-helper-text`}},[_c('AlertCircle',{staticClass:\"property__helper-text-message__icon\",attrs:{\"size\":18}}),_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.helperText)+\"\\n\\t\")],1):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n\t- @copyright 2022 Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @author Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @license AGPL-3.0-or-later\n\t-\n\t- This program is free software: you can redistribute it and/or modify\n\t- it under the terms of the GNU Affero General Public License as\n\t- published by the Free Software Foundation, either version 3 of the\n\t- License, or (at your option) any later version.\n\t-\n\t- This program is distributed in the hope that it will be useful,\n\t- but WITHOUT ANY WARRANTY; without even the implied warranty of\n\t- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\t- GNU Affero General Public License for more details.\n\t-\n\t- You should have received a copy of the GNU Affero General Public License\n\t- along with this program. If not, see <http://www.gnu.org/licenses/>.\n\t-\n-->\n\n<template>\n\t<AccountPropertySection v-bind.sync=\"displayName\"\n\t\t:placeholder=\"t('settings', 'Your full name')\"\n\t\tautocomplete=\"username\"\n\t\t:is-editable=\"displayNameChangeSupported\"\n\t\t:on-validate=\"onValidate\"\n\t\t:on-save=\"onSave\" />\n</template>\n\n<script>\nimport { loadState } from '@nextcloud/initial-state'\nimport { emit } from '@nextcloud/event-bus'\n\nimport AccountPropertySection from './shared/AccountPropertySection.vue'\n\nimport { NAME_READABLE_ENUM } from '../../constants/AccountPropertyConstants.js'\n\nconst { displayName } = loadState('settings', 'personalInfoParameters', {})\nconst { displayNameChangeSupported } = loadState('settings', 'accountParameters', {})\n\nexport default {\n\tname: 'DisplayNameSection',\n\n\tcomponents: {\n\t\tAccountPropertySection,\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tdisplayName: { ...displayName, readable: NAME_READABLE_ENUM[displayName.name] },\n\t\t\tdisplayNameChangeSupported,\n\t\t}\n\t},\n\n\tmethods: {\n\t\tonValidate(value) {\n\t\t\treturn value !== ''\n\t\t},\n\n\t\tonSave(value) {\n\t\t\tif (oc_userconfig.avatar.generated) {\n\t\t\t\t// Update the avatar version so that avatar update handlers refresh correctly\n\t\t\t\toc_userconfig.avatar.version = Date.now()\n\t\t\t}\n\t\t\temit('settings:display-name:updated', value)\n\t\t},\n\t},\n}\n</script>\n","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DisplayNameSection.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DisplayNameSection.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./DisplayNameSection.vue?vue&type=template&id=5a039493\"\nimport script from \"./DisplayNameSection.vue?vue&type=script&lang=js\"\nexport * from \"./DisplayNameSection.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","/**\n * @copyright 2021, Christopher Ng <chrng8@gmail.com>\n *\n * @author Christopher Ng <chrng8@gmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nimport axios from '@nextcloud/axios'\nimport { getCurrentUser } from '@nextcloud/auth'\nimport { generateOcsUrl } from '@nextcloud/router'\nimport { confirmPassword } from '@nextcloud/password-confirmation'\nimport '@nextcloud/password-confirmation/dist/style.css'\n\nimport { ACCOUNT_PROPERTY_ENUM, SCOPE_SUFFIX } from '../../constants/AccountPropertyConstants.js'\n\n/**\n * Save the primary email of the user\n *\n * @param {string} email the primary email\n * @return {object}\n */\nexport const savePrimaryEmail = async (email) => {\n\tconst userId = getCurrentUser().uid\n\tconst url = generateOcsUrl('cloud/users/{userId}', { userId })\n\n\tawait confirmPassword()\n\n\tconst res = await axios.put(url, {\n\t\tkey: ACCOUNT_PROPERTY_ENUM.EMAIL,\n\t\tvalue: email,\n\t})\n\n\treturn res.data\n}\n\n/**\n * Save an additional email of the user\n *\n * Will be appended to the user's additional emails*\n *\n * @param {string} email the additional email\n * @return {object}\n */\nexport const saveAdditionalEmail = async (email) => {\n\tconst userId = getCurrentUser().uid\n\tconst url = generateOcsUrl('cloud/users/{userId}', { userId })\n\n\tawait confirmPassword()\n\n\tconst res = await axios.put(url, {\n\t\tkey: ACCOUNT_PROPERTY_ENUM.EMAIL_COLLECTION,\n\t\tvalue: email,\n\t})\n\n\treturn res.data\n}\n\n/**\n * Save the notification email of the user\n *\n * @param {string} email the notification email\n * @return {object}\n */\nexport const saveNotificationEmail = async (email) => {\n\tconst userId = getCurrentUser().uid\n\tconst url = generateOcsUrl('cloud/users/{userId}', { userId })\n\n\tawait confirmPassword()\n\n\tconst res = await axios.put(url, {\n\t\tkey: ACCOUNT_PROPERTY_ENUM.NOTIFICATION_EMAIL,\n\t\tvalue: email,\n\t})\n\n\treturn res.data\n}\n\n/**\n * Remove an additional email of the user\n *\n * @param {string} email the additional email\n * @return {object}\n */\nexport const removeAdditionalEmail = async (email) => {\n\tconst userId = getCurrentUser().uid\n\tconst url = generateOcsUrl('cloud/users/{userId}/{collection}', { userId, collection: ACCOUNT_PROPERTY_ENUM.EMAIL_COLLECTION })\n\n\tawait confirmPassword()\n\n\tconst res = await axios.put(url, {\n\t\tkey: email,\n\t\tvalue: '',\n\t})\n\n\treturn res.data\n}\n\n/**\n * Update an additional email of the user\n *\n * @param {string} prevEmail the additional email to be updated\n * @param {string} newEmail the new additional email\n * @return {object}\n */\nexport const updateAdditionalEmail = async (prevEmail, newEmail) => {\n\tconst userId = getCurrentUser().uid\n\tconst url = generateOcsUrl('cloud/users/{userId}/{collection}', { userId, collection: ACCOUNT_PROPERTY_ENUM.EMAIL_COLLECTION })\n\n\tawait confirmPassword()\n\n\tconst res = await axios.put(url, {\n\t\tkey: prevEmail,\n\t\tvalue: newEmail,\n\t})\n\n\treturn res.data\n}\n\n/**\n * Save the federation scope for the additional email of the user\n *\n * @param {string} email the additional email\n * @param {string} scope the federation scope\n * @return {object}\n */\nexport const saveAdditionalEmailScope = async (email, scope) => {\n\tconst userId = getCurrentUser().uid\n\tconst url = generateOcsUrl('cloud/users/{userId}/{collectionScope}', { userId, collectionScope: `${ACCOUNT_PROPERTY_ENUM.EMAIL_COLLECTION}${SCOPE_SUFFIX}` })\n\n\tawait confirmPassword()\n\n\tconst res = await axios.put(url, {\n\t\tkey: email,\n\t\tvalue: scope,\n\t})\n\n\treturn res.data\n}\n","/**\n * @copyright 2021, Christopher Ng <chrng8@gmail.com>\n *\n * @author Christopher Ng <chrng8@gmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\n/*\n * Frontend validators, less strict than backend validators\n *\n * TODO add nice validation errors for Profile page settings modal\n */\n\nimport { VALIDATE_EMAIL_REGEX } from '../constants/AccountPropertyConstants.js'\n\n/**\n * Validate the email input\n *\n * Compliant with PHP core FILTER_VALIDATE_EMAIL validator*\n *\n * Reference implementation https://github.com/mpyw/FILTER_VALIDATE_EMAIL.js/blob/71e62ca48841d2246a1b531e7e84f5a01f15e615/src/index.ts*\n *\n * @param {string} input the input\n * @return {boolean}\n */\nexport function validateEmail(input) {\n\treturn typeof input === 'string'\n\t\t&& VALIDATE_EMAIL_REGEX.test(input)\n\t\t&& input.slice(-1) !== '\\n'\n\t\t&& input.length <= 320\n\t\t&& encodeURIComponent(input).replace(/%../g, 'x').length <= 320\n}\n\n/**\n * Validate the URL input\n *\n * @param {string} input the input\n * @return {boolean}\n */\nexport function validateUrl(input) {\n\ttry {\n\t\t// eslint-disable-next-line no-new\n\t\tnew URL(input)\n\t\treturn true\n\t} catch (e) {\n\t\treturn false\n\t}\n}\n\n/**\n * Validate the language input\n *\n * @param {object} input the input\n * @return {boolean}\n */\nexport function validateLanguage(input) {\n\treturn input.code !== ''\n\t\t&& input.name !== ''\n\t\t&& input.name !== undefined\n}\n\n/**\n * Validate the locale input\n *\n * @param {object} input the input\n * @return {boolean}\n */\nexport function validateLocale(input) {\n\treturn input.code !== ''\n\t\t&& input.name !== ''\n\t\t&& input.name !== undefined\n}\n\n/**\n * Validate boolean input\n *\n * @param {boolean} input the input\n * @return {boolean}\n */\nexport function validateBoolean(input) {\n\treturn typeof input === 'boolean'\n}\n","<!--\n\t- @copyright 2021, Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @author Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @license GNU AGPL version 3 or any later version\n\t-\n\t- This program is free software: you can redistribute it and/or modify\n\t- it under the terms of the GNU Affero General Public License as\n\t- published by the Free Software Foundation, either version 3 of the\n\t- License, or (at your option) any later version.\n\t-\n\t- This program is distributed in the hope that it will be useful,\n\t- but WITHOUT ANY WARRANTY; without even the implied warranty of\n\t- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\t- GNU Affero General Public License for more details.\n\t-\n\t- You should have received a copy of the GNU Affero General Public License\n\t- along with this program. If not, see <http://www.gnu.org/licenses/>.\n\t-\n-->\n\n<template>\n\t<div>\n\t\t<div class=\"email\">\n\t\t\t<input :id=\"inputIdWithDefault\"\n\t\t\t\tref=\"email\"\n\t\t\t\ttype=\"email\"\n\t\t\t\tautocomplete=\"email\"\n\t\t\t\t:aria-label=\"inputPlaceholder\"\n\t\t\t\t:placeholder=\"inputPlaceholder\"\n\t\t\t\t:value=\"email\"\n\t\t\t\t:aria-describedby=\"helperText ? `${inputIdWithDefault}-helper-text` : undefined\"\n\t\t\t\tautocapitalize=\"none\"\n\t\t\t\tspellcheck=\"false\"\n\t\t\t\t@input=\"onEmailChange\">\n\n\t\t\t<div class=\"email__actions-container\">\n\t\t\t\t<transition name=\"fade\">\n\t\t\t\t\t<Check v-if=\"showCheckmarkIcon\" :size=\"20\" />\n\t\t\t\t\t<AlertOctagon v-else-if=\"showErrorIcon\" :size=\"20\" />\n\t\t\t\t</transition>\n\n\t\t\t\t<template v-if=\"!primary\">\n\t\t\t\t\t<FederationControl :readable=\"propertyReadable\"\n\t\t\t\t\t\t:additional=\"true\"\n\t\t\t\t\t\t:additional-value=\"email\"\n\t\t\t\t\t\t:disabled=\"federationDisabled\"\n\t\t\t\t\t\t:handle-additional-scope-change=\"saveAdditionalEmailScope\"\n\t\t\t\t\t\t:scope.sync=\"localScope\"\n\t\t\t\t\t\t@update:scope=\"onScopeChange\" />\n\t\t\t\t</template>\n\n\t\t\t\t<NcActions class=\"email__actions\"\n\t\t\t\t\t:aria-label=\"t('settings', 'Email options')\"\n\t\t\t\t\t:force-menu=\"true\">\n\t\t\t\t\t<NcActionButton :aria-label=\"deleteEmailLabel\"\n\t\t\t\t\t\t:close-after-click=\"true\"\n\t\t\t\t\t\t:disabled=\"deleteDisabled\"\n\t\t\t\t\t\ticon=\"icon-delete\"\n\t\t\t\t\t\t@click.stop.prevent=\"deleteEmail\">\n\t\t\t\t\t\t{{ deleteEmailLabel }}\n\t\t\t\t\t</NcActionButton>\n\t\t\t\t\t<NcActionButton v-if=\"!primary || !isNotificationEmail\"\n\t\t\t\t\t\t:aria-label=\"setNotificationMailLabel\"\n\t\t\t\t\t\t:close-after-click=\"true\"\n\t\t\t\t\t\t:disabled=\"setNotificationMailDisabled\"\n\t\t\t\t\t\ticon=\"icon-favorite\"\n\t\t\t\t\t\t@click.stop.prevent=\"setNotificationMail\">\n\t\t\t\t\t\t{{ setNotificationMailLabel }}\n\t\t\t\t\t</NcActionButton>\n\t\t\t\t</NcActions>\n\t\t\t</div>\n\t\t</div>\n\n\t\t<p v-if=\"helperText\"\n\t\t\t:id=\"`${inputIdWithDefault}-helper-text`\"\n\t\t\tclass=\"email__helper-text-message email__helper-text-message--error\">\n\t\t\t<AlertCircle class=\"email__helper-text-message__icon\" :size=\"18\" />\n\t\t\t{{ helperText }}\n\t\t</p>\n\n\t\t<em v-if=\"isNotificationEmail\">\n\t\t\t{{ t('settings', 'Primary email for password reset and notifications') }}\n\t\t</em>\n\t</div>\n</template>\n\n<script>\nimport NcActions from '@nextcloud/vue/dist/Components/NcActions.js'\nimport NcActionButton from '@nextcloud/vue/dist/Components/NcActionButton.js'\nimport AlertCircle from 'vue-material-design-icons/AlertCircleOutline.vue'\nimport AlertOctagon from 'vue-material-design-icons/AlertOctagon.vue'\nimport Check from 'vue-material-design-icons/Check.vue'\nimport debounce from 'debounce'\n\nimport FederationControl from '../shared/FederationControl.vue'\nimport { handleError } from '../../../utils/handlers.js'\n\nimport { ACCOUNT_PROPERTY_READABLE_ENUM, VERIFICATION_ENUM } from '../../../constants/AccountPropertyConstants.js'\nimport {\n\tremoveAdditionalEmail,\n\tsaveAdditionalEmail,\n\tsaveAdditionalEmailScope,\n\tsaveNotificationEmail,\n\tsavePrimaryEmail,\n\tupdateAdditionalEmail,\n} from '../../../service/PersonalInfo/EmailService.js'\nimport { validateEmail } from '../../../utils/validate.js'\n\nexport default {\n\tname: 'Email',\n\n\tcomponents: {\n\t\tNcActions,\n\t\tNcActionButton,\n\t\tAlertCircle,\n\t\tAlertOctagon,\n\t\tCheck,\n\t\tFederationControl,\n\t},\n\n\tprops: {\n\t\temail: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t\tindex: {\n\t\t\ttype: Number,\n\t\t\tdefault: 0,\n\t\t},\n\t\tprimary: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t\tscope: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t\tactiveNotificationEmail: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\t\tlocalVerificationState: {\n\t\t\ttype: Number,\n\t\t\tdefault: VERIFICATION_ENUM.NOT_VERIFIED,\n\t\t},\n\t\tinputId: {\n\t\t\ttype: String,\n\t\t\trequired: false,\n\t\t\tdefault: '',\n\t\t},\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tpropertyReadable: ACCOUNT_PROPERTY_READABLE_ENUM.EMAIL,\n\t\t\tinitialEmail: this.email,\n\t\t\tlocalScope: this.scope,\n\t\t\tsaveAdditionalEmailScope,\n\t\t\thelperText: null,\n\t\t\tshowCheckmarkIcon: false,\n\t\t\tshowErrorIcon: false,\n\t\t}\n\t},\n\n\tcomputed: {\n\t\tdeleteDisabled() {\n\t\t\tif (this.primary) {\n\t\t\t\t// Disable for empty primary email as there is nothing to delete\n\t\t\t\t// OR when initialEmail (reflects server state) and email (current input) are not the same\n\t\t\t\treturn this.email === '' || this.initialEmail !== this.email\n\t\t\t} else if (this.initialEmail !== '') {\n\t\t\t\treturn this.initialEmail !== this.email\n\t\t\t}\n\t\t\treturn false\n\t\t},\n\n\t\tdeleteEmailLabel() {\n\t\t\tif (this.primary) {\n\t\t\t\treturn t('settings', 'Remove primary email')\n\t\t\t}\n\t\t\treturn t('settings', 'Delete email')\n\t\t},\n\n\t setNotificationMailDisabled() {\n\t\t\treturn !this.primary && this.localVerificationState !== VERIFICATION_ENUM.VERIFIED\n\t\t},\n\n\t setNotificationMailLabel() {\n\t\t\tif (this.isNotificationEmail) {\n\t\t\t\treturn t('settings', 'Unset as primary email')\n\t\t\t} else if (!this.primary && this.localVerificationState !== VERIFICATION_ENUM.VERIFIED) {\n\t\t\t\treturn t('settings', 'This address is not confirmed')\n\t\t\t}\n\t\t\treturn t('settings', 'Set as primary email')\n\t\t},\n\n\t\tfederationDisabled() {\n\t\t\treturn !this.initialEmail\n\t\t},\n\n\t\tinputIdWithDefault() {\n\t\t\treturn this.inputId || `account-property-email--${this.index}`\n\t\t},\n\n\t\tinputPlaceholder() {\n\t\t\t// Primary email has implicit linked <label>\n\t\t\treturn !this.primary ? t('settings', 'Additional email address {index}', { index: this.index + 1 }) : undefined\n\t\t},\n\n\t\tisNotificationEmail() {\n\t\t\treturn (this.email && this.email === this.activeNotificationEmail)\n\t\t\t\t|| (this.primary && this.activeNotificationEmail === '')\n\t\t},\n\t},\n\n\tmounted() {\n\t\tif (!this.primary && this.initialEmail === '') {\n\t\t\t// $nextTick is needed here, otherwise it may not always work https://stackoverflow.com/questions/51922767/autofocus-input-on-mount-vue-ios/63485725#63485725\n\t\t\tthis.$nextTick(() => this.$refs.email?.focus())\n\t\t}\n\t},\n\n\tmethods: {\n\t\tonEmailChange(e) {\n\t\t\tthis.$emit('update:email', e.target.value)\n\t\t\tthis.debounceEmailChange(e.target.value.trim())\n\t\t},\n\n\t\tdebounceEmailChange: debounce(async function(email) {\n\t\t\tthis.helperText = null\n\t\t\tif (this.$refs.email?.validationMessage) {\n\t\t\t\tthis.helperText = this.$refs.email.validationMessage\n\t\t\t\treturn\n\t\t\t}\n\t\t\tif (validateEmail(email) || email === '') {\n\t\t\t\tif (this.primary) {\n\t\t\t\t\tawait this.updatePrimaryEmail(email)\n\t\t\t\t} else {\n\t\t\t\t\tif (email) {\n\t\t\t\t\t\tif (this.initialEmail === '') {\n\t\t\t\t\t\t\tawait this.addAdditionalEmail(email)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tawait this.updateAdditionalEmail(email)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}, 500),\n\n\t\tasync deleteEmail() {\n\t\t\tif (this.primary) {\n\t\t\t\tthis.$emit('update:email', '')\n\t\t\t\tawait this.updatePrimaryEmail('')\n\t\t\t} else {\n\t\t\t\tawait this.deleteAdditionalEmail()\n\t\t\t}\n\t\t},\n\n\t\tasync updatePrimaryEmail(email) {\n\t\t\ttry {\n\t\t\t\tconst responseData = await savePrimaryEmail(email)\n\t\t\t\tthis.handleResponse({\n\t\t\t\t\temail,\n\t\t\t\t\tstatus: responseData.ocs?.meta?.status,\n\t\t\t\t})\n\t\t\t} catch (e) {\n\t\t\t\tif (email === '') {\n\t\t\t\t\tthis.handleResponse({\n\t\t\t\t\t\terrorMessage: t('settings', 'Unable to delete primary email address'),\n\t\t\t\t\t\terror: e,\n\t\t\t\t\t})\n\t\t\t\t} else {\n\t\t\t\t\tthis.handleResponse({\n\t\t\t\t\t\terrorMessage: t('settings', 'Unable to update primary email address'),\n\t\t\t\t\t\terror: e,\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\tasync addAdditionalEmail(email) {\n\t\t\ttry {\n\t\t\t\tconst responseData = await saveAdditionalEmail(email)\n\t\t\t\tthis.handleResponse({\n\t\t\t\t\temail,\n\t\t\t\t\tstatus: responseData.ocs?.meta?.status,\n\t\t\t\t})\n\t\t\t} catch (e) {\n\t\t\t\tthis.handleResponse({\n\t\t\t\t\terrorMessage: t('settings', 'Unable to add additional email address'),\n\t\t\t\t\terror: e,\n\t\t\t\t})\n\t\t\t}\n\t\t},\n\n\t\tasync setNotificationMail() {\n\t\t try {\n\t\t\t const newNotificationMailValue = (this.primary || this.isNotificationEmail) ? '' : this.initialEmail\n\t\t\t const responseData = await saveNotificationEmail(newNotificationMailValue)\n\t\t\t this.handleResponse({\n\t\t\t\t notificationEmail: newNotificationMailValue,\n\t\t\t\t status: responseData.ocs?.meta?.status,\n\t\t\t })\n\t\t } catch (e) {\n\t\t\t this.handleResponse({\n\t\t\t\t errorMessage: 'Unable to choose this email for notifications',\n\t\t\t\t error: e,\n\t\t\t })\n\t\t }\n\t\t},\n\n\t\tasync updateAdditionalEmail(email) {\n\t\t\ttry {\n\t\t\t\tconst responseData = await updateAdditionalEmail(this.initialEmail, email)\n\t\t\t\tthis.handleResponse({\n\t\t\t\t\temail,\n\t\t\t\t\tstatus: responseData.ocs?.meta?.status,\n\t\t\t\t})\n\t\t\t} catch (e) {\n\t\t\t\tthis.handleResponse({\n\t\t\t\t\terrorMessage: t('settings', 'Unable to update additional email address'),\n\t\t\t\t\terror: e,\n\t\t\t\t})\n\t\t\t}\n\t\t},\n\n\t\tasync deleteAdditionalEmail() {\n\t\t\ttry {\n\t\t\t\tconst responseData = await removeAdditionalEmail(this.initialEmail)\n\t\t\t\tthis.handleDeleteAdditionalEmail(responseData.ocs?.meta?.status)\n\t\t\t} catch (e) {\n\t\t\t\tthis.handleResponse({\n\t\t\t\t\terrorMessage: t('settings', 'Unable to delete additional email address'),\n\t\t\t\t\terror: e,\n\t\t\t\t})\n\t\t\t}\n\t\t},\n\n\t\thandleDeleteAdditionalEmail(status) {\n\t\t\tif (status === 'ok') {\n\t\t\t\tthis.$emit('delete-additional-email')\n\t\t\t} else {\n\t\t\t\tthis.handleResponse({\n\t\t\t\t\terrorMessage: t('settings', 'Unable to delete additional email address'),\n\t\t\t\t})\n\t\t\t}\n\t\t},\n\n\t\thandleResponse({ email, notificationEmail, status, errorMessage, error }) {\n\t\t\tif (status === 'ok') {\n\t\t\t\t// Ensure that local state reflects server state\n\t\t\t\tif (email) {\n\t\t\t\t\tthis.initialEmail = email\n\t\t\t\t} else if (notificationEmail !== undefined) {\n\t\t\t\t\tthis.$emit('update:notification-email', notificationEmail)\n\t\t\t\t}\n\t\t\t\tthis.showCheckmarkIcon = true\n\t\t\t\tsetTimeout(() => { this.showCheckmarkIcon = false }, 2000)\n\t\t\t} else {\n\t\t\t\thandleError(error, errorMessage)\n\t\t\t\tthis.showErrorIcon = true\n\t\t\t\tsetTimeout(() => { this.showErrorIcon = false }, 2000)\n\t\t\t}\n\t\t},\n\n\t\tonScopeChange(scope) {\n\t\t\tthis.$emit('update:scope', scope)\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.email {\n\tdisplay: grid;\n\talign-items: center;\n\n\tinput {\n\t\tgrid-area: 1 / 1;\n\t\twidth: 100%;\n\t}\n\n\t.email__actions-container {\n\t\tgrid-area: 1 / 1;\n\t\tjustify-self: flex-end;\n\t\theight: 30px;\n\n\t\tdisplay: flex;\n\t\tgap: 0 2px;\n\t\tmargin-right: 5px;\n\n\t\t.email__actions {\n\t\t\t&:hover,\n\t\t\t&:focus,\n\t\t\t&:active {\n\t\t\t\topacity: 0.8 !important;\n\t\t\t}\n\n\t\t\t&::v-deep button {\n\t\t\t\theight: 30px !important;\n\t\t\t\tmin-height: 30px !important;\n\t\t\t\twidth: 30px !important;\n\t\t\t\tmin-width: 30px !important;\n\t\t\t}\n\t\t}\n\t}\n\n\t&__helper-text-message {\n\t\tpadding: 4px 0;\n\t\tdisplay: flex;\n\t\talign-items: center;\n\n\t\t&__icon {\n\t\t\tmargin-right: 8px;\n\t\t\talign-self: start;\n\t\t\tmargin-top: 4px;\n\t\t}\n\n\t\t&--error {\n\t\t\tcolor: var(--color-error);\n\t\t}\n\t}\n}\n\n.fade-enter,\n.fade-leave-to {\n\topacity: 0;\n}\n\n.fade-enter-active {\n\ttransition: opacity 200ms ease-out;\n}\n\n.fade-leave-active {\n\ttransition: opacity 300ms ease-out;\n}\n</style>\n","import mod from \"-!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Email.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Email.vue?vue&type=script&lang=js\"","\n import API from \"!../../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../../node_modules/css-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Email.vue?vue&type=style&index=0&id=60546b46&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../../node_modules/css-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Email.vue?vue&type=style&index=0&id=60546b46&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./Email.vue?vue&type=template&id=60546b46&scoped=true\"\nimport script from \"./Email.vue?vue&type=script&lang=js\"\nexport * from \"./Email.vue?vue&type=script&lang=js\"\nimport style0 from \"./Email.vue?vue&type=style&index=0&id=60546b46&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"60546b46\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[_c('div',{staticClass:\"email\"},[_c('input',{ref:\"email\",attrs:{\"id\":_vm.inputIdWithDefault,\"type\":\"email\",\"autocomplete\":\"email\",\"aria-label\":_vm.inputPlaceholder,\"placeholder\":_vm.inputPlaceholder,\"aria-describedby\":_vm.helperText ? `${_vm.inputIdWithDefault}-helper-text` : undefined,\"autocapitalize\":\"none\",\"spellcheck\":\"false\"},domProps:{\"value\":_vm.email},on:{\"input\":_vm.onEmailChange}}),_vm._v(\" \"),_c('div',{staticClass:\"email__actions-container\"},[_c('transition',{attrs:{\"name\":\"fade\"}},[(_vm.showCheckmarkIcon)?_c('Check',{attrs:{\"size\":20}}):(_vm.showErrorIcon)?_c('AlertOctagon',{attrs:{\"size\":20}}):_vm._e()],1),_vm._v(\" \"),(!_vm.primary)?[_c('FederationControl',{attrs:{\"readable\":_vm.propertyReadable,\"additional\":true,\"additional-value\":_vm.email,\"disabled\":_vm.federationDisabled,\"handle-additional-scope-change\":_vm.saveAdditionalEmailScope,\"scope\":_vm.localScope},on:{\"update:scope\":[function($event){_vm.localScope=$event},_vm.onScopeChange]}})]:_vm._e(),_vm._v(\" \"),_c('NcActions',{staticClass:\"email__actions\",attrs:{\"aria-label\":_vm.t('settings', 'Email options'),\"force-menu\":true}},[_c('NcActionButton',{attrs:{\"aria-label\":_vm.deleteEmailLabel,\"close-after-click\":true,\"disabled\":_vm.deleteDisabled,\"icon\":\"icon-delete\"},on:{\"click\":function($event){$event.stopPropagation();$event.preventDefault();return _vm.deleteEmail.apply(null, arguments)}}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.deleteEmailLabel)+\"\\n\\t\\t\\t\\t\")]),_vm._v(\" \"),(!_vm.primary || !_vm.isNotificationEmail)?_c('NcActionButton',{attrs:{\"aria-label\":_vm.setNotificationMailLabel,\"close-after-click\":true,\"disabled\":_vm.setNotificationMailDisabled,\"icon\":\"icon-favorite\"},on:{\"click\":function($event){$event.stopPropagation();$event.preventDefault();return _vm.setNotificationMail.apply(null, arguments)}}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.setNotificationMailLabel)+\"\\n\\t\\t\\t\\t\")]):_vm._e()],1)],2)]),_vm._v(\" \"),(_vm.helperText)?_c('p',{staticClass:\"email__helper-text-message email__helper-text-message--error\",attrs:{\"id\":`${_vm.inputIdWithDefault}-helper-text`}},[_c('AlertCircle',{staticClass:\"email__helper-text-message__icon\",attrs:{\"size\":18}}),_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.helperText)+\"\\n\\t\")],1):_vm._e(),_vm._v(\" \"),(_vm.isNotificationEmail)?_c('em',[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('settings', 'Primary email for password reset and notifications'))+\"\\n\\t\")]):_vm._e()])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n\t- @copyright 2021, Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @author Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @license GNU AGPL version 3 or any later version\n\t-\n\t- This program is free software: you can redistribute it and/or modify\n\t- it under the terms of the GNU Affero General Public License as\n\t- published by the Free Software Foundation, either version 3 of the\n\t- License, or (at your option) any later version.\n\t-\n\t- This program is distributed in the hope that it will be useful,\n\t- but WITHOUT ANY WARRANTY; without even the implied warranty of\n\t- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\t- GNU Affero General Public License for more details.\n\t-\n\t- You should have received a copy of the GNU Affero General Public License\n\t- along with this program. If not, see <http://www.gnu.org/licenses/>.\n\t-\n-->\n\n<template>\n\t<section>\n\t\t<HeaderBar :input-id=\"inputId\"\n\t\t\t:readable=\"primaryEmail.readable\"\n\t\t\t:is-editable=\"true\"\n\t\t\t:is-multi-value-supported=\"true\"\n\t\t\t:is-valid-section=\"isValidSection\"\n\t\t\t:scope.sync=\"primaryEmail.scope\"\n\t\t\t@add-additional=\"onAddAdditionalEmail\" />\n\n\t\t<template v-if=\"displayNameChangeSupported\">\n\t\t\t<Email :input-id=\"inputId\"\n\t\t\t\t:primary=\"true\"\n\t\t\t\t:scope.sync=\"primaryEmail.scope\"\n\t\t\t\t:email.sync=\"primaryEmail.value\"\n\t\t\t\t:active-notification-email.sync=\"notificationEmail\"\n\t\t\t\t@update:email=\"onUpdateEmail\"\n\t\t\t\t@update:notification-email=\"onUpdateNotificationEmail\" />\n\t\t</template>\n\n\t\t<span v-else>\n\t\t\t{{ primaryEmail.value || t('settings', 'No email address set') }}\n\t\t</span>\n\n\t\t<template v-if=\"additionalEmails.length\">\n\t\t\t<em class=\"additional-emails-label\">{{ t('settings', 'Additional emails') }}</em>\n\t\t\t<!-- TODO use unique key for additional email when uniqueness can be guaranteed, see https://github.com/nextcloud/server/issues/26866 -->\n\t\t\t<Email v-for=\"(additionalEmail, index) in additionalEmails\"\n\t\t\t\t:key=\"additionalEmail.key\"\n\t\t\t\t:index=\"index\"\n\t\t\t\t:scope.sync=\"additionalEmail.scope\"\n\t\t\t\t:email.sync=\"additionalEmail.value\"\n\t\t\t\t:local-verification-state=\"parseInt(additionalEmail.locallyVerified, 10)\"\n\t\t\t\t:active-notification-email.sync=\"notificationEmail\"\n\t\t\t\t@update:email=\"onUpdateEmail\"\n\t\t\t\t@update:notification-email=\"onUpdateNotificationEmail\"\n\t\t\t\t@delete-additional-email=\"onDeleteAdditionalEmail(index)\" />\n\t\t</template>\n\t</section>\n</template>\n\n<script>\nimport { loadState } from '@nextcloud/initial-state'\n\nimport Email from './Email.vue'\nimport HeaderBar from '../shared/HeaderBar.vue'\n\nimport { ACCOUNT_PROPERTY_READABLE_ENUM, DEFAULT_ADDITIONAL_EMAIL_SCOPE, NAME_READABLE_ENUM } from '../../../constants/AccountPropertyConstants.js'\nimport { savePrimaryEmail, removeAdditionalEmail } from '../../../service/PersonalInfo/EmailService.js'\nimport { validateEmail } from '../../../utils/validate.js'\nimport { handleError } from '../../../utils/handlers.js'\n\nconst { emailMap: { additionalEmails, primaryEmail, notificationEmail } } = loadState('settings', 'personalInfoParameters', {})\nconst { displayNameChangeSupported } = loadState('settings', 'accountParameters', {})\n\nexport default {\n\tname: 'EmailSection',\n\n\tcomponents: {\n\t\tHeaderBar,\n\t\tEmail,\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\taccountProperty: ACCOUNT_PROPERTY_READABLE_ENUM.EMAIL,\n\t\t\tadditionalEmails: additionalEmails.map(properties => ({ ...properties, key: this.generateUniqueKey() })),\n\t\t\tdisplayNameChangeSupported,\n\t\t\tprimaryEmail: { ...primaryEmail, readable: NAME_READABLE_ENUM[primaryEmail.name] },\n\t\t\tnotificationEmail,\n\t\t}\n\t},\n\n\tcomputed: {\n\t\tfirstAdditionalEmail() {\n\t\t\tif (this.additionalEmails.length) {\n\t\t\t\treturn this.additionalEmails[0].value\n\t\t\t}\n\t\t\treturn null\n\t\t},\n\n\t\tinputId() {\n\t\t\treturn `account-property-${this.primaryEmail.name}`\n\t\t},\n\n\t\tisValidSection() {\n\t\t\treturn validateEmail(this.primaryEmail.value)\n\t\t\t\t&& this.additionalEmails.map(({ value }) => value).every(validateEmail)\n\t\t},\n\n\t\tprimaryEmailValue: {\n\t\t\tget() {\n\t\t\t\treturn this.primaryEmail.value\n\t\t\t},\n\t\t\tset(value) {\n\t\t\t\tthis.primaryEmail.value = value\n\t\t\t},\n\t\t},\n\t},\n\n\tmethods: {\n\t\tonAddAdditionalEmail() {\n\t\t\tif (this.isValidSection) {\n\t\t\t\tthis.additionalEmails.push({ value: '', scope: DEFAULT_ADDITIONAL_EMAIL_SCOPE, key: this.generateUniqueKey() })\n\t\t\t}\n\t\t},\n\n\t\tonDeleteAdditionalEmail(index) {\n\t\t\tthis.$delete(this.additionalEmails, index)\n\t\t},\n\n\t\tasync onUpdateEmail() {\n\t\t\tif (this.primaryEmailValue === '' && this.firstAdditionalEmail) {\n\t\t\t\tconst deletedEmail = this.firstAdditionalEmail\n\t\t\t\tawait this.deleteFirstAdditionalEmail()\n\t\t\t\tthis.primaryEmailValue = deletedEmail\n\t\t\t\tawait this.updatePrimaryEmail()\n\t\t\t}\n\t\t},\n\n\t\tasync onUpdateNotificationEmail(email) {\n\t\t\tthis.notificationEmail = email\n\t\t},\n\n\t\tasync updatePrimaryEmail() {\n\t\t\ttry {\n\t\t\t\tconst responseData = await savePrimaryEmail(this.primaryEmailValue)\n\t\t\t\tthis.handleResponse(responseData.ocs?.meta?.status)\n\t\t\t} catch (e) {\n\t\t\t\tthis.handleResponse(\n\t\t\t\t\t'error',\n\t\t\t\t\tt('settings', 'Unable to update primary email address'),\n\t\t\t\t\te,\n\t\t\t\t)\n\t\t\t}\n\t\t},\n\n\t\tasync deleteFirstAdditionalEmail() {\n\t\t\ttry {\n\t\t\t\tconst responseData = await removeAdditionalEmail(this.firstAdditionalEmail)\n\t\t\t\tthis.handleDeleteFirstAdditionalEmail(responseData.ocs?.meta?.status)\n\t\t\t} catch (e) {\n\t\t\t\tthis.handleResponse(\n\t\t\t\t\t'error',\n\t\t\t\t\tt('settings', 'Unable to delete additional email address'),\n\t\t\t\t\te,\n\t\t\t\t)\n\t\t\t}\n\t\t},\n\n\t\thandleDeleteFirstAdditionalEmail(status) {\n\t\t\tif (status === 'ok') {\n\t\t\t\tthis.$delete(this.additionalEmails, 0)\n\t\t\t} else {\n\t\t\t\tthis.handleResponse(\n\t\t\t\t\t'error',\n\t\t\t\t\tt('settings', 'Unable to delete additional email address'),\n\t\t\t\t\t{},\n\t\t\t\t)\n\t\t\t}\n\t\t},\n\n\t\thandleResponse(status, errorMessage, error) {\n\t\t\tif (status !== 'ok') {\n\t\t\t\thandleError(error, errorMessage)\n\t\t\t}\n\t\t},\n\n\t\tgenerateUniqueKey() {\n\t\t\treturn Math.random().toString(36).substring(2)\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\nsection {\n\tpadding: 10px 10px;\n\n\t&::v-deep button:disabled {\n\t\tcursor: default;\n\t}\n\n\t.additional-emails-label {\n\t\tdisplay: block;\n\t\tmargin-top: 16px;\n\t}\n}\n</style>\n","import mod from \"-!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EmailSection.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EmailSection.vue?vue&type=script&lang=js\"","\n import API from \"!../../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../../node_modules/css-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EmailSection.vue?vue&type=style&index=0&id=548961e2&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../../node_modules/css-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EmailSection.vue?vue&type=style&index=0&id=548961e2&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./EmailSection.vue?vue&type=template&id=548961e2&scoped=true\"\nimport script from \"./EmailSection.vue?vue&type=script&lang=js\"\nexport * from \"./EmailSection.vue?vue&type=script&lang=js\"\nimport style0 from \"./EmailSection.vue?vue&type=style&index=0&id=548961e2&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"548961e2\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('section',[_c('HeaderBar',{attrs:{\"input-id\":_vm.inputId,\"readable\":_vm.primaryEmail.readable,\"is-editable\":true,\"is-multi-value-supported\":true,\"is-valid-section\":_vm.isValidSection,\"scope\":_vm.primaryEmail.scope},on:{\"update:scope\":function($event){return _vm.$set(_vm.primaryEmail, \"scope\", $event)},\"add-additional\":_vm.onAddAdditionalEmail}}),_vm._v(\" \"),(_vm.displayNameChangeSupported)?[_c('Email',{attrs:{\"input-id\":_vm.inputId,\"primary\":true,\"scope\":_vm.primaryEmail.scope,\"email\":_vm.primaryEmail.value,\"active-notification-email\":_vm.notificationEmail},on:{\"update:scope\":function($event){return _vm.$set(_vm.primaryEmail, \"scope\", $event)},\"update:email\":[function($event){return _vm.$set(_vm.primaryEmail, \"value\", $event)},_vm.onUpdateEmail],\"update:activeNotificationEmail\":function($event){_vm.notificationEmail=$event},\"update:active-notification-email\":function($event){_vm.notificationEmail=$event},\"update:notification-email\":_vm.onUpdateNotificationEmail}})]:_c('span',[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.primaryEmail.value || _vm.t('settings', 'No email address set'))+\"\\n\\t\")]),_vm._v(\" \"),(_vm.additionalEmails.length)?[_c('em',{staticClass:\"additional-emails-label\"},[_vm._v(_vm._s(_vm.t('settings', 'Additional emails')))]),_vm._v(\" \"),_vm._l((_vm.additionalEmails),function(additionalEmail,index){return _c('Email',{key:additionalEmail.key,attrs:{\"index\":index,\"scope\":additionalEmail.scope,\"email\":additionalEmail.value,\"local-verification-state\":parseInt(additionalEmail.locallyVerified, 10),\"active-notification-email\":_vm.notificationEmail},on:{\"update:scope\":function($event){return _vm.$set(additionalEmail, \"scope\", $event)},\"update:email\":[function($event){return _vm.$set(additionalEmail, \"value\", $event)},_vm.onUpdateEmail],\"update:activeNotificationEmail\":function($event){_vm.notificationEmail=$event},\"update:active-notification-email\":function($event){_vm.notificationEmail=$event},\"update:notification-email\":_vm.onUpdateNotificationEmail,\"delete-additional-email\":function($event){return _vm.onDeleteAdditionalEmail(index)}}})})]:_vm._e()],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","// This file is a workaround for a bug in web browsers' \"native\"\n// ES6 importing system which is uncapable of importing \"*.json\" files.\n// https://github.com/catamphetamine/libphonenumber-js/issues/239\nexport default {\"version\":4,\"country_calling_codes\":{\"1\":[\"US\",\"AG\",\"AI\",\"AS\",\"BB\",\"BM\",\"BS\",\"CA\",\"DM\",\"DO\",\"GD\",\"GU\",\"JM\",\"KN\",\"KY\",\"LC\",\"MP\",\"MS\",\"PR\",\"SX\",\"TC\",\"TT\",\"VC\",\"VG\",\"VI\"],\"7\":[\"RU\",\"KZ\"],\"20\":[\"EG\"],\"27\":[\"ZA\"],\"30\":[\"GR\"],\"31\":[\"NL\"],\"32\":[\"BE\"],\"33\":[\"FR\"],\"34\":[\"ES\"],\"36\":[\"HU\"],\"39\":[\"IT\",\"VA\"],\"40\":[\"RO\"],\"41\":[\"CH\"],\"43\":[\"AT\"],\"44\":[\"GB\",\"GG\",\"IM\",\"JE\"],\"45\":[\"DK\"],\"46\":[\"SE\"],\"47\":[\"NO\",\"SJ\"],\"48\":[\"PL\"],\"49\":[\"DE\"],\"51\":[\"PE\"],\"52\":[\"MX\"],\"53\":[\"CU\"],\"54\":[\"AR\"],\"55\":[\"BR\"],\"56\":[\"CL\"],\"57\":[\"CO\"],\"58\":[\"VE\"],\"60\":[\"MY\"],\"61\":[\"AU\",\"CC\",\"CX\"],\"62\":[\"ID\"],\"63\":[\"PH\"],\"64\":[\"NZ\"],\"65\":[\"SG\"],\"66\":[\"TH\"],\"81\":[\"JP\"],\"82\":[\"KR\"],\"84\":[\"VN\"],\"86\":[\"CN\"],\"90\":[\"TR\"],\"91\":[\"IN\"],\"92\":[\"PK\"],\"93\":[\"AF\"],\"94\":[\"LK\"],\"95\":[\"MM\"],\"98\":[\"IR\"],\"211\":[\"SS\"],\"212\":[\"MA\",\"EH\"],\"213\":[\"DZ\"],\"216\":[\"TN\"],\"218\":[\"LY\"],\"220\":[\"GM\"],\"221\":[\"SN\"],\"222\":[\"MR\"],\"223\":[\"ML\"],\"224\":[\"GN\"],\"225\":[\"CI\"],\"226\":[\"BF\"],\"227\":[\"NE\"],\"228\":[\"TG\"],\"229\":[\"BJ\"],\"230\":[\"MU\"],\"231\":[\"LR\"],\"232\":[\"SL\"],\"233\":[\"GH\"],\"234\":[\"NG\"],\"235\":[\"TD\"],\"236\":[\"CF\"],\"237\":[\"CM\"],\"238\":[\"CV\"],\"239\":[\"ST\"],\"240\":[\"GQ\"],\"241\":[\"GA\"],\"242\":[\"CG\"],\"243\":[\"CD\"],\"244\":[\"AO\"],\"245\":[\"GW\"],\"246\":[\"IO\"],\"247\":[\"AC\"],\"248\":[\"SC\"],\"249\":[\"SD\"],\"250\":[\"RW\"],\"251\":[\"ET\"],\"252\":[\"SO\"],\"253\":[\"DJ\"],\"254\":[\"KE\"],\"255\":[\"TZ\"],\"256\":[\"UG\"],\"257\":[\"BI\"],\"258\":[\"MZ\"],\"260\":[\"ZM\"],\"261\":[\"MG\"],\"262\":[\"RE\",\"YT\"],\"263\":[\"ZW\"],\"264\":[\"NA\"],\"265\":[\"MW\"],\"266\":[\"LS\"],\"267\":[\"BW\"],\"268\":[\"SZ\"],\"269\":[\"KM\"],\"290\":[\"SH\",\"TA\"],\"291\":[\"ER\"],\"297\":[\"AW\"],\"298\":[\"FO\"],\"299\":[\"GL\"],\"350\":[\"GI\"],\"351\":[\"PT\"],\"352\":[\"LU\"],\"353\":[\"IE\"],\"354\":[\"IS\"],\"355\":[\"AL\"],\"356\":[\"MT\"],\"357\":[\"CY\"],\"358\":[\"FI\",\"AX\"],\"359\":[\"BG\"],\"370\":[\"LT\"],\"371\":[\"LV\"],\"372\":[\"EE\"],\"373\":[\"MD\"],\"374\":[\"AM\"],\"375\":[\"BY\"],\"376\":[\"AD\"],\"377\":[\"MC\"],\"378\":[\"SM\"],\"380\":[\"UA\"],\"381\":[\"RS\"],\"382\":[\"ME\"],\"383\":[\"XK\"],\"385\":[\"HR\"],\"386\":[\"SI\"],\"387\":[\"BA\"],\"389\":[\"MK\"],\"420\":[\"CZ\"],\"421\":[\"SK\"],\"423\":[\"LI\"],\"500\":[\"FK\"],\"501\":[\"BZ\"],\"502\":[\"GT\"],\"503\":[\"SV\"],\"504\":[\"HN\"],\"505\":[\"NI\"],\"506\":[\"CR\"],\"507\":[\"PA\"],\"508\":[\"PM\"],\"509\":[\"HT\"],\"590\":[\"GP\",\"BL\",\"MF\"],\"591\":[\"BO\"],\"592\":[\"GY\"],\"593\":[\"EC\"],\"594\":[\"GF\"],\"595\":[\"PY\"],\"596\":[\"MQ\"],\"597\":[\"SR\"],\"598\":[\"UY\"],\"599\":[\"CW\",\"BQ\"],\"670\":[\"TL\"],\"672\":[\"NF\"],\"673\":[\"BN\"],\"674\":[\"NR\"],\"675\":[\"PG\"],\"676\":[\"TO\"],\"677\":[\"SB\"],\"678\":[\"VU\"],\"679\":[\"FJ\"],\"680\":[\"PW\"],\"681\":[\"WF\"],\"682\":[\"CK\"],\"683\":[\"NU\"],\"685\":[\"WS\"],\"686\":[\"KI\"],\"687\":[\"NC\"],\"688\":[\"TV\"],\"689\":[\"PF\"],\"690\":[\"TK\"],\"691\":[\"FM\"],\"692\":[\"MH\"],\"850\":[\"KP\"],\"852\":[\"HK\"],\"853\":[\"MO\"],\"855\":[\"KH\"],\"856\":[\"LA\"],\"880\":[\"BD\"],\"886\":[\"TW\"],\"960\":[\"MV\"],\"961\":[\"LB\"],\"962\":[\"JO\"],\"963\":[\"SY\"],\"964\":[\"IQ\"],\"965\":[\"KW\"],\"966\":[\"SA\"],\"967\":[\"YE\"],\"968\":[\"OM\"],\"970\":[\"PS\"],\"971\":[\"AE\"],\"972\":[\"IL\"],\"973\":[\"BH\"],\"974\":[\"QA\"],\"975\":[\"BT\"],\"976\":[\"MN\"],\"977\":[\"NP\"],\"992\":[\"TJ\"],\"993\":[\"TM\"],\"994\":[\"AZ\"],\"995\":[\"GE\"],\"996\":[\"KG\"],\"998\":[\"UZ\"]},\"countries\":{\"AC\":[\"247\",\"00\",\"(?:[01589]\\\\d|[46])\\\\d{4}\",[5,6]],\"AD\":[\"376\",\"00\",\"(?:1|6\\\\d)\\\\d{7}|[135-9]\\\\d{5}\",[6,8,9],[[\"(\\\\d{3})(\\\\d{3})\",\"$1 $2\",[\"[135-9]\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"1\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"6\"]]]],\"AE\":[\"971\",\"00\",\"(?:[4-7]\\\\d|9[0-689])\\\\d{7}|800\\\\d{2,9}|[2-4679]\\\\d{7}\",[5,6,7,8,9,10,11,12],[[\"(\\\\d{3})(\\\\d{2,9})\",\"$1 $2\",[\"60|8\"]],[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[236]|[479][2-8]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d)(\\\\d{5})\",\"$1 $2 $3\",[\"[479]\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"5\"],\"0$1\"]],\"0\"],\"AF\":[\"93\",\"00\",\"[2-7]\\\\d{8}\",[9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[2-7]\"],\"0$1\"]],\"0\"],\"AG\":[\"1\",\"011\",\"(?:268|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"([457]\\\\d{6})$|1\",\"268$1\",0,\"268\"],\"AI\":[\"1\",\"011\",\"(?:264|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"([2457]\\\\d{6})$|1\",\"264$1\",0,\"264\"],\"AL\":[\"355\",\"00\",\"(?:700\\\\d\\\\d|900)\\\\d{3}|8\\\\d{5,7}|(?:[2-5]|6\\\\d)\\\\d{7}\",[6,7,8,9],[[\"(\\\\d{3})(\\\\d{3,4})\",\"$1 $2\",[\"80|9\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"4[2-6]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[2358][2-5]|4\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"[23578]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"6\"],\"0$1\"]],\"0\"],\"AM\":[\"374\",\"00\",\"(?:[1-489]\\\\d|55|60|77)\\\\d{6}\",[8],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"[89]0\"],\"0 $1\"],[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"2|3[12]\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"1|47\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"[3-9]\"],\"0$1\"]],\"0\"],\"AO\":[\"244\",\"00\",\"[29]\\\\d{8}\",[9],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[29]\"]]]],\"AR\":[\"54\",\"00\",\"(?:11|[89]\\\\d\\\\d)\\\\d{8}|[2368]\\\\d{9}\",[10,11],[[\"(\\\\d{4})(\\\\d{2})(\\\\d{4})\",\"$1 $2-$3\",[\"2(?:2[024-9]|3[0-59]|47|6[245]|9[02-8])|3(?:3[28]|4[03-9]|5[2-46-8]|7[1-578]|8[2-9])\",\"2(?:[23]02|6(?:[25]|4[6-8])|9(?:[02356]|4[02568]|72|8[23]))|3(?:3[28]|4(?:[04679]|3[5-8]|5[4-68]|8[2379])|5(?:[2467]|3[237]|8[2-5])|7[1-578]|8(?:[2469]|3[2578]|5[4-8]|7[36-8]|8[5-8]))|2(?:2[24-9]|3[1-59]|47)\",\"2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3[78]|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8[23])|7[1-578]|8(?:[2469]|3[278]|5[56][46]|86[3-6]))|2(?:2[24-9]|3[1-59]|47)|38(?:[58][78]|7[378])|3(?:4[35][56]|58[45]|8(?:[38]5|54|76))[4-6]\",\"2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3(?:5(?:4[0-25689]|[56])|[78])|58|8[2379])|5(?:[2467]|3[237]|8(?:[23]|4(?:[45]|60)|5(?:4[0-39]|5|64)))|7[1-578]|8(?:[2469]|3[278]|54(?:4|5[13-7]|6[89])|86[3-6]))|2(?:2[24-9]|3[1-59]|47)|38(?:[58][78]|7[378])|3(?:454|85[56])[46]|3(?:4(?:36|5[56])|8(?:[38]5|76))[4-6]\"],\"0$1\",1],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2-$3\",[\"1\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"[68]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2-$3\",[\"[23]\"],\"0$1\",1],[\"(\\\\d)(\\\\d{4})(\\\\d{2})(\\\\d{4})\",\"$2 15-$3-$4\",[\"9(?:2[2-469]|3[3-578])\",\"9(?:2(?:2[024-9]|3[0-59]|47|6[245]|9[02-8])|3(?:3[28]|4[03-9]|5[2-46-8]|7[1-578]|8[2-9]))\",\"9(?:2(?:[23]02|6(?:[25]|4[6-8])|9(?:[02356]|4[02568]|72|8[23]))|3(?:3[28]|4(?:[04679]|3[5-8]|5[4-68]|8[2379])|5(?:[2467]|3[237]|8[2-5])|7[1-578]|8(?:[2469]|3[2578]|5[4-8]|7[36-8]|8[5-8])))|92(?:2[24-9]|3[1-59]|47)\",\"9(?:2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3[78]|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8[23])|7[1-578]|8(?:[2469]|3[278]|5(?:[56][46]|[78])|7[378]|8(?:6[3-6]|[78]))))|92(?:2[24-9]|3[1-59]|47)|93(?:4[35][56]|58[45]|8(?:[38]5|54|76))[4-6]\",\"9(?:2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3(?:5(?:4[0-25689]|[56])|[78])|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8(?:[23]|4(?:[45]|60)|5(?:4[0-39]|5|64)))|7[1-578]|8(?:[2469]|3[278]|5(?:4(?:4|5[13-7]|6[89])|[56][46]|[78])|7[378]|8(?:6[3-6]|[78]))))|92(?:2[24-9]|3[1-59]|47)|93(?:4(?:36|5[56])|8(?:[38]5|76))[4-6]\"],\"0$1\",0,\"$1 $2 $3-$4\"],[\"(\\\\d)(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$2 15-$3-$4\",[\"91\"],\"0$1\",0,\"$1 $2 $3-$4\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{5})\",\"$1-$2-$3\",[\"8\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$2 15-$3-$4\",[\"9\"],\"0$1\",0,\"$1 $2 $3-$4\"]],\"0\",0,\"0?(?:(11|2(?:2(?:02?|[13]|2[13-79]|4[1-6]|5[2457]|6[124-8]|7[1-4]|8[13-6]|9[1267])|3(?:02?|1[467]|2[03-6]|3[13-8]|[49][2-6]|5[2-8]|[67])|4(?:7[3-578]|9)|6(?:[0136]|2[24-6]|4[6-8]?|5[15-8])|80|9(?:0[1-3]|[19]|2\\\\d|3[1-6]|4[02568]?|5[2-4]|6[2-46]|72?|8[23]?))|3(?:3(?:2[79]|6|8[2578])|4(?:0[0-24-9]|[12]|3[5-8]?|4[24-7]|5[4-68]?|6[02-9]|7[126]|8[2379]?|9[1-36-8])|5(?:1|2[1245]|3[237]?|4[1-46-9]|6[2-4]|7[1-6]|8[2-5]?)|6[24]|7(?:[069]|1[1568]|2[15]|3[145]|4[13]|5[14-8]|7[2-57]|8[126])|8(?:[01]|2[15-7]|3[2578]?|4[13-6]|5[4-8]?|6[1-357-9]|7[36-8]?|8[5-8]?|9[124])))15)?\",\"9$1\"],\"AS\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|684|900)\\\\d{7}\",[10],0,\"1\",0,\"([267]\\\\d{6})$|1\",\"684$1\",0,\"684\"],\"AT\":[\"43\",\"00\",\"1\\\\d{3,12}|2\\\\d{6,12}|43(?:(?:0\\\\d|5[02-9])\\\\d{3,9}|2\\\\d{4,5}|[3467]\\\\d{4}|8\\\\d{4,6}|9\\\\d{4,7})|5\\\\d{4,12}|8\\\\d{7,12}|9\\\\d{8,12}|(?:[367]\\\\d|4[0-24-9])\\\\d{4,11}\",[4,5,6,7,8,9,10,11,12,13],[[\"(\\\\d)(\\\\d{3,12})\",\"$1 $2\",[\"1(?:11|[2-9])\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})\",\"$1 $2\",[\"517\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3,5})\",\"$1 $2\",[\"5[079]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3,10})\",\"$1 $2\",[\"(?:31|4)6|51|6(?:5[0-3579]|[6-9])|7(?:20|32|8)|[89]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3,9})\",\"$1 $2\",[\"[2-467]|5[2-6]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"5\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4,7})\",\"$1 $2 $3\",[\"5\"],\"0$1\"]],\"0\"],\"AU\":[\"61\",\"001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011\",\"1(?:[0-79]\\\\d{7}(?:\\\\d(?:\\\\d{2})?)?|8[0-24-9]\\\\d{7})|[2-478]\\\\d{8}|1\\\\d{4,7}\",[5,6,7,8,9,10,12],[[\"(\\\\d{2})(\\\\d{3,4})\",\"$1 $2\",[\"16\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2,4})\",\"$1 $2 $3\",[\"16\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"14|4\"],\"0$1\"],[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"[2378]\"],\"(0$1)\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1(?:30|[89])\"]]],\"0\",0,\"(183[12])|0\",0,0,0,[[\"(?:(?:(?:2(?:[0-26-9]\\\\d|3[0-8]|4[02-9]|5[0135-9])|7(?:[013-57-9]\\\\d|2[0-8]))\\\\d|3(?:(?:[0-3589]\\\\d|6[1-9]|7[0-35-9])\\\\d|4(?:[0-578]\\\\d|90)))\\\\d\\\\d|8(?:51(?:0(?:0[03-9]|[12479]\\\\d|3[2-9]|5[0-8]|6[1-9]|8[0-7])|1(?:[0235689]\\\\d|1[0-69]|4[0-589]|7[0-47-9])|2(?:0[0-79]|[18][13579]|2[14-9]|3[0-46-9]|[4-6]\\\\d|7[89]|9[0-4])|3\\\\d\\\\d)|(?:6[0-8]|[78]\\\\d)\\\\d{3}|9(?:[02-9]\\\\d{3}|1(?:(?:[0-58]\\\\d|6[0135-9])\\\\d|7(?:0[0-24-9]|[1-9]\\\\d)|9(?:[0-46-9]\\\\d|5[0-79])))))\\\\d{3}\",[9]],[\"4(?:(?:79|94)[01]|83[0-389])\\\\d{5}|4(?:[0-3]\\\\d|4[047-9]|5[0-25-9]|6[0-36-9]|7[02-8]|8[0-24-9]|9[0-37-9])\\\\d{6}\",[9]],[\"180(?:0\\\\d{3}|2)\\\\d{3}\",[7,10]],[\"190[0-26]\\\\d{6}\",[10]],0,0,0,[\"163\\\\d{2,6}\",[5,6,7,8,9]],[\"14(?:5(?:1[0458]|[23][458])|71\\\\d)\\\\d{4}\",[9]],[\"13(?:00\\\\d{6}(?:\\\\d{2})?|45[0-4]\\\\d{3})|13\\\\d{4}\",[6,8,10,12]]],\"0011\"],\"AW\":[\"297\",\"00\",\"(?:[25-79]\\\\d\\\\d|800)\\\\d{4}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[25-9]\"]]]],\"AX\":[\"358\",\"00|99(?:[01469]|5(?:[14]1|3[23]|5[59]|77|88|9[09]))\",\"2\\\\d{4,9}|35\\\\d{4,5}|(?:60\\\\d\\\\d|800)\\\\d{4,6}|7\\\\d{5,11}|(?:[14]\\\\d|3[0-46-9]|50)\\\\d{4,8}\",[5,6,7,8,9,10,11,12],0,\"0\",0,0,0,0,\"18\",0,\"00\"],\"AZ\":[\"994\",\"00\",\"365\\\\d{6}|(?:[124579]\\\\d|60|88)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"90\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"1[28]|2|365|46\",\"1[28]|2|365[45]|46\",\"1[28]|2|365(?:4|5[02])|46\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[13-9]\"],\"0$1\"]],\"0\"],\"BA\":[\"387\",\"00\",\"6\\\\d{8}|(?:[35689]\\\\d|49|70)\\\\d{6}\",[8,9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"6[1-3]|[7-9]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2-$3\",[\"[3-5]|6[56]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"6\"],\"0$1\"]],\"0\"],\"BB\":[\"1\",\"011\",\"(?:246|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-9]\\\\d{6})$|1\",\"246$1\",0,\"246\"],\"BD\":[\"880\",\"00\",\"[1-469]\\\\d{9}|8[0-79]\\\\d{7,8}|[2-79]\\\\d{8}|[2-9]\\\\d{7}|[3-9]\\\\d{6}|[57-9]\\\\d{5}\",[6,7,8,9,10],[[\"(\\\\d{2})(\\\\d{4,6})\",\"$1-$2\",[\"31[5-8]|[459]1\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3,7})\",\"$1-$2\",[\"3(?:[67]|8[013-9])|4(?:6[168]|7|[89][18])|5(?:6[128]|9)|6(?:[15]|28|4[14])|7[2-589]|8(?:0[014-9]|[12])|9[358]|(?:3[2-5]|4[235]|5[2-578]|6[0389]|76|8[3-7]|9[24])1|(?:44|66)[01346-9]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3,6})\",\"$1-$2\",[\"[13-9]|22\"],\"0$1\"],[\"(\\\\d)(\\\\d{7,8})\",\"$1-$2\",[\"2\"],\"0$1\"]],\"0\"],\"BE\":[\"32\",\"00\",\"4\\\\d{8}|[1-9]\\\\d{7}\",[8,9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"(?:80|9)0\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[239]|4[23]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[15-8]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"4\"],\"0$1\"]],\"0\"],\"BF\":[\"226\",\"00\",\"[025-7]\\\\d{7}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[025-7]\"]]]],\"BG\":[\"359\",\"00\",\"00800\\\\d{7}|[2-7]\\\\d{6,7}|[89]\\\\d{6,8}|2\\\\d{5}\",[6,7,8,9,12],[[\"(\\\\d)(\\\\d)(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"2\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"43[1-6]|70[1-9]\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"2\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2,3})\",\"$1 $2 $3\",[\"[356]|4[124-7]|7[1-9]|8[1-6]|9[1-7]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"(?:70|8)0\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{2})\",\"$1 $2 $3\",[\"43[1-7]|7\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[48]|9[08]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"9\"],\"0$1\"]],\"0\"],\"BH\":[\"973\",\"00\",\"[136-9]\\\\d{7}\",[8],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[13679]|8[02-4679]\"]]]],\"BI\":[\"257\",\"00\",\"(?:[267]\\\\d|31)\\\\d{6}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[2367]\"]]]],\"BJ\":[\"229\",\"00\",\"[24-689]\\\\d{7}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[24-689]\"]]]],\"BL\":[\"590\",\"00\",\"590\\\\d{6}|(?:69|80|9\\\\d)\\\\d{7}\",[9],0,\"0\",0,0,0,0,0,[[\"590(?:2[7-9]|3[3-7]|5[12]|87)\\\\d{4}\"],[\"69(?:0\\\\d\\\\d|1(?:2[2-9]|3[0-5])|4(?:0[89]|1[2-6]|9\\\\d)|6(?:1[016-9]|5[0-4]|[67]\\\\d))\\\\d{4}\"],[\"80[0-5]\\\\d{6}\"],0,0,0,0,0,[\"9(?:(?:39[5-7]|76[018])\\\\d|475[0-5])\\\\d{4}\"]]],\"BM\":[\"1\",\"011\",\"(?:441|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-9]\\\\d{6})$|1\",\"441$1\",0,\"441\"],\"BN\":[\"673\",\"00\",\"[2-578]\\\\d{6}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[2-578]\"]]]],\"BO\":[\"591\",\"00(?:1\\\\d)?\",\"(?:[2-467]\\\\d\\\\d|8001)\\\\d{5}\",[8,9],[[\"(\\\\d)(\\\\d{7})\",\"$1 $2\",[\"[23]|4[46]\"]],[\"(\\\\d{8})\",\"$1\",[\"[67]\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"]]],\"0\",0,\"0(1\\\\d)?\"],\"BQ\":[\"599\",\"00\",\"(?:[34]1|7\\\\d)\\\\d{5}\",[7],0,0,0,0,0,0,\"[347]\"],\"BR\":[\"55\",\"00(?:1[245]|2[1-35]|31|4[13]|[56]5|99)\",\"(?:[1-46-9]\\\\d\\\\d|5(?:[0-46-9]\\\\d|5[0-46-9]))\\\\d{8}|[1-9]\\\\d{9}|[3589]\\\\d{8}|[34]\\\\d{7}\",[8,9,10,11],[[\"(\\\\d{4})(\\\\d{4})\",\"$1-$2\",[\"300|4(?:0[02]|37)\",\"4(?:02|37)0|[34]00\"]],[\"(\\\\d{3})(\\\\d{2,3})(\\\\d{4})\",\"$1 $2 $3\",[\"(?:[358]|90)0\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2-$3\",[\"(?:[14689][1-9]|2[12478]|3[1-578]|5[13-5]|7[13-579])[2-57]\"],\"($1)\"],[\"(\\\\d{2})(\\\\d{5})(\\\\d{4})\",\"$1 $2-$3\",[\"[16][1-9]|[2-57-9]\"],\"($1)\"]],\"0\",0,\"(?:0|90)(?:(1[245]|2[1-35]|31|4[13]|[56]5|99)(\\\\d{10,11}))?\",\"$2\"],\"BS\":[\"1\",\"011\",\"(?:242|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"([3-8]\\\\d{6})$|1\",\"242$1\",0,\"242\"],\"BT\":[\"975\",\"00\",\"[17]\\\\d{7}|[2-8]\\\\d{6}\",[7,8],[[\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[2-68]|7[246]\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"1[67]|7\"]]]],\"BW\":[\"267\",\"00\",\"(?:0800|(?:[37]|800)\\\\d)\\\\d{6}|(?:[2-6]\\\\d|90)\\\\d{5}\",[7,8,10],[[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"90\"]],[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[24-6]|3[15-9]\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[37]\"]],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"0\"]],[\"(\\\\d{3})(\\\\d{4})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"]]]],\"BY\":[\"375\",\"810\",\"(?:[12]\\\\d|33|44|902)\\\\d{7}|8(?:0[0-79]\\\\d{5,7}|[1-7]\\\\d{9})|8(?:1[0-489]|[5-79]\\\\d)\\\\d{7}|8[1-79]\\\\d{6,7}|8[0-79]\\\\d{5}|8\\\\d{5}\",[6,7,8,9,10,11],[[\"(\\\\d{3})(\\\\d{3})\",\"$1 $2\",[\"800\"],\"8 $1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2,4})\",\"$1 $2 $3\",[\"800\"],\"8 $1\"],[\"(\\\\d{4})(\\\\d{2})(\\\\d{3})\",\"$1 $2-$3\",[\"1(?:5[169]|6[3-5]|7[179])|2(?:1[35]|2[34]|3[3-5])\",\"1(?:5[169]|6(?:3[1-3]|4|5[125])|7(?:1[3-9]|7[0-24-6]|9[2-7]))|2(?:1[35]|2[34]|3[3-5])\"],\"8 0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2-$3-$4\",[\"1(?:[56]|7[467])|2[1-3]\"],\"8 0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2-$3-$4\",[\"[1-4]\"],\"8 0$1\"],[\"(\\\\d{3})(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"[89]\"],\"8 $1\"]],\"8\",0,\"0|80?\",0,0,0,0,\"8~10\"],\"BZ\":[\"501\",\"00\",\"(?:0800\\\\d|[2-8])\\\\d{6}\",[7,11],[[\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"[2-8]\"]],[\"(\\\\d)(\\\\d{3})(\\\\d{4})(\\\\d{3})\",\"$1-$2-$3-$4\",[\"0\"]]]],\"CA\":[\"1\",\"011\",\"(?:[2-8]\\\\d|90)\\\\d{8}|3\\\\d{6}\",[7,10],0,\"1\",0,0,0,0,0,[[\"(?:2(?:04|[23]6|[48]9|50|63)|3(?:06|43|54|6[578]|82)|4(?:03|1[68]|[26]8|3[178]|50|74)|5(?:06|1[49]|48|79|8[147])|6(?:04|[18]3|39|47|72)|7(?:0[59]|42|53|78|8[02])|8(?:[06]7|19|25|7[39])|90[25])[2-9]\\\\d{6}\",[10]],[\"\",[10]],[\"8(?:00|33|44|55|66|77|88)[2-9]\\\\d{6}\",[10]],[\"900[2-9]\\\\d{6}\",[10]],[\"52(?:3(?:[2-46-9][02-9]\\\\d|5(?:[02-46-9]\\\\d|5[0-46-9]))|4(?:[2-478][02-9]\\\\d|5(?:[034]\\\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\\\d)|9(?:[05-9]\\\\d|2[0-5]|49)))\\\\d{4}|52[34][2-9]1[02-9]\\\\d{4}|(?:5(?:00|2[125-9]|33|44|66|77|88)|622)[2-9]\\\\d{6}\",[10]],0,[\"310\\\\d{4}\",[7]],0,[\"600[2-9]\\\\d{6}\",[10]]]],\"CC\":[\"61\",\"001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011\",\"1(?:[0-79]\\\\d{8}(?:\\\\d{2})?|8[0-24-9]\\\\d{7})|[148]\\\\d{8}|1\\\\d{5,7}\",[6,7,8,9,10,12],0,\"0\",0,\"([59]\\\\d{7})$|0\",\"8$1\",0,0,[[\"8(?:51(?:0(?:02|31|60|89)|1(?:18|76)|223)|91(?:0(?:1[0-2]|29)|1(?:[28]2|50|79)|2(?:10|64)|3(?:[06]8|22)|4[29]8|62\\\\d|70[23]|959))\\\\d{3}\",[9]],[\"4(?:(?:79|94)[01]|83[0-389])\\\\d{5}|4(?:[0-3]\\\\d|4[047-9]|5[0-25-9]|6[0-36-9]|7[02-8]|8[0-24-9]|9[0-37-9])\\\\d{6}\",[9]],[\"180(?:0\\\\d{3}|2)\\\\d{3}\",[7,10]],[\"190[0-26]\\\\d{6}\",[10]],0,0,0,0,[\"14(?:5(?:1[0458]|[23][458])|71\\\\d)\\\\d{4}\",[9]],[\"13(?:00\\\\d{6}(?:\\\\d{2})?|45[0-4]\\\\d{3})|13\\\\d{4}\",[6,8,10,12]]],\"0011\"],\"CD\":[\"243\",\"00\",\"[189]\\\\d{8}|[1-68]\\\\d{6}\",[7,9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"88\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"[1-6]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[89]\"],\"0$1\"]],\"0\"],\"CF\":[\"236\",\"00\",\"(?:[27]\\\\d{3}|8776)\\\\d{4}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[278]\"]]]],\"CG\":[\"242\",\"00\",\"222\\\\d{6}|(?:0\\\\d|80)\\\\d{7}\",[9],[[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[02]\"]]]],\"CH\":[\"41\",\"00\",\"8\\\\d{11}|[2-9]\\\\d{8}\",[9],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"8[047]|90\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[2-79]|81\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4 $5\",[\"8\"],\"0$1\"]],\"0\"],\"CI\":[\"225\",\"00\",\"[02]\\\\d{9}\",[10],[[\"(\\\\d{2})(\\\\d{2})(\\\\d)(\\\\d{5})\",\"$1 $2 $3 $4\",[\"2\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3 $4\",[\"0\"]]]],\"CK\":[\"682\",\"00\",\"[2-578]\\\\d{4}\",[5],[[\"(\\\\d{2})(\\\\d{3})\",\"$1 $2\",[\"[2-578]\"]]]],\"CL\":[\"56\",\"(?:0|1(?:1[0-69]|2[02-5]|5[13-58]|69|7[0167]|8[018]))0\",\"12300\\\\d{6}|6\\\\d{9,10}|[2-9]\\\\d{8}\",[9,10,11],[[\"(\\\\d{5})(\\\\d{4})\",\"$1 $2\",[\"219\",\"2196\"],\"($1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"44\"]],[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"2[1-36]\"],\"($1)\"],[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"9[2-9]\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"3[2-5]|[47]|5[1-3578]|6[13-57]|8(?:0[1-9]|[1-9])\"],\"($1)\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"60|8\"]],[\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"60\"]]]],\"CM\":[\"237\",\"00\",\"[26]\\\\d{8}|88\\\\d{6,7}\",[8,9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"88\"]],[\"(\\\\d)(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4 $5\",[\"[26]|88\"]]]],\"CN\":[\"86\",\"00|1(?:[12]\\\\d|79)\\\\d\\\\d00\",\"1[127]\\\\d{8,9}|2\\\\d{9}(?:\\\\d{2})?|[12]\\\\d{6,7}|86\\\\d{6}|(?:1[03-689]\\\\d|6)\\\\d{7,9}|(?:[3-579]\\\\d|8[0-57-9])\\\\d{6,9}\",[7,8,9,10,11,12],[[\"(\\\\d{2})(\\\\d{5,6})\",\"$1 $2\",[\"(?:10|2[0-57-9])[19]\",\"(?:10|2[0-57-9])(?:10|9[56])\",\"10(?:10|9[56])|2[0-57-9](?:100|9[56])\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{5,6})\",\"$1 $2\",[\"3(?:[157]|35|49|9[1-68])|4(?:[17]|2[179]|6[47-9]|8[23])|5(?:[1357]|2[37]|4[36]|6[1-46]|80)|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]|4[13]|5[1-5])|(?:4[35]|59|85)[1-9]\",\"(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:[17]\\\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\\\d|4[13]|5[1-5]))[19]\",\"85[23](?:10|95)|(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:[17]\\\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\\\d|4[13]|5[1-5]))(?:10|9[56])\",\"85[23](?:100|95)|(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:[17]\\\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\\\d|4[13]|5[1-5]))(?:100|9[56])\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"(?:4|80)0\"]],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"10|2(?:[02-57-9]|1[1-9])\",\"10|2(?:[02-57-9]|1[1-9])\",\"10[0-79]|2(?:[02-57-9]|1[1-79])|(?:10|21)8(?:0[1-9]|[1-9])\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"3(?:[3-59]|7[02-68])|4(?:[26-8]|3[3-9]|5[2-9])|5(?:3[03-9]|[468]|7[028]|9[2-46-9])|6|7(?:[0-247]|3[04-9]|5[0-4689]|6[2368])|8(?:[1-358]|9[1-7])|9(?:[013479]|5[1-5])|(?:[34]1|55|79|87)[02-9]\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{7,8})\",\"$1 $2\",[\"9\"]],[\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"80\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"[3-578]\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"1[3-9]\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3 $4\",[\"[12]\"],\"0$1\",1]],\"0\",0,\"(1(?:[12]\\\\d|79)\\\\d\\\\d)|0\",0,0,0,0,\"00\"],\"CO\":[\"57\",\"00(?:4(?:[14]4|56)|[579])\",\"(?:60\\\\d\\\\d|9101)\\\\d{6}|(?:1\\\\d|3)\\\\d{9}\",[10,11],[[\"(\\\\d{3})(\\\\d{7})\",\"$1 $2\",[\"6\"],\"($1)\"],[\"(\\\\d{3})(\\\\d{7})\",\"$1 $2\",[\"3[0-357]|91\"]],[\"(\\\\d)(\\\\d{3})(\\\\d{7})\",\"$1-$2-$3\",[\"1\"],\"0$1\",0,\"$1 $2 $3\"]],\"0\",0,\"0([3579]|4(?:[14]4|56))?\"],\"CR\":[\"506\",\"00\",\"(?:8\\\\d|90)\\\\d{8}|(?:[24-8]\\\\d{3}|3005)\\\\d{4}\",[8,10],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[2-7]|8[3-9]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"[89]\"]]],0,0,\"(19(?:0[0-2468]|1[09]|20|66|77|99))\"],\"CU\":[\"53\",\"119\",\"[27]\\\\d{6,7}|[34]\\\\d{5,7}|63\\\\d{6}|(?:5|8\\\\d\\\\d)\\\\d{7}\",[6,7,8,10],[[\"(\\\\d{2})(\\\\d{4,6})\",\"$1 $2\",[\"2[1-4]|[34]\"],\"(0$1)\"],[\"(\\\\d)(\\\\d{6,7})\",\"$1 $2\",[\"7\"],\"(0$1)\"],[\"(\\\\d)(\\\\d{7})\",\"$1 $2\",[\"[56]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{7})\",\"$1 $2\",[\"8\"],\"0$1\"]],\"0\"],\"CV\":[\"238\",\"0\",\"(?:[2-59]\\\\d\\\\d|800)\\\\d{4}\",[7],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"[2-589]\"]]]],\"CW\":[\"599\",\"00\",\"(?:[34]1|60|(?:7|9\\\\d)\\\\d)\\\\d{5}\",[7,8],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[3467]\"]],[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"9[4-8]\"]]],0,0,0,0,0,\"[69]\"],\"CX\":[\"61\",\"001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011\",\"1(?:[0-79]\\\\d{8}(?:\\\\d{2})?|8[0-24-9]\\\\d{7})|[148]\\\\d{8}|1\\\\d{5,7}\",[6,7,8,9,10,12],0,\"0\",0,\"([59]\\\\d{7})$|0\",\"8$1\",0,0,[[\"8(?:51(?:0(?:01|30|59|88)|1(?:17|46|75)|2(?:22|35))|91(?:00[6-9]|1(?:[28]1|49|78)|2(?:09|63)|3(?:12|26|75)|4(?:56|97)|64\\\\d|7(?:0[01]|1[0-2])|958))\\\\d{3}\",[9]],[\"4(?:(?:79|94)[01]|83[0-389])\\\\d{5}|4(?:[0-3]\\\\d|4[047-9]|5[0-25-9]|6[0-36-9]|7[02-8]|8[0-24-9]|9[0-37-9])\\\\d{6}\",[9]],[\"180(?:0\\\\d{3}|2)\\\\d{3}\",[7,10]],[\"190[0-26]\\\\d{6}\",[10]],0,0,0,0,[\"14(?:5(?:1[0458]|[23][458])|71\\\\d)\\\\d{4}\",[9]],[\"13(?:00\\\\d{6}(?:\\\\d{2})?|45[0-4]\\\\d{3})|13\\\\d{4}\",[6,8,10,12]]],\"0011\"],\"CY\":[\"357\",\"00\",\"(?:[279]\\\\d|[58]0)\\\\d{6}\",[8],[[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"[257-9]\"]]]],\"CZ\":[\"420\",\"00\",\"(?:[2-578]\\\\d|60)\\\\d{7}|9\\\\d{8,11}\",[9],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[2-8]|9[015-7]\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"96\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"9\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"9\"]]]],\"DE\":[\"49\",\"00\",\"[2579]\\\\d{5,14}|49(?:[34]0|69|8\\\\d)\\\\d\\\\d?|49(?:37|49|60|7[089]|9\\\\d)\\\\d{1,3}|49(?:2[024-9]|3[2-689]|7[1-7])\\\\d{1,8}|(?:1|[368]\\\\d|4[0-8])\\\\d{3,13}|49(?:[015]\\\\d|2[13]|31|[46][1-8])\\\\d{1,9}\",[4,5,6,7,8,9,10,11,12,13,14,15],[[\"(\\\\d{2})(\\\\d{3,13})\",\"$1 $2\",[\"3[02]|40|[68]9\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3,12})\",\"$1 $2\",[\"2(?:0[1-389]|1[124]|2[18]|3[14])|3(?:[35-9][15]|4[015])|906|(?:2[4-9]|4[2-9]|[579][1-9]|[68][1-8])1\",\"2(?:0[1-389]|12[0-8])|3(?:[35-9][15]|4[015])|906|2(?:[13][14]|2[18])|(?:2[4-9]|4[2-9]|[579][1-9]|[68][1-8])1\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{2,11})\",\"$1 $2\",[\"[24-6]|3(?:[3569][02-46-9]|4[2-4679]|7[2-467]|8[2-46-8])|70[2-8]|8(?:0[2-9]|[1-8])|90[7-9]|[79][1-9]\",\"[24-6]|3(?:3(?:0[1-467]|2[127-9]|3[124578]|7[1257-9]|8[1256]|9[145])|4(?:2[135]|4[13578]|9[1346])|5(?:0[14]|2[1-3589]|6[1-4]|7[13468]|8[13568])|6(?:2[1-489]|3[124-6]|6[13]|7[12579]|8[1-356]|9[135])|7(?:2[1-7]|4[145]|6[1-5]|7[1-4])|8(?:21|3[1468]|6|7[1467]|8[136])|9(?:0[12479]|2[1358]|4[134679]|6[1-9]|7[136]|8[147]|9[1468]))|70[2-8]|8(?:0[2-9]|[1-8])|90[7-9]|[79][1-9]|3[68]4[1347]|3(?:47|60)[1356]|3(?:3[46]|46|5[49])[1246]|3[4579]3[1357]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"138\"],\"0$1\"],[\"(\\\\d{5})(\\\\d{2,10})\",\"$1 $2\",[\"3\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{5,11})\",\"$1 $2\",[\"181\"],\"0$1\"],[\"(\\\\d{3})(\\\\d)(\\\\d{4,10})\",\"$1 $2 $3\",[\"1(?:3|80)|9\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{7,8})\",\"$1 $2\",[\"1[67]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{7,12})\",\"$1 $2\",[\"8\"],\"0$1\"],[\"(\\\\d{5})(\\\\d{6})\",\"$1 $2\",[\"185\",\"1850\",\"18500\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"7\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{7})\",\"$1 $2\",[\"18[68]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{7})\",\"$1 $2\",[\"15[1279]\"],\"0$1\"],[\"(\\\\d{5})(\\\\d{6})\",\"$1 $2\",[\"15[03568]\",\"15(?:[0568]|31)\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{8})\",\"$1 $2\",[\"18\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{7,8})\",\"$1 $2 $3\",[\"1(?:6[023]|7)\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{2})(\\\\d{7})\",\"$1 $2 $3\",[\"15[279]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{8})\",\"$1 $2 $3\",[\"15\"],\"0$1\"]],\"0\"],\"DJ\":[\"253\",\"00\",\"(?:2\\\\d|77)\\\\d{6}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[27]\"]]]],\"DK\":[\"45\",\"00\",\"[2-9]\\\\d{7}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[2-9]\"]]]],\"DM\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|767|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-7]\\\\d{6})$|1\",\"767$1\",0,\"767\"],\"DO\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,0,0,0,\"8001|8[024]9\"],\"DZ\":[\"213\",\"00\",\"(?:[1-4]|[5-79]\\\\d|80)\\\\d{7}\",[8,9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[1-4]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"9\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[5-8]\"],\"0$1\"]],\"0\"],\"EC\":[\"593\",\"00\",\"1\\\\d{9,10}|(?:[2-7]|9\\\\d)\\\\d{7}\",[8,9,10,11],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2-$3\",[\"[2-7]\"],\"(0$1)\",0,\"$1-$2-$3\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"9\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"1\"]]],\"0\"],\"EE\":[\"372\",\"00\",\"8\\\\d{9}|[4578]\\\\d{7}|(?:[3-8]\\\\d|90)\\\\d{5}\",[7,8,10],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[369]|4[3-8]|5(?:[0-2]|5[0-478]|6[45])|7[1-9]|88\",\"[369]|4[3-8]|5(?:[02]|1(?:[0-8]|95)|5[0-478]|6(?:4[0-4]|5[1-589]))|7[1-9]|88\"]],[\"(\\\\d{4})(\\\\d{3,4})\",\"$1 $2\",[\"[45]|8(?:00|[1-49])\",\"[45]|8(?:00[1-9]|[1-49])\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"7\"]],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"]]]],\"EG\":[\"20\",\"00\",\"[189]\\\\d{8,9}|[24-6]\\\\d{8}|[135]\\\\d{7}\",[8,9,10],[[\"(\\\\d)(\\\\d{7,8})\",\"$1 $2\",[\"[23]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{6,7})\",\"$1 $2\",[\"1[35]|[4-6]|8[2468]|9[235-7]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[89]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{8})\",\"$1 $2\",[\"1\"],\"0$1\"]],\"0\"],\"EH\":[\"212\",\"00\",\"[5-8]\\\\d{8}\",[9],0,\"0\",0,0,0,0,\"528[89]\"],\"ER\":[\"291\",\"00\",\"[178]\\\\d{6}\",[7],[[\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[178]\"],\"0$1\"]],\"0\"],\"ES\":[\"34\",\"00\",\"[5-9]\\\\d{8}\",[9],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[89]00\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[5-9]\"]]]],\"ET\":[\"251\",\"00\",\"(?:11|[2-579]\\\\d)\\\\d{7}\",[9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[1-579]\"],\"0$1\"]],\"0\"],\"FI\":[\"358\",\"00|99(?:[01469]|5(?:[14]1|3[23]|5[59]|77|88|9[09]))\",\"[1-35689]\\\\d{4}|7\\\\d{10,11}|(?:[124-7]\\\\d|3[0-46-9])\\\\d{8}|[1-9]\\\\d{5,8}\",[5,6,7,8,9,10,11,12],[[\"(\\\\d{5})\",\"$1\",[\"20[2-59]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3,7})\",\"$1 $2\",[\"(?:[1-3]0|[68])0|70[07-9]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4,8})\",\"$1 $2\",[\"[14]|2[09]|50|7[135]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{6,10})\",\"$1 $2\",[\"7\"],\"0$1\"],[\"(\\\\d)(\\\\d{4,9})\",\"$1 $2\",[\"(?:1[3-79]|[2568])[1-8]|3(?:0[1-9]|[1-9])|9\"],\"0$1\"]],\"0\",0,0,0,0,\"1[03-79]|[2-9]\",0,\"00\"],\"FJ\":[\"679\",\"0(?:0|52)\",\"45\\\\d{5}|(?:0800\\\\d|[235-9])\\\\d{6}\",[7,11],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[235-9]|45\"]],[\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"0\"]]],0,0,0,0,0,0,0,\"00\"],\"FK\":[\"500\",\"00\",\"[2-7]\\\\d{4}\",[5]],\"FM\":[\"691\",\"00\",\"(?:[39]\\\\d\\\\d|820)\\\\d{4}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[389]\"]]]],\"FO\":[\"298\",\"00\",\"[2-9]\\\\d{5}\",[6],[[\"(\\\\d{6})\",\"$1\",[\"[2-9]\"]]],0,0,\"(10(?:01|[12]0|88))\"],\"FR\":[\"33\",\"00\",\"[1-9]\\\\d{8}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"8\"],\"0 $1\"],[\"(\\\\d)(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4 $5\",[\"[1-79]\"],\"0$1\"]],\"0\"],\"GA\":[\"241\",\"00\",\"(?:[067]\\\\d|11)\\\\d{6}|[2-7]\\\\d{6}\",[7,8],[[\"(\\\\d)(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[2-7]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"0\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"11|[67]\"],\"0$1\"]],0,0,\"0(11\\\\d{6}|60\\\\d{6}|61\\\\d{6}|6[256]\\\\d{6}|7[467]\\\\d{6})\",\"$1\"],\"GB\":[\"44\",\"00\",\"[1-357-9]\\\\d{9}|[18]\\\\d{8}|8\\\\d{6}\",[7,9,10],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"800\",\"8001\",\"80011\",\"800111\",\"8001111\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"845\",\"8454\",\"84546\",\"845464\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{6})\",\"$1 $2\",[\"800\"],\"0$1\"],[\"(\\\\d{5})(\\\\d{4,5})\",\"$1 $2\",[\"1(?:38|5[23]|69|76|94)\",\"1(?:(?:38|69)7|5(?:24|39)|768|946)\",\"1(?:3873|5(?:242|39[4-6])|(?:697|768)[347]|9467)\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{5,6})\",\"$1 $2\",[\"1(?:[2-69][02-9]|[78])\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"[25]|7(?:0|6[02-9])\",\"[25]|7(?:0|6(?:[03-9]|2[356]))\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{6})\",\"$1 $2\",[\"7\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[1389]\"],\"0$1\"]],\"0\",0,0,0,0,0,[[\"(?:1(?:1(?:3(?:[0-58]\\\\d\\\\d|73[0235])|4(?:(?:[0-5]\\\\d|70)\\\\d|69[7-9])|(?:(?:5[0-26-9]|[78][0-49])\\\\d|6(?:[0-4]\\\\d|50))\\\\d)|(?:2(?:(?:0[024-9]|2[3-9]|3[3-79]|4[1-689]|[58][02-9]|6[0-47-9]|7[013-9]|9\\\\d)\\\\d|1(?:[0-7]\\\\d|8[0-2]))|(?:3(?:0\\\\d|1[0-8]|[25][02-9]|3[02-579]|[468][0-46-9]|7[1-35-79]|9[2-578])|4(?:0[03-9]|[137]\\\\d|[28][02-57-9]|4[02-69]|5[0-8]|[69][0-79])|5(?:0[1-35-9]|[16]\\\\d|2[024-9]|3[015689]|4[02-9]|5[03-9]|7[0-35-9]|8[0-468]|9[0-57-9])|6(?:0[034689]|1\\\\d|2[0-35689]|[38][013-9]|4[1-467]|5[0-69]|6[13-9]|7[0-8]|9[0-24578])|7(?:0[0246-9]|2\\\\d|3[0236-8]|4[03-9]|5[0-46-9]|6[013-9]|7[0-35-9]|8[024-9]|9[02-9])|8(?:0[35-9]|2[1-57-9]|3[02-578]|4[0-578]|5[124-9]|6[2-69]|7\\\\d|8[02-9]|9[02569])|9(?:0[02-589]|[18]\\\\d|2[02-689]|3[1-57-9]|4[2-9]|5[0-579]|6[2-47-9]|7[0-24578]|9[2-57]))\\\\d)\\\\d)|2(?:0[013478]|3[0189]|4[017]|8[0-46-9]|9[0-2])\\\\d{3})\\\\d{4}|1(?:2(?:0(?:46[1-4]|87[2-9])|545[1-79]|76(?:2\\\\d|3[1-8]|6[1-6])|9(?:7(?:2[0-4]|3[2-5])|8(?:2[2-8]|7[0-47-9]|8[3-5])))|3(?:6(?:38[2-5]|47[23])|8(?:47[04-9]|64[0157-9]))|4(?:044[1-7]|20(?:2[23]|8\\\\d)|6(?:0(?:30|5[2-57]|6[1-8]|7[2-8])|140)|8(?:052|87[1-3]))|5(?:2(?:4(?:3[2-79]|6\\\\d)|76\\\\d)|6(?:26[06-9]|686))|6(?:06(?:4\\\\d|7[4-79])|295[5-7]|35[34]\\\\d|47(?:24|61)|59(?:5[08]|6[67]|74)|9(?:55[0-4]|77[23]))|7(?:26(?:6[13-9]|7[0-7])|(?:442|688)\\\\d|50(?:2[0-3]|[3-68]2|76))|8(?:27[56]\\\\d|37(?:5[2-5]|8[239])|843[2-58])|9(?:0(?:0(?:6[1-8]|85)|52\\\\d)|3583|4(?:66[1-8]|9(?:2[01]|81))|63(?:23|3[1-4])|9561))\\\\d{3}\",[9,10]],[\"7(?:457[0-57-9]|700[01]|911[028])\\\\d{5}|7(?:[1-3]\\\\d\\\\d|4(?:[0-46-9]\\\\d|5[0-689])|5(?:0[0-8]|[13-9]\\\\d|2[0-35-9])|7(?:0[1-9]|[1-7]\\\\d|8[02-9]|9[0-689])|8(?:[014-9]\\\\d|[23][0-8])|9(?:[024-9]\\\\d|1[02-9]|3[0-689]))\\\\d{6}\",[10]],[\"80[08]\\\\d{7}|800\\\\d{6}|8001111\"],[\"(?:8(?:4[2-5]|7[0-3])|9(?:[01]\\\\d|8[2-49]))\\\\d{7}|845464\\\\d\",[7,10]],[\"70\\\\d{8}\",[10]],0,[\"(?:3[0347]|55)\\\\d{8}\",[10]],[\"76(?:464|652)\\\\d{5}|76(?:0[0-28]|2[356]|34|4[01347]|5[49]|6[0-369]|77|8[14]|9[139])\\\\d{6}\",[10]],[\"56\\\\d{8}\",[10]]],0,\" x\"],\"GD\":[\"1\",\"011\",\"(?:473|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-9]\\\\d{6})$|1\",\"473$1\",0,\"473\"],\"GE\":[\"995\",\"00\",\"(?:[3-57]\\\\d\\\\d|800)\\\\d{6}\",[9],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"70\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"32\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[57]\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[348]\"],\"0$1\"]],\"0\"],\"GF\":[\"594\",\"00\",\"[56]94\\\\d{6}|(?:80|9\\\\d)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[56]|9[47]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[89]\"],\"0$1\"]],\"0\"],\"GG\":[\"44\",\"00\",\"(?:1481|[357-9]\\\\d{3})\\\\d{6}|8\\\\d{6}(?:\\\\d{2})?\",[7,9,10],0,\"0\",0,\"([25-9]\\\\d{5})$|0\",\"1481$1\",0,0,[[\"1481[25-9]\\\\d{5}\",[10]],[\"7(?:(?:781|839)\\\\d|911[17])\\\\d{5}\",[10]],[\"80[08]\\\\d{7}|800\\\\d{6}|8001111\"],[\"(?:8(?:4[2-5]|7[0-3])|9(?:[01]\\\\d|8[0-3]))\\\\d{7}|845464\\\\d\",[7,10]],[\"70\\\\d{8}\",[10]],0,[\"(?:3[0347]|55)\\\\d{8}\",[10]],[\"76(?:464|652)\\\\d{5}|76(?:0[0-28]|2[356]|34|4[01347]|5[49]|6[0-369]|77|8[14]|9[139])\\\\d{6}\",[10]],[\"56\\\\d{8}\",[10]]]],\"GH\":[\"233\",\"00\",\"(?:[235]\\\\d{3}|800)\\\\d{5}\",[8,9],[[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"8\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[235]\"],\"0$1\"]],\"0\"],\"GI\":[\"350\",\"00\",\"(?:[25]\\\\d|60)\\\\d{6}\",[8],[[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"2\"]]]],\"GL\":[\"299\",\"00\",\"(?:19|[2-689]\\\\d|70)\\\\d{4}\",[6],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"19|[2-9]\"]]]],\"GM\":[\"220\",\"00\",\"[2-9]\\\\d{6}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[2-9]\"]]]],\"GN\":[\"224\",\"00\",\"722\\\\d{6}|(?:3|6\\\\d)\\\\d{7}\",[8,9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"3\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[67]\"]]]],\"GP\":[\"590\",\"00\",\"590\\\\d{6}|(?:69|80|9\\\\d)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[569]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"8\"],\"0$1\"]],\"0\",0,0,0,0,0,[[\"590(?:0[1-68]|[14][0-24-9]|2[0-68]|3[1-9]|5[3-579]|[68][0-689]|7[08]|9\\\\d)\\\\d{4}\"],[\"69(?:0\\\\d\\\\d|1(?:2[2-9]|3[0-5])|4(?:0[89]|1[2-6]|9\\\\d)|6(?:1[016-9]|5[0-4]|[67]\\\\d))\\\\d{4}\"],[\"80[0-5]\\\\d{6}\"],0,0,0,0,0,[\"9(?:(?:39[5-7]|76[018])\\\\d|475[0-5])\\\\d{4}\"]]],\"GQ\":[\"240\",\"00\",\"222\\\\d{6}|(?:3\\\\d|55|[89]0)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[235]\"]],[\"(\\\\d{3})(\\\\d{6})\",\"$1 $2\",[\"[89]\"]]]],\"GR\":[\"30\",\"00\",\"5005000\\\\d{3}|8\\\\d{9,11}|(?:[269]\\\\d|70)\\\\d{8}\",[10,11,12],[[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"21|7\"]],[\"(\\\\d{4})(\\\\d{6})\",\"$1 $2\",[\"2(?:2|3[2-57-9]|4[2-469]|5[2-59]|6[2-9]|7[2-69]|8[2-49])|5\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[2689]\"]],[\"(\\\\d{3})(\\\\d{3,4})(\\\\d{5})\",\"$1 $2 $3\",[\"8\"]]]],\"GT\":[\"502\",\"00\",\"80\\\\d{6}|(?:1\\\\d{3}|[2-7])\\\\d{7}\",[8,11],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[2-8]\"]],[\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"]]]],\"GU\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|671|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-9]\\\\d{6})$|1\",\"671$1\",0,\"671\"],\"GW\":[\"245\",\"00\",\"[49]\\\\d{8}|4\\\\d{6}\",[7,9],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"40\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[49]\"]]]],\"GY\":[\"592\",\"001\",\"(?:[2-8]\\\\d{3}|9008)\\\\d{3}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[2-9]\"]]]],\"HK\":[\"852\",\"00(?:30|5[09]|[126-9]?)\",\"8[0-46-9]\\\\d{6,7}|9\\\\d{4,7}|(?:[2-7]|9\\\\d{3})\\\\d{7}\",[5,6,7,8,9,11],[[\"(\\\\d{3})(\\\\d{2,5})\",\"$1 $2\",[\"900\",\"9003\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[2-7]|8[1-4]|9(?:0[1-9]|[1-8])\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"9\"]]],0,0,0,0,0,0,0,\"00\"],\"HN\":[\"504\",\"00\",\"8\\\\d{10}|[237-9]\\\\d{7}\",[8,11],[[\"(\\\\d{4})(\\\\d{4})\",\"$1-$2\",[\"[237-9]\"]]]],\"HR\":[\"385\",\"00\",\"(?:[24-69]\\\\d|3[0-79])\\\\d{7}|80\\\\d{5,7}|[1-79]\\\\d{7}|6\\\\d{5,6}\",[6,7,8,9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2,3})\",\"$1 $2 $3\",[\"6[01]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2,3})\",\"$1 $2 $3\",[\"8\"],\"0$1\"],[\"(\\\\d)(\\\\d{4})(\\\\d{3})\",\"$1 $2 $3\",[\"1\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"6|7[245]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"9\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[2-57]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"],\"0$1\"]],\"0\"],\"HT\":[\"509\",\"00\",\"(?:[2-489]\\\\d|55)\\\\d{6}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"[2-589]\"]]]],\"HU\":[\"36\",\"00\",\"[235-7]\\\\d{8}|[1-9]\\\\d{7}\",[8,9],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"],\"(06 $1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[27][2-9]|3[2-7]|4[24-9]|5[2-79]|6|8[2-57-9]|9[2-69]\"],\"(06 $1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[2-9]\"],\"06 $1\"]],\"06\"],\"ID\":[\"62\",\"00[89]\",\"(?:(?:00[1-9]|8\\\\d)\\\\d{4}|[1-36])\\\\d{6}|00\\\\d{10}|[1-9]\\\\d{8,10}|[2-9]\\\\d{7}\",[7,8,9,10,11,12,13],[[\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"15\"]],[\"(\\\\d{2})(\\\\d{5,9})\",\"$1 $2\",[\"2[124]|[36]1\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{5,7})\",\"$1 $2\",[\"800\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{5,8})\",\"$1 $2\",[\"[2-79]\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{3,4})(\\\\d{3})\",\"$1-$2-$3\",[\"8[1-35-9]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{6,8})\",\"$1 $2\",[\"1\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"804\"],\"0$1\"],[\"(\\\\d{3})(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"80\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{4})(\\\\d{4,5})\",\"$1-$2-$3\",[\"8\"],\"0$1\"]],\"0\"],\"IE\":[\"353\",\"00\",\"(?:1\\\\d|[2569])\\\\d{6,8}|4\\\\d{6,9}|7\\\\d{8}|8\\\\d{8,9}\",[7,8,9,10],[[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"2[24-9]|47|58|6[237-9]|9[35-9]\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"[45]0\"],\"(0$1)\"],[\"(\\\\d)(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[2569]|4[1-69]|7[14]\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"70\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"81\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[78]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1\"]],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"4\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3 $4\",[\"8\"],\"0$1\"]],\"0\"],\"IL\":[\"972\",\"0(?:0|1[2-9])\",\"1\\\\d{6}(?:\\\\d{3,5})?|[57]\\\\d{8}|[1-489]\\\\d{7}\",[7,8,9,10,11,12],[[\"(\\\\d{4})(\\\\d{3})\",\"$1-$2\",[\"125\"]],[\"(\\\\d{4})(\\\\d{2})(\\\\d{2})\",\"$1-$2-$3\",[\"121\"]],[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"[2-489]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"[57]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1-$2-$3\",[\"12\"]],[\"(\\\\d{4})(\\\\d{6})\",\"$1-$2\",[\"159\"]],[\"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1-$2-$3-$4\",[\"1[7-9]\"]],[\"(\\\\d{3})(\\\\d{1,2})(\\\\d{3})(\\\\d{4})\",\"$1-$2 $3-$4\",[\"15\"]]],\"0\"],\"IM\":[\"44\",\"00\",\"1624\\\\d{6}|(?:[3578]\\\\d|90)\\\\d{8}\",[10],0,\"0\",0,\"([25-8]\\\\d{5})$|0\",\"1624$1\",0,\"74576|(?:16|7[56])24\"],\"IN\":[\"91\",\"00\",\"(?:000800|[2-9]\\\\d\\\\d)\\\\d{7}|1\\\\d{7,12}\",[8,9,10,11,12,13],[[\"(\\\\d{8})\",\"$1\",[\"5(?:0|2[23]|3[03]|[67]1|88)\",\"5(?:0|2(?:21|3)|3(?:0|3[23])|616|717|888)\",\"5(?:0|2(?:21|3)|3(?:0|3[23])|616|717|8888)\"],0,1],[\"(\\\\d{4})(\\\\d{4,5})\",\"$1 $2\",[\"180\",\"1800\"],0,1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"140\"],0,1],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"11|2[02]|33|4[04]|79[1-7]|80[2-46]\",\"11|2[02]|33|4[04]|79(?:[1-6]|7[19])|80(?:[2-4]|6[0-589])\",\"11|2[02]|33|4[04]|79(?:[124-6]|3(?:[02-9]|1[0-24-9])|7(?:1|9[1-6]))|80(?:[2-4]|6[0-589])\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1(?:2[0-249]|3[0-25]|4[145]|[68]|7[1257])|2(?:1[257]|3[013]|4[01]|5[0137]|6[0158]|78|8[1568])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|5[12]|[78]1)|6(?:12|[2-4]1|5[17]|6[13]|80)|7(?:12|3[134]|4[47]|61|88)|8(?:16|2[014]|3[126]|6[136]|7[078]|8[34]|91)|(?:43|59|75)[15]|(?:1[59]|29|67|72)[14]\",\"1(?:2[0-24]|3[0-25]|4[145]|[59][14]|6[1-9]|7[1257]|8[1-57-9])|2(?:1[257]|3[013]|4[01]|5[0137]|6[058]|78|8[1568]|9[14])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|3[15]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|[578]1|9[15])|674|7(?:(?:2[14]|3[34]|5[15])[2-6]|61[346]|88[0-8])|8(?:70[2-6]|84[235-7]|91[3-7])|(?:1(?:29|60|8[06])|261|552|6(?:12|[2-47]1|5[17]|6[13]|80)|7(?:12|31|4[47])|8(?:16|2[014]|3[126]|6[136]|7[78]|83))[2-7]\",\"1(?:2[0-24]|3[0-25]|4[145]|[59][14]|6[1-9]|7[1257]|8[1-57-9])|2(?:1[257]|3[013]|4[01]|5[0137]|6[058]|78|8[1568]|9[14])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|3[15]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|[578]1|9[15])|6(?:12(?:[2-6]|7[0-8])|74[2-7])|7(?:(?:2[14]|5[15])[2-6]|3171|61[346]|88(?:[2-7]|82))|8(?:70[2-6]|84(?:[2356]|7[19])|91(?:[3-6]|7[19]))|73[134][2-6]|(?:74[47]|8(?:16|2[014]|3[126]|6[136]|7[78]|83))(?:[2-6]|7[19])|(?:1(?:29|60|8[06])|261|552|6(?:[2-4]1|5[17]|6[13]|7(?:1|4[0189])|80)|7(?:12|88[01]))[2-7]\"],\"0$1\",1],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1(?:[2-479]|5[0235-9])|[2-5]|6(?:1[1358]|2[2457-9]|3[2-5]|4[235-7]|5[2-689]|6[24578]|7[235689]|8[1-6])|7(?:1[013-9]|28|3[129]|4[1-35689]|5[29]|6[02-5]|70)|807\",\"1(?:[2-479]|5[0235-9])|[2-5]|6(?:1[1358]|2(?:[2457]|84|95)|3(?:[2-4]|55)|4[235-7]|5[2-689]|6[24578]|7[235689]|8[1-6])|7(?:1(?:[013-8]|9[6-9])|28[6-8]|3(?:17|2[0-49]|9[2-57])|4(?:1[2-4]|[29][0-7]|3[0-8]|[56]|8[0-24-7])|5(?:2[1-3]|9[0-6])|6(?:0[5689]|2[5-9]|3[02-8]|4|5[0-367])|70[13-7])|807[19]\",\"1(?:[2-479]|5(?:[0236-9]|5[013-9]))|[2-5]|6(?:2(?:84|95)|355|83)|73179|807(?:1|9[1-3])|(?:1552|6(?:1[1358]|2[2457]|3[2-4]|4[235-7]|5[2-689]|6[24578]|7[235689]|8[124-6])\\\\d|7(?:1(?:[013-8]\\\\d|9[6-9])|28[6-8]|3(?:2[0-49]|9[2-57])|4(?:1[2-4]|[29][0-7]|3[0-8]|[56]\\\\d|8[0-24-7])|5(?:2[1-3]|9[0-6])|6(?:0[5689]|2[5-9]|3[02-8]|4\\\\d|5[0-367])|70[13-7]))[2-7]\"],\"0$1\",1],[\"(\\\\d{5})(\\\\d{5})\",\"$1 $2\",[\"[6-9]\"],\"0$1\",1],[\"(\\\\d{4})(\\\\d{2,4})(\\\\d{4})\",\"$1 $2 $3\",[\"1(?:6|8[06])\",\"1(?:6|8[06]0)\"],0,1],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"18\"],0,1]],\"0\"],\"IO\":[\"246\",\"00\",\"3\\\\d{6}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"3\"]]]],\"IQ\":[\"964\",\"00\",\"(?:1|7\\\\d\\\\d)\\\\d{7}|[2-6]\\\\d{7,8}\",[8,9,10],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[2-6]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"7\"],\"0$1\"]],\"0\"],\"IR\":[\"98\",\"00\",\"[1-9]\\\\d{9}|(?:[1-8]\\\\d\\\\d|9)\\\\d{3,4}\",[4,5,6,7,10],[[\"(\\\\d{4,5})\",\"$1\",[\"96\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4,5})\",\"$1 $2\",[\"(?:1[137]|2[13-68]|3[1458]|4[145]|5[1468]|6[16]|7[1467]|8[13467])[12689]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"9\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"[1-8]\"],\"0$1\"]],\"0\"],\"IS\":[\"354\",\"00|1(?:0(?:01|[12]0)|100)\",\"(?:38\\\\d|[4-9])\\\\d{6}\",[7,9],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[4-9]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"3\"]]],0,0,0,0,0,0,0,\"00\"],\"IT\":[\"39\",\"00\",\"0\\\\d{5,10}|1\\\\d{8,10}|3(?:[0-8]\\\\d{7,10}|9\\\\d{7,8})|(?:43|55|70)\\\\d{8}|8\\\\d{5}(?:\\\\d{2,4})?\",[6,7,8,9,10,11],[[\"(\\\\d{2})(\\\\d{4,6})\",\"$1 $2\",[\"0[26]\"]],[\"(\\\\d{3})(\\\\d{3,6})\",\"$1 $2\",[\"0[13-57-9][0159]|8(?:03|4[17]|9[2-5])\",\"0[13-57-9][0159]|8(?:03|4[17]|9(?:2|3[04]|[45][0-4]))\"]],[\"(\\\\d{4})(\\\\d{2,6})\",\"$1 $2\",[\"0(?:[13-579][2-46-8]|8[236-8])\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"894\"]],[\"(\\\\d{2})(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"0[26]|5\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"1(?:44|[679])|[378]|43\"]],[\"(\\\\d{3})(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"0[13-57-9][0159]|14\"]],[\"(\\\\d{2})(\\\\d{4})(\\\\d{5})\",\"$1 $2 $3\",[\"0[26]\"]],[\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"0\"]],[\"(\\\\d{3})(\\\\d{4})(\\\\d{4,5})\",\"$1 $2 $3\",[\"3\"]]],0,0,0,0,0,0,[[\"0669[0-79]\\\\d{1,6}|0(?:1(?:[0159]\\\\d|[27][1-5]|31|4[1-4]|6[1356]|8[2-57])|2\\\\d\\\\d|3(?:[0159]\\\\d|2[1-4]|3[12]|[48][1-6]|6[2-59]|7[1-7])|4(?:[0159]\\\\d|[23][1-9]|4[245]|6[1-5]|7[1-4]|81)|5(?:[0159]\\\\d|2[1-5]|3[2-6]|4[1-79]|6[4-6]|7[1-578]|8[3-8])|6(?:[0-57-9]\\\\d|6[0-8])|7(?:[0159]\\\\d|2[12]|3[1-7]|4[2-46]|6[13569]|7[13-6]|8[1-59])|8(?:[0159]\\\\d|2[3-578]|3[1-356]|[6-8][1-5])|9(?:[0159]\\\\d|[238][1-5]|4[12]|6[1-8]|7[1-6]))\\\\d{2,7}\"],[\"3[2-9]\\\\d{7,8}|(?:31|43)\\\\d{8}\",[9,10]],[\"80(?:0\\\\d{3}|3)\\\\d{3}\",[6,9]],[\"(?:0878\\\\d{3}|89(?:2\\\\d|3[04]|4(?:[0-4]|[5-9]\\\\d\\\\d)|5[0-4]))\\\\d\\\\d|(?:1(?:44|6[346])|89(?:38|5[5-9]|9))\\\\d{6}\",[6,8,9,10]],[\"1(?:78\\\\d|99)\\\\d{6}\",[9,10]],0,0,0,[\"55\\\\d{8}\",[10]],[\"84(?:[08]\\\\d{3}|[17])\\\\d{3}\",[6,9]]]],\"JE\":[\"44\",\"00\",\"1534\\\\d{6}|(?:[3578]\\\\d|90)\\\\d{8}\",[10],0,\"0\",0,\"([0-24-8]\\\\d{5})$|0\",\"1534$1\",0,0,[[\"1534[0-24-8]\\\\d{5}\"],[\"7(?:(?:(?:50|82)9|937)\\\\d|7(?:00[378]|97\\\\d))\\\\d{5}\"],[\"80(?:07(?:35|81)|8901)\\\\d{4}\"],[\"(?:8(?:4(?:4(?:4(?:05|42|69)|703)|5(?:041|800))|7(?:0002|1206))|90(?:066[59]|1810|71(?:07|55)))\\\\d{4}\"],[\"701511\\\\d{4}\"],0,[\"(?:3(?:0(?:07(?:35|81)|8901)|3\\\\d{4}|4(?:4(?:4(?:05|42|69)|703)|5(?:041|800))|7(?:0002|1206))|55\\\\d{4})\\\\d{4}\"],[\"76(?:464|652)\\\\d{5}|76(?:0[0-28]|2[356]|34|4[01347]|5[49]|6[0-369]|77|8[14]|9[139])\\\\d{6}\"],[\"56\\\\d{8}\"]]],\"JM\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|658|900)\\\\d{7}\",[10],0,\"1\",0,0,0,0,\"658|876\"],\"JO\":[\"962\",\"00\",\"(?:(?:[2689]|7\\\\d)\\\\d|32|53)\\\\d{6}\",[8,9],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[2356]|87\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{5,6})\",\"$1 $2\",[\"[89]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{7})\",\"$1 $2\",[\"70\"],\"0$1\"],[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"7\"],\"0$1\"]],\"0\"],\"JP\":[\"81\",\"010\",\"00[1-9]\\\\d{6,14}|[257-9]\\\\d{9}|(?:00|[1-9]\\\\d\\\\d)\\\\d{6}\",[8,9,10,11,12,13,14,15,16,17],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1-$2-$3\",[\"(?:12|57|99)0\"],\"0$1\"],[\"(\\\\d{4})(\\\\d)(\\\\d{4})\",\"$1-$2-$3\",[\"1(?:26|3[79]|4[56]|5[4-68]|6[3-5])|499|5(?:76|97)|746|8(?:3[89]|47|51)|9(?:80|9[16])\",\"1(?:267|3(?:7[247]|9[278])|466|5(?:47|58|64)|6(?:3[245]|48|5[4-68]))|499[2468]|5(?:76|97)9|7468|8(?:3(?:8[7-9]|96)|477|51[2-9])|9(?:802|9(?:1[23]|69))|1(?:45|58)[67]\",\"1(?:267|3(?:7[247]|9[278])|466|5(?:47|58|64)|6(?:3[245]|48|5[4-68]))|499[2468]|5(?:769|979[2-69])|7468|8(?:3(?:8[7-9]|96[2457-9])|477|51[2-9])|9(?:802|9(?:1[23]|69))|1(?:45|58)[67]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"60\"],\"0$1\"],[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1-$2-$3\",[\"[36]|4(?:2[09]|7[01])\",\"[36]|4(?:2(?:0|9[02-69])|7(?:0[019]|1))\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"1(?:1|5[45]|77|88|9[69])|2(?:2[1-37]|3[0-269]|4[59]|5|6[24]|7[1-358]|8[1369]|9[0-38])|4(?:[28][1-9]|3[0-57]|[45]|6[248]|7[2-579]|9[29])|5(?:2|3[0459]|4[0-369]|5[29]|8[02389]|9[0-389])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9[2-6])|8(?:2[124589]|3[26-9]|49|51|6|7[0-468]|8[68]|9[019])|9(?:[23][1-9]|4[15]|5[138]|6[1-3]|7[156]|8[189]|9[1-489])\",\"1(?:1|5(?:4[018]|5[017])|77|88|9[69])|2(?:2(?:[127]|3[014-9])|3[0-269]|4[59]|5(?:[1-3]|5[0-69]|9[19])|62|7(?:[1-35]|8[0189])|8(?:[16]|3[0134]|9[0-5])|9(?:[028]|17))|4(?:2(?:[13-79]|8[014-6])|3[0-57]|[45]|6[248]|7[2-47]|8[1-9]|9[29])|5(?:2|3(?:[045]|9[0-8])|4[0-369]|5[29]|8[02389]|9[0-3])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9(?:[23]|4[0-59]|5[01569]|6[0167]))|8(?:2(?:[1258]|4[0-39]|9[0-2469])|3(?:[29]|60)|49|51|6(?:[0-24]|36|5[0-3589]|7[23]|9[01459])|7[0-468]|8[68])|9(?:[23][1-9]|4[15]|5[138]|6[1-3]|7[156]|8[189]|9(?:[1289]|3[34]|4[0178]))|(?:264|837)[016-9]|2(?:57|93)[015-9]|(?:25[0468]|422|838)[01]|(?:47[59]|59[89]|8(?:6[68]|9))[019]\",\"1(?:1|5(?:4[018]|5[017])|77|88|9[69])|2(?:2[127]|3[0-269]|4[59]|5(?:[1-3]|5[0-69]|9(?:17|99))|6(?:2|4[016-9])|7(?:[1-35]|8[0189])|8(?:[16]|3[0134]|9[0-5])|9(?:[028]|17))|4(?:2(?:[13-79]|8[014-6])|3[0-57]|[45]|6[248]|7[2-47]|9[29])|5(?:2|3(?:[045]|9(?:[0-58]|6[4-9]|7[0-35689]))|4[0-369]|5[29]|8[02389]|9[0-3])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9(?:[23]|4[0-59]|5[01569]|6[0167]))|8(?:2(?:[1258]|4[0-39]|9[0169])|3(?:[29]|60|7(?:[017-9]|6[6-8]))|49|51|6(?:[0-24]|36[2-57-9]|5(?:[0-389]|5[23])|6(?:[01]|9[178])|7(?:2[2-468]|3[78])|9[0145])|7[0-468]|8[68])|9(?:4[15]|5[138]|7[156]|8[189]|9(?:[1289]|3(?:31|4[357])|4[0178]))|(?:8294|96)[1-3]|2(?:57|93)[015-9]|(?:223|8699)[014-9]|(?:25[0468]|422|838)[01]|(?:48|8292|9[23])[1-9]|(?:47[59]|59[89]|8(?:68|9))[019]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{4})\",\"$1-$2-$3\",[\"[14]|[289][2-9]|5[3-9]|7[2-4679]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"800\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1-$2-$3\",[\"[257-9]\"],\"0$1\"]],\"0\",0,\"(000[259]\\\\d{6})$|(?:(?:003768)0?)|0\",\"$1\"],\"KE\":[\"254\",\"000\",\"(?:[17]\\\\d\\\\d|900)\\\\d{6}|(?:2|80)0\\\\d{6,7}|[4-6]\\\\d{6,8}\",[7,8,9,10],[[\"(\\\\d{2})(\\\\d{5,7})\",\"$1 $2\",[\"[24-6]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{6})\",\"$1 $2\",[\"[17]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[89]\"],\"0$1\"]],\"0\"],\"KG\":[\"996\",\"00\",\"8\\\\d{9}|[235-9]\\\\d{8}\",[9,10],[[\"(\\\\d{4})(\\\\d{5})\",\"$1 $2\",[\"3(?:1[346]|[24-79])\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[235-79]|88\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d)(\\\\d{2,3})\",\"$1 $2 $3 $4\",[\"8\"],\"0$1\"]],\"0\"],\"KH\":[\"855\",\"00[14-9]\",\"1\\\\d{9}|[1-9]\\\\d{7,8}\",[8,9,10],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[1-9]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1\"]]],\"0\"],\"KI\":[\"686\",\"00\",\"(?:[37]\\\\d|6[0-79])\\\\d{6}|(?:[2-48]\\\\d|50)\\\\d{3}\",[5,8],0,\"0\"],\"KM\":[\"269\",\"00\",\"[3478]\\\\d{6}\",[7],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"[3478]\"]]]],\"KN\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-7]\\\\d{6})$|1\",\"869$1\",0,\"869\"],\"KP\":[\"850\",\"00|99\",\"85\\\\d{6}|(?:19\\\\d|[2-7])\\\\d{7}\",[8,10],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[2-7]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"],\"0$1\"]],\"0\"],\"KR\":[\"82\",\"00(?:[125689]|3(?:[46]5|91)|7(?:00|27|3|55|6[126]))\",\"00[1-9]\\\\d{8,11}|(?:[12]|5\\\\d{3})\\\\d{7}|[13-6]\\\\d{9}|(?:[1-6]\\\\d|80)\\\\d{7}|[3-6]\\\\d{4,5}|(?:00|7)0\\\\d{8}\",[5,6,8,9,10,11,12,13,14],[[\"(\\\\d{2})(\\\\d{3,4})\",\"$1-$2\",[\"(?:3[1-3]|[46][1-4]|5[1-5])1\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{4})\",\"$1-$2\",[\"1\"]],[\"(\\\\d)(\\\\d{3,4})(\\\\d{4})\",\"$1-$2-$3\",[\"2\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"60|8\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3,4})(\\\\d{4})\",\"$1-$2-$3\",[\"[1346]|5[1-5]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1-$2-$3\",[\"[57]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{5})(\\\\d{4})\",\"$1-$2-$3\",[\"5\"],\"0$1\"]],\"0\",0,\"0(8(?:[1-46-8]|5\\\\d\\\\d))?\"],\"KW\":[\"965\",\"00\",\"18\\\\d{5}|(?:[2569]\\\\d|41)\\\\d{6}\",[7,8],[[\"(\\\\d{4})(\\\\d{3,4})\",\"$1 $2\",[\"[169]|2(?:[235]|4[1-35-9])|52\"]],[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"[245]\"]]]],\"KY\":[\"1\",\"011\",\"(?:345|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-9]\\\\d{6})$|1\",\"345$1\",0,\"345\"],\"KZ\":[\"7\",\"810\",\"(?:33622|8\\\\d{8})\\\\d{5}|[78]\\\\d{9}\",[10,14],0,\"8\",0,0,0,0,\"33|7\",0,\"8~10\"],\"LA\":[\"856\",\"00\",\"[23]\\\\d{9}|3\\\\d{8}|(?:[235-8]\\\\d|41)\\\\d{6}\",[8,9,10],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"2[13]|3[14]|[4-8]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"30[013-9]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"[23]\"],\"0$1\"]],\"0\"],\"LB\":[\"961\",\"00\",\"[27-9]\\\\d{7}|[13-9]\\\\d{6}\",[7,8],[[\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[13-69]|7(?:[2-57]|62|8[0-7]|9[04-9])|8[02-9]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[27-9]\"]]],\"0\"],\"LC\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|758|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-8]\\\\d{6})$|1\",\"758$1\",0,\"758\"],\"LI\":[\"423\",\"00\",\"[68]\\\\d{8}|(?:[2378]\\\\d|90)\\\\d{5}\",[7,9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"[2379]|8(?:0[09]|7)\",\"[2379]|8(?:0(?:02|9)|7)\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"69\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"6\"]]],\"0\",0,\"(1001)|0\"],\"LK\":[\"94\",\"00\",\"[1-9]\\\\d{8}\",[9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"7\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[1-689]\"],\"0$1\"]],\"0\"],\"LR\":[\"231\",\"00\",\"(?:[245]\\\\d|33|77|88)\\\\d{7}|(?:2\\\\d|[4-6])\\\\d{6}\",[7,8,9],[[\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"4[67]|[56]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"2\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[2-578]\"],\"0$1\"]],\"0\"],\"LS\":[\"266\",\"00\",\"(?:[256]\\\\d\\\\d|800)\\\\d{5}\",[8],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[2568]\"]]]],\"LT\":[\"370\",\"00\",\"(?:[3469]\\\\d|52|[78]0)\\\\d{6}\",[8],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"52[0-7]\"],\"(0-$1)\",1],[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"[7-9]\"],\"0 $1\",1],[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"37|4(?:[15]|6[1-8])\"],\"(0-$1)\",1],[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"[3-6]\"],\"(0-$1)\",1]],\"0\",0,\"[08]\"],\"LU\":[\"352\",\"00\",\"35[013-9]\\\\d{4,8}|6\\\\d{8}|35\\\\d{2,4}|(?:[2457-9]\\\\d|3[0-46-9])\\\\d{2,9}\",[4,5,6,7,8,9,10,11],[[\"(\\\\d{2})(\\\\d{3})\",\"$1 $2\",[\"2(?:0[2-689]|[2-9])|[3-57]|8(?:0[2-9]|[13-9])|9(?:0[89]|[2-579])\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"2(?:0[2-689]|[2-9])|[3-57]|8(?:0[2-9]|[13-9])|9(?:0[89]|[2-579])\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"20[2-689]\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{1,2})\",\"$1 $2 $3 $4\",[\"2(?:[0367]|4[3-8])\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"80[01]|90[015]\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"20\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"6\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{1,2})\",\"$1 $2 $3 $4 $5\",[\"2(?:[0367]|4[3-8])\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{1,5})\",\"$1 $2 $3 $4\",[\"[3-57]|8[13-9]|9(?:0[89]|[2-579])|(?:2|80)[2-9]\"]]],0,0,\"(15(?:0[06]|1[12]|[35]5|4[04]|6[26]|77|88|99)\\\\d)\"],\"LV\":[\"371\",\"00\",\"(?:[268]\\\\d|90)\\\\d{6}\",[8],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[269]|8[01]\"]]]],\"LY\":[\"218\",\"00\",\"[2-9]\\\\d{8}\",[9],[[\"(\\\\d{2})(\\\\d{7})\",\"$1-$2\",[\"[2-9]\"],\"0$1\"]],\"0\"],\"MA\":[\"212\",\"00\",\"[5-8]\\\\d{8}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"5[45]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{5})\",\"$1-$2\",[\"5(?:2[2-46-9]|3[3-9]|9)|8(?:0[89]|92)\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{7})\",\"$1-$2\",[\"8\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{6})\",\"$1-$2\",[\"[5-7]\"],\"0$1\"]],\"0\",0,0,0,0,0,[[\"5(?:2(?:[0-25-79]\\\\d|3[1-578]|4[02-46-8]|8[0235-7])|3(?:[0-47]\\\\d|5[02-9]|6[02-8]|8[014-9]|9[3-9])|(?:4[067]|5[03])\\\\d)\\\\d{5}\"],[\"(?:6(?:[0-79]\\\\d|8[0-247-9])|7(?:[0167]\\\\d|2[0-4]|5[01]|8[0-3]))\\\\d{6}\"],[\"80[0-7]\\\\d{6}\"],[\"89\\\\d{7}\"],0,0,0,0,[\"(?:592(?:4[0-2]|93)|80[89]\\\\d\\\\d)\\\\d{4}\"]]],\"MC\":[\"377\",\"00\",\"(?:[3489]|6\\\\d)\\\\d{7}\",[8,9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"4\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[389]\"]],[\"(\\\\d)(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4 $5\",[\"6\"],\"0$1\"]],\"0\"],\"MD\":[\"373\",\"00\",\"(?:[235-7]\\\\d|[89]0)\\\\d{6}\",[8],[[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"[89]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"22|3\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"[25-7]\"],\"0$1\"]],\"0\"],\"ME\":[\"382\",\"00\",\"(?:20|[3-79]\\\\d)\\\\d{6}|80\\\\d{6,7}\",[8,9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[2-9]\"],\"0$1\"]],\"0\"],\"MF\":[\"590\",\"00\",\"590\\\\d{6}|(?:69|80|9\\\\d)\\\\d{7}\",[9],0,\"0\",0,0,0,0,0,[[\"590(?:0[079]|[14]3|[27][79]|3[03-7]|5[0-268]|87)\\\\d{4}\"],[\"69(?:0\\\\d\\\\d|1(?:2[2-9]|3[0-5])|4(?:0[89]|1[2-6]|9\\\\d)|6(?:1[016-9]|5[0-4]|[67]\\\\d))\\\\d{4}\"],[\"80[0-5]\\\\d{6}\"],0,0,0,0,0,[\"9(?:(?:39[5-7]|76[018])\\\\d|475[0-5])\\\\d{4}\"]]],\"MG\":[\"261\",\"00\",\"[23]\\\\d{8}\",[9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{3})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[23]\"],\"0$1\"]],\"0\",0,\"([24-9]\\\\d{6})$|0\",\"20$1\"],\"MH\":[\"692\",\"011\",\"329\\\\d{4}|(?:[256]\\\\d|45)\\\\d{5}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"[2-6]\"]]],\"1\"],\"MK\":[\"389\",\"00\",\"[2-578]\\\\d{7}\",[8],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"2|34[47]|4(?:[37]7|5[47]|64)\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[347]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d)(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[58]\"],\"0$1\"]],\"0\"],\"ML\":[\"223\",\"00\",\"[24-9]\\\\d{7}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[24-9]\"]]]],\"MM\":[\"95\",\"00\",\"1\\\\d{5,7}|95\\\\d{6}|(?:[4-7]|9[0-46-9])\\\\d{6,8}|(?:2|8\\\\d)\\\\d{5,8}\",[6,7,8,9,10],[[\"(\\\\d)(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"16|2\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"[45]|6(?:0[23]|[1-689]|7[235-7])|7(?:[0-4]|5[2-7])|8[1-6]\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[12]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[4-7]|8[1-35]\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{4,6})\",\"$1 $2 $3\",[\"9(?:2[0-4]|[35-9]|4[137-9])\"],\"0$1\"],[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"2\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"92\"],\"0$1\"],[\"(\\\\d)(\\\\d{5})(\\\\d{4})\",\"$1 $2 $3\",[\"9\"],\"0$1\"]],\"0\"],\"MN\":[\"976\",\"001\",\"[12]\\\\d{7,9}|[5-9]\\\\d{7}\",[8,9,10],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"[12]1\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[5-9]\"]],[\"(\\\\d{3})(\\\\d{5,6})\",\"$1 $2\",[\"[12]2[1-3]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{5,6})\",\"$1 $2\",[\"[12](?:27|3[2-8]|4[2-68]|5[1-4689])\",\"[12](?:27|3[2-8]|4[2-68]|5[1-4689])[0-3]\"],\"0$1\"],[\"(\\\\d{5})(\\\\d{4,5})\",\"$1 $2\",[\"[12]\"],\"0$1\"]],\"0\"],\"MO\":[\"853\",\"00\",\"0800\\\\d{3}|(?:28|[68]\\\\d)\\\\d{6}\",[7,8],[[\"(\\\\d{4})(\\\\d{3})\",\"$1 $2\",[\"0\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[268]\"]]]],\"MP\":[\"1\",\"011\",\"[58]\\\\d{9}|(?:67|90)0\\\\d{7}\",[10],0,\"1\",0,\"([2-9]\\\\d{6})$|1\",\"670$1\",0,\"670\"],\"MQ\":[\"596\",\"00\",\"596\\\\d{6}|(?:69|80|9\\\\d)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[569]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"8\"],\"0$1\"]],\"0\"],\"MR\":[\"222\",\"00\",\"(?:[2-4]\\\\d\\\\d|800)\\\\d{5}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[2-48]\"]]]],\"MS\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|664|900)\\\\d{7}\",[10],0,\"1\",0,\"([34]\\\\d{6})$|1\",\"664$1\",0,\"664\"],\"MT\":[\"356\",\"00\",\"3550\\\\d{4}|(?:[2579]\\\\d\\\\d|800)\\\\d{5}\",[8],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[2357-9]\"]]]],\"MU\":[\"230\",\"0(?:0|[24-7]0|3[03])\",\"(?:[57]|8\\\\d\\\\d)\\\\d{7}|[2-468]\\\\d{6}\",[7,8,10],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[2-46]|8[013]\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[57]\"]],[\"(\\\\d{5})(\\\\d{5})\",\"$1 $2\",[\"8\"]]],0,0,0,0,0,0,0,\"020\"],\"MV\":[\"960\",\"0(?:0|19)\",\"(?:800|9[0-57-9]\\\\d)\\\\d{7}|[34679]\\\\d{6}\",[7,10],[[\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"[34679]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[89]\"]]],0,0,0,0,0,0,0,\"00\"],\"MW\":[\"265\",\"00\",\"(?:[1289]\\\\d|31|77)\\\\d{7}|1\\\\d{6}\",[7,9],[[\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1[2-9]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"2\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[137-9]\"],\"0$1\"]],\"0\"],\"MX\":[\"52\",\"0[09]\",\"1(?:(?:22|44|7[27]|87|99)[1-9]|65[0-689])\\\\d{7}|(?:1(?:[01]\\\\d|2[13-9]|[35][1-9]|4[0-35-9]|6[0-46-9]|7[013-689]|8[1-69]|9[1-8])|[2-9]\\\\d)\\\\d{8}\",[10,11],[[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"33|5[56]|81\"],0,1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[2-9]\"],0,1],[\"(\\\\d)(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$2 $3 $4\",[\"1(?:33|5[56]|81)\"],0,1],[\"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$2 $3 $4\",[\"1\"],0,1]],\"01\",0,\"0(?:[12]|4[45])|1\",0,0,0,0,\"00\"],\"MY\":[\"60\",\"00\",\"1\\\\d{8,9}|(?:3\\\\d|[4-9])\\\\d{7}\",[8,9,10],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1-$2 $3\",[\"[4-79]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1-$2 $3\",[\"1(?:[02469]|[378][1-9]|53)|8\",\"1(?:[02469]|[37][1-9]|53|8(?:[1-46-9]|5[7-9]))|8\"],\"0$1\"],[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1-$2 $3\",[\"3\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{2})(\\\\d{4})\",\"$1-$2-$3-$4\",[\"1(?:[367]|80)\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1-$2 $3\",[\"15\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1-$2 $3\",[\"1\"],\"0$1\"]],\"0\"],\"MZ\":[\"258\",\"00\",\"(?:2|8\\\\d)\\\\d{7}\",[8,9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"2|8[2-79]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"]]]],\"NA\":[\"264\",\"00\",\"[68]\\\\d{7,8}\",[8,9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"88\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"6\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"87\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"],\"0$1\"]],\"0\"],\"NC\":[\"687\",\"00\",\"(?:050|[2-57-9]\\\\d\\\\d)\\\\d{3}\",[6],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1.$2.$3\",[\"[02-57-9]\"]]]],\"NE\":[\"227\",\"00\",\"[027-9]\\\\d{7}\",[8],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"08\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[089]|2[013]|7[047]\"]]]],\"NF\":[\"672\",\"00\",\"[13]\\\\d{5}\",[6],[[\"(\\\\d{2})(\\\\d{4})\",\"$1 $2\",[\"1[0-3]\"]],[\"(\\\\d)(\\\\d{5})\",\"$1 $2\",[\"[13]\"]]],0,0,\"([0-258]\\\\d{4})$\",\"3$1\"],\"NG\":[\"234\",\"009\",\"2[0-24-9]\\\\d{8}|[78]\\\\d{10,13}|[7-9]\\\\d{9}|[1-9]\\\\d{7}|[124-7]\\\\d{6}\",[7,8,10,11,12,13,14],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"78\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[12]|9(?:0[3-9]|[1-9])\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2,3})\",\"$1 $2 $3\",[\"[3-6]|7(?:0[0-689]|[1-79])|8[2-9]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[7-9]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"20[129]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"2\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{4})(\\\\d{4,5})\",\"$1 $2 $3\",[\"[78]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{5})(\\\\d{5,6})\",\"$1 $2 $3\",[\"[78]\"],\"0$1\"]],\"0\"],\"NI\":[\"505\",\"00\",\"(?:1800|[25-8]\\\\d{3})\\\\d{4}\",[8],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[125-8]\"]]]],\"NL\":[\"31\",\"00\",\"(?:[124-7]\\\\d\\\\d|3(?:[02-9]\\\\d|1[0-8]))\\\\d{6}|8\\\\d{6,9}|9\\\\d{6,10}|1\\\\d{4,5}\",[5,6,7,8,9,10,11],[[\"(\\\\d{3})(\\\\d{4,7})\",\"$1 $2\",[\"[89]0\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{7})\",\"$1 $2\",[\"66\"],\"0$1\"],[\"(\\\\d)(\\\\d{8})\",\"$1 $2\",[\"6\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1[16-8]|2[259]|3[124]|4[17-9]|5[124679]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[1-578]|91\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{5})\",\"$1 $2 $3\",[\"9\"],\"0$1\"]],\"0\"],\"NO\":[\"47\",\"00\",\"(?:0|[2-9]\\\\d{3})\\\\d{4}\",[5,8],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[2-79]\"]]],0,0,0,0,0,\"[02-689]|7[0-8]\"],\"NP\":[\"977\",\"00\",\"(?:1\\\\d|9)\\\\d{9}|[1-9]\\\\d{7}\",[8,10,11],[[\"(\\\\d)(\\\\d{7})\",\"$1-$2\",[\"1[2-6]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{6})\",\"$1-$2\",[\"1[01]|[2-8]|9(?:[1-59]|[67][2-6])\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{7})\",\"$1-$2\",[\"9\"]]],\"0\"],\"NR\":[\"674\",\"00\",\"(?:444|(?:55|8\\\\d)\\\\d|666)\\\\d{4}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[4-68]\"]]]],\"NU\":[\"683\",\"00\",\"(?:[4-7]|888\\\\d)\\\\d{3}\",[4,7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"8\"]]]],\"NZ\":[\"64\",\"0(?:0|161)\",\"[1289]\\\\d{9}|50\\\\d{5}(?:\\\\d{2,3})?|[27-9]\\\\d{7,8}|(?:[34]\\\\d|6[0-35-9])\\\\d{6}|8\\\\d{4,6}\",[5,6,7,8,9,10],[[\"(\\\\d{2})(\\\\d{3,8})\",\"$1 $2\",[\"8[1-79]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2,3})\",\"$1 $2 $3\",[\"50[036-8]|8|90\",\"50(?:[0367]|88)|8|90\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"24|[346]|7[2-57-9]|9[2-9]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"2(?:10|74)|[589]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"1|2[028]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,5})\",\"$1 $2 $3\",[\"2(?:[169]|7[0-35-9])|7\"],\"0$1\"]],\"0\",0,0,0,0,0,0,\"00\"],\"OM\":[\"968\",\"00\",\"(?:1505|[279]\\\\d{3}|500)\\\\d{4}|800\\\\d{5,6}\",[7,8,9],[[\"(\\\\d{3})(\\\\d{4,6})\",\"$1 $2\",[\"[58]\"]],[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"2\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[179]\"]]]],\"PA\":[\"507\",\"00\",\"(?:00800|8\\\\d{3})\\\\d{6}|[68]\\\\d{7}|[1-57-9]\\\\d{6}\",[7,8,10,11],[[\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"[1-57-9]\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1-$2\",[\"[68]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"]]]],\"PE\":[\"51\",\"00|19(?:1[124]|77|90)00\",\"(?:[14-8]|9\\\\d)\\\\d{7}\",[8,9],[[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"80\"],\"(0$1)\"],[\"(\\\\d)(\\\\d{7})\",\"$1 $2\",[\"1\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"[4-8]\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"9\"]]],\"0\",0,0,0,0,0,0,\"00\",\" Anexo \"],\"PF\":[\"689\",\"00\",\"4\\\\d{5}(?:\\\\d{2})?|8\\\\d{7,8}\",[6,8,9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"44\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"4|8[7-9]\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"8\"]]]],\"PG\":[\"675\",\"00|140[1-3]\",\"(?:180|[78]\\\\d{3})\\\\d{4}|(?:[2-589]\\\\d|64)\\\\d{5}\",[7,8],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"18|[2-69]|85\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[78]\"]]],0,0,0,0,0,0,0,\"00\"],\"PH\":[\"63\",\"00\",\"(?:[2-7]|9\\\\d)\\\\d{8}|2\\\\d{5}|(?:1800|8)\\\\d{7,9}\",[6,8,9,10,11,12,13],[[\"(\\\\d)(\\\\d{5})\",\"$1 $2\",[\"2\"],\"(0$1)\"],[\"(\\\\d{4})(\\\\d{4,6})\",\"$1 $2\",[\"3(?:23|39|46)|4(?:2[3-6]|[35]9|4[26]|76)|544|88[245]|(?:52|64|86)2\",\"3(?:230|397|461)|4(?:2(?:35|[46]4|51)|396|4(?:22|63)|59[347]|76[15])|5(?:221|446)|642[23]|8(?:622|8(?:[24]2|5[13]))\"],\"(0$1)\"],[\"(\\\\d{5})(\\\\d{4})\",\"$1 $2\",[\"346|4(?:27|9[35])|883\",\"3469|4(?:279|9(?:30|56))|8834\"],\"(0$1)\"],[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"2\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[3-7]|8[2-8]\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[89]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"]],[\"(\\\\d{4})(\\\\d{1,2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3 $4\",[\"1\"]]],\"0\"],\"PK\":[\"92\",\"00\",\"122\\\\d{6}|[24-8]\\\\d{10,11}|9(?:[013-9]\\\\d{8,10}|2(?:[01]\\\\d\\\\d|2(?:[06-8]\\\\d|1[01]))\\\\d{7})|(?:[2-8]\\\\d{3}|92(?:[0-7]\\\\d|8[1-9]))\\\\d{6}|[24-9]\\\\d{8}|[89]\\\\d{7}\",[8,9,10,11,12],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{2,7})\",\"$1 $2 $3\",[\"[89]0\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{5})\",\"$1 $2\",[\"1\"]],[\"(\\\\d{3})(\\\\d{6,7})\",\"$1 $2\",[\"2(?:3[2358]|4[2-4]|9[2-8])|45[3479]|54[2-467]|60[468]|72[236]|8(?:2[2-689]|3[23578]|4[3478]|5[2356])|9(?:2[2-8]|3[27-9]|4[2-6]|6[3569]|9[25-8])\",\"9(?:2[3-8]|98)|(?:2(?:3[2358]|4[2-4]|9[2-8])|45[3479]|54[2-467]|60[468]|72[236]|8(?:2[2-689]|3[23578]|4[3478]|5[2356])|9(?:22|3[27-9]|4[2-6]|6[3569]|9[25-7]))[2-9]\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{7,8})\",\"$1 $2\",[\"(?:2[125]|4[0-246-9]|5[1-35-7]|6[1-8]|7[14]|8[16]|91)[2-9]\"],\"(0$1)\"],[\"(\\\\d{5})(\\\\d{5})\",\"$1 $2\",[\"58\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{7})\",\"$1 $2\",[\"3\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"2[125]|4[0-246-9]|5[1-35-7]|6[1-8]|7[14]|8[16]|91\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"[24-9]\"],\"(0$1)\"]],\"0\"],\"PL\":[\"48\",\"00\",\"(?:6|8\\\\d\\\\d)\\\\d{7}|[1-9]\\\\d{6}(?:\\\\d{2})?|[26]\\\\d{5}\",[6,7,8,9,10],[[\"(\\\\d{5})\",\"$1\",[\"19\"]],[\"(\\\\d{3})(\\\\d{3})\",\"$1 $2\",[\"11|20|64\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"(?:1[2-8]|2[2-69]|3[2-4]|4[1-468]|5[24-689]|6[1-3578]|7[14-7]|8[1-79]|9[145])1\",\"(?:1[2-8]|2[2-69]|3[2-4]|4[1-468]|5[24-689]|6[1-3578]|7[14-7]|8[1-79]|9[145])19\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2,3})\",\"$1 $2 $3\",[\"64\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"21|39|45|5[0137]|6[0469]|7[02389]|8(?:0[14]|8)\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"1[2-8]|[2-7]|8[1-79]|9[145]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"8\"]]]],\"PM\":[\"508\",\"00\",\"[45]\\\\d{5}|(?:708|80\\\\d)\\\\d{6}\",[6,9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"[45]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"7\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"8\"],\"0$1\"]],\"0\"],\"PR\":[\"1\",\"011\",\"(?:[589]\\\\d\\\\d|787)\\\\d{7}\",[10],0,\"1\",0,0,0,0,\"787|939\"],\"PS\":[\"970\",\"00\",\"[2489]2\\\\d{6}|(?:1\\\\d|5)\\\\d{8}\",[8,9,10],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[2489]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"5\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1\"]]],\"0\"],\"PT\":[\"351\",\"00\",\"1693\\\\d{5}|(?:[26-9]\\\\d|30)\\\\d{7}\",[9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"2[12]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"16|[236-9]\"]]]],\"PW\":[\"680\",\"01[12]\",\"(?:[24-8]\\\\d\\\\d|345|900)\\\\d{4}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[2-9]\"]]]],\"PY\":[\"595\",\"00\",\"59\\\\d{4,6}|9\\\\d{5,10}|(?:[2-46-8]\\\\d|5[0-8])\\\\d{4,7}\",[6,7,8,9,10,11],[[\"(\\\\d{3})(\\\\d{3,6})\",\"$1 $2\",[\"[2-9]0\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"[26]1|3[289]|4[1246-8]|7[1-3]|8[1-36]\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{4,5})\",\"$1 $2\",[\"2[279]|3[13-5]|4[359]|5|6(?:[34]|7[1-46-8])|7[46-8]|85\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"2[14-68]|3[26-9]|4[1246-8]|6(?:1|75)|7[1-35]|8[1-36]\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"87\"]],[\"(\\\\d{3})(\\\\d{6})\",\"$1 $2\",[\"9(?:[5-79]|8[1-7])\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[2-8]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"9\"]]],\"0\"],\"QA\":[\"974\",\"00\",\"800\\\\d{4}|(?:2|800)\\\\d{6}|(?:0080|[3-7])\\\\d{7}\",[7,8,9,11],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"2[16]|8\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[3-7]\"]]]],\"RE\":[\"262\",\"00\",\"(?:26|[689]\\\\d)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[2689]\"],\"0$1\"]],\"0\",0,0,0,0,0,[[\"26(?:2\\\\d\\\\d|3(?:0\\\\d|1[0-6]))\\\\d{4}\"],[\"69(?:2\\\\d\\\\d|3(?:[06][0-6]|1[013]|2[0-2]|3[0-39]|4\\\\d|5[0-5]|7[0-37]|8[0-8]|9[0-479]))\\\\d{4}\"],[\"80\\\\d{7}\"],[\"89[1-37-9]\\\\d{6}\"],0,0,0,0,[\"9(?:399[0-3]|479[0-5]|76(?:2[27]|3[0-37]))\\\\d{4}\"],[\"8(?:1[019]|2[0156]|84|90)\\\\d{6}\"]]],\"RO\":[\"40\",\"00\",\"(?:[236-8]\\\\d|90)\\\\d{7}|[23]\\\\d{5}\",[6,9],[[\"(\\\\d{3})(\\\\d{3})\",\"$1 $2\",[\"2[3-6]\",\"2[3-6]\\\\d9\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})\",\"$1 $2\",[\"219|31\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[23]1\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[236-9]\"],\"0$1\"]],\"0\",0,0,0,0,0,0,0,\" int \"],\"RS\":[\"381\",\"00\",\"38[02-9]\\\\d{6,9}|6\\\\d{7,9}|90\\\\d{4,8}|38\\\\d{5,6}|(?:7\\\\d\\\\d|800)\\\\d{3,9}|(?:[12]\\\\d|3[0-79])\\\\d{5,10}\",[6,7,8,9,10,11,12],[[\"(\\\\d{3})(\\\\d{3,9})\",\"$1 $2\",[\"(?:2[389]|39)0|[7-9]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{5,10})\",\"$1 $2\",[\"[1-36]\"],\"0$1\"]],\"0\"],\"RU\":[\"7\",\"810\",\"8\\\\d{13}|[347-9]\\\\d{9}\",[10,14],[[\"(\\\\d{4})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"7(?:1[0-8]|2[1-9])\",\"7(?:1(?:[0-356]2|4[29]|7|8[27])|2(?:1[23]|[2-9]2))\",\"7(?:1(?:[0-356]2|4[29]|7|8[27])|2(?:13[03-69]|62[013-9]))|72[1-57-9]2\"],\"8 ($1)\",1],[\"(\\\\d{5})(\\\\d)(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"7(?:1[0-68]|2[1-9])\",\"7(?:1(?:[06][3-6]|[18]|2[35]|[3-5][3-5])|2(?:[13][3-5]|[24-689]|7[457]))\",\"7(?:1(?:0(?:[356]|4[023])|[18]|2(?:3[013-9]|5)|3[45]|43[013-79]|5(?:3[1-8]|4[1-7]|5)|6(?:3[0-35-9]|[4-6]))|2(?:1(?:3[178]|[45])|[24-689]|3[35]|7[457]))|7(?:14|23)4[0-8]|71(?:33|45)[1-79]\"],\"8 ($1)\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"7\"],\"8 ($1)\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2-$3-$4\",[\"[349]|8(?:[02-7]|1[1-8])\"],\"8 ($1)\",1],[\"(\\\\d{4})(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"8\"],\"8 ($1)\"]],\"8\",0,0,0,0,\"3[04-689]|[489]\",0,\"8~10\"],\"RW\":[\"250\",\"00\",\"(?:06|[27]\\\\d\\\\d|[89]00)\\\\d{6}\",[8,9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"0\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"2\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[7-9]\"],\"0$1\"]],\"0\"],\"SA\":[\"966\",\"00\",\"92\\\\d{7}|(?:[15]|8\\\\d)\\\\d{8}\",[9,10],[[\"(\\\\d{4})(\\\\d{5})\",\"$1 $2\",[\"9\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"5\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"81\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"]]],\"0\"],\"SB\":[\"677\",\"0[01]\",\"(?:[1-6]|[7-9]\\\\d\\\\d)\\\\d{4}\",[5,7],[[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"7|8[4-9]|9(?:[1-8]|9[0-8])\"]]]],\"SC\":[\"248\",\"010|0[0-2]\",\"800\\\\d{4}|(?:[249]\\\\d|64)\\\\d{5}\",[7],[[\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[246]|9[57]\"]]],0,0,0,0,0,0,0,\"00\"],\"SD\":[\"249\",\"00\",\"[19]\\\\d{8}\",[9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[19]\"],\"0$1\"]],\"0\"],\"SE\":[\"46\",\"00\",\"(?:[26]\\\\d\\\\d|9)\\\\d{9}|[1-9]\\\\d{8}|[1-689]\\\\d{7}|[1-4689]\\\\d{6}|2\\\\d{5}\",[6,7,8,9,10],[[\"(\\\\d{2})(\\\\d{2,3})(\\\\d{2})\",\"$1-$2 $3\",[\"20\"],\"0$1\",0,\"$1 $2 $3\"],[\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"9(?:00|39|44|9)\"],\"0$1\",0,\"$1 $2\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})\",\"$1-$2 $3\",[\"[12][136]|3[356]|4[0246]|6[03]|90[1-9]\"],\"0$1\",0,\"$1 $2 $3\"],[\"(\\\\d)(\\\\d{2,3})(\\\\d{2})(\\\\d{2})\",\"$1-$2 $3 $4\",[\"8\"],\"0$1\",0,\"$1 $2 $3 $4\"],[\"(\\\\d{3})(\\\\d{2,3})(\\\\d{2})\",\"$1-$2 $3\",[\"1[2457]|2(?:[247-9]|5[0138])|3[0247-9]|4[1357-9]|5[0-35-9]|6(?:[125689]|4[02-57]|7[0-2])|9(?:[125-8]|3[02-5]|4[0-3])\"],\"0$1\",0,\"$1 $2 $3\"],[\"(\\\\d{3})(\\\\d{2,3})(\\\\d{3})\",\"$1-$2 $3\",[\"9(?:00|39|44)\"],\"0$1\",0,\"$1 $2 $3\"],[\"(\\\\d{2})(\\\\d{2,3})(\\\\d{2})(\\\\d{2})\",\"$1-$2 $3 $4\",[\"1[13689]|2[0136]|3[1356]|4[0246]|54|6[03]|90[1-9]\"],\"0$1\",0,\"$1 $2 $3 $4\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1-$2 $3 $4\",[\"10|7\"],\"0$1\",0,\"$1 $2 $3 $4\"],[\"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{2})\",\"$1-$2 $3 $4\",[\"8\"],\"0$1\",0,\"$1 $2 $3 $4\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1-$2 $3 $4\",[\"[13-5]|2(?:[247-9]|5[0138])|6(?:[124-689]|7[0-2])|9(?:[125-8]|3[02-5]|4[0-3])\"],\"0$1\",0,\"$1 $2 $3 $4\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1-$2 $3 $4\",[\"9\"],\"0$1\",0,\"$1 $2 $3 $4\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1-$2 $3 $4 $5\",[\"[26]\"],\"0$1\",0,\"$1 $2 $3 $4 $5\"]],\"0\"],\"SG\":[\"65\",\"0[0-3]\\\\d\",\"(?:(?:1\\\\d|8)\\\\d\\\\d|7000)\\\\d{7}|[3689]\\\\d{7}\",[8,10,11],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[369]|8(?:0[1-9]|[1-9])\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"]],[\"(\\\\d{4})(\\\\d{4})(\\\\d{3})\",\"$1 $2 $3\",[\"7\"]],[\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"]]]],\"SH\":[\"290\",\"00\",\"(?:[256]\\\\d|8)\\\\d{3}\",[4,5],0,0,0,0,0,0,\"[256]\"],\"SI\":[\"386\",\"00|10(?:22|66|88|99)\",\"[1-7]\\\\d{7}|8\\\\d{4,7}|90\\\\d{4,6}\",[5,6,7,8],[[\"(\\\\d{2})(\\\\d{3,6})\",\"$1 $2\",[\"8[09]|9\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"59|8\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[37][01]|4[0139]|51|6\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[1-57]\"],\"(0$1)\"]],\"0\",0,0,0,0,0,0,\"00\"],\"SJ\":[\"47\",\"00\",\"0\\\\d{4}|(?:[489]\\\\d|79)\\\\d{6}\",[5,8],0,0,0,0,0,0,\"79\"],\"SK\":[\"421\",\"00\",\"[2-689]\\\\d{8}|[2-59]\\\\d{6}|[2-5]\\\\d{5}\",[6,7,9],[[\"(\\\\d)(\\\\d{2})(\\\\d{3,4})\",\"$1 $2 $3\",[\"21\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2,3})\",\"$1 $2 $3\",[\"[3-5][1-8]1\",\"[3-5][1-8]1[67]\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{2})\",\"$1/$2 $3 $4\",[\"2\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[689]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1/$2 $3 $4\",[\"[3-5]\"],\"0$1\"]],\"0\"],\"SL\":[\"232\",\"00\",\"(?:[237-9]\\\\d|66)\\\\d{6}\",[8],[[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"[236-9]\"],\"(0$1)\"]],\"0\"],\"SM\":[\"378\",\"00\",\"(?:0549|[5-7]\\\\d)\\\\d{6}\",[8,10],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[5-7]\"]],[\"(\\\\d{4})(\\\\d{6})\",\"$1 $2\",[\"0\"]]],0,0,\"([89]\\\\d{5})$\",\"0549$1\"],\"SN\":[\"221\",\"00\",\"(?:[378]\\\\d|93)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"8\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[379]\"]]]],\"SO\":[\"252\",\"00\",\"[346-9]\\\\d{8}|[12679]\\\\d{7}|[1-5]\\\\d{6}|[1348]\\\\d{5}\",[6,7,8,9],[[\"(\\\\d{2})(\\\\d{4})\",\"$1 $2\",[\"8[125]\"]],[\"(\\\\d{6})\",\"$1\",[\"[134]\"]],[\"(\\\\d)(\\\\d{6})\",\"$1 $2\",[\"[15]|2[0-79]|3[0-46-8]|4[0-7]\"]],[\"(\\\\d)(\\\\d{7})\",\"$1 $2\",[\"(?:2|90)4|[67]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[348]|64|79|90\"]],[\"(\\\\d{2})(\\\\d{5,7})\",\"$1 $2\",[\"1|28|6[0-35-9]|77|9[2-9]\"]]],\"0\"],\"SR\":[\"597\",\"00\",\"(?:[2-5]|68|[78]\\\\d)\\\\d{5}\",[6,7],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1-$2-$3\",[\"56\"]],[\"(\\\\d{3})(\\\\d{3})\",\"$1-$2\",[\"[2-5]\"]],[\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"[6-8]\"]]]],\"SS\":[\"211\",\"00\",\"[19]\\\\d{8}\",[9],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[19]\"],\"0$1\"]],\"0\"],\"ST\":[\"239\",\"00\",\"(?:22|9\\\\d)\\\\d{5}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[29]\"]]]],\"SV\":[\"503\",\"00\",\"[267]\\\\d{7}|(?:80\\\\d|900)\\\\d{4}(?:\\\\d{4})?\",[7,8,11],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[89]\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[267]\"]],[\"(\\\\d{3})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"[89]\"]]]],\"SX\":[\"1\",\"011\",\"7215\\\\d{6}|(?:[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"(5\\\\d{6})$|1\",\"721$1\",0,\"721\"],\"SY\":[\"963\",\"00\",\"[1-39]\\\\d{8}|[1-5]\\\\d{7}\",[8,9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[1-5]\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"9\"],\"0$1\",1]],\"0\"],\"SZ\":[\"268\",\"00\",\"0800\\\\d{4}|(?:[237]\\\\d|900)\\\\d{6}\",[8,9],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[0237]\"]],[\"(\\\\d{5})(\\\\d{4})\",\"$1 $2\",[\"9\"]]]],\"TA\":[\"290\",\"00\",\"8\\\\d{3}\",[4],0,0,0,0,0,0,\"8\"],\"TC\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|649|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-479]\\\\d{6})$|1\",\"649$1\",0,\"649\"],\"TD\":[\"235\",\"00|16\",\"(?:22|[69]\\\\d|77)\\\\d{6}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[2679]\"]]],0,0,0,0,0,0,0,\"00\"],\"TG\":[\"228\",\"00\",\"[279]\\\\d{7}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[279]\"]]]],\"TH\":[\"66\",\"00[1-9]\",\"(?:001800|[2-57]|[689]\\\\d)\\\\d{7}|1\\\\d{7,9}\",[8,9,10,13],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"2\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[13-9]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1\"]]],\"0\"],\"TJ\":[\"992\",\"810\",\"[0-57-9]\\\\d{8}\",[9],[[\"(\\\\d{6})(\\\\d)(\\\\d{2})\",\"$1 $2 $3\",[\"331\",\"3317\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"44[02-479]|[34]7\"]],[\"(\\\\d{4})(\\\\d)(\\\\d{4})\",\"$1 $2 $3\",[\"3[1-5]\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[0-57-9]\"]]],0,0,0,0,0,0,0,\"8~10\"],\"TK\":[\"690\",\"00\",\"[2-47]\\\\d{3,6}\",[4,5,6,7]],\"TL\":[\"670\",\"00\",\"7\\\\d{7}|(?:[2-47]\\\\d|[89]0)\\\\d{5}\",[7,8],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[2-489]|70\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"7\"]]]],\"TM\":[\"993\",\"810\",\"(?:[1-6]\\\\d|71)\\\\d{6}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2-$3-$4\",[\"12\"],\"(8 $1)\"],[\"(\\\\d{3})(\\\\d)(\\\\d{2})(\\\\d{2})\",\"$1 $2-$3-$4\",[\"[1-5]\"],\"(8 $1)\"],[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"[67]\"],\"8 $1\"]],\"8\",0,0,0,0,0,0,\"8~10\"],\"TN\":[\"216\",\"00\",\"[2-57-9]\\\\d{7}\",[8],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[2-57-9]\"]]]],\"TO\":[\"676\",\"00\",\"(?:0800|(?:[5-8]\\\\d\\\\d|999)\\\\d)\\\\d{3}|[2-8]\\\\d{4}\",[5,7],[[\"(\\\\d{2})(\\\\d{3})\",\"$1-$2\",[\"[2-4]|50|6[09]|7[0-24-69]|8[05]\"]],[\"(\\\\d{4})(\\\\d{3})\",\"$1 $2\",[\"0\"]],[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[5-9]\"]]]],\"TR\":[\"90\",\"00\",\"4\\\\d{6}|8\\\\d{11,12}|(?:[2-58]\\\\d\\\\d|900)\\\\d{7}\",[7,10,12,13],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"512|8[01589]|90\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"5(?:[0-59]|61)\",\"5(?:[0-59]|61[06])\",\"5(?:[0-59]|61[06]1)\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[24][1-8]|3[1-9]\"],\"(0$1)\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{6,7})\",\"$1 $2 $3\",[\"80\"],\"0$1\",1]],\"0\"],\"TT\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-46-8]\\\\d{6})$|1\",\"868$1\",0,\"868\"],\"TV\":[\"688\",\"00\",\"(?:2|7\\\\d\\\\d|90)\\\\d{4}\",[5,6,7],[[\"(\\\\d{2})(\\\\d{3})\",\"$1 $2\",[\"2\"]],[\"(\\\\d{2})(\\\\d{4})\",\"$1 $2\",[\"90\"]],[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"7\"]]]],\"TW\":[\"886\",\"0(?:0[25-79]|19)\",\"[2-689]\\\\d{8}|7\\\\d{9,10}|[2-8]\\\\d{7}|2\\\\d{6}\",[7,8,9,10,11],[[\"(\\\\d{2})(\\\\d)(\\\\d{4})\",\"$1 $2 $3\",[\"202\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[258]0\"],\"0$1\"],[\"(\\\\d)(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"[23568]|4(?:0[02-48]|[1-47-9])|7[1-9]\",\"[23568]|4(?:0[2-48]|[1-47-9])|(?:400|7)[1-9]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[49]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4,5})\",\"$1 $2 $3\",[\"7\"],\"0$1\"]],\"0\",0,0,0,0,0,0,0,\"#\"],\"TZ\":[\"255\",\"00[056]\",\"(?:[25-8]\\\\d|41|90)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"[89]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[24]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{7})\",\"$1 $2\",[\"5\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[67]\"],\"0$1\"]],\"0\"],\"UA\":[\"380\",\"00\",\"[89]\\\\d{9}|[3-9]\\\\d{8}\",[9,10],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"6[12][29]|(?:3[1-8]|4[136-8]|5[12457]|6[49])2|(?:56|65)[24]\",\"6[12][29]|(?:35|4[1378]|5[12457]|6[49])2|(?:56|65)[24]|(?:3[1-46-8]|46)2[013-9]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{5})\",\"$1 $2\",[\"3[1-8]|4(?:[1367]|[45][6-9]|8[4-6])|5(?:[1-5]|6[0135689]|7[4-6])|6(?:[12][3-7]|[459])\",\"3[1-8]|4(?:[1367]|[45][6-9]|8[4-6])|5(?:[1-5]|6(?:[015689]|3[02389])|7[4-6])|6(?:[12][3-7]|[459])\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[3-7]|89|9[1-9]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[89]\"],\"0$1\"]],\"0\",0,0,0,0,0,0,\"0~0\"],\"UG\":[\"256\",\"00[057]\",\"800\\\\d{6}|(?:[29]0|[347]\\\\d)\\\\d{7}\",[9],[[\"(\\\\d{4})(\\\\d{5})\",\"$1 $2\",[\"202\",\"2024\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{6})\",\"$1 $2\",[\"[27-9]|4(?:6[45]|[7-9])\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{7})\",\"$1 $2\",[\"[34]\"],\"0$1\"]],\"0\"],\"US\":[\"1\",\"011\",\"[2-9]\\\\d{9}|3\\\\d{6}\",[10],[[\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"310\"],0,1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"($1) $2-$3\",[\"[2-9]\"],0,1,\"$1-$2-$3\"]],\"1\",0,0,0,0,0,[[\"(?:5056(?:[0-35-9]\\\\d|4[468])|7302[0-3]\\\\d)\\\\d{4}|(?:472[24]|505[2-57-9]|7306|983[2-47-9])\\\\d{6}|(?:2(?:0[1-35-9]|1[02-9]|2[03-57-9]|3[1459]|4[08]|5[1-46]|6[0279]|7[0269]|8[13])|3(?:0[1-57-9]|1[02-9]|2[013569]|3[0-24679]|4[167]|5[0-2]|6[01349]|8[056])|4(?:0[124-9]|1[02-579]|2[3-5]|3[0245]|4[023578]|58|6[349]|7[0589]|8[04])|5(?:0[1-47-9]|1[0235-8]|20|3[0149]|4[01]|5[179]|6[1-47]|7[0-5]|8[0256])|6(?:0[1-35-9]|1[024-9]|2[03689]|3[016]|4[0156]|5[01679]|6[0-279]|78|8[0-29])|7(?:0[1-46-8]|1[2-9]|2[04-8]|3[1247]|4[037]|5[47]|6[02359]|7[0-59]|8[156])|8(?:0[1-68]|1[02-8]|2[068]|3[0-2589]|4[03578]|5[046-9]|6[02-5]|7[028])|9(?:0[1346-9]|1[02-9]|2[0589]|3[0146-8]|4[01357-9]|5[12469]|7[0-389]|8[04-69]))[2-9]\\\\d{6}\"],[\"\"],[\"8(?:00|33|44|55|66|77|88)[2-9]\\\\d{6}\"],[\"900[2-9]\\\\d{6}\"],[\"52(?:3(?:[2-46-9][02-9]\\\\d|5(?:[02-46-9]\\\\d|5[0-46-9]))|4(?:[2-478][02-9]\\\\d|5(?:[034]\\\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\\\d)|9(?:[05-9]\\\\d|2[0-5]|49)))\\\\d{4}|52[34][2-9]1[02-9]\\\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\\\d{6}\"]]],\"UY\":[\"598\",\"0(?:0|1[3-9]\\\\d)\",\"0004\\\\d{2,9}|[1249]\\\\d{7}|(?:[49]\\\\d|80)\\\\d{5}\",[6,7,8,9,10,11,12,13],[[\"(\\\\d{3})(\\\\d{3,4})\",\"$1 $2\",[\"0\"]],[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[49]0|8\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"9\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[124]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{2,4})\",\"$1 $2 $3\",[\"0\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})(\\\\d{2,4})\",\"$1 $2 $3 $4\",[\"0\"]]],\"0\",0,0,0,0,0,0,\"00\",\" int. \"],\"UZ\":[\"998\",\"810\",\"(?:20|33|[5-79]\\\\d|88)\\\\d{7}\",[9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[235-9]\"],\"8 $1\"]],\"8\",0,0,0,0,0,0,\"8~10\"],\"VA\":[\"39\",\"00\",\"0\\\\d{5,10}|3[0-8]\\\\d{7,10}|55\\\\d{8}|8\\\\d{5}(?:\\\\d{2,4})?|(?:1\\\\d|39)\\\\d{7,8}\",[6,7,8,9,10,11],0,0,0,0,0,0,\"06698\"],\"VC\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|784|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-7]\\\\d{6})$|1\",\"784$1\",0,\"784\"],\"VE\":[\"58\",\"00\",\"[68]00\\\\d{7}|(?:[24]\\\\d|[59]0)\\\\d{8}\",[10],[[\"(\\\\d{3})(\\\\d{7})\",\"$1-$2\",[\"[24-689]\"],\"0$1\"]],\"0\"],\"VG\":[\"1\",\"011\",\"(?:284|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-578]\\\\d{6})$|1\",\"284$1\",0,\"284\"],\"VI\":[\"1\",\"011\",\"[58]\\\\d{9}|(?:34|90)0\\\\d{7}\",[10],0,\"1\",0,\"([2-9]\\\\d{6})$|1\",\"340$1\",0,\"340\"],\"VN\":[\"84\",\"00\",\"[12]\\\\d{9}|[135-9]\\\\d{8}|[16]\\\\d{7}|[16-8]\\\\d{6}\",[7,8,9,10],[[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"80\"],\"0$1\",1],[\"(\\\\d{4})(\\\\d{4,6})\",\"$1 $2\",[\"1\"],0,1],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"6\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[357-9]\"],\"0$1\",1],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"2[48]\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{4})(\\\\d{3})\",\"$1 $2 $3\",[\"2\"],\"0$1\",1]],\"0\"],\"VU\":[\"678\",\"00\",\"[57-9]\\\\d{6}|(?:[238]\\\\d|48)\\\\d{3}\",[5,7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[57-9]\"]]]],\"WF\":[\"681\",\"00\",\"(?:40|72)\\\\d{4}|8\\\\d{5}(?:\\\\d{3})?\",[6,9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"[478]\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"8\"]]]],\"WS\":[\"685\",\"0\",\"(?:[2-6]|8\\\\d{5})\\\\d{4}|[78]\\\\d{6}|[68]\\\\d{5}\",[5,6,7,10],[[\"(\\\\d{5})\",\"$1\",[\"[2-5]|6[1-9]\"]],[\"(\\\\d{3})(\\\\d{3,7})\",\"$1 $2\",[\"[68]\"]],[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"7\"]]]],\"XK\":[\"383\",\"00\",\"2\\\\d{7,8}|3\\\\d{7,11}|(?:4\\\\d\\\\d|[89]00)\\\\d{5}\",[8,9,10,11,12],[[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"[89]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[2-4]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"2|39\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{7,10})\",\"$1 $2\",[\"3\"],\"0$1\"]],\"0\"],\"YE\":[\"967\",\"00\",\"(?:1|7\\\\d)\\\\d{7}|[1-7]\\\\d{6}\",[7,8,9],[[\"(\\\\d)(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[1-6]|7(?:[24-6]|8[0-7])\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"7\"],\"0$1\"]],\"0\"],\"YT\":[\"262\",\"00\",\"(?:80|9\\\\d)\\\\d{7}|(?:26|63)9\\\\d{6}\",[9],0,\"0\",0,0,0,0,0,[[\"269(?:0[0-467]|15|5[0-4]|6\\\\d|[78]0)\\\\d{4}\"],[\"639(?:0[0-79]|1[019]|[267]\\\\d|3[09]|40|5[05-9]|9[04-79])\\\\d{4}\"],[\"80\\\\d{7}\"],0,0,0,0,0,[\"9(?:(?:39|47)8[01]|769\\\\d)\\\\d{4}\"]]],\"ZA\":[\"27\",\"00\",\"[1-79]\\\\d{8}|8\\\\d{4,9}\",[5,6,7,8,9,10],[[\"(\\\\d{2})(\\\\d{3,4})\",\"$1 $2\",[\"8[1-4]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2,3})\",\"$1 $2 $3\",[\"8[1-4]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"860\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[1-9]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"],\"0$1\"]],\"0\"],\"ZM\":[\"260\",\"00\",\"800\\\\d{6}|(?:21|63|[79]\\\\d)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[28]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{7})\",\"$1 $2\",[\"[79]\"],\"0$1\"]],\"0\"],\"ZW\":[\"263\",\"00\",\"2(?:[0-57-9]\\\\d{6,8}|6[0-24-9]\\\\d{6,7})|[38]\\\\d{9}|[35-8]\\\\d{8}|[3-6]\\\\d{7}|[1-689]\\\\d{6}|[1-3569]\\\\d{5}|[1356]\\\\d{4}\",[5,6,7,8,9,10],[[\"(\\\\d{3})(\\\\d{3,5})\",\"$1 $2\",[\"2(?:0[45]|2[278]|[49]8)|3(?:[09]8|17)|6(?:[29]8|37|75)|[23][78]|(?:33|5[15]|6[68])[78]\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{2,4})\",\"$1 $2 $3\",[\"[49]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"80\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{7})\",\"$1 $2\",[\"24|8[13-59]|(?:2[05-79]|39|5[45]|6[15-8])2\",\"2(?:02[014]|4|[56]20|[79]2)|392|5(?:42|525)|6(?:[16-8]21|52[013])|8[13-59]\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"7\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"2(?:1[39]|2[0157]|[378]|[56][14])|3(?:12|29)\",\"2(?:1[39]|2[0157]|[378]|[56][14])|3(?:123|29)\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{6})\",\"$1 $2\",[\"8\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3,5})\",\"$1 $2\",[\"1|2(?:0[0-36-9]|12|29|[56])|3(?:1[0-689]|[24-6])|5(?:[0236-9]|1[2-4])|6(?:[013-59]|7[0-46-9])|(?:33|55|6[68])[0-69]|(?:29|3[09]|62)[0-79]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"29[013-9]|39|54\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3,5})\",\"$1 $2\",[\"(?:25|54)8\",\"258|5483\"],\"0$1\"]],\"0\"]},\"nonGeographic\":{\"800\":[\"800\",0,\"(?:00|[1-9]\\\\d)\\\\d{6}\",[8],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"\\\\d\"]]],0,0,0,0,0,0,[0,0,[\"(?:00|[1-9]\\\\d)\\\\d{6}\"]]],\"808\":[\"808\",0,\"[1-9]\\\\d{7}\",[8],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[1-9]\"]]],0,0,0,0,0,0,[0,0,0,0,0,0,0,0,0,[\"[1-9]\\\\d{7}\"]]],\"870\":[\"870\",0,\"7\\\\d{11}|[35-7]\\\\d{8}\",[9,12],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[35-7]\"]]],0,0,0,0,0,0,[0,[\"(?:[356]|774[45])\\\\d{8}|7[6-8]\\\\d{7}\"]]],\"878\":[\"878\",0,\"10\\\\d{10}\",[12],[[\"(\\\\d{2})(\\\\d{5})(\\\\d{5})\",\"$1 $2 $3\",[\"1\"]]],0,0,0,0,0,0,[0,0,0,0,0,0,0,0,[\"10\\\\d{10}\"]]],\"881\":[\"881\",0,\"6\\\\d{9}|[0-36-9]\\\\d{8}\",[9,10],[[\"(\\\\d)(\\\\d{3})(\\\\d{5})\",\"$1 $2 $3\",[\"[0-37-9]\"]],[\"(\\\\d)(\\\\d{3})(\\\\d{5,6})\",\"$1 $2 $3\",[\"6\"]]],0,0,0,0,0,0,[0,[\"6\\\\d{9}|[0-36-9]\\\\d{8}\"]]],\"882\":[\"882\",0,\"[13]\\\\d{6}(?:\\\\d{2,5})?|[19]\\\\d{7}|(?:[25]\\\\d\\\\d|4)\\\\d{7}(?:\\\\d{2})?\",[7,8,9,10,11,12],[[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"16|342\"]],[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"49\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"1[36]|9\"]],[\"(\\\\d{2})(\\\\d{4})(\\\\d{3})\",\"$1 $2 $3\",[\"3[23]\"]],[\"(\\\\d{2})(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"16\"]],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"10|23|3(?:[15]|4[57])|4|51\"]],[\"(\\\\d{3})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"34\"]],[\"(\\\\d{2})(\\\\d{4,5})(\\\\d{5})\",\"$1 $2 $3\",[\"[1-35]\"]]],0,0,0,0,0,0,[0,[\"342\\\\d{4}|(?:337|49)\\\\d{6}|(?:3(?:2|47|7\\\\d{3})|50\\\\d{3})\\\\d{7}\",[7,8,9,10,12]],0,0,0,0,0,0,[\"1(?:3(?:0[0347]|[13][0139]|2[035]|4[013568]|6[0459]|7[06]|8[15-8]|9[0689])\\\\d{4}|6\\\\d{5,10})|(?:345\\\\d|9[89])\\\\d{6}|(?:10|2(?:3|85\\\\d)|3(?:[15]|[69]\\\\d\\\\d)|4[15-8]|51)\\\\d{8}\"]]],\"883\":[\"883\",0,\"(?:[1-4]\\\\d|51)\\\\d{6,10}\",[8,9,10,11,12],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{2,8})\",\"$1 $2 $3\",[\"[14]|2[24-689]|3[02-689]|51[24-9]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"510\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"21\"]],[\"(\\\\d{4})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"51[13]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"[235]\"]]],0,0,0,0,0,0,[0,0,0,0,0,0,0,0,[\"(?:2(?:00\\\\d\\\\d|10)|(?:370[1-9]|51\\\\d0)\\\\d)\\\\d{7}|51(?:00\\\\d{5}|[24-9]0\\\\d{4,7})|(?:1[0-79]|2[24-689]|3[02-689]|4[0-4])0\\\\d{5,9}\"]]],\"888\":[\"888\",0,\"\\\\d{11}\",[11],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{5})\",\"$1 $2 $3\"]],0,0,0,0,0,0,[0,0,0,0,0,0,[\"\\\\d{11}\"]]],\"979\":[\"979\",0,\"[1359]\\\\d{8}\",[9],[[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"[1359]\"]]],0,0,0,0,0,0,[0,0,0,[\"[1359]\\\\d{8}\"]]]}}","var objectConstructor = {}.constructor;\nexport default function isObject(object) {\n return object !== undefined && object !== null && object.constructor === objectConstructor;\n}\n//# sourceMappingURL=isObject.js.map","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nimport isObject from './helpers/isObject.js'; // Extracts the following properties from function arguments:\n// * input `text`\n// * `options` object\n// * `metadata` JSON\n\nexport default function normalizeArguments(args) {\n var _Array$prototype$slic = Array.prototype.slice.call(args),\n _Array$prototype$slic2 = _slicedToArray(_Array$prototype$slic, 4),\n arg_1 = _Array$prototype$slic2[0],\n arg_2 = _Array$prototype$slic2[1],\n arg_3 = _Array$prototype$slic2[2],\n arg_4 = _Array$prototype$slic2[3];\n\n var text;\n var options;\n var metadata; // If the phone number is passed as a string.\n // `parsePhoneNumber('88005553535', ...)`.\n\n if (typeof arg_1 === 'string') {\n text = arg_1;\n } else throw new TypeError('A text for parsing must be a string.'); // If \"default country\" argument is being passed then move it to `options`.\n // `parsePhoneNumber('88005553535', 'RU', [options], metadata)`.\n\n\n if (!arg_2 || typeof arg_2 === 'string') {\n if (arg_4) {\n options = arg_3;\n metadata = arg_4;\n } else {\n options = undefined;\n metadata = arg_3;\n }\n\n if (arg_2) {\n options = _objectSpread({\n defaultCountry: arg_2\n }, options);\n }\n } // `defaultCountry` is not passed.\n // Example: `parsePhoneNumber('+78005553535', [options], metadata)`.\n else if (isObject(arg_2)) {\n if (arg_3) {\n options = arg_2;\n metadata = arg_3;\n } else {\n metadata = arg_2;\n }\n } else throw new Error(\"Invalid second argument: \".concat(arg_2));\n\n return {\n text: text,\n options: options,\n metadata: metadata\n };\n}\n//# sourceMappingURL=normalizeArguments.js.map","// The minimum length of the national significant number.\nexport var MIN_LENGTH_FOR_NSN = 2; // The ITU says the maximum length should be 15,\n// but one can find longer numbers in Germany.\n\nexport var MAX_LENGTH_FOR_NSN = 17; // The maximum length of the country calling code.\n\nexport var MAX_LENGTH_COUNTRY_CODE = 3; // Digits accepted in phone numbers\n// (ascii, fullwidth, arabic-indic, and eastern arabic digits).\n\nexport var VALID_DIGITS = \"0-9\\uFF10-\\uFF19\\u0660-\\u0669\\u06F0-\\u06F9\"; // `DASHES` will be right after the opening square bracket of the \"character class\"\n\nvar DASHES = \"-\\u2010-\\u2015\\u2212\\u30FC\\uFF0D\";\nvar SLASHES = \"\\uFF0F/\";\nvar DOTS = \"\\uFF0E.\";\nexport var WHITESPACE = \" \\xA0\\xAD\\u200B\\u2060\\u3000\";\nvar BRACKETS = \"()\\uFF08\\uFF09\\uFF3B\\uFF3D\\\\[\\\\]\"; // export const OPENING_BRACKETS = '(\\uFF08\\uFF3B\\\\\\['\n\nvar TILDES = \"~\\u2053\\u223C\\uFF5E\"; // Regular expression of acceptable punctuation found in phone numbers. This\n// excludes punctuation found as a leading character only. This consists of dash\n// characters, white space characters, full stops, slashes, square brackets,\n// parentheses and tildes. Full-width variants are also present.\n\nexport var VALID_PUNCTUATION = \"\".concat(DASHES).concat(SLASHES).concat(DOTS).concat(WHITESPACE).concat(BRACKETS).concat(TILDES);\nexport var PLUS_CHARS = \"+\\uFF0B\"; // const LEADING_PLUS_CHARS_PATTERN = new RegExp('^[' + PLUS_CHARS + ']+')\n//# sourceMappingURL=constants.js.map","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _wrapNativeSuper(Class) { var _cache = typeof Map === \"function\" ? new Map() : undefined; _wrapNativeSuper = function _wrapNativeSuper(Class) { if (Class === null || !_isNativeFunction(Class)) return Class; if (typeof Class !== \"function\") { throw new TypeError(\"Super expression must either be null or a function\"); } if (typeof _cache !== \"undefined\") { if (_cache.has(Class)) return _cache.get(Class); _cache.set(Class, Wrapper); } function Wrapper() { return _construct(Class, arguments, _getPrototypeOf(this).constructor); } Wrapper.prototype = Object.create(Class.prototype, { constructor: { value: Wrapper, enumerable: false, writable: true, configurable: true } }); return _setPrototypeOf(Wrapper, Class); }; return _wrapNativeSuper(Class); }\n\nfunction _construct(Parent, args, Class) { if (_isNativeReflectConstruct()) { _construct = Reflect.construct; } else { _construct = function _construct(Parent, args, Class) { var a = [null]; a.push.apply(a, args); var Constructor = Function.bind.apply(Parent, a); var instance = new Constructor(); if (Class) _setPrototypeOf(instance, Class.prototype); return instance; }; } return _construct.apply(null, arguments); }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _isNativeFunction(fn) { return Function.toString.call(fn).indexOf(\"[native code]\") !== -1; }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n// https://stackoverflow.com/a/46971044/970769\n// \"Breaking changes in Typescript 2.1\"\n// \"Extending built-ins like Error, Array, and Map may no longer work.\"\n// \"As a recommendation, you can manually adjust the prototype immediately after any super(...) calls.\"\n// https://github.com/Microsoft/TypeScript-wiki/blob/main/Breaking-Changes.md#extending-built-ins-like-error-array-and-map-may-no-longer-work\nvar ParseError = /*#__PURE__*/function (_Error) {\n _inherits(ParseError, _Error);\n\n var _super = _createSuper(ParseError);\n\n function ParseError(code) {\n var _this;\n\n _classCallCheck(this, ParseError);\n\n _this = _super.call(this, code); // Set the prototype explicitly.\n // Any subclass of FooError will have to manually set the prototype as well.\n\n Object.setPrototypeOf(_assertThisInitialized(_this), ParseError.prototype);\n _this.name = _this.constructor.name;\n return _this;\n }\n\n return _createClass(ParseError);\n}( /*#__PURE__*/_wrapNativeSuper(Error));\n\nexport { ParseError as default };\n//# sourceMappingURL=ParseError.js.map","// Copy-pasted from:\n// https://github.com/substack/semver-compare/blob/master/index.js\n//\n// Inlining this function because some users reported issues with\n// importing from `semver-compare` in a browser with ES6 \"native\" modules.\n//\n// Fixes `semver-compare` not being able to compare versions with alpha/beta/etc \"tags\".\n// https://github.com/catamphetamine/libphonenumber-js/issues/381\nexport default function (a, b) {\n a = a.split('-');\n b = b.split('-');\n var pa = a[0].split('.');\n var pb = b[0].split('.');\n\n for (var i = 0; i < 3; i++) {\n var na = Number(pa[i]);\n var nb = Number(pb[i]);\n if (na > nb) return 1;\n if (nb > na) return -1;\n if (!isNaN(na) && isNaN(nb)) return 1;\n if (isNaN(na) && !isNaN(nb)) return -1;\n }\n\n if (a[1] && b[1]) {\n return a[1] > b[1] ? 1 : a[1] < b[1] ? -1 : 0;\n }\n\n return !a[1] && b[1] ? 1 : a[1] && !b[1] ? -1 : 0;\n}\n//# sourceMappingURL=semver-compare.js.map","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nimport compare from './tools/semver-compare.js';\nimport isObject from './helpers/isObject.js'; // Added \"possibleLengths\" and renamed\n// \"country_phone_code_to_countries\" to \"country_calling_codes\".\n\nvar V2 = '1.0.18'; // Added \"idd_prefix\" and \"default_idd_prefix\".\n\nvar V3 = '1.2.0'; // Moved `001` country code to \"nonGeographic\" section of metadata.\n\nvar V4 = '1.7.35';\nvar DEFAULT_EXT_PREFIX = ' ext. ';\nvar CALLING_CODE_REG_EXP = /^\\d+$/;\n/**\r\n * See: https://gitlab.com/catamphetamine/libphonenumber-js/blob/master/METADATA.md\r\n */\n\nvar Metadata = /*#__PURE__*/function () {\n function Metadata(metadata) {\n _classCallCheck(this, Metadata);\n\n validateMetadata(metadata);\n this.metadata = metadata;\n setVersion.call(this, metadata);\n }\n\n _createClass(Metadata, [{\n key: \"getCountries\",\n value: function getCountries() {\n return Object.keys(this.metadata.countries).filter(function (_) {\n return _ !== '001';\n });\n }\n }, {\n key: \"getCountryMetadata\",\n value: function getCountryMetadata(countryCode) {\n return this.metadata.countries[countryCode];\n }\n }, {\n key: \"nonGeographic\",\n value: function nonGeographic() {\n if (this.v1 || this.v2 || this.v3) return; // `nonGeographical` was a typo.\n // It's present in metadata generated from `1.7.35` to `1.7.37`.\n // The test case could be found by searching for \"nonGeographical\".\n\n return this.metadata.nonGeographic || this.metadata.nonGeographical;\n }\n }, {\n key: \"hasCountry\",\n value: function hasCountry(country) {\n return this.getCountryMetadata(country) !== undefined;\n }\n }, {\n key: \"hasCallingCode\",\n value: function hasCallingCode(callingCode) {\n if (this.getCountryCodesForCallingCode(callingCode)) {\n return true;\n }\n\n if (this.nonGeographic()) {\n if (this.nonGeographic()[callingCode]) {\n return true;\n }\n } else {\n // A hacky workaround for old custom metadata (generated before V4).\n var countryCodes = this.countryCallingCodes()[callingCode];\n\n if (countryCodes && countryCodes.length === 1 && countryCodes[0] === '001') {\n return true;\n }\n }\n }\n }, {\n key: \"isNonGeographicCallingCode\",\n value: function isNonGeographicCallingCode(callingCode) {\n if (this.nonGeographic()) {\n return this.nonGeographic()[callingCode] ? true : false;\n } else {\n return this.getCountryCodesForCallingCode(callingCode) ? false : true;\n }\n } // Deprecated.\n\n }, {\n key: \"country\",\n value: function country(countryCode) {\n return this.selectNumberingPlan(countryCode);\n }\n }, {\n key: \"selectNumberingPlan\",\n value: function selectNumberingPlan(countryCode, callingCode) {\n // Supports just passing `callingCode` as the first argument.\n if (countryCode && CALLING_CODE_REG_EXP.test(countryCode)) {\n callingCode = countryCode;\n countryCode = null;\n }\n\n if (countryCode && countryCode !== '001') {\n if (!this.hasCountry(countryCode)) {\n throw new Error(\"Unknown country: \".concat(countryCode));\n }\n\n this.numberingPlan = new NumberingPlan(this.getCountryMetadata(countryCode), this);\n } else if (callingCode) {\n if (!this.hasCallingCode(callingCode)) {\n throw new Error(\"Unknown calling code: \".concat(callingCode));\n }\n\n this.numberingPlan = new NumberingPlan(this.getNumberingPlanMetadata(callingCode), this);\n } else {\n this.numberingPlan = undefined;\n }\n\n return this;\n }\n }, {\n key: \"getCountryCodesForCallingCode\",\n value: function getCountryCodesForCallingCode(callingCode) {\n var countryCodes = this.countryCallingCodes()[callingCode];\n\n if (countryCodes) {\n // Metadata before V4 included \"non-geographic entity\" calling codes\n // inside `country_calling_codes` (for example, `\"881\":[\"001\"]`).\n // Now the semantics of `country_calling_codes` has changed:\n // it's specifically for \"countries\" now.\n // Older versions of custom metadata will simply skip parsing\n // \"non-geographic entity\" phone numbers with new versions\n // of this library: it's not considered a bug,\n // because such numbers are extremely rare,\n // and developers extremely rarely use custom metadata.\n if (countryCodes.length === 1 && countryCodes[0].length === 3) {\n return;\n }\n\n return countryCodes;\n }\n }\n }, {\n key: \"getCountryCodeForCallingCode\",\n value: function getCountryCodeForCallingCode(callingCode) {\n var countryCodes = this.getCountryCodesForCallingCode(callingCode);\n\n if (countryCodes) {\n return countryCodes[0];\n }\n }\n }, {\n key: \"getNumberingPlanMetadata\",\n value: function getNumberingPlanMetadata(callingCode) {\n var countryCode = this.getCountryCodeForCallingCode(callingCode);\n\n if (countryCode) {\n return this.getCountryMetadata(countryCode);\n }\n\n if (this.nonGeographic()) {\n var metadata = this.nonGeographic()[callingCode];\n\n if (metadata) {\n return metadata;\n }\n } else {\n // A hacky workaround for old custom metadata (generated before V4).\n // In that metadata, there was no concept of \"non-geographic\" metadata\n // so metadata for `001` country code was stored along with other countries.\n // The test case can be found by searching for:\n // \"should work around `nonGeographic` metadata not existing\".\n var countryCodes = this.countryCallingCodes()[callingCode];\n\n if (countryCodes && countryCodes.length === 1 && countryCodes[0] === '001') {\n return this.metadata.countries['001'];\n }\n }\n } // Deprecated.\n\n }, {\n key: \"countryCallingCode\",\n value: function countryCallingCode() {\n return this.numberingPlan.callingCode();\n } // Deprecated.\n\n }, {\n key: \"IDDPrefix\",\n value: function IDDPrefix() {\n return this.numberingPlan.IDDPrefix();\n } // Deprecated.\n\n }, {\n key: \"defaultIDDPrefix\",\n value: function defaultIDDPrefix() {\n return this.numberingPlan.defaultIDDPrefix();\n } // Deprecated.\n\n }, {\n key: \"nationalNumberPattern\",\n value: function nationalNumberPattern() {\n return this.numberingPlan.nationalNumberPattern();\n } // Deprecated.\n\n }, {\n key: \"possibleLengths\",\n value: function possibleLengths() {\n return this.numberingPlan.possibleLengths();\n } // Deprecated.\n\n }, {\n key: \"formats\",\n value: function formats() {\n return this.numberingPlan.formats();\n } // Deprecated.\n\n }, {\n key: \"nationalPrefixForParsing\",\n value: function nationalPrefixForParsing() {\n return this.numberingPlan.nationalPrefixForParsing();\n } // Deprecated.\n\n }, {\n key: \"nationalPrefixTransformRule\",\n value: function nationalPrefixTransformRule() {\n return this.numberingPlan.nationalPrefixTransformRule();\n } // Deprecated.\n\n }, {\n key: \"leadingDigits\",\n value: function leadingDigits() {\n return this.numberingPlan.leadingDigits();\n } // Deprecated.\n\n }, {\n key: \"hasTypes\",\n value: function hasTypes() {\n return this.numberingPlan.hasTypes();\n } // Deprecated.\n\n }, {\n key: \"type\",\n value: function type(_type) {\n return this.numberingPlan.type(_type);\n } // Deprecated.\n\n }, {\n key: \"ext\",\n value: function ext() {\n return this.numberingPlan.ext();\n }\n }, {\n key: \"countryCallingCodes\",\n value: function countryCallingCodes() {\n if (this.v1) return this.metadata.country_phone_code_to_countries;\n return this.metadata.country_calling_codes;\n } // Deprecated.\n\n }, {\n key: \"chooseCountryByCountryCallingCode\",\n value: function chooseCountryByCountryCallingCode(callingCode) {\n return this.selectNumberingPlan(callingCode);\n }\n }, {\n key: \"hasSelectedNumberingPlan\",\n value: function hasSelectedNumberingPlan() {\n return this.numberingPlan !== undefined;\n }\n }]);\n\n return Metadata;\n}();\n\nexport { Metadata as default };\n\nvar NumberingPlan = /*#__PURE__*/function () {\n function NumberingPlan(metadata, globalMetadataObject) {\n _classCallCheck(this, NumberingPlan);\n\n this.globalMetadataObject = globalMetadataObject;\n this.metadata = metadata;\n setVersion.call(this, globalMetadataObject.metadata);\n }\n\n _createClass(NumberingPlan, [{\n key: \"callingCode\",\n value: function callingCode() {\n return this.metadata[0];\n } // Formatting information for regions which share\n // a country calling code is contained by only one region\n // for performance reasons. For example, for NANPA region\n // (\"North American Numbering Plan Administration\",\n // which includes USA, Canada, Cayman Islands, Bahamas, etc)\n // it will be contained in the metadata for `US`.\n\n }, {\n key: \"getDefaultCountryMetadataForRegion\",\n value: function getDefaultCountryMetadataForRegion() {\n return this.globalMetadataObject.getNumberingPlanMetadata(this.callingCode());\n } // Is always present.\n\n }, {\n key: \"IDDPrefix\",\n value: function IDDPrefix() {\n if (this.v1 || this.v2) return;\n return this.metadata[1];\n } // Is only present when a country supports multiple IDD prefixes.\n\n }, {\n key: \"defaultIDDPrefix\",\n value: function defaultIDDPrefix() {\n if (this.v1 || this.v2) return;\n return this.metadata[12];\n }\n }, {\n key: \"nationalNumberPattern\",\n value: function nationalNumberPattern() {\n if (this.v1 || this.v2) return this.metadata[1];\n return this.metadata[2];\n } // \"possible length\" data is always present in Google's metadata.\n\n }, {\n key: \"possibleLengths\",\n value: function possibleLengths() {\n if (this.v1) return;\n return this.metadata[this.v2 ? 2 : 3];\n }\n }, {\n key: \"_getFormats\",\n value: function _getFormats(metadata) {\n return metadata[this.v1 ? 2 : this.v2 ? 3 : 4];\n } // For countries of the same region (e.g. NANPA)\n // formats are all stored in the \"main\" country for that region.\n // E.g. \"RU\" and \"KZ\", \"US\" and \"CA\".\n\n }, {\n key: \"formats\",\n value: function formats() {\n var _this = this;\n\n var formats = this._getFormats(this.metadata) || this._getFormats(this.getDefaultCountryMetadataForRegion()) || [];\n return formats.map(function (_) {\n return new Format(_, _this);\n });\n }\n }, {\n key: \"nationalPrefix\",\n value: function nationalPrefix() {\n return this.metadata[this.v1 ? 3 : this.v2 ? 4 : 5];\n }\n }, {\n key: \"_getNationalPrefixFormattingRule\",\n value: function _getNationalPrefixFormattingRule(metadata) {\n return metadata[this.v1 ? 4 : this.v2 ? 5 : 6];\n } // For countries of the same region (e.g. NANPA)\n // national prefix formatting rule is stored in the \"main\" country for that region.\n // E.g. \"RU\" and \"KZ\", \"US\" and \"CA\".\n\n }, {\n key: \"nationalPrefixFormattingRule\",\n value: function nationalPrefixFormattingRule() {\n return this._getNationalPrefixFormattingRule(this.metadata) || this._getNationalPrefixFormattingRule(this.getDefaultCountryMetadataForRegion());\n }\n }, {\n key: \"_nationalPrefixForParsing\",\n value: function _nationalPrefixForParsing() {\n return this.metadata[this.v1 ? 5 : this.v2 ? 6 : 7];\n }\n }, {\n key: \"nationalPrefixForParsing\",\n value: function nationalPrefixForParsing() {\n // If `national_prefix_for_parsing` is not set explicitly,\n // then infer it from `national_prefix` (if any)\n return this._nationalPrefixForParsing() || this.nationalPrefix();\n }\n }, {\n key: \"nationalPrefixTransformRule\",\n value: function nationalPrefixTransformRule() {\n return this.metadata[this.v1 ? 6 : this.v2 ? 7 : 8];\n }\n }, {\n key: \"_getNationalPrefixIsOptionalWhenFormatting\",\n value: function _getNationalPrefixIsOptionalWhenFormatting() {\n return !!this.metadata[this.v1 ? 7 : this.v2 ? 8 : 9];\n } // For countries of the same region (e.g. NANPA)\n // \"national prefix is optional when formatting\" flag is\n // stored in the \"main\" country for that region.\n // E.g. \"RU\" and \"KZ\", \"US\" and \"CA\".\n\n }, {\n key: \"nationalPrefixIsOptionalWhenFormattingInNationalFormat\",\n value: function nationalPrefixIsOptionalWhenFormattingInNationalFormat() {\n return this._getNationalPrefixIsOptionalWhenFormatting(this.metadata) || this._getNationalPrefixIsOptionalWhenFormatting(this.getDefaultCountryMetadataForRegion());\n }\n }, {\n key: \"leadingDigits\",\n value: function leadingDigits() {\n return this.metadata[this.v1 ? 8 : this.v2 ? 9 : 10];\n }\n }, {\n key: \"types\",\n value: function types() {\n return this.metadata[this.v1 ? 9 : this.v2 ? 10 : 11];\n }\n }, {\n key: \"hasTypes\",\n value: function hasTypes() {\n // Versions 1.2.0 - 1.2.4: can be `[]`.\n\n /* istanbul ignore next */\n if (this.types() && this.types().length === 0) {\n return false;\n } // Versions <= 1.2.4: can be `undefined`.\n // Version >= 1.2.5: can be `0`.\n\n\n return !!this.types();\n }\n }, {\n key: \"type\",\n value: function type(_type2) {\n if (this.hasTypes() && getType(this.types(), _type2)) {\n return new Type(getType(this.types(), _type2), this);\n }\n }\n }, {\n key: \"ext\",\n value: function ext() {\n if (this.v1 || this.v2) return DEFAULT_EXT_PREFIX;\n return this.metadata[13] || DEFAULT_EXT_PREFIX;\n }\n }]);\n\n return NumberingPlan;\n}();\n\nvar Format = /*#__PURE__*/function () {\n function Format(format, metadata) {\n _classCallCheck(this, Format);\n\n this._format = format;\n this.metadata = metadata;\n }\n\n _createClass(Format, [{\n key: \"pattern\",\n value: function pattern() {\n return this._format[0];\n }\n }, {\n key: \"format\",\n value: function format() {\n return this._format[1];\n }\n }, {\n key: \"leadingDigitsPatterns\",\n value: function leadingDigitsPatterns() {\n return this._format[2] || [];\n }\n }, {\n key: \"nationalPrefixFormattingRule\",\n value: function nationalPrefixFormattingRule() {\n return this._format[3] || this.metadata.nationalPrefixFormattingRule();\n }\n }, {\n key: \"nationalPrefixIsOptionalWhenFormattingInNationalFormat\",\n value: function nationalPrefixIsOptionalWhenFormattingInNationalFormat() {\n return !!this._format[4] || this.metadata.nationalPrefixIsOptionalWhenFormattingInNationalFormat();\n }\n }, {\n key: \"nationalPrefixIsMandatoryWhenFormattingInNationalFormat\",\n value: function nationalPrefixIsMandatoryWhenFormattingInNationalFormat() {\n // National prefix is omitted if there's no national prefix formatting rule\n // set for this country, or when the national prefix formatting rule\n // contains no national prefix itself, or when this rule is set but\n // national prefix is optional for this phone number format\n // (and it is not enforced explicitly)\n return this.usesNationalPrefix() && !this.nationalPrefixIsOptionalWhenFormattingInNationalFormat();\n } // Checks whether national prefix formatting rule contains national prefix.\n\n }, {\n key: \"usesNationalPrefix\",\n value: function usesNationalPrefix() {\n return this.nationalPrefixFormattingRule() && // Check that national prefix formatting rule is not a \"dummy\" one.\n !FIRST_GROUP_ONLY_PREFIX_PATTERN.test(this.nationalPrefixFormattingRule()) // In compressed metadata, `this.nationalPrefixFormattingRule()` is `0`\n // when `national_prefix_formatting_rule` is not present.\n // So, `true` or `false` are returned explicitly here, so that\n // `0` number isn't returned.\n ? true : false;\n }\n }, {\n key: \"internationalFormat\",\n value: function internationalFormat() {\n return this._format[5] || this.format();\n }\n }]);\n\n return Format;\n}();\n/**\r\n * A pattern that is used to determine if the national prefix formatting rule\r\n * has the first group only, i.e., does not start with the national prefix.\r\n * Note that the pattern explicitly allows for unbalanced parentheses.\r\n */\n\n\nvar FIRST_GROUP_ONLY_PREFIX_PATTERN = /^\\(?\\$1\\)?$/;\n\nvar Type = /*#__PURE__*/function () {\n function Type(type, metadata) {\n _classCallCheck(this, Type);\n\n this.type = type;\n this.metadata = metadata;\n }\n\n _createClass(Type, [{\n key: \"pattern\",\n value: function pattern() {\n if (this.metadata.v1) return this.type;\n return this.type[0];\n }\n }, {\n key: \"possibleLengths\",\n value: function possibleLengths() {\n if (this.metadata.v1) return;\n return this.type[1] || this.metadata.possibleLengths();\n }\n }]);\n\n return Type;\n}();\n\nfunction getType(types, type) {\n switch (type) {\n case 'FIXED_LINE':\n return types[0];\n\n case 'MOBILE':\n return types[1];\n\n case 'TOLL_FREE':\n return types[2];\n\n case 'PREMIUM_RATE':\n return types[3];\n\n case 'PERSONAL_NUMBER':\n return types[4];\n\n case 'VOICEMAIL':\n return types[5];\n\n case 'UAN':\n return types[6];\n\n case 'PAGER':\n return types[7];\n\n case 'VOIP':\n return types[8];\n\n case 'SHARED_COST':\n return types[9];\n }\n}\n\nexport function validateMetadata(metadata) {\n if (!metadata) {\n throw new Error('[libphonenumber-js] `metadata` argument not passed. Check your arguments.');\n } // `country_phone_code_to_countries` was renamed to\n // `country_calling_codes` in `1.0.18`.\n\n\n if (!isObject(metadata) || !isObject(metadata.countries)) {\n throw new Error(\"[libphonenumber-js] `metadata` argument was passed but it's not a valid metadata. Must be an object having `.countries` child object property. Got \".concat(isObject(metadata) ? 'an object of shape: { ' + Object.keys(metadata).join(', ') + ' }' : 'a ' + typeOf(metadata) + ': ' + metadata, \".\"));\n }\n} // Babel transforms `typeof` into some \"branches\"\n// so istanbul will show this as \"branch not covered\".\n\n/* istanbul ignore next */\n\nvar typeOf = function typeOf(_) {\n return _typeof(_);\n};\n/**\r\n * Returns extension prefix for a country.\r\n * @param {string} country\r\n * @param {object} metadata\r\n * @return {string?}\r\n * @example\r\n * // Returns \" ext. \"\r\n * getExtPrefix(\"US\")\r\n */\n\n\nexport function getExtPrefix(country, metadata) {\n metadata = new Metadata(metadata);\n\n if (metadata.hasCountry(country)) {\n return metadata.country(country).ext();\n }\n\n return DEFAULT_EXT_PREFIX;\n}\n/**\r\n * Returns \"country calling code\" for a country.\r\n * Throws an error if the country doesn't exist or isn't supported by this library.\r\n * @param {string} country\r\n * @param {object} metadata\r\n * @return {string}\r\n * @example\r\n * // Returns \"44\"\r\n * getCountryCallingCode(\"GB\")\r\n */\n\nexport function getCountryCallingCode(country, metadata) {\n metadata = new Metadata(metadata);\n\n if (metadata.hasCountry(country)) {\n return metadata.country(country).countryCallingCode();\n }\n\n throw new Error(\"Unknown country: \".concat(country));\n}\nexport function isSupportedCountry(country, metadata) {\n // metadata = new Metadata(metadata)\n // return metadata.hasCountry(country)\n return metadata.countries.hasOwnProperty(country);\n}\n\nfunction setVersion(metadata) {\n var version = metadata.version;\n\n if (typeof version === 'number') {\n this.v1 = version === 1;\n this.v2 = version === 2;\n this.v3 = version === 3;\n this.v4 = version === 4;\n } else {\n if (!version) {\n this.v1 = true;\n } else if (compare(version, V3) === -1) {\n this.v2 = true;\n } else if (compare(version, V4) === -1) {\n this.v3 = true;\n } else {\n this.v4 = true;\n }\n }\n} // const ISO_COUNTRY_CODE = /^[A-Z]{2}$/\n// function isCountryCode(countryCode) {\n// \treturn ISO_COUNTRY_CODE.test(countryCodeOrCountryCallingCode)\n// }\n//# sourceMappingURL=metadata.js.map","import { VALID_DIGITS } from '../../constants.js'; // The RFC 3966 format for extensions.\n\nvar RFC3966_EXTN_PREFIX = ';ext=';\n/**\r\n * Helper method for constructing regular expressions for parsing. Creates\r\n * an expression that captures up to max_length digits.\r\n * @return {string} RegEx pattern to capture extension digits.\r\n */\n\nvar getExtensionDigitsPattern = function getExtensionDigitsPattern(maxLength) {\n return \"([\".concat(VALID_DIGITS, \"]{1,\").concat(maxLength, \"})\");\n};\n/**\r\n * Helper initialiser method to create the regular-expression pattern to match\r\n * extensions.\r\n * Copy-pasted from Google's `libphonenumber`:\r\n * https://github.com/google/libphonenumber/blob/55b2646ec9393f4d3d6661b9c82ef9e258e8b829/javascript/i18n/phonenumbers/phonenumberutil.js#L759-L766\r\n * @return {string} RegEx pattern to capture extensions.\r\n */\n\n\nexport default function createExtensionPattern(purpose) {\n // We cap the maximum length of an extension based on the ambiguity of the way\n // the extension is prefixed. As per ITU, the officially allowed length for\n // extensions is actually 40, but we don't support this since we haven't seen real\n // examples and this introduces many false interpretations as the extension labels\n // are not standardized.\n\n /** @type {string} */\n var extLimitAfterExplicitLabel = '20';\n /** @type {string} */\n\n var extLimitAfterLikelyLabel = '15';\n /** @type {string} */\n\n var extLimitAfterAmbiguousChar = '9';\n /** @type {string} */\n\n var extLimitWhenNotSure = '6';\n /** @type {string} */\n\n var possibleSeparatorsBetweenNumberAndExtLabel = \"[ \\xA0\\\\t,]*\"; // Optional full stop (.) or colon, followed by zero or more spaces/tabs/commas.\n\n /** @type {string} */\n\n var possibleCharsAfterExtLabel = \"[:\\\\.\\uFF0E]?[ \\xA0\\\\t,-]*\";\n /** @type {string} */\n\n var optionalExtnSuffix = \"#?\"; // Here the extension is called out in more explicit way, i.e mentioning it obvious\n // patterns like \"ext.\".\n\n /** @type {string} */\n\n var explicitExtLabels = \"(?:e?xt(?:ensi(?:o\\u0301?|\\xF3))?n?|\\uFF45?\\uFF58\\uFF54\\uFF4E?|\\u0434\\u043E\\u0431|anexo)\"; // One-character symbols that can be used to indicate an extension, and less\n // commonly used or more ambiguous extension labels.\n\n /** @type {string} */\n\n var ambiguousExtLabels = \"(?:[x\\uFF58#\\uFF03~\\uFF5E]|int|\\uFF49\\uFF4E\\uFF54)\"; // When extension is not separated clearly.\n\n /** @type {string} */\n\n var ambiguousSeparator = \"[- ]+\"; // This is the same as possibleSeparatorsBetweenNumberAndExtLabel, but not matching\n // comma as extension label may have it.\n\n /** @type {string} */\n\n var possibleSeparatorsNumberExtLabelNoComma = \"[ \\xA0\\\\t]*\"; // \",,\" is commonly used for auto dialling the extension when connected. First\n // comma is matched through possibleSeparatorsBetweenNumberAndExtLabel, so we do\n // not repeat it here. Semi-colon works in Iphone and Android also to pop up a\n // button with the extension number following.\n\n /** @type {string} */\n\n var autoDiallingAndExtLabelsFound = \"(?:,{2}|;)\";\n /** @type {string} */\n\n var rfcExtn = RFC3966_EXTN_PREFIX + getExtensionDigitsPattern(extLimitAfterExplicitLabel);\n /** @type {string} */\n\n var explicitExtn = possibleSeparatorsBetweenNumberAndExtLabel + explicitExtLabels + possibleCharsAfterExtLabel + getExtensionDigitsPattern(extLimitAfterExplicitLabel) + optionalExtnSuffix;\n /** @type {string} */\n\n var ambiguousExtn = possibleSeparatorsBetweenNumberAndExtLabel + ambiguousExtLabels + possibleCharsAfterExtLabel + getExtensionDigitsPattern(extLimitAfterAmbiguousChar) + optionalExtnSuffix;\n /** @type {string} */\n\n var americanStyleExtnWithSuffix = ambiguousSeparator + getExtensionDigitsPattern(extLimitWhenNotSure) + \"#\";\n /** @type {string} */\n\n var autoDiallingExtn = possibleSeparatorsNumberExtLabelNoComma + autoDiallingAndExtLabelsFound + possibleCharsAfterExtLabel + getExtensionDigitsPattern(extLimitAfterLikelyLabel) + optionalExtnSuffix;\n /** @type {string} */\n\n var onlyCommasExtn = possibleSeparatorsNumberExtLabelNoComma + \"(?:,)+\" + possibleCharsAfterExtLabel + getExtensionDigitsPattern(extLimitAfterAmbiguousChar) + optionalExtnSuffix; // The first regular expression covers RFC 3966 format, where the extension is added\n // using \";ext=\". The second more generic where extension is mentioned with explicit\n // labels like \"ext:\". In both the above cases we allow more numbers in extension than\n // any other extension labels. The third one captures when single character extension\n // labels or less commonly used labels are used. In such cases we capture fewer\n // extension digits in order to reduce the chance of falsely interpreting two\n // numbers beside each other as a number + extension. The fourth one covers the\n // special case of American numbers where the extension is written with a hash\n // at the end, such as \"- 503#\". The fifth one is exclusively for extension\n // autodialling formats which are used when dialling and in this case we accept longer\n // extensions. The last one is more liberal on the number of commas that acts as\n // extension labels, so we have a strict cap on the number of digits in such extensions.\n\n return rfcExtn + \"|\" + explicitExtn + \"|\" + ambiguousExtn + \"|\" + americanStyleExtnWithSuffix + \"|\" + autoDiallingExtn + \"|\" + onlyCommasExtn;\n}\n//# sourceMappingURL=createExtensionPattern.js.map","import { MIN_LENGTH_FOR_NSN, VALID_DIGITS, VALID_PUNCTUATION, PLUS_CHARS } from '../constants.js';\nimport createExtensionPattern from './extension/createExtensionPattern.js'; // Regular expression of viable phone numbers. This is location independent.\n// Checks we have at least three leading digits, and only valid punctuation,\n// alpha characters and digits in the phone number. Does not include extension\n// data. The symbol 'x' is allowed here as valid punctuation since it is often\n// used as a placeholder for carrier codes, for example in Brazilian phone\n// numbers. We also allow multiple '+' characters at the start.\n//\n// Corresponds to the following:\n// [digits]{minLengthNsn}|\n// plus_sign*\n// (([punctuation]|[star])*[digits]){3,}([punctuation]|[star]|[digits]|[alpha])*\n//\n// The first reg-ex is to allow short numbers (two digits long) to be parsed if\n// they are entered as \"15\" etc, but only if there is no punctuation in them.\n// The second expression restricts the number of digits to three or more, but\n// then allows them to be in international form, and to have alpha-characters\n// and punctuation. We split up the two reg-exes here and combine them when\n// creating the reg-ex VALID_PHONE_NUMBER_PATTERN itself so we can prefix it\n// with ^ and append $ to each branch.\n//\n// \"Note VALID_PUNCTUATION starts with a -,\n// so must be the first in the range\" (c) Google devs.\n// (wtf did they mean by saying that; probably nothing)\n//\n\nvar MIN_LENGTH_PHONE_NUMBER_PATTERN = '[' + VALID_DIGITS + ']{' + MIN_LENGTH_FOR_NSN + '}'; //\n// And this is the second reg-exp:\n// (see MIN_LENGTH_PHONE_NUMBER_PATTERN for a full description of this reg-exp)\n//\n\nexport var VALID_PHONE_NUMBER = '[' + PLUS_CHARS + ']{0,1}' + '(?:' + '[' + VALID_PUNCTUATION + ']*' + '[' + VALID_DIGITS + ']' + '){3,}' + '[' + VALID_PUNCTUATION + VALID_DIGITS + ']*'; // This regular expression isn't present in Google's `libphonenumber`\n// and is only used to determine whether the phone number being input\n// is too short for it to even consider it a \"valid\" number.\n// This is just a way to differentiate between a really invalid phone\n// number like \"abcde\" and a valid phone number that a user has just\n// started inputting, like \"+1\" or \"1\": both these cases would be\n// considered `NOT_A_NUMBER` by Google's `libphonenumber`, but this\n// library can provide a more detailed error message — whether it's\n// really \"not a number\", or is it just a start of a valid phone number.\n\nvar VALID_PHONE_NUMBER_START_REG_EXP = new RegExp('^' + '[' + PLUS_CHARS + ']{0,1}' + '(?:' + '[' + VALID_PUNCTUATION + ']*' + '[' + VALID_DIGITS + ']' + '){1,2}' + '$', 'i');\nexport var VALID_PHONE_NUMBER_WITH_EXTENSION = VALID_PHONE_NUMBER + // Phone number extensions\n'(?:' + createExtensionPattern() + ')?'; // The combined regular expression for valid phone numbers:\n//\n\nvar VALID_PHONE_NUMBER_PATTERN = new RegExp( // Either a short two-digit-only phone number\n'^' + MIN_LENGTH_PHONE_NUMBER_PATTERN + '$' + '|' + // Or a longer fully parsed phone number (min 3 characters)\n'^' + VALID_PHONE_NUMBER_WITH_EXTENSION + '$', 'i'); // Checks to see if the string of characters could possibly be a phone number at\n// all. At the moment, checks to see that the string begins with at least 2\n// digits, ignoring any punctuation commonly found in phone numbers. This method\n// does not require the number to be normalized in advance - but does assume\n// that leading non-number symbols have been removed, such as by the method\n// `extract_possible_number`.\n//\n\nexport default function isViablePhoneNumber(number) {\n return number.length >= MIN_LENGTH_FOR_NSN && VALID_PHONE_NUMBER_PATTERN.test(number);\n} // This is just a way to differentiate between a really invalid phone\n// number like \"abcde\" and a valid phone number that a user has just\n// started inputting, like \"+1\" or \"1\": both these cases would be\n// considered `NOT_A_NUMBER` by Google's `libphonenumber`, but this\n// library can provide a more detailed error message — whether it's\n// really \"not a number\", or is it just a start of a valid phone number.\n\nexport function isViablePhoneNumberStart(number) {\n return VALID_PHONE_NUMBER_START_REG_EXP.test(number);\n}\n//# sourceMappingURL=isViablePhoneNumber.js.map","import createExtensionPattern from './createExtensionPattern.js'; // Regexp of all known extension prefixes used by different regions followed by\n// 1 or more valid digits, for use when parsing.\n\nvar EXTN_PATTERN = new RegExp('(?:' + createExtensionPattern() + ')$', 'i'); // Strips any extension (as in, the part of the number dialled after the call is\n// connected, usually indicated with extn, ext, x or similar) from the end of\n// the number, and returns it.\n\nexport default function extractExtension(number) {\n var start = number.search(EXTN_PATTERN);\n\n if (start < 0) {\n return {};\n } // If we find a potential extension, and the number preceding this is a viable\n // number, we assume it is an extension.\n\n\n var numberWithoutExtension = number.slice(0, start);\n var matches = number.match(EXTN_PATTERN);\n var i = 1;\n\n while (i < matches.length) {\n if (matches[i]) {\n return {\n number: numberWithoutExtension,\n ext: matches[i]\n };\n }\n\n i++;\n }\n}\n//# sourceMappingURL=extractExtension.js.map","function _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\n// These mappings map a character (key) to a specific digit that should\n// replace it for normalization purposes. Non-European digits that\n// may be used in phone numbers are mapped to a European equivalent.\n//\n// E.g. in Iraq they don't write `+442323234` but rather `+٤٤٢٣٢٣٢٣٤`.\n//\nexport var DIGITS = {\n '0': '0',\n '1': '1',\n '2': '2',\n '3': '3',\n '4': '4',\n '5': '5',\n '6': '6',\n '7': '7',\n '8': '8',\n '9': '9',\n \"\\uFF10\": '0',\n // Fullwidth digit 0\n \"\\uFF11\": '1',\n // Fullwidth digit 1\n \"\\uFF12\": '2',\n // Fullwidth digit 2\n \"\\uFF13\": '3',\n // Fullwidth digit 3\n \"\\uFF14\": '4',\n // Fullwidth digit 4\n \"\\uFF15\": '5',\n // Fullwidth digit 5\n \"\\uFF16\": '6',\n // Fullwidth digit 6\n \"\\uFF17\": '7',\n // Fullwidth digit 7\n \"\\uFF18\": '8',\n // Fullwidth digit 8\n \"\\uFF19\": '9',\n // Fullwidth digit 9\n \"\\u0660\": '0',\n // Arabic-indic digit 0\n \"\\u0661\": '1',\n // Arabic-indic digit 1\n \"\\u0662\": '2',\n // Arabic-indic digit 2\n \"\\u0663\": '3',\n // Arabic-indic digit 3\n \"\\u0664\": '4',\n // Arabic-indic digit 4\n \"\\u0665\": '5',\n // Arabic-indic digit 5\n \"\\u0666\": '6',\n // Arabic-indic digit 6\n \"\\u0667\": '7',\n // Arabic-indic digit 7\n \"\\u0668\": '8',\n // Arabic-indic digit 8\n \"\\u0669\": '9',\n // Arabic-indic digit 9\n \"\\u06F0\": '0',\n // Eastern-Arabic digit 0\n \"\\u06F1\": '1',\n // Eastern-Arabic digit 1\n \"\\u06F2\": '2',\n // Eastern-Arabic digit 2\n \"\\u06F3\": '3',\n // Eastern-Arabic digit 3\n \"\\u06F4\": '4',\n // Eastern-Arabic digit 4\n \"\\u06F5\": '5',\n // Eastern-Arabic digit 5\n \"\\u06F6\": '6',\n // Eastern-Arabic digit 6\n \"\\u06F7\": '7',\n // Eastern-Arabic digit 7\n \"\\u06F8\": '8',\n // Eastern-Arabic digit 8\n \"\\u06F9\": '9' // Eastern-Arabic digit 9\n\n};\nexport function parseDigit(character) {\n return DIGITS[character];\n}\n/**\r\n * Parses phone number digits from a string.\r\n * Drops all punctuation leaving only digits.\r\n * Also converts wide-ascii and arabic-indic numerals to conventional numerals.\r\n * E.g. in Iraq they don't write `+442323234` but rather `+٤٤٢٣٢٣٢٣٤`.\r\n * @param {string} string\r\n * @return {string}\r\n * @example\r\n * ```js\r\n * parseDigits('8 (800) 555')\r\n * // Outputs '8800555'.\r\n * ```\r\n */\n\nexport default function parseDigits(string) {\n var result = ''; // Using `.split('')` here instead of normal `for ... of`\n // because the importing application doesn't neccessarily include an ES6 polyfill.\n // The `.split('')` approach discards \"exotic\" UTF-8 characters\n // (the ones consisting of four bytes) but digits\n // (including non-European ones) don't fall into that range\n // so such \"exotic\" characters would be discarded anyway.\n\n for (var _iterator = _createForOfIteratorHelperLoose(string.split('')), _step; !(_step = _iterator()).done;) {\n var character = _step.value;\n var digit = parseDigit(character);\n\n if (digit) {\n result += digit;\n }\n }\n\n return result;\n}\n//# sourceMappingURL=parseDigits.js.map","function _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nimport { parseDigit } from './helpers/parseDigits.js';\n/**\r\n * Parses phone number characters from a string.\r\n * Drops all punctuation leaving only digits and the leading `+` sign (if any).\r\n * Also converts wide-ascii and arabic-indic numerals to conventional numerals.\r\n * E.g. in Iraq they don't write `+442323234` but rather `+٤٤٢٣٢٣٢٣٤`.\r\n * @param {string} string\r\n * @return {string}\r\n * @example\r\n * ```js\r\n * // Outputs '8800555'.\r\n * parseIncompletePhoneNumber('8 (800) 555')\r\n * // Outputs '+7800555'.\r\n * parseIncompletePhoneNumber('+7 800 555')\r\n * ```\r\n */\n\nexport default function parseIncompletePhoneNumber(string) {\n var result = ''; // Using `.split('')` here instead of normal `for ... of`\n // because the importing application doesn't neccessarily include an ES6 polyfill.\n // The `.split('')` approach discards \"exotic\" UTF-8 characters\n // (the ones consisting of four bytes) but digits\n // (including non-European ones) don't fall into that range\n // so such \"exotic\" characters would be discarded anyway.\n\n for (var _iterator = _createForOfIteratorHelperLoose(string.split('')), _step; !(_step = _iterator()).done;) {\n var character = _step.value;\n result += parsePhoneNumberCharacter(character, result) || '';\n }\n\n return result;\n}\n/**\r\n * Parses next character while parsing phone number digits (including a `+`)\r\n * from text: discards everything except `+` and digits, and `+` is only allowed\r\n * at the start of a phone number.\r\n * For example, is used in `react-phone-number-input` where it uses\r\n * [`input-format`](https://gitlab.com/catamphetamine/input-format).\r\n * @param {string} character - Yet another character from raw input string.\r\n * @param {string?} prevParsedCharacters - Previous parsed characters.\r\n * @param {function?} emitEvent - An optional \"emit event\" function.\r\n * @return {string?} The parsed character.\r\n */\n\nexport function parsePhoneNumberCharacter(character, prevParsedCharacters, emitEvent) {\n // Only allow a leading `+`.\n if (character === '+') {\n // If this `+` is not the first parsed character\n // then discard it.\n if (prevParsedCharacters) {\n // `emitEvent` argument was added to this `export`ed function on Dec 26th, 2023.\n // Any 3rd-party code that used to `import` and call this function before that\n // won't be passing any `emitEvent` argument.\n //\n // The addition of the `emitEvent` argument was to fix the slightly-weird behavior\n // of parsing an input string when the user inputs something like `\"2+7\"\n // https://github.com/catamphetamine/react-phone-number-input/issues/437\n //\n // If the parser encounters an unexpected `+` in a string being parsed\n // then it simply discards that out-of-place `+` and any following characters.\n //\n if (typeof emitEvent === 'function') {\n emitEvent('end');\n }\n\n return;\n }\n\n return '+';\n } // Allow digits.\n\n\n return parseDigit(character);\n}\n//# sourceMappingURL=parseIncompletePhoneNumber.js.map","function _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\n/**\r\n * Merges two arrays.\r\n * @param {*} a\r\n * @param {*} b\r\n * @return {*}\r\n */\nexport default function mergeArrays(a, b) {\n var merged = a.slice();\n\n for (var _iterator = _createForOfIteratorHelperLoose(b), _step; !(_step = _iterator()).done;) {\n var element = _step.value;\n\n if (a.indexOf(element) < 0) {\n merged.push(element);\n }\n }\n\n return merged.sort(function (a, b) {\n return a - b;\n }); // ES6 version, requires Set polyfill.\n // let merged = new Set(a)\n // for (const element of b) {\n // \tmerged.add(i)\n // }\n // return Array.from(merged).sort((a, b) => a - b)\n}\n//# sourceMappingURL=mergeArrays.js.map","import mergeArrays from './mergeArrays.js';\nexport default function checkNumberLength(nationalNumber, metadata) {\n return checkNumberLengthForType(nationalNumber, undefined, metadata);\n} // Checks whether a number is possible for the country based on its length.\n// Should only be called for the \"new\" metadata which has \"possible lengths\".\n\nexport function checkNumberLengthForType(nationalNumber, type, metadata) {\n var type_info = metadata.type(type); // There should always be \"<possiblePengths/>\" set for every type element.\n // This is declared in the XML schema.\n // For size efficiency, where a sub-description (e.g. fixed-line)\n // has the same \"<possiblePengths/>\" as the \"general description\", this is missing,\n // so we fall back to the \"general description\". Where no numbers of the type\n // exist at all, there is one possible length (-1) which is guaranteed\n // not to match the length of any real phone number.\n\n var possible_lengths = type_info && type_info.possibleLengths() || metadata.possibleLengths(); // let local_lengths = type_info && type.possibleLengthsLocal() || metadata.possibleLengthsLocal()\n // Metadata before version `1.0.18` didn't contain `possible_lengths`.\n\n if (!possible_lengths) {\n return 'IS_POSSIBLE';\n }\n\n if (type === 'FIXED_LINE_OR_MOBILE') {\n // No such country in metadata.\n\n /* istanbul ignore next */\n if (!metadata.type('FIXED_LINE')) {\n // The rare case has been encountered where no fixedLine data is available\n // (true for some non-geographic entities), so we just check mobile.\n return checkNumberLengthForType(nationalNumber, 'MOBILE', metadata);\n }\n\n var mobile_type = metadata.type('MOBILE');\n\n if (mobile_type) {\n // Merge the mobile data in if there was any. \"Concat\" creates a new\n // array, it doesn't edit possible_lengths in place, so we don't need a copy.\n // Note that when adding the possible lengths from mobile, we have\n // to again check they aren't empty since if they are this indicates\n // they are the same as the general desc and should be obtained from there.\n possible_lengths = mergeArrays(possible_lengths, mobile_type.possibleLengths()); // The current list is sorted; we need to merge in the new list and\n // re-sort (duplicates are okay). Sorting isn't so expensive because\n // the lists are very small.\n // if (local_lengths) {\n // \tlocal_lengths = mergeArrays(local_lengths, mobile_type.possibleLengthsLocal())\n // } else {\n // \tlocal_lengths = mobile_type.possibleLengthsLocal()\n // }\n }\n } // If the type doesn't exist then return 'INVALID_LENGTH'.\n else if (type && !type_info) {\n return 'INVALID_LENGTH';\n }\n\n var actual_length = nationalNumber.length; // In `libphonenumber-js` all \"local-only\" formats are dropped for simplicity.\n // // This is safe because there is never an overlap beween the possible lengths\n // // and the local-only lengths; this is checked at build time.\n // if (local_lengths && local_lengths.indexOf(nationalNumber.length) >= 0)\n // {\n // \treturn 'IS_POSSIBLE_LOCAL_ONLY'\n // }\n\n var minimum_length = possible_lengths[0];\n\n if (minimum_length === actual_length) {\n return 'IS_POSSIBLE';\n }\n\n if (minimum_length > actual_length) {\n return 'TOO_SHORT';\n }\n\n if (possible_lengths[possible_lengths.length - 1] < actual_length) {\n return 'TOO_LONG';\n } // We skip the first element since we've already checked it.\n\n\n return possible_lengths.indexOf(actual_length, 1) >= 0 ? 'IS_POSSIBLE' : 'INVALID_LENGTH';\n}\n//# sourceMappingURL=checkNumberLength.js.map","import Metadata from './metadata.js';\nimport checkNumberLength from './helpers/checkNumberLength.js';\n/**\r\n * Checks if a phone number is \"possible\" (basically just checks its length).\r\n *\r\n * isPossible(phoneNumberInstance, { ..., v2: true }, metadata)\r\n *\r\n * isPossible({ phone: '8005553535', country: 'RU' }, { ... }, metadata)\r\n * isPossible({ phone: '8005553535', country: 'RU' }, undefined, metadata)\r\n *\r\n * @param {object|PhoneNumber} input — If `options.v2: true` flag is passed, the `input` should be a `PhoneNumber` instance. Otherwise, it should be an object of shape `{ phone: '...', country: '...' }`.\r\n * @param {object} [options]\r\n * @param {object} metadata\r\n * @return {string}\r\n */\n\nexport default function isPossiblePhoneNumber(input, options, metadata) {\n /* istanbul ignore if */\n if (options === undefined) {\n options = {};\n }\n\n metadata = new Metadata(metadata);\n\n if (options.v2) {\n if (!input.countryCallingCode) {\n throw new Error('Invalid phone number object passed');\n }\n\n metadata.selectNumberingPlan(input.countryCallingCode);\n } else {\n if (!input.phone) {\n return false;\n }\n\n if (input.country) {\n if (!metadata.hasCountry(input.country)) {\n throw new Error(\"Unknown country: \".concat(input.country));\n }\n\n metadata.country(input.country);\n } else {\n if (!input.countryCallingCode) {\n throw new Error('Invalid phone number object passed');\n }\n\n metadata.selectNumberingPlan(input.countryCallingCode);\n }\n } // Old metadata (< 1.0.18) had no \"possible length\" data.\n\n\n if (metadata.possibleLengths()) {\n return isPossibleNumber(input.phone || input.nationalNumber, metadata);\n } else {\n // There was a bug between `1.7.35` and `1.7.37` where \"possible_lengths\"\n // were missing for \"non-geographical\" numbering plans.\n // Just assume the number is possible in such cases:\n // it's unlikely that anyone generated their custom metadata\n // in that short period of time (one day).\n // This code can be removed in some future major version update.\n if (input.countryCallingCode && metadata.isNonGeographicCallingCode(input.countryCallingCode)) {\n // \"Non-geographic entities\" did't have `possibleLengths`\n // due to a bug in metadata generation process.\n return true;\n } else {\n throw new Error('Missing \"possibleLengths\" in metadata. Perhaps the metadata has been generated before v1.0.18.');\n }\n }\n}\nexport function isPossibleNumber(nationalNumber, metadata) {\n //, isInternational) {\n switch (checkNumberLength(nationalNumber, metadata)) {\n case 'IS_POSSIBLE':\n return true;\n // This library ignores \"local-only\" phone numbers (for simplicity).\n // See the readme for more info on what are \"local-only\" phone numbers.\n // case 'IS_POSSIBLE_LOCAL_ONLY':\n // \treturn !isInternational\n\n default:\n return false;\n }\n}\n//# sourceMappingURL=isPossible.js.map","/**\r\n * Checks whether the entire input sequence can be matched\r\n * against the regular expression.\r\n * @return {boolean}\r\n */\nexport default function matchesEntirely(text, regular_expression) {\n // If assigning the `''` default value is moved to the arguments above,\n // code coverage would decrease for some weird reason.\n text = text || '';\n return new RegExp('^(?:' + regular_expression + ')$').test(text);\n}\n//# sourceMappingURL=matchesEntirely.js.map","function _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nimport Metadata from '../metadata.js';\nimport matchesEntirely from './matchesEntirely.js';\nvar NON_FIXED_LINE_PHONE_TYPES = ['MOBILE', 'PREMIUM_RATE', 'TOLL_FREE', 'SHARED_COST', 'VOIP', 'PERSONAL_NUMBER', 'PAGER', 'UAN', 'VOICEMAIL']; // Finds out national phone number type (fixed line, mobile, etc)\n\nexport default function getNumberType(input, options, metadata) {\n // If assigning the `{}` default value is moved to the arguments above,\n // code coverage would decrease for some weird reason.\n options = options || {}; // When `parse()` returns an empty object — `{}` —\n // that means that the phone number is malformed,\n // so it can't possibly be valid.\n\n if (!input.country && !input.countryCallingCode) {\n return;\n }\n\n metadata = new Metadata(metadata);\n metadata.selectNumberingPlan(input.country, input.countryCallingCode);\n var nationalNumber = options.v2 ? input.nationalNumber : input.phone; // The following is copy-pasted from the original function:\n // https://github.com/googlei18n/libphonenumber/blob/3ea547d4fbaa2d0b67588904dfa5d3f2557c27ff/javascript/i18n/phonenumbers/phonenumberutil.js#L2835\n // Is this national number even valid for this country\n\n if (!matchesEntirely(nationalNumber, metadata.nationalNumberPattern())) {\n return;\n } // Is it fixed line number\n\n\n if (isNumberTypeEqualTo(nationalNumber, 'FIXED_LINE', metadata)) {\n // Because duplicate regular expressions are removed\n // to reduce metadata size, if \"mobile\" pattern is \"\"\n // then it means it was removed due to being a duplicate of the fixed-line pattern.\n //\n if (metadata.type('MOBILE') && metadata.type('MOBILE').pattern() === '') {\n return 'FIXED_LINE_OR_MOBILE';\n } // `MOBILE` type pattern isn't included if it matched `FIXED_LINE` one.\n // For example, for \"US\" country.\n // Old metadata (< `1.0.18`) had a specific \"types\" data structure\n // that happened to be `undefined` for `MOBILE` in that case.\n // Newer metadata (>= `1.0.18`) has another data structure that is\n // not `undefined` for `MOBILE` in that case (it's just an empty array).\n // So this `if` is just for backwards compatibility with old metadata.\n\n\n if (!metadata.type('MOBILE')) {\n return 'FIXED_LINE_OR_MOBILE';\n } // Check if the number happens to qualify as both fixed line and mobile.\n // (no such country in the minimal metadata set)\n\n /* istanbul ignore if */\n\n\n if (isNumberTypeEqualTo(nationalNumber, 'MOBILE', metadata)) {\n return 'FIXED_LINE_OR_MOBILE';\n }\n\n return 'FIXED_LINE';\n }\n\n for (var _iterator = _createForOfIteratorHelperLoose(NON_FIXED_LINE_PHONE_TYPES), _step; !(_step = _iterator()).done;) {\n var type = _step.value;\n\n if (isNumberTypeEqualTo(nationalNumber, type, metadata)) {\n return type;\n }\n }\n}\nexport function isNumberTypeEqualTo(nationalNumber, type, metadata) {\n type = metadata.type(type);\n\n if (!type || !type.pattern()) {\n return false;\n } // Check if any possible number lengths are present;\n // if so, we use them to avoid checking\n // the validation pattern if they don't match.\n // If they are absent, this means they match\n // the general description, which we have\n // already checked before a specific number type.\n\n\n if (type.possibleLengths() && type.possibleLengths().indexOf(nationalNumber.length) < 0) {\n return false;\n }\n\n return matchesEntirely(nationalNumber, type.pattern());\n}\n//# sourceMappingURL=getNumberType.js.map","import applyInternationalSeparatorStyle from './applyInternationalSeparatorStyle.js'; // This was originally set to $1 but there are some countries for which the\n// first group is not used in the national pattern (e.g. Argentina) so the $1\n// group does not match correctly. Therefore, we use `\\d`, so that the first\n// group actually used in the pattern will be matched.\n\nexport var FIRST_GROUP_PATTERN = /(\\$\\d)/;\nexport default function formatNationalNumberUsingFormat(number, format, _ref) {\n var useInternationalFormat = _ref.useInternationalFormat,\n withNationalPrefix = _ref.withNationalPrefix,\n carrierCode = _ref.carrierCode,\n metadata = _ref.metadata;\n var formattedNumber = number.replace(new RegExp(format.pattern()), useInternationalFormat ? format.internationalFormat() : // This library doesn't use `domestic_carrier_code_formatting_rule`,\n // because that one is only used when formatting phone numbers\n // for dialing from a mobile phone, and this is not a dialing library.\n // carrierCode && format.domesticCarrierCodeFormattingRule()\n // \t// First, replace the $CC in the formatting rule with the desired carrier code.\n // \t// Then, replace the $FG in the formatting rule with the first group\n // \t// and the carrier code combined in the appropriate way.\n // \t? format.format().replace(FIRST_GROUP_PATTERN, format.domesticCarrierCodeFormattingRule().replace('$CC', carrierCode))\n // \t: (\n // \t\twithNationalPrefix && format.nationalPrefixFormattingRule()\n // \t\t\t? format.format().replace(FIRST_GROUP_PATTERN, format.nationalPrefixFormattingRule())\n // \t\t\t: format.format()\n // \t)\n withNationalPrefix && format.nationalPrefixFormattingRule() ? format.format().replace(FIRST_GROUP_PATTERN, format.nationalPrefixFormattingRule()) : format.format());\n\n if (useInternationalFormat) {\n return applyInternationalSeparatorStyle(formattedNumber);\n }\n\n return formattedNumber;\n}\n//# sourceMappingURL=formatNationalNumberUsingFormat.js.map","import Metadata from '../metadata.js';\n/**\r\n * Pattern that makes it easy to distinguish whether a region has a single\r\n * international dialing prefix or not. If a region has a single international\r\n * prefix (e.g. 011 in USA), it will be represented as a string that contains\r\n * a sequence of ASCII digits, and possibly a tilde, which signals waiting for\r\n * the tone. If there are multiple available international prefixes in a\r\n * region, they will be represented as a regex string that always contains one\r\n * or more characters that are not ASCII digits or a tilde.\r\n */\n\nvar SINGLE_IDD_PREFIX_REG_EXP = /^[\\d]+(?:[~\\u2053\\u223C\\uFF5E][\\d]+)?$/; // For regions that have multiple IDD prefixes\n// a preferred IDD prefix is returned.\n\nexport default function getIddPrefix(country, callingCode, metadata) {\n var countryMetadata = new Metadata(metadata);\n countryMetadata.selectNumberingPlan(country, callingCode);\n\n if (countryMetadata.defaultIDDPrefix()) {\n return countryMetadata.defaultIDDPrefix();\n }\n\n if (SINGLE_IDD_PREFIX_REG_EXP.test(countryMetadata.IDDPrefix())) {\n return countryMetadata.IDDPrefix();\n }\n}\n//# sourceMappingURL=getIddPrefix.js.map","function _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// This is a port of Google Android `libphonenumber`'s\n// `phonenumberutil.js` of December 31th, 2018.\n//\n// https://github.com/googlei18n/libphonenumber/commits/master/javascript/i18n/phonenumbers/phonenumberutil.js\nimport matchesEntirely from './helpers/matchesEntirely.js';\nimport formatNationalNumberUsingFormat from './helpers/formatNationalNumberUsingFormat.js';\nimport Metadata, { getCountryCallingCode } from './metadata.js';\nimport getIddPrefix from './helpers/getIddPrefix.js';\nimport { formatRFC3966 } from './helpers/RFC3966.js';\nvar DEFAULT_OPTIONS = {\n formatExtension: function formatExtension(formattedNumber, extension, metadata) {\n return \"\".concat(formattedNumber).concat(metadata.ext()).concat(extension);\n }\n};\n/**\r\n * Formats a phone number.\r\n *\r\n * format(phoneNumberInstance, 'INTERNATIONAL', { ..., v2: true }, metadata)\r\n * format(phoneNumberInstance, 'NATIONAL', { ..., v2: true }, metadata)\r\n *\r\n * format({ phone: '8005553535', country: 'RU' }, 'INTERNATIONAL', { ... }, metadata)\r\n * format({ phone: '8005553535', country: 'RU' }, 'NATIONAL', undefined, metadata)\r\n *\r\n * @param {object|PhoneNumber} input — If `options.v2: true` flag is passed, the `input` should be a `PhoneNumber` instance. Otherwise, it should be an object of shape `{ phone: '...', country: '...' }`.\r\n * @param {string} format\r\n * @param {object} [options]\r\n * @param {object} metadata\r\n * @return {string}\r\n */\n\nexport default function formatNumber(input, format, options, metadata) {\n // Apply default options.\n if (options) {\n options = _objectSpread(_objectSpread({}, DEFAULT_OPTIONS), options);\n } else {\n options = DEFAULT_OPTIONS;\n }\n\n metadata = new Metadata(metadata);\n\n if (input.country && input.country !== '001') {\n // Validate `input.country`.\n if (!metadata.hasCountry(input.country)) {\n throw new Error(\"Unknown country: \".concat(input.country));\n }\n\n metadata.country(input.country);\n } else if (input.countryCallingCode) {\n metadata.selectNumberingPlan(input.countryCallingCode);\n } else return input.phone || '';\n\n var countryCallingCode = metadata.countryCallingCode();\n var nationalNumber = options.v2 ? input.nationalNumber : input.phone; // This variable should have been declared inside `case`s\n // but Babel has a bug and it says \"duplicate variable declaration\".\n\n var number;\n\n switch (format) {\n case 'NATIONAL':\n // Legacy argument support.\n // (`{ country: ..., phone: '' }`)\n if (!nationalNumber) {\n return '';\n }\n\n number = formatNationalNumber(nationalNumber, input.carrierCode, 'NATIONAL', metadata, options);\n return addExtension(number, input.ext, metadata, options.formatExtension);\n\n case 'INTERNATIONAL':\n // Legacy argument support.\n // (`{ country: ..., phone: '' }`)\n if (!nationalNumber) {\n return \"+\".concat(countryCallingCode);\n }\n\n number = formatNationalNumber(nationalNumber, null, 'INTERNATIONAL', metadata, options);\n number = \"+\".concat(countryCallingCode, \" \").concat(number);\n return addExtension(number, input.ext, metadata, options.formatExtension);\n\n case 'E.164':\n // `E.164` doesn't define \"phone number extensions\".\n return \"+\".concat(countryCallingCode).concat(nationalNumber);\n\n case 'RFC3966':\n return formatRFC3966({\n number: \"+\".concat(countryCallingCode).concat(nationalNumber),\n ext: input.ext\n });\n // For reference, here's Google's IDD formatter:\n // https://github.com/google/libphonenumber/blob/32719cf74e68796788d1ca45abc85dcdc63ba5b9/java/libphonenumber/src/com/google/i18n/phonenumbers/PhoneNumberUtil.java#L1546\n // Not saying that this IDD formatter replicates it 1:1, but it seems to work.\n // Who would even need to format phone numbers in IDD format anyway?\n\n case 'IDD':\n if (!options.fromCountry) {\n return; // throw new Error('`fromCountry` option not passed for IDD-prefixed formatting.')\n }\n\n var formattedNumber = formatIDD(nationalNumber, input.carrierCode, countryCallingCode, options.fromCountry, metadata);\n return addExtension(formattedNumber, input.ext, metadata, options.formatExtension);\n\n default:\n throw new Error(\"Unknown \\\"format\\\" argument passed to \\\"formatNumber()\\\": \\\"\".concat(format, \"\\\"\"));\n }\n}\n\nfunction formatNationalNumber(number, carrierCode, formatAs, metadata, options) {\n var format = chooseFormatForNumber(metadata.formats(), number);\n\n if (!format) {\n return number;\n }\n\n return formatNationalNumberUsingFormat(number, format, {\n useInternationalFormat: formatAs === 'INTERNATIONAL',\n withNationalPrefix: format.nationalPrefixIsOptionalWhenFormattingInNationalFormat() && options && options.nationalPrefix === false ? false : true,\n carrierCode: carrierCode,\n metadata: metadata\n });\n}\n\nexport function chooseFormatForNumber(availableFormats, nationalNnumber) {\n for (var _iterator = _createForOfIteratorHelperLoose(availableFormats), _step; !(_step = _iterator()).done;) {\n var format = _step.value;\n\n // Validate leading digits.\n // The test case for \"else path\" could be found by searching for\n // \"format.leadingDigitsPatterns().length === 0\".\n if (format.leadingDigitsPatterns().length > 0) {\n // The last leading_digits_pattern is used here, as it is the most detailed\n var lastLeadingDigitsPattern = format.leadingDigitsPatterns()[format.leadingDigitsPatterns().length - 1]; // If leading digits don't match then move on to the next phone number format\n\n if (nationalNnumber.search(lastLeadingDigitsPattern) !== 0) {\n continue;\n }\n } // Check that the national number matches the phone number format regular expression\n\n\n if (matchesEntirely(nationalNnumber, format.pattern())) {\n return format;\n }\n }\n}\n\nfunction addExtension(formattedNumber, ext, metadata, formatExtension) {\n return ext ? formatExtension(formattedNumber, ext, metadata) : formattedNumber;\n}\n\nfunction formatIDD(nationalNumber, carrierCode, countryCallingCode, fromCountry, metadata) {\n var fromCountryCallingCode = getCountryCallingCode(fromCountry, metadata.metadata); // When calling within the same country calling code.\n\n if (fromCountryCallingCode === countryCallingCode) {\n var formattedNumber = formatNationalNumber(nationalNumber, carrierCode, 'NATIONAL', metadata); // For NANPA regions, return the national format for these regions\n // but prefix it with the country calling code.\n\n if (countryCallingCode === '1') {\n return countryCallingCode + ' ' + formattedNumber;\n } // If regions share a country calling code, the country calling code need\n // not be dialled. This also applies when dialling within a region, so this\n // if clause covers both these cases. Technically this is the case for\n // dialling from La Reunion to other overseas departments of France (French\n // Guiana, Martinique, Guadeloupe), but not vice versa - so we don't cover\n // this edge case for now and for those cases return the version including\n // country calling code. Details here:\n // http://www.petitfute.com/voyage/225-info-pratiques-reunion\n //\n\n\n return formattedNumber;\n }\n\n var iddPrefix = getIddPrefix(fromCountry, undefined, metadata.metadata);\n\n if (iddPrefix) {\n return \"\".concat(iddPrefix, \" \").concat(countryCallingCode, \" \").concat(formatNationalNumber(nationalNumber, null, 'INTERNATIONAL', metadata));\n }\n}\n//# sourceMappingURL=format.js.map","import { VALID_PUNCTUATION } from '../constants.js'; // Removes brackets and replaces dashes with spaces.\n//\n// E.g. \"(999) 111-22-33\" -> \"999 111 22 33\"\n//\n// For some reason Google's metadata contains `<intlFormat/>`s with brackets and dashes.\n// Meanwhile, there's no single opinion about using punctuation in international phone numbers.\n//\n// For example, Google's `<intlFormat/>` for USA is `+1 213-373-4253`.\n// And here's a quote from WikiPedia's \"North American Numbering Plan\" page:\n// https://en.wikipedia.org/wiki/North_American_Numbering_Plan\n//\n// \"The country calling code for all countries participating in the NANP is 1.\n// In international format, an NANP number should be listed as +1 301 555 01 00,\n// where 301 is an area code (Maryland).\"\n//\n// I personally prefer the international format without any punctuation.\n// For example, brackets are remnants of the old age, meaning that the\n// phone number part in brackets (so called \"area code\") can be omitted\n// if dialing within the same \"area\".\n// And hyphens were clearly introduced for splitting local numbers into memorizable groups.\n// For example, remembering \"5553535\" is difficult but \"555-35-35\" is much simpler.\n// Imagine a man taking a bus from home to work and seeing an ad with a phone number.\n// He has a couple of seconds to memorize that number until it passes by.\n// If it were spaces instead of hyphens the man wouldn't necessarily get it,\n// but with hyphens instead of spaces the grouping is more explicit.\n// I personally think that hyphens introduce visual clutter,\n// so I prefer replacing them with spaces in international numbers.\n// In the modern age all output is done on displays where spaces are clearly distinguishable\n// so hyphens can be safely replaced with spaces without losing any legibility.\n//\n\nexport default function applyInternationalSeparatorStyle(formattedNumber) {\n return formattedNumber.replace(new RegExp(\"[\".concat(VALID_PUNCTUATION, \"]+\"), 'g'), ' ').trim();\n}\n//# sourceMappingURL=applyInternationalSeparatorStyle.js.map","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nimport Metadata from './metadata.js';\nimport isPossibleNumber from './isPossible.js';\nimport isValidNumber from './isValid.js'; // import checkNumberLength from './helpers/checkNumberLength.js'\n\nimport getNumberType from './helpers/getNumberType.js';\nimport getPossibleCountriesForNumber from './helpers/getPossibleCountriesForNumber.js';\nimport formatNumber from './format.js';\nvar USE_NON_GEOGRAPHIC_COUNTRY_CODE = false;\n\nvar PhoneNumber = /*#__PURE__*/function () {\n /**\r\n * @param {string} countryOrCountryCallingCode\r\n * @param {string} nationalNumber\r\n * @param {object} metadata — Metadata JSON\r\n * @return {PhoneNumber}\r\n */\n function PhoneNumber(countryOrCountryCallingCode, nationalNumber, metadata) {\n _classCallCheck(this, PhoneNumber);\n\n if (!countryOrCountryCallingCode) {\n throw new TypeError('`country` or `countryCallingCode` not passed');\n }\n\n if (!nationalNumber) {\n throw new TypeError('`nationalNumber` not passed');\n }\n\n if (!metadata) {\n throw new TypeError('`metadata` not passed');\n }\n\n var _getCountryAndCountry = getCountryAndCountryCallingCode(countryOrCountryCallingCode, metadata),\n country = _getCountryAndCountry.country,\n countryCallingCode = _getCountryAndCountry.countryCallingCode;\n\n this.country = country;\n this.countryCallingCode = countryCallingCode;\n this.nationalNumber = nationalNumber;\n this.number = '+' + this.countryCallingCode + this.nationalNumber; // Exclude `metadata` property output from `PhoneNumber.toString()`\n // so that it doesn't clutter the console output of Node.js.\n // Previously, when Node.js did `console.log(new PhoneNumber(...))`,\n // it would output the whole internal structure of the `metadata` object.\n\n this.getMetadata = function () {\n return metadata;\n };\n }\n\n _createClass(PhoneNumber, [{\n key: \"setExt\",\n value: function setExt(ext) {\n this.ext = ext;\n }\n }, {\n key: \"getPossibleCountries\",\n value: function getPossibleCountries() {\n if (this.country) {\n return [this.country];\n }\n\n return getPossibleCountriesForNumber(this.countryCallingCode, this.nationalNumber, this.getMetadata());\n }\n }, {\n key: \"isPossible\",\n value: function isPossible() {\n return isPossibleNumber(this, {\n v2: true\n }, this.getMetadata());\n }\n }, {\n key: \"isValid\",\n value: function isValid() {\n return isValidNumber(this, {\n v2: true\n }, this.getMetadata());\n }\n }, {\n key: \"isNonGeographic\",\n value: function isNonGeographic() {\n var metadata = new Metadata(this.getMetadata());\n return metadata.isNonGeographicCallingCode(this.countryCallingCode);\n }\n }, {\n key: \"isEqual\",\n value: function isEqual(phoneNumber) {\n return this.number === phoneNumber.number && this.ext === phoneNumber.ext;\n } // This function was originally meant to be an equivalent for `validatePhoneNumberLength()`,\n // but later it was found out that it doesn't include the possible `TOO_SHORT` result\n // returned from `parsePhoneNumberWithError()` in the original `validatePhoneNumberLength()`,\n // so eventually I simply commented out this method from the `PhoneNumber` class\n // and just left the `validatePhoneNumberLength()` function, even though that one would require\n // and additional step to also validate the actual country / calling code of the phone number.\n // validateLength() {\n // \tconst metadata = new Metadata(this.getMetadata())\n // \tmetadata.selectNumberingPlan(this.countryCallingCode)\n // \tconst result = checkNumberLength(this.nationalNumber, metadata)\n // \tif (result !== 'IS_POSSIBLE') {\n // \t\treturn result\n // \t}\n // }\n\n }, {\n key: \"getType\",\n value: function getType() {\n return getNumberType(this, {\n v2: true\n }, this.getMetadata());\n }\n }, {\n key: \"format\",\n value: function format(_format, options) {\n return formatNumber(this, _format, options ? _objectSpread(_objectSpread({}, options), {}, {\n v2: true\n }) : {\n v2: true\n }, this.getMetadata());\n }\n }, {\n key: \"formatNational\",\n value: function formatNational(options) {\n return this.format('NATIONAL', options);\n }\n }, {\n key: \"formatInternational\",\n value: function formatInternational(options) {\n return this.format('INTERNATIONAL', options);\n }\n }, {\n key: \"getURI\",\n value: function getURI(options) {\n return this.format('RFC3966', options);\n }\n }]);\n\n return PhoneNumber;\n}();\n\nexport { PhoneNumber as default };\n\nvar isCountryCode = function isCountryCode(value) {\n return /^[A-Z]{2}$/.test(value);\n};\n\nfunction getCountryAndCountryCallingCode(countryOrCountryCallingCode, metadataJson) {\n var country;\n var countryCallingCode;\n var metadata = new Metadata(metadataJson); // If country code is passed then derive `countryCallingCode` from it.\n // Also store the country code as `.country`.\n\n if (isCountryCode(countryOrCountryCallingCode)) {\n country = countryOrCountryCallingCode;\n metadata.selectNumberingPlan(country);\n countryCallingCode = metadata.countryCallingCode();\n } else {\n countryCallingCode = countryOrCountryCallingCode;\n /* istanbul ignore if */\n\n if (USE_NON_GEOGRAPHIC_COUNTRY_CODE) {\n if (metadata.isNonGeographicCallingCode(countryCallingCode)) {\n country = '001';\n }\n }\n }\n\n return {\n country: country,\n countryCallingCode: countryCallingCode\n };\n}\n//# sourceMappingURL=PhoneNumber.js.map","import Metadata from '../metadata.js';\n/**\r\n * Returns a list of countries that the phone number could potentially belong to.\r\n * @param {string} callingCode — Calling code.\r\n * @param {string} nationalNumber — National (significant) number.\r\n * @param {object} metadata — Metadata.\r\n * @return {string[]} A list of possible countries.\r\n */\n\nexport default function getPossibleCountriesForNumber(callingCode, nationalNumber, metadata) {\n var _metadata = new Metadata(metadata);\n\n var possibleCountries = _metadata.getCountryCodesForCallingCode(callingCode);\n\n if (!possibleCountries) {\n return [];\n }\n\n return possibleCountries.filter(function (country) {\n return couldNationalNumberBelongToCountry(nationalNumber, country, metadata);\n });\n}\n\nfunction couldNationalNumberBelongToCountry(nationalNumber, country, metadata) {\n var _metadata = new Metadata(metadata);\n\n _metadata.selectNumberingPlan(country);\n\n if (_metadata.numberingPlan.possibleLengths().indexOf(nationalNumber.length) >= 0) {\n return true;\n }\n\n return false;\n}\n//# sourceMappingURL=getPossibleCountriesForNumber.js.map","import Metadata from './metadata.js';\nimport matchesEntirely from './helpers/matchesEntirely.js';\nimport getNumberType from './helpers/getNumberType.js';\n/**\r\n * Checks if a given phone number is valid.\r\n *\r\n * isValid(phoneNumberInstance, { ..., v2: true }, metadata)\r\n *\r\n * isPossible({ phone: '8005553535', country: 'RU' }, { ... }, metadata)\r\n * isPossible({ phone: '8005553535', country: 'RU' }, undefined, metadata)\r\n *\r\n * If the `number` is a string, it will be parsed to an object,\r\n * but only if it contains only valid phone number characters (including punctuation).\r\n * If the `number` is an object, it is used as is.\r\n *\r\n * The optional `defaultCountry` argument is the default country.\r\n * I.e. it does not restrict to just that country,\r\n * e.g. in those cases where several countries share\r\n * the same phone numbering rules (NANPA, Britain, etc).\r\n * For example, even though the number `07624 369230`\r\n * belongs to the Isle of Man (\"IM\" country code)\r\n * calling `isValidNumber('07624369230', 'GB', metadata)`\r\n * still returns `true` because the country is not restricted to `GB`,\r\n * it's just that `GB` is the default one for the phone numbering rules.\r\n * For restricting the country see `isValidNumberForRegion()`\r\n * though restricting a country might not be a good idea.\r\n * https://github.com/googlei18n/libphonenumber/blob/master/FAQ.md#when-should-i-use-isvalidnumberforregion\r\n *\r\n * Examples:\r\n *\r\n * ```js\r\n * isValidNumber('+78005553535', metadata)\r\n * isValidNumber('8005553535', 'RU', metadata)\r\n * isValidNumber('88005553535', 'RU', metadata)\r\n * isValidNumber({ phone: '8005553535', country: 'RU' }, metadata)\r\n * ```\r\n */\n\nexport default function isValidNumber(input, options, metadata) {\n // If assigning the `{}` default value is moved to the arguments above,\n // code coverage would decrease for some weird reason.\n options = options || {};\n metadata = new Metadata(metadata);\n /**\r\n * Checks if a phone number is \"possible\" (basically just checks its length).\r\n *\r\n * @param {object|PhoneNumber} input — If `options.v2: true` flag is passed, the `input` should be a `PhoneNumber` instance. Otherwise, it should be an object of shape `{ phone: '...', country: '...' }`.\r\n * @param {object} [options]\r\n * @param {object} metadata\r\n * @return {string}\r\n */\n\n metadata.selectNumberingPlan(input.country, input.countryCallingCode); // By default, countries only have type regexps when it's required for\n // distinguishing different countries having the same `countryCallingCode`.\n\n if (metadata.hasTypes()) {\n return getNumberType(input, options, metadata.metadata) !== undefined;\n } // If there are no type regexps for this country in metadata then use\n // `nationalNumberPattern` as a \"better than nothing\" replacement.\n\n\n var nationalNumber = options.v2 ? input.nationalNumber : input.phone;\n return matchesEntirely(nationalNumber, metadata.nationalNumberPattern());\n}\n//# sourceMappingURL=isValid.js.map","function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nimport isViablePhoneNumber from './isViablePhoneNumber.js'; // https://www.ietf.org/rfc/rfc3966.txt\n\n/**\r\n * @param {string} text - Phone URI (RFC 3966).\r\n * @return {object} `{ ?number, ?ext }`.\r\n */\n\nexport function parseRFC3966(text) {\n var number;\n var ext; // Replace \"tel:\" with \"tel=\" for parsing convenience.\n\n text = text.replace(/^tel:/, 'tel=');\n\n for (var _iterator = _createForOfIteratorHelperLoose(text.split(';')), _step; !(_step = _iterator()).done;) {\n var part = _step.value;\n\n var _part$split = part.split('='),\n _part$split2 = _slicedToArray(_part$split, 2),\n name = _part$split2[0],\n value = _part$split2[1];\n\n switch (name) {\n case 'tel':\n number = value;\n break;\n\n case 'ext':\n ext = value;\n break;\n\n case 'phone-context':\n // Only \"country contexts\" are supported.\n // \"Domain contexts\" are ignored.\n if (value[0] === '+') {\n number = value + number;\n }\n\n break;\n }\n } // If the phone number is not viable, then abort.\n\n\n if (!isViablePhoneNumber(number)) {\n return {};\n }\n\n var result = {\n number: number\n };\n\n if (ext) {\n result.ext = ext;\n }\n\n return result;\n}\n/**\r\n * @param {object} - `{ ?number, ?extension }`.\r\n * @return {string} Phone URI (RFC 3966).\r\n */\n\nexport function formatRFC3966(_ref) {\n var number = _ref.number,\n ext = _ref.ext;\n\n if (!number) {\n return '';\n }\n\n if (number[0] !== '+') {\n throw new Error(\"\\\"formatRFC3966()\\\" expects \\\"number\\\" to be in E.164 format.\");\n }\n\n return \"tel:\".concat(number).concat(ext ? ';ext=' + ext : '');\n}\n//# sourceMappingURL=RFC3966.js.map","import Metadata from '../metadata.js';\nimport { VALID_DIGITS } from '../constants.js';\nvar CAPTURING_DIGIT_PATTERN = new RegExp('([' + VALID_DIGITS + '])');\nexport default function stripIddPrefix(number, country, callingCode, metadata) {\n if (!country) {\n return;\n } // Check if the number is IDD-prefixed.\n\n\n var countryMetadata = new Metadata(metadata);\n countryMetadata.selectNumberingPlan(country, callingCode);\n var IDDPrefixPattern = new RegExp(countryMetadata.IDDPrefix());\n\n if (number.search(IDDPrefixPattern) !== 0) {\n return;\n } // Strip IDD prefix.\n\n\n number = number.slice(number.match(IDDPrefixPattern)[0].length); // If there're any digits after an IDD prefix,\n // then those digits are a country calling code.\n // Since no country code starts with a `0`,\n // the code below validates that the next digit (if present) is not `0`.\n\n var matchedGroups = number.match(CAPTURING_DIGIT_PATTERN);\n\n if (matchedGroups && matchedGroups[1] != null && matchedGroups[1].length > 0) {\n if (matchedGroups[1] === '0') {\n return;\n }\n }\n\n return number;\n}\n//# sourceMappingURL=stripIddPrefix.js.map","import extractNationalNumberFromPossiblyIncompleteNumber from './extractNationalNumberFromPossiblyIncompleteNumber.js';\nimport matchesEntirely from './matchesEntirely.js';\nimport checkNumberLength from './checkNumberLength.js';\n/**\r\n * Strips national prefix and carrier code from a complete phone number.\r\n * The difference from the non-\"FromCompleteNumber\" function is that\r\n * it won't extract national prefix if the resultant number is too short\r\n * to be a complete number for the selected phone numbering plan.\r\n * @param {string} number — Complete phone number digits.\r\n * @param {Metadata} metadata — Metadata with a phone numbering plan selected.\r\n * @return {object} `{ nationalNumber: string, carrierCode: string? }`.\r\n */\n\nexport default function extractNationalNumber(number, metadata) {\n // Parsing national prefixes and carrier codes\n // is only required for local phone numbers\n // but some people don't understand that\n // and sometimes write international phone numbers\n // with national prefixes (or maybe even carrier codes).\n // http://ucken.blogspot.ru/2016/03/trunk-prefixes-in-skype4b.html\n // Google's original library forgives such mistakes\n // and so does this library, because it has been requested:\n // https://github.com/catamphetamine/libphonenumber-js/issues/127\n var _extractNationalNumbe = extractNationalNumberFromPossiblyIncompleteNumber(number, metadata),\n carrierCode = _extractNationalNumbe.carrierCode,\n nationalNumber = _extractNationalNumbe.nationalNumber;\n\n if (nationalNumber !== number) {\n if (!shouldHaveExtractedNationalPrefix(number, nationalNumber, metadata)) {\n // Don't strip the national prefix.\n return {\n nationalNumber: number\n };\n } // Check the national (significant) number length after extracting national prefix and carrier code.\n // Legacy generated metadata (before `1.0.18`) didn't support the \"possible lengths\" feature.\n\n\n if (metadata.possibleLengths()) {\n // The number remaining after stripping the national prefix and carrier code\n // should be long enough to have a possible length for the country.\n // Otherwise, don't strip the national prefix and carrier code,\n // since the original number could be a valid number.\n // This check has been copy-pasted \"as is\" from Google's original library:\n // https://github.com/google/libphonenumber/blob/876268eb1ad6cdc1b7b5bef17fc5e43052702d57/java/libphonenumber/src/com/google/i18n/phonenumbers/PhoneNumberUtil.java#L3236-L3250\n // It doesn't check for the \"possibility\" of the original `number`.\n // I guess it's fine not checking that one. It works as is anyway.\n if (!isPossibleIncompleteNationalNumber(nationalNumber, metadata)) {\n // Don't strip the national prefix.\n return {\n nationalNumber: number\n };\n }\n }\n }\n\n return {\n nationalNumber: nationalNumber,\n carrierCode: carrierCode\n };\n} // In some countries, the same digit could be a national prefix\n// or a leading digit of a valid phone number.\n// For example, in Russia, national prefix is `8`,\n// and also `800 555 35 35` is a valid number\n// in which `8` is not a national prefix, but the first digit\n// of a national (significant) number.\n// Same's with Belarus:\n// `82004910060` is a valid national (significant) number,\n// but `2004910060` is not.\n// To support such cases (to prevent the code from always stripping\n// national prefix), a condition is imposed: a national prefix\n// is not extracted when the original number is \"viable\" and the\n// resultant number is not, a \"viable\" national number being the one\n// that matches `national_number_pattern`.\n\nfunction shouldHaveExtractedNationalPrefix(nationalNumberBefore, nationalNumberAfter, metadata) {\n // The equivalent in Google's code is:\n // https://github.com/google/libphonenumber/blob/e326fa1fc4283bb05eb35cb3c15c18f98a31af33/java/libphonenumber/src/com/google/i18n/phonenumbers/PhoneNumberUtil.java#L2969-L3004\n if (matchesEntirely(nationalNumberBefore, metadata.nationalNumberPattern()) && !matchesEntirely(nationalNumberAfter, metadata.nationalNumberPattern())) {\n return false;\n } // This \"is possible\" national number (length) check has been commented out\n // because it's superceded by the (effectively) same check done in the\n // `extractNationalNumber()` function after it calls `shouldHaveExtractedNationalPrefix()`.\n // In other words, why run the same check twice if it could only be run once.\n // // Check the national (significant) number length after extracting national prefix and carrier code.\n // // Fixes a minor \"weird behavior\" bug: https://gitlab.com/catamphetamine/libphonenumber-js/-/issues/57\n // // (Legacy generated metadata (before `1.0.18`) didn't support the \"possible lengths\" feature).\n // if (metadata.possibleLengths()) {\n // \tif (isPossibleIncompleteNationalNumber(nationalNumberBefore, metadata) &&\n // \t\t!isPossibleIncompleteNationalNumber(nationalNumberAfter, metadata)) {\n // \t\treturn false\n // \t}\n // }\n\n\n return true;\n}\n\nfunction isPossibleIncompleteNationalNumber(nationalNumber, metadata) {\n switch (checkNumberLength(nationalNumber, metadata)) {\n case 'TOO_SHORT':\n case 'INVALID_LENGTH':\n // This library ignores \"local-only\" phone numbers (for simplicity).\n // See the readme for more info on what are \"local-only\" phone numbers.\n // case 'IS_POSSIBLE_LOCAL_ONLY':\n return false;\n\n default:\n return true;\n }\n}\n//# sourceMappingURL=extractNationalNumber.js.map","/**\r\n * Strips any national prefix (such as 0, 1) present in a\r\n * (possibly incomplete) number provided.\r\n * \"Carrier codes\" are only used in Colombia and Brazil,\r\n * and only when dialing within those countries from a mobile phone to a fixed line number.\r\n * Sometimes it won't actually strip national prefix\r\n * and will instead prepend some digits to the `number`:\r\n * for example, when number `2345678` is passed with `VI` country selected,\r\n * it will return `{ number: \"3402345678\" }`, because `340` area code is prepended.\r\n * @param {string} number — National number digits.\r\n * @param {object} metadata — Metadata with country selected.\r\n * @return {object} `{ nationalNumber: string, nationalPrefix: string? carrierCode: string? }`. Even if a national prefix was extracted, it's not necessarily present in the returned object, so don't rely on its presence in the returned object in order to find out whether a national prefix has been extracted or not.\r\n */\nexport default function extractNationalNumberFromPossiblyIncompleteNumber(number, metadata) {\n if (number && metadata.numberingPlan.nationalPrefixForParsing()) {\n // See METADATA.md for the description of\n // `national_prefix_for_parsing` and `national_prefix_transform_rule`.\n // Attempt to parse the first digits as a national prefix.\n var prefixPattern = new RegExp('^(?:' + metadata.numberingPlan.nationalPrefixForParsing() + ')');\n var prefixMatch = prefixPattern.exec(number);\n\n if (prefixMatch) {\n var nationalNumber;\n var carrierCode; // https://gitlab.com/catamphetamine/libphonenumber-js/-/blob/master/METADATA.md#national_prefix_for_parsing--national_prefix_transform_rule\n // If a `national_prefix_for_parsing` has any \"capturing groups\"\n // then it means that the national (significant) number is equal to\n // those \"capturing groups\" transformed via `national_prefix_transform_rule`,\n // and nothing could be said about the actual national prefix:\n // what is it and was it even there.\n // If a `national_prefix_for_parsing` doesn't have any \"capturing groups\",\n // then everything it matches is a national prefix.\n // To determine whether `national_prefix_for_parsing` matched any\n // \"capturing groups\", the value of the result of calling `.exec()`\n // is looked at, and if it has non-undefined values where there're\n // \"capturing groups\" in the regular expression, then it means\n // that \"capturing groups\" have been matched.\n // It's not possible to tell whether there'll be any \"capturing gropus\"\n // before the matching process, because a `national_prefix_for_parsing`\n // could exhibit both behaviors.\n\n var capturedGroupsCount = prefixMatch.length - 1;\n var hasCapturedGroups = capturedGroupsCount > 0 && prefixMatch[capturedGroupsCount];\n\n if (metadata.nationalPrefixTransformRule() && hasCapturedGroups) {\n nationalNumber = number.replace(prefixPattern, metadata.nationalPrefixTransformRule()); // If there's more than one captured group,\n // then carrier code is the second one.\n\n if (capturedGroupsCount > 1) {\n carrierCode = prefixMatch[1];\n }\n } // If there're no \"capturing groups\",\n // or if there're \"capturing groups\" but no\n // `national_prefix_transform_rule`,\n // then just strip the national prefix from the number,\n // and possibly a carrier code.\n // Seems like there could be more.\n else {\n // `prefixBeforeNationalNumber` is the whole substring matched by\n // the `national_prefix_for_parsing` regular expression.\n // There seem to be no guarantees that it's just a national prefix.\n // For example, if there's a carrier code, it's gonna be a\n // part of `prefixBeforeNationalNumber` too.\n var prefixBeforeNationalNumber = prefixMatch[0];\n nationalNumber = number.slice(prefixBeforeNationalNumber.length); // If there's at least one captured group,\n // then carrier code is the first one.\n\n if (hasCapturedGroups) {\n carrierCode = prefixMatch[1];\n }\n } // Tries to guess whether a national prefix was present in the input.\n // This is not something copy-pasted from Google's library:\n // they don't seem to have an equivalent for that.\n // So this isn't an \"officially approved\" way of doing something like that.\n // But since there seems no other existing method, this library uses it.\n\n\n var nationalPrefix;\n\n if (hasCapturedGroups) {\n var possiblePositionOfTheFirstCapturedGroup = number.indexOf(prefixMatch[1]);\n var possibleNationalPrefix = number.slice(0, possiblePositionOfTheFirstCapturedGroup); // Example: an Argentinian (AR) phone number `0111523456789`.\n // `prefixMatch[0]` is `01115`, and `$1` is `11`,\n // and the rest of the phone number is `23456789`.\n // The national number is transformed via `9$1` to `91123456789`.\n // National prefix `0` is detected being present at the start.\n // if (possibleNationalPrefix.indexOf(metadata.numberingPlan.nationalPrefix()) === 0) {\n\n if (possibleNationalPrefix === metadata.numberingPlan.nationalPrefix()) {\n nationalPrefix = metadata.numberingPlan.nationalPrefix();\n }\n } else {\n nationalPrefix = prefixMatch[0];\n }\n\n return {\n nationalNumber: nationalNumber,\n nationalPrefix: nationalPrefix,\n carrierCode: carrierCode\n };\n }\n }\n\n return {\n nationalNumber: number\n };\n}\n//# sourceMappingURL=extractNationalNumberFromPossiblyIncompleteNumber.js.map","function _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nimport Metadata from '../metadata.js';\nimport getNumberType from './getNumberType.js';\nexport default function getCountryByNationalNumber(nationalPhoneNumber, _ref) {\n var countries = _ref.countries,\n defaultCountry = _ref.defaultCountry,\n metadata = _ref.metadata;\n // Re-create `metadata` because it will be selecting a `country`.\n metadata = new Metadata(metadata);\n var matchingCountries = [];\n\n for (var _iterator = _createForOfIteratorHelperLoose(countries), _step; !(_step = _iterator()).done;) {\n var country = _step.value;\n metadata.country(country); // \"Leading digits\" patterns are only defined for about 20% of all countries.\n // By definition, matching \"leading digits\" is a sufficient but not a necessary\n // condition for a phone number to belong to a country.\n // The point of \"leading digits\" check is that it's the fastest one to get a match.\n // https://gitlab.com/catamphetamine/libphonenumber-js/blob/master/METADATA.md#leading_digits\n // I'd suppose that \"leading digits\" patterns are mutually exclusive for different countries\n // because of the intended use of that feature.\n\n if (metadata.leadingDigits()) {\n if (nationalPhoneNumber && nationalPhoneNumber.search(metadata.leadingDigits()) === 0) {\n return country;\n }\n } // Else perform full validation with all of those\n // fixed-line/mobile/etc regular expressions.\n else if (getNumberType({\n phone: nationalPhoneNumber,\n country: country\n }, undefined, metadata.metadata)) {\n // If the `defaultCountry` is among the `matchingCountries` then return it.\n if (defaultCountry) {\n if (country === defaultCountry) {\n return country;\n }\n\n matchingCountries.push(country);\n } else {\n return country;\n }\n }\n } // Return the first (\"main\") one of the `matchingCountries`.\n\n\n if (matchingCountries.length > 0) {\n return matchingCountries[0];\n }\n}\n//# sourceMappingURL=getCountryByNationalNumber.js.map","import getCountryByNationalNumber from './getCountryByNationalNumber.js';\nvar USE_NON_GEOGRAPHIC_COUNTRY_CODE = false;\nexport default function getCountryByCallingCode(callingCode, _ref) {\n var nationalPhoneNumber = _ref.nationalNumber,\n defaultCountry = _ref.defaultCountry,\n metadata = _ref.metadata;\n\n /* istanbul ignore if */\n if (USE_NON_GEOGRAPHIC_COUNTRY_CODE) {\n if (metadata.isNonGeographicCallingCode(callingCode)) {\n return '001';\n }\n }\n\n var possibleCountries = metadata.getCountryCodesForCallingCode(callingCode);\n\n if (!possibleCountries) {\n return;\n } // If there's just one country corresponding to the country code,\n // then just return it, without further phone number digits validation.\n\n\n if (possibleCountries.length === 1) {\n return possibleCountries[0];\n }\n\n return getCountryByNationalNumber(nationalPhoneNumber, {\n countries: possibleCountries,\n defaultCountry: defaultCountry,\n metadata: metadata.metadata\n });\n}\n//# sourceMappingURL=getCountryByCallingCode.js.map","// When phone numbers are written in `RFC3966` format — `\"tel:+12133734253\"` —\n// they can have their \"calling code\" part written separately in a `phone-context` parameter.\n// Example: `\"tel:12133734253;phone-context=+1\"`.\n// This function parses the full phone number from the local number and the `phone-context`\n// when the `phone-context` contains a `+` sign.\nimport { VALID_DIGITS // PLUS_CHARS\n} from '../constants.js';\nexport var PLUS_SIGN = '+';\nvar RFC3966_VISUAL_SEPARATOR_ = '[\\\\-\\\\.\\\\(\\\\)]?';\nvar RFC3966_PHONE_DIGIT_ = '(' + '[' + VALID_DIGITS + ']' + '|' + RFC3966_VISUAL_SEPARATOR_ + ')';\nvar RFC3966_GLOBAL_NUMBER_DIGITS_ = '^' + '\\\\' + PLUS_SIGN + RFC3966_PHONE_DIGIT_ + '*' + '[' + VALID_DIGITS + ']' + RFC3966_PHONE_DIGIT_ + '*' + '$';\n/**\r\n * Regular expression of valid global-number-digits for the phone-context\r\n * parameter, following the syntax defined in RFC3966.\r\n */\n\nvar RFC3966_GLOBAL_NUMBER_DIGITS_PATTERN_ = new RegExp(RFC3966_GLOBAL_NUMBER_DIGITS_, 'g'); // In this port of Google's library, we don't accept alpha characters in phone numbers.\n// const ALPHANUM_ = VALID_ALPHA_ + VALID_DIGITS\n\nvar ALPHANUM_ = VALID_DIGITS;\nvar RFC3966_DOMAINLABEL_ = '[' + ALPHANUM_ + ']+((\\\\-)*[' + ALPHANUM_ + '])*';\nvar VALID_ALPHA_ = 'a-zA-Z';\nvar RFC3966_TOPLABEL_ = '[' + VALID_ALPHA_ + ']+((\\\\-)*[' + ALPHANUM_ + '])*';\nvar RFC3966_DOMAINNAME_ = '^(' + RFC3966_DOMAINLABEL_ + '\\\\.)*' + RFC3966_TOPLABEL_ + '\\\\.?$';\n/**\r\n * Regular expression of valid domainname for the phone-context parameter,\r\n * following the syntax defined in RFC3966.\r\n */\n\nvar RFC3966_DOMAINNAME_PATTERN_ = new RegExp(RFC3966_DOMAINNAME_, 'g');\nexport var RFC3966_PREFIX_ = 'tel:';\nexport var RFC3966_PHONE_CONTEXT_ = ';phone-context=';\nexport var RFC3966_ISDN_SUBADDRESS_ = ';isub=';\n/**\r\n * Extracts the value of the phone-context parameter of `numberToExtractFrom`,\r\n * following the syntax defined in RFC3966.\r\n *\r\n * @param {string} numberToExtractFrom\r\n * @return {string|null} the extracted string (possibly empty), or `null` if no phone-context parameter is found.\r\n */\n\nexport default function extractPhoneContext(numberToExtractFrom) {\n var indexOfPhoneContext = numberToExtractFrom.indexOf(RFC3966_PHONE_CONTEXT_); // If no phone-context parameter is present\n\n if (indexOfPhoneContext < 0) {\n return null;\n }\n\n var phoneContextStart = indexOfPhoneContext + RFC3966_PHONE_CONTEXT_.length; // If phone-context parameter is empty\n\n if (phoneContextStart >= numberToExtractFrom.length) {\n return '';\n }\n\n var phoneContextEnd = numberToExtractFrom.indexOf(';', phoneContextStart); // If phone-context is not the last parameter\n\n if (phoneContextEnd >= 0) {\n return numberToExtractFrom.substring(phoneContextStart, phoneContextEnd);\n } else {\n return numberToExtractFrom.substring(phoneContextStart);\n }\n}\n/**\r\n * Returns whether the value of phoneContext follows the syntax defined in RFC3966.\r\n *\r\n * @param {string|null} phoneContext\r\n * @return {boolean}\r\n */\n\nexport function isPhoneContextValid(phoneContext) {\n if (phoneContext === null) {\n return true;\n }\n\n if (phoneContext.length === 0) {\n return false;\n } // Does phone-context value match pattern of global-number-digits or domainname.\n\n\n return RFC3966_GLOBAL_NUMBER_DIGITS_PATTERN_.test(phoneContext) || RFC3966_DOMAINNAME_PATTERN_.test(phoneContext);\n}\n//# sourceMappingURL=extractPhoneContext.js.map","// This is a port of Google Android `libphonenumber`'s\n// `phonenumberutil.js` of December 31th, 2018.\n//\n// https://github.com/googlei18n/libphonenumber/commits/master/javascript/i18n/phonenumbers/phonenumberutil.js\nimport { VALID_DIGITS, PLUS_CHARS, MIN_LENGTH_FOR_NSN, MAX_LENGTH_FOR_NSN } from './constants.js';\nimport ParseError from './ParseError.js';\nimport Metadata from './metadata.js';\nimport isViablePhoneNumber, { isViablePhoneNumberStart } from './helpers/isViablePhoneNumber.js';\nimport extractExtension from './helpers/extension/extractExtension.js';\nimport parseIncompletePhoneNumber from './parseIncompletePhoneNumber.js';\nimport getCountryCallingCode from './getCountryCallingCode.js';\nimport { isPossibleNumber } from './isPossible.js'; // import { parseRFC3966 } from './helpers/RFC3966.js'\n\nimport PhoneNumber from './PhoneNumber.js';\nimport matchesEntirely from './helpers/matchesEntirely.js';\nimport extractCountryCallingCode from './helpers/extractCountryCallingCode.js';\nimport extractNationalNumber from './helpers/extractNationalNumber.js';\nimport stripIddPrefix from './helpers/stripIddPrefix.js';\nimport getCountryByCallingCode from './helpers/getCountryByCallingCode.js';\nimport extractFormattedPhoneNumberFromPossibleRfc3966NumberUri from './helpers/extractFormattedPhoneNumberFromPossibleRfc3966NumberUri.js'; // We don't allow input strings for parsing to be longer than 250 chars.\n// This prevents malicious input from consuming CPU.\n\nvar MAX_INPUT_STRING_LENGTH = 250; // This consists of the plus symbol, digits, and arabic-indic digits.\n\nvar PHONE_NUMBER_START_PATTERN = new RegExp('[' + PLUS_CHARS + VALID_DIGITS + ']'); // Regular expression of trailing characters that we want to remove.\n// A trailing `#` is sometimes used when writing phone numbers with extensions in US.\n// Example: \"+1 (645) 123 1234-910#\" number has extension \"910\".\n\nvar AFTER_PHONE_NUMBER_END_PATTERN = new RegExp('[^' + VALID_DIGITS + '#' + ']+$');\nvar USE_NON_GEOGRAPHIC_COUNTRY_CODE = false; // Examples:\n//\n// ```js\n// parse('8 (800) 555-35-35', 'RU')\n// parse('8 (800) 555-35-35', 'RU', metadata)\n// parse('8 (800) 555-35-35', { country: { default: 'RU' } })\n// parse('8 (800) 555-35-35', { country: { default: 'RU' } }, metadata)\n// parse('+7 800 555 35 35')\n// parse('+7 800 555 35 35', metadata)\n// ```\n//\n\n/**\r\n * Parses a phone number.\r\n *\r\n * parse('123456789', { defaultCountry: 'RU', v2: true }, metadata)\r\n * parse('123456789', { defaultCountry: 'RU' }, metadata)\r\n * parse('123456789', undefined, metadata)\r\n *\r\n * @param {string} input\r\n * @param {object} [options]\r\n * @param {object} metadata\r\n * @return {object|PhoneNumber?} If `options.v2: true` flag is passed, it returns a `PhoneNumber?` instance. Otherwise, returns an object of shape `{ phone: '...', country: '...' }` (or just `{}` if no phone number was parsed).\r\n */\n\nexport default function parse(text, options, metadata) {\n // If assigning the `{}` default value is moved to the arguments above,\n // code coverage would decrease for some weird reason.\n options = options || {};\n metadata = new Metadata(metadata); // Validate `defaultCountry`.\n\n if (options.defaultCountry && !metadata.hasCountry(options.defaultCountry)) {\n if (options.v2) {\n throw new ParseError('INVALID_COUNTRY');\n }\n\n throw new Error(\"Unknown country: \".concat(options.defaultCountry));\n } // Parse the phone number.\n\n\n var _parseInput = parseInput(text, options.v2, options.extract),\n formattedPhoneNumber = _parseInput.number,\n ext = _parseInput.ext,\n error = _parseInput.error; // If the phone number is not viable then return nothing.\n\n\n if (!formattedPhoneNumber) {\n if (options.v2) {\n if (error === 'TOO_SHORT') {\n throw new ParseError('TOO_SHORT');\n }\n\n throw new ParseError('NOT_A_NUMBER');\n }\n\n return {};\n }\n\n var _parsePhoneNumber = parsePhoneNumber(formattedPhoneNumber, options.defaultCountry, options.defaultCallingCode, metadata),\n country = _parsePhoneNumber.country,\n nationalNumber = _parsePhoneNumber.nationalNumber,\n countryCallingCode = _parsePhoneNumber.countryCallingCode,\n countryCallingCodeSource = _parsePhoneNumber.countryCallingCodeSource,\n carrierCode = _parsePhoneNumber.carrierCode;\n\n if (!metadata.hasSelectedNumberingPlan()) {\n if (options.v2) {\n throw new ParseError('INVALID_COUNTRY');\n }\n\n return {};\n } // Validate national (significant) number length.\n\n\n if (!nationalNumber || nationalNumber.length < MIN_LENGTH_FOR_NSN) {\n // Won't throw here because the regexp already demands length > 1.\n\n /* istanbul ignore if */\n if (options.v2) {\n throw new ParseError('TOO_SHORT');\n } // Google's demo just throws an error in this case.\n\n\n return {};\n } // Validate national (significant) number length.\n //\n // A sidenote:\n //\n // They say that sometimes national (significant) numbers\n // can be longer than `MAX_LENGTH_FOR_NSN` (e.g. in Germany).\n // https://github.com/googlei18n/libphonenumber/blob/7e1748645552da39c4e1ba731e47969d97bdb539/resources/phonenumber.proto#L36\n // Such numbers will just be discarded.\n //\n\n\n if (nationalNumber.length > MAX_LENGTH_FOR_NSN) {\n if (options.v2) {\n throw new ParseError('TOO_LONG');\n } // Google's demo just throws an error in this case.\n\n\n return {};\n }\n\n if (options.v2) {\n var phoneNumber = new PhoneNumber(countryCallingCode, nationalNumber, metadata.metadata);\n\n if (country) {\n phoneNumber.country = country;\n }\n\n if (carrierCode) {\n phoneNumber.carrierCode = carrierCode;\n }\n\n if (ext) {\n phoneNumber.ext = ext;\n }\n\n phoneNumber.__countryCallingCodeSource = countryCallingCodeSource;\n return phoneNumber;\n } // Check if national phone number pattern matches the number.\n // National number pattern is different for each country,\n // even for those ones which are part of the \"NANPA\" group.\n\n\n var valid = (options.extended ? metadata.hasSelectedNumberingPlan() : country) ? matchesEntirely(nationalNumber, metadata.nationalNumberPattern()) : false;\n\n if (!options.extended) {\n return valid ? result(country, nationalNumber, ext) : {};\n } // isInternational: countryCallingCode !== undefined\n\n\n return {\n country: country,\n countryCallingCode: countryCallingCode,\n carrierCode: carrierCode,\n valid: valid,\n possible: valid ? true : options.extended === true && metadata.possibleLengths() && isPossibleNumber(nationalNumber, metadata) ? true : false,\n phone: nationalNumber,\n ext: ext\n };\n}\n/**\r\n * Extracts a formatted phone number from text.\r\n * Doesn't guarantee that the extracted phone number\r\n * is a valid phone number (for example, doesn't validate its length).\r\n * @param {string} text\r\n * @param {boolean} [extract] — If `false`, then will parse the entire `text` as a phone number.\r\n * @param {boolean} [throwOnError] — By default, it won't throw if the text is too long.\r\n * @return {string}\r\n * @example\r\n * // Returns \"(213) 373-4253\".\r\n * extractFormattedPhoneNumber(\"Call (213) 373-4253 for assistance.\")\r\n */\n\nfunction _extractFormattedPhoneNumber(text, extract, throwOnError) {\n if (!text) {\n return;\n }\n\n if (text.length > MAX_INPUT_STRING_LENGTH) {\n if (throwOnError) {\n throw new ParseError('TOO_LONG');\n }\n\n return;\n }\n\n if (extract === false) {\n return text;\n } // Attempt to extract a possible number from the string passed in\n\n\n var startsAt = text.search(PHONE_NUMBER_START_PATTERN);\n\n if (startsAt < 0) {\n return;\n }\n\n return text // Trim everything to the left of the phone number\n .slice(startsAt) // Remove trailing non-numerical characters\n .replace(AFTER_PHONE_NUMBER_END_PATTERN, '');\n}\n/**\r\n * @param {string} text - Input.\r\n * @param {boolean} v2 - Legacy API functions don't pass `v2: true` flag.\r\n * @param {boolean} [extract] - Whether to extract a phone number from `text`, or attempt to parse the entire text as a phone number.\r\n * @return {object} `{ ?number, ?ext }`.\r\n */\n\n\nfunction parseInput(text, v2, extract) {\n // // Parse RFC 3966 phone number URI.\n // if (text && text.indexOf('tel:') === 0) {\n // \treturn parseRFC3966(text)\n // }\n // let number = extractFormattedPhoneNumber(text, extract, v2)\n var number = extractFormattedPhoneNumberFromPossibleRfc3966NumberUri(text, {\n extractFormattedPhoneNumber: function extractFormattedPhoneNumber(text) {\n return _extractFormattedPhoneNumber(text, extract, v2);\n }\n }); // If the phone number is not viable, then abort.\n\n if (!number) {\n return {};\n }\n\n if (!isViablePhoneNumber(number)) {\n if (isViablePhoneNumberStart(number)) {\n return {\n error: 'TOO_SHORT'\n };\n }\n\n return {};\n } // Attempt to parse extension first, since it doesn't require region-specific\n // data and we want to have the non-normalised number here.\n\n\n var withExtensionStripped = extractExtension(number);\n\n if (withExtensionStripped.ext) {\n return withExtensionStripped;\n }\n\n return {\n number: number\n };\n}\n/**\r\n * Creates `parse()` result object.\r\n */\n\n\nfunction result(country, nationalNumber, ext) {\n var result = {\n country: country,\n phone: nationalNumber\n };\n\n if (ext) {\n result.ext = ext;\n }\n\n return result;\n}\n/**\r\n * Parses a viable phone number.\r\n * @param {string} formattedPhoneNumber — Example: \"(213) 373-4253\".\r\n * @param {string} [defaultCountry]\r\n * @param {string} [defaultCallingCode]\r\n * @param {Metadata} metadata\r\n * @return {object} Returns `{ country: string?, countryCallingCode: string?, nationalNumber: string? }`.\r\n */\n\n\nfunction parsePhoneNumber(formattedPhoneNumber, defaultCountry, defaultCallingCode, metadata) {\n // Extract calling code from phone number.\n var _extractCountryCallin = extractCountryCallingCode(parseIncompletePhoneNumber(formattedPhoneNumber), defaultCountry, defaultCallingCode, metadata.metadata),\n countryCallingCodeSource = _extractCountryCallin.countryCallingCodeSource,\n countryCallingCode = _extractCountryCallin.countryCallingCode,\n number = _extractCountryCallin.number; // Choose a country by `countryCallingCode`.\n\n\n var country;\n\n if (countryCallingCode) {\n metadata.selectNumberingPlan(countryCallingCode);\n } // If `formattedPhoneNumber` is passed in \"national\" format\n // then `number` is defined and `countryCallingCode` is `undefined`.\n else if (number && (defaultCountry || defaultCallingCode)) {\n metadata.selectNumberingPlan(defaultCountry, defaultCallingCode);\n\n if (defaultCountry) {\n country = defaultCountry;\n } else {\n /* istanbul ignore if */\n if (USE_NON_GEOGRAPHIC_COUNTRY_CODE) {\n if (metadata.isNonGeographicCallingCode(defaultCallingCode)) {\n country = '001';\n }\n }\n }\n\n countryCallingCode = defaultCallingCode || getCountryCallingCode(defaultCountry, metadata.metadata);\n } else return {};\n\n if (!number) {\n return {\n countryCallingCodeSource: countryCallingCodeSource,\n countryCallingCode: countryCallingCode\n };\n }\n\n var _extractNationalNumbe = extractNationalNumber(parseIncompletePhoneNumber(number), metadata),\n nationalNumber = _extractNationalNumbe.nationalNumber,\n carrierCode = _extractNationalNumbe.carrierCode; // Sometimes there are several countries\n // corresponding to the same country phone code\n // (e.g. NANPA countries all having `1` country phone code).\n // Therefore, to reliably determine the exact country,\n // national (significant) number should have been parsed first.\n //\n // When `metadata.json` is generated, all \"ambiguous\" country phone codes\n // get their countries populated with the full set of\n // \"phone number type\" regular expressions.\n //\n\n\n var exactCountry = getCountryByCallingCode(countryCallingCode, {\n nationalNumber: nationalNumber,\n defaultCountry: defaultCountry,\n metadata: metadata\n });\n\n if (exactCountry) {\n country = exactCountry;\n /* istanbul ignore if */\n\n if (exactCountry === '001') {// Can't happen with `USE_NON_GEOGRAPHIC_COUNTRY_CODE` being `false`.\n // If `USE_NON_GEOGRAPHIC_COUNTRY_CODE` is set to `true` for some reason,\n // then remove the \"istanbul ignore if\".\n } else {\n metadata.country(country);\n }\n }\n\n return {\n country: country,\n countryCallingCode: countryCallingCode,\n countryCallingCodeSource: countryCallingCodeSource,\n nationalNumber: nationalNumber,\n carrierCode: carrierCode\n };\n}\n//# sourceMappingURL=parse.js.map","import extractPhoneContext, { isPhoneContextValid, PLUS_SIGN, RFC3966_PREFIX_, RFC3966_PHONE_CONTEXT_, RFC3966_ISDN_SUBADDRESS_ } from './extractPhoneContext.js';\nimport ParseError from '../ParseError.js';\n/**\r\n * @param {string} numberToParse\r\n * @param {string} nationalNumber\r\n * @return {}\r\n */\n\nexport default function extractFormattedPhoneNumberFromPossibleRfc3966NumberUri(numberToParse, _ref) {\n var extractFormattedPhoneNumber = _ref.extractFormattedPhoneNumber;\n var phoneContext = extractPhoneContext(numberToParse);\n\n if (!isPhoneContextValid(phoneContext)) {\n throw new ParseError('NOT_A_NUMBER');\n }\n\n var phoneNumberString;\n\n if (phoneContext === null) {\n // Extract a possible number from the string passed in.\n // (this strips leading characters that could not be the start of a phone number)\n phoneNumberString = extractFormattedPhoneNumber(numberToParse) || '';\n } else {\n phoneNumberString = ''; // If the phone context contains a phone number prefix, we need to capture\n // it, whereas domains will be ignored.\n\n if (phoneContext.charAt(0) === PLUS_SIGN) {\n phoneNumberString += phoneContext;\n } // Now append everything between the \"tel:\" prefix and the phone-context.\n // This should include the national number, an optional extension or\n // isdn-subaddress component. Note we also handle the case when \"tel:\" is\n // missing, as we have seen in some of the phone number inputs.\n // In that case, we append everything from the beginning.\n\n\n var indexOfRfc3966Prefix = numberToParse.indexOf(RFC3966_PREFIX_);\n var indexOfNationalNumber; // RFC 3966 \"tel:\" prefix is preset at this stage because\n // `isPhoneContextValid()` requires it to be present.\n\n /* istanbul ignore else */\n\n if (indexOfRfc3966Prefix >= 0) {\n indexOfNationalNumber = indexOfRfc3966Prefix + RFC3966_PREFIX_.length;\n } else {\n indexOfNationalNumber = 0;\n }\n\n var indexOfPhoneContext = numberToParse.indexOf(RFC3966_PHONE_CONTEXT_);\n phoneNumberString += numberToParse.substring(indexOfNationalNumber, indexOfPhoneContext);\n } // Delete the isdn-subaddress and everything after it if it is present.\n // Note extension won't appear at the same time with isdn-subaddress\n // according to paragraph 5.3 of the RFC3966 spec.\n\n\n var indexOfIsdn = phoneNumberString.indexOf(RFC3966_ISDN_SUBADDRESS_);\n\n if (indexOfIsdn > 0) {\n phoneNumberString = phoneNumberString.substring(0, indexOfIsdn);\n } // If both phone context and isdn-subaddress are absent but other\n // parameters are present, the parameters are left in nationalNumber.\n // This is because we are concerned about deleting content from a potential\n // number string when there is no strong evidence that the number is\n // actually written in RFC3966.\n\n\n if (phoneNumberString !== '') {\n return phoneNumberString;\n }\n}\n//# sourceMappingURL=extractFormattedPhoneNumberFromPossibleRfc3966NumberUri.js.map","import stripIddPrefix from './stripIddPrefix.js';\nimport extractCountryCallingCodeFromInternationalNumberWithoutPlusSign from './extractCountryCallingCodeFromInternationalNumberWithoutPlusSign.js';\nimport Metadata from '../metadata.js';\nimport { MAX_LENGTH_COUNTRY_CODE } from '../constants.js';\n/**\r\n * Converts a phone number digits (possibly with a `+`)\r\n * into a calling code and the rest phone number digits.\r\n * The \"rest phone number digits\" could include\r\n * a national prefix, carrier code, and national\r\n * (significant) number.\r\n * @param {string} number — Phone number digits (possibly with a `+`).\r\n * @param {string} [country] — Default country.\r\n * @param {string} [callingCode] — Default calling code (some phone numbering plans are non-geographic).\r\n * @param {object} metadata\r\n * @return {object} `{ countryCallingCodeSource: string?, countryCallingCode: string?, number: string }`\r\n * @example\r\n * // Returns `{ countryCallingCode: \"1\", number: \"2133734253\" }`.\r\n * extractCountryCallingCode('2133734253', 'US', null, metadata)\r\n * extractCountryCallingCode('2133734253', null, '1', metadata)\r\n * extractCountryCallingCode('+12133734253', null, null, metadata)\r\n * extractCountryCallingCode('+12133734253', 'RU', null, metadata)\r\n */\n\nexport default function extractCountryCallingCode(number, country, callingCode, metadata) {\n if (!number) {\n return {};\n }\n\n var isNumberWithIddPrefix; // If this is not an international phone number,\n // then either extract an \"IDD\" prefix, or extract a\n // country calling code from a number by autocorrecting it\n // by prepending a leading `+` in cases when it starts\n // with the country calling code.\n // https://wikitravel.org/en/International_dialling_prefix\n // https://github.com/catamphetamine/libphonenumber-js/issues/376\n\n if (number[0] !== '+') {\n // Convert an \"out-of-country\" dialing phone number\n // to a proper international phone number.\n var numberWithoutIDD = stripIddPrefix(number, country, callingCode, metadata); // If an IDD prefix was stripped then\n // convert the number to international one\n // for subsequent parsing.\n\n if (numberWithoutIDD && numberWithoutIDD !== number) {\n isNumberWithIddPrefix = true;\n number = '+' + numberWithoutIDD;\n } else {\n // Check to see if the number starts with the country calling code\n // for the default country. If so, we remove the country calling code,\n // and do some checks on the validity of the number before and after.\n // https://github.com/catamphetamine/libphonenumber-js/issues/376\n if (country || callingCode) {\n var _extractCountryCallin = extractCountryCallingCodeFromInternationalNumberWithoutPlusSign(number, country, callingCode, metadata),\n countryCallingCode = _extractCountryCallin.countryCallingCode,\n shorterNumber = _extractCountryCallin.number;\n\n if (countryCallingCode) {\n return {\n countryCallingCodeSource: 'FROM_NUMBER_WITHOUT_PLUS_SIGN',\n countryCallingCode: countryCallingCode,\n number: shorterNumber\n };\n }\n }\n\n return {\n // No need to set it to `UNSPECIFIED`. It can be just `undefined`.\n // countryCallingCodeSource: 'UNSPECIFIED',\n number: number\n };\n }\n } // Fast abortion: country codes do not begin with a '0'\n\n\n if (number[1] === '0') {\n return {};\n }\n\n metadata = new Metadata(metadata); // The thing with country phone codes\n // is that they are orthogonal to each other\n // i.e. there's no such country phone code A\n // for which country phone code B exists\n // where B starts with A.\n // Therefore, while scanning digits,\n // if a valid country code is found,\n // that means that it is the country code.\n //\n\n var i = 2;\n\n while (i - 1 <= MAX_LENGTH_COUNTRY_CODE && i <= number.length) {\n var _countryCallingCode = number.slice(1, i);\n\n if (metadata.hasCallingCode(_countryCallingCode)) {\n metadata.selectNumberingPlan(_countryCallingCode);\n return {\n countryCallingCodeSource: isNumberWithIddPrefix ? 'FROM_NUMBER_WITH_IDD' : 'FROM_NUMBER_WITH_PLUS_SIGN',\n countryCallingCode: _countryCallingCode,\n number: number.slice(i)\n };\n }\n\n i++;\n }\n\n return {};\n} // The possible values for the returned `countryCallingCodeSource` are:\n//\n// Copy-pasted from:\n// https://github.com/google/libphonenumber/blob/master/resources/phonenumber.proto\n//\n// // The source from which the country_code is derived. This is not set in the\n// // general parsing method, but in the method that parses and keeps raw_input.\n// // New fields could be added upon request.\n// enum CountryCodeSource {\n// // Default value returned if this is not set, because the phone number was\n// // created using parse, not parseAndKeepRawInput. hasCountryCodeSource will\n// // return false if this is the case.\n// UNSPECIFIED = 0;\n//\n// // The country_code is derived based on a phone number with a leading \"+\",\n// // e.g. the French number \"+33 1 42 68 53 00\".\n// FROM_NUMBER_WITH_PLUS_SIGN = 1;\n//\n// // The country_code is derived based on a phone number with a leading IDD,\n// // e.g. the French number \"011 33 1 42 68 53 00\", as it is dialled from US.\n// FROM_NUMBER_WITH_IDD = 5;\n//\n// // The country_code is derived based on a phone number without a leading\n// // \"+\", e.g. the French number \"33 1 42 68 53 00\" when defaultCountry is\n// // supplied as France.\n// FROM_NUMBER_WITHOUT_PLUS_SIGN = 10;\n//\n// // The country_code is derived NOT based on the phone number itself, but\n// // from the defaultCountry parameter provided in the parsing function by the\n// // clients. This happens mostly for numbers written in the national format\n// // (without country code). For example, this would be set when parsing the\n// // French number \"01 42 68 53 00\", when defaultCountry is supplied as\n// // France.\n// FROM_DEFAULT_COUNTRY = 20;\n// }\n//# sourceMappingURL=extractCountryCallingCode.js.map","import Metadata from '../metadata.js';\nimport matchesEntirely from './matchesEntirely.js';\nimport extractNationalNumber from './extractNationalNumber.js';\nimport checkNumberLength from './checkNumberLength.js';\nimport getCountryCallingCode from '../getCountryCallingCode.js';\n/**\r\n * Sometimes some people incorrectly input international phone numbers\r\n * without the leading `+`. This function corrects such input.\r\n * @param {string} number — Phone number digits.\r\n * @param {string?} country\r\n * @param {string?} callingCode\r\n * @param {object} metadata\r\n * @return {object} `{ countryCallingCode: string?, number: string }`.\r\n */\n\nexport default function extractCountryCallingCodeFromInternationalNumberWithoutPlusSign(number, country, callingCode, metadata) {\n var countryCallingCode = country ? getCountryCallingCode(country, metadata) : callingCode;\n\n if (number.indexOf(countryCallingCode) === 0) {\n metadata = new Metadata(metadata);\n metadata.selectNumberingPlan(country, callingCode);\n var possibleShorterNumber = number.slice(countryCallingCode.length);\n\n var _extractNationalNumbe = extractNationalNumber(possibleShorterNumber, metadata),\n possibleShorterNationalNumber = _extractNationalNumbe.nationalNumber;\n\n var _extractNationalNumbe2 = extractNationalNumber(number, metadata),\n nationalNumber = _extractNationalNumbe2.nationalNumber; // If the number was not valid before but is valid now,\n // or if it was too long before, we consider the number\n // with the country calling code stripped to be a better result\n // and keep that instead.\n // For example, in Germany (+49), `49` is a valid area code,\n // so if a number starts with `49`, it could be both a valid\n // national German number or an international number without\n // a leading `+`.\n\n\n if (!matchesEntirely(nationalNumber, metadata.nationalNumberPattern()) && matchesEntirely(possibleShorterNationalNumber, metadata.nationalNumberPattern()) || checkNumberLength(nationalNumber, metadata) === 'TOO_LONG') {\n return {\n countryCallingCode: countryCallingCode,\n number: possibleShorterNumber\n };\n }\n }\n\n return {\n number: number\n };\n}\n//# sourceMappingURL=extractCountryCallingCodeFromInternationalNumberWithoutPlusSign.js.map","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport parse from './parse.js';\nexport default function parsePhoneNumberWithError(text, options, metadata) {\n return parse(text, _objectSpread(_objectSpread({}, options), {}, {\n v2: true\n }), metadata);\n}\n//# sourceMappingURL=parsePhoneNumberWithError_.js.map","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport parsePhoneNumberWithError from './parsePhoneNumberWithError_.js';\nimport ParseError from './ParseError.js';\nimport { isSupportedCountry } from './metadata.js';\nexport default function parsePhoneNumber(text, options, metadata) {\n // Validate `defaultCountry`.\n if (options && options.defaultCountry && !isSupportedCountry(options.defaultCountry, metadata)) {\n options = _objectSpread(_objectSpread({}, options), {}, {\n defaultCountry: undefined\n });\n } // Parse phone number.\n\n\n try {\n return parsePhoneNumberWithError(text, options, metadata);\n } catch (error) {\n /* istanbul ignore else */\n if (error instanceof ParseError) {//\n } else {\n throw error;\n }\n }\n}\n//# sourceMappingURL=parsePhoneNumber_.js.map","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport normalizeArguments from './normalizeArguments.js';\nimport parsePhoneNumber from './parsePhoneNumber_.js';\nexport default function isValidPhoneNumber() {\n var _normalizeArguments = normalizeArguments(arguments),\n text = _normalizeArguments.text,\n options = _normalizeArguments.options,\n metadata = _normalizeArguments.metadata;\n\n options = _objectSpread(_objectSpread({}, options), {}, {\n extract: false\n });\n var phoneNumber = parsePhoneNumber(text, options, metadata);\n return phoneNumber && phoneNumber.isValid() || false;\n}\n//# sourceMappingURL=isValidPhoneNumber.js.map","import withMetadataArgument from './withMetadataArgument.js'\r\nimport { isValidPhoneNumber as _isValidPhoneNumber } from '../../core/index.js'\r\n\r\nexport function isValidPhoneNumber() {\r\n\treturn withMetadataArgument(_isValidPhoneNumber, arguments)\r\n}","// Importing from a \".js\" file is a workaround for Node.js \"ES Modules\"\r\n// importing system which is even uncapable of importing \"*.json\" files.\r\nimport metadata from '../../metadata.min.json.js'\r\n\r\nexport default function withMetadataArgument(func, _arguments) {\r\n\tvar args = Array.prototype.slice.call(_arguments)\r\n\targs.push(metadata)\r\n\treturn func.apply(this, args)\r\n}","<!--\n\t- @copyright 2022 Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @author Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @license AGPL-3.0-or-later\n\t-\n\t- This program is free software: you can redistribute it and/or modify\n\t- it under the terms of the GNU Affero General Public License as\n\t- published by the Free Software Foundation, either version 3 of the\n\t- License, or (at your option) any later version.\n\t-\n\t- This program is distributed in the hope that it will be useful,\n\t- but WITHOUT ANY WARRANTY; without even the implied warranty of\n\t- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\t- GNU Affero General Public License for more details.\n\t-\n\t- You should have received a copy of the GNU Affero General Public License\n\t- along with this program. If not, see <http://www.gnu.org/licenses/>.\n\t-\n-->\n\n<template>\n\t<AccountPropertySection v-bind.sync=\"phone\"\n\t\t:placeholder=\"t('settings', 'Your phone number')\"\n\t\tautocomplete=\"tel\"\n\t\ttype=\"tel\"\n\t\t:on-validate=\"onValidate\" />\n</template>\n\n<script>\nimport { isValidPhoneNumber } from 'libphonenumber-js'\nimport { loadState } from '@nextcloud/initial-state'\n\nimport AccountPropertySection from './shared/AccountPropertySection.vue'\n\nimport { NAME_READABLE_ENUM } from '../../constants/AccountPropertyConstants.js'\n\nconst {\n\tdefaultPhoneRegion,\n\tphone,\n} = loadState('settings', 'personalInfoParameters', {})\n\nexport default {\n\tname: 'PhoneSection',\n\n\tcomponents: {\n\t\tAccountPropertySection,\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tphone: { ...phone, readable: NAME_READABLE_ENUM[phone.name] },\n\t\t}\n\t},\n\n\tmethods: {\n\t\tonValidate(value) {\n\t\t\tif (defaultPhoneRegion) {\n\t\t\t\treturn isValidPhoneNumber(value, defaultPhoneRegion)\n\t\t\t}\n\t\t\treturn isValidPhoneNumber(value)\n\t\t},\n\t},\n}\n</script>\n","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PhoneSection.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PhoneSection.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./PhoneSection.vue?vue&type=template&id=6f2678bb\"\nimport script from \"./PhoneSection.vue?vue&type=script&lang=js\"\nexport * from \"./PhoneSection.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('AccountPropertySection',_vm._b({attrs:{\"placeholder\":_vm.t('settings', 'Your phone number'),\"autocomplete\":\"tel\",\"type\":\"tel\",\"on-validate\":_vm.onValidate}},'AccountPropertySection',_vm.phone,false,true))\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n\t- @copyright 2022 Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @author Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @license AGPL-3.0-or-later\n\t-\n\t- This program is free software: you can redistribute it and/or modify\n\t- it under the terms of the GNU Affero General Public License as\n\t- published by the Free Software Foundation, either version 3 of the\n\t- License, or (at your option) any later version.\n\t-\n\t- This program is distributed in the hope that it will be useful,\n\t- but WITHOUT ANY WARRANTY; without even the implied warranty of\n\t- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\t- GNU Affero General Public License for more details.\n\t-\n\t- You should have received a copy of the GNU Affero General Public License\n\t- along with this program. If not, see <http://www.gnu.org/licenses/>.\n\t-\n-->\n\n<template>\n\t<AccountPropertySection v-bind.sync=\"location\"\n\t\tautocomplete=\"address-level1\"\n\t\t:placeholder=\"t('settings', 'Your city')\" />\n</template>\n\n<script>\nimport { loadState } from '@nextcloud/initial-state'\n\nimport AccountPropertySection from './shared/AccountPropertySection.vue'\n\nimport { NAME_READABLE_ENUM } from '../../constants/AccountPropertyConstants.js'\n\nconst { location } = loadState('settings', 'personalInfoParameters', {})\n\nexport default {\n\tname: 'LocationSection',\n\n\tcomponents: {\n\t\tAccountPropertySection,\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tlocation: { ...location, readable: NAME_READABLE_ENUM[location.name] },\n\t\t}\n\t},\n}\n</script>\n","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LocationSection.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LocationSection.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./LocationSection.vue?vue&type=template&id=7f8e0736\"\nimport script from \"./LocationSection.vue?vue&type=script&lang=js\"\nexport * from \"./LocationSection.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('AccountPropertySection',_vm._b({attrs:{\"autocomplete\":\"address-level1\",\"placeholder\":_vm.t('settings', 'Your city')}},'AccountPropertySection',_vm.location,false,true))\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n\t- @copyright 2022 Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @author Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @license AGPL-3.0-or-later\n\t-\n\t- This program is free software: you can redistribute it and/or modify\n\t- it under the terms of the GNU Affero General Public License as\n\t- published by the Free Software Foundation, either version 3 of the\n\t- License, or (at your option) any later version.\n\t-\n\t- This program is distributed in the hope that it will be useful,\n\t- but WITHOUT ANY WARRANTY; without even the implied warranty of\n\t- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\t- GNU Affero General Public License for more details.\n\t-\n\t- You should have received a copy of the GNU Affero General Public License\n\t- along with this program. If not, see <http://www.gnu.org/licenses/>.\n\t-\n-->\n\n<template>\n\t<AccountPropertySection v-bind.sync=\"website\"\n\t\t:placeholder=\"t('settings', 'Your website')\"\n\t\tautocomplete=\"url\"\n\t\ttype=\"url\"\n\t\t:on-validate=\"onValidate\" />\n</template>\n\n<script>\nimport { loadState } from '@nextcloud/initial-state'\n\nimport AccountPropertySection from './shared/AccountPropertySection.vue'\n\nimport { NAME_READABLE_ENUM } from '../../constants/AccountPropertyConstants.js'\nimport { validateUrl } from '../../utils/validate.js'\n\nconst { website } = loadState('settings', 'personalInfoParameters', {})\n\nexport default {\n\tname: 'WebsiteSection',\n\n\tcomponents: {\n\t\tAccountPropertySection,\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\twebsite: { ...website, readable: NAME_READABLE_ENUM[website.name] },\n\t\t}\n\t},\n\n\tmethods: {\n\t\tonValidate(value) {\n\t\t\treturn validateUrl(value)\n\t\t},\n\t},\n}\n</script>\n","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./WebsiteSection.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./WebsiteSection.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./WebsiteSection.vue?vue&type=template&id=271dd4ba\"\nimport script from \"./WebsiteSection.vue?vue&type=script&lang=js\"\nexport * from \"./WebsiteSection.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('AccountPropertySection',_vm._b({attrs:{\"placeholder\":_vm.t('settings', 'Your website'),\"autocomplete\":\"url\",\"type\":\"url\",\"on-validate\":_vm.onValidate}},'AccountPropertySection',_vm.website,false,true))\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n\t- @copyright 2022 Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @author Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @license AGPL-3.0-or-later\n\t-\n\t- This program is free software: you can redistribute it and/or modify\n\t- it under the terms of the GNU Affero General Public License as\n\t- published by the Free Software Foundation, either version 3 of the\n\t- License, or (at your option) any later version.\n\t-\n\t- This program is distributed in the hope that it will be useful,\n\t- but WITHOUT ANY WARRANTY; without even the implied warranty of\n\t- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\t- GNU Affero General Public License for more details.\n\t-\n\t- You should have received a copy of the GNU Affero General Public License\n\t- along with this program. If not, see <http://www.gnu.org/licenses/>.\n\t-\n-->\n\n<template>\n\t<AccountPropertySection v-bind.sync=\"twitter\"\n\t\t:placeholder=\"t('settings', 'Your X (formerly Twitter) handle')\" />\n</template>\n\n<script>\nimport { loadState } from '@nextcloud/initial-state'\n\nimport AccountPropertySection from './shared/AccountPropertySection.vue'\n\nimport { NAME_READABLE_ENUM } from '../../constants/AccountPropertyConstants.js'\n\nconst { twitter } = loadState('settings', 'personalInfoParameters', {})\n\nexport default {\n\tname: 'TwitterSection',\n\n\tcomponents: {\n\t\tAccountPropertySection,\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\ttwitter: { ...twitter, readable: NAME_READABLE_ENUM[twitter.name] },\n\t\t}\n\t},\n}\n</script>\n","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TwitterSection.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TwitterSection.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./TwitterSection.vue?vue&type=template&id=aaf77020\"\nimport script from \"./TwitterSection.vue?vue&type=script&lang=js\"\nexport * from \"./TwitterSection.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('AccountPropertySection',_vm._b({attrs:{\"placeholder\":_vm.t('settings', 'Your X (formerly Twitter) handle')}},'AccountPropertySection',_vm.twitter,false,true))\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n\t- @copyright 2022 Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @author Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @license AGPL-3.0-or-later\n\t-\n\t- This program is free software: you can redistribute it and/or modify\n\t- it under the terms of the GNU Affero General Public License as\n\t- published by the Free Software Foundation, either version 3 of the\n\t- License, or (at your option) any later version.\n\t-\n\t- This program is distributed in the hope that it will be useful,\n\t- but WITHOUT ANY WARRANTY; without even the implied warranty of\n\t- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\t- GNU Affero General Public License for more details.\n\t-\n\t- You should have received a copy of the GNU Affero General Public License\n\t- along with this program. If not, see <http://www.gnu.org/licenses/>.\n\t-\n-->\n\n<template>\n\t<AccountPropertySection v-bind.sync=\"fediverse\"\n\t\t:placeholder=\"t('settings', 'Your handle')\" />\n</template>\n\n<script>\nimport { loadState } from '@nextcloud/initial-state'\n\nimport AccountPropertySection from './shared/AccountPropertySection.vue'\n\nimport { NAME_READABLE_ENUM } from '../../constants/AccountPropertyConstants.js'\n\nconst { fediverse } = loadState('settings', 'personalInfoParameters', {})\n\nexport default {\n\tname: 'FediverseSection',\n\n\tcomponents: {\n\t\tAccountPropertySection,\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tfediverse: { ...fediverse, readable: NAME_READABLE_ENUM[fediverse.name] },\n\t\t}\n\t},\n}\n</script>\n","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FediverseSection.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FediverseSection.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./FediverseSection.vue?vue&type=template&id=78433a38\"\nimport script from \"./FediverseSection.vue?vue&type=script&lang=js\"\nexport * from \"./FediverseSection.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('AccountPropertySection',_vm._b({attrs:{\"placeholder\":_vm.t('settings', 'Your handle')}},'AccountPropertySection',_vm.fediverse,false,true))\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Language.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Language.vue?vue&type=script&lang=js\"","<!--\n\t- @copyright 2021, Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @author Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @license GNU AGPL version 3 or any later version\n\t-\n\t- This program is free software: you can redistribute it and/or modify\n\t- it under the terms of the GNU Affero General Public License as\n\t- published by the Free Software Foundation, either version 3 of the\n\t- License, or (at your option) any later version.\n\t-\n\t- This program is distributed in the hope that it will be useful,\n\t- but WITHOUT ANY WARRANTY; without even the implied warranty of\n\t- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\t- GNU Affero General Public License for more details.\n\t-\n\t- You should have received a copy of the GNU Affero General Public License\n\t- along with this program. If not, see <http://www.gnu.org/licenses/>.\n\t-\n-->\n\n<template>\n\t<div class=\"language\">\n\t\t<select :id=\"inputId\" @change=\"onLanguageChange\">\n\t\t\t<option v-for=\"commonLanguage in commonLanguages\"\n\t\t\t\t:key=\"commonLanguage.code\"\n\t\t\t\t:selected=\"language.code === commonLanguage.code\"\n\t\t\t\t:value=\"commonLanguage.code\">\n\t\t\t\t{{ commonLanguage.name }}\n\t\t\t</option>\n\t\t\t<option disabled>\n\t\t\t\t──────────\n\t\t\t</option>\n\t\t\t<option v-for=\"otherLanguage in otherLanguages\"\n\t\t\t\t:key=\"otherLanguage.code\"\n\t\t\t\t:selected=\"language.code === otherLanguage.code\"\n\t\t\t\t:value=\"otherLanguage.code\">\n\t\t\t\t{{ otherLanguage.name }}\n\t\t\t</option>\n\t\t</select>\n\n\t\t<a href=\"https://www.transifex.com/nextcloud/nextcloud/\"\n\t\t\ttarget=\"_blank\"\n\t\t\trel=\"noreferrer noopener\">\n\t\t\t<em>{{ t('settings', 'Help translate') }}</em>\n\t\t</a>\n\t</div>\n</template>\n\n<script>\nimport { ACCOUNT_SETTING_PROPERTY_ENUM } from '../../../constants/AccountPropertyConstants.js'\nimport { savePrimaryAccountProperty } from '../../../service/PersonalInfo/PersonalInfoService.js'\nimport { validateLanguage } from '../../../utils/validate.js'\nimport { handleError } from '../../../utils/handlers.js'\n\nexport default {\n\tname: 'Language',\n\n\tprops: {\n\t\tinputId: {\n\t\t\ttype: String,\n\t\t\tdefault: null,\n\t\t},\n\t\tcommonLanguages: {\n\t\t\ttype: Array,\n\t\t\trequired: true,\n\t\t},\n\t\totherLanguages: {\n\t\t\ttype: Array,\n\t\t\trequired: true,\n\t\t},\n\t\tlanguage: {\n\t\t\ttype: Object,\n\t\t\trequired: true,\n\t\t},\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tinitialLanguage: this.language,\n\t\t}\n\t},\n\n\tcomputed: {\n\t\tallLanguages() {\n\t\t\treturn Object.freeze(\n\t\t\t\t[...this.commonLanguages, ...this.otherLanguages]\n\t\t\t\t\t.reduce((acc, { code, name }) => ({ ...acc, [code]: name }), {}),\n\t\t\t)\n\t\t},\n\t},\n\n\tmethods: {\n\t\tasync onLanguageChange(e) {\n\t\t\tconst language = this.constructLanguage(e.target.value)\n\t\t\tthis.$emit('update:language', language)\n\n\t\t\tif (validateLanguage(language)) {\n\t\t\t\tawait this.updateLanguage(language)\n\t\t\t}\n\t\t},\n\n\t\tasync updateLanguage(language) {\n\t\t\ttry {\n\t\t\t\tconst responseData = await savePrimaryAccountProperty(ACCOUNT_SETTING_PROPERTY_ENUM.LANGUAGE, language.code)\n\t\t\t\tthis.handleResponse({\n\t\t\t\t\tlanguage,\n\t\t\t\t\tstatus: responseData.ocs?.meta?.status,\n\t\t\t\t})\n\t\t\t\tthis.reloadPage()\n\t\t\t} catch (e) {\n\t\t\t\tthis.handleResponse({\n\t\t\t\t\terrorMessage: t('settings', 'Unable to update language'),\n\t\t\t\t\terror: e,\n\t\t\t\t})\n\t\t\t}\n\t\t},\n\n\t\tconstructLanguage(languageCode) {\n\t\t\treturn {\n\t\t\t\tcode: languageCode,\n\t\t\t\tname: this.allLanguages[languageCode],\n\t\t\t}\n\t\t},\n\n\t\thandleResponse({ language, status, errorMessage, error }) {\n\t\t\tif (status === 'ok') {\n\t\t\t\t// Ensure that local state reflects server state\n\t\t\t\tthis.initialLanguage = language\n\t\t\t} else {\n\t\t\t\thandleError(error, errorMessage)\n\t\t\t}\n\t\t},\n\n\t\treloadPage() {\n\t\t\tlocation.reload()\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.language {\n\tdisplay: grid;\n\n\tselect {\n\t\twidth: 100%;\n\t}\n\n\ta {\n\t\tcolor: var(--color-main-text);\n\t\ttext-decoration: none;\n\t\twidth: max-content;\n\t}\n}\n</style>\n","\n import API from \"!../../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../../node_modules/css-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Language.vue?vue&type=style&index=0&id=395f9cd4&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../../node_modules/css-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Language.vue?vue&type=style&index=0&id=395f9cd4&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./Language.vue?vue&type=template&id=395f9cd4&scoped=true\"\nimport script from \"./Language.vue?vue&type=script&lang=js\"\nexport * from \"./Language.vue?vue&type=script&lang=js\"\nimport style0 from \"./Language.vue?vue&type=style&index=0&id=395f9cd4&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"395f9cd4\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"language\"},[_c('select',{attrs:{\"id\":_vm.inputId},on:{\"change\":_vm.onLanguageChange}},[_vm._l((_vm.commonLanguages),function(commonLanguage){return _c('option',{key:commonLanguage.code,domProps:{\"selected\":_vm.language.code === commonLanguage.code,\"value\":commonLanguage.code}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(commonLanguage.name)+\"\\n\\t\\t\")])}),_vm._v(\" \"),_c('option',{attrs:{\"disabled\":\"\"}},[_vm._v(\"\\n\\t\\t\\t──────────\\n\\t\\t\")]),_vm._v(\" \"),_vm._l((_vm.otherLanguages),function(otherLanguage){return _c('option',{key:otherLanguage.code,domProps:{\"selected\":_vm.language.code === otherLanguage.code,\"value\":otherLanguage.code}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(otherLanguage.name)+\"\\n\\t\\t\")])})],2),_vm._v(\" \"),_c('a',{attrs:{\"href\":\"https://www.transifex.com/nextcloud/nextcloud/\",\"target\":\"_blank\",\"rel\":\"noreferrer noopener\"}},[_c('em',[_vm._v(_vm._s(_vm.t('settings', 'Help translate')))])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n\t- @copyright 2021, Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @author Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @license GNU AGPL version 3 or any later version\n\t-\n\t- This program is free software: you can redistribute it and/or modify\n\t- it under the terms of the GNU Affero General Public License as\n\t- published by the Free Software Foundation, either version 3 of the\n\t- License, or (at your option) any later version.\n\t-\n\t- This program is distributed in the hope that it will be useful,\n\t- but WITHOUT ANY WARRANTY; without even the implied warranty of\n\t- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\t- GNU Affero General Public License for more details.\n\t-\n\t- You should have received a copy of the GNU Affero General Public License\n\t- along with this program. If not, see <http://www.gnu.org/licenses/>.\n\t-\n-->\n\n<template>\n\t<section>\n\t\t<HeaderBar :input-id=\"inputId\"\n\t\t\t:readable=\"propertyReadable\" />\n\n\t\t<template v-if=\"isEditable\">\n\t\t\t<Language :input-id=\"inputId\"\n\t\t\t\t:common-languages=\"commonLanguages\"\n\t\t\t\t:other-languages=\"otherLanguages\"\n\t\t\t\t:language.sync=\"language\" />\n\t\t</template>\n\n\t\t<span v-else>\n\t\t\t{{ t('settings', 'No language set') }}\n\t\t</span>\n\t</section>\n</template>\n\n<script>\nimport { loadState } from '@nextcloud/initial-state'\n\nimport Language from './Language.vue'\nimport HeaderBar from '../shared/HeaderBar.vue'\n\nimport { ACCOUNT_SETTING_PROPERTY_ENUM, ACCOUNT_SETTING_PROPERTY_READABLE_ENUM } from '../../../constants/AccountPropertyConstants.js'\n\nconst { languageMap: { activeLanguage, commonLanguages, otherLanguages } } = loadState('settings', 'personalInfoParameters', {})\n\nexport default {\n\tname: 'LanguageSection',\n\n\tcomponents: {\n\t\tLanguage,\n\t\tHeaderBar,\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tpropertyReadable: ACCOUNT_SETTING_PROPERTY_READABLE_ENUM.LANGUAGE,\n\t\t\tcommonLanguages,\n\t\t\totherLanguages,\n\t\t\tlanguage: activeLanguage,\n\t\t}\n\t},\n\n\tcomputed: {\n\t\tinputId() {\n\t\t\treturn `account-setting-${ACCOUNT_SETTING_PROPERTY_ENUM.LANGUAGE}`\n\t\t},\n\n\t\tisEditable() {\n\t\t\treturn Boolean(this.language)\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\nsection {\n\tpadding: 10px 10px;\n\n\t&::v-deep button:disabled {\n\t\tcursor: default;\n\t}\n}\n</style>\n","import mod from \"-!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LanguageSection.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LanguageSection.vue?vue&type=script&lang=js\"","\n import API from \"!../../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../../node_modules/css-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LanguageSection.vue?vue&type=style&index=0&id=92685b76&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../../node_modules/css-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LanguageSection.vue?vue&type=style&index=0&id=92685b76&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./LanguageSection.vue?vue&type=template&id=92685b76&scoped=true\"\nimport script from \"./LanguageSection.vue?vue&type=script&lang=js\"\nexport * from \"./LanguageSection.vue?vue&type=script&lang=js\"\nimport style0 from \"./LanguageSection.vue?vue&type=style&index=0&id=92685b76&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"92685b76\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('section',[_c('HeaderBar',{attrs:{\"input-id\":_vm.inputId,\"readable\":_vm.propertyReadable}}),_vm._v(\" \"),(_vm.isEditable)?[_c('Language',{attrs:{\"input-id\":_vm.inputId,\"common-languages\":_vm.commonLanguages,\"other-languages\":_vm.otherLanguages,\"language\":_vm.language},on:{\"update:language\":function($event){_vm.language=$event}}})]:_c('span',[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('settings', 'No language set'))+\"\\n\\t\")])],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('section',[_c('HeaderBar',{attrs:{\"input-id\":_vm.inputId,\"readable\":_vm.propertyReadable}}),_vm._v(\" \"),(_vm.isEditable)?[_c('Locale',{attrs:{\"input-id\":_vm.inputId,\"locales-for-language\":_vm.localesForLanguage,\"other-locales\":_vm.otherLocales,\"locale\":_vm.locale},on:{\"update:locale\":function($event){_vm.locale=$event}}})]:_c('span',[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('settings', 'No locale set'))+\"\\n\\t\")])],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n\t- @copyright 2022 Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @author Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @license AGPL-3.0-or-later\n\t-\n\t- This program is free software: you can redistribute it and/or modify\n\t- it under the terms of the GNU Affero General Public License as\n\t- published by the Free Software Foundation, either version 3 of the\n\t- License, or (at your option) any later version.\n\t-\n\t- This program is distributed in the hope that it will be useful,\n\t- but WITHOUT ANY WARRANTY; without even the implied warranty of\n\t- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\t- GNU Affero General Public License for more details.\n\t-\n\t- You should have received a copy of the GNU Affero General Public License\n\t- along with this program. If not, see <http://www.gnu.org/licenses/>.\n\t-\n-->\n\n<template>\n\t<div class=\"locale\">\n\t\t<select :id=\"inputId\" @change=\"onLocaleChange\">\n\t\t\t<option v-for=\"currentLocale in localesForLanguage\"\n\t\t\t\t:key=\"currentLocale.code\"\n\t\t\t\t:selected=\"locale.code === currentLocale.code\"\n\t\t\t\t:value=\"currentLocale.code\">\n\t\t\t\t{{ currentLocale.name }}\n\t\t\t</option>\n\t\t\t<option disabled>\n\t\t\t\t──────────\n\t\t\t</option>\n\t\t\t<option v-for=\"currentLocale in otherLocales\"\n\t\t\t\t:key=\"currentLocale.code\"\n\t\t\t\t:selected=\"locale.code === currentLocale.code\"\n\t\t\t\t:value=\"currentLocale.code\">\n\t\t\t\t{{ currentLocale.name }}\n\t\t\t</option>\n\t\t</select>\n\n\t\t<div class=\"example\">\n\t\t\t<Web :size=\"20\" />\n\t\t\t<div class=\"example__text\">\n\t\t\t\t<p>\n\t\t\t\t\t<span>{{ example.date }}</span>\n\t\t\t\t\t<span>{{ example.time }}</span>\n\t\t\t\t</p>\n\t\t\t\t<p>\n\t\t\t\t\t{{ t('settings', 'Week starts on {firstDayOfWeek}', { firstDayOfWeek: example.firstDayOfWeek }) }}\n\t\t\t\t</p>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n</template>\n\n<script>\nimport moment from '@nextcloud/moment'\nimport Web from 'vue-material-design-icons/Web.vue'\n\nimport { ACCOUNT_SETTING_PROPERTY_ENUM } from '../../../constants/AccountPropertyConstants.js'\nimport { savePrimaryAccountProperty } from '../../../service/PersonalInfo/PersonalInfoService.js'\nimport { validateLocale } from '../../../utils/validate.js'\nimport { handleError } from '../../../utils/handlers.js'\n\nexport default {\n\tname: 'Locale',\n\n\tcomponents: {\n\t\tWeb,\n\t},\n\n\tprops: {\n\t\tinputId: {\n\t\t\ttype: String,\n\t\t\tdefault: null,\n\t\t},\n\t\tlocale: {\n\t\t\ttype: Object,\n\t\t\trequired: true,\n\t\t},\n\t\tlocalesForLanguage: {\n\t\t\ttype: Array,\n\t\t\trequired: true,\n\t\t},\n\t\totherLocales: {\n\t\t\ttype: Array,\n\t\t\trequired: true,\n\t\t},\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tinitialLocale: this.locale,\n\t\t\texample: {\n\t\t\t\tdate: moment().format('L'),\n\t\t\t\ttime: moment().format('LTS'),\n\t\t\t\tfirstDayOfWeek: window.dayNames[window.firstDay],\n\t\t\t},\n\t\t}\n\t},\n\n\tcomputed: {\n\t\tallLocales() {\n\t\t\treturn Object.freeze(\n\t\t\t\t[...this.localesForLanguage, ...this.otherLocales]\n\t\t\t\t\t.reduce((acc, { code, name }) => ({ ...acc, [code]: name }), {}),\n\t\t\t)\n\t\t},\n\t},\n\n\tcreated() {\n\t\tsetInterval(this.refreshExample, 1000)\n\t},\n\n\tmethods: {\n\t\tasync onLocaleChange(e) {\n\t\t\tconst locale = this.constructLocale(e.target.value)\n\t\t\tthis.$emit('update:locale', locale)\n\n\t\t\tif (validateLocale(locale)) {\n\t\t\t\tawait this.updateLocale(locale)\n\t\t\t}\n\t\t},\n\n\t\tasync updateLocale(locale) {\n\t\t\ttry {\n\t\t\t\tconst responseData = await savePrimaryAccountProperty(ACCOUNT_SETTING_PROPERTY_ENUM.LOCALE, locale.code)\n\t\t\t\tthis.handleResponse({\n\t\t\t\t\tlocale,\n\t\t\t\t\tstatus: responseData.ocs?.meta?.status,\n\t\t\t\t})\n\t\t\t\tthis.reloadPage()\n\t\t\t} catch (e) {\n\t\t\t\tthis.handleResponse({\n\t\t\t\t\terrorMessage: t('settings', 'Unable to update locale'),\n\t\t\t\t\terror: e,\n\t\t\t\t})\n\t\t\t}\n\t\t},\n\n\t\tconstructLocale(localeCode) {\n\t\t\treturn {\n\t\t\t\tcode: localeCode,\n\t\t\t\tname: this.allLocales[localeCode],\n\t\t\t}\n\t\t},\n\n\t\thandleResponse({ locale, status, errorMessage, error }) {\n\t\t\tif (status === 'ok') {\n\t\t\t\tthis.initialLocale = locale\n\t\t\t} else {\n\t\t\t\tthis.$emit('update:locale', this.initialLocale)\n\t\t\t\thandleError(error, errorMessage)\n\t\t\t}\n\t\t},\n\n\t\trefreshExample() {\n\t\t\tthis.example = {\n\t\t\t\tdate: moment().format('L'),\n\t\t\t\ttime: moment().format('LTS'),\n\t\t\t\tfirstDayOfWeek: window.dayNames[window.firstDay],\n\t\t\t}\n\t\t},\n\n\t\treloadPage() {\n\t\t\tlocation.reload()\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.locale {\n\tdisplay: grid;\n\n\tselect {\n\t\twidth: 100%;\n\t}\n}\n\n.example {\n\tmargin: 10px 0;\n\tdisplay: flex;\n\tgap: 0 10px;\n\tcolor: var(--color-text-lighter);\n\n\t&::v-deep .material-design-icon {\n\t\talign-self: flex-start;\n\t\tmargin-top: 2px;\n\t}\n}\n</style>\n","import mod from \"-!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Locale.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Locale.vue?vue&type=script&lang=js\"","\n import API from \"!../../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../../node_modules/css-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Locale.vue?vue&type=style&index=0&id=12e4d6c8&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../../node_modules/css-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Locale.vue?vue&type=style&index=0&id=12e4d6c8&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./Locale.vue?vue&type=template&id=12e4d6c8&scoped=true\"\nimport script from \"./Locale.vue?vue&type=script&lang=js\"\nexport * from \"./Locale.vue?vue&type=script&lang=js\"\nimport style0 from \"./Locale.vue?vue&type=style&index=0&id=12e4d6c8&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"12e4d6c8\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"locale\"},[_c('select',{attrs:{\"id\":_vm.inputId},on:{\"change\":_vm.onLocaleChange}},[_vm._l((_vm.localesForLanguage),function(currentLocale){return _c('option',{key:currentLocale.code,domProps:{\"selected\":_vm.locale.code === currentLocale.code,\"value\":currentLocale.code}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(currentLocale.name)+\"\\n\\t\\t\")])}),_vm._v(\" \"),_c('option',{attrs:{\"disabled\":\"\"}},[_vm._v(\"\\n\\t\\t\\t──────────\\n\\t\\t\")]),_vm._v(\" \"),_vm._l((_vm.otherLocales),function(currentLocale){return _c('option',{key:currentLocale.code,domProps:{\"selected\":_vm.locale.code === currentLocale.code,\"value\":currentLocale.code}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(currentLocale.name)+\"\\n\\t\\t\")])})],2),_vm._v(\" \"),_c('div',{staticClass:\"example\"},[_c('Web',{attrs:{\"size\":20}}),_vm._v(\" \"),_c('div',{staticClass:\"example__text\"},[_c('p',[_c('span',[_vm._v(_vm._s(_vm.example.date))]),_vm._v(\" \"),_c('span',[_vm._v(_vm._s(_vm.example.time))])]),_vm._v(\" \"),_c('p',[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Week starts on {firstDayOfWeek}', { firstDayOfWeek: _vm.example.firstDayOfWeek }))+\"\\n\\t\\t\\t\")])])],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n\t- @copyright 2022 Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @author Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @license AGPL-3.0-or-later\n\t-\n\t- This program is free software: you can redistribute it and/or modify\n\t- it under the terms of the GNU Affero General Public License as\n\t- published by the Free Software Foundation, either version 3 of the\n\t- License, or (at your option) any later version.\n\t-\n\t- This program is distributed in the hope that it will be useful,\n\t- but WITHOUT ANY WARRANTY; without even the implied warranty of\n\t- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\t- GNU Affero General Public License for more details.\n\t-\n\t- You should have received a copy of the GNU Affero General Public License\n\t- along with this program. If not, see <http://www.gnu.org/licenses/>.\n\t-\n-->\n\n<template>\n\t<section>\n\t\t<HeaderBar :input-id=\"inputId\"\n\t\t\t:readable=\"propertyReadable\" />\n\n\t\t<template v-if=\"isEditable\">\n\t\t\t<Locale :input-id=\"inputId\"\n\t\t\t\t:locales-for-language=\"localesForLanguage\"\n\t\t\t\t:other-locales=\"otherLocales\"\n\t\t\t\t:locale.sync=\"locale\" />\n\t\t</template>\n\n\t\t<span v-else>\n\t\t\t{{ t('settings', 'No locale set') }}\n\t\t</span>\n\t</section>\n</template>\n\n<script>\nimport { loadState } from '@nextcloud/initial-state'\n\nimport Locale from './Locale.vue'\nimport HeaderBar from '../shared/HeaderBar.vue'\n\nimport { ACCOUNT_SETTING_PROPERTY_ENUM, ACCOUNT_SETTING_PROPERTY_READABLE_ENUM } from '../../../constants/AccountPropertyConstants.js'\n\nconst { localeMap: { activeLocale, localesForLanguage, otherLocales } } = loadState('settings', 'personalInfoParameters', {})\n\nexport default {\n\tname: 'LocaleSection',\n\n\tcomponents: {\n\t\tLocale,\n\t\tHeaderBar,\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tpropertyReadable: ACCOUNT_SETTING_PROPERTY_READABLE_ENUM.LOCALE,\n\t\t\tlocalesForLanguage,\n\t\t\totherLocales,\n\t\t\tlocale: activeLocale,\n\t\t}\n\t},\n\n\tcomputed: {\n\t\tinputId() {\n\t\t\treturn `account-setting-${ACCOUNT_SETTING_PROPERTY_ENUM.LOCALE}`\n\t\t},\n\n\t\tisEditable() {\n\t\t\treturn Boolean(this.locale)\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\nsection {\n\tpadding: 10px 10px;\n\n\t&::v-deep button:disabled {\n\t\tcursor: default;\n\t}\n}\n</style>\n","import mod from \"-!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LocaleSection.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LocaleSection.vue?vue&type=script&lang=js\"","\n import API from \"!../../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../../node_modules/css-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LocaleSection.vue?vue&type=style&index=0&id=84fca724&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../../node_modules/css-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LocaleSection.vue?vue&type=style&index=0&id=84fca724&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./LocaleSection.vue?vue&type=template&id=84fca724&scoped=true\"\nimport script from \"./LocaleSection.vue?vue&type=script&lang=js\"\nexport * from \"./LocaleSection.vue?vue&type=script&lang=js\"\nimport style0 from \"./LocaleSection.vue?vue&type=style&index=0&id=84fca724&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"84fca724\",\n null\n \n)\n\nexport default component.exports","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./ChevronDown.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./ChevronDown.vue?vue&type=script&lang=js\"","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : true\"\n :aria-label=\"title\"\n class=\"material-design-icon chevron-down-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"ChevronDownIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n</script>","import mod from \"-!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EditProfileAnchorLink.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EditProfileAnchorLink.vue?vue&type=script&lang=js\"","<!--\n\t- @copyright 2021 Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @author Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @license GNU AGPL version 3 or any later version\n\t-\n\t- This program is free software: you can redistribute it and/or modify\n\t- it under the terms of the GNU Affero General Public License as\n\t- published by the Free Software Foundation, either version 3 of the\n\t- License, or (at your option) any later version.\n\t-\n\t- This program is distributed in the hope that it will be useful,\n\t- but WITHOUT ANY WARRANTY; without even the implied warranty of\n\t- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\t- GNU Affero General Public License for more details.\n\t-\n\t- You should have received a copy of the GNU Affero General Public License\n\t- along with this program. If not, see <http://www.gnu.org/licenses/>.\n\t-\n-->\n\n<template>\n\t<a :class=\"{ disabled }\"\n\t\thref=\"#profile-visibility\"\n\t\tv-on=\"$listeners\">\n\t\t<ChevronDownIcon class=\"anchor-icon\"\n\t\t\t:size=\"22\" />\n\t\t{{ t('settings', 'Edit your Profile visibility') }}\n\t</a>\n</template>\n\n<script>\nimport ChevronDownIcon from 'vue-material-design-icons/ChevronDown.vue'\n\nexport default {\n\tname: 'EditProfileAnchorLink',\n\n\tcomponents: {\n\t\tChevronDownIcon,\n\t},\n\n\tprops: {\n\t\tprofileEnabled: {\n\t\t\ttype: Boolean,\n\t\t\trequired: true,\n\t\t},\n\t},\n\n\tcomputed: {\n\t\tdisabled() {\n\t\t\treturn !this.profileEnabled\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\">\nhtml {\n\tscroll-behavior: smooth;\n\n\t@media screen and (prefers-reduced-motion: reduce) {\n\t\tscroll-behavior: auto;\n\t}\n}\n</style>\n\n<style lang=\"scss\" scoped>\na {\n\tdisplay: block;\n\theight: 44px;\n\twidth: min(100%, 290px);\n\toverflow: hidden;\n\ttext-overflow: ellipsis;\n\tline-height: 44px;\n\tpadding: 0 16px;\n\tmargin: 14px auto;\n\tborder-radius: var(--border-radius-pill);\n\tcolor: var(--color-text-maxcontrast);\n\tbackground-color: transparent;\n\n\t.anchor-icon {\n\t\tdisplay: inline-block;\n\t\tvertical-align: middle;\n\t\tmargin-top: 6px;\n\t\tmargin-right: 8px;\n\t}\n\n\t&:hover,\n\t&:focus,\n\t&:active {\n\t\tcolor: var(--color-main-text);\n\t\tbackground-color: var(--color-background-dark);\n\t}\n\n\t&.disabled {\n\t\tpointer-events: none;\n\t}\n}\n</style>\n","import { render, staticRenderFns } from \"./ChevronDown.vue?vue&type=template&id=5baf9b18\"\nimport script from \"./ChevronDown.vue?vue&type=script&lang=js\"\nexport * from \"./ChevronDown.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon chevron-down-icon\",attrs:{\"aria-hidden\":_vm.title ? null : true,\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n import API from \"!../../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../../node_modules/css-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EditProfileAnchorLink.vue?vue&type=style&index=0&id=23992b06&prod&lang=scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../../node_modules/css-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EditProfileAnchorLink.vue?vue&type=style&index=0&id=23992b06&prod&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","\n import API from \"!../../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../../node_modules/css-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EditProfileAnchorLink.vue?vue&type=style&index=1&id=23992b06&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../../node_modules/css-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EditProfileAnchorLink.vue?vue&type=style&index=1&id=23992b06&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./EditProfileAnchorLink.vue?vue&type=template&id=23992b06&scoped=true\"\nimport script from \"./EditProfileAnchorLink.vue?vue&type=script&lang=js\"\nexport * from \"./EditProfileAnchorLink.vue?vue&type=script&lang=js\"\nimport style0 from \"./EditProfileAnchorLink.vue?vue&type=style&index=0&id=23992b06&prod&lang=scss\"\nimport style1 from \"./EditProfileAnchorLink.vue?vue&type=style&index=1&id=23992b06&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"23992b06\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('a',_vm._g({class:{ disabled: _vm.disabled },attrs:{\"href\":\"#profile-visibility\"}},_vm.$listeners),[_c('ChevronDownIcon',{staticClass:\"anchor-icon\",attrs:{\"size\":22}}),_vm._v(\"\\n\\t\"+_vm._s(_vm.t('settings', 'Edit your Profile visibility'))+\"\\n\")],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProfileCheckbox.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProfileCheckbox.vue?vue&type=script&lang=js\"","<!--\n\t- @copyright 2021, Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @author Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @license GNU AGPL version 3 or any later version\n\t-\n\t- This program is free software: you can redistribute it and/or modify\n\t- it under the terms of the GNU Affero General Public License as\n\t- published by the Free Software Foundation, either version 3 of the\n\t- License, or (at your option) any later version.\n\t-\n\t- This program is distributed in the hope that it will be useful,\n\t- but WITHOUT ANY WARRANTY; without even the implied warranty of\n\t- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\t- GNU Affero General Public License for more details.\n\t-\n\t- You should have received a copy of the GNU Affero General Public License\n\t- along with this program. If not, see <http://www.gnu.org/licenses/>.\n\t-\n-->\n\n<template>\n\t<div class=\"checkbox-container\">\n\t\t<NcCheckboxRadioSwitch type=\"switch\"\n\t\t\t:checked.sync=\"isProfileEnabled\"\n\t\t\t:loading=\"loading\"\n\t\t\t@update:checked=\"saveEnableProfile\">\n\t\t\t{{ t('settings', 'Enable Profile') }}\n\t\t</NcCheckboxRadioSwitch>\n\t</div>\n</template>\n\n<script>\nimport { emit } from '@nextcloud/event-bus'\n\nimport { savePrimaryAccountProperty } from '../../../service/PersonalInfo/PersonalInfoService.js'\nimport { ACCOUNT_PROPERTY_ENUM } from '../../../constants/AccountPropertyConstants.js'\nimport NcCheckboxRadioSwitch from '@nextcloud/vue/dist/Components/NcCheckboxRadioSwitch.js'\nimport { handleError } from '../../../utils/handlers.js'\n\nexport default {\n\tname: 'ProfileCheckbox',\n\n\tcomponents: {\n\t\tNcCheckboxRadioSwitch,\n\t},\n\n\tprops: {\n\t\tprofileEnabled: {\n\t\t\ttype: Boolean,\n\t\t\trequired: true,\n\t\t},\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tisProfileEnabled: this.profileEnabled,\n\t\t\tloading: false,\n\t\t}\n\t},\n\n\tmethods: {\n\t\tasync saveEnableProfile() {\n\t\t\tthis.loading = true\n\t\t\ttry {\n\t\t\t\tconst responseData = await savePrimaryAccountProperty(ACCOUNT_PROPERTY_ENUM.PROFILE_ENABLED, this.isProfileEnabled)\n\t\t\t\tthis.handleResponse({\n\t\t\t\t\tisProfileEnabled: this.isProfileEnabled,\n\t\t\t\t\tstatus: responseData.ocs?.meta?.status,\n\t\t\t\t})\n\t\t\t} catch (e) {\n\t\t\t\tthis.handleResponse({\n\t\t\t\t\terrorMessage: t('settings', 'Unable to update profile enabled state'),\n\t\t\t\t\terror: e,\n\t\t\t\t})\n\t\t\t}\n\t\t},\n\n\t\thandleResponse({ isProfileEnabled, status, errorMessage, error }) {\n\t\t\tif (status === 'ok') {\n\t\t\t\temit('settings:profile-enabled:updated', isProfileEnabled)\n\t\t\t} else {\n\t\t\t\thandleError(error, errorMessage)\n\t\t\t}\n\t\t\tthis.loading = false\n\t\t},\n\t},\n}\n</script>\n","import { render, staticRenderFns } from \"./ProfileCheckbox.vue?vue&type=template&id=061ac04c\"\nimport script from \"./ProfileCheckbox.vue?vue&type=script&lang=js\"\nexport * from \"./ProfileCheckbox.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"checkbox-container\"},[_c('NcCheckboxRadioSwitch',{attrs:{\"type\":\"switch\",\"checked\":_vm.isProfileEnabled,\"loading\":_vm.loading},on:{\"update:checked\":[function($event){_vm.isProfileEnabled=$event},_vm.saveEnableProfile]}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('settings', 'Enable Profile'))+\"\\n\\t\")])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProfilePreviewCard.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProfilePreviewCard.vue?vue&type=script&lang=js\"","<!--\n\t- @copyright 2021, Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @author Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @license GNU AGPL version 3 or any later version\n\t-\n\t- This program is free software: you can redistribute it and/or modify\n\t- it under the terms of the GNU Affero General Public License as\n\t- published by the Free Software Foundation, either version 3 of the\n\t- License, or (at your option) any later version.\n\t-\n\t- This program is distributed in the hope that it will be useful,\n\t- but WITHOUT ANY WARRANTY; without even the implied warranty of\n\t- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\t- GNU Affero General Public License for more details.\n\t-\n\t- You should have received a copy of the GNU Affero General Public License\n\t- along with this program. If not, see <http://www.gnu.org/licenses/>.\n\t-\n-->\n\n<template>\n\t<a class=\"preview-card\"\n\t\t:class=\"{ disabled }\"\n\t\t:href=\"profilePageLink\">\n\t\t<NcAvatar class=\"preview-card__avatar\"\n\t\t\t:user=\"userId\"\n\t\t\t:size=\"48\"\n\t\t\t:show-user-status=\"true\"\n\t\t\t:show-user-status-compact=\"false\"\n\t\t\t:disable-menu=\"true\"\n\t\t\t:disable-tooltip=\"true\" />\n\t\t<div class=\"preview-card__header\">\n\t\t\t<span>{{ displayName }}</span>\n\t\t</div>\n\t\t<div class=\"preview-card__footer\">\n\t\t\t<span>{{ organisation }}</span>\n\t\t</div>\n\t</a>\n</template>\n\n<script>\nimport { getCurrentUser } from '@nextcloud/auth'\nimport { generateUrl } from '@nextcloud/router'\n\nimport NcAvatar from '@nextcloud/vue/dist/Components/NcAvatar.js'\n\nexport default {\n\tname: 'ProfilePreviewCard',\n\n\tcomponents: {\n\t\tNcAvatar,\n\t},\n\n\tprops: {\n\t\tdisplayName: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t\torganisation: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t\tprofileEnabled: {\n\t\t\ttype: Boolean,\n\t\t\trequired: true,\n\t\t},\n\t\tuserId: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t},\n\n\tcomputed: {\n\t\tdisabled() {\n\t\t\treturn !this.profileEnabled\n\t\t},\n\n\t\tprofilePageLink() {\n\t\t\tif (this.profileEnabled) {\n\t\t\t\treturn generateUrl('/u/{userId}', { userId: getCurrentUser().uid })\n\t\t\t}\n\t\t\t// Since an anchor element is used rather than a button for better UX,\n\t\t\t// this hack removes href if the profile is disabled so that disabling pointer-events is not needed to prevent a click from opening a page\n\t\t\t// and to allow the hover event (which disabling pointer-events wouldn't allow) for styling\n\t\t\treturn null\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.preview-card {\n\tdisplay: flex;\n\tflex-direction: column;\n\tposition: relative;\n\twidth: min(100%, 290px);\n\theight: 116px;\n\tmargin: 14px auto;\n\tborder-radius: var(--border-radius-large);\n\tbackground-color: var(--color-main-background);\n\tfont-weight: bold;\n\tbox-shadow: 0 2px 9px var(--color-box-shadow);\n\n\t&:hover,\n\t&:focus,\n\t&:active {\n\t\tbox-shadow: 0 2px 12px var(--color-box-shadow);\n\t}\n\n\t&:focus-visible {\n\t\toutline: var(--color-main-text) solid 1px;\n\t\toutline-offset: 3px;\n\t}\n\n\t&.disabled {\n\t\tfilter: grayscale(1);\n\t\topacity: 0.5;\n\t\tcursor: default;\n\t\tbox-shadow: 0 0 3px var(--color-box-shadow);\n\n\t\t& *,\n\t\t&::v-deep * {\n\t\t\tcursor: default;\n\t\t}\n\t}\n\n\t&__avatar {\n\t\t// Override Avatar component position to fix positioning on rerender\n\t\tposition: absolute !important;\n\t\ttop: 40px;\n\t\tleft: 18px;\n\t\tz-index: 1;\n\n\t\t&:not(.avatardiv--unknown) {\n\t\t\tbox-shadow: 0 0 0 3px var(--color-main-background) !important;\n\t\t}\n\t}\n\n\t&__header,\n\t&__footer {\n\t\tposition: relative;\n\t\twidth: auto;\n\n\t\tspan {\n\t\t\tposition: absolute;\n\t\t\tleft: 78px;\n\t\t\toverflow: hidden;\n\t\t\ttext-overflow: ellipsis;\n\t\t\toverflow-wrap: anywhere;\n\n\t\t\t@supports (-webkit-line-clamp: 2) {\n\t\t\t\tdisplay: -webkit-box;\n\t\t\t\t-webkit-line-clamp: 2;\n\t\t\t\t-webkit-box-orient: vertical;\n\t\t\t}\n\t\t}\n\t}\n\n\t&__header {\n\t\theight: 70px;\n\t\tborder-radius: var(--border-radius-large) var(--border-radius-large) 0 0;\n\t\tbackground-color: var(--color-primary-element);\n\n\t\tspan {\n\t\t\tbottom: 0;\n\t\t\tcolor: var(--color-primary-element-text);\n\t\t\tfont-size: 18px;\n\t\t\tfont-weight: bold;\n\t\t\tmargin: 0 4px 8px 0;\n\t\t}\n\t}\n\n\t&__footer {\n\t\theight: 46px;\n\n\t\tspan {\n\t\t\ttop: 0;\n\t\t\tcolor: var(--color-text-maxcontrast);\n\t\t\tfont-size: 14px;\n\t\t\tfont-weight: normal;\n\t\t\tmargin: 4px 4px 0 0;\n\t\t\tline-height: 1.3;\n\t\t}\n\t}\n}\n</style>\n","\n import API from \"!../../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../../node_modules/css-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProfilePreviewCard.vue?vue&type=style&index=0&id=2e2362e7&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../../node_modules/css-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProfilePreviewCard.vue?vue&type=style&index=0&id=2e2362e7&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./ProfilePreviewCard.vue?vue&type=template&id=2e2362e7&scoped=true\"\nimport script from \"./ProfilePreviewCard.vue?vue&type=script&lang=js\"\nexport * from \"./ProfilePreviewCard.vue?vue&type=script&lang=js\"\nimport style0 from \"./ProfilePreviewCard.vue?vue&type=style&index=0&id=2e2362e7&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"2e2362e7\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('a',{staticClass:\"preview-card\",class:{ disabled: _vm.disabled },attrs:{\"href\":_vm.profilePageLink}},[_c('NcAvatar',{staticClass:\"preview-card__avatar\",attrs:{\"user\":_vm.userId,\"size\":48,\"show-user-status\":true,\"show-user-status-compact\":false,\"disable-menu\":true,\"disable-tooltip\":true}}),_vm._v(\" \"),_c('div',{staticClass:\"preview-card__header\"},[_c('span',[_vm._v(_vm._s(_vm.displayName))])]),_vm._v(\" \"),_c('div',{staticClass:\"preview-card__footer\"},[_c('span',[_vm._v(_vm._s(_vm.organisation))])])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n\t- @copyright 2021, Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @author Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @license GNU AGPL version 3 or any later version\n\t-\n\t- This program is free software: you can redistribute it and/or modify\n\t- it under the terms of the GNU Affero General Public License as\n\t- published by the Free Software Foundation, either version 3 of the\n\t- License, or (at your option) any later version.\n\t-\n\t- This program is distributed in the hope that it will be useful,\n\t- but WITHOUT ANY WARRANTY; without even the implied warranty of\n\t- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\t- GNU Affero General Public License for more details.\n\t-\n\t- You should have received a copy of the GNU Affero General Public License\n\t- along with this program. If not, see <http://www.gnu.org/licenses/>.\n\t-\n-->\n\n<template>\n\t<section>\n\t\t<HeaderBar :is-heading=\"true\" :readable=\"propertyReadable\" />\n\n\t\t<ProfileCheckbox :profile-enabled.sync=\"profileEnabled\" />\n\n\t\t<ProfilePreviewCard :organisation=\"organisation\"\n\t\t\t:display-name=\"displayName\"\n\t\t\t:profile-enabled=\"profileEnabled\"\n\t\t\t:user-id=\"userId\" />\n\n\t\t<EditProfileAnchorLink :profile-enabled=\"profileEnabled\" />\n\t</section>\n</template>\n\n<script>\nimport { loadState } from '@nextcloud/initial-state'\nimport { subscribe, unsubscribe } from '@nextcloud/event-bus'\n\nimport EditProfileAnchorLink from './EditProfileAnchorLink.vue'\nimport HeaderBar from '../shared/HeaderBar.vue'\nimport ProfileCheckbox from './ProfileCheckbox.vue'\nimport ProfilePreviewCard from './ProfilePreviewCard.vue'\n\nimport { ACCOUNT_PROPERTY_READABLE_ENUM } from '../../../constants/AccountPropertyConstants.js'\n\nconst {\n\torganisation: { value: organisation },\n\tdisplayName: { value: displayName },\n\tprofileEnabled,\n\tuserId,\n} = loadState('settings', 'personalInfoParameters', {})\n\nexport default {\n\tname: 'ProfileSection',\n\n\tcomponents: {\n\t\tEditProfileAnchorLink,\n\t\tHeaderBar,\n\t\tProfileCheckbox,\n\t\tProfilePreviewCard,\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tpropertyReadable: ACCOUNT_PROPERTY_READABLE_ENUM.PROFILE_ENABLED,\n\t\t\torganisation,\n\t\t\tdisplayName,\n\t\t\tprofileEnabled,\n\t\t\tuserId,\n\t\t}\n\t},\n\n\tmounted() {\n\t\tsubscribe('settings:display-name:updated', this.handleDisplayNameUpdate)\n\t\tsubscribe('settings:organisation:updated', this.handleOrganisationUpdate)\n\t},\n\n\tbeforeDestroy() {\n\t\tunsubscribe('settings:display-name:updated', this.handleDisplayNameUpdate)\n\t\tunsubscribe('settings:organisation:updated', this.handleOrganisationUpdate)\n\t},\n\n\tmethods: {\n\t\thandleDisplayNameUpdate(displayName) {\n\t\t\tthis.displayName = displayName\n\t\t},\n\n\t\thandleOrganisationUpdate(organisation) {\n\t\t\tthis.organisation = organisation\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\nsection {\n\tpadding: 10px 10px;\n\n\t&::v-deep button:disabled {\n\t\tcursor: default;\n\t}\n}\n</style>\n","import mod from \"-!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProfileSection.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProfileSection.vue?vue&type=script&lang=js\"","\n import API from \"!../../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../../node_modules/css-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProfileSection.vue?vue&type=style&index=0&id=e9466260&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../../node_modules/css-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProfileSection.vue?vue&type=style&index=0&id=e9466260&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./ProfileSection.vue?vue&type=template&id=e9466260&scoped=true\"\nimport script from \"./ProfileSection.vue?vue&type=script&lang=js\"\nexport * from \"./ProfileSection.vue?vue&type=script&lang=js\"\nimport style0 from \"./ProfileSection.vue?vue&type=style&index=0&id=e9466260&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"e9466260\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('section',[_c('HeaderBar',{attrs:{\"is-heading\":true,\"readable\":_vm.propertyReadable}}),_vm._v(\" \"),_c('ProfileCheckbox',{attrs:{\"profile-enabled\":_vm.profileEnabled},on:{\"update:profileEnabled\":function($event){_vm.profileEnabled=$event},\"update:profile-enabled\":function($event){_vm.profileEnabled=$event}}}),_vm._v(\" \"),_c('ProfilePreviewCard',{attrs:{\"organisation\":_vm.organisation,\"display-name\":_vm.displayName,\"profile-enabled\":_vm.profileEnabled,\"user-id\":_vm.userId}}),_vm._v(\" \"),_c('EditProfileAnchorLink',{attrs:{\"profile-enabled\":_vm.profileEnabled}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n\t- @copyright 2022 Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @author Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @license AGPL-3.0-or-later\n\t-\n\t- This program is free software: you can redistribute it and/or modify\n\t- it under the terms of the GNU Affero General Public License as\n\t- published by the Free Software Foundation, either version 3 of the\n\t- License, or (at your option) any later version.\n\t-\n\t- This program is distributed in the hope that it will be useful,\n\t- but WITHOUT ANY WARRANTY; without even the implied warranty of\n\t- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\t- GNU Affero General Public License for more details.\n\t-\n\t- You should have received a copy of the GNU Affero General Public License\n\t- along with this program. If not, see <http://www.gnu.org/licenses/>.\n\t-\n-->\n\n<template>\n\t<AccountPropertySection v-bind.sync=\"organisation\"\n\t\tautocomplete=\"organization\"\n\t\t:placeholder=\"t('settings', 'Your organisation')\" />\n</template>\n\n<script>\nimport { loadState } from '@nextcloud/initial-state'\n\nimport AccountPropertySection from './shared/AccountPropertySection.vue'\n\nimport { NAME_READABLE_ENUM } from '../../constants/AccountPropertyConstants.js'\n\nconst { organisation } = loadState('settings', 'personalInfoParameters', {})\n\nexport default {\n\tname: 'OrganisationSection',\n\n\tcomponents: {\n\t\tAccountPropertySection,\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\torganisation: { ...organisation, readable: NAME_READABLE_ENUM[organisation.name] },\n\t\t}\n\t},\n}\n</script>\n","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OrganisationSection.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OrganisationSection.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./OrganisationSection.vue?vue&type=template&id=0d2e4355\"\nimport script from \"./OrganisationSection.vue?vue&type=script&lang=js\"\nexport * from \"./OrganisationSection.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('AccountPropertySection',_vm._b({attrs:{\"autocomplete\":\"organization\",\"placeholder\":_vm.t('settings', 'Your organisation')}},'AccountPropertySection',_vm.organisation,false,true))\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n\t- @copyright 2022 Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @author Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @license AGPL-3.0-or-later\n\t-\n\t- This program is free software: you can redistribute it and/or modify\n\t- it under the terms of the GNU Affero General Public License as\n\t- published by the Free Software Foundation, either version 3 of the\n\t- License, or (at your option) any later version.\n\t-\n\t- This program is distributed in the hope that it will be useful,\n\t- but WITHOUT ANY WARRANTY; without even the implied warranty of\n\t- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\t- GNU Affero General Public License for more details.\n\t-\n\t- You should have received a copy of the GNU Affero General Public License\n\t- along with this program. If not, see <http://www.gnu.org/licenses/>.\n\t-\n-->\n\n<template>\n\t<AccountPropertySection v-bind.sync=\"role\"\n\t\tautocomplete=\"organization-title\"\n\t\t:placeholder=\"t('settings', 'Your role')\" />\n</template>\n\n<script>\nimport { loadState } from '@nextcloud/initial-state'\n\nimport AccountPropertySection from './shared/AccountPropertySection.vue'\n\nimport { NAME_READABLE_ENUM } from '../../constants/AccountPropertyConstants.js'\n\nconst { role } = loadState('settings', 'personalInfoParameters', {})\n\nexport default {\n\tname: 'RoleSection',\n\n\tcomponents: {\n\t\tAccountPropertySection,\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\trole: { ...role, readable: NAME_READABLE_ENUM[role.name] },\n\t\t}\n\t},\n}\n</script>\n","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RoleSection.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RoleSection.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./RoleSection.vue?vue&type=template&id=47d32f32\"\nimport script from \"./RoleSection.vue?vue&type=script&lang=js\"\nexport * from \"./RoleSection.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('AccountPropertySection',_vm._b({attrs:{\"autocomplete\":\"organization-title\",\"placeholder\":_vm.t('settings', 'Your role')}},'AccountPropertySection',_vm.role,false,true))\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n\t- @copyright 2022 Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @author Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @license AGPL-3.0-or-later\n\t-\n\t- This program is free software: you can redistribute it and/or modify\n\t- it under the terms of the GNU Affero General Public License as\n\t- published by the Free Software Foundation, either version 3 of the\n\t- License, or (at your option) any later version.\n\t-\n\t- This program is distributed in the hope that it will be useful,\n\t- but WITHOUT ANY WARRANTY; without even the implied warranty of\n\t- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\t- GNU Affero General Public License for more details.\n\t-\n\t- You should have received a copy of the GNU Affero General Public License\n\t- along with this program. If not, see <http://www.gnu.org/licenses/>.\n\t-\n-->\n\n<template>\n\t<AccountPropertySection v-bind.sync=\"headline\"\n\t\t:placeholder=\"t('settings', 'Your headline')\" />\n</template>\n\n<script>\nimport { loadState } from '@nextcloud/initial-state'\n\nimport AccountPropertySection from './shared/AccountPropertySection.vue'\n\nimport { NAME_READABLE_ENUM } from '../../constants/AccountPropertyConstants.js'\n\nconst { headline } = loadState('settings', 'personalInfoParameters', {})\n\nexport default {\n\tname: 'HeadlineSection',\n\n\tcomponents: {\n\t\tAccountPropertySection,\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\theadline: { ...headline, readable: NAME_READABLE_ENUM[headline.name] },\n\t\t}\n\t},\n}\n</script>\n","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HeadlineSection.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HeadlineSection.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./HeadlineSection.vue?vue&type=template&id=0f3859ee\"\nimport script from \"./HeadlineSection.vue?vue&type=script&lang=js\"\nexport * from \"./HeadlineSection.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('AccountPropertySection',_vm._b({attrs:{\"placeholder\":_vm.t('settings', 'Your headline')}},'AccountPropertySection',_vm.headline,false,true))\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n\t- @copyright 2022 Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @author Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @license AGPL-3.0-or-later\n\t-\n\t- This program is free software: you can redistribute it and/or modify\n\t- it under the terms of the GNU Affero General Public License as\n\t- published by the Free Software Foundation, either version 3 of the\n\t- License, or (at your option) any later version.\n\t-\n\t- This program is distributed in the hope that it will be useful,\n\t- but WITHOUT ANY WARRANTY; without even the implied warranty of\n\t- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\t- GNU Affero General Public License for more details.\n\t-\n\t- You should have received a copy of the GNU Affero General Public License\n\t- along with this program. If not, see <http://www.gnu.org/licenses/>.\n\t-\n-->\n\n<template>\n\t<AccountPropertySection v-bind.sync=\"biography\"\n\t\t:placeholder=\"t('settings', 'Your biography')\"\n\t\t:multi-line=\"true\" />\n</template>\n\n<script>\nimport { loadState } from '@nextcloud/initial-state'\n\nimport AccountPropertySection from './shared/AccountPropertySection.vue'\n\nimport { NAME_READABLE_ENUM } from '../../constants/AccountPropertyConstants.js'\n\nconst { biography } = loadState('settings', 'personalInfoParameters', {})\n\nexport default {\n\tname: 'BiographySection',\n\n\tcomponents: {\n\t\tAccountPropertySection,\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tbiography: { ...biography, readable: NAME_READABLE_ENUM[biography.name] },\n\t\t}\n\t},\n}\n</script>\n","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BiographySection.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BiographySection.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./BiographySection.vue?vue&type=template&id=a916ca60\"\nimport script from \"./BiographySection.vue?vue&type=script&lang=js\"\nexport * from \"./BiographySection.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('AccountPropertySection',_vm._b({attrs:{\"placeholder\":_vm.t('settings', 'Your biography'),\"multi-line\":true}},'AccountPropertySection',_vm.biography,false,true))\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('section',{style:({ marginLeft: _vm.marginLeft }),attrs:{\"id\":\"profile-visibility\"}},[_c('HeaderBar',{attrs:{\"is-heading\":true,\"readable\":_vm.heading}}),_vm._v(\" \"),_c('em',{class:{ disabled: _vm.disabled }},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('settings', 'The more restrictive setting of either visibility or scope is respected on your Profile. For example, if visibility is set to \"Show to everyone\" and scope is set to \"Private\", \"Private\" is respected.'))+\"\\n\\t\")]),_vm._v(\" \"),_c('div',{staticClass:\"visibility-dropdowns\",style:({\n\t\t\tgridTemplateRows: `repeat(${_vm.rows}, 44px)`,\n\t\t})},_vm._l((_vm.visibilityParams),function(param){return _c('VisibilityDropdown',{key:param.id,attrs:{\"param-id\":param.id,\"display-id\":param.displayId,\"visibility\":param.visibility},on:{\"update:visibility\":function($event){return _vm.$set(param, \"visibility\", $event)}}})}),1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * @copyright 2021 Christopher Ng <chrng8@gmail.com>\n *\n * @author Christopher Ng <chrng8@gmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nimport axios from '@nextcloud/axios'\nimport { getCurrentUser } from '@nextcloud/auth'\nimport { generateOcsUrl } from '@nextcloud/router'\nimport { confirmPassword } from '@nextcloud/password-confirmation'\nimport '@nextcloud/password-confirmation/dist/style.css'\n\n/**\n * Save the visibility of the profile parameter\n *\n * @param {string} paramId the profile parameter ID\n * @param {string} visibility the visibility\n * @return {object}\n */\nexport const saveProfileParameterVisibility = async (paramId, visibility) => {\n\tconst userId = getCurrentUser().uid\n\tconst url = generateOcsUrl('/profile/{userId}', { userId })\n\n\tawait confirmPassword()\n\n\tconst res = await axios.put(url, {\n\t\tparamId,\n\t\tvisibility,\n\t})\n\n\treturn res.data\n}\n\n/**\n * Save profile default\n *\n * @param {boolean} isEnabled the default\n * @return {object}\n */\nexport const saveProfileDefault = async (isEnabled) => {\n\t// Convert to string for compatibility\n\tisEnabled = isEnabled ? '1' : '0'\n\n\tconst url = generateOcsUrl('/apps/provisioning_api/api/v1/config/apps/{appId}/{key}', {\n\t\tappId: 'settings',\n\t\tkey: 'profile_enabled_by_default',\n\t})\n\n\tawait confirmPassword()\n\n\tconst res = await axios.post(url, {\n\t\tvalue: isEnabled,\n\t})\n\n\treturn res.data\n}\n","/**\n * @copyright 2021 Christopher Ng <chrng8@gmail.com>\n *\n * @author Christopher Ng <chrng8@gmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\n/*\n * SYNC to be kept in sync with `core/Db/ProfileConfig.php`\n */\n\n/** Enum of profile visibility constants */\nexport const VISIBILITY_ENUM = Object.freeze({\n\tSHOW: 'show',\n\tSHOW_USERS_ONLY: 'show_users_only',\n\tHIDE: 'hide',\n})\n\n/**\n * Enum of profile visibility constants to properties\n */\nexport const VISIBILITY_PROPERTY_ENUM = Object.freeze({\n\t[VISIBILITY_ENUM.SHOW]: {\n\t\tname: VISIBILITY_ENUM.SHOW,\n\t\tlabel: t('settings', 'Show to everyone'),\n\t},\n\t[VISIBILITY_ENUM.SHOW_USERS_ONLY]: {\n\t\tname: VISIBILITY_ENUM.SHOW_USERS_ONLY,\n\t\tlabel: t('settings', 'Show to logged in users only'),\n\t},\n\t[VISIBILITY_ENUM.HIDE]: {\n\t\tname: VISIBILITY_ENUM.HIDE,\n\t\tlabel: t('settings', 'Hide'),\n\t},\n})\n","<!--\n\t- @copyright 2021 Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @author Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @license GNU AGPL version 3 or any later version\n\t-\n\t- This program is free software: you can redistribute it and/or modify\n\t- it under the terms of the GNU Affero General Public License as\n\t- published by the Free Software Foundation, either version 3 of the\n\t- License, or (at your option) any later version.\n\t-\n\t- This program is distributed in the hope that it will be useful,\n\t- but WITHOUT ANY WARRANTY; without even the implied warranty of\n\t- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\t- GNU Affero General Public License for more details.\n\t-\n\t- You should have received a copy of the GNU Affero General Public License\n\t- along with this program. If not, see <http://www.gnu.org/licenses/>.\n\t-\n-->\n\n<template>\n\t<div class=\"visibility-container\"\n\t\t:class=\"{ disabled }\">\n\t\t<label :for=\"inputId\">\n\t\t\t{{ displayId }}\n\t\t</label>\n\t\t<NcSelect :input-id=\"inputId\"\n\t\t\tclass=\"visibility-container__select\"\n\t\t\t:clearable=\"false\"\n\t\t\t:options=\"visibilityOptions\"\n\t\t\t:value=\"visibilityObject\"\n\t\t\tlabel-outside\n\t\t\t@option:selected=\"onVisibilityChange\" />\n\t</div>\n</template>\n\n<script>\nimport { loadState } from '@nextcloud/initial-state'\nimport { subscribe, unsubscribe } from '@nextcloud/event-bus'\n\nimport NcSelect from '@nextcloud/vue/dist/Components/NcSelect.js'\n\nimport { saveProfileParameterVisibility } from '../../../service/ProfileService.js'\nimport { VISIBILITY_PROPERTY_ENUM } from '../../../constants/ProfileConstants.js'\nimport { handleError } from '../../../utils/handlers.js'\n\nconst { profileEnabled } = loadState('settings', 'personalInfoParameters', false)\n\nexport default {\n\tname: 'VisibilityDropdown',\n\n\tcomponents: {\n\t\tNcSelect,\n\t},\n\n\tprops: {\n\t\tparamId: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t\tdisplayId: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t\tvisibility: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tinitialVisibility: this.visibility,\n\t\t\tprofileEnabled,\n\t\t}\n\t},\n\n\tcomputed: {\n\t\tdisabled() {\n\t\t\treturn !this.profileEnabled\n\t\t},\n\n\t\tinputId() {\n\t\t\treturn `profile-visibility-${this.paramId}`\n\t\t},\n\n\t\tvisibilityObject() {\n\t\t\treturn VISIBILITY_PROPERTY_ENUM[this.visibility]\n\t\t},\n\n\t\tvisibilityOptions() {\n\t\t\treturn Object.values(VISIBILITY_PROPERTY_ENUM)\n\t\t},\n\t},\n\n\tmounted() {\n\t\tsubscribe('settings:profile-enabled:updated', this.handleProfileEnabledUpdate)\n\t},\n\n\tbeforeDestroy() {\n\t\tunsubscribe('settings:profile-enabled:updated', this.handleProfileEnabledUpdate)\n\t},\n\n\tmethods: {\n\t\tasync onVisibilityChange(visibilityObject) {\n\t\t\t// This check is needed as the argument is null when selecting the same option\n\t\t\tif (visibilityObject !== null) {\n\t\t\t\tconst { name: visibility } = visibilityObject\n\t\t\t\tthis.$emit('update:visibility', visibility)\n\n\t\t\t\tif (visibility !== '') {\n\t\t\t\t\tawait this.updateVisibility(visibility)\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\tasync updateVisibility(visibility) {\n\t\t\ttry {\n\t\t\t\tconst responseData = await saveProfileParameterVisibility(this.paramId, visibility)\n\t\t\t\tthis.handleResponse({\n\t\t\t\t\tvisibility,\n\t\t\t\t\tstatus: responseData.ocs?.meta?.status,\n\t\t\t\t})\n\t\t\t} catch (e) {\n\t\t\t\tthis.handleResponse({\n\t\t\t\t\terrorMessage: t('settings', 'Unable to update visibility of {displayId}', { displayId: this.displayId }),\n\t\t\t\t\terror: e,\n\t\t\t\t})\n\t\t\t}\n\t\t},\n\n\t\thandleResponse({ visibility, status, errorMessage, error }) {\n\t\t\tif (status === 'ok') {\n\t\t\t\t// Ensure that local state reflects server state\n\t\t\t\tthis.initialVisibility = visibility\n\t\t\t} else {\n\t\t\t\thandleError(error, errorMessage)\n\t\t\t}\n\t\t},\n\n\t\thandleProfileEnabledUpdate(profileEnabled) {\n\t\t\tthis.profileEnabled = profileEnabled\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.visibility-container {\n\tdisplay: flex;\n\tflex-wrap: wrap;\n\n\t&.disabled {\n\t\tfilter: grayscale(1);\n\t\topacity: 0.5;\n\t\tcursor: default;\n\t\tpointer-events: none;\n\n\t\t& *,\n\t\t&::v-deep * {\n\t\t\tcursor: default;\n\t\t\tpointer-events: none;\n\t\t}\n\t}\n\n\tlabel {\n\t\tcolor: var(--color-text-lighter);\n\t\twidth: 150px;\n\t\tline-height: 50px;\n\t}\n\n\t&__select {\n\t\twidth: 270px;\n\t\tmax-width: 40vw;\n\t}\n}\n</style>\n","import mod from \"-!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VisibilityDropdown.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VisibilityDropdown.vue?vue&type=script&lang=js\"","\n import API from \"!../../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../../node_modules/css-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VisibilityDropdown.vue?vue&type=style&index=0&id=fd4d0aac&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../../node_modules/css-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VisibilityDropdown.vue?vue&type=style&index=0&id=fd4d0aac&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./VisibilityDropdown.vue?vue&type=template&id=fd4d0aac&scoped=true\"\nimport script from \"./VisibilityDropdown.vue?vue&type=script&lang=js\"\nexport * from \"./VisibilityDropdown.vue?vue&type=script&lang=js\"\nimport style0 from \"./VisibilityDropdown.vue?vue&type=style&index=0&id=fd4d0aac&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"fd4d0aac\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"visibility-container\",class:{ disabled: _vm.disabled }},[_c('label',{attrs:{\"for\":_vm.inputId}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.displayId)+\"\\n\\t\")]),_vm._v(\" \"),_c('NcSelect',{staticClass:\"visibility-container__select\",attrs:{\"input-id\":_vm.inputId,\"clearable\":false,\"options\":_vm.visibilityOptions,\"value\":_vm.visibilityObject,\"label-outside\":\"\"},on:{\"option:selected\":_vm.onVisibilityChange}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n\t- @copyright 2021 Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @author Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @license GNU AGPL version 3 or any later version\n\t-\n\t- This program is free software: you can redistribute it and/or modify\n\t- it under the terms of the GNU Affero General Public License as\n\t- published by the Free Software Foundation, either version 3 of the\n\t- License, or (at your option) any later version.\n\t-\n\t- This program is distributed in the hope that it will be useful,\n\t- but WITHOUT ANY WARRANTY; without even the implied warranty of\n\t- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\t- GNU Affero General Public License for more details.\n\t-\n\t- You should have received a copy of the GNU Affero General Public License\n\t- along with this program. If not, see <http://www.gnu.org/licenses/>.\n\t-\n-->\n\n<template>\n\t<!-- TODO remove this inline margin placeholder once the settings layout is updated -->\n\t<section id=\"profile-visibility\"\n\t\t:style=\"{ marginLeft }\">\n\t\t<HeaderBar :is-heading=\"true\" :readable=\"heading\" />\n\n\t\t<em :class=\"{ disabled }\">\n\t\t\t{{ t('settings', 'The more restrictive setting of either visibility or scope is respected on your Profile. For example, if visibility is set to \"Show to everyone\" and scope is set to \"Private\", \"Private\" is respected.') }}\n\t\t</em>\n\n\t\t<div class=\"visibility-dropdowns\"\n\t\t\t:style=\"{\n\t\t\t\tgridTemplateRows: `repeat(${rows}, 44px)`,\n\t\t\t}\">\n\t\t\t<VisibilityDropdown v-for=\"param in visibilityParams\"\n\t\t\t\t:key=\"param.id\"\n\t\t\t\t:param-id=\"param.id\"\n\t\t\t\t:display-id=\"param.displayId\"\n\t\t\t\t:visibility.sync=\"param.visibility\" />\n\t\t</div>\n\t</section>\n</template>\n\n<script>\nimport { loadState } from '@nextcloud/initial-state'\nimport { subscribe, unsubscribe } from '@nextcloud/event-bus'\n\nimport HeaderBar from '../shared/HeaderBar.vue'\nimport VisibilityDropdown from './VisibilityDropdown.vue'\nimport { PROFILE_READABLE_ENUM } from '../../../constants/AccountPropertyConstants.js'\n\nconst { profileConfig } = loadState('settings', 'profileParameters', {})\nconst { profileEnabled } = loadState('settings', 'personalInfoParameters', false)\n\nconst compareParams = (a, b) => {\n\tif (a.appId === b.appId || (a.appId !== 'core' && b.appId !== 'core')) {\n\t\treturn a.displayId.localeCompare(b.displayId)\n\t} else if (a.appId === 'core') {\n\t\treturn 1\n\t} else {\n\t\treturn -1\n\t}\n}\n\nexport default {\n\tname: 'ProfileVisibilitySection',\n\n\tcomponents: {\n\t\tHeaderBar,\n\t\tVisibilityDropdown,\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\theading: PROFILE_READABLE_ENUM.PROFILE_VISIBILITY,\n\t\t\tprofileEnabled,\n\t\t\tvisibilityParams: Object.entries(profileConfig)\n\t\t\t\t.map(([paramId, { appId, displayId, visibility }]) => ({ id: paramId, appId, displayId, visibility }))\n\t\t\t\t.sort(compareParams),\n\t\t\t// TODO remove this when not used once the settings layout is updated\n\t\t\tmarginLeft: window.matchMedia('(min-width: 1600px)').matches\n\t\t\t\t? window.getComputedStyle(document.getElementById('vue-avatar-section')).getPropertyValue('width').trim()\n\t\t\t\t: '0px',\n\t\t}\n\t},\n\n\tcomputed: {\n\t\tdisabled() {\n\t\t\treturn !this.profileEnabled\n\t\t},\n\n\t\trows() {\n\t\t\treturn Math.ceil(this.visibilityParams.length / 2)\n\t\t},\n\t},\n\n\tmounted() {\n\t\tsubscribe('settings:profile-enabled:updated', this.handleProfileEnabledUpdate)\n\t\t// TODO remove this when not used once the settings layout is updated\n\t\twindow.onresize = () => {\n\t\t\tthis.marginLeft = window.matchMedia('(min-width: 1600px)').matches\n\t\t\t\t? window.getComputedStyle(document.getElementById('vue-avatar-section')).getPropertyValue('width').trim()\n\t\t\t\t: '0px'\n\t\t}\n\t},\n\n\tbeforeDestroy() {\n\t\tunsubscribe('settings:profile-enabled:updated', this.handleProfileEnabledUpdate)\n\t},\n\n\tmethods: {\n\t\thandleProfileEnabledUpdate(profileEnabled) {\n\t\t\tthis.profileEnabled = profileEnabled\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\nsection {\n\tpadding: 30px;\n\tmax-width: 900px;\n\twidth: 100%;\n\n\tem {\n\t\tdisplay: block;\n\t\tmargin: 16px 0;\n\n\t\t&.disabled {\n\t\t\tfilter: grayscale(1);\n\t\t\topacity: 0.5;\n\t\t\tcursor: default;\n\t\t\tpointer-events: none;\n\n\t\t\t& *,\n\t\t\t&::v-deep * {\n\t\t\t\tcursor: default;\n\t\t\t\tpointer-events: none;\n\t\t\t}\n\t\t}\n\t}\n}\n</style>\n","import mod from \"-!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProfileVisibilitySection.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProfileVisibilitySection.vue?vue&type=script&lang=js\"","\n import API from \"!../../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../../node_modules/css-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProfileVisibilitySection.vue?vue&type=style&index=0&id=199109a6&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../../node_modules/css-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProfileVisibilitySection.vue?vue&type=style&index=0&id=199109a6&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./ProfileVisibilitySection.vue?vue&type=template&id=199109a6&scoped=true\"\nimport script from \"./ProfileVisibilitySection.vue?vue&type=script&lang=js\"\nexport * from \"./ProfileVisibilitySection.vue?vue&type=script&lang=js\"\nimport style0 from \"./ProfileVisibilitySection.vue?vue&type=style&index=0&id=199109a6&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"199109a6\",\n null\n \n)\n\nexport default component.exports","/**\n * @copyright 2021, Christopher Ng <chrng8@gmail.com>\n *\n * @author Christopher Ng <chrng8@gmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nimport Vue from 'vue'\nimport { getRequestToken } from '@nextcloud/auth'\nimport { loadState } from '@nextcloud/initial-state'\nimport { translate as t } from '@nextcloud/l10n'\n\nimport AvatarSection from './components/PersonalInfo/AvatarSection.vue'\nimport DetailsSection from './components/PersonalInfo/DetailsSection.vue'\nimport DisplayNameSection from './components/PersonalInfo/DisplayNameSection.vue'\nimport EmailSection from './components/PersonalInfo/EmailSection/EmailSection.vue'\nimport PhoneSection from './components/PersonalInfo/PhoneSection.vue'\nimport LocationSection from './components/PersonalInfo/LocationSection.vue'\nimport WebsiteSection from './components/PersonalInfo/WebsiteSection.vue'\nimport TwitterSection from './components/PersonalInfo/TwitterSection.vue'\nimport FediverseSection from './components/PersonalInfo/FediverseSection.vue'\nimport LanguageSection from './components/PersonalInfo/LanguageSection/LanguageSection.vue'\nimport LocaleSection from './components/PersonalInfo/LocaleSection/LocaleSection.vue'\nimport ProfileSection from './components/PersonalInfo/ProfileSection/ProfileSection.vue'\nimport OrganisationSection from './components/PersonalInfo/OrganisationSection.vue'\nimport RoleSection from './components/PersonalInfo/RoleSection.vue'\nimport HeadlineSection from './components/PersonalInfo/HeadlineSection.vue'\nimport BiographySection from './components/PersonalInfo/BiographySection.vue'\nimport ProfileVisibilitySection from './components/PersonalInfo/ProfileVisibilitySection/ProfileVisibilitySection.vue'\n\n__webpack_nonce__ = btoa(getRequestToken())\n\nconst profileEnabledGlobally = loadState('settings', 'profileEnabledGlobally', true)\n\nVue.mixin({\n\tmethods: {\n\t\tt,\n\t},\n})\n\nconst AvatarView = Vue.extend(AvatarSection)\nconst DetailsView = Vue.extend(DetailsSection)\nconst DisplayNameView = Vue.extend(DisplayNameSection)\nconst EmailView = Vue.extend(EmailSection)\nconst PhoneView = Vue.extend(PhoneSection)\nconst LocationView = Vue.extend(LocationSection)\nconst WebsiteView = Vue.extend(WebsiteSection)\nconst TwitterView = Vue.extend(TwitterSection)\nconst FediverseView = Vue.extend(FediverseSection)\nconst LanguageView = Vue.extend(LanguageSection)\nconst LocaleView = Vue.extend(LocaleSection)\n\nnew AvatarView().$mount('#vue-avatar-section')\nnew DetailsView().$mount('#vue-details-section')\nnew DisplayNameView().$mount('#vue-displayname-section')\nnew EmailView().$mount('#vue-email-section')\nnew PhoneView().$mount('#vue-phone-section')\nnew LocationView().$mount('#vue-location-section')\nnew WebsiteView().$mount('#vue-website-section')\nnew TwitterView().$mount('#vue-twitter-section')\nnew FediverseView().$mount('#vue-fediverse-section')\nnew LanguageView().$mount('#vue-language-section')\nnew LocaleView().$mount('#vue-locale-section')\n\nif (profileEnabledGlobally) {\n\tconst ProfileView = Vue.extend(ProfileSection)\n\tconst OrganisationView = Vue.extend(OrganisationSection)\n\tconst RoleView = Vue.extend(RoleSection)\n\tconst HeadlineView = Vue.extend(HeadlineSection)\n\tconst BiographyView = Vue.extend(BiographySection)\n\tconst ProfileVisibilityView = Vue.extend(ProfileVisibilitySection)\n\n\tnew ProfileView().$mount('#vue-profile-section')\n\tnew OrganisationView().$mount('#vue-organisation-section')\n\tnew RoleView().$mount('#vue-role-section')\n\tnew HeadlineView().$mount('#vue-headline-section')\n\tnew BiographyView().$mount('#vue-biography-section')\n\tnew ProfileVisibilityView().$mount('#vue-profile-visibility-section')\n}\n","/*!\n * Cropper.js v1.6.1\n * https://fengyuanchen.github.io/cropperjs\n *\n * Copyright 2015-present Chen Fengyuan\n * Released under the MIT license\n *\n * Date: 2023-09-17T03:44:19.860Z\n */\n\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Cropper = factory());\n})(this, (function () { 'use strict';\n\n function ownKeys(e, r) {\n var t = Object.keys(e);\n if (Object.getOwnPropertySymbols) {\n var o = Object.getOwnPropertySymbols(e);\n r && (o = o.filter(function (r) {\n return Object.getOwnPropertyDescriptor(e, r).enumerable;\n })), t.push.apply(t, o);\n }\n return t;\n }\n function _objectSpread2(e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = null != arguments[r] ? arguments[r] : {};\n r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {\n _defineProperty(e, r, t[r]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {\n Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n });\n }\n return e;\n }\n function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n }\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor);\n }\n }\n function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n }\n function _defineProperty(obj, key, value) {\n key = _toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n }\n function _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n }\n function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n }\n function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n }\n function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n }\n function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n return arr2;\n }\n function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n function _toPrimitive(input, hint) {\n if (typeof input !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (typeof res !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n }\n function _toPropertyKey(arg) {\n var key = _toPrimitive(arg, \"string\");\n return typeof key === \"symbol\" ? key : String(key);\n }\n\n var IS_BROWSER = typeof window !== 'undefined' && typeof window.document !== 'undefined';\n var WINDOW = IS_BROWSER ? window : {};\n var IS_TOUCH_DEVICE = IS_BROWSER && WINDOW.document.documentElement ? 'ontouchstart' in WINDOW.document.documentElement : false;\n var HAS_POINTER_EVENT = IS_BROWSER ? 'PointerEvent' in WINDOW : false;\n var NAMESPACE = 'cropper';\n\n // Actions\n var ACTION_ALL = 'all';\n var ACTION_CROP = 'crop';\n var ACTION_MOVE = 'move';\n var ACTION_ZOOM = 'zoom';\n var ACTION_EAST = 'e';\n var ACTION_WEST = 'w';\n var ACTION_SOUTH = 's';\n var ACTION_NORTH = 'n';\n var ACTION_NORTH_EAST = 'ne';\n var ACTION_NORTH_WEST = 'nw';\n var ACTION_SOUTH_EAST = 'se';\n var ACTION_SOUTH_WEST = 'sw';\n\n // Classes\n var CLASS_CROP = \"\".concat(NAMESPACE, \"-crop\");\n var CLASS_DISABLED = \"\".concat(NAMESPACE, \"-disabled\");\n var CLASS_HIDDEN = \"\".concat(NAMESPACE, \"-hidden\");\n var CLASS_HIDE = \"\".concat(NAMESPACE, \"-hide\");\n var CLASS_INVISIBLE = \"\".concat(NAMESPACE, \"-invisible\");\n var CLASS_MODAL = \"\".concat(NAMESPACE, \"-modal\");\n var CLASS_MOVE = \"\".concat(NAMESPACE, \"-move\");\n\n // Data keys\n var DATA_ACTION = \"\".concat(NAMESPACE, \"Action\");\n var DATA_PREVIEW = \"\".concat(NAMESPACE, \"Preview\");\n\n // Drag modes\n var DRAG_MODE_CROP = 'crop';\n var DRAG_MODE_MOVE = 'move';\n var DRAG_MODE_NONE = 'none';\n\n // Events\n var EVENT_CROP = 'crop';\n var EVENT_CROP_END = 'cropend';\n var EVENT_CROP_MOVE = 'cropmove';\n var EVENT_CROP_START = 'cropstart';\n var EVENT_DBLCLICK = 'dblclick';\n var EVENT_TOUCH_START = IS_TOUCH_DEVICE ? 'touchstart' : 'mousedown';\n var EVENT_TOUCH_MOVE = IS_TOUCH_DEVICE ? 'touchmove' : 'mousemove';\n var EVENT_TOUCH_END = IS_TOUCH_DEVICE ? 'touchend touchcancel' : 'mouseup';\n var EVENT_POINTER_DOWN = HAS_POINTER_EVENT ? 'pointerdown' : EVENT_TOUCH_START;\n var EVENT_POINTER_MOVE = HAS_POINTER_EVENT ? 'pointermove' : EVENT_TOUCH_MOVE;\n var EVENT_POINTER_UP = HAS_POINTER_EVENT ? 'pointerup pointercancel' : EVENT_TOUCH_END;\n var EVENT_READY = 'ready';\n var EVENT_RESIZE = 'resize';\n var EVENT_WHEEL = 'wheel';\n var EVENT_ZOOM = 'zoom';\n\n // Mime types\n var MIME_TYPE_JPEG = 'image/jpeg';\n\n // RegExps\n var REGEXP_ACTIONS = /^e|w|s|n|se|sw|ne|nw|all|crop|move|zoom$/;\n var REGEXP_DATA_URL = /^data:/;\n var REGEXP_DATA_URL_JPEG = /^data:image\\/jpeg;base64,/;\n var REGEXP_TAG_NAME = /^img|canvas$/i;\n\n // Misc\n // Inspired by the default width and height of a canvas element.\n var MIN_CONTAINER_WIDTH = 200;\n var MIN_CONTAINER_HEIGHT = 100;\n\n var DEFAULTS = {\n // Define the view mode of the cropper\n viewMode: 0,\n // 0, 1, 2, 3\n\n // Define the dragging mode of the cropper\n dragMode: DRAG_MODE_CROP,\n // 'crop', 'move' or 'none'\n\n // Define the initial aspect ratio of the crop box\n initialAspectRatio: NaN,\n // Define the aspect ratio of the crop box\n aspectRatio: NaN,\n // An object with the previous cropping result data\n data: null,\n // A selector for adding extra containers to preview\n preview: '',\n // Re-render the cropper when resize the window\n responsive: true,\n // Restore the cropped area after resize the window\n restore: true,\n // Check if the current image is a cross-origin image\n checkCrossOrigin: true,\n // Check the current image's Exif Orientation information\n checkOrientation: true,\n // Show the black modal\n modal: true,\n // Show the dashed lines for guiding\n guides: true,\n // Show the center indicator for guiding\n center: true,\n // Show the white modal to highlight the crop box\n highlight: true,\n // Show the grid background\n background: true,\n // Enable to crop the image automatically when initialize\n autoCrop: true,\n // Define the percentage of automatic cropping area when initializes\n autoCropArea: 0.8,\n // Enable to move the image\n movable: true,\n // Enable to rotate the image\n rotatable: true,\n // Enable to scale the image\n scalable: true,\n // Enable to zoom the image\n zoomable: true,\n // Enable to zoom the image by dragging touch\n zoomOnTouch: true,\n // Enable to zoom the image by wheeling mouse\n zoomOnWheel: true,\n // Define zoom ratio when zoom the image by wheeling mouse\n wheelZoomRatio: 0.1,\n // Enable to move the crop box\n cropBoxMovable: true,\n // Enable to resize the crop box\n cropBoxResizable: true,\n // Toggle drag mode between \"crop\" and \"move\" when click twice on the cropper\n toggleDragModeOnDblclick: true,\n // Size limitation\n minCanvasWidth: 0,\n minCanvasHeight: 0,\n minCropBoxWidth: 0,\n minCropBoxHeight: 0,\n minContainerWidth: MIN_CONTAINER_WIDTH,\n minContainerHeight: MIN_CONTAINER_HEIGHT,\n // Shortcuts of events\n ready: null,\n cropstart: null,\n cropmove: null,\n cropend: null,\n crop: null,\n zoom: null\n };\n\n var TEMPLATE = '<div class=\"cropper-container\" touch-action=\"none\">' + '<div class=\"cropper-wrap-box\">' + '<div class=\"cropper-canvas\"></div>' + '</div>' + '<div class=\"cropper-drag-box\"></div>' + '<div class=\"cropper-crop-box\">' + '<span class=\"cropper-view-box\"></span>' + '<span class=\"cropper-dashed dashed-h\"></span>' + '<span class=\"cropper-dashed dashed-v\"></span>' + '<span class=\"cropper-center\"></span>' + '<span class=\"cropper-face\"></span>' + '<span class=\"cropper-line line-e\" data-cropper-action=\"e\"></span>' + '<span class=\"cropper-line line-n\" data-cropper-action=\"n\"></span>' + '<span class=\"cropper-line line-w\" data-cropper-action=\"w\"></span>' + '<span class=\"cropper-line line-s\" data-cropper-action=\"s\"></span>' + '<span class=\"cropper-point point-e\" data-cropper-action=\"e\"></span>' + '<span class=\"cropper-point point-n\" data-cropper-action=\"n\"></span>' + '<span class=\"cropper-point point-w\" data-cropper-action=\"w\"></span>' + '<span class=\"cropper-point point-s\" data-cropper-action=\"s\"></span>' + '<span class=\"cropper-point point-ne\" data-cropper-action=\"ne\"></span>' + '<span class=\"cropper-point point-nw\" data-cropper-action=\"nw\"></span>' + '<span class=\"cropper-point point-sw\" data-cropper-action=\"sw\"></span>' + '<span class=\"cropper-point point-se\" data-cropper-action=\"se\"></span>' + '</div>' + '</div>';\n\n /**\n * Check if the given value is not a number.\n */\n var isNaN = Number.isNaN || WINDOW.isNaN;\n\n /**\n * Check if the given value is a number.\n * @param {*} value - The value to check.\n * @returns {boolean} Returns `true` if the given value is a number, else `false`.\n */\n function isNumber(value) {\n return typeof value === 'number' && !isNaN(value);\n }\n\n /**\n * Check if the given value is a positive number.\n * @param {*} value - The value to check.\n * @returns {boolean} Returns `true` if the given value is a positive number, else `false`.\n */\n var isPositiveNumber = function isPositiveNumber(value) {\n return value > 0 && value < Infinity;\n };\n\n /**\n * Check if the given value is undefined.\n * @param {*} value - The value to check.\n * @returns {boolean} Returns `true` if the given value is undefined, else `false`.\n */\n function isUndefined(value) {\n return typeof value === 'undefined';\n }\n\n /**\n * Check if the given value is an object.\n * @param {*} value - The value to check.\n * @returns {boolean} Returns `true` if the given value is an object, else `false`.\n */\n function isObject(value) {\n return _typeof(value) === 'object' && value !== null;\n }\n var hasOwnProperty = Object.prototype.hasOwnProperty;\n\n /**\n * Check if the given value is a plain object.\n * @param {*} value - The value to check.\n * @returns {boolean} Returns `true` if the given value is a plain object, else `false`.\n */\n function isPlainObject(value) {\n if (!isObject(value)) {\n return false;\n }\n try {\n var _constructor = value.constructor;\n var prototype = _constructor.prototype;\n return _constructor && prototype && hasOwnProperty.call(prototype, 'isPrototypeOf');\n } catch (error) {\n return false;\n }\n }\n\n /**\n * Check if the given value is a function.\n * @param {*} value - The value to check.\n * @returns {boolean} Returns `true` if the given value is a function, else `false`.\n */\n function isFunction(value) {\n return typeof value === 'function';\n }\n var slice = Array.prototype.slice;\n\n /**\n * Convert array-like or iterable object to an array.\n * @param {*} value - The value to convert.\n * @returns {Array} Returns a new array.\n */\n function toArray(value) {\n return Array.from ? Array.from(value) : slice.call(value);\n }\n\n /**\n * Iterate the given data.\n * @param {*} data - The data to iterate.\n * @param {Function} callback - The process function for each element.\n * @returns {*} The original data.\n */\n function forEach(data, callback) {\n if (data && isFunction(callback)) {\n if (Array.isArray(data) || isNumber(data.length) /* array-like */) {\n toArray(data).forEach(function (value, key) {\n callback.call(data, value, key, data);\n });\n } else if (isObject(data)) {\n Object.keys(data).forEach(function (key) {\n callback.call(data, data[key], key, data);\n });\n }\n }\n return data;\n }\n\n /**\n * Extend the given object.\n * @param {*} target - The target object to extend.\n * @param {*} args - The rest objects for merging to the target object.\n * @returns {Object} The extended object.\n */\n var assign = Object.assign || function assign(target) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n if (isObject(target) && args.length > 0) {\n args.forEach(function (arg) {\n if (isObject(arg)) {\n Object.keys(arg).forEach(function (key) {\n target[key] = arg[key];\n });\n }\n });\n }\n return target;\n };\n var REGEXP_DECIMALS = /\\.\\d*(?:0|9){12}\\d*$/;\n\n /**\n * Normalize decimal number.\n * Check out {@link https://0.30000000000000004.com/}\n * @param {number} value - The value to normalize.\n * @param {number} [times=100000000000] - The times for normalizing.\n * @returns {number} Returns the normalized number.\n */\n function normalizeDecimalNumber(value) {\n var times = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 100000000000;\n return REGEXP_DECIMALS.test(value) ? Math.round(value * times) / times : value;\n }\n var REGEXP_SUFFIX = /^width|height|left|top|marginLeft|marginTop$/;\n\n /**\n * Apply styles to the given element.\n * @param {Element} element - The target element.\n * @param {Object} styles - The styles for applying.\n */\n function setStyle(element, styles) {\n var style = element.style;\n forEach(styles, function (value, property) {\n if (REGEXP_SUFFIX.test(property) && isNumber(value)) {\n value = \"\".concat(value, \"px\");\n }\n style[property] = value;\n });\n }\n\n /**\n * Check if the given element has a special class.\n * @param {Element} element - The element to check.\n * @param {string} value - The class to search.\n * @returns {boolean} Returns `true` if the special class was found.\n */\n function hasClass(element, value) {\n return element.classList ? element.classList.contains(value) : element.className.indexOf(value) > -1;\n }\n\n /**\n * Add classes to the given element.\n * @param {Element} element - The target element.\n * @param {string} value - The classes to be added.\n */\n function addClass(element, value) {\n if (!value) {\n return;\n }\n if (isNumber(element.length)) {\n forEach(element, function (elem) {\n addClass(elem, value);\n });\n return;\n }\n if (element.classList) {\n element.classList.add(value);\n return;\n }\n var className = element.className.trim();\n if (!className) {\n element.className = value;\n } else if (className.indexOf(value) < 0) {\n element.className = \"\".concat(className, \" \").concat(value);\n }\n }\n\n /**\n * Remove classes from the given element.\n * @param {Element} element - The target element.\n * @param {string} value - The classes to be removed.\n */\n function removeClass(element, value) {\n if (!value) {\n return;\n }\n if (isNumber(element.length)) {\n forEach(element, function (elem) {\n removeClass(elem, value);\n });\n return;\n }\n if (element.classList) {\n element.classList.remove(value);\n return;\n }\n if (element.className.indexOf(value) >= 0) {\n element.className = element.className.replace(value, '');\n }\n }\n\n /**\n * Add or remove classes from the given element.\n * @param {Element} element - The target element.\n * @param {string} value - The classes to be toggled.\n * @param {boolean} added - Add only.\n */\n function toggleClass(element, value, added) {\n if (!value) {\n return;\n }\n if (isNumber(element.length)) {\n forEach(element, function (elem) {\n toggleClass(elem, value, added);\n });\n return;\n }\n\n // IE10-11 doesn't support the second parameter of `classList.toggle`\n if (added) {\n addClass(element, value);\n } else {\n removeClass(element, value);\n }\n }\n var REGEXP_CAMEL_CASE = /([a-z\\d])([A-Z])/g;\n\n /**\n * Transform the given string from camelCase to kebab-case\n * @param {string} value - The value to transform.\n * @returns {string} The transformed value.\n */\n function toParamCase(value) {\n return value.replace(REGEXP_CAMEL_CASE, '$1-$2').toLowerCase();\n }\n\n /**\n * Get data from the given element.\n * @param {Element} element - The target element.\n * @param {string} name - The data key to get.\n * @returns {string} The data value.\n */\n function getData(element, name) {\n if (isObject(element[name])) {\n return element[name];\n }\n if (element.dataset) {\n return element.dataset[name];\n }\n return element.getAttribute(\"data-\".concat(toParamCase(name)));\n }\n\n /**\n * Set data to the given element.\n * @param {Element} element - The target element.\n * @param {string} name - The data key to set.\n * @param {string} data - The data value.\n */\n function setData(element, name, data) {\n if (isObject(data)) {\n element[name] = data;\n } else if (element.dataset) {\n element.dataset[name] = data;\n } else {\n element.setAttribute(\"data-\".concat(toParamCase(name)), data);\n }\n }\n\n /**\n * Remove data from the given element.\n * @param {Element} element - The target element.\n * @param {string} name - The data key to remove.\n */\n function removeData(element, name) {\n if (isObject(element[name])) {\n try {\n delete element[name];\n } catch (error) {\n element[name] = undefined;\n }\n } else if (element.dataset) {\n // #128 Safari not allows to delete dataset property\n try {\n delete element.dataset[name];\n } catch (error) {\n element.dataset[name] = undefined;\n }\n } else {\n element.removeAttribute(\"data-\".concat(toParamCase(name)));\n }\n }\n var REGEXP_SPACES = /\\s\\s*/;\n var onceSupported = function () {\n var supported = false;\n if (IS_BROWSER) {\n var once = false;\n var listener = function listener() {};\n var options = Object.defineProperty({}, 'once', {\n get: function get() {\n supported = true;\n return once;\n },\n /**\n * This setter can fix a `TypeError` in strict mode\n * {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Errors/Getter_only}\n * @param {boolean} value - The value to set\n */\n set: function set(value) {\n once = value;\n }\n });\n WINDOW.addEventListener('test', listener, options);\n WINDOW.removeEventListener('test', listener, options);\n }\n return supported;\n }();\n\n /**\n * Remove event listener from the target element.\n * @param {Element} element - The event target.\n * @param {string} type - The event type(s).\n * @param {Function} listener - The event listener.\n * @param {Object} options - The event options.\n */\n function removeListener(element, type, listener) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n var handler = listener;\n type.trim().split(REGEXP_SPACES).forEach(function (event) {\n if (!onceSupported) {\n var listeners = element.listeners;\n if (listeners && listeners[event] && listeners[event][listener]) {\n handler = listeners[event][listener];\n delete listeners[event][listener];\n if (Object.keys(listeners[event]).length === 0) {\n delete listeners[event];\n }\n if (Object.keys(listeners).length === 0) {\n delete element.listeners;\n }\n }\n }\n element.removeEventListener(event, handler, options);\n });\n }\n\n /**\n * Add event listener to the target element.\n * @param {Element} element - The event target.\n * @param {string} type - The event type(s).\n * @param {Function} listener - The event listener.\n * @param {Object} options - The event options.\n */\n function addListener(element, type, listener) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n var _handler = listener;\n type.trim().split(REGEXP_SPACES).forEach(function (event) {\n if (options.once && !onceSupported) {\n var _element$listeners = element.listeners,\n listeners = _element$listeners === void 0 ? {} : _element$listeners;\n _handler = function handler() {\n delete listeners[event][listener];\n element.removeEventListener(event, _handler, options);\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n listener.apply(element, args);\n };\n if (!listeners[event]) {\n listeners[event] = {};\n }\n if (listeners[event][listener]) {\n element.removeEventListener(event, listeners[event][listener], options);\n }\n listeners[event][listener] = _handler;\n element.listeners = listeners;\n }\n element.addEventListener(event, _handler, options);\n });\n }\n\n /**\n * Dispatch event on the target element.\n * @param {Element} element - The event target.\n * @param {string} type - The event type(s).\n * @param {Object} data - The additional event data.\n * @returns {boolean} Indicate if the event is default prevented or not.\n */\n function dispatchEvent(element, type, data) {\n var event;\n\n // Event and CustomEvent on IE9-11 are global objects, not constructors\n if (isFunction(Event) && isFunction(CustomEvent)) {\n event = new CustomEvent(type, {\n detail: data,\n bubbles: true,\n cancelable: true\n });\n } else {\n event = document.createEvent('CustomEvent');\n event.initCustomEvent(type, true, true, data);\n }\n return element.dispatchEvent(event);\n }\n\n /**\n * Get the offset base on the document.\n * @param {Element} element - The target element.\n * @returns {Object} The offset data.\n */\n function getOffset(element) {\n var box = element.getBoundingClientRect();\n return {\n left: box.left + (window.pageXOffset - document.documentElement.clientLeft),\n top: box.top + (window.pageYOffset - document.documentElement.clientTop)\n };\n }\n var location = WINDOW.location;\n var REGEXP_ORIGINS = /^(\\w+:)\\/\\/([^:/?#]*):?(\\d*)/i;\n\n /**\n * Check if the given URL is a cross origin URL.\n * @param {string} url - The target URL.\n * @returns {boolean} Returns `true` if the given URL is a cross origin URL, else `false`.\n */\n function isCrossOriginURL(url) {\n var parts = url.match(REGEXP_ORIGINS);\n return parts !== null && (parts[1] !== location.protocol || parts[2] !== location.hostname || parts[3] !== location.port);\n }\n\n /**\n * Add timestamp to the given URL.\n * @param {string} url - The target URL.\n * @returns {string} The result URL.\n */\n function addTimestamp(url) {\n var timestamp = \"timestamp=\".concat(new Date().getTime());\n return url + (url.indexOf('?') === -1 ? '?' : '&') + timestamp;\n }\n\n /**\n * Get transforms base on the given object.\n * @param {Object} obj - The target object.\n * @returns {string} A string contains transform values.\n */\n function getTransforms(_ref) {\n var rotate = _ref.rotate,\n scaleX = _ref.scaleX,\n scaleY = _ref.scaleY,\n translateX = _ref.translateX,\n translateY = _ref.translateY;\n var values = [];\n if (isNumber(translateX) && translateX !== 0) {\n values.push(\"translateX(\".concat(translateX, \"px)\"));\n }\n if (isNumber(translateY) && translateY !== 0) {\n values.push(\"translateY(\".concat(translateY, \"px)\"));\n }\n\n // Rotate should come first before scale to match orientation transform\n if (isNumber(rotate) && rotate !== 0) {\n values.push(\"rotate(\".concat(rotate, \"deg)\"));\n }\n if (isNumber(scaleX) && scaleX !== 1) {\n values.push(\"scaleX(\".concat(scaleX, \")\"));\n }\n if (isNumber(scaleY) && scaleY !== 1) {\n values.push(\"scaleY(\".concat(scaleY, \")\"));\n }\n var transform = values.length ? values.join(' ') : 'none';\n return {\n WebkitTransform: transform,\n msTransform: transform,\n transform: transform\n };\n }\n\n /**\n * Get the max ratio of a group of pointers.\n * @param {string} pointers - The target pointers.\n * @returns {number} The result ratio.\n */\n function getMaxZoomRatio(pointers) {\n var pointers2 = _objectSpread2({}, pointers);\n var maxRatio = 0;\n forEach(pointers, function (pointer, pointerId) {\n delete pointers2[pointerId];\n forEach(pointers2, function (pointer2) {\n var x1 = Math.abs(pointer.startX - pointer2.startX);\n var y1 = Math.abs(pointer.startY - pointer2.startY);\n var x2 = Math.abs(pointer.endX - pointer2.endX);\n var y2 = Math.abs(pointer.endY - pointer2.endY);\n var z1 = Math.sqrt(x1 * x1 + y1 * y1);\n var z2 = Math.sqrt(x2 * x2 + y2 * y2);\n var ratio = (z2 - z1) / z1;\n if (Math.abs(ratio) > Math.abs(maxRatio)) {\n maxRatio = ratio;\n }\n });\n });\n return maxRatio;\n }\n\n /**\n * Get a pointer from an event object.\n * @param {Object} event - The target event object.\n * @param {boolean} endOnly - Indicates if only returns the end point coordinate or not.\n * @returns {Object} The result pointer contains start and/or end point coordinates.\n */\n function getPointer(_ref2, endOnly) {\n var pageX = _ref2.pageX,\n pageY = _ref2.pageY;\n var end = {\n endX: pageX,\n endY: pageY\n };\n return endOnly ? end : _objectSpread2({\n startX: pageX,\n startY: pageY\n }, end);\n }\n\n /**\n * Get the center point coordinate of a group of pointers.\n * @param {Object} pointers - The target pointers.\n * @returns {Object} The center point coordinate.\n */\n function getPointersCenter(pointers) {\n var pageX = 0;\n var pageY = 0;\n var count = 0;\n forEach(pointers, function (_ref3) {\n var startX = _ref3.startX,\n startY = _ref3.startY;\n pageX += startX;\n pageY += startY;\n count += 1;\n });\n pageX /= count;\n pageY /= count;\n return {\n pageX: pageX,\n pageY: pageY\n };\n }\n\n /**\n * Get the max sizes in a rectangle under the given aspect ratio.\n * @param {Object} data - The original sizes.\n * @param {string} [type='contain'] - The adjust type.\n * @returns {Object} The result sizes.\n */\n function getAdjustedSizes(_ref4) {\n var aspectRatio = _ref4.aspectRatio,\n height = _ref4.height,\n width = _ref4.width;\n var type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'contain';\n var isValidWidth = isPositiveNumber(width);\n var isValidHeight = isPositiveNumber(height);\n if (isValidWidth && isValidHeight) {\n var adjustedWidth = height * aspectRatio;\n if (type === 'contain' && adjustedWidth > width || type === 'cover' && adjustedWidth < width) {\n height = width / aspectRatio;\n } else {\n width = height * aspectRatio;\n }\n } else if (isValidWidth) {\n height = width / aspectRatio;\n } else if (isValidHeight) {\n width = height * aspectRatio;\n }\n return {\n width: width,\n height: height\n };\n }\n\n /**\n * Get the new sizes of a rectangle after rotated.\n * @param {Object} data - The original sizes.\n * @returns {Object} The result sizes.\n */\n function getRotatedSizes(_ref5) {\n var width = _ref5.width,\n height = _ref5.height,\n degree = _ref5.degree;\n degree = Math.abs(degree) % 180;\n if (degree === 90) {\n return {\n width: height,\n height: width\n };\n }\n var arc = degree % 90 * Math.PI / 180;\n var sinArc = Math.sin(arc);\n var cosArc = Math.cos(arc);\n var newWidth = width * cosArc + height * sinArc;\n var newHeight = width * sinArc + height * cosArc;\n return degree > 90 ? {\n width: newHeight,\n height: newWidth\n } : {\n width: newWidth,\n height: newHeight\n };\n }\n\n /**\n * Get a canvas which drew the given image.\n * @param {HTMLImageElement} image - The image for drawing.\n * @param {Object} imageData - The image data.\n * @param {Object} canvasData - The canvas data.\n * @param {Object} options - The options.\n * @returns {HTMLCanvasElement} The result canvas.\n */\n function getSourceCanvas(image, _ref6, _ref7, _ref8) {\n var imageAspectRatio = _ref6.aspectRatio,\n imageNaturalWidth = _ref6.naturalWidth,\n imageNaturalHeight = _ref6.naturalHeight,\n _ref6$rotate = _ref6.rotate,\n rotate = _ref6$rotate === void 0 ? 0 : _ref6$rotate,\n _ref6$scaleX = _ref6.scaleX,\n scaleX = _ref6$scaleX === void 0 ? 1 : _ref6$scaleX,\n _ref6$scaleY = _ref6.scaleY,\n scaleY = _ref6$scaleY === void 0 ? 1 : _ref6$scaleY;\n var aspectRatio = _ref7.aspectRatio,\n naturalWidth = _ref7.naturalWidth,\n naturalHeight = _ref7.naturalHeight;\n var _ref8$fillColor = _ref8.fillColor,\n fillColor = _ref8$fillColor === void 0 ? 'transparent' : _ref8$fillColor,\n _ref8$imageSmoothingE = _ref8.imageSmoothingEnabled,\n imageSmoothingEnabled = _ref8$imageSmoothingE === void 0 ? true : _ref8$imageSmoothingE,\n _ref8$imageSmoothingQ = _ref8.imageSmoothingQuality,\n imageSmoothingQuality = _ref8$imageSmoothingQ === void 0 ? 'low' : _ref8$imageSmoothingQ,\n _ref8$maxWidth = _ref8.maxWidth,\n maxWidth = _ref8$maxWidth === void 0 ? Infinity : _ref8$maxWidth,\n _ref8$maxHeight = _ref8.maxHeight,\n maxHeight = _ref8$maxHeight === void 0 ? Infinity : _ref8$maxHeight,\n _ref8$minWidth = _ref8.minWidth,\n minWidth = _ref8$minWidth === void 0 ? 0 : _ref8$minWidth,\n _ref8$minHeight = _ref8.minHeight,\n minHeight = _ref8$minHeight === void 0 ? 0 : _ref8$minHeight;\n var canvas = document.createElement('canvas');\n var context = canvas.getContext('2d');\n var maxSizes = getAdjustedSizes({\n aspectRatio: aspectRatio,\n width: maxWidth,\n height: maxHeight\n });\n var minSizes = getAdjustedSizes({\n aspectRatio: aspectRatio,\n width: minWidth,\n height: minHeight\n }, 'cover');\n var width = Math.min(maxSizes.width, Math.max(minSizes.width, naturalWidth));\n var height = Math.min(maxSizes.height, Math.max(minSizes.height, naturalHeight));\n\n // Note: should always use image's natural sizes for drawing as\n // imageData.naturalWidth === canvasData.naturalHeight when rotate % 180 === 90\n var destMaxSizes = getAdjustedSizes({\n aspectRatio: imageAspectRatio,\n width: maxWidth,\n height: maxHeight\n });\n var destMinSizes = getAdjustedSizes({\n aspectRatio: imageAspectRatio,\n width: minWidth,\n height: minHeight\n }, 'cover');\n var destWidth = Math.min(destMaxSizes.width, Math.max(destMinSizes.width, imageNaturalWidth));\n var destHeight = Math.min(destMaxSizes.height, Math.max(destMinSizes.height, imageNaturalHeight));\n var params = [-destWidth / 2, -destHeight / 2, destWidth, destHeight];\n canvas.width = normalizeDecimalNumber(width);\n canvas.height = normalizeDecimalNumber(height);\n context.fillStyle = fillColor;\n context.fillRect(0, 0, width, height);\n context.save();\n context.translate(width / 2, height / 2);\n context.rotate(rotate * Math.PI / 180);\n context.scale(scaleX, scaleY);\n context.imageSmoothingEnabled = imageSmoothingEnabled;\n context.imageSmoothingQuality = imageSmoothingQuality;\n context.drawImage.apply(context, [image].concat(_toConsumableArray(params.map(function (param) {\n return Math.floor(normalizeDecimalNumber(param));\n }))));\n context.restore();\n return canvas;\n }\n var fromCharCode = String.fromCharCode;\n\n /**\n * Get string from char code in data view.\n * @param {DataView} dataView - The data view for read.\n * @param {number} start - The start index.\n * @param {number} length - The read length.\n * @returns {string} The read result.\n */\n function getStringFromCharCode(dataView, start, length) {\n var str = '';\n length += start;\n for (var i = start; i < length; i += 1) {\n str += fromCharCode(dataView.getUint8(i));\n }\n return str;\n }\n var REGEXP_DATA_URL_HEAD = /^data:.*,/;\n\n /**\n * Transform Data URL to array buffer.\n * @param {string} dataURL - The Data URL to transform.\n * @returns {ArrayBuffer} The result array buffer.\n */\n function dataURLToArrayBuffer(dataURL) {\n var base64 = dataURL.replace(REGEXP_DATA_URL_HEAD, '');\n var binary = atob(base64);\n var arrayBuffer = new ArrayBuffer(binary.length);\n var uint8 = new Uint8Array(arrayBuffer);\n forEach(uint8, function (value, i) {\n uint8[i] = binary.charCodeAt(i);\n });\n return arrayBuffer;\n }\n\n /**\n * Transform array buffer to Data URL.\n * @param {ArrayBuffer} arrayBuffer - The array buffer to transform.\n * @param {string} mimeType - The mime type of the Data URL.\n * @returns {string} The result Data URL.\n */\n function arrayBufferToDataURL(arrayBuffer, mimeType) {\n var chunks = [];\n\n // Chunk Typed Array for better performance (#435)\n var chunkSize = 8192;\n var uint8 = new Uint8Array(arrayBuffer);\n while (uint8.length > 0) {\n // XXX: Babel's `toConsumableArray` helper will throw error in IE or Safari 9\n // eslint-disable-next-line prefer-spread\n chunks.push(fromCharCode.apply(null, toArray(uint8.subarray(0, chunkSize))));\n uint8 = uint8.subarray(chunkSize);\n }\n return \"data:\".concat(mimeType, \";base64,\").concat(btoa(chunks.join('')));\n }\n\n /**\n * Get orientation value from given array buffer.\n * @param {ArrayBuffer} arrayBuffer - The array buffer to read.\n * @returns {number} The read orientation value.\n */\n function resetAndGetOrientation(arrayBuffer) {\n var dataView = new DataView(arrayBuffer);\n var orientation;\n\n // Ignores range error when the image does not have correct Exif information\n try {\n var littleEndian;\n var app1Start;\n var ifdStart;\n\n // Only handle JPEG image (start by 0xFFD8)\n if (dataView.getUint8(0) === 0xFF && dataView.getUint8(1) === 0xD8) {\n var length = dataView.byteLength;\n var offset = 2;\n while (offset + 1 < length) {\n if (dataView.getUint8(offset) === 0xFF && dataView.getUint8(offset + 1) === 0xE1) {\n app1Start = offset;\n break;\n }\n offset += 1;\n }\n }\n if (app1Start) {\n var exifIDCode = app1Start + 4;\n var tiffOffset = app1Start + 10;\n if (getStringFromCharCode(dataView, exifIDCode, 4) === 'Exif') {\n var endianness = dataView.getUint16(tiffOffset);\n littleEndian = endianness === 0x4949;\n if (littleEndian || endianness === 0x4D4D /* bigEndian */) {\n if (dataView.getUint16(tiffOffset + 2, littleEndian) === 0x002A) {\n var firstIFDOffset = dataView.getUint32(tiffOffset + 4, littleEndian);\n if (firstIFDOffset >= 0x00000008) {\n ifdStart = tiffOffset + firstIFDOffset;\n }\n }\n }\n }\n }\n if (ifdStart) {\n var _length = dataView.getUint16(ifdStart, littleEndian);\n var _offset;\n var i;\n for (i = 0; i < _length; i += 1) {\n _offset = ifdStart + i * 12 + 2;\n if (dataView.getUint16(_offset, littleEndian) === 0x0112 /* Orientation */) {\n // 8 is the offset of the current tag's value\n _offset += 8;\n\n // Get the original orientation value\n orientation = dataView.getUint16(_offset, littleEndian);\n\n // Override the orientation with its default value\n dataView.setUint16(_offset, 1, littleEndian);\n break;\n }\n }\n }\n } catch (error) {\n orientation = 1;\n }\n return orientation;\n }\n\n /**\n * Parse Exif Orientation value.\n * @param {number} orientation - The orientation to parse.\n * @returns {Object} The parsed result.\n */\n function parseOrientation(orientation) {\n var rotate = 0;\n var scaleX = 1;\n var scaleY = 1;\n switch (orientation) {\n // Flip horizontal\n case 2:\n scaleX = -1;\n break;\n\n // Rotate left 180°\n case 3:\n rotate = -180;\n break;\n\n // Flip vertical\n case 4:\n scaleY = -1;\n break;\n\n // Flip vertical and rotate right 90°\n case 5:\n rotate = 90;\n scaleY = -1;\n break;\n\n // Rotate right 90°\n case 6:\n rotate = 90;\n break;\n\n // Flip horizontal and rotate right 90°\n case 7:\n rotate = 90;\n scaleX = -1;\n break;\n\n // Rotate left 90°\n case 8:\n rotate = -90;\n break;\n }\n return {\n rotate: rotate,\n scaleX: scaleX,\n scaleY: scaleY\n };\n }\n\n var render = {\n render: function render() {\n this.initContainer();\n this.initCanvas();\n this.initCropBox();\n this.renderCanvas();\n if (this.cropped) {\n this.renderCropBox();\n }\n },\n initContainer: function initContainer() {\n var element = this.element,\n options = this.options,\n container = this.container,\n cropper = this.cropper;\n var minWidth = Number(options.minContainerWidth);\n var minHeight = Number(options.minContainerHeight);\n addClass(cropper, CLASS_HIDDEN);\n removeClass(element, CLASS_HIDDEN);\n var containerData = {\n width: Math.max(container.offsetWidth, minWidth >= 0 ? minWidth : MIN_CONTAINER_WIDTH),\n height: Math.max(container.offsetHeight, minHeight >= 0 ? minHeight : MIN_CONTAINER_HEIGHT)\n };\n this.containerData = containerData;\n setStyle(cropper, {\n width: containerData.width,\n height: containerData.height\n });\n addClass(element, CLASS_HIDDEN);\n removeClass(cropper, CLASS_HIDDEN);\n },\n // Canvas (image wrapper)\n initCanvas: function initCanvas() {\n var containerData = this.containerData,\n imageData = this.imageData;\n var viewMode = this.options.viewMode;\n var rotated = Math.abs(imageData.rotate) % 180 === 90;\n var naturalWidth = rotated ? imageData.naturalHeight : imageData.naturalWidth;\n var naturalHeight = rotated ? imageData.naturalWidth : imageData.naturalHeight;\n var aspectRatio = naturalWidth / naturalHeight;\n var canvasWidth = containerData.width;\n var canvasHeight = containerData.height;\n if (containerData.height * aspectRatio > containerData.width) {\n if (viewMode === 3) {\n canvasWidth = containerData.height * aspectRatio;\n } else {\n canvasHeight = containerData.width / aspectRatio;\n }\n } else if (viewMode === 3) {\n canvasHeight = containerData.width / aspectRatio;\n } else {\n canvasWidth = containerData.height * aspectRatio;\n }\n var canvasData = {\n aspectRatio: aspectRatio,\n naturalWidth: naturalWidth,\n naturalHeight: naturalHeight,\n width: canvasWidth,\n height: canvasHeight\n };\n this.canvasData = canvasData;\n this.limited = viewMode === 1 || viewMode === 2;\n this.limitCanvas(true, true);\n canvasData.width = Math.min(Math.max(canvasData.width, canvasData.minWidth), canvasData.maxWidth);\n canvasData.height = Math.min(Math.max(canvasData.height, canvasData.minHeight), canvasData.maxHeight);\n canvasData.left = (containerData.width - canvasData.width) / 2;\n canvasData.top = (containerData.height - canvasData.height) / 2;\n canvasData.oldLeft = canvasData.left;\n canvasData.oldTop = canvasData.top;\n this.initialCanvasData = assign({}, canvasData);\n },\n limitCanvas: function limitCanvas(sizeLimited, positionLimited) {\n var options = this.options,\n containerData = this.containerData,\n canvasData = this.canvasData,\n cropBoxData = this.cropBoxData;\n var viewMode = options.viewMode;\n var aspectRatio = canvasData.aspectRatio;\n var cropped = this.cropped && cropBoxData;\n if (sizeLimited) {\n var minCanvasWidth = Number(options.minCanvasWidth) || 0;\n var minCanvasHeight = Number(options.minCanvasHeight) || 0;\n if (viewMode > 1) {\n minCanvasWidth = Math.max(minCanvasWidth, containerData.width);\n minCanvasHeight = Math.max(minCanvasHeight, containerData.height);\n if (viewMode === 3) {\n if (minCanvasHeight * aspectRatio > minCanvasWidth) {\n minCanvasWidth = minCanvasHeight * aspectRatio;\n } else {\n minCanvasHeight = minCanvasWidth / aspectRatio;\n }\n }\n } else if (viewMode > 0) {\n if (minCanvasWidth) {\n minCanvasWidth = Math.max(minCanvasWidth, cropped ? cropBoxData.width : 0);\n } else if (minCanvasHeight) {\n minCanvasHeight = Math.max(minCanvasHeight, cropped ? cropBoxData.height : 0);\n } else if (cropped) {\n minCanvasWidth = cropBoxData.width;\n minCanvasHeight = cropBoxData.height;\n if (minCanvasHeight * aspectRatio > minCanvasWidth) {\n minCanvasWidth = minCanvasHeight * aspectRatio;\n } else {\n minCanvasHeight = minCanvasWidth / aspectRatio;\n }\n }\n }\n var _getAdjustedSizes = getAdjustedSizes({\n aspectRatio: aspectRatio,\n width: minCanvasWidth,\n height: minCanvasHeight\n });\n minCanvasWidth = _getAdjustedSizes.width;\n minCanvasHeight = _getAdjustedSizes.height;\n canvasData.minWidth = minCanvasWidth;\n canvasData.minHeight = minCanvasHeight;\n canvasData.maxWidth = Infinity;\n canvasData.maxHeight = Infinity;\n }\n if (positionLimited) {\n if (viewMode > (cropped ? 0 : 1)) {\n var newCanvasLeft = containerData.width - canvasData.width;\n var newCanvasTop = containerData.height - canvasData.height;\n canvasData.minLeft = Math.min(0, newCanvasLeft);\n canvasData.minTop = Math.min(0, newCanvasTop);\n canvasData.maxLeft = Math.max(0, newCanvasLeft);\n canvasData.maxTop = Math.max(0, newCanvasTop);\n if (cropped && this.limited) {\n canvasData.minLeft = Math.min(cropBoxData.left, cropBoxData.left + (cropBoxData.width - canvasData.width));\n canvasData.minTop = Math.min(cropBoxData.top, cropBoxData.top + (cropBoxData.height - canvasData.height));\n canvasData.maxLeft = cropBoxData.left;\n canvasData.maxTop = cropBoxData.top;\n if (viewMode === 2) {\n if (canvasData.width >= containerData.width) {\n canvasData.minLeft = Math.min(0, newCanvasLeft);\n canvasData.maxLeft = Math.max(0, newCanvasLeft);\n }\n if (canvasData.height >= containerData.height) {\n canvasData.minTop = Math.min(0, newCanvasTop);\n canvasData.maxTop = Math.max(0, newCanvasTop);\n }\n }\n }\n } else {\n canvasData.minLeft = -canvasData.width;\n canvasData.minTop = -canvasData.height;\n canvasData.maxLeft = containerData.width;\n canvasData.maxTop = containerData.height;\n }\n }\n },\n renderCanvas: function renderCanvas(changed, transformed) {\n var canvasData = this.canvasData,\n imageData = this.imageData;\n if (transformed) {\n var _getRotatedSizes = getRotatedSizes({\n width: imageData.naturalWidth * Math.abs(imageData.scaleX || 1),\n height: imageData.naturalHeight * Math.abs(imageData.scaleY || 1),\n degree: imageData.rotate || 0\n }),\n naturalWidth = _getRotatedSizes.width,\n naturalHeight = _getRotatedSizes.height;\n var width = canvasData.width * (naturalWidth / canvasData.naturalWidth);\n var height = canvasData.height * (naturalHeight / canvasData.naturalHeight);\n canvasData.left -= (width - canvasData.width) / 2;\n canvasData.top -= (height - canvasData.height) / 2;\n canvasData.width = width;\n canvasData.height = height;\n canvasData.aspectRatio = naturalWidth / naturalHeight;\n canvasData.naturalWidth = naturalWidth;\n canvasData.naturalHeight = naturalHeight;\n this.limitCanvas(true, false);\n }\n if (canvasData.width > canvasData.maxWidth || canvasData.width < canvasData.minWidth) {\n canvasData.left = canvasData.oldLeft;\n }\n if (canvasData.height > canvasData.maxHeight || canvasData.height < canvasData.minHeight) {\n canvasData.top = canvasData.oldTop;\n }\n canvasData.width = Math.min(Math.max(canvasData.width, canvasData.minWidth), canvasData.maxWidth);\n canvasData.height = Math.min(Math.max(canvasData.height, canvasData.minHeight), canvasData.maxHeight);\n this.limitCanvas(false, true);\n canvasData.left = Math.min(Math.max(canvasData.left, canvasData.minLeft), canvasData.maxLeft);\n canvasData.top = Math.min(Math.max(canvasData.top, canvasData.minTop), canvasData.maxTop);\n canvasData.oldLeft = canvasData.left;\n canvasData.oldTop = canvasData.top;\n setStyle(this.canvas, assign({\n width: canvasData.width,\n height: canvasData.height\n }, getTransforms({\n translateX: canvasData.left,\n translateY: canvasData.top\n })));\n this.renderImage(changed);\n if (this.cropped && this.limited) {\n this.limitCropBox(true, true);\n }\n },\n renderImage: function renderImage(changed) {\n var canvasData = this.canvasData,\n imageData = this.imageData;\n var width = imageData.naturalWidth * (canvasData.width / canvasData.naturalWidth);\n var height = imageData.naturalHeight * (canvasData.height / canvasData.naturalHeight);\n assign(imageData, {\n width: width,\n height: height,\n left: (canvasData.width - width) / 2,\n top: (canvasData.height - height) / 2\n });\n setStyle(this.image, assign({\n width: imageData.width,\n height: imageData.height\n }, getTransforms(assign({\n translateX: imageData.left,\n translateY: imageData.top\n }, imageData))));\n if (changed) {\n this.output();\n }\n },\n initCropBox: function initCropBox() {\n var options = this.options,\n canvasData = this.canvasData;\n var aspectRatio = options.aspectRatio || options.initialAspectRatio;\n var autoCropArea = Number(options.autoCropArea) || 0.8;\n var cropBoxData = {\n width: canvasData.width,\n height: canvasData.height\n };\n if (aspectRatio) {\n if (canvasData.height * aspectRatio > canvasData.width) {\n cropBoxData.height = cropBoxData.width / aspectRatio;\n } else {\n cropBoxData.width = cropBoxData.height * aspectRatio;\n }\n }\n this.cropBoxData = cropBoxData;\n this.limitCropBox(true, true);\n\n // Initialize auto crop area\n cropBoxData.width = Math.min(Math.max(cropBoxData.width, cropBoxData.minWidth), cropBoxData.maxWidth);\n cropBoxData.height = Math.min(Math.max(cropBoxData.height, cropBoxData.minHeight), cropBoxData.maxHeight);\n\n // The width/height of auto crop area must large than \"minWidth/Height\"\n cropBoxData.width = Math.max(cropBoxData.minWidth, cropBoxData.width * autoCropArea);\n cropBoxData.height = Math.max(cropBoxData.minHeight, cropBoxData.height * autoCropArea);\n cropBoxData.left = canvasData.left + (canvasData.width - cropBoxData.width) / 2;\n cropBoxData.top = canvasData.top + (canvasData.height - cropBoxData.height) / 2;\n cropBoxData.oldLeft = cropBoxData.left;\n cropBoxData.oldTop = cropBoxData.top;\n this.initialCropBoxData = assign({}, cropBoxData);\n },\n limitCropBox: function limitCropBox(sizeLimited, positionLimited) {\n var options = this.options,\n containerData = this.containerData,\n canvasData = this.canvasData,\n cropBoxData = this.cropBoxData,\n limited = this.limited;\n var aspectRatio = options.aspectRatio;\n if (sizeLimited) {\n var minCropBoxWidth = Number(options.minCropBoxWidth) || 0;\n var minCropBoxHeight = Number(options.minCropBoxHeight) || 0;\n var maxCropBoxWidth = limited ? Math.min(containerData.width, canvasData.width, canvasData.width + canvasData.left, containerData.width - canvasData.left) : containerData.width;\n var maxCropBoxHeight = limited ? Math.min(containerData.height, canvasData.height, canvasData.height + canvasData.top, containerData.height - canvasData.top) : containerData.height;\n\n // The min/maxCropBoxWidth/Height must be less than container's width/height\n minCropBoxWidth = Math.min(minCropBoxWidth, containerData.width);\n minCropBoxHeight = Math.min(minCropBoxHeight, containerData.height);\n if (aspectRatio) {\n if (minCropBoxWidth && minCropBoxHeight) {\n if (minCropBoxHeight * aspectRatio > minCropBoxWidth) {\n minCropBoxHeight = minCropBoxWidth / aspectRatio;\n } else {\n minCropBoxWidth = minCropBoxHeight * aspectRatio;\n }\n } else if (minCropBoxWidth) {\n minCropBoxHeight = minCropBoxWidth / aspectRatio;\n } else if (minCropBoxHeight) {\n minCropBoxWidth = minCropBoxHeight * aspectRatio;\n }\n if (maxCropBoxHeight * aspectRatio > maxCropBoxWidth) {\n maxCropBoxHeight = maxCropBoxWidth / aspectRatio;\n } else {\n maxCropBoxWidth = maxCropBoxHeight * aspectRatio;\n }\n }\n\n // The minWidth/Height must be less than maxWidth/Height\n cropBoxData.minWidth = Math.min(minCropBoxWidth, maxCropBoxWidth);\n cropBoxData.minHeight = Math.min(minCropBoxHeight, maxCropBoxHeight);\n cropBoxData.maxWidth = maxCropBoxWidth;\n cropBoxData.maxHeight = maxCropBoxHeight;\n }\n if (positionLimited) {\n if (limited) {\n cropBoxData.minLeft = Math.max(0, canvasData.left);\n cropBoxData.minTop = Math.max(0, canvasData.top);\n cropBoxData.maxLeft = Math.min(containerData.width, canvasData.left + canvasData.width) - cropBoxData.width;\n cropBoxData.maxTop = Math.min(containerData.height, canvasData.top + canvasData.height) - cropBoxData.height;\n } else {\n cropBoxData.minLeft = 0;\n cropBoxData.minTop = 0;\n cropBoxData.maxLeft = containerData.width - cropBoxData.width;\n cropBoxData.maxTop = containerData.height - cropBoxData.height;\n }\n }\n },\n renderCropBox: function renderCropBox() {\n var options = this.options,\n containerData = this.containerData,\n cropBoxData = this.cropBoxData;\n if (cropBoxData.width > cropBoxData.maxWidth || cropBoxData.width < cropBoxData.minWidth) {\n cropBoxData.left = cropBoxData.oldLeft;\n }\n if (cropBoxData.height > cropBoxData.maxHeight || cropBoxData.height < cropBoxData.minHeight) {\n cropBoxData.top = cropBoxData.oldTop;\n }\n cropBoxData.width = Math.min(Math.max(cropBoxData.width, cropBoxData.minWidth), cropBoxData.maxWidth);\n cropBoxData.height = Math.min(Math.max(cropBoxData.height, cropBoxData.minHeight), cropBoxData.maxHeight);\n this.limitCropBox(false, true);\n cropBoxData.left = Math.min(Math.max(cropBoxData.left, cropBoxData.minLeft), cropBoxData.maxLeft);\n cropBoxData.top = Math.min(Math.max(cropBoxData.top, cropBoxData.minTop), cropBoxData.maxTop);\n cropBoxData.oldLeft = cropBoxData.left;\n cropBoxData.oldTop = cropBoxData.top;\n if (options.movable && options.cropBoxMovable) {\n // Turn to move the canvas when the crop box is equal to the container\n setData(this.face, DATA_ACTION, cropBoxData.width >= containerData.width && cropBoxData.height >= containerData.height ? ACTION_MOVE : ACTION_ALL);\n }\n setStyle(this.cropBox, assign({\n width: cropBoxData.width,\n height: cropBoxData.height\n }, getTransforms({\n translateX: cropBoxData.left,\n translateY: cropBoxData.top\n })));\n if (this.cropped && this.limited) {\n this.limitCanvas(true, true);\n }\n if (!this.disabled) {\n this.output();\n }\n },\n output: function output() {\n this.preview();\n dispatchEvent(this.element, EVENT_CROP, this.getData());\n }\n };\n\n var preview = {\n initPreview: function initPreview() {\n var element = this.element,\n crossOrigin = this.crossOrigin;\n var preview = this.options.preview;\n var url = crossOrigin ? this.crossOriginUrl : this.url;\n var alt = element.alt || 'The image to preview';\n var image = document.createElement('img');\n if (crossOrigin) {\n image.crossOrigin = crossOrigin;\n }\n image.src = url;\n image.alt = alt;\n this.viewBox.appendChild(image);\n this.viewBoxImage = image;\n if (!preview) {\n return;\n }\n var previews = preview;\n if (typeof preview === 'string') {\n previews = element.ownerDocument.querySelectorAll(preview);\n } else if (preview.querySelector) {\n previews = [preview];\n }\n this.previews = previews;\n forEach(previews, function (el) {\n var img = document.createElement('img');\n\n // Save the original size for recover\n setData(el, DATA_PREVIEW, {\n width: el.offsetWidth,\n height: el.offsetHeight,\n html: el.innerHTML\n });\n if (crossOrigin) {\n img.crossOrigin = crossOrigin;\n }\n img.src = url;\n img.alt = alt;\n\n /**\n * Override img element styles\n * Add `display:block` to avoid margin top issue\n * Add `height:auto` to override `height` attribute on IE8\n * (Occur only when margin-top <= -height)\n */\n img.style.cssText = 'display:block;' + 'width:100%;' + 'height:auto;' + 'min-width:0!important;' + 'min-height:0!important;' + 'max-width:none!important;' + 'max-height:none!important;' + 'image-orientation:0deg!important;\"';\n el.innerHTML = '';\n el.appendChild(img);\n });\n },\n resetPreview: function resetPreview() {\n forEach(this.previews, function (element) {\n var data = getData(element, DATA_PREVIEW);\n setStyle(element, {\n width: data.width,\n height: data.height\n });\n element.innerHTML = data.html;\n removeData(element, DATA_PREVIEW);\n });\n },\n preview: function preview() {\n var imageData = this.imageData,\n canvasData = this.canvasData,\n cropBoxData = this.cropBoxData;\n var cropBoxWidth = cropBoxData.width,\n cropBoxHeight = cropBoxData.height;\n var width = imageData.width,\n height = imageData.height;\n var left = cropBoxData.left - canvasData.left - imageData.left;\n var top = cropBoxData.top - canvasData.top - imageData.top;\n if (!this.cropped || this.disabled) {\n return;\n }\n setStyle(this.viewBoxImage, assign({\n width: width,\n height: height\n }, getTransforms(assign({\n translateX: -left,\n translateY: -top\n }, imageData))));\n forEach(this.previews, function (element) {\n var data = getData(element, DATA_PREVIEW);\n var originalWidth = data.width;\n var originalHeight = data.height;\n var newWidth = originalWidth;\n var newHeight = originalHeight;\n var ratio = 1;\n if (cropBoxWidth) {\n ratio = originalWidth / cropBoxWidth;\n newHeight = cropBoxHeight * ratio;\n }\n if (cropBoxHeight && newHeight > originalHeight) {\n ratio = originalHeight / cropBoxHeight;\n newWidth = cropBoxWidth * ratio;\n newHeight = originalHeight;\n }\n setStyle(element, {\n width: newWidth,\n height: newHeight\n });\n setStyle(element.getElementsByTagName('img')[0], assign({\n width: width * ratio,\n height: height * ratio\n }, getTransforms(assign({\n translateX: -left * ratio,\n translateY: -top * ratio\n }, imageData))));\n });\n }\n };\n\n var events = {\n bind: function bind() {\n var element = this.element,\n options = this.options,\n cropper = this.cropper;\n if (isFunction(options.cropstart)) {\n addListener(element, EVENT_CROP_START, options.cropstart);\n }\n if (isFunction(options.cropmove)) {\n addListener(element, EVENT_CROP_MOVE, options.cropmove);\n }\n if (isFunction(options.cropend)) {\n addListener(element, EVENT_CROP_END, options.cropend);\n }\n if (isFunction(options.crop)) {\n addListener(element, EVENT_CROP, options.crop);\n }\n if (isFunction(options.zoom)) {\n addListener(element, EVENT_ZOOM, options.zoom);\n }\n addListener(cropper, EVENT_POINTER_DOWN, this.onCropStart = this.cropStart.bind(this));\n if (options.zoomable && options.zoomOnWheel) {\n addListener(cropper, EVENT_WHEEL, this.onWheel = this.wheel.bind(this), {\n passive: false,\n capture: true\n });\n }\n if (options.toggleDragModeOnDblclick) {\n addListener(cropper, EVENT_DBLCLICK, this.onDblclick = this.dblclick.bind(this));\n }\n addListener(element.ownerDocument, EVENT_POINTER_MOVE, this.onCropMove = this.cropMove.bind(this));\n addListener(element.ownerDocument, EVENT_POINTER_UP, this.onCropEnd = this.cropEnd.bind(this));\n if (options.responsive) {\n addListener(window, EVENT_RESIZE, this.onResize = this.resize.bind(this));\n }\n },\n unbind: function unbind() {\n var element = this.element,\n options = this.options,\n cropper = this.cropper;\n if (isFunction(options.cropstart)) {\n removeListener(element, EVENT_CROP_START, options.cropstart);\n }\n if (isFunction(options.cropmove)) {\n removeListener(element, EVENT_CROP_MOVE, options.cropmove);\n }\n if (isFunction(options.cropend)) {\n removeListener(element, EVENT_CROP_END, options.cropend);\n }\n if (isFunction(options.crop)) {\n removeListener(element, EVENT_CROP, options.crop);\n }\n if (isFunction(options.zoom)) {\n removeListener(element, EVENT_ZOOM, options.zoom);\n }\n removeListener(cropper, EVENT_POINTER_DOWN, this.onCropStart);\n if (options.zoomable && options.zoomOnWheel) {\n removeListener(cropper, EVENT_WHEEL, this.onWheel, {\n passive: false,\n capture: true\n });\n }\n if (options.toggleDragModeOnDblclick) {\n removeListener(cropper, EVENT_DBLCLICK, this.onDblclick);\n }\n removeListener(element.ownerDocument, EVENT_POINTER_MOVE, this.onCropMove);\n removeListener(element.ownerDocument, EVENT_POINTER_UP, this.onCropEnd);\n if (options.responsive) {\n removeListener(window, EVENT_RESIZE, this.onResize);\n }\n }\n };\n\n var handlers = {\n resize: function resize() {\n if (this.disabled) {\n return;\n }\n var options = this.options,\n container = this.container,\n containerData = this.containerData;\n var ratioX = container.offsetWidth / containerData.width;\n var ratioY = container.offsetHeight / containerData.height;\n var ratio = Math.abs(ratioX - 1) > Math.abs(ratioY - 1) ? ratioX : ratioY;\n\n // Resize when width changed or height changed\n if (ratio !== 1) {\n var canvasData;\n var cropBoxData;\n if (options.restore) {\n canvasData = this.getCanvasData();\n cropBoxData = this.getCropBoxData();\n }\n this.render();\n if (options.restore) {\n this.setCanvasData(forEach(canvasData, function (n, i) {\n canvasData[i] = n * ratio;\n }));\n this.setCropBoxData(forEach(cropBoxData, function (n, i) {\n cropBoxData[i] = n * ratio;\n }));\n }\n }\n },\n dblclick: function dblclick() {\n if (this.disabled || this.options.dragMode === DRAG_MODE_NONE) {\n return;\n }\n this.setDragMode(hasClass(this.dragBox, CLASS_CROP) ? DRAG_MODE_MOVE : DRAG_MODE_CROP);\n },\n wheel: function wheel(event) {\n var _this = this;\n var ratio = Number(this.options.wheelZoomRatio) || 0.1;\n var delta = 1;\n if (this.disabled) {\n return;\n }\n event.preventDefault();\n\n // Limit wheel speed to prevent zoom too fast (#21)\n if (this.wheeling) {\n return;\n }\n this.wheeling = true;\n setTimeout(function () {\n _this.wheeling = false;\n }, 50);\n if (event.deltaY) {\n delta = event.deltaY > 0 ? 1 : -1;\n } else if (event.wheelDelta) {\n delta = -event.wheelDelta / 120;\n } else if (event.detail) {\n delta = event.detail > 0 ? 1 : -1;\n }\n this.zoom(-delta * ratio, event);\n },\n cropStart: function cropStart(event) {\n var buttons = event.buttons,\n button = event.button;\n if (this.disabled\n\n // Handle mouse event and pointer event and ignore touch event\n || (event.type === 'mousedown' || event.type === 'pointerdown' && event.pointerType === 'mouse') && (\n // No primary button (Usually the left button)\n isNumber(buttons) && buttons !== 1 || isNumber(button) && button !== 0\n\n // Open context menu\n || event.ctrlKey)) {\n return;\n }\n var options = this.options,\n pointers = this.pointers;\n var action;\n if (event.changedTouches) {\n // Handle touch event\n forEach(event.changedTouches, function (touch) {\n pointers[touch.identifier] = getPointer(touch);\n });\n } else {\n // Handle mouse event and pointer event\n pointers[event.pointerId || 0] = getPointer(event);\n }\n if (Object.keys(pointers).length > 1 && options.zoomable && options.zoomOnTouch) {\n action = ACTION_ZOOM;\n } else {\n action = getData(event.target, DATA_ACTION);\n }\n if (!REGEXP_ACTIONS.test(action)) {\n return;\n }\n if (dispatchEvent(this.element, EVENT_CROP_START, {\n originalEvent: event,\n action: action\n }) === false) {\n return;\n }\n\n // This line is required for preventing page zooming in iOS browsers\n event.preventDefault();\n this.action = action;\n this.cropping = false;\n if (action === ACTION_CROP) {\n this.cropping = true;\n addClass(this.dragBox, CLASS_MODAL);\n }\n },\n cropMove: function cropMove(event) {\n var action = this.action;\n if (this.disabled || !action) {\n return;\n }\n var pointers = this.pointers;\n event.preventDefault();\n if (dispatchEvent(this.element, EVENT_CROP_MOVE, {\n originalEvent: event,\n action: action\n }) === false) {\n return;\n }\n if (event.changedTouches) {\n forEach(event.changedTouches, function (touch) {\n // The first parameter should not be undefined (#432)\n assign(pointers[touch.identifier] || {}, getPointer(touch, true));\n });\n } else {\n assign(pointers[event.pointerId || 0] || {}, getPointer(event, true));\n }\n this.change(event);\n },\n cropEnd: function cropEnd(event) {\n if (this.disabled) {\n return;\n }\n var action = this.action,\n pointers = this.pointers;\n if (event.changedTouches) {\n forEach(event.changedTouches, function (touch) {\n delete pointers[touch.identifier];\n });\n } else {\n delete pointers[event.pointerId || 0];\n }\n if (!action) {\n return;\n }\n event.preventDefault();\n if (!Object.keys(pointers).length) {\n this.action = '';\n }\n if (this.cropping) {\n this.cropping = false;\n toggleClass(this.dragBox, CLASS_MODAL, this.cropped && this.options.modal);\n }\n dispatchEvent(this.element, EVENT_CROP_END, {\n originalEvent: event,\n action: action\n });\n }\n };\n\n var change = {\n change: function change(event) {\n var options = this.options,\n canvasData = this.canvasData,\n containerData = this.containerData,\n cropBoxData = this.cropBoxData,\n pointers = this.pointers;\n var action = this.action;\n var aspectRatio = options.aspectRatio;\n var left = cropBoxData.left,\n top = cropBoxData.top,\n width = cropBoxData.width,\n height = cropBoxData.height;\n var right = left + width;\n var bottom = top + height;\n var minLeft = 0;\n var minTop = 0;\n var maxWidth = containerData.width;\n var maxHeight = containerData.height;\n var renderable = true;\n var offset;\n\n // Locking aspect ratio in \"free mode\" by holding shift key\n if (!aspectRatio && event.shiftKey) {\n aspectRatio = width && height ? width / height : 1;\n }\n if (this.limited) {\n minLeft = cropBoxData.minLeft;\n minTop = cropBoxData.minTop;\n maxWidth = minLeft + Math.min(containerData.width, canvasData.width, canvasData.left + canvasData.width);\n maxHeight = minTop + Math.min(containerData.height, canvasData.height, canvasData.top + canvasData.height);\n }\n var pointer = pointers[Object.keys(pointers)[0]];\n var range = {\n x: pointer.endX - pointer.startX,\n y: pointer.endY - pointer.startY\n };\n var check = function check(side) {\n switch (side) {\n case ACTION_EAST:\n if (right + range.x > maxWidth) {\n range.x = maxWidth - right;\n }\n break;\n case ACTION_WEST:\n if (left + range.x < minLeft) {\n range.x = minLeft - left;\n }\n break;\n case ACTION_NORTH:\n if (top + range.y < minTop) {\n range.y = minTop - top;\n }\n break;\n case ACTION_SOUTH:\n if (bottom + range.y > maxHeight) {\n range.y = maxHeight - bottom;\n }\n break;\n }\n };\n switch (action) {\n // Move crop box\n case ACTION_ALL:\n left += range.x;\n top += range.y;\n break;\n\n // Resize crop box\n case ACTION_EAST:\n if (range.x >= 0 && (right >= maxWidth || aspectRatio && (top <= minTop || bottom >= maxHeight))) {\n renderable = false;\n break;\n }\n check(ACTION_EAST);\n width += range.x;\n if (width < 0) {\n action = ACTION_WEST;\n width = -width;\n left -= width;\n }\n if (aspectRatio) {\n height = width / aspectRatio;\n top += (cropBoxData.height - height) / 2;\n }\n break;\n case ACTION_NORTH:\n if (range.y <= 0 && (top <= minTop || aspectRatio && (left <= minLeft || right >= maxWidth))) {\n renderable = false;\n break;\n }\n check(ACTION_NORTH);\n height -= range.y;\n top += range.y;\n if (height < 0) {\n action = ACTION_SOUTH;\n height = -height;\n top -= height;\n }\n if (aspectRatio) {\n width = height * aspectRatio;\n left += (cropBoxData.width - width) / 2;\n }\n break;\n case ACTION_WEST:\n if (range.x <= 0 && (left <= minLeft || aspectRatio && (top <= minTop || bottom >= maxHeight))) {\n renderable = false;\n break;\n }\n check(ACTION_WEST);\n width -= range.x;\n left += range.x;\n if (width < 0) {\n action = ACTION_EAST;\n width = -width;\n left -= width;\n }\n if (aspectRatio) {\n height = width / aspectRatio;\n top += (cropBoxData.height - height) / 2;\n }\n break;\n case ACTION_SOUTH:\n if (range.y >= 0 && (bottom >= maxHeight || aspectRatio && (left <= minLeft || right >= maxWidth))) {\n renderable = false;\n break;\n }\n check(ACTION_SOUTH);\n height += range.y;\n if (height < 0) {\n action = ACTION_NORTH;\n height = -height;\n top -= height;\n }\n if (aspectRatio) {\n width = height * aspectRatio;\n left += (cropBoxData.width - width) / 2;\n }\n break;\n case ACTION_NORTH_EAST:\n if (aspectRatio) {\n if (range.y <= 0 && (top <= minTop || right >= maxWidth)) {\n renderable = false;\n break;\n }\n check(ACTION_NORTH);\n height -= range.y;\n top += range.y;\n width = height * aspectRatio;\n } else {\n check(ACTION_NORTH);\n check(ACTION_EAST);\n if (range.x >= 0) {\n if (right < maxWidth) {\n width += range.x;\n } else if (range.y <= 0 && top <= minTop) {\n renderable = false;\n }\n } else {\n width += range.x;\n }\n if (range.y <= 0) {\n if (top > minTop) {\n height -= range.y;\n top += range.y;\n }\n } else {\n height -= range.y;\n top += range.y;\n }\n }\n if (width < 0 && height < 0) {\n action = ACTION_SOUTH_WEST;\n height = -height;\n width = -width;\n top -= height;\n left -= width;\n } else if (width < 0) {\n action = ACTION_NORTH_WEST;\n width = -width;\n left -= width;\n } else if (height < 0) {\n action = ACTION_SOUTH_EAST;\n height = -height;\n top -= height;\n }\n break;\n case ACTION_NORTH_WEST:\n if (aspectRatio) {\n if (range.y <= 0 && (top <= minTop || left <= minLeft)) {\n renderable = false;\n break;\n }\n check(ACTION_NORTH);\n height -= range.y;\n top += range.y;\n width = height * aspectRatio;\n left += cropBoxData.width - width;\n } else {\n check(ACTION_NORTH);\n check(ACTION_WEST);\n if (range.x <= 0) {\n if (left > minLeft) {\n width -= range.x;\n left += range.x;\n } else if (range.y <= 0 && top <= minTop) {\n renderable = false;\n }\n } else {\n width -= range.x;\n left += range.x;\n }\n if (range.y <= 0) {\n if (top > minTop) {\n height -= range.y;\n top += range.y;\n }\n } else {\n height -= range.y;\n top += range.y;\n }\n }\n if (width < 0 && height < 0) {\n action = ACTION_SOUTH_EAST;\n height = -height;\n width = -width;\n top -= height;\n left -= width;\n } else if (width < 0) {\n action = ACTION_NORTH_EAST;\n width = -width;\n left -= width;\n } else if (height < 0) {\n action = ACTION_SOUTH_WEST;\n height = -height;\n top -= height;\n }\n break;\n case ACTION_SOUTH_WEST:\n if (aspectRatio) {\n if (range.x <= 0 && (left <= minLeft || bottom >= maxHeight)) {\n renderable = false;\n break;\n }\n check(ACTION_WEST);\n width -= range.x;\n left += range.x;\n height = width / aspectRatio;\n } else {\n check(ACTION_SOUTH);\n check(ACTION_WEST);\n if (range.x <= 0) {\n if (left > minLeft) {\n width -= range.x;\n left += range.x;\n } else if (range.y >= 0 && bottom >= maxHeight) {\n renderable = false;\n }\n } else {\n width -= range.x;\n left += range.x;\n }\n if (range.y >= 0) {\n if (bottom < maxHeight) {\n height += range.y;\n }\n } else {\n height += range.y;\n }\n }\n if (width < 0 && height < 0) {\n action = ACTION_NORTH_EAST;\n height = -height;\n width = -width;\n top -= height;\n left -= width;\n } else if (width < 0) {\n action = ACTION_SOUTH_EAST;\n width = -width;\n left -= width;\n } else if (height < 0) {\n action = ACTION_NORTH_WEST;\n height = -height;\n top -= height;\n }\n break;\n case ACTION_SOUTH_EAST:\n if (aspectRatio) {\n if (range.x >= 0 && (right >= maxWidth || bottom >= maxHeight)) {\n renderable = false;\n break;\n }\n check(ACTION_EAST);\n width += range.x;\n height = width / aspectRatio;\n } else {\n check(ACTION_SOUTH);\n check(ACTION_EAST);\n if (range.x >= 0) {\n if (right < maxWidth) {\n width += range.x;\n } else if (range.y >= 0 && bottom >= maxHeight) {\n renderable = false;\n }\n } else {\n width += range.x;\n }\n if (range.y >= 0) {\n if (bottom < maxHeight) {\n height += range.y;\n }\n } else {\n height += range.y;\n }\n }\n if (width < 0 && height < 0) {\n action = ACTION_NORTH_WEST;\n height = -height;\n width = -width;\n top -= height;\n left -= width;\n } else if (width < 0) {\n action = ACTION_SOUTH_WEST;\n width = -width;\n left -= width;\n } else if (height < 0) {\n action = ACTION_NORTH_EAST;\n height = -height;\n top -= height;\n }\n break;\n\n // Move canvas\n case ACTION_MOVE:\n this.move(range.x, range.y);\n renderable = false;\n break;\n\n // Zoom canvas\n case ACTION_ZOOM:\n this.zoom(getMaxZoomRatio(pointers), event);\n renderable = false;\n break;\n\n // Create crop box\n case ACTION_CROP:\n if (!range.x || !range.y) {\n renderable = false;\n break;\n }\n offset = getOffset(this.cropper);\n left = pointer.startX - offset.left;\n top = pointer.startY - offset.top;\n width = cropBoxData.minWidth;\n height = cropBoxData.minHeight;\n if (range.x > 0) {\n action = range.y > 0 ? ACTION_SOUTH_EAST : ACTION_NORTH_EAST;\n } else if (range.x < 0) {\n left -= width;\n action = range.y > 0 ? ACTION_SOUTH_WEST : ACTION_NORTH_WEST;\n }\n if (range.y < 0) {\n top -= height;\n }\n\n // Show the crop box if is hidden\n if (!this.cropped) {\n removeClass(this.cropBox, CLASS_HIDDEN);\n this.cropped = true;\n if (this.limited) {\n this.limitCropBox(true, true);\n }\n }\n break;\n }\n if (renderable) {\n cropBoxData.width = width;\n cropBoxData.height = height;\n cropBoxData.left = left;\n cropBoxData.top = top;\n this.action = action;\n this.renderCropBox();\n }\n\n // Override\n forEach(pointers, function (p) {\n p.startX = p.endX;\n p.startY = p.endY;\n });\n }\n };\n\n var methods = {\n // Show the crop box manually\n crop: function crop() {\n if (this.ready && !this.cropped && !this.disabled) {\n this.cropped = true;\n this.limitCropBox(true, true);\n if (this.options.modal) {\n addClass(this.dragBox, CLASS_MODAL);\n }\n removeClass(this.cropBox, CLASS_HIDDEN);\n this.setCropBoxData(this.initialCropBoxData);\n }\n return this;\n },\n // Reset the image and crop box to their initial states\n reset: function reset() {\n if (this.ready && !this.disabled) {\n this.imageData = assign({}, this.initialImageData);\n this.canvasData = assign({}, this.initialCanvasData);\n this.cropBoxData = assign({}, this.initialCropBoxData);\n this.renderCanvas();\n if (this.cropped) {\n this.renderCropBox();\n }\n }\n return this;\n },\n // Clear the crop box\n clear: function clear() {\n if (this.cropped && !this.disabled) {\n assign(this.cropBoxData, {\n left: 0,\n top: 0,\n width: 0,\n height: 0\n });\n this.cropped = false;\n this.renderCropBox();\n this.limitCanvas(true, true);\n\n // Render canvas after crop box rendered\n this.renderCanvas();\n removeClass(this.dragBox, CLASS_MODAL);\n addClass(this.cropBox, CLASS_HIDDEN);\n }\n return this;\n },\n /**\n * Replace the image's src and rebuild the cropper\n * @param {string} url - The new URL.\n * @param {boolean} [hasSameSize] - Indicate if the new image has the same size as the old one.\n * @returns {Cropper} this\n */\n replace: function replace(url) {\n var hasSameSize = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n if (!this.disabled && url) {\n if (this.isImg) {\n this.element.src = url;\n }\n if (hasSameSize) {\n this.url = url;\n this.image.src = url;\n if (this.ready) {\n this.viewBoxImage.src = url;\n forEach(this.previews, function (element) {\n element.getElementsByTagName('img')[0].src = url;\n });\n }\n } else {\n if (this.isImg) {\n this.replaced = true;\n }\n this.options.data = null;\n this.uncreate();\n this.load(url);\n }\n }\n return this;\n },\n // Enable (unfreeze) the cropper\n enable: function enable() {\n if (this.ready && this.disabled) {\n this.disabled = false;\n removeClass(this.cropper, CLASS_DISABLED);\n }\n return this;\n },\n // Disable (freeze) the cropper\n disable: function disable() {\n if (this.ready && !this.disabled) {\n this.disabled = true;\n addClass(this.cropper, CLASS_DISABLED);\n }\n return this;\n },\n /**\n * Destroy the cropper and remove the instance from the image\n * @returns {Cropper} this\n */\n destroy: function destroy() {\n var element = this.element;\n if (!element[NAMESPACE]) {\n return this;\n }\n element[NAMESPACE] = undefined;\n if (this.isImg && this.replaced) {\n element.src = this.originalUrl;\n }\n this.uncreate();\n return this;\n },\n /**\n * Move the canvas with relative offsets\n * @param {number} offsetX - The relative offset distance on the x-axis.\n * @param {number} [offsetY=offsetX] - The relative offset distance on the y-axis.\n * @returns {Cropper} this\n */\n move: function move(offsetX) {\n var offsetY = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : offsetX;\n var _this$canvasData = this.canvasData,\n left = _this$canvasData.left,\n top = _this$canvasData.top;\n return this.moveTo(isUndefined(offsetX) ? offsetX : left + Number(offsetX), isUndefined(offsetY) ? offsetY : top + Number(offsetY));\n },\n /**\n * Move the canvas to an absolute point\n * @param {number} x - The x-axis coordinate.\n * @param {number} [y=x] - The y-axis coordinate.\n * @returns {Cropper} this\n */\n moveTo: function moveTo(x) {\n var y = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : x;\n var canvasData = this.canvasData;\n var changed = false;\n x = Number(x);\n y = Number(y);\n if (this.ready && !this.disabled && this.options.movable) {\n if (isNumber(x)) {\n canvasData.left = x;\n changed = true;\n }\n if (isNumber(y)) {\n canvasData.top = y;\n changed = true;\n }\n if (changed) {\n this.renderCanvas(true);\n }\n }\n return this;\n },\n /**\n * Zoom the canvas with a relative ratio\n * @param {number} ratio - The target ratio.\n * @param {Event} _originalEvent - The original event if any.\n * @returns {Cropper} this\n */\n zoom: function zoom(ratio, _originalEvent) {\n var canvasData = this.canvasData;\n ratio = Number(ratio);\n if (ratio < 0) {\n ratio = 1 / (1 - ratio);\n } else {\n ratio = 1 + ratio;\n }\n return this.zoomTo(canvasData.width * ratio / canvasData.naturalWidth, null, _originalEvent);\n },\n /**\n * Zoom the canvas to an absolute ratio\n * @param {number} ratio - The target ratio.\n * @param {Object} pivot - The zoom pivot point coordinate.\n * @param {Event} _originalEvent - The original event if any.\n * @returns {Cropper} this\n */\n zoomTo: function zoomTo(ratio, pivot, _originalEvent) {\n var options = this.options,\n canvasData = this.canvasData;\n var width = canvasData.width,\n height = canvasData.height,\n naturalWidth = canvasData.naturalWidth,\n naturalHeight = canvasData.naturalHeight;\n ratio = Number(ratio);\n if (ratio >= 0 && this.ready && !this.disabled && options.zoomable) {\n var newWidth = naturalWidth * ratio;\n var newHeight = naturalHeight * ratio;\n if (dispatchEvent(this.element, EVENT_ZOOM, {\n ratio: ratio,\n oldRatio: width / naturalWidth,\n originalEvent: _originalEvent\n }) === false) {\n return this;\n }\n if (_originalEvent) {\n var pointers = this.pointers;\n var offset = getOffset(this.cropper);\n var center = pointers && Object.keys(pointers).length ? getPointersCenter(pointers) : {\n pageX: _originalEvent.pageX,\n pageY: _originalEvent.pageY\n };\n\n // Zoom from the triggering point of the event\n canvasData.left -= (newWidth - width) * ((center.pageX - offset.left - canvasData.left) / width);\n canvasData.top -= (newHeight - height) * ((center.pageY - offset.top - canvasData.top) / height);\n } else if (isPlainObject(pivot) && isNumber(pivot.x) && isNumber(pivot.y)) {\n canvasData.left -= (newWidth - width) * ((pivot.x - canvasData.left) / width);\n canvasData.top -= (newHeight - height) * ((pivot.y - canvasData.top) / height);\n } else {\n // Zoom from the center of the canvas\n canvasData.left -= (newWidth - width) / 2;\n canvasData.top -= (newHeight - height) / 2;\n }\n canvasData.width = newWidth;\n canvasData.height = newHeight;\n this.renderCanvas(true);\n }\n return this;\n },\n /**\n * Rotate the canvas with a relative degree\n * @param {number} degree - The rotate degree.\n * @returns {Cropper} this\n */\n rotate: function rotate(degree) {\n return this.rotateTo((this.imageData.rotate || 0) + Number(degree));\n },\n /**\n * Rotate the canvas to an absolute degree\n * @param {number} degree - The rotate degree.\n * @returns {Cropper} this\n */\n rotateTo: function rotateTo(degree) {\n degree = Number(degree);\n if (isNumber(degree) && this.ready && !this.disabled && this.options.rotatable) {\n this.imageData.rotate = degree % 360;\n this.renderCanvas(true, true);\n }\n return this;\n },\n /**\n * Scale the image on the x-axis.\n * @param {number} scaleX - The scale ratio on the x-axis.\n * @returns {Cropper} this\n */\n scaleX: function scaleX(_scaleX) {\n var scaleY = this.imageData.scaleY;\n return this.scale(_scaleX, isNumber(scaleY) ? scaleY : 1);\n },\n /**\n * Scale the image on the y-axis.\n * @param {number} scaleY - The scale ratio on the y-axis.\n * @returns {Cropper} this\n */\n scaleY: function scaleY(_scaleY) {\n var scaleX = this.imageData.scaleX;\n return this.scale(isNumber(scaleX) ? scaleX : 1, _scaleY);\n },\n /**\n * Scale the image\n * @param {number} scaleX - The scale ratio on the x-axis.\n * @param {number} [scaleY=scaleX] - The scale ratio on the y-axis.\n * @returns {Cropper} this\n */\n scale: function scale(scaleX) {\n var scaleY = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : scaleX;\n var imageData = this.imageData;\n var transformed = false;\n scaleX = Number(scaleX);\n scaleY = Number(scaleY);\n if (this.ready && !this.disabled && this.options.scalable) {\n if (isNumber(scaleX)) {\n imageData.scaleX = scaleX;\n transformed = true;\n }\n if (isNumber(scaleY)) {\n imageData.scaleY = scaleY;\n transformed = true;\n }\n if (transformed) {\n this.renderCanvas(true, true);\n }\n }\n return this;\n },\n /**\n * Get the cropped area position and size data (base on the original image)\n * @param {boolean} [rounded=false] - Indicate if round the data values or not.\n * @returns {Object} The result cropped data.\n */\n getData: function getData() {\n var rounded = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n var options = this.options,\n imageData = this.imageData,\n canvasData = this.canvasData,\n cropBoxData = this.cropBoxData;\n var data;\n if (this.ready && this.cropped) {\n data = {\n x: cropBoxData.left - canvasData.left,\n y: cropBoxData.top - canvasData.top,\n width: cropBoxData.width,\n height: cropBoxData.height\n };\n var ratio = imageData.width / imageData.naturalWidth;\n forEach(data, function (n, i) {\n data[i] = n / ratio;\n });\n if (rounded) {\n // In case rounding off leads to extra 1px in right or bottom border\n // we should round the top-left corner and the dimension (#343).\n var bottom = Math.round(data.y + data.height);\n var right = Math.round(data.x + data.width);\n data.x = Math.round(data.x);\n data.y = Math.round(data.y);\n data.width = right - data.x;\n data.height = bottom - data.y;\n }\n } else {\n data = {\n x: 0,\n y: 0,\n width: 0,\n height: 0\n };\n }\n if (options.rotatable) {\n data.rotate = imageData.rotate || 0;\n }\n if (options.scalable) {\n data.scaleX = imageData.scaleX || 1;\n data.scaleY = imageData.scaleY || 1;\n }\n return data;\n },\n /**\n * Set the cropped area position and size with new data\n * @param {Object} data - The new data.\n * @returns {Cropper} this\n */\n setData: function setData(data) {\n var options = this.options,\n imageData = this.imageData,\n canvasData = this.canvasData;\n var cropBoxData = {};\n if (this.ready && !this.disabled && isPlainObject(data)) {\n var transformed = false;\n if (options.rotatable) {\n if (isNumber(data.rotate) && data.rotate !== imageData.rotate) {\n imageData.rotate = data.rotate;\n transformed = true;\n }\n }\n if (options.scalable) {\n if (isNumber(data.scaleX) && data.scaleX !== imageData.scaleX) {\n imageData.scaleX = data.scaleX;\n transformed = true;\n }\n if (isNumber(data.scaleY) && data.scaleY !== imageData.scaleY) {\n imageData.scaleY = data.scaleY;\n transformed = true;\n }\n }\n if (transformed) {\n this.renderCanvas(true, true);\n }\n var ratio = imageData.width / imageData.naturalWidth;\n if (isNumber(data.x)) {\n cropBoxData.left = data.x * ratio + canvasData.left;\n }\n if (isNumber(data.y)) {\n cropBoxData.top = data.y * ratio + canvasData.top;\n }\n if (isNumber(data.width)) {\n cropBoxData.width = data.width * ratio;\n }\n if (isNumber(data.height)) {\n cropBoxData.height = data.height * ratio;\n }\n this.setCropBoxData(cropBoxData);\n }\n return this;\n },\n /**\n * Get the container size data.\n * @returns {Object} The result container data.\n */\n getContainerData: function getContainerData() {\n return this.ready ? assign({}, this.containerData) : {};\n },\n /**\n * Get the image position and size data.\n * @returns {Object} The result image data.\n */\n getImageData: function getImageData() {\n return this.sized ? assign({}, this.imageData) : {};\n },\n /**\n * Get the canvas position and size data.\n * @returns {Object} The result canvas data.\n */\n getCanvasData: function getCanvasData() {\n var canvasData = this.canvasData;\n var data = {};\n if (this.ready) {\n forEach(['left', 'top', 'width', 'height', 'naturalWidth', 'naturalHeight'], function (n) {\n data[n] = canvasData[n];\n });\n }\n return data;\n },\n /**\n * Set the canvas position and size with new data.\n * @param {Object} data - The new canvas data.\n * @returns {Cropper} this\n */\n setCanvasData: function setCanvasData(data) {\n var canvasData = this.canvasData;\n var aspectRatio = canvasData.aspectRatio;\n if (this.ready && !this.disabled && isPlainObject(data)) {\n if (isNumber(data.left)) {\n canvasData.left = data.left;\n }\n if (isNumber(data.top)) {\n canvasData.top = data.top;\n }\n if (isNumber(data.width)) {\n canvasData.width = data.width;\n canvasData.height = data.width / aspectRatio;\n } else if (isNumber(data.height)) {\n canvasData.height = data.height;\n canvasData.width = data.height * aspectRatio;\n }\n this.renderCanvas(true);\n }\n return this;\n },\n /**\n * Get the crop box position and size data.\n * @returns {Object} The result crop box data.\n */\n getCropBoxData: function getCropBoxData() {\n var cropBoxData = this.cropBoxData;\n var data;\n if (this.ready && this.cropped) {\n data = {\n left: cropBoxData.left,\n top: cropBoxData.top,\n width: cropBoxData.width,\n height: cropBoxData.height\n };\n }\n return data || {};\n },\n /**\n * Set the crop box position and size with new data.\n * @param {Object} data - The new crop box data.\n * @returns {Cropper} this\n */\n setCropBoxData: function setCropBoxData(data) {\n var cropBoxData = this.cropBoxData;\n var aspectRatio = this.options.aspectRatio;\n var widthChanged;\n var heightChanged;\n if (this.ready && this.cropped && !this.disabled && isPlainObject(data)) {\n if (isNumber(data.left)) {\n cropBoxData.left = data.left;\n }\n if (isNumber(data.top)) {\n cropBoxData.top = data.top;\n }\n if (isNumber(data.width) && data.width !== cropBoxData.width) {\n widthChanged = true;\n cropBoxData.width = data.width;\n }\n if (isNumber(data.height) && data.height !== cropBoxData.height) {\n heightChanged = true;\n cropBoxData.height = data.height;\n }\n if (aspectRatio) {\n if (widthChanged) {\n cropBoxData.height = cropBoxData.width / aspectRatio;\n } else if (heightChanged) {\n cropBoxData.width = cropBoxData.height * aspectRatio;\n }\n }\n this.renderCropBox();\n }\n return this;\n },\n /**\n * Get a canvas drawn the cropped image.\n * @param {Object} [options={}] - The config options.\n * @returns {HTMLCanvasElement} - The result canvas.\n */\n getCroppedCanvas: function getCroppedCanvas() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n if (!this.ready || !window.HTMLCanvasElement) {\n return null;\n }\n var canvasData = this.canvasData;\n var source = getSourceCanvas(this.image, this.imageData, canvasData, options);\n\n // Returns the source canvas if it is not cropped.\n if (!this.cropped) {\n return source;\n }\n var _this$getData = this.getData(options.rounded),\n initialX = _this$getData.x,\n initialY = _this$getData.y,\n initialWidth = _this$getData.width,\n initialHeight = _this$getData.height;\n var ratio = source.width / Math.floor(canvasData.naturalWidth);\n if (ratio !== 1) {\n initialX *= ratio;\n initialY *= ratio;\n initialWidth *= ratio;\n initialHeight *= ratio;\n }\n var aspectRatio = initialWidth / initialHeight;\n var maxSizes = getAdjustedSizes({\n aspectRatio: aspectRatio,\n width: options.maxWidth || Infinity,\n height: options.maxHeight || Infinity\n });\n var minSizes = getAdjustedSizes({\n aspectRatio: aspectRatio,\n width: options.minWidth || 0,\n height: options.minHeight || 0\n }, 'cover');\n var _getAdjustedSizes = getAdjustedSizes({\n aspectRatio: aspectRatio,\n width: options.width || (ratio !== 1 ? source.width : initialWidth),\n height: options.height || (ratio !== 1 ? source.height : initialHeight)\n }),\n width = _getAdjustedSizes.width,\n height = _getAdjustedSizes.height;\n width = Math.min(maxSizes.width, Math.max(minSizes.width, width));\n height = Math.min(maxSizes.height, Math.max(minSizes.height, height));\n var canvas = document.createElement('canvas');\n var context = canvas.getContext('2d');\n canvas.width = normalizeDecimalNumber(width);\n canvas.height = normalizeDecimalNumber(height);\n context.fillStyle = options.fillColor || 'transparent';\n context.fillRect(0, 0, width, height);\n var _options$imageSmoothi = options.imageSmoothingEnabled,\n imageSmoothingEnabled = _options$imageSmoothi === void 0 ? true : _options$imageSmoothi,\n imageSmoothingQuality = options.imageSmoothingQuality;\n context.imageSmoothingEnabled = imageSmoothingEnabled;\n if (imageSmoothingQuality) {\n context.imageSmoothingQuality = imageSmoothingQuality;\n }\n\n // https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.drawImage\n var sourceWidth = source.width;\n var sourceHeight = source.height;\n\n // Source canvas parameters\n var srcX = initialX;\n var srcY = initialY;\n var srcWidth;\n var srcHeight;\n\n // Destination canvas parameters\n var dstX;\n var dstY;\n var dstWidth;\n var dstHeight;\n if (srcX <= -initialWidth || srcX > sourceWidth) {\n srcX = 0;\n srcWidth = 0;\n dstX = 0;\n dstWidth = 0;\n } else if (srcX <= 0) {\n dstX = -srcX;\n srcX = 0;\n srcWidth = Math.min(sourceWidth, initialWidth + srcX);\n dstWidth = srcWidth;\n } else if (srcX <= sourceWidth) {\n dstX = 0;\n srcWidth = Math.min(initialWidth, sourceWidth - srcX);\n dstWidth = srcWidth;\n }\n if (srcWidth <= 0 || srcY <= -initialHeight || srcY > sourceHeight) {\n srcY = 0;\n srcHeight = 0;\n dstY = 0;\n dstHeight = 0;\n } else if (srcY <= 0) {\n dstY = -srcY;\n srcY = 0;\n srcHeight = Math.min(sourceHeight, initialHeight + srcY);\n dstHeight = srcHeight;\n } else if (srcY <= sourceHeight) {\n dstY = 0;\n srcHeight = Math.min(initialHeight, sourceHeight - srcY);\n dstHeight = srcHeight;\n }\n var params = [srcX, srcY, srcWidth, srcHeight];\n\n // Avoid \"IndexSizeError\"\n if (dstWidth > 0 && dstHeight > 0) {\n var scale = width / initialWidth;\n params.push(dstX * scale, dstY * scale, dstWidth * scale, dstHeight * scale);\n }\n\n // All the numerical parameters should be integer for `drawImage`\n // https://github.com/fengyuanchen/cropper/issues/476\n context.drawImage.apply(context, [source].concat(_toConsumableArray(params.map(function (param) {\n return Math.floor(normalizeDecimalNumber(param));\n }))));\n return canvas;\n },\n /**\n * Change the aspect ratio of the crop box.\n * @param {number} aspectRatio - The new aspect ratio.\n * @returns {Cropper} this\n */\n setAspectRatio: function setAspectRatio(aspectRatio) {\n var options = this.options;\n if (!this.disabled && !isUndefined(aspectRatio)) {\n // 0 -> NaN\n options.aspectRatio = Math.max(0, aspectRatio) || NaN;\n if (this.ready) {\n this.initCropBox();\n if (this.cropped) {\n this.renderCropBox();\n }\n }\n }\n return this;\n },\n /**\n * Change the drag mode.\n * @param {string} mode - The new drag mode.\n * @returns {Cropper} this\n */\n setDragMode: function setDragMode(mode) {\n var options = this.options,\n dragBox = this.dragBox,\n face = this.face;\n if (this.ready && !this.disabled) {\n var croppable = mode === DRAG_MODE_CROP;\n var movable = options.movable && mode === DRAG_MODE_MOVE;\n mode = croppable || movable ? mode : DRAG_MODE_NONE;\n options.dragMode = mode;\n setData(dragBox, DATA_ACTION, mode);\n toggleClass(dragBox, CLASS_CROP, croppable);\n toggleClass(dragBox, CLASS_MOVE, movable);\n if (!options.cropBoxMovable) {\n // Sync drag mode to crop box when it is not movable\n setData(face, DATA_ACTION, mode);\n toggleClass(face, CLASS_CROP, croppable);\n toggleClass(face, CLASS_MOVE, movable);\n }\n }\n return this;\n }\n };\n\n var AnotherCropper = WINDOW.Cropper;\n var Cropper = /*#__PURE__*/function () {\n /**\n * Create a new Cropper.\n * @param {Element} element - The target element for cropping.\n * @param {Object} [options={}] - The configuration options.\n */\n function Cropper(element) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n _classCallCheck(this, Cropper);\n if (!element || !REGEXP_TAG_NAME.test(element.tagName)) {\n throw new Error('The first argument is required and must be an <img> or <canvas> element.');\n }\n this.element = element;\n this.options = assign({}, DEFAULTS, isPlainObject(options) && options);\n this.cropped = false;\n this.disabled = false;\n this.pointers = {};\n this.ready = false;\n this.reloading = false;\n this.replaced = false;\n this.sized = false;\n this.sizing = false;\n this.init();\n }\n _createClass(Cropper, [{\n key: \"init\",\n value: function init() {\n var element = this.element;\n var tagName = element.tagName.toLowerCase();\n var url;\n if (element[NAMESPACE]) {\n return;\n }\n element[NAMESPACE] = this;\n if (tagName === 'img') {\n this.isImg = true;\n\n // e.g.: \"img/picture.jpg\"\n url = element.getAttribute('src') || '';\n this.originalUrl = url;\n\n // Stop when it's a blank image\n if (!url) {\n return;\n }\n\n // e.g.: \"https://example.com/img/picture.jpg\"\n url = element.src;\n } else if (tagName === 'canvas' && window.HTMLCanvasElement) {\n url = element.toDataURL();\n }\n this.load(url);\n }\n }, {\n key: \"load\",\n value: function load(url) {\n var _this = this;\n if (!url) {\n return;\n }\n this.url = url;\n this.imageData = {};\n var element = this.element,\n options = this.options;\n if (!options.rotatable && !options.scalable) {\n options.checkOrientation = false;\n }\n\n // Only IE10+ supports Typed Arrays\n if (!options.checkOrientation || !window.ArrayBuffer) {\n this.clone();\n return;\n }\n\n // Detect the mime type of the image directly if it is a Data URL\n if (REGEXP_DATA_URL.test(url)) {\n // Read ArrayBuffer from Data URL of JPEG images directly for better performance\n if (REGEXP_DATA_URL_JPEG.test(url)) {\n this.read(dataURLToArrayBuffer(url));\n } else {\n // Only a JPEG image may contains Exif Orientation information,\n // the rest types of Data URLs are not necessary to check orientation at all.\n this.clone();\n }\n return;\n }\n\n // 1. Detect the mime type of the image by a XMLHttpRequest.\n // 2. Load the image as ArrayBuffer for reading orientation if its a JPEG image.\n var xhr = new XMLHttpRequest();\n var clone = this.clone.bind(this);\n this.reloading = true;\n this.xhr = xhr;\n\n // 1. Cross origin requests are only supported for protocol schemes:\n // http, https, data, chrome, chrome-extension.\n // 2. Access to XMLHttpRequest from a Data URL will be blocked by CORS policy\n // in some browsers as IE11 and Safari.\n xhr.onabort = clone;\n xhr.onerror = clone;\n xhr.ontimeout = clone;\n xhr.onprogress = function () {\n // Abort the request directly if it not a JPEG image for better performance\n if (xhr.getResponseHeader('content-type') !== MIME_TYPE_JPEG) {\n xhr.abort();\n }\n };\n xhr.onload = function () {\n _this.read(xhr.response);\n };\n xhr.onloadend = function () {\n _this.reloading = false;\n _this.xhr = null;\n };\n\n // Bust cache when there is a \"crossOrigin\" property to avoid browser cache error\n if (options.checkCrossOrigin && isCrossOriginURL(url) && element.crossOrigin) {\n url = addTimestamp(url);\n }\n\n // The third parameter is required for avoiding side-effect (#682)\n xhr.open('GET', url, true);\n xhr.responseType = 'arraybuffer';\n xhr.withCredentials = element.crossOrigin === 'use-credentials';\n xhr.send();\n }\n }, {\n key: \"read\",\n value: function read(arrayBuffer) {\n var options = this.options,\n imageData = this.imageData;\n\n // Reset the orientation value to its default value 1\n // as some iOS browsers will render image with its orientation\n var orientation = resetAndGetOrientation(arrayBuffer);\n var rotate = 0;\n var scaleX = 1;\n var scaleY = 1;\n if (orientation > 1) {\n // Generate a new URL which has the default orientation value\n this.url = arrayBufferToDataURL(arrayBuffer, MIME_TYPE_JPEG);\n var _parseOrientation = parseOrientation(orientation);\n rotate = _parseOrientation.rotate;\n scaleX = _parseOrientation.scaleX;\n scaleY = _parseOrientation.scaleY;\n }\n if (options.rotatable) {\n imageData.rotate = rotate;\n }\n if (options.scalable) {\n imageData.scaleX = scaleX;\n imageData.scaleY = scaleY;\n }\n this.clone();\n }\n }, {\n key: \"clone\",\n value: function clone() {\n var element = this.element,\n url = this.url;\n var crossOrigin = element.crossOrigin;\n var crossOriginUrl = url;\n if (this.options.checkCrossOrigin && isCrossOriginURL(url)) {\n if (!crossOrigin) {\n crossOrigin = 'anonymous';\n }\n\n // Bust cache when there is not a \"crossOrigin\" property (#519)\n crossOriginUrl = addTimestamp(url);\n }\n this.crossOrigin = crossOrigin;\n this.crossOriginUrl = crossOriginUrl;\n var image = document.createElement('img');\n if (crossOrigin) {\n image.crossOrigin = crossOrigin;\n }\n image.src = crossOriginUrl || url;\n image.alt = element.alt || 'The image to crop';\n this.image = image;\n image.onload = this.start.bind(this);\n image.onerror = this.stop.bind(this);\n addClass(image, CLASS_HIDE);\n element.parentNode.insertBefore(image, element.nextSibling);\n }\n }, {\n key: \"start\",\n value: function start() {\n var _this2 = this;\n var image = this.image;\n image.onload = null;\n image.onerror = null;\n this.sizing = true;\n\n // Match all browsers that use WebKit as the layout engine in iOS devices,\n // such as Safari for iOS, Chrome for iOS, and in-app browsers.\n var isIOSWebKit = WINDOW.navigator && /(?:iPad|iPhone|iPod).*?AppleWebKit/i.test(WINDOW.navigator.userAgent);\n var done = function done(naturalWidth, naturalHeight) {\n assign(_this2.imageData, {\n naturalWidth: naturalWidth,\n naturalHeight: naturalHeight,\n aspectRatio: naturalWidth / naturalHeight\n });\n _this2.initialImageData = assign({}, _this2.imageData);\n _this2.sizing = false;\n _this2.sized = true;\n _this2.build();\n };\n\n // Most modern browsers (excepts iOS WebKit)\n if (image.naturalWidth && !isIOSWebKit) {\n done(image.naturalWidth, image.naturalHeight);\n return;\n }\n var sizingImage = document.createElement('img');\n var body = document.body || document.documentElement;\n this.sizingImage = sizingImage;\n sizingImage.onload = function () {\n done(sizingImage.width, sizingImage.height);\n if (!isIOSWebKit) {\n body.removeChild(sizingImage);\n }\n };\n sizingImage.src = image.src;\n\n // iOS WebKit will convert the image automatically\n // with its orientation once append it into DOM (#279)\n if (!isIOSWebKit) {\n sizingImage.style.cssText = 'left:0;' + 'max-height:none!important;' + 'max-width:none!important;' + 'min-height:0!important;' + 'min-width:0!important;' + 'opacity:0;' + 'position:absolute;' + 'top:0;' + 'z-index:-1;';\n body.appendChild(sizingImage);\n }\n }\n }, {\n key: \"stop\",\n value: function stop() {\n var image = this.image;\n image.onload = null;\n image.onerror = null;\n image.parentNode.removeChild(image);\n this.image = null;\n }\n }, {\n key: \"build\",\n value: function build() {\n if (!this.sized || this.ready) {\n return;\n }\n var element = this.element,\n options = this.options,\n image = this.image;\n\n // Create cropper elements\n var container = element.parentNode;\n var template = document.createElement('div');\n template.innerHTML = TEMPLATE;\n var cropper = template.querySelector(\".\".concat(NAMESPACE, \"-container\"));\n var canvas = cropper.querySelector(\".\".concat(NAMESPACE, \"-canvas\"));\n var dragBox = cropper.querySelector(\".\".concat(NAMESPACE, \"-drag-box\"));\n var cropBox = cropper.querySelector(\".\".concat(NAMESPACE, \"-crop-box\"));\n var face = cropBox.querySelector(\".\".concat(NAMESPACE, \"-face\"));\n this.container = container;\n this.cropper = cropper;\n this.canvas = canvas;\n this.dragBox = dragBox;\n this.cropBox = cropBox;\n this.viewBox = cropper.querySelector(\".\".concat(NAMESPACE, \"-view-box\"));\n this.face = face;\n canvas.appendChild(image);\n\n // Hide the original image\n addClass(element, CLASS_HIDDEN);\n\n // Inserts the cropper after to the current image\n container.insertBefore(cropper, element.nextSibling);\n\n // Show the hidden image\n removeClass(image, CLASS_HIDE);\n this.initPreview();\n this.bind();\n options.initialAspectRatio = Math.max(0, options.initialAspectRatio) || NaN;\n options.aspectRatio = Math.max(0, options.aspectRatio) || NaN;\n options.viewMode = Math.max(0, Math.min(3, Math.round(options.viewMode))) || 0;\n addClass(cropBox, CLASS_HIDDEN);\n if (!options.guides) {\n addClass(cropBox.getElementsByClassName(\"\".concat(NAMESPACE, \"-dashed\")), CLASS_HIDDEN);\n }\n if (!options.center) {\n addClass(cropBox.getElementsByClassName(\"\".concat(NAMESPACE, \"-center\")), CLASS_HIDDEN);\n }\n if (options.background) {\n addClass(cropper, \"\".concat(NAMESPACE, \"-bg\"));\n }\n if (!options.highlight) {\n addClass(face, CLASS_INVISIBLE);\n }\n if (options.cropBoxMovable) {\n addClass(face, CLASS_MOVE);\n setData(face, DATA_ACTION, ACTION_ALL);\n }\n if (!options.cropBoxResizable) {\n addClass(cropBox.getElementsByClassName(\"\".concat(NAMESPACE, \"-line\")), CLASS_HIDDEN);\n addClass(cropBox.getElementsByClassName(\"\".concat(NAMESPACE, \"-point\")), CLASS_HIDDEN);\n }\n this.render();\n this.ready = true;\n this.setDragMode(options.dragMode);\n if (options.autoCrop) {\n this.crop();\n }\n this.setData(options.data);\n if (isFunction(options.ready)) {\n addListener(element, EVENT_READY, options.ready, {\n once: true\n });\n }\n dispatchEvent(element, EVENT_READY);\n }\n }, {\n key: \"unbuild\",\n value: function unbuild() {\n if (!this.ready) {\n return;\n }\n this.ready = false;\n this.unbind();\n this.resetPreview();\n var parentNode = this.cropper.parentNode;\n if (parentNode) {\n parentNode.removeChild(this.cropper);\n }\n removeClass(this.element, CLASS_HIDDEN);\n }\n }, {\n key: \"uncreate\",\n value: function uncreate() {\n if (this.ready) {\n this.unbuild();\n this.ready = false;\n this.cropped = false;\n } else if (this.sizing) {\n this.sizingImage.onload = null;\n this.sizing = false;\n this.sized = false;\n } else if (this.reloading) {\n this.xhr.onabort = null;\n this.xhr.abort();\n } else if (this.image) {\n this.stop();\n }\n }\n\n /**\n * Get the no conflict cropper class.\n * @returns {Cropper} The cropper class.\n */\n }], [{\n key: \"noConflict\",\n value: function noConflict() {\n window.Cropper = AnotherCropper;\n return Cropper;\n }\n\n /**\n * Change the default options.\n * @param {Object} options - The new default options.\n */\n }, {\n key: \"setDefaults\",\n value: function setDefaults(options) {\n assign(DEFAULTS, isPlainObject(options) && options);\n }\n }]);\n return Cropper;\n }();\n assign(Cropper.prototype, render, preview, events, handlers, change, methods);\n\n return Cropper;\n\n}));\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_GET_URL_IMPORT___ from \"../../css-loader/dist/runtime/getUrl.js\";\nvar ___CSS_LOADER_URL_IMPORT_0___ = new URL(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQAQMAAAAlPW0iAAAAA3NCSVQICAjb4U/gAAAABlBMVEXMzMz////TjRV2AAAACXBIWXMAAArrAAAK6wGCiw1aAAAAHHRFWHRTb2Z0d2FyZQBBZG9iZSBGaXJld29ya3MgQ1M26LyyjAAAABFJREFUCJlj+M/AgBVhF/0PAH6/D/HkDxOGAAAAAElFTkSuQmCC\", import.meta.url);\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `/*!\n * Cropper.js v1.6.1\n * https://fengyuanchen.github.io/cropperjs\n *\n * Copyright 2015-present Chen Fengyuan\n * Released under the MIT license\n *\n * Date: 2023-09-17T03:44:17.565Z\n */\n\n.cropper-container {\n direction: ltr;\n font-size: 0;\n line-height: 0;\n position: relative;\n -ms-touch-action: none;\n touch-action: none;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n\n.cropper-container img {\n backface-visibility: hidden;\n display: block;\n height: 100%;\n image-orientation: 0deg;\n max-height: none !important;\n max-width: none !important;\n min-height: 0 !important;\n min-width: 0 !important;\n width: 100%;\n }\n\n.cropper-wrap-box,\n.cropper-canvas,\n.cropper-drag-box,\n.cropper-crop-box,\n.cropper-modal {\n bottom: 0;\n left: 0;\n position: absolute;\n right: 0;\n top: 0;\n}\n\n.cropper-wrap-box,\n.cropper-canvas {\n overflow: hidden;\n}\n\n.cropper-drag-box {\n background-color: #fff;\n opacity: 0;\n}\n\n.cropper-modal {\n background-color: #000;\n opacity: 0.5;\n}\n\n.cropper-view-box {\n display: block;\n height: 100%;\n outline: 1px solid #39f;\n outline-color: rgba(51, 153, 255, 0.75);\n overflow: hidden;\n width: 100%;\n}\n\n.cropper-dashed {\n border: 0 dashed #eee;\n display: block;\n opacity: 0.5;\n position: absolute;\n}\n\n.cropper-dashed.dashed-h {\n border-bottom-width: 1px;\n border-top-width: 1px;\n height: calc(100% / 3);\n left: 0;\n top: calc(100% / 3);\n width: 100%;\n }\n\n.cropper-dashed.dashed-v {\n border-left-width: 1px;\n border-right-width: 1px;\n height: 100%;\n left: calc(100% / 3);\n top: 0;\n width: calc(100% / 3);\n }\n\n.cropper-center {\n display: block;\n height: 0;\n left: 50%;\n opacity: 0.75;\n position: absolute;\n top: 50%;\n width: 0;\n}\n\n.cropper-center::before,\n .cropper-center::after {\n background-color: #eee;\n content: ' ';\n display: block;\n position: absolute;\n }\n\n.cropper-center::before {\n height: 1px;\n left: -3px;\n top: 0;\n width: 7px;\n }\n\n.cropper-center::after {\n height: 7px;\n left: 0;\n top: -3px;\n width: 1px;\n }\n\n.cropper-face,\n.cropper-line,\n.cropper-point {\n display: block;\n height: 100%;\n opacity: 0.1;\n position: absolute;\n width: 100%;\n}\n\n.cropper-face {\n background-color: #fff;\n left: 0;\n top: 0;\n}\n\n.cropper-line {\n background-color: #39f;\n}\n\n.cropper-line.line-e {\n cursor: ew-resize;\n right: -3px;\n top: 0;\n width: 5px;\n }\n\n.cropper-line.line-n {\n cursor: ns-resize;\n height: 5px;\n left: 0;\n top: -3px;\n }\n\n.cropper-line.line-w {\n cursor: ew-resize;\n left: -3px;\n top: 0;\n width: 5px;\n }\n\n.cropper-line.line-s {\n bottom: -3px;\n cursor: ns-resize;\n height: 5px;\n left: 0;\n }\n\n.cropper-point {\n background-color: #39f;\n height: 5px;\n opacity: 0.75;\n width: 5px;\n}\n\n.cropper-point.point-e {\n cursor: ew-resize;\n margin-top: -3px;\n right: -3px;\n top: 50%;\n }\n\n.cropper-point.point-n {\n cursor: ns-resize;\n left: 50%;\n margin-left: -3px;\n top: -3px;\n }\n\n.cropper-point.point-w {\n cursor: ew-resize;\n left: -3px;\n margin-top: -3px;\n top: 50%;\n }\n\n.cropper-point.point-s {\n bottom: -3px;\n cursor: s-resize;\n left: 50%;\n margin-left: -3px;\n }\n\n.cropper-point.point-ne {\n cursor: nesw-resize;\n right: -3px;\n top: -3px;\n }\n\n.cropper-point.point-nw {\n cursor: nwse-resize;\n left: -3px;\n top: -3px;\n }\n\n.cropper-point.point-sw {\n bottom: -3px;\n cursor: nesw-resize;\n left: -3px;\n }\n\n.cropper-point.point-se {\n bottom: -3px;\n cursor: nwse-resize;\n height: 20px;\n opacity: 1;\n right: -3px;\n width: 20px;\n }\n\n@media (min-width: 768px) {\n\n.cropper-point.point-se {\n height: 15px;\n width: 15px;\n }\n }\n\n@media (min-width: 992px) {\n\n.cropper-point.point-se {\n height: 10px;\n width: 10px;\n }\n }\n\n@media (min-width: 1200px) {\n\n.cropper-point.point-se {\n height: 5px;\n opacity: 0.75;\n width: 5px;\n }\n }\n\n.cropper-point.point-se::before {\n background-color: #39f;\n bottom: -50%;\n content: ' ';\n display: block;\n height: 200%;\n opacity: 0;\n position: absolute;\n right: -50%;\n width: 200%;\n }\n\n.cropper-invisible {\n opacity: 0;\n}\n\n.cropper-bg {\n background-image: url(${___CSS_LOADER_URL_REPLACEMENT_0___});\n}\n\n.cropper-hide {\n display: block;\n height: 0;\n position: absolute;\n width: 0;\n}\n\n.cropper-hidden {\n display: none !important;\n}\n\n.cropper-move {\n cursor: move;\n}\n\n.cropper-crop {\n cursor: crosshair;\n}\n\n.cropper-disabled .cropper-drag-box,\n.cropper-disabled .cropper-face,\n.cropper-disabled .cropper-line,\n.cropper-disabled .cropper-point {\n cursor: not-allowed;\n}\n`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/cropperjs/dist/cropper.css\"],\"names\":[],\"mappings\":\"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\",\"sourcesContent\":[\"/*!\\n * Cropper.js v1.6.1\\n * https://fengyuanchen.github.io/cropperjs\\n *\\n * Copyright 2015-present Chen Fengyuan\\n * Released under the MIT license\\n *\\n * Date: 2023-09-17T03:44:17.565Z\\n */\\n\\n.cropper-container {\\n direction: ltr;\\n font-size: 0;\\n line-height: 0;\\n position: relative;\\n -ms-touch-action: none;\\n touch-action: none;\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n -ms-user-select: none;\\n user-select: none;\\n}\\n\\n.cropper-container img {\\n backface-visibility: hidden;\\n display: block;\\n height: 100%;\\n image-orientation: 0deg;\\n max-height: none !important;\\n max-width: none !important;\\n min-height: 0 !important;\\n min-width: 0 !important;\\n width: 100%;\\n }\\n\\n.cropper-wrap-box,\\n.cropper-canvas,\\n.cropper-drag-box,\\n.cropper-crop-box,\\n.cropper-modal {\\n bottom: 0;\\n left: 0;\\n position: absolute;\\n right: 0;\\n top: 0;\\n}\\n\\n.cropper-wrap-box,\\n.cropper-canvas {\\n overflow: hidden;\\n}\\n\\n.cropper-drag-box {\\n background-color: #fff;\\n opacity: 0;\\n}\\n\\n.cropper-modal {\\n background-color: #000;\\n opacity: 0.5;\\n}\\n\\n.cropper-view-box {\\n display: block;\\n height: 100%;\\n outline: 1px solid #39f;\\n outline-color: rgba(51, 153, 255, 0.75);\\n overflow: hidden;\\n width: 100%;\\n}\\n\\n.cropper-dashed {\\n border: 0 dashed #eee;\\n display: block;\\n opacity: 0.5;\\n position: absolute;\\n}\\n\\n.cropper-dashed.dashed-h {\\n border-bottom-width: 1px;\\n border-top-width: 1px;\\n height: calc(100% / 3);\\n left: 0;\\n top: calc(100% / 3);\\n width: 100%;\\n }\\n\\n.cropper-dashed.dashed-v {\\n border-left-width: 1px;\\n border-right-width: 1px;\\n height: 100%;\\n left: calc(100% / 3);\\n top: 0;\\n width: calc(100% / 3);\\n }\\n\\n.cropper-center {\\n display: block;\\n height: 0;\\n left: 50%;\\n opacity: 0.75;\\n position: absolute;\\n top: 50%;\\n width: 0;\\n}\\n\\n.cropper-center::before,\\n .cropper-center::after {\\n background-color: #eee;\\n content: ' ';\\n display: block;\\n position: absolute;\\n }\\n\\n.cropper-center::before {\\n height: 1px;\\n left: -3px;\\n top: 0;\\n width: 7px;\\n }\\n\\n.cropper-center::after {\\n height: 7px;\\n left: 0;\\n top: -3px;\\n width: 1px;\\n }\\n\\n.cropper-face,\\n.cropper-line,\\n.cropper-point {\\n display: block;\\n height: 100%;\\n opacity: 0.1;\\n position: absolute;\\n width: 100%;\\n}\\n\\n.cropper-face {\\n background-color: #fff;\\n left: 0;\\n top: 0;\\n}\\n\\n.cropper-line {\\n background-color: #39f;\\n}\\n\\n.cropper-line.line-e {\\n cursor: ew-resize;\\n right: -3px;\\n top: 0;\\n width: 5px;\\n }\\n\\n.cropper-line.line-n {\\n cursor: ns-resize;\\n height: 5px;\\n left: 0;\\n top: -3px;\\n }\\n\\n.cropper-line.line-w {\\n cursor: ew-resize;\\n left: -3px;\\n top: 0;\\n width: 5px;\\n }\\n\\n.cropper-line.line-s {\\n bottom: -3px;\\n cursor: ns-resize;\\n height: 5px;\\n left: 0;\\n }\\n\\n.cropper-point {\\n background-color: #39f;\\n height: 5px;\\n opacity: 0.75;\\n width: 5px;\\n}\\n\\n.cropper-point.point-e {\\n cursor: ew-resize;\\n margin-top: -3px;\\n right: -3px;\\n top: 50%;\\n }\\n\\n.cropper-point.point-n {\\n cursor: ns-resize;\\n left: 50%;\\n margin-left: -3px;\\n top: -3px;\\n }\\n\\n.cropper-point.point-w {\\n cursor: ew-resize;\\n left: -3px;\\n margin-top: -3px;\\n top: 50%;\\n }\\n\\n.cropper-point.point-s {\\n bottom: -3px;\\n cursor: s-resize;\\n left: 50%;\\n margin-left: -3px;\\n }\\n\\n.cropper-point.point-ne {\\n cursor: nesw-resize;\\n right: -3px;\\n top: -3px;\\n }\\n\\n.cropper-point.point-nw {\\n cursor: nwse-resize;\\n left: -3px;\\n top: -3px;\\n }\\n\\n.cropper-point.point-sw {\\n bottom: -3px;\\n cursor: nesw-resize;\\n left: -3px;\\n }\\n\\n.cropper-point.point-se {\\n bottom: -3px;\\n cursor: nwse-resize;\\n height: 20px;\\n opacity: 1;\\n right: -3px;\\n width: 20px;\\n }\\n\\n@media (min-width: 768px) {\\n\\n.cropper-point.point-se {\\n height: 15px;\\n width: 15px;\\n }\\n }\\n\\n@media (min-width: 992px) {\\n\\n.cropper-point.point-se {\\n height: 10px;\\n width: 10px;\\n }\\n }\\n\\n@media (min-width: 1200px) {\\n\\n.cropper-point.point-se {\\n height: 5px;\\n opacity: 0.75;\\n width: 5px;\\n }\\n }\\n\\n.cropper-point.point-se::before {\\n background-color: #39f;\\n bottom: -50%;\\n content: ' ';\\n display: block;\\n height: 200%;\\n opacity: 0;\\n position: absolute;\\n right: -50%;\\n width: 200%;\\n }\\n\\n.cropper-invisible {\\n opacity: 0;\\n}\\n\\n.cropper-bg {\\n background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQAQMAAAAlPW0iAAAAA3NCSVQICAjb4U/gAAAABlBMVEXMzMz////TjRV2AAAACXBIWXMAAArrAAAK6wGCiw1aAAAAHHRFWHRTb2Z0d2FyZQBBZG9iZSBGaXJld29ya3MgQ1M26LyyjAAAABFJREFUCJlj+M/AgBVhF/0PAH6/D/HkDxOGAAAAAElFTkSuQmCC');\\n}\\n\\n.cropper-hide {\\n display: block;\\n height: 0;\\n position: absolute;\\n width: 0;\\n}\\n\\n.cropper-hidden {\\n display: none !important;\\n}\\n\\n.cropper-move {\\n cursor: move;\\n}\\n\\n.cropper-crop {\\n cursor: crosshair;\\n}\\n\\n.cropper-disabled .cropper-drag-box,\\n.cropper-disabled .cropper-face,\\n.cropper-disabled .cropper-line,\\n.cropper-disabled .cropper-point {\\n cursor: not-allowed;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `section[data-v-21571d36]{grid-row:1/3;padding:10px 10px}.avatar__container[data-v-21571d36]{margin:0 auto;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:16px 0;width:min(100%,300px)}.avatar__container span[data-v-21571d36]{color:var(--color-text-lighter)}.avatar__preview[data-v-21571d36]{display:flex;justify-content:center;align-items:center;width:180px;height:180px}.avatar__buttons[data-v-21571d36]{display:flex;gap:0 10px}.avatar__cropper[data-v-21571d36]{width:300px;height:300px;overflow:hidden}.avatar__cropper-buttons[data-v-21571d36]{width:100%;display:flex;justify-content:space-between}.avatar__cropper[data-v-21571d36] .cropper-view-box{border-radius:50%}input[type=file][data-v-21571d36]{display:none}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/components/PersonalInfo/AvatarSection.vue\"],\"names\":[],\"mappings\":\"AACA,yBACC,YAAA,CACA,iBAAA,CAGA,oCACC,aAAA,CACA,YAAA,CACA,qBAAA,CACA,sBAAA,CACA,kBAAA,CACA,UAAA,CACA,qBAAA,CAEA,yCACC,+BAAA,CAIF,kCACC,YAAA,CACA,sBAAA,CACA,kBAAA,CACA,WAAA,CACA,YAAA,CAGD,kCACC,YAAA,CACA,UAAA,CAGD,kCACC,WAAA,CACA,YAAA,CACA,eAAA,CAEA,0CACC,UAAA,CACA,YAAA,CACA,6BAAA,CAGD,oDACC,iBAAA,CAKH,kCACC,YAAA\",\"sourcesContent\":[\"\\nsection {\\n\\tgrid-row: 1/3;\\n\\tpadding: 10px 10px;\\n}\\n.avatar {\\n\\t&__container {\\n\\t\\tmargin: 0 auto;\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: column;\\n\\t\\tjustify-content: center;\\n\\t\\talign-items: center;\\n\\t\\tgap: 16px 0;\\n\\t\\twidth: min(100%, 300px);\\n\\n\\t\\tspan {\\n\\t\\t\\tcolor: var(--color-text-lighter);\\n\\t\\t}\\n\\t}\\n\\n\\t&__preview {\\n\\t\\tdisplay: flex;\\n\\t\\tjustify-content: center;\\n\\t\\talign-items: center;\\n\\t\\twidth: 180px;\\n\\t\\theight: 180px;\\n\\t}\\n\\n\\t&__buttons {\\n\\t\\tdisplay: flex;\\n\\t\\tgap: 0 10px;\\n\\t}\\n\\n\\t&__cropper {\\n\\t\\twidth: 300px;\\n\\t\\theight: 300px;\\n\\t\\toverflow: hidden;\\n\\n\\t\\t&-buttons {\\n\\t\\t\\twidth: 100%;\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\tjustify-content: space-between;\\n\\t\\t}\\n\\n\\t\\t&::v-deep .cropper-view-box {\\n\\t\\t\\tborder-radius: 50%;\\n\\t\\t}\\n\\t}\\n}\\n\\ninput[type=\\\"file\\\"] {\\n\\tdisplay: none;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.details[data-v-f432848e]{display:flex;flex-direction:column;margin:10px 32px 10px 0;gap:16px 0;color:var(--color-text-lighter)}.details__groups[data-v-f432848e],.details__quota[data-v-f432848e]{display:flex;gap:0 10px}.details__groups-info[data-v-f432848e],.details__quota-info[data-v-f432848e]{display:flex;flex-direction:column;width:100%;gap:4px 0}.details__groups-list[data-v-f432848e],.details__quota-list[data-v-f432848e]{font-weight:bold}.details__groups[data-v-f432848e] .material-design-icon,.details__quota[data-v-f432848e] .material-design-icon{align-self:flex-start;margin-top:2px}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/components/PersonalInfo/DetailsSection.vue\"],\"names\":[],\"mappings\":\"AACA,0BACC,YAAA,CACA,qBAAA,CACA,uBAAA,CACA,UAAA,CACA,+BAAA,CAEA,mEAEC,YAAA,CACA,UAAA,CAEA,6EACC,YAAA,CACA,qBAAA,CACA,UAAA,CACA,SAAA,CAGD,6EACC,gBAAA,CAGD,+GACC,qBAAA,CACA,cAAA\",\"sourcesContent\":[\"\\n.details {\\n\\tdisplay: flex;\\n\\tflex-direction: column;\\n\\tmargin: 10px 32px 10px 0;\\n\\tgap: 16px 0;\\n\\tcolor: var(--color-text-lighter);\\n\\n\\t&__groups,\\n\\t&__quota {\\n\\t\\tdisplay: flex;\\n\\t\\tgap: 0 10px;\\n\\n\\t\\t&-info {\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\tflex-direction: column;\\n\\t\\t\\twidth: 100%;\\n\\t\\t\\tgap: 4px 0;\\n\\t\\t}\\n\\n\\t\\t&-list {\\n\\t\\t\\tfont-weight: bold;\\n\\t\\t}\\n\\n\\t\\t&::v-deep .material-design-icon {\\n\\t\\t\\talign-self: flex-start;\\n\\t\\t\\tmargin-top: 2px;\\n\\t\\t}\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.email[data-v-60546b46]{display:grid;align-items:center}.email input[data-v-60546b46]{grid-area:1/1;width:100%}.email .email__actions-container[data-v-60546b46]{grid-area:1/1;justify-self:flex-end;height:30px;display:flex;gap:0 2px;margin-right:5px}.email .email__actions-container .email__actions[data-v-60546b46]:hover,.email .email__actions-container .email__actions[data-v-60546b46]:focus,.email .email__actions-container .email__actions[data-v-60546b46]:active{opacity:.8 !important}.email .email__actions-container .email__actions[data-v-60546b46] button{height:30px !important;min-height:30px !important;width:30px !important;min-width:30px !important}.email__helper-text-message[data-v-60546b46]{padding:4px 0;display:flex;align-items:center}.email__helper-text-message__icon[data-v-60546b46]{margin-right:8px;align-self:start;margin-top:4px}.email__helper-text-message--error[data-v-60546b46]{color:var(--color-error)}.fade-enter[data-v-60546b46],.fade-leave-to[data-v-60546b46]{opacity:0}.fade-enter-active[data-v-60546b46]{transition:opacity 200ms ease-out}.fade-leave-active[data-v-60546b46]{transition:opacity 300ms ease-out}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/components/PersonalInfo/EmailSection/Email.vue\"],\"names\":[],\"mappings\":\"AACA,wBACC,YAAA,CACA,kBAAA,CAEA,8BACC,aAAA,CACA,UAAA,CAGD,kDACC,aAAA,CACA,qBAAA,CACA,WAAA,CAEA,YAAA,CACA,SAAA,CACA,gBAAA,CAGC,yNAGC,qBAAA,CAGD,yEACC,sBAAA,CACA,0BAAA,CACA,qBAAA,CACA,yBAAA,CAKH,6CACC,aAAA,CACA,YAAA,CACA,kBAAA,CAEA,mDACC,gBAAA,CACA,gBAAA,CACA,cAAA,CAGD,oDACC,wBAAA,CAKH,6DAEC,SAAA,CAGD,oCACC,iCAAA,CAGD,oCACC,iCAAA\",\"sourcesContent\":[\"\\n.email {\\n\\tdisplay: grid;\\n\\talign-items: center;\\n\\n\\tinput {\\n\\t\\tgrid-area: 1 / 1;\\n\\t\\twidth: 100%;\\n\\t}\\n\\n\\t.email__actions-container {\\n\\t\\tgrid-area: 1 / 1;\\n\\t\\tjustify-self: flex-end;\\n\\t\\theight: 30px;\\n\\n\\t\\tdisplay: flex;\\n\\t\\tgap: 0 2px;\\n\\t\\tmargin-right: 5px;\\n\\n\\t\\t.email__actions {\\n\\t\\t\\t&:hover,\\n\\t\\t\\t&:focus,\\n\\t\\t\\t&:active {\\n\\t\\t\\t\\topacity: 0.8 !important;\\n\\t\\t\\t}\\n\\n\\t\\t\\t&::v-deep button {\\n\\t\\t\\t\\theight: 30px !important;\\n\\t\\t\\t\\tmin-height: 30px !important;\\n\\t\\t\\t\\twidth: 30px !important;\\n\\t\\t\\t\\tmin-width: 30px !important;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t&__helper-text-message {\\n\\t\\tpadding: 4px 0;\\n\\t\\tdisplay: flex;\\n\\t\\talign-items: center;\\n\\n\\t\\t&__icon {\\n\\t\\t\\tmargin-right: 8px;\\n\\t\\t\\talign-self: start;\\n\\t\\t\\tmargin-top: 4px;\\n\\t\\t}\\n\\n\\t\\t&--error {\\n\\t\\t\\tcolor: var(--color-error);\\n\\t\\t}\\n\\t}\\n}\\n\\n.fade-enter,\\n.fade-leave-to {\\n\\topacity: 0;\\n}\\n\\n.fade-enter-active {\\n\\ttransition: opacity 200ms ease-out;\\n}\\n\\n.fade-leave-active {\\n\\ttransition: opacity 300ms ease-out;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `section[data-v-548961e2]{padding:10px 10px}section[data-v-548961e2] button:disabled{cursor:default}section .additional-emails-label[data-v-548961e2]{display:block;margin-top:16px}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/components/PersonalInfo/EmailSection/EmailSection.vue\"],\"names\":[],\"mappings\":\"AACA,yBACC,iBAAA,CAEA,yCACC,cAAA,CAGD,kDACC,aAAA,CACA,eAAA\",\"sourcesContent\":[\"\\nsection {\\n\\tpadding: 10px 10px;\\n\\n\\t&::v-deep button:disabled {\\n\\t\\tcursor: default;\\n\\t}\\n\\n\\t.additional-emails-label {\\n\\t\\tdisplay: block;\\n\\t\\tmargin-top: 16px;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.language[data-v-395f9cd4]{display:grid}.language select[data-v-395f9cd4]{width:100%}.language a[data-v-395f9cd4]{color:var(--color-main-text);text-decoration:none;width:max-content}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/components/PersonalInfo/LanguageSection/Language.vue\"],\"names\":[],\"mappings\":\"AACA,2BACC,YAAA,CAEA,kCACC,UAAA,CAGD,6BACC,4BAAA,CACA,oBAAA,CACA,iBAAA\",\"sourcesContent\":[\"\\n.language {\\n\\tdisplay: grid;\\n\\n\\tselect {\\n\\t\\twidth: 100%;\\n\\t}\\n\\n\\ta {\\n\\t\\tcolor: var(--color-main-text);\\n\\t\\ttext-decoration: none;\\n\\t\\twidth: max-content;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `section[data-v-92685b76]{padding:10px 10px}section[data-v-92685b76] button:disabled{cursor:default}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/components/PersonalInfo/LanguageSection/LanguageSection.vue\"],\"names\":[],\"mappings\":\"AACA,yBACC,iBAAA,CAEA,yCACC,cAAA\",\"sourcesContent\":[\"\\nsection {\\n\\tpadding: 10px 10px;\\n\\n\\t&::v-deep button:disabled {\\n\\t\\tcursor: default;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.locale[data-v-12e4d6c8]{display:grid}.locale select[data-v-12e4d6c8]{width:100%}.example[data-v-12e4d6c8]{margin:10px 0;display:flex;gap:0 10px;color:var(--color-text-lighter)}.example[data-v-12e4d6c8] .material-design-icon{align-self:flex-start;margin-top:2px}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/components/PersonalInfo/LocaleSection/Locale.vue\"],\"names\":[],\"mappings\":\"AACA,yBACC,YAAA,CAEA,gCACC,UAAA,CAIF,0BACC,aAAA,CACA,YAAA,CACA,UAAA,CACA,+BAAA,CAEA,gDACC,qBAAA,CACA,cAAA\",\"sourcesContent\":[\"\\n.locale {\\n\\tdisplay: grid;\\n\\n\\tselect {\\n\\t\\twidth: 100%;\\n\\t}\\n}\\n\\n.example {\\n\\tmargin: 10px 0;\\n\\tdisplay: flex;\\n\\tgap: 0 10px;\\n\\tcolor: var(--color-text-lighter);\\n\\n\\t&::v-deep .material-design-icon {\\n\\t\\talign-self: flex-start;\\n\\t\\tmargin-top: 2px;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `section[data-v-84fca724]{padding:10px 10px}section[data-v-84fca724] button:disabled{cursor:default}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/components/PersonalInfo/LocaleSection/LocaleSection.vue\"],\"names\":[],\"mappings\":\"AACA,yBACC,iBAAA,CAEA,yCACC,cAAA\",\"sourcesContent\":[\"\\nsection {\\n\\tpadding: 10px 10px;\\n\\n\\t&::v-deep button:disabled {\\n\\t\\tcursor: default;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `html{scroll-behavior:smooth}@media screen and (prefers-reduced-motion: reduce){html{scroll-behavior:auto}}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/components/PersonalInfo/ProfileSection/EditProfileAnchorLink.vue\"],\"names\":[],\"mappings\":\"AACA,KACC,sBAAA,CAEA,mDAHD,KAIE,oBAAA,CAAA\",\"sourcesContent\":[\"\\nhtml {\\n\\tscroll-behavior: smooth;\\n\\n\\t@media screen and (prefers-reduced-motion: reduce) {\\n\\t\\tscroll-behavior: auto;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `a[data-v-23992b06]{display:block;height:44px;width:min(100%,290px);overflow:hidden;text-overflow:ellipsis;line-height:44px;padding:0 16px;margin:14px auto;border-radius:var(--border-radius-pill);color:var(--color-text-maxcontrast);background-color:rgba(0,0,0,0)}a .anchor-icon[data-v-23992b06]{display:inline-block;vertical-align:middle;margin-top:6px;margin-right:8px}a[data-v-23992b06]:hover,a[data-v-23992b06]:focus,a[data-v-23992b06]:active{color:var(--color-main-text);background-color:var(--color-background-dark)}a.disabled[data-v-23992b06]{pointer-events:none}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/components/PersonalInfo/ProfileSection/EditProfileAnchorLink.vue\"],\"names\":[],\"mappings\":\"AACA,mBACC,aAAA,CACA,WAAA,CACA,qBAAA,CACA,eAAA,CACA,sBAAA,CACA,gBAAA,CACA,cAAA,CACA,gBAAA,CACA,uCAAA,CACA,mCAAA,CACA,8BAAA,CAEA,gCACC,oBAAA,CACA,qBAAA,CACA,cAAA,CACA,gBAAA,CAGD,4EAGC,4BAAA,CACA,6CAAA,CAGD,4BACC,mBAAA\",\"sourcesContent\":[\"\\na {\\n\\tdisplay: block;\\n\\theight: 44px;\\n\\twidth: min(100%, 290px);\\n\\toverflow: hidden;\\n\\ttext-overflow: ellipsis;\\n\\tline-height: 44px;\\n\\tpadding: 0 16px;\\n\\tmargin: 14px auto;\\n\\tborder-radius: var(--border-radius-pill);\\n\\tcolor: var(--color-text-maxcontrast);\\n\\tbackground-color: transparent;\\n\\n\\t.anchor-icon {\\n\\t\\tdisplay: inline-block;\\n\\t\\tvertical-align: middle;\\n\\t\\tmargin-top: 6px;\\n\\t\\tmargin-right: 8px;\\n\\t}\\n\\n\\t&:hover,\\n\\t&:focus,\\n\\t&:active {\\n\\t\\tcolor: var(--color-main-text);\\n\\t\\tbackground-color: var(--color-background-dark);\\n\\t}\\n\\n\\t&.disabled {\\n\\t\\tpointer-events: none;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.preview-card[data-v-2e2362e7]{display:flex;flex-direction:column;position:relative;width:min(100%,290px);height:116px;margin:14px auto;border-radius:var(--border-radius-large);background-color:var(--color-main-background);font-weight:bold;box-shadow:0 2px 9px var(--color-box-shadow)}.preview-card[data-v-2e2362e7]:hover,.preview-card[data-v-2e2362e7]:focus,.preview-card[data-v-2e2362e7]:active{box-shadow:0 2px 12px var(--color-box-shadow)}.preview-card[data-v-2e2362e7]:focus-visible{outline:var(--color-main-text) solid 1px;outline-offset:3px}.preview-card.disabled[data-v-2e2362e7]{filter:grayscale(1);opacity:.5;cursor:default;box-shadow:0 0 3px var(--color-box-shadow)}.preview-card.disabled *[data-v-2e2362e7],.preview-card.disabled[data-v-2e2362e7] *{cursor:default}.preview-card__avatar[data-v-2e2362e7]{position:absolute !important;top:40px;left:18px;z-index:1}.preview-card__avatar[data-v-2e2362e7]:not(.avatardiv--unknown){box-shadow:0 0 0 3px var(--color-main-background) !important}.preview-card__header[data-v-2e2362e7],.preview-card__footer[data-v-2e2362e7]{position:relative;width:auto}.preview-card__header span[data-v-2e2362e7],.preview-card__footer span[data-v-2e2362e7]{position:absolute;left:78px;overflow:hidden;text-overflow:ellipsis;overflow-wrap:anywhere}@supports(-webkit-line-clamp: 2){.preview-card__header span[data-v-2e2362e7],.preview-card__footer span[data-v-2e2362e7]{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}}.preview-card__header[data-v-2e2362e7]{height:70px;border-radius:var(--border-radius-large) var(--border-radius-large) 0 0;background-color:var(--color-primary-element)}.preview-card__header span[data-v-2e2362e7]{bottom:0;color:var(--color-primary-element-text);font-size:18px;font-weight:bold;margin:0 4px 8px 0}.preview-card__footer[data-v-2e2362e7]{height:46px}.preview-card__footer span[data-v-2e2362e7]{top:0;color:var(--color-text-maxcontrast);font-size:14px;font-weight:normal;margin:4px 4px 0 0;line-height:1.3}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/components/PersonalInfo/ProfileSection/ProfilePreviewCard.vue\"],\"names\":[],\"mappings\":\"AACA,+BACC,YAAA,CACA,qBAAA,CACA,iBAAA,CACA,qBAAA,CACA,YAAA,CACA,gBAAA,CACA,wCAAA,CACA,6CAAA,CACA,gBAAA,CACA,4CAAA,CAEA,gHAGC,6CAAA,CAGD,6CACC,wCAAA,CACA,kBAAA,CAGD,wCACC,mBAAA,CACA,UAAA,CACA,cAAA,CACA,0CAAA,CAEA,oFAEC,cAAA,CAIF,uCAEC,4BAAA,CACA,QAAA,CACA,SAAA,CACA,SAAA,CAEA,gEACC,4DAAA,CAIF,8EAEC,iBAAA,CACA,UAAA,CAEA,wFACC,iBAAA,CACA,SAAA,CACA,eAAA,CACA,sBAAA,CACA,sBAAA,CAEA,iCAPD,wFAQE,mBAAA,CACA,oBAAA,CACA,2BAAA,CAAA,CAKH,uCACC,WAAA,CACA,uEAAA,CACA,6CAAA,CAEA,4CACC,QAAA,CACA,uCAAA,CACA,cAAA,CACA,gBAAA,CACA,kBAAA,CAIF,uCACC,WAAA,CAEA,4CACC,KAAA,CACA,mCAAA,CACA,cAAA,CACA,kBAAA,CACA,kBAAA,CACA,eAAA\",\"sourcesContent\":[\"\\n.preview-card {\\n\\tdisplay: flex;\\n\\tflex-direction: column;\\n\\tposition: relative;\\n\\twidth: min(100%, 290px);\\n\\theight: 116px;\\n\\tmargin: 14px auto;\\n\\tborder-radius: var(--border-radius-large);\\n\\tbackground-color: var(--color-main-background);\\n\\tfont-weight: bold;\\n\\tbox-shadow: 0 2px 9px var(--color-box-shadow);\\n\\n\\t&:hover,\\n\\t&:focus,\\n\\t&:active {\\n\\t\\tbox-shadow: 0 2px 12px var(--color-box-shadow);\\n\\t}\\n\\n\\t&:focus-visible {\\n\\t\\toutline: var(--color-main-text) solid 1px;\\n\\t\\toutline-offset: 3px;\\n\\t}\\n\\n\\t&.disabled {\\n\\t\\tfilter: grayscale(1);\\n\\t\\topacity: 0.5;\\n\\t\\tcursor: default;\\n\\t\\tbox-shadow: 0 0 3px var(--color-box-shadow);\\n\\n\\t\\t& *,\\n\\t\\t&::v-deep * {\\n\\t\\t\\tcursor: default;\\n\\t\\t}\\n\\t}\\n\\n\\t&__avatar {\\n\\t\\t// Override Avatar component position to fix positioning on rerender\\n\\t\\tposition: absolute !important;\\n\\t\\ttop: 40px;\\n\\t\\tleft: 18px;\\n\\t\\tz-index: 1;\\n\\n\\t\\t&:not(.avatardiv--unknown) {\\n\\t\\t\\tbox-shadow: 0 0 0 3px var(--color-main-background) !important;\\n\\t\\t}\\n\\t}\\n\\n\\t&__header,\\n\\t&__footer {\\n\\t\\tposition: relative;\\n\\t\\twidth: auto;\\n\\n\\t\\tspan {\\n\\t\\t\\tposition: absolute;\\n\\t\\t\\tleft: 78px;\\n\\t\\t\\toverflow: hidden;\\n\\t\\t\\ttext-overflow: ellipsis;\\n\\t\\t\\toverflow-wrap: anywhere;\\n\\n\\t\\t\\t@supports (-webkit-line-clamp: 2) {\\n\\t\\t\\t\\tdisplay: -webkit-box;\\n\\t\\t\\t\\t-webkit-line-clamp: 2;\\n\\t\\t\\t\\t-webkit-box-orient: vertical;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t&__header {\\n\\t\\theight: 70px;\\n\\t\\tborder-radius: var(--border-radius-large) var(--border-radius-large) 0 0;\\n\\t\\tbackground-color: var(--color-primary-element);\\n\\n\\t\\tspan {\\n\\t\\t\\tbottom: 0;\\n\\t\\t\\tcolor: var(--color-primary-element-text);\\n\\t\\t\\tfont-size: 18px;\\n\\t\\t\\tfont-weight: bold;\\n\\t\\t\\tmargin: 0 4px 8px 0;\\n\\t\\t}\\n\\t}\\n\\n\\t&__footer {\\n\\t\\theight: 46px;\\n\\n\\t\\tspan {\\n\\t\\t\\ttop: 0;\\n\\t\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t\\t\\tfont-size: 14px;\\n\\t\\t\\tfont-weight: normal;\\n\\t\\t\\tmargin: 4px 4px 0 0;\\n\\t\\t\\tline-height: 1.3;\\n\\t\\t}\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `section[data-v-e9466260]{padding:10px 10px}section[data-v-e9466260] button:disabled{cursor:default}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/components/PersonalInfo/ProfileSection/ProfileSection.vue\"],\"names\":[],\"mappings\":\"AACA,yBACC,iBAAA,CAEA,yCACC,cAAA\",\"sourcesContent\":[\"\\nsection {\\n\\tpadding: 10px 10px;\\n\\n\\t&::v-deep button:disabled {\\n\\t\\tcursor: default;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `section[data-v-199109a6]{padding:30px;max-width:900px;width:100%}section em[data-v-199109a6]{display:block;margin:16px 0}section em.disabled[data-v-199109a6]{filter:grayscale(1);opacity:.5;cursor:default;pointer-events:none}section em.disabled *[data-v-199109a6],section em.disabled[data-v-199109a6] *{cursor:default;pointer-events:none}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/components/PersonalInfo/ProfileVisibilitySection/ProfileVisibilitySection.vue\"],\"names\":[],\"mappings\":\"AACA,yBACC,YAAA,CACA,eAAA,CACA,UAAA,CAEA,4BACC,aAAA,CACA,aAAA,CAEA,qCACC,mBAAA,CACA,UAAA,CACA,cAAA,CACA,mBAAA,CAEA,8EAEC,cAAA,CACA,mBAAA\",\"sourcesContent\":[\"\\nsection {\\n\\tpadding: 30px;\\n\\tmax-width: 900px;\\n\\twidth: 100%;\\n\\n\\tem {\\n\\t\\tdisplay: block;\\n\\t\\tmargin: 16px 0;\\n\\n\\t\\t&.disabled {\\n\\t\\t\\tfilter: grayscale(1);\\n\\t\\t\\topacity: 0.5;\\n\\t\\t\\tcursor: default;\\n\\t\\t\\tpointer-events: none;\\n\\n\\t\\t\\t& *,\\n\\t\\t\\t&::v-deep * {\\n\\t\\t\\t\\tcursor: default;\\n\\t\\t\\t\\tpointer-events: none;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.visibility-container[data-v-fd4d0aac]{display:flex;flex-wrap:wrap}.visibility-container.disabled[data-v-fd4d0aac]{filter:grayscale(1);opacity:.5;cursor:default;pointer-events:none}.visibility-container.disabled *[data-v-fd4d0aac],.visibility-container.disabled[data-v-fd4d0aac] *{cursor:default;pointer-events:none}.visibility-container label[data-v-fd4d0aac]{color:var(--color-text-lighter);width:150px;line-height:50px}.visibility-container__select[data-v-fd4d0aac]{width:270px;max-width:40vw}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/components/PersonalInfo/ProfileVisibilitySection/VisibilityDropdown.vue\"],\"names\":[],\"mappings\":\"AACA,uCACC,YAAA,CACA,cAAA,CAEA,gDACC,mBAAA,CACA,UAAA,CACA,cAAA,CACA,mBAAA,CAEA,oGAEC,cAAA,CACA,mBAAA,CAIF,6CACC,+BAAA,CACA,WAAA,CACA,gBAAA,CAGD,+CACC,WAAA,CACA,cAAA\",\"sourcesContent\":[\"\\n.visibility-container {\\n\\tdisplay: flex;\\n\\tflex-wrap: wrap;\\n\\n\\t&.disabled {\\n\\t\\tfilter: grayscale(1);\\n\\t\\topacity: 0.5;\\n\\t\\tcursor: default;\\n\\t\\tpointer-events: none;\\n\\n\\t\\t& *,\\n\\t\\t&::v-deep * {\\n\\t\\t\\tcursor: default;\\n\\t\\t\\tpointer-events: none;\\n\\t\\t}\\n\\t}\\n\\n\\tlabel {\\n\\t\\tcolor: var(--color-text-lighter);\\n\\t\\twidth: 150px;\\n\\t\\tline-height: 50px;\\n\\t}\\n\\n\\t&__select {\\n\\t\\twidth: 270px;\\n\\t\\tmax-width: 40vw;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `section[data-v-594c0506]{padding:10px 10px}section[data-v-594c0506] button:disabled{cursor:default}section .property[data-v-594c0506]{display:grid;align-items:center}section .property textarea[data-v-594c0506]{resize:vertical;grid-area:1/1;width:100%}section .property input[data-v-594c0506]{grid-area:1/1;width:100%}section .property .property__actions-container[data-v-594c0506]{grid-area:1/1;justify-self:flex-end;align-self:flex-end;height:30px;display:flex;gap:0 2px;margin-right:5px;margin-bottom:5px}section .property__helper-text-message[data-v-594c0506]{padding:4px 0;display:flex;align-items:center}section .property__helper-text-message__icon[data-v-594c0506]{margin-right:8px;align-self:start;margin-top:4px}section .property__helper-text-message--error[data-v-594c0506]{color:var(--color-error)}section .fade-enter[data-v-594c0506],section .fade-leave-to[data-v-594c0506]{opacity:0}section .fade-enter-active[data-v-594c0506]{transition:opacity 200ms ease-out}section .fade-leave-active[data-v-594c0506]{transition:opacity 300ms ease-out}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/components/PersonalInfo/shared/AccountPropertySection.vue\"],\"names\":[],\"mappings\":\"AACA,yBACC,iBAAA,CAEA,yCACC,cAAA,CAGD,mCACC,YAAA,CACA,kBAAA,CAEA,4CACC,eAAA,CACA,aAAA,CACA,UAAA,CAGD,yCACC,aAAA,CACA,UAAA,CAGD,gEACC,aAAA,CACA,qBAAA,CACA,mBAAA,CACA,WAAA,CAEA,YAAA,CACA,SAAA,CACA,gBAAA,CACA,iBAAA,CAIF,wDACC,aAAA,CACA,YAAA,CACA,kBAAA,CAEA,8DACC,gBAAA,CACA,gBAAA,CACA,cAAA,CAGD,+DACC,wBAAA,CAIF,6EAEC,SAAA,CAGD,4CACC,iCAAA,CAGD,4CACC,iCAAA\",\"sourcesContent\":[\"\\nsection {\\n\\tpadding: 10px 10px;\\n\\n\\t&::v-deep button:disabled {\\n\\t\\tcursor: default;\\n\\t}\\n\\n\\t.property {\\n\\t\\tdisplay: grid;\\n\\t\\talign-items: center;\\n\\n\\t\\ttextarea {\\n\\t\\t\\tresize: vertical;\\n\\t\\t\\tgrid-area: 1 / 1;\\n\\t\\t\\twidth: 100%;\\n\\t\\t}\\n\\n\\t\\tinput {\\n\\t\\t\\tgrid-area: 1 / 1;\\n\\t\\t\\twidth: 100%;\\n\\t\\t}\\n\\n\\t\\t.property__actions-container {\\n\\t\\t\\tgrid-area: 1 / 1;\\n\\t\\t\\tjustify-self: flex-end;\\n\\t\\t\\talign-self: flex-end;\\n\\t\\t\\theight: 30px;\\n\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\tgap: 0 2px;\\n\\t\\t\\tmargin-right: 5px;\\n\\t\\t\\tmargin-bottom: 5px;\\n\\t\\t}\\n\\t}\\n\\n\\t.property__helper-text-message {\\n\\t\\tpadding: 4px 0;\\n\\t\\tdisplay: flex;\\n\\t\\talign-items: center;\\n\\n\\t\\t&__icon {\\n\\t\\t\\tmargin-right: 8px;\\n\\t\\t\\talign-self: start;\\n\\t\\t\\tmargin-top: 4px;\\n\\t\\t}\\n\\n\\t\\t&--error {\\n\\t\\t\\tcolor: var(--color-error);\\n\\t\\t}\\n\\t}\\n\\n\\t.fade-enter,\\n\\t.fade-leave-to {\\n\\t\\topacity: 0;\\n\\t}\\n\\n\\t.fade-enter-active {\\n\\t\\ttransition: opacity 200ms ease-out;\\n\\t}\\n\\n\\t.fade-leave-active {\\n\\t\\ttransition: opacity 300ms ease-out;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.federation-actions--additional[data-v-ca40f658] button{height:30px !important;min-height:30px !important;width:30px !important;min-width:30px !important}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/components/PersonalInfo/shared/FederationControl.vue\"],\"names\":[],\"mappings\":\"AAGE,wDAEC,sBAAA,CACA,0BAAA,CACA,qBAAA,CACA,yBAAA\",\"sourcesContent\":[\"\\n.federation-actions {\\n\\t&--additional {\\n\\t\\t&:deep(button) {\\n\\t\\t\\t// TODO remove this hack\\n\\t\\t\\theight: 30px !important;\\n\\t\\t\\tmin-height: 30px !important;\\n\\t\\t\\twidth: 30px !important;\\n\\t\\t\\tmin-width: 30px !important;\\n\\t\\t}\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.headerbar-label[data-v-0cd1bc3a]{font-weight:normal;display:inline-flex;width:100%;margin:12px 0 0 0;gap:8px;align-items:center;font-size:16px;color:var(--color-text-light)}.headerbar-label.profile-property[data-v-0cd1bc3a]{height:38px}.headerbar-label.setting-property[data-v-0cd1bc3a]{height:44px}.headerbar-label label[data-v-0cd1bc3a]{cursor:pointer}.federation-control[data-v-0cd1bc3a]{margin:0}.button-vue[data-v-0cd1bc3a]{margin:0 0 0 auto !important}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/components/PersonalInfo/shared/HeaderBar.vue\"],\"names\":[],\"mappings\":\"AACA,kCACC,kBAAA,CACA,mBAAA,CACA,UAAA,CACA,iBAAA,CACA,OAAA,CACA,kBAAA,CACA,cAAA,CACA,6BAAA,CAEA,mDACC,WAAA,CAGD,mDACC,WAAA,CAGD,wCACC,cAAA,CAIF,qCACC,QAAA,CAGD,6BACC,4BAAA\",\"sourcesContent\":[\"\\n.headerbar-label {\\n\\tfont-weight: normal;\\n\\tdisplay: inline-flex;\\n\\twidth: 100%;\\n\\tmargin: 12px 0 0 0;\\n\\tgap: 8px;\\n\\talign-items: center;\\n\\tfont-size: 16px;\\n\\tcolor: var(--color-text-light);\\n\\n\\t&.profile-property {\\n\\t\\theight: 38px;\\n\\t}\\n\\n\\t&.setting-property {\\n\\t\\theight: 44px;\\n\\t}\\n\\n\\tlabel {\\n\\t\\tcursor: pointer;\\n\\t}\\n}\\n\\n.federation-control {\\n\\tmargin: 0;\\n}\\n\\n.button-vue {\\n\\tmargin: 0 0 0 auto !important;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _cropperjs = require('cropperjs');\n\nvar _cropperjs2 = _interopRequireDefault(_cropperjs);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nvar previewPropType = typeof window === 'undefined' ? [String, Array] : [String, Array, Element, NodeList];\n\nexports.default = {\n render: function render(h) {\n var crossorigin = this.crossorigin || undefined;\n\n return h('div', { style: this.containerStyle }, [h('img', {\n ref: 'img',\n attrs: {\n src: this.src,\n alt: this.alt || 'image',\n style: 'max-width: 100%',\n crossorigin: crossorigin\n },\n on: this.$listeners,\n style: this.imgStyle\n })]);\n },\n\n props: {\n containerStyle: Object,\n src: {\n type: String,\n default: ''\n },\n alt: String,\n imgStyle: Object,\n\n viewMode: Number,\n dragMode: String,\n initialAspectRatio: Number,\n aspectRatio: Number,\n data: Object,\n preview: previewPropType,\n responsive: {\n type: Boolean,\n default: true\n },\n restore: {\n type: Boolean,\n default: true\n },\n checkCrossOrigin: {\n type: Boolean,\n default: true\n },\n checkOrientation: {\n type: Boolean,\n default: true\n },\n crossorigin: {\n type: String\n },\n modal: {\n type: Boolean,\n default: true\n },\n guides: {\n type: Boolean,\n default: true\n },\n center: {\n type: Boolean,\n default: true\n },\n highlight: {\n type: Boolean,\n default: true\n },\n background: {\n type: Boolean,\n default: true\n },\n autoCrop: {\n type: Boolean,\n default: true\n },\n autoCropArea: Number,\n movable: {\n type: Boolean,\n default: true\n },\n rotatable: {\n type: Boolean,\n default: true\n },\n scalable: {\n type: Boolean,\n default: true\n },\n zoomable: {\n type: Boolean,\n default: true\n },\n zoomOnTouch: {\n type: Boolean,\n default: true\n },\n zoomOnWheel: {\n type: Boolean,\n default: true\n },\n wheelZoomRatio: Number,\n cropBoxMovable: {\n type: Boolean,\n default: true\n },\n cropBoxResizable: {\n type: Boolean,\n default: true\n },\n toggleDragModeOnDblclick: {\n type: Boolean,\n default: true\n },\n\n minCanvasWidth: Number,\n minCanvasHeight: Number,\n minCropBoxWidth: Number,\n minCropBoxHeight: Number,\n minContainerWidth: Number,\n minContainerHeight: Number,\n\n ready: Function,\n cropstart: Function,\n cropmove: Function,\n cropend: Function,\n crop: Function,\n zoom: Function\n },\n mounted: function mounted() {\n var _$options$props = this.$options.props,\n containerStyle = _$options$props.containerStyle,\n src = _$options$props.src,\n alt = _$options$props.alt,\n imgStyle = _$options$props.imgStyle,\n data = _objectWithoutProperties(_$options$props, ['containerStyle', 'src', 'alt', 'imgStyle']);\n\n var props = {};\n\n for (var key in data) {\n if (this[key] !== undefined) {\n props[key] = this[key];\n }\n }\n\n this.cropper = new _cropperjs2.default(this.$refs.img, props);\n },\n\n methods: {\n reset: function reset() {\n return this.cropper.reset();\n },\n clear: function clear() {\n return this.cropper.clear();\n },\n initCrop: function initCrop() {\n return this.cropper.crop();\n },\n replace: function replace(url) {\n var onlyColorChanged = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n return this.cropper.replace(url, onlyColorChanged);\n },\n enable: function enable() {\n return this.cropper.enable();\n },\n disable: function disable() {\n return this.cropper.disable();\n },\n destroy: function destroy() {\n return this.cropper.destroy();\n },\n move: function move(offsetX, offsetY) {\n return this.cropper.move(offsetX, offsetY);\n },\n moveTo: function moveTo(x) {\n var y = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : x;\n\n return this.cropper.moveTo(x, y);\n },\n relativeZoom: function relativeZoom(ratio, _originalEvent) {\n return this.cropper.zoom(ratio, _originalEvent);\n },\n zoomTo: function zoomTo(ratio, _originalEvent) {\n return this.cropper.zoomTo(ratio, _originalEvent);\n },\n rotate: function rotate(degree) {\n return this.cropper.rotate(degree);\n },\n rotateTo: function rotateTo(degree) {\n return this.cropper.rotateTo(degree);\n },\n scaleX: function scaleX(_scaleX) {\n return this.cropper.scaleX(_scaleX);\n },\n scaleY: function scaleY(_scaleY) {\n return this.cropper.scaleY(_scaleY);\n },\n scale: function scale(scaleX) {\n var scaleY = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : scaleX;\n\n return this.cropper.scale(scaleX, scaleY);\n },\n getData: function getData() {\n var rounded = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n return this.cropper.getData(rounded);\n },\n setData: function setData(data) {\n return this.cropper.setData(data);\n },\n getContainerData: function getContainerData() {\n return this.cropper.getContainerData();\n },\n getImageData: function getImageData() {\n return this.cropper.getImageData();\n },\n getCanvasData: function getCanvasData() {\n return this.cropper.getCanvasData();\n },\n setCanvasData: function setCanvasData(data) {\n return this.cropper.setCanvasData(data);\n },\n getCropBoxData: function getCropBoxData() {\n return this.cropper.getCropBoxData();\n },\n setCropBoxData: function setCropBoxData(data) {\n return this.cropper.setCropBoxData(data);\n },\n getCroppedCanvas: function getCroppedCanvas() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n return this.cropper.getCroppedCanvas(options);\n },\n setAspectRatio: function setAspectRatio(aspectRatio) {\n return this.cropper.setAspectRatio(aspectRatio);\n },\n setDragMode: function setDragMode(mode) {\n return this.cropper.setDragMode(mode);\n }\n }\n};","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"\" + chunkId + \"-\" + chunkId + \".js?v=\" + {\"1957\":\"96a4d042dd15d21b005b\",\"4473\":\"6009e669b1a0737a2378\"}[chunkId] + \"\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.j = 7801;","var scriptUrl;\nif (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + \"\";\nvar document = __webpack_require__.g.document;\nif (!scriptUrl && document) {\n\tif (document.currentScript && document.currentScript.tagName.toUpperCase() === 'SCRIPT')\n\t\tscriptUrl = document.currentScript.src;\n\tif (!scriptUrl) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tif(scripts.length) {\n\t\t\tvar i = scripts.length - 1;\n\t\t\twhile (i > -1 && (!scriptUrl || !/^http(s?):/.test(scriptUrl))) scriptUrl = scripts[i--].src;\n\t\t}\n\t}\n}\n// When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration\n// or pass an empty string (\"\") and set the __webpack_public_path__ variable from your code to use your own logic.\nif (!scriptUrl) throw new Error(\"Automatic publicPath is not supported in this browser\");\nscriptUrl = scriptUrl.replace(/#.*$/, \"\").replace(/\\?.*$/, \"\").replace(/\\/[^\\/]+$/, \"/\");\n__webpack_require__.p = scriptUrl;","__webpack_require__.b = document.baseURI || self.location.href;\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t7801: 0\n};\n\n__webpack_require__.f.j = (chunkId, promises) => {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = (event) => {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunknextcloud\"] = self[\"webpackChunknextcloud\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","__webpack_require__.nc = undefined;","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [4208], () => (__webpack_require__(72655)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","inProgress","dataWebpackPrefix","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","name","emits","props","title","type","String","fillColor","default","size","Number","_vm","this","_c","_self","_b","staticClass","attrs","on","$event","$emit","$attrs","_v","_s","_e","ACCOUNT_PROPERTY_ENUM","Object","freeze","ADDRESS","AVATAR","BIOGRAPHY","DISPLAYNAME","EMAIL_COLLECTION","EMAIL","HEADLINE","NOTIFICATION_EMAIL","FEDIVERSE","ORGANISATION","PHONE","PROFILE_ENABLED","ROLE","TWITTER","WEBSITE","ACCOUNT_PROPERTY_READABLE_ENUM","t","NAME_READABLE_ENUM","PROFILE_READABLE_ENUM","PROFILE_VISIBILITY","PROPERTY_READABLE_KEYS_ENUM","ACCOUNT_SETTING_PROPERTY_ENUM","LANGUAGE","LOCALE","ACCOUNT_SETTING_PROPERTY_READABLE_ENUM","SCOPE_ENUM","PRIVATE","LOCAL","FEDERATED","PUBLISHED","PROPERTY_READABLE_SUPPORTED_SCOPES_ENUM","UNPUBLISHED_READABLE_PROPERTIES","SCOPE_SUFFIX","SCOPE_PROPERTY_ENUM","displayName","tooltip","tooltipDisabled","iconClass","DEFAULT_ADDITIONAL_EMAIL_SCOPE","VERIFICATION_ENUM","NOT_VERIFIED","VERIFICATION_IN_PROGRESS","VERIFIED","VALIDATE_EMAIL_REGEX","savePrimaryAccountProperty","async","accountProperty","value","userId","getCurrentUser","uid","url","generateOcsUrl","confirmPassword","axios","put","key","data","getLoggerBuilder","setApp","detectUser","build","handleError","error","message","_error$response","fullMessage","response","status","showError","logger","federationEnabled","lookupServerUploadEnabled","loadState","components","NcActions","NcActionButton","readable","required","validator","values","includes","additional","Boolean","additionalValue","disabled","handleAdditionalScopeChange","Function","scope","readableLowerCase","toLocaleLowerCase","initialScope","computed","ariaLabel","property","scopeDisplayNameLowerCase","scopeIcon","federationScopes","supportedScopes","scopes","push","methods","changeScope","updateAdditionalScope","updatePrimaryScope","$refs","federationActions","menuButton","$el","focus","_responseData$ocs","responseData","concat","savePrimaryAccountPropertyScope","handleResponse","ocs","meta","e","errorMessage","_responseData$ocs2","_ref","ref","class","_l","federationScope","FederationControl","NcButton","Plus","inputId","isEditable","isMultiValueSupported","isValidSection","isHeading","localScope","isProfileProperty","isSettingProperty","onAddAdditional","onScopeChange","stopPropagation","preventDefault","apply","arguments","scopedSlots","_u","fn","proxy","avatar","avatarChangeSupported","VALID_MIME_TYPES","picker","getFilePickerBuilder","setMultiSelect","setMimeTypeFilter","setType","allowDirectories","Delete","Folder","HeaderBar","NcAvatar","Upload","VueCropper","showCropper","loading","version","oc_userconfig","isGenerated","generated","validMimeTypes","cropperOptions","aspectRatio","viewMode","guides","center","highlight","autoCropArea","minContainerWidth","minContainerHeight","created","subscribe","handleDisplayNameUpdate","beforeDestroy","unsubscribe","activateLocalFilePicker","input","click","onChange","file","target","files","cancel","reader","FileReader","onload","cropper","replace","result","readAsDataURL","openFilePicker","path","pick","post","generateUrl","handleAvatarUpdate","tempAvatar","encodeURIComponent","OC","requestToken","Math","floor","random","saveAvatar","canvasData","getCroppedCanvas","scaleFactor","width","scale","toBlob","blob","formData","FormData","append","removeAvatar","delete","Date","now","emit","$set","join","directives","rawName","expression","groups","quota","totalSpace","usage","usageRelative","Account","CircleSlice","NcProgressBar","quotaText","domProps","AlertCircle","AlertOctagon","Check","placeholder","multiLine","onValidate","onSave","autocomplete","initialValue","helperText","showCheckmarkIcon","showErrorIcon","onPropertyChange","debouncePropertyChange","trim","debounce","validationMessage","updateProperty","setTimeout","undefined","displayNameChangeSupported","AccountPropertySection","savePrimaryEmail","email","removeAdditionalEmail","collection","saveAdditionalEmailScope","collectionScope","validateEmail","test","slice","length","index","primary","activeNotificationEmail","localVerificationState","propertyReadable","initialEmail","deleteDisabled","deleteEmailLabel","setNotificationMailDisabled","setNotificationMailLabel","isNotificationEmail","federationDisabled","inputIdWithDefault","inputPlaceholder","mounted","$nextTick","_this$$refs$email","onEmailChange","debounceEmailChange","_this$$refs$email2","updatePrimaryEmail","addAdditionalEmail","updateAdditionalEmail","deleteEmail","deleteAdditionalEmail","saveAdditionalEmail","setNotificationMail","_responseData$ocs3","newNotificationMailValue","saveNotificationEmail","notificationEmail","_responseData$ocs4","prevEmail","newEmail","_responseData$ocs5","handleDeleteAdditionalEmail","emailMap","additionalEmails","primaryEmail","Email","map","properties","generateUniqueKey","firstAdditionalEmail","every","primaryEmailValue","get","set","onAddAdditionalEmail","onDeleteAdditionalEmail","$delete","onUpdateEmail","deletedEmail","deleteFirstAdditionalEmail","onUpdateNotificationEmail","handleDeleteFirstAdditionalEmail","toString","substring","additionalEmail","parseInt","locallyVerified","objectConstructor","constructor","isObject","object","ownKeys","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","_defineProperty","obj","defineProperty","configurable","writable","_arrayLikeToArray","arr","len","i","arr2","Array","normalizeArguments","args","text","metadata","_Array$prototype$slic2","prototype","call","isArray","_arrayWithHoles","_i","Symbol","iterator","_arr","_n","_d","next","done","err","_iterableToArrayLimit","o","minLen","n","from","_unsupportedIterableToArray","TypeError","_nonIterableRest","arg_1","arg_2","arg_3","arg_4","Error","source","forEach","getOwnPropertyDescriptors","defineProperties","_objectSpread","defaultCountry","MIN_LENGTH_FOR_NSN","MAX_LENGTH_FOR_NSN","MAX_LENGTH_COUNTRY_CODE","VALID_DIGITS","VALID_PUNCTUATION","_typeof","_assertThisInitialized","self","ReferenceError","_wrapNativeSuper","Class","_cache","Map","indexOf","has","Wrapper","_construct","_getPrototypeOf","create","_setPrototypeOf","Parent","_isNativeReflectConstruct","Reflect","construct","a","instance","bind","sham","Proxy","valueOf","p","setPrototypeOf","__proto__","getPrototypeOf","ParseError","_Error","subClass","superClass","_inherits","Constructor","Derived","hasNativeReflectConstruct","_super","Super","NewTarget","_possibleConstructorReturn","code","_this","_classCallCheck","b","split","pa","pb","na","nb","isNaN","descriptor","protoProps","staticProps","DEFAULT_EXT_PREFIX","CALLING_CODE_REG_EXP","Metadata","countries","typeOf","validateMetadata","setVersion","_","countryCode","v1","v2","v3","nonGeographic","nonGeographical","country","getCountryMetadata","callingCode","getCountryCodesForCallingCode","countryCodes","countryCallingCodes","selectNumberingPlan","hasCountry","numberingPlan","NumberingPlan","hasCallingCode","getNumberingPlanMetadata","getCountryCodeForCallingCode","IDDPrefix","defaultIDDPrefix","nationalNumberPattern","possibleLengths","formats","nationalPrefixForParsing","nationalPrefixTransformRule","leadingDigits","hasTypes","_type","ext","country_phone_code_to_countries","country_calling_codes","globalMetadataObject","_getFormats","getDefaultCountryMetadataForRegion","Format","_getNationalPrefixFormattingRule","_nationalPrefixForParsing","nationalPrefix","_getNationalPrefixIsOptionalWhenFormatting","types","_type2","getType","Type","format","_format","nationalPrefixFormattingRule","nationalPrefixIsOptionalWhenFormattingInNationalFormat","usesNationalPrefix","FIRST_GROUP_ONLY_PREFIX_PATTERN","getCountryCallingCode","countryCallingCode","v4","getExtensionDigitsPattern","maxLength","createExtensionPattern","purpose","possibleSeparatorsBetweenNumberAndExtLabel","possibleCharsAfterExtLabel","optionalExtnSuffix","possibleSeparatorsNumberExtLabelNoComma","rfcExtn","MIN_LENGTH_PHONE_NUMBER_PATTERN","VALID_PHONE_NUMBER","VALID_PHONE_NUMBER_START_REG_EXP","RegExp","VALID_PHONE_NUMBER_WITH_EXTENSION","VALID_PHONE_NUMBER_PATTERN","EXTN_PATTERN","DIGITS","parseIncompletePhoneNumber","string","_step","_iterator","allowArrayLike","it","character","prevParsedCharacters","emitEvent","parsePhoneNumberCharacter","parseDigit","checkNumberLength","nationalNumber","checkNumberLengthForType","type_info","possible_lengths","mobile_type","merged","element","sort","mergeArrays","actual_length","minimum_length","isPossibleNumber","matchesEntirely","regular_expression","NON_FIXED_LINE_PHONE_TYPES","getNumberType","phone","isNumberTypeEqualTo","pattern","FIRST_GROUP_PATTERN","SINGLE_IDD_PREFIX_REG_EXP","DEFAULT_OPTIONS","formatExtension","formattedNumber","extension","formatNationalNumber","number","carrierCode","formatAs","availableFormats","nationalNnumber","leadingDigitsPatterns","lastLeadingDigitsPattern","search","chooseFormatForNumber","useInternationalFormat","withNationalPrefix","internationalFormat","applyInternationalSeparatorStyle","formatNationalNumberUsingFormat","addExtension","PhoneNumber","countryOrCountryCallingCode","_getCountryAndCountry","metadataJson","isCountryCode","getCountryAndCountryCallingCode","getMetadata","possibleCountries","_metadata","couldNationalNumberBelongToCountry","isNonGeographicCallingCode","isValidNumber","phoneNumber","formatRFC3966","fromCountry","iddPrefix","countryMetadata","getIddPrefix","formatIDD","formatNumber","CAPTURING_DIGIT_PATTERN","extractNationalNumber","_extractNationalNumbe","prefixPattern","prefixMatch","exec","capturedGroupsCount","hasCapturedGroups","prefixBeforeNationalNumber","possiblePositionOfTheFirstCapturedGroup","extractNationalNumberFromPossiblyIncompleteNumber","nationalNumberBefore","nationalNumberAfter","shouldHaveExtractedNationalPrefix","isPossibleIncompleteNationalNumber","getCountryByCallingCode","nationalPhoneNumber","matchingCountries","getCountryByNationalNumber","PLUS_SIGN","RFC3966_PHONE_DIGIT_","RFC3966_GLOBAL_NUMBER_DIGITS_PATTERN_","RFC3966_DOMAINNAME_PATTERN_","RFC3966_PREFIX_","RFC3966_PHONE_CONTEXT_","RFC3966_ISDN_SUBADDRESS_","MAX_INPUT_STRING_LENGTH","PHONE_NUMBER_START_PATTERN","AFTER_PHONE_NUMBER_END_PATTERN","parse","_parseInput","extract","numberToParse","phoneNumberString","extractFormattedPhoneNumber","phoneContext","numberToExtractFrom","indexOfPhoneContext","phoneContextStart","phoneContextEnd","extractPhoneContext","isPhoneContextValid","charAt","indexOfNationalNumber","indexOfRfc3966Prefix","indexOfIsdn","extractFormattedPhoneNumberFromPossibleRfc3966NumberUri","throwOnError","startsAt","_extractFormattedPhoneNumber","isViablePhoneNumberStart","withExtensionStripped","start","numberWithoutExtension","matches","match","extractExtension","parseInput","formattedPhoneNumber","_parsePhoneNumber","defaultCallingCode","_extractCountryCallin","isNumberWithIddPrefix","numberWithoutIDD","IDDPrefixPattern","matchedGroups","stripIddPrefix","possibleShorterNumber","possibleShorterNationalNumber","extractCountryCallingCodeFromInternationalNumberWithoutPlusSign","shorterNumber","countryCallingCodeSource","_countryCallingCode","extractCountryCallingCode","exactCountry","parsePhoneNumber","hasSelectedNumberingPlan","__countryCallingCodeSource","valid","extended","possible","isValidPhoneNumber","_normalizeArguments","hasOwnProperty","isSupportedCountry","parsePhoneNumberWithError","isValid","func","_arguments","withMetadataArgument","defaultPhoneRegion","location","website","URL","validateUrl","twitter","fediverse","commonLanguages","otherLanguages","language","initialLanguage","allLanguages","reduce","acc","onLanguageChange","constructLanguage","updateLanguage","reloadPage","languageCode","_ref2","reload","commonLanguage","otherLanguage","languageMap","activeLanguage","Language","Web","locale","localesForLanguage","otherLocales","initialLocale","example","date","moment","time","firstDayOfWeek","window","dayNames","firstDay","allLocales","setInterval","refreshExample","onLocaleChange","constructLocale","updateLocale","localeCode","currentLocale","localeMap","activeLocale","Locale","ChevronDownIcon","profileEnabled","_g","$listeners","NcCheckboxRadioSwitch","isProfileEnabled","saveEnableProfile","organisation","profilePageLink","EditProfileAnchorLink","ProfileCheckbox","ProfilePreviewCard","handleOrganisationUpdate","role","headline","biography","VISIBILITY_ENUM","SHOW","SHOW_USERS_ONLY","HIDE","VISIBILITY_PROPERTY_ENUM","label","NcSelect","paramId","displayId","visibility","initialVisibility","visibilityObject","visibilityOptions","handleProfileEnabledUpdate","onVisibilityChange","updateVisibility","saveProfileParameterVisibility","profileConfig","compareParams","appId","localeCompare","VisibilityDropdown","heading","visibilityParams","entries","id","marginLeft","matchMedia","getComputedStyle","document","getElementById","getPropertyValue","rows","ceil","onresize","style","gridTemplateRows","param","__webpack_nonce__","btoa","getRequestToken","profileEnabledGlobally","Vue","mixin","AvatarView","extend","AvatarSection","DetailsView","DetailsSection","DisplayNameView","DisplayNameSection","EmailView","EmailSection","PhoneView","PhoneSection","LocationView","LocationSection","WebsiteView","WebsiteSection","TwitterView","TwitterSection","FediverseView","FediverseSection","LanguageView","LanguageSection","LocaleView","LocaleSection","$mount","ProfileView","ProfileSection","OrganisationView","OrganisationSection","RoleView","RoleSection","HeadlineView","HeadlineSection","BiographyView","BiographySection","ProfileVisibilityView","ProfileVisibilitySection","module","exports","r","_objectSpread2","_toPropertyKey","_defineProperties","_toConsumableArray","_arrayWithoutHoles","iter","_iterableToArray","_nonIterableSpread","arg","hint","prim","toPrimitive","res","_toPrimitive","IS_BROWSER","WINDOW","IS_TOUCH_DEVICE","documentElement","HAS_POINTER_EVENT","NAMESPACE","ACTION_ALL","ACTION_CROP","ACTION_MOVE","ACTION_ZOOM","ACTION_EAST","ACTION_WEST","ACTION_SOUTH","ACTION_NORTH","ACTION_NORTH_EAST","ACTION_NORTH_WEST","ACTION_SOUTH_EAST","ACTION_SOUTH_WEST","CLASS_CROP","CLASS_DISABLED","CLASS_HIDDEN","CLASS_HIDE","CLASS_INVISIBLE","CLASS_MODAL","CLASS_MOVE","DATA_ACTION","DATA_PREVIEW","DRAG_MODE_CROP","DRAG_MODE_MOVE","DRAG_MODE_NONE","EVENT_CROP","EVENT_CROP_END","EVENT_CROP_MOVE","EVENT_CROP_START","EVENT_DBLCLICK","EVENT_POINTER_DOWN","EVENT_POINTER_MOVE","EVENT_POINTER_UP","EVENT_READY","EVENT_RESIZE","EVENT_WHEEL","EVENT_ZOOM","MIME_TYPE_JPEG","REGEXP_ACTIONS","REGEXP_DATA_URL","REGEXP_DATA_URL_JPEG","REGEXP_TAG_NAME","DEFAULTS","dragMode","initialAspectRatio","NaN","preview","responsive","restore","checkCrossOrigin","checkOrientation","modal","background","autoCrop","movable","rotatable","scalable","zoomable","zoomOnTouch","zoomOnWheel","wheelZoomRatio","cropBoxMovable","cropBoxResizable","toggleDragModeOnDblclick","minCanvasWidth","minCanvasHeight","minCropBoxWidth","minCropBoxHeight","ready","cropstart","cropmove","cropend","crop","zoom","isNumber","isPositiveNumber","Infinity","isUndefined","isPlainObject","_constructor","isFunction","toArray","callback","assign","_len","_key","REGEXP_DECIMALS","normalizeDecimalNumber","times","round","REGEXP_SUFFIX","setStyle","styles","addClass","elem","classList","add","className","removeClass","remove","toggleClass","added","REGEXP_CAMEL_CASE","toParamCase","toLowerCase","getData","dataset","getAttribute","setData","setAttribute","REGEXP_SPACES","onceSupported","supported","once","listener","addEventListener","removeEventListener","removeListener","handler","event","listeners","addListener","_handler","_element$listeners","_len2","_key2","dispatchEvent","Event","CustomEvent","detail","bubbles","cancelable","createEvent","initCustomEvent","getOffset","box","getBoundingClientRect","left","pageXOffset","clientLeft","top","pageYOffset","clientTop","REGEXP_ORIGINS","isCrossOriginURL","parts","protocol","hostname","port","addTimestamp","timestamp","getTime","getTransforms","rotate","scaleX","scaleY","translateX","translateY","transform","WebkitTransform","msTransform","getPointer","endOnly","pageX","pageY","end","endX","endY","startX","startY","getAdjustedSizes","_ref4","height","isValidWidth","isValidHeight","adjustedWidth","fromCharCode","REGEXP_DATA_URL_HEAD","resetAndGetOrientation","arrayBuffer","orientation","dataView","DataView","littleEndian","app1Start","ifdStart","getUint8","byteLength","offset","tiffOffset","str","getStringFromCharCode","endianness","getUint16","firstIFDOffset","getUint32","_offset","_length","setUint16","render","initContainer","initCanvas","initCropBox","renderCanvas","cropped","renderCropBox","container","minWidth","minHeight","containerData","max","offsetWidth","offsetHeight","imageData","rotated","abs","naturalWidth","naturalHeight","canvasWidth","canvasHeight","limited","limitCanvas","min","maxWidth","maxHeight","oldLeft","oldTop","initialCanvasData","sizeLimited","positionLimited","cropBoxData","_getAdjustedSizes","newCanvasLeft","newCanvasTop","minLeft","minTop","maxLeft","maxTop","changed","transformed","_getRotatedSizes","_ref5","degree","arc","PI","sinArc","sin","cosArc","cos","newWidth","newHeight","getRotatedSizes","canvas","renderImage","limitCropBox","image","output","initialCropBoxData","maxCropBoxWidth","maxCropBoxHeight","face","cropBox","initPreview","crossOrigin","crossOriginUrl","alt","createElement","src","viewBox","appendChild","viewBoxImage","previews","ownerDocument","querySelectorAll","querySelector","el","img","html","innerHTML","cssText","resetPreview","removeAttribute","removeData","cropBoxWidth","cropBoxHeight","originalWidth","originalHeight","ratio","getElementsByTagName","events","onCropStart","cropStart","onWheel","wheel","passive","capture","onDblclick","dblclick","onCropMove","cropMove","onCropEnd","cropEnd","onResize","resize","unbind","handlers","ratioX","ratioY","getCanvasData","getCropBoxData","setCanvasData","setCropBoxData","setDragMode","dragBox","contains","delta","wheeling","deltaY","wheelDelta","buttons","button","pointerType","ctrlKey","action","pointers","changedTouches","touch","identifier","pointerId","originalEvent","cropping","change","right","bottom","renderable","shiftKey","pointer","range","x","y","check","side","move","pointers2","maxRatio","pointer2","x1","y1","x2","y2","z1","sqrt","getMaxZoomRatio","reset","initialImageData","clear","hasSameSize","isImg","replaced","uncreate","load","enable","disable","destroy","originalUrl","offsetX","offsetY","_this$canvasData","moveTo","_originalEvent","zoomTo","pivot","oldRatio","count","_ref3","getPointersCenter","rotateTo","_scaleX","_scaleY","rounded","getContainerData","getImageData","sized","widthChanged","heightChanged","HTMLCanvasElement","_ref6","_ref7","_ref8","imageAspectRatio","imageNaturalWidth","imageNaturalHeight","_ref6$rotate","_ref6$scaleX","_ref6$scaleY","_ref8$fillColor","_ref8$imageSmoothingE","imageSmoothingEnabled","_ref8$imageSmoothingQ","imageSmoothingQuality","_ref8$maxWidth","_ref8$maxHeight","_ref8$minWidth","_ref8$minHeight","context","getContext","maxSizes","minSizes","destMaxSizes","destMinSizes","destWidth","destHeight","params","fillStyle","fillRect","save","translate","drawImage","getSourceCanvas","_this$getData","initialX","initialY","initialWidth","initialHeight","_options$imageSmoothi","srcWidth","srcHeight","dstX","dstY","dstWidth","dstHeight","sourceWidth","sourceHeight","srcX","srcY","setAspectRatio","mode","croppable","AnotherCropper","Cropper","tagName","reloading","sizing","init","toDataURL","base64","binary","uint8","ArrayBuffer","read","atob","Uint8Array","charCodeAt","clone","xhr","XMLHttpRequest","onabort","onerror","ontimeout","onprogress","getResponseHeader","abort","onloadend","open","responseType","withCredentials","send","mimeType","chunks","subarray","arrayBufferToDataURL","_parseOrientation","parseOrientation","stop","parentNode","insertBefore","nextSibling","_this2","isIOSWebKit","navigator","userAgent","sizingImage","body","removeChild","template","getElementsByClassName","unbuild","factory","___CSS_LOADER_URL_IMPORT_0___","___CSS_LOADER_EXPORT___","___CSS_LOADER_URL_REPLACEMENT_0___","_cropperjs2","__esModule","previewPropType","Element","NodeList","h","crossorigin","containerStyle","imgStyle","_$options$props","$options","_objectWithoutProperties","initCrop","onlyColorChanged","relativeZoom","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","loaded","__webpack_modules__","m","O","chunkIds","priority","notFulfilled","fulfilled","j","splice","getter","d","definition","f","chunkId","Promise","all","promises","u","g","globalThis","prop","l","script","needAttach","scripts","s","charset","timeout","nc","onScriptComplete","prev","clearTimeout","doneFns","head","toStringTag","nmd","paths","children","scriptUrl","importScripts","currentScript","toUpperCase","baseURI","href","installedChunks","installedChunkData","promise","resolve","reject","errorType","realSrc","request","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","some","chunkLoadingGlobal","__webpack_exports__"],"sourceRoot":""}
|