1import*as e from"@wordpress/interactivity";import*as t from"@woocommerce/stores/woocommerce/products";var o={d:(e,t)=>{for(var n in t)o.o(t,n)&&!o.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t)};const n=(r={getConfig:()=>e.getConfig,getContext:()=>e.getContext,getElement:()=>e.getElement,store:()=>e.store,withScope:()=>e.withScope,withSyncEvent:()=>e.withSyncEvent},i={},o.d(i,r),i);var r,i;o.d({},{});const a=e=>{if(!e)return{top:!1,bottom:!1,left:!1,right:!1};const{scrollTop:t,scrollHeight:o,clientHeight:n,scrollLeft:r,scrollWidth:i,clientWidth:a}=e;return{top:t>3,bottom:t+n<o-3,left:r>3,right:r+a<i-3}},s=".wp-block-woocommerce-product-gallery",c=".wc-block-product-gallery-dialog__content",l=".wc-block-product-gallery-thumbnails__thumbnail",d=e=>`[data-image-id="${e}"]`,u="wc-block-product-gallery-thumbnails__thumbnail__image--is-active",g="wc-block-product-gallery-dialog-open",m=e=>{const t=Number(e);return Number.isInteger(t)?t:void 0},f=e=>(0,n.getContext)(e),h=(e,t)=>({isDisabledPrevious:0===e,isDisabledNext:e===t-1}),b=.25,p=(e,t)=>{const o=Math.min(e.bottom,t.bottom)-Math.max(e.top,t.top),n=Math.min(e.height,t.height);return n?Math.max(0,o)/n:0},v=(e,t)=>
1{t&&e.paused?e.play().catch(()=>{}):t||e.paused||e.pause()},D=e=>((0,n.getConfig)("woocommerce")?.products||{})?.[String(e)],w=(e,t)=>{const o=f(),n=e.length?e:D(o.productId)?.image_ids||[],r=(i=n,void 0!==(a=t)&&i.includes(a)?a:i[0]??-1);var i,a;const s=((e,t)=>{const o=e.indexOf(t);return o<0?{isDisabledPrevious:!0,isDisabledNext:!0}:h(o,e.length)})(n,r);o.imageData=n,o.selectedImageId=r,o.hideNextPreviousButtons=n.length<=1,o.isDisabledPrevious=s.isDisabledPrevious,o.isDisabledNext=s.isDisabledNext,-1!==r&&((e,t="smooth")=>{y(e,t),x(e)})(r,"instant")},I=e=>{const t=e.getAttribute("data-image-id");if(!t)return;const o=Number.parseInt(t,10),{imageData:n}=f(),r=n.indexOf(o),i=r>=0,a=e.closest(`.wc-block-product-gallery-large-image__wrapper, ${l}`)||e;a.hidden=!i,a.style.order=i?String(r):"",e.setAttribute("aria-hidden",i?"false":"true")},y=(e,t="smooth")=>{if(!e)return;const o=(0,n.getElement)()?.ref;if(!o)return;const r=o.closest(s);if(!r)return;const i=r.querySelector(".wc-block-product-gallery-large-image__container");if(!i)return;const{imageData:a}=f(),c=a.indexOf(e);c<0||i.scrollTo({left:c*i.clientWidth,behavior:t})},x=e=>{if(!e)return;const t=(0,n.getElement)()?.ref;if(!t)return;const o=t.closest(s);if(!o)return;const r=o.querySelector(`${l} ${d(e)}`);if(!r)return;const i=r.closest(".wc-block-product-gallery-thumbnails__scrollable");if(!i)return;const a=r.closest(l);if(!a)return;const c=i.getBoundingClientRect(),u=a.getBoundingClientRect(),g=i.scrollTop+(u.top-c.top)-(c.height-u.height)/2,m=i.scrollLeft+(u.left-c.left)-(c.width-u.width)/2;i.scrollTo({top:g,left:m,behavior:"smooth"})},{state:E}=(0,n.store)("woocommerce/products",{},{lock:"I acknowledge that using a private store means my plugin will inevitably break on the next store release."}),S=new Map,_={state:{get imageIndex(){const{imageData:e,selectedImageId:t}=f();return e.indexOf(t)}},actions:{selectImage:e=>{const t=f(),{imageData:o}=t;if(e<0||e>=o.length)return;const n=o[e],{isDisabledPrevious:r,isDisabledNext:i}=h(e,o.length);t.isDisabledPrevious=r,t.isDisabledNext=i,t.selectedImageId=n,-1!==n&&(y(n),x(n))},setImageData:(e,t)=>{w(e,t)},resetImageData:()=>{w([])},selectCurrentImage:e=>{e&&e.stopPropagation();const t=(0,n.getElement)()?.ref;if(!t)return;const o=t.getAttribute("data-image-id");if(!o)return;const r=parseInt(o,10);if(Number.isNaN(r))return;const i=f(),a=i.imageData.indexOf(r);if(i.selectedImageId=r,a>=0){const e=h(a,i.imageData.length);i.isDisabledPrevious=e.isDisabledPrevious,i.isDisabledNext=e.isDisabledNext}y(r),x(r)},selectNextImage:e=>{e&&e.stopPropagation();const{imageData:t,selectedImageId:o}=f(),n=t.indexOf(o),r=Math.min(t.length-1,n+1);N.selectImage(r)},selectPreviousImage:e=>{e&&e.stopPropagation();const{imageData:t,selectedImageId:o}=f(),n=t.indexOf(o),r=Math.max(0,n-1);N.selectImage(r)},onViewerImageKeyDown:e=>{"Enter"!==e.key&&" "!==e.key||(" "===e.key&&e.preventDefault(),N.openDialog()),"ArrowRight"===e.key&&N.selectNextImage(),"ArrowLeft"===e.key&&N.selectPreviousImage()},onDialogKeyDown:e=>{if("Escape"===e.key&&N.closeDialog(),"Tab"===e.key){const t='a[href], area[href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), [tabindex]:not([tabindex="-1"])',o=(0,n.getElement)()?.ref,r=o.querySelectorAll(t);if(!r.length)return;const i=r[0],a=r[r.length-1];if(!e.shiftKey&&e.target===a)return e.preventDefault(),void i.focus();if(e.shiftKey&&e.target===i)return e.preventDefault(),void a.focus();e.target===o&&(e.preventDefault(),i.focus())}},openDialog:(0,n.withSyncEvent)(e=>{e?.preventDefault(),f().isDialogOpen=!0,document.body.classList.add(g)}),closeDialog:()=>{f().isDialogOpen=!1,document.body.classList.remove(g)},onTouchStart:e=>{const t=f(),{clientX:o}=e.touches[0];t.touchStartX=o,t.touchCurrentX=o,t.isDragging=!0},onTouchMove:e=>{const t=f();if(!t.isDragging)return;const{clientX:o}=e.touches[0];t.touchCurrentX=o;const n=o-t.touchStartX;Math.abs(n)>10&&e.preventDefault()},onTouchEnd:()=>{const e=f();if(!e.isDragging)return;const t=e.touchCurrentX-e.touchStartX,o=(0,n.getElement)()?.ref,r=o?.offsetWidth||0;Math.abs(t)>.2*r&&(t>0&&!e.isDisabledPrevious?N.selectPreviousImage():t<0&&!e.isDisabledNext&&N.selectNextImage()),e.isDragging=!1,e.touchStartX=0,e.touchCurrentX=0},onScroll:()=>{const e=(0,n.getElement)()?.ref;if(!e)return;const t=f(),o=a(e);t.thumbnailsOverflow=o},onArrowsKeyDown:e=>{"ArrowRight"===e.key&&(e.preventDefault(),N.selectNextImage()),"ArrowLeft"===e.key&&(e.preventDefault(),N.selectPreviousImage())},onThumbnailsArrowsKeyDown:e=>{N.onArrowsKeyDown(e);const t=(0,n.getElement)()?.ref,{selectedImageId:o}=f();if(t){const e=t.closest(s);if(e){const t=e.querySelector(d(o));t&&t.focus({preventScroll:!0})}}},onClickPrevious:e=>{N.selectPreviousImage(e)},onClickNext:e=>{N.selectNextImage(e)},onKeyDownPrevious:e=>{N.onArrowsKeyDown(e)},onKeyDownNext:e=>{N.onArrowsKeyDown(e)}},callbacks:{listenToProductDataChanges:()=>{const e=f(),t=E.variationId,o=S.get(e.productId);if(o===t)return;if(void 0===o&&!t)return void S.set(e.productId,t);S.set(e.productId,t);const n=E.mainProductInContext;if(!n)return;const r=D(n.id);if(!r)return;if(!t)return void N.resetImageData();const i=r.variations?.[t];i?.image_ids?.length?N.setImageData(i.image_ids,i.image_id):N.resetImageData()},watchForChangesOnAddToCartForm:()=>{const e=f(),t=document.querySelector(`form[data-product_id="${e.productId}"]`);if(!t)return;const o=D(e.productId),r=(0,n.withScope)((e,n)=>{if(!o)return void N.resetImageData();const r=t.querySelector('input[name="variation_id"]'),i=!!r,a=e??Number.parseInt(r?.value||"0",10);if(i&&!a)return void N.resetImageData();const s=n??Number.parseInt(t.getAttribute("current-image")||"0",10),c=a?o.variations?.[a]:((e,t)=>Object.values(e.variations||{}).find(e=>e.image_id===t))(o,s);c?.image_ids?.length?N.setImageData(c.image_ids,s||c.image_id):N.resetImageData()}),i=((e,t)=>{const o=window.jQuery;if(!o)return null;const r=o(e),i=(0,n.withScope)((e,o)=>{const n=m(o?.variation_id),r=m(o?.image_id);void 0===n||void 0===r?t.onVariationReset():t.onVariationFound(n,r)}),a=(0,n.withScope)(()=>t.onVariationReset());return r.on("found_variation.wc-product-gallery",i).on("hide_variation.wc-product-gallery reset_data.wc-product-gallery",a),()=>{r.off(".wc-product-gallery")}})(t,{onVariationFound:(e,t)=>r(e,t),onVariationReset:()=>N.resetImageData()});if(i)return r(),i;const a=new MutationObserver((0,n.withScope)(()=>r())),s=t.querySelector(".reset_variations"),c=(0,n.withScope)(()=>r()),l=(0,n.withScope)(()=>N.resetImageData());return a.observe(t,{attributes:!0,attributeFilter:["current-image"]}),t.addEventListener("change",c),s?.addEventListener("click",l),r(),()=>{a.disconnect(),t.removeEventListener("change",c),s?.removeEventListener("click",l)}},dialogStateChange:()=>{const{selectedImageId:e,isDialogOpen:t}=f(),{ref:o}=(0,n.getElement)()||{};if(o instanceof HTMLElement&&t){o.focus();const t=o.querySelector(d(e));t instanceof HTMLElement&&t.parentNode instanceof HTMLElement&&(t.parentNode.scrollTop=t.offsetTop+t.offsetHeight/2-o.offsetHeight/2-32)}},initDialogVideoPlayback:()=>{const e=(0,n.getElement)()?.ref;if(!(e instanceof HTMLVideoElement))return;const t=e.closest(c);if(!t||!window.IntersectionObserver)return()=>e.pause();const o=new IntersectionObserver(t=>{t.forEach(t=>{if(t.target!==e)return;const o=document.body.classList.contains(g)&&(e=>!(!e.rootBounds||!e.boundingClientRect.height)&&p(e.boundingClientRect,e.rootBounds)>=b)(t);v(e,o)})},{root:t,threshold:[0,b,1]});return o.observe(e),()=>{o.disconnect(),e.pause()}},syncVideoPlayback:()=>{const e=(0,n.getElement)()?.ref;e instanceof HTMLVideoElement&&(I(e),(e=>{const{selectedImageId:t,isDialogOpen:o,videoLocation:n}=f();((e,t,o,n)=>{const r=Number(e.getAttribute("data-image-id")??0),i="dialog"===n&&o&&(e=>{const t=e.closest(c);if(!t)return!1;const o=e.getBoundingClientRect(),n=t.getBoundingClientRect();return p(o,n)>=b})(e);v(e,i||"gallery"===n&&t===r&&!o)})(e,t,o,n)})(e))},toggleImageVisibility:()=>{const e=(0,n.getElement)()?.ref;if(!e)return!1;I(e)},syncThumbnailState:()=>{const e=(0,n.getElement)()?.ref;if(!e)return!1;I(e),(e=>{const t=e.getAttribute("data-image-id");if(!t)return;const{imageData:o,selectedImageId:n}=f(),r=Number.parseInt(t,10);if(o.includes(r)&&n===r)return e.classList.add(u),void e.setAttribute("tabIndex","0");e.classList.remove(u),e.setAttribute("tabIndex","-1")})(e)},initResizeObserver:()=>{const e=(0,n.getElement)()?.ref;if(!e)return;const t=f(),o=new ResizeObserver(()=>{const o=a(e);t.thumbnailsOverflow=o});return o.observe(e),e.parentElement&&o.observe(e.parentElement),()=>{o.disconnect()}},hideGhostOverflow:()=>{const e=(0,n.getElement)()?.ref;if(!e)return;const{clientWidth:t,scrollWidth:o}=e;t>=o&&(e.style.scrollbarWidth="none")}}},{actions:N}=(0,n.store)("woocommerce/product-gallery",_,{lock:!0});
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.