PageSourceSearch

https://www.labello.com/dist/NiveaX/modules/ShopInitializer.1eb74f5b.js

js labello.com collected 2026-10-02 12:40:34 UTC 56,009 bytes, 2 lines download raw bytes

1"use strict";(self.NiveaXwebpackJsonp=self.NiveaXwebpackJsonp||[]).push([[8469],{4656:(t,e,n)=>{n.r(e),n.d(e,{default:()=>ut});var o=n(60778),i=n(81062),s=n(23076);class r{constructor(t,e){this.element=t,this.config=this.mergeConfig(this.getDefaultConfig(),e)}mergeConfig(t,e){return Object.assign(Object.assign(Object.assign({},t),e),{options:Object.assign(Object.assign({},t.options),e.options)})}}class a extends r{constructor(t,e){super(t,e),this.quantity=1;const{buttonSelector:n,productIdAttr:o}=this.config.options;this.button=this.element.querySelector(n),this.mustUseAddToCartSaveAction="mustUseAddToCartSaveAction"in this.element.dataset,this.productId=this.element.getAttribute(o),this.init()}init(){this.button.addEventListener("click",()=>this.addToCart()),this.listenToCartChange()}async addToCart(t=""){if(this.mustUseAddToCartSaveAction)return;const{updateCartStore:e,showNotification:n,startSpinner:o,stopSpinner:i}=this.config.actions,{getAddToCartURL:s}=this.config.urls,{productId:r,quantity:a}=this;o(this.element,""),document.dispatchEvent(new CustomEvent("cart:startspinner"));try{const o=s({productId:r,quantity:a,currentProductID:t}),i=await fetch(o,{credentials:"include"}),c=await i.json();if(c.IsSuccess){e(c.Data);const{TDefinitions:t}=this.notification;n(Object.assign(Object.assign({},this.notification),{LinkHref:this.notification.Link,TDefinitions:t})),document.dispatchEvent(new CustomEvent("addtocart:showAddToCardFlag"))}else alert(c.Error)}catch(t){console.error(`Error AddToCart: ${t}`)}finally{i(this.element,""),document.dispatchEvent(new CustomEvent("cart:stopspinner"))}}listenToCartChange(){const{subscribeToCart:t}=this.config.actions;t(t=>{this.getNotificationInfo(t).onCartChange(t)})}getNotificationInfo({Notification:t}){return t&&(this.notification=t),this}onCartChange(t){}getDefaultConfig(){return{options:{productIdAttr:"data-product-id",buttonSelector:"button"}}}}var c=n(23425);class d extends((0,c.A)(a)){constructor(t,e){super(t,e),this.config.actions.subscribeToCart(t=>{this.cart=t})}async addToCart(t=""){await super.addToCart(t);let e="AddToCartButton";const{productId:n,quantity:o,button:i}=this,r=this.cart.TrackingData;if(i.classList.contains("nx-add-to-cart-flag")?e="AddToCartFlag":i.classList.contains("nx-add-to-cart-teaser")?e="AddToCartTeaser":i.classList.contains("nx-add-to-cart-mobile-trigger")?e="AddToCartMobile":i.classList.contains("nx-product-bottom-bar__add-to-cart-button")&&(e="AddToCartProductBottomBar"),null==r?void 0:r.length)r.forEach((t,n)=>{const{add:o}=t.Tevent.ecommerce;o&&(t.Tevent.ecommerce.add.buttonType=e),dataLayer.push(t.Tevent)});else try{const t=this.cart.Items.find(t=>n===t.ProductId);if(null==t)return;const{CurrencyCode:r}=this.cart.Summary,a=i.closest(".nx-product-teaser"),c=a?a.getAttribute("data-brand"):"";let d={name:t.ProductName,id:`${t.ProductId}`,price:(0,s.vf)(t.ProductPrice),brand:c,category:t.Category,variant:t.ProductSize,quantity:o};this.pushTrackingData(d,r,e)}catch(t){console.error(`Error AddToCart: ${t}`)}}pushTrackingData(t,e,n){dataLayer.push({event:"addToCart",ecommerce:{currencyCode:e,add:{buttonType:n,products:[t]}}})}}const l=d;var u=n(98684);const p=t=>t.IsVoucher?"":`\n       <div class="nx-range-dropdown" data-module="RangeDropdownWithScrollBar" tabindex="0" data-options='{"mainClass": "nx-range-dropdown", "listHeight": 220}'>\n            <div class="nx-range-dropdown__label">\n                <span class="nx-range-dropdown__label-value nx-font--bold"  data-prev-value="${t.Quantity}">${t.Quantity}</span>\n                <span class="nx-u-arrow-down"></span>\n            </div>\n            <div class="nx-range-dropdown__list-wrapper">\n                <ul class="nx-range-dropdown__list">\n                    ${t.QuantitySelector.map(t=>`<li class="nx-range-dropdown__item" data-value="${t}">${t}</li>`).join("")}\n                </ul>\n            </div>\n        </div>`,h=t=>`\n        <div class="nx-range-dropdown">\n            <div class="nx-range-dropdown__label nx-range-dropdown__label--readonly">\n                <span class="nx-range-dropdown__label-value nx-font--bold">${t.Quantity}</span>\n            </div>\n        </div>`,m=({Stock:{StateCssClass:t,Label:e,IsSoldOut:n},IsVoucher:o})=>o?"":`<p class="nx-availability ${t?`nx-availability--${t}`:""}">${e}</p>`,g=(t,e,n)=>`\n    <div class="${e.cartItemClass}__remove">\n        <div class="${e.cartItemClass}__remove-icon">\n            <div class="nx-close-icon"></div>\n        </div>                \n        <div class="${e.cartItemClass}__remove-text">${n.Remove}</div>\n    </div>\n    <div class="${e.cartItemClass}__quantity">\n        ${t.Stock.IsSoldOut||t.IsGiftWrappingProduct?h(t):p(t)}\n        ${t.IsGiftWrappingProduct?"":m(t)}\n    </div>`,v=(t,e)=>`\n    <div class="${e.cartItemClass}__error ${t.Stock.IsSoldOut?`${e.cartItemClass}__error--remove`:""}">\n        ${t.Stock.IsSoldOut?t.OutOfStockText:t.SelectedQuantityNotAvailableText}\n    </div>\n`,C=(t,e,n,o)=>{let i=o||t.IsReadOnly?`\n        <div class="${e.cartItemClass}__remove"></div>\n        <div class="${e.cartItemClass}__quantity">\n           <div class="nx-range-dropdown">\n                <div class="nx-range-dropdown__label nx-range-dropdown__label--readonly">
1\n                    <span class="nx-range-dropdown__label-value nx-font--bold">${t.Quantity}</span>\n                </div>\n            </div>\n        </div>`:g(t,e,n);const s=t.ProductUrl?`href="${t.ProductUrl}"`:"";o&&(i=`\n       <div class="nx-range-dropdown nx-shop-cart-item__quantity">\n            <div class="nx-range-dropdown__label nx-range-dropdown__label--readonly">\n                <span class="nx-range-dropdown__label-value nx-font--bold">${t.Quantity}</span>\n            </div>\n       </div>`);const r=t.IsVoucher?`\n            <div class="nx-unit-info__item">\n                <div class="nx-unit-info__value nx-unit-info__voucher-recipient nx-font-body-2 nx-font--bold">${n.VoucherWillBeSentTo}: ${t.VoucherRecipient}</div>\n            </div>`:f(t,e,n);return`\n        <li class="${e.cartItemClass}" data-item-id="${t.ItemId}" data-gift-wrap="${t.IsGiftWrappingProduct}">\n            <div class="${e.cartItemClass}__inner">\n                <div class="${e.cartItemClass}__product-info">\n                    <a ${s} class="${e.cartItemClass}__image">\n                        <img src="${t.ProductImage}"/>\n                    </a>\n\n                    <div>\n                        <a class="${e.cartItemClass}__link" ${s}>\n                            <h4 class="${e.cartItemClass}__name">${t.ProductName}</h4>\n                        </a>\n\n                        ${r}\n                    </div>\n                </div>\n\n                <div class="${e.cartItemClass}__content">\n                    ${i}\n                    <div class="${e.cartItemClass}__prices">\n                        ${t.Stock.IsSoldOut?`<div class="${e.cartItemClass}__price ${e.cartItemClass}__price--sold-out">${t.Price}</div>`:`<div class="${e.cartItemClass}__price ${t.PriceIsReduced?`${e.cartItemClass}__price--old`:""}">${t.TotalOriginalPrice}</div>\n                        ${t.PriceIsReduced?`<div class="${e.cartItemClass}__price--new">${t.Price}</div>`:""}`}\n                    </div>\n                </div>\n            </div>\n            ${t.IsValid?"":v(t,e)}\n        </li>\n    `},f=(t,e,n)=>`\n    <div class="${e.cartItemClass}__unit-info nx-unit-info nx-font-body-3 nx-font--bold">\n\n        ${((t,e,n)=>t.IsFree?"":`\n        <div class="nx-unit-info__item"> \n                <div class="nx-unit-info__label">${n.UnitPrice}:</div>\n            <div class="nx-unit-info__price ${t.PriceIsReduced?"nx-unit-info__price--old":""}">\n                ${t.OriginalPrice}\n            </div>\n            ${t.PriceIsReduced?`<div class="nx-unit-info__price nx-unit-info__price--new">${t.ProductPrice}</div>`:""}\n            ${t.PricePerUnit?`<div class="nx-unit-info__price-per-unit">(${t.PricePerUnit})</div>`:""}\n        </div>\n    `)(t,0,n)}\n        \n        ${t.Promotions?(t=>{let e="";return t.forEach(t=>{e+=`<div class="nx-unit-info__promotion">${t}</div>`}),`\n        <div class="nx-unit-info__item ">\n            ${e}\n        </div>\n    `})(t.Promotions):""}\n        ${t.Size?`\n            <div class="nx-unit-info__item">\n                <div class="nx-unit-info__label">${n.Size}:</div>\n                <div class="nx-unit-info__value">${t.ProductSize}</div>\n            </div>`:""}\n        ${t.Category?`\n            <div class="nx-unit-info__item">\n                <div class="nx-unit-info__label">${n.Category}:</div>\n                <div class="nx-unit-info__value">${t.Category}</div>\n            </div>`:""}\n        ${t.BundleProducts?`\n        <div class="nx-unit-info__item">\n            ${n.BundleProducts}: ${t.BundleProducts}\n        </div>`:""}\n        ${t.ProductNotGiftWrappableText?`\n        <div class="nx-unit-info__item nx-unit-info__item-not-wrappable">\n            ${t.ProductNotGiftWrappableText}\n        </div>`:""}\n    </div>\n`;var y=n(21464);const _=(t,{cartClass:e},n)=>(0,y.ZF)(t)?"":`\n        <div class="${e}__gift-wrapping-background" data-product-id="${t.ProductId}">\n            <div class="nx-u-container alpaca-form">\n                <div class="${e}__gift-wrapping-wrapper nx-checkbox checkbox-wrapper">\n                    <label for="nx-gift-wrapping">\n                        <input type="checkbox" class="nx-checkbox__input" id="nx-gift-wrapping" name="nx-gift-wrapping" />
1\n                        <span class="nx-checkmark">\n                            <span class="nx-checkmark__tick "></span>\n                        </span>\n                        <span class="nx-checkmark-text">\n                            ${t.Text}\n                        </span>\n                        <span class="nx-gift-wrapping-icon">\n                            ${t.Icon}\n                        </span>\n                    </label>\n                </div>\n            </div>\n        </div>\n    `,x=(t,{RemovePromotionURL:e},n)=>{const o=n?"":`<div class="nx-shop-cart-item__remove-icon" data-ajax-url="${e}"><div class="nx-close-icon"></div></div>`;return`\n        <li class="nx-cost-row" data-item-id="${t.Id}">\n            <span>${t.Text}</span>\n            ${o}\n        </li>\n    `},b=(t,e,n=!1)=>t.map(t=>x(t,e,n)).join(""),P=(t,{cartClass:e,AddPromotionURL:n})=>null==t.InputPlaceholder||""==t.InputPlaceholder?"":`\n                <div class="${e}__promotion-form">\n                    <div class="${e}__promotion-form-form">\n                        <div class="${e}__promotion-form-field nx-input-text">\n                            <label class="${e}__promotion-form-input-label nx-input-text__label">${t.InputPlaceholder}</label>\n                            <input class="${e}__promotion-form-input nx-input-text__field" type="text">\n                            <div class="nx-shop-cart__redeem-promotion-icon">${t.AddPromotionIcon}</div>\n                        </div>\n                        <span class="${e}__promotion-form-error" data-validation-error="${t.ErrorEmptyCode}"></span>\n                        <button data-form-ajax-url="${n}" class="${e}__redeem-promotion nx-btn">${t.Button}</button>\n                    </div>\n                </div>\n`,I=(t,{cartClass:e},n)=>{let o="",i="",s="";null!==t.CartDiscounts&&t.CartDiscounts.forEach(t=>{o+=`\n            <div class="nx-cost-row">\n                <span class="nx-cost-row__promotion">\n                    ${t.Label}\n                </span>\n                <span class="nx-cost-row__promotion-amount">\n                    - ${t.Amount}\n                </span>\n            </div>`});return null!==t.DeliveryDiscounts&&t.DeliveryDiscounts.forEach(t=>{o+=`\n            <div class="nx-cost-row">\n                <span class="nx-cost-row__promotion">\n                    ${t.Description}\n                </span>\n                <span class="nx-cost-row__promotion-amount">\n                    - ${t.EffectiveDiscount}\n                </span>\n            </div>`}),""!==t.VoucherAmount&&(i=`\n            <div class="nx-cost-row">\n                <span class="nx-cost-row__promotion">\n                    ${n.Voucher}\n                </span>\n                <span class="nx-cost-row__promotion-amount">\n                    - ${t.VoucherAmount}\n                </span>\n            </div>`),s=""!==t.OriginalDeliveryCost&&t.OriginalDeliveryCost!==t.DeliveryCost?`\n            <div class="nx-cost-row">\n                <span class="nx-cost-row__description">\n                    ${n.DeliveryFee}\n                </span>\n                <span class="nx-cost-row__amount nx-cost-row__original-amount">\n                    + ${t.OriginalDeliveryCost}\n                </span>\n            </div>\n            `:`\n            <div class="nx-cost-row">\n                <span class="nx-cost-row__description">\n                    ${n.DeliveryFee}\n                </span>\n                <span class="nx-cost-row__amount">\n                    + ${t.DeliveryCost}\n                </span>\n            </div>`,`\n    <div class="${e}__summary-inner">\n        <div class="${e}__summary-line">\n            <div class="nx-cost-row nx-cost-row--large nx-font--bold nx-font-overheader-3">\n                <span class="nx-cost-row__description">\n                    ${n.Subtotal}\n                </span>\n                <span class="nx-cost-row__amount">\n                    ${t.SubTotal}\n                </span>\n            </div>\n        </div>\n        <div class="${e}__summary-line">\n            ${s}\n            ${o}\n        </div>\n        <div class="${e}__summary-line">\n            <div class="nx-cost-row nx-cost-row--x-large nx-font--bold nx-font-body-1">
1\n                <span class="nx-cost-row__description">\n                    ${n.TotalPrice}\n                </span>\n                <span class="nx-cost-row__amount">\n                    ${t.TotalPriceWithTax}\n                </span>\n            </div>\n            <div class="nx-cost-row">\n                <span class="nx-cost-row__description">\n                    ${n.Tax}\n                </span>\n                <span class="nx-cost-row__amount">\n                    ${t.TotalTax}\n                </span>\n            </div>\n            ${i}\n        </div>\n        <div class="${e}__summary-line">\n            <div class="nx-cost-row nx-cost-row--x-large nx-font--bold nx-font-body-1">\n                <span class="nx-cost-row__description">\n                    ${n.AmountToPay}\n                </span>\n                <span class="nx-cost-row__amount">\n                    ${t.AmountToPay}\n                </span>\n            </div>\n        </div>\n    </div>\n`},S=({cartOptions:t,cartState:e,readonly:n})=>{const{cartClass:o,cartItemListClass:i}=t,{Items:s,Summary:r,CartOverviewLabels:a,GiftWrapping:c,PromotionForm:d,Promotions:l}=e,p=((t,e,n,o=!1)=>t.filter(t=>null!=t.ProductId||(console.warn("Added to the Cart product was not found. Check if the product exist."),!1)).map(t=>C(t,e,n,o)).join(""))(s,t,a,n),h=Object.entries(c).length>0?_(c,t,n):"",m=b(l,t,n),g=P(d,t),v=I(r,t,a),f=n?"":`<div class="${o}__promotion-form">${g}</div>`,y=n||0===h.length?"":`<div class="${o}__gift-wrapping">${h}</div>`;return(0,u.Uo)(`\n        <div class="nx-u-container ${o}-outer">\n            <div class="${o}">\n                <ul class="${i}">\n                    ${p}\n                </ul>\n\n                <div class="${o}__gift-wrapping" data-eshop="CartGiftWrappingModule">\n                    ${y}\n                </div>\n\n                <div class="${o}__promotion" data-eshop="CartPromotion" data-fe-markup>\n                    <ul class="${o}__promotion-list">\n                        ${m}\n                    </ul>\n                    ${f}\n                </div>\n                <div class="${o}__summary">\n                    ${v}\n                </div>\n            </div>\n        </div>\n    `)},w=({OriginalPrice:t,Price:e,PricePerUnit:n,PricePerUnitString:o,ProductSize:i,PriceTooltipHeadline:s,PriceTooltipText:r,InfoIIcon:a,InfoXIcon:c,IsTooltipEnabled:d},l=!1)=>{let u=n>0?o:"",p=l?`${i}${u.length>0&&i.length>0?" | ":""}${u}`:`${u}`;return`\n<div class="nx-product-teaser-price-wrapper">\n    ${l?"":`<div class="nx-product-teaser-price nx-product-teaser-size nx-font-body-2">${i}</div>`}\n    ${t&&t!==e?`<div class="nx-product-teaser-price nx-product-teaser-price--old nx-font-body-2">${t}</div>`:""}\n    <div class="nx-product-teaser-price nx-product-teaser-price--new nx-font-heading-5 nx-font--bold">${e}</div>\n    ${d?`<div class="nx-tooltip-container" data-tooltip-desktop data-tooltip-mobile>\n               <div class="nx-tooltip" data-module="Tooltip">\n                   <div class="nx-tooltip__content">\n                       <div class="nx-tooltip__headline">${s}</div>\n                    <div class="nx-tooltip__rte-text">\n                       <object> <span style="font-size: 14px; line-height: 22px">${r}</span></object>\n                    </div>\n                </div>\n                <div class="nx-tooltip__icon--wrapper nx-tooltip__icons">\n                    <span class="nx-svg-container nx-icon-info nx-u-on">\n                        ${a}\n                    </span>\n                    <span class="nx-svg-container nx-icon-close nx-u-off">\n                        ${c}\n                    </span>\n                </div>\n            </div>\n        </div>`:""}\n</div>\n${p.length>0?`<div class="nx-product-teaser-price-per-unit">${p}</div>`:""}\n`},$=({StockStateCssClass:t,StockLabel:e,IsPurchasable:n})=>n?`\n    <p class="nx-availability ${t?`nx-availability--${t}`:""}">\n        ${e}\n    </p>\n`:"",T=(t,e=!1)=>w(t,e)+$(t),L=({ProductId:t,IsAddToCartDisabled:e,AddToCartLabel:n,AddToCartIcon:o})=>
1e?"":`\n    <div class="nx-add-to-cart-teaser-wrapper" data-eshop="AddToCart" data-product-id="${t}">\n        <button title="${n}" tabindex="0" role="button" aria-label="${n}" class="nx-add-to-cart-teaser nx-btn nx-btn--tertiary ${e?"nx-add-to-cart-teaser__sold-out":""}">\n            <div class="nx-svg-container">\n                ${o}\n            </div>\n        </button>\n    </div>\n`,O=({badges:t,parrentSelector:e,modifier:n,maxBadges:o,context:i=document.documentElement})=>{const s=i.querySelector(e);s&&(s.innerHTML=((t,e)=>t.map(t=>(({Value:t="",ThemedCssClass:e=""},n)=>`<div class="nx-badge__item ${n} ${e}">${t}</div>`)(t,e)).join(""))(t.slice(0,o),n))};const A=t=>{if(t.IsSuccess)return t.Data;throw new Error(t.Error)},E=t=>{const e=(0,u.Uo)(`<div>${t}</div>`).querySelector(".nx-shop-error");if(e)throw new Error(e.innerHTML);return t};class U extends l{getQuantity(){const t=this.element.querySelector(this.config.options.inputSelector);return t&&t.value||this.quantity}async init(){this.listenToBottomBarInit(),await this.loadPriceInfo(),this.controls=this.element.querySelector(".nx-add-to-cart-wrapper"),document.addEventListener("addtocart:showAddToCardFlag",()=>this.showAddToCardFlagPDP()),this.listenToQuantityChange(),this.addToCartListener(),this.listenToCartChange()}listenToBottomBarInit(){document.addEventListener("productdetailpage:bottombarinit",t=>{this.bottomBar=t.detail;const e=this.bottomBar.querySelector("button");e&&(this.addToCartListenerBottomBar(e),this.listenToQuantityChangeBottomBar())})}async loadPriceInfo(){const{getPDPInfoURL:t}=this.config.urls,e=t({productId:this.productId}),n=await fetch(e,{credentials:"include"}),o=await n.json(),i=(0,u._A)(o.ProductPriceInformationMarkUp);return this.element.innerHTML=i,O({badges:o.Badges,parrentSelector:'[data-module="ProductDetailPage"] .nx-product-stage__badge',modifier:"nx-badge__item--big"}),document.dispatchEvent(new CustomEvent("addtocart:loadpriceinfo")),o}addToCartListener(){const{buttonSelector:t}=this.config.options;this.element.addEventListener("click",({target:e})=>
1{const n=e.closest(t)||e.closest(".nx-add-to-cart-mobile-trigger");n&&(this.button=n,this.quantity=this.getQuantity(),this.addToCart(this.productId))})}addToCartListenerBottomBar(t){t.addEventListener("click",({target:t})=>{this.button=t,this.quantity=this.getQuantity(),this.addToCart(this.productId)})}listenToQuantityChange(){this.element.addEventListener("change",({target:t})=>{var e;const n=t;this.quantity=parseInt(n.value);const o=null===(e=this.bottomBar)||void 0===e?void 0:e.querySelector(".nx-range-dropdown");o&&o.value!=n.value&&o.dispatchEvent(new CustomEvent("dd:setvalue",{detail:t}))})}listenToQuantityChangeBottomBar(){var t;null===(t=this.bottomBar)||void 0===t||t.addEventListener("change",({target:t})=>{const e=this.element.querySelector(this.config.options.inputSelector);e.value=parseInt(t.value),e.dispatchEvent(new CustomEvent("dd:setvalue",{detail:e})),this.quantity=this.getQuantity()})}onCartChange(t){const{CurrentPdpInfo:e}=t;return e&&e.ProductDetailPageAddToCartMarkUp&&this.productId==e.ProductIdCurrentPDP&&(this.controls.innerHTML=e.ProductDetailPageAddToCartMarkUp),document.dispatchEvent(new CustomEvent("addtocart:cartchange")),this}showAddToCardFlagPDP(){const t=this.element.querySelector(`.${this.getDefaultConfig().options.addToCartFlagBtn}`);!this.isNBAactivated()&&t&&(0,u.iQ)(t,`${this.getDefaultConfig().options.addToCartFlagBtnVisible}`)}isNBAactivated(){const t=document.querySelector(".nx-mob-nav__nba-list");return!!t&&t.children.length>0}getDefaultConfig(){return{options:Object.assign(Object.assign({},super.getDefaultConfig().options),{productIdAttr:"data-product-id",buttonSelector:"button",inputSelector:".nx-range-dropdown",addToCartFlagBtn:"nx-add-to-cart-flag",addToCartFlagBtnVisible:"nx-add-to-cart-flag--visible"})}}}class R extends((0,c.A)(U)){constructor(t,e){super(t,e)}async loadPriceInfo(){const t=await super.loadPriceInfo(),e=(new DOMParser).parseFromString(t.ProductPriceInformationMarkUp,"text/html"),n=e.querySelector(".nx-price")?(0,s.vf)(e.querySelector(".nx-price").innerHTML):null;return this.initTracking(n),this.element.classList.add("nx-add-to-cart--prices-loaded"),t}initTracking(t){const e=this.dataLayer[0].hasOwnProperty("currencyCode")?this.dataLayer[0].currencyCode:"",n=document.querySelector("h1.nx-product-stage__headline"),o=null!==n?n.innerHTML:"",i=this.dataLayer[0].hasOwnProperty("category")?this.dataLayer[0].category:"",s=document.querySelector(".nx-product-stage .nx-pas__product-attribute:last-child"),r=null!==s?s.innerHTML:"",a=this.dataLayer[0].hasOwnProperty("brand")?this.dataLayer[0].brand:"";this.dataLayer.push({event:"productDetails",ecommerce:{currencyCode:e,detail:{products:[{id:`${this.productId}`,name:o,brand:a,category:i,variant:r,price:t?t.toFixed(2):""}]}}})}}const j=R;class D{constructor(t,e){this.parent=t,this.options=e,this.firstLoad=!1,this.icon=(0,u.m6)(this.options.cartIconAmountClass),(0,u.L8)(this.parent,this.icon)}animateCartAmount(t,e){t.classList.remove(e),requestAnimationFrame(()=>t.classList.add(e))}getQuantity(t){return t.Items.length>0?t.Items.reduce((t,e)=>t+e.Quantity,0).toString():""}isProductFree(t){return t.IsFree}updateCartAmountIcon(t){const{cartIconAmountClass:e}=this.options;this.icon.innerHTML=this.getQuantity(t),this.firstLoad&&this.animateCartAmount(this.icon,`${e}--animate`),this.firstLoad=!0}}class k extends r{constructor(t,e){super(t,e)}getDefaultConfig(){return{options:{cartClass:"nx-shop-cart",cartItemListClass:"nx-shop-cart-list",cartItemClass:"nx-shop-cart-item",cartGiftWrappingClass:"nx-shop-cart__gift-wrapping",cartPromotionsClass:"nx-shop-cart__promotion-list",cartPromotionFormClass:"nx-shop-cart__promotion-form",cartSummaryClass:"nx-shop-cart__summary",cartIconAmountClass:"nx-shop-cart__icon-amount",cartCheckOutBtnClass:"",cartContinueBtnClass:"",checkOutURL:"",AddPromotionURL:"",RemovePromotionURL:"",currentProductID:"",cartQuantityFieldClass:"nx-range-dropdown__label-value"}}}}const q=class extends k{constructor(t,e){super(t,e),this.options=this.config.options,this.init()}init(){return this.content=this.element.querySelector(".nx-shop-cart-outer"),this.isEmptyCart(this.content)?(this.showEmptyCart(),this):(this.addButtons(),this.listenToQuantityChange(),this.listenToRemove(),this)}addButtons(t){const{cartClass:e}=this.options,{actions:n}=this.config,o=this.element.querySelector(`.${e}__continue-btn`);return o.addEventListener("click",n.hideEShopPart),o.addEventListener("keyup",t=>"Enter"===t.key?window.NiveaX.layer.close():""),this}updateCartButtonState(t){const{cartClass:e}=this.options,n=t.filter(t=>0==t.IsValid).length>0,o=this.content.querySelector(`.${e}__checkout-btn`);n?o.setAttribute("disabled",""):o.removeAttribute("disabled")}listenToRemove(){return this.element.addEventListener("click",t=>this.removeProduct(t)),this}removeProduct(t){const{getRemoveItemFromCartWithViewURL:e}=this.config.urls,{cartItemClass:n,currentProductID:o}=this.options,i=t.target,s=i.closest(`.${n}__remove`),r=i.closest(`.${n}`);if(null==s||null==r)return;const a=e({productId:r.getAttribute("data-item-id"),currentProductID:o});(0,u.iQ)(r,`${n}--close`),this.fetchAndUpdateContentWithView(a)}listenToQuantityChange(){return this.element.addEventListener("change",t=>this.changeQuantity(t)),this}changeQuantity(t){const{getUpdateItemQuantityWithViewURL:e}=this.config.urls,{cartItemClass:n,currentProductID:o}=this.options,i=event.target,s=i.closest(`.${n}`);if(null==s)return;const r=e({productId:s.getAttribute("data-item-id"),quantity:i.value,currentProductID:o});this.fetchAndUpdateContentWithView(r)}showEmptyCart(){const{urls:{getEmptyCartURL:t},actions:{showEShopPart:e}}
1=this.config;return e(t(null)),this}fetchAndUpdateContentWithView(t){const{startSpinner:e,stopSpinner:n,refreshCartState:o,updateContent:i}=this.config.actions,{getCartItemsURL:s}=this.config.urls;e(),(0,y.Ys)(()=>fetch(t,{method:"POST",credentials:"include"}).then(t=>t.text()).then(E).then(t=>i(this.element,t,this.showEmptyCart.bind(this))).then(()=>o(s(null))).then(()=>this.showAddToCardFlag()).then(()=>this.initTracking()).finally(()=>n()),300)}isEmptyCart(t){return!t.querySelector(".nx-shop-cart-list")}initTracking(){document.dispatchEvent(new CustomEvent("NiveaBasicTracking:reInitHandlers"))}getContent(){return this.content}showAddToCardFlag(){document.dispatchEvent(new CustomEvent("addtocart:showAddToCardFlag"))}},F=class extends r{constructor(t,e){super(t,e),this.isCartEmpty=!0,this.options=this.config.options,this.amountIcon=new D(this.element,this.options),this.init()}init(){this.listenToClick().listenToCartChange().listenToOpenCart()}listenToCartChange(){const{subscribeToCart:t}=this.config.actions;return t(t=>{this.isCartEmpty=0===t.Items.length,this.amountIcon.updateCartAmountIcon(t)}),this}listenToClick(){return this.element.addEventListener("click",t=>{t.preventDefault(),this.openCart()}),this}async openCart(){const{urls:{getCartOverviewURL:t,getEmptyCartURL:e,getCartItemsURL:n},actions:{showEShopPart:o,refreshCartState:i}}=this.config;return await i(n(null)),o(this.isCartEmpty?e(null):t(null)),document.dispatchEvent(new CustomEvent("addtocart:showAddToCardFlag")),this}listenToOpenCart(){return document.addEventListener("eshop:opencart",()=>this.openCart()),this}getDefaultConfig(){return{options:{cartIconAmountClass:"nx-shop-cart__icon-amount"}}}};const B=class extends r{constructor(t,e){super(t,e),this.init()}init(){const t=this.element.querySelector("[data-product-id]");if(t)return this.giftWrappingProductId=t.getAttribute("data-product-id"),this.giftWrappingInput=this.element.querySelector("input"),this.giftWrappingItem=document.querySelector('[data-gift-wrap="True"]'),this.giftWrappingInput.addEventListener("change",()=>this.toggleGiftWrapping()),this}toggleGiftWrapping(){this.giftWrappingInput.checked?this.addGiftWrappingItem(this.giftWrappingProductId):this.removeGiftWrappingItem()}addGiftWrappingItem(t){const{getAddToCartWithViewURL:e}=this.config.urls,n=e({productId:t,quantity:1,currentProductID:""});this.fetchAndUpdateContentWithView(n)}removeGiftWrappingItem(){this.giftWrappingItem.querySelector(".nx-shop-cart-item__remove").click()}fetchAndUpdateContentWithView(t){const{startSpinner:e,stopSpinner:n,refreshCartState:o,updateContent:i}=this.config.actions,{getCartItemsURL:s}
1=this.config.urls,r=this.element.closest(".nx-nx-shop-cart--view");e(),(0,y.Ys)(()=>fetch(t,{method:"POST",credentials:"include"}).then(t=>t.text()).then(E).then(t=>i(r,t)).then(()=>o(s(null))).then(()=>this.showAddToCardFlag()).finally(()=>n()),300)}showAddToCardFlag(){document.dispatchEvent(new CustomEvent("addtocart:showAddToCardFlag"))}getDefaultConfig(){return{options:{cartClass:"nx-shop-cart",cartItemListClass:"nx-shop-cart-list",cartItemClass:"nx-shop-cart-item",cartGiftWrappingClass:"nx-shop-cart__gift-wrapping",cartPromotionsClass:"nx-shop-cart__promotion-list",cartPromotionFormClass:"nx-shop-cart__promotion-form",cartSummaryClass:"nx-shop-cart__summary",cartIconAmountClass:"nx-shop-cart__icon-amount",cartCheckOutBtnClass:"",cartContinueBtnClass:"",checkOutURL:"",AddPromotionURL:"",RemovePromotionURL:"",currentProductID:""}}}};class W{constructor(t,e,n){this.element=t,this.config=e,this.cartClass=n,this.options=this.config.options,this.init()}init(){if(this.promotionList=this.element.querySelector(`.${this.cartClass+this.options.PromotionList}`),this.promotionList)return this.listenToRemovePromotion(),this}listenToRemovePromotion(){const{startSpinner:t}=this.config.actions;return this.promotionList.addEventListener("click",e=>{if(!e.target.classList.contains("nx-close-icon"))return;const n=e.target.closest(".nx-shop-cart-item__remove-icon"),o=n.closest(".nx-cost-row");let i=n.getAttribute("data-ajax-url")+"&code="+o.getAttribute("data-item-id");t(),(0,y.Ys)(()=>{this.removeNiveaPromotion(i)},300)}),this}removeNiveaPromotion(t){const{updateCartStore:e,stopSpinner:n,updateContent:o,refreshCartState:i}=this.config.actions,{getCartItemsURL:s}
1=this.config.urls,r=this.element.closest(".nx-nx-shop-cart--view");this.element.hasAttribute("data-fe-markup")?fetch(t,{credentials:"include"}).then(t=>t.json()).then(A).then(t=>e(t)).then(()=>this.showAddToCardFlag()).catch(t=>alert(t)).finally(()=>n()):fetch(t,{method:"POST",credentials:"include"}).then(t=>t.text()).then(E).then(t=>o(r,t)).then(()=>i(s(null))).then(()=>this.showAddToCardFlag()).catch(t=>alert(t)).finally(()=>n())}showAddToCardFlag(){document.dispatchEvent(new CustomEvent("addtocart:showAddToCardFlag"))}}class N{constructor(t,e,n){this.element=t,this.config=e,this.cartClass=n,this.options=e.options,this.listenToCartChange()}listenToCartChange(){const{subscribeToCart:t}=this.config.actions;return window.NiveaX.isOwnSkinCareBrand||!this.element.hasAttribute("data-fe-markup")?this.init():t(t=>{this.init()}),this}init(){if(this.redeemPromotionButton=this.element.querySelector(`.${this.cartClass+this.options.RedeemPromotion}`),this.promotionForm=this.element.querySelector(`.${this.cartClass+this.options.PromotionForm}`),this.promotionInput=this.element.querySelector(`.${this.cartClass+this.options.PromotionInput}`),this.promotionError=this.element.querySelector(`.${this.cartClass+this.options.PromotionError}`),this.promotionInput)return""==this.promotionInput.value&&this.hideButton(),this.promotionFormInputOnTyping().promotionFormInputLabelAnimationFocus().promotionFormInputLabelAnimationBlur().redeemPromotion().removeOWNCouponErrorMessage().promotionFormInputOnKeyup(),this}redeemPromotion(){const{startSpinner:t}=this.config.actions;return this.redeemPromotionButton.addEventListener("click",e=>{if(e.preventDefault(),!this.promotionInput.value)return this.promotionEmptyInput(),this;t(),this.redeemPromotionButton.disabled=!0,(0,y.Ys)(()=>{const t=`${this.redeemPromotionButton.dataset.formAjaxUrl}&code=${this.promotionInput.value}`;this.redeemPromotionNivea(t)})}),this}redeemPromotionNivea(t){const{updateCartStore:e,updateContent:n,stopSpinner:o,refreshCartState:i}=this.config.actions,{getCartItemsURL:s}
1=this.config.urls,r=this.element.closest(".nx-nx-shop-cart--view");this.element.hasAttribute("data-fe-markup")?fetch(t,{credentials:"include"}).then(t=>t.json()).then(t=>t.IsSuccess?e(t.Data):this.redeemPromotionError(t.Error,!0)).then(()=>this.showAddToCardFlag()).catch(t=>console.error(t)).finally(()=>{this.redeemPromotionButton.disabled=!1,o()}):fetch(t,{method:"POST",credentials:"include"}).then(t=>t.text()).then(t=>this.isShopRequestSuccess(t)?n(r,t):this.redeemPromotionError(t)).then(()=>i(s(null))).then(()=>this.showAddToCardFlag()).catch(t=>console.error(t)).finally(()=>{this.redeemPromotionButton.disabled=!1,o()})}isShopRequestSuccess(t){return!(0,u.Uo)(`<div>${t}</div>`).querySelector(".nx-shop-error")}redeemPromotionError(t,e=!1){var n,o,i,s;if(e)this.promotionError.innerHTML=t,null===(o=null===(n=this.promotionForm.querySelector(".nx-shop-cart__promotion-form-field"))||void 0===n?void 0:n.classList)||void 0===o||o.add("nx-shop-cart__promotion-form-field--error");else{const e=(0,u.Uo)(`<div>${t}</div>`).querySelector(".nx-shop-error");if(e){this.element.querySelector(".nx-shop-cart__promotion-form-error").innerText=e.innerText,null===(s=null===(i=this.promotionForm.querySelector(".nx-shop-cart__promotion-form-field"))||void 0===i?void 0:i.classList)||void 0===s||s.add("nx-shop-cart__promotion-form-field--error")}}}promotionEmptyInput(){this.promotionError.innerHTML=this.promotionError.dataset.validationError}promotionFormInputOnTyping(){return this.promotionInput.addEventListener("input",t=>{t.target.value?this.element.classList.add(this.cartClass+this.options.PromotionForm+"--show-btn"):this.element.classList.remove(this.cartClass+this.options.PromotionForm+"--show-btn")}),this}promotionFormInputOnKeyup(){return this.promotionInput.addEventListener("keyup",t=>{t.target.value&&13===t.keyCode&&(t.preventDefault(),this.redeemPromotionButton.click())}),this}promotionFormInputLabelAnimationFocus(){return this.promotionInput.addEventListener("focus",t=>{t.target.parentElement.classList.add(this.cartClass+this.options.PromotionInput+"--focus")}),this}promotionFormInputLabelAnimationBlur(){return this.promotionInput.addEventListener("blur",t=>{const e=t.target;e.value||e.parentElement.classList.remove(this.cartClass+this.options.PromotionInput+"--focus")}),this}removeOWNCouponErrorMessage(){const t=this.element.querySelector(".nx-shop-cart__promotion-error .nx-shop-cart-item__remove-icon");return t&&window.NiveaX.isOwnSkinCareBrand&&t.addEventListener("click",()=>t.parentElement.remove()),this}showAddToCardFlag(){document.dispatchEvent(new CustomEvent("addtocart:showAddToCardFlag"))}hideButton(){this.element.classList.remove(`${this.cartClass+this.options.PromotionForm}--show-btn`)}}const M=class extends r{constructor(t,e){super(t,e),this.init()}init(){return this.cartClass="nx-shop-cart",new W(this.element,this.config,this.cartClass),new N(this.element,this.config,this.cartClass),this}getDefaultConfig(){return{options:{AddPromotion:"__add-promotion",ClosePromotion:"__close-promotion",PromotionFormWrapper:"__promotion-form-wrapper",RedeemPromotion:"__redeem-promotion",PromotionInput:"__promotion-form-input",PromotionError:"__promotion-form-error",PromotionList:"__promotion-list",PromotionForm:"__promotion-form"}}}};class V extends k{constructor(t,e){super(t,e),this.init()}
1async init(){const{actions:{refreshCartState:t}}=this.config;return await t(this.config.urls.getCartItemsURL(null)),this}}class H extends((0,c.A)(V)){constructor(t,e){super(t,e),this.config.actions.subscribeToCart(t=>{this.cart=t}),this.getParamFromURL()||this.initTracking()}getParamFromURL(){return new URLSearchParams(window.location.search).get("fast-forward")}initTracking(){0!==this.cart.Items.length&&this.saveOverviewData()}saveOverviewData(){localStorage.setItem("cartState",JSON.stringify(this.cart))}}const Q=H;const G={AddToCartPDP:j,AddToCart:l,Cart:F,CartGiftWrappingModule:B,CartPromotion:M,CartNotifier:class extends r{constructor(t,e){super(t,e),this.listenToCartChange()}listenToCartChange(){const{actions:{subscribeToCart:t}}=this.config;return t(t=>{t.Items.reduce((t,e)=>t+e.Quantity,0)>0?requestAnimationFrame(()=>{this.element.classList.remove("e-shop-cart-change"),requestAnimationFrame(()=>this.element.classList.add("e-shop-cart-change"))}):requestAnimationFrame(()=>{this.element.classList.remove("e-shop-cart-change")})}),this}getDefaultConfig(){return{}}},GoToCartLink:class extends r{constructor(t,e){super(t,e),this.isCartEmpty=!0,this.config=this.mergeConfig(this.getDefaultConfig(),e),this.listenToCartChange().listenToLinkClick()}listenToCartChange(){const{actions:{subscribeToCart:t},options:e}=this.config;return t(t=>{this.isCartEmpty=0===t.Items.length,requestAnimationFrame(()=>(0,u.p1)(this.element,e.goToCartLinkModifier,!this.isCartEmpty))}),this}listenToLinkClick(){return this.element.addEventListener("click",t=>{t.preventDefault(),this.openCart()}),this}openCart(){document.dispatchEvent(new CustomEvent("eshop:opencart"))}getDefaultConfig(){return{options:{goToCartLinkClass:".nx-go-to-cart",goToCartLinkModifier:"nx-go-to-cart--visible"}}}},Overview:Q,CartContent:q,PaymentSummaryModule:class extends k{constructor(t,e){super(t,e),this.paymentWidgetInitialized=!1,this.listenToPaymentWidgetHeightChange(),this.options=this.config.options;const{actions:{subscribeToCart:n}}=this.config;n(t=>{this.cartState=t,this.createPaymentVoucher(t).update(t)})}createPaymentVoucher(t){return(0,y.EA)(this.content,this.list,this.promotionList,this.promotionForm,this.summary)||([this.content,this.list,this.giftWrapping,this.promotionList,this.promotionForm,this.summary]=function(t){const{cartOptions:e,cartState:n,readonly:o}=t,{cartClass:i,cartItemListClass:s,cartSummaryClass:r,cartPromotionFormClass:a,cartPromotionsClass:c,cartGiftWrappingClass:d}=e,l=S({cartOptions:e,cartState:n,readonly:o}),u=l.querySelector(`.${i}`),p=u.querySelector(`.${s}`),h=u.querySelector(`.${c}`);return[l,p,u.querySelector(`.${d}`),h,u.querySelector(`.${a}`),u.querySelector(`.${r}`)]}({cartOptions:this.options,cartState:t}),(0,u.L8)(this.element,this.content)),this}update(t){const{CartOverviewLabels:e,Summary:n,PromotionForm:o,Promotions:i}=t,s=b(i,this.options,!1),r=P(o,this.options),a=I(n,this.options,e);this.paymentWidgetInitialized&&this.togglePaymentWidget(),this.list.innerHTML="",this.giftWrapping&&(this.giftWrapping.innerHTML=""),this.promotionList.innerHTML=s,this.promotionForm.innerHTML=r,this.summary.innerHTML=a}listenToPaymentWidgetHeightChange(){const t=document.querySelector(".payment-widget > div");if(!t)return;let e=0;const n=o=>{t.offsetHeight>180||e>50?(o(),this.paymentWidgetInitialized=!0):setTimeout(function(){n(o),e++},100)};n(()=>this.togglePaymentWidget())}togglePaymentWidget(){const{actions:{subscribeToCart:t}}=this.config;t(t=>{this.cartState=t});const e=document.querySelector('.alpaca-form input[name*="payment_required"]');if(e){e.value=this.cartState.Summary.PaymentRequired?"1":"0";const t=new Event("change");e.dispatchEvent(t)}}}};class z{constructor(t){this.options=t,this.initModules()}getConfig(t,e){return{options:e.moduleOptions[t],actions:e.actions,urls:e.urls}}setup({Module:t,moduleName:e,attribute:n,config:o}){Array.from(document.querySelectorAll(`[${n}=${e}]`)).filter(t=>!t.dataset.eShopModuleInitialized).forEach(e=>{new t(e,o),e.setAttribute("data-e-shop-module-initialized","true")})}initModules(){const{attribute:t}=this.options;return Object.entries(G).forEach(([e,n])=>this.setup({config:this.getConfig(e,this.options),Module:n,moduleName:e,attribute:t})),this}}var Z=n(45956);const X=class extends r{constructor(t,e){super(t,e)}async loadPrices(){const t=this.getTeasers(),e=this.getProductIds(t);if(!e.length)return;
1const n=await this.getShopInfo(e);this.setPrices(t,n),this.setBadges(t,n)}getTeasers(){const{teaserClass:t,productIdAttr:e,loadedAttr:n}=this.config.options;return Array.from(this.element.querySelectorAll(`.${t}:not([${n}])`)).reduce((t,n)=>{const o=n.getAttribute(e);if(o){const e=o.split(" ")[0];t[e]=(t[e]||[]).concat(n)}return t},{})}getProductIds(t){return Object.keys(t)}async getShopInfo(t){const{getProductPricesURL:e}=this.config.urls,n=e({productId:t.join("&productIds=")}),o=await fetch(n,{credentials:"include"});return await o.json()}setPrices(t,e){return e.forEach(e=>{const{ProductId:n}=e,{[n]:o}=t;o.forEach(t=>this.showTeaserPrice(t,e))}),document.dispatchEvent(new CustomEvent("eshop:pricesLoaded")),this}setBadges(t,e){const n=Z.Ay.getState().filter.filter.sort,o=Z.Ay.getState().filter.filter[Object.keys(Z.Ay.getState().filter.filter)[0]];return e.forEach(({ProductId:i,Badges:s})=>{const{[i]:r}=t;n&&(Array.from(s).forEach(t=>{n[0]===t.Name&&(t.SortOrder=100)}),this.sortBadges(s)),o&&s&&(Array.from(s).forEach(t=>{t.Members.some(t=>o.includes(t))&&(t.SortOrder=200)}),this.sortBadges(s)),r.forEach(t=>O({badges:s,parrentSelector:".nx-product-teaser__badge",context:t,maxBadges:parseInt(e[0].MaxBadges)}))}),this}sortBadges(t){t.sort((t,e)=>t.SortOrder-e.SortOrder)}showTeaserPrice(t,e){const{teaserShopContainerClass:n,loadingClass:o,loadedAttr:i}=this.config.options,s=t.querySelector(n),r=s.closest("article").classList.contains("nx-product-teaser--compact");this.isLoaded(t)||null==s||(e.IsAddToCartDisabled||t.appendChild((0,u.Uo)(L(e))),s.classList.remove(o),s.innerHTML=T(e,r),this.setTeaserAttributes(s,e),t.setAttribute(i,"true"))}setTeaserAttributes(t,e){const n=t.closest(`.${this.config.options.teaserClass}`);n.setAttribute("data-product-price",e.Price),n.setAttribute("data-product-variant",e.ProductSize)}isLoaded(t){const{loadedAttr:e}=this.config.options;return t.hasAttribute(e)}getDefaultConfig(){return{options:{teaserClass:"nx-product-teaser--eshop",teaserShopContainerClass:".nx-product-teaser__eshop-info",productIdAttr:"data-product-id",loadedAttr:"data-eshop-price-loaded",loadingClass:"nx-u-spinner"}}}};class Y{constructor(t={}){this.setOptions(t),this.moduleLoader=new z(this.options),this.priceLoader=new X(document.documentElement,this.options),this.init()}init(){this.loadPrices().initModules()}getDefaultOptions(){return{attribute:"[data-eshop]",actions:{refreshCartState:()=>{},updateCartStore:()=>{},subscribeToCart:()=>{},showEShopPart:()=>{},hideEShopPart:()=>{},showNotification:()=>{},startSpinner:()=>{},stopSpinner:()=>{},updateContent:()=>{}},urls:{getCartItemsURL:()=>"",getAddToCartURL:()=>"",getAddToCartWithViewURL:()=>"",getRemoveItemFromCartURL:()=>"",getUpdateItemQuantityURL:()=>"",getOrderOverviewURL:()=>"",getCartOverviewURL:()=>"",getEmptyCartURL:()=>"",getAddPromotionURL:()=>"",getRemovePromotionURL:()=>"",getPDPInfoURL:()=>"",getUpdateItemQuantityWithViewURL:()=>"",getAddPromotionWithViewURL:()=>"",getRemoveCodeWithViewURL:()=>"",getRemoveItemFromCartWithViewURL:()=>""},moduleOptions:{}}}setOptions(t){const e=this.options||this.getDefaultOptions();this.options=Object.assign(Object.assign(Object.assign({},e),t),{actions:Object.assign(Object.assign({},e.actions),t.actions),urls:Object.assign(Object.assign({},e.urls),t.urls),moduleOptions:Object.assign(Object.assign({},e.moduleOptions),t.moduleOptions)})}initModules(){const t=()=>this.moduleLoader.initModules();return document.addEventListener("eshop:init",t),t(),this}loadPrices(){const t=async()=>{await this.priceLoader.loadPrices(),this.moduleLoader.initModules()};return document.addEventListener("eshop:loadprices",t),t(),this}}var J=n(34747);var K=n(64110);const tt=t=>{(0,Z.JD)((t=>({type:J.S,cart:t}))(t)),localStorage.setItem("cartState",JSON.stringify(t))},et=(t,e)=>{const n=Z.qZ.pipe((0,o.T)(t=>t.shopCart),(0,i.F)()).subscribe(async o=>{e&&!document.body.contains(e)?n.unsubscribe():(await t(o),window.NiveaX.initModules())});return n},nt=t=>document.location.href=t,ot=()=>window.NiveaX.layer.close(),it=(t=document.body.querySelector("main"),e="nx-u-spinner--fixed")=>(0,u.gR)(t,"nx-u-spinner","nx-u-spinner--medium",e),st=(t=document.body.querySelector("main"),e="nx-u-spinner--fixed")=>(0,u.jo)(t,"nx-u-spinner","nx-u-spinner--medium",e),rt=t=>{window.NiveaX.notification.push(t)};async function at(t){const e=await lt(t);tt(e||K.u)}const ct=(t,e,n)=>{const o=(0,u.Uo)(`<div>${e}</div>`),i=o.querySelector(".nx-shop-cart");if(dt(o)&&n){const t=o.querySelector("[data-tdata]");if(t){const e=(0,y.pt)(t.getAttribute("data-tdata"));(0,s.uS)(e)}return n(),!1}i&&(t.replaceWith(i),window.NiveaX.initModules())},dt=t=>!t.querySelector(".nx-shop-cart-list"),lt=async t=>{let e=null;try{const n=await fetch(t,{credentials:"include"}),o=await n.json();o.IsSuccess?e=o.Data:alert(o.Error)}finally{return e}},ut=(t,e)=>{const{CheckoutForm:n,OrderOverviewPage:o,CartOverviewPage:i,GetEShopTeaserInformationAjaxUrl:r,GetEShopPdpInformationAjaxUrl:a,EmptyCartPage:c,AddCode:d,AddCodeWithView:l,RemoveCode:u,RemoveCodeWithView:p,Carts:h,AddToCart:m,AddToCartWithView:g,RemoveItemFromCart:v,UpdateItemQuantity:C,UpdateItemQuantityWithView:f,RemoveItemFromCartWithView:y}=e,_=()=>`${h}?context=${t}`,x=()=>`${d}?context=${t}`,b=()=>`${u}?context=${t}`,P={getAddToCartURL:({productId:e,quantity:n,currentProductID:o})=>`${m}?context=${t}&productId=${e}&quantity=${n}&currentProductId=${o}`,getAddToCartWithViewURL:({productId:e,quantity:n,currentProductID:o})=>`${g}?context=${t}&productId=${e}&quantity=${n}&currentProductId=${o}`,getCartItemsURL:_,getRemoveItemFromCartURL:({productId:e,currentProductID:n})=>`${v}?context=${t}&itemId=${e}&productId=${n}`,getUpdateItemQuantityURL:({productId:e,quantity:n,currentProductID:o})=>`${C}?context=${t}&itemId=${e}&quantity=${n}&productId=${o}`,getUpdateItemQuantityWithViewURL:({productId:e,quantity:n,currentProductID:o})=>`${f}?context=${t}&itemId=${e}&quantity=${n}&productId=${o}`,getOrderOverviewURL:()=>o,getCartOverviewURL:()=>i,getEmptyCartURL:()=>c,getAddPromotionURL:x,getAddPromotionWithViewURL:()=>`${l}?context=${t}`,getRemovePromotionURL:b,getProductPricesURL:({productId:e})=>`${r}?context=${t}&productIds=${e}`,getPDPInfoURL:({productId:e})=>`${a}?context=${t}&productId=${e}`,getRemoveCodeWithViewURL:()=>`${p}?context=${t}`,getRemoveItemFromCartWithViewURL:({productId:e,currentProductID:n})=>`${y}?context=${t}&itemId=${e}&productId=${n}`},I=((t,e,n,o)=>{const i={cartCheckOutBtnClass:"nx-btn nx-btn--tertiary",cartContinueBtnClass:"nx-action-link",checkOutURL:t,AddPromotionURL:e,RemovePromotionURL:n,currentProductID:o};
1return{Cart:i,CartContent:i,Overview:i,PaymentSummaryModule:i}})(n,x(),b(),(()=>{const t=document.querySelector(".nx-product-stage [data-product-id]");return t?t.getAttribute("data-product-id"):""})());window.NiveaX.AlpacaListener.subscribe("init",t=>t.detail.form.registerCustomDataHandler("orderWasSuccessful",async t=>{await(0,s.Du)(localStorage.getItem("cartState"),t.customData)})),window.NiveaX.AlpacaListener.subscribe("init",t=>t.detail.form.registerCustomDataHandler("refreshCart",async t=>{await at(_())})),new Y(function(t,e){return{attribute:"data-eshop",actions:{refreshCartState:at,updateCartStore:tt,subscribeToCart:et,showEShopPart:nt,hideEShopPart:ot,showNotification:rt,startSpinner:it,stopSpinner:st,updateContent:ct},urls:t,moduleOptions:e}}(P,I));const S=JSON.parse(localStorage.getItem("cartState")),w=document.querySelector(".nx-account-state--loggedin");S&&tt(S),!S&&w&&at(_()),document.addEventListener("NiveaXLoadMoreLoaded",()=>NiveaX.loadShopPrices())}},5547:(t,e,n)=>{n.d(e,{N:()=>o});const o="FILTER_STATE"},23076:(t,e,n)=>{async function o(t,e){t=JSON.parse(t);const n=dataLayer[0].pageCountry,{AmountToPayDecimal:o,DeliveryCostDecimal:i,TotalTaxDecimal:s,CurrencyCode:r}=t.Summary,a=t.Promotions.length>0?t.Promotions.map(t=>`${Object.values(t).join(", ")}`).join(", "):"",c=dataLayer[0].hasOwnProperty("brand")?dataLayer[0].brand:"Nivea",d=t.Items.map(t=>{const e=t.Promotions.length>0?t.Promotions.join(", "):"",n=t.Category?t.Category:"";return{name:t.ProductName,id:t.ProductId,price:m(t.ProductPrice),brand:c,category:n,variant:t.ProductSize,quantity:t.Quantity,coupon:e}});dataLayer.push({event:"purchase",currencyCode:r,ecommerce:{purchase:{actionField:{id:e,affiliation:"eShop "+n,revenue:o,tax:s,shipping:i,coupon:a},products:d}}})}function i(){dataLayer.push({event:"ga_event",eventCategory:"Make It Yours",eventAction:"Photo Upload"})}function s(t){dataLayer.push({event:"ga_event",eventCategory:"Make It Yours",eventAction:"Message Selection",eventLabel:t})}function r(){const t=dataLayer[0].hasOwnProperty("currencyCode")?dataLayer[0].currencyCode:"",e=document.querySelector("h1.nx-product-stage__headline"),n=null!==e?e.innerText:"",o=document.querySelector(".nx-add-to-cart"),i=o.dataset.productId,s=dataLayer[0].hasOwnProperty("category")?dataLayer[0].category:"",r=document.querySelector(".nx-product-stage .nx-pas__product-attribute:last-child"),a=null!==r?r.innerHTML:"",c=o.querySelector(".nx-price").innerHTML,d=document.querySelector(".nx-range-dropdown__label-value").textContent;dataLayer.push({event:"addToCart",ecommerce:{currencyCode:t,add:{buttonType:"AddToCartButton",products:[{name:n,id:i,price:m(c),brand:"Nivea",category:s,variant:a,quantity:d}]}}})}function a(t){let e=Array.from(t.querySelectorAll(".server-side-error"));if(e&&e.length<1)return;let n=t.dataset.name,o=t.id,i=[];e.forEach(t=>i.push(t.innerHTML)),dataLayer.push({event:"ga_event",eventCategory:"Form Error",eventAction:`${n} - ${o}`,eventLabel:i.join()})}function c(t,e,n,o){d({event:"ga_event",eventCategory:t,eventAction:e,eventLabel:n,eventNonInteraction:!1})}function d(t){void 0!==window.dataLayer&&window.dataLayer?window.dataLayer&&window.dataLayer.push(t):console.warn("dataLayer is not defined or not loaded")}function l(t,e){return Array.from(t).indexOf(e)+1}function u(t,e,n="href"){let o=t.target.closest(e);return{isBlank:"_blank"==o.target,href:o[n]}}function p(t,e=""){d({event:"ga_event",eventCategory:"Teaser",eventAction:t,eventLabel:e.length>0?e:void 0,eventNonInteraction:!1})}function h(t,e,n){d({event:"ga_event",eventCategory:t,eventAction:e,eventLabel:n.href}),n.isBlank||(document.location=n.href)}function m(t){let e=t.match(/\d+(?:.\d+)?/).join("");return e=e.replace(/,/g,"."),parseFloat(e)}function g(t){t.tracking&&v(t.tracking)}function v(t){t&&t.forEach(t=>{const e=t.Ttrigger;if("FormSubmitted"===e)d(t.Tevent);else console.log("No tracking set up for this event "+e+".")})}n.d(e,{BQ:()=>r,CX:()=>g,Du:()=>o,SG:()=>l,Sm:()=>p,VE:()=>d,d0:()=>a,iq:()=>h,jP:()=>s,og:()=>i,sx:()=>c,uS:()=>v,uk:()=>u,vf:()=>m})},23425:(t,e,n)=>{n.d(e,{A:()=>i});class o{}function i(t=o){return class extends t{constructor(...t){super(...t),this.dataLayer=window.dataLayer||[]}}}},25600:(t,e,n)=>{n.d(e,{AO:()=>d,Dh:()=>i,GW:()=>u,IF:()=>c,Zz:()=>r,ai:()=>a,an:()=>p,ls:()=>s,nN:()=>l,vO:()=>o});const o="OPEN_SPUSH",i="CLOSE_SPUSH",s="OPEN_TIMER_SPUSH",r="CLOSE_TIMER_SPUSH",a="OPEN_CONTENT_ZONE_SPUSH",c="HIDE_CONTENT_ZONE_SPUSH",d="CLOSE_CONTENT_ZONE_SPUSH",l="INIT_RECURING_STORE",u="PAUSE_SMART_PUSH",p="START_SMART_PUSH"},27543:(t,e,n)=>{n.d(e,{DY:()=>a,Gg:()=>i,LQ:()=>s,b3:()=>o,bR:()=>r});const o="MOVE_RIGHT",i="MOVE_LEFT",s="OPEN_NAV",r="CLOSE_NAV",a="SET_NAV_STRUCTURE"},34747:(t,e,n)=>{n.d(e,{S:()=>o});const o="RESTORE_CART"},45956:(t,e,n)=>{n.d(e,{YH:()=>I,Ay:()=>$,JD:()=>w,qZ:()=>S});var o=n(39431),i=n(2101),s=n(61176),r=n(38758),a=n(27543);const c={isOpen:!1,position:"right",navStructure:null};var d=n(25600),l=function(t,e){var n={};for(var o in t)Object.prototype.hasOwnProperty.call(t,o)&&e.indexOf(o)<0&&(n[o]=t[o
1]);if(null!=t&&"function"==typeof Object.getOwnPropertySymbols){var i=0;for(o=Object.getOwnPropertySymbols(t);i<o.length;i++)e.indexOf(o[i])<0&&Object.prototype.propertyIsEnumerable.call(t,o[i])&&(n[o[i]]=t[o[i]])}return n};const u={isOpen:!1,isTimerTypeOpen:!1,openedContentZones:{},closedByUserContentZones:{},recuringSPushes:{},count:0,pauseSmartPush:!1};var p=n(48366);const h={isActive:!1};var m=n(64110),g=n(5547);const v={type:g.N,filter:{}};const C=(0,r.E)(),f=(0,o.HY)({circleNav:function(t=c,e){switch(e.type){case a.Gg:return Object.assign(Object.assign({},t),{position:"left"});case a.b3:return Object.assign(Object.assign({},t),{position:"right"});case a.LQ:return Object.assign(Object.assign({},t),{isOpen:!0});case a.bR:return Object.assign(Object.assign({},t),{isOpen:!1});case a.DY:return Object.assign(Object.assign({},t),{navStructure:e.structure});default:return t}},smartPush:function(t=u,e){switch(e.type){case d.vO:return Object.assign(Object.assign({},t),{count:t.count+1,isOpen:!0});case d.Dh:return Object.assign(Object.assign({},t),{count:t.count-1,isOpen:t.count-1>0});case d.ls:return Object.assign(Object.assign({},t),{isTimerTypeOpen:!0,recuringSPushes:Object.assign(Object.assign({},t.recuringSPushes),{[e.spId]:{lastShown:Date.now()}})});case d.Zz:return Object.assign(Object.assign({},t),{isTimerTypeOpen:!1});case d.ai:return Object.assign(Object.assign({},t),{openedContentZones:Object.assign(Object.assign({},t.openedContentZones),{[e.spId]:!0})});case d.IF:const n=t.openedContentZones,o=e.spId,i=(n[o],l(n,["symbol"==typeof o?o:o+""]));return Object.assign(Object.assign({},t),{openedContentZones:i});case d.AO:return Object.assign(Object.assign({},t),{closedByUserContentZones:Object.assign(Object.assign({},t.closedByUserContentZones),{[e.spId]:!0}),recuringSPushes:Object.assign(Object.assign({},t.recuringSPushes),{[e.spId]:{lastShown:Date.now()}})});case d.nN:const{recuringSPushes:s}=t;return Object.assign(Object.assign({},t),{recuringSPushes:Object.assign(Object.assign({},s),e.store)});case d.GW:return Object.assign(Object.assign({},t),{pauseSmartPush:!0});case d.an:return Object.assign(Object.assign({},t),{pauseSmartPush:!1});default:return t}},tab:function(t=h,e){switch(e.type){case p.f:return Object.assign(Object.assign({},t),{isActive:!0});case p.I:return Object.assign(Object.assign({},t),{isActive:!1});default:return t}},shopCart:m.A,filter:function(t=v,e){return e.type===g.N?Object.assign(Object.assign({},t),{filter:e.filter}):t}});var y=n(15263);function _(t){return new y.c(function(e){e.next(t.getState());return t.subscribe(function(){e.next(t.getState())})})}class x{}const b=(0,i.C)(),P=(0,o.y$)(f,(0,s.tY)((0,o.Tw)(b)));b.run(C);const I=(t=>function(e=x){return class extends e{constructor(...e){super(...e),this.dispatch=t.dispatch,this.state$=_(t)}}})(P),S=_(P),w=P.dispatch,$=P},48366:(t,e,n)=>{n.d(e,{I:()=>i,f:()=>o});const o="FOCUS_TAB",i="BLUR_TAB"},64110:(t,e,n)=>{n.d(e,{A:()=>s,u:()=>i});var o=n(34747);const i={Items:[],GiftWrappable:null,GiftWrapping:{ProductId:"",Icon:"",Text:""},Promotions:[],PromotionForm:{Toggle:"",Button:"",Description:"",InputPlaceholder:"",ErrorEmptyCode:"",Close:"",Title:"",AjaxUrl:"",AddPromotionIcon:""},Summary:{SubTotal:"",TotalTax:"",DeliveryCost:"",OriginalDeliveryCost:"",CartDiscounts:null,DeliveryDiscounts:[],VoucherAmount:"",AmountToPay:"",TotalPriceWithTax:"",TotalPriceWithoutTax:"",PaymentRequired:"",AmountToPayDecimal:null,DeliveryCostDecimal:null,TotalTaxDecimal:null,CurrencyCode:null},DeliveryAddress:null,BillingAddress:null,SummaryLabel:null,CartOverviewLabels:{Category:"",CheckoutButton:"",ContinueButton:"",DeliveryFee:"",Promotion:"",Voucher:"",VoucherWillBeSentTo:"",FreeDelivery:"",Headline:"",Remove:"",Size:"",Subtotal:"",Summary:"",Tax:"",TotalItems:"",TotalPrice:"",AmountToPay:"",UnitPrice:"",BundleProducts:""},Notification:{Duration:0,Icon:"",Link:"",Style:"",Text:"",TDefinitions:[]},CurrentPdpInfo:null};function s(t=i,e){return e.type===o.S?Object.assign(Object.assign(Object.assign({},t),e.cart),{Items:[...e.cart.Items||[]],GiftWrapping:Object.assign({},e.cart.GiftWrapping),Promotions:[...e.cart.Promotions||[]],PromotionForm:Object.assign(Object.assign({},t.PromotionForm),e.cart.PromotionForm),Summary:Object.assign({},e.cart.Summary),CurrentPdpInfo:Object.assign(Object.assign({},t.CurrentPdpInfo),e.cart.CurrentPdpInfo||{})}):t}}}]);
2//# sourceMappingURL=/dist/NiveaX/./modules/ShopInitializer.1eb74f5b.js.f4a027f4.map

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.