!function(e,t){for(var r in t)e[r]=t[r]}(this,function(e){function t(t){for(var s,a,c=t[0],o=t[1],l=t[2],d=0,p=[];d0&&Object(g.createElement)("h3",null,_("Selected products")),Object(g.createElement)("ul",null,t)))}}]),t}(w),N=r(14),Q=r.n(N),D=wp.i18n.__,R=wp.element.Component,A=wp.components.Dashicon,I=wp.apiFetch,L=function(e){function t(e){var r;return u()(this,t),(r=m()(this,f()(t).call(this,e))).state={selectedCategories:e.selected_display_setting,openAccordion:[],filterQuery:"",firstLoad:!0},r.checkboxChange=r.checkboxChange.bind(o()(o()(r))),r.accordionToggle=r.accordionToggle.bind(o()(o()(r))),r.filterResults=r.filterResults.bind(o()(o()(r))),r.setFirstLoad=r.setFirstLoad.bind(o()(o()(r))),r}return v()(t,e),p()(t,[{key:"checkboxChange",value:function(e,t){var r,s=this.state.selectedCategories;(s=s.filter(function(e){return!t.includes(e)}),e)&&(r=s).push.apply(r,Q()(t));this.setState({selectedCategories:s}),this.props.update_display_setting_callback(s)}},{key:"accordionToggle",value:function(e){var t=this.state.openAccordion;t.includes(e)?t=t.filter(function(t){return t!==e}):t.push(e),this.setState({openAccordion:t})}},{key:"filterResults",value:function(e){this.setState({filterQuery:e.target.value})}},{key:"setFirstLoad",value:function(e){this.setState({firstLoad:!!e})}},{key:"render",value:function(){return Object(g.createElement)("div",{className:"wc-products-list-card wc-products-list-card--taxonomy wc-products-list-card--taxonomy-category"},Object(g.createElement)(q,{filterResults:this.filterResults}),Object(g.createElement)(M,{filterQuery:this.state.filterQuery,selectedCategories:this.state.selectedCategories,checkboxChange:this.checkboxChange,accordionToggle:this.accordionToggle,openAccordion:this.state.openAccordion,firstLoad:this.state.firstLoad,setFirstLoad:this.setFirstLoad}))}}]),t}(R),q=function(e){var t=e.filterResults;return Object(g.createElement)("div",{className:"wc-products-list-card__input-wrapper"},Object(g.createElement)(A,{icon:"search"}),Object(g.createElement)("input",{className:"wc-products-list-card__search",type:"search",placeholder:D("Search for categories"),onChange:t}))},M=function(e){function t(e){var r;return u()(this,t),(r=m()(this,f()(t).call(this,e))).state={categories:[],loaded:!1,query:""},r.updatePreview=r.updatePreview.bind(o()(o()(r))),r.getQuery=r.getQuery.bind(o()(o()(r))),r}return v()(t,e),p()(t,[{key:"componentDidMount",value:function(){this.getQuery()!==this.state.query&&this.updatePreview()}},{key:"componentDidUpdate",value:function(){this.getQuery()!==this.state.query&&this.state.loaded&&this.updatePreview()}},{key:"getQuery",value:function(){return"/wc-pb/v3/products/categories"}},{key:"updatePreview",value:function(){var e=this,t=this.getQuery();e.setState({loaded:!1}),I({path:t}).then(function(r){e.setState({categories:r,loaded:!0,query:t})})}},{key:"render",value:function(){var e=this.props,t=e.filterQuery,r=e.selectedCategories,s=e.checkboxChange,i=e.accordionToggle,n=e.openAccordion,a=e.firstLoad,c=e.setFirstLoad;if(!this.state.loaded)return D("Loading");if(0===this.state.categories.length)return D("No categories found");var o=function e(t,r){var s=[];return r.filter(function(e){return e.parent===t.id}).forEach(function(t){s.push(t),s.push.apply(s,Q()(e(t,r)))}),s},l=function(e){var t=e.category,r=e.categories,s="arrow-down-alt2";n.includes(t.id)&&(s="arrow-up-alt2");var a=null;return function(e,t){return!!o(e,t).length}(t,r)||(a={visibility:"hidden"}),Object(g.createElement)("button",{onClick:function(){return i(t.id)},className:"wc-products-list-card__accordion-button",style:a,type:"button"},Object(g.createElement)(A,{icon:s}))},u=this.state.categories;return""!==t&&(u=u.filter(function(e){return e.slug.includes(t.toLowerCase())})),Object(g.createElement)("div",{className:"wc-products-list-card__results"},Object(g.createElement)(function e(t){var d=t.categories,p=t.parent,h=d.filter(function(e){return e.parent===p});return a&&r.length>0&&(u.filter(function(e){return 0===e.parent}).forEach(function(e){var t=o(e,u),s=!0,a=!1,c=void 0;try{for(var l,d=t[Symbol.iterator]();!(s=(l=d.next()).done);s=!0){var p=l.value;if(r.includes(p.id)&&!n.includes(e.id)){i(e.id);break}}}catch(e){a=!0,c=e}finally{try{s||null==d.return||d.return()}finally{if(a)throw c}}}),c(!1)),h.length>0&&Object(g.createElement)("ul",null,h.map(function(t){return Object(g.createElement)("li",{key:t.id,className:n.includes(t.id)?"wc-products-list-card__item wc-products-list-card__accordion-open":"wc-products-list-card__item"},Object(g.createElement)("label",{className:0===t.parent?"wc-products-list-card__content":"",htmlFor:"product-category-"+t.id},Object(g.createElement)("input",{type:"checkbox",id:"product-category-"+t.id,value:t.id,checked:r.includes(t.id),onChange:function(e){return function(e,t,r){var i=o(t,r).map(function(e){return e.id});i.push(t.id),s(e.target.checked,i)}(e,t,d)},ref:function(e){return e&&(e.indeterminate=function(e,t){if(r.includes(e.id))return!1;var s=o(e,t).map(function(e){return e.id}),i=!0,n=!1,a=void 0;try{for(var c,l=s[Symbol.iterator]();!(i=(c=l.next()).done);i=!0){var u=c.value;if(r.includes(u))return!0}}catch(e){n=!0,a=e}finally{try{i||null==l.return||l.return()}finally{if(n)throw a}}return!1}(t,d))}})," ",t.name,0===t.parent&&Object(g.createElement)(l,{category:t,categories:d}),Object(g.createElement)("span",{className:"wc-products-list-card__taxonomy-count"},t.count)),Object(g.createElement)(e,{categories:d,parent:t.id}))}))},{categories:u,parent:0}))}}]),t}(R),F=wp.i18n.__,W=wp.element.Component,U=wp.components.Dashicon,B=wp.apiFetch;function H(e,t){return e+","+t}function J(e){return e.split(",")[0]}var z=function(e){function t(e){var r;return u()(this,t),(r=m()(this,f()(t).call(this,e))).state={selectedAttribute:e.selected_display_setting.length?e.selected_display_setting[0]:"",selectedTerms:e.selected_display_setting.length>1?e.selected_display_setting.slice(1):[],filterQuery:""},r.setSelectedAttribute=r.setSelectedAttribute.bind(o()(o()(r))),r.addTerm=r.addTerm.bind(o()(o()(r))),r.removeTerm=r.removeTerm.bind(o()(o()(r))),r}return v()(t,e),p()(t,[{key:"setSelectedAttribute",value:function(e){this.setState({selectedAttribute:e,selectedTerms:[]}),this.props.update_display_setting_callback([e])}},{key:"addTerm",value:function(e){var t=this.state.selectedTerms;t.push(e),this.setState({selectedTerms:t});var r=[this.state.selectedAttribute];r=r.concat(t),this.props.update_display_setting_callback(r)}},{key:"removeTerm",value:function(e){var t=[],r=!0,s=!1,i=void 0;try{for(var n,a=this.state.selectedTerms[Symbol.iterator]();!(r=(n=a.next()).done);r=!0){var c=n.value;c!==e&&t.push(c)}}catch(e){s=!0,i=e}finally{try{r||null==a.return||a.return()}finally{if(s)throw i}}this.setState({selectedTerms:t});var o=[this.state.selectedAttribute];o=o.concat(t),this.props.update_display_setting_callback(o)}},{key:"updateFilter",value:function(e){this.setState({filterQuery:e.target.value})}},{key:"render",value:function(){return Object(g.createElement)("div",{className:"wc-products-list-card wc-products-list-card--taxonomy wc-products-list-card--taxonomy-atributes"},Object(g.createElement)(G,{updateFilter:this.updateFilter.bind(this)}),Object(g.createElement)(K,{selectedAttribute:this.state.selectedAttribute,selectedTerms:this.state.selectedTerms,filterQuery:this.state.filterQuery,setSelectedAttribute:this.setSelectedAttribute.bind(this),addTerm:this.addTerm.bind(this),removeTerm:this.removeTerm.bind(this)}))}}]),t}(W),G=function(e){return Object(g.createElement)("div",{className:"wc-products-list-card__input-wrapper"},Object(g.createElement)(U,{icon:"search"}),Object(g.createElement)("input",{className:"wc-products-list-card__search",type:"search",placeholder:F("Search for attributes"),onChange:e.updateFilter}))},K=function(e){function t(e){var r;return u()(this,t),(r=m()(this,f()(t).call(this,e))).state={attributes:[],loaded:!1,query:""},r.updatePreview=r.updatePreview.bind(o()(o()(r))),r.getQuery=r.getQuery.bind(o()(o()(r))),r}return v()(t,e),p()(t,[{key:"componentDidMount",value:function(){this.getQuery()!==this.state.query&&this.updatePreview()}},{key:"componentDidUpdate",value:function(){this.getQuery()!==this.state.query&&this.state.loaded&&this.updatePreview()}},{key:"getQuery",value:function(){return"/wc-pb/v3/products/attributes"}},{key:"updatePreview",value:function(){var e=this,t=this.getQuery();e.setState({loaded:!1}),B({path:t}).then(function(r){e.setState({attributes:r,loaded:!0,query:t})})}},{key:"render",value:function(){var e=this.props,t=e.selectedAttribute,r=e.filterQuery,s=e.selectedTerms,i=e.setSelectedAttribute,n=e.addTerm,a=e.removeTerm;if(!this.state.loaded)return Object(g.createElement)("ul",null,Object(g.createElement)("li",null,F("Loading")));if(0===this.state.attributes.length)return Object(g.createElement)("ul",null,Object(g.createElement)("li",null,F("No attributes found")));var c=r.toLowerCase(),o=[],l=!0,u=!1,d=void 0;try{for(var p,h=this.state.attributes[Symbol.iterator]();!(l=(p=h.next()).done);l=!0){var m=p.value;c.length&&-1===m.name.toLowerCase().indexOf(c)||o.push(Object(g.createElement)(V,{attribute:m,selectedAttribute:t,selectedTerms:s,setSelectedAttribute:i,addTerm:n,removeTerm:a}))}}catch(e){u=!0,d=e}finally{try{l||null==h.return||h.return()}finally{if(u)throw d}}return Object(g.createElement)("div",{className:"wc-products-list-card__results"},o)}}]),t}(W),V=function(e){function t(e){var r;return u()(this,t),(r=m()(this,f()(t).call(this,e))).handleAttributeChange=r.handleAttributeChange.bind(o()(o()(r))),r.handleTermChange=r.handleTermChange.bind(o()(o()(r))),r}return v()(t,e),p()(t,[{key:"handleAttributeChange",value:function(e){e.target.checked&&this.props.setSelectedAttribute(e.target.value)}},{key:"handleTermChange",value:function(e){e.target.checked?this.props.addTerm(e.target.value):this.props.removeTerm(e.target.value)}},{key:"render",value:function(){var e=this.props.selectedAttribute===H(this.props.attribute.slug,this.props.attribute.id),t=null;e&&(t=Object(g.createElement)(X,{attribute:this.props.attribute,selectedTerms:this.props.selectedTerms,addTerm:this.props.addTerm,removeTerm:this.props.removeTerm}));var r=["wc-products-list-card--taxonomy-atributes__atribute"];e&&r.push("wc-products-list-card__accordion-open");var s=H(this.props.attribute.slug,this.props.attribute.id);return Object(g.createElement)("div",{className:r.join(" ")},Object(g.createElement)("div",null,Object(g.createElement)("label",{className:"wc-products-list-card__content",htmlFor:"attribute-".concat(s)},Object(g.createElement)("input",{type:"radio",id:"attribute-".concat(s),value:s,onChange:this.handleAttributeChange,checked:e}),this.props.attribute.name)),t)}}]),t}(W),X=function(e){function t(e){var r;return u()(this,t),(r=m()(this,f()(t).call(this,e))).state={terms:[],loaded:!1,query:""},r.updatePreview=r.updatePreview.bind(o()(o()(r))),r.getQuery=r.getQuery.bind(o()(o()(r))),r}return v()(t,e),p()(t,[{key:"componentDidMount",value:function(){this.getQuery()!==this.state.query&&this.updatePreview()}},{key:"componentDidUpdate",value:function(){this.getQuery()!==this.state.query&&this.state.loaded&&this.updatePreview()}},{key:"getQuery",value:function(){return"/wc-pb/v3/products/attributes/"+this.props.attribute.id+"/terms"}},{key:"updatePreview",value:function(){var e=this,t=this.getQuery();e.setState({loaded:!1}),B({path:t}).then(function(r){e.setState({terms:r,loaded:!0,query:t})})}},{key:"render",value:function(){var e=this.props,t=e.selectedTerms,r=e.addTerm,s=e.removeTerm;if(!this.state.loaded)return Object(g.createElement)("ul",null,Object(g.createElement)("li",null,F("Loading")));if(0===this.state.terms.length)return Object(g.createElement)("ul",null,Object(g.createElement)("li",null,F("No terms found")));function i(e){e.target.checked?r(e.target.value):s(e.target.value)}return Object(g.createElement)("ul",null,this.state.terms.map(function(e,r){return Object(g.createElement)("li",{className:"wc-products-list-card__item",key:r},Object(g.createElement)("label",{className:"wc-products-list-card__content",htmlFor:"term-".concat(e.id)},Object(g.createElement)("input",{type:"checkbox",id:"term-".concat(e.id),value:e.id,onChange:i,checked:t.includes(String(e.id))}),e.name,Object(g.createElement)("span",{className:"wc-products-list-card__taxonomy-count"},e.count)))}))}}]),t}(W);r.d(t,"ProductPreview",function(){return ve});var Y=wp.i18n.__,Z=wp.element,$=Z.Component,ee=Z.RawHTML,te=wp.blocks.registerBlockType,re=wp.editor,se=re.InspectorControls,ie=re.BlockControls,ne=wp.components,ae=ne.Toolbar,ce=ne.Button,oe=ne.Dashicon,le=ne.RangeControl,ue=ne.Tooltip,de=ne.SelectControl,pe=wp.apiFetch,he={specific:{title:Y("Individual products"),description:Y("Hand-pick which products to display"),value:"specific"},category:{title:Y("Product category"),description:Y("Display products from a specific category or multiple categories"),value:"category"},filter:{title:Y("Filter products"),description:Y("E.g. featured products, or products with a specific attribute like size or color"),value:"filter",group_container:"filter"},featured:{title:Y("Featured products"),description:"",value:"featured"},on_sale:{title:Y("On sale"),description:"",value:"on_sale"},best_selling:{title:Y("Best sellers"),description:"",value:"best_selling",no_orderby:!0},top_rated:{title:Y("Top rated"),description:"",value:"top_rated",no_orderby:!0},attribute:{title:Y("Attribute"),description:"",value:"attribute"},all:{title:Y("All products"),description:Y("Display all products ordered chronologically, alphabetically, by price, by rating or by sales"),value:"all"}};function me(e){return!(he.hasOwnProperty(e)&&he[e].hasOwnProperty("no_orderby")&&he[e].no_orderby)}var be=function(e){function t(){return u()(this,t),m()(this,f()(t).apply(this,arguments))}return v()(t,e),p()(t,[{key:"render",value:function(){var e=this,t="arrow-right-alt2";"filter"===this.props.value&&this.props.extended&&(t="arrow-down-alt2");var r="wc-products-display-options__option wc-products-display-options__option--"+this.props.value;return this.props.current===this.props.value&&(t="yes",r+=" wc-products-display-options__option--current"),Object(g.createElement)("div",{className:r,onClick:function(){e.props.current!==e.props.value&&e.props.update_display_callback(e.props.value)}},Object(g.createElement)("div",{className:"wc-products-display-options__option-content"},Object(g.createElement)("span",{className:"wc-products-display-options__option-title"},this.props.title),Object(g.createElement)("p",{className:"wc-products-display-options__option-description"},this.props.description)),Object(g.createElement)("div",{className:"wc-products-display-options__icon"},Object(g.createElement)(oe,{icon:t})))}}]),t}($),fe=function(e){function t(e){var r;return u()(this,t),(r=m()(this,f()(t).call(this,e))).setWrapperRef=r.setWrapperRef.bind(o()(o()(r))),r.handleClickOutside=r.handleClickOutside.bind(o()(o()(r))),r}return v()(t,e),p()(t,[{key:"componentDidMount",value:function(){this.props.existing&&document.addEventListener("mousedown",this.handleClickOutside)}},{key:"componentWillUnmount",value:function(){this.props.existing&&document.removeEventListener("mousedown",this.handleClickOutside)}},{key:"setWrapperRef",value:function(e){this.wrapperRef=e}},{key:"handleClickOutside",value:function(e){this.wrapperRef&&!this.wrapperRef.contains(e.target)&&"wc-products-settings-heading__change-button button-link"!==e.target.getAttribute("class")&&this.props.closeMenu()}},{key:"render",value:function(){var e="wc-products-display-options";this.props.extended&&(e+=" wc-products-display-options--extended"),this.props.existing&&(e+=" wc-products-display-options--popover");var t=[];for(var r in he)t.push(Object(g.createElement)(be,a()({},he[r],{update_display_callback:this.props.update_display_callback,extended:this.props.extended,current:this.props.current,key:r})));var s=Object(g.createElement)("span",{className:"wc-products-display-options--popover__arrow"}),i=Object(g.createElement)("p",{className:"wc-products-block-description"},Y("Choose which products you'd like to display:"));return Object(g.createElement)("div",{className:e,ref:this.setWrapperRef},this.props.existing&&s,!this.props.existing&&i,t)}}]),t}($),ye=function(e){function t(e){var r;return u()(this,t),(r=m()(this,f()(t).call(this,e))).state={display:e.selected_display,menu_visible:!e.selected_display,expanded_group:""},r.updateDisplay=r.updateDisplay.bind(o()(o()(r))),r.closeMenu=r.closeMenu.bind(o()(o()(r))),r}return v()(t,e),p()(t,[{key:"updateDisplay",value:function(e){var t={display:e,menu_visible:!1,expanded_group:""},r="undefined"!==he[e].group_container&&he[e].group_container;r&&(t={menu_visible:!0,expanded_group:e},this.state.expanded_group===he[e].group_container&&(t.expanded_group="")),this.setState(t),r||this.props.update_display_callback(e)}},{key:"closeMenu",value:function(){this.setState({menu_visible:!1})}},{key:"render",value:function(){var e=this,t=null;"specific"===this.state.display?t=Object(g.createElement)(E,this.props):"category"===this.state.display?t=Object(g.createElement)(L,this.props):"attribute"===this.state.display&&(t=Object(g.createElement)(z,this.props));var r=this.state.menu_visible?Object(g.createElement)(fe,{extended:!!this.state.expanded_group,existing:!!this.state.display,current:this.state.display,closeMenu:this.closeMenu,update_display_callback:this.updateDisplay}):null,s=null;if(this.state.display){var i=["featured","on_sale","attribute","best_selling","top_rated"].includes(this.state.display)?this.state.display:"",n=Object(g.createElement)("button",{type:"button",className:"wc-products-settings-heading__change-button button-link",onClick:function(){e.setState({menu_visible:!e.state.menu_visible,expanded_group:i})}},Y("Display different products"));s=Object(g.createElement)("div",{className:"wc-products-settings-heading"},Object(g.createElement)("div",{className:"wc-products-settings-heading__current"},Y("Displaying "),Object(g.createElement)("strong",null,Y(he[this.state.display].title))),Object(g.createElement)("div",{className:"wc-products-settings-heading__change"},n))}var a=Object(g.createElement)("button",{type:"button",className:"button wc-products-settings__footer-button",onClick:this.props.done_callback},Y("Done"));if(["","specific","category","attribute"].includes(this.state.display)&&!this.props.selected_display_setting.length){var c={"":Y("Please select which products you'd like to display"),specific:Y("Please search for and select products to display"),category:Y("Please select at least one category to display"),attribute:Y("Please select an attribute")};a=Object(g.createElement)(ue,{text:c[this.state.display]},Object(g.createElement)("button",{type:"button",className:"button wc-products-settings__footer-button disabled"},Y("Done")))}return Object(g.createElement)("div",{className:"wc-products-settings "+(this.state.expanded_group?"expanded-group-"+this.state.expanded_group:"")},Object(g.createElement)("h4",{className:"wc-products-settings__title"},Object(g.createElement)(oe,{icon:"screenoptions"})," ",Y("Products")),s,r,t,Object(g.createElement)("div",{className:"wc-products-settings__footer"},a))}}]),t}($),ve=function(e){function t(){return u()(this,t),m()(this,f()(t).apply(this,arguments))}return v()(t,e),p()(t,[{key:"render",value:function(){var e=this.props.product,t=null;return e.images.length&&(t=Object(g.createElement)("img",{src:e.images[0].src,alt:""})),Object(g.createElement)("div",{className:"product-preview",key:e.id+"-preview"},t,Object(g.createElement)("div",{className:"product-title"},e.name),Object(g.createElement)("div",{className:"product-price",dangerouslySetInnerHTML:{__html:e.price_html}}),Object(g.createElement)("span",{className:"product-add-to-cart"},Y("Add to cart")))}}]),t}($),ge=function(e){function t(e){var r;return u()(this,t),(r=m()(this,f()(t).call(this,e))).state={products:[],loaded:!1,query:""},r.updatePreview=r.updatePreview.bind(o()(o()(r))),r.getQuery=r.getQuery.bind(o()(o()(r))),r}return v()(t,e),p()(t,[{key:"componentDidMount",value:function(){this.updatePreview()}},{key:"componentDidUpdate",value:function(){this.getQuery()!==this.state.query&&this.state.loaded&&this.updatePreview()}},{key:"getQuery",value:function(){var e=this.props.attributes,t=e.columns,r=e.rows,s=e.display,i=e.display_setting,n=e.orderby,a={status:"publish",per_page:r*t};"specific"===s?(a.include=i.join(","),a.per_page=i.length):"category"===s?a.category=i.join(","):"attribute"===s&&i.length?(a.attribute=J(i[0]),i.length>1&&(a.attribute_term=i.slice(1).join(","))):"featured"===s?a.featured=1:"on_sale"===s&&(a.on_sale=1),me(s)&&("price_desc"===n?(a.orderby="price",a.order="desc"):"price_asc"===n?(a.orderby="price",a.order="asc"):"title"===n?(a.orderby="title",a.order="asc"):a.orderby=n);for(var c="?",o=Object.keys(a),l=0;l1?a.slice(1).join(","):"";o.set("attribute",l),u.length&&o.set("terms",u)}me(n)&&("price_desc"===c?(o.set("orderby","price"),o.set("order","DESC")):"price_asc"===c?(o.set("orderby","price"),o.set("order","ASC")):"date"===c?(o.set("orderby","date"),o.set("order","DESC")):o.set("orderby",c));var d="[products",p=!0,h=!1,m=void 0;try{for(var b,f=o[Symbol.iterator]();!(p=(b=f.next()).done);p=!0){var y=i()(b.value,2);d+=" "+y[0]+'="'+y[1]+'"'}}catch(e){h=!0,m=e}finally{try{p||null==f.return||f.return()}finally{if(h)throw m}}return d+="]",Object(g.createElement)(ee,null,d)}})}}));