PageSourceSearch

https://www.maistra.com/scripts/main.23907dfed3b410474023da7e553286e65afe83b3a393e34cac6e8f922d4634a5.js

js maistra.com collected 2026-10-01 13:07:57 UTC 284,514 bytes, 1,180 lines download raw bytes

1(()=>{var It={name:"Modal",template:`
2  <div v-show="isOpen" class="modal" :style="containerOffset ? ('padding-left: '+containerOffset+'px') : ''" >
3    <div class="modal__overlay" @click="$emit('closeModal')"></div>
4    <div class="modal__container" ref="containerRef">
5      <div class="modal__header" data-sl="mask">
6        <div class="modal__back" v-if="showBackButton"><button @click="$emit('back')"><i class="icon-caret-left"></i></button></div>
7        <div class="modal__button">
8          <button @click="$emit('closeModal')">
9            <span>{{ $t('cancel') }}</span>
10            <i class="icon-close"></i>
11          </button>
12        </div>
13
14        <h2 class="no-margin">
15          <span v-if="title">{{ title }}</span>
16        </h2>
17      </div>
18
19      <div class="modal__content">
20        <slot />
21      </div>
22
23      <slot name="footer" />
24    </div>
25  </div>
26  `,props:{isOpen:Boolean,title:String,overflowClass:String,containerOffset:Number,showBackButton:Boolean},emits:["closeModal","back"],setup(t){let e=Vue.toRef(t,"containerOffset"),i=Vue.ref(0),n=Vue.ref(null);Vue.watch(()=>t.isOpen,r=>{r?document.body.classList.add(t.overflowClass?t.overflowClass:"overflow-hidden"):document.body.classList.remove(t.overflowClass?t.overflowClass:"overflow-hidden"),Vue.nextTick(()=>{a()})}),Vue.watch(e,()=>{Vue.nextTick(()=>{a()})});function a(){if(!window.matchMedia("(min-width: 768px)").matches||!n.value||!e.value){i.value=0;return}if(n.value.offsetWidth+e.value>window.innerWidth){i.value=e.value-(n.value.offsetWidth+e.value-window.innerWidth);return}i.value=e.value}return Vue.onMounted(async()=>{window.addEventListener("resize",a),a()}),Vue.onBeforeUnmount(()=>{window.removeEventListener("resize",a)}),{containerRef:n,containerOffset:i}}};var Le={FATAL:"fatal",ERROR:"error",WARNING:"warning"};Object.freeze(Le);var Ke=class extends Error{constructor(e,i){super(e),this.name=this.constructor.name,this.level=i,this.code=e}},pt=class extends Ke{constructor(e,i,n,a){super(e,i),this.raw=n,this.extra=a}};var mt=class extends Ke{constructor(e,i,n,a){super(e,Le.ERROR),this.httpStatus=i,this.raw=n,this.extra=a}};var Di=(...t)=>{let e=i=>i&&typeof i=="object";return t.reduce((i,n)=>(Object.keys(n).forEach(a=>{let r=i[a],l=n[a];Array.isArray(r)&&Array.isArray(l)?i[a]=r.concat(...l):e(r)&&e(l)?i[a]=Di(r,l):i[a]=l}),i),{})},Mt=Vue.ref(JSON.parse(window.localStorage.getItem("isDebugEnabled"))),Jn=t=>Object.prototype.toString.call(t)==="[object Date]",me=t=>Jn(t)?new Date(t.getTime()-t.getTimezoneOffset()*6e4):t,se=t=>Jn(t)?new Date(t.getTime()+t.getTimezoneOffset()*6e4):t,Xn=(t,e=0,i=10)=>new Intl.NumberFormat("de-DE",{style:"decimal",minimumFractionDigits:e,maximumFractionDigits:i}).format(t),Ae=(t,e)=>t.toISOString().split("T")[0]===e.toISOString().split("T")[0],ue=t=>{if(t instanceof Date)return new Intl.DateTimeFormat("de-DE",{timeZone:"Europe/Zagreb"}).format(t);console.warn("date is not a Date",t)};function ea(t){if(!t.startDate)return"";let e=new Date(t.startDate);return e=new Date(e.setDate(e.getDate()+t.nights)),`${ue(t.startDate)} - ${ue(e)}`}function ta(t,e,i){let n=`${e("bookingModal.adults")}: ${t.adults}`;return i?n:`${n}, ${e("bookingModal.noChildren")}: ${t.children.length}`}function ia(t){if(!t||t.trim()==="")return[];let e=[];return t.split(",").forEach(i=>{e.push({age:i})}),e}function Dt(t){let e=(i,n)=>new Intl.DateTimeFormat(t==="si"?"sl":t,n).format(i);return{monthNames:[...Array(12).keys()].map(i=>e(new Date(2022,i),{month:"long"})),dayNamesMin:[...Array(7).keys()].map(i=>e(new Date(2022,7,i),{weekday:"short"}).substring(0,2)),firstDayOfWeek:1}}function le(t){let e=window.location.hash.split("?")[1];return e?new URLSearchParams(e).get(t):null}function Ne(t,e){let i=window.location.hash,[n,a]=i.split("?"),r=new URLSearchParams(a||"");r.set(t,e);let l=r.toString(),s=n+(l?"?"+l:"");history.replaceState(null,"",window.location.pathname+window.location.search+s)}function _e(t){let e=window.location.hash,[i,n]=e.split("?");if(!n)return;let a=new URLSearchParams(n);a.delete(t);let r=a.toString(),l=i+(r?"?"+r:"");history.replaceState(null,"",window.location.pathname+window.location.search+l)}var as={name:"Notification",template:`
27<div :class="'notification notification--' + type">
28  <i :class="'notification__icon icon-' + icon"></i>
29  <div>
30    <h3>{{ details.title ? details.title : $t(title) }}</h3>
31    <div v-if="areDetailsShown && details">
32      <p v-if="details.code">{{ $t(details.code) }}</p>
33      <p v-if="details.details">{{ details.details }}</p>
34      <p v-if="details.message">{{ details.message }}</p>
35      <div v-if="isDebugEnabled || (CONTEXT !== 'production')">
36        <pre v-if="details.stack">{{ details.stack }}</pre>
37      </div>
38    </div>
39    <a v-if="!areDetailsShown && details" role="button" @click="areDetailsShown = true">{{ $t('notification.moreInfo') }}</a>
40  </div>
41
42  <button
43    @click="$emit('close')"
44    :title="$t('close')">
45    <i class="icon-close"></i>
46  </button>
47</div>
48  `,props:{noRouter:{type:Boolean,default:!1},details:Object,type:{type:String,required:!0}},setup(t){let e=Vue.ref("check"),i=Vue.ref("notification.success");t.type==="warning"?(e.value="warning",i.value="notification.error"):t.type==="error"&&(e.value="error",i.value="notification.error");let n=Vue.ref(!1);return{icon:e,title:i,areDetailsShown:n,isDebugEnabled:Mt,CONTEXT}}},na=as;
48var oa={name:"SimpleHeader",template:`
49  <header class="header header--simple">
50    <div class="header__top">
51      <div class="header-logos">
52        <a :href="WWW_HOME_URL" :title="HOME_TITLE" class="header-logos__maistra">
53          <picture>
54            <source media="(min-width: 992px)" :srcset="LOGO.desktop">
55            <source media="print" :srcset="LOGO.desktop">
56            <img :src="LOGO.mobile" :alt="HOME_TITLE" width="48" height="48">
57          </picture>
58        </a>
59      </div>
60      <div class="header__icons hide-on-print">
61        <a v-if="showPhone" href="tel:+385%2052%20800%20250" class="header__icon" title="$t('call')">
62          <i class="icon-call"></i>
63        </a>
64        <button v-if="showHideModal" class="button button--blank" @click="$emit('hideModal')" :title="$t('checkRates.closeButtonLabel')">
65          <span class="hide-sm-down">{{ $t('checkRates.closeButtonLabel') }}</span>
66          <i class="icon-close"></i>
67        </button>
68      </div>
69    </div>
70  </header>
71  `,props:["showPhone","showHideModal"],emits:["hideModal"],setup(){return{WWW_HOME_URL,HOME_TITLE,LOGO}}};var ra={name:"FatalError",components:{SimpleHeader:oa},template:`
72<div class="fatal-error">
73  <SimpleHeader showPhone="true" />
74
75  <div class="fatal-error__content section-padding">
76    <div class="grid">
77      <h1 class="col-11 offset-1 col-md-10 offset-md-2" v-if="error.code && $t('fatalError.code.' + error.code) != 'fatalError.code.' + error.code">
78        {{ $t('fatalError.code.' + error.code) }}
79      </h1>
80      <h1 class="col-11 offset-1 col-md-10 offset-md-2" v-else>{{ $t('fatalError.title') }}</h1>
81      <hr class="col-11 col-md-9">
82      <div class="col-10 offset-1 col-md-7 offset-md-2 grid">
83        <div class="col-10 col-md-7">{{ $t('fatalError.message') }}</div>
84        <div class="col-10 col-md-5 fatal-error__button">
85          <a :href="homeUrl" class="button" role="button">{{ $t('fatalError.button') }}</a>
86        </div>
87        <div v-if="isDebugEnabled || (CONTEXT !== 'production')" class="col-12 fatal-error__details">
88          <p v-if="(typeof error === 'string')">{{ error }}</p>
89          <p v-else v-for="p in Object.getOwnPropertyNames(error)">{{ p }} : {{ error[p] }}</p>
90        </div>
91      </div>
92    </div>
93  </div>
94</div>
95  `,props:{error:Object},setup(t){let e=`${WWW_HOME_URL}/${LOCALE!=="en"?LOCALE:""}`;return{isDebugEnabled:Mt,HOME_TITLE,LOGO,CONTEXT,homeUrl:e}}};var Se={name:"Notifications",components:{Notification:na,FatalError:ra},template:`
96  <teleport to="body">
97    <div class="notifications">
98      <Notification
99        v-for="(notification, i) in state.notifications.value"
100        :type="notification.type"
101        :title="notification.title"
102        :details="notification.details"
103        :key="i"
104        @close="closeNotification(i)" />
105    </div>
106
107    <FatalError v-if="state.fatalError.value" :error="state.fatalError.value" />
108  </teleport>
109  `,setup(t){let{state:e}=ft(),i=document.getElementById("loaderSvg");return i&&Vue.watch(()=>$.isLoading,n=>{n?i.classList.remove("is-hidden"):i.classList.add("is-hidden")}),{state:e,closeNotification:os}}},$=Vue.reactive({notifications:[],processes:new Set,fatalError:null,isLoading:!1,isSeen:!0});window.addEventListener("pageshow",t=>{t.persisted&&($.processes.clear(),$.isLoading=!1)});function os(t){$.notifications.splice(t,1)}function ze(t){if(!t.length)throw TypeError("subsystem must be a string");$.processes.add(t),$.isLoading=$.processes.size>0}function ht(t){if(!t.length)throw TypeError("subsystem must be a string");setTimeout(()=>{$.processes.delete(t),$.isLoading=$.processes.size>0},500)}function be(t,e=!1){console.error(t),window.Sentry?.captureException(t),$.isLoading=!1,$.processes.clear(),t?.level===Le.FATAL||IS_BOOKING?($.fatalError=t,window.sessionStorage.removeItem("cart"),$.notifications=[],document.body.classList.add("overflow-hidden")):($.notifications.push({type:t.level||"error",details:t}),$.notifications.length>3&&$.notifications.shift()),e||($.isSeen=!1)}async function sa(t,e=!1){if(typeof t!="function")throw new TypeError("not a function");
109if(!t?.name?.length)throw new TypeError("can only be used with named functions");if(!(e&&$.processes.has(t.name))){ze(t.name);try{await t()}catch(i){be(i)}ht(t.name)}}function ft(){return{state:{notifications:Vue.computed(()=>$.notifications),fatalError:Vue.computed(()=>$.fatalError),isLoading:Vue.computed(()=>$.isLoading),processes:Vue.computed(()=>Array.from($.processes)),isSeen:Vue.computed(()=>$.isSeen)}}}var la={auth:{clientId:CLIENT_ID,authority:`https://${TENANT_NAME}.b2clogin.com/${TENANT_NAME}.onmicrosoft.com/B2C_1A_SIGNUP_SIGNIN`,knownAuthorities:[`${TENANT_NAME}.b2clogin.com`],redirectUri:`${REDIRECT_URI}`},cache:{cacheLocation:"localStorage",storeAuthStateInCookie:!1,claimsBasedCachingEnabled:!0},system:{loggerOptions:{loggerCallback:(t,e,i)=>{i||t===msal.LogLevel.Error&&console.error(e)}}}},ca={scopes:[`https://${TENANT_NAME}.onmicrosoft.com/api/base`],extraQueryParameters:{ui_locales:LOCALE==="si"?"sl":LOCALE}},ua={authority:`https://${TENANT_NAME}.b2clogin.com/${TENANT_NAME}.onmicrosoft.com/B2C_1A_SIGNUPEMAIL`,prompt:"login",scopes:[`https://${TENANT_NAME}.onmicrosoft.com/api/base`],extraQueryParameters:{ui_locales:LOCALE==="si"?"sl":LOCALE}};console.log("AuthService v0.0");var Ei=class{constructor(){EventTarget?this._target=new EventTarget:this._target=new Element}on(e,i){return this._target.addEventListener(e,i)}
109once(e,i){return this._target.addEventListener(e,i,{once:!0})}off(e,i){return this._target.removeEventListener(e,i)}emit(e,i){return this._target.dispatchEvent(new CustomEvent(e,{detail:i,cancelable:!0}))}};async function rs(t,e,i,n){if(!e)throw new Error("not authenticated");let a=new Headers,r=`Bearer ${e}`;a.append("Authorization",r),a.append("Accept","application/json"),a.append("Content-Type","application/json"),n&&(n=JSON.stringify(n));let l=await fetch(t,{method:i,headers:a,body:n}),s=null;if(l.ok)s=await l.json();else throw new mt("fetchWithTokenAsync",l.status,s,{url:t,body:n});if(s?.status===1&&s?.message==="User is authenticated, but CRM profile was not yet created.")return console.warn(s.message),s;if(s?.status!==0)throw new pt("fetchWithTokenAsync",Le.FATAL,s,{url:t,body:n});return s}var Ri=class extends Ei{constructor(){super();let e=null,i=null,n=null,a=null,r=-1;if(this._loginRequest=ca,this._signUpRequest=ua,this._isFinished=!1,this._initPromise=null,!msal){console.error("MSAL not loaded."),this.handleFinishedNoAuth();return}this._initPromise=this.initializeAsync()}async _ensureInitialized(){this._initPromise&&await this._initPromise}async initializeAsync(){this.msalInstance=await msal.PublicClientApplication.createPublicClientApplication(la),this.msalInstance.handleRedirectPromise().then(e=>{console.log("AuthService: handleRedirectPromise",e),console.log("AuthService: URL hash:",window.location.hash),console.log("AuthService: URL search:",window.location.search),e&&e.accessToken&&e.account?(console.log("AuthService: \u2713 Valid response with accessToken and account"),this.loadToken(e),this.emit("signedIn"),DATA_LAYER?.loginAsync({email:e.idTokenClaims?.emails?.[0]||e.idTokenClaims?.email,id:e.account.homeAccountId})):e&&e.account&&!e.accessToken?(console.warn("AuthService: \u26A0 Response has account but NO accessToken",{account:e.account,scopes:e.scopes,state:e.state}),this.handleSilentLoading()):e&&!e.account?(console.warn("AuthService: \u26A0 Response exists but NO account",e),this.handleSilentLoading()):e===null?(console.log("AuthService: \u2139 No redirect response (null) - checking for existing session"),this.handleSilentLoading()):(console.warn("AuthService: \u26A0 Unexpected response state",e),this.handleSilentLoading())}).catch(e=>{console.error("AuthService: \u2717 handleRedirectPromise ERROR:",e),console.error("AuthService: Error details:",{errorCode:e.errorCode,errorMessage:e.errorMessage,subError:e.subError,stack:e.stack}),e.errorMessage?e.errorMessage.indexOf("AADB2C90091")>-1?(console.log("AuthService: User cancelled login (AADB2C90091), attempting silent loading"),this.handleSilentLoading()):(console.error("AuthService: Unhandled error type, finishing without auth"),this.handleFinishedNoAuth()):(console.log("AuthService: No error message, finishing without auth"),this.handleFinishedNoAuth())}),window.addEventListener("pageshow",e=>{e.persisted&&this.clearBrowserStorage()})}async redirectSignup(e={}){await this._ensureInitialized();let i={...this._signUpRequest,...e};console.log("redirectSignup",i),this.msalInstance.loginRedirect(i)}handleSilentLoading(){console.log("AuthService: handleSilentLoading started");let e=new URLSearchParams(window.location.search),i=e.get("loginHint");if(console.log("AuthService: Requested loginHint from URL:",i),i){this._loginRequest.loginHint=i,e.delete("loginHint");let a=`${window.location.pathname}?${e.toString()}`;window.history.replaceState({},document.title,a),this.msalInstance.loginRedirect(this._loginRequest);return}let n=this.msalInstance.getAllAccounts();console.log("AuthService: currentAccounts",n),console.log("AuthService: Number of accounts:",n?.length||0),n&&n.length>0?(console.log("AuthService: Found existing account, attempting silent token acquisition"),this._accountId=n[0].homeAccountId,this._loginHint=n[0].loginHint,this._loginRequest.account=this.msalInstance.getAccountByHomeId(this._accountId),console.log("AuthService: Login request config:",{scopes:this._loginRequest.scopes,account:this._loginRequest.account?.homeAccountId}),this.msalInstance.acquireTokenSilent(this._loginRequest).then(a=>{console.log("AuthService: \u2713 acquireTokenSilent success",a),a.account?(console.log("AuthService: Loading token from silent acquisition"),this.loadToken(a)):console.warn("AuthService: \u26A0 Silent token acquired but no account in response")}).catch(a=>{console.error("AuthService: \u2717 acquireTokenSilent error:",a),console.error("AuthService: Silent token error details:",{errorCode:a.errorCode,errorMessage:a.errorMessage,subError:a.subError}),this.handleFinishedNoAuth()})):(console.log("AuthService: No existing accounts found, finishing without auth"),this.handleFinishedNoAuth())}clearBrowserStorage(){this.msalInstance.clearCache()}handleFinishedNoAuth(){console.log("AuthService: handleFinishedNoAuth - User NOT authenticated"),console.log("AuthService: Final state:",{hasAccessToken:!!this._accessToken,hasAccountId:!!this._accountId,hasLoyaltyId:this._loyaltyId>0,isAuthenticated:this.isAuthenticated,isMember:this.isMember,loginHint:this._loginHint}
109),this._isFinished=!0,this.emit("ended",{})}loadToken(e){if(console.log("AuthService: loadToken called",e),!e.accessToken||!e.account){console.warn("AuthService: \u26A0 loadToken - Missing accessToken or account",{hasAccessToken:!!e.accessToken,hasAccount:!!e.account}),this._idTokenClaims="",this._accountId="",this._loginHint="",this._accessToken="";return}console.log("AuthService: \u2713 Setting token data",{accountId:e.account.homeAccountId,hasAccessToken:!!e.accessToken,tokenLength:e.accessToken?.length,scopes:e.scopes}),this._idTokenClaims=e.idTokenClaims,this._accountId=e.account.homeAccountId,this._loginHint=e.account.idTokenClaims.login_hint,this._accessToken=e.accessToken,typeof aa<"u"&&this._accountId&&aa("setUserToken","maistra-"+this._accountId.substring(0,36)),console.log("AuthService: Fetching user data from loyalty API"),this.fetchAndSaveUserData()}fetchAndSaveUserData(){console.log("AuthService: fetchAndSaveUserData - Making API call to loyalty profiles"),console.log("AuthService: API endpoint:",`${LOYALTY_API}/api/v1/loyaltyprofiles/me`),console.log("AuthService: Has access token:",!!this._accessToken),rs(`${LOYALTY_API}/api/v1/loyaltyprofiles/me`,this._accessToken,"GET").then(e=>{console.log("AuthService: \u2713 Loyalty API response:",e),this._loyaltyId=parseInt(e?.userContact?.loyaltyProfileId),this._memberProfile=e?.userContact,console.log("AuthService: Loyalty ID:",this._loyaltyId),console.log("AuthService: Member profile loaded:",!!this._memberProfile)}).then(()=>{this._isFinished=!0;let e={displayName:this.getDisplayName(),accountId:this._accountId,loginHint:this._loginHint,loyaltyId:this._loyaltyId};console.log("AuthService: \u2713\u2713\u2713 Authentication complete",e),this.emit("authenticated",e),this.emit("ended",{})}).catch(e=>{console.error("AuthService: \u2717 fetchAndSaveUserData ERROR:",e),console.error("AuthService: Error type:",e.constructor.name),e instanceof mt?(console.error("AuthService: RestError details:",{status:e.status,message:e.message}),this.emit("error",e)):e instanceof pt?(console.error("AuthService: BeternaError details:",e),this.emit("error",e)):(console.error("AuthService: Generic error, emitting AppError"),this.emit("error",new Ke("me",Le.FATAL)))})}async signIn(){await this._ensureInitialized(),this.msalInstance.loginRedirect(this._loginRequest)}signOut(){this.emit("signingOut",{});let e=this.msalInstance.getAccountByHomeId(this._accountId);this.msalInstance.logout({account:e})}get isAuthenticated(){return this._accessToken?.length>5}get isMember(){return this.isAuthenticated&&this._loyaltyId>0}get accessToken(){return this._accessToken}get accountId(){return this._accountId}get loginHint(){return this._loginHint}getDisplayName(){if(this._memberProfile)return`${this._memberProfile.firstName} ${this._memberProfile.lastName}`;if(!this._idTokenClaims)return null;let e="";return this._idTokenClaims.given_name&&(e+=this._idTokenClaims.given_name+" "),this._idTokenClaims.family_name&&(e+=this._idTokenClaims.family_name+" "),e}get isFinished(){return this._isFinished}get firstName(){return this._idTokenClaims?.given_name}get memberProfile(){return this._memberProfile}get lastName(){return this._idTokenClaims?.family_name}get email(){return this._idTokenClaims?.emails?.[0]||this._idTokenClaims?.email}get loyaltyId(){return this._loyaltyId}},ss=(()=>{if(window.AuthService)return window.AuthService;let t=new Ri;return window.AuthService=t,t})();var L=ss;var he=Vue.reactive({signInRequested:!1,displayName:null,loyaltyId:null,accountId:null,loginHint:null});function da(){return new MutationObserver(([e])=>{let{requestSignIn:i,displayName:n,loyaltyId:a,accountId:r,loginHint:l}=JSON.parse(e.target.dataset.authentication)??{};he.displayName=n??null,he.loyaltyId=a??null,he.accountId=r??null,he.loginHint=l??null,he.signInRequested=i!=null}).observe(document.body,{attributes:!0,attributeFilter:["data-authentication"]}),{authObserver:{signInRequested:Vue.computed(()=>he.signInRequested),displayName:Vue.computed(()=>he.displayName),loyaltyId:Vue.computed(()=>he.loyaltyId),accountId:Vue.computed(()=>he.accountId),loginHint:Vue.computed(()=>he.loginHint)},update:e=>{document.body.dataset.authentication=JSON.stringify(e)}}}var pa={name:"AuthStatus",components:{Modal:It},template:`
110    <div class="header__profile">
111      <button
112        v-if="!isAuthenticated && !isLoading"
113        @click="isSplitOpen = true"
114        class="header__icon header__icon--user"
115        :title="$t('authStatus.login')">
116        <i class="icon-user"></i>
117      </button>
118
119      <button
120        v-else-if="isAuthenticated && !isLoading"
121        @click="showMenu = !showMenu"
122        class="header__icon header__icon--user"
123        ref="loyaltyIcon"
124        :title="showMenu ? $t('authStatus.closeMenu') : $t('authStatus.openMenu')">
125        <span class="hide-xs-up" data-sl="mask">{{ adjustedDisplayName('initials') }}</span>
126        <span class="hide-xs-down hide-md-up" data-sl="mask">{{ adjustedDisplayName('short') }}</span>
127        <span class="hide-md-down" data-sl="mask">{{ adjustedDisplayName('full') }}</span>
128        <i :class="showMenu ? 'active' : ''" class="icon-caret-down"></i>
129      </button>
130
131      <div v-else class="header__icons--dots">&nbsp;</div>
132
133      <transition name="fade">
134        <nav v-show="showMenu" class="header__loyalty-nav" ref="loyaltyNav">
135          <template v-if="hasLoyaltyProfile && !IS_BOOKING">
136            <a :href="PREFIX + '/loyalty/profile/#'" @click="showMenu = false">{{ $t('authStatus.myProfile') }}</a>
137            <a :href="PREFIX + '/loyalty/profile/#/reservations'" @click="showMenu = false">{{ $t('authStatus.myBookings') }}</a>
138            <a :href="PREFIX + '/loyalty/profile/#/activity'" @click="showMenu = false">{{ $t('authStatus.pointsActivity') }}</a>
139            <a :href="PREFIX + '/loyalty/profile/#/awards'" @click="showMenu = false">{{ $t('authStatus.MaiStarRewards') }}</a>
140          </template>
141          <hr v-if="hasLoyaltyProfile && !IS_BOOKING">
142          <button @click="$AuthService.signOut()">{{ $t('authStatus.logout') }}</button>
143        </nav>
144      </transition>
145    </div>
146
147    <teleport to="body">
148      <Modal v-if="!isAuthenticated" :isOpen="isSplitOpen" @closeModal="isSplitOpen = false" :title="$t('loyaltySplit.title')">
149        <div class="grid login-split">
150          <div class="col-12 col-sm-6 col-md-5 col-xl-4 offset-md-7 offset-xl-8 order-sm-2 login-split__auth">
151            <h4>{{ $t('loyaltySplit.accessAccount') }}</h4>
152            <p>{{ $t('loyaltySplit.signInText') }}</p>
153            <button class="button button--maistar button--block" @click="e => { startLoading('authStatus'); $AuthService.signIn() }">
154              {{ $t('loyaltySplit.signIn') }}
155            </button>
156
157            <h4>{{ $t('loyaltySplit.newHere') }}</h4>
158            <p>{{ $t('loyaltySplit.joinText') }}</p>
159            <button class="button button--outline button--block" @click="redirectToSignup">
160              {{ $t('loyaltySplit.register') }}
161            </button>
162          </div>
163
164          <div class="col-12 col-sm-6 order-sm-1 login-split__benefits">
165            <p>{{ $t('loyaltySplit.accessText') }}</p>
166            <ul class="no-bullets" v-html="$t('loyaltySplit.benefits')"></ul>
167          </div>
168        </div>
169      </Modal>
170    </teleport>
171  `,setup(t,{emit:e}){let i=Vue.ref(!0),n=Vue.ref(!1),a=Vue.ref(!1),r=Vue.ref(!1),l=Vue.ref(""),s=Vue.ref(null),p=Vue.ref(null),u=Vue.ref(null),{authObserver:b}=da(),y=Vue.ref(!1),v=Vue.computed(()=>s.value!==null);function z(j){switch(j){case"initials":return l.value.split(" ").map(O=>O[0]).join("");case"short":return l.value.split(" ")[0];default:return l.value}}function _(){ze("authStatus");let j=IS_BOOKING&&!!location.href.match(/\/step5/);L.redirectSignup(j?{redirectUri:`${WWW_HOME_URL.replace(/\/+$/,"")}${PREFIX}/loyalty/profile/`}:{})}return Vue.watch(r,j=>{j&&window.matchMedia("(max-width: 768px)").matches?document.body.classList.add("overflow-hidden"):document.body.classList.remove("overflow-hidden")}),document.addEventListener("click",j=>{r.value&&!p.value.contains(j.target)&&!u.value.contains(j.target)&&(r.value=!1)},{passive:!0}),Vue.onMounted(()=>{L.on("ended",j=>{i.value=!1}),L.isFinished&&(i.value=!1),L.on("error",j=>{console.error(j),i.value=!1,be(j.detail)}),L.on("authenticated",j=>{l.value=j.detail.displayName,i.value=!1,y.value=!0,Number.isInteger(j.detail.loyaltyId)?s.value=j.detail.loyaltyId:console.warn("Incomplete profile"),document.body.dataset.authentication=JSON.stringify(j.detail)}),L.isAuthenticated&&(y.value=!0,l.value=L.getDisplayName(),i.value=!1,document.body.dataset.authentication=JSON.stringify({displayName:L.getDisplayName(),accountId:L.accountId,loyaltyId:L.loyaltyId}))}),Vue.watch(b.signInRequested,()=>{L.signIn()}),window.addEventListener("pageshow",j=>{j.persisted&&(ht("authStatus"),a.value=!1,i.value=!1)}),{PREFIX,IS_BOOKING,isLoading:i,isAuthenticated:y,hasLoyaltyProfile:v,isModalOpen:n,isSplitOpen:a,showMenu:r,loyaltyIcon:p,loyaltyNav:u,startLoading:ze,redirectToSignup:_,adjustedDisplayName:z}}};
171var de={en:{all:"All",filters:"Filters",clearFilters:"Clear filters",applyFilters:"Apply filter",showFilters:"Show filters",closeFilters:"Close filters",destinations:"Destinations",interests:"Interests",destination:"Destination",brands:"Brands",types:"Types",starRating:"Star rating",back:"Dashboard",services:"Facilities/Services",sortBy:"Sort by",recommendedFirst:"Sort by recommended",lowFirst:"Price - lowest first",highFirst:"Price - highest first",lowPointsFirst:"Points - lowest first",highPointsFirst:"Points - highest first",noResults:"No results, modify filter",bookNow:"Book Now",from:"from",perUnit:"per unit",error:"Error",holidayTypeFilter:"Type of holidays",property:"Property",discoverMore:"Discover more",confirm:"Confirm",canceled:"Canceled",notCanceled:"Active",formSubmitSuccess:"You have successfully submitted the form.",loadMore:"Load more",results:"Results: ",allDestinations:"All destinations",allBrands:"All brands",allInterests:"All interests",error403:{title:"403",text:"You have to be logged in to access this page.",goHome:"Home"},searchApp:{placeholder:"Search properties, offers, ideas ...",suggestionsTitle:"Find your perfect getaway",showFilters:"Show filters",clearFilters:"Clear all",applyFilters:"Apply filter",cancelFilters:"Cancel",resultType:{offer:"Special offer"},filters:{propertyType:"Property type",destination:"Destination",brand:"Brand"},noResults:"There are no results for this query.",showing:"Showing",outOf:"out of",results:"results"},focusedSearch:{placeholder:"Find Your Stay",showAll:"Show all",properties:"Properties",specialOffers:"Special Offers",searchFor:"Search for:"},bookingWidget:{planYourStay:"Plan your stay",whereAreYouGoing:"Where are you going?",noResultsTitle:"There are no results for this keyword.",noResultsMessage:"Select one of the following or enter a different keyword."},propertyTypes:{hotels:"Hotels",resorts:"Resorts",camping:"Campsites"},campingTypes:{pitches:"Pitches","mobile-homes":"Mobile Homes",glamping:"Glamping"},checkRates:{stepTitle1:"Where do you want to go?",stepTitle2:"Which hotel, resort or campsite?",stepTitle3:"Select dates",stepTitle4:"Select number of guests",checkRatesButton:"Check rates",backLabel:"Back",closeButtonLabel:"Close",allDestinations:"Select all destinations",allProperties:"Select all in ",allPropertiesInDestination:"All properties in current destination",hotelsResorts:"Hotels and resorts",campsites:"Campsites",noProperties:"No properties to show.",serachOverview:"Search overview",destination:"Destination:",edit:"Edit",nights:"nights"},offers:{nrOfAvailable:"offers available for your search",titleNoAvailable:"There are no special offers available for your search.",titleNoAvailableVariants:"The special offer has expired. Check out our active offers below",subtitleNoAvailable:"We recommend the following alternatives:",recommendedOffers:"Recommended special offers",minimumStayPrefix:"Minimum number of nights:",period:"Period:",filter:"Filter offers",allHolidays:"All holidays",allProperties:"All properties",from:"From",upTo:"Up to",recommended:"Recommended For You",popularNow:"Popular Right Now",allOffers:"All offers"},newsletter:{firstName:"First name *",lastName:"Last name *",titleAll:"Mr./Mrs.",titleMr:"Mr.",titleMrs:"Mrs.",email:"Email *",gender:"Title *",birthDate:"Date of birth",country:"Country",brands:"Types of accomodation *",language:"Newsletter language *",consent:"Keep me updated on news, offers and exclusive member deals.",info:"We respect your privacy and are committed to protecting your personal data. For more information about the protection of your personal data, please see our {privacyPolicy}.",privacyPolicy:"Privacy policy",register:"Register",submitSuccess:"Form submitted successfully."},contact:{title:"Contact form",subtitle:"You can also sen us your message or question via the contact form. We will answer as soon as possible.",name:"Name and Surname*",email:"E-mail address*",subject:"Subject*",property:"Property",message:"Your message",send:"Send",requiredFields:"* Required fields",submitSuccess:"Form submitted successfully."},interestsTab:{title:"My Interests",brand:"Brand",destination:"Destination",holiday:"Type of holiday and interests",campsite:"Campsite",leadText:"Please fill in your travel interests.",dataProtection:'<p>We respect your privacy and are committed to protecting your personal data. We collect different types of personal data about you, depending on your relationship with us and the services you use. In any case, we collect and process your personal data for legitimate purposes and on a valid legal basis.</p><p>For more information about the protection of your personal data, please see our <a href="/privacy-policy/">Privacy Notice</a>.</p>',updateSuccess:"You have successfully updated your interests."}
171,preferencesTab:{title:"Preferences",leadText:"Kindly note that not all options are universally available across all properties and at all times.",bedding:"Pillows and bedding preferences",notAvailableInCampsites:"* Not available in campsites.",rooms:"Room preferences",roomsExtra:"Upon availability, based on the hotel and room type you have booked.",services:"Additional services",servicesExtra:"Free of charge, available only in specific properties.",food:"Food preferences",childEquipment:"Additional baby and children\u2019s equipment (Free of charge)",pickupAtReception:"*Pick up at the hotel reception.",typeHere:"Type here",updateSuccess:"You have successfully updated your stay preferences."},extraServices:{title:"Additional services (extra charge)",text:"Do you have any additional requests for the hotel?",footer:"e.g. Balloons, cake, flowers or drinks in the room"},preArrivalForm:{},activity:{activity:"Activity",youHave:"you have: ",expiration:"Expiration DATE.. do we have this?",transferPoints:"transfer points",missingPoints:"obtain missing points",pointsActivity:"Points Activity",date:"Date",source:"Source",points:"Points",noActivity:"Currently, there is no points activity.",title:"Points activity",transactionTypes:["Stay","Survey","Registration","Contact Edited","Points Transfer","Other","Points Claim","Points Redemption","Expired","Additional consumption"]},activityPointsCommon:{requiredFields:"* These fields are required",send:"Send"},awards:{all:"All",recommended:"Recommended rewards",title:"MaiStar Rewards",recommendedTitle:"Recommended awards for your next stay",points:"points",discoverMore:"Discover more",available:"Available",unavailable:"Unavailable",noReservations:"You have no upcoming reservations. It is time for your new holidays."},dashboard:{title:"Dashboard",welcome:"Welcome,",displayName:"Display Name",level:"Level",editprofile:"Edit profile",membershipNumber:"Membership Number",memberSince:"Member Since",viewPoints:"View points activity",viewBookings:"view all bookings",enlargeQr:"Enlarge QR code",youHave:"You have",points:"points",myBookings:"My Bookings",maistarRewards:"MaiStar Rewards",rewards:"Rewards",viewRewards:"view all rewards",noRewards:"no rewards",moreAboutStatus:"More about you status",scrollDown:"Scroll down",expiresOn:"Expires on:",personalDetails:"Personal details",addToAppleWallet:"Add to Apple Wallet",addToGoogleWallet:"Add to Google Wallet"},obtainPoints:{mainTitle:"Obtain missing points",title:"Missing points for a booking?<br>Please submit a missing points request.",formTitle:"Please fill out this form with your data",property:"Property *",arrivalDate:"Arrival date *",departureDate:"Departure date *",pointsAwardedTime:"Points will be awarded 72 hours after checkout.",bookingReferenceNumber:"Booking reference number *",invoiceAmount:"Invoice amount *",comment:"Other comments & requests",success:"Your request was submitted successfully."},transferPoints:{mainTitle:"Transfer points",title:"How many points would you like to transfer?",formTitle:"Account to which you would like to transfer points",receiverFirstName:"First name *",receiverLastName:"Last name *",receiverEmail:"E-mail address *",receiverLoyaltyId:"Loyalty card number *",allPointsSelection:"All points",otherAmountSelection:"Other amount",pointsAvailable:"Points available: ",points2Transfer:"Points to transfer: ",success:"Your request was submitted successfully."},activation:{success:["If we found the email in database we sent you the link.","It appears you already have an account. Please log in."]},reservations:{title:"Bookings",property:"Property",check:"Check in / Check out",rate:"Rate",status:"Status",checkRates:"Check rates",noReservations:"You have no upcoming reservations.",newHolidays:"It is time for your new holidays.",noPropertyTitle:"No property name found. PhobsID: ",bookingRef:"Booking ref:",memberRate:"Total member rate",discoverExperiences:"Discover new experiences",activeReservations:"Active reservations",pastReservations:"Past reservations"}},hr:{all:"Sve",filters:"Filtri",clearFilters:"Izbri\u0161i filtre",applyFilters:"Primijeni filtar",showFilters:"Prika\u017Ei filtre",closeFilters:"Zatvori filtre",destinations:"Odredi\u0161ta",interests:"Interesi",destination:"Odredi\u0161te",brands:"Brendovi",types:"Vrste",starRating:"Broj zvjezdica",back:"Nadzorna plo\u010Da",services:"Sadr\u017Eaji/usluge",s
171ortBy:"Razvrstaj prema",recommendedFirst:"Razvrstaj prema preporukama",lowFirst:"Cijena - od najni\u017Ee",highFirst:"Cijena - od najvi\u0161e",lowPointsFirst:"Bodovi - od najmanjeg broja",highPointsFirst:"Bodovi - od najve\u0107eg broja",noResults:"Nema rezultata, promijenite filtar",bookNow:"Rezerviraj sada",from:"od",perUnit:"po jedinici",error:"Pogre\u0161ka",holidayTypeFilter:"Vrsta odmora",property:"Objekt",discoverMore:"Otkrijte vi\u0161e",confirm:"Potvrdi",canceled:"Otkazano",notCanceled:"Aktivno",formSubmitSuccess:"Uspje\u0161no ste poslali obrazac.",loadMore:"U\u010Ditaj vi\u0161e",results:"Rezultati: ",allDestinations:"Sve destinacije",allBrands:"Svi brendovi",allInterests:"Svi interesi",error403:{title:"403",text:"Morate biti prijavljeni da biste pristupili ovoj stranici.",goHome:"Po\u010Detna"},searchApp:{placeholder:"Pretra\u017Eujte objekte, ponude, ideje ...",suggestionsTitle:"Prona\u0111ite svoj savr\u0161eni odmor",showFilters:"Prika\u017Ei filtre",clearFilters:"Poni\u0161ti sve",applyFilters:"Primijeni filtar",cancelFilters:"Odustani",resultType:{offer:"Posebna ponuda"},filters:{propertyType:"Vrsta objekta",destination:"Odredi\u0161te",brand:"Marka"},noResults:"Nema rezultata za ovaj upit.",showing:"Prikazuje se",outOf:"od",results:"rezultata"},focusedSearch:{placeholder:"Prona\u0111ite svoj boravak",showAll:"Prika\u017Ei sve",properties:"Smje\u0161taj",specialOffers:"Posebne ponude",searchFor:"Tra\u017Ei:"},bookingWidget:{planYourStay:" Planirajte svoj boravak",whereAreYouGoing:"Kamo putujete?",noResultsTitle:"Nema rezultata za ovu klju\u010Dnu rije\u010D.",noResultsMessage:"Odaberite jednu od sljede\u0107ih opcija ili unesite drugu klju\u010Dnu rije\u010D."},propertyTypes:{hotels:"Hoteli",resorts:"Resorti",camping:"Camping"},campingTypes:{pitches:"Parcele","mobile-homes":"Mobilne ku\u0107ice",glamping:"Glamping"},checkRates:{stepTitle1:"Gdje \u017Eelite i\u0107i?",stepTitle2:"Koji hotel, resort ili kamp?",stepTitle3:"Odaberite datume",stepTitle4:"Odaberite broj gostiju",checkRatesButton:"Provjerite cijene",backLabel:"Natrag",closeButtonLabel:"Zatvori",allDestinations:"Odaberi sve destinacije",allProperties:"Odaberite sve objekte na destinaciji",allPropertiesInDestination:"Svi objekti u odabranoj destinaciji",hotelsResorts:"Hoteli i resorti",campsites:"Kampovi",noProperties:"Nema objekata za prikaz.",serachOverview:"Pregled pretrage",destination:"Odredi\u0161te:",edit:"Uredi",nights:"no\u0107i"},offers:{nrOfAvailable:"ponude/a dostupne/o za pretragu",titleNoAvailable:"U okviru va\u0161eg pretra\u017Eivanja nije dostupna nijedna posebna ponuda.",titleNoAvailableVariants:"Istekla je posebna ponuda. Pogledajte na\u0161e aktivne ponude u nastavku",subtitleNoAvailable:"Preporu\u010Dujemo sljede\u0107e ostale mogu\u0107nosti:",recommendedOffers:"Preporu\u010Dene posebne ponude",minimumStayPrefix:"Minimalni broj no\u0107enja:",period:"Period:",filter:"Filter ponuda",allHolidays:"Sve vrste odmora",allProperties:"Svi objekti",from:"Od",upTo:"Do",recommended:"Preporu\u010Deno za vas",popularNow:"Popularno sada",allOffers:"Sve ponude"},newsletter:{firstName:"Ime *",lastName:"Prezime *",titleAll:"Gospodin/gospo\u0111a",titleMr:"Gospodin",titleMrs:"Gospo\u0111a",email:"E-po\u0161ta *",gender:"Titula *",birthDate:"Datum ro\u0111enja",country:"Dr\u017Eava",brands:"Vrste smje\u0161taja *",language:"Jezik biltena *",consent:"\u017Delim primati obavijesti o novostima, ponudama i ekskluzivnim ponudama za \u010Dlanove.",info:"Po\u0161tujemo va\u0161u privatnost i obvezujemo se na za\u0161titu va\u0161ih osobnih podataka.         Vi\u0161e informacija o za\u0161titi osobnih podataka potra\u017Eite u na\u0161oj {IzjaviOPrivatnosti}.",privacyPolicy:"izjava o privatnosti",register:"Registracija",submitSuccess:"Obrazac je uspje\u0161no poslan."},contact:{title:"Obrazac za kontakt",subtitle:"Tako\u0111er nam mo\u017Eete poslati poruku ili pitanje putem obrasca za kontakt. Odgovorit \u0107emo vam u najkra\u0107em mogu\u0107em roku.",name:"Ime i prezime*",email:"Adresa e-po\u0161te*",subject:"Predmet*",property:"Objekt",message:"Va\u0161a poruka",send:"Po\u0161alji",requiredFields:"* Obavezna polja",submitSuccess:"Obrazac je uspje\u0161no poslan."},interestsTab:{title:"Moji interesi",brand:"Brend",destination:"Odredi\u0161te",holiday:"Vrsta odmora i interesi",campsite:"Kamp",leadText:"Ozna\u010Dite svoje interese tijekom putovanja",dataProtection:'<p>Po\u0161tujemo va\u0161u privatnost i obvezujemo se na za\u0161titu va\u0161ih osobnih pod
171ataka. Prikupljamo razli\u010Dite vrste va\u0161ih osobnih podataka ovisno o odnosu koji imate s nama i uslugama koje upotrebljavate. U svakom slu\u010Daju va\u0161e osobne podatke prikupljamo i obra\u0111ujemo sa svrhom i prema zakonu.</p><p>Vi\u0161e informacija o za\u0161titi osobnih podataka potra\u017Eite u na\u0161oj <a href="/hr/politika-privatnosti/">Izjavi o privatnosti</a>.</p>',updateSuccess:"Uspje\u0161no ste a\u017Eurirali svoje interese."},preferencesTab:{title:"Preferencije",leadText:"Napominjemo da nisu sve opcije dostupne u svakom objektu i u svakom trenutku.",bedding:"Odabir preferencija za jastuk i posteljinu",notAvailableInCampsites:"* Nije dostupno u kampovima.",rooms:"Odabir preferencija za sobu",roomsExtra:"Ovisno o raspolo\u017Eivosti, na temelju va\u0161eg odabira hotela i sobe.",services:"Dodatne usluge",servicesExtra:"Bez nadoplate, dostupno samo u odre\u0111enim objektima.",food:"Odabir preferencija za hranu ",childEquipment:"Dodatna oprema za bebe i djecu (besplatno)",pickupAtReception:"* Preuzimanje na recepciji hotela.",typeHere:"upi\u0161ite ovdje",updateSuccess:"Uspje\u0161no ste a\u017Eurirali svoje preferencije."},extraServices:{title:"Dodatne usluge (uz naplatu) ",text:"Imate li dodatnih zahtjeva za hotel?",footer:"npr. baloni, torta, cvije\u0107e ili pi\u0107e u sobi"},activity:{activity:"Aktivnost",youHave:"imate:",expiration:"DATUM isteka... imamo li ovo?",transferPoints:"prenesite bodove",missingPoints:"prikupite bodove koji nedostaju",pointsActivity:"Aktivirani bodovi",date:"Datum",source:"Izvor",points:"Bodovi",noActivity:"Trenuta\u010Dno nema aktiviranih bodova.",title:"Aktivirani bodovi",transactionTypes:["Boravak","Anketa","Registracija","Kontakt ure\u0111en","Prijenos bodova","Ostalo","Prikupljanje bodova","Iskori\u0161tavanje bodova","Isteklo","Vanpansionska potro\u0161nja"]},activityPointsCommon:{requiredFields:"* Ova su polja obavezna",send:"Po\u0161alji"},awards:{all:"Sve",recommended:"Preporu\u010Dene nagrade",title:"MaiStar Rewards",recommendedTitle:"Preporu\u010Dene nagrade za va\u0161 sljede\u0107i boravak",points:"bodovi",discoverMore:"Otkrijte vi\u0161e",available:"Dostupno",unavailable:"Nedostupno",noReservations:"Nemate nadolaze\u0107ih rezervacija. Vrijeme je za va\u0161 novi odmor."},dashboard:{title:"Nadzorna plo\u010Da",welcome:"Dobro do\u0161li,",displayName:"Prika\u017Ei ime i prezime",level:"Razina",editprofile:"Uredi profil",membershipNumber:"Broj \u010Dlanstva",memberSince:"\u010Clan od",viewPoints:"Prika\u017Ei aktivirane bodove",viewBookings:"prika\u017Ei sve rezervacije",enlargeQr:"Pove\u0107aj QR kod",youHave:"Imate",points:"bodovi",myBookings:"Moje rezervacije",rewards:"Nagrade",maistarRewards:"MaiStar nagrade",viewRewards:"prika\u017Ei sve nagrade",noRewards:"nema nagrada",moreAboutStatus:"Vi\u0161e o va\u0161em statusu",scrollDown:"Pomaknite se prema dolje",expiresOn:"Datum isteka:",personalDetails:"Osobni podaci",addToAppleWallet:"Dodaj u Apple Nov\u010Danik",addToGoogleWallet:"Dodaj u Google Nov\u010Danik"},obtainPoints:{mainTitle:"Prikupite bodove koji nedostaju",title:"Nedostaje vam bodova za rezervaciju?<br>Po\u0161aljite zahtjev za bodove koji nedostaju.",formTitle:"Ispunite ovaj obrazac svojim podacima",property:"Objekt *",arrivalDate:"Datum dolaska *",departureDate:"Datum polaska *",pointsAwardedTime:"Bodovi \u0107e biti dodani 72 sata nakon odjave.",bookingReferenceNumber:"Referentni broj rezervacije *",invoiceAmount:"Iznos ra\u010Duna *",comment:"Ostali komentari i zahtjevi",success:"Va\u0161 je zahtjev uspje\u0161no poslan."},transferPoints:{mainTitle:"Prenesi bodove",title:"Koliko bodova \u017Eelite prenijeti?",formTitle:"Ra\u010Dun na koji \u017Eelite prenijeti bodove",receiverFirstName:"Ime *",receiverLastName:"Prezime *",receiverEmail:"Adresa e-po\u0161te *",receiverLoyaltyId:"Broj kartice za program vjernosti",allPointsSelection:"Sve bodove",otherAmountSelection:"Drugi iznos",pointsAvailable:"Dostupni bodovi: ",points2Transfer:"Bodovi za prijenos: ",success:"Va\u0161 je zahtjev uspje\u0161no poslan."},activation:{success:[" Ako smo prona\u0161li e-po\u0161tu u bazi podataka, poslali smo vam poveznicu."," \u
171010Cini se da ve\u0107 imate ra\u010Dun. Prijavite se."]},reservations:{title:"Rezervacije",property:"Objekt",check:"Prijava/odjava",rate:"Cijena",status:"Status",checkRates:"Provjerite cijene",noReservations:"Nemate nadolaze\u0107ih rezervacija.",newHolidays:"Vrijeme je za va\u0161 novi odmor.",noPropertyTitle:"Nema prona\u0111enih naziva objekata. PhobsID: ",bookingRef:"Ref. br. rezervacije:",memberRate:"Ukupna cijena za \u010Dlanove",discoverExperiences:"Otkrijte nova iskustva",activeReservations:"Aktivne rezervacije",pastReservations:"Prija\u0161nje rezervacije"}},de:{all:"Alle",filters:"Filter",clearFilters:"Filter l\xF6schen",applyFilters:"Filter anwenden",showFilters:"Filter anzeigen",closeFilters:"Filter schlie\xDFen",destinations:"Reiseziele",interests:"Interessen",destination:"Reiseziel",brands:"Marken",types:"Typen",starRating:"Sterne-Bewertung",back:"Dashboard",services:"Einrichtungen/Dienstleistungen",sortBy:"Sortiere nach",recommendedFirst:"Sortieren nach Empfehlung",lowFirst:"Preis - niedrigster zuerst",highFirst:"Preis - h\xF6chster zuerst",lowPointsFirst:"Punkte - niedrigste zuerst",highPointsFirst:"Punkte - h\xF6chste zuerst",noResults:"Keine Ergebnisse, Filter \xE4ndern",bookNow:"Jetzt buchen",from:"von",perUnit:"pro Einheit",error:"Fehler",holidayTypeFilter:"Art des Urlaubs",property:"Objekt",discoverMore:"Mehr entdecken",confirm:"Best\xE4tigen",canceled:"Storniert",notCanceled:"Aktiv",formSubmitSuccess:"Sie haben das Formular erfolgreich versendet.",loadMore:"Mehr laden",results:"Ergebnisse: ",allDestinations:"Alle Reiseziele",allBrands:"Alle marken",allInterests:"Alle Interessen",error403:{title:"403",text:"Sie m\xFCssen angemeldet sein, um auf diese Seite zugreifen zu k\xF6nnen.",goHome:"Startseite"},searchApp:{placeholder:"Suchen nach Immobilien, Angeboten, Ideen ...",suggestionsTitle:"Finden Sie Ihren perfekten Kurzurlaub",showFilters:"Filter anzeigen",clearFilters:"Alles l\xF6schen",applyFilters:"Filter anwenden",cancelFilters:"Stornieren",resultType:{offer:"Sonderangebot"},filters:{propertyType:"Art der Immobilie",destination:"Reiseziel",brand:"Marke"},noResults:"Es gibt keine Ergebnisse f\xFCr diese Abfrage.",showing:"Gezeigt",outOf:"von",results:"ergebnisse"},focusedSearch:{placeholder:"Ihren Aufenthalt finden",showAll:"Alle anzeigen",properties:"Unterkunft",specialOffers:"Sonderangebote",searchFor:"Suchen nach:"},bookingWidget:{planYourStay:"Planen Sie Ihren Aufenthalt",whereAreYouGoing:"Wohin m\xF6chten Sie?",noResultsTitle:"Keine Ergebnisse f\xFCr dieses Stichwort gefunden.",noResultsMessage:"W\xE4hlen Sie eine der folgenden Optionen aus oder geben Sie ein anderes Stichwort ein."},propertyTypes:{hotels:"Hotels",resorts:"Resorts",camping:"Camping"},campingTypes:{pitches:"Stellpl\xE4tze","mobile-homes":"Mobilheime",glamping:"Glamping"},checkRates:{stepTitle1:"Wohin wollen Sie gehen?",stepTitle2:"Welches Hotel, Resort oder Campingplatz?",stepTitle3:"Daten ausw\xE4hlen",stepTitle4:"G\xE4steanzahl w\xE4hlen",checkRatesButton:"Preise pr\xFCfen",backLabel:"Zur\xFCck",closeButtonLabel:"Schlie\xDFen",allDestinations:"Alle Reiseziele ausw\xE4hlen",allProperties:"Alle ausw\xE4hlen in",allPropertiesInDestination:"Alle Unterkunft am aktuellen Ziel",hotelsResorts:"Hotels und Resorts",campsites:"Campingpl\xE4tze",noProperties:"Keine Objekte zu zeigen.",serachOverview:"Such\xFCbersicht",destination:"Reiseziel:",edit:"Bearbeiten",nights:"n\xE4chte"},offers:{nrOfAvailable:"Angebote zur Suche verf\xFCgbar",titleNoAvailable:"F\xFCr Ihre Suche sind keine Sonderangebote verf\xFCgbar.",titleNoAvailableVariants:"Das Sonderangebot ist abgelaufen, sehen Sie sich unsere aktiven Angebote an",subtitleNoAvailable:"Wir empfehlen die folgenden anderen Optionen:",recommendedOffers:"Empfohlene Sonderangebote",minimumStayPrefix:"Mindestanzahl an N\xE4chten:",period:"Zeitraum:",filter:"Angebote filtern",allHolidays:"Alle Arten von Urlauben",allProperties:"Alle Objekte",from:"Ab",upTo:"Bis zu",recommended:"F\xFCr Sie empfohlen",popularNow:"Aktuell beliebt",allOffers:"Alle Angebote"},newsletter:{firstName:"Vorname *",lastName:"Nachname *",titleAll:"Herr/Frau",titleMr:"Herr",titleMrs:"Frau",email:"E-Mail *",gender:"Anrede *",birthDate:"Geburtsdatum",country:"Land",brands:"Unterkunftsarten *",language:"Newslettersprache *",consent:"Halten Sie mich auf dem Laufendem \xFCber Neuigkeiten, Angebote und exklusive Angebote.",info:"Wir respektieren Ihre Privatsph\xE4re und verpflichten uns, Ihre personenbezogenen Daten zu sch\xFCtzen. Weitere Informationen zum Schutz Ihrer personenbezogenen Daten finden Sie in unseren {privacyPlocy}",privacyPolicy:"Datenschutzbestimmungen",register:"Anmelden",submitSuccess:"Formular erfolgreich versendet."},contact:{title:"Kontaktformular",subtitle:"Sie k\xF6nnen uns auch \xFCber das Kontaktformular eine Nachricht oder Frage zukommen lassen. Wir werden Ihnen so schnell wie m\xF6glich antworten.",name:"Vor- und Nachname*",email:"E-Mail-Addresse*",subject:"Betreff*",property:"Objekt",message:"Ihre Nachricht",send:"Schicken",requiredFields:"* Pflichtfelder",submitSuccess:"Formular erfolgreich versendet."}
171,interestsTab:{title:"Meine Interessen",brand:"Marke",destination:"Reiseziel",holiday:"Art des urlaubs und interessen",campsite:"Campingplatz",leadText:"Bitte geben Sie Ihre Reiseinteressen ein.",dataProtection:'<p>Wir respektieren Ihre Privatsph\xE4re und verpflichten uns, Ihre personenbezogenen Daten zu sch\xFCtzen. Wir erheben verschiedene Arten von personenbezogenen Daten \xFCber Sie, abh\xE4ngig von Ihrer Beziehung zu uns und den von Ihnen genutzten Leistungen. Wir erheben und verarbeiten Ihre personenbezogenen Daten f\xFCr legitime Zwecke und auf einer g\xFCltigen Rechtsgrundlage.</p><p>Weitere Informationen zum Schutz Ihrer personenbezogenen Daten finden Sie in unserer <a href="/de/privatsphaere/"> Datenschutzerkl\xE4rung</a>.</p>',updateSuccess:"Sie haben Ihre Interessen erfolgreich aktualisiert."},preferencesTab:{title:"Pr\xE4ferenzen",leadText:"Bitte beachten Sie, dass nicht alle Optionen in allen Unterk\xFCnften und zu jeder Zeit allgemein verf\xFCgbar sind.",bedding:"Kissen- und Bettpr\xE4ferenzen",notAvailableInCampsites:"*Auf Campingpl\xE4tzen nicht verf\xFCgbar.",rooms:"Zimmerpr\xE4ferenzen",roomsExtra:"Je nach Verf\xFCgbarkeit und dem von Ihnen gebuchten Hotel und Zimmertyp.",services:"Zusatzleistungen",servicesExtra:"Kostenlos, nur in bestimmten Unterk\xFCnften verf\xFCgbar.",food:"Essenspr\xE4ferenzen",childEquipment:"Zus\xE4tzliche Baby- und Kinderausstattung (kostenlos)",pickupAtReception:"*Abholung an der Hotelrezeption.",typeHere:"hier eintragen",updateSuccess:"Sie haben Ihre Pr\xE4ferenzen erfolgreich aktualisiert."},extraServices:{title:"Zus\xE4tzliche leistungen (gegen geb\xFChr) ",text:"Haben Sie noch weitere W\xFCnsche an das Hotel?",footer:"z.B. Luftballons, Kuchen, Blumen oder Getr\xE4nke im Zimmer"},activity:{activity:"Aktivit\xE4t",youHave:"Sie haben: ",expiration:"ABLAUFDATUM... haben wir das?",transferPoints:"punkte \xFCbertragen",missingPoints:"fehlende Punkte erhalten",pointsActivity:"Aktivierte Punkte",date:"Datum",source:"Quelle",points:"Punkte",noActivity:"Derzeit sind keine Punkte aktiviert.",title:"Aktivierte Punkte",transactionTypes:["Bleiben","Umfrage","Registration","Kontakt bearbeitet","Punkte\xFCbertragung","Sonstiges","Punktesammlung","Punkteeinl\xF6sung","Abgelaufen","Zusatzleistungen"]},activityPointsCommon:{requiredFields:"* Diese Felder sind Pflichtfelder",send:"Schicken"},awards:{all:"Alle",recommended:"Empfohlene Pr\xE4mien",title:"MaiStar Preise",recommendedTitle:"Empfohlene Preise f\xFCr Ihren n\xE4chsten Aufenthalt",points:"Punkte",discoverMore:"Mehr entdecken",available:"Verf\xFCgbar",unavailable:"Nicht verf\xFCgbar",noReservations:"Sie haben keine anstehenden Buchungen. Es ist Zeit f\xFCr Ihren neuen Urlaub."},dashboard:{title:"Dashboard",welcome:"Willkommen",displayName:"Vor- und Nachnamen anzeigen",level:"Stufe",editprofile:"Profil bearbeiten",membershipNumber:"Mitgliedsnummer",memberSince:"Mitglied seit",viewPoints:"Aktivierte Punkte anzeigen",viewBookings:"alle Buchungen anzeigen",enlargeQr:"QR-Code vergr\xF6\xDFern",youHave:"Sie haben",points:"punkte",myBookings:"Meine Buchungen",rewards:"Preise",maistarRewards:"MaiStar Rewards",viewRewards:"alle Preise anzeigen",noRewards:"keine Preise",moreAboutStatus:"Mehr \xFCber Ihren Status",scrollDown:"Nach unten scrollen",expiresOn:"L\xE4uft ab am:",personalDetails:"Pers\xF6nliche Daten",addToAppleWallet:"Hinzuf\xFCgen zu Apple Wallet ",addToGoogleWallet:"Hinzuf\xFCgen zu Google Wallet "},obtainPoints:{mainTitle:"Fehlende Punkte erhalten",title:"Fehlende Punkte f\xFCr eine Buchung?<br>Senden Sie eine Anfrage f\xFCr fehlende Punkte.",formTitle:"Bitte, f\xFCllen Sie dieses Formular mit Ihren Daten aus",property:"Objekt *",arrivalDate:"Ankunftsdatum *",departureDate:"Abreisedatum *",pointsAwardedTime:"Die Punkte werden 72 Stunden nach dem Checkout hinzugef\xFCgt.",bookingReferenceNumber:"Buchungsreferenznummer *",invoiceAmount:"Rechnungsbetrag *",comment:"Andere Kommentare und Anfragen",success:"Ihre Anfrage wurde erfolgreich versendet."},transferPoints:{mainTitle:"Punkte \xFCbertragen",title:"Wie viele Punkte m\xF6chten Sie \xFCbertragen?",formTitle:"Konto, auf das Sie Punkte \xFCbertragen m\xF6chten",receiverFirstName:"Vorname *",receiverLastName:"Nachname *",receiver
171Email:"E-Mail-Addresse *",receiverLoyaltyId:"Treuekartennummer *",allPointsSelection:"Alle Punkte",otherAmountSelection:"Anderer Betrag",pointsAvailable:"Verf\xFCgbare Punkte: ",points2Transfer:"Zu \xFCbertragende Punkte",success:"Ihre Anfrage wurde erfolgreich versendet."},activation:{success:["If Wenn wir eine E-Mail in der Datenbank gefunden haben, haben wir Ihnen einen Link gesendet.","It Anscheinend haben Sie bereits ein Konto. Bitte melden Sie sich an."]},reservations:{title:"Buchung",property:"Objekt",check:"Check in / Check out",rate:"Preis",status:"Status",checkRates:"Preise pr\xFCfen",noReservations:"Sie haben keine anstehenden Buchungen.",newHolidays:"Es ist Zeit f\xFCr Ihren neuen Urlaub.",noPropertyTitle:"Kein Objektname gefunden. PhobsID: ",bookingRef:"Buchungsreferenz:",memberRate:"Gesamtkosten f\xFCr Mitglieder",discoverExperiences:"Entdecken Sie neue Erfahrungen",activeReservations:"Aktive Buchungen",pastReservations:"Fr\xFChere Buchungen"}},it:{all:"Tutto",filters:"Filtri",clearFilters:"Cancella filtri",applyFilters:"Applica il filtro",showFilters:"Mostra filtri",closeFilters:"Chiudi i filtri.",destinations:"Destinazioni",interests:"Interessi",destination:"Destinazione",brands:"Brand",types:"Tipi",starRating:"Numero di stelle",back:"Pannello di controllo",services:"Impianti e servizi",sortBy:"Ordina per",recommendedFirst:"Ordina per Consigliati",lowFirst:"Prezzo - dal pi\xF9 basso",highFirst:"Prezzo - dal pi\xF9 alto",lowPointsFirst:"Punti - dal pi\xF9 basso",highPointsFirst:"Punti - dal pi\xF9 alto",noResults:"Nessun risultato, modifica il filtro",bookNow:"Prenota ora",from:"da",perUnit:"per unit\xE0",error:"Errore",holidayTypeFilter:"Tipo di vacanze",property:"Struttura",discoverMore:"Maggiori informazioni",confirm:"Conferma",canceled:"Annullato",notCanceled:"Attivo",formSubmitSuccess:"Modulo inviato correttamente.",loadMore:"Carica altro",results:"Risultati:",allDestinations:"Tutte le destinazioni",allBrands:"Tutte le marche",allInterests:"Tutti gli interessi",error403:{title:"403",text:"Devi essere loggato per accedere a questa pagina.",goHome:"Home"},searchApp:{placeholder:"Ricerca strutture, offerte, idee ...",suggestionsTitle:"Trova la tua vacanza perfetta",showFilters:"Mostra filtri",clearFilters:"Cancella tutto",applyFilters:"Applica filtro",cancelFilters:"Cancella",resultType:{offer:"Offerta speciale"},filters:{propertyType:"Tipo di struttura",destination:"Destinazione",brand:"Brand"},noResults:"Nessun risultato per questa ricerca.",showing:"Presentazione",outOf:"di",results:"risultati"},focusedSearch:{placeholder:"Trova il tuo soggiorno",showAll:"Mostra tutto",properties:"Proprieta",specialOffers:"Offerte speciali",searchFor:"Cerca:"},bookingWidget:{planYourStay:"Pianificate il vostro soggiorno",whereAreYouGoing:"Dove desidera andare?",noResultsTitle:"Nessun risultato con questa parola chiave.",noResultsMessage:"Selezionate una delle seguenti parole chiave o inseritene una diversa."},propertyTypes:{hotels:"Hotels",resorts:"Resorts",camping:"Camping"},campingTypes:{pitches:"Piazzole","mobile-homes":"Case mobili",glamping:"Glamping"},checkRates:{stepTitle1:"Dove vorresti andare?",stepTitle2:"Quale hotel, resort o campeggio?",stepTitle3:"Seleziona le date",stepTitle4:"Seleziona il numero degli ospiti",checkRatesButton:"Controlla le tariffe",backLabel:"Indietro",closeButtonLabel:"Prossimo",allDestinations:"Seleziona tutte le destinazioni",allProperties:"Seleziona tutte le strutture da",allPropertiesInDestination:"Tutte le strutture nella destinazione attuale",hotelsResorts:"Hotel e resort",campsites:"Campeggi",noProperties:"Nessuna propriet\xE0 da mostrare.",serachOverview:"Panoramica della ricerca",destination:"Destinazione:",edit:"Modificare",nights:"notti"},offers:{nrOfAvailable:"offerte disponibili per la tua ricerca",t
171itleNoAvailable:"Non sono disponibili offerte speciali per la tua ricerca.",titleNoAvailableVariants:"L\u2019offerta speciale \xE8 terminata. Verificate le nostre offerte attive qui sotto",subtitleNoAvailable:"Consigliamo le seguenti alternative:",recommendedOffers:"Offerte speciali consigliate",minimumStayPrefix:"Minimo numero di notti:",period:"Periodo:",filter:"Filtra offerte",allHolidays:"Tutte le vacanze",allProperties:"Tutte le strutture",from:"Da",upTo:"Fino al",recommended:"Consigliato per te",popularNow:"Popolare in questo momento",allOffers:"Tutte le offerte"},newsletter:{firstName:"Nome *",lastName:"Cognome *",titleAll:"Sig.",titleMr:"Sig.",titleMrs:"Sig.ra.",email:"E-mail *",gender:"Saluto *",birthDate:"Data di nascita",country:"Stato",brands:"Tipo di alloggio *",language:"Lingua della newsletter *",consent:"Tenetemi aggiornato/a sulle novit\xE0, offerte e affari speciali per affiliati.",info:"Rispettiamo la Sua privacy e ci impegniamo a proteggere i Suoi dati personali. \u2018+ Per maggiori informazioni sulla protezione dei Suoi dati personali, La preghiamo di consultare la nostra {privacyPolicy}",privacyPolicy:"Politica sulla privacy",register:"Registrati",submitSuccess:"Modulo inviato con successo."},contact:{title:"Modulo di Contatto",subtitle:"Puoi anche inviarci il tuo messaggio o domanda tramite il modulo di contatto. Ti risponderemo il prima possibile.",name:"Nome e cognome*",email:"Indirizzo E-mail*",subject:"Oggetto*",property:"Struttura",message:"Il tuo messaggio",send:"Invia",requiredFields:"* Campi richiesti",submitSuccess:"Modulo inviato con successo."},interestsTab:{title:"I miei interessi",brand:"Brand",destination:"Destinazione",holiday:"Tipo di vacanza e interessi",campsite:"Campeggio",leadText:"Vi preghiamo di inserire i vostri interessi di viaggio.",dataProtection:'<p>Rispettiamo la Sua privacy e ci impegniamo a proteggere i Suoi dati personali. Raccogliamo diversi tipi di dati personali che La riguardano, in relazione al Suo rapporto con noi e ai servizi che utilizza. In ogni caso, raccogliamo ed elaboriamo i Suoi dati personali per scopi legittimi e su valide basi legali.</p><p>Per maggiori informazioni sulla protezione dei Suoi dati personali, La preghiamo di consultare la nostra <a href="/it/informativa-privacy/">Informativa sulla privacy</a>.</p>',updateSuccess:"Hai aggiornato con successo i tuoi interessi."},preferencesTab:{title:"Preferenze ",leadText:"Vi preghiamo di prendere nota che non tutte le opzioni sono universalmente disponibili in tutte le strutture e in ogni momento.",bedding:"Preferenze di cuscini e biancheria da letto",notAvailableInCampsites:"*Non disponibile nei campeggi.",rooms:"Preferenze di camere",roomsExtra:"In base alla disponibilit\xE0 e in base alla tipologia di hotel e di camera prenotata.",services:"Servizi aggiuntivi",servicesExtra:"Senza supplemento, disponibile soltanto in determinate strutture.",food:"Preferenze di cibo",childEquipment:"Attrezzatura aggiuntiva per neonati e bambini (Senza supplemento)",pickupAtReception:"*Da prelevare alla reception dell\u2019hotel.",typeHere:"digitare qui",updateSuccess:"Hai aggiornato con successo i tuoi preferenze."},extraServices:{title:"Servizi aggiuntivi (con supplemento) ",text:"Ha qualche altra richiesta da fare all\u2019hotel?",footer:"per esempio: palloncini, torta, fiori o bevande in camera"},activity:{activity:"Attivit\xE0",youHave:"hai:",expiration:"DATA di scadenza.. noi abbiamo questo?",transferPoints:"punti da trasferire",missingPoints:"ottieni i punti mancanti",pointsActivity:"Attivit\xE0 dei punti",date:"Data",source:"Sorgente",points:"Punti",noActivity:"Al momento, non ci sono attivit\xE0 punti.",title:"Attivit\xE0 a punti",transactionTypes:["Soggiorno","Sondaggio","Registrazione","Contatto modificato","Trasferimento punti","Altro","Richiesta punti","Riscatto punti","Scaduto","Servizi esclusi dal trattamento a pensione"]},activityPointsCommon:{requiredFields:"* Questi campi sono obbligatori",send:"Invia"},awards:{all:"Tutto",recommended:"Premi suggeriti",title:"Premi MaiStar",recommendedTitle:"Premi consigliati per il tuo prossimo soggiorno",points:"punti",discoverMore:"Maggiori informazioni",available:"Disponibile",unavailable:"Non disponibile",noReservations:"Non hai prenotazioni imminenti. \xC8 il momento di una nuova vacanza.."},dashboard:{title:"Pannello di controllo",welcome:"Benvenuto/a,",displayName:"Nome da visualizzare",level:"Livello",editprofile:"Modifica Profilo",membershipNumber:"Numero di iscrizione",memberSince:"Affiliato da",viewPoints:"Visualizza l'attivit\xE0 dei punti",viewBookings:"visualizza tutte le prenotazioni",enlargeQr:"Ingrandisci il 
171codice QR",youHave:"Hai",points:"punti",myBookings:"Le mie prenotazioni",rewards:"Premi",maistarRewards:"MaiStar Rewards",viewRewards:"visualizza tutti i premi",noRewards:"nessun premio",moreAboutStatus:"Maggiori informazioni sul tuo stato",scrollDown:"Scorrere verso il basso",expiresOn:"Scade il:",personalDetails:"Dati personali",addToAppleWallet:"Aggiungi a Apple Wallet",addToGoogleWallet:"Aggiungi a Google Wallet"},obtainPoints:{mainTitle:"Ottieni punti mancanti",title:"Punti mancanti per una prenotazione?<br>Invia una richiesta per i punti mancanti.",formTitle:"Ti preghiamo di compilare questo modulo con i tuoi dati",property:"Struttura *",arrivalDate:"Data di arrivo *",departureDate:"Data di partenza *",pointsAwardedTime:"I punti verranno accreditati 72 ore dopo il check-out.",bookingReferenceNumber:"Numero di riferimento per la prenotazione *",invoiceAmount:"Importo fattura *",comment:"Altri commenti e richieste",success:"La tua richiesta \xE8 stata inoltrata con successo."},transferPoints:{mainTitle:"Punti da trasferire",title:"Quanti punti desidera trasferire?",formTitle:"Conto su cui desideri trasferire i punti",receiverFirstName:"Nome *",receiverLastName:"Cognome *",receiverEmail:"Indirizzo E-mail *",receiverLoyaltyId:"Numero carta fedelt\xE0 *",allPointsSelection:"Tutti i punti",otherAmountSelection:"Altro importo",pointsAvailable:"Punti disponibili:",points2Transfer:"Punti da trasferire:",success:"La tua richiesta \xE8 stata inoltrata con successo."},activation:{success:["Se abbiamo trovato l'E-mail nel database, ti abbiamo inviato il link.","Sembra che tu abbia gi\xE0 un account. Accedete, per favore."]},reservations:{title:"Prenotazioni",property:"Struttura",check:"Arrivo Partenza",rate:"Valuta",status:"Stato",checkRates:"Controlla le tariffe",noReservations:"Non hai prenotazioni imminenti.",newHolidays:"\xC8 tempo di nuove vacanze.",noPropertyTitle:"Nessun nome di propriet\xE0 trovato. FobsID:",bookingRef:"Riferimento prenotazione:",memberRate:"Tariffa totale per i membri",discoverExperiences:"Scopri nuove esperienze",activeReservations:"Prenotazioni attive",pastReservations:"Prenotazioni passate"}},nl:{all:"Allemaal",filters:"Filters",clearFilters:"Wis filters",applyFilters:"Filters toepassen",showFilters:"Filters tonen",closeFilters:"Sluit filters",destinations:"bestemmingen",interests:"Interesses",destination:"Bestemming",brands:"Merken",types:"Types",starRating:"Sterrenclassificatie",back:"Dashboard",services:"Faciliteiten/Diensten",sortBy:"Sorteer op",recommendedFirst:"Sorteer op aanbevolen",lowFirst:"Prijs: laagste eerst",highFirst:"Prijs: hoogste eerst",lowPointsFirst:"Punten - laagste eerst",highPointsFirst:"Punten - hoogste eerst",noResults:"Geen resultaten, filter aanpassen",bookNow:"Boek nu",from:"van",perUnit:"per accommodatie",error:"Fout",holidayTypeFilter:"Soort vakantie",property:"Eigendom",discoverMore:"Ontdek meer",confirm:"Bevestigen",canceled:"Geannuleerd",notCanceled:"Actief",formSubmitSuccess:"Het formulier is verzonden.",loadMore:"Meer laden",results:"Resultaten:",allDestinations:"Alle bestemmingen",allBrands:"Alle merken",allInterests:"Alle interesses",error403:{title:"403",text:"U moet ingelogd zijn om toegang te krijgen tot deze pagina.",goHome:"Home"},searchApp:{placeholder:"Zoek eigenschappen, aanbiedingen, idee\xEBn...",suggestionsTitle:"Vind de volmaakte plek om te ontspannen",showFilters:"Toon filters",clearFilters:"Wis alles",applyFilters:"Filter toepassen",cancelFilters:"Annuleer",resultType:{offer:"Speciale aanbieding"},filters:{propertyType:"Type onderkomen",destination:"Bestemming",brand:"Merk"},noResults:"Er zijn geen resultaten voor deze zoekopdracht.",showing:"Tonen",outOf:"van de",results:"resultaten"},focusedSearch:{placeholder:"Vind je verblijf",showAll:"Alles tonen",properties:"Eigendom",specialOffers:"Speciale aanbiedingen",searchFor:"Zoeken naar:"},bookingWidget:{planYourStay:"Plan uw verblijf",whereAreYouGoing:"Waar gaat u naartoe?",noResultsTitle:"Er zijn geen resultaten voor dit trefwoord.",noResultsMessage:"Selecteer een van de volgende opties of voer een ander trefwoord in."},propertyTypes:{hotels:"Hotels",resorts:"Resorts",camping:"Camping"},campingTypes:{pitches:"Kampeerplaatsen","mobile-homes":"Stacaravans",glamping:"Glamping"},checkRates:{stepTitle1:"Waar wil je heen?",stepTitle2:"Welk hotel, resort of camping?",stepTitle3:"Selecteer data",stepTitle4:"Selecteer aantal gasten",checkRatesButton:"Controleer prijzen",backLabel:"Rug",closeButtonLabel:"Dichtbij",allDestinations:"Selecteer alle bestemmingen",allProperties:"Selecteer alle eigenschappen van",allPropertiesInDestination:"Alle Eigendommen in huidige bestemming",hotelsResorts:"Hotels en resorts",campsites:"Campings",noProperties:"Geen eigenschappen om te tonen.",serachOverview:"Zoekoverzicht",destination:"Bestemming:",edit:"Bewerk",nights:"nachten"},offers:{nrOfAvailable:"aanbiedingen beschikbaar voor uw zoekopdracht",titleNoAvailable:"Er zijn geen speciale aanbiedingen beschikbaar voor je zoekopdracht.",titleNoAvailableVariants:"Deze speciale aanbieding is verlopen. Check onderaan voor nieuwe aanbiedingen",subtitleNoAvailable:"We raden de volgende alternatieven aan:",re
171commendedOffers:"Aanbevolen speciale aanbiedingen",minimumStayPrefix:"Minimaal aantal nachten:",period:"Periode:",filters:"Aanbiedingen sorteren",allHolidays:"Alle vakanties",allProperties:"Alle eigenschappen",from:"Van",upTo:"Tot",recommended:"Aanbevolen voor jou",popularNow:"Populair op dit moment",allOffers:"Alle aanbiedingen"},newsletter:{firstName:"Voornaam *",lastName:"Achternaam *",titleAll:"Mevr./Dhr.",titleMr:"Dhr.",titleMrs:"Mevr.",email:"E-mail *",gender:"Aanhef *",birthDate:"Geboortedatum",country:"Land",brands:"Accommodatiesoort *",language:"Taal nieuwsbrief *",consent:"Houdt me op de hoogte van nieuws, aanbiedingen en exclusieve ledenaanbiedingen.",info:"Wij respecteren uw privacy, en beschermen uw persoonsgegevensVoor meer informatie over de bescherming van uw persoonsgegevens kunt u terecht bij ons {privacyPolicy}",privacyPolicy:"Privacybeleid",register:"Aanmelden",submitSuccess:"Formulier is verzonden."},contact:{title:"Contactformulier",subtitle:"U kunt ons ook uw bericht of vraag sturen via het contactformulier. We zullen zo snel mogelijk antwoorden.",name:"Naam en achternaam*",email:"E-mailadres*",subject:"Onderwerp*",property:"Eigendom",message:"Jouw bericht",send:"Versturen",requiredFields:"* Verplichte velden",submitSuccess:"Formulier is verzonden."},interestsTab:{title:"Mijn interesses",brand:"Merk",destination:"Bestemming",holiday:"Soort vakantie en interesses",campsite:"Camping",leadText:"Vul uw reisinteresses in.",dataProtection:'<p>Wij respecteren uw privacy en beschermen uw persoonsgegevens. Wij verzamelen verschillende soorten persoonlijke gegevens over u, afhankelijk van uw relatie tot ons en de diensten die u gebruikt. In ieder geval verzamelen en verwerken wij uw gegevens voor gerechtigde doeleinden en op een wettig geldende basis.</p><p>Voor meer informatie over de bescherming van uw persoonsgegevens verwijzen wij naar onze <a href="/nl/privacy-beleid/">Privacy Mededeling</a>.</p>',updateSuccess:"Uw interesses zijn bijgewerkt."},preferencesTab:{title:"Voorkeuren ",leadText:"Houd er rekening mee dat niet alle opties overal en altijd beschikbaar zijn.",bedding:"Voorkeur van kussens en beddengoed",notAvailableInCampsites:"*Niet beschikbaar op campings.",rooms:"Kamervoorkeuren",roomsExtra:"Indien beschikbaar, op basis van het hotel en kamertype dat u heeft geboekt.",services:"Extra services",servicesExtra:"Gratis, alleen beschikbaar in specifieke accommodaties.",food:"Voedselvoorkeuren",childEquipment:"Extra baby- en kinderuitrusting (gratis)",pickupAtReception:"*Op te halen bij de receptie van het hotel.",typeHere:"typ hier",updateSuccess:"Uw voorkeuren zijn bijgewerkt."},extraServices:{title:"Extra services (tegen betaling) ",text:"Heeft u nog verdere wensen voor uw verblijf?",footer:"Bijvoorbeeld ballonnen, taart, bloemen of drankjes op de kamer"},activity:{activity:"Activiteit",youHave:"jij hebt:",expiration:"Vervaldatum.. hebben we dit?",transferPoints:"punten overdragen",missingPoints:"ontbrekende punten halen",pointsActivity:"Punten Activiteit",date:"Datum",source:"Bron",points:"Punten",noActivity:"Momenteel is er geen puntenactiviteit.",title:"Punten activiteit",transactionTypes:["Verblijf","Enqu\xEAte","Registratie","Contact bewerkt","Puntenoverdracht","Overig","Puntenclaim","Punten inwisselen","Verlopen","Extra verbruik"]},activityPointsCommon:{requiredFields:"* Deze velden zijn verplicht",send:"Versturen"},awards:{all:"Allemaal",recommended:"Aanbevolen beloningen",title:"MaiStar-beloningen",recommendedTitle:"Aanbevolen prijzen voor uw volgende verblijf",points:"punten",discoverMore:"Ontdek meer",available:"Beschikbaar",unavailable:"Niet beschikbaar",noReservations:"U heeft geen aankomende reserveringen. Het is tijd voor een nieuwe vakantie."},dashboard:{title:"Dashboard",welcome:"Welkom",displayName:"Weergavenaam",level:"Peil",editprofile:"Bewerk profiel",membershipNumber:"Lidmaatschapsnummer",memberSince:"Lid sinds",viewPoints:"Puntenactiviteit bekijken",viewBookings:"bekijk alle boekingen",enlargeQr:"Vergroot QR-code",youHave:"Jij hebt",points:"punten",myBookings:"Mijn boekingen",rewards:"Beloningen",maistarRewards:"MaiStar-beloningen",viewRewards:"bekijk alle beloningen",noRewards:"geen beloningen",moreAboutStatus:"Meer over je status",scrollDown:"Naar beneden scrollen",expiresOn:"Verloopt op:",personalDetails:"Persoonlijke gegevens",addToAppleWallet:"Voeg toe aan Apple Wallet",addToGoogleWallet:"Voeg toe aan Google Wallet"},obtainPoints:{mainTitle:"Verkrijg ontbrekende punten",title:"Ontbrekende punten voor een boeking?<br>Dien een verzoek voor ontbrekende punten in.",formTitle:"Vul dit formulier in",property:"Eigendom *",arrivalDate:"Aankomstdatum *",departureDate:"Vertrekdatum *",pointsAwardedTime:"Punten worden 72 uur na het uitchecken toegevoegd.",bookingReferenceNumber:"Boekingsreferentienummer *",invoiceAmount:"Factuurbedrag *",comment:"Overige opmerkingen en verzoeken",success:"Uw aanvraag is ingediend."},transferPoints:{mainTitle:"Punten overzetten",title:"Hoeveel punten wilt u overbrengen?",formTitle:"Rekening waarnaar u punten wilt overboeken",receiverFirstName:"Voornaam *",receiverLastName:"Achternaam *",receiver
171Email:"E-mailadres *",receiverLoyaltyId:"Klantenkaartnummer *",allPointsSelection:"Alle punten",otherAmountSelection:"Ander bedrag",pointsAvailable:"Beschikbare punten:",points2Transfer:"Over te dragen punten:",success:"Uw aanvraag is ingediend."},activation:{success:["Als we de e-mail in de database hebben gevonden, hebben we je de link gestuurd.","Het lijkt erop dat je al een account hebt. Log alsjeblieft in."]},reservations:{title:"Boekingen",property:"Eigendom",check:"Controleer prijzen",rate:"Tarief",status:"Toestand",checkRates:"Controleer koersen",noReservations:"U heeft geen aankomende reserveringen.",newHolidays:"Het is tijd voor je nieuwe vakantie.",noPropertyTitle:"Vestigingsnaam niet gevonden. Fob-ID: ",bookingRef:"Boekingsreferentie:",memberRate:"Totaal ledentarief",discoverExperiences:"Ontdek nieuwe ervaringen",activeReservations:"Actieve reserveringen",pastReservations:"Eerdere reserveringen"}},pl:{all:"wszystkie",filters:"Filtry",clearFilters:"Wyczy\u015B\u0107 filtry",applyFilters:"Zastosuj filtry",showFilters:"Poka\u017C filtry",closeFilters:"Zamknij filtry.",destinations:"Destynacje",interests:"Zainteresowania",destination:"Cel podr\xF3\u017Cy",brands:"Marki",types:"Rodzaje",starRating:"Liczba gwiazdek",back:"Panel",services:"Obiekty/Us\u0142ugi",sortBy:"Sortuj wed\u0142ug",recommendedFirst:"Sortuj wed\u0142ug polecanych",lowFirst:"Cena - od najni\u017Cszej",highFirst:"Cena - od najwy\u017Cszej",lowPointsFirst:"Punkty - najpierw najni\u01
1717Csze",highPointsFirst:"Punkty - najpierw najwy\u017Csze",noResults:"Brak wynik\xF3w, zmodyfikuj filtr",bookNow:"Zarezerwuj teraz",from:"od",perUnit:"Za jednostk\u0119",error:"B\u0142\u0105d",holidayTypeFilter:"Rodzaj wakacji",property:"Nieruchomo\u015B\u0107",discoverMore:"Dowiedz si\u0119 wi\u0119cej",confirm:"Potwierd\u017A",canceled:"Anulowane",notCanceled:"Aktywny",formSubmitSuccess:"Pomy\u015Blnie przes\u0142a\u0142e\u015B formularz.",loadMore:"Za\u0142aduj wi\u0119cej",results:"Wyniki:",allDestinations:"Wszystkie destynacje",allBrands:"Wszystkie marki",allInterests:"Wszystkie zainteresowania",error403:{title:"403",text:"Musisz by\u0107 zalogowany, aby uzyska\u0107 dost\u0119p do tej strony.",goHome:"Strona g\u0142\xF3wna"},searchApp:{placeholder:"Szukaj zakwaterowania, ofert, pomys\u0142\xF3w\u2026",suggestionsTitle:"Znajd\u017A sw\xF3j idealny wyjazd",showFilters:"Poka\u017C filtry",clearFilters:"Wyczy\u015B\u0107 wszystko",applyFilters:"Zastosuj filtry",cancelFilters:"Anuluj",resultType:{offer:"Oferta specjalna"},filters:{propertyType:"Typ zakwaterowania",destination:"Miejsce docelowe",brand:"Marka"},noResults:"Brak wynik\xF3w dla tego zapytania.",showing:"Pokazuj",outOf:"od",results:"wyniku"},focusedSearch:{placeholder:"Znajd\u017A swoje miejsce",showAll:"Poka\u017C wszystko",properties:"Nieruchomo\u015Bci",specialOffers:"Oferty specjalne",searchFor:"Szukaj:"},bookingWidget:{planYourStay:"Zaplanuj sw\xF3j pobyt",whereAreYouGoing:"Dok\u0105d si\u0119 wybierasz?",noResultsTitle:"Brak wynik\xF3w dla tego s\u0142owa kluczowego.",noResultsMessage:"Wybierz jedn\u0105 z opcji lub wprowad\u017A inne s\u0142owo kluczowe."},propertyTypes:{hotels:"Hotels",resorts:"Resorts",camping:"Camping"},campingTypes:{pitches:"Parcele","mobile-homes":"Domki mobilne",glamping:"Glamping"},checkRates:{stepTitle1:"Dok\u0105d chcesz pojecha\u0107?",stepTitle2:"Kt\xF3ry hotel, o\u015Brodek lub kemping?",stepTitle3:"Wybierz termin",stepTitle4:"Wybierz liczb\u0119 go\u015Bci",checkRatesButton:"Sprawd\u017A ceny",backLabel:"Powr\xF3t",closeButtonLabel:"Zamknij",allDestinations:"Wybierz wszystkie destynacje",allProperties:"Wybierz all in ",allPropertiesInDestination:"Wszystkie nieruchomo\u015Bci w bie\u017C\u0105cym miejscu docelowym",hotelsResorts:"Hotele i o\u015Brodki",campsites:"Kempingi",noProperties:"Brak obiekt\xF3w do pokazania.",serachOverview:"Przegl\u0105d wyszukiwania",destination:"Cel podr\xF3\u017Cy",edit:"Edytuj",nights:"noce"},offers:{nrOfAvailable:"oferty dost\u0119pne w Twoim wyszukiwaniu",titleNoAvailable:"Nie ma specjalnych ofert dost\u0119pnych dla Twojego wyszukiwania.",titleNoAvailableVariants:"Oferta specjalna wygas\u0142a. Sprawd\u017A nasze aktywne oferty poni\u017Cej",subtitleNoAvailable:"Polecamy nast\u0119puj\u0105ce alternatywy:",recommendedOffers:"Polecane oferty specjalne",minimumStayPrefix:"Minimalna liczba nocleg\xF3w:",period:"Okres:",filter:"Filtruj oferty",allHolidays:"Wszystkie typy wakacji",allProperties:"Wszystkie obiekty",from:"Od",upTo:"Do",recommended:"Polecane dla Ciebie",popularNow:"Popularne teraz",allOffers:"Wszystkie oferty"},newsletter:{firstName:"Imi\u0119 *",lastName:"Nazwisko *",titleAll:"Pan/Pani",titleMr:"Pan",titleMrs:"Pani",email:"Email",gender:"Tytu\u0142",birthDate:"Data urodzenia",country:"Kraj",brands:"Typ zakwaterowania *",language:"J\u0119zyk newslettera *",consent:"Informuj mnie na bie\u017C\u0105co o nowo\u015Bciach, ofertach i ekskluzywnych ofertach cz\u0142onkowskich.",info:"Szanujemy Twoj\u0105 prywatno\u015B\u0107 i jeste\u015Bmy zobowi\u0105zani do ochrony Twoich danych osobowych. Aby uzyska\u0107 wi\u0119cej informacji na temat ochrony Twoich danych osobowych, zapoznaj si\u0119 z nasz\u0105 {provacyPolicy}",privacyPolicy:"Polityka prywatno\u015Bci",register:"Zarejestruj si\u0119",submitSuccess:"Pomy\u015Blnie przes\u0142ano formularz."},contact:{title:"Formularz kontaktowy",subtitle:"Mo\u017Cesz r\xF3wnie\u017C przes\u0142a\u0107 nam swoj\u0105 wiadomo\u015B\u0107 lub pytanie za po\u015Brednictwem formularza kontaktowego. Odpowiemy najszybciej jak to mo\u017Cliwe.",name:"Imi\u0119 i nazwisko*",email:"Adres e-mail*",subject:"Temat*",property:"Obiekt",message:"Twoja wiadomo\u015B\u0107",send:"Wy\u015Blij",requiredFields:"* Wymagane pola",submitSuccess:"Pomy\u015Blnie przes\u0142ano formularz."},interestsTab:{title:"Moje Zainteresowania",brand:"Marka",destination:"Cel podr\xF3\u017Cy",holiday:"Rodzaj wakacji i zainteresowania",campsite:"Kemping",leadText:"Prosimy wpisa\u0107 swoje preferencje wakacyjne.",dataProtection:'<p>Szanujemy Twoj\u0105 prywatno\u015B\u0107 i jeste\u015Bmy zobowi\u0105zani do ochrony Twoich danych osobowych. Zbieramy r\xF3\u017Cne rodzaje Twoich danych osobowych, w zale\u017Cno\u015Bci od Twoich relacji z nami oraz us\u0142ug, z kt\xF3rych korzystasz. Zawsze gromadzimy i przetwarzamy Twoje dane osobowe w uzasadnionych celach i na wa\u017Cnej podstawie prawnej.</p><p>
171Aby uzyska\u0107 wi\u0119cej informacji na temat ochrony Twoich danych osobowych, zapoznaj si\u0119 z nasz\u0105 <a href="/pl/polityka-prywatnosci/"> Informacja o ochronie prywatno\u015Bci</a>.</p>',updateSuccess:"Pomy\u015Blnie zaktualizowa\u0142e\u015B swoje zainteresowania."},preferencesTab:{title:"Preferencje",leadText:"Nale\u017Cy pami\u0119ta\u0107, \u017Ce nie wszystkie opcje s\u0105 og\xF3lnie dost\u0119pne we wszystkich obiektach i przez ca\u0142y czas.",bedding:"Preferencje dotycz\u0105ce poduszek i po\u015Bcieli",notAvailableInCampsites:"* Nie s\u0105 dost\u0119pne na kempingach.",rooms:"Preferencje dotycz\u0105ce pokoju",roomsExtra:"W zale\u017Cno\u015Bci od dost\u0119pno\u015Bci, w oparciu o rodzaj zarezerwowanego hotelu i pokoju.",services:"Dodatkowe us\u0142ugi",servicesExtra:"Bezp\u0142atnie, dost\u0119pne tylko w okre\u015Blonych obiektach.",food:"Preferencje \u017Cywieniowe",childEquipment:"Dodatkowe wyposa\u017Cenie dla dzieci i niemowl\u0105t (bezp\u0142atnie)",pickupAtReception:"* Do odbioru w recepcji hotelu.",typeHere:"prosimy wpisa\u0107 tutaj",updateSuccess:"Pomy\u015Blnie zaktualizowa\u0142e\u015B swoje preferencje."},extraServices:{title:"Dodatkowe us\u0142ugi (dodatkowa op\u0142ata) ",text:"Czy maj\u0105 Pa\u0144stwo dodatkowe \u017Cyczenia dotycz\u0105ce hotelu?",footer:"np. balony, tort, kwiaty lub drinki w pokoju"},activity:{activity:"Aktywne punkty",youHave:"kt\xF3re posiadasz: ",expiration:"DATA WA\u017BNO\u015ACI.. czy mamy to?",transferPoints:"punkty transferowe",missingPoints:"zdob\u0105d\u017A brakuj\u0105ce punkty",pointsActivity:"Aktywne punkty",date:"Data",source:"\u0179r\xF3d\u0142o",points:"Punkty",noActivity:"Obecnie nie masz aktywnych punkt\xF3w.",title:"Aktywne punkty",transactionTypes:["Pobyt","Ankieta","Rejestracja","Kontakt edytowany","Przeniesienie punkt\xF3w","Inne","Punkty odebrane","Punkty wykorzystane","Wygas\u0142e","Dodatkowe us\u0142ugi"]},activityPointsCommon:{requiredFields:"* Te pola s\u0105 wymagane",send:"Wy\u015Blij"},awards:{all:"wszystkie",recommended:"Rekomendowane nagrody",title:"Nagrody MaiStar",recommendedTitle:"Polecane nagrody na kolejny pobyt",points:"punkty",discoverMore:"Dowiedz si\u0119 wi\u0119cej",available:"Dost\u0119pne",unavailable:"Niedost\u0119pne",noReservations:"Nie masz nadchodz\u0105cych rezerwacji. To czas na Twoje nowe wakacje. "},dashboard:{title:"Panel",welcome:"Witay,",displayName:"Wy\u015Bwietlana nazwa",level:"Poziom",editprofile:"Edytuj profil",membershipNumber:"Numer cz\u0142onkowski",memberSince:"Cz\u0142onek od",viewPoints:"Zobacz aktywne punkty",viewBookings:"zobacz wszystkie rezerwacje",enlargeQr:"Powi\u0119ksz kod QR",youHave:"Posiadasz",points:"punkty",myBookings:"Moje rezerwacje",rewards:"Nagrody",maistarRewards:"Nagrody MaiStar",viewRewards:"poka\u017C wszystkie nagrody",noRewards:"brak nagr\xF3d",moreAboutStatus:"Wi\u0119cej o twoim statusie",scrollDown:"Przewi\u0144 w d\xF3\u0142",expiresOn:"Up\u0142ywa w dniu:",personalDetails:"Dane osobowe",addToAppleWallet:"Dodaj do Portfela Apple",addToGoogleWallet:"Dodaj do Portfela Google"},obtainPoints:{mainTitle:"zdob\u0105d\u017A brakuj\u0105ce punkty",title:"Brakuje punkt\xF3w za rezerwacj\u0119?<br>Prze\u015Blij wniosek o brakuj\u0105ce punkty.",formTitle:"Prosz\u0119 wype\u0142ni\u0107 ten formularz swoimi danymi",property:"Obiekt *",arrivalDate:"Data przyjazdu *",departureDate:"Data wyjazdu *",pointsAwardedTime:"Punkty zostan\u0105 dodane 72 godziny po wymeldowaniu.",bookingReferenceNumber:"Numer rezerwacji *",invoiceAmount:"Kwota rachunku *",comment:"Inne uwagi i wnioski",success:"Twoje zapytanie zosta\u0142o pomy\u015Blnie przes\u0142ane."},transferPoints:{mainTitle:"punkty transferowe",title:"Ile punkt\xF3w chcia\u0142by\u015B przekaza\u0107?",formTitle:"Konto, na kt\xF3re chcia\u0142by\u015B przela\u0107 punkty",receiverFirstName:"Imi\u0119 *",receiverLastName:"Nazwisko *",receiverEmail:"Adres e-mail*",receiverLoyaltyId:"Numer karty lojalno\u015Bciowej *",allPointsSelection:"Wszystkie punkty",otherAmountSelection:"Inna kwota",pointsAvailable:"Punkty dost\u0119pne: ",points2Transfer:"Punkty do transferu",success:"Twoje zapytanie zosta\u0142o pomy\u015Blnie przes\u0142ane."},activation:{success:["If znale\u017Ali\u015Bmy wiadomo\u015B\u0107 e-mail w bazie danych, do kt\xF3rej wys\u0142ali\u015Bmy Ci link. ","It wygl\u0105da na to, \u017Ce masz ju\u017C konto. Prosz\u0119 si\u0119 zalogowa\u0107."]},reservations:{title:"Rezerwacje",property:"Obiekt",check:"Zameldowanie / Wymeldowanie",rate:"Stawka",status:"Status",checkRates:"Sprawd\u017A stawki",noReservations:"Nie masz nadchodz\u0105cych rezerwacji",newHolidays:"To czas na Twoje nowe wakacje. ",noPropertyTitle:"Nie znaleziono nazwy nieruchomo\u015Bci. PhobsID: ",bookingRef:"Numer rezerwacji",memberRate:"Ca\u0142kowita stawka cz\u0142onkowska",discoverExperiences:"Odkryj nowe do\u015Bwiadczenia",activeReservations:"Aktywne rezerwacje",pastReservations:"Wcze\u015Bniejsze rezerwacje"}},si:{all:"vse",filters:"Filtri",clearFilters:"Po\u010Disti filtre",applyFilters:"Uporabi filter",showFilters:"Poka\u017Ei filtre",closeFilters:"Zapri filtre",destinations:"Destinacije",interests:"Zanimanja",destination:"Destinacija",brands:"Blagovne znamke",types:"Tip nastanitve",starRating:"\u0160tevilo zvezdic",back:"Nadzorna plo\u0161\u010Da",services:"Objekti/storitve",sortBy:"Razvrsti po",recommendedFirst:"Razvrsti po priporo\u010Denem",lowFirst:"Cena - najprej najni\u01
1717Eja",highFirst:"Cena - najprej najvi\u0161ja",lowPointsFirst:"To\u010Dke - najprej najni\u017Eje",highPointsFirst:"To\u010Dke - najprej najvi\u0161je",noResults:"Ni rezultatov, spremenite filter",bookNow:"Rezervirajte zdaj",from:"od",perUnit:"na enoto",error:"Napaka",holidayTypeFilter:"Vrsta po\u010Ditnic",property:"Lastnina",discoverMore:"Odkrijte ve\u010D",confirm:"Potrdi",canceled:"Prekinjeno",notCanceled:"Aktivno",formSubmitSuccess:"Obrazec ste uspe\u0161no oddali.",loadMore:"Nalo\u017Ei ve\u010D",results:"Rezultati:",allDestinations:"Vse destinacije",allBrands:"Vse znamke",allInterests:"Vsi interesi",error403:{title:"403",text:"Za dostop do te strani morate biti prijavljeni.",goHome:"Domov"},searchApp:{placeholder:"Iskanje objektov, ponudb, idej ...",suggestionsTitle:"Poi\u0161\u010Di svoj popoln pobeg",showFilters:"Prika\u017Ei filtre",clearFilters:"Po\u010Disti vse",applyFilters:"Uporabi filter",cancelFilters:"Prekli\u010Di",resultType:{offer:"Posebna ponudba"},filters:{propertyType:"Vrsta objekta",destination:"Destinacija",brand:"Blagovna znamka"},noResults:"Za iskani izraz ni rezultatov.",showing:"Prikazujem",outOf:"od",results:"rezultatov"},focusedSearch:{placeholder:"Poi\u0161\u010Di svojo nastanitev",showAll:"Prika\u017Ei vse",properties:"Nastanitve",specialOffers:"Posebne ponudbe",searchFor:"I\u0161\u010Di:"},bookingWidget:{planYourStay:"Na\u010Drtujte svoje bivanje",whereAreYouGoing:"Kam potujete?",noResultsTitle:"Ni zadetkov za iskano besedno zvezo.",noResultsMessage:"Izberite iz ponudbe ali poskusite z drugimi besedami."},propertyTypes:{hotels:"Hoteli",resorts:"Resorti",camping:"Kampi"},campingTypes:{pitches:"Parcele","mobile-homes":"Mobilne hi\u0161ke",glamping:"Glamping"},checkRates:{stepTitle1:"Kam \u017Eeli\u0161 iti?",stepTitle2:"Kateri hotel, letovi\u0161\u010De ali kamp?",stepTitle3:"Izberite datume",stepTitle4:"Izberite \u0161tevilo gostov",checkRatesButton:"Preverite cene",backLabel:"nazaj",closeButtonLabel:"Zapri",allDestinations:"Izberite vse destinacije",allProperties:"Izberite vse nastanitve na destinaciji",allPropertiesInDestination:"Vse nastanitve na trenutnih destinacijah",hotelsResorts:"Hoteli in letovi\u0161\u010Da",campsites:"Kampi",noProperties:"Ni objektov za prikaz.",serachOverview:"Pregled iskanja",destination:"Cilj:",edit:"Uredi",nights:"no\u010Di"},offers:{nrOfAvailable:"ponudbe, ki so na voljo za va\u0161e iskanje",titleNoAvailable:"Za va\u0161e iskanje ni na voljo posebnih ponudb.",titleNoAvailableVariants:"Posebna ponudba je potekla. Spodaj preverite na\u0161e aktivne ponudbe",subtitleNoAvailable:"Priporo\u010Damo naslednje alternative:",recommendedOffers:"Priporo\u010Dene posebne ponudbe",minimumStayPrefix:"Minimalno \u0161tevilo no\u010Ditev:",period:"Obdobje:",filter:"Filtriranje ponudb",allHolidays:"Vse po\u010Ditnice",allProperties:"Vse namestitve",from:"Od",upTo:"Do",recommended:"Priporo\u010Deno za vas",popularNow:"Priljubljeno ta trenutek",allOffers:"Vse ponudbe"},newsletter:{firstName:"Ime *",lastName:"Priimek *",titleAll:"Ga./G.",titleMr:"G.",titleMrs:"Ga.",email:"E-naslov *",gender:"Pozdrav *",birthDate:"Datum rojstva",country:"Dr\u017Eava",brands:"Vrste namestitve *",language:"Jezik e-\u010Dasopisa *",consent:"Obve\u0161\u010Dajte me o novicah, ponudbah in ekskluzivnih ponudbah za \u010Dlane.",info:"Spo\u0161tujemo va\u0161o zasebnost in zavezani smo k za\u0161\u010Diti va\u0161ih osebnih podatkov. Za ve\u010D informacij o za\u0161\u010Diti va\u0161ih osebnih podatkov glejte na\u0161o {privacyPolicy}",privacyPolicy:"Politika o zasebnosti",register:"Registriraj se",submitSuccess:"Obrazec je uspe\u0161no oddan."},contact:{title:"Kontaktni obrazec",subtitle:"Svoje sporo\u010Dilo ali vpra\u0161anje nam lahko po\u0161ljete tudi preko kontaktnega obrazca. Odgovorili vam bomo v najkraj\u0161em mo\u017Enem \u010Dasu.",name:"Ime in priimek*",email:"Email naslov*",subject:"Zadeva*",property:"Lastnina",message:"Tvoje sporo\u010Dilo",send:"Po\u0161lji",requiredFields:"* Zahtevana polja",submitSuccess:"Obrazec je uspe\u0161no oddan."},interestsTab:{title:"Moji interesi",brand:"Blagovna znamka",destination:"Destinacija",holiday:"Vrsta po\u010Ditnic in zanimanja",campsite:"Kamp",leadText:"Vpi\u0161ite svoja zanimanja za potovanja.",dataProtection:'<p>Spo\u0161tujemo va\u0161o zasebnost in smo zavezani k za\u0161\u010Diti va\u0161ih oseb
171nih podatkov. O vas zbiramo razli\u010Dne vrste osebnih podatkov, kar je odvisno od va\u0161ega razmerja z nami in storitev, ki jih uporabljate. V vsakem primeru pa va\u0161e osebne podatke zbiramo in obdelujemo v zakonite namene in v skladu z veljavno pravno podlago.</p><p>Za ve\u010D informacij o za\u0161\u010Diti va\u0161ih osebnih podatkov glejte na\u0161e <a href="/si/politika-zasebnosti/">Obvestilo o zasebnosti</a>.</p>',updateSuccess:"Uspe\u0161no ste posodobili svoja zanimanja."},preferencesTab:{title:"Izbire",leadText:"Upo\u0161tevajte, da vse mo\u017Enosti niso splo\u0161no na voljo v vseh objektih in ob vsakem \u010Dasu.",bedding:"\u017Delje glede vzglavnikov in posteljnine",notAvailableInCampsites:"*Ni na voljo v vseh kampih.",rooms:"Izbire sobe",roomsExtra:"Na podlagi razpolo\u017Eljivosti v odvisnosti od hotela in vrste sobe, ki ste jo rezervirali.",services:"Dodatne storitve",servicesExtra:"Brezpla\u010Dno, na voljo samo v dolo\u010Denih objektih.",food:"Izbira hrane",childEquipment:"Dodatna oprema za dojen\u010Dke in otroke (brezpla\u010Dno)",pickupAtReception:"*Prevzamete na hotelski recepciji",typeHere:"vnesite tukaj",updateSuccess:"Uspe\u0161no ste posodobili svoje preference."},extraServices:{title:"Dodatne storitve (ob dopla\u010Dilu) ",text:"Ali imate dodatne zahteve za hotel?",footer:"npr. baloni, torta, ro\u017Ee ali pija\u010Da v sobi"},activity:{activity:"dejavnost",youHave:"ima\u0161:",expiration:"DATUM poteka veljavnosti.. imamo to?",transferPoints:"To\u010Dke za prenos",missingPoints:"pridobi manjkajo\u010De to\u010Dke",pointsActivity:"Aktivnosti zbiranja to\u010Dk",date:"Datum",source:"Vir",points:"To\u010Dke",noActivity:"Trenutno ni dejavnosti to\u010Dk.",title:"Aktivnosti zbiranja to\u010Dk",transactionTypes:["Bivanje","Anketa","Registracija","Stik urejen","Prenos to\u010Dk","Drugo","Zahteva za to\u010Dke","Unov\u010Denje to\u010Dk","Poteklo","Poraba izven penziona"]},activityPointsCommon:{requiredFields:"* Ta polja so obvezna",send:"Po\u0161lji"},awards:{all:"vse",recommended:"Priporo\u010Dene nagrade",title:"MaiStar nagrade",recommendedTitle:"Priporo\u010Dene nagrade za va\u0161e naslednje bivanje",points:"to\u010Dke",discoverMore:"Odkrijte ve\u010D",available:"Na voljo",unavailable:"Ni na voljo",noReservations:"Nimate prihodnjih rezervacij. \u010Cas je za va\u0161e nove po\u010Ditnice."},dashboard:{title:"Nadzorna plo\u0161\u010Da",welcome:"Dobrodo\u0161li",displayName:"Prikazno ime",level:"Raven",editprofile:"Uredi profil",membershipNumber:"\u010Clanska \u0161tevilka",memberSince:"\u010Clan od",viewPoints:"Ogled aktivnosti to\u010Dk",viewBookings:"ogled vseh rezervacij",enlargeQr:"Pove\u010Daj QR kodo",youHave:"Ima\u0161",points:"to\u010Dke",myBookings:"Moje rezervacije",rewards:"Nagrade",maistarRewards:"MaiStar nagrade",viewRewards:"oglejte si vse nagrade",noRewards:"brez nagrad",moreAboutStatus:"Ve\u010D o va\u0161em statusu",scrollDown:"Pomaknite navzdol",expiresOn:"Pote\u010De:",personalDetails:"Osebni podatki",addToAppleWallet:"Dodaj v Apple Wallet",addToGoogleWallet:"Dodaj v Google Wallet"},obtainPoints:{mainTitle:"Pridobite manjkajo\u010De to\u010Dke",title:"Manjkajo to\u010Dke za rezervacijo?<br>Po\u0161ljite zahtevo za manjkajo\u010De to\u010Dke.",formTitle:"Prosimo, izpolnite ta obrazec s svojimi podatki",property:"Nepremi\u010Dnina *",arrivalDate:"Datum prihoda *",departureDate:"Datum odhoda *",pointsAwardedTime:"To\u010Dke bodo dodane 72 ur po odjavi.",bookingReferenceNumber:"Referen\u010Dna \u0161tevilka rezervacije *",invoiceAmount:"Znesek ra\u010Duna *",comment:"Drugi komentarji in pro\u0161nje",success:"Va\u0161a zahteva je bila uspe\u0161no poslana."},transferPoints:{mainTitle:"To\u010Dke za prenos",title:"Koliko to\u010Dk \u017Eelite prenesti?",formTitle:"Ra\u010Dun, na katerega \u017Eelite prenesti to\u010Dke",receiverFirstName:"Ime *",receiverLastName:"Priimek *",receiverEmail:"Email naslov *",receiverLoyaltyId:"\u0160tevilka kartice zvestobe *",allPointsSelection:"Vse to\u010Dke",otherAmountSelection:"Drugi znesek",pointsAvailable:"Na voljo to\u010Dke:",points2Transfer:"To\u010Dke za prenos:",success:"Va\u0161a zahteva je bila uspe\u0161no poslana."},activation:{success:["\u010Ce smo na\u0161li e-po\u0161to v bazi podatkov, smo vam poslali povezavo.","Ka\u017Ee, da \u017Ee imate ra\u010Dun. Prosimo, prijavite se."]},reservations:{title:"Rezervacije",property:"Lastnina",check:"Prijava odjava",rate:"Oceniti",status:"Stanje",checkRates:"Preverite cene",noReservations:"Nimate prihodnjih rezervacij.",newHolidays:"\u010Cas je za va\u0161e nove po\u010Ditnice.",noPropertyTitle:"Ime objekta ni bilo najdeno. PhobsID:",bookingRef:"Ref. rezervacije:",memberRate:"Skupna stopnja \u010Dlanov",discoverExperiences:"Odkrijte nove izku\u0161nje",activeReservations:"Aktivne rezervacije",pastReservations:"Pretekle rezervacije"}}};var Et={en:{loading:"",call:"Call",cancel:"Cancel",join:"Sign in",country:"Country",search:"Search",close:"Close",next:"Next",previous:"Previous",select:"Select",eur:"\u20AC",homepage:"Home page",bookNow:"Book Now",discoverMore:"Discover more",until:"until",learnMore:"Learn more",localeSwitch:{buttonTitle:"Switch Locale",title:"Preferences",description:"Please select your preferred language and currency.",selectLanguage:"Select Language",selectCurrency:"Select Currency",footer
171:"All prices in currencies other than euros are approximate.",button:"Update preferences"},accessCode:{label:"Promo Code",placeholder:"Enter Promo Code",confirm:"Confirm",remove:"Remove",invalidAccessCode:"The entered promo code is not valid.",validAccessCode:"The entered promo code is valid."},bookingModal:{property:"Property",hotelsResorts:"Hotels and resorts",campsites:"Campsites",date:"Arrival & departure",guests:"Guests",accessCode:"Promo code",howMany:"Select number of guests",adults:"Adults",noChildren:"Children",selectAge:"Child age",selectBtn:"Select",updateBtn:"Search",closeBtn:"Close",openBtn:"Open",invalidAccessCode:"Promo code not valid",accessCodeIsVoucher:"Please enter a voucher code in second step of booking process",children:"children",age:"Child age",note:"Accommodation price is shown per unit and is subject to change depending on the number of persons and additional services.",specialOffer:"Only dates available for the special offer are shown on the calendar.",datesChanged:"Dates changed based on availability.",accessCodeRemoved:"Promo code was removed because it is not valid for this property.",guestsAdjusted:"Guest number adjusted due to property limits.",changeDates:"Change dates",datesUnavailable:"No Accomodation Available for Selected Dates",datesUnavailableContent:"Unfortunately, no accomodation is available for selected dates at {property}. Would you like to change your booking dates to the next available ones: <span>{dates}</span>?",datesUnavailableForAccessCode:"Promo Code Not Valid for Your Dates",datesUnavailableForAccessCodeContent:"Unfortunately, promo code is not valid for the selected dates. Would you like to change your booking dates to <span>{dates}</span> so that you can use the promo code?",unavailable:"Unavailable",checkoutOnly:"Checkout only"},loyaltyBanner:{title:"With gratitude, from your first stay",button:"Become a member",membershipDiscount:"membership discount",becomeMember:"Become a member",description:"Become a MaiStar Rewards Club member and save up to 20%. It\u2019s easy to join using your personal information while booking your stay.",alreadyMember:"Already a member?",signIn:"Sign in",maistarPricesApplied:"MaiStar prices applied",applyMaistarPrice
171s:"Apply MaiStar prices"},loyaltySplit:{title:"Welcome to MaiStar Rewards Club",accessAccount:"Access your account",signInText:"Sign in to your account and enjoy all the  benefits of the MaiStar Rewards Program.",signIn:"Sign in",newHere:"New here?",joinText:"Join for free and unlock exclusive benefits of the MaiStar Rewards Program.",register:"Register now",accessText:"As a MaiStar Rewards Club member, you\u2019ll have access to:",benefits:"<li>My Profile & Preferences</li><li>My Points</li><li>My Bookings</li><li>My Rewards</li><li>Get up to 20% off bookings, collect points, and enjoy exclusive rewards</li>"},unitDemand:{availabilityError:"Availability could not be determined",contactText:"Sorry, there are no available units for the selected dates.",contactButton:"Contact us",modifySearch:"Modify search"},authStatus:{dashboard:"Overview",myBookings:"My bookings",pointsActivity:"Points activity",MaiStarRewards:"MaiStar rewards",myProfile:"My profile",openMenu:"Open menu",closeMenu:"Close menu",login:"Login",logout:"Logout"},loyaltyProfile:{profileLocales:{l1050:"Croatian",l1040:"Italian",l1033:"English",l1031:"German",l1060:"Slovenian",l1045:"Polish",l2067:"Dutch"},profileTitle:{mr:"Mr.",mrs:"Mrs."},identity:"Identity",title:"Title",firstName:"First name",lastName:"Last name",dob:"Date of birth",locale:"Language",contact:"Contact",email:"Email",address:"Address",postalCode:"Postal Code",city:"City",phoneNumber:"Phone Number",updateSuccess:"You successfully updated your profile."},formValidation:{required:"This field is required.",email:"<span>Enter a valid e-mail. Please use a format like name&#64;example.com.</span>",min:"This field must be at least",maxPoints:"The selected amount is not available.",eq:"This field must have",digits:"digits",characters:"characters",size:"Maximum file size is",phone:"Enter a valid phone number with a prefix (+ or 00). Please use a format like +49 2 545 8654.",reqAtLeastOne:"You need to select at least one option.",number:"Enter a valid number.",reqNumber:"You need to enter a valid number.",reqFile:"You need to select a file to upload.",notVerifiedMail:"Please check and verify your email again.",ccard:"The card number you have entered is invalid.",cvv:"Please enter a valid CVV number. Should be 3 digits.",cvv34:"Please enter a valid CVV number. Should be 3 or 4 digits.",onePositive:"One of the fields must be a positive number",birthdate:"The entered birthdate is not valid."},notification:{success:"Successfully submitted.",error:"Error while submitting.",moreInfo:"More info"},fatalError:{title:"We're sorry, but something went wrong.",message:"Please go back to home page and try again.",button:"Back To Homepage",code:{propertyIdMissing:"You arrived to this page without selected property.",unitOrRateMissing:"You arrived to this page without selecting unit or rate.",phobsError10001:"Request limit to external booking service reached",phobsError5008:"There is no availability for the selected unit. Please try again with a different unit.",validationError:"Error validating your entered data. Please review your personal details and try again."}},myProfile:{title:"My Profile",changeEmailText:"To change your e-mail, please contact our",changeEmailCC:"Customer Care",newsletter:"Keep me updated with news, offers and exclusive member deals.",requiredFields:"These fields are required.",dataProtection:'<p>We respect your privacy and are committed to protecting your personal data. We collect different types of personal data about you, depending on your relationship with us and the services you use. In any case, we collect and process your personal data for legitimate purposes and on a valid legal basis.</p><p>For more information about the protection of your personal data, please see our <a href="#">Privacy Notice</a>.</p>'}},de:{loading:"",call:"Anruf",cancel:"Stornieren",join:"Beitreten",country:"Land",search:"Suche",close:"Schlie\xDFen",next:"N\xE4chste",previous:"Vorige",select:"Ausw\xE4hlen",eur:"\u20AC",homepage:"Homepage",bookNow:"Jetzt buchen",discoverMore:"Mehr entdecken",until:"bis",learnMore:"Mehr entdecken",localeSwitch:{buttonTitle:"Gebietsschema schalten",title:"Einstellungen",description:"Bitte w\xE4hlen Sie Ihre bevorzugte Sprache und W\xE4hrung aus",selectLanguage:"Sprache ausw\xE4hlen",selectCurrency:"W\xE4hrung ausw\xE4hlen",footer
171:"Preisangaben in anderen w\xE4hrungen als euro sind lediglich richtwerte.",button:"Einstellungen aktualisieren"},accessCode:{label:"Gutscheincode",placeholder:"Gutscheincode",confirm:"Best\xE4tigen",remove:"Entfernen",invalidAccessCode:"Der eingegebene Gutscheincode ist ung\xFCltig.",validAccessCode:"Der eingegebene Gutscheincode ist g\xFCltig."},bookingModal:{property:"Objekt",hotelsResorts:"Hotels und Resorts",campsites:"Campingpl\xE4tze",date:"Ankunft und Abreise",guests:"G\xE4ste",accessCode:"Gutscheincode",howMany:"Wie viele G\xE4ste werden \xFCbernachten?",adults:"Erwachsene",noChildren:"Kinder",selectAge:"Kind",selectBtn:"Ausw\xE4hlen",updateBtn:"Suche aktualisieren",closeBtn:"Schlie\xDFen",openBtn:"\xD6ffnen",invalidAccessCode:"Gutscheincode ist ung\xFCltig",accessCodeIsVoucher:"Bitte geben Sie im zweiten Schritt des Buchungsvorgangs einen Gutschein-Code ein",children:"Kinder",age:"Alter des Kindes",note:"Die Preise f\xFCr die Unterkunft werden pro Einheit angegeben und k\xF6nnen sich abh\xE4ngig von der Personenzahl und den Zusatzleistungen \xE4ndern.",specialOffer:"Nur die f\xFCr das Sonderangebot verf\xFCgbaren Termine werden im Kalender angezeigt.",datesChanged:"Die Termine wurden aufgrund der Verf\xFCgbarkeit ge\xE4ndert.",accessCodeRemoved:"Der Promo-Code wurde entfernt, da er f\xFCr diese Unterkunft nicht g\xFCltig ist.",guestsAdjusted:"Die Anzahl der G\xE4ste wurde aufgrund von Beschr\xE4nkungen der Unterkunft angepasst.",changeDates:"Daten \xE4ndern",datesUnavailable:"Keine Unterkunft f\xFCr den ausgew\xE4hlten Zeitraum verf\xFCgbar",datesUnavailableContent:"Leider ist f\xFCr den ausgew\xE4hlten Zeitraum keine Unterkunft verf\xFCgbar {property}. M\xF6chten Sie Ihre Buchungsdaten auf den n\xE4chsten verf\xFCgbaren Zeitraum \xE4ndern: <span>{dates}</span>?",datesUnavailableForAccessCode:"Der Aktionscode ist f\xFCr den von Ihnen ausgew\xE4hlten Zeitraum nicht g\xFCltig",datesUnavailableForAccessCodeContent:"Der Aktionscode ist f\xFCr den von Ihnen ausgew\xE4hlten Zeitraum leider nicht g\xFCltig. M\xF6chten Sie Ihre Buchungsdaten so <span>{dates}</span> \xE4ndern, damit Sie den Aktionscode verwenden k\xF6nnen?",unavailable:"Nicht verf\xFCgbar",checkoutOnly:"Nur Abreise"},loyaltyBanner:{title:"Als kleines Dankesch\xF6n f\xFCr Ihren ersten Aufenthalt",button:"Mitglied werden",membershipDiscount:"Mitgliederrabatt",becomeMember:"Mitglied werden",description:"Werden Sie Mitglied im MaiStar Rewards Club und sparen Sie bis zu 20 %. Sie k\xF6nnen ihm mit Ihren pers\xF6nlichen Daten ganz einfach beitreten, w\xE4hrend Sie Ihren Aufenthalt buchen.",alreadyMember:"Bereits Mitglied?",signIn:"Anmelden",maistarPricesApplied:"MaiStar-Preise angewendet",applyMaistarPrice
171s:"MaiStar-Preise anwenden"},loyaltySplit:{title:"Willkommen im MaiStar Rewards Club",accessAccount:"Zugriff auf Ihr Konto",signInText:"Melden Sie sich bei Ihrem Konto an und profitieren Sie von allen Vorteilen des MaiStar Rewards-Programms.",signIn:"Anmelden",newHere:"Zum ersten Mal hier?",joinText:"Kostenlos anmelden und exklusive Vorteile des MaiStar Rewards-Programms nutzen.",register:"Jetzt registrieren",accessText:"Eine Mitgliedschaft bei dem MaiStar Rewards Club gibt Ihnen Einsicht in:",benefits:"<li>Mein Profil & Pr\xE4ferenzen</li><li>Meine Punkte</li><li>Meine Buchungen</li><li>Meine Auszeichnungen</li><li>Erhalten Sie bis zu 20 % Rabatt auf Buchungen, sammeln Sie Punkte und nutzen exklusive Auszeichnungen</li>"},unitDemand:{availabilityError:"Die Verf\xFCgbarkeit konnte nicht ermittelt werden",contactText:"Leider sind keine Einheiten f\xFCr den gew\xFCnschten Zeitraum verf\xFCgbar.",contactButton:"Kontaktieren Sie uns",modifySearch:"Suche bearbeiten"},authStatus:{dashboard:"Dashboard",myBookings:"Meine Buchungen",pointsActivity:"Aktivierte Punkte",MaiStarRewards:"MaiStar Preise",myProfile:"Mein Profil",openMenu:"Men\xFC \xF6ffnen",closeMenu:"Men\xFC schlie\xDFen",login:"Anmelden",logout:"Auschecken"},loyaltyProfile:{profileLocales:{l1050:"Kroatisch",l1040:"Italienisch",l1033:"Englisch",l1031:"Deutsch",l1060:"Slowenisch",l1045:"Polnisch",l2067:"Niederl\xE4ndisch"},profileTitle:{mr:"Herr",mrs:"Frau"},identity:"Pers\xF6nliche Daten",title:"Anrede",firstName:"Vorname",lastName:"Nachname",dob:"Geburtsdatum",locale:"Sprache",contact:"Kontakt",email:"E-Mail",address:"Adresse",postalCode:"Postleitzahl",city:"Stadt",phoneNumber:"Telefonnummer",updateSuccess:"Sie haben Ihr Profil erfolgreich aktualisiert."},formValidation:{required:"Dieses Feld ist erforderlich.",email:"<span>Geben Sie eine g\xFCltige E-Mail-Adresse ein. Bitte verwenden Sie ein Format wie name&#64;example.com.</span>",min:"Dieses Feld muss mindestens enthalten",maxPoints:"Der ausgew\xE4hlte Betrag ist nicht verf\xFCgbar.",eq:"Dieses Feld muss enthalten",digits:"Ziffern",characters:"Zeichen",size:"Die maximale Dateigr\xF6\xDFe ist",phone:"Geben Sie eine g\xFCltige Telefonnummer mit Vorwahl (+ oder 00) ein. Bitte verwenden Sie ein Format wie +49 2 545 8654.",reqAtLeastOne:"Sie m\xFCssen mindestens eine Option ausw\xE4hlen.",number:"Geben Sie eine g\xFCltige Nummer ein.",reqNumber:"Sie m\xFCssen eine g\xFCltige Nummer eingeben.",reqFile:"Sie m\xFCssen eine Datei zum Hochladen ausw\xE4hlen.",notVerifiedMail:"Bitte pr\xFCfen und best\xE4tigen Sie Ihre E-Mail.",ccard:"Die eingegebene Kartennummer ist ung\xFCltig.",cvv:"Bitte geben Sie eine g\xFCltige CVV-Nummer ein. Die Nummer muss 3 Ziffern enthalten.",cvv34:"Bitte geben Sie eine g\xFCltige CVV-Nummer ein. Die Nummer muss 3 oder 4 Ziffern enthalten.",onePositive:"Eines der Felder muss eine positive Zahl sein",birthdate:"Die eingegebene Geburtsdatum ist ung\xFCltig."},notification:{success:"Erfolgreich versendet.",error:"Beim Senden ist ein Fehler aufgetreten.",moreInfo:"Mehr Informationen"},fatalError:{title:"Entschuldigung, ein Fehler ist aufgetreten.",message:"Gehen Sie zur\xFCck zur Startseite und versuchen Sie es erneut.",button:"Zur\xFCck zur Startseite",code:{propertyIdMissing:"Sie sind auf diese Seite gelangt, ohne ein Objekt auszuw\xE4hlen.",unitOrRateMissing:"Sie sind auf dieser Seite angekommen, ohne eine Einheit oder einen Preis auszuw\xE4hlen.",phobsError10001:"Sie haben das Anforderungslimit f\xFCr den externen Buchungsservice erreicht",phobsError5008:"Die ausgew\xE4hlte Einheit ist nicht verf\xFCgbar. Bitte versuchen Sie es erneut mit einer anderen Einheit.",validationError:"Fehler beim Validieren Ihrer eingegebenen Daten. Bitte \xFCberpr\xFCfen Sie Ihre personenbezogenen Daten und versuchen Sie es erneut."}},myProfile:{title:"Mein Profil",changeEmailText:"Um Ihre E-Mail zu \xE4ndern, wenden Sie sich bitte an",changeEmailCC:"Kundendienst",newsletter:"Informieren Sie mich \xFCber Neuigkeiten, Angebote und exklusive Mitgliederangebote.",requiredFields:"Diese Felder sind Pflichtfelder.",dataProtection:'<p>Wir respektieren Ihre Privatsph\xE4re und verpflichten uns, Ihre personenbezogenen Daten zu sch\xFCtzen. Wir erheben verschiedene Arten von personenbezogenen Daten \xFCber Sie, abh\xE4ngig von Ihrer Beziehung zu uns und den von Ihnen genutzten Leistungen. Wir erheben und verarbeiten Ihre personenbezogenen Daten f\xFCr legitime Zwecke und auf einer g\xFCltigen Rechtsgrundlage.</p><p>Weitere Informationen zum Schutz Ihrer personenbezogenen Daten finden Sie in unserer <a href="#"> Datenschutzerkl\xE4rung</a>.</p>'}},hr:{loading:"",call:"Nazovi",cancel:"Otka\u017Ei",join:"Pridru\u017Ei se",country:"Dr\u017Eava",search:"Pretra\u017Ei",close:"Zatvori",next:"Sljede\u0107e",previous:"Prethodno",select:"Odaberi",eur:"\u20AC",homepage:"Home page",bookNow:"Rezerviraj sada",discoverMore:"Otkrijte vi\u0161e",until:"do",learnMore:"Otkrijte vi\u0161e",localeSwitch:{buttonTitle:"Prebacite lokalitet",title:"Preferencije",description:"Odaberite jezik i valutu koji vam odgovaraju",selectLanguage:"Odabir jezika",selectCurrency:"Odabir valute",footer:"Cijene izra\u01
1717Eene u svim valutama, osim u eurima su informativnog karaktera.",button:"A\u017Euriraj preferencije"},accessCode:{label:"Promotivni kod",placeholder:"Unesite promotivni kod",confirm:"Potvrdi",remove:"Ukloni",invalidAccessCode:"Uneseni promotivni kod nije valjan.",validAccessCode:"Uneseni promotivni kod je valjan."},bookingModal:{property:"Objekt",hotelsResorts:"Hoteli i resorti",campsites:"Kampovi",date:"Dolazak i odlazak",guests:"Gosti",accessCode:"Promotivni kod",howMany:"Koliko \u0107e gostiju boraviti?",adults:"Odrasli",noChildren:"Djeca",selectAge:"Dijete",selectBtn:"Odaberi",updateBtn:"A\u017Euriraj pretragu",closeBtn:"Zatvori",openBtn:"Otvori",invalidAccessCode:"Promotivni kod nije valjan",accessCodeIsVoucher:"Unesite vau\u010Der kod u drugom koraku procesa rezervacije",children:"djeca",age:"Dob djeteta",note:"Cijene smje\u0161taja iskazane su po jedinici te su podlo\u017Ene promjeni ovisno o broju osoba i dodatnim uslugama.",specialOffer:"Na kalendaru su prikazani samo datumi koji su dostupni za posebnu ponudu.",datesChanged:"Datumi su promijenjeni zbog dostupnosti.",accessCodeRemoved:"Promotivni kod je uklonjen jer nije va\u017Ee\u0107i za ovaj objekt.",guestsAdjusted:"Broj gostiju prilago\u0111en zbog ograni\u010Denja objekta.",changeDates:"Promijeni datume",datesUnavailable:"Za odabrane datume nije dostupna nijedna smje\u0161tajna jedinica",datesUnavailableContent:"Na\u017Ealost, za odabrane datume nije dostupna nijedna smje\u0161tajna jedinica u {property}. \u017Delite li promijeniti datume rezervacije u sljede\u0107e dostupne datume: <span>{dates}</span>?",datesUnavailableForAccessCode:"Promotivni kod ne vrijedi za va\u0161e datume",datesUnavailableForAccessCodeContent:"Na\u017Ealost, promotivni kod ne vrijedi za odabrane datume. \u017Delite li promijeniti datume rezervacije u <span>{dates}</span> kako biste mogli iskoristiti promotivni kod?",unavailable:"Nedostupno",checkoutOnly:"Samo odjava"},loyaltyBanner:{title:"Zahvalni smo od va\u0161eg prvog boravka",button:"Postanite \u010Dlanom",membershipDiscount:"popust za \u010Dlanove",becomeMember:"Postanite \u010Dlanom",description:"Postanite \u010Dlanom programa MaiStar Rewards Club i u\u0161tedite do 20 %. Lako se mo\u017Eete pridru\u017Eiti s pomo\u0107u osobnih podataka tijekom rezerviranja smje\u0161taja.",alreadyMember:"Ve\u0107 ste \u010Dlan?",signIn:"Prijavite se",maistarPricesApplied:"Primijenjene cijene MaiStar",applyMaistarPrice
171s:"Primijeni MaiStar cijene"},loyaltySplit:{title:"Dobrodo\u0161li u MaiStar Rewards Club",accessAccount:"Pristupite svom ra\u010Dunu",signInText:"Prijavite se u svoj ra\u010Dun i u\u017Eivajte u pogodnostima MaiStar Rewards Programa.",signIn:"Prijavite se",newHere:"Novi ste ovdje?",joinText:"Pridru\u017Eite se besplatno i otklju\u010Dajte ekskluzivne pogodnosti MaiStar Rewards Programa.",register:"Registrirajte se sada",accessText:"\u010Clanstvom u MaiStar Rewards Clubu imati \u0107ete uvid u:",benefits:"<li>Moj Profil & Preferencije</li><li>Moji Bodovi</li><li>Moje Rezervacije</li><li>Moje Nagrade</li><li>Ostvarite do 20% popusta na rezervacije, sakupljajte bodove i koristite ekskluzivne nagrade</li>"},unitDemand:{availabilityError:"Raspolo\u017Eivost nije bilo mogu\u0107e utvrditi",contactText:"Na\u017Ealost nema raspolo\u017Eivih jedinica u tra\u017Eenom periodu.",contactButton:"Obratite nam se",modifySearch:"Izmijeni pretragu"},authStatus:{dashboard:"Prikaz",myBookings:"Moje rezervacije",pointsActivity:"Aktivirani bodovi",MaiStarRewards:"MaiStar Rewards",myProfile:"Moj profil",openMenu:"Otvori izbornik",closeMenu:"Zatvori izbornik",login:"Prijava",logout:"Odjava"},loyaltyProfile:{profileLocales:{l1050:"Hrvatski",l1040:"Talijanski",l1033:"Engleski",l1031:"Njema\u010Dki",l1060:"Slovenski",l1045:"Poljski",l2067:"Nizozemski"},profileTitle:{mr:"Gospodin",mrs:"Gospo\u0111a"},identity:"Osobni podaci",title:"Titula",firstName:"Ime",lastName:"Prezime",dob:"Datum ro\u0111enja",locale:"Jezik",contact:"Kontakt",email:"E-po\u0161ta",address:"Adresa",postalCode:"Po\u0161tanski broj",city:"Grad",phoneNumber:"Broj telefona",updateSuccess:"Uspje\u0161no ste a\u017Eurirali svoj profil."},formValidation:{required:"Ovo polje je obavezno.",email:"<span>Unesite valjanu adresu e-po\u0161te. Upotrijebite format kao \u0161to je ime&#64;primjer.com.</span>",min:"Ovo polje mora sadr\u017Eavati najmanje",max:"Ovo polje mora sadr\u017Eavati najvi\u0161e",maxPoints:"Odabrani iznos nije dostupan.",eq:"Ovo polje mora sadr\u017Eavati",digits:"znamenka",characters:"znakovi",size:"Maksimalna veli\u010Dina datoteke je",phone:"Unesite valjani telefonski broj s prefiksom (+ ili 00). Upotrijebite format kao \u0161to je +385 97 545 8654.",reqAtLeastOne:"Morate odabrati najmanje jednu opciju.",number:"Unesite valjani broj.",reqNumber:"Trebate unijeti valjani broj.",reqFile:"Morate odabrati datoteku za prijenos.",notVerifiedMail:"Provjerite i ponovno potvrdite svoju e-po\u0161tu.",ccard:"Broj kartice koji ste unijeli nije va\u017Ee\u0107i.",cvv:"Unesite va\u017Ee\u0107i CVV broj. Broj treba sadr\u017Eavati 3 znamenke.",cvv34:"Unesite va\u017Ee\u0107i CVV broj. Broj treba sadr\u017Eavati 3 ili 4 znamenke.",onePositive:"Jedno od polja mora biti pozitivan broj",birthdate:"Uneseni datum ro\u0111enja nije ispravan."},notification:{success:"Uspje\u0161no poslano.",error:"Do\u0161lo je do pogre\u0161ke prilikom slanja.",moreInfo:"Vi\u0161e informacija"},fatalError:{title:"\u017Dao nam je, do\u0161lo je do pogre\u0161ke.",message:"Vratite se natrag na po\u010Detnu stranicu i poku\u0161ajte ponovno.",button:"Natrag na po\u010Detnu stranicu",code:{propertyIdMissing:"Do\u0161li ste na ovu stranicu bez da ste odabrali objekt.",unitOrRateMissing:"Do\u0161li ste na ovu stranicu bez odabira jedinice ili cijene.",phobsError10001:"Dosegnuli ste ograni\u010Denje zahtjeva za vanjsku uslugu rezerviranja",phobsError5008:"Odabrana jedinica nije dostupna. Poku\u0161ajte ponovno s drugom jedinicom.",validationError:"Do\u0161lo je do pogre\u0161ke pri potvr\u0111ivanju unesenih podataka. Pregledajte svoje osobne podatke i poku\u0161ajte ponovno."}},myProfile:{title:"Moj profil",changeEmailText:"Da biste promijenili svoju e-po\u0161tu, obratite se",changeEmailCC:"Slu\u017Eba za korisnike",newsletter:"Obavje\u0161tavajte me o novostima, ponudama i ekskluzivnim popustima za \u010Dlanove.",requiredFields:"Ova su polja obavezna.",dataProtection:'<p>Po\u0161tujemo va\u0161u privatnost i obvezujemo se na za\u0161titu va\u0161ih osobnih podataka. Prikupljamo razli\u010Dite vrste va\u0161ih osobnih pod
171ataka ovisno o odnosu koji imate s nama i uslugama koje upotrebljavate. U svakom slu\u010Daju va\u0161e osobne podatke prikupljamo i obra\u0111ujemo sa svrhom i prema zakonu.</p><p>Vi\u0161e informacija o za\u0161titi osobnih podataka potra\u017Eite u na\u0161oj <a href="#">Izjavi o privatnosti</a>.</p>'}},it:{loading:"Caricamento in corso...",call:"Chiamata",cancel:"Annulla",join:"Unisciti",country:"Paese",search:"Ricerca",close:"Chiudi",next:"Successivo",previous:"Precedente",select:"Seleziona",eur:"\u20AC",homepage:"Home page",bookNow:"Prenota ora",discoverMore:"Scopri di pi\xF9",until:"fino a",learnMore:"Maggiori informazioni",localeSwitch:{buttonTitle:"switchLocale",title:"Preferenze",description:"Si prega di selezionare la lingua e la valuta preferite",selectLanguage:"Seleziona lingua",selectCurrency:"Seleziona valuta",footer:"I prezzi indicati in tutte le altre valute tranne euro sono informativi.",button:"Aggiorna preferenze"},accessCode:{label:"Codice d'accesso",placeholder:"Inserisci il codice promozionale",confirm:"Conferma",remove:"Rimuovi",invalidAccessCode:"Il codice promozionale inserito non \xE8 valido.",validAccessCode:"Il codice promozionale inserito \xE8 valido."},bookingModal:{property:"Struttura",hotelsResorts:"Hotel e resort",campsites:"Campeggi",date:"Arrivo e partenza",guests:"Ospiti",accessCode:"Codice promozionale",howMany:"Quanti ospiti vi alloggeranno?",adults:"Adulto",noChildren:"Bambini",selectAge:"Bambino",selectBtn:"Seleziona",updateBtn:"Aggiorna ricerca",closeBtn:"Chiudi",openBtn:"Apri",invali
171dAccessCode:"Codice promozionale non valido",accessCodeIsVoucher:"Inserite un codice voucher nel secondo passaggio del processo di prenotazione",children:"bambini",age:"Et\xE0 del bambino",note:"I prezzi degli alloggi si intendono per singola unit\xE0 e sono soggetti a variazioni in base al numero di persone e servizi supplementari.",specialOffer:"Nel calendario vengono mostrate solo le date disponibili per l'offerta speciale.",datesChanged:"Le date sono cambiate in base alla disponibilit\xE0.",accessCodeRemoved:"Il codice promozionale \xE8 stato rimosso perch\xE9 non valido per questa struttura.",guestsAdjusted:"Numero degli ospiti modificato in base ai limiti della struttura.",changeDates:"Modifica le date",datesUnavailable:"Nessuna sistemazione disponibile per le date selezionate",datesUnavailableContent:"Purtroppo non \xE8 disponibile alcuna sistemazione per le date selezionate presso {property}. Vorrebbe modificare le date della Sua prenotazione con le prossime disponibili: <span>{dates}</span>?",datesUnavailableForAccessCode:"Il codice promozionale non \xE8 valido per le date selezionate",datesUnavailableForAccessCodeContent:"Purtroppo il codice promozionale non \xE8 valido per le date selezionate. Desidera modificare le date della Sua prenotazione <span>{dates}</span> per poter utilizzare il codice promozionale?",unavailable:"Non disponibile",checkoutOnly:"Solo checkout"},loyaltyBanner:{title:"Con gratitudine, dal Suo primo soggiorno",button:"Diventa affiliato",membershipDiscount:"sconto affiliato",becomeMember:"Diventa affiliato",description:"Diventi affiliato del programma MaiStar Rewards Club e risparmi fino al 20%. Si pu\xF2 unire a noi, semplicemente, utilizzando i Suoi dati personali, mentre prenota il Suo soggiorno.",alreadyMember:"Gi\xE0 membro?",signIn:"Accedi",maistarPricesApplied:"Prezzi MaiStar applicati",applyMaistarPrice
171s:"Applica prezzi MaiStar"},loyaltySplit:{title:"Benvenuti nel MaiStar Rewards Club",accessAccount:"Accedi al tuo account",signInText:"Accedi al tuo account e godi di tutti i vantaggi del Programma Fedelt\xE0 MaiStar.",signIn:"Accedi",newHere:"Prima volta qui?",joinText:"Iscriviti gratuitamente e scopri i vantaggi esclusivi del Programma Fedelt\xE0 MaiStar.",register:"Registrati ora",accessText:"Con l\u2019affiliazione al MaiStar Rewards Club potrete visualizzare:",benefits:"<li>Il Mio Profilo e le Preferenze</li><li>I Miei Punti</li><li>Le Mie Prenotazioni</li><li>I Miei Premi</li><li>Ottenete fino al 20% di sconto sulle prenotazioni, accumulate i punti e approfittate di premi esclusivi</li>"},unitDemand:{availabilityError:"Non \xE8 stato possibile determinare la disponibilit\xE0",modifySearch:"Modifica ricerca",contactText:"Non ci sono unit\xE0 disponibili per le date selezionate.",contactButton:"Contattaci"},authStatus:{dashboard:"Riepilogo",myBookings:"Le mie prenotazioni",pointsActivity:"Attivit\xE0 a punti",MaiStarRewards:"Premi MaiStar",myProfile:"Il mio profilo",openMenu:"Apri menu",closeMenu:"Chiudi menu",login:"Accedi",logout:"Esci"},loyaltyProfile:{profileLocales:{l1050:"Croato",l1040:"Italiano",l1033:"Inglese",l1031:"Tedesco",l1060:"Sloveno",l1045:"Polacco",l2067:"Olandese"},profileTitle:{mr:"Sig.",mrs:"Sig.ra"},identity:"Dati personali",title:"Titolo",firstName:"Nome",lastName:"Cognome",dob:"Data di nascita",locale:"Lingua",contact:"Contatto",email:"E-mail",address:"Indirizzo",postalCode:"Codice Postale",city:"Citt\xE0",phoneNumber:"Numero di telefono",updateSuccess:"Ha aggiornato correttamente il Suo profilo."},formValidation:{required:"Questo campo \xE8 obbligatorio.",email:"<span>Inserisci un indirizzo e-mail valido. Utilizza un formato come nome&#64;esempio.com.</span>",min:"Questo campo deve contenere almeno",maxPoints:"L\u2019importo selezionato non \xE8 disponibile.",eq:"Questo campo deve contenere",digits:"cifre",characters:"caratteri",size:"La dimensione massima del file \xE8",phone:"Inserisci un numero di telefono valido con prefisso (+ oppure 00). Utilizza un formato come +49 2 545 8654.",reqAtLeastOne:"Deve selezionare almeno un'opzione.",number:"Inserisci un numero valido.",reqNumber:"Deve inserire un numero valido.",reqFile:"Deve selezionare un file da caricare.",notVerifiedMail:"Controlli e confermi di nuovo la Sua E-mail.",ccard:"Il numero di carta inserito non \xE8 valido.",cvv:"Si prega di inserire un numero CVV valido. Dovrebbe contenere 3 cifre.",cvv34:"Si prega di inserire un numero CVV valido. Dovrebbe contenere 3 o 4 cifre.",onePositive:"Uno dei campi deve essere un numero positivo",birthdate:"La data di nascita inserita non \xE8 valida."},notification:{success:"Inviato con successo.",error:"Errore durante l'invio.",moreInfo:"Ulteriori informazioni"},fatalError:{title:"Ops. Si \xE8 verificato un errore.",message:"Torna alla pagina iniziale e riprovi.",button:"Torna alla pagina iniziale",code:{propertyIdMissing:"Codice di accesso non valido",unitOrRateMissing:"\xC8 arrivato/a a questa pagina senza selezionare unit\xE0 o tariffa.",phobsError10001:"Raggiunto il limite di richieste per il servizio di prenotazione esterna",phobsError5008:"Nessuna disponibilit\xE0 per l\u2019alloggio selezionato. La preghiamo di riprovare con un altro alloggio.",validationError:"Errore durante la convalida dei dati inseriti. La preghiamo di rivedere i Suoi dati personali e di riprovare."}},myProfile:{title:"Il mio profilo",changeEmailText:"Per modificare la Sua e-mail, contatti",changeEmailCC:"Servizio Clienti",newsletter:"Tenetemi aggiornato sulle novit\xE0, offerte e occasioni speciali per gli affiliati. ",requiredFields:"Questi campi sono obbligatori.",dataProtection:'<p>Rispettiamo la Sua privacy e ci impegniamo a proteggere i Suoi dati personali. Raccogliamo diversi tipi di dati personali che La riguardano, in relazione al Suo rapporto con noi e ai servizi che utilizza. In ogni caso, raccogliamo ed elaboriamo i Suoi dati personali per scopi legittimi e su valide basi legali.</p><p>Per maggiori informazioni sulla protezione dei Suoi dati personali, La preghiamo di consultare la nostra <a href="#">Informativa sulla privacy</a>.</p>'}},nl:{loading:"bezig met laden...",call:"Telefoongesprek",cancel:"Annuleren",join:"Meedoen",country:"Land",search:"Zoekopdracht",close:"Sluiten",next:"Volgende",previous:"Vorige",select:"Selecteer",eur:"\u20AC",homepage:"Home page",bookNow:"Boek nu",discoverMore:"Ontdek meer",until:"tot",learnMore:"Ontdek meer",localeSwitch:{buttonTitle:"Schakel van plaats",title:"Voorkeuren",description:"Selecteer de taal en valuta van uw voorkeur",selectLanguage:"Kies een taal",selectCurrency:"Kies een valuta",footer
171:"Alle prijzen in andere valuta's dan euro zijn bang.",button:"Voorkeuren bijwerken"},accessCode:{label:"Toegangscode",placeholder:"Voer de promocode in",confirm:"Bevestigen",remove:"Verwijderen",invalidAccessCode:"De ingevoerde promocode is niet geldig.",validAccessCode:"De ingevoerde promocode is geldig."},bookingModal:{property:"Eigendom",hotelsResorts:"Hotels en resorts",campsites:"Campings",date:"Aankomst en vertrek",guests:"Gasten",accessCode:"Promotiecode",howMany:"Hoeveel gasten blijven er?",adults:"Volwassenen",noChildren:"Kinderen",selectAge:"Kind",selectBtn:"Selecteer",updateBtn:"Zoekopdracht bijwerken",closeBtn:"Sluiten",openBtn:"Openen",invalidAccessCode:"Promocode is niet geldig",accessCodeIsVoucher:"Voer een promotiecode in bij de tweede stap van het boekingsproces",children:"kinderen",age:"Leeftijd kind",note:"De accommodatieprijzen worden per eenheid weergegeven en kunnen veranderen afhankelijk van het aantal personen en aanvullende diensten.",specialOffer:"In de kalender worden alleen de data weergegeven waarop deze speciale aanbieding geldt.",datesChanged:"De datums zijn aangepast volgens beschikbaarheid.",accessCodeRemoved:"De promotiecode is verwijderd omdat deze niet geldig is voor deze accommodatie.",guestsAdjusted:"Aantal gasten aangepast vanwege de beperkingen van de accommodatie.",changeDates:"Datums wijzigen",datesUnavailable:"Geen accommodatie beschikbaar voor de geselecteerde datums",datesUnavailableContent:"Er is helaas geen accommodatie beschikbaar voor de geselecteerde datums {property}. Wilt u de dagen die u gereserveerd heeft, wijzigen naar de eerstvolgende beschikbare datums?: <span>{dates}</span>?",datesUnavailableForAccessCode:"De kortingscode is niet geldig voor uw datums",datesUnavailableForAccessCodeContent:"De kortingscode is helaas niet geldig voor uw datums. Wilt u de dagen die u gereserveerd heeft, wijzigen <span>{dates}</span> zodat u gebruik kunt maken van de kortingscode?",unavailable:"Niet beschikbaar",checkoutOnly:"Alleen uitchecken"},loyaltyBanner:{title:"Met dankbaarheid voor je eerste verblijf",button:"Word lid",membershipDiscount:"ledenkorting",becomeMember:"Word lid",description:"Word lid van de MaiStar Rewards Club en bespaar tot wel 20%. Lid worden is doodeenvoudig door je persoonsgegevens te gebruiken terwijl je je verblijf boekt.",alreadyMember:"Ben je al lid?",signIn:"Inloggen",maistarPricesApplied:"MaiStar-zijn van toepassing",applyMaistarPrice
171s:"MaiStar-prijzen toepassen"},loyaltySplit:{title:"Welkom bij de MaiStar Rewards Club",accessAccount:"Ga naar je account",signInText:"Log in op je account en profiteer van alle voordelen van het MaiStar Rewards-programma.",signIn:"Inloggen",newHere:"Ben je nieuw hier?",joinText:"Word gratis lid en profiteer van de exclusieve voordelen van het MaiStar Rewards-programma.",register:"Registreer nu",accessText:"Als lid van de MaiStar Rewards Club krijgt u toegang tot:",benefits:"<li>Mijn profiel en voorkeuren</li><li>Mijn punten</li><li>Mijn reserveringen</li><li>Mijn bonussen</li><li>Krijg tot 20% korting op reserveringen, spaar punten en maak gebruik van exclusieve prijzen</li>"},unitDemand:{availabilityError:"De beschikbaarheid kon niet worden bepaald",modifySearch:"Zoekopdracht wijzigen",contactText:"Er is geen eenheid beschikbaar voor de gekozen datum.",contactButton:"Neem contact met ons op"},authStatus:{dashboard:"Overzicht",myBookings:"Mijn boekingen",pointsActivity:"Geactiveerde punten",MaiStarRewards:"MaiStar Rewards",myProfile:"Mijn profiel",openMenu:"Menu openen",closeMenu:"Menu sluiten",login:"Inloggen",logout:"Uitloggen"},loyaltyProfile:{profileLocales:{l1050:"Kroatisch",l1040:"Italiaans",l1033:"Engels",l1031:"Duits",l1060:"Sloveens",l1045:"Pools",l2067:"Nederlands"},profileTitle:{mr:"meneer",mrs:"mevrouw"},identity:"Identiteit",title:"Titel",firstName:"Voornaam",lastName:"Achternaam",dob:"Geboortedatum",locale:"Taal",contact:"Contact",email:"E-mail",address:"Adres",postalCode:"Postcode",city:"Stad",phoneNumber:"Telefoonnummer",updateSuccess:"Je profiel is bijgewerkt."},formValidation:{required:"Dit veld is verplicht.",email:"<span>Voer een geldig e-mailadres in. Gebruik het formaat zoals naam&#64;voorbeeld.com.</span>",min:"Dit veld moet minimaal hebben",maxPoints:"Het geselecteerde aantal is niet beschikbaar.",eq:"Dit veld moet hebben",digits:"cijfers",characters:"tekens",size:"Maximale bestandsgrootte is",phone:"Voer een geldig telefoonnummer in met een landennummer (+ of 00). Gebruik het formaat als +49 2 545 8654.",reqAtLeastOne:"Je moet minimaal \xE9\xE9n optie selecteren.",number:"Voer een geldig nummer in.",reqNumber:"Je moet een geldig nummer invoeren.",reqFile:"Je moet een bestand selecteren om te uploaden.",notVerifiedMail:"Controleer je e-mail opnieuw.",ccard:"Het door jou ingevoerde kaartnummer is ongeldig.",cvv:"Voer een geldig CVV-nummer in. Dat moeten 3 cijfers zijn.",cvv34:"Voer een geldig CVV-nummer in. Dat moeten 3 of 4 cijfers zijn.",onePositive:"Een van de velden moet een positief getal zijn",birthdate:"De ingevoerde geboortedatum is niet geldig."},notification:{success:"Succesvol verzonden.",error:"Fout tijdens het verzenden.",moreInfo:"Meer informatie"},fatalError:{title:"Oeps. Er is een fout opgetreden!",message:"Keer terug naar de startpagina en probeer het opnieuw.",button:"Terug naar de startpagina",code:{propertyIdMissing:"Je bent op deze pagina terechtgekomen zonder een accommodatie te selecteren",unitOrRateMissing:"Je bent op deze pagina terechtgekomen zonder een eenheid of tarief te selecteren.",phobsError10001:"Verzoeklimiet voor externe boekingsservice bereikt",phobsError5008:"Er is geen beschikbaarheid voor de geselecteerde unit. Probeer het opnieuw met een andere unit.",validationError:"Fout bij het valideren van uw ingevoerde gegevens. Controleer uw persoonlijke gegevens en probeer het opnieuw."}},myProfile:{title:"Mijn profiel",changeEmailText:"Om je e-mailadres te wijzigen, neem contact op met:",changeEmailCC:"Klantenservice",newsletter:"Houd me op de hoogte van nieuws, aanbiedingen en exclusieve ledenaanbiedingen.",requiredFields:"Deze velden zijn verplicht.",dataProtection:'<p>Wij respecteren je privacy en beschermen je persoonsgegevens. Wij verzamelen verschillende soorten persoonlijke gegevens over je, afhankelijk van je relatie tot ons en de diensten die je gebruikt. In ieder geval verzamelen en verwerken wij je gegevens voor gerechtigde doeleinden en op een wettig geldende basis.</p><p>Voor meer informatie over de bescherming van je persoonsgegevens verwijzen wij naar onze <a href="#">Privacyverklaring</a>.</p>'}},pl:{loading:"",call:"Po\u0142\u0105czenie",cancel:"Anuluj",join:"Do\u0142\u0105cz",country:"Kraj",search:"Szukaj",close:"Zamknij",next:"Nast\u0119pny",previous:"Poprzedni",select:"Wybierz",eur:"\u20AC",homepage:"Home page",bookNow:"Zarezerwuj teraz",discoverMore:"Odkryj wi\u0119cej",until:"do",learnMore:"Dowiedz si\u0119 wi\u0119cej",localeSwitch:{buttonTitle:"Po\u0142\u0105cz region\u0119",title:"Preferencje",description:"Wybierz preferowany j\u0119zyk i walut\u0119",selectLanguage:"Wybierz j\u0119zyk",selectCurrency:"Wybierz walut\u0119",footer:"Ceny wyra\u017Cone we wszystkich walutach poza euro s\u0105 orientacyjne.",button:"Zaktualizuj preferencje"}
171,accessCode:{label:"Kod promocyjny",placeholder:"Wpisz kod promocyjny",confirm:"Potwierd\u017A",remove:"Usu\u0144",invalidAccessCode:"Wprowadzony kod promocyjny jest nie aktualny.",validAccessCode:"Wprowadzony kod promocyjny jest wa\u017Cny."},bookingModal:{property:"Obiekt",hotelsResorts:"Hotele i o\u015Brodki",campsites:"Kempingi",date:"Przyjazd & odjazd",guests:"Go\u015Bcie",accessCode:"Kod promocyjny",howMany:"Ilu go\u015Bci b\u0119dzie przebywa\u0107?",adults:"Doro\u015Bli",noChildren:"Dzieci",selectAge:"Dziecko",selectBtn:"Wybierz",updateBtn:"Zaktualizuj wyszukiwanie",closeBtn:"Zamknij",openBtn:"Otw\xF3rz",invalidAccessCode:"Kod promocyjny jest nie aktualny.",accessCodeIsVoucher:"Prosz\u0119 wpisa\u0107 kod promocyjny w drugim kroku procesu rezerwacji",children:"dzieci",age:"Wiek dziecka",note:"Ceny zakwaterowania podane s\u0105 za jednostk\u0119 i mog\u0105 ulec zmianie, w zale\u017Cno\u015Bci od liczby os\xF3b i dodatkowych us\u0142ug.",specialOffer:"W kalendarzu wy\u015Bwietlane s\u0105 tylko daty dost\u0119pne dla oferty specjalnej.",datesChanged:"Daty zmieni\u0142y si\u0119 w zale\u017Cno\u015Bci od dost\u0119pno\u015Bci.",accessCodeRemoved:"Kod promocyjny zosta\u0142 usuni\u0119ty, poniewa\u017C nie jest wa\u017Cny dla tej us\u0142ugi.",guestsAdjusted:"Liczba go\u015Bci dostosowana do limitu nieruchomo\u015Bci.",changeDates:"Zmie\u0144 daty",datesUnavailable:"Brak dost\u0119pnego zakwaterowania w wybranym terminie",datesUnavailableContent:"Niestety, brak dost\u0119pnego zakwaterowania w wybranym terminie {property}. Czy chcesz zmieni\u0107 dat\u0119 swojej rezerwacji na najbli\u017Cszy dost\u0119pny termin: <span>{dates}</span>?",datesUnavailableForAccessCode:"Kod promocyjny nie mo\u017Ce zosta\u0107 wykorzystany na podane daty",datesUnavailableForAccessCodeContent:"Niestety, kod promocyjny nie mo\u017Ce zosta\u0107 wykorzystany w wybranych datach. Czy chcesz zmieni\u0107 dat\u0119 Twojej rezerwacji, <span>{dates}</span> tak by\u015B m\xF3g\u0142 skorzysta\u0107 z kodu promocyjnego?",unavailable:"Niedost\u0119pne",checkoutOnly:"Tylko wymeldowanie"},loyaltyBanner:{title:"Z wdzi\u0119czno\u015Bci\u0105, od Twojego pierwszego pobytu",button:"Zosta\u0144 cz\u0142onkiem",membershipDiscount:"zni\u017Cka cz\u0142onkowska",becomeMember:"Zosta\u0144 cz\u0142onkiem",description:"Zosta\u0144 cz\u0142onkiem MaiStar Rewards Club i oszcz\u0119d\u017A nawet do 20%. Mo\u017Cesz \u0142atwo do\u0142\u0105czy\u0107, za pomoc\u0105 swoich danych osobowych, ju\u017C podczas rezerwacji pobytu.",alreadyMember:"Ju\u017C jeste\u015B cz\u0142onkiem?",signIn:"Zaloguj si\u0119",maistarPricesApplied:"Zastosowano ceny MaiStar",applyMaistarPrice
171s:"Zastosuj ceny MaiStar"},loyaltySplit:{title:"Witamy w MaiStar Rewards Club",accessAccount:"Dost\u0119p do Twojego konta",signInText:"Zaloguj si\u0119 na swoje konto i ciesz si\u0119 wszystkimi korzy\u015Bciami Programu MaiStar Rewards.",signIn:"Zaloguj si\u0119",newHere:"Jeste\u015B tu nowy?",joinText:"Do\u0142\u0105cz za darmo i odblokuj wyj\u0105tkowe korzy\u015Bci Programu MaiStar Rewards.",register:"Zarejestruj si\u0119 teraz",accessText:"Do\u0142\u0105czaj\u0105c do MaiStar Rewards Club, zyskasz wgl\u0105d w:",benefits:"<li>M\xF3j profil i Preferencje</li><li>Moje Punkty</li><li>Moje Rezerwacje</li><li>Moje Nagrody</li><li>Otrzymaj do 20% zni\u017Cki na rezerwacje, zbieraj punkty i zyskuj wyj\u0105tkowe nagrody</li>"},unitDemand:{availabilityError:"Nie mo\u017Cna okre\u015Bli\u0107 dost\u0119pno\u015Bci",modifySearch:"Zmodyfikuj wyszukiwanie",contactText:"Niestety nie ma dost\u0119pnych miejsc w wybranym okresie.",contactButton:"Skontaktuj si\u0119 z nami"},authStatus:{dashboard:"Przegl\u0105d",myBookings:"Moje rezerwacje",pointsActivity:"Aktywne punkty",MaiStarRewards:"Nagrody MaiStar",myProfile:"M\xF3j profil",openMenu:"Otw\xF3rz menu",closeMenu:"Zamknij menu",login:"Login",logout:"Wyloguj si\u0119"},loyaltyProfile:{profileLocales:{l1050:"chorwacki",l1040:"w\u0142oski",l1033:"angielski",l1031:"niemiecki",l1060:"s\u0142owe\u0144ski",l1045:"polski",l2067:"niderlandzki"},profileTitle:{mr:"Pan",mrs:"Pani"},identity:"To\u017Csamo\u015B\u0107",title:"Tytu\u0142",firstName:"Imi\u0119",lastName:"Nazwisko",dob:"Data urodzin",locale:"J\u0119zyk",contact:"Kontakt",email:"Email",address:"Adres",postalCode:"Kod pocztowy",city:"Miasto",phoneNumber:"Numer telefonu",updateSuccess:"Pomy\u015Blnie zaktualizowa\u0142e\u015B sw\xF3j profil."},formValidation:{required:"To pole jest wymagane.",email:"<span>Wprowad\u017A prawid\u0142owy adres e-mail. Prosz\u0119 u\u017Cy\u0107 nast\u0119puj\u0105cego formatu name&#64;example.com.</span>",min:"To pole musi mie\u0107 co najmniej",maxPoints:"Wybrana kwota jest niedost\u0119pna.",eq:"To pole musi mie\u0107",digits:"cyfry",characters:"znak\xF3w",size:"Maksymalny rozmiar pliku to",phone:"Wprowad\u017A prawid\u0142owy numer telefonu z prefiksem (+ lub 00). Prosz\u0119 u\u017Cy\u0107 nast\u0119puj\u0105cego formatu +49 2 545 8654.",reqAtLeastOne:"Musisz wybra\u0107 co najmniej jedn\u0105 opcj\u0119.",number:"Wprowad\u017A prawid\u0142owy numer.",reqNumber:"Musisz wpisa\u0107 poprawny numer.",reqFile:"Musisz wybra\u0107 plik do przes\u0142ania.",notVerifiedMail:"Sprawd\u017A i ponownie zweryfikuj sw\xF3j adres e-mail.",ccard:"Wprowadzony numer karty jest nieprawid\u0142owy.",cvv:"Podaj prawid\u0142owy numer CVV. Powinien zawiera\u0107 3 cyfry.",cvv34:"Podaj prawid\u0142owy numer CVV. Powinien zawiera\u0107 3 lub 4 cyfry.",onePositive:"Jedno z p\xF3l musi by\u0107 liczb\u0105 dodatni\u0105",birthdate:"Wprowadzona data urodzenia jest nieprawid\u0142owa."},notification:{success:"Pomy\u015Blnie przes\u0142ano.",error:"B\u0142\u0105d podczas przesy\u0142ania.",moreInfo:"Wi\u0119cej informacji"},fatalError:{title:"Przepraszamy, ale co\u015B posz\u0142o nie tak.",message:"Wr\xF3\u0107 do strony g\u0142\xF3wnej i spr\xF3buj ponownie.",button:"Wr\xF3\u0107 do strony g\u0142\xF3wnej",code:{propertyIdMissing:"Dotar\u0142e\u015B do tej strony bez wybranego obiektu.",unitOrRateMissing:"Dotar\u0142e\u015B do tej strony bez wybrania jednostki lub stawki.",phobsError10001:"Osi\u0105gni\u0119to limit \u017C\u0105da\u0144 w zewn\u0119trznej us\u0142udze rezerwacji",phobsError5008:"Wybrana jednostka jest niedost\u0119pna. Spr\xF3buj ponownie, wybieraj\u0105c inn\u0105 jednostk\u0119.",validationError:"B\u0142\u0105d podczas sprawdzania poprawno\u015Bci wprowadzonych danych. Sprawd\u017A swoje dane osobowe i spr\xF3buj ponownie."}},myProfile:{title:"M\xF3j profil",changeEmailText:"W celu zmiany adresu e-mail, prosimy o kontakt",changeEmailCC:"Obs\u0142uga klienta",newsletter:"Informuj mnie na bie\u017C\u0105co o nowo\u015Bciach, ofertach i ekskluzywnych ofertach cz\u0142onkowskich. ",requiredFields:"Te pola s\u0105 wymagane.",dataProtection:'<p>Szanujemy Twoj\u0105 prywatno\u015B\u0107 i jeste\u015Bmy zobowi\u0105zani do ochrony Twoich danych osobowych. Zbieramy r\xF3\u017Cne rodzaje Twoich danych osobowych, w zale\u017Cno\u015Bci od Twoich relacji z nami oraz us\u0142ug, z kt\xF3rych korzystasz. Zawsze gromadzimy i przetwarzamy Twoje dane osobowe w uzasadnionych celach i na wa\u017Cnej podstawie prawnej.</p><p>
171Aby uzyska\u0107 wi\u0119cej informacji na temat ochrony Twoich danych osobowych, zapoznaj si\u0119 z nasz\u0105 <a href="#"> Informacja o ochronie prywatno\u015Bci</a>.</p>'}},si:{loading:"",call:"Klic",cancel:"Prekli\u010Di",join:"Pridru\u017Ei se",country:"Dr\u017Eava",search:"I\u0161\u010Di",close:"Zapri",next:"Naslednji",previous:"Prej\u0161nji",select:"Izberi",eur:"\u20AC",homepage:"Home page",bookNow:"Rezervirajte zdaj",discoverMore:"Odkrijte ve\u010D",until:"do",learnMore:"Odkrijte ve\u010D",localeSwitch:{buttonTitle:"Nastavitve jezika",title:"Nastavitve",description:"Izberite \u017Eelen jezik in valuto.",selectLanguage:"Izberite jezik",selectCurrency:"Izberite valuto",footer:"Cene, izra\u017Eene v vseh valutah z izjemo evra, so okvirne.",button:"Posodobi nastavitve"},accessCode:{label:"Promocijska koda",placeholder:"Vpi\u0161ite promocijsko kodo",confirm:"Potrdi",remove:"Odstrani",invalidAccessCode:"Vpisana promocijska koda ni veljavna.",validAccessCode:"Vpisana promocijska koda je veljavna."},bookingModal:{property:"Objekt",hotelsResorts:"Hoteli in letovi\u0161\u010Da",campsites:"Kampi",date:"Prihod in odhod",guests:"Gostje",accessCode:"Promocijska koda",howMany:"Koliko gostov bo bivalo?",adults:"Odrasli",noChildren:"Otroci",selectAge:"Otrok",selectBtn:"Izberi",updateBtn:"Posodobi iskanje",closeBtn:"Zapri",openBtn:"Odpri",invalidAccessCode:"Promocijska koda ni veljavna",accessCodeIsVoucher:"Kodo vav\u010Derja vnesite v 2. koraku rezervacije",children:"otroci",age:"Starost otroka",note:"Cene namestitve so navedene po enoti in se lahko spremenijo glede na \u0161tevilo oseb in dodatne storitve.",specialOffer:"Na koledarju so prikazani samo datumi, ki so na voljo za posebno ponudbo.",datesChanged:"Datumi so se spremenili glede na razpolo\u017Eljivost.",accessCodeRemoved:"Promocijska koda je bila odstranjena, ker ni veljavna za ta objekt.",guestsAdjusted:"Prilagojeno \u0161tevilo gostov zaradi omejitev objekta.",changeDates:"Spremeni datume",datesUnavailable:"Za izbrane datume ni razpolo\u017Eljive namestitve",datesUnavailableContent:"\u017Dal za izbrane datume ni razpolo\u017Eljive namestitve v {property}. Ali \u017Eelite spremeniti datume svoje rezervacije na naslednje razpolo\u017Eljive datume: <span>{dates}</span>?",datesUnavailableForAccessCode:"Promocijska koda ni veljavna za va\u0161e datume",datesUnavailableForAccessCodeContent:"\u017Dal promocijska koda ni veljavna za izbrane datume. Ali \u017Eelite spremeniti datume svoje rezervacije na <span>{dates}</span>, da boste lahko uporabili promocijsko kodo?\xAB",unavailable:"Ni na voljo",checkoutOnly:"Samo za odjavo"},loyaltyBanner:{title:"S hvale\u017Enostjo za va\u0161e prvo bivanje",button:"Postanite \u010Dlan/-ica",membershipDiscount:"popust za \u010Dlane",becomeMember:"Postanite \u010Dlan/-ica",description:"Postanite \u010Dlan kluba MaiStar Rewards Club in prihranite do 20 %. Klubu se lahko enostavno pridru\u017Eite, tako da uporabite osebne podatke, ki jih potrebujete za rezervacijo svojega bivanja.",alreadyMember:"Ste \u017Ee v\u010Dlanjeni?",signIn:"Prijava",maistarPricesApplied:"Uporabljene so cene MaiStar",applyMaistarPrice
171s:"Uporabi cene MaiStar"},loyaltySplit:{title:"Dobrodo\u0161li v klubu MaiStar Rewards Club",accessAccount:"Dostopajte do svojega ra\u010Duna",signInText:"Vpi\u0161ite se v svoj ra\u010Dun in u\u017Eivajte v vseh prednostih programa MaiStar Rewards.",signIn:"Prijava",newHere:"Ste novi tukaj?",joinText:"Pridru\u017Eite se brezpla\u010Dno in odklenite ekskluzivne ugodnosti programa MaiStar Rewards.",register:"Registrirajte se zdaj",accessText:"S \u010Dlanstvom v klubu MaiStar Rewards boste imeli vpogled v:",benefits:"<li>Moj profil in \u017Eelje,</li><li>Moje to\u010Dke,</li><li>Moje rezervacije,</li><li>Moje nagrade.</li><li>Pridobite do 20\xA0% popusta za rezervacije, zbirajte to\u010Dke in izkoristite ekskluzivne nagrade.</li>"},unitDemand:{availabilityError:"Razpolo\u017Eljivosti ni bilo mogo\u010De dolo\u010Diti",modifySearch:"Spremeni iskanje",contactText:"Na \u017Ealost ni razpolo\u017Eljivih enot v izbranem obdobju.",contactButton:"Obrnite se na nas"},authStatus:{dashboard:"Pregled",myBookings:"Moje rezervacije",pointsActivity:"Aktivirane to\u010Dke",MaiStarRewards:"Nagrade MaiStar",myProfile:"Moj profil",openMenu:"Odpri meni",closeMenu:"Zapri meni",login:"Prijava",logout:"Odjava"},loyaltyProfile:{profileLocales:{l1050:"Hrva\u0161ko",l1040:"Italijansko",l1033:"Angle\u0161ko",l1031:"Nem\u
1710161ko",l1060:"Slovensko",l1045:"Poljsko",l2067:"Nizozemsko"},profileTitle:{mr:"G.",mrs:"Ga."},identity:"Osebni podatki",title:"Naziv",firstName:"Ime",lastName:"Priimek",dob:"Datum rojstva",locale:"Jezik",contact:"Podatki za stik",email:"E-po\u0161tni naslov",address:"Naslov",postalCode:"Po\u0161tna \u0161tevilka",city:"Kraj",phoneNumber:"Telefonska \u0161tevilka",updateSuccess:"Uspe\u0161no ste posodobili svoj profil."},formValidation:{required:"To polje je obvezno.",email:"<span>Vpi\u0161ite veljaven e-po\u0161tni naslov. Uporabite obliko zapisa, kot je name&#64;example.com.</span>",min:"To polje mora vsebovati vsaj",maxPoints:"Izbrani znesek ni na voljo.",eq:"To polje mora vsebovati",digits:"\u0161tevke",characters:"znaki",size:"Najve\u010Dja velikost datoteke je",phone:"Vpi\u0161ite veljavno telefonsko \u0161tevilko s predpono (+ ali 00). Uporabite obliko zapisa, kot je +49 2 545 8654.",reqAtLeastOne:"Izbrati morate vsaj eno mo\u017Enost.",number:"Vpi\u0161ite veljavno \u0161tevilko.",reqNumber:"Vnesti morate veljavno \u0161tevilko.",reqFile:"Izbrati morate datoteko za prenos.",notVerifiedMail:"Preverite in potrdite svoj e-po\u0161tni naslov \u0161e enkrat.",ccard:"Vpisana \u0161tevilka kartice ni veljavna.",cvv:"Vpi\u0161ite veljavno \u0161tevilko CVV, Vsebovati mora 3 \u0161tevke.",cvv34:"Vpi\u0161ite veljavno \u0161tevilko CVV, Vsebovati mora 3 ali 4 \u0161tevke.",onePositive:"Eno od polj mora biti pozitivno \u0161tevilo",birthdate:"Vnesen datum rojstva ni pravilen."},notification:{success:"Uspe\u0161no poslano.",error:"Napaka pri po\u0161iljanju.",moreInfo:"Ve\u010D informacij"},fatalError:{title:"\u017Dal nam je, vendar je pri\u0161lo je do napake.",message:"Vrnite se na doma\u010Do stran in poskusite znova.",button:"Nazaj na doma\u010Do stran",code:{propertyIdMissing:"Na tej strani ste pristali, ne da bi izbrali objekt.",unitOrRateMissing:"Na to stran ste prispeli, ne da bi izbrali enoto ali ceno.",phobsError10001:"Dose\u017Eena omejitev zahtev za zunanjo storitev rezervacij",phobsError5008:"Izbrana enota ni na razpolago. Poskusite znova z drugo enoto.",validationError:"Napaka pri potrjevanju va\u0161ih vnesenih podatkov. Preverite svoje osebne podatke in poskusite znova."}},myProfile:{title:"Moj profil",changeEmailText:"Za spremembo e-po\u0161tnega naslova se obrnite na",changeEmailCC:"Slu\u017Eba za pomo\u010D uporabnikom",newsletter:"Obve\u0161\u010Dajte me o novicah, ponudbah in ekskluzivnih ponudbah za \u010Dlane. ",requiredFields:"Ta polja so obvezna.",dataProtection:'<p>Spo\u0161tujemo va\u0161o zasebnost in smo zavezani k za\u0161\u010Diti va\u0161ih osebnih podatkov. O vas zbiramo razli\u010Dne vrste osebnih podatkov, kar je odvisno od va\u0161ega razmerja z nami in storitev, ki jih uporabljate. V vsakem primeru pa va\u0161e osebne podatke zbiramo in obdelujemo v zakonite namene in v skladu z veljavno pravno podlago.</p><p>Za ve\u010D informacij o za\u0161\u010Diti va\u0161ih osebnih podatkov glejte na\u0161e <a href="#">Obvestilo o zasebnosti</a>.</p>'}}},ma={en:{month:{month:"long"}},de:{month:{month:"long"}},hr:{month:{month:"long"}},it:{month:{month:"long"}},nl:{month:{month:"long"}},pl:{month:{month:"long"}},si:{month:{month:"long"}}};var ae=t=>VueI18n.createI18n({legacy:!1,locale:LOCALE,datetimeFormats:ma,messages:Di(Et,t),warnHtmlMessage:!1,pluralRules:{si:(e,i)=>e<=3?Math.min(e,i-1):e===4&&i>=4?3:Math.min(4,i-1)}});var ls=ae(de),xi=Vue.createApp({name:"AuthApp",components:{AuthStatus:pa,Notifications:Se},template:`
172    <AuthStatus />
173  `});xi.config.globalProperties.$AuthService=L;xi.use(ls);var ha=document.getElementById("auth-app");ha&&xi.mount(ha);var Ze=Vue.ref("EUR");Vue.watch(Ze,t=>{localStorage.setItem("currency",t)});Ze.value=localStorage.getItem("currency");function pe(){return new MutationObserver(([e])=>{Ze.value=e.target.dataset.currency}).observe(document.body,{attributes:!0,attributeFilter:["data-currency"]}),Ze}function fa(t){document.body.dataset.currency=t,Ze.value=t}function Rt(t){let e=/([\d,.]* ?)(?:EUR|€)/gm.exec(t);if(Ze.value==="USD"&&e){let i=Xn(parseFloat(e[1].replace(".",""))*USD_CONVERSION_RATE,2,2);return t.replace(e[0],`$${i}`)}return t}
173function va(){let t=Vue.ref(null),e=Vue.ref(null),i=Vue.ref(new Date),n=Vue.ref(1),a=Vue.ref(2),r=Vue.ref([]),l=Vue.ref(!1),s=Vue.ref("");async function p(){s.value=s.value.trim();try{if(s.value!==""){let v=await fetch(`${AZURE_URI}CheckAccessCode?accessCode=${encodeURIComponent(s.value)}&locale=${LOCALE}`);if(!v.ok)throw new Error("Error checking access code.");let z=await v.json(),_=z.length===1&&z[0]==="voucher";return{isValid:(t.value?z.filter(O=>O===t.value?.phobsId):z).length>0,isVoucher:_}}}catch(v){return console.error("Error checking access code:",v),{isValid:!0,isVoucher:!1}}return{isValid:!0,isVoucher:!1}}let u=Vue.computed(()=>{let v="";return v+=`date=${i.value.toISOString().substring(0,10)}`,v+=`&nights=${n.value}`,v+=`&adults=${a.value}`,v+=`&children=${r.value.map(z=>z.age).join(",")}`,s.value!==""&&(v+=`&accessCode=${encodeURIComponent(s.value)}`),e.value&&(v+=`&destination=${encodeURIComponent(e.value.slug)}`),t.value?(L.loginHint&&(v+=`&loginHint=${encodeURIComponent(L.loginHint)}`),v=`propertyId=${encodeURIComponent(t.value.phobsId)}&${v}`,`${BOOKING_APP_URI}${PREFIX}/step1?${v}&currency=${pe().value}`):`${PROPERTIES_URL}?${v}`});function b({maxChildAge:v,maxGuests:z,maxAdults:_,maxChildren:j}){let O=a.value,C=r.value.slice();if(v&&(C=C.filter(N=>N.age<=v),O+=r.value.length-C.length),O>_&&(O=_),C.length>j&&C.splice(j),O+C.length>z){let N=O+C.length-z;N<=C.length?C.splice(0,N):(O-=N-C.length,C=[])}return{adults:O,children:C}}function y(){if(console.log("roman test loading params"),le("startDate")&&le("nights")&&(i.value=new Date(le("startDate")),n.value=parseInt(le("nights"))),le("guests")){let[v,...z]=le("guests").split(";");a.value=parseInt(v),r.value=z.map(_=>({age:parseInt(_)}))}le("code")&&(s.value=le("code"))}return Vue.watch(t,()=>{if(t.value){let v=b(t.value);JSON.stringify(v)!==JSON.stringify({adults:a.value,children:r.value})&&(a.value=v.adults,r.value=v.children,l.value=!0)}}),{property:t,destination:e,startDate:i,nights:n,adults:a,children:r,guestsAdjustedWarning:l,accessCode:s,bookingUrl:u,checkAccessCodeAsync:p,loadDataFromHashParams:y}}var xt={name:"BookingCalendar",components:{Calendar:calendar},template:`
174    <div class="booking-calendar">
175      <Calendar
176        v-if="!state.isLoading.value && showCalendar"
177        v-model="dateRange"
178        selectionMode="range"
179        :minDate="denormalizeTimezone(getYesterday())"
180        :maxDate="maxDate"
181        :numberOfMonths="2"
182        :disabledDates="disabledDates"
183        :inline="true"
184        :selectOtherMonths="true"
185        :showButtonBar="false"
186        @date-select="onDateSelect">
187        <template #date="slotProps">
188          <span class="booking-calendar__tooltip" v-if="!slotProps.date.selectable">{{ $t('bookingModal.unavailable') }}</span>
189          <span class="booking-calendar__tooltip" v-if="isCheckoutOnly(slotProps.date)">{{ $t('bookingModal.checkoutOnly') }}</span>
190          <span class="booking-calendar__day"
191            :class="calendarDayClassList(slotProps.date)"
192            @mouseover="hoverHighlight(slotProps)"
193            >
194            <span class="day">{{slotProps.date.day}}</span>
195          </span>
196        </template>
197      </Calendar>
198
199      <div v-if="specialOffer?.value?.title" class="booking-calendar__disclaimer">
200        <span>{{ $t('bookingModal.specialOffer') }}</span>
201      </div>
202
203      <Teleport to="#modal-footer-teleport" v-if="!noButton">
204        <div class="modal__buttons">
205          <button
206            class="button no-margin-top"
207            @click="dateSelected">
208            {{ $t('bookingModal.selectBtn') }}
209          </button>
210        </div>
211      </Teleport>
212    </div>
213  `,props:{startDate:Date,nights:Number,availabilityCalendar:Object,specialOffer:Object,forCheckRates:Boolean,noButton:Boolean},emits:["dateSelected"],setup(t,{emit:e}){let{state:i}=ft(),{startDate:n,nights:a,forCheckRates:r}=Vue.toRefs(t),l=t.availabilityCalendar,s=Vue.ref([]),p=Vue.ref(""),u=Vue.ref(!1),b=Vue.computed(()=>l.hasAvailableDates?[...l.disabledDates.map(S=>se(S)),se(N()),...s.value[0]&&!s.value[1]?y.value.filter(S=>S.getTime()<s.value[0].getTime()):y.value]:[se(N())]),y=Vue.computed(()=>l.hasAvailableDates?[...l.checkoutOnlyDates]:[]),v=Vue.computed(()=>l.hasAvailableDates?z.value:null),z=Vue.computed(()=>l.hasAvailableDates?l.maxAvailableDate.date:null);function _(){s.value[0]||(s.value[0]=new Date),e("dateSelected",{startDate:me(s.value[0]),nights:Math.ceil((Date.parse(me(s.value[1]).toISOString().substring(0,10))-Date.parse(me(s.value[0]).toISOString().substring(0,10)))
213/(1e3*3600*24))})}function j(S){if(y.value.find(h=>Ae(se(h),s.value[0]))){s.value=[];return}let f=[...y.value,...b.value];if(f.length&&s.value[1]){for(let h of f)if(se(h.getTime())>s.value[0].getTime()&&se(h).getTime()<s.value[1].getTime()){delete s.value[1],s.value[0]=me(S);return}if(b.value.find(h=>Ae(h,s.value[1]))&&!y.value.find(h=>Ae(h,s.value[1]))){delete s.value[1];return}}if(!z.value)v.value=null;else if(s.value[1]!=null)v.value=z.value;else{let h=new Date(s.value[0]);h.setDate(h.getDate()+90),v.value=h.getTime()<z.value.getTime()?h:z.value}if(Vue.nextTick(()=>{let h=document.querySelectorAll("td:not(.p-datepicker-other-month) .p-highlight");h[0]?.classList.add("first-selected"),h.length>=2&&h[h.length-1]?.classList.add("last-selected")},0),s.value[0]&&s.value[1]&&Ae(s.value[0],s.value[1])){let h=new Date(s.value[0]);h.setDate(h.getDate()+1),s.value[1]=h}if(t.noButton&&s.value[0]&&s.value[1]){_();return}!r.value&&window.matchMedia("(min-width: 768px)").matches&&s.value[0]&&s.value[1]&&_()}function O(S){let f=new Date(S.year,S.month,S.day).getTime();return l.availability.find(h=>se(h.date).getTime()===f)}function C(S){let f=O(S);return!!(f&&y.value.find(h=>Ae(h,f.date)))}function N(){let S=new Date;return S.setDate(S.getDate()-1),S}function E(S,f){let h=new Date(S);return new Date(h.setDate(h.getDate()+f))}function Q(){s.value=[];let S=l.minAvailableDate;S!=null&&(s.value[0]=se(S.date),s.value[1]=se(E(S.date,a.value)))}function X({date:{year:S,month:f,day:h}}){let R=me(new Date(S,f,h)).toISOString().substring(0,10),[U]=s.value.map(q=>q?.toISOString().substring(0,10)),B=y.value.find(q=>q.toISOString().substring(0,10)>U&&q.toISOString().substring(0,10)<R);p.value=B?B.toISOString().substring(0,10):R}function M(S){if(!p.value)return!1;let[f,h]=s.value.map(R=>R?me(R).toISOString().substring(0,10):null);return h?!1:S>=f&&p.value>f&&S<=p.value}function W({year:S,month:f,day:h,selectable:R}){let U=me(new Date(S,f,h)).toISOString().substring(0,10),B=M(U);return{disabled:!R,checkoutOnly:C({year:S,month:f,day:h})&&!B,hoveredRange:B,lastHovered:s.value[0]&&B&&U===p.value,startDate:s.value[0]&&U===me(s.value[0]).toISOString().substring(0,10),endDate:s.value[1]&&U===me(s.value[1]).toISOString().substring(0,10)}}return s.value[0]=se(n.value),s.value[1]=se(E(n.value,a.value)),Vue.watch(()=>l.availability,()=>{l.hasAvailableDates&&!l.isDateAvailable(me(new Date(s.value[0])))&&(Q(),_())},{immediate:!0}),Vue.onMounted(()=>{"ontouchstart"in window||navigator.maxTouchPoints>0?setTimeout(()=>{u.value=!0},100):u.value=!0}),{state:i,dateRange:s,disabledDates:b,maxDate:v,onDateSelect:j,dateSelected:_,isCheckoutOnly:C,denormalizeTimezone:se,getYesterday:N,hoverHighlight:X,calendarDayClassList:W,showCalendar:u}}};var ga={name:"BookingGuests",template:`
214<div class="booking-guests">
215  <div class="booking-guests__selector">
216    <label for="adults">{{ $t('bookingModal.adults') }}</label>
217  </div>
218  <div class="booking-guests__selector">
219    <div class="booking-guests__adult-input">
220      <button @click="guests.adults -= 1" class="booking-guests__decrement" :disabled="guests.adults <= 1">-</button>
221      <input
222        disabled
223        id="adults"
224        v-model="guests.adults"
225        placeholder="adults"
226        type="number"
227        :max="maxAdults"
228        min="1">
229        <button @click="guests.adults += 1" class="booking-guests__increment" :disabled="guests.adults >= maxAdults">+</button>
230      </div>
231  </div>
232
233  <template v-if="maxChildAge > 0">
234    <div class="booking-guests__separator"></div>
235
236    <div class="booking-guests__selector">
237      <label for="childrenCount">{{ $t('bookingModal.children') }}</label>
238    </div>
239    <div class="booking-guests__selector">
240      <div class="booking-guests__children-input">
241        <button @click="noOfChildren -= 1" class="booking-guests__decrement" :disabled="noOfChildren <= 0">-</button>
242        <input
243          disabled
244          id="childrenCount"
245          :value="guests.children.length"
246          placeholder="number of children"
247          type="number"
248          :max="maxChildren"
249          min="0">
250        <button @click="noOfChildren += 1" class="booking-guests__increment" :disabled="noOfChildren >= maxChildren">+</button>
251      </div>
252    </div>
253  </template>
254
255  <template v-for="(child, index) in guests.children" :key="index">
256    <div class="booking-guests__age">
257      <label for="children">{{ $t('bookingModal.selectAge') }} {{ index + 1 }}</label>
258    </div>
259    <div class="booking-guests__age">
260      <select id="children" v-model="child.age">
261        <option v-for="n in maxChildAge" :value="n">{{ n }}</option>
262      </select>
263    </div>
264  </template>
265
266  <Teleport to="#modal-footer-teleport" v-if="!noButton">
267    <div class="modal__buttons">
268      <button
269        class="button"
270        :disabled="guests.adults < 1"
271        @click="$emit('updateGuests', guests)">
272        {{ buttonLabel ? buttonLabel : $t('bookingModal.selectBtn') }}
273      </button>
274    </div>
275  </Teleport>
276</div>
277  `,props:{children:Array,adults:Number,buttonLabel:String,property:Object,noButton:Boolean},emits:["updateGuests"],setup(t,{emit:e}){let{property:i}=Vue.toRefs(t),n=Vue.computed(()=>i.value?i.value.maxChildAge:17),a=Vue.reactive({adults:t.adults,children:[...t.children]}
277),r=Vue.ref([...t.children].length);Vue.watch(r,p=>{p<a.children.length?a.children.pop():p>a.children.length&&a.children.push({age:"1"})});let l=Vue.computed(()=>{let p=i.value?i.value.maxGuests:24,u=i.value?i.value.maxAdults:18;return p-a.children.length<=u?p-a.children.length:u}),s=Vue.computed(()=>{let p=i.value?i.value.maxGuests:24,u=i.value?i.value.maxChildren:21;return p-a.adults<=u?p-a.adults:u});return Vue.watch(i.value,()=>{a.adults>l.value&&(a.adults=l.value),a.children.length>s.value&&(a.children=a.children.slice(0,s.value))},{immediate:!0}),Vue.watch(a,p=>{(t.noButton||window.matchMedia("(min-width: 768px)").matches)&&e("updateGuests",p)},{deep:!0}),{guests:a,noOfChildren:r,maxChildAge:n,maxAdults:l,maxChildren:s}}};var Ye=class{constructor(){this.availability=[],this.loading=!1,this.loadingHash=null}get hasAvailableDates(){return this.availability.find(e=>e.rateFrom!=null)}get disabledDates(){return this.availability.filter((e,i)=>e.rateFrom==null&&this.availability[i-1]?.rateFrom==null).map(e=>e.date)}get checkoutOnlyDates(){return this.availability.filter((e,i)=>e.rateFrom==null&&this.availability[i-1]?.rateFrom!=null).map(e=>e.date)}get minAvailableDate(){return this.availability.find(e=>e.rateFrom!=null&&e.date.toISOString().split("T")[0]>=new Date().toISOString().split("T")[0])}get maxAvailableDate(){return this.availability.length===0?null:this.availability[this.availability.length-1]}isDateAvailable(e){if(e!=null){let i=this.availability.find(n=>n.date!=null&&Ae(n.date,e));return i!=null&&i.rateFrom!=null}return!1}isDateRangeAvailable(e,i){let n=new Date(new Date(e).setHours(0)),a=new Date(new Date(n));return a.setDate(a.getDate()+i),this.availability.filter(({date:r,rateFrom:l})=>r.getTime()>=n.getTime()&&r.getTime()<a.getTime()&&l!=null).length===i}getFirstAvailableDateRange(e){let i=new Date(this.minAvailableDate?.date),n=new Date(this.maxAvailableDate?.date);for(;i.getTime()<=n.getTime();){if(this.isDateRangeAvailable(i,e))return i;i.setDate(i.getDate()+1)}return null}reset(){this.availability=[],this.loading=!1,this.loadingHash=null}async loadAvailability({propertyIds:e,unitId:i,accessCode:n,specialOffer:a}){let r=JSON.stringify({propertyIds:e,unitId:i,accessCode:n,specialOffer:a});if(this.loadingHash!==r){this.loading=!0,this.loadingHash=r;try{let l=(e||[]).filter(y=>y.length===32);if(l.length===0){this.availability=[],this.loading=!1;return}let s={id:l.join(";"),accessCode:n||"",unitId:i,locale:LOCALE},p=Object.keys(s).filter(y=>s[y]!=null).map(y=>`${y}=${s[y]}`).join("&");this.availability=[];let u=await fetch(`${AZURE_URI}GetAvailabilityCalendar?${p}`);if(!u.ok)throw new Error(u.statusText);let b=await u.json();a&&(a.periods.length||a.days)&&(b=b.map(y=>{let v=a.periods.length===0||a.periods.some(_=>y.date>=_.start_date.split("T")[0]&&y.date<=_.end_date.split("T")[0]),z=!a.days||a.days.length<7||!a.days.some(_=>_===1)||a.days[(new Date(y.date).getDay()+6)%7];return v&&z?y:{date:y.date}})),this.availability=b.map(y=>({...y,date:new Date(new Date(y.date))})),this.loading=!1}catch(l){throw this.loading=!1,new Error(l)}}}};var us=ae(de),Fi=Vue.createApp({name:"BookingWidgetApp",components:{BookingCalendar:xt,BookingGuests:ga},template:`
278  <div>
279    <Teleport to="#booking-widget-trigger" v-if="triggerExistsOnPage">
280      <div class="booking-widget-trigger">
281        <div class="booking-widget-trigger__fields">
282          <div class="booking-widget-trigger__field" @click="isActive = true; level = 'property'">
283            <div>
284              <i class="icon-pin"></i>
285              <span>{{ propertySearch || $t('bookingWidget.whereAreYouGoing') }}</span>
286            </div>
287          </div>
288          <div class="booking-widget-trigger__field booking-widget-trigger__date" @click="isActive = true; level = 'calendar'">
289            <div>
290              <i class="icon-calendar"></i>
291              <span>{{ dateInputValue }}</span>
292            </div>
293          </div>
294          <div class="booking-widget-trigger__field booking-widget-trigger__guests" @click="isActive = true; level = 'guests'">
295            <div>
296              <i class="icon-adult"></i>
297              <span>{{ guestsInputValue }}</span>
298            </div>
299          </div>
300        </div>
301        <button class="booking-widget-trigger__button button" @click="bookNowAsync">
302          {{ $t('bookNow') }}
303        </button>
304      </div>
305    </Teleport>
306
307    <Teleport to="#booking-bar" v-if="bookingBarExistsOnPage">
308      <div class="booking-bar">
309        <button class="button button--primary hide-md-up" @click="isActive = true">
310          {{ $t('bookNow') }}
311        </button>
312
313        <div class="booking-bar__wrapper hide-md-down">
314          <button class="booking-bar__button" @click="isActive = true; level = 'calendar'">
315            <i class="icon-calendar"></i>
316            {{ dateInputValue }}
317          </button>
318
319          <button class="booking-bar__button" @click="isActive = true; level = 'guests'">
320            <i class="icon-adult"></i>
321            {{ guestsInputValue }}
322          </button>
323
324          <button @click="bookNowAsync" class="button button--primary" v-text="$t('bookNow')" />
325        </div>
326      </div>
327    </Teleport>
328
329    <div class="booking-widget" v-if="isActive" :class="{'booking-widget--has-popover': level !== null, 'booking-widget--closing': closing}">
330      <header class="header header--simple">
331        <div class="header__top">
332          <div class="header-logos">
333            <a :href="HOME_URL" :title="HOME_TITLE" class="header-logos__maistra">
334              <picture>
335                <source media="(min-width: 992px)" :srcset="LOGO.desktop">
336                <img :src="LOGO.mobile" :alt="HOME_TITLE" width="48" height="48">
337              </picture>
338            </a>
339          </div>
340          <div class="header__icons">
341            <button class="button button--blank" @click="closeWidget" :title="$t('close')">
342              <span class="hide-sm-down">{{ $t('close') }}</span>
343              <i class="icon-close"></i>
344            </button>
345          </div>
346        </div>
347      </header>
348      <div class="booking-widget__content">
349        <div class="h1 no-margin-top">
350          {{ $t('bookingWidget.planYourStay') }}
351          <button class="button button--blank mobile-only" @click="closeWidget" :title="$t('close')">
352            <span class="hide-sm-down">{{ $t('close') }}</span>
353            <i class="icon-close"></i>
354          </button>
355        </div>
356
357        <div class="booking-widget__container">
358          <div class="booking-widget__form">
359            <div class="booking-widget__fields">
360              <div>
361                <label for="bookingWidgetProperty">{{ $t('bookingModal.property') }}</label>
362                <i class="icon-pin"></i>
363                <input type="text" id="bookingWidgetProperty" :placeholder="$t('bookingWidget.whereAreYouGoing')" autocomplete="off" v-model="propertySearch" @focus="handlePropertyInputFocus" />
364              </div>
365              <div class="date">
366                <label for="bookingWidgetDate">{{ $t('bookingModal.date') }}</label>
367                <i class="icon-calendar"></i>
368                <input type="text" id="bookingWidgetDate" placeholder="Check-in - Check-out" @focus="isActive = true; level = 'calendar'" :value="dateInputValue" readonly />
369              </div>
370              <div class="guests">
371                <label for="bookingWidgetGuests">{{ $t('bookingModal.guests') }}</label>
372                <i class="icon-adult"></i>
373                <input type="text" id="bookingWidgetGuests" @focus="handleGuestsInputFocus" :value="guestsInputValue" readonly />
374                <div
375                  v-if="guestsAdjustedWarning"
376                  class="warning-message">
377                  <i class="icon-warning"></i>
378                  {{ $t('bookingModal.guestsAdjusted') }}
379                </div>
380              </div>
381              <div v-if="isActive" class="booking-widget__access-code" :class="{'error': accessCodeInfo.isValid === false && accessCode !== ''}">
382                <label for="bookingWidgetCode">{{ $t('bookingModal.accessCode') }}</label>
383                <i class="icon-fee"></i>
384                <input type="text" id="bookingWidgetCode" :placeholder="$t('accessCode.placeholder')" v-model="accessCode" />
385                <button @click="accessCode = ''; accessCodeInfo.isValid = null"><i class="icon-close"></i></button>
386                <div
387                  v-if="accessCodeInfo.isValid === false && accessCode !== ''"
388                  class="error-message">
389                  {{ accessCodeInfo.isVoucher ? $t('bookingModal.accessCodeIsVoucher') : $t('accessCode.invalidAccessCode') }}
390                </div>
391              </div>
392            </div>
393            <button class="booking-widget__button button" @click="bookNowAsync">
394              {{ $t('bookNow') }}
395            </button>
396          </div>
397          <div class="booking-widget__destination popover" v-if="level === 'property'">
398            <div class="h3">
399              <button @click="closePropertyPopover"><i class="icon-caret-left"></i></button><div>{{ $t('bookingModal.property') }}</div>
400            </div>
401            <div class="popover-content">
402              <label>
403                <i class="icon-pin"></i>
404                <input type="text" id="bookingWidgetPropertyPopover" :placeholder="$t('bookingWidget.whereAreYouGoing')" autocomplete="off" v-model="propertySearch" @focus="propertySearch = ''" />
405              </label>
406              <div v-if="propertySearch.length === 0 || (destinationResults.length + propertyResults.length === 0)" class="search-results">
407                <div v-if="propertySearch.length > 0 && !property" class="no-results">
408                  <div class="h4 no-margin">{{ $t('bookingWidget.noResultsTitle') }}</div>
409                  <div>{{ $t('bookingWidget.noResultsMessage') }}</div>
410                </div>
411                <div>
412                  <div class="title">{{ BOOKING_WIDGET_CMS_DATA.topPropertiesTitle }}</div>
413                  <ul class="no-bullets">
414                    <li v-for="p in propertySuggestions" :key="p.phobsId">
415                      <button @click="updateProperty(p)">
416                        <span>{{ p.title }}</span>
417                        <span class="stars stars--small" :class="'theme--' + p.brand">
418                          <i v-for="n in p.stars" class="icon-star"></i>
419                        </span>
420                      </button>
421                    </li>
422                  </ul>
423                </div>
424                <div>
425                  <div class="title">{{ BOOKING_WIDGET_CMS_DATA.topDestinationsTitle }}</div>
426                  <ul class="no-bullets">
427                    <li v-for="destination in destinationSuggestions" :key="destination.slug">
428                      <button @click="updateDestination(destination)">
429                        <i class="icon-pin"></i>
430                        <span>{{ destination.title }}</span>
431                      </button>
432                    </li>
433                  </ul>
434                </div>
435              </div>
436              <div v-else class="search-results">
437                <div v-if="destinationResults.length > 0">
438                  <div class="title">{{ $t('destination') }}</div>
439                  <ul class="no-bullets">
440                    <li v-for="destination in destinationResults" :key="destination.slug">
441                      <button @click="updateDestination(destination)">
442                        <i class="icon-pin"></i>
443                        <span>{{ destination.title }}</span>
444                      </button>
445                    </li>
446                  </ul>
447                </div>
448                <div v-if="propertyResults.length > 0">
449                  <div class="title">{{ $t('focusedSearch.properties') }}</div>
450                  <ul class="no-bullets">
451                    <li v-for="p in propertyResults" :key="p.phobsId">
452                      <button @click="updateProperty(p)">
453                        <span>{{ p.title }}</span>
454                        <span class="stars stars--small" :class="'theme--' + p.brand">
455                          <i v-for="n in p.stars" class="icon-star"></i>
456                        </span>
457                      </button>
458                    </li>
459                  </ul>
460                </div>
461              </div>
462            </div>
463          </div>
464          <div class="booking-widget__calendar popover" v-if="level === 'calendar'">
465            <div class="h3">
466              <button @click="level = null"><i class="icon-caret-left"></i></button><div>{{ $t('bookingModal.date') }}</div>
467            </div>
468            <div class="popover-content">
469              <BookingCalendar
470                noButton
471                :startDate="startDate"
472                :nights="nights"
473                :availabilityCalendar="availabilityCalendar"
474                @dateSelected="updateCalendar" />
475            </div>
476            <div>
477              <button class="button button--primary" @click="applyCalendar">{{ $t('select') }}</button>
478            </div>
479          </div>
480          <div class="booking-widget__guests popover" v-if="level === 'guests'">
481            <div class="h3">
482              <button @click="level = null"><i class="icon-caret-left"></i></button><div>{{ $t('bookingModal.guests') }}</div>
483            </div>
484            <div class="popover-content">
485              <BookingGuests :adults="adults" :children="children" :property="property" @updateGuests="updateGuests" noButton />
486            </div>
487            <div>
488              <button class="button button--primary" @click="applyGuests">{{ $t('select') }}</button>
489            </div>
490          </div>
491        </div>
492      </div>
493    </div>
494  </div>
495  `,setup(){let{t}=VueI18n.useI18n(),e=Vue.ref(!1),i=Vue.ref(!1),n=Vue.ref(!1),a=Vue.ref(!1),r=Vue.ref(null),l=Vue.ref([]),{property:s,destination:p,startDate:u,nights:b,adults:y,children:v,guestsAdjustedWarning:z,accessCode:_,bookingUrl:j,checkAccessCodeAsync:O,loadDataFromHashParams:C}=va(),N=Vue.reactive(new Ye);le("bookingWidgetOpen")==="true"&&(Y({detail:{level:"property",propertyId:le("property")}}),C());let E=Vue.ref(""),Q=Vue.computed(()=>{if(E.value.length===0)return[];let g=E.value.toLowerCase().split(" ");return l.value.filter(P=>g.every(x=>P.searchTokens.some(te=>te.startsWith(x)))).sort((P,x)=>{let te=Math.min(...g.map(ie=>P.searchTokens.findIndex(Ge=>Ge.startsWith(ie))).filter(ie=>ie!==-1)),ke=Math.min(...g.map(ie=>x.searchTokens.findIndex(Ge=>Ge.startsWith(ie))).filter(ie=>ie!==-1));return te-ke})}),X=Vue.computed(()=>BOOKING_WIDGET_CMS_DATA.topProperties.map(g=>l.value.find(P=>`${P.propertyGroup}/_index`===g.property)).filter(g=>g)),M=Vue.computed(()=>E.value.length===0?[]:DESTINATIONS.filter(g=>g.title.toLowerCase().startsWith(E.value.toLowerCase()))),W=Vue.computed(()=>BOOKING_WIDGET_CMS_DATA.topDestinations.map(g=>DESTINATIONS.find(P=>P.slug===g.destination)).filter(g=>g)),S=Vue.ref(null),f=Vue.computed(()=>u.value&&b.value?ea({startDate:u.value,nights:b.value}):""),h=Vue.ref(null),R=Vue.computed(()=>ta({adults:y.value,children:v.value},t,s?.maxChildAge===0)),U=Vue.reactive({code:_.value,isValid:null,isRemoved:!1}),B=0;Vue.watch(e,g=>{g?(B=window.scrollY,document.body.classList.add("booking-widget-active"),window.scrollTo({top:0}),ve(),setTimeout(()=>{document.addEventListener("mouseup",I),r.value==="property"&&E.value.length===0&&q()},300),Ne("bookingWidgetOpen","true")):(a.value=!1,document.body.classList.remove("booking-widget-active"),window.scrollTo({top:B}),document.removeEventListener("mouseup",I),!s.value&&!p.value&&(E.value=""),_e("bookingWidgetOpen"),_e("property"),_e("startDate"),_e("nights"),_e("guests"),_e("code"))},{immediate:!0});function q(){let g;window.matchMedia(`(min-width: ${window.BREAKPOINTS.sm}px)`).matches?g=document.getElementById("bookingWidgetProperty"):g=document.getElementById("bookingWidgetPropertyPopover"),g.focus(),g.click()}function Be(){a.value=!0,setTimeout(()=>{e.value=!1},30)}
495Vue.watch(r,()=>{Vue.nextTick(()=>{window.scrollTo({top:0}),window.scrollTo(window.scrollX,window.scrollY+1),window.scrollTo(window.scrollX,window.scrollY-1)})});async function ve(){if(l.value.length===0){let g=await fetch(`${AZURE_URI}GetProperties?locale=${LOCALE}`,{priority:"high"});l.value=(await g.json()).filter(P=>P.phobsId).map(P=>({...P,searchTokens:[...P.title.toLowerCase().split(" ").filter(x=>x.length>2),P.destination,P.menuGroup,t(`propertyTypes.${P.menuGroup}`).toLowerCase(),...P.bundleTitle?P.bundleTitle.toLowerCase().split(" ").filter(x=>x.length>2):[]]}))}}function we(g){E.value=g.title,p.value=g,s.value=null,r.value=window.matchMedia("(max-width: 768px)").matches?null:"calendar",N.reset()}function De(g,P=!1){s.value=g,E.value=g.title,p.value=null,N.loadAvailability({propertyIds:[g.phobsId],accessCode:_.value}),P||(r.value=window.matchMedia("(max-width: 768px)").matches?null:"calendar")}function lt(g){if(window.matchMedia("(max-width: 768px)").matches){S.value={startDate:g.startDate,nights:g.nights};return}u.value=g.startDate,b.value=g.nights}function D(){S.value&&(u.value=S.value.startDate,b.value=S.value.nights,S.value=null),r.value=null}function ct(g){if(window.matchMedia("(max-width: 768px)").matches){h.value={adults:g.adults,children:[...g.children]};return}y.value=g.adults,v.value=[...g.children]}function m(){h.value&&(y.value=h.value.adults,v.value=h.value.children),r.value=null}async function w(){if(s.value&&!BOOKING_WIDGET_CMS_DATA.search&&Ne("property",s.value.phobsId),Ne("startDate",`${u.value.toISOString().substring(0,10)}`),Ne("nights",`${b.value}`),Ne("guests",`${y.value}${v.value.length?";":""}${v.value.map(P=>P.age).join(";")}`),_.value?Ne("code",_.value):_e("code"),!e.value&&E.value.length===0){e.value=!0,r.value="property";return}z.value=!1;let g=await O();if(U.code=_.value,U.isValid=g.isValid,!g.isValid){e.value=!0;return}s.value&&AlgoliaEvents&&AlgoliaEvents.convertedFilters({eventName:"Booking Intent",...AlgoliaEvents.propertyParamsCache}),window.location=j.value}function A(){e.value=!0,r.value="property",E.value=""}function ee(){e.value=!0,r.value="guests",z.value=!1}function V(){(E.value.length===0||!s.value&&!p.value)&&(E.value=t("offers.allProperties"),s.value=null,p.value=null,N.reset()),s.value&&(E.value=s.value.title),p.value&&(E.value=p.value.title),r.value=null}function I(g){let P=g.composedPath();r.value==="property"&&!P.some(x=>x.matches?.(".booking-widget__destination"))&&!P.some(x=>x.matches?.("#bookingWidgetProperty"))&&V(),r.value==="calendar"&&!P.some(x=>x.matches?.(".booking-widget__calendar"))&&!P.some(x=>x.matches?.("#bookingWidgetDate"))&&(r.value=null),r.value==="guests"&&!P.some(x=>x.matches?.(".booking-widget__guests"))&&!P.some(x=>x.matches?.("#bookingWidgetGuests"))&&(r.value=null)}async function Y({detail:g}){r.value=g.level||"property",e.value=!0,g.accessCode&&(_.value=g.accessCode),g.adults&&(y.value=g.adults),g.children&&(v.value=g.children);let P=g.propertyId||window.PROPERTY_PHOBS_ID;if(P){await ve();let x=l.value.find(te=>te.phobsId===P);x&&De(x,!0),g.level||(r.value="calendar")}else BOOKING_WIDGET_CMS_DATA.search&&(await ve(),E.value=BOOKING_WIDGET_CMS_DATA.search)}return Vue.onMounted(async()=>{window.addEventListener("open-booking-overlay",Y),i.value=!!document.getElementById("booking-widget-trigger"),n.value=!!document.getElementById("booking-bar");let g=window.PROPERTY_PHOBS_ID;if(g){await ve();let P=l.value.find(x=>x.phobsId===g);P&&De(P,!0)}else BOOKING_WIDGET_CMS_DATA.search&&(await ve(),E.value=BOOKING_WIDGET_CMS_DATA.search)}),Vue.onUnmounted(()=>{window.removeEventListener("open-booking-overlay",Y)}),{LOGO,HOME_TITLE,HOME_URL,BOOKING_WIDGET_CMS_DATA,isActive:e,triggerExistsOnPage:i,bookingBarExistsOnPage:n,closing:a,level:r,property:s,propertySearch:E,propertyResults:Q,propertySuggestions:X,destinationResults:M,destinationSuggestions:W,availabilityCalendar:N,dateInputValue:f,guestsInputValue:R,startDate:u,nights:b,adults:y,children:v,guestsAdjustedWarning:z,accessCode:_,accessCodeInfo:U,handlePropertyInputFocus:A,closePropertyPopover:V,updateDestination:we,updateProperty:De,updateCalendar:lt,applyCalendar:D,handleGuestsInputFocus:ee,updateGuests:ct,applyGuests:m,bookNowAsync:w,closeWidget:Be}}
495}),ba=document.getElementById("booking-widget-app");ba&&(Fi.use(us),Fi.use(primevue,{locale:Dt(LOCALE)}),Fi.mount(ba));window.triggerBookingWidget=function(t){let e=new CustomEvent("open-booking-overlay",{detail:t});window.dispatchEvent(e)};document.addEventListener("DOMContentLoaded",()=>{document.querySelectorAll('.button--primary[href="#/check-rates"]').forEach(t=>{t.addEventListener("click",e=>{e.preventDefault(),window.triggerBookingWidget({source:"check-rates-button"})})})});window.addEventListener("pageshow",function(t){t.persisted&&le("bookingWidgetOpen")==="true"&&window.triggerBookingWidget({})});var Pe=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},Bi={exports:{}};(function(t,e){var i=200,n="__lodash_hash_undefined__",a=9007199254740991,r="[object Arguments]",l="[object Array]",s="[object Boolean]",p="[object Date]",u="[object Error]",b="[object Function]",y="[object GeneratorFunction]",v="[object Map]",z="[object Number]",_="[object Object]",j="[object Promise]",O="[object RegExp]",C="[object Set]",N="[object String]",E="[object Symbol]",Q="[object WeakMap]",X="[object ArrayBuffer]",M="[object DataView]",W="[object Float32Array]",S="[object Float64Array]",f="[object Int8Array]",h="[object Int16Array]",R="[object Int32Array]",U="[object Uint8Array]",B="[object Uint8ClampedArray]",q="[object Uint16Array]",Be="[object Uint32Array]",ve=/[\\^$.*+?()[\]{}|]/g,we=/\w*$/,De=/^\[object .+?Constructor\]$/,lt=/^(?:0|[1-9]\d*)$/,D={};D[r]=D[l]=D[X]=D[M]=D[s]=D[p]=D[W]=D[S]=D[f]=D[h]=D[R]=D[v]=D[z]=D[_]=D[O]=D[C]=D[N]=D[E]=D[U]=D[B]=D[q]=D[Be]=!0,D[u]=D[b]=D[Q]=!1;var ct=typeof Pe=="object"&&Pe&&Pe.Object===Object&&Pe,m=typeof self=="object"&&self&&self.Object===Object&&self,w=ct||m||Function("return this")(),A=e&&!e.nodeType&&e,ee=A&&!0&&t&&!t.nodeType&&t,V=ee&&ee.exports===A;function I(o,c){return o.set(c[0],c[1]),o}function Y(o,c){return o.add(c),o}function g(o,c){for(var d=-1,k=o?o.length:0;++d<k&&c(o[d],d,o)!==!1;);return o}function P(o,c){for(var d=-1,k=c.length,Z=o.length;++d<k;)o[Z+d]=c[d];return o}function x(o,c,d,k){var Z=-1,J=o?o.length:0;for(k&&J&&(d=o[++Z]);++Z<J;)d=c(d,o[Z],Z,o);return d}function te(o,c){for(var d=-1,k=Array(o);++d<o;)k[d]=c(d);return k}function ke(o,c){return o?.[c]}function ie(o){var c=!1;if(o!=null&&typeof o.toString!="function")try{c=!!(o+"")}catch{}return c}function Ge(o){var c=-1,d=Array(o.size);return o.forEach(function(k,Z){d[++c]=[Z,k]}),d}function ji(o,c){return function(d){return o(c(d))}}function Mn(o){var c=-1,d=Array(o.size);return o.forEach(function(k){d[++c]=k}),d}var qo=Array.prototype,Ko=Function.prototype,St=Object.prototype,Ai=w["__core-js_shared__"],Dn=(function(){var o=/[^.]+$/.exec(Ai&&Ai.keys&&Ai.keys.IE_PROTO||"");return o?"Symbol(src)_1."+o:""})(),En=Ko.toString,je=St.hasOwnProperty,zt=St.toString,Zo=RegExp("^"+En.call(je).replace(ve,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),Rn=V?w.Buffer:void 0,xn=w.Symbol,Ln=w.Uint8Array,Yo=ji(Object.getPrototypeOf,Object),Qo=Object.create,Jo=St.propertyIsEnumerable,Xo=qo.splice,Nn=Object.getOwnPropertySymbols,er=Rn?Rn.isBuffer:void 0,tr=ji(Object.keys,Object),_i=We(w,"DataView"),ut=We(w,"Map"),Si=We(w,"Promise"),zi=We(w,"Set"),Pi=We(w,"WeakMap"),dt=We(Object,"create"),ir=xe(_i),nr=xe(ut),ar=xe(Si),or=xe(zi),rr=xe(Pi),Vn=xn?xn.prototype:void 0,Fn=Vn?Vn.valueOf:void 0;function Ee(o){var c=-1,d=o?o.length:0;for(this.clear();++c<d;){var k=o[c];this.set(k[0],k[1])}}function sr(){this.__data__=dt?dt(null):{}}function lr(o){return this.has(o)&&delete this.__data__[o]}function cr(o){var c=this.__data__;if(dt){var d=c[o];return d===n?void 0:d}return je.call(c,o)?c[o]:void 0}function ur(o){var c=this.__data__;return dt?c[o]!==void 0:je.call(c,o)}function dr(o,c){var d=this.__data__;return d[o]=dt&&c===void 0?n:c,this}Ee.prototype.clear=sr,Ee.prototype.delete=lr,Ee.prototype.get=cr,Ee.prototype.has=ur,Ee.prototype.set=dr;function ge(o){var c=-1,d=o?o.length:0;for(this.clear();++c<d;){var k=o[c];this.set(k[0],k[1])}}function pr(){this.__data__=[]}function mr(o){var c=this.__data__,d=Pt(c,o);if(d<0)return!1;var k=c.length-1;return d==k?c.pop():Xo.call(c,d,1),!0}function hr(o){var c=this.__data__,d=Pt(c,o);return d<0?void 0:c[d][1]}function fr(o){return Pt(this.__data__,o)>-1}function vr(o,c){var d=this.__data__,k=Pt(d,o);return k<0?d.push([o,c]):d[k][1]=c,this}ge.prototype.clear=pr,ge.prototype.delete=mr,ge.prototype.get=hr,ge.prototype.has=fr,ge.prototype.set=vr;function Ue(o){var c=-1,d=o?o.length:0;for(this.clear();++c<d;){var k=o[c];this.set(k[0],k[1])}}function gr(){this.__data__={hash:new Ee,map:new(ut||ge),string:new Ee}}function br(o){return Tt(this,o).delete(o)}function yr(o){return Tt(this,o).get(o)}function wr(o){return Tt(this,o).has(o)}function kr(o,c){return Tt(this,o).set(o,c),this}Ue.prototype.clear=gr,Ue.prototype.delete=br,Ue.prototype.get=yr,Ue.prototype.has=wr,Ue.prototype.set=kr;function He(o){this.__data__=new ge(o)}function jr(){this.__data__=new ge}function Ar(o){return this.__data__.delete(o)}
vendor: 4,629 bytes, line 495
495function _r(o){return this.__data__.get(o)}function Sr(o){return this.__data__.has(o)}function zr(o,c){var d=this.__data__;if(d instanceof ge){var k=d.__data__;if(!ut||k.length<i-1)return k.push([o,c]),this;d=this.__data__=new Ue(k)}return d.set(o,c),this}He.prototype.clear=jr,He.prototype.delete=Ar,He.prototype.get=_r,He.prototype.has=Sr,He.prototype.set=zr;function Pr(o,c){var d=Oi(o)||Qr(o)?te(o.length,String):[],k=d.length,Z=!!k;for(var J in o)(c||je.call(o,J))&&!(Z&&(J=="length"||qr(J,k)))&&d.push(J);return d}function $n(o,c,d){var k=o[c];(!(je.call(o,c)&&Hn(k,d))||d===void 0&&!(c in o))&&(o[c]=d)}function Pt(o,c){for(var d=o.length;d--;)if(Hn(o[d][0],c))return d;return-1}function Tr(o,c){return o&&Bn(c,Ii(c),o)}function Ti(o,c,d,k,Z,J,ce){var ne;if(k&&(ne=J?k(o,Z,J,ce):k(o)),ne!==void 0)return ne;if(!Ct(o))return o;var Kn=Oi(o);if(Kn){if(ne=Ur(o),!c)return $r(o,ne)}else{var qe=Re(o),Zn=qe==b||qe==y;if(Xr(o))return Er(o,c);if(qe==_||qe==r||Zn&&!J){if(ie(o))return J?o:{};if(ne=Hr(Zn?{}:o),!c)return Br(o,Tr(ne,o))}else{if(!D[qe])return J?o:{};ne=Wr(o,qe,Ti,c)}}ce||(ce=new He);var Yn=ce.get(o);if(Yn)return Yn;if(ce.set(o,ne),!Kn)var Qn=d?Gr(o):Ii(o);return g(Qn||o,function(Mi,Ot){Qn&&(Ot=Mi,Mi=o[Ot]),$n(ne,Ot,Ti(Mi,c,d,k,Ot,o,ce))}),ne}function Cr(o){return Ct(o)?Qo(o):{}}function Or(o,c,d){var k=c(o);return Oi(o)?k:P(k,d(o))}function Ir(o){return zt.call(o)}function Mr(o){if(!Ct(o)||Zr(o))return!1;var c=qn(o)||ie(o)?Zo:De;return c.test(xe(o))}function Dr(o){if(!Un(o))return tr(o);var c=[];for(var d in Object(o))je.call(o,d)&&d!="constructor"&&c.push(d);return c}function Er(o,c){if(c)return o.slice();var d=new o.constructor(o.length);return o.copy(d),d}function Ci(o){var c=new o.constructor(o.byteLength);return new Ln(c).set(new Ln(o)),c}function Rr(o,c){var d=c?Ci(o.buffer):o.buffer;return new o.constructor(d,o.byteOffset,o.byteLength)}function xr(o,c,d){var k=c?d(Ge(o),!0):Ge(o);return x(k,I,new o.constructor)}function Lr(o){var c=new o.constructor(o.source,we.exec(o));return c.lastIndex=o.lastIndex,c}function Nr(o,c,d){var k=c?d(Mn(o),!0):Mn(o);return x(k,Y,new o.constructor)}function Vr(o){return Fn?Object(Fn.call(o)):{}}function Fr(o,c){var d=c?Ci(o.buffer):o.buffer;return new o.constructor(d,o.byteOffset,o.length)}function $r(o,c){var d=-1,k=o.length;for(c||(c=Array(k));++d<k;)c[d]=o[d];return c}function Bn(o,c,d,k){d||(d={});for(var Z=-1,J=c.length;++Z<J;){var ce=c[Z],ne=k?k(d[ce],o[ce],ce,d,o):void 0;$n(d,ce,ne===void 0?o[ce]:ne)}return d}function Br(o,c){return Bn(o,Gn(o),c)}function Gr(o){return Or(o,Ii,Gn)}function Tt(o,c){var d=o.__data__;return Kr(c)?d[typeof c=="string"?"string":"hash"]:d.map}function We(o,c){var d=ke(o,c);return Mr(d)?d:void 0}var Gn=Nn?ji(Nn,Object):is,Re=Ir;(_i&&Re(new _i(new ArrayBuffer(1)))!=M||ut&&Re(new ut)!=v||Si&&Re(Si.resolve())!=j||zi&&Re(new zi)!=C||Pi&&Re(new Pi)!=Q)&&(Re=function(o){var c=zt.call(o),d=c==_?o.constructor:void 0,k=d?xe(d):void 0;if(k)switch(k){case ir:return M;case nr:return v;case ar:return j;case or:return C;case rr:return Q}return c});function Ur(o){var c=o.length,d=o.constructor(c);return c&&typeof o[0]=="string"&&je.call(o,"index")&&(d.index=o.index,d.input=o.input),d}function Hr(o){return typeof o.constructor=="function"&&!Un(o)?Cr(Yo(o)):{}}function Wr(o,c,d,k){var Z=o.constructor;switch(c){case X:return Ci(o);case s:case p:return new Z(+o);case M:return Rr(o,k);case W:case S:case f:case h:case R:case U:case B:case q:case Be:return Fr(o,k);case v:return xr(o,k,d);case z:case N:return new Z(o);case O:return Lr(o);case C:return Nr(o,k,d);case E:return Vr(o)}}function qr(o,c){return c=c??a,!!c&&(typeof o=="number"||lt.test(o))&&o>-1&&o%1==0&&o<c}function Kr(o){var c=typeof o;return c=="string"||c=="number"||c=="symbol"||c=="boolean"?o!=="__proto__":o===null}function Zr(o){return!!Dn&&Dn in o}function Un(o){var c=o&&o.constructor,d=typeof c=="function"&&c.prototype||St;return o===d}function xe(o){if(o!=null){try{return En.call(o)}catch{}try{return o+""}catch{}}return""}function Yr(o){return Ti(o,!0,!0)}function Hn(o,c){return o===c||o!==o&&c!==c}function Qr(o){return Jr(o)&&je.call(o,"callee")&&(!Jo.call(o,"callee")||zt.call(o)==r)}var Oi=Array.isArray;function Wn(o){return o!=null&&es(o.length)&&!qn(o)}function Jr(o){return ts(o)&&Wn(o)}var Xr=er||ns;function qn(o){var c=Ct(o)?zt.call(o):"";return c==b||c==y}function es(o){return typeof o=="number"&&o>-1&&o%1==0&&o<=a}function Ct(o){var c=typeof o;return!!o&&(c=="object"||c=="function")}function ts(o){return!!o&&typeof o=="object"}function Ii(o){return Wn(o)?Pr(o):Dr(o)}function is(){return[]}function ns(){return!1}t.exports=Yr}
495)(Bi,Bi.exports);var gt=Bi.exports,Gi=function(){return Gi=Object.assign||function(e){for(var i,n=1,a=arguments.length;n<a;n++){i=arguments[n];for(var r in i)Object.prototype.hasOwnProperty.call(i,r)&&(e[r]=i[r])}return e},Gi.apply(this,arguments)};function ds(t,e,i,n){function a(r){return r instanceof i?r:new i(function(l){l(r)})}return new(i||(i=Promise))(function(r,l){function s(b){try{u(n.next(b))}catch(y){l(y)}}function p(b){try{u(n.throw(b))}catch(y){l(y)}}function u(b){b.done?r(b.value):a(b.value).then(s,p)}u((n=n.apply(t,e||[])).next())})}function ps(t,e){var i={label:0,sent:function(){if(r[0]&1)throw r[1];return r[1]},trys:[],ops:[]},n,a,r,l;return l={next:s(0),throw:s(1),return:s(2)},typeof Symbol=="function"&&(l[Symbol.iterator]=function(){return this}),l;function s(u){return function(b){return p([u,b])}}function p(u){if(n)throw new TypeError("Generator is already executing.");for(;l&&(l=0,u[0]&&(i=0)),i;)try{if(n=1,a&&(r=u[0]&2?a.return:u[0]?a.throw||((r=a.return)&&r.call(a),0):a.next)&&!(r=r.call(a,u[1])).done)return r;switch(a=0,r&&(u=[u[0]&2,r.value]),u[0]){case 0:case 1:r=u;break;case 4:return i.label++,{value:u[1],done:!1};case 5:i.label++,a=u[1],u=[0];continue;case 7:u=i.ops.pop(),i.trys.pop();continue;default:if(r=i.trys,!(r=r.length>0&&r[r.length-1])&&(u[0]===6||u[0]===2)){i=0;continue}if(u[0]===3&&(!r||u[1]>r[0]&&u[1]<r[3])){i.label=u[1];break}if(u[0]===6&&i.label<r[1]){i.label=r[1],r=u;break}if(r&&i.label<r[2]){i.label=r[2],i.ops.push(u);break}r[2]&&i.ops.pop(),i.trys.pop();continue}u=e.call(t,i)}catch(b){u=[6,b],a=0}finally{n=r=0}if(u[0]&5)throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}}function Lt(t,e,i,n,a){return ds(this,void 0,void 0,function(){var r,l;return ps(this,function(s){switch(s.label){case 0:if(i===void 0)return[2];l=0,s.label=1;case 1:return l<i.length?[4,i[l](t,e,n,a)]:[3,4];case 2:if(r=s.sent(),r==="canceled")return[3,4];s.label=3;case 3:return l++,[3,1];case 4:return r!=="canceled"?[2,r]:[2]}})})}var Ui=function(t,e){return e===void 0&&(e={}),t?{trackedAnalytics:Gi({sdkCode:t.sdkCode,sdkSemver:t.sdkSemver,techVersion:t.techVersion},e)}:null},hn=(function(){function t(e,i,n,a){var r=this;this.isMounted=!0,this.imgElement=e,this.htmlPluginState={cleanupCallbacks:[],pluginEventSubscription:[]};var l=gt(i);Lt(e,l,n,this.htmlPluginState,a).then(function(s){if(r.isMounted){r.htmlPluginState.pluginEventSubscription.forEach(function(u){u()});var p=Ui(a,s);r.imgElement.setAttribute("src",l.toURL(p))}})}return t.prototype.update=function(e,i,n){var a=this,r=gt(e);Lt(this.imgElement,r,i,this.htmlPluginState).then(function(l){if(a.isMounted){var s=Ui(n,l);a.imgElement.setAttribute("src",r.toURL(s))}})},t.prototype.unmount=function(){this.isMounted=!1},t})(),F=class{constructor(e){this.values=[],this.delimiter=":",this.hasValue(e)&&this.addValue(e)}toString(){return this.values.join(this.delimiter)}hasValue(e){return typeof e<"u"&&e!==null&&e!==""}addValue(e){return Array.isArray(e)?this.values=this.values.concat(e):this.values.push(e),this.values=this.values.filter(i=>this.hasValue(i)),this}setDelimiter(e){return this.delimiter=e,this}},Hi=class extends Error{constructor(e="Unsupported"){super(e)}};function fn(t){return new Hi(t)}function ms(){return this._qualifierModel||{error:fn(`unsupported qualifier ${this.constructor.name}`)}}var Wi=class{constructor(){this._qualifierModel={}}toJson(){return ms.apply(this)}},T=class extends Wi{constructor(e,i){super(),this.delimiter="_",this.key=e,i instanceof F?this.qualifierValue=i:(this.qualifierValue=new F,this.qualifierValue.addValue(i))}toString(){let{key:e,delimiter:i,qualifierValue:n}=this;return`${e}${i}${n.toString()}`}addValue(e){return this.qualifierValue.addValue(e),this}},oe=class extends T{constructor(e,i){let n;i?n=new F([e,`${i}`]).setDelimiter(":"):n=e,super("fl",n),this.flagValue=i}toString(){return super.toString().replace(/\./,"%2E")}getFlagValue(){return this.flagValue}};function hs(t,e){let i=Array.from(t.entries());return e.forEach(n=>{i.push(["fl",n])}),i.sort().map(n=>n[1])}function fs(){return this._actionModel&&Object.keys(this._actionModel).length?this._actionModel:{error:fn(`unsupported action ${this.constructor.name}`)}}var qi=class{constructor(){this._actionModel={}}toJson(){return fs.apply(this)}},re=class extends qi{constructor(){super(...arguments),this.qual
495ifiers=new Map,this.flags=[],this.delimiter=",",this.actionTag=""}prepareQualifiers(){}getActionTag(){return this.actionTag}setActionTag(e){return this.actionTag=e,this}toString(){return this.prepareQualifiers(),hs(this.qualifiers,this.flags).join(this.delimiter)}addQualifier(e){if(typeof e=="string"){let[i,n]=e.toLowerCase().split("_");i==="fl"?this.flags.push(new oe(n)):this.qualifiers.set(i,new T(i,n))}else this.qualifiers.set(e.key,e);return this}addFlag(e){return typeof e=="string"?this.flags.push(new oe(e)):e instanceof oe&&this.flags.push(e),this}addValueToQualifier(e,i){return this.qualifiers.get(e).addValue(i),this}},Nt=class extends re{constructor(e){super(),this.regionType=e}},Ki=class extends Nt{constructor(){super("named")}x(e){return this.addQualifier(new T("x",e)),this}y(e){return this.addQualifier(new T("y",e)),this}width(e){return this.addQualifier(new T("w",e)),this}height(e){return this.addQualifier(new T("h",e)),this}};function Ta(){return new Ki}function Ca(){return new Nt("faces")}var Zi=class extends re{constructor(e){super(),this._actionModel={},this._strength=e,this._actionModel.actionType="blur",this._actionModel.strength=e}region(e){return this._actionModel.region={RegionType:e.regionType},this._region=e,this}strength(e){return this._strength=e,this._actionModel.strength=e,this}prepareQualifiers(){let e=this._strength?`:${this._strength}`:"";"_region"in this?(this._region.qualifiers.forEach(n=>this.addQualifier(n)),this._region.regionType==="named"&&this.addQualifier(new T("e",`blur_region${e}`)),this._region.regionType==="ocr_text"&&(this.addQualifier(new T("e",`blur_region${e}`)),this.addQualifier(new T("g","ocr_text"))),this._region.regionType==="faces"&&this.addQualifier(new T("e",`blur_faces${e}`))):this.addQualifier(new T("e",`blur${e}`))}static fromJson(e){let{actionType:i,strength:n,region:a}=e,r=new this(n);return n&&r.strength(n),a&&a.RegionType==="faces"&&r.region(Ca()),a&&a.RegionType==="custom"&&r.region(Ta()),r}};function Ve(t){let e={};return Object.keys(t).forEach(i=>{e[t[i]]=i}),e}var Oa={limitFit:"limit",limitFill:"lfill",minimumFit:"mfit",thumbnail:"thumb",limitPad:"lpad",minimumPad:"mpad"},vs={colorSpace:"cs",dpr:"dpr",density:"dn",defaultImage:"d",format:"f",quality:"q"},Ia={redEye:"redeye",advancedRedEye:"adv_redeye",oilPaint:"oil_paint",unsharpMask:"unsharp_mask",makeTransparent:"make_transparent"},Ma={autoBest:"auto:best",autoEco:"auto:eco",autoGood:"auto:good",autoLow:"auto:low",jpegminiHigh:"jpegmini:1",jpegminiMedium:"jpegmini:2",jpegminiBest:"jpegmini:0"},gs={fullHd:"full_hd",fullHdWifi:"full_hd_wifi",fullHdLean:"full_hd_lean",hdLean:"hd_lean"},Da={444:"CHROMA_444",420:"CHROMA_420"},bs={noCmyk:"no_cmyk",keepCmyk:"keep_cmyk",tinySrgb:"tinysrgb",srgbTrueColor:"srgb:truecolor"},ys=Ve(Da);Ve(bs);var ws=Ve(Oa),ks=Ve(vs),Ea=Ve(Ia);Ve(Ma);Ve(gs);var Vt=class extends re{constructor(e,i){super(),this._actionModel={},this._actionModel.actionType=Ea[e]||e;let n=this.createEffectQualifier(e,i);this.addQualifier(n)}createEffectQualifier(e,i){let n;return i?n=new F([e,`${i}`]).setDelimiter(":"):n=new F(e),new T("e",n)}static fromJson(e){let{actionType:i,level:n,strength:a}=e,r=Ia[i]||i;return new this(r,n||a)}},Yi=class extends Vt{constructor(e,i){super(e,i),this.LEVEL_NAME="level",this._actionModel={},this.effectType=e,this._actionModel.actionType=Ea[e]||e,i&&this.setLevel(i)}setLevel(e){this._actionModel[this.LEVEL_NAME]=e;let i=this.createEffectQualifier(this.effectType,e);return this.addQualifier(i),this}};function Jt(t){return t&&(t.match(/^#/)?`rgb:${t.substr(1)}`:t)}var Qi=class extends re{constructor(){super(),this._actionModel={},this._actionModel.actionType="vectorize"}numOfColors(e){return this._actionModel.numOfColors=e,this._numOfColors=e,this}detailsLevel(e){return this._actionModel.detailLevel=e,this._detailsLevel=e,this}despeckleLevel(e){return this._actionModel.despeckleLevel=e,this._despeckleLevel=e,this}cornersLevel(e){return this._actionModel.cornersLevel=e,this._cornersLevel=e,this}paths(e){return this._actionModel.paths=e,this._paths=e,this}prepareQualifiers(){let e="vectorize";this._numOfColors&&(e+=`:${new F(`colors:${this._numOfColors}`).toString()}
495`),this._detailsLevel&&(e+=`:${new F(`detail:${this._detailsLevel}`).toString()}`),this._despeckleLevel&&(e+=`:${new F(`despeckle:${this._despeckleLevel}`).toString()}`),this._paths&&(e+=`:${new F(`paths:${this._paths}`).toString()}`),this._cornersLevel&&(e+=`:${new F(`corners:${this._cornersLevel}`).toString()}`),this.addQualifier(new T("e",e))}static fromJson(e){let{actionType:i,paths:n,cornersLevel:a,despeckleLevel:r,detailLevel:l,numOfColors:s}=e,p=new this;return n&&p.paths(n),a&&p.cornersLevel(a),r&&p.despeckleLevel(r),l&&p.detailsLevel(l),s&&p.numOfColors(s),p}},Ji=class extends Yi{level(e){return this._actionModel.level=e,this.setLevel(e)}},Xi=class extends re{constructor(){super(),this._actionModel={},this._actionModel.actionType="assistColorblind",this.addQualifier(new T("e",new F("assist_colorblind")))}xray(){return this._actionModel.type="xray",this.addQualifier(new T("e",new F(["assist_colorblind","xray"]).setDelimiter(":")))}stripesStrength(e){return this._actionModel.type="stripes",this._actionModel.stripesStrength=e,this.addQualifier(new T("e",new F(["assist_colorblind",e]).setDelimiter(":")))}static fromJson(e){let{actionType:i,type:n,stripesStrength:a}=e,r=new this;return n==="xray"&&r.xray(),n==="stripes"&&a&&r.stripesStrength(a),r}},en=class extends Ji{color(e){return this._actionModel.color=e,this.addQualifier(new T("co",new F(Jt(e))))}static fromJson(e){let{actionType:i,level:n,color:a}=e,r=new this(i,n);return a&&r.color(a),r}},tn=class extends re{constructor(e){super(),this._actionModel={},this._squareSize=e,this._actionModel.actionType="pixelate",this._actionModel.squareSize=e}region(e){return this._region=e,this._actionModel.region={RegionType:this._region.regionType},this}squareSize(e){return this._squareSize=e,this._actionModel.squareSize=e,this}prepareQualifiers(){let e=this._squareSize?`:${this._squareSize}`:"";"_region"in this?(this._region.qualifiers.forEach(n=>this.addQualifier(n)),this._region.regionType==="named"&&this.addQualifier(new T("e",`pixelate_region${e}`)),this._region.regionType==="ocr_text"&&(this.addQualifier(new T("e",`pixelate_region${e}`)),this.addQualifier(new T("g","ocr_text"))),this._region.regionType==="faces"&&this.addQualifier(new T("e",`pixelate_faces${e}`))):this.addQualifier(new T("e",`pixelate${e}`))}static fromJson(e){let{actionType:i,region:n,squareSize:a}=e,r=new this(a);return a&&r.squareSize(a),n&&n.RegionType==="faces"&&r.region(Ca()),n&&n.RegionType==="custom"&&r.region(Ta()),r}};function js(t){return new Zi(t)}function As(){return new Vt("grayscale")}function ya(t){return new en("colorize",t)}function _s(){return new Qi}function Ss(){return new Xi}function zs(t){return new tn(t)}var nn=class extends re{constructor(e){super(),this.addQualifier(new T("b",new F(e).setDelimiter("_")))}},Ft=class{constructor(e){this.raw=e}toString(){return this.raw}toJson(){return{error:fn(`unsupported action ${this.constructor.name}`)}}};function Ps(t){let e=t;return"error"in e&&!!e.error}function Ts(){return new oe("ignore_aspect_ratio")}function Cs(){return new oe("lossy")}function Os(){return new oe("preserve_transparency")}function Is(t){return new oe("progressive",t)}function Ms(){return new oe("region_relative")}function Ds(){return new oe("relative")}var bt=class extends F{constructor(e){super(e),this.val=e}getValue(){return this.val}},$t=class extends re{constructor(e,i,n){super(),this._actionModel={};let a;i instanceof bt?a=i.getValue():a=i,this._actionModel.actionType=ks[e],this._actionModel[n]=a,this.addQualifier(new T(e,i))}},an=class extends oe{constructor(e){super("progressive",e)}},yt=class extends $t{constructor(e,i){super(e,i,"formatType")}lossy(){return this._actionModel.lossy=!0,this.addFlag(Cs()),this}progressive(e){return e instanceof an?(this._actionModel.progressive={mode:e.getFlagValue()},this.addFlag(e)):(this._actionModel.progressive={mode:e},this.addFlag(Is(e))),this}preserveTransparency(){return this._actionModel.preserveTransparency=!0,this.addFlag(Os()),this}static fromJson(e){let{formatType:i,lossy:n,progressive:a,preserveTransparency:r}=e,l;return i?l=new this("f",i):l=new this("f"),a&&(a.mode?l.progressive(a.mode):l.progressive()),n&&l.lossy(),r&&l.preserveTransparency(),l}},Qe=class t{constructor(){this.actions=[]}addAction(e){let i;if(typeof e=="string"){if(e.indexOf("/")>=0)throw"addAction cannot accept a string with a forward slash in it - /, use .addTransformation() instead";i=new Ft(e)}else i=e;return this.actions.push(i),this}addTransformation(e){return e instanceof t?this.actions=this.actions.concat(e.actions):this.actions.push(new Ft(e)),this}toString(){return this.actions.map(e=>e.toString()).filter(e=>e).join("/")}animated(e){return this.addAction(e)}border(e){return this.addAction(e)}reshape(e){return this.addAction(e)}resize(e){return this.addAction(e)}quality(e){return this.addAction(new yt("q",e)),this}format(e){return this.addAction(new yt("f",e)),this}
495roundCorners(e){return this.addAction(e)}overlay(e){return this.addAction(e)}underlay(e){return e.setLayerType("u"),this.addAction(e)}addVariable(e){return this.addAction(e)}conditional(e){return this.addAction(e)}effect(e){return this.addAction(e)}adjust(e){return this.addAction(e)}rotate(e){return this.addAction(e)}namedTransformation(e){return this.addAction(e)}delivery(e){return this.addAction(e)}backgroundColor(e){return this.addAction(new nn(Jt(e)))}psdTools(e){return this.addAction(e)}extract(e){return this.addAction(e)}addFlag(e){let i=new re,n=e;return typeof e=="string"&&(n=new oe(e)),i.addQualifier(n),this.addAction(i)}customFunction(e){return this.addAction(e)}transcode(e){return this.addAction(e)}videoEdit(e){return this.addAction(e)}toJson(){let e=[];for(let i of this.actions){let n=i.toJson();if(Ps(n))return n;e.push(n)}return{actions:e}}};function wa(t){let e=t.toString();return e.match(/[A-Z]/gi)||e.length>1&&e[0]==="0"?e:!isNaN(parseFloat(e))&&e.indexOf(":")===-1&&e.indexOf(".")===-1?`${e}.0`:e}var on=class extends F{},Bt=class extends re{constructor(e,i,n){super(),this._actionModel={dimensions:{}},this._actionModel.actionType=ws[e]||e,this.addQualifier(new T("c",e)),i&&this.width(i),n&&this.height(n)}height(e){return this._actionModel.dimensions.height=e,this.addQualifier(new T("h",e))}width(e){return this._actionModel.dimensions.width=e,this.addQualifier(new T("w",e))}aspectRatio(e){if(e instanceof on)return this._actionModel.dimensions.aspectRatio=`${e}`,this.addQualifier(new T("ar",e));if(typeof e=="number"||typeof e=="string")return this._actionModel.dimensions.aspectRatio=wa(e),this.addQualifier(new T("ar",wa(e)));if(e instanceof oe)return this._actionModel.dimensions.aspectRatio=`${e.qualifierValue}`,this.addFlag(e)}relative(){return this._actionModel.relative=!0,this.addFlag(Ds())}regionRelative(){return this._actionModel.regionRelative=!0,this.addFlag(Ms())}static fromJson(e){let{actionType:i,dimensions:n,relative:a,regionRelative:r}=e,{aspectRatio:l,width:s,height:p}=n,u=Oa[i]||i,b=new this(u,s,p);return l&&b.aspectRatio(l==="ignore_aspect_ratio"?Ts():l),a&&b.relative(),r&&b.regionRelative(),b}},Je=class extends T{constructor(e){super("g",new F(e))}},Gt=class extends Je{constructor(){super("auto")}autoFocus(...e){return this.addValue(e),this}},Ut=class extends Je{constructor(e){super(e)}fallbackGravity(e){return this.addValue(e.qualifierValue),this}},Ht=class extends Je{constructor(e){super(e)}};function Es(t){return new Ht(t)}function Ra(...t){let e=[...t];return new Ut(e)}function xa(){return new Gt}var Xe=class extends F{constructor(e){super(),this.name=e}toString(){return this.name}};function Rs(){return new Xe("ocr_text")}function xs(t){return t&&`${t}`.split(":")[0]==="auto"}function Ls(t){let e=vn(t);return["north","center","east","west","south","north_west","south_east","south_west","north_east"].includes(e)}function vn(t){return`${t}`.replace("g_","")}function Ns(t){return{compass:vn(t),gravityType:"direction"}}function Vs(t){return vn(t)==="ocr_text"}function Fs(){return{gravityType:"ocr"}}function $s(t){return`${t.qualifierValue}`.split(":")[0]==="auto"}function Bs(t){let i=t.toString().split("_"),n={object:i[0]};return i.length>1&&(i[1]==="avoid"?n.avoid=!0:n.weight=+i[1]),n}function La(t){let e,i=t==="auto"?new Gt:t;return`${t}`.startsWith("auto:")?e=`${t}`.split(":").filter(a=>a!=="auto"):e=i.qualifierValue.values.filter(a=>a!=="auto"),{gravityType:"auto",autoFocus:e.map(Bs)}}function Gs(t){let e=`${t}`.split(":").includes("auto"),i=t.qualifierValue.values,a={gravityType:"object",focusOnObjects:(e?i.slice(0,i.length-1):i).map(r=>`${r}`)};if(e){let r=i[i.length-1].values.slice(1),l=xa().autoFocus(...r);a.fallbackGravity=La(l)}return a}function Us(t){let i=t.split(":").map(n=>new Xe(n));return new Ut(i)}function Hs(t){return Ls(t)?Ns(t):Vs(t)?Fs():xs(t)||$s(t)?La(t):Gs(typeof t=="string"?Us(t):t)}var rn=class t extends F{constructor(e,i){super(),this._weight=i,this.focusOn=e,this.shouldAvoid=!1}static focusOn(e,i){return new t(e,i)}shouldAddWeight(){return typeof this._weight=="number"||typeof this._weight=="string"||this.shouldAvoid}getName(){return this.focusOn.name}
495getWeight(){return this.shouldAvoid?"avoid":this._weight}toString(){return this.shouldAddWeight()?`${this.getName()}_${this.getWeight()}`:`${this.getName()}`}weight(e){return this._weight=e,this}avoid(){return this.shouldAvoid=!0,this}},Wt=class extends F{constructor(e){super(),this.val=e}toString(){return this.val}};function Ws(t){return t.gravityType==="direction"}function qs(t){return t.gravityType==="ocr"}function Ks(t){return t.gravityType==="auto"}function Zs(t){let{object:e,weight:i,avoid:n}=t,a=new rn(new Xe(e));return(i||i===0)&&a.weight(i),n&&a.avoid(),a}function Na(t){let i=(t.autoFocus||[]).map(Zs);return xa().autoFocus(...i)}function Ys(t){let e=(t.focusOnObjects||[]).map(n=>new Xe(n)),i=Ra(...e);if(t.fallbackGravity){let n=Na(t.fallbackGravity);i.fallbackGravity(n)}return i}function Qs(t){return Ws(t)?new Ht(new Wt(t.compass)):qs(t)?Ra(Rs()):Ks(t)?Na(t):Ys(t)}var wt=class extends Bt{gravity(e){this._actionModel.gravity=Hs(e);let i=typeof e=="string"?new T("g",e):e;return this.addQualifier(i)}static fromJson(e){let i=super.fromJson.apply(this,[e]);return e.gravity&&i.gravity(Qs(e.gravity)),i}},et=class extends T{constructor(e){super("b"),e&&this.addValue(e)}},sn=class extends et{intensity(e){return this.intensityLevel=e,this}brightness(e){return this.brightnessLevel=e,this}toString(){return`
496    b_blurred
497    ${this.intensityLevel?`:${this.intensityLevel}`:""}
498    ${this.brightnessLevel?`:${this.brightnessLevel}`:""}
499    `.replace(/\s+/g,"")}},Va=sn,kt=class extends et{constructor(){super(),this._palette=[]}contrast(){return this._contrast=!0,this}palette(...e){return this._palette=e.map(i=>Jt(i)),this}},qt=class extends kt{toString(){return`
500    b_auto:border
501    ${this._contrast?"_contrast":""}
502    ${this._palette.length?`:palette_${this._palette.join("_")}`:""}
503    `.replace(/\s+/g,"")}},Kt=class extends kt{gradientColors(e){return this._gradientColors=e,this}gradientDirection(e){return this._gradientDirection=e,this}},Zt=class extends Kt{toString(){return`
504    b_auto:border_gradient
505    ${this._contrast?"_contrast":""}
506    ${this._gradientColors?`:${this._gradientColors}`:""}
507    ${this._gradientDirection?`:${this._gradientDirection}`:""}
508    ${this._palette.length?`:palette_${this._palette.join("_")}`:""}
509    `.replace(/\s+/g,"")}},Yt=class extends Kt{toString(){return`
510    b_auto:predominant_gradient
511    ${this._contrast?"_contrast":""}
512    ${this._gradientColors?`:${this._gradientColors}`:""}
513    ${this._gradientDirection?`:${this._gradientDirection}`:""}
514    ${this._palette.length?`:palette_${this._palette.join("_")}`:""}
515    `.replace(/\s+/g,"")}},Qt=class extends kt{toString(){return`
516    b_auto:predominant
517    ${this._contrast?"_contrast":""}
518    ${this._palette.length?`:palette_${this._palette.join("_")}`:""}
519    `.replace(/\s+/g,"")}};function Fa(t){return`${t}`.replace("b_","")}function Js(){return{backgroundType:"auto"}}function Xs(t){let{intensityLevel:e,brightnessLevel:i}=t,n={backgroundType:"blurred"};return(e||e===0)&&(n.intensity=e),(i||i===0)&&(n.brightness=i),n}function gn(t){let e=t._contrast,i=t._palette,n={backgroundType:""};return e&&(n.contrast=!0),i&&(n.palette=i),n}function el(t){return Object.assign(Object.assign({},gn(t)),{backgroundType:"border"})}function $a(t){let e=t._gradientColors,i=`${t._gradientDirection}`,n=gn(t);return e&&(n.gradientColors=e),i&&(n.gradientDirection=i),n}function tl(t){return Object.assign(Object.assign({},$a(t)),{backgroundType:"borderGradient"})}function il(t){return{backgroundType:"color",color:Fa(t)}}function nl(t){return Object.assign(Object.assign({},gn(t)),{backgroundType:"predominant"})}function al(t){return Object.assign(Object.assign({},$a(t)),{backgroundType:"predominantGradient"})}function ol(t){return Fa(t)==="auto"?Js():t instanceof Va?Xs(t):t instanceof qt?el(t):t instanceof Zt?tl(t):t instanceof Qt?nl(t):t instanceof Yt?al(t):il(t)}function rl(){return new bt("svg")}function bn(){return new bt("auto")}function Ba(){return new qt}function Ga(){return new et("auto")}function Ua(){return new Zt}function Ha(){return new Yt}function Wa(){return new Qt}function qa(t){return new et(Jt(t))}function sl(){return new Va}var Ka={auto:Ga,border:Ba,borderGradient:Ua,predominantGradient:Ha,predominant:Wa,color:qa,blurred:sl};function ll(t){let{brightness:e,intensity:i}=t,n=Ka.blurred();return(e||e==0)&&n.brightness(e),(i||i==0)&&n.intensity(i),n}function ka(t,e){let{gradientColors:i,gradientDirection:n,contrast:a,palette:r}=e;return a&&t.contrast(),r&&t.palette(...r),i&&t.gradientColors(+i),n&&t.gradientDirection(n),t}function ja(t,e){let{contrast:i,palette:n}=e;return i&&t.contrast(),n&&t.palette(...n),t}function cl(t){let{backgroundType:e}=t;switch(e){case"auto":return Ga();case"blurred":return ll(t);case"border":return ja(Ba(),t);case"borderGradient":return ka(Ua(),t);case"predominant":return ja(Wa(),t);case"predominantGradient":return ka(Ha(),t);default:return qa(t.color)}}var ln=class extends wt{background(e){return this._actionModel.background=ol(e),this.addQualifier(e)}offsetX(e){return this._actionModel.x=e,this.addQualifier(new T("x",e))}offsetY(e){return this._actionModel.y=e,this.addQualifier(new T("y",e))}static fromJson(e){let i=super.fromJson.apply(this,[e]);return e.background&&i.background(cl(e.background)),e.x&&i.offsetX(e.x),e.y&&i.offsetY(e.y),e.zoom&&i.zoom(e.zoom),i}},cn=class extends Bt{liquidRescaling(){return this.addQualifier(new Je("liquid"))}},un=class extends wt{x(e){return this._actionModel.x=e,this.addQualifier(new T("x",e))}y(e){return this._actionModel.y=e,this.addQualifier(new T("y",e))}zoom(e){return this._actionModel.zoom=e,this.addQualifier(new T("z",e))}static fromJson(e){let i=super.fromJson.apply(this,[e]);
519return e.x&&i.x(e.x),e.y&&i.y(e.y),e.zoom&&i.zoom(e.zoom),i}},dn=class extends wt{x(e){return this._actionModel.x=e,this.addQualifier(new T("x",e))}y(e){return this._actionModel.y=e,this.addQualifier(new T("y",e))}static fromJson(e){let i=super.fromJson.apply(this,[e]);return e.x&&i.x(e.x),e.y&&i.y(e.y),i}};function ul(t,e){return new cn("scale",t,e)}function dl(t,e){return new un("crop",t,e)}function pl(t,e){return new dn("fill",t,e)}function ml(t,e){return new ln("pad",t,e)}var pn=class extends $t{constructor(e){super("q",e.toString(),"level")}chromaSubSampling(e){this._actionModel.chromaSubSampling=Da[e];let i=new F([this._actionModel.level,e]);return i.setDelimiter(":"),this.addQualifier(new T("q",i))}quantization(e){this._actionModel.quantization=e;let i=new F([this._actionModel.level,`qmax_${e}`]).setDelimiter(":");return this.addQualifier(new T("q",i))}static fromJson(e){let{level:i,chromaSubSampling:n,quantization:a}=e,r=Ma[i]||i,l=new this(r);if(n){let s=ys[n.toUpperCase()];s&&l.chromaSubSampling(+s)}return a&&l.quantization(a),l}};function Xt(t){return new yt("f",t)}function ei(t){return new pn(t)}function hl(){return new Wt("north_east")}var ku={darkmode:ya(70).color("black"),brightmode:ya(40).color("white"),monochrome:As(),colorblind:Ss()},ju=new Qe().effect(_s()).delivery(ei("auto")).delivery(Xt(rl())),Au=new Qe().effect(zs()).delivery(ei("auto")).delivery(Xt(bn())),_u=new Qe().effect(js(2e3)).delivery(ei("auto")).delivery(Xt(bn())),Su=new Qe().resize(ml("iw_div_2").aspectRatio(1).background(Ka.auto())).resize(dl(1,1).gravity(Es(hl()))).resize(pl().height("ih").width("iw")).delivery(ei("auto")).delivery(Xt(bn()));var Aa={flv:"x-flv","3gp":"3gpp",mov:"quicktime",mpg:"mpeg",avi:"x-msvideo",wmv:"x-ms-wmv",ogv:"ogg",webm:"webm",mp4:"mp4"},_a="?_a=",zu=(function(){function t(e,i,n,a,r,l){var s=this;this.mimeType="video",this.mimeSubTypes=Aa,this.videoElement=e,this.originalVideo=i,this.htmlPluginState={cleanupCallbacks:[],pluginEventSubscription:[]};var p=gt(i);Lt(e,i,a,this.htmlPluginState).then(function(){s.htmlPluginState.pluginEventSubscription.forEach(function(u){u()}),s.setVideoAttributes(r,l),s.handleSourceToVideo(p,n)})}return t.prototype.handleSourceToVideo=function(e,i){var n=this;if(i)this.generateUserSources(e,i);else{var a=["webm","mp4","ogv"];a.forEach(function(r){n.appendSourceTag(e,r)})}},t.prototype.generateUserSources=function(e,i){var n=this;i.map(function(a){var r=a.type,l=a.codecs,s=a.transcode;return n.appendSourceTag(gt(e).transcode(s),r,n.buildMimeType(r,l))})},t.prototype.appendSourceTag=function(e,i,n){var a=document.createElement("source"),r=e.toURL(),l=r.split(_a),s=l[1]?"".concat(_a).concat(l[1]):"";a.src="".concat(l[0],".").concat(i).concat(s),a.type=n||"video/".concat(Aa[i]||i),this.videoElement.appendChild(a)},t.prototype.buildMimeType=function(e,i){var n="".concat(this.mimeType,"/").concat(this.mimeSubTypes[e]||e);return i&&(n+="; codecs="+(Array.isArray(i)?i.join(", "):i)),n},t.prototype.setVideoAttributes=function(e,i){var n;if(e===void 0&&(e={}),i==="auto"){var a=gt(this.originalVideo);e.poster=a.quality("auto").format("jpg").addTransformation("so_auto").toURL()}else i&&(e.poster=(n=i.toURL)===null||n===void 0?void 0:n.call(i));for(var r=0,l=Object.entries(e);r<l.length;r++){var s=l[r],p=s[0],u=s[1];u&&this.videoElement.setAttribute(p,p==="poster"?u:"")}},t.prototype.update=function(e,i,n,a,r){var l=this;if(e!==this.originalVideo){for(var s=this.videoElement.getElementsByTagName("SOURCE");s[0];)s[0].parentNode.removeChild(s[0]);Lt(this.videoElement,e,n,this.htmlPluginState).then(function(){l.setVideoAttributes(a,r),l.handleSourceToVideo(e,i),l.videoElement.load()})}},t})(),fl="Expected a function",Sa=NaN,vl="[object Symbol]",gl=/^\s+|\s+$/g,bl=/^[-+]0x[0-9a-f]+$/i,yl=/^0b[01]+$/i,wl=/^0o[0-7]+$/i,kl=parseInt,jl=typeof Pe=="object"&&Pe&&Pe.Object===Object&&Pe,Al=typeof self=="object"&&self&&self.Object===Object&&self,_l=jl||Al||Function("return this")(),Sl=Object.prototype,zl=Sl.toString,Pl=Math.max,Tl=Math.min,$i=function(){return _l.Date.now()};function Cl(t,e,i){var n,a,r,l,s,p,u=0,b=!1,y=!1,v=!0;if(typeof t!="function")throw new TypeError(fl);e=za(e)||0,mn(i)&&(b=!!i.leading,y="maxWait"in i,r=y?Pl(za(i.maxWait)||0,e):r,v="trailing"in i?!!i.trailing:v);function z(M){var W=n,S=a;return n=a=void 0,u=M,l=t.apply(S,W),l}function _(M){return u=M,s=setTimeout(C,e),b?z(M):l}function j(M){var W=M-p,S=M-u,f=e-W;return y?Tl(f,r-S):f}function O(M){var W=M-p,S=M-u;return p===void 0||W>=e||W<0||y&&S>=r}function C(){var M=$i();if(O(M))return N(M);s=setTimeout(C,j(M))}function N(M){return s=void 0,v&&n?z(M):(n=a=void 0,l)}function E(){s!==void 0&&clearTimeout(s),u=0,n=p=a=s=void 0}function Q(){return s===void 0?l:N($i())}function X(){var M=$i(),W=O(M);if(n=arguments,a=this,p=M,W){if(s===void 0)return _(p);if(y)return s=setTimeout(C,e),z(p)}return s===void 0&&(s=setTimeout(C,e)),l}return X.cancel=E,X.flush=Q,X}function mn(t){var e=typeof t;return!!t&&(e=="object"||e=="function")}function Ol(t){return!!t&&typeof t=="object"}function Il(t){return typeof t=="symbol"||Ol(t)&&zl.call(t)==vl}function za(t){if(typeof t=="number")return t;if(Il(t))return Sa;if(mn(t)){var e=typeof t.valueOf=="function"?t.valueOf():t;t=mn(e)?e+"":e}if(typeof t!="string")return t===0?t:+t;t=t.replace(gl,"");var i=yl.test(t);return i||wl.test(t)?kl(t.slice(2),i?2:8):bl.test(t)?Sa:+t}var Ml=Cl;function Dl(t){return typeof t=="number"}function Za(){return typeof window<"u"}function El(t){return t instanceof HTMLImageElement}function Ya(t){var e=t===void 0?{}:t,i=e.steps;return Rl.bind(null,i)}function Rl(t,e,i,n,a){if(!Za())return!0;
519if(El(e))return new Promise(function(r){n.cleanupCallbacks.push(function(){window.removeEventListener("resize",s),r("canceled")});var l=Ui(a,{responsive:!0});i.addAction(new re().setActionTag("responsive")),Pa(t,e,i,l);var s;n.pluginEventSubscription.push(function(){window.addEventListener("resize",s=Ml(function(){Pa(t,e,i,l)},100))}),r({responsive:!0})})}function Pa(t,e,i,n){xl(t,e,i),e.src=i.toURL(n)}function xl(t,e,i){var n=e.parentElement.clientWidth;if(Dl(t)){var a=t;n=Math.ceil(n/a)*a}else Array.isArray(t)&&(n=t.reduce(function(r,l){return Math.abs(l-n)<Math.abs(r-n)?l:r}));i.transformation.actions.forEach(function(r,l){r instanceof re&&r.getActionTag()==="responsive"&&(i.transformation.actions[l]=ul(n).setActionTag("responsive"))})}function Qa(t){var e=t===void 0?{}:t,i=e.rootMargin,n=i===void 0?"0px":i,a=e.threshold,r=a===void 0?.1:a;return Ll.bind(null,n,r)}function Ll(t,e,i,n,a){return t===void 0&&(t="0px"),e===void 0&&(e=.1),Za()?new Promise(function(r){var l=function(){return r({lazyload:!0})},s=Vl(i,l,t,e);a.cleanupCallbacks.push(function(){s(),r("canceled")})}):!1}function Nl(){return window&&"IntersectionObserver"in window}function Vl(t,e,i,n){try{if(!Nl()){e();return}var a=new IntersectionObserver(function(r){r.forEach(function(l){l.isIntersecting&&(a.unobserve(l.target),e())})},{rootMargin:i,threshold:n});return a.observe(t),function(){t&&a.observe(t)}}catch{e()}}function Fl(t){return!(typeof t!="object"||t instanceof Array)}var yn=class{filterOutNonSupportedKeys(e,i){let n=Object.create({});return Fl(e)?(Object.keys(e).forEach(a=>{i.indexOf(a)>=0?n[a]=e[a]:console.warn("Warning - unsupported key provided to configuration: ",a)}),n):Object.create({})}},Ja=yn;var wn=["cname","secureDistribution","privateCdn","signUrl","longUrlSignature","shorten","useRootPath","secure","forceVersion","analytics","queryParams"];var kn=class t extends Ja{constructor(e){super();let i=this.filterOutNonSupportedKeys(e,wn);Object.assign(this,{secure:!0},i)}extend(e){let i=this.filterOutNonSupportedKeys(e,wn);return new t(Object.assign({},this,i))}setCname(e){return this.cname=e,this}setSecureDistribution(e){return this.secureDistribution=e,this}setPrivateCdn(e){return this.privateCdn=e,this}setSignUrl(e){return this.signUrl=e,this}setLongUrlSignature(e){return this.longUrlSignature=e,this}setShorten(e){return this.shorten=e,this}setUseRootPath(e){return this.useRootPath=e,this}setSecure(e){return this.secure=e,this}setForceVersion(e){return this.forceVersion=e,this}setQueryParams(e){return this.queryParams=e,this}},Xa=kn;var H=class{constructor(e){this.values=[],this.delimiter=":",this.hasValue(e)&&this.addValue(e)}toString(){return this.values.join(this.delimiter)}hasValue(e){return typeof e<"u"&&e!==null&&e!==""}addValue(e){return Array.isArray(e)?this.values=this.values.concat(e):this.values.push(e),this.values=this.values.filter(i=>this.hasValue(i)),this}setDelimiter(e){return this.delimiter=e,this}};var jn=class extends Error{constructor(e="Unsupported"){super(e)}};function tt(t){return new jn(t)}function eo(){return this._qualifierModel||{error:tt(`unsupported qualifier ${this.constructor.name}`)}}var ti=class{constructor(){this._qualifierModel={}}toJson(){return eo.apply(this)}};var G=class extends ti{constructor(e,i){super(),this.delimiter="_",this.key=e,i instanceof H?this.qualifierValue=i:(this.qualifierValue=new H,this.qualifierValue.addValue(i))}toString(){let{key:e,delimiter:i,qualifierValue:n}=this;return`${e}${i}${n.toString()}`}addValue(e){return this.qualifierValue.addValue(e),this}};var K=class extends G{constructor(e,i){let n;i?n=new H([e,`${i}`]).setDelimiter(":"):n=e,super("fl",n),this.flagValue=i}toString(){return super.toString().replace(/\./,"%2E")}getFlagValue(){return this.flagValue}};function to(t,e){let i=Array.from(t.entries());return e.forEach(n=>{i.push(["fl",n])}),i.sort().map(n=>n[1])}function io(){var t,e,i;let n=this._actionModel&&Object.keys(this._actionModel).length,a=(i=(e=(t=this._actionModel)===null||t===void 0?void 0:t.source)===null||e===void 0?void 0:e.transformation)===null||i===void 0?void 0:i.error;return a&&a instanceof Error?{error:a}:n?this._actionModel:{error:tt(`unsupported action ${this.constructor.name}`)}}var ii=class{constructor(){this._actionModel={}}toJson(){return io.apply(this)}};var fe=class extends ii{constructor(){super(...arguments),this.qual
519ifiers=new Map,this.flags=[],this.delimiter=",",this.actionTag=""}prepareQualifiers(){}getActionTag(){return this.actionTag}setActionTag(e){return this.actionTag=e,this}toString(){return this.prepareQualifiers(),to(this.qualifiers,this.flags).join(this.delimiter)}addQualifier(e){if(typeof e=="string"){let[i,n]=e.toLowerCase().split("_");i==="fl"?this.flags.push(new K(n)):this.qualifiers.set(i,new G(i,n))}else this.qualifiers.set(e.key,e);return this}addFlag(e){return typeof e=="string"?this.flags.push(new K(e)):e instanceof K&&this.flags.push(e),this}addValueToQualifier(e,i){return this.qualifiers.get(e).addValue(i),this}};var ni=class extends fe{constructor(e){super(),this.addQualifier(new G("b",new H(e).setDelimiter("_")))}};function no(t){return t&&(t.match(/^#/)?`rgb:${t.substr(1)}`:t)}var jt=class{constructor(e){this.raw=e}toString(){return this.raw}toJson(){return{error:tt(`unsupported action ${this.constructor.name}`)}}};function ao(t){let e=t;return"error"in e&&!!e.error}function oo(){return new K("ignore_aspect_ratio")}function ro(){return new K("lossy")}function so(){return new K("preserve_transparency")}function lo(t){return new K("progressive",t)}function co(){return new K("region_relative")}function uo(){return new K("relative")}var ai=class extends H{constructor(e){super(e),this.val=e}getValue(){return this.val}};function Te(t){let e={};return Object.keys(t).forEach(i=>{e[t[i]]=i}),e}var An={limitFit:"limit",limitFill:"lfill",minimumFit:"mfit",thumbnail:"thumb",limitPad:"lpad",minimumPad:"mpad"},$l={colorSpace:"cs",dpr:"dpr",density:"dn",defaultImage:"d",format:"f",quality:"q"},Bl={redEye:"redeye",advancedRedEye:"adv_redeye",oilPaint:"oil_paint",unsharpMask:"unsharp_mask",makeTransparent:"make_transparent",generativeRestore:"gen_restore"},Gl={autoBest:"auto:best",autoEco:"auto:eco",autoGood:"auto:good",autoLow:"auto:low",jpegminiHigh:"jpegmini:1",jpegminiMedium:"jpegmini:2",jpegminiBest:"jpegmini:0"},Ul={fullHd:"full_hd",fullHdWifi:"full_hd_wifi",fullHdLean:"full_hd_lean",hdLean:"hd_lean"},Hl={444:"CHROMA_444",420:"CHROMA_420"},Wl={noCmyk:"no_cmyk",keepCmyk:"keep_cmyk",tinySrgb:"tinysrgb",srgbTrueColor:"srgb:truecolor"};var fd=Te(Hl),vd=Te(Wl),po=Te(An),mo=Te($l),gd=Te(Bl),bd=Te(Gl),yd=Te(Ul);var oi=class extends fe{constructor(e,i,n){super(),this._actionModel={};let a;i instanceof ai?a=i.getValue():a=i,this._actionModel.actionType=mo[e],this._actionModel[n]=a,this.addQualifier(new G(e,i))}};var ri=class extends K{constructor(e){super("progressive",e)}};var Ce=class extends oi{constructor(e,i){super(e,i,"formatType")}lossy(){return this._actionModel.lossy=!0,this.addFlag(ro()),this}progressive(e){return e instanceof ri?(this._actionModel.progressive={mode:e.getFlagValue()},this.addFlag(e)):(this._actionModel.progressive={mode:e},this.addFlag(lo(e))),this}preserveTransparency(){return this._actionModel.preserveTransparency=!0,this.addFlag(so()),this}static fromJson(e){let{formatType:i,lossy:n,progressive:a,preserveTransparency:r}=e,l;return i?l=new this("f",i):l=new this("f"),a&&(a.mode?l.progressive(a.mode):l.progressive()),n&&l.lossy(),r&&l.preserveTransparency(),l}};var si=class t{constructor(){this.actions=[]}addAction(e){let i;if(typeof e=="string"){if(e.indexOf("/")>=0)throw"addAction cannot accept a string with a forward slash in it - /, use .addTransformation() instead";i=new jt(e)}else i=e;return this.actions.push(i),this}addTransformation(e){return e instanceof t?this.actions=this.actions.concat(e.actions):this.actions.push(new jt(e)),this}toString(){return this.actions.map(e=>e.toString()).filter(e=>e).join("/")}animated(e){return this.addAction(e)}border(e){return this.addAction(e)}reshape(e){return this.addAction(e)}resize(e){return this.addAction(e)}quality(e){return this.addAction(new Ce("q",e)),this}format(e){return this.addAction(new Ce("f",e)),this}
519roundCorners(e){return this.addAction(e)}overlay(e){return this.addAction(e)}underlay(e){return e.setLayerType("u"),this.addAction(e)}addVariable(e){return this.addAction(e)}conditional(e){return this.addAction(e)}effect(e){return this.addAction(e)}adjust(e){return this.addAction(e)}rotate(e){return this.addAction(e)}namedTransformation(e){return this.addAction(e)}delivery(e){return this.addAction(e)}backgroundColor(e){return this.addAction(new ni(no(e)))}psdTools(e){return this.addAction(e)}extract(e){return this.addAction(e)}addFlag(e){let i=new fe,n=e;return typeof e=="string"&&(n=new K(e)),i.addQualifier(n),this.addAction(i)}customFunction(e){return this.addAction(e)}transcode(e){return this.addAction(e)}videoEdit(e){return this.addAction(e)}toJson(){let e=[];for(let i of this.actions){let n=i.toJson();if(ao(n))return n;e.push(n)}return{actions:e}}};var li=class extends si{};function _n(t){let e=t.toString();return e.match(/[A-Z]/gi)||e.length>1&&e[0]==="0"?e:!isNaN(parseFloat(e))&&e.indexOf(":")===-1&&e.indexOf(".")===-1?`${e}.0`:e}var ci=class extends H{};var ui=class extends fe{constructor(e,i,n){super(),this._actionModel={dimensions:{}},this._actionModel.actionType=po[e]||e,this.addQualifier(new G("c",e)),i&&this.width(i),n&&this.height(n)}height(e){return this._actionModel.dimensions.height=e,this.addQualifier(new G("h",e))}width(e){return this._actionModel.dimensions.width=e,this.addQualifier(new G("w",e))}aspectRatio(e){if(e instanceof ci)return this._actionModel.dimensions.aspectRatio=`${e}`,this.addQualifier(new G("ar",e));if(typeof e=="number"||typeof e=="string")return this._actionModel.dimensions.aspectRatio=_n(e),this.addQualifier(new G("ar",_n(e)));if(e instanceof K)return this._actionModel.dimensions.aspectRatio=`${e.qualifierValue}`,this.addFlag(e)}relative(){return this._actionModel.relative=!0,this.addFlag(uo())}regionRelative(){return this._actionModel.regionRelative=!0,this.addFlag(co())}static fromJson(e){let{actionType:i,dimensions:n,relative:a,regionRelative:r}=e,{aspectRatio:l,width:s,height:p}=n,u=An[i]||i,b=new this(u,s,p);return l&&b.aspectRatio(l==="ignore_aspect_ratio"?oo():l),a&&b.relative(),r&&b.regionRelative(),b}};var Oe=class extends G{constructor(e){super("g",new H(e))}};var it=class extends Oe{constructor(){super("auto")}autoFocus(...e){return this.addValue(e),this}};var nt=class extends Oe{constructor(e){super(e)}fallbackGravity(e){return this.addValue(e.qualifierValue),this}};var di=class extends Oe{constructor(e){super(e)}};function pi(...t){let e=[...t];return new nt(e)}function Fe(){return new it}var ye=class extends H{constructor(e){super(),this.name=e}toString(){return this.name}};function ho(){return new ye("ocr_text")}function ql(t){return t&&`${t}`.split(":")[0]==="auto"}function Kl(t){let e=Sn(t);return["north","center","east","west","south","north_west","south_east","south_west","north_east"].includes(e)}function Sn(t){return`${t}`.replace("g_","")}function Zl(t){return{compass:Sn(t),gravityType:"direction"}}function Yl(t){return Sn(t)==="ocr_text"}function Ql(){return{gravityType:"ocr"}}function Jl(t){return`${t.qualifierValue}`.split(":")[0]==="auto"}function Xl(t){let i=t.toString().split("_"),n={object:i[0]};return i.length>1&&(i[1]==="avoid"?n.avoid=!0:n.weight=+i[1]),n}function fo(t){let e,i=t==="auto"?new it:t;return`${t}`.startsWith("auto:")?e=`${t}`.split(":").filter(a=>a!=="auto"):e=i.qualifierValue.values.filter(a=>a!=="auto"),{gravityType:"auto",autoFocus:e.map(Xl)}}function ec(t){let e=`${t}`.split(":").includes("auto"),i=t.qualifierValue.values,a={gravityType:"object",focusOnObjects:(e?i.slice(0,i.length-1):i).map(r=>`${r}`)};if(e){let r=i[i.length-1].values.slice(1),l=Fe().autoFocus(...r);a.fallbackGravity=fo(l)}return a}function tc(t){let i=t.split(":").map(n=>new ye(n));return new nt(i)}function vo(t){return Kl(t)?Zl(t):Yl(t)?Ql():ql(t)||Jl(t)?fo(t):ec(typeof t=="string"?tc(t):t)}var At=class t extends H{constructor(e,i){super(),this._weight=i,this.focusOn=e,this.shouldAvoid=!1}static focusOn(e,i){return new t(e,i)}shouldAddWeight(){return typeof this._weight=="number"||typeof this._weight=="string"||this.shouldAvoid}getName(){return this.focusOn.name}
519getWeight(){return this.shouldAvoid?"avoid":this._weight}toString(){return this.shouldAddWeight()?`${this.getName()}_${this.getWeight()}`:`${this.getName()}`}weight(e){return this._weight=e,this}avoid(){return this.shouldAvoid=!0,this}},kp=At.focusOn;var mi=class extends H{constructor(e){super(),this.val=e}toString(){return this.val}};function ic(t){return t.gravityType==="direction"}function nc(t){return t.gravityType==="ocr"}function ac(t){return t.gravityType==="auto"}function oc(t){let{object:e,weight:i,avoid:n}=t,a=new At(new ye(e));return(i||i===0)&&a.weight(i),n&&a.avoid(),a}function go(t){let i=(t.autoFocus||[]).map(oc);return Fe().autoFocus(...i)}function rc(t){let e=(t.focusOnObjects||[]).map(n=>new ye(n)),i=pi(...e);if(t.fallbackGravity){let n=go(t.fallbackGravity);i.fallbackGravity(n)}return i}function bo(t){return ic(t)?new di(new mi(t.compass)):nc(t)?pi(ho()):ac(t)?go(t):rc(t)}var hi=class extends ui{gravity(e){this._actionModel.gravity=vo(e);let i=typeof e=="string"?new G("g",e):e;return this.addQualifier(i)}static fromJson(e){let i=super.fromJson.apply(this,[e]);return e.gravity&&i.gravity(bo(e.gravity)),i}};var fi=class extends hi{x(e){return this._actionModel.x=e,this.addQualifier(new G("x",e))}y(e){return this._actionModel.y=e,this.addQualifier(new G("y",e))}static fromJson(e){let i=super.fromJson.apply(this,[e]);return e.x&&i.x(e.x),e.y&&i.y(e.y),i}};function zn(t,e){return new fi("fill",t,e)}function yo(t){return t.match(/^https?:\//)}function wo(t){return t.indexOf("/")<0}function ko(t){return t.match(/^v[0-9]+/)}function jo(t,e){let i=e.secure,n=e.privateCdn,a=e.cname,r=e.secureDistribution;return!i&&!a?`http://res.cloudinary.com/${t}`:i&&!r&&n?`https://${t}-res.cloudinary.com`:i&&!r?`https://res.cloudinary.com/${t}`:i&&r&&n?`https://${r}`:i&&r?`https://${r}/${t}`:!i&&a?`http://${a}/${t}`:"ERROR"}function Ao(t){return t||"image"}function _o(t){return t||"upload"}function So(t,e,i){let n=i!==!1;return e?`v${e}`:ko(t)||yo(t)||wo(t)?"":n?"v1":""}function at(t,e,i){let n=e>>0,a=String(typeof i<"u"?i:" ");return t.length>n?String(t):(n=n-t.length,n>a.length&&(a+=sc(a,n/a.length)),a.slice(0,n)+String(t))}function sc(t,e){let i=e,n="";for(;i>0;)n+=t,i--;return n}var lc="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",Pn={},zo=0;lc.split("").forEach(t=>{let e=zo.toString(2);e=at(e,6,"0"),Pn[e]=t,zo++});function Po(t){if(t.split(".").length<2)throw new Error("invalid semVer, must have at least two segments");return t.split(".").reverse().map(e=>{let i=+e;if(isNaN(i)||i<0)throw"Invalid version number provided";return at(e,2,"0")}).join(".")}function Tn(t){let e="",n=t.split(".").length*6,a=Po(t),l=parseInt(a.split(".").join("")).toString(2);if(l=at(l,n,"0"),l.length%6!==0)throw"Version must be smaller than 43.21.26)";return l.match(/.{1,6}/g).forEach(s=>{e+=Pn[s]}),e}function To(t){let e={sdkSemver:t.sdkSemver,techVersion:t.techVersion,sdkCode:t.sdkCode,product:t.product,feature:"0"};return t.accessibility&&(e.feature="D"),t.lazyload&&(e.feature="C"),t.responsive&&(e.feature="A"),t.placeholder&&(e.feature="B"),e}var Co="1.12.1";function cc(){let t="0.0.0";if(typeof window<"u")return t;try{return process.versions.node||t}catch{return t}}function uc(t){let e={techVersion:cc(),sdkCode:"T",sdkSemver:Co.split("-")[0],product:"A",responsive:!1,placeholder:!1,lazyload:!1,accessibility:!1};return t?Object.assign(Object.assign({},e),t):e}function Oo(t){let e=uc(t),i=To(e);try{let n=dc(i.techVersion),a=Tn(i.sdkSemver),r=Tn(n),l=i.feature,s=i.sdkCode;return`B${i.product}${s}${a}${r}${l}`}catch{return"E"}}function dc(t){let e=t.split(".");return`${e[0]}.${e[1]}`}var Io={"image/upload":"images","image/private":"private_images","image/authenticated":"authenticated_images","raw/upload":"files","video/upload":"videos"},vi=class{constructor(e,i={},n){this.setPublicID(e),this.setCloudConfig(i),this.setURLConfig(n)}setURLConfig(e){return this.urlConfig=new Xa(e),this}setCloudConfig(e){return this.cloudName=e.cloudName,this.apiKey=e.apiKey,this.apiSecret=e.apiSecret,this.authToken=e.authToken,this}
519setPublicID(e){return this.publicID=e?e.toString():"",this}setDeliveryType(e){return this.deliveryType=e,this}setSuffix(e){return this.suffix=e,this}setSignature(e){return this.signature=e,this}setVersion(e){return e&&(this.version=e),this}setAssetType(e){return e&&(this.assetType=e),this}sign(){return this}toURL(e={}){return this.createCloudinaryURL(null,e.trackedAnalytics)}validateAssetForURLCreation(){if(typeof this.cloudName>"u")throw"You must supply a cloudName when initializing the asset";let e=this.suffix&&this.suffix.indexOf(".")>=0,i=this.suffix&&this.suffix.indexOf("/")>=0;if(e||i)throw"`suffix`` should not include . or /"}getResourceType(){let e=Ao(this.assetType),i=_o(this.deliveryType),n=!!this.suffix,a=`${e}/${i}`,r=Io[`${e}/${i}`],l=this.urlConfig.useRootPath,s=this.urlConfig.shorten;if(l){if(a==="image/upload")return"";throw new Error(`useRootPath can only be used with assetType: 'image' and deliveryType: 'upload'. Provided: ${a} instead`)}if(s&&a==="image/upload")return"iu";if(n){if(r)return r;throw new Error(`URL Suffix only supported for ${Object.keys(Io).join(", ")}, Provided: ${a} instead`)}return a}getSignature(){return this.signature?`s--${this.signature}--`:""}createCloudinaryURL(e,i){if(!this.publicID)return"";this.validateAssetForURLCreation();let n=jo(this.cloudName,this.urlConfig),a=e?e.toString():"",r=So(this.publicID,this.version,this.urlConfig.forceVersion),l=this.publicID;if(typeof e=="string")return[n,this.getResourceType(),this.getSignature(),a,r,l.replace(/,/g,"%2C"),this.suffix].filter(p=>p).join("/");{let s=[encodeURI(n),this.getResourceType(),this.getSignature(),encodeURI(a),r,encodeURI(l).replace(/,/g,"%2C"),this.suffix&&encodeURI(this.suffix)].filter(b=>b).join("/").replace(/\?/g,"%3F").replace(/=/g,"%3D"),p=new URLSearchParams(this.urlConfig.queryParams);this.urlConfig.analytics!==!1&&!l.includes("?")&&p.set("_a",Oo(i));let u=p.toString();return u?`${s}?${u}`:s}}};var gi=class extends vi{constructor(e,i,n,a){super(e,i,n),this.transformation=a}animated(e){return this.transformation.animated(e),this}border(e){return this.transformation.border(e),this}reshape(e){return this.transformation.reshape(e),this}resize(e){return this.transformation.resize(e),this}quality(e){return this.addAction(new Ce("q",e)),this}format(e){return this.addAction(new Ce("f",e)),this}
519roundCorners(e){return this.transformation.roundCorners(e),this}overlay(e){return this.transformation.overlay(e),this}addVariable(e){return this.transformation.addVariable(e),this}conditional(e){return this.transformation.conditional(e),this}effect(e){return this.transformation.effect(e),this}adjust(e){return this.transformation.adjust(e),this}rotate(e){return this.transformation.rotate(e),this}namedTransformation(e){return this.transformation.namedTransformation(e),this}delivery(e){return this.transformation.delivery(e),this}backgroundColor(e){return this.transformation.backgroundColor(e),this}psdTools(e){return this.transformation.psdTools(e),this}extract(e){return this.transformation.extract(e),this}addFlag(e){return this.transformation.addFlag(e),this}customFunction(e){return this.transformation.customFunction(e),this}addAction(e){return this.transformation.addAction(e),this}addTransformation(e){return this.transformation.addTransformation(e),this}toString(){return this.transformation.toString()}underlay(e){return this.transformation.underlay(e),this}toURL(e={}){return this.createCloudinaryURL(this.transformation,e?.trackedAnalytics)}};var ot=class extends gi{constructor(e,i,n){super(e,i,n,new li)}};var Ie={name:"CldImg",template:`
520    <img ref="imgTag">
521  `,props:{src:String,setHeight:Boolean,preload:Boolean},setup(t){let e=Vue.ref(null),i=Vue.ref(null);function n(r){let l=decodeURI(r.replace(CLD_URL,""));if(t.setHeight){let s=Math.ceil(e.value.clientHeight/100)*100,p=Math.ceil(e.value.clientWidth/100)*100;return new ot(l,{cloudName:"maistra"}).resize(zn().width(p*2).height(s*2).gravity(Fe())).quality("auto:good:sensitive").format("auto")}else return new ot(l,{cloudName:"maistra"}).quality("auto:good:sensitive").format("auto")}let a=t.preload?[]:[Qa()];return t.setHeight||a.push(Ya({steps:200})),Vue.onMounted(()=>{i.value=new hn(e.value,n(t.src),a)}),Vue.watch(()=>t.src,r=>{i.value=new hn(e.value,n(r),a)}),{imgTag:e}}};var Mo={name:"PropertyCardGallery",components:{CldImg:Ie},template:`
522    <div class="property-card__gallery">
523      <div class="swiper" ref="slider">
524        <div class="swiper-wrapper">
525          <div v-for="(image, index) in property.propertyListingGallery" class="swiper-slide property-card__image">
526            <CldImg :src="image" :alt="property.title" set-height preload />
527          </div>
528        </div>
529      </div>
530      <div class="card-slider__navigation">
531        <div class="swiper-button-prev" ref="prev"></div>
532        <div class="swiper-button-next" ref="next"></div>
533      </div>
534      <img
535        v-if="property.groupLogoCircle"
536        :src="property.groupLogoCircle"
537        :alt="property.group"
538        class="property-card__group-logo"
539        loading="lazy"
540        width="44"
541        height="40">
542      <img
543        v-else-if="property.awardLogo"
544        :src="property.awardLogo"
545        class="property-card__award-logo"
546        loading="lazy">
547    </div>
548  `,props:{property:{type:Object,required:!0}},setup(){let t=Vue.ref(null),e=Vue.ref(null),i=Vue.ref(null),n=null;return Vue.onMounted(()=>{n=new Swiper(t.value,{loop:!0,navigation:{nextEl:i.value,prevEl:e.value}})}),{slider:t,swiper:n,prev:e,next:i}}};var _t=class{constructor(){if(typeof arguments[0]=="number")[this.price,this.currency]=arguments;else{let[e,i,n]=arguments;this.price=parseFloat(e[i]),e=n??e,this.currency=e["@Currency"]}}get display(){let e=n=>new Intl.NumberFormat("de-DE",{style:"decimal",minimumFractionDigits:2,maximumFractionDigits:2}).format(n),i=n=>n.replace("EUR","\u20AC");return pe().value==="USD"?`$${e(this.price*USD_CONVERSION_RATE)}`:`${e(this.price)}\xA0${i(this.currency)}`}};var Me=class{get urlString(){let e=this.urlStringLocal;return this.loginHint.trim()!==""&&(e+=`&loginHint=${encodeURIComponent(this.loginHint)}`),e}get urlStringLocal(){let e=`date=${this.startDate.toISOString().split("T")[0]}&nights=${this.nights}&adults=${this.adults}`;return this.children.length&&(e+=`&children=${this.children.reduce((i,n)=>i+n.age+",","").slice(0,-1)}`),this.accessCode.trim()!==""&&(e+=`&accessCode=${encodeURIComponent(this.accessCode)}`),this.ratePlanId.trim()!==""&&(e+=`&ratePlanId=${encodeURIComponent(this.ratePlanId)}`),e}get endDate(){let e=new Date(this.startDate);return e.setDate(e.getDate()+this.nights),e}get displayDate(){return`${ue(this.startDate)} - ${ue(this.endDate)}`}constructor(e){this.startDate=e?.startDate||new Date,this.nights=e?.nights||1,this.adults=e?.adults||2,this.children=e?.children||[],this.accessCode=e?.accessCode||"",this.loginHint=e?.loginHint||"",this.ratePlanId=e?.ratePlanId||""}displayGuests(e){return`${e("bookingModal.adults")}: ${this.adults}, ${e("bookingModal.noChildren")}: ${this.children.length}`}updateFromUrl(e){this.startDate=e.get("date")?new Date(e.get("date")):this.startDate,this.children=ia(e.get("
548children"));let i=["nights","adults"],n=["accessCode","loginHint","ratePlanId"];i.forEach(r=>{this[r]=parseInt(e.get(r))||this[r]}),n.forEach(r=>{this[r]=decodeURIComponent(e.get(r)||"")||this[r]});let a={};return["startDate","children"].concat(i,n).forEach(r=>{a[r]=this[r]}),a}update(e){this.startDate=e.startDate,this.nights=e.nights,this.adults=e.adults,this.children=e.children||[],this.accessCode=e.accessCode||"",this.loginHint=e.loginHint||"",this.ratePlanId=e.ratePlanId||""}},bi=class extends Me{get urlString(){let e=super.urlString;return e+=`&destination=${this.destination.slug}`,this.property&&(e+=`&propertyId=${this.property.phobsId}`),e}get urlStringLocal(){let e=super.urlStringLocal;return e+=`&destination=${this.destination.slug}`,this.property&&(e+=`&propertyId=${this.property.phobsId}`),e}constructor(e){super(),this.destination={},this.property=null,this.all=e}},yi=class extends Me{constructor(e,i=null){super();let n=new Date(e.from.substring(0,10)),a=new Date;e.min_days_to_booking&&a.setDate(a.getDate()+e.min_days_to_booking),this.startDate=n.getTime()<a.getTime()?a:n,e.minNights&&(this.nights=e.minNights),e.accessCode&&(this.accessCode=e.accessCode),e.ratePlanId&&(this.ratePlanId=e.ratePlanId),i&&(this.loginHint=i)}};var Do={name:"PropertyCard",components:{CldImg:Ie,PropertyCardGallery:Mo},template:`
549<div class="property-card">
550  <PropertyCardGallery v-if="showGallery && property.propertyListingGallery" :property="property" />
551  <a v-else :href="property.link" :title="property.title" class="property-card__image">
552    <CldImg :src="property.image ?? '/icons/hotel.svg'" :alt="property.title" set-height="true" />
553    <img
554        v-if="property.groupLogoCircle"
555        :src="property.groupLogoCircle"
556        :alt="property.groupTitle + ' logo'"
557        class="property-card__group-logo"
558        loading="lazy"
559        width="44"
560        height="40">
561  </a>
562
563  <div class="property-card__content">
564    <span class="card__discount" v-show="discount">{{ formattedDiscount }}</span>
565
566    <div v-if="property.brandLogo" class="property-card__logos">
567      <img
568        :src="property.brandLogo"
569        :alt="'Maistra '+ property.brand"
570        class="property-card__brand-logo"
571        loading="lazy"
572        width="168"
573        height="20">
574    </div>
575    <a class="h3" :href="property.link">{{ property.title }}</a>
576
577    <div class="card__stars">
578      <span v-if="property.stars" class="stars" :class="'theme--' + property.brand">
579        <i v-for="n in property.stars" class="icon-star"></i>
580      </span>
581      <span>{{ property.destination }}</span>
582    </div>
583
584    <div v-show="!customDescription">
585      <p class="no-margin-top">{{ property.description }}</p>
586      <a class="arrow-button" :href="property.link + '?' + bookingParams.urlString">
587        {{ $t('discoverMore') }}
588        <i class="icon-arrow-right"></i>
589      </a>
590    </div>
591    <div v-show="customDescription">
592      <p class="no-margin-top" v-html="customDescription"></p>
593    </div>
594  </div>
595
596  <div class="property-card__price">
597    <a
598      v-if="property.trustYouId"
599      :href="'https://api.trustyou.com/hotels/' + property.trustYouId + '/meta_review.html?key=59ab800f-a267-4623-939c-9436701bd9cd&display=full' + '&lang=' + trustYouLocale"
600      target="_blank" title="TrustYou Score">
601      <iframe
602        :src="'https://api.trustyou.com/hotels/' + property.trustYouId + '/seal.html?size=m&key=' + TRUST_YOU_API_KEY + '&lang=' + trustYouLocale"
603        width="100%"
604        title="TrustYou Score"
605        height="60"
606        frameborder="0"
607        id="iFrameResizer2"
608        scrolling="no"
609        loading="lazy"
610        style="overflow: hidden; pointer-events: none;">
611      </iframe>
612    </a>
613
614    <template v-if="!resolvingAvailability">
615      <h3 v-if="property.availablePriceFrom && hasPrice" class="unit-card__price">
616        <small>{{ $t('perUnit') }}</small>
617        <span>{{ $t('from') }}</span>
618        {{ property.availablePriceFrom.display }}
619      </h3>
620
621      <div class="property-card__price-box-info" v-if="property.availablePriceFrom && property.priceBoxInfo">
622        <p>{{ property.priceBoxInfo }}</p>
623      </div>
624
625      <button
626        v-if="property.availablePriceFrom"
627        class="button button--primary"
628        @click="openBooking">
629        {{ $t('bookNow') }}
630      </button>
631
632      <template v-else-if="isAvailabilityError">
633        <i>{{ $t('unitDemand.availabilityError') }}</i>
634        <a :href="CONTACT_URL + '?property=' + property.phobsId" class="button button--primary">{{ $t('unitDemand.contactButton') }}</a>
635      </template>
636
637      <template v-else>
638        <i>{{ $t('unitDemand.contactText') }}</i>
639        <button class="button button--outline" @click="openBookingWidget">{{ $t('unitDemand.modifySearch') }}</button>
640        <a :href="CONTACT_URL + '?property=' + property.phobsId" class="button button--primary">{{ $t('unitDemand.contactButton') }}</a>
641      </template>
642    </template>
643
644    <img v-else src="https://res.cloudinary.com/maistra/image/upload/v1658495232/Assets/auth-in-progress-dark.svg" width="80" loading="lazy" />
645  </div>
646</div>
647  `,props:{property:{type:Object,required:!0},bookingParams:{type:Object,default:{}},customDescription:{type:String,default:""},discount:{type:String,default:""},hasPrice:{type:Boolean,default:!0},showGallery:{type:Boolean,default:!1},fallbackAvailability:{type:Boolean,default:!1},availabilityPeriods:{type:Array,default:null}},setup(t){let e=Vue.ref(!0),i=Vue.ref(!1),n=Vue.ref(!1),a=Vue.ref(""),r=pe(),l=LOCALE==="si"?"sl":LOCALE,s=()=>{window.triggerBookingWidget({source:"property-card",level:"calendar",propertyId:t.property.phobsId,...t.bookingParams})},p=()=>{AlgoliaEvents&&AlgoliaEvents.convertedFilters({eventName:"Booking Intent",property:[t.property.groupTitle],brand:[t.property.brand],destination:[t.property.destination],propertyType:[t.property.menuGroup],campingType:t.property.campingType?[t.property.campingType]:[],holidayType:t.property.holidayTypes??[]});let{phobsId:v,title:z,brand:_,menuGroup:j,destination:O}=t.property;DATA_LAYER?.wwwBookNow({id:v,name:z,brand:_,category:`${j}/${O}`});let C=new Me({...t.bookingParams});n.value&&t.fallbackAvailability&&(C.startDate=new Date(n.value)),window.location.href=`${BOOKING_APP_URI}${PREFIX}/step1?propertyId=${t.property.phobsId}&${C.urlString}&currency=${r.value}`};async function u(){if(!t.property.phobsId){e.value=!1,i.value=!0;return}e.value=!0,t.property.availablePriceFrom=null;let{accessCode:v,startDate:z,endDate:_}=t.bookingParams,j={id:t.property.phobsId,accessCode:encodeURIComponent(v),start:z.toISOString().substring(0,10),end:_.toISOString().substring(0,10),locale:LOCALE};if(t.availabilityPeriods&&t.availabilityPeriods.length&&(j.periods=t.availabilityPeriods.map(C=>`${C.start_date.substr(0,10)}:${C.end_date.substr(0,10)}`).join(",")),j.start<new Date().toISOString().substring(0,10)){e.value=!1;return}let O=await b(j);e.value=!1,O!=null&&O.rateFrom!==null&&(t.property.availablePriceFrom=new _t(O.rateFrom,O.currency)),t.fallbackAvailability&&O.firstAvailableDate&&(n.value=O.firstAvailableDate.date,t.property.availablePriceFrom=new _t(O.firstAvailableDate.rateFrom,O.firstAvailableDate.currency))}async function b(v){try{let z=await fetch(`${AZURE_URI}GetPropertyAvailability?`+Object.keys(v).map(_=>`${_}=${v[_]}`).join("&"));if(!z.ok)throw new Error(z.statusText);return await z.json()}catch{i.value=!0}}Vue.watch(t.bookingParams,()=>u(),{immediate:!0}),Vue.watch(r,()=>{let v=t.discount;a.value=Rt(v)},{immediate:!0});let y=Vue.computed(()=>{if(!a.value)return"";let v=["hr","en"].includes(LOCALE);return a.value.replace(/(\d+(?:[.,]\d+)?)\s*%/g,v?"$1%":"$1 %").replace(/(\d+(?:[.,]\d+)?)\s*€/g,"$1 \u20AC")});return{LOCALE,trustYouLocale:l,CONTACT_URL,TRUST_YOU_API_KEY,resolvingAvailability:e,isAvailabilityError:i,openBookingWidget:s,openBooking:p,discount:a,formattedDiscount:y}}};var pc=ae(de),Eo=Vue.createApp({name:"BrandPropertyListApp",components:{PropertyCard:Do,Notifications:Se},template:`
648<Notifications />
649<PropertyCard
650  v-for="property in filteredProperties"
651  :property="property"
652  :bookingParams="bookingParams"
653  :fallbackAvailability="true" />
654  `,setup(){let t=Vue.reactive(new Me),e=Vue.reactive([]),i=Vue.computed(()=>e.filter(a=>BRAND===a.brand&&a.isBrandSuggestion));async function n(){Object.assign(e,null);let a=await fetch(`${AZURE_URI}GetProperties?locale=${LOCALE}`);if(!a.ok)throw new Error(a.statusText);Object.assign(e,await a.json())}return Vue.onMounted(async()=>{await sa(n),L.on("authenticated",a=>{t.loginHint=`${a.detail.loginHint}`})}),{bookingParams:t,filteredProperties:i,PREFIX}}}),Ro=document.getElementById("brand-property-list");Ro&&(Eo.use(pc),Eo.mount(Ro));var xo={name:"Guests",template:`
655<div class="guests">
656  <div class="guests__selector">
657    <label for="adults">{{ $t('bookingModal.adults') }}</label>
658    <div class="guests__adult-input">
659      <button @click="guests.adults -= 1" class="guests__decrement" :disabled="guests.adults <= 1">-</button>
660      <input
661        disabled
662        id="adults"
663        v-model="guests.adults"
664        placeholder="adults"
665        type="number"
666        :max="maxAdults"
667        min="1">
668        <button @click="guests.adults += 1" class="guests__increment" :disabled="guests.adults >= maxAdults">+</button>
669      </div>
670  </div>
671
672  <div class="guests__selector" v-if="maxChildAge > 0">
673    <label for="childrenCount">{{ $t('bookingModal.children') }}</label>
674    <div class="guests__children-input">
675      <button @click="noOfChildren -= 1" class="guests__decrement" :disabled="noOfChildren <= 0">-</button>
676      <input
677        disabled
678        id="childrenCount"
679        :value="guests.children.length"
680        placeholder="number of children"
681        type="number"
682        :max="maxChildren"
683        min="0">
684      <button @click="noOfChildren += 1" class="guests__increment" :disabled="noOfChildren >= maxChildren">+</button>
685    </div>
686  </div>
687
688  <div class="guests__ages" v-if="maxChildAge > 0">
689    <h3 v-if="guests.children.length">{{ $t('bookingModal.age') }}</h3>
690    <div v-for="(child, index) in guests.children" :key="index" class="guests__age">
691      <!-- <label for="children">{{ $t('bookingModal.selectAge') }} {{ index + 1 }}</label> -->
692      <select id="children" v-model="child.age">
693        <option v-for="n in maxChildAge" :value="n">{{ n }}</option>
694      </select>
695    </div>
696  </div>
697
698  <Teleport to="#modal-footer-teleport">
699    <div class="modal__note">{{ $t('bookingModal.note') }}</div>
700    <div class="modal__buttons">
701      <button
702        class="button"
703        :disabled="guests.adults < 1"
704        @click="$emit('updateGuests', guests)">
705        {{ buttonLabel ? buttonLabel : $t('bookingModal.selectBtn') }}
706      </button>
707    </div>
708  </Teleport>
709</div>
710  `,props:{children:Array,adults:Number,buttonLabel:String,property:Object},emits:["updateGuests"],setup(t,{emit:e}){let{property:i}=Vue.toRefs(t),n=Vue.computed(()=>i.value?i.value.maxChildAge:17),a=Vue.reactive({adults:t.adults,children:[...t.children]}
710),r=Vue.ref([...t.children].length);Vue.watch(r,p=>{p<a.children.length?a.children.pop():p>a.children.length&&a.children.push({age:"1"})});let l=Vue.computed(()=>{let p=i.value?i.value.maxGuests:24,u=i.value?i.value.maxAdults:18;return p-a.children.length<=u?p-a.children.length:u}),s=Vue.computed(()=>{let p=i.value?i.value.maxGuests:24,u=i.value?i.value.maxChildren:21;return p-a.adults<=u?p-a.adults:u});return Vue.watch(i.value,()=>{a.adults>l.value&&(a.adults=l.value),a.children.length>s.value&&(a.children=a.children.slice(0,s.value))},{immediate:!0}),{guests:a,noOfChildren:r,maxChildAge:n,maxAdults:l,maxChildren:s}}};var Lo={name:"AccessCode",template:`
711<div class="access-code">
712  <label for="access-code">{{ $t('accessCode.label') }}</label>
713
714  <div class="access-code__controls">
715    <input
716      id="access-code"
717      type="text"
718      :value="internalValue"
719      @input="updateValue">
720
721    <button
722      v-if="isValid && internalValue !== ''"
723      class="button access-code__button"
724      :title="$t('accessCode.remove')"
725      @click="clearAccessCode">
726      {{ $t('accessCode.remove') }}
727    </button>
728    <button
729      v-else
730      :disabled="!isDirty || internalValue == ''"
731      class="button access-code__button access-code__button--confirm"
732      :title="$t('accessCode.confirm')"
733      @click="checkAccessCode">
734      {{ $t('accessCode.confirm') }}
735    </button>
736
737  </div>
738
739  <div
740    v-show="isValid && isInfoShown"
741    class="access-code__info access-code__info--valid">
742    <i class="icon-check"></i>
743    {{ $t('accessCode.validAccessCode') }}
744  </div>
745
746  <div
747    v-show="!isValid && !isVoucher && isInfoShown"
748    class="access-code__info access-code__info--invalid">
749    <i class="icon-warning"></i>
750    {{ $t('accessCode.invalidAccessCode') }}
751  </div>
752
753  <div
754    v-show="!isValid && isVoucher && isInfoShown"
755    class="access-code__info access-code__info--invalid">
756    <i class="icon-warning"></i>
757    {{ $t('bookingModal.accessCodeIsVoucher') }}
758  </div>
759</div>
760  `,props:{modelValue:String},emits:["update:modelValue","update","error","validPropertyIds"],setup(t,{emit:e}){let i=Vue.ref(!1),n=Vue.ref(!1),a=Vue.ref(!1),r=Vue.ref(!1),l=Vue.ref(t.modelValue);function s(b){l.value=b.target.value.trim(),a.value=!0,i.value=!1,r.value=!1}l.value!==""&&p();async function p(){a.value=!1,n.value=!1;try{let b=await fetch(`${AZURE_URI}CheckAccessCode?accessCode=${encodeURIComponent(l.value)}&locale=${LOCALE}`);if(!b.ok)throw new Error("Error checking access code.");let y=await b.json();n.value=y.length===1&&y[0]==="voucher",i.value=y.length>0&&!n.value,i.value&&(e("validPropertyIds",y),e("update:modelValue",l.value),e("update")),r.value=!0}catch(b){e("error",b),e("validPropertyIds",[])}}function u(){r.value=!1,l.value="",e("update:modelValue",""),e("update"),e("validPropertyIds",[])}return{isValid:i,isVoucher:n,isDirty:a,isInfoShown:r,internalValue:l,updateValue:s,checkAccessCode:p,clearAccessCode:u}}};var mc=ae(de),st=Vue.createApp({name:"CheckRatesApp",components:{Notifications:Se,BookingCalendar:xt,Guests:xo,AccessCode:Lo,CldImg:Ie},template:`
761<Notifications />
762<transition name="fade">
763<div v-if="showCheckRates" class="check-rates">
764  <header class="header header--simple">
765    <div class="header__top">
766      <div class="header-logos">
767        <a :href="HOME_URL" :title="HOME_TITLE" class="header-logos__maistra">
768          <picture>
769            <source media="(min-width: 992px)" :srcset="LOGO.desktop">
770            <img :src="LOGO.mobile" :alt="HOME_TITLE" width="48" height="48">
771          </picture>
772        </a>
773      </div>
774      <div class="header__icons">
775        <button class="button button--blank" @click="hideModal()" :title="$t('checkRates.closeButtonLabel')">
776          <span class="hide-sm-down">{{ $t('checkRates.closeButtonLabel') }}</span>
777          <i class="icon-close"></i>
778        </button>
779      </div>
780    </div>
781  </header>
782
783  <div
784    v-show="step === 3 || step === 4"
785    id="modal-footer-teleport"
786    class="modal__footer">
787  </div>
788
789  <div
790    v-if="!state.isLoading.value && !state.fatalError.value"
791    class="check-rates__main container container--fluid"
792    :class="{'check-rates__main--padding': step > 2}">
793
794    <div class="main-title">
795      <button
796        v-if="step !== 1"
797        @click="changeStep(step -1)"
798        class="main-title__back">
799        <i class="icon-arrow-left-long"></i>
800        <span>{{ $t('checkRates.backLabel') }}</span>
801      </button>
802      <div class="main-title__text">
803        <span class="main-title__number">{{ step }}</span>
804        <h2 class="no-margin">{{ $t('checkRates.stepTitle' + step) }}</h2>
805      </div>
806    </div>
807
808    <div v-if="step === 1" class="grid">
809      <div
810        role="button"
811        v-for="destination in destinationsWithProperties"
812        :disabled="destination.unavailableForAccessCode"
813        @click="bookingParams.destination = destination; nextStep()"
814        class="col-12 col-xs-10 col-sm-8 col-md-6 col-lg-5 col-xxl-2 check-rates__destination">
815        <h4 class="h2">{{ destination.title }}</h4>
816        <div>
817          <CldImg :src="destination.image" :alt="destination.title" />
818        </div>
819      </div>
820
821      <AccessCode
822        class="col-12 col-xs-10 col-sm-8 col-md-6 col-lg-5 col-xxl-3 order-xxl-11"
823        v-model="bookingParams.accessCode"
824        @validPropertyIds="validPropertyIds =  $event"
825        @error="setErrorAndStopLoading" />
826
827      <button
828        @click="bookingParams.destination = {title: $t('all'), slug: $t('all').toLowerCase()}; nextStep()"
829        class="col-12 col-lg-5 col-xxl-3 offset-xxl-9 order-xxl-10 check-rates__select-all negative-cp-lg-down">
830        <span class="h3 no-margin">{{ $t('checkRates.allDestinations') }}</span>
831      </button>
832    </div>
833
834    <div v-if="step === 2">
835      <div class="grid">
836        <div class="col-12 col-xs-11 col-sm-10 col-md-9 col-lg-8 col-xl-4 offset-xxl-8 order-xl-3">
837          <div class="check-rates__image">
838            <CldImg
839              v-if="bookingParams.destination.slug === $t('all').toLowerCase()"
840              src="https://res.cloudinary.com/maistra/image/upload/Destinations/Rovinj/Rovinj%20-TZ/tommueller-_rovinj2018-001_pldkdm.jpg"
841              :alt="$t('all')" />
842            <CldImg
843              v-else
844              :src="bookingParams.destination.image"
845              :alt="bookingParams.destination.title" />
846            <CldImg
847              v-for="property in propertiesByMenuGroup('hotels, resorts, camping')"
848              v-show="property.title === hoverPropertyTitle"
849              :src="property.image"
850              :alt="property.title" />
851          </div>
852        </div>
853
854        <div class="check-rates__property-list col-12 col-sm-6 col-xl-4 col-xxl-3 order-xl-1">
855          <h3>{{ $t('checkRates.hotelsResorts') }}</h3>
856          <p v-if="propertiesByMenuGroup('hotels, resorts').length === 0" class="no-margin-top">{{ $t('checkRates.noProperties') }}</p>
857
858          <a
859            v-for="property in propertiesByMenuGroup('hotels, resorts')"
860            class="check-rates__property-title"
861            :disabled="!(property.priceFrom && property.priceFrom > 0) || property.unavailableForAccessCode"
862            @click="selectProperty(property)"
863            @mouseover="hoverPropertyTitle = property.title"
864            @mouseout="hoverPropertyTitle = ''">
865            <span>{{ property.title }}</span>
866            <span v-if="property.stars" class="stars" :class="'theme--' + property.brand">
867              <i v-for="n in property.stars" class="icon-star"></i>
868            </span>
869          </a>
870
871          <button
872            @click="selectProperty(null)"
873            class="check-rates__select-all check-rates__select-all--properties negative-cp-lg-down">
874            <span class="h3 no-margin">
875              {{ $t('checkRates.allProperties') }} {{ bookingParams.destination.slug == 'all' ? $t('allDestinations') : bookingParams.destination.title }}
876            </span>
877          </button>
878        </div>
879
880        <div class="check-rates__property-list col-12 col-sm-6 col-xl-4 col-xxl-3 offset-xxl-4 order-xl-2">
881          <h3>{{ $t('checkRates.campsites') }}</h3>
882          <p v-if="propertiesByMenuGroup('camping').length === 0" class="no-margin-top">{{ $t('checkRates.noProperties') }}</p>
883
884          <a
885            v-for="property in propertiesByMenuGroup('camping')"
886            class="check-rates__property-title"
887            :disabled="!(property.priceFrom && property.priceFrom > 0) || property.unavailableForAccessCode"
888            @click="bookingParams.property = property; nextStep()"
889            @mouseover="hoverPropertyTitle = property.title"
890            @mouseout="hoverPropertyTitle = ''">
891            <span>{{ property.title }}</span>
892            <span v-if="property.stars" class="stars" :class="'theme--' + property.brand">
893              <i v-for="n in property.stars" class="icon-star"></i>
894            </span>
895          </a>
896
897          <AccessCode
898            class="access-code--property"
899            v-model="bookingParams.accessCode"
900            @validPropertyIds="validPropertyIds =  $event"
901            @error="setErrorAndStopLoading" />
902        </div>
903      </div>
904    </div>
905
906    <div v-if="step === 3" class="check-rates__calendar-container">
907      <BookingCalendar
908        v-if="!availabilityCalendar.loading"
909        :startDate="bookingParams.startDate"
910        :nights="bookingParams.nights"
911        :propertyIds="propertyIds"
912        :accessCode="bookingParams.accessCode"
913        :availabilityCalendar="availabilityCalendar"
914        :forCheckRates="true"
915        @error="setErrorAndStopLoading"
916        @dateSelected="bookingParams.startDate = $event.startDate; bookingParams.nights = $event.nights; nextStep()" />
917    </div>
918
919    <Guests
920      v-if="step === 4"
921      :adults="bookingParams.adults"
922      :children="bookingParams.children"
923      :buttonLabel="bookingParams.property ? $t('bookNow') : $t('bookNow')"
924      :property="bookingParams.property"
925      @updateGuests="updateGuests"/>
926
927    <div v-if="step > 2" class="reservation-summary reservation-summary--search" :class="openWindow">
928      <div class="reservation-summary__title">
929        <h4>{{ $t('checkRates.serachOverview') }}</h4>
930        <span @click="isOpen = !isOpen" role="button">
931          {{ isOpen ? $t('bookingModal.closeBtn') : $t('bookingModal.openBtn') }}
932        </span>
933      </div>
934
935      <div class="reservation-summary__content">
936        <div>
937          <div v-if="bookingParams.destination" class="reservation-summary__item">
938            {{ $t('checkRates.destination') }} {{ bookingParams.destination.title }}
939            <span role="button" @click="changeStep(1)">{{ $t('checkRates.edit') }}</span>
940          </div>
941
942          <div v-if="bookingParams.property" class="reservation-summary__item">
943            <span class="font-maistra-display uppercase">
944              {{ bookingParams.property.title }}
945              <span> &nbsp; </span>
946              <br class="hide-md-down hide-xl-up">
947              <span class="stars stars--small" :class="'theme--' + bookingParams.property.brand">
948                <i v-for="n in bookingParams.property.stars" class="icon-star"></i>
949              </span>
950            </span>
951            <span role="button" @click="changeStep(2)">{{ $t('checkRates.edit') }}</span>
952          </div>
953          <div v-else class="reservation-summary__item">
954            {{ $t('checkRates.allPropertiesInDestination') }}
955            <span role="button" @click="changeStep(2)">{{ $t('checkRates.edit') }}</span>
956          </div>
957
958          <div v-if="step === 4" class="reservation-summary__item">
959           {{ bookingParams.displayDate }} / {{ bookingParams.nights }} {{ $t('checkRates.nights') }}
960            <span role="button" @click="changeStep(3)">{{ $t('checkRates.edit') }}</span>
961          </div>
962        </div>
963
964        <AccessCode
965          class="access-code--summary"
966          v-model="bookingParams.accessCode"
967          @validPropertyIds="validPropertyIds =  $event"
968          @error="error = $event"
969          />
970      </div>
971    </div>
972  </div>
973</div>
974</transition>
975  `,setup(){let{state:t}=ft(),e=Vue.reactive([]),i=Vue.ref(!1),n=Vue.ref(1),a=Vue.ref(!1),{t:r}=VueI18n.useI18n(),l=Vue.computed(()=>a.value?"reservation-summary--open":""),s=Vue.reactive(new bi(r("all"))),{accessCode:p}=Vue.toRefs(s),u=Vue.ref([]),b=Vue.ref(""),y=Vue.reactive(new Ye),v=DESTINATIONS.filter(f=>f.show_on_check_rates),z=Vue.computed(()=>{if(!s.property){let f=s.destination;return e.filter(h=>(f.title===r("all")||f.slug===h.destination)&&h.phobsId).map(h=>h.phobsId)}return s.property.phobsId?[s.property.phobsId]:[]});Vue.watch([n,p],async()=>{if(n.value===3)try{await y.loadAvailability({propertyIds:z.value,accessCode:s.accessCode})}catch(f){be(f)}}),Vue.watch(u,()=>{let f=p.value;e.forEach(h=>{h.unavailableForAccessCode=f!==""&&!u.value.includes(h.phobsId)}),v.forEach(h=>{h.unavailableForAccessCode=f!==""&&!e.find(R=>R.destination===h.slug&&!R.unavailableForAccessCode)}),f!==""&&n.value>=3&&u.value.filter(h=>z.value.includes(h)).length===0&&j(1)});function _(){j(n.value+1)}function j(f){f===4&&s.property&&s.property.defaultNrAdults&&(s.adults=s.property.defaultNrAdults);let h=`/check-rates?step=${f}`;h!==rt.currentRoute.value.fullPath&&rt.push(h)}function O(f){s.property?.phobsId!==f?.phobsId&&(s.startDate=new Date,s.nights=1),s.property=f,_()}async function C(){let f=N()?2:1;return E()?3:f}function N(){if(typeof DESTINATION>"u"||DESTINATION==="")return null;let f=DESTINATIONS.find(h=>DESTINATION===h.slug);return f!=null&&(s.destination=f),f}
975function E(){if(typeof PROPERTY_PHOBS_ID>"u"||PROPERTY_PHOBS_ID==="")return null;let f=e.find(h=>PROPERTY_PHOBS_ID===h.phobsId);return f!=null&&(s.property=f),f}function Q({propertyId:f,accessCode:h,adults:R,children:U}){if(f!=null){let B=e.find(q=>f===q.phobsId);B!=null&&(s.property=B,s.destination=DESTINATIONS.find(q=>B.destination===q.slug))}R!=null&&(s.adults=parseInt(R)),U!=null&&(s.children=U.split(",").map(B=>({age:parseInt(B)}))),h!=null&&(s.accessCode=h)}function X(){rt.push("/")}function M(f){if(s.adults=f.adults,s.children=f.children,s.urlString.includes("propertyId")){AlgoliaEvents&&AlgoliaEvents.convertedFilters({eventName:"Booking Intent",property:[s.property.groupTitle],brand:[s.property.brand],destination:[s.property.destination],propertyType:[s.property.menuGroup],campingType:s.property.campingType?[s.property.campingType]:[],holidayType:s.property.holidayTypes??[]});let{phobsId:h,groupTitle:R,brand:U,menuGroup:B,destination:q}=s.property;DATA_LAYER?.wwwBookNow({id:h,name:R,brand:U,category:`${B}/${q}`}),window.location=`${BOOKING_APP_URI}${PREFIX}/step1?${s.urlString}&currency=${pe().value}`}else window.location=`${PROPERTIES_URL}?${s.urlStringLocal}`}function W(f){return e.filter(h=>{let R=s.destination,U=R.title===r("all")||R.slug===h.destination;return f.split(", ").some(q=>q===h.menuGroup)&&U&&!h.isPropertyBundle})}async function S(){ze("getProperties");try{Object.assign(e,null);let f=await fetch(`${AZURE_URI}GetProperties?accessCode=${s.accessCode}&locale=${LOCALE}`);if(!f.ok)throw new Error(f.statusText);Object.assign(e,await f.json()),e.sort((h,R)=>(h.propertyListingWeight??Number.MAX_VALUE)-(R.propertyListingWeight??Number.MAX_VALUE)),ht("getProperties")}catch(f){be(f)}}return rt.afterEach(async f=>{if(f.name==="None"){n.value=1,e.length=0,i.value=!1,document.body.classList.remove("overflow-hidden");return}if(e.length===0&&await S(),f.query.step===void 0){rt.replace("/check-rates?step="+await C());return}let h=new URLSearchParams(window.location.search),R=Object.fromEntries(h.entries());Q({...f.query,...R}),n.value=parseInt(f.query.step),i.value=!0,document.body.classList.add("overflow-hidden"),DATA_LAYER?.wwwCheckRates({stepNumber:n.value,bookingParams:s})}),Vue.onMounted(()=>{L.on("authenticated",f=>{s.loginHint=`${f.detail.loginHint}`})}),{state:t,setErrorAndStopLoading:be,showCheckRates:i,step:n,nextStep:_,changeStep:j,bookingParams:s,availabilityCalendar:y,isOpen:a,openWindow:l,hideModal:X,propertiesByMenuGroup:W,propertyIds:z,updateGuests:M,hoverPropertyTitle:b,getProperties:S,selectProperty:O,LOGO,HOME_TITLE,HOME_URL,destinationsWithProperties:v,formatDateForMaistra:ue,validPropertyIds:u}}});location.hash.startsWith("#/check-rates")&&(location.hash="#");var No=document.getElementById("check-rates-app"),rt=VueRouter.createRouter({history:VueRouter.createWebHashHistory(),routes:[{path:"/check-rates",name:"CheckRatesApp",component:st},{path:"/:pathMatch(.*)*",name:"None",component:st}],scrollBehavior(t,e,i){return t.hash?{el:t.hash,behavior:"smooth"}:i||{top:0}}});No&&(st.use(mc),st.use(primevue,{locale:Dt(LOCALE)}),st.use(rt),st.mount(No));var hc={name:"SearchHeader",template:`
976    <div class="header__top">
977      <div class="header-logos">
978        <a :href="HOME_URL" :title="HOME_TITLE" class="header-logos__maistra">
979          <picture>
980            <source media="(min-width: 992px)" :srcset="LOGOS.maistra.desktop">
981            <img :src="LOGOS.maistra.mobile" :alt="HOME_TITLE" width="48" height="48">
982          </picture>
983        </a>
984      </div>
985      <div class="header__icons">
986        <button class="button button--blank" @click="$emit('close')" :title="$t('close')">
987          <span class="hide-sm-down">{{ $t('close') }}</span>
988          <i class="icon-close"></i>
989        </button>
990      </div>
991    </div>
992  `,setup(){return{LOGOS,HOME_TITLE,HOME_URL}}},Vo=hc;var fc=ae(de),Fo=Vue.createApp({name:"SearchApp",components:{Notifications:Se,SearchHeader:Vo},template:`
993<Notifications />
994<div>
995  <button :title="$t('search')" class="header__icon" @click="openSearch">
996    <span class="header__icon--search">
997      <i class="icon-search"></i>
998    </span>
999  </button>
1000  <div v-if="showSearch" class="search">
1001    <header class="header header--simple">
1002      <SearchHeader @close="showSearch = false" />
1003
1004      <div class="container grid section-padding-small header__search">
1005        <div class="col-12 col-lg-10 offset-lg-1 col-xl-8 offset-xl-2">
1006          <label class="search__input">
1007            <span><i class="icon-search"></i></span>
1008            <div ref="searchBox"></div>
1009          </label>
1010          <template v-if="switchLanguage">
1011            <div class="search__suggestions">
1012              <h3></h3>
1013              <button @click="switchLanguage.action">{{ switchLanguage.text }}</button>
1014            </div>
1015          </template>
1016          <template v-else-if="appliedFiltersCount === 0">
1017            <h3 class="search__suggestions-title">{{ $t('searchApp.suggestionsTitle') }}</h3>
1018            <div class="search__suggestions">
1019              <button v-for="suggestion in suggestions" @click="() => applySuggestion(suggestion.query, searchInstance)">{{ suggestion.title }}</button>
1020            </div>
1021          </template>
1022          <div class="search__refinement">
1023            <div ref="searchCurrentRefinements"></div>
1024            <div ref="searchClearRefinements"></div>
1025          </div>
1026          <button class="search__toggle-filters button button--outline" @click="openFilters">
1027            {{ $t('searchApp.showFilters') }} <span v-if="appliedFiltersCount > 0"> ({{ appliedFiltersCount }})</span>
1028          </button>
1029        </div>
1030      </div>
1031    </header>
1032
1033    <div class="container grid section-padding-small">
1034      <div class="search__refinements col-12 col-md-3 offset-lg-1 col-xl-2 offset-xl-2" :class="{ 'open': filtersOpen }">
1035
1036        <header class="header header--simple">
1037          <SearchHeader @close="closeFilters" />
1038        </header>
1039
1040        <div class="search__refinements__container">
1041          <h3 class="search__refinements__title">
1042            <div>
1043              {{ $t('filters') }}
1044              <span v-if="appliedFiltersCount > 0"> ({{ appliedFiltersCount }})</span>
1045            </div>
1046            <div ref="searchClearRefinementsMobile"></div>
1047          </h3>
1048          <div class="title">{{ $t('searchApp.filters.propertyType') }}</div>
1049          <div ref="propertyTypeRefinement" class="search__refinements__primary"></div>
1050          <div class="title">{{ $t('searchApp.filters.destination') }}</div>
1051          <div ref="destinationRefinement"></div>
1052          <div class="title">{{ $t('searchApp.filters.brand') }}</div>
1053          <div ref="brandRefinement"></div>
1054          <!-- Useful for debugging -->
1055          <div hidden>
1056            <div class="title">Type</div>
1057            <div ref="categoryRefinement"></div>
1058          </div>
1059        </div>
1060
1061        <div class="footer">
1062          <button class="button button--primary" v-if="filtersChangedSinceLastConfirm" @click="filtersOpen = false">{{ $t('searchApp.applyFilters') }}</button>
1063          <button class="button button--outline" v-else @click="filtersOpen = false">{{ $t('searchApp.cancelFilters') }}</button>
1064        </div>
1065      </div>
1066      <div class="col-12 col-md-9 col-lg-7 col-xl-6">
1067        <div ref="searchStats"></div>
1068        <div class="search__hits" ref="searchHits"></div>
1069        <div class="search__pagination" ref="searchPagination"></div>
1070      </div>
1071    </div>
1072  </div>
1073</div>
1074  `,setup(){let{t}=VueI18n.useI18n(),e=Vue.ref(!1),i=Vue.ref(null),n=Vue.ref(null),a=Vue.ref(null),r=Vue.ref(null),l=Vue.ref(null),s=Vue.ref(null),p=Vue.ref(null),u=Vue.ref(null),b=Vue.ref(null),y=Vue.ref(null),v=Vue.ref(null),z=Vue.ref(null),_=Vue.ref({}),j=Vue.ref(null),O=Vue.ref(null),C=Vue.ref(!1),N=Vue.ref(!1),E=Vue.computed(()=>j.value?.[ALGOLIA_INDEX]?.refinementList?Object.values(j.value[ALGOLIA_INDEX].refinementList).reduce((m,w)=>m+w.length,0):0),Q=Vue.ref(null),X=SEARCH_SUGGESTIONS.filter(m=>m.location.includes("search")),M=Vue.computed(()=>window.LOCALE!=="en"&&j.value?.[ALGOLIA_INDEX].query?.toLowerCase()==="english"&&window.TRANSLATIONS.find(m=>m.lang==="en")?{text:"Switch to English",action:()=>{window.location=window.TRANSLATIONS.find(m=>m.lang==="en").url}}:window.LOCALE!=="de"&&j.value?.[ALGOLIA_INDEX].query?.toLowerCase()==="deutsch"&&window.TRANSLATIONS.find(m=>m.lang==="de")?{text:"Wechseln Sie zu Deutsch",action:()=>{window.location=window.TRANSLATIONS.find(m=>m.lang==="de").url}}:null);function W(){e.value=!0,setTimeout(()=>{ct(),n.value.querySelector("input").focus()},50)}function S(){C.value=!0,document.body.classList.add("overflow-hidden"),O.value=j.value,N.value=!1}function f(){C.value=!1,document.body.classList.remove("overflow-hidden"),Q.value.setUiState(O.value)}function h(m){return m.split("-").map(w=>w.charAt(0).toUpperCase()+w.slice(1)).join(" ")}function R(m,w,A){if(!m||!m.startsWith(CLD_URL))return m;let ee=w?`w_${w},`:"",V=A?`h_${A},`:"";
1074return m.replace(CLD_URL,`${CLD_URL}${ee}${V}${CLD_TRANSFORM}/`)}function U(m,w){w.helper.setQuery(m).search()}async function B(m){let w=Object.keys(m).filter(A=>m[A]!=null).map(A=>`${A}=${m[A]}`).join("&");return _.value[w]===void 0&&(_.value[w]=q(m)),_.value[w]}async function q(m){let w=Object.keys(m).filter(A=>m[A]!=null).map(A=>`${A}=${m[A]}`).join("&");try{let A=await fetch(`${AZURE_URI}GetAvailabilityCalendar?${w}`);if(!A.ok)throw new Error(A.statusText);return await A.json()}catch(A){console.log("Unit availability error",A)}}async function Be(m){let w=Object.keys(m).filter(A=>m[A]!=null).map(A=>`${A}=${m[A]}`).join("&");return _.value[w]===void 0&&(_.value[w]=ve(m)),_.value[w]}async function ve(m){try{let w=await fetch(`${AZURE_URI}GetPropertyAvailability?`+Object.keys(m).map(A=>`${A}=${m[A]}`).join("&"));if(!w.ok)throw new Error(w.statusText);return await w.json()}catch(w){console.log("Availability error",w)}}function we(m){return m instanceof Date?m.toISOString().substring(0,10):new Date(m).toISOString().substring(0,10)}function De(m){let w=i.value.find(A=>A.link===`${m.url}/`);return w&&w.variations.length===1&&w.variations[0].phobsId?`${BOOKING_APP_URI}${PREFIX}/step1/?propertyId=${w.variations[0].phobsId}`+(w.variations[0].ratePlanId?`&ratePlanId=${w.variations[0].ratePlanId}`:""):`${m.url}#/#variations`}async function lt(m,w){let A=new Date,ee=new Date;ee.setDate(A.getDate()+1);let V={id:m,start:we(A),end:we(ee),locale:LOCALE},I=await Be(V);if(I&&(I.rateFrom||I.firstAvailableDate)){let Y=I.currency;return w?A=(await B({id:m,unitId:w,locale:LOCALE}))[0]?.date||we(A):I.firstAvailableDate?(A=I.firstAvailableDate.date,Y=I.firstAvailableDate.currency):A=we(A),`${BOOKING_APP_URI}${PREFIX}/step1?propertyId=${m}&date=${A}&currency=${Y}&unit=${w||""}`}return null}let D={empty:t("searchApp.noResults"),item(m,{html:w,components:A}){let ee=R(m.image,768,432),V=m.type==="property"?w`<div class="search__content__brand"><img src="${LOGOS[m.brand].desktop}" /></div>`:"",I=m.type==="offer"?w`<div class="search__image__label">${t("searchApp.resultType."+m.type)}</div>`:"",Y="";m.type==="property"&&m.stars&&(Y=w`
1075            <div class="card__stars">
1076              <span class="stars theme--${m.brand}">${[...Array(m.stars)].map(()=>w`<i class="icon-star"></i>`)}</span>
1077              <span>${m.destination[0]}</span>
1078            </div>
1079          `);let g="",P=m.property&&m.type!=="property"?m.property:[],x=m.destination&&m.type!=="property"?m.destination:[],te=[...P,...x];if(te.length>6){let ie=te.length-6;te.splice(6),te.push(`+${ie}`)}te.length>0&&(g=w`
1080            <div class="search__content__tags">
1081              ${te.map(ie=>w`<span>${ie}</span>`)}
1082            </div>
1083          `);let ke="";return m.type==="offer"?ke=w`
1084            <a href="${De(m)}" class="button">${t("bookNow")}</a>
1085          `:(m.type==="property"||m.type==="property-units"&&m.propertyType.includes("camping"))&&m.phobsId?ke=w`
1086            <a href="" class="button async-book-link is-hidden" aria-hidden="true" data-property="${m.phobsId}">${t("bookNow")}</a>
1087          `:m.type==="unit"&&m.phobsId&&(ke=w`
1088            <a href="" class="button async-book-link is-hidden" aria-hidden="true" data-property="${m.phobsId}" data-unit="${m.unitId}">${t("bookNow")}</a>
1089          `),w`
1090          <div class="search__image">${I}<img src="${ee}" /></div>
1091          <div class="search__content">
1092            ${V}
1093            <h3><a href="${m.url}">${A.Highlight({hit:m,attribute:"title"})}</a></h3>
1094            ${Y}
1095            <p>${A.Snippet({hit:m,attribute:"description"})}</p>
1096            ${g}
1097            <div class="search__buttons">
1098              ${ke}
1099              <a href="${m.url}" class="arrow-button">${t("discoverMore")} <i class="icon-arrow-right-long"></i></a>
1100            </div>
1101          </div>
1102        `}};function ct(){let{liteClient:m}=window["algoliasearch/lite"],w=m(ALGOLIA_APP_ID,ALGOLIA_PUBLIC_API_KEY),A=instantsearch({indexName:ALGOLIA_INDEX,searchClient:w,onStateChange({uiState:V,setUiState:I}){j.value=V,N.value=!0,I(V)},useCookie:!0,insights:!0}),ee={disjunctiveFacetsRefinements:{lang:[LOCALE==="si"?"sl":LOCALE],searchable:[!0]}};j.value={[ALGOLIA_INDEX]:{configure:ee}},A.addWidgets([instantsearch.widgets.searchBox({container:n.value,autofocus:!0,showSubmit:!1,showLoadingIndicator:!1,placeholder:t("searchApp.placeholder"),templates:{reset:'<i class="icon-close"></i>'}}),instantsearch.widgets.configure(ee),instantsearch.widgets.currentRefinements({container:s.value,excludedAttributes:["lang","query","searchable"]}),instantsearch.widgets.clearRefinements({container:p.value,excludedAttributes:["lang","query","searchable"],templates:{resetLabel:t("searchApp.clearFilters")}}),instantsearch.widgets.clearRefinements({container:u.value,excludedAttributes:["lang","query","searchable"],templates:{resetLabel:t("searchApp.clearFilters")}}),instantsearch.widgets.stats({container:r.value,templates:{text:({nbHits:V,page:I,hitsPerPage:Y,query:g},{html:P})=>g===""||V===0?"":P`<div class="search__stats">${t("searchApp.showing")} ${I*Y+1} - ${Math.min((I+1)*Y,V)} ${t("searchApp.outOf")} ${V} ${t("searchApp.results")}</div>`}}),instantsearch.widgets.hits({container:a.value,templates:D}),instantsearch.widgets.refinementList({attribute:"propertyType",container:b.value,transformItems:V=>V.map(I=>({...I,highlighted:`${t("propertyTypes."+I.highlighted)}`}))}),instantsearch.widgets.refinementList({attribute:"destination",container:y.value,transformItems:V=>V.map(I=>({...I,highlighted:h(I.highlighted)}))}),instantsearch.widgets.refinementList({attribute:"brand",container:v.value,transformItems:V=>V.map(I=>({...I,highlighted:h(I.highlighted)}))}),instantsearch.widgets.refinementList({attribute:"category",container:z.value,sortBy:["count:desc"],transformItems:V=>V.map(I=>({...I}))}),instantsearch.widgets.pagination({showFirst:!1,showLast:!1,padding:1,scrollTo:a.value,container:l.value,templates:{previous:`<i class="icon-arrow-left"></i> ${t("previous")}`,next:`${t("next")} <i class="icon-arrow-right"></i>`}})]),Q.value=A,A.start(),A.on("render",()=>{a.value.querySelectorAll(".async-book-link").forEach(async I=>{let{property:Y,unit:g}=I.dataset,P=await lt(Y,g);P&&(I.classList.remove("is-hidden"),I.setAttribute("aria-hidden","false"),I.href=P)})})}return Vue.watch(e,m=>{m?document.body.classList.add("overflow-hidden"):document.body.classList.remove("overflow-hidden")}),Vue.onMounted(async()=>{i.value=await useOffers()}),{searchInstance:Q,applySuggestion:U,searchBox:n,searchHits:a,searchStats:r,searchPagination:l,searchCurrentRefinements:s,searchClearRefinements:p,searchClearRefinementsMobile:u,propertyTypeRefinement:b,destinationRefinement:y,brandRefinement:v,categoryRefinement:z,showSearch:e,openSearch:W,LOGOS,ALGOLIA_INDEX,filtersOpen:C,openFilters:S,closeFilters:f,appliedFiltersCount:E,filtersChangedSinceLastConfirm:N,suggestions:X,switchLanguage:M}}}),$o=document.getElementById("search-app");$o&&(Fo.use(fc),Fo.mount($o));var vc=ae(Et),Bo=Vue.createApp({name:"LocaleSwitchApp",components:{Modal:It},template:"#locale-switch-app-template",setup(t){let e=Vue.ref(!1),i=pe().value,n=Vue.ref(i==="null"||i===null?"EUR":i),a=Vue.ref(window.location.pathname);function r(){let l=new URLSearchParams(window.location.search),s=l.get("type")?`?type=${l.get("type")}`:"";fa(n.value),window.location.pathname!==a.value?window.location.href=a.value+s:e.value=!1}return{isModalOpen:e,currency:n,relUrl:a,update:r}}}),Go=document.getElementById("locale-switch-app");Go&&(Bo.use(vc),Bo.mount(Go));var Uo={name:"OfferCard",components:{CldImg:Ie},template:`
1103    <div class="offer-card" :class="{
1104        'offer-card--recommended': offer.recommended,
1105        'offer-card--wide': isWide,
1106        'offer-card--middle': isMiddle,
1107      }">
1108      <a v-if="offer.image" class="offer-card__image" :href="offer.link" :title="offer.title">
1109        <CldImg :src="offer.image" :alt="offer.title" :setHeight="true" />
1110      </a>
1111
1112      <div class="offer-card__content">
1113        <div class="offer-card__discount" v-if="offer?.teaser?.trim()">{{ teaser }}</div>
1114        <div class="offer-card__recommended" v-if="offer.recommended">{{ $t('offers.recommended') }}</div>
1115
1116        <div>
1117          <a class="h3" :href="offer.link">
1118            {{ offer.title }}
1119          </a>
1120        </div>
1121
1122        <div class="offer-card__destinations" v-if="offer.properties.length === 1 || distinctDestinations">
1123          <span class="offer-card__teaser">
1124            <i v-if="offer.properties.length === 1" class="icon-pin"></i>
1125            {{ offer.properties.length === 1 ? offer.properties[0].split('-').join(' ') : '' }}
1126            <template v-if="offer.properties.length === 1 && distinctDestinations"><span class="offer-card__separator"></span></template>
1127            {{ distinctDestinations }}
1128          </span>
1129        </div>
1130        <span v-if="dateString" class="offer-card__teaser offer-card__teaser--period" v-html="$t('offers.period') + ' ' + dateString"></span>
1131
1132        <p class="no-margin-top">{{ offer.description }}</p>
1133
1134        <div class="offer-card__buttons">
1135          <a class="button button--outline" :href="getOfferUrl(offer)" >{{ $t('bookNow') }}</a>
1136          <a class="arrow-button" :href="offer.link">
1137            {{ $t('discoverMore') }}
1138            <i class="icon-arrow-right"></i>
1139          </a>
1140        </div>
1141      </div>
1142    </div>
1143  `,props:{offer:Object,isWide:Boolean,isMiddle:Boolean},setup(t){let{t:e}=VueI18n.useI18n(),i=Vue.ref(""),n=new Set,a=Vue.ref(""),r=t.offer.destinations?.filter(u=>n.has(u)?!1:n.add(u)).join(" | ")||"",l=Vue.computed(()=>t.offer.periodsText?`${e("offers.period")} <strong>${t.offer.periodsText}</strong>`:t.offer.periods&&t.offer.periods.length?"<strong>"+t.offer.periods.map(u=>`${ue(new Date(u.start_date))} - ${ue(new Date(u.end_date))}`).join(" | ")+"</strong>":`<strong>${ue(new Date(t.offer.startDate))} - ${ue(new Date(t.offer.endDate))}</strong>`),s=pe();Vue.watch(s,()=>{let u=t.offer.teaser;i.value=Rt(u)},{immediate:!0});function p(u){if(u.variations.length===1&&u.variations[0].phobsId){let b=Vue.reactive(new yi(u.variations[0],a.value));return`${BOOKING_APP_URI}${PREFIX}/step1/?propertyId=${u.variations[0].phobsId}&${b.urlString}&currency=${s.value}`}return u.link+"#/#variations"}return Vue.onMounted(async()=>{L.on("authenticated",u=>{a.value=`${u.detail.loginHint}`})}),{getOfferUrl:p,dateString:l,distinctDestinations:r,teaser:i}}};var Ho={name:"OfferSlider",components:{OfferCard:Uo},template:`
1144  <div ref="sliderRef" class="card-slider" :class="{
1145      ['card-slider--' + variant]: true,
1146      'no-padding-bottom card-slider--no-slider': offers.length <= 1,
1147      'card-slider--single': offers.length === 1,
1148      'card-slider--double': offers.length === 2 && variant !== 'full-width',
1149    }">
1150    <div class="container container--fluid">
1151      <div class="swiper">
1152        <div class="swiper-wrapper">
1153          <div v-for="(offer, index) in offers" class="swiper-slide">
1154            <OfferCard
1155              :offer="offer"
1156              :isWide="offers.length === 1 || variant === 'full-width'"
1157              :isMiddle="offers.length === 2 && index === 0" />
1158          </div>
1159        </div>
1160
1161        <div class="card-slider__navigation" v-if="offers.length > 1">
1162          <div class="swiper-button-prev"></div>
1163          <div class="swiper-button-next"></div>
1164        </div>
1165      </div>
1166    </div>
1167    <div class="swiper-scrollbar" v-if="offers.length > 1"></div>
1168  </div>
1169  `,props:{offers:Array,variant:{type:String,default:"default"}},setup(t){let e=Vue.ref(null),{offers:i}=Vue.toRefs(t);return Vue.watch(i,()=>{Vue.nextTick(()=>{CardSlider(e.value)})},{immediate:!0}),{sliderRef:e,offers:i}}};var gc=ae(de),$e=document.getElementById("offer-slider-app"),wi="",Cn="",On="",In="",Wo=Vue.createApp({name:"OfferSliderApp",components:{OfferSlider:Ho},template:`
1170<div v-if="error" class="error container">
1171  <h3>{{ $t('error') }}</h3>
1172  <p>{{ error }}</p>
1173</div>
1174
1175<div v-else-if="offersLoaded">
1176  <OfferSlider :offers="offers" variant="landing" />
1177</div>
1178  `,setup(){let t=Vue.ref([]),e=Vue.ref(!1),i=Vue.ref("");async function n(){let a=await useOffers({isList:!0});wi==="home"?t.value=a.filter(r=>!!r.showOnHome):wi==="bundle"?t.value=a.filter(r=>r.variations&&r.variations.some(l=>l.bundle===Cn)):wi==="property"?(t.value=a.filter(r=>r.variations&&r.variations.some(l=>l.property===`${Cn}
1178/_index`)),In&&(t.value=t.value.filter(r=>r.holidayTypes?.includes(In)))):t.value=a.slice(0,6),On&&(t.value=t.value.map(r=>({...r,link:`${r.link}?propertyId=${On}`}))),t.value.length===0&&$e.parentElement.remove(),t.value.length>0&&(t.value[0].recommended=!0),e.value=!0}return Vue.onMounted(async()=>{n()}),{offers:t,offersLoaded:e,error:i}}});$e&&(wi=$e.dataset.type,Cn=$e.dataset.property,On=$e.dataset.propertyname,In=$e.dataset.holidaytype,Wo.use(gc),Wo.mount($e));var ki=document.querySelectorAll(".register-button");window.addEventListener("DOMContentLoaded",()=>{ki=document.querySelectorAll(".register-button"),ki.forEach(t=>{t.addEventListener("click",e=>{e.preventDefault();try{ze("authStatus"),L.redirectSignup()}catch(i){be(i)}})})});L.on("ended",t=>{L.isAuthenticated?ki.forEach(e=>{e.classList.add("is-hidden")}):ki.forEach(e=>{e.classList.remove("is-hidden")})});})();
1179
1180//# sourceMappingURL=main.23907dfed3b410474023da7e553286e65afe83b3a393e34cac6e8f922d4634a5.js.map

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.