{"version":3,"file":"382.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/TopAreaBlock.tsx","webpack://oritopareaapp/../../../../src/context/navigation/activeMenuContext.tsx","webpack://oritopareaapp/../../../../src/components/Account/AccountFlyout.tsx","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/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/Join/constants.ts","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/SearchInput/styles.ts","webpack://oritopareaapp/../../../../src/components/SearchInput/utils.ts","webpack://oritopareaapp/../../../../src/components/SearchInput/SearchInput.tsx","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/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/styles.ts","webpack://oritopareaapp/../../../../src/components/OrderOnBehalf/OrderOnBehalfDialog.tsx","webpack://oritopareaapp/../../../../src/components/OrderOnBehalf/OrderOnBehalf.tsx","webpack://oritopareaapp/../../../../src/components/OrderOnBehalf/constants.ts","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/components/TopAreaBannerContent/goToPage.ts","webpack://oritopareaapp/../../../../src/components/TopAreaBanner/TopAreaBanner.tsx","webpack://oritopareaapp/../../../../src/components/TopArea/styles.ts","webpack://oritopareaapp/../../../../src/components/TopArea/TopArea.tsx","webpack://oritopareaapp/../../../src/hooks/useManagedHeight.ts","webpack://oritopareaapp/../../../src/containers/Content.tsx","webpack://oritopareaapp/../../../src/hooks/useLoadAbTastyScript.ts","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/formatDate.ts","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/common/constants.ts","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/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/utils.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 (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/8e82c73eacd1c73ed013bf7f9456f94d.js';\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","export 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","import { 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","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';\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';\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 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","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","import { 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';\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(28),\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 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';\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\ninterface 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';\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\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 { formatMessage } = 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 {formatMessage('products')}\n \n {!isLoggedIn && useSsoIdentityLogin ? null : (\n \n {isLoggedIn ? formatMessage('myAccount') : `${formatMessage('logIn')}/${formatMessage('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';\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 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';\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 type { FC } from 'react';\nimport { useCallback } from 'react';\n\nimport { useToggleMenu } from '../../hooks';\nimport { BurgerMenuIcon } from './BurgerMenuIcon';\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\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';\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';\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\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\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_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","export const JOIN_SKELETON = 'join-skeleton';\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 type { FC } from 'react';\nimport { useCallback, useState } from 'react';\n\nimport { CLICK_NOTIFICATION_ICON } from '../constants';\nimport { useHover } from '../hooks';\nimport { dispatchToggleMenu } from '../utils';\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: theme.typography.h4.fontSize,\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 { 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: theme.typography.pxToRem(28),\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 { 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","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","import type { KeyboardEvent } from 'react';\n\nexport const onEnterPressHandler = (e: KeyboardEvent) => {\n if (e.key === 'Enter') {\n const { value: searchQuery } = e.target as HTMLInputElement;\n window.location.href = `/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 type { SearchInputRootProps } from './styles';\nimport { InputBackdrop, SearchInputBox, SearchInputClear, SearchInputInput, SearchInputRoot } from './styles';\nimport { onEnterPressHandler } from './utils';\n\ntype 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","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\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\ninterface 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, MiniBag, MiniBagFilled, 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';\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\nconst getFLyoutEvent = (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 = MiniBagFilled;\n let icon = MiniBag;\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(getFLyoutEvent(true));\n }, [isECatalogue, isMobile]);\n\n const onMouseLeave = useCallback(() => {\n if (isECatalogue || isMobile()) {\n return;\n }\n\n window.dispatchEvent(getFLyoutEvent(false));\n }, [isECatalogue, isMobile]);\n\n const onMobileEcataloguePageClick = useCallback(() => {\n window.dispatchEvent(getFLyoutEvent());\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\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\ninterface 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';\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\ninterface 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';\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 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","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';\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 onClick(name, index)}\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 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 { onlyProductsInSearchResults } = 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 && !onlyProductsInSearchResults ? : 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","/* eslint-disable react/jsx-no-bind -- Designed by MUI. */\n\n/* eslint-disable no-console -- We want to log errors in case of failed calls. */\nimport { Autocomplete, Button, styled, TextField } from '@ori-ui/mui';\nimport { axios } from '@ori/axios';\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';\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\ninterface 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 { formatMessage } = useTranslations();\n const { register, handleSubmit } = useForm();\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(formatMessage('failedToSubmit'));\n console.warn(error);\n }\n } else {\n setErrorMessage(ErrorMessage);\n }\n } catch (error: unknown) {\n console.warn(error);\n }\n }, [consultantNumber, formatMessage]);\n\n return (\n \n String(hint.hint)}\n id=\"ConsultantNumber\"\n loading={areHintsLoading}\n loadingText={formatMessage('loading')}\n noOptionsText={formatMessage('noOptions')}\n options={hints}\n renderInput={(props) => (\n \n )}\n onChange={handleSelect}\n />\n \n {formatMessage('change')}\n \n \n );\n};\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 { useState } from 'react';\n\nimport { ChangeConsultantForm } from './ChangeConsultantForm';\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\n return (\n \n setChangeOpened(false)}>\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 { formatMessage } = useTranslations();\n\n if (!vipAccessData || !vipAccessLabels) {\n return null;\n }\n\n return (\n \n \n {formatMessage('loggedInAs')}\n {vipAccessData.ConsultantName}\n \n \n \n );\n};\n","export const ORDER_ON_BEHALF = 'order-on-behalf-banner';\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","/* istanbul ignore file */\nexport const goToPage = (page: string) => (window.location.href = page);\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 { 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","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\nenum ClassName {\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: ClassName) => getClassList().add(className);\n\nconst removeClassName = (className: ClassName) => 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(ClassName.default);\n if (isMobile) {\n addClassName(ClassName.mobile);\n if (showSearchOnScroll && inputVisible) {\n addClassName(ClassName.searchInputVisible);\n } else {\n removeClassName(ClassName.searchInputVisible);\n }\n } else {\n removeClassName(ClassName.mobile);\n }\n if (bannerVisible) {\n addClassName(ClassName.withTopAreaBanner);\n } else {\n removeClassName(ClassName.withTopAreaBanner);\n }\n }\n }, [isMobile, bannerVisible, width, inputVisible, showSearchOnScroll]);\n useEffect(() => {\n const onScroll = throttle(() => {\n if (window.scrollY > 0) {\n addClassName(ClassName.shrunk);\n } else {\n removeClassName(ClassName.shrunk);\n }\n }, 100);\n window.addEventListener('scroll', onScroll);\n\n return () => window.removeEventListener('scroll', onScroll);\n }, []);\n};\n","import { useEffect } from 'react';\n\nimport { TopAreaBlock } from '../components';\nimport { TopArea } from '../components/TopArea';\nimport { AB_TASTY_SCRIPT_URL } from '../constants';\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(AB_TASTY_SCRIPT_URL);\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 { useEffect } from 'react';\n\nimport { useAppConfig } from '../context';\n\nexport const useLoadAbTastyScript = (scriptUrl: string) => {\n const { abTastyEnabled } = useAppConfig();\n\n useEffect(() => {\n if (abTastyEnabled) {\n const script = document.createElement('script');\n script.src = scriptUrl;\n script.async = true;\n\n document.body.append(script);\n\n return () => {\n script.remove();\n };\n }\n\n return () => {};\n }, [abTastyEnabled, scriptUrl]);\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 useClickSignInButtonSupportCenter = () => {\n const { activeMenu } = useActiveMenu();\n useEffect(() => {\n const loginButton = document.querySelector('.support-center-footer-login__button');\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 (returnUrl || 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","import 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","import { 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","import { 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","import { 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 { TranslationsProvider } from '@ori/i18n';\nimport { LoginProvider } from '@ori/login';\nimport { ErrorBoundary } from '@ori/presentation-components';\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","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\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\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","export const formatDate = (date?: unknown) => {\n if (date instanceof Date) {\n const day = date.getDate();\n const month = date.getMonth();\n const year = date.getFullYear();\n\n return `${day}.${month + 1}.${year}`;\n }\n\n return undefined;\n};\n","import type { StaticCataloguesCatalogueDto } from '@ori/static-api-client-react';\n\nimport { formatDate } from '.';\n\nexport const formatValidity = (catalogueId: string, catalogues: StaticCataloguesCatalogueDto[]) => {\n const catalogue = catalogues.find((e) => e.catalogueId.toString() === catalogueId);\n\n if (!catalogue?.valid) {\n return null;\n }\n\n const from = formatDate(catalogue.valid.from);\n const to = formatDate(catalogue.valid.to);\n\n if (!from || !to) {\n return null;\n }\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';\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';\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","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';\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 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 { 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\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","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 { 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\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\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","import 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","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 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","import 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 onlyProductsInSearchResults: 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","import { 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","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","Boolean","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","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","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","BurgerMenuRoot","border","maxWidth","isDesktop","top","BurgerMenuInner","maxHeight","overflowX","overflowY","BurgerMenuContainer","LazyAccount","LazyBurgerMenuLinks","BurgerMenu","_ToggleMenuFlyout$Men","BurgerMenuType","AccountSideMenuType","_usePbsContent","usePbsContent","isShown","setIsShown","handleTabClick","ProductsTab","formatMessage","isMenuActive","AccountTab","personalMenu","accountTabContent","onClickOverlay","drawer","componentsProps","backdrop","BurgerMenuIcon","as","BurgerMenuLinks","BurgerMenuContent","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","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","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","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","h4","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","target","encodeURIComponent","SearchInput","focus","blur","clearResults","isManuallyOpened","setValue","sync","useWindowSize","SearchResults","prevScrollY","setPrevScrollY","_useDebounce","useDebounce","debouncedValue","throttledAnalytics","useThrottledCallback","START_SEARCH","onFocusHandler","onChangeHandler","isValueEmpty","handleScrollDebounced","debounce","currentScrollY","scrollY","difference","closeSearch","clearInput","handleOnBlur","autoFocus","placeholder","onFocus","onChange","onBlur","onKeyDown","growShrinkAnimation","keyframes","ShoppingBagCounterRoot","letterSpacing","isAnimationActive","animationDuration","animationName","ShoppingBagCounter","shoppingBagQuantity","setIsAnimationActive","ShoppingBagIconRoot","isCnMarket","getFLyoutEvent","shouldOpen","Minibag","ShoppingBagIcon","isECatalogue","setIsECatalogue","mobileBreakpoint","mobileBreakpointECatalogue","CN_MARKET","MiniBagFilled","MiniBag","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","imageSizes","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","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","onlyProductsInSearchResults","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","ClassName","getClassList","body","classList","addClassName","add","removeClassName","remove","Content","scriptUrl","abTastyEnabled","bannerVisible","inputVisible","externalLoginName","createPortal","usePersonalMenuPortal","fetchAboutTiles","useAboutTiles","fetch","fetchInspirationTiles","useInspirationTiles","fetchJoinTiles","fetchShopSection","useShopSection","script","createElement","append","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","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","SkeletonSubCategoryRoot","SkeletonSubCategoryLoader","SkeletonSubCategoryDesktop","steps","formatDate","day","getDate","month","year","getFullYear","formatValidity","catalogueId","catalogues","catalogue","valid","to","SkeletonCatalogueMobileRoot","SkeletonCatalogueMobileValidity","SkeletonCatalogueMobileSeeAll","SkeletonCatalogueMobile","SkeletonCatalogueDesktopRoot","gridColumnStart","SkeletonCatalogueDesktopValidity","SkeletonCatalogueDesktopContent","SkeletonCatalogueDesktopSeeAll","SkeletonCatalogueDesktop","VALIDITY","LINK","PRODUCT_IMAGE","DETAIL_BUTTON","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","Banner","dateRange","NextCatalogue","Next","Catalogues","_linkToAllCatalogues$","_catalogueNext$id","_useCatalogues","useCatalogues","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","isCatalogue","isCategory","isInspiration","SkeletonMainCategoriesMobileCategory","SkeletonMainCategoriesMobileCategoryLarge","SkeletonMainCategoriesMobile","SkeletonMenuLinks","borderRight","SkeletonMainCategoriesDesktop","times","LazyGeneratedBurgerMainMenuLinks","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":""}