1!function(){const e=document.querySelector("#hb-room-add-new-review"),t=document.querySelector(".close-form-btn"),r=document.querySelector("#hb-room-review-form-popup");let s,i,o=[];const a=()=>{r&&(s=r.querySelector(".bg-overlay"),i=r.querySelector("#hb-room-submit-review-form"),n(),l(),d(),m(),u(),c())};jQuery(window).on("elementor/frontend/init",()=>{elementorFrontend.hooks.addAction("frontend/element_ready/tours-widget-comment.default",a)});const c=()=>{const e=document.querySelector("#hb-room-sort-by");e&&document.addEventListener("click",function(t){const r=t.target;r.classList.contains("toggle")&&r.closest(".hb-room-commentlist-sort-filter")?e.classList.add("is-open"):r.classList.contains("hb-sort-by-option")||e.classList.remove("is-open")})},n=()=>{e&&e.addEventListener("click",function(){s.classList.add("active"),i.classList.add("active")})},l=()=>{t.addEventListener("click",function(){s.classList.remove("active"),i.classList.remove("active")}),document.addEventListener("click",function(e){const t=e.target;"hb-room-add-new-review"!==t.getAttribute("id")&&(t.closest("#hb-room-submit-review-form")||"hb-room-submit-review-form"===t.getAttribute("id")||(s.classList.remove("active"),i.classList.remove("active")))})},d=()=>{const e=i.querySelector('#hb-room-submit-review-form input[name="review-rating"]');if(!e)return;const t=document.querySelector("#hb-room-submit-review-form .rating-star");[...t.querySelectorAll("#hb-room-submit-review-form .rating-star-item")].map(r=>{r.addEventListener("mouseover",function(e){this.closest(".rating-star.active")||(t.classList.add("selected"),r.classList.add("selected"))}),r.addEventListener("mouseleave",function(e){this.closest(".rating-star.active")||(t.classList.remove("selected"),r.classList.remove("selected"))}),r.addEventListener("click",function(s){s.preventDefault(),e.value=this.getAttribute("data-star-rating");const i=document.querySelector("#hb-room-submit-review-form .rating-star-item.active");i&&i.classList.remove("active"),t.classList.remove("selected"),t.classList.add("active"),r.classList.remove("selected"),r.classList.add("active")})})},m=()=>{const e=document.querySelector(".hb-gallery-review");if(!e)return;if("undefined"==typeof HB_ROOM_REVIEW_GALLERY)return;e.getAttribute("data-room-id");const t=e.querySelector("#hb-room-review-image"),r=e.querySelector(".gallery-preview"),s=e.querySelector(".review-notice"),i=HB_ROOM_REVIEW_GALLERY.max_images||0;t.addEventListener("change",function(){c();const e=t.files.length,s=["image/jpeg","image/png","image/jpg","image/gif"];if(e+0>i)return a(),void n(HB_ROOM_REVIEW_GALLERY.max_image_error,"error");for(let r=0;r<e;r++){if(!s.includes(t.files[r].type))return a(),void n(HB_ROOM_REVIEW_GALLERY.file_type_error,"error");if(t.files[r].size&&t.files[r].size>1024*parseInt(HB_ROOM_REVIEW_GALLERY.max_file_size))return a(),void n(HB_ROOM_REVIEW_GALLERY.max_file_size_error,"error")}let l="";[...t.files].map(e=>{const t=window.URL.createObjectURL(e);l+=`<div class="preview-item"><img src="${t}" alt="#preview"></div>`}),l&&(r.innerHTML=l),o=t.files});const a=()=>{[...e.querySelectorAll(".cr-upload-images-preview .hb-upload-images-containers:not(.hb-upload-ok)")].map(e=>{e.remove()}),t.value=""},c=()=>{s.innerHTML=""},n=(e,t="success")=>{"success"===t?(s.classList.remove("error"),s.classList.add("success")):(s.classList.remove("success"),s.classList.add("error")),s.innerHTML=e}},u=()=>{const e=r.querySelector("footer button");e.addEventListener("click",async function(){e.disabled=!0;const t=r.querySelector(".hb-room-spinner");t.classList.add("active");const s=r.querySelector("p.notice");s.innerHTML="";const a=r.querySelector('input[name="review-rating"]'),c=r.querySelector("#review-content"),n=r.querySelector("#review-title");let l="";a&&(l=parseInt(a.value));const d=c.value,m=n.value,u=await v();for(let e=0;e<u.length;e++)u[e].name=o[e].name,u[e].type=o[e].type;let L={room_id:i.getAttribute("data-room-id")};l&&(L={...L,rating:l}),m&&(L={...L,title:m}),d&&(L={...L,content:d}),u&&(L={...L,base64_images:u}),wp.apiFetch({path:"/hb-room/v1/update-review",method:"POST",data:L}).then(e=>{if("success"===e.status){if(s.classList.remove("failed"),s.classList.add("success"),e.msg&&(s.innerHTML=e.msg),e.data.redirect_url)return window.location.href=e.data.redirect_url,location.reload(),!1}else s.classList.remove("success"),s.classList.add("failed"),e.msg&&(s.innerHTML=e.msg)}).catch(e=>{console.log(e)}).finally(()=>{e.disabled=!1,t.classList.remove("active")})})},v=async()=>{const e=[];
1return[...o].map(t=>{e.push((e=>new Promise((t,r)=>{const s=new FileReader;s.readAsDataURL(e),s.onload=()=>t(s.result),s.onerror=e=>r(e)}))(t))}),(await Promise.all(e)).map(e=>({base64:e}))};a()}();
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.