{"version":3,"sources":["node_modules/browser-pack/_prelude.js","frontend/Common/js/common/componentSlider.js","frontend/Common/js/modules/ImagePromoGrid/entry/image-promo-grid.js","frontend/Common/js/modules/ImagePromoGrid/initImagePromoGrid.js"],"names":["r","e","n","t","o","i","f","c","require","u","a","Error","code","p","exports","call","length","1","module","_jquery","__esModule","default","defaultConfig","dots","infinite","speed","slidesToShow","slidesToScroll","accessibility","autoplay","responsive","breakpoint","settings","el","customConfig","$el","$slider","find","$slideNextButton","$slidePrevButton","$slideBar","config","show","nextArrow","prevArrow","on","event","slick","css","inset-inline-start","width","options","slideCount","currentSlide","nextSlide","$slides","classList","add","slide","remove","createSlider","destroySlider","_initImagePromoGrid","document","addEventListener","_componentSlider","CONTAINER_FULL_BREAKPOINT","CONTAINER_70_BREAKPOINT","querySelectorAll","forEach","parentIndex","querySelector","numberChildren","listEl","container","closest","contains","getBreakpoint","mobileFirst","dir","rtl","dataset","isRtl","let","activeSlider","window","innerWidth","sliderControls"],"mappings":"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","file":"image-promo-grid-generated.js","sourcesContent":["(function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c=\"function\"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error(\"Cannot find module '\"+i+\"'\");throw a.code=\"MODULE_NOT_FOUND\",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u=\"function\"==typeof require&&require,i=0;i {\r\n const $el = $(el);\r\n const $slider = $el.find(\".js-slide-container\");\r\n const $slideNextButton = $el.find(\".js-slide-next-button\");\r\n const $slidePrevButton = $el.find(\".js-slide-prev-button\");\r\n const $slideBar = $el.find(\".js-slide-position-bar\");\r\n\r\n $slider.show();\r\n\r\n const config = {\r\n nextArrow: $slideNextButton,\r\n prevArrow: $slidePrevButton,\r\n ...defaultConfig,\r\n ...customConfig,\r\n };\r\n\r\n if (config.slidesToShow > 2) {\r\n config.responsive = [\r\n {\r\n breakpoint: 780,\r\n settings: {\r\n slidesToShow: 2,\r\n },\r\n },\r\n ...config.responsive,\r\n ];\r\n }\r\n\r\n if (config.slidesToShow > 3) {\r\n config.responsive = [\r\n {\r\n breakpoint: 910,\r\n settings: {\r\n slidesToShow: 3,\r\n },\r\n },\r\n ...config.responsive,\r\n ];\r\n }\r\n\r\n if (config.slidesToShow > 4) {\r\n config.responsive = [\r\n {\r\n breakpoint: 1100,\r\n settings: {\r\n slidesToShow: 4,\r\n },\r\n },\r\n ...config.responsive,\r\n ];\r\n }\r\n\r\n // need to bind `init` BEFORE initializing the slider\r\n $slider.on(\"init\", function (event, slick) {\r\n // setting left: 0 gives a start point to smoothly animate from, in case\r\n // the value is not set in CSS (which can cause jumpy first anim)\r\n $slideBar.css({\r\n \"inset-inline-start\": 0,\r\n width: 100 * (slick.options.slidesToShow / slick.slideCount) + \"%\",\r\n });\r\n });\r\n\r\n $slider.on(\"beforeChange\", function (event, slick, currentSlide, nextSlide) {\r\n // Updating bar width every change, in case the viewport has changed\r\n // responsive sliders may have different slidesToShow value\r\n $slideBar.css({\r\n \"inset-inline-start\": (nextSlide / slick.slideCount) * 100 + \"%\",\r\n width: 100 * (slick.options.slidesToShow / slick.slideCount) + \"%\",\r\n });\r\n\r\n // Add class to slide while animating\r\n\r\n slick.$slides[currentSlide].classList.add(\"slick-animating\");\r\n slick.$slides[nextSlide].classList.add(\"slick-animating\");\r\n });\r\n\r\n $slider.on(\"afterChange\", function (event, slick, currentSlide) {\r\n for (const slide of slick.$slides) {\r\n slide.classList.remove(\"slick-animating\");\r\n }\r\n });\r\n\r\n const createSlider = () => {\r\n $slider.slick(config);\r\n };\r\n\r\n const destroySlider = () => {\r\n // This removed all html in the slider when I tried it\r\n // need to see if this works if the responsive setting isn't doing unslick\r\n //$slider.slick(\"unslick\");\r\n };\r\n\r\n createSlider();\r\n\r\n return {\r\n createSlider,\r\n destroySlider,\r\n };\r\n};\r\n","import initImagePromoGrid from \"../initImagePromoGrid.js\";\r\n\r\ndocument.addEventListener(\"DOMContentLoaded\", () => {\r\n initImagePromoGrid();\r\n});\r\n","import componentSlider from \"../../common/componentSlider.js\";\r\n\r\nconst CONTAINER_FULL_BREAKPOINT = 681;\r\nconst CONTAINER_70_BREAKPOINT = 781;\r\n\r\n/**\r\n * Get breakpoint depending on the container type.\r\n * Breakpoint determines when component shifts from carousel to grid layout\r\n * @param {HTMLElement} el\r\n * @returns {number | null} - Breakpoint in pixels or null if there's no breakpoint\r\n */\r\nfunction getBreakpoint(el) {\r\n const container = el.closest(\".container\");\r\n\r\n if (!container) return CONTAINER_FULL_BREAKPOINT;\r\n\r\n if (container.classList.contains(\"container--100\"))\r\n return CONTAINER_FULL_BREAKPOINT;\r\n else if (container.classList.contains(\"container--70\"))\r\n return CONTAINER_70_BREAKPOINT;\r\n else if (container.classList.contains(\"container--50-50\")) return null;\r\n else return CONTAINER_FULL_BREAKPOINT;\r\n}\r\n\r\nexport default () => {\r\n document\r\n .querySelectorAll(\".js-image-promo-grid\")\r\n .forEach((el, parentIndex) => {\r\n if (document.querySelector(\".is-page-editor\")) return;\r\n\r\n const config = {\r\n slidesToShow: 1,\r\n slidesToScroll: 1,\r\n };\r\n\r\n const numberChildren = el.querySelectorAll(\r\n \".js-slide-container > *\",\r\n ).length;\r\n\r\n const listEl = el.querySelector(\".image-promo-grid__list\");\r\n\r\n if (numberChildren < 4) {\r\n listEl.classList.add(\"image-promo-grid__list--fewer-than-four\");\r\n } else if (numberChildren === 5) {\r\n listEl.classList.add(\"image-promo-grid__list--five-items\");\r\n } else if (numberChildren === 6) {\r\n listEl.classList.add(\"image-promo-grid__list--six-items\");\r\n }\r\n\r\n if (numberChildren < 2) {\r\n el.classList.add(\"image-promo-grid--no-slider\");\r\n return;\r\n }\r\n\r\n const breakpoint = getBreakpoint(el);\r\n\r\n config.mobileFirst = true;\r\n if (breakpoint) {\r\n config.responsive = [\r\n {\r\n breakpoint: breakpoint,\r\n settings: \"unslick\",\r\n },\r\n ];\r\n }\r\n\r\n if (document.dir === \"rtl\" || el.closest('[dir=\"rtl\"]')) {\r\n config.rtl = true;\r\n el.dataset.isRtl = \"true\";\r\n }\r\n\r\n let activeSlider = window.innerWidth < breakpoint;\r\n\r\n const sliderControls = componentSlider(el, config);\r\n\r\n if (breakpoint) {\r\n window.addEventListener(\"resize\", () => {\r\n if (!activeSlider && window.innerWidth < breakpoint) {\r\n activeSlider = true;\r\n sliderControls.createSlider();\r\n }\r\n\r\n if (activeSlider && window.innerWidth >= breakpoint) {\r\n activeSlider = false;\r\n }\r\n });\r\n }\r\n });\r\n};\r\n"]}