{"version":3,"file":"javascripts/chunks/a4f6a6234bd0f6528aa6.gallery.js","mappings":"q9BAKqBA,EAAAA,SAAAA,I,soBACnB,WAAYC,GAAS,O,4FAAA,UACnB,cAAMA,EAASA,EAAQC,aAAa,oBAC/BC,YAAY,CACf,CACEC,GAAI,SACJC,SAAU,UAEZ,CACED,GAAI,UACJC,SAAU,WAEZ,CACED,GAAI,aACJC,SAAU,cAEZ,CACED,GAAI,OACJC,SAAU,QAEZ,CACED,GAAI,OACJC,SAAU,UAKf,IAAMC,EAAS,IAAIC,EAAAA,EAAO,EAAKC,SAASC,OAAQ,CAC7CC,QAAS,CAACC,EAAAA,GAAYC,EAAAA,IACtBC,MAAM,EACNC,cAAe,EACfC,aAAc,GACdC,gBAAgB,EAChBC,WAAY,CACVC,GAAI,EAAKV,SAASS,WAClBE,KAAM,YAERC,WAAY,CACVC,OAAQ,EAAKb,SAASc,KACtBC,OAAQ,EAAKf,SAASgB,QAtCP,OA0CnBlB,EAAOmB,GAAG,eAAc,WACjB,EAAKjB,SAASkB,SACnB,EAAKlB,SAASkB,QAAQC,SAAQ,SAACC,EAAMC,GAC/BA,IAAMvB,EAAOwB,UACfF,EAAKG,MAAMC,QAAU,QAErBJ,EAAKG,MAAMC,QAAU,aAhDR,E,SADFhC,C,SAAgBiC,I,0CCCrC,iBAAgB5B,GAAD,IAAWJ,EAAX,uDAAqBiC,OAAOC,SAA5B,MACb,GAAGC,MAAMC,KAAKpC,EAAQqC,iBAAiBjC,M,gqCCkEzC,QAvEM4B,WACJ,WAAYhC,EAASG,I,4FAAI,SACvBmC,KAAKnC,GAAKA,EACVmC,KAAK/B,SAAW,CACdgC,KAAMvC,GAGRsC,KAAKE,iB,mDAGP,WACMF,KAAK/B,SAASgC,MAChBD,KAAK/B,SAASgC,KAAKE,aAAa,8BAA8B,K,8BAIlE,WACMH,KAAK/B,SAASgC,MAChBD,KAAK/B,SAASgC,KAAKG,gBAAgB,gC,yBAWvC,SAAYC,GAQV,IARkB,WACZC,EAAiBD,EAAOE,KAAI,SAACC,GAAD,cAC7BA,GAD6B,IAEhC1C,SAAU,GAAF,OAAK,EAAKD,GAAV,aAAiB2C,EAAc1C,eAGnC2C,GAAcC,EAAAA,EAAAA,GAAO,oBAAqBV,KAAK/B,SAASgC,MAN5C,WAQTX,GACP,IAAMqB,EAAaF,EAAYnB,GAMxBkB,E,k1BAAP,CALgCF,EAAeM,QAC7C,SAACC,GAAD,OACEF,EAAWhD,aAAa,qBAAuBkD,EAAa/C,YAGhE,MAEI0C,SAC6C,IAApC,EAAKvC,SAASuC,EAAc3C,IACrC,EAAKI,SAASuC,EAAc3C,IAAM8C,QAEkB,IAAzC,EAAK1C,SAASuC,EAAc3C,IAAIiD,OACzC,EAAK7C,SAASuC,EAAc3C,IAAM,CAAC,EAAKI,SAASuC,EAAc3C,MAEjE,EAAKI,SAASuC,EAAc3C,IAAIiD,KAAKH,MAhBlCrB,EAAI,EAAGA,EAAImB,EAAYM,OAAQzB,GAAK,EAAG,EAAvCA,GA4BT0B,OAAOC,OAAOjB,KAAK/B,UAAUmB,SAAQ,SAAC8B,GACpCA,EAAIC,OAFS,SAACD,GAAD,YAA8B,IAAbA,EAAIJ,KAAuB,CAACI,GAAOA,EAEpDC,CAAOD,W,mBAlEpBxB","sources":["webpack:///./components/gallery/javascripts/gallery.js","webpack:///./javascripts/dom/select.js","webpack:///./javascripts/helpers/baseModule.js"],"sourcesContent":["import Swiper from 'swiper';\nimport { Navigation, Pagination } from 'swiper/modules';\n\nimport BaseModule from '../../../javascripts/helpers/baseModule';\n\nexport default class Gallery extends BaseModule {\n constructor(element) {\n super(element, element.getAttribute('data-js-module'));\n this.getElements([\n {\n id: 'slider',\n selector: 'slider'\n },\n {\n id: 'caption',\n selector: 'caption'\n },\n {\n id: 'pagination',\n selector: 'pagination'\n },\n {\n id: 'prev',\n selector: 'prev'\n },\n {\n id: 'next',\n selector: 'next'\n }\n ]);\n\n\n const swiper = new Swiper(this.elements.slider, {\n modules: [Navigation, Pagination],\n loop: true,\n slidesPerView: 1,\n spaceBetween: 30,\n centeredSlides: true,\n pagination: {\n el: this.elements.pagination,\n type: 'fraction'\n },\n navigation: {\n nextEl: this.elements.next,\n prevEl: this.elements.prev,\n }\n });\n\n swiper.on('slideChange',() => {\n if (!this.elements.caption) return;\n this.elements.caption.forEach((item, i) => {\n if (i === swiper.realIndex) {\n item.style.display = 'block';\n } else {\n item.style.display = 'none';\n }\n });\n });\n\n }\n}\n","/**\n * This methods selects Elements from a specific context by a selector\n * @param {string} selector Selector of the element to find\n * @param {Element|HTMLDocument} [element] Context of the selectable\n * @returns {Array} Am array with selected Elements\n */\nexport default (selector, element = window.document) =>\n [].slice.call(element.querySelectorAll(selector));\n","import select from '../dom/select';\n\nclass BaseModule {\n constructor(element, id) {\n this.id = id;\n this.elements = {\n self: element\n };\n\n this.setInitialized();\n }\n\n setInitialized() {\n if (this.elements.self) {\n this.elements.self.setAttribute('data-js-module-initialized', true);\n }\n }\n\n setUnInitialized() {\n if (this.elements.self) {\n this.elements.self.removeAttribute('data-js-module-initialized');\n }\n }\n\n /**\n * Selects DOMElements of a module with a specific data attribute (`data-js-element=\"${module}__${selector}\"`)\n * Receives an object where the id param is the key in the elements cache\n * The selector param of the config is the selector part in the query-selector described above\n * @param {Object} config Configuration object in a key value format\n * @returns {void}\n */\n getElements(config) {\n const elementsConfig = config.map((elementConfig) => ({\n ...elementConfig,\n selector: `${this.id}__${elementConfig.selector}`\n }));\n\n const domElements = select('[data-js-element]', this.elements.self);\n\n for (let i = 0; i < domElements.length; i += 1) {\n const domElement = domElements[i];\n const elementConfigCandidates = elementsConfig.filter(\n (singleConfig) =>\n domElement.getAttribute('data-js-element') === singleConfig.selector\n );\n\n const [elementConfig] = elementConfigCandidates;\n\n if (elementConfig) {\n if (typeof this.elements[elementConfig.id] === 'undefined') {\n this.elements[elementConfig.id] = domElement;\n } else {\n if (typeof this.elements[elementConfig.id].push === 'undefined') {\n this.elements[elementConfig.id] = [this.elements[elementConfig.id]];\n }\n this.elements[elementConfig.id].push(domElement);\n }\n }\n }\n\n /*\n * Append a attribute \"asList\" to each element/s in this.elements\n * which is always an array no matter if element/s is an array\n * or a single HTMLElement\n */\n\n const asList = (obj) => (typeof obj.push === 'undefined' ? [obj] : obj);\n Object.values(this.elements).forEach((obj) => {\n obj.asList = asList(obj); // eslint-disable-line no-param-reassign\n });\n }\n}\n\nexport default BaseModule;\n"],"names":["Gallery","element","getAttribute","getElements","id","selector","swiper","Swiper","elements","slider","modules","Navigation","Pagination","loop","slidesPerView","spaceBetween","centeredSlides","pagination","el","type","navigation","nextEl","next","prevEl","prev","on","caption","forEach","item","i","realIndex","style","display","BaseModule","window","document","slice","call","querySelectorAll","this","self","setInitialized","setAttribute","removeAttribute","config","elementsConfig","map","elementConfig","domElements","select","domElement","filter","singleConfig","push","length","Object","values","obj","asList"],"sourceRoot":""}