{"version":3,"file":"666.chunk.js","mappings":"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","sources":["webpack://oritopareaapp/../../src/event.ts","webpack://oritopareaapp/../../../src/constants/app.ts","webpack://oritopareaapp/../../../src/contexts/loginContext.ts","webpack://oritopareaapp/../../../src/utils/goToPage.ts","webpack://oritopareaapp/../../../../src/components/LoginProvider/LoginProvider.tsx","webpack://oritopareaapp/../../../src/utils/openLoginSidebar.ts","webpack://oritopareaapp/../../../src/constants/defaultTranslations.ts","webpack://oritopareaapp/../../../src/constants/defaultTranslationsWithNamespaces.ts","webpack://oritopareaapp/../../../src/models/ReferralType.ts","webpack://oritopareaapp/../../../../src/contexts/PersonalBeautyStoreProvider/useCookieStoreInfo.ts","webpack://oritopareaapp/../../../../src/context/appPromoContext/utils.ts","webpack://oritopareaapp/../../../../src/context/appPromoContext/appPromoContext.tsx","webpack://oritopareaapp/../../../../../src/components/AppPromoBanner/components/styles.ts","webpack://oritopareaapp/../../../../../src/components/AppPromoBanner/components/AppInfo.tsx","webpack://oritopareaapp/../../../../src/components/AppPromoBanner/constants.ts","webpack://oritopareaapp/../../../../src/components/AppPromoBanner/styles.ts","webpack://oritopareaapp/../../../../src/components/AppPromoBanner/AppPromoBanner.tsx","webpack://oritopareaapp/../../../src/constants/settings.ts","webpack://oritopareaapp/../../../src/queries/benefitBannerQuery.ts","webpack://oritopareaapp/../../../src/utils/vipOrderUrls.ts","webpack://oritopareaapp/../../../src/context/consultantContext.tsx","webpack://oritopareaapp/../../../../src/context/topAreaBannerContext/utils.ts","webpack://oritopareaapp/../../../../src/context/topAreaBannerContext/topAreaBannerContext.tsx","webpack://oritopareaapp/../../../src/utils/getMobileCssVariable.ts","webpack://oritopareaapp/../../../src/components/constants.ts","webpack://oritopareaapp/../../../src/components/TopAreaBlock.tsx","webpack://oritopareaapp/../../../../src/context/navigation/activeMenuContext.tsx","webpack://oritopareaapp/../../../../src/components/Account/AccountFlyout.tsx","webpack://oritopareaapp/../../../../src/components/Account/constants.ts","webpack://oritopareaapp/../../../src/hooks/useCustomerInitials.ts","webpack://oritopareaapp/../../../src/hooks/useLazyPersonalMenu.tsx","webpack://oritopareaapp/../../../src/models/BurgerMenuTabNames.ts","webpack://oritopareaapp/../../../src/hooks/useHover.ts","webpack://oritopareaapp/../../../src/components/UserSection.tsx","webpack://oritopareaapp/../../../../src/components/BurgerMenu/BurgerMenuTab.tsx","webpack://oritopareaapp/../../../../src/components/BurgerMenu/BurgerMenu.tsx","webpack://oritopareaapp/../../../../src/context/navigation/joinTilesContext.ts","webpack://oritopareaapp/../../../../src/components/Join/JoinTileImage.tsx","webpack://oritopareaapp/../../../../src/components/Join/JoinMenu.tsx","webpack://oritopareaapp/../../../../src/components/Join/constants.ts","webpack://oritopareaapp/../../../src/models/TooltipTestIds.ts","webpack://oritopareaapp/../../../src/components/FormattedMessage.tsx","webpack://oritopareaapp/../../../../src/components/Tooltip/Tooltip.tsx","webpack://oritopareaapp/../../../src/utils/formatUserName.ts","webpack://oritopareaapp/../../../src/queries/inviteFriendQuery.ts","webpack://oritopareaapp/../../../src/contexts/ConfigurationProvider.ts","webpack://oritopareaapp/../../../../src/contexts/PersonalBeautyStoreProvider/useInviteFriendData.ts","webpack://oritopareaapp/../../../src/hooks/useSponsorPersonalBeautyStoreInfo.ts","webpack://oritopareaapp/../../../src/queries/beautyStoreQuery.ts","webpack://oritopareaapp/../../../../src/contexts/PersonalBeautyStoreProvider/usePersonalBeautyStoreData.ts","webpack://oritopareaapp/../../../../src/contexts/PersonalBeautyStoreProvider/usePersonalBeautyStoreUserInfo.ts","webpack://oritopareaapp/../../../src/containers/TooltipContainer.tsx","webpack://oritopareaapp/../../../src/utils/dispatchToggleMenu.ts","webpack://oritopareaapp/../../../src/hooks/useToggleMenu.ts","webpack://oritopareaapp/../../../../src/components/BurgerMenu/BurgerMenuIcon.tsx","webpack://oritopareaapp/../../../../src/components/BurgerMenu/BurgerMenuToggle.tsx","webpack://oritopareaapp/../../../src/components/OriflameLogo.tsx","webpack://oritopareaapp/../../../src/components/LeftActionsSection.tsx","webpack://oritopareaapp/../../../src/components/FavoritesHeartIcon.tsx","webpack://oritopareaapp/../../../../src/context/navigation/labelsContext.tsx","webpack://oritopareaapp/../../../../src/components/Join/JoinIcon.tsx","webpack://oritopareaapp/../../../src/components/NotificationBellIcon.tsx","webpack://oritopareaapp/../../../../src/components/SearchIcon/styles.ts","webpack://oritopareaapp/../../../../src/components/SearchIcon/SearchIcon.tsx","webpack://oritopareaapp/../../../src/hooks/useSearchInputPlaceholder.ts","webpack://oritopareaapp/../../../../src/components/SearchIcon/constants.ts","webpack://oritopareaapp/../../../../src/components/SearchInput/styles.ts","webpack://oritopareaapp/../../../../../../src/components/TopAreaBanner/components/TopAreaBannerContent/goToPage.ts","webpack://oritopareaapp/../../../../src/components/SearchInput/utils.ts","webpack://oritopareaapp/../../../../src/components/SearchInput/SearchInput.tsx","webpack://oritopareaapp/../../../../src/components/SearchInput/constants.ts","webpack://oritopareaapp/../../../../src/components/ShoppingBagIcon/constants.ts","webpack://oritopareaapp/../../../../src/components/ShoppingBagIcon/ShoppingBagCounter.tsx","webpack://oritopareaapp/../../../../src/components/ShoppingBagIcon/ShoppingBagIcon.tsx","webpack://oritopareaapp/../../../src/components/RightActionsSection.tsx","webpack://oritopareaapp/../../../src/utils/getSearchTime.ts","webpack://oritopareaapp/../../../src/utils/analytics.ts","webpack://oritopareaapp/../../../../src/components/common/ProductImage.tsx","webpack://oritopareaapp/../../../../src/components/common/ProductTile.tsx","webpack://oritopareaapp/../../../../src/components/SearchResults/PopularProducts.tsx","webpack://oritopareaapp/../../../../src/components/SearchResults/constants.ts","webpack://oritopareaapp/../../../../src/components/SearchResults/PopularSearchQueries.tsx","webpack://oritopareaapp/../../../../src/components/SearchResults/styles.ts","webpack://oritopareaapp/../../../../src/components/SearchResults/SearchResults.tsx","webpack://oritopareaapp/../../../../src/components/TopAreaBanner/styles.ts","webpack://oritopareaapp/../../../../src/components/TopAreaBanner/constants.ts","webpack://oritopareaapp/../../../../../../src/components/TopAreaBanner/components/TopAreaBannerSkeleton/TopAreaBannerSkeleton.tsx","webpack://oritopareaapp/../../../../../../src/components/TopAreaBanner/components/TopAreaBannerSkeleton/constants.ts","webpack://oritopareaapp/../../../../src/components/OrderOnBehalf/ChangeConsultantForm.tsx","webpack://oritopareaapp/../../../../src/components/OrderOnBehalf/constants.ts","webpack://oritopareaapp/../../../../src/components/OrderOnBehalf/styles.ts","webpack://oritopareaapp/../../../../src/components/OrderOnBehalf/OrderOnBehalfDialog.tsx","webpack://oritopareaapp/../../../../src/components/OrderOnBehalf/OrderOnBehalf.tsx","webpack://oritopareaapp/../../../../src/models/graphql-types/graphql.ts","webpack://oritopareaapp/../../../../../../src/components/TopAreaBanner/components/Contact/styles.ts","webpack://oritopareaapp/../../../../../../src/components/TopAreaBanner/components/Contact/Contact.tsx","webpack://oritopareaapp/../../../../../../src/components/TopAreaBanner/components/TopAreaBannerDialog/styles.ts","webpack://oritopareaapp/../../../../../../src/components/TopAreaBanner/components/TopAreaBannerDialog/TopAreaBannerDialog.tsx","webpack://oritopareaapp/../../../../../../src/components/TopAreaBanner/components/TopAreaBannerDialog/constants.ts","webpack://oritopareaapp/../../../../../../src/components/TopAreaBanner/components/TopAreaBannerContent/styles.ts","webpack://oritopareaapp/../../../../../../src/components/TopAreaBanner/components/TopAreaBannerContent/TopAreaBannerContent.tsx","webpack://oritopareaapp/../../../../src/components/TopAreaBanner/TopAreaBanner.tsx","webpack://oritopareaapp/../../../../src/components/TopArea/styles.ts","webpack://oritopareaapp/../../../../src/components/TopArea/TopArea.tsx","webpack://oritopareaapp/../../../../src/components/TopArea/constants.ts","webpack://oritopareaapp/../../../src/hooks/useLoadAbTastyScript.ts","webpack://oritopareaapp/../../../src/hooks/useManagedHeight.ts","webpack://oritopareaapp/../../../src/containers/Content.tsx","webpack://oritopareaapp/../../../src/hooks/useClickSignInButtonSupportCenter.ts","webpack://oritopareaapp/../../../src/hooks/useReturnUrl.ts","webpack://oritopareaapp/../../../src/hooks/useToggleMenuHandler.ts","webpack://oritopareaapp/../../../src/hooks/usePersonalMenuPortal.tsx","webpack://oritopareaapp/../../../src/constants/parameters.ts","webpack://oritopareaapp/../../../src/containers/Context.ts","webpack://oritopareaapp/../../../src/utils/composeProviders.tsx","webpack://oritopareaapp/../../../src/containers/ApiProvider.tsx","webpack://oritopareaapp/../../../src/hooks/useMobileOs.ts","webpack://oritopareaapp/../../../src/hooks/useWasTooltipShown.ts","webpack://oritopareaapp/../../../src/hooks/useSessionStorage.ts","webpack://oritopareaapp/../../../../src/contexts/PersonalBeautyStoreProvider/PersonalBeautyStoreProvider.tsx","webpack://oritopareaapp/../../../src/utils/updateQueryParameters.ts","webpack://oritopareaapp/../../../src/utils/removeQueryParameter.ts","webpack://oritopareaapp/../../../src/utils/ensureQueryParameter.ts","webpack://oritopareaapp/../../../../src/hooks/useCookieToUrl/useCookieToUrl.ts","webpack://oritopareaapp/../../../src/containers/PbsApp.tsx","webpack://oritopareaapp/../../../src/containers/Pbs.tsx","webpack://oritopareaapp/../../../src/containers/TopArea.tsx","webpack://oritopareaapp/../../packages/top-area/src/App.css?eeac","webpack://oritopareaapp/./src/appRender.tsx","webpack://oritopareaapp/../../../../src/components/MenuItem/MenuItemPersonalLinks.tsx","webpack://oritopareaapp/../../../src/models/LiveStreamingStateWrapTestIds.ts","webpack://oritopareaapp/../../../../../src/components/common/LiveStreamingStateWrap/LiveStreamingStateWrap.tsx","webpack://oritopareaapp/../../../src/constants/index.ts","webpack://oritopareaapp/../../../src/containers/ErrorBoundary.ts","webpack://oritopareaapp/../../../src/containers/ComponentWrapper.tsx","webpack://oritopareaapp/../../../../src/contexts/PersonalBeautyStoreProvider/personalBeautyStoreContext.ts","webpack://oritopareaapp/../../../../src/contexts/PersonalBeautyStoreProvider/usePersonalBeautyStore.ts","webpack://oritopareaapp/../../../src/hooks/useTranslations.ts","webpack://oritopareaapp/../../../src/models/LiveStreamingStates.ts","webpack://oritopareaapp/../../../src/models/MenuItemTestIds.ts","webpack://oritopareaapp/../../../src/models/PbsCookieNames.ts","webpack://oritopareaapp/../../../src/models/TranslationKey.ts","webpack://oritopareaapp/../../../src/utils/getContactByType.ts","webpack://oritopareaapp/../../../src/utils/getLiveStreamingStateByVideoConfig.ts","webpack://oritopareaapp/../../../src/utils/replacePlaceholdersInUrl.ts","webpack://oritopareaapp/../../../src/models/MenuContentTestIds.ts","webpack://oritopareaapp/../../../../src/components/MenuContent/MenuContent.tsx","webpack://oritopareaapp/../../../src/containers/MenuContentContainer.tsx","webpack://oritopareaapp/../../../../../src/components/Skeleton/Mobile/SkeletonSubCategoryMobile.tsx","webpack://oritopareaapp/../../../../../src/components/Skeleton/Desktop/SkeletonSubCategoryDesktop.tsx","webpack://oritopareaapp/../../../src/utils/formatValidity.ts","webpack://oritopareaapp/../../../../../src/components/Skeleton/Mobile/SkeletonCatalogueMobile.tsx","webpack://oritopareaapp/../../../../../src/components/Skeleton/Desktop/SkeletonCatalogueDesktop.tsx","webpack://oritopareaapp/../../../../../src/components/BurgerMenu/Catalogues/CatalogueImage.tsx","webpack://oritopareaapp/../../../../../src/components/BurgerMenu/Catalogues/types.ts","webpack://oritopareaapp/../../../../../src/components/BurgerMenu/Catalogues/styles.ts","webpack://oritopareaapp/../../../../../src/components/BurgerMenu/Catalogues/CurrentCatalogue.tsx","webpack://oritopareaapp/../../../../../src/components/BurgerMenu/Catalogues/NextCatalogue.tsx","webpack://oritopareaapp/../../../../../src/components/BurgerMenu/Catalogues/Catalogues.tsx","webpack://oritopareaapp/../../../../../src/components/BurgerMenu/Catalogues/constant.ts","webpack://oritopareaapp/../../../../src/components/BurgerMenu/BurgerMenuContent.tsx","webpack://oritopareaapp/../../../../../src/components/Skeleton/Mobile/SkeletonMainCategoryMobile.tsx","webpack://oritopareaapp/../../../../../src/components/Skeleton/Desktop/SkeletonMainCategoryDesktop.tsx","webpack://oritopareaapp/../../../../../src/components/BurgerMenu/BurgerMenuLinks/BurgerMenuLinks.tsx","webpack://oritopareaapp/../../../../src/components/BurgerMenu/constants.ts","webpack://oritopareaapp/../../../../src/components/BurgerMenu/utils.ts","webpack://oritopareaapp/../../../../../src/components/Skeleton/Desktop/constants.ts","webpack://oritopareaapp/../../../../../src/components/Skeleton/Mobile/constants.ts","webpack://oritopareaapp/../../../../src/components/common/constants.ts","webpack://oritopareaapp/../../../src/constants/analytics.ts","webpack://oritopareaapp/../../../src/constants/tenants.ts","webpack://oritopareaapp/../../../src/context/cataloguesContext.tsx","webpack://oritopareaapp/../../../src/context/configurationContext.ts","webpack://oritopareaapp/../../../../src/context/navigation/aboutTilesContext.ts","webpack://oritopareaapp/../../../../src/context/navigation/activeLinkContext.tsx","webpack://oritopareaapp/../../../../src/context/navigation/inspirationTilesContext.ts","webpack://oritopareaapp/../../../../../src/context/navigation/internal/createNavigationItemsContext.tsx","webpack://oritopareaapp/../../../../src/context/navigation/pbsContentContext.tsx","webpack://oritopareaapp/../../../../src/context/navigation/searchInputContext.tsx","webpack://oritopareaapp/../../../../src/context/navigation/shopSectionContext.ts","webpack://oritopareaapp/../../../src/hooks/useFetchNavigationItems.ts","webpack://oritopareaapp/../../../src/hooks/useIsMarketCN.ts","webpack://oritopareaapp/../../../src/hooks/useIsMobile.ts","webpack://oritopareaapp/../../../src/models/FavoritesLink.ts","webpack://oritopareaapp/../../../src/utils/boldMatchedText.tsx","webpack://oritopareaapp/../../packages/top-area/src/App.css"],"sourcesContent":["type EventName = typeof Name;\n\nexport const Name = 'open-login';\nexport const OpenLogin: EventName = Name;\n\nexport interface Data {}\n\nexport interface Event extends CustomEvent {\n /** Name of event */\n type: EventName;\n}\n\nexport default Event;\n","export const SSO_IDENTITY_LOGIN_PATH = '/ssoidentity/Login';\nexport const SSO_IDENTITY_AD_LOGIN_PATH = `${SSO_IDENTITY_LOGIN_PATH}?ssoLoginType=ActiveDirectory`;\nexport const AD_LOGIN_PATH = '/system/UI/SsoLogin/LoginWithExternalProvider?externalProviderType=ActiveDirectory';\n","import { createContext, useContext } from 'react';\nimport type { MouseEvent } from 'react';\n\nexport interface LoginContext {\n doLogin: (event?: MouseEvent) => void;\n}\n\nexport const loginContext = createContext(undefined);\n\nexport const { Provider } = loginContext;\n\nexport const useLogin = () => {\n const context = useContext(loginContext);\n\n if (context === undefined) {\n throw new Error('Value for `loginContext` must be set.');\n }\n\n return context;\n};\n","/* istanbul ignore file */\nexport const goToPage = (page: string) => (window.location.href = page);\n","import { Name } from '@ori-events/open-login';\nimport type { MouseEvent } from 'react';\nimport { useCallback, useEffect, useMemo } from 'react';\n\nimport { AD_LOGIN_PATH, SSO_IDENTITY_AD_LOGIN_PATH, SSO_IDENTITY_LOGIN_PATH } from '../../constants';\nimport { Provider } from '../../contexts';\nimport { goToPage, openLoginSidebar } from '../../utils';\nimport type { LoginProviderProps } from './types';\n\n/**\n *\n */\nexport const LoginProvider = ({ children, isSsoIdentityLogin }: LoginProviderProps) => {\n const adLogin = useMemo(\n () => (isSsoIdentityLogin ? SSO_IDENTITY_AD_LOGIN_PATH : AD_LOGIN_PATH),\n [isSsoIdentityLogin],\n );\n const doLogin = useCallback(\n (event?: MouseEvent) => {\n // Ctrl or Cmd key is pressed, redirect to AD login\n if (Boolean(event?.ctrlKey) || event?.metaKey) {\n goToPage(adLogin);\n\n return;\n }\n // UseSsoIdentityLogin feature is enabled, redirect to SSO_IDENTITY_LOGIN_PATH\n if (isSsoIdentityLogin) {\n goToPage(SSO_IDENTITY_LOGIN_PATH);\n\n return;\n }\n // UseSsoIdentityLogin feature is disabled, open login sidebar\n openLoginSidebar();\n },\n [adLogin, isSsoIdentityLogin],\n );\n const onLogin = useCallback(() => {\n doLogin();\n }, [doLogin]);\n\n useEffect(() => {\n window.addEventListener(Name, onLogin);\n\n return () => {\n window.removeEventListener(Name, onLogin);\n };\n }, [onLogin]);\n\n return ({ doLogin }), [doLogin])}>{children};\n};\n","import * as ToggleMenuFlyoutEvent from '@ori-events/toggle-menu-flyout';\n\nexport const openLoginSidebar = () => {\n window.dispatchEvent(\n new CustomEvent(ToggleMenuFlyoutEvent.Name, {\n detail: { menuType: ToggleMenuFlyoutEvent.MenuTypes.AccountSideMenu },\n }),\n );\n};\n","/* istanbul ignore file */\n\n/**\n * DO NOT EDIT!\n * This file was autogenerated by npm script `localizations-codegen`.\n * Changes may cause incorrect behavior and will be lost when the file is regenerated.\n *\n * Run `npx localizations-codegen` to regenerate.\n */\nimport type { TranslationKey } from '../models/TranslationKey';\n\nexport type DefaultTranslations = Record;\n\nexport const defaultTranslations: DefaultTranslations = {\n allBrands: 'All brands',\n articles: 'Articles',\n brands: 'Brands',\n callToActionCatalogueText: 'Call to action catalogue text',\n change: 'Change',\n failedToSubmit: 'Failed to submit',\n gotIt: 'Got it',\n loading: 'Loading',\n logIn: 'Log in',\n loggedInAs: 'Logged in as',\n menu: 'Menu',\n myAccount: 'My account',\n myFavoriteProducts: 'My favorite products',\n nextCatalogue: 'Next catalogue',\n noOptions: 'No options',\n open: 'Open',\n other: 'Other',\n popularProducts: 'Popular products',\n popularProductsInThisSearchQuery: 'Popular products in this search query',\n popularSearchQueries: 'Popular search queries',\n products: 'Products',\n register: 'Register',\n search: 'Search',\n searchDesktop: 'Search 60+ brands, 1000+ beauty and nutrition products',\n seeAll: 'See all',\n seeAllCatalogues: 'See all catalogues',\n seeAllResultsFor: 'See all results for',\n shopFor: 'Shop for',\n shoppingBag: 'Shopping bag',\n signIn: 'Sign in',\n topAreaBannerReferralMessage: 'Click to see more info!',\n view: 'View',\n};\n\nexport const translationsNamespace = 'top-area';\n","import {\n defaultTranslations as pbsDefaultTranslations,\n translationsNamespace as pbsTranslationsNamespace,\n} from '@ori/personal-beauty-store';\n\nimport { defaultTranslations, translationsNamespace } from './defaultTranslations';\n\n/**\n * Combined translations with namespaces that top-area uses. Includes top-area and PBS namespaces\n */\nexport const defaultTranslationsWithNamespaces = {\n [translationsNamespace]: defaultTranslations,\n [pbsTranslationsNamespace]: pbsDefaultTranslations,\n};\n","export enum ReferralType {\n None = 'None',\n PBS = 'PBS',\n ECREF = 'ECREF',\n}\n","import Cookies from 'js-cookie';\nimport { useEffect, useState } from 'react';\n\nimport { PbsCookieNames, ReferralType } from '../../models';\nimport type { CookieStoreInfo } from '../../types';\n\nexport const useCookieStoreInfo = () => {\n const [cookieInfo, setCookieInfo] = useState({\n type: ReferralType.None,\n productListType: 'Personal',\n });\n\n useEffect(() => {\n const pbsOwnerCookie = Cookies.get(PbsCookieNames.PBS_OWNER);\n const ecrefCookie = Cookies.get(PbsCookieNames.ECREF);\n\n if (pbsOwnerCookie) {\n setCookieInfo({\n owner: pbsOwnerCookie,\n productListType: 'Personal',\n type: ReferralType.PBS,\n });\n\n return;\n }\n\n if (ecrefCookie) {\n setCookieInfo({\n owner: ecrefCookie,\n productListType: 'Personal',\n type: ReferralType.ECREF,\n });\n }\n }, []);\n\n return cookieInfo;\n};\n","import type { StaticMobileAppsSmartAppBannerDto } from '@ori/static-api-client-react';\n\nimport type { UseMobileOs } from '../../hooks/useMobileOs';\n\nexport const APP_PROMO_LOCAL_STORAGE_KEY = 'hideAppPromoBannerUntil';\n\nexport const getHideAppPromoBannerUntilDate = () => {\n const hideAppPromoBannerUntilFromLocalStorage = localStorage.getItem(APP_PROMO_LOCAL_STORAGE_KEY);\n const hideAppPromoBannerUntil = hideAppPromoBannerUntilFromLocalStorage\n ? new Date(hideAppPromoBannerUntilFromLocalStorage)\n : null;\n\n return hideAppPromoBannerUntil;\n};\n\nexport const setHideAppPromoBannerUntilDate = () => {\n const dateNow = new Date();\n dateNow.setMonth(dateNow.getMonth() + 1);\n localStorage.setItem(APP_PROMO_LOCAL_STORAGE_KEY, dateNow.toISOString());\n};\n\ninterface IsAppPromoBannerVisibleParams extends UseMobileOs {\n data: StaticMobileAppsSmartAppBannerDto | undefined;\n}\n\nexport const isAppPromoBannerVisible = ({ data, userOs }: IsAppPromoBannerVisibleParams) => {\n const hideAppPromoBannerUntil = getHideAppPromoBannerUntilDate();\n const dateNow = new Date();\n\n return Boolean(\n userOs &&\n (!hideAppPromoBannerUntil ||\n hideAppPromoBannerUntil.toString() === 'Invalid Date' ||\n hideAppPromoBannerUntil < dateNow) &&\n data?.appName &&\n data.bannerLink,\n );\n};\n","import { useCookieStoreInfo } from '@ori/personal-beauty-store';\nimport { useGetTenantMobileAppSmartAppBanner } from '@ori/static-api-client-react';\nimport type { FC, PropsWithChildren } from 'react';\nimport { createContext, useCallback, useContext, useEffect, useLayoutEffect, useMemo, useState } from 'react';\n\nimport { useMobileOs } from '../../hooks/useMobileOs';\nimport { useAppConfig } from '../configurationContext';\nimport type { AppPromoContext } from './types';\nimport { isAppPromoBannerVisible, setHideAppPromoBannerUntilDate } from './utils';\n\nexport const appPromoContext = createContext({});\n\nconst { Provider } = appPromoContext;\n\nexport const AppPromoProvider: FC = ({ children }) => {\n const [visible, setVisible] = useState(false);\n const [pagePath, setPagePath] = useState();\n const { currentLanguage, tenant } = useAppConfig();\n const { owner: store } = useCookieStoreInfo();\n const { userOs } = useMobileOs();\n useLayoutEffect(() => {\n setPagePath(window.location.pathname);\n }, []);\n const { data } = useGetTenantMobileAppSmartAppBanner(\n tenant,\n userOs ?? 'Android',\n {\n lang: currentLanguage,\n pagePath: pagePath ?? '',\n storeName: store ?? undefined,\n },\n {\n swr: {\n enabled: Boolean(userOs && pagePath),\n revalidateIfStale: false,\n revalidateOnFocus: false,\n revalidateOnReconnect: false,\n shouldRetryOnError: false,\n },\n },\n );\n useEffect(() => {\n setVisible(isAppPromoBannerVisible({ data, userOs }));\n }, [data, userOs]);\n const onClose = useCallback(() => {\n setVisible(false);\n setHideAppPromoBannerUntilDate();\n }, []);\n const value = useMemo(\n () => ({\n appDescription: data?.appDescription,\n appIcon: data?.appIcon,\n appName: data?.appName,\n bannerLink: data?.bannerLink,\n onClose,\n visible,\n }),\n [data?.appDescription, data?.appIcon, data?.appName, data?.bannerLink, onClose, visible],\n );\n\n return {children};\n};\n\nexport const useAppPromo = () => useContext(appPromoContext);\n","import { Typography, styled } from '@ori-ui/mui';\n\nexport const AppInfoRoot = styled('div')(({ theme }) => ({\n display: 'flex',\n gap: theme.spacing(2),\n}));\n\nexport const AppIcon = styled('img')({\n height: 60,\n width: 60,\n});\n\nexport const AppNameAndDescription = styled('div')({\n alignItems: 'flex-start',\n alignSelf: 'center',\n display: 'flex',\n flexDirection: 'column',\n gap: 2,\n});\n\nexport const AppName = styled(Typography)(({ theme }) => ({\n color: theme.palette.text.primary,\n display: '-webkit-box',\n fontSize: theme.typography.pxToRem(13),\n fontWeight: theme.typography.fontWeightBold,\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n WebkitBoxOrient: 'vertical',\n WebkitLineClamp: 1,\n}));\n\nexport const AppDescription = styled(Typography)({\n display: '-webkit-box',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n WebkitBoxOrient: 'vertical',\n WebkitLineClamp: 2,\n});\n","import { ImagePlaceholder } from '@ori/presentation-components';\nimport useTestId from '@ori/testid-generator';\nimport type { FC } from 'react';\n\nimport { APP_PROMO_BANNER_ICON } from '../constants';\nimport type { AppInfoProps } from '../types';\nimport { AppDescription, AppIcon, AppInfoRoot, AppName, AppNameAndDescription } from './styles';\n\nexport const AppInfo: FC = ({ appDescription, appIcon, appName }) => {\n const { getTestId } = useTestId();\n\n return (\n \n {appIcon ? (\n \n ) : (\n \n )}\n \n {appName}\n {appDescription}\n \n \n );\n};\n","export const APP_PROMO_BANNER = 'app-promo-banner';\nexport const APP_PROMO_BANNER_CLOSE = 'app-promo-banner-close';\nexport const APP_PROMO_BANNER_OPEN = 'app-promo-banner-open';\nexport const APP_PROMO_BANNER_ICON = 'app-promo-banner-icon';\nexport const APP_PROMO_BANNER_HEIGHT = 82;\n","import { SHADOW_LEVEL1, SHADOW_LEVEL3, Typography, styled } from '@ori-ui/mui';\nimport { shouldForwardProp } from '@ori/presentation-utils';\n\nimport { APP_PROMO_BANNER_HEIGHT } from './constants';\n\nexport const Root = styled('div')(({ theme }) => ({\n bottom: 0,\n left: 0,\n position: 'fixed',\n width: '100%',\n // Web messenger has z-index 100, so we need to set higher z-index for app promo banner.\n zIndex: 101,\n}));\n\nexport const Inner = styled('a', { shouldForwardProp: shouldForwardProp() })(({ theme }) => ({\n alignItems: 'center',\n backgroundColor: theme.palette.common.white,\n borderRadius: theme.spacing(2),\n boxShadow: SHADOW_LEVEL3,\n color: theme.palette.text.primary,\n display: 'flex',\n gap: theme.spacing(2),\n height: APP_PROMO_BANNER_HEIGHT,\n margin: theme.spacing(2),\n paddingRight: theme.spacing(1),\n textDecoration: 'none',\n '&:hover, &:active': {\n boxShadow: SHADOW_LEVEL1,\n color: theme.palette.text.primary,\n transition: theme.transitions.create(['box-shadows'], {\n duration: theme.transitions.duration.short,\n }),\n },\n}));\n\nexport const CloseButton = styled('div')(({ theme }) => ({\n alignItems: 'center',\n display: 'flex',\n height: '100%',\n justifyContent: 'center',\n padding: theme.spacing(2, 0),\n width: theme.spacing(7),\n}));\n\nexport const OpenButton = styled(Typography)(({ theme }) => ({\n marginLeft: 'auto',\n padding: theme.spacing(3, 6),\n}));\n","import { Clear } from '@ori-ui/icons';\nimport useTestId from '@ori/testid-generator';\nimport { useCallback } from 'react';\nimport type { MouseEventHandler, FC } from 'react';\n\nimport { useAppPromo } from '../../context';\nimport { useTranslations } from '../../hooks/useTranslations';\nimport { AppInfo } from './components';\nimport { APP_PROMO_BANNER, APP_PROMO_BANNER_CLOSE, APP_PROMO_BANNER_OPEN } from './constants';\nimport { CloseButton, Inner, OpenButton, Root } from './styles';\n\nexport const AppPromoBanner: FC = () => {\n const { translations } = useTranslations();\n const { appDescription, appIcon, appName, bannerLink, className, visible, onClose } = useAppPromo();\n const { getTestId } = useTestId();\n\n const onCloseButtonClick = useCallback>(\n (event) => {\n event.preventDefault();\n onClose?.();\n },\n [onClose],\n );\n\n if (!visible) {\n return null;\n }\n\n return (\n \n \n \n \n \n \n \n {translations.open}\n \n \n \n );\n};\n","export const SEARCH_THROTTLE_TIME = 1000 * 60 * 5;\nexport const SEARCH_INPUT_HEIGHT = 68;\nexport const TOP_AREA_BORDER_BOTTOM = 2;\n\nexport const TOP_AREA_BANNER_HEIGHT = 34;\nexport const TOP_NAV_HEIGHT_CSS_VARIABLE = '--top-nav-height';\nexport const TOP_NAV_INNER_HEIGHT_CSS_VARIABLE = '--top-nav-inner-height';\n// Must have the same value as `--top-nav-height-animation` in `.top-nav` in `packages/top-area/src/App.css`\nexport const CSS_HEIGHT_ANIMATION = 'var(--top-nav-height-animation, 0.3s ease-in-out)';\n\n// Must have the same value as `--top-nav-height` and `--top-nav-inner-height` in `.top-nav` in `packages/top-area/src/App.css`\nexport const DESKTOP_HEIGHT = 80;\nexport const CSS_DESKTOP_HEIGHT = `var(${TOP_NAV_HEIGHT_CSS_VARIABLE}, ${DESKTOP_HEIGHT}px)`;\nexport const CSS_DESKTOP_INNER_HEIGHT = `var(${TOP_NAV_INNER_HEIGHT_CSS_VARIABLE}, ${DESKTOP_HEIGHT}px)`;\n\n// Must have the same value as ` --top-nav-height` and `--top-nav-inner-height` in `.top-nav--is-shrunk:not(.top-nav--is-mobile)` in `packages/top-area/src/App.css`\nexport const DESKTOP_SHRUNK_HEIGHT = 60;\n\n// Must have the same value as `--top-nav-height` in `.top-nav--with-top-area-banner` in `packages/top-area/src/App.css`\nexport const DESKTOP_WITH_TOP_AREA_BANNER_HEIGHT = DESKTOP_HEIGHT + TOP_AREA_BANNER_HEIGHT;\nexport const CSS_DESKTOP_WITH_TOP_AREA_BANNER_HEIGHT = `var(${TOP_NAV_HEIGHT_CSS_VARIABLE}, ${DESKTOP_WITH_TOP_AREA_BANNER_HEIGHT}px)`;\nexport const CSS_DESKTOP_WITH_TOP_AREA_BANNER_INNER_HEIGHT = `var(${TOP_NAV_INNER_HEIGHT_CSS_VARIABLE}, ${DESKTOP_HEIGHT}px)`;\n\n// Must have the same value as ` --top-nav-height` in `top-nav--with-top-area-banner.top-nav--is-shrunk:not(.top-nav--is-mobile)` in `packages/top-area/src/App.css`\nexport const DESKTOP_SHRUNK_WITH_TOP_AREA_BANNER_HEIGHT = DESKTOP_SHRUNK_HEIGHT + TOP_AREA_BANNER_HEIGHT;\n\n// Must have the same value as ` --top-nav-height` and `--top-nav-inner-height` in `.top-nav--is-mobile` in `packages/top-area/src/App.css`\nexport const MOBILE_HEIGHT = 56;\nexport const MOBILE_INNER_HEIGHT = 56;\nexport const CSS_MOBILE_HEIGHT = `var(${TOP_NAV_HEIGHT_CSS_VARIABLE}, ${MOBILE_HEIGHT}px)`;\nexport const CSS_MOBILE_INNER_HEIGHT = `var(${TOP_NAV_INNER_HEIGHT_CSS_VARIABLE}, ${MOBILE_INNER_HEIGHT}px)`;\n\n// Must have the same value as ` --top-nav-height` in `.top-nav--with-top-area-banner.top-nav--is-mobile` in `packages/top-area/src/App.css`\nexport const MOBILE_WITH_TOP_AREA_BANNER_HEIGHT = MOBILE_HEIGHT + TOP_AREA_BANNER_HEIGHT;\nexport const MOBILE_WITH_TOP_AREA_BANNER_INNER_HEIGHT = MOBILE_INNER_HEIGHT;\nexport const CSS_MOBILE_WITH_TOP_AREA_BANNER_HEIGHT = `var(${TOP_NAV_HEIGHT_CSS_VARIABLE}, ${MOBILE_WITH_TOP_AREA_BANNER_HEIGHT}px)`;\nexport const CSS_MOBILE_WITH_TOP_AREA_BANNER_INNER_HEIGHT = `var(${TOP_NAV_INNER_HEIGHT_CSS_VARIABLE}, ${MOBILE_WITH_TOP_AREA_BANNER_INNER_HEIGHT}px)`;\n\nexport const MOBILE_WITH_SEARCH_INPUT_HEIGHT = MOBILE_HEIGHT + SEARCH_INPUT_HEIGHT;\nexport const MOBILE_WITH_SEARCH_INPUT_INNER_HEIGHT = MOBILE_INNER_HEIGHT;\nexport const CSS_MOBILE_WITH_SEARCH_INPUT_HEIGHT = `var(${TOP_NAV_HEIGHT_CSS_VARIABLE}, ${MOBILE_WITH_SEARCH_INPUT_HEIGHT}px)`;\nexport const CSS_MOBILE_WITH_SEARCH_INPUT_INNER_HEIGHT = `var(${TOP_NAV_INNER_HEIGHT_CSS_VARIABLE}, ${MOBILE_WITH_SEARCH_INPUT_INNER_HEIGHT}px)`;\n\nexport const MOBILE_WITH_SEARCH_INPUT_WITH_TOP_AREA_BANNER_HEIGHT =\n MOBILE_WITH_TOP_AREA_BANNER_HEIGHT + SEARCH_INPUT_HEIGHT;\nexport const MOBILE_WITH_SEARCH_INPUT_WITH_TOP_AREA_BANNER_INNER_HEIGHT = MOBILE_WITH_TOP_AREA_BANNER_INNER_HEIGHT;\nexport const CSS_MOBILE_WITH_SEARCH_INPUT_WITH_TOP_AREA_BANNER_HEIGHT = `var(${TOP_NAV_HEIGHT_CSS_VARIABLE}, ${MOBILE_WITH_SEARCH_INPUT_WITH_TOP_AREA_BANNER_HEIGHT}px)`;\nexport const CSS_MOBILE_WITH_SEARCH_INPUT_WITH_TOP_AREA_BANNER_INNER_HEIGHT = `var(${TOP_NAV_INNER_HEIGHT_CSS_VARIABLE}, ${MOBILE_WITH_SEARCH_INPUT_WITH_TOP_AREA_BANNER_INNER_HEIGHT}px)`;\n\n/** @deprecated use DESKTOP_HEIGHT */\nexport const TOP_NAV_HEIGHT = DESKTOP_HEIGHT;\n/** @deprecated use MOBILE_HEIGHT */\nexport const TOP_NAV_HEIGHT_MOBILE = MOBILE_HEIGHT;\n\nexport const AB_TASTY_SCRIPT_URL = 'https://try.abtasty.com/';\n/**\n * AbTasty configuration ids.\n */\nexport const AB_TASTY_SCRIPT_IDS: Record = {\n pl_live: 'd7969c131a7cd1e6eae1663545c12f7e',\n pl_stg: '8e82c73eacd1c73ed013bf7f9456f94d',\n ro_live: 'b9b95b18b302849d29466a1d6a271bd3',\n ro_stg: '45b6a9a02035d85e692125e9237ebc42',\n uk_live: '880cd51afa2ebc420d661463a5c7e851',\n uk_stg: 'de2ac2e90695e0f6a42150be9515d496',\n};\n","import { gql } from '@ori/fetching';\n\nexport const benefitBannerQuery = gql`\n fragment BenefitBanner on BenefitBanner {\n messageTitle\n messageUrl\n }\n\n query GetBenefitBanner {\n application {\n frontpage {\n benefitBanner {\n ...BenefitBanner\n }\n }\n }\n }\n`;\n","/* istanbul ignore file -- just a list of URLs */\nexport const vipOrderUrls = {\n access: '/system/ajax/stickybar/VipAccessJson',\n accessConsultant: (consultantNumber: string) =>\n `/system/ajax/VipShopping/AccessConsultant?consultantNumber=${consultantNumber}`,\n accessSwitch: (consultantNumber: number) =>\n `/system/ajax/StickyBar/VipAccessSwitch?ConsultantNumber=${consultantNumber}`,\n accessSwitchValidate: (consultantNumber: string) =>\n `/system/ajax/StickyBar/VipAccessSwitchValidate?ajaxId=69&related%5BConsultantNumber%5D=${consultantNumber}&activeInput=ConsultantNumber&ConsultantNumber=${consultantNumber}`,\n basket: '/shopping/basket',\n consultantNumbers: (hint: string) => `/system/ajax/VipShopping/GetConsultantNumbers?hint=${hint}`,\n};\n","// istanbul ignore file -- needs to be refactored with whole OOB\nimport { useToken } from '@ori/auth';\nimport { axios } from '@ori/axios';\nimport { useGetApplicationsNavigationCustomerInfo } from '@ori/global-api-client-react';\nimport type { FC, PropsWithChildren } from 'react';\nimport { createContext, useContext, useEffect, useMemo, useState } from 'react';\n\nimport type { VipAccessResponse } from '../models';\nimport { vipOrderUrls } from '../utils';\nimport { useAppConfig } from './configurationContext';\n\nexport interface ConsultantContext {\n consultantNumber?: string | undefined;\n consultantType?: number | undefined;\n isOrderOnBehalfVisible?: boolean;\n loadingVipAccess: boolean;\n vipAccess?: VipAccessResponse;\n}\n\nexport const consultantContext = createContext({\n loadingVipAccess: true,\n});\n\nconst { Provider } = consultantContext;\n\nexport const ConsultantProvider: FC = ({ children }) => {\n const [vipAccess, setVipAccess] = useState();\n const [loadingVipAccess, setLoadingVipAccess] = useState(true);\n const { consultantNumber, consultantType } = useAppConfig();\n const { customerId, isAnonymousUser } = useToken();\n const { data } = useGetApplicationsNavigationCustomerInfo(customerId.toString(), undefined, {\n swr: { enabled: !isAnonymousUser },\n });\n useEffect(() => {\n const abortController = new AbortController();\n axios\n .get(vipOrderUrls.access, {\n baseURL: window.location.origin,\n signal: abortController.signal,\n })\n .then((response) => setVipAccess(response.data))\n // eslint-disable-next-line no-console -- log error to console\n .catch(console.error)\n .finally(() => setLoadingVipAccess(false));\n\n return () => abortController.abort();\n }, []);\n const value = useMemo(\n () => ({\n consultantNumber: data?.consultantNumber?.toString() ?? consultantNumber,\n consultantType,\n isOrderOnBehalfVisible: !!(vipAccess?.VipAccessData?.ConsultantName && vipAccess.VipAccessData.ConsultantNumber),\n loadingVipAccess,\n vipAccess,\n }),\n [consultantNumber, consultantType, data?.consultantNumber, loadingVipAccess, vipAccess],\n );\n\n return {children};\n};\n\nexport const useConsultant = () => useContext(consultantContext);\n","import type { GetBenefitBannerQuery, VipAccessResponse } from '../../models';\n\ninterface IsLoadingParams {\n benefitBannerData: GetBenefitBannerQuery | undefined;\n error: Error | undefined;\n isAnonymousWithStore: boolean;\n loadingVipAccess: boolean;\n orderOnBehalfVisible: boolean;\n}\n\nexport const isLoading = ({\n benefitBannerData,\n error,\n isAnonymousWithStore,\n loadingVipAccess,\n orderOnBehalfVisible,\n}: IsLoadingParams): boolean =>\n loadingVipAccess ||\n (!isAnonymousWithStore && !orderOnBehalfVisible && benefitBannerData === undefined && error === undefined);\n\nexport const isOrderOnBehalfVisible = (orderOnBehalfData: VipAccessResponse | undefined): boolean =>\n !!orderOnBehalfData?.VipAccessData?.ConsultantName &&\n !!orderOnBehalfData.VipAccessData.ConsultantNumber &&\n !!orderOnBehalfData.VipAccessLabels?.ConsultantChangeConsultantNumber &&\n orderOnBehalfData.VipAccessData.Links.length > 0;\n\ninterface ShouldSkipBenefitBannerFetchParams {\n enableTopAreaBanner?: boolean;\n isAnonymousWithStore: boolean;\n loadingSegmentationData: boolean;\n orderOnBehalfVisible: boolean;\n}\n\nexport const shouldSkipBenefitBannerFetch = ({\n enableTopAreaBanner,\n isAnonymousWithStore,\n loadingSegmentationData,\n orderOnBehalfVisible,\n}: ShouldSkipBenefitBannerFetchParams): boolean =>\n loadingSegmentationData || orderOnBehalfVisible || !enableTopAreaBanner || isAnonymousWithStore;\n","import { useToken } from '@ori/auth';\nimport { CUSTOMER_TYPE_ID, VISITOR_SEGMENT, getHeaders, useGraphqlQuery } from '@ori/fetching';\nimport { VisitorSegment } from '@ori/graphql-schema';\nimport { useCookieStoreInfo } from '@ori/personal-beauty-store';\nimport { useUserSegmentationData } from '@ori/presentation-http';\nimport type { FC, PropsWithChildren } from 'react';\nimport { createContext, useContext, useMemo } from 'react';\n\nimport { APPLICATION_NAME } from '../../constants';\nimport type {\n BenefitBannerFragment,\n GetBenefitBannerQuery,\n GetBenefitBannerQueryVariables,\n VipAccessResponse,\n} from '../../models';\nimport { benefitBannerQuery } from '../../queries';\nimport { useAppConfig } from '../configurationContext';\nimport { useConsultant } from '../consultantContext';\nimport { isLoading, isOrderOnBehalfVisible, shouldSkipBenefitBannerFetch } from './utils';\n\nexport interface TopAreaBannerContext {\n benefitBannerData: BenefitBannerFragment | undefined;\n isAnonymousWithStore: boolean;\n isOrderOnBehalfVisible: boolean;\n loading: boolean;\n orderOnBehalfData: VipAccessResponse | undefined;\n visible: boolean;\n}\n\nconst defaultTopAreaBannerContextValue: TopAreaBannerContext = {\n benefitBannerData: undefined,\n isAnonymousWithStore: false,\n isOrderOnBehalfVisible: false,\n loading: true,\n orderOnBehalfData: undefined,\n visible: false,\n};\n\nexport const topAreaBannerContext = createContext(defaultTopAreaBannerContextValue);\n\nconst { Provider } = topAreaBannerContext;\n\nexport const TopAreaBannerProvider: FC = ({ children }) => {\n const { owner: store } = useCookieStoreInfo();\n const { loadingVipAccess, vipAccess: orderOnBehalfData } = useConsultant();\n const { enableTopAreaBanner, currentLanguage, graphqlUrl, tenant } = useAppConfig();\n const { customerId, isAnonymousUser, token } = useToken();\n const { customerTypeId, visitorSegment, loading: loadingSegmentationData } = useUserSegmentationData();\n const isAnonymousWithStore = useMemo(() => isAnonymousUser && !!store, [isAnonymousUser, store]);\n /**\n * VipAccessData can be defined but can arrive with empty key properties.\n */\n const orderOnBehalfVisible = useMemo(() => isOrderOnBehalfVisible(orderOnBehalfData), [orderOnBehalfData]);\n const headers = useMemo(\n () => ({\n ...getHeaders({\n customerId,\n language: currentLanguage,\n sourceAppName: APPLICATION_NAME,\n tenant,\n token,\n }),\n [CUSTOMER_TYPE_ID]: customerTypeId ?? 0,\n [VISITOR_SEGMENT]: visitorSegment ?? VisitorSegment.Anonymous,\n }),\n [currentLanguage, customerId, customerTypeId, tenant, token, visitorSegment],\n );\n const { data: benefitBannerData, error } = useGraphqlQuery({\n query: benefitBannerQuery,\n url: graphqlUrl,\n headers,\n skip: shouldSkipBenefitBannerFetch({\n enableTopAreaBanner,\n isAnonymousWithStore,\n loadingSegmentationData,\n orderOnBehalfVisible,\n }),\n swrConfig: {\n revalidateIfStale: false,\n revalidateOnFocus: false,\n revalidateOnReconnect: false,\n },\n });\n const visible = orderOnBehalfVisible || Boolean(enableTopAreaBanner);\n const { messageTitle, messageUrl } = benefitBannerData?.application?.frontpage?.benefitBanner ?? {};\n\n return (\n (\n () => ({\n benefitBannerData: { messageTitle, messageUrl },\n isAnonymousWithStore,\n isOrderOnBehalfVisible: orderOnBehalfVisible,\n loading: isLoading({\n benefitBannerData,\n error,\n isAnonymousWithStore,\n loadingVipAccess,\n orderOnBehalfVisible,\n }),\n orderOnBehalfData,\n visible,\n }),\n [\n benefitBannerData,\n error,\n isAnonymousWithStore,\n loadingVipAccess,\n messageTitle,\n messageUrl,\n orderOnBehalfData,\n orderOnBehalfVisible,\n visible,\n ],\n )}\n >\n {children}\n \n );\n};\n\nexport const useTopAreaBanner = () => useContext(topAreaBannerContext);\n","import {\n CSS_MOBILE_HEIGHT,\n CSS_MOBILE_WITH_SEARCH_INPUT_HEIGHT,\n CSS_MOBILE_WITH_SEARCH_INPUT_WITH_TOP_AREA_BANNER_HEIGHT,\n CSS_MOBILE_WITH_TOP_AREA_BANNER_HEIGHT,\n SEARCH_INPUT_HEIGHT,\n} from '../constants';\nimport type { AppConfig } from '../models';\n\ninterface GetMobileCssVariableParams extends Pick {\n isTopBannerVisible: boolean;\n}\n\nexport const getMobileCssHeightVariable = ({ isTopBannerVisible, showSearchOnScroll }: GetMobileCssVariableParams) => {\n if (isTopBannerVisible && showSearchOnScroll) {\n return CSS_MOBILE_WITH_SEARCH_INPUT_WITH_TOP_AREA_BANNER_HEIGHT;\n }\n if (isTopBannerVisible) {\n return CSS_MOBILE_WITH_TOP_AREA_BANNER_HEIGHT;\n }\n if (showSearchOnScroll) {\n return CSS_MOBILE_WITH_SEARCH_INPUT_HEIGHT;\n }\n\n return CSS_MOBILE_HEIGHT;\n};\n\nexport const getSearchInputTopAttribute = ({ isTopBannerVisible, showSearchOnScroll }: GetMobileCssVariableParams) => {\n if (isTopBannerVisible && showSearchOnScroll) {\n return `calc(${CSS_MOBILE_WITH_SEARCH_INPUT_WITH_TOP_AREA_BANNER_HEIGHT} - ${SEARCH_INPUT_HEIGHT}px)`;\n }\n if (showSearchOnScroll) {\n return `calc(${CSS_MOBILE_WITH_SEARCH_INPUT_HEIGHT} - ${SEARCH_INPUT_HEIGHT}px)`;\n }\n if (isTopBannerVisible) {\n return CSS_MOBILE_WITH_TOP_AREA_BANNER_HEIGHT;\n }\n\n return CSS_MOBILE_HEIGHT;\n};\n","export const ORIFLAME_LOGO_ROOT = 'oriflame-logo';\nexport const FAVORITE_HEART_ROOT = 'favorite-heart-root';\nexport const USER_ICON_MOBILE = 'user-icon-mobile';\nexport const USER_ICON_DESKTOP = 'user-icon-desktop';\nexport const ROOT_WRAPPER = 'root-wrapper';\nexport const NOTIFICATION_BELL_ICON_BUTTON = 'notification-bell-icon-button';\nexport const NOTIFICATION_BELL_ICON_BELL = 'notification-bell-icon-bell';\n","import { styled } from '@ori-ui/mui';\nimport { shouldForwardProp } from '@ori/presentation-utils';\nimport useTestId from '@ori/testid-generator';\nimport type { PropsWithChildren, FC } from 'react';\n\nimport { CSS_DESKTOP_HEIGHT, CSS_DESKTOP_WITH_TOP_AREA_BANNER_HEIGHT } from '../constants';\nimport { useAppConfig, useTopAreaBanner } from '../context';\nimport type { AppConfig } from '../models';\nimport { getMobileCssHeightVariable } from '../utils/getMobileCssVariable';\nimport { ROOT_WRAPPER } from './constants';\n\ninterface TopAreaReservedSpaceBlockProps extends Pick {\n isTopBannerVisible: boolean;\n}\n\nconst TopAreaReservedSpaceBlock = styled('div', {\n shouldForwardProp: shouldForwardProp(),\n})(({ isTopBannerVisible, showSearchOnScroll, theme }) => ({\n minHeight: getMobileCssHeightVariable({ isTopBannerVisible, showSearchOnScroll }),\n [theme.breakpoints.up('md')]: {\n minHeight: isTopBannerVisible ? CSS_DESKTOP_WITH_TOP_AREA_BANNER_HEIGHT : CSS_DESKTOP_HEIGHT,\n },\n}));\n\nexport const TopAreaBlock: FC = ({ children }) => {\n const { getTestId } = useTestId();\n const { visible: isTopBannerVisible } = useTopAreaBanner();\n const { showSearchOnScroll } = useAppConfig();\n\n return (\n \n {children}\n \n );\n};\n","import { MenuTypes } from '@ori-events/toggle-menu-flyout';\nimport type { FC, PropsWithChildren } from 'react';\nimport { createContext, useCallback, useContext, useMemo, useState } from 'react';\n\nimport { useSearchInput } from './searchInputContext';\n\nexport type ActiveMenu = MenuTypes | '';\n\nexport interface ActiveMenuContext {\n activeMenu: ActiveMenu;\n hideSearchResultsTab: () => void;\n toggleActiveMenu: (menu: ActiveMenu) => void;\n}\n\nconst activeMenuContext = createContext(undefined);\n\nconst { Provider } = activeMenuContext;\n\nexport const ActiveMenuProvider: FC = ({ children }) => {\n const [activeMenu, setActiveMenu] = useState('');\n const { blur, clearResults, hide, setValue, show } = useSearchInput();\n const toggleActiveMenu = useCallback(\n (menu: ActiveMenu) => {\n if (menu === MenuTypes.SearchInput || menu === MenuTypes.SearchResults) {\n show();\n setActiveMenu(menu);\n } else if (activeMenu === menu) {\n hide();\n setActiveMenu('');\n } else {\n hide();\n setActiveMenu(menu);\n }\n },\n [activeMenu, hide, show],\n );\n const hideSearchResultsTab = useCallback(() => {\n blur();\n clearResults();\n hide();\n setActiveMenu('');\n setValue('');\n }, [blur, clearResults, hide, setValue]);\n const value = useMemo(\n () => ({ activeMenu, hideSearchResultsTab, toggleActiveMenu }),\n [activeMenu, hideSearchResultsTab, toggleActiveMenu],\n );\n\n return {children};\n};\n\nexport const useActiveMenu = () => {\n const context = useContext(activeMenuContext);\n if (context) {\n return context;\n }\n throw new Error('useActiveMenuContext must be used within a ActiveMenuProvider.');\n};\n","import * as ToggleMenuFlyout from '@ori-events/toggle-menu-flyout';\nimport { Box, CircularProgress, Modal, Slide, styled, useTheme } from '@ori-ui/mui';\nimport useTestId from '@ori/testid-generator';\nimport type { FC } from 'react';\nimport { lazy, Suspense, useCallback } from 'react';\n\nimport { CSS_DESKTOP_HEIGHT } from '../../constants';\nimport { useActiveMenu } from '../../context/navigation';\nimport { useIsMobile } from '../../hooks';\nimport { ACCOUNT_FLYOUT_MODAL } from './constants';\n\nconst AccountFlyoutRoot = styled('div')(({ theme }) => ({\n background: theme.palette.common.white,\n height: '100%',\n paddingTop: CSS_DESKTOP_HEIGHT,\n position: 'absolute',\n width: 280,\n}));\n\nconst AccountLazy = lazy(async () => import('./LoginLibrary')) as FC;\n\nconst fallback = (\n \n \n \n);\n\nexport const AccountFlyout: FC = () => {\n const { activeMenu, toggleActiveMenu } = useActiveMenu();\n const isMobile = useIsMobile();\n const { getTestId } = useTestId();\n const { zIndex } = useTheme();\n // istanbul ignore next -- lazy loaded component\n const handleModalClose = useCallback(\n () => toggleActiveMenu(ToggleMenuFlyout.MenuTypes.AccountSideMenu),\n [toggleActiveMenu],\n );\n const isAccountMenuActive = !isMobile && activeMenu === ToggleMenuFlyout.MenuTypes.AccountSideMenu;\n\n return (\n \n \n \n \n \n \n \n \n \n );\n};\n","export const ACCOUNT_FLYOUT_MODAL = 'account-flyout-modal';\n","import { useToken } from '@ori/auth';\nimport { useGetCustomerProfile } from '@ori/global-api-client-react';\n\nexport const useCustomerInitials = () => {\n const { isAnonymousUser, customerId } = useToken();\n const { data } = useGetCustomerProfile(customerId, undefined, { swr: { enabled: !isAnonymousUser } });\n\n if (data) {\n const { firstName, lastName } = data;\n\n if (lastName) {\n return `${firstName ? firstName.charAt(0) : ''}${lastName.charAt(0)}`;\n }\n }\n\n return undefined;\n};\n","/* istanbul ignore file -- not testable as it's lazy loaded */\nimport { useToken } from '@ori/auth';\nimport { useServiceUrls } from '@ori/configuration-manager';\nimport type { PersonalMenuProps } from '@ori/personal-menu';\nimport { lazy, useMemo } from 'react';\n\nimport { useAppConfig, useConsultant } from '../context';\n\nconst LazyPersonalMenu = lazy(async () => ({\n default: (await import('@ori/personal-menu')).PersonalMenu,\n}));\n\nexport const useLazyPersonalMenu = () => {\n const { customerId, token } = useToken();\n const { currentLanguage, personalMenuInitialData, reportsItemName, tenant } = useAppConfig();\n const { globalApiUrl, mobileOfficeApiUrl, staticApiUrl } = useServiceUrls([\n 'globalApi',\n 'mobileOfficeApi',\n 'staticApi',\n ]);\n const { consultantNumber, consultantType } = useConsultant();\n const configuration = useMemo(\n () => ({\n consultantNumber,\n consultantType,\n customerId,\n globalApiUrl,\n lang: currentLanguage,\n mobileOfficeApiUrl,\n personalMenuInitialData,\n reportsItemName,\n staticApiUrl,\n tenant,\n token,\n }),\n [\n consultantNumber,\n consultantType,\n currentLanguage,\n customerId,\n globalApiUrl,\n mobileOfficeApiUrl,\n personalMenuInitialData,\n reportsItemName,\n staticApiUrl,\n tenant,\n token,\n ],\n );\n\n return ;\n};\n","export enum BurgerMenuTabNames {\n ProductsTab = 'products-tab',\n AccountTab = 'account-tab',\n}\n","import { useMediaQuery } from '@ori-ui/mui';\nimport type { RefObject, ElementType } from 'react';\nimport { useCallback, useEffect, useMemo, useRef, useState } from 'react';\n\nexport const useHover = (\n iconOnHover: IconType,\n icon: IconType,\n): [RefObject, IconType] => {\n const [isHover, setIsHover] = useState(false);\n const ref = useRef(null);\n const isHoverAvailable = useMediaQuery('(hover: hover)');\n\n const getIcon = useMemo(() => {\n if (isHover) {\n return iconOnHover;\n }\n\n return icon;\n }, [isHover, icon, iconOnHover]);\n\n const handleMouseOver = useCallback(() => {\n setIsHover(true);\n }, []);\n\n const handleMouseLeave = useCallback(() => {\n setIsHover(false);\n }, []);\n\n useEffect(() => {\n const element = ref.current;\n\n if (isHoverAvailable) {\n element?.addEventListener('mouseover', handleMouseOver);\n element?.addEventListener('mouseleave', handleMouseLeave);\n }\n\n return () => {\n if (isHoverAvailable) {\n element?.removeEventListener('mouseover', handleMouseOver);\n element?.removeEventListener('mouseleave', handleMouseLeave);\n }\n };\n }, [isHoverAvailable, handleMouseOver, handleMouseLeave]);\n\n return [ref, getIcon];\n};\n","import { User, UserFilled } from '@ori-ui/icons';\nimport { Avatar, Button, ButtonBase, styled } from '@ori-ui/mui';\nimport { useToken } from '@ori/auth';\nimport { useLogin } from '@ori/login';\nimport useTestId from '@ori/testid-generator';\nimport type { FC } from 'react';\n\nimport { useAppConfig } from '../context';\nimport { useHover, useCustomerInitials } from '../hooks';\nimport { useTranslations } from '../hooks/useTranslations';\nimport { USER_ICON_DESKTOP, USER_ICON_MOBILE } from './constants';\n\nconst SignInLabel = styled(ButtonBase)<{\n disableRipple?: boolean;\n}>(({ theme }) => ({\n display: 'none',\n [theme.breakpoints.up('md')]: {\n color: theme.palette.text.primary,\n display: 'block',\n fontSize: theme.typography.pxToRem(14),\n fontWeight: theme.typography.fontWeightBold,\n textDecoration: 'none',\n whiteSpace: 'nowrap',\n textTransform: 'uppercase',\n marginLeft: theme.spacing(4),\n '&:hover, &:focus, &:active': {\n color: theme.palette.grey[600],\n cursor: 'pointer',\n },\n\n [theme.breakpoints.up('lg')]: {\n marginLeft: theme.spacing(6),\n },\n\n [theme.breakpoints.up('xl')]: {\n marginLeft: theme.spacing(8),\n },\n },\n}));\n\nconst DesktopUserIconButton = styled(Button)(({ theme }) => ({\n display: 'none',\n fontSize: theme.typography.pxToRem(14),\n whiteSpace: 'nowrap',\n\n 'span:nth-child(2)': {\n marginRight: theme.spacing(3),\n },\n\n lineHeight: '21px',\n fontWeight: theme.typography.fontWeightBold,\n svg: {\n marginLeft: theme.spacing(2),\n },\n [theme.breakpoints.up('md')]: {\n display: 'inline-flex',\n },\n}));\n\nconst MobileUserIconButton = styled(ButtonBase)(({ theme }) => ({\n fontSize: theme.typography.pxToRem(30),\n color: theme.palette.grey[700],\n marginLeft: theme.spacing(4),\n whiteSpace: 'nowrap',\n textTransform: 'uppercase',\n [theme.breakpoints.up('md')]: {\n display: 'none',\n },\n}));\n\nexport const UserAvatar = styled(Avatar)(({ theme }) => ({\n fontSize: `${theme.typography.pxToRem(10)} !important`,\n width: 22,\n height: 22,\n marginLeft: theme.spacing(4),\n backgroundColor: theme.palette.grey[700],\n\n [theme.breakpoints.down('md')]: {\n marginLeft: 0,\n },\n}));\n\nexport const UserSection: FC = () => {\n const { useSsoIdentityLogin } = useAppConfig();\n const loginUrl = useSsoIdentityLogin ? '/ssoidentity/mypages' : '/system/ajax/login/home';\n const [ref, Icon] = useHover(UserFilled, User);\n const { getTestId } = useTestId();\n const { isAnonymousUser } = useToken();\n const { doLogin } = useLogin();\n const { translations } = useTranslations();\n const customerInitials = useCustomerInitials();\n\n if (!isAnonymousUser) {\n return (\n <>\n \n {customerInitials ? (\n \n {customerInitials}\n \n ) : null}\n \n {customerInitials} : null}\n variant=\"contained\"\n data-testid={getTestId(USER_ICON_DESKTOP)}\n color=\"secondary\"\n >\n {translations.myAccount}\n \n \n );\n }\n\n return (\n <>\n \n \n \n \n {translations.signIn}\n \n \n );\n};\n","import type { SvgIcon } from '@ori-ui/mui';\nimport { ButtonBase, styled } from '@ori-ui/mui';\nimport useTestId from '@ori/testid-generator';\nimport type { FC, ReactNode } from 'react';\nimport { useCallback } from 'react';\n\nimport type { BurgerMenuTabNames } from '../../models';\nimport { UserAvatar } from '../UserSection';\nimport {\n BURGER_MENU_TAB_ICON_WRAPPER,\n BURGER_MENU_TAB_LABEL_WRAPPER,\n BURGER_MENU_TAB_ROOT,\n TAB_ICON,\n} from './constants';\n\nconst BurgerMenuTabRoot = styled(ButtonBase)<{ ownerState: { isActive: boolean } }>(({ ownerState, theme }) => ({\n alignItems: 'center',\n backgroundColor: theme.palette.grey[100],\n borderRadius: theme.spacing(0, 0, 1, 1),\n color: theme.palette.text.primary,\n display: 'flex',\n fontSize: theme.typography.overline.fontSize,\n fontWeight: theme.typography.fontWeightBold,\n justifyContent: 'flex-start',\n textTransform: 'uppercase',\n width: '50%',\n\n ...(ownerState.isActive && {\n backgroundColor: theme.palette.common.white,\n }),\n\n '&::before': {\n fontSize: theme.typography.pxToRem(29),\n margin: theme.spacing(0, 3),\n },\n}));\n\nconst BurgerMenuTabPrefixWrapper = styled('div')<{ ownerState: { isLoggedIn?: boolean } }>(({ ownerState, theme }) => ({\n borderRadius: '50%',\n display: 'flex',\n fontSize: theme.typography.pxToRem(29),\n height: 29,\n margin: theme.spacing(4, 2),\n\n ...(ownerState.isLoggedIn && {\n borderRadius: '50%',\n color: theme.palette.common.white,\n display: 'flex',\n fontSize: theme.typography.pxToRem(26),\n height: 26,\n }),\n}));\n\nconst BurgerMenuTabLabelWrapper = styled('div')(({ theme }) => ({\n marginRight: theme.spacing(3),\n overflow: 'hidden',\n textAlign: 'left',\n textOverflow: 'ellipsis',\n width: '100%',\n}));\n\nexport interface BurgerMenuTabProps {\n activeTab: BurgerMenuTabNames;\n children?: ReactNode;\n tabName: BurgerMenuTabNames;\n tabPrefix: string | typeof SvgIcon;\n onTabClick: (tabName: BurgerMenuTabNames) => void;\n isLoggedIn?: boolean;\n}\n\nexport const BurgerMenuTab: FC = ({\n children,\n activeTab,\n tabPrefix,\n tabName,\n onTabClick,\n isLoggedIn,\n}) => {\n const clickHandler = useCallback(() => onTabClick(tabName), [onTabClick, tabName]);\n const TabIcon = tabPrefix;\n const ownerState = { isActive: activeTab === tabName, isLoggedIn };\n const { getTestId } = useTestId();\n\n return (\n \n \n {typeof tabPrefix === 'string' ? (\n {tabPrefix}\n ) : (\n \n )}\n \n \n {children}\n \n \n );\n};\n","import * as ToggleMenuFlyout from '@ori-events/toggle-menu-flyout';\nimport { BurgerMenu as BurgerMenuIcon } from '@ori-ui/icons';\nimport { Backdrop, Box, CircularProgress, Modal, SHADOW_LEVEL1, Slide, styled, useTheme } from '@ori-ui/mui';\nimport { useToken } from '@ori/auth';\nimport useTestId from '@ori/testid-generator';\nimport type { FC } from 'react';\nimport { lazy, Suspense, useCallback, useEffect } from 'react';\n\nimport { CSS_DESKTOP_INNER_HEIGHT, CSS_HEIGHT_ANIMATION, DESKTOP_HEIGHT } from '../../constants';\nimport { useAppConfig } from '../../context';\nimport { useActiveMenu, usePbsContent } from '../../context/navigation';\nimport { useIsMobile, useCustomerInitials, useLazyPersonalMenu } from '../../hooks';\nimport { useTranslations } from '../../hooks/useTranslations';\nimport { BurgerMenuTabNames } from '../../models';\nimport { BurgerMenuContent } from './BurgerMenuContent';\nimport { BurgerMenuLinks } from './BurgerMenuLinks/BurgerMenuLinks';\nimport { BurgerMenuTab } from './BurgerMenuTab';\nimport { BURGER_MENU_BACKDROP, BURGER_MENU_CONTAINER, BURGER_MENU_ROOT } from './constants';\n\nconst HEIGHT_BUFFER = 20;\n\nconst BurgerMenuRoot = styled('aside')<{ ownerState: { isMobile?: boolean; isDesktop?: boolean } }>(\n ({ ownerState, theme }) => ({\n backgroundColor: theme.palette.common.white,\n border: `1px solid ${theme.palette.grey[100]}`,\n display: 'none',\n transition: `top ${CSS_HEIGHT_ANIMATION}`,\n\n ...(ownerState.isMobile && {\n display: 'flex',\n flexDirection: 'column',\n height: '100%',\n maxWidth: 'calc(100% - 45px)',\n position: 'absolute',\n width: 330,\n }),\n\n ...(ownerState.isDesktop && {\n boxShadow: SHADOW_LEVEL1,\n display: 'flex',\n left: 0,\n minHeight: 590,\n position: 'absolute',\n top: CSS_DESKTOP_INNER_HEIGHT,\n width: '100%',\n }),\n }),\n);\n\nconst BurgerMenuInner = styled('div')(({ theme }) => ({\n [theme.breakpoints.up('md')]: {\n display: 'flex',\n width: 'inherit',\n maxHeight: `calc(100vh - ${DESKTOP_HEIGHT}px - ${HEIGHT_BUFFER}px)`,\n overflowX: 'hidden',\n overflowY: 'auto',\n },\n}));\n\nconst BurgerMenuContainer = styled('div')(() => ({\n display: 'flex',\n height: 54,\n width: '100%',\n}));\n\n// istanbul ignore next - lazy loading is not supported by Jest\nconst LazyAccount = lazy(async () => import('../Account/LoginLibrary')) as FC;\n\nconst LazyBurgerMenuLinks = lazy(async () => import('./BurgerMenuLinks/BurgerMenuLinks')) as FC;\n\nconst fallback = (\n \n \n \n);\n\nexport const BurgerMenu: FC = () => {\n const { BurgerMenu: BurgerMenuType, AccountSideMenu: AccountSideMenuType } = ToggleMenuFlyout.MenuTypes;\n const { useSsoIdentityLogin } = useAppConfig();\n const { activeMenu, toggleActiveMenu } = useActiveMenu();\n const { isShown, setIsShown } = usePbsContent();\n const isMobile = useIsMobile();\n const ownerState = { isMobile };\n const handleTabClick = useCallback(\n (tabName: BurgerMenuTabNames) => {\n const menuType: ToggleMenuFlyout.MenuTypes =\n tabName === BurgerMenuTabNames.ProductsTab ? BurgerMenuType : AccountSideMenuType;\n toggleActiveMenu(menuType);\n },\n [AccountSideMenuType, BurgerMenuType, toggleActiveMenu],\n );\n const { translations } = useTranslations();\n const { zIndex } = useTheme();\n const customerInitials = useCustomerInitials();\n const { isAnonymousUser } = useToken();\n const isLoggedIn = !isAnonymousUser;\n const isMenuActive = activeMenu === BurgerMenuType || (isMobile && activeMenu === AccountSideMenuType);\n const activeTab = activeMenu === BurgerMenuType ? BurgerMenuTabNames.ProductsTab : BurgerMenuTabNames.AccountTab;\n const { getTestId } = useTestId();\n const personalMenu = useLazyPersonalMenu();\n\n useEffect(() => {\n if (isShown && activeMenu === '') {\n setIsShown(true);\n }\n }, [activeMenu, isShown, setIsShown]);\n\n const accountTabContent = isAnonymousUser ? : personalMenu;\n\n const onClickOverlay = useCallback(() => {\n toggleActiveMenu(BurgerMenuType);\n }, [BurgerMenuType, toggleActiveMenu]);\n\n if (isMobile) {\n return (\n \n \n \n \n \n {translations.products}\n \n {!isLoggedIn && useSsoIdentityLogin ? null : (\n \n {isLoggedIn ? translations.myAccount : `${translations.logIn}/${translations.register}`}\n \n )}\n \n \n {activeTab === BurgerMenuTabNames.ProductsTab && }\n {activeTab === BurgerMenuTabNames.AccountTab && accountTabContent}\n \n \n \n \n );\n }\n\n if (!isMenuActive) {\n return null;\n }\n\n return (\n \n \n \n \n \n \n \n );\n};\n","import { StaticNavigationNavigationItemDtoType } from '@ori/static-api-client-react';\n\nimport { createNavigationItemsContext } from './internal';\n\nexport const {\n navigationItemsContext: joinTilesContext,\n NavigationItemsProvider: JoinTilesProvider,\n useNavigationItems: useJoinTiles,\n} = createNavigationItemsContext(StaticNavigationNavigationItemDtoType.JoinTiles);\n","import type { ImageSizesHelperParams } from '@ori/image-sizes-helper';\nimport { getImageVariants, generateSrcSet } from '@ori/image-sizes-helper';\nimport type { FC } from 'react';\n\ninterface TileProps {\n image: string;\n name?: string;\n}\n\nexport const JoinTileImage: FC = ({ image, name }) => {\n const imagesVariants: ImageSizesHelperParams = {\n url: image,\n params: [\n {\n width: 680,\n quality: 90,\n },\n ],\n };\n const images = getImageVariants(imagesVariants);\n\n return (\n \n );\n};\n","import * as ToggleMenuFlyout from '@ori-events/toggle-menu-flyout';\nimport { alpha, Backdrop, Link, Typography, styled, SHADOW_LEVEL1 } from '@ori-ui/mui';\nimport { StaticNavigationNavigationItemDtoLinkType } from '@ori/static-api-client-react';\nimport useTestId from '@ori/testid-generator';\nimport type { FC } from 'react';\nimport { useCallback } from 'react';\n\nimport { CSS_DESKTOP_INNER_HEIGHT, CSS_HEIGHT_ANIMATION } from '../../constants';\nimport { useActiveMenu, useJoinTiles } from '../../context/navigation';\nimport { JoinTileImage } from './JoinTileImage';\nimport { JOIN_MENU_BACKDROP, JOIN_MENU_ROOT, JOIN_MENU_TILE_DESCRIPTION, JOIN_MENU_TILE_LINK } from './constants';\n\nconst JoinMenuRoot = styled('div')<{ ownerState: { isVisible: boolean } }>(({ ownerState, theme }) => ({\n backgroundColor: theme.palette.common.white,\n border: `1px solid ${theme.palette.grey[100]}`,\n display: 'none',\n ...(ownerState.isVisible && {\n [theme.breakpoints.up('md')]: {\n boxShadow: SHADOW_LEVEL1,\n display: 'flex',\n flexDirection: 'column',\n left: 0,\n position: 'absolute',\n top: CSS_DESKTOP_INNER_HEIGHT,\n transition: `top ${CSS_HEIGHT_ANIMATION}`,\n width: '100%',\n },\n }),\n}));\n\nconst JoinTilesWrapper = styled('div')(({ theme }) => ({\n [theme.breakpoints.up('md')]: {\n alignItems: 'center',\n borderBottom: `6px solid ${theme.palette.common.white}`,\n columnGap: 6,\n display: 'grid',\n gridAutoColumns: 'minmax(325px, 680px)',\n gridAutoFlow: 'column',\n gridTemplateRows: 325,\n justifyContent: 'center',\n overflow: 'hidden',\n },\n}));\n\nconst JoinTileLink = styled(Link)(({ theme }) => ({\n [theme.breakpoints.up('md')]: {\n color: theme.palette.common.white,\n display: 'flex',\n height: '100%',\n overflow: 'hidden',\n position: 'relative',\n width: '100%',\n\n '&:hover, &:focus, &:active': {\n color: theme.palette.common.white,\n webkitTapHighlightColor: 'transparent',\n },\n\n '&:hover::before': {\n background: alpha(theme.palette.common.black, 0.3),\n },\n\n '&:hover': {\n '.joinTileTitle': {\n background: '#cda89c',\n borderColor: '#cda89c',\n },\n },\n\n '&::before': {\n background: 'transparent',\n content: '\"\"',\n height: '100%',\n position: 'absolute',\n transition: '0.25s',\n width: '100%',\n },\n\n '& > img': {\n height: '100%',\n objectFit: 'cover',\n width: '100%',\n },\n },\n}));\n\nconst JoinTileDescription = styled(Typography)(({ theme }) => ({\n [theme.breakpoints.up('md')]: {\n fontWeight: theme.typography.fontWeightBold,\n margin: theme.spacing(0, 6),\n overflow: 'hidden',\n position: 'absolute',\n textAlign: 'center',\n textOverflow: 'ellipsis',\n textShadow: theme.shadows[1],\n top: '50%',\n transform: 'translateY(-150%)',\n whiteSpace: 'nowrap',\n },\n}));\n\nconst JoinTileTitle = styled(Typography)(({ theme }) => ({\n [theme.breakpoints.up('md')]: {\n border: `2px solid ${theme.palette.common.white}`,\n borderRadius: 23,\n fontSize: theme.typography.body1,\n fontWeight: theme.typography.fontWeightBold,\n left: '50%',\n lineHeight: theme.typography.pxToRem(41),\n maxWidth: 295,\n minWidth: 125,\n overflow: 'hidden',\n padding: theme.spacing(0, 6),\n position: 'absolute',\n textAlign: 'center',\n textOverflow: 'ellipsis',\n textShadow: theme.shadows[1],\n top: '50%',\n transform: 'translate(-50%, 50%)',\n transition: '0.25s',\n whiteSpace: 'nowrap',\n },\n}));\n\nconst JoinMenuIdkyLink = styled(Link)(({ theme }) => ({\n [theme.breakpoints.up('md')]: {\n alignSelf: 'center',\n color: theme.palette.default.main,\n fontSize: theme.typography.pxToRem(15),\n fontWeight: theme.typography.fontWeightBold,\n lineHeight: theme.typography.pxToRem(23),\n margin: theme.spacing(2, 0),\n textDecoration: 'underline',\n transition: '0.25s',\n\n '&:hover, &:focus, &:active': {\n color: theme.palette.default.light,\n webkitTapHighlightColor: 'transparent',\n },\n },\n}));\n\nexport const JoinMenu: FC = () => {\n const { activeMenu, toggleActiveMenu } = useActiveMenu();\n const { items } = useJoinTiles();\n const exitMenu = useCallback(() => toggleActiveMenu(''), [toggleActiveMenu]);\n const iDontKnowYetLink = items.find(\n ({ linkType }) => linkType === StaticNavigationNavigationItemDtoLinkType.IDontKnowYet,\n );\n const joinTiles = items.filter(({ linkType }) => linkType === StaticNavigationNavigationItemDtoLinkType.MenuTiles);\n\n const { getTestId } = useTestId();\n\n if (joinTiles.length === 0) {\n return null;\n }\n\n const isMenuActive = activeMenu === ToggleMenuFlyout.MenuTypes.JoinMenu;\n const ownerState = { isVisible: isMenuActive };\n\n return (\n \n \n {joinTiles.map(({ url, imageUrl, title, description }) => (\n \n {imageUrl ? (\n \n ) : null}\n \n {description}\n \n \n {title}\n \n \n ))}\n \n {iDontKnowYetLink?.url ? (\n {iDontKnowYetLink.title}\n ) : null}\n \n \n );\n};\n","export const JOIN_SKELETON = 'join-skeleton';\nexport const JOIN_LABEL = 'join-label';\nexport const JOIN_MENU_ROOT = 'join-menu-root';\nexport const JOIN_MENU_TILE_LINK = 'join-menu-tile-link';\nexport const JOIN_MENU_TILE_DESCRIPTION = 'join-menu-tile-description';\nexport const JOIN_MENU_BACKDROP = 'join-menu-backdrop';\n","export enum TooltipTestIds {\n ROOT = 'tooltip-root',\n TITLE = 'tooltip-title',\n TEXT = 'tooltip-text',\n AVATAR = 'tooltip-avatar',\n FALLBACK_AVATAR = 'tooltip-fallback-avatar',\n AVATAR_BADGE_IS_LIVE = 'tooltip-avatar-badge-is-live',\n AVATAR_BADGE_WAS_LIVE = 'tooltip-avatar-badge-was-live',\n USER_NAME = 'tooltip-user-name',\n}\n","/* istanbul ignore file */\n\n/**\n * DO NOT EDIT!\n * This file was autogenerated by npm script `localizations-codegen`.\n * Changes may cause incorrect behavior and will be lost when the file is regenerated.\n *\n * Run `npx localizations-codegen` to regenerate.\n */\nimport { FormattedMessage as NotTypedFormattedMessage, type FormattedMessageProps } from '@ori/i18n';\n\nimport type { DefaultTranslations } from '../constants/defaultTranslations';\n\n/**\n * Renders a formatted internationalized message using the provided translation data.\n *\n * @returns The FormattedMessage typed with keys within the specified namespace.\n */\nexport const FormattedMessage = (props: FormattedMessageProps) => (\n {...props} />\n);\n","import { Pbs as PbsWaveIcon } from '@ori-ui/icons';\nimport { Avatar, Stack, styled, Typography, useTheme } from '@ori-ui/mui';\nimport useTestId from '@ori/testid-generator';\nimport type { DetailedHTMLProps, FC, HTMLAttributes } from 'react';\n\nimport { useTranslations } from '../../hooks/useTranslations';\nimport { LiveStreamingStates, TooltipTestIds, TranslationKey, ReferralType } from '../../models';\nimport { formatUserName } from '../../utils';\nimport { FormattedMessage } from '../FormattedMessage';\nimport { LiveStreamingStateWrap } from '../common/LiveStreamingStateWrap';\n\n/**\n * Avatar size. Value is in pixels\n */\nconst AVATAR_SIZE = 50;\n\n/**\n * Max width of tooltip component.\n */\nconst ROOT_MAX_WIDTH = 230;\n\n/**\n * How large fallback icon representing avatar should be\n */\nconst fallBackAvatarIconSize = 27;\n\n/**\n * Tooltip Arrow width and height\n */\nconst ARROW_SIZE = 30; // px\n\n/**\n * Tooltip arrow\n */\nconst ARROW_OFFSET = {\n x: 7, // px\n y: 0, // px\n};\n\nconst Root = styled('div')(({ theme, onClick }) => ({\n maxWidth: ROOT_MAX_WIDTH,\n width: '100vw',\n position: 'relative',\n boxShadow: theme.shadows[4],\n borderRadius: theme.shape.borderRadius,\n display: 'flex',\n ...(onClick && { cursor: 'pointer' }),\n}));\n\nconst ContentWrap = styled('div')(({ theme }) => ({\n backgroundColor: theme.palette.common.white,\n padding: theme.spacing(3),\n width: '100%',\n borderRadius: theme.shape.borderRadius,\n zIndex: 1,\n position: 'relative',\n}));\n\nconst TitleWrap = styled(Stack)(({ theme }) => ({\n marginBottom: theme.spacing(1.5),\n justifyContent: 'space-between',\n alignItems: 'center',\n}));\n\nconst Title = styled(Typography)({\n fontWeight: 'bold',\n lineHeight: '22px',\n});\n\nconst StyledAvatar = styled(Avatar)(({ theme }) => ({\n width: AVATAR_SIZE,\n height: AVATAR_SIZE,\n backgroundColor: theme.palette.grey[100],\n color: theme.palette.grey[900],\n}));\n\nconst TooltipArrow = styled('div')(({ theme }) => ({\n overflow: 'hidden',\n position: 'absolute',\n zIndex: 0,\n width: ARROW_SIZE,\n height: ARROW_SIZE,\n top: ARROW_OFFSET.y,\n left: ARROW_OFFSET.x,\n boxShadow: theme.shadows[4],\n borderRadius: theme.shape.borderRadius,\n backgroundColor: theme.palette.common.white,\n transform: 'rotate(33deg) skewY(25deg)',\n}));\n\nexport type TooltipBaseProps = DetailedHTMLProps, HTMLDivElement>;\n\nexport type TooltipProps = TooltipBaseProps & {\n firstName: string | null | undefined;\n lastName: string | null | undefined;\n photoUrl: string | null | undefined;\n liveStreamingState?: LiveStreamingStates;\n referralType: ReferralType;\n};\n\nexport const getContentTranslationKey = (type: ReferralType): TranslationKey => {\n switch (type) {\n case ReferralType.PBS:\n return TranslationKey.ReferralMessageTooltip;\n case ReferralType.ECREF:\n return TranslationKey.InviteMessageTooltip;\n default:\n throw new Error('Unknown referral tooltip type.');\n }\n};\n\nexport const Tooltip: FC = ({\n firstName,\n lastName,\n photoUrl,\n liveStreamingState,\n referralType,\n ...restProps\n}) => {\n const { formatMessage } = useTranslations();\n const theme = useTheme();\n const { getTestIdProps } = useTestId();\n const fullName = formatUserName(firstName, lastName);\n\n return (\n \n \n \n \n \n {formatMessage(TranslationKey.Greetings)}\n \n \n \n \n \n \n \n \n {chunks},\n }}\n />\n \n \n \n );\n};\n","export function formatUserName(firstName: string | null | undefined, lastName: string | null | undefined): string {\n // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing -- We want to include empty strings as well\n return firstName && lastName ? `${firstName} ${lastName}` : firstName || lastName || '';\n}\n","import { gql } from '@ori/fetching';\n\nexport const inviteFriendQuery = gql`\n query inviteFriend($consultant: Int!) {\n inviteFriendProfile(consultantNumber: $consultant) {\n firstName\n lastName\n photoUrl\n }\n }\n`;\n","import { useContext, createContext } from 'react';\n\nimport { configurationContextDefaultValues } from '../constants';\nimport type { AppConfiguration } from '../types';\n\nexport const configurationContext = createContext(configurationContextDefaultValues);\n\nexport const ConfigurationProvider = configurationContext.Provider;\n\nexport const useConfiguration = () => useContext(configurationContext);\n","import { useToken } from '@ori/auth';\nimport { getHeaders, useGraphqlQuery } from '@ori/fetching';\nimport cloneDeep from 'lodash.clonedeep';\nimport { useMemo } from 'react';\n\nimport { PACKAGE_NAME } from '../../constants';\nimport { ReferralType } from '../../models';\nimport type { InviteFriendQuery, InviteFriendQueryVariables } from '../../models/graphql-types/operations';\nimport { inviteFriendQuery } from '../../queries';\nimport { useConfiguration } from '../ConfigurationProvider';\nimport { useCookieStoreInfo } from './useCookieStoreInfo';\n\nexport const useInviteFriendData = () => {\n const { isEnabled, currentLanguage, graphqlUrl, tenant } = useConfiguration();\n const { isAnonymousUser, token, customerId } = useToken();\n const { type, owner } = useCookieStoreInfo();\n\n const consultant = Number.parseInt(owner ?? '0', 10);\n\n const { data: dataFromApi, error } = useGraphqlQuery({\n url: graphqlUrl,\n query: inviteFriendQuery,\n headers: getHeaders({\n tenant,\n language: currentLanguage,\n customerId,\n token,\n sourceAppName: PACKAGE_NAME,\n }),\n variables: {\n consultant,\n },\n skip: type !== ReferralType.ECREF || !isAnonymousUser || !isEnabled || !consultant,\n });\n\n if (error) {\n // eslint-disable-next-line no-console -- We need to log the error.\n console.error(error);\n }\n\n return useMemo(() => {\n if (!dataFromApi?.inviteFriendProfile) {\n return null;\n }\n\n const result = cloneDeep(dataFromApi);\n\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line unicorn/no-lonely-if -- webpack dead code elimination\n if (result.inviteFriendProfile?.photoUrl) {\n const photoUrl = new URL(result.inviteFriendProfile.photoUrl);\n\n return {\n ...result,\n inviteFriendProfile: {\n ...result.inviteFriendProfile,\n photoUrl: `${photoUrl.pathname}?${photoUrl.searchParams.toString()}`,\n },\n };\n }\n }\n\n return result;\n }, [dataFromApi]);\n};\n","/* istanbul ignore file */\nimport { useToken } from '@ori/auth';\nimport { useGetCustomerSponsorPersonalBeautyStore } from '@ori/global-api-client-react';\n\nconst useSponsorPersonalBeautyStoreInfo = () => {\n const { isAnonymousUser, customerId } = useToken();\n const result = useGetCustomerSponsorPersonalBeautyStore(customerId, undefined, {\n swr: {\n enabled: !isAnonymousUser,\n },\n });\n\n if (result.error) {\n // eslint-disable-next-line no-console -- We want to see the error\n console.error(result.error);\n }\n\n return result;\n};\n\nexport default useSponsorPersonalBeautyStoreInfo;\n","import { gql } from '@ori/fetching';\n\nexport const beautyStoreQuery = gql`\n query beautyStore($name: ID, $productListType: ProductListType!) {\n application {\n personalProductListConfiguration {\n isPplEnabled\n addThis\n }\n videoShopping {\n configuration {\n isVideoShoppingEnabled\n addThis\n }\n }\n }\n beautyStore(name: $name) {\n profile {\n name\n firstName\n lastName\n photoUrl\n contacts {\n type\n value\n }\n referralProgram {\n title\n greetingMessage\n message\n benefitsLink {\n relativeUrl\n title\n }\n allowedContacts\n }\n }\n productLists(productListType: $productListType) {\n productListId\n items {\n itemCode\n }\n }\n videoShows {\n showId\n isCurrent\n endedAtUtc\n startedAtUtc\n typeOfShow\n }\n }\n }\n`;\n","import { useToken } from '@ori/auth';\nimport { getHeaders, useGraphqlQuery } from '@ori/fetching';\nimport cloneDeep from 'lodash.clonedeep';\nimport { useMemo } from 'react';\n\nimport { PACKAGE_NAME } from '../../constants';\nimport useSponsorPersonalBeautyStoreInfo from '../../hooks/useSponsorPersonalBeautyStoreInfo';\nimport type { ProductListType } from '../../models';\nimport { ReferralType } from '../../models';\nimport type { BeautyStoreQuery, BeautyStoreQueryVariables } from '../../models/graphql-types/operations';\nimport { beautyStoreQuery } from '../../queries';\nimport { useConfiguration } from '../ConfigurationProvider';\nimport { useCookieStoreInfo } from './useCookieStoreInfo';\n\nexport const usePersonalBeautyStoreData = () => {\n const { isEnabled, currentLanguage, graphqlUrl, tenant } = useConfiguration();\n const { isAnonymousUser, customerId, token } = useToken();\n const { type, owner, productListType } = useCookieStoreInfo();\n const { data: sponsorData } = useSponsorPersonalBeautyStoreInfo();\n const shouldCall = type === ReferralType.PBS && isEnabled && Boolean(owner);\n const { data: dataFromApi, error } = useGraphqlQuery({\n url: graphqlUrl,\n query: beautyStoreQuery,\n headers: getHeaders({\n tenant,\n language: currentLanguage,\n customerId,\n token,\n sourceAppName: PACKAGE_NAME,\n }),\n variables: {\n name: isAnonymousUser ? owner : sponsorData?.name,\n productListType: productListType as ProductListType,\n },\n skip: isAnonymousUser ? !shouldCall : !sponsorData?.name,\n });\n\n if (error) {\n // eslint-disable-next-line no-console -- We need to log the error\n console.error(error);\n }\n\n return useMemo(() => {\n if (!dataFromApi?.beautyStore || !dataFromApi.application) {\n return null;\n }\n\n const result = cloneDeep(dataFromApi);\n\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line unicorn/no-lonely-if -- webpack dead code elimination\n if (result.beautyStore?.profile?.photoUrl) {\n const photoUrl = new URL(result.beautyStore.profile.photoUrl);\n\n // photoUrl is readOnly so it cannot be reassigned\n return {\n ...result,\n beautyStore: {\n ...result.beautyStore,\n profile: {\n ...result.beautyStore.profile,\n photoUrl: `${photoUrl.pathname}?${photoUrl.searchParams.toString()}`,\n },\n },\n };\n }\n }\n\n return result;\n }, [dataFromApi]);\n};\n","import type { UserInfo } from '../../types/UserInfo';\nimport { useInviteFriendData } from './useInviteFriendData';\nimport { usePersonalBeautyStoreData } from './usePersonalBeautyStoreData';\n\nexport const usePersonalBeautyStoreUserInfo = (): UserInfo => {\n const pbsData = usePersonalBeautyStoreData();\n const inviteFriendData = useInviteFriendData();\n\n if (pbsData) {\n const { firstName, lastName, photoUrl } = pbsData.beautyStore?.profile ?? {};\n\n return { firstName: firstName ?? null, lastName: lastName ?? null, photoUrl: photoUrl ?? null };\n }\n\n if (inviteFriendData) {\n const { firstName, lastName, photoUrl } = inviteFriendData.inviteFriendProfile ?? {};\n\n return { firstName: firstName ?? null, lastName: lastName ?? null, photoUrl: photoUrl ?? null };\n }\n\n return {\n firstName: null,\n lastName: null,\n photoUrl: null,\n };\n};\n","import type { FC } from 'react';\nimport { useCallback, useEffect } from 'react';\n\nimport type { TooltipBaseProps } from '../components';\nimport { Tooltip } from '../components';\nimport { usePersonalBeautyStore, usePersonalBeautyStoreUserInfo } from '../contexts';\nimport { ReferralType } from '../models';\nimport { getLiveStreamingStateByVideoConfig } from '../utils';\nimport { ComponentWrapper } from './ComponentWrapper';\n\n/**\n * Time after which will be tooltip automatically closed\n */\nconst AUTO_CLOSE_TIME = 5000; // ms\n\nexport interface TooltipContainerProps extends TooltipBaseProps {\n /**\n * If tooltip should close itself after period of time\n * @defaultValue true\n */\n autoClose?: boolean;\n}\n\nexport const TooltipContainer: FC = ({ onClick, autoClose = true, ...props }) => {\n const { canDisplayTooltip, setTooltipWasShown, pbsData, storeInfo } = usePersonalBeautyStore();\n\n const { firstName, lastName, photoUrl } = usePersonalBeautyStoreUserInfo();\n const { isVideoShoppingEnabled } = pbsData?.application?.videoShopping?.configuration ?? {};\n const currentVideoShow = pbsData?.beautyStore?.videoShows?.find((show) => show?.isCurrent);\n\n // Custom callback, if user clicks tooltip then we trigger onClick and hide it\n const onClickCallback = useCallback>(\n (e) => {\n if (typeof onClick === 'function') {\n onClick(e);\n }\n // Just hide tooltip right away if user clicked\n setTooltipWasShown(true);\n },\n [onClick, setTooltipWasShown],\n );\n\n // Autoclose after defined time if conditions are met\n useEffect(() => {\n let timer: ReturnType | undefined;\n\n // We only set timer if tooltip will render, was not shown before on device and if auto-close is enabled\n if (canDisplayTooltip && autoClose) {\n timer = setTimeout(() => setTooltipWasShown(true), AUTO_CLOSE_TIME);\n }\n\n return () => clearTimeout(timer);\n }, [canDisplayTooltip, autoClose, setTooltipWasShown]);\n\n if (!canDisplayTooltip) {\n return null;\n }\n\n return (\n \n \n \n );\n};\n","import type { Data, MenuTypes } from '@ori-events/toggle-menu-flyout';\nimport { Name } from '@ori-events/toggle-menu-flyout';\n\nimport type { ActiveMenu } from '../context/navigation';\n\nconst event = (menuType: MenuTypes) => new CustomEvent(Name, { detail: { menuType } });\n\nexport const dispatchToggleMenu = (menuToggle: MenuTypes, activeMenu?: ActiveMenu) => {\n if (activeMenu && menuToggle !== activeMenu) {\n window.dispatchEvent(event(activeMenu));\n }\n\n requestAnimationFrame(() => {\n window.dispatchEvent(event(menuToggle));\n });\n};\n","import * as ToggleMenuFlyout from '@ori-events/toggle-menu-flyout';\nimport * as UserAction from '@ori-events/user-action';\n\nimport { CLICK_BURGER_MENU } from '../constants';\nimport { useActiveMenu } from '../context/navigation/activeMenuContext';\nimport { dispatchToggleMenu } from '../utils';\n\nconst toggleMenu = () => {\n UserAction.dispatch(CLICK_BURGER_MENU);\n dispatchToggleMenu(ToggleMenuFlyout.MenuTypes.BurgerMenu);\n};\n\nexport const useToggleMenu = () => {\n const { activeMenu } = useActiveMenu();\n\n return [activeMenu === ToggleMenuFlyout.MenuTypes.BurgerMenu, toggleMenu] as const;\n};\n","import * as FavoritesUpdatedEvent from '@ori-events/favorites-updated';\nimport { ButtonBase, styled } from '@ori-ui/mui';\nimport { HeartsAnimation } from '@ori/favorites-heart';\nimport { usePersonalBeautyStore } from '@ori/personal-beauty-store';\nimport useTestId from '@ori/testid-generator';\nimport type { FC } from 'react';\nimport { useEffect, useState, useCallback } from 'react';\n\nimport { useAppConfig } from '../../context';\nimport { useToggleMenu } from '../../hooks';\nimport { useTranslations } from '../../hooks/useTranslations';\nimport { BURGER_MENU } from './constants';\n\nconst BurgerMenuIconRoot = styled(ButtonBase)<{ ownerState?: { isOpen?: boolean } }>(({ ownerState, theme }) => ({\n color: theme.palette.grey.A700,\n fontSize: theme.typography.pxToRem(28),\n height: 32,\n marginRight: theme.spacing(3),\n padding: '0 0 0 3px',\n\n [theme.breakpoints.up('sm')]: {\n marginRight: theme.spacing(6),\n },\n\n [theme.breakpoints.up('md')]: {\n '&:hover': {\n '.burgerMenuIconLine': {\n height: 3,\n },\n },\n\n ...(ownerState?.isOpen && {\n '&:hover': {\n '.burgerMenuIconLine': {\n height: 2,\n },\n },\n }),\n },\n\n [theme.breakpoints.up('lg')]: {\n marginRight: theme.spacing(8),\n },\n}));\n\nconst BurgerMenuIconWrapper = styled('div')<{\n ownerState?: { isOpen?: boolean; isMobile?: boolean };\n}>(({ ownerState, theme }) => ({\n display: 'none',\n\n ...(ownerState?.isMobile && {\n display: 'block',\n }),\n\n [theme.breakpoints.up('md')]: {\n display: 'block',\n\n ...(ownerState?.isMobile && {\n display: 'none',\n }),\n },\n}));\n\nconst BurgerMenuIconLine = styled('div')<{\n ownerState?: { isOpen?: boolean; isMobile?: boolean };\n}>(({ ownerState, theme }) => ({\n backgroundColor: theme.palette.grey.A700,\n height: 2,\n margin: '6px 0',\n opacity: 1,\n position: 'relative',\n transform: 'translateX(0) rotate(0) translateY(0)',\n transition: 'opacity 0.3s linear, transform 0.3s linear',\n width: 24,\n\n ...(ownerState?.isMobile && {\n display: 'block',\n }),\n\n [theme.breakpoints.up('md')]: {\n width: 25,\n ...(ownerState?.isOpen && {\n '&:nth-of-type(1)': {\n transform: 'rotate(45deg) translateY(9px) translateX(2px)',\n },\n\n '&:nth-of-type(2)': {\n opacity: 0,\n transform: 'translateX(22px)',\n },\n\n '&:nth-of-type(3)': {\n transform: 'rotate(-45deg) translateY(-9px) translateX(2px);',\n },\n }),\n },\n}));\n\nexport const BurgerMenuIcon: FC = () => {\n const [menuIsOpen, toggleMenu] = useToggleMenu();\n const [wasFavoriteAdded, setWasFavoriteAdded] = useState(false);\n const {\n tooltipWasShown: pbsTooltipWasShown,\n setTooltipWasShown: setPbsTooltipWasShown,\n pbsData,\n } = usePersonalBeautyStore();\n\n const { pbsIconInBurgerMenu } = useAppConfig();\n const { formatMessage } = useTranslations();\n const ownerState = { isOpen: menuIsOpen };\n const { getTestId } = useTestId();\n\n const onClickCallback = useCallback(() => {\n const { firstName, lastName } = pbsData?.beautyStore?.profile ?? {};\n\n if (!pbsTooltipWasShown && pbsIconInBurgerMenu && firstName && lastName) {\n setPbsTooltipWasShown(true);\n }\n\n toggleMenu();\n }, [pbsTooltipWasShown, toggleMenu, setPbsTooltipWasShown, pbsIconInBurgerMenu, pbsData?.beautyStore?.profile]);\n\n const onFavoritesUpdated = ({ detail: { favorites, lastUpdated } }: FavoritesUpdatedEvent.Event) => {\n if (lastUpdated && favorites.includes(lastUpdated)) {\n setWasFavoriteAdded(() => true);\n\n setTimeout(() => {\n setWasFavoriteAdded(() => false);\n }, 0);\n }\n };\n\n useEffect(() => {\n window.addEventListener(FavoritesUpdatedEvent.Name, onFavoritesUpdated as EventListener);\n\n return () => {\n window.removeEventListener(FavoritesUpdatedEvent.Name, onFavoritesUpdated as EventListener);\n };\n }, []);\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n","import { styled } from '@ori-ui/mui';\nimport { TooltipContainer as PbsTooltip } from '@ori/personal-beauty-store';\nimport useTestId from '@ori/testid-generator';\nimport type { FC } from 'react';\nimport { useCallback } from 'react';\n\nimport { useToggleMenu } from '../../hooks';\nimport { BurgerMenuIcon } from './BurgerMenuIcon';\nimport { BURGER_MENU_TOGGLE_ROOT } from './constants';\n\nconst pbsTooltipOffset = {\n x: -10,\n y: -40,\n};\n\nconst BurgerMenuToggleRoot = styled('div')({\n position: 'relative',\n});\n\nconst StyledPbsTooltip = styled(PbsTooltip)({\n position: 'absolute',\n top: `calc(100% - ${pbsTooltipOffset.y}px)`,\n left: pbsTooltipOffset.x,\n});\n\nexport const BurgerMenuToggle: FC = () => {\n const [, toggleMenu] = useToggleMenu();\n const { getTestId } = useTestId();\n\n // istanbul ignore next -- already tested in the PbsTooltip component\n const onPbsTooltipClick = useCallback(() => {\n toggleMenu();\n }, [toggleMenu]);\n\n return (\n \n \n \n \n );\n};\n","import { Box, Link, styled } from '@ori-ui/mui';\nimport useTestId from '@ori/testid-generator';\nimport type { FC } from 'react';\n\nimport { CSS_HEIGHT_ANIMATION } from '../constants';\nimport { useIsMarketCN } from '../hooks/useIsMarketCN';\nimport { ORIFLAME_LOGO_ROOT } from './constants';\n\nconst OriflameLogoSvg = styled('svg')(({ theme }) => ({\n fill: theme.palette.grey[700],\n width: 71,\n transition: `width ${CSS_HEIGHT_ANIMATION}`,\n\n [theme.breakpoints.up('sm')]: {\n width: 100,\n },\n\n [theme.breakpoints.up('md')]: {\n width: 135,\n },\n}));\n\nconst chineseLogo = (\n ({ [theme.breakpoints.up('md')]: { width: 160 } })}\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 151 45\"\n data-id=\"cn\"\n >\n \n \n);\n\nconst commonLogo = (\n \n \n \n);\n\nexport const OriflameLogo: FC = () => {\n const { getTestId } = useTestId();\n const isMarketCN = useIsMarketCN();\n\n return (\n \n \n {isMarketCN ? chineseLogo : commonLogo}\n \n \n );\n};\n","import { styled } from '@ori-ui/mui';\nimport type { FC } from 'react';\n\nimport { BurgerMenuToggle } from './BurgerMenu/BurgerMenuToggle';\nimport { OriflameLogo } from './OriflameLogo';\n\nconst LeftActionsSectionRoot = styled('div')(({ theme }) => ({\n alignItems: 'center',\n display: 'flex',\n\n [theme.breakpoints.up('sm')]: {\n maxWidth: 'none',\n },\n}));\n\nexport const LeftActionsSection: FC = () => (\n \n \n \n \n);\n","import * as FavoritesUpdatedEvent from '@ori-events/favorites-updated';\nimport { MenuTypes } from '@ori-events/toggle-menu-flyout';\nimport * as UserAction from '@ori-events/user-action';\nimport { Heart, HeartFilled } from '@ori-ui/icons';\nimport { ButtonBase, styled } from '@ori-ui/mui';\nimport { useToken } from '@ori/auth';\nimport { HeartsAnimation } from '@ori/favorites-heart';\nimport { useAreFavoritesEnabled } from '@ori/presentation-hooks';\nimport useTestId from '@ori/testid-generator';\nimport type { FC } from 'react';\nimport { useCallback, useEffect, useState } from 'react';\n\nimport { CLICK_FAVORITE_ICON } from '../constants';\nimport { useActiveMenu } from '../context/navigation';\nimport { useHover } from '../hooks';\nimport { FavoritesLink } from '../models';\nimport { dispatchToggleMenu } from '../utils';\nimport { FAVORITE_HEART_ROOT } from './constants';\n\nconst FavoritesHeartRoot = styled(ButtonBase)(({ theme }) => ({\n display: 'none',\n [theme.breakpoints.up('md')]: {\n color: theme.palette.grey[600],\n display: 'inline-flex',\n fontSize: theme.typography.pxToRem(30),\n height: 'fit-content',\n marginLeft: theme.spacing(4),\n\n '&:hover, &:focus, &:active': {\n color: theme.palette.grey[600],\n cursor: 'pointer',\n },\n\n '& div:first-of-type': {\n alignItems: 'center',\n display: 'flex',\n },\n },\n\n [theme.breakpoints.up('lg')]: {\n marginLeft: theme.spacing(6),\n },\n\n [theme.breakpoints.up('xl')]: {\n marginLeft: theme.spacing(8),\n },\n}));\n// istanbul ignore next -- delete during cleanup as this is a placeholder not needed anymore\nconst emptyFunction = () => {};\n\nexport const FavoritesHeartIcon: FC = () => {\n const [ref, Icon] = useHover(HeartFilled, Heart);\n const [wasFavoriteAdded, setWasFavoriteAdded] = useState(false);\n const { activeMenu } = useActiveMenu();\n const { customerId } = useToken();\n const shouldFavoritesRender = useAreFavoritesEnabled({ customerId });\n const { getTestId } = useTestId();\n\n const handleClick = useCallback(() => {\n UserAction.dispatch(CLICK_FAVORITE_ICON);\n\n if (window.location.pathname === FavoritesLink) {\n return;\n }\n\n dispatchToggleMenu(MenuTypes.FavoritesSideMenu, activeMenu);\n }, [activeMenu]);\n // istanbul ignore next -- slows down the tests\n const onFavoritesUpdated = ({ detail: { favorites, lastUpdated } }: FavoritesUpdatedEvent.Event) => {\n if (lastUpdated && favorites.includes(lastUpdated)) {\n setWasFavoriteAdded(() => true);\n\n setTimeout(() => {\n setWasFavoriteAdded(() => false);\n }, 0);\n }\n };\n\n useEffect(() => {\n window.addEventListener(FavoritesUpdatedEvent.Name, onFavoritesUpdated as EventListener);\n\n return () => {\n window.removeEventListener(FavoritesUpdatedEvent.Name, onFavoritesUpdated as EventListener);\n };\n }, []);\n\n if (!shouldFavoritesRender) {\n return null;\n }\n\n return (\n \n \n \n \n \n );\n};\n","import { StaticNavigationNavigationItemDtoType } from '@ori/static-api-client-react';\nimport type { StaticNavigationNavigationItemDto } from '@ori/static-api-client-react';\nimport type { FC, PropsWithChildren } from 'react';\nimport { createContext, useContext, useEffect, useMemo, useState } from 'react';\n\nimport { useFetchNavigationItems } from '../../hooks/useFetchNavigationItems';\n\nexport interface LabelsContext {\n aboutLabel: string;\n joinLabel: string;\n joinUrl: string;\n loading: boolean;\n}\n\nexport const labelsContextDefaultValue: LabelsContext = {\n aboutLabel: '',\n joinLabel: '',\n joinUrl: '',\n loading: true,\n};\n\nexport const labelsContext = createContext(labelsContextDefaultValue);\n\nconst { Provider } = labelsContext;\n\nconst findLabel = (\n item: StaticNavigationNavigationItemDtoType,\n collection?: StaticNavigationNavigationItemDto[] | null,\n) => collection?.find(({ type }) => type === item)?.title ?? '';\n\nconst findUrl = (\n item: StaticNavigationNavigationItemDtoType,\n collection?: StaticNavigationNavigationItemDto[] | null,\n) => collection?.find(({ type }) => type === item)?.url ?? '';\n\nexport const LabelsProvider: FC = ({ children }) => {\n const [aboutLabel, setAboutLabel] = useState(labelsContextDefaultValue.aboutLabel);\n const [joinLabel, setJoinLabel] = useState(labelsContextDefaultValue.joinLabel);\n const [joinUrl, setJoinUrl] = useState(labelsContextDefaultValue.joinUrl);\n const [loading, setLoading] = useState(true);\n const fetchNavigationItems = useFetchNavigationItems();\n useEffect(() => {\n fetchNavigationItems(StaticNavigationNavigationItemDtoType.TopNavigation)\n .then((items) => {\n setAboutLabel(findLabel(StaticNavigationNavigationItemDtoType.AboutTiles, items));\n setJoinLabel(findLabel(StaticNavigationNavigationItemDtoType.JoinTiles, items));\n setJoinUrl(findUrl(StaticNavigationNavigationItemDtoType.JoinTiles, items));\n })\n // eslint-disable-next-line no-console -- log error to console\n .catch(console.error)\n .finally(() => setLoading(false));\n }, [fetchNavigationItems]);\n const value = useMemo(() => ({ aboutLabel, joinLabel, joinUrl, loading }), [aboutLabel, joinLabel, joinUrl, loading]);\n\n return {children};\n};\n\nexport const useLabels = () => useContext(labelsContext);\n","import * as ToggleMenuFlyoutEvent from '@ori-events/toggle-menu-flyout';\nimport { ButtonBase, Link, Skeleton, styled } from '@ori-ui/mui';\nimport useTestId from '@ori/testid-generator';\nimport type { FC } from 'react';\n\nimport { useJoinTiles, useLabels } from '../../context/navigation';\nimport { dispatchToggleMenu } from '../../utils';\nimport { JOIN_LABEL, JOIN_SKELETON } from './constants';\n\nconst JoinLabel = styled(Link)<{\n disableRipple?: boolean;\n}>(({ theme }) => ({\n display: 'none',\n [theme.breakpoints.up('md')]: {\n color: theme.palette.text.primary,\n display: 'block',\n fontSize: theme.typography.pxToRem(14),\n fontWeight: theme.typography.fontWeightBold,\n textDecoration: 'none',\n whiteSpace: 'nowrap',\n textTransform: 'uppercase',\n\n '&:hover, &:focus, &:active': {\n color: theme.palette.grey[600],\n cursor: 'pointer',\n },\n },\n}));\n\nconst JoinSkeleton = styled(Skeleton)(({ theme }) => ({\n display: 'none',\n [theme.breakpoints.up('md')]: {\n display: 'block',\n },\n}));\n\nconst handleClick = () => dispatchToggleMenu(ToggleMenuFlyoutEvent.MenuTypes.JoinMenu);\n\nexport const JoinIcon: FC = () => {\n const { joinLabel, joinUrl, loading } = useLabels();\n const { items } = useJoinTiles();\n const { getTestId } = useTestId();\n\n if (loading) {\n return (\n \n );\n }\n\n if (items.length > 0) {\n return (\n \n {joinLabel}\n \n );\n }\n\n if (joinUrl) {\n return {joinLabel};\n }\n\n return null;\n};\n","import * as ToggleMenuFlyoutEvent from '@ori-events/toggle-menu-flyout';\nimport * as UserAction from '@ori-events/user-action';\nimport { Notification, NotificationFilled } from '@ori-ui/icons';\nimport { Badge, IconButton, styled } from '@ori-ui/mui';\nimport { useToken } from '@ori/auth';\nimport { CLIENT_APPLICATION } from '@ori/fetching';\nimport { useGetCustomerUnseenNotificationsCount } from '@ori/global-api-client-react';\nimport useTestId from '@ori/testid-generator';\nimport type { FC } from 'react';\nimport { useCallback, useState } from 'react';\n\nimport { CLICK_NOTIFICATION_ICON } from '../constants';\nimport { useHover } from '../hooks';\nimport { dispatchToggleMenu } from '../utils';\nimport { NOTIFICATION_BELL_ICON_BELL, NOTIFICATION_BELL_ICON_BUTTON } from './constants';\n\nconst NotificationBellIconRoot = styled('div')(({ theme }) => ({\n marginLeft: theme.spacing(4),\n\n [theme.breakpoints.up('lg')]: {\n marginLeft: theme.spacing(6),\n },\n\n [theme.breakpoints.up('xl')]: {\n marginLeft: theme.spacing(8),\n },\n}));\n\nconst NotificationBellIconButton = styled(IconButton)(({ theme }) => ({\n color: theme.palette.grey.A700,\n fontSize: '3rem',\n padding: 0,\n\n '&:hover, &:focus, &:active': {\n background: 'none',\n color: theme.palette.grey.A700,\n },\n}));\n\nexport const NotificationBellIcon: FC = () => {\n const [ref, Icon] = useHover(NotificationFilled, Notification);\n const [isClicked, setIsClicked] = useState(false);\n const { customerId } = useToken();\n const { getTestId } = useTestId();\n const { data } = useGetCustomerUnseenNotificationsCount(customerId, {\n [CLIENT_APPLICATION]: 'Web' /* notifications API requires value `Web` */,\n });\n const { count } = data ?? { count: 0 };\n\n const handleClick = useCallback(() => {\n UserAction.dispatch(CLICK_NOTIFICATION_ICON);\n setIsClicked(true);\n\n dispatchToggleMenu(ToggleMenuFlyoutEvent.MenuTypes.Notifications);\n }, []);\n\n return (\n \n \n \n \n \n \n \n );\n};\n","import { ButtonBase, styled } from '@ori-ui/mui';\n\nexport const SearchIconRoot = styled(ButtonBase)(({ theme }) => ({\n color: theme.palette.grey[700],\n display: 'none',\n fontSize: '3rem',\n\n marginRight: theme.spacing(2),\n [theme.breakpoints.down('md')]: {\n display: 'inline-flex',\n marginRight: 0,\n },\n}));\n","import { Search } from '@ori-ui/icons';\nimport useTestId from '@ori/testid-generator';\nimport { useCallback } from 'react';\n\nimport { useActiveMenu, useSearchInput } from '../../context/navigation';\nimport { useSearchInputPlaceholder } from '../../hooks/useSearchInputPlaceholder';\nimport { SEARCH_ICON } from './constants';\nimport { SearchIconRoot } from './styles';\n\nexport const SearchIcon = () => {\n const { hideSearchResultsTab } = useActiveMenu();\n const { isVisible, hide, show, manualShow, manualHide } = useSearchInput();\n const { getTestId } = useTestId();\n const searchPlaceholder = useSearchInputPlaceholder();\n\n const handleClick = useCallback(() => {\n if (isVisible) {\n manualHide();\n hide();\n hideSearchResultsTab();\n } else {\n show();\n manualShow();\n }\n }, [hide, hideSearchResultsTab, isVisible, manualHide, manualShow, show]);\n\n return (\n \n {isVisible ? null : }\n \n );\n};\n","import { useIsMobile } from './useIsMobile';\nimport { useTranslations } from './useTranslations';\n\nexport const useSearchInputPlaceholder = () => {\n const isMobile = useIsMobile();\n const { translations } = useTranslations();\n\n return isMobile ? translations.search : translations.searchDesktop;\n};\n","export const SEARCH_ICON = 'search-icon';\n","import { Backdrop, ButtonBase, SHADOW_LEVEL3, styled } from '@ori-ui/mui';\n\nimport { SEARCH_INPUT_HEIGHT } from '../../constants';\nimport type { AppConfig } from '../../models';\nimport { getSearchInputTopAttribute } from '../../utils/getMobileCssVariable';\n\nexport interface SearchInputRootProps extends Pick {\n isTopBannerVisible: boolean;\n isVisibleOnMobile: boolean;\n showOnlyOn: 'desktop' | 'mobile';\n}\n\nexport const SearchInputRoot = styled('div')(\n ({ isTopBannerVisible, isVisibleOnMobile, showSearchOnScroll, showOnlyOn, theme }) => ({\n background: theme.palette.common.white,\n boxSizing: 'border-box',\n display: isVisibleOnMobile ? 'flex' : 'none',\n height: SEARCH_INPUT_HEIGHT,\n justifySelf: 'center',\n left: 0,\n marginLeft: theme.spacing(4),\n padding: theme.spacing(3, 0),\n position: 'fixed',\n top: getSearchInputTopAttribute({ isTopBannerVisible, showSearchOnScroll }),\n width: '100%',\n zIndex: theme.zIndex.speedDial,\n justifyContent: isVisibleOnMobile ? 'center' : undefined,\n margin: isVisibleOnMobile ? 0 : undefined,\n\n [theme.breakpoints.up('md')]: {\n background: 'transparent',\n display: showOnlyOn === 'desktop' ? 'block' : 'none',\n height: 44,\n\n padding: theme.spacing(0, 2, 0, 3),\n position: 'static',\n\n zIndex: 'unset',\n },\n\n [theme.breakpoints.up('lg')]: {\n marginLeft: theme.spacing(6),\n },\n\n [theme.breakpoints.up('xl')]: {\n marginLeft: theme.spacing(8),\n },\n }),\n);\n\ninterface SearchInputBoxProps {\n isFocused: boolean;\n}\n\nexport const SearchInputBox = styled('div')(({ isFocused, theme }) => ({\n alignItems: 'center',\n background: theme.palette.grey[100],\n borderRadius: 100,\n boxSizing: 'border-box',\n color: theme.palette.grey[600],\n display: 'flex',\n fontSize: theme.typography.pxToRem(23),\n height: 44,\n paddingLeft: theme.spacing(3),\n width: 'calc(100% - 30px)',\n\n ...(isFocused && {\n boxShadow: SHADOW_LEVEL3,\n }),\n\n [theme.breakpoints.up('md')]: {\n height: 44,\n visibility: 'visible',\n },\n}));\n\nexport const SearchInputInput = styled('input')(({ theme }) => ({\n background: theme.palette.grey[100],\n border: 'none',\n color: theme.palette.text.primary,\n fontSize: theme.typography.pxToRem(16),\n height: 'auto',\n lineHeight: 1.5,\n marginLeft: 8,\n width: '100%',\n textOverflow: 'ellipsis',\n\n '&::placeholder': {\n color: theme.palette.text.primary,\n },\n}));\n\nexport const SearchInputClear = styled(ButtonBase)(({ isFocused, theme }) => ({\n height: 23,\n marginRight: theme.spacing(3),\n width: 23,\n\n [theme.breakpoints.up('md')]: {\n fontSize: theme.typography.pxToRem(20),\n marginRight: theme.spacing(2),\n\n visibility: 'hidden',\n\n ...(isFocused && {\n visibility: 'visible',\n }),\n },\n}));\n\nexport const InputBackdrop = styled(Backdrop)(() => ({\n position: 'absolute',\n zIndex: '-1',\n top: 68,\n width: '100vw',\n height: '100vh',\n}));\n","/* istanbul ignore file */\nexport const goToPage = (page: string) => (window.location.href = page);\n","import type { KeyboardEvent } from 'react';\n\nimport { goToPage } from '../TopAreaBanner/components/TopAreaBannerContent/goToPage';\n\nexport const onEnterPressHandler = (e: KeyboardEvent) => {\n if (e.key === 'Enter') {\n const { value: searchQuery } = e.currentTarget;\n goToPage(`/search?query=${encodeURIComponent(searchQuery)}`);\n }\n};\n","import * as ToggleMenuFlyout from '@ori-events/toggle-menu-flyout';\nimport { MenuTypes } from '@ori-events/toggle-menu-flyout';\nimport * as UserAction from '@ori-events/user-action';\nimport { Clear, Search } from '@ori-ui/icons';\nimport { debounce } from '@ori-ui/mui';\nimport { useWindowSize } from '@ori/presentation-hooks';\nimport useTestId from '@ori/testid-generator';\nimport type { ChangeEvent, FC } from 'react';\nimport { useEffect, useCallback, useState } from 'react';\nimport { useDebounce, useThrottledCallback } from 'use-debounce';\n\nimport { SEARCH_INPUT_HEIGHT, SEARCH_THROTTLE_TIME, START_SEARCH } from '../../constants';\nimport { useAppConfig, useTopAreaBanner } from '../../context';\nimport { useActiveMenu, useSearchInput } from '../../context/navigation';\nimport { useIsMobile } from '../../hooks';\nimport { useTranslations } from '../../hooks/useTranslations';\nimport { dispatchToggleMenu } from '../../utils';\nimport {\n BACKDROP,\n SEARCH,\n SEARCH_INPUT,\n SEARCH_INPUT_BOX,\n SEARCH_INPUT_CLEAR,\n SEARCH_INPUT_ROOT_DESKTOP,\n SEARCH_INPUT_ROOT_MOBILE,\n} from './constants';\nimport type { SearchInputRootProps } from './styles';\nimport { InputBackdrop, SearchInputBox, SearchInputClear, SearchInputInput, SearchInputRoot } from './styles';\nimport { onEnterPressHandler } from './utils';\n\nexport type SearchInputProps = Pick;\nconst SCROLL_THRESHOLD = SEARCH_INPUT_HEIGHT + 5;\n\nexport const SearchInput: FC = ({ showOnlyOn }) => {\n const { showSearchOnScroll } = useAppConfig();\n const { visible: isTopBannerVisible } = useTopAreaBanner();\n const { activeMenu, hideSearchResultsTab, toggleActiveMenu } = useActiveMenu();\n const {\n hide,\n show,\n isFocused,\n isVisible,\n focus,\n blur,\n search,\n clearResults,\n value,\n isManuallyOpened,\n setValue,\n manualHide,\n } = useSearchInput();\n const { sync } = useWindowSize();\n const isMenuActive = activeMenu === ToggleMenuFlyout.MenuTypes.SearchResults;\n const isMobile = useIsMobile();\n const { translations } = useTranslations();\n const [prevScrollY, setPrevScrollY] = useState(0);\n const { getTestId } = useTestId();\n const [debouncedValue] = useDebounce(value, 350);\n const throttledAnalytics = useThrottledCallback(() => UserAction.dispatch(START_SEARCH), SEARCH_THROTTLE_TIME);\n const searchPlaceholder = showOnlyOn === 'mobile' ? translations.search : translations.searchDesktop;\n const onFocusHandler = useCallback(() => {\n focus();\n sync();\n }, [focus, sync]);\n\n const onChangeHandler = useCallback(\n ({ target }: ChangeEvent) => {\n const isValueEmpty = target.value.length === 0;\n if (isValueEmpty) {\n toggleActiveMenu('');\n clearResults();\n }\n setValue(target.value);\n throttledAnalytics();\n if (!isValueEmpty && !isMenuActive) {\n dispatchToggleMenu(ToggleMenuFlyout.MenuTypes.SearchResults);\n }\n },\n [setValue, throttledAnalytics, isMenuActive, toggleActiveMenu, clearResults],\n );\n\n useEffect(() => {\n const showWithoutFocus = () => {\n show();\n blur();\n };\n\n const handleScroll = () => {\n const currentScrollY = window.scrollY;\n const difference = currentScrollY - prevScrollY;\n if (difference > SCROLL_THRESHOLD && isMobile && !isManuallyOpened) {\n hide();\n hideSearchResultsTab();\n } else if (difference < -SCROLL_THRESHOLD && isMobile) {\n showWithoutFocus();\n }\n setPrevScrollY(currentScrollY);\n };\n const handleScrollDebounced = debounce(handleScroll, 50);\n if (showSearchOnScroll) {\n window.addEventListener('scroll', handleScrollDebounced);\n }\n\n return () => window.removeEventListener('scroll', handleScrollDebounced);\n }, [isMobile, show, hide, blur, hideSearchResultsTab, isManuallyOpened, prevScrollY, showSearchOnScroll]);\n\n const closeSearch = useCallback(() => {\n manualHide();\n hide();\n hideSearchResultsTab();\n }, [hide, hideSearchResultsTab, manualHide]);\n\n const clearInput = useCallback(() => {\n setValue('');\n clearResults();\n toggleActiveMenu(MenuTypes.SearchInput);\n blur();\n }, [blur, clearResults, setValue, toggleActiveMenu]);\n\n const handleOnBlur = useCallback(() => {\n if (!value) {\n blur();\n }\n sync();\n }, [blur, sync, value]);\n\n useEffect(() => {\n search(debouncedValue);\n // eslint-disable-next-line react-hooks/exhaustive-deps -- we want to fetch results ONLY when input value changes (with debounce)\n }, [debouncedValue]);\n\n const isVisibleOnMobile = showOnlyOn === 'mobile' && isVisible;\n\n return (\n \n \n \n \n \n \n \n \n {isMobile && !isMenuActive && isManuallyOpened ? (\n \n ) : null}\n \n );\n};\n","export const SEARCH_INPUT_ROOT_DESKTOP = 'search-input-root-desktop';\nexport const SEARCH_INPUT_ROOT_MOBILE = 'search-input-root-mobile';\nexport const SEARCH_INPUT_BOX = 'search-input-box';\nexport const SEARCH_INPUT = 'search-input';\nexport const SEARCH = 'search';\nexport const SEARCH_INPUT_CLEAR = 'search-input-clear';\nexport const BACKDROP = 'backdrop';\n","export const SHOPPING_BAG_ICON_ROOT = 'shopping-bag-icon-root';\nexport const SHOPPING_BAG_COUNTER_ROOT = 'shopping-bag-counter-root';\n","import { keyframes } from '@emotion/react';\nimport { Typography, styled } from '@ori-ui/mui';\nimport useTestId from '@ori/testid-generator';\nimport type { FC } from 'react';\nimport { useEffect, useState } from 'react';\n\nimport { SHOPPING_BAG_COUNTER_ROOT } from './constants';\n\nconst growShrinkAnimation = keyframes`\n 50% {\n transform: scale(1.2);\n }\n`;\n\nconst ShoppingBagCounterRoot = styled(Typography)<{\n ownerState: { isAnimationActive: boolean };\n}>(({ theme, ownerState }) => ({\n alignItems: 'center',\n backgroundColor: theme.palette.primary.main,\n border: `1px solid ${theme.palette.common.white}`,\n borderRadius: '50%',\n bottom: theme.spacing(2),\n color: theme.palette.common.white,\n display: 'flex',\n fontSize: theme.typography.pxToRem(10),\n fontWeight: theme.typography.fontWeightBold,\n height: 22,\n justifyContent: 'center',\n left: theme.spacing(3),\n letterSpacing: 0,\n position: 'absolute',\n width: 22,\n\n ...(ownerState.isAnimationActive && {\n animationDuration: '1s',\n animationName: `${growShrinkAnimation}`,\n }),\n}));\n\nconst MINIBAG_COUNTER_ANIMATION_TIMEOUT = 1000;\n\nexport interface ShoppingBagCounterProps {\n shoppingBagQuantity: number;\n}\n\nexport const ShoppingBagCounter: FC = ({ shoppingBagQuantity }) => {\n const [isAnimationActive, setIsAnimationActive] = useState(false);\n const ownerState = { isAnimationActive };\n const { getTestId } = useTestId();\n\n useEffect(() => setIsAnimationActive(true), [shoppingBagQuantity]);\n\n useEffect(() => {\n if (isAnimationActive) {\n setTimeout(() => setIsAnimationActive(false), MINIBAG_COUNTER_ANIMATION_TIMEOUT);\n }\n }, [isAnimationActive]);\n\n return (\n \n {shoppingBagQuantity}\n \n );\n};\n","import * as BasketUpdated from '@ori-events/basket-updated';\nimport * as RequestShoppingContext from '@ori-events/request-shopping-context';\nimport * as ShoppingContextLoaded from '@ori-events/shopping-context-loaded';\nimport * as ToggleMenuFlyoutEvent from '@ori-events/toggle-menu-flyout';\nimport { EmptyBasket, AddToBag, AddToBagFilled, ShoppingBasketFilled } from '@ori-ui/icons';\nimport type { Theme } from '@ori-ui/mui';\nimport { ButtonBase, Link, styled, useMediaQuery } from '@ori-ui/mui';\nimport useTestId from '@ori/testid-generator';\nimport type { FC } from 'react';\nimport { useCallback, useMemo, useEffect, useState } from 'react';\n\nimport { CN_MARKET } from '../../constants';\nimport { useAppConfig } from '../../context';\nimport { useHover } from '../../hooks';\nimport { useTranslations } from '../../hooks/useTranslations';\nimport { ShoppingBagCounter } from './ShoppingBagCounter';\nimport { SHOPPING_BAG_ICON_ROOT } from './constants';\n\nconst ShoppingBagIconRoot = styled(Link)<{\n ownerState: { isCnMarket: boolean };\n disableRipple?: boolean;\n}>(({ ownerState, theme }) => ({\n alignItems: 'center',\n color: theme.palette.grey[600],\n display: 'flex',\n fontSize: theme.typography.pxToRem(30),\n height: '100%',\n marginLeft: theme.spacing(4),\n position: 'relative',\n\n ...(ownerState.isCnMarket && {\n color: theme.palette.error.main,\n }),\n\n '&:hover, &:focus, &:active': {\n color: theme.palette.grey[600],\n\n ...(ownerState.isCnMarket && {\n color: theme.palette.error.main,\n }),\n },\n\n [theme.breakpoints.up('md')]: {\n marginLeft: theme.spacing(4),\n },\n\n [theme.breakpoints.up('lg')]: {\n marginLeft: theme.spacing(6),\n },\n\n [theme.breakpoints.up('xl')]: {\n marginLeft: theme.spacing(8),\n },\n}));\n\nexport const getMinibagFlyoutEvent = (shouldOpen?: boolean) =>\n new CustomEvent(ToggleMenuFlyoutEvent.Name, {\n detail: { menuType: ToggleMenuFlyoutEvent.MenuTypes.Minibag, shouldOpen },\n });\n\nconst triggerRequestShoppingContext = () => {\n const requestShoppongContextEvent = new CustomEvent(RequestShoppingContext.Name);\n window.dispatchEvent(requestShoppongContextEvent);\n};\n\nexport const ShoppingBagIcon: FC = () => {\n const { formatMessage } = useTranslations();\n const [isECatalogue, setIsECatalogue] = useState(false);\n const mobileBreakpoint = useMediaQuery((theme) => theme.breakpoints.down('sm'));\n const mobileBreakpointECatalogue = useMediaQuery((theme) => theme.breakpoints.down('md'));\n const { tenant } = useAppConfig();\n const { getTestId } = useTestId();\n\n const isMobile = useCallback(\n () => (isECatalogue ? mobileBreakpointECatalogue : mobileBreakpoint),\n [isECatalogue, mobileBreakpointECatalogue, mobileBreakpoint],\n );\n const ownerState = { isCnMarket: tenant === CN_MARKET };\n let iconOnHover = AddToBagFilled;\n let icon = AddToBag;\n\n if (tenant === CN_MARKET) {\n iconOnHover = ShoppingBasketFilled;\n icon = EmptyBasket;\n }\n\n const [ref, Icon] = useHover(iconOnHover, icon);\n\n const [shoppingBagQuantity, setShoppingBagQuantity] = useState(0);\n const [isReceivedShoppingContext, setIsReceivedShoppingContext] = useState(false);\n\n const updateShoppingBagQuantity = (newShoppingBagQuantity: number) => {\n if (newShoppingBagQuantity >= 0) {\n setShoppingBagQuantity(newShoppingBagQuantity);\n }\n };\n\n const shoppingContextLoadedEventHandler = useCallback((event: ShoppingContextLoaded.Event) => {\n updateShoppingBagQuantity(event.detail.shoppingBag.shoppingBagQuantity);\n setIsReceivedShoppingContext(true);\n }, []) as EventListener;\n\n const basketUpdatedEventHandler = useCallback((event: BasketUpdated.Event) => {\n updateShoppingBagQuantity(event.detail.shoppingBag.shoppingBagQuantity);\n }, []) as EventListener;\n\n useEffect(() => {\n setIsECatalogue(document.getElementById('catalogue-ipaper-root') !== null);\n }, []);\n\n useEffect(() => {\n window.addEventListener(ShoppingContextLoaded.Name, shoppingContextLoadedEventHandler);\n window.addEventListener(BasketUpdated.Name, basketUpdatedEventHandler);\n\n triggerRequestShoppingContext();\n\n return () => {\n window.removeEventListener(ShoppingContextLoaded.Name, shoppingContextLoadedEventHandler);\n window.removeEventListener(BasketUpdated.Name, basketUpdatedEventHandler);\n };\n }, [shoppingContextLoadedEventHandler, basketUpdatedEventHandler]);\n\n useEffect(() => {\n if (isReceivedShoppingContext) {\n window.removeEventListener(ShoppingContextLoaded.Name, shoppingContextLoadedEventHandler);\n }\n }, [isReceivedShoppingContext, shoppingContextLoadedEventHandler]);\n\n const onMouseEnter = useCallback(() => {\n if (isECatalogue || isMobile()) {\n return;\n }\n\n window.dispatchEvent(getMinibagFlyoutEvent(true));\n }, [isECatalogue, isMobile]);\n\n const onMouseLeave = useCallback(() => {\n if (isECatalogue || isMobile()) {\n return;\n }\n\n window.dispatchEvent(getMinibagFlyoutEvent(false));\n }, [isECatalogue, isMobile]);\n\n const onMobileEcataloguePageClick = useCallback(() => {\n window.dispatchEvent(getMinibagFlyoutEvent());\n }, []);\n\n const ShoppingBagContent = useMemo(\n () => (\n <>\n \n {Boolean(shoppingBagQuantity) && }\n \n ),\n [shoppingBagQuantity, Icon],\n );\n\n const formattedAriaLabel = formatMessage('shoppingBag');\n\n if (isMobile() && isECatalogue) {\n return (\n \n {ShoppingBagContent}\n \n );\n }\n\n return (\n \n {ShoppingBagContent}\n \n );\n};\n","import { styled } from '@ori-ui/mui';\nimport { useToken } from '@ori/auth';\nimport type { FC } from 'react';\n\nimport { useAppConfig } from '../context';\nimport { FavoritesHeartIcon } from './FavoritesHeartIcon';\nimport { JoinIcon } from './Join/JoinIcon';\nimport { NotificationBellIcon } from './NotificationBellIcon';\nimport { SearchIcon } from './SearchIcon';\nimport { SearchInput } from './SearchInput';\nimport { ShoppingBagIcon } from './ShoppingBagIcon/ShoppingBagIcon';\nimport { UserSection } from './UserSection';\n\nconst RightActionsSectionRoot = styled('div')(({ theme }) => ({\n alignItems: 'center',\n display: 'flex',\n justifySelf: 'end',\n justifyContent: 'flex-end',\n width: '100%',\n\n [theme.breakpoints.up('sm')]: {\n justifyContent: 'end',\n },\n\n [theme.breakpoints.up('md')]: {\n maxWidth: 'none',\n },\n}));\n\nexport const RightActionsSection: FC = () => {\n const { isAnonymousUser } = useToken();\n const { shouldDisplayNotificationIcon } = useAppConfig();\n const showFavorites = !isAnonymousUser;\n const showNotifications = !isAnonymousUser && shouldDisplayNotificationIcon;\n\n return (\n \n \n \n {isAnonymousUser ? : null}\n \n {showNotifications ? : null}\n {showFavorites ? : null}\n \n \n );\n};\n","const MAX_VALUE = 2147483647;\n\nexport const getSearchTime = (timestamp: number) => {\n const searchTime = Date.now() - timestamp;\n\n return searchTime > 0 && searchTime <= MAX_VALUE ? searchTime : 0;\n};\n","import type { ProductData } from '@ori/analytics-data';\nimport type { GlobalProductQuerySignalsDto } from '@ori/global-api-client-react';\n\nimport { PACKAGE_NAME } from '../constants';\nimport type { Product, SuggestionsAndResults } from '../models';\nimport { getSearchTime } from './getSearchTime';\n\nexport const analytics = {\n formatProduct: ({\n ActualPriceUnformated,\n ConceptName,\n CurrencyCode,\n GtmBrand,\n GtmCategory,\n ProductCode,\n ProductImageUrl,\n }: Product): ProductData => ({\n currency: CurrencyCode,\n globalBrandName: '',\n globalCategoryName: '',\n globalName: '',\n itemCode: ProductCode,\n localBrandName: GtmBrand,\n localCategoryName: GtmCategory,\n localName: ConceptName,\n media: [ProductImageUrl],\n price: ActualPriceUnformated,\n }),\n getSignalsData: ({\n customerId,\n position,\n results,\n timestamp,\n }: {\n customerId: number;\n position: number;\n results: SuggestionsAndResults;\n timestamp: number;\n }): GlobalProductQuerySignalsDto => ({\n params: {\n count: 1,\n docId: results.Products[position]?.ProductCode,\n filterQueries: ['products'],\n position: position + 1,\n query: results.Query,\n queryId: results.QueryId,\n searchTime: getSearchTime(timestamp),\n sessionId: results.OnlineSessionId,\n source: PACKAGE_NAME,\n totalHits: results.Products.length,\n userId: customerId.toString(),\n },\n timeStamp: new Date(),\n type: 'click',\n }),\n};\n","import { Products } from '@ori-ui/icons';\nimport { styled } from '@ori-ui/mui';\nimport type { ImageSizesHelperParams } from '@ori/image-sizes-helper';\nimport { generateSrcSet, getImageVariants } from '@ori/image-sizes-helper';\nimport useTestId from '@ori/testid-generator';\nimport type { FC } from 'react';\n\nimport { NO_IMAGE, PRODUCT_IMAGE_ROOT } from './constants';\n\nconst ProductImageRoot = styled('img')<{ ownerState: { isSmall: boolean } }>(({ ownerState, theme }) => ({\n width: 70,\n height: 70,\n\n [theme.breakpoints.up('md')]: {\n width: 88,\n height: 88,\n objectFit: 'scale-down',\n\n ...(ownerState.isSmall && {\n width: 65,\n height: 65,\n }),\n },\n}));\n\nconst ProductImageNoImage = styled('div')(({ theme }) => ({\n alignItems: 'center',\n color: theme.palette.text.primary,\n display: 'flex',\n fontSize: theme.typography.h3.fontSize,\n justifyContent: 'center',\n\n [theme.breakpoints.up('md')]: {\n width: 65,\n height: 65,\n },\n}));\n\nexport interface ProductImageProps {\n image: string;\n name: string;\n size?: string;\n}\n\nexport const ProductImage: FC = ({ image, name, size }) => {\n const { getTestId } = useTestId();\n\n if (!image) {\n return (\n \n \n \n );\n }\n const imagesVariants: ImageSizesHelperParams = {\n url: image,\n params: [\n {\n width: 65,\n height: 65,\n quality: 90,\n },\n {\n width: 70,\n height: 70,\n quality: 90,\n },\n {\n width: 88,\n height: 88,\n quality: 90,\n },\n {\n width: 105,\n height: 105,\n quality: 70,\n },\n {\n width: 123,\n height: 123,\n quality: 70,\n },\n {\n width: 140,\n height: 140,\n quality: 50,\n },\n {\n width: 184,\n height: 184,\n quality: 50,\n },\n {\n width: 193,\n height: 193,\n quality: 35,\n },\n {\n width: 210,\n height: 210,\n quality: 35,\n },\n ],\n };\n\n const images = getImageVariants(imagesVariants);\n const isSmall = size === 'small';\n const imageSizes = isSmall ? '65px' : '(max-width: 1023px) 70px, 88px';\n const ownerState = { isSmall };\n\n return (\n \n );\n};\n","import { Link, styled } from '@ori-ui/mui';\nimport useTestId from '@ori/testid-generator';\nimport type { FC } from 'react';\nimport { useCallback } from 'react';\n\nimport { ProductImage } from './ProductImage';\nimport { PRODUCT_PRICE_DIFF, PRODUCT_TILE_LINK, PRODUCT_TILE_ROOT, PRODUCT_TILE_TITLE } from './constants';\n\nconst ProductTileRoot = styled('div')<{ ownerState: { isLarge: boolean } }>(({ ownerState, theme }) => ({\n boxSizing: 'border-box',\n color: theme.palette.text.disabled,\n height: 113,\n lineHeight: theme.typography.pxToRem(18),\n\n ...(ownerState.isLarge && {\n flexBasis: '40%',\n fontSize: theme.typography.caption.fontSize,\n justifyContent: 'center',\n lineHeight: theme.typography.pxToRem(18),\n margin: theme.spacing(0, '5%', 3),\n textAlign: 'center',\n }),\n\n [theme.breakpoints.up('md')]: {\n ...(ownerState.isLarge && {\n flexBasis: 'unset',\n height: 148,\n margin: theme.spacing(12, '4%', 0),\n width: '17%',\n }),\n },\n}));\n\nconst ProductTileProductLink = styled(Link)<{ ownerState: { isLarge: boolean } }>(({ ownerState, theme }) => ({\n alignItems: 'center',\n color: theme.palette.text.primary,\n display: 'flex',\n flexDirection: 'column',\n textDecoration: 'none',\n\n ...(ownerState.isLarge && {\n background: theme.palette.common.white,\n }),\n\n '&:hover, &:focus, &:active': {\n color: theme.palette.grey[600],\n WebkitTapHighlightColor: 'transparent',\n },\n}));\n\nconst ProductTileTitle = styled('span')<{ ownerState: { isLarge: boolean } }>(({ ownerState, theme }) => ({\n ...(ownerState.isLarge && {\n display: '-webkit-box',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n WebkitBoxOrient: 'vertical',\n WebkitLineClamp: 2,\n }),\n\n [theme.breakpoints.up('md')]: {\n '&:hover, &:focus, &:active': {\n ...(ownerState.isLarge && {\n color: theme.palette.text.primary,\n }),\n },\n },\n}));\n\nconst ProductTilePriceBox = styled('div')<{ ownerState: { isLarge: boolean } }>(({ ownerState }) => ({\n display: 'flex',\n flexDirection: 'column',\n\n ...(ownerState.isLarge && {\n alignItems: 'stretch',\n flexDirection: 'row',\n justifyContent: 'space-around',\n width: '100%',\n }),\n}));\nconst ProductTileActualPrice = styled('span')<{ ownerState: { isLarge: boolean } }>(({ ownerState, theme }) => ({\n fontWeight: theme.typography.fontWeightBold,\n marginTop: theme.spacing(2),\n\n ...(ownerState.isLarge && {\n margin: 0,\n }),\n}));\n\nconst ProductTileStandardPrice = styled('span')<{ ownerState: { isLarge: boolean } }>(({ ownerState, theme }) => ({\n textDecoration: 'line-through',\n\n ...(ownerState.isLarge && {\n color: theme.palette.text.disabled,\n }),\n}));\n\nexport interface ProductTileProps {\n basicCataloguePrice?: string;\n currentPrice?: string;\n displayProductName?: boolean;\n imageUrl?: string;\n largeVersion?: boolean;\n position: number;\n productCode?: string;\n productName?: string;\n onClick: (position: number) => void;\n}\n\nexport const ProductTile: FC = ({\n basicCataloguePrice,\n currentPrice,\n displayProductName = false,\n imageUrl,\n largeVersion = false,\n position,\n productCode,\n productName,\n onClick,\n}) => {\n const productUrl = `/products/product?code=${productCode ?? ''}`;\n const ownerState = { isLarge: largeVersion };\n const { getTestId } = useTestId();\n\n const onClickHandler = useCallback(() => {\n onClick(Number(position));\n }, [onClick, position]);\n\n return (\n \n \n \n {!!displayProductName && (\n \n {productName}\n \n )}\n \n {currentPrice}\n {currentPrice !== basicCataloguePrice && (\n \n {basicCataloguePrice}\n \n )}\n \n \n \n );\n};\n","import * as SearchSuggestionClick from '@ori-events/search-suggestion-click';\nimport { styled, Typography } from '@ori-ui/mui';\nimport { ContentType, Placement } from '@ori/analytics-data';\nimport { useToken } from '@ori/auth';\nimport { useApiClient, createApplicationsNavigationSignal } from '@ori/global-api-client-react';\nimport useTestId from '@ori/testid-generator';\nimport type { FC } from 'react';\nimport { useCallback } from 'react';\n\nimport { useAppConfig } from '../../context';\nimport { useSearchInput } from '../../context/navigation';\nimport { useTranslations } from '../../hooks/useTranslations';\nimport { type Product } from '../../models';\nimport { analytics } from '../../utils';\nimport { ProductTile } from '../common/ProductTile';\nimport { POPULAR_PRODUCTS_ROOT } from './constants';\n\nconst PopularProductsRoot = styled('div')(({ theme }) => ({\n boxSizing: 'border-box',\n height: '100%',\n position: 'relative',\n width: '100%',\n\n [theme.breakpoints.up('md')]: {\n display: 'flex',\n flexDirection: 'column',\n gridColumn: 2,\n gridRow: '1 / 3',\n margin: 0,\n padding: '0 calc(10% - 60px) 0 10%',\n textAlign: 'center',\n\n '&::before': {\n backgroundColor: theme.palette.grey[100],\n content: '\"\"',\n height: '100%',\n left: 0,\n marginLeft: theme.spacing(5),\n position: 'absolute',\n width: 4,\n },\n },\n}));\n\nconst PopularProductsHeader = styled(Typography)(({ theme }) => ({\n fontWeight: theme.typography.fontWeightBold,\n marginBottom: theme.spacing(3),\n\n [theme.breakpoints.up('md')]: {\n marginBottom: theme.spacing(-6),\n },\n}));\n\nconst PopularProductsWrapper = styled('div')(() => ({\n display: 'flex',\n flexWrap: 'wrap',\n margin: 0,\n padding: 0,\n}));\n\nexport const PopularProducts: FC = () => {\n const globalApiClient = useApiClient();\n const { formatMessage } = useTranslations();\n const { currentLanguage } = useAppConfig();\n const { customerId } = useToken();\n const { getTestId } = useTestId();\n const { results, timestamp } = useSearchInput();\n\n const onClick = useCallback(\n (position: number) => {\n // istanbul ignore next -- not reachable as user can only click on a product only if there are products\n if (results?.Products.length == null) {\n return;\n }\n\n const searchSuggestionClickData: SearchSuggestionClick.Data = {\n itemData: analytics.formatProduct(results.Products[position] as Product),\n itemType: ContentType.Product,\n searchQuery: results.Query,\n placement: Placement.TopNavigationSearchSuggestions,\n position,\n };\n\n createApplicationsNavigationSignal(\n globalApiClient,\n analytics.getSignalsData({ customerId, position, results, timestamp }),\n // eslint-disable-next-line @typescript-eslint/naming-convention -- generated typings require headers\n { 'Accept-Language': currentLanguage },\n // eslint-disable-next-line no-console -- log error to console\n ).catch(console.error);\n\n window.dispatchEvent(\n new CustomEvent(SearchSuggestionClick.Name, {\n detail: searchSuggestionClickData,\n }),\n );\n },\n [results, globalApiClient, customerId, timestamp, currentLanguage],\n );\n\n if (!results?.Products) {\n return null;\n }\n\n return (\n \n {formatMessage('popularProductsInThisSearchQuery')}\n \n {results.Products.map(({ ProductCode, StandardPrice, ActualPrice, ProductImageUrl, ConceptName }, index) => (\n \n ))}\n \n \n );\n};\n","export const SEARCH_RESULTS_ROOT = 'search-results-root';\nexport const SEARCH_RESULTS_CONTENT_WRAPPER = 'search-results-content-wrapper';\nexport const SEARCH_RESULTS_LOADER = 'search-results-loader';\nexport const SEARCH_RESULTS_HEADER = 'search-results-header';\nexport const SEARCH_RESULTS_QUERY = 'search-results-query';\nexport const SEARCH_RESULTS_LEFT_SIDE = 'search-results-left-side';\nexport const SEARCH_RESULTS_BACKDROP = 'search-results-backdrop';\nexport const POPULAR_PRODUCTS_ROOT = 'popular-products-root';\nexport const POPULAR_SEARCH_QUERIES_ROOT = 'popular-search-queries-root';\nexport const POPULAR_SEARCH_QUERIES_HEADING = 'popular-search-queries-heading';\nexport const POPULAR_SEARCH_QUERIES_RESULTS = 'popular-search-queries-results';\nexport const POPULAR_SEARCH_QUERIES_ITEM = 'popular-search-queries-item';\nexport const POPULAR_SEARCH_QUERIES_LINK = 'popular-search-queries-link';\n","import * as SearchSuggestionClick from '@ori-events/search-suggestion-click';\nimport { Link, styled, Typography } from '@ori-ui/mui';\nimport { ContentType, Placement } from '@ori/analytics-data';\nimport useTestId from '@ori/testid-generator';\nimport type { FC } from 'react';\nimport { useCallback } from 'react';\n\nimport { useSearchInput } from '../../context/navigation';\nimport { useTranslations } from '../../hooks/useTranslations';\nimport { boldMatchedText } from '../../utils';\nimport {\n POPULAR_SEARCH_QUERIES_HEADING,\n POPULAR_SEARCH_QUERIES_ITEM,\n POPULAR_SEARCH_QUERIES_LINK,\n POPULAR_SEARCH_QUERIES_RESULTS,\n POPULAR_SEARCH_QUERIES_ROOT,\n} from './constants';\n\nconst PopularSearchQueriesRoot = styled('div')(({ theme }) => ({\n [theme.breakpoints.up('md')]: {\n display: 'block',\n marginTop: 0,\n },\n}));\n\nconst PopularSearchQueriesHeading = styled(Typography)(({ theme }) => ({\n [theme.breakpoints.up('md')]: {\n fontWeight: theme.typography.fontWeightBold,\n lineHeight: theme.typography.pxToRem(19),\n margin: theme.spacing(2, 0, 3),\n },\n}));\n\nconst PopularSearchQueriesResults = styled('ul')(({ theme }) => ({\n [theme.breakpoints.up('md')]: {\n listStyleType: 'none',\n marginBottom: 0,\n padding: 0,\n },\n}));\n\nconst PopularSearchQueriesItem = styled('li')(({ theme }) => ({\n [theme.breakpoints.up('md')]: {\n marginBottom: theme.spacing(2),\n },\n}));\n\nconst PopularSearchQueriesLink = styled(Link)(({ theme }) => ({\n [theme.breakpoints.up('md')]: {\n color: theme.palette.text.primary,\n textDecoration: 'none',\n\n '&:hover, &:focus, &:active': {\n color: theme.palette.text.disabled,\n },\n },\n}));\n\nconst searchQuery = (name: string) => `/search?query=${encodeURIComponent(name)}`;\n\nexport const PopularSearchQueries: FC = () => {\n const { results, value } = useSearchInput();\n const { formatMessage } = useTranslations();\n const { getTestId } = useTestId();\n\n const onClick = useCallback(\n (localBannerTitle: string, position: number) => () => {\n window.dispatchEvent(\n new CustomEvent(SearchSuggestionClick.Name, {\n detail: {\n itemData: {\n target: searchQuery(localBannerTitle),\n localBannerTitle,\n media: [],\n },\n itemType: ContentType.PopularQuery,\n searchQuery: results?.Query ?? '',\n placement: Placement.TopNavigationSearchSuggestions,\n position,\n },\n }),\n );\n },\n [results?.Query],\n );\n\n return (\n \n \n {formatMessage('popularSearchQueries')}\n \n \n {results?.Suggestions.map(({ name }, index) => (\n \n \n {boldMatchedText(name, value)}\n \n \n ))}\n \n \n );\n};\n","import { Backdrop, Link, SHADOW_LEVEL1, styled } from '@ori-ui/mui';\n\nimport { CSS_DESKTOP_HEIGHT, CSS_DESKTOP_INNER_HEIGHT, CSS_HEIGHT_ANIMATION } from '../../constants';\n\nexport const SearchResultsRoot = styled('div')(({ theme }) => ({\n background: theme.palette.common.white,\n boxShadow: SHADOW_LEVEL1,\n boxSizing: 'border-box',\n color: theme.palette.text.primary,\n display: 'flex',\n flexDirection: 'column',\n left: 0,\n padding: theme.spacing(14, 3, 3),\n position: 'absolute',\n top: CSS_DESKTOP_INNER_HEIGHT,\n transition: `top ${CSS_HEIGHT_ANIMATION}`,\n width: '100%',\n [theme.breakpoints.up('md')]: {\n width: `calc(100% - var(--minibag-desktop-width, 0px))`,\n padding: theme.spacing(6, 12),\n },\n}));\n\nexport const SearchResultsContentWrapper = styled('div')<{ ownerState: { innerHeight: number } }>(({\n ownerState: { innerHeight },\n theme,\n}) => {\n const rootPaddings = theme.spacing(17);\n\n return {\n display: 'flex',\n flexDirection: 'column',\n maxHeight: `calc(${innerHeight}px - ${rootPaddings} - ${CSS_DESKTOP_HEIGHT})`,\n minHeight: 100,\n position: 'relative',\n width: '100%',\n\n [theme.breakpoints.down('md')]: {\n overflowY: 'auto',\n overscrollBehaviorY: 'contain',\n },\n\n [theme.breakpoints.up('md')]: {\n display: 'grid',\n gridTemplateColumns: '30% 70%',\n gridTemplateRows: '29px auto',\n },\n };\n});\n\nexport const SearchResultsHeader = styled('span')(({ theme }) => ({\n fontWeight: theme.typography.fontWeightBold,\n margin: theme.spacing(1, 0, 4),\n\n [theme.breakpoints.up('md')]: {\n gridColumn: 1,\n gridRow: 1,\n margin: 0,\n marginTop: 0,\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n },\n}));\n\nexport const SearchResultsQuery = styled(Link)(({ theme }) => ({\n borderBottom: `2px solid ${theme.palette.text.primary}`,\n color: theme.palette.text.primary,\n fontWeight: theme.typography.fontWeightBold,\n marginLeft: 3,\n paddingBottom: 3,\n textDecoration: 'none',\n\n '&:hover, &:focus, &:active': {\n borderBottom: `2px solid ${theme.palette.text.disabled}`,\n color: theme.palette.text.disabled,\n },\n}));\n\nexport const SearchResultsLeftSide = styled('div')(({ theme }) => ({\n [theme.breakpoints.up('md')]: {\n gridColumn: 1,\n gridRow: 2,\n },\n}));\n\nexport const SearchResultsLoader = styled('span')(({ theme }) => ({\n top: '60%',\n\n [theme.breakpoints.up('md')]: {\n top: '50%',\n },\n}));\n\nexport const CustomBackdrop = styled(Backdrop)(() => ({\n position: 'absolute',\n zIndex: '-1',\n width: '100vw',\n height: '100vh',\n}));\n","import * as ToggleMenuFlyout from '@ori-events/toggle-menu-flyout';\nimport { useWindowSize } from '@ori/presentation-hooks';\nimport useTestId from '@ori/testid-generator';\nimport type { FC } from 'react';\nimport { lazy, Suspense, useCallback, useEffect, useMemo, useState } from 'react';\n\nimport { useAppConfig } from '../../context';\nimport { useActiveMenu, useSearchInput } from '../../context/navigation';\nimport { useIsMobile } from '../../hooks';\nimport { useTranslations } from '../../hooks/useTranslations';\nimport { PopularProducts } from './PopularProducts';\nimport { PopularSearchQueries } from './PopularSearchQueries';\nimport {\n SEARCH_RESULTS_BACKDROP,\n SEARCH_RESULTS_CONTENT_WRAPPER,\n SEARCH_RESULTS_HEADER,\n SEARCH_RESULTS_LEFT_SIDE,\n SEARCH_RESULTS_LOADER,\n SEARCH_RESULTS_QUERY,\n SEARCH_RESULTS_ROOT,\n} from './constants';\nimport {\n CustomBackdrop,\n SearchResultsContentWrapper,\n SearchResultsHeader,\n SearchResultsLeftSide,\n SearchResultsLoader,\n SearchResultsQuery,\n SearchResultsRoot,\n} from './styles';\n\nconst LazyArticles = lazy(async () => ({ default: (await import('./Articles/Articles')).Articles }));\n\nconst SearchResultsContent: FC = () => {\n const isMobile = useIsMobile();\n const { formatMessage } = useTranslations();\n const { getTestId } = useTestId();\n const { onlyProductsTabInSearch } = useAppConfig();\n const { height } = useWindowSize();\n const { hideSearchResultsTab } = useActiveMenu();\n const { results, manualHide } = useSearchInput();\n const [innerHeight, setInnerHeight] = useState(height);\n const isArticles = Boolean(results?.Contents.length);\n\n const RenderSearchResult = () =>\n useMemo(\n () => (\n <>\n {results?.Query ? (\n \n {formatMessage('seeAllResultsFor')}\n \n {results.Query}\n \n \n ) : null}\n \n \n {!isMobile && }\n {isArticles && !onlyProductsTabInSearch ? : null}\n \n \n ),\n [],\n );\n\n useEffect(() => {\n setInnerHeight(height);\n }, [height]);\n\n const onClickAway = useCallback(() => {\n manualHide();\n hideSearchResultsTab();\n }, [manualHide, hideSearchResultsTab]);\n\n return (\n \n \n {results ? (\n \n ) : (\n \n )}\n \n \n \n );\n};\n\nexport const SearchResults: FC = () => {\n const { activeMenu } = useActiveMenu();\n const isMenuActive = activeMenu === ToggleMenuFlyout.MenuTypes.SearchResults;\n\n return isMenuActive ? : null;\n};\n","import { styled } from '@ori-ui/mui';\nimport { shouldForwardProp } from '@ori/presentation-utils';\n\nimport type { TopAreaBannerContext } from '../../context';\nimport { TOP_AREA_BANNER_HEIGHT } from './constants';\n\nexport const Root = styled('div', { shouldForwardProp: shouldForwardProp() })<\n Partial>\n>(({ isOrderOnBehalfVisible, theme, onClick }) => ({\n background: isOrderOnBehalfVisible ? theme.palette.blue[300] : theme.palette.offer.light,\n color: isOrderOnBehalfVisible ? theme.palette.common.white : theme.palette.offer.dark,\n cursor: onClick ? 'pointer' : 'default',\n display: 'flex',\n zIndex: theme.zIndex.appBar,\n height: TOP_AREA_BANNER_HEIGHT,\n width: '100vw',\n position: 'fixed',\n top: '0',\n left: '0',\n\n alignItems: 'center',\n justifyContent: 'center',\n}));\n","export const TOP_AREA_BANNER_HEIGHT = 34;\nexport const TOP_AREA_BANNER_BENEFIT_BANNER = 'top-area-banner-benefit-banner';\n","import { Skeleton } from '@ori-ui/mui';\nimport useTestId from '@ori/testid-generator';\nimport type { FC } from 'react';\n\nimport { TOP_AREA_BANNER_HEIGHT } from '../../constants';\nimport { Root } from '../../styles';\nimport { TOP_AREA_BANNER_BENEFIT_BANNER_SKELETON } from './constants';\n\nexport const TopAreaBannerSkeleton: FC = () => {\n const { getTestId } = useTestId();\n\n return (\n \n \n \n );\n};\n","export const TOP_AREA_BANNER_BENEFIT_BANNER_SKELETON = 'top-area-banner-benefit-banner-skeleton';\n","/* istanbul ignore file -- needs refactor */\nimport { Autocomplete, Button, styled, TextField } from '@ori-ui/mui';\nimport { axios } from '@ori/axios';\nimport useTestId from '@ori/testid-generator';\nimport type { FC, ChangeEvent, SyntheticEvent } from 'react';\nimport { useCallback, useRef, useState } from 'react';\nimport { useForm } from 'react-hook-form';\n\nimport { useTranslations } from '../../hooks/useTranslations';\nimport {\n type AccessConsultantResponse,\n type ConsultantNumberHint,\n type GetConsultantNumbersResponse,\n type VipAccessLabels,\n type VipAccessValidateResponse,\n} from '../../models';\nimport { vipOrderUrls } from '../../utils';\nimport { ORDER_FORM_ROOT, ORDER_ON_BEHALF_DIALOG_CHANGE_CONSULTANT_INPUT } from './constants';\n\nconst VipOrderFormRoot = styled('form')(({ theme }) => ({\n alignItems: 'center',\n columnGap: theme.spacing(4),\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'space-between',\n overflowX: 'hidden',\n}));\n\nexport interface VipOrderFormProps {\n vipAccessLabels: VipAccessLabels;\n}\n\nexport const ChangeConsultantForm: FC = ({\n vipAccessLabels: { ConsultantChangeConsultantNumber },\n}) => {\n const abortControllerRef = useRef(new AbortController());\n const formRef = useRef(null);\n const [areHintsLoading, setAreHintsLoading] = useState(false);\n const [consultantNumber, setConsultantNumber] = useState('');\n const [errorMessage, setErrorMessage] = useState(null);\n const [hints, setHints] = useState([]);\n const [isSubmitLocked, setIsSubmitLocked] = useState(true);\n const { translations } = useTranslations();\n const { register, handleSubmit } = useForm();\n const { getTestId } = useTestId();\n\n const handleChange = useCallback((event: ChangeEvent) => {\n const { value } = event.target;\n setConsultantNumber(value);\n setErrorMessage(null);\n setAreHintsLoading(true);\n setIsSubmitLocked(true);\n\n if (value) {\n axios\n .get(vipOrderUrls.consultantNumbers(value), {\n signal: abortControllerRef.current.signal,\n })\n .then(({ data }) => setHints(data.map((hint, index) => ({ index, hint }))))\n .catch((error: unknown) => console.error(error))\n .finally(() => {\n setAreHintsLoading(false);\n });\n }\n }, []);\n\n const handleSelect = useCallback((event: SyntheticEvent) => {\n const { textContent: id } = event.target as HTMLElement;\n setConsultantNumber(id ?? '');\n setHints([]);\n\n if (id) {\n axios\n .post(vipOrderUrls.accessSwitchValidate(id))\n .then(({ data: { message, result } }) => {\n setErrorMessage(message);\n setIsSubmitLocked(!result);\n })\n .catch((error: unknown) => console.error(error));\n }\n }, []);\n\n const onSubmit = useCallback(async () => {\n try {\n const { data } = await axios.get(vipOrderUrls.accessConsultant(consultantNumber));\n const { ConsultantNumber: consultant, ErrorMessage, IsAccessGranted } = data;\n\n if (IsAccessGranted) {\n try {\n await axios.post(vipOrderUrls.accessSwitch(consultant));\n formRef.current?.submit();\n } catch (error: unknown) {\n setErrorMessage(translations.failedToSubmit);\n console.warn(error);\n }\n } else {\n setErrorMessage(ErrorMessage);\n }\n } catch (error: unknown) {\n console.warn(error);\n }\n }, [consultantNumber, translations.failedToSubmit]);\n\n return (\n \n String(hint.hint)}\n id=\"ConsultantNumber\"\n loading={areHintsLoading}\n loadingText={translations.loading}\n noOptionsText={translations.noOptions}\n options={hints}\n renderInput={(props) => (\n \n )}\n onChange={handleSelect}\n />\n \n {translations.change}\n \n \n );\n};\n","export const ORDER_ON_BEHALF = 'order-on-behalf-banner';\nexport const ORDER_ON_BEHALF_DIALOG = 'order-on-behalf-dialog';\nexport const ORDER_FORM_ROOT = 'order-form-root';\nexport const ORDER_ON_BEHALF_DIALOG_BACK_ARROW = 'order-on-behalf-dialog-back-arrow';\nexport const ORDER_ON_BEHALF_DIALOG_CHANGE_CONSULTANT_INPUT = 'order-on-behalf-dialog-change-consultant-input';\n","import { Button, Link, styled, SvgIcon, Typography } from '@ori-ui/mui';\n\nimport { TOP_AREA_BANNER_HEIGHT } from '../TopAreaBanner/constants';\n\nexport const BackArrow = styled(SvgIcon)(({ theme }) => ({\n cursor: 'pointer',\n position: 'absolute',\n left: theme.spacing(3),\n top: theme.spacing(3),\n}));\n\nexport const OrderContent = styled('div')(({ theme }) => ({\n textAlign: 'center',\n margin: '0 auto',\n color: theme.palette.common.white,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n\n span: {\n lineHeight: theme.typography.pxToRem(TOP_AREA_BANNER_HEIGHT),\n textTransform: 'uppercase',\n fontSize: theme.typography.pxToRem(10),\n },\n\n svg: {\n height: theme.typography.pxToRem(20),\n },\n\n 'svg:first-of-type': {\n marginRight: theme.spacing(1),\n },\n 'svg:last-of-type': {\n marginLeft: theme.spacing(1),\n },\n}));\n\nexport const Username = styled(Typography)(({ theme }) => ({\n textDecoration: 'underline',\n color: theme.palette.common.white,\n marginLeft: theme.spacing(1),\n cursor: 'pointer',\n}));\n\nexport const PopupContentGroup = styled('div')(({ theme }) => ({\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'space-between',\n marginTop: theme.spacing(3),\n}));\n\nexport const PopupButton = styled(Button)(({ theme }) => ({\n marginBottom: theme.spacing(3),\n}));\n\nexport const PopupLink = styled(Link)(({ theme }) => ({\n marginBottom: theme.spacing(3),\n textAlign: 'center',\n color: theme.palette.common.black,\n}));\n","import { Dialog } from '@ori-ui/components';\nimport { ArrowLeftThin } from '@ori-ui/icons';\nimport { Typography } from '@ori-ui/mui';\nimport useTestId from '@ori/testid-generator';\nimport { useState } from 'react';\n\nimport { ChangeConsultantForm } from './ChangeConsultantForm';\nimport { ORDER_ON_BEHALF_DIALOG, ORDER_ON_BEHALF_DIALOG_BACK_ARROW } from './constants';\nimport { BackArrow, PopupButton, PopupContentGroup, PopupLink } from './styles';\nimport type { OrderOnBehalfDialogProps } from './types';\n\nexport const OrderOnBehalfDialog = (props: OrderOnBehalfDialogProps) => {\n const { vipAccessData, vipAccessLabels, open, close } = props;\n const [changeOpened, setChangeOpened] = useState(false);\n const { getTestId } = useTestId();\n\n return (\n \n setChangeOpened(false)}\n >\n \n \n {vipAccessLabels.ConsultantChangeConsultantNumber}\n \n ) : undefined\n }\n open={open}\n hideCloseButton={changeOpened}\n onClose={() => close()}\n >\n \n {changeOpened ? (\n \n ) : (\n <>\n \n {vipAccessData.Links[0]?.Text}\n \n setChangeOpened(true)}\n >\n {vipAccessLabels.ConsultantChangeConsultantNumber}\n \n \n {vipAccessData.Links[2]?.Text}\n \n \n )}\n \n \n );\n};\n","import { NewUserFilled, ArrowRightThin } from '@ori-ui/icons';\nimport { Typography } from '@ori-ui/mui';\nimport useTestId from '@ori/testid-generator';\nimport { useCallback, useState } from 'react';\n\nimport { useTopAreaBanner } from '../../context';\nimport { useTranslations } from '../../hooks/useTranslations';\nimport { OrderOnBehalfDialog } from './OrderOnBehalfDialog';\nimport { ORDER_ON_BEHALF } from './constants';\nimport { OrderContent, Username } from './styles';\n\nexport const OrderOnBehalf = () => {\n const { orderOnBehalfData } = useTopAreaBanner();\n const { VipAccessData: vipAccessData, VipAccessLabels: vipAccessLabels } = orderOnBehalfData ?? {};\n const { getTestId } = useTestId();\n const [dialogOpen, setDialogOpen] = useState(false);\n const closeDialog = useCallback(() => setDialogOpen(false), []);\n const openDialog = useCallback(() => setDialogOpen(true), []);\n const { translations } = useTranslations();\n\n if (!vipAccessData || !vipAccessLabels) {\n return null;\n }\n\n return (\n \n \n {translations.loggedInAs}\n {vipAccessData.ConsultantName}\n \n \n \n );\n};\n","/* istanbul ignore file */\n\n/**\n * DO NOT EDIT!\n * This file was autogenerated by graphql-codegen.\n * Changes may cause incorrect behavior and will be lost when the code is regenerated.\n *\n * Run `npm run codegen` to regenerate.\n */\n\nexport type Maybe = T | null;\nexport type InputMaybe = Maybe;\nexport type Exact = { [K in keyof T]: T[K] };\nexport type MakeOptional = Omit & { [SubKey in K]?: Maybe };\nexport type MakeMaybe = Omit & { [SubKey in K]: Maybe };\nexport type MakeEmpty = { [_ in K]?: never };\nexport type Incremental = T | { [P in keyof T]?: P extends ' $fragmentName' | '__typename' ? T[P] : never };\n/** All built-in and custom scalars, mapped to their actual values */\nexport type Scalars = {\n ID: { input: string; output: string };\n String: { input: string; output: string };\n Boolean: { input: boolean; output: boolean };\n Int: { input: number; output: number };\n Float: { input: number; output: number };\n Date: { input: string; output: string };\n JSON: { input: unknown; output: unknown };\n Void: { input: unknown; output: unknown };\n};\n\n/** Enum allowed search results */\nexport enum AddressMetadataAllowedSearchResults {\n Area = 'Area',\n City = 'City',\n Country = 'Country',\n District = 'District',\n Locality = 'Locality',\n Market = 'Market',\n Province = 'Province',\n Region = 'Region',\n Street = 'Street',\n ZipCode = 'ZipCode',\n}\n\n/** Enum address type */\nexport enum AddressType {\n Channel = 'Channel',\n Delivery = 'Delivery',\n Foreign = 'Foreign',\n Home = 'Home',\n Kyc = 'Kyc',\n Other = 'Other',\n}\n\nexport enum ArticleType {\n /** Articles from Beauty Edit section */\n BeautyEdit = 'BeautyEdit',\n /** Articles related to products */\n RelatedToProduct = 'RelatedToProduct',\n /** Default value - not for use with API. Exists to detect errors in parsing values */\n Undefined = 'Undefined',\n}\n\n/** Channel to identify how we should notify user */\nexport enum BackInStockNotificationChannel {\n /** We will notify customer on provided email */\n Email = 'Email',\n /** We will notify customer on provided telephone */\n Sms = 'Sms',\n}\n\n/** Input to let user subscribe to when the product is back in stock */\nexport type BackInStockNotificationSubscriptionInput = {\n /** Email value for notificationChannel.Email */\n readonly email?: InputMaybe;\n /** The product code to watch */\n readonly itemCode: Scalars['String']['input'];\n /** Flag indicating the channel for notification */\n readonly notificationChannel: BackInStockNotificationChannel;\n /** Telephone value for notificationChannel.Telephone */\n readonly telephoneNumber?: InputMaybe;\n};\n\n/** Background types */\nexport enum BackgroundType {\n /** Color as a background */\n Color = 'Color',\n /** Image as a background */\n Image = 'Image',\n /** No background */\n None = 'None',\n /** Video as a background */\n Video = 'Video',\n}\n\nexport enum CatalogueOfferType {\n /** Special offer for buying product */\n Buy = 'Buy',\n /** Choose from products */\n Choose = 'Choose',\n /** Choose a product and choose another */\n ChooseAndChoose = 'ChooseAndChoose',\n /** Choose a product and get another */\n ChooseAndGet = 'ChooseAndGet',\n /** Get a product */\n Get = 'Get',\n /** No type of catalogue offer was specified */\n None = 'None',\n}\n\nexport enum ChannelType {\n Mv7 = 'MV7',\n Website = 'Website',\n}\n\nexport enum ChatBotMode {\n AlwaysEnabled = 'AlwaysEnabled',\n Disabled = 'Disabled',\n NonBusinessHoursOnly = 'NonBusinessHoursOnly',\n}\n\n/** Color type */\nexport enum ColorType {\n Brown = 'Brown',\n Green = 'Green',\n White = 'White',\n}\n\n/** Enum customer category */\nexport enum CustomerCategory {\n Anonymous = 'Anonymous',\n Consultant = 'Consultant',\n Employee = 'Employee',\n EndConsumer = 'EndConsumer',\n EndCustomer = 'EndCustomer',\n Invitation = 'Invitation',\n Other = 'Other',\n}\n\n/** eWallet type */\nexport enum EWalletType {\n Revolut = 'Revolut',\n}\n\n/** Editorial banner layout enumeration */\nexport enum EditorialBannerLayoutEnum {\n /** Banner with four media */\n FourMedia = 'FourMedia',\n /** Banner with headline */\n Headline = 'Headline',\n /** Banner with one media overlayed with text at the bottom */\n OneMediaCenterBottomText = 'OneMediaCenterBottomText',\n /** Banner with one media overlayed with text on the left */\n OneMediaOverlayLeftText = 'OneMediaOverlayLeftText',\n /** Banner with one media overlayed with text on the right */\n OneMediaOverlayRightText = 'OneMediaOverlayRightText',\n /** Banner with one media part and paragraph text */\n OneMediaParagraphText = 'OneMediaParagraphText',\n /** PLP banner with single media */\n OneMediaProductPromo = 'OneMediaProductPromo',\n /** Banner with paragraph text */\n ParagraphText = 'ParagraphText',\n /** Banner with quote */\n Quote = 'Quote',\n /** Banner with three media and right bottom text */\n ThreeMediaRightBottomText = 'ThreeMediaRightBottomText',\n /** Banner with two media parts */\n TwoMedia = 'TwoMedia',\n /** Banner with two media overlayed with text on the top */\n TwoMediaRightTopText = 'TwoMediaRightTopText',\n /** Banner with video */\n Video = 'Video',\n}\n\n/** Editorial banner title color enumeration */\nexport enum EditorialBannerTitleColorEnum {\n /** The black */\n Black = 'Black',\n /** The dark grey */\n DarkGrey = 'DarkGrey',\n /** The white */\n White = 'White',\n}\n\n/** Editorial banner title size enumeration */\nexport enum EditorialBannerTitleSizeEnum {\n H5 = 'H5',\n H6 = 'H6',\n}\n\n/** Editorial channel type */\nexport enum EditorialChannelType {\n Mobile = 'Mobile',\n Web = 'Web',\n}\n\n/** Editorial PLP banner size */\nexport enum EditorialPlpPromoBannerSize {\n Size1 = 'Size1',\n Size2 = 'Size2',\n}\n\n/** Facet filter */\nexport type EditorialPlpRowsFacetFilter = {\n /** Active children keys */\n readonly keys: ReadonlyArray>;\n /** Facet name */\n readonly name: Scalars['String']['input'];\n};\n\n/** Feedback Benefit Banner type */\nexport enum FeedbackBenefitBannerType {\n Cashback = 'Cashback',\n ShareAndEarn = 'ShareAndEarn',\n}\n\n/** Enum gender */\nexport enum Gender {\n Man = 'Man',\n Other = 'Other',\n Woman = 'Woman',\n}\n\n/** Enum language type */\nexport enum LanguageType {\n Alternative = 'Alternative',\n Default = 'Default',\n}\n\nexport enum MobileAppType {\n None = 'None',\n ToSell = 'ToSell',\n ToShop = 'ToShop',\n}\n\n/** Possible types of Navigation items */\nexport enum NavigationLinkType {\n /** All category */\n AllCategory = 'AllCategory',\n /** Bottom part of the footer */\n Bottom = 'Bottom',\n /** Bottom part of the footer with copyright info */\n BottomCopyright = 'BottomCopyright',\n /** Links from the bottom part of the footer */\n BottomLinks = 'BottomLinks',\n /** Catalogue page */\n Catalogue = 'Catalogue',\n /** Catalogues page */\n Catalogues = 'Catalogues',\n /** Category */\n Category = 'Category',\n /** Catalogue for the current period */\n DigitalCatalogueCurrent = 'DigitalCatalogueCurrent',\n /** Catalogue for the next period */\n DigitalCatalogueNext = 'DigitalCatalogueNext',\n /** Focus page */\n FocusPage = 'FocusPage',\n /** Column of a footer */\n FooterColumn = 'FooterColumn',\n /** Item placed in footer's column */\n FooterColumnItem = 'FooterColumnItem',\n /** I Don't know yet link */\n IDontKnowYet = 'IDontKnowYet',\n /** Inspiration section */\n Inspiration = 'Inspiration',\n /** Join rewards */\n JoinRewards = 'JoinRewards',\n /** Key ingredients page */\n KeyIngredients = 'KeyIngredients',\n /** Menu tiles */\n MenuTiles = 'MenuTiles',\n /** New products */\n New = 'New',\n /** No link type was specified for this item */\n None = 'None',\n /** Our applications */\n OurApps = 'OurApps',\n /** Outlet shop */\n OutletShop = 'OutletShop',\n /** Payment method */\n PaymentMethod = 'PaymentMethod',\n /** Available payment methods */\n PaymentMethods = 'PaymentMethods',\n /** Popular brand */\n PopularBrand = 'PopularBrand',\n /** Popular brands */\n PopularBrands = 'PopularBrands',\n /** Popular lookbook */\n PopularLookbook = 'PopularLookbook',\n /** Turkish QR code */\n Qrtr = 'QRTR',\n /** Rewards shop page */\n RewardsShop = 'RewardsShop',\n /** Sample shop page */\n SampleShop = 'SampleShop',\n /** Segment of subcategory */\n Segment = 'Segment',\n /** Subcategory */\n SubCategory = 'SubCategory',\n /** Support center */\n SupportCenter = 'SupportCenter',\n /** Top navigation */\n TopNavigation = 'TopNavigation',\n /** What's new in the category */\n WhatsNewInCategory = 'WhatsNewInCategory',\n}\n\n/** Possible types of navigations */\nexport enum NavigationType {\n /** About tiles section content */\n AboutTiles = 'AboutTiles',\n /** Footer section */\n Footer = 'Footer',\n /** Inspiration tiles content */\n InspirationTiles = 'InspirationTiles',\n /** Join section content */\n JoinTiles = 'JoinTiles',\n /** Shop section content */\n ShopSection = 'ShopSection',\n /** Top navigation bar items */\n TopNavigation = 'TopNavigation',\n}\n\nexport enum NotificationBannerThemeType {\n Black = 'Black',\n Grey = 'Grey',\n}\n\n/** Olapic type enumeration */\nexport enum OlapicTypeEnum {\n /** Category widget */\n Category = 'Category',\n /** Front page widget */\n FrontPage = 'FrontPage',\n /** Gallery widget */\n Gallery = 'Gallery',\n /** Product detail page widget */\n ProductDetails = 'ProductDetails',\n}\n\n/** Products order strategies */\nexport enum PlpOrderBy {\n HighestDiscount = 'HighestDiscount',\n HighestPrice = 'HighestPrice',\n HighestRating = 'HighestRating',\n Latest = 'Latest',\n LowestPrice = 'LowestPrice',\n Recommended = 'Recommended',\n}\n\n/** Product Label Domain Type */\nexport enum ProductLabelDomainType {\n /** Only Offer, New, SuperDeal */\n Deal = 'Deal',\n /** All of the ProductLabelType except Offer, New, SuperDeal, AddToBasketVisible */\n Ppa = 'PPA',\n /** Domain Type for AddToBasketVisible ProductLabelType */\n Shopping = 'Shopping',\n}\n\nexport enum ProductListType {\n Favorite = 'Favorite',\n Personal = 'Personal',\n Private = 'Private',\n Wishlist = 'Wishlist',\n}\n\n/** Enum ProductListingBannerVideoType */\nexport enum ProductListingBannerVideoType {\n Mp4 = 'Mp4',\n None = 'None',\n Youku = 'Youku',\n Youtube = 'Youtube',\n}\n\n/** Relation types */\nexport enum ProductRelationEnum {\n RecentlyViewed = 'RecentlyViewed',\n Related = 'Related',\n}\n\nexport enum ProductType {\n Bundle = 'Bundle',\n Composite = 'Composite',\n Fee = 'Fee',\n Product = 'Product',\n Sample = 'Sample',\n}\n\n/** ResponseMessageNewsletterSubsciptionsType */\nexport enum ResponseMessageNewsletterSubsciptionsType {\n /** Cleaned */\n Cleaned = 'Cleaned',\n /** New */\n New = 'New',\n /** Pending */\n Pending = 'Pending',\n /** Subscribed */\n Subscribed = 'Subscribed',\n /** Unsubscribed */\n Unsubscribed = 'Unsubscribed',\n}\n\nexport enum SettingsClientType {\n OnlineReportingGrid = 'OnlineReportingGrid',\n WellnessClub = 'WellnessClub',\n}\n\nexport enum SettingsFormatType {\n Json = 'Json',\n String = 'String',\n Xml = 'Xml',\n}\n\n/** Input data for updating personal code in share and earn. */\nexport type ShareAndEarnUpdatePersonalCodeInput = {\n /** The customer ID of the customer who wants to update the personal code. */\n readonly customerId: Scalars['String']['input'];\n /** The new personal code */\n readonly newPersonalCode: Scalars['String']['input'];\n};\n\n/** Live video show type */\nexport enum ShowType {\n /** Show is recorded */\n Ended = 'Ended',\n /** Show is running now */\n Live = 'Live',\n /** Show not started yet */\n Scheduled = 'Scheduled',\n}\n\n/** Types of social contact */\nexport enum SocialContactType {\n /** Email */\n Email = 'Email',\n /** Facebook */\n Facebook = 'Facebook',\n /** Phone */\n PhoneNumber = 'PhoneNumber',\n /** VKontakte */\n VKontakte = 'VKontakte',\n /** WeChat */\n WeChat = 'WeChat',\n /** WhatsUp */\n WhatsUpNumber = 'WhatsUpNumber',\n}\n\n/** Types of social media */\nexport enum SocialMediaType {\n /** Facebook */\n Facebook = 'Facebook',\n /** Instagram */\n Instagram = 'Instagram',\n /** Line */\n Line = 'Line',\n /** Odnoklassniki */\n Odnoklassniki = 'Odnoklassniki',\n /** Pinterest */\n Pinterest = 'Pinterest',\n /** QQ */\n Qq = 'QQ',\n /** Telegram */\n Telegram = 'Telegram',\n /** Twitter */\n Twitter = 'Twitter',\n /** VKontakte */\n VKontakte = 'VKontakte',\n /** WeChat */\n WeChat = 'WeChat',\n /** Weibo */\n Weibo = 'Weibo',\n /** YouTube */\n YouTube = 'YouTube',\n /** Youku */\n Youku = 'Youku',\n}\n\n/** Sponsor type */\nexport enum SponsorType {\n DirectSponsor = 'DirectSponsor',\n}\n\n/** Colors enum referring to FE storybook */\nexport enum StorybookColor {\n /** Shades/palette.blue[100] */\n Blue100 = 'Blue100',\n /** Shades/palette.brown[50] */\n Brown50 = 'Brown50',\n /** Shades/palette.brown[300] */\n Brown300 = 'Brown300',\n /** Shades/palette.brown[400] */\n Brown400 = 'Brown400',\n /** Palette - Main colors/palette.default.contrastText */\n DefaultContrastText = 'DefaultContrastText',\n /** Shades/palette.green[400] */\n Green400 = 'Green400',\n /** Shades/palette.grey[50] */\n Grey50 = 'Grey50',\n /** InfoDark */\n InfoDark = 'InfoDark',\n /** Shades/palette.pink[50] */\n Pink50 = 'Pink50',\n /** Shades/palette.pink[300] */\n Pink300 = 'Pink300',\n /** PrimaryLight */\n PrimaryLight = 'PrimaryLight',\n /** Shades/palette.purple[50] */\n Purple50 = 'Purple50',\n /** Shades/palette.purple[200] */\n Purple200 = 'Purple200',\n /** Shades/palette.purple[400] */\n Purple400 = 'Purple400',\n /** Shades/palette.red[50] */\n Red50 = 'Red50',\n /** Palette - Main colors/palette.secondary.main */\n SecondaryMain = 'SecondaryMain',\n /** Typography/palette.text.primary */\n TextPrimary = 'TextPrimary',\n /** Typography/palette.text.secondary */\n TextSecondary = 'TextSecondary',\n /** Undefined value, its an error when this occurs */\n Undefined = 'Undefined',\n /** Shades/palette.yellow[50] */\n Yellow50 = 'Yellow50',\n /** Shades/palette.yellow[400] */\n Yellow400 = 'Yellow400',\n}\n\n/** Enum telephone type */\nexport enum TelephoneType {\n Business = 'Business',\n Fax = 'Fax',\n Home = 'Home',\n Mobile = 'Mobile',\n}\n\n/** Content vertical alignment */\nexport enum VerticalContentAlignment {\n Bottom = 'Bottom',\n Middle = 'Middle',\n Top = 'Top',\n Undefined = 'Undefined',\n}\n\nexport enum VideoType {\n /** Video in MP4 file format */\n Mp4 = 'Mp4',\n /** Video hosted on Youku */\n Youku = 'Youku',\n /** Video hosted on YouTube */\n Youtube = 'Youtube',\n}\n\n/** Possible types of visitor segment */\nexport enum VisitorSegment {\n /** Anonymous */\n Anonymous = 'Anonymous',\n /** Consultant */\n Consultant = 'Consultant',\n /** Director and above */\n DirectorAndAbove = 'DirectorAndAbove',\n /** End customer */\n EndCustomer = 'EndCustomer',\n /** Manager */\n Manager = 'Manager',\n /** Member */\n Member = 'Member',\n /** New consultant */\n NewConsultant = 'NewConsultant',\n /** Not defined */\n NotDefined = 'NotDefined',\n /** Spo */\n Spo = 'Spo',\n}\n","import { styled } from '@ori-ui/mui';\n\nexport const Root = styled('div')(({ theme }) => ({\n alignSelf: 'center',\n display: 'flex',\n gap: theme.spacing(1),\n}));\n","import { Email, Telephone } from '@ori-ui/icons';\nimport { Link } from '@ori-ui/mui';\nimport type { FC } from 'react';\n\nimport { Root } from './styles';\n\nexport interface ContactProps {\n contact: string | null | undefined;\n type: 'email' | 'phone';\n}\n\nexport const Contact: FC = ({ contact, type }) => {\n if (!contact) {\n return null;\n }\n\n return (\n \n {type === 'email' ? : }\n \n {contact}\n \n \n );\n};\n","import { Dialog } from '@ori-ui/components';\nimport { Gift } from '@ori-ui/icons';\nimport { paperClasses, styled } from '@ori-ui/mui';\n\nexport const Root = styled('div')(({ theme }) => ({\n alignItems: 'center',\n display: 'flex',\n flexDirection: 'column',\n gap: theme.spacing(3),\n textAlign: 'center',\n}));\n\nexport const GreetingMessageAndContact = styled('div')(({ theme }) => ({\n backgroundColor: theme.palette.grey[100],\n borderRadius: theme.spacing(1),\n display: 'flex',\n flexDirection: 'column',\n gap: theme.spacing(2),\n padding: theme.spacing(2),\n width: '100%',\n}));\n\nexport const Icon = styled(Gift)({\n height: 48,\n width: 48,\n});\n\nexport const BannerDialog = styled(Dialog)(({ theme }) => ({\n [`& .${paperClasses.root}`]: {\n [theme.breakpoints.up('sm')]: {\n width: 390,\n },\n },\n}));\n","import { Button, Typography } from '@ori-ui/mui';\nimport { DynamicFormattedMessage } from '@ori/i18n';\nimport { getContactByType, usePersonalBeautyStore } from '@ori/personal-beauty-store';\nimport useTestId from '@ori/testid-generator';\nimport type { ReactNode, FC } from 'react';\nimport { useMemo } from 'react';\n\nimport { useTranslations } from '../../../../hooks/useTranslations';\nimport { SocialContactType } from '../../../../models';\nimport { Contact } from '../Contact';\nimport {\n TOP_AREA_BANNER_DIALOG,\n TOP_AREA_BANNER_DIALOG_GREETING_MESSAGE,\n TOP_AREA_BANNER_DIALOG_MESSAGE,\n} from './constants';\nimport { BannerDialog, GreetingMessageAndContact, Icon, Root } from './styles';\n\ninterface TopAreaBannerProps {\n open: boolean;\n onClose: () => void;\n}\n\nconst emphasis = (testId: string) => (chunks: ReactNode[]) => {chunks};\n\n/**\n * SharingConditionsDialog component is used to render Dialog in How it works module. This dialog contains the sharing conditions.\n */\nexport const TopAreaBannerDialog: FC = ({ open, onClose }) => {\n const { getTestId } = useTestId();\n const { pbsData } = usePersonalBeautyStore();\n const { translations } = useTranslations();\n\n const { contacts, referralProgram } = pbsData?.beautyStore?.profile ?? {};\n const { allowedContacts, benefitsLink, greetingMessage, message, title } = referralProgram ?? {};\n const { relativeUrl, title: linkTitle } = benefitsLink ?? {};\n const userEmail = useMemo(\n () => getContactByType(allowedContacts, contacts, SocialContactType.Email),\n [allowedContacts, contacts],\n );\n const userPhone = useMemo(\n () => getContactByType(allowedContacts, contacts, SocialContactType.PhoneNumber),\n [allowedContacts, contacts],\n );\n\n if (!title || !message) {\n return null;\n }\n\n return (\n \n \n \n {title}\n \n \n \n \n \n {greetingMessage ? (\n \n ) : null}\n \n \n \n \n \n {linkTitle ?? translations.gotIt}\n \n \n \n );\n};\n","export const TOP_AREA_BANNER_DIALOG = 'top-area-banner-dialog';\nexport const TOP_AREA_BANNER_DIALOG_GREETING_MESSAGE = 'top-area-banner-dialog-greeting-message';\nexport const TOP_AREA_BANNER_DIALOG_MESSAGE = 'top-area-banner-dialog-message';\n","import { Typography, styled } from '@ori-ui/mui';\n\nexport const Title = styled(Typography)(({ theme }) => ({\n fontWeight: theme.typography.fontWeightBold,\n overflow: 'hidden',\n padding: theme.spacing(1),\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n '&:hover': {\n textDecoration: 'underline',\n },\n}));\n","import useTestId from '@ori/testid-generator';\nimport { useCallback, type FC, useState } from 'react';\n\nimport { useTopAreaBanner } from '../../../../context';\nimport { useTranslations } from '../../../../hooks/useTranslations';\nimport { OrderOnBehalf } from '../../../OrderOnBehalf';\nimport { TOP_AREA_BANNER_BENEFIT_BANNER } from '../../constants';\nimport { Root } from '../../styles';\nimport { TopAreaBannerDialog } from '../TopAreaBannerDialog';\nimport { goToPage } from './goToPage';\nimport { Title } from './styles';\n\nexport const TopAreaBannerContent: FC = () => {\n const { getTestId } = useTestId();\n const { benefitBannerData, isAnonymousWithStore, isOrderOnBehalfVisible } = useTopAreaBanner();\n const { translations } = useTranslations();\n const [open, setOpen] = useState(false);\n const onClose = useCallback(() => setOpen(false), []);\n const onTopAreaBannerClick = useCallback(() => {\n if (isAnonymousWithStore) {\n setOpen(true);\n } else if (benefitBannerData?.messageUrl) {\n goToPage(benefitBannerData.messageUrl);\n }\n }, [benefitBannerData?.messageUrl, isAnonymousWithStore]);\n\n if (isOrderOnBehalfVisible) {\n return (\n \n \n \n );\n }\n\n return (\n <>\n \n \n {isAnonymousWithStore ? translations.topAreaBannerReferralMessage : benefitBannerData?.messageTitle}\n \n \n \n \n );\n};\n","import type { FC } from 'react';\n\nimport { useTopAreaBanner } from '../../context';\nimport { TopAreaBannerContent, TopAreaBannerSkeleton } from './components';\n\nexport const TopAreaBanner: FC = () => {\n const { loading, visible } = useTopAreaBanner();\n\n if (!visible) {\n return null;\n }\n\n return loading ? : ;\n};\n","import { styled } from '@ori-ui/mui';\nimport { shouldForwardProp } from '@ori/presentation-utils';\n\nimport {\n CSS_DESKTOP_INNER_HEIGHT,\n CSS_HEIGHT_ANIMATION,\n CSS_MOBILE_INNER_HEIGHT,\n TOP_AREA_BORDER_BOTTOM,\n} from '../../constants';\nimport { TOP_AREA_BANNER_HEIGHT } from '../TopAreaBanner';\n\ninterface RootProps {\n isSearchInputVisible?: boolean;\n isTopBannerVisible?: boolean;\n}\n\nexport const Root = styled('nav', {\n shouldForwardProp: shouldForwardProp(),\n})(({ theme, isSearchInputVisible, isTopBannerVisible }) => ({\n alignItems: 'center',\n backgroundColor: theme.palette.common.white,\n borderBottom: `${TOP_AREA_BORDER_BOTTOM}px solid ${isSearchInputVisible ? theme.palette.common.white : theme.palette.grey[100]}`,\n boxSizing: 'border-box',\n display: 'flex',\n height: CSS_MOBILE_INNER_HEIGHT,\n left: 0,\n padding: theme.spacing(0, 3),\n position: 'fixed',\n top: isTopBannerVisible ? TOP_AREA_BANNER_HEIGHT : 0,\n transition: `height ${CSS_HEIGHT_ANIMATION}, background-color 0.1s ease-in-out`,\n width: '100vw',\n zIndex: theme.zIndex.appBar,\n\n [theme.breakpoints.up('md')]: {\n borderBottom: `${TOP_AREA_BORDER_BOTTOM}px solid ${theme.palette.grey[100]}`,\n height: CSS_DESKTOP_INNER_HEIGHT,\n padding: theme.spacing(0, 9, 0, 6),\n },\n\n [theme.breakpoints.up('lg')]: {\n padding: theme.spacing(0, 11, 0, 8),\n },\n\n [theme.breakpoints.up('xl')]: {\n padding: theme.spacing(0, 15, 0, 12),\n },\n}));\n","import useTestId from '@ori/testid-generator';\nimport type { FC, ReactElement } from 'react';\n\nimport { useSearchInput } from '../../context/navigation';\nimport type { VipAccessResponse } from '../../models';\nimport { AccountFlyout } from '../Account/AccountFlyout';\nimport { BurgerMenu } from '../BurgerMenu';\nimport { JoinMenu } from '../Join/JoinMenu';\nimport { LeftActionsSection } from '../LeftActionsSection';\nimport { RightActionsSection } from '../RightActionsSection';\nimport { SearchInput } from '../SearchInput';\nimport { SearchResults } from '../SearchResults/SearchResults';\nimport { TopAreaBanner } from '../TopAreaBanner';\nimport { TOP_AREA_ROOT } from './constants';\nimport { Root } from './styles';\n\nexport interface TopAreaProps {\n isTopBannerVisible?: boolean | undefined;\n personalMenu?: ReactElement | undefined;\n vipAccess?: VipAccessResponse | undefined;\n}\n\nexport const TopArea: FC = ({ isTopBannerVisible, personalMenu }) => {\n const { getTestId } = useTestId();\n const { isVisible: isSearchInputVisible } = useSearchInput();\n\n return (\n \n \n \n \n \n \n \n {personalMenu}\n \n \n \n );\n};\n","export const TOP_AREA_ROOT = 'root';\n","import { useEnvironmentConfiguration } from '@ori/environment';\nimport { useEffect } from 'react';\n\nimport { AB_TASTY_SCRIPT_URL, AB_TASTY_SCRIPT_IDS } from '../constants';\nimport { useAppConfig } from '../context';\n\n/**\n * Returns the AB Tasty script id based on the tenant and environment.\n * Example of generated url - https://try.abtasty.com/d7969c131a7cd1e6eae1663545c12f7e.js\n * @param tenant\n * @param environment\n */\nexport const getScriptId = (tenant: string | undefined, environment: string | undefined) => {\n const key = tenant && environment ? `${tenant}_${environment}` : null;\n\n return key && AB_TASTY_SCRIPT_IDS[key] ? `${AB_TASTY_SCRIPT_URL}${AB_TASTY_SCRIPT_IDS[key]}.js` : null;\n};\n\n/**\n * Loads the AB Tasty script if the feature is enabled and have corresponding script with the current tenant and environment.\n */\nexport const useLoadAbTastyScript = () => {\n const { abTastyEnabled } = useAppConfig();\n const { environment, tenant } = useEnvironmentConfiguration();\n\n useEffect(() => {\n const scriptId = getScriptId(tenant, environment);\n\n if (abTastyEnabled && scriptId) {\n const script = document.createElement('script');\n script.src = scriptId;\n script.async = true;\n document.body.append(script);\n\n return () => script.remove();\n }\n\n return undefined;\n }, [abTastyEnabled, environment, tenant]);\n};\n","import { useWindowSize } from '@ori/presentation-hooks';\nimport throttle from 'lodash.throttle';\nimport { useEffect } from 'react';\n\nimport { useAppConfig, useTopAreaBanner } from '../context';\nimport { useSearchInput } from '../context/navigation';\nimport { useIsMobile } from './useIsMobile';\n\nexport enum TopNavClassName {\n default = 'top-nav',\n mobile = 'top-nav--is-mobile',\n shrunk = 'top-nav--is-shrunk',\n withTopAreaBanner = 'top-nav--with-top-area-banner',\n searchInputVisible = 'top-nav--search-input-visible',\n}\n\nconst getClassList = () => document.body.classList;\n\nconst addClassName = (className: TopNavClassName) => getClassList().add(className);\n\nconst removeClassName = (className: TopNavClassName) => getClassList().remove(className);\n\nexport const useManagedHeight = () => {\n const isMobile = useIsMobile();\n const { width } = useWindowSize();\n const { visible: bannerVisible } = useTopAreaBanner();\n const { isVisible: inputVisible } = useSearchInput();\n const { showSearchOnScroll } = useAppConfig();\n useEffect(() => {\n if (width) {\n addClassName(TopNavClassName.default);\n if (isMobile) {\n addClassName(TopNavClassName.mobile);\n if (showSearchOnScroll && inputVisible) {\n addClassName(TopNavClassName.searchInputVisible);\n } else {\n removeClassName(TopNavClassName.searchInputVisible);\n }\n } else {\n removeClassName(TopNavClassName.mobile);\n }\n if (bannerVisible) {\n addClassName(TopNavClassName.withTopAreaBanner);\n } else {\n removeClassName(TopNavClassName.withTopAreaBanner);\n }\n }\n }, [isMobile, bannerVisible, width, inputVisible, showSearchOnScroll]);\n useEffect(() => {\n const onScroll = throttle(() => {\n if (window.scrollY > 0) {\n addClassName(TopNavClassName.shrunk);\n } else {\n removeClassName(TopNavClassName.shrunk);\n }\n }, 100);\n window.addEventListener('scroll', onScroll);\n\n return () => window.removeEventListener('scroll', onScroll);\n }, []);\n};\n","// istanbul ignore file -- all submodules are tested and this just provides the context and data for the TopArea component\nimport { useEffect } from 'react';\n\nimport { TopAreaBlock } from '../components';\nimport { TopArea } from '../components/TopArea';\nimport { useTopAreaBanner } from '../context';\nimport { useAboutTiles, useInspirationTiles, useJoinTiles, useShopSection } from '../context/navigation';\nimport {\n useClickSignInButtonSupportCenter,\n useLoadAbTastyScript,\n useManagedHeight,\n usePersonalMenuPortal,\n useReturnUrl,\n useToggleMenuHandler,\n} from '../hooks';\n\nexport const Content = () => {\n const personalMenu = usePersonalMenuPortal();\n const { visible: isTopBannerVisible } = useTopAreaBanner();\n const { fetch: fetchAboutTiles } = useAboutTiles();\n const { fetch: fetchInspirationTiles } = useInspirationTiles();\n const { fetch: fetchJoinTiles } = useJoinTiles();\n const { fetch: fetchShopSection } = useShopSection();\n useLoadAbTastyScript();\n\n useClickSignInButtonSupportCenter();\n useManagedHeight();\n useReturnUrl();\n useToggleMenuHandler();\n useEffect(() => {\n fetchAboutTiles();\n fetchInspirationTiles();\n fetchJoinTiles();\n fetchShopSection();\n }, [fetchAboutTiles, fetchInspirationTiles, fetchJoinTiles, fetchShopSection]);\n\n return (\n \n \n \n );\n};\n","import { MenuTypes } from '@ori-events/toggle-menu-flyout';\nimport { useEffect } from 'react';\n\nimport { useActiveMenu } from '../context/navigation/activeMenuContext';\nimport { dispatchToggleMenu } from '../utils';\n\nexport const SUPPORT_CENTER_LOGIN_BUTTON_CLASS = 'support-center-footer-login__button';\nexport const useClickSignInButtonSupportCenter = () => {\n const { activeMenu } = useActiveMenu();\n useEffect(() => {\n const loginButton = document.querySelector(`.${SUPPORT_CENTER_LOGIN_BUTTON_CLASS}`);\n const onClick = (event: Event) => {\n event.preventDefault();\n dispatchToggleMenu(MenuTypes.AccountSideMenu, activeMenu);\n };\n loginButton?.addEventListener('click', onClick);\n\n return () => loginButton?.removeEventListener('click', onClick);\n }, [activeMenu]);\n};\n","import { MenuTypes } from '@ori-events/toggle-menu-flyout';\nimport { getCurrentUrl } from '@ori/presentation-utils';\nimport { useEffect } from 'react';\n\nimport { CONSULTANT_NUMBER_QUERY_PARAM_KEY, RETURN_URL_QUERY_PARAM_KEY } from '../constants';\nimport { useAppConfig } from '../context';\nimport { dispatchToggleMenu } from '../utils';\n\nexport const useReturnUrl = () => {\n const { externalLoginName } = useAppConfig();\n useEffect(() => {\n const { searchParams } = getCurrentUrl();\n const returnUrl = searchParams.get(RETURN_URL_QUERY_PARAM_KEY);\n const consultantNumberQueryParam = searchParams.get(CONSULTANT_NUMBER_QUERY_PARAM_KEY);\n if (Boolean(returnUrl) || Boolean(externalLoginName) || consultantNumberQueryParam) {\n dispatchToggleMenu(MenuTypes.AccountSideMenu);\n }\n }, [externalLoginName]);\n};\n","import type { Event } from '@ori-events/toggle-menu-flyout';\nimport { Name } from '@ori-events/toggle-menu-flyout';\nimport { useEffect } from 'react';\n\nimport { useActiveMenu } from '../context/navigation/activeMenuContext';\n\ndeclare global {\n interface WindowEventMap {\n [Name]: Event;\n }\n}\n\nexport const useToggleMenuHandler = () => {\n const { toggleActiveMenu } = useActiveMenu();\n useEffect(() => {\n const onToggle = (event: Event) => toggleActiveMenu(event.detail.menuType);\n window.addEventListener(Name, onToggle);\n\n return () => window.removeEventListener(Name, onToggle);\n }, [toggleActiveMenu]);\n};\n","/* istanbul ignore file -- not testable as it's lazy loaded */\nimport type { Theme } from '@ori-ui/mui';\nimport { useMediaQuery } from '@ori-ui/mui';\nimport { Suspense, useEffect, useRef } from 'react';\nimport { createPortal } from 'react-dom';\n\nimport { useLazyPersonalMenu } from './useLazyPersonalMenu';\n\nexport const usePersonalMenuPortal = () => {\n const isDesktop = useMediaQuery((theme) => theme.breakpoints.up(1025));\n const personalMenu = useLazyPersonalMenu();\n const ref = useRef(null);\n\n useEffect(() => {\n ref.current = document.getElementById('personal-menu-root');\n\n return () => {\n ref.current = null;\n };\n }, []);\n if (ref.current && isDesktop) {\n return createPortal({personalMenu}, ref.current);\n }\n\n return undefined;\n};\n","export const CONSULTANT_NUMBER_QUERY_PARAM_KEY = 'chPwdUsr';\n\nexport const RETURN_URL_QUERY_PARAM_KEY = 'returnUrl';\n","// istanbul ignore file -- constant file\nimport { UserSegmentationDataProvider } from '@ori/presentation-http';\n\nimport { AppPromoProvider, CataloguesProvider, ConsultantProvider, TopAreaBannerProvider } from '../context';\nimport {\n AboutTilesProvider,\n ActiveLinkProvider,\n ActiveMenuProvider,\n InspirationTilesProvider,\n JoinTilesProvider,\n LabelsProvider,\n PbsContentProvider,\n SearchInputProvider,\n ShopSectionProvider,\n} from '../context/navigation';\nimport { composeProviders } from '../utils';\nimport { ApiProvider } from './ApiProvider';\n\nexport const Context = composeProviders(\n ApiProvider,\n UserSegmentationDataProvider,\n AppPromoProvider,\n PbsContentProvider,\n SearchInputProvider,\n ActiveLinkProvider,\n ActiveMenuProvider,\n ConsultantProvider,\n TopAreaBannerProvider,\n AboutTilesProvider,\n InspirationTilesProvider,\n JoinTilesProvider,\n LabelsProvider,\n ShopSectionProvider,\n CataloguesProvider,\n);\n","import type { FC, PropsWithChildren } from 'react';\n\nexport const composeProviders = (...providers: Array>) =>\n function Providers({ children }: PropsWithChildren) {\n return (\n <>\n {providers.reduceRight(\n (accumulated, Provider) => (\n {accumulated}\n ),\n children,\n )}\n \n );\n };\n","import { useToken } from '@ori/auth';\nimport { useServiceUrls } from '@ori/configuration-manager';\nimport { ApiClientProvider as GlobalApiClientProvider } from '@ori/global-api-client-react';\nimport { ApiClientProvider as StaticApiClientProvider } from '@ori/static-api-client-react';\nimport type { FC, PropsWithChildren } from 'react';\n\nimport { useAppConfig } from '../context';\n\nexport const ApiProvider: FC = ({ children }) => {\n const { currentLanguage, tenant } = useAppConfig();\n const { globalApiUrl, staticApiUrl } = useServiceUrls(['globalApi', 'staticApi']);\n const { formattedToken } = useToken();\n\n return (\n \n {children}\n \n );\n};\n","import { useEffect, useState } from 'react';\nimport UAParser from 'ua-parser-js';\n\nexport interface UseMobileOs {\n userOs: 'Android' | 'Ios' | null;\n}\n\nexport const useMobileOs = (): UseMobileOs => {\n const [userOs, setUserOs] = useState<'Android' | 'Ios' | null>(null);\n useEffect(() => {\n const parse = new UAParser();\n const os = parse.getOS();\n if (os.name === 'Android') {\n setUserOs(os.name);\n } else if (os.name === 'iOS') {\n setUserOs('Ios');\n }\n }, []);\n\n return { userOs };\n};\n","import { useSessionStorage } from './useSessionStorage';\n\nexport const SESSION_STORAGE_KEY = 'ori-pbs-was-tooltip-shown';\n\n/**\n * Controls if tooltip was shown on this device already\n */\nexport const useWasTooltipShown = () => useSessionStorage(SESSION_STORAGE_KEY, false);\n","import type { Dispatch, SetStateAction } from 'react';\nimport { useState } from 'react';\n\nexport function useSessionStorage(key: string, initialValue: T) {\n const [storedValue, setStoredValue] = useState(() => {\n /* istanbul ignore if */\n if (typeof window === 'undefined') {\n return initialValue;\n }\n\n try {\n const item = window.sessionStorage.getItem(key);\n\n return item ? (JSON.parse(item) as T) : initialValue;\n } catch (error) {\n // eslint-disable-next-line no-console -- We want to see the error\n console.log(error);\n\n return initialValue;\n }\n });\n\n const setValue: Dispatch> = (valueOrFunction) => {\n setStoredValue((prevValue) => {\n try {\n const valueToStore =\n typeof valueOrFunction === 'function' ? (valueOrFunction as (prevState: T) => T)(prevValue) : valueOrFunction;\n\n if (typeof window !== 'undefined') {\n window.sessionStorage.setItem(key, JSON.stringify(valueToStore));\n }\n\n return valueToStore;\n } catch (error) {\n // eslint-disable-next-line no-console -- We want to see the error\n console.log(error);\n\n return prevValue;\n }\n });\n };\n\n return [storedValue, setValue] as const;\n}\n","/* istanbul ignore file */\nimport { useToken } from '@ori/auth';\nimport type { FC, PropsWithChildren } from 'react';\nimport { useMemo } from 'react';\n\nimport { useWasTooltipShown } from '../../hooks/useWasTooltipShown';\nimport { ReferralType } from '../../models';\nimport type { PersonalBeautyStoreContext } from '../../types';\nimport { useConfiguration } from '../ConfigurationProvider';\nimport { personalBeautyStoreContext } from './personalBeautyStoreContext';\nimport { useCookieStoreInfo } from './useCookieStoreInfo';\nimport { useInviteFriendData } from './useInviteFriendData';\nimport { usePersonalBeautyStoreData } from './usePersonalBeautyStoreData';\nimport { usePersonalBeautyStoreUserInfo } from './usePersonalBeautyStoreUserInfo';\n\nexport const PersonalBeautyStoreProvider: FC = ({ children }) => {\n const { isEnabled, isTooltipEnabled } = useConfiguration();\n const { isAnonymousUser } = useToken();\n const storeInfo = useCookieStoreInfo();\n const pbsData = usePersonalBeautyStoreData();\n const inviteFriendData = useInviteFriendData();\n const [tooltipWasShown, setTooltipWasShown] = useWasTooltipShown();\n const { firstName, lastName } = usePersonalBeautyStoreUserInfo();\n\n /**\n * Anonymous visitor on referral program market (cookie ecref exists).\n */\n const isAnonymousUserOnReferralMarket = isAnonymousUser && storeInfo.type === ReferralType.ECREF;\n\n /**\n * Sponsor info (eg. MenuItem) can be displayed to logged in EndCustomers who have sponsor or anonymous visitors to the non-referral program market.\n */\n const canDisplaySponsorInfo = isEnabled && Boolean(pbsData?.beautyStore?.profile) && !isAnonymousUserOnReferralMarket;\n\n const canDisplayTooltip = isEnabled && !tooltipWasShown && Boolean(firstName ?? lastName) && isTooltipEnabled;\n\n const value = useMemo(\n (): PersonalBeautyStoreContext => ({\n pbsData,\n storeInfo,\n inviteFriendData,\n canDisplaySponsorInfo,\n canDisplayTooltip,\n tooltipWasShown,\n setTooltipWasShown,\n }),\n [\n pbsData,\n storeInfo,\n inviteFriendData,\n canDisplaySponsorInfo,\n canDisplayTooltip,\n tooltipWasShown,\n setTooltipWasShown,\n ],\n );\n\n return {children};\n};\n","/**\n * Updates current url query parameters without reloading page in browser\n */\nexport const updateQueryParameters = (newQueryParameters: URLSearchParams) => {\n const newUrl = new URL(window.location.toString());\n newUrl.search = newQueryParameters.toString();\n\n window.history.replaceState('', document.title, newUrl);\n};\n","import { updateQueryParameters } from './updateQueryParameters';\n\n/**\n * Removes query parameter from browser URL\n */\nexport const removeQueryParameter = (name: string) => {\n const queryParams = new URLSearchParams(window.location.search);\n\n if (!queryParams.has(name)) {\n return;\n }\n\n queryParams.delete(name);\n\n updateQueryParameters(queryParams);\n};\n","import { updateQueryParameters } from './updateQueryParameters';\n\n/**\n * Ensures that there is query parameter by provided name and value in browser URL\n */\nexport const ensureQueryParameter = (name: string, value: string) => {\n const queryParams = new URLSearchParams(window.location.search);\n\n // There is no need to update or add new parameter so skipping\n if (queryParams.has(name) && queryParams.get(name) === value) {\n return;\n }\n\n queryParams.set(name, value);\n\n updateQueryParameters(queryParams);\n};\n","import Cookies from 'js-cookie';\nimport { useEffect } from 'react';\n\nimport { cookiesToTransform } from '../../constants';\nimport type { RemoveQueryParameterCallback, SetQueryParameterCallback } from '../../types';\nimport {\n debug,\n removeQueryParameter as removeQueryParameterHistoryApi,\n ensureQueryParameter as setQueryParameterHistoryApi,\n} from '../../utils';\n\nexport interface CookieToUrlParams {\n removeQueryParameter: RemoveQueryParameterCallback;\n\n setQueryParameter: SetQueryParameterCallback;\n}\n\n/**\n * Reads cookie and transforms them into url - if found\n */\nexport const useCookieToUrl = (parameters?: CookieToUrlParams) => {\n useEffect(() => {\n const removeQueryParameter = parameters?.removeQueryParameter ?? removeQueryParameterHistoryApi;\n const setQueryParameter = parameters?.setQueryParameter ?? setQueryParameterHistoryApi;\n\n let foundPrev = false;\n\n for (const cookieInfo of cookiesToTransform) {\n const {\n cookie: cookieName,\n queryParam: queryParamName,\n stopIfFound,\n stopIfFoundPrev,\n removeIfNotFound,\n } = cookieInfo;\n const cookieValue = Cookies.get(cookieName);\n const stop = stopIfFoundPrev && foundPrev;\n\n // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions -- eslint rule conflict - there is no way how to correctly satisfy eslint\n if (!cookieValue?.length) {\n if (removeIfNotFound) {\n removeQueryParameter(queryParamName);\n }\n\n debug(`Cookie value under the name of '${cookieName}' was not found!`);\n\n foundPrev = false;\n\n // stop if we should stop prematurely\n if (stop) {\n break;\n }\n continue;\n }\n\n // Ensure that query parameter is present and with correct value\n setQueryParameter(queryParamName, cookieValue);\n\n foundPrev = true;\n\n if (stopIfFound ?? stop) {\n break;\n }\n }\n }, [parameters?.removeQueryParameter, parameters?.setQueryParameter]);\n};\n","/* istanbul ignore file */\nimport { useToken } from '@ori/auth';\nimport { SWRConfig } from '@ori/fetching';\nimport { ApiClientProvider } from '@ori/global-api-client-react';\nimport type { FC, PropsWithChildren } from 'react';\n\nimport { ConfigurationProvider, PersonalBeautyStoreProvider } from '../contexts';\nimport { useCookieToUrl } from '../hooks';\nimport type { AppConfiguration, RemoveQueryParameterCallback, SetQueryParameterCallback } from '../types';\n\nexport interface PbsAppProps {\n configuration: AppConfiguration;\n removeQueryParameter?: RemoveQueryParameterCallback | undefined;\n setQueryParameter?: SetQueryParameterCallback | undefined;\n}\n\nexport const PbsApp: FC> = ({\n children,\n configuration,\n setQueryParameter,\n removeQueryParameter,\n}) => {\n useCookieToUrl(setQueryParameter && removeQueryParameter ? { setQueryParameter, removeQueryParameter } : undefined);\n const { formattedToken } = useToken();\n\n return (\n \n \n \n {children}\n \n \n \n );\n};\n","// istanbul ignore file -- just wrapper for contexts\nimport { useToken } from '@ori/auth';\nimport { useServiceUrls } from '@ori/configuration-manager';\nimport { PbsApp } from '@ori/personal-beauty-store';\nimport type { PbsAppProps } from '@ori/personal-beauty-store';\nimport type { FC, PropsWithChildren } from 'react';\nimport { useMemo } from 'react';\n\nimport { useAppConfig } from '../context';\nimport type { TopAreaProps } from './types';\n\nexport const Pbs: FC>> = ({\n children,\n removeQueryParameter,\n setQueryParameter,\n}) => {\n const { customerId } = useToken();\n const { currentLanguage, enableTopAreaBanner, pbsIconInBurgerMenu, tenant } = useAppConfig();\n const {\n globalApiUrl,\n graphQlUrl: graphqlUrl,\n identityUrl,\n staticApiUrl,\n } = useServiceUrls(['globalApi', 'graphQl', 'identity', 'staticApi']);\n const configuration = useMemo(\n (): PbsAppProps['configuration'] => ({\n currentLanguage,\n customerId,\n globalApiUrl,\n graphqlUrl,\n identityUrl,\n isEnabled: Boolean(enableTopAreaBanner) || Boolean(pbsIconInBurgerMenu),\n isTooltipEnabled: !enableTopAreaBanner,\n staticApiUrl,\n tenant,\n }),\n [\n currentLanguage,\n customerId,\n enableTopAreaBanner,\n globalApiUrl,\n graphqlUrl,\n identityUrl,\n pbsIconInBurgerMenu,\n staticApiUrl,\n tenant,\n ],\n );\n\n return (\n \n {children}\n \n );\n};\n","// istanbul ignore file -- all submodules are tested\nimport { useToken } from '@ori/auth';\nimport { TranslationsNamespaceProvider } from '@ori/i18n';\nimport { Team, TestIdProvider } from '@ori/testid-generator';\nimport type { FC } from 'react';\n\nimport { AppPromoBanner } from '../components';\nimport { translationsNamespace } from '../constants';\nimport { AppConfigProvider } from '../context';\nimport { Content } from './Content';\nimport { Context } from './Context';\nimport { Pbs } from './Pbs';\nimport type { TopAreaProps } from './types';\n\nexport const TopArea: FC = ({ configuration, ...pbs }) => {\n const { token } = useToken();\n\n if (!token) {\n return null;\n }\n\n return (\n \n \n \n \n \n \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[2].use[1]!../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./App.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./App.css\";\n export default content && content.locals ? content.locals : undefined;\n","import { ThemeProvider } from '@ori-ui/mui';\nimport { UniversalTokenProvider, doDevelopmentLogin } from '@ori/auth';\nimport type { PickClientAppDataConfigProps } from '@ori/client-app-config';\nimport { parseClientAppConfig } from '@ori/client-app-config';\nimport { ServiceUrlsProvider } from '@ori/configuration-manager';\nimport { ClientCultureProvider } from '@ori/culture';\nimport { TranslationsProvider } from '@ori/i18n';\nimport { LoginProvider } from '@ori/login';\nimport { ErrorBoundary } from '@ori/presentation-components';\nimport { ApiClientProvider as StaticApiClientProvider } from '@ori/static-api-client-react';\nimport type { AppConfig } from '@ori/top-area';\nimport { TopArea, defaultTranslationsWithNamespaces } from '@ori/top-area';\nimport '@ori/top-area/src/App.css';\nimport { createRoot } from 'react-dom/client';\n\n/**\n * React app renderer that is used when app is used as a standalone app\n */\nexport const render = async (rootElement: HTMLElement) => {\n const { config = '' } = rootElement.dataset;\n const { customerId, identityUrl, ...clientAppConfig } = parseClientAppConfig<\n AppConfig &\n PickClientAppDataConfigProps<\n 'currentLanguage' | 'customerId' | 'globalApiUrl' | 'graphqlUrl' | 'identityUrl' | 'staticApiUrl' | 'tenant'\n >\n >(config, [\n 'currentLanguage',\n 'globalApiUrl',\n 'graphqlUrl',\n 'mobileOfficeApiUrl',\n 'ssoAdLoginUrl',\n 'staticApiUrl',\n 'tenant',\n 'useSsoIdentityLogin',\n ]);\n const { currentLanguage, globalApiUrl, graphqlUrl, mobileOfficeApiUrl, staticApiUrl, tenant, useSsoIdentityLogin } =\n clientAppConfig;\n\n // Get token for local development\n if (process.env.NODE_ENV !== 'production') {\n // when using Requestly we do not want to load token\n if (process.env.REACT_APP_USE_REQUESTLY === '1') {\n // eslint-disable-next-line no-console -- wanted behavior\n console.log('USING REQUESTLY');\n } else {\n if (!identityUrl) {\n throw new Error('Missing Identity URL!');\n }\n\n await doDevelopmentLogin({ identityUrl, tenant });\n }\n }\n\n createRoot(rootElement).render(\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n ,\n );\n};\n","import { Pbs as PbsWaveIcon, Products } from '@ori-ui/icons';\nimport { Avatar, Box, Link, styled, useTheme } from '@ori-ui/mui';\nimport useTestId from '@ori/testid-generator';\nimport type { FC } from 'react';\n\nimport { useTranslations } from '../../hooks/useTranslations';\nimport { LiveStreamingStates, MenuItemTestIds, TranslationKey } from '../../models';\nimport { LiveStreamingStateWrap } from '../common/LiveStreamingStateWrap';\n\n/**\n * Avatar size. Value is in pixels\n */\nconst AVATAR_SIZE = 28;\ninterface BaseLinkConfiguration {\n isEnabled: boolean;\n sharedUrl?: string | null;\n}\n\nexport interface MenuItemPersonalLinksProps {\n liveStreamingState?: LiveStreamingStates;\n personalProductListConfiguration?: BaseLinkConfiguration;\n videoShoppingConfiguration?: BaseLinkConfiguration;\n}\n\nexport const StyledAvatar = styled(Avatar)(({ theme }) => ({\n width: AVATAR_SIZE,\n height: AVATAR_SIZE,\n backgroundColor: theme.palette.grey[100],\n color: theme.palette.grey[900],\n}));\n\nexport const StyledProducts = styled(Products)(({ theme }) => ({\n width: 22,\n height: 24,\n margin: theme.spacing(1.4, 0.6),\n}));\n\nexport const LinkWrap = styled(Box)(({ theme }) => ({\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n gap: theme.spacing(2),\n}));\n\nconst Root = styled(Box)(({ theme }) => ({\n marginTop: theme.spacing(6),\n}));\nconst PersonalLink = styled(Link)(({ theme }) => ({\n color: theme.palette.common.black,\n textDecoration: 'underline',\n fontWeight: 'bold',\n fontSize: 14 /* theme.typography.pxToRem(14) this seems to return 1.4 rem instead of 0.875 rem */,\n}));\n\nexport const getLiveStreamingLabel = (liveStreamingState: LiveStreamingStates) => {\n switch (liveStreamingState) {\n case LiveStreamingStates.IS_LIVE:\n return TranslationKey.LiveNow;\n case LiveStreamingStates.PLANNED:\n return TranslationKey.LiveVideoStartingSoon;\n default:\n return TranslationKey.WatchLatestVideo;\n }\n};\nexport const MenuItemPersonalLinks: FC = ({\n personalProductListConfiguration,\n videoShoppingConfiguration,\n liveStreamingState,\n photoUrl,\n}) => {\n const theme = useTheme();\n const { formatMessage } = useTranslations();\n const { getTestIdProps } = useTestId();\n\n return (\n \n {personalProductListConfiguration?.isEnabled && personalProductListConfiguration.sharedUrl ? (\n \n \n \n {formatMessage(TranslationKey.SeeMyFavoriteProducts)}\n \n \n ) : null}\n {videoShoppingConfiguration?.isEnabled && videoShoppingConfiguration.sharedUrl ? (\n \n \n \n \n \n \n \n {formatMessage(getLiveStreamingLabel(liveStreamingState ?? LiveStreamingStates.UNKNOWN))}\n \n \n ) : null}\n \n );\n};\n","export enum LiveStreamingStateWrapTestIds {\n AVATAR_BADGE_IS_LIVE = 'live-streaming-state-avatar-badge-is-live',\n AVATAR_BADGE_WAS_LIVE = 'live-streaming-state-avatar-badge-was-live',\n}\n","import { Badge, styled } from '@ori-ui/mui';\nimport useTestId from '@ori/testid-generator';\nimport type { FC, PropsWithChildren, ReactElement } from 'react';\nimport { memo } from 'react';\n\nimport { LiveStreamingStateWrapTestIds, LiveStreamingStates } from '../../../models';\n\nconst NowLiveStreamingRoot = styled('div')(({ theme }) => ({\n borderRadius: 999,\n boxShadow: `0px 0px 0 2px ${theme.palette.red[300]}`,\n position: 'relative',\n}));\n\nconst NowLiveStreamingText = styled('div')(({ theme }) => ({\n backgroundColor: theme.palette.red[300],\n fontSize: theme.typography.pxToRem(5),\n color: theme.palette.common.white,\n padding: theme.spacing(0, 0.8),\n borderRadius: '3px',\n position: 'absolute',\n left: '50%',\n transform: 'translateX(-50%)',\n bottom: theme.spacing(-1),\n}));\n\nconst badgeSize = 2;\nconst StyledBadge = styled(Badge)(({ theme }) => ({\n '& .MuiBadge-badge': {\n backgroundColor: theme.palette.red[300],\n color: theme.palette.red[300],\n width: theme.spacing(badgeSize),\n minWidth: theme.spacing(badgeSize),\n height: theme.spacing(badgeSize),\n padding: 0,\n border: 0,\n position: 'absolute',\n right: 0,\n top: 0,\n transform: 'scale(1) !important',\n },\n}));\n\nexport const LiveStreamingStateWrap: FC = memo(\n ({ children, streamingActivity }) => {\n const { getTestIdProps } = useTestId();\n\n if (streamingActivity === LiveStreamingStates.WAS_LIVE || streamingActivity === LiveStreamingStates.PLANNED) {\n return (\n {children}\n );\n }\n\n if (streamingActivity === LiveStreamingStates.IS_LIVE) {\n return (\n \n {children}\n LIVE\n \n );\n }\n\n return children as ReactElement;\n },\n);\n","import { NOT_LOGGED_IN_USER_ID } from '@ori/auth';\n\nimport { PbsCookieNames } from '../models';\nimport type { AppConfiguration, CookieToTransform } from '../types';\n\n/**\n * Desktop breakpoint\n */\nexport const DESKTOP_BREAKPOINT = 1024;\n\n/**\n/**\n * Default configuration values\n */\nexport const configurationContextDefaultValues: AppConfiguration = {\n currentLanguage: '',\n customerId: NOT_LOGGED_IN_USER_ID,\n graphqlUrl: '',\n globalApiUrl: '',\n identityUrl: '',\n staticApiUrl: '',\n tenant: '',\n isEnabled: false,\n isTooltipEnabled: false,\n};\n\n// The cookies are processed in the order they appear in this array,\n// and processing stops at the first found cookie that has stopIfFound == true\nexport const cookiesToTransform: CookieToTransform[] = [\n {\n cookie: PbsCookieNames.PBS_CODE,\n queryParam: 'store',\n stopIfFound: true,\n },\n {\n cookie: PbsCookieNames.ECREF_OWNER,\n queryParam: 'invite',\n stopIfFound: true,\n },\n {\n cookie: PbsCookieNames.PBS_OWNER,\n queryParam: 'store',\n stopIfFound: false,\n },\n {\n cookie: PbsCookieNames.ECREF,\n queryParam: 'invite',\n stopIfFound: true,\n },\n];\n\nexport * from './defaultTranslations';\nexport * from './app';\n","import { Component } from 'react';\n\ninterface ErrorBoundaryProps {\n children: JSX.Element;\n}\n\ninterface ErrorBoundaryState {\n error?: Error;\n}\n\nexport class ErrorBoundary extends Component {\n override readonly state: ErrorBoundaryState = {};\n\n static getDerivedStateFromError(error: Error) {\n return { error };\n }\n\n override render() {\n const { error } = this.state;\n\n if (error) {\n // eslint-disable-next-line no-console -- We display full error to console instead of just showing message to user\n console.error(error);\n\n // We don't want to render anything\n return null;\n }\n\n const { children } = this.props;\n\n return children;\n }\n}\n","/* istanbul ignore file */\nimport { TranslationsNamespaceProvider } from '@ori/i18n';\nimport { TestIdProvider } from '@ori/testid-generator';\nimport type { FC, PropsWithChildren } from 'react';\n\nimport { APP_NAME, APP_TEAM_NAME, translationsNamespace } from '../constants';\nimport { ErrorBoundary } from './ErrorBoundary';\n\nexport const ComponentWrapper: FC = ({ children }) => (\n \n \n {children}\n \n \n);\n","import { createContext } from 'react';\n\nimport type { PersonalBeautyStoreContext } from '../../types';\n\nexport const personalBeautyStoreContext = createContext({\n pbsData: null,\n inviteFriendData: null,\n storeInfo: null,\n canDisplaySponsorInfo: false,\n canDisplayTooltip: false,\n tooltipWasShown: false,\n setTooltipWasShown: () => {},\n});\n","/* istanbul ignore file */\nimport { useContext } from 'react';\n\nimport { personalBeautyStoreContext } from './personalBeautyStoreContext';\n\nexport const usePersonalBeautyStore = () => useContext(personalBeautyStoreContext);\n","/* istanbul ignore file */\n\n/**\n * DO NOT EDIT!\n * This file was autogenerated by npm script `localizations-codegen`.\n * Changes may cause incorrect behavior and will be lost when the file is regenerated.\n *\n * Run `npx localizations-codegen` to regenerate.\n */\nimport { useTranslationsFromNamespace, type UseTranslationsFromNamespaceResult } from '@ori/i18n';\n\nimport type { DefaultTranslations } from '../constants/defaultTranslations';\n\n/**\n * A hook for accessing translations within a specific namespace along with a formatting function.\n *\n * @returns The translations within the specified namespace and a formatting function.\n */\nexport const useTranslations: () => UseTranslationsFromNamespaceResult = () =>\n useTranslationsFromNamespace();\n","export enum LiveStreamingStates {\n WAS_LIVE = 'was-livestreaming',\n IS_LIVE = 'livestreaming',\n PLANNED = 'planned',\n UNKNOWN = 'unknown',\n}\n","export enum MenuItemTestIds {\n ROOT = 'menu-item-root',\n TITLE = 'menu-item-title',\n TITLE_WRAP = 'menu-item-title-wrap',\n AVATAR = 'menu-item-avatar',\n FALLBACK_AVATAR = 'menu-item-fallback-avatar',\n TEXT = 'menu-item-text',\n USER_EMAIL = 'menu-item-user-email',\n USER_PHONE = 'menu-item-user-phone',\n RECOMMENDED_PRODUCTS = 'menu-item-user-recommended-products',\n WATCH_LATEST_VIDEO = 'menu-item-user-watch-latest-video-',\n EXPANDER = 'menu-item-expander-button',\n USER_NAME = 'menu-item-user-name',\n BENEFITS_LINK = 'menu-item-benefits-link',\n}\n","export enum PbsCookieNames {\n ECREF_OWNER = 'ecref_owner',\n ECREF = 'ecref',\n /**\n * This cookie is only available when user is logged in and PBS is active (PBS_OWNER should be defined as well)\n */\n PBS_CODE = 'pbs_code',\n /**\n * This cookie will be available even on anonymous user and controls if PBS should be visible\n */\n PBS_OWNER = 'pbs_owner',\n PPL_CODE = 'ppl_code',\n}\n","/* istanbul ignore file */\n/**\n * DO NOT EDIT!\n * This file was autogenerated by npm script `localizations-codegen`.\n * Changes may cause incorrect behavior and will be lost when the file is regenerated.\n *\n * Run `npx localizations-codegen` to regenerate.\n */\n\nexport enum TranslationKey {\n Greetings = 'Greetings',\n InviteMessageTooltip = 'InviteMessageTooltip',\n LiveNow = 'LiveNow',\n LiveVideoStartingSoon = 'LiveVideoStartingSoon',\n MetaTitleForSharing = 'MetaTitleForSharing',\n ReferralMessageTooltip = 'ReferralMessageTooltip',\n SeeMyFavoriteProducts = 'SeeMyFavoriteProducts',\n SponsorPhoto = 'SponsorPhoto',\n WatchLatestVideo = 'WatchLatestVideo',\n}\n","import type { SocialContactType } from '../models';\n\nexport type Contacts =\n | ReadonlyArray<{\n readonly type?: SocialContactType | null;\n readonly value?: string | null;\n } | null>\n | null\n | undefined;\n\nexport const getContactByType = (\n allowedContacts: Readonly> | null | undefined,\n contacts: Contacts,\n type: SocialContactType,\n) => (allowedContacts?.includes(type) ? contacts?.filter((contact) => contact?.type === type)[0]?.value : null);\n","import type { VideoShow } from '@ori/graphql-schema';\n\nimport { LiveStreamingStates } from '../models';\nimport { ShowType } from '../models/graphql-types/graphql';\n\nconst RecentShowMaxAgeInHours = 24;\nexport interface VideoShoppingConfiguration {\n isVideoShoppingEnabled: boolean | null | undefined;\n currentVideoShow?: VideoShow | null;\n}\nconst subtractHoursToDate = (date: Date, hours: number): Date =>\n new Date(new Date(date).setHours(date.getHours() - hours));\n\nexport const getLiveStreamingStateByVideoConfig = ({\n isVideoShoppingEnabled,\n currentVideoShow,\n}: VideoShoppingConfiguration): LiveStreamingStates => {\n const { endedAtUtc, typeOfShow } = currentVideoShow ?? {};\n\n if (isVideoShoppingEnabled) {\n switch (typeOfShow) {\n case ShowType.Live:\n return LiveStreamingStates.IS_LIVE;\n case ShowType.Scheduled:\n return LiveStreamingStates.PLANNED;\n case ShowType.Ended: {\n if (endedAtUtc) {\n const endedAtUtcDate = new Date(endedAtUtc);\n\n return subtractHoursToDate(new Date(), RecentShowMaxAgeInHours) <= endedAtUtcDate\n ? LiveStreamingStates.WAS_LIVE\n : LiveStreamingStates.UNKNOWN;\n }\n break;\n }\n /* istanbul ignore next - not reachable */\n default:\n return LiveStreamingStates.UNKNOWN;\n }\n }\n\n return LiveStreamingStates.UNKNOWN;\n};\n","interface Replacements {\n [name: string]: string | null | undefined;\n}\n\n/**\n * It replaces placeholders in a URL with values from a dictionary\n * @param {string} urlWithPlaceholders - The URL with placeholders in it.\n * @param {Replacements | null | undefined} replacements - Replacements object with keyof placeholders in urlWithPlaceholders | null | undefined = undefined\n * @returns A function that takes a url and replacements and returns a url with assigned replacement value instead of placeholders if replacements are not empty or undefined or url does not contain placeholders.\n */\nexport const replacePlaceholdersInUrl = (\n urlWithPlaceholders: string,\n replacements: Replacements | null | undefined = undefined,\n): string | null => {\n const numberOfPlaceholdersToReplace = urlWithPlaceholders.match(/{(\\w+)}/g);\n if (!numberOfPlaceholdersToReplace) {\n return null;\n }\n if (\n replacements &&\n Object.values(replacements).some((replacementValue) => replacementValue === null || replacementValue === '')\n ) {\n return null;\n }\n if (\n replacements &&\n Object.keys(replacements).length > 0 &&\n Object.keys(replacements).length >= numberOfPlaceholdersToReplace.length\n ) {\n return urlWithPlaceholders.replace(\n /{(\\w+)}/g,\n (fullMatch, group1: keyof Replacements) => replacements[group1] ?? fullMatch,\n );\n }\n\n return null;\n};\n","export enum MenuContentTestIds {\n ROOT = 'menu-content-root',\n HEADING = 'menu-content-heading',\n TEXT = 'menu-content-text',\n AVATAR = 'menu-content-avatar',\n USER_EMAIL = 'menu-content-user-email',\n USER_PHONE = 'menu-content-user-phone',\n USER_NAME = 'menu-content-user-name',\n BENEFITS_LINK = 'menu-content-benefits-link',\n}\n","import { Avatar, Box, Link, Stack, styled, Typography } from '@ori-ui/mui';\nimport type { ReferralProgram } from '@ori/graphql-schema';\nimport { DynamicFormattedMessage } from '@ori/i18n';\nimport useTestId from '@ori/testid-generator';\nimport type { DeepReadonly } from '@ori/ts-utils';\nimport type { DetailedHTMLProps, FC, HTMLAttributes } from 'react';\n\nimport { useTranslations } from '../../hooks/useTranslations';\nimport { MenuContentTestIds, TranslationKey } from '../../models';\nimport type { MenuItemPersonalLinksProps } from '../MenuItem/MenuItemPersonalLinks';\nimport { MenuItemPersonalLinks } from '../MenuItem/MenuItemPersonalLinks';\n\n/**\n * Avatar size. Value is in pixels\n */\nconst AVATAR_SIZE = 170;\n\n/**\n * Maximal content width. Value is in pixels\n */\nconst MAX_CONTENT_WIDTH = 658;\n\nconst Root = styled('div')(({ theme }) => ({\n backgroundColor: theme.palette.common.white,\n padding: theme.spacing(3),\n maxWidth: MAX_CONTENT_WIDTH,\n}));\n\nconst ItemContentWrap = styled(Stack)(({ theme }) => ({\n display: 'block',\n marginTop: theme.spacing(2.5),\n}));\n\nconst MenuItemPersonalLinksWrap = styled(Box)(({ theme }) => ({\n svg: { width: 22, height: 24, ml: theme.spacing(0.8), mr: theme.spacing(0.6) },\n}));\n\nconst LinkWrap = styled(Typography)(({ theme }) => ({\n display: 'block',\n flexDirection: 'row',\n alignItems: 'center',\n marginTop: theme.spacing(1.5),\n}));\n\nconst StyledAvatar = styled(Avatar)(({ theme }) => ({\n width: AVATAR_SIZE,\n height: AVATAR_SIZE,\n margin: theme.spacing(4),\n}));\n\nexport type MenuContentBaseProps = DetailedHTMLProps, HTMLDivElement>;\n\nexport type MenuContentProps = MenuContentBaseProps &\n MenuItemPersonalLinksProps & {\n photoUrl: string | null | undefined;\n referralProgram: DeepReadonly | null | undefined;\n userEmail: string | null | undefined;\n userPhone: string | null | undefined;\n };\n\nexport const MenuContent: FC = ({\n photoUrl,\n referralProgram,\n userEmail,\n userPhone,\n liveStreamingState,\n personalProductListConfiguration,\n videoShoppingConfiguration,\n ...restProps\n}) => {\n const { getTestIdProps } = useTestId();\n const { formatMessage } = useTranslations();\n\n const { benefitsLink, greetingMessage, message } = referralProgram ?? {};\n\n return (\n \n \n \n \n {greetingMessage}\n \n {message ? (\n \n {chunks},\n }}\n />\n \n ) : null}\n {benefitsLink?.relativeUrl && benefitsLink.title ? (\n \n \n {benefitsLink.title}\n \n \n ) : null}\n {userEmail ? (\n \n \n {userEmail}\n \n \n ) : null}\n {userPhone ? (\n \n \n {userPhone}\n \n \n ) : null}\n \n \n \n \n \n {photoUrl ? (\n \n \n \n ) : null}\n \n );\n};\n","import type { FC } from 'react';\n\nimport type { MenuContentBaseProps } from '../components';\nimport { MenuContent } from '../components';\nimport { usePersonalBeautyStore } from '../contexts';\nimport { SocialContactType } from '../models';\nimport { getContactByType, getLiveStreamingStateByVideoConfig, replacePlaceholdersInUrl } from '../utils';\nimport { ComponentWrapper } from './ComponentWrapper';\n\nexport const MenuContentContainer: FC = (props) => {\n const { canDisplaySponsorInfo, pbsData } = usePersonalBeautyStore();\n\n if (!canDisplaySponsorInfo) {\n return null;\n }\n\n const { profile, productLists, videoShows } = pbsData?.beautyStore ?? {};\n const { photoUrl, contacts, name, referralProgram } = profile ?? {};\n const { allowedContacts } = referralProgram ?? {};\n const { isVideoShoppingEnabled, addThis: videoShoppingConfigurationAddThis } =\n pbsData?.application?.videoShopping?.configuration ?? {};\n const currentVideoShow = videoShows?.find((show) => show?.isCurrent);\n const { sharedUrl: videoShoppingUrl } = videoShoppingConfigurationAddThis as {\n sharedUrl: string;\n };\n const { addThis: pplConfigurationAddThis, isPplEnabled } =\n pbsData?.application?.personalProductListConfiguration ?? {};\n const { sharedUrl: pplUrl } = pplConfigurationAddThis as {\n sharedUrl: string;\n };\n\n const userEmail = getContactByType(allowedContacts, contacts, SocialContactType.Email);\n const userPhone = getContactByType(allowedContacts, contacts, SocialContactType.PhoneNumber);\n\n return (\n \n = 1 ? { personallist: productLists[0]?.productListId } : {}),\n }),\n }}\n />\n \n );\n};\n","import { Box, Skeleton, styled } from '@ori-ui/mui';\nimport useTestId from '@ori/testid-generator';\n\nimport { SKELETON_SUB_CATEGORY_MOBILE_ROOT } from './constants';\n\nconst SkeletonSubCategoryMobileRoot = styled(Box)(({ theme }) => ({\n marginTop: theme.spacing(2),\n}));\n\nconst SkeletonSubCategoryMobileLoader = styled(Skeleton)(({ theme }) => ({\n margin: theme.spacing(0, 3, 1, 6),\n paddingTop: theme.spacing(4),\n}));\n\nconst TOPNAV_EXPANDED_HEIGHT_OFFSET = 200;\nconst SKELETON_HEIGHT = 60;\n\nexport const SkeletonSubCategoryMobile = () => {\n const elements = Math.floor((window.innerHeight - TOPNAV_EXPANDED_HEIGHT_OFFSET) / SKELETON_HEIGHT);\n const { getTestId } = useTestId();\n const steps = Array.from({ length: elements }, (element, index) => index);\n\n const skeletonElements = steps.map((step) => (\n \n ));\n\n return (\n \n {skeletonElements}\n \n );\n};\n","import { Box, Skeleton, styled } from '@ori-ui/mui';\nimport useTestId from '@ori/testid-generator';\n\nimport { SKELETON_SUB_CATEGORY_ROOT } from './constants';\n\nconst SkeletonSubCategoryRoot = styled(Box)(({ theme }) => ({\n marginTop: theme.spacing(4),\n}));\n\nconst SkeletonSubCategoryLoader = styled(Skeleton)(({ theme }) => ({\n margin: theme.spacing(0, 3, 2, 10),\n}));\n\nconst SKELETON_ELEMENTS = 10;\nconst SKELETON_ELEMENT_HEIGHT = 32;\n\nexport const SkeletonSubCategoryDesktop = () => {\n const steps = Array.from({ length: SKELETON_ELEMENTS }, (element, index) => index);\n const { getTestId } = useTestId();\n\n const skeletonElements = steps.map((step) => (\n \n ));\n\n return (\n \n {skeletonElements}\n \n );\n};\n","import type { StaticCataloguesCatalogueDto } from '@ori/static-api-client-react';\n\nexport const formatValidity = (\n catalogueId: string,\n catalogues: StaticCataloguesCatalogueDto[],\n formatValidityDate: (date: Date) => string,\n) => {\n const catalogue = catalogues.find((e) => e.catalogueId.toString() === catalogueId);\n\n if (!catalogue?.valid || !(catalogue.valid.from instanceof Date) || !(catalogue.valid.to instanceof Date)) {\n return null;\n }\n\n const from = formatValidityDate(catalogue.valid.from);\n const to = formatValidityDate(catalogue.valid.to);\n\n return `${from} - ${to}`;\n};\n","import { Box, Skeleton, styled } from '@ori-ui/mui';\nimport useTestId from '@ori/testid-generator';\n\nimport { useIsMarketCN } from '../../../hooks/useIsMarketCN';\nimport { SKELETON_CATALOGUE_MOBILE, SKELETON_CATALOGUE_MOBILE_CONTENT } from './constants';\n\nconst SkeletonCatalogueMobileRoot = styled(Box)({\n margin: 'auto',\n\n '& > *': {\n margin: 'auto',\n },\n});\n\nconst SkeletonCatalogueMobileValidity = styled(Skeleton)(({ theme }) => ({\n margin: theme.spacing(1, 'auto', 3),\n}));\n\nconst SkeletonCatalogueMobileSeeAll = styled(Skeleton)({\n marginTop: 16,\n});\n\nexport const SkeletonCatalogueMobile = () => {\n const isMarketCN = useIsMarketCN();\n const { getTestId } = useTestId();\n\n return (\n \n \n \n \n \n \n );\n};\n","import { Box, Skeleton, styled } from '@ori-ui/mui';\nimport useTestId from '@ori/testid-generator';\n\nimport { useIsMarketCN } from '../../../hooks/useIsMarketCN';\nimport { SKELETON_CATALOGUE_DESKTOP, SKELETON_CATALOGUE_DESKTOP_CONTENT } from './constants';\n\nconst SkeletonCatalogueDesktopRoot = styled(Box)(({ theme }) => ({\n gridColumnStart: 1,\n margin: theme.spacing(2, 'auto', 5),\n paddingRight: theme.spacing(3),\n\n '& > *': {\n margin: 'auto',\n },\n}));\n\nconst SkeletonCatalogueDesktopValidity = styled(Skeleton)(({ theme }) => ({\n margin: theme.spacing(1, 'auto', 1),\n}));\n\nconst SkeletonCatalogueDesktopContent = styled(Skeleton)(({ theme }) => ({\n marginTop: theme.spacing(2),\n}));\n\nconst SkeletonCatalogueDesktopSeeAll = styled(Skeleton)(({ theme }) => ({\n marginTop: theme.spacing(3),\n}));\n\nexport const SkeletonCatalogueDesktop = () => {\n const isMarketCN = useIsMarketCN();\n const { getTestId } = useTestId();\n\n return (\n \n \n \n \n \n \n );\n};\n","import { styled } from '@ori-ui/mui';\nimport type { ImageSizesHelperParams } from '@ori/image-sizes-helper';\nimport { getImageVariants, generateSrcSet } from '@ori/image-sizes-helper';\nimport useTestId from '@ori/testid-generator';\nimport type { FC } from 'react';\n\nconst ProductImageRoot = styled('img')(({ theme }) => ({\n objectFit: 'cover',\n borderRadius: theme.shape.largeComponentRadius,\n}));\n\ninterface ProductImageProps {\n catalogue: string;\n image: string;\n alt: string;\n}\n\nexport const ProductImage: FC = ({ image, alt, catalogue }) => {\n const { getTestId } = useTestId();\n\n const imagesVariants: ImageSizesHelperParams = {\n url: image,\n params: [\n {\n width: 131,\n height: 131,\n quality: 90,\n },\n {\n width: 250,\n height: 228,\n quality: 90,\n },\n {\n width: 310,\n height: 282,\n quality: 90,\n },\n {\n width: 375,\n height: 342,\n quality: 80,\n },\n {\n width: 438,\n height: 399,\n quality: 75,\n },\n {\n width: 500,\n height: 456,\n quality: 70,\n },\n {\n width: 688,\n height: 627,\n quality: 65,\n },\n {\n width: 750,\n height: 684,\n quality: 60,\n },\n ],\n };\n const images = getImageVariants(imagesVariants);\n const currentCatalogue = '(max-width: 1023px) 250px, 310px';\n const nextCatalogue = '131px';\n\n return (\n \n );\n};\n","export interface IsMobileProps {\n isMobile: boolean;\n}\n\nexport enum CatalogueType {\n Current = 'current',\n Next = 'next',\n}\n\nexport interface CatalogueProps {\n url?: string | undefined;\n title?: string | undefined;\n imageUrl?: string | undefined;\n validity: string | null;\n}\n\nexport interface CurrentCatalogueProps {\n isMobile: boolean;\n onClick: () => void;\n catalogue: CatalogueProps;\n linkToAllCatalogues: string;\n}\n\nexport interface NextCatalogueProps {\n onClick: () => void;\n catalogue: CatalogueProps;\n}\n","import { Button, styled } from '@ori-ui/mui';\nimport { shouldForwardProp } from '@ori/presentation-utils';\n\nimport { CatalogueType } from './types';\nimport type { IsMobileProps } from './types';\n\nexport const Root = styled('div', {\n shouldForwardProp: shouldForwardProp(),\n})(({ theme, isMobile }) => ({\n margin: isMobile ? theme.spacing(4, 6, 10, 4) : theme.spacing(6, 6, 0),\n display: 'flex',\n flexDirection: 'row',\n}));\n\nexport const CurrentCatalog = styled('div')(() => ({\n width: 200,\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'start',\n}));\n\nexport const NextCatalog = styled('div')(({ theme }) => ({\n width: 155,\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n margin: theme.spacing(0, 6),\n}));\n\nexport const Title = styled('h6')(({ theme }) => ({\n marginTop: theme.spacing(2),\n color: theme.palette.text.primary,\n fontWeight: theme.typography.fontWeightBold,\n lineHeight: 'normal',\n textAlign: 'center',\n fontSize: theme.typography.pxToRem(20),\n '&:hover': {\n color: theme.palette.default.light,\n },\n display: '-webkit-box',\n WebkitLineClamp: 3,\n WebkitBoxOrient: 'vertical',\n overflow: 'hidden',\n}));\n\nexport const Validity = styled('p')(({ theme }) => ({\n color: theme.palette.text.secondary,\n fontSize: theme.typography.pxToRem(14),\n margin: theme.spacing(1, 0, 0),\n}));\n\nexport const Centered = styled('div')({\n alignItems: 'center',\n display: 'flex',\n flexDirection: 'column',\n width: 200,\n});\n\nexport const CatalogueLink = styled('a')<{ hoverEffect?: boolean }>(({ theme, hoverEffect = false }) => ({\n textDecoration: 'none',\n '&:hover': {\n color: hoverEffect ? theme.palette.default.light : 'none',\n },\n}));\n\nexport const CatalogueDetailButton = styled(Button)<{ hoverEffect?: boolean }>(({ theme, hoverEffect = false }) => ({\n margin: theme.spacing(3, 0, 0),\n '&:hover': {\n background: hoverEffect ? theme.palette.grey : 'none',\n },\n}));\n\nexport const ImageWrapper = styled('div')<{ catalogue: CatalogueType }>(({ theme, catalogue }) => ({\n width: catalogue === CatalogueType.Current ? 200 : 100,\n\n '& > img': {\n borderRadius: theme.spacing(1),\n alignSelf: 'center',\n justifySelf: 'center',\n },\n}));\n\nexport const CallToAction = styled('div')(({ theme }) => ({\n width: 330,\n margin: theme.spacing(3, 0, 4),\n}));\n\nexport const CTAText = styled('p')(({ theme, isMobile }) => ({\n fontSize: theme.typography.pxToRem(isMobile ? 12 : 15),\n fontWeight: theme.typography.fontWeightBold,\n color: theme.palette.text.primary,\n textAlign: isMobile ? 'center' : 'left',\n textDecoration: isMobile ? 'underline' : 'none',\n textTransform: isMobile ? 'uppercase' : 'none',\n textUnderlineOffset: isMobile ? theme.spacing(1) : 'auto',\n textDecorationThickness: isMobile ? 2 : 'auto',\n margin: isMobile ? theme.spacing(3, 0, 0) : 0,\n}));\n\nexport const MobileWrapper = styled('div')(() => ({\n height: 103,\n width: '100%',\n}));\n","import { Banner } from '@ori/presentation-components';\nimport useTestId from '@ori/testid-generator';\nimport type { FC } from 'react';\n\nimport { useTranslations } from '../../../hooks/useTranslations';\nimport {\n CATALOGUES_SEE_ALL,\n CATALOGUES_SEE_ALL_LINK,\n CTA_TEXT,\n DESKTOP_CATALOGUE,\n DETAIL_BUTTON,\n LINK,\n MOBILE_CATALOGUE,\n PRODUCT_IMAGE,\n TITLE,\n VALIDITY,\n} from '../../common';\nimport { ProductImage } from './CatalogueImage';\nimport {\n MobileWrapper,\n CallToAction,\n CatalogueDetailButton,\n CatalogueLink,\n Centered,\n CTAText,\n CurrentCatalog,\n ImageWrapper,\n Title,\n Validity,\n} from './styles';\nimport type { CurrentCatalogueProps } from './types';\nimport { CatalogueType } from './types';\n\nexport const CurrentCatalogue: FC = (props) => {\n const { formatMessage } = useTranslations();\n const { getTestId } = useTestId();\n\n const {\n onClick,\n isMobile,\n catalogue: { url, title, imageUrl, validity },\n linkToAllCatalogues,\n } = props;\n\n if (isMobile) {\n return (\n \n \n {linkToAllCatalogues ? (\n \n \n {formatMessage('seeAll')}\n \n \n ) : null}\n \n );\n }\n\n return (\n \n \n \n \n \n \n \n \n {title}\n \n {validity}\n \n {formatMessage('view')}\n \n \n\n {linkToAllCatalogues ? (\n \n {formatMessage('callToActionCatalogueText')}\n \n {formatMessage('seeAllCatalogues')}\n \n \n ) : null}\n \n );\n};\n","import useTestId from '@ori/testid-generator';\nimport type { FC } from 'react';\n\nimport { useTranslations } from '../../../hooks/useTranslations';\nimport { DETAIL_BUTTON, LINK, NEXT_CATALOGUE, PRODUCT_IMAGE, TITLE, VALIDITY } from '../../common';\nimport { ProductImage } from './CatalogueImage';\nimport { CatalogueDetailButton, CatalogueLink, Centered, ImageWrapper, NextCatalog, Title, Validity } from './styles';\nimport type { NextCatalogueProps } from './types';\nimport { CatalogueType } from './types';\n\nexport const NextCatalogue: FC = (props) => {\n const { formatMessage } = useTranslations();\n const { getTestId } = useTestId();\n\n const {\n onClick,\n catalogue: { url, title, imageUrl, validity },\n } = props;\n\n return (\n \n \n \n \n \n \n \n \n {title}\n \n {validity}\n \n {formatMessage('view')}\n \n \n \n );\n};\n","import * as UserAction from '@ori-events/user-action';\nimport { DateFormat, formatDate, useCulture } from '@ori/culture';\nimport useTestId from '@ori/testid-generator';\nimport type { FC } from 'react';\nimport { useCallback } from 'react';\n\nimport { CLICK_CATALOGUE_DETAIL } from '../../../constants';\nimport { useCatalogues } from '../../../context';\nimport { useShopSection } from '../../../context/navigation';\nimport { useIsMobile } from '../../../hooks';\nimport { formatValidity } from '../../../utils/formatValidity';\nimport { SkeletonCatalogueDesktop, SkeletonCatalogueMobile } from '../../Skeleton';\nimport { CurrentCatalogue } from './CurrentCatalogue';\nimport { NextCatalogue } from './NextCatalogue';\nimport { CATALOGUES_ROOT } from './constant';\nimport { Root } from './styles';\n\nexport const Catalogues: FC = () => {\n const { catalogues, isLoading } = useCatalogues();\n const { items } = useShopSection();\n const isMobile = useIsMobile();\n const { getTestId } = useTestId();\n const { culture, timeZone } = useCulture();\n // istanbul ignore next -- just formatting\n const formatValidityDate = (date: Date) => formatDate(date, DateFormat.ShortDate, culture, timeZone);\n\n const sendAnalyticsData = useCallback(() => {\n UserAction.dispatch(CLICK_CATALOGUE_DETAIL);\n }, []);\n\n if (isLoading) {\n return isMobile ? : ;\n }\n\n if (items.length === 0) {\n return null;\n }\n\n const link = items.find((e) => e.linkType === 'Catalogue');\n const catalogueCurrent = link?.children.find((e) => e.linkType === 'DigitalCatalogueCurrent');\n const catalogueNext = link?.children.find((e) => e.linkType === 'DigitalCatalogueNext');\n const isCatalogueNextValid = Boolean(\n !isMobile && catalogueNext?.id && catalogueNext.imageUrl && catalogueNext.title && catalogueNext.url,\n );\n const linkToAllCatalogues = link?.children.find((e) => e.linkType === 'Catalogues');\n\n if (!catalogueCurrent?.id || !catalogueCurrent.imageUrl || !catalogueCurrent.title || !catalogueCurrent.url) {\n return null;\n }\n\n return (\n \n \n\n {isCatalogueNextValid && catalogueNext ? (\n \n ) : null}\n \n );\n};\n","export const CATALOGUES_ROOT = 'catalogues-root';\n","import { styled } from '@ori-ui/mui';\nimport { MenuContentContainer as PbsMenuContent } from '@ori/personal-beauty-store';\nimport type { StaticNavigationNavigationItemDto } from '@ori/static-api-client-react';\nimport useTestId from '@ori/testid-generator';\nimport type { RefObject, FC } from 'react';\nimport { Suspense, memo, lazy } from 'react';\n\nimport { useActiveLink, usePbsContent } from '../../context/navigation';\nimport { useIsMobile } from '../../hooks';\nimport { SkeletonSubCategoryDesktop, SkeletonSubCategoryMobile } from '../Skeleton';\nimport { Catalogues } from './Catalogues/Catalogues';\nimport { BURGER_MENU_CONTENT_ROOT, CATEGORY_WRAPPER } from './constants';\nimport { useGetNavigationType } from './utils';\n\nconst BurgerMenuContentRoot = styled('div')(({ theme }) => ({\n [theme.breakpoints.up('md')]: {\n display: 'flex',\n width: '80%',\n },\n}));\n\nconst StyledPbsMenuContent = styled(PbsMenuContent)(({ theme }) => ({\n marginLeft: '4rem',\n marginTop: '3rem',\n}));\n\nconst LazyInspiration = lazy(async () => ({\n default: (await import('./Inspiration/Inspiration')).Inspiration,\n}));\nconst LazyCategoryContent = lazy(async () => ({\n default: (await import('./CategoryContent/CategoryContent')).CategoryContent,\n}));\n\nconst CategoryContent: FC<{ isMobile?: boolean }> = memo(({ isMobile }) => (\n : }>\n \n \n));\n\nexport interface BurgerMenuContentProps {\n contentRootRef?: RefObject;\n link?: StaticNavigationNavigationItemDto;\n}\n\nexport const BurgerMenuContent = ({ contentRootRef, link }: BurgerMenuContentProps) => {\n const isMobile = useIsMobile();\n const { activeLink } = useActiveLink();\n const { isShown } = usePbsContent();\n const { linkType, id } = activeLink ?? {};\n const { getTestId } = useTestId();\n const navigation = useGetNavigationType({\n activeLinkType: linkType ?? 'None',\n link,\n });\n\n return (\n \n {isShown ? (\n \n ) : navigation.isCatalogue ? (\n \n ) : (\n <>\n {navigation.isCategory && id ? (\n \n ) : null}\n {navigation.isInspiration ? : null}\n \n )}\n \n );\n};\n","import { Box, Skeleton, styled } from '@ori-ui/mui';\nimport useTestId from '@ori/testid-generator';\n\nimport { SKELETON_MAIN_CATEGORY_MOBILE } from './constants';\n\nconst SkeletonMainCategoriesMobileCategory = styled(Skeleton)(({ theme }) => ({\n margin: theme.spacing(0, 3, 1),\n minWidth: '80%',\n}));\n\nconst SkeletonMainCategoriesMobileCategoryLarge = styled(Skeleton)(({ theme }) => ({\n margin: theme.spacing(5, 3, 1),\n minWidth: '80%',\n}));\n\nconst SKELETON_HEIGHT = 60;\n\nexport const SkeletonMainCategoriesMobile = () => {\n const elements = Math.floor(window.innerHeight / SKELETON_HEIGHT);\n const steps = Array.from({ length: elements }, (element, index) => index);\n const { getTestId } = useTestId();\n\n const skeletonElements = steps.map((step) => (\n \n ));\n\n return (\n \n \n\n {skeletonElements}\n\n \n \n );\n};\n","import { Box, Skeleton, styled } from '@ori-ui/mui';\nimport useTestId from '@ori/testid-generator';\nimport times from 'lodash.times';\n\nimport { MAIN_CATEGORY_DESKTOP } from './constants';\n\nconst SkeletonMenuLinks = styled(Box)(({ theme }) => ({\n borderRight: `2px solid ${theme.palette.grey[100]}`,\n display: 'flex',\n flexDirection: 'column',\n padding: theme.spacing(0, 2),\n}));\n\nconst CATEGORIES_LINKS = 15;\n\nexport const SkeletonMainCategoriesDesktop = () => {\n const { getTestId } = useTestId();\n\n return (\n \n \n {times(CATEGORIES_LINKS, (index) => (\n \n ))}\n \n \n );\n};\n","// istanbul ignore file -- lazy loaded component not testable\nimport type { FC } from 'react';\nimport { lazy, Suspense } from 'react';\n\nimport { useIsMobile } from '../../../hooks';\nimport { SkeletonMainCategoriesDesktop, SkeletonMainCategoriesMobile } from '../../Skeleton';\n\nconst LazyGeneratedBurgerMainMenuLinks = lazy(async () => import('./Links'));\n\nexport const BurgerMenuLinks: FC = () => {\n const isMobile = useIsMobile();\n\n return (\n : }>\n \n \n );\n};\n\nexport default BurgerMenuLinks;\n","export const BURGER_MENU = 'burger-menu';\nexport const BURGER_MENU_ROOT = 'burger-menu-root';\nexport const BURGER_MENU_CONTAINER = 'burger-menu-container';\nexport const BURGER_MENU_TAB_ROOT = 'burger-menu-tab-root';\nexport const BURGER_MENU_TAB_ICON_WRAPPER = 'burger-menu-tab-icon-wrapper';\nexport const TAB_ICON = 'tab-icon';\nexport const BURGER_MENU_TAB_LABEL_WRAPPER = 'burger-menu-tab-label-wrapper';\nexport const BURGER_MENU_LINK = 'burger-menu-link';\nexport const BURGER_MENU_LINK_ROOT_MOBILE = 'burger-menu-link-root-mobile';\nexport const BURGER_MENU_LINK_CATEGORY_MOBILE = 'burger-menu-link-category-mobile';\nexport const BURGER_MENU_LINK_ICON_WRAPPER = 'burger-menu-link-icon-wrapper';\nexport const BURGER_MENU_CONTENT = 'burger-menu-content';\nexport const BURGER_MENU_LINK_ROOT = 'burger-menu-link-root';\nexport const BURGER_MENU_LINK_CATEGORY = 'burger-menu-link-category';\nexport const BURGER_MENU_TOGGLE_ROOT = 'burger-menu-toggle-root';\nexport const BURGER_MENU_CONTENT_ROOT = 'burger-menu-content-root';\nexport const CATEGORY_WRAPPER = 'category-wrapper';\nexport const BURGER_MENU_BACKDROP = 'burger-menu-backdrop';\n","import type { StaticNavigationNavigationItemDto } from '@ori/static-api-client-react';\nimport { StaticNavigationNavigationItemDtoLinkType } from '@ori/static-api-client-react';\n\nimport { useIsMobile } from '../../hooks';\n\nexport interface NavigationTypeParams {\n link?: StaticNavigationNavigationItemDto;\n activeLinkType: StaticNavigationNavigationItemDtoLinkType;\n}\nexport const useGetNavigationType = ({ link, activeLinkType }: NavigationTypeParams) => {\n const isMobile = useIsMobile();\n\n const isLinkTypeCatalogue = link?.linkType === StaticNavigationNavigationItemDtoLinkType.Catalogue;\n const isActiveLinkTypeCatalogue = activeLinkType === StaticNavigationNavigationItemDtoLinkType.Catalogue;\n const isCategory = activeLinkType === StaticNavigationNavigationItemDtoLinkType.Category;\n // @ts-expect-error -- check Static API typings\n const isInspiration = activeLinkType === 'Inspiration';\n\n return {\n isCatalogue: isMobile ? isLinkTypeCatalogue : isActiveLinkTypeCatalogue,\n isCategory,\n isInspiration,\n };\n};\nexport interface GetBurgerMenuHeightParams {\n isActiveLink: boolean;\n isAlwaysActiveLink: boolean;\n burgerMenuHeight?: number;\n}\nexport const getBurgerMenuHeight = ({\n isActiveLink,\n isAlwaysActiveLink,\n burgerMenuHeight,\n}: GetBurgerMenuHeightParams) => {\n if (isActiveLink) {\n return burgerMenuHeight;\n } else if (isAlwaysActiveLink) {\n return undefined;\n }\n\n return 0;\n};\n","export const SKELETON_SUB_CATEGORY_ROOT = 'skeleton-sub-category-root';\nexport const SKELETON_CATALOGUE_DESKTOP = 'skeleton-catalogue-desktop';\nexport const MAIN_CATEGORY_DESKTOP = 'main-category-desktop';\nexport const SKELETON_CATALOGUE_DESKTOP_CONTENT = 'skeleton-catalogue-desktop-content';\n","export const SKELETON_CATALOGUE_MOBILE = 'skeleton-catalogue-mobile';\nexport const SKELETON_CATALOGUE_MOBILE_CONTENT = 'skeleton-catalogue-mobile-content';\nexport const SKELETON_MAIN_CATEGORY_MOBILE = 'skeleton-main-category-mobile';\nexport const SKELETON_SUB_CATEGORY_MOBILE_ROOT = 'skeleton-sub-category-mobile-root';\n","export const DESKTOP_CATALOGUE = 'desktop-catalogue';\nexport const MOBILE_CATALOGUE = 'mobile-catalogue';\nexport const NEXT_CATALOGUE = 'next-catalogue';\nexport const CATALOGUE_IMAGE_ROOT = 'catalogue-image-root';\nexport const CATALOGUES_SEE_ALL = 'catalogues-see-all';\nexport const CATALOGUES_SEE_ALL_LINK = 'catalogues-see-all-link';\nexport const TITLE = 'title';\nexport const VALIDITY = 'validity';\nexport const LINK = 'link';\nexport const CTA_TEXT = 'cta-text';\nexport const PRODUCT_IMAGE = 'product-image';\nexport const DETAIL_BUTTON = 'detail-button';\nexport const PRODUCT_TILE_ROOT = 'product-title-root';\nexport const PRODUCT_TILE_LINK = 'product-tile-link';\nexport const PRODUCT_TILE_TITLE = 'product-title';\nexport const NO_IMAGE = 'no-image';\nexport const PRODUCT_PRICE_DIFF = 'product-price-diff';\nexport const PRODUCT_IMAGE_ROOT = 'product-image-root';\n","export const CLICK_CATALGOUE = ['open_ecatalogue', 'Main menu sidebar'];\n\nexport const CLICK_CATALOGUE_DETAIL = ['open_ecatalogue', 'Main menu content'];\n\nexport const CLICK_BURGER_MENU = ['open_main_menu', 'Top navigation'];\n\nexport const CLICK_CATEGORY_BRAND = ['select_brand', 'Main menu content'];\n\nexport const START_SEARCH = ['search_start', 'Search 1'];\n\nexport const CLICK_FAVORITE_ICON = ['open_favorites', 'Top navigation'];\n\nexport const CLICK_NOTIFICATION_ICON = ['notifications', 'open_notification_overview'];\n","export const CN_MARKET = 'cn';\n","// istanbul ignore file -- just api calls\nimport type { StaticCataloguesCatalogueDto } from '@ori/static-api-client-react';\nimport { useGetTenantCatalogues } from '@ori/static-api-client-react';\nimport type { FC, PropsWithChildren } from 'react';\nimport { createContext, useContext, useMemo } from 'react';\n\nimport { useAppConfig } from './configurationContext';\n\nexport interface CataloguesContext {\n catalogues: StaticCataloguesCatalogueDto[];\n isLoading: boolean;\n}\n\nexport const cataloguesContextDefaultValue: CataloguesContext = {\n catalogues: [],\n isLoading: false,\n};\n\nexport const cataloguesContext = createContext(cataloguesContextDefaultValue);\n\nconst { Provider } = cataloguesContext;\n\nexport const CataloguesProvider: FC = ({ children }) => {\n const { tenant } = useAppConfig();\n const { data, error } = useGetTenantCatalogues(tenant, undefined, {\n swr: {\n revalidateIfStale: false,\n revalidateOnFocus: false,\n revalidateOnReconnect: false,\n },\n });\n\n const value = useMemo(\n () => ({ catalogues: data?.collection ?? [], isLoading: data === undefined && error === undefined }),\n [data, error],\n );\n\n return {children};\n};\n\nexport const useCatalogues = () => useContext(cataloguesContext);\n","import { createContext, useContext } from 'react';\n\nimport type { AppConfig } from '../models';\n\nexport const appConfigContextDefaultValue: AppConfig = {\n currentLanguage: '',\n enableTopAreaBanner: false,\n graphqlUrl: '',\n mobileOfficeApiUrl: '',\n ssoAdLoginUrl: '',\n tenant: '',\n useSsoIdentityLogin: false,\n abTastyEnabled: false,\n onlyProductsTabInSearch: false,\n};\n\nexport const appConfigContext = createContext(appConfigContextDefaultValue);\n\nexport const { Provider: AppConfigProvider } = appConfigContext;\n\nexport const useAppConfig = () => useContext(appConfigContext);\n","import { StaticNavigationNavigationItemDtoType } from '@ori/static-api-client-react';\n\nimport { createNavigationItemsContext } from './internal';\n\nexport const {\n navigationItemsContext: aboutTilesContext,\n NavigationItemsProvider: AboutTilesProvider,\n useNavigationItems: useAboutTiles,\n} = createNavigationItemsContext(StaticNavigationNavigationItemDtoType.AboutTiles);\n","import type { StaticNavigationNavigationItemDto } from '@ori/static-api-client-react';\nimport type { FC, PropsWithChildren } from 'react';\nimport { createContext, useCallback, useContext, useMemo, useState } from 'react';\n\nimport { useIsMobile } from '../../hooks/useIsMobile';\nimport { usePbsContent } from './pbsContentContext';\n\nexport type ActiveLink = StaticNavigationNavigationItemDto | null;\n\nexport interface ActiveLinkContext {\n activeLink: ActiveLink;\n toggleActiveLink: (link: ActiveLink) => void;\n}\n\nexport const activeLinkContext = createContext(undefined);\n\nconst { Provider } = activeLinkContext;\n\nexport const ActiveLinkProvider: FC = ({ children }) => {\n const [activeLink, setActiveLink] = useState(null);\n const { setIsShown } = usePbsContent();\n const isMobile = useIsMobile();\n const toggleActiveLink = useCallback(\n (link: ActiveLink) => {\n setIsShown(false);\n if (isMobile && activeLink === link) {\n setActiveLink(null);\n } else {\n setActiveLink(link);\n }\n },\n [activeLink, isMobile, setIsShown],\n );\n const value = useMemo(() => ({ activeLink, toggleActiveLink }), [activeLink, toggleActiveLink]);\n\n return {children};\n};\n\nexport const useActiveLink = () => {\n const context = useContext(activeLinkContext);\n if (context) {\n return context;\n }\n throw new Error('useActiveLinkContext must be used within a ActiveLinkProvider.');\n};\n","import { StaticNavigationNavigationItemDtoType } from '@ori/static-api-client-react';\n\nimport { createNavigationItemsContext } from './internal';\n\nexport const {\n navigationItemsContext: inspirationTilesContext,\n NavigationItemsProvider: InspirationTilesProvider,\n useNavigationItems: useInspirationTiles,\n} = createNavigationItemsContext(StaticNavigationNavigationItemDtoType.InspirationTiles);\n","import type { StaticNavigationNavigationItemDtoType } from '@ori/static-api-client-react';\nimport type { FC, PropsWithChildren } from 'react';\nimport { createContext, useCallback, useContext, useMemo, useState } from 'react';\n\nimport { useFetchNavigationItems } from '../../../hooks/useFetchNavigationItems';\nimport type { NavigationItemsContext } from './types';\n\nexport const createNavigationItemsContext = (type: T) => {\n const navigationItemsContext = createContext(undefined);\n const { Provider } = navigationItemsContext;\n const NavigationItemsProvider: FC = ({ children }) => {\n const [items, setItems] = useState([]);\n const fetchNavigationItems = useFetchNavigationItems();\n const fetch = useCallback(() => {\n // eslint-disable-next-line no-console -- log error to console\n fetchNavigationItems(type).then(setItems).catch(console.error);\n }, [fetchNavigationItems]);\n const value = useMemo(() => ({ items, fetch }), [fetch, items]);\n\n return {children};\n };\n NavigationItemsProvider.displayName = `${type}Provider`;\n const useNavigationItems = () => {\n const context = useContext(navigationItemsContext);\n if (context) {\n return context;\n }\n throw new Error(`use${type} must be used within a ${type}Provider`);\n };\n\n return { navigationItemsContext, NavigationItemsProvider, useNavigationItems };\n};\n","import type { Dispatch, FC, PropsWithChildren, SetStateAction } from 'react';\nimport { createContext, useContext, useMemo, useState } from 'react';\n\nexport interface PbsContentContext {\n isShown: boolean;\n setIsShown: Dispatch>;\n}\n\nexport const pbsContentContext = createContext(undefined);\n\nconst { Provider } = pbsContentContext;\n\nexport const PbsContentProvider: FC = ({ children }) => {\n const [isShown, setIsShown] = useState(false);\n const value = useMemo(() => ({ isShown, setIsShown }), [isShown, setIsShown]);\n\n return {children};\n};\n\nexport const usePbsContent = () => {\n const context = useContext(pbsContentContext);\n if (context) {\n return context;\n }\n throw new Error('usePbsContentContext must be used within a PbsContentProvider.');\n};\n","import { axios } from '@ori/axios';\nimport { ACCEPT_LANGUAGE } from '@ori/fetching';\nimport type { Dispatch, FC, PropsWithChildren, SetStateAction } from 'react';\nimport { createContext, useCallback, useContext, useMemo, useState } from 'react';\n\nimport type { SuggestionsAndResults } from '../../models';\nimport { useAppConfig } from '../configurationContext';\n\nexport interface SearchInputContext {\n blur: () => void;\n clearResults: () => void;\n focus: () => void;\n hide: () => void;\n isFocused: boolean;\n isVisible: boolean;\n results?: SuggestionsAndResults | undefined;\n search: (query: string) => void;\n setValue: Dispatch>;\n show: () => void;\n timestamp: number;\n value: string;\n manualShow: () => void;\n manualHide: () => void;\n isManuallyOpened: boolean;\n}\n\nexport const searchInputContext = createContext(undefined);\n\nconst { Provider } = searchInputContext;\n\nexport const SearchInputProvider: FC = ({ children }) => {\n const { showSearchOnScroll } = useAppConfig();\n const [isFocused, setIsFocused] = useState(false);\n const [isVisible, setIsVisible] = useState(Boolean(showSearchOnScroll));\n const [isManuallyOpened, setIsManuallyOpened] = useState(false);\n const [results, setResults] = useState(undefined);\n const [timestamp, setTimestamp] = useState(0);\n const [value, setValue] = useState('');\n const blur = useCallback(() => setIsFocused(false), []);\n const focus = useCallback(() => setIsFocused(true), []);\n const hide = useCallback(() => setIsVisible(false), []);\n const show = useCallback(() => setIsVisible(true), []);\n const manualShow = useCallback(() => setIsManuallyOpened(true), []);\n const manualHide = useCallback(() => setIsManuallyOpened(false), []);\n\n const { currentLanguage } = useAppConfig();\n const clearResults = useCallback(() => setResults(undefined), []);\n const search = useCallback(\n (query: string) => {\n const url = new URL(`${window.location.origin}/system/ajax/Search/SuggestionsAndResults`);\n url.searchParams.set('q', query);\n axios\n .get(url.toString(), {\n headers: {\n [ACCEPT_LANGUAGE]: currentLanguage,\n },\n })\n .then(({ data }) => {\n setResults(data);\n setTimestamp(Date.now());\n })\n // eslint-disable-next-line no-console -- log error to console\n .catch(console.error);\n },\n [currentLanguage],\n );\n const context = useMemo(\n () => ({\n blur,\n clearResults,\n focus,\n hide,\n isFocused,\n isManuallyOpened,\n isVisible,\n manualHide,\n manualShow,\n results,\n search,\n setValue,\n show,\n timestamp,\n value,\n }),\n [\n blur,\n clearResults,\n focus,\n hide,\n isFocused,\n isManuallyOpened,\n isVisible,\n manualHide,\n manualShow,\n results,\n search,\n show,\n timestamp,\n value,\n ],\n );\n\n return {children};\n};\n\nexport const useSearchInput = () => {\n const context = useContext(searchInputContext);\n if (context) {\n return context;\n }\n throw new Error('useSearchInput must be used within a SearchInputProvider.');\n};\n","import { StaticNavigationNavigationItemDtoType } from '@ori/static-api-client-react';\n\nimport { createNavigationItemsContext } from './internal';\n\nexport const {\n navigationItemsContext: ShopSectionContext,\n NavigationItemsProvider: ShopSectionProvider,\n useNavigationItems: useShopSection,\n} = createNavigationItemsContext(StaticNavigationNavigationItemDtoType.ShopSection);\n","/* istanbul ignore file -- api call */\nimport { useToken } from '@ori/auth';\nimport {\n getApplicationsNavigationCustomerInfo,\n useApiClient as useGlobalApiClient,\n} from '@ori/global-api-client-react';\nimport type {\n GetTenantApplicationsNavigationNavigationParams,\n StaticNavigationNavigationItemDto,\n StaticNavigationNavigationItemDtoType,\n} from '@ori/static-api-client-react';\nimport {\n getTenantApplicationsNavigationNavigation,\n useApiClient as useStaticApiClient,\n} from '@ori/static-api-client-react';\nimport { useCallback } from 'react';\n\nimport { useAppConfig } from '../context';\n\nexport const useFetchNavigationItems = (): ((\n navigationType: StaticNavigationNavigationItemDtoType,\n) => Promise) => {\n const { tenant, currentLanguage } = useAppConfig();\n const globalApiClient = useGlobalApiClient();\n const staticApiClient = useStaticApiClient();\n const { isAnonymousUser } = useToken();\n const { customerId } = useToken();\n\n return useCallback(\n async (navigationType: StaticNavigationNavigationItemDtoType) => {\n const requestOptions: GetTenantApplicationsNavigationNavigationParams = {\n excludeChildren: false,\n lang: currentLanguage,\n };\n\n if (!isAnonymousUser) {\n const { data: customerInfo } = await getApplicationsNavigationCustomerInfo(\n globalApiClient,\n customerId.toString(),\n );\n requestOptions.customerTypeId = customerInfo.customerType?.customerTypeId;\n requestOptions.visitorSegment = customerInfo.visitorSegment;\n }\n\n const { data: responseNavigation } = await getTenantApplicationsNavigationNavigation(\n staticApiClient,\n tenant,\n navigationType,\n requestOptions,\n );\n\n return responseNavigation.navigationCollection;\n },\n [currentLanguage, customerId, globalApiClient, isAnonymousUser, staticApiClient, tenant],\n );\n};\n","import { CN_MARKET } from '../constants';\nimport { useAppConfig } from '../context';\n\nexport const useIsMarketCN = () => {\n const { tenant } = useAppConfig();\n\n return tenant === CN_MARKET;\n};\n","import { useTheme } from '@ori-ui/mui';\nimport { useWindowSize } from '@ori/presentation-hooks';\n\nexport const useIsMobile = () => {\n const { width } = useWindowSize();\n const { breakpoints } = useTheme();\n\n return width !== 0 && width < breakpoints.values.md;\n};\n","export const FavoritesLink = '/favourite-products';\n","export const boldMatchedText = (articleContent: string | null, searchPhrase: string) => {\n if (!articleContent) {\n return null;\n }\n\n const escapedSearchPhrase = searchPhrase.replaceAll(/[$()*+.?[\\\\\\]^{|}]/g, '\\\\$&').trim();\n const regExpPattern = new RegExp(escapedSearchPhrase, 'igu');\n const splitText = articleContent.split(regExpPattern);\n const matches = regExpPattern.exec(articleContent);\n\n if (!matches) {\n return articleContent;\n }\n\n return splitText.map((el, index) => {\n if (index > matches.length) {\n return el;\n }\n\n return (\n // eslint-disable-next-line react/no-array-index-key -- there is nothing unique here and this array is not mutable\n \n {el}\n {matches[index]}\n \n );\n });\n};\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.top-nav {\n --top-nav-height-animation: 0.3s ease-in-out;\n --top-nav-height: 80px;\n --top-nav-inner-height: 80px;\n}\n\n.top-nav--is-shrunk:not(.top-nav--is-mobile) {\n --top-nav-height: 60px;\n --top-nav-inner-height: 60px;\n}\n\n.top-nav--is-mobile {\n --top-nav-height: 56px; /* 122px */\n --top-nav-inner-height: 56px;\n}\n\n.top-nav--with-top-area-banner {\n --top-nav-height: 114px;\n --top-nav-inner-height: 80px;\n}\n\n.top-nav--search-input-visible.top-nav--is-mobile {\n --top-nav-height: 124px;\n --top-nav-inner-height: 56px;\n}\n\n.top-nav--with-top-area-banner.top-nav--search-input-visible.top-nav--is-mobile {\n --top-nav-height: 158px;\n --top-nav-inner-height: 56px;\n}\n\n.top-nav--with-top-area-banner.top-nav--is-mobile {\n --top-nav-height: 90px;\n --top-nav-inner-height: 56px;\n}\n\n.top-nav--with-top-area-banner.top-nav--is-shrunk:not(.top-nav--is-mobile) {\n --top-nav-height: 94px;\n --top-nav-inner-height: 60px;\n}\n\n#online-top-area-root {\n height: auto;\n height: initial;\n}\n\n#top-area {\n height: var(--top-nav-height);\n transition: height var(--top-nav-height-animation);\n}\n`, \"\",{\"version\":3,\"sources\":[\"webpack://./../../packages/top-area/src/App.css\"],\"names\":[],\"mappings\":\"AAAA;EACE,4CAA4C;EAC5C,sBAAsB;EACtB,4BAA4B;AAC9B;;AAEA;EACE,sBAAsB;EACtB,4BAA4B;AAC9B;;AAEA;EACE,sBAAsB,EAAE,UAAU;EAClC,4BAA4B;AAC9B;;AAEA;EACE,uBAAuB;EACvB,4BAA4B;AAC9B;;AAEA;EACE,uBAAuB;EACvB,4BAA4B;AAC9B;;AAEA;EACE,uBAAuB;EACvB,4BAA4B;AAC9B;;AAEA;EACE,sBAAsB;EACtB,4BAA4B;AAC9B;;AAEA;EACE,sBAAsB;EACtB,4BAA4B;AAC9B;;AAEA;EACE,YAAa;EAAb,eAAa;AACf;;AAEA;EACE,6BAA6B;EAC7B,kDAAkD;AACpD\",\"sourcesContent\":[\".top-nav {\\n --top-nav-height-animation: 0.3s ease-in-out;\\n --top-nav-height: 80px;\\n --top-nav-inner-height: 80px;\\n}\\n\\n.top-nav--is-shrunk:not(.top-nav--is-mobile) {\\n --top-nav-height: 60px;\\n --top-nav-inner-height: 60px;\\n}\\n\\n.top-nav--is-mobile {\\n --top-nav-height: 56px; /* 122px */\\n --top-nav-inner-height: 56px;\\n}\\n\\n.top-nav--with-top-area-banner {\\n --top-nav-height: 114px;\\n --top-nav-inner-height: 80px;\\n}\\n\\n.top-nav--search-input-visible.top-nav--is-mobile {\\n --top-nav-height: 124px;\\n --top-nav-inner-height: 56px;\\n}\\n\\n.top-nav--with-top-area-banner.top-nav--search-input-visible.top-nav--is-mobile {\\n --top-nav-height: 158px;\\n --top-nav-inner-height: 56px;\\n}\\n\\n.top-nav--with-top-area-banner.top-nav--is-mobile {\\n --top-nav-height: 90px;\\n --top-nav-inner-height: 56px;\\n}\\n\\n.top-nav--with-top-area-banner.top-nav--is-shrunk:not(.top-nav--is-mobile) {\\n --top-nav-height: 94px;\\n --top-nav-inner-height: 60px;\\n}\\n\\n#online-top-area-root {\\n height: unset;\\n}\\n\\n#top-area {\\n height: var(--top-nav-height);\\n transition: height var(--top-nav-height-animation);\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n"],"names":["Name","SSO_IDENTITY_LOGIN_PATH","SSO_IDENTITY_AD_LOGIN_PATH","concat","loginContext","createContext","undefined","Provider","goToPage","page","window","location","href","LoginProvider","_ref","children","isSsoIdentityLogin","adLogin","useMemo","doLogin","useCallback","event","Boolean","ctrlKey","metaKey","dispatchEvent","CustomEvent","ToggleMenuFlyoutEvent","detail","menuType","AccountSideMenu","onLogin","useEffect","addEventListener","removeEventListener","_jsx","value","translationsNamespace","defaultTranslationsWithNamespaces","_defineProperty","allBrands","articles","brands","callToActionCatalogueText","change","failedToSubmit","gotIt","loading","logIn","loggedInAs","menu","myAccount","myFavoriteProducts","nextCatalogue","noOptions","open","other","popularProducts","popularProductsInThisSearchQuery","popularSearchQueries","products","register","search","searchDesktop","seeAll","seeAllCatalogues","seeAllResultsFor","shopFor","shoppingBag","signIn","topAreaBannerReferralMessage","view","pbsTranslationsNamespace","pbsDefaultTranslations","ReferralType","useCookieStoreInfo","_useState","useState","type","None","productListType","_useState2","_slicedToArray","cookieInfo","setCookieInfo","pbsOwnerCookie","Cookies","get","PbsCookieNames","PBS_OWNER","ecrefCookie","ECREF","owner","PBS","APP_PROMO_LOCAL_STORAGE_KEY","isAppPromoBannerVisible","hideAppPromoBannerUntilFromLocalStorage","data","userOs","hideAppPromoBannerUntil","localStorage","getItem","Date","dateNow","toString","appName","bannerLink","appPromoContext","AppInfoRoot","styled","display","gap","theme","spacing","AppIcon","height","width","AppNameAndDescription","alignItems","alignSelf","flexDirection","AppName","Typography","_ref2","color","palette","text","primary","fontSize","typography","pxToRem","fontWeight","fontWeightBold","overflow","textOverflow","WebkitBoxOrient","WebkitLineClamp","AppDescription","AppInfo","appDescription","appIcon","getTestId","useTestId","_jsxs","src","alt","ImagePlaceholder","variant","Root","bottom","left","position","zIndex","Inner","shouldForwardProp","backgroundColor","common","white","borderRadius","boxShadow","SHADOW_LEVEL3","margin","paddingRight","textDecoration","SHADOW_LEVEL1","transition","transitions","create","duration","short","CloseButton","_ref3","justifyContent","padding","OpenButton","_ref4","marginLeft","AppPromoBanner","translations","useTranslations","_useAppPromo","useContext","className","visible","onClose","onCloseButtonClick","preventDefault","onClick","Clear","SEARCH_INPUT_HEIGHT","TOP_NAV_HEIGHT_CSS_VARIABLE","TOP_NAV_INNER_HEIGHT_CSS_VARIABLE","CSS_HEIGHT_ANIMATION","DESKTOP_HEIGHT","CSS_DESKTOP_HEIGHT","CSS_DESKTOP_INNER_HEIGHT","CSS_DESKTOP_WITH_TOP_AREA_BANNER_HEIGHT","CSS_MOBILE_HEIGHT","CSS_MOBILE_INNER_HEIGHT","CSS_MOBILE_WITH_TOP_AREA_BANNER_HEIGHT","MOBILE_HEIGHT","CSS_MOBILE_WITH_SEARCH_INPUT_HEIGHT","CSS_MOBILE_WITH_SEARCH_INPUT_WITH_TOP_AREA_BANNER_HEIGHT","MOBILE_WITH_TOP_AREA_BANNER_HEIGHT","AB_TASTY_SCRIPT_IDS","pl_live","pl_stg","ro_live","ro_stg","uk_live","uk_stg","PACKAGE_NAME","APPLICATION_NAME","benefitBannerQuery","gql","_templateObject","_taggedTemplateLiteral","vipOrderUrls","consultantNumber","hint","consultantContext","loadingVipAccess","useConsultant","isLoading","benefitBannerData","error","isAnonymousWithStore","orderOnBehalfVisible","shouldSkipBenefitBannerFetch","enableTopAreaBanner","loadingSegmentationData","defaultTopAreaBannerContextValue","isOrderOnBehalfVisible","orderOnBehalfData","topAreaBannerContext","useTopAreaBanner","getMobileCssHeightVariable","isTopBannerVisible","showSearchOnScroll","getSearchInputTopAttribute","USER_ICON_MOBILE","USER_ICON_DESKTOP","TopAreaReservedSpaceBlock","minHeight","breakpoints","up","TopAreaBlock","useAppConfig","id","activeMenuContext","useActiveMenu","context","Error","AccountFlyoutRoot","background","paddingTop","AccountLazy","lazy","async","fallback","Box","CircularProgress","AccountFlyout","_useActiveMenu","activeMenu","toggleActiveMenu","isMobile","useIsMobile","useTheme","handleModalClose","ToggleMenuFlyout","isAccountMenuActive","Modal","style","modal","Slide","in","direction","Suspense","useCustomerInitials","_useToken","useToken","isAnonymousUser","customerId","useGetCustomerProfile","swr","enabled","firstName","lastName","charAt","LazyPersonalMenu","default","PersonalMenu","useLazyPersonalMenu","token","_useAppConfig","currentLanguage","personalMenuInitialData","reportsItemName","tenant","_useServiceUrls","useServiceUrls","globalApiUrl","mobileOfficeApiUrl","staticApiUrl","_useConsultant","consultantType","configuration","lang","BurgerMenuTabNames","useHover","iconOnHover","icon","isHover","setIsHover","ref","useRef","isHoverAvailable","useMediaQuery","getIcon","handleMouseOver","handleMouseLeave","element","current","SignInLabel","ButtonBase","whiteSpace","textTransform","grey","cursor","DesktopUserIconButton","Button","marginRight","lineHeight","svg","MobileUserIconButton","_ref5","UserAvatar","Avatar","_ref7","down","UserSection","loginUrl","useSsoIdentityLogin","_useHover","UserFilled","User","_useHover2","Icon","useLogin","customerInitials","_Fragment","disableRipple","startIcon","BurgerMenuTabRoot","ownerState","_objectSpread","overline","isActive","BurgerMenuTabPrefixWrapper","isLoggedIn","BurgerMenuTabLabelWrapper","textAlign","BurgerMenuTab","activeTab","tabPrefix","tabName","onTabClick","clickHandler","TabIcon","BURGER_MENU_TAB_ROOT","BURGER_MENU_TAB_ICON_WRAPPER","TAB_ICON","BURGER_MENU_TAB_LABEL_WRAPPER","BurgerMenuRoot","border","maxWidth","isDesktop","top","BurgerMenuInner","maxHeight","overflowX","overflowY","BurgerMenuContainer","LazyAccount","LazyBurgerMenuLinks","BurgerMenu","_ToggleMenuFlyout$Men","BurgerMenuType","AccountSideMenuType","_usePbsContent","usePbsContent","isShown","setIsShown","handleTabClick","ProductsTab","isMenuActive","AccountTab","personalMenu","accountTabContent","onClickOverlay","drawer","componentsProps","backdrop","BURGER_MENU_ROOT","BURGER_MENU_CONTAINER","BurgerMenuIcon","as","BurgerMenuLinks","BurgerMenuContent","Backdrop","BURGER_MENU_BACKDROP","sx","_createNavigationItem","createNavigationItemsContext","StaticNavigationNavigationItemDtoType","JoinTiles","JoinTilesProvider","navigationItemsContext","NavigationItemsProvider","useJoinTiles","useNavigationItems","JoinTileImage","image","name","imagesVariants","url","params","quality","images","getImageVariants","sizes","srcSet","generateSrcSet","JoinMenuRoot","isVisible","JoinTilesWrapper","borderBottom","columnGap","gridAutoColumns","gridAutoFlow","gridTemplateRows","JoinTileLink","Link","webkitTapHighlightColor","alpha","black","borderColor","content","objectFit","JoinTileDescription","textShadow","shadows","transform","JoinTileTitle","_ref9","body1","minWidth","JoinMenuIdkyLink","_ref11","main","light","JoinMenu","items","exitMenu","iDontKnowYetLink","find","_ref13","linkType","StaticNavigationNavigationItemDtoLinkType","IDontKnowYet","joinTiles","filter","_ref14","MenuTiles","length","map","_ref15","imageUrl","title","description","TooltipTestIds","FormattedMessage","props","NotTypedFormattedMessage","ARROW_OFFSET","shape","ContentWrap","TitleWrap","Stack","marginBottom","Title","StyledAvatar","TooltipArrow","getContentTranslationKey","TranslationKey","ReferralMessageTooltip","InviteMessageTooltip","Tooltip","_ref6","photoUrl","liveStreamingState","referralType","restProps","_objectWithoutProperties","_excluded","formatMessage","getTestIdProps","fullName","formatUserName","ROOT","TITLE","Greetings","LiveStreamingStateWrap","streamingActivity","LiveStreamingStates","UNKNOWN","SponsorPhoto","AVATAR","PbsWaveIcon","viewBox","FALLBACK_AVATAR","component","TEXT","values","emphasis","chunks","USER_NAME","inviteFriendQuery","configurationContext","configurationContextDefaultValues","ConfigurationProvider","useConfiguration","useInviteFriendData","_useConfiguration","isEnabled","graphqlUrl","_useCookieStoreInfo","consultant","Number","parseInt","_useGraphqlQuery","useGraphqlQuery","query","headers","getHeaders","language","sourceAppName","variables","skip","dataFromApi","console","inviteFriendProfile","cloneDeep","result","useGetCustomerSponsorPersonalBeautyStore","beautyStoreQuery","usePersonalBeautyStoreData","sponsorData","useSponsorPersonalBeautyStoreInfo","shouldCall","beautyStore","application","usePersonalBeautyStoreUserInfo","pbsData","inviteFriendData","_pbsData$beautyStore$","_pbsData$beautyStore","profile","_inviteFriendData$inv","dispatchToggleMenu","menuToggle","requestAnimationFrame","toggleMenu","UserAction","CLICK_BURGER_MENU","useToggleMenu","BurgerMenuIconRoot","A700","isOpen","BurgerMenuIconWrapper","BurgerMenuIconLine","opacity","_pbsData$beautyStore2","_useToggleMenu","_useToggleMenu2","menuIsOpen","wasFavoriteAdded","setWasFavoriteAdded","_usePersonalBeautySto","usePersonalBeautyStore","pbsTooltipWasShown","tooltipWasShown","setPbsTooltipWasShown","setTooltipWasShown","pbsIconInBurgerMenu","onClickCallback","onFavoritesUpdated","_ref6$detail","favorites","lastUpdated","includes","setTimeout","FavoritesUpdatedEvent","BURGER_MENU","HeartsAnimation","shouldAnimationRun","state","pbsTooltipOffset","BurgerMenuToggleRoot","StyledPbsTooltip","_pbsData$application$","_pbsData$application","_storeInfo$type","_ref$autoClose","autoClose","canDisplayTooltip","storeInfo","_usePersonalBeautySto2","isVideoShoppingEnabled","videoShopping","currentVideoShow","videoShows","show","isCurrent","e","timer","clearTimeout","ComponentWrapper","getLiveStreamingStateByVideoConfig","BurgerMenuToggle","onPbsTooltipClick","BURGER_MENU_TOGGLE_ROOT","OriflameLogoSvg","fill","chineseLogo","xmlns","d","commonLogo","OriflameLogo","isMarketCN","useIsMarketCN","LeftActionsSectionRoot","LeftActionsSection","FavoritesHeartRoot","emptyFunction","FavoritesHeartIcon","HeartFilled","Heart","shouldFavoritesRender","useAreFavoritesEnabled","handleClick","CLICK_FAVORITE_ICON","pathname","FavoritesLink","MenuTypes","FavoritesSideMenu","_ref3$detail","labelsContextDefaultValue","aboutLabel","joinLabel","joinUrl","labelsContext","findLabel","item","collection","_collection$find$titl","_collection$find","JoinLabel","JoinSkeleton","Skeleton","JoinIcon","_useLabels","NotificationBellIconRoot","NotificationBellIconButton","IconButton","NotificationBellIcon","NotificationFilled","Notification","isClicked","setIsClicked","useGetCustomerUnseenNotificationsCount","CLIENT_APPLICATION","count","CLICK_NOTIFICATION_ICON","Notifications","Badge","badgeContent","max","invisible","SearchIconRoot","SearchIcon","hideSearchResultsTab","_useSearchInput","useSearchInput","hide","manualShow","manualHide","searchPlaceholder","Search","SearchInputRoot","isVisibleOnMobile","showOnlyOn","boxSizing","justifySelf","speedDial","SearchInputBox","isFocused","paddingLeft","visibility","SearchInputInput","SearchInputClear","InputBackdrop","onEnterPressHandler","key","searchQuery","currentTarget","encodeURIComponent","SearchInput","focus","blur","clearResults","isManuallyOpened","setValue","sync","useWindowSize","SearchResults","prevScrollY","setPrevScrollY","_useDebounce","useDebounce","debouncedValue","throttledAnalytics","useThrottledCallback","START_SEARCH","onFocusHandler","onChangeHandler","target","isValueEmpty","handleScrollDebounced","debounce","currentScrollY","scrollY","difference","closeSearch","clearInput","handleOnBlur","autoFocus","placeholder","onFocus","onChange","onBlur","onKeyDown","SHOPPING_BAG_ICON_ROOT","growShrinkAnimation","keyframes","ShoppingBagCounterRoot","letterSpacing","isAnimationActive","animationDuration","animationName","ShoppingBagCounter","shoppingBagQuantity","setIsAnimationActive","ShoppingBagIconRoot","isCnMarket","getMinibagFlyoutEvent","shouldOpen","Minibag","ShoppingBagIcon","isECatalogue","setIsECatalogue","mobileBreakpoint","mobileBreakpointECatalogue","CN_MARKET","AddToBagFilled","AddToBag","ShoppingBasketFilled","EmptyBasket","_useState3","_useState4","setShoppingBagQuantity","_useState5","_useState6","isReceivedShoppingContext","setIsReceivedShoppingContext","updateShoppingBagQuantity","newShoppingBagQuantity","shoppingContextLoadedEventHandler","basketUpdatedEventHandler","document","getElementById","requestShoppongContextEvent","ShoppingContextLoaded","BasketUpdated","RequestShoppingContext","onMouseEnter","onMouseLeave","onMobileEcataloguePageClick","ShoppingBagContent","formattedAriaLabel","RightActionsSectionRoot","RightActionsSection","shouldDisplayNotificationIcon","showFavorites","showNotifications","getSearchTime","timestamp","searchTime","now","analytics","ActualPriceUnformated","ConceptName","CurrencyCode","GtmBrand","GtmCategory","currency","globalBrandName","globalCategoryName","globalName","itemCode","ProductCode","localBrandName","localCategoryName","localName","media","ProductImageUrl","price","_results$Products$pos","results","docId","Products","filterQueries","Query","queryId","QueryId","sessionId","OnlineSessionId","source","totalHits","userId","timeStamp","ProductImageRoot","isSmall","ProductImageNoImage","h3","ProductImage","_images$at","size","NO_IMAGE","imageSizes","PRODUCT_IMAGE_ROOT","at","ProductTileRoot","disabled","isLarge","flexBasis","caption","ProductTileProductLink","WebkitTapHighlightColor","ProductTileTitle","ProductTilePriceBox","ProductTileActualPrice","marginTop","ProductTileStandardPrice","ProductTile","basicCataloguePrice","currentPrice","_ref7$displayProductN","displayProductName","_ref7$largeVersion","largeVersion","productCode","productName","productUrl","onClickHandler","PRODUCT_TILE_ROOT","PRODUCT_TILE_LINK","PRODUCT_TILE_TITLE","PRODUCT_PRICE_DIFF","PopularProductsRoot","gridColumn","gridRow","PopularProductsHeader","PopularProductsWrapper","flexWrap","PopularProducts","globalApiClient","useApiClient","searchSuggestionClickData","itemData","itemType","ContentType","Product","placement","Placement","TopNavigationSearchSuggestions","createApplicationsNavigationSignal","catch","SearchSuggestionClick","index","StandardPrice","ActualPrice","PopularSearchQueriesRoot","PopularSearchQueriesHeading","PopularSearchQueriesResults","listStyleType","PopularSearchQueriesItem","PopularSearchQueriesLink","PopularSearchQueries","localBannerTitle","_results$Query","PopularQuery","Suggestions","boldMatchedText","SearchResultsRoot","SearchResultsContentWrapper","innerHeight","rootPaddings","overscrollBehaviorY","gridTemplateColumns","SearchResultsHeader","SearchResultsQuery","paddingBottom","SearchResultsLeftSide","_ref8","SearchResultsLoader","_ref10","CustomBackdrop","LazyArticles","Articles","SearchResultsContent","onlyProductsTabInSearch","setInnerHeight","isArticles","Contents","RenderSearchResult","onClickAway","blue","offer","dark","appBar","TopAreaBannerSkeleton","animation","VipOrderFormRoot","ChangeConsultantForm","ConsultantChangeConsultantNumber","vipAccessLabels","abortControllerRef","AbortController","formRef","areHintsLoading","setAreHintsLoading","setConsultantNumber","errorMessage","setErrorMessage","_useState7","_useState8","hints","setHints","_useState9","_useState10","isSubmitLocked","setIsSubmitLocked","_useForm","useForm","handleSubmit","handleChange","axios","signal","then","finally","handleSelect","textContent","post","_ref4$data","message","onSubmit","ConsultantNumber","ErrorMessage","IsAccessGranted","_formRef$current","submit","warn","action","autoComplete","method","Autocomplete","fullWidth","getOptionLabel","String","loadingText","noOptionsText","options","renderInput","TextField","helperText","label","BackArrow","SvgIcon","OrderContent","span","Username","PopupContentGroup","PopupButton","PopupLink","OrderOnBehalfDialog","_vipAccessData$Links$","_vipAccessData$Links$2","_vipAccessData$Links$3","_vipAccessData$Links$4","vipAccessData","close","changeOpened","setChangeOpened","Dialog","header","ArrowLeftThin","hideCloseButton","Links","Url","Text","OrderOnBehalf","VipAccessData","VipAccessLabels","dialogOpen","setDialogOpen","closeDialog","openDialog","NewUserFilled","ConsultantName","ArrowRightThin","SocialContactType","Contact","contact","Email","Telephone","GreetingMessageAndContact","Gift","BannerDialog","paperClasses","root","testId","TopAreaBannerDialog","contacts","referralProgram","allowedContacts","benefitsLink","greetingMessage","relativeUrl","linkTitle","userEmail","getContactByType","userPhone","PhoneNumber","DynamicFormattedMessage","translatedMessage","TopAreaBannerContent","_useTopAreaBanner","setOpen","onTopAreaBannerClick","messageUrl","messageTitle","TopAreaBanner","isSearchInputVisible","TopArea","useLoadAbTastyScript","abTastyEnabled","_useEnvironmentConfig","useEnvironmentConfiguration","environment","scriptId","getScriptId","script","createElement","body","append","remove","TopNavClassName","getClassList","classList","addClassName","add","removeClassName","Content","bannerVisible","inputVisible","externalLoginName","createPortal","usePersonalMenuPortal","fetchAboutTiles","useAboutTiles","fetch","fetchInspirationTiles","useInspirationTiles","fetchJoinTiles","fetchShopSection","useShopSection","loginButton","querySelector","mobile","searchInputVisible","withTopAreaBanner","onScroll","throttle","shrunk","searchParams","getCurrentUrl","returnUrl","consultantNumberQueryParam","onToggle","Context","_len","arguments","providers","Array","_key","reduceRight","accumulated","composeProviders","formattedToken","GlobalApiClientProvider","baseUrl","StaticApiClientProvider","UserSegmentationDataProvider","setVisible","pagePath","setPagePath","store","_useMobileOs","setUserOs","os","UAParser","getOS","useMobileOs","useLayoutEffect","useGetTenantMobileAppSmartAppBanner","storeName","revalidateIfStale","revalidateOnFocus","revalidateOnReconnect","shouldRetryOnError","setMonth","getMonth","setItem","toISOString","PbsContentProvider","SearchInputProvider","ActiveLinkProvider","setActiveMenu","vipAccess","setVipAccess","setLoadingVipAccess","useGetApplicationsNavigationCustomerInfo","abortController","baseURL","origin","response","abort","_data$consultantNumbe","_data$consultantNumbe2","_vipAccess$VipAccessD","_benefitBannerData$ap","_benefitBannerData$ap2","_useUserSegmentationD","useUserSegmentationData","customerTypeId","visitorSegment","_orderOnBehalfData$Vi","_orderOnBehalfData$Vi2","CUSTOMER_TYPE_ID","VISITOR_SEGMENT","VisitorSegment","Anonymous","swrConfig","frontpage","benefitBanner","AboutTilesProvider","InspirationTilesProvider","setAboutLabel","setJoinLabel","setJoinUrl","setLoading","fetchNavigationItems","useFetchNavigationItems","TopNavigation","_collection$find$url","_collection$find2","AboutTiles","ShopSectionProvider","CataloguesProvider","useWasTooltipShown","initialValue","sessionStorage","JSON","parse","log","storedValue","setStoredValue","valueOrFunction","prevValue","valueToStore","stringify","PersonalBeautyStoreProvider","isTooltipEnabled","_useWasTooltipShown","_useWasTooltipShown2","isAnonymousUserOnReferralMarket","canDisplaySponsorInfo","personalBeautyStoreContext","updateQueryParameters","newQueryParameters","newUrl","URL","history","replaceState","removeQueryParameter","queryParams","URLSearchParams","has","delete","ensureQueryParameter","set","PbsApp","parameters","setQueryParameter","_parameters$removeQue","_parameters$setQueryP","_step","removeQueryParameterHistoryApi","setQueryParameterHistoryApi","foundPrev","_iterator","_createForOfIteratorHelper","cookiesToTransform","s","n","done","cookieName","cookie","queryParamName","queryParam","stopIfFound","stopIfFoundPrev","removeIfNotFound","cookieValue","stop","err","f","SWRConfig","errorRetryCount","ApiClientProvider","Pbs","graphQlUrl","identityUrl","pbs","TranslationsNamespaceProvider","namespace","AppConfigProvider","TestIdProvider","team","Team","Presentation","project","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","render","rootElement","_rootElement$dataset$","dataset","config","_parseClientAppConfig","parseClientAppConfig","clientAppConfig","createRoot","ErrorBoundary","ServiceUrlsProvider","serviceUrls","UniversalTokenProvider","initialToken","ThemeProvider","enableCacheProvider","cacheKey","ClientCultureProvider","TranslationsProvider","clientFetchConfiguration","onError","StyledProducts","LinkWrap","PersonalLink","getLiveStreamingLabel","IS_LIVE","LiveNow","PLANNED","LiveVideoStartingSoon","WatchLatestVideo","MenuItemPersonalLinks","personalProductListConfiguration","videoShoppingConfiguration","sharedUrl","MenuItemTestIds","RECOMMENDED_PRODUCTS","SeeMyFavoriteProducts","WATCH_LATEST_VIDEO","LiveStreamingStateWrapTestIds","NowLiveStreamingRoot","red","NowLiveStreamingText","StyledBadge","right","memo","WAS_LIVE","AVATAR_BADGE_WAS_LIVE","AVATAR_BADGE_IS_LIVE","APP_NAME","APP_TEAM_NAME","defaultTranslations","MetaTitleForSharing","DESKTOP_BREAKPOINT","NOT_LOGGED_IN_USER_ID","PBS_CODE","ECREF_OWNER","_Component","_this","_classCallCheck","args","_callSuper","_inherits","_createClass","this","Component","useTranslationsFromNamespace","ShowType","_contacts$filter$","date","hours","endedAtUtc","typeOfShow","Live","Scheduled","Ended","endedAtUtcDate","setHours","getHours","replacePlaceholdersInUrl","urlWithPlaceholders","replacements","numberOfPlaceholdersToReplace","match","Object","some","replacementValue","keys","replace","fullMatch","group1","_replacements$group","MenuContentTestIds","ItemContentWrap","MenuItemPersonalLinksWrap","ml","mr","MenuContent","HEADING","BENEFITS_LINK","USER_EMAIL","USER_PHONE","SkeletonSubCategoryMobileRoot","SkeletonSubCategoryMobileLoader","SkeletonSubCategoryMobile","elements","Math","floor","skeletonElements","from","step","SKELETON_SUB_CATEGORY_MOBILE_ROOT","SkeletonSubCategoryRoot","SkeletonSubCategoryLoader","SkeletonSubCategoryDesktop","steps","SKELETON_SUB_CATEGORY_ROOT","formatValidity","catalogueId","catalogues","formatValidityDate","catalogue","valid","to","SkeletonCatalogueMobileRoot","SkeletonCatalogueMobileValidity","SkeletonCatalogueMobileSeeAll","SkeletonCatalogueMobile","SKELETON_CATALOGUE_MOBILE","SKELETON_CATALOGUE_MOBILE_CONTENT","SkeletonCatalogueDesktopRoot","gridColumnStart","SkeletonCatalogueDesktopValidity","SkeletonCatalogueDesktopContent","SkeletonCatalogueDesktopSeeAll","SkeletonCatalogueDesktop","SKELETON_CATALOGUE_DESKTOP","SKELETON_CATALOGUE_DESKTOP_CONTENT","largeComponentRadius","CatalogueType","CurrentCatalog","NextCatalog","Validity","secondary","Centered","CatalogueLink","_ref5$hoverEffect","hoverEffect","CatalogueDetailButton","_ref6$hoverEffect","ImageWrapper","Current","CallToAction","CTAText","textUnderlineOffset","textDecorationThickness","MobileWrapper","CurrentCatalogue","_props$catalogue","validity","linkToAllCatalogues","MOBILE_CATALOGUE","Banner","dateRange","LINK","CTA_TEXT","DESKTOP_CATALOGUE","PRODUCT_IMAGE","VALIDITY","DETAIL_BUTTON","CATALOGUES_SEE_ALL","CATALOGUES_SEE_ALL_LINK","NextCatalogue","NEXT_CATALOGUE","Next","Catalogues","_linkToAllCatalogues$","_catalogueNext$id","_useCatalogues","useCatalogues","_useCulture","useCulture","culture","timeZone","formatDate","DateFormat","ShortDate","sendAnalyticsData","CLICK_CATALOGUE_DETAIL","link","catalogueCurrent","catalogueNext","isCatalogueNextValid","BurgerMenuContentRoot","StyledPbsMenuContent","_pbsData$application$2","_pbsData$application2","_productLists$","productLists","videoShoppingConfigurationAddThis","addThis","videoShoppingUrl","pplConfigurationAddThis","isPplEnabled","pplUrl","liveShowId","showId","personallist","productListId","LazyInspiration","Inspiration","LazyCategoryContent","CategoryContent","contentRootRef","activeLink","useActiveLink","navigation","useGetNavigationType","activeLinkType","BURGER_MENU_CONTENT_ROOT","isCatalogue","isCategory","CATEGORY_WRAPPER","isInspiration","SkeletonMainCategoriesMobileCategory","SkeletonMainCategoriesMobileCategoryLarge","SkeletonMainCategoriesMobile","SKELETON_MAIN_CATEGORY_MOBILE","SkeletonMenuLinks","borderRight","SkeletonMainCategoriesDesktop","MAIN_CATEGORY_DESKTOP","times","LazyGeneratedBurgerMainMenuLinks","BURGER_MENU_LINK","BURGER_MENU_LINK_ROOT_MOBILE","BURGER_MENU_LINK_CATEGORY_MOBILE","BURGER_MENU_LINK_ICON_WRAPPER","BURGER_MENU_CONTENT","BURGER_MENU_LINK_ROOT","BURGER_MENU_LINK_CATEGORY","isLinkTypeCatalogue","Catalogue","isActiveLinkTypeCatalogue","Category","getBurgerMenuHeight","isActiveLink","isAlwaysActiveLink","burgerMenuHeight","CLICK_CATALGOUE","CLICK_CATEGORY_BRAND","cataloguesContextDefaultValue","cataloguesContext","_useGetTenantCatalogu","useGetTenantCatalogues","_data$collection","appConfigContextDefaultValue","ssoAdLoginUrl","appConfigContext","activeLinkContext","setActiveLink","toggleActiveLink","InspirationTiles","setItems","displayName","pbsContentContext","searchInputContext","setIsFocused","setIsVisible","setIsManuallyOpened","setResults","setTimestamp","_useState11","_useState12","ACCEPT_LANGUAGE","ShopSection","useGlobalApiClient","staticApiClient","useStaticApiClient","navigationType","requestOptions","excludeChildren","_customerInfo$custome","customerInfo","getApplicationsNavigationCustomerInfo","customerType","getTenantApplicationsNavigationNavigation","navigationCollection","md","articleContent","searchPhrase","escapedSearchPhrase","replaceAll","trim","regExpPattern","RegExp","splitText","split","matches","exec","el","___CSS_LOADER_EXPORT___","push","module"],"sourceRoot":""}