@influence-society-web/yuna-frontend 1.0.12 → 1.0.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -4,7 +4,7 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
4
4
  <span class='flatpickr-weekday'>
5
5
  `+b.join("</span><span class='flatpickr-weekday'>")+`
6
6
  </span>
7
- `}}function w(){e.calendarContainer.classList.add("hasWeeks");var f=Se("div","flatpickr-weekwrapper");f.appendChild(Se("span","flatpickr-weekday",e.l10n.weekAbbreviation));var b=Se("div","flatpickr-weeks");return f.appendChild(b),{weekWrapper:f,weekNumbers:b}}function _(f,b){b===void 0&&(b=!0);var M=b?f:f-e.currentMonth;M<0&&e._hidePrevMonthArrow===!0||M>0&&e._hideNextMonthArrow===!0||(e.currentMonth+=M,(e.currentMonth<0||e.currentMonth>11)&&(e.currentYear+=e.currentMonth>11?1:-1,e.currentMonth=(e.currentMonth+12)%12,Fe("onYearChange"),ae()),Y(),Fe("onMonthChange"),Eo())}function R(f,b){if(f===void 0&&(f=!0),b===void 0&&(b=!0),e.input.value="",e.altInput!==void 0&&(e.altInput.value=""),e.mobileInput!==void 0&&(e.mobileInput.value=""),e.selectedDates=[],e.latestSelectedDateObj=void 0,b===!0&&(e.currentYear=e._initialDate.getFullYear(),e.currentMonth=e._initialDate.getMonth()),e.config.enableTime===!0){var M=Ia(e.config),A=M.hours,q=M.minutes,Q=M.seconds;D(A,q,Q)}e.redraw(),f&&Fe("onChange")}function P(){e.isOpen=!1,e.isMobile||(e.calendarContainer!==void 0&&e.calendarContainer.classList.remove("open"),e._input!==void 0&&e._input.classList.remove("active")),Fe("onClose")}function j(){e.config!==void 0&&Fe("onDestroy");for(var f=e._handlers.length;f--;)e._handlers[f].remove();if(e._handlers=[],e.mobileInput)e.mobileInput.parentNode&&e.mobileInput.parentNode.removeChild(e.mobileInput),e.mobileInput=void 0;else if(e.calendarContainer&&e.calendarContainer.parentNode)if(e.config.static&&e.calendarContainer.parentNode){var b=e.calendarContainer.parentNode;if(b.lastChild&&b.removeChild(b.lastChild),b.parentNode){for(;b.firstChild;)b.parentNode.insertBefore(b.firstChild,b);b.parentNode.removeChild(b)}}else e.calendarContainer.parentNode.removeChild(e.calendarContainer);e.altInput&&(e.input.type="text",e.altInput.parentNode&&e.altInput.parentNode.removeChild(e.altInput),delete e.altInput),e.input&&(e.input.type=e.input._type,e.input.classList.remove("flatpickr-input"),e.input.removeAttribute("readonly")),["_showTimeInput","latestSelectedDateObj","_hideNextMonthArrow","_hidePrevMonthArrow","__hideNextMonthArrow","__hidePrevMonthArrow","isMobile","isOpen","selectedDateElem","minDateHasTime","maxDateHasTime","days","daysContainer","_input","_positionElement","innerContainer","rContainer","monthNav","todayDateElem","calendarContainer","weekdayContainer","prevMonthNav","nextMonthNav","monthsDropdownContainer","currentMonthElement","currentYearElement","navigationCurrentMonth","selectedDateElem","config"].forEach(function(M){try{delete e[M]}catch{}})}function O(f){return e.calendarContainer.contains(f)}function X(f){if(e.isOpen&&!e.config.inline){var b=jt(f),M=O(b),A=b===e.input||b===e.altInput||e.element.contains(b)||f.path&&f.path.indexOf&&(~f.path.indexOf(e.input)||~f.path.indexOf(e.altInput)),q=!A&&!M&&!O(f.relatedTarget),Q=!e.config.ignoredFocusElements.some(function(ye){return ye.contains(b)});q&&Q&&(e.config.allowInput&&e.setDate(e._input.value,!1,e.config.altInput?e.config.altFormat:e.config.dateFormat),e.timeContainer!==void 0&&e.minuteElement!==void 0&&e.hourElement!==void 0&&e.input.value!==""&&e.input.value!==void 0&&l(),e.close(),e.config&&e.config.mode==="range"&&e.selectedDates.length===1&&e.clear(!1))}}function re(f){if(!(!f||e.config.minDate&&f<e.config.minDate.getFullYear()||e.config.maxDate&&f>e.config.maxDate.getFullYear())){var b=f,M=e.currentYear!==b;e.currentYear=b||e.currentYear,e.config.maxDate&&e.currentYear===e.config.maxDate.getFullYear()?e.currentMonth=Math.min(e.config.maxDate.getMonth(),e.currentMonth):e.config.minDate&&e.currentYear===e.config.minDate.getFullYear()&&(e.currentMonth=Math.max(e.config.minDate.getMonth(),e.currentMonth)),M&&(e.redraw(),Fe("onYearChange"),ae())}}function Z(f,b){var M;b===void 0&&(b=!0);var A=e.parseDate(f,void 0,b);if(e.config.minDate&&A&&zt(A,e.config.minDate,b!==void 0?b:!e.minDateHasTime)<0||e.config.maxDate&&A&&zt(A,e.config.maxDate,b!==void 0?b:!e.maxDateHasTime)>0)return!1;if(!e.config.enable&&e.config.disable.length===0)return!0;if(A===void 0)return!1;for(var q=!!e.config.enable,Q=(M=e.config.enable)!==null&&M!==void 0?M:e.config.disable,ye=0,te=void 0;ye<Q.length;ye++){if(te=Q[ye],typeof te=="function"&&te(A))return q;if(te instanceof Date&&A!==void 0&&te.getTime()===A.getTime())return q;if(typeof te=="string"){var De=e.parseDate(te,void 0,!0);return De&&De.getTime()===A.getTime()?q:!q}else if(typeof te=="object"&&A!==void 0&&te.from&&te.to&&A.getTime()>=te.from.getTime()&&A.getTime()<=te.to.getTime())return q}return!q}function V(f){return e.daysContainer!==void 0?f.className.indexOf("hidden")===-1&&f.className.indexOf("flatpickr-disabled")===-1&&e.daysContainer.contains(f):!1}function ue(f){var b=f.target===e._input,M=e._input.value.trimEnd()!==ja();b&&M&&!(f.relatedTarget&&O(f.relatedTarget))&&e.setDate(e._input.value,!0,f.target===e.altInput?e.config.altFormat:e.config.dateFormat)}function pe(f){var b=jt(f),M=e.config.wrap?n.contains(b):b===e._input,A=e.config.allowInput,q=e.isOpen&&(!A||!M),Q=e.config.inline&&M&&!A;if(f.keyCode===13&&M){if(A)return e.setDate(e._input.value,!0,b===e.altInput?e.config.altFormat:e.config.dateFormat),e.close(),b.blur();e.open()}else if(O(b)||q||Q){var ye=!!e.timeContainer&&e.timeContainer.contains(b);switch(f.keyCode){case 13:ye?(f.preventDefault(),l(),Fa()):$c(f);break;case 27:f.preventDefault(),Fa();break;case 8:case 46:M&&!e.config.allowInput&&(f.preventDefault(),e.clear());break;case 37:case 39:if(!ye&&!M){f.preventDefault();var te=o();if(e.daysContainer!==void 0&&(A===!1||te&&V(te))){var De=f.keyCode===39?1:-1;f.ctrlKey?(f.stopPropagation(),_(De),B(Te(1),0)):B(void 0,De)}}else e.hourElement&&e.hourElement.focus();break;case 38:case 40:f.preventDefault();var ee=f.keyCode===40?1:-1;e.daysContainer&&b.$i!==void 0||b===e.input||b===e.altInput?f.ctrlKey?(f.stopPropagation(),re(e.currentYear-ee),B(Te(1),0)):ye||B(void 0,ee*7):b===e.currentYearElement?re(e.currentYear-ee):e.config.enableTime&&(!ye&&e.hourElement&&e.hourElement.focus(),l(f),e._debouncedChange());break;case 9:if(ye){var de=[e.hourElement,e.minuteElement,e.secondElement,e.amPM].concat(e.pluginElements).filter(function(Ut){return Ut}),xe=de.indexOf(b);if(xe!==-1){var dn=de[xe+(f.shiftKey?-1:1)];f.preventDefault(),(dn||e._input).focus()}}else!e.config.noCalendar&&e.daysContainer&&e.daysContainer.contains(b)&&f.shiftKey&&(f.preventDefault(),e._input.focus());break;default:break}}if(e.amPM!==void 0&&b===e.amPM)switch(f.key){case e.l10n.amPM[0].charAt(0):case e.l10n.amPM[0].charAt(0).toLowerCase():e.amPM.textContent=e.l10n.amPM[0],p(),En();break;case e.l10n.amPM[1].charAt(0):case e.l10n.amPM[1].charAt(0).toLowerCase():e.amPM.textContent=e.l10n.amPM[1],p(),En();break}(M||O(b))&&Fe("onKeyDown",f)}function we(f,b){if(b===void 0&&(b="flatpickr-day"),!(e.selectedDates.length!==1||f&&(!f.classList.contains(b)||f.classList.contains("flatpickr-disabled")))){for(var M=f?f.dateObj.getTime():e.days.firstElementChild.dateObj.getTime(),A=e.parseDate(e.selectedDates[0],void 0,!0).getTime(),q=Math.min(M,e.selectedDates[0].getTime()),Q=Math.max(M,e.selectedDates[0].getTime()),ye=!1,te=0,De=0,ee=q;ee<Q;ee+=Hd.DAY)Z(new Date(ee),!0)||(ye=ye||ee>q&&ee<Q,ee<A&&(!te||ee>te)?te=ee:ee>A&&(!De||ee<De)&&(De=ee));var de=Array.from(e.rContainer.querySelectorAll("*:nth-child(-n+"+e.config.showMonths+") > ."+b));de.forEach(function(xe){var dn=xe.dateObj,Ut=dn.getTime(),oi=te>0&&Ut<te||De>0&&Ut>De;if(oi){xe.classList.add("notAllowed"),["inRange","startRange","endRange"].forEach(function(Tr){xe.classList.remove(Tr)});return}else if(ye&&!oi)return;["startRange","inRange","endRange","notAllowed"].forEach(function(Tr){xe.classList.remove(Tr)}),f!==void 0&&(f.classList.add(M<=e.selectedDates[0].getTime()?"startRange":"endRange"),A<M&&Ut===A?xe.classList.add("startRange"):A>M&&Ut===A&&xe.classList.add("endRange"),Ut>=te&&(De===0||Ut<=De)&&Nd(Ut,A,M)&&xe.classList.add("inRange"))})}}function _e(){e.isOpen&&!e.config.static&&!e.config.inline&&Yn()}function Oe(f,b){if(b===void 0&&(b=e._positionElement),e.isMobile===!0){if(f){f.preventDefault();var M=jt(f);M&&M.blur()}e.mobileInput!==void 0&&(e.mobileInput.focus(),e.mobileInput.click()),Fe("onOpen");return}else if(e._input.disabled||e.config.inline)return;var A=e.isOpen;e.isOpen=!0,A||(e.calendarContainer.classList.add("open"),e._input.classList.add("active"),Fe("onOpen"),Yn(b)),e.config.enableTime===!0&&e.config.noCalendar===!0&&e.config.allowInput===!1&&(f===void 0||!e.timeContainer.contains(f.relatedTarget))&&setTimeout(function(){return e.hourElement.select()},50)}function Ve(f){return function(b){var M=e.config["_"+f+"Date"]=e.parseDate(b,e.config.dateFormat),A=e.config["_"+(f==="min"?"max":"min")+"Date"];M!==void 0&&(e[f==="min"?"minDateHasTime":"maxDateHasTime"]=M.getHours()>0||M.getMinutes()>0||M.getSeconds()>0),e.selectedDates&&(e.selectedDates=e.selectedDates.filter(function(q){return Z(q)}),!e.selectedDates.length&&f==="min"&&y(M),En()),e.daysContainer&&(wo(),M!==void 0?e.currentYearElement[f]=M.getFullYear().toString():e.currentYearElement.removeAttribute(f),e.currentYearElement.disabled=!!A&&M!==void 0&&A.getFullYear()===M.getFullYear())}}function ot(){var f=["wrap","weekNumbers","allowInput","allowInvalidPreload","clickOpens","time_24hr","enableTime","noCalendar","altInput","shorthandCurrentMonth","inline","static","enableSeconds","disableMobile"],b=ht(ht({},JSON.parse(JSON.stringify(n.dataset||{}))),t),M={};e.config.parseDate=b.parseDate,e.config.formatDate=b.formatDate,Object.defineProperty(e.config,"enable",{get:function(){return e.config._enable},set:function(de){e.config._enable=zc(de)}}),Object.defineProperty(e.config,"disable",{get:function(){return e.config._disable},set:function(de){e.config._disable=zc(de)}});var A=b.mode==="time";if(!b.dateFormat&&(b.enableTime||A)){var q=We.defaultConfig.dateFormat||ar.dateFormat;M.dateFormat=b.noCalendar||A?"H:i"+(b.enableSeconds?":S":""):q+" H:i"+(b.enableSeconds?":S":"")}if(b.altInput&&(b.enableTime||A)&&!b.altFormat){var Q=We.defaultConfig.altFormat||ar.altFormat;M.altFormat=b.noCalendar||A?"h:i"+(b.enableSeconds?":S K":" K"):Q+(" h:i"+(b.enableSeconds?":S":"")+" K")}Object.defineProperty(e.config,"minDate",{get:function(){return e.config._minDate},set:Ve("min")}),Object.defineProperty(e.config,"maxDate",{get:function(){return e.config._maxDate},set:Ve("max")});var ye=function(de){return function(xe){e.config[de==="min"?"_minTime":"_maxTime"]=e.parseDate(xe,"H:i:S")}};Object.defineProperty(e.config,"minTime",{get:function(){return e.config._minTime},set:ye("min")}),Object.defineProperty(e.config,"maxTime",{get:function(){return e.config._maxTime},set:ye("max")}),b.mode==="time"&&(e.config.noCalendar=!0,e.config.enableTime=!0),Object.assign(e.config,M,b);for(var te=0;te<f.length;te++)e.config[f[te]]=e.config[f[te]]===!0||e.config[f[te]]==="true";Ta.filter(function(de){return e.config[de]!==void 0}).forEach(function(de){e.config[de]=ka(e.config[de]||[]).map(a)}),e.isMobile=!e.config.disableMobile&&!e.config.inline&&e.config.mode==="single"&&!e.config.disable.length&&!e.config.enable&&!e.config.weekNumbers&&/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);for(var te=0;te<e.config.plugins.length;te++){var De=e.config.plugins[te](e)||{};for(var ee in De)Ta.indexOf(ee)>-1?e.config[ee]=ka(De[ee]).map(a).concat(e.config[ee]):typeof b[ee]>"u"&&(e.config[ee]=De[ee])}b.altInputClass||(e.config.altInputClass=Qt().className+" "+e.config.altInputClass),Fe("onParseConfig")}function Qt(){return e.config.wrap?n.querySelector("[data-input]"):n}function sr(){typeof e.config.locale!="object"&&typeof We.l10ns[e.config.locale]>"u"&&e.config.errorHandler(new Error("flatpickr: invalid locale "+e.config.locale)),e.l10n=ht(ht({},We.l10ns.default),typeof e.config.locale=="object"?e.config.locale:e.config.locale!=="default"?We.l10ns[e.config.locale]:void 0),Fn.D="("+e.l10n.weekdays.shorthand.join("|")+")",Fn.l="("+e.l10n.weekdays.longhand.join("|")+")",Fn.M="("+e.l10n.months.shorthand.join("|")+")",Fn.F="("+e.l10n.months.longhand.join("|")+")",Fn.K="("+e.l10n.amPM[0]+"|"+e.l10n.amPM[1]+"|"+e.l10n.amPM[0].toLowerCase()+"|"+e.l10n.amPM[1].toLowerCase()+")";var f=ht(ht({},t),JSON.parse(JSON.stringify(n.dataset||{})));f.time_24hr===void 0&&We.defaultConfig.time_24hr===void 0&&(e.config.time_24hr=e.l10n.time_24hr),e.formatDate=Bc(e),e.parseDate=Pa({config:e.config,l10n:e.l10n})}function Yn(f){if(typeof e.config.position=="function")return void e.config.position(e,f);if(e.calendarContainer!==void 0){Fe("onPreCalendarPosition");var b=f||e._positionElement,M=Array.prototype.reduce.call(e.calendarContainer.children,function(ch,lh){return ch+lh.offsetHeight},0),A=e.calendarContainer.offsetWidth,q=e.config.position.split(" "),Q=q[0],ye=q.length>1?q[1]:null,te=b.getBoundingClientRect(),De=window.innerHeight-te.bottom,ee=Q==="above"||Q!=="below"&&De<M&&te.top>M,de=window.pageYOffset+te.top+(ee?-M-2:b.offsetHeight+2);if(dt(e.calendarContainer,"arrowTop",!ee),dt(e.calendarContainer,"arrowBottom",ee),!e.config.inline){var xe=window.pageXOffset+te.left,dn=!1,Ut=!1;ye==="center"?(xe-=(A-te.width)/2,dn=!0):ye==="right"&&(xe-=A-te.width,Ut=!0),dt(e.calendarContainer,"arrowLeft",!dn&&!Ut),dt(e.calendarContainer,"arrowCenter",dn),dt(e.calendarContainer,"arrowRight",Ut);var oi=window.document.body.offsetWidth-(window.pageXOffset+te.right),Tr=xe+A>window.document.body.offsetWidth,th=oi+A>window.document.body.offsetWidth;if(dt(e.calendarContainer,"rightMost",Tr),!e.config.static)if(e.calendarContainer.style.top=de+"px",!Tr)e.calendarContainer.style.left=xe+"px",e.calendarContainer.style.right="auto";else if(!th)e.calendarContainer.style.left="auto",e.calendarContainer.style.right=oi+"px";else{var za=ii();if(za===void 0)return;var nh=window.document.body.offsetWidth,rh=Math.max(0,nh/2-A/2),ih=".flatpickr-calendar.centerMost:before",oh=".flatpickr-calendar.centerMost:after",ah=za.cssRules.length,sh="{left:"+te.left+"px;right:auto;}";dt(e.calendarContainer,"rightMost",!1),dt(e.calendarContainer,"centerMost",!0),za.insertRule(ih+","+oh+sh,ah),e.calendarContainer.style.left=rh+"px",e.calendarContainer.style.right="auto"}}}}function ii(){for(var f=null,b=0;b<document.styleSheets.length;b++){var M=document.styleSheets[b];if(M.cssRules){try{M.cssRules}catch{continue}f=M;break}}return f??bo()}function bo(){var f=document.createElement("style");return document.head.appendChild(f),f.sheet}function wo(){e.config.noCalendar||e.isMobile||(ae(),Eo(),Y())}function Fa(){e._input.focus(),window.navigator.userAgent.indexOf("MSIE")!==-1||navigator.msMaxTouchPoints!==void 0?setTimeout(e.close,0):e.close()}function $c(f){f.preventDefault(),f.stopPropagation();var b=function(de){return de.classList&&de.classList.contains("flatpickr-day")&&!de.classList.contains("flatpickr-disabled")&&!de.classList.contains("notAllowed")},M=Oc(jt(f),b);if(M!==void 0){var A=M,q=e.latestSelectedDateObj=new Date(A.dateObj.getTime()),Q=(q.getMonth()<e.currentMonth||q.getMonth()>e.currentMonth+e.config.showMonths-1)&&e.config.mode!=="range";if(e.selectedDateElem=A,e.config.mode==="single")e.selectedDates=[q];else if(e.config.mode==="multiple"){var ye=$a(q);ye?e.selectedDates.splice(parseInt(ye),1):e.selectedDates.push(q)}else e.config.mode==="range"&&(e.selectedDates.length===2&&e.clear(!1,!1),e.latestSelectedDateObj=q,e.selectedDates.push(q),zt(q,e.selectedDates[0],!0)!==0&&e.selectedDates.sort(function(de,xe){return de.getTime()-xe.getTime()}));if(p(),Q){var te=e.currentYear!==q.getFullYear();e.currentYear=q.getFullYear(),e.currentMonth=q.getMonth(),te&&(Fe("onYearChange"),ae()),Fe("onMonthChange")}if(Eo(),Y(),En(),!Q&&e.config.mode!=="range"&&e.config.showMonths===1?Ce(A):e.selectedDateElem!==void 0&&e.hourElement===void 0&&e.selectedDateElem&&e.selectedDateElem.focus(),e.hourElement!==void 0&&e.hourElement!==void 0&&e.hourElement.focus(),e.config.closeOnSelect){var De=e.config.mode==="single"&&!e.config.enableTime,ee=e.config.mode==="range"&&e.selectedDates.length===2&&!e.config.enableTime;(De||ee)&&Fa()}N()}}var Do={locale:[sr,E],showMonths:[H,s,v],minDate:[G],maxDate:[G],positionElement:[Uc],clickOpens:[function(){e.config.clickOpens===!0?(C(e._input,"focus",e.open),C(e._input,"click",e.open)):(e._input.removeEventListener("focus",e.open),e._input.removeEventListener("click",e.open))}]};function qd(f,b){if(f!==null&&typeof f=="object"){Object.assign(e.config,f);for(var M in f)Do[M]!==void 0&&Do[M].forEach(function(A){return A()})}else e.config[f]=b,Do[f]!==void 0?Do[f].forEach(function(A){return A()}):Ta.indexOf(f)>-1&&(e.config[f]=ka(b));e.redraw(),En(!0)}function jc(f,b){var M=[];if(f instanceof Array)M=f.map(function(A){return e.parseDate(A,b)});else if(f instanceof Date||typeof f=="number")M=[e.parseDate(f,b)];else if(typeof f=="string")switch(e.config.mode){case"single":case"time":M=[e.parseDate(f,b)];break;case"multiple":M=f.split(e.config.conjunction).map(function(A){return e.parseDate(A,b)});break;case"range":M=f.split(e.l10n.rangeSeparator).map(function(A){return e.parseDate(A,b)});break;default:break}else e.config.errorHandler(new Error("Invalid date supplied: "+JSON.stringify(f)));e.selectedDates=e.config.allowInvalidPreload?M:M.filter(function(A){return A instanceof Date&&Z(A,!1)}),e.config.mode==="range"&&e.selectedDates.sort(function(A,q){return A.getTime()-q.getTime()})}function Wd(f,b,M){if(b===void 0&&(b=!1),M===void 0&&(M=e.config.dateFormat),f!==0&&!f||f instanceof Array&&f.length===0)return e.clear(b);jc(f,M),e.latestSelectedDateObj=e.selectedDates[e.selectedDates.length-1],e.redraw(),G(void 0,b),y(),e.selectedDates.length===0&&e.clear(!1),En(b),b&&Fe("onChange")}function zc(f){return f.slice().map(function(b){return typeof b=="string"||typeof b=="number"||b instanceof Date?e.parseDate(b,void 0,!0):b&&typeof b=="object"&&b.from&&b.to?{from:e.parseDate(b.from,void 0),to:e.parseDate(b.to,void 0)}:b}).filter(function(b){return b})}function Gd(){e.selectedDates=[],e.now=e.parseDate(e.config.now)||new Date;var f=e.config.defaultDate||((e.input.nodeName==="INPUT"||e.input.nodeName==="TEXTAREA")&&e.input.placeholder&&e.input.value===e.input.placeholder?null:e.input.value);f&&jc(f,e.config.dateFormat),e._initialDate=e.selectedDates.length>0?e.selectedDates[0]:e.config.minDate&&e.config.minDate.getTime()>e.now.getTime()?e.config.minDate:e.config.maxDate&&e.config.maxDate.getTime()<e.now.getTime()?e.config.maxDate:e.now,e.currentYear=e._initialDate.getFullYear(),e.currentMonth=e._initialDate.getMonth(),e.selectedDates.length>0&&(e.latestSelectedDateObj=e.selectedDates[0]),e.config.minTime!==void 0&&(e.config.minTime=e.parseDate(e.config.minTime,"H:i")),e.config.maxTime!==void 0&&(e.config.maxTime=e.parseDate(e.config.maxTime,"H:i")),e.minDateHasTime=!!e.config.minDate&&(e.config.minDate.getHours()>0||e.config.minDate.getMinutes()>0||e.config.minDate.getSeconds()>0),e.maxDateHasTime=!!e.config.maxDate&&(e.config.maxDate.getHours()>0||e.config.maxDate.getMinutes()>0||e.config.maxDate.getSeconds()>0)}function Kd(){if(e.input=Qt(),!e.input){e.config.errorHandler(new Error("Invalid input element specified"));return}e.input._type=e.input.type,e.input.type="text",e.input.classList.add("flatpickr-input"),e._input=e.input,e.config.altInput&&(e.altInput=Se(e.input.nodeName,e.config.altInputClass),e._input=e.altInput,e.altInput.placeholder=e.input.placeholder,e.altInput.disabled=e.input.disabled,e.altInput.required=e.input.required,e.altInput.tabIndex=e.input.tabIndex,e.altInput.type="text",e.input.setAttribute("type","hidden"),!e.config.static&&e.input.parentNode&&e.input.parentNode.insertBefore(e.altInput,e.input.nextSibling)),e.config.allowInput||e._input.setAttribute("readonly","readonly"),Uc()}function Uc(){e._positionElement=e.config.positionElement||e._input}function Zd(){var f=e.config.enableTime?e.config.noCalendar?"time":"datetime-local":"date";e.mobileInput=Se("input",e.input.className+" flatpickr-mobile"),e.mobileInput.tabIndex=1,e.mobileInput.type=f,e.mobileInput.disabled=e.input.disabled,e.mobileInput.required=e.input.required,e.mobileInput.placeholder=e.input.placeholder,e.mobileFormatStr=f==="datetime-local"?"Y-m-d\\TH:i:S":f==="date"?"Y-m-d":"H:i:S",e.selectedDates.length>0&&(e.mobileInput.defaultValue=e.mobileInput.value=e.formatDate(e.selectedDates[0],e.mobileFormatStr)),e.config.minDate&&(e.mobileInput.min=e.formatDate(e.config.minDate,"Y-m-d")),e.config.maxDate&&(e.mobileInput.max=e.formatDate(e.config.maxDate,"Y-m-d")),e.input.getAttribute("step")&&(e.mobileInput.step=String(e.input.getAttribute("step"))),e.input.type="hidden",e.altInput!==void 0&&(e.altInput.type="hidden");try{e.input.parentNode&&e.input.parentNode.insertBefore(e.mobileInput,e.input.nextSibling)}catch{}C(e.mobileInput,"change",function(b){e.setDate(jt(b).value,!1,e.mobileFormatStr),Fe("onChange"),Fe("onClose")})}function Jd(f){if(e.isOpen===!0)return e.close();e.open(f)}function Fe(f,b){if(e.config!==void 0){var M=e.config[f];if(M!==void 0&&M.length>0)for(var A=0;M[A]&&A<M.length;A++)M[A](e.selectedDates,e.input.value,e,b);f==="onChange"&&(e.input.dispatchEvent(Ya("change")),e.input.dispatchEvent(Ya("input")))}}function Ya(f){var b=document.createEvent("Event");return b.initEvent(f,!0,!0),b}function $a(f){for(var b=0;b<e.selectedDates.length;b++){var M=e.selectedDates[b];if(M instanceof Date&&zt(M,f)===0)return""+b}return!1}function Xd(f){return e.config.mode!=="range"||e.selectedDates.length<2?!1:zt(f,e.selectedDates[0])>=0&&zt(f,e.selectedDates[1])<=0}function Eo(){e.config.noCalendar||e.isMobile||!e.monthNav||(e.yearElements.forEach(function(f,b){var M=new Date(e.currentYear,e.currentMonth,1);M.setMonth(e.currentMonth+b),e.config.showMonths>1||e.config.monthSelectorType==="static"?e.monthElements[b].textContent=vo(M.getMonth(),e.config.shorthandCurrentMonth,e.l10n)+" ":e.monthsDropdownContainer.value=M.getMonth().toString(),f.value=M.getFullYear().toString()}),e._hidePrevMonthArrow=e.config.minDate!==void 0&&(e.currentYear===e.config.minDate.getFullYear()?e.currentMonth<=e.config.minDate.getMonth():e.currentYear<e.config.minDate.getFullYear()),e._hideNextMonthArrow=e.config.maxDate!==void 0&&(e.currentYear===e.config.maxDate.getFullYear()?e.currentMonth+1>e.config.maxDate.getMonth():e.currentYear>e.config.maxDate.getFullYear()))}function ja(f){var b=f||(e.config.altInput?e.config.altFormat:e.config.dateFormat);return e.selectedDates.map(function(M){return e.formatDate(M,b)}).filter(function(M,A,q){return e.config.mode!=="range"||e.config.enableTime||q.indexOf(M)===A}).join(e.config.mode!=="range"?e.config.conjunction:e.l10n.rangeSeparator)}function En(f){f===void 0&&(f=!0),e.mobileInput!==void 0&&e.mobileFormatStr&&(e.mobileInput.value=e.latestSelectedDateObj!==void 0?e.formatDate(e.latestSelectedDateObj,e.mobileFormatStr):""),e.input.value=ja(e.config.dateFormat),e.altInput!==void 0&&(e.altInput.value=ja(e.config.altFormat)),f!==!1&&Fe("onValueUpdate")}function Qd(f){var b=jt(f),M=e.prevMonthNav.contains(b),A=e.nextMonthNav.contains(b);M||A?_(M?-1:1):e.yearElements.indexOf(b)>=0?b.select():b.classList.contains("arrowUp")?e.changeYear(e.currentYear+1):b.classList.contains("arrowDown")&&e.changeYear(e.currentYear-1)}function eh(f){f.preventDefault();var b=f.type==="keydown",M=jt(f),A=M;e.amPM!==void 0&&M===e.amPM&&(e.amPM.textContent=e.l10n.amPM[$t(e.amPM.textContent===e.l10n.amPM[0])]);var q=parseFloat(A.getAttribute("min")),Q=parseFloat(A.getAttribute("max")),ye=parseFloat(A.getAttribute("step")),te=parseInt(A.value,10),De=f.delta||(b?f.which===38?1:-1:0),ee=te+ye*De;if(typeof A.value<"u"&&A.value.length===2){var de=A===e.hourElement,xe=A===e.minuteElement;ee<q?(ee=Q+ee+$t(!de)+($t(de)&&$t(!e.amPM)),xe&&ne(void 0,-1,e.hourElement)):ee>Q&&(ee=A===e.hourElement?ee-Q-$t(!e.amPM):q,xe&&ne(void 0,1,e.hourElement)),e.amPM&&de&&(ye===1?ee+te===23:Math.abs(ee-te)>ye)&&(e.amPM.textContent=e.l10n.amPM[$t(e.amPM.textContent===e.l10n.amPM[0])]),A.value=ut(ee)}}return i(),e}function ri(n,t){for(var e=Array.prototype.slice.call(n).filter(function(a){return a instanceof HTMLElement}),r=[],i=0;i<e.length;i++){var o=e[i];try{if(o.getAttribute("data-fp-omit")!==null)continue;o._flatpickr!==void 0&&(o._flatpickr.destroy(),o._flatpickr=void 0),o._flatpickr=Wm(o,t||{}),r.push(o._flatpickr)}catch(a){console.error(a)}}return r.length===1?r[0]:r}typeof HTMLElement<"u"&&typeof HTMLCollection<"u"&&typeof NodeList<"u"&&(HTMLCollection.prototype.flatpickr=NodeList.prototype.flatpickr=function(n){return ri(this,n)},HTMLElement.prototype.flatpickr=function(n){return ri([this],n)});var We=function(n,t){return typeof n=="string"?ri(window.document.querySelectorAll(n),t):n instanceof Node?ri([n],t):ri(n,t)};We.defaultConfig={};We.l10ns={en:ht({},Ca),default:ht({},Ca)};We.localize=function(n){We.l10ns.default=ht(ht({},We.l10ns.default),n)};We.setDefaults=function(n){We.defaultConfig=ht(ht({},We.defaultConfig),n)};We.parseDate=Pa({});We.formatDate=Bc({});We.compareDates=zt;typeof jQuery<"u"&&typeof jQuery.fn<"u"&&(jQuery.fn.flatpickr=function(n){return ri(this,n)});Date.prototype.fp_incr=function(n){return new Date(this.getFullYear(),this.getMonth(),this.getDate()+(typeof n=="string"?parseInt(n,10):n))};typeof window<"u"&&(window.flatpickr=We);var Fd=We;var xa=class{constructor(t,e){this.dateInputEl=t;L(this,"minDate");L(this,"maxDate");L(this,"defaultReservationDays");L(this,"hasPrices",!1);L(this,"prices",{});L(this,"availability",{});L(this,"disabledDates",[]);L(this,"selectedStartDate");L(this,"selectedEndDate");L(this,"config");L(this,"instance");L(this,"destroyInstance");L(this,"currentDate");L(this,"handleResize",()=>{let t=this.isMobileDevice();(t&&this.config.grid!==1||!t&&this.config.grid!==2)&&(this.config.grid=t?1:2,this.config.calendars=t?1:2,this.destroyInstance&&this.destroyInstance(),this.initialize())});this.isMobileDevice()&&(e.grid=1,e.calendars=1),this.dateInputEl=t,this.defaultReservationDays=e.defaultReservationDays??3;let r=e.startWithEmptyDates??!1;this.config={...e,type:e.type,showPrices:e.showPrices??!1,defaultReservationDays:this.defaultReservationDays,grid:e.grid??2,calendars:e.calendars??2,darkMode:e.darkMode??!0,tooltip:e.tooltip??!0,repick:e.repick??!1,minDays:e.minDays??1,defaultStartDate:e.defaultStartDate??J.getCurrentDate(),defaultEndDate:e.defaultEndDate??J.getCurrentDate(),startWithEmptyDates:r},this.currentDate=J.getCurrentDate(),this.selectedStartDate=r?null:this.config.defaultStartDate,this.selectedEndDate=r?null:this.config.defaultEndDate}isMobileDevice(){return window.innerWidth<=768}initialize(){switch(window.addEventListener("resize",this.handleResize),this.config.type){case"easepick":this.initEasepickCalendar();break;case"flatpickr":this.initFlatpickrCalendar();break;default:throw new Error(`Unsupported calendar type: ${this.config.type}`)}}setMinimumDate(t){this.minDate=t}setMaximumDate(t){this.maxDate=t}setStartDate(t){let e=J.toJSDate(t),r=this.selectedEndDate?J.toJSDate(this.selectedEndDate):e;this.selectedStartDate=t,this.instance instanceof Ma.Core?this.instance.setStartDate(new ge(t.toString())):this.config.type==="flatpickr"&&this.instance.setDate([e,r],!0)}setEndDate(t){let e=this.selectedStartDate?J.toJSDate(this.selectedStartDate):J.toJSDate(t),r=J.toJSDate(t);this.selectedEndDate=t,this.instance instanceof Ma.Core?this.instance.setEndDate(new ge(t.toString())):this.config.type==="flatpickr"&&this.instance.setDate([e,r],!0)}setDateRange(t,e){if(this.config.type==="flatpickr"){this.selectedStartDate=t,this.selectedEndDate=e;let r=J.toJSDate(t),i=J.toJSDate(e);this.instance.setDate([r,i],!0);return}this.setStartDate(t),this.setEndDate(e)}getSelectedDates(){return{startDate:this.selectedStartDate,endDate:this.selectedEndDate}}includePrices(t=!0){this.hasPrices=t}setPrices(t){this.prices=t}setAvailability(t){this.availability=t,this.disabledDates=Object.keys(t).filter(e=>!t[e])}initEasepickCalendar(){let t={tooltip:this.config.tooltip,repick:this.config.repick,tooltipNumber:i=>i-1,locale:{one:"nuit",other:"nuits"}};this.config.startWithEmptyDates||(t.startDate=new ge(this.config.defaultStartDate.toString()),t.endDate=new ge(this.config.defaultEndDate.toString()));let e={element:this.dateInputEl,css:["https://cdn.jsdelivr.net/npm/@easepick/bundle@1.2.1/dist/index.css"],zIndex:10,format:Ku,grid:this.config.grid,calendars:this.config.calendars,header:"",lang:document.documentElement.lang,RangePlugin:t,LockPlugin:{minDate:new ge(this.minDate.toString()),minDays:this.config.minDays,selectForward:!0},AmpPlugin:{darkMode:this.config.darkMode},plugins:[_a,Ea,Da],setup:i=>{i.on("view",o=>{let{view:a,date:s,target:l}=o.detail,u=s?s.format("YYYY-MM-DD"):null;if(a==="CalendarDay"&&u&&this.prices[u]){let h=this.prices[u],p=l.querySelector(`.${ua}`)||document.createElement("span");p.className=ua,p.textContent=`${h.toLocaleString(qe,{style:"currency",currency:"EUR",maximumFractionDigits:0})}`,p.style.color="#c64509",p.style.fontWeight="bold",p.style.fontSize="10px",l.append(p)}}),i.on("select",o=>{let{start:a,end:s}=o.detail;this.selectedStartDate=J.fromString(a.format("YYYY-MM-DD")),this.selectedEndDate=J.fromString(s.format("YYYY-MM-DD"));let l={startDate:a.format("YYYY-MM-DD").toString(),endDate:s.format("YYYY-MM-DD").toString()};it("date:changed",l)})}},r=new Ma.create(e);this.instance=r,this.destroyInstance=()=>r.destroy()}initFlatpickrCalendar(){let t=document.createElement("link");t.rel="stylesheet",t.href="https://cdn.jsdelivr.net/npm/flatpickr/dist/flatpickr.css",document.head.appendChild(t);let e={mode:"range",showMonths:this.config.calendars,minDate:this.minDate.toString(),shorthandCurrentMonth:!0,monthSelectorType:"static",inline:!1,dateFormat:Zu,lang:document.documentElement.lang,zIndex:10,disable:this.disabledDates};this.config.startWithEmptyDates||(e.defaultDate=[this.config.defaultStartDate.toString(),this.config.defaultEndDate.toString()]),Object.assign(e,{onChange:i=>{let o=K("label",this.dateInputEl);if(i.length===2){this.selectedStartDate=J.fromJSDate(i[0]),this.selectedEndDate=J.fromJSDate(i[1]);let a={startDate:this.selectedStartDate.toString(),endDate:this.selectedEndDate.toString()};if(it("date:changed",a),o){let s=this.formatDate(i[0]),l=this.formatDate(i[1]);o.textContent=`${s} - ${l}`}}else this.selectedStartDate=null,this.selectedEndDate=null,it("date:changed",{startDate:"",endDate:""}),o&&(o.textContent="")},onDayCreate:async(i,o,a,s)=>{let l=s.dateObj,u=J.fromJSDate(l),h=J.formatForAPI(u);if(this.prices[h]){let p=this.prices[h],y=document.createElement("span");y.style.marginTop="2px",y.style.color="#c64509",y.style.fontSize="10px",y.style.fontWeight="bold",y.className=ua,y.textContent=`${p.toLocaleString(qe,{style:"currency",currency:"EUR",maximumFractionDigits:0})}`,s.style.display="flex",s.style.flexDirection="column",s.style.alignItems="center",s.style.justifyContent="center",s.style.lineHeight="1.1",s.appendChild(y)}}});let r=Fd(this.dateInputEl,e);this.instance=r,this.destroyInstance=()=>r.destroy()}clear(){this.selectedStartDate=null,this.selectedEndDate=null,this.config.type==="flatpickr"&&this.instance.clear?.()}destroy(){window.removeEventListener("resize",this.handleResize),this.destroyInstance&&this.destroyInstance()}formatDate(t){let e=J.fromJSDate(t),r=e.year,i=String(e.month).padStart(2,"0"),o=String(e.day).padStart(2,"0");return qe==="en-US"?`${r}/${i}/${o}`:qe==="fr-FR"||qe==="de-DE"?`${o}/${i}/${r}`:`${r}/${i}/${o}`}};var Aa=class{constructor(t){this.parentComponent=t;L(this,"element");L(this,"nightsCountElement");L(this,"startDateElement");L(this,"endDateElement");L(this,"dateElement");L(this,"roomsWrapperElement");L(this,"roomElementTemplate");L(this,"addRoomElement");L(this,"rooms",[]);L(this,"includePrices",Ju);L(this,"populateCalendarInput",async()=>{if(!this.dateElement){console.error("Date element not found");return}let t=new xa(this.dateElement,{type:"flatpickr",showPrices:!0,defaultReservationDays:3,grid:2,calendars:2,darkMode:!1,tooltip:!0,repick:!1,minDays:1,defaultStartDate:F.startDate||Qr,defaultEndDate:F.endDate||uo});if(t.setMinimumDate(Qr),t.setMaximumDate(uo),t.includePrices(this.includePrices),this.includePrices){let e=await Ad([this.parentComponent.apartmentProperties.enterpriseId]);t.setPrices(e)}return t.initialize(),t});nr("date:changed",e=>{F.updateStartDate(J.fromString(e.startDate)),F.updateEndDate(J.fromString(e.endDate))}),this.element=K("details-box"),this.nightsCountElement=K("nights",this.element),this.startDateElement=K("start-date",this.element),this.endDateElement=K("end-date",this.element),this.dateElement=K("date-element",this.element),this.roomsWrapperElement=K("room-box-wrapper",this.element),this.roomElementTemplate=K("room-box",this.element),this.addRoomElement=K("add-room-button",this.element)}init(){console.log("Initialize DetailsSection"),this.updateDOM(),this.populateCalendarInput()}updateDOM(){It(()=>{this.startDateElement.textContent=F.startDate?J.formatForDisplay(F.startDate):"?"}),It(()=>{this.endDateElement.textContent=F.endDate?J.formatForDisplay(F.endDate):"?"}),It(()=>{this.nightsCountElement.textContent=`${F.nightsCount} ${Be("night").toLowerCase()}${F.nightsCount>1?"s":""}`}),It(()=>{let t=document.createDocumentFragment();F.rooms.forEach((r,i)=>{let o=lt(this.roomElementTemplate,!0),a=K("room",o);a.textContent=`${Be("apartment")} ${i+1}`;let s=K("categories-wrapper",o),l=K("age-category",s),u=document.createDocumentFragment();r.forEach(h=>{let p=lt(l,!0),y=K("category-name",p);y.textContent=h.name;let D=K("input",p);po(D,h.value.toString()),xt(p,"click",T=>{T.preventDefault();let C=i;switch(ed(T.target)){case"decrement":if(h.isAdult){if(r.filter($=>$.isAdult).reduce(($,G)=>$+G.value,0)>1&&h.value>0){let $=F.rooms.map((G,W)=>W===C?G.map(ne=>ne.ageCategoryId===h.ageCategoryId?{...ne,value:ne.value-1}:{...ne}):G);F.updateRooms($)}}else if(h.value>0){let N=F.rooms.map(($,G)=>G===C?$.map(W=>W.ageCategoryId===h.ageCategoryId?{...W,value:W.value-1}:{...W}):$);F.updateRooms(N)}break;case"increment":if(this.computations(r).hasCapacity){let N=F.rooms.map(($,G)=>G===C?$.map(W=>W.ageCategoryId===h.ageCategoryId?{...W,value:W.value+1}:{...W}):$);F.updateRooms(N)}break}},{once:!1}),u.appendChild(p)}),s.innerHTML="",s.appendChild(u),t.appendChild(o)}),this.roomsWrapperElement.innerHTML="",this.roomsWrapperElement.appendChild(t);let{maxAllowedRooms:e}={maxAllowedRooms:F.maxAllowedRooms};console.log(`<<debug>> Current rooms: ${F.rooms.length}, Max allowed rooms: ${e}, Available rooms: ${this.parentComponent.apartmentProperties.availableRooms}`),e>0&&F.rooms.length>=e?(console.log(`<<debug>> Hiding add room button: current rooms ${F.rooms.length} >= max allowed ${e}`),this.addRoomElement.classList.add("hide")):e<=0?(console.log(`<<debug>> Max allowed rooms is non-positive (${e}), using available rooms ${this.parentComponent.apartmentProperties.availableRooms} as limit`),F.rooms.length>=this.parentComponent.apartmentProperties.availableRooms&&(console.log(`<<debug>> Hiding add room button: current rooms ${F.rooms.length} >= available rooms ${this.parentComponent.apartmentProperties.availableRooms}`),this.addRoomElement.classList.add("hide"))):(console.log(`<<debug>> Showing add room button: current rooms ${F.rooms.length} < max allowed or available rooms`),this.addRoomElement.classList.remove("hide"))}),xt(this.addRoomElement,"click",t=>{t.preventDefault();let{maxAllowedRooms:e}={maxAllowedRooms:F.maxAllowedRooms};if(F.rooms.length<e){let i=F.ageCategories.map(a=>{let s=a.classification.toLowerCase()==="adult",l=s?Be("adults"):Be("children"),u=s?1:0;return{isAdult:s,ageCategoryId:a.id,name:l,value:u}}),o=[...F.rooms,i];F.updateRooms(o)}})}toggleVisibility(t=!0){this.element.classList.toggle("hide",!t)}computations(t){let e=t.some(a=>a.value>0),r=t.reduce((a,s)=>a+s.value,0),i=r<this.parentComponent.apartmentProperties.capacity,o=t.filter(a=>a.isAdult).reduce((a,s)=>a+s.value,0);return{hasOccupants:e,totalOccupants:r,hasCapacity:i,totalAdults:o}}};var Yd=(n,t)=>{let e={method:"POST",headers:ce.headers,body:JSON.stringify(t)};return Xe("/images/getUrls",e,n)};function $d(n){return n.ImageUrls.map(t=>({url:t.Url,imageId:t.ImageId}))}var Fc=Ze({}),jd={width:160,height:160};async function zd(n,t){if(t.every(i=>Fc.value[i]))return t.map(i=>Fc.value[i]).flat();let e=await Yd(n,{Images:t.map(i=>({ImageId:i,Width:jd.width,Height:jd.height,ResizeMode:"Cover"}))}),r=$d(e);return r.forEach(i=>{Fc.value[i.imageId]=i}),r}var La=class{constructor(t){this.parentComponent=t;L(this,"element");L(this,"productsWrapperElement");L(this,"productTemplateElement");L(this,"showMoreButtonElement");this.element=K("options-box"),this.productsWrapperElement=K("options-list",this.element),this.productTemplateElement=K("option-wrapper",this.element),this.showMoreButtonElement=K("more-button",this.element)}init(){try{this.updateDOM()}catch(t){console.error("Error initializing OptionsSection:",t)}}refresh(){try{}catch(t){console.error("Error refreshing OptionsSection:",t)}}toggleVisibility(t=!0){this.element.classList.toggle("hide",!t)}updateDOM(){let t=document.createDocumentFragment();[...F.products].sort((r,i)=>{if(r.ordering!==i.ordering)return(r.ordering??0)-(i.ordering??0);let o=r.name,a=i.name;return o<a?-1:o>a?1:(r.ordering===i.ordering,0)}).forEach((r,i)=>{let o=lt(this.productTemplateElement,!0);o.removeAttribute("id");let a=K("name",o);a.textContent=r.name||"";let s=K("price",o);s.textContent=r.price.toLocaleString(qe,{style:"currency",currency:"EUR"});let l=K("label",o);l.textContent=Be(`chargingMode:${r.chargingMode}`),zd(this.parentComponent.apartmentProperties.enterpriseId,r.imageIds).then(h=>{let p=K("image",o);p.src=h[0].url});let u=K("checkbox",o);xt(u,"change",()=>{let h=mo(u),p=F.products.map(y=>y.id===r.id?{...y,selected:h==="true"}:y);F.updateProducts(p)}),o.classList.toggle("hide",i>3),t.appendChild(o)}),Ic(this.productsWrapperElement),this.productsWrapperElement.appendChild(t),xt(this.showMoreButtonElement,"click",()=>{let r=this.showMoreProducts(3);this.showMoreButtonElement.classList.toggle("hide",!r)})}showMoreProducts(t=4){let e=this.productsWrapperElement.querySelectorAll(`${Qu(this.productTemplateElement)}.hide`);return e.forEach((r,i)=>{i<t&&r.classList.toggle("hide",!1)}),e.length>t}};var Ud=(n,t)=>{let e=`${ce.bookingEngine_url}/reservationGroups/create`,r={method:"POST",headers:ce.headers,body:JSON.stringify(t)};return fetch(e,r).then(o=>o.json())};var Na=class{constructor(t){this.parentComponent=t;L(this,"element");L(this,"modalContent");L(this,"modalBg");L(this,"openModalBtn");L(this,"closeModalBtn");L(this,"fNameInput");L(this,"lNameInput");L(this,"emailInput");L(this,"phoneInput");L(this,"countryInput");L(this,"notesInput");L(this,"submitPaymentBtn");L(this,"customer",null);this.element=K("payment-modal"),this.modalContent=K("modal-content",this.element),this.modalBg=K("modal-bg",this.element),this.openModalBtn=K("open-modal"),this.closeModalBtn=K("close-modal"),this.fNameInput=K("fname-input",this.element),this.lNameInput=K("lname-input",this.element),this.emailInput=K("email-input",this.element),this.phoneInput=K("phone-input",this.element),this.countryInput=K("country-input",this.element),this.notesInput=K("notes-input",this.element),this.submitPaymentBtn=K("submit-payment",this.element)}init(){console.log("Initialize PaymentModal"),this.updateDOM()}updateDOM(){xt(this.openModalBtn,"click",()=>{this.toggleVisibility(!0),this.element.scrollIntoView({behavior:"smooth"})}),this.submitPaymentBtn?xt(this.submitPaymentBtn,"click",t=>{t.preventDefault(),this.handleSubmit()}):console.error("Submit Payment button not found in the DOM.")}toggleVisibility(t=!0){this.element.classList.toggle("hide",!t),t?(this.element.style.display="flex",this.element.style.opacity="1",this.modalContent.style.opacity="1",this.element.querySelectorAll("div").forEach(e=>{e.style.opacity="1"})):(this.element.style.opacity="0",this.element.style.display="none")}validateInputs(){if(!this.fNameInput.value||!this.lNameInput.value||!this.emailInput.value||!this.phoneInput.value||!this.countryInput.value)throw new Error("First name, last name, email, phone, and nationality are required.");if(!this.emailInput.checkValidity())throw new Error("Invalid email format.");if(!this.phoneInput.checkValidity())throw new Error("Invalid phone number format. Only numbers and spaces are allowed.");if(!this.countryInput.value)throw new Error("Country is required.")}async handleSubmit(){if(!F.startDate||!F.endDate)throw new Error("Start date and end date are required to submit the payment form.");try{this.validateInputs()}catch(s){console.error("Validation error:",s),alert(s instanceof Error?s.message:"An unexpected error occurred.");return}let{startDate:t,endDate:e}={startDate:F.startDate,endDate:F.endDate};this.customer={Email:this.emailInput.value,FirstName:this.fNameInput.value,LastName:this.lNameInput.value,Telephone:this.phoneInput.value,NationalityCode:this.countryInput.value,SendMarketingEmails:!1};let r={Client:ce.bookingEngineClient,HotelId:this.parentComponent.apartmentProperties.enterpriseId,Customer:this.customer,Reservations:F.rooms.map(s=>({RoomCategoryId:this.parentComponent.apartmentProperties.categoryId,StartUtc:J.formatForAPI(t.toString()),EndUtc:J.formatForAPI(e.toString()),VoucherCode:F.couponCode||void 0,RateId:F.selectedRateId||"",AdultCount:s.filter(l=>l.isAdult).reduce((l,u)=>l+u.value,0),ChildCount:s.filter(l=>!l.isAdult).reduce((l,u)=>l+u.value,0),ProductIds:F.selectedProducts.map(l=>l.id),Notes:this.notesInput.value||""}))};console.log("Payload for reservation group:",r);let i=JSON.stringify(r,null,2);console.log("JSON Payload:",i);let o=this.submitPaymentBtn.textContent?.trim()??Be("proceedToPayment");this.submitPaymentBtn.textContent=Be("completePayment"),this.submitPaymentBtn.classList.add("is-disabled");let a=await Ud(this.parentComponent.apartmentProperties.enterpriseId,r);if(console.log("Reservation Response:",a),"PaymentRequestId"in a&&a.PaymentRequestId){let s=new URL(window.location.href);s.pathname="/reservation-confirmee";let l=`https://app.mews.com/navigator/payment-requests/detail/${a.PaymentRequestId}?returnUrl=${btoa(s.toString())}`;console.log("Payment URL:",l),window.open(l,"_blank")}else if("Id"in a&&a.Id){console.log("Free reservation created successfully:",a);let s=new URL(window.location.href);s.pathname="/reservation-confirmee",s.searchParams.set("reservationId",a.Id),console.log("Confirmation URL:",s.toString()),window.location.href=s.toString()}else{this.submitPaymentBtn.classList.remove("is-disabled"),this.submitPaymentBtn.textContent=o;let s="Message"in a&&a.Message?a.Message:"Reservation could not be created. Please try again later or contact Support.";console.error("Reservation creation failed:",a),alert(s);return}}};var Vd=(n,t)=>{let e=`${ce.bookingEngine_url}/vouchers/validate`,r={method:"POST",headers:ce.headers,body:JSON.stringify(t)};return Bn(e,r,n)};var Oa=class{constructor(t){this.parentComponent=t;L(this,"element");L(this,"summaryItemWrapperElement");L(this,"summaryItemElement");L(this,"itemNameTemplateElement");L(this,"itemRowTemplateElement");L(this,"totalPriceElement");L(this,"taxElement");L(this,"submitElement");L(this,"couponInputElement");L(this,"couponApplyElement");L(this,"statusTextElement");nr("loading:start",e=>rr(!0,e)),nr("loading:end",e=>rr(!1,e)),this.element=K("summary-box"),this.summaryItemWrapperElement=K("summary-items-wrapper",this.element),this.summaryItemElement=K("summary-item",this.summaryItemWrapperElement),this.itemNameTemplateElement=K("name",this.summaryItemElement),this.itemRowTemplateElement=K("row",this.summaryItemElement),this.totalPriceElement=K("total",this.element),this.taxElement=K("tax",this.element),this.submitElement=K("submit",this.element),this.couponInputElement=K("coupon-input",this.element),this.couponApplyElement=K("apply-coupon",this.element),this.statusTextElement=K("status-text",this.element)}init(){this.updateDOM(),it("loading:end",this.element)}refresh(){it("loading:end",this.element)}toggleVisibility(t=!0){this.element.classList.toggle("hide",!t),Array.from(this.element.children).forEach(e=>{e instanceof HTMLDivElement&&e.classList.toggle("hide",!t)})}updateDOM(){xt(this.couponInputElement,"input",()=>{F.updateCouponCode(mo(this.couponInputElement))}),xt(this.couponApplyElement,"click",async t=>{t.preventDefault(),it("loading:start",this.element),Vd(this.parentComponent.apartmentProperties.enterpriseId,{Client:ce.bookingEngineClient,HotelId:this.parentComponent.apartmentProperties.enterpriseId,VoucherCode:F.couponCode}).then(async e=>{let{IsValid:r}=e;if(this.statusTextElement.textContent=r?Be("couponValid"):Be("couponInvalid"),this.statusTextElement.style.color=r?"#1bcb00":"#f44900",r)try{it("loading:start",this.element),await this.parentComponent.fetchReservationPricing(),console.log("Reservation pricing updated with voucher code")}catch(i){console.error("Error updating reservation pricing with voucher code:",i),this.statusTextElement.textContent=Be("couponError"),this.statusTextElement.style.color="#f44900"}}).catch(e=>{console.error("Error validating coupon:",e),this.statusTextElement.textContent=Be("couponError"),this.statusTextElement.style.color="#f44900"}).finally(()=>{it("loading:end",this.element),this.statusTextElement.classList.toggle("hide",!1)})}),It(()=>{this.couponInputElement.value!==F.couponCode&&po(this.couponInputElement,F.couponCode);let e=F.getReadonlyState().computed.summary;if(F.isFetching){rr(!0,this.element);return}rr(!1,this.element),this.summaryItemWrapperElement.innerHTML="",e.items.forEach(i=>{let o=this.summaryItemElement.cloneNode(!0),a=K("name",o),s=K("row",o),l=document.createDocumentFragment(),u=i.occupancy.adults||0,h=i.occupancy.children||0,p=lt(a,!0);p.textContent=`[${u} ${Be("adults").toLowerCase()}${h>0?`, ${h} ${Be("children").toLowerCase()}`:""}] x ${i.quantity}`,l.appendChild(p);let y=lt(a,!0);y.textContent=`@ ${i.pricing.avgPerNight.toLocaleString(qe,{style:"currency",currency:"EUR"})}/ ${Be("night")}`,l.appendChild(y);let D=lt(s,!0),T=K("label",D),C=K("price",D);if(T.textContent=`service (${F.nightsCount} ${Be("night").toLowerCase()}${F.nightsCount>1?"s":""}):`,C.textContent=i.pricing.service.toLocaleString?.(qe,{style:"currency",currency:"EUR"})??null,l.appendChild(D),F.selectedProducts.length>0){let se=lt(s,!0),B=K("label",se);K("price",se).remove();let Y=F.selectedProducts.map(ae=>ae.name).join(", ");B.textContent=`Products: ${Y}`,l.appendChild(se)}let N=lt(s,!0),$=K("label",N);$.textContent="Products & Extras:";let G=K("price",N);G.textContent=i.pricing.products.toLocaleString(qe,{style:"currency",currency:"EUR"}),l.appendChild(N);let W=lt(s,!0),ne=K("label",W);ne.textContent="Taxes:";let le=K("price",W);le.textContent=i.pricing.taxes.toLocaleString(qe,{style:"currency",currency:"EUR"}),l.appendChild(W);let oe=lt(s,!0),Ce=K("label",oe);Ce.textContent="Subtotal:";let Te=K("price",oe);Te.textContent=i.pricing.subtotal.toLocaleString(qe,{style:"currency",currency:"EUR"}),l.appendChild(oe),o.innerHTML="",o.appendChild(l),this.summaryItemWrapperElement.appendChild(o)});let r=e.totals.taxes||0;this.taxElement.textContent=r>0?r.toLocaleString(qe,{style:"currency",currency:"EUR"}):"--",this.totalPriceElement.textContent=e.totals.grandTotal.toLocaleString(qe,{style:"currency",currency:"EUR"})})}};var Ha=class{constructor(t){this.parentComponent=t;L(this,"element");L(this,"tariffsWrapperElement");L(this,"tariffTemplateElement");this.element=K("offer-box"),this.tariffsWrapperElement=K("offers-list",this.element),this.tariffTemplateElement=K("offer-wrapper",this.element)}init(){this.updateDOM()}refresh(){}toggleVisibility(t=!0){this.element.classList.toggle("hide",!t)}updateDOM(){It(()=>{if(F.isFetching){console.log("[TariffsSection] Skipping render during fetch operation");return}if(F.computedRates.length===0){console.log("[TariffsSection] No computed rates available, skipping render");return}console.log("[TariffsSection] Rendering tariffs:",{ratesCount:F.computedRates.length,isFetching:F.isFetching});let t=document.createDocumentFragment();F.computedRates.sort((r,i)=>{let o=r.price?.AverageAmountPerTimeUnit?.GrossValue||0,a=i.price?.AverageAmountPerTimeUnit?.GrossValue||0;return o-a}).forEach(r=>{let i=lt(this.tariffTemplateElement,!0);i.removeAttribute("id");let o=K("name",i);o.textContent=r.name;let a=K("description",i);a.textContent=r.description;let s=K("price",i),l=r.price?.AverageAmountPerTimeUnit?.GrossValue||0;s.textContent=l.toLocaleString(qe,{style:"currency",currency:"EUR"});let u=F.rates.find(T=>T.id===r.id),h=K("label",i),p=K("discount-badge",i),y=K("discount-label",p);if(u)if(h.textContent=u.shortName,u.pricing?.DependentRatePricing){let T=u.pricing?.DependentRatePricing.RelativeAdjustment*100;T===0?p.classList.add("hide"):y.textContent=`${T>0?"+":""}${T}%`}else p.classList.add("hide");else h.classList.add("hide"),p.classList.add("hide");let D=K("radio-input",i);D.value=r.id,r.id===F.selectedRateId&&D.previousElementSibling.classList.add("w--redirected-checked"),xt(D,"change",()=>{D.checked&&F.updateSelectedRateId(r.id)}),t.appendChild(i)}),this.tariffsWrapperElement.innerHTML="",this.tariffsWrapperElement.appendChild(t)})}};var Ba=class{constructor(t){L(this,"apartmentProperties");L(this,"detailsSection");L(this,"optionsSection");L(this,"tariffsSection");L(this,"summarySection");L(this,"paymentModal");nr("loading:start",e=>rr(!0,e)),nr("loading:end",e=>rr(!1,e)),this.apartmentProperties=t,F.setCmsApartmentData(t)}init(){it("loading:start",document.body);let t=Yt.startDate?J.safeParsePlainDate(Yt.startDate):Qr,e=Yt.endDate?J.safeParsePlainDate(Yt.endDate):uo;t&&F.updateStartDate(t),e&&F.updateEndDate(e),this.fetchAPIData().then(()=>{this.parseAPIData().then(()=>{let r=F.rates.find(i=>i.isDefault||i.isBaseRate);console.log("#=> Default Rate:",r),F.updateSelectedRateId(r?.id||F.computedRates.find(i=>i.ordering===0&&i.groupOrdering===0)?.id||F.computedRates[0]?.id||null),this.detailsSection=new Aa(this),this.detailsSection.init(),this.optionsSection=new La(this),this.optionsSection.toggleVisibility(!0),this.optionsSection.init(),this.tariffsSection=new Ha(this),this.tariffsSection.toggleVisibility(!0),this.tariffsSection.init(),this.summarySection=new Oa(this),this.summarySection.toggleVisibility(!0),this.summarySection.init(),this.paymentModal=new Na(this),this.paymentModal.toggleVisibility(!1),this.paymentModal.init(),this.initPricingButler(),this.initAvailabilityPricingUpdater(),it("loading:end",document.body)}).catch(r=>{console.error("Error initializing reservation component",r),alert("An error occurred. Please try again later.")})}),console.log("#=> State:",F.getReadonlyState())}initPricingButler(){let t=(0,Yc.default)(async()=>{console.log("[PricingButler] Fetching reservation pricing..."),await F.fetchReservationPricing(this.apartmentProperties.enterpriseId,this.apartmentProperties.categoryId)},500);It(()=>{let{rooms:e}=F,{startDate:r}=F,{endDate:i}=F,{selectedProducts:o}=F,{selectedRateId:a}=F,{couponCode:s}=F;if(console.log("[PricingButler] Dependencies changed:",{roomsCount:e.length,startDate:r?.toString(),endDate:i?.toString(),selectedProductsCount:o.length,selectedRateId:a,couponCode:s}),e.length===0){console.log("[PricingButler] No rooms set, skipping pricing update.");return}if(!r||!i){console.log("[PricingButler] Start date or end date is not set, skipping pricing update.");return}if(J.isBefore(r,i)){console.log("[PricingButler] Start date is after or equal to end date, skipping pricing update.");return}t()})}initAvailabilityPricingUpdater(){let t=(0,Yc.default)(async()=>{try{await F.fetchAvailability(this.apartmentProperties.enterpriseId,this.apartmentProperties.categoryId),await F.fetchServicePricing(this.apartmentProperties.enterpriseId,this.apartmentProperties.categoryId),it("loading:end",document.body)}catch(e){console.error("Error updating availability and pricing data:",e)}},500);It(()=>{it("loading:start",document.body);let{startDate:e,endDate:r}={startDate:F.startDate,endDate:F.endDate};if(!e||!r){console.warn("Start date or end date is not set, skipping availability and pricing updates.");return}if(J.isBefore(e,r)){console.warn("Start date is after or equal to end date, skipping API requests.");return}t()}),It(()=>{it("loading:start",document.body);let{availabilities:e,servicePricing:r,isAvailable:i,restrictionMessage:o}={availabilities:F.availabilities,servicePricing:F.servicePricing,isAvailable:F.isAvailable,restrictionMessage:F.restrictionMessage};if(this.updateAvailabilityBanners(i,o),this.optionsSection&&this.optionsSection.toggleVisibility(i),this.tariffsSection&&this.tariffsSection.toggleVisibility(i),this.summarySection&&this.summarySection.toggleVisibility(i),r&&!F.selectedRateId&&F.computedRates.length>0){let a=F.rates.find(s=>s.isDefault||s.isBaseRate);F.updateSelectedRateId(a?.id||F.computedRates.find(s=>s.ordering===0&&s.groupOrdering===0)?.id||F.computedRates[0]?.id||null)}e&&r&&this.refreshUIComponents()})}async fetchAPIData(){console.log("#=> Fetching API data for reservation component..."),await F.initializeResources(this.apartmentProperties.enterpriseId),await F.initializeRooms(),await F.fetchHotel(this.apartmentProperties.enterpriseId),await F.fetchAvailability(this.apartmentProperties.enterpriseId,this.apartmentProperties.categoryId),await F.fetchServicePricing(this.apartmentProperties.enterpriseId,this.apartmentProperties.categoryId),await F.fetchReservationPricing(this.apartmentProperties.enterpriseId,this.apartmentProperties.categoryId),await F.fetchRates(this.apartmentProperties.enterpriseId)}async parseAPIData(){}refreshUIComponents(){if(F.computedRates.length>0&&!F.selectedRateId){let t=F.rates.find(e=>e.isDefault||e.isBaseRate);F.updateSelectedRateId(t?.id||F.computedRates.find(e=>e.ordering===0&&e.groupOrdering===0)?.id||F.computedRates[0]?.id||null)}this.updateAvailabilityBanners(F.isAvailable,F.restrictionMessage),this.optionsSection&&(this.optionsSection.toggleVisibility(F.isAvailable),this.optionsSection.refresh()),this.tariffsSection&&(this.tariffsSection.toggleVisibility(F.isAvailable),this.tariffsSection.refresh()),this.summarySection&&(this.summarySection.toggleVisibility(F.isAvailable),this.summarySection.refresh()),it("loading:end",document.body)}updateAvailabilityBanners(t,e){let r=K("banner-box"),i=K("banner-box-restriction"),o=K("banner-restriction-text");e?(o&&(o.textContent=e),i&&i.classList.remove("hide"),r&&r.classList.add("hide")):t?(r&&r.classList.add("hide"),i&&i.classList.add("hide")):(r&&r.classList.remove("hide"),i&&i.classList.add("hide"))}async fetchReservationPricing(){try{await F.fetchServicePricing(this.apartmentProperties.enterpriseId,this.apartmentProperties.categoryId);let t=await F.fetchReservationPricing(this.apartmentProperties.enterpriseId,this.apartmentProperties.categoryId);return this.refreshUIComponents(),t}catch(t){throw console.error("Error fetching reservation pricing:",t),t}}handleDateChange(t,e){return t&&e&&Re.PlainDate.compare(t,e)>=0?(console.warn("Invalid date range: start date must be before end date"),!1):(t&&F.updateStartDate(t),e&&F.updateEndDate(e),!0)}scrollToTariffsSection(){let t=document.getElementById("tariff-section");t&&setTimeout(()=>{t.scrollIntoView({behavior:"smooth",block:"start"})},300)}};function Km(){try{let n=window.WebflowCMSData_apartment;console.log("#=> Properties",n),new Ba(n).init()}catch(n){console.error("Error initializing reservation component",n)}}window.Webflow||(window.Webflow=[]);window.Webflow.push(async()=>{Km()});export{Km as initApparthotelsBookingTemplate};
7
+ `}}function w(){e.calendarContainer.classList.add("hasWeeks");var f=Se("div","flatpickr-weekwrapper");f.appendChild(Se("span","flatpickr-weekday",e.l10n.weekAbbreviation));var b=Se("div","flatpickr-weeks");return f.appendChild(b),{weekWrapper:f,weekNumbers:b}}function _(f,b){b===void 0&&(b=!0);var M=b?f:f-e.currentMonth;M<0&&e._hidePrevMonthArrow===!0||M>0&&e._hideNextMonthArrow===!0||(e.currentMonth+=M,(e.currentMonth<0||e.currentMonth>11)&&(e.currentYear+=e.currentMonth>11?1:-1,e.currentMonth=(e.currentMonth+12)%12,Fe("onYearChange"),ae()),Y(),Fe("onMonthChange"),Eo())}function R(f,b){if(f===void 0&&(f=!0),b===void 0&&(b=!0),e.input.value="",e.altInput!==void 0&&(e.altInput.value=""),e.mobileInput!==void 0&&(e.mobileInput.value=""),e.selectedDates=[],e.latestSelectedDateObj=void 0,b===!0&&(e.currentYear=e._initialDate.getFullYear(),e.currentMonth=e._initialDate.getMonth()),e.config.enableTime===!0){var M=Ia(e.config),A=M.hours,q=M.minutes,Q=M.seconds;D(A,q,Q)}e.redraw(),f&&Fe("onChange")}function P(){e.isOpen=!1,e.isMobile||(e.calendarContainer!==void 0&&e.calendarContainer.classList.remove("open"),e._input!==void 0&&e._input.classList.remove("active")),Fe("onClose")}function j(){e.config!==void 0&&Fe("onDestroy");for(var f=e._handlers.length;f--;)e._handlers[f].remove();if(e._handlers=[],e.mobileInput)e.mobileInput.parentNode&&e.mobileInput.parentNode.removeChild(e.mobileInput),e.mobileInput=void 0;else if(e.calendarContainer&&e.calendarContainer.parentNode)if(e.config.static&&e.calendarContainer.parentNode){var b=e.calendarContainer.parentNode;if(b.lastChild&&b.removeChild(b.lastChild),b.parentNode){for(;b.firstChild;)b.parentNode.insertBefore(b.firstChild,b);b.parentNode.removeChild(b)}}else e.calendarContainer.parentNode.removeChild(e.calendarContainer);e.altInput&&(e.input.type="text",e.altInput.parentNode&&e.altInput.parentNode.removeChild(e.altInput),delete e.altInput),e.input&&(e.input.type=e.input._type,e.input.classList.remove("flatpickr-input"),e.input.removeAttribute("readonly")),["_showTimeInput","latestSelectedDateObj","_hideNextMonthArrow","_hidePrevMonthArrow","__hideNextMonthArrow","__hidePrevMonthArrow","isMobile","isOpen","selectedDateElem","minDateHasTime","maxDateHasTime","days","daysContainer","_input","_positionElement","innerContainer","rContainer","monthNav","todayDateElem","calendarContainer","weekdayContainer","prevMonthNav","nextMonthNav","monthsDropdownContainer","currentMonthElement","currentYearElement","navigationCurrentMonth","selectedDateElem","config"].forEach(function(M){try{delete e[M]}catch{}})}function O(f){return e.calendarContainer.contains(f)}function X(f){if(e.isOpen&&!e.config.inline){var b=jt(f),M=O(b),A=b===e.input||b===e.altInput||e.element.contains(b)||f.path&&f.path.indexOf&&(~f.path.indexOf(e.input)||~f.path.indexOf(e.altInput)),q=!A&&!M&&!O(f.relatedTarget),Q=!e.config.ignoredFocusElements.some(function(ye){return ye.contains(b)});q&&Q&&(e.config.allowInput&&e.setDate(e._input.value,!1,e.config.altInput?e.config.altFormat:e.config.dateFormat),e.timeContainer!==void 0&&e.minuteElement!==void 0&&e.hourElement!==void 0&&e.input.value!==""&&e.input.value!==void 0&&l(),e.close(),e.config&&e.config.mode==="range"&&e.selectedDates.length===1&&e.clear(!1))}}function re(f){if(!(!f||e.config.minDate&&f<e.config.minDate.getFullYear()||e.config.maxDate&&f>e.config.maxDate.getFullYear())){var b=f,M=e.currentYear!==b;e.currentYear=b||e.currentYear,e.config.maxDate&&e.currentYear===e.config.maxDate.getFullYear()?e.currentMonth=Math.min(e.config.maxDate.getMonth(),e.currentMonth):e.config.minDate&&e.currentYear===e.config.minDate.getFullYear()&&(e.currentMonth=Math.max(e.config.minDate.getMonth(),e.currentMonth)),M&&(e.redraw(),Fe("onYearChange"),ae())}}function Z(f,b){var M;b===void 0&&(b=!0);var A=e.parseDate(f,void 0,b);if(e.config.minDate&&A&&zt(A,e.config.minDate,b!==void 0?b:!e.minDateHasTime)<0||e.config.maxDate&&A&&zt(A,e.config.maxDate,b!==void 0?b:!e.maxDateHasTime)>0)return!1;if(!e.config.enable&&e.config.disable.length===0)return!0;if(A===void 0)return!1;for(var q=!!e.config.enable,Q=(M=e.config.enable)!==null&&M!==void 0?M:e.config.disable,ye=0,te=void 0;ye<Q.length;ye++){if(te=Q[ye],typeof te=="function"&&te(A))return q;if(te instanceof Date&&A!==void 0&&te.getTime()===A.getTime())return q;if(typeof te=="string"){var De=e.parseDate(te,void 0,!0);return De&&De.getTime()===A.getTime()?q:!q}else if(typeof te=="object"&&A!==void 0&&te.from&&te.to&&A.getTime()>=te.from.getTime()&&A.getTime()<=te.to.getTime())return q}return!q}function V(f){return e.daysContainer!==void 0?f.className.indexOf("hidden")===-1&&f.className.indexOf("flatpickr-disabled")===-1&&e.daysContainer.contains(f):!1}function ue(f){var b=f.target===e._input,M=e._input.value.trimEnd()!==ja();b&&M&&!(f.relatedTarget&&O(f.relatedTarget))&&e.setDate(e._input.value,!0,f.target===e.altInput?e.config.altFormat:e.config.dateFormat)}function pe(f){var b=jt(f),M=e.config.wrap?n.contains(b):b===e._input,A=e.config.allowInput,q=e.isOpen&&(!A||!M),Q=e.config.inline&&M&&!A;if(f.keyCode===13&&M){if(A)return e.setDate(e._input.value,!0,b===e.altInput?e.config.altFormat:e.config.dateFormat),e.close(),b.blur();e.open()}else if(O(b)||q||Q){var ye=!!e.timeContainer&&e.timeContainer.contains(b);switch(f.keyCode){case 13:ye?(f.preventDefault(),l(),Fa()):$c(f);break;case 27:f.preventDefault(),Fa();break;case 8:case 46:M&&!e.config.allowInput&&(f.preventDefault(),e.clear());break;case 37:case 39:if(!ye&&!M){f.preventDefault();var te=o();if(e.daysContainer!==void 0&&(A===!1||te&&V(te))){var De=f.keyCode===39?1:-1;f.ctrlKey?(f.stopPropagation(),_(De),B(Te(1),0)):B(void 0,De)}}else e.hourElement&&e.hourElement.focus();break;case 38:case 40:f.preventDefault();var ee=f.keyCode===40?1:-1;e.daysContainer&&b.$i!==void 0||b===e.input||b===e.altInput?f.ctrlKey?(f.stopPropagation(),re(e.currentYear-ee),B(Te(1),0)):ye||B(void 0,ee*7):b===e.currentYearElement?re(e.currentYear-ee):e.config.enableTime&&(!ye&&e.hourElement&&e.hourElement.focus(),l(f),e._debouncedChange());break;case 9:if(ye){var de=[e.hourElement,e.minuteElement,e.secondElement,e.amPM].concat(e.pluginElements).filter(function(Ut){return Ut}),xe=de.indexOf(b);if(xe!==-1){var dn=de[xe+(f.shiftKey?-1:1)];f.preventDefault(),(dn||e._input).focus()}}else!e.config.noCalendar&&e.daysContainer&&e.daysContainer.contains(b)&&f.shiftKey&&(f.preventDefault(),e._input.focus());break;default:break}}if(e.amPM!==void 0&&b===e.amPM)switch(f.key){case e.l10n.amPM[0].charAt(0):case e.l10n.amPM[0].charAt(0).toLowerCase():e.amPM.textContent=e.l10n.amPM[0],p(),En();break;case e.l10n.amPM[1].charAt(0):case e.l10n.amPM[1].charAt(0).toLowerCase():e.amPM.textContent=e.l10n.amPM[1],p(),En();break}(M||O(b))&&Fe("onKeyDown",f)}function we(f,b){if(b===void 0&&(b="flatpickr-day"),!(e.selectedDates.length!==1||f&&(!f.classList.contains(b)||f.classList.contains("flatpickr-disabled")))){for(var M=f?f.dateObj.getTime():e.days.firstElementChild.dateObj.getTime(),A=e.parseDate(e.selectedDates[0],void 0,!0).getTime(),q=Math.min(M,e.selectedDates[0].getTime()),Q=Math.max(M,e.selectedDates[0].getTime()),ye=!1,te=0,De=0,ee=q;ee<Q;ee+=Hd.DAY)Z(new Date(ee),!0)||(ye=ye||ee>q&&ee<Q,ee<A&&(!te||ee>te)?te=ee:ee>A&&(!De||ee<De)&&(De=ee));var de=Array.from(e.rContainer.querySelectorAll("*:nth-child(-n+"+e.config.showMonths+") > ."+b));de.forEach(function(xe){var dn=xe.dateObj,Ut=dn.getTime(),oi=te>0&&Ut<te||De>0&&Ut>De;if(oi){xe.classList.add("notAllowed"),["inRange","startRange","endRange"].forEach(function(Tr){xe.classList.remove(Tr)});return}else if(ye&&!oi)return;["startRange","inRange","endRange","notAllowed"].forEach(function(Tr){xe.classList.remove(Tr)}),f!==void 0&&(f.classList.add(M<=e.selectedDates[0].getTime()?"startRange":"endRange"),A<M&&Ut===A?xe.classList.add("startRange"):A>M&&Ut===A&&xe.classList.add("endRange"),Ut>=te&&(De===0||Ut<=De)&&Nd(Ut,A,M)&&xe.classList.add("inRange"))})}}function _e(){e.isOpen&&!e.config.static&&!e.config.inline&&Yn()}function Oe(f,b){if(b===void 0&&(b=e._positionElement),e.isMobile===!0){if(f){f.preventDefault();var M=jt(f);M&&M.blur()}e.mobileInput!==void 0&&(e.mobileInput.focus(),e.mobileInput.click()),Fe("onOpen");return}else if(e._input.disabled||e.config.inline)return;var A=e.isOpen;e.isOpen=!0,A||(e.calendarContainer.classList.add("open"),e._input.classList.add("active"),Fe("onOpen"),Yn(b)),e.config.enableTime===!0&&e.config.noCalendar===!0&&e.config.allowInput===!1&&(f===void 0||!e.timeContainer.contains(f.relatedTarget))&&setTimeout(function(){return e.hourElement.select()},50)}function Ve(f){return function(b){var M=e.config["_"+f+"Date"]=e.parseDate(b,e.config.dateFormat),A=e.config["_"+(f==="min"?"max":"min")+"Date"];M!==void 0&&(e[f==="min"?"minDateHasTime":"maxDateHasTime"]=M.getHours()>0||M.getMinutes()>0||M.getSeconds()>0),e.selectedDates&&(e.selectedDates=e.selectedDates.filter(function(q){return Z(q)}),!e.selectedDates.length&&f==="min"&&y(M),En()),e.daysContainer&&(wo(),M!==void 0?e.currentYearElement[f]=M.getFullYear().toString():e.currentYearElement.removeAttribute(f),e.currentYearElement.disabled=!!A&&M!==void 0&&A.getFullYear()===M.getFullYear())}}function ot(){var f=["wrap","weekNumbers","allowInput","allowInvalidPreload","clickOpens","time_24hr","enableTime","noCalendar","altInput","shorthandCurrentMonth","inline","static","enableSeconds","disableMobile"],b=ht(ht({},JSON.parse(JSON.stringify(n.dataset||{}))),t),M={};e.config.parseDate=b.parseDate,e.config.formatDate=b.formatDate,Object.defineProperty(e.config,"enable",{get:function(){return e.config._enable},set:function(de){e.config._enable=zc(de)}}),Object.defineProperty(e.config,"disable",{get:function(){return e.config._disable},set:function(de){e.config._disable=zc(de)}});var A=b.mode==="time";if(!b.dateFormat&&(b.enableTime||A)){var q=We.defaultConfig.dateFormat||ar.dateFormat;M.dateFormat=b.noCalendar||A?"H:i"+(b.enableSeconds?":S":""):q+" H:i"+(b.enableSeconds?":S":"")}if(b.altInput&&(b.enableTime||A)&&!b.altFormat){var Q=We.defaultConfig.altFormat||ar.altFormat;M.altFormat=b.noCalendar||A?"h:i"+(b.enableSeconds?":S K":" K"):Q+(" h:i"+(b.enableSeconds?":S":"")+" K")}Object.defineProperty(e.config,"minDate",{get:function(){return e.config._minDate},set:Ve("min")}),Object.defineProperty(e.config,"maxDate",{get:function(){return e.config._maxDate},set:Ve("max")});var ye=function(de){return function(xe){e.config[de==="min"?"_minTime":"_maxTime"]=e.parseDate(xe,"H:i:S")}};Object.defineProperty(e.config,"minTime",{get:function(){return e.config._minTime},set:ye("min")}),Object.defineProperty(e.config,"maxTime",{get:function(){return e.config._maxTime},set:ye("max")}),b.mode==="time"&&(e.config.noCalendar=!0,e.config.enableTime=!0),Object.assign(e.config,M,b);for(var te=0;te<f.length;te++)e.config[f[te]]=e.config[f[te]]===!0||e.config[f[te]]==="true";Ta.filter(function(de){return e.config[de]!==void 0}).forEach(function(de){e.config[de]=ka(e.config[de]||[]).map(a)}),e.isMobile=!e.config.disableMobile&&!e.config.inline&&e.config.mode==="single"&&!e.config.disable.length&&!e.config.enable&&!e.config.weekNumbers&&/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);for(var te=0;te<e.config.plugins.length;te++){var De=e.config.plugins[te](e)||{};for(var ee in De)Ta.indexOf(ee)>-1?e.config[ee]=ka(De[ee]).map(a).concat(e.config[ee]):typeof b[ee]>"u"&&(e.config[ee]=De[ee])}b.altInputClass||(e.config.altInputClass=Qt().className+" "+e.config.altInputClass),Fe("onParseConfig")}function Qt(){return e.config.wrap?n.querySelector("[data-input]"):n}function sr(){typeof e.config.locale!="object"&&typeof We.l10ns[e.config.locale]>"u"&&e.config.errorHandler(new Error("flatpickr: invalid locale "+e.config.locale)),e.l10n=ht(ht({},We.l10ns.default),typeof e.config.locale=="object"?e.config.locale:e.config.locale!=="default"?We.l10ns[e.config.locale]:void 0),Fn.D="("+e.l10n.weekdays.shorthand.join("|")+")",Fn.l="("+e.l10n.weekdays.longhand.join("|")+")",Fn.M="("+e.l10n.months.shorthand.join("|")+")",Fn.F="("+e.l10n.months.longhand.join("|")+")",Fn.K="("+e.l10n.amPM[0]+"|"+e.l10n.amPM[1]+"|"+e.l10n.amPM[0].toLowerCase()+"|"+e.l10n.amPM[1].toLowerCase()+")";var f=ht(ht({},t),JSON.parse(JSON.stringify(n.dataset||{})));f.time_24hr===void 0&&We.defaultConfig.time_24hr===void 0&&(e.config.time_24hr=e.l10n.time_24hr),e.formatDate=Bc(e),e.parseDate=Pa({config:e.config,l10n:e.l10n})}function Yn(f){if(typeof e.config.position=="function")return void e.config.position(e,f);if(e.calendarContainer!==void 0){Fe("onPreCalendarPosition");var b=f||e._positionElement,M=Array.prototype.reduce.call(e.calendarContainer.children,function(ch,lh){return ch+lh.offsetHeight},0),A=e.calendarContainer.offsetWidth,q=e.config.position.split(" "),Q=q[0],ye=q.length>1?q[1]:null,te=b.getBoundingClientRect(),De=window.innerHeight-te.bottom,ee=Q==="above"||Q!=="below"&&De<M&&te.top>M,de=window.pageYOffset+te.top+(ee?-M-2:b.offsetHeight+2);if(dt(e.calendarContainer,"arrowTop",!ee),dt(e.calendarContainer,"arrowBottom",ee),!e.config.inline){var xe=window.pageXOffset+te.left,dn=!1,Ut=!1;ye==="center"?(xe-=(A-te.width)/2,dn=!0):ye==="right"&&(xe-=A-te.width,Ut=!0),dt(e.calendarContainer,"arrowLeft",!dn&&!Ut),dt(e.calendarContainer,"arrowCenter",dn),dt(e.calendarContainer,"arrowRight",Ut);var oi=window.document.body.offsetWidth-(window.pageXOffset+te.right),Tr=xe+A>window.document.body.offsetWidth,th=oi+A>window.document.body.offsetWidth;if(dt(e.calendarContainer,"rightMost",Tr),!e.config.static)if(e.calendarContainer.style.top=de+"px",!Tr)e.calendarContainer.style.left=xe+"px",e.calendarContainer.style.right="auto";else if(!th)e.calendarContainer.style.left="auto",e.calendarContainer.style.right=oi+"px";else{var za=ii();if(za===void 0)return;var nh=window.document.body.offsetWidth,rh=Math.max(0,nh/2-A/2),ih=".flatpickr-calendar.centerMost:before",oh=".flatpickr-calendar.centerMost:after",ah=za.cssRules.length,sh="{left:"+te.left+"px;right:auto;}";dt(e.calendarContainer,"rightMost",!1),dt(e.calendarContainer,"centerMost",!0),za.insertRule(ih+","+oh+sh,ah),e.calendarContainer.style.left=rh+"px",e.calendarContainer.style.right="auto"}}}}function ii(){for(var f=null,b=0;b<document.styleSheets.length;b++){var M=document.styleSheets[b];if(M.cssRules){try{M.cssRules}catch{continue}f=M;break}}return f??bo()}function bo(){var f=document.createElement("style");return document.head.appendChild(f),f.sheet}function wo(){e.config.noCalendar||e.isMobile||(ae(),Eo(),Y())}function Fa(){e._input.focus(),window.navigator.userAgent.indexOf("MSIE")!==-1||navigator.msMaxTouchPoints!==void 0?setTimeout(e.close,0):e.close()}function $c(f){f.preventDefault(),f.stopPropagation();var b=function(de){return de.classList&&de.classList.contains("flatpickr-day")&&!de.classList.contains("flatpickr-disabled")&&!de.classList.contains("notAllowed")},M=Oc(jt(f),b);if(M!==void 0){var A=M,q=e.latestSelectedDateObj=new Date(A.dateObj.getTime()),Q=(q.getMonth()<e.currentMonth||q.getMonth()>e.currentMonth+e.config.showMonths-1)&&e.config.mode!=="range";if(e.selectedDateElem=A,e.config.mode==="single")e.selectedDates=[q];else if(e.config.mode==="multiple"){var ye=$a(q);ye?e.selectedDates.splice(parseInt(ye),1):e.selectedDates.push(q)}else e.config.mode==="range"&&(e.selectedDates.length===2&&e.clear(!1,!1),e.latestSelectedDateObj=q,e.selectedDates.push(q),zt(q,e.selectedDates[0],!0)!==0&&e.selectedDates.sort(function(de,xe){return de.getTime()-xe.getTime()}));if(p(),Q){var te=e.currentYear!==q.getFullYear();e.currentYear=q.getFullYear(),e.currentMonth=q.getMonth(),te&&(Fe("onYearChange"),ae()),Fe("onMonthChange")}if(Eo(),Y(),En(),!Q&&e.config.mode!=="range"&&e.config.showMonths===1?Ce(A):e.selectedDateElem!==void 0&&e.hourElement===void 0&&e.selectedDateElem&&e.selectedDateElem.focus(),e.hourElement!==void 0&&e.hourElement!==void 0&&e.hourElement.focus(),e.config.closeOnSelect){var De=e.config.mode==="single"&&!e.config.enableTime,ee=e.config.mode==="range"&&e.selectedDates.length===2&&!e.config.enableTime;(De||ee)&&Fa()}N()}}var Do={locale:[sr,E],showMonths:[H,s,v],minDate:[G],maxDate:[G],positionElement:[Uc],clickOpens:[function(){e.config.clickOpens===!0?(C(e._input,"focus",e.open),C(e._input,"click",e.open)):(e._input.removeEventListener("focus",e.open),e._input.removeEventListener("click",e.open))}]};function qd(f,b){if(f!==null&&typeof f=="object"){Object.assign(e.config,f);for(var M in f)Do[M]!==void 0&&Do[M].forEach(function(A){return A()})}else e.config[f]=b,Do[f]!==void 0?Do[f].forEach(function(A){return A()}):Ta.indexOf(f)>-1&&(e.config[f]=ka(b));e.redraw(),En(!0)}function jc(f,b){var M=[];if(f instanceof Array)M=f.map(function(A){return e.parseDate(A,b)});else if(f instanceof Date||typeof f=="number")M=[e.parseDate(f,b)];else if(typeof f=="string")switch(e.config.mode){case"single":case"time":M=[e.parseDate(f,b)];break;case"multiple":M=f.split(e.config.conjunction).map(function(A){return e.parseDate(A,b)});break;case"range":M=f.split(e.l10n.rangeSeparator).map(function(A){return e.parseDate(A,b)});break;default:break}else e.config.errorHandler(new Error("Invalid date supplied: "+JSON.stringify(f)));e.selectedDates=e.config.allowInvalidPreload?M:M.filter(function(A){return A instanceof Date&&Z(A,!1)}),e.config.mode==="range"&&e.selectedDates.sort(function(A,q){return A.getTime()-q.getTime()})}function Wd(f,b,M){if(b===void 0&&(b=!1),M===void 0&&(M=e.config.dateFormat),f!==0&&!f||f instanceof Array&&f.length===0)return e.clear(b);jc(f,M),e.latestSelectedDateObj=e.selectedDates[e.selectedDates.length-1],e.redraw(),G(void 0,b),y(),e.selectedDates.length===0&&e.clear(!1),En(b),b&&Fe("onChange")}function zc(f){return f.slice().map(function(b){return typeof b=="string"||typeof b=="number"||b instanceof Date?e.parseDate(b,void 0,!0):b&&typeof b=="object"&&b.from&&b.to?{from:e.parseDate(b.from,void 0),to:e.parseDate(b.to,void 0)}:b}).filter(function(b){return b})}function Gd(){e.selectedDates=[],e.now=e.parseDate(e.config.now)||new Date;var f=e.config.defaultDate||((e.input.nodeName==="INPUT"||e.input.nodeName==="TEXTAREA")&&e.input.placeholder&&e.input.value===e.input.placeholder?null:e.input.value);f&&jc(f,e.config.dateFormat),e._initialDate=e.selectedDates.length>0?e.selectedDates[0]:e.config.minDate&&e.config.minDate.getTime()>e.now.getTime()?e.config.minDate:e.config.maxDate&&e.config.maxDate.getTime()<e.now.getTime()?e.config.maxDate:e.now,e.currentYear=e._initialDate.getFullYear(),e.currentMonth=e._initialDate.getMonth(),e.selectedDates.length>0&&(e.latestSelectedDateObj=e.selectedDates[0]),e.config.minTime!==void 0&&(e.config.minTime=e.parseDate(e.config.minTime,"H:i")),e.config.maxTime!==void 0&&(e.config.maxTime=e.parseDate(e.config.maxTime,"H:i")),e.minDateHasTime=!!e.config.minDate&&(e.config.minDate.getHours()>0||e.config.minDate.getMinutes()>0||e.config.minDate.getSeconds()>0),e.maxDateHasTime=!!e.config.maxDate&&(e.config.maxDate.getHours()>0||e.config.maxDate.getMinutes()>0||e.config.maxDate.getSeconds()>0)}function Kd(){if(e.input=Qt(),!e.input){e.config.errorHandler(new Error("Invalid input element specified"));return}e.input._type=e.input.type,e.input.type="text",e.input.classList.add("flatpickr-input"),e._input=e.input,e.config.altInput&&(e.altInput=Se(e.input.nodeName,e.config.altInputClass),e._input=e.altInput,e.altInput.placeholder=e.input.placeholder,e.altInput.disabled=e.input.disabled,e.altInput.required=e.input.required,e.altInput.tabIndex=e.input.tabIndex,e.altInput.type="text",e.input.setAttribute("type","hidden"),!e.config.static&&e.input.parentNode&&e.input.parentNode.insertBefore(e.altInput,e.input.nextSibling)),e.config.allowInput||e._input.setAttribute("readonly","readonly"),Uc()}function Uc(){e._positionElement=e.config.positionElement||e._input}function Zd(){var f=e.config.enableTime?e.config.noCalendar?"time":"datetime-local":"date";e.mobileInput=Se("input",e.input.className+" flatpickr-mobile"),e.mobileInput.tabIndex=1,e.mobileInput.type=f,e.mobileInput.disabled=e.input.disabled,e.mobileInput.required=e.input.required,e.mobileInput.placeholder=e.input.placeholder,e.mobileFormatStr=f==="datetime-local"?"Y-m-d\\TH:i:S":f==="date"?"Y-m-d":"H:i:S",e.selectedDates.length>0&&(e.mobileInput.defaultValue=e.mobileInput.value=e.formatDate(e.selectedDates[0],e.mobileFormatStr)),e.config.minDate&&(e.mobileInput.min=e.formatDate(e.config.minDate,"Y-m-d")),e.config.maxDate&&(e.mobileInput.max=e.formatDate(e.config.maxDate,"Y-m-d")),e.input.getAttribute("step")&&(e.mobileInput.step=String(e.input.getAttribute("step"))),e.input.type="hidden",e.altInput!==void 0&&(e.altInput.type="hidden");try{e.input.parentNode&&e.input.parentNode.insertBefore(e.mobileInput,e.input.nextSibling)}catch{}C(e.mobileInput,"change",function(b){e.setDate(jt(b).value,!1,e.mobileFormatStr),Fe("onChange"),Fe("onClose")})}function Jd(f){if(e.isOpen===!0)return e.close();e.open(f)}function Fe(f,b){if(e.config!==void 0){var M=e.config[f];if(M!==void 0&&M.length>0)for(var A=0;M[A]&&A<M.length;A++)M[A](e.selectedDates,e.input.value,e,b);f==="onChange"&&(e.input.dispatchEvent(Ya("change")),e.input.dispatchEvent(Ya("input")))}}function Ya(f){var b=document.createEvent("Event");return b.initEvent(f,!0,!0),b}function $a(f){for(var b=0;b<e.selectedDates.length;b++){var M=e.selectedDates[b];if(M instanceof Date&&zt(M,f)===0)return""+b}return!1}function Xd(f){return e.config.mode!=="range"||e.selectedDates.length<2?!1:zt(f,e.selectedDates[0])>=0&&zt(f,e.selectedDates[1])<=0}function Eo(){e.config.noCalendar||e.isMobile||!e.monthNav||(e.yearElements.forEach(function(f,b){var M=new Date(e.currentYear,e.currentMonth,1);M.setMonth(e.currentMonth+b),e.config.showMonths>1||e.config.monthSelectorType==="static"?e.monthElements[b].textContent=vo(M.getMonth(),e.config.shorthandCurrentMonth,e.l10n)+" ":e.monthsDropdownContainer.value=M.getMonth().toString(),f.value=M.getFullYear().toString()}),e._hidePrevMonthArrow=e.config.minDate!==void 0&&(e.currentYear===e.config.minDate.getFullYear()?e.currentMonth<=e.config.minDate.getMonth():e.currentYear<e.config.minDate.getFullYear()),e._hideNextMonthArrow=e.config.maxDate!==void 0&&(e.currentYear===e.config.maxDate.getFullYear()?e.currentMonth+1>e.config.maxDate.getMonth():e.currentYear>e.config.maxDate.getFullYear()))}function ja(f){var b=f||(e.config.altInput?e.config.altFormat:e.config.dateFormat);return e.selectedDates.map(function(M){return e.formatDate(M,b)}).filter(function(M,A,q){return e.config.mode!=="range"||e.config.enableTime||q.indexOf(M)===A}).join(e.config.mode!=="range"?e.config.conjunction:e.l10n.rangeSeparator)}function En(f){f===void 0&&(f=!0),e.mobileInput!==void 0&&e.mobileFormatStr&&(e.mobileInput.value=e.latestSelectedDateObj!==void 0?e.formatDate(e.latestSelectedDateObj,e.mobileFormatStr):""),e.input.value=ja(e.config.dateFormat),e.altInput!==void 0&&(e.altInput.value=ja(e.config.altFormat)),f!==!1&&Fe("onValueUpdate")}function Qd(f){var b=jt(f),M=e.prevMonthNav.contains(b),A=e.nextMonthNav.contains(b);M||A?_(M?-1:1):e.yearElements.indexOf(b)>=0?b.select():b.classList.contains("arrowUp")?e.changeYear(e.currentYear+1):b.classList.contains("arrowDown")&&e.changeYear(e.currentYear-1)}function eh(f){f.preventDefault();var b=f.type==="keydown",M=jt(f),A=M;e.amPM!==void 0&&M===e.amPM&&(e.amPM.textContent=e.l10n.amPM[$t(e.amPM.textContent===e.l10n.amPM[0])]);var q=parseFloat(A.getAttribute("min")),Q=parseFloat(A.getAttribute("max")),ye=parseFloat(A.getAttribute("step")),te=parseInt(A.value,10),De=f.delta||(b?f.which===38?1:-1:0),ee=te+ye*De;if(typeof A.value<"u"&&A.value.length===2){var de=A===e.hourElement,xe=A===e.minuteElement;ee<q?(ee=Q+ee+$t(!de)+($t(de)&&$t(!e.amPM)),xe&&ne(void 0,-1,e.hourElement)):ee>Q&&(ee=A===e.hourElement?ee-Q-$t(!e.amPM):q,xe&&ne(void 0,1,e.hourElement)),e.amPM&&de&&(ye===1?ee+te===23:Math.abs(ee-te)>ye)&&(e.amPM.textContent=e.l10n.amPM[$t(e.amPM.textContent===e.l10n.amPM[0])]),A.value=ut(ee)}}return i(),e}function ri(n,t){for(var e=Array.prototype.slice.call(n).filter(function(a){return a instanceof HTMLElement}),r=[],i=0;i<e.length;i++){var o=e[i];try{if(o.getAttribute("data-fp-omit")!==null)continue;o._flatpickr!==void 0&&(o._flatpickr.destroy(),o._flatpickr=void 0),o._flatpickr=Wm(o,t||{}),r.push(o._flatpickr)}catch(a){console.error(a)}}return r.length===1?r[0]:r}typeof HTMLElement<"u"&&typeof HTMLCollection<"u"&&typeof NodeList<"u"&&(HTMLCollection.prototype.flatpickr=NodeList.prototype.flatpickr=function(n){return ri(this,n)},HTMLElement.prototype.flatpickr=function(n){return ri([this],n)});var We=function(n,t){return typeof n=="string"?ri(window.document.querySelectorAll(n),t):n instanceof Node?ri([n],t):ri(n,t)};We.defaultConfig={};We.l10ns={en:ht({},Ca),default:ht({},Ca)};We.localize=function(n){We.l10ns.default=ht(ht({},We.l10ns.default),n)};We.setDefaults=function(n){We.defaultConfig=ht(ht({},We.defaultConfig),n)};We.parseDate=Pa({});We.formatDate=Bc({});We.compareDates=zt;typeof jQuery<"u"&&typeof jQuery.fn<"u"&&(jQuery.fn.flatpickr=function(n){return ri(this,n)});Date.prototype.fp_incr=function(n){return new Date(this.getFullYear(),this.getMonth(),this.getDate()+(typeof n=="string"?parseInt(n,10):n))};typeof window<"u"&&(window.flatpickr=We);var Fd=We;var xa=class{constructor(t,e){this.dateInputEl=t;L(this,"minDate");L(this,"maxDate");L(this,"defaultReservationDays");L(this,"hasPrices",!1);L(this,"prices",{});L(this,"availability",{});L(this,"disabledDates",[]);L(this,"selectedStartDate");L(this,"selectedEndDate");L(this,"config");L(this,"instance");L(this,"destroyInstance");L(this,"currentDate");L(this,"handleResize",()=>{let t=this.isMobileDevice();(t&&this.config.grid!==1||!t&&this.config.grid!==2)&&(this.config.grid=t?1:2,this.config.calendars=t?1:2,this.destroyInstance&&this.destroyInstance(),this.initialize())});this.isMobileDevice()&&(e.grid=1,e.calendars=1),this.dateInputEl=t,this.defaultReservationDays=e.defaultReservationDays??3;let r=e.startWithEmptyDates??!1;this.config={...e,type:e.type,showPrices:e.showPrices??!1,defaultReservationDays:this.defaultReservationDays,grid:e.grid??2,calendars:e.calendars??2,darkMode:e.darkMode??!0,tooltip:e.tooltip??!0,repick:e.repick??!1,minDays:e.minDays??1,defaultStartDate:e.defaultStartDate??J.getCurrentDate(),defaultEndDate:e.defaultEndDate??J.getCurrentDate(),startWithEmptyDates:r},this.currentDate=J.getCurrentDate(),this.selectedStartDate=r?null:this.config.defaultStartDate,this.selectedEndDate=r?null:this.config.defaultEndDate}isMobileDevice(){return window.innerWidth<=768}initialize(){switch(window.addEventListener("resize",this.handleResize),this.config.type){case"easepick":this.initEasepickCalendar();break;case"flatpickr":this.initFlatpickrCalendar();break;default:throw new Error(`Unsupported calendar type: ${this.config.type}`)}}setMinimumDate(t){this.minDate=t}setMaximumDate(t){this.maxDate=t}setStartDate(t){let e=J.toJSDate(t),r=this.selectedEndDate?J.toJSDate(this.selectedEndDate):e;this.selectedStartDate=t,this.instance instanceof Ma.Core?this.instance.setStartDate(new ge(t.toString())):this.config.type==="flatpickr"&&this.instance.setDate([e,r],!0)}setEndDate(t){let e=this.selectedStartDate?J.toJSDate(this.selectedStartDate):J.toJSDate(t),r=J.toJSDate(t);this.selectedEndDate=t,this.instance instanceof Ma.Core?this.instance.setEndDate(new ge(t.toString())):this.config.type==="flatpickr"&&this.instance.setDate([e,r],!0)}setDateRange(t,e){if(this.config.type==="flatpickr"){this.selectedStartDate=t,this.selectedEndDate=e;let r=J.toJSDate(t),i=J.toJSDate(e);this.instance.setDate([r,i],!0);return}this.setStartDate(t),this.setEndDate(e)}getSelectedDates(){return{startDate:this.selectedStartDate,endDate:this.selectedEndDate}}includePrices(t=!0){this.hasPrices=t}setPrices(t){this.prices=t}setAvailability(t){this.availability=t,this.disabledDates=Object.keys(t).filter(e=>!t[e])}initEasepickCalendar(){let t={tooltip:this.config.tooltip,repick:this.config.repick,tooltipNumber:i=>i-1,locale:{one:"nuit",other:"nuits"}};this.config.startWithEmptyDates||(t.startDate=new ge(this.config.defaultStartDate.toString()),t.endDate=new ge(this.config.defaultEndDate.toString()));let e={element:this.dateInputEl,css:["https://cdn.jsdelivr.net/npm/@easepick/bundle@1.2.1/dist/index.css"],zIndex:10,format:Ku,grid:this.config.grid,calendars:this.config.calendars,header:"",lang:document.documentElement.lang,RangePlugin:t,LockPlugin:{minDate:new ge(this.minDate.toString()),minDays:this.config.minDays,selectForward:!0},AmpPlugin:{darkMode:this.config.darkMode},plugins:[_a,Ea,Da],setup:i=>{i.on("view",o=>{let{view:a,date:s,target:l}=o.detail,u=s?s.format("YYYY-MM-DD"):null;if(a==="CalendarDay"&&u&&this.prices[u]){let h=this.prices[u],p=l.querySelector(`.${ua}`)||document.createElement("span");p.className=ua,p.textContent=`${h.toLocaleString(qe,{style:"currency",currency:"EUR",maximumFractionDigits:0})}`,p.style.color="#c64509",p.style.fontWeight="bold",p.style.fontSize="10px",l.append(p)}}),i.on("select",o=>{let{start:a,end:s}=o.detail;this.selectedStartDate=J.fromString(a.format("YYYY-MM-DD")),this.selectedEndDate=J.fromString(s.format("YYYY-MM-DD"));let l={startDate:a.format("YYYY-MM-DD").toString(),endDate:s.format("YYYY-MM-DD").toString()};it("date:changed",l)})}},r=new Ma.create(e);this.instance=r,this.destroyInstance=()=>r.destroy()}initFlatpickrCalendar(){let t=document.createElement("link");t.rel="stylesheet",t.href="https://cdn.jsdelivr.net/npm/flatpickr/dist/flatpickr.css",document.head.appendChild(t);let e={mode:"range",showMonths:this.config.calendars,minDate:this.minDate.toString(),shorthandCurrentMonth:!0,monthSelectorType:"static",inline:!1,dateFormat:Zu,lang:document.documentElement.lang,zIndex:10,disable:this.disabledDates};this.config.startWithEmptyDates||(e.defaultDate=[this.config.defaultStartDate.toString(),this.config.defaultEndDate.toString()]),Object.assign(e,{onChange:i=>{let o=K("label",this.dateInputEl);if(i.length===2){this.selectedStartDate=J.fromJSDate(i[0]),this.selectedEndDate=J.fromJSDate(i[1]);let a={startDate:this.selectedStartDate.toString(),endDate:this.selectedEndDate.toString()};if(it("date:changed",a),o){let s=this.formatDate(i[0]),l=this.formatDate(i[1]);o.textContent=`${s} - ${l}`}}else this.selectedStartDate=null,this.selectedEndDate=null,it("date:changed",{startDate:"",endDate:""}),o&&(o.textContent="")},onDayCreate:async(i,o,a,s)=>{let l=s.dateObj,u=J.fromJSDate(l),h=J.formatForAPI(u);if(this.prices[h]){let p=this.prices[h],y=document.createElement("span");y.style.marginTop="2px",y.style.color="#c64509",y.style.fontSize="10px",y.style.fontWeight="bold",y.className=ua,y.textContent=`${p.toLocaleString(qe,{style:"currency",currency:"EUR",maximumFractionDigits:0})}`,s.style.display="flex",s.style.flexDirection="column",s.style.alignItems="center",s.style.justifyContent="center",s.style.lineHeight="1.1",s.appendChild(y)}}});let r=Fd(this.dateInputEl,e);this.instance=r,this.destroyInstance=()=>r.destroy()}clear(){this.selectedStartDate=null,this.selectedEndDate=null,this.config.type==="flatpickr"&&this.instance.clear?.()}destroy(){window.removeEventListener("resize",this.handleResize),this.destroyInstance&&this.destroyInstance()}formatDate(t){let e=J.fromJSDate(t),r=e.year,i=String(e.month).padStart(2,"0"),o=String(e.day).padStart(2,"0");return qe==="en-US"?`${r}/${i}/${o}`:qe==="fr-FR"||qe==="de-DE"?`${o}/${i}/${r}`:`${r}/${i}/${o}`}};var Aa=class{constructor(t){this.parentComponent=t;L(this,"element");L(this,"nightsCountElement");L(this,"startDateElement");L(this,"endDateElement");L(this,"dateElement");L(this,"roomsWrapperElement");L(this,"roomElementTemplate");L(this,"addRoomElement");L(this,"rooms",[]);L(this,"includePrices",Ju);L(this,"populateCalendarInput",async()=>{if(!this.dateElement){console.error("Date element not found");return}let t=new xa(this.dateElement,{type:"flatpickr",showPrices:!0,defaultReservationDays:3,grid:2,calendars:2,darkMode:!1,tooltip:!0,repick:!1,minDays:1,defaultStartDate:F.startDate||Qr,defaultEndDate:F.endDate||uo});if(t.setMinimumDate(Qr),t.setMaximumDate(uo),t.includePrices(this.includePrices),this.includePrices){let e=await Ad([this.parentComponent.apartmentProperties.enterpriseId]);t.setPrices(e)}return t.initialize(),t});nr("date:changed",e=>{F.updateStartDate(J.fromString(e.startDate)),F.updateEndDate(J.fromString(e.endDate))}),this.element=K("details-box"),this.nightsCountElement=K("nights",this.element),this.startDateElement=K("start-date",this.element),this.endDateElement=K("end-date",this.element),this.dateElement=K("date-element",this.element),this.roomsWrapperElement=K("room-box-wrapper",this.element),this.roomElementTemplate=K("room-box",this.element),this.addRoomElement=K("add-room-button",this.element)}init(){console.log("Initialize DetailsSection"),this.updateDOM(),this.populateCalendarInput()}updateDOM(){It(()=>{this.startDateElement.textContent=F.startDate?J.formatForDisplay(F.startDate):"?"}),It(()=>{this.endDateElement.textContent=F.endDate?J.formatForDisplay(F.endDate):"?"}),It(()=>{this.nightsCountElement.textContent=`${F.nightsCount} ${Be("night").toLowerCase()}${F.nightsCount>1?"s":""}`}),It(()=>{let t=document.createDocumentFragment();F.rooms.forEach((r,i)=>{let o=lt(this.roomElementTemplate,!0),a=K("room",o);a.textContent=`${Be("apartment")} ${i+1}`;let s=K("categories-wrapper",o),l=K("age-category",s),u=document.createDocumentFragment();r.forEach(h=>{let p=lt(l,!0),y=K("category-name",p);y.textContent=h.name;let D=K("input",p);po(D,h.value.toString()),xt(p,"click",T=>{T.preventDefault();let C=i;switch(ed(T.target)){case"decrement":if(h.isAdult){if(r.filter($=>$.isAdult).reduce(($,G)=>$+G.value,0)>1&&h.value>0){let $=F.rooms.map((G,W)=>W===C?G.map(ne=>ne.ageCategoryId===h.ageCategoryId?{...ne,value:ne.value-1}:{...ne}):G);F.updateRooms($)}}else if(h.value>0){let N=F.rooms.map(($,G)=>G===C?$.map(W=>W.ageCategoryId===h.ageCategoryId?{...W,value:W.value-1}:{...W}):$);F.updateRooms(N)}break;case"increment":if(this.computations(r).hasCapacity){let N=F.rooms.map(($,G)=>G===C?$.map(W=>W.ageCategoryId===h.ageCategoryId?{...W,value:W.value+1}:{...W}):$);F.updateRooms(N)}break}},{once:!1}),u.appendChild(p)}),s.innerHTML="",s.appendChild(u),t.appendChild(o)}),this.roomsWrapperElement.innerHTML="",this.roomsWrapperElement.appendChild(t);let{maxAllowedRooms:e}={maxAllowedRooms:F.maxAllowedRooms};console.log(`<<debug>> Current rooms: ${F.rooms.length}, Max allowed rooms: ${e}, Available rooms: ${this.parentComponent.apartmentProperties.availableRooms}`),e>0&&F.rooms.length>=e?(console.log(`<<debug>> Hiding add room button: current rooms ${F.rooms.length} >= max allowed ${e}`),this.addRoomElement.classList.add("hide")):e<=0?(console.log(`<<debug>> Max allowed rooms is non-positive (${e}), using available rooms ${this.parentComponent.apartmentProperties.availableRooms} as limit`),F.rooms.length>=this.parentComponent.apartmentProperties.availableRooms&&(console.log(`<<debug>> Hiding add room button: current rooms ${F.rooms.length} >= available rooms ${this.parentComponent.apartmentProperties.availableRooms}`),this.addRoomElement.classList.add("hide"))):(console.log(`<<debug>> Showing add room button: current rooms ${F.rooms.length} < max allowed or available rooms`),this.addRoomElement.classList.remove("hide"))}),xt(this.addRoomElement,"click",t=>{t.preventDefault();let{maxAllowedRooms:e}={maxAllowedRooms:F.maxAllowedRooms};if(F.rooms.length<e){let i=F.ageCategories.map(a=>{let s=a.classification.toLowerCase()==="adult",l=s?Be("adults"):Be("children"),u=s?1:0;return{isAdult:s,ageCategoryId:a.id,name:l,value:u}}),o=[...F.rooms,i];F.updateRooms(o)}})}toggleVisibility(t=!0){this.element.classList.toggle("hide",!t)}computations(t){let e=t.some(a=>a.value>0),r=t.reduce((a,s)=>a+s.value,0),i=r<this.parentComponent.apartmentProperties.capacity,o=t.filter(a=>a.isAdult).reduce((a,s)=>a+s.value,0);return{hasOccupants:e,totalOccupants:r,hasCapacity:i,totalAdults:o}}};var Yd=(n,t)=>{let e={method:"POST",headers:ce.headers,body:JSON.stringify(t)};return Xe("/images/getUrls",e,n)};function $d(n){return n.ImageUrls.map(t=>({url:t.Url,imageId:t.ImageId}))}var Fc=Ze({}),jd={width:160,height:160};async function zd(n,t){if(t.every(i=>Fc.value[i]))return t.map(i=>Fc.value[i]).flat();let e=await Yd(n,{Images:t.map(i=>({ImageId:i,Width:jd.width,Height:jd.height,ResizeMode:"Cover"}))}),r=$d(e);return r.forEach(i=>{Fc.value[i.imageId]=i}),r}var La=class{constructor(t){this.parentComponent=t;L(this,"element");L(this,"productsWrapperElement");L(this,"productTemplateElement");L(this,"showMoreButtonElement");this.element=K("options-box"),this.productsWrapperElement=K("options-list",this.element),this.productTemplateElement=K("option-wrapper",this.element),this.showMoreButtonElement=K("more-button",this.element)}init(){try{this.updateDOM()}catch(t){console.error("Error initializing OptionsSection:",t)}}refresh(){try{}catch(t){console.error("Error refreshing OptionsSection:",t)}}toggleVisibility(t=!0){this.element.classList.toggle("hide",!t)}updateDOM(){let t=document.createDocumentFragment();[...F.products].sort((r,i)=>{if(r.ordering!==i.ordering)return(r.ordering??0)-(i.ordering??0);let o=r.name,a=i.name;return o<a?-1:o>a?1:(r.ordering===i.ordering,0)}).forEach((r,i)=>{let o=lt(this.productTemplateElement,!0);o.removeAttribute("id");let a=K("name",o);a.textContent=r.name||"";let s=K("price",o);s.textContent=r.price.toLocaleString(qe,{style:"currency",currency:"EUR"});let l=K("label",o);l.textContent=Be(`chargingMode:${r.chargingMode}`),zd(this.parentComponent.apartmentProperties.enterpriseId,r.imageIds).then(h=>{let p=K("image",o);p.src=h[0].url});let u=K("checkbox",o);xt(u,"change",()=>{let h=mo(u),p=F.products.map(y=>y.id===r.id?{...y,selected:h==="true"}:y);F.updateProducts(p)}),o.classList.toggle("hide",i>3),t.appendChild(o)}),Ic(this.productsWrapperElement),this.productsWrapperElement.appendChild(t),xt(this.showMoreButtonElement,"click",()=>{let r=this.showMoreProducts(3);this.showMoreButtonElement.classList.toggle("hide",!r)})}showMoreProducts(t=4){let e=this.productsWrapperElement.querySelectorAll(`${Qu(this.productTemplateElement)}.hide`);return e.forEach((r,i)=>{i<t&&r.classList.toggle("hide",!1)}),e.length>t}};var Ud=(n,t)=>{let e=`${ce.bookingEngine_url}/reservationGroups/create`,r={method:"POST",headers:ce.headers,body:JSON.stringify(t)};return fetch(e,r).then(o=>o.json())};var Na=class{constructor(t){this.parentComponent=t;L(this,"element");L(this,"modalContent");L(this,"modalBg");L(this,"openModalBtn");L(this,"closeModalBtn");L(this,"fNameInput");L(this,"lNameInput");L(this,"emailInput");L(this,"phoneInput");L(this,"countryInput");L(this,"notesInput");L(this,"submitPaymentBtn");L(this,"customer",null);this.element=K("payment-modal"),this.modalContent=K("modal-content",this.element),this.modalBg=K("modal-bg",this.element),this.openModalBtn=K("open-modal"),this.closeModalBtn=K("close-modal"),this.fNameInput=K("fname-input",this.element),this.lNameInput=K("lname-input",this.element),this.emailInput=K("email-input",this.element),this.phoneInput=K("phone-input",this.element),this.countryInput=K("country-input",this.element),this.notesInput=K("notes-input",this.element),this.submitPaymentBtn=K("submit-payment",this.element)}init(){console.log("Initialize PaymentModal"),this.updateDOM()}updateDOM(){xt(this.openModalBtn,"click",()=>{this.toggleVisibility(!0),this.element.scrollIntoView({behavior:"smooth"})}),this.submitPaymentBtn?xt(this.submitPaymentBtn,"click",t=>{t.preventDefault(),this.handleSubmit()}):console.error("Submit Payment button not found in the DOM.")}toggleVisibility(t=!0){this.element.classList.toggle("hide",!t),t?(this.element.style.display="flex",this.element.style.opacity="1",this.modalContent.style.opacity="1",this.element.querySelectorAll("div").forEach(e=>{e.style.opacity="1"})):(this.element.style.opacity="0",this.element.style.display="none")}validateInputs(){if(!this.fNameInput.value||!this.lNameInput.value||!this.emailInput.value||!this.phoneInput.value||!this.countryInput.value)throw new Error("First name, last name, email, phone, and nationality are required.");if(!this.emailInput.checkValidity())throw new Error("Invalid email format.");if(!this.phoneInput.checkValidity())throw new Error("Invalid phone number format. Only numbers and spaces are allowed.");if(!this.countryInput.value)throw new Error("Country is required.")}async handleSubmit(){if(!F.startDate||!F.endDate)throw new Error("Start date and end date are required to submit the payment form.");try{this.validateInputs()}catch(s){console.error("Validation error:",s),alert(s instanceof Error?s.message:"An unexpected error occurred.");return}let{startDate:t,endDate:e}={startDate:F.startDate,endDate:F.endDate};this.customer={Email:this.emailInput.value,FirstName:this.fNameInput.value,LastName:this.lNameInput.value,Telephone:this.phoneInput.value,NationalityCode:this.countryInput.value,SendMarketingEmails:!1};let r={Client:ce.bookingEngineClient,HotelId:this.parentComponent.apartmentProperties.enterpriseId,Customer:this.customer,Reservations:F.rooms.map(s=>({RoomCategoryId:this.parentComponent.apartmentProperties.categoryId,StartUtc:J.formatForAPI(t.toString()),EndUtc:J.formatForAPI(e.toString()),VoucherCode:F.couponCode||void 0,RateId:F.selectedRateId||"",AdultCount:s.filter(l=>l.isAdult).reduce((l,u)=>l+u.value,0),ChildCount:s.filter(l=>!l.isAdult).reduce((l,u)=>l+u.value,0),ProductIds:F.selectedProducts.map(l=>l.id),Notes:this.notesInput.value||""}))};console.log("Payload for reservation group:",r);let i=JSON.stringify(r,null,2);console.log("JSON Payload:",i);let o=this.submitPaymentBtn.textContent?.trim()??Be("proceedToPayment");this.submitPaymentBtn.textContent=Be("completePayment"),this.submitPaymentBtn.classList.add("is-disabled");let a=await Ud(this.parentComponent.apartmentProperties.enterpriseId,r);if(console.log("Reservation Response:",a),"PaymentRequestId"in a&&a.PaymentRequestId){let s=new URL(window.location.href);s.pathname="/reservation-confirmee";let l=`https://app.mews.com/navigator/payment-requests/detail/${a.PaymentRequestId}?returnUrl=${btoa(s.toString())}`;console.log("Payment URL:",l),window.open(l,"_blank")}else if("Id"in a&&a.Id){console.log("Free reservation created successfully:",a);let s=new URL(window.location.href);s.pathname="/reservation-confirmee",s.searchParams.set("reservationId",a.Id),console.log("Confirmation URL:",s.toString()),window.location.href=s.toString()}else{this.submitPaymentBtn.classList.remove("is-disabled"),this.submitPaymentBtn.textContent=o;let s="Message"in a&&a.Message?a.Message:"Reservation could not be created. Please try again later or contact Support.";console.error("Reservation creation failed:",a),alert(s);return}}};var Vd=(n,t)=>{let e=`${ce.bookingEngine_url}/vouchers/validate`,r={method:"POST",headers:ce.headers,body:JSON.stringify(t)};return Bn(e,r,n)};var Oa=class{constructor(t){this.parentComponent=t;L(this,"element");L(this,"summaryItemWrapperElement");L(this,"summaryItemElement");L(this,"itemNameTemplateElement");L(this,"itemRowTemplateElement");L(this,"totalPriceElement");L(this,"taxElement");L(this,"submitElement");L(this,"couponInputElement");L(this,"couponApplyElement");L(this,"statusTextElement");nr("loading:start",e=>rr(!0,e)),nr("loading:end",e=>rr(!1,e)),this.element=K("summary-box"),this.summaryItemWrapperElement=K("summary-items-wrapper",this.element),this.summaryItemElement=K("summary-item",this.summaryItemWrapperElement),this.itemNameTemplateElement=K("name",this.summaryItemElement),this.itemRowTemplateElement=K("row",this.summaryItemElement),this.totalPriceElement=K("total",this.element),this.taxElement=K("tax",this.element),this.submitElement=K("submit",this.element),this.couponInputElement=K("coupon-input",this.element),this.couponApplyElement=K("apply-coupon",this.element),this.statusTextElement=K("status-text",this.element)}init(){this.updateDOM(),it("loading:end",this.element)}refresh(){it("loading:end",this.element)}toggleVisibility(t=!0){this.element.classList.toggle("hide",!t),Array.from(this.element.children).forEach(e=>{e instanceof HTMLDivElement&&e.classList.toggle("hide",!t)})}updateDOM(){xt(this.couponInputElement,"input",()=>{F.updateCouponCode(mo(this.couponInputElement))}),xt(this.couponApplyElement,"click",async t=>{t.preventDefault(),it("loading:start",this.element),Vd(this.parentComponent.apartmentProperties.enterpriseId,{Client:ce.bookingEngineClient,HotelId:this.parentComponent.apartmentProperties.enterpriseId,VoucherCode:F.couponCode}).then(async e=>{let{IsValid:r}=e;if(this.statusTextElement.textContent=r?Be("couponValid"):Be("couponInvalid"),this.statusTextElement.style.color=r?"#1bcb00":"#f44900",r)try{it("loading:start",this.element),await this.parentComponent.fetchReservationPricing(),console.log("Reservation pricing updated with voucher code")}catch(i){console.error("Error updating reservation pricing with voucher code:",i),this.statusTextElement.textContent=Be("couponError"),this.statusTextElement.style.color="#f44900"}}).catch(e=>{console.error("Error validating coupon:",e),this.statusTextElement.textContent=Be("couponError"),this.statusTextElement.style.color="#f44900"}).finally(()=>{it("loading:end",this.element),this.statusTextElement.classList.toggle("hide",!1)})}),It(()=>{this.couponInputElement.value!==F.couponCode&&po(this.couponInputElement,F.couponCode);let e=F.getReadonlyState().computed.summary;if(F.isFetching){rr(!0,this.element);return}rr(!1,this.element),this.summaryItemWrapperElement.innerHTML="",e.items.forEach(i=>{let o=this.summaryItemElement.cloneNode(!0),a=K("name",o),s=K("row",o),l=document.createDocumentFragment(),u=i.occupancy.adults||0,h=i.occupancy.children||0,p=lt(a,!0);p.textContent=`[${u} ${Be("adults").toLowerCase()}${h>0?`, ${h} ${Be("children").toLowerCase()}`:""}] x ${i.quantity}`,l.appendChild(p);let y=lt(a,!0);y.textContent=`${i.pricing.avgPerNight.toLocaleString(qe,{style:"currency",currency:"EUR"})}/ ${Be("night")}`,l.appendChild(y);let D=lt(s,!0),T=K("label",D),C=K("price",D);if(T.textContent=`service (${F.nightsCount} ${Be("night").toLowerCase()}${F.nightsCount>1?"s":""}):`,C.textContent=i.pricing.service.toLocaleString?.(qe,{style:"currency",currency:"EUR"})??null,l.appendChild(D),F.selectedProducts.length>0){let se=lt(s,!0),B=K("label",se);K("price",se).remove();let Y=F.selectedProducts.map(ae=>ae.name).join(", ");B.textContent=`Products: ${Y}`,l.appendChild(se)}let N=lt(s,!0),$=K("label",N);$.textContent="Products & Extras:";let G=K("price",N);G.textContent=i.pricing.products.toLocaleString(qe,{style:"currency",currency:"EUR"}),l.appendChild(N);let W=lt(s,!0),ne=K("label",W);ne.textContent="Taxes:";let le=K("price",W);le.textContent=i.pricing.taxes.toLocaleString(qe,{style:"currency",currency:"EUR"}),l.appendChild(W);let oe=lt(s,!0),Ce=K("label",oe);Ce.textContent="Subtotal:";let Te=K("price",oe);Te.textContent=i.pricing.subtotal.toLocaleString(qe,{style:"currency",currency:"EUR"}),l.appendChild(oe),o.innerHTML="",o.appendChild(l),this.summaryItemWrapperElement.appendChild(o)});let r=e.totals.taxes||0;this.taxElement.textContent=r>0?r.toLocaleString(qe,{style:"currency",currency:"EUR"}):"--",this.totalPriceElement.textContent=e.totals.grandTotal.toLocaleString(qe,{style:"currency",currency:"EUR"})})}};var Ha=class{constructor(t){this.parentComponent=t;L(this,"element");L(this,"tariffsWrapperElement");L(this,"tariffTemplateElement");this.element=K("offer-box"),this.tariffsWrapperElement=K("offers-list",this.element),this.tariffTemplateElement=K("offer-wrapper",this.element)}init(){this.updateDOM()}refresh(){}toggleVisibility(t=!0){this.element.classList.toggle("hide",!t)}updateDOM(){It(()=>{if(F.isFetching){console.log("[TariffsSection] Skipping render during fetch operation");return}if(F.computedRates.length===0){console.log("[TariffsSection] No computed rates available, skipping render");return}console.log("[TariffsSection] Rendering tariffs:",{ratesCount:F.computedRates.length,isFetching:F.isFetching});let t=document.createDocumentFragment();F.computedRates.sort((r,i)=>{let o=r.price?.AverageAmountPerTimeUnit?.GrossValue||0,a=i.price?.AverageAmountPerTimeUnit?.GrossValue||0;return o-a}).forEach(r=>{let i=lt(this.tariffTemplateElement,!0);i.removeAttribute("id");let o=K("name",i);o.textContent=r.name;let a=K("description",i);a.textContent=r.description;let s=K("price",i),l=r.price?.AverageAmountPerTimeUnit?.GrossValue||0;s.textContent=l.toLocaleString(qe,{style:"currency",currency:"EUR"});let u=F.rates.find(T=>T.id===r.id),h=K("label",i),p=K("discount-badge",i),y=K("discount-label",p);if(u)if(h.textContent=u.shortName,u.pricing?.DependentRatePricing){let T=u.pricing?.DependentRatePricing.RelativeAdjustment*100;T===0?p.classList.add("hide"):y.textContent=`${T>0?"+":""}${T}%`}else p.classList.add("hide");else h.classList.add("hide"),p.classList.add("hide");let D=K("radio-input",i);D.value=r.id,r.id===F.selectedRateId&&D.previousElementSibling.classList.add("w--redirected-checked"),xt(D,"change",()=>{D.checked&&F.updateSelectedRateId(r.id)}),t.appendChild(i)}),this.tariffsWrapperElement.innerHTML="",this.tariffsWrapperElement.appendChild(t)})}};var Ba=class{constructor(t){L(this,"apartmentProperties");L(this,"detailsSection");L(this,"optionsSection");L(this,"tariffsSection");L(this,"summarySection");L(this,"paymentModal");nr("loading:start",e=>rr(!0,e)),nr("loading:end",e=>rr(!1,e)),this.apartmentProperties=t,F.setCmsApartmentData(t)}init(){it("loading:start",document.body);let t=Yt.startDate?J.safeParsePlainDate(Yt.startDate):Qr,e=Yt.endDate?J.safeParsePlainDate(Yt.endDate):uo;t&&F.updateStartDate(t),e&&F.updateEndDate(e),this.fetchAPIData().then(()=>{this.parseAPIData().then(()=>{let r=F.rates.find(i=>i.isDefault||i.isBaseRate);console.log("#=> Default Rate:",r),F.updateSelectedRateId(r?.id||F.computedRates.find(i=>i.ordering===0&&i.groupOrdering===0)?.id||F.computedRates[0]?.id||null),this.detailsSection=new Aa(this),this.detailsSection.init(),this.optionsSection=new La(this),this.optionsSection.toggleVisibility(!0),this.optionsSection.init(),this.tariffsSection=new Ha(this),this.tariffsSection.toggleVisibility(!0),this.tariffsSection.init(),this.summarySection=new Oa(this),this.summarySection.toggleVisibility(!0),this.summarySection.init(),this.paymentModal=new Na(this),this.paymentModal.toggleVisibility(!1),this.paymentModal.init(),this.initPricingButler(),this.initAvailabilityPricingUpdater(),it("loading:end",document.body)}).catch(r=>{console.error("Error initializing reservation component",r),alert("An error occurred. Please try again later.")})}),console.log("#=> State:",F.getReadonlyState())}initPricingButler(){let t=(0,Yc.default)(async()=>{console.log("[PricingButler] Fetching reservation pricing..."),await F.fetchReservationPricing(this.apartmentProperties.enterpriseId,this.apartmentProperties.categoryId)},500);It(()=>{let{rooms:e}=F,{startDate:r}=F,{endDate:i}=F,{selectedProducts:o}=F,{selectedRateId:a}=F,{couponCode:s}=F;if(console.log("[PricingButler] Dependencies changed:",{roomsCount:e.length,startDate:r?.toString(),endDate:i?.toString(),selectedProductsCount:o.length,selectedRateId:a,couponCode:s}),e.length===0){console.log("[PricingButler] No rooms set, skipping pricing update.");return}if(!r||!i){console.log("[PricingButler] Start date or end date is not set, skipping pricing update.");return}if(J.isBefore(r,i)){console.log("[PricingButler] Start date is after or equal to end date, skipping pricing update.");return}t()})}initAvailabilityPricingUpdater(){let t=(0,Yc.default)(async()=>{try{await F.fetchAvailability(this.apartmentProperties.enterpriseId,this.apartmentProperties.categoryId),await F.fetchServicePricing(this.apartmentProperties.enterpriseId,this.apartmentProperties.categoryId),it("loading:end",document.body)}catch(e){console.error("Error updating availability and pricing data:",e)}},500);It(()=>{it("loading:start",document.body);let{startDate:e,endDate:r}={startDate:F.startDate,endDate:F.endDate};if(!e||!r){console.warn("Start date or end date is not set, skipping availability and pricing updates.");return}if(J.isBefore(e,r)){console.warn("Start date is after or equal to end date, skipping API requests.");return}t()}),It(()=>{it("loading:start",document.body);let{availabilities:e,servicePricing:r,isAvailable:i,restrictionMessage:o}={availabilities:F.availabilities,servicePricing:F.servicePricing,isAvailable:F.isAvailable,restrictionMessage:F.restrictionMessage};if(this.updateAvailabilityBanners(i,o),this.optionsSection&&this.optionsSection.toggleVisibility(i),this.tariffsSection&&this.tariffsSection.toggleVisibility(i),this.summarySection&&this.summarySection.toggleVisibility(i),r&&!F.selectedRateId&&F.computedRates.length>0){let a=F.rates.find(s=>s.isDefault||s.isBaseRate);F.updateSelectedRateId(a?.id||F.computedRates.find(s=>s.ordering===0&&s.groupOrdering===0)?.id||F.computedRates[0]?.id||null)}e&&r&&this.refreshUIComponents()})}async fetchAPIData(){console.log("#=> Fetching API data for reservation component..."),await F.initializeResources(this.apartmentProperties.enterpriseId),await F.initializeRooms(),await F.fetchHotel(this.apartmentProperties.enterpriseId),await F.fetchAvailability(this.apartmentProperties.enterpriseId,this.apartmentProperties.categoryId),await F.fetchServicePricing(this.apartmentProperties.enterpriseId,this.apartmentProperties.categoryId),await F.fetchReservationPricing(this.apartmentProperties.enterpriseId,this.apartmentProperties.categoryId),await F.fetchRates(this.apartmentProperties.enterpriseId)}async parseAPIData(){}refreshUIComponents(){if(F.computedRates.length>0&&!F.selectedRateId){let t=F.rates.find(e=>e.isDefault||e.isBaseRate);F.updateSelectedRateId(t?.id||F.computedRates.find(e=>e.ordering===0&&e.groupOrdering===0)?.id||F.computedRates[0]?.id||null)}this.updateAvailabilityBanners(F.isAvailable,F.restrictionMessage),this.optionsSection&&(this.optionsSection.toggleVisibility(F.isAvailable),this.optionsSection.refresh()),this.tariffsSection&&(this.tariffsSection.toggleVisibility(F.isAvailable),this.tariffsSection.refresh()),this.summarySection&&(this.summarySection.toggleVisibility(F.isAvailable),this.summarySection.refresh()),it("loading:end",document.body)}updateAvailabilityBanners(t,e){let r=K("banner-box"),i=K("banner-box-restriction"),o=K("banner-restriction-text");e?(o&&(o.textContent=e),i&&i.classList.remove("hide"),r&&r.classList.add("hide")):t?(r&&r.classList.add("hide"),i&&i.classList.add("hide")):(r&&r.classList.remove("hide"),i&&i.classList.add("hide"))}async fetchReservationPricing(){try{await F.fetchServicePricing(this.apartmentProperties.enterpriseId,this.apartmentProperties.categoryId);let t=await F.fetchReservationPricing(this.apartmentProperties.enterpriseId,this.apartmentProperties.categoryId);return this.refreshUIComponents(),t}catch(t){throw console.error("Error fetching reservation pricing:",t),t}}handleDateChange(t,e){return t&&e&&Re.PlainDate.compare(t,e)>=0?(console.warn("Invalid date range: start date must be before end date"),!1):(t&&F.updateStartDate(t),e&&F.updateEndDate(e),!0)}scrollToTariffsSection(){let t=document.getElementById("tariff-section");t&&setTimeout(()=>{t.scrollIntoView({behavior:"smooth",block:"start"})},300)}};function Km(){try{let n=window.WebflowCMSData_apartment;console.log("#=> Properties",n),new Ba(n).init()}catch(n){console.error("Error initializing reservation component",n)}}window.Webflow||(window.Webflow=[]);window.Webflow.push(async()=>{Km()});export{Km as initApparthotelsBookingTemplate};
8
8
  /*! Bundled license information:
9
9
 
10
10
  @vue/shared/dist/shared.esm-bundler.js:
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@influence-society-web/yuna-frontend",
3
- "version": "1.0.12",
3
+ "version": "1.0.13",
4
4
  "description": "An Influence Society site",
5
5
  "homepage": "https://github.com/finsweet/client-influence-society#readme",
6
6
  "license": "ISC",