UNPKG

vue3-hotels-datepicker

Version:

This template should help get you started developing with Vue 3 and TypeScript in Vite. The template uses Vue 3 `<script setup>` SFCs, check out the [script setup docs](https://v3.vuejs.org/api/sfc-script-setup.html#sfc-script-setup) to learn more.

2 lines (1 loc) 23.8 kB
(function(_,l){typeof exports=="object"&&typeof module<"u"?l(exports,require("vue")):typeof define=="function"&&define.amd?define(["exports","vue"],l):(_=typeof globalThis<"u"?globalThis:_||self,l(_.Vue3HotelDatePicker={},_.Vue))})(this,function(_,l){"use strict";var de=/d{1,4}|M{1,4}|YY(?:YY)?|S{1,3}|Do|ZZ|Z|([HhMsDm])\1?|[aA]|"[^"]*"|'[^']*'/g,V="\\d\\d?",H="\\d\\d",We="\\d{3}",_e="\\d{4}",J="[^\\s]+",he=/\[([^]*?)\]/gm;function me(a,o){for(var n=[],M=0,f=a.length;M<f;M++)n.push(a[M].substr(0,o));return n}var ve=function(a){return function(o,n){var M=n[a].map(function(S){return S.toLowerCase()}),f=M.indexOf(o.toLowerCase());return f>-1?f:null}};function L(a){for(var o=[],n=1;n<arguments.length;n++)o[n-1]=arguments[n];for(var M=0,f=o;M<f.length;M++){var S=f[M];for(var O in S)a[O]=S[O]}return a}var De=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],ge=["January","February","March","April","May","June","July","August","September","October","November","December"],ze=me(ge,3),Ae=me(De,3),Le={dayNamesShort:Ae,dayNames:De,monthNamesShort:ze,monthNames:ge,amPm:["am","pm"],DoFn:function(a){return a+["th","st","nd","rd"][a%10>3?0:(a-a%10!==10?1:0)*a%10]}},G=L({},Le),$e=function(a){return G=L(G,a)},pe=function(a){return a.replace(/[|\\{()[^$+*?.-]/g,"\\$&")},w=function(a,o){for(o===void 0&&(o=2),a=String(a);a.length<o;)a="0"+a;return a},Ze={D:function(a){return String(a.getDate())},DD:function(a){return w(a.getDate())},Do:function(a,o){return o.DoFn(a.getDate())},d:function(a){return String(a.getDay())},dd:function(a){return w(a.getDay())},ddd:function(a,o){return o.dayNamesShort[a.getDay()]},dddd:function(a,o){return o.dayNames[a.getDay()]},M:function(a){return String(a.getMonth()+1)},MM:function(a){return w(a.getMonth()+1)},MMM:function(a,o){return o.monthNamesShort[a.getMonth()]},MMMM:function(a,o){return o.monthNames[a.getMonth()]},YY:function(a){return w(String(a.getFullYear()),4).substr(2)},YYYY:function(a){return w(a.getFullYear(),4)},h:function(a){return String(a.getHours()%12||12)},hh:function(a){return w(a.getHours()%12||12)},H:function(a){return String(a.getHours())},HH:function(a){return w(a.getHours())},m:function(a){return String(a.getMinutes())},mm:function(a){return w(a.getMinutes())},s:function(a){return String(a.getSeconds())},ss:function(a){return w(a.getSeconds())},S:function(a){return String(Math.round(a.getMilliseconds()/100))},SS:function(a){return w(Math.round(a.getMilliseconds()/10),2)},SSS:function(a){return w(a.getMilliseconds(),3)},a:function(a,o){return a.getHours()<12?o.amPm[0]:o.amPm[1]},A:function(a,o){return a.getHours()<12?o.amPm[0].toUpperCase():o.amPm[1].toUpperCase()},ZZ:function(a){var o=a.getTimezoneOffset();return(o>0?"-":"+")+w(Math.floor(Math.abs(o)/60)*100+Math.abs(o)%60,4)},Z:function(a){var o=a.getTimezoneOffset();return(o>0?"-":"+")+w(Math.floor(Math.abs(o)/60),2)+":"+w(Math.abs(o)%60,2)}},Me=function(a){return+a-1},ye=[null,V],be=[null,J],Ye=["isPm",J,function(a,o){var n=a.toLowerCase();return n===o.amPm[0]?0:n===o.amPm[1]?1:null}],ke=["timezoneOffset","[^\\s]*?[\\+\\-]\\d\\d:?\\d\\d|[^\\s]*?Z?",function(a){var o=(a+"").match(/([+-]|\d\d)/gi);if(o){var n=+o[1]*60+parseInt(o[2],10);return o[0]==="+"?n:-n}return 0}],Re={D:["day",V],DD:["day",H],Do:["day",V+J,function(a){return parseInt(a,10)}],M:["month",V,Me],MM:["month",H,Me],YY:["year",H,function(a){var o=new Date,n=+(""+o.getFullYear()).substr(0,2);return+(""+(+a>68?n-1:n)+a)}],h:["hour",V,void 0,"isPm"],hh:["hour",H,void 0,"isPm"],H:["hour",V],HH:["hour",H],m:["minute",V],mm:["minute",H],s:["second",V],ss:["second",H],YYYY:["year",_e],S:["millisecond","\\d",function(a){return+a*100}],SS:["millisecond",H,function(a){return+a*10}],SSS:["millisecond",We],d:ye,dd:ye,ddd:be,dddd:be,MMM:["month",J,ve("monthNamesShort")],MMMM:["month",J,ve("monthNames")],a:Ye,A:Ye,ZZ:ke,Z:ke},ae={default:"ddd MMM DD YYYY HH:mm:ss",shortDate:"M/D/YY",mediumDate:"MMM D, YYYY",longDate:"MMMM D, YYYY",fullDate:"dddd, MMMM D, YYYY",isoDate:"YYYY-MM-DD",isoDateTime:"YYYY-MM-DDTHH:mm:ssZ",shortTime:"HH:mm",mediumTime:"HH:mm:ss",longTime:"HH:mm:ss.SSS"},F=function(a,o,n){if(o===void 0&&(o=ae.default),n===void 0&&(n={}),typeof a=="number"&&(a=new Date(a)),Object.prototype.toString.call(a)!=="[object Date]"||isNaN(a.getTime()))throw new Error("Invalid Date pass to format");o=ae[o]||o;var M=[];o=o.replace(he,function(S,O){return M.push(O),"@@@"});var f=L(L({},G),n);return o=o.replace(de,function(S){return Ze[S](a,f)}),o.replace(/@@@/g,function(){return M.shift()})};function we(a,o,n){if(n===void 0&&(n={}),typeof o!="string")throw new Error("Invalid format in fecha parse");if(o=ae[o]||o,a.length>1e3)return null;var M=new Date,f={year:M.getFullYear(),month:0,day:1,hour:0,minute:0,second:0,millisecond:0,isPm:null,timezoneOffset:null},S=[],O=[],z=o.replace(he,function(T,C){return O.push(pe(C)),"@@@"}),A={},K={};z=pe(z).replace(de,function(T){var C=Re[T],D=C[0],Y=C[1],u=C[3];if(A[D])throw new Error("Invalid format. "+D+" specified twice in format");return A[D]=!0,u&&(K[u]=!0),S.push(C),"("+Y+")"}),Object.keys(K).forEach(function(T){if(!A[T])throw new Error("Invalid format. "+T+" is required in specified format")}),z=z.replace(/@@@/g,function(){return O.shift()});var $=a.match(new RegExp(z,"i"));if(!$)return null;for(var E=L(L({},G),n),v=1;v<$.length;v++){var c=S[v-1],d=c[0],Q=c[2],P=Q?Q($[v],E):+$[v];if(P==null)return null;f[d]=P}f.isPm===1&&f.hour!=null&&+f.hour!=12?f.hour=+f.hour+12:f.isPm===0&&+f.hour==12&&(f.hour=0);var g;if(f.timezoneOffset==null){g=new Date(f.year,f.month,f.day,f.hour,f.minute,f.second,f.millisecond);for(var B=[["month","getMonth"],["day","getDate"],["hour","getHours"],["minute","getMinutes"],["second","getSeconds"]],v=0,se=B.length;v<se;v++)if(A[B[v][0]]&&f[B[v][0]]!==g[B[v][1]]())return null}else if(g=new Date(Date.UTC(f.year,f.month,f.day,f.hour,f.minute-f.timezoneOffset,f.second,f.millisecond)),f.month>11||f.month<0||f.day>31||f.day<1||f.hour>23||f.hour<0||f.minute>59||f.minute<0||f.second>59||f.second<0)return null;return g}const Je={class:"month_control_panel"},qe={class:"month_control_item"},Ue=["onClick"],je={class:"month_control_item"},Ge={class:"month_control_item"},Ke=["onClick"],Qe={class:"month_box"},Xe={class:"week_name"},et=["onClick","onMouseover"],tt=((a,o)=>{const n=a.__vccOpts||a;for(const[M,f]of o)n[M]=f;return n})(l.defineComponent({__name:"Vue3HotelDatePicker",props:{format:{default:"YYYY-MM-DD",type:String},startOfWeek:{default:"monday",type:String},separator:{default:"-",type:String},selectedDates:!1,startDate:!1,endDate:{default:!1,type:[String,Boolean]},minDate:{default:()=>new Date},maxDate:!1,disabledDaysOfWeek:{default:()=>[]},showTopbar:!1,moveBothMonths:!1,ariaDayFormat:"dddd, MMMM DD, YYYY",noCheckOutDates:{default:()=>[]},noCheckInDates:{default:()=>[]},noCheckInDaysOfWeek:{default:()=>[]},noCheckOutDaysOfWeek:{default:()=>[]},maxNights:0,minNights:1,singleMonthBreakpoint:{default:!1,type:[Number,Boolean]},topbarPosition:"top",onOpenDatepicker:Boolean,minNightsMultiple:Boolean,selectForward:Boolean,showSingleMonth:Boolean,disabledDates:{default:!1,type:[Array,Boolean]},daysWithExtraText:{default:()=>[]},enableCheckout:Boolean,getValues:null,extraDayText:null,i18n:{default:()=>({selected:"Your stay:",night:"Night",nights:"Nights",button:"Close",clearButton:"Clear",submitButton:"Submit","checkin-disabled":"Check-in disabled","checkout-disabled":"Check-out disabled","day-names-short":["sun","mon","tue","wed","thu","fri","sat"],"day-names":["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],"month-names-short":["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],"month-names":["January","February","March","April","May","June","July","August","September","October","November","December"],"error-more":"Date range should not be more than 1 night","error-more-plural":"Date range should not be more than %d nights","error-less":"Date range should not be less than 1 night","error-less-plural":"Date range should not be less than %d nights","not selected":"Not selected","info-more":"Please select a date range of at least 1 night","info-more-plural":"Please select a date range of at least %d nights","info-range":"Please select a date range between %d and %d nights","info-range-equal":"Please select a date range of %d nights","info-default":"Please select a date range","aria-application":"Calendar","aria-selected-checkin":"Selected as check-in date, %s","aria-selected-checkout":"Selected as check-out date, %s","aria-selected":"Selected, %s","aria-disabled":"Not available, %s","aria-choose-checkin":"Choose %s as your check-in date","aria-choose-checkout":"Choose %s as your check-out date","aria-prev-month":"Move backward to switch to the previous month","aria-next-month":"Move forward to switch to the next month","aria-close-button":"Close the datepicker","aria-clear-button":"Clear the selected dates","aria-submit-button":"Submit the form"})}},emits:{select:a=>!0},setup(a,{emit:o}){const n=a,M=e=>{Q.value=e},f=()=>{$e({dayNamesShort:n.i18n["day-names-short"],dayNames:n.i18n["day-names"],monthNamesShort:n.i18n["month-names-short"],monthNames:n.i18n["month-names"]})},S=o,O=l.ref(!0);l.ref(!1);const z=l.ref(!1),A=l.ref(!1),K=l.ref(!1),$=l.ref(!1),E=l.ref(n.maxNights),v=l.ref(n.minNights),c=l.ref(n.startDate??!1),d=l.ref(n.endDate??!1),Q=l.ref(null),P=l.ref(null);l.ref([]);const g=l.ref({}),B=l.ref(0);l.ref(null);const se=l.ref(null);l.ref(n.onOpenDatepicker??n.onOpenDatepicker),z.value=!1,A.value=!1,K.value=!1,$.value=!1;const T=l.ref(n.startDate),C=l.ref(n.endDate),D=l.ref([]),Y=l.ref({start:null,end:null}),u=l.ref({months:[],open:!0,submitButton:!1,clearButton:!1,showSingleMonth:n.showSingleMonth}),re=l.computed({error:!1,textContent:"",show:!1}),nt=()=>{let e=[];if(n.startOfWeek==="monday"){for(let t=0;t<7;t++)e.push(ue("day-names-short")[(1+t)%7]);return e}for(let t=0;t<7;t++)e.push(ue("day-names-short")[t]);return e},at=e=>ue("month-names")[e],Z=e=>{const t=new Date(e.valueOf());return new Date(t.setMonth(t.getMonth()+1,1))},le=e=>{const t=new Date(e.valueOf());return new Date(t.setMonth(t.getMonth()-1,1))},m=(e,t=null)=>{let r=t??n.format;return f(),F(e,r)},q=(e,t=null)=>{let r=t??n.format;return f(),we(e,r)},st=()=>{v.value=n.minNights>1?n.minNights+1:2,E.value=n.maxNights>0?n.maxNights+1:0,n.startDate&&typeof n.startDate=="string"&&(T.value=q(n.startDate)),n.endDate&&typeof n.endDate=="string"&&(C.value=q(C.value)),n.disabledDates.length>0&&Dt(),n.disabledDaysOfWeek.length>0&&gt(),T.value&&C.value?yt(T.value,C.value):xe(),se.value&&(O.value||!c.value&&!d.value)&&(u.value.clearButton=!0),B.value=0,P.value=!1},W=(e,t)=>{e=new Date(e);let r={name:at(e.getMonth()),month:e.getMonth(),year:e.getFullYear(),id:e.getFullYear()+e.getMonth(),days:[],nextBtn:!0,prevBtn:!0};e.setHours(0,0,0,0),r.days=rt(e),u.value.months.splice(t-1,1,r),Ie(),g.value["month"+t]=e},rt=e=>{const t=[],r=[];let s;e.setDate(1);let i=e.getDay();const y=e.getMonth();if(i===0&&n.startOfWeek==="monday"&&(i=7),i>0)for(let p=i;p>0;p--){const h=new Date(e.getTime()-864e5*p);s=ee(h.getTime()),(n.minDate&&b(h,n.minDate)<0||n.maxDate&&b(h,n.maxDate)>0)&&(s=!1),t.push({date:h,type:"lastMonth",day:h.getDate(),time:h.getTime(),tabindex:0,attributes:[],isNoCheckOut:!1,isValid:s,isNoCheckIn:!1,isCurrentMonth:!1})}for(let p=0;p<40;p++){const h=U(e,p);s=ee(h.getTime()),(n.minDate&&b(h,n.minDate)<0||n.maxDate&&b(h,n.maxDate)>0)&&(s=!1),t.push({date:h,type:h.getMonth()===y?"visibleMonth":"nextMonth",day:h.getDate(),time:h.getTime(),tabindex:0,attributes:[],isCurrentMonth:h.getMonth()===y,isValid:s,isNoCheckIn:!1,isNoCheckOut:!1})}for(let p=0;p<6&&t[p*7].type!=="nextMonth";p++)for(let h=0;h<7;h++){let k=n.startOfWeek==="monday"?h+1:h;k=t[p*7+k],r.push(Se(k))}return r},Se=e=>{const t=m(e.time)===m(new Date),r=m(e.time)===m(n.minDate),s=n.daysWithExtraText.indexOf(m(e.time))>-1;let i=!1,y=!1,p=!1,h=!1,k=!1,Pe=!1;if(e.valid||e.type==="visibleMonth"){const fe=m(e.time,"YYYY-MM-DD");if(n.disabledDates.length>0){const I=He(e.date);if(I[0]===!1&&(I[0]=Oe(T.value,1)),I[0]&&I[1]&&b(e.date,I[0])&&N(I[0],I[1])-2>0){const ce=N(I[1],e.date)-1,kt=N(e.date,I[0])-1;(n.selectForward&&ce<v.value||!n.selectForward&&ce<v.value&&kt<v.value)&&(e.isValid=!1),!e.isValid&&n.enableCheckout&&ce===2&&(Pe=!0)}n.disabledDates.indexOf(fe)>-1?(e.isValid=!1,i=!0,B.value++,P.value=e.date):B.value=0,e.isValid&&P.value&&b(e.date,P.value)>0&&N(e.date,P.value)===2&&(k=!0)}n.disabledDaysOfWeek.length>0&&n.disabledDaysOfWeek.indexOf(F(e.time,"dddd"))>-1&&(e.isValid=!1,h=!0),n.noCheckInDates.length>0&&n.noCheckInDates.indexOf(fe)>-1&&(y=!0,k=!1),n.noCheckOutDates.length>0&&n.noCheckOutDates.indexOf(fe)>-1&&(p=!0),n.noCheckInDaysOfWeek.length>0&&n.noCheckInDaysOfWeek.indexOf(F(e.time,"dddd"))>-1&&(y=!0,k=!1),n.noCheckOutDaysOfWeek.length>0&&n.noCheckOutDaysOfWeek.indexOf(F(e.time,"dddd"))>-1&&(p=!0)}return e.isToday=t,e.isDisabled=i,e.isCheckOutEnabled=i&&n.enableCheckout&&B.value===1,e.isDayBeforeDisabledDate=Pe,e.isCheckInOnly=r||k,e.isNoCheckIn=y,e.isNoCheckOut=p,e.isDayOfWeekDisabled=h,e.isDayWithExtraText=s,e},lt=()=>{for(let e=0;e<u.value.months.length;e++)for(let t=0;t<u.value.months[e].days.length;t++){const r=parseInt(u.value.months[e].days[t].time,10),s=new Date(r);let i;i=ee(s.getTime()),(n.minDate&&b(s,n.minDate)<0||n.maxDate&&b(s,n.maxDate)>0)&&(i=!1),u.value.months[e].days[t].isValid=i,u.value.months[e].days[t]=Se(u.value.months[e].days[t])}},xe=()=>{W(n.minDate,1),W(Z(n.minDate),2),j()},ot=(e,t,...r)=>{if(r.length>0&&r[0]!==void 0&&r[0],e.getTime()>t.getTime()){let i=t;t=e,e=i,i=null}let s=!0;if((n.minDate&&b(e,n.minDate)<0||n.maxDate&&b(t,n.maxDate)>0)&&(s=!1),!s){xe();return}e.setTime(e.getTime()+12*60*60*1e3),t.setTime(t.getTime()+12*60*60*1e3),c.value=e.getTime(),d.value=t.getTime(),b(e,t)>0&&te(e,t)===0&&(t=Z(e)),te(e,t)===0&&(t=Z(e)),W(e,1),W(t,2),X(),j(),Ne(),Ce()},X=()=>{if(!(!c.value&&!d.value))for(let e=0;e<u.value.months.length;e++)for(let t=0;t<u.value.months[e].days.length;t++){const r=u.value.months[e].days[t],s=parseInt(r.time,10);c.value&&d.value&&d.value>=s&&c.value<=s||c.value&&!d.value&&m(c.value,"YYYY-MM-DD")===m(s,"YYYY-MM-DD")?r.isSelected=!0:r.isSelected=!1,c.value&&m(c.value,"YYYY-MM-DD")===m(s,"YYYY-MM-DD")?r.isFirstDaySelected=!0:r.isFirstDaySelected=!1,d.value&&m(d.value,"YYYY-MM-DD")===m(s,"YYYY-MM-DD")?r.isLastDaySelected=!0:r.isLastDaySelected=!1,u.value.months[e].days[t]=Object.assign({},r)}},Ce=()=>{if(!n.showTopbar){if(c.value&&d.value){const e=m(new Date(c.value))+n.separator+m(new Date(d.value));M(e,m(new Date(c.value)),m(new Date(d.value))),A.value=!0}return}},it=(e,t)=>{if(!e.isValid)return;const r=Y.value.start===null,s=parseInt(e.time,10);if(!(Y.value.start&&Y.value.start.day===e.day)){if(r){if(e.isNoCheckIn)return}else if(c.value&&(c.value>s&&e.isNoCheckIn||Y.value.start&&Y.value.start.isNoCheckIn&&c.value>s||e.isNoCheckOut&&s>c.value))return;if(r?(Y.value.start=e,c.value=s,d.value=!1):c.value&&(Y.value.end=e,d.value=s,bt()),c.value&&d.value&&c.value>d.value){const i=d.value;d.value=c.value,c.value=i}c.value=parseInt(c.value,10),d.value=parseInt(d.value,10),vt(),c.value&&!d.value&&Ve(e),Ie(),Ne(),Ce(),c.value&&d.value&&lt(),X(),d.value&&S("select",{start:c.value,end:d.value}),Y.value.end&&ut()}},ut=()=>{Y.value.start=null,Y.value.end=null},ee=e=>{if(e=parseInt(e,10),n.minDate&&b(e,n.minDate)<0||n.maxDate&&b(e,n.maxDate)>0)return!1;if(c.value&&!d.value){if(E.value>0&&N(e,c.value)>E.value||v.value>0&&N(e,c.value)>1&&N(e,c.value)<v.value||n.minNightsMultiple&&(N(e,c.value)-1)%7!==0||n.selectForward&&e<c.value)return!1;if(n.disabledDates.length>0){const t=He(new Date(parseInt(c.value,10)));if(t[0]&&b(e,t[0])<=0||t[1]&&b(e,t[1])>=0)return!1}if(n.disabledDaysOfWeek.length>0){const t=pt(new Date(parseInt(c.value,10)));if(t[0]&&b(e,t[0])<=0||t[1]&&b(e,t[1])>=0)return!1}}return!0},Te=()=>{for(let e=0;e<u.value.months.length;e++)for(let t=0;t<u.value.months[e].days.length;t++)u.value.months[e].days[t].selected=!1,u.value.months[e].days[t].isFirstDaySelected=!1,u.value.months[e].days[t].isLastDaySelected=!1;return!0},Ne=()=>{const e=N(d.value,c.value);if(E.value&&e>E.value){if(c.value=!1,d.value=!1,Te(),n.showTopbar){const t=E.value-1;re.value.error=t}}else if(v.value&&e<v.value){if(c.value=!1,d.value=!1,Te(),n.showTopbar){const t=v.value-1;topBarErrorText(bar,"error-less",t)}}else c.value||d.value,n.showTopbar&&(re.value.error="")},U=(e,t)=>{const r=new Date(e);return r.setDate(r.getDate()+t),r},Oe=(e,t)=>{const r=new Date(e);return r.setDate(r.getDate()-t),r},N=(e,t)=>Math.abs(Be(e)-Be(t))+1,b=(e,t)=>{const r=parseInt(m(e,"YYYYMMDD"),10)-parseInt(m(t,"YYYYMMDD"),10);return r>0?1:r===0?0:-1},te=(e,t)=>{const r=parseInt(m(e,"YYYYMM"),10)-parseInt(m(t,"YYYYMM"),10);return r>0?1:r===0?0:-1},Be=e=>Math.round(ft(e)/864e5),ft=e=>(typeof e=="object"&&e.getTime&&(e=e.getTime()),typeof e=="string"&&!e.match(/\d{13}/)&&(e=q(e).getTime()),e=parseInt(e,10)-new Date().getTimezoneOffset()*60*1e3,e),ct=(e,t)=>{const r=t===1;let s=r?g.value.month2:g.value.month1;return s=Z(s),!ne()&&!r&&te(s,g.value.month2)>=0||R(s)?!1:(n.moveBothMonths&&r&&W(g.value.month2,1),W(s,t+1),X(),j(),!0)},dt=(e,t)=>{const r=t===1;let s=r?g.value.month2:g.value.month1;return s=le(s),r&&te(s,g.value.month1)<=0||R(s)?!1:(n.moveBothMonths&&!r&&W(g.value.month1,2),W(s,t+1),X(),j(),!0)},oe=l.ref([]),ne=()=>n.showSingleMonth||ht(),ht=()=>n.singleMonthBreakpoint?window.innerWidth<n.singleMonthBreakpoint:window.innerWidth<mt(),mt=()=>oe.value[0]?2*oe.value[0].offsetWidth+50:0,R=e=>{const t=new Date(e.valueOf());return n.minDate&&new Date(t.getFullYear(),t.getMonth()+1,0,23,59,59)<n.minDate||n.maxDate&&new Date(t.getFullYear(),t.getMonth(),1)>n.maxDate},j=()=>{if(ne()){R(le(g.value.month1))?u.value.months[0].prevBtn=!1:u.value.months[0].prevBtn=!0,R(Z(g.value.month1))?u.value.months[0].nextBtn=!1:u.value.months[0].nextBtn=!0;return}const e=parseInt(m(g.value.month1,"YYYYMM"),10),t=parseInt(m(g.value.month2,"YYYYMM"),10),r=Math.abs(e-t);r>1&&r!==89?(u.value.months[0].nextBtn=!0,u.value.months[1].prevBtn=!0):(u.value.months[0].nextBtn=!1,u.value.months[1].prevBtn=!1),R(le(g.value.month1))?u.value.months[0].prevBtn=!1:u.value.months[0].prevBtn=!0,R(Z(g.value.month2))?u.value.months[1].nextBtn=!1:u.value.months[1].nextBtn=!0},Ie=()=>{const e=c.value&&!d.value;for(let t=0;t<u.value.months.length;t++)for(let r=0;r<u.value.months[t].days.length;r++){let s=u.value.months[t].days[r];if(!s.isValid&&s.isTmp&&(s.isTmp=!1,s.isTmpValid?s.isValid=!0:s.isTmpValid=!0),e){if(s.isCurrentMonth&&(s.isValid||s.isDisabled||s.isBeforeDisabledDate)){const i=parseInt(s.time,10);ee(i)?(s.isValid=!0,s.isTmp=!0,s.isDisabled=!1):(s.valid||(s.isTmpValid=!1),s.isValid=!1,s.isTmp=!0)}}else(s.checkOutEnabled||s.beforeDisabledDate)&&(s.isValid=!1,s.beforeDisabledDate||(s.isDisabled=!0));u.value.months[t].days.splice(r,1,s)}return!0},Ve=(e,t)=>{const r=parseInt(e.time,10);if(e.isValid){for(let s=0;s<u.value.months.length;s++)for(let i=0;i<u.value.months[s].days.length;i++){const y=parseInt(u.value.months[s].days[i].time,10);y===r?u.value.months[s].days[i].isHovering=!0:u.value.months[s].days[i].isHovering=!1,c.value&&!d.value&&(c.value<y&&r>=y||c.value>y&&r<=y)?u.value.months[s].days[i].isHovering=!0:u.value.months[s].days[i].isHovering=!1}c.value&&!d.value&&(x.count=N(r,c.value)-1)}},vt=()=>{for(let e=0;e<u.value.months.length;e++)for(let t=0;t<u.value.months[e].days.length;t++)u.value.months[e].days[t].isHovering=!1},Dt=()=>{const e=[];f();for(let t=0;t<n.disabledDates.length;t++)e[t]=we(n.disabledDates[t],"YYYY-MM-DD");e.sort((t,r)=>t-r),D.value=e},He=e=>{let t=[!1,!1];if(e<D.value[0])n.enableCheckout?t=[!1,U(D.value[0],1)]:t=[!1,D.value[0]];else if(e>D.value[D.value.length-1])t=[D.value[D.value.length-1],!1];else{let r=D.value.length,s=D.value.length;const i=Math.abs(new Date(0,0,0).valueOf());let y=i,p=-i,h=0,k;for(k=0;k<D.value.length;++k)h=e-D.value[k],h<0&&h>p&&(s=k,p=h),h>0&&h<y&&(r=k,y=h);D.value[r]&&(t[0]=D.value[r]),typeof D.value[r]>"u"?t[1]=!1:n.enableCheckout?t[1]=U(D.value[s],1):t[1]=D.value[s]}return t},ie=l.ref([]),gt=()=>{const e=[],t=[],r=new Date;for(let s=0;s<7;s++){const i=U(r,s);e[F(i,"d")]=F(i,"dddd")}for(let s=0;s<n.disabledDaysOfWeek.length;s++)t.push(e.indexOf(n.disabledDaysOfWeek[s]));t.sort(),ie.value=t},pt=e=>{const t=[!1,!1];for(let r=0;r<7;r++){const s=Oe(e,r);if(ie.value.indexOf(parseInt(F(s,"d"),10))>-1){t[0]=s;break}}for(let r=0;r<7;r++){const s=U(e,r);if(ie.value.indexOf(parseInt(F(s,"d"),10))>-1){t[1]=s;break}}return t},ue=e=>e in n.i18n?n.i18n[e]:"",Mt=(e,t)=>t?e+"s"in n.i18n?t+" "+n.i18n[e+"s"]:"":n.i18n["not selected"],yt=(e,t)=>{typeof e=="string"&&typeof t=="string"?(e=q(e),t=q(t)):(e=new Date(e.getTime()),t=new Date(t.getTime())),ot(e,t)},x=l.reactive({show:!1,top:0,left:0,width:0,count:0,error:!1}),bt=()=>x.show=!1,Yt=(e,t)=>{if(!Y.value.start||Y.value.start&&Y.value.end)return!1;x.show=!0;const r=Fe.value.getBoundingClientRect(),s=e.target.getBoundingClientRect();x.top=s.top-r.top-35,x.left=s.left-r.left,x.width=s.width},Fe=l.ref(null),Ee=()=>{u.value.showSingleMonth=ne()};return l.watch(()=>u.value.showSingleMonth,()=>{j()}),l.onUnmounted(()=>{window.removeEventListener("resize",()=>Ee())}),l.onMounted(()=>{u.value.showSingleMonth=ne(),window.addEventListener("resize",()=>Ee()),st()}),(e,t)=>(l.openBlock(),l.createElementBlock("div",{class:"h-datepicker",ref_key:"parent",ref:Fe},[l.createElementVNode("div",{class:l.normalizeClass([{invisible:!x.show},"popup"]),style:l.normalizeStyle({top:x.top+"px",left:x.left+"px",width:x.width+"px"})},[l.renderSlot(e.$slots,"popup",{nights:x.count},()=>[l.createTextVNode(l.toDisplayString(Mt("night",x.count)),1)],!0)],6),(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(u.value.months,(r,s)=>(l.openBlock(),l.createElementBlock("div",{key:r.id,ref_for:!0,ref_key:"monthsDoms",ref:oe,class:l.normalizeClass(["month",{invisible:s===1&&u.value.showSingleMonth,two_month_display:!u.value.showSingleMonth,one_month_display:u.value.showSingleMonth}])},[l.createElementVNode("div",Je,[l.createElementVNode("div",qe,[l.createElementVNode("div",{onClick:i=>dt(r,s),class:l.normalizeClass(["month_control_btn",{invisible:!r.prevBtn}])},[l.renderSlot(e.$slots,"prev",{},()=>[l.createTextVNode(" <<")],!0)],10,Ue)]),l.createElementVNode("div",je,[l.renderSlot(e.$slots,"month",{month:r},()=>[l.createTextVNode(l.toDisplayString(r.name)+" "+l.toDisplayString(r.year),1)],!0)]),l.createElementVNode("div",Ge,[l.createElementVNode("div",{onClick:i=>ct(r,s),class:l.normalizeClass(["month_control_btn",{invisible:!r.nextBtn}])},[l.renderSlot(e.$slots,"next",{},()=>[l.createTextVNode(" >>")],!0)],10,Ke)])]),l.createElementVNode("div",Qe,[(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(nt(),i=>(l.openBlock(),l.createElementBlock("div",Xe,[l.renderSlot(e.$slots,"weekday",{weekday:i},()=>[l.createTextVNode(l.toDisplayString(i),1)],!0)]))),256)),(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(r.days,i=>(l.openBlock(),l.createElementBlock("div",{onClick:y=>it(i),onMouseover:y=>Ve(i)||Yt(y),class:l.normalizeClass([{notCurrentMonth:!i.isCurrentMonth,valid:i.isValid,invalid:!i.isValid,tmpinvalid:!i.isTmpValid,tmp:i.isTmpValid,disabled:i.isDisabled,"checkout-enabled":i.isCheckOutEnabled,"checkout-disabled":!i.isCheckOutEnabled,"before-disabled-date":i.isDayBeforeDisabledDate,"first-day-selected":i.isFirstDaySelected,"last-day-selected":i.isLastDaySelected,selected:i.isSelected,hovering:i.isHovering},"day"])},l.toDisplayString(i.day),43,et))),256))])],2))),128))],512))}}),[["__scopeId","data-v-b4735eb7"]]);_.HotelDatePicker=tt,Object.defineProperty(_,Symbol.toStringTag,{value:"Module"})});