JezK
Edit File: product-collection.js
(()=>{var e,t,o,r={6469:(e,t,o)=>{"use strict";const r=window.wp.blocks,c=JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":3,"name":"woocommerce/product-collection","title":"Product Collection","description":"Display a collection of products from your store.","category":"woocommerce","keywords":["WooCommerce","Products (Beta)","all products","by attribute","by category","by tag"],"textdomain":"woocommerce","attributes":{"queryId":{"type":"number"},"query":{"type":"object"},"tagName":{"type":"string"},"displayLayout":{"type":"object","properties":{"type":{"type":"string","enum":["flex","list","carousel"]},"columns":{"type":"number"},"shrinkColumns":{"type":"boolean"}}},"dimensions":{"type":"object"},"convertedFromProducts":{"type":"boolean","default":false},"collection":{"type":"string"},"hideControls":{"default":[],"type":"array"},"queryContextIncludes":{"type":"array"},"forcePageReload":{"type":"boolean","default":false},"__privatePreviewState":{"type":"object","role":"local"}},"providesContext":{"queryId":"queryId","query":"query","displayLayout":"displayLayout","dimensions":"dimensions","queryContextIncludes":"queryContextIncludes","collection":"collection","forcePageReload":"forcePageReload","__privateProductCollectionPreviewState":"__privatePreviewState"},"usesContext":["templateSlug","postId"],"supports":{"align":["wide","full"],"anchor":true,"html":false,"__experimentalLayout":true,"interactivity":true,"email":true},"editorStyle":"file:../woocommerce/product-collection-editor.css","style":"file:../woocommerce/product-collection-style.css"}'),n=window.wp.blockEditor;var s=o(6087);const a=window.wp.data,l=window.wp.coreData;let i=function(e){return e.Product="product",e.Archive="archive",e.Cart="cart",e.Order="order",e.Site="site",e}({});const d="single-product",u="taxonomy-product_cat",m="taxonomy-product_tag",p="taxonomy-product_brand",_=async(e,t,o,r)=>{var c;r((c=await(0,a.resolveSelect)(l.store).getEntityRecords(e,t,{_fields:["id"],slug:o}))&&c.length&&c[0]?.id?c[0].id:null)},h=(e,t={})=>({type:e,sourceData:t}),g=window.wp.components;let w=function(e){return e.COLLECTION_PICKER="collection_chooser",e.PRODUCT_REFERENCE_PICKER="product_context_picker",e.HAND_PICKED_PRODUCTS_PICKER="hand_picked_products_picker",e.TAXONOMY_PICKER="taxonomy_picker",e.VALID_WITH_PREVIEW="uses_reference_preview_mode",e.VALID="valid",e.DELETED_PRODUCT_REFERENCE="deleted_product_reference",e}({}),x=function(e){return e.GRID="flex",e.STACK="list",e.CAROUSEL="carousel",e}({}),y=function(e){return e.FILL="fill",e.FIXED="fixed",e}({}),b=function(e){return e.IN="in",e.NOT_IN="not-in",e}({}),f=function(e){return e.PRODUCT_CATALOG="woocommerce/product-collection/product-catalog",e.BEST_SELLERS="woocommerce/product-collection/best-sellers",e.FEATURED="woocommerce/product-collection/featured",e.NEW_ARRIVALS="woocommerce/product-collection/new-arrivals",e.ON_SALE="woocommerce/product-collection/on-sale",e.TOP_RATED="woocommerce/product-collection/top-rated",e.HAND_PICKED="woocommerce/product-collection/hand-picked",e.RELATED="woocommerce/product-collection/related",e.UPSELLS="woocommerce/product-collection/upsells",e.CROSS_SELLS="woocommerce/product-collection/cross-sells",e.BY_CATEGORY="woocommerce/product-collection/by-category",e.BY_TAG="woocommerce/product-collection/by-tag",e.BY_BRAND="woocommerce/product-collection/by-brand",e.CART_CONTENTS="woocommerce/product-collection/cart-contents",e}({}),C=function(e){return e.ATTRIBUTES="attributes",e.CREATED="created",e.FEATURED="featured",e.HAND_PICKED="hand-picked",e.INHERIT="inherit",e.KEYWORD="keyword",e.ON_SALE="on-sale",e.ORDER="order",e.DEFAULT_ORDER="default-order",e.STOCK_STATUS="stock-status",e.TAXONOMY="taxonomy",e.PRICE_RANGE="price-range",e.FILTERABLE="filterable",e.PRODUCTS_PER_PAGE="products-per-page",e.MAX_PAGES_TO_SHOW="max-pages-to-show",e.OFFSET="offset",e.RELATED_BY="related-by",e}({});var v=o(7723),S=o(1512),k=o.n(S);k()("wc-admin:tracks:stats");const A=k()("wc-admin:tracks");function E(e,t){if(A("recordevent %s %o","wcadmin_"+e,t,{_tqk:window._tkq,shouldRecord:!!window._tkq&&!!window.wcTracks&&!!window.wcTracks.isEnabled}),!window.wcTracks||"function"!=typeof window.wcTracks.recordEvent)return!1;window.wcTracks.recordEvent(e,t)}var j=o(9491);const R=window.wc.wcBlocksRegistry;var P=o(3450),T=o(5386);const I=window.wc.wcSettings,D=`${c.name}/product-title`,B=(0,I.getSetting)("stockStatusOptions",[]),N=(0,I.getSetting)("hideOutOfStockItems",!1),O=()=>N?Object.keys(function(e,t){const{[t]:o,...r}=e;return r}(B,"outofstock")):Object.keys(B),L={perPage:9,pages:0,offset:0,postType:"product",order:"asc",orderBy:"title",search:"",exclude:[],inherit:!1,taxQuery:{},isProductCollectionBlock:!0,featured:!1,woocommerceOnSale:!1,woocommerceStockStatus:O(),woocommerceAttributes:[],woocommerceHandPickedProducts:[],timeFrame:void 0,priceRange:void 0,filterable:!1,relatedBy:{categories:!0,tags:!0}},F={query:L,tagName:"div",displayLayout:{type:x.GRID,columns:3,shrinkColumns:!0},dimensions:{widthType:y.FILL},queryContextIncludes:["collection"],forcePageReload:!1},M={woocommerceOnSale:L.woocommerceOnSale,woocommerceStockStatus:L.woocommerceStockStatus,woocommerceAttributes:L.woocommerceAttributes,woocommerceHandPickedProducts:L.woocommerceHandPickedProducts,taxQuery:L.taxQuery,featured:L.featured,timeFrame:L.timeFrame,priceRange:L.priceRange},H="core/heading",q="core/query-pagination",U="woocommerce/product-gallery-large-image-next-previous",V="woocommerce/product-template",$=[V,{},[["woocommerce/product-image",{showSaleBadge:!1,style:{dimensions:{aspectRatio:"1/1"}}},[["woocommerce/product-sale-badge",{align:"right"}]]],["core/post-title",{textAlign:"center",level:2,fontSize:"medium",style:{spacing:{margin:{bottom:"0.75rem",top:"0"}},typography:{lineHeight:"1.4"}},isLink:!0,__woocommerceNamespace:D}],["woocommerce/product-price",{textAlign:"center",fontSize:"small"}],["woocommerce/product-button",{textAlign:"center",fontSize:"small"}]]],G={layout:{type:"flex",justifyContent:"center"}},Y=[q,G],K=[$,Y,["woocommerce/product-collection-no-results"]],Q=window.wp.hooks,W="core/editor",z=window.wc.wcTypes,X=window.wp.url,Z=window.wp.apiFetch;var J=o.n(Z);const ee=(0,I.getSetting)("wcBlocksConfig",{pluginUrl:"",productCount:0,defaultAvatar:"",restApiRoutes:{},wordCountType:"words"}),te=ee.pluginUrl+"assets/images/",oe=(ee.pluginUrl,I.STORE_PAGES.shop,I.STORE_PAGES.checkout,I.STORE_PAGES.checkout,I.STORE_PAGES.privacy,I.STORE_PAGES.privacy,I.STORE_PAGES.terms,I.STORE_PAGES.terms,I.STORE_PAGES.cart,I.STORE_PAGES.cart,I.STORE_PAGES.myaccount?.permalink?I.STORE_PAGES.myaccount.permalink:(0,I.getSetting)("wpLoginUrl","/wp-login.php"),(0,I.getSetting)("localPickupEnabled",!1),(0,I.getSetting)("shippingMethodsExist",!1),(0,I.getSetting)("shippingEnabled",!0),(0,I.getSetting)("countries",{})),re=(0,I.getSetting)("countryData",{}),ce={...Object.fromEntries(Object.keys(re).filter(e=>!0===re[e].allowBilling).map(e=>[e,oe[e]||""])),...Object.fromEntries(Object.keys(re).filter(e=>!0===re[e].allowShipping).map(e=>[e,oe[e]||""]))},ne=(Object.fromEntries(Object.keys(ce).map(e=>[e,re[e].states||{}])),Object.fromEntries(Object.keys(ce).map(e=>[e,re[e].locale||{}])),{address:["first_name","last_name","company","address_1","address_2","city","postcode","country","state","phone"],contact:["email"],order:[]}),se=((0,I.getSetting)("addressFieldsLocations",ne).address,(0,I.getSetting)("addressFieldsLocations",ne).contact,(0,I.getSetting)("addressFieldsLocations",ne).order,(0,I.getSetting)("additionalOrderFields",{}),(0,I.getSetting)("additionalContactFields",{}),(0,I.getSetting)("additionalAddressFields",{}),({selected:e=[],search:t="",queryArgs:o={}})=>{const r=(({selected:e=[],search:t="",queryArgs:o={}})=>{const r=ee.productCount>100&&e.length>0,c=[(0,X.addQueryArgs)("/wc/store/v1/products",{per_page:100,catalog_visibility:"any",search:t,orderby:"title",order:"asc",exclude:r?e:[],...o})];if(r){const t=Math.ceil(e.length/100);for(let o=1;o<=t;o++)c.push((0,X.addQueryArgs)("/wc/store/v1/products",{catalog_visibility:"any",include:e,per_page:100,page:o}))}return c})({selected:e,search:t,queryArgs:o});return Promise.all(r.map(e=>J()({path:e}))).then(e=>[...new Map(e.flatMap(e=>e.map(e=>[e.id,{...e,parent:0}]))).values()])}),ae=e=>J()({path:`wc/store/v1/products/attributes/${e}/terms`}),le=(e,t)=>{const{taxQuery:o,...r}=t,c=o&&"object"==typeof o&&!Array.isArray(o);return{...e,...r,...c&&{taxQuery:{...e.taxQuery,...o}}}};function ie(e,t){const o=(0,a.select)(n.store).getBlock(e.clientId),r=o?.attributes,c=r?.query||e.attributes.query;e.setAttributes({query:le(c,t)})}const de=()=>{const e=(0,a.select)(W)?.getEditedPostSlug?.();return!!e&&["archive-product","taxonomy-product_attribute","product-search-results","taxonomy-product_cat","taxonomy-product_tag","taxonomy-product_brand"].some(t=>!!(0,z.isString)(e)&&e.includes(t))},ue=e=>{const{getBlocksByName:t,getBlock:o}=(0,a.select)(n.store);return!t("woocommerce/product-collection").find(t=>{const r=o(t);return r.attributes?.query?.[e]})};function me(){return!!de()&&ue("inherit")}function pe(){return!de()&&ue("filterable")}const _e=()=>F.displayLayout,he=({setState:e,location:t,attributes:o})=>{let r=!1;try{r=!!(0,a.select)("email-editor/editor")}catch{}e(r?{isPreview:!0,previewMessage:(0,v.__)("Sample products shown for preview. Actual products will be based on store inventory.","woocommerce")}:{isPreview:!(t.type!==i.Archive||t.sourceData?.termId||!o?.query?.inherit),previewMessage:(0,v.__)("Actual products will vary depending on the page being viewed.","woocommerce")})};var ge=o(790);const we={name:f.BEST_SELLERS,title:(0,v.__)("Best Sellers","woocommerce"),icon:(0,ge.jsx)(P.A,{icon:T.A}),description:(0,v.__)("Recommend your best-selling products.","woocommerce"),keywords:["best selling"],scope:["inserter","block"],attributes:{displayLayout:{type:"flex",columns:5,shrinkColumns:!0},query:{orderBy:"popularity",order:"desc",perPage:5,pages:1},hideControls:[C.ORDER,C.FILTERABLE]},innerBlocks:[["core/heading",{textAlign:"center",level:2,content:(0,v.__)("Best selling products","woocommerce"),style:{spacing:{margin:{bottom:"1rem"}}}}],$],preview:{setPreviewState:he}};var xe=o(2069);const ye={name:f.CROSS_SELLS,title:(0,v.__)("Cross-Sells","woocommerce"),icon:(0,ge.jsx)(P.A,{icon:xe.A}),description:(0,v.__)("By suggesting complementary products in the cart using cross-sells, you can significantly increase the average order value.","woocommerce"),keywords:["boost","promotion"],scope:["inserter","block"],usesReference:["product","cart","order"],attributes:{...F,displayLayout:{type:"flex",columns:4,shrinkColumns:!0},query:{...L,perPage:8,pages:1},hideControls:[C.FILTERABLE]},innerBlocks:[["core/heading",{textAlign:"left",level:2,content:(0,v.__)("You may be interested in…","woocommerce"),style:{spacing:{margin:{bottom:"1rem"}}}}],$]};var be=o(4657);const fe={name:f.FEATURED,title:(0,v.__)("Featured Products","woocommerce"),icon:(0,ge.jsx)(P.A,{icon:be.A}),description:(0,v.__)("Showcase your featured products.","woocommerce"),keywords:[],scope:["inserter","block"],attributes:{displayLayout:{type:"flex",columns:5,shrinkColumns:!0},query:{featured:!0,perPage:5,pages:1},hideControls:[C.FEATURED,C.FILTERABLE]},innerBlocks:[["core/heading",{textAlign:"center",level:2,content:(0,v.__)("Featured products","woocommerce"),style:{spacing:{margin:{bottom:"1rem"}}}}],$]};var Ce=o(5573);const ve=(0,ge.jsxs)(Ce.SVG,{width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[(0,ge.jsx)(Ce.Path,{d:"M8.85074 4.8213L7.64702 3.92627L5.56365 6.72818L4.44959 5.89735L3.55286 7.0998L5.87107 8.82862L8.85074 4.8213Z",fill:"currentColor"}),(0,ge.jsx)(Ce.Path,{d:"M20 7.75004H11.1111V6.25004H20V7.75004Z",fill:"currentColor"}),(0,ge.jsx)(Ce.Path,{d:"M20 12.75H11.1111V11.25H20V12.75Z",fill:"currentColor"}),(0,ge.jsx)(Ce.Path,{fillRule:"evenodd",clipRule:"evenodd",d:"M6 14C7.10457 14 8 13.1046 8 12C8 10.8955 7.10457 10 6 10C4.89543 10 4 10.8955 4 12C4 13.1046 4.89543 14 6 14ZM6 13C6.55229 13 7 12.5523 7 12C7 11.4478 6.55229 11 6 11C5.44772 11 5 11.4478 5 12C5 12.5523 5.44772 13 6 13Z",fill:"currentColor"}),(0,ge.jsx)(Ce.Path,{fillRule:"evenodd",clipRule:"evenodd",d:"M8 17C8 18.1046 7.10457 19 6 19C4.89543 19 4 18.1046 4 17C4 15.8955 4.89543 15 6 15C7.10457 15 8 15.8955 8 17ZM7 17C7 17.5523 6.55229 18 6 18C5.44772 18 5 17.5523 5 17C5 16.4478 5.44772 16 6 16C6.55229 16 7 16.4478 7 17Z",fill:"currentColor"}),(0,ge.jsx)(Ce.Path,{d:"M11.1111 17.75H20V16.25H11.1111V17.75Z",fill:"currentColor"})]}),Se={name:f.HAND_PICKED,title:(0,v.__)("Hand-Picked Products","woocommerce"),icon:(0,ge.jsx)(P.A,{icon:ve}),description:(0,v.__)("Select specific products to recommend to customers.","woocommerce"),keywords:["specific","choose","recommend","handpicked","hand picked"],scope:["inserter","block"],attributes:{displayLayout:{type:"flex",columns:5,shrinkColumns:!0},query:{orderBy:"post__in"},hideControls:[C.HAND_PICKED,C.FILTERABLE,C.ORDER]},innerBlocks:[["core/heading",{textAlign:"center",level:2,content:(0,v.__)("Recommended products","woocommerce"),style:{spacing:{margin:{bottom:"1rem"}}}}],$,["core/query-pagination",{layout:{type:"flex",justifyContent:"center"}}]]};var ke=o(4878);const Ae={name:f.NEW_ARRIVALS,title:(0,v.__)("New Arrivals","woocommerce"),icon:(0,ge.jsx)(P.A,{icon:ke.A}),description:(0,v.__)("Recommend your newest products.","woocommerce"),keywords:["newest"],scope:["inserter","block"],attributes:{displayLayout:{type:"flex",columns:5,shrinkColumns:!0},query:{orderBy:"date",order:"desc",perPage:5,pages:1,timeFrame:{operator:b.IN,value:"-7 days"}},hideControls:[C.ORDER,C.FILTERABLE]},innerBlocks:[["core/heading",{textAlign:"center",level:2,content:(0,v.__)("New arrivals","woocommerce"),style:{spacing:{margin:{bottom:"1rem"}}}}],$],preview:{setPreviewState:he}};var Ee=o(6083);const je={name:f.ON_SALE,title:(0,v.__)("On Sale Products","woocommerce"),icon:(0,ge.jsx)(P.A,{icon:Ee.A}),description:(0,v.__)("Highlight products that are currently on sale.","woocommerce"),keywords:["discount","promotion","onsale"],scope:["inserter","block"],attributes:{displayLayout:{type:"flex",columns:5,shrinkColumns:!0},query:{woocommerceOnSale:!0,perPage:5,pages:1},hideControls:[C.ON_SALE,C.FILTERABLE]},innerBlocks:[["core/heading",{textAlign:"center",level:2,content:(0,v.__)("On sale products","woocommerce"),style:{spacing:{margin:{bottom:"1rem"}}}}],$]};var Re=o(46);const Pe={name:f.PRODUCT_CATALOG,title:(0,v.__)("Product Catalog","woocommerce"),icon:(0,ge.jsx)(P.A,{icon:Re.A}),description:"Display all products in your catalog. Results can (change to) match the current template, page, or search term.",keywords:["all products"],scope:[],innerBlocks:K},Te={name:f.RELATED,title:(0,v.__)("Related Products","woocommerce"),icon:(0,ge.jsx)(P.A,{icon:Re.A}),description:(0,v.__)("Recommend products like this one.","woocommerce"),keywords:[],scope:["inserter","block"],usesReference:["product"],attributes:{displayLayout:{type:x.GRID,columns:4,shrinkColumns:!0},query:{perPage:4,pages:1}},innerBlocks:[["core/heading",{textAlign:"center",level:2,content:(0,v.__)("Related Products","woocommerce"),style:{spacing:{margin:{bottom:"1rem"}}}}],$]};var Ie=o(7092);const De={name:f.TOP_RATED,title:(0,v.__)("Top Rated Products","woocommerce"),icon:(0,ge.jsx)(P.A,{icon:Ie.A}),description:(0,v.__)("Recommend products with the highest review ratings.","woocommerce"),keywords:[],scope:["inserter","block"],attributes:{displayLayout:{type:"flex",columns:5,shrinkColumns:!0},query:{orderBy:"rating",order:"desc",perPage:5,pages:1},hideControls:[C.ORDER,C.FILTERABLE]},innerBlocks:[["core/heading",{textAlign:"center",level:2,content:(0,v.__)("Top rated products","woocommerce"),style:{spacing:{margin:{bottom:"1rem"}}}}],$]};var Be=o(5791);const Ne={name:f.UPSELLS,title:(0,v.__)("Upsells","woocommerce"),icon:(0,ge.jsx)(P.A,{icon:Be.A}),description:(0,v.__)("Upsells are typically products that are extra profitable or better quality or more expensive. Experiment with combinations to boost sales.","woocommerce"),keywords:["boost","promotion"],scope:["inserter","block"],usesReference:["product","cart","order"],attributes:{...F,displayLayout:{type:"flex",columns:4,shrinkColumns:!0},query:{...L,perPage:8,pages:1},hideControls:[C.FILTERABLE]},innerBlocks:[["core/heading",{textAlign:"left",level:2,content:(0,v.__)("You may also like","woocommerce"),style:{spacing:{margin:{bottom:"1rem"}}}}],$]};var Oe=o(2024);const Le={name:f.BY_CATEGORY,title:(0,v.__)("Products by Category","woocommerce"),icon:(0,ge.jsx)(P.A,{icon:Oe.A}),description:(0,v.__)("Display products from specific categories.","woocommerce"),scope:["inserter","block"],attributes:{displayLayout:{type:"flex",columns:5,shrinkColumns:!0},hideControls:[C.HAND_PICKED,C.FILTERABLE]},innerBlocks:[["core/heading",{textAlign:"center",level:2,content:(0,v.__)("Products by Category","woocommerce"),style:{spacing:{margin:{bottom:"1rem"}}}}],$,Y]};var Fe=o(7230);const Me={name:f.BY_TAG,title:(0,v.__)("Products by Tag","woocommerce"),icon:(0,ge.jsx)(P.A,{icon:Fe.A}),description:(0,v.__)("Display products with specific tags.","woocommerce"),scope:["inserter","block"],attributes:{displayLayout:{type:"flex",columns:5,shrinkColumns:!0},hideControls:[C.HAND_PICKED,C.FILTERABLE]},innerBlocks:[["core/heading",{textAlign:"center",level:2,content:(0,v.__)("Products by Tag","woocommerce"),style:{spacing:{margin:{bottom:"1rem"}}}}],$,Y]};var He=o(1607);const qe={name:f.BY_BRAND,title:(0,v.__)("Products by Brand","woocommerce"),icon:(0,ge.jsx)(P.A,{icon:He.A}),description:(0,v.__)("Display products from specific brands.","woocommerce"),scope:["inserter","block"],attributes:{displayLayout:{type:"flex",columns:5,shrinkColumns:!0},hideControls:[C.HAND_PICKED,C.FILTERABLE]},innerBlocks:[["core/heading",{textAlign:"center",level:2,content:(0,v.__)("Products by Brand","woocommerce"),style:{spacing:{margin:{bottom:"1rem"}}}}],$,Y]},Ue=(0,ge.jsxs)(Ce.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",children:[(0,ge.jsx)("path",{fill:"none",d:"M0 0h24v24H0V0z"}),(0,ge.jsx)("path",{d:"M15.55 13c.75 0 1.41-.41 1.75-1.03l3.58-6.49c.37-.66-.11-1.48-.87-1.48H5.21l-.94-2H1v2h2l3.6 7.59-1.35 2.44C4.52 15.37 5.48 17 7 17h12v-2H7l1.1-2h7.45zM6.16 6h12.15l-2.76 5H8.53L6.16 6zM7 18c-1.1 0-1.99.9-1.99 2S5.9 22 7 22s2-.9 2-2-.9-2-2-2zm10 0c-1.1 0-1.99.9-1.99 2s.89 2 1.99 2 2-.9 2-2-.9-2-2-2z"})]}),Ve={name:f.CART_CONTENTS,title:(0,v.__)("Cart Contents","woocommerce"),icon:(0,ge.jsx)(P.A,{icon:Ue}),description:(0,v.__)("Display products from the customer cart for abandoned cart emails.","woocommerce"),keywords:["cart","email","abandoned"],scope:["inserter","block"],attributes:{displayLayout:{type:"flex",columns:1,shrinkColumns:!0},query:{inherit:!1,perPage:10,pages:1},hideControls:[C.ATTRIBUTES,C.KEYWORD,C.ORDER,C.DEFAULT_ORDER,C.FEATURED,C.ON_SALE,C.STOCK_STATUS,C.HAND_PICKED,C.TAXONOMY,C.FILTERABLE,C.CREATED,C.PRICE_RANGE],queryContextIncludes:["cart"]},innerBlocks:[["core/heading",{textAlign:"center",level:2,content:(0,v.__)("Your Cart","woocommerce"),style:{spacing:{margin:{bottom:"1rem"}}}}],$]},$e=[Pe,fe,Ae,je,we,De,Se,Le,Me,qe,Te,Ne,ye],Ge=[Ve],Ye=e=>e?(0,a.select)(r.store).getBlockVariations(c.name).find(({name:t})=>t===e):null,Ke=(e,t,o)=>{const n=Ye(e);n&&o(t,n.name===f.PRODUCT_CATALOG?(0,r.createBlock)(c.name,{...F,query:{...F.query,inherit:me(),filterable:pe()}},(0,r.createBlocksFromInnerBlocksTemplate)(K)):(0,r.createBlock)(c.name,n.attributes,(0,r.createBlocksFromInnerBlocksTemplate)(n.innerBlocks)))},Qe=({title:e,icon:t,description:o,onClick:r})=>(0,ge.jsx)(g.Tooltip,{text:o,placement:"top",children:(0,ge.jsxs)(g.Button,{className:"wc-blocks-product-collection__collection-button",onClick:r,children:[(0,ge.jsx)("div",{className:"wc-blocks-product-collection__collection-button-icon",children:(0,ge.jsx)(g.Icon,{icon:t})}),(0,ge.jsx)("p",{className:"wc-blocks-product-collection__collection-button-title",children:e})]})}),We=e=>{const{description:t,onClick:o}=e;return(0,ge.jsxs)("div",{className:"wc-blocks-product-collection__collections-create",children:[(0,ge.jsx)("span",{children:(0,v.__)("or","woocommerce")}),(0,ge.jsx)(g.Tooltip,{text:t,placement:"top",children:(0,ge.jsx)(g.Button,{onClick:o,children:(0,v.__)("create your own","woocommerce")})})]})},ze=e=>{const{onCollectionClick:t,catalogVariation:o,collectionVariations:r}=e;return(0,ge.jsxs)("div",{className:"wc-blocks-product-collection__collections-grid",children:[(0,ge.jsx)("div",{className:"wc-blocks-product-collection__collections-section",children:r.map(({name:e,title:o,icon:r,description:c})=>(0,ge.jsx)(Qe,{title:o,description:c,icon:r,onClick:()=>t(e)},e))}),(0,ge.jsx)(We,{title:o.title,description:o.description,icon:o.icon,onClick:()=>t(o.name)})]})},Xe=e=>{const{onCollectionClick:t,catalogVariation:o,collectionVariations:r}=e;return(0,ge.jsxs)("div",{className:"wc-blocks-product-collection__collections-dropdown",children:[(0,ge.jsx)(g.Dropdown,{className:"wc-blocks-product-collection__collections-dropdown-toggle",contentClassName:"wc-blocks-product-collection__collections-dropdown-content",renderToggle:({isOpen:e,onToggle:t})=>(0,ge.jsx)(g.Button,{variant:"secondary",onClick:t,"aria-expanded":e,children:(0,v.__)("Choose collection","woocommerce")}),renderContent:()=>(0,ge.jsx)(ge.Fragment,{children:r.map(({name:e,title:o,icon:r,description:c})=>(0,ge.jsx)(Qe,{title:o,description:c,icon:r,onClick:()=>t(e)},e))})}),(0,ge.jsx)(We,{title:o.title,description:o.description,icon:o.icon,onClick:()=>t(o.name)})]})},Ze=e=>{const t=(0,a.useSelect)(e=>{const{getBlockVariations:t}=e(r.store);return t(c.name)},[]),o=(0,s.useMemo)(()=>t.find(({name:e})=>e===f.PRODUCT_CATALOG),[t]),n=(0,s.useMemo)(()=>t.filter(({name:e,scope:t})=>e!==f.PRODUCT_CATALOG&&(void 0===t||t?.includes("block"))),[t]),[l,{width:i}]=(0,j.useResizeObserver)();let d;return d=null!==i&&i>=600?ze:Xe,(0,ge.jsxs)(ge.Fragment,{children:[l,!!i&&(0,ge.jsx)(d,{...e,catalogVariation:o,collectionVariations:n})]})},Je=e=>{const t=(0,n.useBlockProps)(),{clientId:o,tracksLocation:r}=e,{replaceBlock:c}=(0,a.useDispatch)(n.store);return(0,ge.jsx)("div",{...t,children:(0,ge.jsx)(g.Placeholder,{className:"wc-blocks-product-collection__placeholder",instructions:(0,v.__)("What products do you want to show?","woocommerce"),children:(0,ge.jsx)(Ze,{onCollectionClick:e=>{E("blocks_product_collection_collection_chosen_from_placeholder",{collection:e,location:r}),Ke(e,o,c)}})})})};var et=o(1824),tt=o.n(et);const ot=window.wp.editor;function rt(){return(0,a.useSelect)(e=>{const t=e("email-editor/editor");if(!t)return!1;const o=t.getEmailPostId(),r=t.getEmailPostType(),c=e(ot.store).getCurrentPostId(),n=e(ot.store).getCurrentPostType();if(String(c)===String(o)&&String(n)===String(r))return!0;if("wp_template"===n){const e=t.getCurrentTemplate();if(!e)return!1;const o=t.getEmailTemplates();return!!o&&o.some(t=>t.id===e.id&&t.post_types?.includes(r))}return!1},[])}var ct=function(e){return e.SINGLE_PRODUCT="single-product",e.PRODUCT_CATALOG="product-catalog",e.PRODUCT_ARCHIVE="product-archive",e.ORDER_CONFIRMATION="order-confirmation",e.CART="cart",e.CHECKOUT="checkout",e.POST="post",e.PAGE="page",e.OTHER="other",e}(ct||{});const nt={"single-product":ct.SINGLE_PRODUCT,"archive-product":ct.PRODUCT_CATALOG,"taxonomy-product_cat":ct.PRODUCT_ARCHIVE,"taxonomy-product_tag":ct.PRODUCT_ARCHIVE,"taxonomy-product_attribute":ct.PRODUCT_ARCHIVE,"product-search-results":ct.PRODUCT_ARCHIVE,"order-confirmation":ct.ORDER_CONFIRMATION,"page-cart":ct.CART,"page-checkout":ct.CHECKOUT},st=e=>{const t=(0,a.useSelect)(e=>{const t=e(W);return t?.getCurrentPostType?.()},[]);if(t===ct.PAGE||t===ct.POST)return t;if(!e)return ct.OTHER;return nt[e]||(e.includes("single-product")?ct.SINGLE_PRODUCT:e.includes("taxonomy-product_cat")||e.includes("taxonomy-product_tag")?ct.PRODUCT_ARCHIVE:ct.OTHER)},at=(0,v.__)("Columns","woocommerce"),lt=(0,v.__)("Responsive","woocommerce"),it=(0,v.__)("Automatically adjust the number of columns to better fit smaller screens.","woocommerce"),dt=e=>{const{maxColumns:t,hideResponsiveToggle:o}=e,{type:r,columns:c,shrinkColumns:n}=e.displayLayout,s="flex"===r,a=_e(),l=()=>{e.setAttributes({displayLayout:a})},i=t??6;return s?(0,ge.jsxs)(ge.Fragment,{children:[(0,ge.jsx)(g.__experimentalToolsPanelItem,{label:at,hasValue:()=>a?.columns!==c,isShownByDefault:!0,onDeselect:l,children:(0,ge.jsx)(g.RangeControl,{__next40pxDefaultSize:!0,__nextHasNoMarginBottom:!0,label:at,onChange:t=>{void 0!==t&&e.setAttributes({displayLayout:{...e.displayLayout,columns:t}})},value:c,min:1,max:Math.max(i,c)})}),!o&&(0,ge.jsx)(g.__experimentalToolsPanelItem,{label:lt,hasValue:()=>a?.shrinkColumns!==n,isShownByDefault:!0,onDeselect:l,children:(0,ge.jsx)(g.ToggleControl,{__nextHasNoMarginBottom:!0,checked:!!n,label:lt,help:it,onChange:t=>{e.setAttributes({displayLayout:{...e.displayLayout,shrinkColumns:t}})}})})]}):null},ut=(0,v.__)("Query type","woocommerce"),mt=(0,v.__)("Default","woocommerce"),pt=(0,v.__)("Custom","woocommerce"),_t=(0,v.__)("Display products based on the current template and allow shoppers to filter.","woocommerce"),ht=(0,v.__)("Show products based on specific criteria and allow shoppers to filter.","woocommerce"),gt=(0,v.__)("Show a list of products based on fixed criteria.","woocommerce"),wt=({setQueryAttribute:e,trackInteraction:t,query:o})=>{const r=o?.inherit,c=function(e,t){const o=(0,s.useRef)();return(0,s.useEffect)(()=>{o.current===e||t&&!t(e,o.current)||(o.current=e)},[e,t]),o.current}(o,e=>!1===e?.inherit),n=(0,s.useMemo)(()=>me(),[]);return(0,ge.jsx)(g.__experimentalToolsPanelItem,{label:ut,hasValue:()=>r!==n,isShownByDefault:!0,onDeselect:()=>{e({inherit:n}),t(C.INHERIT)},children:(0,ge.jsxs)(g.__experimentalToggleGroupControl,{__next40pxDefaultSize:!0,__nextHasNoMarginBottom:!0,className:"wc-block-product-collection__inherit-query-control",isBlock:!0,label:ut,help:r?_t:gt,value:r?"default":"custom",onChange:o=>{e("default"===o?{...L,inherit:!0}:{...L,...c,inherit:!1}),t(C.INHERIT)},children:[(0,ge.jsx)(g.__experimentalToggleGroupControlOption,{value:"default",label:mt}),(0,ge.jsx)(g.__experimentalToggleGroupControlOption,{value:"custom",label:pt})]})})},xt=({setQueryAttribute:e,trackInteraction:t,query:o})=>{const r=o?.filterable,c=(0,s.useMemo)(()=>pe(),[]);return(0,ge.jsx)(g.__experimentalToolsPanelItem,{label:ut,hasValue:()=>r!==c,isShownByDefault:!0,onDeselect:()=>{e({filterable:c}),t(C.FILTERABLE)},children:(0,ge.jsxs)(g.__experimentalToggleGroupControl,{__next40pxDefaultSize:!0,__nextHasNoMarginBottom:!0,className:"wc-block-product-collection__inherit-query-control",isBlock:!0,label:ut,help:r?ht:gt,value:r?"default":"custom",onChange:o=>{e({filterable:"default"===o}),t(C.FILTERABLE)},children:[(0,ge.jsx)(g.__experimentalToggleGroupControlOption,{value:"default",label:mt}),(0,ge.jsx)(g.__experimentalToggleGroupControlOption,{value:"custom",label:pt})]})})},yt=(e,t)=>{if(!e)return null;if(0===e.innerBlocks.length)return null;for(const o of e.innerBlocks){if(t(o))return o;const e=yt(o,t);if(e)return e}return null},bt=(e,t)=>yt(e,function(e){return e.name===t}),ft={layout:{}},Ct={layout:{type:"flex",justifyContent:"left",verticalAlignment:"top",flexWrap:"nowrap",orientation:"horizontal"}},vt=(e,t)=>{const{displayLayout:o,collection:c}=t,l=(0,s.useRef)(o.type),i=(0,a.useDispatch)(n.store),{productCollectionBlock:d}=(0,a.useSelect)(t=>({productCollectionBlock:t(n.store).getBlock(e)}),[e]);(0,s.useEffect)(()=>{e&&(o?.type===x.CAROUSEL&&l.current!==x.CAROUSEL&&((e,t)=>{const{removeBlock:o,insertBlock:c,updateBlockAttributes:s}=t,l=bt(e,V),i=bt(e,q),d=bt(e,H),u=e?.clientId,m=l?.clientId;s(m,Ct);const p=(0,r.createBlock)(U,{layout:{type:"flex",flexWrap:"nowrap"}});if(d){const e=(0,a.select)(n.store).getBlockIndex(d.clientId),t=(_=[d,p],(0,r.createBlock)("core/group",{layout:{type:"flex",flexWrap:"nowrap",justifyContent:"space-between"}},_));o(d.clientId,!1),c(t,e,u,!1)}else{const e=(0,a.select)(n.store).getBlockIndex(m),t=(e=>(0,r.createBlock)("core/group",{layout:{type:"flex",flexWrap:"nowrap",justifyContent:"right"}},e))([p]);c(t,e,u,!1)}var _;i&&o(i.clientId,!1)})(d,i),o?.type!==x.CAROUSEL&&l.current===x.CAROUSEL&&((e,t,o)=>{const{removeBlock:c,insertBlock:s,updateBlockAttributes:l}=t,i=bt(e,V);l(i?.clientId,ft);const d=yt(e,e=>"core/group"===e.name&&e.innerBlocks.some(e=>e.name===U));if(d)if(1===d.innerBlocks.length)c(d.clientId,!1);else{const t=bt(d,H);if(t&&2===d.innerBlocks.length){const o=(0,a.select)(n.store).getBlockIndex(t.clientId);c(d.clientId,!1),s(t,o,e.clientId,!1)}else{const t=bt(e,U);c(t?.clientId,!1)}}o||s((0,r.createBlock)(q,G),e.innerBlocks.length,e.clientId,!1)})(d,i,c),l.current=o.type)},[o.type,e,i,c])},St=({hasValue:e=()=>!0,orderOptions:t,onChange:o,onDeselect:r=()=>{},selectedValue:c,label:n,help:s})=>(0,ge.jsx)(g.__experimentalToolsPanelItem,{label:n||(0,v.__)("Order by","woocommerce"),hasValue:e,isShownByDefault:!0,onDeselect:r,resetAllFilter:r,children:(0,ge.jsx)(g.SelectControl,{__next40pxDefaultSize:!0,__nextHasNoMarginBottom:!0,value:c,options:t,label:n||(0,v.__)("Order by","woocommerce"),onChange:o,help:s})}),kt=[{label:(0,v.__)("Newest to oldest","woocommerce"),value:"date"},{label:(0,v.__)("Price, high to low","woocommerce"),value:"price-desc"},{label:(0,v.__)("Price, low to high","woocommerce"),value:"price"},{label:(0,v.__)("Sales, high to low","woocommerce"),value:"popularity"},{label:(0,v.__)("Rating, high to low","woocommerce"),value:"rating"},{value:"menu_order",label:(0,v.__)("Manual (menu order + name)","woocommerce")}],At=({trackInteraction:e})=>{const t=(0,a.select)("core").getEditedEntityRecord("root","site"),[o,r]=(0,s.useState)(t.woocommerce_default_catalog_orderby||"menu_order");return(0,ge.jsx)(St,{label:(0,v.__)("Default sort by","woocommerce"),selectedValue:o,orderOptions:kt,onChange:t=>{r(t),(0,a.dispatch)(l.store).editEntityRecord("root","site",void 0,{woocommerce_default_catalog_orderby:t}),e(C.DEFAULT_ORDER)},help:(0,v.__)("All Product Collection blocks using the Default Query will sync to this sort order.","woocommerce")})},Et=[{label:(0,v.__)("A → Z","woocommerce"),value:"title/asc"},{label:(0,v.__)("Z → A","woocommerce"),value:"title/desc"},{label:(0,v.__)("Newest to oldest","woocommerce"),value:"date/desc"},{label:(0,v.__)("Oldest to newest","woocommerce"),value:"date/asc"},{label:(0,v.__)("Price, high to low","woocommerce"),value:"price/desc"},{label:(0,v.__)("Price, low to high","woocommerce"),value:"price/asc"},{label:(0,v.__)("Sales, high to low","woocommerce"),value:"sales/desc"},{label:(0,v.__)("Sales, low to high","woocommerce"),value:"sales/asc"},{value:"rating/desc",label:(0,v.__)("Rating, high to low","woocommerce")},{value:"rating/asc",label:(0,v.__)("Rating, low to high","woocommerce")},{value:"menu_order/asc",label:(0,v.__)("Manual (menu order + name)","woocommerce")},{value:"random",label:(0,v.__)("Random","woocommerce")}],jt=e=>{const{query:t,trackInteraction:o,setQueryAttribute:r}=e,{order:c,orderBy:n}=t;let s=c?`${n}/${c}`:n;return"popularity"===n&&(s=`sales/${c}`),(0,ge.jsx)(St,{selectedValue:s,hasValue:()=>c!==L.order||n!==L.orderBy,orderOptions:Et,onChange:e=>{const[t,c]=e.split("/");r({orderBy:t,order:c||void 0}),o(C.ORDER)},onDeselect:()=>{r({orderBy:L.orderBy}),o(C.ORDER)},help:(0,v.__)("Set the products order in this collection.","woocommerce")})},Rt=e=>{const{query:t,trackInteraction:o,setQueryAttribute:r}=e,c=()=>{r({woocommerceOnSale:M.woocommerceOnSale}),o(C.ON_SALE)};return(0,ge.jsx)(g.__experimentalToolsPanelItem,{label:(0,v.__)("On Sale","woocommerce"),hasValue:()=>!0===t.woocommerceOnSale,isShownByDefault:!0,onDeselect:c,resetAllFilter:c,children:(0,ge.jsx)(g.ToggleControl,{__nextHasNoMarginBottom:!0,label:(0,v.__)("Show only products on sale","woocommerce"),checked:t.woocommerceOnSale||!1,onChange:e=>{r({woocommerceOnSale:e}),o(C.ON_SALE)}})})};function Pt(e){const t="string"==typeof e?e:e.value;return Object.entries(B).find(([,e])=>e===t)?.[0]}const Tt=e=>{const{query:t,trackInteraction:o,setQueryAttribute:r}=e,c=()=>{r({woocommerceStockStatus:M.woocommerceStockStatus}),o(C.STOCK_STATUS)};return(0,ge.jsx)(g.__experimentalToolsPanelItem,{label:(0,v.__)("Stock Status","woocommerce"),hasValue:()=>!tt()(t.woocommerceStockStatus,O()),onDeselect:c,resetAllFilter:c,isShownByDefault:!0,children:(0,ge.jsx)(g.FormTokenField,{__next40pxDefaultSize:!0,__nextHasNoMarginBottom:!0,label:(0,v.__)("Stock Status","woocommerce"),onChange:e=>{const t=e.map(Pt).filter(Boolean);r({woocommerceStockStatus:t}),o(C.STOCK_STATUS)},suggestions:Object.values(B),validateInput:e=>Object.values(B).includes(e),value:t?.woocommerceStockStatus?.map(e=>B[e])||[],__experimentalExpandOnFocus:!0,__experimentalShowHowTo:!1})})},It=e=>{const{query:t,trackInteraction:o,setQueryAttribute:r}=e,[c,n]=(0,s.useState)(t.search),a=(0,j.useDebounce)(()=>{t.search!==c&&(r({search:c}),o(C.KEYWORD))},250);(0,s.useEffect)(()=>(a(),a.cancel),[c,a]);const l=()=>{n(""),o(C.KEYWORD)};return(0,ge.jsx)(g.__experimentalToolsPanelItem,{hasValue:()=>!!c,label:(0,v.__)("Keyword","woocommerce"),onDeselect:l,resetAllFilter:l,children:(0,ge.jsx)(g.TextControl,{__next40pxDefaultSize:!0,__nextHasNoMarginBottom:!0,label:(0,v.__)("Keyword","woocommerce"),value:c,onChange:n})})};var Dt=o(4921);function Bt(e,t,o){const r=new Set(t.map(e=>e[o]));return e.filter(e=>!r.has(e[o]))}const Nt=window.wp.htmlEntities,Ot={clear:(0,v.__)("Clear all selected items","woocommerce"),noItems:(0,v.__)("No items found.","woocommerce"), /* Translators: %s search term */ noResults:(0,v.__)("No results for %s","woocommerce"),search:(0,v.__)("Search for items","woocommerce"),selected:e=>(0,v.sprintf)(/* translators: Number of items selected from list. */ /* translators: Number of items selected from list. */ (0,v._n)("%d item selected","%d items selected",e,"woocommerce"),e),updated:(0,v.__)("Search results updated.","woocommerce")},Lt=(e,t)=>null!==t&&(e.id===t||!!(Array.isArray(e.children)&&e.children.length>0)&&e.children.some(e=>Lt(e,t))),Ft=(e,t=e)=>{const o=e.reduce((e,t)=>{const o=t.parent||0;return e[o]||(e[o]=[]),e[o].push(t),e},{}),r=t.reduce((e,t)=>(e[String(t.id)]=t,e),{});const c=["0"],n=(e={})=>e.parent?[...n(r[e.parent]),e.name]:e.name?[e.name]:[],s=e=>e.map(e=>{const t=o[e.id];return c.push(""+e.id),{...e,breadcrumbs:n(r[e.parent]),children:t&&t.length?s(t):[]}}),a=s(o[0]||[]);return Object.entries(o).forEach(([e,t])=>{c.includes(e)||a.push(...s(t||[]))}),a},Mt=(e,t)=>{if(!t)return e;const o=new RegExp(`(${t.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")})`,"ig");return e.split(o).map((e,t)=>o.test(e)?(0,ge.jsx)("strong",{children:e},t):(0,ge.jsx)(s.Fragment,{children:e},t))},Ht=e=>{const t=e.children?.map(e=>[e,...Ht(e)]);return t?t.flat():[]},qt=(e,t)=>Ht(e).some(e=>t.find(t=>t.id===e.id)),Ut=(e,t)=>Ht(e).every(e=>t.find(t=>t.id===e.id)),Vt=({label:e})=>(0,ge.jsx)("span",{className:"woocommerce-search-list__item-count",children:e}),$t=e=>{const{item:t,search:o}=e,r=t.breadcrumbs&&t.breadcrumbs.length;return(0,ge.jsxs)("span",{className:"woocommerce-search-list__item-label",children:[r?(0,ge.jsx)("span",{className:"woocommerce-search-list__item-prefix",children:(c=t.breadcrumbs,1===c.length?c.slice(0,1).toString():2===c.length?c.slice(0,1).toString()+" › "+c.slice(-1).toString():c.slice(0,1).toString()+" … "+c.slice(-1).toString())}):null,(0,ge.jsx)("span",{className:"woocommerce-search-list__item-name",children:Mt((0,Nt.decodeEntities)(t.name),o)})]});var c},Gt=({countLabel:e,className:t,depth:o=0,controlId:r="",disabled:c=!1,item:n,isSelected:a,isSelectable:l=!0,isSingle:i,onSelect:d,search:u="",selected:m,useExpandedPanelId:p,..._})=>{const[h,w]=p,x=null!=e&&void 0!==n.count&&null!==n.count,y=!!n.breadcrumbs?.length,b=!!n.children?.length,f=Lt(n,h),C=(0,Dt.A)(["woocommerce-search-list__item",`depth-${o}`,t],{"has-breadcrumbs":y,"has-children":b,"has-count":x,"is-expanded":f,"is-radio-button":i}),v=_.name||`search-list-item-${r}`,S=`${v}-${n.id}`,k=(0,s.useCallback)(()=>{f||"number"!=typeof n.id&&"string"!=typeof n.id?!n.parent||"number"!=typeof n.parent&&"string"!=typeof n.parent?w(null):w(n.parent):w(n.id)},[f,n.id,n.parent,w]),A=(a||!l)&&Ut(n,m);return b?(0,ge.jsx)("div",{className:C,onClick:k,onKeyDown:e=>"Enter"===e.key||" "===e.key?k():null,role:"treeitem",tabIndex:0,children:i?(0,ge.jsxs)(ge.Fragment,{children:[(0,ge.jsx)("input",{type:"radio",id:S,name:v,value:n.value,onChange:()=>{d(n)(),f||w(n.id)},onClick:e=>e.stopPropagation(),checked:a,disabled:c,className:"woocommerce-search-list__item-input",..._}),(0,ge.jsx)($t,{item:n,search:u}),x?(0,ge.jsx)(Vt,{label:e||n.count}):null]}):(0,ge.jsxs)(ge.Fragment,{children:[(0,ge.jsx)(g.CheckboxControl,{className:"woocommerce-search-list__item-input",checked:A,disabled:c,indeterminate:!A&&(a||qt(n,m)),label:Mt((0,Nt.decodeEntities)(n.name),u),onClick:e=>e.stopPropagation(),onKeyDown:e=>e.stopPropagation(),onChange:()=>{const e=Ht(n),t=l?[n,...e]:[...e],o=Ut(n,m);l&&a||!l&&o?d(Bt(m,t,"id"))():(d(function(e,t){const o=Bt(t,e,"id");return[...e,...o]}(m,t))(),f||w(n.id))},__nextHasNoMarginBottom:!0}),x?(0,ge.jsx)(Vt,{label:e||n.count}):null]})}):(0,ge.jsxs)("div",{className:C,onClick:c?void 0:d(n),children:[i?(0,ge.jsxs)(ge.Fragment,{children:[(0,ge.jsx)("input",{..._,type:"radio",id:S,name:v,value:n.value,onChange:d(n),checked:a,disabled:c,className:"woocommerce-search-list__item-input",onClick:e=>e.stopPropagation()}),(0,ge.jsx)("label",{htmlFor:S,children:(0,ge.jsx)($t,{item:n,search:u})})]}):(0,ge.jsx)(g.CheckboxControl,{..._,id:S,name:v,className:"woocommerce-search-list__item-input",value:(0,Nt.decodeEntities)(n.value),label:Mt((0,Nt.decodeEntities)(n.name),u),onChange:()=>{d(n)(),f||w(n.id)},checked:a,disabled:c,__nextHasNoMarginBottom:!0,onClick:e=>e.stopPropagation()}),x?(0,ge.jsx)(Vt,{label:e||n.count}):null]})},Yt=Gt;var Kt=o(7051),Qt=o(1884);o(5022);const Wt=({id:e,label:t,popoverContents:o,remove:r,screenReaderLabel:c,className:n=""})=>{const[a,l]=(0,s.useState)(!1),i=(0,j.useInstanceId)(Wt);if(c=c||t,!t)return null;t=(0,Nt.decodeEntities)(t);const d=(0,Dt.A)("woocommerce-tag",n,{"has-remove":!!r}),u=`woocommerce-tag__label-${i}`,m=(0,ge.jsxs)(ge.Fragment,{children:[(0,ge.jsx)("span",{className:"screen-reader-text",children:c}),(0,ge.jsx)("span",{"aria-hidden":"true",children:t})]});return(0,ge.jsxs)("span",{className:d,children:[o?(0,ge.jsx)(g.Button,{className:"woocommerce-tag__text",id:u,onClick:()=>l(!0),children:m}):(0,ge.jsx)("span",{className:"woocommerce-tag__text",id:u,children:m}),o&&a&&(0,ge.jsx)(g.Popover,{onClose:()=>l(!1),children:o}),r&&(0,ge.jsx)(g.Button,{className:"woocommerce-tag__remove",onClick:r(e),label:(0,v.sprintf)( // Translators: %s label. // Translators: %s label. (0,v.__)("Remove %s","woocommerce"),t),"aria-describedby":u,children:(0,ge.jsx)(P.A,{icon:Qt.A,size:20,className:"clear-icon",role:"img"})})]})},zt=Wt;o(1939);const Xt=e=>(0,ge.jsx)(Yt,{...e}),Zt=e=>{const{list:t,selected:o,renderItem:r,depth:c=0,loadMoreChildrenText:n,onLoadMoreChildren:a,totalChildren:l,onSelect:i,instanceId:d,isSingle:u,search:m,useExpandedPanelId:p}=e,[_]=p;return t?(0,ge.jsx)(ge.Fragment,{children:t.map(t=>{const h=t.children?.length??0,g=!!o.find(({id:e})=>e===t.id),w=Lt(t,_),x=l?.[t.id],y="number"==typeof x&&h<x;return(0,ge.jsxs)(s.Fragment,{children:[(0,ge.jsx)("li",{children:r({item:t,isSelected:g,onSelect:i,isSingle:u,selected:o,search:m,depth:c,useExpandedPanelId:p,controlId:d})}),w?(0,ge.jsxs)(ge.Fragment,{children:[(0,ge.jsx)(Zt,{...e,list:t.children,depth:c+1}),a&&y?(0,ge.jsx)("li",{children:(0,ge.jsx)("button",{type:"button",className:"woocommerce-search-list__item woocommerce-search-list__item-load-more",onClick:()=>a(),children:n||(0,v.__)("Load more","woocommerce")})}):null]}):null]},t.id)})}):null},Jt=({isLoading:e,isSingle:t,selected:o,messages:r,onChange:c,onRemove:n})=>{if(e||t||!o)return null;const s=o.length;return(0,ge.jsxs)("div",{className:"woocommerce-search-list__selected",children:[(0,ge.jsxs)("div",{className:"woocommerce-search-list__selected-header",children:[(0,ge.jsx)("strong",{children:r.selected(s)}),s>0?(0,ge.jsx)(g.Button,{variant:"link",isDestructive:!0,onClick:()=>c([]),"aria-label":r.clear,children:(0,v.__)("Clear all","woocommerce")}):null]}),s>0?(0,ge.jsx)("ul",{children:o.map((e,t)=>(0,ge.jsx)("li",{children:(0,ge.jsx)(zt,{label:e.name,id:e.id,remove:n})},t))}):null]})},eo=({filteredList:e,search:t,onSelect:o,instanceId:r,useExpandedPanelId:c,...n})=>{const{messages:s,renderItem:a,selected:l,isSingle:i,loadMoreChildrenText:d,onLoadMoreChildren:u,totalChildren:m}=n,p=a||Xt;return 0===e.length?(0,ge.jsxs)("div",{className:"woocommerce-search-list__list is-not-found",children:[(0,ge.jsx)("span",{className:"woocommerce-search-list__not-found-icon",children:(0,ge.jsx)(P.A,{icon:Kt.A,role:"img"})}),(0,ge.jsx)("span",{className:"woocommerce-search-list__not-found-text",children:t?(0,v.sprintf)(s.noResults,t):s.noItems})]}):(0,ge.jsx)("ul",{className:"woocommerce-search-list__list",children:(0,ge.jsx)(Zt,{useExpandedPanelId:c,list:e,selected:l,renderItem:p,loadMoreChildrenText:d,onLoadMoreChildren:u,totalChildren:m,onSelect:o,instanceId:r,isSingle:i,search:t})})},to=e=>{const{className:t="",isCompact:o,isHierarchical:r,isLoading:c,isSingle:n,list:a,messages:l=Ot,onChange:i,onSearch:d,selected:u,type:m="text",debouncedSpeak:p}=e,[_,h]=(0,s.useState)(""),w=(0,s.useState)(null),x=(0,j.useInstanceId)(to),y=(0,s.useMemo)(()=>({...Ot,...l}),[l]),b=(0,s.useMemo)(()=>((e,t,o)=>{if(!t)return o?Ft(e):e;const r=new RegExp(t.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&"),"i"),c=e.map(e=>!!r.test(e.name)&&e).filter(Boolean);return o?Ft(c,e):c})(a,_,r),[a,_,r]);(0,s.useEffect)(()=>{p&&p(y.updated)},[p,y]),(0,s.useEffect)(()=>{"function"==typeof d&&d(_)},[_,d]);const f=(0,s.useCallback)(e=>()=>{n&&i([]);const t=u.findIndex(({id:t})=>t===e);i([...u.slice(0,t),...u.slice(t+1)])},[n,u,i]),C=(0,s.useCallback)(e=>()=>{Array.isArray(e)?i(e):-1===u.findIndex(({id:t})=>t===e.id)?i(n?[e]:[...u,e]):f(e.id)()},[n,f,i,u]),S=(0,s.useCallback)(e=>{const[t]=u.filter(t=>!e.find(e=>t.id===e.id));f(t.id)()},[f,u]);return(0,ge.jsxs)("div",{className:(0,Dt.A)("woocommerce-search-list",t,{"is-compact":o,"is-loading":c,"is-token":"token"===m}),children:["text"===m&&(0,ge.jsx)(Jt,{...e,onRemove:f,messages:y}),(0,ge.jsx)("div",{className:"woocommerce-search-list__search",children:"text"===m?(0,ge.jsx)(g.TextControl,{__next40pxDefaultSize:!0,__nextHasNoMarginBottom:!0,label:y.search,type:"search",value:_,onChange:e=>h(e)}):(0,ge.jsx)(g.FormTokenField,{__next40pxDefaultSize:!0,__nextHasNoMarginBottom:!0,disabled:c,label:y.search,onChange:S,onInputChange:e=>h(e),suggestions:[],__experimentalValidateInput:()=>!1,value:c?[(0,v.__)("Loading…","woocommerce")]:u.map(e=>({...e,value:e.name})),__experimentalShowHowTo:!1})}),c?(0,ge.jsx)("div",{className:"woocommerce-search-list__list",children:(0,ge.jsx)(g.Spinner,{})}):(0,ge.jsx)(eo,{...e,search:_,filteredList:b,messages:y,onSelect:C,instanceId:x,useExpandedPanelId:w})]})},oo=((0,g.withSpokenMessages)(to),async e=>{if(!("json"in e))return{code:e.code||"",message:e.message,type:e.type||"general"};try{const t=await e.json();return{code:t.code||"",message:t.message,type:t.type||"api"}}catch(e){return{message:e.message,type:"general"}}});const ro=window.wp.escapeHtml,co=({message:e,type:t})=>e?"general"===t?(0,ge.jsxs)("span",{children:[(0,v.__)("The following error was returned","woocommerce"),(0,ge.jsx)("br",{}),(0,ge.jsx)("code",{children:(0,ro.escapeHTML)(e)})]}):"api"===t?(0,ge.jsxs)("span",{children:[(0,v.__)("The following error was returned from the API","woocommerce"),(0,ge.jsx)("br",{}),(0,ge.jsx)("code",{children:(0,ro.escapeHTML)(e)})]}):e:(0,v.__)("An error has prevented the block from being updated.","woocommerce"),no=({error:e})=>(0,ge.jsx)("div",{className:"wc-block-error-message",children:co(e)});var so=o(1609);const ao=({className:e,item:t,isSelected:o,isLoading:r,onSelect:c,disabled:n,...s})=>(0,ge.jsxs)(ge.Fragment,{children:[(0,so.createElement)(Gt,{...s,key:t.id,...e&&{className:e},isSelected:o,item:t,onSelect:c,...n&&{disabled:n}}),o&&r&&(0,ge.jsx)("div",{className:(0,Dt.A)("woocommerce-search-list__item","woocommerce-product-attributes__item","depth-1","is-loading","is-not-active"),children:(0,ge.jsx)(g.Spinner,{})},"loading")]}),lo=((0,I.getSetting)("attributes",[]).reduce((e,t)=>{const o=(r=t)&&r.attribute_name?{id:parseInt(r.attribute_id,10),name:r.attribute_name,taxonomy:"pa_"+r.attribute_name,label:r.attribute_label,orderby:r.attribute_orderby}:null;var r;return o&&o.id&&e.push(o),e},[]),e=>{const{count:t,id:o,name:r,parent:c}=e;return{count:t,id:o,name:r,parent:c,breadcrumbs:[],children:[],value:(0,z.isAttributeTerm)(e)?e.attr_slug:""}});o(2663);const io=e=>({...lo(e),id:-e.id,parent:0}),uo=(0,j.withInstanceId)(({onChange:e,onOperatorChange:t,instanceId:o,isCompact:r=!1,messages:c={},operator:n="any",selected:a,type:l="text"})=>{const{errorLoadingAttributes:i,isLoadingAttributes:d,productsAttributes:u}=function(e){const[t,o]=(0,s.useState)(null),[r,c]=(0,s.useState)(!1),[n,a]=(0,s.useState)([]),l=(0,s.useRef)(!1);return(0,s.useEffect)(()=>{if(e&&!r&&!l.current)return async function(){c(!0);try{const e=await J()({path:"wc/store/v1/products/attributes"}),t=[];for(const o of e){const e=await ae(o.id);t.push({...o,parent:0,terms:e.map(e=>({...e,attr_slug:o.taxonomy,parent:o.id}))})}a(t),l.current=!0}catch(e){e instanceof Error&&o(await oo(e))}finally{c(!1)}}(),()=>{l.current=!0}},[r,e]),{errorLoadingAttributes:t,isLoadingAttributes:r,productsAttributes:n}}(!0),m=u.reduce((e,t)=>{const{terms:o,...r}=t;return[...e,io(r),...o.map(e=>((e,t)=>({...lo(e),parent:-t}))(e,r.id))]},[]);return c={clear:(0,v.__)("Clear all product attributes","woocommerce"),noItems:(0,v.__)("Your store doesn't have any product attributes.","woocommerce"),search:(0,v.__)("Search for product attributes","woocommerce"),selected:e=>(0,v.sprintf)(/* translators: %d is the count of attributes selected. */ /* translators: %d is the count of attributes selected. */ (0,v._n)("%d attribute selected","%d attributes selected",e,"woocommerce"),e),updated:(0,v.__)("Product attribute search results updated.","woocommerce"),...c},i?(0,ge.jsx)(no,{error:i}):(0,ge.jsxs)(ge.Fragment,{children:[(0,ge.jsx)(to,{className:"woocommerce-product-attributes",isCompact:r,isHierarchical:!0,isLoading:d,isSingle:!1,list:m,messages:c,onChange:e,renderItem:e=>{const{item:t,search:r,depth:c=0}=e,n=t.count||0,s=["woocommerce-product-attributes__item","woocommerce-search-list__item",{"is-searching":r.length>0,"is-skip-level":0===c&&0!==t.parent}];if(!t.breadcrumbs.length)return(0,ge.jsx)(ao,{...e,className:(0,Dt.A)(s),item:t,isLoading:d,isSelectable:!1,disabled:0===t.count,name:`attributes-${o}`,countLabel:(0,v.sprintf)(/* translators: %d is the count of terms. */ /* translators: %d is the count of terms. */ (0,v._n)("%d term","%d terms",n,"woocommerce"),n),"aria-label":(0,v.sprintf)(/* translators: %1$s is the item name, %2$d is the count of terms for the item. */ /* translators: %1$s is the item name, %2$d is the count of terms for the item. */ (0,v._n)("%1$s, has %2$d term","%1$s, has %2$d terms",n,"woocommerce"),t.name,n)});const a=`${t.breadcrumbs[0]}: ${t.name}`;return(0,ge.jsx)(Gt,{...e,name:`terms-${o}`,className:(0,Dt.A)(...s,"has-count"),countLabel:(0,v.sprintf)(/* translators: %d is the count of products. */ /* translators: %d is the count of products. */ (0,v._n)("%d product","%d products",n,"woocommerce"),n),"aria-label":(0,v.sprintf)(/* translators: %1$s is the attribute name, %2$d is the count of products for that attribute. */ /* translators: %1$s is the attribute name, %2$d is the count of products for that attribute. */ (0,v._n)("%1$s, has %2$d product","%1$s, has %2$d products",n,"woocommerce"),a,n)})},selected:a.map(({id:e})=>m.find(t=>t.id===e)).filter(Boolean),type:l}),!!t&&(0,ge.jsx)("div",{hidden:a.length<2,children:(0,ge.jsx)(g.SelectControl,{className:"woocommerce-product-attributes__operator",label:(0,v.__)("Display products matching","woocommerce"),help:(0,v.__)("Pick at least two attributes to use this setting.","woocommerce"),value:n,onChange:t,options:[{label:(0,v.__)("Any selected attributes","woocommerce"),value:"any"},{label:(0,v.__)("All selected attributes","woocommerce"),value:"all"}]})})]})}),mo=`${I.ADMIN_URL}edit.php?post_type=product&page=product_attributes`,po=({query:e,trackInteraction:t,setQueryAttribute:o})=>{const r=e.woocommerceAttributes||[],c=r?.map(({termId:e})=>({id:e})),n=()=>{o({woocommerceAttributes:M.woocommerceAttributes}),t(C.ATTRIBUTES)};return(0,ge.jsxs)(g.__experimentalToolsPanelItem,{label:(0,v.__)("Product Attributes","woocommerce"),hasValue:()=>!!r?.length,onDeselect:n,resetAllFilter:n,children:[(0,ge.jsx)(uo,{messages:{search:(0,v.__)("Attributes","woocommerce")},selected:c||[],onChange:e=>{const r=e.map(({id:e,value:t})=>({termId:e,taxonomy:t}));o({woocommerceAttributes:r}),t(C.ATTRIBUTES)},operator:"any",isCompact:!0,type:"token"}),(0,ge.jsx)(g.ExternalLink,{className:"wc-block-editor-product-collection-panel__manage-attributes-link",href:mo,children:(0,v.__)("Manage attributes","woocommerce")})]})},_o=e=>{const{id:t,name:o,parent:r}=e;return{id:t,name:o,parent:r,breadcrumbs:[],children:[],details:e,value:e.slug}},ho=e=>{const{id:t,name:o,parent:r,count:c}=e;return{id:t,name:o,parent:r,count:c,breadcrumbs:[],children:[],details:e,value:e.slug}},go=e=>{const{id:t,name:o,parent:r,count:c}=e;return{id:t,name:o,parent:r,count:c,breadcrumbs:[],children:[],details:e,value:e.slug}};o(6982);const wo=(xo=({categories:e=[],error:t=null,isLoading:o=!1,onChange:r,onOperatorChange:c,operator:n="any",selected:s,isCompact:a=!1,isSingle:l=!1,showReviewCount:i})=>{const d={clear:(0,v.__)("Clear all product categories","woocommerce"),list:(0,v.__)("Product Categories","woocommerce"),noItems:(0,v.__)("Your store doesn't have any product categories.","woocommerce"),search:(0,v.__)("Search for product categories","woocommerce"),selected:e=>(0,v.sprintf)(/* translators: %d is the count of selected categories. */ /* translators: %d is the count of selected categories. */ (0,v._n)("%d category selected","%d categories selected",e,"woocommerce"),e),updated:(0,v.__)("Category search results updated.","woocommerce")};if(t)return(0,ge.jsx)(no,{error:t});const u=e.map(ho);return(0,ge.jsxs)(ge.Fragment,{children:[(0,ge.jsx)(to,{className:"woocommerce-product-categories",list:u,isLoading:o,selected:u.filter(({id:e})=>s.includes(Number(e))),onChange:r,renderItem:e=>{const{item:t,search:o,depth:r=0}=e,c=t.breadcrumbs.length?`${t.breadcrumbs.join(", ")}, ${t.name}`:t.name,n=i?(0,v.sprintf)(/* translators: %1$s is the item name, %2$d is the count of reviews for the item. */ /* translators: %1$s is the item name, %2$d is the count of reviews for the item. */ (0,v._n)("%1$s, has %2$d review","%1$s, has %2$d reviews",t.details?.review_count||0,"woocommerce"),c,t.details?.review_count||0):(0,v.sprintf)(/* translators: %1$s is the item name, %2$d is the count of products for the item. */ /* translators: %1$s is the item name, %2$d is the count of products for the item. */ (0,v._n)("%1$s, has %2$d product","%1$s, has %2$d products",t.details?.count||0,"woocommerce"),c,t.details?.count||0),s=i?(0,v.sprintf)(/* translators: %d is the count of reviews. */ /* translators: %d is the count of reviews. */ (0,v._n)("%d review","%d reviews",t.details?.review_count||0,"woocommerce"),t.details?.review_count||0):(0,v.sprintf)(/* translators: %d is the count of products. */ /* translators: %d is the count of products. */ (0,v._n)("%d product","%d products",t.details?.count||0,"woocommerce"),t.details?.count||0);return(0,ge.jsx)(Gt,{className:(0,Dt.A)("woocommerce-product-categories__item","has-count",{"is-searching":o.length>0,"is-skip-level":0===r&&0!==t.parent}),...e,countLabel:s,"aria-label":n})},messages:d,isCompact:a,isHierarchical:!0,isSingle:l}),!!c&&(0,ge.jsx)("div",{hidden:s.length<2,children:(0,ge.jsx)(g.SelectControl,{className:"woocommerce-product-categories__operator",label:(0,v.__)("Display products matching","woocommerce"),help:(0,v.__)("Pick at least two categories to use this setting.","woocommerce"),value:n,onChange:c,options:[{label:(0,v.__)("Any selected categories","woocommerce"),value:"any"},{label:(0,v.__)("All selected categories","woocommerce"),value:"all"}]})})]})},({selected:e,...t})=>{const[o,r]=(0,s.useState)(!0),[c,n]=(0,s.useState)(null),[a,l]=(0,s.useState)([]),i=async e=>{const t=await oo(e);n(t),r(!1)},d=(0,s.useRef)(e);return(0,s.useEffect)(()=>{var e;(e={selected:d.current},J()({path:(0,X.addQueryArgs)("wc/store/v1/products/categories",{per_page:0,...e})})).then(e=>{l(e),r(!1)}).catch(i)},[d]),(0,ge.jsx)(xo,{...t,selected:e,error:c,categories:a,isLoading:o})});var xo,yo=o(4347);const bo=({item:e,search:t,depth:o=0,...r})=>{const c=e.breadcrumbs.length?`${e.breadcrumbs.join(", ")}, ${e.name}`:e.name;return(0,ge.jsx)(Gt,{className:(0,Dt.A)("woocommerce-product-tags__item","has-count",{"is-searching":t.length>0,"is-skip-level":0===o&&0!==e.parent}),item:e,search:t,depth:o,...r,ariaLabel:(0,v.sprintf)(/* translators: %1$d is the count of products, %2$s is the name of the tag. */ /* translators: %1$d is the count of products, %2$s is the name of the tag. */ (0,v._n)("%1$d product tagged as %2$s","%1$d products tagged as %2$s",e.count,"woocommerce"),e.count,c)})};o(9910);const fo=({isCompact:e=!1,onChange:t,onOperatorChange:o,operator:r="any",selected:c})=>{const[n,a]=(0,s.useState)([]),[l,i]=(0,s.useState)(!0),[d,u]=(0,s.useState)(!1),m=(0,I.getSetting)("limitTags",!1),p=(0,s.useMemo)(()=>n.filter(e=>c.includes(e.id)),[n,c]),_=(0,s.useCallback)(e=>{i(!0),(({selected:e=[],search:t})=>{const o=(({selected:e=[],search:t})=>{const o=(0,I.getSetting)("limitTags",!1),r=[(0,X.addQueryArgs)("wc/store/v1/products/tags",{per_page:o?100:0,orderby:o?"count":"name",order:o?"desc":"asc",search:t})];return o&&e.length&&r.push((0,X.addQueryArgs)("wc/store/v1/products/tags",{include:e})),r})({selected:e,search:t});return Promise.all(o.map(e=>J()({path:e}))).then(e=>[...new Map(e.flatMap(e=>e.map(e=>[e.id,e]))).values()])})({selected:c,search:e}).then(e=>{a(e),i(!1)}).catch(()=>{i(!1)})},[c]);(0,s.useEffect)(()=>{d||(_(""),u(!0))},[_,d]);const h=(0,yo.YQ)(_,400),w={clear:(0,v.__)("Clear all product tags","woocommerce"),list:(0,v.__)("Product Tags","woocommerce"),noItems:(0,v.__)("You have not set up any product tags on your store.","woocommerce"),search:(0,v.__)("Search for product tags","woocommerce"),selected:e=>(0,v.sprintf)(/* translators: %d is the count of selected tags. */ /* translators: %d is the count of selected tags. */ (0,v._n)("%d tag selected","%d tags selected",e,"woocommerce"),e),updated:(0,v.__)("Tag search results updated.","woocommerce")};return(0,ge.jsxs)(ge.Fragment,{children:[(0,ge.jsx)(to,{className:"woocommerce-product-tags",list:n,isLoading:l,selected:p,onChange:t,onSearch:m?h:void 0,renderItem:bo,messages:w,isCompact:e,isHierarchical:!0,isSingle:!1}),!!o&&(0,ge.jsx)("div",{hidden:c.length<2,children:(0,ge.jsx)(g.SelectControl,{className:"woocommerce-product-tags__operator",label:(0,v.__)("Display products matching","woocommerce"),help:(0,v.__)("Pick at least two tags to use this setting.","woocommerce"),value:r,onChange:o,options:[{label:(0,v.__)("Any selected tags","woocommerce"),value:"any"},{label:(0,v.__)("All selected tags","woocommerce"),value:"all"}]})})]})};o(2411);const Co=(e=>({selected:t,...o})=>{const[r,c]=(0,s.useState)(!0),[n,a]=(0,s.useState)(null),[l,i]=(0,s.useState)([]),d=async e=>{const t=await oo(e);a(t),c(!1)};return(0,s.useEffect)(()=>{var e;(e={},J()({path:(0,X.addQueryArgs)("wc/store/v1/products/brands",{per_page:0,...e})})).then(e=>{i(e),c(!1)}).catch(d)},[]),(0,ge.jsx)(e,{...o,selected:t,error:n,brands:l,isLoading:r})})(({brands:e=[],error:t=null,isLoading:o=!1,onChange:r,onOperatorChange:c,operator:n="any",selected:s=[],isCompact:a=!1,isSingle:l=!1,showReviewCount:i})=>{const d={clear:(0,v.__)("Clear all product brands","woocommerce"),list:(0,v.__)("Product Brands","woocommerce"),noItems:(0,v.__)("Your store doesn't have any product brands.","woocommerce"),search:(0,v.__)("Search for product brands","woocommerce"),selected:e=>(0,v.sprintf)(/* translators: %d is the count of selected brands. */ /* translators: %d is the count of selected brands. */ (0,v._n)("%d brand selected","%d brands selected",e,"woocommerce"),e),updated:(0,v.__)("Brand search results updated.","woocommerce")};if(t)return(0,ge.jsx)(no,{error:t});const u=e.map(go);return(0,ge.jsxs)(ge.Fragment,{children:[(0,ge.jsx)(to,{className:"woocommerce-product-brands",list:u,isLoading:o,selected:u.filter(({id:e})=>s.includes(Number(e))),onChange:r,renderItem:e=>{const{item:t,search:o,depth:r=0}=e,c=t.breadcrumbs.length?`${t.breadcrumbs.join(", ")}, ${t.name}`:t.name,n=i?(0,v.sprintf)(/* translators: %1$s is the item name, %2$d is the count of reviews for the item. */ /* translators: %1$s is the item name, %2$d is the count of reviews for the item. */ (0,v._n)("%1$s, has %2$d review","%1$s, has %2$d reviews",t.details?.review_count||0,"woocommerce"),c,t.details?.review_count||0):(0,v.sprintf)(/* translators: %1$s is the item name, %2$d is the count of products for the item. */ /* translators: %1$s is the item name, %2$d is the count of products for the item. */ (0,v._n)("%1$s, has %2$d product","%1$s, has %2$d products",t.details?.count||0,"woocommerce"),c,t.details?.count||0),s=i?(0,v.sprintf)(/* translators: %d is the count of reviews. */ /* translators: %d is the count of reviews. */ (0,v._n)("%d review","%d reviews",t.details?.review_count||0,"woocommerce"),t.details?.review_count||0):(0,v.sprintf)(/* translators: %d is the count of products. */ /* translators: %d is the count of products. */ (0,v._n)("%d product","%d products",t.details?.count||0,"woocommerce"),t.details?.count||0);return(0,ge.jsx)(Gt,{className:(0,Dt.A)("woocommerce-product-brands__item","has-count",{"is-searching":o.length>0,"is-skip-level":0===r&&0!==t.parent}),...e,countLabel:s,"aria-label":n})},messages:d,isCompact:a,isHierarchical:!0,isSingle:l}),!!c&&(0,ge.jsx)("div",{hidden:s.length<2,children:(0,ge.jsx)(g.SelectControl,{className:"woocommerce-product-brands__operator",label:(0,v.__)("Display products matching","woocommerce"),help:(0,v.__)("Pick at least two brands to use this setting.","woocommerce"),value:n,onChange:c,options:[{label:(0,v.__)("Any selected brands","woocommerce"),value:"any"},{label:(0,v.__)("All selected brands","woocommerce"),value:"all"}]})})]})}),vo={_fields:"id,name",order:"asc",orderby:"name",context:"view"},So=e=>{const t=e.match(/^(?:(.+) )?\(#(\d+)\)$/);return!!t&&{name:t[1]??"",id:parseInt(t[2],10)}},ko=({taxonomy:e,termIds:t,onChange:o})=>{const{existingTerms:r,isLoadingExistingTerms:c}=(0,a.useSelect)(o=>{if(!t||!t.length)return{existingTerms:[],isLoadingExistingTerms:!1};const{getEntityRecords:r,hasFinishedResolution:c}=o("core"),n=["taxonomy",e.slug,{...vo,include:t}];return{existingTerms:r(...n),isLoadingExistingTerms:!c("getEntityRecords",n)}},[e,t]),[n,l]=(0,s.useState)(""),{searchTerms:i}=(0,a.useSelect)(o=>{if(n.length<=1)return{searchTerms:[]};const{getEntityRecords:r}=o("core");return{searchTerms:r("taxonomy",e.slug,{...vo,exclude:t,search:n})}},[e,t,n]),d=(0,j.useDebounce)(l,250),u=new Set,m=new Set,p=e=>(u.has(e.name)&&m.add(e.name),u.add(e.name),(e=>`${e.name} (#${e.id})`)(e)),_=r?r.map(p):[],h=i?i.map(p):[];if(r&&t.length!==r.length){const e=r.reduce((e,t)=>(e[t.id]=t,e),{});t.forEach(t=>{e[t]||_.push(`(#${t})`)})}return(0,ge.jsx)("div",{className:"wc-block-editor-product-collection-inspector__taxonomy-control",children:(0,ge.jsx)(g.FormTokenField,{__next40pxDefaultSize:!0,__nextHasNoMarginBottom:!0,label:e.name,value:_,onInputChange:d,onChange:e=>{const t=[];e.forEach(e=>{const o=So(e);o&&t.push(o.id)}),o(t)},suggestions:h,disabled:c,displayTransform:e=>{const t=So(e);return t&&(e=t.name?m.has(t.name)?`${t.name} (#${t.id})`:t.name:`(#${t.id} ${(0,v.__)("Missing","woocommerce")})`),(0,Nt.decodeEntities)(e)||""},__experimentalShowHowTo:!1})})},Ao=()=>{const e=(0,a.useSelect)(e=>{const{getTaxonomies:t}=e(l.store);return t({type:"product",per_page:-1})},[]);return(0,s.useMemo)(()=>e?.filter(({visibility:e})=>!!e?.publicly_queryable),[e])},Eo=e=>e?e.split(" ").map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(" "):"",jo=function({setQueryAttribute:e,trackInteraction:t,query:o,collection:r,renderMode:c="panel"}){const{filteredTaxonomies:n,taxQuery:a,createHandleChange:l,shouldShowTaxonomyControl:i}=function({setQueryAttribute:e,trackInteraction:t,query:o,collection:r,isFiltersPanel:c}){const{taxQuery:n}=o,a=Ao(),l=(0,s.useMemo)(()=>a&&0!==a.length?r===f.BY_CATEGORY?a.filter(e=>c?"product_cat"!==e.slug:"product_cat"===e.slug):r===f.BY_TAG?a.filter(e=>c?"product_tag"!==e.slug:"product_tag"===e.slug):r===f.BY_BRAND?a.filter(e=>c?"product_brand"!==e.slug:"product_brand"===e.slug):c?a:[]:[],[a,r,c]);return{filteredTaxonomies:l,taxQuery:n,createHandleChange:o=>r=>{e({taxQuery:{[o]:r}}),t(`${C.TAXONOMY}__${o}`)},shouldShowTaxonomyControl:l.length>0}}({query:o,collection:r,setQueryAttribute:e,trackInteraction:t,isFiltersPanel:"panel"===c});if(!i)return null;const d=e=>{const{slug:t}=e,o=a?.[t]||[],r=l(t),c=e=>{const t=e.map(({id:e})=>Number(e));r(t)};switch(t){case"product_cat":return(0,ge.jsx)(wo,{selected:o,onChange:c,isCompact:!0,type:"token"},t);case"product_tag":return(0,ge.jsx)(fo,{selected:o,onChange:c,isCompact:!0,type:"token"},t);case"product_brand":return(0,ge.jsx)(Co,{selected:o,onChange:c,isCompact:!0,type:"token"},t);default:return(0,ge.jsx)(ko,{taxonomy:e,termIds:o,onChange:r},t)}};return(0,ge.jsx)(ge.Fragment,{children:n.map(e=>"panel"===c?(e=>{const{slug:t,name:o}=e,r=a?.[t]||[],c=l(t),n=()=>c([]);return(0,ge.jsx)(g.__experimentalToolsPanelItem,{label:Eo(o),hasValue:()=>r.length>0,onDeselect:n,resetAllFilter:n,children:d(e)},t)})(e):d(e))})},Ro=({query:e,trackInteraction:t,setQueryAttribute:o})=>{const r=(ee.productCount||0)>100,c=e.woocommerceHandPickedProducts,[n,a]=(0,s.useState)(""),{productsMap:l,productsList:i,productsLoaded:d}=function(e,t,o=[]){const[r,c]=(0,s.useState)(new Map),[n,a]=(0,s.useState)([]),[l,i]=(0,s.useState)(!1);return(0,s.useEffect)(()=>{const r={selected:e?o.map(Number):[],queryArgs:e?{search:t,per_page:40}:{per_page:100}};se(r).then(e=>{const t=new Map;e.forEach(e=>{t.set(e.id,e),t.set(e.name,e)}),a(e),c(t),i(!0)})},[e,t,o]),{productsMap:r,productsList:n,productsLoaded:l}}(r,n,c),u=(0,j.useDebounce)(a,250),m=(0,s.useMemo)(()=>c?.length&&l.size?c.filter(e=>!!l.get(Number(e))):c||[],[c,l]);(0,s.useEffect)(()=>{m.length!==c.length&&o({woocommerceHandPickedProducts:m})},[m,c,o]);const p=(0,s.useCallback)(e=>{const r=e.reduce((e,t)=>{const o=l.get(t)||l.get(Number(t));return o&&e.add(String(o.id)),e},new Set);o({woocommerceHandPickedProducts:Array.from(r)}),t(C.HAND_PICKED)},[o,t,l]),_=(0,s.useMemo)(()=>i.filter(e=>!m?.includes(String(e.id))).map(e=>e.name),[i,m]);return(0,ge.jsx)(g.FormTokenField,{__next40pxDefaultSize:!0,__nextHasNoMarginBottom:!0,displayTransform:e=>{const t=Number(e);if(Number.isNaN(t))return(0,Nt.decodeEntities)(e)||"";const o=l.get(t);return(0,Nt.decodeEntities)(o?.name)||""},label:(0,v.__)("Hand-Picked","woocommerce"),onChange:p,onInputChange:r?u:void 0,suggestions:_,__experimentalValidateInput:e=>l.has(e),value:d?m||[]:[(0,v.__)("Loading…","woocommerce")],__experimentalExpandOnFocus:!0,__experimentalShowHowTo:!1,placeholder:(0,v.__)("Search for products to display…","woocommerce")})},Po=({query:e,trackInteraction:t,setQueryAttribute:o})=>{const r=e.woocommerceHandPickedProducts,c=()=>{o({woocommerceHandPickedProducts:M.woocommerceHandPickedProducts}),t(C.HAND_PICKED)};return(0,ge.jsx)(g.__experimentalToolsPanelItem,{label:(0,v.__)("Hand-Picked","woocommerce"),hasValue:()=>!!r?.length,onDeselect:c,resetAllFilter:c,children:(0,ge.jsx)(Ro,{query:e,trackInteraction:t,setQueryAttribute:o})})},To=e=>{switch(e){case x.GRID:return(0,v.__)("Display products using rows and columns.","woocommerce");case x.STACK:return(0,v.__)("Display products in a single column.","woocommerce");case x.CAROUSEL:return(0,v.__)("Display products in a carousel. It displays a single row of products.","woocommerce");default:return""}},Io=x.GRID,Do=e=>{const{type:t,columns:o,shrinkColumns:r}=e.displayLayout,c=t=>{e.setAttributes({displayLayout:{type:t,columns:o,shrinkColumns:r}})};return(0,ge.jsx)(g.__experimentalToolsPanelItem,{label:(0,v.__)("Layout","woocommerce"),hasValue:()=>t!==Io,isShownByDefault:!0,onDeselect:()=>{c(x.GRID)},children:(0,ge.jsxs)(g.__experimentalToggleGroupControl,{__next40pxDefaultSize:!0,__nextHasNoMarginBottom:!0,label:(0,v.__)("Layout","woocommerce"),isBlock:!0,onChange:e=>{c(e)},help:To(t),value:t,children:[(0,ge.jsx)(g.__experimentalToggleGroupControlOption,{value:x.STACK,label:(0,v.__)("Stack","woocommerce")}),(0,ge.jsx)(g.__experimentalToggleGroupControlOption,{value:x.GRID,label:(0,v.__)("Grid","woocommerce")}),(0,ge.jsx)(g.__experimentalToggleGroupControlOption,{value:x.CAROUSEL,label:(0,v.__)("Carousel","woocommerce")})]})})},Bo=e=>{const{query:t,trackInteraction:o,setQueryAttribute:r}=e,c=()=>{r({featured:M.featured}),o(C.FEATURED)};return(0,ge.jsx)(g.__experimentalToolsPanelItem,{label:(0,v.__)("Featured","woocommerce"),hasValue:()=>!0===t.featured,onDeselect:c,resetAllFilter:c,children:(0,ge.jsx)(g.BaseControl,{__nextHasNoMarginBottom:!0,id:"product-collection-featured-products-control",label:(0,v.__)("Featured","woocommerce"),children:(0,ge.jsx)(g.ToggleControl,{__nextHasNoMarginBottom:!0,label:(0,v.__)("Show only featured products","woocommerce"),checked:t.featured||!1,onChange:e=>{r({featured:e}),o(C.FEATURED)}})})})},No=e=>{const{query:t,trackInteraction:o,setQueryAttribute:r}=e,{timeFrame:c}=t,n=()=>{r({timeFrame:M.timeFrame}),o(C.CREATED)};return(0,ge.jsx)(g.__experimentalToolsPanelItem,{label:(0,v.__)("Created","woocommerce"),hasValue:()=>c?.operator&&c?.value,onDeselect:n,resetAllFilter:n,children:(0,ge.jsxs)(g.Flex,{direction:"column",gap:3,children:[(0,ge.jsx)(g.FlexItem,{children:(0,ge.jsxs)(g.__experimentalToggleGroupControl,{__next40pxDefaultSize:!0,__nextHasNoMarginBottom:!0,label:(0,v.__)("Created","woocommerce"),isBlock:!0,onChange:e=>{r({timeFrame:{...c,operator:e}}),o(C.CREATED)},value:c?.operator||b.IN,children:[(0,ge.jsx)(g.__experimentalToggleGroupControlOption,{value:b.IN,label:(0,v._x)("Within","Product Collection query operator","woocommerce")}),(0,ge.jsx)(g.__experimentalToggleGroupControlOption,{value:b.NOT_IN,label:(0,v._x)("Before","Product Collection query operator","woocommerce")})]})}),(0,ge.jsx)(g.FlexItem,{children:(0,ge.jsx)(g.RadioControl,{onChange:e=>{r({timeFrame:{operator:b.IN,...c,value:e}}),o(C.CREATED)},options:[{label:"last 24 hours",value:"-1 day"},{label:"last 7 days",value:"-7 days"},{label:"last 30 days",value:"-30 days"},{label:"last 3 months",value:"-3 months"}],selected:c?.value})})]})})},Oo=window.wc.priceFormat,Lo=({value:e,onChange:t,label:o})=>{const[r,c]=(0,s.useState)(`${e||""}`),n=(0,Oo.getCurrency)(),a=((e="",t)=>{const o=e.replace(new RegExp(`[^0-9\\${t.decimalSeparator||""}]`,"g"),"").replace(new RegExp(`\\${t.decimalSeparator}`,"g"),"."),r=Number(o);if(""!==o&&!isNaN(r))return r<0?0:r})(r,n),l=((e,t)=>{if(void 0===e||isNaN(e))return;let o=((e,t)=>{const o=Math.pow(10,t.minorUnit),r=""+Math.round(e*o)/o;let[c,n]=r.split(".");return t.thousandSeparator&&(c=c.replace(/\B(?=(\d{3})+(?!\d))/g,t.thousandSeparator)),n?`${c}${t.decimalSeparator||"."}${n}`:c})(e,t);return t?.prefix&&(o=`${t.prefix}${o}`),t?.suffix&&(o=`${o}${t.suffix}`),o})(a,n);return(0,ge.jsx)(g.__experimentalInputControl,{value:l,onChange:e=>{c(e)},onBlur:()=>{t(a)},onKeyDown:e=>{"Enter"===e.key&&t(a)},label:o,prefix:(0,ge.jsx)(g.__experimentalInputControlPrefixWrapper,{children:o}),placeholder:(0,v.__)("Auto","woocommerce"),hideLabelFromVision:!0,type:"text",style:{textAlign:"right"},__next40pxDefaultSize:!0})},Fo=e=>{const{query:t,trackInteraction:o,setQueryAttribute:r}=e,c=t.priceRange,n=()=>{r({priceRange:M.priceRange}),o(C.PRICE_RANGE)};return(0,ge.jsxs)(g.__experimentalToolsPanelItem,{label:(0,v.__)("Price Range","woocommerce"),hasValue:()=>void 0!==c?.min||void 0!==c?.max,onDeselect:n,resetAllFilter:n,className:"wc-block-product-price-range-control",children:[(0,ge.jsx)(g.BaseControl.VisualLabel,{children:(0,v.__)("PRICE RANGE","woocommerce")}),(0,ge.jsxs)(g.__experimentalHStack,{spacing:"2",children:[(0,ge.jsx)(Lo,{label:(0,v.__)("MIN","woocommerce"),value:c?.min,onChange:e=>{r({priceRange:{min:0===e?void 0:e,max:c?.max}}),o(C.PRICE_RANGE)}}),(0,ge.jsx)(Lo,{label:(0,v.__)("MAX","woocommerce"),value:c?.max,onChange:e=>{const t=0===e?void 0:e;r({priceRange:{min:c?.min,max:t}}),o(C.PRICE_RANGE)}})]})]})},Mo=e=>({selected:t,...o})=>{const[r,c]=(0,s.useState)(!0),[n,a]=(0,s.useState)(null),[l,i]=(0,s.useState)([]),d=ee.productCount>100,u=async e=>{const t=await oo(e);a(t),c(!1)},m=(0,s.useRef)(t);(0,s.useEffect)(()=>{se({selected:m.current}).then(e=>{i(e),c(!1)}).catch(u)},[m]);const p=(0,yo.YQ)(e=>{se({selected:t,search:e}).then(e=>{i(e),c(!1)}).catch(u)},400),_=(0,s.useCallback)(e=>{c(!0),p(e)},[c,p]);return(0,ge.jsx)(e,{...o,selected:t,error:n,products:l,isLoading:r,onSearch:d?_:null})};var Ho=o(923),qo=o.n(Ho);const Uo=(0,j.createHigherOrderComponent)(e=>{class t extends s.Component{state={error:null,loading:!1,variations:{},totalVariations:{}};componentDidMount(){const{selected:e,showVariations:t}=this.props;e&&t&&this.loadVariations()}componentDidUpdate(e){const{isLoading:t,selected:o,showVariations:r}=this.props;r&&(!qo()(e.selected,o)||e.isLoading&&!t)&&this.loadVariations()}loadVariations=({offset:e=0}={})=>{const{products:t}=this.props,{loading:o,variations:r,totalVariations:c}=this.state;if(o)return;const n=this.getExpandedProduct();if(!n)return;if(!e&&r?.[n])return;if(r?.[n]&&c?.[n]&&r[n].length>=c[n])return;const s=t.find(e=>e.id===n);if(!s?.variations||0===s.variations.length)return void this.setState({variations:{...this.state.variations,[n]:null},loading:!1,error:null});this.setState({loading:!0});const a=this.state.variations[n]||[];((e,t={})=>J()({path:(0,X.addQueryArgs)("wc/store/v1/products",{type:"variation",parent:e,orderby:"title",per_page:25,...t}),parse:!1}).then(e=>e.json().then(t=>{const o=e.headers.get("x-wp-total");return{variations:t,total:o?Number(o):null}})))(n,{offset:e}).then(({variations:e,total:t})=>{const o=e.map(e=>({...e,parent:n}));this.setState({variations:{...this.state.variations,[n]:[...a,...o]},totalVariations:{...this.state.totalVariations,[n]:t},loading:!1,error:null})}).catch(async e=>{const t=await oo(e);this.setState({variations:{...this.state.variations,[n]:null},totalVariations:{...this.state.totalVariations,[n]:null},loading:!1,error:t})})};isProductId(e){const{products:t}=this.props;return t.some(t=>t.id===e)}findParentProduct(e){const{products:t}=this.props,o=t.filter(t=>t.variations&&t.variations.find(({id:t})=>t===e));return o[0]?.id}getExpandedProduct(){const{isLoading:e,selected:t,showVariations:o}=this.props;if(!o)return null;let r=t&&t.length?t[0]:null;return r?this.prevSelectedItem=r:!this.prevSelectedItem||e||this.isProductId(this.prevSelectedItem)||(r=this.prevSelectedItem),!e&&r?this.isProductId(r)?r:this.findParentProduct(r):null}render(){const{error:t,isLoading:o}=this.props,{error:r,loading:c,variations:n,totalVariations:s}=this.state,a=this.getExpandedProduct(),l=a&&n[a]?.length||0;return(0,ge.jsx)(e,{...this.props,error:r||t,onLoadMoreVariations:()=>this.loadVariations({offset:l}),expandedProduct:this.getExpandedProduct(),isLoading:o,totalVariations:s,variations:n,variationsLoading:c})}}return t},"withProductVariations");o(5653);const Vo={list:(0,v.__)("Products","woocommerce"),noItems:(0,v.__)("Your store doesn't have any products.","woocommerce"),search:(0,v.__)("Search for a product to display","woocommerce"),updated:(0,v.__)("Product search results updated.","woocommerce")},$o=(e=>t=>{let{selected:o}=t;o=void 0===o?null:o;const r=null===o;return Array.isArray(o)?(0,ge.jsx)(e,{...t}):(0,ge.jsx)(e,{...t,selected:r?[]:[o]})})(Mo(Uo((0,j.withInstanceId)(e=>{const{expandedProduct:t=null,error:o,instanceId:r,isCompact:c=!1,isLoading:n,onChange:s,onLoadMoreVariations:a,totalVariations:l,onSearch:i,products:d,renderItem:u,selected:m=[],showVariations:p=!1,variations:_,variationsLoading:h}=e;if(o)return(0,ge.jsx)(no,{error:o});const g=[...d,..._&&t&&_[t]?_[t]:[]].map(_o);return(0,ge.jsx)(to,{className:"woocommerce-products",list:g,isCompact:c,isLoading:n,isSingle:!0,selected:g.filter(({id:e})=>m.includes(Number(e))),onChange:s,loadMoreChildrenText:p?(0,v.__)("Load more variations","woocommerce"):void 0,onLoadMoreChildren:p?a:void 0,totalChildren:p?l:void 0,renderItem:u||(p?e=>{const{item:t,search:o,depth:c=0,isSelected:s,onSelect:a,useExpandedPanelId:l}=e,[i,d]=l??[null,()=>{}],u=Lt(t,i),m=t.details?.variations&&Array.isArray(t.details.variations)?t.details.variations.length:0,p=(0,Dt.A)("woocommerce-search-product__item","woocommerce-search-list__item",`depth-${c}`,"has-count",{"is-searching":o.length>0,"is-skip-level":0===c&&0!==t.parent,"is-variable":m>0});if(!t.breadcrumbs.length){const o=t.details?.variations&&t.details.variations.length>0;return(0,ge.jsx)(ao,{...e,className:(0,Dt.A)(p,{"is-selected":s}),isSelected:s,item:t,onSelect:()=>()=>{a(t)(),u||d(t.id)},isLoading:n||h,countLabel:o?(0,v.sprintf)(/* translators: %1$d is the number of variations of a product product. */ /* translators: %1$d is the number of variations of a product product. */ (0,v.__)("%1$d variations","woocommerce"),t.details?.variations.length):null,name:`products-${r}`,"aria-label":o?(0,v.sprintf)(/* translators: %1$s is the product name, %2$d is the number of variations of that product. */ /* translators: %1$s is the product name, %2$d is the number of variations of that product. */ (0,v._n)("%1$s, has %2$d variation","%1$s, has %2$d variations",t.details?.variations?.length,"woocommerce"),t.name,t.details?.variations.length):void 0})}const _=(0,z.isEmpty)(t.details?.variation)?e:{...e,item:{...e.item,name:t.details?.variation},"aria-label":`${t.breadcrumbs[0]}: ${t.details?.variation}`};return(0,ge.jsx)(Gt,{..._,className:p,name:`variations-${r}`})}:void 0),onSearch:i,messages:{...Vo,...e.messages},isHierarchical:!0})})))),Go="product",Yo="cart",Ko="order",Qo=({isOpen:e,onToggle:t,product:o,isLoading:r})=>{if(r&&!o)return(0,ge.jsx)(g.Spinner,{});const c=!o,n=c||!o?.images?.[0]?.src,s=n?`${te}/blocks/product-collection/placeholder.svg`:o.images[0].src,a=n?"":o?.name;return(0,ge.jsx)(g.Button,{className:"wc-block-product-collection-linked-product-control__button",onClick:t,"aria-expanded":e,disabled:r,children:(0,ge.jsxs)(g.Flex,{direction:"row",expanded:!0,justify:"flex-start",children:[(0,ge.jsx)(g.FlexItem,{className:"wc-block-product-collection-linked-product-control__image-container",children:(0,ge.jsx)("img",{src:s,alt:a})}),(0,ge.jsx)(g.Flex,{direction:"column",align:"flex-start",gap:1,className:"wc-block-product-collection-linked-product-control__content",children:c?(0,ge.jsx)(g.FlexItem,{children:(0,ge.jsx)(g.__experimentalText,{color:"inherit",lineHeight:1,children:(0,v.__)("Select product","woocommerce")})}):(0,ge.jsxs)(ge.Fragment,{children:[(0,ge.jsx)(g.FlexItem,{children:(0,ge.jsx)(g.__experimentalText,{color:"inherit",lineHeight:1,children:o?.name?(0,Nt.decodeEntities)(o.name):""})}),(0,ge.jsx)(g.FlexItem,{children:(0,ge.jsx)(g.__experimentalText,{color:"inherit",lineHeight:1,children:o?.sku})})]})})]})})},Wo=({query:e,setAttributes:t,setIsDropdownOpen:o})=>(0,ge.jsx)($o,{selected:e?.productReference,onChange:(r=[])=>{const c=r[0]?.id??null;null!==c&&(t({query:{...e,productReference:c}}),o(!1))},messages:{search:(0,v.__)("Select a product","woocommerce")}});var zo=function(e){return e.CURRENT_PRODUCT="CURRENT_PRODUCT",e.SPECIFIC_PRODUCT="SPECIFIC_PRODUCT",e}(zo||{});const Xo=({query:e,setAttributes:t,location:o,usesReference:r})=>{const c=o.type===Go,n=!!r?.includes(Go),a=o.type===Yo,l=!!r?.includes(Yo),i=o.type===Ko,d=!!r?.includes(Ko),{productReference:u}=e,{product:m,isLoading:p}=(e=>{const[t,o]=(0,s.useState)(null),[r,c]=(0,s.useState)(!1);return(0,s.useEffect)(()=>{(async()=>{if(e){c(!0);try{const t=await(e=>J()({path:`/wc/store/v1/products/${e}`}))(e);o(t)}catch(e){o(null)}finally{c(!1)}}else o(null),c(!1)})()},[e]),{product:t,isLoading:r}})(u),[_,h]=(0,s.useState)(!1),[w,x]=(0,s.useState)((c||a||i)&&(0,z.isEmpty)(u)?zo.CURRENT_PRODUCT:zo.SPECIFIC_PRODUCT),y=(0,s.useRef)(void 0),b=c&&n||a&&l||i&&d,f=b?w===zo.SPECIFIC_PRODUCT:!(0,z.isEmpty)(u);if(!b&&!f||!(n||l||d))return null;const C=w===zo.CURRENT_PRODUCT?(0,v.__)("Linked products will be pulled from the product a shopper is currently viewing","woocommerce"):(0,v.__)("Select a product to pull the linked products from","woocommerce"),S=((e,t,o)=>e===Yo&&t?(0,v.__)("From products in the cart","woocommerce"):e===Ko&&o?(0,v.__)("From products in the order","woocommerce"):(0,v.__)("From the current product","woocommerce"))(o.type,l,d);return(0,ge.jsxs)(g.PanelBody,{title:(0,v.__)("Linked Product","woocommerce"),children:[b&&(0,ge.jsx)(g.PanelRow,{children:(0,ge.jsx)(g.RadioControl,{className:"wc-block-product-collection-product-reference-radio",label:(0,v.__)("Products to show","woocommerce"),help:C,selected:w,options:[{label:S,value:zo.CURRENT_PRODUCT},{label:(0,v.__)("From a specific product","woocommerce"),value:zo.SPECIFIC_PRODUCT}],onChange:o=>{if(o===zo.CURRENT_PRODUCT){const{productReference:o,...r}=e;y.current=o,t({query:r})}else t({query:y.current?{...e,productReference:y.current}:e});x(o)}})}),f&&(0,ge.jsx)(g.PanelRow,{children:(0,ge.jsx)(g.Dropdown,{className:"wc-block-product-collection-linked-product-control",contentClassName:"wc-block-product-collection-linked-product__popover-content",popoverProps:{placement:"left-start"},renderToggle:({isOpen:e,onToggle:t})=>(0,ge.jsx)(Qo,{isOpen:e,onToggle:t,product:m,isLoading:p}),renderContent:()=>(0,ge.jsx)(Wo,{query:e,setAttributes:t,setIsDropdownOpen:h}),open:_,onToggle:()=>h(!_)})})]})},Zo=({dimensions:e,setAttributes:t})=>{const{widthType:o,fixedWidth:r=""}=e;return(0,ge.jsxs)(g.__experimentalToolsPanelItem,{label:(0,v.__)("Width","woocommerce"),hasValue:()=>o!==y.FILL,isShownByDefault:!0,children:[(0,ge.jsxs)(g.__experimentalToggleGroupControl,{__next40pxDefaultSize:!0,__nextHasNoMarginBottom:!0,label:(0,v.__)("Width","woocommerce"),value:o,help:(c=o,c===y.FILL?(0,v.__)("Stretch to fill available space.","woocommerce"):(0,v.__)("Specify a fixed width.","woocommerce")),onChange:o=>(o=>{t({dimensions:{...e,widthType:o}})})(o),isBlock:!0,children:[(0,ge.jsx)(g.__experimentalToggleGroupControlOption,{value:y.FILL,label:(0,v.__)("Fill","woocommerce")}),(0,ge.jsx)(g.__experimentalToggleGroupControlOption,{value:y.FIXED,label:(0,v.__)("Fixed","woocommerce")})]}),o===y.FIXED&&(0,ge.jsx)(g.__experimentalUnitControl,{__next40pxDefaultSize:!0,onChange:o=>{t({dimensions:{...e,fixedWidth:o}})},value:r})]});var c},Jo=({query:e,setQueryAttribute:t,trackInteraction:o})=>{const r=e?.relatedBy,c=(e,c)=>{const n={...r,[c]:e};t({relatedBy:n}),o(C.RELATED_BY)};return(0,ge.jsx)(g.PanelBody,{title:(0,v.__)("Related by","woocommerce"),children:(0,ge.jsxs)("div",{className:"wc-block-editor-product-collection-inspector-controls__relate-by",children:[(0,ge.jsx)(g.CheckboxControl,{__nextHasNoMarginBottom:!0,label:(0,v.__)("Categories","woocommerce"),checked:r?.categories,onChange:e=>{c(e,"categories")}}),(0,ge.jsx)(g.CheckboxControl,{__nextHasNoMarginBottom:!0,label:(0,v.__)("Tags","woocommerce"),checked:r?.tags,onChange:e=>{c(e,"tags")}})]})})},er=(0,v.__)("Products per page","woocommerce"),tr=(0,v.__)("Products in carousel","woocommerce"),or=(0,v.__)("Number of products","woocommerce"),rr=({query:e,setQueryAttribute:t,trackInteraction:o,carouselVariant:r})=>{const c=()=>{t({perPage:L.perPage}),o(C.PRODUCTS_PER_PAGE)},n=((e,t)=>t?or:e?tr:er)(r,rt()),s=e.perPage||L.perPage,a=r&&s>30;return(0,ge.jsxs)(g.__experimentalToolsPanelItem,{label:n,isShownByDefault:!0,hasValue:()=>e.perPage!==L.perPage,onDeselect:c,resetAllFilter:c,children:[a&&(0,ge.jsx)("div",{children:(0,ge.jsx)(g.Notice,{status:"warning",isDismissible:!1,className:"wc-block-editor-product-collection__carousel-warning",children:(0,v.__)("High product counts in carousel may impact performance. Consider reducing the number of products for better user experience.","woocommerce")})}),(0,ge.jsx)(g.RangeControl,{__next40pxDefaultSize:!0,__nextHasNoMarginBottom:!0,label:n,min:1,max:100,onChange:e=>{e<1||e>100||(t({perPage:e}),o(C.PRODUCTS_PER_PAGE))},value:s})]})},cr=({query:e,setQueryAttribute:t,trackInteraction:o})=>{const r=()=>{t({offset:L.offset}),o(C.OFFSET)};return(0,ge.jsx)(g.__experimentalToolsPanelItem,{label:(0,v.__)("Offset","woocommerce"),hasValue:()=>e.offset!==L.offset,onDeselect:r,resetAllFilter:r,children:(0,ge.jsx)(g.__experimentalNumberControl,{__next40pxDefaultSize:!0,label:(0,v.__)("Offset","woocommerce"),value:e.offset,min:0,onChange:e=>{isNaN(e)||e<0||e>100||(t({offset:e}),o(C.OFFSET))}})})},nr=({query:e,setQueryAttribute:t,trackInteraction:o})=>{const r=()=>{t({pages:L.pages}),o(C.MAX_PAGES_TO_SHOW)};return(0,ge.jsx)(g.__experimentalToolsPanelItem,{label:(0,v.__)("Max pages to show","woocommerce"),hasValue:()=>e.pages!==L.pages,onDeselect:r,resetAllFilter:r,children:(0,ge.jsx)(g.__experimentalNumberControl,{__next40pxDefaultSize:!0,label:(0,v.__)("Max pages to show","woocommerce"),value:e.pages,min:0,onChange:e=>{isNaN(e)||e<0||(t({pages:e}),o(C.MAX_PAGES_TO_SHOW))},help:(0,v.__)("Limit the pages you want to show, even if the query has more results. To show all pages use 0 (zero).","woocommerce")})})},sr=e=>{const{attributes:t,context:o,setAttributes:r,clientId:c}=e,{query:l,hideControls:i,dimensions:d,displayLayout:u,collection:m}=t,p=st(o.templateSlug),_=e=>E("blocks_product_collection_inspector_control_clicked",{collection:t.collection,location:p,filter:e}),h=l?.inherit||!1,w=(e=>t=>!e.includes(t))(i),y="product-catalog"===p||"product-archive"===p,b=u?.type===x.CAROUSEL,S=rt();vt(c,t),((e,t)=>{const{displayLayout:o,collection:r}=t,c=(0,a.useDispatch)(n.store),l=rt(),{productCollectionBlock:i}=(0,a.useSelect)(t=>({productCollectionBlock:t(n.store).getBlock(e)}),[e]);(0,s.useEffect)(()=>{e&&i&&l&&i.innerBlocks&&Array.isArray(i.innerBlocks)&&o.type===x.GRID&&i.innerBlocks.filter(e=>e&&"core/query-pagination"===e.name).forEach(e=>{if(e&&e.clientId)try{c.removeBlock(e.clientId)}catch(e){}})},[o.type,e,c,r,i,l])})(c,t),((e,t)=>{const{displayLayout:o}=e,r=rt();(0,s.useEffect)(()=>{r&&o.columns&&o.columns>2&&t({displayLayout:{...o,columns:2}})},[r,o,t])})(t,r),(e=>{const t=(0,a.useDispatch)(n.store),o=rt(),{productCollectionBlock:r}=(0,a.useSelect)(t=>({productCollectionBlock:t(n.store).getBlock(e)}),[e]);(0,s.useEffect)(()=>{e&&r&&o&&r.innerBlocks&&Array.isArray(r.innerBlocks)&&r.innerBlocks.filter(e=>e&&"core/heading"===e.name).forEach(e=>{if(e&&e.clientId)try{t.removeBlock(e.clientId)}catch(e){}})},[e,t,r,o])})(c);const k=!1===h,A=y&&w(C.INHERIT),j=!y&&w(C.FILTERABLE),R=k&&w(C.ORDER),P=!k,T=k&&w(C.OFFSET),I=!b,D=k&&!b&&w(C.MAX_PAGES_TO_SHOW),B=k&&w(C.PRODUCTS_PER_PAGE),N=w(C.ON_SALE),O=w(C.STOCK_STATUS),M=w(C.HAND_PICKED),H=w(C.KEYWORD),q=w(C.ATTRIBUTES),U=w(C.TAXONOMY),V=w(C.FEATURED),$=w(C.CREATED),G=w(C.PRICE_RANGE),Y={setAttributes:r,displayLayout:u},K={setAttributes:r,dimensions:d},Q={setQueryAttribute:(0,s.useMemo)(()=>ie.bind(null,e),[e]),trackInteraction:_,query:l};return(0,ge.jsxs)(n.InspectorControls,{children:[(0,ge.jsx)(Xo,{query:e.attributes.query,setAttributes:e.setAttributes,usesReference:e.usesReference,location:e.location}),(()=>{switch(m){case f.HAND_PICKED:return(0,ge.jsx)(g.PanelBody,{children:(0,ge.jsx)(Ro,{...Q})});case f.BY_CATEGORY:case f.BY_TAG:case f.BY_BRAND:return(0,ge.jsx)(g.PanelBody,{children:(0,ge.jsx)(jo,{...Q,collection:m,renderMode:"standalone"})});case f.RELATED:return(0,ge.jsx)(Jo,{...Q});default:return null}})(),(0,ge.jsxs)(g.__experimentalToolsPanel,{label:(0,v.__)("Settings","woocommerce"),resetAll:()=>{const t=(o=e.attributes,{displayLayout:_e(),query:(r=o.query,{...r,orderBy:L.orderBy,order:L.order,inherit:me(),filterable:pe(),perPage:L.perPage,offset:L.offset,pages:L.pages}),dimensions:F.dimensions});var o,r;e.setAttributes(t)},className:"wc-block-editor-product-collection__settings_panel",children:[A&&(0,ge.jsx)(wt,{...Q}),j&&(0,ge.jsx)(xt,{...Q}),R&&(0,ge.jsx)(jt,{...Q}),P&&(0,ge.jsx)(At,{trackInteraction:_}),!S&&(0,ge.jsx)(Do,{...Y}),!S&&(0,ge.jsx)(Zo,{...K}),B&&(0,ge.jsx)(rr,{...Q,carouselVariant:b}),I&&(0,ge.jsx)(dt,{...Y,...S&&{maxColumns:2,hideResponsiveToggle:!0}}),!S&&T&&(0,ge.jsx)(cr,{...Q}),D&&!S&&(0,ge.jsx)(nr,{...Q})]}),k?(0,ge.jsxs)(g.__experimentalToolsPanel,{label:(0,v.__)("Filters","woocommerce"),resetAll:(e=[])=>{e.forEach(e=>{e()})},className:"wc-block-editor-product-collection-inspector-toolspanel__filters",children:[N&&(0,ge.jsx)(Rt,{...Q}),O&&(0,ge.jsx)(Tt,{...Q}),M&&(0,ge.jsx)(Po,{...Q}),H&&(0,ge.jsx)(It,{...Q}),q&&(0,ge.jsx)(po,{...Q}),U&&(0,ge.jsx)(jo,{...Q,collection:m,renderMode:"panel"}),V&&(0,ge.jsx)(Bo,{...Q}),$&&(0,ge.jsx)(No,{...Q}),G&&(0,ge.jsx)(Fo,{...Q})]}):null]})},ar=(0,v.__)("Enable to enforce full page reload on certain interactions, like using paginations controls.","woocommerce"),lr=(0,v.__)("Browsing between pages requires a full page reload.","woocommerce"),ir=(0,v.__)("Reload full page can't be disabled because there are incompatible blocks inside the Product Collection block.","woocommerce"),dr=e=>{const{clientId:t,forcePageReload:o,setAttributes:c}=e,l=(e=>(0,a.useSelect)(t=>{const{getClientIdsOfDescendants:o,getBlockName:c}=t(n.store);return o(e).find(e=>!(e=>{const t=Object.is((0,r.getBlockSupport)(e,"interactivity"),!0),o=(0,r.getBlockSupport)(e,"interactivity.clientNavigation");return t||o})(c(e)))||!1},[e]))(t);(0,s.useEffect)(()=>{!o&&l&&c({forcePageReload:!0})},[o,l,c]);let i=ar;return o&&(i=lr),l&&(i=ir),(0,ge.jsx)(g.ToggleControl,{__nextHasNoMarginBottom:!0,label:(0,v.__)("Reload full page","woocommerce"),help:i,checked:o,onChange:()=>c({forcePageReload:!o}),disabled:l})};function ur(e){const{clientId:t,attributes:o,setAttributes:r}=e,{forcePageReload:c}=o;return(0,ge.jsx)(n.InspectorAdvancedControls,{children:(0,ge.jsx)(dr,{clientId:t,forcePageReload:c,setAttributes:r})})}const mr=e=>(0,ge.jsx)(g.ToolbarGroup,{children:(0,ge.jsx)(g.ToolbarButton,{onClick:e.openCollectionSelectionModal,children:(0,v.__)("Choose collection","woocommerce")})});function pr(e){const{openCollectionSelectionModal:t}=e,o=Ye(e.attributes.collection),r=o?.scope?.includes("block")||void 0===o?.scope;return(0,ge.jsx)(n.BlockControls,{children:r&&(0,ge.jsx)(mr,{openCollectionSelectionModal:t})})}const _r=({preview:{setPreviewState:e,initialPreviewState:t}={},...o})=>{const r=(0,s.useRef)(!1),{clientId:c,attributes:l,setAttributes:d,location:u,isUsingReferencePreviewMode:m}=o,p=rt();(({setPreviewState:e,location:t,attributes:o,setAttributes:r,isUsingReferencePreviewMode:c})=>{const{__unstableMarkNextChangeAsNotPersistent:l}=(0,a.useDispatch)(n.store),d=e=>{l(),r({__privatePreviewState:{...o.__privatePreviewState,...e}})},u=((e,t)=>t?e.type===i.Product?(0,v.__)("Actual products will vary depending on the product being viewed.","woocommerce"):(0,v.__)("Actual products will vary depending on the page being viewed.","woocommerce"):"")(t,c);(0,s.useEffect)(()=>{c&&(l(),r({__privatePreviewState:{isPreview:u.length>0,previewMessage:u}}))},[r,u,c]),(0,s.useLayoutEffect)(()=>{if(!e&&!c)return;const r=e?.({setState:d,location:t,attributes:o});return r||void 0},[e]);const m=t.type===i.Archive?t.sourceData?.termId:null;(0,s.useEffect)(()=>{if(!e&&!c){const e=t.type===i.Archive&&null===m;l(),r({__privatePreviewState:{isPreview:!!e&&!!o?.query?.inherit,previewMessage:(0,v.__)("Actual products will vary depending on the page being viewed.","woocommerce")}})}},[o?.query?.inherit,u,m,t.type,r,e,c])})({setPreviewState:e,setAttributes:d,location:u,attributes:l,isUsingReferencePreviewMode:m});const _=(0,n.useBlockProps)(),h=(0,n.useInnerBlocksProps)({},{template:K}),w=((e,t,o)=>{const r=(0,j.useInstanceId)(o),{getBlockParentsByBlockName:c}=(0,a.useSelect)(n.store);let l=r;return(0,s.useMemo)(()=>c(e,"core/block"),[c,e]).length>0&&(l=t.queryId),l})(c,l,_r),x={...F,query:{...F.query,inherit:me(),filterable:pe()},...l,queryId:w,...!!l.collection&&t&&{__privatePreviewState:t}};let b={};y.FIXED===l?.dimensions?.widthType&&l?.dimensions?.fixedWidth&&(b={maxWidth:l.dimensions.fixedWidth,margin:"0 auto"});const{__unstableMarkNextChangeAsNotPersistent:f}=(0,a.useDispatch)(n.store);return(0,s.useEffect)(()=>{f(),d(x),r.current=!0},[]),r.current=r.current||tt()(l,x),r.current?(0,ge.jsxs)("div",{..._,children:[l.__privatePreviewState?.isPreview&&(p||o.isSelected)&&(0,ge.jsx)(g.Button,{variant:"primary",size:"small",showTooltip:!0,label:l.__privatePreviewState?.previewMessage,className:"wc-block-product-collection__preview-button","data-testid":"product-collection-preview-button",children:"Preview"}),(0,ge.jsx)(sr,{...o}),(0,ge.jsx)(ur,{...o}),(0,ge.jsx)(pr,{...o}),(0,ge.jsx)("div",{...h,style:b})]}):null},hr=_r,gr=e=>{const{clientId:t,attributes:o,tracksLocation:r,closePatternSelectionModal:c}=e,{collection:l}=o,{replaceBlock:i}=(0,a.useDispatch)(n.store),[d,u]=(0,s.useState)(l),m=e=>{E("blocks_product_collection_collection_replaced_from_placeholder",{action:e,location:r}),c()};return(0,ge.jsx)(g.Modal,{overlayClassName:"wc-blocks-product-collection__modal",title:(0,v.__)("What products do you want to show?","woocommerce"),onRequestClose:()=>m("close"),size:"large",children:(0,ge.jsxs)("div",{className:"wc-blocks-product-collection__content",children:[(0,ge.jsx)(Ze,{chosenCollection:d,onCollectionClick:u}),(0,ge.jsxs)("div",{className:"wc-blocks-product-collection__footer",children:[(0,ge.jsx)(g.Button,{variant:"tertiary",onClick:()=>m("cancel"),children:(0,v.__)("Cancel","woocommerce")}),(0,ge.jsx)(g.Button,{variant:"primary",onClick:()=>{d&&(E("blocks_product_collection_collection_replaced_from_placeholder",{from:l,to:d,location:r}),Ke(d,t,i))},children:(0,v.__)("Continue","woocommerce")})]})]})})},wr=e=>{const{attributes:t,isDeletedProductReference:o}=e,r=(0,n.useBlockProps)(),c=Ye(t.collection);if(!c)return null;const a=o?(0,v.__)("Previously selected product is no longer available.","woocommerce"):(0,s.createInterpolateElement)((0,v.sprintf)(/* translators: %s: collection title */ /* translators: %s: collection title */ (0,v.__)("<strong>%s</strong> requires a product to be selected in order to display associated items.","woocommerce"),c.title),{strong:(0,ge.jsx)("strong",{})});return(0,ge.jsx)("div",{...r,children:(0,ge.jsxs)(g.Placeholder,{className:"wc-block-editor-product-collection__product-picker",children:[(0,ge.jsxs)(g.__experimentalHStack,{alignment:"center",children:[(0,ge.jsx)(P.A,{icon:Kt.A,className:"wc-block-editor-product-collection__info-icon"}),(0,ge.jsx)(g.__experimentalText,{children:a})]}),(0,ge.jsx)($o,{selected:t.query?.productReference,onChange:(o=[])=>{null!==(o[0]?.id??null)&&e.setAttributes({query:{...t.query,productReference:o[0].id}})},messages:{search:(0,v.__)("Select a product","woocommerce")}})]})})},xr=Mo(({error:e,onChange:t,onSearch:o,selected:r=[],products:c=[],isLoading:n=!0,isCompact:s=!1})=>{const a={clear:(0,v.__)("Clear all products","woocommerce"),noItems:(0,v.__)("Your store doesn't have any products.","woocommerce"),search:(0,v.__)("Search for products to display","woocommerce"),selected:e=>(0,v.sprintf)(/* translators: %d is the number of selected products. */ /* translators: %d is the number of selected products. */ (0,v._n)("%d product selected","%d products selected",e,"woocommerce"),e),updated:(0,v.__)("Product search results updated.","woocommerce")};if(e)return(0,ge.jsx)(no,{error:e});const l=c.map(_o);return(0,ge.jsx)(to,{className:"woocommerce-products",list:l.map(e=>{const t=e.details?.sku?" ("+e.details.sku+")":"";return{...e,name:`${(0,Nt.decodeEntities)(e.name)}${t}`}}),isCompact:s,isLoading:n,isSingle:!1,selected:l.filter(({details:e})=>!(!e||!Number.isSafeInteger(e.id))&&r.includes(e.id)),onSearch:o,onChange:t,messages:a})}),yr=xr,br=e=>{const{attributes:t,onDone:o}=e,r=(0,n.useBlockProps)(),c=Ye(t.collection),s=(t.query?.woocommerceHandPickedProducts||[]).map(Number),a=s.length>0;return c?(0,ge.jsx)("div",{...r,children:(0,ge.jsxs)(g.Placeholder,{className:"wc-block-editor-product-collection__product-picker",children:[(0,ge.jsxs)("div",{className:"wc-block-editor-product-collection__product-picker-info",children:[(0,ge.jsx)(P.A,{icon:Kt.A,className:"wc-block-editor-product-collection__info-icon"}),(0,ge.jsx)("span",{children:(0,v.__)("Select products to display in this collection.","woocommerce")})]}),(0,ge.jsxs)("div",{className:"wc-block-editor-product-collection__product-picker-selection",children:[(0,ge.jsx)(yr,{selected:s,onChange:(t=[])=>{const o=t.map(({id:e})=>String(e));ie(e,{woocommerceHandPickedProducts:o})}}),(0,ge.jsx)(g.Button,{variant:"primary",onClick:o,disabled:!a,children:(0,v.__)("Done","woocommerce")})]})]})}):null},fr=e=>{switch(e){case f.BY_CATEGORY:return"product_cat";case f.BY_TAG:return"product_tag";case f.BY_BRAND:return"product_brand";default:return null}},Cr=e=>{switch(e){case f.BY_CATEGORY:return(0,v.__)("Display a grid of products from your selected categories.","woocommerce");case f.BY_TAG:return(0,v.__)("Display a grid of products from your selected tags.","woocommerce");case f.BY_BRAND:return(0,v.__)("Display a grid of products from your selected brands.","woocommerce");default:return(0,v.__)("Select taxonomy terms to display products from.","woocommerce")}},vr=e=>{switch(e){case f.BY_CATEGORY:return Oe.A;case f.BY_TAG:return Fe.A;case f.BY_BRAND:return He.A;default:return Oe.A}},Sr=e=>{const{attributes:t,onDone:o}=e,r=(0,n.useBlockProps)(),c=Ye(t.collection),s=fr(t.collection),a=s&&t.query?.taxQuery?.[s]||[],l=a.length>0;if(!c||!s)return null;const i=t=>{ie(e,{taxQuery:{[s]:t}})};return(0,ge.jsx)("div",{...r,children:(0,ge.jsxs)(g.Placeholder,{icon:(0,ge.jsx)(P.A,{icon:vr(t.collection),className:"block-editor-block-icon"}),label:c.title,children:[Cr(t.collection),(0,ge.jsxs)("div",{className:"wc-block-editor-product-collection__taxonomy-picker-selection",children:[(()=>{switch(t.collection){case f.BY_CATEGORY:return(0,ge.jsx)(wo,{selected:a,onChange:(e=[])=>{const t=e.map(({id:e})=>e);i(t)}});case f.BY_TAG:return(0,ge.jsx)(fo,{selected:a,onChange:(e=[])=>{const t=e.map(({id:e})=>Number(e));i(t)}});case f.BY_BRAND:return(0,ge.jsx)(Co,{selected:a,onChange:(e=[])=>{const t=e.map(({id:e})=>e);i(t)}});default:return null}})(),(0,ge.jsx)(g.Button,{variant:"primary",onClick:o,disabled:!l,children:(0,v.__)("Done","woocommerce")})]})]})})};var kr=o(3243);function Ar(e,{blockDescription:t,blockIcon:o,blockTitle:c,variationName:n,scope:s}){(0,r.registerBlockVariation)(e,{description:t,name:n,title:c,isActive:e=>e.__woocommerceNamespace===n,icon:{src:o},attributes:{__woocommerceNamespace:n},scope:s})}const Er=(0,v.__)("Product Summary","woocommerce"),jr=(P.A,kr.A,(0,v.__)("Display a short description about a product.","woocommerce")),Rr=`${c.name}/product-summary`;var Pr=o(9544);const Tr=JSON.parse('{"title":"Product Title","description":"Display the title of a product."}'),Ir=`${c.name}/product-title`;(0,r.registerBlockType)(c,{icon:()=>(0,ge.jsxs)("svg",{width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[(0,ge.jsx)("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M19 11H5C4.72386 11 4.5 11.2239 4.5 11.5V17.5C4.5 17.7761 4.72386 18 5 18H19C19.2761 18 19.5 17.7761 19.5 17.5V11.5C19.5 11.2239 19.2761 11 19 11ZM5 9.5H19C20.1046 9.5 21 10.3954 21 11.5V17.5C21 18.6046 20.1046 19.5 19 19.5H5C3.89543 19.5 3 18.6046 3 17.5V11.5C3 10.3954 3.89543 9.5 5 9.5Z",fill:"currentColor"}),(0,ge.jsx)("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M18 7.5C18 7.77614 17.7761 8 17.5 8L6.5 8C6.22386 8 6 7.77614 6 7.5V7.5C6 7.22386 6.22386 7 6.5 7L17.5 7C17.7761 7 18 7.22386 18 7.5V7.5Z",fill:"currentColor"}),(0,ge.jsx)("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M16 5C16 5.27614 15.7761 5.5 15.5 5.5L8.5 5.5C8.22386 5.5 8 5.27614 8 5V5C8 4.72386 8.22386 4.5 8.5 4.5L15.5 4.5C15.7761 4.5 16 4.72386 16 5V5Z",fill:"currentColor"})]}),edit:e=>{const{clientId:t,attributes:o,context:r}=e,c=((e,t)=>{const o=e.templateSlug||"",r=e.postId||null,c=(e=>t=>e.replace(`${t}-`,""))(o),l=(e=>t=>e.includes(t)&&e!==t)(o),g=l(d),w=l(u),x=l(m),y=l(p),[b,f]=(0,s.useState)(null),[C,v]=(0,s.useState)(null),[S,k]=(0,s.useState)(null),[A,E]=(0,s.useState)(null);(0,s.useEffect)(()=>{if(g){const e=c(d);_("postType","product",e,f)}if(w){const e=c(u);_("taxonomy","product_cat",e,v)}if(x){const e=c(m);_("taxonomy","product_tag",e,k)}if(y){const e=c(p);_("taxonomy","product_brand",e,E)}},[g,w,x,y,c]);const{isInSingleProductBlock:j,isInSomeCartCheckoutBlock:R}=(0,a.useSelect)(e=>{const{getBlockParentsByBlockName:o}=e(n.store),r=e=>o(t,e).length>0;return{isInSingleProductBlock:r(["woocommerce/single-product"]),isInSomeCartCheckoutBlock:r(["woocommerce/cart","woocommerce/checkout","woocommerce/mini-cart-contents"])}},[t]);if(j)return h(i.Product,{productId:r});if(R)return h(i.Cart);if(g)return h(i.Product,{productId:b});const P=(e=>t=>e===t)(o);if(P(d))return h(i.Product,{productId:null});if(w)return h(i.Archive,{taxonomy:"product_cat",termId:C});if(x)return h(i.Archive,{taxonomy:"product_tag",termId:S});if(y)return h(i.Archive,{taxonomy:"product_brand",termId:A});if(P(u))return h(i.Archive,{taxonomy:"product_cat",termId:null});if(P(m))return h(i.Archive,{taxonomy:"product_tag",termId:null});if(P(p))return h(i.Archive,{taxonomy:"product_brand",termId:null});if(P("taxonomy-product_attribute"))return h(i.Archive,{taxonomy:null,termId:null});if("page-cart"===o||"page-checkout"===o)return h(i.Cart);const T=P("order-confirmation");return h(T?i.Order:i.Site)})(r,t),x=st(r.templateSlug);(()=>{const e=rt();(0,s.useEffect)(()=>{e&&Ge.forEach(e=>(0,R.__experimentalRegisterProductCollection)(e))},[e])})();const[y,b]=(0,s.useState)(!1),[C,v]=(0,s.useState)(!1),S=o.collection===f.HAND_PICKED,k=(o.query?.woocommerceHandPickedProducts?.length??0)>0,A=o.collection===f.BY_CATEGORY||o.collection===f.BY_TAG||o.collection===f.BY_BRAND,E=fr(o.collection),j=!!E&&(o.query?.taxQuery?.[E]?.length??0)>0;(0,s.useEffect)(()=>{(S&&!k||A&&!j)&&v(!0)},[S,k,A,j]);const P=()=>v(!1),T=(0,a.useSelect)(e=>!!e(n.store).getBlocks(t).length,[t]),{productCollectionUIStateInEditor:I,isLoading:D}=(({location:e,usesReference:t,attributes:o,hasInnerBlocks:r})=>{const c=o.query?.productReference,{product:n,hasResolved:d}=(0,a.useSelect)(e=>{if(!c)return{product:null,hasResolved:!0};const{getEntityRecord:t,hasFinishedResolution:o}=e(l.store),r=["postType","product",c];return{product:t(...r),hasResolved:o("getEntityRecord",r)}},[c]);return{productCollectionUIStateInEditor:(0,s.useMemo)(()=>{const s=t?.includes(e.type),a=!!o.collection,l=t?.includes("product"),d=null!==(o.query?.productReference??null);if(a&&l&&!s&&!d)return w.PRODUCT_REFERENCE_PICKER;if(a&&l&&!s&&d&&c&&(void 0===n||"trash"===n?.status))return w.DELETED_PRODUCT_REFERENCE;const u=o.collection===f.HAND_PICKED,m=(o.query?.woocommerceHandPickedProducts?.length??0)>0;if(a&&u&&!m)return w.HAND_PICKED_PRODUCTS_PICKER;const p=o.collection===f.BY_CATEGORY||o.collection===f.BY_TAG||o.collection===f.BY_BRAND;if(a&&p){let e;switch(o.collection){case f.BY_CATEGORY:e="product_cat";break;case f.BY_TAG:e="product_tag";break;case f.BY_BRAND:e="product_brand";break;default:e=""}if(!((o.query?.taxQuery?.[e]||[]).length>0))return w.TAXONOMY_PICKER}if(s){const t=e.type===i.Archive&&null!==(e.sourceData?.termId??null),o=e.type===i.Product&&null!==(e.sourceData?.productId??null);if(!t&&!o&&!c)return w.VALID_WITH_PREVIEW}return r||a?w.VALID:w.COLLECTION_PICKER},[e.type,e.sourceData?.termId,e.sourceData?.productId,t,o.collection,c,n,r,o.query?.productReference,o.query?.woocommerceHandPickedProducts,o.query?.taxQuery]),isLoading:!d}})({location:c,attributes:o,hasInnerBlocks:T,usesReference:e.usesReference});if(D)return(0,ge.jsx)(g.Flex,{justify:"center",align:"center",children:(0,ge.jsx)(g.Spinner,{})});const B={...e,openCollectionSelectionModal:()=>b(!0),location:c,isUsingReferencePreviewMode:I===w.VALID_WITH_PREVIEW};return(0,ge.jsxs)(ge.Fragment,{children:[(()=>{if(C){if(S)return(0,ge.jsx)(br,{...e,onDone:P});if(A)return(0,ge.jsx)(Sr,{...e,onDone:P})}switch(I){case w.COLLECTION_PICKER:return(0,ge.jsx)(Je,{...e,tracksLocation:x});case w.PRODUCT_REFERENCE_PICKER:return(0,ge.jsx)(wr,{...e,isDeletedProductReference:!1});case w.DELETED_PRODUCT_REFERENCE:return(0,ge.jsx)(wr,{...e,isDeletedProductReference:!0});case w.HAND_PICKED_PRODUCTS_PICKER:return(0,ge.jsx)(br,{...e,onDone:P});case w.TAXONOMY_PICKER:return(0,ge.jsx)(Sr,{...e,onDone:P});case w.VALID:case w.VALID_WITH_PREVIEW:return(0,ge.jsx)(hr,{...B});default:return(0,ge.jsx)(Je,{...e,tracksLocation:x})}})(),y&&(0,ge.jsx)(gr,{clientId:t,attributes:o,tracksLocation:x,closePatternSelectionModal:()=>b(!1)})]})},save:function({attributes:{tagName:e="div"}}){const t=n.useBlockProps.save(),o=n.useInnerBlocksProps.save(t);return(0,ge.jsx)(e,{...o})}}),Ar("core/post-excerpt",{blockDescription:jr,blockIcon:(0,ge.jsx)(g.Icon,{icon:kr.A}),blockTitle:Er,variationName:Rr,scope:[]}),Ar("core/post-title",{blockDescription:Tr.description,blockIcon:(0,ge.jsx)(g.Icon,{icon:Pr.A}),blockTitle:Tr.title,variationName:Ir,scope:["block","inserter"]}),$e.forEach(e=>(0,R.__experimentalRegisterProductCollection)(e)),(0,Q.addFilter)("blocks.registerBlockType","woocommerce/add-product-collection-block-to-parent-array-of-pagination-block",(e,t)=>t!==q?e:e?.ancestor?{...e,ancestor:[...e.ancestor,c.name]}:e?.parent?{...e,parent:[...e.parent,c.name]}:e)},2663:()=>{},2411:()=>{},6982:()=>{},5653:()=>{},9910:()=>{},1939:()=>{},5022:()=>{},1609:e=>{"use strict";e.exports=window.React},790:e=>{"use strict";e.exports=window.ReactJSXRuntime},9491:e=>{"use strict";e.exports=window.wp.compose},6087:e=>{"use strict";e.exports=window.wp.element},7723:e=>{"use strict";e.exports=window.wp.i18n},923:e=>{"use strict";e.exports=window.wp.isShallowEqual},5573:e=>{"use strict";e.exports=window.wp.primitives}},c={};function n(e){var t=c[e];if(void 0!==t)return t.exports;var o=c[e]={exports:{}};return r[e](o,o.exports,n),o.exports}n.m=r,e=[],n.O=(t,o,r,c)=>{if(!o){var s=1/0;for(d=0;d<e.length;d++){for(var[o,r,c]=e[d],a=!0,l=0;l<o.length;l++)(!1&c||s>=c)&&Object.keys(n.O).every(e=>n.O[e](o[l]))?o.splice(l--,1):(a=!1,c<s&&(s=c));if(a){e.splice(d--,1);var i=r();void 0!==i&&(t=i)}}return t}c=c||0;for(var d=e.length;d>0&&e[d-1][2]>c;d--)e[d]=e[d-1];e[d]=[o,r,c]},n.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t},o=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,n.t=function(e,r){if(1&r&&(e=this(e)),8&r)return e;if("object"==typeof e&&e){if(4&r&&e.__esModule)return e;if(16&r&&"function"==typeof e.then)return e}var c=Object.create(null);n.r(c);var s={};t=t||[null,o({}),o([]),o(o)];for(var a=2&r&&e;"object"==typeof a&&!~t.indexOf(a);a=o(a))Object.getOwnPropertyNames(a).forEach(t=>s[t]=()=>e[t]);return s.default=()=>e,n.d(c,s),c},n.d=(e,t)=>{for(var o in t)n.o(t,o)&&!n.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})},n.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.j=5201,(()=>{var e={5201:0};n.O.j=t=>0===e[t];var t=(t,o)=>{var r,c,[s,a,l]=o,i=0;if(s.some(t=>0!==e[t])){for(r in a)n.o(a,r)&&(n.m[r]=a[r]);if(l)var d=l(n)}for(t&&t(o);i<s.length;i++)c=s[i],n.o(e,c)&&e[c]&&e[c][0](),e[c]=0;return n.O(d)},o=globalThis.webpackChunkwebpackWcBlocksMainJsonp=globalThis.webpackChunkwebpackWcBlocksMainJsonp||[];o.forEach(t.bind(null,0)),o.push=t.bind(null,o.push.bind(o))})();var s=n.O(void 0,[94],()=>n(6469));s=n.O(s),((this.wc=this.wc||{}).blocks=this.wc.blocks||{})["product-collection"]=s})();