{"version":3,"file":"config.es.min.js","sources":["../../../packages/helpers/src/dataLayer.js","../../../packages/coveo-search/src/search-bar/constants.ts","../../../packages/coveo-search/src/config.ts"],"sourcesContent":["export const getDataLayer = () => {\n    return window[window?.padlNamespace]?.dataLayer\n}\n\nexport const getMarketCode = () => {\n    const dataLayer = getDataLayer()\n    if (!dataLayer) {\n        return 'ch'\n    }\n\n    return dataLayer.app.app.market.toLocaleLowerCase()\n}\n\nexport const getLangCode = () => {\n    const dataLayer = getDataLayer()\n    if (!dataLayer) {\n        return 'en'\n    }\n\n    return getDataLayer().page.page.pageInfo.language.toLocaleLowerCase()\n}\n\nexport const getSegmentCode = () => {\n    const dataLayer = getDataLayer()\n    if (!dataLayer) {\n        return 'B2C'\n    }\n\n    return getDataLayer().page.page.pageInfo.segmentBusiness\n}\n\nexport const isLoggedIn = () => {\n    const dataLayer = getDataLayer()\n    if (!dataLayer || !dataLayer.user) {\n        return false\n    }\n\n    return dataLayer.user.isLoggedIn\n}\n\nexport const interpolateMarketLang = (string, market, lang) => {\n    return string.replace('{market}', market).replace('{lang}', lang)\n}\n","// TODO where is the best place to put this black magic\nconst toNonProd = new URLSearchParams(window.location.search).has('non-prod') || window.location.host.includes('nc2-env-rollout')\n\n// export const COVEO_ACCESS_TOKEN = 'xxc997e6c1-d94a-4d9f-b8fb-0c641f6813f3'\n// export const COVEO_ORGANIZATION_ID = 'nespressoproductiong3iqhhz5'\nexport const COVEO_ACCESS_TOKEN = toNonProd\n    ? 'xxea192144-c340-457a-bfb0-dfb5cbe4970e'\n    : 'xxc997e6c1-d94a-4d9f-b8fb-0c641f6813f3'\nexport const COVEO_ACCESS_TOKEN_B2B = toNonProd\n    ? 'xx847978f3-7957-46fe-9dcf-1b82152e0d9c'\n    : 'xxe1ec43ce-9957-4e90-8d62-642268cece24'\nexport const COVEO_ORGANIZATION_ID = toNonProd\n    ? 'nespressononproduction1skusciyz'\n    : 'nespressoproductiong3iqhhz5'\nexport const COVEO_PLATFORM_URL = 'https://platform-eu.cloud.coveo.com'\nexport const COVEO_API_KEY_RECS = 'xxf96dac22-66c0-438a-a58c-fe13fa817e86'\nexport const COVEO_API_KEY_CART_RECS = 'xx5a4f431d-da86-4d34-a585-6ddd7e8148de'\nexport const COVEO_CLIENT_ORIGIN_SEARCH_API_FETCH = 'searchApiFetch'\nexport const COVEO_CLIENT_ORIGIN_ANALYTICS_FETCH = 'analyticsFetch'\nexport const COVEO_MAX_RESPONSE_TIME = 8000\n\nexport const COVEO_SEARCH_TERM_MIN_LENGTH = 3\n\nexport const CAPSULE_TECHNOLOGY_B2B = 'Pro'\n\nexport const B2B_PRICE_DISPLAY_ALL = 'ALL'\nexport const B2B_PRICE_DISPLAY_ONLY_AUTHENTICATED = 'ONLY_AUTHENTICATED'\n\n","import {getMarketCode, getSegmentCode, isLoggedIn} from \"@kissui/helpers/src/dataLayer\";\nimport {\n    B2B_PRICE_DISPLAY_ALL, B2B_PRICE_DISPLAY_ONLY_AUTHENTICATED,\n    COVEO_ACCESS_TOKEN,\n    COVEO_ACCESS_TOKEN_B2B\n} from \"./search-bar/constants\";\nimport {ProductResult } from \"./experimental/engine\";\n\ninterface Config {\n    experimentalSearch: {\n        enabledMarkets: string[];\n    };\n}\n\nconst sessionKey = 'nn_searchConfigData_C6_R0';\n\nasync function fetchConfigData(): Promise<Config> {\n    const signal = AbortSignal.timeout(3000)\n    const response = await fetch('/shared_res/agility/coveo-search/config.json', { signal })\n\n    if (response.ok) {\n        const config = await response.json()\n        sessionStorage.setItem(sessionKey, JSON.stringify(config))\n        return config\n    } else {\n        throw new Error('SEARCH_CONFIG_FETCH_ERROR')\n    }\n}\n\nasync function getConfig(): Promise<Config> {\n  const configData = sessionStorage.getItem(sessionKey)\n\n  return configData ? JSON.parse(configData) : fetchConfigData()\n}\n\nexport async function getExperimentalMode(): Promise<boolean> {\n    try {\n        const isB2B = getSegmentCode().toUpperCase() === 'B2B'\n        const hasExperimentalFlag = window.location.href.includes('experimental-search')\n        const forceExperimental = isB2B || hasExperimentalFlag\n\n        if (forceExperimental) {\n            return true\n        }\n\n        const currentMarket = getMarketCode()?.toUpperCase()\n        const config = await getConfig()\n        const enabledMarkets = config?.experimentalSearch?.enabledMarkets ?? []\n\n        return !!enabledMarkets?.includes(currentMarket)\n    } catch (error) {\n        return false\n    }\n}\n\nexport function isB2B() : boolean {\n    return getSegmentCode().toUpperCase() === 'B2B'\n}\n\nexport function getCoveoAccessToken() : string {\n    return isB2B() ? COVEO_ACCESS_TOKEN_B2B : COVEO_ACCESS_TOKEN\n}\n\n// Check price condition only of B2B\nexport const showPriceSection = (result: ProductResult) : boolean=> {\n    if(!isB2B()){\n        return true\n    }\n    return isB2B() ? result.price !== undefined : true;\n}\n\n// check if the flag nes_prd_price_display is set\nexport const displayPrice = (result: ProductResult) : boolean => {\n    if(!isB2B()){\n        return true\n    }\n\n    const isPublicPrice = result.priceDisplay === B2B_PRICE_DISPLAY_ALL;\n    const isAuthenticatedPrice = result.priceDisplay === B2B_PRICE_DISPLAY_ONLY_AUTHENTICATED && !!isLoggedIn();\n    return isPublicPrice || isAuthenticatedPrice;\n}\n\nexport const getTaxSystemTariff = async () => {\n    if(!isB2B()){\n        return ''\n    }\n    let taxSystemTariff = ''\n    if(!isLoggedIn()){\n        const { taxSystem, tariff } = await window.napi.market().read()\n        taxSystemTariff = `${taxSystem}_${tariff}`\n    }\n    else {\n        const { taxSystem, tariff } = await window.napi.customer().read()\n        taxSystemTariff = `${taxSystem}_${tariff}`\n    }\n\n    return taxSystemTariff\n}\n\nexport function setSearchedQuery(query: string): void {\n    sessionStorage.setItem('searchedQuery-sessionKey', query)\n}\n\nexport function getSearchedQuery(): string | null {\n    return sessionStorage.getItem('searchedQuery-sessionKey')\n}\n\nexport function deleteSearchedQuery(): void {\n    sessionStorage.removeItem('searchedQuery-sessionKey')\n}\n\n"],"names":["getDataLayer","window","padlNamespace","dataLayer","getMarketCode","app","market","toLocaleLowerCase","getLangCode","page","pageInfo","language","getSegmentCode","segmentBusiness","isLoggedIn","user","toNonProd","URLSearchParams","location","search","has","host","includes","COVEO_ACCESS_TOKEN","COVEO_ACCESS_TOKEN_B2B","COVEO_ORGANIZATION_ID","COVEO_PLATFORM_URL","COVEO_API_KEY_RECS","COVEO_API_KEY_CART_RECS","COVEO_CLIENT_ORIGIN_SEARCH_API_FETCH","COVEO_CLIENT_ORIGIN_ANALYTICS_FETCH","COVEO_SEARCH_TERM_MIN_LENGTH","CAPSULE_TECHNOLOGY_B2B","B2B_PRICE_DISPLAY_ALL","B2B_PRICE_DISPLAY_ONLY_AUTHENTICATED","sessionKey","fetchConfigData","signal","AbortSignal","timeout","response","fetch","ok","config","json","sessionStorage","setItem","JSON","stringify","Error","getConfig","configData","getItem","parse","getExperimentalMode","isB2B","toUpperCase","hasExperimentalFlag","href","currentMarket","experimentalSearch","enabledMarkets","getCoveoAccessToken","showPriceSection","result","price","undefined","displayPrice","isPublicPrice","priceDisplay","isAuthenticatedPrice","getTaxSystemTariff","taxSystemTariff","taxSystem","tariff","napi","customer","read","setSearchedQuery","query","getSearchedQuery","deleteSearchedQuery","removeItem"],"mappings":"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"}