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