UNPKG

@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.9 kB
/*! * @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.QCalendarResource=t(e.Vue))})(this,function(we){const i=/^(\d{4})-(\d{1,2})(-(\d{1,2}))?([^\d]+(\d{1,2}))?(:(\d{1,2}))?(:(\d{1,2}))?(.(\d{1,3}))?$/,f=/^(\d{4})-(\d{1,2})(-(\d{1,2}))?/,y=/(\d\d?)(:(\d\d?)|)(:(\d\d?)|)/,T=[0,31,28,31,30,31,30,31,31,30,31,30,31],b=[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}},k=28,N=31,F=12,I=1,M=1,C=0;function t(e){return"string"===typeof e&&i.test(e)}function De(e){if("string"!==typeof e)return null;const t=i.exec(e);if(!t||!t[1]||!t[2])return null;const n=parseInt(t[1],10),a=parseInt(t[2],10),r=parseInt(t[4]||"1",10),o=parseInt(t[6]||"0",10),u=parseInt(t[8]||"0",10);return{date:e,time:o.toString().padStart(2,"0")+":"+u.toString().padStart(2,"0"),year:n,month:a,day:r,hour:o,minute:u,hasDay:!!t[4],hasTime:!0,past:!1,current:!1,future:!1,disabled:!1,weekday:0,doy:0,workweek:0}}function E(e,t=!1){if(!(e instanceof Date))return null;const n=t?"UTC":"";return w({date:o(e[`get${n}FullYear`](),4)+"-"+o(e[`get${n}Month`]()+1,2)+"-"+o(e[`get${n}Date`](),2),time:o(e[`get${n}Hours`]()||0,2)+":"+o(e[`get${n}Minutes`]()||0,2),year:e[`get${n}FullYear`](),month:e[`get${n}Month`]()+1,day:e[`get${n}Date`](),hour:e[`get${n}Hours`](),minute:e[`get${n}Minutes`](),weekday:0,doy:0,workweek:0,hasDay:!0,hasTime:!0,past:!1,current:!1,future:!1,disabled:!1})}function o(e,t){let n=String(e);while(n.length<t)n="0"+n;return n}function A(e){return e%4===0&&e%100!==0||e%400===0}function l(e,t){return(A(e)?b:T)[t]}function h(e){const t=new Date(e.year,e.month-1,e.day+1);return w(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 w(ie({...e,year:t.getFullYear(),month:t.getMonth()+1,day:t.getDate()}))}function Te(){const e=new Date,t=e.getMonth()+1,n=e.getDate(),a=e.getFullYear();return[a,o(t,2),o(n,2)].join("-")}function O(e){return e===Te()}function P(e,t,n){let a=X(e);if(t){if(1===a.day||0===a.weekday)while(!t.includes(Number(a.weekday)))a=h(a);a=v(a,t[0],p),a=w(a),n&&(a=z(a,n,a.hasTime))}return a}function Z(e,t,n){let a=X(e);if(t&&Array.isArray(t)){const r=l(a.year,a.month);if(r===a.day||a.weekday===t[t.length-1])while(!t.includes(Number(a.weekday)))a=p(a);a=v(a,t[t.length-1],h),a=w(a),n&&(a=z(a,n,a.hasTime))}return a}function _(e){let t=X(e);return t.day=M,t=w(t),t}function S(e){let t=X(e);return t.day=l(t.year,t.month),t=w(t),t}function K(e){const t=Object.prototype.toString.call(e);switch(t){case"[object Number]":return e;case"[object String]":{const n=y.exec(e);return n?60*parseInt(n[1],10)+parseInt(n[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 W(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 x(e,t){return s(e)===s(t)}function q(e,t){return c(e)===c(t)}function H(e,t){return j(e)===j(t)}function be(e,t=null){let n=De(e);return n?(n=w(n),t&&(n=z(n,t,n.hasTime)),n):null}function ke(e){return 1e8*(e.year??0)+1e6*(e.month??0)+1e4*(e.day??0)}function d(e){return 100*(e.hour??0)+(e.minute??0)}function $(e){return ke(e)+d(e)}function R(e,t,n=!1){const a=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===n&&r<a?0:r-a}function z(e,t,n=!1){let a=X(e),r=ke(t),o=ke(a),u=r===o;return a.hasTime&&n&&u&&(r=d(t),o=d(a),u=r===o),a.past=o<r,a.current=u,a.future=o>r,a.currentWeekday=a.weekday===t.weekday,a}function U(e,t,n=null){let a=X(e);return a.hasTime=!0,a.hour=Math.floor(t/r.MINUTES_IN.HOUR),a.minute=t%r.MINUTES_IN.HOUR,a.time=c(a),n&&(a=z(a,n,!0)),a}function g(e){let t=X(e);return t.weekday=u(t),t}function L(e){let t=X(e);return t.doy=n(t)||0,t}function Y(e){let t=X(e);return t.workweek=a(t),t}function B(e,t,n,a,r){let o=X(e);const u=ke(o);if(void 0!==t){const s=De(t);if(s){const c=ke(s);u<=c&&(o.disabled=!0)}}if(!0!==o.disabled&&void 0!==n){const v=De(n);if(v){const m=ke(v);u>=m&&(o.disabled=!0)}}if(!0!==o.disabled&&Array.isArray(a)&&a.length>0)for(var i in a)if(a[i]===o.weekday){o.disabled=!0;break}if(!0!==o.disabled&&Array.isArray(r)&&r.length>0)for(var l in r)if(Array.isArray(r[l])&&2===r[l].length&&r[l][0]&&r[l][1]){const f=De(r[l][0]),y=De(r[l][1]);if(f&&y&&oe(o,f,y)){o.disabled=!0;break}}else{const h=r[l];if(Array.isArray(h))for(var d of h){const p=be(d);if(p){const g=ke(p);if(g===u){o.disabled=!0;break}}}else if(h){const w=be(h);if(w){const D=ke(w);D===u&&(o.disabled=!0)}}}return o}function w(e){let t=X(e);return t.hasTime=!0,t.time=c(t),t.date=s(t),t.weekday=u(t),t.doy=n(t)||0,t.workweek=a(t),t}function n(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 a(e){let t=X(e);if(0===t.year){const r=be(Te());r&&(t=r)}const n=new Date(Date.UTC(t.year,t.month-1,t.day)),a=4;n.setUTCDate(n.getUTCDate()-(n.getUTCDay()+6)%7+a),n.setUTCDate(n.getUTCDate()+a-(n.getUTCDay()||7));e=new Date(Date.UTC(n.getUTCFullYear(),0,1)),e=Math.ceil(((n.valueOf()-e.valueOf())/864e5+1)/7);return e}function u(e){let t=e.weekday;if(e.hasDay){const n=Math.floor,a=e.day,r=(e.month+9)%F+1,o=n(e.year/100),u=e.year%100-(e.month<=2?1:0);t=((a+n(2.6*r-.2)-2*o+u+n(u/4)+n(o/4))%7+7)%7}return t??0}function X(e){return{...e}}function s(e){let t=o(e.year,4)+"-"+o(e.month,2);return e.hasDay&&(t+="-"+o(e.day,2)),t}function c(e){return e.hasTime?o(e.hour,2)+":"+o(e.minute,2):""}function j(e){return s(e)+" "+(e.hasTime?c(e):"00:00")}function V(e,t=h,n=1,a=[0,1,2,3,4,5,6]){const r=X(e);return D(r,t,n,a)}function D(e,t=h,n=1,a=[0,1,2,3,4,5,6]){let r=X(e);a.includes(Number(r.weekday))||0!==r.weekday||t!==h||++n;while(--n>=0)r=t(r),a.length<7&&!a.includes(Number(r.weekday))&&++n;return r}function v(e,t,n=h,a=6){let r=X(e);while(r.weekday!==t&&--a>=0)r=n(r);return r}function J(e,t,n,a=[0,1,2,3,4,5,6],r=void 0,o=void 0,u=[],i=[],l=42,d=0){const s=ke(e),c=ke(t),v=[];let m=X(e),f=0,y=f===c;if(!(c<s))while((!y||v.length<d)&&v.length<l){if(f=ke(m),y=y||f>c&&v.length>=d,y)break;if(a.includes(Number(m.weekday))){let e=X(m);e=w(e),e=z(e,n),e=B(e,r,o,u,i),v.push(e)}m=D(m,h)}return v}function ee(t,n,a,r,o){const u=[];for(let e=0;e<r;++e){const i=(n+e)*a,l=X(t);u.push(U(l,i,o))}return u}function Q(a,r){const e=()=>"";return"undefined"===typeof Intl||"undefined"===typeof Intl.DateTimeFormat?e:(t,e)=>{try{const n=new Intl.DateTimeFormat(a||void 0,r(t,e));return n.format(ne(t))}catch(e){return console.error(`Intl.DateTimeFormat: ${e.message} -> `+j(t)),""}}}function te(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 e(e){return isFinite(Number(e))}function ae(e,t=!1){const n=!0===t?$:ke;return e.reduce((e,t)=>{return Math.max(n(e),n(t))===n(e)?e:t})}function re(e,t=!1){const n=!0===t?$:ke;return e.reduce((e,t)=>{return Math.min(n(e),n(t))===n(e)?e:t})}function oe(e,t,n,a=!1){const r=ke(e)+(!0===a?d(e):0),o=ke(t)+(!0===a?d(t):0),u=ke(n)+(!0===a?d(n):0);return r>=o&&r<=u}function ue(e,t,n,a){const r=ke(e),o=ke(t),u=ke(n),i=ke(a);return r>=u&&r<=i||o>=u&&o<=i||u>=r&&o>=i}function G(e,t){const n=X(e);return t.year&&(n.year+=t.year),t.month&&(n.month+=t.month),t.day&&(n.day+=t.day),t.hour&&(n.hour+=t.hour),t.minute&&(n.minute+=t.minute),w(ie(n))}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 le(e,t){const n=R(e,t,!0);return Math.floor(n/r.MILLISECONDS_IN.DAY)}function de(e,t){let n=X(e),a=X(t);return n=v(n,0),a=v(a,6),Math.ceil(le(n,a)/r.DAYS_IN.WEEK)}const se={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 ce(){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,n){try{const a=new Intl.DateTimeFormat(n||void 0,r[e]||r["long"]);return a.format(se[t])}catch(e){return e instanceof Error&&console.error(`Intl.DateTimeFormat: ${e.message} -> day of week: `+t),""}}}function ve(t,n){const e=Object.keys(se),a=ce();return e.map(e=>String(a(e,t,n)))}function me(){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,n){try{const a=new Intl.DateTimeFormat(n||void 0,o[e]||o["long"]),r=new Date;return r.setDate(1),r.setMonth(t),a.format(r)}catch(e){return e instanceof Error&&console.error(`Intl.DateTimeFormat: ${e.message} -> month: `+t),""}}}function fe(t,n){const a=me();return[...Array(12).keys()].map(e=>a(e,t,n))}var ye={PARSE_DATETIME:i,PARSE_DATE:f,PARSE_TIME:y,DAYS_IN_MONTH:T,DAYS_IN_MONTH_LEAP:b,DAYS_IN_MONTH_MIN:k,DAYS_IN_MONTH_MAX:N,MONTH_MAX:F,MONTH_MIN:I,DAY_MIN:M,TIME_CONSTANTS:r,FIRST_HOUR:C,today:Te,getStartOfWeek:P,getEndOfWeek:Z,getStartOfMonth:_,getEndOfMonth:S,parseTime:K,validateTimestamp:t,parsed:De,parseTimestamp:be,parseDate:E,getDayIdentifier:ke,getTimeIdentifier:d,getDayTimeIdentifier:$,diffTimestamp:R,updateRelative:z,updateMinutes:U,updateWeekday:g,updateDayOfYear:L,updateWorkWeek:Y,updateDisabled:B,updateFormatted:w,getDayOfYear:n,getWorkWeek:a,getWeekday:u,isLeapYear:A,daysInMonth:l,copyTimestamp:X,padNumber:o,getDate:s,getTime:c,getDateTime:j,nextDay:h,prevDay:p,relativeDays:D,findWeekday:v,createDayList:J,createIntervalList:ee,createNativeLocaleFormatter:Q,makeDate:te,makeDateTime:ne,validateNumber:e,isBetweenDates:oe,isOverlappingDates:ue,daysBetween:le,weeksBetween:de,addToDate:G,compareTimestamps:W,compareDate:x,compareTime:q,compareDateTime:H,getWeekdayFormatter:ce,getWeekdayNames:ve,getMonthFormatter:me,getMonthNames:fe},ye=Object.freeze({__proto__:null,DAYS_IN_MONTH:T,DAYS_IN_MONTH_LEAP:b,DAYS_IN_MONTH_MAX:N,DAYS_IN_MONTH_MIN:k,DAY_MIN:M,FIRST_HOUR:C,MONTH_MAX:F,MONTH_MIN:I,PARSE_DATE:f,PARSE_DATETIME:i,PARSE_TIME:y,TIME_CONSTANTS:r,addToDate:G,compareDate:x,compareDateTime:H,compareTime:q,compareTimestamps:W,copyTimestamp:X,createDayList:J,createIntervalList:ee,createNativeLocaleFormatter:Q,daysBetween:le,daysInMonth:l,default:ye,diffTimestamp:R,findWeekday:v,getDate:s,getDateTime:j,getDayIdentifier:ke,getDayOfYear:n,getDayTimeIdentifier:$,getEndOfMonth:S,getEndOfWeek:Z,getMonthFormatter:me,getMonthNames:fe,getStartOfMonth:_,getStartOfWeek:P,getTime:c,getTimeIdentifier:d,getWeekday:u,getWeekdayFormatter:ce,getWeekdayNames:ve,getWorkWeek:a,isBetweenDates:oe,isLeapYear:A,isOverlappingDates:ue,isToday:O,makeDate:te,makeDateTime:ne,maxTimestamp:ae,minTimestamp:re,moveRelativeDays:V,nextDay:h,padNumber:o,parseDate:E,parseTime:K,parseTimestamp:be,parsed:De,prevDay:p,relativeDays:D,today:Te,updateDayOfYear:L,updateDisabled:B,updateFormatted:w,updateMinutes:U,updateRelative:z,updateWeekday:g,updateWorkWeek:Y,validateNumber:e,validateTimestamp:t,weeksBetween:de});function _e(e,t="px"){if(e)return isNaN(e)?String(e):"auto"===e?e:""+Number(e)+t}function he(t,n){for(let e=0;e<t.length;e++)if(!0===n(t[e],e))return e;return-1}function pe(e,t){return 0===t?e:e.slice(0,t)}var ge={convertToUnit:_e,indexOf:he,minCharWidth:pe},ge=Object.freeze({__proto__:null,convertToUnit:_e,default:ge,indexOf:he,minCharWidth:pe});const Se={mounted(e,t){if("function"===typeof t.value){const n=t.value,a={callback:n,size:{width:0,height:0},observer:new ResizeObserver(e=>{const t=e[0].contentRect;t.width===a.size.width&&t.height===a.size.height||(a.size.width=t.width,a.size.height=t.height,a.debounceTimeout&&clearTimeout(a.debounceTimeout),a.debounceTimeout=setTimeout(()=>{a.callback(a.size),a.debounceTimeout=void 0},100))})};a.observer.observe(e),e.__onResizeObserver=a}},beforeUnmount(e){if(e.__onResizeObserver){const{observer:t,debounceTimeout:n}=e.__onResizeObserver;n&&clearTimeout(n),t.unobserve(e),delete e.__onResizeObserver}}};function Ne(t,n,{scrollArea:e,pane:a}){if(!n){const s="[error: renderCalendar] no renderFunc has been supplied to useCalendar";throw console.error(s),new Error(s)}const r=we.reactive({width:0,height:0}),o=we.ref(null);function u({width:e,height:t}){r.width=e,r.height=t}const i=we.computed(()=>{return!0!==t.noScroll&&e.value&&a.value&&r.height?e.value.offsetWidth-a.value.offsetWidth:0});function l(){}function d(){const e={ref:o,role:"complementary",lang:t.locale,class:`q-calendar ${t.dark?"q-calendar--dark":""} `+(t.bordered?"q-calendar__bordered":"")};return we.withDirectives(we.h("div",{...e},[n()]),[[Se,u]])}return{rootRef:o,scrollWidth:i,__initCalendar:l,__renderCalendar:d}}const Fe=e=>e.every(e=>["day","date","weekday","interval","time","resource","task"].includes(e)),Ie={modelValue:{type:String,default:Te(),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:Fe}};function Me(t,{startDate:e,endDate:n,times:a}){const r=we.computed(()=>be(e.value)),o=we.computed(()=>{return"0000-00-00"===n.value?Z(r.value,t.weekdays,a.today):be(n.value)||r.value}),u=we.computed(()=>Q(t.locale,()=>({timeZone:"UTC",day:"numeric"}))),i=we.computed(()=>Q(t.locale,(e,t)=>({timeZone:"UTC",weekday:t?"short":"long"}))),l=we.computed(()=>Q(t.locale,()=>({timeZone:"UTC",dateStyle:"full"})));function d(e,t){return e&&e.length>0&&e.includes(t.date)}function s(e,t){const n={firstDay:!1,betweenDays:!1,lastDay:!1};if(2===e.length){const a=ke(t),r=ke(De(e[0])),o=ke(De(e[1]));n.firstDay=r===a,n.lastDay=o===a,n.betweenDays=r<a&&o>a}return n}function c(e,t=!1,n=[],a=[],r=!1){const o=d(n,e),{firstDay:u,lastDay:i,betweenDays:l}=s(a,e);return{"q-past-day":!u&&!l&&!i&&!o&&!t&&!!e.past,"q-future-day":!u&&!l&&!i&&!o&&!t&&!!e.future,"q-outside":t,"q-current-day":!!e.current,"q-selected":o,"q-range-first":u,"q-range":l,"q-range-last":i,"q-range-hover":r&&(u||i||l),"q-disabled-day disabled":!0===e.disabled}}function v(e){return P(e,t.weekdays,a.today)}function m(e){return Z(e,t.weekdays,a.today)}function f(){return{}}return{parsedStart:r,parsedEnd:o,dayFormatter:u,weekdayFormatter:i,ariaDateFormatter:l,arrayHasDate:d,checkDays:s,getRelativeClasses:c,startOfWeek:v,endOfWeek:m,dayStyleDefault:f}}function Ce(e,t){e instanceof Window?e.scrollTo({top:t,behavior:"instant"}):e.scrollTop=t}function Ee(e){return e instanceof Window?e.scrollY:e.scrollTop}function Ae(o,u,i=500,l=performance.now(),d=Ee(o)){i<=0||d===u?Ce(o,u):requestAnimationFrame(e=>{const t=e-l,n=Math.min(t/i,1),a=e=>e<.5?2*e*e:(4-2*e)*e-1,r=d+(u-d)*a(n);Ce(o,r),n<1&&Ae(o,u,i,l,d)})}function Oe(r,e,o=500){const u=r.scrollLeft,i=e-u;let l=null;function d(e){null===l&&(l=e);const t=e-l,n=Math.min(t/o,1),a=e=>e<.5?2*e*e:(4-2*e)*e-1;r.scrollLeft=u+i*a(n),t<o&&requestAnimationFrame(d)}requestAnimationFrame(d)}const We={view:{type:String,validator:e=>["day","week","month","month-interval"].includes(e),default:"day"},shortIntervalLabel:Boolean,intervalHeight:{type:[Number,String],default:40,validator:e},intervalMinutes:{type:[Number,String],default:60,validator:e},intervalStart:{type:[Number,String],default:0,validator:e},intervalCount:{type:[Number,String],default:24,validator:e},intervalStyle:{type:Function,default:null},intervalClass:{type:Function,default:null},weekdayStyle:{type:Function,default:null},weekdayClass:{type:Function,default:null},showIntervalLabel:{type:Function,default:null},hour24Format:Boolean,timeClicksClamped:Boolean,dateHeader:{type:String,default:"stacked",validator:e=>["stacked","inline","inverted"].includes(e)}},xe={modelResources:{type:Array},resourceKey:{type:String,default:"id"},resourceLabel:{type:String,default:"label"},resourceHeight:{type:[Number,String],default:0,validator:e},resourceMinHeight:{type:[Number,String],default:70,validator:e},resourceStyle:{type:Function,default:null},resourceClass:{type:Function,default:null},cellWidth:{type:[Number,String],default:100},intervalHeaderHeight:{type:[Number,String],default:20,validator:e},noSticky:Boolean};function qe(o,{times:t,scrollArea:a,parsedStart:e,parsedEnd:n,maxDays:r,size:u,headerColumnRef:i}){const l=we.computed(()=>parseInt(String(o.intervalStart),10)),v=we.computed(()=>parseInt(String(o.intervalMinutes),10)),d=we.computed(()=>parseInt(String(o.intervalCount),10)),m=we.computed(()=>parseFloat(String(o.intervalHeight))),f=we.computed(()=>{let e=0;const t=Number(o.columnCount);return o.cellWidth?e=Number(o.cellWidth):u.width>0&&i.value&&(e=i.value.offsetWidth/(t>1?t:r.value)),e}),s=we.computed(()=>l.value*v.value),c=we.computed(()=>d.value*m.value),y=we.computed(()=>d.value*f.value),h=we.computed(()=>D(e.value)),p=we.computed(()=>T(n.value)),g=we.computed(()=>{return J(e.value,n.value,t.today,o.weekdays,o.disabledBefore,o.disabledAfter,o.disabledWeekdays,o.disabledDays,r.value)}),w=we.computed(()=>{return g.value.map(e=>ee(e,l.value,v.value,d.value,t.now))});function D(e){return P(e,o.weekdays,t.today)}function T(e){return Z(e,o.weekdays,t.today)}function b(e,t){return e&&e.length>0&&e.includes(j(t))}function k(e,t){const n={firstDay:!1,betweenDays:!1,lastDay:!1};if(e&&2===e.length){const a=$(t),r=$(De(e[0])),o=$(De(e[1]));n.firstDay=r===a,n.lastDay=o===a,n.betweenDays=r<a&&o>a}return n}function _(e,t=[],n=[]){const a=b(t,e),{firstDay:r,lastDay:o,betweenDays:u}=k(n,e);return{"q-selected":a,"q-range-first":!0===r,"q-range":!0===u,"q-range-last":!0===o,"q-disabled-interval disabled":!0===e.disabled}}function S(e,t,n){return[]}const N=we.computed(()=>{const n={timeZone:"UTC",hour12:!o.hour24Format,hour:"2-digit",minute:"2-digit"},a={timeZone:"UTC",hour12:!o.hour24Format,hour:"numeric",minute:"2-digit"},r={timeZone:"UTC",hour12:!o.hour24Format,hour:"numeric"};return Q(o.locale,(e,t)=>t?0===e.minute?r:a:n)}),F=we.computed(()=>{const e={timeZone:"UTC",dateStyle:"full",timeStyle:"short"};return Q(o.locale,()=>e)});function I(e){const t=w.value[0][0],n=t.hour===e.hour&&t.minute===e.minute;return!n&&0===e.minute}function M(e){}function C(e){return{}}function E(e,t,n=!1,a){let r=X(t);if(e.currentTarget){const o=e.currentTarget.getBoundingClientRect(),u=e,i=e,l=u.changedTouches||u.touches,d=(l&&l[0]?l[0]:i).clientY,s=(d-o.top)/m.value,c=Math.floor((n?Math.floor(s):s)*v.value);0!==c&&(r=G(r,{minute:c})),a&&(r=z(r,a,!0))}return r}function q(e,t,n=!1,a){let r=X(t);const o=e.currentTarget.getBoundingClientRect(),u=e,i=e,l=u.changedTouches||u.touches,d=(l&&l[0]?l[0]:i).clientY,s=(d-o.top)/m.value,c=Math.floor((n?Math.floor(s):s)*v.value);return 0!==c&&(r=G(r,{minute:c})),a&&(r=z(r,a,!0)),r}function H(e,t,n=!1,a){let r=X(t);if(e.currentTarget){const o=e.currentTarget.getBoundingClientRect(),u=e,i=e,l=u.changedTouches||u.touches,d=(l&&l[0]?l[0]:i).clientX,s=(d-o.left)/f.value,c=Math.floor((n?Math.floor(s):s)*v.value);0!==c&&(r=G(r,{minute:c})),a&&(r=z(r,a,!0))}return r}function R(e,t){const n={timestamp:e,timeStartPos:W,timeDurationHeight:A};return void 0!==t&&(n.columnIndex=t),n}function U(e,t){const n={timestamp:X(e),timeStartPosX:x,timeDurationWidth:O};return void 0!==t&&(n.index=t),n}function L(e,t=0){const n=W(e);return!(!1===n||!a.value)&&(Ae(a.value,n,t),!0)}function Y(e,t=0){const n=x(e);return!(!1===n||!a.value)&&(Oe(a.value,n,t),!0)}function A(e){return e/v.value*m.value}function O(e){return e/v.value*f.value}function B(e){return e*v.value/m.value}function V(e){return e*v.value/f.value}function W(e,t=!0){const n=K(e);if(!1===n)return!1;const a=s.value,r=d.value*v.value,o=(n-a)/r;let u=o*c.value;return t&&(u<0&&(u=0),u>c.value)&&(u=c.value),u}function x(e,t=!0){const n=K(e);if(!1===n)return!1;const a=s.value,r=d.value*v.value,o=(n-a)/r;let u=o*y.value;return t&&(u<0&&(u=0),u>y.value)&&(u=y.value),u}return{parsedIntervalStart:l,parsedIntervalMinutes:v,parsedIntervalCount:d,parsedIntervalHeight:m,parsedCellWidth:f,parsedStartMinute:s,bodyHeight:c,bodyWidth:y,parsedWeekStart:h,parsedWeekEnd:p,days:g,intervals:w,intervalFormatter:N,ariaDateTimeFormatter:F,arrayHasDateTime:b,checkIntervals:k,getIntervalClasses:_,getResourceClasses:S,showIntervalLabelDefault:I,showResourceLabelDefault:M,styleDefault:C,getTimestampAtEventInterval:E,getTimestampAtEvent:q,getTimestampAtEventX:H,getScopeForSlot:R,getScopeForSlotX:U,scrollToTime:L,scrollToTimeX:Y,timeDurationHeight:A,timeDurationWidth:O,heightToMinutes:B,widthToMinutes:V,timeStartPos:W,timeStartPosX:x}}const He={columnCount:{type:[Number,String],default:0,validator:e},columnIndexStart:{type:[Number,String],default:0,validator:e}},Re={maxDays:{type:Number,default:1}},Ue={now:{type:String,validator:e=>""===e||t(e),default:""}};function Le(e){const t=we.reactive({now:be("0000-00-00 00:00"),today:be("0000-00-00")}),n=we.computed(()=>e.now?be(e.now):o());function a(){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=n.value||o();u(e,t.now),i(e,t.now),u(e,t.today)}function o(){return E(new Date)}function u(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 i(e,t){e.time!==t.time&&(t.hour=e.hour,t.minute=e.minute,t.time=e.time)}return we.watch(n,()=>r()),{times:t,parsedNow:n,setCurrent:a,updateCurrent:r,getNow:o,updateDay:u,updateTime:i}}function Ye(r,{parsedView:o,parsedValue:u,times:i}){const e=we.computed(()=>{const e=u.value;let t=r.maxDays,n=e,a=e;switch(o.value){case"month":n=_(e),a=S(e),t=l(n.year,n.month);break;case"week":case"week-agenda":case"week-scheduler":n=P(e,r.weekdays,i.today),a=Z(n,r.weekdays,i.today),t=r.weekdays.length;break;case"day":case"scheduler":case"agenda":a=V(X(a),h,t>1?t-1:t,r.weekdays),a=w(a);break;case"month-interval":case"month-scheduler":case"month-agenda":n=_(e),a=S(e),a=w(a),t=l(n.year,n.month);break;case"resource":t=1,a=V(X(a),h,t,r.weekdays),a=w(a);break}return{start:n,end:a,maxDays:t}});return{renderValues:e}}const Be=e=>e.replace(/(-\w)/g,e=>e[1].toUpperCase());function Ve(t,e,n,a){const r={};for(const o in n){const u=n[o],i=Be("on-"+o);if(!e.value)return console.warn("$listeners has not been set up"),{};if(void 0!==e.value[i]){const l="on"+u.event.charAt(0).toUpperCase()+u.event.slice(1),d=e=>{return(void 0===u.button||"buttons"in e&&e.buttons>0&&e.button===u.button)&&(u.prevent&&e.preventDefault(),u.stop&&e.stopPropagation(),t(o,a(e,o))),u.result};l in r?Array.isArray(r[l])?r[l].push(d):r[l]=[r[l],d]:r[l]=d}}return r}function Pe(e,t,n,a){return Ve(e,t,Ze(n),a)}function Ze(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 m(e){return Object.keys(Ze(e))}function Ke(n,a){return{getMouseEventHandlers:(e,t)=>Ve(n,a,e,t),getDefaultMouseEventHandlers:(e,t)=>Pe(n,a,e,t),getMouseEventName:Ze,getRawMouseEvents:m}}const $e=["moved"];function ze(l,{parsedView:d,parsedValue:s,direction:c,maxDays:v,times:m,emittedValue:f,emit:y}){function e(n=1){if(0===n)f.value=Te();else{let e=X(s.value);const a=S(e),r=n>0,o=r?h:p,u=r?a.day:1;let t=r?n:-n;c.value=r?"next":"prev";const i=l.weekdays.length;while(--t>=0)switch(d.value){case"month":e.day=u,e=o(e),e=g(e);while(!l.weekdays.includes(Number(e.weekday)))e=G(e,{day:r?1:-1});break;case"week":case"week-agenda":case"week-scheduler":e=D(e,o,i,l.weekdays);break;case"day":case"scheduler":case"agenda":e=D(e,o,v.value,l.weekdays);break;case"month-interval":case"month-agenda":case"month-scheduler":e.day=u,e=o(e);break;case"resource":e=D(e,o,v.value,l.weekdays);break}e=g(e),e=w(e),e=L(e),e=z(e,m.now),f.value=e.date,y("moved",e)}}return{move:e}}const Xe=/^on[A-Z]/;function je(e=we.getCurrentInstance()){return{emitListeners:we.computed(()=>{const t={};return e?.vnode?.props&&Object.keys(e.vnode.props).forEach(e=>{Xe.test(e)&&(t[e]=!0)}),t})}}function Qe(){const e={"aria-hidden":"true",class:"q-calendar__focus-helper"};return[we.h("span",e)]}const Ge=["change"];function Je(a,{days:r,lastStart:o,lastEnd:u}){function e(){const e=r.value;if(0===e.length)return!1;const t=e[0].date,n=e[e.length-1].date;return(!o.value||!u.value||t!==o.value||n!==u.value)&&(o.value=t,u.value=n,a("change",{start:t,end:n,days:e}),!0)}return{checkChange:e}}function et(){function e(e,t){return(Array.isArray(t)?t:[t]).includes(e.keyCode)}return{isKeyCode:e}}const tt=et().isKeyCode,nt={useNavigation:Boolean};function at(t,{rootRef:n,focusRef:a,focusValue:r,datesRef:o,parsedView:u,emittedValue:i,direction:l,times:d}){let e=!1;function s(){e||document&&(e=!0,document.addEventListener("keyup",y),document.addEventListener("keydown",f))}function c(){document&&(document.removeEventListener("keyup",y),document.removeEventListener("keydown",f),e=!1)}function v(e){if(e&&document){const t=document.activeElement;if(t!==document.body&&n.value?.contains(t))return!0}return!1}function m(){let t=0;const n=window.setInterval(()=>{const e=o.value[a.value];e&&(e.focus(),50!==++t)&&document.activeElement!==e||window.clearInterval(n)},250)}function f(e){v(e)&&tt(e,[33,34,35,36,37,38,39,40])&&(e.stopPropagation(),e.preventDefault())}function y(e){if(v(e)&&tt(e,[33,34,35,36,37,38,39,40])){const t={33:D,34:T,35:k,36:b,37:g,38:h,39:w,40:p};t[e.keyCode]?.()}}function h(){let e=X(r.value);if("month"===u.value){if(e=G(e,{day:-7}),r.value.month!==e.month)return l.value="prev",void(i.value=e.date)}else e=G(e,{minute:Number(t.intervalMinutes)});l.value="prev",a.value=e.date}function p(){let e=X(r.value);if("month"===u.value){if(e=G(e,{day:7}),r.value.month!==e.month)return l.value="next",void(i.value=e.date)}else e=G(e,{minute:Number(t.intervalMinutes)});l.value="next",a.value=e.date}function g(){let e=X(r.value);l.value="prev";do{e=G(e,{day:-1})}while(!t.weekdays.includes(Number(e.weekday)));a.value=e.date}function w(){let e=X(r.value);l.value="next";do{e=G(e,{day:1})}while(!t.weekdays.includes(Number(e.weekday)));a.value=e.date}function D(){let e=X(r.value);e="month"===u.value?G(e,{month:-1}):G(e,{day:-7}),l.value="prev",a.value=e.date}function T(){let e=X(r.value);e="month"===u.value?G(e,{month:1}):G(e,{day:7}),l.value="next",a.value=e.date}function b(){let e=X(r.value);e="month"===u.value?_(e):P(e,t.weekdays||[],d.today);while(!t.weekdays.includes(Number(e.weekday)))e=G(e,{day:-1});a.value=e.date}function k(){let e=X(r.value);e="month"===u.value?S(e):Z(e,t.weekdays||[],d.today);while(!t.weekdays.includes(Number(e.weekday)))e=G(e,{day:-1});a.value=e.date}return we.onBeforeUnmount(()=>{c()}),we.watch(()=>t.useNavigation,e=>{(!0===e?s:c)()}),!0===t.useNavigation&&s(),{startNavigation:s,endNavigation:c,tryFocus:m}}var rt=we.defineComponent({name:"QCalendarResource",props:{...Ie,...xe,...We,...He,...Re,...Ue,...nt},emits:["update:model-value","update:model-resources","resource-expanded",...Ge,...$e,...m("-date"),...m("-interval"),...m("-head-day"),...m("-time"),...m("-head-resources"),...m("-resource")],setup(m,{slots:f,emit:v,expose:q}){const e=we.ref(null),H=we.ref(null),R=we.ref(null),t=we.ref(null),y=we.ref(m.modelValue||Te()),n=we.ref(De(m.modelValue||Te())),h=we.ref({}),p=we.ref({}),u=we.ref("next"),i=we.ref(m.modelValue||Te()),l=we.ref("0000-00-00"),d=we.ref(0),r=we.ref(m.modelValue),s=we.reactive({width:0,height:0}),g=we.ref(""),w=we.ref(""),D=we.ref(""),U=we.ref(null),L=we.ref(null),a=(we.watch(()=>m.view,()=>{d.value=0}),we.computed(()=>{return"month"===m.view?"month-interval":m.view})),T=we.computed(()=>{return parseInt(String(m.cellWidth),10)}),o=we.getCurrentInstance();if(null===o)throw new Error("current instance is null");const b=je(o).emitListeners,{times:c,setCurrent:Y,updateCurrent:k}=Le(m),{parsedStart:_,parsedEnd:B,dayStyleDefault:S}=(k(),Y(),Me(m,{startDate:i,endDate:l,times:c})),N=we.computed(()=>{return be(m.modelValue,c.now)||_.value||c.today}),V=(n.value=N.value,y.value=N.value.date,Ye(m,{parsedView:a,times:c,parsedValue:N})).renderValues,{rootRef:P,__renderCalendar:Z}=Ne(m,ge,{scrollArea:e,pane:H}),{days:F,intervals:I,intervalFormatter:K,styleDefault:$,scrollToTimeX:z,timeDurationWidth:M,timeStartPosX:C,widthToMinutes:X}=qe(m,{times:c,scrollArea:e,parsedStart:_,parsedEnd:B,maxDays:d,size:s,headerColumnRef:t}),E=ze(m,{parsedView:a,parsedValue:N,direction:u,maxDays:d,times:c,emittedValue:r,emit:v}).move,A=Ke(v,b).getDefaultMouseEventHandlers,j=Je(v,{days:F,lastStart:U,lastEnd:L}).checkChange,Q=et().isKeyCode,G=at(m,{rootRef:P,focusRef:y,focusValue:n,datesRef:h,parsedView:a,emittedValue:r,direction:u,times:c}).tryFocus,O=we.computed(()=>{const e=parseInt(String(m.resourceHeight),10);return 0===e?"auto":e}),W=we.computed(()=>{return parseInt(String(m.resourceMinHeight),10)}),x=we.computed(()=>{return parseInt(String(m.intervalHeaderHeight),10)});function J(){r.value=Te()}function ee(e=1){E(e)}function te(e=1){E(-e)}function ne({width:e,height:t}){s.width=e,s.height=t}function ae(e){return e.date===r.value}function re(){const e={height:_e(x.value)};return we.h("div",{ref:R,roll:"presentation",class:{"q-calendar-resource__head":!0,"q-calendar__sticky":!0!==m.noSticky},style:e},[oe(),ue()])}function oe(){const e=f["head-resources"],t=_e(x.value),n={timestamps:I,date:m.modelValue,resources:m.modelResources};return we.h("div",{class:{"q-calendar-resource__head--resources":!0,"q-calendar__sticky":!0!==m.noSticky},style:{height:t},...A("-head-resources",e=>{return{scope:n,event:e}})},[e&&e({scope:n})])}function ue(){return we.h("div",{ref:t,class:{"q-calendar-resource__head--intervals":!0}},[I.value.map(e=>e.map((e,t)=>ie(e,t)))])}function ie(e,t){const n=f["interval-label"],a=!0!==m.noActiveDate&&ae(e),r=_e(T.value),o=_e(x.value),u=m.shortIntervalLabel,i=K.value(e,u),l={timestamp:e,index:t,label:i,droppable:g.value===i},d=m.intervalStyle||S,s={width:r,maxWidth:r,minWidth:r,height:o,...d({scope:l})},c="function"===typeof m.intervalClass?m.intervalClass({scope:l}):{},v=!0===m.focusable&&m.focusType.includes("interval");return we.h("div",{key:i,tabindex:!0===v?0:-1,class:{"q-calendar-resource__head--interval":!0,...c,"q-active-date":a,"q-calendar__hoverable":!0===m.hoverable,"q-calendar__focusable":!0===v},style:s,onDragenter:e=>{void 0!==m.dragEnterFunc&&"function"===typeof m.dragEnterFunc&&(!0===m.dragEnterFunc(e,"interval",{scope:l})?g.value=i:g.value="")},onDragover:e=>{void 0!==m.dragOverFunc&&"function"===typeof m.dragOverFunc&&(!0===m.dragOverFunc(e,"interval",{scope:l})?g.value=i:g.value="")},onDragleave:e=>{void 0!==m.dragLeaveFunc&&"function"===typeof m.dragLeaveFunc&&(!0===m.dragLeaveFunc(e,"interval",{scope:l})?g.value=i:g.value="")},onDrop:e=>{void 0!==m.dropFunc&&"function"===typeof m.dropFunc&&(!0===m.dropFunc(e,"interval",{scope:l})?g.value=i:g.value="")},onFocus:()=>{!0===v&&(y.value=i)},...A("-interval",e=>{return{scope:l,event:e}})},[n?n({scope:l}):i,Qe()])}function le(){return we.h("div",{class:"q-calendar-resource__body"},[de()])}function de(){return we.h("div",{ref:e,class:{"q-calendar-resource__scroll-area":!0,"q-calendar__scroll":!0}},[ce()])}function se(){return we.h("div",{},"No resources have been defined")}function ce(){return we.h("div",{class:"q-calendar-resource__day--container"},[re(),void 0===m.modelResources&&se(),void 0!==m.modelResources&&ve()])}function ve(){const e={class:"q-calendar-resource__resources--body"};return we.h("div",e,me())}function me(e=void 0,n=0,a=!0){return void 0===e&&(e=m.modelResources),e.map((e,t)=>{return fe(e,t,n,void 0!==e.children?e.expanded:a)}).filter(e=>!!e)}function fe(e,t,n=0,a=!0){const r={},o=(r.height="auto"===O.value?O.value:_e(O.value),W.value>0&&(r.minHeight=_e(W.value)),we.h("div",{key:e[m.resourceKey]+"-"+t,class:{"q-calendar-resource__resource--row":!0},style:r},[ye(e,t,n,a),he(e,t)]));return void 0!==e.children?[o,we.h("div",{class:{"q-calendar__child":!0,"q-calendar__child--expanded":!0===a,"q-calendar__child--collapsed":!0!==a}},[me(e.children,n+1,!1===a?a:e.expanded)])]:[o]}function ye(t,e,n=0,a=!0){const r=f["resource-label"],o={},u=(o.height=void 0!==t.height?_e(parseInt(t.height,10)):O.value?_e(O.value):"auto",W.value>0&&(o.minHeight=_e(W.value)),m.resourceStyle||$),i=t[m.resourceLabel],l=!0===m.focusable&&m.focusType.includes("resource")&&!0===a,d=t[m.resourceKey],s={resource:t,timestamps:I,resourceIndex:e,indentLevel:n,label:i,droppable:w.value===d},c="function"===typeof m.resourceClass?m.resourceClass({scope:s}):{};return we.h("div",{key:t[m.resourceKey]+"-"+e,ref:e=>{e instanceof HTMLElement&&(p.value[t[m.resourceKey]]=e)},tabindex:!0===l?0:-1,class:{"q-calendar-resource__resource":0===n,"q-calendar-resource__resource--section":0!==n,...c,"q-calendar__sticky":!0!==m.noSticky,"q-calendar__hoverable":!0===m.hoverable,"q-calendar__focusable":!0===l},style:{...o,...u({scope:s})},onDragenter:e=>{void 0!==m.dragEnterFunc&&"function"===typeof m.dragEnterFunc&&(!0===m.dragEnterFunc(e,"resource",{scope:s})?w.value=d:w.value="")},onDragover:e=>{void 0!==m.dragOverFunc&&"function"===typeof m.dragOverFunc&&(!0===m.dragOverFunc(e,"resource",{scope:s})?w.value=d:w.value="")},onDragleave:e=>{void 0!==m.dragLeaveFunc&&"function"===typeof m.dragLeaveFunc&&(!0===m.dragLeaveFunc(e,"resource",{scope:s})?w.value=d:w.value="")},onDrop:e=>{void 0!==m.dropFunc&&"function"===typeof m.dropFunc&&(!0===m.dropFunc(e,"resource",{scope:s})?w.value=d:w.value="")},onKeydown:e=>{Q(e,[13,32])&&(e.stopPropagation(),e.preventDefault())},onKeyup:e=>{Q(e,[13,32])&&void 0!==b.value.onClickResource&&v("click-resource",{scope:s,event:e})},...A("-resource",e=>{return{scope:s,event:e}})},[[we.h("div",{class:{"q-calendar__parent":void 0!==t.children,"q-calendar__parent--expanded":void 0!==t.children&&!0===t.expanded,"q-calendar__parent--collapsed":void 0!==t.children&&!0!==t.expanded},onClick:e=>{e.stopPropagation(),t.expanded=!t.expanded,v("resource-expanded",{expanded:t.expanded,scope:s})}}),we.h("div",{class:{"q-calendar-resource__resource--text":!0,"q-calendar__ellipsis":!0},style:{paddingLeft:10*n+2+"px"}},[r?r({scope:s}):i]),Qe()]])}function he(t,n){const e=f["resource-intervals"],a={resource:t,timestamps:I,resourceIndex:n,timeStartPosX:C,timeDurationWidth:M};return we.h("div",{class:"q-calendar-resource__resource--intervals"},[I.value.map(e=>e.map(e=>pe(t,e,n))),e&&e({scope:a})])}function pe(t,e,n){const a=f["resource-interval"],r=!0!==m.noActiveDate&&ae(e),o=t[m.resourceKey],u=e.time+"-"+o,i=!0===m.focusable&&m.focusType.includes("time"),l={activeDate:r,resource:t,timestamp:e,resourceIndex:n,droppable:D.value===u},d=m.intervalStyle||S,s=_e(T.value),c={width:s,maxWidth:s,minWidth:s,...d({scope:l})};return c.height=void 0!==t.height?_e(parseInt(t.height,10)):"auto"===O.value?O.value:_e(O.value),W.value>0&&(c.minHeight=_e(W.value)),we.h("div",{key:u,ref:e=>{e instanceof HTMLElement&&(h.value[t[m.resourceKey]]=e)},tabindex:!0===i?0:-1,class:{"q-calendar-resource__resource--interval":!0,"q-active-date":r,"q-calendar__hoverable":!0===m.hoverable,"q-calendar__focusable":!0===i},style:c,onDragenter:e=>{void 0!==m.dragEnterFunc&&"function"===typeof m.dragEnterFunc&&(!0===m.dragEnterFunc(e,"time",{scope:l})?D.value=u:D.value="")},onDragover:e=>{void 0!==m.dragOverFunc&&"function"===typeof m.dragOverFunc&&(!0===m.dragOverFunc(e,"time",{scope:l})?D.value=u:D.value="")},onDragleave:e=>{void 0!==m.dragLeaveFunc&&"function"===typeof m.dragLeaveFunc&&(!0===m.dragLeaveFunc(e,"time",{scope:l})?D.value=u:D.value="")},onDrop:e=>{void 0!==m.dropFunc&&"function"===typeof m.dropFunc&&(!0===m.dropFunc(e,"time",{scope:l})?D.value=u:D.value="")},onFocus:()=>{!0===i&&(y.value=u)},...A("-time",e=>{return{scope:l,event:e}})},[a&&a({scope:l}),Qe()])}function ge(){const{start:e,end:t,maxDays:n}=V.value,a=(i.value===e.date&&l.value===t.date&&d.value===n||(i.value=e.date,l.value=t.date,d.value=n),s.width>0),r=we.withDirectives(we.h("div",{class:"q-calendar-resource",key:i.value},[!0===a&&le()]),[[Se,ne]]);if(!0!==m.animated)return r;{const o="q-calendar--"+("prev"===u.value?m.transitionPrev:m.transitionNext);return we.h(we.Transition,{name:o,appear:!0},()=>r)}}return we.watch([F],j,{deep:!0,immediate:!0}),we.watch(()=>m.modelValue,(e,t)=>{if(r.value!==e){if(!0===m.animated){const n=ke(De(e)),a=ke(De(t));u.value=n>=a?"next":"prev"}r.value=e}y.value=e}),we.watch(r,(e,t)=>{if(r.value!==m.modelValue){if(!0===m.animated){const n=ke(De(e)),a=ke(De(t));u.value=n>=a?"next":"prev"}v("update:model-value",e)}}),we.watch(y,e=>{e&&(n.value=be(e))}),we.watch(n,()=>{h.value[y.value]?h.value[y.value].focus():G()}),we.onBeforeUpdate(()=>{h.value={},p.value={}}),we.onMounted(()=>{}),q({prev:te,next:ee,move:E,moveToToday:J,updateCurrent:k,timeStartPosX:C,timeDurationWidth:M,widthToMinutes:X,scrollToTimeX:z}),()=>Z()}});const ot="4.1.2";ye={version:ot,QCalendarResource:rt,...ye,...ge,install(e){e.component(String(rt.name),rt)}};return ye});