1import{CITEAB_WIDGET_V2_GALLERY_OPENED,CITEAB_WIDGET_V2_GALLERY_SCROLLED,CITEAB_WIDGET_V2_SCROLL_LEFT,CITEAB_WIDGET_V2_SCROLL_RIGHT,CITEAB__GALLERY_CLOSED}from"citeab/v2_widgets/citeab_constants";import CiteabWidgetV2Messaging from"citeab/v2_widgets/citeab_widget_v2_messaging";import CiteabWidgetV2Images from"citeab/v2_widgets/citeab_widget_v2_images";import CiteabWidgetV2ImageGallery from"citeab/v2_widgets/citeab_widget_v2_image_gallery";import citeabDocumentWrapper from"citeab/v2_widgets/citeab_document_wrapper";class CiteabWidgetV2GalleryNavigation{static init(){(new CiteabWidgetV2GalleryNavigation).attachNavigationEvents()}constructor(){this.galleryContainer=citeabDocumentWrapper().querySelector(".gallery_container"),this.prevButton=citeabDocumentWrapper().querySelector(".gallery_container .chevron-left"),this.nextButton=citeabDocumentWrapper().querySelector(".gallery_container .chevron-right")}attachNavigationEvents(){const e=this.galleryContainer.querySelector(".image-gallery .carousel");e&&(this.nextButton.addEventListener("click",()=>{CiteabWidgetV2GalleryNavigation.scrollRight(e),CiteabWidgetV2Messaging.send(CITEAB_WIDGET_V2_GALLERY_SCROLLED,{action:CITEAB_WIDGET_V2_SCROLL_RIGHT})}),this.prevButton.addEventListener("click",()=>{CiteabWidgetV2GalleryNavigation.scrollLeft(e),CiteabWidgetV2Messaging.send(CITEAB_WIDGET_V2_GALLERY_SCROLLED,{action:CITEAB_WIDGET_V2_SCROLL_LEFT})}),citeabDocumentWrapper().querySelector(".image-gallery .close-modal").addEventListener("click",()=>{this.closeGallery(this.galleryContainer)}),this.addScrollEvents(e),this.addKeyboardNavigation(e))}addScrollEvents(e){const t=()=>{0===e.scrollLeft?this.prevButton.classList.add("hide"):this.prevButton.classList.remove("hide")},a=()=>{const t=citeabDocumentWrapper().querySelectorAll(".image-gallery .slide:not(.hide)");if(0===t.length)return;if("true"===e.dataset.imagesLoading)return;e.scrollLeft-(e.scrollWidth-t[0].clientWidth)>=-50?this.nextButton.classList.add("hide"):this.nextButton.classList.remove("hide")};document.addEventListener(CITEAB_WIDGET_V2_GALLERY_OPENED,()=>{t(),a()}),e.addEventListener("scroll",()=>{t(),a()}),document.addEventListener("widget-v2-images-loaded",()=>{setTimeout(()=>{const t=citeabDocumentWrapper().querySelector(".experiment-images .carousel");CiteabWidgetV2ImageGallery.handleActiveSlides(t),CiteabWidgetV2ImageGallery.eagerLoadGalleryImages(),e.dataset.imagesLoading="false"},500)})}addKeyboardNavigation(e){document.addEventListener("keydown",t=>{switch(t.code){case"Escape":this.closeGallery();break;case"ArrowRight":CiteabWidgetV2GalleryNavigation.scrollRight(e);break;case"ArrowLeft":CiteabWidgetV2GalleryNavigation.scrollLeft(e)}})}closeGallery(){citeabDocumentWrapper().querySelector(".widget_v2 .images").classList.remove("hide"),[...citeabDocumentWrapper().querySelectorAll(".paginated-citations .citation-body")].forEach(e=>{e.classList.remove("hide")}),CiteabWidgetV2ImageGallery.closeGallery(),this.galleryOpen=!1,document.dispatchEvent(new Event(CITEAB__GALLERY_CLOSED))}static scrollRight(e){CiteabWidgetV2GalleryNavigation.collapseOpenCaptions(),e.scroll({left:e.scrollLeft+e.clientWidth,behavior:"smooth"});const t=citeabDocumentWrapper().querySelector(".gallery_container .image-gallery .carousel"),a=t.scrollWidth-(t.scrollLeft+t.clientWidth);a>0&&a<2500&&CiteabWidgetV2Images.fetchNextBatch()}static scrollLeft(e){CiteabWidgetV2GalleryNavigation.collapseOpenCaptions(),e.scroll({left:e.scrollLeft-e.clientWidth,behavior:"smooth"})}static collapseOpenCaptions(){[...citeabDocumentWrapper().querySelectorAll(".full-text.show")].forEach(e=>{toggleCaption(e.closest(".caption"),0)})}}export default CiteabWidgetV2GalleryNavigation;
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.