PageSourceSearch

https://www.hapins-online.com/cdn/shop/t/42/assets/mxpr-product-re…?v=100001263219290782231786599237

js hapins-online.com collected 2026-09-25 13:05:56 UTC 7,328 bytes, 3 lines download raw bytes

1(function(){function selectElement(selector,node){return(node||document).querySelector(selector)||{}}function getCustomFields(){const elements=document.querySelectorAll(".mxpr-custom-field"),customFields={};return elements.forEach(elm=>{if(elm.type=="checkbox"){if(elm.checked){const values=customFields[elm.name]?.value||[];values.push(elm.value),customFields[elm.name]={value:values}}}else customFields[elm.name]={value:elm.value}}),customFields}async function submitReview(productId,customerId,images=null){const customFields=getCustomFields(),fetchOptions={method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({review:{productId,customerId,rating:selectElement("#mxpr-form__rating").value,name:selectElement("#mxpr-form__name").value,email:selectElement("#mxpr-form__email").value,guest:!customerId,title:selectElement("#mxpr-form__title").value,body:selectElement("#mxpr-form__body").value,images,customFields}})};return await fetch("/tools/prime-review/api/postReview",fetchOptions)}function checkInput(){const review={name:selectElement("#mxpr-form__name").value,title:selectElement("#mxpr-form__title").value,body:selectElement("#mxpr-form__body").value},alerts=document.getElementsByClassName("mxpr-form-alert-message");for(let i=0;i<alerts.length;i++)alerts[i].style.display="none";if(!review.name)document.getElementById("mxpr-form__name-alert").style.display="block";else if(!review.title)document.getElementById("mxpr-form__title-alert").style.display="block";else if(!review.body)document.getElementById("mxpr-form__body-alert").style.display="block";else if(review.body.length<5)document.getElementById("mxpr-form__body-alert-short").style.display="block";else if(review.body.length>4e3)document.getElementById("mxpr-form__body-alert-long").style.display="block";else{const elements=document.querySelectorAll(".mxpr-custom-field"),customFields={};elements.forEach(elm=>{if(elm.type=="checkbox"){const values=customFields[elm.name]?.value||[];elm.checked&&values.push(elm.value),customFields[elm.name]={value:values}}});let existRequireFails=!1;if(Object.keys(customFields).forEach(key=>{const validationElement=document.getElementById(`mxpr-choicelist-${key}`);validationElement.dataset.required=="true"&&customFields[key].value.length==0&&(alert(`${validationElement.dataset.validationPrefix}${validationElement.dataset.fieldName}${validationElement.dataset.validationSuffix}`),existRequireFails=!0)}),!existRequireFails)return!1}return!0}async function getFileUrl(uppyFiles){const imageUrls=[],files=Object.keys(uppyFiles).map(key=>{const ext=uppyFiles[key].name.split(".").slice(-1)[0];return{name:`${key.replace(/\W/g,"")}.${ext}`,size:uppyFiles[key].size,type:uppyFiles[key].type}});if(files.length==0)return{error:!1,result:{}};const fetchOptions={method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({files})},createResultJson=await(await fetch("/tools/prime-review/api/uploadsCreate",fetchOptions)).json();if(createResultJson.error)return{error:!0,result:createResultJson};const targets=createResultJson.result.data.stagedUploadsCreate.stagedTargets;for(const target of targets){const formData=new FormData;target.parameters.forEach(({name,value})=>{formData.append(name,value)});const key=target.parameters.find(p=>p.name=="key").value.split(".").slice(-2)[0],fileKey=Object.keys(uppyFiles).find(uppyKey=>key.endsWith(uppyKey.replace(/\W/g,""))),file=uppyFiles[fileKey];formData.append("file",file.data);const response=await fetch(target.url,{method:"POST",body:formData});if(response.ok)imageUrls.push({originalUrl:target.resourceUrl,type:file.type.startsWith("image/")?"IMAGE":"FILE"});else return{error:!0,result:response}}const createOptions={method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({files:imageUrls})},commitResultJson=await(await fetch("/tools/prime-review/api/uploadsCommit",createOptions)).json();return{error:createResultJson.errors?.length>0,result:commitResultJson,imageUrls}}function initWriteReview({target}){const rootBlock=target.closest(".mxpr-block[data-product-id]"),{productId,customerId}=rootBlock.dataset;if(!customerId){if(!window.PrimeReviewSettings?.reviewAllowGuest){confirm(target.dataset.alert)&&(location.href=`/account/login?checkout_url=${window.location.pathname}`);return}const emailArea=document.getElementById("email-field-for-guest");
1if(emailArea&&(emailArea.style.display="block"),window.PrimeReviewSettings?.emailRequired){const emailField=document.getElementById("mxpr-form__email");emailField&&(emailField.required="true")}}const el=target.parentNode.classList.contains("mxpr-summary__no-reviews")?target.parentNode:target;el.parentNode.removeChild(el);const form=document.getElementById("mxpr-product-reviews-form");form.style.display="flex",form.addEventListener("submit",async event=>{event.preventDefault();const errorMessage=document.getElementById("mxpr-form-message-error");if(errorMessage.style.display="none",checkInput())return;const submitButton=document.getElementById("mxpr-form-submit-button"),submitMessage=document.getElementById("mxpr-form-submit-message"),submitLoading=document.getElementById("mxpr-form-submit-loading"),originalButtonCaption=submitMessage.innerText;submitButton.disabled=!0,submitMessage.innerText=submitButton.dataset.sending,submitButton.classList.add("mxpr-form__submit--loading"),submitLoading.style.display="block",selectElement("#mxpr-form__name").disabled=!0,selectElement("#mxpr-form__email").disabled=!0,selectElement("#mxpr-form__title").disabled=!0,selectElement("#mxpr-form__body").disabled=!0,selectElement("#mxpr-form__rating").disabled=!0;const dashboard=uppy.getPlugin("Dashboard");dashboard.setOptions({disabled:!0});const res=await getFileUrl(uppy.state.files);if(res.error||res.result.error){const errorMessage2=document.getElementById("mxpr-form-message-error");errorMessage2.style.display="block",submitButton.disabled=!1,submitMessage.innerText=originalButtonCaption,submitLoading.style.display="none",submitButton.classList.remove("mxpr-form__submit--loading");return}const images=res.result?.result?.data?.fileCreate?.files?.map(file=>({id:file.id,type:file.__typename=="MediaImage"?"IMAGE":"FILE"}));(await submitReview(productId,customerId,images)).status===200?(event.target.parentNode.removeChild(event.target),MicroModal.show("mxpr-modal-thankyou")):(errorMessage.style.display="block",selectElement("#mxpr-form__name").disabled=!1,selectElement("#mxpr-form__title").disabled=!1,selectElement("#mxpr-form__body").disabled=!1,selectElement("#mxpr-form__rating").disabled=!1,dashboard.setOptions({disabled:!1}))})}function resizeTextarea({target}){const $textarea=document.getElementById("textarea");let lineHeight=getComputedStyle(target).lineHeight;lineHeight=lineHeight.replace(/[^-\d\.]/g,"")||24;const lines=(target.value+`
2`).match(/\n/g).length,height=lineHeight*lines+20;height>70&&(target.style.height=height+"px")}document.querySelector(".mxpr-summary__write-review").addEventListener("click",initWriteReview),document.querySelectorAll(".mxpr-text-area").forEach(textarea=>textarea.addEventListener("input",resizeTextarea)),console.log("[INFO] Prime Review has been launched: version 70")})();
3//# sourceMappingURL=/cdn/shop/t/42/assets/mxpr-product-reviews-form.js.map?v=100001263219290782231786599237

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.