OwlCyberSecurity - MANAGER
Edit File: reviews-by-product.js
this.wc=this.wc||{},this.wc.blocks=this.wc.blocks||{},this.wc.blocks["reviews-by-product"]=function(e){function t(t){for(var o,s,a=t[0],i=t[1],l=t[2],u=0,b=[];u<a.length;u++)s=a[u],Object.prototype.hasOwnProperty.call(n,s)&&n[s]&&b.push(n[s][0]),n[s]=0;for(o in i)Object.prototype.hasOwnProperty.call(i,o)&&(e[o]=i[o]);for(d&&d(t);b.length;)b.shift()();return c.push.apply(c,l||[]),r()}function r(){for(var e,t=0;t<c.length;t++){for(var r=c[t],o=!0,a=1;a<r.length;a++){var i=r[a];0!==n[i]&&(o=!1)}o&&(c.splice(t--,1),e=s(s.s=r[0]))}return e}var o={},n={38:0},c=[];function s(t){if(o[t])return o[t].exports;var r=o[t]={i:t,l:!1,exports:{}};return e[t].call(r.exports,r,r.exports,s),r.l=!0,r.exports}s.m=e,s.c=o,s.d=function(e,t,r){s.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},s.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},s.t=function(e,t){if(1&t&&(e=s(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(s.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)s.d(r,o,function(t){return e[t]}.bind(null,o));return r},s.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return s.d(t,"a",t),t},s.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},s.p="";var a=window.webpackWcBlocksJsonp=window.webpackWcBlocksJsonp||[],i=a.push.bind(a);a.push=t,a=a.slice();for(var l=0;l<a.length;l++)t(a[l]);var d=i;return c.push([764,0]),r()}({0:function(e,t){e.exports=window.wp.element},1:function(e,t){e.exports=window.wp.i18n},10:function(e,t){e.exports=window.wp.data},100:function(e,t,r){"use strict";var o=r(0),n=r(1),c=r(55),s=r(136),a=r(5),i=r.n(a),l=r(4),d=r(41);r(137),t.a=e=>{let{className:t,error:r,isLoading:a=!1,onRetry:u}=e;return Object(o.createElement)(l.Placeholder,{icon:Object(o.createElement)(c.a,{srcElement:s.a}),label:Object(n.__)("Sorry, an error occurred",'woocommerce'),className:i()("wc-block-api-error",t)},Object(o.createElement)(d.a,{error:r}),u&&Object(o.createElement)(o.Fragment,null,a?Object(o.createElement)(l.Spinner,null):Object(o.createElement)(l.Button,{isSecondary:!0,onClick:u},Object(n.__)("Retry",'woocommerce'))))}},11:function(e,t){e.exports=window.wp.apiFetch},115:function(e,t){},116:function(e,t){e.exports=window.wp.coreData},117:function(e,t){},12:function(e,t){e.exports=window.wp.compose},120:function(e,t,r){"use strict";var o=r(7),n=r.n(o),c=r(0),s=r(40),a=r(4),i=r(5),l=r.n(i);t.a=e=>{let{className:t,item:r,isSelected:o,isLoading:i,onSelect:d,disabled:u,...b}=e;return Object(c.createElement)(c.Fragment,null,Object(c.createElement)(s.c,n()({},b,{key:r.id,className:t,isSelected:o,item:r,onSelect:d,isSingle:!0,disabled:u})),o&&i&&Object(c.createElement)("div",{key:"loading",className:l()("woocommerce-search-list__item","woocommerce-product-attributes__item","depth-1","is-loading","is-not-active")},Object(c.createElement)(a.Spinner,null)))}},127:function(e,t,r){"use strict";r.d(t,"a",(function(){return l})),r.d(t,"b",(function(){return d})),r.d(t,"c",(function(){return u}));var o=r(0),n=r(1),c=r(4),s=r(9),a=r(3),i=r(80);const l=(e,t,r)=>Object(o.createElement)(s.BlockControls,null,Object(o.createElement)(c.ToolbarGroup,{controls:[{icon:"edit",title:r,onClick:()=>t({editMode:!e}),isActive:e}]})),d=(e,t)=>{const r=Object(a.getSetting)("showAvatars",!0),s=Object(a.getSetting)("reviewRatingsEnabled",!0);return Object(o.createElement)(o.Fragment,null,Object(o.createElement)(c.ToggleControl,{label:Object(n.__)("Product rating",'woocommerce'),checked:e.showReviewRating,onChange:()=>t({showReviewRating:!e.showReviewRating})}),e.showReviewRating&&!s&&Object(o.createElement)(c.Notice,{className:"wc-block-base-control-notice",isDismissible:!1},Object(o.createInterpolateElement)(Object(n.__)("Product rating is disabled in your <a>store settings</a>.",'woocommerce'),{a:Object(o.createElement)("a",{href:Object(a.getAdminLink)("admin.php?page=wc-settings&tab=products"),target:"_blank",rel:"noopener noreferrer"})})),Object(o.createElement)(c.ToggleControl,{label:Object(n.__)("Reviewer name",'woocommerce'),checked:e.showReviewerName,onChange:()=>t({showReviewerName:!e.showReviewerName})}),Object(o.createElement)(c.ToggleControl,{label:Object(n.__)("Image",'woocommerce'),checked:e.showReviewImage,onChange:()=>t({showReviewImage:!e.showReviewImage})}),Object(o.createElement)(c.ToggleControl,{label:Object(n.__)("Review date",'woocommerce'),checked:e.showReviewDate,onChange:()=>t({showReviewDate:!e.showReviewDate})}),Object(o.createElement)(c.ToggleControl,{label:Object(n.__)("Review content",'woocommerce'),checked:e.showReviewContent,onChange:()=>t({showReviewContent:!e.showReviewContent})}),e.showReviewImage&&Object(o.createElement)(o.Fragment,null,Object(o.createElement)(i.a,{label:Object(n.__)("Review image",'woocommerce'),value:e.imageType,options:[{label:Object(n.__)("Reviewer photo",'woocommerce'),value:"reviewer"},{label:Object(n.__)("Product",'woocommerce'),value:"product"}],onChange:e=>t({imageType:e})}),"reviewer"===e.imageType&&!r&&Object(o.createElement)(c.Notice,{className:"wc-block-base-control-notice",isDismissible:!1},Object(o.createInterpolateElement)(Object(n.__)("Reviewer photo is disabled in your <a>site settings</a>.",'woocommerce'),{a:Object(o.createElement)("a",{href:Object(a.getAdminLink)("options-discussion.php"),target:"_blank",rel:"noopener noreferrer"})}))))},u=(e,t)=>Object(o.createElement)(o.Fragment,null,Object(o.createElement)(c.ToggleControl,{label:Object(n.__)("Order by",'woocommerce'),checked:e.showOrderby,onChange:()=>t({showOrderby:!e.showOrderby})}),Object(o.createElement)(c.SelectControl,{label:Object(n.__)("Order Product Reviews by",'woocommerce'),value:e.orderby,options:[{label:"Most recent",value:"most-recent"},{label:"Highest Rating",value:"highest-rating"},{label:"Lowest Rating",value:"lowest-rating"}],onChange:e=>t({orderby:e})}),Object(o.createElement)(c.RangeControl,{label:Object(n.__)("Starting Number of Reviews",'woocommerce'),value:e.reviewsOnPageLoad,onChange:e=>t({reviewsOnPageLoad:e}),max:20,min:1}),Object(o.createElement)(c.ToggleControl,{label:Object(n.__)("Load more",'woocommerce'),checked:e.showLoadMore,onChange:()=>t({showLoadMore:!e.showLoadMore})}),e.showLoadMore&&Object(o.createElement)(c.RangeControl,{label:Object(n.__)("Load More Reviews",'woocommerce'),value:e.reviewsOnLoadMore,onChange:e=>t({reviewsOnLoadMore:e}),max:20,min:1}))},13:function(e,t){e.exports=window.wp.url},135:function(e,t,r){"use strict";var o=r(7),n=r.n(o),c=r(0),s=r(1),a=r(6),i=(r(2),r(40)),l=r(12),d=Object(l.createHigherOrderComponent)(e=>{class t extends c.Component{render(){const{selected:t}=this.props,r=null==t;return Object(c.createElement)(e,n()({},this.props,{selected:r?[]:[t]}))}}return t.defaultProps={selected:null},t},"withTransformSingleSelectToMultipleSelect"),u=r(273),b=r(16),p=r.n(b),w=r(31),m=r.n(w),g=r(34),h=r(35),v=Object(l.createHigherOrderComponent)(e=>{class t extends c.Component{constructor(){super(...arguments),p()(this,"state",{error:null,loading:!1,variations:{}}),p()(this,"loadVariations",()=>{const{products:e}=this.props,{loading:t,variations:r}=this.state;if(t)return;const o=this.getExpandedProduct();if(!o||r[o])return;const n=e.find(e=>e.id===o);n.variations&&0!==n.variations.length?(this.setState({loading:!0}),Object(g.g)(o).then(e=>{const t=e.map(e=>({...e,parent:o}));this.setState({variations:{...this.state.variations,[o]:t},loading:!1,error:null})}).catch(async e=>{const t=await Object(h.a)(e);this.setState({variations:{...this.state.variations,[o]:null},loading:!1,error:t})})):this.setState({variations:{...this.state.variations,[o]:null},loading:!1,error:null})})}componentDidMount(){const{selected:e,showVariations:t}=this.props;e&&t&&this.loadVariations()}componentDidUpdate(e){const{isLoading:t,selected:r,showVariations:o}=this.props;o&&(!m()(e.selected,r)||e.isLoading&&!t)&&this.loadVariations()}isProductId(e){const{products:t}=this.props;return t.some(t=>t.id===e)}findParentProduct(e){const{products:t}=this.props;return t.filter(t=>t.variations&&t.variations.find(t=>{let{id:r}=t;return r===e}))[0].id}getExpandedProduct(){const{isLoading:e,selected:t,showVariations:r}=this.props;if(!r)return null;let o=t&&t.length?t[0]:null;return o?this.prevSelectedItem=o:this.prevSelectedItem&&(e||this.isProductId(this.prevSelectedItem)||(o=this.prevSelectedItem)),!e&&o?this.isProductId(o)?o:this.findParentProduct(o):null}render(){const{error:t,isLoading:r}=this.props,{error:o,loading:s,variations:a}=this.state;return Object(c.createElement)(e,n()({},this.props,{error:o||t,expandedProduct:this.getExpandedProduct(),isLoading:r,variations:a,variationsLoading:s}))}}return p()(t,"defaultProps",{selected:[],showVariations:!1}),t},"withProductVariations"),O=r(41),j=r(5),_=r.n(j),f=r(120);r(191);const y={list:Object(s.__)("Products",'woocommerce'),noItems:Object(s.__)("Your store doesn't have any products.",'woocommerce'),search:Object(s.__)("Search for a product to display",'woocommerce'),updated:Object(s.__)("Product search results updated.",'woocommerce')},k=e=>{let{expandedProduct:t,error:r,instanceId:o,isCompact:l,isLoading:d,onChange:u,onSearch:b,products:p,renderItem:w,selected:m,showVariations:g,variations:h,variationsLoading:v}=e;if(r)return Object(c.createElement)(O.a,{error:r});const j=[...p,...h&&h[t]?h[t]:[]];return Object(c.createElement)(i.b,{className:"woocommerce-products",list:j,isCompact:l,isLoading:d,isSingle:!0,selected:j.filter(e=>{let{id:t}=e;return m.includes(t)}),onChange:u,renderItem:w||(g?e=>{const{item:t,search:r,depth:l=0,isSelected:u,onSelect:b}=e,p=t.variations&&Array.isArray(t.variations)?t.variations.length:0,w=_()("woocommerce-search-product__item","woocommerce-search-list__item","depth-"+l,"has-count",{"is-searching":r.length>0,"is-skip-level":0===l&&0!==t.parent,"is-variable":p>0});if(!t.breadcrumbs.length)return Object(c.createElement)(f.a,n()({},e,{className:_()(w,{"is-selected":u}),isSelected:u,item:t,onSelect:()=>()=>{b(t)()},isLoading:d||v,countLabel:t.variations.length>0?Object(s.sprintf)( /* translators: %1$d is the number of variations of a product product. */ Object(s.__)("%1$d variations",'woocommerce'),t.variations.length):null,name:"products-"+o,"aria-label":Object(s.sprintf)( /* translators: %1$s is the product name, %2$d is the number of variations of that product. */ Object(s._n)("%1$s, has %2$d variation","%1$s, has %2$d variations",t.variations.length,'woocommerce'),t.name,t.variations.length)}));const m=Object(a.isEmpty)(t.variation)?e:{...e,item:{...e.item,name:t.variation},"aria-label":`${t.breadcrumbs[0]}: ${t.variation}`};return Object(c.createElement)(i.c,n()({},m,{className:w,name:"variations-"+o}))}:null),onSearch:b,messages:y,isHierarchical:!0})};k.defaultProps={isCompact:!1,expandedProduct:null,selected:[],showVariations:!1},t.a=d(Object(u.a)(v(Object(l.withInstanceId)(k))))},136:function(e,t,r){"use strict";var o=r(0),n=r(18);const c=Object(o.createElement)(n.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},Object(o.createElement)("path",{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-2h2v2zm0-4h-2V7h2v6z"}));t.a=c},137:function(e,t){},138:function(e,t,r){"use strict";var o=r(0),n=(r(2),r(5)),c=r.n(n),s=r(37),a=r(12);r(193),t.a=Object(a.withInstanceId)(e=>{let{className:t,instanceId:r,label:n,onChange:a,options:i,screenReaderLabel:l,readOnly:d,value:u}=e;const b="wc-block-components-sort-select__select-"+r;return Object(o.createElement)("div",{className:c()("wc-block-sort-select","wc-block-components-sort-select",t)},Object(o.createElement)(s.a,{label:n,screenReaderLabel:l,wrapperElement:"label",wrapperProps:{className:"wc-block-sort-select__label wc-block-components-sort-select__label",htmlFor:b}}),Object(o.createElement)("select",{id:b,className:"wc-block-sort-select__select wc-block-components-sort-select__select",onChange:a,readOnly:d,value:u},i.map(e=>Object(o.createElement)("option",{key:e.key,value:e.key},e.label))))})},14:function(e,t){e.exports=window.wp.blocks},145:function(e,t,r){"use strict";r.d(t,"a",(function(){return c}));var o=r(1),n=r(32);const c={attributes:{editMode:!1,imageType:"reviewer",orderby:"most-recent",reviewsOnLoadMore:10,reviewsOnPageLoad:10,showLoadMore:!0,showOrderby:!0,showReviewDate:!0,showReviewerName:!0,showReviewImage:!0,showReviewRating:!0,showReviewContent:!0,previewReviews:[{id:1,date_created:"2019-07-15T17:05:04",formatted_date_created:Object(o.__)("July 15, 2019",'woocommerce'),date_created_gmt:"2019-07-15T15:05:04",product_id:0,product_name:Object(o.__)("WordPress Pennant",'woocommerce'),product_permalink:"#", /* translators: An example person name used for the block previews. */ reviewer:Object(o.__)("Alice",'woocommerce'),review:`<p>${Object(o.__)("I bought this product last week and I'm very happy with it.",'woocommerce')}</p>\n`,reviewer_avatar_urls:{48:n.o.defaultAvatar,96:n.o.defaultAvatar},rating:5,verified:!0},{id:2,date_created:"2019-07-12T12:39:39",formatted_date_created:Object(o.__)("July 12, 2019",'woocommerce'),date_created_gmt:"2019-07-12T10:39:39",product_id:0,product_name:Object(o.__)("WordPress Pennant",'woocommerce'),product_permalink:"#", /* translators: An example person name used for the block previews. */ reviewer:Object(o.__)("Bob",'woocommerce'),review:`<p>${Object(o.__)("This product is awesome, I love it!",'woocommerce')}</p>\n`,reviewer_avatar_urls:{48:n.o.defaultAvatar,96:n.o.defaultAvatar},rating:null,verified:!1}]}}},176:function(e,t,r){"use strict";t.a={editMode:{type:"boolean",default:!0},imageType:{type:"string",default:"reviewer"},orderby:{type:"string",default:"most-recent"},reviewsOnLoadMore:{type:"number",default:10},reviewsOnPageLoad:{type:"number",default:10},showLoadMore:{type:"boolean",default:!0},showOrderby:{type:"boolean",default:!0},showReviewDate:{type:"boolean",default:!0},showReviewerName:{type:"boolean",default:!0},showReviewImage:{type:"boolean",default:!0},showReviewRating:{type:"boolean",default:!0},showReviewContent:{type:"boolean",default:!0},previewReviews:{type:"array",default:null}}},177:function(e,t,r){"use strict";var o=r(7),n=r.n(o),c=r(0),s=r(9),a=(r(192),r(77));t.a=e=>{let{attributes:t}=e;return Object(c.createElement)("div",n()({},s.useBlockProps.save({className:Object(a.a)(t)}),Object(a.b)(t)))}},18:function(e,t){e.exports=window.wp.primitives},180:function(e,t,r){"use strict";var o=r(0),n=r(1),c=(r(2),r(6)),s=r(4),a=r(9),i=r(8),l=r(3),d=r(100),u=r(37);r(240);const b=e=>{let{onClick:t,label:r,screenReaderLabel:n}=e;return Object(o.createElement)("div",{className:"wp-block-button wc-block-load-more wc-block-components-load-more"},Object(o.createElement)("button",{className:"wp-block-button__link",onClick:t},Object(o.createElement)(u.a,{label:r,screenReaderLabel:n})))};b.defaultProps={label:Object(n.__)("Load more",'woocommerce')};var p=b,w=r(138);r(237);var m=e=>{let{onChange:t,readOnly:r,value:c}=e;return Object(o.createElement)(w.a,{className:"wc-block-review-sort-select wc-block-components-review-sort-select",label:Object(n.__)("Order by",'woocommerce'),onChange:t,options:[{key:"most-recent",label:Object(n.__)("Most recent",'woocommerce')},{key:"highest-rating",label:Object(n.__)("Highest rating",'woocommerce')},{key:"lowest-rating",label:Object(n.__)("Lowest rating",'woocommerce')}],readOnly:r,screenReaderLabel:Object(n.__)("Order reviews by",'woocommerce'),value:c})},g=r(5),h=r.n(g),v=r(212),O=r.n(v);const j=function(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"...";const o=O()(e,{suffix:r,limit:t});return o.html},_=(e,t,r,o)=>{const n=f(e,t,r);return j(e,n-o.length,o)},f=(e,t,r)=>{let o={start:0,middle:0,end:e.length};for(;o.start<=o.end;)o.middle=Math.floor((o.start+o.end)/2),t.innerHTML=j(e,o.middle),o=y(o,t.clientHeight,r);return o.middle},y=(e,t,r)=>(t<=r?e.start=e.middle+1:e.end=e.middle-1,e);class k extends i.Component{constructor(e){super(...arguments),this.state={isExpanded:!1,clampEnabled:null,content:e.children,summary:"."},this.reviewSummary=Object(i.createRef)(),this.reviewContent=Object(i.createRef)(),this.getButton=this.getButton.bind(this),this.onClick=this.onClick.bind(this)}componentDidMount(){if(this.props.children){const{maxLines:e,ellipsis:t}=this.props,r=(this.reviewSummary.current.clientHeight+1)*e+1,o=this.reviewContent.current.clientHeight+1>r;this.setState({clampEnabled:o}),o&&this.setState({summary:_(this.reviewContent.current.innerHTML,this.reviewSummary.current,r,t)})}}getButton(){const{isExpanded:e}=this.state,{className:t,lessText:r,moreText:n}=this.props,c=e?r:n;if(c)return Object(o.createElement)("a",{href:"#more",className:t+"__read_more",onClick:this.onClick,"aria-expanded":!e,role:"button"},c)}onClick(e){e.preventDefault();const{isExpanded:t}=this.state;this.setState({isExpanded:!t})}render(){const{className:e}=this.props,{content:t,summary:r,clampEnabled:n,isExpanded:c}=this.state;return t?!1===n?Object(o.createElement)("div",{className:e},Object(o.createElement)("div",{ref:this.reviewContent},t)):Object(o.createElement)("div",{className:e},(!c||null===n)&&Object(o.createElement)("div",{ref:this.reviewSummary,"aria-hidden":c,dangerouslySetInnerHTML:{__html:r}}),(c||null===n)&&Object(o.createElement)("div",{ref:this.reviewContent,"aria-hidden":!c},t),this.getButton()):null}}k.defaultProps={maxLines:3,ellipsis:"…",moreText:Object(n.__)("Read more",'woocommerce'),lessText:Object(n.__)("Read less",'woocommerce'),className:"read-more-content"};var E=k;r(239);var R=e=>{let{attributes:t,review:r={}}=e;const{imageType:c,showReviewDate:s,showReviewerName:a,showReviewImage:i,showReviewRating:l,showReviewContent:d,showProductName:u}=t,{rating:b}=r,p=!Object.keys(r).length>0,w=Number.isFinite(b)&&l;return Object(o.createElement)("li",{className:h()("wc-block-review-list-item__item","wc-block-components-review-list-item__item",{"is-loading":p,"wc-block-components-review-list-item__item--has-image":i}),"aria-hidden":p},(u||s||a||i||w)&&Object(o.createElement)("div",{className:"wc-block-review-list-item__info wc-block-components-review-list-item__info"},i&&function(e,t,r){var c,s;return r||!e?Object(o.createElement)("div",{className:"wc-block-review-list-item__image wc-block-components-review-list-item__image"}):Object(o.createElement)("div",{className:"wc-block-review-list-item__image wc-block-components-review-list-item__image"},"product"===t?Object(o.createElement)("img",{"aria-hidden":"true",alt:(null===(c=e.product_image)||void 0===c?void 0:c.alt)||"",src:(null===(s=e.product_image)||void 0===s?void 0:s.thumbnail)||""}):Object(o.createElement)("img",{"aria-hidden":"true",alt:"",src:e.reviewer_avatar_urls[96]||""}),e.verified&&Object(o.createElement)("div",{className:"wc-block-review-list-item__verified wc-block-components-review-list-item__verified",title:Object(n.__)("Verified buyer",'woocommerce')},Object(n.__)("Verified buyer",'woocommerce')))}(r,c,p),(u||a||w||s)&&Object(o.createElement)("div",{className:"wc-block-review-list-item__meta wc-block-components-review-list-item__meta"},w&&function(e){const{rating:t}=e,r={width:t/5*100+"%"},c=Object(n.sprintf)( /* translators: %f is referring to the average rating value */ Object(n.__)("Rated %f out of 5",'woocommerce'),t);return Object(o.createElement)("div",{className:"wc-block-review-list-item__rating wc-block-components-review-list-item__rating"},Object(o.createElement)("div",{className:"wc-block-review-list-item__rating__stars wc-block-components-review-list-item__rating__stars",role:"img","aria-label":c},Object(o.createElement)("span",{style:r},c)))}(r),u&&function(e){return Object(o.createElement)("div",{className:"wc-block-review-list-item__product wc-block-components-review-list-item__product"},Object(o.createElement)("a",{href:e.product_permalink,dangerouslySetInnerHTML:{__html:e.product_name}}))}(r),a&&function(e){const{reviewer:t=""}=e;return Object(o.createElement)("div",{className:"wc-block-review-list-item__author wc-block-components-review-list-item__author"},t)}(r),s&&function(e){const{date_created:t,formatted_date_created:r}=e;return Object(o.createElement)("time",{className:"wc-block-review-list-item__published-date wc-block-components-review-list-item__published-date",dateTime:t},r)}(r))),d&&function(e){return Object(o.createElement)(E,{maxLines:10,moreText:Object(n.__)("Read full review",'woocommerce'),lessText:Object(n.__)("Hide full review",'woocommerce'),className:"wc-block-review-list-item__text wc-block-components-review-list-item__text"},Object(o.createElement)("div",{dangerouslySetInnerHTML:{__html:e.review||""}}))}(r))};r(238);var S=e=>{let{attributes:t,reviews:r}=e;const n=Object(l.getSetting)("showAvatars",!0),c=Object(l.getSetting)("reviewRatingsEnabled",!0),s=(n||"product"===t.imageType)&&t.showReviewImage,a=c&&t.showReviewRating,i={...t,showReviewImage:s,showReviewRating:a};return Object(o.createElement)("ul",{className:"wc-block-review-list wc-block-components-review-list"},0===r.length?Object(o.createElement)(R,{attributes:i}):r.map((e,t)=>Object(o.createElement)(R,{key:e.id||t,attributes:i,review:e})))},P=r(7),C=r.n(P),x=r(16),L=r.n(x),N=r(31),I=r.n(N),T=r(77),A=r(35);class M extends i.Component{render(){const{attributes:e,error:t,isLoading:r,noReviewsPlaceholder:c,reviews:a,totalReviews:i}=this.props;if(t)return Object(o.createElement)(d.a,{className:"wc-block-featured-product-error",error:t,isLoading:r});if(0===a.length&&!r)return Object(o.createElement)(c,{attributes:e});const u=Object(l.getSetting)("reviewRatingsEnabled",!0);return Object(o.createElement)(s.Disabled,null,e.showOrderby&&u&&Object(o.createElement)(m,{readOnly:!0,value:e.orderby}),Object(o.createElement)(S,{attributes:e,reviews:a}),e.showLoadMore&&i>a.length&&Object(o.createElement)(p,{screenReaderLabel:Object(n.__)("Load more reviews",'woocommerce')}))}}var D=(e=>{class t extends i.Component{constructor(){super(...arguments),L()(this,"isPreview",!!this.props.attributes.previewReviews),L()(this,"delayedAppendReviews",this.props.delayFunction(this.appendReviews)),L()(this,"isMounted",!1),L()(this,"state",{error:null,loading:!0,reviews:this.isPreview?this.props.attributes.previewReviews:[],totalReviews:this.isPreview?this.props.attributes.previewReviews.length:0}),L()(this,"setError",async e=>{if(!this.isMounted)return;const{onReviewsLoadError:t}=this.props,r=await Object(A.a)(e);this.setState({reviews:[],loading:!1,error:r}),t(r)})}componentDidMount(){this.isMounted=!0,this.replaceReviews()}componentDidUpdate(e){e.reviewsToDisplay<this.props.reviewsToDisplay?this.delayedAppendReviews():this.shouldReplaceReviews(e,this.props)&&this.replaceReviews()}shouldReplaceReviews(e,t){return e.orderby!==t.orderby||e.order!==t.order||e.productId!==t.productId||!I()(e.categoryIds,t.categoryIds)}componentWillUnmount(){this.isMounted=!1,this.delayedAppendReviews.cancel&&this.delayedAppendReviews.cancel()}getArgs(e){const{categoryIds:t,order:r,orderby:o,productId:n,reviewsToDisplay:c}=this.props,s={order:r,orderby:o,per_page:c-e,offset:e};return t&&t.length&&(s.category_id=Array.isArray(t)?t.join(","):t),n&&(s.product_id=n),s}replaceReviews(){if(this.isPreview)return;const{onReviewsReplaced:e}=this.props;this.updateListOfReviews().then(e)}appendReviews(){if(this.isPreview)return;const{onReviewsAppended:e,reviewsToDisplay:t}=this.props,{reviews:r}=this.state;t<=r.length||this.updateListOfReviews(r).then(e)}updateListOfReviews(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];const{reviewsToDisplay:t}=this.props,{totalReviews:r}=this.state,o=Math.min(r,t)-e.length;return this.setState({loading:!0,reviews:e.concat(Array(o).fill({}))}),Object(T.c)(this.getArgs(e.length)).then(t=>{let{reviews:r,totalReviews:o}=t;return this.isMounted&&this.setState({reviews:e.filter(e=>Object.keys(e).length).concat(r),totalReviews:o,loading:!1,error:null}),{newReviews:r}}).catch(this.setError)}render(){const{reviewsToDisplay:t}=this.props,{error:r,loading:n,reviews:c,totalReviews:s}=this.state;return Object(o.createElement)(e,C()({},this.props,{error:r,isLoading:n,reviews:c.slice(0,t),totalReviews:s}))}}L()(t,"defaultProps",{delayFunction:e=>e,onReviewsAppended:()=>{},onReviewsLoadError:()=>{},onReviewsReplaced:()=>{}});const{displayName:r=e.name||"Component"}=e;return t.displayName=`WithReviews( ${r} )`,t})(M);t.a=e=>{let{attributes:t,icon:r,name:i,noReviewsPlaceholder:l}=e;const{categoryIds:d,productId:u,reviewsOnPageLoad:b,showProductName:p,showReviewDate:w,showReviewerName:m,showReviewContent:g,showReviewImage:h,showReviewRating:v}=t,{order:O,orderby:j}=Object(T.d)(t.orderby),_=!(g||v||w||m||h||p),f=Object(a.useBlockProps)({className:Object(T.a)(t)});return _?Object(o.createElement)(s.Placeholder,{icon:r,label:i},Object(n.__)("The content for this block is hidden due to block settings.",'woocommerce')):Object(o.createElement)("div",f,Object(o.createElement)(D,{attributes:t,categoryIds:d,delayFunction:e=>Object(c.debounce)(e,400),noReviewsPlaceholder:l,orderby:j,order:O,productId:u,reviewsToDisplay:b}))}},191:function(e,t){},192:function(e,t){},193:function(e,t){},20:function(e,t){e.exports=window.wp.htmlEntities},21:function(e,t){e.exports=window.moment},237:function(e,t){},238:function(e,t){},239:function(e,t){},240:function(e,t){},273:function(e,t,r){"use strict";var o=r(7),n=r.n(o),c=r(0),s=r(32),a=r(34),i=r(165),l=r(35);t.a=e=>t=>{let{selected:r,...o}=t;const[d,u]=Object(c.useState)(!0),[b,p]=Object(c.useState)(null),[w,m]=Object(c.useState)([]),g=s.o.productCount>100,h=async e=>{const t=await Object(l.a)(e);p(t),u(!1)},v=Object(c.useRef)(r);Object(c.useEffect)(()=>{Object(a.h)({selected:v.current}).then(e=>{m(e),u(!1)}).catch(h)},[v]);const O=Object(i.a)(e=>{Object(a.h)({selected:r,search:e}).then(e=>{m(e),u(!1)}).catch(h)},400),j=Object(c.useCallback)(e=>{u(!0),O(e)},[u,O]);return Object(c.createElement)(e,n()({},o,{selected:r,error:b,products:w,isLoading:d,onSearch:g?j:null}))}},281:function(e,t,r){"use strict";var o=r(0),n=r(18);const c=Object(o.createElement)(n.SVG,{xmlns:"http://www.w3.org/2000/SVG",viewBox:"0 0 24 24"},Object(o.createElement)("path",{fill:"none",d:"M0 0h24v24H0V0z"}),Object(o.createElement)("path",{d:"M21.99 4c0-1.1-.89-2-1.99-2H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h14l4 4-.01-18zM20 4v13.17L18.83 16H4V4h16zM6 12h12v2H6zm0-3h12v2H6zm0-3h12v2H6z"}));t.a=c},3:function(e,t){e.exports=window.wc.wcSettings},30:function(e,t){e.exports=window.wp.dataControls},31:function(e,t){e.exports=window.wp.isShallowEqual},32:function(e,t,r){"use strict";r.d(t,"o",(function(){return c})),r.d(t,"m",(function(){return s})),r.d(t,"l",(function(){return a})),r.d(t,"n",(function(){return i})),r.d(t,"j",(function(){return l})),r.d(t,"e",(function(){return d})),r.d(t,"f",(function(){return u})),r.d(t,"g",(function(){return b})),r.d(t,"k",(function(){return p})),r.d(t,"c",(function(){return w})),r.d(t,"d",(function(){return m})),r.d(t,"h",(function(){return g})),r.d(t,"a",(function(){return h})),r.d(t,"i",(function(){return v})),r.d(t,"b",(function(){return O}));var o,n=r(3);const c=Object(n.getSetting)("wcBlocksConfig",{buildPhase:1,pluginUrl:"",productCount:0,defaultAvatar:"",restApiRoutes:{},wordCountType:"words"}),s=c.pluginUrl+"images/",a=c.pluginUrl+"build/",i=c.buildPhase,l=null===(o=n.STORE_PAGES.shop)||void 0===o?void 0:o.permalink,d=n.STORE_PAGES.checkout.id,u=n.STORE_PAGES.checkout.permalink,b=n.STORE_PAGES.privacy.permalink,p=(n.STORE_PAGES.privacy.title,n.STORE_PAGES.terms.permalink),w=(n.STORE_PAGES.terms.title,n.STORE_PAGES.cart.id),m=n.STORE_PAGES.cart.permalink,g=(n.STORE_PAGES.myaccount.permalink?n.STORE_PAGES.myaccount.permalink:Object(n.getSetting)("wpLoginUrl","/wp-login.php"),Object(n.getSetting)("shippingCountries",{})),h=Object(n.getSetting)("allowedCountries",{}),v=Object(n.getSetting)("shippingStates",{}),O=Object(n.getSetting)("allowedStates",{})},34:function(e,t,r){"use strict";r.d(t,"h",(function(){return l})),r.d(t,"e",(function(){return d})),r.d(t,"b",(function(){return u})),r.d(t,"i",(function(){return b})),r.d(t,"f",(function(){return p})),r.d(t,"c",(function(){return w})),r.d(t,"d",(function(){return m})),r.d(t,"g",(function(){return g})),r.d(t,"a",(function(){return h}));var o=r(13),n=r(11),c=r.n(n),s=r(6),a=r(3),i=r(32);const l=e=>{let{selected:t=[],search:r="",queryArgs:n={}}=e;const a=(e=>{let{selected:t=[],search:r="",queryArgs:n={}}=e;const c=i.o.productCount>100,s={per_page:c?100:0,catalog_visibility:"any",search:r,orderby:"title",order:"asc"},a=[Object(o.addQueryArgs)("/wc/store/products",{...s,...n})];return c&&t.length&&a.push(Object(o.addQueryArgs)("/wc/store/products",{catalog_visibility:"any",include:t,per_page:0})),a})({selected:t,search:r,queryArgs:n});return Promise.all(a.map(e=>c()({path:e}))).then(e=>Object(s.uniqBy)(Object(s.flatten)(e),"id").map(e=>({...e,parent:0}))).catch(e=>{throw e})},d=e=>c()({path:"/wc/store/products/"+e}),u=()=>c()({path:"wc/store/products/attributes"}),b=e=>c()({path:`wc/store/products/attributes/${e}/terms`}),p=e=>{let{selected:t=[],search:r}=e;const n=(e=>{let{selected:t=[],search:r}=e;const n=Object(a.getSetting)("limitTags",!1),c=[Object(o.addQueryArgs)("wc/store/products/tags",{per_page:n?100:0,orderby:n?"count":"name",order:n?"desc":"asc",search:r})];return n&&t.length&&c.push(Object(o.addQueryArgs)("wc/store/products/tags",{include:t})),c})({selected:t,search:r});return Promise.all(n.map(e=>c()({path:e}))).then(e=>Object(s.uniqBy)(Object(s.flatten)(e),"id"))},w=e=>c()({path:Object(o.addQueryArgs)("wc/store/products/categories",{per_page:0,...e})}),m=e=>c()({path:"wc/store/products/categories/"+e}),g=e=>c()({path:Object(o.addQueryArgs)("wc/store/products",{per_page:0,type:"variation",parent:e})}),h=(e,t)=>{if(!e.title.raw)return e.slug;const r=1===t.filter(t=>t.title.raw===e.title.raw).length;return e.title.raw+(r?"":" - "+e.slug)}},35:function(e,t,r){"use strict";r.d(t,"a",(function(){return n})),r.d(t,"b",(function(){return c}));var o=r(1);const n=async e=>{if("function"==typeof e.json)try{const t=await e.json();return{message:t.message,type:t.type||"api"}}catch(e){return{message:e.message,type:"general"}}return{message:e.message,type:e.type||"general"}},c=e=>{if(e.data&&"rest_invalid_param"===e.code){const t=Object.values(e.data.params);if(t[0])return t[0]}return(null==e?void 0:e.message)||Object(o.__)("Something went wrong. Please contact us to get assistance.",'woocommerce')}},37:function(e,t,r){"use strict";var o=r(0),n=r(5),c=r.n(n);t.a=e=>{let t,{label:r,screenReaderLabel:n,wrapperElement:s,wrapperProps:a={}}=e;const i=null!=r,l=null!=n;return!i&&l?(t=s||"span",a={...a,className:c()(a.className,"screen-reader-text")},Object(o.createElement)(t,a,n)):(t=s||o.Fragment,i&&l&&r!==n?Object(o.createElement)(t,a,Object(o.createElement)("span",{"aria-hidden":"true"},r),Object(o.createElement)("span",{className:"screen-reader-text"},n)):Object(o.createElement)(t,a,r))}},38:function(e,t){e.exports=window.wp.keycodes},39:function(e,t){e.exports=window.wp.escapeHtml},4:function(e,t){e.exports=window.wp.components},41:function(e,t,r){"use strict";var o=r(0),n=r(1),c=r(39);t.a=e=>{let{error:t}=e;return Object(o.createElement)("div",{className:"wc-block-error-message"},(e=>{let{message:t,type:r}=e;return t?"general"===r?Object(o.createElement)("span",null,Object(n.__)("The following error was returned",'woocommerce'),Object(o.createElement)("br",null),Object(o.createElement)("code",null,Object(c.escapeHTML)(t))):"api"===r?Object(o.createElement)("span",null,Object(n.__)("The following error was returned from the API",'woocommerce'),Object(o.createElement)("br",null),Object(o.createElement)("code",null,Object(c.escapeHTML)(t))):t:Object(n.__)("An unknown error occurred which prevented the block from being updated.",'woocommerce')})(t))}},45:function(e,t){e.exports=window.wp.hooks},476:function(e,t,r){"use strict";var o=r(7),n=r.n(o),c=r(16),s=r.n(c),a=r(0),i=r(12),l=r(34),d=r(35);const u=Object(i.createHigherOrderComponent)(e=>class extends a.Component{constructor(){super(...arguments),s()(this,"state",{error:null,loading:!1,product:"preview"===this.props.attributes.productId?this.props.attributes.previewProduct:null}),s()(this,"loadProduct",()=>{const{productId:e}=this.props.attributes;"preview"!==e&&(e?(this.setState({loading:!0}),Object(l.e)(e).then(e=>{this.setState({product:e,loading:!1,error:null})}).catch(async e=>{const t=await Object(d.a)(e);this.setState({product:null,loading:!1,error:t})})):this.setState({product:null,loading:!1,error:null}))})}componentDidMount(){this.loadProduct()}componentDidUpdate(e){e.attributes.productId!==this.props.attributes.productId&&this.loadProduct()}render(){const{error:t,loading:r,product:o}=this.state;return Object(a.createElement)(e,n()({},this.props,{error:t,getProduct:this.loadProduct,isLoading:r,product:o}))}},"withProduct");t.a=u},51:function(e,t){e.exports=window.wp.deprecated},55:function(e,t,r){"use strict";var o=r(0);t.a=function(e){let{srcElement:t,size:r=24,...n}=e;return Object(o.isValidElement)(t)?Object(o.cloneElement)(t,{width:r,height:r,...n}):null}},6:function(e,t){e.exports=window.lodash},61:function(e,t){e.exports=window.wp.dom},64:function(e,t){e.exports=window.regeneratorRuntime},764:function(e,t,r){e.exports=r(869)},77:function(e,t,r){"use strict";r.d(t,"d",(function(){return i})),r.d(t,"c",(function(){return l})),r.d(t,"a",(function(){return d})),r.d(t,"b",(function(){return u}));var o=r(11),n=r.n(o),c=r(5),s=r.n(c),a=r(3);const i=e=>{if(Object(a.getSetting)("reviewRatingsEnabled",!0)){if("lowest-rating"===e)return{order:"asc",orderby:"rating"};if("highest-rating"===e)return{order:"desc",orderby:"rating"}}return{order:"desc",orderby:"date_gmt"}},l=e=>n()({path:"/wc/store/products/reviews?"+Object.entries(e).map(e=>e.join("=")).join("&"),parse:!1}).then(e=>e.json().then(t=>({reviews:t,totalReviews:parseInt(e.headers.get("x-wp-total"),10)}))),d=e=>{const{className:t,categoryIds:r,productId:o,showReviewDate:n,showReviewerName:c,showReviewContent:a,showProductName:i,showReviewImage:l,showReviewRating:d}=e;let u="wc-block-all-reviews";return o&&(u="wc-block-reviews-by-product"),Array.isArray(r)&&(u="wc-block-reviews-by-category"),s()(u,t,{"has-image":l,"has-name":c,"has-date":n,"has-rating":d,"has-content":a,"has-product-name":i})},u=e=>{const{categoryIds:t,imageType:r,orderby:o,productId:n,reviewsOnPageLoad:c,reviewsOnLoadMore:s,showLoadMore:a,showOrderby:i}=e,l={"data-image-type":r,"data-orderby":o,"data-reviews-on-page-load":c,"data-reviews-on-load-more":s,"data-show-load-more":a,"data-show-orderby":i};return n&&(l["data-product-id"]=n),Array.isArray(t)&&(l["data-category-ids"]=t.join(",")),l}},79:function(e,t){e.exports=window.ReactDOM},8:function(e,t){e.exports=window.React},80:function(e,t,r){"use strict";var o=r(7),n=r.n(o),c=r(0),s=r(6),a=r(5),i=r.n(a),l=r(4),d=r(12);r(117);class u extends c.Component{constructor(){super(...arguments),this.onClick=this.onClick.bind(this)}onClick(e){this.props.onChange&&this.props.onChange(e.target.value)}render(){const{label:e,checked:t,instanceId:r,className:o,help:a,options:d,value:u}=this.props,b="inspector-toggle-button-control-"+r;let p;return a&&(p=Object(s.isFunction)(a)?a(t):a),Object(c.createElement)(l.BaseControl,{id:b,help:p,className:i()("components-toggle-button-control",o)},Object(c.createElement)("label",{id:b+"__label",htmlFor:b,className:"components-toggle-button-control__label"},e),Object(c.createElement)(l.ButtonGroup,{"aria-labelledby":b+"__label"},d.map((t,r)=>{const o={};return u===t.value?(o.isPrimary=!0,o["aria-pressed"]=!0):(o.isSecondary=!0,o["aria-pressed"]=!1),Object(c.createElement)(l.Button,n()({key:`${t.label}-${t.value}-${r}`,value:t.value,onClick:this.onClick,"aria-label":e+": "+t.label},o),t.label)})))}}t.a=Object(d.withInstanceId)(u)},82:function(e,t){e.exports=window.wp.viewport},869:function(e,t,r){"use strict";r.r(t);var o=r(0),n=r(1),c=r(14),s=r(55),a=r(281),i=(r(192),r(7)),l=r.n(i),d=r(9),u=r(4),b=r(40),p=(r(2),r(135)),w=r(180),m=r(100),g=r(476),h=Object(g.a)(e=>{let{error:t,getProduct:r,isLoading:c,product:i}=e;if(t)return Object(o.createElement)(m.a,{className:"wc-block-featured-product-error",error:t,isLoading:c,onRetry:r});const l=!i||c?Object(o.createElement)(u.Spinner,null):Object(n.sprintf)( /* translators: %s is the product name. */ Object(n.__)("This block lists reviews for a selected product. %s doesn't have any reviews yet, but they will show up here when it does.",'woocommerce'),i.name);return Object(o.createElement)(u.Placeholder,{className:"wc-block-reviews-by-product",icon:Object(o.createElement)(s.a,{srcElement:a.a,className:"block-editor-block-icon"}),label:Object(n.__)("Reviews by Product",'woocommerce')},l)}),v=r(127),O=Object(u.withSpokenMessages)(e=>{let{attributes:t,debouncedSpeak:r,setAttributes:c}=e;const{editMode:i,productId:m}=t,g=e=>{const{item:t=0}=e;return Object(o.createElement)(b.c,l()({},e,{countLabel:Object(n.sprintf)( /* translators: %d is the review count. */ Object(n._n)("%d review","%d reviews",t.review_count,'woocommerce'),t.review_count),"aria-label":Object(n.sprintf)( /* translators: %1$s is the item name, and %2$d is the number of reviews for the item. */ Object(n._n)("%1$s, has %2$d review","%1$s, has %2$d reviews",t.review_count,'woocommerce'),t.name,t.review_count)}))};if(!m||i)return Object(o.createElement)(u.Placeholder,{icon:Object(o.createElement)(s.a,{icon:a.a,className:"block-editor-block-icon"}),label:Object(n.__)("Reviews by Product",'woocommerce'),className:"wc-block-reviews-by-product"},Object(n.__)("Show reviews of your product to build trust",'woocommerce'),Object(o.createElement)("div",{className:"wc-block-reviews__selection"},Object(o.createElement)(p.a,{selected:t.productId||0,onChange:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];const t=e[0]?e[0].id:0;c({productId:t})},queryArgs:{orderby:"comment_count",order:"desc"},renderItem:g}),Object(o.createElement)(u.Button,{isPrimary:!0,onClick:()=>{c({editMode:!1}),r(Object(n.__)("Showing Reviews by Product block preview.",'woocommerce'))}},Object(n.__)("Done",'woocommerce'))));const O=Object(n.__)("Edit selected product",'woocommerce');return Object(o.createElement)(o.Fragment,null,Object(v.a)(i,c,O),Object(o.createElement)(d.InspectorControls,{key:"inspector"},Object(o.createElement)(u.PanelBody,{title:Object(n.__)("Product",'woocommerce'),initialOpen:!1},Object(o.createElement)(p.a,{selected:t.productId||0,onChange:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];const t=e[0]?e[0].id:0;c({productId:t})},renderItem:g,isCompact:!0})),Object(o.createElement)(u.PanelBody,{title:Object(n.__)("Content",'woocommerce')},Object(v.b)(t,c)),Object(o.createElement)(u.PanelBody,{title:Object(n.__)("List Settings",'woocommerce')},Object(v.c)(t,c))),Object(o.createElement)(w.a,{attributes:t,icon:Object(o.createElement)(s.a,{icon:a.a,className:"block-editor-block-icon"}),name:Object(n.__)("Reviews by Product",'woocommerce'),noReviewsPlaceholder:h}))}),j=r(176),_=r(177),f=r(145);Object(c.registerBlockType)("woocommerce/reviews-by-product",{apiVersion:2,title:Object(n.__)("Reviews by Product",'woocommerce'),icon:{src:Object(o.createElement)(s.a,{srcElement:a.a}),foreground:"#7f54b3"},category:"woocommerce",keywords:[Object(n.__)("WooCommerce",'woocommerce')],description:Object(n.__)("Show reviews of your products to build trust.",'woocommerce'),supports:{html:!1,color:{background:!1},typography:{fontSize:!0}},example:{...f.a,attributes:{...f.a.attributes,productId:1}},attributes:{...j.a,productId:{type:"number"}},edit:e=>Object(o.createElement)(O,e),save:_.a})},89:function(e,t){e.exports=window.wp.date},9:function(e,t){e.exports=window.wp.blockEditor}});