{"version":3,"sources":["work-gallery.js"],"names":["_createForOfIteratorHelper","r","e","t","Symbol","iterator","Array","isArray","_unsupportedIterableToArray","length","_n","F","s","n","done","value","f","TypeError","o","a","u","call","next","return","_arrayLikeToArray","toString","slice","constructor","name","from","test","Overlay","modifiers","push","bindListeners","list","_step","_iterator","_loop","element","addEventListener","preventDefault","stopPropagation","swiper","selector","arguments","undefined","slide","render","callback","_this","this","Swiper","content","querySelector","initialSlide","lazyload","loadPrevNext","loadPrevNextAmount","loadOnTransitionStart","navigation","nextEl","prevEl","disabledClass","mousewheel","plugins","SwiperPluginLazyload","SwiperPluginNavigation","SwiperPluginMousewheel","slideIndex","on","index","state","newIndex","querySelectorAll","scrollTo","top","left","behavior","swiperSrcset","base","title","images","original","innerHTML","width","i","alt","getAttribute","newWidth","offsetWidth","style","titleWidth","D3R","swipers","closed","destroy","cross_transition","scrollable_element","overlay","bind","err","image","env","$list","srcset","removeAttribute","document","carousels","_loop2","window","dragscroll","reset"],"mappings":"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","file":"../../javascript/work-gallery.js","sourcesContent":["Overlay.modifiers.push('gallery');\n\n(function () {\n    function bindListeners(list) {\n        for (const element of list) {\n            element.addEventListener('click', (e) => {\n                e.preventDefault();\n                e.stopPropagation();\n\n                var selector = element.getAttribute('data-gallery') || 'gallery';\n                var slide = element.getAttribute('data-slide') || 0;\n\n                bind(selector, slide);\n            });\n        }\n    }\n\n    function bind(selector = 'gallery', slide = 0) {\n        let swiper;\n\n        Overlay.render('#' + selector, {\n            \"modifiers\": ['gallery'],\n            \"callback\": function (e) {\n                swiper = new Swiper(this.content.querySelector('.swiper-container'), {\n                    initialSlide: slide - 1,\n                    lazyload: {\n                        loadPrevNext: false,\n                        loadPrevNextAmount: 1,\n                        loadOnTransitionStart: false\n                    },\n                    navigation: {\n                        nextEl: this.content.querySelector('.gallery__nav[data-action=next]'),\n                        prevEl: this.content.querySelector('.gallery__nav[data-action=previous]'),\n                        disabledClass: 'gallery__nav--disabled'\n                    },\n                    mousewheel: true,\n                    plugins: [SwiperPluginLazyload, SwiperPluginNavigation, SwiperPluginMousewheel]\n                });\n\n                // Fudge to only trigger scroll to top when we actually change slides\n                // Mobile browsers seem to trigger after-slide event when scrolling the slide vertially\n                let slideIndex = slide - 1;\n\n                swiper.on('before-slide', (index, state) => {\n                    slideIndex = index;\n                });\n\n                swiper.on('after-slide', (newIndex, state) => {\n                    if (newIndex !== slideIndex) {\n                    this.content.querySelectorAll('.swiper-slide')[newIndex].scrollTo({top: 0, left: 0, behavior: 'smooth'});\n                    }\n                });\n\n                swiperSrcset(swiper, this.content);\n                titleWidth(this.content);\n                bindListeners(this.content.querySelectorAll('.js-gallery-trigger'));\n                D3R.swipers.push(swiper);\n            },\n            \"closed\": function (e) {\n                swiper.destroy();\n            },\n            \"cross_transition\": true,\n            \"scrollable_element\": (overlay) => {\n                return overlay.content.querySelectorAll('.swiper-slide');\n            },\n        });\n    }\n\n    function titleWidth(base) {\n        var title = base.querySelector('.gallery__title');\n        var images = base.querySelectorAll('.swiper-slide img');\n        var original = title.innerHTML;\n        var width = 0;\n\n        for (var i = 0; i < images.length; i++) {\n            var image = images[i];\n            var alt = image.getAttribute('alt');\n\n            title.innerHTML = alt;\n            var newWidth = title.offsetWidth + 10;\n            if (newWidth > width) {\n                width = newWidth;\n            }\n        }\n\n        title.innerHTML = original;\n        title.style.width = width + 'px';\n    }\n\n    function swiperSrcset(swiper, base) {\n        swiper.on('after-slide', (index, state) => {\n            var slide = swiper.env.element.$list[index];\n            var image = slide.querySelector('img');\n            var title = base.querySelector('.gallery__title');\n            if (title) {\n                title.innerHTML = image.getAttribute('alt');\n            }\n\n            var srcset = image.getAttribute('data-srcset');\n            if (srcset) {\n                image.srcset = srcset;\n                image.removeAttribute('data-srcset');\n            }\n        });\n    }\n\n    bindListeners(document.querySelectorAll('.js-gallery-trigger'));\n\n    var carousels = document.querySelectorAll('.gallery--carousel');\n    for (let index = 0; index < carousels.length; index++) {\n        window.dragscroll.reset();\n        const element = carousels[index];\n        var swiper = new Swiper(element.querySelector('.swiper-container'), {\n            lazyload: {\n                loadPrevNext: false,\n                loadPrevNextAmount: 1,\n                loadOnTransitionStart: false\n            },\n            navigation: {\n                nextEl: element.querySelector('.gallery__nav[data-action=next]'),\n                prevEl: element.querySelector('.gallery__nav[data-action=previous]'),\n                disabledClass: 'gallery__nav--disabled'\n            },\n            mousewheel: true,\n            plugins: [SwiperPluginLazyload, SwiperPluginNavigation, SwiperPluginMousewheel]\n        });\n\n        // Reset scroll position on each swipe\n        swiper.on('after-slide', (newIndex, state) => {\n            element.querySelectorAll('.swiper-slide')[newIndex].scrollTo({top: 0, left: 0, behavior: 'smooth'});\n        });\n\n        swiperSrcset(swiper, element);\n        D3R.swipers.push(swiper);\n    }\n})();\n"]}