{"version":3,"file":"static/js/7162.d854b3fd.chunk.js","mappings":"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","sources":["webpack:///./src/content/helmet/HelmetProvider.tsx","webpack:///./src/dialog/internal.hooks.ts","webpack:///./src/dialog/remote-dialog.hooks.ts","webpack:///./src/dialog/RenderRemoteDialog.tsx","webpack:///./src/localization/InitLocalization.tsx","webpack:///./src/localization/LocalizationProvider.tsx","webpack:///./src/logout/LogoutConfigProvider.tsx","webpack:///./src/logout/cms-api-hooks.ts","webpack:///./src/logout/useLogOutConfig.ts","webpack:///./src/provider/AppProviders.tsx","webpack:///./src/provider/favorite-products/FavoriteProductsProvider.tsx","webpack:///./src/provider/favorite-products/favorite-product-context.ts","webpack:///./src/provider/favorite-products/useFavoriteProducts.ts","webpack:///./src/provider/favorite-products/useFavoriteProductsContext.ts","webpack:///./src/provider/scope/ErrorBoundary.tsx","webpack:///./src/provider/scope/ScopeProvider.tsx","webpack:///./src/provider/scope/scope-context.ts","webpack:///./src/provider/scope/useScope.ts","webpack:///./src/query/SameOriginApiSwitch.tsx"],"sourcesContent":["import React, { ReactNode } from 'react';\nimport { HelmetProvider } from 'react-helmet-async';\n\ntype Props = {\n  children: ReactNode;\n};\n\nexport function HelmetProviderAsync(props: Props) {\n  const { children } = props;\n  return <HelmetProvider>{children}</HelmetProvider>;\n}\n","import { atom, useRecoilState, useRecoilValue } from 'recoil';\n\nexport type RemoteDialogInfo = {\n  dialogId: string;\n  dialogParams?: unknown;\n  instanceId: string;\n  onClose?: (answer: unknown) => void;\n};\n\nexport const dialogsStackAtom = atom<RemoteDialogInfo[]>({\n  default: [],\n  key: 'dialogsStackAtom',\n});\n\nexport function useCurrentDialogInfo() {\n  const dialogsStack = useRecoilValue(dialogsStackAtom);\n  const lastIndex = dialogsStack.length - 1;\n  return lastIndex > -1 ? dialogsStack[lastIndex] : undefined;\n}\n\nexport function useCancelAllDialogs() {\n  const [stack, setStack] = useRecoilState(dialogsStackAtom);\n\n  return () => {\n    if (stack.length === 0) {\n      return;\n    }\n    const reversedDialogInfos = [...stack].reverse();\n    reversedDialogInfos.forEach((info) => {\n      if (info.onClose) {\n        info.onClose(undefined);\n      }\n    });\n    setStack([]);\n  };\n}\n","import { useRecoilState, useSetRecoilState } from 'recoil';\n\nimport { dialogsStackAtom, RemoteDialogInfo } from './internal.hooks';\n\nexport function useOpenDialog() {\n  const setDialogsStack = useSetRecoilState(dialogsStackAtom);\n\n  return (\n    dialogId: string,\n    dialogParams?: unknown,\n    onClose?: (answer: unknown) => void\n  ) => {\n    const instanceId = createId();\n\n    const info: RemoteDialogInfo = {\n      dialogId,\n      dialogParams,\n      instanceId,\n      onClose,\n    };\n\n    setDialogsStack((currValue) => {\n      const newValue = [...currValue];\n      newValue.push(info);\n      return newValue;\n    });\n\n    return instanceId;\n  };\n}\n\nexport function useCloseDialog() {\n  const [stack, setStack] = useRecoilState(dialogsStackAtom);\n\n  return (answer?: unknown) => {\n    const newStack = [...stack];\n\n    const info = newStack.pop();\n    if (!info) {\n      // Nothing in the stack\n      return;\n    }\n    if (info.onClose) {\n      info.onClose(answer);\n    }\n    setStack(newStack);\n  };\n}\n\nfunction createId() {\n  return `msg_${performance.now()}`.replace('.', '_');\n}\n","import React, { Suspense, useEffect, useState } from 'react';\nimport { getMfDialog, RemoteDialogProps } from '@im/ui-lib/mf-utils';\nimport { useLocation } from 'react-router-dom';\nimport { ScopeProvider } from '../provider';\nimport { useCancelAllDialogs, useCurrentDialogInfo } from './internal.hooks';\nimport { useCloseDialog } from './remote-dialog.hooks';\n\nexport function RenderRemoteDialog() {\n  const remoteDialogInfo = useCurrentDialogInfo();\n  const cancelAllDialogs = useCancelAllDialogs();\n  const closeDialog = useCloseDialog();\n  const location = useLocation();\n  const { pathname } = location;\n\n  const [Dialog, setDialog] = useState<\n    React.FC<RemoteDialogProps> | undefined\n  >();\n\n  // cancelAllDialogs on pathname change\n  useEffect(() => {\n    cancelAllDialogs();\n    // eslint-disable-next-line react-hooks/exhaustive-deps\n  }, [pathname]);\n\n  useEffect(() => {\n    if (!remoteDialogInfo) {\n      setDialog(undefined);\n      return;\n    }\n    let active = true;\n\n    (async () => {\n      const [mfName, dialogId] = remoteDialogInfo.dialogId.split('.');\n      const dialog = await getMfDialog(mfName, dialogId);\n      if (active) {\n        // https://github.com/facebook/react/issues/19098\n        setDialog(() => dialog);\n      }\n    })();\n    return () => {\n      active = false;\n    };\n  }, [remoteDialogInfo]);\n\n  if (!remoteDialogInfo || !Dialog) {\n    return null;\n  }\n\n  return (\n    <Suspense fallback={null}>\n      <ScopeProvider scope={remoteDialogInfo.dialogId}>\n        <Dialog\n          dialogParams={remoteDialogInfo?.dialogParams}\n          onClose={(answer?: unknown) => {\n            closeDialog(answer);\n          }}\n        />\n      </ScopeProvider>\n    </Suspense>\n  );\n}\n","import React, { ReactNode, useEffect } from 'react';\nimport { useLocalizationContext } from '@im/react-localization';\nimport {\n  useIsAuthenticated,\n  useResellerProfile,\n  useDecodedToken,\n} from '../auth';\n\ntype Props = {\n  children: ReactNode;\n};\n\nexport function InitLocalization(props: Props) {\n  const { children } = props;\n  const isAuthenticated = useIsAuthenticated();\n  const decodedToken = useDecodedToken();\n  const { data: resellerProfile, refetch: fetchResellerProfile } =\n    useResellerProfile();\n\n  useEffect(() => {\n    if (isAuthenticated && !(decodedToken?.resellerProspect || false))\n      fetchResellerProfile();\n  }, [decodedToken, isAuthenticated, fetchResellerProfile]);\n\n  const localization = useLocalizationContext();\n  const locale = localization.locale;\n\n  useEffect(() => {\n    if (locale) document.querySelector('html')?.setAttribute('lang', locale);\n  }, [locale]);\n\n  useEffect(() => {\n    if (resellerProfile) {\n      const newCurrency = resellerProfile['currencyCode'];\n      if (newCurrency) {\n        localization.setCurrencyCode(newCurrency);\n      }\n    }\n    // eslint-disable-next-line react-hooks/exhaustive-deps\n  }, [resellerProfile]);\n\n  return <>{children}</>;\n}\n","import { LocalizationProvider as I10nProvider } from '@im/react-localization';\nimport { getAppId } from '@im/ui-lib/mf-utils';\nimport React, { ReactNode } from 'react';\nimport { v4 as uuidV4 } from 'uuid';\nimport { useBuildVars, useSiteConfig } from '../config';\nimport { getSameOriginApiBasePath, useSameOriginApis } from '../query/utils';\n\ntype Props = {\n  children: ReactNode;\n};\n\nconst win = window as any;\nconst temp_session_Id = uuidV4();\nconst translationpreloadResourcesMap: {\n  [environment: string]: string[];\n} = {\n  development: ['Common', 'myprofile'],\n  production: ['Common', 'myprofile'],\n  productionbeta: ['Common', 'myprofile'],\n  productionbetax: ['Common', 'myprofile'],\n  staging: ['Common', 'myprofile'],\n  staging2: ['*'],\n};\n\nexport function LocalizationProvider(props: Props) {\n  const { children } = props;\n\n  const buildVars = useBuildVars();\n  const siteConfig = useSiteConfig();\n\n  if (buildVars.buildEnvironment === 'staging2') {\n    const elements = document.querySelectorAll('html,body');\n    elements.forEach((element) => {\n      element.removeAttribute('translate');\n      element.classList.remove('notranslate');\n    });\n  }\n\n  const dd_session_id =\n    win.DD_RUM?.getInternalContext()?.session_id || temp_session_Id;\n\n  const isNonProd =\n    buildVars.buildEnvironment.startsWith('staging') ||\n    buildVars.buildEnvironment === 'development';\n\n  const whitelistedCountries = ['de', 'us', 'ca'];\n  const blacklistedEnvironments = ['development', 'production', 'staging2'];\n  const apiBaseRoute =\n    !blacklistedEnvironments.includes(buildVars.buildEnvironment) &&\n    whitelistedCountries.includes(siteConfig.siteCode)\n      ? buildVars.API_GCP_BASE\n      : buildVars.API_BASE;\n  const shouldUseSameOriginApis = useSameOriginApis();\n\n  const url = `${\n    shouldUseSameOriginApis() ? getSameOriginApiBasePath() : apiBaseRoute\n  }/shared/v1/translations`;\n\n  return (\n    <I10nProvider\n      apiHeaders={{ 'IM-DDSessionId': dd_session_id }}\n      appId={getAppId()}\n      defaultLocale={siteConfig.defaultLocale}\n      preloadResources={\n        translationpreloadResourcesMap[`${buildVars.buildEnvironment}`]\n      }\n      showLogs={isNonProd}\n      supportedLocales={siteConfig.supportedLocales}\n      url={url}\n      useApi={true}\n    >\n      {children}\n    </I10nProvider>\n  );\n}\n","import React, { ReactNode } from 'react';\nimport { logoutContext, useLogOutConfig } from './useLogOutConfig';\n\ntype Props = {\n  children: ReactNode;\n};\n\nexport function LogoutConfigProvider(props: Props) {\n  const { children } = props;\n  const logoutConfig = useLogOutConfig();\n  const { Provider } = logoutContext;\n  return <Provider value={logoutConfig}>{children}</Provider>;\n}\n","import { UseQueryOptions, useQuery } from '@tanstack/react-query';\nimport { useOktaAuth } from '@okta/okta-react';\nimport { useLogoutContext } from './useLogOutConfig';\nimport { ExtraHeaders } from '../query/useApiHeaders';\nimport { useApiGet } from '../query/api-hooks';\nimport { useIsTokenExpired } from '../auth/user-info.hooks';\n\ntype ObjectMap = {\n  [key: string]: any;\n};\nexport type CmsExtraQueryOptions = {\n  /**Set to `false` if you do not want api to fetch in logout mode.\n   */\n  isLogoutApi?: boolean;\n\n  /**Set to `false` if you do not want to modify the UserLoggedIn query param.\n   */\n  modifyUserLoggedInParam?: boolean;\n};\n\nconst DEFAULT_404_RESPONSE: ObjectMap = { hasNoContent: true };\nconst DEFAULT_EXTRA_OPTIONS: CmsExtraQueryOptions = {\n  isLogoutApi: true,\n  modifyUserLoggedInParam: true,\n};\n\n/** Customized implementation of `useApiQuery` from mf_core/query to handle only CMS api calls for both login/logout.\n * @description This does not return queryResult's `isError`=`true` in case of API 404.\n * To custom handle 404 API errors use `data.hasNoContent` boolean value instead.\n * To use api for login only api send extraQueryOptions param as { isLogoutApi: false }\n * @param apiRoute api endpoint eg: `\"/cms/v1/resources\"`\n * @param queryParams `UserLoggedIn: boolean` gets addded as a query param for all queries\n * @param useQueryOptions react-query UseQueryOptions\n * @param extraHeaders Adds extra header as object type {[x: string]: string | undefined}\n * @param extraQueryOptions  Default is { isLogoutApi: true, modifyUserLoggedInParam: true }\n */\nexport function useApiQueryForCms<TO = ObjectMap>(\n  apiRoute: string,\n  queryParams?: ObjectMap,\n  useQueryOptions?: Partial<UseQueryOptions<TO>>,\n  extraHeaders?: ExtraHeaders,\n  extraQueryOptions = DEFAULT_EXTRA_OPTIONS\n) {\n  const oktaContext = useOktaAuth();\n  const cmsData = useLogoutContext();\n  const isTokenExpired = useIsTokenExpired();\n  const isAuthenticated = oktaContext?.authState?.isAuthenticated;\n  const customOptions = {\n    isLogoutApi: Boolean(\n      !isAuthenticated &&\n        extraQueryOptions?.isLogoutApi &&\n        cmsData?.data?.isLogoutEnabled\n    ),\n  };\n  const apiGet = useApiGet<TO>(customOptions);\n  const route = isAuthenticated\n    ? apiRoute\n    : apiRoute.replace('/cms/v1', '/cms-noauth/v1');\n  let params = queryParams;\n  if (extraQueryOptions?.modifyUserLoggedInParam) {\n    params = {\n      ...queryParams,\n      UserLoggedIn: isAuthenticated,\n    };\n  }\n\n  const enabled = Boolean(\n    ((!isTokenExpired && isAuthenticated) || customOptions?.isLogoutApi) &&\n      (useQueryOptions?.enabled || useQueryOptions?.enabled === undefined)\n  );\n\n  return useQuery<TO>({\n    ...useQueryOptions,\n    enabled: enabled,\n    queryFn: () =>\n      apiGet(route, params, extraHeaders).catch((error) => {\n        if (error?.response?.status === 404) {\n          return DEFAULT_404_RESPONSE as unknown as TO;\n        }\n        throw error;\n      }),\n    queryKey: [route, params, extraHeaders],\n    retry: 0,\n  });\n}\n","import { useLocalizationContext } from '@im/react-localization';\nimport { createContext, useContext, useMemo } from 'react';\nimport { useIsAuthenticated } from '../auth';\nimport { useApiQuery } from '../query';\nimport { KenticoWidgetData } from './cms.widget.types';\n\n/** Query for loggedout homepage and configuration*/\nexport function useLogOutConfig() {\n  const { locale } = useLocalizationContext();\n  const isAuthenticated = useIsAuthenticated();\n  const query = useApiQuery<LogoutHomePageConfigTO>(\n    `/cms-noauth/v1/loggedout-home`,\n    { culture: locale },\n    { enabled: !isAuthenticated },\n    undefined,\n    {\n      isLogoutApi: true,\n    }\n  );\n  return useMemo(() => {\n    return {\n      data: query.data,\n      isLoading: query.isLoading,\n    } as ILogoutConfigContext;\n  }, [query.data, query.isLoading]);\n}\n\n/** context for logout config */\nexport const logoutContext = createContext<ILogoutConfigContext | undefined>(\n  undefined\n);\n\n/** `Hook` to access logoutContextData.\n */\nexport function useLogoutContext(contextData?: ILogoutConfigContext) {\n  const context = useContext(logoutContext);\n  return context ?? { data: undefined, isLoading: true };\n}\n\nexport type ILogoutConfigContext = {\n  data: LogoutHomePageConfigTO | undefined;\n  isLoading: boolean;\n};\n\nexport type LogoutHomePageConfigTO = {\n  absoluteUrl: string;\n  errors: any;\n  isLogoutEnabled: boolean;\n  isPageAvailable: boolean;\n  pageBuilder: KenticoWidgetData;\n  pageTitle: string;\n  renderAsReactPage: boolean;\n  seoDescription: string;\n  seoImage: string;\n  seoTitle: string;\n};\n","import React, { ReactNode } from 'react';\nimport { AuthProvider } from '../auth/auth-context';\nimport { BrowserRouter } from 'react-router-dom';\nimport { BuildConfigProvider, SiteConfigProvider } from '../config';\nimport { CmsFeatureFlagProvider } from '../content/cms-featureFlag-context/CmsFeatureFlagProvider';\nimport { FavoriteProductsProvider } from './favorite-products';\nimport { FeatureFlagProvider } from '../feature-flag';\nimport { HelmetProviderAsync } from '../content/helmet/HelmetProvider';\nimport { ImThemeProvider } from '@im/im-theme';\nimport { LicenseInfo } from '@mui/x-license-pro';\nimport { LocalizationProvider, InitLocalization } from '../localization';\nimport { LogoutConfigProvider } from '../logout';\nimport { MFOutlet } from '@im/ui-lib/mf-utils';\nimport { MuiProviders } from '@im/ui-lib/theme/MuiProviders';\nimport { QueryClient, QueryClientProvider } from '@tanstack/react-query';\nimport { RecoilRoot } from 'recoil';\nimport { ScopeProvider } from './scope/ScopeProvider';\nimport { PageLoadMetricsProvider } from './dd-custom-actions/PageLoadMetrics/PageLoadMetricsProvider';\nimport { SameOriginApiSwitch } from '../query/SameOriginApiSwitch';\n\nconst queryClient = new QueryClient({\n  defaultOptions: {\n    queries: {\n      refetchOnWindowFocus: false, // for dev\n      retry: 1, // default is 3\n    },\n  },\n});\n\ntype Props = {\n  basename?: string;\n  children: ReactNode;\n  envVars: any;\n  mfOutlets?: MFOutlet[];\n};\n\nLicenseInfo.setLicenseKey(process.env.INGRAM__MUI_PRO_KEY ?? '');\n\nexport function AppProviders(props: Props) {\n  const { basename, children, envVars, mfOutlets = [] } = props;\n  return (\n    // <React.StrictMode>\n    <QueryClientProvider client={queryClient}>\n      <ScopeProvider scope=\"cep_app\">\n        <RecoilRoot>\n          <BuildConfigProvider envVars={envVars} mfOutlets={mfOutlets}>\n            <SiteConfigProvider>\n              <LocalizationProvider>\n                <ImThemeProvider>\n                  <MuiProviders>\n                    <BrowserRouter basename={basename}>\n                      <PageLoadMetricsProvider>\n                        <AuthProvider>\n                          <InitLocalization {...props}>\n                            <LogoutConfigProvider>\n                              <FeatureFlagProvider>\n                                <CmsFeatureFlagProvider>\n                                  <HelmetProviderAsync>\n                                    <FavoriteProductsProvider>\n                                      <SameOriginApiSwitch />\n                                      {children}\n                                    </FavoriteProductsProvider>\n                                  </HelmetProviderAsync>\n                                </CmsFeatureFlagProvider>\n                              </FeatureFlagProvider>\n                            </LogoutConfigProvider>\n                          </InitLocalization>\n                        </AuthProvider>\n                      </PageLoadMetricsProvider>\n                    </BrowserRouter>\n                  </MuiProviders>\n                </ImThemeProvider>\n              </LocalizationProvider>\n            </SiteConfigProvider>\n          </BuildConfigProvider>\n        </RecoilRoot>\n      </ScopeProvider>\n    </QueryClientProvider>\n    // </React.StrictMode>\n  );\n}\n","import React, { ReactNode } from 'react';\nimport {\n  useAddToFavoriteMutation,\n  useDeleteFavoriteMutation,\n  useFavoriteProductIds,\n} from './useFavoriteProducts';\nimport { favoriteProductsContext } from './favorite-product-context';\n\ntype Props = {\n  children: ReactNode;\n};\n\nexport function FavoriteProductsProvider(props: Props) {\n  const { children } = props;\n  const { data: favoriteProducts } = useFavoriteProductIds();\n  const productIds = favoriteProducts?.productIds || [];\n\n  const addToFavoriteMutation = useAddToFavoriteMutation();\n  const removeToFavoriteMutation = useDeleteFavoriteMutation();\n\n  const modifyFavoriteProducts = (sku: string) => {\n    let isAddedToFavorite = -1;\n    if (productIds) {\n      isAddedToFavorite = productIds?.indexOf(sku);\n    }\n    if (isAddedToFavorite > -1) {\n      removeToFavoriteMutation.mutate(sku);\n    } else {\n      addToFavoriteMutation.mutate(sku);\n    }\n  };\n\n  const { Provider } = favoriteProductsContext;\n\n  return (\n    <Provider value={{ modifyFavoriteProducts, productIds }}>\n      {children}\n    </Provider>\n  );\n}\n","import { createContext } from 'react';\n\nexport type FavoriteProductsContextType = {\n  modifyFavoriteProducts: (sku: string) => void;\n  productIds: string[];\n};\n\nexport const favoriteProductsContext =\n  createContext<FavoriteProductsContextType | null>(null);\n","/* eslint-disable sort-keys */\nimport { useMutation, useQueryClient } from '@tanstack/react-query';\nimport { useUserInfo } from '../../auth';\nimport { useApiDelete, useApiPost, useApiQuery } from '../../query';\n\nexport type FavoriteProductIds = {\n  productIds: string[];\n};\n\nexport type ModifyFavoriteRequest = {\n  sku: string;\n};\n\nexport function useFavoriteProductIds() {\n  const userInfo = useUserInfo();\n  const url = `/product/v1/users/${\n    userInfo && userInfo.preferred_username\n  }/favoriteproductids`;\n  return useApiQuery<FavoriteProductIds>(url, undefined);\n}\n\nexport function useAddToFavoriteMutation() {\n  const apiPost = useApiPost<boolean>();\n  const queryClient = useQueryClient();\n  const userInfo = useUserInfo();\n\n  return useMutation({\n    mutationFn: (sku: string) => {\n      const requestAddToFavorite: ModifyFavoriteRequest = {\n        sku: sku,\n      };\n      const data = apiPost(\n        '/product/v1/users/favorite-product',\n        requestAddToFavorite\n      );\n      return data;\n    },\n    onSuccess: () => {\n      const productIdsurl = `/product/v1/users/${\n        userInfo && userInfo.preferred_username\n      }/favoriteproductids`;\n      queryClient.invalidateQueries({ queryKey: [productIdsurl] });\n\n      const prodcuctsUrl = `/product/v1/users/${\n        userInfo && userInfo.preferred_username\n      }/favoriteproducts`;\n      queryClient.invalidateQueries({ queryKey: [prodcuctsUrl] });\n    },\n    onError: (error) => {\n      console.error(error);\n    },\n  });\n}\n\nexport function useDeleteFavoriteMutation() {\n  const apiDelete = useApiDelete<boolean>();\n  const queryClient = useQueryClient();\n  const userInfo = useUserInfo();\n\n  return useMutation({\n    mutationFn: (sku: string) => {\n      const requestAddToFavorite: ModifyFavoriteRequest = {\n        sku: sku,\n      };\n      const data = apiDelete(\n        '/product/v1/users/favorite-product',\n        requestAddToFavorite\n      );\n      return data;\n    },\n    onSuccess: () => {\n      const productIdsurl = `/product/v1/users/${\n        userInfo && userInfo.preferred_username\n      }/favoriteproductids`;\n      queryClient.invalidateQueries({ queryKey: [productIdsurl] });\n\n      const productsUrl = `/product/v1/users/${\n        userInfo && userInfo.preferred_username\n      }/favoriteproducts`;\n      queryClient.invalidateQueries({ queryKey: [productsUrl] });\n    },\n    onError: (error) => {\n      console.error(error);\n    },\n  });\n}\n","import { useContext } from 'react';\nimport { favoriteProductsContext } from './favorite-product-context';\n\nexport function useFavoriteProductIdContext() {\n  const favoriteProducts = useContext(favoriteProductsContext);\n  if (!favoriteProducts) {\n    throw new Error(\n      'favoriteProductsContext value is undefined. Make sure you use the FavoriteProductsProvider before using the context.'\n    );\n  }\n  return favoriteProducts;\n}\n","import React, { Component } from 'react';\nimport { useLocalization, useTranslate } from '@im/react-localization';\nimport Typography from '@mui/material/Typography';\nimport Button from '@mui/material/Button';\nimport ArrowBackIcon from '@mui/icons-material/ArrowBack';\nimport { styled } from '@mui/material/styles';\n\ntype Props = {\n  children: React.ReactNode;\n  fallback?: JSX.Element;\n  scope: string;\n};\n\ntype State = {\n  fallback?: JSX.Element;\n  hasError: boolean;\n  scope: string;\n};\n\nexport class ErrorBoundary extends Component<Props, State> {\n  state: State = {\n    fallback: this.props.fallback,\n    hasError: false,\n    scope: this.props.scope,\n  };\n\n  static getDerivedStateFromProps(props: Props, state: State) {\n    // When the scope changes, reset hasError.\n    if (props.scope !== state.scope) {\n      return {\n        hasError: false,\n        scope: props.scope,\n      };\n    }\n    return null;\n  }\n\n  static getDerivedStateFromError(error: any) {\n    // Update state so the next render will show the fallback UI.\n    return { hasError: true };\n  }\n\n  componentDidCatch(error: any, errorInfo: any) {\n    // You can also log the error to an error reporting service\n    // logErrorToMyService(error, errorInfo);\n    console.error(`[ErrorBoundary - ${this.props.scope}]`, error, errorInfo);\n  }\n\n  render() {\n    if (this.state.hasError) {\n      // You can render any custom fallback UI\n      return (\n        <>{this.state.fallback ? this.state.fallback : <ErrorContent />}</>\n      );\n    }\n\n    return <>{this.props.children}</>;\n  }\n}\n\nfunction ErrorContent() {\n  const { translate } = useLocalization();\n  const translateStr = useTranslate();\n\n  return (\n    <Root>\n      <img\n        alt={translateStr('Common.Somethingwentwrong')}\n        src=\"/cep/assets/img/errorBoundary.svg\"\n        style={{ marginBottom: '50px' }}\n      />\n      <Typography sx={{ fontSize: '14px', lineHeight: '22px' }}>\n        {translate('ErrorBoundary.ErrorText', undefined, true)}\n      </Typography>\n\n      <Typography\n        sx={{ fontSize: '20px', lineHeight: '28px', margin: '32px 0px' }}\n        variant=\"h2\"\n      >\n        {translate('Common.PageErrorMainText')}\n      </Typography>\n      <Button\n        href=\"/cep/app/home\"\n        startIcon={<ArrowBackIcon />}\n        sx={{ fontSize: '14px', lineHeight: '22px', textTransform: 'none' }}\n        variant=\"contained\"\n      >\n        {translate('Common.BackToHome')}\n      </Button>\n    </Root>\n  );\n}\nconst Root = styled('div')(() => ({\n  margin: '50px auto 0px',\n  maxWidth: '1500px',\n  textAlign: 'center',\n}));\n","import React from 'react';\nimport { scopeContext } from './scope-context';\nimport { ErrorBoundary } from './ErrorBoundary';\n\ntype Props = {\n  children: React.ReactNode;\n  fallback?: JSX.Element;\n  scope: string;\n};\n\nexport function ScopeProvider(props: Props) {\n  const { children, fallback, scope } = props;\n\n  const { Provider } = scopeContext;\n  return (\n    <Provider value={scope}>\n      <ErrorBoundary fallback={fallback} scope={scope}>\n        {children}\n      </ErrorBoundary>\n    </Provider>\n  );\n}\n","import { createContext } from 'react';\n\nexport const scopeContext = createContext<string | undefined>(undefined);\n","import { useContext } from 'react';\nimport { scopeContext } from './scope-context';\n\nexport function useScope() {\n  const scope = useContext(scopeContext);\n  if (!scope) {\n    throw new Error(\n      'scopeContext value is undefined. Make sure you use the ScopeProvider before using the context.'\n    );\n  }\n  return scope;\n}\n","import { useEffect } from 'react';\nimport { useFeatureFlag } from '../feature-flag';\nimport { disableSameOriginRequests } from './query-consts';\n\nconst DISABLE_SAME_ORIGIN_KEY = 'API_DisableSameOriginRequests';\n\nexport const SameOriginApiSwitch = () => {\n  const { isReady, value } = useFeatureFlag(DISABLE_SAME_ORIGIN_KEY);\n\n  useEffect(() => {\n    if (isReady && value === 'true') {\n      if (localStorage.getItem(disableSameOriginRequests) === 'true') return;\n\n      localStorage.setItem(disableSameOriginRequests, 'true');\n      window.location.reload();\n    }\n  }, [isReady, value]);\n\n  return null;\n};\n"],"names":["HelmetProviderAsync","props","children","React","HelmetProvider","dialogsStackAtom","atom","default","key","useOpenDialog","setDialogsStack","useSetRecoilState","dialogId","dialogParams","onClose","instanceId","performance","now","replace","info","currValue","newValue","push","useCloseDialog","stack","setStack","useRecoilState","answer","newStack","pop","RenderRemoteDialog","remoteDialogInfo","dialogsStack","useRecoilValue","lastIndex","length","undefined","useCurrentDialogInfo","cancelAllDialogs","reverse","forEach","useCancelAllDialogs","closeDialog","location","useLocation","pathname","Dialog","setDialog","useState","useEffect","active","mfName","split","dialog","getMfDialog","Suspense","fallback","ScopeProvider","scope","InitLocalization","isAuthenticated","useIsAuthenticated","decodedToken","useDecodedToken","data","resellerProfile","refetch","fetchResellerProfile","useResellerProfile","resellerProspect","localization","useLocalizationContext","locale","document","querySelector","setAttribute","newCurrency","setCurrencyCode","win","window","temp_session_Id","uuidV4","translationpreloadResourcesMap","development","production","productionbeta","productionbetax","staging","staging2","LocalizationProvider","buildVars","useBuildVars","siteConfig","useSiteConfig","buildEnvironment","querySelectorAll","element","removeAttribute","classList","remove","dd_session_id","DD_RUM","getInternalContext","session_id","isNonProd","startsWith","apiBaseRoute","includes","siteCode","API_GCP_BASE","API_BASE","url","useSameOriginApis","shouldUseSameOriginApis","getSameOriginApiBasePath","I10nProvider","apiHeaders","appId","getAppId","defaultLocale","preloadResources","showLogs","supportedLocales","useApi","LogoutConfigProvider","logoutConfig","useLogOutConfig","Provider","logoutContext","value","DEFAULT_404_RESPONSE","hasNoContent","DEFAULT_EXTRA_OPTIONS","isLogoutApi","modifyUserLoggedInParam","useApiQueryForCms","apiRoute","queryParams","useQueryOptions","extraHeaders","extraQueryOptions","oktaContext","useOktaAuth","cmsData","useLogoutContext","isTokenExpired","useIsTokenExpired","authState","customOptions","Boolean","isLogoutEnabled","apiGet","useApiGet","route","params","UserLoggedIn","enabled","useQuery","queryFn","catch","error","response","status","queryKey","retry","query","useApiQuery","culture","useMemo","isLoading","createContext","contextData","useContext","queryClient","QueryClient","defaultOptions","queries","refetchOnWindowFocus","AppProviders","basename","envVars","mfOutlets","QueryClientProvider","client","RecoilRoot","BuildConfigProvider","SiteConfigProvider","ImThemeProvider","MuiProviders","BrowserRouter","PageLoadMetricsProvider","AuthProvider","FeatureFlagProvider","CmsFeatureFlagProvider","FavoriteProductsProvider","SameOriginApiSwitch","LicenseInfo","setLicenseKey","process","favoriteProducts","useFavoriteProductIds","productIds","addToFavoriteMutation","useAddToFavoriteMutation","removeToFavoriteMutation","useDeleteFavoriteMutation","favoriteProductsContext","modifyFavoriteProducts","sku","isAddedToFavorite","indexOf","mutate","userInfo","useUserInfo","preferred_username","apiPost","useApiPost","useQueryClient","useMutation","mutationFn","onSuccess","productIdsurl","invalidateQueries","prodcuctsUrl","onError","console","apiDelete","useApiDelete","productsUrl","useFavoriteProductIdContext","Error","ErrorBoundary","Component","state","this","hasError","getDerivedStateFromProps","getDerivedStateFromError","componentDidCatch","errorInfo","render","ErrorContent","translate","useLocalization","translateStr","useTranslate","Root","alt","src","style","marginBottom","Typography","sx","fontSize","lineHeight","margin","variant","Button","href","startIcon","ArrowBackIcon","textTransform","styled","maxWidth","textAlign","scopeContext","useScope","isReady","useFeatureFlag","localStorage","getItem","disableSameOriginRequests","setItem","reload"],"sourceRoot":""}