) {\n const businessDescriptionInput = e.target.value\n\n const newErrors: string[] = []\n\n // validate length\n const isInvalidLength = businessDescriptionInput.length > 250\n\n isInvalidLength && newErrors.push(invalidLengthErrorText)\n\n if (!businessDescription.length) {\n setIsValid(true)\n }\n\n setErrors(newErrors)\n\n if (!newErrors.length && businessDescriptionInput.length) {\n validateBusinessDescription({\n request: { businessDescription },\n })\n }\n }\n\n return (\n \n \n {businessDescriptionLabelText}\n \n
\n \n \n
\n )\n}\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??ruleSet[1].rules[0].oneOf[0].use[1]!../../../../../node_modules/less-loader/dist/cjs.js!./styles.module.less\";\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??ruleSet[1].rules[0].oneOf[0].use[1]!../../../../../node_modules/less-loader/dist/cjs.js!./styles.module.less\";\n export default content && content.locals ? content.locals : undefined;\n","// EXTERNAL DEPENDENCIES\nimport React from 'react'\n\n// HELPERS\nimport {\n useBusinessProfilePageContent,\n useBusinessProfileReduxState,\n} from '../../hooks'\n\n// COMPONENTS\nimport { BodyText, Row } from '@paypalcorp/pp-react'\nimport { WithLoadingShimmer } from '@/common/components/loading/with-loading-shimmer'\n\n// CONSTANTS\nimport { BUSINESS_NAME_SECTION_TEST_ID } from '../../constants/test-ids'\n\n// STYLES\nimport styles from './styles.module.less'\n\n/**\n * Displays a bold Business name label and the business name\n * that shimmers until present\n */\nexport function BusinessNameSection() {\n const {\n editedProfileData: { values },\n } = useBusinessProfileReduxState()\n\n const getContent = useBusinessProfilePageContent()\n const businessNameLabelText = getContent('businessName')\n\n return (\n \n \n {businessNameLabelText}\n
\n \n \n {values?.businessName}\n
\n \n
\n )\n}\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??ruleSet[1].rules[0].oneOf[0].use[1]!../../../../../node_modules/less-loader/dist/cjs.js!./styles.module.less\";\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??ruleSet[1].rules[0].oneOf[0].use[1]!../../../../../node_modules/less-loader/dist/cjs.js!./styles.module.less\";\n export default content && content.locals ? content.locals : undefined;\n","// EXTERNAL DEPENDENCIES\nimport React from 'react'\n\n// COMPONENTS\nimport { BodyText, Link, Row, Tooltip } from '@paypalcorp/pp-react'\nimport { WithLoadingShimmer } from '@/common/components/loading/with-loading-shimmer'\n\n// HELPERS\nimport {\n useBusinessProfilePageContent,\n useBusinessProfilePageMessage,\n useBusinessProfileReduxState,\n} from '../../hooks'\n\n// CONSTANTS\nimport { BUSINESS_USERNAME_SECTION_TEST_ID } from '../../constants/test-ids'\n\n// STYLES\nimport styles from './styles.module.less'\n\n/**\n * Shows the business username with a tooltip\n */\nexport function BusinessUsernameSection() {\n // STATE\n const {\n editedProfileData: { values },\n } = useBusinessProfileReduxState()\n\n // CONTENT\n const getMessage = useBusinessProfilePageMessage()\n const getContent = useBusinessProfilePageContent()\n const businessUsernameLabelText = getContent('username')\n const customerServiceText = getMessage('customerServiceMessage', {\n link: (msg: string) => (\n \n {msg}\n \n ),\n })\n const businessHandleTooltipText = getMessage('businessHandleTooltip', {\n firstSection: (msg: string) => (\n {msg}\n ),\n secondSection: (msg: string) => {msg},\n })\n\n return (\n \n \n {businessUsernameLabelText}\n \n
\n \n <>\n \n @{values?.businessHandle}\n
\n {customerServiceText}
\n >\n \n
\n )\n}\n","// EXTERNAL DEPENDENCIES\nimport React from 'react'\nimport { useDispatch } from 'react-redux'\n\n// COMPONENTS\nimport LocationNameSection from '@/common/components/ui/location-name-section'\n\n// HELPERS\nimport { useBusinessProfileReduxState } from '../../hooks'\nimport {\n updateAreValuesEdited,\n updateEditedProfilePreferencesDataValues,\n} from '@/redux/features'\n\n// TYPES\nimport { PortableAddress } from '@/types'\n\n/**\n * Displays the LocationNameSection with the values in state\n */\nexport function EditBusinessLocationNameSection() {\n const dispatch = useDispatch()\n\n const {\n uneditedFormattedData,\n editedProfileData: { values },\n } = useBusinessProfileReduxState()\n\n const locationDisplayPreference =\n values?.profilePreferences?.locationDisplayPreference ||\n uneditedFormattedData?.profilePreferences?.locationDisplayPreference\n\n return (\n {\n dispatch(\n updateEditedProfilePreferencesDataValues({\n locationDisplayPreference: updatedAddressPreference,\n }),\n )\n dispatch(updateAreValuesEdited(true))\n }}\n />\n )\n}\n","export const BP_EDIT_EXIT_SHEET_SHOWN_FPTI = {\n eventName: 'bp_edit_exit_sheet_shown',\n}\n\nexport const CONFIRM_EXIT_EDIT_BUTTON_CLICKED = {\n eventName: 'bp_edit_exit_sheet_back_click',\n}\n\nexport const CANCEL_EXIT_EDIT_BUTTON_CLICKED = {\n eventName: 'bp_edit_exit_sheet_stay_click',\n}\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??ruleSet[1].rules[0].oneOf[0].use[1]!../../../../../node_modules/less-loader/dist/cjs.js!./styles.module.less\";\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??ruleSet[1].rules[0].oneOf[0].use[1]!../../../../../node_modules/less-loader/dist/cjs.js!./styles.module.less\";\n export default content && content.locals ? content.locals : undefined;\n","// EXtERNAL DEPENDENCIES\nimport React from 'react'\n\n// HELPERS\nimport { trackClick } from '@/utils'\nimport { useModularSellerViewPageContent } from '@/screens/business-profile-page/hooks'\nimport { useImpressionTracking } from '@/hooks'\n\n// FPTI\nimport {\n BP_EDIT_EXIT_SHEET_SHOWN_FPTI,\n CANCEL_EXIT_EDIT_BUTTON_CLICKED,\n CONFIRM_EXIT_EDIT_BUTTON_CLICKED,\n} from './fpti'\n\n// TEST IDS\nimport { CONFIRMATION_BOX_CONTAINER_TEST_ID } from '@/constants/test-ids'\n\n// COMPONENTS\nimport { Button, Dialog, HeadingText } from '@paypalcorp/pp-react'\n\n// STYLES\nimport styles from './styles.module.less'\n\n// TYPES\nimport { UnformattedFptiOptions } from '@/types'\ntype ExitConfirmationBoxProps = {\n isOpen: boolean\n fpti: UnformattedFptiOptions\n handleBack: () => void\n closeConfirmationDialog: () => void\n}\n\n/**\n * Displays a confirmation dialog popup confirming if the user\n * wants to exit or not\n */\nfunction ExitConfirmationBox({\n isOpen,\n handleBack,\n closeConfirmationDialog,\n fpti,\n}: ExitConfirmationBoxProps) {\n useImpressionTracking({ ...BP_EDIT_EXIT_SHEET_SHOWN_FPTI, ...fpti })\n\n // INITIALIZE CONTENT\n const useContent = useModularSellerViewPageContent()\n const exitConfirmationTitle = useContent('confirmationHeader')\n const exitButtonText = useContent('exitButtonText')\n const continueEditingButtonText = useContent('continueEditingButtonText')\n\n const handleConfirmAndClose = () => {\n trackClick({ ...CONFIRM_EXIT_EDIT_BUTTON_CLICKED, ...fpti })\n closeConfirmationDialog()\n handleBack()\n }\n\n const handleCancelAndClose = () => {\n trackClick({ ...CANCEL_EXIT_EDIT_BUTTON_CLICKED, ...fpti })\n closeConfirmationDialog()\n }\n\n const handleOnCloseComplete = (_e: unknown, closedBy: string) => {\n if (closedBy !== 'caller') {\n handleCancelAndClose()\n }\n }\n\n return (\n \n )\n}\n\nexport default ExitConfirmationBox\n","// HELPERS\nimport { stringifyFptiProps } from '@/utils'\n\n// CONSTANTS\nimport { commonModularProfileFptiProperties } from '@/constants'\n\nexport const EDIT_BIZ_INFO_PAGE_SHOWN_FPTI = {\n ...commonModularProfileFptiProperties,\n eventName: 'bp_business_info_page_shown',\n}\n\nexport const EDIT_BIZ_INFO_BACK_LINK_CLICK_FPTI = stringifyFptiProps({\n ...commonModularProfileFptiProperties,\n eventName: 'bp_business_info_page_back_click',\n})\n\nexport const EDIT_BIZ_INFO_PREVIEW_BUTTON_CLICK_FPTI = stringifyFptiProps({\n ...commonModularProfileFptiProperties,\n eventName: 'bp_business_info_page_preview_click',\n})\n","// HELPERS\nimport { stringifyFptiProps } from '@/utils'\n\n// CONSTANTS\nimport { commonModularProfileFptiProperties } from '@/constants'\n\n// existing experience\nexport const BUSINESS_PROFILE_PREVIEW_PAGE_SHOWN_FPTI = {\n eventName: 'bp_seller_profile_preview_shown',\n}\n\nexport const BUSINESS_PROFILE_EDIT_PROFILE_CLICK_FPTI = stringifyFptiProps({\n eventName: 'business_profile_seller_view_edit_profile_click',\n})\n\nexport const BUSINESS_PROFILE_PREVIEW_PROFILE_CLICK_FPTI = stringifyFptiProps({\n eventName: 'business_profile_seller_view_preview_click',\n})\n\nexport const BUSINESS_PROFILE_SELLER_SHARE_LINK_CLICK_FPTI = stringifyFptiProps(\n {\n eventName: 'business_profile_seller_view_share_click',\n },\n)\n\n// modular experience\nexport const MODULAR_EDIT_PROFILE_PANEL_EDIT_BUSINESS_INFO_FPTI =\n stringifyFptiProps({\n ...commonModularProfileFptiProperties,\n eventName: 'edit_bp_page_edit_business_info_link_click',\n })\n","// HELPERS\nimport { stringifyFptiProps } from '@/utils'\n\n// CONSTANTS\nimport { commonModularProfileFptiProperties } from '@/constants'\n\nexport const BUSINESS_PROFILE_PAGE_SHOWN_TO_SELLER = {\n ...commonModularProfileFptiProperties,\n eventName: 'business_profile_seller_view_shown',\n}\n\n// PREVIEW START\nexport const EDIT_BP_PREVIEW_SHOWN_FPTI = {\n ...commonModularProfileFptiProperties,\n eventName: 'bp_edit_page_preview_shown',\n}\n\nexport const BP_EDIT_PREVIEW_BACK_CLICK_FPTI = {\n ...commonModularProfileFptiProperties,\n eventName: 'bp_edit_preview_back_click',\n}\n\nexport const BP_PREVIEW_BACK_CLICK_FPTI = {\n ...commonModularProfileFptiProperties,\n eventName: 'bp_seller_profile_preview_back_click',\n}\n\nexport const BP_EDIT_PREVIEW_SAVE_CLICK_FPTI = {\n ...commonModularProfileFptiProperties,\n eventName: 'bp_edit_preview_save_click',\n}\n\nexport const PREVIEW_CHANGES_CONT_EDITING_CLICK_FPTI = {\n ...commonModularProfileFptiProperties,\n eventName: 'bp_edit_preview_cont_editing_click',\n}\n// PREVIEW END\n\n// VIEW START\nexport const BUSINESS_PROFILE_SELLER_VIEW_DESCRIPTION_CARD_FPTI = {\n ...commonModularProfileFptiProperties,\n eventName: 'business_profile_seller_view_description_card_click',\n}\n\nexport const BUSINESS_PROFILE_SELLER_VIEW_BUSINESS_INFO_CARD_FPTI = {\n ...commonModularProfileFptiProperties,\n eventName: 'business_profile_seller_view_business_info_card_click',\n}\n// VIEW END\n\n// BIZ INFO START\nexport const EDIT_BIZ_INFO_SAVE_BUTTON_CLICK_FPTI = stringifyFptiProps({\n ...commonModularProfileFptiProperties,\n eventName: 'bp_business_info_page_save_click',\n})\n\nexport const EDIT_BIZ_INFO_SUCCESSFUL_SAVE_FPTI = {\n ...commonModularProfileFptiProperties,\n eventName: 'bp_business_info_update_success',\n}\n// BIZ INFO END\n\n// DESCRIPTION START\nexport const EDIT_PROFILE_DESCRIPTION_SAVE_BUTTON_CLICK_FPTI =\n stringifyFptiProps({\n ...commonModularProfileFptiProperties,\n eventName: 'bp_business_description_page_save_click',\n })\n\nexport const EDIT_PROFILE_DESCRIPTION_SUCCESSFUL_SAVE_FPTI = {\n ...commonModularProfileFptiProperties,\n eventName: 'bp_business_description_update_success',\n}\n// DESCRIPTION END\n\n// PHOTOS START\nexport const BP_SELLER_VIEW_PROFILE_PHOTO_CLICK_FPTI = {\n ...commonModularProfileFptiProperties,\n eventName: 'business_profile_seller_view_profile_photo_click',\n}\n\nexport const BP_SELLER_VIEW_COVER_PHOTO_CLICK_FPTI = {\n ...commonModularProfileFptiProperties,\n eventName: 'business_profile_seller_view_cover_photo_click',\n}\n\nexport const BP_PROFILE_PHOTO_CROP_SCREEN_SHOWN_FPTI = {\n ...commonModularProfileFptiProperties,\n eventName: 'bp_profile_photo_crop_screen_shown',\n}\n\nexport const BP_REMOVE_PHOTO_FPTI = {\n ...commonModularProfileFptiProperties,\n eventName: 'bp_remove_photo',\n}\n\nexport const BP_REMOVE_PROFILE_PHOTO_FPTI = {\n ...BP_REMOVE_PHOTO_FPTI,\n source: 'edit_profile_photo',\n}\n\nexport const BP_REMOVE_COVER_PHOTO_FPTI = {\n ...BP_REMOVE_PHOTO_FPTI,\n source: 'edit_cover_photo',\n}\n\nexport const BP_CHANGE_PHOTO_FPTI = {\n ...commonModularProfileFptiProperties,\n eventName: 'bp_change_photo',\n}\n\nexport const BP_CHANGE_PROFILE_PHOTO_FPTI = {\n ...BP_CHANGE_PHOTO_FPTI,\n source: 'edit_profile_photo',\n}\n\nexport const BP_CHANGE_COVER_PHOTO_FPTI = {\n ...BP_CHANGE_PHOTO_FPTI,\n source: 'edit_cover_photo',\n}\n\nexport const BP_SAVE_PHOTO_FPTI = {\n ...commonModularProfileFptiProperties,\n eventName: 'bp_save_photo',\n}\n\nexport const BP_SAVE_PROFILE_PHOTO_FPTI = {\n ...BP_SAVE_PHOTO_FPTI,\n source: 'edit_profile_photo',\n}\n\nexport const BP_SAVE_COVER_PHOTO_FPTI = {\n ...BP_SAVE_PHOTO_FPTI,\n source: 'edit_cover_photo',\n}\n\nexport const BP_PHOTO_UPLOAD_SUCCESS_SHOWN_FPTI = {\n ...commonModularProfileFptiProperties,\n eventName: 'bp_photo_upload_success',\n}\n\nexport const BP_PHOTO_UPLOAD_ERROR_SHOWN_FPTI = {\n ...commonModularProfileFptiProperties,\n eventName: 'bp_photo_upload_error',\n}\n\nexport const BP_CHOOSE_EXISTING_PROFILE_PHOTO_FPTI = {\n ...commonModularProfileFptiProperties,\n eventName: 'bp_choose_existing_photo',\n source: 'edit_profile_photo',\n}\n\nexport const BP_COVER_PHOTO_CROP_SCREEN_SHOWN_FPTI = {\n ...commonModularProfileFptiProperties,\n eventName: 'bp_cover_photo_crop_screen_shown',\n}\n\nexport const BP_CHOOSE_EXISTING_COVER_PHOTO_FPTI = {\n ...commonModularProfileFptiProperties,\n eventName: 'bp_choose_existing_photo',\n source: 'edit_cover_photo',\n}\n// PHOTOS END\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??ruleSet[1].rules[0].oneOf[0].use[1]!../../../../../node_modules/less-loader/dist/cjs.js!./styles.module.less\";\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??ruleSet[1].rules[0].oneOf[0].use[1]!../../../../../node_modules/less-loader/dist/cjs.js!./styles.module.less\";\n export default content && content.locals ? content.locals : undefined;\n","// EXTERNAL DEPENDENCIES\nimport React, { useEffect, useRef, useState } from 'react'\nimport { useDispatch } from 'react-redux'\n\n// HELPERS\nimport { useImpressionTracking } from '@/hooks'\nimport {\n useBusinessProfilePageContent,\n useBusinessProfileReduxState,\n useErrorResetting,\n useModularSellerViewPageContent,\n} from '../../hooks'\nimport {\n updateAreValuesEdited,\n updateEditedProfileDataValues,\n} from '@/redux/features'\n\n// COMPONENTS\nimport { Card, Link, Row } from '@paypalcorp/pp-react'\nimport ContactInfoSection from '@/common/components/ui/contact-info-section'\nimport ExitConfirmationBox from '@/common/components/ui/confirmation-box'\nimport {\n BusinessUsernameSection,\n EditBusinessLocationNameSection,\n PageHeaderSection,\n PreviewProfileButton,\n SaveEditsButton,\n} from '../'\n\n// CONSTANTS\nimport { commonModularProfileFptiProperties } from '@/constants'\nimport { routes } from '@/api/constants'\nimport { EDIT_BIZ_INFO_PAGE_COMPONENT_TEST_ID } from '../../constants/test-ids'\n\n// FPTI\nimport {\n EDIT_BIZ_INFO_BACK_LINK_CLICK_FPTI,\n EDIT_BIZ_INFO_PAGE_SHOWN_FPTI,\n EDIT_BIZ_INFO_PREVIEW_BUTTON_CLICK_FPTI,\n} from './fpti'\nimport { MODULAR_EDIT_PROFILE_PANEL_EDIT_BUSINESS_INFO_FPTI } from '../../fpti'\nimport {\n EDIT_BIZ_INFO_SAVE_BUTTON_CLICK_FPTI,\n EDIT_BIZ_INFO_SUCCESSFUL_SAVE_FPTI,\n} from '../owner-profile-page/constants/fpti'\n\n// STYLES\nimport styles from './styles.module.less'\n\n// TYPES\nimport { FormattedEditedProfileData } from '../../types/state'\nimport { LocationDisplayPreference } from '@/types'\n\n/**\n * Allows the profile owner to edit their business info, such as\n * their address display preference and displayed contact info\n */\nexport function EditBizInfoPage({\n goBackToMainPage,\n}: {\n goBackToMainPage: () => void\n}) {\n useImpressionTracking(EDIT_BIZ_INFO_PAGE_SHOWN_FPTI)\n\n // DECLARATIONS\n const isEditedDataInitialized = useRef(false)\n const dispatch = useDispatch()\n\n // INITIALIZE CONTENT\n const getContent = useBusinessProfilePageContent()\n const getModularSellerViewPageContent = useModularSellerViewPageContent()\n const bizInfoUpdatedToastMessage = getModularSellerViewPageContent(\n 'bizInfoUpdatedToast',\n )\n\n // STATE\n const {\n uneditedFormattedData: {\n allContactInfo,\n businessHandle,\n contactInfo,\n profilePreferences,\n },\n editedProfileData: { values },\n } = useBusinessProfileReduxState()\n\n const { locationDisplayPreference: originalLocationDisplayPreference } =\n profilePreferences || {}\n\n const {\n businessEmail: originalBusinessEmail,\n businessPhoneNumber: originalBusinessPhoneNumber,\n businessWebsiteUrl: originalBusinessWebsiteUrl,\n } = (contactInfo as FormattedEditedProfileData['contactInfo']) || {}\n\n const {\n businessEmail: updatedBusinessEmail,\n businessPhoneNumber: updatedBusinessPhoneNumber,\n businessWebsiteUrl: updatedBusinessWebsiteUrl,\n } = (values?.contactInfo as FormattedEditedProfileData['contactInfo']) || {}\n const { locationDisplayPreference: updatedLocationDisplayPreference } =\n values?.profilePreferences || {}\n\n const [shouldShowExitConfirmation, setShouldShowExitConfirmation] =\n useState(false)\n const [isContactInfoValid, setIsContactInfoValid] = useState(null)\n\n const checkIfChangesExist = () => {\n return (\n originalLocationDisplayPreference !== updatedLocationDisplayPreference ||\n originalBusinessEmail !== updatedBusinessEmail ||\n originalBusinessPhoneNumber !== updatedBusinessPhoneNumber ||\n originalBusinessWebsiteUrl !== updatedBusinessWebsiteUrl\n )\n }\n\n const handleBackClick = () => {\n const changesExist = checkIfChangesExist()\n\n if (changesExist) {\n setShouldShowExitConfirmation(true)\n } else {\n goBackToMainPage()\n }\n }\n\n // EFFECTS START\n useErrorResetting(isContactInfoValid)\n\n useEffect(() => {\n const emptyEditedContactInfoFields =\n values?.contactInfo &&\n Object.values(values?.contactInfo).every((value) => value === '')\n\n if (\n businessHandle &&\n !isEditedDataInitialized.current &&\n emptyEditedContactInfoFields\n ) {\n // Mark as initialized\n isEditedDataInitialized.current = true\n\n // initialize starting contact info\n const contactInfoUpdate = {} as FormattedEditedProfileData['contactInfo']\n const newProfilePreferences =\n {} as FormattedEditedProfileData['profilePreferences']\n\n contactInfoUpdate.businessEmail = originalBusinessEmail\n contactInfoUpdate.businessPhoneNumber = originalBusinessPhoneNumber\n contactInfoUpdate.businessWebsiteUrl = originalBusinessWebsiteUrl\n\n newProfilePreferences.locationDisplayPreference =\n originalLocationDisplayPreference as LocationDisplayPreference\n\n dispatch(\n updateEditedProfileDataValues({\n contactInfo: contactInfoUpdate,\n profilePreferences: newProfilePreferences,\n }),\n )\n }\n }, [\n businessHandle,\n dispatch,\n originalBusinessEmail,\n originalBusinessPhoneNumber,\n originalBusinessWebsiteUrl,\n originalLocationDisplayPreference,\n values?.contactInfo,\n ])\n // EFFECTS END\n\n const contactInfoContent = (\n \n
\n \n
\n
\n \n
\n
\n {\n dispatch(\n updateEditedProfileDataValues({\n contactInfo: updatedContactInfo,\n }),\n )\n dispatch(updateAreValuesEdited(true))\n }}\n allContactInfo={allContactInfo}\n selectedContactInfoValues={values?.contactInfo}\n />\n
\n
\n \n \n
\n
\n \n {getContent('editBusinessInfoLink')}\n \n
\n
\n )\n\n return (\n \n
\n
\n \n {contactInfoContent}\n \n
\n
{contactInfoContent}
\n
{\n setShouldShowExitConfirmation(false)\n }}\n handleBack={goBackToMainPage}\n fpti={{\n source: 'biz_info_page',\n ...commonModularProfileFptiProperties,\n }}\n />\n \n )\n}\n","// HELPERS\nimport { stringifyFptiProps } from '@/utils'\n\n// CONSTANTS\nimport { commonModularProfileFptiProperties } from '@/constants'\n\nexport const EDIT_DESCRIPTION_PAGE_SHOWN_FPTI = {\n ...commonModularProfileFptiProperties,\n eventName: 'bp_business_description_page_shown',\n}\n\nexport const EDIT_DESCRIPTION_BACK_LINK_CLICK_FPTI = stringifyFptiProps({\n ...commonModularProfileFptiProperties,\n eventName: 'bp_business_description_page_back_click',\n})\n\nexport const EDIT_DESCRIPTION_PREVIEW_BUTTON_CLICK_FPTI = stringifyFptiProps({\n ...commonModularProfileFptiProperties,\n eventName: 'bp_business_description_page_preview_click',\n})\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??ruleSet[1].rules[0].oneOf[0].use[1]!../../../../../node_modules/less-loader/dist/cjs.js!./styles.module.less\";\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??ruleSet[1].rules[0].oneOf[0].use[1]!../../../../../node_modules/less-loader/dist/cjs.js!./styles.module.less\";\n export default content && content.locals ? content.locals : undefined;\n","// EXTERNAL DEPENDENCIES\nimport React, { useEffect, useRef, useState } from 'react'\nimport { useDispatch } from 'react-redux'\n\n// HELPERS\nimport { useImpressionTracking } from '@/hooks'\nimport { updateEditedProfileDataValues } from '@/redux/features'\nimport {\n useBusinessProfilePageContent,\n useBusinessProfileReduxState,\n useErrorResetting,\n useModularSellerViewPageContent,\n} from '../../hooks'\n\n// COMPONENTS\nimport { Row } from '@paypalcorp/pp-react'\nimport ExitConfirmationBox from '@/common/components/ui/confirmation-box'\nimport {\n BusinessDescriptionSection,\n PageHeaderSection,\n PreviewProfileButton,\n SaveEditsButton,\n} from '../'\n\n// CONSTANTS\nimport { EDIT_DESCRIPTION_PAGE_COMPONENT_TEST_ID } from '../../constants/test-ids'\nimport { commonModularProfileFptiProperties } from '@/constants'\n\n// FPTI\nimport {\n EDIT_DESCRIPTION_BACK_LINK_CLICK_FPTI,\n EDIT_DESCRIPTION_PAGE_SHOWN_FPTI,\n EDIT_DESCRIPTION_PREVIEW_BUTTON_CLICK_FPTI,\n} from './fpti'\nimport {\n EDIT_PROFILE_DESCRIPTION_SAVE_BUTTON_CLICK_FPTI,\n EDIT_PROFILE_DESCRIPTION_SUCCESSFUL_SAVE_FPTI,\n} from '../owner-profile-page/constants/fpti'\n\n// STYLES\nimport styles from './styles.module.less'\n\n// TYPES\nimport { FormattedEditedProfileData } from '../../types/state'\n\n/**\n * Allows the profile owner to edit their business description\n */\nexport function EditDescriptionPage({\n goBackToMainPage,\n}: {\n goBackToMainPage: () => void\n}) {\n const isEditedDataInitialized = useRef(false)\n const dispatch = useDispatch()\n useImpressionTracking(EDIT_DESCRIPTION_PAGE_SHOWN_FPTI)\n\n // INITIALIZE CONTENT\n const getContent = useBusinessProfilePageContent()\n const getModularSellerViewPageContent = useModularSellerViewPageContent()\n const profileDescriptionUpdatedToastMessage = getModularSellerViewPageContent(\n 'profileDescriptionUpdatedToast',\n )\n\n // STATE\n const {\n uneditedFormattedData,\n editedProfileData: { values },\n } = useBusinessProfileReduxState()\n const [shouldShowExitConfirmation, setShouldShowExitConfirmation] =\n useState(false)\n const [isDescriptionValid, setIsDescriptionValid] = useState(true)\n\n const { businessDescription: originalBusinessDescription } =\n uneditedFormattedData || {}\n const { businessDescription: updatedBusinessDescription } =\n (values as FormattedEditedProfileData) || {}\n\n const handleBackClick = () => {\n const changesExist =\n originalBusinessDescription !== updatedBusinessDescription\n\n if (changesExist) {\n setShouldShowExitConfirmation(true)\n } else {\n goBackToMainPage()\n }\n }\n\n // EFFECTS START\n useEffect(() => {\n // initialize starting description\n if (\n originalBusinessDescription &&\n !isEditedDataInitialized.current &&\n updatedBusinessDescription === ''\n ) {\n isEditedDataInitialized.current = true\n\n dispatch(\n updateEditedProfileDataValues({\n businessDescription: originalBusinessDescription,\n }),\n )\n }\n }, [dispatch, originalBusinessDescription, updatedBusinessDescription])\n\n useErrorResetting(isDescriptionValid)\n // EFFECTS END\n\n return (\n \n
\n
\n
{\n setShouldShowExitConfirmation(false)\n }}\n handleBack={goBackToMainPage}\n fpti={{\n source: 'biz_description_page',\n ...commonModularProfileFptiProperties,\n }}\n />\n \n )\n}\n","import { ProfileDetailsResponse, UnformattedProfileDataResponse } from '@/types'\n\n/**\n * Format profile info API responses into a unified format since\n * each response contains different necessary profile data points\n */\nexport function formatRawProfileDetails(\n profileDetails: ProfileDetailsResponse,\n profileData: UnformattedProfileDataResponse,\n) {\n const {\n contactInfo = {} as ProfileDetailsResponse['contactInfo'],\n profilePreferences = {} as ProfileDetailsResponse['profilePreferences'],\n } = profileDetails\n const { unformattedBusinessPhoneNumber, ...relevantContactInfo } = contactInfo\n\n const displayedContactInfo = {\n businessEmail: profilePreferences.emailAddressDisplay\n ? relevantContactInfo.businessEmail\n : null,\n businessPhoneNumber: profilePreferences.phoneNumberDisplay\n ? relevantContactInfo.businessPhoneNumber\n : null,\n businessWebsiteUrl: profilePreferences.websiteDisplay\n ? relevantContactInfo.businessWebsiteUrl\n : null,\n }\n\n return {\n coverPhoto: profileData.backgroundUrl,\n profilePhoto: profileData.avatarUrl,\n businessDescription:\n profileData.businessDescription || profileDetails.businessDescription,\n businessName: profileData.businessName,\n businessHandle: profileDetails.businessHandle,\n businessAddress: profileDetails.businessAddress,\n contactInfo: displayedContactInfo,\n allContactInfo: relevantContactInfo,\n profilePreferences,\n }\n}\n","export const reviewPanelId = 1\n","// EXTERNAL DEPENDENCIES\nimport React from 'react'\nimport { useDispatch } from 'react-redux'\n\n// COMPONENTS\nimport NextAndBackButtons from '@/common/components/ui/next-and-back-buttons'\n\n// HELPERS\nimport { focusOnErroredFormElement } from '@/utils/accessibility'\n\n// REDUX\nimport { updateCurrentPanelIndexInEditForm } from '@/redux/features'\nimport { useBusinessProfileReduxState } from '@/screens/business-profile-page/hooks'\n\n// CONSTANTS\nimport { reviewPanelId } from '@/screens/business-profile-page/constants/panel-ids'\n\n// TYPES\nimport { NavigationButtonProps } from '@/types'\n\n/**\n * Displays the back and next buttons that handle validation and navigation\n */\nexport function NavigationButtons({\n nextButtonProps,\n handleSubmit,\n backButtonProps,\n optionalLink,\n lastPanelIndex = reviewPanelId,\n pageIsValidated,\n isFormValid,\n}: Readonly<{\n handleSubmit?: () => void\n nextButtonProps: Partial\n backButtonProps?: Partial\n optionalLink?: React.ReactNode\n lastPanelIndex?: number\n pageIsValidated?: boolean\n isFormValid: boolean\n}>) {\n const dispatch = useDispatch()\n\n const {\n editedProfileData: { currentPanelIndex },\n } = useBusinessProfileReduxState()\n\n const isOnLastPanel = currentPanelIndex === lastPanelIndex\n const isOnFirstPanel = currentPanelIndex === 0\n\n const handleNavigation = (nextPanelIndex: number) =>\n dispatch(updateCurrentPanelIndexInEditForm(nextPanelIndex))\n\n function goToNextPanel() {\n handleNavigation(\n currentPanelIndex + 1 > lastPanelIndex\n ? currentPanelIndex\n : currentPanelIndex + 1,\n )\n }\n\n const handleNextClick = (e: React.FormEvent) => {\n focusOnErroredFormElement(e)\n\n if (isFormValid) {\n if (isOnLastPanel) {\n return handleSubmit()\n }\n\n goToNextPanel()\n }\n }\n\n const handleBackClick = () => {\n const previousPanelIndex = isOnFirstPanel ? 0 : currentPanelIndex - 1\n\n isOnFirstPanel && backButtonProps.handleClick\n ? backButtonProps.handleClick()\n : handleNavigation(previousPanelIndex)\n }\n\n return (\n \n )\n}\n","export const pageGroup = 'edit_business_profile'\nconst pageName = 'edit_page'\nexport const commonProperties = { pageGroup, pageName }\n\nexport const EDIT_PROFILE_SCREEN_SHOWN_FPTI = {\n ...commonProperties,\n eventName: 'edit_bp_page_shown',\n}\n\nexport const REVIEW_PROFILE_PANEL_NEXT_BUTTON_FPTI = JSON.stringify({\n ...commonProperties,\n eventName: 'edit_bp_page_next_button_click',\n})\n\nexport const EDIT_BP_ABANDON_POPUP_SHOWN = {\n ...commonProperties,\n eventName: 'edit_bp_abandon_popup_shown',\n}\n","import { stringifyFptiProps } from '@/utils/fpti'\nimport { commonProperties } from '../../fpti'\n\nexport const EDIT_PROFILE_PANEL_NEXT_BUTTON_FPTI = stringifyFptiProps({\n ...commonProperties,\n eventName: 'edit_bp_page_next_button_click',\n})\n\nexport const EDIT_PROFILE_PANEL_EDIT_PROFILE_PHOTO_FPTI = stringifyFptiProps({\n ...commonProperties,\n eventName: 'edit_bp_page_edit_profile_photo_click',\n})\n\nexport const EDIT_PROFILE_PANEL_EDIT_COVER_PHOTO_FPTI = stringifyFptiProps({\n ...commonProperties,\n eventName: 'edit_bp_page_edit_cover_photo_click',\n})\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??ruleSet[1].rules[0].oneOf[0].use[1]!../../../../../../../../../node_modules/less-loader/dist/cjs.js!./styles.module.less\";\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??ruleSet[1].rules[0].oneOf[0].use[1]!../../../../../../../../../node_modules/less-loader/dist/cjs.js!./styles.module.less\";\n export default content && content.locals ? content.locals : undefined;\n","// EXTERNAL DEPENDENCIES\nimport React from 'react'\nimport { useDispatch } from 'react-redux'\n\n// COMPONENTS\nimport { ContextualAlert } from '@paypalcorp/pp-react'\nimport PhotoUploadSection from '@/common/components/ui/profile/photo-upload-section'\n\n// HOOKS\nimport usePhotoUploading from '@/hooks/ui'\nimport {\n useBusinessProfilePageContent,\n useBusinessProfileReduxState,\n} from '@/screens/business-profile-page/hooks'\n\n// REDUX\nimport {\n updateEditedProfileDataValues,\n updateAreValuesEdited,\n} from '@/redux/features'\n\n// FPTI\nimport {\n EDIT_PROFILE_PANEL_EDIT_COVER_PHOTO_FPTI,\n EDIT_PROFILE_PANEL_EDIT_PROFILE_PHOTO_FPTI,\n} from '../../fpti'\n\n// STYLES\nimport styles from './styles.module.less'\n\n// TYPES\nimport { PhotoTypes } from '@/types'\n\n/**\n * Displays a screen allowing them to upload their profile photos and cover photos\n */\nexport function ProfilePhotosSection({\n setIsCoverPhotoValid,\n setIsProfilePhotoValid,\n}: Readonly<{\n setIsCoverPhotoValid: (isValid: boolean) => void\n setIsProfilePhotoValid: (isValid: boolean) => void\n}>) {\n const dispatch = useDispatch()\n const {\n editedProfileData: { values },\n } = useBusinessProfileReduxState()\n const isLoading = !values.businessHandle\n\n const getContent = useBusinessProfilePageContent()\n const coverPhotoTitle = getContent('coverPhotoTitle')\n const profilePhotoTitle = getContent('profilePhotoTitle')\n\n const updateImageSrc = React.useCallback(\n (photoType: PhotoTypes, value: string) => {\n dispatch(updateEditedProfileDataValues({ [photoType]: value }))\n dispatch(updateAreValuesEdited(true))\n },\n [dispatch],\n )\n\n const profilePhotoUploadingProps = usePhotoUploading({\n photoType: 'profilePhoto',\n photoSrc: values.profilePhoto,\n updatePhotoValidity: (_photoType, isValid) =>\n setIsProfilePhotoValid(isValid),\n updateImageSrc,\n isLoading,\n })\n\n const coverPhotoUploadingProps = usePhotoUploading({\n photoType: 'coverPhoto',\n photoSrc: values.coverPhoto,\n updatePhotoValidity: (_photoType, isValid) => setIsCoverPhotoValid(isValid),\n updateImageSrc,\n isLoading,\n })\n\n const errorMessage =\n profilePhotoUploadingProps.errorMessage ||\n coverPhotoUploadingProps.errorMessage\n\n return (\n \n
\n
\n {errorMessage ? (\n
\n {errorMessage}\n \n ) : null}\n
\n )\n}\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??ruleSet[1].rules[0].oneOf[0].use[1]!../../../../../../../node_modules/less-loader/dist/cjs.js!./styles.module.less\";\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??ruleSet[1].rules[0].oneOf[0].use[1]!../../../../../../../node_modules/less-loader/dist/cjs.js!./styles.module.less\";\n export default content && content.locals ? content.locals : undefined;\n","// EXTERNAL DEPENDENCIES\nimport React, { useEffect, useState } from 'react'\nimport { useIsMutating } from '@tanstack/react-query'\nimport { useDispatch } from 'react-redux'\n\n// COMPONENTS\nimport { Link, Row } from '@paypalcorp/pp-react'\nimport ContactInfoSection from '@/common/components/ui/contact-info-section'\nimport { WithLoadingShimmer } from '@/common/components/loading/with-loading-shimmer'\nimport {\n BusinessDescriptionSection,\n BusinessNameSection,\n BusinessUsernameSection,\n EditBusinessLocationNameSection,\n} from '../../../'\nimport { NavigationButtons } from '../navigation-buttons'\nimport { ProfilePhotosSection } from './components'\n\n// HELPERS\nimport {\n useBusinessProfilePageContent,\n useBusinessProfileReduxState,\n} from '../../../../hooks'\n\n// REDUX\nimport {\n updateEditedProfileDataValues,\n updateIsEditing,\n updateAreValuesEdited,\n} from '@/redux/features'\n\n// CONSTANTS\nimport { routes } from '@/api/constants'\nimport { EDIT_PROFILE_PANEL_TEST_ID } from '@/screens/business-profile-page/constants/test-ids'\n\n// FPTI\nimport { EDIT_PROFILE_PANEL_NEXT_BUTTON_FPTI } from './fpti'\nimport { MODULAR_EDIT_PROFILE_PANEL_EDIT_BUSINESS_INFO_FPTI } from '@/screens/business-profile-page/fpti'\n\n// STYLES\nimport styles from './styles.module.less'\n\n/**\n * Shows all of the editable/non-editable business information fields\n */\nexport function EditProfilePanel({\n isLoading,\n resetEditedData,\n}: {\n isLoading: boolean\n resetEditedData: () => void\n}) {\n const validationInProgress = useIsMutating() > 0\n const dispatch = useDispatch()\n const getContent = useBusinessProfilePageContent()\n\n // STATE START\n const {\n editedProfileData: { values },\n } = useBusinessProfileReduxState()\n\n // STATE END\n const [isFormValid, setIsFormValid] = useState(true)\n const [isContactInfoValid, setIsContactInfoValid] = useState(true)\n const [isBusinessDescriptionValid, setIsBusinessDescriptionValid] =\n useState(true)\n const [isProfilePhotoValid, setIsProfilePhotoValid] = useState(true)\n const [isCoverPhotoValid, setIsCoverPhotoValid] = useState(true)\n\n useEffect(() => {\n setIsFormValid(\n !validationInProgress &&\n isContactInfoValid &&\n isBusinessDescriptionValid &&\n isProfilePhotoValid &&\n isCoverPhotoValid,\n )\n }, [\n validationInProgress,\n isBusinessDescriptionValid,\n isContactInfoValid,\n isCoverPhotoValid,\n isProfilePhotoValid,\n ])\n\n return (\n \n
\n
\n
\n
\n
\n \n
\n
\n {\n dispatch(\n updateEditedProfileDataValues({\n contactInfo: updatedContactInfo,\n }),\n )\n dispatch(updateAreValuesEdited(true))\n }}\n allContactInfo={values?.allContactInfo}\n selectedContactInfoValues={values?.contactInfo}\n />\n
\n
\n {\n dispatch(updateIsEditing(false))\n resetEditedData()\n },\n }}\n optionalLink={\n \n {getContent('editBusinessInfoLink')}\n \n }\n />\n \n
\n )\n}\n","import { stringifyFptiProps } from '@/utils'\nimport { commonProperties } from '../../fpti'\n\nexport const EDIT_PROFILE_TERMS_LINK_CLICK_FPTI = stringifyFptiProps({\n ...commonProperties,\n eventName: 'bp_profile_preview_page_terms_link_click',\n})\n\nexport const EDIT_PROFILE_AGREE_AND_PUBLISH_CLICK_FPTI = stringifyFptiProps({\n ...commonProperties,\n eventName: 'bp_profile_preview_page_publish_click',\n})\n\nexport const EDIT_PROFILE_PUBLISH_SUCCESS_FPTI = {\n ...commonProperties,\n eventName: 'edit_bp_publish_profile_success',\n}\n\nexport const EDIT_PROFILE_PUBLISH_ERROR_FPTI = {\n ...commonProperties,\n eventName: 'edit_bp_publish_profile_failure',\n}\n","// EXTERNAL DEPENDENCIES\nimport React from 'react'\nimport { useDispatch } from 'react-redux'\nimport { useQueryClient } from '@tanstack/react-query'\n\n// HELPERS\nimport {\n useBusinessProfilePageContent,\n useBusinessProfileReduxState,\n} from '@/screens/business-profile-page/hooks'\n\n// COMPONENTS\nimport ProfileCard from '@/common/components/ui/profile/profile-card'\nimport { NavigationButtons } from '../navigation-buttons'\n\n// API\nimport { useEditProfile } from '@/api/profile'\nimport { formatProfileRequestBody } from '@/api/formatters'\n\n// REDUX\nimport {\n updateIsEditing,\n updateEditPageIsLoading,\n updateEditPageErrorMessage,\n updateAreValuesEdited,\n} from '@/redux/features'\nimport { updateGlobalToast } from '@/redux/features/global-slice'\n\n// FPTI\nimport { scrollToTop, trackImpression } from '@/utils'\nimport {\n EDIT_PROFILE_AGREE_AND_PUBLISH_CLICK_FPTI,\n EDIT_PROFILE_PUBLISH_ERROR_FPTI,\n EDIT_PROFILE_PUBLISH_SUCCESS_FPTI,\n EDIT_PROFILE_TERMS_LINK_CLICK_FPTI,\n} from './fpti'\n\n// CONSTANTS\nimport { routes } from '@/api/constants'\n\n// TYPES\nimport {\n ContactInfoResponse,\n LocationDisplayPreference,\n PortableAddress,\n ProfileData,\n} from '@/types'\n\n/**\n * Displays the Profile Card in reviewable state for the user to\n * view prior to saving their changes and publishing\n */\nexport function ReviewProfilePanel() {\n // INITIALIZATIONS\n const dispatch = useDispatch()\n\n // NETWORK REQUESTS\n const queryClient = useQueryClient()\n const { mutateAsync: editProfile } = useEditProfile()\n\n // STATE\n const {\n profileData = {},\n editedProfileData: { values },\n } = useBusinessProfileReduxState()\n\n // INITIALIZE CONTENT\n const getContent = useBusinessProfilePageContent()\n const publishErrorToastMessage = getContent('publishErrorToast')\n const publishSuccessToastMessage = getContent('publishSuccessToast')\n\n const {\n businessHandle,\n coverPhoto,\n businessName,\n profilePhoto,\n businessDescription,\n contactInfo = {},\n businessAddress,\n profilePreferences,\n } = values\n\n const { businessWebsiteUrl, businessEmail, businessPhoneNumber } =\n contactInfo as ContactInfoResponse\n const { businessJoinDate, customerCount } = profileData || {}\n\n async function handleSubmit() {\n const handleError = () => {\n dispatch(updateEditPageErrorMessage(publishErrorToastMessage))\n trackImpression(EDIT_PROFILE_PUBLISH_ERROR_FPTI)\n }\n\n try {\n scrollToTop()\n\n const request = formatProfileRequestBody(\n {\n businessDescription,\n businessAddress: businessAddress as PortableAddress,\n profilePhoto,\n coverPhoto,\n selectedContactInfo: contactInfo,\n selectedLocationDisplayPreference:\n profilePreferences.locationDisplayPreference,\n } as ProfileData,\n true,\n )\n\n dispatch(updateEditPageIsLoading(true))\n\n await editProfile({ request })\n\n dispatch(updateEditPageIsLoading(false))\n\n queryClient.refetchQueries({\n queryKey: [`${routes.PROFILE_DATA}/${businessHandle}`],\n })\n\n trackImpression(EDIT_PROFILE_PUBLISH_SUCCESS_FPTI)\n\n dispatch(updateGlobalToast({ message: publishSuccessToastMessage }))\n dispatch(updateIsEditing(false))\n dispatch(updateAreValuesEdited(false))\n } catch (_e) {\n dispatch(updateEditPageIsLoading(false))\n\n handleError()\n }\n }\n\n return (\n \n
\n
dispatch(updateIsEditing(false)),\n }}\n />\n \n )\n}\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??ruleSet[1].rules[0].oneOf[0].use[1]!../../../../../node_modules/less-loader/dist/cjs.js!./styles.module.less\";\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??ruleSet[1].rules[0].oneOf[0].use[1]!../../../../../node_modules/less-loader/dist/cjs.js!./styles.module.less\";\n export default content && content.locals ? content.locals : undefined;\n","// EXTERNAL DEPENDENCIES\nimport React from 'react'\n\n// HELPERS\nimport { useBusinessProfilePageContent } from '../../hooks'\nimport { invokeOnSpaceOrEnter } from '@/utils'\n\n// COMPONENTS\nimport {\n ArrowLeftIcon,\n BodyText,\n HeadingText,\n Link,\n Row,\n} from '@paypalcorp/pp-react'\n\n// STYLES\nimport styles from './styles.module.less'\n\n/**\n * Header and back link shown at the top of pages\n */\nexport function PageHeaderSection({\n handleBackClick,\n pageHeaderText,\n subHeaderText,\n customBackLinkText,\n backLinkFpti = '',\n}: {\n handleBackClick: () => void\n pageHeaderText: string\n subHeaderText?: string\n customBackLinkText?: string\n backLinkFpti?: string\n}) {\n const getContent = useBusinessProfilePageContent()\n\n const backToBusinessProfileText = getContent('backToBusinessProfile')\n\n return (\n \n \n \n {customBackLinkText || backToBusinessProfileText}\n \n \n {pageHeaderText}\n \n {subHeaderText && {subHeaderText}}\n
\n )\n}\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??ruleSet[1].rules[0].oneOf[0].use[1]!../../../../../node_modules/less-loader/dist/cjs.js!./styles.module.less\";\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??ruleSet[1].rules[0].oneOf[0].use[1]!../../../../../node_modules/less-loader/dist/cjs.js!./styles.module.less\";\n export default content && content.locals ? content.locals : undefined;\n","// EXTERNAL DEPENDENCIES\nimport React, { useCallback, useEffect } from 'react'\nimport { useDispatch } from 'react-redux'\n\n// HELPERS\nimport { scrollToTop } from '@/utils'\nimport { formatRawProfileDetails } from '../../utils'\n\n// API\nimport { useProfileDetails } from '@/api/profile'\n\n// REDUX\nimport {\n useBusinessProfilePageContent,\n useBusinessProfileReduxState,\n} from '../../hooks'\nimport {\n updateEditedProfileDataValues,\n updateIsEditing,\n updateUneditedFormattedData,\n} from '@/redux/features'\n\n// COMPONENTS\nimport { Alert, Container } from '@paypalcorp/pp-react'\nimport PanelSliderWithProgressSteppers from '@/common/components/ui/panel-slider-with-progress-steppers'\nimport CenteredLoadingSpinner from '@/common/components/loading/centered-loading-spinner'\nimport { EditProfilePanel, ReviewProfilePanel } from './components'\nimport { PageHeaderSection } from '../page-header-section'\n\n// FPTI\nimport { useImpressionTracking } from '@/hooks'\nimport { EDIT_PROFILE_SCREEN_SHOWN_FPTI } from './fpti'\n\n// TEST IDS\nimport { EDIT_PROFILE_PAGE_TEST_ID } from '../../constants/test-ids'\n\n// STYLES\nimport styles from './styles.module.less'\n\n/**\n * A user who has already created a Business Profile can edit it via this page\n */\nexport function EditProfilePage() {\n useImpressionTracking(EDIT_PROFILE_SCREEN_SHOWN_FPTI)\n\n const dispatch = useDispatch()\n const getContent = useBusinessProfilePageContent()\n\n // NETWORK REQUESTS\n const { data: profileDetails, isFetching } = useProfileDetails()\n const { unformattedBusinessPhoneNumber, ...relevantContactInfo } =\n profileDetails?.contactInfo || {}\n\n // STATE\n const {\n profileData,\n editedProfileData: {\n currentPanelIndex,\n editPageIsLoading,\n errorMessage,\n values,\n },\n uneditedFormattedData,\n } = useBusinessProfileReduxState()\n\n // EFFECTS\n useEffect(() => {\n if (\n profileDetails &&\n profileData &&\n Object.keys(relevantContactInfo).length &&\n !values.businessName\n ) {\n const formattedProfileDetails = formatRawProfileDetails(\n profileDetails,\n profileData,\n )\n\n dispatch(updateUneditedFormattedData(formattedProfileDetails))\n dispatch(updateEditedProfileDataValues(formattedProfileDetails))\n }\n }, [\n dispatch,\n profileDetails,\n profileData,\n relevantContactInfo,\n values.businessName,\n ])\n\n useEffect(() => {\n scrollToTop()\n }, [currentPanelIndex])\n\n const resetEditedData = useCallback(() => {\n dispatch(updateEditedProfileDataValues(uneditedFormattedData))\n }, [uneditedFormattedData, dispatch])\n\n // PANELS\n const panels = [\n {\n panel: (\n \n ),\n },\n {\n panel: ,\n },\n ]\n\n return (\n \n {editPageIsLoading ? (\n \n ) : (\n <>\n {\n dispatch(updateIsEditing(false))\n resetEditedData()\n }}\n pageHeaderText={getContent('editProfilePageHeader')}\n />\n {errorMessage && (\n \n {errorMessage}\n \n )}\n \n >\n )}\n \n )\n}\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??ruleSet[1].rules[0].oneOf[0].use[1]!../../../../../node_modules/less-loader/dist/cjs.js!./styles.module.less\";\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??ruleSet[1].rules[0].oneOf[0].use[1]!../../../../../node_modules/less-loader/dist/cjs.js!./styles.module.less\";\n export default content && content.locals ? content.locals : undefined;\n","// EXTERNAL DEPENDENCIES\nimport React, { useState } from 'react'\nimport { useDispatch } from 'react-redux'\n\n// COMPONENTS\nimport {\n Alert,\n Button,\n Col,\n EditIcon,\n IconButton,\n Link,\n PreviewIcon,\n Row,\n ShareIcon,\n} from '@paypalcorp/pp-react'\nimport { HeadingText } from '@paypalcorp/pp-react-text'\nimport ShareProfileSheetContainer from '@/common/components/ui/share-profile-sheet-container'\nimport FullWidthContainer from '@/common/components/ui/full-width-container'\n\n// HELPERS\nimport {\n useBusinessProfilePageContent,\n useBusinessProfilePageMessage,\n} from '../../hooks'\nimport { updateIsEditing, updateIsPreviewing } from '@/redux/features'\n\n// TEST IDS\nimport {\n BUSINESS_PROFILE_HEADER_SECTION_TEST_ID,\n UNPUBLISHED_PROFILE_WARNING_ALERT_TEST_ID,\n} from '../../constants/test-ids'\n\n// FPTI\nimport {\n BUSINESS_PROFILE_EDIT_PROFILE_CLICK_FPTI,\n BUSINESS_PROFILE_PREVIEW_PROFILE_CLICK_FPTI,\n BUSINESS_PROFILE_SELLER_SHARE_LINK_CLICK_FPTI,\n} from '../../fpti'\n\n// STYLES\nimport styles from './styles.module.less'\nimport { whiteColor } from '@/styles/colors'\n\n// TYPES\ntype HeaderSectionProps = {\n userCanCreateProfile: boolean\n userCanPreviewProfile: boolean\n shouldShow: boolean\n profilePublished: boolean\n}\n\n/**\n * Displays header text and buttons to share and edit the\n * profile if they are the profile owner\n */\nexport function HeaderSection({\n userCanCreateProfile,\n userCanPreviewProfile,\n shouldShow,\n profilePublished,\n}: HeaderSectionProps): React.ReactElement {\n const dispatch = useDispatch()\n const getMessage = useBusinessProfilePageMessage()\n const getContent = useBusinessProfilePageContent()\n const mainPageHeaderText = getContent('mainPageHeader')\n const editProfileText = getContent('editProfile')\n const previewProfileText = getContent('previewProfile')\n const shareProfileText = getContent('shareProfile')\n\n const unpublishedProfileWarningText = getMessage(\n 'unpublishedProfileWarningText',\n {\n link: (msg: string) => (\n \n {msg}\n \n ),\n },\n )\n\n const [isShareSheetOpen, setIsShareSheetOpen] = useState(false)\n const handleShareClick = () => setIsShareSheetOpen(true)\n const handlePreviewClick = () => dispatch(updateIsPreviewing(true))\n const handleEditClick = () => dispatch(updateIsEditing(true))\n\n return shouldShow ? (\n \n {!profilePublished && (\n \n {unpublishedProfileWarningText}\n \n )}\n \n \n {mainPageHeaderText}\n \n {profilePublished && (\n \n {userCanCreateProfile && (\n \n )}\n \n {userCanPreviewProfile && (\n \n )}\n \n {userCanCreateProfile && (\n \n {editProfileText}\n \n )}\n \n {shareProfileText}\n \n {userCanPreviewProfile && (\n \n {previewProfileText}\n \n )}\n
\n \n )}\n \n
\n \n ) : null\n}\n","// EXTERNAL DEPENDENCIES\nimport React from 'react'\nimport { useDispatch } from 'react-redux'\n\n// COMPONENTS\nimport PhotoUploadSection from '@/common/components/ui/profile/photo-upload-section'\n\n// HELPERS\nimport { stringifyFptiProps, trackClick } from '@/utils'\n\n// HOOKS\nimport usePhotoUploading from '@/hooks/ui'\nimport {\n useBusinessProfilePageContent,\n useBusinessProfileReduxState,\n useModularSellerViewPageContent,\n useSaveChanges,\n} from '@/screens/business-profile-page/hooks'\n\n// REDUX\nimport {\n updateEditedProfileDataValues,\n updateEditPageErrorMessage,\n} from '@/redux/features'\n\n// FPTI\nimport {\n BP_CHOOSE_EXISTING_COVER_PHOTO_FPTI,\n BP_CHOOSE_EXISTING_PROFILE_PHOTO_FPTI,\n BP_COVER_PHOTO_CROP_SCREEN_SHOWN_FPTI,\n BP_PHOTO_UPLOAD_ERROR_SHOWN_FPTI,\n BP_PHOTO_UPLOAD_SUCCESS_SHOWN_FPTI,\n BP_PROFILE_PHOTO_CROP_SCREEN_SHOWN_FPTI,\n BP_REMOVE_PROFILE_PHOTO_FPTI,\n BP_REMOVE_COVER_PHOTO_FPTI,\n BP_SAVE_COVER_PHOTO_FPTI,\n BP_SAVE_PROFILE_PHOTO_FPTI,\n BP_SELLER_VIEW_PROFILE_PHOTO_CLICK_FPTI,\n BP_SELLER_VIEW_COVER_PHOTO_CLICK_FPTI,\n BP_CHANGE_PROFILE_PHOTO_FPTI,\n BP_CHANGE_COVER_PHOTO_FPTI,\n} from '../../constants/fpti'\n\n// TYPES\nimport { PhotoTypes, ProfileData } from '@/types'\n\n/**\n * Displays a screen allowing them to upload their profile photos and cover photos\n */\nexport default function ProfilePhotosSection({\n isOwnerPhoto,\n}: Readonly<{\n isOwnerPhoto?: boolean\n}>) {\n // INITIALIZATIONS\n const dispatch = useDispatch()\n\n // STATE\n const {\n uneditedFormattedData,\n editedProfileData: {\n values: { businessHandle, coverPhoto, profilePhoto },\n },\n } = useBusinessProfileReduxState()\n const isLoading = !businessHandle\n\n // INITIALIZE CONTENT\n const getBusinessProfileContent = useBusinessProfilePageContent()\n const getModularSellerViewContent = useModularSellerViewPageContent()\n const coverPhotoTitle = getBusinessProfileContent('coverPhotoTitle')\n const profilePhotoTitle = getBusinessProfileContent('profilePhotoTitle')\n const generalProfileUpdatedToast = getModularSellerViewContent(\n 'generalProfileUpdatedToast',\n )\n const imageUpdateErrorToast = getModularSellerViewContent(\n 'imageUpdateErrorToast',\n )\n\n const saveEdits = useSaveChanges({\n successMessage: generalProfileUpdatedToast,\n errorMessage: imageUpdateErrorToast,\n })\n\n const updateImageSrc = React.useCallback(\n (photoType: PhotoTypes, value: string, isFinishedValidating: boolean) => {\n dispatch(updateEditedProfileDataValues({ [photoType]: value }))\n\n if (isFinishedValidating) {\n // Note: this is to prevent the other photo from being overwritten\n // when the other photo is being deleted\n const { profilePhoto, coverPhoto } = uneditedFormattedData\n\n const data = {\n profilePhoto,\n coverPhoto,\n [photoType]: value,\n } as unknown as ProfileData\n\n const source = photoType === 'profilePhoto' ? 'profile' : 'cover'\n\n const successFpti = {\n ...BP_PHOTO_UPLOAD_SUCCESS_SHOWN_FPTI,\n source,\n }\n\n const errorFpti = {\n ...BP_PHOTO_UPLOAD_ERROR_SHOWN_FPTI,\n source,\n }\n\n saveEdits(data, { success: successFpti, error: errorFpti })\n }\n },\n [dispatch, saveEdits, uneditedFormattedData],\n )\n\n const profilePhotoUploadingProps = usePhotoUploading({\n photoType: 'profilePhoto',\n photoSrc: profilePhoto,\n updatePhotoValidity: (_photoType, _isValid) => {},\n updateImageSrc,\n isLoading,\n onDelete: () => trackClick(BP_REMOVE_PROFILE_PHOTO_FPTI),\n })\n\n const coverPhotoUploadingProps = usePhotoUploading({\n photoType: 'coverPhoto',\n photoSrc: coverPhoto,\n updatePhotoValidity: (_photoType, _isValid) => {},\n updateImageSrc,\n isLoading,\n onDelete: () => trackClick(BP_REMOVE_COVER_PHOTO_FPTI),\n })\n\n const setToastErrorMessage = (errorMessage: string) => {\n coverPhotoUploadingProps.setErrorMessage(errorMessage)\n dispatch(updateEditPageErrorMessage(errorMessage))\n }\n\n return (\n \n )\n}\n","export const CLICKABLE_ROW_TEST_ID = 'clickable-row'\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??ruleSet[1].rules[0].oneOf[0].use[1]!../../../../../../../../../node_modules/less-loader/dist/cjs.js!./styles.module.less\";\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??ruleSet[1].rules[0].oneOf[0].use[1]!../../../../../../../../../node_modules/less-loader/dist/cjs.js!./styles.module.less\";\n export default content && content.locals ? content.locals : undefined;\n","// EXTERNAL DEPENDENCIES\nimport React from 'react'\n\n// COMPONENTS\nimport {\n BodyText,\n CaptionText,\n ChevronRightIcon,\n Col,\n Icon,\n Row,\n} from '@paypalcorp/pp-react'\n\n// TEST IDS\nimport { CLICKABLE_ROW_TEST_ID } from '../../../../constants/test-ids'\n\n// STYLES\nimport styles from './styles.module.less'\nimport { lightGrayColor } from '@/styles/colors'\n\ntype ClickableRowProp = {\n label: string\n description: string\n icon: string\n isLoading: boolean\n onClick: () => void\n}\n\n/**\n * Displays a row of content with icon, label and description\n */\nexport default function ClickableRow({\n label,\n description,\n icon,\n isLoading,\n onClick,\n}: Readonly) {\n return (\n \n \n \n \n \n {label}\n \n {description}\n \n \n \n \n \n
\n )\n}\n","// EXTERNAL DEPENDENCIES\nimport { useLocation, useNavigate } from 'react-router'\n\n// HELPERS\nimport {\n useBusinessProfileReduxState,\n useModularSellerViewPageContent,\n} from '@/screens/business-profile-page/hooks'\nimport { useFormattedAddresses } from '@/hooks'\nimport { trackClick } from '@/utils'\n\n// FPTI\nimport {\n BUSINESS_PROFILE_SELLER_VIEW_BUSINESS_INFO_CARD_FPTI,\n BUSINESS_PROFILE_SELLER_VIEW_DESCRIPTION_CARD_FPTI,\n} from '../../../constants/fpti'\n\n// TYPES\nimport { PortableAddress } from '@/types'\n\n/**\n * Get the relevant props for the business description row display\n */\nfunction useDescriptionRow() {\n const navigate = useNavigate()\n const { pathname } = useLocation()\n\n const getContent = useModularSellerViewPageContent()\n const descriptionLabel = getContent('ownerProfileScreenDescriptionLabel')\n\n // REDUX\n const {\n uneditedFormattedData: { businessDescription },\n } = useBusinessProfileReduxState()\n\n return {\n label: descriptionLabel,\n description: businessDescription,\n icon: 'business',\n onClick: () => {\n trackClick(BUSINESS_PROFILE_SELLER_VIEW_DESCRIPTION_CARD_FPTI)\n navigate(`${pathname}/edit/description`)\n },\n }\n}\n\n/**\n * Get the relevant props for the business info row display\n */\nfunction useBizInfoRow() {\n const navigate = useNavigate()\n const { pathname } = useLocation()\n\n const getContent = useModularSellerViewPageContent()\n const contactAndLocationLabel = getContent(\n 'ownerProfileScreenContactLocationLabel',\n )\n\n // REDUX\n const {\n uneditedFormattedData: {\n contactInfo,\n businessAddress,\n profilePreferences: { locationDisplayPreference },\n },\n } = useBusinessProfileReduxState()\n\n const formattedAddresses = useFormattedAddresses(\n businessAddress as PortableAddress,\n )\n const displayedAddress = formattedAddresses[locationDisplayPreference]\n\n // HELPERS\n function getDisplayedContactInfo(\n contactInfo: {\n businessPhoneNumber?: string\n businessEmail?: string\n businessWebsiteUrl?: string\n },\n displayedAddress: string,\n ) {\n const displayedContactInfo = []\n\n if (contactInfo?.businessPhoneNumber) {\n displayedContactInfo.push(contactInfo.businessPhoneNumber)\n }\n if (contactInfo?.businessEmail) {\n displayedContactInfo.push(contactInfo.businessEmail)\n }\n if (contactInfo?.businessWebsiteUrl) {\n displayedContactInfo.push(contactInfo.businessWebsiteUrl)\n }\n const contactInfoString = displayedContactInfo.join(', ')\n\n if (contactInfoString && displayedAddress) {\n return `${contactInfoString}\\n${displayedAddress}`\n }\n return contactInfoString || displayedAddress\n }\n\n return {\n label: contactAndLocationLabel,\n description: getDisplayedContactInfo(contactInfo, displayedAddress),\n icon: 'message-center',\n onClick: () => {\n navigate(`${pathname}/edit/bizinfo`)\n trackClick(BUSINESS_PROFILE_SELLER_VIEW_BUSINESS_INFO_CARD_FPTI)\n },\n }\n}\n\nexport { useDescriptionRow, useBizInfoRow }\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??ruleSet[1].rules[0].oneOf[0].use[1]!../../../../../../../node_modules/less-loader/dist/cjs.js!./styles.module.less\";\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??ruleSet[1].rules[0].oneOf[0].use[1]!../../../../../../../node_modules/less-loader/dist/cjs.js!./styles.module.less\";\n export default content && content.locals ? content.locals : undefined;\n","// EXTERNAL DEPENDENCIES\nimport React from 'react'\n\n// COMPONENTS\nimport { Divider, Row } from '@paypalcorp/pp-react'\nimport ClickableRow from './components/clickable-row'\n\n// HELPERS\nimport { useBizInfoRow, useDescriptionRow } from './hooks'\n\n// STYLES\nimport styles from './styles.module.less'\n\n/**\n * Displays rows showing the business description and contact info/location that also links\n * to edit pages for their respective content\n */\nexport default function BusinessInfoSection({\n isLoading,\n}: Readonly<{ isLoading: boolean }>) {\n const clickableRows = [useDescriptionRow(), useBizInfoRow()]\n\n return (\n \n {clickableRows.map(({ label, description, icon, onClick }, index) => (\n \n
\n {index !== clickableRows.length - 1 &&
}\n
\n ))}\n
\n )\n}\n","import { UnformattedFptiOptions } from '@/types'\nimport { stringifyFptiProps } from '@/utils'\n\nexport const commonProperties: UnformattedFptiOptions = {\n pageGroup: 'preview_business_profile',\n pageName: 'preview_page',\n}\n\nexport const PREVIEW_PROFILE_SCREEN_SHOWN_FPTI = {\n ...commonProperties,\n eventName: 'bp_seller_profile_preview_shown',\n}\n\nexport const PREVIEW_PROFILE_BACK_LINK_CLICK_FPTI = stringifyFptiProps({\n ...commonProperties,\n eventName: 'bp_seller_profile_preview_back_click',\n})\n\nexport const PREVIEW_PROFILE_EDIT_BUTTON_CLICK_FPTI = stringifyFptiProps({\n ...commonProperties,\n eventName: 'bp_seller_profile_preview_edit_click',\n})\n\nexport const PREVIEW_PROFILE_SHARE_BUTTON_CLICK_FPTI = stringifyFptiProps({\n ...commonProperties,\n eventName: 'bp_seller_profile_preview_share_click',\n})\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??ruleSet[1].rules[0].oneOf[0].use[1]!../../../../../node_modules/less-loader/dist/cjs.js!./styles.module.less\";\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??ruleSet[1].rules[0].oneOf[0].use[1]!../../../../../node_modules/less-loader/dist/cjs.js!./styles.module.less\";\n export default content && content.locals ? content.locals : undefined;\n","/* eslint-disable indent */\n// EXTERNAL DEPENDENCIES\nimport React, { useEffect, useState } from 'react'\nimport { useDispatch } from 'react-redux'\nimport { useLocation, useNavigate, useParams } from 'react-router'\n\n// API\nimport { useProfileDetails } from '@/api/profile'\n\n// REDUX\nimport {\n updateEditedProfileDataValues,\n updateEditPageErrorMessage,\n updateIsPreviewing,\n updateUneditedFormattedData,\n} from '@/redux/features'\n\n// COMPONENTS\nimport { BodyText, CaptionText, Card, Link, Row } from '@paypalcorp/pp-react'\nimport ProfilePhotosSection from './components/profile-photos-section'\nimport BusinessInfoSection from './components/business-info-section'\nimport {\n EditBizInfoPage,\n EditDescriptionPage,\n PreviewProfilePage,\n SaveEditsButton,\n} from '..'\n\n// HELPERS\nimport {\n useBusinessProfilePageContent,\n useBusinessProfileReduxState,\n useModularSellerViewPageContent,\n} from '@/screens/business-profile-page/hooks'\nimport { scrollToTop, stringifyFptiProps, trackClick } from '@/utils'\nimport { formatRawProfileDetails } from '../../utils'\n\n// HOOKS\nimport { useImpressionTracking } from '@/hooks'\n\n// TEST IDS\nimport { OWNER_PROFILE_SCREEN_INDEX_CONTAINER_TEST_ID } from '@/screens/business-profile-page/constants/test-ids'\n\n// FPTI\nimport {\n BP_EDIT_PREVIEW_BACK_CLICK_FPTI,\n BP_EDIT_PREVIEW_SAVE_CLICK_FPTI,\n BP_PREVIEW_BACK_CLICK_FPTI,\n BUSINESS_PROFILE_PAGE_SHOWN_TO_SELLER,\n EDIT_BIZ_INFO_SUCCESSFUL_SAVE_FPTI,\n EDIT_BP_PREVIEW_SHOWN_FPTI,\n EDIT_PROFILE_DESCRIPTION_SUCCESSFUL_SAVE_FPTI,\n PREVIEW_CHANGES_CONT_EDITING_CLICK_FPTI,\n} from './constants/fpti'\nimport { PREVIEW_PROFILE_SCREEN_SHOWN_FPTI } from '../preview-profile-page/fpti'\n\n// CONSTANTS\nimport { routes } from '@/api/constants'\nimport { commonModularProfileFptiProperties } from '@/constants'\n\n// STYLES\nimport styles from './styles.module.less'\nimport { lightGrayColor } from '@/styles/colors'\n\n/**\n * The OwnerProfilePage is the seller view of their own\n * profile with ability to edit fields\n */\nexport function OwnerProfilePage() {\n useImpressionTracking(BUSINESS_PROFILE_PAGE_SHOWN_TO_SELLER)\n\n // DECLARATIONS\n const navigate = useNavigate()\n const dispatch = useDispatch()\n const { handle } = useParams()\n const { pathname } = useLocation()\n\n // STATE\n const [currentPage, setCurrentPage] = useState<\n 'biz_info_page' | 'biz_description_page'\n >(null)\n\n // CONTENT\n const getContent = useBusinessProfilePageContent()\n const getModularSellerViewPageContent = useModularSellerViewPageContent()\n const previewProfileSubheaderText = getContent('previewProfileSubheader')\n const previewChangesSubheaderText = getContent('previewChangesSubheader')\n const continueEditingText = getContent('continueEditing')\n const backToEditingText = getContent('backToEditing')\n const bizInfoUpdatedToastMessage = getModularSellerViewPageContent(\n 'bizInfoUpdatedToast',\n )\n const profileDescriptionUpdatedToastMessage = getModularSellerViewPageContent(\n 'profileDescriptionUpdatedToast',\n )\n\n const [currentSuccessToastMessage, { saveSuccessFpti }] = {\n biz_info_page: [\n bizInfoUpdatedToastMessage,\n {\n saveSuccessFpti: EDIT_BIZ_INFO_SUCCESSFUL_SAVE_FPTI,\n },\n ],\n biz_description_page: [\n profileDescriptionUpdatedToastMessage,\n {\n saveSuccessFpti: EDIT_PROFILE_DESCRIPTION_SUCCESSFUL_SAVE_FPTI,\n },\n ],\n }[currentPage] || ['', {}]\n\n // NETWORK REQUESTS\n const { data: profileDetails, isFetching } = useProfileDetails()\n const {\n isPreviewing,\n profileData,\n uneditedFormattedData,\n editedProfileData: { values },\n } = useBusinessProfileReduxState()\n\n const { businessName, businessHandle } = uneditedFormattedData\n const isLoading = isFetching && !businessName\n\n // EFFECTS START\n useEffect(() => {\n if (profileDetails && profileData) {\n const formattedProfileDetails = formatRawProfileDetails(\n profileDetails,\n profileData,\n )\n\n dispatch(updateUneditedFormattedData(formattedProfileDetails))\n\n dispatch(\n updateEditedProfileDataValues({\n ...formattedProfileDetails,\n }),\n )\n }\n }, [dispatch, profileDetails, profileData])\n\n useEffect(() => {\n scrollToTop()\n }, [isPreviewing])\n\n useEffect(() => {\n if (new RegExp(/\\/edit\\/bizinfo/i).test(pathname)) {\n setCurrentPage('biz_info_page')\n } else if (new RegExp(/\\/edit\\/description/i).test(pathname)) {\n setCurrentPage('biz_description_page')\n } else {\n setCurrentPage(null)\n }\n }, [pathname])\n // EFFECTS END\n\n /**\n * Come back to this page and reset any edited values with original data\n */\n const goBackToMainPage = () => {\n scrollToTop()\n dispatch(updateEditPageErrorMessage(''))\n dispatch(updateIsPreviewing(false))\n dispatch(updateEditedProfileDataValues(uneditedFormattedData))\n navigate(`${routes.BUSINESS_PROFILE_ROUTE}/${handle}`)\n }\n\n const stateToPreview = {\n ...uneditedFormattedData,\n businessDescription:\n values?.businessDescription === null ||\n uneditedFormattedData?.businessDescription === null\n ? ''\n : values?.businessDescription ||\n uneditedFormattedData?.businessDescription,\n contactInfo: {\n businessEmail:\n values.contactInfo.businessEmail === null\n ? null\n : values.contactInfo.businessEmail ||\n uneditedFormattedData?.contactInfo.businessEmail,\n businessPhoneNumber:\n values.contactInfo.businessPhoneNumber === null\n ? null\n : values.contactInfo.businessPhoneNumber ||\n uneditedFormattedData?.contactInfo.businessPhoneNumber,\n businessWebsiteUrl:\n values.contactInfo.businessWebsiteUrl === null\n ? null\n : values.contactInfo.businessWebsiteUrl ||\n uneditedFormattedData?.contactInfo.businessWebsiteUrl,\n },\n selectedLocationDisplayPreference:\n values?.profilePreferences?.locationDisplayPreference ||\n uneditedFormattedData?.profilePreferences?.locationDisplayPreference,\n }\n\n return (\n <>\n {isPreviewing ? (\n (\n \n \n {\n dispatch(updateIsPreviewing(false))\n trackClick({\n ...PREVIEW_CHANGES_CONT_EDITING_CLICK_FPTI,\n source: currentPage,\n ...commonModularProfileFptiProperties,\n })\n }}\n tabIndex={0}\n >\n {continueEditingText}\n \n
\n )\n : null\n }\n />\n ) : (\n <>\n {currentPage === 'biz_info_page' && (\n \n )}\n {currentPage === 'biz_description_page' && (\n \n )}\n {!currentPage && (\n \n
\n \n \n \n \n \n {businessName}\n \n \n {`@${businessHandle}`}\n \n
\n
\n \n \n \n
\n )}\n >\n )}\n >\n )\n}\n","// EXTERNAL DEPENDENCIES\nimport React, { useEffect, useState } from 'react'\n\n// HELPERS\nimport { useMutationCheck } from '@/hooks'\n\n// COMPONENTS\nimport { Button } from '@paypalcorp/pp-react'\n\n/**\n * Displays button with loading state that resets on invalid results\n */\nexport default function ButtonWithState({\n children,\n canProceed,\n shouldShowSpinner,\n onClick,\n updateClickStatus,\n ...props\n}: {\n children: string\n canProceed: boolean\n shouldShowSpinner?: boolean\n onClick: (e?: React.FormEvent) => void\n updateClickStatus?: (isClicked: boolean) => void\n}) {\n const isMutating = useMutationCheck()\n const [buttonClicked, setButtonClicked] = useState(false)\n\n useEffect(() => {\n updateClickStatus?.(buttonClicked)\n }, [buttonClicked, updateClickStatus])\n\n useEffect(() => {\n if (buttonClicked && canProceed) {\n setButtonClicked(false)\n onClick?.()\n } else if (canProceed === false) {\n setButtonClicked(false)\n }\n }, [buttonClicked, canProceed, onClick])\n\n /**\n * Invokes the provided onClick and sets buttonClicked to true\n */\n const handleButtonClick = (e: React.FormEvent) => {\n setButtonClicked(true)\n onClick(e)\n }\n\n return (\n \n )\n}\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??ruleSet[1].rules[0].oneOf[0].use[1]!../../../../../node_modules/less-loader/dist/cjs.js!./styles.module.less\";\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??ruleSet[1].rules[0].oneOf[0].use[1]!../../../../../node_modules/less-loader/dist/cjs.js!./styles.module.less\";\n export default content && content.locals ? content.locals : undefined;\n","// EXTERNAL DEPENDENCIES\nimport React, { useCallback, useEffect, useState } from 'react'\nimport { useDispatch } from 'react-redux'\n\n// COMPONENTS\nimport ButtonWithState from '@/common/components/ui/buttons/button-with-state'\n\n// HELPERS\nimport {\n updateIsPreviewing,\n updateEditPageErrorMessage,\n} from '@/redux/features'\nimport { useBusinessProfilePageContent } from '../../hooks'\n\n// TEST IDS\nimport { PREVIEW_PROFILE_BUTTON_TEST_ID } from '../../constants/test-ids'\n\n// STYLES\nimport styles from './styles.module.less'\n\n/**\n * Displays common Preview button to set isPreviewing to true\n */\nexport function PreviewProfileButton({\n fpti,\n canPreview,\n}: {\n canPreview: boolean\n fpti: string\n}) {\n // DECLARATIONS\n const dispatch = useDispatch()\n const getContent = useBusinessProfilePageContent()\n const previewWithExistingErrorToastText = getContent(\n 'previewWithExistingErrorToast',\n )\n\n const [isClicked, setIsClicked] = useState(false)\n\n const handlePreviewClick = useCallback(() => {\n if (canPreview) {\n dispatch(updateEditPageErrorMessage(''))\n dispatch(updateIsPreviewing(true))\n }\n }, [canPreview, dispatch])\n\n useEffect(() => {\n if (canPreview === false && isClicked) {\n dispatch(updateEditPageErrorMessage(previewWithExistingErrorToastText))\n }\n }, [canPreview, isClicked, previewWithExistingErrorToastText, dispatch])\n\n return (\n \n {getContent('preview')}\n \n )\n}\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??ruleSet[1].rules[0].oneOf[0].use[1]!../../../../../node_modules/less-loader/dist/cjs.js!./styles.module.less\";\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??ruleSet[1].rules[0].oneOf[0].use[1]!../../../../../node_modules/less-loader/dist/cjs.js!./styles.module.less\";\n export default content && content.locals ? content.locals : undefined;\n","// EXTERNAL DEPENDENCIES\nimport React, { useEffect } from 'react'\nimport { useDispatch } from 'react-redux'\n\n// HELPERS\nimport { updateIsEditing, updateIsPreviewing } from '@/redux/features'\nimport { trackImpression } from '@/utils'\nimport {\n useBusinessProfilePageContent,\n useBusinessProfileReduxState,\n} from '../../hooks'\n\n// COMPONENTS\nimport { Button } from '@paypalcorp/pp-react'\nimport ProfileCard from '@/common/components/ui/profile/profile-card'\nimport { PageHeaderSection } from '../'\n\n// TYPES\nimport {\n LocationDisplayPreference,\n PortableAddress,\n UnformattedFptiOptions,\n} from '@/types'\nimport { ProfileCardProps } from '@/common/components/ui/profile/profile-card/types'\n\n// TEST IDS\nimport { PREVIEW_PROFILE_PAGE_TEST_ID } from '../../constants/test-ids'\n\n// FPTI\nimport {\n PREVIEW_PROFILE_BACK_LINK_CLICK_FPTI,\n PREVIEW_PROFILE_SHARE_BUTTON_CLICK_FPTI,\n} from './fpti'\n\n// STYLES\nimport styles from './styles.module.less'\n\n/**\n * Allows the profile owner to see what their profile looks like\n * to the buyer or what their changes will look like when saved\n */\nexport function PreviewProfilePage({\n userCanCreateProfile,\n CustomFooterButtons,\n stateToPreview = {},\n impressionToTrack,\n subHeaderText,\n customBackLinkText,\n backLinkFpti,\n userCanEdit,\n handleBackClick,\n}: {\n userCanCreateProfile?: boolean\n CustomFooterButtons?: ProfileCardProps['CardFooterButtons']\n stateToPreview?: object\n impressionToTrack?: UnformattedFptiOptions\n subHeaderText?: string\n customBackLinkText?: string\n backLinkFpti?: string\n userCanEdit?: boolean\n handleBackClick?: () => void\n}) {\n const dispatch = useDispatch()\n const getContent = useBusinessProfilePageContent()\n const editProfileText = getContent('editProfile')\n\n useEffect(() => {\n if (impressionToTrack?.eventName) {\n trackImpression(impressionToTrack)\n }\n }, [impressionToTrack])\n\n // STATE\n const { profileData = {} } = useBusinessProfileReduxState()\n const {\n address,\n avatarUrl,\n backgroundUrl,\n customerCount,\n handle,\n businessJoinDate,\n businessName,\n businessDescription,\n profilePreferences,\n emailAddress: businessEmail,\n phoneNumber: businessPhoneNumber,\n website: businessWebsiteUrl,\n } = profileData\n\n const DefaultFooterButtons = ({\n handleShareProfileClick,\n }: Parameters[0]) => (\n <>\n \n {userCanEdit && (\n \n )}\n >\n )\n\n return (\n \n
{\n handleBackClick?.()\n dispatch(updateIsPreviewing(false))\n }}\n subHeaderText={subHeaderText}\n pageHeaderText={getContent('previewProfilePageHeader')}\n backLinkFpti={backLinkFpti || PREVIEW_PROFILE_BACK_LINK_CLICK_FPTI}\n />\n \n \n )\n}\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??ruleSet[1].rules[0].oneOf[0].use[1]!../../../../../node_modules/less-loader/dist/cjs.js!./styles.module.less\";\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??ruleSet[1].rules[0].oneOf[0].use[1]!../../../../../node_modules/less-loader/dist/cjs.js!./styles.module.less\";\n export default content && content.locals ? content.locals : undefined;\n","// EXTERNAL DEPENDENCIES\nimport React, { useCallback, useEffect, useState } from 'react'\nimport { useDispatch } from 'react-redux'\n\n// COMPONENTS\nimport ButtonWithState from '@/common/components/ui/buttons/button-with-state'\n\n// HOOKS\nimport { useMutationCheck } from '@/hooks'\nimport {\n useBusinessProfilePageContent,\n useBusinessProfileReduxState,\n useModularSellerViewPageContent,\n useSaveChanges,\n} from '@/screens/business-profile-page/hooks'\n\n// REDUX\nimport { updateEditPageErrorMessage } from '@/redux/features'\n\n// TYPES\nimport { ProfileData, UnformattedFptiOptions } from '@/types'\n\n// STYLES\nimport styles from './styles.module.less'\n\n/**\n * Displays a button that handles saving business info edits\n */\nexport function SaveEditsButton({\n canSave,\n successfulUpdateToastMessage,\n failedUpdateErrorMessage,\n successPublishFpti,\n saveButtonFpti,\n onSuccess,\n onError,\n}: Readonly<{\n canSave: boolean\n successfulUpdateToastMessage: string\n failedUpdateErrorMessage?: string\n successPublishFpti?: UnformattedFptiOptions\n saveButtonFpti?: string\n onSuccess?: () => void\n handleLoading?: (isLoading: boolean) => void\n onError?: () => void\n}>) {\n const isValidating = useMutationCheck()\n const dispatch = useDispatch()\n\n // STATE\n const [isClicked, setIsClicked] = useState(false)\n\n // INITIALIZE CONTENT\n const getModularContent = useModularSellerViewPageContent()\n const getBusinessProfileContent = useBusinessProfilePageContent()\n const saveButtonText = getModularContent('saveButton')\n const generalProfileUpdateErrorMessage = getModularContent(\n 'generalProfileUpdateError',\n )\n const unableToSaveWhenErrorsText = getBusinessProfileContent(\n 'saveWithExistingErrorToast',\n )\n // HOOKS\n const saveEdits = useSaveChanges({\n successMessage: successfulUpdateToastMessage,\n errorMessage: failedUpdateErrorMessage || generalProfileUpdateErrorMessage,\n onSuccess,\n onError,\n })\n\n // STATE\n const {\n saveStatus,\n editedProfileData: {\n values: {\n coverPhoto,\n profilePhoto,\n businessDescription,\n contactInfo = {},\n profilePreferences,\n },\n },\n } = useBusinessProfileReduxState()\n\n const handleSave = useCallback(async () => {\n if (!isValidating && (canSave || canSave === null)) {\n dispatch(updateEditPageErrorMessage(''))\n\n const data = {\n coverPhoto,\n profilePhoto,\n businessDescription,\n selectedContactInfo: contactInfo,\n selectedLocationDisplayPreference:\n profilePreferences.locationDisplayPreference,\n } as ProfileData\n\n await saveEdits(data, { success: successPublishFpti })\n }\n }, [\n businessDescription,\n canSave,\n contactInfo,\n coverPhoto,\n dispatch,\n isValidating,\n profilePhoto,\n profilePreferences.locationDisplayPreference,\n saveEdits,\n successPublishFpti,\n ])\n\n useEffect(() => {\n if (canSave === false && isClicked) {\n dispatch(updateEditPageErrorMessage(unableToSaveWhenErrorsText))\n }\n }, [canSave, isClicked, unableToSaveWhenErrorsText, dispatch])\n\n return (\n \n {saveButtonText}\n \n )\n}\n","import { stringifyFptiProps } from '@/utils'\n\nexport const BUSINESS_PROFILE_PAGE_SHOWN_TO_BUYER = {\n eventName: 'business_profile_buyer_view_shown',\n}\n\nexport const BUSINESS_PROFILE_BUYER_VIEW_SHARE_CLICK_FPTI = stringifyFptiProps({\n eventName: 'business_profile_buyer_view_share_click',\n})\n\nexport * from '../../fpti'\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??ruleSet[1].rules[0].oneOf[0].use[1]!../../../../../node_modules/less-loader/dist/cjs.js!./styles.module.less\";\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??ruleSet[1].rules[0].oneOf[0].use[1]!../../../../../node_modules/less-loader/dist/cjs.js!./styles.module.less\";\n export default content && content.locals ? content.locals : undefined;\n","// EXTERNAL DEPENDENCIES\nimport React from 'react'\n\n// COMPONENTS\nimport ProfileCard from '@/common/components/ui/profile/profile-card'\n\n//HELPERS\nimport { useBusinessProfileReduxState } from '../../hooks'\nimport { useImpressionTracking } from '@/hooks'\n\n//CONSTANTS\nimport { BUYER_CLICKED_PAY_BUTTON_FPTI } from '../../constants/fpti-constants'\n\n// FPTI\nimport {\n BUSINESS_PROFILE_BUYER_VIEW_SHARE_CLICK_FPTI,\n BUSINESS_PROFILE_PAGE_SHOWN_TO_BUYER,\n BUSINESS_PROFILE_SELLER_SHARE_LINK_CLICK_FPTI,\n} from './fpti'\n\n//TEST ID\nimport { BUSINESS_PROFILE_INDEX_PAGE_CONTAINER_TEST_ID } from '../../constants/test-ids'\n\n// STYLES\nimport styles from './styles.module.less'\n\n/**\n * The EditProfileSheet displays the profile information with edit buttons next to the editable fields\n */\nexport function ViewProfilePage() {\n const state = useBusinessProfileReduxState()\n\n const {\n address,\n avatarUrl,\n backgroundUrl,\n businessDescription,\n businessJoinDate,\n businessName,\n canEdit,\n customerCount,\n emailAddress,\n flowData,\n handle,\n phoneNumber,\n profilePreferences,\n website,\n } = state.profileData || {}\n\n useImpressionTracking(BUSINESS_PROFILE_PAGE_SHOWN_TO_BUYER)\n\n return (\n \n )\n}\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??ruleSet[1].rules[0].oneOf[0].use[1]!../../../node_modules/less-loader/dist/cjs.js!./styles.module.less\";\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??ruleSet[1].rules[0].oneOf[0].use[1]!../../../node_modules/less-loader/dist/cjs.js!./styles.module.less\";\n export default content && content.locals ? content.locals : undefined;\n","// EXTERNAL DEPENDENCIES\nimport React, { useEffect, useState } from 'react'\nimport { useLocation, useParams } from 'react-router-dom'\n\n// HELPERS\nimport { recordImpression, scrollToTop, trackImpression } from '../../utils'\nimport { useProfileData } from '../../api/profile'\nimport { useDispatch } from 'react-redux'\nimport {\n getEventNameAndType,\n isNotFoundError,\n} from '../../utils/common-helpers'\nimport { useBusinessProfileReduxState } from './hooks'\n\n// REDUX\nimport {\n updateEditPageErrorMessage,\n updateProfileData,\n} from '../../redux/features'\n\n// COMPONENTS\nimport { Alert, Row } from '@paypalcorp/pp-react'\nimport Layout from '../../common/components/layout'\nimport {\n EditProfilePage,\n HeaderSection,\n PreviewProfilePage,\n ViewProfilePage,\n OwnerProfilePage,\n} from './components'\nimport ErrorPage from '../error-page'\n\n// FPTI\nimport { fptiMetadata } from './constants/fpti-constants'\nimport { EDIT_BP_ABANDON_POPUP_SHOWN } from './components/edit-profile-page/fpti'\nimport { BUSINESS_PROFILE_PREVIEW_PAGE_SHOWN_FPTI } from './fpti'\n\n// CONSTANTS\nimport serverData from '@/utils/server-data'\n\n// STYLES\nimport styles from './styles.module.less'\n\n/**\n * The Business Profile Page allows users to view business profiles and edit their own business profile\n */\nexport default function BusinessProfilePage() {\n // DECLARATIONS\n const dispatch = useDispatch()\n const { pathname } = useLocation()\n\n const { userCanPreviewProfile, userCanViewModularRefactor } =\n serverData.elmo || {}\n\n // STATE\n const [isOwnerEditing, setIsOwnerEditing] = useState(false)\n const {\n isPreviewing,\n editedProfileData: { areValuesEdited, errorMessage, isEditing },\n } = useBusinessProfileReduxState()\n\n // NETWORK REQUESTS\n const { handle } = useParams()\n const { data: profileData, error } = useProfileData(handle)\n\n // set profile data\n useEffect(() => {\n if (profileData) {\n dispatch(updateProfileData(profileData))\n }\n }, [dispatch, profileData])\n\n useEffect(() => {\n if (!userCanViewModularRefactor) {\n const { userLoggedIn, canEdit } = profileData || {}\n const { eventType, eventName } = getEventNameAndType(\n canEdit,\n userLoggedIn,\n fptiMetadata.BP_VIEWED,\n )\n\n recordImpression({\n eventName,\n eventType,\n handle: profileData?.handle,\n payerId: profileData?.payerId,\n consumerId: profileData?.consumerId,\n })\n }\n }, [profileData, userCanViewModularRefactor])\n\n useEffect(() => {\n const isEditingRegex = /\\/edit\\//i\n\n setIsOwnerEditing(isEditingRegex.test(pathname))\n }, [pathname])\n\n useEffect(() => {\n if (errorMessage) {\n scrollToTop()\n }\n }, [errorMessage])\n\n window.onbeforeunload = (e) => {\n if (process.env.NODE_ENV === 'production' && areValuesEdited) {\n trackImpression(EDIT_BP_ABANDON_POPUP_SHOWN)\n e.preventDefault()\n e.returnValue = true\n }\n }\n\n if (error) {\n const profileNotFound = isNotFoundError(error)\n\n return (\n \n )\n }\n\n return (\n <>\n \n \n {errorMessage && (\n \n {\n dispatch(updateEditPageErrorMessage(''))\n },\n }}\n className={styles.profilePageAlert}\n >\n {errorMessage}\n \n
\n )}\n {userCanViewModularRefactor && profileData?.canEdit ? (\n \n ) : (\n <>\n {!isEditing && !isPreviewing ? : null}\n {isEditing && }\n {isPreviewing && (\n \n )}\n >\n )}\n \n >\n )\n}\n","// Imports\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(true);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".styles-module__confirmationBoxContainer___TS9bN {\\n display: flex;\\n flex-direction: column;\\n align-items: center;\\n row-gap: 2.5rem;\\n margin-bottom: 2.5rem;\\n}\\n.styles-module__confirmationBoxHeaderText___Sf3cO {\\n margin: 0;\\n font-weight: 600;\\n}\\n.styles-module__confirmationBoxButtonsContainer___pk24z {\\n display: flex;\\n flex-direction: column;\\n align-items: center;\\n row-gap: 1.5rem;\\n}\\n.styles-module__confirmationBoxExitButton___9taGF {\\n width: fit-content;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://common/components/ui/confirmation-box/styles.module.less\"],\"names\":[],\"mappings\":\"AAAA;EACE,aAAA;EACA,sBAAA;EACA,mBAAA;EACA,eAAA;EACA,qBAAA;AACF;AAEA;EACE,SAAA;EACA,gBAAA;AAAF;AAGA;EACE,aAAA;EACA,sBAAA;EACA,mBAAA;EACA,eAAA;AADF;AAIA;EACE,kBAAA;AAFF\",\"sourcesContent\":[\".confirmationBoxContainer {\\n display: flex;\\n flex-direction: column;\\n align-items: center;\\n row-gap: 2.5rem;\\n margin-bottom: 2.5rem;\\n}\\n\\n.confirmationBoxHeaderText {\\n margin: 0;\\n font-weight: 600;\\n}\\n\\n.confirmationBoxButtonsContainer {\\n display: flex;\\n flex-direction: column;\\n align-items: center;\\n row-gap: 1.5rem;\\n}\\n\\n.confirmationBoxExitButton {\\n width: fit-content;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"confirmationBoxContainer\": \"styles-module__confirmationBoxContainer___TS9bN\",\n\t\"confirmationBoxHeaderText\": \"styles-module__confirmationBoxHeaderText___Sf3cO\",\n\t\"confirmationBoxButtonsContainer\": \"styles-module__confirmationBoxButtonsContainer___pk24z\",\n\t\"confirmationBoxExitButton\": \"styles-module__confirmationBoxExitButton___9taGF\"\n};\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(true);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".styles-module__sectionContainer___sBdG3 {\\n min-height: 7rem;\\n}\\n.styles-module__businessDescriptionLabelContainer___gaCwJ {\\n align-items: center;\\n}\\n.styles-module__bulletPoint___LtARd {\\n margin: 1rem 0 1rem 1rem;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://screens/business-profile-page/components/business-description-section/styles.module.less\"],\"names\":[],\"mappings\":\"AAAA;EACE,gBAAA;AACF;AAEA;EACE,mBAAA;AAAF;AAGA;EACE,wBAAA;AADF\",\"sourcesContent\":[\".sectionContainer {\\n min-height: 7rem;\\n}\\n\\n.businessDescriptionLabelContainer {\\n align-items: center;\\n}\\n\\n.bulletPoint {\\n margin: 1rem 0 1rem 1rem;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"sectionContainer\": \"styles-module__sectionContainer___sBdG3\",\n\t\"businessDescriptionLabelContainer\": \"styles-module__businessDescriptionLabelContainer___gaCwJ\",\n\t\"bulletPoint\": \"styles-module__bulletPoint___LtARd\"\n};\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(true);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".styles-module__sectionContainer___BS67a {\\n min-height: 4rem;\\n}\\n.styles-module__businessNameSectionContainer___pt1LN {\\n margin: 1.5rem 0;\\n}\\n.styles-module__businessNameLabelContainer___YmIgb {\\n margin: 0.5rem 0;\\n}\\n.styles-module__businessNameContainer___AI10g {\\n column-gap: 0.4rem;\\n align-items: center;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://screens/business-profile-page/components/business-name-section/styles.module.less\"],\"names\":[],\"mappings\":\"AAAA;EACE,gBAAA;AACF;AAEA;EACE,gBAAA;AAAF;AAGA;EACE,gBAAA;AADF;AAIA;EACE,kBAAA;EACA,mBAAA;AAFF\",\"sourcesContent\":[\".sectionContainer {\\n min-height: 4rem;\\n}\\n\\n.businessNameSectionContainer {\\n margin: 1.5rem 0;\\n}\\n\\n.businessNameLabelContainer {\\n margin: 0.5rem 0;\\n}\\n\\n.businessNameContainer {\\n column-gap: 0.4rem;\\n align-items: center;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"sectionContainer\": \"styles-module__sectionContainer___BS67a\",\n\t\"businessNameSectionContainer\": \"styles-module__businessNameSectionContainer___pt1LN\",\n\t\"businessNameLabelContainer\": \"styles-module__businessNameLabelContainer___YmIgb\",\n\t\"businessNameContainer\": \"styles-module__businessNameContainer___AI10g\"\n};\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(true);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".styles-module__sectionContainer___LgGuS {\\n min-height: 4rem;\\n}\\n.styles-module__businessUsernameLabelContainer___bUAa1 {\\n align-items: center;\\n}\\n.styles-module__businessUsernameContainer___nvec6 {\\n column-gap: 0.4rem;\\n align-items: center;\\n}\\n.styles-module__customerServiceLink___HTXQB {\\n font-size: 0.9rem;\\n margin-top: 0.5rem;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://screens/business-profile-page/components/business-username-section/styles.module.less\"],\"names\":[],\"mappings\":\"AAAA;EACE,gBAAA;AACF;AAEA;EACE,mBAAA;AAAF;AAGA;EACE,kBAAA;EACA,mBAAA;AADF;AAIA;EACE,iBAAA;EACA,kBAAA;AAFF\",\"sourcesContent\":[\".sectionContainer {\\n min-height: 4rem;\\n}\\n\\n.businessUsernameLabelContainer {\\n align-items: center;\\n}\\n\\n.businessUsernameContainer {\\n column-gap: 0.4rem;\\n align-items: center;\\n}\\n\\n.customerServiceLink {\\n font-size: 0.9rem;\\n margin-top: 0.5rem;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"sectionContainer\": \"styles-module__sectionContainer___LgGuS\",\n\t\"businessUsernameLabelContainer\": \"styles-module__businessUsernameLabelContainer___bUAa1\",\n\t\"businessUsernameContainer\": \"styles-module__businessUsernameContainer___nvec6\",\n\t\"customerServiceLink\": \"styles-module__customerServiceLink___HTXQB\"\n};\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(true);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".styles-module__hiddenOnDesktop___2Ofmc,\\n.styles-module__mobileContainer___qc6IL {\\n display: none;\\n}\\n@media screen and (max-width: 753px) {\\n .styles-module__hiddenOnMobile___asAJB,\\n .styles-module__desktopContainer___59BNj {\\n display: none;\\n }\\n .styles-module__hiddenOnDesktop___2Ofmc,\\n .styles-module__mobileContainer___qc6IL {\\n display: flex;\\n flex-direction: column;\\n }\\n}\\n.styles-module__breakAll___fUdrN {\\n word-break: break-all;\\n overflow-wrap: anywhere;\\n}\\n.styles-module__breakWord___0DlUg {\\n word-break: break-word;\\n overflow-wrap: break-word;\\n}\\nbody {\\n background: #faf8f4 !important;\\n background-image: linear-gradient(0deg, #faf8f4, #faf8f4) !important;\\n background-repeat: no-repeat;\\n}\\n.styles-module__desktopContainer___59BNj {\\n width: 80%;\\n margin: 0 auto;\\n}\\n.styles-module__editBizInfoContentContainer___DhN9t {\\n display: flex;\\n flex-direction: column;\\n row-gap: 3rem;\\n}\\n.styles-module__sectionContainer___jwIz6 {\\n min-height: 4rem;\\n}\\n.styles-module__ctaButtonContainer___2xWFG {\\n width: 55%;\\n margin: 3rem auto 2rem auto;\\n column-gap: 1rem;\\n row-gap: 1rem;\\n flex-wrap: nowrap;\\n}\\n.styles-module__ctaButtonContainer___2xWFG button {\\n min-width: 11rem;\\n}\\n@media screen and (max-width: 577px) {\\n .styles-module__editBizInfoContainer___4G-Du {\\n padding: 2rem;\\n padding-top: 0;\\n }\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://styles/globals.module.less\",\"webpack://screens/business-profile-page/components/edit-biz-info-page/styles.module.less\"],\"names\":[],\"mappings\":\"AAYA;;EACE,aAAA;ACVF;ADaA;EACE;;IACE,aAAA;ECVF;EDaA;;IACE,aAAA;IACA,sBAAA;ECVF;AACF;ADaA;EACE,qBAAA;EACA,uBAAA;ACXF;ADcA;EACE,sBAAA;EACA,yBAAA;ACZF;ADiBA;EACE,8BAAA;EACA,oEAAA;EACA,4BAAA;ACfF;AAzBA;EAEE,UAAA;EACA,cAAA;AA0BF;AAnBA;EACE,aAAA;EACA,sBAAA;EACA,aAAA;AAqBF;AAlBA;EACE,gBAAA;AAoBF;AAjBA;EACE,UAAA;EACA,2BAAA;EACA,gBAAA;EACA,aAAA;EACA,iBAAA;AAmBF;AAxBA;EAQI,gBAAA;AAmBJ;AAfA;EACE;IACE,aAAA;IACA,cAAA;EAiBF;AACF\",\"sourcesContent\":[\"@desktop: ~'screen and (max-width: 1180px)';\\n@largeTablet: ~'screen and (min-width: 577px) and (max-width: 1180px)';\\n@tablet: ~'screen and (max-width: 1046px)';\\n@smallTablet: ~'screen and (max-width: 753px)';\\n@mobile: ~'screen and (max-width: 577px)';\\n@smallMobile: ~'screen and (max-width: 370px)';\\n\\n@profilePhotoMarginTop: -4.5rem;\\n@profilePhotoMarginLeft: 1rem;\\n\\n@boxShadow: 0 0.125rem 1rem 0 rgba(0, 0, 0, 0.15);\\n\\n.hiddenOnDesktop {\\n display: none;\\n}\\n\\n@media @smallTablet {\\n .hiddenOnMobile {\\n display: none;\\n }\\n\\n .hiddenOnDesktop {\\n display: flex;\\n flex-direction: column;\\n }\\n}\\n\\n.breakAll {\\n word-break: break-all;\\n overflow-wrap: anywhere;\\n}\\n\\n.breakWord {\\n word-break: break-word;\\n overflow-wrap: break-word;\\n}\\n\\n// TEMPORARY FIX FOR 2.0 HEADER BUG FOUND IN\\n// MODULE FEDERATION COMPONENTS\\nbody {\\n background: #faf8f4 !important;\\n background-image: linear-gradient(0deg, #faf8f4, #faf8f4) !important;\\n background-repeat: no-repeat;\\n}\\n\",\"@import '../../../../styles//globals.module.less';\\n\\n.desktopContainer {\\n &:extend(.hiddenOnMobile);\\n width: 80%;\\n margin: 0 auto;\\n}\\n\\n.mobileContainer {\\n &:extend(.hiddenOnDesktop);\\n}\\n\\n.editBizInfoContentContainer {\\n display: flex;\\n flex-direction: column;\\n row-gap: 3rem;\\n}\\n\\n.sectionContainer {\\n min-height: 4rem;\\n}\\n\\n.ctaButtonContainer {\\n width: 55%;\\n margin: 3rem auto 2rem auto;\\n column-gap: 1rem;\\n row-gap: 1rem;\\n flex-wrap: nowrap;\\n\\n button {\\n min-width: 11rem;\\n }\\n}\\n\\n@media @mobile {\\n .editBizInfoContainer {\\n padding: 2rem;\\n padding-top: 0;\\n }\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"hiddenOnDesktop\": \"styles-module__hiddenOnDesktop___2Ofmc\",\n\t\"mobileContainer\": \"styles-module__mobileContainer___qc6IL\",\n\t\"hiddenOnMobile\": \"styles-module__hiddenOnMobile___asAJB\",\n\t\"desktopContainer\": \"styles-module__desktopContainer___59BNj\",\n\t\"breakAll\": \"styles-module__breakAll___fUdrN\",\n\t\"breakWord\": \"styles-module__breakWord___0DlUg\",\n\t\"editBizInfoContentContainer\": \"styles-module__editBizInfoContentContainer___DhN9t\",\n\t\"sectionContainer\": \"styles-module__sectionContainer___jwIz6\",\n\t\"ctaButtonContainer\": \"styles-module__ctaButtonContainer___2xWFG\",\n\t\"editBizInfoContainer\": \"styles-module__editBizInfoContainer___4G-Du\"\n};\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(true);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".styles-module__hiddenOnDesktop___8-nBL {\\n display: none;\\n}\\n@media screen and (max-width: 753px) {\\n .styles-module__hiddenOnMobile___DcEvU {\\n display: none;\\n }\\n .styles-module__hiddenOnDesktop___8-nBL {\\n display: flex;\\n flex-direction: column;\\n }\\n}\\n.styles-module__breakAll___D3Oxj {\\n word-break: break-all;\\n overflow-wrap: anywhere;\\n}\\n.styles-module__breakWord___TRQyi {\\n word-break: break-word;\\n overflow-wrap: break-word;\\n}\\nbody {\\n background: #faf8f4 !important;\\n background-image: linear-gradient(0deg, #faf8f4, #faf8f4) !important;\\n background-repeat: no-repeat;\\n}\\n.styles-module__sectionContainer___8DXj9 {\\n width: 60%;\\n margin: 0 auto;\\n}\\n@media screen and (max-width: 577px) {\\n .styles-module__sectionContainer___8DXj9 {\\n width: 100%;\\n }\\n}\\n.styles-module__ctaButtonContainer___qPa9Y {\\n width: 55%;\\n margin: 3rem auto 2rem auto;\\n column-gap: 1rem;\\n row-gap: 1rem;\\n flex-wrap: nowrap;\\n}\\n.styles-module__ctaButtonContainer___qPa9Y button {\\n min-width: 11rem;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://styles/globals.module.less\",\"webpack://screens/business-profile-page/components/edit-description-page/styles.module.less\"],\"names\":[],\"mappings\":\"AAYA;EACE,aAAA;ACXF;ADcA;EACE;IACE,aAAA;ECZF;EDeA;IACE,aAAA;IACA,sBAAA;ECbF;AACF;ADgBA;EACE,qBAAA;EACA,uBAAA;ACdF;ADiBA;EACE,sBAAA;EACA,yBAAA;ACfF;ADoBA;EACE,8BAAA;EACA,oEAAA;EACA,4BAAA;AClBF;AAtBA;EACE,UAAA;EACA,cAAA;AAwBF;AArBA;EACE;IACE,WAAA;EAuBF;AACF;AApBA;EACE,UAAA;EACA,2BAAA;EACA,gBAAA;EACA,aAAA;EACA,iBAAA;AAsBF;AA3BA;EAQI,gBAAA;AAsBJ\",\"sourcesContent\":[\"@desktop: ~'screen and (max-width: 1180px)';\\n@largeTablet: ~'screen and (min-width: 577px) and (max-width: 1180px)';\\n@tablet: ~'screen and (max-width: 1046px)';\\n@smallTablet: ~'screen and (max-width: 753px)';\\n@mobile: ~'screen and (max-width: 577px)';\\n@smallMobile: ~'screen and (max-width: 370px)';\\n\\n@profilePhotoMarginTop: -4.5rem;\\n@profilePhotoMarginLeft: 1rem;\\n\\n@boxShadow: 0 0.125rem 1rem 0 rgba(0, 0, 0, 0.15);\\n\\n.hiddenOnDesktop {\\n display: none;\\n}\\n\\n@media @smallTablet {\\n .hiddenOnMobile {\\n display: none;\\n }\\n\\n .hiddenOnDesktop {\\n display: flex;\\n flex-direction: column;\\n }\\n}\\n\\n.breakAll {\\n word-break: break-all;\\n overflow-wrap: anywhere;\\n}\\n\\n.breakWord {\\n word-break: break-word;\\n overflow-wrap: break-word;\\n}\\n\\n// TEMPORARY FIX FOR 2.0 HEADER BUG FOUND IN\\n// MODULE FEDERATION COMPONENTS\\nbody {\\n background: #faf8f4 !important;\\n background-image: linear-gradient(0deg, #faf8f4, #faf8f4) !important;\\n background-repeat: no-repeat;\\n}\\n\",\"@import '../../../../styles//globals.module.less';\\n\\n.sectionContainer {\\n width: 60%;\\n margin: 0 auto;\\n}\\n\\n@media @mobile {\\n .sectionContainer {\\n width: 100%;\\n }\\n}\\n\\n.ctaButtonContainer {\\n width: 55%;\\n margin: 3rem auto 2rem auto;\\n column-gap: 1rem;\\n row-gap: 1rem;\\n flex-wrap: nowrap;\\n\\n button {\\n min-width: 11rem;\\n }\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"hiddenOnDesktop\": \"styles-module__hiddenOnDesktop___8-nBL\",\n\t\"hiddenOnMobile\": \"styles-module__hiddenOnMobile___DcEvU\",\n\t\"breakAll\": \"styles-module__breakAll___D3Oxj\",\n\t\"breakWord\": \"styles-module__breakWord___TRQyi\",\n\t\"sectionContainer\": \"styles-module__sectionContainer___8DXj9\",\n\t\"ctaButtonContainer\": \"styles-module__ctaButtonContainer___qPa9Y\"\n};\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(true);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".styles-module__errorMessageContainer___g4Rnm {\\n flex: 0 1 100%;\\n justify-content: center;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://screens/business-profile-page/components/edit-profile-page/components/edit-profile-panel/components/profile-photos-section/styles.module.less\"],\"names\":[],\"mappings\":\"AAAA;EACE,cAAA;EACA,uBAAA;AACF\",\"sourcesContent\":[\".errorMessageContainer {\\n flex: 0 1 100%;\\n justify-content: center;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"errorMessageContainer\": \"styles-module__errorMessageContainer___g4Rnm\"\n};\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(true);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".styles-module__editProfilePanelContainer___rRJxh {\\n display: flex;\\n flex-direction: column;\\n row-gap: 1.5rem;\\n}\\n.styles-module__sectionContainer___A0eE- {\\n min-height: 4rem;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://screens/business-profile-page/components/edit-profile-page/components/edit-profile-panel/styles.module.less\"],\"names\":[],\"mappings\":\"AAAA;EACE,aAAA;EACA,sBAAA;EACA,eAAA;AACF;AAEA;EACE,gBAAA;AAAF\",\"sourcesContent\":[\".editProfilePanelContainer {\\n display: flex;\\n flex-direction: column;\\n row-gap: 1.5rem;\\n}\\n\\n.sectionContainer {\\n min-height: 4rem;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"editProfilePanelContainer\": \"styles-module__editProfilePanelContainer___rRJxh\",\n\t\"sectionContainer\": \"styles-module__sectionContainer___A0eE-\"\n};\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(true);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".styles-module__errorMessageContainer___CVRmP {\\n text-wrap: wrap;\\n margin-bottom: 3rem;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://screens/business-profile-page/components/edit-profile-page/styles.module.less\"],\"names\":[],\"mappings\":\"AAAA;EACE,eAAA;EACA,mBAAA;AACF\",\"sourcesContent\":[\".errorMessageContainer {\\n text-wrap: wrap;\\n margin-bottom: 3rem;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"errorMessageContainer\": \"styles-module__errorMessageContainer___CVRmP\"\n};\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(true);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".styles-module__hiddenOnDesktop___GLuF-,\\n.styles-module__mobileNavContainer___QEYFf,\\n.styles-module__mobileNavContainerIcon___rhgr7 {\\n display: none;\\n}\\n@media screen and (max-width: 753px) {\\n .styles-module__hiddenOnMobile___FROrf,\\n .styles-module__desktopHeaderButton___EESiH,\\n .styles-module__desktopHeaderEditButton___bDjtx,\\n .styles-module__desktopHeaderEditButton___bDjtx {\\n display: none;\\n }\\n .styles-module__hiddenOnDesktop___GLuF-,\\n .styles-module__mobileNavContainer___QEYFf,\\n .styles-module__mobileNavContainerIcon___rhgr7 {\\n display: flex;\\n flex-direction: column;\\n }\\n}\\n.styles-module__breakAll___qBtpC {\\n word-break: break-all;\\n overflow-wrap: anywhere;\\n}\\n.styles-module__breakWord___ZtJOH {\\n word-break: break-word;\\n overflow-wrap: break-word;\\n}\\nbody {\\n background: #faf8f4 !important;\\n background-image: linear-gradient(0deg, #faf8f4, #faf8f4) !important;\\n background-repeat: no-repeat;\\n}\\n.styles-module__unpublishedWarningContainer___mS03e {\\n max-width: 45rem;\\n margin: 0 auto 2.5rem auto;\\n}\\n.styles-module__headerSectionContainer___xdbYl {\\n padding: 0rem 3rem;\\n flex-wrap: nowrap;\\n}\\n.styles-module__headerImage___25IHo {\\n width: 2rem;\\n}\\n.styles-module__desktopHeaderButton___EESiH,\\n.styles-module__desktopHeaderEditButton___bDjtx {\\n min-width: 15rem;\\n}\\n.styles-module__desktopHeaderEditButton___bDjtx {\\n min-width: 12rem;\\n}\\n.styles-module__mobileHeaderButton___o89rN {\\n padding: 0;\\n}\\n.styles-module__mobileNavContainer___QEYFf {\\n column-gap: 1rem;\\n flex-direction: row;\\n}\\n.styles-module__mobileNavIcon___9OCkl {\\n cursor: pointer;\\n}\\n.styles-module__leftSection___oqf8x,\\n.styles-module__rightSection___8IXna {\\n display: flex;\\n align-items: center;\\n column-gap: 0.75rem;\\n}\\n.styles-module__rightSection___8IXna {\\n justify-content: flex-end;\\n}\\n@media screen and (max-width: 1046px) {\\n .styles-module__headerSectionContainer___xdbYl {\\n padding: 0rem 1rem;\\n flex-wrap: wrap;\\n }\\n .styles-module__rightSection___8IXna {\\n justify-content: center;\\n }\\n}\\n@media screen and (max-width: 753px) {\\n .styles-module__rightSection___8IXna {\\n justify-content: flex-end;\\n }\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://styles/globals.module.less\",\"webpack://screens/business-profile-page/components/header-section/styles.module.less\"],\"names\":[],\"mappings\":\"AAYA;;;EACE,aAAA;ACTF;ADYA;EACE;;;;IACE,aAAA;ECPF;EDUA;;;IACE,aAAA;IACA,sBAAA;ECNF;AACF;ADSA;EACE,qBAAA;EACA,uBAAA;ACPF;ADUA;EACE,sBAAA;EACA,yBAAA;ACRF;ADaA;EACE,8BAAA;EACA,oEAAA;EACA,4BAAA;ACXF;AA7BA;EACE,gBAAA;EACA,0BAAA;AA+BF;AA5BA;EACE,kBAAA;EACA,iBAAA;AA8BF;AA3BA;EACE,WAAA;AA6BF;AA1BA;;EAGE,gBAAA;AA2BF;AAxBA;EACE,gBAAA;AA0BF;AAtBA;EACE,UAAA;AAwBF;AAhBA;EACE,gBAAA;EACA,mBAAA;AAkBF;AAfA;EACE,eAAA;AAiBF;AAdA;;EAEE,aAAA;EACA,mBAAA;EACA,mBAAA;AAgBF;AAbA;EACE,yBAAA;AAeF;AAZA;EACE;IACE,kBAAA;IACA,eAAA;EAcF;EAXA;IACE,uBAAA;EAaF;AACF;AAVA;EACE;IACE,yBAAA;EAYF;AACF\",\"sourcesContent\":[\"@desktop: ~'screen and (max-width: 1180px)';\\n@largeTablet: ~'screen and (min-width: 577px) and (max-width: 1180px)';\\n@tablet: ~'screen and (max-width: 1046px)';\\n@smallTablet: ~'screen and (max-width: 753px)';\\n@mobile: ~'screen and (max-width: 577px)';\\n@smallMobile: ~'screen and (max-width: 370px)';\\n\\n@profilePhotoMarginTop: -4.5rem;\\n@profilePhotoMarginLeft: 1rem;\\n\\n@boxShadow: 0 0.125rem 1rem 0 rgba(0, 0, 0, 0.15);\\n\\n.hiddenOnDesktop {\\n display: none;\\n}\\n\\n@media @smallTablet {\\n .hiddenOnMobile {\\n display: none;\\n }\\n\\n .hiddenOnDesktop {\\n display: flex;\\n flex-direction: column;\\n }\\n}\\n\\n.breakAll {\\n word-break: break-all;\\n overflow-wrap: anywhere;\\n}\\n\\n.breakWord {\\n word-break: break-word;\\n overflow-wrap: break-word;\\n}\\n\\n// TEMPORARY FIX FOR 2.0 HEADER BUG FOUND IN\\n// MODULE FEDERATION COMPONENTS\\nbody {\\n background: #faf8f4 !important;\\n background-image: linear-gradient(0deg, #faf8f4, #faf8f4) !important;\\n background-repeat: no-repeat;\\n}\\n\",\"@import '../../../../styles/globals.module.less';\\n\\n.unpublishedWarningContainer {\\n max-width: 45rem;\\n margin: 0 auto 2.5rem auto;\\n}\\n\\n.headerSectionContainer {\\n padding: 0rem 3rem;\\n flex-wrap: nowrap;\\n}\\n\\n.headerImage {\\n width: 2rem;\\n}\\n\\n.desktopHeaderButton,\\n.desktopHeaderEditButton {\\n &:extend(.hiddenOnMobile);\\n min-width: 15rem;\\n}\\n\\n.desktopHeaderEditButton {\\n min-width: 12rem;\\n &:extend(.hiddenOnMobile);\\n}\\n\\n.mobileHeaderButton {\\n padding: 0;\\n}\\n\\n.mobileNavContainer,\\n.mobileNavContainerIcon {\\n &:extend(.hiddenOnDesktop);\\n}\\n\\n.mobileNavContainer {\\n column-gap: 1rem;\\n flex-direction: row;\\n}\\n\\n.mobileNavIcon {\\n cursor: pointer;\\n}\\n\\n.leftSection,\\n.rightSection {\\n display: flex;\\n align-items: center;\\n column-gap: 0.75rem;\\n}\\n\\n.rightSection {\\n justify-content: flex-end;\\n}\\n\\n@media @tablet {\\n .headerSectionContainer {\\n padding: 0rem 1rem;\\n flex-wrap: wrap;\\n }\\n\\n .rightSection {\\n justify-content: center;\\n }\\n}\\n\\n@media @smallTablet {\\n .rightSection {\\n justify-content: flex-end;\\n }\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"hiddenOnDesktop\": \"styles-module__hiddenOnDesktop___GLuF-\",\n\t\"mobileNavContainer\": \"styles-module__mobileNavContainer___QEYFf\",\n\t\"mobileNavContainerIcon\": \"styles-module__mobileNavContainerIcon___rhgr7\",\n\t\"hiddenOnMobile\": \"styles-module__hiddenOnMobile___FROrf\",\n\t\"desktopHeaderButton\": \"styles-module__desktopHeaderButton___EESiH\",\n\t\"desktopHeaderEditButton\": \"styles-module__desktopHeaderEditButton___bDjtx\",\n\t\"breakAll\": \"styles-module__breakAll___qBtpC\",\n\t\"breakWord\": \"styles-module__breakWord___ZtJOH\",\n\t\"unpublishedWarningContainer\": \"styles-module__unpublishedWarningContainer___mS03e\",\n\t\"headerSectionContainer\": \"styles-module__headerSectionContainer___xdbYl\",\n\t\"headerImage\": \"styles-module__headerImage___25IHo\",\n\t\"mobileHeaderButton\": \"styles-module__mobileHeaderButton___o89rN\",\n\t\"mobileNavIcon\": \"styles-module__mobileNavIcon___9OCkl\",\n\t\"leftSection\": \"styles-module__leftSection___oqf8x\",\n\t\"rightSection\": \"styles-module__rightSection___8IXna\"\n};\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(true);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".styles-module__hiddenOnDesktop___TZMDh {\\n display: none;\\n}\\n@media screen and (max-width: 753px) {\\n .styles-module__hiddenOnMobile___-aWdF {\\n display: none;\\n }\\n .styles-module__hiddenOnDesktop___TZMDh {\\n display: flex;\\n flex-direction: column;\\n }\\n}\\n.styles-module__breakAll___b9jXM {\\n word-break: break-all;\\n overflow-wrap: anywhere;\\n}\\n.styles-module__breakWord___9\\\\+bAH,\\n.styles-module__clickableRowDescriptionContainer___NpxHT {\\n word-break: break-word;\\n overflow-wrap: break-word;\\n}\\nbody {\\n background: #faf8f4 !important;\\n background-image: linear-gradient(0deg, #faf8f4, #faf8f4) !important;\\n background-repeat: no-repeat;\\n}\\n.styles-module__clickableRow___IRZs8 {\\n padding: 0.75rem 1rem;\\n column-gap: 0.5rem;\\n flex-wrap: nowrap;\\n cursor: pointer;\\n align-items: center;\\n}\\n.styles-module__clickableRowDescriptionContainer___NpxHT {\\n white-space: pre-line;\\n overflow: hidden;\\n display: -webkit-box;\\n line-clamp: 3;\\n -webkit-line-clamp: 3;\\n -webkit-box-orient: vertical;\\n}\\n.styles-module__removePadding___YKu1\\\\+ {\\n padding: 0;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://styles/globals.module.less\",\"webpack://screens/business-profile-page/components/owner-profile-page/components/business-info-section/components/clickable-row/styles.module.less\"],\"names\":[],\"mappings\":\"AAYA;EACE,aAAA;ACXF;ADcA;EACE;IACE,aAAA;ECZF;EDeA;IACE,aAAA;IACA,sBAAA;ECbF;AACF;ADgBA;EACE,qBAAA;EACA,uBAAA;ACdF;ADiBA;;EACE,sBAAA;EACA,yBAAA;ACdF;ADmBA;EACE,8BAAA;EACA,oEAAA;EACA,4BAAA;ACjBF;AAvBA;EACE,qBAAA;EACA,kBAAA;EACA,iBAAA;EACA,eAAA;EACA,mBAAA;AAyBF;AAtBA;EACE,qBAAA;EAEA,gBAAA;EACA,oBAAA;EACA,aAAA;EACA,qBAAA;EACA,4BAAA;AAuBF;AApBA;EACE,UAAA;AAsBF\",\"sourcesContent\":[\"@desktop: ~'screen and (max-width: 1180px)';\\n@largeTablet: ~'screen and (min-width: 577px) and (max-width: 1180px)';\\n@tablet: ~'screen and (max-width: 1046px)';\\n@smallTablet: ~'screen and (max-width: 753px)';\\n@mobile: ~'screen and (max-width: 577px)';\\n@smallMobile: ~'screen and (max-width: 370px)';\\n\\n@profilePhotoMarginTop: -4.5rem;\\n@profilePhotoMarginLeft: 1rem;\\n\\n@boxShadow: 0 0.125rem 1rem 0 rgba(0, 0, 0, 0.15);\\n\\n.hiddenOnDesktop {\\n display: none;\\n}\\n\\n@media @smallTablet {\\n .hiddenOnMobile {\\n display: none;\\n }\\n\\n .hiddenOnDesktop {\\n display: flex;\\n flex-direction: column;\\n }\\n}\\n\\n.breakAll {\\n word-break: break-all;\\n overflow-wrap: anywhere;\\n}\\n\\n.breakWord {\\n word-break: break-word;\\n overflow-wrap: break-word;\\n}\\n\\n// TEMPORARY FIX FOR 2.0 HEADER BUG FOUND IN\\n// MODULE FEDERATION COMPONENTS\\nbody {\\n background: #faf8f4 !important;\\n background-image: linear-gradient(0deg, #faf8f4, #faf8f4) !important;\\n background-repeat: no-repeat;\\n}\\n\",\"@import '../../../../../../../../styles/globals.module.less';\\n\\n.clickableRow {\\n padding: 0.75rem 1rem;\\n column-gap: 0.5rem;\\n flex-wrap: nowrap;\\n cursor: pointer;\\n align-items: center;\\n}\\n\\n.clickableRowDescriptionContainer {\\n white-space: pre-line;\\n &:extend(.breakWord);\\n overflow: hidden;\\n display: -webkit-box;\\n line-clamp: 3;\\n -webkit-line-clamp: 3;\\n -webkit-box-orient: vertical;\\n}\\n\\n.removePadding {\\n padding: 0;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"hiddenOnDesktop\": \"styles-module__hiddenOnDesktop___TZMDh\",\n\t\"hiddenOnMobile\": \"styles-module__hiddenOnMobile___-aWdF\",\n\t\"breakAll\": \"styles-module__breakAll___b9jXM\",\n\t\"breakWord\": \"styles-module__breakWord___9+bAH\",\n\t\"clickableRowDescriptionContainer\": \"styles-module__clickableRowDescriptionContainer___NpxHT\",\n\t\"clickableRow\": \"styles-module__clickableRow___IRZs8\",\n\t\"removePadding\": \"styles-module__removePadding___YKu1+\"\n};\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(true);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".styles-module__sectionContainer___dlpJc {\\n padding: 1.75rem 2rem;\\n display: flex;\\n flex-direction: column;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://screens/business-profile-page/components/owner-profile-page/components/business-info-section/styles.module.less\"],\"names\":[],\"mappings\":\"AAAA;EACE,qBAAA;EACA,aAAA;EACA,sBAAA;AACF\",\"sourcesContent\":[\".sectionContainer {\\n padding: 1.75rem 2rem;\\n display: flex;\\n flex-direction: column;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"sectionContainer\": \"styles-module__sectionContainer___dlpJc\"\n};\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(true);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".styles-module__hiddenOnDesktop___XJVVB {\\n display: none;\\n}\\n@media screen and (max-width: 753px) {\\n .styles-module__hiddenOnMobile___9wydG {\\n display: none;\\n }\\n .styles-module__hiddenOnDesktop___XJVVB {\\n display: flex;\\n flex-direction: column;\\n }\\n}\\n.styles-module__breakAll___fZjzV {\\n word-break: break-all;\\n overflow-wrap: anywhere;\\n}\\n.styles-module__breakWord___edk86 {\\n word-break: break-word;\\n overflow-wrap: break-word;\\n}\\nbody {\\n background: #faf8f4 !important;\\n background-image: linear-gradient(0deg, #faf8f4, #faf8f4) !important;\\n background-repeat: no-repeat;\\n}\\n.styles-module__profileErrorAlert___emFSO {\\n max-width: 28rem;\\n margin: 0 auto;\\n position: absolute;\\n left: 0;\\n right: 0;\\n top: 5rem;\\n z-index: 1;\\n}\\n.styles-module__profileContainer___TwVBi {\\n max-width: 45rem;\\n margin: 0 auto;\\n}\\n.styles-module__profileCardContainer___Gkpay {\\n padding: 0 !important;\\n box-shadow: 0 0.125rem 1rem 0 rgba(0, 0, 0, 0.15);\\n}\\n.styles-module__cardContentContainer___qYADb {\\n display: flex;\\n flex-direction: column;\\n justify-content: space-around;\\n border-radius: 0 0 1rem 1rem;\\n margin-top: 0;\\n}\\n.styles-module__businessSectionContainer___sueGQ {\\n padding: 0 1rem;\\n display: flex;\\n flex-direction: column;\\n row-gap: 1rem;\\n}\\n.styles-module__businessSectionName___PQHOJ {\\n font-size: 0.875rem !important;\\n}\\n.styles-module__businessSectionHandle___pvf8s {\\n font-size: 0.75rem !important;\\n}\\n.styles-module__footerButtonsContainer___dYvPA {\\n display: flex;\\n flex-direction: column;\\n align-items: center;\\n row-gap: 1.5rem;\\n margin: 0 1rem;\\n width: 55%;\\n}\\n.styles-module__footerButtonsContainer___dYvPA button {\\n margin-right: 0 !important;\\n}\\n@media screen and (max-width: 577px) {\\n .styles-module__footerButtonsContainer___dYvPA {\\n width: 100%;\\n }\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://styles/globals.module.less\",\"webpack://screens/business-profile-page/components/owner-profile-page/styles.module.less\"],\"names\":[],\"mappings\":\"AAYA;EACE,aAAA;ACXF;ADcA;EACE;IACE,aAAA;ECZF;EDeA;IACE,aAAA;IACA,sBAAA;ECbF;AACF;ADgBA;EACE,qBAAA;EACA,uBAAA;ACdF;ADiBA;EACE,sBAAA;EACA,yBAAA;ACfF;ADoBA;EACE,8BAAA;EACA,oEAAA;EACA,4BAAA;AClBF;AAtBA;EACE,gBAAA;EACA,cAAA;EACA,kBAAA;EACA,OAAA;EACA,QAAA;EACA,SAAA;EACA,UAAA;AAwBF;AArBA;EACE,gBAAA;EACA,cAAA;AAuBF;AApBA;EACE,qBAAA;EACA,iDAAA;AAsBF;AAnBA;EACE,aAAA;EACA,sBAAA;EACA,6BAAA;EACA,4BAAA;EACA,aAAA;AAqBF;AAlBA;EACE,eAAA;EACA,aAAA;EACA,sBAAA;EACA,aAAA;AAoBF;AAjBA;EACE,8BAAA;AAmBF;AAhBA;EACE,6BAAA;AAkBF;AAfA;EACE,aAAA;EACA,sBAAA;EACA,mBAAA;EACA,eAAA;EACA,cAAA;EACA,UAAA;AAiBF;AAvBA;EASI,0BAAA;AAiBJ;AAbA;EACE;IACE,WAAA;EAeF;AACF\",\"sourcesContent\":[\"@desktop: ~'screen and (max-width: 1180px)';\\n@largeTablet: ~'screen and (min-width: 577px) and (max-width: 1180px)';\\n@tablet: ~'screen and (max-width: 1046px)';\\n@smallTablet: ~'screen and (max-width: 753px)';\\n@mobile: ~'screen and (max-width: 577px)';\\n@smallMobile: ~'screen and (max-width: 370px)';\\n\\n@profilePhotoMarginTop: -4.5rem;\\n@profilePhotoMarginLeft: 1rem;\\n\\n@boxShadow: 0 0.125rem 1rem 0 rgba(0, 0, 0, 0.15);\\n\\n.hiddenOnDesktop {\\n display: none;\\n}\\n\\n@media @smallTablet {\\n .hiddenOnMobile {\\n display: none;\\n }\\n\\n .hiddenOnDesktop {\\n display: flex;\\n flex-direction: column;\\n }\\n}\\n\\n.breakAll {\\n word-break: break-all;\\n overflow-wrap: anywhere;\\n}\\n\\n.breakWord {\\n word-break: break-word;\\n overflow-wrap: break-word;\\n}\\n\\n// TEMPORARY FIX FOR 2.0 HEADER BUG FOUND IN\\n// MODULE FEDERATION COMPONENTS\\nbody {\\n background: #faf8f4 !important;\\n background-image: linear-gradient(0deg, #faf8f4, #faf8f4) !important;\\n background-repeat: no-repeat;\\n}\\n\",\"@import '../../../../styles/globals.module.less';\\n\\n.profileErrorAlert {\\n max-width: 28rem;\\n margin: 0 auto;\\n position: absolute;\\n left: 0;\\n right: 0;\\n top: 5rem;\\n z-index: 1;\\n}\\n\\n.profileContainer {\\n max-width: 45rem;\\n margin: 0 auto;\\n}\\n\\n.profileCardContainer {\\n padding: 0 !important;\\n box-shadow: @boxShadow;\\n}\\n\\n.cardContentContainer {\\n display: flex;\\n flex-direction: column;\\n justify-content: space-around;\\n border-radius: 0 0 1rem 1rem;\\n margin-top: 0;\\n}\\n\\n.businessSectionContainer {\\n padding: 0 1rem;\\n display: flex;\\n flex-direction: column;\\n row-gap: 1rem;\\n}\\n\\n.businessSectionName {\\n font-size: 0.875rem !important;\\n}\\n\\n.businessSectionHandle {\\n font-size: 0.75rem !important;\\n}\\n\\n.footerButtonsContainer {\\n display: flex;\\n flex-direction: column;\\n align-items: center;\\n row-gap: 1.5rem;\\n margin: 0 1rem;\\n width: 55%;\\n\\n button {\\n margin-right: 0 !important;\\n }\\n}\\n\\n@media @mobile {\\n .footerButtonsContainer {\\n width: 100%;\\n }\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"hiddenOnDesktop\": \"styles-module__hiddenOnDesktop___XJVVB\",\n\t\"hiddenOnMobile\": \"styles-module__hiddenOnMobile___9wydG\",\n\t\"breakAll\": \"styles-module__breakAll___fZjzV\",\n\t\"breakWord\": \"styles-module__breakWord___edk86\",\n\t\"profileErrorAlert\": \"styles-module__profileErrorAlert___emFSO\",\n\t\"profileContainer\": \"styles-module__profileContainer___TwVBi\",\n\t\"profileCardContainer\": \"styles-module__profileCardContainer___Gkpay\",\n\t\"cardContentContainer\": \"styles-module__cardContentContainer___qYADb\",\n\t\"businessSectionContainer\": \"styles-module__businessSectionContainer___sueGQ\",\n\t\"businessSectionName\": \"styles-module__businessSectionName___PQHOJ\",\n\t\"businessSectionHandle\": \"styles-module__businessSectionHandle___pvf8s\",\n\t\"footerButtonsContainer\": \"styles-module__footerButtonsContainer___dYvPA\"\n};\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(true);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".styles-module__backButtonContainer___SL-vn {\\n display: flex;\\n flex-direction: column;\\n row-gap: 1rem;\\n margin-bottom: 3rem;\\n}\\n.styles-module__backButton___GfcMl {\\n display: flex;\\n align-items: center;\\n column-gap: 0.5rem;\\n width: fit-content;\\n}\\n.styles-module__headerText___1QHVG {\\n margin-top: 0;\\n margin-bottom: 0;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://screens/business-profile-page/components/page-header-section/styles.module.less\"],\"names\":[],\"mappings\":\"AAAA;EACE,aAAA;EACA,sBAAA;EACA,aAAA;EACA,mBAAA;AACF;AAEA;EACE,aAAA;EACA,mBAAA;EACA,kBAAA;EACA,kBAAA;AAAF;AAGA;EACE,aAAA;EACA,gBAAA;AADF\",\"sourcesContent\":[\".backButtonContainer {\\n display: flex;\\n flex-direction: column;\\n row-gap: 1rem;\\n margin-bottom: 3rem;\\n}\\n\\n.backButton {\\n display: flex;\\n align-items: center;\\n column-gap: 0.5rem;\\n width: fit-content;\\n}\\n\\n.headerText {\\n margin-top: 0;\\n margin-bottom: 0;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"backButtonContainer\": \"styles-module__backButtonContainer___SL-vn\",\n\t\"backButton\": \"styles-module__backButton___GfcMl\",\n\t\"headerText\": \"styles-module__headerText___1QHVG\"\n};\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(true);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".styles-module__previewButton___yFLOJ {\\n width: 100%;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://screens/business-profile-page/components/preview-profile-button/styles.module.less\"],\"names\":[],\"mappings\":\"AAAA;EACE,WAAA;AACF\",\"sourcesContent\":[\".previewButton {\\n width: 100%;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"previewButton\": \"styles-module__previewButton___yFLOJ\"\n};\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(true);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".styles-module__profileContainer___iL1Go {\\n max-width: 45rem;\\n margin: 0 auto;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://screens/business-profile-page/components/preview-profile-page/styles.module.less\"],\"names\":[],\"mappings\":\"AAAA;EACE,gBAAA;EACA,cAAA;AACF\",\"sourcesContent\":[\".profileContainer {\\n max-width: 45rem;\\n margin: 0 auto;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"profileContainer\": \"styles-module__profileContainer___iL1Go\"\n};\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(true);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".styles-module__saveButton___Kuwvl {\\n width: 100%;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://screens/business-profile-page/components/save-edits-button/styles.module.less\"],\"names\":[],\"mappings\":\"AAAA;EACE,WAAA;AACF\",\"sourcesContent\":[\".saveButton {\\n width: 100%;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"saveButton\": \"styles-module__saveButton___Kuwvl\"\n};\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(true);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".styles-module__profileContainer___L3fnL {\\n max-width: 45rem;\\n margin: 0 auto;\\n}\\n.styles-module__profileCard___ega9F {\\n background-color: #ffffff;\\n border: 0.0625rem solid rgba(0, 0, 0, 0.1);\\n border-radius: 0.75rem;\\n margin-top: 1rem;\\n}\\n.styles-module__reportLink___--Aga {\\n padding: 12px;\\n justify-content: center;\\n margin: 1.5rem 0 1.5rem 0;\\n}\\n@media screen and (max-width: 750px) {\\n .styles-module__profileContent___jS8Vv {\\n padding-left: 1.5rem !important;\\n padding-right: 1.5rem !important;\\n }\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://screens/business-profile-page/components/view-profile-page/styles.module.less\"],\"names\":[],\"mappings\":\"AAAA;EACE,gBAAA;EACA,cAAA;AACF;AAEA;EACE,yBAAA;EACA,0CAAA;EACA,sBAAA;EACA,gBAAA;AAAF;AAGA;EACE,aAAA;EACA,uBAAA;EACA,yBAAA;AADF;AAIA;EACE;IACE,+BAAA;IACA,gCAAA;EAFF;AACF\",\"sourcesContent\":[\".profileContainer {\\n max-width: 45rem;\\n margin: 0 auto;\\n}\\n\\n.profileCard {\\n background-color: #ffffff;\\n border: 0.0625rem solid rgba(0, 0, 0, 0.1);\\n border-radius: 0.75rem;\\n margin-top: 1rem;\\n}\\n\\n.reportLink {\\n padding: 12px;\\n justify-content: center;\\n margin: 1.5rem 0 1.5rem 0;\\n}\\n\\n@media screen and (max-width: 750px) {\\n .profileContent {\\n padding-left: 1.5rem !important;\\n padding-right: 1.5rem !important;\\n }\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"profileContainer\": \"styles-module__profileContainer___L3fnL\",\n\t\"profileCard\": \"styles-module__profileCard___ega9F\",\n\t\"reportLink\": \"styles-module__reportLink___--Aga\",\n\t\"profileContent\": \"styles-module__profileContent___jS8Vv\"\n};\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(true);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".styles-module__profilePageAlert___rQ9Xo {\\n margin-bottom: 1rem;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://screens/business-profile-page/styles.module.less\"],\"names\":[],\"mappings\":\"AAAA;EACE,mBAAA;AACF\",\"sourcesContent\":[\".profilePageAlert {\\n margin-bottom: 1rem;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"profilePageAlert\": \"styles-module__profilePageAlert___rQ9Xo\"\n};\nexport default ___CSS_LOADER_EXPORT___;\n"],"names":["BUSINESS_PROFILE_INDEX_PAGE_CONTAINER_TEST_ID","BUSINESS_PROFILE_HEADER_SECTION_TEST_ID","UNPUBLISHED_PROFILE_WARNING_ALERT_TEST_ID","PREVIEW_PROFILE_PAGE_TEST_ID","EDIT_PROFILE_PAGE_TEST_ID","OWNER_PROFILE_SCREEN_INDEX_CONTAINER_TEST_ID","EDIT_PROFILE_PANEL_TEST_ID","BUSINESS_NAME_SECTION_TEST_ID","BUSINESS_DESCRIPTION_SECTION_TEST_ID","BUSINESS_USERNAME_SECTION_TEST_ID","PREVIEW_PROFILE_BUTTON_TEST_ID","EDIT_BIZ_INFO_PAGE_COMPONENT_TEST_ID","EDIT_DESCRIPTION_PAGE_COMPONENT_TEST_ID","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","undefined","BusinessDescriptionSection","_ref","isLoading","setIsValid","dispatch","useDispatch","_useState","useState","_useState2","_slicedToArray","errors","setErrors","values","useBusinessProfileReduxState","editedProfileData","businessDescription","_useProfileValidation","useProfileValidation","businessDescriptionValidationResult","data","businessDescriptionValidationError","error","validationPending","isPending","validateBusinessDescription","mutateAsync","getContent","useBusinessProfilePageContent","getMessage","useBusinessProfilePageMessage","businessDescriptionLabelText","invalidLengthErrorText","businessDescriptionTooltipText","firstSection","msg","___EmotionJSX","_BodyText","firstBulletPoint","className","styles","secondBulletPoint","secondSection","_useMappedErrorConten","useMappedErrorContent","mappedErrors","isValid","useEffect","_Row","noGutters","strong","_Tooltip","name","description","screenReaderText","WithLoadingShimmer","_TextArea","showCharacterCounter","length","value","label","onChange","e","newBusinessDescription","target","updateEditedProfileDataValues","updateAreValuesEdited","onBlur","businessDescriptionInput","newErrors","push","request","errorText","helperText","maxCharacters","BusinessNameSection","businessNameLabelText","businessName","BusinessUsernameSection","businessUsernameLabelText","customerServiceText","link","_Link","role","href","tabIndex","businessHandleTooltipText","businessHandle","React","EditBusinessLocationNameSection","_values$profilePrefer","_uneditedFormattedDat","_useBusinessProfileRe","uneditedFormattedData","locationDisplayPreference","profilePreferences","LocationNameSection","businessAddress","selectedLocationDisplayPreference","updateSelectedLocationDisplayPreference","updatedAddressPreference","updateEditedProfilePreferencesDataValues","BP_EDIT_EXIT_SHEET_SHOWN_FPTI","eventName","CONFIRM_EXIT_EDIT_BUTTON_CLICKED","CANCEL_EXIT_EDIT_BUTTON_CLICKED","isOpen","handleBack","closeConfirmationDialog","fpti","useImpressionTracking","_objectSpread","useContent","useModularSellerViewPageContent","exitConfirmationTitle","exitButtonText","continueEditingButtonText","handleCancelAndClose","trackClick","_Dialog","center","onCloseComplete","_e","closedBy","title","hideTitle","CONFIRMATION_BOX_CONTAINER_TEST_ID","_HeadingText","level","_Button","onClick","tertiary","EDIT_BIZ_INFO_PAGE_SHOWN_FPTI","commonModularProfileFptiProperties","EDIT_BIZ_INFO_BACK_LINK_CLICK_FPTI","stringifyFptiProps","EDIT_BIZ_INFO_PREVIEW_BUTTON_CLICK_FPTI","BUSINESS_PROFILE_PREVIEW_PAGE_SHOWN_FPTI","BUSINESS_PROFILE_EDIT_PROFILE_CLICK_FPTI","BUSINESS_PROFILE_PREVIEW_PROFILE_CLICK_FPTI","BUSINESS_PROFILE_SELLER_SHARE_LINK_CLICK_FPTI","MODULAR_EDIT_PROFILE_PANEL_EDIT_BUSINESS_INFO_FPTI","BUSINESS_PROFILE_PAGE_SHOWN_TO_SELLER","EDIT_BP_PREVIEW_SHOWN_FPTI","BP_EDIT_PREVIEW_BACK_CLICK_FPTI","BP_PREVIEW_BACK_CLICK_FPTI","BP_EDIT_PREVIEW_SAVE_CLICK_FPTI","PREVIEW_CHANGES_CONT_EDITING_CLICK_FPTI","BUSINESS_PROFILE_SELLER_VIEW_DESCRIPTION_CARD_FPTI","BUSINESS_PROFILE_SELLER_VIEW_BUSINESS_INFO_CARD_FPTI","EDIT_BIZ_INFO_SAVE_BUTTON_CLICK_FPTI","EDIT_BIZ_INFO_SUCCESSFUL_SAVE_FPTI","EDIT_PROFILE_DESCRIPTION_SAVE_BUTTON_CLICK_FPTI","EDIT_PROFILE_DESCRIPTION_SUCCESSFUL_SAVE_FPTI","BP_SELLER_VIEW_PROFILE_PHOTO_CLICK_FPTI","BP_SELLER_VIEW_COVER_PHOTO_CLICK_FPTI","BP_PROFILE_PHOTO_CROP_SCREEN_SHOWN_FPTI","BP_REMOVE_PHOTO_FPTI","BP_REMOVE_PROFILE_PHOTO_FPTI","source","BP_REMOVE_COVER_PHOTO_FPTI","BP_CHANGE_PHOTO_FPTI","BP_CHANGE_PROFILE_PHOTO_FPTI","BP_CHANGE_COVER_PHOTO_FPTI","BP_SAVE_PHOTO_FPTI","BP_SAVE_PROFILE_PHOTO_FPTI","BP_SAVE_COVER_PHOTO_FPTI","BP_PHOTO_UPLOAD_SUCCESS_SHOWN_FPTI","BP_PHOTO_UPLOAD_ERROR_SHOWN_FPTI","BP_CHOOSE_EXISTING_PROFILE_PHOTO_FPTI","BP_COVER_PHOTO_CROP_SCREEN_SHOWN_FPTI","BP_CHOOSE_EXISTING_COVER_PHOTO_FPTI","EditBizInfoPage","goBackToMainPage","isEditedDataInitialized","useRef","bizInfoUpdatedToastMessage","getModularSellerViewPageContent","_useBusinessProfileRe2","allContactInfo","contactInfo","originalLocationDisplayPreference","_ref3","originalBusinessEmail","businessEmail","originalBusinessPhoneNumber","businessPhoneNumber","originalBusinessWebsiteUrl","businessWebsiteUrl","_ref4","updatedBusinessEmail","updatedBusinessPhoneNumber","updatedBusinessWebsiteUrl","updatedLocationDisplayPreference","shouldShowExitConfirmation","setShouldShowExitConfirmation","_useState3","_useState4","isContactInfoValid","setIsContactInfoValid","useErrorResetting","emptyEditedContactInfoFields","Object","every","current","contactInfoUpdate","newProfilePreferences","contactInfoContent","ContactInfoSection","updateSelectedContactInfo","updatedContactInfo","selectedContactInfoValues","align","PreviewProfileButton","canPreview","SaveEditsButton","canSave","successfulUpdateToastMessage","saveButtonFpti","successPublishFpti","onSuccess","routes","PageHeaderSection","handleBackClick","pageHeaderText","backLinkFpti","_Card","ExitConfirmationBox","EDIT_DESCRIPTION_PAGE_SHOWN_FPTI","EDIT_DESCRIPTION_BACK_LINK_CLICK_FPTI","EDIT_DESCRIPTION_PREVIEW_BUTTON_CLICK_FPTI","EditDescriptionPage","profileDescriptionUpdatedToastMessage","isDescriptionValid","setIsDescriptionValid","originalBusinessDescription","updatedBusinessDescription","subHeaderText","formatRawProfileDetails","profileDetails","profileData","_profileDetails$conta","_profileDetails$profi","relevantContactInfo","unformattedBusinessPhoneNumber","_objectWithoutProperties","_excluded","displayedContactInfo","emailAddressDisplay","phoneNumberDisplay","websiteDisplay","coverPhoto","backgroundUrl","profilePhoto","avatarUrl","reviewPanelId","NavigationButtons","nextButtonProps","handleSubmit","backButtonProps","optionalLink","_ref$lastPanelIndex","lastPanelIndex","pageIsValidated","isFormValid","currentPanelIndex","isOnFirstPanel","handleNavigation","nextPanelIndex","updateCurrentPanelIndexInEditForm","NextAndBackButtons","nextButton","handleClick","focusOnErroredFormElement","backButton","previousPanelIndex","commonProperties","pageGroup","pageName","EDIT_PROFILE_SCREEN_SHOWN_FPTI","EDIT_BP_ABANDON_POPUP_SHOWN","JSON","stringify","EDIT_PROFILE_PANEL_NEXT_BUTTON_FPTI","EDIT_PROFILE_PANEL_EDIT_PROFILE_PHOTO_FPTI","EDIT_PROFILE_PANEL_EDIT_COVER_PHOTO_FPTI","ProfilePhotosSection","setIsCoverPhotoValid","setIsProfilePhotoValid","coverPhotoTitle","profilePhotoTitle","updateImageSrc","photoType","_defineProperty","profilePhotoUploadingProps","usePhotoUploading","photoSrc","updatePhotoValidity","_photoType","coverPhotoUploadingProps","errorMessage","PhotoUploadSection","_extends","isDisplayPhoto","sheetTitle","editFpti","_ContextualAlert","type","EditProfilePanel","resetEditedData","validationInProgress","useIsMutating","setIsFormValid","_useState5","_useState6","isBusinessDescriptionValid","setIsBusinessDescriptionValid","_useState7","_useState8","isProfilePhotoValid","_useState9","_useState10","isCoverPhotoValid","updateIsEditing","EDIT_PROFILE_TERMS_LINK_CLICK_FPTI","EDIT_PROFILE_AGREE_AND_PUBLISH_CLICK_FPTI","EDIT_PROFILE_PUBLISH_SUCCESS_FPTI","EDIT_PROFILE_PUBLISH_ERROR_FPTI","ReviewProfilePanel","queryClient","useQueryClient","editProfile","useEditProfile","publishErrorToastMessage","publishSuccessToastMessage","_values$contactInfo","_ref2","businessJoinDate","customerCount","_handleSubmit","_asyncToGenerator","_regeneratorRuntime","_callee","handleError","_context","prev","next","updateEditPageErrorMessage","trackImpression","scrollToTop","formatProfileRequestBody","selectedContactInfo","updateEditPageIsLoading","refetchQueries","queryKey","concat","updateGlobalToast","message","t0","stop","apply","arguments","ProfileCard","isReviewing","userOwnsProfile","accountCreateDate","pastYearCustomerCount","coverPhotoSrc","profilePhotoSrc","reviewHeaderText","reviewSubheaderText","disclaimerLinkFpti","text","customBackLinkText","_ref$backLinkFpti","backToBusinessProfileText","onKeyDown","invokeOnSpaceOrEnter","_ArrowLeftIcon","EditProfilePage","_useProfileDetails","useProfileDetails","isFetching","editPageIsLoading","keys","formattedProfileDetails","updateUneditedFormattedData","useCallback","panels","panel","_Container","CenteredLoadingSpinner","height","_Alert","PanelSliderWithProgressSteppers","HeaderSection","userCanCreateProfile","userCanPreviewProfile","shouldShow","profilePublished","mainPageHeaderText","editProfileText","previewProfileText","shareProfileText","unpublishedProfileWarningText","secondary","isShareSheetOpen","setIsShareSheetOpen","handleShareClick","handlePreviewClick","updateIsPreviewing","handleEditClick","FullWidthContainer","customBackgroundColor","whiteColor","_Col","HeadingText","iconComponent","_EditIcon","fullWidthOnMobile","_ShareIcon","_PreviewIcon","_IconButton","buttonType","svgIconComponent","ShareProfileSheetContainer","isOwnerPhoto","getBusinessProfileContent","getModularSellerViewContent","generalProfileUpdatedToast","imageUpdateErrorToast","saveEdits","useSaveChanges","successMessage","isFinishedValidating","successFpti","errorFpti","success","onDelete","setToastErrorMessage","setErrorMessage","photoUploadedFlag","uploadFpti","cropFpti","saveFpti","selectNewPhotoFpti","changeFpti","CLICKABLE_ROW_TEST_ID","ClickableRow","icon","xs","_Icon","color","_CaptionText","style","lightGrayColor","_ChevronRightIcon","useBizInfoRow","navigate","useNavigate","pathname","useLocation","contactAndLocationLabel","_useBusinessProfileRe3","displayedAddress","contactInfoString","join","useFormattedAddresses","BusinessInfoSection","clickableRows","map","index","key","_Divider","PREVIEW_PROFILE_SCREEN_SHOWN_FPTI","PREVIEW_PROFILE_BACK_LINK_CLICK_FPTI","PREVIEW_PROFILE_SHARE_BUTTON_CLICK_FPTI","OwnerProfilePage","handle","useParams","currentPage","setCurrentPage","previewProfileSubheaderText","previewChangesSubheaderText","continueEditingText","backToEditingText","biz_info_page","saveSuccessFpti","biz_description_page","currentSuccessToastMessage","isPreviewing","RegExp","test","stateToPreview","PreviewProfilePage","impressionToTrack","CustomFooterButtons","ButtonWithState","children","canProceed","shouldShowSpinner","updateClickStatus","props","isMutating","useMutationCheck","buttonClicked","setButtonClicked","btnState","previewWithExistingErrorToastText","isClicked","setIsClicked","_ref$stateToPreview","userCanEdit","address","emailAddress","phoneNumber","website","CardFooterButtons","handleShareProfileClick","primary","shareLinkFpti","failedUpdateErrorMessage","onError","isValidating","getModularContent","saveButtonText","generalProfileUpdateErrorMessage","unableToSaveWhenErrorsText","saveStatus","handleSave","BUSINESS_PROFILE_PAGE_SHOWN_TO_BUYER","BUSINESS_PROFILE_BUYER_VIEW_SHARE_CLICK_FPTI","ViewProfilePage","canEdit","flowData","BUYER_CLICKED_PAY_BUTTON_FPTI","BusinessProfilePage","_profileData$profileP","serverData","userCanViewModularRefactor","isOwnerEditing","setIsOwnerEditing","areValuesEdited","isEditing","_useProfileData","useProfileData","updateProfileData","userLoggedIn","_getEventNameAndType","getEventNameAndType","fptiMetadata","eventType","recordImpression","payerId","consumerId","window","onbeforeunload","preventDefault","returnValue","profileNotFound","isNotFoundError","ErrorPage","profileDataNotFound","reloadPage","Layout","closeButton","___CSS_LOADER_EXPORT___","module","id","locals"],"sourceRoot":""}