📁 File Manager Pro
v10.0.2 | PHP: 8.1.34
Server: LiteSpeed
2026-06-26 13:59:32
📂
/
/
home
/
pallabnv
/
public_html
/
wp-content__3bb9dea
/
plugins
/
woocommerce
/
assets
/
client
/
blocks
/
woocommerce
✏️
Editing: product-gallery.js
import*as e from"@wordpress/interactivity";import*as t from"@woocommerce/stores/woocommerce/products";var o={d:(e,t)=>{for(var r in t)o.o(t,r)&&!o.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t)};const r=(n={getContext:()=>e.getContext,getElement:()=>e.getElement,store:()=>e.store,withScope:()=>e.withScope,withSyncEvent:()=>e.withSyncEvent},s={},o.d(s,n),s);var n,s;o.d({},{});const i=e=>{if(!e)return{top:!1,bottom:!1,left:!1,right:!1};const{scrollTop:t,scrollHeight:o,clientHeight:r,scrollLeft:n,scrollWidth:s,clientWidth:i}=e;return{top:t>3,bottom:t+r<o-3,left:n>3,right:n+i<s-3}},c=e=>(0,r.getContext)(e),{state:a}=(0,r.store)("woocommerce/products",{},{lock:"I acknowledge that using a private store means my plugin will inevitably break on the next store release."}),l={state:{get imageIndex(){const{imageData:e,selectedImageId:t}=c();return e.indexOf(t)}},actions:{selectImage:e=>{const t=c(),{imageData:o}=t,n=o[e],{isDisabledPrevious:s,isDisabledNext:i}={isDisabledPrevious:0===(a=e),isDisabledNext:a===o.length-1};var a;t.isDisabledPrevious=s,t.isDisabledNext=i,t.selectedImageId=n,-1!==n&&((e=>{if(!e)return;const t=(0,r.getElement)()?.ref;if(!t)return;const o=t.closest(".wp-block-woocommerce-product-gallery");if(!o)return;const n=o.querySelector(".wc-block-product-gallery-large-image__container");if(!n)return;const s=n.querySelector(`img[data-image-id="${e}"]`);if(s){const e=n.getBoundingClientRect(),t=s.getBoundingClientRect(),o=n.scrollLeft+(t.left-e.left)-(e.width-t.width)/2;n.scrollTo({left:o,behavior:"smooth"})}})(n),(e=>{if(!e)return;const t=(0,r.getElement)()?.ref;if(!t)return;const o=t.closest(".wp-block-woocommerce-product-gallery");if(!o)return;const n=o.querySelector(`.wc-block-product-gallery-thumbnails__thumbnail img[data-image-id="${e}"]`);if(!n)return;const s=n.closest(".wc-block-product-gallery-thumbnails__scrollable");if(!s)return;const i=n.closest(".wc-block-product-gallery-thumbnails__thumbnail");if(!i)return;const c=s.getBoundingClientRect(),a=i.getBoundingClientRect(),l=s.scrollTop+(a.top-c.top)-(c.height-a.height)/2,g=s.scrollLeft+(a.left-c.left)-(c.width-a.width)/2;s.scrollTo({top:l,left:g,behavior:"smooth"})})(n))},selectCurrentImage:e=>{e&&e.stopPropagation();const t=(0,r.getElement)()?.ref;if(!t)return;const o=t.getAttribute("data-image-id");if(!o)return;const n=parseInt(o,10),{imageData:s}=c(),i=s.indexOf(n);g.selectImage(i)},selectNextImage:e=>{e&&e.stopPropagation();const{imageData:t,selectedImageId:o}=c(),r=t.indexOf(o),n=Math.min(t.length-1,r+1);g.selectImage(n)},selectPreviousImage:e=>{e&&e.stopPropagation();const{imageData:t,selectedImageId:o}=c(),r=t.indexOf(o),n=Math.max(0,r-1);g.selectImage(n)},onViewerImageKeyDown:e=>{"Enter"!==e.key&&" "!==e.key||(" "===e.key&&e.preventDefault(),g.openDialog()),"ArrowRight"===e.key&&g.selectNextImage(),"ArrowLeft"===e.key&&g.selectPreviousImage()},onDialogKeyDown:e=>{if("Escape"===e.key&&g.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,r.getElement)()?.ref,n=o.querySelectorAll(t);if(!n.length)return;const s=n[0],i=n[n.length-1];if(!e.shiftKey&&e.target===i)return e.preventDefault(),void s.focus();if(e.shiftKey&&e.target===s)return e.preventDefault(),void i.focus();e.target===o&&(e.preventDefault(),s.focus())}},openDialog:(0,r.withSyncEvent)(e=>{e?.preventDefault(),c().isDialogOpen=!0,document.body.classList.add("wc-block-product-gallery-dialog-open")}),closeDialog:()=>{c().isDialogOpen=!1,document.body.classList.remove("wc-block-product-gallery-dialog-open")},onTouchStart:e=>{const t=c(),{clientX:o}=e.touches[0];t.touchStartX=o,t.touchCurrentX=o,t.isDragging=!0},onTouchMove:e=>{const t=c();if(!t.isDragging)return;const{clientX:o}=e.touches[0];t.touchCurrentX=o;const r=o-t.touchStartX;Math.abs(r)>10&&e.preventDefault()},onTouchEnd:()=>{const e=c();if(!e.isDragging)return;const t=e.touchCurrentX-e.touchStartX,o=(0,r.getElement)()?.ref,n=o?.offsetWidth||0;Math.abs(t)>.2*n&&(t>0&&!e.isDisabledPrevious?g.selectPreviousImage():t<0&&!e.isDisabledNext&&g.selectNextImage()),e.isDragging=!1,e.touchStartX=0,e.touchCurrentX=0},onScroll:()=>{const e=(0,r.getElement)()?.ref;if(!e)return;const t=c(),o=i(e);t.thumbnailsOverflow=o},onArrowsKeyDown:e=>{"ArrowRight"===e.key&&(e.preventDefault(),g.selectNextImage()),"ArrowLeft"===e.key&&(e.preventDefault(),g.selectPreviousImage())},onThumbnailsArrowsKeyDown:e=>{g.onArrowsKeyDown(e);const t=(0,r.getElement)()?.ref,{selectedImageId:o}=c();if(t){const e=t.closest(".wp-block-woocommerce-product-gallery");if(e){const t=e.querySelector(`img[data-image-id="${o}"]`);t&&t.focus({preventScroll:!0})}}},onClickPrevious:e=>{g.selectPreviousImage(e)},onClickNext:e=>{g.selectNextImage(e)},onKeyDownPrevious:e=>{g.onArrowsKeyDown(e)},onKeyDownNext:e=>{g.onArrowsKeyDown(e)}},callbacks:{listenToProductDataChanges:()=>{const e=a.productInContext;if(!e)return;const t=e.images?.[0]?.id;if(!t)return;const{imageData:o}=c(),r=o.indexOf(t);r>=0&&g.selectImage(r)},watchForChangesOnAddToCartForm:()=>{const e=c(),t=document.querySelector(`form[data-product_id="${e.productId}"]`);if(!t)return;const o=()=>(0,r.withScope)(()=>g.selectImage(0)),n=new MutationObserver((0,r.withScope)(function(e){for(const t of e){const{imageData:e}=c(),o=t.target.getAttribute("current-image"),r=o?parseInt(o,10):null;if("attributes"===t.type&&r&&e.includes(r)){const t=e.indexOf(r);g.selectImage(t)}else g.selectImage(0)}}));n.observe(t,{attributes:!0});const s=document.querySelector(".wp-block-add-to-cart-form .reset_variations");return s&&s.addEventListener("click",o),()=>{n.disconnect(),document.removeEventListener("click",o)}},dialogStateChange:()=>{const{selectedImageId:e,isDialogOpen:t}=c(),{ref:o}=(0,r.getElement)()||{};if(t&&o instanceof HTMLElement){o.focus();const t=o.querySelector(`[data-image-id="${e}"]`);t instanceof HTMLElement&&t.parentNode instanceof HTMLElement&&(t.parentNode.scrollTop=t.offsetTop+t.offsetHeight/2-o.offsetHeight/2-32)}},toggleActiveThumbnailAttributes:()=>{const e=(0,r.getElement)()?.ref;if(!e)return!1;const t=e.getAttribute("data-image-id");if(!t)return!1;const{selectedImageId:o}=c();o===Number(t)?(e.classList.add("wc-block-product-gallery-thumbnails__thumbnail__image--is-active"),e.setAttribute("tabIndex","0")):(e.classList.remove("wc-block-product-gallery-thumbnails__thumbnail__image--is-active"),e.setAttribute("tabIndex","-1"))},initResizeObserver:()=>{const e=(0,r.getElement)()?.ref;if(!e)return;const t=c(),o=new ResizeObserver(()=>{const o=i(e);t.thumbnailsOverflow=o});return o.observe(e),e.parentElement&&o.observe(e.parentElement),()=>{o.disconnect()}},hideGhostOverflow:()=>{const e=(0,r.getElement)()?.ref;if(!e)return;const{clientWidth:t,scrollWidth:o}=e;t>=o&&(e.style.scrollbarWidth="none")}}},{actions:g}=(0,r.store)("woocommerce/product-gallery",l,{lock:!0});
💾 Save Changes
❌ Cancel