@quasar/quasar-ui-qcalendar
Version:
QCalendar - Day/Month/Week Calendars, Popups, Date Pickers, Schedules, Agendas, Planners and Tasks for your Vue Apps
6 lines • 38.2 kB
JavaScript
/*!
* @quasar/quasar-ui-qcalendar v4.1.2
* (c) 2025 Jeff Galbraith <jeff@quasar.dev>
* Released under the MIT License.
*/
(function(e,t){"object"===typeof exports&&"undefined"!==typeof module?module.exports=t(require("vue")):"function"===typeof define&&define.amd?define(["vue"],t):(e="undefined"!==typeof globalThis?globalThis:e||self,e.QCalendarMonth=t(e.Vue))})(this,function(Ae){const u=/^(\d{4})-(\d{1,2})(-(\d{1,2}))?([^\d]+(\d{1,2}))?(:(\d{1,2}))?(:(\d{1,2}))?(.(\d{1,3}))?$/,_=/^(\d{4})-(\d{1,2})(-(\d{1,2}))?/,O=/(\d\d?)(:(\d\d?)|)(:(\d\d?)|)/,W=[0,31,28,31,30,31,30,31,31,30,31,30,31],C=[0,31,29,31,30,31,30,31,31,30,31,30,31],r={MILLISECONDS_IN:{SECOND:1e3,MINUTE:6e4,HOUR:36e5,DAY:864e5,WEEK:6048e5},SECONDS_IN:{MINUTE:60,HOUR:3600,DAY:86400,WEEK:604800},MINUTES_IN:{MINUTE:1,HOUR:60,DAY:1440,WEEK:10080},HOURS_IN:{DAY:24,WEEK:168},DAYS_IN:{WEEK:7}},x=28,q=31,L=12,U=1,B=1,R=0;function t(e){return"string"===typeof e&&u.test(e)}function Fe(e){if("string"!==typeof e)return null;const t=u.exec(e);if(!t||!t[1]||!t[2])return null;const a=parseInt(t[1],10),n=parseInt(t[2],10),r=parseInt(t[4]||"1",10),o=parseInt(t[6]||"0",10),d=parseInt(t[8]||"0",10);return{date:e,time:o.toString().padStart(2,"0")+":"+d.toString().padStart(2,"0"),year:a,month:n,day:r,hour:o,minute:d,hasDay:!!t[4],hasTime:!0,past:!1,current:!1,future:!1,disabled:!1,weekday:0,doy:0,workweek:0}}function H(e,t=!1){if(!(e instanceof Date))return null;const a=t?"UTC":"";return g({date:o(e[`get${a}FullYear`](),4)+"-"+o(e[`get${a}Month`]()+1,2)+"-"+o(e[`get${a}Date`](),2),time:o(e[`get${a}Hours`]()||0,2)+":"+o(e[`get${a}Minutes`]()||0,2),year:e[`get${a}FullYear`](),month:e[`get${a}Month`]()+1,day:e[`get${a}Date`](),hour:e[`get${a}Hours`](),minute:e[`get${a}Minutes`](),weekday:0,doy:0,workweek:0,hasDay:!0,hasTime:!0,past:!1,current:!1,future:!1,disabled:!1})}function o(e,t){let a=String(e);while(a.length<t)a="0"+a;return a}function Y(e){return e%4===0&&e%100!==0||e%400===0}function i(e,t){return(Y(e)?C:W)[t]}function h(e){const t=new Date(e.year,e.month-1,e.day+1);return g(ie({...e,year:t.getFullYear(),month:t.getMonth()+1,day:t.getDate()}))}function p(e){const t=new Date(e.year,e.month-1,e.day-1);return g(ie({...e,year:t.getFullYear(),month:t.getMonth()+1,day:t.getDate()}))}function Ie(){const e=new Date,t=e.getMonth()+1,a=e.getDate(),n=e.getFullYear();return[n,o(t,2),o(a,2)].join("-")}function V(e){return e===Ie()}function T(e,t,a){let n=A(e);if(t){if(1===n.day||0===n.weekday)while(!t.includes(Number(n.weekday)))n=h(n);n=v(n,t[0],p),n=g(n),a&&(n=w(n,a,n.hasTime))}return n}function M(e,t,a){let n=A(e);if(t&&Array.isArray(t)){const r=i(n.year,n.month);if(r===n.day||n.weekday===t[t.length-1])while(!t.includes(Number(n.weekday)))n=p(n);n=v(n,t[t.length-1],h),n=g(n),a&&(n=w(n,a,n.hasTime))}return n}function N(e){let t=A(e);return t.day=B,t=g(t),t}function S(e){let t=A(e);return t.day=i(t.year,t.month),t=g(t),t}function z(e){const t=Object.prototype.toString.call(e);switch(t){case"[object Number]":return e;case"[object String]":{const a=O.exec(e);return a?60*parseInt(a[1],10)+parseInt(a[3]||"0",10):!1}case"[object Object]":return"object"!==typeof e||"number"!==typeof e.hour||"number"!==typeof e.minute?!1:"object"===typeof e&&"hour"in e&&"minute"in e&&60*e.hour+e.minute}return!1}function P(e,t){return!(!e||!t)&&e.year===t.year&&e.month===t.month&&e.day===t.day&&e.hour===t.hour&&e.minute===t.minute}function Z(e,t){return c(e)===c(t)}function j(e,t){return m(e)===m(t)}function $(e,t){return y(e)===y(t)}function Ee(e,t=null){let a=Fe(e);return a?(a=g(a),t&&(a=w(a,t,a.hasTime)),a):null}function Oe(e){return 1e8*(e.year??0)+1e6*(e.month??0)+1e4*(e.day??0)}function s(e){return 100*(e.hour??0)+(e.minute??0)}function n(e){return Oe(e)+s(e)}function K(e,t,a=!1){const n=Date.UTC(e.year??0,(e.month??1)-1,e.day??1,e.hour??0,e.minute??0),r=Date.UTC(t.year??0,(t.month??1)-1,t.day??1,t.hour??0,t.minute??0);return!0===a&&r<n?0:r-n}function w(e,t,a=!1){let n=A(e),r=Oe(t),o=Oe(n),d=r===o;return n.hasTime&&a&&d&&(r=s(t),o=s(n),d=r===o),n.past=o<r,n.current=d,n.future=o>r,n.currentWeekday=n.weekday===t.weekday,n}function X(e,t,a=null){let n=A(e);return n.hasTime=!0,n.hour=Math.floor(t/r.MINUTES_IN.HOUR),n.minute=t%r.MINUTES_IN.HOUR,n.time=m(n),a&&(n=w(n,a,!0)),n}function k(e){let t=A(e);return t.weekday=l(t),t}function Q(e){let t=A(e);return t.doy=a(t)||0,t}function G(e){let t=A(e);return t.workweek=d(t),t}function J(e,t,a,n,r){let o=A(e);const d=Oe(o);if(void 0!==t){const l=Fe(t);if(l){const c=Oe(l);d<=c&&(o.disabled=!0)}}if(!0!==o.disabled&&void 0!==a){const m=Fe(a);if(m){const y=Oe(m);d>=y&&(o.disabled=!0)}}if(!0!==o.disabled&&Array.isArray(n)&&n.length>0)for(var u in n)if(n[u]===o.weekday){o.disabled=!0;break}if(!0!==o.disabled&&Array.isArray(r)&&r.length>0)for(var i in r)if(Array.isArray(r[i])&&2===r[i].length&&r[i][0]&&r[i][1]){const v=Fe(r[i][0]),f=Fe(r[i][1]);if(v&&f&&de(o,v,f)){o.disabled=!0;break}}else{const h=r[i];if(Array.isArray(h))for(var s of h){const p=Ee(s);if(p){const w=Oe(p);if(w===d){o.disabled=!0;break}}}else if(h){const k=Ee(h);if(k){const g=Oe(k);g===d&&(o.disabled=!0)}}}return o}function g(e){let t=A(e);return t.hasTime=!0,t.time=m(t),t.date=c(t),t.weekday=l(t),t.doy=a(t)||0,t.workweek=d(t),t}function a(e){if(0!==e.year)return(Date.UTC(e.year,e.month-1,e.day)-Date.UTC(e.year,0,0))/24/60/60/1e3}function d(e){let t=A(e);if(0===t.year){const r=Ee(Ie());r&&(t=r)}const a=new Date(Date.UTC(t.year,t.month-1,t.day)),n=4;a.setUTCDate(a.getUTCDate()-(a.getUTCDay()+6)%7+n),a.setUTCDate(a.getUTCDate()+n-(a.getUTCDay()||7));e=new Date(Date.UTC(a.getUTCFullYear(),0,1)),e=Math.ceil(((a.valueOf()-e.valueOf())/864e5+1)/7);return e}function l(e){let t=e.weekday;if(e.hasDay){const a=Math.floor,n=e.day,r=(e.month+9)%L+1,o=a(e.year/100),d=e.year%100-(e.month<=2?1:0);t=((n+a(2.6*r-.2)-2*o+d+a(d/4)+a(o/4))%7+7)%7}return t??0}function A(e){return{...e}}function c(e){let t=o(e.year,4)+"-"+o(e.month,2);return e.hasDay&&(t+="-"+o(e.day,2)),t}function m(e){return e.hasTime?o(e.hour,2)+":"+o(e.minute,2):""}function y(e){return c(e)+" "+(e.hasTime?m(e):"00:00")}function ee(e,t=h,a=1,n=[0,1,2,3,4,5,6]){const r=A(e);return b(r,t,a,n)}function b(e,t=h,a=1,n=[0,1,2,3,4,5,6]){let r=A(e);n.includes(Number(r.weekday))||0!==r.weekday||t!==h||++a;while(--a>=0)r=t(r),n.length<7&&!n.includes(Number(r.weekday))&&++a;return r}function v(e,t,a=h,n=6){let r=A(e);while(r.weekday!==t&&--n>=0)r=a(r);return r}function F(e,t,a,n=[0,1,2,3,4,5,6],r=void 0,o=void 0,d=[],u=[],i=42,s=0){const l=Oe(e),c=Oe(t),m=[];let y=A(e),v=0,f=v===c;if(!(c<l))while((!f||m.length<s)&&m.length<i){if(v=Oe(y),f=f||v>c&&m.length>=s,f)break;if(n.includes(Number(y.weekday))){let e=A(y);e=g(e),e=w(e,a),e=J(e,r,o,d,u),m.push(e)}y=b(y,h)}return m}function te(t,a,n,r,o){const d=[];for(let e=0;e<r;++e){const u=(a+e)*n,i=A(t);d.push(X(i,u,o))}return d}function I(n,r){const e=()=>"";return"undefined"===typeof Intl||"undefined"===typeof Intl.DateTimeFormat?e:(t,e)=>{try{const a=new Intl.DateTimeFormat(n||void 0,r(t,e));return a.format(ne(t))}catch(e){return console.error(`Intl.DateTimeFormat: ${e.message} -> `+y(t)),""}}}function ae(e,t=!0){return t?new Date(Date.UTC(e.year,e.month-1,e.day,0,0)):new Date(e.year,e.month-1,e.day,0,0)}function ne(e,t=!0){return t?new Date(Date.UTC(e.year,e.month-1,e.day,e.hour,e.minute)):new Date(e.year,e.month-1,e.day,e.hour,e.minute)}function f(e){return isFinite(Number(e))}function re(e,t=!1){const a=!0===t?n:Oe;return e.reduce((e,t)=>{return Math.max(a(e),a(t))===a(e)?e:t})}function oe(e,t=!1){const a=!0===t?n:Oe;return e.reduce((e,t)=>{return Math.min(a(e),a(t))===a(e)?e:t})}function de(e,t,a,n=!1){const r=Oe(e)+(!0===n?s(e):0),o=Oe(t)+(!0===n?s(t):0),d=Oe(a)+(!0===n?s(a):0);return r>=o&&r<=d}function ue(e,t,a,n){const r=Oe(e),o=Oe(t),d=Oe(a),u=Oe(n);return r>=d&&r<=u||o>=d&&o<=u||d>=r&&o>=u}function E(e,t){const a=A(e);return t.year&&(a.year+=t.year),t.month&&(a.month+=t.month),t.day&&(a.day+=t.day),t.hour&&(a.hour+=t.hour),t.minute&&(a.minute+=t.minute),g(ie(a))}function ie(e){const t=new Date(e.year,e.month-1,e.day,e.hour,e.minute);return{...e,year:t.getFullYear(),month:t.getMonth()+1,day:t.getDate(),hour:t.getHours(),minute:t.getMinutes()}}function se(e,t){const a=K(e,t,!0);return Math.floor(a/r.MILLISECONDS_IN.DAY)}function le(e,t){let a=A(e),n=A(t);return a=v(a,0),n=v(n,6),Math.ceil(se(a,n)/r.DAYS_IN.WEEK)}const ce={Sun:new Date("2020-01-05T00:00:00.000Z"),Mon:new Date("2020-01-06T00:00:00.000Z"),Tue:new Date("2020-01-07T00:00:00.000Z"),Wed:new Date("2020-01-08T00:00:00.000Z"),Thu:new Date("2020-01-09T00:00:00.000Z"),Fri:new Date("2020-01-10T00:00:00.000Z"),Sat:new Date("2020-01-11T00:00:00.000Z")};function me(){const e=()=>"",r={long:{timeZone:"UTC",weekday:"long"},short:{timeZone:"UTC",weekday:"short"},narrow:{timeZone:"UTC",weekday:"narrow"}};return"undefined"===typeof Intl||"undefined"===typeof Intl.DateTimeFormat?e:t;function t(t,e,a){try{const n=new Intl.DateTimeFormat(a||void 0,r[e]||r["long"]);return n.format(ce[t])}catch(e){return e instanceof Error&&console.error(`Intl.DateTimeFormat: ${e.message} -> day of week: `+t),""}}}function ye(t,a){const e=Object.keys(ce),n=me();return e.map(e=>String(n(e,t,a)))}function ve(){const e=()=>"",o={long:{timeZone:"UTC",month:"long"},short:{timeZone:"UTC",month:"short"},narrow:{timeZone:"UTC",month:"narrow"}};return"undefined"===typeof Intl||"undefined"===typeof Intl.DateTimeFormat?e:t;function t(t,e,a){try{const n=new Intl.DateTimeFormat(a||void 0,o[e]||o["long"]),r=new Date;return r.setDate(1),r.setMonth(t),n.format(r)}catch(e){return e instanceof Error&&console.error(`Intl.DateTimeFormat: ${e.message} -> month: `+t),""}}}function fe(t,a){const n=ve();return[...Array(12).keys()].map(e=>n(e,t,a))}var e={PARSE_DATETIME:u,PARSE_DATE:_,PARSE_TIME:O,DAYS_IN_MONTH:W,DAYS_IN_MONTH_LEAP:C,DAYS_IN_MONTH_MIN:x,DAYS_IN_MONTH_MAX:q,MONTH_MAX:L,MONTH_MIN:U,DAY_MIN:B,TIME_CONSTANTS:r,FIRST_HOUR:R,today:Ie,getStartOfWeek:T,getEndOfWeek:M,getStartOfMonth:N,getEndOfMonth:S,parseTime:z,validateTimestamp:t,parsed:Fe,parseTimestamp:Ee,parseDate:H,getDayIdentifier:Oe,getTimeIdentifier:s,getDayTimeIdentifier:n,diffTimestamp:K,updateRelative:w,updateMinutes:X,updateWeekday:k,updateDayOfYear:Q,updateWorkWeek:G,updateDisabled:J,updateFormatted:g,getDayOfYear:a,getWorkWeek:d,getWeekday:l,isLeapYear:Y,daysInMonth:i,copyTimestamp:A,padNumber:o,getDate:c,getTime:m,getDateTime:y,nextDay:h,prevDay:p,relativeDays:b,findWeekday:v,createDayList:F,createIntervalList:te,createNativeLocaleFormatter:I,makeDate:ae,makeDateTime:ne,validateNumber:f,isBetweenDates:de,isOverlappingDates:ue,daysBetween:se,weeksBetween:le,addToDate:E,compareTimestamps:P,compareDate:Z,compareTime:j,compareDateTime:$,getWeekdayFormatter:me,getWeekdayNames:ye,getMonthFormatter:ve,getMonthNames:fe},e=Object.freeze({__proto__:null,DAYS_IN_MONTH:W,DAYS_IN_MONTH_LEAP:C,DAYS_IN_MONTH_MAX:q,DAYS_IN_MONTH_MIN:x,DAY_MIN:B,FIRST_HOUR:R,MONTH_MAX:L,MONTH_MIN:U,PARSE_DATE:_,PARSE_DATETIME:u,PARSE_TIME:O,TIME_CONSTANTS:r,addToDate:E,compareDate:Z,compareDateTime:$,compareTime:j,compareTimestamps:P,copyTimestamp:A,createDayList:F,createIntervalList:te,createNativeLocaleFormatter:I,daysBetween:se,daysInMonth:i,default:e,diffTimestamp:K,findWeekday:v,getDate:c,getDateTime:y,getDayIdentifier:Oe,getDayOfYear:a,getDayTimeIdentifier:n,getEndOfMonth:S,getEndOfWeek:M,getMonthFormatter:ve,getMonthNames:fe,getStartOfMonth:N,getStartOfWeek:T,getTime:m,getTimeIdentifier:s,getWeekday:l,getWeekdayFormatter:me,getWeekdayNames:ye,getWorkWeek:d,isBetweenDates:de,isLeapYear:Y,isOverlappingDates:ue,isToday:V,makeDate:ae,makeDateTime:ne,maxTimestamp:re,minTimestamp:oe,moveRelativeDays:ee,nextDay:h,padNumber:o,parseDate:H,parseTime:z,parseTimestamp:Ee,parsed:Fe,prevDay:p,relativeDays:b,today:Ie,updateDayOfYear:Q,updateDisabled:J,updateFormatted:g,updateMinutes:X,updateRelative:w,updateWeekday:k,updateWorkWeek:G,validateNumber:f,validateTimestamp:t,weeksBetween:le});function We(e,t="px"){if(e)return isNaN(e)?String(e):"auto"===e?e:""+Number(e)+t}function he(t,a){for(let e=0;e<t.length;e++)if(!0===a(t[e],e))return e;return-1}function Ce(e,t){return 0===t?e:e.slice(0,t)}var pe={convertToUnit:We,indexOf:he,minCharWidth:Ce},pe=Object.freeze({__proto__:null,convertToUnit:We,default:pe,indexOf:he,minCharWidth:Ce});const we=e=>e.replace(/(-\w)/g,e=>e[1].toUpperCase());function ke(t,e,a,n){const r={};for(const o in a){const d=a[o],u=we("on-"+o);if(!e.value)return console.warn("$listeners has not been set up"),{};if(void 0!==e.value[u]){const i="on"+d.event.charAt(0).toUpperCase()+d.event.slice(1),s=e=>{return(void 0===d.button||"buttons"in e&&e.buttons>0&&e.button===d.button)&&(d.prevent&&e.preventDefault(),d.stop&&e.stopPropagation(),t(o,n(e,o))),d.result};i in r?Array.isArray(r[i])?r[i].push(s):r[i]=[r[i],s]:r[i]=s}}return r}function ge(e,t,a,n){return ke(e,t,be(a),n)}function be(e){return{["click"+e]:{event:"click"},["contextmenu"+e]:{event:"contextmenu",prevent:!0,result:!1},["mousedown"+e]:{event:"mousedown"},["mousemove"+e]:{event:"mousemove"},["mouseup"+e]:{event:"mouseup"},["mouseenter"+e]:{event:"mouseenter"},["mouseleave"+e]:{event:"mouseleave"},["touchstart"+e]:{event:"touchstart"},["touchmove"+e]:{event:"touchmove"},["touchend"+e]:{event:"touchend"}}}function D(e){return Object.keys(be(e))}function xe(a,n){return{getMouseEventHandlers:(e,t)=>ke(a,n,e,t),getDefaultMouseEventHandlers:(e,t)=>ge(a,n,e,t),getMouseEventName:be,getRawMouseEvents:D}}const qe={mounted(e,t){if("function"===typeof t.value){const a=t.value,n={callback:a,size:{width:0,height:0},observer:new ResizeObserver(e=>{const t=e[0].contentRect;t.width===n.size.width&&t.height===n.size.height||(n.size.width=t.width,n.size.height=t.height,n.debounceTimeout&&clearTimeout(n.debounceTimeout),n.debounceTimeout=setTimeout(()=>{n.callback(n.size),n.debounceTimeout=void 0},100))})};n.observer.observe(e),e.__onResizeObserver=n}},beforeUnmount(e){if(e.__onResizeObserver){const{observer:t,debounceTimeout:a}=e.__onResizeObserver;a&&clearTimeout(a),t.unobserve(e),delete e.__onResizeObserver}}};function Le(t,a,{scrollArea:e,pane:n}){if(!a){const l="[error: renderCalendar] no renderFunc has been supplied to useCalendar";throw console.error(l),new Error(l)}const r=Ae.reactive({width:0,height:0}),o=Ae.ref(null);function d({width:e,height:t}){r.width=e,r.height=t}const u=Ae.computed(()=>{return!0!==t.noScroll&&e.value&&n.value&&r.height?e.value.offsetWidth-n.value.offsetWidth:0});function i(){}function s(){const e={ref:o,role:"complementary",lang:t.locale,class:`q-calendar ${t.dark?"q-calendar--dark":""} `+(t.bordered?"q-calendar__bordered":"")};return Ae.withDirectives(Ae.h("div",{...e},[a()]),[[qe,d]])}return{rootRef:o,scrollWidth:u,__initCalendar:i,__renderCalendar:s}}const De=e=>e.every(e=>["day","date","weekday","interval","time","resource","task"].includes(e)),_e={modelValue:{type:String,default:Ie(),validator:e=>""===e||t(e)},weekdays:{type:Array,default:()=>[0,1,2,3,4,5,6]},dateType:{type:String,default:"round",validator:e=>["round","rounded","square"].includes(e)},weekdayAlign:{type:String,default:"center",validator:e=>["left","center","right"].includes(e)},dateAlign:{type:String,default:"center",validator:e=>["left","center","right"].includes(e)},bordered:Boolean,dark:Boolean,noAria:Boolean,noActiveDate:Boolean,noHeader:Boolean,noScroll:Boolean,shortWeekdayLabel:Boolean,noDefaultHeaderText:Boolean,noDefaultHeaderBtn:Boolean,minWeekdayLabel:{type:[Number,String],default:1},weekdayBreakpoints:{type:Array,default:()=>[75,35],validator:e=>2===e.length},locale:{type:String,default:"en-US"},animated:Boolean,transitionPrev:{type:String,default:"slide-right"},transitionNext:{type:String,default:"slide-left"},disabledDays:Array,disabledBefore:String,disabledAfter:String,disabledWeekdays:{type:Array,default:()=>[]},dragEnterFunc:Function,dragOverFunc:Function,dragLeaveFunc:Function,dropFunc:Function,selectedDates:{type:[Array,Set],default:()=>[]},selectedStartEndDates:{type:Array,default:()=>[]},hoverable:Boolean,focusable:Boolean,focusType:{type:Array,default:()=>["date"],validator:De}};function Ue(t,{startDate:e,endDate:a,times:n}){const r=Ae.computed(()=>Ee(e.value)),o=Ae.computed(()=>{return"0000-00-00"===a.value?M(r.value,t.weekdays,n.today):Ee(a.value)||r.value}),d=Ae.computed(()=>I(t.locale,()=>({timeZone:"UTC",day:"numeric"}))),u=Ae.computed(()=>I(t.locale,(e,t)=>({timeZone:"UTC",weekday:t?"short":"long"}))),i=Ae.computed(()=>I(t.locale,()=>({timeZone:"UTC",dateStyle:"full"})));function s(e,t){return e&&e.length>0&&e.includes(t.date)}function l(e,t){const a={firstDay:!1,betweenDays:!1,lastDay:!1};if(2===e.length){const n=Oe(t),r=Oe(Fe(e[0])),o=Oe(Fe(e[1]));a.firstDay=r===n,a.lastDay=o===n,a.betweenDays=r<n&&o>n}return a}function c(e,t=!1,a=[],n=[],r=!1){const o=s(a,e),{firstDay:d,lastDay:u,betweenDays:i}=l(n,e);return{"q-past-day":!d&&!i&&!u&&!o&&!t&&!!e.past,"q-future-day":!d&&!i&&!u&&!o&&!t&&!!e.future,"q-outside":t,"q-current-day":!!e.current,"q-selected":o,"q-range-first":d,"q-range":i,"q-range-last":u,"q-range-hover":r&&(d||u||i),"q-disabled-day disabled":!0===e.disabled}}function m(e){return T(e,t.weekdays,n.today)}function y(e){return M(e,t.weekdays,n.today)}function v(){return{}}return{parsedStart:r,parsedEnd:o,dayFormatter:d,weekdayFormatter:u,ariaDateFormatter:i,arrayHasDate:s,checkDays:l,getRelativeClasses:c,startOfWeek:m,endOfWeek:y,dayStyleDefault:v}}const Te={dayHeight:{type:[Number,String],default:0,validator:e=>f(e)},dayMinHeight:{type:[Number,String],default:0,validator:e=>f(e)},dayStyle:Function,dayClass:Function,weekdayStyle:Function,weekdayClass:Function,dayPadding:String,minWeeks:{type:[Number,String],default:1,validator:e=>f(e)},shortMonthLabel:Boolean,showWorkWeeks:Boolean,showMonthLabel:{type:Boolean,default:!0},showDayOfYearLabel:Boolean,enableOutsideDays:Boolean,noOutsideDays:Boolean,hover:Boolean,miniMode:{type:[Boolean,String],validator:e=>[!0,!1,"auto"].includes(e)},breakpoint:{type:[Number,String],default:"md",validator:e=>["xs","sm","md","lg","xl"].includes(e)||f(e)},monthLabelSize:{type:String,default:"sm",validator:e=>["xxs","xs","sm","md","lg","xl","xxl"].includes(e)||!!e&&e.length>0}};function Be(n,t,{times:r,parsedStart:a,parsedEnd:o,size:d,headerColumnRef:u}){const e=Ae.computed(()=>parseInt(n.minWeeks,10)),i=Ae.computed(()=>e.value*n.weekdays.length),s=Ae.computed(()=>k(b(a.value))),l=Ae.computed(()=>g(D(o.value))),c=Ae.computed(()=>{let e=0;return n.cellWidth?e=Number(n.cellWidth):d.width>0&&u.value&&(e=u.value.offsetWidth/n.weekdays.length),e}),m=Ae.computed(()=>F(s.value,l.value,r.today,n.weekdays,n.disabledBefore,n.disabledAfter,n.disabledWeekdays,n.disabledDays,Number.MAX_SAFE_INTEGER,i.value)),y=Ae.computed(()=>{const e=r.today,t=k(e),a=g(e);return F(t,a,e,n.weekdays,n.disabledBefore,n.disabledAfter,n.disabledWeekdays,n.disabledDays,n.weekdays.length,n.weekdays.length)}),v=Ae.computed(()=>I(n.locale,(e,t)=>({timeZone:"UTC",month:t?"short":"long"}))),f=Ae.computed(()=>{switch(n.breakpoint){case"xs":return 300;case"sm":return 350;case"md":return 400;case"lg":return 450;case"xl":return 500;default:return parseInt(n.breakpoint,10)}}),h=Ae.computed(()=>{switch(n.monthLabelSize){case"xxs":return".4em";case"xs":return".6em";case"sm":return".8em";case"md":return"1.0em";case"lg":return"1.2em";case"xl":return"1.4em";case"xxl":return"1.6em";default:return n.monthLabelSize}});let p=!0;const w=Ae.computed(()=>{const e=!0===n.miniMode||"auto"===n.miniMode&&void 0!==n.breakpoint&&d.width<f.value;return p&&(p=!1,t("mini-mode",e)),e});function k(e){return T(e,n.weekdays,r.today)}function g(e){return M(e,n.weekdays,r.today)}function b(e){return N(e)}function D(e){return S(e)}function _(e){const t=Oe(e);return t<Oe(a.value)||t>Oe(o.value)}return Ae.watch(w,e=>{t("mini-mode",e)}),{parsedCellWidth:c,parsedMinWeeks:e,parsedMinDays:i,parsedMonthStart:s,parsedMonthEnd:l,parsedBreakpoint:f,parsedMonthLabelSize:h,days:m,todayWeek:y,isMiniMode:w,monthFormatter:v,isOutside:_}}const Me={now:{type:String,validator:e=>""===e||t(e),default:""}};function Re(e){const t=Ae.reactive({now:Ee("0000-00-00 00:00"),today:Ee("0000-00-00")}),a=Ae.computed(()=>e.now?Ee(e.now):o());function n(){t.now&&t.today&&(t.now.current=t.today.current=!0,t.now.past=t.today.past=!1,t.now.future=t.today.future=!1)}function r(){const e=a.value||o();d(e,t.now),u(e,t.now),d(e,t.today)}function o(){return H(new Date)}function d(e,t){e.date!==t.date&&(t.year=e.year,t.month=e.month,t.day=e.day,t.weekday=e.weekday,t.date=e.date)}function u(e,t){e.time!==t.time&&(t.hour=e.hour,t.minute=e.minute,t.time=e.time)}return Ae.watch(a,()=>r()),{times:t,parsedNow:a,setCurrent:n,updateCurrent:r,getNow:o,updateDay:d,updateTime:u}}function He(r,{parsedView:o,parsedValue:d,times:u}){const e=Ae.computed(()=>{const e=d.value;let t=r.maxDays,a=e,n=e;switch(o.value){case"month":a=N(e),n=S(e),t=i(a.year,a.month);break;case"week":case"week-agenda":case"week-scheduler":a=T(e,r.weekdays,u.today),n=M(a,r.weekdays,u.today),t=r.weekdays.length;break;case"day":case"scheduler":case"agenda":n=ee(A(n),h,t>1?t-1:t,r.weekdays),n=g(n);break;case"month-interval":case"month-scheduler":case"month-agenda":a=N(e),n=S(e),n=g(n),t=i(a.year,a.month);break;case"resource":t=1,n=ee(A(n),h,t,r.weekdays),n=g(n);break}return{start:a,end:n,maxDays:t}});return{renderValues:e}}const Ne=["moved"];function Ye(i,{parsedView:s,parsedValue:l,direction:c,maxDays:m,times:y,emittedValue:v,emit:f}){function e(a=1){if(0===a)v.value=Ie();else{let e=A(l.value);const n=S(e),r=a>0,o=r?h:p,d=r?n.day:1;let t=r?a:-a;c.value=r?"next":"prev";const u=i.weekdays.length;while(--t>=0)switch(s.value){case"month":e.day=d,e=o(e),e=k(e);while(!i.weekdays.includes(Number(e.weekday)))e=E(e,{day:r?1:-1});break;case"week":case"week-agenda":case"week-scheduler":e=b(e,o,u,i.weekdays);break;case"day":case"scheduler":case"agenda":e=b(e,o,m.value,i.weekdays);break;case"month-interval":case"month-agenda":case"month-scheduler":e.day=d,e=o(e);break;case"resource":e=b(e,o,m.value,i.weekdays);break}e=k(e),e=g(e),e=Q(e),e=w(e,y.now),v.value=e.date,f("moved",e)}}return{move:e}}const Se=/^on[A-Z]/;function Ve(e=Ae.getCurrentInstance()){return{emitListeners:Ae.computed(()=>{const t={};return e?.vnode?.props&&Object.keys(e.vnode.props).forEach(e=>{Se.test(e)&&(t[e]=!0)}),t})}}function ze(){const e={"aria-hidden":"true",class:"q-calendar__focus-helper"};return[Ae.h("span",e)]}function Pe(){function e({focusable:e,focusType:t},a,n){const r=e&&t.includes("date");return Ae.h("button",{...a,tabindex:r?0:-1},[n,r&&ze()])}return{renderButton:e}}const Ze={cellWidth:[Number,String]};function je(e){const t=Ae.computed(()=>void 0!==e.cellWidth);return{isSticky:t}}const $e=["change"];function Ke(n,{days:r,lastStart:o,lastEnd:d}){function e(){const e=r.value;if(0===e.length)return!1;const t=e[0].date,a=e[e.length-1].date;return(!o.value||!d.value||t!==o.value||a!==d.value)&&(o.value=t,d.value=a,n("change",{start:t,end:a,days:e}),!0)}return{checkChange:e}}function Xe(){function e(e,t){return(Array.isArray(t)?t:[t]).includes(e.keyCode)}return{isKeyCode:e}}const Qe=Xe().isKeyCode,Ge={useNavigation:Boolean};function Je(t,{rootRef:a,focusRef:n,focusValue:r,datesRef:o,parsedView:d,emittedValue:u,direction:i,times:s}){let e=!1;function l(){e||document&&(e=!0,document.addEventListener("keyup",f),document.addEventListener("keydown",v))}function c(){document&&(document.removeEventListener("keyup",f),document.removeEventListener("keydown",v),e=!1)}function m(e){if(e&&document){const t=document.activeElement;if(t!==document.body&&a.value?.contains(t))return!0}return!1}function y(){let t=0;const a=window.setInterval(()=>{const e=o.value[n.value];e&&(e.focus(),50!==++t)&&document.activeElement!==e||window.clearInterval(a)},250)}function v(e){m(e)&&Qe(e,[33,34,35,36,37,38,39,40])&&(e.stopPropagation(),e.preventDefault())}function f(e){if(m(e)&&Qe(e,[33,34,35,36,37,38,39,40])){const t={33:g,34:b,35:_,36:D,37:w,38:h,39:k,40:p};t[e.keyCode]?.()}}function h(){let e=A(r.value);if("month"===d.value){if(e=E(e,{day:-7}),r.value.month!==e.month)return i.value="prev",void(u.value=e.date)}else e=E(e,{minute:Number(t.intervalMinutes)});i.value="prev",n.value=e.date}function p(){let e=A(r.value);if("month"===d.value){if(e=E(e,{day:7}),r.value.month!==e.month)return i.value="next",void(u.value=e.date)}else e=E(e,{minute:Number(t.intervalMinutes)});i.value="next",n.value=e.date}function w(){let e=A(r.value);i.value="prev";do{e=E(e,{day:-1})}while(!t.weekdays.includes(Number(e.weekday)));n.value=e.date}function k(){let e=A(r.value);i.value="next";do{e=E(e,{day:1})}while(!t.weekdays.includes(Number(e.weekday)));n.value=e.date}function g(){let e=A(r.value);e="month"===d.value?E(e,{month:-1}):E(e,{day:-7}),i.value="prev",n.value=e.date}function b(){let e=A(r.value);e="month"===d.value?E(e,{month:1}):E(e,{day:7}),i.value="next",n.value=e.date}function D(){let e=A(r.value);e="month"===d.value?N(e):T(e,t.weekdays||[],s.today);while(!t.weekdays.includes(Number(e.weekday)))e=E(e,{day:-1});n.value=e.date}function _(){let e=A(r.value);e="month"===d.value?S(e):M(e,t.weekdays||[],s.today);while(!t.weekdays.includes(Number(e.weekday)))e=E(e,{day:-1});n.value=e.date}return Ae.onBeforeUnmount(()=>{c()}),Ae.watch(()=>t.useNavigation,e=>{(!0===e?l:c)()}),!0===t.useNavigation&&l(),{startNavigation:l,endNavigation:c,tryFocus:y}}const et=Pe().renderButton;var tt=Ae.defineComponent({name:"QCalendarMonth",directives:{ResizeObserver:qe},props:{..._e,...Te,...Me,...Ze,...Ge},emits:["update:model-value",...$e,...Ne,"mini-mode",...D("-date"),...D("-day"),...D("-head-workweek"),...D("-head-day"),...D("-workweek")],setup(y,{slots:v,emit:c,expose:q}){const L=Ae.ref(null),U=Ae.ref(null),e=Ae.ref(null),f=Ae.ref(y.modelValue||Ie()),t=Ae.ref(Fe(y.modelValue||Ie())),m=Ae.ref({}),s=Ae.ref([]),l=Ae.ref([]),o=Ae.ref("next"),d=Ae.ref(y.modelValue||Ie()),u=Ae.ref("0000-00-00"),B=Ae.ref(0),h=Ae.ref(y.modelValue),i=Ae.reactive({width:0,height:0}),p=Ae.ref(),w=Ae.ref(""),R=Ae.ref(null),H=Ae.ref(null),a=Ae.computed(()=>{return"month"}),n=Ae.getCurrentInstance();if(null===n)throw new Error("current instance is null");const k=Ve(n).emitListeners,Y=je(y).isSticky,{times:r,setCurrent:V,updateCurrent:g}=(Ae.watch(Y,()=>{}),Re(y)),{parsedStart:b,parsedEnd:D,dayFormatter:z,weekdayFormatter:P,ariaDateFormatter:Z,dayStyleDefault:_,getRelativeClasses:j}=(g(),V(),Ue(y,{startDate:d,endDate:u,times:r})),T=Ae.computed(()=>{return Ee(y.modelValue,r.now)||b.value||r.today}),$=(t.value=T.value,f.value=T.value.date,Ae.computed(()=>{const e={};return void 0!==y.dayPadding&&(e.padding=y.dayPadding),e.minWidth=O.value,e.maxWidth=O.value,e.width=O.value,e})),K=He(y,{parsedView:a,times:r,parsedValue:T}).renderValues,{rootRef:M,__renderCalendar:X}=Le(y,Se,{scrollArea:L,pane:U}),{days:N,todayWeek:Q,isMiniMode:S,parsedCellWidth:G,parsedMonthLabelSize:J,isOutside:ee,monthFormatter:te}=Be(y,c,{times:r,parsedStart:b,parsedEnd:D,size:i,headerColumnRef:e}),A=Ye(y,{parsedView:a,parsedValue:T,direction:o,maxDays:B,times:r,emittedValue:h,emit:c}).move,F=xe(c,k).getDefaultMouseEventHandlers,ae=Ke(c,{days:N,lastStart:R,lastEnd:H}).checkChange,I=Xe().isKeyCode,ne=Je(y,{rootRef:M,focusRef:f,focusValue:t,datesRef:m,parsedView:a,emittedValue:h,direction:o,times:r}).tryFocus,re=Ae.computed(()=>{return M.value&&!0===y.showWorkWeeks?parseInt(window.getComputedStyle(M.value).getPropertyValue(!0===S.value?"--calendar-mini-work-week-width":"--calendar-work-week-width"),10):0}),E=Ae.computed(()=>{return y.weekdays.length}),O=Ae.computed(()=>{if(M.value){const e=i.width||M.value.getBoundingClientRect().width;if(e&&E.value)return(e-re.value)/E.value+"px"}return 100/E.value+"%"}),W=Ae.computed(()=>{return!0===y.focusable&&y.focusType.includes("day")&&!0!==S.value}),C=Ae.computed(()=>{return!0===y.focusable&&y.focusType.includes("date")&&!0!==W.value});function oe(){h.value=Ie()}function de(e=1){A(e)}function ue(e=1){A(-e)}function ie({width:e,height:t}){i.width=e,i.height=t}function x(e){return e.date===h.value}function se(t){for(let e=0;e<t.length;++e)if(!0===t[e].current)return{timestamp:t[e]};return{timestamp:!1}}function le(){if(!0!==S.value&&0===y.dayHeight){const t=v.week;if(void 0!==t&&window)for(var e in s.value){const a=s.value[e];if(void 0!==a){const n=l.value[e];if(void 0!==n){const r=window.getComputedStyle(a),o=parseFloat(r.marginTop)+parseFloat(r.marginBottom);n.clientHeight+o>n.clientHeight&&(n.style.height=a.clientHeight+o+"px")}}}}}function ce(){return Ae.h("div",{class:"q-calendar-month__body"},[...ke()])}function me(){return Ae.h("div",{role:"presentation",class:"q-calendar-month__head"},[!0===y.showWorkWeeks&&ve(),Ae.h("div",{class:"q-calendar-month__head--wrapper"},[ye()])])}function ye(){return Ae.h("div",{ref:e,class:{"q-calendar-month__head--weekdays":!0}},[...fe()])}function ve(){const e=v["head-workweek"],t={start:b.value,end:D.value,miniMode:S.value};return Ae.h("div",{class:"q-calendar-month__head--workweek",...F("-head-workweek",e=>{return{scope:t,event:e}})},e?e({scope:t}):"#")}function fe(){return Q.value.map((e,t)=>he(e,t))}function he(t,e){const a=v["head-day"],n=N.value.filter(e=>e.weekday===t.weekday),r=n[0].weekday,o=!0!==y.noActiveDate&&x(t),d={activeDate:o,weekday:r,timestamp:t,days:n,index:e,miniMode:S.value,droppable:p.value===Number(t.weekday),disabled:!!y.disabledWeekdays&&y.disabledWeekdays.includes(Number(t.weekday))},u="function"===typeof y.weekdayClass?y.weekdayClass({scope:d}):{},i=!0===y.focusable&&y.focusType.includes("weekday"),s=O.value,l=y.weekdayStyle||_,c={width:s,maxWidth:s,minWidth:s,...l({scope:d})},m={key:t.date+(void 0!==e?"-"+e:""),tabindex:!0===i?0:-1,class:{"q-calendar-month__head--weekday":!0,...u,"q-disabled-day disabled":!0===d.disabled,["q-calendar__"+y.weekdayAlign]:!0,"q-calendar__ellipsis":!0,"q-calendar__focusable":!0===i},style:c,onDragenter:e=>{void 0!==y.dragEnterFunc&&"function"===typeof y.dragEnterFunc&&(!0===y.dragEnterFunc(e,"head-day",{scope:d})?p.value=Number(t.weekday):p.value=-1)},onDragover:e=>{void 0!==y.dragOverFunc&&"function"===typeof y.dragOverFunc&&(!0===y.dragOverFunc(e,"head-day",{scope:d})?p.value=Number(t.weekday):p.value=-1)},onDragleave:e=>{void 0!==y.dragLeaveFunc&&"function"===typeof y.dragLeaveFunc&&(!0===y.dragLeaveFunc(e,"head-day",{scope:d})?p.value=Number(t.weekday):p.value=-1)},onDrop:e=>{void 0!==y.dropFunc&&"function"===typeof y.dropFunc&&(!0===y.dropFunc(e,"head-day",{scope:d})?p.value=Number(t.weekday):p.value=-1)},onFocus:()=>{!0===i&&(f.value=t.date)},...F("-head-day",e=>{return{scope:d,event:e}})};return!0!==y.noAria&&(m.ariaLabel=P.value(t,!1)),Ae.h("div",m,[void 0===a&&we(t,y.shortWeekdayLabel||S.value),void 0!==a&&a({scope:d}),pe(t,e),!0===i&&ze()])}function pe(t,e){const a=v["head-day-event"],n=!0!==y.noActiveDate&&x(t),r=N.value.filter(e=>e.weekday===t.weekday),o=r[0].weekday,d={weekday:o,timestamp:t,days:r,index:e,miniMode:S.value,activeDate:n,disabled:!!y.disabledWeekdays&&y.disabledWeekdays.includes(Number(t.weekday))},u=O.value,i=y.weekdayStyle||_,s={width:u,maxWidth:u,minWidth:u,...i({scope:d})};return Ae.h("div",{key:"event-"+t.date+(void 0!==e?"-"+e:""),class:{"q-calendar-month__head--event":!0},style:s},[void 0!==a&&a({scope:d})])}function we(e,t){const a=P.value(e,t||y.weekdayBreakpoints[0]>0&&G.value<=y.weekdayBreakpoints[0]);return Ae.h("span",{class:"q-calendar__ellipsis"},!0===S.value&&!0===y.shortWeekdayLabel||y.weekdayBreakpoints[1]>0&&G.value<=y.weekdayBreakpoints[1]?Ce(a,Number(y.minWeekdayLabel)):a)}function ke(){const t=y.weekdays.length,a=[];for(let e=0;e<N.value.length;e+=t)a.push(ge(N.value.slice(e,e+t),e/t));return a}function ge(e,t){const a=v.week,n=y.weekdays,r={week:e,weekdays:n,miniMode:S.value},o={},d=parseInt(String(y.dayHeight),10),u=parseInt(String(y.dayMinHeight),10),i=(o.height=d>0&&!0!==S.value?We(d):"auto",u>0&&!0!==S.value&&(o.minHeight=We(u)),0===d&&0===u);return Ae.h("div",{key:e[0].date,ref:e=>{l.value[t]=e},class:{"q-calendar-month__week--wrapper":!0,"q-calendar-month__week--auto-height":i},style:o},[!0===y.showWorkWeeks?be(e):void 0,Ae.h("div",{class:"q-calendar-month__week"},[Ae.h("div",{class:"q-calendar-month__week--days"},e.map(e=>De(e))),!0!==S.value&&void 0!==a?Ae.h("div",{ref:e=>{s.value[t]=e},class:"q-calendar-month__week--events"},a({scope:r})):void 0])])}function be(e){const t=v.workweek,a=e.length>2?e[2]:e[0],n=se(e).timestamp,r=Number(a.workweek).toLocaleString(y.locale),o={workweekLabel:r,week:e,miniMode:S.value};return Ae.h("div",{key:a.workweek,class:{"q-calendar-month__workweek":!0,...j(!1!==n?n:a,!1)},...F("-workweek",e=>{return{scope:o,event:e}})},t?t({scope:o}):r)}function De(t){const e=v.day,a=y.dayStyle||_,n=ee(t),r=!0!==y.noActiveDate&&T.value.date===t.date,o=!1===n&&!0===y.showMonthLabel&&N.value.find(e=>e.month===t.month)?.day===t.day,d={outside:n,timestamp:t,miniMode:S.value,activeDate:r,hasMonth:o,droppable:w.value===t.date,disabled:!!y.disabledWeekdays&&y.disabledWeekdays.includes(Number(t.weekday))},u=Object.assign({...$.value},a({scope:d})),i="function"===typeof y.dayClass?y.dayClass({scope:d}):{},s={key:t.date,ref:e=>{!0===W.value&&(m.value[t.date]=e)},tabindex:!0===W.value?0:-1,class:{"q-calendar-month__day":!0,...i,...j(t,n,Array.from(y.selectedDates),y.selectedStartEndDates,y.hover),"q-active-date":!0===r,disabled:!0!==y.enableOutsideDays&&!0===n,"q-calendar__hoverable":!0===y.hoverable,"q-calendar__focusable":!0===W.value},style:u,onFocus:()=>{!0===W.value&&(f.value=t.date)},onKeydown:e=>{!0!==n&&!0!==t.disabled&&I(e,[13,32])&&(e.stopPropagation(),e.preventDefault())},onKeyup:e=>{!0!==n&&!0!==t.disabled&&I(e,[13,32])&&(e.stopPropagation(),e.preventDefault(),void 0!==k.value.onClickDay)&&!0!==S.value&&c("click-day",{scope:d,e:e})},...F("-day",e=>{return{scope:d,event:e}})},l={onDragenter:e=>{void 0!==y.dragEnterFunc&&"function"===typeof y.dragEnterFunc&&(!0===y.dragEnterFunc(e,"day",{scope:d})?w.value=t.date:w.value="")},onDragover:e=>{void 0!==y.dragOverFunc&&"function"===typeof y.dragOverFunc&&(!0===y.dragOverFunc(e,"day",{scope:d})?w.value=t.date:w.value="")},onDragleave:e=>{void 0!==y.dragLeaveFunc&&"function"===typeof y.dragLeaveFunc&&(!0===y.dragLeaveFunc(e,"day",{scope:d})?w.value=t.date:w.value="")},onDrop:e=>{void 0!==y.dropFunc&&"function"===typeof y.dropFunc&&(!0===y.dropFunc(e,"day",{scope:d})?w.value=t.date:w.value="")}};return!0!==n&&Object.assign(s,l),!0!==y.noAria&&(s.ariaLabel=Z.value(t,!1)),Ae.h("div",s,[_e(t,n,o),Ae.h("div",{class:{"q-calendar-month__day--content":!0}},e?e({scope:d}):void 0),!0===W.value&&ze()])}function _e(e,t,a){let n,r;const o=[Te(e,t)],d=(!0!==S.value&&!0===a&&i.width>340&&(r=Ne(e,t)),!0!==S.value&&!0===y.showDayOfYearLabel&&void 0===r&&i.width>300&&(n=Me(e,t)),"left"===y.dateAlign?(void 0!==n&&o.push(n),void 0!==r&&o.push(r)):"right"===y.dateAlign?(void 0!==n&&o.unshift(n),void 0!==r&&o.unshift(r)):(n=void 0,r=void 0),{class:{"q-calendar-month__day--label__wrapper":!0,"q-calendar__ellipsis":!0,["q-calendar__"+y.dateAlign]:void 0===n&&void 0===r,"q-calendar__justify":void 0!==n||void 0!==r}});return Ae.h("div",d,o)}function Te(a,t){if(!0!==t||!0!==y.noOutsideDays){const e=z.value(a,!1),n=v["head-day-label"],r=v["head-day-button"],o=y.selectedDates&&Array.from(y.selectedDates).length>0&&Array.from(y.selectedDates).includes(a.date),d=!0!==y.noActiveDate&&x(a),u={dayLabel:e,timestamp:a,outside:t,activeDate:d,selectedDate:o,miniMode:S.value,disabled:!!y.disabledWeekdays&&y.disabledWeekdays.includes(Number(a.weekday))},i={key:a.date,ref:e=>{!0===C.value&&(m.value[a.date]=e)},tabindex:!0===C.value?0:-1,class:{"q-calendar-month__day--label":!0,"q-calendar__button":!0,"q-calendar__button--round":"round"===y.dateType,"q-calendar__button--rounded":"rounded"===y.dateType,"q-calendar__button--bordered":!0===a.current,"q-calendar__hoverable":!0===y.hoverable,"q-calendar__focusable":!0===C.value},disabled:!0===a.disabled||!0!==y.enableOutsideDays&&!0===t,onFocus:()=>{!0===C.value&&(f.value=a.date)},onKeydown:e=>{!0!==t&&!0!==a.disabled&&I(e,[13,32])&&(e.stopPropagation(),e.preventDefault())},onKeyup:e=>{!0===C.value&&!0!==t&&!0!==a.disabled&&I(e,[13,32])&&(e.stopPropagation(),e.preventDefault(),h.value=a.date,void 0!==k.value.onClickDate)&&c("click-date",{scope:u,event:e})},...F("-date",(e,t)=>{return e.stopPropagation(),"click-date"!==t&&"contextmenu-date"!==t||(h.value=a.date),{scope:u,event:e}})};return!0!==y.noAria&&(i.ariaLabel=Z.value(a,!1)),[r?r({scope:u}):et(y,i,n?n({scope:u}):e),!0===C.value&&ze()].filter(e=>!1!==e)}}function Me(e,t){if(!0!==t||!0!==y.noOutsideDays){const a=v["day-of-year"],n={timestamp:e};return Ae.h("span",{class:{"q-calendar-month__day--day-of-year":!0,"q-calendar__ellipsis":!0}},a?a({scope:n}):e.doy)}}function Ne(e,t){if(!0!==t||!0!==y.noOutsideDays){const a=v["month-label"],n=te.value(e,y.shortMonthLabel||i.width<500),r={monthLabel:n,timestamp:e,miniMode:S.value},o={};return!0!==S.value&&void 0!==J.value&&(o.fontSize=J.value),Ae.h("span",{class:"q-calendar-month__day--month q-calendar__ellipsis",style:o},[a?a({scope:r}):!0!==S.value?n:void 0])}}function Se(){const{start:e,end:t}=K.value,a=(d.value=e.date,u.value=t.date,i.width>0),n=Ae.withDirectives(Ae.h("div",{class:{"q-calendar-mini":!0===S.value,"q-calendar-month":!0},key:d.value},[!0===a&&!0!==y.noHeader&&me(),!0===a&&ce()]),[[qe,ie]]);if(!0!==y.animated)return n;{const r="q-calendar--"+("prev"===o.value?y.transitionPrev:y.transitionNext);return Ae.h(Ae.Transition,{name:r,appear:!0},()=>n)}}return Ae.watch([N],ae,{deep:!0,immediate:!0}),Ae.watch(()=>y.modelValue,(e,t)=>{if(h.value!==e){if(!0===y.animated){const a=Oe(Fe(e)),n=Oe(Fe(t));o.value=a>=n?"next":"prev"}h.value=e}f.value=e}),Ae.watch(h,(e,t)=>{if(h.value!==y.modelValue){if(!0===y.animated){const a=Oe(Fe(e)),n=Oe(Fe(t));o.value=a>=n?"next":"prev"}c("update:model-value",e)}}),Ae.watch(f,e=>{e&&(t.value=Ee(e),h.value!==e)&&(h.value=e)}),Ae.watch(t,()=>{m.value[f.value]?m.value[f.value].focus():ne()}),Ae.onBeforeUpdate(()=>{m.value={},s.value=[],l.value=[],Ae.nextTick(()=>{le()})}),Ae.onMounted(()=>{le()}),q({prev:ue,next:de,move:A,moveToToday:oe,updateCurrent:g}),()=>X()}});const at="4.1.2";e={version:at,QCalendarMonth:tt,...e,...pe,install(e){e.component(String(tt.name),tt)}};return e});