{"version":3,"sources":["webpack:///./app/components/m/image-set/index.js","webpack:///./app/components/m/modal/index.js"],"names":["$","each","index","element","slidesNumber","getElementsByClassName","length","Swiper","querySelector","slidesPerView","spaceBetween","watchOverflow","centerInsufficientSlides","observer","observeParents","pagination","el","type","clickable","breakpointsInverse","breakpoints","document","on","e","_set$swiper","preventDefault","dynModal","BModal","elem","set","closest","activeSlide","swiper","clickedIndex","imageSet","querySelectorAll","zoomableSet","images","Array","from","setBody","map","image","dataset","src","join","firstElementChild","show","modal","modalSwiper","initialSlide","modules","Pagination","constructor","classes","arguments","undefined","container","modalMarkup","remove","body","append","modalHeader","find","modalBody","setClasses","addClass","setHeader","markup","once","before","html","setFooter","after","delay","that","Number","isInteger","timeid","setTimeout"],"mappings":"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","file":"image-set.chunk.js","sourcesContent":["import { BModal } from '../../m/modal';\r\nimport { Swiper, Pagination } from 'swiper';\r\n\r\n$('.image-set').each((index, element) => {\r\n // calculate number of slides so that all slides can be seen on desktop\r\n const slidesNumber = element.getElementsByClassName('image-set__image').length;\r\n if (slidesNumber > 1) {\r\n return new Swiper(element.querySelector('.image-set__container'), {\r\n slidesPerView: 'auto',\r\n spaceBetween: 10,\r\n watchOverflow: true,\r\n centerInsufficientSlides: true,\r\n observer: true,\r\n observeParents: true,\r\n pagination: {\r\n el: element.querySelector('.swiper-pagination'),\r\n type: 'bullets',\r\n clickable: true,\r\n },\r\n breakpointsInverse: true,\r\n breakpoints: {\r\n 576: {\r\n slidesPerView: slidesNumber,\r\n spaceBetween: 0,\r\n },\r\n },\r\n });\r\n }\r\n});\r\n\r\n// modal\r\n$(document).on('click', '.image-modal__toggle', function (e) {\r\n e.preventDefault();\r\n const dynModal = new BModal('modal--image modal--fullscreen');\r\n const elem = this;\r\n const set = elem.closest('.swiper');\r\n const activeSlide = set.swiper?.clickedIndex;\r\n const imageSet = set.querySelectorAll('.image-set__image');\r\n\r\n const zoomableSet = set.querySelectorAll('.zoomable');\r\n\r\n //if every image in set is zoomable then set swiper\r\n if (imageSet.length > 1 && imageSet.length == zoomableSet.length) {\r\n const images = Array.from(imageSet);\r\n dynModal.setBody(`<div class=\" image-set__container--modal swiper\">\r\n <div class=\"swiper-wrapper\">\r\n ${images\r\n .map(\r\n (image) => `\r\n <div class=\"swiper-slide\">\r\n <div class=\"content\">\r\n <div class=\"image-set__image lazyload\" data-bgset=\"${image.dataset.src}\"></div>\r\n </div>\r\n </div>`\r\n )\r\n .join('')}\r\n </div>\r\n <div class=\"swiper-pagination\"></div>\r\n </div>`);\r\n // else just show one picture\r\n } else {\r\n const src = elem.firstElementChild.dataset.src;\r\n dynModal.setBody(`<div class=\"image-set__image lazyload\" data-bgset=\"${src}\"></div>`);\r\n }\r\n\r\n dynModal.show();\r\n\r\n dynModal.modal.on('shown.bs.modal', (e) => {\r\n const modalSwiper = new Swiper('.image-set__container--modal', {\r\n slidesPerView: 'auto',\r\n initialSlide: activeSlide,\r\n spaceBetween: 10,\r\n watchOverflow: true,\r\n modules: [Pagination],\r\n pagination: {\r\n el: '.swiper-pagination',\r\n type: 'bullets',\r\n clickable: true,\r\n },\r\n });\r\n });\r\n});\r\n","/**\r\n * Bootstrap Modal with pure Javascript\r\n * Usage:\r\n * var my_modal = new bsModal();\r\n * my_modal.setBody('Some content');\r\n * my_modal.setFooter('Footer');\r\n * my_modal.modal.modal('show');\r\n * @param {string} classes [css classes]\r\n */\r\n\r\nclass BModal {\r\n constructor(classes = '', container = true) {\r\n const modalMarkup =\r\n '<div id=\"BModal\" tabindex=\"-1\" class=\"modal ' +\r\n classes +\r\n ' fade in\">' +\r\n '<div class=\"modal-dialog\">' +\r\n '<div class=\"modal-content\">' +\r\n '<div class=\"modal-header\">' +\r\n '<button type=\"button\" class=\"close\" data-dismiss=\"modal\" aria-label=\"close\"><svg class=\"icon icon-close\"><use xlink:href=\"#icon-close\"></use></svg></button>' +\r\n '</button>' +\r\n '</div>' +\r\n `<div class=\"modal-body ${container ? 'container' : ''}\"></div>` +\r\n '</div>' +\r\n '</div>' +\r\n '</div>';\r\n this.modal = $('#BModal');\r\n // Remove modal if there's already one\r\n this.modal.remove();\r\n // Append markup\r\n $(document.body).append(modalMarkup);\r\n this.modal = $('#BModal');\r\n this.modalHeader = this.modal.find('.modal-header');\r\n this.modalBody = this.modal.find('.modal-body');\r\n // Kill on Hide\r\n this.modal.on('hidden.bs.modal', function () {\r\n $(this).remove();\r\n });\r\n }\r\n\r\n // Set variant class\r\n setClasses(classes) {\r\n this.modal.addClass(classes);\r\n }\r\n\r\n // Set Body\r\n setHeader(markup, once = false) {\r\n // only add markup if once is explicitly set\r\n // and element wasn't added yet\r\n if (once && this.modalHeader.find('.modal-header__content').length) return;\r\n\r\n this.modalHeader.find('.close').before(`<div class=\"modal-header__content\">${markup}</div>`);\r\n }\r\n\r\n // Set Body\r\n setBody(markup) {\r\n this.modalBody.html(markup);\r\n }\r\n\r\n // Set Footer\r\n setFooter(markup) {\r\n this.modalBody.after('<div class=\"modal-footer\">' + markup + '</div>');\r\n }\r\n\r\n // Display modal\r\n show(delay) {\r\n const that = this;\r\n delay = Number(delay);\r\n if (Number.isInteger(delay)) {\r\n const timeid = setTimeout(() => {\r\n that.modal.modal('hide');\r\n }, delay);\r\n }\r\n this.modal.modal('show');\r\n }\r\n}\r\n\r\nexport { BModal };\r\n"],"sourceRoot":""}