1(()=>{"use strict";var e,t={87363:e=>{e.exports=React},61533:e=>{e.exports=ReactDOM},2224:(e,t,a)=>{var r=a(87363),n=a.n(r),s=a(61533),l=a.n(s),i=a(96169),o=a(11861),c=a(60935),d=a(39644),m=a(16550),p=a(23804),u=a(97505),y=a(27192),g=a(73120),f=a(26219),b=a.n(f);function h(e){switch(e){case"AED":return{symbol:"د.Ø¥"};case"AFN":return{symbol:"Ø"};case"ALL":return{symbol:"Lek"};case"AMD":return{symbol:"Ö"};case"ANG":case"AWG":return{symbol:"Æ"};case"AOA":return{symbol:"Kz;"};case"ARS":case"AUD":case"BBD":case"BMD":case"BND":case"CAD":case"CLP":case"COP":case"DOP":case"GYD":case"JMD":case"KYD":case"LRD":case"MXN":case"NAD":case"NZD":case"SBD":case"SGD":case"SRD":case"TOP":case"TTD":return{symbol:"$"};case"AZN":return{symbol:"â¼"};case"BAM":return{symbol:"KM"};case"BDT":return{symbol:"à§³"};case"BGN":case"KGS":case"UZS":return{symbol:"лв"};case"BIF":return{symbol:"FBu"};case"BOB":return{symbol:"Bs."};case"BRL":return{symbol:"R$"};case"BSD":return{symbol:"B$"};case"BWP":return{symbol:"P"};case"BZD":return{symbol:"BZ$"};case"CDF":return{symbol:"FC"};case"CHF":return{symbol:"Fr"};case"CNY":case"JPY":return{symbol:"Â¥"};case"CRC":return{symbol:"â¡"};case"CVE":case"CZK":return{symbol:"Esc"};case"DJF":return{symbol:"Fdj"};case"DKK":case"ISK":case"NOK":case"SEK":return{symbol:"kr"};case"DZD":return{symbol:"د.ج"};case"EGP":return{symbol:"ج.Ù
"};case"ETB":return{symbol:"Br"};case"EUR":return{symbol:"â¬"};case"FJD":return{symbol:"FJ$"};case"FKP":case"GBP":case"GIP":case"SHP":return{symbol:"£"};case"GEL":return{symbol:"á"};case"GMD":return{symbol:"D"};case"GNF":return{symbol:"FG"};case"GTQ":return{symbol:"Q"};case"HKD":return{symbol:"HK$"};case"HNL":case"LSL":case"MDL":case"RON":case"SZL":return{symbol:"L"};case"HRK":return{symbol:"kn"};case"HTG":return{symbol:"G"};case"HUF":return{symbol:"Ft"};case"IDR":return{symbol:"Rp"};case"ILS":return{symbol:"âª"};case"INR":return{symbol:"â¹",useVedic:!0};case"KES":return{symbol:"KSh"};case"KHR":return{symbol:"á"};case"KMF":return{symbol:"CF"};case"KRW":return{symbol:"â©"};case"KZT":return{symbol:"â¸"};case"LAK":return{symbol:"â"};case"LBP":return{symbol:"Ù.Ù"};case"LKR":case"MUR":case"PKR":case"SCR":return{symbol:"És"};case"MAD":return{symbol:"د.Ù
."};case"MGA":return{symbol:"Ar"};case"MKD":return{symbol:"ден"};case"MNT":return{symbol:"â®"};case"MOP":return{symbol:"MOP$"};case"MRO":return{symbol:"UM"};case"MVR":return{symbol:"Rf"};case"MWK":return{symbol:"MK"};case"MYR":return{symbol:"RM"};case"MZN":return{symbol:"MT"};case"NGN":return{symbol:"â¦"};case"NIO":return{symbol:"C$"};case"NPR":return{symbol:"NÉs"};case"PAB":return{symbol:"B/."};case"PEN":return{symbol:"S/."};case"PGK":return{symbol:"K"};case"PHP":return{symbol:"â±"};case"PLN":return{symbol:"zÅ"};case"PYG":return{symbol:"â²"};case"QAR":return{symbol:"ر.Ù"};case"RSD":return{symbol:"Ðин."};case"RUB":return{symbol:"â½"};case"RWF":return{symbol:"RF"};case"SAR":return{symbol:"ر.س"};case"SLL":return{symbol:"Le"};case"SOS":return{symbol:"So. Sh."};case"STD":return{symbol:"Db"};case"THB":return{symbol:"฿"};case"TJS":return{symbol:"SM"};case"TRY":return{symbol:"âº"};case"TWD":return{symbol:"NT$"};case"TZS":return{symbol:"TSh"};case"UAH":return{symbol:"â´"};case"UGX":return{symbol:"USh"};case"UYU":return{symbol:"$U"};case"VEF":return{symbol:"Bs"};case"VND":return{symbol:"â«"};case"VUV":return{symbol:"VT"};case"WST":return{symbol:"WS$"};case"XAF":case"XOF":return{symbol:"CFA"};case"XCD":return{symbol:"EC$"};case"XPF":return{symbol:"F"};case"YER":return{symbol:"ï·¼"};case"ZAR":return{symbol:"R"};case"ZMW":return{symbol:"ZMW"};default:return{}}}function E(e,t,a){let r=arguments.length>3&&void 0!==arguments[3]&&arguments[3];const n=()=>"undefined"!=typeof VSHM_BACKEND_SETTINGS?VSHM_BACKEND_SETTINGS:"undefined"!=typeof VSHM_SETTINGS?VSHM_SETTINGS:{};return b()(Number(e),{...h(t),precision:((e,t)=>r?t:Number.isInteger(e)?0:t)(Number(e),n()?.priceDecimals||2),pattern:n()?.currencyFormat||"! #",decimal:(()=>{switch(n()?.priceFormat||".,"){case"'.":case"_.":case",.":return".";default:return","}})(),separator:(()=>{switch(n()?.priceFormat||".,"){case"'.":return"'";case"_.":case"_,":return" ";case",.":return",";default:return"."}})(),...a}).format()}var v=a(42952),k=a(75847),T=a(2274),S=a(51967),Z=a(81966),w=a(53937),I=a(96730),P=a(72042);const{__:N,_x:C,_n:x,_nx:M,sprintf:R}=wp.i18n;let D;
1const O={getInputStepFromDecimalNumber(e){switch(e){case 0:return 0;case 1:return.1;case 2:return.01;case 3:return.001;case 4:return 1e-4}},calcZonedDate(e,t){const a=t((0,k.Z)(e,this.getTimezone()));return(0,T.Z)(a,this.getTimezone())},getZonedEndOfDay(e){return this.calcZonedDate(e,S.Z)},getZonedEndOfMonth(e){return this.calcZonedDate(e,Z.Z)},getZonedStartOfMonth(e){return this.calcZonedDate(e,w.Z)},getZonedStartOfToday(){return this.calcZonedDate(new Date,I.Z)},isZonedToday(e){const t=(0,k.Z)(e,Intl.DateTimeFormat().resolvedOptions().timeZone);return(0,P.Z)((0,T.Z)(t,this.getTimezone()))},formatTime(e){const t=VSHM_PLUGIN_VARS?.LANG;return new Intl.DateTimeFormat(t,{hour:"numeric",minute:"numeric",timeZone:this.getTimezone()}).format(e)},getFullYearOf(e){const t=VSHM_PLUGIN_VARS?.LANG;return new Intl.DateTimeFormat(t,{year:"numeric",timeZone:this.getTimezone()}).format(e)},getMonthOf(e){const t=VSHM_PLUGIN_VARS?.LANG;return new Intl.DateTimeFormat(t,{month:"numeric",timeZone:this.getTimezone()}).format(e)},getDayOf(e){const t=VSHM_PLUGIN_VARS?.LANG;return new Intl.DateTimeFormat(t,{day:"numeric",timeZone:this.getTimezone()}).format(e)},getTimezone:()=>"undefined"!=typeof VSHM_SETTINGS&&VSHM_SETTINGS?.frontendTimezone?VSHM_SETTINGS?.frontendTimezone:Intl.DateTimeFormat().resolvedOptions().timeZone,formatDate(e,t){const a=VSHM_PLUGIN_VARS?.LANG,r=t||{year:"numeric",month:"numeric",day:"numeric"};return new Intl.DateTimeFormat(a,{...r,timeZone:this.getTimezone()}).format(e)},secondsToDurationObj:e=>({days:e>0?Math.floor(e/86400):Math.ceil(e/86400),hours:e>0?Math.floor(e%86400/3600):Math.ceil(e%86400/3600),minutes:e>0?Math.floor(e%86400%3600/60):Math.ceil(e%86400%3600/60)}),durationObjToSeconds:e=>86400*e.days+3600*e.hours+60*e.minutes,sortObjectsByPropertyByArray:(e,t,a)=>e.sort(((e,r)=>{const n=t.indexOf(e[a]+""),s=t.indexOf(r[a]+"");return-1===n?1:-1===s?-1:n-s})),uuidDOM:()=>"tbkxxxxxxxxxxxx".replace(/[xy]/g,(function(e){const t=16*Math.random()|0;return("x"===e?t:3&t|8).toString(16)})),isDate:e=>"[object Date]"===Object.prototype.toString.call(e),chunk:function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[];const r=[...e];if(t<=0)return a;for(;r.length;)a.push(r.splice(0,t));return a},getServiceClassLabel(e){switch(e){case"appointment":return N("Appointment","team-booking").toUpperCase();case"unscheduled":return N("Unscheduled","team-booking").toUpperCase();default:return e}},getServiceClassTag(e){switch(e.class){case"appointment":return n().createElement(p.Z,{color:"geekblue"},N("Appointment","team-booking").toUpperCase());case"unscheduled":return n().createElement(p.Z,{color:"purple"},N("Unscheduled","team-booking").toUpperCase());default:return n().createElement(n().Fragment,null)}},getSingleDiscount(e,t){let a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1;return"percentage"===t.type?e*a*t.value/100:t.value*a},isObject:e=>"object"==typeof e&&!Array.isArray(e)&&null!==e,getBasePrice:(e,t)=>t?t?.overrides?.price?Number(t?.overrides?.price):0!==Number(e?.data?.price)?Number(e?.data?.price):0:e&&0!==Number(e?.data?.price)?Number(e?.data?.price):0,getTotalPrice(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1,n=this.getBasePrice(e,t);return e?.data?.promotions&&e.data.promotions.forEach((e=>{"percentage"===e.type?n-=n*e.value/100:n-=e.value})),t?.promotions&&t.promotions.forEach((e=>{"percentage"===e.type?n-=n*e.value/100:n-=e.value})),n+=a,n=Math.max(0,n),n*r},getContrastText(e){"#"===e.slice(0,1)&&(e=e.slice(1)),3===e.length&&(e=e.split("").map((function(e){return e+e})).join(""));const t=(299*parseInt(e.substring(0,2),16)+587*parseInt(e.substring(2,4),16)+114*parseInt(e.substring(4,6),16))/1e3,a=t>=128?"24, 24, 24":"255, 255, 255";return{textClass:t>=128?"tbk-dark-text":"tbk-light-text",textComponents:a,textCss:`rgb(${a})`}},openNotification(e,t,a){const r={message:t,description:a,type:e||"info",getContainer:()=>document.querySelector(".tbk-wrap"),placement:"bottomRight"};u.Z.open(r)},openNotificationError(e){this.openNotification("error",N("Whoops","team-booking"),e)},openNotificationSuccess(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:N("Success","team-booking"),t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;this.openNotification("success",e,t)},scroll(e){const t="string"==typeof e||e instanceof String?document.getElementById(e)?.querySelector(".tbk-frontend-calendar"):e?e.closest(".tbk-frontend-calendar"):document.querySelector(".tbk-frontend-calendar");t?.getBoundingClientRect()?.top<10&&setTimeout((()=>{t.scrollIntoView({behavior:"smooth"})}),25)},scrollTo(e){e?.getBoundingClientRect()?.top<10&&setTimeout((()=>{e.scrollIntoView({behavior:"smooth"})}),25)},isBlockEditor:()=>"undefined"!=typeof wp&&wp.data&&wp.data.select("core/block-editor"),isCustomizer:()=>"undefined"!=typeof wp&&void 0!==wp.customize,formatDateForICS(e){function t(e){return e<10?`0${e}`:`${e}`}const a=(0,d.Z)(e);return[a.getUTCFullYear(),t(a.getUTCMonth()+1),t(a.getUTCDate()),"T",t(a.getUTCHours()),t(a.getUTCMinutes())+"00Z"].join("")},getICSfromEvents(e){const t=[];e.forEach((e=>{t.push("BEGIN:VEVENT");const a=this.formatDateForICS(e.startTime),r=this.formatDateForICS(e.endTime),n=this.formatDateForICS((0,m.Z)(new Date));t.push(`DTSTART:${a}
1`),t.push(`DTSTAMP:${n}`),t.push(`SUMMARY:${e.title}`),e.url&&t.push(`URL:${e.url}`),t.push(`DTEND:${r}`),e.description&&t.push(`DESCRIPTION:${e.description}`),e.location&&t.push(`LOCATION:${e.location}`),t.push("END:VEVENT")}));const a=["BEGIN:VCALENDAR","VERSION:2.0",t.join("\n"),"END:VCALENDAR"].join("\n");return this.isIOSSafari()?encodeURI(`data:text/calendar;charset=utf8,${a}`):a},downloadBlob(e,t){const a=document.createElement("a");a.href=window.URL.createObjectURL(e),a.setAttribute("download",t),document.body.appendChild(a),a.click(),document.body.removeChild(a)},isIE:()=>!("undefined"==typeof window||!window.navigator.msSaveOrOpenBlob||!window.Blob),isIOSChrome(){const e=window.navigator.userAgent;return!(!e.match(/iPad/i)&&!e.match(/iPhone/i)||!e.match(/CriOS/i))},isIOSSafari(){const e=window.navigator.userAgent,t=!!e.match(/iPad/i)||!!e.match(/iPhone/i),a=!!e.match(/WebKit/i);return t&&a&&!e.match(/CriOS/i)},isSlotBooked(e){const t=VSHM_FRONTEND_SERVICES.find((t=>t.id===e.serviceId));return!!t&&Math.max(t?.data?.totalSlotTickets-e.reservationsCount,0)<1},getTimeSlotPromotionTag(e){if(e.promotions){const t=VSHM_FRONTEND_SERVICES.find((t=>t.id===e.serviceId)),a=this.getTotalPrice(t,e);return n().createElement(y.Z,null,n().createElement(g.Z,{status:"processing",text:N("Promo","team-booking")}),n().createElement("div",{className:"tbk-promo-price"},t.priceStarts?R(N("Starts from %s","team-booking"),E(a,VSHM_SETTINGS.currencyCode)):E(a,VSHM_SETTINGS.currencyCode)))}return null},uniqueArrayOfObjectsByKey:(e,t)=>[...new Map(e.filter(Boolean).map((e=>[e[t],e]))).values()],getTimeSlotFullPriceTag(e){const t=VSHM_FRONTEND_SERVICES.find((t=>t.id===e.serviceId)),a=this.getBasePrice(t,e),r=this.getTotalPrice(t,e);return!t.priceStarts&&r<=0?"":e.promotions?n().createElement(y.Z,{align:"start"},n().createElement("div",{className:"tbk-schedule-list-selector-price"},n().createElement(y.Z,null,n().createElement("div",{className:"tbk-title tbk-promo-price"},E(r,VSHM_SETTINGS.currencyCode)),n().createElement("div",{className:"tbk-title",style:{textDecoration:"line-through"}},E(a,VSHM_SETTINGS.currencyCode,{pattern:"#"}))),t.priceStarts&&n().createElement("div",{className:"tbk-description"},N("starts from","team-booking")))):n().createElement("div",{className:"tbk-schedule-list-selector-price"},n().createElement("div",{className:"tbk-title"},E(a,VSHM_SETTINGS.currencyCode)),t.priceStarts&&n().createElement("div",{className:"tbk-description"},N("starts from","team-booking")))},getTimeSlotAvailabilityTag(e){const t=VSHM_FRONTEND_SERVICES.find((t=>t.id===e.serviceId)),a=this.getContrastText(VSHM_SETTINGS.style.availableSlotColor).textComponents,r=this.getContrastText(VSHM_SETTINGS.style.soldoutSlotColor).textComponents;if(!t)return"";const s=e?.overrides?.tickets?parseInt(e?.overrides?.tickets):t?.data?.totalSlotTickets,l={color:`rgba(${a}, 1)`,backgroundColor:VSHM_SETTINGS.style.availableSlotColor,borderColor:VSHM_SETTINGS.style.availableSlotColor},i={color:`rgba(${r}, 1)`,backgroundColor:VSHM_SETTINGS.style.soldoutSlotColor,borderColor:VSHM_SETTINGS.style.soldoutSlotColor};if(s<2)return e.reservationsCount>0?n().createElement(p.Z,{style:i}," ",N("Booked","team-booking")):n().createElement(p.Z,{style:l}," ",N("Available","team-booking"));const o=Math.max(s-e.reservationsCount,0);return o>0?n().createElement(p.Z,{style:l}," ",R(N("%d available","team-booking"),o)):n().createElement(p.Z,{style:i}," ",N("Sold out","team-booking"))},getReservationStatusTag:e=>"confirmed"===e.status?n().createElement(p.Z,{color:"green"}," ",N("Confirmed","team-booking")):"cancelled"===e.status?n().createElement(p.Z,{color:"red"}
1," ",N("Cancelled","team-booking")):"pending"===e.status?n().createElement(p.Z,{color:"red"}," ",N("Pending","team-booking")):null,getNiceTimes(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],a=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=Array.isArray(e)?e:[e];return n().createElement(n().Fragment,null,r.length>0&&this.formatTime((0,d.Z)(r[0].start)),!t&&r.length>0&&n().createElement(n().Fragment,null,n().createElement(v.Z,{style:{color:a?"inherit":"var(--tbk-primary-color)"}}),this.formatTime((0,d.Z)(r.slice(-1)[0].end))))},getLittleCalendar(e){const t="small"===(arguments.length>1&&void 0!==arguments[1]?arguments[1]:"large")?"short":"long",a=this.formatDate((0,d.Z)(e.start),{month:t}),r=this.formatDate((0,d.Z)(e.start),{day:"numeric"}),s=this.formatDate((0,d.Z)(e.start),{weekday:"short"});return n().createElement(y.Z,{direction:"vertical",size:0,className:"tbk-little-calendar"},n().createElement("div",{className:"tbk-little-calendar-month"},a),n().createElement("div",{className:"tbk-little-calendar-day"},r),n().createElement("div",{className:"tbk-little-calendar-weekday"},s))},isPaymentDue:e=>!("0.00"===e.price||!e.price),isReservationExpired:(e,t,a)=>!e.paid&&"pending"===e.status&&"immediately"===t?.data?.paymentRequirement&&e.created+a<(0,m.Z)(new Date),adaptCarouselWhenCollapse(e,t){clearTimeout(D),t&&(e.length?t.innerSlider.onWindowResized():D=setTimeout((()=>{t.innerSlider.onWindowResized()}),300))},flatMap(e,t){let a=[];for(let r=0;r<e.length;r++){const n=t(e[r]);a=a.concat(n)}return a},truncate(e,t,a){if(e.length<=t)return e;const r=e.slice(0,t-1);return`${a?r.slice(0,r.lastIndexOf(" ")):r}...`},isAdmin:()=>"admin"===VSHM_BACKEND_WP_USERS.find((e=>parseInt(e.ID)===parseInt(VSHM_CURRENT_USER))).can,currentUserCanApprove(e){return!!this.isAdmin()||"admin"!==e?.data?.approval},extractFilteredArray(e,t){let a=[];return"string"==typeof e&&e&&(a=e.split(",").map((e=>e.trim()))),!a.length&&"string"==typeof t&&t&&(a=t.split(",").map((e=>e.trim()))),a},extractFilteredBool(e,t){const a=["true","1"].includes(e),r=["true","1"].includes(t);return a||r},arrayOfNum:e=>e.map((e=>Number(e))),getPopupRootBackend:e=>e.closest(".ant-modal-content")??e.closest(".tbk-wrap"),isDebug:()=>!!new URLSearchParams(window.location.search).get("debug")},A=O,{__:z,_x:V,_n:F,_nx:H,sprintf:L}=wp.i18n,B={baseURL:VSHM_REST_ROUTE_ROOT,retry:3,headers:(()=>{const e={"Content-Type":"application/json",Accept:"application/json","VSHM-lang":"undefined"!=typeof VSHM_LANG?VSHM_LANG:null};return VSHM_CURRENT_USER&&(e["X-WP-Nonce"]=wpApiSettings.nonce),e})()},U=c.Z.create(B);U.interceptors.request.use((e=>(VSHM_CURRENT_USER&&(e.headers["X-WP-Nonce"]=B.headers["X-WP-Nonce"]),e))),U.interceptors.response.use((e=>(VSHM_CURRENT_USER&&(B.headers["X-WP-Nonce"]=e.headers["x-wp-nonce"]),e)),(e=>{const{config:t,message:a}=e;return"rest_cookie_invalid_nonce"===e?.response?.data?.code&&t.retry?(t.retry-=1,new Promise((e=>{c.Z.get(VSHM_NONCE_ENDPOINT).then((e=>{const t=e.data;B.headers["X-WP-Nonce"]=t})).catch().finally(e)})).then((()=>U(t)))):Promise.reject(e)}));const G=e=>{"ERR_CANCELED"!==e?.code&&("rest_cookie_invalid_nonce"===e?.response?.data?.code?A.openNotificationError(z("WP API nonce expired, please refresh the page.","team-booking")):(A.openNotificationError(e?.response?.data?.message||z("Generic error","team-booking")),console.error(e)))},j=U;var $=a(73178),K=a(66420);const q=(0,o.PH)("SET_BUSY",(function(e,t){return{payload:e,meta:t}})),W=(0,o.PH)("SET_READ_ONLY",(function(e,t){return{payload:e,meta:t}})),Y=(0,o.PH)("SET_LOGGED_ONLY",(function(e,t){return{payload:e,meta:t}})),X=(0,o.PH)("SET_STAGE",(function(e,t,a){return{payload:{stage:e,props:t},meta:a}})),J=(0,o.PH)("SET_INITIAL_STAGE",(function(e,t,a){return{payload:{stage:e,props:t},meta:a}})),Q=(0,o.PH)("UPDATE_STAGE_PROPS",(function(e,t){return{payload:e,meta:t}})),ee=(0,o.PH)("SET_SERVICE",(function(e,t){return{payload:e,meta:t}})),te=(0,o.PH)("SET_PROVIDER",(function(e,t){return{payload:e,meta:t}})),ae=(0,o.PH)("WANTS_TO_BOOK",(function(e,t){return{payload:e,meta:t}})),re=(0,o.PH)("SET_SIZE_PRESET",(function(e,t){return{payload:e,meta:t}})),ne=(0,o.PH)("--WANTS_TO_CANCEL",(function(e,t,a,r){return{payload:{id:e,hash:t,reason:a},meta:r}})),se=(0,o.PH)("--GET_ZOOM_JOIN_URL",(function(e,t,a){return{payload:{id:e,hash:t},meta:a}})),le=(0,o.PH)("SET_PICKED_SLOTS",(function(e,t){return{payload:e,meta:t}})),ie=(0,o.PH)("SET_PICKED_SLOTS_TICKETS",(function(e,t){return{payload:e,meta:t}})),oe=(0,o.PH)("SET_RESERVATION_FORM",(function(e,t){return{payload:e,meta:t}})),ce=(0,o.PH)("SET_PAYMENT_GATEWAY",(function(e,t){return{payload:e,meta:t}})),de=(0,o.PH)("SUBMIT_RESERVATION_FORM",(function(e,t,a,r){return{payload:{values:e,files:t,coupon:a},meta:r}})),me=(0,o.PH)("SUBMIT_PAYMENT",(function(e,t){return{payload:e,meta:t}})),pe=(0,o.PH)("--CANCEL_PAYMENT",(function(e,t,a){return{payload:{id:e,hash:t},meta:a}})),ue=(0,o.PH)("SET_SETTINGS",(function(e,t){return{payload:e,meta:t}})),ye=(0,o.PH)("SET_SERVICES",(function(e,t){return{payload:e,meta:t}})),ge=(0,o.PH)("SET_PROVIDERS",(function(e,t){return{payload:e,meta:t}})),fe=(0,o.PH)("SET_RESERVATIONS",(function(e,t){return{payload:e,meta:t}})),be=(0,o.PH)("SET_DISPLAY_DATE",(function(e,t){return{payload:e,meta:t}})),he=(0,o.PH)("SET_INITIAL_DISPLAY_DATE",(function(e,t){return{payload:e,meta:t}})),Ee=(0,o.PH)("SELECT_DATE",(function(e,t){return{payload:e,meta:t}})),ve=(0,o.PH)("SET_SLOTS",(function(e,t){return{payload:e,meta:t}})),ke=(e,t)=>t.getState()[e.meta],Te=async(e,t,a)=>{const r=a.payload?.stage||ke(a,e).app.stage,n=a.payload?.props?.maxEvents||ke(a,e).app.stageProps.maxEvents||ke(a,e).app.initialStageProps.maxEvents,s=a.payload?.props?.eventsNumber||ke(a,e).app.stageProps.eventsNumber||ke(a,e).app.initialStageProps.eventsNumber,l="upcoming"===r?n>0?Math.min(s,n):s:1;let i=new Date;const o=e=>(0,$.Z)([A.getZonedStartOfMonth(e),A.getZonedStartOfToday()]);e.dispatch(q(!0,a.meta));let c=[],d=12;const p=VSHM_SETTINGS?.fetchGranularity||1;for(;c.length<l&&d>0;)try{const t=await j.get("/availability/get/frontend/",{params:{min_timestamp:(0,m.Z)(o(i)),max_timestamp:(0,m.Z)(A.getZonedEndOfMonth((0,K.Z)(i,p-1))),services:ke(a,e).app.services.map((e=>e.id)),providers:ke(a,e).app.providers.map((e=>e.id))}});c=[...c,...t.data.slots],d-=p,c.length<l&&(i=(0,K.Z)(o(i),p))}catch(t){G(t),e.dispatch(q(!1,a.meta));break}"upcoming"===r&&n>0&&(c=c.slice(0,n)),e.dispatch(ve(c,a.meta)),e.dispatch(q(!1,a.meta)),t(a),"calendar"===r&&c.length>0&&e.dispatch(he(o(i),a.meta))},Se=e=>t=>a=>{switch(a.type=`${a.type}|${a.meta}`,(e=>
1e.type.split("|")[0])(a)){case se.type:e.dispatch(q(!0,a.meta)),j.get("/zoom/reservation/getmeetinglink/",{params:{reservationId:a.payload.id,hash:a.payload.hash}}).then((e=>{window.location.href=e.data.link})).catch(G).finally((()=>{e.dispatch(q(!1,a.meta))}));break;case ne.type:e.dispatch(q(!0,a.meta)),j.post("/backend/reservations/cancel/by/customer/",{id:a.payload.id,hash:a.payload.hash,reason:a.payload.reason}).then((r=>{const n=new URLSearchParams(window.location.search);n.get("tbk-id")&&n.get("tbk-hash")?j.get(`/backend/reservations/get/single/${n.get("tbk-id")}/`,{params:{hash:n.get("tbk-hash")}}).then((t=>{e.dispatch(fe(t.data.reservations,a.meta))})).catch(G).finally((()=>{e.dispatch(q(!1,a.meta))})):VSHM_CURRENT_USER&&j.get("/backend/reservations/get/users/current/").then((t=>{e.dispatch(fe(t.data.reservations,a.meta))})).catch(G).finally((()=>{e.dispatch(q(!1,a.meta))})),t(a)})).catch(G).finally((()=>{e.dispatch(q(!1,a.meta))}));break;case he.type:t(a);break;case be.type:const r=a.payload,n=(0,$.Z)([A.getZonedStartOfMonth(r),A.getZonedStartOfToday()]),s=A.getZonedEndOfMonth(r);e.dispatch(q(!0,a.meta)),j.get("/availability/get/frontend/",{params:{min_timestamp:(0,m.Z)(n),max_timestamp:(0,m.Z)(s),services:ke(a,e).app.services.map((e=>e.id)),providers:ke(a,e).app.providers.map((e=>e.id))}}).then((r=>{e.dispatch(ve(r?.data?.slots||[],a.meta)),t(a)})).catch(G).finally((()=>{e.dispatch(q(!1,a.meta))}));break;
1case Ee.type:e.dispatch(oe(null,a.meta)),e.dispatch(le([],a.meta)),e.dispatch(ee(null,a.meta)),e.dispatch(te(null,a.meta)),t(a);break;case ae.type:a.payload?(e.dispatch(q(!0,a.meta)),j.get("/backend/forms/get/frontend/",{params:{serviceId:ke(a,e).app.pickedService}}).then((r=>{e.dispatch(oe(r.data.data,a.meta)),e.dispatch(X("reservationForm",{prevStage:ke(a,e).app.stage,prevStageProps:ke(a,e).app.stageProps},a.meta)),t(a)})).catch((t=>{G(t),e.dispatch(le([],a.meta)),e.dispatch(ie(1,a.meta))})).finally((()=>{e.dispatch(q(!1,a.meta)),A.scroll(a.meta)}))):(e.dispatch(oe(null,a.meta)),t(a));break;case de.type:let l;if(e.dispatch(q(!0,a.meta)),"unscheduled"===ke(a,e).app.services.find((t=>t.id===ke(a,e).app.pickedService)).class){const e=(0,m.Z)(new Date);l=[{start:e,end:e,slotId:null,availabilityId:null,tickets:1}]}else l=ke(a,e).calendar.slots.filter((t=>ke(a,e).app.pickedSlots.includes(t.event_id))).map((t=>({start:t.start,end:t.end,slotId:t.event_id,availabilityId:t.availabilityId,tickets:ke(a,e).app.pickedSlotsTickets||1,overrides:t?.overrides})));const i=new FormData;if(i.append("serviceId",ke(a,e).app.pickedService),i.append("providerId",ke(a,e).app.pickedProvider),i.append("customerTimezone",A.getTimezone()),i.append("slots",JSON.stringify(l)),i.append("bookingData",JSON.stringify(a.payload.values)),A.isObject(a.payload.files))for(const[e,t]of Object.entries(a.payload.files))i.append(e,t);a.payload.coupon&&i.append("coupon",a.payload.coupon),j.post("/backend/reservations/create/",i,{headers:{"Content-Type":"multipart/form-data"}}).then((r=>{const n=ke(a,e).app.services.find((e=>e.id===r.data.reservation.serviceId));"immediately"===n?.data?.paymentRequirement&&r.data.finalPrice>0?e.dispatch(X("payment",{reservation:r.data.reservation,hash:r.data.hash},a.meta)):r.data.redirect?window.location.href=r.data.redirect:(e.dispatch(X("result",{reservation:r.data.reservation},a.meta)),e.dispatch(q(!1,a.meta))),A.scroll(a.meta),t(a)})).catch((t=>{e.dispatch(q(!1,a.meta)),G(t)}));break;case me.type:e.dispatch(q(!0,a.meta)),j.post("/backend/payment_gateways/prepare/",{id:ke(a,e).app.paymentGateway,reservationId:a.payload}).then((r=>{console.log(r.data),r.data.redirect?window.location.href=r.data.redirect:e.dispatch(q(!1,a.meta)),t(a)})).catch((t=>{G(t),e.dispatch(q(!1,a.meta))}));break;
1case pe.type:e.dispatch(q(!0,a.meta)),j.post("/backend/reservations/remove/order/",{id:a.payload.id,hash:a.payload.hash}).then((r=>{e.dispatch(X("initial",{},a.meta)),t(a)})).catch(G).finally((()=>{e.dispatch(q(!1,a.meta))}));break;case J.type:case X.type:if("initial"===a.payload.stage&&(e.dispatch(Ee(null,a.meta)),e.dispatch(le([],a.meta)),e.dispatch(ie(1,a.meta)),e.dispatch(ee(null,a.meta)),e.dispatch(te(null,a.meta)),e.dispatch(ae(!1,a.meta)),e.dispatch(oe(null,a.meta)),e.dispatch(ce(null,a.meta)),a.payload.stage=ke(a,e).app.initialStage,a.payload.props=ke(a,e).app.initialStageProps),"reservations"===a.payload.stage){t(a),e.dispatch(q(!0,a.meta));const r=new URLSearchParams(window.location.search);r.get("tbk-id")&&r.get("tbk-hash")?j.get(`/backend/reservations/get/single/${r.get("tbk-id")}/`,{params:{hash:r.get("tbk-hash")}}).then((t=>{e.dispatch(fe(t.data.reservations,a.meta))})).catch(G).finally((()=>{e.dispatch(q(!1,a.meta))})):VSHM_CURRENT_USER&&j.get("/backend/reservations/get/users/current/").then((t=>{e.dispatch(fe(t.data.reservations,a.meta))})).catch(G).finally((()=>{e.dispatch(q(!1,a.meta))}));break}if("calendar"===a.payload.stage)ke(a,e).app.settings.loadCalendarAtClosestSlot&&a.type===`${J.type}|${a.meta}`?Te(e,t,a):(e.dispatch(be(ke(a,e).calendar.displayDate,a.meta)),t(a));else if("upcoming"===a.payload.stage)Te(e,t,a);else if("payment"===a.payload.stage)e.dispatch(q(!0,a.meta)),j.get("/backend/reservations/get/price/info/",{params:{id:a.payload.props.reservation.id}}).then((e=>{a.payload.props={...a.payload.props,amount:e.data.finalPrice,expiresIn:e.data.expiresIn},t(a)})).catch(G).finally((()=>{e.dispatch(q(!1,a.meta))}));else if("landing"===a.payload.stage){e.dispatch(q(!0,a.meta));const r=new URLSearchParams(window.location.search);j.get(`/backend/reservations/get/single/${r.get("reservation")}/`,{params:{hash:r.get("tbk-hash")}}).then((e=>{a.payload.props={reservation:e.data.reservations[0],status:r.get("status")},t(a)})).catch(G).finally((()=>{e.dispatch(q(!1,a.meta))}))}else t(a);break;case Q.type:"upcoming"===ke(a,e).app.stage?Te(e,t,a):t(a);break;default:t(a)}};var Ze=a(81159);const we={displayDate:new Date,selectedDate:null,slots:[]},_e=(e,t)=>(0,o.Lq)(e??we,{[he.type+"|"+t]:(e,t)=>({...e,displayDate:t.payload}),[be.type+"|"+t]:(e,t)=>({...e,displayDate:t.payload}),[Ee.type+"|"+t]:(e,t)=>({...e,selectedDate:t.payload}),[ve.type+"|"+t]:(e,t)=>({...e,slots:A.uniqueArrayOfObjectsByKey(t.payload,"event_id")})}),Ie={busy:!1,readOnly:!1,loggedOnly:!1,initialStage:"calendar",initialStageProps:{},stage:"preload",stageProps:{},pickedService:null,pickedProvider:null,pickedSlots:[],pickedSlotsTickets:1,paymentGateway:null,reservationForm:null,wantsToBook:!1,settings:VSHM_SETTINGS,services:VSHM_FRONTEND_SERVICES,providers:VSHM_FRONTEND_PROVIDERS,reservations:[],sizePreset:"large"},Pe=(e,t)=>(0,o.Lq)(e??Ie,{[ae.type+"|"+t]:(e,t)=>
1({...e,wantsToBook:t.payload}),[re.type+"|"+t]:(e,t)=>({...e,sizePreset:t.payload}),[q.type+"|"+t]:(e,t)=>({...e,busy:t.payload}),[W.type+"|"+t]:(e,t)=>({...e,readOnly:t.payload}),[Y.type+"|"+t]:(e,t)=>({...e,loggedOnly:t.payload}),[X.type+"|"+t]:(e,t)=>({...e,stage:t.payload.stage,stageProps:t.payload.props??{}}),[J.type+"|"+t]:(e,t)=>({...e,initialStage:t.payload.stage,stage:t.payload.stage,stageProps:t.payload.props??{},initialStageProps:t.payload.props??{}}),[Q.type+"|"+t]:(e,t)=>({...e,stageProps:{...e.stageProps,...t.payload}}),[ee.type+"|"+t]:(e,t)=>({...e,pickedService:t.payload}),[te.type+"|"+t]:(e,t)=>({...e,pickedProvider:t.payload}),[le.type+"|"+t]:(e,t)=>({...e,pickedSlots:t.payload}),[ie.type+"|"+t]:(e,t)=>({...e,pickedSlotsTickets:t.payload}),[oe.type+"|"+t]:(e,t)=>({...e,reservationForm:t.payload}),[ce.type+"|"+t]:(e,t)=>({...e,paymentGateway:t.payload}),[ue.type+"|"+t]:(e,t)=>({...e,settings:t.payload}),[ye.type+"|"+t]:(e,t)=>({...e,services:t.payload}),[ge.type+"|"+t]:(e,t)=>({...e,providers:t.payload}),[fe.type+"|"+t]:(e,t)=>({...e,reservations:t.payload})}),Ne=(0,Ze.UY)({dummy:_e()}),Ce=(e,t)=>(0,Ze.UY)({calendar:_e(e?.calendar,t),app:Pe(e?.app,t)}),xe=Ne,Me=(0,o.xC)({reducer:xe,middleware:e=>e({serializableCheck:!1}).concat(Se)});var Re=a(25577),De=a(77226),Oe=a(10417),Ae=a(44115),ze=a(67590),Ve=a(22238),Fe=a(94607),He=a(44708),Le=a(16409),Be=a(8156),Ue=a(325),Ge=a(51836),je=a(27462);function $e(){return $e=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var r in a)Object.prototype.hasOwnProperty.call(a,r)&&(e[r]=a[r])}return e},$e.apply(this,arguments)}const Ke=e=>n().createElement(je.Z,$e({className:"has-background has-text-color"},e),e.children);var qe=a(8727),We=a(46366);const Ye=e=>n().createElement(qe.Z,{indicator:n().createElement(We.Z,{style:{fontSize:30},spin:!0}),spinning:e.busy},e.children);var Xe=a(45507),Je=a(40124),Qe=a(31632),et=a(40514),tt=a(87467),at=a(29699),rt=a(18580),nt=a(74753),st=a(37846),lt=a(88758),it=a(10589),ot=a(99259),ct=a.n(ot),dt=a(58242),mt=a(93941),pt=a(11894),ut=a(39043),yt=a(44648),gt=a(32946),ft=a(55554),bt=a(28023),ht=a(67231),Et=a(589),vt=a(38094),kt=a(52596),Tt=a(28296),St=a(45997),Zt=a(52839),wt=a(26070),_t=a(74531),It=a(66965),Pt=a(95524),Nt=a(39068),Ct=a(27033),xt=a(47249),Mt=a(48452),Rt=a(55790),Dt=a(20693),Ot=a(52888),At=a(64999),zt=a(46573),Vt=a(9817),Ft=a(72337),Ht=a(64325),Lt=a(91790),Bt=a(57622),Ut=a(54403),Gt=a(76913),jt=a(91341),$t=a(53738),Kt=a(95972),qt=a(67897),Wt=a(78832),Yt=a(82788),Xt=a(67359),Jt=a(61408),Qt=a(70900),ea=a(11351),ta=a(81265),aa=a(20641),ra=a(21992),na=a(28225),sa=a(89061),la=a(75473),ia=a(16537),oa=a(74287),ca=a(82117),da=a(14767),ma=a(18330),pa=a(34900);const{__:ua,_x:ya,_n:ga,_nx:fa,sprintf:ba}=wp.i18n,ha=e=>{const t=n().createElement(y.Z,{direction:"vertical",size:2},n().createElement(Ve.Z.Text,{className:"tbk-service-header-title",strong:!0},e.service.name),e.service?.data?.shortDescription&&n().createElement(Ve.Z.Text,{type:"secondary"},e.service?.data?.shortDescription),e.additionalMeta);return n().createElement(y.Z,{align:e.verticalAlign??"center",size:16,style:{width:"100%",justifyContent:e.align}},"end"===e.align&&t,n().createElement(pa.C,{style:{backgroundColor:e.service.color,boxShadow:`0 0 0 3px ${e.service.color}`},src:e.service?.data?.picture??null,size:e.size??(e.service?.data?.picture?"large":"default")}),"end"!==e.align&&t)},{__:Ea,_x:va,_n:ka,_nx:Ta,sprintf:Sa}=wp.i18n;ct().addHook("afterSanitizeAttributes",(function(e){"target"in e&&(e.setAttribute("target","_blank"),e.setAttribute("rel","noopener"))}));const Za=e=>n().createElement(y.Z,{style:{width:"100%",justifyContent:e.align??"start"},size:16,align:"center"},n().createElement(pa.C,{src:e.provider.avatar,size:e.size??(e?.service?.data?.picture?"large":"default")}),n().createElement(Ve.Z.Text,{strong:!0,className:"tbk-provider-header-title"},e?.service?.data?.showProviderUrl?n().createElement("div",{dangerouslySetInnerHTML:{__html:ct().sanitize(`<a href="${e.provider.url}" target="_blank">${e.provider.name}</a>`)}}):e.provider.name)),{__:wa,_x:_a,_n:Ia,_nx:Pa,sprintf:Na}=wp.i18n;ct().addHook("afterSanitizeAttributes",(function(e){"target"in e&&(e.setAttribute("target","_blank"),e.setAttribute("rel","noopener"))}));const Ca=e=>{const t=(0,i.v9)((t=>t[e.instanceId].app)),a=(0,i.v9)((t=>t[e.instanceId].calendar)),s=(0,i.I0)(),l=["service","provider","timeslot"],[o,c]=(0,r.useState)(l),[m,p]=(0,r.useState)([]);(0,r.useLayoutEffect)((()=>{u()}),[t.pickedService,t.pickedProvider]);const u=()=>{const a=h(),r=t.providers.filter((e=>Object.keys(_.groupBy(a,"providerId")).includes(String(e.id)))),n=t.services.filter((e=>Object.keys(_.groupBy(a,"serviceId")).includes(e.id))),l=[];1===r.length&&(s(te(r[0].id,e.instanceId)),l.push("provider")),1===n.length&&(s(ee(n[0].id,e.instanceId)),l.push("service")),p(l)},f=()=>{let e=o[o.length-1];return o.every(((a,r)=>{if(m.includes(a))return!0;switch(a){case"service":if(null===t.pickedService)return e="service",!1;break;case"provider":if(null===t.pickedProvider)return e="provider",!1;break;
1case"timeslot":if(!t.pickedSlots.length||!t.wantsToBook)return e="timeslot",!1}return!0})),e},b=t=>{const a=f();let r=o[Math.max(o.findIndex((e=>e===a))-1,0)],n=!1;for(;m.includes(r);)if(r=o[Math.max(o.findIndex((e=>e===r))-1,0)],0===o.findIndex((e=>e===r))){m.includes(r)&&(n=!0);break}switch(s(le([],e.instanceId)),s(ae(!1,e.instanceId)),r){case"service":!m.includes("service")&&s(ee(null,e.instanceId)),s(ie(1,e.instanceId)),c(l);break;case"provider":!m.includes("provider")&&s(te(null,e.instanceId)),s(ie(1,e.instanceId))}n&&e.backAction&&e.backAction(),A.scroll(e.instanceId)},h=()=>{let a=e.slots.map((e=>e));return t.pickedService&&(a=a.filter((e=>e.serviceId===t.pickedService))),t.pickedProvider&&(a=a.filter((e=>e.providerId===t.pickedProvider))),a.sort(((e,t)=>e.start-t.start))},k=()=>{const e=_.groupBy(h(),"serviceId"),a=Object.keys(e);return A.sortObjectsByPropertyByArray(t.services.filter((e=>a.includes(e.id))),"string"==typeof t.settings.sortingServices?t.settings.sortingServices.split(","):[],"id")},T=()=>{const e=_.groupBy(h(),"providerId"),a=Object.keys(e);return A.sortObjectsByPropertyByArray(t.providers.filter((e=>a.includes(String(e.id)))),"string"==typeof t.settings.sortingProviders?t.settings.sortingProviders.split(","):[],"id")},S=()=>{const r=(()=>{let e=0;return o.every(((a,r)=>{switch(a){case"service":if(null===t.pickedService)return e+=r,!1;break;case"provider":if(null===t.pickedProvider)return e+=r,!1;break;case"timeslot":if(!t.pickedSlots.length||!t.wantsToBook)return e+=r,!1}return!0})),Math.min(e,o.length)})(),l=t.services.find((e=>e.id===t.pickedService));let i=r<1;if(!i){i=!0;let e=r-1;for(;e>=0;)m.includes(o[e])||(i=!1),e--}const c=t.pickedSlots.map((e=>a.slots.find((t=>t.event_id===e)))).sort(((e,t)=>e.start-t.start));return n().createElement(y.Z,{direction:"vertical",style:{width:"100%"}},"timeslot"===o[r]&&"logged_only"===l?.data?.access&&!VSHM_CURRENT_USER&&n().createElement("div",{dangerouslySetInnerHTML:{__html:ct().sanitize(Na(wa("%s or %s to book this service","team-booking"),`<a href="${t.settings.loginUrl}" target="_blank">${wa("Login","team-booking")}</a>`,`<a href="${t.settings.registrationUrl}" target="_blank">${wa("Register","team-booking")}</a>`))}}),n().createElement(y.Z,{style:{justifyContent:"space-between",width:"100%"}},n().createElement(Ke,{disabled:!e.backAction&&i,onClick:0===r&&e.backAction?e.backAction:b},wa("Back","team-booking")),"timeslot"===o[r]&&t.pickedSlots.length>0&&t.settings.allowCart&&n().createElement(Ke,{type:"primary",onClick:()=>{s(ae(!0,e.instanceId))}},n().createElement(y.Z,null,wa("Confirm","team-booking"),"no"!==l?.data?.showTimes&&n().createElement(n().Fragment,null,n().createElement(y.Z,{align:"center",style:{width:"100%",display:"flex"}},A.getNiceTimes(c,"start_time_only"===l?.data?.showTimes,!0)))))))},Z=e=>{const t=h().filter((t=>t.serviceId===e.id)),a=t.filter((e=>e.promotions&&e.promotions.length));return t.length>0&&t.length===a.length?"all":a.length>0?"some":"none"},w=e=>{switch(Z(e)){case"all":return n().createElement(g.Z,{status:"processing",text:wa("Promo price!","team-booking")});case"some":return n().createElement(g.Z,{status:"processing",text:wa("Promo available!","team-booking")});case"none":return null}};return n().createElement("div",{className:"tbk-schedule-selector-wrapper"},n().createElement(Oe.Z,{gutter:16},n().createElement(Ae.Z,{xs:24,sm:24,md:24,lg:24,xl:24,xxl:24},(()=>{switch(f()){case"service":return n().createElement(y.Z,{direction:"vertical",style:{width:"100%"}},n().createElement(y.Z,{direction:"vertical",style:{width:"100%"},align:"center"},n().createElement(Ve.Z.Text,{type:"secondary"},wa("Select a service","team-booking"))),n().createElement(Ue.ZP,{grid:{gutter:16,xs:1,sm:1,md:1,lg:1,xl:1,xxl:1},dataSource:k(),renderItem:a=>{const r=t=>{if(s(ee(a.id,e.instanceId)),"nobody"===a?.data?.access||"logged_only"===a?.data?.access&&!VSHM_CURRENT_USER){const e=o.filter((e=>"form"!==e));c(e)}else c(l);A.scroll(e.instanceId)},i=Z(a),d=(e=>{const t=h().filter((t=>t.serviceId===e.id)),a=t.filter((e=>e.promotions&&e.promotions.length||e?.overrides?.price)),r=A.getBasePrice(e);if(e?.data?.priceStarts){const t=[r];return a.forEach((a=>{t.push(A.getTotalPrice(e,a))})),Math.min.apply(null,t)}return t.length>0&&t.length===a.length&&a.reduce((function(t,a){return A.getTotalPrice(e,t)===A.getTotalPrice(e,a)?t:NaN}
1))?A.getTotalPrice(e,a[0]):r})(a);return n().createElement(Ue.ZP.Item,{key:a.id},n().createElement(y.Z,{align:"center",style:{width:"100%",justifyContent:"space-between"},direction:"horizontal",className:"tbk-schedule-list-selector",onClick:r,onKeyDown:e=>{"Enter"===e.key&&r()},tabIndex:0},n().createElement(ha,{service:a,size:"large",verticalAlign:"start",additionalMeta:w(a)}),Number(a?.data?.price)>0&&n().createElement("div",{className:"tbk-schedule-list-selector-price"},n().createElement(y.Z,null,n().createElement("div",{className:"tbk-title "+("all"===i?"tbk-promo-price":"")},E(d,t.settings.currencyCode)),"all"===i&&n().createElement("div",{className:"tbk-title",style:{textDecoration:"line-through"}},E(Number(a?.data?.price),VSHM_SETTINGS.currencyCode,{pattern:"#"}))),a?.data?.priceStarts&&n().createElement("div",{className:"tbk-description"},wa("starts from","team-booking")))))}}),S());case"provider":return n().createElement(y.Z,{direction:"vertical",style:{width:"100%"}},n().createElement(y.Z,{direction:"vertical",style:{width:"100%"},align:"center"},n().createElement(Ve.Z.Text,{type:"secondary"},wa("Select a provider","team-booking"))),n().createElement(Ue.ZP,{grid:{gutter:16,xs:1,sm:1,md:1,lg:1,xl:1,xxl:1},dataSource:T(),renderItem:t=>n().createElement(Ue.ZP.Item,{key:t.id},n().createElement(y.Z,{align:"center",direction:"horizontal",className:"tbk-schedule-list-selector",onClick:a=>{s(te(t.id,e.instanceId)),A.scroll(e.instanceId)},onKeyDown:a=>{"Enter"===a.key&&(s(te(t.id,e.instanceId)),A.scroll(e.instanceId))},tabIndex:0},n().createElement(Za,{provider:t,size:"large"})))}),S());case"timeslot":const a=t.services.find((e=>e.id===t.pickedService));return n().createElement(y.Z,{direction:"vertical",style:{width:"100%"}},n().createElement(y.Z,{direction:"vertical",style:{width:"100%"},align:"center"},!!a.description&&n().createElement("div",{dangerouslySetInnerHTML:{__html:ct().sanitize(a.description)}}),!t.readOnly&&n().createElement(Ve.Z.Text,{type:"secondary"},t.settings.allowCart?wa("Select one or more adjacent timeslots","team-booking"):wa("Select a timeslot","team-booking")),n().createElement(Ve.Z.Text,{type:"secondary",italic:!0},Na(wa("Local times in %s","team-booking"),A.getTimezone().replace("_"," ")))),n().createElement(Ue.ZP,{grid:{gutter:16,xs:1,sm:1,md:1,lg:1,xl:1,xxl:1},dataSource:h(),renderItem:a=>{const r=t.services.find((e=>e.id===a.serviceId)),l=t.pickedSlots,i=h().filter((e=>!A.isSlotBooked(e)&&a.availabilityId===e.availabilityId)),o=n=>{if(!(A.isSlotBooked(a)||"nobody"===r?.data?.access||"logged_only"===r?.data?.access&&!VSHM_CURRENT_USER||t.readOnly||t.loggedOnly&&!VSHM_CURRENT_USER)){if(l.includes(a.event_id)){const t=l.reduce(((e,t,r,n)=>t===a.event_id?0===r?n.filter((e=>e!==a.event_id)):r+1<n.length?n.slice(r+1):n.slice(-1):e),null);s(le(t,e.instanceId))}else{let r;l.length?i.find((e=>e.event_id===l[0]))?(r=a.end<=i.find((e=>e.event_id===l[0])).start?i.slice(0,1-i.length+i.findIndex((e=>e.event_id===l[l.length-1]))||i.length).reduceRight(((e,t,r,n)=>e.stops?e:t.event_id===l[l.length-1]?(e.result=[t],e):t.end+t.buffer!==e.result[0].start?(e.stops=!0,e):(e.result=[t,...e.result],t.event_id===a.event_id&&(e.isFound=!0,e.stops=!0),e)),{isFound:!1,stops:!1,result:[]}):i.slice(i.findIndex((e=>e.event_id===l[0]))).reduce(((e,t,r,n)=>e.stops?e:t.event_id===l[0]?(e.result=[t],e):t.start-t.buffer!==e.result[e.result.length-1].end?(e.stops=!0,e):(e.result=[...e.result,t],t.event_id===a.event_id&&(e.isFound=!0,e.stops=!0),e)),{isFound:!1,stops:!1,result:[]}),r.isFound?s(le(r.result.sort(((e,t)=>e.start-t.start)).map((e=>e.event_id)),e.instanceId)):A.openNotificationError(wa("This timeslot is not adjacent to the others!","team-booking"))):A.openNotificationError(wa("This timeslot is not adjacent to the others!","team-booking")):(s(le([a.event_id],e.instanceId)),t.settings.allowCart||s(ae(!0,e.instanceId)))}!t.settings.allowCart&&A.scroll(e.instanceId)}};return n().createElement(Ue.ZP.Item,{key:a.event_id},n().createElement(Oe.Z,{gutter:16},n().createElement(Ae.Z,{span:24},n().createElement(y.Z,{align:"center",direction:"horizontal",className:"tbk-schedule-list-selector tbk-slot-selector"+(A.isSlotBooked(a)||"nobody"===r?.data?.access||"logged_only"===r?.data?.access&&!VSHM_CURRENT_USER?" tbk-disabled":"")+(t.pickedSlots.includes(a.event_id)?" tbk-picked-slot":""),onClick:o,onKeyDown:e=>{"Enter"===e.key&&o()},wrap:!0,tabIndex:0},n().createElement(dt.Z.Meta,{title:n().createElement(y.Z,{direction:"vertical"},n().createElement(y.Z,null,"no"!==r?.data?.showTimes&&n().createElement(n().Fragment,null,n().createElement(tt.Z,null),n().createElement(y.Z,{size:6},A.formatTime((0,d.Z)(a.start)),"yes"===r?.data?.showTimes&&n().createElement(n().Fragment,null,n().createElement(v.Z,null),A.formatTime((0,d.Z)(a.end)))))),!!a.customers.length&&n().createElement(y.Z,{className:"tbk-schedule-list-customers",direction:"vertical",size:1},a.customers.map(((e,t)=>n().createElement(y.Z,{key:t,align:"center"},function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=arguments.length>2&&void 0!==arguments[2]&&arguments[2];switch(e){case"clean":return n().createElement(mt.Z,t);case"list":return n().createElement(pt.Z,t);case"expand":return n().createElement(ut.Z,t);case"table":return n().createElement(yt.Z,t);case"user":return n().createElement(gt.Z,t);case"picture":return a?n().createElement(ft.Z,t):n().createElement(bt.Z,t);case"search":return n().createElement(ht.Z,t);case"team":return n().createElement(Et.Z,t);case"settings":return n().createElement(vt.Z,t);case"undo":return n().createElement(kt.Z,t);case"check":return n().createElement(Tt.Z,t);
1case"close":return n().createElement(St.Z,t);case"services":return n().createElement(Zt.Z,t);case"trash":return n().createElement(wt.Z,t);case"mail":return n().createElement(_t.Z,t);case"video":return n().createElement(It.Z,t);case"calendar":return n().createElement(Qe.Z,t);case"schedule":return n().createElement(Pt.Z,t);case"reload":return n().createElement(Nt.Z,t);case"coffee":return n().createElement(Ct.Z,t);case"info":return n().createElement(xt.Z,t);case"warning":return a?n().createElement(Mt.Z,t):n().createElement(Rt.Z,t);case"swapRight":return n().createElement(v.Z,t);case"caretRight":return n().createElement(Dt.Z,t);case"caretLeft":return n().createElement(Ot.Z,t);case"forward":return n().createElement(At.Z,t);case"backward":return n().createElement(zt.Z,t);case"form":return n().createElement(Vt.Z,t);case"add":return n().createElement(Ft.Z,t);case"enter":return n().createElement(Ht.Z,t);case"contacts":return n().createElement(Lt.Z,t);case"promotion":return n().createElement(Bt.Z,t);case"download":return n().createElement(Ut.Z,t);case"copy":return n().createElement(Gt.Z,t);case"google":return n().createElement(jt.Z,t);case"profile":return a?n().createElement($t.Z,t):n().createElement(Kt.Z,t);case"plus":return n().createElement(qt.Z,t);case"minus":return n().createElement(Wt.Z,t);case"location":return n().createElement(Yt.Z,t);case"like":return a?n().createElement(Xt.Z,t):n().createElement(Jt.Z,t);case"dislike":return a?n().createElement(Qt.Z,t):n().createElement(ea.Z,t);case"clock":return a?n().createElement(ta.Z,t):n().createElement(aa.Z,t);case"filter":return a?n().createElement(ra.Z,t):n().createElement(na.Z,t);case"question":return a?n().createElement(sa.Z,t):n().createElement(la.Z,t);case"eye":return a?n().createElement(ia.Z,t):n().createElement(oa.Z,t);case"eyeInvisible":return a?n().createElement(ca.Z,t):n().createElement(da.Z,t);case"sort":return n().createElement(ma.Z,t);default:return n().createElement(n().Fragment,null)}}("user"),!!e.name&&e.name,!!e.email&&e.email))))),description:A.getTimeSlotPromotionTag(a),className:"tbk-schedule-list-selector-meta"}),n().createElement(y.Z,{direction:"vertical",align:"end",style:{width:"100%"}},A.getTimeSlotAvailabilityTag(a))))))}}),S())}})())))};a(32371);var xa=a(75182),Ma=a(27983);const{__:Ra,_x:Da,_n:Oa,_nx:Aa,sprintf:za}=wp.i18n,Va=e=>{const t=(0,i.I0)(),[a,s]=(0,r.useState)([]);(0,r.useEffect)((()=>{const a=new AbortController;return t(q(!0,e.instanceId)),j.get("/backend/payment_gateways/frontend/get_props/",{signal:a.signal}).then((a=>{s(a.data.gateways),t(ce(a.data.gateways[0].id,e.instanceId))})).catch(G).finally((()=>{a.signal.aborted||t(q(!1,e.instanceId))})),()=>{a.abort()}}),[]);const l=(0,i.v9)((t=>t[e.instanceId].app.paymentGateway));return!!a.length&&n().createElement(Ma.Z,{selectedKeys:[l],onSelect:a=>{t(ce(a.key,e.instanceId))},items:a.map((e=>({label:n().createElement(Ue.ZP.Item,{style:{textAlign:"left",fontWeight:400},actions:[n().createElement(xa.Z,{src:e.img,width:32,style:{fill:"var(--tbk-primary-color)"}})]},n().createElement(Ue.ZP.Item.Meta,{title:n().createElement(Ve.Z.Title,{level:4},e.label),description:e.description})),key:e.id})))})};var Fa=a(84374),Ha=a(25489),La=a(87702),Ba=a(40900),Ua=a(52111),Ga=a(92954),ja=a(15165),$a=a(14247),Ka=a(37872);const qa=[null,[{featureType:"all",elementType:"labels.text.fill",stylers:[{saturation:36},{color:"#333333"},{lightness:40}]},{featureType:"all",elementType:"labels.text.stroke",stylers:[{visibility:"on"},{color:"#ffffff"},{lightness:16}]},{featureType:"all",elementType:"labels.icon",stylers:[{visibility:"off"}]},{featureType:"administrative",elementType:"geometry.fill",stylers:[{color:"#fefefe"},{lightness:20}]},{featureType:"administrative",elementType:"geometry.stroke",stylers:[{color:"#fefefe"},{lightness:17},{weight:1.2}]},{featureType:"administrative",elementType:"labels.icon",stylers:[{visibility:"on"}]},{featureType:"administrative.locality",elementType:"labels.icon",stylers:[{visibility:"simplified"}]},{featureType:"landscape",elementType:"geometry",stylers:[{color:"#f5f5f5"},{lightness:20}]},{featureType:"poi",elementType:"geometry",stylers:[{color:"#f5f5f5"},{lightness:21}]},{featureType:"poi.park",elementType:"geometry",stylers:[{color:"#dedede"},{lightness:21}]},{featureType:"road.highway",elementType:"geometry.fill",stylers:[{color:"#ffffff"},{lightness:17}]},{featureType:"road.highway",elementType:"geometry.stroke",stylers:[{color:"#ffffff"},{lightness:29},{weight:.2}]},{featureType:"road.arterial",elementType:"geometry",stylers:[{color:"#ffffff"},{lightness:18}]},{featureType:"road.local",elementType:"geometry",stylers:[{color:"#ffffff"},{lightness:16}]},{featureType:"transit",elementType:"geometry",stylers:[{color:"#f2f2f2"},{lightness:19}]},{featureType:"water",elementType:"geometry",stylers:[{color:"#e9e9e9"},{lightness:17}]}],[{featureType:"all",elementType:"geometry",stylers:[{hue:"#ff4400"},{saturation:-68},{lightness:-4},{gamma:.72}]},{featureType:"administrative",elementType:"all",stylers:[{visibility:"simplified"}]},{featureType:"administrative.country",elementType:"all",stylers:[{visibility:"simplified"}]},{featureType:"administrative.country",elementType:"geometry",stylers:[{visibility:"simplified"}]},{featureType:"landscape.man_made",elementType:"geometry",stylers:[{hue:"#0077ff"},{gamma:3.1}]},{featureType:"poi.park",elementType:"all",stylers:[{hue:"#44ff00"},{saturation:-23}]},{featureType:"transit",elementType:"labels.text.stroke",stylers:[{saturation:-64},{hue:"#ff9100"},{lightness:16},{gamma:.47},{weight:2.7}]},{featureType:"transit.line",elementType:"geometry",stylers:[{lightness:-48},{hue:"#ff5e00"},{gamma:1.2},{saturation:-23}]},{featureType:"water",elementType:"all",stylers:[{hue:"#00ccff"},{gamma:.44},{saturation:-33}]},{featureType:"water",elementType:"labels.text.fill",stylers:[{hue:"#007fff"},{gamma:.77},{saturation:65},{lightness:99}]},{featureType:"water",elementType:"labels.text.stroke",stylers:[{gamma:.11},{weight:5.6},{saturation:99},{hue:"#0091ff"},{lightness:-86}]}],[{featureType:"administrative",elementType:"all",stylers:[{visibility:"on"},{lightness:33}]},{featureType:"landscape",elementType:"all",stylers:[{color:"#f2e5d4"}]},{featureType:"poi.park",elementType:"geometry",stylers:[{color:"#c5dac6"}]},{featureType:"poi.park",elementType:"labels",stylers:[{visibility:"on"},{lightness:20}]},{featureType:"road",elementType:"all",stylers:[{lightness:20}]},{featureType:"road.highway",elementType:"geometry",stylers:[{color:"#c5c6c6"}]},{featureType:"road.arterial",elementType:"geometry",stylers:[{color:"#e4d7c6"}]},{featureType:"road.local",elementType:"geometry",stylers:[{color:"#fbfaf7"}]},{featureType:"water",elementType:"all",stylers:[{visibility:"on"},{color:"#acbcc9"}]}],[{featureType:"all",elementType:"all",stylers:[{hue:"#ff6800"},{saturation:"20"},{lightness:"-8"},{gamma:"1.00"},{weight:"1.12"}]}],[{featureType:"all",elementType:"geometry.stroke",stylers:[{visibility:"simplified"}]},{featureType:"administrative",elementType:"all",stylers:[{visibility:"off"}]},{featureType:"administrative",elementType:"labels",stylers:[{visibility:"simplified"},{color:"#a31645"}
1]},{featureType:"landscape",elementType:"all",stylers:[{weight:"3.79"},{visibility:"on"},{color:"#ffecf0"}]},{featureType:"landscape",elementType:"geometry",stylers:[{visibility:"on"}]},{featureType:"landscape",elementType:"geometry.stroke",stylers:[{visibility:"on"}]},{featureType:"poi",elementType:"all",stylers:[{visibility:"simplified"},{color:"#a31645"}]},{featureType:"poi",elementType:"geometry",stylers:[{saturation:"0"},{lightness:"0"},{visibility:"off"}]},{featureType:"poi",elementType:"geometry.stroke",stylers:[{visibility:"off"}]},{featureType:"poi.business",elementType:"all",stylers:[{visibility:"simplified"},{color:"#d89ca8"}]},{featureType:"poi.business",elementType:"geometry",stylers:[{visibility:"on"}]},{featureType:"poi.business",elementType:"geometry.fill",stylers:[{visibility:"on"},{saturation:"0"}]},{featureType:"poi.business",elementType:"labels",stylers:[{color:"#a31645"}]},{featureType:"poi.business",elementType:"labels.icon",stylers:[{visibility:"simplified"},{lightness:"84"}]},{featureType:"road",elementType:"all",stylers:[{saturation:-100},{lightness:45}]},{featureType:"road.highway",elementType:"all",stylers:[{visibility:"simplified"}]},{featureType:"road.arterial",elementType:"labels.icon",stylers:[{visibility:"off"}]},{featureType:"transit",elementType:"all",stylers:[{visibility:"off"}]},{featureType:"water",elementType:"all",stylers:[{color:"#d89ca8"},{visibility:"on"}]},{featureType:"water",elementType:"geometry.fill",stylers:[{visibility:"on"},{color:"#fedce3"}]},{featureType:"water",elementType:"labels",stylers:[{visibility:"off"}]}],[{featureType:"water",stylers:[{saturation:43},{lightness:-11},{hue:"#0088ff"}]},{featureType:"road",elementType:"geometry.fill",stylers:[{hue:"#ff0000"},{saturation:-100},{lightness:99}]},{featureType:"road",elementType:"geometry.stroke",stylers:[{color:"#808080"},{lightness:54}]},{featureType:"landscape.man_made",elementType:"geometry.fill",stylers:[{color:"#ece2d9"}]},{featureType:"poi.park",elementType:"geometry.fill",stylers:[{color:"#ccdca1"}]},{featureType:"road",elementType:"labels.text.fill",stylers:[{color:"#767676"}]},{featureType:"road",elementType:"labels.text.stroke",stylers:[{color:"#ffffff"}]},{featureType:"poi",stylers:[{visibility:"off"}]},{featureType:"landscape.natural",elementType:"geometry.fill",stylers:[{visibility:"on"},{color:"#b8cb93"}]},{featureType:"poi.park",stylers:[{visibility:"on"}]},{featureType:"poi.sports_complex",stylers:[{visibility:"on"}]},{featureType:"poi.medical",stylers:[{visibility:"on"}]},{featureType:"poi.business",stylers:[{visibility:"simplified"}]}],[{featureType:"all",elementType:"labels.text.fill",stylers:[{saturation:36},{color:"#000000"},{lightness:40}]},{featureType:"all",elementType:"labels.text.stroke",stylers:[{visibility:"on"},{color:"#000000"},{lightness:16}]},{featureType:"all",elementType:"labels.icon",stylers:[{visibility:"off"}]},{featureType:"administrative",elementType:"geometry.fill",stylers:[{color:"#000000"},{lightness:20}]},{featureType:"administrative",elementType:"geometry.stroke",stylers:[{color:"#000000"},{lightness:17},{weight:1.2}]},{featureType:"landscape",elementType:"geometry",stylers:[{color:"#000000"},{lightness:20}]},{featureType:"poi",elementType:"geometry",stylers:[{color:"#000000"},{lightness:21}]},{featureType:"road.highway",elementType:"geometry.fill",stylers:[{color:"#000000"},{lightness:17}]},{featureType:"road.highway",elementType:"geometry.stroke",stylers:[{color:"#000000"},{lightness:29},{weight:.2}]},{featureType:"road.arterial",elementType:"geometry",stylers:[{color:"#000000"},{lightness:18}]},{featureType:"road.local",elementType:"geometry",stylers:[{color:"#000000"},{lightness:16}]},{featureType:"transit",elementType:"geometry",stylers:[{color:"#000000"},{lightness:19}]},{featureType:"water",elementType:"geometry",stylers:[{color:"#000000"},{lightness:17}]}],[{featureType:"administrative",elementType:"all",stylers:[{saturation:"-100"}]},{featureType:"administrative.province",elementType:"all",stylers:[{visibility:"off"}]},{featureType:"landscape",elementType:"all",stylers:[{saturation:-100},{lightness:65},{visibility:"on"}]},{featureType:"poi",elementType:"all",stylers:[{saturation:-100},{lightness:"50"},{visibility:"simplified"}]},{featureType:"road",elementType:"all",stylers:[{saturation:"-100"}]},{featureType:"road.highway",elementType:"all",stylers:[{visibility:"simplified"}]},{featureType:"road.arterial",elementType:"all",stylers:[{lightness:"30"}]},{featureType:"road.local",elementType:"all",stylers:[{lightness:"40"}]},{featureType:"transit",elementType:"all",stylers:[{saturation:-100},{visibility:"simplified"}]},{featureType:"water",elementType:"geometry",stylers:[{hue:"#ffff00"},{lightness:-25},{saturation:-97}]},{featureType:"water",elementType:"labels",stylers:[{lightness:-25},{saturation:-100}]}],[{stylers:[{hue:"#007fff"},{saturation:89}]},{featureType:"water",stylers:[{color:"#ffffff"}]},{featureType:"administrative.country",elementType:"labels",stylers:[{visibility:"off"}]}],[{featureType:"administrative",elementType:"labels.text.fill",stylers:[{color:"#6195a0"}]},{featureType:"landscape",elementType:"all",stylers:[{color:"#f2f2f2"}]},{featureType:"landscape",elementType:"geometry.fill",stylers:[{color:"#ffffff"}]},{featureType:"poi",elementType:"all",stylers:[{visibility:"off"}]},{featureType:"poi.park",elementType:"geometry.fill",stylers:[{color:"#e6f3d6"},{visibility:"on"}]},{featureType:"road",elementType:"all",stylers:[{saturation:-100},{lightness:45},{visibility:"simplified"}]},{featureType:"road.highway",elementType:"all",stylers:[{visibility:"simplified"}]},{featureType:"road.highway",elementType:"geometry.fill",stylers:[{color:"#f4d2c5"},{visibility:"simplified"}]},{featureType:"road.highway",elementType:"labels.text",stylers:[{color:"#4e4e4e"}]},{featureType:"road.arterial",elementType:"geometry.fill",stylers:[{color:"#f4f4f4"}]},{featureType:"road.arterial",elementType:"labels.text.fill",stylers:[{color:"#787878"}]},{featureType:"road.arterial",elementType:"labels.icon",stylers:[{visibility:"off"}]},{featureType:"transit",elementType:"all",stylers:[{visibility:"off"}]},{featureType:"water",elementType:"all",stylers:[{color:"#eaf6f8"},{visibility:"on"}]},{featureType:"water",elementType:"geometry.fill",stylers:[{color:"#eaf6f8"}]}],[{featureType:"all",elementType:"labels.text.fill",stylers:[{color:"#ffffff"}]},{featureType:"all",elementType:"labels.text.stroke",stylers:[{visibility:"off"}]},{featureType:"all",elementType:"labels.icon",stylers:[{visibility:"off"}]},{featureType:"administrative",elementType:"geometry.fill",stylers:[{color:"#c9323b"}]},{featureType:"administrative",elementType:"geometry.stroke",stylers:[{color:"#c9323b"},{weight:1.2}]},{featureType:"administrative.locality",elementType:"geometry.fill",stylers:[{lightness:"-1"}]},{featureType:"administrative.neighborhood",elementType:"labels.text.fill",stylers:[{lightness:"0"},{saturation:"0"}]},{featureType:"administrative.neighborhood",elementType:"labels.text.stroke",stylers:[{weight:"0.01"}]},{featureType:"administrative.land_parcel",elementType:"labels.text.stroke",stylers:[{weight:"0.01"}]},{featureType:"landscape",elementType:"geometry",stylers:[{color:"#c9323b"}]},{featureType:"poi",elementType:"geometry",stylers:[{color:"#99282f"}]},{featureType:"road",elementType:"geometry.stroke",stylers:[{visibility:"off"}]},{featureType:"road.highway",elementType:"geometry.fill",stylers:[{color:"#99282f"}]},{featureType:"road.highway.controlled_access",elementType:"geometry.stroke",stylers:[{color:"#99282f"}]},{featureType:"road.arterial",elementType:"geometry",stylers:[{color:"#99282f"}]},{featureType:"road.local",elementType:"geometry",stylers:[{color:"#99282f"}]},{featureType:"transit",elementType:"geometry",stylers:[{color:"#99282f"}]},{featureType:"water",elementType:"geometry",stylers:[{color:"#090228"}]}],[{featureType:"all",elementType:"all",stylers:[{lightness:"42"},{visibility:"on"},{hue:"#ff0000"},{saturation:"-100"},{gamma:"0.78"},{weight:"0.37"},{invert_lightness:!0}
1]},{featureType:"administrative",elementType:"labels.text.fill",stylers:[{color:"#444444"}]},{featureType:"landscape",elementType:"all",stylers:[{color:"#f2f2f2"}]},{featureType:"poi",elementType:"all",stylers:[{visibility:"off"}]},{featureType:"road",elementType:"all",stylers:[{saturation:-100},{lightness:45}]},{featureType:"road.highway",elementType:"all",stylers:[{visibility:"simplified"}]},{featureType:"road.arterial",elementType:"labels.icon",stylers:[{visibility:"off"}]},{featureType:"transit",elementType:"all",stylers:[{visibility:"off"}]},{featureType:"water",elementType:"all",stylers:[{color:"#3ec7c9"},{visibility:"on"}]}]],{__:Wa,_x:Ya,_n:Xa,_nx:Ja,sprintf:Qa}=wp.i18n,er={width:"100%",height:"250px"},tr=n().forwardRef(((e,t)=>{const a=e.states[e.instanceId].app,{isLoaded:r,loadError:s}=a.settings.skipGoogleMapsLib?{isLoaded:"object"==typeof window.google&&"object"==typeof window.google.maps,loadError:"object"==typeof window.google&&"object"==typeof window.google.maps?null:"Maps Lib excluded, yet not externally loaded"}:(0,Ka.Ji)({id:"tbk-google-map-script",googleMapsApiKey:a.settings.googleMapsApiKey,libraries:["places"],preventGoogleFontsLoading:!0}),[l,i]=n().useState(null),[o,c]=n().useState(null),[d,m]=n().useState(e.location),[p,u]=n().useState(null);n().useImperativeHandle(t,(()=>({displayDirections(e){y(e,l,p,o)},resetDirections(){p.setMap(null),l.setZoom(a.settings.style.googleMapsZoom),l.panTo(o.position)}})));const y=n().useCallback((function(e,t,a,r){(new google.maps.DirectionsService).route({travelMode:"DRIVING",origin:{query:e},destination:{location:r.position}}).then((e=>{console.log(e),a.setDirections(e),a.setMap(t)})).catch((e=>console.log("Directions request failed due to "+e)))}),[]),g=n().useCallback((function(e){const t=new google.maps.Geocoder,r=(new google.maps.DirectionsService,new google.maps.DirectionsRenderer),n=c;t.geocode({address:d},(function(t,a){if(a===google.maps.GeocoderStatus.OK){e.setCenter(t[0].geometry.location);const a=new google.maps.Marker({map:e,position:t[0].geometry.location});n(a)}else console.log("Geocode was not successful for the following reason: "+a)})),e.setZoom(parseInt(a.settings.style.googleMapsZoom)??14),u(r),i(e)}),[]),f=n().useCallback((function(e){i(null)}),[]);return s?(console.log(s),n().createElement(Ga.Z,{type:"warning",showIcon:!0,description:Wa("Map cannot be loaded right now, sorry.","team-booking"),message:Wa("Warning","team-booking")})):r?n().createElement(n().Fragment,null,n().createElement(Ka.b6,{mapContainerStyle:er,onLoad:g,onUnmount:f,options:{mapTypeControl:!1,streetViewControl:!1,styles:a.settings.style.googleMapsStyle?qa[parseInt(a.settings.style.googleMapsStyle)]:null}},n().createElement(n().Fragment,null))):n().createElement(n().Fragment,null)})),ar=(0,i.$j)((function(e){return{states:e}}),(e=>({dispatch:e})),null,{forwardRef:!0})(n().memo(tr));var rr=a(87019),nr=a.n(rr);const{__:sr,_x:lr,_n:ir,_nx:or,sprintf:cr}=wp.i18n,dr=n().forwardRef(((e,t)=>{const a=e.states[e.instanceId].app,{isLoaded:s,loadError:l}=a.settings.skipGoogleMapsLib?{isLoaded:"object"==typeof window.google&&"object"==typeof window.google.maps,loadError:"object"==typeof window.google&&"object"==typeof window.google.maps?null:"Maps Lib excluded, yet not externally loaded"}:(0,Ka.Ji)({id:"tbk-google-map-script",googleMapsApiKey:a.settings.googleMapsApiKey,libraries:["places"],preventGoogleFontsLoading:!0}),[i,o]=n().useState([]),[c,d]=n().useState("");let m=!1;(0,r.useEffect)((()=>{s&&c&&c.length>2&&(m||(m=new window.google.maps.places.AutocompleteService),m.getQueryPredictions({input:c},p))}),[c]);const p=(e,t)=>{if(t!=window.google.maps.places.PlacesServiceStatus.OK||!e)return;const a=[{label:c,value:c,key:1}];e.forEach(((e,t)=>{a.push({label:e.structured_formatting.main_text,value:e.description,subtitle:e.structured_formatting.secondary_text,key:e.place_id})})),o(a)},u=nr()((e=>{e.length>2?d(e):d("")}),500);return l?(console.log(l),n().createElement(Ga.Z,{type:"warning",showIcon:!0,description:sr("Map cannot be loaded right now, sorry.","team-booking"),message:sr("Warning","team-booking")})):s?n().createElement(La.Z,{onChange:e.onChange,value:e.value,onSearch:u,showSearch:!0,allowClear:!0,showArrow:!1,optionLabelProp:"value",filterOption:!1,placeholder:sr("Please input","team-booking"),notFoundContent:null,getPopupContainer:e=>e.parentNode},i.map((e=>n().createElement(La.Z.Option,{value:e.value,key:e.key,title:e.value},n().createElement(y.Z,{direction:"horizontal"},n().createElement(pa.C,{style:{verticalAlign:"top"},icon:n().createElement(Yt.Z,null)}),n().createElement(y.Z,{direction:"vertical",size:1},e.label,n().createElement(Ve.Z.Text,{type:"secondary"},e.subtitle))))))):n().createElement(n().Fragment,null)})),mr=(0,i.$j)((function(e){return{states:e}}),(e=>({dispatch:e})),null,{forwardRef:!0})(n().memo(dr));var pr=a(70349),ur=a.n(pr);const{__:yr,_x:gr,_n:fr,_nx:br,sprintf:hr}=wp.i18n,Er=e=>{const t=(0,i.I0)(),a=(0,i.v9)((t=>t[e.instanceId].app.reservationForm)),s=(0,i.v9)((t=>t[e.instanceId].app.settings)),l=(0,i.v9)((t=>t[e.instanceId].app.services)),o=(0,i.v9)((t=>t[e.instanceId].app.pickedService)),c=(0,i.v9)((t=>t[e.instanceId].app.pickedSlotsTickets)),d=(0,i.v9)((t=>t[e.instanceId].app.pickedSlots)),m=(0,i.v9)((t=>t[e.instanceId].calendar.slots)),u=(0,r.useRef)(null),g=(0,r.useRef)(null),f=(0,r.useReducer)((e=>e+1),0)[1],b=d.map((e=>m.find((t=>t.event_id===e)))),h=(0,i.v9)((t=>t[e.instanceId].app.stageProps)),v=e=>{let t=!0;const r=u.current?u.current.getFieldsValue():k();return a.logic.filter((t=>
1t.field===e.id)).forEach((n=>{const s=a.fields.find((e=>e.id===n.IF));let l=!1;if("number"===s.type)switch(n.IS){case"<":l=r[s.id]<n.IS_REF;break;case">":l=r[s.id]>n.IS_REF;break;case"=":l=r[s.id]===n.IS_REF}else"checkbox"===s.type?!!r[s.id]===n.IS&&(l=!0):String(r[s.id])===String(n.IS)&&(l=!0);switch(n.THEN){case"visible":l||(t=!1);break;case"hidden":l&&(t=!1);break;case"required":l?t="required":u.current&&u.current.getFieldsError().filter((t=>t.errors.length&&t.name.includes(e.id))).length&&u.current.setFields([{name:e.id,errors:[]}]);break;case"notRequired":l&&(u.current&&u.current.getFieldsError().filter((t=>t.errors.length&&t.name.includes(e.id))).length&&u.current.setFields([{name:e.id,errors:[]}]),t="notRequired")}})),t},k=()=>{const e={};return a.fields.map((t=>{switch(t.type){case"number":e[t.id]=t.data.default;break;case"text_field":case"text_area":t?.data?.prefill&&(e[t.id]=t.data.prefill),"email"===t.hook&&VSHM_CURRENT_USER_EMAIL&&(e[t.id]=VSHM_CURRENT_USER_EMAIL)}})),e},T=(e,t)=>{f()},S=e=>{let{values:t,errorFields:a,outOfDate:r}=e;a.length&&A.scrollTo(document.getElementById("reservationForm_"+a[0].name[0]))},Z=e=>(console.log("Upload event:",e),Array.isArray(e)?e:e?.fileList),w=e=>{const t=l.find((t=>t.id===e)),a=_();if(b.length){let e=0;return b.forEach((r=>{e+=A.getTotalPrice(t,r,a||0,c||1)})),e}return A.getTotalPrice(t,null,a||0,c||1)},_=()=>{let e=0;return u.current&&a.fields.reduce(((t,r)=>(a.active.includes(r.id)&&("checkbox"===r.type&&!0===u.current.getFieldValue(r.id)&&Number(r.data.price_increment)>0&&(e+=Number(r.data.price_increment)),"select"===r.type&&r.data.options.map(((t,a)=>{a===u.current.getFieldValue(r.id)&&Number(t.price_increment)>0&&(e+=Number(t.price_increment))}))),t)),[]),e},I=r=>{const n={};a.fields.filter((e=>"file_upload"===e.type)).map((e=>(void 0!==r[e.id]&&Array.isArray(r[e.id])&&(n[e.id]=r[e.id][0].originFileObj),delete r[e.id],e))),t(X("summary",{formValues:r,formFields:a.fields,files:n,totalPrice:w(o),prevStage:h.prevStage,prevStageProps:h.prevStageProps},e.instanceId)),A.scroll(e.instanceId)},P=()=>{t(X(h.prevStage??"calendar",h.prevStageProps??{},e.instanceId)),t(le([],e.instanceId)),t(ie(1,e.instanceId)),t(ae(!1,e.instanceId)),A.scroll(e.instanceId)};return(()=>{if(null===a)return"";if(null===o)return"";const r=l.find((e=>e.id===o)),i=a.fields.reduce(((t,r)=>{const l=a.active.includes(r.id),i=v(r),o=!r.data.hide_from_registered||0===VSHM_CURRENT_USER;return l&&i&&o&&t.push(n().createElement(Fa.Z.Item,(e=>{let t=a.required.includes(e.id);const r=v(e);"required"===r&&(t=!0),"notRequired"===r&&(t=!1);const s={key:e.id,required:t};return"checkbox"!==e.type&&(s.label=n().createElement(n().Fragment,null,n().createElement("div",{dangerouslySetInnerHTML:{__html:ct().sanitize(e.label)}}))),s})(r),n().createElement(y.Z,{direction:"vertical",style:{width:"100%"}},(t=>{const r=v(t);let l=[];const i=e=>{"checkbox"!==e.type?l.push({required:a.required.includes(e.id),message:yr("This is required","team-booking")}):l.push({validator:(e,t)=>t?Promise.resolve():Promise.reject(new Error(yr("This is required","team-booking")))})};switch(a.required.includes(t.id)&&i(t),"required"===r?(l=[],i(t)):"notRequired"===r&&(l=[]),"email"===t.hook&&l.push({type:"email",message:yr("Please insert a valid email address","team-booking")}),t.data.validation&&l.push({pattern:new RegExp(t.data.validation),message:yr("Validation failed","team-booking")}),t.type){case"text_field":if("phone"===t.hook){const a=navigator.languages.find((e=>e.includes("-")));return n().createElement(Fa.Z.Item,{name:t.id,rules:l,noStyle:!0},n().createElement(ur(),{value:e.value,placeholder:e.placeholder,onChange:e.onChange,disableDropdown:!1,country:(a||VSHM_PLUGIN_VARS?.LANG||"en-US").toLowerCase().split("-")[1]}))}return n().createElement(Fa.Z.Item,{name:t.id,rules:l,noStyle:!0},"address"===t.hook&&s.loadMapsAutocomplete?n().createElement(mr,{instanceId:e.instanceId}):n().createElement(He.Z,{disabled:"email"===t.hook&&VSHM_CURRENT_USER_EMAIL,placeholder:yr("Please input","team-booking")}));case"text_area":return n().createElement(Fa.Z.Item,{name:t.id,rules:l,noStyle:!0},n().createElement(He.Z.TextArea,{placeholder:yr("Please input","team-booking")}));case"checkbox":return n().createElement(Fa.Z.Item,{name:t.id,valuePropName:"checked",rules:l,noStyle:!0},n().createElement(Ha.Z,null,n().createElement(y.Z,null,n().createElement("div",{className:a.required.includes(t.id)||"required"===r?"tbk-checkbox-required":"",dangerouslySetInnerHTML:{__html:ct().sanitize(t.label)}}),"0"!==String(t.data.price_increment)&&n().createElement(p.Z,{color:"green"}
1,"+ ",E(String(t.data.price_increment),s.currencyCode)))));case"select":return n().createElement(Fa.Z.Item,{name:t.id,rules:l,noStyle:!0},n().createElement(La.Z,{placeholder:yr("Select...","team-booking"),getPopupContainer:e=>e.parentNode},t.data.options.map(((e,t)=>n().createElement(La.Z.Option,{value:t,key:t},n().createElement(y.Z,null,n().createElement("div",{dangerouslySetInnerHTML:{__html:ct().sanitize(e.label)}}),"0"!==String(e.price_increment)&&n().createElement(p.Z,{color:"green"},"+ ",E(String(e.price_increment),s.currencyCode))))))));case"paragraph":return n().createElement(n().Fragment,null);case"number":return n().createElement(Fa.Z.Item,{name:t.id,rules:l,noStyle:!0},n().createElement(Ba.Z,{min:t.data.min,max:t.data.max}));case"file_upload":return n().createElement(Fa.Z.Item,{name:t.id,valuePropName:"fileList",getValueFromEvent:Z,rules:l,noStyle:!0},n().createElement(Ua.Z,{maxCount:1,accept:t.data.file_types.split(",").map((e=>"."+e.trim())).join(","),beforeUpload:e=>((e,t)=>{if(!t.data?.max_size)return!0;const a=e.size/1024/1024<=t.data.max_size;return a||alert(hr(yr("Max file size is %d MB, this file is %d MB","team-booking"),t.data.max_size,e.size/1024/1024)),a||Ua.Z.LIST_IGNORE})(e,t)},n().createElement(Ke,{icon:n().createElement(ja.Z,null)},yr("Upload","team-booking"))))}})(r),r.description&&n().createElement("div",{className:"tbk-form-item-description",dangerouslySetInnerHTML:{__html:ct().sanitize(r.description)}})))),t}),[]),d=(e=>{if(b.length){const e=[];b.forEach((t=>{t?.overrides?.location&&e.push(t?.overrides?.location)}));const t=[...new Set(e)];if(1===t.length)return t[0]}return e?.data?.location})(r),m=(()=>{const e=l.find((e=>e.id===o));return b.reduce(((t,a)=>{const r=a?.overrides?.tickets?parseInt(a?.overrides?.tickets):e?.data?.totalSlotTickets,n=Math.max(r-a.reservationsCount,0),s=e?.data?.totalUserSlotTickets>0?Math.min(n,e?.data?.totalUserSlotTickets):n;return null===t?s:Math.min(t,s)}),null)})();return n().createElement(n().Fragment,null,!!r.description&&"unscheduled"===r.class&&n().createElement("div",{style:{marginBottom:"10px"},dangerouslySetInnerHTML:{__html:ct().sanitize(r.description)}}),n().createElement(Fa.Z,{name:"reservationForm",labelWrap:!0,layout:"vertical",onFinish:I,onFinishFailed:S,onValuesChange:T,initialValues:k(),ref:u},r?.data?.showMap&&d&&n().createElement(Fa.Z.Item,{key:"map"},n().createElement(ar,{location:d,ref:g,instanceId:e.instanceId})),d&&n().createElement(Fa.Z.Item,{key:"location"},n().createElement(Ga.Z,{icon:n().createElement(Yt.Z,null),message:n().createElement(y.Z,{direction:"horizontal",style:{width:"100%",justifyContent:"space-between"}},d,n().createElement("a",{href:"https://www.google.com/maps/dir//"+d,target:"_blank"},yr("Get directions","team-booking")," ",n().createElement($a.Z,null))),type:"info",showIcon:!0})),i,(m||1)>1&&n().createElement(Fa.Z.Item,{key:"tickets",label:yr("Tickets","team-booking"),className:"tbk-form-tickets-section"},n().createElement(y.Z,{direction:"vertical",style:{width:"100%"}},n().createElement(y.Z,{align:"center",style:{width:"100%",justifyContent:"end"}},n().createElement(Ba.Z,{min:1,max:m,step:1,value:c||1,onChange:a=>{t(ie(Math.min(m,a),e.instanceId))}})))),n().createElement(Fa.Z.Item,{key:"actions"},n().createElement(y.Z,{style:{width:"100%",justifyContent:"space-between"}},n().createElement(Ke,{onClick:P},yr("Back","team-booking")),(()=>{const e=w(o),t=l.find((e=>e.id===o));let a=!1;return t?.data?.reservationsLeft<1&&(a=!0),n().createElement(Ke,{disabled:a,type:"primary",htmlType:"submit"},n().createElement(y.Z,null,yr(s?.data?.skipReview?"Book now":"Next","team-booking"),!!e&&n().createElement("span",null,E(e,s.currencyCode)),void 0!==t?.data?.reservationsLeft&&n().createElement("span",null,"(",hr(yr("%s left","team-booking"),t?.data?.reservationsLeft),")")))})()))))})()};var vr=a(73789),kr=a(73991);ct().addHook("afterSanitizeAttributes",(function(e){"target"in e&&(e.setAttribute("target","_blank"),e.setAttribute("rel","noopener"))}));const{__:Tr,_x:Sr,_n:Zr,_nx:wr,sprintf:_r}=wp.i18n,Ir=e=>{const t=new URLSearchParams(window.location.search),a=(0,i.v9)((t=>t[e.instanceId].app)),s=(0,i.I0)(),[l,o]=(0,r.useState)("list"),[c,d]=(0,r.useState)(null),[m,p]=(0,r.useState)("");return"list"===l?(()=>{const r=a.reservations;return n().createElement("div",{className:"tbk-calendar-wrapper"},n().createElement(Ye,{busy:a.busy},n().createElement(Oe.Z,{className:"tbk-calendar-header",align:"middle"},n().createElement(Ae.Z,{span:4,className:"header-nav header-nav-left"}),n().createElement(Ae.Z,{span:16,className:"header-center"},n().createElement(y.Z,{direction:"horizontal"},Tr("Reservations","team-booking"))),n().createElement(Ae.Z,{span:4,className:"header-nav header-nav-right"})),n().createElement(Oe.Z,{gutter:16,style:{padding:"20px 20px"}},n().createElement(Ae.Z,{span:24},n().createElement(Ue.ZP,{grid:{gutter:16,xs:1,sm:1,md:1,lg:1,xl:1,xxl:1},dataSource:r.map((e=>e)).sort(((e,t)=>e.start-t.start)),renderItem:r=>{const l=a.services.find((e=>e.id===r.serviceId)),i=a.providers.find((e=>e.id===r.providerId));if(!l)return null;const c=[];return!r.paid&&"cancelled"!==r.status&&"later"!==l?.data?.paymentRequirement&&parseFloat(r.price??0)>0&&c.push({key:"pay",label:_r(Tr("Pay %s","team-booking"),E(r.price,r?.currencyCode))}),r.zoomMeetingId&&c.push({key:"zoom",label:Tr("Join Zoom meeting","team-booking")}),r.googleMeetId&&c.push({key:"meet",label:Tr("Join Google Meet","team-booking")}),l?.data?.allowCancellation&&"confirmed"===r.status&&c.push({key:"cancel",danger:!0,label:Tr("Cancel","team-booking")}),n().createElement(y.Z,{key:r.db_id,style:{width:"100%",marginBottom:"20px",justifyContent:"space-between"}},n().createElement(y.Z,{size:16},A.getLittleCalendar(r,a.sizePreset),n().createElement(y.Z,{direction:"vertical"},"unscheduled"!==l.class&&"no"!==l?.data?.showTimes&&n().createElement(y.Z,{style:{fontSize:"16px",lineHeight:"1"}},n().createElement("strong",null,"#",r.db_id),A.getNiceTimes(r,"start_time_only"===l?.data?.showTimes)),n().createElement(y.Z,{direction:"vertical"},n().createElement(y.Z,null,n().createElement(pa.C,{size:"small",style:{backgroundColor:l.color}}),l.name),i&&!!l?.data?.showProvider&&n().createElement(y.Z,null,n().createElement(pa.C,{size:"small",src:i.avatar}),l?.data?.showProviderUrl?n().createElement("div",{dangerouslySetInnerHTML:{__html:ct().sanitize(`<a href="${i.url}" target="_blank">${i.name}</a>`)}}):i.name)))),n().createElement(y.Z,null,c.length>0&&n().createElement(vr.Z,{menu:{onClick:a=>{let{key:n}=a;switch(n){case"pay":s(X("payment",{reservation:r,prevStage:"reservations"},e.instanceId));break;case"zoom":s(se(r.id,t.get("tbk-hash")||"",e.instanceId));break;case"meet":window.location.href=r.googleMeetId;break;case"cancel":d(r),o("cancelConfirm")}},items:c},getPopupContainer:e=>e.parentNode},n().createElement("a",{onClick:e=>e.preventDefault()},n().createElement(y.Z,null,Tr("Actions","team-booking"),n().createElement(kr.Z,null)))),A.getReservationStatusTag(r)))}})))))})():(()=>{const r=a.services.find((e=>e.id===c.serviceId));return n().createElement(Be.ZP,{title:Tr("Are you sure?","team-booking"),subTitle:r?.data?.cancellationReason?n().createElement(y.Z,{direction:"vertical",style:{width:"100%"}},Tr("Please tell us the reason","team-booking"),n().createElement(He.Z.TextArea,{onChange:e=>{p(e.target.value)}})):n().createElement(n().Fragment,null),extra:n().createElement(n().Fragment,null,n().createElement(Ke,{key:"cancel",onClick:()=>{o("list"),d(null),p("")}},Tr("Back","team-booking")),n().createElement(Ke,{type:"primary",key:"confirm",onClick:()=>{s(ne(c.id,t.get("tbk-hash")||"",m,e.instanceId)),o("list"),d(null),p("")}},Tr("Confirm","team-booking")))})})()},{__:Pr,_x:Nr,_n:Cr,_nx:xr,sprintf:Mr}=wp.i18n;ct().addHook("afterSanitizeAttributes",(function(e){"target"in e&&(e.setAttribute("target","_blank"),e.setAttribute("rel","noopener"))}));const Rr=(0,Re.Z)(((e,t,a,r,s)=>
1n().createElement(De.Z.Countdown,{key:"countdown",title:Pr("Time left","team-booking"),value:Date.now()+1e3*parseInt(t),onFinish:()=>{A.openNotificationError(Pr("Your reservation is expired.","team-booking")),a(s("initial",{},r))}}))),Dr=e=>{const t=(0,i.v9)((t=>t[e.instanceId].app)),a=(0,i.v9)((t=>t[e.instanceId].calendar)),s=(0,i.I0)(),l=new URLSearchParams(window.location.search),o=(0,r.useRef)();(0,r.useLayoutEffect)((()=>{const a=document.querySelector(`#${e.instanceId}`),r={view:l.get("tbk-view")||a.getAttribute("data-view")||"monthly",upcomingMax:parseInt(l.get("tbk-max-upcoming"))||parseInt(a.getAttribute("data-max-upcoming"))||0,upcomingDefault:parseInt(l.get("tbk-default-upcoming"))||parseInt(a.getAttribute("data-default-upcoming"))||4,upcomingMore:A.extractFilteredBool(l.get("tbk-show-more-upcoming"),a.getAttribute("data-show-more-upcoming")),readOnly:A.extractFilteredBool(l.get("tbk-readonly"),a.getAttribute("data-readonly")),loggedOnly:A.extractFilteredBool(l.get("tbk-loggedonly"),a.getAttribute("data-loggedonly")),restrictedServices:A.extractFilteredArray(l.get("tbk-services"),a.getAttribute("data-services")),restrictedProviders:A.arrayOfNum(A.extractFilteredArray(l.get("tbk-providers"),a.getAttribute("data-providers")))};return(0,i.dC)((()=>{if(r.restrictedServices.length&&s(ye(VSHM_FRONTEND_SERVICES.filter((e=>r.restrictedServices.includes(e.id))),e.instanceId)),r.restrictedProviders.length&&s(ge(VSHM_FRONTEND_PROVIDERS.filter((e=>r.restrictedProviders.includes(e.id))),e.instanceId)),r.readOnly&&s(W(r.readOnly,e.instanceId)),r.loggedOnly&&s(Y(r.loggedOnly,e.instanceId)),"upcoming"===r.view)s(J("upcoming",{eventsNumber:r.upcomingDefault,chunkSize:4,maxEvents:r.upcomingMax,showMore:r.upcomingMore},e.instanceId));else if("reservations"===r.view)s(J("reservations",{},e.instanceId));else if("unscheduled"===r.view){const a=t.services.filter((e=>"unscheduled"===e.class));1===a.length?(s(ee(a[0].id,e.instanceId)),s(ae(!0,e.instanceId))):s(J("unscheduled",{},e.instanceId))}else"landing"===r.view?s(J("landing",{}
1,e.instanceId)):(s(he(new Date,e.instanceId)),s(J("calendar",{},e.instanceId)))})),window.addEventListener("resize",f),f(),()=>{console.log("%cTBK::UNLOADED","color:red"),window.removeEventListener("resize",f),((e,t)=>{const a={};for(const[r,n]of Object.entries(t.getState()))"dummy"!==r&&r!==e&&(a[r]=Ce(n,r));(0,Ze.UY)({...a})})(e.instanceId,Me)}}),[]),(0,r.useEffect)((()=>{o.current=t.sizePreset}),[t.sizePreset]);const c=t=>{s(be(t,e.instanceId)),s(Ee(null,e.instanceId))},p=()=>{s(Q({coupon:null,couponVerified:!1,totalPrice:t.stageProps.baseTotalPrice,couponPromotion:null},e.instanceId))},u=()=>{let r;if(s(q(!0,e.instanceId)),"unscheduled"===t.services.find((e=>e.id===t.pickedService)).class){const e=(0,m.Z)(new Date);r=[{start:e,end:e,slotId:null,availabilityId:null,serviceId:t.pickedService,tickets:1}]}else r=a.slots.filter((e=>t.pickedSlots.includes(e.event_id)));j.get("/backend/promotions/coupons/verify/",{params:{coupon:t.stageProps.coupon,slots:r,slotsTickets:t.pickedSlotsTickets,formFields:t.stageProps.formFields.map((e=>e.id)),formValues:t.stageProps.formValues}}).then((a=>{a.data.valid?(A.openNotificationSuccess(Pr("Coupon applied!","team-booking")),s(Q({totalPrice:Object.values(a.data.prices).reduce(((e,t)=>e+t),0),baseTotalPrice:t.stageProps.totalPrice,couponVerified:!0,couponPromotion:a.data.promotion},e.instanceId))):(A.openNotificationError(Pr("Invalid coupon!","team-booking")),s(Q({coupon:null},e.instanceId)))})).catch(G).finally((()=>{s(q(!1,e.instanceId))}))},f=()=>{const t=document.getElementById(e.instanceId)?.offsetWidth;t<400?"small"!==o.current&&s(re("small",e.instanceId)):t<580?"medium"!==o.current&&s(re("medium",e.instanceId)):"large"!==o.current&&s(re("large",e.instanceId))};return n().createElement(Ge.ZP,{prefixCls:"tbk"},n().createElement("div",{className:"tbk-frontend-calendar tbk-wrap tbk-"+t.sizePreset},(()=>{switch(t.stage){case"preload":return n().createElement(Ye,{busy:t.busy},n().createElement("div",{style:{height:"200px"}}));case"calendar":return(()=>{const r=a.displayDate,l=[],i=t.settings.hideWeekends?5:7,o=parseInt(t.settings.weekStartsOn);for(let e=o;e<7+o;e++)(5!==i||e%7!=0&&e%7!=6)&&l.push(n().createElement(Ae.Z,{className:"weekday",flex:"1 1 0",key:e%7},VSHM_I18N.shortWeekDaysLabels[e%7]));const m=[],p=A.getZonedStartOfMonth(r),u=A.getZonedEndOfMonth(r),f=(0,rt.Z)({start:p,end:u},{weekStartsOn:o}),b={};for(let e of a.slots){const t=(0,d.Z)(e.start);A.getFullYearOf(t)===A.getFullYearOf(r)&&A.getMonthOf(t)===A.getMonthOf(r)&&((0,nt.Z)(A.getZonedEndOfDay(t))||(Array.isArray(b[A.getDayOf(t)])||(b[A.getDayOf(t)]=[]),b[A.getDayOf(t)].push(e)))}for(const[l,o]of f.entries()){let l=1,c=[];for(let m=0;m<7;m++){const p=(0,st.Z)(o,m);if(5===i&&(0,lt.Z)(p))continue;const u=[],y=[];let f=!0;if(A.getMonthOf(p)!==A.getMonthOf(r))y.push("outside"),f=!1;else{(0,nt.Z)(A.getZonedEndOfDay(p))?(y.push("past-day"),f=!1):A.isZonedToday(p)&&y.push("today"),y.push("day");const e=[];if(Array.isArray(b[A.getDayOf(p)])){const a=_.groupBy(b[A.getDayOf(p)],"serviceId");for(const[r,s]of Object.entries(a)){const a=t.services.find((e=>e.id===r));if(!a)continue;A.getContrastText(a?.color).textClass;const l=s.filter((e=>{const t=e?.overrides?.tickets?parseInt(e?.overrides?.tickets):a?.data?.totalSlotTickets;return e.reservationsCount<t}));if(l.length){const s=A.getContrastText(a?.color).textComponents,i=()=>{const e=l.reduce(((e,t)=>e+(t?.overrides?.tickets?parseInt(t?.overrides?.tickets):a?.data?.totalSlotTickets)-t.reservationsCount),0);switch(t.settings.style.dotsLogic){case"slots":return t.settings.style.dotsThreshold&&l.length<t.settings.style.dotsThreshold?n().createElement(g.Z,{key:r,color:a?.color}):n().createElement(g.Z,{key:r,count:l.length,style:{backgroundColor:a?.color,color:`rgba(${s}, 1)`}});case"tickets":return t.settings.style.dotsThreshold&&e<t.settings.style.dotsThreshold?n().createElement(g.Z,{key:r,color:a?.color}):n().createElement(g.Z,{key:r,count:e,style:{backgroundColor:a?.color,color:`rgba(${s}, 1)`}});case"service":return n().createElement(g.Z,{key:r,size:"small",color:a?.color,text:a.name});case"slots_service":return t.settings.style.dotsThreshold&&l.length<t.settings.style.dotsThreshold?n().createElement("div",null,n().createElement(g.Z,{key:r,color:a?.color}),n().createElement("span",{className:"tbk-badge-status"},n().createElement("span",{className:"tbk-badge-status-text"},a.name))):n().createElement("div",null,n().createElement(g.Z,{key:r,count:l.length,style:{backgroundColor:a?.color,color:`rgba(${s}, 1)`}}
1),n().createElement("span",{className:"tbk-badge-status"},n().createElement("span",{className:"tbk-badge-status-text"},a.name)));case"tickets_service":return t.settings.style.dotsThreshold&&e<t.settings.style.dotsThreshold?n().createElement("div",null,n().createElement(g.Z,{key:r,color:a?.color}),n().createElement("span",{className:"tbk-badge-status"},n().createElement("span",{className:"tbk-badge-status-text"},a.name))):n().createElement("div",null,n().createElement(g.Z,{key:r,count:e,style:{backgroundColor:a?.color,color:`rgba(${s}, 1)`}}),n().createElement("span",{className:"tbk-badge-status"},n().createElement("span",{className:"tbk-badge-status-text"},a.name)));case"hide":return null}};e.push(i())}}}let a="tbk-day-number tbk-day-number-available";e.length||(f=!1,a="tbk-day-number",Array.isArray(b[A.getDayOf(p)])&&(f=!0,a="tbk-day-number tbk-day-number-booked")),u.push(n().createElement("div",{className:"day-button-container",key:A.getDayOf(p)},n().createElement("div",{className:a},A.getDayOf(p)),n().createElement("div",{className:"tbk-dots "+(["service","tickets_service","slots_service"].includes(t.settings.style.dotsLogic)?"":"tbk-centered")},e)))}c.push(n().createElement(ze.Z,{title:null,key:c.length,getPopupContainer:e=>e.parentNode},n().createElement(Ae.Z,{className:y.join(" "),flex:"1 1 0",key:c.length,onClick:()=>f&&s(X("timeslot",{slots:a.slots.filter((e=>A.getDayOf((0,d.Z)(e.start))===A.getDayOf(p)&&A.getMonthOf((0,d.Z)(e.start))===A.getMonthOf(p)&&A.getFullYearOf((0,d.Z)(e.start))===A.getFullYearOf(p)&&!(0,nt.Z)(A.getZonedEndOfDay((0,d.Z)(e.start))))),header:A.formatDate(p,{dateStyle:"small"===t.sizePreset?"medium":"full"}),leftActionCallback:()=>{s(Ee(null,e.instanceId)),s(X("calendar",{},e.instanceId))}},e.instanceId))&&s(Ee(p,e.instanceId))},u))),l++}m.push(n().createElement(Oe.Z,{className:"days-row",gutter:4,key:m.length},c))}const h=()=>{const e=(0,it.Z)(r,1);(0,nt.Z)(A.getZonedEndOfMonth(e))||c(e)},E=()=>{c((0,K.Z)(r,1))};return n().createElement("div",{className:"tbk-calendar-wrapper"},n().createElement(Ye,{busy:t.busy},n().createElement(Oe.Z,{className:"tbk-calendar-header",align:"middle"},n().createElement(Ae.Z,{tabIndex:0,span:4,className:"header-nav header-nav-left"+((0,nt.Z)(A.getZonedEndOfMonth((0,it.Z)(r,1)))?" tbk-disabled":""),onClick:h,onKeyDown:e=>{"Enter"===e.key&&h()}},n().createElement(Xe.Z,null)),n().createElement(Ae.Z,{span:16,className:"header-center"},n().createElement(y.Z,{direction:"horizontal"},n().createElement("span",{className:"tbk-month"},A.formatDate(r,{month:"small"===t.sizePreset?"short":"long"})),n().createElement("span",{className:"tbk-year"},A.formatDate(r,{year:"numeric"})))),n().createElement(Ae.Z,{tabIndex:0,span:4,className:"header-nav header-nav-right",onClick:E,onKeyDown:e=>{"Enter"===e.key&&E()}},n().createElement(Je.Z,null))),n().createElement(Oe.Z,{className:"tbk-weekdays"},l),n().createElement("div",{className:"tbk-days"},m)))})();case"timeslot":return(()=>{const a=t.services.find((e=>e.id===t.pickedService)),r=t.providers.find((e=>e.id===t.pickedProvider)),s=r&&a&&!!a?.data?.showProvider;return n().createElement("div",{className:"tbk-calendar-wrapper"},n().createElement(Ye,{busy:t.busy},n().createElement(Oe.Z,{className:"tbk-calendar-header",align:"middle"},n().createElement(Ae.Z,{span:24,className:"header-center"},n().createElement("span",{className:"tbk-full-date"},t.stageProps.header))),a&&n().createElement(Oe.Z,{align:"middle",style:{padding:"0 20px 20px"},className:"tbk-form-subtitle",gutter:16},n().createElement(Ae.Z,{span:s&&"large"===t.sizePreset?12:24},n().createElement(ha,{service:a,align:s&&"large"===t.sizePreset?"end":"center"})),s&&n().createElement(Ae.Z,{span:"large"===t.sizePreset?12:24,style:{paddingTop:"large"===t.sizePreset?0:"10px"}},n().createElement(Za,{provider:r,service:a}))),n().createElement(Ca,{slots:t.stageProps.slots,backAction:t.stageProps.leftActionCallback,instanceId:e.instanceId})))})();case"upcoming":return(()=>{const r=a.slots.filter((e=>!(0,nt.Z)(A.getZonedEndOfDay((0,d.Z)(e.start))))).sort(((e,t)=>e.start-t.start)).slice(0,t.stageProps.eventsNumber);return n().createElement("div",{className:"tbk-calendar-wrapper"},n().createElement(Ye,{busy:t.busy},n().createElement(Oe.Z,{className:"tbk-calendar-header",align:"middle"},n().createElement(Ae.Z,{span:4,className:"header-nav header-nav-left"}),n().createElement(Ae.Z,{span:16,className:"header-center"},n().createElement(y.Z,{direction:"horizontal"},Pr("Upcoming","team-booking"))),n().createElement(Ae.Z,{span:4,className:"header-nav header-nav-right"}
1)),n().createElement(Oe.Z,null,n().createElement("div",{className:"tbk-schedule-selector-wrapper"},n().createElement(Ue.ZP,{grid:{gutter:16,xs:1,sm:1,md:1,lg:1,xl:1,xxl:1},dataSource:r,renderItem:a=>{const r=t.services.find((e=>e.id===a.serviceId));if(void 0===r)return;const l=()=>{A.isSlotBooked(a)||"nobody"===r?.data?.access||"logged_only"===r?.data?.access&&!VSHM_CURRENT_USER||t.readOnly||t.loggedOnly&&!VSHM_CURRENT_USER||(0,i.dC)((()=>{s(le([a.event_id],e.instanceId)),s(ee(a.serviceId,e.instanceId)),s(te(a.providerId,e.instanceId)),s(ae(!0,e.instanceId))}))};return n().createElement(Ue.ZP.Item,{key:a.event_id},n().createElement(Oe.Z,{gutter:16},n().createElement(Ae.Z,{flex:"small"===t.sizePreset?"70px":"100px"},A.getLittleCalendar(a,t.sizePreset)),n().createElement(Ae.Z,{flex:"1 1 0%"},n().createElement(y.Z,{style:{width:"100%",justifyContent:"space-between"},align:"start",direction:"small"===t.sizePreset?"vertical":"horizontal",className:"tbk-schedule-list-selector tbk-slot-selector"+(A.isSlotBooked(a)||"nobody"===r?.data?.access||"logged_only"===r?.data?.access&&!VSHM_CURRENT_USER?" tbk-disabled":"")+(t.pickedSlots.includes(a.event_id)?" tbk-picked-slot":""),onClick:l,onKeyDown:e=>{"Enter"===e.key&&l()},wrap:!1,tabIndex:0},n().createElement(y.Z,{direction:"vertical",className:"tbk-schedule-list-selector-meta"},n().createElement(ha,{service:r,verticalAlign:"start",size:"small"===t.sizePreset?"small":"large",additionalMeta:n().createElement(n().Fragment,null,"no"!==r?.data?.showTimes?n().createElement(y.Z,{style:{fontSize:"100%"},align:"start",size:"small"===t.sizePreset?1:"small"},n().createElement(tt.Z,{style:{color:"var(--tbk-primary-color)"}}),A.getNiceTimes(a,"start_time_only"===r?.data?.showTimes)):null,r?.data?.location?n().createElement(y.Z,{style:{fontSize:"100%"},align:"start",size:"small"===t.sizePreset?1:"small"},n().createElement(at.Z,{style:{color:"var(--tbk-primary-color)"}}),r?.data?.location):null)})),n().createElement(y.Z,{direction:"vertical",align:"small"===t.sizePreset?"start":"end",style:{width:"100%"}},A.getTimeSlotAvailabilityTag(a),A.getTimeSlotFullPriceTag(a),a.promotions&&n().createElement(g.Z,{status:"processing",text:Pr("Promo","team-booking")}))))))}}))),t.stageProps.showMore&&n().createElement(Oe.Z,{gutter:16,style:{padding:"0 20px 20px"}},n().createElement(Ae.Z,{span:24},n().createElement(y.Z,{style:{justifyContent:"end",width:"100%"}},n().createElement(Ke,{type:"primary",onClick:()=>{s(Q({eventsNumber:t.stageProps.eventsNumber+t.stageProps.chunkSize},e.instanceId))}},n().createElement(y.Z,null,Pr("Show more","team-booking"))))))))})();case"reservations":return n().createElement(Ir,{instanceId:e.instanceId});case"summary":return(()=>{const r=t.services.find((e=>e.id===t.pickedService)),l=t.providers.find((e=>e.id===t.pickedProvider));let i;if("unscheduled"===r.class){const e=(0,m.Z)(new Date);i=[{start:e,end:e,slotId:null,availabilityId:null,tickets:1}]}else i=t.pickedSlots.map((e=>a.slots.find((t=>t.event_id===e)))).sort(((e,t)=>e.start-t.start));const o=(0,d.Z)(i[0].start),c=t.stageProps.formFields.reduce(((e,a)=>("checkbox"===a.type&&!0===t.stageProps.formValues[a.id]&&Number(a.data.price_increment)>0&&e.push({label:a.label,value:Pr("Checked","team-booking"),price:Number(a.data.price_increment)}),"select"===a.type&&a.data.options.map(((r,n)=>{n===t.stageProps.formValues[a.id]&&Number(r.price_increment)>0&&e.push({label:a.label,value:r.label,price:Number(r.price_increment)})})),e)),[]),g=l&&!!r?.data?.showProvider;return n().createElement(Ye,{busy:t.busy},n().createElement(Oe.Z,{className:"tbk-calendar-header",align:"middle"},n().createElement(Ae.Z,{span:24,className:"header-center"},n().createElement(y.Z,{direction:"horizontal"},Pr("Summary","team-booking")))),"unscheduled"!==r.class&&n().createElement(Oe.Z,{gutter:16,style:{padding:"0 20px 20px",textAlign:"center",fontSize:"16px"},align:"middle"},n().createElement(Ae.Z,{span:24},n().createElement(y.Z,{direction:"small"===t.sizePreset?"vertical":"horizontal"},n().createElement(y.Z,null,n().createElement(Qe.Z,null),n().createElement(Ve.Z.Text,null,A.formatDate(o,{dateStyle:"small"===t.sizePreset?"medium":"full"}))),"no"!==r?.data?.showTimes&&n().createElement(y.Z,null,A.getNiceTimes(i,"start_time_only"===r?.data?.showTimes))))),n().createElement(Oe.Z,{gutter:16,style:{padding:"0 20px"},align:"middle"},n().createElement(Ae.Z,{span:g&&"large"===t.sizePreset?12:24},n().createElement(ha,{service:r,align:g&&"large"===t.sizePreset?"end":"center"})),g&&n().createElement(Ae.Z,{span:"large"===t.sizePreset?12:24},n().createElement(Za,{provider:l,service:r}))),n().createElement(Oe.Z,{gutter:16,style:{padding:"20px"}},n().createElement(Ae.Z,{span:24},n().createElement(Fe.Z,{column:1,layout:["small","medium"].includes(t.sizePreset)?"vertical":"horizontal",bordered:!0,size:"small"},t.stageProps.formFields.reduce(((e,a,r)=>{if("paragraph"===a.type)return e;let s=t.stageProps.formValues[a.id]||null;switch(a.type){case"checkbox":s=s?Pr("Checked","team-booking"):null;break;case"select":s=null!==s?a.data.options[s]?.label:s;break;case"file_upload":s=null!==s?s[0].name:s}return null!==s&&e.push(n().createElement(Fe.Z.Item,{key:r,label:n().createElement("div",{dangerouslySetInnerHTML:{__html:ct().sanitize(a.label)}})},s)),e}),[])))),n().createElement(Oe.Z,{gutter:16,style:{padding:"20px"}},n().createElement(Ae.Z,{span:24},n().createElement(y.Z,{style:{justifyContent:"space-between",width:"100%"}},n().createElement(Ke,{onClick:()=>{s(X("reservationForm",{prevStage:t.stageProps.prevStage,prevStageProps:t.stageProps.prevStageProps},e.instanceId))}},Pr("Back","team-booking")),n().createElement(Ke,{type:"primary",onClick:()=>{s(de(t.stageProps.formValues,A.isObject(t.stageProps.files)&&Object.values(t.stageProps.files).length?t.stageProps.files:null,t.stageProps.coupon&&t.stageProps.couponVerified?t.stageProps.coupon:null,e.instanceId))}},n().createElement(y.Z,null,Pr("Book now","team-booking"),!!t.stageProps.totalPrice&&n().createElement("span",null,E(t.stageProps.totalPrice,t.settings.currencyCode)))
1)))),!!(Number(r?.data?.price)>0||t.stageProps.totalPrice)&&n().createElement(Oe.Z,{gutter:16,style:{padding:"0 20px"}},n().createElement(Ae.Z,{span:24},n().createElement(He.Z.Group,null,n().createElement(He.Z,{style:{width:"200px"},placeholder:Pr("Coupon?","team-booking"),suffix:n().createElement(et.Z,{style:{opacity:.5}}),allowClear:!0,disabled:t.stageProps.couponVerified,onChange:t=>{s(Q({coupon:t.target.value},e.instanceId))},value:t.stageProps.coupon,onPressEnter:u}),t.stageProps.couponVerified?n().createElement(Ke,{style:{marginLeft:"-1px"},onClick:p},n().createElement(y.Z,null,Pr("Remove","team-booking"))):n().createElement(Ke,{style:{marginLeft:"-1px"},onClick:u},n().createElement(y.Z,null,Pr("Apply","team-booking")))))),!!(Number(r?.data?.price)>0||t.stageProps.totalPrice)&&n().createElement(Oe.Z,{gutter:16,style:{padding:"0 0px 20px"}},n().createElement(Ae.Z,{span:24,className:"tbk-price-details"},n().createElement(Le.Z,{ghost:!0,expandIconPosition:"end"},n().createElement(Le.Z.Panel,{key:"price-details",header:Pr("Price details","team-booking")},n().createElement(Fe.Z,{bordered:!0,column:2,size:"small"},i.map((e=>{const a=t.pickedSlotsTickets||1,s=A.getBasePrice(r,e);return n().createElement(n().Fragment,null,n().createElement(Fe.Z.Item,{key:e.event_id+"1",span:a>1?1:2,label:Mr(Pr("%s list price","team-booking"),r.name)},E(+s,t.settings.currencyCode)),a>1&&n().createElement(Fe.Z.Item,{key:e.event_id+"2",label:Mr(Cr("X %d ticket =","X %d tickets =",a,"team-booking"),a)},E(s*a,t.settings.currencyCode)),t.stageProps.couponPromotion&&t.stageProps.couponPromotion.appliedTo.includes(e.event_id)&&n().createElement(Fe.Z.Item,{span:2,key:e.event_id+"3",label:Mr(Pr("Coupon %s ","team-booking"),t.stageProps.coupon.toUpperCase())},"- ",E(A.getSingleDiscount(s*a,t.stageProps.couponPromotion),t.settings.currencyCode)))})),!!c.length&&i.map((e=>c.map(((e,a)=>{const r=t.pickedSlotsTickets||1;return n().createElement(n().Fragment,null,n().createElement(Fe.Z.Item,{key:"add"+a,span:r>1?1:2,label:`${e.label}: ${e.value}`},"+ ",E(+e.price,t.settings.currencyCode)),r>1&&n().createElement(Fe.Z.Item,{key:"add2"+a,label:Mr(Cr("X %d ticket =","X %d tickets =",r,"team-booking"),r)},"+ ",E(e.price*r,t.settings.currencyCode)))})))),i.map(((e,a)=>void 0===e.promotions?null:e.promotions.map(((s,l)=>{const o=t.pickedSlotsTickets||1,c=A.getBasePrice(r,e);return n().createElement(Fe.Z.Item,{key:l,span:2,label:i.length>1?Mr(Pr("Slot %d: %s discount","team-booking"),a+1,"percentage"===s.type?`${s.value}%`:E(+s.value,t.settings.currencyCode)):Mr(Pr("%s discount","team-booking"),"percentage"===s.type?`${s.value}%`:E(+s.value,t.settings.currencyCode))},"- ",E(A.getSingleDiscount(c,s,0,o),t.settings.currencyCode))})))),!!r?.data?.promotions&&r?.data?.promotions.map(((e,a)=>{const s=t.pickedSlotsTickets||1,l=A.getBasePrice(r);return n().createElement(Fe.Z.Item,{key:a+"_",span:2,label:Mr(Pr("%s discount","team-booking"),"percentage"===e.type?`${e.value}%`:E(+e.value,t.settings.currencyCode))},"- ",E(A.getSingleDiscount(l,e,0,s),t.settings.currencyCode))})),"unscheduled"===r.class&&t.stageProps.couponPromotion&&n().createElement(Fe.Z.Item,{span:2,key:"coupon_unscheduled",label:Mr(Pr("Coupon %s ","team-booking"),t.stageProps.coupon.toUpperCase())},"- ",E(A.getSingleDiscount(1*A.getBasePrice(r),t.stageProps.couponPromotion),t.settings.currencyCode)),n().createElement(Fe.Z.Item,{key:"total",className:"tbk-price-breakdown-total",label:Pr("Total","team-booking")},E(t.stageProps.totalPrice,t.settings.currencyCode))))))))})();case"result":case"landing":return(()=>{const a=new URL(window.location.href),r=t.stageProps.reservation,l=t.services.find((e=>e.id===r.serviceId)),i=[{title:l.name,description:l.description,startTime:r.start,endTime:r.end,location:l?.data?.location??null}],o=[];o.push(n().createElement(Ke,{type:"primary",key:"back",onClick:()=>{"landing"===t.initialStage?(a.searchParams.delete("reservation"),a.searchParams.delete("tbk-view"),a.searchParams.delete("tbk-hash"),a.searchParams.delete("status"),window.history.replaceState(null,"",a)):s(X("initial",{},e.instanceId))}},Pr("Go back","team-booking"))),"unscheduled"!==l.class&&"cancel"!==t.stageProps.status&&o.push(n().createElement(Ke,{key:"ical",onClick:e=>{e.stopPropagation();const t=A.getICSfromEvents(i),a=Mr(Pr("Reservations for %s number %s","team-booking"),l.name,r.id)+".ics",n=new Blob([t],{type:"text/calendar;charset=utf-8"});A.isIE()?window.navigator.msSaveOrOpenBlob(n,a):A.isIOSSafari()?window.open(t,"_blank"):A.downloadBlob(n,a)}},Pr("Add to calendar","team-booking")));
1let c=Pr("Thank you for the reservation","team-booking");return"cancel"===t.stageProps.status&&(c=Pr("Reservation cancelled","team-booking")),l?.data?.approval,n().createElement(n().Fragment,null,n().createElement(Be.ZP,{status:"cancel"===t.stageProps.status?"error":"success",title:c,subTitle:"cancel"===t.stageProps.status?null:Mr(Pr("Reservation ID: %s","team-booking"),r.db_id),extra:o}),"discretional"===l?.data?.paymentRequirement&&"landing"!==t.initialStage&&n().createElement(y.Z,{className:"tbk-payments-wrapper",direction:"vertical",size:24},n().createElement(Ke,{loading:t.busy,onClick:()=>{s(X("payment",{reservation:r},e.instanceId))},size:"large",type:"primary",block:!0},Pr("Do you wish to pay online?","team-booking"))))})();case"payment":return(()=>{const a=t.services.find((e=>e.id===(t.pickedService??t.stageProps?.reservation.serviceId)));return n().createElement(n().Fragment,null,n().createElement(Oe.Z,{className:"tbk-calendar-header",align:"middle"},n().createElement(Ae.Z,{span:4,className:"header-nav header-nav-left"}),n().createElement(Ae.Z,{span:16,className:"header-center"},n().createElement(y.Z,{direction:"horizontal"},Pr("Payment","team-booking"))),n().createElement(Ae.Z,{span:4,className:"header-nav header-nav-right"})),n().createElement(y.Z,{className:"tbk-payments-wrapper",direction:"vertical",size:24},n().createElement("div",null,n().createElement(Ve.Z.Title,{level:4},Pr("Thank you for the reservation","team-booking")),n().createElement(Ve.Z.Text,{type:"secondary"},Pr("immediately"===a?.data?.paymentRequirement?"To confirm the reservation, please select a payment method.":"Please select a payment method.","team-booking"))),n().createElement(Oe.Z,{gutter:16},n().createElement(Ae.Z,{span:8},n().createElement(De.Z,{title:Pr("Amount to pay","team-booking"),value:E(t.stageProps.amount,t.settings.currencyCode,{pattern:"#"})})),n().createElement(Ae.Z,{span:8},n().createElement(De.Z,{title:Pr("Currency","team-booking"),value:t.settings.currencyCode})),n().createElement(Ae.Z,{span:8},"immediately"===a?.data?.paymentRequirement&&Rr(t.stageProps.reservation.id,t.stageProps.expiresIn,s,e.instanceId,X))),n().createElement(Va,{instanceId:e.instanceId}),n().createElement(Oe.Z,{gutter:16},n().createElement(Ae.Z,{span:12},n().createElement(Ke,{loading:t.busy,onClick:()=>{"immediately"===a?.data?.paymentRequirement&&"pending"===t.stageProps?.reservation?.status&&"reservations"!==t.stageProps?.prevStage?s(pe(t.stageProps?.reservation.id,t.stageProps?.hash,e.instanceId)):s(X("initial",{},e.instanceId))},size:"large",block:!0},Pr("Cancel","team-booking"))),n().createElement(Ae.Z,{span:12},n().createElement(Ke,{loading:t.busy,onClick:()=>{s(me(t.stageProps?.reservation.id,e.instanceId))},size:"large",type:"primary",block:!0},Pr("Pay","team-booking"))))))})();case"reservationForm":return(()=>{const r=t.services.find((e=>e.id===t.pickedService));if(!r)return"";const s=t.pickedSlots.map((e=>a.slots.find((t=>t.event_id===e)))).sort(((e,t)=>e.start-t.start));let l;"unscheduled"===r.class?l=r.name:s.length&&(l=A.formatDate((0,d.Z)(s[0].start),{dateStyle:"small"===t.sizePreset?"medium":"full"}));const i=t.providers.find((e=>e.id===t.pickedProvider)),o=i&&!!r?.data?.showProvider;return n().createElement("div",null,n().createElement(Ye,{busy:t.busy},n().createElement(Oe.Z,{className:"tbk-calendar-header",align:"middle"},n().createElement(Ae.Z,{span:4,className:"header-nav header-nav-left"}),n().createElement(Ae.Z,{span:16,className:"header-center"},n().createElement(y.Z,{direction:"horizontal"},l)),n().createElement(Ae.Z,{span:4,className:"header-nav header-nav-right"})),"unscheduled"!==r.class&&"no"!==r?.data?.showTimes&&n().createElement(Oe.Z,{align:"middle",style:{padding:"0 20px 20px"},className:"tbk-form-subtitle"},n().createElement(y.Z,{align:"center",style:{width:"100%",justifyContent:"center",fontSize:"18px"}},A.getNiceTimes(s,"start_time_only"===r?.data?.showTimes))),n().createElement(Oe.Z,{align:"middle",style:{padding:"0 20px 20px"},className:"tbk-form-subtitle",gutter:16},n().createElement(Ae.Z,{span:o&&"large"===t.sizePreset?12:24},n().createElement(ha,{service:r,align:o&&"large"===t.sizePreset?"end":"center"})),o&&n().createElement(Ae.Z,{span:"large"===t.sizePreset?12:24},n().createElement(Za,{provider:i,service:r}))),n().createElement(Oe.Z,{gutter:16,style:{padding:"0 20px"}},!!r.description&&"upcoming"===t.stageProps.prevStage&&n().createElement("div",{dangerouslySetInnerHTML:{__html:ct().sanitize(r.description)}}),n().createElement(Ae.Z,{span:24},n().createElement(Er,{slots:"unscheduled"!==r.class?s:null,instanceId:e.instanceId})))))})();case"unscheduled":return n().createElement("div",{className:"tbk-calendar-wrapper"},n().createElement(Ye,{busy:t.busy},n().createElement(Oe.Z,{className:"tbk-calendar-header",align:"middle"},n().createElement(Ae.Z,{span:4,className:"header-nav header-nav-left"}),n().createElement(Ae.Z,{span:16,className:"header-center"},n().createElement(y.Z,{direction:"horizontal"},Pr("Services","team-booking"))),n().createElement(Ae.Z,{span:4,className:"header-nav header-nav-right"}
1)),n().createElement(Oe.Z,null,n().createElement(y.Z,{direction:"vertical",style:{width:"100%"}},n().createElement(y.Z,{direction:"vertical",style:{width:"100%"},align:"center"},n().createElement(Ve.Z.Text,{type:"secondary"},Pr("Select a service","team-booking"))),n().createElement("div",{className:"tbk-schedule-selector-wrapper"},n().createElement(Oe.Z,{gutter:16},n().createElement(Ae.Z,{xs:24,sm:24,md:24,lg:24,xl:24,xxl:24},n().createElement(Ue.ZP,{grid:{gutter:16,xs:1,sm:1,md:1,lg:1,xl:1,xxl:1},dataSource:t.services.filter((e=>"unscheduled"===e.class)),renderItem:a=>{const r=t=>{(0,i.dC)((()=>{s(ee(a.id,e.instanceId)),s(ae(!0,e.instanceId))}))},l=A.getTotalPrice(a),o=l!==A.getBasePrice(a);return n().createElement(Ue.ZP.Item,{key:a.id},n().createElement(y.Z,{style:{width:"100%",justifyContent:"space-between"},align:"center",direction:"horizontal",className:"tbk-schedule-list-selector",onClick:r,onKeyDown:e=>{"Enter"===e.key&&r()},tabIndex:0},n().createElement(ha,{service:a,verticalAlign:"start",size:"small"===t.sizePreset?"small":"large",additionalMeta:o?n().createElement(g.Z,{status:"processing",text:Pr("Promo price!","team-booking")}):null}),Number(a?.data?.price)>0&&n().createElement("div",{className:"tbk-schedule-list-selector-price"},n().createElement(y.Z,null,n().createElement("div",{className:"tbk-title "+(o?"tbk-promo-price":"")},E(l,t.settings.currencyCode)),o&&n().createElement("div",{className:"tbk-title",style:{textDecoration:"line-through"}},E(Number(a?.data?.price),t.settings.currencyCode,{pattern:"#"}))),a?.data?.priceStarts&&n().createElement("div",{className:"tbk-description"},Pr("starts from","team-booking")))))}}))))))))}})()))};document.addEventListener("DOMContentLoaded",(()=>{document.addEventListener("TBK::ELEMENTOR::LOAD",(e=>{Or(e.detail)}))}));const Or=e=>{Me.replaceReducer(((e,t)=>{const a={};for(const[e,r]of Object.entries(t.getState()))"dummy"!==e&&(a[e]=Ce(r,e));return(0,Ze.UY)({...a,[e]:Ce(null,e)})})(e.parentElement.id,Me)),l().render(n().createElement(n().StrictMode,null,n().createElement(i.zt,{store:Me},n().createElement(Dr,{instanceId:e.parentElement.id}))),e)},Ar=new MutationObserver((function(e){e.forEach((function(e){e.addedNodes.forEach((function(e){if("tbk-inner-content"===e.className){const t=e.parentElement.id,a="team-booking-options";if(A.isCustomizer()){Me.dispatch(ue({...VSHM_SETTINGS,style:{...VSHM_SETTINGS.style,googleMapsStyle:wp.customize(`${a}[style][googleMapsStyle]`).get(),googleMapsZoom:wp.customize(`${a}[style][googleMapsZoom]`).get(),dotsThreshold:wp.customize(`${a}[style][dotsThreshold]`).get(),dotsLogic:wp.customize(`${a}[style][dotsLogic]`).get()}},t)),Ge.ZP.config({prefixCls:"tbk",theme:{primaryColor:wp.customize(`${a}[style][primaryColor]`).get(),infoColor:"#25b864",errorColor:"#f5222d",successColor:"#52c41a",warningColor:"#faad14"}});const e=document.documentElement;e.style.setProperty("--tbk-calendar-available-slot",wp.customize(`${a}[style][availableSlotColor]`).get()),e.style.setProperty("--tbk-calendar-soldout-slot",wp.customize(`${a}[style][soldoutSlotColor]`).get()),e.style.setProperty("--tbk-calendar-border-size",wp.customize(`${a}[style][widgetBorderWidth]`).get()+"px"),e.style.setProperty("--tbk-calendar-border-color",wp.customize(`${a}[style][widgetBorderColor]`).get()),e.style.setProperty("--tbk-main-background-color",wp.customize(`${a}[style][backgroundColor]`).get()),e.style.setProperty("--tbk-calendar-border-radius",wp.customize(`${a}[style][widgetBorderRadius]`).get()+"px");const r=A.getContrastText(wp.customize(`${a}[style][backgroundColor]`).get()).textComponents,n=A.getContrastText(wp.customize(`${a}[style][primaryColor]`).get()).textComponents;e.style.setProperty("--tbk-color-text",`rgb(${r})`),e.style.setProperty("--tbk-color-text-components",r),e.style.setProperty("--tbk-color-primary-bg-text",`rgb(${n})`),e.style.setProperty("--tbk-color-primary-bg-text-components",n)}Or(e)}}))}))}));if(A.isCustomizer()&&document.querySelectorAll(".tbk-frontend").forEach((e=>Ar.observe(e,{subtree:!1,childList:!0}))),A.isBlockEditor()){const e=()=>wp.data.select("core/block-editor").getBlocks();let t=e();wp.data.subscribe((()=>{const a=e(),r=a!==t;if(t=a,r)for(let e=0;e<t.length;e++)"tbk/widget"===t[e].name&&setTimeout((()=>
1{const a=t[e].attributes,r=document.querySelector("#block-"+t[e].clientId+" .tbk-frontend"),n=r?.id;n&&(Me.getState()[n]||(console.log("%cTBK::BLOCK_ADDED","color:yellow"),Or(r.querySelector(".tbk-inner-content"))),(0,i.dC)((()=>{a.restrictServices.length?Me.dispatch(ye(VSHM_FRONTEND_SERVICES.filter((e=>a.restrictServices.includes(e.id))),n)):Me.dispatch(ye(VSHM_FRONTEND_SERVICES,n)),a.restrictProviders.length?Me.dispatch(ge(VSHM_FRONTEND_PROVIDERS.filter((e=>A.arrayOfNum(a.restrictProviders).includes(e.id))),n)):Me.dispatch(ge(VSHM_FRONTEND_PROVIDERS,n)),"upcoming"===a.view?Me.dispatch(X("upcoming",{eventsNumber:a.upcomingEvents||4,chunkSize:a.upcomingEvents||4,maxEvents:a.upcomingLimit||0,showMore:a.showMore||!1},n)):"reservations"===a.view?Me.dispatch(X("reservations",{},n)):"unscheduled"===a.view?Me.dispatch(X("unscheduled",{},n)):Me.dispatch(X("calendar",{},n)),Me.dispatch(be(Me.getState()[n].calendar.displayDate,n))})))}),25)}))}(0,i.dC)((()=>{})),Ge.ZP.config({prefixCls:"tbk",theme:{primaryColor:VSHM_SETTINGS.style.primaryColor,infoColor:"#25b864",errorColor:"#f5222d",successColor:"#52c41a",warningColor:"#faad14"}});const zr=document.documentElement;zr.style.setProperty("--tbk-calendar-available-slot",VSHM_SETTINGS.style.availableSlotColor),zr.style.setProperty("--tbk-calendar-soldout-slot",VSHM_SETTINGS.style.soldoutSlotColor),zr.style.setProperty("--tbk-calendar-border-size",VSHM_SETTINGS.style.widgetBorderWidth+"px"),zr.style.setProperty("--tbk-calendar-border-color",VSHM_SETTINGS.style.widgetBorderColor),zr.style.setProperty("--tbk-calendar-border-radius",VSHM_SETTINGS.style.widgetBorderRadius+"px"),zr.style.setProperty("--tbk-main-background-color",VSHM_SETTINGS.style.backgroundColor);const Vr=A.getContrastText(VSHM_SETTINGS.style.backgroundColor).textComponents,Fr=A.getContrastText(VSHM_SETTINGS.style.primaryColor).textComponents;zr.style.setProperty("--tbk-color-text",`rgb(${Vr})`),zr.style.setProperty("--tbk-color-text-components",Vr),zr.style.setProperty("--tbk-color-primary-bg-text",`rgb(${Fr})`),zr.style.setProperty("--tbk-color-primary-bg-text-components",Fr),console.log("%cTBK::LOADED","color:green"),document.querySelectorAll(".tbk-frontend > .tbk-inner-content").forEach((e=>Or(e)))}},a={};function r(e){var n=a[e];if(void 0!==n)return n.exports;var s=a[e]={exports:{}};return t[e].call(s.exports,s,s.exports,r),s.exports}r.m=t,e=[],r.O=(t,a,n,s)=>{if(!a){var l=1/0;for(d=0;d<e.length;d++){for(var[a,n,s]=e[d],i=!0,o=0;o<a.length;o++)(!1&s||l>=s)&&Object.keys(r.O).every((e=>r.O[e](a[o])))?a.splice(o--,1):(i=!1,s<l&&(l=s));if(i){e.splice(d--,1);var c=n();void 0!==c&&(t=c)}}return t}s=s||0;for(var d=e.length;d>0&&e[d-1][2]>s;d--)e[d]=e[d-1];e[d]=[a,n,s]},r.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return r.d(t,{a:t}),t},r.d=(e,t)=>{for(var a in t)r.o(t,a)&&!r.o(e,a)&&Object.defineProperty(e,a,{enumerable:!0,get:t[a]})},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{var e={495:0};r.O.j=t=>0===e[t];var t=(t,a)=>{var n,s,[l,i,o]=a,c=0;if(l.some((t=>0!==e[t]))){for(n in i)r.o(i,n)&&(r.m[n]=i[n]);if(o)var d=o(r)}for(t&&t(a);c<l.length;c++)s=l[c],r.o(e,s)&&e[s]&&e[s][0](),e[s]=0;return r.O(d)},a=self.webpackChunkteam_booking=self.webpackChunkteam_booking||[];a.forEach(t.bind(null,0)),a.push=t.bind(null,a.push.bind(a))})();var n=r.O(void 0,[989],(()=>r(2224)));n=r.O(n)})();
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.