Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
 
 
 
 

2 строки
9.7 KiB

  1. import{$ as i}from"./iframe-CLehcUMy.js";import{c as r}from"./helpers-DemszZkW.js";import{I as p}from"./slider-CaVvyOsH.js";import{M as g}from"./masonry-B1jIstDY.js";const m=[{src:"./dummy/placeholder-3-2.svg",width:1470,height:980,copyright:"&copy; Shutterstock",alt:"Dummy Alt Text"},{src:"./dummy/placeholder-2-3.svg",width:736,height:981,copyright:"&copy; Shutterstock",alt:"Dummy Alt Text"},{src:"./dummy/placeholder-3-2.svg",width:1470,height:980,copyright:"&copy; Shutterstock",alt:"Dummy Alt Text"},{src:"./dummy/placeholder-4-3.svg",width:1200,height:980,copyright:"&copy; Shutterstock",alt:"Dummy Alt Text"},{src:"./dummy/placeholder-3-4.svg",width:880,height:1200,copyright:"&copy; Shutterstock",alt:"Dummy Alt Text"},{src:"./dummy/placeholder-3-2.svg",width:1470,height:980,copyright:"&copy; Shutterstock",alt:"Dummy Alt Text"},{src:"./dummy/placeholder-3-4.svg",width:800,height:1100,copyright:"&copy; Shutterstock",alt:"Dummy Alt Text"},{src:"./dummy/placeholder-3-4.svg",width:900,height:1200,copyright:"&copy; Shutterstock",alt:"Dummy Alt Text"},{src:"./dummy/placeholder-3-2.svg",width:1470,height:980,copyright:"&copy; Shutterstock",alt:"Dummy Alt Text"},{src:"./dummy/placeholder-1-1.svg",width:1200,height:1200,copyright:"&copy; Shutterstock",alt:"Dummy Alt Text"},{src:"./dummy/placeholder-3-4.svg",width:880,height:1200,copyright:"&copy; Shutterstock",alt:"Dummy Alt Text"},{src:"./dummy/placeholder-3-2.svg",width:1470,height:980,copyright:"&copy; Shutterstock",alt:"Dummy Alt Text"},{src:"./dummy/placeholder-3-4.svg",width:800,height:1100,copyright:"&copy; Shutterstock",alt:"Dummy Alt Text"},{src:"./dummy/placeholder-3-4.svg",width:900,height:1200,copyright:"&copy; Shutterstock",alt:"Dummy Alt Text"},{src:"./dummy/placeholder-3-2.svg",width:1470,height:980,copyright:"&copy; Shutterstock",alt:"Dummy Alt Text"},{src:"./dummy/placeholder-4-3.svg",width:1200,height:980,copyright:"&copy; Shutterstock",alt:"Dummy Alt Text"},{src:"./dummy/placeholder-1-1.svg",width:1200,height:1200,copyright:"&copy; Shutterstock",alt:"Dummy Alt Text"}];class l{constructor(t){this.section=t.addClass("initiated"),this.wrapper=t.find(".gallery-wrapper"),this.items=this.wrapper.children(".image"),this.gridInitialized=!1,this.currentPage=-1,this.visibleItems=[],this.type=t.attr("data-type"),this.initPopup(),this.type==="first-image"||this.type==="single-image"?this.initSingleThumb():this.type==="grid"?(this.initThumbs(),this.initLoading()):this.type==="masonry"&&this.initMasonry(),this.initScrollCheck(),i("body").on("lazyload-gallery-image",()=>{this.lazyLoadSingleImages.call(this)})}initScrollCheck(){window.addEventListener("scroll",()=>{window.requestAnimationFrame(()=>{this.scrollCheck()})},{passive:!0}),this.scrollCheck()}scrollCheck(){const t=i(window);if(this.type==="first-image"||this.type==="single-image"){if(!this.isLoaded&&t.scrollTop()+t.height()+100>this.section.offset().top){const a=this.items.first();a.find("img").attr("src",a.data(this.type==="first-image"?"thumb":"full")),this.isLoaded=!0}}else this.type==="grid"&&!this.gridInitialized&&this.items.length>this.visibleItems.length&&t.scrollTop()+t.height()+300>i(this.section).offset().top+i(this.section).height()&&(this.currentPage++,this.loadThumbs(),this.gridInitialized=!0)}lazyLoadSingleImages(){if((this.type==="first-image"||this.type==="single-image")&&!this.isLoaded){const t=this.items.first();t.find("img").attr("src",t.data(this.type==="first-image"?"thumb":"full")),this.isLoaded=!0}}initSingleThumb(){const t=this.items.first().addClass("loading"),a=i('<a href="'+t.data("full")+'" />').attr("data-index",0).appendTo(t),e=i('<img alt="'+t.data("alt")+'" />').appendTo(a);if(t.data("copyright")&&(i('<span class="copyright" aria-hidden="true">'+t.data("copyright")+"</span>").appendTo(a),i('<span class="sr-only">'+t.data("copyright")+"</span>").appendTo(a)),t.find(".image-description").appendTo(this.wrapper),this.isLoaded=!1,e.one("load",()=>{this.section.addClass("loaded"),t.removeClass("loading")}),this.items.length>1&&(a.append(i('<span class="btn has-icon icon-right icon-galerie" />').text(this.items.length+" Bilder")),t.find(".image-description").hide()),this.section.data("type")==="single-image"){const s=Math.round(t.data("height")/t.data("width")*1e3)/10+"%";a.css("padding-top",s),t.find(".copyright").appendTo(a).css("max-width",s)}this.section.closest(".main-col").addClass("clearfix")}initThumbs(){this.items.each(function(t){const a=i(this);i('<a href="'+a.data("full")+'" />').attr("tabindex","-1").attr("data-index",t).appendTo(a)})}initMasonry(){this.items.each(function(a){const e=i(this),s=i('<a href="'+e.data("full")+'" />').attr("data-index",a).appendTo(e);s.css("padding-top",Math.round(e.data("height")/e.data("width")*1e4)/100+"%"),e.data("copyright")&&s.append('<span class="copyright">'+e.data("copyright")+"</span>")});const t=window.ihk.translations.loadMoreImages;new g(this.wrapper,t,[{minWidth:0,batchSize:6},{minWidth:0,batchSize:6},{minWidth:567,batchSize:9},{minWidth:1e3,batchSize:12}],"primary-light")}initLoading(){const t=this.section.data("per-page"),a=i('<div class="button-wrapper" />').appendTo(this.section),e=window.ihk.translations.loadMoreImages;this.items.length>t&&(this.moreButton=i('<button href="#" class="btn primary-light btn-regular icon-right icon-laden" />').text(e).appendTo(a)),this.moreButton&&this.moreButton.on("click",s=>{s.preventDefault(),this.currentPage++,this.loadThumbs()})}initTabIndex(){const t="a[href], area[href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), iframe, object, embed, *[tabindex], *[contenteditable]",a="[tabindex=-1], [disabled], :hidden",e=this.section.prevAll().find(t).not(a).last(),s=this.section.nextAll().find(t).not(a).first();this.items.find("a").focus(o=>{const d=i(o.currentTarget),n=parseInt(d.attr("data-index"));e.attr("tabindex",1),this.items.eq(n-1).find("a").attr("tabindex",2),d.attr("tabindex",3),this.items.eq(n+1).find("a").attr("tabindex",4),s.attr("tabindex",5)}),this.items.find("a").on("focusout",()=>{this.items.find("a").removeAttr("tabindex"),e.removeAttr("tabindex"),s.removeAttr("tabindex")}),s.focus(()=>{this.items.find("a").attr("tabindex",-1),this.visibleItems[this.visibleItems.length-1].find("a").attr("tabindex",0)})}loadThumbs(){const t=this.section.data("per-page"),a=this.currentPage*t,e=a+t<this.items.length?a+t:this.items.length;for(let s=a;s<e;s++){const o=this.items.eq(s).addClass("loading"),d=i("<img />").one("load",function(){o.removeClass("loading").addClass("loaded")});d.attr("src",this.section.data("type")==="masonry"?o.data("full"):o.data("thumb")).appendTo(o.find("a")),d.attr("alt",o.data("alt")).attr("title",o.data("title")),o.data("copyright")&&i('<span class="copyright">').html(o.data("copyright")).appendTo(o.find("a")),this.visibleItems.push(o),o.find("a").removeAttr("tabindex")}this.moreButton&&e===this.items.length&&this.moreButton.hide()}initPopup(){this.popup=i('<div class="gallery-popup" tabindex="-1" />').appendTo(i("header"));const t=i('<div class="slider" />').appendTo(this.popup),a=i('<button class="closer" aria-label="Schließen" />').prependTo(this.popup);if(this.items.length===1&&t.addClass("single-slide"),this.items.each((e,s)=>{const o=i(s),d=i('<div class="slide preload" />').appendTo(t),n=i('<div class="image-box" />').attr("data-src",o.data("full")).attr("data-copyright",o.data("copyright")).attr("data-alt",o.data("alt")).attr("title",o.attr("title"));this.section.data("render-download")===!0&&n.attr("data-download",o.data("download")),n.appendTo(d),o.find("span").length>0&&i('<div class="text-box" />').appendTo(d).append(o.find("span.image-description,span.copyright").clone())}),a.on("click",e=>{e.preventDefault(),this.popup.removeClass("open"),this.popup.find("button, a").attr("tabindex",-1),this.unbindPopupKeys(),this.toggleContentScroll()}),this.slider=new p(t),this.popup.find("button, a").attr("tabindex",-1),this.wrapper.on("click","a",e=>{e.preventDefault();const s=parseInt(i(e.currentTarget).attr("data-index"));this.popup.addClass("open"),this.bindPopupKeys(),this.popup.find("button, a").attr("tabindex",0),this.popup.focus(),this.slider.goTo(s,!1),this.toggleContentScroll()}),this.section.data("render-download")){const e=i('<a aria-label="Download" href="#" download class="download" />').prependTo(this.popup);i(e).attr("href",this.slider.slides.eq(this.slider.currentSlide).find(".image-box").attr("data-download"))}t.on("slide-change",()=>{this.slider.loadImage();const e=this.popup.find(".download");e.length&&i(e).attr("href",this.slider.slides.eq(this.slider.currentSlide).find(".image-box").attr("data-download"))})}bindPopupKeys(){i("body").on("keydown.gallery",t=>{t.keyCode===27?this.popup.find(".closer").trigger("click"):t.keyCode===37?this.slider.onPrev():t.keyCode===39&&this.slider.onNext()})}unbindPopupKeys(){i("body").off("keydown.gallery")}toggleContentScroll(){const t=i("body"),a=i(window);if(this.popup.hasClass("open"))t.css("top",a.scrollTop()*-1+"px").addClass("nav-open");else{const e=Math.abs(parseInt(t.css("top")));t.removeClass("nav-open").removeAttr("style"),a.scrollTop(e)}}}i("body").on("ihk-init dynamic-component-loaded gfi-dynamic-init",()=>{i(".gallery:not(.initiated)").each(function(){new l(i(this))})});const w=({galleryType:h="grid",itemsPerPage:t=9,data:a=m})=>{const e=h==="single-image"||h==="first-image"?880:300,s=r("section",["gallery","variant-subtle-primary"],null,null);s.dataset.type=h,s.dataset.perPage=t.toString();const o=r("div",["gallery-wrapper"],"",s);return a.map(d=>{const n=r("div",["image"],"",o),c=Math.round(e/parseInt(d.width)*parseInt(d.height));n.dataset.thumb=d.src.replace(d.width,e.toString()).replace(d.height,c.toString()),n.dataset.full=d.src,n.dataset.width=d.width,n.dataset.height=d.height,n.dataset.alt=d.alt,d.copyright&&(n.dataset.copyright=d.copyright)}),i(document).ready(()=>{new l(i(s))}),s};export{w as c};