1"use strict";(self.webpackChunk_gp_web_frontend=self.webpackChunk_gp_web_frontend||[]).push([["zone-carousel"],{
1"./src/ts/components/zone-carousel/zone-carousel.ts":(e,t,s)=>{s.r(t),s.d(t,{init:()=>a,manageLayoutDisplay:()=>c,onClickScrollCarousel:()=>l});var r=s("../shared-types/frontend/core/store.ts"),o=s("../utils/dist/bounce/bounce.js"),n=s("./src/ts/utils/inview.ts");const l=(e,t)=>{const s=e.target.matches("button")?e.target:e.target.closest("button");if(!s||!s.matches(".js-carousel-left-btn, .js-carousel-right-btn"))return;const r=s.matches(".js-carousel-right-btn"),o=t.querySelector(".js-carousel-container"),n=t.querySelectorAll(".js-carousel-tile"),[l]=n,c=l.clientWidth+24,i=o.scrollLeft%c;let a=r?o.scrollLeft+c-i:i?o.scrollLeft-i:o.scrollLeft-c;r&&a>o.scrollWidth-o.clientWidth-c?a=o.scrollWidth-c:!r&&o.scrollLeft+o.clientWidth>=o.scrollWidth?a=c*(n.length-3):a<=16&&(a=0),o.scrollLeft=a},c=e=>{const t=e.querySelector(".js-carousel-container"),s=t.scrollLeft,r=t.clientWidth,o=t.scrollWidth,n=e.querySelector(".js-carousel-left-btn"),l=e.querySelector(".js-carousel-right-btn");s+r>=o?l.classList.remove("active"):l.classList.add("active"),s<=16?n.classList.remove("active"):n.classList.add("active")},i=(e,t)=>{const s=()=>{c(e)},i=(0,o.r)(s,500);return i(),window.addEventListener("resize",i),e.addEventListener("click",(t=>{l(t,e)})),(0,n.W0)(e).then((()=>{t.dispatch({type:r.Us.DataLayerPush,payload:{action:"zone - carousel",label:"zone - carousel - view",event:"in-view",category:"TO Impression"}})})),e.querySelector(".js-carousel-container").addEventListener("scroll",s),{resizeListener:i,scrollListener:s}},a=(e,t)=>{const s=Math.floor(1e4*Math.random());return{listeners:i(e,t),componentId:`zone-carousel-${s}`}}},
1"./src/ts/utils/inview.ts":(e,t,s)=>{function r({element:e,observerOptions:t={},isInViewportCallback:s,isNotInViewportCallback:r}){new IntersectionObserver(((e,t)=>{e.forEach((e=>{e.isIntersecting&&s&&(r||t.unobserve(e.target),s(e)),!e.isIntersecting&&r&&(s||t.unobserve(e.target),r(e))}))}),t).observe(e)}function o(e,t){return e?new Promise((s=>{r({element:e,observerOptions:t,isInViewportCallback:s})})):Promise.reject()}s.d(t,{W0:()=>o,oO:()=>r})},
1"../utils/dist/bounce/bounce.js":(e,t)=>{t.r=void 0,t.r=(e,t)=>{let s=null;return()=>{s&&clearTimeout(s),s=setTimeout(e,t)}}}
1}]);
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.