{"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":""}