PageSourceSearch

https://www.metropolitanpubcompany.com/dist/gk-jss-app/js/BookingWidget.cf2ca0bf.js

js metropolitanpubcompany.com collected 2026-09-26 08:29:40 UTC 14,713 bytes, 2 lines download raw bytes

1(globalThis["webpackChunkgk_jss_app"]=globalThis["webpackChunkgk_jss_app"]||[]).push([[9284],{5238:function(e){!function(a,t){e.exports=t()}(0,(function(){"use strict";return function(e,a,t){var o=a.prototype,l=function(e){var a,l=e.date,n=e.utc,i={};if(!(null===(a=l)||a instanceof Date||a instanceof Array||o.$utils().u(a)||"Object"!==a.constructor.name)){if(!Object.keys(l).length)return new Date;var d=n?t.utc():t();Object.keys(l).forEach((function(e){var a,t;i[(a=e,t=o.$utils().p(a),"date"===t?"day":t)]=l[e]}));var r=i.day||(i.year||i.month>=0?1:d.date()),u=i.year||d.year(),s=i.month>=0?i.month:i.year||i.day?0:d.month(),c=i.hour||0,b=i.minute||0,v=i.second||0,g=i.millisecond||0;return n?new Date(Date.UTC(u,s,r,c,b,v,g)):new Date(u,s,r,c,b,v,g)}return l},n=o.parse;o.parse=function(e){e.date=l.bind(this)(e),n.bind(this)(e)};var i=o.set,d=o.add,r=o.subtract,u=function(e,a,t,o){void 0===o&&(o=1);var l=Object.keys(a),n=this;return l.forEach((function(t){n=e.bind(n)(a[t]*o,t)})),n};o.set=function(e,a){return a=void 0===a?e:a,"Object"===e.constructor.name?u.bind(this)((function(e,a){return i.bind(this)(a,e)}),a,e):i.bind(this)(e,a)},o.add=function(e,a){return"Object"===e.constructor.name?u.bind(this)(d,e,a):d.bind(this)(e,a)},o.subtract=function(e,a){return"Object"===e.constructor.name?u.bind(this)(d,e,a,-1):r.bind(this)(e,a)}}}))},80313:(e,a,t)=>{"use strict";t.r(a),t.d(a,{default:()=>le});var o=t(20641),l=t(90033),n=t(53751),i=t(50953),d=t(50258),r=t(74353),u=t.n(r),s=t(5238),c=t.n(s),b=(t(18237),t(5499)),v=t(59639),g=t(46810),k=t(45860),m=t(80130),h=t(52079),p=(t(20116),t(61701),t(99940)),_=t(20739),w=t(24189);const f=(e,a)=>{const t=(0,_.us)(_.DA),l=(0,i.KR)(!1),n=()=>{l.value||(l.value=!0,r({event:"begin_checkout",ecommerce:{_booking_type:e.toLowerCase(),items:[{...(0,i.R1)(a),_item_name:e,item_category:e}]}}))},d=(t,o)=>{r({event:"booking-interaction",component:{_interaction:t,_value:o},ecommerce:{_booking_type:e.toLowerCase(),transaction_id:"",items:[{...(0,i.R1)(a),_item_name:e,item_category:e}]}})},r=e=>{if("undefined"!==typeof globalThis&&!(0,p.isServer)()){globalThis.dataLayer=globalThis?.dataLayer||[];let a=(0,w.zM)({...t.defaultGlobalProps,...e,...e.component?{component:(0,w.zM)(e.component)}:null,ecommerce:(0,w.zM)({...t.defaultEcommerceProps,...e.ecommerce})});a.ecommerce.items?.length&&(a.ecommerce.items=a.ecommerce.items.map((e=>(0,w.zM)({...t.defaultItemProps,...e})))),globalThis.dataLayer.push(a)}};return(0,o.sV)((()=>{globalThis.dataLayer?.find((a=>"begin_checkout"===a.event&&a.ecommerce?.booking_type===e.toLowerCase()))&&(l.value=!0)})),{registerInteractionDLEvent:d,registerBeginCheckoutDLEvent:n}};var y=t(56909),R=t(72324),$=t(5019);const C={class:"book-table"},A={class:"booking-widget__fields"},E={class:"booking-widget__covers"},O={class:"booking-widget__covers"},V=(0,o.pM)({__name:"BookTable",props:{link:{},defaultOpeningHours:{},specialOpeningHours:{},isActive:{type:Boolean}},setup(e){const{t:a}=(0,d.s9)(),t=(0,b.rd)(),l=(0,R.D)(),{trackBookingInteraction:n,trackBookingEvent:r}=(0,y.$)(l),{fieldRules:s}=(0,$.AW)(a),c=e,p={quickbook_journey:!0,booking_step_name:"book-with-us",booking_step_number:1},_=(0,i.KR)(l.adults||2),w=(0,i.KR)($.DS),V=(0,i.KR)(null),B=(0,i.KR)(!1),W=(0,o.EW)((()=>_.value+w.value)),L=(0,o.EW)((()=>({date:s.date(),numAdults:s.adults,numChildren:s.children,totalCovers:s.totalCovers}))),D=(0,v.fG)(L,{date:V,numAdults:_,numChildren:w,totalCovers:W}),T=(0,o.EW)((()=>c.defaultOpeningHours.value?.reduce(((e,a)=>(a.isClosed&&e.push(a.dayOfWeek),e)),[]))),I=(0,o.EW)((()=>c.specialOpeningHours.value?.reduce(((e,a)=>(a.isClosed&&e.push(a.date),e)),[]))),U=(0,o.EW)((()=>c.specialOpeningHours.value?.reduce(((e,a)=>(a.isClosed||e.push(a.date),e)),[]))),M=(0,o.EW)((()=>({booking_adults:_.value,booking_children:w.value,booking_date:V.value?K(V.value):""}))),K=e=>u()(e).format("YYYY-MM-DD"),F=(0,o.EW)((()=>({booking_date:V.value?K(V.value):null,booking_adults:_.value,booking_children:w.value}))),X=(0,o.EW)((()=>/^https?:\/\//i.test(c.link)?new URL(c.link).pathname:c.link)),j=()=>{const e=new Date,a=u()(e).day();(!T.value?.includes(a)&&!I.value?.includes(K(e))||U.value?.includes(K(e)))&&(V.value=e)},S=async()=>
1{H(),await D.value.$validate()&&t.push(`${X.value}?date=${K(V.value)}&numAdults=${_.value}&numChild=${w.value}`)},q=e=>{e.target?.select?.()},H=()=>{B.value||(B.value=!0,l.setBookingEntryPage(t.currentRoute.value.path),l.bookingEntrySource="widget",l.beginCheckoutTimestamp&&(l.rejoinCheckoutPending=!0),r("booking_step",l.currentStepId,"booking",{...p,source:"widget"},M.value))},P=(e,a)=>{n({eventType:"booking",name:e,value:a,additionalData:p,additionalEcommerceData:M.value})};(0,o.wB)([V,_,w],((e,a)=>{e[0]&&a[0]&&e[0]!==a[0]&&P("Date",K(e[0])),e[1]!==a[1]&&P("Adults",e[1]),e[2]!==a[2]&&P("Children",e[2])}));const{registerInteractionDLEvent:x}=f("Book a Space",F);return(0,o.wB)((()=>c.isActive),(e=>{e&&x("Select Tab",a("booking-widget-book-a-table"))})),(0,o.wB)((()=>D.value.totalCovers.$silentErrors),(()=>{D.value.totalCovers.$touch()}),{immediate:!0}),(0,o.KC)((()=>{j()})),(e,t)=>((0,o.uX)(),(0,o.CE)("section",C,[(0,o.Lk)("div",A,[(0,o.Lk)("div",E,[(0,o.bF)(m.A,{modelValue:_.value,"onUpdate:modelValue":t[0]||(t[0]=e=>_.value=e),type:"number",title:e.$t("booking-widget-adults"),"field-id":"book-table-adults","data-test-id":"adults",validation:(0,i.R1)(D).numAdults,required:!0,"valid-keys":/^0$|[^0-9]/g,error:(0,i.R1)(D).numAdults.$error||(0,i.R1)(D).totalCovers.$error,onFocus:t[1]||(t[1]=e=>q(e)),"onUpdate:modelValueOnce":H},null,8,["modelValue","title","validation","error"]),(0,i.R1)(D).numAdults.$error||(0,i.R1)(D).totalCovers.$error?((0,o.uX)(),(0,o.Wv)(h.A,{key:0,"data-test-id":"adults-error","field-name":"book-table-adults","error-message":(0,i.R1)(D).numAdults.$errors[0]?.$message||(0,i.R1)(D).totalCovers.$errors[0]?.$message},null,8,["error-message"])):(0,o.Q3)("",!0)]),(0,o.Lk)("div",O,[(0,o.bF)(m.A,{modelValue:w.value,"onUpdate:modelValue":t[2]||(t[2]=e=>w.value=e),type:"number",title:e.$t("booking-widget-children"),"field-id":"book-table-children","data-test-id":"children",validation:(0,i.R1)(D).numChildren,required:!0,"valid-keys":/^0(?!$)|[^0-9]/g,error:(0,i.R1)(D).numChildren.$error,onFocus:t[3]||(t[3]=e=>q(e)),"onUpdate:modelValueOnce":H},null,8,["modelValue","title","validation","error"]),(0,i.R1)(D).numChildren.$error?((0,o.uX)(),(0,o.Wv)(h.A,{key:0,"data-test-id":"children-error","field-name":"book-table-children","error-message":(0,i.R1)(D).numChildren.$errors[0]?.$message},null,8,["error-message"])):(0,o.Q3)("",!0)]),(0,o.bF)(k.A,{modelValue:V.value,"onUpdate:modelValue":t[4]||(t[4]=e=>V.value=e),label:(0,i.R1)(a)("booking-widget-date"),"modal-label":(0,i.R1)(a)("booking-widget-date"),"disabled-dates":I.value,"disabled-week-days":T.value,"enabled-dates":U.value,validation:(0,i.R1)(D).date,"display-today-instead-of-date":"",onInteractionOnce:H},null,8,["modelValue","label","modal-label","disabled-dates","disabled-week-days","enabled-dates","validation"])]),(0,o.bF)(g.A,{class:"book-table__button",label:(0,i.R1)(a)("booking-widget-book-a-table-button"),disabled:!!(0,i.R1)(D).$errors.length,onClick:S},null,8,["label","disabled"])]))}}),B=V,W=B;var L=t(13855),D=t(25114);const T={class:"book-room"},I={class:"booking-widget__fields"},U={class:"booking-widget__covers"},M={class:"booking-widget__covers"},K=1,F=999,X=0,j=999,S=(0,o.pM)({__name:"BookRoom",props:{link:{},isActive:{type:Boolean}},setup(e){const{t:a}=(0,d.s9)(),t=(0,D.C)(),l=e,n=(0,i.KR)(2),r=(0,i.KR)(X),s=(0,i.KR)(null),c=(0,i.KR)(null),b=(0,o.EW)((()=>c.value?.[1]||null)),p=(0,o.EW)((()=>u()(s.value).add(1,"day").toDate())),_=(0,o.EW)((()=>({dateCheckIn:{required:L._$.withMessage(a("booking-widget-invalid-date"),L.mw),minValue:L._$.withMessage(a("booking-widget-invalid-date"),(0,L.Ww)(u()().startOf("day").valueOf()))},dateCheckOut:{required:L._$.withMessage(a("booking-widget-invalid-date"),L.mw),minValue:L._$.withMessage(a("booking-widget-invalid-date"),(0,L.Ww)(u()().isAfter(p.value,"day")?u()().startOf("day").valueOf():u()(p.value).valueOf()))},numAdults:{required:L.mw,minValue:(0,L.Ww)(K),maxValue:(0,L.cG)(F)},numChildren:{required:L.mw,minValue:(0,L.Ww)(X),maxValue:(0,L.cG)(j)}}))),w=(0,v.fG)(_,{dateCheckIn:s,dateCheckOut:b,numAdults:n,numChildren:r}),y=e=>u()(e).format("YYYY-MM-DD"),R=(0,o.EW)((()=>({check_in_date:s.value?y(s.value):null,check_out_date:b.value?y(b.value):null,booking_adults:n.value,booking_children:r.value,booking_date:s.value?y(s.value):y(new Date)}))),$=async()=>{await w.value.$validate()&&t.setGuestlineActiveUrl(l.link+`&arrival=${y(s.value)}&departure=${y(b.value)}&adults=${n.value}&children=${r.value}`)},C=e=>{e.target?.select?.()},{registerBeginCheckoutDLEvent:A,registerInteractionDLEvent:E}=f("Book a Room",R);return(0,o.wB)(s,((e,a)=>{c.value=[e,null],w.value.dateCheckOut.$reset(),e&&e!==a&&E("Select check in date",y(e))})),(0,o.wB)([b,n,r],((e,a)=>{e[0]&&e[0]!==a[0]&&E("Select check out date",y(e[0])),e[1]!==a[1]&&(A(),E("Select adults",e[1])
1),e[2]!==a[2]&&(A(),E("Select children",e[2]))})),(0,o.wB)((()=>l.isActive),(e=>{e&&E("Select Tab",a("booking-widget-book-a-room"))})),(e,t)=>((0,o.uX)(),(0,o.CE)("section",T,[(0,o.Lk)("div",I,[(0,o.Lk)("div",U,[(0,o.bF)(m.A,{modelValue:n.value,"onUpdate:modelValue":t[0]||(t[0]=e=>n.value=e),type:"number",title:e.$t("booking-widget-adults"),"field-id":"book-room-adults","data-test-id":"adults",validation:(0,i.R1)(w).numAdults,required:!0,"valid-keys":/^0$|[^0-9]/g,error:(0,i.R1)(w).numAdults.$error,onFocus:t[1]||(t[1]=e=>C(e))},null,8,["modelValue","title","validation","error"]),(0,i.R1)(w).numAdults.$error?((0,o.uX)(),(0,o.Wv)(h.A,{key:0,"data-test-id":"adults-error","field-name":"book-room-adults","error-message":(0,i.R1)(w).numAdults.$errors[0]?.$message},null,8,["error-message"])):(0,o.Q3)("",!0)]),(0,o.Lk)("div",M,[(0,o.bF)(m.A,{modelValue:r.value,"onUpdate:modelValue":t[2]||(t[2]=e=>r.value=e),type:"number",title:e.$t("booking-widget-children"),"field-id":"book-room-children","data-test-id":"children",validation:(0,i.R1)(w).numChildren,required:!0,"valid-keys":/^0(?!$)|[^0-9]/g,error:(0,i.R1)(w).numChildren.$error,onFocus:t[3]||(t[3]=e=>C(e))},null,8,["modelValue","title","validation","error"]),(0,i.R1)(w).numChildren.$error?((0,o.uX)(),(0,o.Wv)(h.A,{key:0,"data-test-id":"children-error","field-name":"book-room-children","error-message":(0,i.R1)(w).numChildren.$errors[0]?.$message},null,8,["error-message"])):(0,o.Q3)("",!0)]),(0,o.bF)(k.A,{modelValue:s.value,"onUpdate:modelValue":t[4]||(t[4]=e=>s.value=e),label:(0,i.R1)(a)("booking-widget-date-check-in"),"modal-label":(0,i.R1)(a)("booking-widget-date-check-in"),validation:(0,i.R1)(w).dateCheckIn,onInteractionOnce:(0,i.R1)(A)},null,8,["modelValue","label","modal-label","validation","onInteractionOnce"]),(0,o.bF)(k.A,{modelValue:c.value,"onUpdate:modelValue":t[5]||(t[5]=e=>c.value=e),label:(0,i.R1)(a)("booking-widget-date-check-out"),"modal-label":(0,i.R1)(a)("booking-widget-date-check-out"),"min-date":p.value,validation:(0,i.R1)(w).dateCheckOut,"align-calendar-to-right":"","enable-range-select":"",onInteractionOnce:(0,i.R1)(A)},null,8,["modelValue","label","modal-label","min-date","validation","onInteractionOnce"])]),(0,o.bF)(g.A,{class:"book-room__button",label:(0,i.R1)(a)("booking-widget-book-a-room-button"),disabled:!!(0,i.R1)(w).$errors.length,onClickCapture:$},null,8,["label","disabled"])]))}}),q=S,H=q;var P=t(11858),x=t(8024),G=t(30843);const Y={key:0,class:"booking-widget"},Q=["id","aria-selected","aria-controls","tabindex"],z={class:"booking-widget__title font-s"},J=["id","aria-selected","aria-controls","tabindex"],N={class:"booking-widget__title font-s"},Z={key:1,class:"booking-widget__title-container"},ee={class:"booking-widget__title font-s"},ae={key:1,class:"booking-widget__editor--error"},te=(0,o.pM)({__name:"BookingWidget",props:{fields:{default:()=>({})},rendering:{},params:{default:()=>({})}},setup(e){const{t:a}=(0,d.s9)();u().extend(c());const t=(0,G.B)(),r=e,s=(0,i.KR)(0),b=(0,o.rk)("tablistRef"),v=(0,i.IJ)(null),g=(0,i.IJ)(null),k=(0,o.EW)((()=>v.value&&g.value)),m=e=>{k.value&&("ArrowRight"!==e.key&&"ArrowLeft"!==e.key||(0===s.value?(s.value=1,b.value?.children?.[1]?.focus()):(s.value=0,b.value?.children?.[0]?.focus())))},h=()=>{const e={BookTable:{id:(0,P.A)(),component:W,label:a("booking-widget-book-a-table"),shouldRender:!!r.fields.bookATablePageUrl?.value,fields:{link:r.fields.bookATablePageUrl?.value,defaultOpeningHours:r.fields.defaultOpeningHours,specialOpeningHours:r.fields.specialOpeningHours}},BookRoom:{id:(0,P.A)(),component:H,label:a("booking-widget-book-a-room"),shouldRender:!!t.guestlineUrl,fields:{link:t.guestlineUrl}}},o="1"===r.params?.bookARoomTabPriority?"BookRoom":"BookTable",l="BookTable"===o?"BookRoom":"BookTable";e[o].shouldRender?(v.value=e[o],e[l].shouldRender&&(g.value=e[l])):e[l].shouldRender&&(v.value=e[l])};return(0,o.KC)((()=>{h()})),(e,a)=>v.value?.component?(0,o.bo)(((0,o.uX)(),(0,o.CE)("section",Y,[k.value?((0,o.uX)(),(0,o.CE)("div",{key:0,ref_key:"tablistRef",ref:b,role:"tablist",class:"booking-widget__tabs"},[(0,o.Lk)("button",{id:`booking-widget-tab-${v.value.id}`,role:"tab",class:(0,l.C4)(["booking-widget__tabs-button",0===s.value&&"booking-widget__tabs-button--active"]),"aria-selected":0===s.value,"aria-controls":`booking-widget-tab-${v.value.id}-content`,tabindex:0===s.value?0:-1,onClick:a[0]||(a[0]=e=>s.value=0),onKeydown:m},[(0,o.Lk)("span",z,(0,l.v_)(v.value?.label),1)],42,Q),(0,o.Lk)("button",{id:`booking-widget-tab-${g.value.id}`,role:"tab",class:(0,l.C4)(["booking-widget__tabs-button",1===s.value&&"booking-widget__tabs-button--active"]),"aria-selected":1===s.value,"aria-controls":`booking-widget-tab-${g.value.id}-content`,tabindex:1===s.value?0:-1,onClick:a[1]||(a[1]=e=>s.value=1),onKeydown:m},[(0,o.Lk)("span",N,(0,l.v_)(g.value.label),1)],42,J)],512)):((0,o.uX)(),(0,o.CE)("div",Z,[(0,o.Lk)("span",ee,(0,l.v_)(v.value.label),1)])),v.value?.component?(0,o.bo)(((0,o.uX)(),(0,o.Wv)((0,o.$y)(v.value.component),(0,o.v6)({key:2,id:`booking-widget-tab-${v.value.id}-content`},v.value.fields,{"is-active":0===s.value}),null,16,["id","is-active"])),[[n.aG,0===s.value]]):(0,o.Q3)("",!0),g.value?.component?(0,o.bo)(((0,o.uX)(),(0,o.Wv)((0,o.$y)(g.value.component),(0,o.v6)({key:3,id:`booking-widget-tab-${g.value.id}-content`},g.value.fields,{"is-active":1===s.value}),null,16,["id","is-active"])),[[n.aG,1===s.value]]):(0,o.Q3)("",!0)])),[[(0,i.R1)(x.A),"booking-widget"]]):e.$isPageEditing?((0,o.uX)(),(0,o.CE)("div",ae," No booking provider selected or no link provided. ")):(0,o.Q3)("",!0)}}),oe=te,le=oe}}]);
2//# sourceMappingURL=BookingWidget.cf2ca0bf.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.