1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[8062],{1280:(t,a,e)=>{e.d(a,{$0:()=>m,AO:()=>v,Eb:()=>x,Fz:()=>l,Gi:()=>N,MN:()=>g,Od:()=>j,Pw:()=>s,Uc:()=>d,Wf:()=>f,_r:()=>u,eM:()=>E,hJ:()=>U,kC:()=>y,kz:()=>w,ml:()=>b,r:()=>F,un:()=>k,y$:()=>p,y8:()=>h,y_:()=>i});var o=e(92031),n=e(76802),c=e(12793);let r=(0,o.UU)(),s=async(t,a)=>{let{hotelId:e,offerId:o}=t,r=await fetch("".concat(c.$U,"/rest/v1/hotels/").concat(e,"/offerteasers?lang=").concat((0,n.a)(a)));if(!r.ok)throw Error("Failed to fetch offer data");let s=(await r.json()).offers.find(t=>t.id===Number(o));if(!s)throw Error("Offer not found");return s},i=async(t,a)=>{let{hotelId:e,roomId:o}=t,r=await fetch("".concat(c.$U,"/rest/v1/hotels/").concat(e,"/roomcategories/").concat(o,"?lang=").concat((0,n.a)(a)));if(!r.ok)throw Error("Failed to fetch room data");return r.json()},l=async(t,a)=>{var e;let o=await fetch("".concat(c.$U,"/rest/v1/hotels/").concat(t,"/keywords?lang=").concat((0,n.a)(a)),{next:{tags:["keywords"]}});return o.ok&&null!=(e=(await o.json()).keywords)?e:[]},d=async()=>{let t=await r.getSingle("settings",{lang:"de-at"});if(!t)throw Error("Failed to fetch settings data");return t},h=async(t,a)=>{let{offerId:e,hotelId:o}=t,r=await fetch("".concat(c.$U,"/rest/v1/hotels/").concat(o,"/cockpit/offers/").concat(e,"?lang=").concat((0,n.a)(a)),{next:{tags:["offer-variant"]}});if(!r.ok)throw Error("Failed to fetch offer data");return await r.json()},f=async t=>{var a;let{externalId:e,bookingId:o}=t,n=(await d()).data.fidelio_hodel_code;if(!n)return null;let r=null==e?void 0:e.trim().split(/\s+/)[0],s=r?encodeURIComponent(r):"samera/".concat(encodeURIComponent(o)),i=await fetch("".concat(c.oU,"/rest/portal/").concat(n,"/").concat(s));return i.ok&&null!=(a=(await i.json()).innconceptPortalUrl)?a:null},u=async(t,a,e)=>{try{var o;let n=await fetch("".concat(c.VP,"/rest/cancellation/calculate-rate/").concat(t,"/").concat(a,"/").concat(e));if(n.ok)return!1;let r=await n.json().catch(()=>null);return/already cancelled/i.test(null!=(o=null==r?void 0:r.message)?o:"")}catch(t){return!1}},p=async function(t,a){let{from:e,to:o}
1=t,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:c.UD,s=await fetch("\n".concat(r,"/rest/program/range/").concat((0,n.a)(a),"?includeType[]=event&from=").concat(e,"&to=").concat(o));if(!s.ok)throw Error("Failed to fetch events data");return await s.json()},m=async function(t,a){let e=arguments.length>2&&void 0!==arguments[2]?arguments[2]:c.UD,o=await fetch("".concat(e,"/rest/resource/").concat(t,"?lang=").concat((0,n.a)(a)));if(!o.ok)throw Error("Failed to fetch resource data");return await o.json()},g=async function(t,a,e){let o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:c.UD,n=await fetch("".concat(o,"/rest/resource/").concat(t,"/availability?day=").concat(a,"&duration=").concat(e),{headers:{accept:"application/json","content-type":"application/json"}});if(!n.ok)throw Error((await n.json().catch(()=>({message:"Failed to fetch resource availability"}))).message||"Failed to fetch resource availability");return await n.json()},w=async function(t,a){let e=arguments.length>2&&void 0!==arguments[2]?arguments[2]:c.UD,o=await fetch("".concat(e,"/rest/resource/").concat(t,"/book"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)});if(!o.ok)throw Error((await o.json().catch(()=>({message:"Failed to book resource"}))).message||"Failed to book resource");return o.json()},y=async function(t){let a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:c.UD,e=await fetch("".concat(a,"/rest/resource-booking/").concat(t));if(!e.ok){if(404===e.status)return null;throw Error("Failed to fetch resource booking")}return await e.json()},j=async function(t){let a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:c.UD,e=await fetch("".concat(a,"/rest/resource-booking/").concat(t),{method:"DELETE",headers:{Accept:"application/json","Content-Type":"application/json"}});if(!e.ok)throw Error((await e.json().catch(()=>({message:"Failed to cancel booking"}))).message||"Failed to cancel booking")},x=async(t,a)=>{let{hotelId:e}=t,o=await fetch("".concat(c.$U,"/rest/v1/hotels/").concat(e,"/offerteasers?lang=").concat((0,n.a)(a)));if(!o.ok)throw Error("Failed to fetch offers data");let{offers:r}=await o.json();return r},v=async(t,a)=>{let{hotelId:e}=t,o=await fetch("".concat(c.$U,"/rest/v1/hotels/").concat(e,"/lastminutepackages?lang=").concat((0,n.a)(a)));if(!o.ok)throw Error("Failed to fetch last minute packages data");let{lastMinutePackages:r}=await o.json();return r},k=async(t,a)=>{let{hotelId:e}=t,o=await fetch("".concat(c.$U,"/rest/v1/hotels/").concat(e,"/tags?lang=").concat((0,n.a)(a)));if(!o.ok)throw Error("Failed to fetch tags data");let{tags:r}=await o.json();return r},b=async t=>{let{instagramId:a="17841402696046440",accountName:e="Familux Oberjoch",limit:o=16,offset:n=0,tags:r}=t,s=new URLSearchParams({accountName:e,instagramId:a,limit:o.toString(),offset:n.toString()});r&&r.length>0&&r.forEach(t=>{s.append("acceptedHashTags[]",t)});let i="".concat(c.oU,"/rest/social-media?").concat(s.toString()),l=await fetch(i);if(!l.ok)throw Error("Failed to fetch social media data");return await l.json()},E=async function(t){let a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:c.UD,e=await fetch("".concat(a,"/rest/participation/").concat(t));if(!e.ok){if(404===e.status)return null;throw Error("Failed to fetch participation")}return await e.json()},N=async function(t){let a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:c.UD,e=await fetch("".concat(a,"/rest/participation/").concat(t,"/cancel"),{method:"POST",headers:{Accept:"application/json","Content-Type":"application/json"}});if(!e.ok)throw Error((await e.json().catch(()=>({message:"Failed to cancel participation"}))).message||"Failed to cancel participation");return await e.json()},F=async(t,a)=>{let e=a.split("-")[0].toLowerCase(),o=await fetch("".concat(c.AV,"/rest/wesual/tac-products/").concat(t,"?language=").concat(e),{headers:{Accept:"application/json","Content-Type":"application/json"},next:{revalidate:3600}});if(!o.ok)throw Error("Failed to fetch spa products");return(await o.json()).map(t=>({...t,products:t.products.map(t=>{let a;return{...t,imageWesual:t.imageWesual?(a=t.imageWesual,"".concat(c.AV,"/rest/wesual/image/").concat(a)):null}})}))},U=async(t,a)=>{let e=await fetch("".concat(c.oU,"/rest/cms/extra-services/").concat(t,"/").concat(a),{headers:{Accept:"application/json"},cache:"no-store"});if(!e.ok){let t=await e.text().catch(()=>"");throw console.error("Extra services API error: ".concat(e.status," ").concat(e.statusText),t),Error("Failed to fetch extra services: ".concat(e.status))}return e.json()}},18062:(t,a,e)=>{e.r(a),e.d(a,{default:()=>p});var o=e(95155),n=e(79495),c=e(49501),r=e(58355),s=e(14911),i=e(1503),l=e(61433),d=e(59638),h=e(1280),f=e(60577),u=e(12793);let p=(0,d.DB)(async t=>{let{slice:{primary:a,variation:e,slice_type:d},context:{booking_variant:p}}=t,{firstname:m,lastname:g,salutation:w,title:y}=p||{},j=await (0,h.Uc)(),x=await (0,f.$)("common"),v=j.data.samera_access_key,k=null==p?void 0:p.bookingId,b=v&&
1k?"".concat(u.WD,"/rest/ical/booking/").concat(v,"/").concat(k):null,{geo_latitude:E,geo_longitude:N}=j.data,F=E&&N?"https://www.google.com/maps?q=".concat(E,",").concat(N):null;return(0,o.jsxs)("section",{"data-slice-type":d,"data-slice-variation":e,className:"text-center max-w-[1564px] mx-auto px-4 mb-30 !space-y-18.5 max-md:!space-y-10",children:[(0,o.jsxs)("div",{className:"!space-y-6",children:[n.Pu(a.headline)&&(0,o.jsx)(c.o,{variant:"display",as:"h1",children:a.headline}),n.Pu(a.subheadline)&&(0,o.jsx)(c.o,{variant:"subheadline-lg",as:"p",className:"max-w-[614px] mx-auto",children:a.subheadline.replace("{firstname}",m||"").replace("{lastname}",g||"").replace("{salutation}",w||"").replace("{title}",y||"").replace("{bookingId}",(null==p?void 0:p.bookingId)||"")})]}),(0,o.jsx)("div",{className:"max-w-200 mx-auto",children:n.YD(a.text)&&(0,o.jsx)(r.sD,{field:a.text})}),(0,o.jsxs)("div",{className:"flex justify-center gap-10 flex-wrap max-w-180 mx-auto",children:[b&&(0,o.jsxs)("a",{href:b,className:(0,l.cn)((0,s.r)({variant:"link"}),"flex items-center gap-2"),children:[(0,o.jsx)(i.I,{name:"calendar",className:"size-6"}),(0,o.jsx)(c.o,{variant:"subheadline-lg",as:"span",className:"font-bold",children:x("addToCalendar")})]}),F&&(0,o.jsxs)("a",{href:F,target:"_blank",rel:"noopener noreferrer",className:(0,l.cn)((0,s.r)({variant:"link"}),"flex items-center gap-2"),children:[(0,o.jsx)(i.I,{name:"pin",className:"size-6"}),(0,o.jsx)(c.o,{variant:"subheadline-lg",as:"span",className:"font-bold",children:x("openLocation")})]})]})]})})},59638:(t,a,e)=>{e.d(a,{y:()=>i,n1:()=>s,Vh:()=>y,DB:()=>f,oJ:()=>u,PF:()=>w,u9:()=>g,Zy:()=>p,AE:()=>m});var o=e(95155),n=e(61433),c=e(49501);let r=t=>{let{className:a,...e}=t;return(0,o.jsx)("section",{className:(0,n.cn)("container px-4 text-center mx-auto",a),...e,children:(0,o.jsx)(c.o,{variant:"heading-2",className:"border-violet border-dashed border-3",children:"This slice cannot be rendered on this page as it needs a specific context."})})},s=t=>"object"==typeof t&&null!==t&&"offer_variant"in t,i=t=>"object"==typeof t&&null!==t&&"booking_variant"in t,l=t=>"object"==typeof t&&null!==t&&"settings"in t,d={offer_variant:s,booking_variant:i,offer:t=>"object"==typeof t&&null!==t&&"offer"in t,settings:l,room:t=>"object"==typeof t&&null!==t&&"room"in t,search_params:t=>"object"==typeof t&&null!==t&&"searchParams"in t},h=(t,a)=>{let e=e=>{let{context:n,...c}=e;return d[t](n)?(0,o.jsx)(a,{...c,context:n}):(0,o.jsx)(r,{})};return e.displayName="withContext(".concat(t,")(").concat(a.displayName||a.name||"Component",")"),e},f=t=>h("booking_variant",t),u=t=>h("offer",t),p=t=>h("room",t),m=t=>h("search_params",t),g=t=>((t,a)=>{let e=e=>{let{context:n,...c}=e;return t.find(t=>d[t](n))?(0,o.jsx)(a,{...c,context:n}):(0,o.jsx)(r,{})};return e.displayName="withMultipleContexts([".concat(t.join(", "),"])(").concat(a.displayName||a.name||"Component",")"),e})(["offer_variant","booking_variant"],t),w=t=>{let a=a=>{let{context:e,...n}=a;return s(e)&&l(e)?(0,o.jsx)(t,{...n,context:e}):(0,o.jsx)(r,{})};return a.displayName="withOfferAndSettingsContext(".concat(t.displayName||t.name||"Component",")"),a},y=t=>{let a=a=>{let{context:e,...n}=a;return i(e)&&l(e)?(0,o.jsx)(t,{...n,context:e}):(0,o.jsx)(r,{})};return a.displayName="withBookingAndSettingsContext(".concat(t.displayName||t.name||"Component",")"),a}},60577:(t,a,e)=>{function o(t){return()=>{throw Error(`\`${t}\` is not supported in Client Components.`)}}e.d(a,{$:()=>c,JK:()=>n}),o("getFormatter"),o("getNow"),o("getTimeZone"),o("getMessages");let n=o("getLocale"),c=(o("getExtracted"),o("getTranslations"));o("setRequestLocale")}}]);
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.