behnoo-calendar 1.0.2 → 1.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +1 -1
- package/dist/index.js +304 -231
- package/dist/style.css +1 -1
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});let e=require("vue");var t=()=>{let t=(0,e.ref)(typeof window<`u`?window.innerWidth:1024),n=(0,e.ref)(typeof window<`u`?window.innerHeight:768),r=()=>{t.value=window.innerWidth,n.value=window.innerHeight};return(0,e.onMounted)(()=>window.addEventListener(`resize`,r)),(0,e.onUnmounted)(()=>window.removeEventListener(`resize`,r)),{width:t,height:n}},n=e=>(typeof e==`object`&&e&&`value`in e?String(e.value):String(e||`fa-IR`)).replace(/[^a-zA-Z-]/g,`-`).split(`-`)[0]||`fa`,r=()=>{let t=(0,e.inject)(`calendarConfig`,(0,e.ref)({locale:`en`,calendar:`gregory`,startOfWeek:`sunday`,showHolidays:!1}));return{t:(e,n)=>{let r=t.value.locale.startsWith(`fa`);return{"calendar.dayTimes.morning":r?`صبح`:`Morning`,"calendar.dayTimes.noon":r?`ظهر`:`Noon`,"calendar.dayTimes.afternoon":r?`عصر`:`Afternoon`,"calendar.dayTimes.night":r?`شب`:`Night`,"calendar.moreItems":r?`${n?.count} مورد دیگر`:`${n?.count} More Items`,"calendar.noEvents":r?`رویدادی وجود ندارد`:`No events`,"calendar.allDay":r?`تمام روز`:`All day`,"calendar.agenda":r?`برنامه`:`Agenda`}[e]||e},config:t}},i=t=>{let r=(0,e.inject)(`calendarConfig`,(0,e.ref)({locale:`fa-IR`,calendar:`jalaali`,startOfWeek:`saturday`,showHolidays:!0})),i=t||r,a=(0,e.inject)(`calendarHolidays`,(0,e.ref)({})),o=(0,e.computed)(()=>{let e=i.value.calendar;return e===`jalaali`?`persian`:e===`islamic`?`islamic-uma`:`gregory`}),s=e=>({sunday:0,monday:1,tuesday:2,wednesday:3,thursday:4,friday:5,saturday:6})[e.toLowerCase()]??0,c=e=>{let t=new Date(e);t.setHours(12,0,0,0);let n=o.value;n===`islamic-uma`&&(n=`islamic-civil`,t.setDate(t.getDate()-1));let r=new Intl.DateTimeFormat(`en-u-ca-${n}`,{year:`numeric`,month:`numeric`,day:`numeric`}).formatToParts(t),i=e=>parseInt(r.find(t=>t.type===e)?.value||`0`);return{year:i(`year`),month:i(`month`),day:i(`day`)}},l=(0,e.computed)(()=>i.value.calendar===`gregory`?1:6),u=e=>String(e),d=e=>{let t=[`۰`,`۱`,`۲`,`۳`,`۴`,`۵`,`۶`,`۷`,`۸`,`۹`];return String(e).replace(/\d/g,e=>t[parseInt(e)]??e)},f=e=>{let t=n(i.value.locale),r=new Date(e);r.setDate(r.getDate()+-1);let s=(t,n=e)=>{let r=new Intl.DateTimeFormat(`en-u-ca-${t}`,{year:`numeric`,month:`numeric`,day:`numeric`}).formatToParts(n);return parseInt(r.find(e=>e.type===`day`)?.value||`0`)},c=s(`gregory`),l=s(`persian`),f=s(`islamic-civil`,r),p=t===`fa`||t===`ar`,m=u(c),h=p?d(l):u(l),g=p?d(f):u(f),_=i.value.calendar,v,y,b;_===`jalaali`?(v=h,y=m,b=g):_===`islamic`?(v=g,y=h,b=m):(v=m,y=h,b=g);let x=new Date,S=e.getDate()===x.getDate()&&e.getMonth()===x.getMonth()&&e.getFullYear()===x.getFullYear(),C=`${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,`0`)}-${String(e.getDate()).padStart(2,`0`)}`,w=a.value[C],T=w?.isHoliday||!1,E=w?.titles?.join(` - `)||null,D=e.getDay(),O=i.value.showHolidays?_===`jalaali`||_===`islamic`?D===5:D===0:!1,k=i.value.showHolidays?O||T:!1,A=o.value,j=new Intl.DateTimeFormat(`${t}-u-ca-${A}`,{weekday:`long`}).format(e),M=new Intl.DateTimeFormat(`${t}-u-ca-${A}`,{weekday:`short`}).format(e);return{date:new Date(e),primary:v,secondary:y,tertiary:b,jalaali:l,gregorian:c,ghamari:f,isToday:S,isWeekend:O,isHoliday:k,holidayTitle:E,name:j,shortName:M,dayOfWeek:D}},p=(e,t)=>{if(!e)return[];let n=[];if(t===`monthly`){let t=new Date(e.start);t.setHours(12,0,0,0);let r=c(t),a=r.month,o=r.year,l=new Date(t);for(;c(l).day!==1;)l.setDate(l.getDate()-1);let u=new Date(l);for(;;){u.setDate(u.getDate()+1);let e=c(u);if(e.month!==a||e.year!==o){u.setDate(u.getDate()-1);break}}let d=s(i.value.calendar===`gregory`?`monday`:`saturday`),p=l.getDay()-d;p<0&&(p+=7);let m=new Date(l);m.setDate(m.getDate()-p);let h=((d+6)%7-u.getDay()+7)%7,g=new Date(u);g.setDate(g.getDate()+h);let _=new Date(m);for(;_<=g;){let e=f(new Date(_)),t=c(_);n.push({...e,otherMonth:t.month!==a||t.year!==o}),_.setDate(_.getDate()+1)}}else if(t===`agenda`){let t=new Date(e.start);t.setHours(12,0,0,0);let r=c(t),i=r.month,a=r.year,o=new Date(t);for(;c(o).day!==1;)o.setDate(o.getDate()-1);let s=new Date(o);for(;;){s.setDate(s.getDate()+1);let e=c(s);if(e.month!==i||e.year!==a){s.setDate(s.getDate()-1);break}}let l=new Date(o);for(;l<=s;){let e=f(new Date(l));n.push({...e,otherMonth:!1}),l.setDate(l.getDate()+1)}}else if(t===`weekly`){let t=s(i.value.calendar===`gregory`?`monday`:`saturday`),r=new Date(e.start),a=r.getDay()-t;a<0&&(a+=7),r.setDate(r.getDate()-a);for(let e=0;e<7;e++){let t=new Date(r);t.setDate(r.getDate()+e),n.push({...f(t),otherMonth:!1})}}else if(t===`3days`)for(let t=0;t<3;t++){let r=new Date(e.start);r.setDate(r.getDate()+t),n.push({...f(r),otherMonth:!1})}else n.push({...f(new Date(e.start)),otherMonth:!1});return n},m=(0,e.computed)(()=>{let e=n(i.value.locale),t=o.value,r=l.value,a=new Date(2025,0,12+r),s=new Intl.DateTimeFormat(`${e}-u-ca-${t}`,{weekday:`narrow`}),c=new Intl.DateTimeFormat(`${e}-u-ca-${t}`,{weekday:`long`});return Array.from({length:7},(e,t)=>{let n=new Date(a);return n.setDate(a.getDate()+t),{dayOfWeek:n.getDay(),label:s.format(n),fullName:c.format(n)}})}),h=e=>{let t=n(i.value.locale),r=o.value;return{sunday:0,monday:1,tuesday:2,wednesday:3,thursday:4,friday:5,saturday:6}[new Intl.DateTimeFormat(`${t}-u-ca-${r}`,{weekday:`long`}).format(e).toLowerCase()]??0},g=()=>{let e=new Date,t=c(e),n=new Date(e);for(n.setHours(0,0,0,0);c(n).day!==t.day||c(n).month!==t.month||c(n).year!==t.year;)n.setDate(n.getDate()-1);return n},_=e=>{let t=new Date(e);t.setHours(12,0,0,0);let n=c(t),r=n.month,i=n.year;for(;n.day!==1;)t.setDate(t.getDate()-1),n=c(t);let a=new Date(t);for(;;){a.setDate(a.getDate()+1);let e=c(a);if(e.month!==r||e.year!==i){a.setDate(a.getDate()-1);break}}return a.setHours(23,59,59,999),{start:t,end:a}},v=e=>{let t=new Date(e);return t.setHours(0,0,0,0),t.setMilliseconds(0),t},y=()=>i.value.calendar===`gregory`?1:6,b=e=>{let t=g();if(e===`daily`||e===`3days`)return v(t);if(e===`weekly`){let e=y(),n=t.getDay()-e;n<0&&(n+=7);let r=new Date(t);return r.setDate(r.getDate()-n),v(r)}c(t);let n=v(t);for(n.setHours(12,0,0,0);c(n).day!==1;)n.setDate(n.getDate()-1);return v(n)},x=(e,t)=>{let r=n(e),i=t===`jalaali`?`persian`:t===`islamic`?`islamic-civil`:`gregory`,a=c(new Date).year,o=C(1,a),s=[];for(let e=1;e<=12;e++){let t=C(e,a,o);o=new Date(t);let n=new Intl.DateTimeFormat(`${r}-u-ca-${i}`,{month:`long`}).format(t);s.push({value:e,label:n,shortLabel:n})}return s},S=(e=new Date)=>{let t=c(e);return{month:t.month,year:t.year}},C=(e,t,n)=>{let r=n?new Date(n):new Date;r.setHours(12,0,0,0);let i=c(r),a=1e3,o=0;for(;(i.year!==t||i.month!==e)&&o<a;)i.year<t||i.year===t&&i.month<e?r.setDate(r.getDate()+1):r.setDate(r.getDate()-1),i=c(r),o++;for(;i.day!==1&&o<a;)r.setDate(r.getDate()-1),i=c(r),o++;return r.setHours(0,0,0,0),r};return{getCalendarHeaders:p,getDayDetails:f,offsetPeriod:(e,t,n)=>{let r=new Date(e);if(t===`daily`)r.setDate(r.getDate()+n);else if(t===`3days`)r.setDate(r.getDate()+n*3);else if(t===`weekly`)r.setDate(r.getDate()+n*7);else{let e=c(r),t=e.month+n,i=e.year;return t<1&&(t+=12,i--),t>12&&(t-=12,i++),v(C(t,i))}return v(r)},getMonthBounds:_,getWeekDayNames:m,getParts:c,resetToToday:b,getTodayInActiveCalendar:g,getCurrentPeriodStart:e=>b(e),getCurrentMonthYear:S,getDayOfWeekIndex:h,getMonthNames:x,getFirstDayOfMonthInActiveCalendar:C}},a=(0,e.defineComponent)({name:`CalendarDayBadge`,props:{day:{type:Object,required:!0}},setup(t){return{getDayItemColor:(0,e.computed)(()=>{let e=t.day,n=`border-outline-variant bg-surface`,r=`text-on-surface/50`;return e.isToday&&(n=`bg-today border-outline-variant/0`,r=`text-surface`),(e.isWeekend||e.isHoliday)&&(r=`text-error`),{fill:n,text:r}}),getFont:(e,t)=>{if(String(t.gregorian)===t[e])return`font-latin`}}}}),o=(e,t)=>{let n=e.__vccOpts||e;for(let[e,r]of t)n[e]=r;return n},s={class:`flex flex-col items-center`};function c(t,n,r,i,a,o){return(0,e.openBlock)(),(0,e.createElementBlock)(`div`,s,[(0,e.createElementVNode)(`div`,{class:(0,e.normalizeClass)([`w-7 h-7 sm:w-8 sm:h-8 md:w-9 md:h-9 select-none border flex flex-col justify-center items-center rounded-full`,[t.getDayItemColor.fill,t.getDayItemColor.text]])},[(0,e.createElementVNode)(`div`,{class:(0,e.normalizeClass)([[t.getFont(`tertiary`,t.day)],`leading-none opacity-70 text-[6px] sm:text-[7px] md:text-[8px]`])},(0,e.toDisplayString)(t.day.tertiary),3),(0,e.createElementVNode)(`div`,{class:(0,e.normalizeClass)([[t.getFont(`primary`,t.day)],`leading-tight text-[11px] sm:text-xs md:text-label-md font-medium`])},(0,e.toDisplayString)(t.day.primary),3),(0,e.createElementVNode)(`div`,{class:(0,e.normalizeClass)([[t.getFont(`secondary`,t.day)],`leading-none opacity-70 text-[6px] sm:text-[7px] md:text-[8px]`])},(0,e.toDisplayString)(t.day.secondary),3)],2)])}var l=o(a,[[`render`,c]]),u=(0,e.defineComponent)({name:`CalendarHeaderItem`,components:{CalendarDayBadge:l},props:{days:{type:Array,default:()=>[]},mode:{type:String,default:`monthly`},todayColumnIndex:{type:Number,default:-1}},setup(t){return{itemWidths:(0,e.computed)(()=>`${100/(t.days.length+(t.mode===`monthly`?0:1))}%`)}}}),d={key:0,class:`border shrink-0 w-8 sm:w-9 md:w-25 min-w-8 sm:min-w-9 md:min-w-25 max-w-8 sm:max-w-9 md:max-w-25 border-outline-variant`},f={class:`select-none text-on-surface/50 text-[9px] sm:text-[10px] md:text-label-md truncate max-w-full text-center px-0.5`},p={class:`sm:hidden`},m={class:`hidden sm:inline`};function h(t,n,r,i,a,o){let s=(0,e.resolveComponent)(`CalendarDayBadge`);return(0,e.openBlock)(),(0,e.createElementBlock)(`div`,{class:(0,e.normalizeClass)([`cal-header-row w-full items-stretch flex justify-between`,{"ltr:border-l rtl:border-r border-outline-variant":t.mode===`monthly`}])},[t.mode===`monthly`?(0,e.createCommentVNode)(``,!0):((0,e.openBlock)(),(0,e.createElementBlock)(`div`,d)),((0,e.openBlock)(!0),(0,e.createElementBlock)(e.Fragment,null,(0,e.renderList)(t.days,(n,r)=>((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{class:(0,e.normalizeClass)([`border-y rtl:border-l ltr:border-r border-outline-variant py-1.5 sm:py-2 md:py-4 flex-col flex-1 min-w-0 gap-y-1 sm:gap-y-1.5 md:gap-y-2.5 flex items-center justify-center transition-colors`,{"bg-today-column":r===t.todayColumnIndex}]),key:n.name+r},[t.mode===`monthly`?(0,e.createCommentVNode)(``,!0):((0,e.openBlock)(),(0,e.createBlock)(s,{key:0,day:n},null,8,[`day`])),(0,e.createElementVNode)(`div`,f,[(0,e.createElementVNode)(`span`,p,(0,e.toDisplayString)(n.shortName||n.name),1),(0,e.createElementVNode)(`span`,m,(0,e.toDisplayString)(n.name),1)])],2))),128))],2)}var g=o(u,[[`render`,h],[`__scopeId`,`data-v-ef2978fb`]]),_=(0,e.defineComponent)({name:`CalendarSideItem`,props:{range:{type:Object,required:!0}},setup(n){let{t:i,config:a}=r(),{width:o}=t(),s=(0,e.computed)(()=>o.value<768),c=(0,e.computed)(()=>new Intl.NumberFormat(a.value.locale.startsWith(`fa`)?`fa-IR`:`en-US`)),l=(0,e.computed)(()=>`${100/u.value.length}%`),u=(0,e.computed)(()=>{let e=[],{start:t,end:r}=n.range;for(let n=t;n<r;n++)if(s.value)e.push({raw:n,label:c.value.format(n)});else{let t=``;t=n>=1&&n<=11?`morning`:n===12?`noon`:n>=13&&n<19?`afternoon`:`night`;let r=n;n>12&&(r=n-12),n===0&&(r=12),e.push({raw:n,label:`${c.value.format(r)} ${i(`calendar.dayTimes.${t}`)}`})}return e});return{hoursList:u,itemHeights:l}}}),v={class:`w-8 sm:w-9 md:w-25 min-h-full flex flex-col ltr:border-r ltr:border-r-outline-variant rtl:border-l border-l-outline-variant`};function y(t,n,r,i,a,o){return(0,e.openBlock)(),(0,e.createElementBlock)(`div`,v,[((0,e.openBlock)(!0),(0,e.createElementBlock)(e.Fragment,null,(0,e.renderList)(t.hoursList,n=>((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{key:n.raw,style:(0,e.normalizeStyle)({height:t.itemHeights}),class:`flex items-center text-center justify-center text-[10px] sm:text-xs md:text-label-md text-on-surface/50 border-b min-h-20 border-b-outline-variant select-none`},(0,e.toDisplayString)(n.label),5))),128))])}var b=o(_,[[`render`,y]]),x=(0,e.defineComponent)({name:`CalendarPattern`,setup(){return{getX:e=>-50+(e-1)*25}}}),S={width:`100%`,height:`120%`,viewBox:`0 0 440 221`,preserveAspectRatio:`xMidYMid slice`,class:`text-surface-variant`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`},C=[`x`,`transform`];function w(t,n,r,i,a,o){return(0,e.openBlock)(),(0,e.createElementBlock)(`svg`,S,[((0,e.openBlock)(),(0,e.createElementBlock)(e.Fragment,null,(0,e.renderList)(25,n=>(0,e.createElementVNode)(`rect`,{key:n,x:t.getX(n),y:`220.895`,width:`300`,height:`12`,transform:`rotate(-115 ${t.getX(n)} 220.895)`,fill:`currentColor`},null,8,C)),64))])}var T=o(x,[[`render`,w]]),E={"--cal-primary":{light:{r:26,g:157,b:144},dark:{r:64,g:184,b:172}},"--color-primary":{light:{r:26,g:157,b:144},dark:{r:64,g:184,b:172}},"--cal-surface":{light:{r:255,g:255,b:255},dark:{r:21,g:24,b:35}},"--color-surface":{light:{r:255,g:255,b:255},dark:{r:21,g:24,b:35}},"--cal-on-surface":{light:{r:44,g:44,b:46},dark:{r:255,g:255,b:255}},"--color-on-surface":{light:{r:44,g:44,b:46},dark:{r:255,g:255,b:255}},"--cal-error":{light:{r:229,g:43,b:22},dark:{r:234,g:85,b:69}},"--color-error":{light:{r:229,g:43,b:22},dark:{r:234,g:85,b:69}}};function D(e){if(!e||typeof e!=`string`)return null;let t=e.trim().toLowerCase();if(t.startsWith(`var(`)){let e=t.match(/var\(\s*([^,\s)]+)/),n=e?e[1]:``;if(typeof document<`u`&&n)try{let e=getComputedStyle(document.documentElement).getPropertyValue(n).trim();if(e){let t=D(e);if(t)return t}}catch{}let r=t.match(/var\([^,]+,\s*([^)]+)\)/);if(r&&r[1]){let e=D(r[1].trim());if(e)return e}return n&&E[n]?typeof document<`u`&&document.documentElement.classList.contains(`dark`)?E[n].dark:E[n].light:{r:26,g:157,b:144}}if(t.startsWith(`#`)){let e=t.slice(1);if(e.length===3||e.length===4){let t=e[0]||`0`,n=e[1]||`0`,r=e[2]||`0`,i=parseInt(t+t,16),a=parseInt(n+n,16),o=parseInt(r+r,16);if(!Number.isNaN(i)&&!Number.isNaN(a)&&!Number.isNaN(o))return{r:i,g:a,b:o}}else if(e.length===6||e.length===8){let t=parseInt(e.slice(0,2),16),n=parseInt(e.slice(2,4),16),r=parseInt(e.slice(4,6),16);if(!Number.isNaN(t)&&!Number.isNaN(n)&&!Number.isNaN(r))return{r:t,g:n,b:r}}return null}if(t.startsWith(`rgb`)){let e=t.match(/\(([^)]+)\)/);if(e&&e[1]){let t=e[1].split(/[\s,/]+/).filter(Boolean),n=t[0],r=t[1],i=t[2];if(n!==void 0&&r!==void 0&&i!==void 0){let e=n.endsWith(`%`)?parseFloat(n)/100*255:parseFloat(n),t=r.endsWith(`%`)?parseFloat(r)/100*255:parseFloat(r),a=i.endsWith(`%`)?parseFloat(i)/100*255:parseFloat(i);if(!Number.isNaN(e)&&!Number.isNaN(t)&&!Number.isNaN(a))return{r:Math.min(255,Math.max(0,Math.round(e))),g:Math.min(255,Math.max(0,Math.round(t))),b:Math.min(255,Math.max(0,Math.round(a)))}}}return null}if(t.startsWith(`hsl`)){let e=t.match(/\(([^)]+)\)/);if(e&&e[1]){let t=e[1].split(/[\s,/]+/).filter(Boolean),n=t[0],r=t[1],i=t[2];if(n!==void 0&&r!==void 0&&i!==void 0){let e=parseFloat(n),t=parseFloat(r)/100,a=parseFloat(i)/100;if(!Number.isNaN(e)&&!Number.isNaN(t)&&!Number.isNaN(a))return O(e,t,a)}}return null}let n={white:{r:255,g:255,b:255},black:{r:0,g:0,b:0},transparent:{r:255,g:255,b:255},red:{r:255,g:0,b:0},green:{r:0,g:128,b:0},blue:{r:0,g:0,b:255},yellow:{r:255,g:255,b:0},orange:{r:255,g:165,b:0},purple:{r:128,g:0,b:128},teal:{r:0,g:128,b:128},gray:{r:128,g:128,b:128},grey:{r:128,g:128,b:128}};return n[t]?n[t]:null}function O(e,t,n){let r=(e%360+360)%360,i=(1-Math.abs(2*n-1))*t,a=i*(1-Math.abs(r/60%2-1)),o=n-i/2,s=0,c=0,l=0;return r>=0&&r<60?(s=i,c=a):r>=60&&r<120?(s=a,c=i):r>=120&&r<180?(c=i,l=a):r>=180&&r<240?(c=a,l=i):r>=240&&r<300?(s=a,l=i):(s=i,l=a),{r:Math.round((s+o)*255),g:Math.round((c+o)*255),b:Math.round((l+o)*255)}}function k(e,t,n){let r=e=>{let t=Math.max(0,Math.min(255,e))/255;return t<=.04045?t/12.92:((t+.055)/1.055)**2.4},i=r(e),a=r(t),o=r(n);return .2126*i+.7152*a+.0722*o}function A(e,t){let n=typeof e==`string`?D(e)??{r:0,g:0,b:0}:e,r=typeof t==`string`?D(t)??{r:255,g:255,b:255}:t,i=k(n.r,n.g,n.b),a=k(r.r,r.g,r.b),o=Math.max(i,a),s=Math.min(i,a);return(o+.05)/(s+.05)}function j(e,t){let n=t?.darkColor??`#0f172a`,r=t?.lightColor??`#ffffff`;if(!e)return r;let i=D(e)??{r:26,g:157,b:144},a=D(n)??{r:15,g:23,b:42},o=D(r)??{r:255,g:255,b:255},s=k(i.r,i.g,i.b),c=k(a.r,a.g,a.b),l=k(o.r,o.g,o.b),u=(Math.max(s,c)+.05)/(Math.min(s,c)+.05);return(Math.max(s,l)+.05)/(Math.min(s,l)+.05)>=u?r:n}var M=(0,e.defineComponent)({__name:`CalendarItemDisplay`,props:{event:{},mode:{},headers:{},hours:{},position:{},isMobile:{type:Boolean},overlapIndex:{},overlapCount:{}},emits:[`event-click`],setup(t){let n=t,r=(0,e.computed)(()=>n.event.color||`var(--cal-primary)`),i=(0,e.computed)(()=>j(r.value)),a=(0,e.computed)(()=>{if(n.mode===`monthly`)return{zIndex:10,position:`relative`};if(n.position===`static`)return{width:`100%`,height:`36px`,position:`relative`};if(!n.headers?.length||!n.hours)return{display:`none`};let e=new Date(n.event.date).toLocaleDateString(`en-CA`),t=n.headers.findIndex(t=>new Date(t.date).toLocaleDateString(`en-CA`)===e);if(t===-1||n.hours.end-n.hours.start<=0)return{display:`none`};let r=n.event.time.split(`:`).map(Number),i=(r[0]??0)+(r[1]??0)/60,a=(i-n.hours.start)*80,o=100/n.headers.length,s=n.overlapCount??1,c=n.overlapIndex??0,l=o/s,u,d;if(n.event.duration&&n.event.duration>0){let e=Math.min(i+n.event.duration/60,n.hours.end);u=`${Math.max(0,e-i)*80}px`,d=`20px`}else u=n.isMobile&&n.mode===`weekly`?`16px`:`36px`;return{top:`${a}px`,insetInlineStart:`${t*o+c*l}%`,width:`${l}%`,height:u,minHeight:d,zIndex:10,boxSizing:`border-box`}}),o=(0,e.computed)(()=>({backgroundColor:r.value,color:i.value})),s=(0,e.computed)(()=>{let e=r.value,t=i.value;return n.mode===`monthly`?{backgroundColor:e,color:t,opacity:.9,borderLeft:`4px solid ${e}`}:{backgroundColor:e,color:t}});return(n,r)=>((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{id:`event-display`,style:(0,e.normalizeStyle)(a.value),class:(0,e.normalizeClass)([t.position===`static`?``:`absolute`,t.mode===`monthly`?``:t.isMobile&&t.mode===`weekly`?`px-0.5`:`px-1 sm:px-2`]),onClick:r[0]||=(0,e.withModifiers)(e=>n.$emit(`event-click`,t.event,e),[`stop`])},[(0,e.createElementVNode)(`div`,{class:(0,e.normalizeClass)([`flex whitespace-normal items-center rounded cursor-pointer transition-transform text-[10px] sm:text-[11px] leading-tight overflow-hidden`,t.mode===`monthly`?`px-2 relative mb-1 h-6 shrink-0 whitespace-nowrap text-ellipsis w-[calc(100%-16px)]`:t.isMobile&&t.mode===`weekly`?`absolute px-1 h-full w-[calc(100%-4px)] text-[9px] leading-none`:`absolute px-2 sm:px-4 h-full w-[calc(100%-8px)] sm:w-[calc(100%-16px)] sm:rounded-md`]),style:(0,e.normalizeStyle)(s.value)},[(0,e.renderSlot)(n.$slots,`event`,{event:t.event,mode:t.mode},()=>[(0,e.createElementVNode)(`div`,{style:(0,e.normalizeStyle)(o.value),class:`w-full h-full relative z-10 flex items-center gap-x-1 truncate font-medium`},(0,e.toDisplayString)(t.event.title),5)])],6)],6))}}),ee=(0,e.defineComponent)({name:`CalendarDayHolder`,props:{day:{type:Object,required:!0},otherMonth:{type:Boolean,default:!1},events:{type:Array,default:()=>[]}},components:{CalendarDayBadge:l,CalendarPattern:T,CalendarItemDisplay:M},emits:[`open-day`,`event-click`],setup(t,{emit:n}){let{t:i}=r();return{t:i,displayedEvents:(0,e.computed)(()=>t.events.slice(0,2)),openDay:()=>{n(`open-day`,t.day)},remainingCount:(0,e.computed)(()=>t.events.length-2)}}}),te={class:`relative top-0 left-0 w-full h-full p-4 flex flex-col`},ne={key:0,class:`shrink-0`},N={id:`holder`,class:`w-full flex-1 relative flex flex-col gap-y-1.5 mt-2`},P={class:`w-full h-full pointer-events-none absolute top-0 left-0`};function F(t,n,r,i,a,o){let s=(0,e.resolveComponent)(`CalendarDayBadge`),c=(0,e.resolveComponent)(`CalendarItemDisplay`),l=(0,e.resolveComponent)(`CalendarPattern`);return(0,e.openBlock)(),(0,e.createElementBlock)(`div`,{class:(0,e.normalizeClass)([`border border-outline-variant/50 w-full relative h-full transition-colors`,[t.otherMonth?`overflow-hidden`:`overflow-visible`,t.day.isToday&&!t.otherMonth?`bg-today-column`:``]])},[(0,e.createElementVNode)(`div`,te,[t.otherMonth?(0,e.createCommentVNode)(``,!0):((0,e.openBlock)(),(0,e.createElementBlock)(`div`,ne,[(0,e.createVNode)(s,{day:t.day},null,8,[`day`])])),(0,e.createElementVNode)(`div`,N,[((0,e.openBlock)(!0),(0,e.createElementBlock)(e.Fragment,null,(0,e.renderList)(t.displayedEvents,r=>((0,e.openBlock)(),(0,e.createBlock)(c,{key:r.id,position:`static`,event:r,onEventClick:n[0]||=e=>t.$emit(`event-click`,e)},{event:(0,e.withCtx)(n=>[(0,e.renderSlot)(t.$slots,`event`,(0,e.mergeProps)({ref_for:!0},n))]),_:3},8,[`event`]))),128)),t.remainingCount>0?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{key:0,onClick:n[1]||=(...e)=>t.openDay&&t.openDay(...e),class:`w-full relative z-0 h-9 px-2 flex cursor-pointer items-center rounded-lg bg-surface-variant text-label-sm text-on-surface select-none`},(0,e.toDisplayString)(t.t(`calendar.moreItems`,{count:t.remainingCount})),1)):(0,e.createCommentVNode)(``,!0)])]),(0,e.createElementVNode)(`div`,P,[t.otherMonth?((0,e.openBlock)(),(0,e.createBlock)(l,{key:0,class:`absolute inset-0 z-0 pointer-events-none`})):(0,e.createCommentVNode)(``,!0)])],2)}var I=o(ee,[[`render`,F]]),L=(0,e.defineComponent)({name:`CalendarPointer`,props:{mode:{type:String,required:!0},hours:{type:Object,required:!0},headers:{type:Array,required:!0}},setup(t){let n=(0,e.ref)(new Date),r;(0,e.onMounted)(()=>{r=setInterval(()=>{n.value=new Date},6e4)}),(0,e.onUnmounted)(()=>{r&&clearInterval(r)});let i=(0,e.computed)(()=>{if(!t.headers||t.headers.length===0)return{display:`none`};let e=t.headers.findIndex(e=>e.isToday);if(e===-1)return{display:`none`};let r=n.value,i=r.getHours()+r.getMinutes()/60;if(t.mode===`monthly`){let n=Math.ceil(t.headers.length/7),r=Math.floor(e/7),a=e%7,o=100/n,s=i/24*o;return{width:`${100/7}%`,top:`${r*o+s}%`,insetInlineStart:`${a/7*100}%`,transition:``}}if(i<t.hours.start||i>t.hours.end)return{display:`none`};let a=t.headers.length,o=t.hours.end-t.hours.start;return{width:`${100/a}%`,top:`${(i-t.hours.start)/o*100}%`,insetInlineStart:`${e/a*100}%`,transition:``}});return{pointerStyle:i,isVisible:(0,e.computed)(()=>i.value.display!==`none`)}}});function R(t,n,r,i,a,o){return(0,e.withDirectives)(((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{class:`absolute z-20 pointer-events-none -translate-y-1/2 flex items-center`,style:(0,e.normalizeStyle)(t.pointerStyle)},[...n[0]||=[(0,e.createElementVNode)(`div`,{class:`w-2.5 aspect-square rounded-full bg-error shrink-0`},null,-1),(0,e.createElementVNode)(`div`,{class:`h-0.5 flex-1 bg-error`},null,-1)]],4)),[[e.vShow,t.isVisible]])}var z=o(L,[[`render`,R]]),B=(0,e.defineComponent)({name:`MobileDayHolder`,props:{day:{type:Object,required:!0},isSelected:{type:Boolean,default:!1},events:{type:Array,default:()=>[]},expandProgress:{type:Number,default:0},isDragging:{type:Boolean,default:!1}},emits:[`select`],setup(t,{emit:n}){return{canSelect:(0,e.computed)(()=>t.events.length>0),displayedEvents:(0,e.computed)(()=>t.events.slice(0,4)),selectDay:()=>{n(`select`,t.day)},styles:(0,e.computed)(()=>t.isSelected?{border:`border-transparent`,bg:`opacity-100`,text:`text-surface`}:t.day.isToday?{border:`border-primary`,bg:`opacity-0`,text:`text-primary`}:{border:`border-transparent`,bg:`opacity-0`,text:`text-on-surface/50`})}}}),V={class:`w-full h-full absolute inset-0 left-0 top-0 flex items-center justify-center`},H={class:`w-full flex-1 relative flex justify-center`};function U(t,n,r,i,a,o){return(0,e.openBlock)(),(0,e.createElementBlock)(`div`,{onClick:n[0]||=(...e)=>t.selectDay&&t.selectDay(...e),class:(0,e.normalizeClass)([`flex flex-col items-center justify-start gap-y-0.5 w-full overflow-hidden hw-accel-height`,[t.canSelect?`cursor-pointer`:`cursor-default`,t.isDragging?``:`transition-all duration-300 ease-out`]]),style:(0,e.normalizeStyle)({height:`${40+t.expandProgress*16}px`})},[(0,e.createElementVNode)(`div`,{class:(0,e.normalizeClass)([`relative w-8 h-8 shrink-0 rounded-full transition-all duration-200 ease-in-out aspect-square border`,t.styles.border])},[(0,e.createElementVNode)(`div`,{class:(0,e.normalizeClass)([`rounded-full w-full h-full transition-all duration-200 ease-in-out bg-on-surface`,t.styles.bg])},null,2),(0,e.createElementVNode)(`div`,V,[(0,e.createElementVNode)(`div`,{class:(0,e.normalizeClass)([`select-none text-label-md transition-all duration-200 ease-in-out`,t.styles.text])},(0,e.toDisplayString)(t.day.primary),3)])],2),(0,e.createElementVNode)(`div`,H,[t.canSelect?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{key:0,class:(0,e.normalizeClass)([`rounded-full aspect-square w-1.5 bg-error absolute hw-accel`,[t.isDragging?``:`transition-all duration-300 ease-out`]]),style:(0,e.normalizeStyle)({opacity:Math.max(0,1-t.expandProgress*2),transform:`scale(${Math.max(0,1-t.expandProgress*2)})`})},null,6)):(0,e.createCommentVNode)(``,!0),t.canSelect?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{key:1,class:(0,e.normalizeClass)([`w-full flex flex-col gap-y-px absolute top-0 px-0.5 hw-accel`,[t.isDragging?``:`transition-all duration-300 ease-out`]]),style:(0,e.normalizeStyle)({opacity:t.expandProgress,transform:`translateY(${(1-t.expandProgress)*6}px)`})},[((0,e.openBlock)(!0),(0,e.createElementBlock)(e.Fragment,null,(0,e.renderList)(t.displayedEvents,t=>((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{key:t.id,class:`w-full rounded-full shrink-0 min-h-1`,style:(0,e.normalizeStyle)({backgroundColor:t.color||`var(--cal-primary)`})},null,4))),128))],6)):(0,e.createCommentVNode)(``,!0)])],6)}var W=o(B,[[`render`,U],[`__scopeId`,`data-v-d90e616f`]]),G={class:`flex flex-col gap-y-1 p-3 flex-1`},K={class:`text-label-md font-semibold text-on-surface`},q={class:`text-body-sm text-on-surface/60`},J=(0,e.defineComponent)({__name:`MobileEventListItem`,props:{event:{}},emits:[`event-click`],setup(t){return(n,r)=>((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{class:`bg-surface-variant flex flex-col rounded-lg border cursor-pointer`,onClick:r[0]||=(0,e.withModifiers)(e=>n.$emit(`event-click`,t.event,e),[`stop`])},[(0,e.createElementVNode)(`div`,G,[(0,e.renderSlot)(n.$slots,`event`,{event:t.event},()=>[(0,e.createElementVNode)(`div`,K,(0,e.toDisplayString)(t.event.title),1),(0,e.createElementVNode)(`div`,q,(0,e.toDisplayString)(t.event.time),1)])]),(0,e.createElementVNode)(`div`,{class:`w-full h-1 shrink-0 rounded-b-full rounded-t-none`,style:(0,e.normalizeStyle)({backgroundColor:t.event.color||`#3b82f6`})},null,4)]))}}),Y=(0,e.defineComponent)({name:`MobileCalendarGrid`,components:{MobileDayHolder:W,MobileEventListItem:J},props:{days:{type:Array,default:()=>[]},eventsByDay:{type:Object,required:!0},loading:{type:Boolean,default:!1}},emits:[`event-click`],setup(t){let{getWeekDayNames:n}=i(),r=(0,e.computed)(()=>n.value),a=(0,e.ref)(!1),o=(0,e.ref)([]),s=(0,e.ref)(``),c=e=>{let n=new Date(e.date).toDateString();s.value=n;let r=t.eventsByDay.get(n);r&&r.length>0?(o.value=[...r],a.value=!0):a.value=!1};(0,e.onMounted)(()=>{let e=new Date().toDateString();s.value=e;let n=t.eventsByDay.get(e);n&&n.length>0&&(o.value=[...n],a.value=!0)});let l=e=>s.value===new Date(e.date).toDateString(),u=(0,e.ref)(0),d=(0,e.ref)(!1),f=0,p=0,m=!1;function h(e){f=e,p=u.value,d.value=!0}function g(e){if(!d.value)return;let t=e-f;m||=(requestAnimationFrame(()=>{let e=p+t/120;u.value=Math.max(0,Math.min(1,e)),m=!1}),!0)}function _(){d.value=!1,u.value>.25&&p===0?u.value=1:u.value<.75&&p===1?u.value=0:u.value=p}let v=e=>{h(e.touches[0]?.clientY??0)},y=e=>{let t=e.touches[0];t&&g(t.clientY)},b=()=>{_()},x=e=>{h(e.clientY),document.addEventListener(`mousemove`,S),document.addEventListener(`mouseup`,C)},S=e=>{g(e.clientY)},C=()=>{_(),document.removeEventListener(`mousemove`,S),document.removeEventListener(`mouseup`,C)};return{isDaySelected:l,weekDays:r,selectDay:c,handleMouseDown:x,handleMouseLeave:()=>{d.value&&(_(),document.removeEventListener(`mousemove`,S),document.removeEventListener(`mouseup`,C))},selectedDate:s,showEventsList:a,progress:u,isDragging:d,handleTouchStart:v,handleTouchMove:y,handleTouchEnd:b,eventsList:o}}}),X={class:`w-full pt-6 px-4 relative flex flex-col flex-1 overflow-y-auto`},Z={class:`select-none text-[10px] text-on-surface/50 w-full flex items-center justify-between`},re={class:`font-medium`},ie={class:`w-full mt-4 grid grid-cols-7 gap-x-5 gap-y-4`},ae={key:0,class:`transition-all duration-200 ease-in-out overflow-hidden w-full mt-4 flex-1 overflow-y-auto`},oe={class:`py-2 text-on-surface text-title-sm font-bold select-none border-b border-outline-variant mb-2`},se={class:`w-full flex flex-col gap-y-2`};function ce(t,n,r,i,a,o){let s=(0,e.resolveComponent)(`MobileDayHolder`),c=(0,e.resolveComponent)(`MobileEventListItem`);return(0,e.openBlock)(),(0,e.createElementBlock)(`div`,X,[n[6]||=(0,e.createElementVNode)(`div`,{class:`w-full fixed right-0 -translate-y-6 pointer-events-none z-50 h-6 bg-gradient-to-b from-surface to-transparent`},null,-1),(0,e.createElementVNode)(`div`,{id:`mobile-grid`,class:`w-full shrink-0 select-none`,style:{"touch-action":`pan-x`,"user-select":`none`},onTouchstart:n[0]||=(0,e.withModifiers)((...e)=>t.handleTouchStart&&t.handleTouchStart(...e),[`prevent`]),onTouchmove:n[1]||=(0,e.withModifiers)((...e)=>t.handleTouchMove&&t.handleTouchMove(...e),[`prevent`]),onTouchend:n[2]||=(...e)=>t.handleTouchEnd&&t.handleTouchEnd(...e),onMousedown:n[3]||=(0,e.withModifiers)((...e)=>t.handleMouseDown&&t.handleMouseDown(...e),[`prevent`]),onMouseleave:n[4]||=(...e)=>t.handleMouseLeave&&t.handleMouseLeave(...e)},[(0,e.createElementVNode)(`div`,Z,[((0,e.openBlock)(!0),(0,e.createElementBlock)(e.Fragment,null,(0,e.renderList)(t.weekDays,t=>((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{class:`aspect-square w-8 shrink-0 flex items-center justify-center`,key:t.dayOfWeek},[(0,e.createElementVNode)(`div`,re,(0,e.toDisplayString)(t.label),1)]))),128))]),(0,e.createElementVNode)(`div`,ie,[((0,e.openBlock)(!0),(0,e.createElementBlock)(e.Fragment,null,(0,e.renderList)(t.days,(n,r)=>((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{key:r,class:(0,e.normalizeClass)([`transition-all duration-200 rounded-lg`,n.otherMonth?`opacity-0 pointer-events-none`:`opacity-100`,n.isToday&&!n.otherMonth?`bg-today-column`:``])},[(0,e.createVNode)(s,{"is-selected":t.isDaySelected(n),"expand-progress":t.progress,"is-dragging":t.isDragging,onSelect:t.selectDay,day:n,events:t.eventsByDay.get(new Date(n.date).toDateString())||[]},null,8,[`is-selected`,`expand-progress`,`is-dragging`,`onSelect`,`day`,`events`])],2))),128))])],32),t.showEventsList?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,ae,[(0,e.createElementVNode)(`div`,oe,(0,e.toDisplayString)(t.selectedDate),1),(0,e.createElementVNode)(`div`,se,[((0,e.openBlock)(!0),(0,e.createElementBlock)(e.Fragment,null,(0,e.renderList)(t.eventsList,r=>((0,e.openBlock)(),(0,e.createBlock)(c,{key:r.id,event:r,onEventClick:n[5]||=(e,n)=>t.$emit(`event-click`,e,n)},{event:(0,e.withCtx)(({event:n})=>[(0,e.renderSlot)(t.$slots,`event-mobile`,{event:n})]),_:2},1032,[`event`]))),128))])])):(0,e.createCommentVNode)(``,!0)])}var le=o(Y,[[`render`,ce]]),ue={class:`detail-wrapper-stub`},de=(0,e.defineComponent)({__name:`CalendarEventDetailWrapper`,emits:[`lock-scroll`],setup(t){return(t,n)=>((0,e.openBlock)(),(0,e.createElementBlock)(`div`,ue))}}),fe=(0,e.defineComponent)({components:{MobileCalendarGrid:le,CalendarHeaderItem:g,CalendarSideItem:b,CalendarDayHolder:I,CalendarPointer:z,CalendarItemDisplay:M,CalendarEventDetailWrapper:de},props:{range:{type:Object,required:!0},mode:{type:String,default:`monthly`},hours:{type:Object,default:()=>({start:0,end:24})},events:{type:Array,default:()=>[]},loading:{type:Boolean,default:!1},dir:{type:String,default:``}},emits:[`update:mode`,`update:range`,`event-click`],setup(n,{emit:r}){let a=(0,e.computed)(()=>n.loading),{width:o}=t(),s=(0,e.computed)(()=>o.value<768),{getCalendarHeaders:c}=i(),l=(0,e.useTemplateRef)(`scrollContainer`),u=(0,e.computed)(()=>c(n.range,n.mode)),d=(0,e.computed)(()=>u.value),f=(0,e.computed)(()=>n.mode===`monthly`?d.value.slice(0,7):d.value),p=(0,e.computed)(()=>n.mode===`daily`||n.mode===`monthly`?-1:d.value.findIndex(e=>e.isToday)),m=(0,e.computed)(()=>{let e=new Map;return n.events.forEach(t=>{let n=new Date(t.date).toDateString();e.has(n)||e.set(n,[]),e.get(n)?.push(t)}),e}),h=(0,e.computed)(()=>{let e=new Map,t=u.value.filter(e=>!e.otherMonth),r=new Set(t.map(e=>new Date(e.date).toDateString()));return n.events.forEach(t=>{let n=new Date(t.date).toDateString();r.has(n)&&(e.has(n)||e.set(n,[]),e.get(n)?.push(t))}),e});function g(e){if(!e.duration||e.duration<=0)return[e];let t=e.time.split(`:`).map(Number),n=(t[0]??0)+(t[1]??0)/60;if(n+e.duration/60<=24)return[e];let r=[],i=new Date(e.date),a=0,o=n,s=e.duration;for(;s>0;){let t=Math.min(s,(24-o)*60),n=Math.floor(o),c=Math.round((o-n)*60);r.push({...e,id:`${e.id}_d${a}`,date:new Date(i.getTime()+a*864e5),time:`${String(n).padStart(2,`0`)}:${String(c).padStart(2,`0`)}`,duration:Math.round(t)}),s-=t,o=0,a++}return r}let _=(0,e.computed)(()=>{if(n.mode===`monthly`)return[];let e=new Set(d.value.map(e=>new Date(e.date).toLocaleDateString(`en-CA`)));return n.events.flatMap(g).filter(t=>{let n=new Date(t.date).toLocaleDateString(`en-CA`);return e.has(n)})}),v=(0,e.computed)(()=>{let e=[],t=[],r=new Map;for(let e of d.value)r.set(new Date(e.date).toLocaleDateString(`en-CA`),[]);for(let e of _.value)r.get(new Date(e.date).toLocaleDateString(`en-CA`))?.push(e);for(let[i,a]of r.entries()){if(!a.length)continue;let r=d.value.findIndex(e=>new Date(e.date).toLocaleDateString(`en-CA`)===i),o=a.map(e=>{let t=e.time.split(`:`).map(Number),n=(t[0]??0)+(t[1]??0)/60;return{event:e,start:n,end:e.duration?n+e.duration/60:n+.5,col:0}}).sort((e,t)=>e.start-t.start||t.end-e.end),s=[];for(let e of o){let t=s.findIndex(t=>t<=e.start);e.col=t===-1?s.length:t,s[e.col]=e.end}if(n.mode===`daily`)for(let t of o){let n=t.col;for(let e of o)e!==t&&e.start<t.end&&e.end>t.start&&(n=Math.max(n,e.col));e.push({event:t.event,overlapIndex:t.col,overlapCount:n+1})}else{for(let t of o){if(t.col>=2)continue;let n=t.col;for(let e of o)e!==t&&e.col<2&&e.start<t.end&&e.end>t.start&&(n=Math.max(n,e.col));e.push({event:t.event,overlapIndex:t.col,overlapCount:n+1})}let n=o.filter(e=>e.col>=2).sort((e,t)=>e.start-t.start),i=[];for(let e of n){let t=i[i.length-1];!t||e.start>=t.end?i.push({start:e.start,end:e.end,count:1}):(t.end=Math.max(t.end,e.end),t.count++)}for(let e of i){let n=o.filter(t=>t.col<2&&t.start<e.end&&t.end>e.start).reduce((e,t)=>Math.max(e,t.end),e.start);t.push({dayIndex:r,endDecimal:n,count:e.count})}}}return{events:e,overflows:t}}),y=(0,e.computed)(()=>v.value.events),b=(0,e.computed)(()=>v.value.overflows),x=(0,e.computed)(()=>{if(n.mode===`monthly`||_.value.length===0)return n.hours;let e=n.hours.start,t=n.hours.end;for(let n of _.value){let r=n.time.split(`:`).map(Number),i=(r[0]??0)+(r[1]??0)/60,a=n.duration?i+n.duration/60:i;e=Math.min(e,Math.floor(i)),t=Math.max(t,Math.ceil(a))}return{start:Math.max(0,e),end:Math.min(24,t)}}),S=(0,e.ref)(!1),C=e=>{S.value=e},w=e=>{let t=new Date(e.date);r(`update:range`,{start:new Date(t.getFullYear(),t.getMonth(),t.getDate(),0,0,0,0),end:new Date(t.getFullYear(),t.getMonth(),t.getDate(),23,59,59,999)}),r(`update:mode`,`daily`,t)},T=(0,e.ref)(!0);(0,e.watch)([s,()=>n.mode],()=>{T.value=s.value?n.mode!==`monthly`:!0},{immediate:!0});let E=(0,e.computed)(()=>{let e=[];for(let t=x.value.start;t<x.value.end;t++)e.push({raw:t});return e});return(0,e.watch)(()=>n.events,async()=>{if(n.mode===`monthly`||!l.value)return;await(0,e.nextTick)();let t=l.value,r=_.value.map(e=>parseInt(e.time.split(`:`)[0],10));if(r.length===0)return;r.sort((e,t)=>e-t);let i=((r[Math.floor(r.length/2)]??x.value.start)-x.value.start)*80-t.clientHeight/2+80/2;t.scrollTo({top:Math.max(0,i),behavior:`smooth`})},{deep:!0}),{isLoading:a,hoursList:E,effectiveHours:x,scrollContainer:l,headers:d,allHeaders:u,isMobile:s,displayedHeader:f,todayColumnIndex:p,monthlyEventsByDay:h,eventsByDay:m,gridEvents:y,overflowIndicators:b,scrollLocked:S,showMonthly:T,setLockScroll:C,openSpecificDay:w}}}),pe=[`dir`],me={ref:`scrollContainer`,class:`flex-1 w-full flex flex-col overflow-y-auto cal-scrollbar relative`},he={key:0,class:`sticky top-0 z-30 bg-surface shrink-0`},ge={class:`flex-1 w-full flex min-h-0`},_e={class:`flex-1 relative`},ve={class:`absolute inset-0 w-full flex flex-col pointer-events-none`},ye={class:`absolute inset-0 w-full flex pointer-events-none`},be={class:`relative min-h-full w-full`},xe=[`onClick`],Se={key:2,class:`w-full`};function Ce(t,n,r,i,a,o){let s=(0,e.resolveComponent)(`CalendarEventDetailWrapper`),c=(0,e.resolveComponent)(`CalendarHeaderItem`),l=(0,e.resolveComponent)(`CalendarSideItem`),u=(0,e.resolveComponent)(`CalendarPointer`),d=(0,e.resolveComponent)(`CalendarItemDisplay`),f=(0,e.resolveComponent)(`CalendarDayHolder`),p=(0,e.resolveComponent)(`MobileCalendarGrid`);return(0,e.openBlock)(),(0,e.createElementBlock)(`div`,{class:`w-full h-full flex flex-col bg-surface whitespace-normal`,dir:t.dir},[(0,e.createVNode)(s,{onLockScroll:t.setLockScroll},null,8,[`onLockScroll`]),(0,e.createElementVNode)(`div`,me,[t.showMonthly?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,he,[(0,e.createVNode)(c,{class:`cal-header-row w-full border-b border-surface-variant`,mode:t.mode,days:t.displayedHeader,"today-column-index":t.todayColumnIndex},null,8,[`mode`,`days`,`today-column-index`])])):(0,e.createCommentVNode)(``,!0),(0,e.createElementVNode)(`div`,ge,[(0,e.createElementVNode)(`div`,{class:(0,e.normalizeClass)([`shrink-0 transition-all duration-300`,[t.mode===`monthly`?`w-0 opacity-0 overflow-hidden`:`w-8 sm:w-9 md:w-25 opacity-100 h-full`]])},[(0,e.createVNode)(l,{class:`w-8 sm:w-9 md:w-25 min-h-full`,range:t.effectiveHours},null,8,[`range`])],2),(0,e.createElementVNode)(`div`,_e,[(0,e.createVNode)(e.Transition,{name:`calendar-view`,mode:`out-in`},{default:(0,e.withCtx)(()=>[t.mode===`monthly`?t.isMobile?t.mode===`monthly`&&t.isMobile?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,Se,[(0,e.createVNode)(p,{loading:t.isLoading,days:t.headers,mode:t.mode,"events-by-day":t.monthlyEventsByDay,"is-other-month-func":e=>t.headers.find(t=>new Date(t.date).toDateString()===new Date(e).toDateString())?.otherMonth||!1,onEventClick:n[2]||=e=>t.$emit(`event-click`,e)},(0,e.createSlots)({_:2},[t.$slots[`event-mobile`]?{name:`event-mobile`,fn:(0,e.withCtx)(({event:n})=>[(0,e.renderSlot)(t.$slots,`event-mobile`,{event:n,mode:`monthly-mobile`},void 0,!0)]),key:`0`}:void 0]),1032,[`loading`,`days`,`mode`,`events-by-day`,`is-other-month-func`])])):(0,e.createCommentVNode)(``,!0):((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{key:`month-${t.range?.start?.getTime()}`,class:`w-full grid grid-cols-7 auto-rows-[186px] overflow-hidden`},[((0,e.openBlock)(!0),(0,e.createElementBlock)(e.Fragment,null,(0,e.renderList)(t.allHeaders,(r,i)=>((0,e.openBlock)(),(0,e.createBlock)(f,{key:i,day:r,"other-month":!!r.otherMonth,events:t.monthlyEventsByDay.get(new Date(r.date).toDateString())||[],onOpenDay:e=>t.openSpecificDay(r),onEventClick:n[1]||=e=>t.$emit(`event-click`,e)},(0,e.createSlots)({_:2},[t.$slots.event?{name:`event`,fn:(0,e.withCtx)(n=>[(0,e.renderSlot)(t.$slots,`event`,(0,e.mergeProps)({ref_for:!0},n),void 0,!0)]),key:`0`}:void 0]),1032,[`day`,`other-month`,`events`,`onOpenDay`]))),128))])):((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{key:`time-${t.mode}-${t.range?.start?.getTime()}`,class:`w-full relative`,style:(0,e.normalizeStyle)({height:`${t.hoursList.length*80}px`})},[(0,e.createVNode)(u,{mode:t.mode,hours:t.effectiveHours,headers:t.headers},null,8,[`mode`,`hours`,`headers`]),(0,e.createElementVNode)(`div`,ve,[((0,e.openBlock)(!0),(0,e.createElementBlock)(e.Fragment,null,(0,e.renderList)(t.effectiveHours.end-t.effectiveHours.start,t=>((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{key:t,class:`w-full border-b border-surface-variant box-border h-20`}))),128))]),(0,e.createElementVNode)(`div`,ye,[((0,e.openBlock)(!0),(0,e.createElementBlock)(e.Fragment,null,(0,e.renderList)(t.headers,(n,r)=>((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{class:(0,e.normalizeClass)([`h-full ltr:border-r rtl:border-l border-outline-variant flex-1 transition-colors`,{"bg-today-column":r===t.todayColumnIndex}]),key:`v`+r},null,2))),128))]),(0,e.createElementVNode)(`div`,be,[((0,e.openBlock)(!0),(0,e.createElementBlock)(e.Fragment,null,(0,e.renderList)(t.gridEvents,r=>((0,e.openBlock)(),(0,e.createBlock)(d,{key:r.event.id,event:r.event,mode:t.mode,headers:t.headers,hours:t.effectiveHours,isMobile:t.isMobile,"overlap-index":r.overlapIndex,"overlap-count":r.overlapCount,onEventClick:n[0]||=e=>t.$emit(`event-click`,e)},(0,e.createSlots)({_:2},[t.$slots.event?{name:`event`,fn:(0,e.withCtx)(n=>[(0,e.renderSlot)(t.$slots,`event`,(0,e.mergeProps)({ref_for:!0},n),void 0,!0)]),key:`0`}:void 0]),1032,[`event`,`mode`,`headers`,`hours`,`isMobile`,`overlap-index`,`overlap-count`]))),128)),((0,e.openBlock)(!0),(0,e.createElementBlock)(e.Fragment,null,(0,e.renderList)(t.overflowIndicators,(n,r)=>((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{key:`of-${r}`,class:`absolute px-0.5 sm:px-1 z-20 pointer-events-auto`,style:(0,e.normalizeStyle)({top:`${(Math.min(n.endDecimal,t.effectiveHours.end)-t.effectiveHours.start)*80}px`,insetInlineStart:`${n.dayIndex*(100/t.headers.length)}%`,width:`${100/t.headers.length}%`})},[(0,e.createElementVNode)(`button`,{class:`w-full text-[8px] sm:text-[10px] leading-none rounded bg-surface-variant hover:bg-surface-variant/80 text-on-surface/70 px-1 sm:px-2 py-0.5 sm:py-1 truncate transition-colors`,onClick:e=>t.openSpecificDay(t.headers[n.dayIndex])},` +`+(0,e.toDisplayString)(n.count)+` more `,9,xe)],4))),128))])],4))]),_:3})])])],512)],8,pe)}var we=o(fe,[[`render`,Ce],[`__scopeId`,`data-v-6e2c33b4`]]),Te=[`dir`],Ee={ref:`scrollContainer`,class:`flex-1 w-full overflow-y-auto cal-scrollbar px-2 sm:px-4 md:px-6 py-3 sm:py-5`},De={class:`max-w-4xl mx-auto flex flex-col gap-6`},Oe={class:`agenda-section-header sticky top-0 z-10 py-1.5 flex items-center gap-3 bg-surface/95 backdrop-blur-xs`},ke={class:`rounded-full bg-surface-variant px-3 py-0.5 text-xs font-semibold text-on-surface/70 border border-outline-variant shadow-xs select-none`},Ae={class:`flex flex-col gap-3`},je={class:`agenda-date-col shrink-0 flex flex-col items-start w-24 sm:w-32 md:w-36 pt-0.5 select-none`},Me={class:`sm:hidden`},Ne={class:`hidden sm:inline`},Pe={class:`mt-1 flex items-center gap-1.5 sm:gap-2`},Fe={class:`flex flex-col text-[10px] sm:text-xs leading-none text-on-surface/50 gap-0.5`},Q={key:0,class:`opacity-70`},Ie={key:0,class:`mt-1 text-[10px] font-medium text-error truncate max-w-full`},Le={class:`agenda-events-col flex-1 min-w-0 flex flex-col gap-2`},Re=[`onClick`],ze={class:`min-w-0 flex-1 font-semibold text-xs sm:text-sm md:text-base leading-snug truncate`},Be={key:0,class:`shrink-0 text-[11px] sm:text-xs md:text-sm font-medium opacity-90 flex items-center gap-1.5 whitespace-nowrap`},Ve={key:1,class:`agenda-no-events flex items-center text-xs text-on-surface/40 italic py-2 px-3 rounded-lg border border-dashed border-outline-variant select-none`},$=o((0,e.defineComponent)({__name:`CalendarAgenda`,props:{range:{},events:{default:()=>[]},dir:{default:``}},emits:[`event-click`],setup(t){let n=t,a=(0,e.inject)(`calendarConfig`,(0,e.ref)({locale:`fa-IR`,calendar:`jalaali`,startOfWeek:`saturday`,showHolidays:!1})),{t:o}=r(),{getCalendarHeaders:s}=i(),c=(0,e.computed)(()=>{let e=String(a.value.locale||``).toLowerCase();return e.startsWith(`fa`)||e.startsWith(`ar`)}),l=(0,e.computed)(()=>n.dir?n.dir:c.value?`rtl`:`ltr`);function u(e){if(!e||typeof e!=`string`)return 0;let t=e.split(`:`).map(Number),n=t[0]??0,r=t[1]??0;return Number.isNaN(n)||Number.isNaN(r)?0:n*60+r}let d=[`۰`,`۱`,`۲`,`۳`,`۴`,`۵`,`۶`,`۷`,`۸`,`۹`];function f(e){return c.value?e.replace(/\d/g,e=>d[parseInt(e,10)]??e):e}function p(e){if(e.isFullDay)return o(`calendar.allDay`)||(c.value?`تمام روز`:`All day`);if(!e.time)return``;if(!e.duration||e.duration<=0)return f(e.time);let t=u(e.time)+e.duration,n=Math.floor(t%1440/60),r=t%60,i=`${String(n).padStart(2,`0`)}:${String(r).padStart(2,`0`)}`,a=f(e.time),s=f(i);return c.value?`${a} تا ${s}`:`${a} – ${s}`}function m(e){let t=e.color||`var(--cal-primary, #1a9d90)`;return{backgroundColor:t,color:j(t)}}let h=(0,e.computed)(()=>s(n.range,`agenda`));function g(e,t){if(!e.date)return!1;let n=new Date(t.date),r=new Date(n.getFullYear(),n.getMonth(),n.getDate(),0,0,0,0).getTime(),i=new Date(n.getFullYear(),n.getMonth(),n.getDate(),23,59,59,999).getTime(),a=new Date(e.date),o=u(e.time),s=new Date(a.getFullYear(),a.getMonth(),a.getDate(),0,0,0,0).getTime()+o*60*1e3,c=s;return e.duration&&e.duration>0?c=s+e.duration*60*1e3:e.isFullDay&&(c=new Date(a.getFullYear(),a.getMonth(),a.getDate(),23,59,59,999).getTime()),s<=i&&c>=r}function _(e){return n.events.filter(t=>g(t,e)).sort((e,t)=>{if(e.isFullDay&&!t.isFullDay)return-1;if(!e.isFullDay&&t.isFullDay)return 1;let n=u(e.time),r=u(t.time);return n===r?String(e.title||``).localeCompare(String(t.title||``)):n-r})}function v(e,t){let n=c.value,r=n?`fa-IR`:`en-US`,i=a.value.calendar===`jalaali`?`persian`:a.value.calendar===`islamic`?`islamic-civil`:`gregory`,o=new Intl.DateTimeFormat(`${r}-u-ca-${i}`,{day:`numeric`,month:`short`,year:`numeric`}).formatToParts(e),s=new Intl.DateTimeFormat(`${r}-u-ca-${i}`,{day:`numeric`,month:`short`,year:`numeric`}).formatToParts(t),l=o.find(e=>e.type===`day`)?.value||``,u=o.find(e=>e.type===`month`)?.value||``,d=o.find(e=>e.type===`year`)?.value||``,f=s.find(e=>e.type===`day`)?.value||``,p=s.find(e=>e.type===`month`)?.value||``,m=s.find(e=>e.type===`year`)?.value||``;return d===m&&u===p?n?`${l} – ${f} ${u}`:`${u} ${l} – ${f}`:d===m?n?`${l} ${u} – ${f} ${p}`:`${u} ${l} – ${p} ${f}`:n?`${l} ${u} ${d} – ${f} ${p} ${m}`:`${u} ${l}, ${d} – ${p} ${f}, ${d}`}let y=(0,e.computed)(()=>{let e=h.value;if(!e.length)return[];let t=[];for(let n=0;n<e.length;n+=7){let r=e.slice(n,n+7),i=r[0]?.date||new Date,a=r[r.length-1]?.date||i;t.push({id:`section-${i.getTime()}-${a.getTime()}`,rangeLabel:v(i,a),days:r.map(e=>({day:e,events:_(e)}))})}return t});return(t,n)=>((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{class:`calendar-agenda w-full h-full flex flex-col bg-surface overflow-hidden`,dir:l.value},[(0,e.createElementVNode)(`div`,Ee,[(0,e.createElementVNode)(`div`,De,[((0,e.openBlock)(!0),(0,e.createElementBlock)(e.Fragment,null,(0,e.renderList)(y.value,r=>((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{key:r.id,class:`agenda-section flex flex-col gap-3`},[(0,e.createElementVNode)(`div`,Oe,[n[0]||=(0,e.createElementVNode)(`div`,{class:`h-px flex-1 bg-outline-variant`},null,-1),(0,e.createElementVNode)(`span`,ke,(0,e.toDisplayString)(r.rangeLabel),1),n[1]||=(0,e.createElementVNode)(`div`,{class:`h-px flex-1 bg-outline-variant`},null,-1)]),(0,e.createElementVNode)(`div`,Ae,[((0,e.openBlock)(!0),(0,e.createElementBlock)(e.Fragment,null,(0,e.renderList)(r.days,r=>((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{key:r.day.name+r.day.date.getTime(),class:(0,e.normalizeClass)([`agenda-day-row flex flex-row items-start gap-3 sm:gap-5 p-2.5 sm:p-3.5 rounded-xl border border-outline-variant/60 transition-colors`,{"bg-today-column ring-1 ring-primary/30 border-primary/40":r.day.isToday,"bg-surface":!r.day.isToday}])},[(0,e.createElementVNode)(`div`,je,[(0,e.createElementVNode)(`span`,{class:(0,e.normalizeClass)([`text-xs sm:text-sm font-semibold truncate max-w-full`,r.day.isToday?`text-primary font-bold`:`text-on-surface/80`])},[(0,e.createElementVNode)(`span`,Me,(0,e.toDisplayString)(r.day.shortName||r.day.name),1),(0,e.createElementVNode)(`span`,Ne,(0,e.toDisplayString)(r.day.name),1)],2),(0,e.createElementVNode)(`div`,Pe,[(0,e.createElementVNode)(`div`,{class:(0,e.normalizeClass)([`flex size-7 sm:size-8 items-center justify-center rounded-full text-xs sm:text-sm font-bold shadow-xs shrink-0`,[r.day.isToday?`bg-primary text-surface font-extrabold ring-2 ring-primary/30`:r.day.isWeekend||r.day.isHoliday?`bg-surface-variant text-error border border-outline-variant`:`bg-surface-variant text-on-surface border border-outline-variant`]])},(0,e.toDisplayString)(r.day.primary),3),(0,e.createElementVNode)(`div`,Fe,[(0,e.createElementVNode)(`span`,{class:(0,e.normalizeClass)({"text-error":r.day.isWeekend||r.day.isHoliday})},(0,e.toDisplayString)(r.day.secondary),3),r.day.tertiary?((0,e.openBlock)(),(0,e.createElementBlock)(`span`,Q,(0,e.toDisplayString)(r.day.tertiary),1)):(0,e.createCommentVNode)(``,!0)])]),r.day.holidayTitle?((0,e.openBlock)(),(0,e.createElementBlock)(`span`,Ie,(0,e.toDisplayString)(r.day.holidayTitle),1)):(0,e.createCommentVNode)(``,!0)]),(0,e.createElementVNode)(`div`,Le,[r.events.length>0?((0,e.openBlock)(!0),(0,e.createElementBlock)(e.Fragment,{key:0},(0,e.renderList)(r.events,r=>((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{key:r.id,class:`agenda-event-card group flex items-center justify-between gap-3 rounded-lg sm:rounded-xl p-2.5 sm:px-4 sm:py-3 border border-black/10 dark:border-white/20 shadow-xs cursor-pointer transition-all hover:scale-[1.006] hover:shadow-md active:scale-[0.995]`,style:(0,e.normalizeStyle)(m(r)),onClick:e=>t.$emit(`event-click`,r)},[(0,e.renderSlot)(t.$slots,`event`,{event:r,mode:`agenda`},()=>[(0,e.createElementVNode)(`div`,ze,(0,e.toDisplayString)(r.title),1),r.time||r.isFullDay?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,Be,[n[2]||=(0,e.createElementVNode)(`svg`,{class:`size-3 sm:size-3.5 opacity-80`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`},[(0,e.createElementVNode)(`circle`,{cx:`12`,cy:`12`,r:`10`}),(0,e.createElementVNode)(`polyline`,{points:`12 6 12 12 16 14`})],-1),(0,e.createElementVNode)(`span`,null,(0,e.toDisplayString)(p(r)),1)])):(0,e.createCommentVNode)(``,!0)],!0)],12,Re))),128)):((0,e.openBlock)(),(0,e.createElementBlock)(`div`,Ve,(0,e.toDisplayString)((0,e.unref)(o)(`calendar.noEvents`)||`No events`),1))])],2))),128))])]))),128))])],512)],8,Te))}}),[[`__scopeId`,`data-v-71fb8cbf`]]),He={key:0,class:`w-full h-full flex flex-col font-sans`,style:{color:`var(--cal-on-surface)`,background:`var(--cal-surface)`}},Ue={class:`w-full flex-1 overflow-hidden relative`},We=(0,e.defineComponent)({__name:`VueCalendar`,props:{events:{default:()=>[]},mode:{default:`monthly`},locale:{default:`en-US`},calendarType:{default:`gregory`},startOfWeek:{},hours:{default:()=>({start:0,end:24})},initialDate:{default:()=>new Date}},emits:[`update:mode`,`range-change`,`event-click`],setup(t,{expose:n,emit:r}){let a=t,o=r,s=(0,e.ref)(!1),c=(0,e.ref)(new Date(a.initialDate)),l={gregory:`gregory`,persian:`jalaali`,"islamic-uma":`islamic`},u=[`sunday`,`monday`,`tuesday`,`wednesday`,`thursday`,`friday`,`saturday`],d=(0,e.computed)(()=>a.startOfWeek!==void 0&&a.startOfWeek>=0&&a.startOfWeek<=6?a.startOfWeek:a.calendarType===`gregory`?1:6),f=(0,e.computed)(()=>({locale:a.locale,calendar:l[a.calendarType],startOfWeek:u[d.value]??`sunday`,showHolidays:!1}));(0,e.provide)(`calendarConfig`,f),(0,e.provide)(`calendarHolidays`,(0,e.ref)({}));let{getMonthBounds:p,offsetPeriod:m}=i(f),h=(0,e.computed)(()=>{let e=new Date(c.value),t=new Date(c.value);if(a.mode===`daily`)return e.setHours(0,0,0,0),t.setHours(23,59,59,999),{start:e,end:t};if(a.mode===`3days`)return e.setHours(0,0,0,0),t.setTime(e.getTime()),t.setDate(e.getDate()+2),t.setHours(23,59,59,999),{start:e,end:t};if(a.mode===`weekly`){let n=d.value,r=e.getDay(),i=(r<n?7:0)+r-n;return e.setDate(e.getDate()-i),e.setHours(0,0,0,0),t.setTime(e.getTime()),t.setDate(e.getDate()+6),t.setHours(23,59,59,999),{start:e,end:t}}else return p(c.value)}),g=()=>{c.value=m(c.value,a.mode,1),o(`range-change`,h.value)},_=()=>{c.value=m(c.value,a.mode,-1),o(`range-change`,h.value)},v=(e,t)=>{t&&(c.value=new Date(t)),o(`update:mode`,e,t)},y=(e,t)=>{t&&(c.value=new Date(t)),o(`update:mode`,e,t)};return(0,e.watch)(()=>a.initialDate,e=>{e&&(c.value=new Date(e),o(`range-change`,h.value))}),(0,e.watch)(h,e=>{s.value&&o(`range-change`,e)}),(0,e.onMounted)(()=>{s.value=!0,o(`range-change`,h.value)}),n({goNext:g,goPrev:_,setMode:y,currentRange:h,handleModeUpdate:v}),(n,r)=>s.value?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,He,[(0,e.renderSlot)(n.$slots,`header`,{mode:t.mode,range:h.value,next:g,prev:_,setMode:y}),(0,e.createElementVNode)(`div`,Ue,[t.mode===`agenda`?((0,e.openBlock)(),(0,e.createBlock)($,{key:0,range:h.value,events:t.events,onEventClick:r[0]||=e=>n.$emit(`event-click`,e)},(0,e.createSlots)({_:2},[n.$slots.event?{name:`event`,fn:(0,e.withCtx)(t=>[(0,e.renderSlot)(n.$slots,`event`,(0,e.normalizeProps)((0,e.guardReactiveProps)(t)))]),key:`0`}:void 0]),1032,[`range`,`events`])):((0,e.openBlock)(),(0,e.createBlock)(we,{key:1,range:h.value,mode:t.mode,events:t.events,hours:t.hours,"onUpdate:mode":r[1]||=(e,t)=>v(e,t),onEventClick:r[2]||=e=>n.$emit(`event-click`,e),"onUpdate:range":r[3]||=e=>n.$emit(`range-change`,e)},(0,e.createSlots)({_:2},[n.$slots.event?{name:`event`,fn:(0,e.withCtx)(t=>[(0,e.renderSlot)(n.$slots,`event`,(0,e.normalizeProps)((0,e.guardReactiveProps)(t)))]),key:`0`}:void 0,n.$slots[`event-mobile`]?{name:`event-mobile`,fn:(0,e.withCtx)(t=>[(0,e.renderSlot)(n.$slots,`event-mobile`,(0,e.normalizeProps)((0,e.guardReactiveProps)(t)))]),key:`1`}:void 0]),1032,[`range`,`mode`,`events`,`hours`]))])])):(0,e.createCommentVNode)(``,!0)}});exports.CalendarAgenda=$,exports.VueCalendar=We,exports.getAccessibleTextColor=j,exports.getContrastRatio=A,exports.getRelativeLuminance=k,exports.parseColorToRgb=D;
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});let e=require("vue");var t=()=>{let t=(0,e.ref)(typeof window<`u`?window.innerWidth:1024),n=(0,e.ref)(typeof window<`u`?window.innerHeight:768),r=()=>{t.value=window.innerWidth,n.value=window.innerHeight};return(0,e.onMounted)(()=>window.addEventListener(`resize`,r)),(0,e.onUnmounted)(()=>window.removeEventListener(`resize`,r)),{width:t,height:n}},n=e=>(typeof e==`object`&&e&&`value`in e?String(e.value):String(e||`fa-IR`)).replace(/[^a-zA-Z-]/g,`-`).split(`-`)[0]||`fa`,r=()=>{let t=(0,e.inject)(`calendarConfig`,(0,e.ref)({locale:`en`,calendar:`gregory`,startOfWeek:`sunday`,showHolidays:!1}));return{t:(e,n)=>{let r=t.value.locale.startsWith(`fa`);return{"calendar.dayTimes.morning":r?`صبح`:`Morning`,"calendar.dayTimes.noon":r?`ظهر`:`Noon`,"calendar.dayTimes.afternoon":r?`عصر`:`Afternoon`,"calendar.dayTimes.night":r?`شب`:`Night`,"calendar.moreItems":r?`${n?.count} مورد دیگر`:`${n?.count} More Items`,"calendar.noEvents":r?`رویدادی وجود ندارد`:`No events`,"calendar.allDay":r?`تمام روز`:`All day`,"calendar.agenda":r?`برنامه`:`Agenda`}[e]||e},config:t}},i=t=>{let r=(0,e.inject)(`calendarConfig`,(0,e.ref)({locale:`fa-IR`,calendar:`jalaali`,startOfWeek:`saturday`,showHolidays:!0})),i=t||r,a=(0,e.inject)(`calendarHolidays`,(0,e.ref)({})),o=(0,e.computed)(()=>{let e=i.value.calendar;return e===`jalaali`?`persian`:e===`islamic`?`islamic-uma`:`gregory`}),s=e=>({sunday:0,monday:1,tuesday:2,wednesday:3,thursday:4,friday:5,saturday:6})[e.toLowerCase()]??0,c=e=>{let t=new Date(e);t.setHours(12,0,0,0);let n=o.value;n===`islamic-uma`&&(n=`islamic-civil`,t.setDate(t.getDate()-1));let r=new Intl.DateTimeFormat(`en-u-ca-${n}`,{year:`numeric`,month:`numeric`,day:`numeric`}).formatToParts(t),i=e=>parseInt(r.find(t=>t.type===e)?.value||`0`);return{year:i(`year`),month:i(`month`),day:i(`day`)}},l=(0,e.computed)(()=>i.value.calendar===`gregory`?1:6),u=e=>String(e),d=e=>{let t=[`۰`,`۱`,`۲`,`۳`,`۴`,`۵`,`۶`,`۷`,`۸`,`۹`];return String(e).replace(/\d/g,e=>t[parseInt(e)]??e)},f=e=>{let t=n(i.value.locale),r=new Date(e);r.setDate(r.getDate()+-1);let s=(t,n=e)=>{let r=new Intl.DateTimeFormat(`en-u-ca-${t}`,{year:`numeric`,month:`numeric`,day:`numeric`}).formatToParts(n);return parseInt(r.find(e=>e.type===`day`)?.value||`0`)},c=s(`gregory`),l=s(`persian`),f=s(`islamic-civil`,r),p=t===`fa`||t===`ar`,m=u(c),h=p?d(l):u(l),g=p?d(f):u(f),_=i.value.calendar,v,y,b;_===`jalaali`?(v=h,y=m,b=g):_===`islamic`?(v=g,y=h,b=m):(v=m,y=h,b=g);let x=new Date,S=e.getDate()===x.getDate()&&e.getMonth()===x.getMonth()&&e.getFullYear()===x.getFullYear(),C=`${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,`0`)}-${String(e.getDate()).padStart(2,`0`)}`,w=a.value[C],T=w?.isHoliday||!1,E=w?.titles?.join(` - `)||null,D=e.getDay(),O=i.value.showHolidays?_===`jalaali`||_===`islamic`?D===5:D===0:!1,k=i.value.showHolidays?O||T:!1,A=o.value,j=new Intl.DateTimeFormat(`${t}-u-ca-${A}`,{weekday:`long`}).format(e),M=new Intl.DateTimeFormat(`${t}-u-ca-${A}`,{weekday:`short`}).format(e);return{date:new Date(e),primary:v,secondary:y,tertiary:b,jalaali:l,gregorian:c,ghamari:f,isToday:S,isWeekend:O,isHoliday:k,holidayTitle:E,name:j,shortName:M,dayOfWeek:D}},p=(e,t)=>{if(!e)return[];let n=[];if(t===`monthly`){let t=new Date(e.start);t.setHours(12,0,0,0);let r=c(t),a=r.month,o=r.year,l=new Date(t);for(;c(l).day!==1;)l.setDate(l.getDate()-1);let u=new Date(l);for(;;){u.setDate(u.getDate()+1);let e=c(u);if(e.month!==a||e.year!==o){u.setDate(u.getDate()-1);break}}let d=s(i.value.calendar===`gregory`?`monday`:`saturday`),p=l.getDay()-d;p<0&&(p+=7);let m=new Date(l);m.setDate(m.getDate()-p);let h=((d+6)%7-u.getDay()+7)%7,g=new Date(u);g.setDate(g.getDate()+h);let _=new Date(m);for(;_<=g;){let e=f(new Date(_)),t=c(_);n.push({...e,otherMonth:t.month!==a||t.year!==o}),_.setDate(_.getDate()+1)}}else if(t===`agenda`){let t=new Date(e.start);t.setHours(12,0,0,0);let r=c(t),i=r.month,a=r.year,o=new Date(t);for(;c(o).day!==1;)o.setDate(o.getDate()-1);let s=new Date(o);for(;;){s.setDate(s.getDate()+1);let e=c(s);if(e.month!==i||e.year!==a){s.setDate(s.getDate()-1);break}}let l=new Date(o);for(;l<=s;){let e=f(new Date(l));n.push({...e,otherMonth:!1}),l.setDate(l.getDate()+1)}}else if(t===`weekly`){let t=s(i.value.calendar===`gregory`?`monday`:`saturday`),r=new Date(e.start),a=r.getDay()-t;a<0&&(a+=7),r.setDate(r.getDate()-a);for(let e=0;e<7;e++){let t=new Date(r);t.setDate(r.getDate()+e),n.push({...f(t),otherMonth:!1})}}else if(t===`3days`)for(let t=0;t<3;t++){let r=new Date(e.start);r.setDate(r.getDate()+t),n.push({...f(r),otherMonth:!1})}else n.push({...f(new Date(e.start)),otherMonth:!1});return n},m=(0,e.computed)(()=>{let e=n(i.value.locale),t=o.value,r=l.value,a=new Date(2025,0,12+r),s=new Intl.DateTimeFormat(`${e}-u-ca-${t}`,{weekday:`narrow`}),c=new Intl.DateTimeFormat(`${e}-u-ca-${t}`,{weekday:`long`});return Array.from({length:7},(e,t)=>{let n=new Date(a);return n.setDate(a.getDate()+t),{dayOfWeek:n.getDay(),label:s.format(n),fullName:c.format(n)}})}),h=e=>{let t=n(i.value.locale),r=o.value;return{sunday:0,monday:1,tuesday:2,wednesday:3,thursday:4,friday:5,saturday:6}[new Intl.DateTimeFormat(`${t}-u-ca-${r}`,{weekday:`long`}).format(e).toLowerCase()]??0},g=()=>{let e=new Date,t=c(e),n=new Date(e);for(n.setHours(0,0,0,0);c(n).day!==t.day||c(n).month!==t.month||c(n).year!==t.year;)n.setDate(n.getDate()-1);return n},_=e=>{let t=new Date(e);t.setHours(12,0,0,0);let n=c(t),r=n.month,i=n.year;for(;n.day!==1;)t.setDate(t.getDate()-1),n=c(t);let a=new Date(t);for(;;){a.setDate(a.getDate()+1);let e=c(a);if(e.month!==r||e.year!==i){a.setDate(a.getDate()-1);break}}return a.setHours(23,59,59,999),{start:t,end:a}},v=e=>{let t=new Date(e);return t.setHours(0,0,0,0),t.setMilliseconds(0),t},y=()=>i.value.calendar===`gregory`?1:6,b=e=>{let t=g();if(e===`daily`||e===`3days`)return v(t);if(e===`weekly`){let e=y(),n=t.getDay()-e;n<0&&(n+=7);let r=new Date(t);return r.setDate(r.getDate()-n),v(r)}c(t);let n=v(t);for(n.setHours(12,0,0,0);c(n).day!==1;)n.setDate(n.getDate()-1);return v(n)},x=(e,t)=>{let r=n(e),i=t===`jalaali`?`persian`:t===`islamic`?`islamic-civil`:`gregory`,a=c(new Date).year,o=C(1,a),s=[];for(let e=1;e<=12;e++){let t=C(e,a,o);o=new Date(t);let n=new Intl.DateTimeFormat(`${r}-u-ca-${i}`,{month:`long`}).format(t);s.push({value:e,label:n,shortLabel:n})}return s},S=(e=new Date)=>{let t=c(e);return{month:t.month,year:t.year}},C=(e,t,n)=>{let r=n?new Date(n):new Date;r.setHours(12,0,0,0);let i=c(r),a=1e3,o=0;for(;(i.year!==t||i.month!==e)&&o<a;)i.year<t||i.year===t&&i.month<e?r.setDate(r.getDate()+1):r.setDate(r.getDate()-1),i=c(r),o++;for(;i.day!==1&&o<a;)r.setDate(r.getDate()-1),i=c(r),o++;return r.setHours(0,0,0,0),r};return{getCalendarHeaders:p,getDayDetails:f,offsetPeriod:(e,t,n)=>{let r=new Date(e);if(t===`daily`)r.setDate(r.getDate()+n);else if(t===`3days`)r.setDate(r.getDate()+n*3);else if(t===`weekly`)r.setDate(r.getDate()+n*7);else{let e=c(r),t=e.month+n,i=e.year;return t<1&&(t+=12,i--),t>12&&(t-=12,i++),v(C(t,i))}return v(r)},getMonthBounds:_,getWeekDayNames:m,getParts:c,resetToToday:b,getTodayInActiveCalendar:g,getCurrentPeriodStart:e=>b(e),getCurrentMonthYear:S,getDayOfWeekIndex:h,getMonthNames:x,getFirstDayOfMonthInActiveCalendar:C}},a={"--cal-primary":{light:{r:26,g:157,b:144},dark:{r:64,g:184,b:172}},"--color-primary":{light:{r:26,g:157,b:144},dark:{r:64,g:184,b:172}},"--cal-surface":{light:{r:255,g:255,b:255},dark:{r:21,g:24,b:35}},"--color-surface":{light:{r:255,g:255,b:255},dark:{r:21,g:24,b:35}},"--cal-on-surface":{light:{r:44,g:44,b:46},dark:{r:255,g:255,b:255}},"--color-on-surface":{light:{r:44,g:44,b:46},dark:{r:255,g:255,b:255}},"--cal-error":{light:{r:229,g:43,b:22},dark:{r:234,g:85,b:69}},"--color-error":{light:{r:229,g:43,b:22},dark:{r:234,g:85,b:69}}};function o(e){if(!e||typeof e!=`string`)return null;let t=e.trim().toLowerCase();if(t.startsWith(`var(`)){let e=t.match(/var\(\s*([^,\s)]+)/),n=e?e[1]:``;if(typeof document<`u`&&n)try{let e=getComputedStyle(document.documentElement).getPropertyValue(n).trim();if(e){let t=o(e);if(t)return t}}catch{}let r=t.match(/var\([^,]+,\s*([^)]+)\)/);if(r&&r[1]){let e=o(r[1].trim());if(e)return e}return n&&a[n]?typeof document<`u`&&document.documentElement.classList.contains(`dark`)?a[n].dark:a[n].light:{r:26,g:157,b:144}}if(t.startsWith(`#`)){let e=t.slice(1);if(e.length===3||e.length===4){let t=e[0]||`0`,n=e[1]||`0`,r=e[2]||`0`,i=parseInt(t+t,16),a=parseInt(n+n,16),o=parseInt(r+r,16);if(!Number.isNaN(i)&&!Number.isNaN(a)&&!Number.isNaN(o))return{r:i,g:a,b:o}}else if(e.length===6||e.length===8){let t=parseInt(e.slice(0,2),16),n=parseInt(e.slice(2,4),16),r=parseInt(e.slice(4,6),16);if(!Number.isNaN(t)&&!Number.isNaN(n)&&!Number.isNaN(r))return{r:t,g:n,b:r}}return null}if(t.startsWith(`rgb`)){let e=t.match(/\(([^)]+)\)/);if(e&&e[1]){let t=e[1].split(/[\s,/]+/).filter(Boolean),n=t[0],r=t[1],i=t[2];if(n!==void 0&&r!==void 0&&i!==void 0){let e=n.endsWith(`%`)?parseFloat(n)/100*255:parseFloat(n),t=r.endsWith(`%`)?parseFloat(r)/100*255:parseFloat(r),a=i.endsWith(`%`)?parseFloat(i)/100*255:parseFloat(i);if(!Number.isNaN(e)&&!Number.isNaN(t)&&!Number.isNaN(a))return{r:Math.min(255,Math.max(0,Math.round(e))),g:Math.min(255,Math.max(0,Math.round(t))),b:Math.min(255,Math.max(0,Math.round(a)))}}}return null}if(t.startsWith(`hsl`)){let e=t.match(/\(([^)]+)\)/);if(e&&e[1]){let t=e[1].split(/[\s,/]+/).filter(Boolean),n=t[0],r=t[1],i=t[2];if(n!==void 0&&r!==void 0&&i!==void 0){let e=parseFloat(n),t=parseFloat(r)/100,a=parseFloat(i)/100;if(!Number.isNaN(e)&&!Number.isNaN(t)&&!Number.isNaN(a))return s(e,t,a)}}return null}let n={white:{r:255,g:255,b:255},black:{r:0,g:0,b:0},transparent:{r:255,g:255,b:255},red:{r:255,g:0,b:0},green:{r:0,g:128,b:0},blue:{r:0,g:0,b:255},yellow:{r:255,g:255,b:0},orange:{r:255,g:165,b:0},purple:{r:128,g:0,b:128},teal:{r:0,g:128,b:128},gray:{r:128,g:128,b:128},grey:{r:128,g:128,b:128}};return n[t]?n[t]:null}function s(e,t,n){let r=(e%360+360)%360,i=(1-Math.abs(2*n-1))*t,a=i*(1-Math.abs(r/60%2-1)),o=n-i/2,s=0,c=0,l=0;return r>=0&&r<60?(s=i,c=a):r>=60&&r<120?(s=a,c=i):r>=120&&r<180?(c=i,l=a):r>=180&&r<240?(c=a,l=i):r>=240&&r<300?(s=a,l=i):(s=i,l=a),{r:Math.round((s+o)*255),g:Math.round((c+o)*255),b:Math.round((l+o)*255)}}function c(e,t,n){let r=e=>{let t=Math.max(0,Math.min(255,e))/255;return t<=.04045?t/12.92:((t+.055)/1.055)**2.4},i=r(e),a=r(t),o=r(n);return .2126*i+.7152*a+.0722*o}function l(e,t){let n=typeof e==`string`?o(e)??{r:0,g:0,b:0}:e,r=typeof t==`string`?o(t)??{r:255,g:255,b:255}:t,i=c(n.r,n.g,n.b),a=c(r.r,r.g,r.b),s=Math.max(i,a),l=Math.min(i,a);return(s+.05)/(l+.05)}function u(e,t){let n=t?.darkColor??`#0f172a`,r=t?.lightColor??`#ffffff`;if(!e)return r;let i=o(e)??{r:26,g:157,b:144},a=o(n)??{r:15,g:23,b:42},s=o(r)??{r:255,g:255,b:255},l=c(i.r,i.g,i.b),u=c(a.r,a.g,a.b),d=c(s.r,s.g,s.b),f=(Math.max(l,u)+.05)/(Math.min(l,u)+.05);return(Math.max(l,d)+.05)/(Math.min(l,d)+.05)>=f?r:n}var d=(0,e.defineComponent)({name:`CalendarDayBadge`,props:{day:{type:Object,required:!0}},setup(t){return{getDayItemColor:(0,e.computed)(()=>{let e=t.day,n=`border-outline-variant bg-surface`,r=`text-on-surface/50`;return e.isToday&&(n=`bg-today border-outline-variant/0`,r=`text-surface`),(e.isWeekend||e.isHoliday)&&(r=`text-error`),{fill:n,text:r}}),getFont:(e,t)=>{if(String(t.gregorian)===t[e])return`font-latin`}}}}),f=(e,t)=>{let n=e.__vccOpts||e;for(let[e,r]of t)n[e]=r;return n},p={class:`flex flex-col items-center`};function m(t,n,r,i,a,o){return(0,e.openBlock)(),(0,e.createElementBlock)(`div`,p,[(0,e.createElementVNode)(`div`,{class:(0,e.normalizeClass)([`w-7 h-7 sm:w-8 sm:h-8 md:w-9 md:h-9 select-none border flex flex-col justify-center items-center rounded-full`,[t.getDayItemColor.fill,t.getDayItemColor.text]])},[(0,e.createElementVNode)(`div`,{class:(0,e.normalizeClass)([[t.getFont(`tertiary`,t.day)],`leading-none opacity-70 text-[6px] sm:text-[7px] md:text-[8px]`])},(0,e.toDisplayString)(t.day.tertiary),3),(0,e.createElementVNode)(`div`,{class:(0,e.normalizeClass)([[t.getFont(`primary`,t.day)],`leading-tight text-[11px] sm:text-xs md:text-label-md font-medium`])},(0,e.toDisplayString)(t.day.primary),3),(0,e.createElementVNode)(`div`,{class:(0,e.normalizeClass)([[t.getFont(`secondary`,t.day)],`leading-none opacity-70 text-[6px] sm:text-[7px] md:text-[8px]`])},(0,e.toDisplayString)(t.day.secondary),3)],2)])}var h=f(d,[[`render`,m]]),g=(0,e.defineComponent)({name:`CalendarHeaderItem`,components:{CalendarDayBadge:h},props:{days:{type:Array,default:()=>[]},mode:{type:String,default:`monthly`},todayColumnIndex:{type:Number,default:-1}},setup(t){return{itemWidths:(0,e.computed)(()=>`${100/(t.days.length+(t.mode===`monthly`?0:1))}%`)}}}),_={key:0,class:`border shrink-0 w-8 sm:w-9 md:w-25 min-w-8 sm:min-w-9 md:min-w-25 max-w-8 sm:max-w-9 md:max-w-25 border-outline-variant`},v={class:`select-none text-on-surface/50 text-[9px] sm:text-[10px] md:text-label-md truncate max-w-full text-center px-0.5`},y={class:`sm:hidden`},b={class:`hidden sm:inline`};function x(t,n,r,i,a,o){let s=(0,e.resolveComponent)(`CalendarDayBadge`);return(0,e.openBlock)(),(0,e.createElementBlock)(`div`,{class:(0,e.normalizeClass)([`cal-header-row w-full items-stretch flex justify-between`,{"ltr:border-l rtl:border-r border-outline-variant":t.mode===`monthly`}])},[t.mode===`monthly`?(0,e.createCommentVNode)(``,!0):((0,e.openBlock)(),(0,e.createElementBlock)(`div`,_)),((0,e.openBlock)(!0),(0,e.createElementBlock)(e.Fragment,null,(0,e.renderList)(t.days,(n,r)=>((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{class:(0,e.normalizeClass)([`border-y rtl:border-l ltr:border-r border-outline-variant py-1.5 sm:py-2 md:py-4 flex-col flex-1 min-w-0 gap-y-1 sm:gap-y-1.5 md:gap-y-2.5 flex items-center justify-center transition-colors`,{"bg-today-column":r===t.todayColumnIndex}]),key:n.name+r},[t.mode===`monthly`?(0,e.createCommentVNode)(``,!0):((0,e.openBlock)(),(0,e.createBlock)(s,{key:0,day:n},null,8,[`day`])),(0,e.createElementVNode)(`div`,v,[(0,e.createElementVNode)(`span`,y,(0,e.toDisplayString)(n.shortName||n.name),1),(0,e.createElementVNode)(`span`,b,(0,e.toDisplayString)(n.name),1)])],2))),128))],2)}var S=f(g,[[`render`,x],[`__scopeId`,`data-v-ef2978fb`]]),C=(0,e.defineComponent)({name:`CalendarSideItem`,props:{range:{type:Object,required:!0}},setup(n){let{t:i,config:a}=r(),{width:o}=t(),s=(0,e.computed)(()=>o.value<768),c=(0,e.computed)(()=>new Intl.NumberFormat(a.value.locale.startsWith(`fa`)?`fa-IR`:`en-US`)),l=(0,e.computed)(()=>`${100/u.value.length}%`),u=(0,e.computed)(()=>{let e=[],{start:t,end:r}=n.range;for(let n=t;n<r;n++)if(s.value)e.push({raw:n,label:c.value.format(n)});else{let t=``;t=n>=1&&n<=11?`morning`:n===12?`noon`:n>=13&&n<19?`afternoon`:`night`;let r=n;n>12&&(r=n-12),n===0&&(r=12),e.push({raw:n,label:`${c.value.format(r)} ${i(`calendar.dayTimes.${t}`)}`})}return e});return{hoursList:u,itemHeights:l}}}),w={class:`w-8 sm:w-9 md:w-25 min-h-full flex flex-col ltr:border-r ltr:border-r-outline-variant rtl:border-l border-l-outline-variant`};function T(t,n,r,i,a,o){return(0,e.openBlock)(),(0,e.createElementBlock)(`div`,w,[((0,e.openBlock)(!0),(0,e.createElementBlock)(e.Fragment,null,(0,e.renderList)(t.hoursList,n=>((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{key:n.raw,style:(0,e.normalizeStyle)({height:t.itemHeights}),class:`flex items-center text-center justify-center text-[10px] sm:text-xs md:text-label-md text-on-surface/50 border-b min-h-20 border-b-outline-variant select-none`},(0,e.toDisplayString)(n.label),5))),128))])}var E=f(C,[[`render`,T]]),D=(0,e.defineComponent)({name:`CalendarPattern`,setup(){return{getX:e=>-50+(e-1)*25}}}),O={width:`100%`,height:`120%`,viewBox:`0 0 440 221`,preserveAspectRatio:`xMidYMid slice`,class:`text-surface-variant`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`},k=[`x`,`transform`];function A(t,n,r,i,a,o){return(0,e.openBlock)(),(0,e.createElementBlock)(`svg`,O,[((0,e.openBlock)(),(0,e.createElementBlock)(e.Fragment,null,(0,e.renderList)(25,n=>(0,e.createElementVNode)(`rect`,{key:n,x:t.getX(n),y:`220.895`,width:`300`,height:`12`,transform:`rotate(-115 ${t.getX(n)} 220.895)`,fill:`currentColor`},null,8,k)),64))])}var j=f(D,[[`render`,A]]),M=(0,e.defineComponent)({__name:`CalendarItemDisplay`,props:{event:{},mode:{},headers:{},hours:{},position:{},isMobile:{type:Boolean},overlapIndex:{},overlapCount:{}},emits:[`event-click`],setup(t){let n=t,r=(0,e.computed)(()=>n.event.color||`var(--cal-primary)`),i=(0,e.computed)(()=>u(r.value)),a=(0,e.computed)(()=>{if(n.mode===`monthly`)return{zIndex:10,position:`relative`};if(n.position===`static`)return{width:`100%`,height:`36px`,position:`relative`};if(!n.headers?.length||!n.hours)return{display:`none`};let e=new Date(n.event.date).toLocaleDateString(`en-CA`),t=n.headers.findIndex(t=>new Date(t.date).toLocaleDateString(`en-CA`)===e);if(t===-1||n.hours.end-n.hours.start<=0)return{display:`none`};let r=n.event.time.split(`:`).map(Number),i=(r[0]??0)+(r[1]??0)/60,a=(i-n.hours.start)*80,o=100/n.headers.length,s=n.overlapCount??1,c=n.overlapIndex??0,l=o/s,u,d;if(n.event.duration&&n.event.duration>0){let e=Math.min(i+n.event.duration/60,n.hours.end);u=`${Math.max(0,e-i)*80}px`,d=`20px`}else u=n.isMobile&&n.mode===`weekly`?`16px`:`36px`;return{top:`${a}px`,insetInlineStart:`${t*o+c*l}%`,width:`${l}%`,height:u,minHeight:d,zIndex:10,boxSizing:`border-box`}}),o=(0,e.computed)(()=>({backgroundColor:r.value,color:i.value})),s=(0,e.computed)(()=>{let e=r.value,t=i.value;return n.mode===`monthly`?{backgroundColor:e,color:t,opacity:.9,borderLeft:`4px solid ${e}`}:{backgroundColor:e,color:t}});return(n,r)=>((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{id:`event-display`,style:(0,e.normalizeStyle)(a.value),class:(0,e.normalizeClass)([t.position===`static`?``:`absolute`,t.mode===`monthly`?``:t.isMobile&&t.mode===`weekly`?`px-0.5`:`px-1 sm:px-2`]),onClick:r[0]||=(0,e.withModifiers)(e=>n.$emit(`event-click`,t.event,e),[`stop`])},[(0,e.createElementVNode)(`div`,{class:(0,e.normalizeClass)([`flex whitespace-normal items-center rounded cursor-pointer transition-transform text-[10px] sm:text-[11px] leading-tight overflow-hidden`,t.mode===`monthly`?`px-2 relative mb-1 h-6 shrink-0 whitespace-nowrap text-ellipsis w-[calc(100%-16px)]`:t.isMobile&&t.mode===`weekly`?`absolute px-1 h-full w-[calc(100%-4px)] text-[9px] leading-none`:`absolute px-2 sm:px-4 h-full w-[calc(100%-8px)] sm:w-[calc(100%-16px)] sm:rounded-md`]),style:(0,e.normalizeStyle)(s.value)},[(0,e.renderSlot)(n.$slots,`event`,{event:t.event,mode:t.mode},()=>[(0,e.createElementVNode)(`div`,{style:(0,e.normalizeStyle)(o.value),class:`w-full h-full relative z-10 flex items-center gap-x-1 truncate font-medium`},(0,e.toDisplayString)(t.event.title),5)])],6)],6))}}),ee=(0,e.defineComponent)({name:`CalendarDayHolder`,props:{day:{type:Object,required:!0},otherMonth:{type:Boolean,default:!1},events:{type:Array,default:()=>[]}},components:{CalendarDayBadge:h,CalendarPattern:j,CalendarItemDisplay:M},emits:[`open-day`,`event-click`],setup(t,{emit:n}){let{t:i}=r();return{t:i,displayedEvents:(0,e.computed)(()=>t.events.slice(0,2)),openDay:()=>{n(`open-day`,t.day)},remainingCount:(0,e.computed)(()=>t.events.length-2)}}}),te={class:`relative top-0 left-0 w-full h-full p-4 flex flex-col`},ne={key:0,class:`shrink-0`},N={id:`holder`,class:`w-full flex-1 relative flex flex-col gap-y-1.5 mt-2`},P={class:`w-full h-full pointer-events-none absolute top-0 left-0`};function F(t,n,r,i,a,o){let s=(0,e.resolveComponent)(`CalendarDayBadge`),c=(0,e.resolveComponent)(`CalendarItemDisplay`),l=(0,e.resolveComponent)(`CalendarPattern`);return(0,e.openBlock)(),(0,e.createElementBlock)(`div`,{class:(0,e.normalizeClass)([`border border-outline-variant/50 w-full relative h-full transition-colors`,[t.otherMonth?`overflow-hidden`:`overflow-visible`,t.day.isToday&&!t.otherMonth?`bg-today-column`:``]])},[(0,e.createElementVNode)(`div`,te,[t.otherMonth?(0,e.createCommentVNode)(``,!0):((0,e.openBlock)(),(0,e.createElementBlock)(`div`,ne,[(0,e.createVNode)(s,{day:t.day},null,8,[`day`])])),(0,e.createElementVNode)(`div`,N,[((0,e.openBlock)(!0),(0,e.createElementBlock)(e.Fragment,null,(0,e.renderList)(t.displayedEvents,r=>((0,e.openBlock)(),(0,e.createBlock)(c,{key:r.id,position:`static`,event:r,onEventClick:n[0]||=e=>t.$emit(`event-click`,e)},{event:(0,e.withCtx)(n=>[(0,e.renderSlot)(t.$slots,`event`,(0,e.mergeProps)({ref_for:!0},n))]),_:3},8,[`event`]))),128)),t.remainingCount>0?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{key:0,onClick:n[1]||=(...e)=>t.openDay&&t.openDay(...e),class:`w-full relative z-0 h-9 px-2 flex cursor-pointer items-center rounded-lg bg-surface-variant text-label-sm text-on-surface select-none`},(0,e.toDisplayString)(t.t(`calendar.moreItems`,{count:t.remainingCount})),1)):(0,e.createCommentVNode)(``,!0)])]),(0,e.createElementVNode)(`div`,P,[t.otherMonth?((0,e.openBlock)(),(0,e.createBlock)(l,{key:0,class:`absolute inset-0 z-0 pointer-events-none`})):(0,e.createCommentVNode)(``,!0)])],2)}var I=f(ee,[[`render`,F]]),L=(0,e.defineComponent)({name:`CalendarPointer`,props:{mode:{type:String,required:!0},hours:{type:Object,required:!0},headers:{type:Array,required:!0}},setup(t){let n=(0,e.ref)(new Date),r;(0,e.onMounted)(()=>{r=setInterval(()=>{n.value=new Date},6e4)}),(0,e.onUnmounted)(()=>{r&&clearInterval(r)});let i=(0,e.computed)(()=>{if(!t.headers||t.headers.length===0)return{display:`none`};let e=t.headers.findIndex(e=>e.isToday);if(e===-1)return{display:`none`};let r=n.value,i=r.getHours()+r.getMinutes()/60;if(t.mode===`monthly`){let n=Math.ceil(t.headers.length/7),r=Math.floor(e/7),a=e%7,o=100/n,s=i/24*o;return{width:`${100/7}%`,top:`${r*o+s}%`,insetInlineStart:`${a/7*100}%`,transition:``}}if(i<t.hours.start||i>t.hours.end)return{display:`none`};let a=t.headers.length,o=t.hours.end-t.hours.start;return{width:`${100/a}%`,top:`${(i-t.hours.start)/o*100}%`,insetInlineStart:`${e/a*100}%`,transition:``}});return{pointerStyle:i,isVisible:(0,e.computed)(()=>i.value.display!==`none`)}}});function R(t,n,r,i,a,o){return(0,e.withDirectives)(((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{class:`absolute z-20 pointer-events-none -translate-y-1/2 flex items-center`,style:(0,e.normalizeStyle)(t.pointerStyle)},[...n[0]||=[(0,e.createElementVNode)(`div`,{class:`w-2.5 aspect-square rounded-full bg-error shrink-0`},null,-1),(0,e.createElementVNode)(`div`,{class:`h-0.5 flex-1 bg-error`},null,-1)]],4)),[[e.vShow,t.isVisible]])}var z=f(L,[[`render`,R]]),B=(0,e.defineComponent)({name:`MobileDayHolder`,props:{day:{type:Object,required:!0},isSelected:{type:Boolean,default:!1},events:{type:Array,default:()=>[]},expandProgress:{type:Number,default:0},isDragging:{type:Boolean,default:!1}},emits:[`select`],setup(t,{emit:n}){return{canSelect:(0,e.computed)(()=>t.events.length>0),displayedEvents:(0,e.computed)(()=>t.events.slice(0,4)),selectDay:()=>{n(`select`,t.day)},styles:(0,e.computed)(()=>t.isSelected?{border:`border-transparent`,bg:`opacity-100`,text:`text-surface`}:t.day.isToday?{border:`border-primary`,bg:`opacity-0`,text:`text-primary`}:{border:`border-transparent`,bg:`opacity-0`,text:`text-on-surface/50`})}}}),V={class:`w-full h-full absolute inset-0 left-0 top-0 flex items-center justify-center`},H={class:`w-full flex-1 relative flex justify-center`};function U(t,n,r,i,a,o){return(0,e.openBlock)(),(0,e.createElementBlock)(`div`,{onClick:n[0]||=(...e)=>t.selectDay&&t.selectDay(...e),class:(0,e.normalizeClass)([`flex flex-col items-center justify-start gap-y-0.5 w-full overflow-hidden hw-accel-height`,[t.canSelect?`cursor-pointer`:`cursor-default`,t.isDragging?``:`transition-all duration-300 ease-out`]]),style:(0,e.normalizeStyle)({height:`${40+t.expandProgress*16}px`})},[(0,e.createElementVNode)(`div`,{class:(0,e.normalizeClass)([`relative w-8 h-8 shrink-0 rounded-full transition-all duration-200 ease-in-out aspect-square border`,t.styles.border])},[(0,e.createElementVNode)(`div`,{class:(0,e.normalizeClass)([`rounded-full w-full h-full transition-all duration-200 ease-in-out bg-on-surface`,t.styles.bg])},null,2),(0,e.createElementVNode)(`div`,V,[(0,e.createElementVNode)(`div`,{class:(0,e.normalizeClass)([`select-none text-label-md transition-all duration-200 ease-in-out`,t.styles.text])},(0,e.toDisplayString)(t.day.primary),3)])],2),(0,e.createElementVNode)(`div`,H,[t.canSelect?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{key:0,class:(0,e.normalizeClass)([`rounded-full aspect-square w-1.5 bg-error absolute hw-accel`,[t.isDragging?``:`transition-all duration-300 ease-out`]]),style:(0,e.normalizeStyle)({opacity:Math.max(0,1-t.expandProgress*2),transform:`scale(${Math.max(0,1-t.expandProgress*2)})`})},null,6)):(0,e.createCommentVNode)(``,!0),t.canSelect?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{key:1,class:(0,e.normalizeClass)([`w-full flex flex-col gap-y-px absolute top-0 px-0.5 hw-accel`,[t.isDragging?``:`transition-all duration-300 ease-out`]]),style:(0,e.normalizeStyle)({opacity:t.expandProgress,transform:`translateY(${(1-t.expandProgress)*6}px)`})},[((0,e.openBlock)(!0),(0,e.createElementBlock)(e.Fragment,null,(0,e.renderList)(t.displayedEvents,t=>((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{key:t.id,class:`w-full rounded-full shrink-0 min-h-1`,style:(0,e.normalizeStyle)({backgroundColor:t.color||`var(--cal-primary)`})},null,4))),128))],6)):(0,e.createCommentVNode)(``,!0)])],6)}var W=f(B,[[`render`,U],[`__scopeId`,`data-v-d90e616f`]]),G={class:`flex flex-col gap-y-1 p-3 flex-1`},K={class:`text-label-md font-semibold text-on-surface`},q={class:`text-body-sm text-on-surface/60`},J=(0,e.defineComponent)({__name:`MobileEventListItem`,props:{event:{}},emits:[`event-click`],setup(t){return(n,r)=>((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{class:`bg-surface-variant flex flex-col rounded-lg border cursor-pointer`,onClick:r[0]||=(0,e.withModifiers)(e=>n.$emit(`event-click`,t.event,e),[`stop`])},[(0,e.createElementVNode)(`div`,G,[(0,e.renderSlot)(n.$slots,`event`,{event:t.event},()=>[(0,e.createElementVNode)(`div`,K,(0,e.toDisplayString)(t.event.title),1),(0,e.createElementVNode)(`div`,q,(0,e.toDisplayString)(t.event.time),1)])]),(0,e.createElementVNode)(`div`,{class:`w-full h-1 shrink-0 rounded-b-full rounded-t-none`,style:(0,e.normalizeStyle)({backgroundColor:t.event.color||`#3b82f6`})},null,4)]))}}),Y=(0,e.defineComponent)({name:`MobileCalendarGrid`,components:{MobileDayHolder:W,MobileEventListItem:J},props:{days:{type:Array,default:()=>[]},eventsByDay:{type:Object,required:!0},loading:{type:Boolean,default:!1}},emits:[`event-click`],setup(t){let{getWeekDayNames:n}=i(),r=(0,e.computed)(()=>n.value),a=(0,e.ref)(!1),o=(0,e.ref)([]),s=(0,e.ref)(``),c=e=>{let n=new Date(e.date).toDateString();s.value=n;let r=t.eventsByDay.get(n);r&&r.length>0?(o.value=[...r],a.value=!0):a.value=!1};(0,e.onMounted)(()=>{let e=new Date().toDateString();s.value=e;let n=t.eventsByDay.get(e);n&&n.length>0&&(o.value=[...n],a.value=!0)});let l=e=>s.value===new Date(e.date).toDateString(),u=(0,e.ref)(0),d=(0,e.ref)(!1),f=0,p=0,m=!1;function h(e){f=e,p=u.value,d.value=!0}function g(e){if(!d.value)return;let t=e-f;m||=(requestAnimationFrame(()=>{let e=p+t/120;u.value=Math.max(0,Math.min(1,e)),m=!1}),!0)}function _(){d.value=!1,u.value>.25&&p===0?u.value=1:u.value<.75&&p===1?u.value=0:u.value=p}let v=e=>{h(e.touches[0]?.clientY??0)},y=e=>{let t=e.touches[0];t&&g(t.clientY)},b=()=>{_()},x=e=>{h(e.clientY),document.addEventListener(`mousemove`,S),document.addEventListener(`mouseup`,C)},S=e=>{g(e.clientY)},C=()=>{_(),document.removeEventListener(`mousemove`,S),document.removeEventListener(`mouseup`,C)};return{isDaySelected:l,weekDays:r,selectDay:c,handleMouseDown:x,handleMouseLeave:()=>{d.value&&(_(),document.removeEventListener(`mousemove`,S),document.removeEventListener(`mouseup`,C))},selectedDate:s,showEventsList:a,progress:u,isDragging:d,handleTouchStart:v,handleTouchMove:y,handleTouchEnd:b,eventsList:o}}}),X={class:`w-full pt-6 px-4 relative flex flex-col flex-1 overflow-y-auto`},Z={class:`select-none text-[10px] text-on-surface/50 w-full flex items-center justify-between`},re={class:`font-medium`},ie={class:`w-full mt-4 grid grid-cols-7 gap-x-5 gap-y-4`},ae={key:0,class:`transition-all duration-200 ease-in-out overflow-hidden w-full mt-4 flex-1 overflow-y-auto`},oe={class:`py-2 text-on-surface text-title-sm font-bold select-none border-b border-outline-variant mb-2`},se={class:`w-full flex flex-col gap-y-2`};function ce(t,n,r,i,a,o){let s=(0,e.resolveComponent)(`MobileDayHolder`),c=(0,e.resolveComponent)(`MobileEventListItem`);return(0,e.openBlock)(),(0,e.createElementBlock)(`div`,X,[n[6]||=(0,e.createElementVNode)(`div`,{class:`w-full fixed right-0 -translate-y-6 pointer-events-none z-50 h-6 bg-gradient-to-b from-surface to-transparent`},null,-1),(0,e.createElementVNode)(`div`,{id:`mobile-grid`,class:`w-full shrink-0 select-none`,style:{"touch-action":`pan-x`,"user-select":`none`},onTouchstart:n[0]||=(0,e.withModifiers)((...e)=>t.handleTouchStart&&t.handleTouchStart(...e),[`prevent`]),onTouchmove:n[1]||=(0,e.withModifiers)((...e)=>t.handleTouchMove&&t.handleTouchMove(...e),[`prevent`]),onTouchend:n[2]||=(...e)=>t.handleTouchEnd&&t.handleTouchEnd(...e),onMousedown:n[3]||=(0,e.withModifiers)((...e)=>t.handleMouseDown&&t.handleMouseDown(...e),[`prevent`]),onMouseleave:n[4]||=(...e)=>t.handleMouseLeave&&t.handleMouseLeave(...e)},[(0,e.createElementVNode)(`div`,Z,[((0,e.openBlock)(!0),(0,e.createElementBlock)(e.Fragment,null,(0,e.renderList)(t.weekDays,t=>((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{class:`aspect-square w-8 shrink-0 flex items-center justify-center`,key:t.dayOfWeek},[(0,e.createElementVNode)(`div`,re,(0,e.toDisplayString)(t.label),1)]))),128))]),(0,e.createElementVNode)(`div`,ie,[((0,e.openBlock)(!0),(0,e.createElementBlock)(e.Fragment,null,(0,e.renderList)(t.days,(n,r)=>((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{key:r,class:(0,e.normalizeClass)([`transition-all duration-200 rounded-lg`,n.otherMonth?`opacity-0 pointer-events-none`:`opacity-100`,n.isToday&&!n.otherMonth?`bg-today-column`:``])},[(0,e.createVNode)(s,{"is-selected":t.isDaySelected(n),"expand-progress":t.progress,"is-dragging":t.isDragging,onSelect:t.selectDay,day:n,events:t.eventsByDay.get(new Date(n.date).toDateString())||[]},null,8,[`is-selected`,`expand-progress`,`is-dragging`,`onSelect`,`day`,`events`])],2))),128))])],32),t.showEventsList?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,ae,[(0,e.createElementVNode)(`div`,oe,(0,e.toDisplayString)(t.selectedDate),1),(0,e.createElementVNode)(`div`,se,[((0,e.openBlock)(!0),(0,e.createElementBlock)(e.Fragment,null,(0,e.renderList)(t.eventsList,r=>((0,e.openBlock)(),(0,e.createBlock)(c,{key:r.id,event:r,onEventClick:n[5]||=(e,n)=>t.$emit(`event-click`,e,n)},{event:(0,e.withCtx)(({event:n})=>[(0,e.renderSlot)(t.$slots,`event-mobile`,{event:n})]),_:2},1032,[`event`]))),128))])])):(0,e.createCommentVNode)(``,!0)])}var le=f(Y,[[`render`,ce]]),ue={class:`detail-wrapper-stub`},de=(0,e.defineComponent)({__name:`CalendarEventDetailWrapper`,emits:[`lock-scroll`],setup(t){return(t,n)=>((0,e.openBlock)(),(0,e.createElementBlock)(`div`,ue))}}),fe=(0,e.defineComponent)({components:{MobileCalendarGrid:le,CalendarHeaderItem:S,CalendarSideItem:E,CalendarDayHolder:I,CalendarPointer:z,CalendarItemDisplay:M,CalendarEventDetailWrapper:de},props:{range:{type:Object,required:!0},mode:{type:String,default:`monthly`},hours:{type:Object,default:()=>({start:0,end:24})},events:{type:Array,default:()=>[]},loading:{type:Boolean,default:!1},dir:{type:String,default:``}},emits:[`update:mode`,`update:range`,`event-click`],setup(n,{emit:a}){let{t:o}=r(),s=(0,e.computed)(()=>o(`calendar.allDay`)||`All day`),c=(0,e.computed)(()=>n.loading),{width:l}=t(),d=(0,e.computed)(()=>l.value<768),{getCalendarHeaders:f}=i(),p=(0,e.useTemplateRef)(`scrollContainer`),m=(0,e.computed)(()=>f(n.range,n.mode)),h=(0,e.computed)(()=>m.value),g=(0,e.computed)(()=>n.mode===`monthly`?h.value.slice(0,7):h.value),_=(0,e.computed)(()=>n.mode===`daily`||n.mode===`monthly`?-1:h.value.findIndex(e=>e.isToday)),v=(0,e.computed)(()=>{let e=new Map;return n.events.forEach(t=>{let n=new Date(t.date).toDateString();e.has(n)||e.set(n,[]),e.get(n)?.push(t)}),e}),y=(0,e.computed)(()=>{let e=new Map,t=m.value.filter(e=>!e.otherMonth),r=new Set(t.map(e=>new Date(e.date).toDateString()));return n.events.forEach(t=>{let n=new Date(t.date).toDateString();r.has(n)&&(e.has(n)||e.set(n,[]),e.get(n)?.push(t))}),e});function b(e){if(!e.duration||e.duration<=0)return[e];let t=e.time.split(`:`).map(Number),n=(t[0]??0)+(t[1]??0)/60;if(n+e.duration/60<=24)return[e];let r=[],i=new Date(e.date),a=0,o=n,s=e.duration;for(;s>0;){let t=Math.min(s,(24-o)*60),n=Math.floor(o),c=Math.round((o-n)*60);r.push({...e,id:`${e.id}_d${a}`,date:new Date(i.getTime()+a*864e5),time:`${String(n).padStart(2,`0`)}:${String(c).padStart(2,`0`)}`,duration:Math.round(t)}),s-=t,o=0,a++}return r}function x(e){if(e.isFullDay)return!0;if(!e.duration)return!1;let t=new Date(e.date),n=new Date(t.getTime()+e.duration*6e4);return e.duration>=1440||t.getFullYear()!==n.getFullYear()||t.getMonth()!==n.getMonth()||t.getDate()!==n.getDate()}let S=(0,e.computed)(()=>{if(n.mode===`monthly`||!h.value.length)return{events:[],totalRows:0};let e=h.value.map(e=>{let t=new Date(e.date);return new Date(t.getFullYear(),t.getMonth(),t.getDate()).getTime()}),t=e[0],r=e[e.length-1],i=[];for(let a of n.events){if(!x(a))continue;let n=new Date(a.date),o=new Date(n.getFullYear(),n.getMonth(),n.getDate()).getTime(),s=new Date(n.getTime()+(a.duration??0)*6e4),c=new Date(s.getFullYear(),s.getMonth(),s.getDate()).getTime();if(s.getHours()===0&&s.getMinutes()===0&&s.getSeconds()===0&&c>o&&(c-=864e5),c<o&&(c=o),c<t||o>r)continue;let l=e.findIndex(e=>e===o);l===-1&&(l=o<t?0:e.findIndex(e=>e>=o),l===-1&&(l=0));let d=e.findIndex(e=>e===c);d===-1&&(d=c>r?e.length-1:0);let f=Math.max(0,Math.min(l,e.length-1)),p=Math.max(f,Math.min(d,e.length-1)),m=p-f+1;i.push({event:a,startIndex:f,endIndex:p,span:m,row:0,textColor:u(a.color||`var(--cal-primary)`)})}i.sort((e,t)=>e.startIndex-t.startIndex||t.span-e.span);let a=[];for(let e of i){let t=a.findIndex(t=>t<e.startIndex);t===-1?(e.row=a.length,a.push(e.endIndex)):(e.row=t,a[t]=e.endIndex)}return{events:i,totalRows:Math.max(1,a.length)}}),C=(0,e.computed)(()=>{if(n.mode===`monthly`)return[];let e=new Set(h.value.map(e=>new Date(e.date).toLocaleDateString(`en-CA`)));return n.events.filter(e=>!x(e)).flatMap(b).filter(t=>{let n=new Date(t.date).toLocaleDateString(`en-CA`);return e.has(n)})}),w=(0,e.computed)(()=>{let e=[],t=[],r=new Map;for(let e of h.value)r.set(new Date(e.date).toLocaleDateString(`en-CA`),[]);for(let e of C.value)r.get(new Date(e.date).toLocaleDateString(`en-CA`))?.push(e);for(let[i,a]of r.entries()){if(!a.length)continue;let r=h.value.findIndex(e=>new Date(e.date).toLocaleDateString(`en-CA`)===i),o=a.map(e=>{let t=e.time.split(`:`).map(Number),n=(t[0]??0)+(t[1]??0)/60;return{event:e,start:n,end:e.duration?n+e.duration/60:n+.5,col:0}}).sort((e,t)=>e.start-t.start||t.end-e.end),s=[];for(let e of o){let t=s.findIndex(t=>t<=e.start);e.col=t===-1?s.length:t,s[e.col]=e.end}if(n.mode===`daily`)for(let t of o){let n=t.col;for(let e of o)e!==t&&e.start<t.end&&e.end>t.start&&(n=Math.max(n,e.col));e.push({event:t.event,overlapIndex:t.col,overlapCount:n+1})}else{for(let t of o){if(t.col>=2)continue;let n=t.col;for(let e of o)e!==t&&e.col<2&&e.start<t.end&&e.end>t.start&&(n=Math.max(n,e.col));e.push({event:t.event,overlapIndex:t.col,overlapCount:n+1})}let n=o.filter(e=>e.col>=2).sort((e,t)=>e.start-t.start),i=[];for(let e of n){let t=i[i.length-1];!t||e.start>=t.end?i.push({start:e.start,end:e.end,count:1}):(t.end=Math.max(t.end,e.end),t.count++)}for(let e of i){let n=o.filter(t=>t.col<2&&t.start<e.end&&t.end>e.start).reduce((e,t)=>Math.max(e,t.end),e.start);t.push({dayIndex:r,endDecimal:n,count:e.count})}}}return{events:e,overflows:t}}),T=(0,e.computed)(()=>w.value.events),E=(0,e.computed)(()=>w.value.overflows),D=(0,e.computed)(()=>{if(n.mode===`monthly`||C.value.length===0)return n.hours;let e=n.hours.start,t=n.hours.end;for(let n of C.value){let r=n.time.split(`:`).map(Number),i=(r[0]??0)+(r[1]??0)/60,a=n.duration?i+n.duration/60:i;e=Math.min(e,Math.floor(i)),t=Math.max(t,Math.ceil(a))}return{start:Math.max(0,e),end:Math.min(24,t)}}),O=(0,e.ref)(!1),k=e=>{O.value=e},A=e=>{let t=new Date(e.date);a(`update:range`,{start:new Date(t.getFullYear(),t.getMonth(),t.getDate(),0,0,0,0),end:new Date(t.getFullYear(),t.getMonth(),t.getDate(),23,59,59,999)}),a(`update:mode`,`daily`,t)},j=(0,e.ref)(!0);(0,e.watch)([d,()=>n.mode],()=>{j.value=d.value?n.mode!==`monthly`:!0},{immediate:!0});let M=(0,e.computed)(()=>{let e=[];for(let t=D.value.start;t<D.value.end;t++)e.push({raw:t});return e});return(0,e.watch)(()=>n.events,async()=>{if(n.mode===`monthly`||!p.value)return;await(0,e.nextTick)();let t=p.value,r=C.value.map(e=>parseInt(e.time.split(`:`)[0],10));if(r.length===0)return;r.sort((e,t)=>e-t);let i=((r[Math.floor(r.length/2)]??D.value.start)-D.value.start)*80-t.clientHeight/2+80/2;t.scrollTo({top:Math.max(0,i),behavior:`smooth`})},{deep:!0}),{isLoading:c,hoursList:M,effectiveHours:D,scrollContainer:p,headers:h,allHeaders:m,isMobile:d,displayedHeader:g,todayColumnIndex:_,monthlyEventsByDay:y,eventsByDay:v,gridEvents:T,overflowIndicators:E,scrollLocked:O,showMonthly:j,setLockScroll:k,openSpecificDay:A,allDayLabel:s,allDayEventsWithLayout:S}}}),pe=[`dir`],me={ref:`scrollContainer`,class:`flex-1 w-full flex flex-col overflow-y-auto cal-scrollbar relative`},he={key:0,class:`sticky top-0 z-30 bg-surface shrink-0`},ge={key:0,class:`w-full flex items-stretch border-b border-outline-variant bg-surface`},_e={class:`w-8 sm:w-9 md:w-25 min-w-8 sm:min-w-9 md:min-w-25 max-w-8 sm:max-w-9 md:max-w-25 shrink-0 flex items-center justify-center border-r rtl:border-l rtl:border-r-0 border-outline-variant text-[9px] sm:text-[10px] md:text-label-sm font-medium text-on-surface/60 select-none px-1 text-center truncate`},ve={class:`absolute inset-0 w-full flex pointer-events-none`},ye=[`onClick`],be={class:`truncate`},xe={class:`flex-1 w-full flex min-h-0`},Se={class:`flex-1 relative`},Ce={class:`absolute inset-0 w-full flex flex-col pointer-events-none`},we={class:`absolute inset-0 w-full flex pointer-events-none`},Te={class:`relative min-h-full w-full`},Ee=[`onClick`],De={key:2,class:`w-full`};function Oe(t,n,r,i,a,o){let s=(0,e.resolveComponent)(`CalendarEventDetailWrapper`),c=(0,e.resolveComponent)(`CalendarHeaderItem`),l=(0,e.resolveComponent)(`CalendarSideItem`),u=(0,e.resolveComponent)(`CalendarPointer`),d=(0,e.resolveComponent)(`CalendarItemDisplay`),f=(0,e.resolveComponent)(`CalendarDayHolder`),p=(0,e.resolveComponent)(`MobileCalendarGrid`);return(0,e.openBlock)(),(0,e.createElementBlock)(`div`,{class:`w-full h-full flex flex-col bg-surface whitespace-normal`,dir:t.dir},[(0,e.createVNode)(s,{onLockScroll:t.setLockScroll},null,8,[`onLockScroll`]),(0,e.createElementVNode)(`div`,me,[t.showMonthly?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,he,[(0,e.createVNode)(c,{class:`cal-header-row w-full border-b border-surface-variant`,mode:t.mode,days:t.displayedHeader,"today-column-index":t.todayColumnIndex},null,8,[`mode`,`days`,`today-column-index`]),t.mode===`monthly`?(0,e.createCommentVNode)(``,!0):((0,e.openBlock)(),(0,e.createElementBlock)(`div`,ge,[(0,e.createElementVNode)(`div`,_e,(0,e.toDisplayString)(t.allDayLabel),1),(0,e.createElementVNode)(`div`,{class:`flex-1 relative py-1 overflow-hidden`,style:(0,e.normalizeStyle)({minHeight:`${Math.max(1,t.allDayEventsWithLayout.totalRows)*26+6}px`})},[(0,e.createElementVNode)(`div`,ve,[((0,e.openBlock)(!0),(0,e.createElementBlock)(e.Fragment,null,(0,e.renderList)(t.headers,(n,r)=>((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{key:`allday-col-`+r,class:(0,e.normalizeClass)([`h-full ltr:border-r rtl:border-l border-outline-variant flex-1 transition-colors`,{"bg-today-column":r===t.todayColumnIndex}])},null,2))),128))]),((0,e.openBlock)(!0),(0,e.createElementBlock)(e.Fragment,null,(0,e.renderList)(t.allDayEventsWithLayout.events,n=>((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{key:`allday-`+n.event.id,class:`absolute z-10 px-0.5 sm:px-1 pointer-events-auto cursor-pointer`,style:(0,e.normalizeStyle)({top:`${n.row*26+3}px`,height:`22px`,insetInlineStart:`${n.startIndex/t.headers.length*100}%`,width:`${n.span/t.headers.length*100}%`}),onClick:e=>t.$emit(`event-click`,n.event,e)},[(0,e.createElementVNode)(`div`,{class:`w-full h-full rounded px-1.5 sm:px-2 flex items-center text-[10px] sm:text-xs font-medium truncate shadow-2xs transition-all hover:brightness-95 active:scale-[0.99]`,style:(0,e.normalizeStyle)({backgroundColor:n.event.color||`var(--cal-primary)`,color:n.textColor})},[(0,e.renderSlot)(t.$slots,`event`,{event:n.event,mode:t.mode},()=>[(0,e.createElementVNode)(`span`,be,(0,e.toDisplayString)(n.event.title),1)],!0)],4)],12,ye))),128))],4)]))])):(0,e.createCommentVNode)(``,!0),(0,e.createElementVNode)(`div`,xe,[(0,e.createElementVNode)(`div`,{class:(0,e.normalizeClass)([`shrink-0 transition-all duration-300`,[t.mode===`monthly`?`w-0 opacity-0 overflow-hidden`:`w-8 sm:w-9 md:w-25 opacity-100 h-full`]])},[(0,e.createVNode)(l,{class:`w-8 sm:w-9 md:w-25 min-h-full`,range:t.effectiveHours},null,8,[`range`])],2),(0,e.createElementVNode)(`div`,Se,[(0,e.createVNode)(e.Transition,{name:`calendar-view`,mode:`out-in`},{default:(0,e.withCtx)(()=>[t.mode===`monthly`?t.isMobile?t.mode===`monthly`&&t.isMobile?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,De,[(0,e.createVNode)(p,{loading:t.isLoading,days:t.headers,mode:t.mode,"events-by-day":t.monthlyEventsByDay,"is-other-month-func":e=>t.headers.find(t=>new Date(t.date).toDateString()===new Date(e).toDateString())?.otherMonth||!1,onEventClick:n[2]||=e=>t.$emit(`event-click`,e)},(0,e.createSlots)({_:2},[t.$slots[`event-mobile`]?{name:`event-mobile`,fn:(0,e.withCtx)(({event:n})=>[(0,e.renderSlot)(t.$slots,`event-mobile`,{event:n,mode:`monthly-mobile`},void 0,!0)]),key:`0`}:void 0]),1032,[`loading`,`days`,`mode`,`events-by-day`,`is-other-month-func`])])):(0,e.createCommentVNode)(``,!0):((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{key:`month-${t.range?.start?.getTime()}`,class:`w-full grid grid-cols-7 auto-rows-[186px] overflow-hidden`},[((0,e.openBlock)(!0),(0,e.createElementBlock)(e.Fragment,null,(0,e.renderList)(t.allHeaders,(r,i)=>((0,e.openBlock)(),(0,e.createBlock)(f,{key:i,day:r,"other-month":!!r.otherMonth,events:t.monthlyEventsByDay.get(new Date(r.date).toDateString())||[],onOpenDay:e=>t.openSpecificDay(r),onEventClick:n[1]||=e=>t.$emit(`event-click`,e)},(0,e.createSlots)({_:2},[t.$slots.event?{name:`event`,fn:(0,e.withCtx)(n=>[(0,e.renderSlot)(t.$slots,`event`,(0,e.mergeProps)({ref_for:!0},n),void 0,!0)]),key:`0`}:void 0]),1032,[`day`,`other-month`,`events`,`onOpenDay`]))),128))])):((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{key:`time-${t.mode}-${t.range?.start?.getTime()}`,class:`w-full relative`,style:(0,e.normalizeStyle)({height:`${t.hoursList.length*80}px`})},[(0,e.createVNode)(u,{mode:t.mode,hours:t.effectiveHours,headers:t.headers},null,8,[`mode`,`hours`,`headers`]),(0,e.createElementVNode)(`div`,Ce,[((0,e.openBlock)(!0),(0,e.createElementBlock)(e.Fragment,null,(0,e.renderList)(t.effectiveHours.end-t.effectiveHours.start,t=>((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{key:t,class:`w-full border-b border-surface-variant box-border h-20`}))),128))]),(0,e.createElementVNode)(`div`,we,[((0,e.openBlock)(!0),(0,e.createElementBlock)(e.Fragment,null,(0,e.renderList)(t.headers,(n,r)=>((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{class:(0,e.normalizeClass)([`h-full ltr:border-r rtl:border-l border-outline-variant flex-1 transition-colors`,{"bg-today-column":r===t.todayColumnIndex}]),key:`v`+r},null,2))),128))]),(0,e.createElementVNode)(`div`,Te,[((0,e.openBlock)(!0),(0,e.createElementBlock)(e.Fragment,null,(0,e.renderList)(t.gridEvents,r=>((0,e.openBlock)(),(0,e.createBlock)(d,{key:r.event.id,event:r.event,mode:t.mode,headers:t.headers,hours:t.effectiveHours,isMobile:t.isMobile,"overlap-index":r.overlapIndex,"overlap-count":r.overlapCount,onEventClick:n[0]||=e=>t.$emit(`event-click`,e)},(0,e.createSlots)({_:2},[t.$slots.event?{name:`event`,fn:(0,e.withCtx)(n=>[(0,e.renderSlot)(t.$slots,`event`,(0,e.mergeProps)({ref_for:!0},n),void 0,!0)]),key:`0`}:void 0]),1032,[`event`,`mode`,`headers`,`hours`,`isMobile`,`overlap-index`,`overlap-count`]))),128)),((0,e.openBlock)(!0),(0,e.createElementBlock)(e.Fragment,null,(0,e.renderList)(t.overflowIndicators,(n,r)=>((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{key:`of-${r}`,class:`absolute px-0.5 sm:px-1 z-20 pointer-events-auto`,style:(0,e.normalizeStyle)({top:`${(Math.min(n.endDecimal,t.effectiveHours.end)-t.effectiveHours.start)*80}px`,insetInlineStart:`${n.dayIndex*(100/t.headers.length)}%`,width:`${100/t.headers.length}%`})},[(0,e.createElementVNode)(`button`,{class:`w-full text-[8px] sm:text-[10px] leading-none rounded bg-surface-variant hover:bg-surface-variant/80 text-on-surface/70 px-1 sm:px-2 py-0.5 sm:py-1 truncate transition-colors`,onClick:e=>t.openSpecificDay(t.headers[n.dayIndex])},` +`+(0,e.toDisplayString)(n.count)+` more `,9,Ee)],4))),128))])],4))]),_:3})])])],512)],8,pe)}var ke=f(fe,[[`render`,Oe],[`__scopeId`,`data-v-796ab926`]]),Ae=[`dir`],je={ref:`scrollContainer`,class:`flex-1 w-full overflow-y-auto cal-scrollbar px-2 sm:px-4 md:px-6 py-3 sm:py-5`},Me={class:`max-w-4xl mx-auto flex flex-col gap-6`},Ne={class:`agenda-section-header sticky top-0 z-10 py-1.5 flex items-center gap-3 bg-surface/95 backdrop-blur-xs`},Pe={class:`rounded-full bg-surface-variant px-3 py-0.5 text-xs font-semibold text-on-surface/70 border border-outline-variant shadow-xs select-none`},Fe={class:`flex flex-col gap-3`},Ie={class:`agenda-date-col shrink-0 flex flex-col items-start w-24 sm:w-32 md:w-36 pt-0.5 select-none`},Le={class:`sm:hidden`},Re={class:`hidden sm:inline`},ze={class:`mt-1 flex items-center gap-1.5 sm:gap-2`},Be={class:`flex flex-col text-[10px] sm:text-xs leading-none text-on-surface/50 gap-0.5`},Ve={key:0,class:`opacity-70`},He={key:0,class:`mt-1 text-[10px] font-medium text-error truncate max-w-full`},Q={class:`agenda-events-col flex-1 min-w-0 flex flex-col gap-2`},Ue=[`onClick`],We={class:`min-w-0 flex-1 font-semibold text-xs sm:text-sm md:text-base leading-snug truncate`},Ge={key:0,class:`shrink-0 text-[11px] sm:text-xs md:text-sm font-medium opacity-90 flex items-center gap-1.5 whitespace-nowrap`},Ke={key:1,class:`agenda-no-events flex items-center text-xs text-on-surface/40 italic py-2 px-3 rounded-lg border border-dashed border-outline-variant select-none`},$=f((0,e.defineComponent)({__name:`CalendarAgenda`,props:{range:{},events:{default:()=>[]},dir:{default:``}},emits:[`event-click`],setup(t){let n=t,a=(0,e.inject)(`calendarConfig`,(0,e.ref)({locale:`fa-IR`,calendar:`jalaali`,startOfWeek:`saturday`,showHolidays:!1})),{t:o}=r(),{getCalendarHeaders:s}=i(),c=(0,e.computed)(()=>{let e=String(a.value.locale||``).toLowerCase();return e.startsWith(`fa`)||e.startsWith(`ar`)}),l=(0,e.computed)(()=>n.dir?n.dir:c.value?`rtl`:`ltr`);function d(e){if(!e||typeof e!=`string`)return 0;let t=e.split(`:`).map(Number),n=t[0]??0,r=t[1]??0;return Number.isNaN(n)||Number.isNaN(r)?0:n*60+r}let f=[`۰`,`۱`,`۲`,`۳`,`۴`,`۵`,`۶`,`۷`,`۸`,`۹`];function p(e){return c.value?e.replace(/\d/g,e=>f[parseInt(e,10)]??e):e}function m(e){if(e.isFullDay)return o(`calendar.allDay`)||(c.value?`تمام روز`:`All day`);if(!e.time)return``;if(!e.duration||e.duration<=0)return p(e.time);let t=d(e.time)+e.duration,n=Math.floor(t%1440/60),r=t%60,i=`${String(n).padStart(2,`0`)}:${String(r).padStart(2,`0`)}`,a=p(e.time),s=p(i);return c.value?`${a} تا ${s}`:`${a} – ${s}`}function h(e){let t=e.color||`var(--cal-primary, #1a9d90)`;return{backgroundColor:t,color:u(t)}}let g=(0,e.computed)(()=>s(n.range,`agenda`));function _(e,t){if(!e.date)return!1;let n=new Date(t.date),r=new Date(n.getFullYear(),n.getMonth(),n.getDate(),0,0,0,0).getTime(),i=new Date(n.getFullYear(),n.getMonth(),n.getDate(),23,59,59,999).getTime(),a=new Date(e.date),o=d(e.time),s=new Date(a.getFullYear(),a.getMonth(),a.getDate(),0,0,0,0).getTime()+o*60*1e3,c=s;return e.duration&&e.duration>0?c=s+e.duration*60*1e3:e.isFullDay&&(c=new Date(a.getFullYear(),a.getMonth(),a.getDate(),23,59,59,999).getTime()),s<=i&&c>=r}function v(e){return n.events.filter(t=>_(t,e)).sort((e,t)=>{if(e.isFullDay&&!t.isFullDay)return-1;if(!e.isFullDay&&t.isFullDay)return 1;let n=d(e.time),r=d(t.time);return n===r?String(e.title||``).localeCompare(String(t.title||``)):n-r})}function y(e,t){let n=c.value,r=n?`fa-IR`:`en-US`,i=a.value.calendar===`jalaali`?`persian`:a.value.calendar===`islamic`?`islamic-civil`:`gregory`,o=new Intl.DateTimeFormat(`${r}-u-ca-${i}`,{day:`numeric`,month:`short`,year:`numeric`}).formatToParts(e),s=new Intl.DateTimeFormat(`${r}-u-ca-${i}`,{day:`numeric`,month:`short`,year:`numeric`}).formatToParts(t),l=o.find(e=>e.type===`day`)?.value||``,u=o.find(e=>e.type===`month`)?.value||``,d=o.find(e=>e.type===`year`)?.value||``,f=s.find(e=>e.type===`day`)?.value||``,p=s.find(e=>e.type===`month`)?.value||``,m=s.find(e=>e.type===`year`)?.value||``;return d===m&&u===p?n?`${l} – ${f} ${u}`:`${u} ${l} – ${f}`:d===m?n?`${l} ${u} – ${f} ${p}`:`${u} ${l} – ${p} ${f}`:n?`${l} ${u} ${d} – ${f} ${p} ${m}`:`${u} ${l}, ${d} – ${p} ${f}, ${d}`}let b=(0,e.computed)(()=>{let e=g.value;if(!e.length)return[];let t=[];for(let n=0;n<e.length;n+=7){let r=e.slice(n,n+7),i=r[0]?.date||new Date,a=r[r.length-1]?.date||i;t.push({id:`section-${i.getTime()}-${a.getTime()}`,rangeLabel:y(i,a),days:r.map(e=>({day:e,events:v(e)}))})}return t});return(t,n)=>((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{class:`calendar-agenda w-full h-full flex flex-col bg-surface overflow-hidden`,dir:l.value},[(0,e.createElementVNode)(`div`,je,[(0,e.createElementVNode)(`div`,Me,[((0,e.openBlock)(!0),(0,e.createElementBlock)(e.Fragment,null,(0,e.renderList)(b.value,r=>((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{key:r.id,class:`agenda-section flex flex-col gap-3`},[(0,e.createElementVNode)(`div`,Ne,[n[0]||=(0,e.createElementVNode)(`div`,{class:`h-px flex-1 bg-outline-variant`},null,-1),(0,e.createElementVNode)(`span`,Pe,(0,e.toDisplayString)(r.rangeLabel),1),n[1]||=(0,e.createElementVNode)(`div`,{class:`h-px flex-1 bg-outline-variant`},null,-1)]),(0,e.createElementVNode)(`div`,Fe,[((0,e.openBlock)(!0),(0,e.createElementBlock)(e.Fragment,null,(0,e.renderList)(r.days,r=>((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{key:r.day.name+r.day.date.getTime(),class:(0,e.normalizeClass)([`agenda-day-row flex flex-row items-start gap-3 sm:gap-5 p-2.5 sm:p-3.5 rounded-xl border border-outline-variant/60 transition-colors`,{"bg-today-column ring-1 ring-primary/30 border-primary/40":r.day.isToday,"bg-surface":!r.day.isToday}])},[(0,e.createElementVNode)(`div`,Ie,[(0,e.createElementVNode)(`span`,{class:(0,e.normalizeClass)([`text-xs sm:text-sm font-semibold truncate max-w-full`,r.day.isToday?`text-primary font-bold`:`text-on-surface/80`])},[(0,e.createElementVNode)(`span`,Le,(0,e.toDisplayString)(r.day.shortName||r.day.name),1),(0,e.createElementVNode)(`span`,Re,(0,e.toDisplayString)(r.day.name),1)],2),(0,e.createElementVNode)(`div`,ze,[(0,e.createElementVNode)(`div`,{class:(0,e.normalizeClass)([`flex size-7 sm:size-8 items-center justify-center rounded-full text-xs sm:text-sm font-bold shadow-xs shrink-0`,[r.day.isToday?`bg-primary text-surface font-extrabold ring-2 ring-primary/30`:r.day.isWeekend||r.day.isHoliday?`bg-surface-variant text-error border border-outline-variant`:`bg-surface-variant text-on-surface border border-outline-variant`]])},(0,e.toDisplayString)(r.day.primary),3),(0,e.createElementVNode)(`div`,Be,[(0,e.createElementVNode)(`span`,{class:(0,e.normalizeClass)({"text-error":r.day.isWeekend||r.day.isHoliday})},(0,e.toDisplayString)(r.day.secondary),3),r.day.tertiary?((0,e.openBlock)(),(0,e.createElementBlock)(`span`,Ve,(0,e.toDisplayString)(r.day.tertiary),1)):(0,e.createCommentVNode)(``,!0)])]),r.day.holidayTitle?((0,e.openBlock)(),(0,e.createElementBlock)(`span`,He,(0,e.toDisplayString)(r.day.holidayTitle),1)):(0,e.createCommentVNode)(``,!0)]),(0,e.createElementVNode)(`div`,Q,[r.events.length>0?((0,e.openBlock)(!0),(0,e.createElementBlock)(e.Fragment,{key:0},(0,e.renderList)(r.events,r=>((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{key:r.id,class:`agenda-event-card group flex items-center justify-between gap-3 rounded-lg sm:rounded-xl p-2.5 sm:px-4 sm:py-3 border border-black/10 dark:border-white/20 shadow-xs cursor-pointer transition-all hover:scale-[1.006] hover:shadow-md active:scale-[0.995]`,style:(0,e.normalizeStyle)(h(r)),onClick:e=>t.$emit(`event-click`,r)},[(0,e.renderSlot)(t.$slots,`event`,{event:r,mode:`agenda`},()=>[(0,e.createElementVNode)(`div`,We,(0,e.toDisplayString)(r.title),1),r.time||r.isFullDay?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,Ge,[n[2]||=(0,e.createElementVNode)(`svg`,{class:`size-3 sm:size-3.5 opacity-80`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`},[(0,e.createElementVNode)(`circle`,{cx:`12`,cy:`12`,r:`10`}),(0,e.createElementVNode)(`polyline`,{points:`12 6 12 12 16 14`})],-1),(0,e.createElementVNode)(`span`,null,(0,e.toDisplayString)(m(r)),1)])):(0,e.createCommentVNode)(``,!0)],!0)],12,Ue))),128)):((0,e.openBlock)(),(0,e.createElementBlock)(`div`,Ke,(0,e.toDisplayString)((0,e.unref)(o)(`calendar.noEvents`)||`No events`),1))])],2))),128))])]))),128))])],512)],8,Ae))}}),[[`__scopeId`,`data-v-71fb8cbf`]]),qe={key:0,class:`w-full h-full flex flex-col font-sans`,style:{color:`var(--cal-on-surface)`,background:`var(--cal-surface)`}},Je={class:`w-full flex-1 overflow-hidden relative`},Ye=(0,e.defineComponent)({__name:`VueCalendar`,props:{events:{default:()=>[]},mode:{default:`monthly`},locale:{default:`en-US`},calendarType:{default:`gregory`},startOfWeek:{},hours:{default:()=>({start:0,end:24})},initialDate:{default:()=>new Date}},emits:[`update:mode`,`range-change`,`event-click`],setup(t,{expose:n,emit:r}){let a=t,o=r,s=(0,e.ref)(!1),c=(0,e.ref)(new Date(a.initialDate)),l={gregory:`gregory`,persian:`jalaali`,"islamic-uma":`islamic`},u=[`sunday`,`monday`,`tuesday`,`wednesday`,`thursday`,`friday`,`saturday`],d=(0,e.computed)(()=>a.startOfWeek!==void 0&&a.startOfWeek>=0&&a.startOfWeek<=6?a.startOfWeek:a.calendarType===`gregory`?1:6),f=(0,e.computed)(()=>({locale:a.locale,calendar:l[a.calendarType],startOfWeek:u[d.value]??`sunday`,showHolidays:!1}));(0,e.provide)(`calendarConfig`,f),(0,e.provide)(`calendarHolidays`,(0,e.ref)({}));let{getMonthBounds:p,offsetPeriod:m}=i(f),h=(0,e.computed)(()=>{let e=new Date(c.value),t=new Date(c.value);if(a.mode===`daily`)return e.setHours(0,0,0,0),t.setHours(23,59,59,999),{start:e,end:t};if(a.mode===`3days`)return e.setHours(0,0,0,0),t.setTime(e.getTime()),t.setDate(e.getDate()+2),t.setHours(23,59,59,999),{start:e,end:t};if(a.mode===`weekly`){let n=d.value,r=e.getDay(),i=(r<n?7:0)+r-n;return e.setDate(e.getDate()-i),e.setHours(0,0,0,0),t.setTime(e.getTime()),t.setDate(e.getDate()+6),t.setHours(23,59,59,999),{start:e,end:t}}else return p(c.value)}),g=()=>{c.value=m(c.value,a.mode,1),o(`range-change`,h.value)},_=()=>{c.value=m(c.value,a.mode,-1),o(`range-change`,h.value)},v=(e,t)=>{t&&(c.value=new Date(t)),o(`update:mode`,e,t)},y=(e,t)=>{t&&(c.value=new Date(t)),o(`update:mode`,e,t)};return(0,e.watch)(()=>a.initialDate,e=>{e&&(c.value=new Date(e),o(`range-change`,h.value))}),(0,e.watch)(h,e=>{s.value&&o(`range-change`,e)}),(0,e.onMounted)(()=>{s.value=!0,o(`range-change`,h.value)}),n({goNext:g,goPrev:_,setMode:y,currentRange:h,handleModeUpdate:v}),(n,r)=>s.value?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,qe,[(0,e.renderSlot)(n.$slots,`header`,{mode:t.mode,range:h.value,next:g,prev:_,setMode:y}),(0,e.createElementVNode)(`div`,Je,[t.mode===`agenda`?((0,e.openBlock)(),(0,e.createBlock)($,{key:0,range:h.value,events:t.events,onEventClick:r[0]||=e=>n.$emit(`event-click`,e)},(0,e.createSlots)({_:2},[n.$slots.event?{name:`event`,fn:(0,e.withCtx)(t=>[(0,e.renderSlot)(n.$slots,`event`,(0,e.normalizeProps)((0,e.guardReactiveProps)(t)))]),key:`0`}:void 0]),1032,[`range`,`events`])):((0,e.openBlock)(),(0,e.createBlock)(ke,{key:1,range:h.value,mode:t.mode,events:t.events,hours:t.hours,"onUpdate:mode":r[1]||=(e,t)=>v(e,t),onEventClick:r[2]||=e=>n.$emit(`event-click`,e),"onUpdate:range":r[3]||=e=>n.$emit(`range-change`,e)},(0,e.createSlots)({_:2},[n.$slots.event?{name:`event`,fn:(0,e.withCtx)(t=>[(0,e.renderSlot)(n.$slots,`event`,(0,e.normalizeProps)((0,e.guardReactiveProps)(t)))]),key:`0`}:void 0,n.$slots[`event-mobile`]?{name:`event-mobile`,fn:(0,e.withCtx)(t=>[(0,e.renderSlot)(n.$slots,`event-mobile`,(0,e.normalizeProps)((0,e.guardReactiveProps)(t)))]),key:`1`}:void 0]),1032,[`range`,`mode`,`events`,`hours`]))])])):(0,e.createCommentVNode)(``,!0)}});exports.CalendarAgenda=$,exports.VueCalendar=Ye,exports.getAccessibleTextColor=u,exports.getContrastRatio=l,exports.getRelativeLuminance=c,exports.parseColorToRgb=o;
|
package/dist/index.js
CHANGED
|
@@ -292,135 +292,7 @@ var N = () => {
|
|
|
292
292
|
getMonthNames: S,
|
|
293
293
|
getFirstDayOfMonthInActiveCalendar: w
|
|
294
294
|
};
|
|
295
|
-
},
|
|
296
|
-
name: "CalendarDayBadge",
|
|
297
|
-
props: { day: {
|
|
298
|
-
type: Object,
|
|
299
|
-
required: !0
|
|
300
|
-
} },
|
|
301
|
-
setup(e) {
|
|
302
|
-
return {
|
|
303
|
-
getDayItemColor: n(() => {
|
|
304
|
-
let t = e.day, n = "border-outline-variant bg-surface", r = "text-on-surface/50";
|
|
305
|
-
return t.isToday && (n = "bg-today border-outline-variant/0", r = "text-surface"), (t.isWeekend || t.isHoliday) && (r = "text-error"), {
|
|
306
|
-
fill: n,
|
|
307
|
-
text: r
|
|
308
|
-
};
|
|
309
|
-
}),
|
|
310
|
-
getFont: (e, t) => {
|
|
311
|
-
if (String(t.gregorian) === t[e]) return "font-latin";
|
|
312
|
-
}
|
|
313
|
-
};
|
|
314
|
-
}
|
|
315
|
-
}), L = (e, t) => {
|
|
316
|
-
let n = e.__vccOpts || e;
|
|
317
|
-
for (let [e, r] of t) n[e] = r;
|
|
318
|
-
return n;
|
|
319
|
-
}, te = { class: "flex flex-col items-center" };
|
|
320
|
-
function ne(e, t, n, r, i, s) {
|
|
321
|
-
return y(), a("div", te, [o("div", { class: m(["w-7 h-7 sm:w-8 sm:h-8 md:w-9 md:h-9 select-none border flex flex-col justify-center items-center rounded-full", [e.getDayItemColor.fill, e.getDayItemColor.text]]) }, [
|
|
322
|
-
o("div", { class: m([[e.getFont("tertiary", e.day)], "leading-none opacity-70 text-[6px] sm:text-[7px] md:text-[8px]"]) }, T(e.day.tertiary), 3),
|
|
323
|
-
o("div", { class: m([[e.getFont("primary", e.day)], "leading-tight text-[11px] sm:text-xs md:text-label-md font-medium"]) }, T(e.day.primary), 3),
|
|
324
|
-
o("div", { class: m([[e.getFont("secondary", e.day)], "leading-none opacity-70 text-[6px] sm:text-[7px] md:text-[8px]"]) }, T(e.day.secondary), 3)
|
|
325
|
-
], 2)]);
|
|
326
|
-
}
|
|
327
|
-
var R = /* @__PURE__ */ L(ee, [["render", ne]]), re = l({
|
|
328
|
-
name: "CalendarHeaderItem",
|
|
329
|
-
components: { CalendarDayBadge: R },
|
|
330
|
-
props: {
|
|
331
|
-
days: {
|
|
332
|
-
type: Array,
|
|
333
|
-
default: () => []
|
|
334
|
-
},
|
|
335
|
-
mode: {
|
|
336
|
-
type: String,
|
|
337
|
-
default: "monthly"
|
|
338
|
-
},
|
|
339
|
-
todayColumnIndex: {
|
|
340
|
-
type: Number,
|
|
341
|
-
default: -1
|
|
342
|
-
}
|
|
343
|
-
},
|
|
344
|
-
setup(e) {
|
|
345
|
-
return { itemWidths: n(() => `${100 / (e.days.length + (e.mode === "monthly" ? 0 : 1))}%`) };
|
|
346
|
-
}
|
|
347
|
-
}), ie = {
|
|
348
|
-
key: 0,
|
|
349
|
-
class: "border shrink-0 w-8 sm:w-9 md:w-25 min-w-8 sm:min-w-9 md:min-w-25 max-w-8 sm:max-w-9 md:max-w-25 border-outline-variant"
|
|
350
|
-
}, ae = { class: "select-none text-on-surface/50 text-[9px] sm:text-[10px] md:text-label-md truncate max-w-full text-center px-0.5" }, oe = { class: "sm:hidden" }, se = { class: "hidden sm:inline" };
|
|
351
|
-
function z(t, n, s, c, l, u) {
|
|
352
|
-
let d = w("CalendarDayBadge");
|
|
353
|
-
return y(), a("div", { class: m(["cal-header-row w-full items-stretch flex justify-between", { "ltr:border-l rtl:border-r border-outline-variant": t.mode === "monthly" }]) }, [t.mode === "monthly" ? i("", !0) : (y(), a("div", ie)), (y(!0), a(e, null, S(t.days, (e, n) => (y(), a("div", {
|
|
354
|
-
class: m(["border-y rtl:border-l ltr:border-r border-outline-variant py-1.5 sm:py-2 md:py-4 flex-col flex-1 min-w-0 gap-y-1 sm:gap-y-1.5 md:gap-y-2.5 flex items-center justify-center transition-colors", { "bg-today-column": n === t.todayColumnIndex }]),
|
|
355
|
-
key: e.name + n
|
|
356
|
-
}, [t.mode === "monthly" ? i("", !0) : (y(), r(d, {
|
|
357
|
-
key: 0,
|
|
358
|
-
day: e
|
|
359
|
-
}, null, 8, ["day"])), o("div", ae, [o("span", oe, T(e.shortName || e.name), 1), o("span", se, T(e.name), 1)])], 2))), 128))], 2);
|
|
360
|
-
}
|
|
361
|
-
var B = /* @__PURE__ */ L(re, [["render", z], ["__scopeId", "data-v-ef2978fb"]]), V = l({
|
|
362
|
-
name: "CalendarSideItem",
|
|
363
|
-
props: { range: {
|
|
364
|
-
type: Object,
|
|
365
|
-
required: !0
|
|
366
|
-
} },
|
|
367
|
-
setup(e) {
|
|
368
|
-
let { t, config: r } = F(), { width: i } = N(), a = n(() => i.value < 768), o = n(() => new Intl.NumberFormat(r.value.locale.startsWith("fa") ? "fa-IR" : "en-US")), s = n(() => `${100 / c.value.length}%`), c = n(() => {
|
|
369
|
-
let n = [], { start: r, end: i } = e.range;
|
|
370
|
-
for (let e = r; e < i; e++) if (a.value) n.push({
|
|
371
|
-
raw: e,
|
|
372
|
-
label: o.value.format(e)
|
|
373
|
-
});
|
|
374
|
-
else {
|
|
375
|
-
let r = "";
|
|
376
|
-
r = e >= 1 && e <= 11 ? "morning" : e === 12 ? "noon" : e >= 13 && e < 19 ? "afternoon" : "night";
|
|
377
|
-
let i = e;
|
|
378
|
-
e > 12 && (i = e - 12), e === 0 && (i = 12), n.push({
|
|
379
|
-
raw: e,
|
|
380
|
-
label: `${o.value.format(i)} ${t(`calendar.dayTimes.${r}`)}`
|
|
381
|
-
});
|
|
382
|
-
}
|
|
383
|
-
return n;
|
|
384
|
-
});
|
|
385
|
-
return {
|
|
386
|
-
hoursList: c,
|
|
387
|
-
itemHeights: s
|
|
388
|
-
};
|
|
389
|
-
}
|
|
390
|
-
}), H = { class: "w-8 sm:w-9 md:w-25 min-h-full flex flex-col ltr:border-r ltr:border-r-outline-variant rtl:border-l border-l-outline-variant" };
|
|
391
|
-
function U(t, n, r, i, o, s) {
|
|
392
|
-
return y(), a("div", H, [(y(!0), a(e, null, S(t.hoursList, (e) => (y(), a("div", {
|
|
393
|
-
key: e.raw,
|
|
394
|
-
style: g({ height: t.itemHeights }),
|
|
395
|
-
class: "flex items-center text-center justify-center text-[10px] sm:text-xs md:text-label-md text-on-surface/50 border-b min-h-20 border-b-outline-variant select-none"
|
|
396
|
-
}, T(e.label), 5))), 128))]);
|
|
397
|
-
}
|
|
398
|
-
var W = /* @__PURE__ */ L(V, [["render", U]]), G = l({
|
|
399
|
-
name: "CalendarPattern",
|
|
400
|
-
setup() {
|
|
401
|
-
return { getX: (e) => -50 + (e - 1) * 25 };
|
|
402
|
-
}
|
|
403
|
-
}), K = {
|
|
404
|
-
width: "100%",
|
|
405
|
-
height: "120%",
|
|
406
|
-
viewBox: "0 0 440 221",
|
|
407
|
-
preserveAspectRatio: "xMidYMid slice",
|
|
408
|
-
class: "text-surface-variant",
|
|
409
|
-
fill: "none",
|
|
410
|
-
xmlns: "http://www.w3.org/2000/svg"
|
|
411
|
-
}, ce = ["x", "transform"];
|
|
412
|
-
function le(t, n, r, i, s, c) {
|
|
413
|
-
return y(), a("svg", K, [(y(), a(e, null, S(25, (e) => o("rect", {
|
|
414
|
-
key: e,
|
|
415
|
-
x: t.getX(e),
|
|
416
|
-
y: "220.895",
|
|
417
|
-
width: "300",
|
|
418
|
-
height: "12",
|
|
419
|
-
transform: `rotate(-115 ${t.getX(e)} 220.895)`,
|
|
420
|
-
fill: "currentColor"
|
|
421
|
-
}, null, 8, ce)), 64))]);
|
|
422
|
-
}
|
|
423
|
-
var ue = /* @__PURE__ */ L(G, [["render", le]]), q = {
|
|
295
|
+
}, L = {
|
|
424
296
|
"--cal-primary": {
|
|
425
297
|
light: {
|
|
426
298
|
r: 26,
|
|
@@ -518,7 +390,7 @@ var ue = /* @__PURE__ */ L(G, [["render", le]]), q = {
|
|
|
518
390
|
}
|
|
519
391
|
}
|
|
520
392
|
};
|
|
521
|
-
function
|
|
393
|
+
function R(e) {
|
|
522
394
|
if (!e || typeof e != "string") return null;
|
|
523
395
|
let t = e.trim().toLowerCase();
|
|
524
396
|
if (t.startsWith("var(")) {
|
|
@@ -526,16 +398,16 @@ function J(e) {
|
|
|
526
398
|
if (typeof document < "u" && n) try {
|
|
527
399
|
let e = getComputedStyle(document.documentElement).getPropertyValue(n).trim();
|
|
528
400
|
if (e) {
|
|
529
|
-
let t =
|
|
401
|
+
let t = R(e);
|
|
530
402
|
if (t) return t;
|
|
531
403
|
}
|
|
532
404
|
} catch {}
|
|
533
405
|
let r = t.match(/var\([^,]+,\s*([^)]+)\)/);
|
|
534
406
|
if (r && r[1]) {
|
|
535
|
-
let e =
|
|
407
|
+
let e = R(r[1].trim());
|
|
536
408
|
if (e) return e;
|
|
537
409
|
}
|
|
538
|
-
return n &&
|
|
410
|
+
return n && L[n] ? typeof document < "u" && document.documentElement.classList.contains("dark") ? L[n].dark : L[n].light : {
|
|
539
411
|
r: 26,
|
|
540
412
|
g: 157,
|
|
541
413
|
b: 144
|
|
@@ -581,7 +453,7 @@ function J(e) {
|
|
|
581
453
|
let t = e[1].split(/[\s,/]+/).filter(Boolean), n = t[0], r = t[1], i = t[2];
|
|
582
454
|
if (n !== void 0 && r !== void 0 && i !== void 0) {
|
|
583
455
|
let e = parseFloat(n), t = parseFloat(r) / 100, a = parseFloat(i) / 100;
|
|
584
|
-
if (!Number.isNaN(e) && !Number.isNaN(t) && !Number.isNaN(a)) return
|
|
456
|
+
if (!Number.isNaN(e) && !Number.isNaN(t) && !Number.isNaN(a)) return z(e, t, a);
|
|
585
457
|
}
|
|
586
458
|
}
|
|
587
459
|
return null;
|
|
@@ -650,7 +522,7 @@ function J(e) {
|
|
|
650
522
|
};
|
|
651
523
|
return n[t] ? n[t] : null;
|
|
652
524
|
}
|
|
653
|
-
function
|
|
525
|
+
function z(e, t, n) {
|
|
654
526
|
let r = (e % 360 + 360) % 360, i = (1 - Math.abs(2 * n - 1)) * t, a = i * (1 - Math.abs(r / 60 % 2 - 1)), o = n - i / 2, s = 0, c = 0, l = 0;
|
|
655
527
|
return r >= 0 && r < 60 ? (s = i, c = a) : r >= 60 && r < 120 ? (s = a, c = i) : r >= 120 && r < 180 ? (c = i, l = a) : r >= 180 && r < 240 ? (c = a, l = i) : r >= 240 && r < 300 ? (s = a, l = i) : (s = i, l = a), {
|
|
656
528
|
r: Math.round((s + o) * 255),
|
|
@@ -658,46 +530,174 @@ function de(e, t, n) {
|
|
|
658
530
|
b: Math.round((l + o) * 255)
|
|
659
531
|
};
|
|
660
532
|
}
|
|
661
|
-
function
|
|
533
|
+
function B(e, t, n) {
|
|
662
534
|
let r = (e) => {
|
|
663
535
|
let t = Math.max(0, Math.min(255, e)) / 255;
|
|
664
536
|
return t <= .04045 ? t / 12.92 : ((t + .055) / 1.055) ** 2.4;
|
|
665
537
|
}, i = r(e), a = r(t), o = r(n);
|
|
666
538
|
return .2126 * i + .7152 * a + .0722 * o;
|
|
667
539
|
}
|
|
668
|
-
function
|
|
669
|
-
let n = typeof e == "string" ?
|
|
540
|
+
function ee(e, t) {
|
|
541
|
+
let n = typeof e == "string" ? R(e) ?? {
|
|
670
542
|
r: 0,
|
|
671
543
|
g: 0,
|
|
672
544
|
b: 0
|
|
673
|
-
} : e, r = typeof t == "string" ?
|
|
545
|
+
} : e, r = typeof t == "string" ? R(t) ?? {
|
|
674
546
|
r: 255,
|
|
675
547
|
g: 255,
|
|
676
548
|
b: 255
|
|
677
|
-
} : t, i =
|
|
549
|
+
} : t, i = B(n.r, n.g, n.b), a = B(r.r, r.g, r.b), o = Math.max(i, a), s = Math.min(i, a);
|
|
678
550
|
return (o + .05) / (s + .05);
|
|
679
551
|
}
|
|
680
|
-
function
|
|
552
|
+
function V(e, t) {
|
|
681
553
|
let n = t?.darkColor ?? "#0f172a", r = t?.lightColor ?? "#ffffff";
|
|
682
554
|
if (!e) return r;
|
|
683
|
-
let i =
|
|
555
|
+
let i = R(e) ?? {
|
|
684
556
|
r: 26,
|
|
685
557
|
g: 157,
|
|
686
558
|
b: 144
|
|
687
|
-
}, a =
|
|
559
|
+
}, a = R(n) ?? {
|
|
688
560
|
r: 15,
|
|
689
561
|
g: 23,
|
|
690
562
|
b: 42
|
|
691
|
-
}, o =
|
|
563
|
+
}, o = R(r) ?? {
|
|
692
564
|
r: 255,
|
|
693
565
|
g: 255,
|
|
694
566
|
b: 255
|
|
695
|
-
}, s =
|
|
567
|
+
}, s = B(i.r, i.g, i.b), c = B(a.r, a.g, a.b), l = B(o.r, o.g, o.b), u = (Math.max(s, c) + .05) / (Math.min(s, c) + .05);
|
|
696
568
|
return (Math.max(s, l) + .05) / (Math.min(s, l) + .05) >= u ? r : n;
|
|
697
569
|
}
|
|
698
570
|
//#endregion
|
|
699
|
-
//#region src/components/
|
|
700
|
-
var
|
|
571
|
+
//#region src/components/CalendarDayBadge.vue?vue&type=script&lang.ts
|
|
572
|
+
var te = l({
|
|
573
|
+
name: "CalendarDayBadge",
|
|
574
|
+
props: { day: {
|
|
575
|
+
type: Object,
|
|
576
|
+
required: !0
|
|
577
|
+
} },
|
|
578
|
+
setup(e) {
|
|
579
|
+
return {
|
|
580
|
+
getDayItemColor: n(() => {
|
|
581
|
+
let t = e.day, n = "border-outline-variant bg-surface", r = "text-on-surface/50";
|
|
582
|
+
return t.isToday && (n = "bg-today border-outline-variant/0", r = "text-surface"), (t.isWeekend || t.isHoliday) && (r = "text-error"), {
|
|
583
|
+
fill: n,
|
|
584
|
+
text: r
|
|
585
|
+
};
|
|
586
|
+
}),
|
|
587
|
+
getFont: (e, t) => {
|
|
588
|
+
if (String(t.gregorian) === t[e]) return "font-latin";
|
|
589
|
+
}
|
|
590
|
+
};
|
|
591
|
+
}
|
|
592
|
+
}), H = (e, t) => {
|
|
593
|
+
let n = e.__vccOpts || e;
|
|
594
|
+
for (let [e, r] of t) n[e] = r;
|
|
595
|
+
return n;
|
|
596
|
+
}, ne = { class: "flex flex-col items-center" };
|
|
597
|
+
function re(e, t, n, r, i, s) {
|
|
598
|
+
return y(), a("div", ne, [o("div", { class: m(["w-7 h-7 sm:w-8 sm:h-8 md:w-9 md:h-9 select-none border flex flex-col justify-center items-center rounded-full", [e.getDayItemColor.fill, e.getDayItemColor.text]]) }, [
|
|
599
|
+
o("div", { class: m([[e.getFont("tertiary", e.day)], "leading-none opacity-70 text-[6px] sm:text-[7px] md:text-[8px]"]) }, T(e.day.tertiary), 3),
|
|
600
|
+
o("div", { class: m([[e.getFont("primary", e.day)], "leading-tight text-[11px] sm:text-xs md:text-label-md font-medium"]) }, T(e.day.primary), 3),
|
|
601
|
+
o("div", { class: m([[e.getFont("secondary", e.day)], "leading-none opacity-70 text-[6px] sm:text-[7px] md:text-[8px]"]) }, T(e.day.secondary), 3)
|
|
602
|
+
], 2)]);
|
|
603
|
+
}
|
|
604
|
+
var U = /* @__PURE__ */ H(te, [["render", re]]), W = l({
|
|
605
|
+
name: "CalendarHeaderItem",
|
|
606
|
+
components: { CalendarDayBadge: U },
|
|
607
|
+
props: {
|
|
608
|
+
days: {
|
|
609
|
+
type: Array,
|
|
610
|
+
default: () => []
|
|
611
|
+
},
|
|
612
|
+
mode: {
|
|
613
|
+
type: String,
|
|
614
|
+
default: "monthly"
|
|
615
|
+
},
|
|
616
|
+
todayColumnIndex: {
|
|
617
|
+
type: Number,
|
|
618
|
+
default: -1
|
|
619
|
+
}
|
|
620
|
+
},
|
|
621
|
+
setup(e) {
|
|
622
|
+
return { itemWidths: n(() => `${100 / (e.days.length + (e.mode === "monthly" ? 0 : 1))}%`) };
|
|
623
|
+
}
|
|
624
|
+
}), G = {
|
|
625
|
+
key: 0,
|
|
626
|
+
class: "border shrink-0 w-8 sm:w-9 md:w-25 min-w-8 sm:min-w-9 md:min-w-25 max-w-8 sm:max-w-9 md:max-w-25 border-outline-variant"
|
|
627
|
+
}, K = { class: "select-none text-on-surface/50 text-[9px] sm:text-[10px] md:text-label-md truncate max-w-full text-center px-0.5" }, q = { class: "sm:hidden" }, J = { class: "hidden sm:inline" };
|
|
628
|
+
function Y(t, n, s, c, l, u) {
|
|
629
|
+
let d = w("CalendarDayBadge");
|
|
630
|
+
return y(), a("div", { class: m(["cal-header-row w-full items-stretch flex justify-between", { "ltr:border-l rtl:border-r border-outline-variant": t.mode === "monthly" }]) }, [t.mode === "monthly" ? i("", !0) : (y(), a("div", G)), (y(!0), a(e, null, S(t.days, (e, n) => (y(), a("div", {
|
|
631
|
+
class: m(["border-y rtl:border-l ltr:border-r border-outline-variant py-1.5 sm:py-2 md:py-4 flex-col flex-1 min-w-0 gap-y-1 sm:gap-y-1.5 md:gap-y-2.5 flex items-center justify-center transition-colors", { "bg-today-column": n === t.todayColumnIndex }]),
|
|
632
|
+
key: e.name + n
|
|
633
|
+
}, [t.mode === "monthly" ? i("", !0) : (y(), r(d, {
|
|
634
|
+
key: 0,
|
|
635
|
+
day: e
|
|
636
|
+
}, null, 8, ["day"])), o("div", K, [o("span", q, T(e.shortName || e.name), 1), o("span", J, T(e.name), 1)])], 2))), 128))], 2);
|
|
637
|
+
}
|
|
638
|
+
var X = /* @__PURE__ */ H(W, [["render", Y], ["__scopeId", "data-v-ef2978fb"]]), ie = l({
|
|
639
|
+
name: "CalendarSideItem",
|
|
640
|
+
props: { range: {
|
|
641
|
+
type: Object,
|
|
642
|
+
required: !0
|
|
643
|
+
} },
|
|
644
|
+
setup(e) {
|
|
645
|
+
let { t, config: r } = F(), { width: i } = N(), a = n(() => i.value < 768), o = n(() => new Intl.NumberFormat(r.value.locale.startsWith("fa") ? "fa-IR" : "en-US")), s = n(() => `${100 / c.value.length}%`), c = n(() => {
|
|
646
|
+
let n = [], { start: r, end: i } = e.range;
|
|
647
|
+
for (let e = r; e < i; e++) if (a.value) n.push({
|
|
648
|
+
raw: e,
|
|
649
|
+
label: o.value.format(e)
|
|
650
|
+
});
|
|
651
|
+
else {
|
|
652
|
+
let r = "";
|
|
653
|
+
r = e >= 1 && e <= 11 ? "morning" : e === 12 ? "noon" : e >= 13 && e < 19 ? "afternoon" : "night";
|
|
654
|
+
let i = e;
|
|
655
|
+
e > 12 && (i = e - 12), e === 0 && (i = 12), n.push({
|
|
656
|
+
raw: e,
|
|
657
|
+
label: `${o.value.format(i)} ${t(`calendar.dayTimes.${r}`)}`
|
|
658
|
+
});
|
|
659
|
+
}
|
|
660
|
+
return n;
|
|
661
|
+
});
|
|
662
|
+
return {
|
|
663
|
+
hoursList: c,
|
|
664
|
+
itemHeights: s
|
|
665
|
+
};
|
|
666
|
+
}
|
|
667
|
+
}), ae = { class: "w-8 sm:w-9 md:w-25 min-h-full flex flex-col ltr:border-r ltr:border-r-outline-variant rtl:border-l border-l-outline-variant" };
|
|
668
|
+
function oe(t, n, r, i, o, s) {
|
|
669
|
+
return y(), a("div", ae, [(y(!0), a(e, null, S(t.hoursList, (e) => (y(), a("div", {
|
|
670
|
+
key: e.raw,
|
|
671
|
+
style: g({ height: t.itemHeights }),
|
|
672
|
+
class: "flex items-center text-center justify-center text-[10px] sm:text-xs md:text-label-md text-on-surface/50 border-b min-h-20 border-b-outline-variant select-none"
|
|
673
|
+
}, T(e.label), 5))), 128))]);
|
|
674
|
+
}
|
|
675
|
+
var se = /* @__PURE__ */ H(ie, [["render", oe]]), ce = l({
|
|
676
|
+
name: "CalendarPattern",
|
|
677
|
+
setup() {
|
|
678
|
+
return { getX: (e) => -50 + (e - 1) * 25 };
|
|
679
|
+
}
|
|
680
|
+
}), le = {
|
|
681
|
+
width: "100%",
|
|
682
|
+
height: "120%",
|
|
683
|
+
viewBox: "0 0 440 221",
|
|
684
|
+
preserveAspectRatio: "xMidYMid slice",
|
|
685
|
+
class: "text-surface-variant",
|
|
686
|
+
fill: "none",
|
|
687
|
+
xmlns: "http://www.w3.org/2000/svg"
|
|
688
|
+
}, ue = ["x", "transform"];
|
|
689
|
+
function de(t, n, r, i, s, c) {
|
|
690
|
+
return y(), a("svg", le, [(y(), a(e, null, S(25, (e) => o("rect", {
|
|
691
|
+
key: e,
|
|
692
|
+
x: t.getX(e),
|
|
693
|
+
y: "220.895",
|
|
694
|
+
width: "300",
|
|
695
|
+
height: "12",
|
|
696
|
+
transform: `rotate(-115 ${t.getX(e)} 220.895)`,
|
|
697
|
+
fill: "currentColor"
|
|
698
|
+
}, null, 8, ue)), 64))]);
|
|
699
|
+
}
|
|
700
|
+
var fe = /* @__PURE__ */ H(ce, [["render", de]]), Z = /* @__PURE__ */ l({
|
|
701
701
|
__name: "CalendarItemDisplay",
|
|
702
702
|
props: {
|
|
703
703
|
event: {},
|
|
@@ -711,7 +711,7 @@ var Z = /* @__PURE__ */ l({
|
|
|
711
711
|
},
|
|
712
712
|
emits: ["event-click"],
|
|
713
713
|
setup(e) {
|
|
714
|
-
let t = e, r = n(() => t.event.color || "var(--cal-primary)"), i = n(() =>
|
|
714
|
+
let t = e, r = n(() => t.event.color || "var(--cal-primary)"), i = n(() => V(r.value)), s = n(() => {
|
|
715
715
|
if (t.mode === "monthly") return {
|
|
716
716
|
zIndex: 10,
|
|
717
717
|
position: "relative"
|
|
@@ -786,8 +786,8 @@ var Z = /* @__PURE__ */ l({
|
|
|
786
786
|
}
|
|
787
787
|
},
|
|
788
788
|
components: {
|
|
789
|
-
CalendarDayBadge:
|
|
790
|
-
CalendarPattern:
|
|
789
|
+
CalendarDayBadge: U,
|
|
790
|
+
CalendarPattern: fe,
|
|
791
791
|
CalendarItemDisplay: Z
|
|
792
792
|
},
|
|
793
793
|
emits: ["open-day", "event-click"],
|
|
@@ -828,7 +828,7 @@ function ve(t, n, s, l, u, d) {
|
|
|
828
828
|
class: "absolute inset-0 z-0 pointer-events-none"
|
|
829
829
|
})) : i("", !0)])], 2);
|
|
830
830
|
}
|
|
831
|
-
var ye = /* @__PURE__ */
|
|
831
|
+
var ye = /* @__PURE__ */ H(pe, [["render", ve]]), be = l({
|
|
832
832
|
name: "CalendarPointer",
|
|
833
833
|
props: {
|
|
834
834
|
mode: {
|
|
@@ -890,7 +890,7 @@ function xe(e, t, n, r, i, s) {
|
|
|
890
890
|
style: g(e.pointerStyle)
|
|
891
891
|
}, [...t[0] ||= [o("div", { class: "w-2.5 aspect-square rounded-full bg-error shrink-0" }, null, -1), o("div", { class: "h-0.5 flex-1 bg-error" }, null, -1)]], 4)), [[O, e.isVisible]]);
|
|
892
892
|
}
|
|
893
|
-
var Se = /* @__PURE__ */
|
|
893
|
+
var Se = /* @__PURE__ */ H(be, [["render", xe]]), Ce = l({
|
|
894
894
|
name: "MobileDayHolder",
|
|
895
895
|
props: {
|
|
896
896
|
day: {
|
|
@@ -963,7 +963,7 @@ function Ee(t, n, r, s, c, l) {
|
|
|
963
963
|
style: g({ backgroundColor: e.color || "var(--cal-primary)" })
|
|
964
964
|
}, null, 4))), 128))], 6)) : i("", !0)])], 6);
|
|
965
965
|
}
|
|
966
|
-
var De = /* @__PURE__ */
|
|
966
|
+
var De = /* @__PURE__ */ H(Ce, [["render", Ee], ["__scopeId", "data-v-d90e616f"]]), Oe = { class: "flex flex-col gap-y-1 p-3 flex-1" }, ke = { class: "text-label-md font-semibold text-on-surface" }, Ae = { class: "text-body-sm text-on-surface/60" }, je = l({
|
|
967
967
|
name: "MobileCalendarGrid",
|
|
968
968
|
components: {
|
|
969
969
|
MobileDayHolder: De,
|
|
@@ -1112,11 +1112,11 @@ function ze(t, n, s, l, u, d) {
|
|
|
1112
1112
|
}, 1032, ["event"]))), 128))])])) : i("", !0)
|
|
1113
1113
|
]);
|
|
1114
1114
|
}
|
|
1115
|
-
var Be = /* @__PURE__ */
|
|
1115
|
+
var Be = /* @__PURE__ */ H(je, [["render", ze]]), Ve = { class: "detail-wrapper-stub" }, He = l({
|
|
1116
1116
|
components: {
|
|
1117
1117
|
MobileCalendarGrid: Be,
|
|
1118
|
-
CalendarHeaderItem:
|
|
1119
|
-
CalendarSideItem:
|
|
1118
|
+
CalendarHeaderItem: X,
|
|
1119
|
+
CalendarSideItem: se,
|
|
1120
1120
|
CalendarDayHolder: ye,
|
|
1121
1121
|
CalendarPointer: Se,
|
|
1122
1122
|
CalendarItemDisplay: Z,
|
|
@@ -1163,20 +1163,20 @@ var Be = /* @__PURE__ */ L(je, [["render", ze]]), Ve = { class: "detail-wrapper-
|
|
|
1163
1163
|
"event-click"
|
|
1164
1164
|
],
|
|
1165
1165
|
setup(e, { emit: t }) {
|
|
1166
|
-
let r = n(() => e.loading), { width:
|
|
1166
|
+
let { t: r } = F(), i = n(() => r("calendar.allDay") || "All day"), a = n(() => e.loading), { width: o } = N(), s = n(() => o.value < 768), { getCalendarHeaders: c } = I(), l = D("scrollContainer"), u = n(() => c(e.range, e.mode)), d = n(() => u.value), f = n(() => e.mode === "monthly" ? d.value.slice(0, 7) : d.value), m = n(() => e.mode === "daily" || e.mode === "monthly" ? -1 : d.value.findIndex((e) => e.isToday)), h = n(() => {
|
|
1167
1167
|
let t = /* @__PURE__ */ new Map();
|
|
1168
1168
|
return e.events.forEach((e) => {
|
|
1169
1169
|
let n = new Date(e.date).toDateString();
|
|
1170
1170
|
t.has(n) || t.set(n, []), t.get(n)?.push(e);
|
|
1171
1171
|
}), t;
|
|
1172
|
-
}),
|
|
1173
|
-
let t = /* @__PURE__ */ new Map(), n =
|
|
1172
|
+
}), g = n(() => {
|
|
1173
|
+
let t = /* @__PURE__ */ new Map(), n = u.value.filter((e) => !e.otherMonth), r = new Set(n.map((e) => new Date(e.date).toDateString()));
|
|
1174
1174
|
return e.events.forEach((e) => {
|
|
1175
1175
|
let n = new Date(e.date).toDateString();
|
|
1176
1176
|
r.has(n) && (t.has(n) || t.set(n, []), t.get(n)?.push(e));
|
|
1177
1177
|
}), t;
|
|
1178
1178
|
});
|
|
1179
|
-
function
|
|
1179
|
+
function _(e) {
|
|
1180
1180
|
if (!e.duration || e.duration <= 0) return [e];
|
|
1181
1181
|
let t = e.time.split(":").map(Number), n = (t[0] ?? 0) + (t[1] ?? 0) / 60;
|
|
1182
1182
|
if (n + e.duration / 60 <= 24) return [e];
|
|
@@ -1193,20 +1193,63 @@ var Be = /* @__PURE__ */ L(je, [["render", ze]]), Ve = { class: "detail-wrapper-
|
|
|
1193
1193
|
}
|
|
1194
1194
|
return r;
|
|
1195
1195
|
}
|
|
1196
|
-
|
|
1196
|
+
function v(e) {
|
|
1197
|
+
if (e.isFullDay) return !0;
|
|
1198
|
+
if (!e.duration) return !1;
|
|
1199
|
+
let t = new Date(e.date), n = new Date(t.getTime() + e.duration * 6e4);
|
|
1200
|
+
return e.duration >= 1440 || t.getFullYear() !== n.getFullYear() || t.getMonth() !== n.getMonth() || t.getDate() !== n.getDate();
|
|
1201
|
+
}
|
|
1202
|
+
let y = n(() => {
|
|
1203
|
+
if (e.mode === "monthly" || !d.value.length) return {
|
|
1204
|
+
events: [],
|
|
1205
|
+
totalRows: 0
|
|
1206
|
+
};
|
|
1207
|
+
let t = d.value.map((e) => {
|
|
1208
|
+
let t = new Date(e.date);
|
|
1209
|
+
return new Date(t.getFullYear(), t.getMonth(), t.getDate()).getTime();
|
|
1210
|
+
}), n = t[0], r = t[t.length - 1], i = [];
|
|
1211
|
+
for (let a of e.events) {
|
|
1212
|
+
if (!v(a)) continue;
|
|
1213
|
+
let e = new Date(a.date), o = new Date(e.getFullYear(), e.getMonth(), e.getDate()).getTime(), s = new Date(e.getTime() + (a.duration ?? 0) * 6e4), c = new Date(s.getFullYear(), s.getMonth(), s.getDate()).getTime();
|
|
1214
|
+
if (s.getHours() === 0 && s.getMinutes() === 0 && s.getSeconds() === 0 && c > o && (c -= 864e5), c < o && (c = o), c < n || o > r) continue;
|
|
1215
|
+
let l = t.findIndex((e) => e === o);
|
|
1216
|
+
l === -1 && (l = o < n ? 0 : t.findIndex((e) => e >= o), l === -1 && (l = 0));
|
|
1217
|
+
let u = t.findIndex((e) => e === c);
|
|
1218
|
+
u === -1 && (u = c > r ? t.length - 1 : 0);
|
|
1219
|
+
let d = Math.max(0, Math.min(l, t.length - 1)), f = Math.max(d, Math.min(u, t.length - 1)), p = f - d + 1;
|
|
1220
|
+
i.push({
|
|
1221
|
+
event: a,
|
|
1222
|
+
startIndex: d,
|
|
1223
|
+
endIndex: f,
|
|
1224
|
+
span: p,
|
|
1225
|
+
row: 0,
|
|
1226
|
+
textColor: V(a.color || "var(--cal-primary)")
|
|
1227
|
+
});
|
|
1228
|
+
}
|
|
1229
|
+
i.sort((e, t) => e.startIndex - t.startIndex || t.span - e.span);
|
|
1230
|
+
let a = [];
|
|
1231
|
+
for (let e of i) {
|
|
1232
|
+
let t = a.findIndex((t) => t < e.startIndex);
|
|
1233
|
+
t === -1 ? (e.row = a.length, a.push(e.endIndex)) : (e.row = t, a[t] = e.endIndex);
|
|
1234
|
+
}
|
|
1235
|
+
return {
|
|
1236
|
+
events: i,
|
|
1237
|
+
totalRows: Math.max(1, a.length)
|
|
1238
|
+
};
|
|
1239
|
+
}), b = n(() => {
|
|
1197
1240
|
if (e.mode === "monthly") return [];
|
|
1198
|
-
let t = new Set(
|
|
1199
|
-
return e.events.flatMap(
|
|
1241
|
+
let t = new Set(d.value.map((e) => new Date(e.date).toLocaleDateString("en-CA")));
|
|
1242
|
+
return e.events.filter((e) => !v(e)).flatMap(_).filter((e) => {
|
|
1200
1243
|
let n = new Date(e.date).toLocaleDateString("en-CA");
|
|
1201
1244
|
return t.has(n);
|
|
1202
1245
|
});
|
|
1203
|
-
}),
|
|
1246
|
+
}), S = n(() => {
|
|
1204
1247
|
let t = [], n = [], r = /* @__PURE__ */ new Map();
|
|
1205
|
-
for (let e of
|
|
1206
|
-
for (let e of
|
|
1248
|
+
for (let e of d.value) r.set(new Date(e.date).toLocaleDateString("en-CA"), []);
|
|
1249
|
+
for (let e of b.value) r.get(new Date(e.date).toLocaleDateString("en-CA"))?.push(e);
|
|
1207
1250
|
for (let [i, a] of r.entries()) {
|
|
1208
1251
|
if (!a.length) continue;
|
|
1209
|
-
let r =
|
|
1252
|
+
let r = d.value.findIndex((e) => new Date(e.date).toLocaleDateString("en-CA") === i), o = a.map((e) => {
|
|
1210
1253
|
let t = e.time.split(":").map(Number), n = (t[0] ?? 0) + (t[1] ?? 0) / 60;
|
|
1211
1254
|
return {
|
|
1212
1255
|
event: e,
|
|
@@ -1262,10 +1305,10 @@ var Be = /* @__PURE__ */ L(je, [["render", ze]]), Ve = { class: "detail-wrapper-
|
|
|
1262
1305
|
events: t,
|
|
1263
1306
|
overflows: n
|
|
1264
1307
|
};
|
|
1265
|
-
}),
|
|
1266
|
-
if (e.mode === "monthly" ||
|
|
1308
|
+
}), C = n(() => S.value.events), w = n(() => S.value.overflows), T = n(() => {
|
|
1309
|
+
if (e.mode === "monthly" || b.value.length === 0) return e.hours;
|
|
1267
1310
|
let t = e.hours.start, n = e.hours.end;
|
|
1268
|
-
for (let e of
|
|
1311
|
+
for (let e of b.value) {
|
|
1269
1312
|
let r = e.time.split(":").map(Number), i = (r[0] ?? 0) + (r[1] ?? 0) / 60, a = e.duration ? i + e.duration / 60 : i;
|
|
1270
1313
|
t = Math.min(t, Math.floor(i)), n = Math.max(n, Math.ceil(a));
|
|
1271
1314
|
}
|
|
@@ -1273,52 +1316,54 @@ var Be = /* @__PURE__ */ L(je, [["render", ze]]), Ve = { class: "detail-wrapper-
|
|
|
1273
1316
|
start: Math.max(0, t),
|
|
1274
1317
|
end: Math.min(24, n)
|
|
1275
1318
|
};
|
|
1276
|
-
}),
|
|
1277
|
-
|
|
1278
|
-
},
|
|
1319
|
+
}), E = x(!1), O = (e) => {
|
|
1320
|
+
E.value = e;
|
|
1321
|
+
}, A = (e) => {
|
|
1279
1322
|
let n = new Date(e.date);
|
|
1280
1323
|
t("update:range", {
|
|
1281
1324
|
start: new Date(n.getFullYear(), n.getMonth(), n.getDate(), 0, 0, 0, 0),
|
|
1282
1325
|
end: new Date(n.getFullYear(), n.getMonth(), n.getDate(), 23, 59, 59, 999)
|
|
1283
1326
|
}), t("update:mode", "daily", n);
|
|
1284
|
-
},
|
|
1285
|
-
k([
|
|
1286
|
-
|
|
1327
|
+
}, j = x(!0);
|
|
1328
|
+
k([s, () => e.mode], () => {
|
|
1329
|
+
j.value = s.value ? e.mode !== "monthly" : !0;
|
|
1287
1330
|
}, { immediate: !0 });
|
|
1288
|
-
let
|
|
1331
|
+
let M = n(() => {
|
|
1289
1332
|
let e = [];
|
|
1290
|
-
for (let t =
|
|
1333
|
+
for (let t = T.value.start; t < T.value.end; t++) e.push({ raw: t });
|
|
1291
1334
|
return e;
|
|
1292
1335
|
});
|
|
1293
1336
|
return k(() => e.events, async () => {
|
|
1294
|
-
if (e.mode === "monthly" || !
|
|
1337
|
+
if (e.mode === "monthly" || !l.value) return;
|
|
1295
1338
|
await p();
|
|
1296
|
-
let t =
|
|
1339
|
+
let t = l.value, n = b.value.map((e) => parseInt(e.time.split(":")[0], 10));
|
|
1297
1340
|
if (n.length === 0) return;
|
|
1298
1341
|
n.sort((e, t) => e - t);
|
|
1299
|
-
let r = ((n[Math.floor(n.length / 2)] ??
|
|
1342
|
+
let r = ((n[Math.floor(n.length / 2)] ?? T.value.start) - T.value.start) * 80 - t.clientHeight / 2 + 80 / 2;
|
|
1300
1343
|
t.scrollTo({
|
|
1301
1344
|
top: Math.max(0, r),
|
|
1302
1345
|
behavior: "smooth"
|
|
1303
1346
|
});
|
|
1304
1347
|
}, { deep: !0 }), {
|
|
1305
|
-
isLoading:
|
|
1306
|
-
hoursList:
|
|
1307
|
-
effectiveHours:
|
|
1308
|
-
scrollContainer:
|
|
1309
|
-
headers:
|
|
1310
|
-
allHeaders:
|
|
1311
|
-
isMobile:
|
|
1312
|
-
displayedHeader:
|
|
1313
|
-
todayColumnIndex:
|
|
1314
|
-
monthlyEventsByDay:
|
|
1315
|
-
eventsByDay:
|
|
1316
|
-
gridEvents:
|
|
1317
|
-
overflowIndicators:
|
|
1318
|
-
scrollLocked:
|
|
1319
|
-
showMonthly:
|
|
1320
|
-
setLockScroll:
|
|
1321
|
-
openSpecificDay:
|
|
1348
|
+
isLoading: a,
|
|
1349
|
+
hoursList: M,
|
|
1350
|
+
effectiveHours: T,
|
|
1351
|
+
scrollContainer: l,
|
|
1352
|
+
headers: d,
|
|
1353
|
+
allHeaders: u,
|
|
1354
|
+
isMobile: s,
|
|
1355
|
+
displayedHeader: f,
|
|
1356
|
+
todayColumnIndex: m,
|
|
1357
|
+
monthlyEventsByDay: g,
|
|
1358
|
+
eventsByDay: h,
|
|
1359
|
+
gridEvents: C,
|
|
1360
|
+
overflowIndicators: w,
|
|
1361
|
+
scrollLocked: E,
|
|
1362
|
+
showMonthly: j,
|
|
1363
|
+
setLockScroll: O,
|
|
1364
|
+
openSpecificDay: A,
|
|
1365
|
+
allDayLabel: i,
|
|
1366
|
+
allDayEventsWithLayout: y
|
|
1322
1367
|
};
|
|
1323
1368
|
}
|
|
1324
1369
|
}), Ue = ["dir"], We = {
|
|
@@ -1327,11 +1372,14 @@ var Be = /* @__PURE__ */ L(je, [["render", ze]]), Ve = { class: "detail-wrapper-
|
|
|
1327
1372
|
}, Ge = {
|
|
1328
1373
|
key: 0,
|
|
1329
1374
|
class: "sticky top-0 z-30 bg-surface shrink-0"
|
|
1330
|
-
}, Ke = {
|
|
1375
|
+
}, Ke = {
|
|
1376
|
+
key: 0,
|
|
1377
|
+
class: "w-full flex items-stretch border-b border-outline-variant bg-surface"
|
|
1378
|
+
}, qe = { class: "w-8 sm:w-9 md:w-25 min-w-8 sm:min-w-9 md:min-w-25 max-w-8 sm:max-w-9 md:max-w-25 shrink-0 flex items-center justify-center border-r rtl:border-l rtl:border-r-0 border-outline-variant text-[9px] sm:text-[10px] md:text-label-sm font-medium text-on-surface/60 select-none px-1 text-center truncate" }, Je = { class: "absolute inset-0 w-full flex pointer-events-none" }, Ye = ["onClick"], Xe = { class: "truncate" }, Ze = { class: "flex-1 w-full flex min-h-0" }, Qe = { class: "flex-1 relative" }, $e = { class: "absolute inset-0 w-full flex flex-col pointer-events-none" }, et = { class: "absolute inset-0 w-full flex pointer-events-none" }, tt = { class: "relative min-h-full w-full" }, nt = ["onClick"], rt = {
|
|
1331
1379
|
key: 2,
|
|
1332
1380
|
class: "w-full"
|
|
1333
1381
|
};
|
|
1334
|
-
function
|
|
1382
|
+
function it(n, l, u, d, p, h) {
|
|
1335
1383
|
let _ = w("CalendarEventDetailWrapper"), v = w("CalendarHeaderItem"), b = w("CalendarSideItem"), x = w("CalendarPointer"), E = w("CalendarItemDisplay"), D = w("CalendarDayHolder"), O = w("MobileCalendarGrid");
|
|
1336
1384
|
return y(), a("div", {
|
|
1337
1385
|
class: "w-full h-full flex flex-col bg-surface whitespace-normal",
|
|
@@ -1345,14 +1393,39 @@ function $e(n, l, u, d, p, h) {
|
|
|
1345
1393
|
"mode",
|
|
1346
1394
|
"days",
|
|
1347
1395
|
"today-column-index"
|
|
1348
|
-
])
|
|
1396
|
+
]), n.mode === "monthly" ? i("", !0) : (y(), a("div", Ke, [o("div", qe, T(n.allDayLabel), 1), o("div", {
|
|
1397
|
+
class: "flex-1 relative py-1 overflow-hidden",
|
|
1398
|
+
style: g({ minHeight: `${Math.max(1, n.allDayEventsWithLayout.totalRows) * 26 + 6}px` })
|
|
1399
|
+
}, [o("div", Je, [(y(!0), a(e, null, S(n.headers, (e, t) => (y(), a("div", {
|
|
1400
|
+
key: "allday-col-" + t,
|
|
1401
|
+
class: m(["h-full ltr:border-r rtl:border-l border-outline-variant flex-1 transition-colors", { "bg-today-column": t === n.todayColumnIndex }])
|
|
1402
|
+
}, null, 2))), 128))]), (y(!0), a(e, null, S(n.allDayEventsWithLayout.events, (e) => (y(), a("div", {
|
|
1403
|
+
key: "allday-" + e.event.id,
|
|
1404
|
+
class: "absolute z-10 px-0.5 sm:px-1 pointer-events-auto cursor-pointer",
|
|
1405
|
+
style: g({
|
|
1406
|
+
top: `${e.row * 26 + 3}px`,
|
|
1407
|
+
height: "22px",
|
|
1408
|
+
insetInlineStart: `${e.startIndex / n.headers.length * 100}%`,
|
|
1409
|
+
width: `${e.span / n.headers.length * 100}%`
|
|
1410
|
+
}),
|
|
1411
|
+
onClick: (t) => n.$emit("event-click", e.event, t)
|
|
1412
|
+
}, [o("div", {
|
|
1413
|
+
class: "w-full h-full rounded px-1.5 sm:px-2 flex items-center text-[10px] sm:text-xs font-medium truncate shadow-2xs transition-all hover:brightness-95 active:scale-[0.99]",
|
|
1414
|
+
style: g({
|
|
1415
|
+
backgroundColor: e.event.color || "var(--cal-primary)",
|
|
1416
|
+
color: e.textColor
|
|
1417
|
+
})
|
|
1418
|
+
}, [C(n.$slots, "event", {
|
|
1419
|
+
event: e.event,
|
|
1420
|
+
mode: n.mode
|
|
1421
|
+
}, () => [o("span", Xe, T(e.event.title), 1)], !0)], 4)], 12, Ye))), 128))], 4)]))])) : i("", !0), o("div", Ze, [o("div", { class: m(["shrink-0 transition-all duration-300", [n.mode === "monthly" ? "w-0 opacity-0 overflow-hidden" : "w-8 sm:w-9 md:w-25 opacity-100 h-full"]]) }, [c(b, {
|
|
1349
1422
|
class: "w-8 sm:w-9 md:w-25 min-h-full",
|
|
1350
1423
|
range: n.effectiveHours
|
|
1351
|
-
}, null, 8, ["range"])], 2), o("div",
|
|
1424
|
+
}, null, 8, ["range"])], 2), o("div", Qe, [c(t, {
|
|
1352
1425
|
name: "calendar-view",
|
|
1353
1426
|
mode: "out-in"
|
|
1354
1427
|
}, {
|
|
1355
|
-
default: A(() => [n.mode === "monthly" ? n.isMobile ? n.mode === "monthly" && n.isMobile ? (y(), a("div",
|
|
1428
|
+
default: A(() => [n.mode === "monthly" ? n.isMobile ? n.mode === "monthly" && n.isMobile ? (y(), a("div", rt, [c(O, {
|
|
1356
1429
|
loading: n.isLoading,
|
|
1357
1430
|
days: n.headers,
|
|
1358
1431
|
mode: n.mode,
|
|
@@ -1405,15 +1478,15 @@ function $e(n, l, u, d, p, h) {
|
|
|
1405
1478
|
"hours",
|
|
1406
1479
|
"headers"
|
|
1407
1480
|
]),
|
|
1408
|
-
o("div",
|
|
1481
|
+
o("div", $e, [(y(!0), a(e, null, S(n.effectiveHours.end - n.effectiveHours.start, (e) => (y(), a("div", {
|
|
1409
1482
|
key: e,
|
|
1410
1483
|
class: "w-full border-b border-surface-variant box-border h-20"
|
|
1411
1484
|
}))), 128))]),
|
|
1412
|
-
o("div",
|
|
1485
|
+
o("div", et, [(y(!0), a(e, null, S(n.headers, (e, t) => (y(), a("div", {
|
|
1413
1486
|
class: m(["h-full ltr:border-r rtl:border-l border-outline-variant flex-1 transition-colors", { "bg-today-column": t === n.todayColumnIndex }]),
|
|
1414
1487
|
key: "v" + t
|
|
1415
1488
|
}, null, 2))), 128))]),
|
|
1416
|
-
o("div",
|
|
1489
|
+
o("div", tt, [(y(!0), a(e, null, S(n.gridEvents, (e) => (y(), r(E, {
|
|
1417
1490
|
key: e.event.id,
|
|
1418
1491
|
event: e.event,
|
|
1419
1492
|
mode: n.mode,
|
|
@@ -1446,27 +1519,27 @@ function $e(n, l, u, d, p, h) {
|
|
|
1446
1519
|
}, [o("button", {
|
|
1447
1520
|
class: "w-full text-[8px] sm:text-[10px] leading-none rounded bg-surface-variant hover:bg-surface-variant/80 text-on-surface/70 px-1 sm:px-2 py-0.5 sm:py-1 truncate transition-colors",
|
|
1448
1521
|
onClick: (t) => n.openSpecificDay(n.headers[e.dayIndex])
|
|
1449
|
-
}, " +" + T(e.count) + " more ", 9,
|
|
1522
|
+
}, " +" + T(e.count) + " more ", 9, nt)], 4))), 128))])
|
|
1450
1523
|
], 4))]),
|
|
1451
1524
|
_: 3
|
|
1452
1525
|
})])])], 512)], 8, Ue);
|
|
1453
1526
|
}
|
|
1454
|
-
var
|
|
1527
|
+
var at = /* @__PURE__ */ H(He, [["render", it], ["__scopeId", "data-v-796ab926"]]), ot = ["dir"], st = {
|
|
1455
1528
|
ref: "scrollContainer",
|
|
1456
1529
|
class: "flex-1 w-full overflow-y-auto cal-scrollbar px-2 sm:px-4 md:px-6 py-3 sm:py-5"
|
|
1457
|
-
},
|
|
1530
|
+
}, ct = { class: "max-w-4xl mx-auto flex flex-col gap-6" }, lt = { class: "agenda-section-header sticky top-0 z-10 py-1.5 flex items-center gap-3 bg-surface/95 backdrop-blur-xs" }, ut = { class: "rounded-full bg-surface-variant px-3 py-0.5 text-xs font-semibold text-on-surface/70 border border-outline-variant shadow-xs select-none" }, dt = { class: "flex flex-col gap-3" }, ft = { class: "agenda-date-col shrink-0 flex flex-col items-start w-24 sm:w-32 md:w-36 pt-0.5 select-none" }, pt = { class: "sm:hidden" }, Q = { class: "hidden sm:inline" }, mt = { class: "mt-1 flex items-center gap-1.5 sm:gap-2" }, ht = { class: "flex flex-col text-[10px] sm:text-xs leading-none text-on-surface/50 gap-0.5" }, gt = {
|
|
1458
1531
|
key: 0,
|
|
1459
1532
|
class: "opacity-70"
|
|
1460
|
-
},
|
|
1533
|
+
}, _t = {
|
|
1461
1534
|
key: 0,
|
|
1462
1535
|
class: "mt-1 text-[10px] font-medium text-error truncate max-w-full"
|
|
1463
|
-
},
|
|
1536
|
+
}, vt = { class: "agenda-events-col flex-1 min-w-0 flex flex-col gap-2" }, yt = ["onClick"], bt = { class: "min-w-0 flex-1 font-semibold text-xs sm:text-sm md:text-base leading-snug truncate" }, xt = {
|
|
1464
1537
|
key: 0,
|
|
1465
1538
|
class: "shrink-0 text-[11px] sm:text-xs md:text-sm font-medium opacity-90 flex items-center gap-1.5 whitespace-nowrap"
|
|
1466
|
-
},
|
|
1539
|
+
}, St = {
|
|
1467
1540
|
key: 1,
|
|
1468
1541
|
class: "agenda-no-events flex items-center text-xs text-on-surface/40 italic py-2 px-3 rounded-lg border border-dashed border-outline-variant select-none"
|
|
1469
|
-
}, $ = /* @__PURE__ */
|
|
1542
|
+
}, $ = /* @__PURE__ */ H(/* @__PURE__ */ l({
|
|
1470
1543
|
__name: "CalendarAgenda",
|
|
1471
1544
|
props: {
|
|
1472
1545
|
range: {},
|
|
@@ -1515,7 +1588,7 @@ var et = /* @__PURE__ */ L(He, [["render", $e], ["__scopeId", "data-v-6e2c33b4"]
|
|
|
1515
1588
|
let t = e.color || "var(--cal-primary, #1a9d90)";
|
|
1516
1589
|
return {
|
|
1517
1590
|
backgroundColor: t,
|
|
1518
|
-
color:
|
|
1591
|
+
color: V(t)
|
|
1519
1592
|
};
|
|
1520
1593
|
}
|
|
1521
1594
|
let w = n(() => l(r.range, "agenda"));
|
|
@@ -1564,24 +1637,24 @@ var et = /* @__PURE__ */ L(He, [["render", $e], ["__scopeId", "data-v-6e2c33b4"]
|
|
|
1564
1637
|
return (t, n) => (y(), a("div", {
|
|
1565
1638
|
class: "calendar-agenda w-full h-full flex flex-col bg-surface overflow-hidden",
|
|
1566
1639
|
dir: f.value
|
|
1567
|
-
}, [o("div",
|
|
1640
|
+
}, [o("div", st, [o("div", ct, [(y(!0), a(e, null, S(A.value, (r) => (y(), a("div", {
|
|
1568
1641
|
key: r.id,
|
|
1569
1642
|
class: "agenda-section flex flex-col gap-3"
|
|
1570
|
-
}, [o("div",
|
|
1643
|
+
}, [o("div", lt, [
|
|
1571
1644
|
n[0] ||= o("div", { class: "h-px flex-1 bg-outline-variant" }, null, -1),
|
|
1572
|
-
o("span",
|
|
1645
|
+
o("span", ut, T(r.rangeLabel), 1),
|
|
1573
1646
|
n[1] ||= o("div", { class: "h-px flex-1 bg-outline-variant" }, null, -1)
|
|
1574
|
-
]), o("div",
|
|
1647
|
+
]), o("div", dt, [(y(!0), a(e, null, S(r.days, (r) => (y(), a("div", {
|
|
1575
1648
|
key: r.day.name + r.day.date.getTime(),
|
|
1576
1649
|
class: m(["agenda-day-row flex flex-row items-start gap-3 sm:gap-5 p-2.5 sm:p-3.5 rounded-xl border border-outline-variant/60 transition-colors", {
|
|
1577
1650
|
"bg-today-column ring-1 ring-primary/30 border-primary/40": r.day.isToday,
|
|
1578
1651
|
"bg-surface": !r.day.isToday
|
|
1579
1652
|
}])
|
|
1580
|
-
}, [o("div",
|
|
1581
|
-
o("span", { class: m(["text-xs sm:text-sm font-semibold truncate max-w-full", r.day.isToday ? "text-primary font-bold" : "text-on-surface/80"]) }, [o("span",
|
|
1582
|
-
o("div",
|
|
1583
|
-
r.day.holidayTitle ? (y(), a("span",
|
|
1584
|
-
]), o("div",
|
|
1653
|
+
}, [o("div", ft, [
|
|
1654
|
+
o("span", { class: m(["text-xs sm:text-sm font-semibold truncate max-w-full", r.day.isToday ? "text-primary font-bold" : "text-on-surface/80"]) }, [o("span", pt, T(r.day.shortName || r.day.name), 1), o("span", Q, T(r.day.name), 1)], 2),
|
|
1655
|
+
o("div", mt, [o("div", { class: m(["flex size-7 sm:size-8 items-center justify-center rounded-full text-xs sm:text-sm font-bold shadow-xs shrink-0", [r.day.isToday ? "bg-primary text-surface font-extrabold ring-2 ring-primary/30" : r.day.isWeekend || r.day.isHoliday ? "bg-surface-variant text-error border border-outline-variant" : "bg-surface-variant text-on-surface border border-outline-variant"]]) }, T(r.day.primary), 3), o("div", ht, [o("span", { class: m({ "text-error": r.day.isWeekend || r.day.isHoliday }) }, T(r.day.secondary), 3), r.day.tertiary ? (y(), a("span", gt, T(r.day.tertiary), 1)) : i("", !0)])]),
|
|
1656
|
+
r.day.holidayTitle ? (y(), a("span", _t, T(r.day.holidayTitle), 1)) : i("", !0)
|
|
1657
|
+
]), o("div", vt, [r.events.length > 0 ? (y(!0), a(e, { key: 0 }, S(r.events, (e) => (y(), a("div", {
|
|
1585
1658
|
key: e.id,
|
|
1586
1659
|
class: "agenda-event-card group flex items-center justify-between gap-3 rounded-lg sm:rounded-xl p-2.5 sm:px-4 sm:py-3 border border-black/10 dark:border-white/20 shadow-xs cursor-pointer transition-all hover:scale-[1.006] hover:shadow-md active:scale-[0.995]",
|
|
1587
1660
|
style: g(b(e)),
|
|
@@ -1589,7 +1662,7 @@ var et = /* @__PURE__ */ L(He, [["render", $e], ["__scopeId", "data-v-6e2c33b4"]
|
|
|
1589
1662
|
}, [C(t.$slots, "event", {
|
|
1590
1663
|
event: e,
|
|
1591
1664
|
mode: "agenda"
|
|
1592
|
-
}, () => [o("div",
|
|
1665
|
+
}, () => [o("div", bt, T(e.title), 1), e.time || e.isFullDay ? (y(), a("div", xt, [n[2] ||= o("svg", {
|
|
1593
1666
|
class: "size-3 sm:size-3.5 opacity-80",
|
|
1594
1667
|
viewBox: "0 0 24 24",
|
|
1595
1668
|
fill: "none",
|
|
@@ -1599,16 +1672,16 @@ var et = /* @__PURE__ */ L(He, [["render", $e], ["__scopeId", "data-v-6e2c33b4"]
|
|
|
1599
1672
|
cx: "12",
|
|
1600
1673
|
cy: "12",
|
|
1601
1674
|
r: "10"
|
|
1602
|
-
}), o("polyline", { points: "12 6 12 12 16 14" })], -1), o("span", null, T(v(e)), 1)])) : i("", !0)], !0)], 12,
|
|
1675
|
+
}), o("polyline", { points: "12 6 12 12 16 14" })], -1), o("span", null, T(v(e)), 1)])) : i("", !0)], !0)], 12, yt))), 128)) : (y(), a("div", St, T(E(c)("calendar.noEvents") || "No events"), 1))])], 2))), 128))])]))), 128))])], 512)], 8, ot));
|
|
1603
1676
|
}
|
|
1604
|
-
}), [["__scopeId", "data-v-71fb8cbf"]]),
|
|
1677
|
+
}), [["__scopeId", "data-v-71fb8cbf"]]), Ct = {
|
|
1605
1678
|
key: 0,
|
|
1606
1679
|
class: "w-full h-full flex flex-col font-sans",
|
|
1607
1680
|
style: {
|
|
1608
1681
|
color: "var(--cal-on-surface)",
|
|
1609
1682
|
background: "var(--cal-surface)"
|
|
1610
1683
|
}
|
|
1611
|
-
},
|
|
1684
|
+
}, wt = { class: "w-full flex-1 overflow-hidden relative" }, Tt = /* @__PURE__ */ l({
|
|
1612
1685
|
__name: "VueCalendar",
|
|
1613
1686
|
props: {
|
|
1614
1687
|
events: { default: () => [] },
|
|
@@ -1685,13 +1758,13 @@ var et = /* @__PURE__ */ L(He, [["render", $e], ["__scopeId", "data-v-6e2c33b4"]
|
|
|
1685
1758
|
setMode: M,
|
|
1686
1759
|
currentRange: E,
|
|
1687
1760
|
handleModeUpdate: j
|
|
1688
|
-
}), (t, n) => f.value ? (y(), a("div",
|
|
1761
|
+
}), (t, n) => f.value ? (y(), a("div", Ct, [C(t.$slots, "header", {
|
|
1689
1762
|
mode: e.mode,
|
|
1690
1763
|
range: E.value,
|
|
1691
1764
|
next: D,
|
|
1692
1765
|
prev: O,
|
|
1693
1766
|
setMode: M
|
|
1694
|
-
}), o("div",
|
|
1767
|
+
}), o("div", wt, [e.mode === "agenda" ? (y(), r($, {
|
|
1695
1768
|
key: 0,
|
|
1696
1769
|
range: E.value,
|
|
1697
1770
|
events: e.events,
|
|
@@ -1700,7 +1773,7 @@ var et = /* @__PURE__ */ L(He, [["render", $e], ["__scopeId", "data-v-6e2c33b4"]
|
|
|
1700
1773
|
name: "event",
|
|
1701
1774
|
fn: A((e) => [C(t.$slots, "event", h(u(e)))]),
|
|
1702
1775
|
key: "0"
|
|
1703
|
-
} : void 0]), 1032, ["range", "events"])) : (y(), r(
|
|
1776
|
+
} : void 0]), 1032, ["range", "events"])) : (y(), r(at, {
|
|
1704
1777
|
key: 1,
|
|
1705
1778
|
range: E.value,
|
|
1706
1779
|
mode: e.mode,
|
|
@@ -1726,4 +1799,4 @@ var et = /* @__PURE__ */ L(He, [["render", $e], ["__scopeId", "data-v-6e2c33b4"]
|
|
|
1726
1799
|
}
|
|
1727
1800
|
});
|
|
1728
1801
|
//#endregion
|
|
1729
|
-
export { $ as CalendarAgenda,
|
|
1802
|
+
export { $ as CalendarAgenda, Tt as VueCalendar, V as getAccessibleTextColor, ee as getContrastRatio, B as getRelativeLuminance, R as parseColorToRgb };
|
package/dist/style.css
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
:root{--color-surface:#fff;--color-surface-variant:#f8f8fa;--color-on-surface:#2c2c2e;--color-primary:#1a9d90;--color-error:#e52b16;--color-outline:#d1d0d2;--color-outline-variant:#f0f0f0;--cal-surface:#fff;--cal-surface-variant:#f8f8fa;--cal-on-surface:#2c2c2e;--cal-primary:#1a9d90;--cal-error:#e52b16;--cal-outline:#d1d0d2;--cal-outline-variant:#f0f0f0;--text-label-md:14px;--text-label-md--line-height:28px;--text-label-md--font-weight:500;--text-label-sm:12px;--text-label-sm--line-height:24px;--text-label-sm--font-weight:500;--text-body-sm:12px;--text-body-sm--line-height:24px;--text-body-sm--font-weight:400;--text-title-sm:14px;--text-title-sm--line-height:28px;--text-title-sm--font-weight:700;--cal-today-bg-light:radial-gradient(circle at 70% 0%, #10121b, #393e4d);--cal-today-bg-dark:radial-gradient(circle at 70% 0%, #d1d0d2, #9b9a9d);--cal-today-bg:var(--cal-today-bg-light);--cal-today-column-bg-light:#1a9d900d;--cal-today-column-bg-dark:#40b8ac14;--cal-today-column-bg:var(--cal-today-column-bg-light)}.dark{--color-surface:#151823;--color-surface-variant:#242836;--color-on-surface:#fff;--color-primary:#40b8ac;--color-error:#ea5545;--color-outline:#605f63;--color-outline-variant:#3a393c;--cal-surface:#151823;--cal-surface-variant:#242836;--cal-on-surface:#fff;--cal-primary:#40b8ac;--cal-error:#ea5545;--cal-outline:#605f63;--cal-outline-variant:#3a393c;--cal-today-bg:var(--cal-today-bg-dark);--cal-today-column-bg:var(--cal-today-column-bg-dark)}.bg-today{background-image:var(--cal-today-bg)}.bg-today-column{background-color:var(--cal-today-column-bg)}.cal-scrollbar{scrollbar-width:thin;scrollbar-color:var(--color-primary) var(--color-surface-variant)}.cal-scrollbar::-webkit-scrollbar{width:2px;height:2px}.cal-scrollbar::-webkit-scrollbar-track{background:var(--color-surface-variant)}.cal-scrollbar::-webkit-scrollbar-thumb{background:var(--color-primary);border-radius:10px}.english-num[data-v-ef2978fb]{font-family:"IranYekan" sans-serif!important}.hw-accel-height[data-v-d90e616f]{will-change:height}.hw-accel[data-v-d90e616f]{will-change:transform, opacity}.calendar-view-enter-active[data-v-
|
|
1
|
+
:root{--color-surface:#fff;--color-surface-variant:#f8f8fa;--color-on-surface:#2c2c2e;--color-primary:#1a9d90;--color-error:#e52b16;--color-outline:#d1d0d2;--color-outline-variant:#f0f0f0;--cal-surface:#fff;--cal-surface-variant:#f8f8fa;--cal-on-surface:#2c2c2e;--cal-primary:#1a9d90;--cal-error:#e52b16;--cal-outline:#d1d0d2;--cal-outline-variant:#f0f0f0;--text-label-md:14px;--text-label-md--line-height:28px;--text-label-md--font-weight:500;--text-label-sm:12px;--text-label-sm--line-height:24px;--text-label-sm--font-weight:500;--text-body-sm:12px;--text-body-sm--line-height:24px;--text-body-sm--font-weight:400;--text-title-sm:14px;--text-title-sm--line-height:28px;--text-title-sm--font-weight:700;--cal-today-bg-light:radial-gradient(circle at 70% 0%, #10121b, #393e4d);--cal-today-bg-dark:radial-gradient(circle at 70% 0%, #d1d0d2, #9b9a9d);--cal-today-bg:var(--cal-today-bg-light);--cal-today-column-bg-light:#1a9d900d;--cal-today-column-bg-dark:#40b8ac14;--cal-today-column-bg:var(--cal-today-column-bg-light)}.dark{--color-surface:#151823;--color-surface-variant:#242836;--color-on-surface:#fff;--color-primary:#40b8ac;--color-error:#ea5545;--color-outline:#605f63;--color-outline-variant:#3a393c;--cal-surface:#151823;--cal-surface-variant:#242836;--cal-on-surface:#fff;--cal-primary:#40b8ac;--cal-error:#ea5545;--cal-outline:#605f63;--cal-outline-variant:#3a393c;--cal-today-bg:var(--cal-today-bg-dark);--cal-today-column-bg:var(--cal-today-column-bg-dark)}.bg-today{background-image:var(--cal-today-bg)}.bg-today-column{background-color:var(--cal-today-column-bg)}.cal-scrollbar{scrollbar-width:thin;scrollbar-color:var(--color-primary) var(--color-surface-variant)}.cal-scrollbar::-webkit-scrollbar{width:2px;height:2px}.cal-scrollbar::-webkit-scrollbar-track{background:var(--color-surface-variant)}.cal-scrollbar::-webkit-scrollbar-thumb{background:var(--color-primary);border-radius:10px}.english-num[data-v-ef2978fb]{font-family:"IranYekan" sans-serif!important}.hw-accel-height[data-v-d90e616f]{will-change:height}.hw-accel[data-v-d90e616f]{will-change:transform, opacity}.calendar-view-enter-active[data-v-796ab926],.calendar-view-leave-active[data-v-796ab926]{width:100%;transition:all .2s ease-out;top:0;left:0;position:absolute!important}.calendar-view-enter-from[data-v-796ab926]{opacity:0;transform:scale(1.02)}.calendar-view-leave-to[data-v-796ab926]{opacity:0;transform:scale(.98)}.fade-overlay-enter-active[data-v-796ab926],.fade-overlay-leave-active[data-v-796ab926]{transition:opacity .2s ease-out}.fade-overlay-enter-from[data-v-796ab926],.fade-overlay-leave-to[data-v-796ab926]{opacity:0}.calendar-agenda[data-v-71fb8cbf]{font-family:inherit}.agenda-day-row[data-v-71fb8cbf]{transition:all .15s ease-in-out}.agenda-event-card[data-v-71fb8cbf]{-webkit-user-select:none;user-select:none;border:1px solid #0000001a}.dark{border-color:#fff3}
|
|
2
2
|
/*$vite$:1*/
|