PageSourceSearch

https://www.eurofun-touristik.at/.resources/eurofun-v2-module/webr…/dist/eurofun/assets/RatingForm-jRTquPkD.js

js eurofun-touristik.at collected 2026-10-07 21:06:53 UTC 5,154 bytes, 1 lines download raw bytes

1import{a as h}from"./globals-ClPx39Dv.js";import{B as b}from"./BaseComponent-CLVtauQr.js";import p from"./Form-BIKnJ78C.js";import{SELECTED_RATING_STAR_CLASS as f}from"./Rating-BC13igx-.js";import"./hash-B92MX7BI.js";import"./translation.filter-CASu-6zi.js";const S=d=>{const t={method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(d)};return fetch(`${h.REST_ENDPOINT}/${TENANT}/rating/${LANG}/create`,t)},k={createRating:S};class e extends b{static SELECTORS={inputWrapper:'[data-role="form-input-wrapper"]',accommodationDetail:'[data-role="accommodation-detail"]',accommodationDetailContainer:'[data-role="accommodation-detail-container"]',addAccommodationDetailButton:'[data-role="add-accommodation-detail"]',formInput:'[data-role="input"]',formInputLabel:".form-input__label",callbackInput:'[data-name="callBackTelephone"]',callbackCheckbox:'[data-role="callback-checkbox"]',checkboxInput:'[data-role="checkbox-input"]'};accommodationDetail;accommodationDetailContainer;addAccommodationDetailButton;callbackInput;callbackCheckbox;form;showErrorTextClass="show-error";constructor(t,c={}){super(t,c),this.form=new p(t,{},this.ratingFormSubmit),this.form.run(),this.accommodationDetail=null,this.accommodationDetailContainer=null,this.addAccommodationDetailButton=null,this.callbackCheckbox=null,this.callbackInput=null}run(){this.init()}init(){this.accommodationDetailContainer=this.element.querySelector(e.SELECTORS.accommodationDetailContainer),this.addAccommodationDetailButton=this.element.querySelector(e.SELECTORS.addAccommodationDetailButton),this.accommodationDetailContainer&&(this.accommodationDetail=this.accommodationDetailContainer.querySelector(e.SELECTORS.accommodationDetail)),this.callbackCheckbox=this.element.querySelector(e.SELECTORS.callbackCheckbox+" "+e.SELECTORS.checkboxInput),this.callbackInput=this.element.querySelector(e.SELECTORS.callbackInput),this.callbackCheckbox?.addEventListener("change",this.watchCallbackCheckboxState),this.addAccommodationDetailButton?.addEventListener("click",this.addAccommodationDetailBlock),this.watchCallbackCheckboxState()}addAccommodationDetailBlock=t=>{t.preventDefault();const c=document.querySelectorAll(e.SELECTORS.accommodationDetail).length,o=this.accommodationDetail?.cloneNode(!0);o&&(Array.from(o.querySelectorAll(e.SELECTORS.inputWrapper)).forEach(l=>{const a=`${l.dataset.name}${c-1}`;l.dataset.name=a;const i=l.querySelector(e.SELECTORS.formInputLabel),n=l.querySelector(e.SELECTORS.formInput),r=l.querySelector('[data-name="accommodationRating"]');if(i&&(i.htmlFor=a),n&&(n.id=a,n.name=a,n.value=""),r){r.dataset.value="0",r.querySelectorAll('[data-role="rating-box-star"]').forEach(u=>{u.classList.remove(f)});const m=r.querySelector('[data-role="rating-text"]');m&&(m.innerHTML="")}}),this.accommodationDetailContainer?.appendChild(o),this.form.updateInputWrappers())};watchCallbackCheckboxState=()=>{this.callbackInput&&(this.callbackCheckbox?.checked?this.enableCallbackInput():this.disableCallbackInput())};enableCallbackInput=()=>{if(!this.callbackInput)return;this.form&&this.form.requiredFields.length&&(this.form.requiredFields.includes(this.callbackInput)||this.form.requiredFields.push(this.callbackInput)),this.callbackInput.classList.remove("d-none"),this.callbackInput.setAttribute("data-required","true");const t=this.callbackInput.querySelector('[data-role="input"]');t&&(t.type="phone",t.required=!0,t.disabled=!1,t.ariaInvalid="true")};disableCallbackInput=()=>{if(!this.callbackInput)return;this.form&&this.form.requiredFields.length&&(this.form.requiredFields=this.form.requiredFields.filter(o=>o!==this.callbackInput)),this.callbackInput.setAttribute("data-required","false");const t=this.callbackInput.querySelector('[data-role="input"]');t&&(t.type="hidden",t.value="",t.required=!1,t.disabled=!0,t.ariaInvalid="false"),this.callbackInput.classList.contains(this.showErrorTextClass)&&this.callbackInput.classList.remove(this.showErrorTextClass);const c=this.callbackInput.querySelector('[data-role="input-hint"]');c&&(c.ariaHidden="true"),this.callbackInput.classList.add("d-none")};ratingFormSubmit=t=>{const c=this.element.getAttribute("data-action");
1if(this.form.invalidFields.length||!this.form||!c)return;let o;Object.entries(this.form.values).forEach(([a,i])=>{!a.startsWith("accommodationName")&&!a.startsWith("accommodationRating")&&!a.startsWith("accommodationMessage")&&(o={...o,[a]:typeof i=="number"?i.toString():i})});const s=document.querySelectorAll(e.SELECTORS.accommodationDetail).length,l=[];for(let a=0;a<s;a++){const i=(this.form.values[`accommodationName${a}`]||this.form.values.accommodationName)?.toString()||"",n=(this.form.values[`accommodationRating${a}`]||this.form.values.accommodationRating)?.toString()||"",r=(this.form.values[`accommodationRatingMessage${a}`]||this.form.values.accommodationRatingMessage)?.toString()||"";(i||n||r)&&l.push({accommodationName:i,accommodationRating:n,accommodationRatingMessage:r})}o.accommodationsRatings=l,o.friendlyCaptchaSolution=t,k.createRating(o).then(a=>{a.status===200?this.form.handleSubmitSuccess():this.form.handleSubmitError()})}}export{e as default};

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.