{"version":3,"file":"255.chunk.js","mappings":"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","sources":["webpack://oritopareaapp/../../../src/constants/defaultTranslations.ts","webpack://oritopareaapp/../../src/constants-generated.ts","webpack://oritopareaapp/../../../src/models/PbsCookieNames.ts","webpack://oritopareaapp/../../../src/constants/app.ts","webpack://oritopareaapp/../../../src/utils/getCountryCode.ts","webpack://oritopareaapp/../../../src/utils/getHomeCountryUrl.ts","webpack://oritopareaapp/../../../src/utils/getGeolocationData.ts","webpack://oritopareaapp/../../../src/utils/localStorageUtils.ts","webpack://oritopareaapp/../../../../src/components/GeolocationDialog/styles.ts","webpack://oritopareaapp/../../../../src/components/GeolocationDialog/GeolocationDialog.tsx","webpack://oritopareaapp/../../../src/hooks/useTranslations.ts","webpack://oritopareaapp/../../../../src/components/GeolocationDialog/constants.ts","webpack://oritopareaapp/../../../../src/components/Geolocation/Geolocation.tsx","webpack://oritopareaapp/../../src/event.ts","webpack://oritopareaapp/../../src/constants.ts","webpack://oritopareaapp/../../../src/contexts/loginContext.ts","webpack://oritopareaapp/../../../src/utils/goToPage.ts","webpack://oritopareaapp/../../../../src/components/LoginProvider/LoginProvider.tsx","webpack://oritopareaapp/../../../src/constants/defaultTranslationsWithNamespaces.ts","webpack://oritopareaapp/../../../src/utils/getSearchTime.ts","webpack://oritopareaapp/../../../src/utils/analytics.ts","webpack://oritopareaapp/../../../../../src/components/SearchPreview/hooks/useSendNavigationSignal.ts","webpack://oritopareaapp/../../../src/models/ReferralType.ts","webpack://oritopareaapp/../../../../src/contexts/PersonalBeautyStoreProvider/useCookieStoreInfo.ts","webpack://oritopareaapp/../../../../../src/models/graphql-types/net/graphql.ts","webpack://oritopareaapp/../../../../../src/components/TopAreaBanner/utils/getTopAreaBannerType.ts","webpack://oritopareaapp/../../../src/constants/parameters.ts","webpack://oritopareaapp/../../../src/utils/mapTopAreaBanners.ts","webpack://oritopareaapp/../../../src/utils/sanitizeKey.ts","webpack://oritopareaapp/../../../src/hooks/useGetTopAreaBanners.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/styles.ts","webpack://oritopareaapp/../../../../src/components/TopAreaBlock/TopAreaBlock.tsx","webpack://oritopareaapp/../../../../src/components/TopAreaBlock/constants.ts","webpack://oritopareaapp/../../../src/hooks/useMobileOs.ts","webpack://oritopareaapp/../../../../src/context/appPromoContext/utils.ts","webpack://oritopareaapp/../../../../src/context/appPromoContext/appPromoContext.tsx","webpack://oritopareaapp/../../../../src/components/AppPromoBanner/constants.ts","webpack://oritopareaapp/../../../../../src/components/AppPromoBanner/components/styles.ts","webpack://oritopareaapp/../../../../../src/components/AppPromoBanner/components/AppInfo.tsx","webpack://oritopareaapp/../../../../src/components/AppPromoBanner/styles.ts","webpack://oritopareaapp/../../../../src/components/AppPromoBanner/AppPromoBanner.tsx","webpack://oritopareaapp/../../../../src/components/ShadePicker/ShadePicker.tsx","webpack://oritopareaapp/../../../src/hooks/useCustomerInitials.ts","webpack://oritopareaapp/../../../src/models/BurgerMenuTabNames.ts","webpack://oritopareaapp/../../../../../src/components/BurgerMenu/BurgerMenuContent/LazyBurgerMenuContent.tsx","webpack://oritopareaapp/../../../../src/components/UserSection/styles.ts","webpack://oritopareaapp/../../../../../src/components/BurgerMenu/BurgerMenuTab/styles.ts","webpack://oritopareaapp/../../../../../src/components/BurgerMenu/BurgerMenuTab/BurgerMenuTab.tsx","webpack://oritopareaapp/../../../../../src/components/BurgerMenu/Links/LazyLinks.tsx","webpack://oritopareaapp/../../../../src/components/BurgerMenu/BurgerMenu.tsx","webpack://oritopareaapp/../../../../../../src/components/Join/components/JoinTileImage/JoinTileImage.tsx","webpack://oritopareaapp/../../../../src/components/Join/styles.ts","webpack://oritopareaapp/../../../../src/components/Join/JoinMenu.tsx","webpack://oritopareaapp/../../../../src/components/Join/constants.ts","webpack://oritopareaapp/../../../src/utils/dispatchToggleMenu.ts","webpack://oritopareaapp/../../../src/hooks/useToggleMenu.ts","webpack://oritopareaapp/../../../../../src/components/BurgerMenu/BurgerMenuIcon/styles.ts","webpack://oritopareaapp/../../../../../src/components/BurgerMenu/BurgerMenuIcon/BurgerMenuIcon.tsx","webpack://oritopareaapp/../../../../../src/components/BurgerMenu/BurgerMenuToggle/styles.ts","webpack://oritopareaapp/../../../../../src/components/BurgerMenu/BurgerMenuToggle/BurgerMenuToggle.tsx","webpack://oritopareaapp/../../../../../src/components/OriflameLogo/components/styles.ts","webpack://oritopareaapp/../../../../../../src/components/OriflameLogo/components/ChineseLogo/styles.ts","webpack://oritopareaapp/../../../../../../src/components/OriflameLogo/components/ChineseLogo/ChineseLogo.tsx","webpack://oritopareaapp/../../../../../../src/components/OriflameLogo/components/ChineseLogo/constants.ts","webpack://oritopareaapp/../../../../../../src/components/OriflameLogo/components/CommonLogo/CommonLogo.tsx","webpack://oritopareaapp/../../../../../../src/components/OriflameLogo/components/CommonLogo/constants.ts","webpack://oritopareaapp/../../../../src/components/OriflameLogo/styles.ts","webpack://oritopareaapp/../../../../src/components/OriflameLogo/OriflameLogo.tsx","webpack://oritopareaapp/../../../src/hooks/useIsMarketCN.ts","webpack://oritopareaapp/../../../src/constants/tenants.ts","webpack://oritopareaapp/../../../../src/components/OriflameLogo/constants.ts","webpack://oritopareaapp/../../../../src/components/LeftActionsSection/styles.ts","webpack://oritopareaapp/../../../../src/components/LeftActionsSection/LeftActionsSection.tsx","webpack://oritopareaapp/../../../src/hooks/useHover.ts","webpack://oritopareaapp/../../../../src/components/FavoritesHeartIcon/constants.ts","webpack://oritopareaapp/../../../../src/components/FavoritesHeartIcon/styles.ts","webpack://oritopareaapp/../../../../src/components/FavoritesHeartIcon/FavoritesHeartIcon.tsx","webpack://oritopareaapp/../../../../src/context/navigation/labelsContext.tsx","webpack://oritopareaapp/../../../../../../src/components/Join/components/JoinIcon/styles.ts","webpack://oritopareaapp/../../../../../../src/components/Join/components/JoinIcon/JoinIcon.tsx","webpack://oritopareaapp/../../../../src/components/NotificationBellIcon/styles.ts","webpack://oritopareaapp/../../../../src/components/NotificationBellIcon/NotificationBellIcon.tsx","webpack://oritopareaapp/../../../../src/components/NotificationBellIcon/constants.ts","webpack://oritopareaapp/../../../src/hooks/useSearchInputPlaceholder.ts","webpack://oritopareaapp/../../../../src/components/SearchIcon/styles.ts","webpack://oritopareaapp/../../../../src/components/SearchIcon/SearchIcon.tsx","webpack://oritopareaapp/../../../../src/components/SearchIcon/constants.ts","webpack://oritopareaapp/../../../src/utils/mapSearchPreviewProductToShadePicker.ts","webpack://oritopareaapp/../../../src/utils/getQuickBuyButtonOnClickHandler.ts","webpack://oritopareaapp/../../../src/utils/openProductInfoDialog.ts","webpack://oritopareaapp/../../../src/utils/openShadePicker.ts","webpack://oritopareaapp/../../../src/utils/getSearchUrl.ts","webpack://oritopareaapp/../../../../../../src/components/SearchPreview/components/SearchPreviewProduct/constants.ts","webpack://oritopareaapp/../../../src/utils/boldMatchedText.tsx","webpack://oritopareaapp/../../../../../../src/components/SearchPreview/components/SearchPreviewSuggestion/styles.ts","webpack://oritopareaapp/../../../../../../src/components/SearchPreview/components/SearchPreviewSuggestion/constants.ts","webpack://oritopareaapp/../../../../../../src/components/SearchPreview/components/SearchPreviewSuggestion/SearchPreviewSuggestion.tsx","webpack://oritopareaapp/../../../../../../src/components/SearchPreview/components/SearchPreviewHeader/SearchPreviewHeader.tsx","webpack://oritopareaapp/../../../../../../src/components/SearchPreview/components/SearchPreviewHeader/constants.ts","webpack://oritopareaapp/../../../../../../src/components/SearchPreview/components/SearchPreviewImage/constants.ts","webpack://oritopareaapp/../../../../../../src/components/SearchPreview/components/SearchPreviewImage/styles.ts","webpack://oritopareaapp/../../../../../../src/components/SearchPreview/components/SearchPreviewImage/SearchPreviewImage.tsx","webpack://oritopareaapp/../../../../../../src/components/SearchPreview/components/SearchPreviewProduct/components/ProductInfoLabel/constants.ts","webpack://oritopareaapp/../../../../../../src/components/SearchPreview/components/SearchPreviewProduct/components/ProductInfoLabel/styles.ts","webpack://oritopareaapp/../../../../../../src/components/SearchPreview/components/SearchPreviewProduct/components/ProductInfoLabel/ProductInfoLabel.tsx","webpack://oritopareaapp/../../../../../../src/components/SearchPreview/components/SearchPreviewProduct/components/Shades/constants.ts","webpack://oritopareaapp/../../../../../../src/components/SearchPreview/components/SearchPreviewProduct/components/Shades/styles.ts","webpack://oritopareaapp/../../../../../../src/components/SearchPreview/components/SearchPreviewProduct/components/Shades/Shades.tsx","webpack://oritopareaapp/../../../../../../src/components/SearchPreview/components/SearchPreviewProduct/components/ProductInfo/styles.ts","webpack://oritopareaapp/../../../../../../src/components/SearchPreview/components/SearchPreviewProduct/components/ProductInfo/ProductInfo.tsx","webpack://oritopareaapp/../../../../../../src/components/SearchPreview/components/SearchPreviewProduct/components/Prices/utils.ts","webpack://oritopareaapp/../../../../../../src/components/SearchPreview/components/SearchPreviewProduct/components/Prices/styles.ts","webpack://oritopareaapp/../../../../../../src/components/SearchPreview/components/SearchPreviewProduct/components/Prices/Prices.tsx","webpack://oritopareaapp/../../../../../../src/components/SearchPreview/components/SearchPreviewProduct/styles.ts","webpack://oritopareaapp/../../../../../../src/components/SearchPreview/components/SearchPreviewProduct/SearchPreviewProduct.tsx","webpack://oritopareaapp/../../../../src/components/SearchPreview/styles.ts","webpack://oritopareaapp/../../../../src/components/SearchPreview/SearchPreview.tsx","webpack://oritopareaapp/../../../src/utils/getProductUrl.ts","webpack://oritopareaapp/../../../src/utils/addParamsToUrl.ts","webpack://oritopareaapp/../../../../src/components/SearchPreview/constants.ts","webpack://oritopareaapp/../../../../../../src/components/SearchPreviewSkeleton/components/SearchPreviewProductSkeleton/constants.ts","webpack://oritopareaapp/../../../../../../src/components/SearchPreviewSkeleton/components/SearchPreviewProductSkeleton/styles.ts","webpack://oritopareaapp/../../../../../../src/components/SearchPreviewSkeleton/components/SearchPreviewProductSkeleton/SearchPreviewProductSkeleton.tsx","webpack://oritopareaapp/../../../../src/components/SearchPreviewSkeleton/constants.ts","webpack://oritopareaapp/../../../../src/components/SearchPreviewSkeleton/styles.ts","webpack://oritopareaapp/../../../../src/components/SearchPreviewSkeleton/SearchPreviewSkeleton.tsx","webpack://oritopareaapp/../../../../../../src/components/SearchInput/components/SearchPreviewContainer/styles.ts","webpack://oritopareaapp/../../../../../../src/components/SearchInput/components/SearchPreviewContainer/SearchPreviewContainer.tsx","webpack://oritopareaapp/../../../../src/components/SearchInput/styles.ts","webpack://oritopareaapp/../../../../src/components/SearchInput/constants.ts","webpack://oritopareaapp/../../../../src/components/SearchInput/utils.ts","webpack://oritopareaapp/../../../../src/components/SearchInput/SearchInput.tsx","webpack://oritopareaapp/../../../../../../src/components/ShoppingBagIcon/components/ShoppingBagCounter/styles.ts","webpack://oritopareaapp/../../../../../../src/components/ShoppingBagIcon/components/ShoppingBagCounter/ShoppingBagCounter.tsx","webpack://oritopareaapp/../../../../../../src/components/ShoppingBagIcon/components/ShoppingBagCounter/constants.ts","webpack://oritopareaapp/../../../../src/components/ShoppingBagIcon/styles.ts","webpack://oritopareaapp/../../../../src/components/ShoppingBagIcon/utils.ts","webpack://oritopareaapp/../../../../src/components/ShoppingBagIcon/ShoppingBagIcon.tsx","webpack://oritopareaapp/../../../../../src/components/ShoppingBagIcon/hooks/useDeviceType.ts","webpack://oritopareaapp/../../../../../src/components/ShoppingBagIcon/hooks/useShoppingBag.ts","webpack://oritopareaapp/../../../../src/components/ShoppingBagIcon/constants.ts","webpack://oritopareaapp/../../../../src/components/UserSection/constants.ts","webpack://oritopareaapp/../../../../src/components/UserSection/UserSection.tsx","webpack://oritopareaapp/../../../../src/components/RightActionsSection/styles.ts","webpack://oritopareaapp/../../../../src/components/RightActionsSection/RightActionsSection.tsx","webpack://oritopareaapp/../../../src/hooks/useShouldRenderNotificationMenu.ts","webpack://oritopareaapp/../../../../src/components/TopAreaBanner/constants.ts","webpack://oritopareaapp/../../../../src/components/TopAreaBanner/styles.ts","webpack://oritopareaapp/../../../../../../src/components/TopAreaBanner/components/TopAreaBannerSkeleton/TopAreaBannerSkeleton.tsx","webpack://oritopareaapp/../../../../../../src/components/TopAreaBanner/components/TopAreaBannerSkeleton/constants.ts","webpack://oritopareaapp/../../../../../../src/components/OrderOnBehalf/components/ChangeConsultantForm/constants.ts","webpack://oritopareaapp/../../../../../../src/components/OrderOnBehalf/components/ChangeConsultantForm/styles.ts","webpack://oritopareaapp/../../../../../../src/components/OrderOnBehalf/components/ChangeConsultantForm/ChangeConsultantForm.tsx","webpack://oritopareaapp/../../../../../../src/components/OrderOnBehalf/components/OrderOnBehalfDialog/styles.ts","webpack://oritopareaapp/../../../../../../src/components/OrderOnBehalf/components/OrderOnBehalfDialog/OrderOnBehalfDialog.tsx","webpack://oritopareaapp/../../../../../../src/components/OrderOnBehalf/components/OrderOnBehalfDialog/constants.ts","webpack://oritopareaapp/../../../../src/components/OrderOnBehalf/styles.ts","webpack://oritopareaapp/../../../../src/components/OrderOnBehalf/OrderOnBehalf.tsx","webpack://oritopareaapp/../../../../src/components/OrderOnBehalf/constants.ts","webpack://oritopareaapp/../../../../../../src/components/TopAreaBanner/components/BannersCarousel/components/Banner/constants.ts","webpack://oritopareaapp/../../../../../../src/components/TopAreaBanner/components/BannersCarousel/components/Banner/styles.ts","webpack://oritopareaapp/../../../../../../src/components/TopAreaBanner/components/BannersCarousel/components/Banner/Banner.tsx","webpack://oritopareaapp/../../../../../../src/components/TopAreaBanner/components/BannersCarousel/constants.ts","webpack://oritopareaapp/../../../../../../src/components/TopAreaBanner/components/BannersCarousel/styles.ts","webpack://oritopareaapp/../../../../../../src/components/TopAreaBanner/components/BannersCarousel/BannersCarousel.tsx","webpack://oritopareaapp/../../../../src/contexts/PersonalBeautyStoreProvider/personalBeautyStoreContext.ts","webpack://oritopareaapp/../../../src/utils/getContactByType.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/contexts/PersonalBeautyStoreProvider/usePersonalBeautyStore.ts","webpack://oritopareaapp/../../../../../../src/components/TopAreaBanner/components/TopAreaBannerDialog/constants.ts","webpack://oritopareaapp/../../../../../../src/components/TopAreaBanner/components/TopAreaBannerContent/TopAreaBannerContent.tsx","webpack://oritopareaapp/../../../../src/components/TopAreaBanner/TopAreaBanner.tsx","webpack://oritopareaapp/../../../../src/components/TopArea/styles.ts","webpack://oritopareaapp/../../../../src/components/TopArea/TopArea.tsx","webpack://oritopareaapp/../../../../src/components/TopArea/constants.ts","webpack://oritopareaapp/../../../src/containers/ApiProvider.tsx","webpack://oritopareaapp/../../../src/containers/Context.ts","webpack://oritopareaapp/../../../src/utils/composeProviders.tsx","webpack://oritopareaapp/../../../src/context/headersContext.tsx","webpack://oritopareaapp/../../../src/contexts/ConfigurationProvider.ts","webpack://oritopareaapp/../../../src/hooks/useSponsorPersonalBeautyStoreInfo.ts","webpack://oritopareaapp/../../src/logger.ts","webpack://oritopareaapp/../../../src/queries-net/beautyStoreQuery.ts","webpack://oritopareaapp/../../../../src/contexts/PersonalBeautyStoreProvider/usePersonalBeautyStoreData.ts","webpack://oritopareaapp/../../../../src/contexts/PersonalBeautyStoreProvider/PersonalBeautyStoreProvider.tsx","webpack://oritopareaapp/../../../src/constants/index.ts","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/hooks/useLoadAbTastyScript.ts","webpack://oritopareaapp/../../../src/hooks/useManagedHeight.ts","webpack://oritopareaapp/../../src/TopArea.tsx","webpack://oritopareaapp/../../../src/hooks/useToggleMenuHandler.ts","webpack://oritopareaapp/../../../../../src/components/SearchPreview/hooks/useAddToBasketAnalytics.ts","webpack://oritopareaapp/../../packages/top-area/dist/esm/App.css?6f53","webpack://oritopareaapp/./src/BurgerPersonalMenuOutlet.tsx","webpack://oritopareaapp/./src/createSpaEntryfileUrl.ts","webpack://oritopareaapp/./src/getPersonalMenuScriptSrc.ts","webpack://oritopareaapp/./src/appRender.tsx","webpack://oritopareaapp/./src/logger.ts","webpack://oritopareaapp/./src/includePersonalMenuScript.ts","webpack://oritopareaapp/../../src/index.ts","webpack://oritopareaapp/../../../src/api/useGetNavigationType.ts","webpack://oritopareaapp/../../../../../src/components/Skeleton/Desktop/SkeletonCatalogueDesktop.tsx","webpack://oritopareaapp/../../../../../src/components/BurgerMenu/Catalogues/CataloguesSkeleton.tsx","webpack://oritopareaapp/../../../../../src/components/BurgerMenu/Catalogues/styles.ts","webpack://oritopareaapp/../../../src/utils/mapCategoryColors.ts","webpack://oritopareaapp/../../../../../src/components/BurgerMenu/Links/styles.ts","webpack://oritopareaapp/../../../../src/components/BurgerMenu/constants.ts","webpack://oritopareaapp/../../../../src/components/BurgerMenu/styles.ts","webpack://oritopareaapp/../../../../../src/components/Skeleton/Desktop/SkeletonMainCategoryDesktop.tsx","webpack://oritopareaapp/../../../../../src/components/Skeleton/Desktop/constants.ts","webpack://oritopareaapp/../../../../../src/components/Skeleton/Mobile/styles.ts","webpack://oritopareaapp/../../../../../src/components/Skeleton/Mobile/SkeletonCatalogueMobile.tsx","webpack://oritopareaapp/../../../../../src/components/Skeleton/Mobile/SkeletonMainCategoryMobile.tsx","webpack://oritopareaapp/../../../../../src/components/Skeleton/Mobile/constants.ts","webpack://oritopareaapp/../../../src/components/styles.ts","webpack://oritopareaapp/../../../src/constants/analytics.ts","webpack://oritopareaapp/../../../src/constants/settings.ts","webpack://oritopareaapp/../../../src/context/configurationContext.tsx","webpack://oritopareaapp/../../../../src/context/navigation/activeLinkContext.tsx","webpack://oritopareaapp/../../../../src/context/navigation/activeMenuContext.tsx","webpack://oritopareaapp/../../../../src/context/navigation/burgerMenuContext.tsx","webpack://oritopareaapp/../../../../src/queries-net/fragments/labels.ts","webpack://oritopareaapp/../../../../src/queries-net/fragments/shade.ts","webpack://oritopareaapp/../../../../src/queries-net/fragments/concept.ts","webpack://oritopareaapp/../../../../src/queries-net/fragments/searchPreviewProduct.ts","webpack://oritopareaapp/../../../src/queries-net/searchPreview.ts","webpack://oritopareaapp/../../../src/utils/mapEnableQuickBuyButton.ts","webpack://oritopareaapp/../../../src/utils/mapSearchPreviewQuery.ts","webpack://oritopareaapp/../../../src/hooks/useGetSearchPreviewData.ts","webpack://oritopareaapp/../../../src/api/getSearchPreviewData.ts","webpack://oritopareaapp/../../../../src/context/navigation/searchInputContext.tsx","webpack://oritopareaapp/../../../src/hooks/useIsMobile.ts","webpack://oritopareaapp/../../../src/models/Categories.ts","webpack://oritopareaapp/../../../src/models/FavoritesLink.ts","webpack://oritopareaapp/../../packages/top-area/dist/esm/App.css"],"sourcesContent":["/* 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<keyof typeof TranslationKey, string>;\n\nexport const defaultTranslations: DefaultTranslations = {\n  dialogMessage:\n    \"It appears that the link you're attempting to access originates from a different country than your current location. Please choose location.\",\n  dialogTitle: 'Looks like you are trying to access Oriflame {foreignCountry} from {homeCountry}.',\n  foreignCountryButton: 'Go to Oriflame {foreignCountry}',\n  homeCountryButton: 'Continue to {homeCountry}',\n};\n\nexport const translationsNamespace = 'geolocation-popup';\n","/* istanbul ignore file */\n//\n// DO NOT EDIT!\n// This file was autogenerated by Eddie.\n// Changes may cause incorrect behavior and will be lost when the file is regenerated.\n//\n// Run `npx eddie update workspace` to regenerate.\n//\n\nexport const LIBRARY_NAME = 'geolocation-popup';\nexport const PACKAGE_NAME = '@ori/geolocation-popup';\nexport const TEAM_NAME = 'Presentation';\n\nexport const EMOTION_CACHE_KEY = `${LIBRARY_NAME}-emotion-cache-key`;\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","export const COUNTRY_CODE_COOKIE_NAME = 'country-code';\nexport const GEOLOCATION_LOCAL_STORAGE_KEY = 'hideGeolocationUntil';\n","import Cookies from 'js-cookie';\n\nimport { COUNTRY_CODE_COOKIE_NAME } from '../constants';\n\n/**\n * Get country code from cookie and convert it to 'uk' if it is 'gb'.\n */\nexport const getCountryCode = () => {\n  const countryCode = Cookies.get(COUNTRY_CODE_COOKIE_NAME)?.toLocaleLowerCase();\n\n  return countryCode === 'gb' ? 'uk' : countryCode;\n};\n","import type { EnvironmentContext } from '@ori/environment';\n\nimport { getCountryCode } from './getCountryCode';\n\nexport const memberBenefitsPath = '/member-benefits';\nexport const vipCustomerBenefitsPath = '/vip-customer-benefits';\nexport const comparisonPagePath = '/comparison-page';\nexport const businessOpportunityPath = '/business-opportunity';\nconst oldRegistrationPaths = [memberBenefitsPath, vipCustomerBenefitsPath, comparisonPagePath, businessOpportunityPath];\nexport const ssoRegisterPath = '/ssoidentity/register';\n\nexport interface GetHomeCountryUrlParams extends Pick<EnvironmentContext, 'environment'> {\n  store?: string | undefined;\n}\n\n/**\n * Returns URL to the home country Oriflame.\n */\nexport const getHomeCountryUrl = ({ environment = 'live', store }: GetHomeCountryUrlParams): string => {\n  const countryCode = getCountryCode();\n  const pathname = window.location.pathname\n    // remove /[a-z]{2} from the pathname if it is on the first position\n    .replace(/^\\/[a-z]{2}\\//, '/')\n    // replace old registration paths with new registration path\n    .replace(new RegExp(`^(${oldRegistrationPaths.join('|')})`), ssoRegisterPath);\n\n  const homeCountryUrl = new URL(\n    environment === 'live'\n      ? `https://${countryCode}.oriflame.com${pathname}`\n      : `https://${countryCode}-${environment}.oriflame.com${pathname}`,\n  );\n  homeCountryUrl.search = window.location.search;\n  homeCountryUrl.hash = window.location.hash;\n  if (store) {\n    // set store query param in URL\n    homeCountryUrl.searchParams.set('store', store);\n  }\n\n  return homeCountryUrl.toString();\n};\n","import type { TokenContext } from '@ori/auth';\nimport type { ClientServiceUrls } from '@ori/configuration-manager';\nimport type { EnvironmentContext } from '@ori/environment';\nimport { PbsCookieNames } from '@ori/personal-beauty-store';\nimport { ApiClient, getTenantCountry } from '@ori/static-api-client-react';\nimport Cookies from 'js-cookie';\nimport capitalize from 'lodash.capitalize';\n\nimport { getCountryCode } from './getCountryCode';\nimport { getHomeCountryUrl } from './getHomeCountryUrl';\nimport { getHiddenByUser } from './localStorageUtils';\n\nexport interface GetGeolocationDataParams\n  extends Required<Pick<ClientServiceUrls, 'staticApiUrl'>>,\n    EnvironmentContext,\n    Pick<TokenContext, 'isAnonymousUser'> {\n  /** When enabled is true other conditions are checked whether geolocation popup can be visible. */\n  enabled: boolean;\n}\n\nconst formatCountryName = (name: string) => name.split(' ').map(capitalize).join(' ');\n\nexport interface GetGeolocationData {\n  /** If true dialog will appear. */\n  visible: boolean;\n  /** Name of the home country (where user is according to countryCode). */\n  homeCountry: string;\n  /** Url to the home country Oriflame. */\n  homeCountryUrl: string;\n  /** Name of the foreign country (where user is NOT according to countryCode). */\n  foreignCountry: string;\n}\n\n/**\n * Fetches data needed to decide visibility of geolocation popup and data for homeCountry\n * (where user is according to countryCode) and foreignCountry (where user is NOT according to countryCode).\n * @param params - Parameters needed to fetch geolocation data.\n * @returns Promise with visibility and data for homeCountry and foreignCountry.\n */\nexport const getGeolocationData = async ({\n  enabled,\n  isAnonymousUser,\n  staticApiUrl,\n  tenant,\n  environment = 'live',\n}: GetGeolocationDataParams): Promise<GetGeolocationData> => {\n  const countryCode = getCountryCode();\n  if (!enabled || !isAnonymousUser || !countryCode || !tenant || countryCode === tenant) {\n    return { foreignCountry: '', homeCountry: '', homeCountryUrl: '', visible: false };\n  }\n  const store = Cookies.get(PbsCookieNames.PBS_CODE) ?? Cookies.get(PbsCookieNames.PBS_OWNER);\n  const hiddenByUser = getHiddenByUser();\n  if (!store || hiddenByUser) {\n    return { foreignCountry: '', homeCountry: '', homeCountryUrl: '', visible: false };\n  }\n  const { language } = navigator;\n  const client = new ApiClient({ baseUrl: staticApiUrl, language, tenant });\n  const [\n    {\n      data: { name: homeCountry = '' },\n    },\n    {\n      data: { isForeignRegistrationAllowed: visible, name: foreignCountry = '' },\n    },\n  ] = await Promise.all([\n    // We need to fetch translations with home country tenant (countryCode) to get correct translations.\n    getTenantCountry(client, countryCode, countryCode, { lang: language }),\n    getTenantCountry(client, countryCode, tenant, { lang: language }),\n  ]);\n\n  return {\n    foreignCountry: formatCountryName(foreignCountry),\n    homeCountry: formatCountryName(homeCountry),\n    homeCountryUrl: getHomeCountryUrl({ environment, store }),\n    visible,\n  };\n};\n","import { GEOLOCATION_LOCAL_STORAGE_KEY } from '../constants';\n\n/**\n * Checks localStorage for information if user closed geolocation popup before.\n * If he closed it in the last month, it will return true.\n */\nexport const getHiddenByUser = (): boolean => {\n  const hideGeolocationUntilFromLocalStorage = localStorage.getItem(GEOLOCATION_LOCAL_STORAGE_KEY);\n  const hideGeolocationUntil = hideGeolocationUntilFromLocalStorage\n    ? new Date(hideGeolocationUntilFromLocalStorage)\n    : null;\n  const dateNow = new Date();\n\n  return (\n    hideGeolocationUntil != null &&\n    hideGeolocationUntil.toString() !== 'Invalid Date' &&\n    hideGeolocationUntil >= dateNow\n  );\n};\n\n/**\n * Sets date to localStorage to hide geolocation popup for a month.\n */\nexport const setHideGeolocationUntilDate = () => {\n  const dateNow = new Date();\n  dateNow.setMonth(dateNow.getMonth() + 1);\n  localStorage.setItem(GEOLOCATION_LOCAL_STORAGE_KEY, dateNow.toISOString());\n};\n","import { Dialog as DialogBase } from '@ori-ui/components';\nimport { styled } from '@ori-ui/mui';\n\nexport const Content = styled('div')(({ theme }) => ({\n  display: 'flex',\n  flexDirection: 'column',\n  gap: theme.spacing(6),\n  textAlign: 'center',\n  [theme.breakpoints.up('sm')]: {\n    maxWidth: 390,\n  },\n  a: {\n    '&:hover, &:focus, &:active': {\n      color: theme.palette.common.white,\n    },\n  },\n}));\n\nexport const Dialog = styled(DialogBase)({\n  // The Dialog must be above Terms & Conditions popup (The Kendo component #w-terms-and-conditions has its z-index set to 6005).\n  // If this value won't be enough, get current z-index value of T&C Kendo popup during the page rendering,\n  // increase it and set as the z-index value (something like this `window.getComputedStyle(document.querySelector('.k-window')).zIndex`).\n  zIndex: 6050,\n});\n\nexport const Inner = styled('div')(({ theme }) => ({\n  display: 'flex',\n  flexDirection: 'column',\n  gap: theme.spacing(3),\n}));\n","import { Button, Typography } from '@ori-ui/mui';\nimport useTestId from '@ori/testid-generator';\nimport { useCallback, type FC } from 'react';\n\nimport { useTranslations } from '../../hooks';\nimport type { GetGeolocationData } from '../../utils';\nimport { setHideGeolocationUntilDate } from '../../utils/localStorageUtils';\nimport { DIALOG, FOREIGN_COUNTRY_BUTTON, HOME_COUNTRY_BUTTON } from './constants';\nimport { Content, Dialog, Inner } from './styles';\n\ninterface GeolocationDialogProps extends Pick<GetGeolocationData, 'foreignCountry' | 'homeCountry' | 'homeCountryUrl'> {\n  /** If true dialog will be visible. */\n  open: boolean;\n  /** Function to close dialog. */\n  onClose: () => void;\n}\n\n/**\n * Dialog that includes information for user that he is accessing foreign country tenant.\n */\nexport const GeolocationDialog: FC<GeolocationDialogProps> = ({\n  foreignCountry,\n  homeCountry,\n  homeCountryUrl,\n  open,\n  onClose,\n}) => {\n  const { translations, formatMessage } = useTranslations();\n  const { getTestId } = useTestId();\n\n  const onCloseAndHideUntilDate = useCallback(() => {\n    onClose();\n    setHideGeolocationUntilDate();\n  }, [onClose]);\n\n  return (\n    <Dialog\n      data-testid={getTestId(DIALOG)}\n      open={open}\n      onClose={onCloseAndHideUntilDate}\n    >\n      <Content>\n        <Inner>\n          <Typography\n            variant=\"h4\"\n            component=\"h4\"\n          >\n            {formatMessage('dialogTitle', { foreignCountry, homeCountry })}\n          </Typography>\n          <Typography>{translations.dialogMessage}</Typography>\n        </Inner>\n        <Inner>\n          <Button\n            data-testid={getTestId(HOME_COUNTRY_BUTTON)}\n            variant=\"contained\"\n            color=\"primary\"\n            href={homeCountryUrl}\n            onClick={onClose}\n          >\n            {formatMessage('homeCountryButton', { homeCountry })}\n          </Button>\n          <Button\n            data-testid={getTestId(FOREIGN_COUNTRY_BUTTON)}\n            variant=\"contained\"\n            color=\"secondary\"\n            onClick={onCloseAndHideUntilDate}\n          >\n            {formatMessage('foreignCountryButton', { foreignCountry })}\n          </Button>\n        </Inner>\n      </Content>\n    </Dialog>\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 { 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<DefaultTranslations> = () =>\n  useTranslationsFromNamespace<DefaultTranslations>();\n","export const HOME_COUNTRY_BUTTON = 'home-country-button';\nexport const FOREIGN_COUNTRY_BUTTON = 'foreign-country-button';\nexport const DIALOG = 'dialog';\n","import { useToken } from '@ori/auth';\nimport { useServiceUrls } from '@ori/configuration-manager';\nimport { useEnvironment } from '@ori/environment';\nimport { useSWR } from '@ori/fetching';\nimport { TranslationsNamespaceProvider, TranslationsProvider } from '@ori/i18n';\nimport { useDisclose } from '@ori/presentation-hooks';\nimport { Team, TestIdProvider } from '@ori/testid-generator';\nimport type { FC } from 'react';\nimport { useEffect } from 'react';\n\nimport type { DefaultTranslations } from '../../constants';\nimport { defaultTranslations, translationsNamespace } from '../../constants';\nimport { LIBRARY_NAME } from '../../constants-generated';\nimport { getCountryCode, getGeolocationData } from '../../utils';\nimport { GeolocationDialog } from '../GeolocationDialog';\n\nexport interface GeolocationProps {\n  /** When enabled is true other conditions are checked whether geolocation popup can be visible. */\n  enabled: boolean;\n  /** If translations are not provided they are fetched on client. */\n  translations?: DefaultTranslations;\n}\n\n/**\n * Geolocation component that fetches data needed to decide visibility of geolocatin popup. If conditions are met a dialog with information about home and foreign country is displayed.\n */\nexport const Geolocation: FC<GeolocationProps> = ({ enabled, translations }) => {\n  const { staticApiUrl } = useServiceUrls(['staticApi']);\n  const { environment, tenant } = useEnvironment();\n  const { isAnonymousUser } = useToken();\n  const { open, onClose, onOpen } = useDisclose();\n\n  const {\n    data: { foreignCountry, homeCountry, homeCountryUrl, visible } = {\n      foreignCountry: '',\n      homeCountry: '',\n      homeCountryUrl: '',\n      visible: false,\n    },\n  } = useSWR(\n    [enabled, environment, isAnonymousUser, staticApiUrl, tenant],\n    async () => getGeolocationData({ enabled, environment, isAnonymousUser, staticApiUrl, tenant }),\n    {\n      revalidateIfStale: false,\n      revalidateOnFocus: false,\n      revalidateOnReconnect: false,\n    },\n  );\n  useEffect(() => {\n    if (visible) {\n      onOpen();\n    }\n  }, [onOpen, visible]);\n\n  // We need to fetch translations with home country tenant to get correct translations.\n  const countryCode = getCountryCode() ?? 'uk';\n\n  if (!open) {\n    return null;\n  }\n\n  return (\n    <TestIdProvider\n      team={Team.Presentation}\n      project={LIBRARY_NAME}\n    >\n      <TranslationsProvider\n        defaultTranslationsWithNamespaces={{ [translationsNamespace]: defaultTranslations }}\n        // eslint-disable-next-line no-console -- we want to log errors\n        clientFetchConfiguration={{ onError: console.error, tenant: countryCode, baseUrl: staticApiUrl }}\n        language={navigator.language}\n        // istanbul ignore next -- We do not need to test fetching of translations when translations are undefined.\n        translationsWithNamespaces={translations ? { [translationsNamespace]: translations } : undefined}\n      >\n        <TranslationsNamespaceProvider namespace={translationsNamespace}>\n          <GeolocationDialog\n            foreignCountry={foreignCountry}\n            homeCountry={homeCountry}\n            homeCountryUrl={homeCountryUrl}\n            open={open}\n            onClose={onClose}\n          />\n        </TranslationsNamespaceProvider>\n      </TranslationsProvider>\n    </TestIdProvider>\n  );\n};\n","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<Data> {\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`;\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<LoginContext | undefined>(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 { FC, MouseEvent, PropsWithChildren } from 'react';\nimport { useCallback, useEffect, useMemo } from 'react';\n\nimport { SSO_IDENTITY_AD_LOGIN_PATH, SSO_IDENTITY_LOGIN_PATH } from '../../constants';\nimport { Provider } from '../../contexts';\nimport { goToPage } from '../../utils';\n\nexport const LoginProvider: FC<PropsWithChildren> = ({ children }) => {\n  const doLogin = useCallback((event?: MouseEvent) => {\n    // Ctrl or Cmd key is pressed, redirect to AD login\n    if (Boolean(event?.ctrlKey) || event?.metaKey) {\n      goToPage(SSO_IDENTITY_AD_LOGIN_PATH);\n\n      return;\n    }\n\n    goToPage(SSO_IDENTITY_LOGIN_PATH);\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 <Provider value={useMemo(() => ({ doLogin }), [doLogin])}>{children}</Provider>;\n};\n","import { defaultTranslations, translationsNamespace } from './defaultTranslations';\n\n/**\n * Default translations with namespaces\n */\nexport const defaultTranslationsWithNamespaces = {\n  [translationsNamespace]: defaultTranslations,\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 type { SearchProduct } from '../components/SearchPreview/types';\nimport { PACKAGE_NAME } from '../constants-generated';\nimport { getSearchTime } from './getSearchTime';\nimport type { SearchPreviewResult } from './mapSearchPreviewQuery';\n\nexport interface FormatProductParams extends SearchProduct {\n  currencyCode?: string;\n}\nexport interface GetSignalsDataParams {\n  customerId: number;\n  position: number;\n  results: SearchPreviewResult;\n  timestamp: number;\n  query: string;\n  sessionId?: string;\n  type?: string;\n  code?: string;\n}\nexport const analytics = {\n  formatProduct: ({ name, brand, code, image, price, category, currencyCode }: FormatProductParams): ProductData => ({\n    currency: currencyCode,\n    globalBrandName: '',\n    globalCategoryName: '',\n    globalName: '',\n    itemCode: code,\n    localBrandName: brand ?? '',\n    localCategoryName: category ?? '',\n    localName: name,\n    media: image ? [image] : [],\n    price: price?.price,\n  }),\n  getSignalsData: ({\n    customerId,\n    position,\n    results,\n    timestamp,\n    query,\n    sessionId,\n    type = 'click',\n    code,\n  }: GetSignalsDataParams): GlobalProductQuerySignalsDto => ({\n    params: {\n      count: 1,\n      docId: code ?? results.products[position]?.code,\n      filterQueries: ['products'],\n      position: position + 1,\n      query,\n      searchTime: getSearchTime(timestamp),\n      source: PACKAGE_NAME,\n      totalHits: results.numberOfProducts,\n      userId: customerId.toString(),\n      sessionId,\n    },\n    timeStamp: new Date(),\n    type,\n  }),\n};\n","/* istanbul ignore file -- api call */\nimport { useToken } from '@ori/auth';\nimport { useEnvironment } from '@ori/environment';\nimport { TENANT_CONTEXT } from '@ori/fetching';\nimport { createApplicationsNavigationSignal, useApiClient } from '@ori/global-api-client-react';\nimport { useLanguage } from '@ori/i18n';\nimport { useCallback } from 'react';\n\nimport { ACCEPT_LANGUAGE } from '../../../constants';\nimport { useAppConfig } from '../../../context';\nimport { useSearchInput } from '../../../context/navigation';\nimport { analytics } from '../../../utils';\n\ninterface UseSendNavigationSignalParams {\n  query: string;\n  type?: string;\n}\nexport const useSendNavigationSignal = ({ query, type }: UseSendNavigationSignalParams) => {\n  const { customerId } = useToken();\n  const { results, timestamp } = useSearchInput();\n  const globalApiClient = useApiClient();\n  const { tenant } = useEnvironment();\n  const { language } = useLanguage();\n  const { sessionId } = useAppConfig();\n\n  const sendNavigationSignal = useCallback(\n    async (position: number, code?: string) => {\n      if (!results) {\n        return;\n      }\n      const analyticsData = analytics.getSignalsData({\n        customerId,\n        position,\n        results,\n        timestamp,\n        query,\n        sessionId,\n        code,\n        type,\n      });\n\n      await createApplicationsNavigationSignal(globalApiClient, analyticsData, {\n        [ACCEPT_LANGUAGE]: language,\n        [TENANT_CONTEXT]: tenant,\n      });\n    },\n    [results, customerId, timestamp, query, sessionId, type, globalApiClient, language, tenant],\n  );\n\n  return { sendNavigationSignal };\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<CookieStoreInfo>({\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","/* 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 `npx run codegen` to regenerate.\n  */\n\n\nexport type Maybe<T> = T | null;\nexport type InputMaybe<T> = Maybe<T>;\nexport type Exact<T extends { [key: string]: unknown }> = { [K in keyof T]: T[K] };\nexport type MakeOptional<T, K extends keyof T> = Omit<T, K> & { [SubKey in K]?: Maybe<T[SubKey]> };\nexport type MakeMaybe<T, K extends keyof T> = Omit<T, K> & { [SubKey in K]: Maybe<T[SubKey]> };\nexport type MakeEmpty<T extends { [key: string]: unknown }, K extends keyof T> = { [_ in K]?: never };\nexport type Incremental<T> = 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  /** The `Date` scalar represents an ISO-8601 compliant date type. */\n  Date: { input: string; output: string; }\n  /** The `DateTime` scalar represents an ISO-8601 compliant date time type. */\n  DateTime: { input: string; output: string; }\n  /** The built-in `Decimal` scalar type. */\n  Decimal: { input: unknown; output: unknown; }\n  JSON: { input: Record<string, any>; output: Record<string, any>; }\n  /** The `Long` scalar type represents non-fractional signed whole 64-bit numeric values. Long can represent values between -(2^63) and 2^63 - 1. */\n  Long: { input: unknown; output: unknown; }\n  Void: { input: void; output: void; }\n};\n\n/** addThis configuration */\nexport type AddThis = {\n  readonly __typename?: 'AddThis';\n  /** profile id */\n  readonly id?: Maybe<Scalars['String']['output']>;\n  /** services list */\n  readonly services?: Maybe<ReadonlyArray<Maybe<AddThisService>>>;\n  /** shared url */\n  readonly sharedUrl?: Maybe<Scalars['String']['output']>;\n};\n\n/** add this service */\nexport type AddThisService = {\n  readonly __typename?: 'AddThisService';\n  /** service css class */\n  readonly cssClassName?: Maybe<Scalars['String']['output']>;\n  /** service js class */\n  readonly jsClassName?: Maybe<Scalars['String']['output']>;\n  /** service name */\n  readonly name?: Maybe<Scalars['String']['output']>;\n};\n\nexport type Address = {\n  readonly __typename?: 'Address';\n  /** Address id */\n  readonly addressId: Scalars['ID']['output'];\n  /** Address type */\n  readonly addressType?: Maybe<AddressType>;\n  /** Area */\n  readonly area?: Maybe<Scalars['String']['output']>;\n  /** City */\n  readonly city?: Maybe<Scalars['String']['output']>;\n  /** Coordinates */\n  readonly coordinates?: Maybe<Coordinates>;\n  /** Country */\n  readonly country?: Maybe<Scalars['String']['output']>;\n  /** Delivery */\n  readonly delivery?: Maybe<Scalars['String']['output']>;\n  /** Delivery2 */\n  readonly delivery2?: Maybe<Scalars['String']['output']>;\n  /** Delivery3 */\n  readonly delivery3?: Maybe<Scalars['String']['output']>;\n  /** District */\n  readonly district?: Maybe<Scalars['String']['output']>;\n  /** Is address primary */\n  readonly isPrimary?: Maybe<Scalars['Boolean']['output']>;\n  /** Locality */\n  readonly locality?: Maybe<Scalars['String']['output']>;\n  /** Province */\n  readonly province?: Maybe<Scalars['String']['output']>;\n  /** Region */\n  readonly region?: Maybe<Scalars['String']['output']>;\n  /** Street address */\n  readonly streetAddress?: Maybe<Scalars['String']['output']>;\n  /** Zip code */\n  readonly zipcode?: Maybe<Scalars['String']['output']>;\n};\n\nexport type AddressMetadata = {\n  readonly __typename?: 'AddressMetadata';\n  /** Address type */\n  readonly addressType?: Maybe<AddressMetadataType>;\n  /** Area */\n  readonly area?: Maybe<AddressMetadataItem>;\n  /** City */\n  readonly city?: Maybe<AddressMetadataItem>;\n  /** Country */\n  readonly country?: Maybe<CountryMetadataItem>;\n  /** Delivery */\n  readonly delivery?: Maybe<AddressMetadataDelivery>;\n  /** Delivery2 */\n  readonly delivery2?: Maybe<AddressMetadataDelivery>;\n  /** Delivery3 */\n  readonly delivery3?: Maybe<AddressMetadataDelivery>;\n  /** District */\n  readonly district?: Maybe<AddressMetadataItem>;\n  /** Is primary */\n  readonly isPrimary?: Maybe<IsPrimaryMetadataItem>;\n  /** KYC operations */\n  readonly kycOperations?: Maybe<MetadataOperations>;\n  /** Locality */\n  readonly locality?: Maybe<AddressMetadataItem>;\n  /** Operations */\n  readonly operations?: Maybe<AddressMetadataOperations>;\n  /** Province */\n  readonly province?: Maybe<AddressMetadataItem>;\n  /** Region */\n  readonly region?: Maybe<AddressMetadataItem>;\n  /** Search option */\n  readonly searchOptions?: Maybe<AddressMetadataSearchOptions>;\n  /** Street address */\n  readonly streetAddress?: Maybe<AddressMetadataItem>;\n  /** Subscription operations */\n  readonly subscriptionOperations?: Maybe<MetadataOperations>;\n  /** Zip code */\n  readonly zipcode?: Maybe<AddressMetadataItem>;\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\nexport type AddressMetadataDelivery = {\n  readonly __typename?: 'AddressMetadataDelivery';\n  /** Available options */\n  readonly availableOptions?: Maybe<ReadonlyArray<Maybe<Scalars['String']['output']>>>;\n  /** Order of property in which should be preferably displayed (e.g. field on edit form) */\n  readonly displayOrder?: Maybe<Scalars['Int']['output']>;\n  /** Is delivery available */\n  readonly isAvailable?: Maybe<Scalars['Boolean']['output']>;\n  /** Is delivery editable */\n  readonly isEditable?: Maybe<Scalars['Boolean']['output']>;\n  /** Delivery validation */\n  readonly validation?: Maybe<AddressMetadataDeliveryValidation>;\n};\n\nexport type AddressMetadataDeliveryValidation = {\n  readonly __typename?: 'AddressMetadataDeliveryValidation';\n  /** Is delivery mandatory */\n  readonly isMandatory?: Maybe<Scalars['Boolean']['output']>;\n  /** Delivery maximal length */\n  readonly maxLength?: Maybe<Scalars['Int']['output']>;\n  /** Delivery minimal length */\n  readonly minLength?: Maybe<Scalars['Int']['output']>;\n  /** Regular expression */\n  readonly regularExpression?: Maybe<Scalars['String']['output']>;\n};\n\nexport type AddressMetadataItem = {\n  readonly __typename?: 'AddressMetadataItem';\n  /** Order of property in which should be preferably displayed (e.g. field on edit form) */\n  readonly displayOrder?: Maybe<Scalars['Int']['output']>;\n  /** Is item available */\n  readonly isAvailable?: Maybe<Scalars['Boolean']['output']>;\n  /** Is item editable */\n  readonly isEditable?: Maybe<Scalars['Boolean']['output']>;\n  /** Item validation */\n  readonly validation?: Maybe<AddressMetadataValidation>;\n};\n\nexport type AddressMetadataOperation = {\n  readonly __typename?: 'AddressMetadataOperation';\n  /** Is operation enabled */\n  readonly isEnabled?: Maybe<Scalars['Boolean']['output']>;\n  /** List of reasons */\n  readonly reasons?: Maybe<ReadonlyArray<Maybe<AddressMetadataOperationReason>>>;\n};\n\nexport type AddressMetadataOperationReason = {\n  readonly __typename?: 'AddressMetadataOperationReason';\n  /** Code */\n  readonly code?: Maybe<Scalars['String']['output']>;\n  /** Message */\n  readonly message?: Maybe<Scalars['String']['output']>;\n};\n\nexport type AddressMetadataOperations = {\n  readonly __typename?: 'AddressMetadataOperations';\n  /** Create */\n  readonly create?: Maybe<AddressMetadataOperation>;\n  /** Delete */\n  readonly delete?: Maybe<AddressMetadataOperation>;\n  /** Delete primary */\n  readonly deletePrimary?: Maybe<AddressMetadataOperation>;\n  /** Read */\n  readonly read?: Maybe<AddressMetadataOperation>;\n  /** Update */\n  readonly update?: Maybe<AddressMetadataOperation>;\n};\n\nexport type AddressMetadataSearchOptions = {\n  readonly __typename?: 'AddressMetadataSearchOptions';\n  /** Allowed search results */\n  readonly allowedSearchResults?: Maybe<ReadonlyArray<AddressMetadataAllowedSearchResults>>;\n  /** Order of property in which should be preferably displayed (e.g. field on edit form) */\n  readonly displayOrder?: Maybe<Scalars['Int']['output']>;\n  /** Is search options enabled */\n  readonly isEnabled?: Maybe<Scalars['Boolean']['output']>;\n  /** Maximum number of results offered during search */\n  readonly maxResults?: Maybe<Scalars['Int']['output']>;\n};\n\nexport type AddressMetadataType = {\n  readonly __typename?: 'AddressMetadataType';\n  /** Available options */\n  readonly availableOptions?: Maybe<ReadonlyArray<Maybe<Scalars['String']['output']>>>;\n  /** Is address type available */\n  readonly isAvailable?: Maybe<Scalars['Boolean']['output']>;\n  /** Is address type editable */\n  readonly isEditable?: Maybe<Scalars['Boolean']['output']>;\n  /** Address type validation */\n  readonly validation?: Maybe<AddressMetadataTypeValidation>;\n};\n\nexport type AddressMetadataTypeValidation = {\n  readonly __typename?: 'AddressMetadataTypeValidation';\n  /** Is field mandatory */\n  readonly isMandatory?: Maybe<Scalars['Boolean']['output']>;\n};\n\nexport type AddressMetadataValidation = {\n  readonly __typename?: 'AddressMetadataValidation';\n  /** Is address match required */\n  readonly isAddressMatchRequired?: Maybe<Scalars['Boolean']['output']>;\n  /** Is field mandatory */\n  readonly isMandatory?: Maybe<Scalars['Boolean']['output']>;\n  /** Field maximal length */\n  readonly maxLength?: Maybe<Scalars['Int']['output']>;\n  /** Field minimal length */\n  readonly minLength?: Maybe<Scalars['Int']['output']>;\n  /** Regular expression */\n  readonly regularExpression?: Maybe<Scalars['String']['output']>;\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 AllowedClaimExchangeProducts {\n  All = 'All',\n  DifferentProductOnly = 'DifferentProductOnly',\n  SameProductOnly = 'SameProductOnly'\n}\n\nexport type AppLink = {\n  readonly __typename?: 'AppLink';\n  /** Deep link */\n  readonly deepLink?: Maybe<Scalars['String']['output']>;\n  /** Link */\n  readonly link?: Maybe<Scalars['String']['output']>;\n};\n\nexport type Application = {\n  readonly __typename?: 'Application';\n  /** Bazaarvoice configuration */\n  readonly bazaarvoiceConfiguration?: Maybe<BazaarvoiceConfiguration>;\n  /** Breadcrumb links for a page URL */\n  readonly breadcrumbLinks?: Maybe<BreadcrumbLinks>;\n  readonly catalogueLandingPage?: Maybe<CatalogueLandingPage>;\n  /** Editorial landing page */\n  readonly editorialLandingPage?: Maybe<EditorialLandingPage>;\n  /** Editorial landing pages */\n  readonly editorialLandingPages?: Maybe<ReadonlyArray<Maybe<EditorialLandingPage>>>;\n  /** Editorial page */\n  readonly editorialPage?: Maybe<EditorialPage>;\n  /** Editorial pages */\n  readonly editorialPages?: Maybe<ReadonlyArray<Maybe<EditorialPage>>>;\n  /** Feedback benefit banners */\n  readonly feedbackBenefitBanners?: Maybe<ReadonlyArray<Maybe<FeedbackBenefitBanner>>>;\n  /** Footer */\n  readonly footer?: Maybe<Footer>;\n  /** Frontpage v3 content */\n  readonly frontpage?: Maybe<Frontpage>;\n  /** Ingredient library */\n  readonly ingredientLibrary?: Maybe<IngredientLibrary>;\n  /** Makeup Try On */\n  readonly makeupTryOnConfiguration?: Maybe<MakeupTryOnConfiguration>;\n  /**\n   * The get navigation async.\n   *\n   *\n   * **Returns:**\n   * The result.\n   */\n  readonly navigation?: Maybe<NavigationCollection>;\n  /**\n   * The get navigation async.\n   *\n   *\n   * **Returns:**\n   * The result.\n   */\n  readonly navigations?: Maybe<ReadonlyArray<Maybe<NavigationCollection>>>;\n  /** Olapic configuration */\n  readonly olapic?: Maybe<OlapicConfiguration>;\n  /** Navigation menu for a single page */\n  readonly pageNavigation?: Maybe<PageNavigation>;\n  /** Navigation menu for multiple pages */\n  readonly pageNavigations?: Maybe<ReadonlyArray<Maybe<PageNavigation>>>;\n  readonly permanentTopBanners?: Maybe<ReadonlyArray<Maybe<PermanentTopBanner>>>;\n  readonly personalEditorialLandingPage?: Maybe<PersonalEditorialLandingPage>;\n  readonly personalEditorialLandingPages?: Maybe<ReadonlyArray<Maybe<PersonalEditorialLandingPage>>>;\n  readonly personalEditorialPage?: Maybe<EditorialPage>;\n  readonly personalEditorialPages?: Maybe<ReadonlyArray<Maybe<EditorialPage>>>;\n  /** Personal product list configuration */\n  readonly personalProductListConfiguration?: Maybe<PersonalProductListConfiguration>;\n  /** Product detail page */\n  readonly productDetailPage?: Maybe<ProductDetailPage>;\n  /** Product listing page */\n  readonly productListingPage?: Maybe<ProductListingPage>;\n  /** Product Search Page */\n  readonly productSearchPage?: Maybe<ProductSearchPage>;\n  /** Preview of product search results */\n  readonly productSearchPreview?: Maybe<ProductSearchPreview>;\n  readonly ratingsAndReviewsConfiguration?: Maybe<RatingsAndReviewsConfiguration>;\n  /** Share and earn page */\n  readonly shareAndEarn?: Maybe<ShareAndEarn>;\n  /** Links meant for user sharing */\n  readonly sharingLinks?: Maybe<SharingLinks>;\n  /** Wellness Club */\n  readonly wellnessClub?: Maybe<WellnessClub>;\n};\n\n\nexport type ApplicationBreadcrumbLinksArgs = {\n  pageUrl?: InputMaybe<Scalars['String']['input']>;\n};\n\n\nexport type ApplicationEditorialLandingPageArgs = {\n  channelType?: EditorialChannelType;\n  landingPageId?: InputMaybe<Scalars['ID']['input']>;\n};\n\n\nexport type ApplicationEditorialLandingPagesArgs = {\n  channelType?: EditorialChannelType;\n  landingPageIds?: InputMaybe<ReadonlyArray<InputMaybe<Scalars['ID']['input']>>>;\n  skip?: Scalars['Int']['input'];\n  top?: Scalars['Int']['input'];\n};\n\n\nexport type ApplicationEditorialPageArgs = {\n  channelType?: EditorialChannelType;\n  pageId?: InputMaybe<Scalars['ID']['input']>;\n};\n\n\nexport type ApplicationEditorialPagesArgs = {\n  channelType?: EditorialChannelType;\n  pageIds?: InputMaybe<ReadonlyArray<InputMaybe<Scalars['ID']['input']>>>;\n};\n\n\nexport type ApplicationFeedbackBenefitBannersArgs = {\n  bannerTypes?: InputMaybe<ReadonlyArray<FeedbackBenefitBannerType>>;\n};\n\n\nexport type ApplicationNavigationArgs = {\n  customerTypeId?: InputMaybe<Scalars['Int']['input']>;\n  navigationType: NavigationType;\n  nodeId?: InputMaybe<Scalars['String']['input']>;\n  visitorSegment?: InputMaybe<VisitorSegment>;\n};\n\n\nexport type ApplicationNavigationsArgs = {\n  customerTypeId?: InputMaybe<Scalars['Int']['input']>;\n  navigationTypes?: InputMaybe<ReadonlyArray<NavigationType>>;\n  nodeId?: InputMaybe<Scalars['String']['input']>;\n  visitorSegment?: InputMaybe<VisitorSegment>;\n};\n\n\nexport type ApplicationOlapicArgs = {\n  categoryId?: InputMaybe<Scalars['String']['input']>;\n  olapicType: OlapicTypeEnum;\n  productCode?: InputMaybe<Scalars['ID']['input']>;\n};\n\n\nexport type ApplicationPageNavigationArgs = {\n  pageId?: InputMaybe<Scalars['String']['input']>;\n};\n\n\nexport type ApplicationPageNavigationsArgs = {\n  pageIds?: InputMaybe<ReadonlyArray<InputMaybe<Scalars['String']['input']>>>;\n};\n\n\nexport type ApplicationPermanentTopBannersArgs = {\n  bannerType: PermanentTopBannerType;\n};\n\n\nexport type ApplicationPersonalEditorialLandingPageArgs = {\n  landingPageId?: InputMaybe<Scalars['ID']['input']>;\n};\n\n\nexport type ApplicationPersonalEditorialLandingPagesArgs = {\n  landingPageIds?: InputMaybe<ReadonlyArray<InputMaybe<Scalars['ID']['input']>>>;\n};\n\n\nexport type ApplicationPersonalEditorialPageArgs = {\n  pageId?: InputMaybe<Scalars['ID']['input']>;\n};\n\n\nexport type ApplicationPersonalEditorialPagesArgs = {\n  pageIds?: InputMaybe<ReadonlyArray<InputMaybe<Scalars['ID']['input']>>>;\n};\n\n\nexport type ApplicationProductDetailPageArgs = {\n  productCode?: InputMaybe<Scalars['ID']['input']>;\n};\n\n\nexport type ApplicationProductListingPageArgs = {\n  pageId?: InputMaybe<Scalars['ID']['input']>;\n  skip?: Scalars['Int']['input'];\n  top?: Scalars['Int']['input'];\n};\n\nexport enum ApplyPolicy {\n  AfterResolver = 'AFTER_RESOLVER',\n  BeforeResolver = 'BEFORE_RESOLVER',\n  Validation = 'VALIDATION'\n}\n\nexport type Approval = {\n  readonly __typename?: 'Approval';\n  /** Blocks the consultant's guarantee and SPO manager from ordering on their behalf */\n  readonly blockGuaranteeOrdering?: Maybe<Scalars['Boolean']['output']>;\n  /** Approval for receiving info emails/SMS */\n  readonly contact?: Maybe<Scalars['Boolean']['output']>;\n  /** Approval for receiving emails/SMS from beauty consultant */\n  readonly marketingConsultant?: Maybe<Scalars['Boolean']['output']>;\n  /** Approval for receiving marketing information from external sources */\n  readonly marketingExternal?: Maybe<Scalars['Boolean']['output']>;\n  /** Approval for receiving marketing information from Oriflame */\n  readonly marketingOriflame?: Maybe<Scalars['Boolean']['output']>;\n  /** Approval for receiving newsletters */\n  readonly newsletters?: Maybe<Scalars['Boolean']['output']>;\n  /** Customer cannot be selected as sponsor by different subjects (upline consultant, self. registration, locator, ...) */\n  readonly optedOutOfSponsorSelect?: Maybe<Scalars['Boolean']['output']>;\n  /** Nova customer approval for share Order history with allocated beauty Consultant */\n  readonly orderHistory?: Maybe<Scalars['Boolean']['output']>;\n  /** Approval for displaying personal data */\n  readonly personalData?: Maybe<Scalars['Boolean']['output']>;\n  /** Approval for publication in Oriflame materials */\n  readonly publication?: Maybe<Scalars['Boolean']['output']>;\n  /** Leader approval for upline Leader to browse leader downline members */\n  readonly uplineLeaderBrowse?: Maybe<Scalars['Boolean']['output']>;\n  /** Leader approval for upline Leader to display leader's data */\n  readonly uplineLeaderData?: Maybe<Scalars['Boolean']['output']>;\n};\n\nexport type Article = {\n  readonly __typename?: 'Article';\n  /** Type of a article */\n  readonly articleType?: Maybe<ArticleType>;\n  /** Title of the category of article */\n  readonly categoryTitle?: Maybe<Scalars['String']['output']>;\n  /** Article's image */\n  readonly image?: Maybe<ArticleImage>;\n  /** Introductory text from article */\n  readonly introText?: Maybe<Scalars['String']['output']>;\n  /** Flag indicating if article contains video */\n  readonly isVideoArticle?: Maybe<Scalars['Boolean']['output']>;\n  /** Link to the article */\n  readonly link?: Maybe<Link>;\n  /** The get products. */\n  readonly products?: Maybe<ReadonlyArray<Maybe<Product>>>;\n  /** Date of article's publication */\n  readonly published?: Maybe<Scalars['DateTime']['output']>;\n  /** Title of the article */\n  readonly title?: Maybe<Scalars['String']['output']>;\n};\n\nexport type ArticleImage = {\n  readonly __typename?: 'ArticleImage';\n  /** Alternative text of an image */\n  readonly alt?: Maybe<Scalars['String']['output']>;\n  /** Image's url */\n  readonly url?: Maybe<Scalars['String']['output']>;\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\nexport type Attribute = {\n  readonly __typename?: 'Attribute';\n  readonly name?: Maybe<Scalars['String']['output']>;\n  readonly value?: Maybe<Scalars['String']['output']>;\n};\n\nexport type BackInStockAvailability = {\n  readonly __typename?: 'BackInStockAvailability';\n  /** Flag indicating that back in stock notification is available */\n  readonly showBackInStockNotification?: Maybe<Scalars['Boolean']['output']>;\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\nexport type BackInStockNotificationSubscriptionInput = {\n  /** Email value for notificationChannel.Email */\n  readonly email?: InputMaybe<Scalars['String']['input']>;\n  /** The product code to watch */\n  readonly itemCode?: InputMaybe<Scalars['String']['input']>;\n  /** Flag indicating the channel for notification */\n  readonly notificationChannel: BackInStockNotificationChannel;\n  /** Telephone value for notificationChannel.Telephone */\n  readonly telephoneNumber?: InputMaybe<Scalars['String']['input']>;\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 type Bank = {\n  readonly __typename?: 'Bank';\n  /** Id of the Bank */\n  readonly bankId?: Maybe<Scalars['Int']['output']>;\n  /** Bank code */\n  readonly code?: Maybe<Scalars['String']['output']>;\n  /** Name of the Bank */\n  readonly name?: Maybe<Scalars['String']['output']>;\n  /** SWIFT/BIC code */\n  readonly swiftBic?: Maybe<Scalars['String']['output']>;\n};\n\nexport type BankAccount = {\n  readonly __typename?: 'BankAccount';\n  /** The Bank */\n  readonly bank?: Maybe<Bank>;\n  /** Bank Account ID */\n  readonly bankAccountId: Scalars['ID']['output'];\n  /** Branch of the Bank */\n  readonly bankBranch?: Maybe<BankBranch>;\n  /** Subbranch of the Bank */\n  readonly bankSubBranch?: Maybe<Scalars['String']['output']>;\n  /** Bank account number */\n  readonly number?: Maybe<Scalars['String']['output']>;\n  /** Bank account owner */\n  readonly owner?: Maybe<Scalars['String']['output']>;\n};\n\nexport enum BankBonusPaymentTransferState {\n  NothingForTransfer = 'NothingForTransfer',\n  Pending = 'Pending',\n  Transferred = 'Transferred',\n  Undefined = 'Undefined'\n}\n\nexport type BankBranch = {\n  readonly __typename?: 'BankBranch';\n  /** Id of the bank branch */\n  readonly bankBranchId?: Maybe<Scalars['Int']['output']>;\n  /** Bank branch code */\n  readonly code?: Maybe<Scalars['String']['output']>;\n  /** Bank branch name */\n  readonly name?: Maybe<Scalars['String']['output']>;\n};\n\nexport type BazaarvoiceConfiguration = {\n  readonly __typename?: 'BazaarvoiceConfiguration';\n  /** Checks if Conversations Platform is enabled */\n  readonly conversationsPlatformEnabled?: Maybe<Scalars['Boolean']['output']>;\n  /** Checks if Dream Catcher is enabled */\n  readonly dreamCatcherEnabled?: Maybe<Scalars['Boolean']['output']>;\n  /** Dream Catcher Product Code */\n  readonly dreamCatcherProductCode?: Maybe<Scalars['String']['output']>;\n  /** Legal notice read-more link */\n  readonly legalNoticeLink?: Maybe<Link>;\n  /** Legal notice text */\n  readonly legalNoticeText?: Maybe<Scalars['String']['output']>;\n  /** Checks if Questions And Answers are enabled */\n  readonly questionsAndAnswersEnabled?: Maybe<Scalars['Boolean']['output']>;\n  /** Checks if Questions And Answers are Enabled For Segments */\n  readonly questionsAndAnswersEnabledForSegments?: Maybe<Scalars['Boolean']['output']>;\n  /** Checks if Ratings And Reviews are enabled */\n  readonly ratingsAndReviewsEnabled?: Maybe<Scalars['Boolean']['output']>;\n  /** Url for Submission Client Script */\n  readonly submissionClientScriptUrl?: Maybe<Scalars['String']['output']>;\n  /** Submission Page Id */\n  readonly submissionPageId?: Maybe<Scalars['String']['output']>;\n  /** Checks if Transaction Tracking is enabled */\n  readonly transactionTrackingEnabled?: Maybe<Scalars['Boolean']['output']>;\n  /** General Url for bazaarvoice */\n  readonly url?: Maybe<Scalars['String']['output']>;\n};\n\nexport type BeautyEdit = {\n  readonly __typename?: 'BeautyEdit';\n  readonly editorialArticles?: Maybe<ReadonlyArray<Maybe<Article>>>;\n  /** Url of the main image of Beauty Edit section */\n  readonly imageUrl?: Maybe<Scalars['String']['output']>;\n  /** Main text of Beauty Edit section. */\n  readonly text?: Maybe<Scalars['String']['output']>;\n};\n\n\nexport type BeautyEditEditorialArticlesArgs = {\n  skip?: InputMaybe<Scalars['Int']['input']>;\n  top?: InputMaybe<Scalars['Int']['input']>;\n};\n\nexport type BeautyVideo = {\n  readonly __typename?: 'BeautyVideo';\n  /** Link to Beauty Edit section */\n  readonly link?: Maybe<Link>;\n  /** Video displayed in the section */\n  readonly video?: Maybe<Video>;\n};\n\nexport type BenefitBanner = {\n  readonly __typename?: 'BenefitBanner';\n  /** Title */\n  readonly messageTitle?: Maybe<Scalars['String']['output']>;\n  /** URL */\n  readonly messageUrl?: Maybe<Scalars['String']['output']>;\n};\n\nexport type BestOffersBanner = {\n  readonly __typename?: 'BestOffersBanner';\n  /** Background color */\n  readonly backgroundColor?: Maybe<Scalars['String']['output']>;\n  /** Font color -eg. red, grey */\n  readonly fontColor?: Maybe<Scalars['String']['output']>;\n  /** Headline of the banner */\n  readonly headline?: Maybe<Scalars['String']['output']>;\n  /** Image url of the banner */\n  readonly imageUrl?: Maybe<Scalars['String']['output']>;\n  /** Link type, attributes and Id */\n  readonly link?: Maybe<Link>;\n  /** Mobile font color -eg. red, grey */\n  readonly mobileFontColor?: Maybe<Scalars['String']['output']>;\n  /** Banner Validity date from */\n  readonly validFrom?: Maybe<Scalars['DateTime']['output']>;\n  /** Banner validity date to */\n  readonly validTo?: Maybe<Scalars['DateTime']['output']>;\n};\n\nexport type BestsellerProducts = {\n  readonly __typename?: 'BestsellerProducts';\n  /** Banner of the iconic products. */\n  readonly banner?: Maybe<ProductsPromotionBanner>;\n  /** Headline of the iconic products. */\n  readonly headline?: Maybe<Scalars['String']['output']>;\n  readonly products?: Maybe<ReadonlyArray<Maybe<Product>>>;\n};\n\nexport type Brand = {\n  readonly __typename?: 'Brand';\n  /** Brand id */\n  readonly brandId: Scalars['ID']['output'];\n  /** Description */\n  readonly description?: Maybe<Scalars['String']['output']>;\n  /** Background Image URL */\n  readonly image?: Maybe<Scalars['String']['output']>;\n  /** Collection of logo images with sizes */\n  readonly logo?: Maybe<ReadonlyArray<Maybe<SizedImage>>>;\n  /** Localized name of the brand */\n  readonly name?: Maybe<Scalars['String']['output']>;\n  /** Original name of the brand used for product/concept indexing */\n  readonly originalName?: Maybe<Scalars['String']['output']>;\n  /** Collection of sub-brands */\n  readonly subBrands?: Maybe<ReadonlyArray<Maybe<Brand>>>;\n  /** Taxonomy id */\n  readonly taxonomyId: Scalars['ID']['output'];\n  /** SEO headline text from product area */\n  readonly title?: Maybe<Scalars['String']['output']>;\n  /** Title image */\n  readonly titleImage?: Maybe<Scalars['String']['output']>;\n  /** Brand Page url */\n  readonly url?: Maybe<Scalars['String']['output']>;\n};\n\nexport type BreadcrumbLinks = {\n  readonly __typename?: 'BreadcrumbLinks';\n  /** Collection of links for the breadcrumb navigation */\n  readonly links?: Maybe<ReadonlyArray<Maybe<Link>>>;\n};\n\n/** The bundle component resolver. */\nexport type BundleComponent = {\n  readonly __typename?: 'BundleComponent';\n  /** The product bundle components . */\n  readonly product?: Maybe<Product>;\n  /** Quantity of a product in a bundle */\n  readonly quantity?: Maybe<Scalars['Int']['output']>;\n};\n\nexport type CampaignBanner = {\n  readonly __typename?: 'CampaignBanner';\n  /** Background color -eg. red, grey */\n  readonly backgroundColor?: Maybe<Scalars['String']['output']>;\n  /** Font color -eg. red, grey */\n  readonly fontColor?: Maybe<Scalars['String']['output']>;\n  /** Headline of the banner */\n  readonly headline?: Maybe<Scalars['String']['output']>;\n  /** Image url of the banner */\n  readonly imageUrl?: Maybe<Scalars['String']['output']>;\n  /** Link type, attributes and Id */\n  readonly link?: Maybe<Link>;\n  /** Mobile font color -eg. red, grey */\n  readonly mobileFontColor?: Maybe<Scalars['String']['output']>;\n  /** Short text of the banner */\n  readonly shortText?: Maybe<Scalars['String']['output']>;\n  /** Tagline of the banner */\n  readonly tagline?: Maybe<Scalars['String']['output']>;\n  /** Banner Validity date from */\n  readonly validFrom?: Maybe<Scalars['DateTime']['output']>;\n  /** Banner validity date to */\n  readonly validTo?: Maybe<Scalars['DateTime']['output']>;\n};\n\nexport enum CanCancelOrderResult {\n  Allowed = 'Allowed',\n  AlreadyCancelled = 'AlreadyCancelled',\n  AlreadyRequested = 'AlreadyRequested',\n  CancellationNotAllowedByOrderFlow = 'CancellationNotAllowedByOrderFlow',\n  CancellationNotAllowedByOrisales = 'CancellationNotAllowedByOrisales',\n  CancellationOfOrdersWithGiftCardsIsDisabled = 'CancellationOfOrdersWithGiftCardsIsDisabled',\n  FinalizedNotSynchronized = 'FinalizedNotSynchronized',\n  Hidden = 'Hidden',\n  InsufficientPermissions = 'InsufficientPermissions',\n  IsFromOrisales = 'IsFromOrisales',\n  IsNotAllowedPeriodOrder = 'IsNotAllowedPeriodOrder',\n  IsNotCurrentPeriodOrder = 'IsNotCurrentPeriodOrder',\n  IsOrderOriginPharmacy = 'IsOrderOriginPharmacy',\n  IsPaidOnline = 'IsPaidOnline',\n  IsPrinted = 'IsPrinted',\n  PendingOnlinePayment = 'PendingOnlinePayment',\n  PeriodClosingMinutesOffset = 'PeriodClosingMinutesOffset',\n  PlaceOrderMinutesOffset = 'PlaceOrderMinutesOffset',\n  RedeemedGiftCard = 'RedeemedGiftCard'\n}\n\nexport type Catalogue = {\n  readonly __typename?: 'Catalogue';\n  /** catalogue code */\n  readonly catalogueCode: Scalars['ID']['output'];\n};\n\n/** Represents the information of a catalogue. */\nexport type CatalogueInfo = {\n  readonly __typename?: 'CatalogueInfo';\n  /** The type of the catalogue. */\n  readonly catalogueType: CatalogueType;\n  /** The image URL of the catalogue. */\n  readonly imageUrl?: Maybe<Scalars['String']['output']>;\n  /** The link associated with the catalogue. */\n  readonly link?: Maybe<Link>;\n  /** The title of the catalogue. */\n  readonly title?: Maybe<Scalars['String']['output']>;\n  /** The valid from date of the catalogue. */\n  readonly validFrom: Scalars['DateTime']['output'];\n  /** The valid to date of the catalogue. */\n  readonly validTo: Scalars['DateTime']['output'];\n};\n\nexport type CatalogueLandingPage = {\n  readonly __typename?: 'CatalogueLandingPage';\n  /** The collection of digital catalogues. */\n  readonly digitalCatalogues?: Maybe<ReadonlyArray<Maybe<CatalogueInfo>>>;\n  /** The collection of other catalogue types. */\n  readonly otherCatalogues?: Maybe<ReadonlyArray<Maybe<CatalogueInfo>>>;\n};\n\nexport type CatalogueOffer = {\n  readonly __typename?: 'CatalogueOffer';\n  /** Benefit Product */\n  readonly benefits?: Maybe<ReadonlyArray<Maybe<CatalogueOffersProductBenefit>>>;\n  /** Quantity of benefit */\n  readonly benefitsQuantity?: Maybe<Scalars['Int']['output']>;\n  /** Concept linked to the offer */\n  readonly concepts?: Maybe<ReadonlyArray<Maybe<CatalogueOffersConcept>>>;\n  /** Benefit concepts */\n  readonly conceptsBenefits?: Maybe<ReadonlyArray<Maybe<CatalogueOffersConceptBenefit>>>;\n  /** Percent of the discount */\n  readonly discountPercent?: Maybe<Scalars['Float']['output']>;\n  /** Quantity of missing products */\n  readonly missingQuantity?: Maybe<Scalars['Int']['output']>;\n  /** Offer id */\n  readonly offerId?: Maybe<Scalars['Int']['output']>;\n  /** Product linked to the offer */\n  readonly products?: Maybe<ReadonlyArray<Maybe<CatalogueOffersProduct>>>;\n  /** Total price */\n  readonly totalPrice?: Maybe<Scalars['Float']['output']>;\n  /** Total price after discount */\n  readonly totalPriceAfterDiscount?: Maybe<Scalars['Float']['output']>;\n  /** Type of the offer */\n  readonly type?: Maybe<CatalogueOfferType>;\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 type CatalogueOffersConcept = {\n  readonly __typename?: 'CatalogueOffersConcept';\n  /** Buisness points */\n  readonly bp?: Maybe<Scalars['Float']['output']>;\n  /** Offer concept */\n  readonly concept?: Maybe<Concept>;\n  /** Price of the concept */\n  readonly price?: Maybe<Scalars['Float']['output']>;\n  /** Quantity of the product */\n  readonly quantity?: Maybe<Scalars['Int']['output']>;\n  /** Shades of the product */\n  readonly shades?: Maybe<ReadonlyArray<Maybe<CatalogueOffersProduct>>>;\n};\n\nexport type CatalogueOffersConceptBenefit = {\n  readonly __typename?: 'CatalogueOffersConceptBenefit';\n  /** Buisness points */\n  readonly bp?: Maybe<Scalars['Float']['output']>;\n  /** Concept */\n  readonly concept?: Maybe<Concept>;\n  /** Price */\n  readonly price?: Maybe<Scalars['Float']['output']>;\n  /** Purchase price */\n  readonly purchasePrice?: Maybe<Scalars['Float']['output']>;\n  /** Quantity of the concept benefit */\n  readonly quantity?: Maybe<Scalars['Int']['output']>;\n  /** Shades of the concept benefit */\n  readonly shades?: Maybe<ReadonlyArray<Maybe<CatalogueOffersProductBenefit>>>;\n};\n\nexport type CatalogueOffersProduct = {\n  readonly __typename?: 'CatalogueOffersProduct';\n  /** Buisness points */\n  readonly bp?: Maybe<Scalars['Float']['output']>;\n  /** Price of the product */\n  readonly price?: Maybe<Scalars['Float']['output']>;\n  /** Offer product */\n  readonly product?: Maybe<Product>;\n  /** Quantity of the product */\n  readonly quantity?: Maybe<Scalars['Int']['output']>;\n};\n\nexport type CatalogueOffersProductBenefit = {\n  readonly __typename?: 'CatalogueOffersProductBenefit';\n  /** Buisness points */\n  readonly bp?: Maybe<Scalars['Float']['output']>;\n  /** Is purchased flag */\n  readonly isPurchased?: Maybe<Scalars['Boolean']['output']>;\n  /** Price */\n  readonly price?: Maybe<Scalars['Float']['output']>;\n  /** The get product. */\n  readonly product?: Maybe<Product>;\n  /** Purchase price of the product benefit */\n  readonly purchasePrice?: Maybe<Scalars['Float']['output']>;\n  /** Quantity of the product benefit */\n  readonly quantity?: Maybe<Scalars['Int']['output']>;\n  /** The get replaced product. */\n  readonly replacedPoduct?: Maybe<Product>;\n};\n\nexport enum CatalogueType {\n  /** DigitalCurrent catalogue type */\n  DigitalCurrent = 'DigitalCurrent',\n  /** DigitalNext catalogue type */\n  DigitalNext = 'DigitalNext',\n  /** LocalCustom catalogue type */\n  LocalCustom = 'LocalCustom',\n  /** Lookbook catalogue type */\n  Lookbook = 'Lookbook',\n  None = 'None'\n}\n\nexport type Category = {\n  readonly __typename?: 'Category';\n  /** Expiration date description used for category */\n  readonly expirationDateDescription?: Maybe<Scalars['String']['output']>;\n  /** Category Id */\n  readonly id: Scalars['ID']['output'];\n  /** Category image */\n  readonly imageUrl?: Maybe<Scalars['String']['output']>;\n  /** Localized category name */\n  readonly name?: Maybe<Scalars['String']['output']>;\n  /** Gets the navigation tags for the category. */\n  readonly navigationTags?: Maybe<ReadonlyArray<Maybe<NavigationTag>>>;\n  /** Original name of the category used for product/concept indexing */\n  readonly originalName?: Maybe<Scalars['String']['output']>;\n  /** Collection of subcategories */\n  readonly subCategories?: Maybe<ReadonlyArray<Maybe<Category>>>;\n  /** Taxonomy ID of the category */\n  readonly taxonomyId: Scalars['ID']['output'];\n};\n\nexport type CategoryBanner = {\n  readonly __typename?: 'CategoryBanner';\n  /** Background color */\n  readonly backgroundColor?: Maybe<Scalars['String']['output']>;\n  /** Font color -eg. red, grey */\n  readonly fontColor?: Maybe<Scalars['String']['output']>;\n  /** Headline of the banner */\n  readonly headline?: Maybe<Scalars['String']['output']>;\n  /** Image url of the banner */\n  readonly imageUrl?: Maybe<Scalars['String']['output']>;\n  /** Link type, attributes and Id */\n  readonly link?: Maybe<Link>;\n  /** Mobile font color -eg. red, grey */\n  readonly mobileFontColor?: Maybe<Scalars['String']['output']>;\n  /** Short text of the banner */\n  readonly shortText?: Maybe<Scalars['String']['output']>;\n  /** Tagline of the banner */\n  readonly tagline?: Maybe<Scalars['String']['output']>;\n  /** Banner Validity date from */\n  readonly validFrom?: Maybe<Scalars['DateTime']['output']>;\n  /** Banner validity date to */\n  readonly validTo?: Maybe<Scalars['DateTime']['output']>;\n};\n\nexport enum ChannelType {\n  Mv7 = 'MV7',\n  Website = 'Website'\n}\n\nexport type ClaimAction = {\n  readonly __typename?: 'ClaimAction';\n  readonly actionId: ClaimActionType;\n  readonly description?: Maybe<Scalars['String']['output']>;\n};\n\nexport enum ClaimActionType {\n  CancelOrder = 'CancelOrder',\n  CancelProduct = 'CancelProduct',\n  ExchangeProduct = 'ExchangeProduct',\n  None = 'None',\n  ResendOrder = 'ResendOrder',\n  ResendProduct = 'ResendProduct',\n  ReturnProduct = 'ReturnProduct'\n}\n\nexport type ClaimActions = {\n  readonly __typename?: 'ClaimActions';\n  readonly collection?: Maybe<ReadonlyArray<Maybe<ClaimAction>>>;\n};\n\nexport type ClaimCategories = {\n  readonly __typename?: 'ClaimCategories';\n  readonly collection?: Maybe<ReadonlyArray<Maybe<ClaimCategory>>>;\n};\n\nexport type ClaimCategory = {\n  readonly __typename?: 'ClaimCategory';\n  /** The claim category actions. */\n  readonly actions?: Maybe<ClaimActions>;\n  readonly categoryId: ClaimCategoryType;\n  /** The claim category causes. */\n  readonly causes?: Maybe<ClaimCategoryCauses>;\n  readonly description?: Maybe<Scalars['String']['output']>;\n  /** The claim category scenarios. */\n  readonly scenarios?: Maybe<ClaimScenarios>;\n  /** The claim sub-categories. */\n  readonly subCategories?: Maybe<ClaimCategories>;\n};\n\n\nexport type ClaimCategoryScenariosArgs = {\n  actionId: ClaimActionType;\n  causeId: ClaimCauseType;\n};\n\nexport type ClaimCategoryCause = {\n  readonly __typename?: 'ClaimCategoryCause';\n  readonly categoryId: ClaimCategoryType;\n  readonly causeId: ClaimCauseType;\n  readonly description?: Maybe<Scalars['String']['output']>;\n  /** The claim causes. */\n  readonly reasons?: Maybe<ClaimReasons>;\n};\n\nexport type ClaimCategoryCauses = {\n  readonly __typename?: 'ClaimCategoryCauses';\n  readonly collection?: Maybe<ReadonlyArray<Maybe<ClaimCategoryCause>>>;\n};\n\nexport enum ClaimCategoryType {\n  DistributionIssue = 'DistributionIssue',\n  Exchange = 'Exchange',\n  InvoiceIssue = 'InvoiceIssue',\n  Missing = 'Missing',\n  ProductJustMissing = 'ProductJustMissing',\n  Return = 'Return',\n  ReturnExchangeMissing = 'ReturnExchangeMissing',\n  Root = 'Root',\n  WrongProductDelivered = 'WrongProductDelivered'\n}\n\nexport enum ClaimCauseType {\n  AdverseReaction = 'AdverseReaction',\n  CancelOrder = 'CancelOrder',\n  DamagedOrDefectedProduct = 'DamagedOrDefectedProduct',\n  ExtraProductReceivedMissingOnTheInvoice = 'ExtraProductReceivedMissingOnTheInvoice',\n  ExtraProductReceivedWrongQuantity = 'ExtraProductReceivedWrongQuantity',\n  InvoiceCampaignProductMissing = 'InvoiceCampaignProductMissing',\n  InvoiceWrongPriceOrFee = 'InvoiceWrongPriceOrFee',\n  MissingProduct = 'MissingProduct',\n  ParcelDamaged = 'ParcelDamaged',\n  ParcelNotDelivered = 'ParcelNotDelivered',\n  ParcelRefused = 'ParcelRefused',\n  RefundReturnCost = 'RefundReturnCost',\n  SupplementaryProduct = 'SupplementaryProduct',\n  UncollectedParcel = 'UncollectedParcel',\n  UnwantedProduct = 'UnwantedProduct',\n  WrongPriceFix = 'WrongPriceFix',\n  WrongProductDelivered = 'WrongProductDelivered'\n}\n\nexport enum ClaimProductItemCategory {\n  AddOns = 'AddOns',\n  Cosmetics = 'Cosmetics',\n  DemoProduct = 'DemoProduct',\n  Fee = 'Fee',\n  Jewellery = 'Jewellery',\n  NonFinancial = 'NonFinancial',\n  None = 'None',\n  Other = 'Other',\n  OtherSample = 'OtherSample',\n  Packaging = 'Packaging',\n  PrintingMaterial = 'PrintingMaterial',\n  RecruitmentGifts = 'RecruitmentGifts',\n  Training = 'Training',\n  Unknown = 'Unknown',\n  Wellness = 'Wellness'\n}\n\nexport type ClaimReason = {\n  readonly __typename?: 'ClaimReason';\n  readonly description?: Maybe<Scalars['String']['output']>;\n  readonly reasonId: ClaimReasonType;\n};\n\nexport enum ClaimReasonType {\n  BatchNumberOrExpiryDateMissingNotReadable = 'BatchNumberOrExpiryDateMissingNotReadable',\n  ColorVariation = 'ColorVariation',\n  ConsistencyColorOrScentIssue = 'ConsistencyColorOrScentIssue',\n  ConsistencyOrTextureVariation = 'ConsistencyOrTextureVariation',\n  ContaminatedByForeignObject = 'ContaminatedByForeignObject',\n  ContentDamagedByLeakageFromAnotherProduct = 'ContentDamagedByLeakageFromAnotherProduct',\n  DamagedByAnotherProduct = 'DamagedByAnotherProduct',\n  DamagedContainerJarTubeBottlePouch = 'DamagedContainerJarTubeBottlePouch',\n  DamagedOrDeformed = 'DamagedOrDeformed',\n  DamagedOrDeformed_22 = 'DamagedOrDeformed_22',\n  DamagedPackagingExternalProductBoxTamperProofPolybagFoil = 'DamagedPackagingExternalProductBoxTamperProofPolybagFoil',\n  DescriptionFoundInCatalogue = 'DescriptionFoundInCatalogue',\n  DescriptionFoundInOtherCommunication = 'DescriptionFoundInOtherCommunication',\n  DescriptionFoundOnline = 'DescriptionFoundOnline',\n  DidntMatchTheProductDescription = 'DidntMatchTheProductDescription',\n  DidntMeetExpectations = 'DidntMeetExpectations',\n  DifferentProductThanStatedOnPackOrLabel = 'DifferentProductThanStatedOnPackOrLabel',\n  ForeignMatter = 'ForeignMatter',\n  Leakage = 'Leakage',\n  Malfunction = 'Malfunction',\n  MechanismProblems = 'MechanismProblems',\n  MissingLabelOrLeaflet = 'MissingLabelOrLeaflet',\n  MissingPart = 'MissingPart',\n  MissingPartsOrUnderfilled = 'MissingPartsOrUnderfilled',\n  NoReasonJustChangedMyMind = 'NoReasonJustChangedMyMind',\n  NotUsedProduct = 'NotUsedProduct',\n  NotUsedProductNoReason = 'NotUsedProductNoReason',\n  NotUsedProductNotMeetExpectations = 'NotUsedProductNotMeetExpectations',\n  NotWorkingAtAll = 'NotWorkingAtAll',\n  PackagingDamagedByLeakageFromAnotherProduct = 'PackagingDamagedByLeakageFromAnotherProduct',\n  PackagingQualityIssue = 'PackagingQualityIssue',\n  ParcelDelayed = 'ParcelDelayed',\n  ParcelIsLost = 'ParcelIsLost',\n  PoorLabelling = 'PoorLabelling',\n  ProductContentQualityIssue = 'ProductContentQualityIssue',\n  ProductIsLeaking = 'ProductIsLeaking',\n  SmellChangedOrUnpleasant = 'SmellChangedOrUnpleasant',\n  TasteChangedOrUnpleasant = 'TasteChangedOrUnpleasant',\n  UsedProduct = 'UsedProduct',\n  UsedProductNoReason = 'UsedProductNoReason',\n  UsedProductNotMeetExpectations = 'UsedProductNotMeetExpectations',\n  WorkingPoorly = 'WorkingPoorly',\n  WrongAddress = 'WrongAddress',\n  WrongProductOrdered = 'WrongProductOrdered',\n  WrongQuantity = 'WrongQuantity'\n}\n\nexport type ClaimReasons = {\n  readonly __typename?: 'ClaimReasons';\n  readonly collection?: Maybe<ReadonlyArray<Maybe<ClaimReason>>>;\n};\n\nexport type ClaimScenario = {\n  readonly __typename?: 'ClaimScenario';\n  readonly allowedExchangeProducts: AllowedClaimExchangeProducts;\n  readonly batchIdProductCategory: ClaimProductItemCategory;\n  readonly description?: Maybe<Scalars['String']['output']>;\n  readonly enabledForProductCategory: ClaimProductItemCategory;\n  readonly isFileUploadAllowed: Scalars['Boolean']['output'];\n  readonly scenarioId: Scalars['Int']['output'];\n};\n\nexport type ClaimScenarios = {\n  readonly __typename?: 'ClaimScenarios';\n  readonly collection?: Maybe<ReadonlyArray<Maybe<ClaimScenario>>>;\n};\n\nexport enum ClaimType {\n  DistributionIssue = 'DistributionIssue',\n  InvoiceIssue = 'InvoiceIssue',\n  ReturnExchangeOrMissingProduct = 'ReturnExchangeOrMissingProduct'\n}\n\n/** Claiming query root */\nexport type Claiming = {\n  readonly __typename?: 'Claiming';\n  /** The claim categories. */\n  readonly claimCategories?: Maybe<ClaimCategories>;\n};\n\n\n/** Claiming query root */\nexport type ClaimingClaimCategoriesArgs = {\n  claimType: ClaimType;\n};\n\n/** Color type */\nexport enum ColorType {\n  Brown = 'Brown',\n  Green = 'Green',\n  White = 'White'\n}\n\nexport type CommissionSheetDocument = {\n  readonly __typename?: 'CommissionSheetDocument';\n  /** Document id */\n  readonly documentId?: Maybe<Scalars['String']['output']>;\n};\n\n/** The concept resolver. */\nexport type Concept = {\n  readonly __typename?: 'Concept';\n  /** About concept */\n  readonly about?: Maybe<Scalars['String']['output']>;\n  /** Localized ingredients text */\n  readonly activeIngredients?: Maybe<Scalars['String']['output']>;\n  /** The get concept availability. */\n  readonly availability?: Maybe<ConceptAvailability>;\n  /** Collection of localized benefits texts */\n  readonly benefits?: Maybe<ReadonlyArray<Maybe<Scalars['String']['output']>>>;\n  /** The get brand. */\n  readonly brand?: Maybe<Brand>;\n  /** The get concept categories. */\n  readonly categories?: Maybe<ReadonlyArray<Maybe<Category>>>;\n  /** Code that identifies the concept and the first product of the concept */\n  readonly conceptCode: Scalars['ID']['output'];\n  /** Localized description of main product (concept) */\n  readonly description?: Maybe<Scalars['String']['output']>;\n  /** Flavour of market concept data */\n  readonly flavour?: Maybe<Scalars['String']['output']>;\n  /** The get formatted price. */\n  readonly formattedPrice?: Maybe<ConceptFormattedPrice>;\n  /** Collection of product codes of the given concept */\n  readonly hashCode?: Maybe<Scalars['Int']['output']>;\n  /** Localized how to use text */\n  readonly howToUse?: Maybe<Scalars['String']['output']>;\n  /** Collection of how to use sections data (Novage+). */\n  readonly howToUseSections?: Maybe<ReadonlyArray<Maybe<ConceptHowToUseSection>>>;\n  /** Image url. Taken from the first (random) product. */\n  readonly imageUrl?: Maybe<Scalars['String']['output']>;\n  /** Localized info text */\n  readonly info?: Maybe<Scalars['String']['output']>;\n  /** Comma separated list of ingredients */\n  readonly ingredients?: Maybe<Scalars['String']['output']>;\n  /** Flag indicating whether the concept is discontinued. True - all the products from the concept are discontinued. False - at least one of the product from the concept is not discontinued */\n  readonly isDiscontinued?: Maybe<Scalars['Boolean']['output']>;\n  /** Flag indicating whether the concept contains more than one product */\n  readonly isMultiProduct?: Maybe<Scalars['Boolean']['output']>;\n  /** Flag indicating whether the concept is a outlet. True - outlet concept. False - concept is not a outlet. */\n  readonly isOutlet?: Maybe<Scalars['Boolean']['output']>;\n  /** Flag indicating whether the concept is a sample. True - sample concept. False - concept is not a sample */\n  readonly isSample?: Maybe<Scalars['Boolean']['output']>;\n  /** The get labels. */\n  readonly labels?: Maybe<ReadonlyArray<Maybe<ProductLabel>>>;\n  /** Localized name of main product (concept) */\n  readonly name?: Maybe<Scalars['String']['output']>;\n  /** Global product name */\n  readonly originalName?: Maybe<Scalars['String']['output']>;\n  /** The get concept permission. */\n  readonly permission?: Maybe<ConceptPermission>;\n  /** The get price. */\n  readonly price?: Maybe<ConceptPrice>;\n  /** The get primary product. */\n  readonly primaryProduct?: Maybe<Product>;\n  readonly productCode?: Maybe<Scalars['String']['output']>;\n  readonly productCodes?: Maybe<ReadonlyArray<Maybe<Scalars['String']['output']>>>;\n  /** @deprecated Use Product Name instead. */\n  readonly productName?: Maybe<Scalars['String']['output']>;\n  /** Localized product story. */\n  readonly productStory?: Maybe<Scalars['String']['output']>;\n  /** The get products. */\n  readonly products?: Maybe<ReadonlyArray<Maybe<Product>>>;\n  /** Average Rating */\n  readonly ratingAverage?: Maybe<Scalars['Float']['output']>;\n  /** Count of Ratings */\n  readonly ratingCount?: Maybe<Scalars['Int']['output']>;\n  /** Count of Ratings with review text */\n  readonly ratingsWithReviewCount?: Maybe<Scalars['Int']['output']>;\n  /** Flag indicating if concept should be shown on site */\n  readonly showOnSite?: Maybe<Scalars['Boolean']['output']>;\n  /** The get sub brand. */\n  readonly subBrand?: Maybe<Brand>;\n  /** Thumbnail image url */\n  readonly thumbnailImageUrl?: Maybe<Scalars['String']['output']>;\n};\n\nexport type ConceptAvailability = {\n  readonly __typename?: 'ConceptAvailability';\n  /** When item is out of stock, and can be backordered */\n  readonly isBackorder?: Maybe<Scalars['Boolean']['output']>;\n  /** Is bundle */\n  readonly isBundle?: Maybe<Scalars['Boolean']['output']>;\n  /** Introduction date of product is close */\n  readonly isComingSoon?: Maybe<Scalars['Boolean']['output']>;\n  /** Check if it is deleted */\n  readonly isDeleted?: Maybe<Scalars['Boolean']['output']>;\n  /** Specified by number of days (sitecore) before disco date */\n  readonly isLastChance?: Maybe<Scalars['Boolean']['output']>;\n  /** Current ATP is lower than 24hr sales history */\n  readonly isLowStock?: Maybe<Scalars['Boolean']['output']>;\n  /** Number of days (sitecore) after intro date */\n  readonly isNew?: Maybe<Scalars['Boolean']['output']>;\n  /** Concept is discontinued */\n  readonly isNoLongerForSale?: Maybe<Scalars['Boolean']['output']>;\n  /** Product cant be sold, price = 0, or is deleted */\n  readonly isNotSoldOnline?: Maybe<Scalars['Boolean']['output']>;\n  /** Is not standard item, catalogue offer for specific period */\n  readonly isOffer?: Maybe<Scalars['Boolean']['output']>;\n  /** Out of stock */\n  readonly isOutOfStock?: Maybe<Scalars['Boolean']['output']>;\n  /** Is sales limited */\n  readonly isSalesLimited?: Maybe<Scalars['Boolean']['output']>;\n  readonly isSoldOut?: Maybe<Scalars['Boolean']['output']>;\n  /** Product is Super Deal */\n  readonly isSuperDeal?: Maybe<Scalars['Boolean']['output']>;\n};\n\nexport type ConceptFormattedPrice = {\n  readonly __typename?: 'ConceptFormattedPrice';\n  /** Timestamp of when price was calculated */\n  readonly dateCalculated?: Maybe<Scalars['DateTime']['output']>;\n  /** Object containing concept's prices */\n  readonly price?: Maybe<FormattedPrice>;\n};\n\nexport type ConceptHowToUseSection = {\n  readonly __typename?: 'ConceptHowToUseSection';\n  /** Bullet List */\n  readonly bulletList?: Maybe<ReadonlyArray<Maybe<Scalars['String']['output']>>>;\n  /** Description */\n  readonly description?: Maybe<Scalars['String']['output']>;\n  /** Icon URL */\n  readonly iconUrl?: Maybe<Scalars['String']['output']>;\n  /** Image URL */\n  readonly imageUrl?: Maybe<Scalars['String']['output']>;\n  /** Title */\n  readonly title?: Maybe<Scalars['String']['output']>;\n};\n\nexport type ConceptPermission = {\n  readonly __typename?: 'ConceptPermission';\n  /** Concept can be displayed on web site or any other mobile application. Product display might not be available if the flag is set to false. */\n  readonly canDisplay?: Maybe<Scalars['Boolean']['output']>;\n};\n\nexport type ConceptPrice = {\n  readonly __typename?: 'ConceptPrice';\n  /** Currency symbol, for example: \"€\", \"$\" */\n  readonly currency?: Maybe<Scalars['String']['output']>;\n  /** Date calculated */\n  readonly dateCalculated?: Maybe<Scalars['DateTime']['output']>;\n  /** Prices */\n  readonly price?: Maybe<Price>;\n};\n\nexport type ConsultantSetting = {\n  readonly __typename?: 'ConsultantSetting';\n  /** Format of setting */\n  readonly format?: Maybe<SettingsFormatType>;\n  /** Content of setting */\n  readonly setting?: Maybe<Scalars['String']['output']>;\n  /** Timestamp */\n  readonly timestamp?: Maybe<Scalars['DateTime']['output']>;\n};\n\nexport type Coordinates = {\n  readonly __typename?: 'Coordinates';\n  /** North–south position of a point on the Earth's surface */\n  readonly latitude?: Maybe<Scalars['Float']['output']>;\n  /** East–west position of a point on the Earth's surface */\n  readonly longitude?: Maybe<Scalars['Float']['output']>;\n};\n\nexport type CountryMetadataItem = {\n  readonly __typename?: 'CountryMetadataItem';\n  /** Available options */\n  readonly availableOptions?: Maybe<ReadonlyArray<Maybe<Scalars['String']['output']>>>;\n  /** Order of property in which should be preferably displayed (e.g. field on edit form) */\n  readonly displayOrder?: Maybe<Scalars['Int']['output']>;\n  /** Is item available */\n  readonly isAvailable?: Maybe<Scalars['Boolean']['output']>;\n  /** Is item editable */\n  readonly isEditable?: Maybe<Scalars['Boolean']['output']>;\n  /** Item validation */\n  readonly validation?: Maybe<AddressMetadataValidation>;\n};\n\nexport enum CurrentOrderStatus {\n  Blocked = 'Blocked',\n  CancelRequested = 'CancelRequested',\n  Canceled = 'Canceled',\n  CreditNote = 'CreditNote',\n  Paid = 'Paid',\n  PaidPartially = 'PaidPartially',\n  Pending = 'Pending',\n  Unknown = 'Unknown',\n  Unpaid = 'Unpaid',\n  Waiting = 'Waiting',\n  WaitingForApproval = 'WaitingForApproval'\n}\n\nexport type Customer = {\n  readonly __typename?: 'Customer';\n  /** The get customer address metadata. */\n  readonly addressMetadata?: Maybe<AddressMetadata>;\n  /** The get customer addresses. */\n  readonly addresses?: Maybe<ReadonlyArray<Maybe<Address>>>;\n  /** Alias */\n  readonly alias?: Maybe<Scalars['String']['output']>;\n  /** The get customer approval. */\n  readonly approval?: Maybe<Approval>;\n  /** The get customer bank accounts. */\n  readonly bankAccounts?: Maybe<ReadonlyArray<Maybe<BankAccount>>>;\n  /** The get customer beauty store. */\n  readonly beautyStore?: Maybe<PersonalBeautyStore>;\n  readonly birthDate?: Maybe<Scalars['Date']['output']>;\n  /** Career title */\n  readonly careerTitle?: Maybe<Scalars['String']['output']>;\n  /** Consultant number */\n  readonly consultantNumber?: Maybe<Scalars['Int']['output']>;\n  /** Customer ID */\n  readonly customerId: Scalars['ID']['output'];\n  /** Customer type */\n  readonly customerType?: Maybe<CustomerType>;\n  /** The get customer direct sponsor. */\n  readonly directSponsor?: Maybe<Sponsor>;\n  /** Display name */\n  readonly displayName?: Maybe<Scalars['String']['output']>;\n  /** The get customer emails. */\n  readonly emails?: Maybe<ReadonlyArray<Maybe<Email>>>;\n  /** The get customer ewallet accounts. */\n  readonly ewalletAccounts?: Maybe<ReadonlyArray<Maybe<EWalletAccount>>>;\n  /** Get financial set. */\n  readonly financialSet?: Maybe<FinancialSet>;\n  /** Customers first name */\n  readonly firstName?: Maybe<Scalars['String']['output']>;\n  /** Gender */\n  readonly gender?: Maybe<Gender>;\n  /** Last name */\n  readonly lastName?: Maybe<Scalars['String']['output']>;\n  /** Get customer manager summit qualification */\n  readonly managerSummitQualification?: Maybe<ManagerSummitQualification>;\n  /** Get customer benefits. */\n  readonly myBenefitsSummary?: Maybe<MyBenefitsSummary>;\n  /** Get customer program plus */\n  readonly myProgramPlus?: Maybe<MyProgramPlus>;\n  /** Passport number */\n  readonly passportNumber?: Maybe<Scalars['String']['output']>;\n  /** The get customer phones. */\n  readonly phones?: Maybe<ReadonlyArray<Maybe<Phone>>>;\n  /** Pin */\n  readonly pin?: Maybe<Scalars['String']['output']>;\n  /** Preferred language */\n  readonly preferredLanguage?: Maybe<Scalars['String']['output']>;\n  /** Product lists */\n  readonly productLists?: Maybe<ReadonlyArray<Maybe<ProductList>>>;\n  /** Get recruitment info. */\n  readonly recruitmentInfo?: Maybe<RecruitmentInfo>;\n  /** The get customer settings. */\n  readonly settings?: Maybe<ConsultantSetting>;\n  /** Get subscription profile. */\n  readonly subscriptionProfile?: Maybe<SubscriptionProfile>;\n  /** The get customer tax classification. */\n  readonly taxClassification?: Maybe<TaxClassification>;\n  /** Tax code */\n  readonly taxCode?: Maybe<Scalars['String']['output']>;\n  /** Tax code 2 */\n  readonly taxCode2?: Maybe<Scalars['String']['output']>;\n  /** Customers title */\n  readonly title?: Maybe<Scalars['String']['output']>;\n  /** Customers unique id */\n  readonly uniqueId?: Maybe<Scalars['String']['output']>;\n  /** Live video shows */\n  readonly videoShows?: Maybe<ReadonlyArray<Maybe<VideoShow>>>;\n  /** The get customer visitor segment. */\n  readonly visitorSegment: VisitorSegment;\n};\n\n\nexport type CustomerMyBenefitsSummaryArgs = {\n  periodId: Scalars['Int']['input'];\n};\n\n\nexport type CustomerProductListsArgs = {\n  productListType: ProductListType;\n};\n\n\nexport type CustomerSettingsArgs = {\n  settingId?: InputMaybe<Scalars['String']['input']>;\n  settingsClient: SettingsClientType;\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\nexport type CustomerType = {\n  readonly __typename?: 'CustomerType';\n  /** Customer category */\n  readonly customerCategory?: Maybe<CustomerCategory>;\n  /** Customer type id */\n  readonly customerTypeId?: Maybe<Scalars['Int']['output']>;\n  /** Descriptions */\n  readonly description?: Maybe<Scalars['String']['output']>;\n  /** Is customer vip */\n  readonly isVipCustomer?: Maybe<Scalars['Boolean']['output']>;\n};\n\nexport type CutOffPeriod = {\n  readonly __typename?: 'CutOffPeriod';\n  readonly endDate: Scalars['Date']['output'];\n  readonly isQualified: Scalars['Boolean']['output'];\n  readonly periodId: Scalars['Int']['output'];\n  readonly startDate: Scalars['Date']['output'];\n};\n\nexport type DeliveryAddress = {\n  readonly __typename?: 'DeliveryAddress';\n  readonly area?: Maybe<Scalars['String']['output']>;\n  readonly city?: Maybe<Scalars['String']['output']>;\n  readonly country?: Maybe<Scalars['String']['output']>;\n  readonly delivery?: Maybe<Scalars['String']['output']>;\n  readonly district?: Maybe<Scalars['String']['output']>;\n  readonly firstName?: Maybe<Scalars['String']['output']>;\n  readonly id: Scalars['ID']['output'];\n  readonly lastName?: Maybe<Scalars['String']['output']>;\n  readonly locality?: Maybe<Scalars['String']['output']>;\n  readonly province?: Maybe<Scalars['String']['output']>;\n  readonly region?: Maybe<Scalars['String']['output']>;\n  readonly streetAddress?: Maybe<Scalars['String']['output']>;\n  readonly zipcode?: Maybe<Scalars['String']['output']>;\n};\n\nexport type DeliveryChannel = {\n  readonly __typename?: 'DeliveryChannel';\n  /** The get delivery channel addresses. */\n  readonly address?: Maybe<SharedAddress>;\n  /** The get delivery channel coordinates. */\n  readonly coordinates?: Maybe<Coordinates>;\n  readonly deliveryChannelId: Scalars['ID']['output'];\n  readonly deliveryMethod: DeliveryMethodType;\n  readonly description?: Maybe<Scalars['String']['output']>;\n  /** Courier logo */\n  readonly imageUrl?: Maybe<Scalars['String']['output']>;\n  /** Cash-on-delivery is allowed */\n  readonly isCodAllowed: Scalars['Boolean']['output'];\n  /** Luxury (branded) delivery channel - special usage for SPOs */\n  readonly isLuxury: Scalars['Boolean']['output'];\n  /** Identification of the channel in Orisales (well known identification) */\n  readonly orisalesId: Scalars['Int']['output'];\n  /** Phone contact to the delivery channel */\n  readonly telephoneNumber?: Maybe<Scalars['String']['output']>;\n  /** Working hours description (e.g. Mo-Fr: 10:00 - 16:00) */\n  readonly workingHours?: Maybe<Scalars['String']['output']>;\n};\n\nexport type DeliveryFee = {\n  readonly __typename?: 'DeliveryFee';\n  /** Formatted Max fee amount */\n  readonly maxFeeText?: Maybe<Scalars['String']['output']>;\n  /** Formatted Min fee amount */\n  readonly minFeeText?: Maybe<Scalars['String']['output']>;\n};\n\nexport enum DeliveryMethodType {\n  DepartmentStore = 'DepartmentStore',\n  Home = 'Home',\n  Lpo = 'Lpo',\n  NearestPostOffice = 'NearestPostOffice',\n  NextOrder = 'NextOrder',\n  ParcelLocker = 'ParcelLocker',\n  PickupPoint = 'PickupPoint',\n  PostOffice = 'PostOffice',\n  Spo = 'Spo'\n}\n\nexport type DeliveryOption = {\n  readonly __typename?: 'DeliveryOption';\n  /** The get delivery address details. */\n  readonly deliveryAddress?: Maybe<DeliveryAddress>;\n  /** Home delivery address */\n  readonly deliveryAddressId?: Maybe<Scalars['Long']['output']>;\n  /** The get delivery channel details. */\n  readonly deliveryChannel?: Maybe<DeliveryChannel>;\n  readonly deliveryChannelId?: Maybe<Scalars['Long']['output']>;\n  /** Owner of the delivery address (brand partner or friend) */\n  readonly deliveryCustomerId?: Maybe<Scalars['Long']['output']>;\n  readonly estimatedDeliveryDate?: Maybe<Scalars['DateTime']['output']>;\n  /** Delivery channel can be selected */\n  readonly isAllowed: Scalars['Boolean']['output'];\n  /** Shipping joker can replace the fee */\n  readonly isShippingJoker: Scalars['Boolean']['output'];\n  /** Shipping fee before joker is applied */\n  readonly originalShippingFee?: Maybe<Scalars['Decimal']['output']>;\n  readonly shippingFee: Scalars['Decimal']['output'];\n};\n\nexport type DeliveryOptions = {\n  readonly __typename?: 'DeliveryOptions';\n  readonly collection?: Maybe<ReadonlyArray<Maybe<DeliveryOption>>>;\n  readonly totalRecords: Scalars['Int']['output'];\n};\n\nexport enum DeliverySearchFilter {\n  AllAddresses = 'AllAddresses',\n  DepartmentStore = 'DepartmentStore',\n  History = 'History',\n  Lpo = 'Lpo',\n  MyAddresses = 'MyAddresses',\n  MyFriends = 'MyFriends',\n  MyHistoryAddresses = 'MyHistoryAddresses',\n  MyHistoryFriends = 'MyHistoryFriends',\n  MySpo = 'MySpo',\n  PickUp = 'PickUp',\n  PostOffice = 'PostOffice',\n  PremiumSpo = 'PremiumSpo',\n  Spo = 'Spo'\n}\n\nexport type DeliverySelectionSummary = {\n  readonly __typename?: 'DeliverySelectionSummary';\n  /** Selected delivery address */\n  readonly addressId?: Maybe<Scalars['Long']['output']>;\n  /** The get selected delivery channel and addresses. */\n  readonly deliveryChannel?: Maybe<DeliveryChannel>;\n  /** Selected delivery channel */\n  readonly deliveryChannelId: Scalars['Long']['output'];\n  /** Customer's delivery note */\n  readonly deliveryComment?: Maybe<Scalars['String']['output']>;\n  readonly estimatedDeliveryDate?: Maybe<Scalars['DateTime']['output']>;\n  /** Delivery channel and address is operable */\n  readonly isAllowed: Scalars['Boolean']['output'];\n  /** Default delivery channel (pre-selected by system) */\n  readonly isDefault: Scalars['Boolean']['output'];\n  /** Delivery channel from the last order */\n  readonly isLastUsed: Scalars['Boolean']['output'];\n  /** Shipping joker can replace the fee */\n  readonly isShippingJoker: Scalars['Boolean']['output'];\n  /** Shipping fee before joker is applied */\n  readonly originalShippingFee?: Maybe<Scalars['Decimal']['output']>;\n  /** Not available products quantity */\n  readonly outOfStockQuantity: Scalars['Int']['output'];\n  readonly shippingFee: Scalars['Decimal']['output'];\n};\n\nexport type DigitalPromotions = {\n  readonly __typename?: 'DigitalPromotions';\n  /** Best offers banners */\n  readonly bestOffersBanners?: Maybe<ReadonlyArray<Maybe<BestOffersBanner>>>;\n  /** Best offers products */\n  readonly bestOffersProducts?: Maybe<ReadonlyArray<Maybe<Product>>>;\n  /** Campaign banners */\n  readonly campaignBanners?: Maybe<ReadonlyArray<Maybe<CampaignBanner>>>;\n  /** Campaign products */\n  readonly campaignProducts?: Maybe<ReadonlyArray<Maybe<Product>>>;\n  /** Category banners */\n  readonly categoryBanners?: Maybe<ReadonlyArray<Maybe<CategoryBanner>>>;\n  /** Category products */\n  readonly categoryProducts?: Maybe<ReadonlyArray<Maybe<Product>>>;\n  readonly channel: ChannelType;\n  /** Hero banners */\n  readonly heroBanners?: Maybe<ReadonlyArray<Maybe<HeroBanner>>>;\n  /** Hero products */\n  readonly heroProducts?: Maybe<ReadonlyArray<Maybe<Product>>>;\n  readonly validityDate?: Maybe<Scalars['DateTime']['output']>;\n  /** Whats new banners */\n  readonly whatsNewBanners?: Maybe<ReadonlyArray<Maybe<WhatsNewBanner>>>;\n  /** WhatsNew products */\n  readonly whatsNewProducts?: Maybe<ReadonlyArray<Maybe<Product>>>;\n};\n\n/** Discount applied to reduce price of the order */\nexport type Discount = {\n  readonly __typename?: 'Discount';\n  /** Applied discount amount */\n  readonly amount: Scalars['Decimal']['output'];\n  /** Applied discount % (10.0 in case 10%) */\n  readonly percent: Scalars['Decimal']['output'];\n  readonly type: DiscountType;\n};\n\nexport enum DiscountType {\n  Direct = 'Direct',\n  Employee = 'Employee',\n  Extra = 'Extra',\n  GiftCard = 'GiftCard',\n  Immediate = 'Immediate',\n  Invitation = 'Invitation',\n  Merchandising = 'Merchandising',\n  PromoCode = 'PromoCode',\n  Staggered = 'Staggered',\n  Voucher = 'Voucher',\n  Welcome = 'Welcome'\n}\n\nexport type Discounts = {\n  readonly __typename?: 'Discounts';\n  readonly collection?: Maybe<ReadonlyArray<Maybe<Discount>>>;\n};\n\nexport type DocumentInfo = {\n  readonly __typename?: 'DocumentInfo';\n  /** Document id */\n  readonly documentId?: Maybe<Scalars['Int']['output']>;\n  /** Document file name */\n  readonly fileName?: Maybe<Scalars['String']['output']>;\n  /** Document file size. */\n  readonly fileSize?: Maybe<Scalars['Int']['output']>;\n};\n\nexport type EWalletAccount = {\n  readonly __typename?: 'EWalletAccount';\n  /** eWallet account name */\n  readonly accountName?: Maybe<Scalars['String']['output']>;\n  /** eWallet account ID */\n  readonly eWalletAccountId: Scalars['ID']['output'];\n  /** eWallet account owner */\n  readonly owner?: Maybe<Scalars['String']['output']>;\n  /** eWallet type */\n  readonly type?: Maybe<EWalletType>;\n};\n\n/** eWallet type */\nexport enum EWalletType {\n  Revolut = 'Revolut'\n}\n\n/** Editorial banner */\nexport type EditorialBanner = {\n  readonly __typename?: 'EditorialBanner';\n  /** Banner Id */\n  readonly id?: Maybe<Scalars['String']['output']>;\n  /** Banner layout */\n  readonly layout: EditorialBannerLayoutEnum;\n  /** Banner modules */\n  readonly modules?: Maybe<ReadonlyArray<Maybe<EditorialBannerModule>>>;\n};\n\n/** Editorial banner color */\nexport type EditorialBannerColor = {\n  readonly __typename?: 'EditorialBannerColor';\n  /** Color type */\n  readonly type: ColorType;\n};\n\n/** Editorial banner content */\nexport type EditorialBannerContent = {\n  readonly __typename?: 'EditorialBannerContent';\n  /** Caption */\n  readonly caption?: Maybe<Scalars['String']['output']>;\n  /** Horizontal content alignment. */\n  readonly horizontalAlignment: HorizontalContentAlignment;\n  /** Make content collapsable and show ReadMore option */\n  readonly showReadMoreOption: Scalars['Boolean']['output'];\n  /** Banner text collection */\n  readonly textCollection?: Maybe<ReadonlyArray<Maybe<EditorialBannerText>>>;\n  /** Banner title */\n  readonly title?: Maybe<Scalars['String']['output']>;\n  /**\n   * Banner title color\n   * @deprecated Use TitleStorybookColor instead\n   */\n  readonly titleColor: EditorialBannerTitleColorEnum;\n  /** Banner title size */\n  readonly titleSize: EditorialBannerTitleSizeEnum;\n  /** Banner title color in storybook format. */\n  readonly titleStorybookColor: StorybookColor;\n  /** Content vertical alignment */\n  readonly verticalAlignment: VerticalContentAlignment;\n};\n\n/** Banner background image */\nexport type EditorialBannerImage = {\n  readonly __typename?: 'EditorialBannerImage';\n  /** Image url */\n  readonly url?: Maybe<Scalars['String']['output']>;\n  /** Image for mobile devices */\n  readonly urlMobile?: Maybe<Scalars['String']['output']>;\n};\n\n/** Editorial banner layout enumeration */\nexport enum EditorialBannerLayoutEnum {\n  /** 50/50 banner */\n  FiftyBanner = 'FiftyBanner',\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 vertical video */\n  VerticalVideo = 'VerticalVideo',\n  /** Banner with video */\n  Video = 'Video'\n}\n\n/** Banner modules */\nexport type EditorialBannerModule = {\n  readonly __typename?: 'EditorialBannerModule';\n  /**\n   * Banner background color\n   * @deprecated Use BackgroundStorybookColor instead\n   */\n  readonly backgroundColor?: Maybe<EditorialBannerColor>;\n  /** Banner background image */\n  readonly backgroundImage?: Maybe<EditorialBannerImage>;\n  /** Banner background color in storybook format */\n  readonly backgroundStorybookColor: StorybookColor;\n  /** Banner background type */\n  readonly backgroundType: BackgroundType;\n  /** Banner background video */\n  readonly backgroundVideo?: Maybe<Video>;\n  /** Banner content */\n  readonly content?: Maybe<EditorialBannerContent>;\n  /** Banner link */\n  readonly link?: Maybe<Link>;\n};\n\n/** Text wrapper */\nexport type EditorialBannerText = {\n  readonly __typename?: 'EditorialBannerText';\n  /** Text content */\n  readonly text?: Maybe<Scalars['String']['output']>;\n  /** Links represented in text by placeholders (\"{0}\", \"{1}\", ...). */\n  readonly textLinks?: Maybe<ReadonlyArray<Maybe<Link>>>;\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\nexport type EditorialBenefit = {\n  readonly __typename?: 'EditorialBenefit';\n  /** Benefit caption / title */\n  readonly caption?: Maybe<Scalars['String']['output']>;\n  /** Content to be displayed */\n  readonly content?: Maybe<ReadonlyArray<Maybe<EditorialBannerText>>>;\n  /** Icon to be displayed */\n  readonly icon: EditorialBenefitIcon;\n};\n\nexport enum EditorialBenefitIcon {\n  BubbleHeart = 'BubbleHeart',\n  Cashback = 'Cashback',\n  Check = 'Check',\n  Conference = 'Conference',\n  DiscountTag = 'DiscountTag',\n  Dollar = 'Dollar',\n  Gift = 'Gift',\n  Send = 'Send',\n  Share = 'Share',\n  Truck = 'Truck',\n  Wallet = 'Wallet',\n  WelcomeKit = 'WelcomeKit'\n}\n\nexport type EditorialBenefits = {\n  readonly __typename?: 'EditorialBenefits';\n  /** Collection of benefit items */\n  readonly benefits?: Maybe<ReadonlyArray<Maybe<EditorialBenefit>>>;\n  /** Content type */\n  readonly editorialContentType: EditorialContentType;\n  /** Sitecore item id */\n  readonly id?: Maybe<Scalars['String']['output']>;\n  /** Benefit title */\n  readonly title?: Maybe<Scalars['String']['output']>;\n};\n\nexport type EditorialCarousel = {\n  readonly __typename?: 'EditorialCarousel';\n  /** Collection of editorial pages shown in carousel */\n  readonly editorials?: Maybe<ReadonlyArray<Maybe<EditorialPage>>>;\n  /** Carousel ID */\n  readonly id: Scalars['ID']['output'];\n  /** Products */\n  readonly product?: Maybe<Product>;\n};\n\n/** Editorial channel type */\nexport enum EditorialChannelType {\n  Mobile = 'Mobile',\n  Web = 'Web'\n}\n\nexport enum EditorialContentType {\n  Banner = 'Banner',\n  Benefits = 'Benefits',\n  EditorialBannerCarousel = 'EditorialBannerCarousel',\n  EditorialCarousel = 'EditorialCarousel',\n  FiftyBanner = 'FiftyBanner',\n  FrequentlyAskedQuestions = 'FrequentlyAskedQuestions',\n  Header = 'Header',\n  LinkList = 'LinkList',\n  MixedPlpContent = 'MixedPlpContent',\n  Olapic = 'Olapic',\n  ProductBoxCarousel = 'ProductBoxCarousel',\n  TestimonialCarousel = 'TestimonialCarousel'\n}\n\nexport type EditorialFaqItem = {\n  readonly __typename?: 'EditorialFaqItem';\n  /** The content of the FAQ item. */\n  readonly content: ReadonlyArray<EditorialBannerText>;\n  /** The title of the FAQ item. */\n  readonly title?: Maybe<Scalars['String']['output']>;\n};\n\nexport type EditorialFiftyBanner = {\n  readonly __typename?: 'EditorialFiftyBanner';\n  /** Image details */\n  readonly backgroundImage?: Maybe<EditorialBannerImage>;\n  /** background color */\n  readonly backgroundType: BackgroundType;\n  /** Video details */\n  readonly backgroundVideo?: Maybe<Video>;\n  /** Content position left/right */\n  readonly contentAlignment: HorizontalContentAlignment;\n  /** Content type */\n  readonly editorialContentType: EditorialContentType;\n  /** Item id */\n  readonly id?: Maybe<Scalars['String']['output']>;\n  /** Button link */\n  readonly link?: Maybe<Link>;\n  /** Collection of Steps */\n  readonly steps?: Maybe<ReadonlyArray<Maybe<EditorialFiftyBannerStep>>>;\n  /** Storybook color */\n  readonly storybookColor: StorybookColor;\n  /** Fifty banner title */\n  readonly title?: Maybe<Scalars['String']['output']>;\n};\n\nexport type EditorialFiftyBannerStep = {\n  readonly __typename?: 'EditorialFiftyBannerStep';\n  /** The caption of banner step. */\n  readonly caption?: Maybe<Scalars['String']['output']>;\n  /** The content of the banner step. */\n  readonly content?: Maybe<ReadonlyArray<Maybe<EditorialBannerText>>>;\n};\n\nexport type EditorialFrequentlyAskedQuestions = {\n  readonly __typename?: 'EditorialFrequentlyAskedQuestions';\n  readonly id?: Maybe<Scalars['String']['output']>;\n  /** Question collection */\n  readonly questions: ReadonlyArray<EditorialFaqItem>;\n  /** FAQ main title */\n  readonly title?: Maybe<Scalars['String']['output']>;\n};\n\n/** Editorial header */\nexport type EditorialHeader = {\n  readonly __typename?: 'EditorialHeader';\n  /** Name of author */\n  readonly authorName?: Maybe<Scalars['String']['output']>;\n  /** Background color */\n  readonly backgroundStorybookColor: StorybookColor;\n  /** Whether the headline is longer than usual */\n  readonly extraLongHeadline?: Maybe<Scalars['Boolean']['output']>;\n  /** Headline */\n  readonly headline?: Maybe<Scalars['String']['output']>;\n  /** Headline text color */\n  readonly headlineStorybookColor: StorybookColor;\n  /** Header Id */\n  readonly id?: Maybe<Scalars['String']['output']>;\n  /** Image url */\n  readonly imageUrl?: Maybe<Scalars['String']['output']>;\n  /** Indicating if sharing is enabled */\n  readonly isSharingEnabled?: Maybe<Scalars['Boolean']['output']>;\n  /** Links */\n  readonly links?: Maybe<ReadonlyArray<Maybe<Link>>>;\n  /** Name of photographer */\n  readonly photographerName?: Maybe<Scalars['String']['output']>;\n  /** Published date */\n  readonly publishedDate?: Maybe<Scalars['DateTime']['output']>;\n  /** Text */\n  readonly text?: Maybe<Scalars['String']['output']>;\n};\n\nexport type EditorialLandingPage = {\n  readonly __typename?: 'EditorialLandingPage';\n  /** Background color */\n  readonly backgroundStorybookColor?: Maybe<StorybookColor>;\n  /** Description */\n  readonly description?: Maybe<Scalars['String']['output']>;\n  /** Editorial collection */\n  readonly editorialItems?: Maybe<ReadonlyArray<Maybe<EditorialPage>>>;\n  /** Headline text color */\n  readonly headlineStorybookColor?: Maybe<StorybookColor>;\n  /** Image Url */\n  readonly imageUrl?: Maybe<Scalars['String']['output']>;\n  /** Page Id */\n  readonly landingPageId: Scalars['ID']['output'];\n  /** Link to the landing page */\n  readonly link?: Maybe<Link>;\n  /** Theme collection */\n  readonly themeItems?: Maybe<ReadonlyArray<Maybe<EditorialLandingPage>>>;\n  /** Theme Tag */\n  readonly themeTag?: Maybe<Scalars['String']['output']>;\n  /** Thumbnail Url */\n  readonly thumbnailUrl?: Maybe<Scalars['String']['output']>;\n  /** Title */\n  readonly title?: Maybe<Scalars['String']['output']>;\n};\n\n\nexport type EditorialLandingPageEditorialItemsArgs = {\n  skip?: Scalars['Int']['input'];\n  top?: Scalars['Int']['input'];\n};\n\nexport type EditorialLinkList = {\n  readonly __typename?: 'EditorialLinkList';\n  readonly id?: Maybe<Scalars['String']['output']>;\n  /** Collection of link items */\n  readonly linkItems: ReadonlyArray<EditorialLinkListItem>;\n  /** Title of the link list */\n  readonly title?: Maybe<Scalars['String']['output']>;\n};\n\nexport type EditorialLinkListItem = {\n  readonly __typename?: 'EditorialLinkListItem';\n  /** Whether the link item is downloadable */\n  readonly downloadable: Scalars['Boolean']['output'];\n  /** Link of the link item */\n  readonly link?: Maybe<Link>;\n  /** Title of the link item */\n  readonly title?: Maybe<Scalars['String']['output']>;\n};\n\n/** Editorial Olapic */\nexport type EditorialOlapic = {\n  readonly __typename?: 'EditorialOlapic';\n  /** Category Id */\n  readonly categoryId?: Maybe<Scalars['String']['output']>;\n  /** Olapic Id */\n  readonly id?: Maybe<Scalars['String']['output']>;\n  /** The get product. */\n  readonly product?: Maybe<Product>;\n  /** Olapic type */\n  readonly type?: Maybe<OlapicTypeEnum>;\n};\n\nexport type EditorialPage = {\n  readonly __typename?: 'EditorialPage';\n  readonly contentItems: ReadonlyArray<EditorialPageContent>;\n  /** Description */\n  readonly description?: Maybe<Scalars['String']['output']>;\n  /** Parent landing page */\n  readonly landingPage?: Maybe<EditorialLandingPage>;\n  /** Link to the editorial page */\n  readonly link: Link;\n  /** Page Id */\n  readonly pageId: Scalars['ID']['output'];\n  /** Theme tag */\n  readonly themeTag?: Maybe<Scalars['String']['output']>;\n  /** Thumbnail URL */\n  readonly thumbnailUrl?: Maybe<Scalars['String']['output']>;\n  /** Title */\n  readonly title?: Maybe<Scalars['String']['output']>;\n};\n\nexport type EditorialPageContent = EditorialBanner | EditorialBenefits | EditorialCarousel | EditorialFiftyBanner | EditorialFrequentlyAskedQuestions | EditorialHeader | EditorialLinkList | EditorialOlapic | EditorialPage | EditorialPlpRows | EditorialProductBoxCarousel | EditorialTestimonialCarousel;\n\n/** Editorial PLP Promo Banner */\nexport type EditorialPlpPromoBanner = {\n  readonly __typename?: 'EditorialPlpPromoBanner';\n  /** Banner content */\n  readonly banner?: Maybe<EditorialBanner>;\n  /** Banner size */\n  readonly size: EditorialPlpPromoBannerSize;\n};\n\n/** Editorial PLP banner size */\nexport enum EditorialPlpPromoBannerSize {\n  Size1 = 'Size1',\n  Size2 = 'Size2'\n}\n\n/** Rows composing product listing page */\nexport type EditorialPlpRows = {\n  readonly __typename?: 'EditorialPlpRows';\n  readonly content: EditorialPlpRowsContent;\n  readonly editorialContentType: EditorialContentType;\n  /** Product listing pade id */\n  readonly id: Scalars['String']['output'];\n};\n\n\n/** Rows composing product listing page */\nexport type EditorialPlpRowsContentArgs = {\n  facetFiltering?: InputMaybe<ReadonlyArray<EditorialPlpRowsFacetFilterInput>>;\n  orderBy?: PlpOrderBy;\n  skip?: Scalars['Int']['input'];\n  top: Scalars['Int']['input'];\n};\n\nexport type EditorialPlpRowsContent = {\n  readonly __typename?: 'EditorialPlpRowsContent';\n  /** Facet definitions */\n  readonly facets: ReadonlyArray<PlpFacet>;\n  /** Definition of available product ordering options */\n  readonly orderByOptions: ReadonlyArray<PlpOrderingDefinition>;\n  /** Page content organized into rows */\n  readonly rows: ReadonlyArray<PlpRow>;\n  /** Total count of banners */\n  readonly totalBannersCount: Scalars['Int']['output'];\n  /** Total count of products */\n  readonly totalProductsCount: Scalars['Int']['output'];\n};\n\nexport type EditorialPlpRowsFacetFilterInput = {\n  readonly keys: ReadonlyArray<Scalars['String']['input']>;\n  readonly name: Scalars['String']['input'];\n};\n\n/** Editorial Product Box Carousel */\nexport type EditorialProductBoxCarousel = {\n  readonly __typename?: 'EditorialProductBoxCarousel';\n  /** Headline */\n  readonly headline?: Maybe<Scalars['String']['output']>;\n  readonly id?: Maybe<Scalars['ID']['output']>;\n  /** Popular product categories */\n  readonly popularProductCategories?: Maybe<ReadonlyArray<Maybe<PopularProductCategory>>>;\n  /** The get products. */\n  readonly products?: Maybe<ReadonlyArray<Maybe<Product>>>;\n};\n\n/** Single testimonial displayed on editorial */\nexport type EditorialTestimonial = {\n  readonly __typename?: 'EditorialTestimonial';\n  /** Testimonial author */\n  readonly author?: Maybe<Scalars['String']['output']>;\n  /** Testimonial image */\n  readonly image?: Maybe<EditorialBannerImage>;\n  /** Show star rating on testimonial */\n  readonly showStarRating: Scalars['Boolean']['output'];\n  /** Testimonial quote lines */\n  readonly textCollection?: Maybe<ReadonlyArray<Maybe<EditorialBannerText>>>;\n  /** Testimonial title */\n  readonly title?: Maybe<Scalars['String']['output']>;\n};\n\n/** Carousel with testimonials to be displayed on editorial */\nexport type EditorialTestimonialCarousel = {\n  readonly __typename?: 'EditorialTestimonialCarousel';\n  /** Testimonials collection */\n  readonly collection: ReadonlyArray<EditorialTestimonial>;\n  /** Carousel Id */\n  readonly id?: Maybe<Scalars['String']['output']>;\n};\n\nexport type Email = {\n  readonly __typename?: 'Email';\n  /** Email address */\n  readonly emailAddress?: Maybe<Scalars['String']['output']>;\n  /** Is address pending */\n  readonly isPending?: Maybe<Scalars['Boolean']['output']>;\n};\n\nexport type ErrorDialogNewsletterSubsciptionConfiguration = {\n  readonly __typename?: 'ErrorDialogNewsletterSubsciptionConfiguration';\n  /** Button */\n  readonly buttonText?: Maybe<Scalars['String']['output']>;\n  /** Headline */\n  readonly headline?: Maybe<Scalars['String']['output']>;\n  /** Text */\n  readonly text?: Maybe<Scalars['String']['output']>;\n};\n\nexport type ExternalCampaign = {\n  readonly __typename?: 'ExternalCampaign';\n  /** Campaign */\n  readonly campaignId?: Maybe<Scalars['String']['output']>;\n  /** Campaign Url */\n  readonly campaignUrl?: Maybe<Scalars['String']['output']>;\n};\n\nexport type FeedbackBenefitBanner = {\n  readonly __typename?: 'FeedbackBenefitBanner';\n  /** Banner message */\n  readonly message?: Maybe<Scalars['String']['output']>;\n  /** Link to read more information on benefit */\n  readonly readMoreLink?: Maybe<Link>;\n  /** Link to register new customer */\n  readonly registerLink?: Maybe<Link>;\n  /** Link to sign in existing customer */\n  readonly signInLink?: Maybe<Link>;\n  /** Banner title */\n  readonly title?: Maybe<Scalars['String']['output']>;\n  /** Welcome message */\n  readonly welcomeMessage?: Maybe<Scalars['String']['output']>;\n};\n\n/** Feedback Benefit Banner type */\nexport enum FeedbackBenefitBannerType {\n  Cashback = 'Cashback',\n  ShareAndEarn = 'ShareAndEarn'\n}\n\nexport type FinancialSet = {\n  readonly __typename?: 'FinancialSet';\n  /**\n   * Decimal places, how to round BVs\n   * 0: round to integer;\n   * &gt; 0: round to n decimal places;\n   * &lt; 0: round to 10, 100, 1000 etc.\n   */\n  readonly bvRounding: Scalars['Int']['output'];\n  /** Currency code (eg. EUR, CZK) */\n  readonly currencyCode?: Maybe<Scalars['String']['output']>;\n  /** Name of the currency (eg. Euro) */\n  readonly currencyName?: Maybe<Scalars['String']['output']>;\n  /** Financial Set ID */\n  readonly financialSetId: Scalars['Int']['output'];\n  /**\n   * Decimal places, how to round price\n   * 0: round to integer;\n   * &gt; 0: round to n decimal places;\n   * &lt; 0: round to 10, 100, 1000 etc.\n   */\n  readonly priceRounding: Scalars['Int']['output'];\n};\n\nexport type Footer = {\n  readonly __typename?: 'Footer';\n  /** Do not show language switcher pop-up */\n  readonly disableLanguageSwitcherPopUp: Scalars['Boolean']['output'];\n  /** Footer Language Configuration */\n  readonly languageConfiguration?: Maybe<LanguageConfiguration>;\n};\n\nexport type FooterNewsletterSubsciptionConfiguration = {\n  readonly __typename?: 'FooterNewsletterSubsciptionConfiguration';\n  /** Enabled */\n  readonly enabled?: Maybe<Scalars['Boolean']['output']>;\n  /** Title */\n  readonly title?: Maybe<Scalars['String']['output']>;\n};\n\nexport type FormattedPrice = {\n  readonly __typename?: 'FormattedPrice';\n  /** Basic cashback amount */\n  readonly basicCashback?: Maybe<Scalars['String']['output']>;\n  /** Consultant price from basic catalogue */\n  readonly basicCatalogueConsultantPrice?: Maybe<Scalars['String']['output']>;\n  /** Price from basic catalogue */\n  readonly basicCataloguePrice?: Maybe<Scalars['String']['output']>;\n  /** Current consultant price */\n  readonly currentConsultantPrice?: Maybe<Scalars['String']['output']>;\n  /** Current price */\n  readonly currentPrice?: Maybe<Scalars['String']['output']>;\n  /** Extra cashback amount */\n  readonly extraCashback?: Maybe<Scalars['String']['output']>;\n  /** Previous minimum price in last 30 days */\n  readonly previousMinOfferPrice?: Maybe<Scalars['String']['output']>;\n  /** Price after immediate discount */\n  readonly priceAfterImmediateDiscount?: Maybe<Scalars['String']['output']>;\n  /** Approximate Share &amp; Earn bonus amount */\n  readonly sharingBonus?: Maybe<Scalars['String']['output']>;\n};\n\nexport type FreeDelivery = {\n  readonly __typename?: 'FreeDelivery';\n  /** Threshold price text. */\n  readonly thresholdPriceText?: Maybe<Scalars['String']['output']>;\n};\n\nexport type FrontPageImage = {\n  readonly __typename?: 'FrontPageImage';\n  /** Image's subtitle */\n  readonly subTitle?: Maybe<Scalars['String']['output']>;\n  /** Image's title */\n  readonly title?: Maybe<Scalars['String']['output']>;\n  /** Image's url */\n  readonly url?: Maybe<Scalars['String']['output']>;\n};\n\nexport type Frontpage = {\n  readonly __typename?: 'Frontpage';\n  /** Beauty Edit section */\n  readonly beautyEdit?: Maybe<BeautyEdit>;\n  /** Beauty by Sweden Video */\n  readonly beautyVideo?: Maybe<BeautyVideo>;\n  /** Benefit banner */\n  readonly benefitBanner?: Maybe<BenefitBanner>;\n  /** Bestseller products section */\n  readonly bestsellerProducts?: Maybe<BestsellerProducts>;\n  /** Navigation by categories */\n  readonly categoryNavigation?: Maybe<ReadonlyArray<Maybe<Link>>>;\n  /** Digital promotions */\n  readonly digitalPromotions?: Maybe<DigitalPromotions>;\n  /** Iconic products section */\n  readonly iconicProducts?: Maybe<IconicProducts>;\n  /** Motivation content */\n  readonly motivationContent?: Maybe<MotivationContent>;\n  /** Notification banner */\n  readonly notificationBanner?: Maybe<NotificationBanner>;\n  /** Product Standards section */\n  readonly productStandards?: Maybe<ProductStandards>;\n  /** Top Brands section */\n  readonly topBrands?: Maybe<TopBrands>;\n  /** VIP Benefits section */\n  readonly vipBenefits?: Maybe<VipBenefits>;\n};\n\n\nexport type FrontpageDigitalPromotionsArgs = {\n  channel: ChannelType;\n  validityDate?: InputMaybe<Scalars['Date']['input']>;\n};\n\n/** Enum gender */\nexport enum Gender {\n  Man = 'Man',\n  Other = 'Other',\n  Woman = 'Woman'\n}\n\nexport type GlobalBonusItemsByLocalPeriod = {\n  readonly __typename?: 'GlobalBonusItemsByLocalPeriod';\n  readonly globalBonusItems?: Maybe<ReadonlyArray<Maybe<MyBenefitsBonusItemV2>>>;\n  readonly localPeriodCode: Scalars['Int']['output'];\n};\n\nexport type HeroBanner = {\n  readonly __typename?: 'HeroBanner';\n  /** Background color */\n  readonly backgroundColor?: Maybe<Scalars['String']['output']>;\n  /** Font color -eg. red, grey */\n  readonly fontColor?: Maybe<Scalars['String']['output']>;\n  /** Headline of the banner */\n  readonly headline?: Maybe<Scalars['String']['output']>;\n  /** Image url of the banner */\n  readonly imageUrl?: Maybe<Scalars['String']['output']>;\n  /** Link type, attributes and Id */\n  readonly link?: Maybe<Link>;\n  /** Mobile font color -eg. red, grey */\n  readonly mobileFontColor?: Maybe<Scalars['String']['output']>;\n  /** Priority */\n  readonly priority?: Maybe<Scalars['Int']['output']>;\n  /** Small Image url of the banner */\n  readonly smallImageUrl?: Maybe<Scalars['String']['output']>;\n  /** Tagline of the banner */\n  readonly tagline?: Maybe<Scalars['String']['output']>;\n  /** Banner Validity date from */\n  readonly validFrom?: Maybe<Scalars['DateTime']['output']>;\n  /** Banner validity date to */\n  readonly validTo?: Maybe<Scalars['DateTime']['output']>;\n  /** Video url */\n  readonly videoUrl?: Maybe<Scalars['String']['output']>;\n};\n\nexport enum HorizontalContentAlignment {\n  Left = 'Left',\n  Right = 'Right',\n  Undefined = 'Undefined'\n}\n\nexport type IconicProducts = {\n  readonly __typename?: 'IconicProducts';\n  /** Banner of the iconic products. */\n  readonly banner?: Maybe<ProductsPromotionBanner>;\n  /** Description of the iconic products. */\n  readonly description?: Maybe<Scalars['String']['output']>;\n  /** Headline of the iconic products. */\n  readonly headline?: Maybe<Scalars['String']['output']>;\n  readonly products?: Maybe<ReadonlyArray<Maybe<Product>>>;\n};\n\n/** The concept resolver. */\nexport type Ingredient = {\n  readonly __typename?: 'Ingredient';\n  /** Summary of benefits */\n  readonly benefitSummary?: Maybe<Scalars['String']['output']>;\n  /** Description */\n  readonly description?: Maybe<Scalars['String']['output']>;\n  /** Did you know label */\n  readonly didYouKnow?: Maybe<Scalars['String']['output']>;\n  /** Url to the image */\n  readonly imageUrl?: Maybe<Scalars['String']['output']>;\n  /** Key benefit 1 */\n  readonly keyBenefit1?: Maybe<Scalars['String']['output']>;\n  /** Key benefit 2 */\n  readonly keyBenefit2?: Maybe<Scalars['String']['output']>;\n  /** Key benefit 3 */\n  readonly keyBenefit3?: Maybe<Scalars['String']['output']>;\n  /** Key benefits */\n  readonly keyBenefits?: Maybe<ReadonlyArray<Maybe<Scalars['String']['output']>>>;\n  /** Latin name */\n  readonly latinName?: Maybe<Scalars['String']['output']>;\n  /** Link to ingredient detail */\n  readonly link?: Maybe<Link>;\n  /** Total number of products available */\n  readonly numberOfProducts: Scalars['Int']['output'];\n  /** Products containing the ingredient */\n  readonly products: ReadonlyArray<Product>;\n  /**\n   * The get related articles for ingredient.\n   *\n   *\n   * **Returns:**\n   * The result.\n   */\n  readonly relatedArticles: ReadonlyArray<Article>;\n  /** Short name */\n  readonly shortName?: Maybe<Scalars['String']['output']>;\n};\n\n\n/** The concept resolver. */\nexport type IngredientProductsArgs = {\n  skip?: Scalars['Int']['input'];\n  top?: Scalars['Int']['input'];\n};\n\n\n/** The concept resolver. */\nexport type IngredientRelatedArticlesArgs = {\n  skip?: Scalars['Int']['input'];\n  top?: Scalars['Int']['input'];\n};\n\nexport type IngredientLibrary = {\n  readonly __typename?: 'IngredientLibrary';\n  /** Ingredient library inspiration */\n  readonly inspiration?: Maybe<IngredientLibraryInspiration>;\n};\n\nexport type IngredientLibraryInspiration = {\n  readonly __typename?: 'IngredientLibraryInspiration';\n  /** Ingredient library inspiration text */\n  readonly inspirationTexts?: Maybe<ReadonlyArray<Maybe<Scalars['String']['output']>>>;\n};\n\nexport type InviteFriendProfile = {\n  readonly __typename?: 'InviteFriendProfile';\n  /** Consultant number */\n  readonly consultantNumber?: Maybe<Scalars['Int']['output']>;\n  /** Consultant contacts */\n  readonly contacts?: Maybe<ReadonlyArray<Maybe<SocialContact>>>;\n  /** Consultant profile description */\n  readonly description?: Maybe<Scalars['String']['output']>;\n  /** Consultant first name */\n  readonly firstName?: Maybe<Scalars['String']['output']>;\n  /** Consultant last name */\n  readonly lastName?: Maybe<Scalars['String']['output']>;\n  /** Consultant prfile photo url */\n  readonly photoUrl?: Maybe<Scalars['String']['output']>;\n};\n\nexport type IsPrimaryMetadataItem = {\n  readonly __typename?: 'IsPrimaryMetadataItem';\n  /** Order of property in which should be preferably displayed (e.g. field on edit form) */\n  readonly displayOrder?: Maybe<Scalars['Int']['output']>;\n  /** Is item available */\n  readonly isAvailable?: Maybe<Scalars['Boolean']['output']>;\n  /** Is item editable */\n  readonly isEditable?: Maybe<Scalars['Boolean']['output']>;\n};\n\nexport type Language = {\n  readonly __typename?: 'Language';\n  /** Language code */\n  readonly code?: Maybe<Scalars['String']['output']>;\n  /** Language name */\n  readonly name?: Maybe<Scalars['String']['output']>;\n  /** Language type */\n  readonly type?: Maybe<LanguageType>;\n};\n\nexport type LanguageConfiguration = {\n  readonly __typename?: 'LanguageConfiguration';\n  /** Country label */\n  readonly countryLabel?: Maybe<Scalars['String']['output']>;\n  /** Current Country */\n  readonly currentCountry?: Maybe<Scalars['String']['output']>;\n  /** Language label */\n  readonly languageLabel?: Maybe<Scalars['String']['output']>;\n  /** Select country label */\n  readonly selectCountryLabel?: Maybe<Scalars['String']['output']>;\n  /** Sekect country URL */\n  readonly selectCountryUrl?: Maybe<Scalars['String']['output']>;\n};\n\n/** Enum language type */\nexport enum LanguageType {\n  Alternative = 'Alternative',\n  Default = 'Default'\n}\n\nexport type Link = {\n  readonly __typename?: 'Link';\n  /** AppLink */\n  readonly appLink?: Maybe<AppLink>;\n  readonly attributes?: Maybe<ReadonlyArray<Maybe<Attribute>>>;\n  readonly data?: Maybe<LinkData>;\n  /** Dynamic url for sharing */\n  readonly dynamicSharingUrl?: Maybe<Scalars['String']['output']>;\n  readonly id?: Maybe<Scalars['String']['output']>;\n  /** Relative url */\n  readonly relativeUrl?: Maybe<Scalars['String']['output']>;\n  /** Link's title */\n  readonly title?: Maybe<Scalars['String']['output']>;\n  readonly type: LinkType;\n};\n\n\nexport type LinkDynamicSharingUrlArgs = {\n  storeName?: InputMaybe<Scalars['ID']['input']>;\n};\n\nexport type LinkData = Brand | Catalogue | Category | EditorialPage | ExternalCampaign | NovageSkincareAdvisor | Product | ProductListingPage;\n\nexport enum LinkType {\n  Brand = 'Brand',\n  Campaign = 'Campaign',\n  Catalogue = 'Catalogue',\n  Category = 'Category',\n  CategoryNavigation = 'CategoryNavigation',\n  Custom = 'Custom',\n  DigitalCatalogueCurrentNavigation = 'DigitalCatalogueCurrentNavigation',\n  EditorialArticle = 'EditorialArticle',\n  EditorialCampaign = 'EditorialCampaign',\n  Frontpage = 'Frontpage',\n  Ingredient = 'Ingredient',\n  InvitationOffer = 'InvitationOffer',\n  Invite = 'Invite',\n  NewProducts = 'NewProducts',\n  NovageSkincareAdvisor = 'NovageSkincareAdvisor',\n  PlPage = 'PlPage',\n  Product = 'Product',\n  RegistrationPage = 'RegistrationPage',\n  SignIn = 'SignIn'\n}\n\nexport type MakeupTryOnConfiguration = {\n  readonly __typename?: 'MakeupTryOnConfiguration';\n  /** product Detail */\n  readonly productDetail?: Maybe<ProductDetailMakeupTryOnConfiguration>;\n};\n\nexport type MakeupTryOnProductRelation = {\n  readonly __typename?: 'MakeupTryOnProductRelation';\n  /** Related Shi Shi Product Id */\n  readonly shiShiProductId?: Maybe<Scalars['String']['output']>;\n};\n\nexport type ManagerSummitQualification = {\n  readonly __typename?: 'ManagerSummitQualification';\n  readonly cutOffPeriods?: Maybe<ReadonlyArray<Maybe<CutOffPeriod>>>;\n  readonly discountRateLevelEvaluation?: Maybe<ReadonlyArray<Maybe<PeriodOrderEvaluationStatus>>>;\n  readonly managerSummitStatus: ManagerSummitStatus;\n  readonly managerSummitVersion: ManagerSummitVersion;\n  readonly qualifiedInPeriods?: Maybe<Scalars['Int']['output']>;\n  readonly qualifiedOfPeriods?: Maybe<Scalars['Int']['output']>;\n  readonly remainingQualificationPeriodsCount?: Maybe<Scalars['Int']['output']>;\n  readonly successfulQualificationPeriodsCount?: Maybe<Scalars['Int']['output']>;\n  readonly targetDiscountRate?: Maybe<Scalars['Decimal']['output']>;\n  readonly youtubeVideoId?: Maybe<Scalars['String']['output']>;\n};\n\nexport enum ManagerSummitStatus {\n  NotAvailable = 'NotAvailable',\n  QualificationInProgress = 'QualificationInProgress',\n  QualifiedBeforeCutOff = 'QualifiedBeforeCutOff',\n  QualifiedIncludingCutOff = 'QualifiedIncludingCutOff'\n}\n\nexport enum ManagerSummitVersion {\n  Manager = 'Manager',\n  NewComer = 'NewComer',\n  NotAvailable = 'NotAvailable'\n}\n\nexport type Manufacturer = {\n  readonly __typename?: 'Manufacturer';\n  /** Manufacturer address */\n  readonly address?: Maybe<ManufacturerAddress>;\n  /** Manufacturer Id */\n  readonly manufacturerId?: Maybe<Scalars['String']['output']>;\n  /** Manufacturer name */\n  readonly name?: Maybe<Scalars['String']['output']>;\n};\n\nexport type ManufacturerAddress = {\n  readonly __typename?: 'ManufacturerAddress';\n  /** Address 1 */\n  readonly address1?: Maybe<Scalars['String']['output']>;\n  /** Address 2 */\n  readonly address2?: Maybe<Scalars['String']['output']>;\n  /** City */\n  readonly city?: Maybe<Scalars['String']['output']>;\n  /** Country code */\n  readonly countryCode?: Maybe<Scalars['String']['output']>;\n  /** Country name */\n  readonly countryName?: Maybe<Scalars['String']['output']>;\n  /** State */\n  readonly state?: Maybe<Scalars['String']['output']>;\n  /** Zip code */\n  readonly zipCode?: Maybe<Scalars['String']['output']>;\n};\n\nexport type MetadataOperations = {\n  readonly __typename?: 'MetadataOperations';\n  /** Create */\n  readonly create?: Maybe<AddressMetadataOperation>;\n  /** Delete */\n  readonly delete?: Maybe<AddressMetadataOperation>;\n  /** Read */\n  readonly read?: Maybe<AddressMetadataOperation>;\n  /** Update */\n  readonly update?: Maybe<AddressMetadataOperation>;\n};\n\nexport type MixedPlpContent = EditorialPlpPromoBanner | Product;\n\nexport type MobileApp = {\n  readonly __typename?: 'MobileApp';\n  /** Description */\n  readonly description?: Maybe<Scalars['String']['output']>;\n  readonly id?: Maybe<Scalars['String']['output']>;\n  /** Urls of additional images */\n  readonly images?: Maybe<ReadonlyArray<Maybe<Scalars['String']['output']>>>;\n  /** Links related to the mobile app */\n  readonly links?: Maybe<MobileAppLinks>;\n  /** Type of the mobile app */\n  readonly mobileAppType?: Maybe<MobileAppTypeData>;\n  /** Subtitle */\n  readonly subtitle?: Maybe<Scalars['String']['output']>;\n  /** Title */\n  readonly title?: Maybe<Scalars['String']['output']>;\n  /** Url of the main image */\n  readonly titleImage?: Maybe<Scalars['String']['output']>;\n};\n\nexport type MobileAppLinks = {\n  readonly __typename?: 'MobileAppLinks';\n  /** Link of the mobile app in Apple Store */\n  readonly appleStoreLink?: Maybe<Scalars['String']['output']>;\n  /** Link of the mobile app in Google Play Store */\n  readonly googlePlayStoreLink?: Maybe<Scalars['String']['output']>;\n};\n\nexport enum MobileAppType {\n  None = 'None',\n  ToSell = 'ToSell',\n  ToShop = 'ToShop'\n}\n\nexport type MobileAppTypeData = {\n  readonly __typename?: 'MobileAppTypeData';\n  /** Title of the type */\n  readonly title?: Maybe<Scalars['String']['output']>;\n  /** Type of the mobile app */\n  readonly type?: Maybe<MobileAppType>;\n};\n\nexport type MobileApps = {\n  readonly __typename?: 'MobileApps';\n  /** Mobile apps */\n  readonly mobileAppCollection?: Maybe<ReadonlyArray<Maybe<MobileApp>>>;\n  /** Header of mobile apps page */\n  readonly pageHeader?: Maybe<MobileAppsPageHeader>;\n};\n\nexport type MobileAppsPageHeader = {\n  readonly __typename?: 'MobileAppsPageHeader';\n  /** Apple Store image */\n  readonly appleStoreImage?: Maybe<Scalars['String']['output']>;\n  /** Google Play image */\n  readonly googlePlayImage?: Maybe<Scalars['String']['output']>;\n  /** Subtitle */\n  readonly subtitle?: Maybe<Scalars['String']['output']>;\n  /** Title */\n  readonly title?: Maybe<Scalars['String']['output']>;\n};\n\nexport type MotivationContent = {\n  readonly __typename?: 'MotivationContent';\n  /** Section's headline */\n  readonly headline?: Maybe<Scalars['String']['output']>;\n  /** Text displayed in the section */\n  readonly text?: Maybe<Scalars['String']['output']>;\n};\n\nexport type Mutation = {\n  readonly __typename?: 'Mutation';\n  readonly backInStockNotificationSubscription?: Maybe<Scalars['Void']['output']>;\n  readonly shareAndEarnPersonalCodeUpdate?: Maybe<MutationResult>;\n};\n\n\nexport type MutationBackInStockNotificationSubscriptionArgs = {\n  input?: InputMaybe<BackInStockNotificationSubscriptionInput>;\n};\n\n\nexport type MutationShareAndEarnPersonalCodeUpdateArgs = {\n  input?: InputMaybe<ShareAndEarnUpdatePersonalCodeInput>;\n};\n\nexport type MutationResult = {\n  readonly __typename?: 'MutationResult';\n  /** Error message */\n  readonly message?: Maybe<Scalars['String']['output']>;\n  /** Indicates whether the mutation was successful or not */\n  readonly success: Scalars['Boolean']['output'];\n};\n\nexport type MyBenefitsBonusItem = {\n  readonly __typename?: 'MyBenefitsBonusItem';\n  readonly amount: Scalars['Decimal']['output'];\n  readonly bonusTypeDescription?: Maybe<Scalars['String']['output']>;\n  readonly paymentChannel: PaymentChannel;\n  readonly paymentDescription?: Maybe<Scalars['String']['output']>;\n};\n\nexport type MyBenefitsBonusItemV2 = {\n  readonly __typename?: 'MyBenefitsBonusItemV2';\n  readonly amount: Scalars['Decimal']['output'];\n  readonly bonusTypeDescription?: Maybe<Scalars['String']['output']>;\n  readonly globalPeriodCode: Scalars['Int']['output'];\n  readonly paymentChannel: PaymentChannel;\n  readonly paymentDescription?: Maybe<Scalars['String']['output']>;\n};\n\nexport type MyBenefitsSummary = {\n  readonly __typename?: 'MyBenefitsSummary';\n  readonly bankTransferAmount: Scalars['Decimal']['output'];\n  readonly bankTransferState: BankBonusPaymentTransferState;\n  readonly bonusItems?: Maybe<ReadonlyArray<Maybe<MyBenefitsBonusItem>>>;\n  readonly bonusesAndCashAwards: Scalars['Decimal']['output'];\n  /** Get customer benefits. */\n  readonly commissionSheet?: Maybe<CommissionSheetDocument>;\n  readonly currencyIsoCode?: Maybe<Scalars['String']['output']>;\n  /** @deprecated Use GlobalBonusItemsByLocalPeriod instead */\n  readonly globalBonusItems?: Maybe<ReadonlyArray<Maybe<MyBenefitsBonusItem>>>;\n  readonly globalBonusItemsByLocalPeriod?: Maybe<ReadonlyArray<Maybe<GlobalBonusItemsByLocalPeriod>>>;\n  readonly immediateDiscounts: Scalars['Decimal']['output'];\n  readonly oriflameWallet: Scalars['Decimal']['output'];\n  readonly totalBenefits: Scalars['Decimal']['output'];\n};\n\nexport type MyProgramPlus = {\n  readonly __typename?: 'MyProgramPlus';\n  readonly oneTimeBonusAmount: Scalars['Decimal']['output'];\n  readonly oneTimeBonusEndDate: Scalars['Date']['output'];\n  readonly salesBoosterInfo?: Maybe<ReadonlyArray<Maybe<SalesBoosterQualificationInfo>>>;\n};\n\nexport type Navigation = {\n  readonly __typename?: 'Navigation';\n  /** Collection of subitems */\n  readonly children?: Maybe<ReadonlyArray<Maybe<Navigation>>>;\n  /** Description of the item */\n  readonly description?: Maybe<Scalars['String']['output']>;\n  /** Id of the navigation item */\n  readonly id?: Maybe<Scalars['String']['output']>;\n  /** Image of the item */\n  readonly imageUrl?: Maybe<Scalars['String']['output']>;\n  /** Type of the navigation link */\n  readonly linkType?: Maybe<NavigationLinkType>;\n  /** Specifies nodeId in tree structure */\n  readonly nodeId?: Maybe<Scalars['String']['output']>;\n  /** Title of the navigation item */\n  readonly title?: Maybe<Scalars['String']['output']>;\n  /** Url of the item */\n  readonly url?: Maybe<Scalars['String']['output']>;\n};\n\nexport type NavigationCollection = {\n  readonly __typename?: 'NavigationCollection';\n  /** Collection of Navigation items */\n  readonly children?: Maybe<ReadonlyArray<Maybe<Navigation>>>;\n  /** Navigation type */\n  readonly navigationType?: Maybe<NavigationType>;\n};\n\n/** Possible types of Navigation items */\nexport enum NavigationLinkType {\n  /** All category */\n  AllCategory = 'AllCategory',\n  /** Beauty Tips section */\n  BeautyTips = 'BeautyTips',\n  /** Bestseller products page */\n  Bestsellers = 'Bestsellers',\n  /** Bestseller products in category */\n  BestsellersInCategory = 'BestsellersInCategory',\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  /** Iconic products page */\n  Icons = 'Icons',\n  /** Iconic products in category */\n  IconsInCategory = 'IconsInCategory',\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  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\nexport type NavigationTag = {\n  readonly __typename?: 'NavigationTag';\n  /** NavigationTag title */\n  readonly title?: Maybe<Scalars['String']['output']>;\n  /** NavigationTag url */\n  readonly url?: Maybe<Scalars['String']['output']>;\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 type NewsletterSubsciptionConfiguration = {\n  readonly __typename?: 'NewsletterSubsciptionConfiguration';\n  /** Error Dialog */\n  readonly errorDialog?: Maybe<ErrorDialogNewsletterSubsciptionConfiguration>;\n  /** Footer */\n  readonly footer?: Maybe<FooterNewsletterSubsciptionConfiguration>;\n  /** Popup */\n  readonly popup?: Maybe<PopupNewsletterSubsciptionConfiguration>;\n  /** Response Messages */\n  readonly responseMessages?: Maybe<ReadonlyArray<Maybe<ResponseMessageNewsletterSubsciptionConfiguration>>>;\n  /** Submit Dialog */\n  readonly submitDialog?: Maybe<SubmitDialogNewsletterSubsciptionConfiguration>;\n  /** Subscribed Dialog */\n  readonly subscribedDialog?: Maybe<SubscribedDialogNewsletterSubsciptionConfiguration>;\n};\n\nexport type NotificationBanner = {\n  readonly __typename?: 'NotificationBanner';\n  /** Link title */\n  readonly messageLinkTitle?: Maybe<Scalars['String']['output']>;\n  /** Link URL */\n  readonly messageLinkUrl?: Maybe<Scalars['String']['output']>;\n  /** Text */\n  readonly messageText?: Maybe<Scalars['String']['output']>;\n  /** Theme */\n  readonly messageTheme?: Maybe<NotificationBannerThemeType>;\n};\n\nexport enum NotificationBannerThemeType {\n  Black = 'Black',\n  Grey = 'Grey'\n}\n\nexport type NovageSkincareAdvisor = {\n  readonly __typename?: 'NovageSkincareAdvisor';\n  readonly environment?: Maybe<Scalars['String']['output']>;\n  readonly partnerId?: Maybe<Scalars['String']['output']>;\n};\n\nexport type OlapicConfiguration = {\n  readonly __typename?: 'OlapicConfiguration';\n  /** Olapic api key */\n  readonly apiKey?: Maybe<Scalars['String']['output']>;\n  /** The get category. */\n  readonly category?: Maybe<Category>;\n  /** Hide caption toggle */\n  readonly hideCaption?: Maybe<Scalars['Boolean']['output']>;\n  /** olapic id */\n  readonly id?: Maybe<Scalars['String']['output']>;\n  /** Olapic instance */\n  readonly instance?: Maybe<Scalars['String']['output']>;\n  /** Olapic item name */\n  readonly itemName?: Maybe<Scalars['String']['output']>;\n  /** language code */\n  readonly languageCode?: Maybe<Scalars['String']['output']>;\n  /** The get product. */\n  readonly product?: Maybe<Product>;\n  /** Olapic script url */\n  readonly scriptUrl?: Maybe<Scalars['String']['output']>;\n  /** Olapic widget type */\n  readonly type?: Maybe<OlapicTypeEnum>;\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\nexport type OperationPrincipals = {\n  readonly __typename?: 'OperationPrincipals';\n  /** Name of the customer who cancelled the order or 'Customer Service'. Null if the order is not cancelled */\n  readonly cancelledBy?: Maybe<Scalars['String']['output']>;\n  /** Id of the customer who cancelled the order. Null if the order is not cancelled */\n  readonly cancelledById?: Maybe<Scalars['Long']['output']>;\n  /** Name of the customer who placed the order or 'Customer Service' */\n  readonly placedBy?: Maybe<Scalars['String']['output']>;\n  /** Id of the customer who placed the order */\n  readonly placedById: Scalars['Long']['output'];\n};\n\nexport type Order = {\n  readonly __typename?: 'Order';\n  /** Provide availability of order cancel operation. */\n  readonly cancellation?: Maybe<OrderCancel>;\n  readonly currentOrderStatus: CurrentOrderStatus;\n  /** The customer associated with the order. */\n  readonly customer?: Maybe<Customer>;\n  readonly debt: Scalars['Decimal']['output'];\n  /** The delivery channel of the order. */\n  readonly deliveryChannel?: Maybe<DeliveryChannel>;\n  readonly deliveryChannelId: Scalars['Long']['output'];\n  /** The discounts applied to the order. */\n  readonly discounts?: Maybe<Discounts>;\n  /** The documents linked with the order. */\n  readonly documents?: Maybe<OrderDocuments>;\n  readonly dueDateOffset?: Maybe<Scalars['DateTime']['output']>;\n  readonly earnedCashback: Scalars['Decimal']['output'];\n  readonly earnedPoints: Scalars['Decimal']['output'];\n  readonly fee: Scalars['Decimal']['output'];\n  readonly invoiceNumber?: Maybe<Scalars['String']['output']>;\n  /** The order operation principals. */\n  readonly operationPrincipals?: Maybe<OperationPrincipals>;\n  readonly orderDateOffset: Scalars['DateTime']['output'];\n  readonly orderId: Scalars['ID']['output'];\n  /** The items of the order. */\n  readonly orderItems?: Maybe<OrderItems>;\n  readonly orderOrigin: OrderOrigin;\n  readonly paymentProviderId: Scalars['Long']['output'];\n  /** Returns result of evaluation if the order can be paid and number of pending payments. */\n  readonly pendingPaymentsResult?: Maybe<PendingPaymentsResult>;\n  readonly periodId?: Maybe<Scalars['Int']['output']>;\n  /** The real time order tracking. */\n  readonly realTimeOrderTracking?: Maybe<OrderTracking>;\n  readonly redeemedPoints: Scalars['Decimal']['output'];\n  readonly totalAmount: Scalars['Decimal']['output'];\n  readonly totalBp: Scalars['Decimal']['output'];\n};\n\nexport type OrderCancel = {\n  readonly __typename?: 'OrderCancel';\n  readonly isAllowed: Scalars['Boolean']['output'];\n  readonly status: CanCancelOrderResult;\n};\n\nexport type OrderDocument = {\n  readonly __typename?: 'OrderDocument';\n  readonly created: Scalars['DateTime']['output'];\n  readonly documentId?: Maybe<Scalars['String']['output']>;\n  readonly documentType: OrderDocumentType;\n};\n\nexport enum OrderDocumentType {\n  FiscalReceipt = 'FiscalReceipt',\n  InvoicePdf = 'InvoicePdf',\n  InvoiceXml = 'InvoiceXml',\n  ReturnFiscalReceipt = 'ReturnFiscalReceipt'\n}\n\nexport type OrderDocuments = {\n  readonly __typename?: 'OrderDocuments';\n  readonly collection?: Maybe<ReadonlyArray<Maybe<OrderDocument>>>;\n};\n\nexport enum OrderHistoryType {\n  Full = 'Full',\n  Last3Periods = 'Last3Periods'\n}\n\nexport type OrderItem = {\n  readonly __typename?: 'OrderItem';\n  readonly isHidden: Scalars['Boolean']['output'];\n  readonly itemCode?: Maybe<Scalars['String']['output']>;\n  readonly orderItemType: OrderItemType;\n  readonly originalItemCode?: Maybe<Scalars['String']['output']>;\n  readonly price: Scalars['Decimal']['output'];\n  /** The get selected delivery channel and addresses. */\n  readonly product?: Maybe<Product>;\n  readonly quantity: Scalars['Int']['output'];\n  readonly replacementType?: Maybe<ReplacementType>;\n  readonly totalBp: Scalars['Decimal']['output'];\n  readonly totalDiscount: Scalars['Decimal']['output'];\n  readonly totalPrice: Scalars['Decimal']['output'];\n};\n\nexport enum OrderItemType {\n  BackOrder = 'BackOrder',\n  Bundle = 'Bundle',\n  Donation = 'Donation',\n  EndConsumerOrder = 'EndConsumerOrder',\n  ExtraChange = 'ExtraChange',\n  ExtraSold = 'ExtraSold',\n  ExtraTax = 'ExtraTax',\n  Fee = 'Fee',\n  FreeSample = 'FreeSample',\n  FreeShippingJoker = 'FreeShippingJoker',\n  MerchandisingChange = 'MerchandisingChange',\n  MerchandisingChangedGift = 'MerchandisingChangedGift',\n  MerchandisingDiscount = 'MerchandisingDiscount',\n  MerchandisingGift = 'MerchandisingGift',\n  NextOrderDelivery = 'NextOrderDelivery',\n  Offer = 'Offer',\n  PaymentFee = 'PaymentFee',\n  PersonalNutrition = 'PersonalNutrition',\n  PersonalSubscription = 'PersonalSubscription',\n  Product = 'Product',\n  RegistrationFee = 'RegistrationFee',\n  RenewalFee = 'RenewalFee',\n  Replacement = 'Replacement',\n  Reservation = 'Reservation',\n  Section1 = 'Section1',\n  Section2 = 'Section2',\n  Section3 = 'Section3',\n  Section4 = 'Section4',\n  Service = 'Service',\n  StarterKit = 'StarterKit',\n  Subscription = 'Subscription',\n  Target = 'Target',\n  Unknown = 'Unknown',\n  Voucher = 'Voucher'\n}\n\nexport type OrderItems = {\n  readonly __typename?: 'OrderItems';\n  readonly collection?: Maybe<ReadonlyArray<Maybe<OrderItem>>>;\n};\n\nexport enum OrderOrigin {\n  Automatic = 'Automatic',\n  Bambuser = 'Bambuser',\n  Claim = 'Claim',\n  Demo = 'Demo',\n  Email = 'Email',\n  Immediate = 'Immediate',\n  NowApp = 'NowApp',\n  OnBehalf = 'OnBehalf',\n  Online = 'Online',\n  Orisales = 'Orisales',\n  Other = 'Other',\n  Pbs = 'Pbs',\n  Pharmacy = 'Pharmacy',\n  Registration = 'Registration',\n  Telephone = 'Telephone',\n  Vip = 'Vip',\n  WeChat = 'WeChat',\n  WeChatApp = 'WeChatApp'\n}\n\nexport enum OrderStatus {\n  All = 'All',\n  Blocked = 'Blocked',\n  CancelRequested = 'CancelRequested',\n  Canceled = 'Canceled',\n  CreditNote = 'CreditNote',\n  Paid = 'Paid',\n  Pending = 'Pending',\n  Unpaid = 'Unpaid',\n  Waiting = 'Waiting',\n  WaitingForApproval = 'WaitingForApproval'\n}\n\nexport type OrderTracking = {\n  readonly __typename?: 'OrderTracking';\n  readonly currentStatus?: Maybe<TrackingStatus>;\n  readonly isCourierApiEnabled: Scalars['Boolean']['output'];\n  readonly isRealTimeOrderTrackingEnabled: Scalars['Boolean']['output'];\n  readonly step1?: Maybe<OrderTrackingStep>;\n  readonly step2?: Maybe<OrderTrackingStep>;\n  readonly step3?: Maybe<OrderTrackingStep>;\n  readonly step4?: Maybe<OrderTrackingStep>;\n  readonly step5?: Maybe<OrderTrackingStep>;\n  readonly url?: Maybe<Scalars['String']['output']>;\n  readonly waybillNumber?: Maybe<Scalars['String']['output']>;\n};\n\nexport type OrderTrackingStep = {\n  readonly __typename?: 'OrderTrackingStep';\n  readonly dateTime?: Maybe<Scalars['DateTime']['output']>;\n  readonly status: TrackingStatus;\n};\n\nexport type Orders = {\n  readonly __typename?: 'Orders';\n  readonly collection?: Maybe<ReadonlyArray<Maybe<Order>>>;\n  readonly skip?: Maybe<Scalars['Int']['output']>;\n  readonly top?: Maybe<Scalars['Int']['output']>;\n  readonly totalRecords: Scalars['Int']['output'];\n};\n\nexport type PageNavigation = {\n  readonly __typename?: 'PageNavigation';\n  /** Navigation menu item */\n  readonly items?: Maybe<ReadonlyArray<Maybe<PageNavigationItem>>>;\n  /** Page ID */\n  readonly pageId?: Maybe<Scalars['String']['output']>;\n};\n\nexport type PageNavigationItem = {\n  readonly __typename?: 'PageNavigationItem';\n  /** Unique ID of navigation item */\n  readonly itemId?: Maybe<Scalars['String']['output']>;\n  /** Localized label */\n  readonly label?: Maybe<Scalars['String']['output']>;\n  /** Relative URL */\n  readonly url?: Maybe<Scalars['String']['output']>;\n};\n\n/** Payment Channel for bonus type */\nexport enum PaymentChannel {\n  /** Commission payment channel (BonusType released to bank account) */\n  Commission = 'Commission',\n  /** Discount payment channel (BonusType released to discount) */\n  Discount = 'Discount',\n  /** Sales Action Discount (BonusType not released - used for virtual income i.e. immediate profit) */\n  SalesActionDiscount = 'SalesActionDiscount'\n}\n\nexport type PaymentMethod = {\n  readonly __typename?: 'PaymentMethod';\n  /** ID of the payment method. */\n  readonly id?: Maybe<Scalars['String']['output']>;\n  /** URL of the payment method's image. */\n  readonly imageUrl?: Maybe<Scalars['String']['output']>;\n  /** Title of the payment method. */\n  readonly title?: Maybe<Scalars['String']['output']>;\n};\n\nexport type PendingPaymentsResult = {\n  readonly __typename?: 'PendingPaymentsResult';\n  readonly canPay: Scalars['Boolean']['output'];\n  readonly maxPendingPayments: Scalars['Int']['output'];\n  readonly pendingPaymentsCount: Scalars['Int']['output'];\n};\n\nexport type PeriodOrderEvaluationStatus = {\n  readonly __typename?: 'PeriodOrderEvaluationStatus';\n  readonly periodId: Scalars['Int']['output'];\n  readonly periodOrderNumber: Scalars['Int']['output'];\n  readonly periodStatus: PeriodStatus;\n};\n\nexport enum PeriodStatus {\n  ActiveCompleted = 'ActiveCompleted',\n  ActiveNotCompleted = 'ActiveNotCompleted',\n  Completed = 'Completed',\n  NotActive = 'NotActive',\n  NotCompleted = 'NotCompleted'\n}\n\nexport type PermanentTopBanner = {\n  readonly __typename?: 'PermanentTopBanner';\n  readonly link?: Maybe<Link>;\n  readonly message?: Maybe<Scalars['String']['output']>;\n};\n\nexport enum PermanentTopBannerType {\n  /** All pages behind Checkout */\n  Checkout = 'Checkout',\n  /** All pages behind my-pages */\n  MyPages = 'MyPages',\n  /** All other public pages */\n  PublicPage = 'PublicPage',\n  /** All public pages with provided referral parameter */\n  PublicPageWithReferral = 'PublicPageWithReferral'\n}\n\nexport type PersonalBeautyStore = {\n  readonly __typename?: 'PersonalBeautyStore';\n  readonly customerId?: Maybe<Scalars['Long']['output']>;\n  /** Text description of PBS / applicable for PBS lite */\n  readonly description?: Maybe<Scalars['String']['output']>;\n  /** Name of PBS */\n  readonly name?: Maybe<Scalars['String']['output']>;\n  /** Product lists */\n  readonly productLists?: Maybe<ReadonlyArray<Maybe<ProductList>>>;\n  /** Personal beauty store owner profile */\n  readonly profile?: Maybe<PersonalBeautyStoreProfile>;\n  /** Url to PBS */\n  readonly url?: Maybe<Scalars['String']['output']>;\n  /** Live video shows */\n  readonly videoShows?: Maybe<ReadonlyArray<Maybe<VideoShow>>>;\n};\n\n\nexport type PersonalBeautyStoreProductListsArgs = {\n  productListType: ProductListType;\n};\n\nexport type PersonalBeautyStoreProfile = {\n  readonly __typename?: 'PersonalBeautyStoreProfile';\n  /** Consultant number */\n  readonly consultantNumber?: Maybe<Scalars['Int']['output']>;\n  /** Pbs owner contacts */\n  readonly contacts?: Maybe<ReadonlyArray<Maybe<SocialContact>>>;\n  /** Description of PBS */\n  readonly description?: Maybe<Scalars['String']['output']>;\n  /** First name */\n  readonly firstName?: Maybe<Scalars['String']['output']>;\n  /** Last name */\n  readonly lastName?: Maybe<Scalars['String']['output']>;\n  /** Name PBS store */\n  readonly name?: Maybe<Scalars['String']['output']>;\n  /** Pbs owner photo */\n  readonly photoUrl?: Maybe<Scalars['String']['output']>;\n  /** Referral program data */\n  readonly referralProgram?: Maybe<ReferralProgram>;\n};\n\nexport type PersonalEditorialLandingPage = {\n  readonly __typename?: 'PersonalEditorialLandingPage';\n  /** Background color */\n  readonly backgroundStorybookColor?: Maybe<StorybookColor>;\n  /** Description */\n  readonly description?: Maybe<Scalars['String']['output']>;\n  /** Editorial collection */\n  readonly editorialItems?: Maybe<ReadonlyArray<Maybe<EditorialPage>>>;\n  /** Headline text color */\n  readonly headlineStorybookColor?: Maybe<StorybookColor>;\n  /** Image Url */\n  readonly imageUrl?: Maybe<Scalars['String']['output']>;\n  /** Page Id */\n  readonly landingPageId: Scalars['ID']['output'];\n  /** Link to the landing page */\n  readonly link?: Maybe<Link>;\n  /** Theme collection */\n  readonly themeItems?: Maybe<ReadonlyArray<Maybe<PersonalEditorialLandingPage>>>;\n  /** Theme Tag */\n  readonly themeTag?: Maybe<Scalars['String']['output']>;\n  /** Thumbnail Url */\n  readonly thumbnailUrl?: Maybe<Scalars['String']['output']>;\n  /** Title */\n  readonly title?: Maybe<Scalars['String']['output']>;\n};\n\n\nexport type PersonalEditorialLandingPageEditorialItemsArgs = {\n  skip?: Scalars['Int']['input'];\n  top?: Scalars['Int']['input'];\n};\n\nexport type PersonalProductListConfiguration = {\n  readonly __typename?: 'PersonalProductListConfiguration';\n  readonly addThis?: Maybe<AddThis>;\n  /** Link to a home page */\n  readonly homePageUrl?: Maybe<Scalars['String']['output']>;\n  /** Is dynamic link enabled for PPL */\n  readonly isDynamicLinkEnabled?: Maybe<Scalars['Boolean']['output']>;\n  /** Is PBS ownership is required for PPL */\n  readonly isPbsRequired?: Maybe<Scalars['Boolean']['output']>;\n  /** Is PPL enabled */\n  readonly isPplEnabled?: Maybe<Scalars['Boolean']['output']>;\n  /** Link to Personal Beauty Store management page */\n  readonly pbsPageUrl?: Maybe<Scalars['String']['output']>;\n};\n\nexport type PersonalSubscription = {\n  readonly __typename?: 'PersonalSubscription';\n  /** Subscription cancel date */\n  readonly cancelled?: Maybe<Scalars['DateTime']['output']>;\n  /** Subscription type */\n  readonly category: PersonalSubscriptionCategory;\n  /** The customer associated with the subscription. */\n  readonly customer?: Maybe<Customer>;\n  /** Subscription owner */\n  readonly customerId: Scalars['Long']['output'];\n  /** Subscription frequency (days) */\n  readonly frequency: Scalars['Int']['output'];\n  readonly isActive: Scalars['Boolean']['output'];\n  /** Subscription is temporary paused */\n  readonly isPaused: Scalars['Boolean']['output'];\n  /** Subscribed product */\n  readonly itemCode?: Maybe<Scalars['String']['output']>;\n  /** Last shipment date */\n  readonly lastShipment: Scalars['DateTime']['output'];\n  /** Next shipment date */\n  readonly nextShipment: Scalars['DateTime']['output'];\n  /** Unique identification */\n  readonly personalSubscriptionId: Scalars['ID']['output'];\n  /** The get selected delivery channel and addresses. */\n  readonly product?: Maybe<Product>;\n  /** Product quantity */\n  readonly quantity: Scalars['Int']['output'];\n};\n\nexport enum PersonalSubscriptionCategory {\n  PersonalNutrition = 'PersonalNutrition',\n  Product = 'Product'\n}\n\nexport type PersonalSubscriptions = {\n  readonly __typename?: 'PersonalSubscriptions';\n  readonly collection?: Maybe<ReadonlyArray<Maybe<PersonalSubscription>>>;\n  readonly skip?: Maybe<Scalars['Int']['output']>;\n  readonly top?: Maybe<Scalars['Int']['output']>;\n  readonly totalRecords: Scalars['Int']['output'];\n};\n\nexport type Phone = {\n  readonly __typename?: 'Phone';\n  /** Is telephone number primary */\n  readonly isPrimary?: Maybe<Scalars['Boolean']['output']>;\n  /** Is telephone number verified */\n  readonly isVerified?: Maybe<Scalars['Boolean']['output']>;\n  /** Telephone id */\n  readonly telephoneId: Scalars['ID']['output'];\n  /** Telephone number */\n  readonly telephoneNumber?: Maybe<Scalars['String']['output']>;\n  /** Telephone type */\n  readonly telephoneType?: Maybe<TelephoneType>;\n};\n\nexport type PickupPoint = {\n  readonly __typename?: 'PickupPoint';\n  /** The get pick-up point details. */\n  readonly deliveryChannel?: Maybe<DeliveryChannel>;\n  readonly deliveryChannelId: Scalars['Long']['output'];\n  readonly estimatedDeliveryDate?: Maybe<Scalars['DateTime']['output']>;\n  /** Delivery channel can be selected */\n  readonly isAllowed: Scalars['Boolean']['output'];\n  /** Shipping joker can replace the fee */\n  readonly isShippingJoker: Scalars['Boolean']['output'];\n  /** Shipping fee before joker is applied */\n  readonly originalShippingFee?: Maybe<Scalars['Decimal']['output']>;\n  /** Not available products quantity */\n  readonly outOfStockQuantity: Scalars['Int']['output'];\n  readonly shippingFee: Scalars['Decimal']['output'];\n};\n\nexport type PickupPoints = {\n  readonly __typename?: 'PickupPoints';\n  readonly collection?: Maybe<ReadonlyArray<Maybe<PickupPoint>>>;\n  readonly totalRecords: Scalars['Int']['output'];\n};\n\nexport enum PickupSearchFilter {\n  All = 'All',\n  DepartmentStore = 'DepartmentStore',\n  Lpo = 'Lpo',\n  MySpo = 'MySpo',\n  PickupPoint = 'PickupPoint',\n  PostOffice = 'PostOffice',\n  PremiumSpo = 'PremiumSpo',\n  Spo = 'Spo'\n}\n\nexport type PlpFacet = {\n  readonly __typename?: 'PlpFacet';\n  /** Facet is active for products filtering */\n  readonly active: Scalars['Boolean']['output'];\n  /** Facet display name */\n  readonly displayName?: Maybe<Scalars['String']['output']>;\n  /** Facet name */\n  readonly name?: Maybe<Scalars['String']['output']>;\n  /** Available facet values */\n  readonly values: ReadonlyArray<PlpFacetValue>;\n};\n\nexport type PlpFacetInfo = {\n  readonly __typename?: 'PlpFacetInfo';\n  /** Color hex code (for color-family facet field) */\n  readonly color?: Maybe<Scalars['String']['output']>;\n};\n\nexport type PlpFacetValue = {\n  readonly __typename?: 'PlpFacetValue';\n  /** Facet value is active for products filtering */\n  readonly active: Scalars['Boolean']['output'];\n  /** Count of products meeting facet condition */\n  readonly count: Scalars['Int']['output'];\n  /** Value display name */\n  readonly displayName?: Maybe<Scalars['String']['output']>;\n  /** Facet info */\n  readonly facetInfo: PlpFacetInfo;\n  /** Value key */\n  readonly key?: Maybe<Scalars['String']['output']>;\n};\n\nexport enum PlpOrderBy {\n  HighestDiscount = 'HighestDiscount',\n  HighestPrice = 'HighestPrice',\n  HighestRating = 'HighestRating',\n  Latest = 'Latest',\n  LowestPrice = 'LowestPrice',\n  Recommended = 'Recommended'\n}\n\nexport type PlpOrderingDefinition = {\n  readonly __typename?: 'PlpOrderingDefinition';\n  /** Display text */\n  readonly displayText?: Maybe<Scalars['String']['output']>;\n  /** Product ordering strategy */\n  readonly orderBy: PlpOrderBy;\n};\n\nexport type PlpRow = {\n  readonly __typename?: 'PlpRow';\n  readonly content: ReadonlyArray<Maybe<MixedPlpContent>>;\n};\n\nexport type PlpRowsFacetFilterInput = {\n  /** Gets or sets the active children keys. */\n  readonly keys?: InputMaybe<ReadonlyArray<InputMaybe<Scalars['String']['input']>>>;\n  /** Gets or sets the facet name. */\n  readonly name?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type PopularProductCategory = {\n  readonly __typename?: 'PopularProductCategory';\n  /** Taxonomy Id */\n  readonly taxonomyId: Scalars['Int']['output'];\n};\n\nexport type PopupNewsletterSubsciptionConfiguration = {\n  readonly __typename?: 'PopupNewsletterSubsciptionConfiguration';\n  /** DelayInSeconds */\n  readonly delayInSeconds?: Maybe<Scalars['Int']['output']>;\n  /** DisplayFrequencyInDays */\n  readonly displayFrequencyInDays?: Maybe<Scalars['Int']['output']>;\n  /** Enabled */\n  readonly enabled?: Maybe<Scalars['Boolean']['output']>;\n};\n\nexport type Price = {\n  readonly __typename?: 'Price';\n  /** Basic cashback amount */\n  readonly basicCashback?: Maybe<Scalars['Float']['output']>;\n  /** Consultant price from basic catalogue */\n  readonly basicCatalogueConsultantPrice?: Maybe<Scalars['Float']['output']>;\n  /** Price from basic catalogue */\n  readonly basicCataloguePrice?: Maybe<Scalars['Float']['output']>;\n  /** Current consultant price */\n  readonly currentConsultantPrice?: Maybe<Scalars['Float']['output']>;\n  /** Current price */\n  readonly currentPrice?: Maybe<Scalars['Float']['output']>;\n  /** Extra cashback amount */\n  readonly extraCashback?: Maybe<Scalars['String']['output']>;\n  /** Previous minimum price in last 30 days */\n  readonly previousMinOfferPrice?: Maybe<Scalars['Float']['output']>;\n  /** Price after immediate discount */\n  readonly priceAfterImmediateDiscount?: Maybe<Scalars['Float']['output']>;\n  /** Approximate Share &amp; Earn bonus amount */\n  readonly sharingBonus?: Maybe<Scalars['Float']['output']>;\n};\n\n/** The product resolver. */\nexport type Product = {\n  readonly __typename?: 'Product';\n  /** Accord Dangereux Routier (Classification of Dangerous Goods). */\n  readonly adr?: Maybe<Scalars['String']['output']>;\n  /** Collection of alternative images */\n  readonly alternativeImageUrls?: Maybe<ReadonlyArray<Maybe<Scalars['String']['output']>>>;\n  /** The get product availability. */\n  readonly availability?: Maybe<ProductAvailability>;\n  /** The get back in stock availability. */\n  readonly backInStockAvailability?: Maybe<BackInStockAvailability>;\n  readonly barcode?: Maybe<Scalars['String']['output']>;\n  /** The get benefit catalogue offers. */\n  readonly benefitCatalogueOffers?: Maybe<ReadonlyArray<Maybe<CatalogueOffer>>>;\n  /** Priority of Best Seller product. */\n  readonly bestsellerPriority?: Maybe<Scalars['Int']['output']>;\n  /** The product bundle components. */\n  readonly bundleComponents?: Maybe<ReadonlyArray<Maybe<BundleComponent>>>;\n  /** The get catalogue offers. */\n  readonly catalogueOffers?: Maybe<ReadonlyArray<Maybe<CatalogueOffer>>>;\n  /** @deprecated Use 'shadeName' field instead */\n  readonly color?: Maybe<Scalars['String']['output']>;\n  /** @deprecated Use 'hexColors' field instead */\n  readonly colorHexCode?: Maybe<Scalars['String']['output']>;\n  /** Color url */\n  readonly colorImageUrl?: Maybe<Scalars['String']['output']>;\n  /** The get concept. */\n  readonly concept?: Maybe<Concept>;\n  readonly conceptCode?: Maybe<Scalars['String']['output']>;\n  readonly depth?: Maybe<Scalars['Int']['output']>;\n  /** @deprecated Use 'dimensionsText' field instead */\n  readonly dimension?: Maybe<Scalars['String']['output']>;\n  /** Localized dimensions of product (including value and units). */\n  readonly dimensionsText?: Maybe<Scalars['String']['output']>;\n  /** Product discontinuation date (product no more manufactured). */\n  readonly discoDate?: Maybe<Scalars['DateTime']['output']>;\n  /** Euro monitor class ID. */\n  readonly euroMonitorClassId?: Maybe<Scalars['String']['output']>;\n  /** The get formatted price. */\n  readonly formattedPrice?: Maybe<ProductFormattedPrice>;\n  /** Global Commercial Intent (gcint). */\n  readonly globalCommercialIntent?: Maybe<Scalars['String']['output']>;\n  /** Hash code calculated form the relevant product information */\n  readonly hashCode?: Maybe<Scalars['Int']['output']>;\n  readonly height?: Maybe<Scalars['Int']['output']>;\n  /** Collection of product color hexadecimal codes. */\n  readonly hexColors?: Maybe<ReadonlyArray<Maybe<Scalars['String']['output']>>>;\n  /** Product Image url */\n  readonly imageUrl?: Maybe<Scalars['String']['output']>;\n  /** Comma separated list of product ingredients. */\n  readonly inci?: Maybe<Scalars['String']['output']>;\n  /** The product includeded in bundles. */\n  readonly includedInBundles?: Maybe<ReadonlyArray<Maybe<Product>>>;\n  /** The get ingredients. */\n  readonly ingredients?: Maybe<ReadonlyArray<Maybe<Ingredient>>>;\n  /** Product introduction date (before the date, the product is not available). */\n  readonly introDate?: Maybe<Scalars['DateTime']['output']>;\n  /** Flag indicating if product is Best Seller. */\n  readonly isBestseller?: Maybe<Scalars['Boolean']['output']>;\n  /** Flag indicating whether the product is discontinued */\n  readonly isDiscontinued: Scalars['Boolean']['output'];\n  /** Flag indicating whether the product is a outlet. True - outlet product. False - product is not a outlet */\n  readonly isOutlet: Scalars['Boolean']['output'];\n  /** Flag indicating if product is customized. */\n  readonly isProductCustomized?: Maybe<Scalars['Boolean']['output']>;\n  /** Flag indicating whether the product is a sample. True - sample product. False - product is not a sample */\n  readonly isSample: Scalars['Boolean']['output'];\n  /** The get labels. */\n  readonly labels?: Maybe<ReadonlyArray<Maybe<ProductLabel>>>;\n  readonly length?: Maybe<Scalars['Int']['output']>;\n  /** Makeup Try On Product Relation */\n  readonly makeupTryOn?: Maybe<MakeupTryOnProductRelation>;\n  /** The product expected inbound. */\n  readonly manufacturers?: Maybe<ReadonlyArray<Maybe<Manufacturer>>>;\n  /** The get parent products. */\n  readonly parentProducts?: Maybe<ReadonlyArray<Maybe<Product>>>;\n  /** The get PDP Url. */\n  readonly pdpUrl?: Maybe<Link>;\n  /** The get product permission. */\n  readonly permission?: Maybe<ProductPermission>;\n  /** The get price. */\n  readonly price?: Maybe<ProductPrice>;\n  /** Code that identifies the resulting product */\n  readonly productCode: Scalars['ID']['output'];\n  /** Product detail page. */\n  readonly productDetailPage?: Maybe<ProductDetailPage>;\n  /** The product expected inbound. */\n  readonly productExpectedInbound?: Maybe<ProductExpectedInbound>;\n  /** Type of the product = ['Product', 'Bundle', 'Sample', 'Fee', 'Composite'] */\n  readonly productType?: Maybe<ProductType>;\n  /** The get purchase catalogue offers. */\n  readonly purchaseCatalogueOffers?: Maybe<ReadonlyArray<Maybe<CatalogueOffer>>>;\n  /** Recommended products */\n  readonly recommendations?: Maybe<ReadonlyArray<Maybe<ProductRecommendation>>>;\n  /** The get relations. */\n  readonly relations?: Maybe<ReadonlyArray<Maybe<ProductRelation>>>;\n  readonly replacedBy?: Maybe<Scalars['String']['output']>;\n  /** The get replace by product. */\n  readonly replacedByProduct?: Maybe<Product>;\n  readonly replacementFor?: Maybe<Scalars['String']['output']>;\n  /** The get replacement for product. */\n  readonly replacementForProduct?: Maybe<Product>;\n  /** The get replacements. */\n  readonly replacements?: Maybe<ReadonlyArray<Maybe<ProductReplacement>>>;\n  /** The get product sample. */\n  readonly sample?: Maybe<Product>;\n  /** Localized product shade/color name. */\n  readonly shadeName?: Maybe<Scalars['String']['output']>;\n  /** Flag indicating if product should be shown on site */\n  readonly showOnSite: Scalars['Boolean']['output'];\n  /** Product subscription information */\n  readonly subscription?: Maybe<Subscription>;\n  /** The get subscription benefit banner. */\n  readonly subscriptionBenefitBanner?: Maybe<SubscriptionBenefitBanner>;\n  /**\n   * Collection of product tags\n   * @deprecated Should have no use. If you are using the field, contact david.konecny@oriflame.com\n   */\n  readonly tags?: Maybe<ReadonlyArray<Maybe<Tag>>>;\n  /** Thumbnail image url */\n  readonly thumbnailUrl?: Maybe<Scalars['String']['output']>;\n  readonly toolingBanners?: Maybe<ReadonlyArray<Maybe<ProductToolingBanner>>>;\n  /** Product video url */\n  readonly videoUrl?: Maybe<Scalars['String']['output']>;\n  /** Product volume value. */\n  readonly volume?: Maybe<Scalars['Float']['output']>;\n  /** @deprecated Use 'volumeValue' field instead */\n  readonly volumeText?: Maybe<Scalars['String']['output']>;\n  /** @deprecated Use 'volumeUnitText' field instead */\n  readonly volumeUnit?: Maybe<Scalars['String']['output']>;\n  /** Localized unit of product volume. */\n  readonly volumeUnitText?: Maybe<Scalars['String']['output']>;\n  /** Localized value of product volume. */\n  readonly volumeValue?: Maybe<Scalars['Float']['output']>;\n  readonly weight?: Maybe<Scalars['Float']['output']>;\n};\n\n\n/** The product resolver. */\nexport type ProductBenefitCatalogueOffersArgs = {\n  top?: InputMaybe<Scalars['Int']['input']>;\n};\n\n\n/** The product resolver. */\nexport type ProductCatalogueOffersArgs = {\n  top?: InputMaybe<Scalars['Int']['input']>;\n};\n\n\n/** The product resolver. */\nexport type ProductPurchaseCatalogueOffersArgs = {\n  top?: InputMaybe<Scalars['Int']['input']>;\n};\n\n\n/** The product resolver. */\nexport type ProductRelationsArgs = {\n  relationTypes?: InputMaybe<ReadonlyArray<ProductRelationType>>;\n};\n\nexport type ProductAvailability = {\n  readonly __typename?: 'ProductAvailability';\n  /** Expected Inbound */\n  readonly expectedInbound?: Maybe<Scalars['DateTime']['output']>;\n  /** When item is out of stock, and can be backordered */\n  readonly isBackorder?: Maybe<Scalars['Boolean']['output']>;\n  /** Is bundle */\n  readonly isBundle?: Maybe<Scalars['Boolean']['output']>;\n  /** Introduction date of product is close */\n  readonly isComingSoon?: Maybe<Scalars['Boolean']['output']>;\n  /** Specified by number of days (sitecore) before disco date */\n  readonly isLastChance?: Maybe<Scalars['Boolean']['output']>;\n  /** Current ATP is lower than 24hr sales history */\n  readonly isLowStock?: Maybe<Scalars['Boolean']['output']>;\n  /** Number of days (sitecore) after intro date */\n  readonly isNew?: Maybe<Scalars['Boolean']['output']>;\n  /** Product is discontinued */\n  readonly isNoLongerForSale?: Maybe<Scalars['Boolean']['output']>;\n  /** Product cant be sold, price = 0, or is deleted */\n  readonly isNotSoldOnline?: Maybe<Scalars['Boolean']['output']>;\n  /** Is not standard item, catalogue offer for specific period */\n  readonly isOffer?: Maybe<Scalars['Boolean']['output']>;\n  /** Out of stock */\n  readonly isOutOfStock?: Maybe<Scalars['Boolean']['output']>;\n  /** Is sales limited */\n  readonly isSalesLimited?: Maybe<Scalars['Boolean']['output']>;\n  readonly isSoldOut?: Maybe<Scalars['Boolean']['output']>;\n  /** Product is Super Deal */\n  readonly isSuperDeal?: Maybe<Scalars['Boolean']['output']>;\n  readonly replacements?: Maybe<ReadonlyArray<Maybe<ProductReplacement>>>;\n};\n\nexport type ProductDetailMakeupTryOnConfiguration = {\n  readonly __typename?: 'ProductDetailMakeupTryOnConfiguration';\n  /** allows Live Camera Label */\n  readonly allowsLiveCameraLabel?: Maybe<Scalars['String']['output']>;\n  /** Enabled */\n  readonly enabled?: Maybe<Scalars['Boolean']['output']>;\n  /** Shi Shi Component Url */\n  readonly shiShiComponentUrl?: Maybe<Scalars['String']['output']>;\n  /** try It On Label */\n  readonly tryItOnLabel?: Maybe<Scalars['String']['output']>;\n};\n\nexport type ProductDetailMetadata = {\n  readonly __typename?: 'ProductDetailMetadata';\n  readonly jsonLd?: Maybe<Scalars['JSON']['output']>;\n};\n\nexport type ProductDetailPage = {\n  readonly __typename?: 'ProductDetailPage';\n  /** Breadcrumb links */\n  readonly breadcrumbLinks?: Maybe<BreadcrumbLinks>;\n  /** PDP configuration */\n  readonly configuration?: Maybe<ProductDetailPageConfiguration>;\n  /** Editorial carousel */\n  readonly editorialCarousel?: Maybe<EditorialCarousel>;\n  readonly guarantees: ProductDetailPageGuarantees;\n  readonly metadata: ProductDetailMetadata;\n  /** Product */\n  readonly product?: Maybe<Product>;\n  readonly sections?: Maybe<ProductDetailPageSectionsContent>;\n  /** Tooling banners */\n  readonly toolingBanners: ReadonlyArray<ProductToolingBanner>;\n};\n\nexport type ProductDetailPageAboutSection = {\n  readonly __typename?: 'ProductDetailPageAboutSection';\n  readonly label?: Maybe<Scalars['String']['output']>;\n  readonly text?: Maybe<Scalars['String']['output']>;\n};\n\nexport type ProductDetailPageAdditionalInfoSection = {\n  readonly __typename?: 'ProductDetailPageAdditionalInfoSection';\n  readonly expiryDate?: Maybe<ProductDetailPageExpirationDate>;\n  readonly isImporterInfoEnabled: Scalars['Boolean']['output'];\n  readonly label?: Maybe<Scalars['String']['output']>;\n  readonly manufacturers?: Maybe<ProductDetailPageManufacturers>;\n};\n\nexport type ProductDetailPageConfiguration = {\n  readonly __typename?: 'ProductDetailPageConfiguration';\n  /** Is MRP statement enabled */\n  readonly isMrpStatementEnabled?: Maybe<Scalars['Boolean']['output']>;\n  /** Is sharing enabled */\n  readonly isSharingEnabled?: Maybe<Scalars['Boolean']['output']>;\n  /** Max quantity */\n  readonly maxQuantity?: Maybe<Scalars['Int']['output']>;\n  /** Product detail page sections */\n  readonly sections?: Maybe<ProductDetailPageSections>;\n  /** Shipping info */\n  readonly shippingInfo?: Maybe<ProductDetailShippingInfo>;\n};\n\nexport type ProductDetailPageExpirationDate = {\n  readonly __typename?: 'ProductDetailPageExpirationDate';\n  readonly label?: Maybe<Scalars['String']['output']>;\n  readonly text?: Maybe<Scalars['String']['output']>;\n};\n\nexport type ProductDetailPageGuarantees = {\n  readonly __typename?: 'ProductDetailPageGuarantees';\n  /** Collection of payment methods */\n  readonly deliveryFee?: Maybe<DeliveryFee>;\n  /** Information about free delivery */\n  readonly freeDelivery?: Maybe<FreeDelivery>;\n  /** Collection of payment methods */\n  readonly paymentMethods: ReadonlyArray<PaymentMethod>;\n  /** Time guarantees for delivery */\n  readonly timeGuarantees?: Maybe<TimeGuarantees>;\n};\n\nexport type ProductDetailPageIngredient = {\n  readonly __typename?: 'ProductDetailPageIngredient';\n  readonly label?: Maybe<Scalars['String']['output']>;\n  readonly text?: Maybe<Scalars['String']['output']>;\n};\n\nexport type ProductDetailPageManufacturer = {\n  readonly __typename?: 'ProductDetailPageManufacturer';\n  readonly address1?: Maybe<Scalars['String']['output']>;\n  readonly address2?: Maybe<Scalars['String']['output']>;\n  readonly city?: Maybe<Scalars['String']['output']>;\n  readonly countryCode?: Maybe<Scalars['String']['output']>;\n  readonly countryName?: Maybe<Scalars['String']['output']>;\n  readonly manufacturerId?: Maybe<Scalars['String']['output']>;\n  readonly name?: Maybe<Scalars['String']['output']>;\n  readonly state?: Maybe<Scalars['String']['output']>;\n  readonly zipCode?: Maybe<Scalars['String']['output']>;\n};\n\nexport type ProductDetailPageManufacturers = {\n  readonly __typename?: 'ProductDetailPageManufacturers';\n  readonly countryOfOriginLabel?: Maybe<Scalars['String']['output']>;\n  readonly informationLabel?: Maybe<Scalars['String']['output']>;\n  readonly label?: Maybe<Scalars['String']['output']>;\n  readonly manufacturers?: Maybe<ReadonlyArray<Maybe<ProductDetailPageManufacturer>>>;\n};\n\nexport type ProductDetailPageSections = {\n  readonly __typename?: 'ProductDetailPageSections';\n  /** Indicates if the about section is disabled */\n  readonly aboutDisabled?: Maybe<Scalars['Boolean']['output']>;\n  /** Indicates if the additional information section is disabled */\n  readonly additionalInformationDisabled?: Maybe<Scalars['Boolean']['output']>;\n  /** Indicates if the beauty edit module is disabled */\n  readonly beautyEditModuleDisabled?: Maybe<Scalars['Boolean']['output']>;\n  /** Indicates if the how to use section is disabled */\n  readonly howToUseDisabled?: Maybe<Scalars['Boolean']['output']>;\n  /** Indicates if the ingredients section is disabled */\n  readonly ingredientsDisabled?: Maybe<Scalars['Boolean']['output']>;\n  /** Inducates if the rating and reviews section is disabled */\n  readonly ratingAndReviewsDisabled?: Maybe<Scalars['Boolean']['output']>;\n  /** Indicates if the shipping info section is disabled */\n  readonly shippingInfoDisabled?: Maybe<Scalars['Boolean']['output']>;\n};\n\nexport type ProductDetailPageSectionsContent = {\n  readonly __typename?: 'ProductDetailPageSectionsContent';\n  readonly about?: Maybe<ProductDetailPageAboutSection>;\n  readonly additionalInformation?: Maybe<ProductDetailPageAdditionalInfoSection>;\n  readonly ingredients?: Maybe<ReadonlyArray<Maybe<ProductDetailPageIngredient>>>;\n};\n\nexport type ProductDetailShippingInfo = {\n  readonly __typename?: 'ProductDetailShippingInfo';\n  /** Shipping info content */\n  readonly content?: Maybe<Scalars['String']['output']>;\n  /** Shipping info title */\n  readonly title?: Maybe<Scalars['String']['output']>;\n};\n\nexport type ProductExpectedInbound = {\n  readonly __typename?: 'ProductExpectedInbound';\n  /** Expected Inbound Date */\n  readonly expectedInboundDate?: Maybe<Scalars['DateTime']['output']>;\n  /** Expected Inbound Label */\n  readonly expectedInboundLabel?: Maybe<Scalars['String']['output']>;\n};\n\nexport type ProductFormattedPrice = {\n  readonly __typename?: 'ProductFormattedPrice';\n  /** Business points assigned to the product */\n  readonly bp?: Maybe<Scalars['Float']['output']>;\n  /** Timestamp of when price was calculated */\n  readonly dateCalculated?: Maybe<Scalars['DateTime']['output']>;\n  /** Object containing concept's prices */\n  readonly price?: Maybe<FormattedPrice>;\n};\n\nexport type ProductLabel = {\n  readonly __typename?: 'ProductLabel';\n  /** Help text */\n  readonly helpText?: Maybe<Scalars['String']['output']>;\n  /** Key of the label */\n  readonly labelKey: Scalars['ID']['output'];\n  /** Product label domain type */\n  readonly productLabelDomain?: Maybe<ProductLabelDomainType>;\n  /** Title */\n  readonly title?: Maybe<Scalars['String']['output']>;\n};\n\n/** Product Label Domain Type */\nexport enum ProductLabelDomainType {\n  /** Only Offer, New, SuperDeal */\n  Deal = 'Deal',\n  Ppa = 'PPA',\n  /** Domain Type for AddToBasketVisible ProductLabelType */\n  Shopping = 'Shopping'\n}\n\nexport type ProductList = {\n  readonly __typename?: 'ProductList';\n  /** Date of creation */\n  readonly created?: Maybe<Scalars['DateTime']['output']>;\n  /** Collection of product items */\n  readonly items?: Maybe<ReadonlyArray<Maybe<ProductListItem>>>;\n  /** Name */\n  readonly name?: Maybe<Scalars['String']['output']>;\n  /** Id */\n  readonly productListId: Scalars['ID']['output'];\n  /** Type of product list */\n  readonly productListType?: Maybe<ProductListType>;\n};\n\nexport type ProductListItem = {\n  readonly __typename?: 'ProductListItem';\n  /** Product code */\n  readonly itemCode?: Maybe<Scalars['String']['output']>;\n};\n\nexport enum ProductListType {\n  Favorite = 'Favorite',\n  Personal = 'Personal',\n  Private = 'Private',\n  Wishlist = 'Wishlist'\n}\n\nexport type ProductListingBanner = {\n  readonly __typename?: 'ProductListingBanner';\n  readonly contentVerticalAlignment?: Maybe<Scalars['String']['output']>;\n  readonly headline?: Maybe<Scalars['String']['output']>;\n  readonly imageHoverUrl?: Maybe<Scalars['String']['output']>;\n  readonly imageUrl?: Maybe<Scalars['String']['output']>;\n  readonly isUpperCase: Scalars['Boolean']['output'];\n  readonly link?: Maybe<Link>;\n  readonly size: Scalars['Int']['output'];\n  readonly textColour?: Maybe<Scalars['String']['output']>;\n};\n\n/** Enum ProductListingBannerVideoType */\nexport enum ProductListingBannerVideoType {\n  Mp4 = 'Mp4',\n  None = 'None',\n  Youku = 'Youku',\n  Youtube = 'Youtube'\n}\n\nexport type ProductListingPage = {\n  readonly __typename?: 'ProductListingPage';\n  readonly contentCollection?: Maybe<ReadonlyArray<Maybe<ProductListingPageContent>>>;\n  /** Page's Description */\n  readonly desription?: Maybe<Scalars['String']['output']>;\n  /** Main image's url */\n  readonly imageUrl?: Maybe<Scalars['String']['output']>;\n  /** Page's Name */\n  readonly name?: Maybe<Scalars['String']['output']>;\n  /** Page's ID */\n  readonly pageId: Scalars['ID']['output'];\n  /** Related editorial pages */\n  readonly relatedEditorialPages?: Maybe<ReadonlyArray<Maybe<EditorialPage>>>;\n  /** Page's Title */\n  readonly title?: Maybe<Scalars['String']['output']>;\n};\n\n\nexport type ProductListingPageRelatedEditorialPagesArgs = {\n  channelType: EditorialChannelType;\n};\n\nexport type ProductListingPageContent = Product | ProductListingPromoBanner;\n\nexport type ProductListingProduct = {\n  readonly __typename?: 'ProductListingProduct';\n  readonly pricePosX: Scalars['Int']['output'];\n  readonly pricePosY: Scalars['Int']['output'];\n  /** The get product. */\n  readonly product?: Maybe<Product>;\n};\n\nexport type ProductListingPromoBanner = {\n  readonly __typename?: 'ProductListingPromoBanner';\n  readonly productListingBanner?: Maybe<ProductListingBanner>;\n  readonly productListingProduct?: Maybe<ProductListingProduct>;\n  readonly productListingVideo?: Maybe<ProductListingVideo>;\n};\n\nexport type ProductListingVideo = {\n  readonly __typename?: 'ProductListingVideo';\n  readonly autoplayOnScroll: Scalars['Boolean']['output'];\n  readonly id?: Maybe<Scalars['String']['output']>;\n  readonly playInLoop: Scalars['Boolean']['output'];\n  readonly type: ProductListingBannerVideoType;\n};\n\nexport type ProductPermission = {\n  readonly __typename?: 'ProductPermission';\n  /** Product can be put into the basket owned by specified category of the customer */\n  readonly canBuy?: Maybe<Scalars['Boolean']['output']>;\n  /** Product can be displayed on web site or any other mobile application. Product display might not be available if the flag is set to false. */\n  readonly canDisplay?: Maybe<Scalars['Boolean']['output']>;\n  /** Logged-in customer of specified category can put a product to current/active basket */\n  readonly canSell?: Maybe<Scalars['Boolean']['output']>;\n  /** Code that identifies the resulting product */\n  readonly productCode?: Maybe<Scalars['String']['output']>;\n};\n\nexport type ProductPrice = {\n  readonly __typename?: 'ProductPrice';\n  /** Business points */\n  readonly bp?: Maybe<Scalars['Float']['output']>;\n  /** Currency symbol, for example: \"€\", \"$\" */\n  readonly currency?: Maybe<Scalars['String']['output']>;\n  /** Date calculated */\n  readonly dateCalculated?: Maybe<Scalars['DateTime']['output']>;\n  /** Prices */\n  readonly price?: Maybe<Price>;\n};\n\n/** The product recommendation resolver. */\nexport type ProductRecommendation = {\n  readonly __typename?: 'ProductRecommendation';\n  /** Recommended product */\n  readonly recommendedProduct?: Maybe<Product>;\n  /** @deprecated Use ProductCode from RecommendedProduct instead. */\n  readonly recommendedProductCode?: Maybe<Scalars['ID']['output']>;\n  /** Recommended product similarity to the original product */\n  readonly similarity?: Maybe<Scalars['Float']['output']>;\n};\n\nexport type ProductRelation = {\n  readonly __typename?: 'ProductRelation';\n  /** Related products */\n  readonly products?: Maybe<ReadonlyArray<Maybe<Product>>>;\n  readonly relationType?: Maybe<ProductRelationType>;\n};\n\nexport enum ProductRelationType {\n  Favourite = 'Favourite',\n  Popular = 'Popular',\n  RecentlyViewed = 'RecentlyViewed',\n  Related = 'Related',\n  Samples = 'Samples'\n}\n\nexport type ProductReplacement = {\n  readonly __typename?: 'ProductReplacement';\n  /** Replacement product */\n  readonly product?: Maybe<Product>;\n  /** Replacement quantity */\n  readonly quantity?: Maybe<Scalars['Int']['output']>;\n  readonly replacementType?: Maybe<ProductReplacementType>;\n};\n\nexport enum ProductReplacementType {\n  /** Alternative replacement. */\n  Alternative = 'Alternative',\n  /** Automatic replacement without interaction with user. */\n  Automatic = 'Automatic',\n  /** Manual replacement during shopping. */\n  Manual = 'Manual',\n  /** Taste replacement of subscribed product. */\n  Subscription = 'Subscription',\n  /** Automatic replacement of subscribed wellness product without interaction with user. */\n  WellnessAutomatic = 'WellnessAutomatic',\n  /** Manual replacement of subscribed wellness product during shopping. */\n  WellnessManual = 'WellnessManual'\n}\n\nexport type ProductSearchPage = {\n  readonly __typename?: 'ProductSearchPage';\n  /**\n   * Query products based on the specified parameters.\n   *\n   *\n   * **Returns:**\n   * The products matching the search criteria.\n   */\n  readonly products: ProductSearchPageProducts;\n};\n\n\nexport type ProductSearchPageProductsArgs = {\n  facetFiltering?: InputMaybe<ReadonlyArray<PlpRowsFacetFilterInput>>;\n  orderBy?: PlpOrderBy;\n  query: Scalars['String']['input'];\n  skipRows?: Scalars['Int']['input'];\n  topRows?: Scalars['Int']['input'];\n};\n\nexport type ProductSearchPageProducts = {\n  readonly __typename?: 'ProductSearchPageProducts';\n  readonly facets: ReadonlyArray<PlpFacet>;\n  readonly orderByOptions: ReadonlyArray<PlpOrderingDefinition>;\n  readonly rows: ReadonlyArray<PlpRow>;\n  readonly totalProductsCount: Scalars['Int']['output'];\n};\n\nexport type ProductSearchPreview = {\n  readonly __typename?: 'ProductSearchPreview';\n  /** Search results */\n  readonly searchResults: ProductSearchResults;\n};\n\n\nexport type ProductSearchPreviewSearchResultsArgs = {\n  query: Scalars['String']['input'];\n  top?: Scalars['Int']['input'];\n};\n\n/** Represents the results of a product search. */\nexport type ProductSearchResults = {\n  readonly __typename?: 'ProductSearchResults';\n  /** List of products for the given search results. */\n  readonly products?: Maybe<ReadonlyArray<Maybe<Product>>>;\n  /** Suggestions for subsequent search queries */\n  readonly suggestions: ReadonlyArray<Scalars['String']['output']>;\n  /** Total count of products. */\n  readonly totalProductsCount: Scalars['Int']['output'];\n};\n\nexport type ProductStandards = {\n  readonly __typename?: 'ProductStandards';\n  /** Section's headline */\n  readonly headline?: Maybe<Scalars['String']['output']>;\n  /** Product standards images */\n  readonly images?: Maybe<ReadonlyArray<Maybe<FrontPageImage>>>;\n  /** Section's main text */\n  readonly text?: Maybe<Scalars['String']['output']>;\n};\n\nexport type ProductToolingBanner = {\n  readonly __typename?: 'ProductToolingBanner';\n  /** Headline */\n  readonly headline?: Maybe<Scalars['String']['output']>;\n  /** Image URL */\n  readonly imageUrl?: Maybe<Scalars['String']['output']>;\n  /** Link */\n  readonly link?: Maybe<Link>;\n  /** Text */\n  readonly text?: Maybe<Scalars['String']['output']>;\n};\n\nexport enum ProductType {\n  Bundle = 'Bundle',\n  Composite = 'Composite',\n  Fee = 'Fee',\n  Product = 'Product',\n  Sample = 'Sample'\n}\n\nexport type ProductsPromotionBanner = {\n  readonly __typename?: 'ProductsPromotionBanner';\n  /** Font color of the iconic products banner. */\n  readonly fontColor: StorybookColor;\n  /** Headline of the iconic products banner. */\n  readonly headline?: Maybe<Scalars['String']['output']>;\n  /** URL of the image for the iconic products banner. */\n  readonly imageUrl?: Maybe<Scalars['String']['output']>;\n  /** Link associated with the iconic products banner. */\n  readonly link?: Maybe<Link>;\n};\n\n/** The query. */\nexport type Query = {\n  readonly __typename?: 'Query';\n  readonly application?: Maybe<Application>;\n  /** The get personal beauty store. */\n  readonly beautyStore?: Maybe<PersonalBeautyStore>;\n  /** The get categories. */\n  readonly categories?: Maybe<ReadonlyArray<Maybe<Category>>>;\n  /** The get category. */\n  readonly category?: Maybe<Category>;\n  readonly claiming?: Maybe<Claiming>;\n  /** Provides concepts. */\n  readonly concept?: Maybe<Concept>;\n  /** Provides concepts. */\n  readonly concepts?: Maybe<ReadonlyArray<Maybe<Concept>>>;\n  /** The get customer. */\n  readonly customer?: Maybe<Customer>;\n  /** Gets the ingredients. */\n  readonly ingredients?: Maybe<ReadonlyArray<Maybe<Ingredient>>>;\n  /** The get invite friend profile. */\n  readonly inviteFriendProfile?: Maybe<InviteFriendProfile>;\n  readonly languages?: Maybe<ReadonlyArray<Maybe<Language>>>;\n  readonly mobileApps?: Maybe<MobileApps>;\n  readonly newsletterSubsciptionConfiguration?: Maybe<NewsletterSubsciptionConfiguration>;\n  /** The get order. */\n  readonly order?: Maybe<Order>;\n  /** Get order history. */\n  readonly orders?: Maybe<Orders>;\n  /** The get product. */\n  readonly product?: Maybe<Product>;\n  /** The get products. */\n  readonly products?: Maybe<ReadonlyArray<Maybe<Product>>>;\n  readonly shopping?: Maybe<Shopping>;\n  readonly socialMediaLinks?: Maybe<ReadonlyArray<Maybe<SocialMediaLinks>>>;\n  readonly subscribing?: Maybe<Subscribing>;\n  readonly vipCustomerBanner?: Maybe<VipCustomerBanner>;\n};\n\n\n/** The query. */\nexport type QueryBeautyStoreArgs = {\n  name?: InputMaybe<Scalars['ID']['input']>;\n};\n\n\n/** The query. */\nexport type QueryCategoriesArgs = {\n  taxonomyIds?: InputMaybe<ReadonlyArray<InputMaybe<Scalars['ID']['input']>>>;\n};\n\n\n/** The query. */\nexport type QueryCategoryArgs = {\n  taxonomyId?: InputMaybe<Scalars['ID']['input']>;\n};\n\n\n/** The query. */\nexport type QueryConceptArgs = {\n  conceptCode?: InputMaybe<Scalars['ID']['input']>;\n};\n\n\n/** The query. */\nexport type QueryConceptsArgs = {\n  conceptCodes?: InputMaybe<ReadonlyArray<InputMaybe<Scalars['ID']['input']>>>;\n  top?: InputMaybe<Scalars['Int']['input']>;\n};\n\n\n/** The query. */\nexport type QueryIngredientsArgs = {\n  ingredientNames?: InputMaybe<ReadonlyArray<InputMaybe<Scalars['String']['input']>>>;\n  skip?: InputMaybe<Scalars['Int']['input']>;\n  top?: InputMaybe<Scalars['Int']['input']>;\n};\n\n\n/** The query. */\nexport type QueryInviteFriendProfileArgs = {\n  consultantNumber: Scalars['Int']['input'];\n};\n\n\n/** The query. */\nexport type QueryOrderArgs = {\n  orderId: Scalars['ID']['input'];\n};\n\n\n/** The query. */\nexport type QueryOrdersArgs = {\n  customerId?: InputMaybe<Scalars['Long']['input']>;\n  excludeWeChatOrders?: Scalars['Boolean']['input'];\n  historyType?: OrderHistoryType;\n  searchPhase?: InputMaybe<Scalars['String']['input']>;\n  skip?: Scalars['Int']['input'];\n  status?: OrderStatus;\n  top?: InputMaybe<Scalars['Int']['input']>;\n};\n\n\n/** The query. */\nexport type QueryProductArgs = {\n  productCode?: InputMaybe<Scalars['ID']['input']>;\n};\n\n\n/** The query. */\nexport type QueryProductsArgs = {\n  productCodes?: InputMaybe<ReadonlyArray<InputMaybe<Scalars['ID']['input']>>>;\n};\n\nexport type RatingsAndReviewsConfiguration = {\n  readonly __typename?: 'RatingsAndReviewsConfiguration';\n  readonly legalNoticeLink?: Maybe<Link>;\n  readonly legalNoticeText?: Maybe<Scalars['String']['output']>;\n  readonly testFreaksConfiguration?: Maybe<TestFreaksConfiguration>;\n};\n\nexport type RecruitmentInfo = {\n  readonly __typename?: 'RecruitmentInfo';\n  readonly recruitDate?: Maybe<Scalars['DateTime']['output']>;\n  readonly signUpDate?: Maybe<Scalars['DateTime']['output']>;\n};\n\nexport type ReferralProgram = {\n  readonly __typename?: 'ReferralProgram';\n  /** Allowed contacts */\n  readonly allowedContacts?: Maybe<ReadonlyArray<SocialContactType>>;\n  /** Referral link */\n  readonly benefitsLink?: Maybe<Link>;\n  /** Greetings message */\n  readonly greetingMessage?: Maybe<Scalars['String']['output']>;\n  /** Message */\n  readonly message?: Maybe<Scalars['String']['output']>;\n  /** Title */\n  readonly title?: Maybe<Scalars['String']['output']>;\n};\n\nexport enum ReplacementType {\n  Alternative = 'Alternative',\n  Automatic = 'Automatic',\n  Manual = 'Manual'\n}\n\nexport type ResponseMessageNewsletterSubsciptionConfiguration = {\n  readonly __typename?: 'ResponseMessageNewsletterSubsciptionConfiguration';\n  /** text */\n  readonly text?: Maybe<Scalars['String']['output']>;\n  /** Type */\n  readonly type?: Maybe<ResponseMessageNewsletterSubsciptionsType>;\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 type SalesBoosterQualificationInfo = {\n  readonly __typename?: 'SalesBoosterQualificationInfo';\n  readonly actualBp: Scalars['Float']['output'];\n  readonly bonusAmount: Scalars['Float']['output'];\n  readonly bonusAmountDifference?: Maybe<Scalars['Float']['output']>;\n  readonly bpConditionsFulfilled: Scalars['Boolean']['output'];\n  readonly dashboardImage?: Maybe<Scalars['String']['output']>;\n  readonly firstLevelBvRateReward: Scalars['Float']['output'];\n  readonly firstLevelMemberSubtypeBvRateReward: Scalars['Float']['output'];\n  readonly firstLineMemberBp: Scalars['Float']['output'];\n  readonly firstLineMemberBpPercentage: Scalars['Float']['output'];\n  readonly level?: Maybe<Scalars['Int']['output']>;\n  readonly maxAmountCapPersonal: Scalars['Float']['output'];\n  readonly maxAmountCapTotal: Scalars['Float']['output'];\n  readonly maxBpFromFirstLineMembers: Scalars['Float']['output'];\n  readonly pageTopImage?: Maybe<Scalars['String']['output']>;\n  readonly personalBp: Scalars['Float']['output'];\n  readonly personalBpPercentage: Scalars['Float']['output'];\n  readonly personalBvRateReward: Scalars['Float']['output'];\n  readonly personalBvRateRewardDifference?: Maybe<Scalars['Float']['output']>;\n  readonly showPersonalBpAlert: Scalars['Boolean']['output'];\n  readonly targetBp: Scalars['Float']['output'];\n  readonly termsAndConditionsLink?: Maybe<Scalars['String']['output']>;\n  readonly version?: Maybe<Scalars['Int']['output']>;\n  readonly youtubeVideoId?: Maybe<Scalars['String']['output']>;\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\nexport type ShareAndEarn = {\n  readonly __typename?: 'ShareAndEarn';\n  /** Frequently Asked Questions section */\n  readonly faqSection?: Maybe<ShareAndEarnFaqSection>;\n  /** How it works section */\n  readonly howItWorksSection?: Maybe<ShareAndEarnHowItWorksSection>;\n  /** Personal code edit page */\n  readonly personalCodeEditPage?: Maybe<ShareAndEarnPersonalCodeEditPage>;\n  /** Personal links content */\n  readonly personalLinksContent?: Maybe<ShareAndEarnPersonalLinks>;\n  /** Share and earn section */\n  readonly shareAndEarnSection?: Maybe<ShareAndEarnShareSection>;\n  /** Sharing conditions */\n  readonly sharingConditions?: Maybe<ShareAndEarnConditions>;\n  /** Top section */\n  readonly topSection?: Maybe<ShareAndEarnTopSection>;\n};\n\nexport type ShareAndEarnConditionItem = {\n  readonly __typename?: 'ShareAndEarnConditionItem';\n  /** Condition text */\n  readonly lines?: Maybe<ReadonlyArray<Maybe<Scalars['String']['output']>>>;\n  /** Condition title */\n  readonly title?: Maybe<Scalars['String']['output']>;\n};\n\nexport type ShareAndEarnConditions = {\n  readonly __typename?: 'ShareAndEarnConditions';\n  /** Condition collection */\n  readonly collection?: Maybe<ReadonlyArray<Maybe<ShareAndEarnConditionItem>>>;\n  /** Conditions headline */\n  readonly headline?: Maybe<Scalars['String']['output']>;\n};\n\nexport type ShareAndEarnFaqItem = {\n  readonly __typename?: 'ShareAndEarnFaqItem';\n  /** Content */\n  readonly content?: Maybe<ReadonlyArray<Maybe<Scalars['String']['output']>>>;\n  /** Title */\n  readonly title?: Maybe<Scalars['String']['output']>;\n};\n\nexport type ShareAndEarnFaqSection = {\n  readonly __typename?: 'ShareAndEarnFaqSection';\n  /** Collection of FAQ items */\n  readonly collection?: Maybe<ReadonlyArray<Maybe<ShareAndEarnFaqItem>>>;\n  /** Headline of the section */\n  readonly headline?: Maybe<Scalars['String']['output']>;\n};\n\nexport type ShareAndEarnHowItWorksSection = {\n  readonly __typename?: 'ShareAndEarnHowItWorksSection';\n  /** Conditions link title */\n  readonly conditionsLinkTitle?: Maybe<Scalars['String']['output']>;\n  /** Earn description */\n  readonly earnDescription?: Maybe<Scalars['String']['output']>;\n  /** Earn title */\n  readonly earnTitle?: Maybe<Scalars['String']['output']>;\n  /** Headline */\n  readonly headline?: Maybe<Scalars['String']['output']>;\n  /** Invite description */\n  readonly inviteDescription?: Maybe<Scalars['String']['output']>;\n  /** Invite title */\n  readonly inviteTitle?: Maybe<Scalars['String']['output']>;\n  /** Share description */\n  readonly shareDescription?: Maybe<Scalars['String']['output']>;\n  /** Share title */\n  readonly shareTitle?: Maybe<Scalars['String']['output']>;\n};\n\nexport type ShareAndEarnPersonalCodeEditPage = {\n  readonly __typename?: 'ShareAndEarnPersonalCodeEditPage';\n  /** Button applied label */\n  readonly buttonAppliedLabel?: Maybe<Scalars['String']['output']>;\n  /** Button cancel label */\n  readonly buttonCancelLabel?: Maybe<Scalars['String']['output']>;\n  /** Button change label */\n  readonly buttonChangeLabel?: Maybe<Scalars['String']['output']>;\n  /** Description */\n  readonly description?: Maybe<Scalars['String']['output']>;\n  /** Headline */\n  readonly headline?: Maybe<Scalars['String']['output']>;\n  /** Invalid code message */\n  readonly invalidCodeMessage?: Maybe<Scalars['String']['output']>;\n  /** Your code label */\n  readonly yourCodeLabel?: Maybe<Scalars['String']['output']>;\n};\n\nexport type ShareAndEarnPersonalLinks = {\n  readonly __typename?: 'ShareAndEarnPersonalLinks';\n  /** Copy label */\n  readonly copyLabel?: Maybe<Scalars['String']['output']>;\n  /** Description */\n  readonly description?: Maybe<Scalars['String']['output']>;\n  /** Instructions */\n  readonly instructions?: Maybe<Scalars['String']['output']>;\n  /** Links */\n  readonly links?: Maybe<ReadonlyArray<Maybe<SharingLink>>>;\n  /** Title */\n  readonly title?: Maybe<Scalars['String']['output']>;\n};\n\nexport type ShareAndEarnShareSection = {\n  readonly __typename?: 'ShareAndEarnShareSection';\n  /** Description */\n  readonly description?: Maybe<Scalars['String']['output']>;\n  /** Headline */\n  readonly headline?: Maybe<Scalars['String']['output']>;\n  /** Sharing card */\n  readonly sharingCard?: Maybe<SharingCard>;\n};\n\nexport type ShareAndEarnTopSection = {\n  readonly __typename?: 'ShareAndEarnTopSection';\n  /** Top section description */\n  readonly description?: Maybe<Scalars['String']['output']>;\n  /** Top section headline */\n  readonly headline?: Maybe<Scalars['String']['output']>;\n};\n\nexport type ShareAndEarnUpdatePersonalCodeInput = {\n  /** The customer ID of the customer who wants to update the personal code. */\n  readonly customerId?: InputMaybe<Scalars['String']['input']>;\n  /** The new personal code */\n  readonly newPersonalCode?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type SharedAddress = {\n  readonly __typename?: 'SharedAddress';\n  readonly addressId: Scalars['ID']['output'];\n  readonly area?: Maybe<Scalars['String']['output']>;\n  readonly city?: Maybe<Scalars['String']['output']>;\n  readonly country?: Maybe<Scalars['String']['output']>;\n  readonly district?: Maybe<Scalars['String']['output']>;\n  readonly locality?: Maybe<Scalars['String']['output']>;\n  readonly province?: Maybe<Scalars['String']['output']>;\n  readonly region?: Maybe<Scalars['String']['output']>;\n  readonly streetAddress?: Maybe<Scalars['String']['output']>;\n  readonly zipcode?: Maybe<Scalars['String']['output']>;\n};\n\nexport type SharingCard = {\n  readonly __typename?: 'SharingCard';\n  /** From label */\n  readonly fromLabel?: Maybe<Scalars['String']['output']>;\n  /** Headline */\n  readonly headline?: Maybe<Scalars['String']['output']>;\n  /** Text */\n  readonly text?: Maybe<Scalars['String']['output']>;\n  /** Use code label */\n  readonly useCodeLabel?: Maybe<Scalars['String']['output']>;\n};\n\nexport type SharingLink = {\n  readonly __typename?: 'SharingLink';\n  /** Link definition */\n  readonly link?: Maybe<Link>;\n  /** Link tooltip */\n  readonly tooltip?: Maybe<Scalars['String']['output']>;\n};\n\nexport type SharingLinks = {\n  readonly __typename?: 'SharingLinks';\n  /** Link to the current digital catalogue */\n  readonly currentCatalogue: Link;\n  readonly otherCatalogue: Link;\n};\n\n\nexport type SharingLinksCurrentCatalogueArgs = {\n  pageNumber?: InputMaybe<Scalars['Int']['input']>;\n  title?: InputMaybe<Scalars['String']['input']>;\n};\n\n\nexport type SharingLinksOtherCatalogueArgs = {\n  catalogueId: Scalars['String']['input'];\n  pageNumber?: InputMaybe<Scalars['Int']['input']>;\n};\n\n/** Shopping query root */\nexport type Shopping = {\n  readonly __typename?: 'Shopping';\n  /** The get delivery channel. */\n  readonly deliveryChannel?: Maybe<DeliveryChannel>;\n  /** The get shopping session. */\n  readonly shoppingSession?: Maybe<ShoppingSession>;\n};\n\n\n/** Shopping query root */\nexport type ShoppingDeliveryChannelArgs = {\n  deliveryChannelId: Scalars['Long']['input'];\n};\n\n\n/** Shopping query root */\nexport type ShoppingShoppingSessionArgs = {\n  sessionId?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type ShoppingSession = {\n  readonly __typename?: 'ShoppingSession';\n  /** For who the order is going to be placed */\n  readonly customerId: Scalars['Long']['output'];\n  /** The get selected delivery channel and addresses. */\n  readonly delivery?: Maybe<DeliverySelectionSummary>;\n  /** Find available pick-up points based on search criteria. */\n  readonly deliveryChannels?: Maybe<PickupPoints>;\n  /** Find available delivery options. */\n  readonly deliveryOptions?: Maybe<DeliveryOptions>;\n  /** Shopping by not authorized person */\n  readonly isAnonymous: Scalars['Boolean']['output'];\n  readonly isShoppingBlocked: Scalars['Boolean']['output'];\n  /** VIP shopping (guarantee order on behalf of consultant) */\n  readonly isVip: Scalars['Boolean']['output'];\n  /** Channel used for placing order */\n  readonly origin: OrderOrigin;\n  /** The shopping session id */\n  readonly sessionId: Scalars['ID']['output'];\n};\n\n\nexport type ShoppingSessionDeliveryChannelsArgs = {\n  deliveryMethod?: InputMaybe<DeliveryMethodType>;\n  latitude?: InputMaybe<Scalars['Float']['input']>;\n  longitude?: InputMaybe<Scalars['Float']['input']>;\n  radius?: InputMaybe<Scalars['Float']['input']>;\n  searchFilter?: InputMaybe<PickupSearchFilter>;\n  searchTerm?: InputMaybe<Scalars['String']['input']>;\n  skip?: Scalars['Int']['input'];\n  top?: Scalars['Int']['input'];\n};\n\n\nexport type ShoppingSessionDeliveryOptionsArgs = {\n  filter?: DeliverySearchFilter;\n  skip?: Scalars['Int']['input'];\n  top?: Scalars['Int']['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\nexport type SizedImage = {\n  readonly __typename?: 'SizedImage';\n  /** Url of the image */\n  readonly url?: Maybe<Scalars['String']['output']>;\n  /** Width of the image */\n  readonly width?: Maybe<Scalars['Int']['output']>;\n};\n\nexport type SocialContact = {\n  readonly __typename?: 'SocialContact';\n  /** Type of contact, eg. phone, WhatsUp, Facebook ... */\n  readonly type?: Maybe<SocialContactType>;\n  /** Social contact value */\n  readonly value?: Maybe<Scalars['String']['output']>;\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\nexport type SocialMediaLinks = {\n  readonly __typename?: 'SocialMediaLinks';\n  /** Social Media Link Title */\n  readonly title?: Maybe<Scalars['String']['output']>;\n  /** Social Media type */\n  readonly type?: Maybe<SocialMediaType>;\n  /** Social Media Link url */\n  readonly url?: Maybe<Scalars['String']['output']>;\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 = '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\nexport type Sponsor = {\n  readonly __typename?: 'Sponsor';\n  /** Consultant number of sponsor */\n  readonly consultantNumber?: Maybe<Scalars['Int']['output']>;\n  /** Customer ID of sponsor */\n  readonly customerId?: Maybe<Scalars['Int']['output']>;\n  /** The get customer emails. */\n  readonly emails?: Maybe<ReadonlyArray<Maybe<Email>>>;\n  /** Full name (formatted) of sponsor */\n  readonly fullName?: Maybe<Scalars['String']['output']>;\n  /** The get customer phones. */\n  readonly phones?: Maybe<ReadonlyArray<Maybe<Phone>>>;\n  /** The get profile image. */\n  readonly profileImage?: Maybe<DocumentInfo>;\n  /** Type of sponsor (relation to customer). */\n  readonly sponsorType?: Maybe<SponsorType>;\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  /** Extra colors/palette.common.white */\n  CommonWhite = 'CommonWhite',\n  /** Palette - Main colors/palette.default.contrastText */\n  DefaultContrastText = 'DefaultContrastText',\n  /** Palette - Main colors/palette.default.main */\n  DefaultMain = 'DefaultMain',\n  /** Shades/palette.green[50] */\n  Green50 = 'Green50',\n  /** Shades/palette.green[200] */\n  Green200 = 'Green200',\n  /** Shades/palette.green[400] */\n  Green400 = 'Green400',\n  /** Shades/palette.grey[50] */\n  Grey50 = 'Grey50',\n  /** Shades/palette.grey[100] */\n  Grey100 = 'Grey100',\n  /** Shades/palette.grey[700] */\n  Grey700 = 'Grey700',\n  /** Shades/palette.grey[900] */\n  Grey900 = 'Grey900',\n  /** InfoDark */\n  InfoDark = 'InfoDark',\n  /** Shades/palette.pink[50] */\n  Pink50 = 'Pink50',\n  /** Shades/palette.pink[300] */\n  Pink300 = 'Pink300',\n  /** Palette - Main colors/palette.default.primarycontrastText */\n  PrimaryContrastText = 'PrimaryContrastText',\n  /** PrimaryLight */\n  PrimaryLight = 'PrimaryLight',\n  /** Palette - Main colors/palette.default.primarymain */\n  PrimaryMain = 'PrimaryMain',\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.default.secondaryContrastText */\n  SecondaryContrastText = 'SecondaryContrastText',\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\nexport type SubmitDialogNewsletterSubsciptionConfiguration = {\n  readonly __typename?: 'SubmitDialogNewsletterSubsciptionConfiguration';\n  /** EmailLabel */\n  readonly emailLabel?: Maybe<Scalars['String']['output']>;\n  /** Headline */\n  readonly headline?: Maybe<Scalars['String']['output']>;\n  /** InvalidEmailLabel */\n  readonly invalidEmailLabel?: Maybe<Scalars['String']['output']>;\n  /** PrivacyPolicyText */\n  readonly privacyPolicyText?: Maybe<Scalars['String']['output']>;\n  /** PrivacyPolicyUrl */\n  readonly privacyPolicyUrl?: Maybe<Scalars['String']['output']>;\n  /** PrivacyPolicyUrlText */\n  readonly privacyPolicyUrlText?: Maybe<Scalars['String']['output']>;\n  /** SubscribeButtonText */\n  readonly subscribeButtonText?: Maybe<Scalars['String']['output']>;\n  /** Text */\n  readonly text?: Maybe<Scalars['String']['output']>;\n};\n\nexport type SubscribedDialogNewsletterSubsciptionConfiguration = {\n  readonly __typename?: 'SubscribedDialogNewsletterSubsciptionConfiguration';\n  /** Headline */\n  readonly headline?: Maybe<Scalars['String']['output']>;\n  /** Text */\n  readonly text?: Maybe<Scalars['String']['output']>;\n};\n\n/** Subscription query root */\nexport type Subscribing = {\n  readonly __typename?: 'Subscribing';\n  /** The get personal subscriptions of customer. */\n  readonly personalSubscriptions?: Maybe<PersonalSubscriptions>;\n};\n\n\n/** Subscription query root */\nexport type SubscribingPersonalSubscriptionsArgs = {\n  customerId: Scalars['Long']['input'];\n  isActive?: Scalars['Boolean']['input'];\n  skip?: Scalars['Int']['input'];\n  top?: Scalars['Int']['input'];\n};\n\nexport type Subscription = {\n  readonly __typename?: 'Subscription';\n  /** Allowed subscription frequency possibilities */\n  readonly allowedFrequencies?: Maybe<ReadonlyArray<Scalars['Int']['output']>>;\n  /** Indicator if subscription is available */\n  readonly available: Scalars['Boolean']['output'];\n  /** Default frequency of product subscription */\n  readonly frequency: Scalars['Int']['output'];\n};\n\nexport type SubscriptionBenefitBanner = {\n  readonly __typename?: 'SubscriptionBenefitBanner';\n  /** Banner message */\n  readonly message?: Maybe<Scalars['String']['output']>;\n  /** Link to read more information on subscriptions */\n  readonly readMoreLink?: Maybe<Link>;\n  /** Link to register new customer */\n  readonly registerLink?: Maybe<Link>;\n  /** Link to sign in existing customer */\n  readonly signInLink?: Maybe<Link>;\n  /** Banner title */\n  readonly title?: Maybe<Scalars['String']['output']>;\n};\n\nexport type SubscriptionProfile = {\n  readonly __typename?: 'SubscriptionProfile';\n  /** Delivery channel assigned to the subscription. */\n  readonly address?: Maybe<DeliveryAddress>;\n  /** Home delivery address */\n  readonly addressId?: Maybe<Scalars['Long']['output']>;\n  /** Subscription owner */\n  readonly customerId: Scalars['Long']['output'];\n  /** Delivery channel assigned to the subscription. */\n  readonly deliveryChannel?: Maybe<DeliveryChannel>;\n  /** Delivery channel */\n  readonly deliveryChannelId: Scalars['Long']['output'];\n  /** Recurring payment provider */\n  readonly paymentProviderId: Scalars['Long']['output'];\n};\n\nexport type Tag = {\n  readonly __typename?: 'Tag';\n  /** Tag group */\n  readonly groupName?: Maybe<Scalars['String']['output']>;\n  /** Taxonomy tag group name */\n  readonly name?: Maybe<Scalars['String']['output']>;\n  /** Collection of tags */\n  readonly tags?: Maybe<ReadonlyArray<Maybe<TagValue>>>;\n  /** Tag group translation */\n  readonly translation?: Maybe<Scalars['String']['output']>;\n};\n\nexport type TagValue = {\n  readonly __typename?: 'TagValue';\n  /** Value of a tag */\n  readonly value?: Maybe<Scalars['String']['output']>;\n};\n\nexport type TaxClassification = {\n  readonly __typename?: 'TaxClassification';\n  /** Entrepreneur tax related documents including historical */\n  readonly entrepreneurDocuments?: Maybe<ReadonlyArray<Maybe<TaxClassificationDocument>>>;\n  /** Indicates whether customer is entrepreneur */\n  readonly isEntrepreneur?: Maybe<Scalars['Boolean']['output']>;\n  /** Indicates whether customer is physical person */\n  readonly isPhysicalPerson?: Maybe<Scalars['Boolean']['output']>;\n  /** Indicates whether customer is vat payer */\n  readonly isVatPayer?: Maybe<Scalars['Boolean']['output']>;\n  /** Physical person tax related documents including historical */\n  readonly physicalPersonDocuments?: Maybe<ReadonlyArray<Maybe<TaxClassificationDocument>>>;\n  /** Vat payer related documents including historical */\n  readonly vatPayerDocuments?: Maybe<ReadonlyArray<Maybe<TaxClassificationDocument>>>;\n};\n\nexport type TaxClassificationDocument = {\n  readonly __typename?: 'TaxClassificationDocument';\n  /** Company name */\n  readonly companyName?: Maybe<Scalars['String']['output']>;\n  /** Document number */\n  readonly documentNumber?: Maybe<Scalars['String']['output']>;\n  /** Whether document is valid and used (e.g. not deleted by operator) */\n  readonly isActive?: Maybe<Scalars['Boolean']['output']>;\n  /** Issue Date */\n  readonly issueDate?: Maybe<Scalars['DateTime']['output']>;\n  /** ID of tax classification */\n  readonly taxClassificationId: Scalars['ID']['output'];\n  /** Validity of document - start */\n  readonly validFrom?: Maybe<Scalars['DateTime']['output']>;\n  /** Validity of document - end */\n  readonly validTo?: Maybe<Scalars['DateTime']['output']>;\n};\n\n/** Enum telephone type */\nexport enum TelephoneType {\n  Business = 'Business',\n  Fax = 'Fax',\n  Home = 'Home',\n  Mobile = 'Mobile'\n}\n\nexport type TestFreaksConfiguration = {\n  readonly __typename?: 'TestFreaksConfiguration';\n  readonly scriptUrl?: Maybe<Scalars['String']['output']>;\n};\n\nexport type TimeGuarantees = {\n  readonly __typename?: 'TimeGuarantees';\n  /** Delivery duration text */\n  readonly deliveryDurationText?: Maybe<Scalars['String']['output']>;\n  /** More info link */\n  readonly moreInfoLink?: Maybe<Link>;\n};\n\nexport type TopBrands = {\n  readonly __typename?: 'TopBrands';\n  /** Brands displayed in the section */\n  readonly brands?: Maybe<ReadonlyArray<Maybe<Brand>>>;\n  /** Section's title */\n  readonly title?: Maybe<Scalars['String']['output']>;\n};\n\nexport enum TrackingStatus {\n  Cancel = 'Cancel',\n  CourierHandover = 'CourierHandover',\n  CourierTakeover = 'CourierTakeover',\n  Create = 'Create',\n  Deliver = 'Deliver',\n  EstimatedDelivery = 'EstimatedDelivery',\n  HandoverFailed = 'HandoverFailed',\n  OutForDelivery = 'OutForDelivery',\n  Pick = 'Pick',\n  PickedUpBy = 'PickedUpBy',\n  Print = 'Print',\n  ReadyForPickup = 'ReadyForPickup',\n  ReturnedToSender = 'ReturnedToSender',\n  Ship = 'Ship',\n  TakenByCourier = 'TakenByCourier',\n  ToBeReturnedToSender = 'ToBeReturnedToSender',\n  Unknown = 'Unknown'\n}\n\n/** Content vertical alignment */\nexport enum VerticalContentAlignment {\n  Bottom = 'Bottom',\n  Middle = 'Middle',\n  Top = 'Top',\n  Undefined = 'Undefined'\n}\n\nexport type Video = {\n  readonly __typename?: 'Video';\n  /** Flag indicating if video should be automatcially played on scroll */\n  readonly autoplayOnScroll?: Maybe<Scalars['Boolean']['output']>;\n  /** Video's id */\n  readonly id?: Maybe<Scalars['String']['output']>;\n  /** Flag indicating if video should be played in a loop */\n  readonly playInLoop?: Maybe<Scalars['Boolean']['output']>;\n  /** Type of the video */\n  readonly type?: Maybe<VideoType>;\n};\n\nexport type VideoShow = {\n  readonly __typename?: 'VideoShow';\n  /** Duration of show in sec. */\n  readonly durationSeconds?: Maybe<Scalars['Int']['output']>;\n  /** Time when show was ended */\n  readonly endedAtUtc?: Maybe<Scalars['DateTime']['output']>;\n  /** Identifying show which should be displayed in banner */\n  readonly isCurrent?: Maybe<Scalars['Boolean']['output']>;\n  /** Preview image of show */\n  readonly previewImageUrl?: Maybe<Scalars['String']['output']>;\n  /** Scheduled start of show */\n  readonly scheduledStartAtUtc?: Maybe<Scalars['DateTime']['output']>;\n  /** Id of show */\n  readonly showId: Scalars['ID']['output'];\n  /** Real time of show start */\n  readonly startedAtUtc?: Maybe<Scalars['DateTime']['output']>;\n  /** Show title */\n  readonly title?: Maybe<Scalars['String']['output']>;\n  /** Type of show */\n  readonly typeOfShow?: Maybe<ShowType>;\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\nexport type VipBenefits = {\n  readonly __typename?: 'VipBenefits';\n  /** Collection of images displayed in VIP Benefits section on the Frontpage */\n  readonly images?: Maybe<ReadonlyArray<Maybe<FrontPageImage>>>;\n  /** Link of VIP Benefits section */\n  readonly link?: Maybe<Link>;\n};\n\nexport type VipCustomerBanner = {\n  readonly __typename?: 'VipCustomerBanner';\n  /** Vip Customer Banner link title */\n  readonly linkTitle?: Maybe<Scalars['String']['output']>;\n  /** Vip Customer Banner link url */\n  readonly linkUrl?: Maybe<Scalars['String']['output']>;\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\nexport type WellnessClub = {\n  readonly __typename?: 'WellnessClub';\n  /** Wellness club banners */\n  readonly banners?: Maybe<WellnessClubBanners>;\n  /** Wellness Club configuration */\n  readonly configuration?: Maybe<WellnessClubConfiguration>;\n  /** Wellness Club localization */\n  readonly localization?: Maybe<WellnessClubLocalization>;\n};\n\nexport type WellnessClubBanners = {\n  readonly __typename?: 'WellnessClubBanners';\n  /** Daily wellnessbeing banner */\n  readonly dailyWellbeingBannerUrl?: Maybe<Scalars['String']['output']>;\n  /** Wellness club main banner */\n  readonly mainBannerUrl?: Maybe<Scalars['String']['output']>;\n  /** Sport track banner */\n  readonly sportBannerUrl?: Maybe<Scalars['String']['output']>;\n  /** Weight management banner */\n  readonly weightManagementBannerUrl?: Maybe<Scalars['String']['output']>;\n};\n\nexport type WellnessClubConfiguration = {\n  readonly __typename?: 'WellnessClubConfiguration';\n  /** Get certification page url */\n  readonly certifiedUrl?: Maybe<Scalars['String']['output']>;\n  /** Is club members management enabled */\n  readonly isClubMembersManagementEnabled?: Maybe<Scalars['Boolean']['output']>;\n  /** Is daily wellnessbeing track enabled */\n  readonly isDailyWellbeingTrackEnabled?: Maybe<Scalars['Boolean']['output']>;\n  /** Is wellness club enabled */\n  readonly isEnabled?: Maybe<Scalars['Boolean']['output']>;\n  /** Is sports track enabled */\n  readonly isSportsTrackEnabled?: Maybe<Scalars['Boolean']['output']>;\n  /** Is weight management track enabled */\n  readonly isWeightManagementTrackEnabled?: Maybe<Scalars['Boolean']['output']>;\n};\n\nexport type WellnessClubLocalization = {\n  readonly __typename?: 'WellnessClubLocalization';\n  readonly contents?: Maybe<Scalars['JSON']['output']>;\n  readonly cultures?: Maybe<Scalars['JSON']['output']>;\n  /** Default language */\n  readonly defaultLanguage?: Maybe<Scalars['String']['output']>;\n  readonly translations?: Maybe<Scalars['JSON']['output']>;\n};\n\nexport type WhatsNewBanner = {\n  readonly __typename?: 'WhatsNewBanner';\n  /** Background color */\n  readonly backgroundColor?: Maybe<Scalars['String']['output']>;\n  /** Font color -eg. red, grey */\n  readonly fontColor?: Maybe<Scalars['String']['output']>;\n  /** Headline of the banner */\n  readonly headline?: Maybe<Scalars['String']['output']>;\n  /** Image url of the banner */\n  readonly imageUrl?: Maybe<Scalars['String']['output']>;\n  /** Link type, attributes and Id */\n  readonly link?: Maybe<Link>;\n  /** Mobile font color -eg. red, grey */\n  readonly mobileFontColor?: Maybe<Scalars['String']['output']>;\n  /** Banner Validity date from */\n  readonly validFrom?: Maybe<Scalars['DateTime']['output']>;\n  /** Banner validity date to */\n  readonly validTo?: Maybe<Scalars['DateTime']['output']>;\n};\n","import { PermanentTopBannerType } from '../../../models/graphql-types/net';\n\nexport const MY_PAGES_REGEX = /^\\/([A-Za-z]{2}\\/)?mypages(\\/.*|\\?.*)?$/;\nexport const CHECKOUT_REGEX = /^\\/([A-Za-z]{2}\\/)?shopping\\/basket(\\/.*|\\?.*)?$/;\n\nexport const getTopAreaBannerType = (\n  pathname: string | null,\n  isAnonymousWithStore?: boolean,\n): PermanentTopBannerType | null => {\n  if (pathname === null) {\n    return null;\n  }\n  if (MY_PAGES_REGEX.test(pathname)) {\n    return PermanentTopBannerType.MyPages;\n  }\n\n  if (CHECKOUT_REGEX.test(pathname)) {\n    return PermanentTopBannerType.Checkout;\n  }\n\n  if (isAnonymousWithStore) {\n    return PermanentTopBannerType.PublicPageWithReferral;\n  }\n\n  return PermanentTopBannerType.PublicPage;\n};\n","/* istanbul ignore file -- constants file */\nexport const CONSULTANT_NUMBER_QUERY_PARAM_KEY = 'chPwdUsr';\n\nexport const RETURN_URL_QUERY_PARAM_KEY = 'returnUrl';\n\nexport const INVITATION_OFFER_HASH = '#open-invitation-offer';\n","import type { StaticApplicationsBannersBffPermanentTopAreaBannerPermanentTopAreaBannersGqlDto } from '@ori/static-api-client-react';\nimport { isNonNullable } from '@ori/ts-utils';\n\nimport type { BannersCarouselItem } from '../components/TopAreaBanner/components';\nimport { INVITATION_OFFER_HASH } from '../constants';\nimport { sanitizeKey } from './sanitizeKey';\n\ninterface MapTopAreaBannersParams {\n  data: StaticApplicationsBannersBffPermanentTopAreaBannerPermanentTopAreaBannersGqlDto['data'];\n}\nexport const mapTopAreaBanners = ({ data }: MapTopAreaBannersParams): BannersCarouselItem[] | undefined => {\n  if (!data?.application?.permanentTopBanners) {\n    return undefined;\n  }\n  const { permanentTopBanners } = data.application;\n\n  return permanentTopBanners\n    .filter(isNonNullable)\n    .filter((banner) => banner.message ?? banner.link?.relativeUrl)\n    .map((banner) => ({\n      title: banner.message ?? '',\n      shouldOpenInvitationOffer: banner.link?.relativeUrl === INVITATION_OFFER_HASH,\n      url: sanitizeKey(banner.link?.relativeUrl ?? ''),\n    }));\n};\n","export const sanitizeKey = (key: string) => (key.startsWith('#') ? key.slice(1) : key);\n","/* istanbul ignore file -- api file */\nimport { useEnvironment } from '@ori/environment';\nimport { useLanguage } from '@ori/i18n';\nimport { useUserSegmentationData } from '@ori/presentation-http';\nimport { useGetTenantApplicationsBannerEnrichedPermanentTopAreaBanners } from '@ori/static-api-client-react';\n\nimport { useAppConfig } from '../context/configurationContext';\nimport { PermanentTopBannerType } from '../models/graphql-types/net';\nimport { mapTopAreaBanners } from '../utils/mapTopAreaBanners';\n\ninterface ShouldSkipTopAreaBannersFetchParams {\n  enableTopAreaBanner?: boolean;\n  loadingSegmentationData: boolean;\n  orderOnBehalfVisible: boolean;\n  bannerType: PermanentTopBannerType | null;\n}\n\nexport const shouldSkipTopAreaBannersFetch = ({\n  enableTopAreaBanner,\n  loadingSegmentationData,\n  orderOnBehalfVisible,\n  bannerType,\n}: ShouldSkipTopAreaBannersFetchParams): boolean =>\n  loadingSegmentationData || orderOnBehalfVisible || !enableTopAreaBanner || bannerType === null;\n\ninterface UseGetTopAreaBannersParams {\n  bannerType: PermanentTopBannerType | null;\n  orderOnBehalfVisible: boolean;\n}\nexport const useGetTopAreaBanners = ({ bannerType, orderOnBehalfVisible }: UseGetTopAreaBannersParams) => {\n  const { tenant } = useEnvironment();\n  const { language } = useLanguage();\n  const { loading: loadingSegmentationData, customerTypeId } = useUserSegmentationData();\n  const { enableTopAreaBanner } = useAppConfig();\n\n  const {\n    isValidating: loading,\n    error: apiError,\n    data,\n  } = useGetTenantApplicationsBannerEnrichedPermanentTopAreaBanners(\n    tenant,\n    {\n      bannerType: bannerType ?? PermanentTopBannerType.PublicPage,\n      customerTypeId: customerTypeId ?? undefined,\n      lang: language,\n    },\n    {\n      swr: {\n        enabled: !shouldSkipTopAreaBannersFetch({\n          enableTopAreaBanner,\n          loadingSegmentationData,\n          orderOnBehalfVisible,\n          bannerType,\n        }),\n        revalidateOnFocus: false,\n        revalidateOnReconnect: false,\n        revalidateIfStale: false,\n      },\n    },\n  );\n\n  return {\n    bannersData: data && bannerType !== null ? mapTopAreaBanners({ data: data.data }) : undefined,\n    error: apiError,\n    loading,\n  };\n};\n","/* istanbul ignore file -- just a list of URLs */\nexport const vipOrderUrls = {\n  access: '/system/ajax/stickybar/VipAccessJson',\n  accessConsultant: (consultantNumber: string) =>\n    `/system/ajax/VipShopping/AccessConsultant?consultantNumber=${consultantNumber}`,\n  accessSwitch: (consultantNumber: number) =>\n    `/system/ajax/StickyBar/VipAccessSwitch?ConsultantNumber=${consultantNumber}`,\n  accessSwitchValidate: (consultantNumber: string) =>\n    `/system/ajax/StickyBar/VipAccessSwitchValidate?ajaxId=69&related%5BConsultantNumber%5D=${consultantNumber}&activeInput=ConsultantNumber&ConsultantNumber=${consultantNumber}`,\n  basket: '/shopping/basket',\n  consultantNumbers: (hint: string) => `/system/ajax/VipShopping/GetConsultantNumbers?hint=${hint}`,\n};\n","// istanbul ignore file -- needs to be refactored with whole OOB\nimport { useToken } from '@ori/auth';\nimport { axios } from '@ori/axios';\nimport { useSWR } from '@ori/fetching';\nimport { useGetApplicationsNavigationCustomerInfo } from '@ori/global-api-client-react';\nimport { getRetryErrorSwrOptions } from '@ori/presentation-utils';\nimport type { FC, PropsWithChildren } from 'react';\nimport { createContext, useContext, useMemo } 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<ConsultantContext>({\n  loadingVipAccess: true,\n});\n\nconst { Provider } = consultantContext;\n\nexport const ConsultantProvider: FC<PropsWithChildren> = ({ children }) => {\n  const { consultantNumber, consultantType } = useAppConfig();\n  const { customerId, isAnonymousUser, isUserVerified } = useToken();\n  const { data } = useGetApplicationsNavigationCustomerInfo(customerId.toString(), undefined, {\n    swr: {\n      ...getRetryErrorSwrOptions(),\n      enabled: isUserVerified && !isAnonymousUser,\n    },\n  });\n  const { data: vipAccess, error } = useSWR<VipAccessResponse, Error>(\n    vipOrderUrls.access,\n    async () =>\n      axios\n        .get<VipAccessResponse>(vipOrderUrls.access, { baseURL: window.location.origin })\n        .then((response) => response.data),\n    { revalidateIfStale: false, revalidateOnFocus: false, revalidateOnReconnect: false },\n  );\n  const loadingVipAccess = vipAccess === undefined && error === undefined;\n  const value = useMemo<ConsultantContext>(\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 <Provider value={value}>{children}</Provider>;\n};\n\nexport const useConsultant = () => useContext(consultantContext);\n","import type { BannersCarouselItem } from '../../components/TopAreaBanner/components/BannersCarousel/types';\nimport type { VipAccessResponse } from '../../models';\n\ninterface IsLoadingParams {\n  topBannerVisible: boolean;\n  isAnonymousWithStore: boolean;\n  loadingVipAccess: boolean;\n  orderOnBehalfVisible: boolean;\n  isLoadingTopBanner: boolean;\n}\n\nexport const isLoading = ({\n  isAnonymousWithStore,\n  loadingVipAccess,\n  orderOnBehalfVisible,\n  topBannerVisible,\n  isLoadingTopBanner,\n}: IsLoadingParams): boolean =>\n  loadingVipAccess ||\n  (!isAnonymousWithStore && !orderOnBehalfVisible && !topBannerVisible) ||\n  // isLoadingTopBanner could be deleted when all markets are migrated to the new banners\n  (isAnonymousWithStore && isLoadingTopBanner && !topBannerVisible);\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\nexport const isTopAreaBannerVisible = (bannersData: BannersCarouselItem[] | undefined): boolean =>\n  !!bannersData && bannersData.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 { useCookieStoreInfo } from '@ori/personal-beauty-store';\nimport { isSSR } from '@ori/presentation-utils';\nimport type { FC, PropsWithChildren } from 'react';\nimport { createContext, useContext, useMemo } from 'react';\n\nimport type { BannersCarouselItem } from '../../components/TopAreaBanner/components/BannersCarousel/types';\nimport { getTopAreaBannerType } from '../../components/TopAreaBanner/utils';\nimport { useGetTopAreaBanners } from '../../hooks/useGetTopAreaBanners';\nimport type { VipAccessResponse } from '../../models';\nimport { useAppConfig } from '../configurationContext';\nimport { useConsultant } from '../consultantContext';\nimport { isLoading, isOrderOnBehalfVisible, isTopAreaBannerVisible } from './utils';\n\nexport interface TopAreaBannerContext {\n  bannersData: BannersCarouselItem[] | undefined;\n  isAnonymousWithStore: boolean;\n  isOrderOnBehalfVisible: boolean;\n  loading: boolean;\n  orderOnBehalfData: VipAccessResponse | undefined;\n  visible: boolean;\n}\n\nconst defaultTopAreaBannerContextValue: TopAreaBannerContext = {\n  bannersData: undefined,\n  isAnonymousWithStore: false,\n  isOrderOnBehalfVisible: false,\n  loading: true,\n  orderOnBehalfData: undefined,\n  visible: false,\n};\n\nexport const topAreaBannerContext = createContext<TopAreaBannerContext>(defaultTopAreaBannerContextValue);\n\nconst { Provider } = topAreaBannerContext;\n\nexport const TopAreaBannerProvider: FC<PropsWithChildren> = ({ children }) => {\n  const { owner: store } = useCookieStoreInfo();\n  const { loadingVipAccess, vipAccess: orderOnBehalfData } = useConsultant();\n  const { enableTopAreaBanner } = useAppConfig();\n  const { isAnonymousUser } = useToken();\n  const isAnonymousWithStore = useMemo(() => isAnonymousUser && !!store, [isAnonymousUser, store]);\n  const shouldGetBannerType = !isSSR() && enableTopAreaBanner;\n  const bannerType = useMemo(\n    () => (shouldGetBannerType ? getTopAreaBannerType(window.location.pathname, isAnonymousWithStore) : null),\n    [isAnonymousWithStore, shouldGetBannerType],\n  );\n  /**\n   * VipAccessData can be defined but can arrive with empty key properties.\n   */\n  const orderOnBehalfVisible = useMemo(() => isOrderOnBehalfVisible(orderOnBehalfData), [orderOnBehalfData]);\n  const { bannersData, loading: isLoadingTopBanner } = useGetTopAreaBanners({\n    bannerType,\n    orderOnBehalfVisible,\n  });\n  const topBannerVisible = useMemo(() => isTopAreaBannerVisible(bannersData), [bannersData]);\n\n  const visible = orderOnBehalfVisible || Boolean(enableTopAreaBanner);\n\n  return (\n    <Provider\n      value={useMemo<TopAreaBannerContext>(\n        () => ({\n          bannersData,\n          isAnonymousWithStore,\n          isOrderOnBehalfVisible: orderOnBehalfVisible,\n          loading: isLoading({\n            isLoadingTopBanner,\n            topBannerVisible,\n            isAnonymousWithStore,\n            loadingVipAccess,\n            orderOnBehalfVisible,\n          }),\n          orderOnBehalfData,\n          visible,\n        }),\n        [\n          bannersData,\n          isAnonymousWithStore,\n          isLoadingTopBanner,\n          loadingVipAccess,\n          orderOnBehalfData,\n          orderOnBehalfVisible,\n          topBannerVisible,\n          visible,\n        ],\n      )}\n    >\n      {children}\n    </Provider>\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\nexport interface GetMobileCssVariableParams extends Pick<AppConfig, 'showSearchOnScroll'> {\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';\n\nimport { CSS_DESKTOP_HEIGHT, CSS_DESKTOP_WITH_TOP_AREA_BANNER_HEIGHT } from '../../constants';\nimport { getMobileCssHeightVariable } from '../../utils/getMobileCssVariable';\nimport type { TopAreaReservedSpaceBlockProps } from './types';\n\nexport const TopAreaReservedSpaceBlock = styled('div', {\n  shouldForwardProp: shouldForwardProp(),\n})<TopAreaReservedSpaceBlockProps>(({ 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","import useTestId from '@ori/testid-generator';\nimport type { PropsWithChildren, FC } from 'react';\n\nimport { useAppConfig, useTopAreaBanner } from '../../context';\nimport { ROOT_WRAPPER } from './constants';\nimport { TopAreaReservedSpaceBlock } from './styles';\n\nexport const TopAreaBlock: FC<PropsWithChildren> = ({ children }) => {\n  const { getTestId } = useTestId();\n  const { visible: isTopBannerVisible } = useTopAreaBanner();\n  const { showSearchOnScroll } = useAppConfig();\n\n  return (\n    <TopAreaReservedSpaceBlock\n      data-testid={getTestId(ROOT_WRAPPER)}\n      id=\"top-area\"\n      isTopBannerVisible={isTopBannerVisible}\n      showSearchOnScroll={showSearchOnScroll}\n    >\n      {children}\n    </TopAreaReservedSpaceBlock>\n  );\n};\n","export const ROOT_WRAPPER = 'root-wrapper';\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 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, 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<AppPromoContext>({});\n\nconst { Provider } = appPromoContext;\n\nexport const AppPromoProvider: FC<PropsWithChildren> = ({ children }) => {\n  const [visible, setVisible] = useState<boolean>(false);\n  const [pagePath, setPagePath] = useState<string>();\n  const { currentLanguage, tenant } = useAppConfig();\n  const { owner: store } = useCookieStoreInfo();\n  const { userOs } = useMobileOs();\n  useEffect(() => {\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<AppPromoContext>(\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 <Provider value={value}>{children}</Provider>;\n};\n\nexport const useAppPromo = () => useContext(appPromoContext);\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 { 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)({\n  display: '-webkit-box',\n  fontSize: '1.3rem',\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<AppInfoProps> = ({ appDescription, appIcon, appName }) => {\n  const { getTestId } = useTestId();\n\n  return (\n    <AppInfoRoot>\n      {appIcon ? (\n        <AppIcon\n          data-testid={getTestId(APP_PROMO_BANNER_ICON)}\n          src={appIcon}\n          alt={appName ?? appIcon}\n        />\n      ) : (\n        <ImagePlaceholder\n          height={60}\n          width={60}\n        />\n      )}\n      <AppNameAndDescription>\n        <AppName\n          color=\"textPrimary\"\n          fontWeight=\"bold\"\n        >\n          {appName}\n        </AppName>\n        <AppDescription variant=\"caption\">{appDescription}</AppDescription>\n      </AppNameAndDescription>\n    </AppInfoRoot>\n  );\n};\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')({\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<MouseEventHandler<HTMLDivElement>>(\n    (event) => {\n      event.preventDefault();\n      onClose?.();\n    },\n    [onClose],\n  );\n\n  if (!visible) {\n    return null;\n  }\n\n  return (\n    <Root>\n      <Inner\n        className={className}\n        data-testid={getTestId(APP_PROMO_BANNER)}\n        href={bannerLink ?? '#'}\n      >\n        <CloseButton\n          data-testid={getTestId(APP_PROMO_BANNER_CLOSE)}\n          onClick={onCloseButtonClick}\n        >\n          <Clear />\n        </CloseButton>\n        <AppInfo\n          appDescription={appDescription}\n          appIcon={appIcon}\n          appName={appName}\n        />\n        <OpenButton\n          data-testid={getTestId(APP_PROMO_BANNER_OPEN)}\n          variant=\"button\"\n        >\n          {translations.open}\n        </OpenButton>\n      </Inner>\n    </Root>\n  );\n};\n","import { useUserSegmentationData } from '@ori/presentation-http';\nimport { ShadePickerController } from '@ori/shade-picker';\n\nexport const ShadePicker = () => {\n  const { atpClusterId, customerTypeId } = useUserSegmentationData();\n\n  return (\n    <ShadePickerController\n      atpClusterId={atpClusterId}\n      customerTypeId={customerTypeId}\n    />\n  );\n};\n","import { useToken } from '@ori/auth';\nimport { useGetCustomerProfile } from '@ori/global-api-client-react';\nimport { getRetryErrorSwrOptions } from '@ori/presentation-utils';\n\nexport const useCustomerInitials = () => {\n  const { isAnonymousUser, isUserVerified, customerId } = useToken();\n  const { data } = useGetCustomerProfile(customerId, undefined, {\n    swr: {\n      ...getRetryErrorSwrOptions(),\n      enabled: isUserVerified && !isAnonymousUser,\n    },\n  });\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","export enum BurgerMenuTabNames {\n  ProductsTab = 'products-tab',\n  AccountTab = 'account-tab',\n}\n","// istanbul ignore file -- lazy component render\nimport type { FC } from 'react';\nimport { lazy, Suspense } from 'react';\n\nimport { CataloguesSkeleton } from '../Catalogues/CataloguesSkeleton';\nimport type { BurgerMenuContentProps } from '../types';\n\nconst BurgerMenuContent = lazy<FC>(async () => ({\n  default: (await import(/* webpackChunkName: \"TopArea_BurgerMenuContent\" */ './BurgerMenuContent')).BurgerMenuContent,\n}));\n\nexport const LazyBurgerMenuContent: FC<BurgerMenuContentProps> = () => (\n  <Suspense fallback={<CataloguesSkeleton />}>\n    <BurgerMenuContent />\n  </Suspense>\n);\n","import { Avatar, Button, ButtonBase, styled } from '@ori-ui/mui';\n\nexport const 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: '1.4rem',\n    fontWeight: theme.typography.fontWeightBold,\n    textDecoration: 'none',\n    whiteSpace: 'nowrap',\n    textTransform: 'uppercase',\n    '&:hover, &:focus, &:active': {\n      color: theme.palette.grey[600],\n      cursor: 'pointer',\n    },\n  },\n}));\n\nexport const DesktopUserIconButton = styled(Button)(({ theme }) => ({\n  display: 'none',\n  fontSize: '1.4rem',\n  whiteSpace: 'nowrap',\n  lineHeight: '2.1rem',\n  minWidth: 'auto',\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\nexport const MobileUserIconButton = styled(ButtonBase)(({ theme }) => ({\n  fontSize: '3rem',\n  color: theme.palette.text.primary,\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: '1rem !important',\n  width: 22,\n  height: 22,\n  backgroundColor: theme.palette.grey[700],\n}));\n","import { ButtonBase, styled } from '@ori-ui/mui';\n\nexport const 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: '2.9rem',\n    margin: theme.spacing(0, 3),\n  },\n}));\n\nexport const BurgerMenuTabPrefixWrapper = styled('div')<{ ownerState: { isLoggedIn?: boolean } }>(\n  ({ ownerState, theme }) => ({\n    borderRadius: '50%',\n    display: 'flex',\n    fontSize: '2.9rem',\n\n    margin: theme.spacing(3, 2),\n\n    svg: {\n      width: 24,\n      height: 24,\n    },\n\n    ...(ownerState.isLoggedIn && {\n      borderRadius: '50%',\n      color: theme.palette.common.white,\n      display: 'flex',\n      fontSize: '2.6rem',\n      height: 26,\n    }),\n  }),\n);\n\nexport const BurgerMenuTabLabelWrapper = styled('div')(({ theme }) => ({\n  marginRight: theme.spacing(3),\n  overflow: 'hidden',\n  textAlign: 'left',\n  textOverflow: 'ellipsis',\n  width: '100%',\n}));\n","import useTestId from '@ori/testid-generator';\nimport type { FC } from 'react';\nimport { useCallback } from 'react';\n\nimport { UserAvatar } from '../../UserSection';\nimport {\n  BURGER_MENU_TAB_ICON_WRAPPER,\n  BURGER_MENU_TAB_LABEL_WRAPPER,\n  BURGER_MENU_TAB_ROOT,\n  TAB_ICON,\n} from '../constants';\nimport { BurgerMenuTabLabelWrapper, BurgerMenuTabPrefixWrapper, BurgerMenuTabRoot } from './styles';\nimport type { BurgerMenuTabProps } from './types';\n\nexport const BurgerMenuTab: FC<BurgerMenuTabProps> = ({\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    <BurgerMenuTabRoot\n      disableRipple\n      ownerState={ownerState}\n      data-testid={getTestId(BURGER_MENU_TAB_ROOT)}\n      onClick={clickHandler}\n    >\n      <BurgerMenuTabPrefixWrapper\n        ownerState={ownerState}\n        data-testid={getTestId(BURGER_MENU_TAB_ICON_WRAPPER)}\n      >\n        {typeof tabPrefix === 'string' ? (\n          <UserAvatar data-testid={getTestId(TAB_ICON)}>{tabPrefix}</UserAvatar>\n        ) : (\n          <TabIcon\n            fontSize=\"inherit\"\n            data-testid={getTestId(TAB_ICON)}\n          />\n        )}\n      </BurgerMenuTabPrefixWrapper>\n      <BurgerMenuTabLabelWrapper data-testid={getTestId(BURGER_MENU_TAB_LABEL_WRAPPER)}>\n        {children}\n      </BurgerMenuTabLabelWrapper>\n    </BurgerMenuTabRoot>\n  );\n};\n","// istanbul ignore file -- lazy loaded component not testable\nimport type { FC } from 'react';\nimport { lazy, Suspense } from 'react';\n\nimport { useIsMobile } from '../../../hooks';\nimport { SkeletonMainCategoriesDesktop, SkeletonMainCategoriesMobile } from '../../Skeleton';\n\nconst LazyGeneratedBurgerMainMenuLinks = lazy(async () => import(/* webpackChunkName: \"TopArea_Links\" */ './Links'));\n\nexport const LazyLinks: FC = () => {\n  const isMobile = useIsMobile();\n\n  return (\n    <Suspense fallback={isMobile ? <SkeletonMainCategoriesMobile /> : <SkeletonMainCategoriesDesktop />}>\n      <LazyGeneratedBurgerMainMenuLinks />\n    </Suspense>\n  );\n};\n\nexport default LazyLinks;\n","import * as ToggleMenuFlyout from '@ori-events/toggle-menu-flyout';\nimport type { ModalOwnProps } from '@ori-ui/components';\nimport { BurgerMenu as BurgerMenuIcon } from '@ori-ui/icons';\nimport { Backdrop, Slide } from '@ori-ui/mui';\nimport { useToken } from '@ori/auth';\nimport useTestId from '@ori/testid-generator';\nimport type { FC, ReactNode } from 'react';\nimport { useMemo, useCallback } from 'react';\n\nimport { useActiveMenu } from '../../context/navigation';\nimport { useIsMobile, useCustomerInitials } from '../../hooks';\nimport { useTranslations } from '../../hooks/useTranslations';\nimport { BurgerMenuTabNames } from '../../models';\nimport { LazyBurgerMenuContent } from './BurgerMenuContent';\nimport { BurgerMenuTab } from './BurgerMenuTab';\nimport { LazyLinks } from './Links/LazyLinks';\nimport { BURGER_MENU_BACKDROP, BURGER_MENU_CONTAINER, BURGER_MENU_ROOT } from './constants';\nimport { BurgerMenuContainer, BurgerMenuInner, BurgerMenuRoot, ModalRoot } from './styles';\n\nexport const BurgerMenu: FC<{ mobilePersonalMenuOutlet?: ReactNode | undefined }> = ({ mobilePersonalMenuOutlet }) => {\n  const { BurgerMenu: BurgerMenuType, AccountSideMenu: AccountSideMenuType } = ToggleMenuFlyout.MenuTypes;\n  const { activeMenu, toggleActiveMenu } = useActiveMenu();\n  const isMobile = useIsMobile();\n  const ownerState = { isMobile };\n  const handleTabClick = useCallback(\n    (tabName: BurgerMenuTabNames) => {\n      const menuType: ToggleMenuFlyout.MenuTypes =\n        tabName === BurgerMenuTabNames.ProductsTab ? BurgerMenuType : AccountSideMenuType;\n      toggleActiveMenu(menuType);\n    },\n    [AccountSideMenuType, BurgerMenuType, toggleActiveMenu],\n  );\n  const { translations } = useTranslations();\n  const 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\n  const onClickOverlay = useCallback(() => {\n    toggleActiveMenu(BurgerMenuType);\n  }, [BurgerMenuType, toggleActiveMenu]);\n\n  const slots: ModalOwnProps['slots'] = useMemo(\n    () => ({\n      backdrop: Backdrop,\n    }),\n    [],\n  );\n\n  if (isMobile) {\n    return (\n      <ModalRoot\n        slots={slots}\n        open={isMenuActive}\n        onClose={onClickOverlay}\n      >\n        <Slide\n          in={isMenuActive}\n          direction=\"right\"\n        >\n          <BurgerMenuRoot\n            ownerState={ownerState}\n            data-testid={getTestId(BURGER_MENU_ROOT)}\n          >\n            <BurgerMenuContainer data-testid={getTestId(BURGER_MENU_CONTAINER)}>\n              <BurgerMenuTab\n                activeTab={activeTab}\n                tabName={BurgerMenuTabNames.ProductsTab}\n                tabPrefix={BurgerMenuIcon}\n                onTabClick={handleTabClick}\n              >\n                {translations.menu}\n              </BurgerMenuTab>\n              {isLoggedIn ? (\n                <BurgerMenuTab\n                  activeTab={activeTab}\n                  tabName={BurgerMenuTabNames.AccountTab}\n                  tabPrefix={customerInitials ?? ''}\n                  isLoggedIn={isLoggedIn}\n                  onTabClick={handleTabClick}\n                >\n                  {translations.myAccount}\n                </BurgerMenuTab>\n              ) : null}\n            </BurgerMenuContainer>\n            {activeTab === BurgerMenuTabNames.ProductsTab && <LazyLinks />}\n            {activeTab === BurgerMenuTabNames.AccountTab && !isAnonymousUser ? mobilePersonalMenuOutlet : null}\n          </BurgerMenuRoot>\n        </Slide>\n      </ModalRoot>\n    );\n  }\n\n  if (!isMenuActive) {\n    return null;\n  }\n\n  return (\n    <BurgerMenuRoot\n      as=\"div\"\n      ownerState={{ ...ownerState, isDesktop: true }}\n      data-testid={getTestId(BURGER_MENU_ROOT)}\n    >\n      <BurgerMenuInner>\n        <LazyLinks />\n        <LazyBurgerMenuContent />\n        <Backdrop\n          open\n          data-testid={getTestId(BURGER_MENU_BACKDROP)}\n          sx={{ position: 'absolute', zIndex: '-1', width: '100vw', height: '100vh' }}\n          onClick={onClickOverlay}\n        />\n      </BurgerMenuInner>\n    </BurgerMenuRoot>\n  );\n};\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<TileProps> = ({ image, name }) => {\n  const imagesVariants: ImageSizesHelperParams = {\n    url: image,\n    imageFormat: 'WebP',\n    imageSizeMultiplier: 2,\n    params: [\n      {\n        width: 680,\n        quality: 90,\n      },\n    ],\n  };\n  const images = getImageVariants(imagesVariants);\n\n  return (\n    <img\n      src={image}\n      alt={name}\n      sizes=\"452px\"\n      srcSet={generateSrcSet(images)}\n      loading=\"lazy\"\n      decoding=\"async\"\n    />\n  );\n};\n","import { alpha, Link, Typography, styled, SHADOW_LEVEL1, Button } from '@ori-ui/mui';\n\nimport { CSS_DESKTOP_INNER_HEIGHT, CSS_HEIGHT_ANIMATION } from '../../constants';\n\nexport const 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\nexport const 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\nexport const 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: theme.palette.grey.A700,\n        borderColor: 'transparent',\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\nexport const 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\nexport const JoinTileButton = styled(Button)(({ theme }) => ({\n  [theme.breakpoints.up('md')]: {\n    display: '-webkit-box',\n    left: '50%',\n    maxWidth: 295,\n    minWidth: 125,\n    overflow: 'hidden',\n    position: 'absolute',\n    textAlign: 'center',\n    textOverflow: 'ellipsis',\n    bottom: 60,\n    transform: 'translate(-50%, 50%)',\n    whiteSpace: 'nowrap',\n  },\n}));\n\nexport const JoinMenuIdkyLink = styled(Link)(({ theme }) => ({\n  [theme.breakpoints.up('md')]: {\n    alignSelf: 'center',\n    color: theme.palette.default.main,\n    fontSize: '1.5rem',\n    fontWeight: theme.typography.fontWeightBold,\n    lineHeight: '2.3rem',\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","import * as ToggleMenuFlyout from '@ori-events/toggle-menu-flyout';\nimport { Backdrop } from '@ori-ui/mui';\nimport { useToken } from '@ori/auth';\nimport { StaticNavigationNavigationItemDtoLinkType } from '@ori/static-api-client-react';\nimport useTestId from '@ori/testid-generator';\nimport type { FC } from 'react';\nimport { useCallback, useMemo } from 'react';\n\nimport { useGetNavigationType } from '../../api';\nimport { useActiveMenu } from '../../context/navigation';\nimport { useIsMobile } from '../../hooks';\nimport { JoinTileImage } from './components/JoinTileImage/JoinTileImage';\nimport { JOIN_MENU_BACKDROP, JOIN_MENU_ROOT, JOIN_MENU_TILE_DESCRIPTION, JOIN_MENU_TILE_LINK } from './constants';\nimport {\n  JoinMenuRoot,\n  JoinTilesWrapper,\n  JoinTileLink,\n  JoinTileDescription,\n  JoinTileButton,\n  JoinMenuIdkyLink,\n} from './styles';\n\nexport const JoinMenu: FC = () => {\n  const { isUserVerified, isAnonymousUser } = useToken();\n  const { activeMenu, toggleActiveMenu } = useActiveMenu();\n  const isMobile = useIsMobile();\n  const { data: items } = useGetNavigationType({\n    type: 'JoinTiles',\n    enabled: isAnonymousUser && isUserVerified && !isMobile,\n  });\n  const exitMenu = useCallback(() => toggleActiveMenu(''), [toggleActiveMenu]);\n  const iDontKnowYetLink = useMemo(\n    () => items.find(({ linkType }) => linkType === StaticNavigationNavigationItemDtoLinkType.IDontKnowYet),\n    [items],\n  );\n  const joinTiles = useMemo(\n    () => items.filter(({ linkType }) => linkType === StaticNavigationNavigationItemDtoLinkType.MenuTiles),\n    [items],\n  );\n  const { getTestId } = useTestId();\n  const isMenuActive = activeMenu === ToggleMenuFlyout.MenuTypes.JoinMenu;\n  const ownerState = { isVisible: isMenuActive };\n\n  if (joinTiles.length === 0 || isMobile) {\n    return null;\n  }\n\n  return (\n    <JoinMenuRoot\n      data-testid={getTestId(JOIN_MENU_ROOT)}\n      ownerState={ownerState}\n    >\n      <JoinTilesWrapper>\n        {joinTiles.map(({ url, imageUrl, title, description }) => (\n          <JoinTileLink\n            key={url}\n            data-testid={getTestId(JOIN_MENU_TILE_LINK)}\n            href={url}\n          >\n            {imageUrl ? (\n              <JoinTileImage\n                image={imageUrl}\n                name={title}\n              />\n            ) : null}\n            <JoinTileDescription\n              data-testid={getTestId(JOIN_MENU_TILE_DESCRIPTION)}\n              variant=\"h4\"\n            >\n              {description}\n            </JoinTileDescription>\n            <JoinTileButton\n              className=\"joinTileTitle\"\n              variant=\"contained\"\n              color=\"primary\"\n            >\n              {title}\n            </JoinTileButton>\n          </JoinTileLink>\n        ))}\n      </JoinTilesWrapper>\n      {iDontKnowYetLink?.url ? (\n        <JoinMenuIdkyLink href={iDontKnowYetLink.url}>{iDontKnowYetLink.title}</JoinMenuIdkyLink>\n      ) : null}\n      <Backdrop\n        open\n        data-testid={getTestId(JOIN_MENU_BACKDROP)}\n        sx={{ position: 'absolute', zIndex: '-1', width: '100vw', height: '100vh' }}\n        onClick={exitMenu}\n      />\n    </JoinMenuRoot>\n  );\n};\n","export const JOIN_SKELETON = 'join-skeleton';\nexport const JOIN_LABEL = 'join-label';\nexport const JOIN_MENU_ROOT = 'join-menu-root';\nexport const JOIN_MENU_TILE_LINK = 'join-menu-tile-link';\nexport const JOIN_MENU_TILE_DESCRIPTION = 'join-menu-tile-description';\nexport const JOIN_MENU_BACKDROP = 'join-menu-backdrop';\n","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<Data>(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 = (menuIsOpen: boolean) => () => {\n  if (!menuIsOpen) {\n    UserAction.dispatch(CLICK_BURGER_MENU);\n  }\n  dispatchToggleMenu(ToggleMenuFlyout.MenuTypes.BurgerMenu);\n};\n\nexport const useToggleMenu = () => {\n  const { activeMenu } = useActiveMenu();\n  const menuIsOpen = activeMenu === ToggleMenuFlyout.MenuTypes.BurgerMenu;\n\n  return [menuIsOpen, toggleMenu(menuIsOpen)] as const;\n};\n","import { ButtonBase, SHADOW_LEVEL1, styled } from '@ori-ui/mui';\n\nexport const BurgerMenuIconRoot = styled(ButtonBase)<{ ownerState?: { isOpen?: boolean } }>(\n  ({ ownerState, theme }) => ({\n    color: theme.palette.text.primary,\n    fontSize: '2.8rem',\n    height: 24,\n    width: 24,\n\n    [theme.breakpoints.up('md')]: {\n      height: 32,\n      width: 32,\n      '&:hover': {\n        '.burgerMenuIconLine': {\n          boxShadow: SHADOW_LEVEL1,\n        },\n      },\n\n      ...(ownerState?.isOpen && {\n        '&:hover': {\n          '.burgerMenuIconLine': {\n            boxShadow: SHADOW_LEVEL1,\n          },\n        },\n      }),\n    },\n  }),\n);\n\nexport const 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\nexport const BurgerMenuIconLine = styled('div')<{\n  ownerState?: { isOpen?: boolean; isMobile?: boolean };\n}>(({ ownerState, theme }) => ({\n  backgroundColor: theme.palette.text.primary,\n  height: 1,\n  marginBottom: 6,\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: 15,\n\n  ...(ownerState?.isMobile && {\n    display: 'block',\n  }),\n\n  [theme.breakpoints.up('md')]: {\n    marginBottom: 8,\n    width: 20,\n    ...(ownerState?.isOpen && {\n      '&:nth-of-type(1)': {\n        transform: 'rotate(45deg) translateY(9px) translateX(4px)',\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(4px);',\n      },\n    }),\n  },\n  '&:nth-of-type(3)': {\n    marginBottom: 0,\n  },\n}));\n","import useTestId from '@ori/testid-generator';\nimport type { FC } from 'react';\n\nimport { useToggleMenu } from '../../../hooks';\nimport { useTranslations } from '../../../hooks/useTranslations';\nimport { BURGER_MENU } from '../constants';\nimport { BurgerMenuIconLine, BurgerMenuIconRoot, BurgerMenuIconWrapper } from './styles';\n\nexport const BurgerMenuIcon: FC = () => {\n  const [menuIsOpen, toggleMenu] = useToggleMenu();\n  const { formatMessage } = useTranslations();\n  const ownerState = { isOpen: menuIsOpen };\n  const { getTestId } = useTestId();\n\n  return (\n    <BurgerMenuIconRoot\n      disableRipple\n      aria-label={formatMessage('menu')}\n      ownerState={ownerState}\n      data-testid={getTestId(BURGER_MENU)}\n      onClick={toggleMenu}\n    >\n      <BurgerMenuIconWrapper ownerState={{ ...ownerState, isMobile: true }}>\n        <BurgerMenuIconLine\n          ownerState={ownerState}\n          className=\"burgerMenuIconLine\"\n        />\n        <BurgerMenuIconLine\n          ownerState={ownerState}\n          className=\"burgerMenuIconLine\"\n        />\n        <BurgerMenuIconLine\n          ownerState={ownerState}\n          className=\"burgerMenuIconLine\"\n        />\n      </BurgerMenuIconWrapper>\n      <BurgerMenuIconWrapper>\n        <BurgerMenuIconLine\n          ownerState={ownerState}\n          className=\"burgerMenuIconLine\"\n        />\n        <BurgerMenuIconLine\n          ownerState={ownerState}\n          className=\"burgerMenuIconLine\"\n        />\n        <BurgerMenuIconLine\n          ownerState={ownerState}\n          className=\"burgerMenuIconLine\"\n        />\n      </BurgerMenuIconWrapper>\n    </BurgerMenuIconRoot>\n  );\n};\n","import { styled } from '@ori-ui/mui';\n\nexport const BurgerMenuToggleRoot = styled('div')({\n  position: 'relative',\n});\n","import useTestId from '@ori/testid-generator';\nimport type { FC } from 'react';\n\nimport { BurgerMenuIcon } from '../BurgerMenuIcon';\nimport { BURGER_MENU_TOGGLE_ROOT } from '../constants';\nimport { BurgerMenuToggleRoot } from './styles';\n\nexport const BurgerMenuToggle: FC = () => {\n  const { getTestId } = useTestId();\n\n  return (\n    <BurgerMenuToggleRoot data-testid={getTestId(BURGER_MENU_TOGGLE_ROOT)}>\n      <BurgerMenuIcon />\n    </BurgerMenuToggleRoot>\n  );\n};\n","import { styled } from '@ori-ui/mui';\n\nimport { CSS_HEIGHT_ANIMATION } from '../../../constants';\n\nexport const OriflameLogoSvg = styled('svg')(({ theme }) => ({\n  width: 90,\n  transition: `width ${CSS_HEIGHT_ANIMATION}`,\n\n  [theme.breakpoints.up('md')]: {\n    width: 118,\n  },\n}));\n","import { styled } from '@ori-ui/mui';\n\nimport { OriflameLogoSvg } from '../styles';\n\nexport const Logo = styled(OriflameLogoSvg)(({ theme }) => ({\n  [theme.breakpoints.up('md')]: {\n    width: 160,\n  },\n}));\n","import useTestId from '@ori/testid-generator';\nimport type { FC } from 'react';\n\nimport { CHINESE_LOGO } from './constants';\nimport { Logo } from './styles';\n\nexport const ChineseLogo: FC = () => {\n  const { getTestId } = useTestId();\n\n  return (\n    <Logo\n      xmlns=\"http://www.w3.org/2000/svg\"\n      viewBox=\"0 0 151 45\"\n      data-testid={getTestId(CHINESE_LOGO)}\n    >\n      <path d=\"M1.598 26.036h36.047v-.32H1.598v.32zm115.862 0h33.492v-.32H117.46v.32zm-69.645-.32c1.012.214 1.49.587 1.49 1.33 0 .8-.638 1.333-1.543 1.333-.745 0-1.33-.27-1.864-.75l.32-.37c.478.42.957.64 1.596.64s1.012-.32 1.012-.8c0-.43-.213-.69-1.17-.91-1.066-.22-1.545-.59-1.545-1.33s.64-1.28 1.5-1.28c.69 0 1.17.21 1.6.58l-.32.42c-.42-.38-.85-.48-1.33-.48-.58 0-.96.32-.96.74 0 .37.22.64 1.23.85zm11.13-2.076h.425l1.278 3.834 1.278-3.78h.586l-1.65 4.58h-.427l-1.278-3.72-1.278 3.73h-.43l-1.65-4.58h.58l1.27 3.78zm13.842.48h-2.822v1.543h2.502v.48h-2.502v1.65h2.822v.425h-3.354v-4.58h3.354zm9.743-.48h-1.596v4.58h1.597c1.44 0 2.45-1.013 2.45-2.29s-1.01-2.29-2.45-2.29zm0 4.1h-1.064v-3.62h1.065c1.18 0 1.92.798 1.92 1.81 0 1.064-.74 1.81-1.91 1.81zm13.74-3.62h-2.823v1.543h2.502v.48h-2.51v1.65h2.82v.425h-3.35v-4.58h3.35zm11.873-.48h.532v4.58h-.426l-2.99-3.728v3.72h-.48v-4.58h.48l2.87 3.67zM46.483 2.023h2.397V17.89h-2.396zM60.275 17.89h-2.343V2.023H69.54V4.26h-9.265v4.79h8.253v2.237h-8.253zm27.687 0h-10.97V2.023h2.397v13.63h8.57zm34.663-4.153l-5.058-7.56V17.89h-2.29V2.023h2.236l5.378 8.04 5.38-8.04h2.24V17.89h-2.39V6.123l-5.27 7.934zm28.38 4.153h-11.767V2.023h11.66V4.26h-9.318v4.525h8.306v2.236h-8.306v4.69h9.425zM34.078 11.553c2.45-.638 3.94-2.342 3.94-4.685 0-2.982-2.343-4.9-5.857-4.9h-6.92v15.868h2.4V11.98h3.89l4.32 5.91h3.04l-4.8-6.337zm-6.443-1.756V4.26H32c2.29 0 3.568.958 3.568 2.716 0 1.704-1.384 2.822-3.567 2.822h-4.36zm74.278-7.88H99.89L92.64 17.89h2.5l1.81-4.1h7.77l1.81 4.1h2.61L101.9 1.916zM97.92 11.66l2.98-6.815 2.98 6.815h-5.96zM18.31 8.998c0 5.058-4.1 9.158-9.16 9.158S0 14.056 0 8.998C0 4.472 3.302.692 7.615 0v.053c-3.355 1.33-5.378 4.473-5.378 8.2 0 4.74 3.354 7.454 6.922 7.454 3.72 0 6.7-3.035 6.7-6.71 0-3.194-2.5-5.856-5.81-5.856-3.78 0-5.59 3.46-5.59 3.46h-.05s1.71-4.94 6.66-4.94c3.09 0 7.24 2.5 7.24 7.35zm33.53 34.645c-.28-.06-1.147-.093-2.6-.093s-2.382.03-2.79.094c.02-.87.03-1.62.03-2.25v-5.28c0-.76-.01-1.5-.03-2.22.336.06 1.264.08 2.785.08s2.44-.03 2.757-.08v.87c-.318-.07-.865-.11-1.643-.11h-3.08v8.19h3.08c.72 0 1.22-.04 1.49-.12v.93zm-1.968-5.552c.534-1.04.86-1.9.978-2.59.262.16.497.28.7.34.203.06.306.13.306.19s-.07.13-.22.21c-.143.07-.35.4-.608.99-.262.59-.493 1.08-.693 1.49.564.73 1.16 1.57 1.795 2.53l-.76.45c-.27-.58-.736-1.34-1.398-2.28-.462.82-1.028 1.62-1.696 2.42-.16-.21-.404-.33-.732-.38.76-.75 1.42-1.64 1.98-2.66-.737-1.05-1.37-1.85-1.9-2.41l.513-.39c.506.57 1.084 1.28 1.736 2.13zm5.022 2.47c-.263 1.73-1.275 3.31-3.04 4.74-.156-.31-.42-.53-.8-.66 1.187-.64 2.03-1.49 2.54-2.53.505-1.05.767-2.64.786-4.78.28.08.515.12.706.12l.283-.01c.1 0 .15.03.15.1s-.06.14-.17.23c-.11.09-.22.51-.31 1.26.38 1.41.82 2.49 1.33 3.27s1.24 1.46 2.19 2.05c-.26.21-.46.47-.61.79-1.64-1.3-2.67-2.82-3.07-4.54zm-1.238-4.58c-.326 1.07-.738 2.09-1.235 3.07-.23-.23-.5-.36-.79-.39.46-.58.86-1.4 1.21-2.47s.59-2.18.7-3.3c.33.15.61.24.84.27s.35.07.35.14-.05.13-.16.21c-.16.11-.39.7-.69 1.77h1.72c.96 0 1.81-.05 2.55-.14l-1.07 2.96-.71-.26.67-1.88h-3.37zm20.12-1.23c-.736 0-1.3.04-1.698.11v-.84c.444.07 1.127.11 2.05.11s1.604-.04 2.048-.11v.85c-.38-.07-.914-.11-1.6-.11V38c.625 0 1.106-.038 1.44-.11v.882c-.38-.08-.86-.123-1.44-.123v3.46c.625-.18 1.146-.37 1.56-.58-.036.13-.05.25-.05.38s.02.28.07.46c-1.62.36-3.02.78-4.197 1.27-.08-.37-.22-.71-.41-1.02.55 0 1.29-.1 2.22-.32v-3.68c-.64 0-1.15.04-1.56.12v-.88c.35.08.87.12 1.56.12v-3.25zm5.62 3.65c-1.42.01-2.448.05-3.083.11v-.84c.774.07 2.06.11 3.866.11s3.09-.03 3.87-.11v.84c-.77-.07-2.04-.11-3.82-.11l-.49 1.4c1.4 0 2.68-.05 3.85-.15-.05.49-.07 1.01-.07 1.58v2.73c0 .36-.05.61-.14.76-.09.15-.27.26-.54.31-.27.06-.72.1-1.35.12 0-.08.01-.16.01-.23 0-.26-.1-.5-.3-.7.39.09.7.14.92.14.38 0 .58-.16.58-.47V40.4h-1.35v2.256c0 .552.02.99.06 1.314h-.87c.03-.325.05-.762.05-1.315v-2.26h-1.25v2.32c0 .55.02.99.07 1.32h-.87c.03-.36.05-.79.05-1.32v-2.32h-1.27v4.71h-.87c.05-.43.08-.86.08-1.31v-2.59c0-.59-.03-1.11-.08-1.56.7.06 1.51.1 2.43.12.21-.5.37-.96.47-1.39zm1.043-2.33h2.12v-1.39c0-.44-.02-.77-.07-.99.37.05.64.07.8.07.16 0 .24.04.24.12s-.03.16-.1.23c-.1.11-.13.98-.11 2.61-.76-.04-1.86-.07-3.29-.07s-2.52.03-3.25.07c.05-.31.08-.63.08-.98V34.5c0-.352-.03-.624-.08-.814.22.072.44.11.66.11l.35-.016c.11 0 .16.04.16.115 0 .078-.06.175-.18.294-.12.12-.17.74-.14 1.87h2.01v-1.68c0-.54-.03-.95-.1-1.24.22.06.39.09.53.09.13 0 .24-.01.33-.02s.13-.02.14-.02c.08 0 .12.03.12.09s-.03.12-.08.16c-.12.08-.18.34-.18.79v1.81zm24.98-1.68c1.26 0 2.32-.03 3.19-.11v.89c-.87-.07-1.93-.11-3.19-.11v1.04h-.8v-1.05h-3.36v1.14h-.79v-1.14c-1.46 0-2.62.04-3.49.11v-.88c.86.07 2.02.11 3.49.11-.02-.73-.05-1.25-.08-1.56.35.06.67.08.96.08.09 0 .13.03.13.09s-.03.11-.08.15c-.1.06-.15.2-.15.42v.83h3.35c0-.69-.03-1.21-.08-1.57.35.06.68.08.97.08.09 0 .13.03.13.07 0 .05-.03.09-.08.13-.1.06-.15.21-.15.42v.88zm-6.27 8.57v-3.17c-.9 0-1.5.02-1.81.06v-.87c.42.06.86.1 1.32.1s.9-.03 1.33-.09c-.07.31-.11.85-.11 1.62v2.47c.83.47 1.55.78 2.16.95s1.42.26 2.43.26c1.01 0 2.58-.08 4.7-.23-.23.25-.35.56-.36.95-.83.01-1.76.01-2.78.01s-1.91-.03-2.67-.08c-.76-.06-1.36-.15-1.8-.28-.44-.13-.9-.33-1.39-.62-.3-.17-.54-.25-.74-.25-.19 0-.4.11-.61.31s-.47.54-.77.99c-.22-.27-.47-.46-.76-.57 1-.97 1.62-1.48 1.83-1.51zm1.23-5.45l-.64.54c-.5-.71-1.05-1.34-1.65-1.89l.56-.51c.59.6 1.16 1.22 1.71 1.84zm2.59.41c-.83 0-1.56.04-2.22.11v-.83c.63.06 1.48.09 2.55.09.26-.51.43-.98.5-1.43.36.19.63.3.79.34.17.04.25.09.25.16s-.04.12-.12.17c-.21.1-.43.35-.66.74h1.63c1 0 1.86-.03 2.6-.09V38c-.74-.07-1.61-.11-2.61-.11h-1.98c-.33.59-.68 1.17-1.06 1.74h1.73c-.02-.57-.04-.99-.06-1.26.24.04.45.07.62.07l.35-.02c.13 0 .19.03.19.1 0 .06-.05.13-.16.21s-.17.38-.17.9c1.2 0 2.08-.038 2.63-.1v.8c-.5-.07-1.37-.11-2.63-.12v1.3c1.49 0 2.59-.03 3.3-.09v.79c-.7-.06-1.8-.094-3.3-.094 0 .67.03 1.31.08 1.915h-.94c.05-.49.08-1.13.08-1.91-1.73 0-2.96.03-3.69.1v-.79c.92.06 2.15.1 3.69.1v-1.3c-1.31.01-2.29.09-2.95.256-.01-.32-.12-.57-.31-.75.42-.14.75-.34.99-.62.24-.27.52-.68.83-1.23z\" />\n    </Logo>\n  );\n};\n","export const CHINESE_LOGO = 'cn';\n","import useTestId from '@ori/testid-generator';\nimport type { FC } from 'react';\n\nimport { OriflameLogoSvg } from '../styles';\nimport { COMMON_LOGO } from './constants';\n\nexport const CommonLogo: FC = () => {\n  const { getTestId } = useTestId();\n\n  return (\n    <OriflameLogoSvg\n      xmlns=\"http://www.w3.org/2000/svg\"\n      viewBox=\"0 0 139 31\"\n      data-testid={getTestId(COMMON_LOGO)}\n    >\n      <path d=\"M57.98 28.94l-1.595-4.904h-.98L53.81 28.94l-1.593-4.91h-1.23l2.206 6.62h.98l1.716-4.66 1.59 4.66h.98l2.2-6.62h-1.22zM1.334 26.857h33.35v.98H1.334v-.98zm41.318-24.89h2.207v14.59h-2.21V1.967zm10.544 14.59h2.207v-6.13h7.602V8.343h-7.61V3.93h8.46V1.966h-10.66zM8.324 16.8c4.66 0 8.46-3.8 8.46-8.46 0-4.534-3.8-6.62-6.62-6.62-5.518 0-5.886 5.396-5.886 5.396h.13s.98-3.923 4.78-3.923c3.07 0 5.4 2.084 5.4 5.027 0 3.43-2.82 6.25-6.25 6.25-3.31 0-6.372-2.45-6.372-6.87 0-3.44 1.84-6.26 5.027-7.48V0C2.947.61.003 4.17.003 8.33c-.122 4.66 3.68 8.46 8.338 8.46zm36.78 10.056c-1.225-.245-1.593-.49-1.593-.98s.37-.737 1.11-.737c.62 0 1.23.24 1.72.61l.617-.85c-.613-.49-1.47-.86-2.33-.86-1.35 0-2.207.74-2.207 1.96s.73 1.6 2.2 1.96c1.22.25 1.47.49 1.47.98s-.49.86-1.1.86c-.86 0-1.47-.37-2.09-.86l-.74.86c.735.74 1.716 1.11 2.696 1.11 1.35 0 2.33-.73 2.33-1.96 0-1.35-.738-1.84-2.086-2.08zm-9.317-10.3l-4.414-5.884c2.207-.61 3.678-2.2 3.678-4.29 0-2.69-2.2-4.53-5.39-4.53h-6.38v14.59h2.2v-5.4h3.55l4.05 5.4 2.7.126zm-10.3-7.48V3.93h4.047c2.084 0 3.31.86 3.31 2.453s-1.35 2.575-3.31 2.575h-4.047zm40.706 18.76h3.31v-1.102h-3.31V25.14h3.678v-1.103h-4.78v6.498h4.78v-.98H66.2zM91.817 1.844l-6.62 14.713h2.33l1.715-3.8h7.11l1.595 3.8h2.452L93.78 1.844h-1.964zm-1.838 8.95l2.69-6.252 2.69 6.26h-5.4zm18.14-5.026l4.66 6.866.24.368.24-.36 4.536-6.86v10.79h2.207v-14.6h-2.084l-4.904 7.356-4.906-7.356h-2.08v14.59h2.085zm0 21.088h30.89v.98h-30.89v-.98zm22.19-12.383v-4.29h7.6V8.098h-7.6v-4.17h8.58v-1.96h-10.78v14.59h10.79V14.47zM98.93 28.57l-3.557-4.534H94.27v6.498h1.226v-4.536l3.55 4.536h.98v-6.498h-1.1zM72.936 1.968h-2.084v14.59h10.054v-2.084h-7.97zm13.12 25.87h3.31v-1.103h-3.31V25.14h3.677v-1.103H84.95v6.498h4.905v-.98h-3.81zm-9.197-3.8H74.4v6.497h2.453c2.083 0 3.432-1.47 3.432-3.31.122-1.717-1.35-3.188-3.434-3.188zm0 5.516h-1.35V25.14h1.35c1.35 0 2.2.98 2.2 2.206.12 1.226-.86 2.207-2.21 2.207z\" />\n    </OriflameLogoSvg>\n  );\n};\n","export const COMMON_LOGO = 'common';\n","import { Link, styled } from '@ori-ui/mui';\n\nexport const Root = styled('div')({\n  textAlign: 'center',\n});\n\nexport const StyledLink = styled(Link)(({ theme }) => ({\n  lineHeight: 0,\n  display: 'block',\n  svg: {\n    fill: theme.palette.text.primary,\n  },\n}));\n","import useTestId from '@ori/testid-generator';\nimport type { FC } from 'react';\n\nimport { useIsMarketCN } from '../../hooks/useIsMarketCN';\nimport { useTranslations } from '../../hooks/useTranslations';\nimport { ChineseLogo, CommonLogo } from './components';\nimport { ORIFLAME_LOGO_ROOT } from './constants';\nimport { Root, StyledLink } from './styles';\n\nexport const OriflameLogo: FC = () => {\n  const { getTestId } = useTestId();\n  const isMarketCN = useIsMarketCN();\n  const { translations } = useTranslations();\n\n  return (\n    <Root data-testid={getTestId(ORIFLAME_LOGO_ROOT)}>\n      <StyledLink\n        href=\"/\"\n        aria-label={translations.oriflameSweden}\n      >\n        {isMarketCN ? <ChineseLogo /> : <CommonLogo />}\n      </StyledLink>\n    </Root>\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","export const CN_MARKET = 'cn';\n","export const ORIFLAME_LOGO_ROOT = 'oriflame-logo';\n","import { styled } from '@ori-ui/mui';\n\nexport const LeftActionsSectionRoot = styled('div')(({ theme }) => ({\n  alignItems: 'center',\n  display: 'flex',\n  gap: theme.spacing(3),\n\n  [theme.breakpoints.up('sm')]: {\n    maxWidth: 'none',\n  },\n  [theme.breakpoints.up('md')]: {\n    gap: theme.spacing(4),\n  },\n  [theme.breakpoints.up('lg')]: {\n    gap: theme.spacing(8),\n  },\n}));\n","import type { FC } from 'react';\n\nimport { BurgerMenuToggle } from '../BurgerMenu/BurgerMenuToggle';\nimport { OriflameLogo } from '../OriflameLogo';\nimport { LeftActionsSectionRoot } from './styles';\n\nexport const LeftActionsSection: FC = () => (\n  <LeftActionsSectionRoot>\n    <BurgerMenuToggle />\n    <OriflameLogo />\n  </LeftActionsSectionRoot>\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 = <Ref extends HTMLElement = HTMLAnchorElement & HTMLButtonElement>(\n  iconOnHover: ElementType,\n  icon: ElementType,\n  hidden?: boolean,\n): [RefObject<Ref>, ElementType] => {\n  const [isHover, setIsHover] = useState(false);\n  const ref = useRef<Ref>(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 && !hidden) {\n      element?.addEventListener('mouseover', handleMouseOver);\n      element?.addEventListener('mouseleave', handleMouseLeave);\n    }\n\n    return () => {\n      if (isHoverAvailable && !hidden) {\n        element?.removeEventListener('mouseover', handleMouseOver);\n        element?.removeEventListener('mouseleave', handleMouseLeave);\n      }\n    };\n  }, [isHoverAvailable, handleMouseOver, handleMouseLeave, hidden]);\n\n  return [ref, getIcon];\n};\n","export const FAVORITE_HEART_ROOT = 'favorite-heart-root';\n","import { HeartFilled as HeartFilledIcon } from '@ori-ui/icons';\nimport { Link, styled } from '@ori-ui/mui';\n\nexport const FavoritesHeartRoot = styled(Link)(({ theme }) => ({\n  display: 'none',\n  [theme.breakpoints.up('md')]: {\n    color: theme.palette.text.primary,\n    display: 'inline-flex',\n    fontSize: '3rem',\n    height: 'fit-content',\n\n    '&:hover, &:focus, &:active': {\n      color: theme.palette.text.primary,\n      cursor: 'pointer',\n    },\n\n    '& div:first-of-type': {\n      alignItems: 'center',\n      display: 'flex',\n    },\n  },\n}));\n\nexport const HeartFilled = styled(HeartFilledIcon)(({ theme }) => ({\n  color: theme.palette.pink[300],\n}));\n","import * as UserAction from '@ori-events/user-action';\nimport { Heart, HeartFilled } from '@ori-ui/icons';\nimport { useToken } from '@ori/auth';\nimport { useAreFavoritesEnabled } from '@ori/presentation-hooks';\nimport useTestId from '@ori/testid-generator';\nimport type { FC } from 'react';\nimport { useCallback } from 'react';\n\nimport { CLICK_FAVORITE_ICON } from '../../constants';\nimport { useHover } from '../../hooks';\nimport { useTranslations } from '../../hooks/useTranslations';\nimport { FavoritesLink } from '../../models';\nimport { FAVORITE_HEART_ROOT } from './constants';\nimport { FavoritesHeartRoot } from './styles';\n\nexport const FavoritesHeartIcon: FC = () => {\n  const { customerId } = useToken();\n  const shouldFavoritesRender = useAreFavoritesEnabled({ customerId });\n  const [ref, Icon] = useHover(HeartFilled, Heart, !shouldFavoritesRender);\n  const { getTestId } = useTestId();\n  const { translations } = useTranslations();\n  const isOnFavorites = window.location.pathname.includes(FavoritesLink);\n\n  const handleClick = useCallback(() => {\n    UserAction.dispatch(CLICK_FAVORITE_ICON);\n  }, []);\n\n  if (!shouldFavoritesRender) {\n    return null;\n  }\n\n  return (\n    <FavoritesHeartRoot\n      ref={ref}\n      aria-label={translations.myFavoriteProducts}\n      data-testid={getTestId(FAVORITE_HEART_ROOT)}\n      href={isOnFavorites ? undefined : FavoritesLink}\n      onClick={handleClick}\n    >\n      <Icon fontSize=\"inherit\" />\n    </FavoritesHeartRoot>\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, useMemo } from 'react';\n\nimport { useGetNavigationType } from '../../api';\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  fallback: string,\n  collection?: StaticNavigationNavigationItemDto[] | null,\n) => collection?.find(({ type }) => type === item)?.title ?? fallback;\n\nconst findUrl = (\n  item: StaticNavigationNavigationItemDtoType,\n  fallback: string,\n  collection?: StaticNavigationNavigationItemDto[] | null,\n) => collection?.find(({ type }) => type === item)?.url ?? fallback;\n\nexport const LabelsProvider: FC<PropsWithChildren> = ({ children }) => {\n  const { data: items, loading } = useGetNavigationType({ type: 'TopNavigation' });\n  const value = useMemo(\n    () => ({\n      aboutLabel: findLabel(\n        StaticNavigationNavigationItemDtoType.AboutTiles,\n        labelsContextDefaultValue.aboutLabel,\n        items,\n      ),\n      joinLabel: findLabel(StaticNavigationNavigationItemDtoType.JoinTiles, labelsContextDefaultValue.joinLabel, items),\n      joinUrl: findUrl(StaticNavigationNavigationItemDtoType.JoinTiles, labelsContextDefaultValue.joinUrl, items),\n      loading,\n    }),\n    [items, loading],\n  );\n\n  return <Provider value={value}>{children}</Provider>;\n};\n\nexport const useLabels = () => useContext(labelsContext);\n","import { Link, Skeleton, styled } from '@ori-ui/mui';\nimport { shouldNotForwardProp } from '@ori/presentation-utils';\n\nexport const JoinLabel = styled(Link, { shouldForwardProp: shouldNotForwardProp(['disableRipple']) })<{\n  disableRipple?: boolean;\n}>(({ theme }) => ({\n  display: 'none',\n  [theme.breakpoints.up('md')]: {\n    color: theme.palette.text.primary,\n    display: 'block',\n    fontSize: '1.4rem',\n    fontWeight: theme.typography.fontWeightBold,\n    textDecoration: 'none',\n    whiteSpace: 'nowrap',\n    textTransform: 'uppercase',\n    '&:hover, &:focus, &:active': {\n      color: theme.palette.grey[600],\n      cursor: 'pointer',\n    },\n  },\n}));\n\nexport const JoinSkeleton = styled(Skeleton)(({ theme }) => ({\n  display: 'none',\n  [theme.breakpoints.up('md')]: {\n    display: 'block',\n  },\n}));\n","import * as ToggleMenuFlyoutEvent from '@ori-events/toggle-menu-flyout';\nimport { ButtonBase } from '@ori-ui/mui';\nimport { useToken } from '@ori/auth';\nimport useTestId from '@ori/testid-generator';\nimport { useCallback, type FC } from 'react';\n\nimport { useGetNavigationType } from '../../../../api';\nimport { useLabels } from '../../../../context/navigation';\nimport { useIsMobile } from '../../../../hooks';\nimport { dispatchToggleMenu } from '../../../../utils';\nimport { JOIN_LABEL, JOIN_SKELETON } from '../../constants';\nimport { JoinLabel, JoinSkeleton } from './styles';\n\nexport const JoinIcon: FC = () => {\n  const { isUserVerified, isAnonymousUser } = useToken();\n  const { joinLabel, joinUrl, loading } = useLabels();\n  const isMobile = useIsMobile();\n  const { data: items } = useGetNavigationType({\n    type: 'JoinTiles',\n    enabled: isAnonymousUser && isUserVerified && !isMobile,\n  });\n  const { getTestId } = useTestId();\n  const handleClick = useCallback(() => dispatchToggleMenu(ToggleMenuFlyoutEvent.MenuTypes.JoinMenu), []);\n\n  if (loading || !isUserVerified) {\n    return (\n      <JoinSkeleton\n        data-testid={getTestId(JOIN_SKELETON)}\n        variant=\"rectangular\"\n        height={21}\n        width={120}\n      />\n    );\n  }\n\n  if (items.length > 0) {\n    return (\n      <JoinLabel\n        disableRipple\n        as={ButtonBase}\n        data-testid={getTestId(JOIN_LABEL)}\n        onClick={handleClick}\n      >\n        {joinLabel}\n      </JoinLabel>\n    );\n  }\n\n  if (joinUrl) {\n    return <JoinLabel href={joinUrl}>{joinLabel}</JoinLabel>;\n  }\n\n  return null;\n};\n","import { IconButton } from '@ori-ui/components';\nimport { styled } from '@ori-ui/mui';\n\nexport const NotificationBellIconButton = styled(IconButton)(({ theme }) => ({\n  color: theme.palette.text.primary,\n  fontSize: '3rem',\n  padding: 0,\n\n  '&:hover, &:focus, &:active': {\n    background: 'none',\n    color: theme.palette.text.primary,\n  },\n}));\n","import * as ToggleMenuFlyoutEvent from '@ori-events/toggle-menu-flyout';\nimport * as UserAction from '@ori-events/user-action';\nimport { Notification, NotificationFilled } from '@ori-ui/icons';\nimport { Badge } from '@ori-ui/mui';\nimport { useToken } from '@ori/auth';\nimport { CLIENT_APPLICATION } from '@ori/fetching';\nimport { useGetCustomerUnseenNotificationsCount } from '@ori/global-api-client-react';\nimport { getRetryErrorSwrOptions } from '@ori/presentation-utils';\nimport useTestId from '@ori/testid-generator';\nimport type { FC } from 'react';\nimport { useCallback, useState } from 'react';\n\nimport { CLICK_NOTIFICATION_ICON } from '../../constants';\nimport { useHover } from '../../hooks';\nimport { useTranslations } from '../../hooks/useTranslations';\nimport { dispatchToggleMenu } from '../../utils';\nimport { NOTIFICATION_BELL_ICON_BELL, NOTIFICATION_BELL_ICON_BUTTON } from './constants';\nimport { NotificationBellIconButton } from './styles';\n\nexport const NotificationBellIcon: FC = () => {\n  const [ref, Icon] = useHover(NotificationFilled, Notification);\n  const [isClicked, setIsClicked] = useState(false);\n  const { customerId } = useToken();\n  const { getTestId } = useTestId();\n  const { translations } = useTranslations();\n  const { data } = useGetCustomerUnseenNotificationsCount(\n    customerId,\n    {\n      [CLIENT_APPLICATION]: 'Web' /* notifications API requires value `Web` */,\n    },\n    {\n      swr: getRetryErrorSwrOptions(),\n    },\n  );\n  const { count } = data ?? { count: 0 };\n\n  const handleClick = useCallback(() => {\n    UserAction.dispatch(CLICK_NOTIFICATION_ICON);\n    setIsClicked(true);\n    dispatchToggleMenu(ToggleMenuFlyoutEvent.MenuTypes.Notifications);\n  }, []);\n\n  return (\n    <NotificationBellIconButton\n      ref={ref}\n      variant=\"text\"\n      aria-label={translations.notifications}\n      data-testid={getTestId(NOTIFICATION_BELL_ICON_BUTTON)}\n      onClick={handleClick}\n    >\n      <Badge\n        color=\"error\"\n        badgeContent={count}\n        max={99}\n        data-testid={getTestId(NOTIFICATION_BELL_ICON_BELL)}\n        invisible={isClicked || count === 0}\n      >\n        <Icon fontSize=\"inherit\" />\n      </Badge>\n    </NotificationBellIconButton>\n  );\n};\n","export const NOTIFICATION_BELL_ICON_BUTTON = 'notification-bell-icon-button';\nexport const NOTIFICATION_BELL_ICON_BELL = 'notification-bell-icon-bell';\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 { ButtonBase, styled } from '@ori-ui/mui';\n\nexport const SearchIconRoot = styled(ButtonBase)(({ theme }) => ({\n  color: theme.palette.text.primary,\n  display: 'none',\n  fontSize: '3rem',\n\n  [theme.breakpoints.down('md')]: {\n    display: 'inline-flex',\n  },\n}));\n","import { Search } from '@ori-ui/icons';\nimport useTestId from '@ori/testid-generator';\nimport { useCallback } from 'react';\n\nimport { useActiveMenu, useSearchInput } from '../../context/navigation';\nimport { useSearchInputPlaceholder } from '../../hooks/useSearchInputPlaceholder';\nimport { SEARCH_ICON } from './constants';\nimport { SearchIconRoot } from './styles';\n\nexport const SearchIcon = () => {\n  const { hideSearchResultsTab } = useActiveMenu();\n  const { isVisible, hide, show, manualShow, manualHide } = useSearchInput();\n  const { getTestId } = useTestId();\n  const searchPlaceholder = useSearchInputPlaceholder();\n\n  const handleClick = useCallback(() => {\n    if (isVisible) {\n      manualHide();\n      hide();\n      hideSearchResultsTab();\n    } else {\n      show();\n      manualShow();\n    }\n  }, [hide, hideSearchResultsTab, isVisible, manualHide, manualShow, show]);\n\n  return (\n    <SearchIconRoot\n      disableRipple\n      aria-label={searchPlaceholder}\n      data-testid={getTestId(SEARCH_ICON)}\n      onClick={handleClick}\n    >\n      {isVisible ? null : <Search fontSize=\"inherit\" />}\n    </SearchIconRoot>\n  );\n};\n","export const SEARCH_ICON = 'search-icon';\n","import type { SearchProduct } from '../components/SearchPreview/types';\n\nexport const mapSearchPreviewProductToShadePicker = (product: SearchProduct) =>\n  product.shades?.map((shade) => ({\n    code: shade.productCode,\n    name: shade.name ?? '',\n    price: {\n      currentFormatted: shade.price.currentFormatted,\n      oldFormatted: shade.price.oldFormatted,\n    },\n    shade,\n  })) ?? [];\n","import { DialogMode } from '@ori-events/open-product-info-dialog';\n\nimport type { SearchProduct } from '../components/SearchPreview/types';\nimport { openProductInfoDialog } from './openProductInfoDialog';\nimport { openShadePicker } from './openShadePicker';\n\nexport const getQuickBuyButtonOnClickHandler = (product: SearchProduct, position: number) => {\n  if (product.hasAutosubscribe) {\n    return openProductInfoDialog(DialogMode.StandardBuy, product.code, position);\n  } else if (product.isMultishade) {\n    return openShadePicker(product);\n  }\n\n  return undefined;\n};\n","import * as OpenProductInfoDialog from '@ori-events/open-product-info-dialog';\nimport type { DialogMode } from '@ori-events/open-product-info-dialog';\nimport { Placement } from '@ori/analytics-data';\n\nexport const openProductInfoDialog =\n  (mode: DialogMode, productCode: string, position = 0) =>\n  () =>\n    window.dispatchEvent(\n      new CustomEvent<OpenProductInfoDialog.Data>(OpenProductInfoDialog.Name, {\n        detail: {\n          mode,\n          placement: Placement.TopNavigationSearchSuggestions,\n          productCodes: [productCode],\n          position,\n        },\n      }),\n    );\n","import * as OpenShadePicker from '@ori-events/open-shade-picker';\nimport { Placement } from '@ori/analytics-data';\n\nimport type { SearchProduct } from '../components';\nimport { mapSearchPreviewProductToShadePicker } from './mapSearchPreviewProductToShadePicker';\n\nexport const openShadePicker = (product: SearchProduct) => () => {\n  window.dispatchEvent(\n    new CustomEvent<OpenShadePicker.Data>(OpenShadePicker.Name, {\n      detail: {\n        productName: product.name,\n        products: mapSearchPreviewProductToShadePicker(product),\n        placement: Placement.TopNavigationSearchSuggestions,\n        productCode: product.code,\n      },\n    }),\n  );\n};\n","export const getSearchUrl = (name: string) => `/search?query=${encodeURIComponent(name)}`;\n","export const SEARCH_PREVIEW_PRODUCT = 'search-preview-product';\nexport const QUERY_NAME = 'query';\n","export interface BoldMatchedTextParams {\n  text: string | null;\n  searchPhrase: string;\n}\nexport const boldMatchedText = ({ text, searchPhrase }: BoldMatchedTextParams) => {\n  if (!text) {\n    return null;\n  }\n  if (!searchPhrase) {\n    return text;\n  }\n\n  const escapedSearchPhrase = searchPhrase.replaceAll(/[$()*+.?[\\\\\\]^{|}]/g, '\\\\$&').trim();\n  const regExpPattern = new RegExp(escapedSearchPhrase, 'igu');\n  const splitText = text.split(regExpPattern);\n  const matches = text.match(regExpPattern);\n\n  if (!matches) {\n    return text;\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      <span key={`${el}-${text}-${index}`}>\n        {el}\n        <strong>{matches[index]}</strong>\n      </span>\n    );\n  });\n};\n","import { Search } from '@ori-ui/icons';\nimport type { TypographyProps, ChipProps } from '@ori-ui/mui';\nimport { Chip, Typography, chipClasses, styled } from '@ori-ui/mui';\n\nimport { CHIP_HEIGHT } from './constants';\n\nexport const Label = styled(Typography)<Pick<TypographyProps, 'component'>>({\n  overflow: 'hidden',\n  textOverflow: 'ellipsis',\n  whiteSpace: 'nowrap',\n  textTransform: 'none',\n  verticalAlign: 'baseline',\n});\n\nexport const StyledChip = styled(Chip)<Pick<ChipProps, 'component'>>(({ theme }) => ({\n  height: CHIP_HEIGHT,\n  padding: theme.spacing(1, 3),\n  gap: theme.spacing(1),\n  borderRadius: theme.spacing(2),\n  [`.${chipClasses.icon}`]: {\n    margin: 0,\n  },\n  [`.${chipClasses.label}`]: {\n    padding: 0,\n  },\n}));\n\nexport const SearchIcon = styled(Search)({\n  height: '24px',\n  width: '24px',\n});\n","export const SEARCH_PREVIEW_SUGGESTION = 'search-preview-suggestion';\nexport const CHIP_HEIGHT = 35;\n","import useTestId from '@ori/testid-generator';\nimport { useMemo, type FC } from 'react';\n\nimport { boldMatchedText } from '../../../../utils';\nimport { SEARCH_PREVIEW_SUGGESTION } from './constants';\nimport { Label, SearchIcon, StyledChip } from './styles';\nimport type { SearchPreviewSuggestionProps } from './types';\n\nexport const SearchPreviewSuggestion: FC<SearchPreviewSuggestionProps> = ({ searchPhrase, text, onClick }) => {\n  const { getTestId } = useTestId();\n\n  const label = useMemo(() => {\n    const textWithBoldPhrase = boldMatchedText({ searchPhrase, text });\n\n    return <Label color=\"textPrimary\">{textWithBoldPhrase}</Label>;\n  }, [searchPhrase, text]);\n\n  const icon = useMemo(() => <SearchIcon />, []);\n\n  return (\n    <StyledChip\n      variant=\"rounded\"\n      data-testid={getTestId(SEARCH_PREVIEW_SUGGESTION)}\n      label={label}\n      icon={icon}\n      onClick={onClick}\n    />\n  );\n};\n","import { Typography } from '@ori-ui/mui';\nimport useTestId from '@ori/testid-generator';\nimport type { FC } from 'react';\n\nimport { useTranslations } from '../../../../hooks/useTranslations';\nimport { SEARCH_PREVIEW_HEADER } from './constants';\nimport type { SearchPreviewHeaderProps } from './types';\n\n/**\n * Search Preview header component. This component is used to display the search query.\n */\nexport const SearchPreviewHeader: FC<SearchPreviewHeaderProps> = ({ query }) => {\n  const { getTestId } = useTestId();\n  const { translations } = useTranslations();\n\n  return (\n    <Typography\n      data-testid={getTestId(SEARCH_PREVIEW_HEADER)}\n      fontWeight=\"bold\"\n      variant=\"h6\"\n      component=\"h6\"\n      color=\"textPrimary\"\n    >\n      {`${translations.popularSearchQueries} ”${(query ?? '').trim()}”`}\n    </Typography>\n  );\n};\n","export const SEARCH_PREVIEW_HEADER = 'search-preview-header';\n","export const SEARCH_PREVIEW_IMAGE = 'search-preview-image';\nexport const SEARCH_PREVIEW_IMAGE_PLACEHOLDER = 'search-preview-image-placeholder';\nexport const SEARCH_PREVIEW_IMAGE_SIZE = 80;\nexport const SEARCH_PREVIEW_IMAGE_WRAPPER_HEIGHT = 110;\n","import { styled } from '@ori-ui/mui';\n\nimport { SEARCH_PREVIEW_IMAGE_SIZE, SEARCH_PREVIEW_IMAGE_WRAPPER_HEIGHT } from './constants';\n\nexport const Root = styled('img')({\n  height: SEARCH_PREVIEW_IMAGE_SIZE,\n  width: SEARCH_PREVIEW_IMAGE_SIZE,\n  minWidth: SEARCH_PREVIEW_IMAGE_SIZE,\n});\n\nexport const ImageWrapper = styled('div')(({ theme }) => ({\n  background: theme.palette.grey[100],\n  borderRadius: theme.shape.borderRadius,\n  height: SEARCH_PREVIEW_IMAGE_WRAPPER_HEIGHT,\n  width: SEARCH_PREVIEW_IMAGE_SIZE,\n  padding: theme.spacing(3, 0),\n  boxSizing: 'border-box',\n}));\n","import { useTheme } from '@ori-ui/mui';\nimport { generateSrcSet, getImageVariants, type ImageSizesHelperParams } from '@ori/image-sizes-helper';\nimport { ImagePlaceholder } from '@ori/presentation-components';\nimport useTestId from '@ori/testid-generator';\nimport { type FC } from 'react';\n\nimport { SEARCH_PREVIEW_IMAGE, SEARCH_PREVIEW_IMAGE_PLACEHOLDER, SEARCH_PREVIEW_IMAGE_SIZE } from './constants';\nimport { ImageWrapper, Root } from './styles';\nimport type { SearchPreviewImageProps } from './types';\n\nexport const SearchPreviewImage: FC<SearchPreviewImageProps> = ({ imageUrl, name }) => {\n  const { getTestId } = useTestId();\n  const theme = useTheme();\n\n  if (!imageUrl) {\n    return (\n      <ImageWrapper>\n        <ImagePlaceholder\n          testId={getTestId(SEARCH_PREVIEW_IMAGE_PLACEHOLDER)}\n          height={SEARCH_PREVIEW_IMAGE_SIZE}\n          width={SEARCH_PREVIEW_IMAGE_SIZE}\n        />\n      </ImageWrapper>\n    );\n  }\n\n  const imagesVariants: ImageSizesHelperParams = {\n    url: imageUrl,\n    imageFormat: 'WebP',\n    backgroundColor: theme.palette.grey[100],\n    imageSizeMultiplier: 2,\n    params: [\n      {\n        width: SEARCH_PREVIEW_IMAGE_SIZE,\n        height: SEARCH_PREVIEW_IMAGE_SIZE,\n        quality: 90,\n      },\n    ],\n  };\n\n  return (\n    <ImageWrapper>\n      <Root\n        data-testid={getTestId(SEARCH_PREVIEW_IMAGE)}\n        alt={name ?? ''}\n        src={imageUrl}\n        srcSet={generateSrcSet(getImageVariants(imagesVariants))}\n        sizes={`${SEARCH_PREVIEW_IMAGE_SIZE}px`}\n      />\n    </ImageWrapper>\n  );\n};\n","import { NEW_EDITION } from '@ori/presentation-components';\n\nexport const SEARCH_PREVIEW_PRODUCT_PRODUCT_INFO_LABEL = 'search-preview-product-product-info-label';\n\nexport const allowedDealLabels = [NEW_EDITION];\n","import { styled } from '@ori-ui/mui';\n\nexport const LabelContainer = styled('div')(({ theme }) => ({\n  marginBottom: theme.spacing(1),\n  [theme.breakpoints.up('md')]: {\n    marginBottom: 0,\n  },\n}));\n","import { Chip } from '@ori-ui/mui';\nimport { isPpaLabel } from '@ori/presentation-components';\nimport useTestId from '@ori/testid-generator';\nimport { useMemo, type FC } from 'react';\n\nimport { type SearchPreviewProductProps } from '../../types';\nimport { allowedDealLabels, SEARCH_PREVIEW_PRODUCT_PRODUCT_INFO_LABEL } from './constants';\nimport { LabelContainer } from './styles';\n\nexport type ProductInfoLabelProps = Pick<SearchPreviewProductProps, 'ppa' | 'deal' | 'code'>;\n\nexport const ProductInfoLabel: FC<ProductInfoLabelProps> = ({ ppa, deal, code }) => {\n  const { getTestId } = useTestId();\n  const shouldDisplayPpaLabel = useMemo(() => isPpaLabel(ppa?.labelKey) && !!ppa.title, [ppa]);\n  const shouldDisplayDealLabel = useMemo(\n    () => !shouldDisplayPpaLabel && allowedDealLabels.includes(deal?.labelKey ?? '') && !!deal?.title,\n    [deal, shouldDisplayPpaLabel],\n  );\n\n  if (!shouldDisplayPpaLabel && !shouldDisplayDealLabel) {\n    return null;\n  }\n\n  if (shouldDisplayPpaLabel) {\n    return (\n      <LabelContainer>\n        <Chip\n          data-testid={getTestId(`${SEARCH_PREVIEW_PRODUCT_PRODUCT_INFO_LABEL}-${code}`)}\n          label={ppa?.title}\n          variant=\"tag\"\n          color=\"default\"\n        />\n      </LabelContainer>\n    );\n  }\n\n  return (\n    <LabelContainer>\n      <Chip\n        data-testid={getTestId(`${SEARCH_PREVIEW_PRODUCT_PRODUCT_INFO_LABEL}-${code}`)}\n        label={deal?.title}\n        variant=\"filled\"\n        color=\"default\"\n        size=\"small\"\n      />\n    </LabelContainer>\n  );\n};\n","export const MAX_VISIBLE_SHADES_COUNT = 5;\nexport const SEARCH_SHADE = 'search-shade';\n","import { styled } from '@ori-ui/mui';\n\nexport const Root = styled('div')(({ theme }) => ({\n  alignItems: 'center',\n  display: 'flex',\n  gap: theme.spacing(1),\n  height: 14,\n  overflow: 'hidden',\n}));\n","import { Typography } from '@ori-ui/mui';\nimport { Shade, ShadeSize } from '@ori/presentation-components';\nimport { useMemo, type FC } from 'react';\n\nimport { SEARCH_SHADE } from './constants';\nimport { Root } from './styles';\nimport { type ShadesProps } from './types';\n\nexport const Shades: FC<ShadesProps> = ({ shades, maxVisible }) => {\n  const shadesToRender = useMemo(\n    () =>\n      shades.slice(0, maxVisible).map((shade) => (\n        <Shade\n          key={shade.productCode}\n          shade={shade}\n          size={ShadeSize.Small}\n          testId={SEARCH_SHADE}\n        />\n      )),\n    [shades, maxVisible],\n  );\n\n  if (shades.length < 2) {\n    return null;\n  }\n\n  return (\n    <Root>\n      {shadesToRender}\n      {shades.length > maxVisible ? (\n        <Typography\n          color=\"textPrimary\"\n          variant=\"overline\"\n          fontWeight=\"bold\"\n          lineHeight=\"normal\"\n        >\n          +{shades.length - maxVisible}\n        </Typography>\n      ) : null}\n    </Root>\n  );\n};\n","import { Typography, styled } from '@ori-ui/mui';\n\nexport const Root = styled('div')(({ theme }) => ({\n  display: 'flex',\n  flexDirection: 'column',\n  gap: theme.spacing(1),\n}));\n\nexport const Brand = styled(Typography)({\n  display: '-webkit-box',\n  letterSpacing: 2,\n  lineHeight: 'normal',\n  overflow: 'hidden',\n  textAlign: 'left',\n  textTransform: 'uppercase',\n  WebkitBoxOrient: 'vertical',\n  WebkitLineClamp: 1,\n  width: '100%',\n  '&:empty': { display: 'none' },\n});\n\nexport const Name = styled(Typography)(({ theme }) => ({\n  display: '-webkit-box',\n  lineHeight: theme.spacing(4),\n  overflow: 'hidden',\n  textAlign: 'left',\n  WebkitBoxOrient: 'vertical',\n  WebkitLineClamp: 2,\n  width: '100%',\n}));\n\nexport const Bottom = styled('div')(({ theme }) => ({\n  display: 'flex',\n  flexDirection: 'row',\n  gap: theme.spacing(2),\n  alignItems: 'center',\n  flexWrap: 'wrap',\n}));\n","import { Typography } from '@ori-ui/mui';\nimport useTestId from '@ori/testid-generator';\nimport { useMemo, type FC } from 'react';\n\nimport { boldMatchedText } from '../../../../../../utils';\nimport { type SearchPreviewProductProps } from '../../types';\nimport { ProductInfoLabel } from '../ProductInfoLabel';\nimport { MAX_VISIBLE_SHADES_COUNT, Shades } from '../Shades';\nimport { SEARCH_PREVIEW_PRODUCT_PRODUCT_INFO } from './constants';\nimport { Bottom, Brand, Name, Root } from './styles';\n\nexport type ProductInfoProps = Pick<\n  SearchPreviewProductProps,\n  'name' | 'brand' | 'searchPhrase' | 'shades' | 'code' | 'deal' | 'ppa'\n>;\n\nexport const ProductInfo: FC<ProductInfoProps> = ({ shades, name, brand, searchPhrase, code, deal, ppa }) => {\n  const { getTestId } = useTestId();\n\n  const nameWithSearchPhrase = useMemo(() => boldMatchedText({ searchPhrase, text: name }), [searchPhrase, name]);\n\n  return (\n    <Root data-testid={getTestId(`${SEARCH_PREVIEW_PRODUCT_PRODUCT_INFO}-${code}`)}>\n      <ProductInfoLabel\n        ppa={ppa}\n        deal={deal}\n        code={code}\n      />\n      <Brand\n        variant=\"overline\"\n        color=\"textSecondary\"\n        data-testid={`${getTestId('brand')}-${code}`}\n      >\n        {brand ?? ''}\n      </Brand>\n      <Name\n        color=\"textPrimary\"\n        data-testid={`${getTestId('name')}-${code}`}\n      >\n        {nameWithSearchPhrase}\n      </Name>\n      <Bottom>\n        <Typography\n          variant=\"caption\"\n          color=\"textSecondary\"\n        >\n          {code}\n        </Typography>\n        {shades ? (\n          <Shades\n            shades={shades}\n            maxVisible={MAX_VISIBLE_SHADES_COUNT}\n          />\n        ) : null}\n      </Bottom>\n    </Root>\n  );\n};\n","import type { Theme } from '@ori-ui/mui';\n\nexport const getCurrentPriceColor = (theme: Theme, oldPriceVisible?: boolean) =>\n  oldPriceVisible ? theme.palette.offer.main : theme.palette.text.primary;\n","import { Typography, styled } from '@ori-ui/mui';\nimport { shouldNotForwardProp } from '@ori/presentation-utils';\n\nimport { getCurrentPriceColor } from './utils';\n\nexport const Root = styled('div')({\n  display: 'flex',\n  flexDirection: 'column',\n  justifyContent: 'center',\n  alignItems: 'flex-start',\n});\n\ninterface CurrentPriceProps {\n  oldPriceVisible?: boolean;\n}\nexport const CurrentPrice = styled(Typography, {\n  shouldForwardProp: shouldNotForwardProp(['oldPriceVisible']),\n})<CurrentPriceProps>(({ oldPriceVisible, theme }) => ({\n  color: getCurrentPriceColor(theme, oldPriceVisible),\n}));\n\nexport const OldPrice = styled(Typography)(({ theme }) => ({\n  color: theme.palette.grey.A700,\n  textDecoration: 'line-through',\n}));\n","import useTestId from '@ori/testid-generator';\nimport type { FC } from 'react';\n\nimport { type SearchPreviewProductProps } from '../../types';\nimport { SEARCH_PREVIEW_PRODUCT_PRICES } from './constants';\nimport { Root, CurrentPrice, OldPrice } from './styles';\n\nexport type PricesProps = Pick<SearchPreviewProductProps, 'price' | 'code'>;\nexport const Prices: FC<PricesProps> = ({ price, code }) => {\n  const { getTestId } = useTestId();\n\n  if (!price?.currentFormatted) {\n    return null;\n  }\n\n  const { currentFormatted, oldFormatted } = price;\n  const oldPriceVisible = Boolean(oldFormatted);\n\n  return (\n    <Root data-testid={getTestId(`${SEARCH_PREVIEW_PRODUCT_PRICES}-${code}`)}>\n      <CurrentPrice\n        fontWeight=\"bold\"\n        oldPriceVisible={oldPriceVisible}\n      >\n        {currentFormatted}\n      </CurrentPrice>\n      {oldPriceVisible ? <OldPrice>{oldFormatted}</OldPrice> : null}\n    </Root>\n  );\n};\n","import { styled } from '@ori-ui/mui';\n\nexport const Root = styled('div')(({ theme }) => ({\n  display: 'flex',\n  padding: theme.spacing(2, 0),\n  gap: theme.spacing(3),\n  cursor: 'pointer',\n}));\n\nexport const Inner = styled('div')(({ theme }) => ({\n  display: 'flex',\n  width: '100%',\n  flexDirection: 'column',\n  gap: theme.spacing(2),\n  [theme.breakpoints.up('lg')]: {\n    flexDirection: 'row',\n    height: 'min-content',\n    alignItems: 'center',\n  },\n}));\n\nexport const Info = styled('div')(({ theme }) => ({\n  [theme.breakpoints.up('md')]: {\n    flex: 3,\n  },\n}));\n\nexport const PriceAndButton = styled('div')(({ theme }) => ({\n  width: '100%',\n  display: 'flex',\n  gap: theme.spacing(2),\n  [theme.breakpoints.up('md')]: {\n    flex: 2,\n  },\n}));\n\nexport const Price = styled('div')(({ theme }) => ({\n  flex: '1 1 0',\n  [theme.breakpoints.up('lg')]: {\n    display: 'flex',\n    alignItems: 'center',\n  },\n}));\n","import { Placement } from '@ori/analytics-data';\nimport { useEnvironment } from '@ori/environment';\nimport { QuickBuyButton } from '@ori/presentation-components';\nimport useTestId from '@ori/testid-generator';\nimport { type FC } from 'react';\n\nimport { SearchPreviewImage } from '../SearchPreviewImage';\nimport { Prices, ProductInfo } from './components';\nimport { SEARCH_PREVIEW_PRODUCT } from './constants';\nimport { Info, Inner, Price, PriceAndButton, Root } from './styles';\nimport { type SearchPreviewProductProps } from './types';\n\nexport const SearchPreviewProduct: FC<SearchPreviewProductProps> = ({\n  index,\n  code,\n  name,\n  brand,\n  image,\n  deal,\n  ppa,\n  onProductClick,\n  onQuickBuyButtonClick,\n  price,\n  searchPhrase,\n  canBeSold = true,\n  shades,\n}) => {\n  const { getTestId } = useTestId();\n  const { tenant } = useEnvironment();\n\n  return (\n    <Root\n      data-testid={getTestId(SEARCH_PREVIEW_PRODUCT)}\n      onClick={onProductClick}\n    >\n      <SearchPreviewImage\n        name={name}\n        imageUrl={image}\n      />\n      <Inner>\n        <Info>\n          <ProductInfo\n            brand={brand}\n            name={name}\n            searchPhrase={searchPhrase}\n            shades={shades}\n            code={code}\n            deal={deal}\n            ppa={ppa}\n          />\n        </Info>\n        <PriceAndButton>\n          <Price>\n            <Prices\n              price={price}\n              code={code}\n            />\n          </Price>\n          {canBeSold ? (\n            <div>\n              <QuickBuyButton\n                tenant={tenant}\n                currentProductCode={code}\n                name={name}\n                placement={Placement.TopNavigationSearchSuggestions}\n                currentPrice={price?.currentFormatted ?? ''}\n                position={index}\n                onQuickBuyButtonClick={onQuickBuyButtonClick}\n              />\n            </div>\n          ) : null}\n        </PriceAndButton>\n      </Inner>\n    </Root>\n  );\n};\n","import { Divider, styled } from '@ori-ui/mui';\n\nexport const Root = styled('div')(({ theme }) => ({\n  position: 'relative',\n  height: '100%',\n  padding: theme.spacing(0, 3),\n  boxSizing: 'border-box',\n  [theme.breakpoints.up('md')]: {\n    borderRadius: theme.spacing(3),\n    overflow: 'hidden',\n    padding: theme.spacing(0, 3, 10, 3),\n  },\n}));\n\nexport const Inner = styled('div')(({ theme }) => ({\n  display: 'flex',\n  flexDirection: 'column',\n  alignItems: 'flex-start',\n  gap: theme.spacing(3),\n  boxSizing: 'border-box',\n  padding: theme.spacing(0, 0, 3, 0),\n  overflowY: 'auto',\n  [theme.breakpoints.up('md')]: {\n    maxHeight: '100%',\n    padding: theme.spacing(6, 3, 0, 3),\n  },\n  [theme.breakpoints.up('lg')]: {\n    gap: theme.spacing(6),\n    padding: theme.spacing(6, 7, 0, 7),\n  },\n}));\n\nexport const Suggestions = styled('div')(({ theme }) => ({\n  display: 'flex',\n  overflowX: 'auto',\n  flexWrap: 'nowrap',\n  scrollbarWidth: 'none',\n  alignItems: 'flex-start',\n  justifyContent: 'flex-start',\n  gap: theme.spacing(3),\n  maxWidth: '100%',\n  [theme.breakpoints.up('md')]: {\n    flexWrap: 'wrap',\n    overflowX: 'visible',\n  },\n}));\n\nexport const Products = styled('div')(({ theme }) => ({\n  display: 'flex',\n  flexDirection: 'column',\n  width: '100%',\n}));\n\nexport const SeeAllResults = styled('div')(({ theme }) => ({\n  position: 'fixed',\n  bottom: '0',\n  display: 'flex',\n  justifyContent: 'center',\n  width: '100%',\n  backgroundColor: theme.palette.grey[100],\n  padding: theme.spacing(3, 0),\n  left: 0,\n  [theme.breakpoints.up('md')]: {\n    position: 'absolute',\n  },\n}));\n\nexport const StyledDivider = styled(Divider)(({ theme }) => ({\n  backgroundColor: theme.palette.grey[200],\n  margin: theme.spacing(3, 0),\n  [theme.breakpoints.up('md')]: {\n    margin: theme.spacing(1, 0),\n  },\n}));\n","import * as SearchSuggestionClick from '@ori-events/search-suggestion-click';\nimport { Link } from '@ori-ui/mui';\nimport { ContentType, Placement } from '@ori/analytics-data';\nimport { useCulture } from '@ori/culture';\nimport useTestId from '@ori/testid-generator';\nimport { useCallback, type FC } from 'react';\nimport { Fragment } from 'react';\n\nimport { useTranslations } from '../../hooks/useTranslations';\nimport { addParamsToUrl, analytics, getProductUrl, getQuickBuyButtonOnClickHandler, goToPage } from '../../utils';\nimport { getSearchUrl } from '../../utils/getSearchUrl';\nimport { QUERY_NAME, SearchPreviewHeader, SearchPreviewProduct, SearchPreviewSuggestion } from './components';\nimport { SEARCH_PREVIEW, SEARCH_PREVIEW_SEE_ALL_RESULTS } from './constants';\nimport { useSendNavigationSignal } from './hooks';\nimport { Inner, Products, Root, SeeAllResults, StyledDivider, Suggestions } from './styles';\nimport type { SearchProduct, SearchPreviewProps } from './types';\n\nexport const SearchPreview: FC<SearchPreviewProps> = ({ numberOfProducts, products, suggestions, query }) => {\n  const { getTestId } = useTestId();\n  const { formatMessage } = useTranslations();\n  const { financialSet } = useCulture();\n  const { sendNavigationSignal } = useSendNavigationSignal({ query });\n\n  const onSuggestionsClick = useCallback(\n    (suggestion: string, position: number) => () => {\n      window.dispatchEvent(\n        new CustomEvent<SearchSuggestionClick.Data>(SearchSuggestionClick.Name, {\n          detail: {\n            itemData: {\n              target: getSearchUrl(suggestion),\n              localBannerTitle: suggestion,\n              media: [],\n            },\n            itemType: ContentType.PopularQuery,\n            searchQuery: query,\n            placement: Placement.TopNavigationSearchSuggestions,\n            position,\n          },\n        }),\n      );\n      goToPage(getSearchUrl(suggestion));\n    },\n    [query],\n  );\n\n  const onProductLick = useCallback(\n    (product: SearchProduct, position: number) => async () => {\n      const searchSuggestionClickData: SearchSuggestionClick.Data = {\n        itemData: analytics.formatProduct({\n          ...product,\n          currencyCode: financialSet?.currencyCode,\n        }),\n        itemType: ContentType.Product,\n        searchQuery: query,\n        placement: Placement.TopNavigationSearchSuggestions,\n        position,\n      };\n      window.dispatchEvent(\n        new CustomEvent<SearchSuggestionClick.Data>(SearchSuggestionClick.Name, {\n          detail: searchSuggestionClickData,\n        }),\n      );\n      await sendNavigationSignal(position);\n      goToPage(\n        addParamsToUrl({\n          url: getProductUrl(product.code),\n          params: query\n            ? {\n                [QUERY_NAME]: query,\n              }\n            : undefined,\n        }),\n      );\n    },\n    [financialSet?.currencyCode, query, sendNavigationSignal],\n  );\n\n  return (\n    <Root data-testid={getTestId(SEARCH_PREVIEW)}>\n      <Inner>\n        {suggestions.length ? (\n          <Suggestions>\n            {suggestions.map(({ text }, index) => (\n              <SearchPreviewSuggestion\n                key={text}\n                text={text}\n                searchPhrase={query}\n                onClick={onSuggestionsClick(text, index)}\n              />\n            ))}\n          </Suggestions>\n        ) : null}\n        <SearchPreviewHeader query={query} />\n        {products.length ? (\n          <Products>\n            {products.map((product, index) => (\n              <Fragment key={product.code}>\n                <SearchPreviewProduct\n                  key={product.code}\n                  index={index}\n                  {...product}\n                  searchPhrase={query}\n                  onProductClick={onProductLick(product, index)}\n                  onQuickBuyButtonClick={getQuickBuyButtonOnClickHandler(product, index)}\n                />\n                {products.length - 1 === index ? null : <StyledDivider />}\n              </Fragment>\n            ))}\n          </Products>\n        ) : null}\n      </Inner>\n      <SeeAllResults>\n        <Link\n          fontWeight=\"bold\"\n          textTransform=\"uppercase\"\n          color=\"textPrimary\"\n          data-testid={getTestId(SEARCH_PREVIEW_SEE_ALL_RESULTS)}\n          href={getSearchUrl(query)}\n        >\n          {formatMessage('seeAllResultsFor', { count: numberOfProducts })}\n        </Link>\n      </SeeAllResults>\n    </Root>\n  );\n};\n","export const PRODUCTS_URL = '/products/product?code=';\n\nexport const getProductUrl = (code: string) => `${PRODUCTS_URL}${code}`;\n","interface AddParamsToUrl {\n  url: string;\n  params?: Record<string, string>;\n}\nexport const addParamsToUrl = ({ url: path, params = {} }: AddParamsToUrl) => {\n  const [baseUrl, queryString = ''] = path.split('?');\n  const urlParams = new URLSearchParams(queryString);\n\n  Object.entries(params).forEach(([key, value]) => {\n    urlParams.set(key, encodeURIComponent(value));\n  });\n\n  return `${baseUrl}?${urlParams.toString()}`;\n};\n","export const SEARCH_PREVIEW = 'search-preview';\nexport const SEARCH_PREVIEW_SEE_ALL_RESULTS = 'search-preview-see-all-results';\nexport const MAX_SEARCH_HEIGHT = 630;\n","export const SEARCH_PREVIEW_PRODUCT_SKELETON = 'search-preview-product-skeleton';\n","import { styled } from '@ori-ui/mui';\n\nimport { SEARCH_PREVIEW_IMAGE_SIZE, SEARCH_PREVIEW_IMAGE_WRAPPER_HEIGHT } from '../../../SearchPreview/components';\nimport { Root as ProductRoot } from '../../../SearchPreview/components/SearchPreviewProduct/styles';\nimport { UnifiedSkeleton } from '../../../styles';\n\nexport const Root = styled(ProductRoot)(({ theme }) => ({\n  cursor: 'unset',\n}));\n\nexport const ImageSkeleton = styled(UnifiedSkeleton)(({ theme }) => ({\n  width: SEARCH_PREVIEW_IMAGE_SIZE,\n  height: SEARCH_PREVIEW_IMAGE_WRAPPER_HEIGHT,\n  minWidth: SEARCH_PREVIEW_IMAGE_SIZE,\n}));\n\nexport const QuickBuyButtonSkeleton = styled(UnifiedSkeleton)(({ theme }) => ({\n  width: 35,\n  height: 35,\n  [theme.breakpoints.up('sm')]: {\n    width: 45,\n    height: 45,\n  },\n}));\n","import useTestId from '@ori/testid-generator';\nimport { type FC } from 'react';\n\nimport { Root as ProductInfoRoot } from '../../../SearchPreview/components/SearchPreviewProduct/components/ProductInfo/styles';\nimport { Info, Inner, Price, PriceAndButton } from '../../../SearchPreview/components/SearchPreviewProduct/styles';\nimport { UnifiedSkeleton } from '../../../styles';\nimport { SEARCH_PREVIEW_PRODUCT_SKELETON } from './constants';\nimport { ImageSkeleton, QuickBuyButtonSkeleton, Root } from './styles';\nimport { type SearchPreviewProductSkeletonProps } from './types';\n\nexport const SearchPreviewProductSkeleton: FC<SearchPreviewProductSkeletonProps> = ({ animation, className }) => {\n  const { getTestId } = useTestId();\n\n  return (\n    <Root\n      className={className}\n      data-testid={getTestId(SEARCH_PREVIEW_PRODUCT_SKELETON)}\n    >\n      <ImageSkeleton animation={animation} />\n      <Inner>\n        <Info>\n          <ProductInfoRoot>\n            <UnifiedSkeleton\n              variant=\"text\"\n              height={15}\n              width={60}\n              animation={animation}\n            />\n            <UnifiedSkeleton\n              variant=\"text\"\n              height={19}\n              width=\"40%\"\n              animation={animation}\n            />\n            <UnifiedSkeleton\n              variant=\"text\"\n              height={19}\n              width={35}\n              animation={animation}\n            />\n          </ProductInfoRoot>\n        </Info>\n        <PriceAndButton>\n          <Price>\n            <UnifiedSkeleton\n              variant=\"text\"\n              height={19}\n              width={40}\n              animation={animation}\n            />\n          </Price>\n          <QuickBuyButtonSkeleton\n            variant=\"circular\"\n            animation={animation}\n          />\n        </PriceAndButton>\n      </Inner>\n    </Root>\n  );\n};\n","export const SEARCH_PREVIEW_SKELETON = 'search-preview-skeleton';\nexport const SEARCH_PREVIEW_SKELETON_SUGGESTION = 'search-preview-skeleton-suggestion';\nexport const SEARCH_PREVIEW_SKELETON_HEADER = 'search-preview-skeleton-header';\nexport const PRODUCTS_COUNT = 12;\nexport const SUGGESTIONS_COUNT = 5;\n","import { styled } from '@ori-ui/mui';\n\nimport { SEARCH_PREVIEW_SEE_ALL_HEIGHT } from '../../constants';\nimport { SeeAllResults } from '../SearchPreview/styles';\nimport { UnifiedSkeleton } from '../styles';\n\nexport const HeaderSkeleton = styled(UnifiedSkeleton)(({ theme }) => ({\n  width: 150,\n  minHeight: 28,\n  [theme.breakpoints.up('md')]: {\n    minHeight: 33,\n    width: 200,\n  },\n}));\n\nexport const SeeAllSkeleton = styled(SeeAllResults)(({ theme }) => ({\n  height: SEARCH_PREVIEW_SEE_ALL_HEIGHT,\n}));\n","import useTestId from '@ori/testid-generator';\nimport times from 'lodash.times';\nimport { Fragment, type FC } from 'react';\n\nimport { CHIP_HEIGHT } from '../SearchPreview/components';\nimport { Root, Inner, Products, StyledDivider, Suggestions } from '../SearchPreview/styles';\nimport { UnifiedSkeleton } from '../styles';\nimport { SEARCH_PREVIEW_PRODUCT_SKELETON, SearchPreviewProductSkeleton } from './components';\nimport {\n  PRODUCTS_COUNT,\n  SEARCH_PREVIEW_SKELETON,\n  SEARCH_PREVIEW_SKELETON_HEADER,\n  SEARCH_PREVIEW_SKELETON_SUGGESTION,\n  SUGGESTIONS_COUNT,\n} from './constants';\nimport { HeaderSkeleton, SeeAllSkeleton } from './styles';\nimport { type SearchPreviewSkeletonProps } from './types';\n\nexport const SearchPreviewSkeleton: FC<SearchPreviewSkeletonProps> = ({ animation = 'pulse', className }) => {\n  const { getTestId } = useTestId();\n\n  return (\n    <Root\n      data-testid={getTestId(SEARCH_PREVIEW_SKELETON)}\n      className={className}\n    >\n      <Inner>\n        <Suggestions>\n          {times(SUGGESTIONS_COUNT, (index) => (\n            <UnifiedSkeleton\n              key={`${SEARCH_PREVIEW_SKELETON_SUGGESTION}-${index}`}\n              data-testid={getTestId(SEARCH_PREVIEW_SKELETON_SUGGESTION)}\n              animation={animation}\n              width={100}\n              height={CHIP_HEIGHT}\n            />\n          ))}\n        </Suggestions>\n        <HeaderSkeleton\n          data-testid={getTestId(SEARCH_PREVIEW_SKELETON_HEADER)}\n          animation={animation}\n          variant=\"text\"\n        />\n        <Products>\n          {times(PRODUCTS_COUNT, (index) => (\n            <Fragment key={`${SEARCH_PREVIEW_PRODUCT_SKELETON}-${index}`}>\n              <SearchPreviewProductSkeleton animation={animation} />\n              {PRODUCTS_COUNT - 1 === index ? null : <StyledDivider />}\n            </Fragment>\n          ))}\n        </Products>\n      </Inner>\n      <SeeAllSkeleton />\n    </Root>\n  );\n};\n","import { styled } from '@ori-ui/mui';\nimport { shouldForwardProp } from '@ori/presentation-utils';\n\nimport {\n  CSS_HEIGHT_ANIMATION,\n  CSS_DESKTOP_HEIGHT,\n  SEARCH_INPUT_HEIGHT,\n  SEARCH_PREVIEW_SEE_ALL_HEIGHT,\n} from '../../../../constants';\nimport type { GetMobileCssVariableParams } from '../../../../utils/getMobileCssVariable';\nimport { getSearchInputTopAttribute } from '../../../../utils/getMobileCssVariable';\nimport { MAX_SEARCH_HEIGHT } from '../../../SearchPreview/constants';\nimport { SEARCH_INPUT_BOX_HEIGHT } from '../../constants';\n\nexport const SearchPreviewRoot = styled('div')(({ theme }) => ({\n  background: theme.palette.common.white,\n  boxSizing: 'border-box',\n  color: theme.palette.text.primary,\n  display: 'flex',\n  flexDirection: 'column',\n  left: 0,\n  padding: theme.spacing(3, 0),\n  position: 'absolute',\n  top: SEARCH_INPUT_HEIGHT,\n  transition: `top ${CSS_HEIGHT_ANIMATION}`,\n  width: '100%',\n  [theme.breakpoints.up('md')]: {\n    position: 'static',\n    padding: 0,\n    borderRadius: theme.spacing(0, 0, 3, 3),\n  },\n}));\n\ninterface SearchPreviewContentProps extends GetMobileCssVariableParams {\n  innerHeight: number;\n}\nexport const SearchPreviewContent = styled('div', {\n  shouldForwardProp: shouldForwardProp(),\n})<SearchPreviewContentProps>(({ innerHeight, isTopBannerVisible, showSearchOnScroll, theme }) => ({\n  display: 'flex',\n  flexDirection: 'column',\n  height: `calc(${innerHeight}px - ${SEARCH_PREVIEW_SEE_ALL_HEIGHT}px - ${getSearchInputTopAttribute({ isTopBannerVisible, showSearchOnScroll })} - ${SEARCH_INPUT_HEIGHT}px)`,\n  position: 'relative',\n  width: '100%',\n  overscrollBehaviorY: 'contain',\n  overflowY: 'scroll',\n\n  [theme.breakpoints.up('md')]: {\n    height: `min(${MAX_SEARCH_HEIGHT - SEARCH_INPUT_BOX_HEIGHT}px, calc(${innerHeight}px - ${CSS_DESKTOP_HEIGHT}))`,\n    overflowY: 'visible',\n  },\n}));\n","import * as ToggleMenuFlyout from '@ori-events/toggle-menu-flyout';\nimport { useWindowSize } from '@ori/presentation-hooks';\nimport type { FC } from 'react';\n\nimport { useAppConfig } from '../../../../context/configurationContext';\nimport { useActiveMenu, useSearchInput } from '../../../../context/navigation';\nimport { useTopAreaBanner } from '../../../../context/topAreaBannerContext';\nimport { SearchPreview } from '../../../SearchPreview';\nimport { SearchPreviewSkeleton } from '../../../SearchPreviewSkeleton';\nimport { SearchPreviewRoot, SearchPreviewContent } from './styles';\n\nexport interface SearchPreviewContainerProps {\n  query: string;\n}\n\nexport const SearchPreviewContainer: FC<SearchPreviewContainerProps> = ({ query }) => {\n  const { activeMenu } = useActiveMenu();\n  const { height } = useWindowSize();\n  const { results, isLoading } = useSearchInput();\n  const isActive = activeMenu === ToggleMenuFlyout.MenuTypes.SearchResults;\n  const { visible: isTopBannerVisible } = useTopAreaBanner();\n  const { showSearchOnScroll } = useAppConfig();\n\n  if (!isActive || !query) {\n    return null;\n  }\n\n  return (\n    <SearchPreviewRoot>\n      <SearchPreviewContent\n        innerHeight={height}\n        isTopBannerVisible={isTopBannerVisible}\n        showSearchOnScroll={showSearchOnScroll}\n      >\n        {isLoading ? (\n          <SearchPreviewSkeleton />\n        ) : (\n          <SearchPreview\n            query={query}\n            numberOfProducts={results?.numberOfProducts ?? 0}\n            products={results?.products ?? []}\n            suggestions={results?.suggestions ?? []}\n          />\n        )}\n      </SearchPreviewContent>\n    </SearchPreviewRoot>\n  );\n};\n","import { Backdrop, ButtonBase, styled } from '@ori-ui/mui';\nimport { shouldForwardProp, shouldNotForwardProp } from '@ori/presentation-utils';\n\nimport { SEARCH_INPUT_HEIGHT } from '../../constants';\nimport type { AppConfig } from '../../models';\nimport { getSearchInputTopAttribute } from '../../utils/getMobileCssVariable';\nimport { SEARCH_INPUT_BOX_HEIGHT } from './constants';\n\nexport interface SearchInputRootProps extends Pick<AppConfig, 'showSearchOnScroll'> {\n  isTopBannerVisible: boolean;\n  isVisibleOnMobile: boolean;\n  isFocused: boolean;\n  showOnlyOn: 'desktop' | 'mobile';\n}\n\nexport const Inner = styled('div')(({ theme }) => ({\n  display: 'flex',\n  flexDirection: 'column',\n  justifyContent: 'center',\n  background: theme.palette.common.white,\n  width: '100%',\n  borderRadius: 100,\n  [theme.breakpoints.up('md')]: {\n    borderRadius: theme.spacing(5),\n    margin: '0 auto',\n    maxWidth: '900px',\n  },\n}));\n\nexport const SearchInputRoot = styled('div', {\n  shouldForwardProp: shouldForwardProp(),\n})<SearchInputRootProps>(\n  ({ isTopBannerVisible, isVisibleOnMobile, showSearchOnScroll, showOnlyOn, isFocused, 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    padding: theme.spacing(0, 3, 3, 3),\n    position: 'fixed',\n    top: getSearchInputTopAttribute({ isTopBannerVisible, showSearchOnScroll }),\n    width: '100%',\n    zIndex: isFocused ? theme.zIndex.appBar + 2 : theme.zIndex.speedDial,\n    justifyContent: isVisibleOnMobile ? 'center' : undefined,\n\n    [theme.breakpoints.up('md')]: {\n      background: 'transparent',\n      display: showOnlyOn === 'desktop' ? 'block' : 'none',\n      height: SEARCH_INPUT_BOX_HEIGHT,\n      padding: 0,\n      position: 'static',\n    },\n  }),\n);\n\nexport const SearchInputBox = styled('div')(({ 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: '2.3rem',\n  height: SEARCH_INPUT_BOX_HEIGHT,\n  overflow: 'hidden',\n  paddingLeft: theme.spacing(3),\n  width: '100%',\n  svg: {\n    fill: theme.palette.text.primary,\n  },\n\n  [theme.breakpoints.up('md')]: {\n    height: SEARCH_INPUT_BOX_HEIGHT,\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: '1.6rem',\n  height: 'auto',\n  lineHeight: 1.5,\n  marginLeft: 8,\n  width: '100%',\n  textOverflow: 'ellipsis',\n\n  '&:focus': {\n    outline: 'none',\n  },\n\n  '&::placeholder': {\n    color: theme.palette.grey.A700,\n  },\n}));\n\nexport const SearchInputClear = styled(ButtonBase, {\n  shouldForwardProp: shouldNotForwardProp(['isFocused']),\n})<{\n  isFocused: boolean;\n}>(({ isFocused, theme }) => ({\n  height: 23,\n  marginRight: theme.spacing(3),\n  width: 23,\n\n  [theme.breakpoints.up('md')]: {\n    fontSize: '2rem',\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: 'fixed',\n  zIndex: '-1',\n  width: '100vw',\n  height: '100vh',\n});\n","export const SEARCH_INPUT_ROOT_DESKTOP = 'search-input-root-desktop';\nexport const SEARCH_INPUT_ROOT_MOBILE = 'search-input-root-mobile';\nexport const SEARCH_INPUT_BOX = 'search-input-box';\nexport const SEARCH_INPUT = 'search-input';\nexport const SEARCH = 'search';\nexport const SEARCH_INPUT_CLEAR = 'search-input-clear';\nexport const BACKDROP = 'backdrop';\nexport const SEARCH_INPUT_BOX_HEIGHT = 44;\n","import { useEffect, type KeyboardEvent } from 'react';\n\nimport { TOP_NAV_NO_SCROLL } from '../../constants';\nimport { goToPage } from '../../utils';\nimport { getSearchUrl } from '../../utils/getSearchUrl';\n\nexport const onEnterPressHandler = (e: KeyboardEvent<HTMLInputElement>) => {\n  if (e.key === 'Enter') {\n    const { value: searchQuery } = e.currentTarget;\n    goToPage(getSearchUrl(searchQuery));\n  }\n};\n\nexport const useRemoveBodyScroll = (enabled: boolean) => {\n  useEffect(() => {\n    if (enabled) {\n      document.body.classList.add(TOP_NAV_NO_SCROLL);\n    } else {\n      document.body.classList.remove(TOP_NAV_NO_SCROLL);\n    }\n\n    return () => {\n      document.body.classList.remove(TOP_NAV_NO_SCROLL);\n    };\n  }, [enabled]);\n};\n\ninterface ShouldShowBackdropParams {\n  isMobile: boolean;\n  isFocused: boolean;\n  isMenuActive: boolean;\n}\nexport const shouldShowBackdrop = ({ isMobile, isFocused, isMenuActive }: ShouldShowBackdropParams): boolean =>\n  (isMobile && isFocused && !isMenuActive) || (!isMobile && (isFocused || isMenuActive));\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 { useListenToKeyDown } from '@ori/presentation-hooks';\nimport useTestId from '@ori/testid-generator';\nimport type { ChangeEvent, FC } from 'react';\nimport { useEffect, useCallback, useState, useRef } from 'react';\nimport { 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 { SearchPreviewContainer } from './components/SearchPreviewContainer';\nimport {\n  BACKDROP,\n  SEARCH,\n  SEARCH_INPUT,\n  SEARCH_INPUT_BOX,\n  SEARCH_INPUT_CLEAR,\n  SEARCH_INPUT_ROOT_DESKTOP,\n  SEARCH_INPUT_ROOT_MOBILE,\n} from './constants';\nimport type { SearchInputRootProps } from './styles';\nimport { Inner, InputBackdrop, SearchInputBox, SearchInputClear, SearchInputInput, SearchInputRoot } from './styles';\nimport { onEnterPressHandler, shouldShowBackdrop, useRemoveBodyScroll } from './utils';\n\nexport type SearchInputProps = Pick<SearchInputRootProps, 'showOnlyOn'>;\nconst SCROLL_THRESHOLD = SEARCH_INPUT_HEIGHT + 5;\n\nexport const SearchInput: FC<SearchInputProps> = ({ showOnlyOn }) => {\n  const { showSearchOnScroll } = useAppConfig();\n  const { visible: isTopBannerVisible } = useTopAreaBanner();\n  const { activeMenu, hideSearchResultsTab, toggleActiveMenu } = useActiveMenu();\n  const {\n    hide,\n    show,\n    isVisible,\n    focus,\n    blur,\n    clearResults,\n    value,\n    isManuallyOpened,\n    setValue,\n    manualHide,\n    isFocused,\n    debouncedValue,\n  } = useSearchInput();\n  const isMenuActive = activeMenu === ToggleMenuFlyout.MenuTypes.SearchResults;\n  const isAccountSideMenuActive = activeMenu === ToggleMenuFlyout.MenuTypes.AccountSideMenu;\n  const isMobile = useIsMobile();\n  const inputRef = useRef<HTMLInputElement>(null);\n  const { translations } = useTranslations();\n  const [prevScrollY, setPrevScrollY] = useState(0);\n  const { getTestId } = useTestId();\n  useRemoveBodyScroll(isMenuActive && isMobile);\n  const throttledAnalytics = useThrottledCallback(() => UserAction.dispatch(START_SEARCH), SEARCH_THROTTLE_TIME);\n  const onFocusHandler = useCallback(() => {\n    focus();\n  }, [focus]);\n  const showBackdrop = shouldShowBackdrop({\n    isFocused,\n    isMenuActive,\n    isMobile,\n  });\n\n  const onChangeHandler = useCallback(\n    ({ target }: ChangeEvent<HTMLInputElement>) => {\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 && !isAccountSideMenuActive) {\n        hide();\n        hideSearchResultsTab();\n      } else if (difference < -SCROLL_THRESHOLD && isMobile && !isAccountSideMenuActive) {\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  }, [\n    isMobile,\n    show,\n    hide,\n    blur,\n    hideSearchResultsTab,\n    isManuallyOpened,\n    prevScrollY,\n    showSearchOnScroll,\n    isAccountSideMenuActive,\n  ]);\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  }, [blur, value]);\n\n  useListenToKeyDown(['Escape'], () => {\n    if (isFocused) {\n      inputRef.current?.blur();\n      handleOnBlur();\n      closeSearch();\n    }\n  });\n\n  const isVisibleOnMobile = showOnlyOn === 'mobile' && isVisible;\n\n  return (\n    <SearchInputRoot\n      isTopBannerVisible={isTopBannerVisible}\n      isVisibleOnMobile={isVisibleOnMobile}\n      showSearchOnScroll={showSearchOnScroll}\n      showOnlyOn={showOnlyOn}\n      isFocused={isFocused}\n      data-testid={getTestId(showOnlyOn === 'mobile' ? SEARCH_INPUT_ROOT_MOBILE : SEARCH_INPUT_ROOT_DESKTOP)}\n    >\n      <Inner>\n        <SearchInputBox data-testid={getTestId(SEARCH_INPUT_BOX)}>\n          <Search\n            fontSize=\"medium\"\n            data-testid={getTestId(SEARCH)}\n          />\n          <SearchInputInput\n            ref={inputRef}\n            autoFocus={isManuallyOpened}\n            type=\"text\"\n            placeholder={translations.searchDesktop}\n            value={value}\n            data-testid={getTestId(SEARCH_INPUT)}\n            onFocus={onFocusHandler}\n            onChange={onChangeHandler}\n            onBlur={handleOnBlur}\n            onKeyDown={onEnterPressHandler}\n          />\n          {value ? (\n            <SearchInputClear\n              disableRipple\n              aria-label={translations.clearSearchInput}\n              data-testid={getTestId(SEARCH_INPUT_CLEAR)}\n              isFocused={isFocused}\n              onClick={clearInput}\n            >\n              <Clear fontSize=\"inherit\" />\n            </SearchInputClear>\n          ) : null}\n        </SearchInputBox>\n        <SearchPreviewContainer query={debouncedValue} />\n      </Inner>\n      {showBackdrop ? (\n        <InputBackdrop\n          open\n          data-testid={getTestId(BACKDROP)}\n          onClick={closeSearch}\n        />\n      ) : null}\n    </SearchInputRoot>\n  );\n};\n","import { keyframes } from '@emotion/react';\nimport { Badge, badgeClasses, styled } from '@ori-ui/mui';\nimport { shouldNotForwardProp } from '@ori/presentation-utils';\n\nconst growShrinkAnimation = keyframes`\n0%, 100% {\n  width: 22px;\n  height: 22px;\n  font-size: 1rem;\n}\n50% {\n  width: 26px;\n  height: 26px;\n  font-size: 1.2rem;\n}\n`;\n\ninterface RootProps {\n  isAnimationActive: boolean;\n}\n\nexport const Root = styled(Badge, {\n  shouldForwardProp: shouldNotForwardProp(['isAnimationActive']),\n})<RootProps>(({ isAnimationActive }) => ({\n  [`.${badgeClasses.badge}`]: {\n    borderRadius: '50%',\n    ...(isAnimationActive && {\n      animationDuration: '1s',\n      animationName: `${growShrinkAnimation}`,\n    }),\n  },\n}));\n","import useTestId from '@ori/testid-generator';\nimport type { FC, PropsWithChildren } from 'react';\nimport { useEffect, useState } from 'react';\n\nimport { SHOPPING_BAG_COUNTER_ROOT, MINIBAG_COUNTER_ANIMATION_TIMEOUT } from './constants';\nimport { Root } from './styles';\nimport type { ShoppingBagCounterProps } from './types';\n\nexport const ShoppingBagCounter: FC<PropsWithChildren<ShoppingBagCounterProps>> = ({\n  shoppingBagQuantity,\n  children,\n}) => {\n  const [isAnimationActive, setIsAnimationActive] = useState(false);\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    <Root\n      isAnimationActive={isAnimationActive}\n      data-testid={getTestId(SHOPPING_BAG_COUNTER_ROOT)}\n      badgeContent={shoppingBagQuantity}\n      color=\"primary\"\n    >\n      {children}\n    </Root>\n  );\n};\n","export const SHOPPING_BAG_COUNTER_ROOT = 'shopping-bag-counter-root';\nexport const MINIBAG_COUNTER_ANIMATION_TIMEOUT = 1000;\n","import { IconButton } from '@ori-ui/components';\nimport { styled } from '@ori-ui/mui';\nimport { shouldNotForwardProp } from '@ori/presentation-utils';\n\ninterface RootProps {\n  isCnMarket: boolean;\n}\nexport const Root = styled(IconButton, {\n  shouldForwardProp: shouldNotForwardProp(['isCnMarket']),\n})<RootProps>(({ isCnMarket, theme }) => ({\n  color: theme.palette.text.primary,\n  fontSize: '3rem',\n  ...(isCnMarket && {\n    color: theme.palette.error.main,\n  }),\n  '&:hover, &:focus, &:active': {\n    backgroundColor: 'transparent',\n    color: theme.palette.text.primary,\n    ...(isCnMarket && {\n      color: theme.palette.error.main,\n    }),\n  },\n}));\n","import * as RequestShoppingContext from '@ori-events/request-shopping-context';\nimport * as ToggleMenuFlyoutEvent from '@ori-events/toggle-menu-flyout';\n\nexport const getMinibagFlyoutEvent = (shouldOpen?: boolean) =>\n  new CustomEvent(ToggleMenuFlyoutEvent.Name, {\n    detail: { menuType: ToggleMenuFlyoutEvent.MenuTypes.Minibag, shouldOpen },\n  });\n\nexport const triggerRequestShoppingContext = () => {\n  const requestShoppongContextEvent = new CustomEvent(RequestShoppingContext.Name);\n  window.dispatchEvent(requestShoppongContextEvent);\n};\n","import * as BasketUpdated from '@ori-events/basket-updated';\nimport * as ShoppingContextLoaded from '@ori-events/shopping-context-loaded';\nimport { EmptyBasket, AddToBag, AddToBagFilled, ShoppingBasketFilled } from '@ori-ui/icons';\nimport { useEnvironment } from '@ori/environment';\nimport useTestId from '@ori/testid-generator';\nimport type { FC } from 'react';\nimport { useCallback, useEffect } from 'react';\n\nimport { CN_MARKET } from '../../constants';\nimport { useTranslations } from '../../hooks/useTranslations';\nimport { ShoppingBagCounter } from './components';\nimport { SHOPPING_BAG_ICON_ROOT } from './constants';\nimport { useDeviceType, useShoppingBag } from './hooks';\nimport { Root } from './styles';\nimport { getMinibagFlyoutEvent, triggerRequestShoppingContext } from './utils';\n\nexport const ShoppingBagIcon: FC = () => {\n  const { translations } = useTranslations();\n  const { tenant } = useEnvironment();\n  const { getTestId } = useTestId();\n  const { isECatalogue, isMobile } = useDeviceType();\n  const isMobileOnECatalogue = isECatalogue && isMobile;\n  const isCnMarket = tenant === CN_MARKET;\n  const Icon = isCnMarket ? EmptyBasket : AddToBag;\n  const IconOnHover = isCnMarket ? ShoppingBasketFilled : AddToBagFilled;\n  const { onBasketUpdated, onShoppingContextLoaded, isReceivedShoppingContext, shoppingBagQuantity } = useShoppingBag();\n\n  useEffect(() => {\n    window.addEventListener(ShoppingContextLoaded.Name, onShoppingContextLoaded);\n    window.addEventListener(BasketUpdated.Name, onBasketUpdated);\n\n    triggerRequestShoppingContext();\n\n    return () => {\n      window.removeEventListener(ShoppingContextLoaded.Name, onShoppingContextLoaded);\n      window.removeEventListener(BasketUpdated.Name, onBasketUpdated);\n    };\n  }, [onShoppingContextLoaded, onBasketUpdated]);\n\n  useEffect(() => {\n    if (isReceivedShoppingContext) {\n      window.removeEventListener(ShoppingContextLoaded.Name, onShoppingContextLoaded);\n    }\n  }, [isReceivedShoppingContext, onShoppingContextLoaded]);\n\n  const onMouseEnter = useCallback(() => {\n    if (isECatalogue || isMobile) {\n      return;\n    }\n\n    window.dispatchEvent(getMinibagFlyoutEvent(true));\n  }, [isECatalogue, isMobile]);\n\n  const onMouseLeave = useCallback(() => {\n    if (isECatalogue || isMobile) {\n      return;\n    }\n\n    window.dispatchEvent(getMinibagFlyoutEvent(false));\n  }, [isECatalogue, isMobile]);\n\n  const onMobileEcataloguePageClick = useCallback(() => {\n    window.dispatchEvent(getMinibagFlyoutEvent());\n  }, []);\n\n  return (\n    <ShoppingBagCounter shoppingBagQuantity={shoppingBagQuantity}>\n      <Root\n        disableRipple={isMobileOnECatalogue}\n        aria-label={translations.shoppingBag}\n        isCnMarket={isCnMarket}\n        href={isMobileOnECatalogue ? undefined : '/shopping/basket'}\n        data-testid={getTestId(SHOPPING_BAG_ICON_ROOT)}\n        hoverIcon={<IconOnHover fontSize=\"inherit\" />}\n        variant=\"text\"\n        onClick={isMobileOnECatalogue ? onMobileEcataloguePageClick : undefined}\n        onMouseEnter={isMobileOnECatalogue ? undefined : onMouseEnter}\n        onMouseLeave={isMobileOnECatalogue ? undefined : onMouseLeave}\n      >\n        <Icon fontSize=\"inherit\" />\n      </Root>\n    </ShoppingBagCounter>\n  );\n};\n","import type { Theme } from '@ori-ui/mui';\nimport { useMediaQuery } from '@ori-ui/mui';\nimport { useMemo, useState, useEffect } from 'react';\n\nexport const useDeviceType = () => {\n  const [isECatalogue, setIsECatalogue] = useState(false);\n  const mobileBreakpoint = useMediaQuery<Theme>((theme) => theme.breakpoints.down('sm'));\n  const mobileBreakpointECatalogue = useMediaQuery<Theme>((theme) => theme.breakpoints.down('md'));\n\n  useEffect(() => {\n    setIsECatalogue(document.getElementById('catalogue-ipaper-root') !== null);\n  }, []);\n\n  const isMobile = useMemo(\n    () => (isECatalogue ? mobileBreakpointECatalogue : mobileBreakpoint),\n    [isECatalogue, mobileBreakpointECatalogue, mobileBreakpoint],\n  );\n\n  return { isECatalogue, isMobile };\n};\n","import type * as BasketUpdated from '@ori-events/basket-updated';\nimport type * as ShoppingContextLoaded from '@ori-events/shopping-context-loaded';\nimport { useMemo, useState, useCallback } from 'react';\n\nimport { useAppConfig } from '../../../context';\n\nexport const useShoppingBag = () => {\n  const { setSessionId } = useAppConfig();\n  const [shoppingBagQuantity, setShoppingBagQuantity] = useState(0);\n  const [isReceivedShoppingContext, setIsReceivedShoppingContext] = useState(false);\n\n  const updateShoppingBagQuantity = useCallback((newQuantity: number) => {\n    if (newQuantity >= 0) {\n      setShoppingBagQuantity(newQuantity);\n    }\n  }, []);\n\n  const onShoppingContextLoaded = useCallback(\n    (event: ShoppingContextLoaded.Event) => {\n      updateShoppingBagQuantity(event.detail.shoppingBag.shoppingBagQuantity);\n      setIsReceivedShoppingContext(true);\n      setSessionId(event.detail.sessionId ?? undefined);\n    },\n    [setSessionId, updateShoppingBagQuantity],\n  );\n\n  const onBasketUpdated = useCallback(\n    (event: BasketUpdated.Event) => {\n      updateShoppingBagQuantity(event.detail.shoppingBag.shoppingBagQuantity);\n    },\n    [updateShoppingBagQuantity],\n  );\n\n  return useMemo(\n    () => ({\n      shoppingBagQuantity,\n      isReceivedShoppingContext,\n      onShoppingContextLoaded,\n      onBasketUpdated,\n    }),\n    [shoppingBagQuantity, isReceivedShoppingContext, onShoppingContextLoaded, onBasketUpdated],\n  );\n};\n","export const SHOPPING_BAG_ICON_ROOT = 'shopping-bag-icon-root';\n","export const USER_ICON_MOBILE = 'user-icon-mobile';\nexport const USER_ICON_DESKTOP = 'user-icon-desktop';\nexport const MY_PAGES_URL = '/ssoidentity/mypages';\n","import { User, UserFilled } from '@ori-ui/icons';\nimport { useToken } from '@ori/auth';\nimport { useLogin } from '@ori/login';\nimport useTestId from '@ori/testid-generator';\nimport type { FC } from 'react';\n\nimport { useHover, useCustomerInitials } from '../../hooks';\nimport { useTranslations } from '../../hooks/useTranslations';\nimport { MY_PAGES_URL, USER_ICON_DESKTOP, USER_ICON_MOBILE } from './constants';\nimport { DesktopUserIconButton, MobileUserIconButton, SignInLabel, UserAvatar } from './styles';\n\nexport const UserSection: FC = () => {\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        <MobileUserIconButton\n          ref={ref}\n          aria-label={translations.myAccount}\n          data-testid={getTestId(USER_ICON_MOBILE)}\n        >\n          {customerInitials ? (\n            <a href={MY_PAGES_URL}>\n              <UserAvatar>{customerInitials}</UserAvatar>\n            </a>\n          ) : null}\n        </MobileUserIconButton>\n        <DesktopUserIconButton\n          href={MY_PAGES_URL}\n          startIcon={customerInitials ? <UserAvatar>{customerInitials}</UserAvatar> : null}\n          variant=\"contained\"\n          data-testid={getTestId(USER_ICON_DESKTOP)}\n          color=\"secondary\"\n        >\n          <span>{translations.myAccount}</span>\n        </DesktopUserIconButton>\n      </>\n    );\n  }\n\n  return (\n    <>\n      <MobileUserIconButton\n        ref={ref}\n        disableRipple\n        aria-label={translations.signIn}\n        data-testid={getTestId(USER_ICON_MOBILE)}\n        onClick={doLogin}\n      >\n        <Icon fontSize=\"inherit\" />\n      </MobileUserIconButton>\n      <SignInLabel\n        ref={ref}\n        disableRipple\n        data-testid={getTestId(USER_ICON_DESKTOP)}\n        onClick={doLogin}\n      >\n        {translations.signIn}\n      </SignInLabel>\n    </>\n  );\n};\n","import { styled } from '@ori-ui/mui';\n\nexport const RightActionsSectionRoot = styled('div')(({ theme }) => ({\n  alignItems: 'center',\n  display: 'flex',\n  gap: theme.spacing(3),\n  justifySelf: 'end',\n  justifyContent: 'flex-end',\n  marginLeft: theme.spacing(3),\n  width: '100%',\n  [theme.breakpoints.up('sm')]: {\n    justifyContent: 'end',\n  },\n  [theme.breakpoints.up('md')]: {\n    gap: theme.spacing(4),\n    marginLeft: theme.spacing(4),\n    maxWidth: 'none',\n  },\n  [theme.breakpoints.up('lg')]: {\n    gap: theme.spacing(8),\n    marginLeft: theme.spacing(8),\n  },\n}));\n","import { useToken } from '@ori/auth';\nimport type { FC } from 'react';\n\nimport { useShouldRenderNotificationMenu } from '../../hooks/useShouldRenderNotificationMenu';\nimport { FavoritesHeartIcon } from '../FavoritesHeartIcon';\nimport { JoinIcon } from '../Join/components/JoinIcon/JoinIcon';\nimport { NotificationBellIcon } from '../NotificationBellIcon';\nimport { SearchIcon } from '../SearchIcon';\nimport { SearchInput } from '../SearchInput';\nimport { ShoppingBagIcon } from '../ShoppingBagIcon';\nimport { UserSection } from '../UserSection';\nimport { RightActionsSectionRoot } from './styles';\n\nexport const RightActionsSection: FC = () => {\n  const { isAnonymousUser } = useToken();\n  const showFavorites = !isAnonymousUser;\n  const shouldShowNotificationMenu = useShouldRenderNotificationMenu();\n\n  return (\n    <RightActionsSectionRoot>\n      <SearchInput showOnlyOn=\"desktop\" />\n      <SearchIcon />\n      {isAnonymousUser ? <JoinIcon /> : null}\n      <UserSection />\n      {shouldShowNotificationMenu ? <NotificationBellIcon /> : null}\n      {showFavorites ? <FavoritesHeartIcon /> : null}\n      <ShoppingBagIcon />\n    </RightActionsSectionRoot>\n  );\n};\n","import { useToken } from '@ori/auth';\n\nimport { useAppConfig } from '../context/configurationContext';\n\nexport const useShouldRenderNotificationMenu = (): boolean => {\n  const { isAnonymousUser } = useToken();\n  const { shouldDisplayNotificationIcon } = useAppConfig();\n\n  return !isAnonymousUser && !!shouldDisplayNotificationIcon;\n};\n","export const TOP_AREA_BANNER_HEIGHT = 34;\nexport const TOP_AREA_BANNER_BENEFIT_BANNER = 'top-area-banner-benefit-banner';\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<Pick<TopAreaBannerContext, 'isOrderOnBehalfVisible'>>\n>(({ isOrderOnBehalfVisible, theme, onClick }) => ({\n  background: isOrderOnBehalfVisible ? theme.palette.blue[300] : theme.palette.primary.light,\n  color: isOrderOnBehalfVisible ? theme.palette.common.white : theme.palette.text.primary,\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","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    <Root data-testid={getTestId(TOP_AREA_BANNER_BENEFIT_BANNER_SKELETON)}>\n      <Skeleton\n        animation=\"pulse\"\n        height={TOP_AREA_BANNER_HEIGHT}\n        variant=\"rectangular\"\n        width=\"100%\"\n      />\n    </Root>\n  );\n};\n","export const TOP_AREA_BANNER_BENEFIT_BANNER_SKELETON = 'top-area-banner-benefit-banner-skeleton';\n","export const ORDER_FORM_ROOT = 'order-form-root';\nexport const ORDER_ON_BEHALF_DIALOG_CHANGE_CONSULTANT_INPUT = 'order-on-behalf-dialog-change-consultant-input';\n","import { styled } from '@ori-ui/mui';\n\nexport const 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  gap: theme.spacing(3),\n}));\n","import type { AutocompleteRenderInputParams } from '@ori-ui/mui';\nimport { Autocomplete, Button, TextField } from '@ori-ui/mui';\nimport { axios } from '@ori/axios';\nimport { useLogger } from '@ori/logger';\nimport useTestId from '@ori/testid-generator';\nimport type { FC, ChangeEvent, SyntheticEvent } from 'react';\nimport { useCallback, useRef, useState } from 'react';\nimport { useForm } from 'react-hook-form';\n\nimport { useTranslations } from '../../../../hooks/useTranslations';\nimport {\n  type AccessConsultantResponse,\n  type ConsultantNumberHint,\n  type GetConsultantNumbersResponse,\n  type VipAccessValidateResponse,\n} from '../../../../models';\nimport { vipOrderUrls } from '../../../../utils';\nimport { ORDER_FORM_ROOT, ORDER_ON_BEHALF_DIALOG_CHANGE_CONSULTANT_INPUT } from './constants';\nimport { VipOrderFormRoot } from './styles';\nimport type { VipOrderFormProps } from './types';\n\nexport const ChangeConsultantForm: FC<VipOrderFormProps> = ({\n  vipAccessLabels: { ConsultantChangeConsultantNumber },\n}) => {\n  const logger = useLogger('ChangeConsultantForm');\n  const abortControllerRef = useRef(new AbortController());\n  const formRef = useRef<HTMLFormElement>(null);\n  const [areHintsLoading, setAreHintsLoading] = useState(false);\n  const [consultantNumber, setConsultantNumber] = useState('');\n  const [errorMessage, setErrorMessage] = useState<string | null>(null);\n  const [hints, setHints] = useState<ConsultantNumberHint[]>([]);\n  const [isSubmitLocked, setIsSubmitLocked] = useState(true);\n  const { translations } = useTranslations();\n  const { register, handleSubmit } = useForm();\n  const { getTestId } = useTestId();\n\n  const handleChange = useCallback(\n    (event: ChangeEvent<HTMLInputElement>) => {\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<GetConsultantNumbersResponse>(vipOrderUrls.consultantNumbers(value), {\n            signal: abortControllerRef.current.signal,\n          })\n          .then(({ data }) => setHints(data.map((hint, index) => ({ index, hint }))))\n          .catch((error: unknown) => {\n            if (error instanceof Error && error.name !== 'AbortError') {\n              logger.error(new Error('Cannot get consultant numbers', { cause: error }));\n            }\n          })\n          .finally(() => {\n            setAreHintsLoading(false);\n          });\n      }\n    },\n    [logger],\n  );\n\n  const handleSelect = useCallback(\n    (event: SyntheticEvent) => {\n      const { textContent: id } = event.target as HTMLElement;\n      setConsultantNumber(id ?? '');\n      setHints([]);\n\n      if (id) {\n        axios\n          .post<VipAccessValidateResponse>(vipOrderUrls.accessSwitchValidate(id))\n          .then(({ data: { message, result } }) => {\n            setErrorMessage(message);\n            setIsSubmitLocked(!result);\n          })\n          .catch((error: unknown) => logger.error(new Error('Cannot validate access switch', { cause: error })));\n      }\n    },\n    [logger],\n  );\n\n  const onSubmit = useCallback(async () => {\n    try {\n      const { data } = await axios.get<AccessConsultantResponse>(vipOrderUrls.accessConsultant(consultantNumber));\n      const { ConsultantNumber: consultant, ErrorMessage, IsAccessGranted } = data;\n\n      if (IsAccessGranted) {\n        try {\n          await axios.post(vipOrderUrls.accessSwitch(consultant));\n          formRef.current?.submit();\n        } catch (error: unknown) {\n          setErrorMessage(translations.failedToSubmit);\n          logger.error(new Error('Cannot post VipAccessSwitch', { cause: error }));\n        }\n      } else {\n        setErrorMessage(ErrorMessage);\n      }\n    } catch (error: unknown) {\n      logger.error(new Error('Cannot get consultant info', { cause: error }));\n    }\n  }, [consultantNumber, translations.failedToSubmit, logger]);\n\n  const renderInput = useCallback(\n    (props: AutocompleteRenderInputParams) => (\n      <TextField\n        data-testid={getTestId(ORDER_ON_BEHALF_DIALOG_CHANGE_CONSULTANT_INPUT)}\n        variant=\"standard\"\n        error={Boolean(errorMessage)}\n        helperText={errorMessage}\n        label={ConsultantChangeConsultantNumber}\n        {...register(props.id)}\n        onChange={handleChange}\n        {...props}\n        fullWidth\n      />\n    ),\n    [ConsultantChangeConsultantNumber, errorMessage, getTestId, handleChange, register],\n  );\n  const getOptionLabel = useCallback((hint: ConsultantNumberHint) => String(hint.hint), []);\n\n  return (\n    <VipOrderFormRoot\n      ref={formRef}\n      data-testid={getTestId(ORDER_FORM_ROOT)}\n      action={vipOrderUrls.basket}\n      autoComplete=\"off\"\n      method=\"POST\"\n      onSubmit={handleSubmit(onSubmit)}\n    >\n      <Autocomplete\n        fullWidth\n        getOptionLabel={getOptionLabel}\n        id=\"ConsultantNumber\"\n        loading={areHintsLoading}\n        loadingText={translations.loading}\n        noOptionsText={translations.noOptions}\n        options={hints}\n        renderInput={renderInput}\n        onChange={handleSelect}\n      />\n      <Button\n        fullWidth\n        disabled={isSubmitLocked}\n        color=\"primary\"\n        type=\"submit\"\n        variant=\"contained\"\n      >\n        {translations.change}\n      </Button>\n    </VipOrderFormRoot>\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: '1rem',\n  },\n\n  svg: {\n    height: '2rem',\n  },\n\n  'svg:first-of-type': {\n    marginRight: theme.spacing(1),\n  },\n  'svg:last-of-type': {\n    marginLeft: theme.spacing(1),\n  },\n}));\n\nexport const Username = styled(Typography)(({ theme }) => ({\n  textDecoration: 'underline',\n  color: theme.palette.common.white,\n  marginLeft: theme.spacing(1),\n  cursor: 'pointer',\n}));\n\nexport const PopupContentGroup = styled('div')(({ theme }) => ({\n  display: 'flex',\n  flexDirection: 'column',\n  justifyContent: 'space-between',\n  marginTop: theme.spacing(3),\n}));\n\nexport const PopupButton = styled(Button)(({ theme }) => ({\n  marginBottom: theme.spacing(3),\n}));\n\nexport const PopupLink = styled(Link)(({ theme }) => ({\n  marginBottom: theme.spacing(3),\n  textAlign: 'center',\n  color: theme.palette.common.black,\n}));\n","import { Dialog } from '@ori-ui/components';\nimport { ArrowLeftThin } from '@ori-ui/icons';\nimport { Typography } from '@ori-ui/mui';\nimport useTestId from '@ori/testid-generator';\nimport { useState, useCallback, useMemo } from 'react';\n\nimport { ChangeConsultantForm } from '../ChangeConsultantForm';\nimport { ORDER_ON_BEHALF_DIALOG, ORDER_ON_BEHALF_DIALOG_BACK_ARROW } from './constants';\nimport { BackArrow, PopupButton, PopupContentGroup, PopupLink } from './styles';\nimport type { OrderOnBehalfDialogProps } from './types';\n\nexport const OrderOnBehalfDialog = ({ vipAccessData, vipAccessLabels, open, close }: OrderOnBehalfDialogProps) => {\n  const [changeOpened, setChangeOpened] = useState(false);\n  const { getTestId } = useTestId();\n\n  const onChangeOpened = useCallback(\n    (value: boolean) => () => {\n      setChangeOpened(value);\n    },\n    [],\n  );\n\n  const header = useMemo(() => {\n    if (changeOpened) {\n      return (\n        <>\n          <BackArrow\n            data-testid={getTestId(ORDER_ON_BEHALF_DIALOG_BACK_ARROW)}\n            onClick={onChangeOpened(false)}\n          >\n            <ArrowLeftThin />\n          </BackArrow>\n          <Typography\n            variant=\"h5\"\n            component=\"h5\"\n          >\n            {vipAccessLabels.ConsultantChangeConsultantNumber}\n          </Typography>\n        </>\n      );\n    }\n\n    return undefined;\n  }, [changeOpened, getTestId, onChangeOpened, vipAccessLabels.ConsultantChangeConsultantNumber]);\n\n  return (\n    <Dialog\n      data-testid={getTestId(ORDER_ON_BEHALF_DIALOG)}\n      header={header}\n      open={open}\n      hideCloseButton={changeOpened}\n      onClose={close}\n    >\n      <PopupContentGroup>\n        {changeOpened ? (\n          <ChangeConsultantForm vipAccessLabels={vipAccessLabels} />\n        ) : (\n          <>\n            <PopupButton\n              fullWidth\n              variant=\"contained\"\n              color=\"primary\"\n              href={vipAccessData.Links[0]?.Url}\n            >\n              {vipAccessData.Links[0]?.Text}\n            </PopupButton>\n            <PopupButton\n              fullWidth\n              variant=\"contained\"\n              color=\"primary\"\n              onClick={onChangeOpened(true)}\n            >\n              {vipAccessLabels.ConsultantChangeConsultantNumber}\n            </PopupButton>\n            <PopupLink\n              variant=\"button\"\n              color=\"primary\"\n              href={vipAccessData.Links[2]?.Url}\n            >\n              {vipAccessData.Links[2]?.Text}\n            </PopupLink>\n          </>\n        )}\n      </PopupContentGroup>\n    </Dialog>\n  );\n};\n","export const ORDER_ON_BEHALF_DIALOG = 'order-on-behalf-dialog';\nexport const ORDER_ON_BEHALF_DIALOG_BACK_ARROW = 'order-on-behalf-dialog-back-arrow';\n","import { styled, Typography } from '@ori-ui/mui';\n\nimport { TOP_AREA_BANNER_HEIGHT } from '../TopAreaBanner/constants';\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: '1rem',\n  },\n\n  svg: {\n    height: '2rem',\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","import { NewUserFilled, ArrowRightThin } from '@ori-ui/icons';\nimport { Typography } from '@ori-ui/mui';\nimport { useDisclose } from '@ori/presentation-hooks';\nimport useTestId from '@ori/testid-generator';\n\nimport { useTopAreaBanner } from '../../context';\nimport { useTranslations } from '../../hooks/useTranslations';\nimport { OrderOnBehalfDialog } from './components/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 { open, onClose, onOpen } = useDisclose();\n  const { translations } = useTranslations();\n\n  if (!vipAccessData || !vipAccessLabels) {\n    return null;\n  }\n\n  return (\n    <OrderContent data-testid={getTestId(ORDER_ON_BEHALF)}>\n      <NewUserFilled />\n      <Typography>{translations.loggedInAs}</Typography>\n      <Username onClick={onOpen}>{vipAccessData.ConsultantName}</Username>\n      <OrderOnBehalfDialog\n        open={open}\n        close={onClose}\n        vipAccessData={vipAccessData}\n        vipAccessLabels={vipAccessLabels}\n      />\n      <ArrowRightThin />\n    </OrderContent>\n  );\n};\n","export const ORDER_ON_BEHALF = 'order-on-behalf-banner';\n","export const BANNER_CAROUSEL_BANNER = 'banner-carousel-banner';\n","import { styled, Typography } from '@ori-ui/mui';\n\nimport { TOP_AREA_BANNER_HEIGHT } from '../../../../constants';\n\nexport const Root = styled('a')(({ theme, onClick, href }) => {\n  const isClickable = Boolean(onClick ?? href);\n\n  return {\n    color: theme.palette.text.primary,\n    cursor: isClickable ? 'pointer' : 'default',\n    display: 'flex',\n    height: TOP_AREA_BANNER_HEIGHT,\n    alignItems: 'center',\n    justifyContent: 'center',\n    width: '100%',\n    '&:hover': {\n      textDecoration: isClickable ? 'underline' : 'none',\n      color: theme.palette.text.primary,\n    },\n  };\n});\nexport const Title = styled(Typography)(({ theme }) => ({\n  overflow: 'hidden',\n  padding: theme.spacing(1),\n  textOverflow: 'ellipsis',\n  whiteSpace: 'nowrap',\n}));\n","import useTestId from '@ori/testid-generator';\nimport { type FC } from 'react';\n\nimport { BANNER_CAROUSEL_BANNER } from './constants';\nimport { Root, Title } from './styles';\nimport { type BannerProps } from './types';\n\nexport const Banner: FC<BannerProps> = ({ onClick, title, url }) => {\n  const { getTestId } = useTestId();\n\n  return (\n    <Root\n      data-testid={getTestId(BANNER_CAROUSEL_BANNER)}\n      href={url}\n      onClick={onClick}\n    >\n      <Title fontWeight=\"bold\">{title}</Title>\n    </Root>\n  );\n};\n","import type { CarouselNavigationProps, CarouselPaginationProps, CarouselProps } from '@ori/presentation-components';\n\nexport const BANNERS_CAROUSEL = 'top-area-banners-carousel';\nexport const navigation: CarouselNavigationProps = { showArrows: false };\nexport const pagination: CarouselPaginationProps = { show: false };\nexport const slider: CarouselProps['slider'] = { drag: false };\n","import { styled } from '@ori-ui/mui';\n\nimport { TOP_AREA_BANNER_HEIGHT } from '../../constants';\n\nexport const Root = styled('div')(({ theme }) => ({\n  margin: 0,\n  overflow: 'hidden',\n  position: 'fixed',\n  top: 0,\n  left: 0,\n  width: '100vw',\n  zIndex: theme.zIndex.appBar,\n  backgroundColor: theme.palette.primary.light,\n  height: TOP_AREA_BANNER_HEIGHT,\n}));\n","import { Carousel, type CarouselAutoplayProps, CarouselSlide } from '@ori/presentation-components';\nimport useTestId from '@ori/testid-generator';\nimport { useMemo, type FC } from 'react';\n\nimport { Banner } from './components/Banner';\nimport { BANNERS_CAROUSEL, navigation, pagination, slider } from './constants';\nimport { Root } from './styles';\nimport type { BannersCarouselProps } from './types';\n\nexport const BannersCarousel: FC<BannersCarouselProps> = ({ items, onOpen }) => {\n  const { getTestId } = useTestId();\n  const autoplay: CarouselAutoplayProps = useMemo(\n    () => ({ enabled: items.length > 1, interval: 5000 }),\n    [items.length],\n  );\n\n  return (\n    <Root data-testid={getTestId(BANNERS_CAROUSEL)}>\n      <Carousel\n        autoplay={autoplay}\n        navigation={navigation}\n        pagination={pagination}\n        slider={slider}\n        propagateDragEvent={false}\n        id=\"top-area-banner-carousel\"\n      >\n        {items.map(({ title, url, shouldOpenInvitationOffer }) => (\n          <CarouselSlide\n            key={[url, title].join('-')}\n            minWidth=\"100%\"\n          >\n            <Banner\n              title={title}\n              url={url}\n              onClick={shouldOpenInvitationOffer ? onOpen : undefined}\n            />\n          </CarouselSlide>\n        ))}\n      </Carousel>\n    </Root>\n  );\n};\n","import { createContext } from 'react';\n\nimport type { PersonalBeautyStoreContext } from '../../types';\n\nexport const personalBeautyStoreContext = createContext<PersonalBeautyStoreContext>({\n  pbsData: null,\n  storeInfo: null,\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<Array<SocialContactType | null>> | null | undefined,\n  contacts: Contacts,\n  type: SocialContactType,\n) => (allowedContacts?.includes(type) ? contacts?.filter((contact) => contact?.type === type)[0]?.value : null);\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<ContactProps> = ({ contact, type }) => {\n  if (!contact) {\n    return null;\n  }\n\n  return (\n    <Root>\n      {type === 'email' ? <Email /> : <Telephone />}\n      <Link href={`${type === 'email' ? 'mailto' : 'tel'}:${contact}`}>{contact}</Link>\n    </Root>\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/graphql-types/net';\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[]) => <strong data-testid={testId}>{chunks}</strong>;\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<TopAreaBannerProps> = ({ 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    <BannerDialog\n      open={open}\n      onClose={onClose}\n    >\n      <Root data-testid={getTestId(TOP_AREA_BANNER_DIALOG)}>\n        <Icon />\n        <Typography\n          variant=\"h3\"\n          component=\"h3\"\n        >\n          {title}\n        </Typography>\n        <Typography>\n          <DynamicFormattedMessage\n            translatedMessage={message}\n            values={{\n              emphasis: emphasis(getTestId(TOP_AREA_BANNER_DIALOG_MESSAGE)),\n            }}\n          />\n        </Typography>\n        <GreetingMessageAndContact>\n          <Typography>\n            {greetingMessage ? (\n              <DynamicFormattedMessage\n                translatedMessage={greetingMessage}\n                values={{\n                  emphasis: emphasis(getTestId(TOP_AREA_BANNER_DIALOG_GREETING_MESSAGE)),\n                }}\n              />\n            ) : null}\n          </Typography>\n          <Contact\n            contact={userEmail}\n            type=\"email\"\n          />\n          <Contact\n            contact={userPhone}\n            type=\"phone\"\n          />\n        </GreetingMessageAndContact>\n        <Button\n          fullWidth\n          href={relativeUrl ?? undefined}\n          variant=\"contained\"\n          color=\"primary\"\n          onClick={relativeUrl == null ? onClose : undefined}\n        >\n          {linkTitle ?? translations.gotIt}\n        </Button>\n      </Root>\n    </BannerDialog>\n  );\n};\n","/* istanbul ignore file */\nimport { useContext } from 'react';\n\nimport { personalBeautyStoreContext } from './personalBeautyStoreContext';\n\nexport const usePersonalBeautyStore = () => useContext(personalBeautyStoreContext);\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 { ErrorBoundary } from '@ori/logger';\nimport { useDisclose } from '@ori/presentation-hooks';\nimport { type FC } from 'react';\n\nimport { useTopAreaBanner } from '../../../../context';\nimport { OrderOnBehalf } from '../../../OrderOnBehalf';\nimport { Root } from '../../styles';\nimport { BannersCarousel } from '../BannersCarousel';\nimport { TopAreaBannerDialog } from '../TopAreaBannerDialog';\n\nexport const TopAreaBannerContent: FC = () => {\n  const { isOrderOnBehalfVisible, bannersData = [] } = useTopAreaBanner();\n  const { open, onClose, onOpen } = useDisclose();\n\n  if (isOrderOnBehalfVisible) {\n    return (\n      <Root isOrderOnBehalfVisible>\n        <OrderOnBehalf />\n      </Root>\n    );\n  }\n\n  return (\n    <>\n      <BannersCarousel\n        items={bannersData}\n        onOpen={onOpen}\n      />\n      <ErrorBoundary areaName=\"TopAreaBannerContent\">\n        <TopAreaBannerDialog\n          open={open}\n          onClose={onClose}\n        />\n      </ErrorBoundary>\n    </>\n  );\n};\n","import type { FC } from 'react';\n\nimport { useTopAreaBanner } from '../../context';\nimport { TopAreaBannerContent, TopAreaBannerSkeleton } from './components';\n\nexport const TopAreaBanner: FC = () => {\n  const { loading, visible } = useTopAreaBanner();\n\n  if (!visible) {\n    return null;\n  }\n\n  return loading ? <TopAreaBannerSkeleton /> : <TopAreaBannerContent />;\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})<RootProps>(({ 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: '100%',\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, 6),\n  },\n}));\n","import { useToken } from '@ori/auth';\nimport useTestId from '@ori/testid-generator';\nimport type { FC, ReactNode } from 'react';\n\nimport { useSearchInput } from '../../context/navigation';\nimport type { VipAccessResponse } from '../../models';\nimport { BurgerMenu } from '../BurgerMenu';\nimport { JoinMenu } from '../Join/JoinMenu';\nimport { LeftActionsSection } from '../LeftActionsSection';\nimport { RightActionsSection } from '../RightActionsSection';\nimport { SearchInput } from '../SearchInput';\nimport { TopAreaBanner } from '../TopAreaBanner';\nimport { TOP_AREA_ROOT } from './constants';\nimport { Root } from './styles';\n\nexport interface TopAreaProps {\n  isTopBannerVisible?: boolean | undefined;\n  mobilePersonalMenuOutlet?: ReactNode | undefined;\n  vipAccess?: VipAccessResponse | undefined;\n}\n\nexport const TopArea: FC<TopAreaProps> = ({ isTopBannerVisible, mobilePersonalMenuOutlet }) => {\n  const { getTestId } = useTestId();\n  const { isVisible: isSearchInputVisible } = useSearchInput();\n  const { isAnonymousUser } = useToken();\n\n  return (\n    <Root\n      isSearchInputVisible={isSearchInputVisible}\n      isTopBannerVisible={isTopBannerVisible}\n      data-testid={getTestId(TOP_AREA_ROOT)}\n    >\n      <LeftActionsSection />\n      <RightActionsSection />\n      <BurgerMenu mobilePersonalMenuOutlet={mobilePersonalMenuOutlet} />\n      {isAnonymousUser ? <JoinMenu /> : null}\n      <TopAreaBanner />\n      <SearchInput showOnlyOn=\"mobile\" />\n    </Root>\n  );\n};\n","export const TOP_AREA_ROOT = 'root';\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<PropsWithChildren> = ({ children }) => {\n  const { currentLanguage, tenant } = useAppConfig();\n  const { globalApiUrl, staticApiUrl } = useServiceUrls(['globalApi', 'staticApi']);\n  const { formattedToken } = useToken();\n\n  return (\n    <GlobalApiClientProvider\n      baseUrl={globalApiUrl}\n      language={currentLanguage}\n      token={formattedToken}\n      tenant={tenant}\n    >\n      <StaticApiClientProvider\n        baseUrl={staticApiUrl}\n        language={currentLanguage}\n        tenant={tenant}\n      >\n        {children}\n      </StaticApiClientProvider>\n    </GlobalApiClientProvider>\n  );\n};\n","// istanbul ignore file -- constant file\nimport { UserSegmentationDataProvider } from '@ori/presentation-http';\n\nimport { AppPromoProvider, ConsultantProvider, HeadersProvider, TopAreaBannerProvider } from '../context';\nimport {\n  ActiveLinkProvider,\n  ActiveMenuProvider,\n  BurgerMenuProvider,\n  LabelsProvider,\n  SearchInputProvider,\n} from '../context/navigation';\nimport { composeProviders } from '../utils';\nimport { ApiProvider } from './ApiProvider';\n\nexport const Context = composeProviders(\n  ApiProvider,\n  UserSegmentationDataProvider,\n  HeadersProvider,\n  AppPromoProvider,\n  SearchInputProvider,\n  ActiveLinkProvider,\n  ActiveMenuProvider,\n  ConsultantProvider,\n  TopAreaBannerProvider,\n  LabelsProvider,\n  BurgerMenuProvider,\n);\n","import type { FC, PropsWithChildren } from 'react';\n\nexport const composeProviders = (...providers: Array<FC<PropsWithChildren>>) =>\n  function Providers({ children }: PropsWithChildren) {\n    return (\n      <>\n        {providers.reduceRight(\n          (accumulated, Provider) => (\n            <Provider>{accumulated}</Provider>\n          ),\n          children,\n        )}\n      </>\n    );\n  };\n","/* istanbul ignore file */\nimport { useToken } from '@ori/auth';\nimport { useEnvironment } from '@ori/environment';\nimport { useLanguage } from '@ori/i18n';\nimport { HeadersProvider as Provider } from '@ori/presentation-http';\nimport type { FC, PropsWithChildren } from 'react';\n\nimport { PACKAGE_NAME } from '../constants-generated';\n\nexport const HeadersProvider: FC<PropsWithChildren> = ({ children }) => {\n  const { language } = useLanguage();\n  const { tenant } = useEnvironment();\n  const { customerId, token } = useToken();\n\n  return (\n    <Provider\n      customerId={customerId}\n      language={language}\n      sourceAppName={PACKAGE_NAME}\n      tenant={tenant}\n      token={token}\n    >\n      {children}\n    </Provider>\n  );\n};\n","import { useContext, createContext } from 'react';\n\nexport interface ConfigurationContext {\n  isEnabled: boolean;\n}\n\nexport const configurationContext = createContext<ConfigurationContext>({ isEnabled: false });\n\nexport const ConfigurationProvider = configurationContext.Provider;\n\nexport const useConfiguration = () => useContext(configurationContext);\n","/* istanbul ignore file */\nimport { useToken } from '@ori/auth';\nimport { useGetCustomerSponsorPersonalBeautyStore } from '@ori/global-api-client-react';\nimport { getRetryErrorSwrOptions } from '@ori/presentation-utils';\n\nconst useSponsorPersonalBeautyStoreInfo = (): ReturnType<typeof useGetCustomerSponsorPersonalBeautyStore> => {\n  const { customerId, isAnonymousUser, isUserVerified } = useToken();\n  const result = useGetCustomerSponsorPersonalBeautyStore(customerId, undefined, {\n    swr: {\n      ...getRetryErrorSwrOptions(),\n      enabled: isUserVerified && !isAnonymousUser,\n    },\n  });\n\n  return result;\n};\n\nexport default useSponsorPersonalBeautyStoreInfo;\n","import { Logger } from '@ori/logger';\n\nimport { PACKAGE_NAME, TEAM_NAME } from './constants-generated';\n\nexport const mainLogger = new Logger(PACKAGE_NAME, { teamName: TEAM_NAME });\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          sharedUrl\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    }\n  }\n`;\n","import { useToken } from '@ori/auth';\nimport { useServiceUrls } from '@ori/configuration-manager';\nimport { useEnvironment } from '@ori/environment';\nimport { getHeaders, useGraphqlQuery } from '@ori/fetching';\nimport { useLanguage } from '@ori/i18n';\nimport { getRetryErrorSwrOptions } from '@ori/presentation-utils';\nimport cloneDeep from 'lodash.clonedeep';\nimport { useMemo } from 'react';\n\nimport { PACKAGE_NAME } from '../../constants-generated';\nimport useSponsorPersonalBeautyStoreInfo from '../../hooks/useSponsorPersonalBeautyStoreInfo';\nimport { mainLogger } from '../../logger';\nimport { ReferralType } from '../../models';\nimport type { BeautyStoreQuery, BeautyStoreQueryVariables, ProductListType } from '../../models';\nimport { beautyStoreQuery } from '../../queries-net';\nimport { useConfiguration } from '../ConfigurationProvider';\nimport { useCookieStoreInfo } from './useCookieStoreInfo';\n\nconst logger = mainLogger.createChild('usePersonalBeautyStoreData');\n\nexport const usePersonalBeautyStoreData = () => {\n  const { isEnabled } = useConfiguration();\n  const { graphQlNetUrl } = useServiceUrls(['graphQlNet']);\n  const { tenant } = useEnvironment();\n  const { language } = useLanguage();\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 } = useGraphqlQuery<BeautyStoreQuery, BeautyStoreQueryVariables>({\n    url: graphQlNetUrl,\n    query: beautyStoreQuery,\n    headers: getHeaders({\n      tenant,\n      language,\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    onError(error) {\n      logger.error(error);\n    },\n    swrConfig: getRetryErrorSwrOptions(),\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","/* istanbul ignore file */\nimport type { FC, PropsWithChildren } from 'react';\nimport { useMemo } from 'react';\n\nimport type { PersonalBeautyStoreContext } from '../../types';\nimport { personalBeautyStoreContext } from './personalBeautyStoreContext';\nimport { useCookieStoreInfo } from './useCookieStoreInfo';\nimport { usePersonalBeautyStoreData } from './usePersonalBeautyStoreData';\n\nexport const PersonalBeautyStoreProvider: FC<PropsWithChildren> = ({ children }) => {\n  const storeInfo = useCookieStoreInfo();\n  const pbsData = usePersonalBeautyStoreData();\n\n  const value = useMemo(\n    (): PersonalBeautyStoreContext => ({\n      pbsData,\n      storeInfo,\n    }),\n    [pbsData, storeInfo],\n  );\n\n  return <personalBeautyStoreContext.Provider value={value}>{children}</personalBeautyStoreContext.Provider>;\n};\n","import { PbsCookieNames } from '../models';\nimport type { CookieToTransform } from '../types';\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","/**\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 { mainLogger } from '../../logger';\nimport type { RemoveQueryParameterCallback, SetQueryParameterCallback } from '../../types';\nimport {\n  removeQueryParameter as removeQueryParameterHistoryApi,\n  ensureQueryParameter as setQueryParameterHistoryApi,\n} from '../../utils';\n\nexport interface CookieToUrlParams {\n  removeQueryParameter: RemoveQueryParameterCallback;\n\n  setQueryParameter: SetQueryParameterCallback;\n}\n\nconst logger = mainLogger.createChild('useCookieToUrl');\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        logger.info(`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 { SWRConfig } from '@ori/fetching';\nimport type { FC, PropsWithChildren } from 'react';\n\nimport type { ConfigurationContext } from '../contexts';\nimport { ConfigurationProvider, PersonalBeautyStoreProvider } from '../contexts';\nimport { useCookieToUrl } from '../hooks';\nimport type { RemoveQueryParameterCallback, SetQueryParameterCallback } from '../types';\n\nexport interface PbsAppProps {\n  configuration: ConfigurationContext;\n  removeQueryParameter?: RemoveQueryParameterCallback | undefined;\n  setQueryParameter?: SetQueryParameterCallback | undefined;\n}\n\nexport const PbsApp: FC<PropsWithChildren<PbsAppProps>> = ({\n  children,\n  configuration,\n  setQueryParameter,\n  removeQueryParameter,\n}) => {\n  useCookieToUrl(setQueryParameter && removeQueryParameter ? { setQueryParameter, removeQueryParameter } : undefined);\n\n  return (\n    <ConfigurationProvider value={configuration}>\n      <SWRConfig\n        value={{\n          revalidateIfStale: false,\n          revalidateOnFocus: false,\n          revalidateOnReconnect: false,\n          shouldRetryOnError: false,\n          errorRetryCount: 0,\n        }}\n      >\n        <PersonalBeautyStoreProvider>{children}</PersonalBeautyStoreProvider>\n      </SWRConfig>\n    </ConfigurationProvider>\n  );\n};\n","// istanbul ignore file -- just wrapper for contexts\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 type { TopAreaProps } from '../TopArea';\nimport { useAppConfig } from '../context';\n\nexport const Pbs: FC<PropsWithChildren<Pick<TopAreaProps, 'removeQueryParameter' | 'setQueryParameter'>>> = ({\n  children,\n  removeQueryParameter,\n  setQueryParameter,\n}) => {\n  const { enableTopAreaBanner } = useAppConfig();\n  const configuration = useMemo(\n    (): PbsAppProps['configuration'] => ({\n      isEnabled: Boolean(enableTopAreaBanner),\n    }),\n    [enableTopAreaBanner],\n  );\n\n  return (\n    <PbsApp\n      configuration={configuration}\n      removeQueryParameter={removeQueryParameter}\n      setQueryParameter={setQueryParameter}\n    >\n      {children}\n    </PbsApp>\n  );\n};\n","import { useEnvironment } from '@ori/environment';\nimport { useEffect } from 'react';\n\nimport { AB_TASTY_SCRIPT_URL, AB_TASTY_SCRIPT_IDS, AB_TASTY_SCRIPT_ID } from '../constants';\nimport { useAppConfig } from '../context';\n\n/**\n * Returns the AB Tasty script id based on the tenant and environment.\n * Example of generated url - https://try.abtasty.com/d7969c131a7cd1e6eae1663545c12f7e.js\n * @param tenant\n * @param environment\n */\nexport const getScriptSrc = (tenant: string | undefined, environment: string | undefined) => {\n  const key = tenant && environment ? `${tenant}_${environment}` : null;\n\n  return key && AB_TASTY_SCRIPT_IDS[key] ? `${AB_TASTY_SCRIPT_URL}${AB_TASTY_SCRIPT_IDS[key]}.js` : null;\n};\n\n/**\n * Loads the AB Tasty script if the feature is enabled and have corresponding script with the current tenant and environment.\n */\nexport const useLoadAbTastyScript = () => {\n  const { abTastyEnabled } = useAppConfig();\n  const { environment, tenant } = useEnvironment();\n\n  useEffect(() => {\n    const scriptSrc = getScriptSrc(tenant, environment);\n\n    if (abTastyEnabled && scriptSrc && !document.getElementById(AB_TASTY_SCRIPT_ID)) {\n      const script = document.createElement('script');\n      script.src = scriptSrc;\n      script.async = true;\n      script.id = AB_TASTY_SCRIPT_ID;\n      document.body.append(script);\n\n      return () => script.remove();\n    }\n\n    return undefined;\n  }, [abTastyEnabled, environment, tenant]);\n};\n","import { useWindowSize } from '@ori/presentation-hooks';\nimport { useEffect } from 'react';\n\nimport { useAppConfig, useTopAreaBanner } from '../context';\nimport { useSearchInput } from '../context/navigation';\nimport { useIsMobile } from './useIsMobile';\n\nexport enum TopNavClassName {\n  default = 'top-nav',\n  mobile = 'top-nav--is-mobile',\n  withTopAreaBanner = 'top-nav--with-top-area-banner',\n  searchInputVisible = 'top-nav--search-input-visible',\n}\n\nconst getClassList = () => document.body.classList;\n\nconst addClassName = (className: TopNavClassName) => getClassList().add(className);\n\nconst removeClassName = (className: TopNavClassName) => getClassList().remove(className);\n\nexport const useManagedHeight = () => {\n  const isMobile = useIsMobile();\n  const { width } = useWindowSize();\n  const { visible: bannerVisible } = useTopAreaBanner();\n  const { isVisible: inputVisible } = useSearchInput();\n  const { showSearchOnScroll } = useAppConfig();\n  useEffect(() => {\n    if (width) {\n      addClassName(TopNavClassName.default);\n      if (isMobile) {\n        addClassName(TopNavClassName.mobile);\n        if (showSearchOnScroll && inputVisible) {\n          addClassName(TopNavClassName.searchInputVisible);\n        } else {\n          removeClassName(TopNavClassName.searchInputVisible);\n        }\n      } else {\n        removeClassName(TopNavClassName.mobile);\n      }\n      if (bannerVisible) {\n        addClassName(TopNavClassName.withTopAreaBanner);\n      } else {\n        removeClassName(TopNavClassName.withTopAreaBanner);\n      }\n    }\n  }, [isMobile, bannerVisible, width, inputVisible, showSearchOnScroll]);\n};\n","// istanbul ignore file -- all submodules are tested\nimport { useToken } from '@ori/auth';\nimport { TranslationsNamespaceProvider } from '@ori/i18n';\nimport { LoggerProvider } from '@ori/logger';\nimport type { RemoveQueryParameterCallback, SetQueryParameterCallback } from '@ori/personal-beauty-store';\nimport { Team, TestIdProvider } from '@ori/testid-generator';\nimport { type FC, type ReactNode } from 'react';\n\nimport { AppPromoBanner, ShadePicker, TopAreaBlock, useAddToBasketAnalytics } from './components';\nimport { TopArea as TopAreaBlockContent } from './components/TopArea';\nimport { translationsNamespace } from './constants';\nimport { APP_NAME } from './constants-generated';\nimport { Context } from './containers/Context';\nimport { Pbs } from './containers/Pbs';\nimport { AppConfigProvider, useTopAreaBanner } from './context';\nimport { useLoadAbTastyScript, useManagedHeight, useToggleMenuHandler } from './hooks';\nimport { mainLogger } from './logger';\nimport type { AppConfig } from './models/AppConfig';\n\nexport interface TopAreaProps {\n  configuration: AppConfig;\n  removeQueryParameter?: RemoveQueryParameterCallback;\n  setQueryParameter?: SetQueryParameterCallback;\n  mobilePersonalMenuOutlet?: ReactNode | undefined;\n}\n\nconst Content = ({ mobilePersonalMenuOutlet }: { mobilePersonalMenuOutlet?: ReactNode | undefined }) => {\n  const { visible: isTopBannerVisible } = useTopAreaBanner();\n\n  useLoadAbTastyScript();\n  useManagedHeight();\n  useToggleMenuHandler();\n  useAddToBasketAnalytics();\n\n  return (\n    <TopAreaBlock>\n      <TopAreaBlockContent\n        isTopBannerVisible={isTopBannerVisible}\n        mobilePersonalMenuOutlet={mobilePersonalMenuOutlet}\n      />\n    </TopAreaBlock>\n  );\n};\n\nexport const TopArea: FC<TopAreaProps> = ({ configuration, mobilePersonalMenuOutlet, ...pbs }) => {\n  const { token } = useToken();\n\n  if (!token) {\n    return null;\n  }\n\n  return (\n    <TranslationsNamespaceProvider namespace={translationsNamespace}>\n      <AppConfigProvider value={configuration}>\n        <TestIdProvider\n          team={Team.Presentation}\n          project={APP_NAME}\n        >\n          <LoggerProvider logger={mainLogger}>\n            <Context>\n              <AppPromoBanner />\n              <Pbs {...pbs}>\n                <Content mobilePersonalMenuOutlet={mobilePersonalMenuOutlet} />\n              </Pbs>\n              <ShadePicker />\n            </Context>\n          </LoggerProvider>\n        </TestIdProvider>\n      </AppConfigProvider>\n    </TranslationsNamespaceProvider>\n  );\n};\n","import type { Event } from '@ori-events/toggle-menu-flyout';\nimport { Name } from '@ori-events/toggle-menu-flyout';\nimport type { GlobalEvent } from '@ori/presentation-hooks';\nimport { useGlobalEvents } from '@ori/presentation-hooks';\nimport { useCallback, useMemo } 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  const onToggle = useCallback((event: Event) => toggleActiveMenu(event.detail.menuType), [toggleActiveMenu]);\n\n  const events = useMemo<GlobalEvent[]>(() => [{ name: Name, listener: onToggle }], [onToggle]);\n  useGlobalEvents(events);\n};\n","import * as AddToBasketEvent from '@ori-events/add-to-basket';\nimport { Placement } from '@ori/analytics-data';\nimport type { AddToBasketAnalyticsData } from '@ori/analytics-data';\nimport type { GlobalEvent } from '@ori/presentation-hooks';\nimport { useGlobalEvents } from '@ori/presentation-hooks';\nimport { useCallback, useMemo } from 'react';\n\nimport { useSearchInput } from '../../../context/navigation';\nimport { useSendNavigationSignal } from './useSendNavigationSignal';\n\nexport const useAddToBasketAnalytics = () => {\n  const { value } = useSearchInput();\n\n  const { sendNavigationSignal } = useSendNavigationSignal({\n    query: value,\n    type: 'cart',\n  });\n\n  const onAddToBasket = useCallback(\n    (event: CustomEvent<AddToBasketEvent.Data & Partial<AddToBasketAnalyticsData>>) => {\n      const { detail } = event;\n      if (detail.placement !== Placement.TopNavigationSearchSuggestions) {\n        return;\n      }\n      void sendNavigationSignal(detail.position ?? 0, detail.itemCode);\n    },\n    [sendNavigationSignal],\n  );\n\n  const events = useMemo<GlobalEvent[]>(\n    () => [\n      {\n        name: AddToBasketEvent.Name,\n        listener: onAddToBasket,\n      },\n    ],\n    [onAddToBasket],\n  );\n\n  useGlobalEvents(events);\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;\noptions.insert = insertFn.bind(null, \"head\");\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 { Box, CircularProgress, styled } from '@ori-ui/mui';\nimport type { FC, HTMLProps } from 'react';\n\nconst Root = styled((props: HTMLProps<HTMLDivElement>) => (\n  <div\n    {...props}\n    // This instructs personal menu to render here\n    data-personal-menu-outlet\n  />\n))({\n  // Hide the placeholder loader when menu loads iin\n  '& > div:not(:only-child):first-of-type': {\n    display: 'none',\n  },\n  // This is so it fills the rest of burger menu\n  height: '100%',\n});\n\nexport const BurgerPersonalMenuOutlet: FC = () => (\n  <Root>\n    {/* This is a just fallback, will be hidden with css once personal menu inserts itself */}\n    <Box\n      display=\"flex\"\n      justifyContent=\"center\"\n    >\n      <CircularProgress />\n      {process.env.NODE_ENV === 'development' ? (\n        <p>\n          Development detected. Please make sure that you have included personal-menu-app CAP script in your index.html\n          with script HTML tag\n        </p>\n      ) : null}\n    </Box>\n  </Root>\n);\n","// COPIED FROM @ori-appshell/config\nimport type { Environment } from '@ori/configuration-manager';\n\nexport function getEnvironmentClientAppFileUrlPostfix(environment: Environment) {\n  switch (environment) {\n    case 'stg':\n    case 'uat':\n    case 'dev':\n      return `.${environment}`;\n    default:\n      return '';\n  }\n}\n\n/**\n * Builds URL pointing to the entry file of the specified SPA\n * @param spaName Name (codename) of the SPA\n * @param environment Code of environment for which should the SPA be loaded\n * @param baseUrl Base url of the blob storage with SPAs\n * @returns Complete url of the SPA entry file\n */\nexport function createSpaEntryfileUrl(spaName: string, environment: Environment, baseUrl: string | undefined): string {\n  const urlPrefix = baseUrl && !baseUrl.endsWith('/') ? `${baseUrl}/` : (baseUrl ?? '');\n\n  return `${urlPrefix}${spaName}/index${getEnvironmentClientAppFileUrlPostfix(environment)}.js`;\n}\n","import type { Environment } from '@ori/configuration-manager';\nimport { getEnvironmentFromHost } from '@ori/environment';\n\nimport { createSpaEntryfileUrl, getEnvironmentClientAppFileUrlPostfix } from './createSpaEntryfileUrl';\n\nconst PERSONAL_MENU_BLOB_NAME = 'personal-menu';\n\nconst getClientAppScriptElement = (clientAppName: string, environment: Environment) =>\n  document.querySelector(\n    `script[src$=\"${clientAppName}/index${getEnvironmentClientAppFileUrlPostfix(environment)}.js\"`,\n  );\n\n// TODO: remove this after online is released with its own personal menu loader\n/** Returns personal menu src, returns undefined if the script exists already */\nexport const getPersonalMenuScriptSrc = (): string | undefined => {\n  const environment = getEnvironmentFromHost(window.location.host);\n  const existingScript = getClientAppScriptElement(PERSONAL_MENU_BLOB_NAME, environment) as\n    | HTMLScriptElement\n    | undefined;\n\n  // Skip for development, user should include the script tag themselves if not already present\n  // 1. Start personal-menu-app webpack dev server on different port that top-area-app\n  // 2. Create script tag in index.html and ensure that it is placed after the online-top-area-root element with id\n  // 3. Add src argument to script tag that points to entrypoint of personal-menu-app: `http://localhost:<port>/index.js`\n  // 4. Add defer argument\n  // 5. Now it should load\n  if (process.env.NODE_ENV === 'development') {\n    return undefined;\n  }\n\n  // Skip if it exists\n  if (existingScript) {\n    return undefined;\n  }\n\n  const topAreaScript = getClientAppScriptElement('online-top-area', environment) as HTMLScriptElement;\n  const clientAppFileBaseUrl = new URL(topAreaScript.src);\n\n  return createSpaEntryfileUrl(PERSONAL_MENU_BLOB_NAME, environment, clientAppFileBaseUrl.origin);\n};\n","import { ThemeProvider } from '@ori-ui/mui';\nimport { UniversalTokenProvider, doDevelopmentLogin } from '@ori/auth';\nimport { parseClientAppConfig, type PickClientAppDataConfigProps } from '@ori/client-app-config';\nimport { ServiceUrlsProvider } from '@ori/configuration-manager';\nimport { ClientCultureProvider } from '@ori/culture';\nimport { EnvironmentProvider, getEnvironmentFromHost } from '@ori/environment';\nimport { Geolocation } from '@ori/geolocation-popup';\nimport { TranslationsProvider } from '@ori/i18n';\nimport { ApplicationInsights, ErrorBoundary, getClientApplicationInsightsConfig } from '@ori/logger';\nimport { LoginProvider } from '@ori/login';\nimport { ApiClientProvider as StaticApiClientProvider } from '@ori/static-api-client-react';\nimport { type AppConfig, TopArea, defaultTranslationsWithNamespaces } from '@ori/top-area';\nimport '@ori/top-area/src/App.css';\nimport { createRoot } from 'react-dom/client';\n\nimport { BurgerPersonalMenuOutlet } from './BurgerPersonalMenuOutlet';\nimport { EMOTION_CACHE_KEY } from './constants-generated';\nimport { includePersonalMenuScript } from './includePersonalMenuScript';\nimport { mainLogger } from './logger';\n\nconst localLogger = mainLogger.createChild('appRender');\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'\n        | 'customerId'\n        | 'globalApiUrl'\n        | 'graphqlUrl'\n        | 'graphqlNetUrl'\n        | 'identityUrl'\n        | 'staticApiUrl'\n        | 'tenant'\n      >\n  >(config, [\n    'currentLanguage',\n    'globalApiUrl',\n    'graphqlUrl',\n    'graphqlNetUrl',\n    'mobileOfficeApiUrl',\n    'staticApiUrl',\n    'tenant',\n  ]);\n\n  const {\n    currentLanguage,\n    globalApiUrl,\n    mobileOfficeApiUrl,\n    staticApiUrl,\n    tenant,\n    graphqlUrl,\n    graphqlNetUrl,\n    useInternationalShareAndEarn = false,\n  } = clientAppConfig;\n\n  if (process.env.NODE_ENV === 'production') {\n    ApplicationInsights.initialize(getClientApplicationInsightsConfig());\n  } else {\n    // when using Requestly we do not want to load token\n    // eslint-disable-next-line no-lonely-if -- thats okay\n    if (process.env.REACT_APP_USE_REQUESTLY === '1') {\n      localLogger.debug('USING REQUESTLY');\n    } else {\n      if (!identityUrl) {\n        throw new Error('Missing Identity URL!');\n      }\n\n      // Get token for local development\n      await doDevelopmentLogin({ identityUrl, tenant });\n    }\n  }\n\n  const environment = getEnvironmentFromHost(window.location.host);\n\n  createRoot(rootElement).render(\n    <ErrorBoundary logger={localLogger}>\n      <ServiceUrlsProvider\n        serviceUrls={{\n          globalApiUrl,\n          graphQlUrl: graphqlUrl,\n          identityUrl,\n          mobileOfficeApiUrl,\n          staticApiUrl,\n          graphQlNetUrl: graphqlNetUrl,\n        }}\n      >\n        <EnvironmentProvider\n          environment={environment}\n          tenant={tenant}\n        >\n          <UniversalTokenProvider\n            customerId={customerId}\n            initialToken=\"\"\n          >\n            <ThemeProvider\n              enableCacheProvider\n              cacheKey={EMOTION_CACHE_KEY}\n            >\n              <StaticApiClientProvider\n                baseUrl={staticApiUrl}\n                language={currentLanguage}\n                tenant={tenant}\n              >\n                <ClientCultureProvider tenant={tenant}>\n                  <LoginProvider>\n                    <TranslationsProvider\n                      language={currentLanguage}\n                      defaultTranslationsWithNamespaces={defaultTranslationsWithNamespaces}\n                      // eslint-disable-next-line no-console -- we need to log errors\n                      clientFetchConfiguration={{ onError: console.error, tenant, baseUrl: staticApiUrl }}\n                    >\n                      <TopArea\n                        configuration={clientAppConfig}\n                        mobilePersonalMenuOutlet={<BurgerPersonalMenuOutlet />}\n                      />\n                    </TranslationsProvider>\n                  </LoginProvider>\n                  <Geolocation enabled={useInternationalShareAndEarn} />\n                </ClientCultureProvider>\n              </StaticApiClientProvider>\n            </ThemeProvider>\n          </UniversalTokenProvider>\n        </EnvironmentProvider>\n      </ServiceUrlsProvider>\n    </ErrorBoundary>,\n  );\n\n  // Include personal menu entrypoint\n  includePersonalMenuScript();\n};\n","import { Logger } from '@ori/logger';\n\nimport { PACKAGE_NAME, TEAM_NAME } from './constants-generated';\n\nexport const mainLogger = new Logger(PACKAGE_NAME, { teamName: TEAM_NAME });\n","import { getPersonalMenuScriptSrc } from './getPersonalMenuScriptSrc';\n\nexport const includePersonalMenuScript = () => {\n  const personalMenuSrc = getPersonalMenuScriptSrc();\n  // This is for the case where only does not include the script by its own\n  if (personalMenuSrc) {\n    const el = document.createElement('script');\n    el.setAttribute('src', personalMenuSrc);\n    document.head.append(el);\n  }\n};\n","type EventName = typeof Name;\n\nexport enum MenuTypes {\n  AboutMenu = 'about-mega-menu',\n  AccountSideMenu = 'account-side-menu',\n  BurgerMenu = 'burger-menu',\n  JoinMenu = 'join-mega-menu',\n  Minibag = 'mini-bag',\n  Notifications = 'notifications',\n  SearchInput = 'search-input',\n  SearchResults = 'search-results',\n  VipOrder = 'vip-order',\n}\n\nexport const Name = 'toggle-menu-flyout';\nexport const ToggleFavorite: EventName = Name;\n\nexport interface Data {\n  menuType: MenuTypes;\n  shouldOpen?: boolean;\n}\n\nexport interface Event extends CustomEvent<Data> {\n  type: EventName;\n}\n\nexport default Event;\n","// istanbul ignore file -- api\nimport { useEnvironment } from '@ori/environment';\nimport { useLanguage } from '@ori/i18n';\nimport { useLogger } from '@ori/logger';\nimport { useUserSegmentationData } from '@ori/presentation-http';\nimport { getRetryErrorSwrOptions } from '@ori/presentation-utils';\nimport type {\n  GetTenantApplicationsNavigationNavigationParams,\n  StaticNavigationNavigationItemDtoType,\n  AxiosError,\n} from '@ori/static-api-client-react';\nimport { useGetTenantApplicationsNavigationNavigation } from '@ori/static-api-client-react';\nimport { useMemo } from 'react';\n\ninterface UseGetNavigationType {\n  type: StaticNavigationNavigationItemDtoType;\n  enabled?: boolean;\n}\n\nexport const useGetNavigationType = ({ type, enabled = true }: UseGetNavigationType) => {\n  const logger = useLogger('useBurgerMenuData');\n  const { tenant } = useEnvironment();\n  const { language } = useLanguage();\n  const { loading: loadingUserSegmentationData, customerTypeId, visitorSegment } = useUserSegmentationData();\n  const requestParams = useMemo<GetTenantApplicationsNavigationNavigationParams>(\n    () => ({\n      customerTypeId: customerTypeId ?? undefined,\n      excludeChildren: false,\n      lang: language,\n      visitorSegment: visitorSegment ?? undefined,\n    }),\n    [customerTypeId, language, visitorSegment],\n  );\n  const { data, error } = useGetTenantApplicationsNavigationNavigation(tenant, type, requestParams, {\n    swr: {\n      ...getRetryErrorSwrOptions(),\n      enabled: !loadingUserSegmentationData && enabled,\n      onError: (localError: AxiosError) =>\n        logger.error(new Error('Cannot fetch navigation items', { cause: localError })),\n    },\n  });\n  const loading = loadingUserSegmentationData || (data === undefined && error === undefined);\n\n  return { data: data?.navigationCollection ?? [], error, loading };\n};\n","import { Skeleton, styled } from '@ori-ui/mui';\nimport { CATEGORY_BOX_DESKTOP_MEDIUM_WIDTH, CategoryBoxSkeleton } from '@ori/presentation-components';\nimport useTestId from '@ori/testid-generator';\n\nimport { CallToActionWrapper, CatalogueWrapper, Root } from '../../BurgerMenu/Catalogues/styles';\nimport { SKELETON_CATALOGUE_DESKTOP } from './constants';\n\nconst CatalogueSkeleton = styled(CategoryBoxSkeleton)({\n  width: CATEGORY_BOX_DESKTOP_MEDIUM_WIDTH,\n});\n\nconst ButtonSkeleton = styled(Skeleton)(({ theme }) => ({\n  borderRadius: theme.spacing(5),\n  marginTop: theme.spacing(2),\n}));\n\nexport const SkeletonCatalogueDesktop = () => {\n  const { getTestId } = useTestId();\n\n  return (\n    <Root data-testid={getTestId(SKELETON_CATALOGUE_DESKTOP)}>\n      <CatalogueWrapper>\n        <CatalogueSkeleton showDescription />\n      </CatalogueWrapper>\n      <CallToActionWrapper>\n        <Skeleton\n          variant=\"text\"\n          height={30}\n          width={330}\n        />\n        <Skeleton\n          variant=\"text\"\n          height={30}\n          width={330}\n        />\n        <ButtonSkeleton\n          variant=\"rectangular\"\n          height={45}\n          width={330}\n        />\n      </CallToActionWrapper>\n    </Root>\n  );\n};\n","import type { FC } from 'react';\n\nimport { useIsMobile } from '../../../hooks';\nimport { SkeletonCatalogueDesktop, SkeletonCatalogueMobile } from '../../Skeleton';\n\nexport const CataloguesSkeleton: FC = () => {\n  const isMobile = useIsMobile();\n\n  return isMobile ? <SkeletonCatalogueMobile /> : <SkeletonCatalogueDesktop />;\n};\n","import { Button, styled, Typography } from '@ori-ui/mui';\nimport { shouldForwardProp } from '@ori/presentation-utils';\n\nexport const Root = styled('div')(({ theme }) => ({\n  display: 'flex',\n  flexDirection: 'column',\n  gap: theme.spacing(6, 12),\n  [theme.breakpoints.down('md')]: {\n    a: {\n      width: '100%',\n    },\n  },\n}));\n\nexport const CatalogueWrapper = styled('div', {\n  shouldForwardProp: shouldForwardProp(),\n})(({ theme }) => ({\n  margin: theme.spacing(3, 3, 10, 3),\n  display: 'flex',\n  flexDirection: 'row',\n  justifyContent: 'center',\n  gap: theme.spacing(6),\n\n  [theme.breakpoints.up('md')]: {\n    margin: theme.spacing(6, 12, 0, 12),\n  },\n}));\n\nexport const Catalogue = styled('div')(({ theme }) => ({\n  display: 'flex',\n  flexDirection: 'column',\n  alignItems: 'start',\n\n  a: {\n    minWidth: 160,\n  },\n}));\n\nexport const CatalogueDetailButton = styled(Button)<{ hoverEffect?: boolean }>(({ theme, hoverEffect = false }) => ({\n  margin: theme.spacing(2, 'auto'),\n\n  '&:hover': {\n    background: hoverEffect ? theme.palette.grey : 'none',\n  },\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 CallToActionWrapper = styled('div')(({ theme }) => ({\n  display: 'flex',\n  flexDirection: 'column',\n  alignItems: 'start',\n  margin: theme.spacing(0, 12),\n}));\n\nexport const CallToAction = styled('div')(({ theme }) => ({\n  width: 330,\n  marginBottom: theme.spacing(4),\n}));\n\nexport const CTAText = styled(Typography)(({ theme }) => ({\n  fontSize: '1.2rem',\n  textAlign: 'center',\n  textDecoration: 'underline',\n  textTransform: 'uppercase',\n  textUnderlineOffset: theme.spacing(1),\n  textDecorationThickness: 2,\n  margin: theme.spacing(3, 0, 0),\n  fontWeight: theme.typography.fontWeightBold,\n\n  [theme.breakpoints.up('md')]: {\n    color: theme.palette.text.primary,\n    fontSize: theme.typography.subtitle1.fontSize,\n    textAlign: 'left',\n    textDecoration: 'none',\n    textTransform: 'none',\n    textUnderlineOffset: 'auto',\n    textDecorationThickness: 'auto',\n    margin: theme.spacing(0),\n  },\n}));\n\nexport const MobileWrapper = styled('div')(() => ({\n  height: 103,\n  width: '100%',\n}));\n","import type { Theme } from '@ori-ui/mui';\n\nimport { Categories } from '../models';\n\nexport const mapCategoryColors = ({ palette }: Theme) => ({\n  [Categories.ACCESSORIES]: palette.red[200],\n  [Categories.BATH_BODY]: palette.blue[300],\n  [Categories.ESSENTIAL_OILS]: palette.purple[50],\n  [Categories.FRAGRANCE]: palette.brown[100],\n  [Categories.HAIR]: palette.yellow[100],\n  [Categories.KIDS_BABY]: palette.blue[100],\n  [Categories.MAKEUP]: palette.pink[100],\n  [Categories.MEN]: palette.green[400],\n  [Categories.NUTRITION]: palette.purple[300],\n  [Categories.SKINCARE]: palette.green[100],\n  [Categories.WELLNESS]: palette.purple[300],\n});\n","import { alpha, Link, styled } from '@ori-ui/mui';\nimport { shouldForwardProp } from '@ori/presentation-utils';\n\nimport type { Categories } from '../../../models';\nimport { mapCategoryColors } from '../../../utils';\n\nexport const LinksRoot = styled('ul')(({ theme }) => ({\n  color: theme.palette.text.primary,\n  display: 'flex',\n  flexDirection: 'column',\n  fontSize: theme.typography.body1.fontSize,\n  fontWeight: theme.typography.fontWeightBold,\n  listStyle: 'none',\n  margin: theme.spacing(0),\n  maxWidth: '100%',\n  gap: theme.spacing(3, 0, 3, 0),\n  overflow: 'scroll',\n  padding: 0,\n  width: 315,\n\n  [theme.breakpoints.up('md')]: {\n    borderRight: `2px solid ${theme.palette.grey[100]}`,\n    fontSize: theme.typography.subtitle1.fontSize,\n    margin: 0,\n    minHeight: 570,\n    overflow: 'unset',\n    width: 280,\n    flexShrink: 0,\n\n    '&:first-of-type': {\n      marginTop: 'unset',\n      paddingTop: theme.spacing(2),\n    },\n\n    '&:last-of-type': {\n      marginBottom: 'unset',\n      paddingBottom: theme.spacing(2),\n    },\n  },\n}));\n\nexport const SpecialLinkWrapper = styled('ul')(({ theme }) => ({\n  a: {\n    '&:hover, &:focus, &:active': {\n      background: theme.palette.common.white,\n    },\n  },\n}));\n\nexport const MenuSectionDivider = styled('div')(({ theme }) => ({\n  marginBottom: theme.spacing(3),\n}));\n\nexport const LinksSpecialLink = styled(Link)(({ theme }) => ({\n  color: theme.palette.text.secondary,\n  display: 'block',\n  fontSize: '1.7rem',\n  fontWeight: theme.typography.fontWeightBold,\n  lineHeight: 1.9,\n  padding: theme.spacing(2, 3, 2, 6),\n  textDecoration: 'none',\n  background: theme.palette.grey[100],\n\n  '&:hover, &:focus, &:active': {\n    color: theme.palette.text.secondary,\n    WebkitTapHighlightColor: 'transparent',\n  },\n\n  [theme.breakpoints.up('md')]: {\n    fontSize: '1.6rem',\n    padding: theme.spacing(2, 3, 2, 3),\n  },\n}));\n\nexport const BurgerMenuLinkListElement = styled('li')(({ theme }) => ({\n  '&:active, &:focus': {\n    WebkitTapHighlightColor: 'transparent',\n  },\n}));\n\nexport const BurgerMenuLinkLink = styled(Link)(({ theme }) => ({\n  color: theme.palette.text.primary,\n  flex: 1,\n  fontSize: theme.typography.h6.fontSize,\n  fontWeight: theme.typography.fontWeightBold,\n  lineHeight: '3.7rem',\n  margin: 0,\n  textDecoration: 'none',\n\n  [theme.breakpoints.up('md')]: {\n    fontSize: theme.typography.subtitle1.fontSize,\n  },\n\n  '&:hover, &:focus, &:active': {\n    color: theme.palette.text.primary,\n    WebkitTapHighlightColor: 'transparent',\n  },\n}));\n\n/** Mobile only class */\nexport const BurgerMenuLinkIconWrapper = styled('span', {\n  shouldForwardProp: shouldForwardProp(),\n})<{ isActiveLink?: boolean }>(({ isActiveLink }) => ({\n  alignItems: 'center',\n  display: 'flex',\n  fontSize: '2.4rem',\n  transition: '0.1s ease-in',\n  transform: `rotate(${isActiveLink ? 180 : 0}deg)`,\n}));\n\nexport const BurgerMenuTopItemLink = styled(Link)(({ theme }) => ({\n  cursor: 'pointer',\n  display: 'flex',\n  fontSize: theme.typography.h6.fontSize,\n  fontWeight: theme.typography.fontWeightBold,\n  justifyContent: 'space-between',\n  alignItems: 'center',\n  lineHeight: '3.2rem',\n  margin: 0,\n  paddingLeft: theme.spacing(2),\n  textDecoration: 'none',\n\n  [theme.breakpoints.up('md')]: {\n    padding: theme.spacing(2, 3, 2, 3),\n  },\n\n  svg: {\n    padding: 0,\n  },\n\n  '&:hover, &:focus, &:active': {\n    background: alpha(theme.palette.green[50], 0.5),\n\n    color: theme.palette.text.primary,\n    svg: {\n      color: theme.palette.text.primary,\n    },\n  },\n}));\n\nexport const BurgerMenuLinkCategory = styled('div', { shouldForwardProp: shouldForwardProp() })<{\n  category?: Categories | undefined;\n  isActiveLink?: boolean;\n}>(({ category, isActiveLink, theme }) => {\n  const colors = mapCategoryColors(theme);\n\n  return {\n    color: theme.palette.text.primary,\n    cursor: 'pointer',\n    display: 'flex',\n    fontSize: theme.typography.body1.fontSize,\n    fontWeight: theme.typography.fontWeightBold,\n    justifyContent: 'space-between',\n    alignItems: 'center',\n    padding: theme.spacing(2, 3),\n    textDecoration: 'none',\n    background: isActiveLink && category !== undefined ? alpha(colors[category], 0.15) : 'inherit',\n    margin: 0,\n    position: 'relative',\n\n    [theme.breakpoints.up('md')]: {\n      fontSize: '2rem',\n      padding: theme.spacing(2, 3, 2, 3),\n    },\n\n    // Border left with the color of the category had to use before as it's not possible to use border radius on border\n    '&:before': {\n      content: '\"\"',\n      height: '90%',\n      width: theme.spacing(1),\n      backgroundColor: category === undefined ? 'transparent' : colors[category],\n      position: 'absolute',\n      left: 0,\n      top: 2,\n      display: 'block',\n      borderRadius: '0 2px 2px 0',\n    },\n\n    '&:hover, &:focus, &:active': {\n      color: theme.palette.text.primary,\n      background: category === undefined ? 'inherit' : alpha(colors[category], 0.15),\n    },\n\n    span: {\n      whiteSpace: 'nowrap',\n      overflow: 'hidden',\n      textOverflow: 'ellipsis',\n    },\n  };\n});\n\nexport const TitleIconRoot = styled('div')(({ theme }) => ({\n  fontSize: '1.7rem',\n  whiteSpace: 'nowrap',\n  overflow: 'hidden',\n  textOverflow: 'ellipsis',\n  maxWidth: 260,\n  [theme.breakpoints.up('md')]: {\n    fontSize: '2rem',\n  },\n\n  svg: {\n    marginRight: theme.spacing(2),\n    display: 'inline-block',\n    verticalAlign: 'text-bottom',\n  },\n}));\n","import { Catalogue, Sales } from '@ori-ui/icons';\nimport { StaticNavigationNavigationItemDtoLinkType } from '@ori/static-api-client-react';\n\nexport const BURGER_MENU = 'burger-menu';\nexport const BURGER_MENU_ROOT = 'burger-menu-root';\nexport const BURGER_MENU_CONTAINER = 'burger-menu-container';\nexport const BURGER_MENU_TAB_ROOT = 'burger-menu-tab-root';\nexport const BURGER_MENU_TAB_ICON_WRAPPER = 'burger-menu-tab-icon-wrapper';\nexport const TAB_ICON = 'tab-icon';\nexport const BURGER_MENU_TAB_LABEL_WRAPPER = 'burger-menu-tab-label-wrapper';\nexport const BURGER_MENU_LINK = 'burger-menu-link';\nexport const BURGER_MENU_LINK_ROOT_MOBILE = 'burger-menu-link-root-mobile';\nexport const BURGER_MENU_LINK_CATEGORY_MOBILE = 'burger-menu-link-category-mobile';\nexport const BURGER_MENU_LINK_ICON_WRAPPER = 'burger-menu-link-icon-wrapper';\nexport const BURGER_MENU_CONTENT = 'burger-menu-content';\nexport const BURGER_MENU_LINK_ROOT = 'burger-menu-link-root';\nexport const BURGER_MENU_LINK_CATEGORY = 'burger-menu-link-category';\nexport const BURGER_MENU_TOGGLE_ROOT = 'burger-menu-toggle-root';\nexport const BURGER_MENU_CONTENT_ROOT = 'burger-menu-content-root';\nexport const CATEGORY_WRAPPER = 'category-wrapper';\nexport const BURGER_MENU_BACKDROP = 'burger-menu-backdrop';\nexport const FAVORITE_LIST_ITEM = 'favorite-list-item';\nexport const LINKS_ROOT = 'links-root';\nexport const SPECIAL_LINK = 'special-link';\nexport const SPECIAL_LINKS_WRAPPER = 'special-links-wrapper';\nexport const OUR_STORY_SUPPORT_LINK = 'our-story-support-link';\nexport const OUR_STORY_LINK = 'our-story-link';\nexport const TITLE_WITH_ICON = 'title-with-icon';\nexport const ARROW_RIGHT_THIN_ICON = 'ArrowRightThinIcon';\nexport const BURGER_MENU_TOP_ITEM_LINK = 'burger-menu-top-item-link';\n\nexport const EQUAL_LINKS = 0;\nexport const LINK_A_FIRST = -1;\nexport const LINK_B_FIRST = 1;\n\nexport const TOP_LINKS: StaticNavigationNavigationItemDtoLinkType[] = [\n  'Catalogue',\n  'BeautyTips',\n  'FocusPage',\n  'Inspiration',\n];\n\nexport const LINK_PRIORITIES = [\n  StaticNavigationNavigationItemDtoLinkType.Catalogue,\n  StaticNavigationNavigationItemDtoLinkType.FocusPage,\n];\n\nexport const LinkTypeIconMapper = {\n  [StaticNavigationNavigationItemDtoLinkType.Catalogue]: Catalogue,\n  [StaticNavigationNavigationItemDtoLinkType.FocusPage]: Sales,\n};\n\nexport const HEIGHT_BUFFER = 20;\n","import { styled, Modal, SHADOW_LEVEL1 } from '@ori-ui/mui';\n\nimport { CSS_DESKTOP_INNER_HEIGHT, CSS_HEIGHT_ANIMATION, DESKTOP_HEIGHT } from '../../constants';\nimport { basePositionStyles } from '../styles';\nimport { HEIGHT_BUFFER } from './constants';\n\nexport const BurgerMenuContentRoot = styled('div')(() => ({}));\n\nexport const ModalRoot = styled(Modal)(({ theme }) => ({\n  ...basePositionStyles,\n  zIndex: theme.zIndex.drawer,\n  display: 'block',\n}));\nexport const BurgerMenuRoot = styled('aside')<{\n  ownerState: { isMobile?: boolean; isDesktop?: boolean };\n}>(({ ownerState, theme }) => ({\n  backgroundColor: theme.palette.common.white,\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: 315,\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  }),\n}));\n\nexport const BurgerMenuInner = styled('div')(({ theme }) => ({\n  [theme.breakpoints.up('sm')]: {\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\nexport const BurgerMenuContainer = styled('div')({\n  display: 'flex',\n  height: 54,\n  width: '100%',\n});\n","import { Skeleton, styled } from '@ori-ui/mui';\nimport useTestId from '@ori/testid-generator';\nimport times from 'lodash.times';\n\nimport { LinksRoot } from '../../BurgerMenu/Links/styles';\nimport { MAIN_CATEGORY_DESKTOP } from './constants';\n\nconst SkeletonMenuLinks = styled(LinksRoot)(({ theme }) => ({\n  display: 'grid',\n  gap: theme.spacing(1),\n  padding: theme.spacing(0, 2),\n}));\n\nconst CATEGORIES_LINKS = 20;\n\nexport const SkeletonMainCategoriesDesktop = () => {\n  const { getTestId } = useTestId();\n\n  return (\n    <SkeletonMenuLinks data-testid={getTestId(MAIN_CATEGORY_DESKTOP)}>\n      {times(CATEGORIES_LINKS, (index) => (\n        <Skeleton\n          key={`menu-main-links-${index}`}\n          animation=\"wave\"\n          height={45}\n          variant=\"rectangular\"\n        />\n      ))}\n    </SkeletonMenuLinks>\n  );\n};\n","export const SKELETON_CATALOGUE_DESKTOP = 'skeleton-catalogue-desktop';\nexport const MAIN_CATEGORY_DESKTOP = 'main-category-desktop';\n","import { styled } from '@ori-ui/mui';\n\nexport const SkeletonCatalogueMobileRoot = styled('div')(({ theme }) => ({\n  alignItems: 'center',\n  display: 'flex',\n  flexDirection: 'column',\n  gap: theme.spacing(3),\n  margin: theme.spacing(3, 3, 1, 3),\n}));\n","import { Skeleton } from '@ori-ui/mui';\nimport useTestId from '@ori/testid-generator';\n\nimport { SKELETON_CATALOGUE_MOBILE } from './constants';\nimport { SkeletonCatalogueMobileRoot } from './styles';\n\nexport const SkeletonCatalogueMobile = () => {\n  const { getTestId } = useTestId();\n\n  return (\n    <SkeletonCatalogueMobileRoot data-testid={getTestId(SKELETON_CATALOGUE_MOBILE)}>\n      <Skeleton\n        variant=\"rounded\"\n        height={103}\n        width=\"100%\"\n      />\n      <Skeleton\n        variant=\"rounded\"\n        height={30}\n        width={50}\n      />\n    </SkeletonCatalogueMobileRoot>\n  );\n};\n","import { Box, Skeleton, styled } from '@ori-ui/mui';\nimport useTestId from '@ori/testid-generator';\n\nimport { SkeletonCatalogueMobile } from './SkeletonCatalogueMobile';\nimport { SKELETON_MAIN_CATEGORY_MOBILE } from './constants';\n\nconst SkeletonMainCategoriesMobileCategory = styled(Skeleton)(({ theme }) => ({\n  margin: theme.spacing(0, 3, 1),\n  minWidth: '80%',\n}));\n\nconst SkeletonMainCategoriesMobileCategoryLarge = styled(Skeleton)(({ theme }) => ({\n  margin: theme.spacing(5, 3, 1),\n  minWidth: '80%',\n}));\n\nconst SKELETON_HEIGHT = 60;\n\nexport const SkeletonMainCategoriesMobile = () => {\n  const elements = Math.floor(window.innerHeight / SKELETON_HEIGHT);\n  const steps = Array.from({ length: elements }, (element, index) => index);\n  const { getTestId } = useTestId();\n\n  const skeletonElements = steps.map((step) => (\n    <SkeletonMainCategoriesMobileCategory\n      key={`categories-mobile-${step}`}\n      height={37}\n      animation=\"wave\"\n      variant=\"rectangular\"\n    />\n  ));\n\n  return (\n    <Box data-testid={getTestId(SKELETON_MAIN_CATEGORY_MOBILE)}>\n      <SkeletonCatalogueMobile />\n      <SkeletonMainCategoriesMobileCategory\n        key=\"categories-mobile-medium\"\n        height={54}\n        animation=\"wave\"\n        variant=\"rectangular\"\n      />\n\n      {skeletonElements}\n\n      <SkeletonMainCategoriesMobileCategoryLarge\n        key=\"categories-mobile-large\"\n        height={109}\n        animation=\"wave\"\n        variant=\"rectangular\"\n      />\n    </Box>\n  );\n};\n","export const SKELETON_CATALOGUE_MOBILE = 'skeleton-catalogue-mobile';\nexport const SKELETON_MAIN_CATEGORY_MOBILE = 'skeleton-main-category-mobile';\n","import { Skeleton, styled } from '@ori-ui/mui';\nimport type { CSSProperties } from 'react';\n\nexport const UnifiedSkeleton = styled(Skeleton)({ transform: 'none' });\n\nexport const basePositionStyles: CSSProperties = {\n  bottom: 0,\n  left: 0,\n  position: 'fixed',\n  right: 0,\n  top: 0,\n} as const;\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\n// Cannot use the one from ori/fetching due to not capital A and L in accept-language\nexport const ACCEPT_LANGUAGE = 'Accept-Language';\n\nexport const CLICK_SUBCATEGORY_LINK = ['menu_side_select'];\n","/* istanbul ignore file */\nexport const SEARCH_THROTTLE_TIME = 1000 * 60 * 5;\nexport const SEARCH_INPUT_HEIGHT = 59;\nexport const TOP_AREA_BORDER_BOTTOM = 2;\n// Should correspond to the height of the \"See all results\" button in the search preview\nexport const SEARCH_PREVIEW_SEE_ALL_HEIGHT = 51;\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 = 64;\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` 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` and `--top-nav-inner-height` in `.top-nav--is-mobile` in `packages/top-area/src/App.css`\nexport const MOBILE_HEIGHT = 60;\nexport const MOBILE_INNER_HEIGHT = 60;\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\n// Must have the same value as ` --top-nav-height` in `.top-nav--search-input-visible.top-nav--is-mobile` in `packages/top-area/src/App.css`\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\n// Must have the same value as ` --top-nav-height` in `.top-nav--with-top-area-banner.top-nav--search-input-visible.top-nav--is-mobile` in `packages/top-area/src/App.css`\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\nexport const TOP_NAV_NO_SCROLL = 'top-nav--no-scroll';\n\n/** @deprecated use DESKTOP_HEIGHT */\nexport const TOP_NAV_HEIGHT = DESKTOP_HEIGHT;\n/** @deprecated use MOBILE_HEIGHT */\nexport const TOP_NAV_HEIGHT_MOBILE = MOBILE_HEIGHT;\n\nexport const AB_TASTY_SCRIPT_URL = 'https://try.abtasty.com/';\n/**\n * AbTasty configuration ids.\n */\nexport const AB_TASTY_SCRIPT_IDS: Record<string, string> = {\n  pl_live: 'd7969c131a7cd1e6eae1663545c12f7e',\n  pl_stg: '8e82c73eacd1c73ed013bf7f9456f94d',\n  ro_live: 'b9b95b18b302849d29466a1d6a271bd3',\n  ro_stg: '45b6a9a02035d85e692125e9237ebc42',\n  uk_live: '880cd51afa2ebc420d661463a5c7e851',\n  uk_stg: 'de2ac2e90695e0f6a42150be9515d496',\n};\n\nexport const AB_TASTY_SCRIPT_ID = 'abt';\n\n// Graphql query limit for search preview products\nexport const SEARCH_PREVIEW_PRODUCTS_LIMIT = 12;\n","import type { Dispatch, FC, PropsWithChildren, SetStateAction } from 'react';\nimport { createContext, useContext, useMemo, useState } from 'react';\n\nimport type { AppConfig } from '../models';\n\nexport interface AppConfigContext extends AppConfig {\n  sessionId?: string;\n  setSessionId: Dispatch<SetStateAction<string | undefined>>;\n}\n\nexport const appConfigContextDefaultValue: AppConfigContext = {\n  currentLanguage: '',\n  enableTopAreaBanner: false,\n  graphqlUrl: '',\n  mobileOfficeApiUrl: '',\n  tenant: '',\n  abTastyEnabled: false,\n  onlyProductsTabInSearch: false,\n  setSessionId: () => {},\n};\n\ninterface AppConfigProviderProps {\n  value: AppConfig;\n}\n\nexport const appConfigContext = createContext<AppConfigContext>(appConfigContextDefaultValue);\n\nexport const AppConfigProvider: FC<PropsWithChildren<AppConfigProviderProps>> = ({ children, value: props }) => {\n  const [sessionId, setSessionId] = useState<string>();\n\n  const value = useMemo(\n    () => ({\n      ...props,\n      sessionId,\n      setSessionId,\n    }),\n    [props, sessionId, setSessionId],\n  );\n\n  return <appConfigContext.Provider value={value}>{children}</appConfigContext.Provider>;\n};\n\nexport const useAppConfig = () => useContext(appConfigContext);\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';\n\nexport type ActiveLink = StaticNavigationNavigationItemDto | null;\n\nexport interface ActiveLinkContext {\n  activeLink: ActiveLink;\n  toggleActiveLink: (link: ActiveLink) => void;\n}\n\nexport const activeLinkContext = createContext<ActiveLinkContext | undefined>(undefined);\n\nconst { Provider } = activeLinkContext;\n\nexport const ActiveLinkProvider: FC<PropsWithChildren> = ({ children }) => {\n  const [activeLink, setActiveLink] = useState<ActiveLink>(null);\n  const isMobile = useIsMobile();\n  const toggleActiveLink = useCallback(\n    (link: ActiveLink) => {\n      if (isMobile && activeLink === link) {\n        setActiveLink(null);\n      } else {\n        setActiveLink(link);\n      }\n    },\n    [activeLink, isMobile],\n  );\n  const value = useMemo(() => ({ activeLink, toggleActiveLink }), [activeLink, toggleActiveLink]);\n\n  return <Provider value={value}>{children}</Provider>;\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 { 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<ActiveMenuContext | undefined>(undefined);\n\nconst { Provider } = activeMenuContext;\n\nexport const ActiveMenuProvider: FC<PropsWithChildren> = ({ children }) => {\n  const [activeMenu, setActiveMenu] = useState<ActiveMenu>('');\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 <Provider value={value}>{children}</Provider>;\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","// istanbul ignore file -- api\nimport * as ToggleMenuFlyout from '@ori-events/toggle-menu-flyout';\nimport type { StaticNavigationNavigationItemDto } from '@ori/static-api-client-react';\nimport type { FC, PropsWithChildren } from 'react';\nimport { createContext, useContext, useMemo } from 'react';\n\nimport { useGetNavigationType } from '../../api';\nimport { useIsMobile } from '../../hooks/useIsMobile';\nimport { useActiveMenu } from './activeMenuContext';\n\nexport interface BurgerMenuContext {\n  aboutItems: StaticNavigationNavigationItemDto[];\n  loadingAboutItems: boolean;\n  inspirationItems: StaticNavigationNavigationItemDto[];\n  loadingInspirationItems: boolean;\n  shopSectionItems: StaticNavigationNavigationItemDto[];\n  loadingShopSectionItems: boolean;\n}\n\nexport const burgerMenuContextDefaultValue: BurgerMenuContext = {\n  aboutItems: [],\n  loadingAboutItems: false,\n  inspirationItems: [],\n  loadingInspirationItems: false,\n  shopSectionItems: [],\n  loadingShopSectionItems: false,\n};\n\nexport const burgerMenuContext = createContext(burgerMenuContextDefaultValue);\n\nexport const BurgerMenuProvider: FC<PropsWithChildren> = ({ children }) => {\n  const { activeMenu } = useActiveMenu();\n  const isMobile = useIsMobile();\n  const isMenuActive =\n    activeMenu === ToggleMenuFlyout.MenuTypes.BurgerMenu ||\n    (isMobile && activeMenu === ToggleMenuFlyout.MenuTypes.AccountSideMenu);\n\n  const { data: aboutItems, loading: loadingAboutItems } = useGetNavigationType({\n    type: 'AboutTiles',\n    enabled: isMenuActive,\n  });\n  const { data: inspirationItems, loading: loadingInspirationItems } = useGetNavigationType({\n    type: 'InspirationTiles',\n    enabled: isMenuActive,\n  });\n  const { data: shopSectionItems, loading: loadingShopSectionItems } = useGetNavigationType({\n    type: 'ShopSection',\n    enabled: isMenuActive,\n  });\n\n  const contextValue = useMemo<BurgerMenuContext>(\n    () => ({\n      aboutItems,\n      loadingAboutItems,\n      inspirationItems,\n      loadingInspirationItems,\n      shopSectionItems,\n      loadingShopSectionItems,\n    }),\n    [\n      aboutItems,\n      loadingAboutItems,\n      inspirationItems,\n      loadingInspirationItems,\n      shopSectionItems,\n      loadingShopSectionItems,\n    ],\n  );\n\n  return <burgerMenuContext.Provider value={contextValue}>{children}</burgerMenuContext.Provider>;\n};\n\nexport const useBurgerMenu = () => useContext(burgerMenuContext);\n","import { gql } from '@ori/fetching';\n\nexport const labels = gql`\n  fragment ProductLabels on ProductLabel {\n    labelKey\n    productLabelDomain\n    title\n  }\n`;\n","import { gql } from '@ori/fetching';\n\nimport { labels } from './labels';\n\nexport const searchPreviewShade = gql`\n  ${labels}\n  fragment SearchPreviewShade on Product {\n    shadeName\n    hexColors\n    colorImageUrl\n    productCode\n    formattedPrice {\n      price {\n        basicCataloguePrice\n        currentPrice\n        priceAfterImmediateDiscount\n      }\n    }\n    labels {\n      ...ProductLabels\n    }\n  }\n`;\n","import { gql } from '@ori/fetching';\n\nimport { searchPreviewShade } from './shade';\n\nexport const conceptFragment = gql`\n  ${searchPreviewShade}\n  fragment BaseConcept on Concept {\n    name\n    brand {\n      name\n    }\n    categories {\n      name\n    }\n    products {\n      ...SearchPreviewShade\n    }\n    labels {\n      ...ProductLabels\n    }\n  }\n`;\n","import { gql } from '@ori/fetching';\n\nimport { conceptFragment } from './concept';\n\nexport const searchPreviewProduct = gql`\n  ${conceptFragment}\n  fragment SearchPreviewProduct on Product {\n    productCode\n    imageUrl\n    conceptCode\n    labels {\n      ...ProductLabels\n    }\n    pdpUrl {\n      relativeUrl\n    }\n    price {\n      price {\n        priceAfterImmediateDiscount\n        currentPrice\n      }\n    }\n    formattedPrice {\n      price {\n        basicCataloguePrice\n        currentPrice\n        priceAfterImmediateDiscount\n      }\n    }\n    concept {\n      ...BaseConcept\n    }\n  }\n`;\n","/* istanbul ignore file  -- query */\nimport { gql } from '@ori/fetching';\n\nimport { searchPreviewProduct } from './fragments';\n\nexport const searchPreviewQuery = gql`\n  query SearchPreview($query: String!, $limit: Int = 12) {\n    application {\n      productSearchPreview {\n        searchResults(query: $query, top: $limit) {\n          totalProductsCount\n          suggestions\n          products {\n            ...SearchPreviewProduct\n          }\n        }\n      }\n    }\n  }\n  ${searchPreviewProduct}\n`;\n","import { mapCanBeSold, mapHasAutoSubscription, type ProductBoxLabelCollection } from '@ori/product-box';\n\nimport type { ShadeWithPrice } from '../components/SearchPreview/components/SearchPreviewProduct/types';\n\nexport const mapEnableQuickBuyButton = (labels: ProductBoxLabelCollection, shades: ShadeWithPrice[]): boolean =>\n  mapCanBeSold(labels) ||\n  (shades.length > 1 && shades.some((shade) => shade.canBeSold)) ||\n  mapHasAutoSubscription(labels);\n","/* eslint-disable @typescript-eslint/prefer-nullish-coalescing -- it can come as empty string */\nimport { OFFER } from '@ori/presentation-components';\nimport {\n  getCurrentFormattedPrice,\n  getOldPrice,\n  mapCanBeSold,\n  mapHasAutoSubscription,\n  mapLabels,\n  mapShade,\n} from '@ori/product-box';\nimport { isNonNullable } from '@ori/ts-utils';\n\nimport type { ShadeWithPrice } from '../components';\nimport type { SearchPreviewProps } from '../components/SearchPreview/types';\nimport type { SearchPreviewQuery, SearchPreviewShadeFragment } from '../models/graphql-types/net';\nimport { mapEnableQuickBuyButton } from './mapEnableQuickBuyButton';\n\nconst mapShadeWithPrice = (shade: SearchPreviewShadeFragment): ShadeWithPrice => {\n  const { productCode, hexColors, imageUrl } = mapShade({\n    ...shade,\n    productCode: shade.productCode,\n  });\n\n  return {\n    name: shade.shadeName,\n    productCode,\n    hexColors,\n    imageUrl,\n    canBeSold: mapCanBeSold(shade.labels),\n    price: {\n      currentFormatted: getCurrentFormattedPrice({ formattedPrice: shade.formattedPrice }),\n      oldFormatted: getOldPrice({ formattedPrice: shade.formattedPrice }),\n    },\n  };\n};\nexport const mapSearchPreviewShades = (\n  shades?: ReadonlyArray<SearchPreviewShadeFragment | null> | null,\n): ShadeWithPrice[] => shades?.filter(isNonNullable).map(mapShadeWithPrice) || [];\n\ninterface GetPriceParams {\n  priceAfterImmediateDiscount?: unknown;\n  currentPrice?: unknown;\n}\nexport const getPrice = ({ priceAfterImmediateDiscount, currentPrice }: GetPriceParams): number =>\n  Number.parseFloat((priceAfterImmediateDiscount ?? currentPrice ?? 0).toString());\n\nexport type SearchPreviewResult = Pick<SearchPreviewProps, 'products' | 'suggestions' | 'numberOfProducts'>;\nexport const mapSearchPreviewQuery = (query: SearchPreviewQuery): SearchPreviewResult => {\n  const { totalProductsCount, products, suggestions } = query.application?.productSearchPreview?.searchResults ?? {};\n\n  return {\n    numberOfProducts: totalProductsCount ?? 0,\n    products:\n      products?.filter(isNonNullable).map((product) => {\n        const shades = mapSearchPreviewShades(product.concept?.products);\n        const labels = mapLabels(product.concept?.labels, { deal: [OFFER] });\n\n        return {\n          isMultishade: shades.length > 1,\n          canBeSold: mapEnableQuickBuyButton(product.labels, shades),\n          url: product.pdpUrl?.relativeUrl,\n          code: product.productCode,\n          name: product.concept?.name ?? '',\n          brand: product.concept?.brand?.name,\n          image: product.imageUrl,\n          deal: labels?.deal,\n          ppa: labels?.ppa,\n          category: product.concept?.categories?.[0]?.name,\n          hasAutosubscribe: mapHasAutoSubscription(product.labels),\n          price: {\n            currentFormatted: getCurrentFormattedPrice({ formattedPrice: product.formattedPrice }),\n            oldFormatted: getOldPrice({ formattedPrice: product.formattedPrice }),\n            price: getPrice({\n              priceAfterImmediateDiscount: product.price?.price?.priceAfterImmediateDiscount,\n              currentPrice: product.price?.price?.currentPrice,\n            }),\n          },\n          shades,\n        };\n      }) ?? [],\n    suggestions: suggestions?.filter(isNonNullable).map((text) => ({ text })) ?? [],\n  };\n};\n","import type { AxiosError } from '@ori/axios';\nimport { useServiceUrls } from '@ori/configuration-manager';\nimport { useSWR } from '@ori/fetching';\nimport { useLogger } from '@ori/logger';\nimport { useHeaders } from '@ori/presentation-http';\nimport { getRetryErrorSwrOptions } from '@ori/presentation-utils';\nimport { useCallback, useState } from 'react';\n\nimport { getSearchPreviewData } from '../api';\nimport { SEARCH_PREVIEW_PRODUCTS_LIMIT } from '../constants';\nimport type { SearchPreviewResult } from '../utils';\nimport { mapSearchPreviewQuery } from '../utils';\n\ninterface FetchSearchPreviewDataParams {\n  query: string;\n}\n\nexport const useGetSearchPreviewData = ({ query }: FetchSearchPreviewDataParams) => {\n  const logger = useLogger('useGetSearchPreviewData');\n  const { graphQlNetUrl } = useServiceUrls(['graphQlNet']);\n  const { headers } = useHeaders();\n  const [timestamp, setTimestamp] = useState(0);\n\n  const { data, isLoading, mutate } = useSWR<SearchPreviewResult | undefined, AxiosError>(\n    query ? ['search-preview-data', graphQlNetUrl, headers, query] : null,\n    async () => {\n      const response = await getSearchPreviewData({\n        graphQlNetUrl,\n        headers,\n        query,\n        limit: SEARCH_PREVIEW_PRODUCTS_LIMIT,\n      });\n      setTimestamp(Date.now());\n\n      return mapSearchPreviewQuery(response);\n    },\n    {\n      ...getRetryErrorSwrOptions(),\n      onError: (error) => logger.error(new Error('Failed to fetch search preview data', { cause: error })),\n    },\n  );\n\n  const clearResults = useCallback(async () => mutate(undefined, false), [mutate]);\n\n  return {\n    data,\n    isLoading,\n    timestamp,\n    clearResults,\n  };\n};\n","/* istanbul ignore file -- api file */\nimport { fetchGraphql } from '@ori/fetching';\n\nimport type { SearchPreviewQuery, SearchPreviewQueryVariables } from '../models/graphql-types/net';\nimport { searchPreviewQuery } from '../queries-net';\nimport type { GetSearchPreviewDataParams } from './types';\n\n/**\n * Fetch function that fetches search preview data\n */\nexport const getSearchPreviewData = async ({ graphQlNetUrl, query, limit, headers }: GetSearchPreviewDataParams) => {\n  const data = await fetchGraphql<SearchPreviewQuery, SearchPreviewQueryVariables>({\n    query: searchPreviewQuery,\n    url: graphQlNetUrl,\n    variables: {\n      query,\n      limit,\n    },\n    headers,\n    timeout: 10000,\n  });\n\n  return data;\n};\n","import { useDisclose } from '@ori/presentation-hooks';\nimport type { Dispatch, FC, PropsWithChildren, SetStateAction } from 'react';\nimport { createContext, useContext, useMemo, useState } from 'react';\nimport { useDebounce } from 'use-debounce';\n\nimport { useGetSearchPreviewData } from '../../hooks/useGetSearchPreviewData';\nimport type { SearchPreviewResult } from '../../utils';\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?: SearchPreviewResult | undefined;\n  setValue: Dispatch<SetStateAction<string>>;\n  show: () => void;\n  timestamp: number;\n  value: string;\n  debouncedValue: string;\n  manualShow: () => void;\n  manualHide: () => void;\n  isManuallyOpened: boolean;\n  isLoading: boolean;\n}\n\nexport const searchInputContext = createContext<SearchInputContext | undefined>(undefined);\n\nconst { Provider } = searchInputContext;\n\nexport const SearchInputProvider: FC<PropsWithChildren> = ({ children }) => {\n  const { showSearchOnScroll } = useAppConfig();\n  const [value, setValue] = useState('');\n  const { open: isFocused, onClose: blur, onOpen: focus } = useDisclose();\n  const {\n    open: isVisible,\n    onClose: hide,\n    onOpen: show,\n  } = useDisclose({\n    defaultOpen: Boolean(showSearchOnScroll),\n  });\n  const { open: isManuallyOpened, onClose: manualHide, onOpen: manualShow } = useDisclose();\n  const [debouncedValue] = useDebounce(value, 750);\n  const {\n    isLoading,\n    data: results,\n    timestamp,\n    clearResults,\n  } = useGetSearchPreviewData({\n    query: debouncedValue,\n  });\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      setValue,\n      show,\n      timestamp,\n      value,\n      isLoading,\n      debouncedValue,\n    }),\n    [\n      blur,\n      clearResults,\n      focus,\n      hide,\n      isFocused,\n      isManuallyOpened,\n      isVisible,\n      manualHide,\n      manualShow,\n      results,\n      show,\n      timestamp,\n      value,\n      isLoading,\n      debouncedValue,\n    ],\n  );\n\n  return <Provider value={context}>{children}</Provider>;\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 { 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 enum Categories {\n  ACCESSORIES = 'accessories',\n  BATH_BODY = 'bath-body',\n  ESSENTIAL_OILS = 'essential-oils',\n  FRAGRANCE = 'fragrance',\n  HAIR = 'hair',\n  KIDS_BABY = 'kids-baby',\n  MAKEUP = 'makeup',\n  MEN = 'men',\n  NUTRITION = 'nutrition',\n  SKINCARE = 'skincare',\n  WELLNESS = 'wellness', // TODO -- remove wellness replaced by nutrition\n}\n","export const FavoritesLink = '/favourite-products';\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: 64px;\n  --top-nav-inner-height: 64px;\n}\n\n.top-nav--is-mobile {\n  --top-nav-height: 60px;\n  --top-nav-inner-height: 60px;\n}\n\n.top-nav--with-top-area-banner {\n  --top-nav-height: 98px;\n  --top-nav-inner-height: 64px;\n}\n\n.top-nav--search-input-visible.top-nav--is-mobile {\n  --top-nav-height: 119px;\n  --top-nav-inner-height: 60px;\n}\n\n.top-nav--with-top-area-banner.top-nav--search-input-visible.top-nav--is-mobile {\n  --top-nav-height: 153px;\n  --top-nav-inner-height: 60px;\n}\n\n.top-nav--with-top-area-banner.top-nav--is-mobile {\n  --top-nav-height: 94px;\n  --top-nav-inner-height: 60px;\n}\n\n.top-nav--no-scroll {\n  overflow: hidden;\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/dist/esm/App.css\"],\"names\":[],\"mappings\":\"AAAA;EACE,4CAA4C;EAC5C,sBAAsB;EACtB,4BAA4B;AAC9B;;AAEA;EACE,sBAAsB;EACtB,4BAA4B;AAC9B;;AAEA;EACE,sBAAsB;EACtB,4BAA4B;AAC9B;;AAEA;EACE,uBAAuB;EACvB,4BAA4B;AAC9B;;AAEA;EACE,uBAAuB;EACvB,4BAA4B;AAC9B;;AAEA;EACE,sBAAsB;EACtB,4BAA4B;AAC9B;;AAEA;EACE,gBAAgB;AAClB;;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: 64px;\\n  --top-nav-inner-height: 64px;\\n}\\n\\n.top-nav--is-mobile {\\n  --top-nav-height: 60px;\\n  --top-nav-inner-height: 60px;\\n}\\n\\n.top-nav--with-top-area-banner {\\n  --top-nav-height: 98px;\\n  --top-nav-inner-height: 64px;\\n}\\n\\n.top-nav--search-input-visible.top-nav--is-mobile {\\n  --top-nav-height: 119px;\\n  --top-nav-inner-height: 60px;\\n}\\n\\n.top-nav--with-top-area-banner.top-nav--search-input-visible.top-nav--is-mobile {\\n  --top-nav-height: 153px;\\n  --top-nav-inner-height: 60px;\\n}\\n\\n.top-nav--with-top-area-banner.top-nav--is-mobile {\\n  --top-nav-height: 94px;\\n  --top-nav-inner-height: 60px;\\n}\\n\\n.top-nav--no-scroll {\\n  overflow: hidden;\\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":["defaultTranslations","dialogMessage","dialogTitle","foreignCountryButton","homeCountryButton","translationsNamespace","LIBRARY_NAME","PbsCookieNames","GEOLOCATION_LOCAL_STORAGE_KEY","getCountryCode","countryCode","Cookies","get","toLocaleLowerCase","oldRegistrationPaths","getHomeCountryUrl","environment","store","pathname","window","location","replace","RegExp","join","homeCountryUrl","URL","search","hash","searchParams","set","toString","formatCountryName","name","split","map","capitalize","getGeolocationData","async","enabled","isAnonymousUser","staticApiUrl","tenant","foreignCountry","homeCountry","visible","PBS_CODE","PBS_OWNER","hiddenByUser","getHiddenByUser","hideGeolocationUntilFromLocalStorage","localStorage","getItem","hideGeolocationUntil","Date","dateNow","language","navigator","client","ApiClient","baseUrl","data","isForeignRegistrationAllowed","Promise","all","getTenantCountry","lang","Content","styled","theme","display","flexDirection","gap","spacing","textAlign","breakpoints","up","maxWidth","a","color","palette","common","white","Dialog","DialogBase","zIndex","Inner","GeolocationDialog","open","onClose","translations","formatMessage","useTranslationsFromNamespace","getTestId","useTestId","onCloseAndHideUntilDate","useCallback","setHideGeolocationUntilDate","setMonth","getMonth","setItem","toISOString","_jsx","children","_jsxs","Typography","variant","component","Button","href","onClick","Geolocation","useServiceUrls","useEnvironment","useToken","onOpen","useDisclose","useSWR","revalidateIfStale","revalidateOnFocus","revalidateOnReconnect","useEffect","TestIdProvider","team","Team","Presentation","project","TranslationsProvider","defaultTranslationsWithNamespaces","clientFetchConfiguration","onError","console","error","translationsWithNamespaces","undefined","TranslationsNamespaceProvider","namespace","Name","SSO_IDENTITY_LOGIN_PATH","SSO_IDENTITY_AD_LOGIN_PATH","loginContext","createContext","Provider","goToPage","page","LoginProvider","doLogin","event","Boolean","ctrlKey","metaKey","onLogin","addEventListener","removeEventListener","value","useMemo","allBrands","articles","brands","callToActionCatalogueText","change","clearSearchInput","failedToSubmit","gotIt","loading","logIn","loggedInAs","menu","myAccount","myFavoriteProducts","nextCatalogue","noOptions","notifications","oriflameSweden","other","popularProducts","popularProductsInThisSearchQuery","popularSearchQueries","products","register","searchDesktop","seeAll","seeAllCatalogues","seeAllResultsFor","shopFor","shoppingBag","signIn","topAreaBannerReferralMessage","view","APP_NAME","PACKAGE_NAME","getSearchTime","timestamp","searchTime","now","analytics","formatProduct","brand","code","image","price","category","currencyCode","currency","globalBrandName","globalCategoryName","globalName","itemCode","localBrandName","localCategoryName","localName","media","getSignalsData","customerId","position","results","query","sessionId","type","params","count","docId","filterQueries","source","totalHits","numberOfProducts","userId","timeStamp","useSendNavigationSignal","useSearchInput","globalApiClient","useApiClient","useLanguage","useAppConfig","sendNavigationSignal","analyticsData","createApplicationsNavigationSignal","ACCEPT_LANGUAGE","TENANT_CONTEXT","ReferralType","useCookieStoreInfo","cookieInfo","setCookieInfo","useState","None","productListType","pbsOwnerCookie","ecrefCookie","ECREF","owner","PBS","PermanentTopBannerType","SocialContactType","MY_PAGES_REGEX","CHECKOUT_REGEX","mapTopAreaBanners","application","permanentTopBanners","filter","isNonNullable","banner","message","link","relativeUrl","title","shouldOpenInvitationOffer","url","key","startsWith","slice","shouldSkipTopAreaBannersFetch","enableTopAreaBanner","loadingSegmentationData","orderOnBehalfVisible","bannerType","vipOrderUrls","consultantNumber","hint","consultantContext","loadingVipAccess","isLoading","isAnonymousWithStore","topBannerVisible","isLoadingTopBanner","defaultTopAreaBannerContextValue","bannersData","isOrderOnBehalfVisible","orderOnBehalfData","topAreaBannerContext","useTopAreaBanner","useContext","getMobileCssHeightVariable","isTopBannerVisible","showSearchOnScroll","CSS_MOBILE_WITH_SEARCH_INPUT_WITH_TOP_AREA_BANNER_HEIGHT","CSS_MOBILE_WITH_TOP_AREA_BANNER_HEIGHT","CSS_MOBILE_WITH_SEARCH_INPUT_HEIGHT","CSS_MOBILE_HEIGHT","getSearchInputTopAttribute","SEARCH_INPUT_HEIGHT","TopAreaReservedSpaceBlock","shouldForwardProp","minHeight","CSS_DESKTOP_WITH_TOP_AREA_BANNER_HEIGHT","CSS_DESKTOP_HEIGHT","TopAreaBlock","id","APP_PROMO_LOCAL_STORAGE_KEY","isAppPromoBannerVisible","userOs","hideAppPromoBannerUntil","getHideAppPromoBannerUntilDate","hideAppPromoBannerUntilFromLocalStorage","appName","bannerLink","appPromoContext","AppInfoRoot","AppIcon","height","width","AppNameAndDescription","alignItems","alignSelf","AppName","fontSize","overflow","textOverflow","WebkitBoxOrient","WebkitLineClamp","AppDescription","AppInfo","appDescription","appIcon","src","alt","ImagePlaceholder","fontWeight","Root","bottom","left","backgroundColor","borderRadius","boxShadow","SHADOW_LEVEL3","text","primary","margin","paddingRight","textDecoration","SHADOW_LEVEL1","transition","transitions","create","duration","short","CloseButton","justifyContent","padding","OpenButton","marginLeft","AppPromoBanner","useTranslations","className","onCloseButtonClick","preventDefault","Clear","ShadePicker","atpClusterId","customerTypeId","useUserSegmentationData","ShadePickerController","useCustomerInitials","isUserVerified","useGetCustomerProfile","swr","getRetryErrorSwrOptions","firstName","lastName","charAt","BurgerMenuTabNames","BurgerMenuContent","lazy","default","LazyBurgerMenuContent","Suspense","fallback","CataloguesSkeleton","SignInLabel","ButtonBase","typography","fontWeightBold","whiteSpace","textTransform","grey","cursor","DesktopUserIconButton","lineHeight","minWidth","svg","MobileUserIconButton","UserAvatar","Avatar","BurgerMenuTabRoot","ownerState","overline","isActive","BurgerMenuTabPrefixWrapper","isLoggedIn","BurgerMenuTabLabelWrapper","marginRight","BurgerMenuTab","activeTab","tabPrefix","tabName","onTabClick","clickHandler","TabIcon","disableRipple","BURGER_MENU_TAB_ROOT","BURGER_MENU_TAB_ICON_WRAPPER","TAB_ICON","BURGER_MENU_TAB_LABEL_WRAPPER","LazyGeneratedBurgerMainMenuLinks","LazyLinks","isMobile","useIsMobile","SkeletonMainCategoriesMobile","SkeletonMainCategoriesDesktop","BurgerMenu","mobilePersonalMenuOutlet","BurgerMenuType","AccountSideMenu","AccountSideMenuType","ToggleMenuFlyout","activeMenu","toggleActiveMenu","useActiveMenu","handleTabClick","menuType","ProductsTab","customerInitials","isMenuActive","AccountTab","onClickOverlay","slots","backdrop","Backdrop","ModalRoot","Slide","in","direction","BurgerMenuRoot","BURGER_MENU_ROOT","BurgerMenuContainer","BURGER_MENU_CONTAINER","BurgerMenuIcon","as","isDesktop","BurgerMenuInner","BURGER_MENU_BACKDROP","sx","JoinTileImage","imagesVariants","imageFormat","imageSizeMultiplier","quality","images","getImageVariants","sizes","srcSet","generateSrcSet","decoding","JoinMenuRoot","border","isVisible","top","CSS_DESKTOP_INNER_HEIGHT","CSS_HEIGHT_ANIMATION","JoinTilesWrapper","borderBottom","columnGap","gridAutoColumns","gridAutoFlow","gridTemplateRows","JoinTileLink","Link","webkitTapHighlightColor","background","alpha","black","A700","borderColor","content","objectFit","JoinTileDescription","textShadow","shadows","transform","JoinTileButton","JoinMenuIdkyLink","main","light","JoinMenu","items","useGetNavigationType","exitMenu","iDontKnowYetLink","find","linkType","StaticNavigationNavigationItemDtoLinkType","IDontKnowYet","joinTiles","MenuTiles","length","imageUrl","description","CustomEvent","detail","dispatchToggleMenu","menuToggle","dispatchEvent","requestAnimationFrame","toggleMenu","menuIsOpen","UserAction","CLICK_BURGER_MENU","useToggleMenu","BurgerMenuIconRoot","isOpen","BurgerMenuIconWrapper","BurgerMenuIconLine","marginBottom","opacity","BURGER_MENU","BurgerMenuToggleRoot","BurgerMenuToggle","BURGER_MENU_TOGGLE_ROOT","OriflameLogoSvg","Logo","ChineseLogo","xmlns","viewBox","d","CommonLogo","StyledLink","fill","OriflameLogo","isMarketCN","useIsMarketCN","LeftActionsSectionRoot","LeftActionsSection","useHover","iconOnHover","icon","hidden","isHover","setIsHover","ref","useRef","isHoverAvailable","useMediaQuery","getIcon","handleMouseOver","handleMouseLeave","element","current","FavoritesHeartRoot","FavoritesHeartIcon","HeartFilledIcon","pink","shouldFavoritesRender","useAreFavoritesEnabled","Icon","HeartFilled","Heart","isOnFavorites","includes","FavoritesLink","handleClick","CLICK_FAVORITE_ICON","labelsContextDefaultValue","aboutLabel","joinLabel","joinUrl","labelsContext","findLabel","item","collection","JoinLabel","shouldNotForwardProp","JoinSkeleton","Skeleton","JoinIcon","ToggleMenuFlyoutEvent","NotificationBellIconButton","IconButton","NotificationBellIcon","NotificationFilled","Notification","isClicked","setIsClicked","useGetCustomerUnseenNotificationsCount","CLIENT_APPLICATION","CLICK_NOTIFICATION_ICON","Notifications","Badge","badgeContent","max","invisible","SearchIconRoot","down","SearchIcon","hideSearchResultsTab","hide","show","manualShow","manualHide","searchPlaceholder","useSearchInputPlaceholder","Search","mapSearchPreviewProductToShadePicker","product","shades","shade","productCode","currentFormatted","oldFormatted","getQuickBuyButtonOnClickHandler","hasAutosubscribe","openProductInfoDialog","mode","OpenProductInfoDialog","placement","Placement","TopNavigationSearchSuggestions","productCodes","DialogMode","StandardBuy","isMultishade","OpenShadePicker","productName","openShadePicker","getSearchUrl","encodeURIComponent","QUERY_NAME","boldMatchedText","searchPhrase","escapedSearchPhrase","replaceAll","trim","regExpPattern","splitText","matches","match","el","index","Label","verticalAlign","StyledChip","Chip","chipClasses","label","SearchPreviewSuggestion","textWithBoldPhrase","SearchPreviewHeader","SEARCH_PREVIEW_IMAGE_SIZE","ImageWrapper","shape","boxSizing","SearchPreviewImage","useTheme","testId","SEARCH_PREVIEW_PRODUCT_PRODUCT_INFO_LABEL","allowedDealLabels","NEW_EDITION","LabelContainer","ProductInfoLabel","ppa","deal","shouldDisplayPpaLabel","isPpaLabel","labelKey","shouldDisplayDealLabel","size","Shades","maxVisible","shadesToRender","Shade","ShadeSize","Small","Brand","letterSpacing","Bottom","flexWrap","ProductInfo","nameWithSearchPhrase","getCurrentPriceColor","oldPriceVisible","offer","CurrentPrice","OldPrice","Prices","Info","flex","PriceAndButton","Price","SearchPreviewProduct","onProductClick","onQuickBuyButtonClick","canBeSold","QuickBuyButton","currentProductCode","currentPrice","overflowY","maxHeight","Suggestions","overflowX","scrollbarWidth","Products","SeeAllResults","StyledDivider","Divider","SearchPreview","suggestions","financialSet","useCulture","onSuggestionsClick","suggestion","SearchSuggestionClick","itemData","target","localBannerTitle","itemType","ContentType","PopularQuery","searchQuery","onProductLick","searchSuggestionClickData","Product","addParamsToUrl","path","queryString","urlParams","URLSearchParams","Object","entries","forEach","Fragment","SEARCH_PREVIEW_PRODUCT_SKELETON","ProductRoot","ImageSkeleton","UnifiedSkeleton","QuickBuyButtonSkeleton","SearchPreviewProductSkeleton","animation","ProductInfoRoot","SEARCH_PREVIEW_SKELETON_SUGGESTION","HeaderSkeleton","SeeAllSkeleton","SEARCH_PREVIEW_SEE_ALL_HEIGHT","SearchPreviewSkeleton","times","PRODUCTS_COUNT","SearchPreviewRoot","SearchPreviewContent","innerHeight","overscrollBehaviorY","SearchPreviewContainer","useWindowSize","SearchResults","SearchInputRoot","isVisibleOnMobile","showOnlyOn","isFocused","justifySelf","appBar","speedDial","SearchInputBox","paddingLeft","visibility","SearchInputInput","outline","SearchInputClear","InputBackdrop","onEnterPressHandler","e","currentTarget","SCROLL_THRESHOLD","SearchInput","focus","blur","clearResults","isManuallyOpened","setValue","debouncedValue","isAccountSideMenuActive","inputRef","prevScrollY","setPrevScrollY","document","body","classList","add","TOP_NAV_NO_SCROLL","remove","throttledAnalytics","useThrottledCallback","START_SEARCH","SEARCH_THROTTLE_TIME","onFocusHandler","showBackdrop","shouldShowBackdrop","onChangeHandler","isValueEmpty","handleScrollDebounced","debounce","handleScroll","currentScrollY","scrollY","difference","closeSearch","clearInput","MenuTypes","handleOnBlur","useListenToKeyDown","autoFocus","placeholder","onFocus","onChange","onBlur","onKeyDown","growShrinkAnimation","keyframes","isAnimationActive","badgeClasses","badge","animationDuration","animationName","ShoppingBagCounter","shoppingBagQuantity","setIsAnimationActive","setTimeout","isCnMarket","getMinibagFlyoutEvent","shouldOpen","Minibag","ShoppingBagIcon","isECatalogue","useDeviceType","setIsECatalogue","mobileBreakpoint","mobileBreakpointECatalogue","getElementById","isMobileOnECatalogue","EmptyBasket","AddToBag","IconOnHover","ShoppingBasketFilled","AddToBagFilled","onBasketUpdated","onShoppingContextLoaded","isReceivedShoppingContext","useShoppingBag","setSessionId","setShoppingBagQuantity","setIsReceivedShoppingContext","updateShoppingBagQuantity","newQuantity","ShoppingContextLoaded","BasketUpdated","triggerRequestShoppingContext","requestShoppongContextEvent","RequestShoppingContext","onMouseEnter","onMouseLeave","onMobileEcataloguePageClick","hoverIcon","USER_ICON_MOBILE","USER_ICON_DESKTOP","MY_PAGES_URL","UserSection","UserFilled","User","useLogin","context","Error","_Fragment","startIcon","RightActionsSectionRoot","RightActionsSection","showFavorites","shouldShowNotificationMenu","useShouldRenderNotificationMenu","shouldDisplayNotificationIcon","TOP_AREA_BANNER_HEIGHT","blue","TopAreaBannerSkeleton","VipOrderFormRoot","ChangeConsultantForm","vipAccessLabels","ConsultantChangeConsultantNumber","logger","useLogger","abortControllerRef","AbortController","formRef","areHintsLoading","setAreHintsLoading","setConsultantNumber","errorMessage","setErrorMessage","hints","setHints","isSubmitLocked","setIsSubmitLocked","handleSubmit","useForm","handleChange","axios","signal","then","catch","cause","finally","handleSelect","textContent","post","result","onSubmit","ConsultantNumber","consultant","ErrorMessage","IsAccessGranted","submit","renderInput","props","TextField","helperText","fullWidth","getOptionLabel","String","action","autoComplete","method","Autocomplete","loadingText","noOptionsText","options","disabled","BackArrow","SvgIcon","PopupContentGroup","span","pxToRem","marginTop","PopupButton","PopupLink","OrderOnBehalfDialog","vipAccessData","close","changeOpened","setChangeOpened","onChangeOpened","header","ArrowLeftThin","hideCloseButton","Links","Url","Text","OrderContent","Username","OrderOnBehalf","VipAccessData","VipAccessLabels","NewUserFilled","ConsultantName","ArrowRightThin","isClickable","Title","Banner","navigation","showArrows","pagination","slider","drag","BannersCarousel","autoplay","interval","Carousel","propagateDragEvent","CarouselSlide","personalBeautyStoreContext","pbsData","storeInfo","getContactByType","allowedContacts","contacts","contact","Contact","Email","Telephone","GreetingMessageAndContact","Gift","BannerDialog","paperClasses","root","emphasis","chunks","TopAreaBannerDialog","referralProgram","beautyStore","profile","benefitsLink","greetingMessage","linkTitle","userEmail","userPhone","PhoneNumber","DynamicFormattedMessage","translatedMessage","values","TopAreaBannerContent","ErrorBoundary","areaName","TopAreaBanner","isSearchInputVisible","TOP_AREA_BORDER_BOTTOM","CSS_MOBILE_INNER_HEIGHT","TopArea","Context","composeProviders","providers","reduceRight","accumulated","ApiProvider","currentLanguage","globalApiUrl","formattedToken","GlobalApiClientProvider","token","StaticApiClientProvider","UserSegmentationDataProvider","HeadersProvider","sourceAppName","AppPromoProvider","setVisible","pagePath","setPagePath","useMobileOs","setUserOs","os","UAParser","getOS","useGetTenantMobileAppSmartAppBanner","storeName","shouldRetryOnError","setHideAppPromoBannerUntilDate","SearchInputProvider","ActiveLinkProvider","ActiveMenuProvider","ConsultantProvider","consultantType","useGetApplicationsNavigationCustomerInfo","vipAccess","baseURL","origin","response","TopAreaBannerProvider","shouldGetBannerType","isSSR","getTopAreaBannerType","test","MyPages","Checkout","PublicPageWithReferral","PublicPage","useGetTopAreaBanners","isValidating","apiError","useGetTenantApplicationsBannerEnrichedPermanentTopAreaBanners","isTopAreaBannerVisible","LabelsProvider","StaticNavigationNavigationItemDtoType","AboutTiles","JoinTiles","findUrl","BurgerMenuProvider","configurationContext","isEnabled","ConfigurationProvider","useSponsorPersonalBeautyStoreInfo","useGetCustomerSponsorPersonalBeautyStore","mainLogger","Logger","teamName","beautyStoreQuery","gql","createChild","usePersonalBeautyStoreData","graphQlNetUrl","sponsorData","shouldCall","dataFromApi","useGraphqlQuery","headers","getHeaders","variables","skip","swrConfig","cloneDeep","PersonalBeautyStoreProvider","cookiesToTransform","cookie","queryParam","stopIfFound","ECREF_OWNER","updateQueryParameters","newQueryParameters","newUrl","history","replaceState","removeQueryParameter","queryParams","has","delete","ensureQueryParameter","PbsApp","configuration","setQueryParameter","parameters","removeQueryParameterHistoryApi","setQueryParameterHistoryApi","foundPrev","cookieName","queryParamName","stopIfFoundPrev","removeIfNotFound","cookieValue","stop","info","SWRConfig","errorRetryCount","Pbs","useLoadAbTastyScript","abTastyEnabled","scriptSrc","getScriptSrc","AB_TASTY_SCRIPT_IDS","AB_TASTY_SCRIPT_URL","AB_TASTY_SCRIPT_ID","script","createElement","append","TopNavClassName","getClassList","addClassName","removeClassName","useManagedHeight","bannerVisible","inputVisible","mobile","searchInputVisible","withTopAreaBanner","useToggleMenuHandler","onToggle","events","listener","useGlobalEvents","useAddToBasketAnalytics","onAddToBasket","AddToBasketEvent","TopAreaBlockContent","pbs","AppConfigProvider","LoggerProvider","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","BurgerPersonalMenuOutlet","Box","CircularProgress","getEnvironmentClientAppFileUrlPostfix","PERSONAL_MENU_BLOB_NAME","getClientAppScriptElement","clientAppName","querySelector","getPersonalMenuScriptSrc","getEnvironmentFromHost","host","topAreaScript","clientAppFileBaseUrl","spaName","endsWith","createSpaEntryfileUrl","localLogger","TEAM_NAME","render","config","rootElement","dataset","identityUrl","clientAppConfig","parseClientAppConfig","mobileOfficeApiUrl","graphqlUrl","graphqlNetUrl","useInternationalShareAndEarn","ApplicationInsights","initialize","getClientApplicationInsightsConfig","createRoot","ServiceUrlsProvider","serviceUrls","graphQlUrl","EnvironmentProvider","UniversalTokenProvider","initialToken","ThemeProvider","enableCacheProvider","cacheKey","EMOTION_CACHE_KEY","ClientCultureProvider","includePersonalMenuScript","personalMenuSrc","setAttribute","head","loadingUserSegmentationData","visitorSegment","requestParams","excludeChildren","useGetTenantApplicationsNavigationNavigation","localError","navigationCollection","CatalogueSkeleton","CategoryBoxSkeleton","CATEGORY_BOX_DESKTOP_MEDIUM_WIDTH","ButtonSkeleton","SkeletonCatalogueDesktop","SKELETON_CATALOGUE_DESKTOP","CatalogueWrapper","showDescription","CallToActionWrapper","SkeletonCatalogueMobile","Catalogue","CatalogueDetailButton","hoverEffect","CatalogueLink","CallToAction","CTAText","textUnderlineOffset","textDecorationThickness","subtitle1","MobileWrapper","LinksRoot","body1","listStyle","borderRight","flexShrink","paddingTop","paddingBottom","SpecialLinkWrapper","MenuSectionDivider","LinksSpecialLink","secondary","WebkitTapHighlightColor","BurgerMenuLinkListElement","BurgerMenuLinkLink","h6","BurgerMenuLinkIconWrapper","isActiveLink","BurgerMenuTopItemLink","green","BurgerMenuLinkCategory","colors","mapCategoryColors","Categories","ACCESSORIES","red","BATH_BODY","ESSENTIAL_OILS","purple","FRAGRANCE","brown","HAIR","yellow","KIDS_BABY","MAKEUP","MEN","NUTRITION","SKINCARE","WELLNESS","TitleIconRoot","BURGER_MENU_LINK","BURGER_MENU_LINK_ROOT_MOBILE","BURGER_MENU_LINK_CATEGORY_MOBILE","BURGER_MENU_LINK_ICON_WRAPPER","BURGER_MENU_CONTENT","BURGER_MENU_LINK_ROOT","BURGER_MENU_LINK_CATEGORY","BURGER_MENU_CONTENT_ROOT","CATEGORY_WRAPPER","FAVORITE_LIST_ITEM","LINKS_ROOT","SPECIAL_LINK","SPECIAL_LINKS_WRAPPER","OUR_STORY_SUPPORT_LINK","OUR_STORY_LINK","TITLE_WITH_ICON","BURGER_MENU_TOP_ITEM_LINK","EQUAL_LINKS","LINK_A_FIRST","LINK_B_FIRST","TOP_LINKS","LINK_PRIORITIES","FocusPage","HEIGHT_BUFFER","Sales","BurgerMenuContentRoot","Modal","basePositionStyles","drawer","DESKTOP_HEIGHT","SkeletonMenuLinks","MAIN_CATEGORY_DESKTOP","SkeletonCatalogueMobileRoot","SKELETON_CATALOGUE_MOBILE","SkeletonMainCategoriesMobileCategory","SkeletonMainCategoriesMobileCategoryLarge","elements","Math","floor","steps","Array","from","skeletonElements","step","SKELETON_MAIN_CATEGORY_MOBILE","right","CLICK_CATALGOUE","CLICK_CATALOGUE_DETAIL","CLICK_CATEGORY_BRAND","CLICK_SUBCATEGORY_LINK","TOP_NAV_HEIGHT_CSS_VARIABLE","TOP_NAV_INNER_HEIGHT_CSS_VARIABLE","MOBILE_HEIGHT","pl_live","pl_stg","ro_live","ro_stg","uk_live","uk_stg","SEARCH_PREVIEW_PRODUCTS_LIMIT","appConfigContextDefaultValue","onlyProductsTabInSearch","appConfigContext","activeLinkContext","activeLink","setActiveLink","toggleActiveLink","useActiveLink","activeMenuContext","setActiveMenu","burgerMenuContextDefaultValue","aboutItems","loadingAboutItems","inspirationItems","loadingInspirationItems","shopSectionItems","loadingShopSectionItems","burgerMenuContext","contextValue","useBurgerMenu","labels","searchPreviewShade","conceptFragment","searchPreviewProduct","searchPreviewQuery","mapEnableQuickBuyButton","mapCanBeSold","some","mapHasAutoSubscription","mapShadeWithPrice","hexColors","mapShade","shadeName","getCurrentFormattedPrice","formattedPrice","getOldPrice","getPrice","priceAfterImmediateDiscount","Number","parseFloat","mapSearchPreviewQuery","totalProductsCount","productSearchPreview","searchResults","mapSearchPreviewShades","concept","mapLabels","OFFER","pdpUrl","categories","useGetSearchPreviewData","useHeaders","setTimestamp","mutate","limit","fetchGraphql","timeout","getSearchPreviewData","searchInputContext","defaultOpen","useDebounce","md","___CSS_LOADER_EXPORT___","push","module"],"sourceRoot":""}