JezK
Edit File: view.min.js
import{store as C,getContext as h,getElement as S,getConfig as w,withSyncEvent as A,withScope as Y}from"@wordpress/interactivity";var M=200;var D=!1,O=0,E={startX:0,startY:0,startTime:0},F=[".wp-lightbox-close-button",".wp-lightbox-navigation-button"];function W({uploadedSrc:e}){return e||"data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs="}function R({lightboxSrcset:e}){return e||""}function T(e){let a=t.metadata[e];return Object.hasOwn(t.metadata,e)?a:void 0}var{state:t,actions:y,callbacks:N}=C("core/image",{state:{selectedImageId:null,selectedGalleryId:null,preloadTimers:new Map,preloadedImageIds:new Set,get galleryImages(){return t.selectedGalleryId?Object.entries(t.metadata).filter(([,e])=>e.galleryId===t.selectedGalleryId).sort(([,e],[,a])=>{let o=e.order??0,r=a.order??0;return o-r}).map(([e])=>e):[t.selectedImageId]},get selectedImageIndex(){return t.galleryImages.findIndex(e=>e===t.selectedImageId)},get selectedImage(){return T(t.selectedImageId)},get hasNavigationIcon(){let{navigationButtonType:e}=t.selectedImage;return e==="icon"||e==="both"},get hasNavigationText(){let{navigationButtonType:e}=t.selectedImage;return e==="text"||e==="both"},get thisImage(){let{imageId:e}=h();return T(e)},get hasNavigation(){return t.galleryImages.length>1},get hasNextImage(){return t.selectedImageIndex+1<t.galleryImages.length},get hasPreviousImage(){return t.selectedImageIndex-1>=0},get overlayOpened(){return t.selectedImageId!==null},get roleAttribute(){return t.overlayOpened?"dialog":null},get ariaModal(){return t.overlayOpened?"true":null},get ariaLabel(){return t.selectedImage.customAriaLabel||w().defaultAriaLabel},get closeButtonAriaLabel(){return t.hasNavigationText?void 0:w().closeButtonText},get prevButtonAriaLabel(){return t.hasNavigationText?void 0:w().prevButtonText},get nextButtonAriaLabel(){return t.hasNavigationText?void 0:w().nextButtonText},get enlargedSrc(){return W(t.selectedImage)},get enlargedSrcset(){return R(t.selectedImage)},get figureStyles(){return t.overlayOpened&&`${t.selectedImage.figureStyles?.replace(/margin[^;]*;?/g,"")};`},get imgStyles(){return t.overlayOpened&&`${t.selectedImage.imgStyles?.replace(/;$/,"")}; object-fit:cover;`},get isContentHidden(){let e=h();return t.overlayEnabled&&t.selectedImageId===e.imageId},get isContentVisible(){let e=h();return!t.overlayEnabled&&t.selectedImageId===e.imageId}},actions:{showLightbox(){let{imageId:e}=h();if(!T(e)?.imageRef?.complete)return;t.scrollTopReset=document.documentElement.scrollTop,t.scrollLeftReset=document.documentElement.scrollLeft,t.selectedImageId=e;let{galleryId:a}=h("core/gallery")||{};t.selectedGalleryId=a||null,t.overlayEnabled=!0,N.setOverlayStyles()},hideLightbox(){t.overlayEnabled&&(t.overlayEnabled=!1,setTimeout(function(){t.selectedImage.buttonRef.focus({preventScroll:!0}),t.selectedImageId=null,t.selectedGalleryId=null},450))},showPreviousImage:A(e=>{e.stopPropagation();let a=t.hasPreviousImage?t.selectedImageIndex-1:t.galleryImages.length-1;t.selectedImageId=t.galleryImages[a],N.setOverlayStyles()}),showNextImage:A(e=>{e.stopPropagation();let a=t.hasNextImage?t.selectedImageIndex+1:0;t.selectedImageId=t.galleryImages[a],N.setOverlayStyles()}),handleKeydown:A(e=>{if(t.overlayEnabled){if(e.key==="Escape")y.hideLightbox();else if(e.key==="ArrowLeft")y.showPreviousImage(e);else if(e.key==="ArrowRight")y.showNextImage(e);else if(e.key==="Tab"){let a=Array.from(document.querySelectorAll(F)),o=a[0],r=a[a.length-1];e.shiftKey&&e.target===o?(e.preventDefault(),r.focus()):!e.shiftKey&&e.target===r&&(e.preventDefault(),o.focus())}}}),handleTouchMove:A(e=>{t.overlayEnabled&&e.preventDefault()}),handleTouchStart(e){D=!0;let a=e.touches&&e.touches[0];a&&(E.startX=a.clientX,E.startY=a.clientY,E.startTime=Date.now())},handleTouchEnd:A(e=>{let a=e.changedTouches&&e.changedTouches[0]||e.touches&&e.touches[0],o=Date.now();if(a&&t.overlayEnabled){let r=a.clientX-E.startX,b=a.clientY-E.startY,u=Math.abs(r),l=Math.abs(b),d=o-E.startTime;u>50&&u>l*1.5&&d<800&&(e.preventDefault(),r<0?y.showNextImage(e):y.showPreviousImage(e))}O=o,D=!1}),handleScroll(){t.overlayOpened&&!D&&Date.now()-O>450&&window.scrollTo(t.scrollLeftReset,t.scrollTopReset)},preloadImage(){let{imageId:e}=h();if(t.preloadedImageIds.has(e))return;let a=T(e);if(!a)return;let o=document.createElement("link");o.rel="preload",o.as="image",o.href=W(a);let r=R(a);r&&(o.setAttribute("imagesrcset",r),o.setAttribute("imagesizes","100vw")),document.head.appendChild(o),t.preloadedImageIds.add(e)},preloadImageWithDelay(){let{imageId:e}=h();y.cancelPreload();let a=setTimeout(Y(()=>{y.preloadImage(),t.preloadTimers.delete(e)}),M);t.preloadTimers.set(e,a)},cancelPreload(){let{imageId:e}=h();t.preloadTimers.has(e)&&(clearTimeout(t.preloadTimers.get(e)),t.preloadTimers.delete(e))}},callbacks:{setOverlayStyles(){if(!t.overlayEnabled)return;let{naturalWidth:e,naturalHeight:a,offsetWidth:o,offsetHeight:r}=t.selectedImage.imageRef,{x:b,y:u}=t.selectedImage.imageRef.getBoundingClientRect(),l=e/a,d=o/r;if(t.selectedImage.scaleAttr==="contain")if(l>d){let g=o/l;u+=(r-g)/2,r=g}else{let g=r*l;b+=(o-g)/2,o=g}d=o/r;let i=parseFloat(t.selectedImage.targetWidth&&t.selectedImage.targetWidth!=="none"?t.selectedImage.targetWidth:e),n=parseFloat(t.selectedImage.targetHeight&&t.selectedImage.targetHeight!=="none"?t.selectedImage.targetHeight:a),I=i/n,f=i,p=n,s=i,c=n;if(l.toFixed(2)!==I.toFixed(2)){if(l>I){let g=i/l;n-g>i?(n=g,i=g*l):n=i/l}else{let g=n*l;i-g>n?(i=g,n=g/l):i=n*l}s=i,c=n,I=i/n,d>I?(f=i,p=f/d):(p=n,f=p*d)}(o>s||r>c)&&(s=o,c=r);let m=0,v=160;480<window.innerWidth&&(m=80,v=160),960<window.innerWidth&&(m=t.hasNavigation?320:80,v=80);let x=Math.min(window.innerWidth-m,s),L=Math.min(window.innerHeight-v,c),_=x/L;d>_?(s=x,c=s/d):(c=L,s=c*d);let H=o/s,B=i*(s/f),P=n*(c/p);t.overlayStyles=` --wp--lightbox-initial-top-position: ${u}px; --wp--lightbox-initial-left-position: ${b}px; --wp--lightbox-container-width: ${s+1}px; --wp--lightbox-container-height: ${c+1}px; --wp--lightbox-image-width: ${B}px; --wp--lightbox-image-height: ${P}px; --wp--lightbox-scale: ${H}; --wp--lightbox-scrollbar-width: ${window.innerWidth-document.documentElement.clientWidth}px; `},setButtonStyles(){let{ref:e}=S();if(!e)return;let{imageId:a}=h(),o=T(a);if(!o)return;o.imageRef=e,o.currentSrc=e.currentSrc;let{naturalWidth:r,naturalHeight:b,offsetWidth:u,offsetHeight:l}=e;if(r===0||b===0)return;let d=e.parentElement,i=e.parentElement.clientWidth,n=e.parentElement.clientHeight,I=d.querySelector("figcaption");if(I){let m=window.getComputedStyle(I);["absolute","fixed"].includes(m.position)||(n=n-I.offsetHeight-parseFloat(m.marginTop)-parseFloat(m.marginBottom))}let f=n-l,p=i-u,s=f+16,c=p+16;if(o.scaleAttr==="contain"){let m=r/b,v=u/l;if(m>=v){let x=u/m;s=(l-x)/2+f+16,c=p+16}else{let x=l*m;s=f+16,c=(u-x)/2+p+16}}o.buttonTop=s,o.buttonRight=c},setOverlayFocus(){if(t.overlayEnabled){let{ref:e}=S();e.focus()}},setInertElements(){document.querySelectorAll("body > :not(.wp-lightbox-overlay)").forEach(e=>{t.overlayEnabled?e.setAttribute("inert",""):e.removeAttribute("inert")})},initTriggerButton(){let{imageId:e}=h(),{ref:a}=S(),o=T(e);o&&(o.buttonRef=a)}}},{lock:!0});