{"version":3,"file":"index.es.min.js","sources":["../../../node_modules/preact-custom-element/dist/preact-custom-element.esm.js","../../../packages/helpers/src/utils.ts","../../../node_modules/preact/jsx-runtime/dist/jsxRuntime.module.js","../../../packages/discovery/commons/image/Image.tsx","../../../../catalog-sdk/dist/ECAPIProductsDTOs-yt2aYenh.js","../../../../catalog-sdk/dist/sdk.js","../../../node_modules/classnames/index.js","../../../packages/discovery/commons/product/price/Price.tsx","../../../packages/helpers/src/context.tsx","../../../packages/helpers/src/contextProducts.tsx","../../../node_modules/preact/compat/dist/compat.module.js","../../../node_modules/@nespresso/catalog-components-react/dist/__shared__/FormattedText.js","../../../node_modules/@nespresso/catalog-components-react/dist/controls/index.js","../../../packages/discovery/components/media-text/components/shopTheLook/ShopTheLook.tsx","../../../packages/helpers/src/events.helpers.ts","../../../packages/helpers/src/gtmEvents.js","../../../node_modules/@nespresso-design-system/components/dist/chunks/index.bddf5ebb.js","../../../node_modules/@nespresso-design-system/components/dist/chunks/make-refs.cb0b9b76.js","../../../node_modules/@nespresso-design-system/components/dist/chunks/index.7e655f23.js","../../../node_modules/@nespresso-design-system/components/dist/chunks/common.162593b8.js","../../../node_modules/@nespresso-design-system/components/dist/react/Button.js","../../../node_modules/@nespresso-design-system/components/dist/chunks/common.bbb66fe1.js","../../../node_modules/@nespresso-design-system/components/dist/react/ButtonIcon.js","../../../node_modules/@nespresso-design-system/components/dist/chunks/common.a982a157.js","../../../node_modules/@nespresso-design-system/components/dist/react/Modal.js","../../../node_modules/@nespresso-design-system/components/dist/chunks/common.6cfc76a4.js","../../../node_modules/@nespresso-design-system/components/dist/react/MediaModal.js","../../../packages/discovery/components/media-text/components/content/Content.tsx","../../../packages/discovery/components/media-text/components/heading/Heading.tsx","../../../packages/discovery/components/media-text/components/placeholder/icons/PauseIcon.tsx","../../../packages/discovery/components/media-text/components/placeholder/icons/PlayIcon.tsx","../../../packages/discovery/components/media-text/components/video/Video.tsx","../../../packages/discovery/components/media-text/components/placeholder/variants/autoPlayVideo/AutoPlayVideo.tsx","../../../packages/discovery/components/media-text/components/visual/Visual.tsx","../../../packages/discovery/components/media-text/components/placeholder/variants/default/Default.tsx","../../../packages/discovery/components/media-text/components/placeholder/variants/modalVideo/ModalVideo.tsx","../../../packages/discovery/components/media-text/components/placeholder/variants/shopTheLook/ShopTheLook.tsx","../../../packages/discovery/components/media-text/components/placeholder/variants/shoppableImage/ShoppableImage.tsx","../../../packages/discovery/components/media-text/components/placeholder/Placeholder.tsx","../../../packages/helpers/src/viewPortEvent.ts","../../../packages/helpers/src/hooks/useImpressionTracker.ts","../../../packages/discovery/components/media-text/index.ts","../../../packages/discovery/asWebComponent.ts","../../../packages/discovery/components/media-text/MediaText.tsx"],"sourcesContent":["import{h as t,hydrate as e,render as n,cloneElement as o}from\"preact\";function r(){return(r=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var o in n)Object.prototype.hasOwnProperty.call(n,o)&&(t[o]=n[o])}return t}).apply(this,arguments)}var i=[\"context\",\"children\"];function a(t){this.getChildContext=function(){return t.context};var e=t.children,n=function(t,e){if(null==t)return{};var n,o,r={},i=Object.keys(t);for(o=0;o<i.length;o++)e.indexOf(n=i[o])>=0||(r[n]=t[n]);return r}(t,i);return o(e,n)}function s(){var o=new CustomEvent(\"_preact\",{detail:{},bubbles:!0,cancelable:!0});this.dispatchEvent(o),this._vdom=t(a,r({},this._props,{context:o.detail.context}),function e(n,o){if(3===n.nodeType)return n.data;if(1!==n.nodeType)return null;var r=[],i={},a=0,s=n.attributes,l=n.childNodes;for(a=s.length;a--;)\"slot\"!==s[a].name&&(i[s[a].name]=s[a].value,i[c(s[a].name)]=s[a].value);for(a=l.length;a--;){var u=e(l[a],null),d=l[a].slot;d?i[d]=t(p,{name:d},u):r[a]=u}var h=o?t(p,null,r):r;return t(o||n.nodeName.toLowerCase(),i,h)}(this,this._vdomComponent)),(this.hasAttribute(\"hydrate\")?e:n)(this._vdom,this._root)}function c(t){return t.replace(/-(\\w)/g,function(t,e){return e?e.toUpperCase():\"\"})}function l(t,e,r){if(this._vdom){var i={};i[t]=r=null==r?void 0:r,i[c(t)]=r,this._vdom=o(this._vdom,i),n(this._vdom,this._root)}}function u(){n(this._vdom=null,this._root)}function p(e,n){var o=this;return t(\"slot\",r({},e,{ref:function(t){t?(o.ref=t,o._listener||(o._listener=function(t){t.stopPropagation(),t.detail.context=n},t.addEventListener(\"_preact\",o._listener))):o.ref.removeEventListener(\"_preact\",o._listener)}}))}export default function(t,e,n,o){function r(){var e=Reflect.construct(HTMLElement,[],r);return e._vdomComponent=t,e._root=o&&o.shadow?e.attachShadow({mode:o.mode||\"open\"}):e,e}return(r.prototype=Object.create(HTMLElement.prototype)).constructor=r,r.prototype.connectedCallback=s,r.prototype.attributeChangedCallback=l,r.prototype.disconnectedCallback=u,n=n||t.observedAttributes||Object.keys(t.propTypes||{}),r.observedAttributes=n,n.forEach(function(t){Object.defineProperty(r.prototype,t,{get:function(){return this._vdom.props[t]},set:function(e){this._vdom?this.attributeChangedCallback(t,null,e):(this._props||(this._props={}),this._props[t]=e,this.connectedCallback());var n=typeof e;null!=e&&\"string\"!==n&&\"boolean\"!==n&&\"number\"!==n||this.setAttribute(t,e)}})}),customElements.define(e||t.tagName||t.displayName||t.name,r)}\n//# sourceMappingURL=preact-custom-element.esm.js.map\n","export { waitForSelector } from './waitForSelector'\n\nexport const constants = {\n    LEFT: 37,\n    UP: 38,\n    RIGHT: 39,\n    DOWN: 40,\n    ESC: 27,\n    SPACE: 32,\n    ENTER: 13,\n    TAB: 9\n}\n\nexport function capitalize(s = '') {\n    return s[0].toUpperCase() + s.slice(1)\n}\n\nexport const convertToCamelCase = (str: string): string => {\n    const arr = str.match(/[a-z]+|\\d+/gi)\n    if (!arr) {\n        return str\n    }\n    return arr\n        .map((m, i) => {\n            let low = m.toLowerCase()\n            if (i !== 0) {\n                low = low\n                    .split('')\n                    .map((s, k) => (k === 0 ? s.toUpperCase() : s))\n                    .join('')\n            }\n            return low\n        })\n        .join('')\n}\n\nexport function slug(s = '') {\n    return s\n        .toLowerCase()\n        .trim()\n        .replace(/\\s+/g, '-') // Replace spaces with -\n        .replace(/[^\\w-]+/g, '') // Remove all non-word chars\n        .replace(/--+/g, '-') // Replace multiple - with single -\n}\n\nexport function pxToEm(target: number, stripedInnerFontSize = 1) {\n    return target / 14 / stripedInnerFontSize + 'em'\n}\n\nexport function percent(target: number) {\n    return target + '%'\n}\n\nexport function parseHTML(str: string) {\n    const tmp = document.implementation.createHTMLDocument('')\n    tmp.body.innerHTML = str\n    return tmp.body.childNodes\n}\n\nexport function stripHTML(str: string) {\n    const tmp = document.implementation.createHTMLDocument('')\n    tmp.body.innerHTML = str\n    return (tmp.body.textContent ?? '').replace(RegExp('[\\\\s|\\'|\"]', 'g'), '')\n}\n\nexport function makeId(length: number) {\n    var result = ''\n    var characters =\n        'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'\n    var charactersLength = characters.length\n    for (var i = 0; i < length; i++) {\n        result += characters.charAt(\n            Math.floor(Math.random() * charactersLength)\n        )\n    }\n    return result\n}\n\nexport function removeEmptyValues(obj: { [key: string]: any }): {\n    [key: string]: any\n} {\n    for (let key in obj) {\n        if (obj[key] === null || obj[key] === undefined || obj[key] === '') {\n            delete obj[key]\n        }\n    }\n\n    return obj\n}\n\nexport function makeHash(str: string) {\n    var hash = 0,\n        i,\n        chr\n    if (!str) {\n        return hash\n    }\n    for (i = 0; i < str.length; i++) {\n        chr = str.charCodeAt(i)\n        hash = (hash << 5) - hash + chr\n        hash |= 0 // Convert to 32bit integer\n    }\n    return 'id-' + hash\n}\n\nexport function getHashLink(link: string) {\n    let linkHash = link\n    let linkNoHash = link\n    if (link.indexOf('#') !== -1) {\n        linkNoHash = link.replace('#', '')\n    } else {\n        linkHash = '#' + link\n    }\n\n    return { linkNoHash, linkHash }\n}\n\nexport function lazyLoad(\n    node: Element,\n    attribute: string,\n    value: any,\n    url: string\n) {\n    const CLASSNAME_OUT_OF_SCREEN = 'lazy-load'\n    const CLASSNAME_IN_SCREEN = 'lazy-loaded'\n    const CLASSNAME_ON_ERROR = 'lazy-loaded-error'\n\n    const isOldIOS = () => {\n        var agent = window.navigator.userAgent,\n            start = agent.indexOf('OS ')\n        if (\n            (agent.indexOf('iPhone') > -1 || agent.indexOf('iPad') > -1) &&\n            start > -1\n        ) {\n            return (\n                window.Number(agent.substr(start + 3, 3).replace('_', '.')) < 14\n            )\n        }\n        return false\n    }\n\n    const inViewPort = (attribute: string, value: any) => {\n        node.setAttribute(attribute, value)\n\n        const cb = () => node.classList.add(CLASSNAME_IN_SCREEN)\n\n        if (url) {\n            const img = new Image()\n            img.src = url\n            img.onload = cb\n            img.onerror = () => {\n                cb()\n                node.classList.add(CLASSNAME_ON_ERROR)\n                throw new Error(`Image ${url} cannot be loaded`)\n            }\n\n            return\n        }\n\n        cb()\n    }\n\n    if (/Trident\\/|MSIE/.test(window.navigator.userAgent) || isOldIOS()) {\n        inViewPort(attribute, value)\n    } else {\n        if ('IntersectionObserver' in window) {\n            node.classList.add(CLASSNAME_OUT_OF_SCREEN)\n            let lazyBackgroundObserver = new IntersectionObserver(function (\n                entries\n            ) {\n                entries.forEach(function (entry) {\n                    if (entry.isIntersecting) {\n                        inViewPort(attribute, value)\n                        lazyBackgroundObserver.unobserve(entry.target)\n                    }\n                })\n            })\n            lazyBackgroundObserver.observe(node)\n        } else {\n            inViewPort(attribute, value)\n        }\n    }\n}\n\nexport function lazyLoadCallback(node: Element, cb: () => void) {\n    const isOldIOS = () => {\n        var agent = window.navigator.userAgent,\n            start = agent.indexOf('OS ')\n        if (\n            (agent.indexOf('iPhone') > -1 || agent.indexOf('iPad') > -1) &&\n            start > -1\n        ) {\n            return (\n                window.Number(agent.substr(start + 3, 3).replace('_', '.')) < 14\n            )\n        }\n        return false\n    }\n\n    if (/Trident\\/|MSIE/.test(window.navigator.userAgent) || isOldIOS()) {\n        cb()\n    } else {\n        if ('IntersectionObserver' in window) {\n            let lazyBackgroundObserver = new IntersectionObserver(\n                function (entries) {\n                    entries.forEach(function (entry) {\n                        if (entry.isIntersecting) {\n                            cb()\n                            lazyBackgroundObserver.unobserve(entry.target)\n                        }\n                    })\n                },\n                { rootMargin: '150% 0px' }\n            )\n            lazyBackgroundObserver.observe(node)\n        }\n    }\n}\n\n// Debounce\nexport function debounce<T>(func: () => void, time = 100) {\n    let timer: number\n    return function (event: T) {\n        if (timer) {\n            window.clearTimeout(timer)\n        }\n        timer = window.setTimeout(func, time, event)\n    }\n}\n\n// isIE - to check for internet explorer\nexport function isIE() {\n    let ua = window.navigator.userAgent,\n        isIE = /MSIE|Trident/.test(ua)\n\n    return isIE\n}\n\n// Load external script\nexport const loadExternalScript = ({\n    src,\n    callback = null,\n    async = false,\n    defer = false,\n    module = false,\n    id = ''\n}: {\n    src: string\n    callback: null | GlobalEventHandlers['onload'] // eslint-disable-line no-undef\n    module: boolean\n    defer: boolean\n    async: boolean\n    id: string\n}) => {\n    const script = document.createElement('script')\n    script.type = module ? 'module' : 'text/javascript'\n    script.src = src\n    id ? (script.id = id) : false // add id attribute only if passed\n    if (typeof callback === 'function') {\n        script.onload = callback\n    }\n    script.async = async\n    script.defer = defer\n    document.body.appendChild(script)\n}\n\n// Load external css\nexport const loadExternalCss = ({ src }: { src: string }) => {\n    const script = document.createElement('link')\n    script.rel = 'stylesheet'\n    script.href = src\n    document.body.appendChild(script)\n}\n// Lazy load vendor script\nexport const lazyLoadVendorScript = (handler, el) => {\n    const observer = new IntersectionObserver(handler)\n    observer.observe(el)\n}\n\n/**\n * Replaces variable inside a given string\n * Each variable have to be enclosed between stChr and enChr\n * The values have to be contained in the vars object, they key must match\n * example :\n * txt : 'See {resultsLength} Results'\n * vars : {resultsLength:'30'}\n * stChr : '{'\n * enChr : '}'\n *\n * will return : 'See 30 Results'\n *\n * @param {string} txt\n * @param {object} vars\n * @param {string} stChr\n * @param {string} enChr\n */\nexport function interpolate(\n    txt: string,\n    vars: Record<string, null | undefined | string>,\n    stChr: string,\n    enChr: string\n) {\n    let curIdx = 0\n\n    while (txt) {\n        const stIdx = txt.indexOf(stChr, curIdx)\n        if (stIdx === -1) {\n            break\n        }\n        const enIdx = txt.indexOf(enChr, stIdx + 1)\n        if (enIdx === -1) {\n            break\n        }\n        const hashId = txt.substring(stIdx + stChr.length, enIdx)\n        if (vars[hashId] != null) {\n            txt =\n                txt.substr(0, stIdx) +\n                vars[hashId] +\n                txt.substr(enIdx + enChr.length)\n            curIdx = stIdx\n        } else {\n            curIdx = enIdx\n        }\n    }\n    return txt\n}\n\n/**\n * Find in container element, add height to equal size of element\n * @param container css path where my element is contain e.g. `.c-container`\n * @param el css path of elements to equalized\n */\nexport const equalHeight = (\n    containerSelector: string,\n    el: string,\n    elementScope: HTMLElement\n) => {\n    const container = elementScope.querySelector<HTMLElement>(containerSelector)\n    if (!container) {\n        return\n    }\n\n    const items = container.querySelectorAll<HTMLElement>(el)\n    let max = -1\n\n    for (let i = 0; i < [...items].length; i++) {\n        const item = [...items][i]\n        let h = item.offsetHeight\n        max = h > max ? h : max\n    }\n\n    if (max <= 0) {\n        return\n    }\n\n    for (let i = 0; i < [...items].length; i++) {\n        const item = [...items][i]\n        item.style.height = `${max}px`\n    }\n}\n\nexport const stringifyCurlyQuote = (data: {}) =>\n    JSON.stringify(data).replace(\"'\", '’')\n\nexport const stringifyForAttribute = (data = {}) => {\n    return escapeHtml(JSON.stringify(data))\n}\n\n/**\n * This function is included instead of sanitizeString because for\n * inserting HTML into innerHTML we need to make sure all HTML\n * entities are escaped.\n */\nexport const escapeHtml = (text: string) => {\n    const map = {\n        '&': '&amp;',\n        '<': '&lt;',\n        '>': '&gt;',\n        '\"': '&quot;',\n        \"'\": '&#039;'\n    } as { [s: string]: string }\n\n    return text.replace(/[&<>\"']/g, m => map[m])\n}\n\n/**\n * Because setting attributes escapes more than the characters above and then preact also\n * escapes text we need a more complete way of unescaping all html entities (not just the ones\n * above)\n */\nconst domParser = new DOMParser()\nexport const unescapeHtml = (text: string) => {\n    return domParser.parseFromString(text, 'text/html').body.textContent\n}\n\nexport const sanitizeString = (data: {}) => {\n    if (!data) {\n        return ''\n    }\n\n    return data.toString().replace(/\"/g, '&quot;').replace(/'/g, '&apos;')\n}\n\nexport const stripTags = (s: string) => {\n    return (s || '').replace(/(<([^>]+)>)/gi, '')\n}\n\nexport const setAttributes = (element: Element, attrs: Record<string, any>) => {\n    for (let key in attrs) {\n        element.setAttribute(key, attrs[key])\n    }\n    return element\n}\n\nexport const getMetaContent = (metaName: string) => {\n    const metaTag = document.querySelector(`meta[name=${metaName}]`)\n    if (!metaTag) {\n        return ''\n    }\n    return metaTag.getAttribute('content')\n}\n\nexport const isObjectEmpty = (obj: {}) => {\n    return Object.keys(obj).length === 0\n}\n\nexport function getPBProps<T>(data: string): T {\n    try {\n        return data ? (JSON.parse(data) as T) : ({} as T)\n    } catch (error) {\n        console.error('Invalid \"data\" attribute', error)\n        return {} as T\n    }\n}\n","import{options as r,Fragment as e}from\"preact\";export{Fragment}from\"preact\";var t=/[\"&<]/;function n(r){if(0===r.length||!1===t.test(r))return r;for(var e=0,n=0,o=\"\",f=\"\";n<r.length;n++){switch(r.charCodeAt(n)){case 34:f=\"&quot;\";break;case 38:f=\"&amp;\";break;case 60:f=\"&lt;\";break;default:continue}n!==e&&(o+=r.slice(e,n)),o+=f,e=n+1}return n!==e&&(o+=r.slice(e,n)),o}var o=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,f=0,i=Array.isArray;function u(e,t,n,o,i,u){t||(t={});var a,c,p=t;if(\"ref\"in p)for(c in p={},t)\"ref\"==c?a=t[c]:p[c]=t[c];var l={type:e,props:p,key:n,ref:a,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,constructor:void 0,__v:--f,__i:-1,__u:0,__source:i,__self:u};if(\"function\"==typeof e&&(a=e.defaultProps))for(c in a)void 0===p[c]&&(p[c]=a[c]);return r.vnode&&r.vnode(l),l}function a(r){var t=u(e,{tpl:r,exprs:[].slice.call(arguments,1)});return t.key=t.__v,t}var c={},p=/[A-Z]/g;function l(e,t){if(r.attr){var f=r.attr(e,t);if(\"string\"==typeof f)return f}if(\"ref\"===e||\"key\"===e)return\"\";if(\"style\"===e&&\"object\"==typeof t){var i=\"\";for(var u in t){var a=t[u];if(null!=a&&\"\"!==a){var l=\"-\"==u[0]?u:c[u]||(c[u]=u.replace(p,\"-$&\").toLowerCase()),_=\";\";\"number\"!=typeof a||l.startsWith(\"--\")||o.test(l)||(_=\"px;\"),i=i+l+\":\"+a+_}}return e+'=\"'+i+'\"'}return null==t||!1===t||\"function\"==typeof t||\"object\"==typeof t?\"\":!0===t?e:e+'=\"'+n(t)+'\"'}function _(r){if(null==r||\"boolean\"==typeof r||\"function\"==typeof r)return null;if(\"object\"==typeof r){if(void 0===r.constructor)return r;if(i(r)){for(var e=0;e<r.length;e++)r[e]=_(r[e]);return r}}return n(\"\"+r)}export{u as jsx,l as jsxAttr,u as jsxDEV,_ as jsxEscape,a as jsxTemplate,u as jsxs};\n//# sourceMappingURL=jsxRuntime.module.js.map\n","import { ImageProps } from './types'\n\nconst Image = ({ src, alt }: ImageProps) => {\n    if (!src) {\n        return null\n    }\n\n    if (!alt) {\n        console.error('Missing ALT in image: ' + src)\n    }\n\n    return <img src={src} alt={alt} />\n}\n\nexport default Image\n","var c = /* @__PURE__ */ ((a) => (a.Machine = \"machine\", a.Accessory = \"accessory\", a.Capsule = \"capsule\", a.Giftcard = \"giftcard\", a.Servicepackage = \"servicepackage\", a))(c || {}), r = /* @__PURE__ */ ((a) => (a.IMAGE = \"IMAGE\", a.VIDEO = \"VIDEO\", a.OTHER = \"OTHER\", a))(r || {});\nexport {\n  r as M,\n  c as P\n};\n","import { P as o } from \"./ECAPIProductsDTOs-yt2aYenh.js\";\nimport { M as T } from \"./ECAPIProductsDTOs-yt2aYenh.js\";\nfunction y(i) {\n  if (!(typeof i > \"u\" || i.length === 0))\n    return i.map((t) => {\n      var r;\n      return ((r = t.split(\"/\").pop()) == null ? void 0 : r.trim()) || \"\";\n    });\n}\nfunction s(i, t = \"|\") {\n  if (!(typeof i > \"u\" || i.length === 0))\n    return i.map((r) => r.trim()).join(t);\n}\nfunction g(i) {\n  var t;\n  if (!(typeof i > \"u\" || i.length === 0))\n    return i.length === 1 ? n((t = y(i)) == null ? void 0 : t[0]) : \"multiple\";\n}\nfunction n(i) {\n  if (!(typeof i > \"u\"))\n    return i.toString().trim();\n}\nconst p = async (i) => window.napi.catalog().getProduct(i), w = async (i, t) => {\n  const r = i.map((e) => p(e)), d = await Promise.all(r), _ = {\n    event: \"view_item_list\",\n    event_raised_by: t == null ? void 0 : t.eventRaisedBy,\n    subscription_product_included: \"false\",\n    // TODO: TBD\n    discovery_offer_included: \"false\",\n    // TODO: TBD\n    ecommerce: {\n      currency: window[window.config.padl.namespace].dataLayer.app.app.currency,\n      value: d.reduce((e, m) => e + m.price, 0),\n      items: d.map((e, m) => {\n        var l, u, f;\n        let a = {\n          item_id: n(e.internationalId),\n          item_name: n(e.internationalName),\n          item_brand: \"nespresso\",\n          item_category: n(e.type),\n          item_category2: s(\n            y(e.technologies)\n          ),\n          item_category3: n(e.category),\n          price: e.price,\n          quantity: e.salesMultiple,\n          affiliation: \"nespresso online store\",\n          coupon: void 0,\n          discount: void 0,\n          location_id: void 0,\n          item_list_name: n(t == null ? void 0 : t.listName),\n          //TODO: check with Analytics\n          item_list_id: n(t == null ? void 0 : t.listId),\n          index: m + 1,\n          item_market_id: n(e.legacyId),\n          item_market_name: n(e.name),\n          item_technology: g(e.technologies),\n          item_range: n(e.category),\n          item_discovery_offer: e.category.includes(\"discovery\").toString(),\n          item_added_by_user: void 0,\n          item_ecotax_applicable: n(\n            e.displayEcoTax.toString()\n          ),\n          item_selection_list: n(\n            s(e.productSelections)\n          ),\n          item_in_stock: e.inStock.toString(),\n          item_subscription_name: void 0,\n          //string, fill this with the nessoft \"id\" field in the subscription information\n          item_subscription_category: void 0,\n          //string, fill this with the nessoft \"type\" field in the subscription information\n          item_subscription_price: void 0,\n          //metric, fill this with the nessoft \"promotionalPrice\" field in the subscription information\n          item_subscription_duration: void 0,\n          //string, fill this with the nessoft \"monthsDuration\" field in the subscription information\n          item_subscription_fee: void 0\n          //string, fill this with the nessoft \"periodicFee\" field in the subscription information\n        };\n        switch (e.type) {\n          case o.Capsule: {\n            const c = e;\n            a.item_category4 = c.bundled ? \"bundle\" : \"single\", a.item_type = c.bundled ? \"bundle\" : \"single\", a.item_coffee_aromatic_profile = n(\n              (l = s(\n                c.capsuleProductAromatics\n              )) == null ? void 0 : l.toLowerCase()\n            ), a.item_coffee_intensity = n(\n              c.capsuleProperties.intensity\n            ) ?? void 0, a.item_coffee_cup_size = (u = n(\n              s(c.capsuleCupSizes)\n            )) == null ? void 0 : u.toLowerCase();\n            break;\n          }\n          case o.Machine: {\n            const c = e;\n            a.item_machine_shade = n(\n              (f = c.colorShade) == null ? void 0 : f.name\n            );\n            break;\n          }\n        }\n        return (o.Machine || o.Accessory) && (a.item_avg_rating = e.ratingCode, a.item_number_of_reviews = e.ratingCode), a;\n      })\n    }\n  };\n  (t == null ? void 0 : t.eventRaisedBy) === void 0 && delete _.event_raised_by, window.gtmDataObject.push({ ecommerce: null }), window.gtmDataObject.push(_);\n}, b = async (i) => {\n  const t = window.padl.app.currency;\n  return (await window.napi.priceFormat()).short(t, i);\n};\nexport {\n  T as MediaTypeDTO,\n  o as ProductTypeDTO,\n  b as formatPrice,\n  p as getProduct,\n  w as viewItemList\n};\n","/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = '';\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (arg) {\n\t\t\t\tclasses = appendClass(classes, parseValue(arg));\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction parseValue (arg) {\n\t\tif (typeof arg === 'string' || typeof arg === 'number') {\n\t\t\treturn arg;\n\t\t}\n\n\t\tif (typeof arg !== 'object') {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (Array.isArray(arg)) {\n\t\t\treturn classNames.apply(null, arg);\n\t\t}\n\n\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\treturn arg.toString();\n\t\t}\n\n\t\tvar classes = '';\n\n\t\tfor (var key in arg) {\n\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\tclasses = appendClass(classes, key);\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction appendClass (value, newClass) {\n\t\tif (!newClass) {\n\t\t\treturn value;\n\t\t}\n\t\n\t\tif (value) {\n\t\t\treturn value + ' ' + newClass;\n\t\t}\n\t\n\t\treturn value + newClass;\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","import { formatPrice } from '@nespresso-catalog/sdk'\nimport classNames from 'classnames'\nimport { useEffect, useState } from 'preact/hooks'\nimport styles from './Price.module.scss'\n\ntype ProductPriceProps = {\n    price: number\n}\n\nexport default function Price({ price }: ProductPriceProps) {\n    const [formattedPrice, setFormattedPrice] = useState('')\n\n    useEffect(() => {\n        const format = async () => {\n            if (price) {\n                try {\n                    const formatted = await formatPrice(price)\n                    setFormattedPrice(formatted)\n                } catch (e) {\n                    console.error('Could not format price')\n                    console.log(e)\n                }\n            }\n        }\n        format()\n    }, [price])\n\n    if (!price || !formattedPrice) {\n        return null\n    }\n\n    return (\n        <span className={classNames('t-2xs-500-sl', styles.price)}>\n            {formattedPrice}\n        </span>\n    )\n}\n","import preact, { createContext } from 'preact'\nimport { useContext } from 'preact/hooks'\n\nconst PbPropsContext = createContext<any | undefined>(undefined)\n\nexport const usePbProps = <T extends unknown>() => {\n    const context = useContext(PbPropsContext)\n    if (!context) {\n        throw new Error('Invalid PbPropsProvider')\n    }\n    return context as T\n}\n\nexport const PbPropsProvider: preact.FunctionalComponent<{ value: any }> = ({\n    value,\n    children\n}) => (\n    <PbPropsContext.Provider value={value}>{children}</PbPropsContext.Provider>\n)\n","import { FunctionalComponent, ComponentChildren, createContext } from 'preact'\nimport { useContext, useState } from 'preact/hooks'\nimport { NapiProduct } from '@nespresso-catalog/sdk'\n\ntype ProductsContextType = {\n    products: NapiProduct[] | undefined\n    setProducts: (products: NapiProduct[]) => void\n}\n\nconst ProductsContext = createContext<ProductsContextType | undefined>(\n    undefined\n)\n\nexport const ProductsProvider: FunctionalComponent = ({\n    children\n}: {\n    children: ComponentChildren\n}) => {\n    const [products, setProducts] = useState<NapiProduct[]>([])\n\n    const set = p => setProducts(p)\n\n    return (\n        <ProductsContext.Provider value={{ products, setProducts: set }}>\n            {children}\n        </ProductsContext.Provider>\n    )\n}\n\nexport const useProducts = () => {\n    const context = useContext(ProductsContext)\n    if (!context) {\n        throw new Error('useProducts must be used within a ProductsProvider')\n    }\n    return context\n}\n","import{Component as n,createElement as t,options as e,toChildArray as r,Fragment as u,render as o,hydrate as i,createContext as c,createRef as l,cloneElement as f}from\"preact\";export{Component,Fragment,createContext,createElement,createRef}from\"preact\";import{useCallback as a,useContext as s,useDebugValue as h,useEffect as v,useId as d,useImperativeHandle as p,useLayoutEffect as m,useMemo as y,useReducer as _,useRef as b,useState as S}from\"preact/hooks\";export*from\"preact/hooks\";function g(n,t){for(var e in t)n[e]=t[e];return n}function E(n,t){for(var e in n)if(\"__source\"!==e&&!(e in t))return!0;for(var r in t)if(\"__source\"!==r&&n[r]!==t[r])return!0;return!1}function C(n,t){this.props=n,this.context=t}function x(n,e){function r(n){var t=this.props.ref,r=t==n.ref;return!r&&t&&(t.call?t(null):t.current=null),e?!e(this.props,n)||!r:E(this.props,n)}function u(e){return this.shouldComponentUpdate=r,t(n,e)}return u.displayName=\"Memo(\"+(n.displayName||n.name)+\")\",u.prototype.isReactComponent=!0,u.__f=!0,u}(C.prototype=new n).isPureReactComponent=!0,C.prototype.shouldComponentUpdate=function(n,t){return E(this.props,n)||E(this.state,t)};var R=e.__b;e.__b=function(n){n.type&&n.type.__f&&n.ref&&(n.props.ref=n.ref,n.ref=null),R&&R(n)};var w=\"undefined\"!=typeof Symbol&&Symbol.for&&Symbol.for(\"react.forward_ref\")||3911;function k(n){function t(t){var e=g({},t);return delete e.ref,n(e,t.ref||null)}return t.$$typeof=w,t.render=t,t.prototype.isReactComponent=t.__f=!0,t.displayName=\"ForwardRef(\"+(n.displayName||n.name)+\")\",t}var I=function(n,t){return null==n?null:r(r(n).map(t))},N={map:I,forEach:I,count:function(n){return n?r(n).length:0},only:function(n){var t=r(n);if(1!==t.length)throw\"Children.only\";return t[0]},toArray:r},M=e.__e;e.__e=function(n,t,e,r){if(n.then)for(var u,o=t;o=o.__;)if((u=o.__c)&&u.__c)return null==t.__e&&(t.__e=e.__e,t.__k=e.__k),u.__c(n,t);M(n,t,e,r)};var T=e.unmount;function A(n,t,e){return n&&(n.__c&&n.__c.__H&&(n.__c.__H.__.forEach(function(n){\"function\"==typeof n.__c&&n.__c()}),n.__c.__H=null),null!=(n=g({},n)).__c&&(n.__c.__P===e&&(n.__c.__P=t),n.__c=null),n.__k=n.__k&&n.__k.map(function(n){return A(n,t,e)})),n}function D(n,t,e){return n&&e&&(n.__v=null,n.__k=n.__k&&n.__k.map(function(n){return D(n,t,e)}),n.__c&&n.__c.__P===t&&(n.__e&&e.appendChild(n.__e),n.__c.__e=!0,n.__c.__P=e)),n}function L(){this.__u=0,this.t=null,this.__b=null}function O(n){var t=n.__.__c;return t&&t.__a&&t.__a(n)}function F(n){var e,r,u;function o(o){if(e||(e=n()).then(function(n){r=n.default||n},function(n){u=n}),u)throw u;if(!r)throw e;return t(r,o)}return o.displayName=\"Lazy\",o.__f=!0,o}function U(){this.u=null,this.o=null}e.unmount=function(n){var t=n.__c;t&&t.__R&&t.__R(),t&&32&n.__u&&(n.type=null),T&&T(n)},(L.prototype=new n).__c=function(n,t){var e=t.__c,r=this;null==r.t&&(r.t=[]),r.t.push(e);var u=O(r.__v),o=!1,i=function(){o||(o=!0,e.__R=null,u?u(c):c())};e.__R=i;var c=function(){if(!--r.__u){if(r.state.__a){var n=r.state.__a;r.__v.__k[0]=D(n,n.__c.__P,n.__c.__O)}var t;for(r.setState({__a:r.__b=null});t=r.t.pop();)t.forceUpdate()}};r.__u++||32&t.__u||r.setState({__a:r.__b=r.__v.__k[0]}),n.then(i,i)},L.prototype.componentWillUnmount=function(){this.t=[]},L.prototype.render=function(n,e){if(this.__b){if(this.__v.__k){var r=document.createElement(\"div\"),o=this.__v.__k[0].__c;this.__v.__k[0]=A(this.__b,r,o.__O=o.__P)}this.__b=null}var i=e.__a&&t(u,null,n.fallback);return i&&(i.__u&=-33),[t(u,null,e.__a?null:n.children),i]};var V=function(n,t,e){if(++e[1]===e[0]&&n.o.delete(t),n.props.revealOrder&&(\"t\"!==n.props.revealOrder[0]||!n.o.size))for(e=n.u;e;){for(;e.length>3;)e.pop()();if(e[1]<e[0])break;n.u=e=e[2]}};function W(n){return this.getChildContext=function(){return n.context},n.children}function P(n){var e=this,r=n.i;e.componentWillUnmount=function(){o(null,e.l),e.l=null,e.i=null},e.i&&e.i!==r&&e.componentWillUnmount(),e.l||(e.i=r,e.l={nodeType:1,parentNode:r,childNodes:[],contains:function(){return!0},appendChild:function(n){this.childNodes.push(n),e.i.appendChild(n)},insertBefore:function(n,t){this.childNodes.push(n),e.i.appendChild(n)},removeChild:function(n){this.childNodes.splice(this.childNodes.indexOf(n)>>>1,1),e.i.removeChild(n)}}),o(t(W,{context:e.context},n.__v),e.l)}function j(n,e){var r=t(P,{__v:n,i:e});return r.containerInfo=e,r}(U.prototype=new n).__a=function(n){var t=this,e=O(t.__v),r=t.o.get(n);return r[0]++,function(u){var o=function(){t.props.revealOrder?(r.push(u),V(t,n,r)):u()};e?e(o):o()}},U.prototype.render=function(n){this.u=null,this.o=new Map;var t=r(n.children);n.revealOrder&&\"b\"===n.revealOrder[0]&&t.reverse();for(var e=t.length;e--;)this.o.set(t[e],this.u=[1,0,this.u]);return n.children},U.prototype.componentDidUpdate=U.prototype.componentDidMount=function(){var n=this;this.o.forEach(function(t,e){V(n,e,t)})};var z=\"undefined\"!=typeof Symbol&&Symbol.for&&Symbol.for(\"react.element\")||60103,B=/^(?:accent|alignment|arabic|baseline|cap|clip(?!PathU)|color|dominant|fill|flood|font|glyph(?!R)|horiz|image(!S)|letter|lighting|marker(?!H|W|U)|overline|paint|pointer|shape|stop|strikethrough|stroke|text(?!L)|transform|underline|unicode|units|v|vector|vert|word|writing|x(?!C))[A-Z]/,H=/^on(Ani|Tra|Tou|BeforeInp|Compo)/,Z=/[A-Z0-9]/g,Y=\"undefined\"!=typeof document,$=function(n){return(\"undefined\"!=typeof Symbol&&\"symbol\"==typeof Symbol()?/fil|che|rad/:/fil|che|ra/).test(n)};function q(n,t,e){return null==t.__k&&(t.textContent=\"\"),o(n,t),\"function\"==typeof e&&e(),n?n.__c:null}function G(n,t,e){return i(n,t),\"function\"==typeof e&&e(),n?n.__c:null}n.prototype.isReactComponent={},[\"componentWillMount\",\"componentWillReceiveProps\",\"componentWillUpdate\"].forEach(function(t){Object.defineProperty(n.prototype,t,{configurable:!0,get:function(){return this[\"UNSAFE_\"+t]},set:function(n){Object.defineProperty(this,t,{configurable:!0,writable:!0,value:n})}})});var J=e.event;function K(){}function Q(){return this.cancelBubble}function X(){return this.defaultPrevented}e.event=function(n){return J&&(n=J(n)),n.persist=K,n.isPropagationStopped=Q,n.isDefaultPrevented=X,n.nativeEvent=n};var nn,tn={enumerable:!1,configurable:!0,get:function(){return this.class}},en=e.vnode;e.vnode=function(n){\"string\"==typeof n.type&&function(n){var t=n.props,e=n.type,u={},o=-1===e.indexOf(\"-\");for(var i in t){var c=t[i];if(!(\"value\"===i&&\"defaultValue\"in t&&null==c||Y&&\"children\"===i&&\"noscript\"===e||\"class\"===i||\"className\"===i)){var l=i.toLowerCase();\"defaultValue\"===i&&\"value\"in t&&null==t.value?i=\"value\":\"download\"===i&&!0===c?c=\"\":\"translate\"===l&&\"no\"===c?c=!1:\"o\"===l[0]&&\"n\"===l[1]?\"ondoubleclick\"===l?i=\"ondblclick\":\"onchange\"!==l||\"input\"!==e&&\"textarea\"!==e||$(t.type)?\"onfocus\"===l?i=\"onfocusin\":\"onblur\"===l?i=\"onfocusout\":H.test(i)&&(i=l):l=i=\"oninput\":o&&B.test(i)?i=i.replace(Z,\"-$&\").toLowerCase():null===c&&(c=void 0),\"oninput\"===l&&u[i=l]&&(i=\"oninputCapture\"),u[i]=c}}\"select\"==e&&u.multiple&&Array.isArray(u.value)&&(u.value=r(t.children).forEach(function(n){n.props.selected=-1!=u.value.indexOf(n.props.value)})),\"select\"==e&&null!=u.defaultValue&&(u.value=r(t.children).forEach(function(n){n.props.selected=u.multiple?-1!=u.defaultValue.indexOf(n.props.value):u.defaultValue==n.props.value})),t.class&&!t.className?(u.class=t.class,Object.defineProperty(u,\"className\",tn)):(t.className&&!t.class||t.class&&t.className)&&(u.class=u.className=t.className),n.props=u}(n),n.$$typeof=z,en&&en(n)};var rn=e.__r;e.__r=function(n){rn&&rn(n),nn=n.__c};var un=e.diffed;e.diffed=function(n){un&&un(n);var t=n.props,e=n.__e;null!=e&&\"textarea\"===n.type&&\"value\"in t&&t.value!==e.value&&(e.value=null==t.value?\"\":t.value),nn=null};var on={ReactCurrentDispatcher:{current:{readContext:function(n){return nn.__n[n.__c].props.value},useCallback:a,useContext:s,useDebugValue:h,useDeferredValue:bn,useEffect:v,useId:d,useImperativeHandle:p,useInsertionEffect:gn,useLayoutEffect:m,useMemo:y,useReducer:_,useRef:b,useState:S,useSyncExternalStore:Cn,useTransition:Sn}}},cn=\"18.3.1\";function ln(n){return t.bind(null,n)}function fn(n){return!!n&&n.$$typeof===z}function an(n){return fn(n)&&n.type===u}function sn(n){return!!n&&!!n.displayName&&(\"string\"==typeof n.displayName||n.displayName instanceof String)&&n.displayName.startsWith(\"Memo(\")}function hn(n){return fn(n)?f.apply(null,arguments):n}function vn(n){return!!n.__k&&(o(null,n),!0)}function dn(n){return n&&(n.base||1===n.nodeType&&n)||null}var pn=function(n,t){return n(t)},mn=function(n,t){return n(t)},yn=u;function _n(n){n()}function bn(n){return n}function Sn(){return[!1,_n]}var gn=m,En=fn;function Cn(n,t){var e=t(),r=S({h:{__:e,v:t}}),u=r[0].h,o=r[1];return m(function(){u.__=e,u.v=t,xn(u)&&o({h:u})},[n,e,t]),v(function(){return xn(u)&&o({h:u}),n(function(){xn(u)&&o({h:u})})},[n]),e}function xn(n){var t,e,r=n.v,u=n.__;try{var o=r();return!((t=u)===(e=o)&&(0!==t||1/t==1/e)||t!=t&&e!=e)}catch(n){return!0}}var Rn={useState:S,useId:d,useReducer:_,useEffect:v,useLayoutEffect:m,useInsertionEffect:gn,useTransition:Sn,useDeferredValue:bn,useSyncExternalStore:Cn,startTransition:_n,useRef:b,useImperativeHandle:p,useMemo:y,useCallback:a,useContext:s,useDebugValue:h,version:\"18.3.1\",Children:N,render:q,hydrate:G,unmountComponentAtNode:vn,createPortal:j,createElement:t,createContext:c,createFactory:ln,cloneElement:hn,createRef:l,Fragment:u,isValidElement:fn,isElement:En,isFragment:an,isMemo:sn,findDOMNode:dn,Component:n,PureComponent:C,memo:x,forwardRef:k,flushSync:mn,unstable_batchedUpdates:pn,StrictMode:yn,Suspense:L,SuspenseList:U,lazy:F,__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:on};export{N as Children,C as PureComponent,yn as StrictMode,L as Suspense,U as SuspenseList,on as __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,hn as cloneElement,ln as createFactory,j as createPortal,Rn as default,dn as findDOMNode,mn as flushSync,k as forwardRef,G as hydrate,En as isElement,an as isFragment,sn as isMemo,fn as isValidElement,F as lazy,x as memo,q as render,_n as startTransition,vn as unmountComponentAtNode,pn as unstable_batchedUpdates,bn as useDeferredValue,gn as useInsertionEffect,Cn as useSyncExternalStore,Sn as useTransition,cn as version};\n//# sourceMappingURL=compat.module.js.map\n","import '../FormattedText/style.css';\nimport { jsx as f } from \"react/jsx-runtime\";\nfunction d(e) {\n  return e && e.__esModule && Object.prototype.hasOwnProperty.call(e, \"default\") ? e.default : e;\n}\nvar l = { exports: {} };\n/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n(function(e) {\n  (function() {\n    var o = {}.hasOwnProperty;\n    function n() {\n      for (var t = \"\", r = 0; r < arguments.length; r++) {\n        var s = arguments[r];\n        s && (t = i(t, u(s)));\n      }\n      return t;\n    }\n    function u(t) {\n      if (typeof t == \"string\" || typeof t == \"number\")\n        return t;\n      if (typeof t != \"object\")\n        return \"\";\n      if (Array.isArray(t))\n        return n.apply(null, t);\n      if (t.toString !== Object.prototype.toString && !t.toString.toString().includes(\"[native code]\"))\n        return t.toString();\n      var r = \"\";\n      for (var s in t)\n        o.call(t, s) && t[s] && (r = i(r, s));\n      return r;\n    }\n    function i(t, r) {\n      return r ? t ? t + \" \" + r : t + r : t;\n    }\n    e.exports ? (n.default = n, e.exports = n) : window.classNames = n;\n  })();\n})(l);\nvar p = l.exports;\nconst h = /* @__PURE__ */ d(p), _ = \"_price_62oxc_87\", m = \"_reduced_62oxc_99\", y = \"_strikethrough_62oxc_103\", c = {\n  price: _,\n  default: \"_default_62oxc_95\",\n  reduced: m,\n  strikethrough: y\n}, a = {\n  default: c.default,\n  reduced: c.reduced,\n  strikethrough: c.strikethrough\n};\nfunction v({\n  formattedPrice: e,\n  variant: o = \"default\"\n}) {\n  const n = h(c.price, a[o] ?? a.default);\n  return /* @__PURE__ */ f(\"span\", { className: n, children: e });\n}\nfunction S({\n  children: e = \"\",\n  as: o = \"div\",\n  ...n\n}) {\n  return /* @__PURE__ */ f(o, { ...n, dangerouslySetInnerHTML: { __html: e || \"\" } });\n}\nexport {\n  S as F,\n  v as P,\n  h as c,\n  d as g\n};\n//# sourceMappingURL=FormattedText.js.map\n","import './style.css';\nimport { jsxs as i, Fragment as y, jsx as r } from \"react/jsx-runtime\";\nimport { c as d, F as E } from \"../__shared__/FormattedText.js\";\nimport { P as it } from \"../__shared__/FormattedText.js\";\nimport { useId as P, useMemo as U, Component as D, useState as j, useEffect as H } from \"react\";\nconst z = \"_fields_z6xvn_87\", G = \"_options_z6xvn_92\", X = \"_label_z6xvn_100\", N = {\n  fields: z,\n  options: G,\n  label: X\n}, q = \"_label_plnce_1\", K = \"_input_plnce_15\", k = {\n  label: q,\n  input: K\n}, Y = \"_wrapper_1mukr_87\", Z = \"_wrapperSelected_1mukr_97\", J = \"_inner_1mukr_101\", Q = \"_hiddenLabel_1mukr_110\", V = \"_darkOption_1mukr_114\", ee = \"_lightOption_1mukr_118\", m = {\n  wrapper: Y,\n  wrapperSelected: Z,\n  inner: J,\n  hiddenLabel: Q,\n  darkOption: V,\n  lightOption: ee\n};\nfunction te(e, t) {\n  const n = e.split(\",\").filter((c) => c), a = n.length > 0 ? n[0] : \"#ffffff00\", o = n.length > 1 ? n[1] : a, l = M(a), s = M(o);\n  return t === \"two-tone\" ? {\n    background: `linear-gradient(135deg, ${a} 0%, ${a} 47%, rgba(255,255,255,1) 47%, rgba(255,255,255,1) 53%, ${o} 53%, rgba(${s.r},${s.g},${s.b},0.705) 100%)`\n  } : t === \"gradient\" ? {\n    background: `linear-gradient(225deg, rgba(${l.r},${l.g},${l.b},1) 0%, rgba(${s.r},${s.g},${s.b},0.90) 100%)`\n  } : {\n    backgroundColor: a\n  };\n}\nfunction M(e) {\n  const t = parseInt(e.slice(1, 3), 16), n = parseInt(e.slice(3, 5), 16), a = parseInt(e.slice(5, 7), 16);\n  return { r: t, g: n, b: a };\n}\nfunction L({ selected: e, value: t, label: n, colorType: a }) {\n  const l = t === \"#fff\" ? m.lightOption : m.darkOption, s = te(t, a);\n  return /* @__PURE__ */ i(y, { children: [\n    /* @__PURE__ */ r(\"span\", { className: m.hiddenLabel, children: n }),\n    /* @__PURE__ */ r(\n      \"span\",\n      {\n        className: d(\n          m.wrapper,\n          e ? m.wrapperSelected : void 0\n        ),\n        children: /* @__PURE__ */ r(\"span\", { className: d(m.inner, l), style: s })\n      }\n    )\n  ] });\n}\nfunction ne({\n  option: e,\n  controlName: t,\n  colorType: n,\n  asAnchors: a,\n  onSelectColor: o\n}) {\n  const { selected: l } = e;\n  function s() {\n    l || o({\n      ...e\n    });\n  }\n  return a ? (\n    // eslint-disable-next-line jsx-a11y/control-has-associated-label\n    /* @__PURE__ */ r(\n      \"a\",\n      {\n        href: e.href ?? \"\",\n        className: k.label,\n        \"aria-current\": e.selected ? \"page\" : void 0,\n        children: /* @__PURE__ */ r(\n          L,\n          {\n            label: e.name,\n            value: e.value,\n            selected: l,\n            colorType: n\n          }\n        )\n      }\n    )\n  ) : (\n    // eslint-disable-next-line jsx-a11y/label-has-associated-control\n    /* @__PURE__ */ i(\"label\", { className: k.label, children: [\n      /* @__PURE__ */ r(\n        L,\n        {\n          label: e.name,\n          value: e.value,\n          selected: l,\n          colorType: n\n        }\n      ),\n      /* @__PURE__ */ r(\n        \"input\",\n        {\n          type: \"radio\",\n          className: k.input,\n          onClick: s,\n          name: t,\n          value: e.name,\n          checked: !!e.selected,\n          readOnly: !0\n        }\n      )\n    ] })\n  );\n}\nfunction Ve({\n  colors: e,\n  controlName: t = \"color\",\n  colorType: n = \"solid\",\n  onSelectColor: a,\n  asAnchors: o = !1\n}) {\n  const l = e.findIndex((c) => c.selected), s = l > -1 ? e[l] : void 0;\n  return /* @__PURE__ */ i(\"div\", { children: [\n    /* @__PURE__ */ r(\"div\", { className: N.fields, children: /* @__PURE__ */ r(\"div\", { className: N.options, children: e.map((c) => /* @__PURE__ */ r(\n      ne,\n      {\n        controlName: t,\n        option: c,\n        colorType: n,\n        onSelectColor: () => a(c),\n        asAnchors: o\n      },\n      c.name\n    )) }) }),\n    /* @__PURE__ */ r(\"div\", { className: N.label, children: s ? s.name : /* @__PURE__ */ r(y, { children: \" \" }) })\n  ] });\n}\nfunction I([[e, t], [n, a]], [o, l]) {\n  return [T(e * o + t * l, 3), T(n * o + a * l, 3)];\n}\nfunction re(e) {\n  return [\n    [Math.cos(e), -Math.sin(e)],\n    [Math.sin(e), Math.cos(e)]\n  ];\n}\nfunction S([e, t], [n, a]) {\n  return [e + n, t + a];\n}\nfunction T(e, t) {\n  const n = 10 ** t;\n  return Math.round(e * n) / n;\n}\nfunction ae(e, [t, n], a) {\n  const o = n % (2 * Math.PI), l = re(a), s = [\n    e * Math.cos(t),\n    e * Math.sin(t)\n  ], c = [\n    e * Math.cos(t + o),\n    e * Math.sin(t + o)\n  ], [p, h] = S(I(l, s), [\n    e,\n    e\n  ]), [C, w] = S(I(l, c), [\n    e,\n    e\n  ]), O = o > Math.PI ? 1 : 0, W = o > 0 ? 1 : 0, R = a / (2 * Math.PI) * 360;\n  return `M ${p} ${h} A ${e} ${e} ${R} ${O} ${W} ${C} ${w}`;\n}\nconst se = \"_intensityMeterWrapper_18rpe_87\", le = \"_circleWrapper_18rpe_95\", oe = \"_intensityWrapper_18rpe_104\", ce = \"_intensity_18rpe_87\", ie = \"_circle_18rpe_95\", de = \"_arc_18rpe_125\", ue = \"_label_18rpe_130\", _ = {\n  intensityMeterWrapper: se,\n  circleWrapper: le,\n  intensityWrapper: oe,\n  intensity: ce,\n  circle: ie,\n  arc: de,\n  label: ue\n}, v = 16, _e = 0.8, x = 1.4;\nfunction et({ maximum: e = 11, intensity: t = 9, label: n = \"Intensity\" }) {\n  const a = t / e / t, o = _e * a;\n  let l = \"\";\n  for (let s = 0; s < t; s++) {\n    const c = a * 2 * Math.PI * s;\n    l += ae(v, [c, o * 2 * Math.PI], -Math.PI / 2);\n  }\n  return /* @__PURE__ */ i(\"div\", { className: _.intensityMeterWrapper, children: [\n    /* @__PURE__ */ i(\"div\", { className: _.circleWrapper, children: [\n      /* @__PURE__ */ i(\n        \"svg\",\n        {\n          width: \"32\",\n          height: \"32\",\n          viewBox: \"-2 -2 36 36\",\n          version: \"1.1\",\n          xmlns: \"http://www.w3.org/2000/svg\",\n          children: [\n            /* @__PURE__ */ r(\"circle\", { cx: v, cy: v, r: v + x, className: _.circle }),\n            /* @__PURE__ */ r(\"path\", { d: l, strokeWidth: `${x}px`, className: _.arc })\n          ]\n        }\n      ),\n      /* @__PURE__ */ r(\"span\", { className: _.intensityWrapper, children: /* @__PURE__ */ r(\"span\", { className: _.intensity, children: t }) })\n    ] }),\n    /* @__PURE__ */ r(\"div\", { className: _.label, children: n })\n  ] });\n}\nconst pe = \"_container_15ma2_1\", he = {\n  container: pe\n}, me = 3, $ = 5, fe = 16;\nfunction be(e, t) {\n  const n = e < Math.floor(t), a = e === Math.floor(t) && t % 1 > 0;\n  return n ? \"filled\" : a ? \"partial\" : \"empty\";\n}\nfunction tt({\n  rating: e,\n  decimalPrecision: t = 2,\n  size: n,\n  ariaLabel: a,\n  className: o\n}) {\n  const l = P();\n  if (!e || e < me || e > $)\n    return null;\n  const s = e === $ ? e.toFixed(0) : e.toFixed(t), c = U(\n    () => a(s, $.toString()),\n    [a, s, $]\n  );\n  return /* @__PURE__ */ r(\"div\", { role: \"img\", className: d(\n    he.container,\n    o\n  ), \"aria-label\": c, children: [...Array(5)].map((p, h) => {\n    const C = be(h, e), w = `${l}-${h}`;\n    return /* @__PURE__ */ r(ge, { id: w, rating: e, type: C, size: n || fe }, w);\n  }) });\n}\nconst g = `M8 12.8355L11.9892 15.833C12.6217 16.3186 13.4811 15.6655 13.2379 14.8952L11.7135\n   10.0558L15.6541 7.15876C16.3028 6.68989 15.9785 5.63491 15.1839 5.63491H10.3514L8.77839\n   0.577724C8.53514 -0.192575 7.48108 -0.192575 7.23783 0.577724L5.64863 5.63491H0.816148C0.0215454 5.63491\n   -0.302782 6.68989 0.345873 7.15876L4.28645 10.0558L2.76211 14.8952C2.51887 15.6655 3.37833 16.3019\n   4.01077 15.833L8 12.8355Z`;\nfunction ge({ id: e, rating: t, type: n, size: a }) {\n  return /* @__PURE__ */ i(\"svg\", { width: a, height: a, viewBox: \"0 0 16 16\", children: [\n    n === \"filled\" && /* @__PURE__ */ r(we, {}),\n    n === \"partial\" && /* @__PURE__ */ r(ve, { id: e, rating: t }),\n    n === \"empty\" && /* @__PURE__ */ r($e, { id: e })\n  ] });\n}\nfunction F({ id: e }) {\n  return /* @__PURE__ */ i(\"mask\", { id: `hole-${e}`, children: [\n    /* @__PURE__ */ r(\"rect\", { width: \"100%\", height: \"100%\", fill: \"white\" }),\n    /* @__PURE__ */ r(\n      \"path\",\n      {\n        d: g,\n        fill: \"black\",\n        transform: \"scale(0.7) translate(3.5, 3.5)\",\n        stroke: \"white\"\n      }\n    )\n  ] });\n}\nfunction we() {\n  return /* @__PURE__ */ r(\"path\", { d: g, fill: \"#876C43\", stroke: \"white\" });\n}\nfunction ve({ id: e, rating: t }) {\n  const n = t % 1 * 100;\n  return /* @__PURE__ */ i(y, { children: [\n    /* @__PURE__ */ i(\"defs\", { children: [\n      /* @__PURE__ */ r(\"mask\", { id: `partial-mask-${e}`, children: /* @__PURE__ */ r(\"rect\", { width: `${n}%`, height: \"100%\", fill: \"white\" }) }),\n      /* @__PURE__ */ r(F, { id: e })\n    ] }),\n    /* @__PURE__ */ r(\n      \"path\",\n      {\n        d: g,\n        stroke: \"white\",\n        fill: \"#876C43\",\n        mask: `url(#partial-mask-${e})`\n      }\n    ),\n    /* @__PURE__ */ r(\n      \"path\",\n      {\n        id: `outline-${e}`,\n        d: g,\n        fill: \"#876C43\",\n        mask: `url(#hole-${e})`,\n        stroke: \"white\"\n      }\n    )\n  ] });\n}\nfunction $e({ id: e }) {\n  return /* @__PURE__ */ i(y, { children: [\n    /* @__PURE__ */ r(\"defs\", { children: /* @__PURE__ */ r(F, { id: e }) }),\n    /* @__PURE__ */ r(\n      \"path\",\n      {\n        id: `outline-${e}`,\n        d: g,\n        fill: \"#876C43\",\n        mask: `url(#hole-${e})`,\n        stroke: \"white\"\n      }\n    )\n  ] });\n}\nconst ye = \"_wrapper_1wf6k_87\", Ce = \"_text_1wf6k_98\", Ne = \"_primary_1wf6k_105\", ke = \"_secondary_1wf6k_112\", b = {\n  wrapper: ye,\n  text: Ce,\n  primary: Ne,\n  secondary: ke,\n  default: \"_default_1wf6k_119\"\n}, Me = {\n  primary: b.primary,\n  secondary: b.secondary,\n  default: b.default\n};\nfunction nt({ text: e, variant: t = \"default\", Icon: n, iconAdornment: a = \"left\" }) {\n  return /* @__PURE__ */ i(\"div\", { className: d(\n    b.wrapper,\n    Me[t] ?? b.default\n  ), children: [\n    n && a === \"left\" && /* @__PURE__ */ r(n, {}),\n    /* @__PURE__ */ r(\"span\", { className: b.text, children: e }),\n    n && a === \"right\" && /* @__PURE__ */ r(n, {})\n  ] });\n}\nconst Le = \"_button_vrtsw_97\", Ie = \"_buttonFocus_vrtsw_114\", Se = \"_fillContainer_vrtsw_127\", Te = \"_inner_vrtsw_131\", xe = \"_contents_vrtsw_141\", Ae = \"_icon_vrtsw_149\", Be = \"_label_vrtsw_161\", Pe = \"_labelCentered_vrtsw_174\", Fe = \"_chevron_vrtsw_178\", u = {\n  button: Le,\n  buttonFocus: Ie,\n  fillContainer: Se,\n  inner: Te,\n  contents: xe,\n  icon: Ae,\n  label: Be,\n  labelCentered: Pe,\n  chevron: Fe\n};\nfunction rt({\n  className: e,\n  onClick: t,\n  label: n,\n  textCentered: a,\n  fillContainer: o,\n  maintainElementFocus: l,\n  ...s\n}) {\n  const c = d(\n    u.button,\n    l ? u.buttonFocus : null,\n    o ? u.fillContainer : null,\n    e\n  );\n  return /* @__PURE__ */ r(\"button\", { ...s, className: c, type: \"button\", onClick: t, children: /* @__PURE__ */ r(\"span\", { className: u.inner, children: /* @__PURE__ */ i(\"span\", { className: u.contents, children: [\n    /* @__PURE__ */ r(\"span\", { className: u.icon }),\n    /* @__PURE__ */ r(\n      \"span\",\n      {\n        className: d(\n          u.label,\n          a ? u.labelCentered : null\n        ),\n        children: n\n      }\n    ),\n    /* @__PURE__ */ r(\"span\", { className: u.chevron })\n  ] }) }) });\n}\nconst Oe = \"_large_1mpyj_87\", We = \"_addToCart_1mpyj_92\", Re = \"_mouseUser_1mpyj_140\", A = {\n  large: Oe,\n  addToCart: We,\n  mouseUser: Re\n};\nclass Ee extends D {\n  shouldComponentUpdate() {\n    return !1;\n  }\n  render() {\n    const { children: t, id: n, className: a } = this.props;\n    return /* @__PURE__ */ r(\"div\", { id: n, className: a, children: t });\n  }\n}\nfunction at({\n  className: e,\n  productId: t,\n  size: n = \"large\",\n  loadingLabel: a = \"Loading\"\n}) {\n  const o = P(), [l, s] = j(!1), c = n === \"small\" ? \"small\" : \"large\", p = [\"a2c\", t == null ? void 0 : t.replace(/(\\s|\\W)/g, \"-\"), o].join(\n    \"-\"\n  );\n  H(() => {\n    (async () => (await De(p, t, c), s(!0)))();\n  }, [p]);\n  const h = c === \"large\" ? \"AddToBagButtonLarge\" : \"AddToBagButtonSmall\";\n  return (\n    // eslint-disable-next-line jsx-a11y/click-events-have-key-events, jsx-a11y/no-static-element-interactions\n    /* @__PURE__ */ r(\n      \"div\",\n      {\n        className: d(\n          e,\n          c === \"large\" ? A.large : void 0\n        ),\n        onClick: Ue,\n        children: /* @__PURE__ */ r(Ee, { id: p, className: A.addToCart, children: l ? null : /* @__PURE__ */ i(\n          \"button\",\n          {\n            className: d(\"AddToBagButton\", h),\n            type: \"button\",\n            disabled: !0,\n            children: [\n              /* @__PURE__ */ r(\"span\", { className: \"loading\", children: a }),\n              \" \"\n            ]\n          }\n        ) })\n      }\n    )\n  );\n}\nconst Ue = (e) => {\n  e.nativeEvent.__isAddToCard__ = !0;\n};\nasync function De(e, t, n) {\n  if (window.napi) {\n    try {\n      await window.napi.getConfig();\n    } catch (a) {\n      console.error(\"NAPI getConfig error\", a);\n      return;\n    }\n    window.ui = window.ui || [], window.ui.push({\n      id: e,\n      module: \"AddToBagButton\",\n      configuration: { props: { productId: t, buttonSize: n } },\n      ecommerceData: { activated: !0 }\n    });\n  }\n}\nconst je = \"_container_n306l_95\", He = \"_icons_n306l_101\", ze = \"_withLabel_n306l_109\", Ge = \"_icon_n306l_101\", Xe = \"_multiple_n306l_124\", qe = \"_label_n306l_135\", f = {\n  container: je,\n  icons: He,\n  withLabel: ze,\n  icon: Ge,\n  multiple: Xe,\n  label: qe\n};\nfunction st({ icons: e, className: t, ...n }) {\n  const a = (e || []).length > 1, o = (e || []).some((s) => s.label), l = (e || []).map((s) => s.label ?? \"\").filter((s) => s).join(\", \");\n  return /* @__PURE__ */ i(\"div\", { ...n, className: d(\n    f.container,\n    t\n  ), children: [\n    /* @__PURE__ */ r(\"div\", { className: d(\n      f.icons,\n      o ? f.withLabel : \"\"\n    ), children: (e || []).map((s) => /* @__PURE__ */ r(\n      \"div\",\n      {\n        className: d(\n          f.icon,\n          a ? f.multiple : \"\"\n        ),\n        style: {\n          /** @ts-ignore */\n          \"--url\": `url(/shared_res/agility/next-components/assets/icons/${s.icon}.svg)`\n        },\n        title: s.label\n      },\n      s.icon\n    )) }),\n    o && /* @__PURE__ */ r(\"div\", { className: f.label, title: l, children: l })\n  ] });\n}\nconst Ke = \"_tagBox_1arw7_1\", Ye = \"_label_1arw7_10\", B = {\n  tagBox: Ke,\n  label: Ye\n};\nfunction lt({ bgColor: e, color: t, name: n, ...a }) {\n  return /* @__PURE__ */ r(\"div\", { ...a, className: B.tagBox, style: { backgroundColor: e, color: t }, children: /* @__PURE__ */ r(E, { className: B.label, children: n }) });\n}\nexport {\n  at as AddToCartButton,\n  Ve as ColorPicker,\n  st as FeatureIcon,\n  et as IntensityMeter,\n  it as PriceLabel,\n  rt as ProductActionButton,\n  tt as ProductRating,\n  lt as ProductTag,\n  nt as SavingTag\n};\n//# sourceMappingURL=index.js.map\n","import Image from '@commons/image/Image'\nimport Price from '@commons/product/price/Price'\nimport { CampaignProps, CopywritingShopTheLooks } from '@commons/types'\nimport { usePbProps } from '@content/helpers/src/context'\nimport { useProducts } from '@content/helpers/src/contextProducts'\nimport { stripTags } from '@content/helpers/src/utils'\nimport { NapiProduct, viewItemList } from '@nespresso-catalog/sdk'\nimport { AddToCartButton } from '@nespresso/catalog-components-react/controls'\nimport styles from './ShopTheLook.module.scss'\n\nexport default function ShopTheLook({ disableTracking = false }) {\n    const { products } = useProducts()\n    const {\n        copywriting,\n        campaign\n    }: { copywriting: CopywritingShopTheLooks; campaign: CampaignProps } =\n        usePbProps()\n\n    if (products.length <= 0) {\n        return null\n    }\n\n    const SKUs = products.map((product: NapiProduct) => product.internationalId)\n\n    if (!disableTracking) {\n        viewItemList(SKUs, {\n            listId: campaign.position,\n            listName: `${campaign.position} - ${copywriting.type.shopTheLookDetails.heading}`,\n            eventRaisedBy: campaign.position\n        })\n    }\n\n    const renderProductComponents = product => {\n        const { id, name, images, price, headline } = product\n        const renderImage = () => {\n            if (!name || !images) {\n                return null\n            }\n\n            return (\n                <div className={styles['shop-the-look__placeholder']}>\n                    <Image src={images.icon} alt={name} />\n                </div>\n            )\n        }\n\n        const renderProductName = () => {\n            if (!name) {\n                return null\n            }\n\n            return <h3 className={'t-sm-700-sl'}>{name}</h3>\n        }\n\n        const renderProductHeadline = () => {\n            if (!headline) {\n                return null\n            }\n\n            return <p className=\"t-xs-500-sl\">{stripTags(headline)}</p>\n        }\n\n        const renderProductPlaceholder = () => {\n            return (\n                <div className={styles['shop-the-look__product-info']}>\n                    {renderProductName()}\n                    {renderProductHeadline()}\n\n                    <Price price={price}></Price>\n                </div>\n            )\n        }\n\n        const renderProductATC = () => {\n            return (\n                <>\n                    <style>\n                        {`.AddToBagButtonSmall__icon-sign { transform: translate(-1px, -1px)}`}\n                    </style>\n                    <div className={styles['shop-the-look__atc']}>\n                        <AddToCartButton\n                            size=\"small\"\n                            productId={id}\n                            loadingLabel=\"+\"\n                        />\n                    </div>\n                </>\n            )\n        }\n\n        return (\n            <div className={styles['shop-the-look']}>\n                {renderImage()}\n                <div className={styles['shop-the-look__container']}>\n                    {renderProductPlaceholder()}\n                    {renderProductATC()}\n                </div>\n            </div>\n        )\n    }\n\n    return (\n        <>\n            {products.map((product, index) => (\n                <div key={index}>{renderProductComponents(product)}</div>\n            ))}\n        </>\n    )\n}\n","import type { AddEventListenerOptions } from 'dom'\n\nexport type EventListener = {\n    element: HTMLElement\n    type: string\n    listener: (e: Event) => void\n    options?: boolean | AddEventListenerOptions\n}\n/**\n * @deprecated\n * Use \"\\@content/helpers/src/event-queue\", this implementation has race conditions\n */\nconst add = (eventListeners: EventListener[] = []) => {\n    eventListeners.forEach(eventListener => {\n        if (!eventListener || !eventListener.element) {\n            return\n        }\n        return eventListener.element.addEventListener(\n            eventListener.type,\n            eventListener.listener,\n            eventListener.options\n        )\n    })\n}\n/**\n * @deprecated\n * Use \"\\@content/helpers/src/event-queue\", this implementation has race conditions\n */\nconst remove = (eventListeners: EventListener[] = []) => {\n    eventListeners.forEach(eventListener => {\n        if (!eventListener || !eventListener.element) {\n            return\n        }\n        eventListener.element.removeEventListener(\n            eventListener.type,\n            eventListener.listener\n        )\n    })\n}\n\nconst busNamespace = 'pageBuilder'\n/**\n * @deprecated\n * Use \"\\@content/helpers/src/event-queue\", this implementation has race conditions\n */\nexport const emitCustomEvent = (eventName: string, data: unknown) => {\n    const customEvent = new CustomEvent(`${busNamespace}.${eventName}`, {\n        detail: data,\n        bubbles: true,\n        cancelable: true,\n        composed: false\n    })\n\n    window.dispatchEvent(customEvent)\n}\n/**\n * @deprecated\n * Use \"\\@content/helpers/src/event-queue\", this implementation has race conditions\n */\nexport default { add, emitCustomEvent, remove }\n","import { getProduct } from '@content/helpers/src/catalog'\nimport { emitCustomEvent } from './events.helpers'\nimport { removeEmptyValues } from './utils'\n\nconst raisedByPB = 'page builder'\nconst raisedByWC = 'Web component'\n\n/**\n *\n * helper method for 'customEvent' GTM event\n * @param {*} args (event, eventRaisedBy, eventCategory, eventAction, eventLabel, nonInteraction)\n */\n\nexport const customEvent = args => {\n    window.gtmDataObject = window.gtmDataObject || []\n    var eventData\n    if (args.event_GA4 === undefined || args.event_GA4 === false) {\n        eventData = {\n            event: 'customEvent',\n            eventRaisedBy: raisedByWC,\n            eventCategory: 'User Engagement',\n            eventAction: 'Click',\n            eventLabel: '',\n            nonInteraction: 0,\n            ...args\n        }\n    } else {\n        eventData = {\n            event_raised_by: raisedByPB,\n            ...args\n        }\n    }\n    window.gtmDataObject.push(eventData)\n    emitCustomEvent('customEvent', eventData)\n}\n\n/**\n * Helper method for tracking component interactions, compatible with GA4.\n *\n * @param {String} creative : component raising the event, e.g. 'before_coffees_list', 'before_machines_list', 'before_accessories_list'\n * @param {String} actionType : description of the interaction, e.g 'pdp quick view'\n * @param {String} internationalId : long SKU, e.g. 'erp.pt.b2c/prod/7243.30'\n * @param {String} internationalName : international name of the product, e.g. 'Vertuo Carafe Pour-Over Style Mild'\n * @param {String} productType : type of product, i.e. 'capsule', 'machine', 'accessory'\n * @param {String} range : product range, e.g. 'ispirazione italiana'\n * @param {String} technology : technology, i.e. 'original', 'vertuo'\n * @param {Number} price : price, e.g. .51\n * @param {String} eventAction : description of the action, e.g. 'PDP Quick View'\n *\n * Initally created for PDP Quick View tracking:\n * https://dsu-confluence.nestle.biz/display/DIANA/BEFORE+-+PDP+Quick+View\n * Will probably be rolled out across all components, update this comment accordingly.\n */\nexport const trackComponentInteraction = ({\n    creative = '',\n    actionType = '',\n    internationalId = '',\n    internationalName = '',\n    productType = '',\n    technology = '',\n    category = '',\n    rawPrice = '',\n    eventAction = ''\n}) => {\n    window.gtmDataObject = window.gtmDataObject || []\n    const eventData = {\n        event: 'page_builder_component_interaction',\n        event_raised_by: raisedByPB,\n        component_name: creative,\n        action_type: actionType,\n        item_id_event: internationalId,\n        item_name_event: internationalName,\n        item_category_event: productType,\n        item_technology_event: technology,\n        item_range_event: category,\n        item_price_event: rawPrice,\n        eventCategory: 'User Engagement',\n        eventAction: eventAction,\n        eventLabel: `${productType} - ${technology} - ${internationalName}`\n    }\n    window.gtmDataObject.push(eventData)\n    emitCustomEvent('page_builder_component_interaction', eventData)\n}\n\n/**\n *\n * helper method for 'impression' GTM event\n * @param {*} args (event, eventRaisedBy, eventAction, ecommerce)\n */\nexport const impression = args => {\n    window.gtmDataObject = window.gtmDataObject || []\n    const eventData = {\n        event: 'impression',\n        eventRaisedBy: raisedByPB,\n        eventAction: 'Promo Impression',\n        ecommerce: {},\n        ...args\n    }\n    window.gtmDataObject.push(eventData)\n    emitCustomEvent('impression', eventData)\n}\n\n/**\n *\n * Push 'view_promotion' event for GA 4\n * @param {*} args (event, event_raised_by, ecommerce: {promotion_id, promotion_name, creative_slot, creative_name})\n */\nexport const viewPromotion = args => {\n    const event = 'view_promotion'\n    const eventData = {\n        event,\n        event_raised_by: raisedByPB,\n        ecommerce: {}\n    }\n    if (Object.keys(args).length) {\n        const {\n            id = undefined,\n            creative = undefined,\n            name = undefined,\n            position = undefined\n        } = args\n        let ecommerceData = {\n            promotion_id: id,\n            promotion_name: name,\n            creative_slot: position,\n            creative_name: creative\n        }\n        ecommerceData = removeEmptyValues(ecommerceData)\n        eventData.ecommerce = ecommerceData\n    }\n    window.gtmDataObject ??= []\n    window.gtmDataObject.push(eventData)\n    emitCustomEvent(event, eventData)\n}\n\n/**\n *\n * helper method for 'promoClick' GTM event\n * @param {*} args (event, eventRaisedBy, eventCategory, eventAction, ecommerce, cta_name)\n */\nexport const promoClick = args => {\n    window.gtmDataObject = window.gtmDataObject || []\n    const eventData = {\n        event: 'promoClick',\n        eventRaisedBy: raisedByPB,\n        ecommerce: {},\n        ...args,\n        cta_name: args?.cta_name ?? '(not set)'\n    }\n    window.gtmDataObject.push(eventData)\n    emitCustomEvent('promoClick', eventData)\n}\n\n/**\n *\n * Push 'select_promotion' event for GA 4\n * @param {*} args (event, event_raised_by, cta_name, ecommerce: {promotion_id, promotion_name, creative_slot, creative_name})\n */\nexport const selectPromotion = args => {\n    const event = 'select_promotion'\n    const eventData = {\n        event: 'select_promotion',\n        cta_name: args?.cta_name ?? '(not set)',\n        event_raised_by: raisedByPB,\n        ecommerce: {}\n    }\n    if (Object.keys(args).length) {\n        const {\n            id = undefined,\n            creative = undefined,\n            name = undefined,\n            position = undefined\n        } = args\n        let ecommerceData = {\n            promotion_id: id,\n            promotion_name: name,\n            creative_slot: position,\n            creative_name: creative\n        }\n        ecommerceData = removeEmptyValues(ecommerceData)\n        eventData.ecommerce = ecommerceData\n    }\n    window.gtmDataObject ??= []\n    window.gtmDataObject.push(eventData)\n    emitCustomEvent(event, eventData)\n}\n\nexport const interactionClick = (nameComponent, ctaName) => {\n    window.gtmDataObject = window.gtmDataObject || []\n    const eventData = {\n        event: 'page_builder_component_interaction',\n        event_raised_by: raisedByPB,\n        eventCategory: 'User Engagement',\n        eventAction: 'Click CTA',\n        eventLabel: `Page Builder - ${nameComponent} - ${ctaName}`,\n        component_name: nameComponent,\n        action_type: 'web component click',\n        cta_name: ctaName\n    }\n    window.gtmDataObject.push(eventData)\n    emitCustomEvent('page_builder_component_interaction', eventData)\n}\n\nexport const componentInteraction = (component_name, action_type, cta_name) => {\n    const event = 'page_builder_component_interaction'\n    const eventData = {\n        event,\n        event_raised_by: raisedByPB,\n        component_name: component_name,\n        action_type: action_type,\n        cta_name: cta_name\n    }\n\n    window.gtmDataObject ??= []\n    window.gtmDataObject.push(eventData)\n    emitCustomEvent(event, eventData)\n}\n\nexport const getProductInfo = async (sku, data) => {\n    let product = data\n    if (!product) {\n        product = await getProduct(sku)\n    }\n    return product\n}\n\nexport const getProductPayload = (data, actionField = {}) => {\n    const {\n        internationalName,\n        internationalId,\n        category,\n        unitPrice,\n        legacyId,\n        name,\n        technologies,\n        bundled,\n        inStock,\n        type\n    } = data\n\n    const technology = technologies.map(item => item.split('/').pop()).join('|')\n    const isDiscovery = category.toLowerCase().includes('discovery')\n\n    return [\n        // Array consists of one product details for PDP Product Detail View\n        {\n            ...actionField,\n            name: internationalName, // '[[International Product Name]]' NIE, Contract\n            id: internationalId, // '[[International Product ID]]'\n            price: unitPrice, // '[[Product Price]'\n            // dimension43: '[[true/false]]', // '[[true/false]]' // Signifies if this product is part of a standing order or not\n            dimension44: isDiscovery.toString(), // '[[true/false]]', // Signifies if this product is part of a discovery offer\n            dimension53: legacyId, // '[[Product Local market ID]]', // Local market id for product\n            dimension54: name, // '[[Product Local market Name]]', // Local market name for product\n            dimension55: category, // '[[Product Range]]', // Range of the product, eg: Barista Creations for Ice (Nessoft Category)\n            dimension56: technology, // '[[Product Technology]]', //Product technology according to Nespresso categorization (original, vertuo, pro)\n            dimension57: bundled ? 'bundle' : 'single', // '[[Product Type]]', //If the product is single or bundle\n            dimension192: inStock ? 'in stock' : 'out of stock', // '[in stock]', // \"in stock\" or \"out of stock\"\n            category: type, // '[[Product Category]]', //Product category according to Nespresso categorization (Nessoft type): capsule, accessory, machine\n            brand: 'Nespresso' // Static value set to Nespresso\n        }\n    ]\n}\n\nexport const trackDetailView = async (sku, data) => {\n    // https://dsu-confluence.nestle.biz/display/DIANA/HQ+PB+Tracking+-+Product+Detail+View\n    if (window.pbTrackDetailViewPDP || !sku || !window.napi) {\n        return\n    }\n\n    const productInfo = await getProductInfo(sku, data)\n    const productPayload = getProductPayload(productInfo)\n    const currency = productInfo.currency\n\n    window.gtmDataObject = window.gtmDataObject || []\n    const eventData = {\n        event: 'detailView',\n        currencyCode: currency,\n        eventRaisedBy: raisedByPB,\n        ecommerce: {\n            detail: {\n                actionField: {},\n                products: productPayload\n            }\n        }\n    }\n    window.gtmDataObject.push(eventData)\n    // Track only once per page\n    window.pbTrackDetailViewPDP = true\n    emitCustomEvent('detailView', eventData)\n}\n\nexport const trackAddToCartImpression = (product, isStickyBar) => {\n    // https://dsu-confluence.nestle.biz/pages/viewpage.action?spaceKey=DIANA&title=PDP+-+Sticky+Add+To+Cart+Custom+Event\n\n    window.gtmDataObject = window.gtmDataObject || []\n    const eventData = {\n        event: 'page_builder_component_interaction',\n        event_raised_by: raisedByPB,\n        component_name: 'before_sku_main_info',\n        action_type: isStickyBar\n            ? 'sticky add to cart impression'\n            : 'standard add to cart impression',\n        //product info\n        item_id_event: product.internationalId,\n        item_name_event: product.internationalName,\n        item_category_event: product.type,\n        item_price_event: product.price_per_capsule?.split(' ')[0],\n        item_market_id_event: product.legacyId,\n        item_market_name_event: product.name,\n        item_range_event: product.category_name,\n        item_technology_event:\n            product.technology?.[0]?.split('/').slice(-1) ?? '',\n        item_type_event: product.bundled ? 'bundle' : 'single'\n    }\n    window.gtmDataObject.push(eventData)\n    emitCustomEvent('page_builder_component_interaction', eventData)\n}\n\nexport const productImpression = async (position, list, sku, data) => {\n    // https://dsu-confluence.nestle.biz/pages/viewpage.action?pageId=225612781\n    // don't track already tracked products\n    window.gtmDataObject = window.gtmDataObject || []\n    const hasDetailView = window.gtmDataObject.find(\n        item => item.event === 'detailView'\n    )\n    const alreadyTracked = !!hasDetailView?.ecommerce?.detail?.products.find(\n        p => sku.includes(p.id)\n    )\n    if (alreadyTracked) {\n        return\n    }\n\n    const productInfo = await getProductInfo(sku, data)\n    const productPayload = getProductPayload(productInfo, {\n        list: list,\n        position: position\n    })\n    const currency = productInfo.currency\n    const eventData = {\n        event: 'impression',\n        eventAction: 'Product Impression',\n        currencyCode: currency,\n        eventRaisedBy: raisedByPB,\n        ecommerce: {\n            impressions: productPayload\n        }\n    }\n    window.gtmDataObject.push(eventData)\n    emitCustomEvent('impression', eventData)\n}\n\nexport const productClick = async (position, list, sku, data) => {\n    // https://dsu-confluence.nestle.biz/pages/viewpage.action?pageId=225612781\n\n    if (typeof list !== 'string') return\n\n    const productInfo = await getProductInfo(sku, data)\n    const productPayload = getProductPayload(productInfo, {\n        position: position\n    })\n    const currency = productInfo.currency\n\n    window.gtmDataObject = window.gtmDataObject || []\n    const eventData = {\n        event: 'productClick',\n        eventAction: 'Product Click',\n        currencyCode: currency,\n        eventRaisedBy: raisedByPB,\n        ecommerce: {\n            click: {\n                actionField: {\n                    list: list\n                },\n                products: productPayload\n            }\n        }\n    }\n    window.gtmDataObject.push(eventData)\n    emitCustomEvent('productClick', eventData)\n}\n\nexport function filterTrackingFromPlpFilters(filtersSelected) {\n    const grouped = groupSelectedFilters(filtersSelected)\n    const groupKeys = Object.keys(grouped)\n    const typesFiltersSelected = groupKeys.join('|').substring(0, 99)\n    const valuesFiltersSelected = groupKeys\n        .map(key => grouped[key].values.join(','))\n        .join('|')\n        .substring(0, 99)\n\n    return [typesFiltersSelected, valuesFiltersSelected]\n}\n\nexport const filterActionEvent = (\n    actionType,\n    filterType,\n    filterValues,\n    clickLocation,\n    dataType\n) => {\n    // https://dsu-confluence.nestle.biz/display/DIANA/PLP+-+Filter+Revamp\n    window.gtmDataObject = window.gtmDataObject || []\n    const eventData = getExplicitFilterEventData(\n        actionType,\n        filterType,\n        filterValues,\n        clickLocation\n    )\n\n    window.gtmDataObject.push(eventData)\n    if (window.NEXT_V1_PLP_EXPLICIT_FILTER_TRACKING && dataType) {\n        window.gtmDataObject.push({\n            ...window.NEXT_V1_PLP_EXPLICIT_FILTER_TRACKING,\n            experiment_action: `${actionType} - ${dataType}`,\n            cta_name: 'All filters'\n        })\n    }\n\n    emitCustomEvent('plp_filter', eventData)\n}\n\nconst getExplicitFilterEventData = (\n    actionType,\n    filterType,\n    filterValues,\n    clickLocation\n) => {\n    return {\n        event: 'plp_filter',\n        event_raised_by: raisedByPB,\n        action_type: actionType,\n        filter_type: filterType,\n        ...(filterValues ? { filter_values: filterValues } : {}),\n        ...(clickLocation ? { click_location: clickLocation } : {})\n    }\n}\n\nfunction groupSelectedFilters(filtersSelected = []) {\n    return filtersSelected.reduce((grouped, { key, value }) => {\n        if (!grouped[key]) grouped[key] = { key, values: [] }\n        grouped[key].values.push(value.replaceAll(',', '-'))\n        return grouped\n    }, {})\n}\n\nexport const isGtmTrackingExists = trackingData => {\n    window.gtmDataObject = window.gtmDataObject || []\n\n    return window?.gtmDataObject.some(\n        event =>\n            event.event === trackingData.event &&\n            event.ecommerce?.creative_slot === trackingData.campaign.position &&\n            event.ecommerce?.promotion_id === trackingData.campaign.id &&\n            event.ecommerce?.promotion_name === trackingData.campaign.name &&\n            event.ecommerce?.creative_name === trackingData.campaign.creative\n    )\n}\n","function a(n) {\n  return n && n.__esModule && Object.prototype.hasOwnProperty.call(n, \"default\") ? n.default : n;\n}\nvar f = { exports: {} };\n/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n(function(n) {\n  (function() {\n    var i = {}.hasOwnProperty;\n    function s() {\n      for (var t = \"\", r = 0; r < arguments.length; r++) {\n        var e = arguments[r];\n        e && (t = o(t, u(e)));\n      }\n      return t;\n    }\n    function u(t) {\n      if (typeof t == \"string\" || typeof t == \"number\")\n        return t;\n      if (typeof t != \"object\")\n        return \"\";\n      if (Array.isArray(t))\n        return s.apply(null, t);\n      if (t.toString !== Object.prototype.toString && !t.toString.toString().includes(\"[native code]\"))\n        return t.toString();\n      var r = \"\";\n      for (var e in t)\n        i.call(t, e) && t[e] && (r = o(r, e));\n      return r;\n    }\n    function o(t, r) {\n      return r ? t ? t + \" \" + r : t + r : t;\n    }\n    n.exports ? (s.default = s, n.exports = s) : window.classNames = s;\n  })();\n})(f);\nvar c = f.exports;\nconst p = /* @__PURE__ */ a(c);\nexport {\n  p as c,\n  a as g\n};\n//# sourceMappingURL=index.bddf5ebb.js.map\n","import { useRef as s, useImperativeHandle as f } from \"react\";\nconst c = (n, o) => {\n  const r = {};\n  for (const e of o)\n    r[e] = s(null);\n  return f(n, () => {\n    const e = {};\n    for (const t of o)\n      e[t] = r[t].current;\n    return e;\n  }), r;\n};\nexport {\n  c as m\n};\n//# sourceMappingURL=make-refs.cb0b9b76.js.map\n","import \"../assets/index12.css\";\nimport { jsx as n } from \"react/jsx-runtime\";\nimport { forwardRef as f } from \"react\";\nimport { c as u } from \"./index.bddf5ebb.js\";\nimport { m as d } from \"./make-refs.cb0b9b76.js\";\nfunction _(s) {\n  return !Number.isNaN(s) && !Number.isNaN(Number.parseFloat(s));\n}\nconst z = \"_mask_pcelr_87\", c = {\n  mask: z,\n  \"size-16\": \"_size-16_pcelr_100\",\n  \"size-32\": \"_size-32_pcelr_106\"\n}, N = \"/shared_res/agility/next-components/assets/icons\", k = 24, I = f(\n  ({ className: s, icon: e, method: l = \"mask\", style: a, ...r }, p) => {\n    const { $el: t } = d(p, [\"$el\"]), [i] = e.split(\"/\"), o = _(i) ? Number(i) : k, m = `${N}/${e}.svg`;\n    return l === \"mask\" ? /* @__PURE__ */ n(\n      \"span\",\n      {\n        \"aria-hidden\": \"true\",\n        className: u(c.mask, c[`size-${o}`], s),\n        \"data-icon\": e,\n        ref: t,\n        style: {\n          maskImage: `url(${m})`,\n          ...a\n        },\n        ...r\n      }\n    ) : (\n      // biome-ignore lint/a11y/useAltText: ok\n      /* @__PURE__ */ n(\n        \"img\",\n        {\n          alt: `Icon: ${e}`,\n          \"aria-hidden\": \"true\",\n          className: s,\n          \"data-icon\": e,\n          height: o,\n          loading: \"lazy\",\n          ref: t,\n          src: m,\n          style: a,\n          ...r\n        }\n      )\n    );\n  }\n);\nexport {\n  I,\n  _ as i\n};\n//# sourceMappingURL=index.7e655f23.js.map\n","import \"../assets/common8.css\";\nimport { c } from \"./index.bddf5ebb.js\";\nconst i = \"_button_1qujt_87\", d = \"_primary_1qujt_120\", r = \"_secondary_1qujt_134\", e = \"_dark_1qujt_148\", g = \"_outline_1qujt_163\", m = \"_ghost_1qujt_178\", j = \"_leading_1qujt_191\", q = \"_large_1qujt_195\", p = \"_medium_1qujt_204\", y = \"_small_1qujt_213\", b = \"_loading_1qujt_227\", h = \"_loadingIcon_1qujt_228\", k = \"_spin_1qujt_1\", t = {\n  button: i,\n  primary: d,\n  secondary: r,\n  dark: e,\n  outline: g,\n  ghost: m,\n  leading: j,\n  large: q,\n  medium: p,\n  small: y,\n  loading: b,\n  loadingIcon: h,\n  spin: k\n}, x = ({\n  className: a,\n  contrast: n,\n  icon: l,\n  iconPosition: _,\n  isLoading: u,\n  size: o,\n  variant: s\n}) => c(t.button, a, {\n  [t.loading]: u,\n  [t[n]]: !!n && n !== \"light\",\n  [t[_]]: !!l && _ !== \"trailing\",\n  [t[o]]: !!o,\n  [t[s]]: !!s\n});\nexport {\n  x as c,\n  t as s\n};\n//# sourceMappingURL=common.162593b8.js.map\n","import { jsxs as N, Fragment as j, jsx as t } from \"react/jsx-runtime\";\nimport { I as n } from \"../chunks/index.7e655f23.js\";\nimport { m as R } from \"../chunks/make-refs.cb0b9b76.js\";\nimport { forwardRef as $, useState as k, useEffect as w } from \"react\";\nimport { c as C, s as E } from \"../chunks/common.162593b8.js\";\nconst z = $(\n  ({\n    a11yLabel: l,\n    a11yTitle: m,\n    className: c,\n    contrast: i = \"light\",\n    disabled: f,\n    icon: e,\n    iconPosition: d = \"trailing\",\n    isDecorative: p = !1,\n    isLoading: o = !1,\n    label: u,\n    size: b = \"large\",\n    variant: g = \"primary\",\n    ...h\n  }, y) => {\n    const [s, x] = k(o), { $el: B } = R(y, [\"$el\"]);\n    w(() => {\n      x(o);\n    }, [o]);\n    const I = C({\n      className: c,\n      contrast: i,\n      icon: e,\n      iconPosition: d,\n      isLoading: s,\n      size: b,\n      variant: g\n    }), a = {\n      \"aria-label\": l,\n      className: I,\n      title: m,\n      ref: B,\n      ...h\n    }, r = s ? /* @__PURE__ */ t(n, { icon: \"24/symbol/status-loading\", className: E.loadingIcon }) : /* @__PURE__ */ N(j, { children: [\n      u,\n      e && /* @__PURE__ */ t(n, { icon: e })\n    ] });\n    return p ? /* @__PURE__ */ t(\"span\", { ...a, children: r }) : a.href ? /* @__PURE__ */ t(\"a\", { ...a, children: r }) : /* @__PURE__ */ t(\n      \"button\",\n      {\n        type: \"button\",\n        ...a,\n        \"aria-busy\": s,\n        disabled: s || f,\n        children: r\n      }\n    );\n  }\n);\nexport {\n  z as Button\n};\n//# sourceMappingURL=Button.js.map\n","import \"../assets/common9.css\";\nimport { c as l } from \"./index.bddf5ebb.js\";\nconst n = \"_buttonIcon_l7hrq_87\", _ = \"_black_l7hrq_130\", a = \"_ghost_l7hrq_139\", r = \"_small_l7hrq_147\", t = {\n  buttonIcon: n,\n  black: _,\n  ghost: a,\n  small: r\n}, m = ({\n  className: c,\n  size: o,\n  variant: s\n}) => l(t.buttonIcon, c, {\n  [t[o]]: o !== \"large\",\n  [t[s]]: s !== \"default\"\n});\nexport {\n  m as c\n};\n//# sourceMappingURL=common.bbb66fe1.js.map\n","import { jsx as o } from \"react/jsx-runtime\";\nimport { I as d } from \"../chunks/index.7e655f23.js\";\nimport { m as I } from \"../chunks/make-refs.cb0b9b76.js\";\nimport { forwardRef as b } from \"react\";\nimport { c as h } from \"../chunks/common.bbb66fe1.js\";\nconst j = b(\n  ({\n    a11yLabel: s,\n    a11yTitle: e,\n    className: n,\n    icon: a,\n    isDecorative: m = !1,\n    size: c = \"large\",\n    variant: l = \"default\",\n    ...f\n  }, i) => {\n    const { $el: p } = I(i, [\"$el\"]), u = h({\n      className: n,\n      size: c,\n      variant: l\n    }), t = {\n      \"aria-label\": s,\n      className: u,\n      title: e,\n      ref: p,\n      ...f\n    }, r = /* @__PURE__ */ o(d, { icon: a });\n    return m ? /* @__PURE__ */ o(\"span\", { ...t, children: r }) : /* @__PURE__ */ o(\"button\", { ...t, children: r });\n  }\n);\nexport {\n  j as ButtonIcon\n};\n//# sourceMappingURL=ButtonIcon.js.map\n","import \"../assets/common4.css\";\nimport { c as n } from \"./index.bddf5ebb.js\";\nconst b = \"_modal_9qzfo_95\", _ = \"_dismiss_9qzfo_138\", u = \"_header_9qzfo_148\", m = \"_heading_9qzfo_184\", f = \"_description_9qzfo_195\", x = \"_body_9qzfo_199\", h = \"_content_9qzfo_206\", g = \"_footer_9qzfo_222\", p = \"_column_9qzfo_227\", q = \"_side_9qzfo_240\", z = \"_small_9qzfo_265\", v = \"_large_9qzfo_271\", y = \"_fixedFooter_9qzfo_276\", o = {\n  modal: b,\n  dismiss: _,\n  header: u,\n  heading: m,\n  description: f,\n  body: x,\n  content: h,\n  footer: g,\n  column: p,\n  side: q,\n  small: z,\n  large: v,\n  fixedFooter: y\n}, W = ({\n  className: t,\n  fixedFooter: d,\n  size: e,\n  position: s\n}) => n([o.modal, t], {\n  [o.fixedFooter]: !!d,\n  [o[e] || \"\"]: e !== \"medium\",\n  [o[s] || \"\"]: s !== \"center\"\n}), B = ({ bodyClassName: t }) => n(o.body, t), R = ({\n  contentClassName: t\n}) => n(o.content, t), N = ({\n  dismissClassName: t\n}) => n(o.dismiss, t), S = ({ isColumnMode: t }) => n(o.footer, {\n  [o.column]: !!t\n}), k = (t) => {\n  if (window.innerWidth >= 768 && t) {\n    const d = t.getBoundingClientRect(), e = Array.from(t.children), s = Number.parseFloat(window.getComputedStyle(t).gap || \"0\"), i = e.reduce((r, c) => {\n      const l = c.getBoundingClientRect();\n      return r + l.width;\n    }, 0), a = d.width - 2 * Number.parseFloat(window.getComputedStyle(t).paddingInline);\n    return i + (e.length - 1) * s > a;\n  }\n  return !1;\n}, G = `\n  a[href]:not([tabindex=\"-1\"]),\n  area[href]:not([tabindex=\"-1\"]),\n  input:not([disabled]):not([tabindex=\"-1\"]),\n  select:not([disabled]):not([tabindex=\"-1\"]),\n  textarea:not([disabled]):not([tabindex=\"-1\"]),\n  button:not([disabled]):not([tabindex=\"-1\"]),\n  iframe:not([tabindex=\"-1\"]),\n  object:not([tabindex=\"-1\"]),\n  embed:not([tabindex=\"-1\"]),\n  [contenteditable]:not([contenteditable=\"false\"]),\n  [tabindex]:not([tabindex=\"-1\"]),\n  audio[controls]:not([tabindex=\"-1\"]),\n  video[controls]:not([tabindex=\"-1\"]),\n  summary:not([tabindex=\"-1\"]),\n  svg[focusable=\"true\"]:not([tabindex=\"-1\"]),\n  div[role=\"button\"]:not([tabindex=\"-1\"]),\n  div[role=\"checkbox\"]:not([tabindex=\"-1\"]),\n  div[role=\"link\"]:not([tabindex=\"-1\"]),\n  div[role=\"menuitem\"]:not([tabindex=\"-1\"]),\n  div[role=\"option\"]:not([tabindex=\"-1\"]),\n  div[role=\"radio\"]:not([tabindex=\"-1\"]),\n  div[role=\"switch\"]:not([tabindex=\"-1\"]),\n  div[role=\"tab\"]:not([tabindex=\"-1\"])\n`;\nexport {\n  R as a,\n  B as b,\n  W as c,\n  N as d,\n  k as e,\n  S as f,\n  G as g,\n  o as s\n};\n//# sourceMappingURL=common.a982a157.js.map\n","import { jsxs as h, jsx as n, Fragment as le } from \"react/jsx-runtime\";\nimport { m as de } from \"../chunks/make-refs.cb0b9b76.js\";\nimport { forwardRef as ie, useRef as j, useState as A, useEffect as N } from \"react\";\nimport { ButtonIcon as me } from \"./ButtonIcon.js\";\nimport { c as ue, f as fe, b as he, a as we, d as ye, s as w, e as ve, g as O } from \"../chunks/common.a982a157.js\";\nconst ke = ie(\n  ({\n    bodyClassName: V,\n    contentClassName: W,\n    children: M,\n    className: G,\n    closeBtnA11yLabel: H,\n    closeBtnA11yTitle: J,\n    contentSlot: y,\n    description: r,\n    dismissClassName: P,\n    fixedFooter: v,\n    footerSlot: m,\n    heading: E,\n    headingElement: Q = \"h5\",\n    id: a,\n    isMediaModal: c = !1,\n    isOpen: b = !1,\n    onClose: C,\n    position: S = \"center\",\n    size: U = \"medium\",\n    ...X\n  }, Y) => {\n    const { $el: s, dismissBtn: Z } = de(Y, [\"$el\", \"dismissBtn\"]), I = j(!1), u = j(null), [_, ee] = A(!1), [o, x] = A(b);\n    N(() => {\n      x(b);\n    }, [b]);\n    const B = () => {\n      window.innerWidth >= 768 && u.current && s.current && ee(ve(u.current));\n    };\n    N(() => {\n      B();\n      const t = () => B(), z = (e) => {\n        o && e.target instanceof Node && s.current && !s.current.contains(e.target) && L(!1);\n      }, F = (e) => {\n        o && e.key === \"Escape\" && (e.preventDefault(), L(!1), $());\n      }, q = (e) => Array.from(\n        e.querySelectorAll(O)\n      ), D = (e) => {\n        var l, d;\n        if (e.key === \"Tab\") {\n          const g = document.activeElement;\n          if (g.closest(\"video, iframe\") !== null)\n            return;\n          e.preventDefault();\n          const i = q(s.current), f = i.indexOf(g);\n          if (e.shiftKey) {\n            const k = f > 0 ? f - 1 : i.length - 1;\n            (l = i[k]) == null || l.focus();\n          } else {\n            const k = f < i.length - 1 ? f + 1 : 0;\n            (d = i[k]) == null || d.focus();\n          }\n        }\n      }, K = (e) => {\n        var d;\n        const l = e.relatedTarget;\n        l && !s.current.contains(l) && ((d = q(s.current)[0]) == null || d.focus());\n      };\n      return window.addEventListener(\"resize\", t), o && (window.addEventListener(\"mousedown\", z), window.addEventListener(\"focusout\", K), window.addEventListener(\"keydown\", F), window.addEventListener(\"keydown\", D)), () => {\n        window.removeEventListener(\"resize\", t), window.removeEventListener(\"mousedown\", z), window.removeEventListener(\"focusout\", K), window.removeEventListener(\"keydown\", F), window.removeEventListener(\"keydown\", D);\n      };\n    }, [o, s, u]);\n    const L = (t) => {\n      x(t);\n    }, $ = () => {\n      const t = document.body.querySelector(\n        `[aria-controls=\"${a}\"]`\n      );\n      t == null || t.focus();\n    }, se = () => {\n      const t = s.current.querySelector(\n        O\n      );\n      t && setTimeout(() => {\n        t.focus();\n      }, 50);\n    };\n    N(() => (s.current && (o ? (s.current.show(), document.body.classList.add(\"nds-has-modal\"), se()) : I.current && (s.current.close(), document.body.classList.remove(\"nds-has-modal\"), C == null || C(), $())), I.current = !0, () => {\n      document.body.classList.remove(\"nds-has-modal\");\n    }), [o]);\n    const p = () => /* @__PURE__ */ n(\"div\", { className: ce, children: /* @__PURE__ */ n(\n      me,\n      {\n        ref: Z,\n        icon: \"24/symbol/close\",\n        size: \"small\",\n        a11yLabel: H,\n        a11yTitle: J,\n        onClick: () => L(!1)\n      }\n    ) }), R = () => /* @__PURE__ */ n(\"footer\", { className: oe, ref: u, children: m }), T = () => /* @__PURE__ */ h(le, { children: [\n      (r || y) && /* @__PURE__ */ h(\"div\", { className: ae, children: [\n        r && /* @__PURE__ */ n(\"p\", { id: `${a}-description`, className: w.description, children: r }),\n        y\n      ] }),\n      (!c || !v) && m && /* @__PURE__ */ n(R, {})\n    ] }), ne = r || y || m, te = ue({ className: G, fixedFooter: v, size: U, position: S }), oe = fe({ isColumnMode: _ }), ae = he({ bodyClassName: V }), re = we({ contentClassName: W }), ce = ye({ dismissClassName: P });\n    return /* @__PURE__ */ h(\n      \"dialog\",\n      {\n        className: te,\n        open: o,\n        ...o && { \"aria-modal\": !0 },\n        id: a,\n        tabIndex: -1,\n        ref: s,\n        \"aria-labelledby\": E && `${a}-heading`,\n        \"aria-describedby\": r && `${a}-description`,\n        ...X,\n        children: [\n          c && /* @__PURE__ */ n(p, {}),\n          M,\n          E ? /* @__PURE__ */ h(\"header\", { className: w.header, children: [\n            /* @__PURE__ */ n(Q, { id: `${a}-heading`, className: w.heading, children: E }),\n            !c && /* @__PURE__ */ n(p, {})\n          ] }) : !c && /* @__PURE__ */ n(\"header\", { className: w.header, children: /* @__PURE__ */ n(p, {}) }),\n          ne ? /* @__PURE__ */ n(\"div\", { className: re, children: T() }) : T(),\n          c && v && m && /* @__PURE__ */ n(R, {})\n        ]\n      }\n    );\n  }\n);\nexport {\n  ke as Modal\n};\n//# sourceMappingURL=Modal.js.map\n","import \"../assets/common3.css\";\nimport { c } from \"./index.bddf5ebb.js\";\nconst _ = \"_modal_bm4c2_87\", t = \"_visual_bm4c2_91\", a = \"_image_bm4c2_98\", i = \"_isPlaying_bm4c2_104\", e = \"_playButton_bm4c2_108\", l = \"_iconWrapper_bm4c2_126\", m = \"_video_bm4c2_163\", r = \"_header_bm4c2_179\", b = \"_content_bm4c2_184\", d = \"_body_bm4c2_189\", y = \"_footer_bm4c2_194\", u = \"_visualOnly_bm4c2_198\", v = \"_dismiss_bm4c2_219\", s = {\n  modal: _,\n  visual: t,\n  image: a,\n  isPlaying: i,\n  playButton: e,\n  iconWrapper: l,\n  video: m,\n  header: r,\n  content: b,\n  body: d,\n  footer: y,\n  visualOnly: u,\n  dismiss: v\n}, f = ({\n  className: o,\n  isVisualOnly: n\n}) => c([\n  s.modal,\n  o,\n  {\n    [s.visualOnly || \"\"]: !!n\n  }\n]), O = ({ isPlaying: o }) => c([\n  s.visual,\n  {\n    [s.isPlaying || \"\"]: !!o\n  }\n]);\nexport {\n  f as c,\n  s,\n  O as v\n};\n//# sourceMappingURL=common.6cfc76a4.js.map\n","import { jsx as e, jsxs as v, Fragment as x } from \"react/jsx-runtime\";\nimport { I as q } from \"../chunks/index.7e655f23.js\";\nimport { Modal as D } from \"./Modal.js\";\nimport { m as G } from \"../chunks/make-refs.cb0b9b76.js\";\nimport { forwardRef as J, useState as g, useEffect as K, isValidElement as L } from \"react\";\nimport { c as P, v as Q, s } from \"../chunks/common.6cfc76a4.js\";\nconst S = J(\n  ({\n    className: N,\n    heroAspectRatio: C,\n    heroImgAlt: $,\n    heroImgHeight: M,\n    heroImgRetinaSrc: f,\n    heroImgSrc: l,\n    heroImgWidth: R,\n    heroSlot: c,\n    heroVideoIframeA11yTitle: A,\n    heroVideoIframeAllowSettings: w,\n    heroVideoPlayBtnA11yLabel: B,\n    heroVideoPlayBtnA11yTitle: I,\n    heroVideoSrc: a,\n    ...d\n  }, k) => {\n    const { modalRef: F, $videoRef: t, $videoIframeRef: n, $playBtn: m } = G(\n      k,\n      [\"modalRef\", \"$videoRef\", \"$videoIframeRef\", \"$playBtn\"]\n    ), p = l || c, [j, b] = g(!1), [u, y] = g(null), z = p && !d.heading && !d.description, E = () => {\n      var i, r;\n      (t.current || n.current) && ((i = t.current) != null && i.paused && (t.current.play(), t.current.removeAttribute(\"tabindex\"), t.current.focus()), a && n.current && u === null && (y(a), n.current.removeAttribute(\"tabindex\")), (r = m.current) == null || r.setAttribute(\"tabindex\", \"-1\"), b((o) => !o));\n    }, H = a && /\\.(mp4|webm|ogg)$/i.test(a), O = (i) => i.split(\".\").pop(), T = () => c && L(c) ? c : /* @__PURE__ */ e(x, { children: a && /* @__PURE__ */ v(x, { children: [\n      /* @__PURE__ */ e(\n        \"button\",\n        {\n          \"aria-label\": B,\n          className: s.playButton,\n          onClick: E,\n          ref: m,\n          title: I,\n          type: \"button\",\n          children: /* @__PURE__ */ e(\"span\", { className: s.iconWrapper, children: /* @__PURE__ */ e(q, { icon: \"24/symbol/play-solid\" }) })\n        }\n      ),\n      H ? (\n        // biome-ignore lint/a11y/useMediaCaption: ok\n        /* @__PURE__ */ e(\n          \"video\",\n          {\n            className: s.video,\n            controls: !0,\n            \"data-testid\": \"media-video\",\n            poster: l,\n            ref: t,\n            tabIndex: -1,\n            children: /* @__PURE__ */ e(\n              \"source\",\n              {\n                src: a,\n                type: `video/${O(a)}`\n              }\n            )\n          }\n        )\n      ) : /* @__PURE__ */ e(\n        \"iframe\",\n        {\n          ref: n,\n          className: s.video,\n          ...u !== null && { src: u },\n          allow: w,\n          title: A,\n          allowFullScreen: !0,\n          loading: \"lazy\",\n          \"data-testid\": \"media-iframe\",\n          tabIndex: -1\n        }\n      )\n    ] }) });\n    K(() => () => {\n      var i, r, o;\n      (i = t.current) == null || i.pause(), (r = t.current) == null || r.setAttribute(\"tabindex\", \"-1\"), n.current && (y(null), n.current.setAttribute(\"tabindex\", \"-1\")), (o = m.current) == null || o.removeAttribute(\"tabindex\"), b(!1);\n    }, [d.isOpen]);\n    const W = P({ className: N, isVisualOnly: z }), h = Q({ isPlaying: j });\n    return /* @__PURE__ */ e(\n      D,\n      {\n        className: W,\n        bodyClassName: s.body,\n        contentClassName: s.content,\n        dismissClassName: s.dismiss,\n        ref: F,\n        isMediaModal: !0,\n        ...d,\n        children: p && /* @__PURE__ */ v(\n          \"figure\",\n          {\n            className: h,\n            style: { \"--aspect-ratio\": C },\n            children: [\n              l && /* @__PURE__ */ e(\n                \"img\",\n                {\n                  className: s.image,\n                  src: l,\n                  ...f && { srcSet: `${f} 2x` },\n                  alt: $,\n                  height: M,\n                  width: R,\n                  loading: \"lazy\",\n                  decoding: \"async\",\n                  \"data-testid\": \"media-img\"\n                }\n              ),\n              T()\n            ]\n          }\n        )\n      }\n    );\n  }\n);\nexport {\n  S as MediaModal\n};\n//# sourceMappingURL=MediaModal.js.map\n","import ShopTheLook from '@components/media-text/components/shopTheLook/ShopTheLook'\nimport { selectPromotion } from '@content/helpers/src/gtmEvents'\nimport { Button } from '@nespresso-design-system/components'\nimport styles from './Content.module.scss'\nimport { ContentProps } from './types'\n\nexport default function Content({\n    text = '',\n    buttonPrimary = null,\n    buttonSecondary = null,\n    products = [],\n    campaign = {}\n}: ContentProps) {\n    return (\n        <>\n            {text && renderText(text)}\n            {buttonPrimary &&\n                buttonSecondary &&\n                renderButtons({\n                    primaryCTA: buttonPrimary,\n                    secondaryCTA: buttonSecondary,\n                    campaign: campaign\n                })}\n            {products.length > 0 && <ShopTheLook></ShopTheLook>}\n        </>\n    )\n}\n\nfunction renderText(text) {\n    if (!text) {\n        return null\n    }\n\n    const replacedText = text.replace(\n        /<li>([^<>]*)<\\/li>/g,\n        '<li><nb-icon icon=\"24/symbol/check\"></nb-icon>$1</li>'\n    )\n\n    return (\n        <>\n            <div>\n                <p\n                    className={`${styles['content']} t-sm-400`}\n                    dangerouslySetInnerHTML={{ __html: replacedText }}\n                />\n            </div>\n        </>\n    )\n}\n\nfunction renderButton(args, campaign, index) {\n    if (!args.label) {\n        return null\n    }\n\n    const handleClick = () => {\n        selectPromotion({\n            ...campaign,\n            cta_name: `LINK - ${index} - ${args.label}`\n        })\n    }\n\n    return (\n        <>\n            <Button onClick={handleClick} {...args} />\n        </>\n    )\n}\n\nfunction renderButtons({ primaryCTA, secondaryCTA, campaign }) {\n    return (\n        <>\n            <div className={styles['content-buttons']}>\n                <div>{renderButton(primaryCTA, campaign, 1)}</div>\n                <div>{renderButton(secondaryCTA, campaign, 2)}</div>\n            </div>\n        </>\n    )\n}\n","import styles from './Heading.module.scss'\nimport { HeadingProps } from './types'\nexport default function Heading({ title = null }: HeadingProps) {\n    if (!title) {\n        return null\n    }\n\n    return (\n        <>\n            <h3 className={styles.heading}>{title}</h3>\n        </>\n    )\n}\n","export const PauseIcon = ({ fillRect }: { fillRect: string }) => {\n    return (\n        <svg\n            xmlns=\"http://www.w3.org/2000/svg\"\n            width=\"24\"\n            height=\"24\"\n            viewBox=\"0 0 24 24\"\n            fill={fillRect}>\n            <title>Pause</title>\n            <path d=\"M5 2h5v20H5V2ZM14 2h5v20h-5V2Z\"></path>\n        </svg>\n    )\n}\n","export const PlayIcon = ({ fillRect }: { fillRect: string }) => {\n    return (\n        <svg\n            xmlns=\"http://www.w3.org/2000/svg\"\n            width=\"24\"\n            height=\"24\"\n            viewBox=\"0 0 24 24\"\n            fill={fillRect}>\n            <title>Play</title>\n            <path\n                fill-rule=\"evenodd\"\n                d=\"M4.5 1.5v21L21 12 4.5 1.5Z\"\n                clip-rule=\"evenodd\"></path>\n        </svg>\n    )\n}\n","import { useRef, useState, useEffect } from 'preact/hooks'\nimport { PauseIcon } from '../placeholder/icons/PauseIcon'\nimport { PlayIcon } from '../placeholder/icons/PlayIcon'\nimport { types as VideoTypes } from './types'\nimport styles from './Video.module.scss'\n\nexport default function Video({ url = null, auto_play = false }: VideoTypes) {\n    const reducedMotion = window.matchMedia(\n        '(prefers-reduced-motion: reduce)'\n    ).matches\n\n    const [isPlaying, setIsPlaying] = useState(auto_play && !reducedMotion)\n    const videoRef = useRef(null)\n\n    if (!url) {\n        return null\n    }\n\n    const togglePlayPause = () => {\n        const videoElement = videoRef.current\n\n        if (isPlaying) {\n            videoElement.pause()\n        } else {\n            videoElement.play()\n        }\n\n        setIsPlaying(!isPlaying)\n    }\n\n    useEffect(() => {\n        const videoElement = videoRef.current\n        if (reducedMotion) {\n            videoElement.pause()\n        }\n    }, [reducedMotion])\n\n    return (\n        <>\n            <div className={styles['video-container']}>\n                <video\n                    ref={videoRef}\n                    playsinline\n                    autoPlay={auto_play}\n                    muted\n                    loop>\n                    <source src={url} type=\"video/mp4\"></source>\n                </video>\n\n                <button\n                    id=\"autoplay-toggle\"\n                    className={styles['video-autoplay-button']}\n                    aria-pressed={isPlaying}\n                    onClick={togglePlayPause}>\n                    <span>\n                        {isPlaying ? (\n                            <PauseIcon fillRect=\"white\" />\n                        ) : (\n                            <PlayIcon fillRect=\"white\" />\n                        )}\n                    </span>\n                </button>\n            </div>\n        </>\n    )\n}\n","import stylesMediaText from '@components/media-text/MediaText.module.scss'\n\nimport Content from '@components/media-text/components/content/Content'\nimport Heading from '@components/media-text/components/heading/Heading'\nimport Video from '@components/media-text/components/video/Video'\nimport { usePbProps } from '@content/helpers/src/context'\n\nexport default function PlaceholderAutoPlayVideo() {\n    const { copywriting, campaign }: any = usePbProps()\n    const { autoPlayVideoDetails } = copywriting.type\n\n    return (\n        <>\n            <div className={stylesMediaText['media-text__placeholder']}>\n                {Video(autoPlayVideoDetails.video)}\n            </div>\n            <div className={stylesMediaText['media-text__content']}>\n                <div>\n                    <Heading title={autoPlayVideoDetails.heading} />\n                </div>\n                <div>\n                    <Content\n                        campaign={campaign}\n                        text={autoPlayVideoDetails.text}\n                        buttonPrimary={autoPlayVideoDetails.cta_primary}\n                        buttonSecondary={autoPlayVideoDetails.cta_secondary}\n                    />\n                </div>\n            </div>\n        </>\n    )\n}\n","import Image from '@commons/image/Image'\nimport { VisualProps } from '@commons/visual/types'\n\nexport default function Visual({\n    desktop = null,\n    alt_text = null\n}: VisualProps) {\n    if (!desktop) {\n        return null\n    }\n\n    return (\n        <>\n            <Image src={desktop} alt={alt_text} />\n        </>\n    )\n}\n","import stylesMediaText from '@components/media-text/MediaText.module.scss'\n\nimport Content from '@components/media-text/components/content/Content'\nimport Heading from '@components/media-text/components/heading/Heading'\nimport Visual from '@components/media-text/components/visual/Visual'\nimport { usePbProps } from '@content/helpers/src/context'\n\nexport default function PlaceholderDefault() {\n    const { copywriting, campaign }: any = usePbProps()\n    const { defaultDetails } = copywriting.type\n\n    return (\n        <>\n            <div className={stylesMediaText['media-text__placeholder']}>\n                <Visual {...defaultDetails.visual}></Visual>\n            </div>\n            <div className={stylesMediaText['media-text__content']}>\n                <div>\n                    <Heading title={defaultDetails.heading} />\n                </div>\n                <div>\n                    <Content\n                        campaign={campaign}\n                        text={defaultDetails.text}\n                        buttonPrimary={defaultDetails.cta_primary}\n                        buttonSecondary={defaultDetails.cta_secondary}\n                    />\n                </div>\n            </div>\n        </>\n    )\n}\n","import stylesMediaText from '@components/media-text/MediaText.module.scss'\nimport { usePbProps } from '@content/helpers/src/context'\nimport { useState } from 'preact/hooks'\nimport { PlayIcon } from '../../icons/PlayIcon'\nimport styles from './ModalVideo.module.scss'\n\nimport Content from '@components/media-text/components/content/Content'\nimport Heading from '@components/media-text/components/heading/Heading'\nimport Visual from '@components/media-text/components/visual/Visual'\nimport { selectPromotion } from '@content/helpers/src/gtmEvents'\nimport { makeId } from '@content/helpers/src/utils.ts'\nimport { MediaModal } from '@nespresso-design-system/components'\n\nexport default function PlaceholderModalVideo() {\n    const { copywriting, campaign }: any = usePbProps()\n    const { modalVideoDetails } = copywriting.type\n    const [isOpen, setIsOpen] = useState(false)\n\n    const openModal = () => {\n        selectPromotion({\n            cta_name: `VIDEO - 1 - Open Modal`,\n            ...campaign\n        })\n\n        setIsOpen(true)\n    }\n\n    const closeModal = () => {\n        setIsOpen(false)\n    }\n\n    const modalVideoId = `modal-${makeId(4)}`\n\n    return (\n        <>\n            <div className={stylesMediaText['media-text__placeholder']}>\n                <div\n                    className={`${stylesMediaText['modal-video']} ${styles['modal-video']}`}>\n                    <div className={styles['modal-video__placeholder']}>\n                        <button\n                            className={styles['play-icon']}\n                            onClick={openModal}>\n                            <PlayIcon fillRect=\"white\" />\n                            <span className=\"sr-only\">Play</span>\n                        </button>\n                    </div>\n\n                    <MediaModal\n                        {...modalVideoDetails.modal}\n                        id={modalVideoId}\n                        heroAspectRatio=\"16/9\"\n                        isOpen={isOpen}\n                        onClose={closeModal}\n                    />\n\n                    <Visual {...modalVideoDetails.visual}></Visual>\n                </div>\n            </div>\n            <div className={stylesMediaText['media-text__content']}>\n                <div>\n                    <Heading title={modalVideoDetails.heading} />\n                </div>\n                <div>\n                    <Content\n                        campaign={campaign}\n                        text={modalVideoDetails.text}\n                        buttonPrimary={modalVideoDetails.cta_primary}\n                        buttonSecondary={modalVideoDetails.cta_secondary}\n                    />\n                </div>\n            </div>\n        </>\n    )\n}\n","import stylesMediaText from '@components/media-text/MediaText.module.scss'\n\nimport Content from '@components/media-text/components/content/Content'\nimport { Product as ProductSku } from '@components/media-text/components/content/types'\nimport Heading from '@components/media-text/components/heading/Heading'\nimport Visual from '@components/media-text/components/visual/Visual'\nimport { usePbProps } from '@content/helpers/src/context'\nimport { useProducts } from '@content/helpers/src/contextProducts'\nimport { getProduct } from '@nespresso-catalog/sdk'\nimport { useEffect } from 'preact/hooks'\n\nexport default function PlaceholderShopTheLook() {\n    const { copywriting, campaign }: any = usePbProps()\n    const { shopTheLookDetails } = copywriting.type\n    const { setProducts } = useProducts()\n\n    async function getAllProducts(productIds: ProductSku[]) {\n        const productRequests = productIds.map(p => getProduct(p.sku))\n        const productData = await Promise.all(productRequests)\n        setProducts(productData)\n    }\n\n    useEffect(() => {\n        getAllProducts(shopTheLookDetails.products)\n    }, [shopTheLookDetails.products])\n\n    return (\n        <>\n            <div className={stylesMediaText['media-text__placeholder']}>\n                <Visual {...shopTheLookDetails.visual}></Visual>\n            </div>\n            <div className={stylesMediaText['media-text__content']}>\n                <div>\n                    <Heading title={shopTheLookDetails.heading} />\n                </div>\n                <div>\n                    <Content\n                        campaign={campaign}\n                        text={shopTheLookDetails.text}\n                        buttonPrimary={shopTheLookDetails.cta_primary}\n                        buttonSecondary={shopTheLookDetails.cta_secondary}\n                        products={shopTheLookDetails.products}\n                    />\n                </div>\n            </div>\n        </>\n    )\n}\n","import { CampaignProps, CopywritingShoppableImage } from '@commons/types'\nimport Content from '@components/media-text/components/content/Content'\nimport { Product as ProductSku } from '@components/media-text/components/content/types'\nimport Heading from '@components/media-text/components/heading/Heading'\nimport ShopTheLook from '@components/media-text/components/shopTheLook/ShopTheLook'\nimport Visual from '@components/media-text/components/visual/Visual'\nimport stylesMediaText from '@components/media-text/MediaText.module.scss'\nimport { usePbProps } from '@content/helpers/src/context'\nimport { useProducts } from '@content/helpers/src/contextProducts'\nimport { makeId } from '@content/helpers/src/utils.ts'\nimport {\n    getProduct,\n    ProductTypeDTO,\n    viewItemList\n} from '@nespresso-catalog/sdk'\nimport { Button, Modal } from '@nespresso-design-system/components'\nimport { useEffect, useState } from 'preact/hooks'\nimport styles from './ShoppableImage.module.scss'\n\nexport default function PlaceholderShoppableImage() {\n    const {\n        copywriting,\n        campaign\n    }: { copywriting: CopywritingShoppableImage; campaign: CampaignProps } =\n        usePbProps()\n\n    const { shoppableImageDetails } = copywriting.type\n    const [isOpen, setIsOpen] = useState(false)\n    const modalVideoId = `modal-${makeId(4)}`\n    const { setProducts } = useProducts()\n\n    const openModal = () => {\n        setIsOpen(true)\n\n        const SKUs = shoppableImageDetails.products.map(\n            (product: ProductSku) => product.sku\n        )\n\n        viewItemList(SKUs, {\n            listId: campaign.position,\n            listName: `${campaign.position} - ${copywriting.type.shoppableImageDetails.modal.heading}`,\n            eventRaisedBy: campaign.position\n        })\n    }\n\n    const closeModal = () => {\n        setIsOpen(false)\n    }\n\n    async function getAllProducts(productIds: ProductSku[]) {\n        const productRequests = productIds.map(p =>\n            getProduct<ProductTypeDTO.Capsule>(p.sku)\n        )\n        const productData = await Promise.all(productRequests)\n        setProducts(productData as any)\n    }\n\n    useEffect(() => {\n        getAllProducts(shoppableImageDetails.products)\n    }, [shoppableImageDetails.products])\n\n    return (\n        <>\n            <div className={stylesMediaText['media-text__placeholder']}>\n                <div\n                    className={`${stylesMediaText['placeholder-shoppable-image']} ${styles['placeholder-shoppable-image']}`}>\n                    <Visual {...shoppableImageDetails.visual}></Visual>\n\n                    <Modal\n                        {...shoppableImageDetails.modal}\n                        id={modalVideoId}\n                        position=\"side\"\n                        isOpen={isOpen}\n                        onClose={closeModal}\n                        // footerSlot={<Button {...shoppableImageDetails.modal.addAllToBasket} onClick={addAllToBasket} />}\n                        contentSlot={\n                            <ShopTheLook disableTracking={true}></ShopTheLook>\n                        }\n                    />\n\n                    <div className={styles['placeholder-shoppable-image__cta']}>\n                        <Button\n                            {...shoppableImageDetails.modal.cta_open_modal}\n                            onClick={openModal}\n                        />\n                    </div>\n                </div>\n            </div>\n            <div className={stylesMediaText['media-text__content']}>\n                <div>\n                    <Heading title={shoppableImageDetails.heading} />\n                </div>\n                <div>\n                    <Content\n                        campaign={campaign}\n                        text={shoppableImageDetails.text}\n                        buttonPrimary={shoppableImageDetails.cta_primary}\n                        buttonSecondary={shoppableImageDetails.cta_secondary}\n                    />\n                </div>\n            </div>\n        </>\n    )\n}\n","import PlaceholderAutoPlayVideo from './variants/autoPlayVideo/AutoPlayVideo'\nimport PlaceholderDefault from './variants/default/Default'\nimport PlaceholderModalVideo from './variants/modalVideo/ModalVideo'\nimport PlaceholderShopTheLook from './variants/shopTheLook/ShopTheLook'\nimport PlaceholderShoppableImage from './variants/shoppableImage/ShoppableImage'\n\nimport { usePbProps } from '@content/helpers/src/context'\n\nexport default function Placeholder() {\n    const { copywriting }: any = usePbProps()\n    const type = copywriting.type\n\n    if (type.is_AutoPlayVideo) {\n        return <PlaceholderAutoPlayVideo />\n    } else if (type.is_ModalVideo) {\n        return <PlaceholderModalVideo />\n    } else if (type.is_ShopTheLook) {\n        return <PlaceholderShopTheLook />\n    } else if (type.is_ShoppableImage) {\n        return <PlaceholderShoppableImage />\n    }\n\n    return <PlaceholderDefault />\n}\n","interface ViewportEventConfig {\n    once?: boolean\n    uniqueKey?: string | null\n}\n\ntype IntersectionObserverInit = {\n    root?: Element | null\n    rootMargin?: string\n    threshold?: number | number[]\n}\n\nconst triggeredEvents: Set<string> = new Set()\n\nexport function viewportEvent(\n    element: Element | null,\n    callback: () => void,\n    { once = false, uniqueKey = null }: ViewportEventConfig = {},\n    options: IntersectionObserverInit = { threshold: 0.5 }\n): IntersectionObserver | null {\n    if (!element) {\n        console.error('viewportEvent: Valid DOM element required.')\n        return null\n    }\n\n    if (once && uniqueKey && triggeredEvents.has(uniqueKey)) {\n        return null\n    }\n\n    const observer = new IntersectionObserver((entries, observerInstance) => {\n        entries.forEach(entry => {\n            if (entry.isIntersecting) {\n                if (once && uniqueKey) {\n                    triggeredEvents.add(uniqueKey)\n                }\n                callback()\n                observerInstance.disconnect()\n            }\n        })\n    }, options)\n\n    observer.observe(element)\n    return observer\n}\n","import { CampaignProps } from '@commons/types'\nimport { viewPromotion } from '@content/helpers/src/gtmEvents'\nimport { viewportEvent } from '@content/helpers/src/viewPortEvent'\nimport { useEffect, useRef } from 'preact/hooks'\n\nconst useImpressionTracker = (\n    containerRef,\n    campaign,\n    shouldExecute = true\n): {\n    containerRef: HTMLElement\n    campaign: CampaignProps\n    shouldExecute: boolean\n} => {\n    const hasTrackedRef = useRef(false)\n\n    useEffect(() => {\n        if (\n            !shouldExecute ||\n            hasTrackedRef.current ||\n            !containerRef.current ||\n            !campaign\n        ) {\n            return\n        }\n\n        const uniqueKey = `view_promotion_${Math.random().toString(36).substr(2, 9)}`\n\n        const observer = viewportEvent(\n            containerRef.current,\n            () => {\n                if (!hasTrackedRef.current) {\n                    viewPromotion({ ...campaign })\n                    hasTrackedRef.current = true\n                }\n            },\n            { once: true, uniqueKey }\n        )\n        return () => {\n            observer.disconnect()\n        }\n    }, [campaign])\n\n    return containerRef\n}\n\nexport default useImpressionTracker\n","import '@content/foundations/src/index'\nimport asWebComponent from '../../asWebComponent'\nimport MediaText from './MediaText'\n\nexport default asWebComponent(MediaText, 'nb-media-text', ['data'])\n","import type { FunctionComponent } from 'preact'\nimport register from 'preact-custom-element'\nimport type { Ref } from 'preact/hooks'\nimport { useEffect, useRef, useState } from 'preact/hooks'\n\n/**\n * Turns a Preact component into a Web Component,\n * allowing the component to be used in either context\n * @param func A (P)React function component\n * @param tagName The Web Component tag name, like 'my-component'\n * @param observedAttributes Array of element attributes to observe for changes\n * @param options Additional web component options\n * @returns The custom element\n */\nexport default function asWebComponent(\n    func: FunctionComponent<any>,\n    tagName: string,\n    observedAttributes?: string[],\n    options?: { shadow: boolean }\n) {\n    if (customElements.get(tagName)) {\n        return customElements.get(tagName)\n    }\n    register(func, tagName, observedAttributes, options)\n    return customElements.get(tagName)\n}\n\ninterface useCustomElementReturn {\n    immediateChildRef: Ref<any>\n    customElement: HTMLElement | null | undefined\n}\n\n/**\n * Allows access to the Web Component wrapper, from within the Preact Component\n */\nexport function useCustomElement(): useCustomElementReturn {\n    const ref = useRef<any>(null)\n    const [customElement, setCustomElement] = useState(undefined)\n    useEffect(() => {\n        setCustomElement(ref.current?.parentElement)\n    }, [ref])\n\n    return { immediateChildRef: ref, customElement }\n}\n","import { useRef } from 'preact/hooks'\n\nimport { getPBProps } from '@content/helpers/src/utils'\nimport Placeholder from '@components/media-text/components/placeholder/Placeholder'\nimport { PbPropsProvider } from '@content/helpers/src/context'\nimport { ProductsProvider } from '@content/helpers/src/contextProducts'\nimport { MediaTextPBProps } from './types'\nimport useImpressionTracker from '@content/helpers/src/hooks/useImpressionTracker'\nimport styles from './MediaText.module.scss'\n\ntype MediaTextProps = {\n    readonly data: string\n}\n\nconst MediaText = ({ data }: MediaTextProps) => {\n    const pbProps = getPBProps<MediaTextPBProps>(data)\n    const { campaign, layout } = pbProps\n    const layoutPadding = [layout.padding_top, layout.padding_bottom]\n    const containerRef = useRef(null)\n\n    useImpressionTracker(containerRef, campaign)\n\n    return (\n        <ProductsProvider>\n            <PbPropsProvider value={pbProps}>\n                <div\n                    ref={containerRef}\n                    className={`${styles['nb-media-text']} ${styles[`media-text--is-position-${layout.position}`]} ${[...layoutPadding].join(' ')}`}>\n                    <Placeholder />\n                </div>\n            </PbPropsProvider>\n        </ProductsProvider>\n    )\n}\n\nexport default MediaText\n"],"names":["r","Object","assign","bind","t","e","arguments","length","n","o","prototype","hasOwnProperty","call","apply","this","i","a","getChildContext","context","children","keys","indexOf","s","CustomEvent","detail","bubbles","cancelable","dispatchEvent","_vdom","_props","nodeType","data","attributes","l","childNodes","name","value","c","u","d","slot","p","h","nodeName","toLowerCase","_vdomComponent","hasAttribute","_root","replace","toUpperCase","ref","_listener","stopPropagation","addEventListener","removeEventListener","makeId","result","characters","charAt","Math","floor","random","removeEmptyValues","obj","key","undefined","DOMParser","stripTags","f","type","props","__k","__","__b","__e","__d","__c","constructor","__v","__i","__u","__source","__self","defaultProps","vnode","Image","src","alt","error","_jsx","Machine","Accessory","Capsule","Giftcard","Servicepackage","y","map","split","pop","trim","join","g","toString","async","window","napi","catalog","getProduct","w","Promise","all","_","event","event_raised_by","eventRaisedBy","subscription_product_included","discovery_offer_included","ecommerce","currency","config","padl","namespace","dataLayer","app","reduce","m","price","items","item_id","internationalId","item_name","internationalName","item_brand","item_category","item_category2","technologies","item_category3","category","quantity","salesMultiple","affiliation","coupon","discount","location_id","item_list_name","listName","item_list_id","listId","index","item_market_id","legacyId","item_market_name","item_technology","item_range","item_discovery_offer","includes","item_added_by_user","item_ecotax_applicable","displayEcoTax","item_selection_list","productSelections","item_in_stock","inStock","item_subscription_name","item_subscription_category","item_subscription_price","item_subscription_duration","item_subscription_fee","item_category4","bundled","item_type","item_coffee_aromatic_profile","capsuleProductAromatics","item_coffee_intensity","capsuleProperties","intensity","item_coffee_cup_size","capsuleCupSizes","item_machine_shade","colorShade","item_avg_rating","ratingCode","item_number_of_reviews","gtmDataObject","push","hasOwn","classNames","classes","arg","appendClass","parseValue","Array","isArray","newClass","module","exports","default","Price","formattedPrice","setFormattedPrice","useState","useEffect","formatted","priceFormat","short","formatPrice","console","log","className","styles","PbPropsContext","createContext","usePbProps","useContext","Error","PbPropsProvider","Provider","ProductsContext","ProductsProvider","products","setProducts","useProducts","E","C","isPureReactComponent","shouldComponentUpdate","state","R","__f","Symbol","for","k","$$typeof","render","isReactComponent","displayName","M","then","T","unmount","A","__H","forEach","__P","D","appendChild","L","O","__a","U","__R","__O","setState","forceUpdate","componentWillUnmount","document","createElement","fallback","V","delete","revealOrder","size","get","Map","reverse","set","componentDidUpdate","componentDidMount","z","B","H","Z","Y","$","test","defineProperty","configurable","writable","J","K","Q","cancelBubble","X","defaultPrevented","persist","isPropagationStopped","isDefaultPrevented","nativeEvent","tn","enumerable","class","en","multiple","selected","defaultValue","rn","__r","un","diffed","__esModule","Ee","id","at","productId","loadingLabel","P","j","getConfig","ui","configuration","buttonSize","ecommerceData","activated","De","onClick","Ue","disabled","__isAddToCard__","ShopTheLook","disableTracking","copywriting","campaign","SKUs","product","viewItemList","position","shopTheLookDetails","heading","renderProductComponents","images","headline","_jsxs","renderImage","icon","_Fragment","AddToCartButton","emitCustomEvent","eventName","customEvent","composed","raisedByPB","selectPromotion","args","eventData","cta_name","creative","promotion_id","promotion_name","creative_slot","creative_name","current","mask","I","method","style","$el","Number","isNaN","parseFloat","maskImage","height","loading","button","primary","secondary","dark","outline","ghost","leading","large","medium","small","loadingIcon","spin","a11yLabel","a11yTitle","contrast","iconPosition","isDecorative","isLoading","label","b","variant","x","title","N","href","buttonIcon","black","modal","dismiss","header","description","body","content","footer","column","side","fixedFooter","G","ke","ie","bodyClassName","contentClassName","W","closeBtnA11yLabel","closeBtnA11yTitle","contentSlot","dismissClassName","v","footerSlot","headingElement","isMediaModal","isOpen","onClose","S","dismissBtn","de","ee","innerWidth","getBoundingClientRect","from","getComputedStyle","gap","width","paddingInline","ve","target","Node","contains","F","preventDefault","q","querySelectorAll","activeElement","closest","shiftKey","focus","relatedTarget","querySelector","show","classList","add","setTimeout","se","close","remove","ce","me","oe","le","ae","ne","te","ue","isColumnMode","fe","he","re","we","ye","open","tabIndex","heroAspectRatio","heroImgAlt","heroImgHeight","heroImgRetinaSrc","heroImgSrc","heroImgWidth","heroSlot","heroVideoIframeA11yTitle","heroVideoIframeAllowSettings","heroVideoPlayBtnA11yLabel","heroVideoPlayBtnA11yTitle","heroVideoSrc","modalRef","$videoRef","$videoIframeRef","$playBtn","paused","play","removeAttribute","setAttribute","pause","isVisualOnly","isPlaying","srcSet","decoding","controls","poster","allow","allowFullScreen","Content","text","buttonPrimary","buttonSecondary","renderText","renderButtons","primaryCTA","secondaryCTA","replacedText","dangerouslySetInnerHTML","__html","renderButton","Button","handleClick","Heading","PauseIcon","fillRect","xmlns","viewBox","fill","PlayIcon","Video","url","auto_play","reducedMotion","matchMedia","matches","setIsPlaying","videoRef","useRef","videoElement","playsinline","autoPlay","muted","loop","togglePlayPause","PlaceholderAutoPlayVideo","autoPlayVideoDetails","stylesMediaText","video","cta_primary","cta_secondary","Visual","desktop","alt_text","PlaceholderDefault","defaultDetails","visual","PlaceholderModalVideo","modalVideoDetails","setIsOpen","modalVideoId","openModal","MediaModal","closeModal","PlaceholderShopTheLook","productIds","productRequests","sku","productData","getAllProducts","PlaceholderShoppableImage","shoppableImageDetails","Modal","cta_open_modal","Placeholder","is_AutoPlayVideo","is_ModalVideo","is_ShopTheLook","is_ShoppableImage","triggeredEvents","Set","useImpressionTracker","containerRef","shouldExecute","hasTrackedRef","uniqueKey","substr","observer","viewportEvent","element","callback","once","options","threshold","has","IntersectionObserver","entries","observerInstance","entry","isIntersecting","disconnect","observe","viewPromotion","asWebComponent","func","tagName","observedAttributes","customElements","Reflect","construct","HTMLElement","shadow","attachShadow","mode","create","connectedCallback","attributeChangedCallback","disconnectedCallback","propTypes","define","MediaText","pbProps","JSON","parse","getPBProps","layout","layoutPadding","padding_top","padding_bottom"],"mappings":"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","x_google_ignoreList":[0,2,6,10,11,12,16,17,18,19,20,21,22,23,24,25,26]}