(()=>{"use strict";const e=window.wp.blocks,t=window.wp.data,o=window.wp.editor,r=window.wc.wcTypes;class i{blocks=new Map;initialized=!1;attemptedRegisteredBlocks=new Set;constructor(){this.initializeSubscriptions()}static getInstance(){return i.instance||(i.instance=new i),i.instance}initializeSubscriptions(){if(this.initialized)return;const e=(0,t.subscribe)((()=>{const r=(0,t.select)(o.store);if(!r)return;const i=r.getCurrentPostType();if(i)if("post"===i||"page"===i)e(),this.blocks.forEach((e=>{if(e.isAvailableOnPostEditor){const t=e.variationName||e.blockName;this.hasAttemptedRegistration(t)||this.registerBlock(e)}})),this.initialized=!0;else{e();const i=String(r.getEditedPostSlug());this.currentTemplateId=i,this.handleTemplateChange(void 0),(0,t.subscribe)((()=>{const e=this.currentTemplateId;this.currentTemplateId=String(r.getEditedPostSlug()),e!==this.currentTemplateId&&this.handleTemplateChange(e)}),o.store),this.initialized=!0}}))}handleTemplateChange(e){(this.currentTemplateId?.includes("single-product")||e?.includes("single-product"))&&this.blocks.forEach((e=>{this.unregisterBlock(e),this.registerBlock(e)}))}hasAttemptedRegistration(e){return this.attemptedRegisteredBlocks.has(e)}unregisterBlock(t){const{blockName:o,isVariationBlock:r,variationName:i}=t;try{r&&i?((0,e.unregisterBlockVariation)(o,i),this.attemptedRegisteredBlocks.delete(i)):((0,e.unregisterBlockType)(o),this.attemptedRegisteredBlocks.delete(o))}catch(e){console.debug(`Failed to unregister block ${o}:`,e)}}registerBlock(o){const{blockName:i,settings:n,isVariationBlock:s,variationName:a,isAvailableOnPostEditor:c}=o;try{const o=a||i;if(this.hasAttemptedRegistration(o))return;const l=(0,t.select)("core/edit-site");if(!l&&!c)return;if(s)(0,e.registerBlockVariation)(i,n);else{const t=(0,r.isEmpty)(n?.ancestor)?["woocommerce/single-product"]:n?.ancestor,o=l&&this.currentTemplateId?.includes("single-product");(0,e.registerBlockType)(i,{...n,ancestor:o?void 0:t})}this.attemptedRegisteredBlocks.add(o)}catch(e){console.error(`Failed to register block ${i}:`,e)}}registerBlockConfig(e){const t=e.variationName||e.blockName;this.blocks.set(t,e),this.registerBlock(e)}}const n=JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":3,"name":"woocommerce/product-reviews","icon":"admin-comments","title":"Product Reviews","description":"Display a product\'s reviews","category":"woocommerce","textdomain":"woocommerce","attributes":{"tagName":{"type":"string","default":"div"}},"supports":{"interactivity":true,"align":["wide","full"],"html":false,"color":{"gradients":true,"heading":true,"link":true,"__experimentalDefaultControls":{"background":true,"text":true,"link":true}},"spacing":{"margin":true,"padding":true},"typography":{"fontSize":true,"lineHeight":true,"__experimentalFontFamily":true,"__experimentalFontWeight":true,"__experimentalFontStyle":true,"__experimentalTextTransform":true,"__experimentalTextDecoration":true,"__experimentalLetterSpacing":true,"__experimentalDefaultControls":{"fontSize":true}},"__experimentalBorder":{"radius":true,"color":true,"width":true,"style":true,"__experimentalDefaultControls":{"radius":true,"color":true,"width":true,"style":true}}},"usesContext":["postId","postType"],"viewScriptModule":"woocommerce/product-reviews"}'),s=window.wp.blockEditor,a=window.ReactJSXRuntime,c=window.wp.components,l=window.wp.i18n,d=[["woocommerce/product-reviews-title"],["woocommerce/product-review-template",{},[["core/columns",{},[["core/column",{width:"40px"},[["core/avatar",{size:40,style:{border:{radius:"20px"}}}]]],["core/column",{},[["core/group",{tagName:"div",layout:{type:"flex",flexWrap:"nowrap",justifyContent:"space-between"}},[["woocommerce/product-review-author-name",{fontSize:"small"}],["woocommerce/product-review-rating"]]],["core/group",{layout:{type:"flex"},style:{spacing:{margin:{top:"0px",bottom:"0px"}}}},[["woocommerce/product-review-date",{fontSize:"small"}]]],["woocommerce/product-review-content"]]]]]]],["woocommerce/product-reviews-pagination"],["woocommerce/product-review-form"]],u={article:(0,l.__)("The
element should represent a self-contained, syndicatable portion of the document.","woocommerce"),aside:(0,l.__)("The