{"version":3,"sources":["webpack:///./handlers/gallery.js"],"names":["$","jQuery","gallery","galleryWrapperEl","$wrapper","$mainImageContainer","find","$nextButton","$prevButton","imageData","JSON","parse","attr","currentImageIndex","getNextImageData","length","getPrevImageData","transitionToImage","imageAttrs","style","opacity","one","anime","targets","duration","easing","src","alt","on","nextImage","prevImage"],"mappings":";;;;;;;;;;AAAA;AAAA;AAAA;AAEA,IAAMA,CAAC,GAAGC,MAAV;;AAEA,IAAMC,OAAO,GAAG,SAAVA,OAAU,CAACC,gBAAD,EAAsB;EAClC,IAAMC,QAAQ,GAAGJ,CAAC,CAACG,gBAAD,CAAlB;EACA,IAAME,mBAAmB,GAAGD,QAAQ,CAACE,IAAT,CAAc,kCAAd,CAA5B;EAEA,IAAMC,WAAW,GAAGH,QAAQ,CAACE,IAAT,CAAc,yBAAd,CAApB;EACA,IAAME,WAAW,GAAGJ,QAAQ,CAACE,IAAT,CAAc,yBAAd,CAApB;EAEA,IAAIG,SAAS,GAAGC,IAAI,CAACC,KAAL,CAAWP,QAAQ,CAACQ,IAAT,CAAc,qBAAd,CAAX,CAAhB;EACA,IAAIC,iBAAiB,GAAG,CAAxB;;EAEA,IAAMC,gBAAgB,GAAG,SAAnBA,gBAAmB,GAAM;IAC3BD,iBAAiB,GAAI,EAAEA,iBAAH,GAAwBJ,SAAS,CAACM,MAAtD;IACA,OAAON,SAAS,CAACI,iBAAD,CAAhB;EACH,CAHD;;EAKA,IAAMG,gBAAgB,GAAG,SAAnBA,gBAAmB,GAAM;IAC3BH,iBAAiB,GAAGA,iBAAiB,KAAK,CAAtB,GACdJ,SAAS,CAACM,MAAV,GAAmB,CADL,GAEd,EAAEF,iBAFR;IAGA,OAAOJ,SAAS,CAACI,iBAAD,CAAhB;EACH,CALD;;EAOA,IAAMI,iBAAiB,GAAG,SAApBA,iBAAoB,CAACC,UAAD,EAAgB;IACtCb,mBAAmB,CAAC,CAAD,CAAnB,CAAuBc,KAAvB,CAA6BC,OAA7B,GAAuC,CAAvC;IAEAf,mBAAmB,CAACgB,GAApB,CAAwB,MAAxB,EAAgC,YAAM;MAClCC,uEAAK,CAAC;QACFC,OAAO,EAAElB,mBAAmB,CAAC,CAAD,CAD1B;QAEFmB,QAAQ,EAAE,GAFR;QAGFJ,OAAO,EAAE,CAAC,CAAD,EAAI,CAAJ,CAHP;QAIFK,MAAM,EAAE;MAJN,CAAD,CAAL;IAMH,CAPD;IASApB,mBAAmB,CAACO,IAApB,CAAyB,KAAzB,EAAgCM,UAAU,CAACQ,GAA3C;IACArB,mBAAmB,CAACO,IAApB,CAAyB,KAAzB,EAAgCM,UAAU,CAACS,GAA3C;EACH,CAdD;;EAgBA3B,CAAC,CAACO,WAAD,CAAD,CAAeqB,EAAf,CAAkB,OAAlB,EAA2B,YAAM;IAC7B,IAAMC,SAAS,GAAGf,gBAAgB,EAAlC;IACAG,iBAAiB,CAACY,SAAD,CAAjB;EACH,CAHD;EAKA7B,CAAC,CAACQ,WAAD,CAAD,CAAeoB,EAAf,CAAkB,OAAlB,EAA2B,YAAM;IAC7B,IAAME,SAAS,GAAGd,gBAAgB,EAAlC;IACAC,iBAAiB,CAACa,SAAD,CAAjB;EACH,CAHD;AAIH,CA/CD;;AAiDe5B,sEAAf,E","file":"gallery.js","sourcesContent":["import anime from 'animejs/lib/anime.es.js';\n\nconst $ = jQuery;\n\nconst gallery = (galleryWrapperEl) => {\n    const $wrapper = $(galleryWrapperEl);\n    const $mainImageContainer = $wrapper.find('.js-gallery-main-image-container');\n\n    const $nextButton = $wrapper.find('.js-gallery-button-next');\n    const $prevButton = $wrapper.find('.js-gallery-button-prev');\n\n    let imageData = JSON.parse($wrapper.attr('data-gallery-images'));\n    let currentImageIndex = 0;\n\n    const getNextImageData = () => {\n        currentImageIndex = (++currentImageIndex) % imageData.length;\n        return imageData[currentImageIndex];\n    };\n\n    const getPrevImageData = () => {\n        currentImageIndex = currentImageIndex === 0\n            ? imageData.length - 1\n            : --currentImageIndex;\n        return imageData[currentImageIndex];\n    };\n\n    const transitionToImage = (imageAttrs) => {\n        $mainImageContainer[0].style.opacity = 0;\n\n        $mainImageContainer.one('load', () => {\n            anime({\n                targets: $mainImageContainer[0],\n                duration: 500,\n                opacity: [0, 1],\n                easing: 'easeInOutQuad'\n            })\n        });\n\n        $mainImageContainer.attr('src', imageAttrs.src);\n        $mainImageContainer.attr('alt', imageAttrs.alt);\n    };\n\n    $($nextButton).on('click', () => {\n        const nextImage = getNextImageData();\n        transitionToImage(nextImage);\n    });\n\n    $($prevButton).on('click', () => {\n        const prevImage = getPrevImageData();\n        transitionToImage(prevImage);\n    });\n};\n\nexport default gallery;\n"],"sourceRoot":""}