{"version":3,"file":"component-productCarousel.chunk.js","mappings":"wMAGe,MAAMA,UCCN,MACXC,cACIC,EAAA,YAAW,OAAO,GAClBC,KAAKC,eACT,CACIC,sBACA,OAAO,GACX,CACIC,eACA,MAAO,CAAC,CACZ,CACAC,iBACI,IAAK,MAAMC,KAAWL,KAAKG,SACvB,GAAIG,OAAOC,WAAWC,IAAIH,GAAU,CAChC,MAAMI,EAAMT,KAAKG,SAASE,GAASK,KAAKV,MACxCM,OAAOC,WAAWC,IAAIH,GAASM,KAAKC,IAChCH,EAAIG,EAAQ,IAEhBN,OAAOC,WAAWM,OAAOR,EAC7B,CAER,CACAJ,gBACID,KAAKc,UAAY,CAAC,EAClB,IAAK,MAAMT,KAAWL,KAAKG,SACvB,GAAIH,KAAKG,SAASE,GAAU,CACxB,MAAMU,EAAUf,KAAKG,SAASE,GAASK,KAAKV,MAC5CA,KAAKc,UAAUT,GAAWU,EAC1Bf,KAAKgB,KAAKX,EAASU,EACvB,CAER,CACAE,kBACI,IAAK,MAAMZ,KAAWL,KAAKc,UACvBd,KAAKkB,OAAOb,EAASL,KAAKc,UAAUT,GAE5C,CACAc,cAAcC,GACV,IAAK,IAAIC,KAAOD,EACZ,GAAIA,EAAOE,eAAeD,GACtB,OAAO,EAEf,OAAO,CACX,CAQAE,KAAKlB,EAASO,GACV,OAAO,SAAcP,EAASO,EAClC,CAQAI,KAAKX,EAASmB,GACLA,GAEL,OAAYnB,EAASmB,EACzB,CAQAN,OAAOb,EAASmB,GACPA,GAEL,QAAanB,EAASmB,EAC1B,CACAC,kBAAkBC,GACd,OAAO,OAAkBA,EAC7B,CACAC,qBAAqBD,GACjB,OAAO,OAAwBA,EACnC,CACAE,WACI5B,KAAKiB,iBACT,GDhFAnB,YAAY+B,GACRC,QACA9B,KAAK+B,SAAW,IAAIC,sBAAqBC,IACrC,GAAIA,EAAQ,GAAGC,eAAgB,CACb,IAAID,EAAQ,GAAGE,OAAOC,iBAAiB,4BAC/CC,SAAQ,CAACC,EAAMC,KACjBC,YAAW,KACPF,EAAKG,aAAa,gBAAiB,OAAO,GAC3C,IAAMF,EAAE,IAEfvC,KAAK+B,SAASW,UAAUT,EAAQ,GAAGE,OACvC,IACD,CACCQ,UAAW,KAEf3C,KAAK4C,kBAAoBf,EACzB7B,KAAK4C,kBAAkBH,aAAa,sBAAuB,QAC3DzC,KAAK+B,SAASc,QAAQ7C,KAAK4C,kBAC/B,CAIIE,UACA,OAAO9C,KAAK4C,iBAChB,CACIG,eACA,MAAMC,EAAc,CAAC,EACfC,EAAUC,OAAOC,OAAO,CAAC,EAAGnD,KAAK8C,IAAIM,SAa3C,OAZuBF,OAAOG,KAAKJ,GAASK,QAAQC,GAAUA,EAAMC,SAAS,YAC9DnB,SAASkB,IACpB,MAAME,EAAa5D,EAAc6D,eAAeH,GAChD,IAAII,EAEAA,EADAV,EAAQM,GAAOC,SAAS,MAAQP,EAAQM,GAAOC,SAAS,KAC1CI,KAAKC,MAAMZ,EAAQM,GAAOO,QAAQ,KAAM,MAGxCjE,EAAckE,YAAYd,EAAQM,IAEpDP,EAAYS,GAAcE,CAAW,KAElC,OAAWX,EACtB,CACIgB,qBACA,OAAOhE,KAAKiE,UAAUnE,YAAYoE,IACtC,CACAC,mBAAmBC,GACf,IAAIC,EACJ,OAAQD,GACJ,IAAK,QACDC,GAAe,EACf,MACJ,IAAK,OACDA,GAAe,EACf,MACJ,IAAK,OACDA,EAAe,KACf,MACJ,QACIA,EAAeD,EAGvB,OAAOC,CACX,CACAF,sBAAsB9C,GAClB,MAAMiD,EAAMjD,EAAIyC,QAAQ,SAAU,IAClC,MAAO,GAAGQ,EAAIC,OAAO,GAAGC,sBAAsBF,EAAIG,MAAM,IAC5D,CAUAC,IAAIC,EAAQC,EAAI/C,EAAU7B,KAAK8C,IAAK+B,EAAW,MACtChD,GAAY8C,GAAWC,IAEvBC,EAQD,OAAQhD,EAAS8C,EAAQE,GAAWC,IAC5BA,GACAA,EAAEC,kBACNH,EAAGE,EAAE,IAVT,OAAQjD,EAAS8C,GAASG,IAClBA,GACAA,EAAEC,kBACNH,EAAGE,EAAE,IAUjB,CASAE,KAAKL,EAAQC,EAAI/C,EAAU7B,KAAK8C,KAC5B,QAASjB,EAAS8C,EAAQC,EAC9B,CAQAK,KAAKN,EAAQ9C,EAAU7B,KAAK8C,KACxB,QAASjB,EAAS8C,EACtB,CAQAO,MAAMP,EAAQ9C,EAAU7B,KAAK8C,KACzB,SAAUjB,EAAS8C,EACvB,CAKAQ,QAAQC,EAAW/E,EAAU,IACzBL,KAAKuB,KAAKvB,KAAKE,gBAAgBmF,cAAcC,KAAM,CAC/CF,UAAWA,GAAapF,KAAK8C,IAC7BzC,WAER,CAQAkF,WAAWH,EAAW/E,EAASmF,EAAMC,GAAQ,EAAOC,GAChD1F,KAAKuB,KAAKvB,KAAKE,gBAAgBmF,cAAcM,KAAM,CAC/CP,UAAWA,GAAapF,KAAK8C,IAC7BzC,UACAmF,OACAC,QACAC,QAER,E,qGE3JJ,SAAW,CAAC,KAAY,KAAM,OACf,MAAME,UAAwB,IACzC9F,YAAY+B,GACRC,MAAMD,GACN7B,KAAK6F,eAAiB7F,KAAK+C,SAAS+C,SACpC9F,KAAK+F,MACT,CACIC,cACA,MAAO,CACHC,OAAQ,CACJC,KAAM,SACNC,KAAM,iBACNC,MAAO,gBAGnB,CACIC,gBACA,MAAO,CACHC,QAAS,oBACTC,QAAS,eACTC,QAAS,CACLC,KAAM,+BAGlB,CACAV,OACQ,IAAI/F,KAAK8C,IAAIV,iBAAiBpC,KAAKqG,UAAUE,UAAUG,OAAS,GAChE,oBAA8B,CAC1B5D,IAAK9C,KAAK8C,IACV6D,WAAW,EACXC,YAAY,IAEhB5G,KAAK6G,gBACL7G,KAAK8G,oBAGD9G,KAAK8C,IAAIiE,QAAQ,0BACjB/G,KAAK8C,IAAIiE,QAAQ,yBAAyBC,QAGtD,CACAC,kBAAkBd,GAEd,OADYA,EAAK/D,iBAAiB,IAAMpC,KAAKgG,QAAQC,OAAOG,OAC/CM,MACjB,CACAQ,gBAAgBjB,GACZ,IAAIkB,EAAaC,SAASC,cAAcrH,KAAKqG,UAAUG,QAAQC,MAC3DU,GACAA,EAAWG,iBAAiB,SAAS,KAC7BtH,KAAK6F,gBACLsB,EAAWI,UAAUC,IAAI,QACzBL,EAAWI,UAAUP,OAAO,SAC5BhH,KAAK6F,gBAAiB,EACtBI,EAAOH,SAAS2B,OAChBxB,EAAOyB,OAAOC,MAAQ,IACtB1B,EAAO2B,WAGPT,EAAWI,UAAUC,IAAI,SACzBL,EAAWI,UAAUP,OAAO,QAC5BhH,KAAK6F,gBAAiB,EACtBI,EAAOH,SAAS+B,QAChB5B,EAAOyB,OAAOC,MAAQ,IACtB1B,EAAO2B,SACX,GAGZ,CACAf,gBACI,MAAMiB,EAAa9H,KAAKiH,kBAAkBjH,KAAK8C,IAAIuE,cAAc,IAAMrH,KAAKgG,QAAQC,OAAOE,OAC3F,GAAmB,IAAf2B,EAEA,YADA9H,KAAK+H,qBAGT,MAAM9B,EAAS,IAAI,KAAOjG,KAAK8C,IAAK,CAChCkF,cAAe,IACfC,gBAAgB,EAChBC,KAAMlI,KAAK+C,SAASmF,MAAQJ,EAAa,EACzCK,aAAc,EACdrC,WAAU9F,KAAK+C,SAAS+C,UAClB,CACEsC,MAAO,EACPC,sBAAsB,GAG9BV,MAAO3H,KAAK+C,SAAS+C,SAAW,IAAO,IACvCwC,YAAa,CACT,CAAC,EAAAC,GAAA,gBAAoB,CACjBP,cAAe,KAEnB,CAAC,EAAAO,GAAA,iBAAqB,CAClBP,cAAe,IAGvBQ,WAAY,CACRC,OAAQ,sBACRC,OAAQ,uBAEZC,KAAM,CACFC,SAAS,KAGjB5I,KAAKkH,gBAAgBjB,EACzB,CACA8B,qBACQ/H,KAAK8C,IAAIiE,QAAQ,0BACjB/G,KAAK8C,IAAIiE,QAAQ,yBAAyBC,QAElD,CAEA6B,yBACI,IAAIC,EAAO9I,KAAK8C,IAAIuE,cAAcrH,KAAKqG,UAAUE,SAC7CwC,EAAO,CACP,eAAkB,qBAClB,KAAQ,gBAA2B/I,KAAK8C,KACxC,eAAkB,oBAA+BgG,GACjD,OAAU,GAEd,yBAAoCC,EACxC,E,mCC5HG,MAAMR,EAAK,CACdS,OAAQ,EACRC,eAAgB,IAChBC,gBAAiB,KACjBC,QAAS,K,kCCJb,MA8BA,EA9BsB,CAClBC,gBAAiB,EAAGtG,MAAK6D,aAAY,EAAMC,cAAa,MACpD,IAAK9D,EACD,KAAM,sCAEVA,EAAIyE,UAAUC,IAAI,UAClB,IAAI6B,EAASvG,EAAIwG,kBACjBD,EAAO9B,UAAUC,IAAI,kBACrB,IAAK,IAAI+B,KAAUF,EAAOG,SACtBD,EAAOhC,UAAUC,IAAI,gBAEzB,GAAIb,EAAW,CACX,IAAI8C,EAAQrC,SAASsC,cAAc,UACnCD,EAAMlC,UAAUC,IAAI,sBACpBiC,EAAMhH,aAAa,aAAc,YACjCgH,EAAMhH,aAAa,OAAQ,UAC3B,IAAIkH,EAAQvC,SAASsC,cAAc,UACnCC,EAAMpC,UAAUC,IAAI,sBACpBiC,EAAMhH,aAAa,aAAc,QACjCgH,EAAMhH,aAAa,OAAQ,UAC3BK,EAAI8G,YAAYH,GAChB3G,EAAI8G,YAAYD,EACpB,CACA,GAAI/C,EAAY,CACZ,IAAIiD,EAAWzC,SAASsC,cAAc,OACtCG,EAAStC,UAAUC,IAAI,qBACvB1E,EAAI8G,YAAYC,EACpB,G,0CC3BR,MAAMC,EAAqB,sHACdrI,EAAqBC,GAAWA,EAAO2F,cAAcyC,GACrDC,EAA2BrI,GAAWA,EAAOU,iBAAiB0H,E","sources":["webpack:///./assets/src/scripts/base/baseComponent.ts","webpack:///./assets/src/scripts/base/commonInterface.ts","webpack:///./assets/src/scripts/components/productCarousel.ts","webpack:///./assets/src/scripts/constants/styles.ts","webpack:///./assets/src/scripts/utils/carouselUtils.ts","webpack:///./assets/src/scripts/utils/focusableElementUtils.ts"],"sourcesContent":["import deepFreeze from '../utils/freeze';\nimport CommonInterface from './commonInterface';\nimport Bean from 'bean';\nexport default class BaseComponent extends CommonInterface {\n    /**\n     *\n     * constructor\n     *\n     * @param {Element} element\n     */\n    constructor(element) {\n        super();\n        this.observer = new IntersectionObserver(entries => {\n            if (entries[0].isIntersecting) {\n                const items = [...entries[0].target.querySelectorAll('[data-animated=\"false\"]')];\n                items.forEach((item, i) => {\n                    setTimeout(() => {\n                        item.setAttribute('data-animated', 'true');\n                    }, 300 * i);\n                });\n                this.observer.unobserve(entries[0].target);\n            }\n        }, {\n            threshold: 0.5\n        });\n        this._componentElement = element;\n        this._componentElement.setAttribute('data-component-init', 'true');\n        this.observer.observe(this._componentElement);\n    }\n    /**\n     * @returns {HTMLElement}\n     */\n    get $el() {\n        return this._componentElement;\n    }\n    get $options() {\n        const compOptions = {};\n        const options = Object.assign({}, this.$el.dataset);\n        const optionsEntires = Object.keys(options).filter((entry) => entry.includes('option'));\n        optionsEntires.forEach((entry) => {\n            const cleanEntry = BaseComponent.cleanOptionKey(entry);\n            let optionValue;\n            if (options[entry].includes('{') && options[entry].includes('}')) {\n                optionValue = JSON.parse(options[entry].replace(/'/g, '\"'));\n            }\n            else {\n                optionValue = BaseComponent.convertType(options[entry]);\n            }\n            compOptions[cleanEntry] = optionValue;\n        });\n        return deepFreeze(compOptions);\n    }\n    get COMPONENT_NAME() {\n        return this.__proto__.constructor.name;\n    }\n    static convertType(option) {\n        let optionReturn;\n        switch (option) {\n            case 'false':\n                optionReturn = false;\n                break;\n            case 'true':\n                optionReturn = true;\n                break;\n            case 'null':\n                optionReturn = null;\n                break;\n            default:\n                optionReturn = option;\n                break;\n        }\n        return optionReturn;\n    }\n    static cleanOptionKey(key) {\n        const str = key.replace('option', '');\n        return `${str.charAt(0).toLocaleLowerCase()}${str.slice(1)}`;\n    }\n    /**\n     *\n     * $on\n     *\n     * @param {String} events\n     * @param {Function} cb\n     * @param {Element} [element = this.$el]\n     * @param {Array|String|Element} [elements = null]\n     */\n    $on(events, cb, element = this.$el, elements = null) {\n        if (!element || !events || !cb)\n            return;\n        if (!elements) {\n            Bean.on(element, events, (e) => {\n                if (e)\n                    e.stopPropagation();\n                cb(e);\n            });\n        }\n        else {\n            Bean.on(element, events, elements, (e) => {\n                if (e)\n                    e.stopPropagation();\n                cb(e);\n            });\n        }\n    }\n    /**\n     *\n     * $one\n     *\n     * @param {String} events\n     * @param {Function} cb\n     * @param {Element} [element = this.$el]\n     */\n    $one(events, cb, element = this.$el) {\n        Bean.one(element, events, cb);\n    }\n    /**\n     *\n     * $off\n     *\n     * @param {String} events\n     * @param {Element} [element = this.$el]\n     */\n    $off(events, element = this.$el) {\n        Bean.off(element, events);\n    }\n    /**\n     *\n     * $fire\n     *\n     * @param {String} events\n     * @param {Element} [element = this.$el]\n     */\n    $fire(events, element = this.$el) {\n        Bean.fire(element, events);\n    }\n    /**\n     *\n     * @param {HTMLElement} [container]\n     */\n    loading(container, message = '') {\n        this.EMIT(this.CUSTOM_MESSAGES.LOADER_EVENTS.show, {\n            container: container || this.$el,\n            message\n        });\n    }\n    /**\n     *\n     * @param {HTMLElement} [container]\n     * @param {String} [message]\n     * @param {String} [icon]\n     * @param {Boolean} [error=false]\n     */\n    endLoading(container, message, icon, error = false, time) {\n        this.EMIT(this.CUSTOM_MESSAGES.LOADER_EVENTS.hide, {\n            container: container || this.$el,\n            message,\n            icon,\n            error,\n            time\n        });\n    }\n}\n","import config from 'gia/config';\nimport EventBus from '../libs/eventBus';\nimport CustomMessages from '../constants/customMessages';\nimport { getFirstFocusable, getAllFocusableElements } from '../utils/focusableElementUtils';\nexport default class CommonInterface {\n    constructor() {\n        config.set('log', true);\n        this._grabMessages();\n    }\n    get CUSTOM_MESSAGES() {\n        return CustomMessages;\n    }\n    get Messages() {\n        return {};\n    }\n    _checkMessages() {\n        for (const message in this.Messages) {\n            if (window.eventQueue.get(message)) {\n                const ref = this.Messages[message].bind(this);\n                window.eventQueue.get(message).map((payload) => {\n                    ref(payload);\n                });\n                window.eventQueue.delete(message);\n            }\n        }\n    }\n    _grabMessages() {\n        this._messages = {};\n        for (const message in this.Messages) {\n            if (this.Messages[message]) {\n                const __ref__ = this.Messages[message].bind(this);\n                this._messages[message] = __ref__;\n                this.GRAB(message, __ref__);\n            }\n        }\n    }\n    _ungrabMessages() {\n        for (const message in this._messages) {\n            this.UNGRAB(message, this._messages[message]);\n        }\n    }\n    objectIsEmpty(object) {\n        for (var key in object) {\n            if (object.hasOwnProperty(key))\n                return false;\n        }\n        return true;\n    }\n    /**\n     *\n     * EMIT\n     *\n     * @param {string} message\n     * @param {Object} payload\n     */\n    EMIT(message, payload) {\n        return EventBus.emit(message, payload);\n    }\n    /**\n     *\n     * GRAB\n     *\n     * @param {string} message\n     * @param {Function} callBack\n     */\n    GRAB(message, callBack) {\n        if (!callBack)\n            return;\n        EventBus.on(message, callBack);\n    }\n    /**\n     *\n     * UNGRAB\n     *\n     * @param {string} message\n     * @param {Function} callBack\n     */\n    UNGRAB(message, callBack) {\n        if (!callBack)\n            return;\n        EventBus.off(message, callBack);\n    }\n    getFirstFocusable(parent) {\n        return getFirstFocusable(parent);\n    }\n    getFocusableElements(parent) {\n        return getAllFocusableElements(parent);\n    }\n    _destroy() {\n        this._ungrabMessages();\n    }\n}\n","import BaseComponent from '../base/baseComponent';\nimport { MQ } from '../constants/styles';\nimport analyticsUtils from '../utils/analyticsUtils';\nimport carouselUtils from '../utils/carouselUtils';\nimport Swiper, { A11y, Navigation, Autoplay } from 'swiper';\nSwiper.use([Navigation, A11y, Autoplay]);\nexport default class productCarousel extends BaseComponent {\n    constructor(element) {\n        super(element);\n        this.autoplayStatus = this.$options.autoplay;\n        this.init();\n    }\n    get CLASSES() {\n        return {\n            swiper: {\n                main: 'swiper',\n                list: 'swiper-wrapper',\n                slide: 'swiper-slide',\n            },\n        };\n    }\n    get SELECTORS() {\n        return {\n            context: '.product-carousel',\n            product: '.producttile',\n            buttons: {\n                play: '.productcarousel-playbutton',\n            },\n        };\n    }\n    init() {\n        if ([...this.$el.querySelectorAll(this.SELECTORS.product)].length > 0) {\n            carouselUtils.setSwiperMarkup({\n                $el: this.$el,\n                hasArrows: true,\n                hasBullets: false,\n            });\n            this.swiperHandler();\n            this.prepareDatalayer();\n        }\n        else {\n            if (this.$el.closest('.experience-component')) {\n                this.$el.closest('.experience-component').remove();\n            }\n        }\n    }\n    getNumberOfSlides(list) {\n        let cards = list.querySelectorAll('.' + this.CLASSES.swiper.slide);\n        return cards.length;\n    }\n    handlePlayPause(swiper) {\n        let playButton = document.querySelector(this.SELECTORS.buttons.play);\n        if (playButton) {\n            playButton.addEventListener('click', () => {\n                if (this.autoplayStatus) {\n                    playButton.classList.add('play');\n                    playButton.classList.remove('pause');\n                    this.autoplayStatus = false;\n                    swiper.autoplay.stop();\n                    swiper.params.speed = 300;\n                    swiper.update();\n                }\n                else {\n                    playButton.classList.add('pause');\n                    playButton.classList.remove('play');\n                    this.autoplayStatus = true;\n                    swiper.autoplay.start();\n                    swiper.params.speed = 4000;\n                    swiper.update();\n                }\n            });\n        }\n    }\n    swiperHandler() {\n        const listLength = this.getNumberOfSlides(this.$el.querySelector('.' + this.CLASSES.swiper.list));\n        if (listLength === 0) {\n            this.autoRemoveCarousel();\n            return;\n        }\n        const swiper = new Swiper(this.$el, {\n            slidesPerView: 1.5,\n            centeredSlides: false,\n            loop: this.$options.loop && listLength > 3,\n            spaceBetween: 2,\n            autoplay: this.$options.autoplay\n                ? {\n                    delay: 1,\n                    disableOnInteraction: true,\n                }\n                : false,\n            speed: this.$options.autoplay ? 4000 : 300,\n            breakpoints: {\n                [MQ.tabletPortrait]: {\n                    slidesPerView: 2.6,\n                },\n                [MQ.tabletLandscape]: {\n                    slidesPerView: 4,\n                },\n            },\n            navigation: {\n                nextEl: '.swiper-button-next',\n                prevEl: '.swiper-button-prev',\n            },\n            a11y: {\n                enabled: true,\n            },\n        });\n        this.handlePlayPause(swiper);\n    }\n    autoRemoveCarousel() {\n        if (this.$el.closest('.experience-component')) {\n            this.$el.closest('.experience-component').remove();\n        }\n    }\n    // datalayer\n    async prepareDatalayer() {\n        let tile = this.$el.querySelector(this.SELECTORS.product);\n        let data = {\n            'forcedPipeline': 'ProductImpressions',\n            'pids': analyticsUtils.getListPids(this.$el),\n            'item_list_name': analyticsUtils.getTileListName(tile),\n            'offset': 1,\n        };\n        analyticsUtils.passThroughProcessor(data);\n    }\n}\n","export const MQ = {\n    mobile: 0,\n    tabletPortrait: 768,\n    tabletLandscape: 1024,\n    desktop: 1280\n};\n","const carouselUtils = {\n    setSwiperMarkup: ({ $el, hasArrows = true, hasBullets = true, }) => {\n        if (!$el) {\n            throw 'setSwiperMarkup requires an element';\n        }\n        $el.classList.add('swiper');\n        let $inner = $el.firstElementChild;\n        $inner.classList.add('swiper-wrapper');\n        for (let $child of $inner.children) {\n            $child.classList.add('swiper-slide');\n        }\n        if (hasArrows) {\n            let $prev = document.createElement('button');\n            $prev.classList.add('swiper-button-prev');\n            $prev.setAttribute('aria-label', 'Previous');\n            $prev.setAttribute('type', 'button');\n            let $next = document.createElement('button');\n            $next.classList.add('swiper-button-next');\n            $prev.setAttribute('aria-label', 'Next');\n            $prev.setAttribute('type', 'button');\n            $el.appendChild($prev);\n            $el.appendChild($next);\n        }\n        if (hasBullets) {\n            let $bullets = document.createElement('div');\n            $bullets.classList.add('swiper-pagination');\n            $el.appendChild($bullets);\n        }\n    },\n};\nexport default carouselUtils;\n","const focusableSelectors = 'button, [href]:not([aria-hidden=\"true\"]), input, select, textarea, [tabindex]:not([tabindex=\"-1\"]), [role=\"button\"]';\nexport const getFirstFocusable = (parent) => parent.querySelector(focusableSelectors);\nexport const getAllFocusableElements = (parent) => parent.querySelectorAll(focusableSelectors);\n"],"names":["BaseComponent","constructor","config","this","_grabMessages","CUSTOM_MESSAGES","Messages","_checkMessages","message","window","eventQueue","get","ref","bind","map","payload","delete","_messages","__ref__","GRAB","_ungrabMessages","UNGRAB","objectIsEmpty","object","key","hasOwnProperty","EMIT","callBack","getFirstFocusable","parent","getFocusableElements","_destroy","element","super","observer","IntersectionObserver","entries","isIntersecting","target","querySelectorAll","forEach","item","i","setTimeout","setAttribute","unobserve","threshold","_componentElement","observe","$el","$options","compOptions","options","Object","assign","dataset","keys","filter","entry","includes","cleanEntry","cleanOptionKey","optionValue","JSON","parse","replace","convertType","COMPONENT_NAME","__proto__","name","static","option","optionReturn","str","charAt","toLocaleLowerCase","slice","$on","events","cb","elements","e","stopPropagation","$one","$off","$fire","loading","container","LOADER_EVENTS","show","endLoading","icon","error","time","hide","productCarousel","autoplayStatus","autoplay","init","CLASSES","swiper","main","list","slide","SELECTORS","context","product","buttons","play","length","hasArrows","hasBullets","swiperHandler","prepareDatalayer","closest","remove","getNumberOfSlides","handlePlayPause","playButton","document","querySelector","addEventListener","classList","add","stop","params","speed","update","start","listLength","autoRemoveCarousel","slidesPerView","centeredSlides","loop","spaceBetween","delay","disableOnInteraction","breakpoints","MQ","navigation","nextEl","prevEl","a11y","enabled","async","tile","data","mobile","tabletPortrait","tabletLandscape","desktop","setSwiperMarkup","$inner","firstElementChild","$child","children","$prev","createElement","$next","appendChild","$bullets","focusableSelectors","getAllFocusableElements"],"sourceRoot":""}