{"version":3,"sources":["webpack:///./cartridges/app_designholding/cartridge/client/default/js/components/high-res-image-gallery/high-res-image-gallery.js","webpack:///./cartridges/app_designholding/cartridge/client/default/js/components/high-res-image-gallery/index.js"],"names":["IMAGE_ZOOM_HOOK","FULLSCREEN_CLASS","HighResImageGallery","constructor","element","zoomImages","querySelectorAll","zoomImagesRegister","forEach","zoomImage","push","id","bindEvents","Events","$on","navigateGallery","direction","classList","remove","$trigger","getNextZoomIndex","indexOf","detail","add","currentZoomIndex","nextZoomIndex","length"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAEA,IAAMA,eAAe,GAAG,sBAAxB;AAEA,IAAMC,gBAAgB,GAAG,wBAAzB;;AAEA,MAAMC,0CAAN,CAA0B;AACxBC,aAAW,CAACC,OAAD,EAAU;AACnB,SAAKA,OAAL,GAAeA,OAAf;AACA,SAAKC,UAAL,GAAkB,CAAC,GAAG,KAAKD,OAAL,CAAaE,gBAAb,CAA8BN,eAA9B,CAAJ,CAAlB;AACA,SAAKO,kBAAL,GAA0B,EAA1B;AAEA,SAAKF,UAAL,CAAgBG,OAAhB,CAAwBC,SAAS,IAAI;AACnC,WAAKF,kBAAL,CAAwBG,IAAxB,CAA6BD,SAAS,CAACE,EAAvC;AACD,KAFD;AAIA,SAAKC,UAAL;AACD;;AAEDA,YAAU,GAAG;AACXC,qBAAM,CAACC,GAAP,CAAW,8BAAX,EAA4CH,EAAD,IAAQ,KAAKI,eAAL,CAAqBJ,EAArB,EAAyB,MAAzB,CAAnD;AACAE,qBAAM,CAACC,GAAP,CAAW,8BAAX,EAA4CH,EAAD,IAAQ,KAAKI,eAAL,CAAqBJ,EAArB,EAAyB,MAAzB,CAAnD;AACD;;AAEDI,iBAAe,CAACJ,EAAD,EAAKK,SAAL,EAAgB;AAC7B,SAAKX,UAAL,CAAgBG,OAAhB,CAAwBC,SAAS,IAAI;AACnCA,eAAS,CAACQ,SAAV,CAAoBC,MAApB,CAA2BjB,gBAA3B;AACAY,uBAAM,CAACM,QAAP,0CAAkDV,SAAS,CAACE,EAA5D;;AAEA,UAAIF,SAAS,CAACE,EAAV,KAAiB,KAAKJ,kBAAL,CAAwB,KAAKa,gBAAL,CAAsB,KAAKb,kBAAL,CAAwBc,OAAxB,CAAgCV,EAAE,CAACW,MAAnC,CAAtB,EAAkEN,SAAlE,CAAxB,CAArB,EAA4H;AAC1HP,iBAAS,CAACQ,SAAV,CAAoBM,GAApB,CAAwBtB,gBAAxB;AACAY,yBAAM,CAACM,QAAP,0CAAkDV,SAAS,CAACE,EAA5D;AACD;AACF,KARD;AASD;;AAEDS,kBAAgB,CAACI,gBAAD,EAAmBR,SAAnB,EAA8B;AAC5C,QAAIS,aAAa,GAAGT,SAAS,KAAK,MAAd,GAAuBQ,gBAAgB,GAAG,CAA1C,GAA8CA,gBAAgB,GAAG,CAArF;;AAEA,QAAIC,aAAa,GAAI,KAAKlB,kBAAL,CAAwBmB,MAAxB,GAAiC,CAAtD,EAA0D;AACxDD,mBAAa,GAAG,CAAhB;AACD,KAFD,MAEO,IAAIA,aAAa,KAAK,CAAC,CAAvB,EAA0B;AAC/BA,mBAAa,GAAG,KAAKlB,kBAAL,CAAwBmB,MAAxB,GAAiC,CAAjD;AACD;;AAED,WAAOD,aAAP;AACD;;AAxCuB;;AA2CXvB,qGAAf,E;;ACjDA;AAEeA,6HAAf,E","file":"js/HighResImageGallery.js","sourcesContent":["import Events from '@utilities/events';\n\nconst IMAGE_ZOOM_HOOK = '[js-hook-image-zoom]';\n\nconst FULLSCREEN_CLASS = 'image-zoom--fullscreen';\n\nclass HighResImageGallery {\n constructor(element) {\n this.element = element;\n this.zoomImages = [...this.element.querySelectorAll(IMAGE_ZOOM_HOOK)];\n this.zoomImagesRegister = [];\n\n this.zoomImages.forEach(zoomImage => {\n this.zoomImagesRegister.push(zoomImage.id);\n })\n\n this.bindEvents();\n }\n\n bindEvents() {\n Events.$on('high-res-image-gallery::prev', (id) => this.navigateGallery(id, 'prev'));\n Events.$on('high-res-image-gallery::next', (id) => this.navigateGallery(id, 'next'));\n }\n\n navigateGallery(id, direction) {\n this.zoomImages.forEach(zoomImage => {\n zoomImage.classList.remove(FULLSCREEN_CLASS);\n Events.$trigger(`zoom-image::hide-highres-image-${zoomImage.id}`);\n\n if (zoomImage.id === this.zoomImagesRegister[this.getNextZoomIndex(this.zoomImagesRegister.indexOf(id.detail), direction)]) {\n zoomImage.classList.add(FULLSCREEN_CLASS);\n Events.$trigger(`zoom-image::show-highres-image-${zoomImage.id}`);\n }\n });\n }\n\n getNextZoomIndex(currentZoomIndex, direction) {\n let nextZoomIndex = direction === 'next' ? currentZoomIndex + 1 : currentZoomIndex - 1;\n\n if (nextZoomIndex > (this.zoomImagesRegister.length - 1)) {\n nextZoomIndex = 0;\n } else if (nextZoomIndex === -1) {\n nextZoomIndex = this.zoomImagesRegister.length - 1;\n }\n\n return nextZoomIndex;\n }\n}\n\nexport default HighResImageGallery;\n","import HighResImageGallery from './high-res-image-gallery';\n\nexport default HighResImageGallery;\n"],"sourceRoot":""}