PluginProbe ʕ •ᴥ•ʔ
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments / 4.6.4
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments v4.6.4
4.7.0 4.6.6 4.6.5 4.6.4 4.6.3 4.6.2 4.6.1 4.6.0 4.5.1 4.5.0 4.4.2 4.4.1 4.4.0 4.3.3 4.3.2 4.3.1 4.3.0 4.2.3 4.2.2 4.2.1 1.0.3 1.0.4 1.0.5 1.0.6 1.1.0 1.1.1 1.1.10 1.1.11 1.1.12 1.1.13 1.1.14 1.1.15 1.1.16 1.1.17 1.1.18 1.1.19 1.1.2 1.1.3 1.1.4 1.1.5 1.1.6 1.1.7 1.1.8 1.1.9 1.10.0 1.10.1 1.10.2 1.10.3 1.10.4 1.11.0 1.11.1 1.11.2 1.2.0 1.2.1 1.2.2 1.2.3 1.2.4 1.2.5 1.3.0 1.3.1 1.3.2 1.3.3 1.3.4 1.4.0 1.4.1 1.4.2 1.5.0 1.5.1 1.5.2 1.5.3 1.5.4 1.5.5 1.5.6 1.5.7 1.5.8 1.6.0 1.6.1 1.6.2 1.6.3 1.6.4 1.7.0 1.7.1 1.7.2 1.8.0 1.8.1 1.8.2 1.8.3 1.8.4 1.8.5 1.9.0 1.9.1 1.9.2 1.9.3 1.9.4 1.9.5 2.0.0 2.0.1 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.10.0 2.10.1 2.11.0 2.11.1 2.11.2 2.11.3 2.11.4 2.12.0 2.13.0 2.14.0 2.14.1 2.15.0 2.15.1 2.16.0 2.16.1 2.16.2 2.16.3 2.17.0 2.17.1 2.17.2 2.18.0 2.19.0 2.19.2 2.19.3 2.19.4 2.2.0 2.2.1 2.20.0 2.20.1 2.20.2 2.20.3 2.20.4 2.20.5 2.20.6 2.21.0 2.22.0 2.22.1 2.23.0 2.24.0 2.25.0 2.25.1 2.25.2 2.26.0 2.27.0 2.27.1 2.28.0 2.29.0 2.29.1 2.29.2 2.29.3 2.29.4 2.3.0 2.3.1 2.30.0 2.31.0 2.31.1 2.31.2 2.31.3 2.4.0 2.4.1 2.4.2 2.4.3 2.4.4 2.40.0 2.40.1 2.5.0 2.5.1 2.5.2 2.6.0 2.6.1 2.6.2 2.7.0 2.7.1 2.7.2 2.7.3 2.7.4 2.7.5 2.8.0 2.8.1 2.8.2 2.8.3 2.8.4 2.9.0 3.0.0 3.0.0-RC1 3.0.0-RC2 3.0.0-beta1 3.0.0-beta2 3.0.1 3.0.2 3.0.3 3.0.4 3.0.5 3.1.0 3.1.1 3.1.2 3.1.3 3.1.4 3.1.5 3.1.6 3.10.0 3.10.1 3.11.0 3.12.0 3.13.0 3.13.1 3.13.2 3.13.3 3.13.4 3.14.0 3.15.0 3.15.1 3.15.2 3.15.3 3.15.4 3.15.5 3.16.0 3.16.1 3.16.2 3.16.3 3.16.4 3.16.5 3.16.6 3.16.7 3.16.8 3.17.0 3.17.1 3.17.2 3.17.3 3.17.4 3.17.5 3.17.6 3.18.0 3.19.0 3.19.1 3.19.2 3.2.0 3.2.1 3.2.2 3.20.0 3.20.1 3.3.0 3.3.1 3.4.0 3.4.1 3.4.2 3.4.3 3.5.0 3.5.1 3.5.2 3.5.3 3.6.0 3.6.1 3.6.2 3.7.0 3.7.1 3.7.2 3.7.3 3.8.0 3.8.1 3.8.2 3.8.3 3.8.4 3.8.5 3.9.0 4.0.0 4.0.1 4.0.2 4.0.3 trunk 4.1.0 0.2.19.1 4.1.1 1.0.0 4.2.0 1.0.1 1.0.2
surecart / packages / blocks-next / build / scripts / product-review-form / index.js
surecart / packages / blocks-next / build / scripts / product-review-form Last commit date
index.asset.php 4 months ago index.js 4 months ago
index.js
1 lines
1 import*as t from"@wordpress/interactivity";import*as e from"@surecart/api-fetch";var r,o,n={d:function(t,e){for(var r in e)n.o(e,r)&&!n.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:e[r]})},o:function(t,e){return Object.prototype.hasOwnProperty.call(t,e)}},a=(r={getContext:function(){return t.getContext},getElement:function(){return t.getElement},store:function(){return t.store},withSyncEvent:function(){return t.withSyncEvent}},o={},n.d(o,r),o),i=function(t){var e={};return n.d(e,t),e}({default:function(){return e.default}});let s=[];function c(t){return t.classList.contains("a11y-speak-region")||t.classList.contains("a11y-speak-intro-text")||t.querySelector("#a11y-speak-assertive, #a11y-speak-polite, #a11y-speak-intro-text")}const{__}=wp.i18n,{addQueryArgs:u}=wp.url,d=t=>!t?.key||[" ","Enter","Escape"].includes(t.key),l=()=>{requestAnimationFrame((()=>{const t=document.querySelector(".wp-block-surecart-product-review-form .sc-product-review-form-dialog"),e=t?.querySelector('button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])');e?.focus()}))},{state:p,actions:f,callbacks:m}=(0,a.store)("surecart/product-review-form",{actions:{open:(0,a.withSyncEvent)((function*(t){if(!d(t))return;t?.preventDefault();const{redirect_url:e,product_id:r}=(0,a.getContext)();if(p.openButton=t?.target?.closest(".wp-block-surecart-product-review-add-button"),e)return void(window.location.href=e);(t=>{const e=new URL(window.location.href);e.searchParams.set("product-review-form",t),window.history.pushState({},"",e.toString())})(r),p.open=!0;const{speak:o}=yield import("@wordpress/a11y");o(__("Product review form opened.","surecart"),"assertive"),l()})),close:(0,a.withSyncEvent)((function*(t){if(!p.open||!d(t))return;const e=(0,a.getContext)();if(t?.preventDefault(),(t=>{const{stars:e,title:r,body:o}=t;return e>0||r&&""!==r.trim()||o&&""!==o.trim()})(e)&&!window.confirm(__("Discard your review?","surecart")))return;m.clearForm(),p.open=!1,e.submitted=!1,(()=>{const t=new URL(window.location.href);t.searchParams.delete("product-review-form"),window.history.pushState({},"",t.toString())})();const{speak:r}=yield import("@wordpress/a11y");r(__("Product review form closed.","surecart"),"assertive"),setTimeout((()=>p?.openButton?.focus()),1)})),setStars(t){(0,a.getContext)().stars=t?.target?.value??0},handleStarKeydown:(0,a.withSyncEvent)((function(t){" "!==t.key&&"Enter"!==t.key||(t.preventDefault(),f.selectStar(t.target))})),handleStarClick(t){f.selectStar(t.currentTarget)},selectStar(t){const e=t.getAttribute("data-star"),r=document.getElementById(`stars-star${e}`);r&&(r.checked=!0,r.dispatchEvent(new Event("change",{bubbles:!0})))},setTitle(t){(0,a.getContext)().title=t?.target?.value??""},setContent(t){(0,a.getContext)().body=t?.target?.value??""},handleSubmit:(0,a.withSyncEvent)((function*(t){if("keydown"===t.type&&"Enter"!==t.key)return!0;if(t.preventDefault(),t.stopPropagation(),!t.submitter){const{ref:e}=(0,a.getElement)();e&&(t.submitter=e)}if(!t?.submitter?.value){const t=(0,a.getContext)(),{stars:e,title:r,sc_product_id:o,body:n}=t,{speak:s}=yield import("@wordpress/a11y");if((t=>{const{stars:e,title:r,sc_product_id:o}=t;return!e||e<1||e>5||!r||""===r?.trim()||!o})(t))return;try{t.busy=!0,s(__("Submitting your review.","surecart"),"assertive");const a=yield(0,i.default)({method:"POST",path:u("/surecart/v1/reviews"),data:{product:o,stars:e,title:r,body:n}});if(!a||!a?.id)throw new Error(__("Failed to submit review, please try again.","surecart"));m.clearForm(),t.submitted=!0,requestAnimationFrame((()=>{const t=document.querySelector(".sc-product-review-confirmation"),e=t?.querySelector('button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])');e?e.focus():t&&(t.setAttribute("tabindex","-1"),t.focus())}))}catch(t){console.error(t);let e=t?.message||__("Failed to submit review. Please try again.","surecart");t?.additional_errors&&Array.isArray(t.additional_errors)&&(e+=" "+t.additional_errors.map((t=>t.message)).join(" ")),alert(e)}finally{t.busy=!1}}}))},callbacks:{handleInit(){p.open&&l()},handleOpenChange(){p.open?(document.body.classList.add("sc-product-review-form-open"),function(t){s=[];let e=t;for(;e&&e!==document.body;){const t=e.parentElement;if(!t)break;Array.from(t.children).forEach((t=>{t===e||t.hasAttribute("inert")||c(t)||(t.setAttribute("inert",""),s.push(t))})),e=t}}(document.querySelector(".wp-block-surecart-product-review-form"))):(document.body.classList.remove("sc-product-review-form-open"),s.forEach((t=>{t.removeAttribute("inert")})),s=[])},handleKeyDown(t){"Escape"===t?.key&&f.close(t)},clearForm(){const t=(0,a.getContext)();t.stars=0,t.title="",t.body="",document.querySelectorAll('.wp-block-surecart-product-review-form-rating input[type="radio"][name="stars"]').forEach((t=>{t.checked=!1}))}}});