Socket
Socket
Sign inDemoInstall

@fullcalendar/daygrid

Package Overview
Dependencies
2
Maintainers
1
Versions
59
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 6.0.0-beta.4 to 6.0.0

15

index.global.js
/*!
FullCalendar Day Grid Plugin v6.0.0-beta.4
Docs & License: https://fullcalendar.io/
FullCalendar Day Grid Plugin v6.0.0
Docs & License: https://fullcalendar.io/docs/month-view
(c) 2022 Adam Shaw

@@ -479,2 +479,7 @@ */

};
this.handleResize = (isForced) => {
if (isForced) {
this.updateSizing(true); // isExternal=true
}
};
}

@@ -511,2 +516,3 @@ render() {

this.updateSizing(true);
this.context.addResizeHandler(this.handleResize);
}

@@ -517,2 +523,5 @@ componentDidUpdate(prevProps, prevState) {

}
componentWillUnmount() {
this.context.removeResizeHandler(this.handleResize);
}
getHighlightSegs() {

@@ -852,3 +861,3 @@ let { props } = this;

var css_248z = "\n:root {\n --fc-daygrid-event-dot-width: 8px;\n}\n\n/* help things clear margins of inner content */\n\n.fc-daygrid-day-frame,\n.fc-daygrid-day-events,\n.fc-daygrid-event-harness { /* for event top/bottom margins */\n}\n\n.fc-daygrid-day-frame:before, .fc-daygrid-day-events:before, .fc-daygrid-event-harness:before {\n content: \"\";\n clear: both;\n display: table; }\n\n.fc-daygrid-day-frame:after, .fc-daygrid-day-events:after, .fc-daygrid-event-harness:after {\n content: \"\";\n clear: both;\n display: table; }\n\n.fc .fc-daygrid-body { /* a <div> that wraps the table */\n position: relative;\n z-index: 1; /* container inner z-index's because <tr>s can't do it */\n }\n\n.fc .fc-daygrid-day.fc-day-today {\n background-color: var(--fc-today-bg-color);\n }\n\n.fc .fc-daygrid-day-frame {\n position: relative;\n min-height: 100%; /* seems to work better than `height` because sets height after rows/cells naturally do it */\n }\n\n.fc {\n\n /* cell top */\n\n}\n\n.fc .fc-daygrid-day-top {\n display: flex;\n flex-direction: row-reverse;\n }\n\n.fc .fc-day-other .fc-daygrid-day-top {\n opacity: 0.3;\n }\n\n.fc {\n\n /* day number (within cell top) */\n\n}\n\n.fc .fc-daygrid-day-number {\n position: relative;\n z-index: 4;\n padding: 4px;\n }\n\n.fc {\n\n /* event container */\n\n}\n\n.fc .fc-daygrid-day-events {\n margin-top: 1px; /* needs to be margin, not padding, so that available cell height can be computed */\n }\n\n.fc {\n\n /* positioning for balanced vs natural */\n\n}\n\n.fc .fc-daygrid-body-balanced .fc-daygrid-day-events {\n position: absolute;\n left: 0;\n right: 0;\n }\n\n.fc .fc-daygrid-body-unbalanced .fc-daygrid-day-events {\n position: relative; /* for containing abs positioned event harnesses */\n min-height: 2em; /* in addition to being a min-height during natural height, equalizes the heights a little bit */\n }\n\n.fc .fc-daygrid-body-natural { /* can coexist with -unbalanced */\n }\n\n.fc .fc-daygrid-body-natural .fc-daygrid-day-events {\n margin-bottom: 1em;\n }\n\n.fc {\n\n /* event harness */\n\n}\n\n.fc .fc-daygrid-event-harness {\n position: relative;\n }\n\n.fc .fc-daygrid-event-harness-abs {\n position: absolute;\n top: 0; /* fallback coords for when cannot yet be computed */\n left: 0; /* */\n right: 0; /* */\n }\n\n.fc .fc-daygrid-bg-harness {\n position: absolute;\n top: 0;\n bottom: 0;\n }\n\n.fc {\n\n /* bg content */\n\n}\n\n.fc .fc-daygrid-day-bg .fc-non-business { z-index: 1 }\n\n.fc .fc-daygrid-day-bg .fc-bg-event { z-index: 2 }\n\n.fc .fc-daygrid-day-bg .fc-highlight { z-index: 3 }\n\n.fc {\n\n /* events */\n\n}\n\n.fc .fc-daygrid-event {\n z-index: 6;\n margin-top: 1px;\n }\n\n.fc .fc-daygrid-event.fc-event-mirror {\n z-index: 7;\n }\n\n.fc {\n\n /* cell bottom (within day-events) */\n\n}\n\n.fc .fc-daygrid-day-bottom {\n font-size: .85em;\n padding: 2px 3px 0\n }\n\n.fc .fc-daygrid-day-bottom:before {\n content: \"\";\n clear: both;\n display: table; }\n\n.fc .fc-daygrid-more-link {\n position: relative;\n z-index: 4;\n cursor: pointer;\n }\n\n.fc {\n\n /* week number (within frame) */\n\n}\n\n.fc .fc-daygrid-week-number {\n position: absolute;\n z-index: 5;\n top: 0;\n padding: 2px;\n min-width: 1.5em;\n text-align: center;\n background-color: var(--fc-neutral-bg-color);\n color: var(--fc-neutral-text-color);\n }\n\n.fc {\n\n /* popover */\n\n}\n\n.fc .fc-more-popover .fc-popover-body {\n min-width: 220px;\n padding: 10px;\n }\n\n.fc-direction-ltr .fc-daygrid-event.fc-event-start,\n.fc-direction-rtl .fc-daygrid-event.fc-event-end {\n margin-left: 2px;\n}\n\n.fc-direction-ltr .fc-daygrid-event.fc-event-end,\n.fc-direction-rtl .fc-daygrid-event.fc-event-start {\n margin-right: 2px;\n}\n\n.fc-direction-ltr .fc-daygrid-week-number {\n left: 0;\n border-radius: 0 0 3px 0;\n }\n\n.fc-direction-rtl .fc-daygrid-week-number {\n right: 0;\n border-radius: 0 0 0 3px;\n }\n\n.fc-liquid-hack .fc-daygrid-day-frame {\n position: static; /* will cause inner absolute stuff to expand to <td> */\n }\n.fc-daygrid-event { /* make root-level, because will be dragged-and-dropped outside of a component root */\n position: relative; /* for z-indexes assigned later */\n white-space: nowrap;\n border-radius: 3px; /* dot event needs this to when selected */\n font-size: var(--fc-small-font-size);\n}\n/* --- the rectangle (\"block\") style of event --- */\n.fc-daygrid-block-event .fc-event-time {\n font-weight: bold;\n }\n.fc-daygrid-block-event .fc-event-time,\n .fc-daygrid-block-event .fc-event-title {\n padding: 1px;\n }\n/* --- the dot style of event --- */\n.fc-daygrid-dot-event {\n display: flex;\n align-items: center;\n padding: 2px 0\n\n}\n.fc-daygrid-dot-event .fc-event-title {\n flex-grow: 1;\n flex-shrink: 1;\n min-width: 0; /* important for allowing to shrink all the way */\n overflow: hidden;\n font-weight: bold;\n }\n.fc-daygrid-dot-event:hover,\n .fc-daygrid-dot-event.fc-event-mirror {\n background: rgba(0, 0, 0, 0.1);\n }\n.fc-daygrid-dot-event.fc-event-selected:before {\n /* expand hit area */\n top: -10px;\n bottom: -10px;\n }\n.fc-daygrid-event-dot { /* the actual dot */\n margin: 0 4px;\n box-sizing: content-box;\n width: 0;\n height: 0;\n border: calc(var(--fc-daygrid-event-dot-width) / 2) solid var(--fc-event-border-color);\n border-radius: calc(var(--fc-daygrid-event-dot-width) / 2);\n}\n/* --- spacing between time and title --- */\n.fc-direction-ltr .fc-daygrid-event .fc-event-time {\n margin-right: 3px;\n }\n.fc-direction-rtl .fc-daygrid-event .fc-event-time {\n margin-left: 3px;\n }\n";
var css_248z = ":root{--fc-daygrid-event-dot-width:8px}.fc-daygrid-day-events:after,.fc-daygrid-day-events:before,.fc-daygrid-day-frame:after,.fc-daygrid-day-frame:before,.fc-daygrid-event-harness:after,.fc-daygrid-event-harness:before{clear:both;content:\"\";display:table}.fc .fc-daygrid-body{position:relative;z-index:1}.fc .fc-daygrid-day.fc-day-today{background-color:var(--fc-today-bg-color)}.fc .fc-daygrid-day-frame{min-height:100%;position:relative}.fc .fc-daygrid-day-top{display:flex;flex-direction:row-reverse}.fc .fc-day-other .fc-daygrid-day-top{opacity:.3}.fc .fc-daygrid-day-number{padding:4px;position:relative;z-index:4}.fc .fc-daygrid-day-events{margin-top:1px}.fc .fc-daygrid-body-balanced .fc-daygrid-day-events{left:0;position:absolute;right:0}.fc .fc-daygrid-body-unbalanced .fc-daygrid-day-events{min-height:2em;position:relative}.fc .fc-daygrid-body-natural .fc-daygrid-day-events{margin-bottom:1em}.fc .fc-daygrid-event-harness{position:relative}.fc .fc-daygrid-event-harness-abs{left:0;position:absolute;right:0;top:0}.fc .fc-daygrid-bg-harness{bottom:0;position:absolute;top:0}.fc .fc-daygrid-day-bg .fc-non-business{z-index:1}.fc .fc-daygrid-day-bg .fc-bg-event{z-index:2}.fc .fc-daygrid-day-bg .fc-highlight{z-index:3}.fc .fc-daygrid-event{margin-top:1px;z-index:6}.fc .fc-daygrid-event.fc-event-mirror{z-index:7}.fc .fc-daygrid-day-bottom{font-size:.85em;padding:2px 3px 0}.fc .fc-daygrid-day-bottom:before{clear:both;content:\"\";display:table}.fc .fc-daygrid-more-link{cursor:pointer;position:relative;z-index:4}.fc .fc-daygrid-week-number{background-color:var(--fc-neutral-bg-color);color:var(--fc-neutral-text-color);min-width:1.5em;padding:2px;position:absolute;text-align:center;top:0;z-index:5}.fc .fc-more-popover .fc-popover-body{min-width:220px;padding:10px}.fc-direction-ltr .fc-daygrid-event.fc-event-start,.fc-direction-rtl .fc-daygrid-event.fc-event-end{margin-left:2px}.fc-direction-ltr .fc-daygrid-event.fc-event-end,.fc-direction-rtl .fc-daygrid-event.fc-event-start{margin-right:2px}.fc-direction-ltr .fc-daygrid-week-number{border-radius:0 0 3px 0;left:0}.fc-direction-rtl .fc-daygrid-week-number{border-radius:0 0 0 3px;right:0}.fc-liquid-hack .fc-daygrid-day-frame{position:static}.fc-daygrid-event{border-radius:3px;font-size:var(--fc-small-font-size);position:relative;white-space:nowrap}.fc-daygrid-block-event .fc-event-time{font-weight:700}.fc-daygrid-block-event .fc-event-time,.fc-daygrid-block-event .fc-event-title{padding:1px}.fc-daygrid-dot-event{align-items:center;display:flex;padding:2px 0}.fc-daygrid-dot-event .fc-event-title{flex-grow:1;flex-shrink:1;font-weight:700;min-width:0;overflow:hidden}.fc-daygrid-dot-event.fc-event-mirror,.fc-daygrid-dot-event:hover{background:rgba(0,0,0,.1)}.fc-daygrid-dot-event.fc-event-selected:before{bottom:-10px;top:-10px}.fc-daygrid-event-dot{border:calc(var(--fc-daygrid-event-dot-width)/2) solid var(--fc-event-border-color);border-radius:calc(var(--fc-daygrid-event-dot-width)/2);box-sizing:content-box;height:0;margin:0 4px;width:0}.fc-direction-ltr .fc-daygrid-event .fc-event-time{margin-right:3px}.fc-direction-rtl .fc-daygrid-event .fc-event-time{margin-left:3px}";
internal$1.injectStyles(css_248z);

@@ -855,0 +864,0 @@

6

index.global.min.js
/*!
FullCalendar Day Grid Plugin v6.0.0-beta.4
Docs & License: https://fullcalendar.io/
FullCalendar Day Grid Plugin v6.0.0
Docs & License: https://fullcalendar.io/docs/month-view
(c) 2022 Adam Shaw
*/
FullCalendar.DayGrid=function(e,t,n,s){"use strict";class a extends t.DateComponent{constructor(){super(...arguments),this.headerElRef=s.createRef()}renderSimpleLayout(e,n){let{props:a,context:i}=this,r=[],l=t.getStickyHeaderDates(i.options);return e&&r.push({type:"header",key:"header",isSticky:l,chunk:{elRef:this.headerElRef,tableClassName:"fc-col-header",rowContent:e}}),r.push({type:"body",key:"body",liquid:!0,chunk:{content:n}}),s.createElement(t.ViewContainer,{elClasses:["fc-daygrid"],viewSpec:i.viewSpec},s.createElement(t.SimpleScrollGrid,{liquid:!a.isHeightAuto&&!a.forPrint,collapsibleWidth:a.forPrint,cols:[],sections:r}))}renderHScrollLayout(e,n,a,i){let r=this.context.pluginHooks.scrollGridImpl;if(!r)throw new Error("No ScrollGrid implementation");let{props:l,context:o}=this,d=!l.forPrint&&t.getStickyHeaderDates(o.options),c=!l.forPrint&&t.getStickyFooterScrollbar(o.options),g=[];return e&&g.push({type:"header",key:"header",isSticky:d,chunks:[{key:"main",elRef:this.headerElRef,tableClassName:"fc-col-header",rowContent:e}]}),g.push({type:"body",key:"body",liquid:!0,chunks:[{key:"main",content:n}]}),c&&g.push({type:"footer",key:"footer",isSticky:!0,chunks:[{key:"main",content:t.renderScrollShim}]}),s.createElement(t.ViewContainer,{elClasses:["fc-daygrid"],viewSpec:o.viewSpec},s.createElement(r,{liquid:!l.isHeightAuto&&!l.forPrint,collapsibleWidth:l.forPrint,colGroups:[{cols:[{span:a,minWidth:i}]}],sections:g}))}}function i(e,t){let n=[];for(let e=0;e<t;e+=1)n[e]=[];for(let t of e)n[t.row].push(t);return n}function r(e,t){let n=[];for(let e=0;e<t;e+=1)n[e]=[];for(let t of e)n[t.firstCol].push(t);return n}function l(e,t){let n=[];if(e){for(let s=0;s<t;s+=1)n[s]={affectedInstances:e.affectedInstances,isEvent:e.isEvent,segs:[]};for(let t of e.segs)n[t.row].segs.push(t)}else for(let e=0;e<t;e+=1)n[e]=null;return n}const o=t.createFormatter({hour:"numeric",minute:"2-digit",omitZeroMinute:!0,meridiem:"narrow"});function d(e){let{display:t}=e.eventRange.ui;return"list-item"===t||"auto"===t&&!e.eventRange.def.allDay&&e.firstCol===e.lastCol&&e.isStart&&e.isEnd}class c extends t.BaseComponent{render(){let{props:e}=this;return s.createElement(t.StandardEvent,Object.assign({},e,{elClasses:["fc-daygrid-event","fc-daygrid-block-event","fc-h-event"],defaultTimeFormat:o,defaultDisplayEventEnd:e.defaultDisplayEventEnd,disableResizing:!e.seg.eventRange.def.allDay}))}}class g extends t.BaseComponent{render(){let{props:e,context:n}=this,{options:a}=n,{seg:i}=e,r=a.eventTimeFormat||o,l=t.buildSegTimeText(i,r,n,!0,e.defaultDisplayEventEnd);return s.createElement(t.EventContainer,Object.assign({},e,{elTag:"a",elClasses:["fc-daygrid-event","fc-daygrid-dot-event"],elAttrs:t.getSegAnchorAttrs(e.seg,n),defaultGenerator:f,timeText:l,isResizing:!1,isDateSelecting:!1}))}}function f(e){return s.createElement(s.Fragment,null,s.createElement("div",{className:"fc-daygrid-event-dot",style:{borderColor:e.borderColor||e.backgroundColor}}),e.timeText&&s.createElement("div",{className:"fc-event-time"},e.timeText),s.createElement("div",{className:"fc-event-title"},e.event.title||s.createElement(s.Fragment,null," ")))}class h extends t.BaseComponent{constructor(){super(...arguments),this.compileSegs=t.memoize(u)}render(){let{props:e}=this,{allSegs:n,invisibleSegs:a}=this.compileSegs(e.singlePlacements);return s.createElement(t.MoreLinkContainer,{elClasses:["fc-daygrid-more-link"],dateProfile:e.dateProfile,todayRange:e.todayRange,allDayDate:e.allDayDate,moreCnt:e.moreCnt,allSegs:n,hiddenSegs:a,alignmentElRef:e.alignmentElRef,alignGridTop:e.alignGridTop,extraDateSpan:e.extraDateSpan,popoverContent:()=>{let a=(e.eventDrag?e.eventDrag.affectedInstances:null)||(e.eventResize?e.eventResize.affectedInstances:null)||{};return s.createElement(s.Fragment,null,n.map(n=>{let i=n.eventRange.instance.instanceId;return s.createElement("div",{className:"fc-daygrid-event-harness",key:i,style:{visibility:a[i]?"hidden":""}},d(n)?s.createElement(g,Object.assign({seg:n,isDragging:!1,isSelected:i===e.eventSelection,defaultDisplayEventEnd:!1},t.getSegMeta(n,e.todayRange))):s.createElement(c,Object.assign({seg:n,isDragging:!1,isResizing:!1,isDateSelecting:!1,isSelected:i===e.eventSelection,defaultDisplayEventEnd:!1},t.getSegMeta(n,e.todayRange))))}))}})}}function u(e){let t=[],n=[];for(let s of e)t.push(s.seg),s.isVisible||n.push(s.seg);return{allSegs:t,invisibleSegs:n}}const p=t.createFormatter({week:"narrow"});class y extends t.DateComponent{constructor(){super(...arguments),this.rootElRef=s.createRef(),this.state={dayNumberId:t.getUniqueDomId()},this.handleRootEl=e=>{t.setRef(this.rootElRef,e),t.setRef(this.props.elRef,e)}}render(){let{context:e,props:n,state:a,rootElRef:i}=this,{options:r}=e,{date:l,dateProfile:o}=n;return s.createElement(t.DayCellContainer,{elTag:"td",elRef:this.handleRootEl,elClasses:["fc-daygrid-day",...n.extraClassNames||[]],elAttrs:Object.assign(Object.assign(Object.assign({},n.extraDataAttrs),n.showDayNumber?{"aria-labelledby":a.dayNumberId}:{}),{role:"gridcell"}),defaultGenerator:m,date:l,dateProfile:o,todayRange:n.todayRange,showDayNumber:n.showDayNumber,extraRenderProps:n.extraRenderProps},(o,d)=>s.createElement("div",{className:"fc-daygrid-day-frame fc-scrollgrid-sync-inner",ref:n.innerElRef},n.showWeekNumber&&s.createElement(t.WeekNumberContainer,{elTag:"a",elClasses:["fc-daygrid-week-number"],elAttrs:t.buildNavLinkAttrs(e,l,"week"),date:l,defaultFormat:p}),Boolean(!d.isDisabled&&(n.showDayNumber||t.hasCustomDayCellContent(r)||n.forceDayTop))&&s.createElement("div",{className:"fc-daygrid-day-top"},s.createElement(o,{elTag:"a",elClasses:["fc-daygrid-day-number"],elAttrs:Object.assign(Object.assign({},t.buildNavLinkAttrs(e,l)),{id:a.dayNumberId})})),s.createElement("div",{className:"fc-daygrid-day-events",ref:n.fgContentElRef},n.fgContent,s.createElement("div",{className:"fc-daygrid-day-bottom",style:{marginTop:n.moreMarginTop}},s.createElement(h,{allDayDate:l,singlePlacements:n.singlePlacements,moreCnt:n.moreCnt,alignmentElRef:i,alignGridTop:!n.showDayNumber,extraDateSpan:n.extraDateSpan,dateProfile:n.dateProfile,eventSelection:n.eventSelection,eventDrag:n.eventDrag,eventResize:n.eventResize,todayRange:n.todayRange}))),s.createElement("div",{className:"fc-daygrid-day-bg"},n.bgContent)))}}function m(e){return e.dayNumberText||s.createElement(s.Fragment,null," ")}function v(e,t,n,s,a,i,r){let l=new R;l.allowReslicing=!0,l.strictOrder=s,!0===t||!0===n?(l.maxCoord=i,l.hiddenConsumes=!0):"number"==typeof t?l.maxStackCnt=t:"number"==typeof n&&(l.maxStackCnt=n,l.hiddenConsumes=!0);let o=[],d=[];for(let t=0;t<e.length;t+=1){let n=e[t],{instanceId:s}=n.eventRange.instance,i=a[s];null!=i?o.push({index:t,thickness:i,span:{start:n.firstCol,end:n.lastCol+1}}):d.push(n)}let c=l.addSegs(o),g=l.toRects(),{singleColPlacements:f,multiColPlacements:h,leftoverMargins:u}=function(e,t,n){let s=function(e,t){let n=[];for(let e=0;e<t;e+=1)n.push([]);for(let t of e)for(let e=t.span.start;e<t.span.end;e+=1)n[e].push(t);return n}(e,n.length),a=[],i=[],r=[];for(let e=0;e<n.length;e+=1){let l=s[e],o=[],d=0,c=0;for(let s of l){let a=t[s.index];o.push({seg:b(a,e,e+1,n),isVisible:!0,isAbsolute:!1,absoluteTop:s.levelCoord,marginTop:s.levelCoord-d}),d=s.levelCoord+s.thickness}let g=[];d=0,c=0;for(let s of l){let a=t[s.index],i=s.span.end-s.span.start>1,r=s.span.start===e;c+=s.levelCoord-d,d=s.levelCoord+s.thickness,i?(c+=s.thickness,r&&g.push({seg:b(a,s.span.start,s.span.end,n),isVisible:!0,isAbsolute:!0,absoluteTop:s.levelCoord,marginTop:0})):r&&(g.push({seg:b(a,s.span.start,s.span.end,n),isVisible:!0,isAbsolute:!1,absoluteTop:s.levelCoord,marginTop:c}),c=0)}a.push(o),i.push(g),r.push(c)}return{singleColPlacements:a,multiColPlacements:i,leftoverMargins:r}}(g,e,r),p=[],y=[];for(let e of d){h[e.firstCol].push({seg:e,isVisible:!1,isAbsolute:!0,absoluteTop:0,marginTop:0});for(let t=e.firstCol;t<=e.lastCol;t+=1)f[t].push({seg:b(e,t,t+1,r),isVisible:!1,isAbsolute:!1,absoluteTop:0,marginTop:0})}for(let e=0;e<r.length;e+=1)p.push(0);for(let t of c){let n=e[t.index],s=t.span;h[s.start].push({seg:b(n,s.start,s.end,r),isVisible:!1,isAbsolute:!0,absoluteTop:0,marginTop:0});for(let e=s.start;e<s.end;e+=1)p[e]+=1,f[e].push({seg:b(n,e,e+1,r),isVisible:!1,isAbsolute:!1,absoluteTop:0,marginTop:0})}for(let e=0;e<r.length;e+=1)y.push(u[e]);return{singleColPlacements:f,multiColPlacements:h,moreCnts:p,moreMarginTops:y}}function b(e,n,s,a){if(e.firstCol===n&&e.lastCol===s-1)return e;let i=e.eventRange,r=i.range,l=t.intersectRanges(r,{start:a[n].date,end:t.addDays(a[s-1].date,1)});return Object.assign(Object.assign({},e),{firstCol:n,lastCol:s-1,eventRange:{def:i.def,ui:Object.assign(Object.assign({},i.ui),{durationEditable:!1}),instance:i.instance,range:l},isStart:e.isStart&&l.start.valueOf()===r.start.valueOf(),isEnd:e.isEnd&&l.end.valueOf()===r.end.valueOf()})}class R extends t.SegHierarchy{constructor(){super(...arguments),this.hiddenConsumes=!1,this.forceHidden={}}addSegs(e){const n=super.addSegs(e),{entriesByLevel:s}=this,a=e=>!this.forceHidden[t.buildEntryKey(e)];for(let e=0;e<s.length;e+=1)s[e]=s[e].filter(a);return n}handleInvalidInsertion(e,n,s){const{entriesByLevel:a,forceHidden:i}=this,{touchingEntry:r,touchingLevel:l,touchingLateral:o}=e;if(this.hiddenConsumes&&r){const e=t.buildEntryKey(r);if(!i[e])if(this.allowReslicing){const e=Object.assign(Object.assign({},r),{span:t.intersectSpans(r.span,n.span)});i[t.buildEntryKey(e)]=!0,a[l][o]=e,this.splitEntry(r,n,s)}else i[e]=!0,s.push(r)}return super.handleInvalidInsertion(e,n,s)}}class E extends t.DateComponent{constructor(){super(...arguments),this.cellElRefs=new t.RefMap,this.frameElRefs=new t.RefMap,this.fgElRefs=new t.RefMap,this.segHarnessRefs=new t.RefMap,this.rootElRef=s.createRef(),this.state={framePositions:null,maxContentHeight:null,eventInstanceHeights:{}}}render(){let{props:e,state:n,context:a}=this,{options:i}=a,l=e.cells.length,o=r(e.businessHourSegs,l),d=r(e.bgEventSegs,l),c=r(this.getHighlightSegs(),l),g=r(this.getMirrorSegs(),l),{singleColPlacements:f,multiColPlacements:h,moreCnts:u,moreMarginTops:p}=v(t.sortEventSegs(e.fgEventSegs,i.eventOrder),e.dayMaxEvents,e.dayMaxEventRows,i.eventOrderStrict,n.eventInstanceHeights,n.maxContentHeight,e.cells),m=e.eventDrag&&e.eventDrag.affectedInstances||e.eventResize&&e.eventResize.affectedInstances||{};return s.createElement("tr",{ref:this.rootElRef,role:"row"},e.renderIntro&&e.renderIntro(),e.cells.map((t,n)=>{let a=this.renderFgSegs(n,e.forPrint?f[n]:h[n],e.todayRange,m),i=this.renderFgSegs(n,function(e,t){if(!e.length)return[];let n=function(e){let t={};for(let n of e)for(let e of n)t[e.seg.eventRange.instance.instanceId]=e.absoluteTop;return t}(t);return e.map(e=>({seg:e,isVisible:!0,isAbsolute:!0,absoluteTop:n[e.eventRange.instance.instanceId],marginTop:0}))}(g[n],h),e.todayRange,{},Boolean(e.eventDrag),Boolean(e.eventResize),!1);return s.createElement(y,{key:t.key,elRef:this.cellElRefs.createRef(t.key),innerElRef:this.frameElRefs.createRef(t.key),dateProfile:e.dateProfile,date:t.date,showDayNumber:e.showDayNumbers,showWeekNumber:e.showWeekNumbers&&0===n,forceDayTop:e.showWeekNumbers,todayRange:e.todayRange,eventSelection:e.eventSelection,eventDrag:e.eventDrag,eventResize:e.eventResize,extraRenderProps:t.extraRenderProps,extraDataAttrs:t.extraDataAttrs,extraClassNames:t.extraClassNames,extraDateSpan:t.extraDateSpan,moreCnt:u[n],moreMarginTop:p[n],singlePlacements:f[n],fgContentElRef:this.fgElRefs.createRef(t.key),fgContent:s.createElement(s.Fragment,null,s.createElement(s.Fragment,null,a),s.createElement(s.Fragment,null,i)),bgContent:s.createElement(s.Fragment,null,this.renderFillSegs(c[n],"highlight"),this.renderFillSegs(o[n],"non-business"),this.renderFillSegs(d[n],"bg-event"))})}))}componentDidMount(){this.updateSizing(!0)}componentDidUpdate(e,n){let s=this.props;this.updateSizing(!t.isPropsEqual(e,s))}getHighlightSegs(){let{props:e}=this;return e.eventDrag&&e.eventDrag.segs.length?e.eventDrag.segs:e.eventResize&&e.eventResize.segs.length?e.eventResize.segs:e.dateSelectionSegs}getMirrorSegs(){let{props:e}=this;return e.eventResize&&e.eventResize.segs.length?e.eventResize.segs:[]}renderFgSegs(e,n,a,i,r,l,o){let{context:f}=this,{eventSelection:h}=this.props,{framePositions:u}=this.state,p=1===this.props.cells.length,y=r||l||o,m=[];if(u)for(let v of n){let{seg:n}=v,{instanceId:b}=n.eventRange.instance,R=b+":"+e,E=v.isVisible&&!i[b],x=v.isAbsolute,S="",C="";x&&(f.isRtl?(C=0,S=u.lefts[n.lastCol]-u.lefts[n.firstCol]):(S=0,C=u.rights[n.firstCol]-u.rights[n.lastCol])),m.push(s.createElement("div",{className:"fc-daygrid-event-harness"+(x?" fc-daygrid-event-harness-abs":""),key:R,ref:y?null:this.segHarnessRefs.createRef(R),style:{visibility:E?"":"hidden",marginTop:x?"":v.marginTop,top:x?v.absoluteTop:"",left:S,right:C}},d(n)?s.createElement(g,Object.assign({seg:n,isDragging:r,isSelected:b===h,defaultDisplayEventEnd:p},t.getSegMeta(n,a))):s.createElement(c,Object.assign({seg:n,isDragging:r,isResizing:l,isDateSelecting:o,isSelected:b===h,defaultDisplayEventEnd:p},t.getSegMeta(n,a)))))}return m}renderFillSegs(e,n){let{isRtl:a}=this.context,{todayRange:i}=this.props,{framePositions:r}=this.state,l=[];if(r)for(let o of e){let e=a?{right:0,left:r.lefts[o.lastCol]-r.lefts[o.firstCol]}:{left:0,right:r.rights[o.firstCol]-r.rights[o.lastCol]};l.push(s.createElement("div",{key:t.buildEventRangeKey(o.eventRange),className:"fc-daygrid-bg-harness",style:e},"bg-event"===n?s.createElement(t.BgEvent,Object.assign({seg:o},t.getSegMeta(o,i))):t.renderFill(n)))}return s.createElement(s.Fragment,{},...l)}updateSizing(e){let{props:n,frameElRefs:s}=this;if(!n.forPrint&&null!==n.clientWidth){if(e){let e=n.cells.map(e=>s.currentMap[e.key]);if(e.length){let n=this.rootElRef.current;this.setState({framePositions:new t.PositionCache(n,e,!0,!1)})}}const a=this.state.eventInstanceHeights,i=this.queryEventInstanceHeights(),r=!0===n.dayMaxEvents||!0===n.dayMaxEventRows;this.safeSetState({eventInstanceHeights:Object.assign(Object.assign({},a),i),maxContentHeight:r?this.computeMaxContentHeight():null})}}queryEventInstanceHeights(){let e=this.segHarnessRefs.currentMap,t={};for(let n in e){let s=Math.round(e[n].getBoundingClientRect().height),a=n.split(":")[0];t[a]=Math.max(t[a]||0,s)}return t}computeMaxContentHeight(){let e=this.props.cells[0].key,t=this.cellElRefs.currentMap[e],n=this.fgElRefs.currentMap[e];return t.getBoundingClientRect().bottom-n.getBoundingClientRect().top}getCellEls(){let e=this.cellElRefs.currentMap;return this.props.cells.map(t=>e[t.key])}}E.addStateEquality({eventInstanceHeights:t.isPropsEqual});class x extends t.DateComponent{constructor(){super(...arguments),this.splitBusinessHourSegs=t.memoize(i),this.splitBgEventSegs=t.memoize(i),this.splitFgEventSegs=t.memoize(i),this.splitDateSelectionSegs=t.memoize(i),this.splitEventDrag=t.memoize(l),this.splitEventResize=t.memoize(l),this.rowRefs=new t.RefMap,this.handleRootEl=e=>{this.rootEl=e,e?this.context.registerInteractiveComponent(this,{el:e,isHitComboAllowed:this.props.isHitComboAllowed}):this.context.unregisterInteractiveComponent(this)}}render(){let{props:e}=this,{dateProfile:n,dayMaxEventRows:a,dayMaxEvents:i,expandRows:r}=e,l=e.cells.length,o=this.splitBusinessHourSegs(e.businessHourSegs,l),d=this.splitBgEventSegs(e.bgEventSegs,l),c=this.splitFgEventSegs(e.fgEventSegs,l),g=this.splitDateSelectionSegs(e.dateSelectionSegs,l),f=this.splitEventDrag(e.eventDrag,l),h=this.splitEventResize(e.eventResize,l),u=!0===i||!0===a;u&&!r&&(u=!1,a=null,i=null);let p=["fc-daygrid-body",u?"fc-daygrid-body-balanced":"fc-daygrid-body-unbalanced",r?"":"fc-daygrid-body-natural"];return s.createElement("div",{className:p.join(" "),ref:this.handleRootEl,style:{width:e.clientWidth,minWidth:e.tableMinWidth}},s.createElement(t.NowTimer,{unit:"day"},(t,u)=>s.createElement(s.Fragment,null,s.createElement("table",{role:"presentation",className:"fc-scrollgrid-sync-table",style:{width:e.clientWidth,minWidth:e.tableMinWidth,height:r?e.clientHeight:""}},e.colGroupNode,s.createElement("tbody",{role:"presentation"},e.cells.map((t,r)=>s.createElement(E,{ref:this.rowRefs.createRef(r),key:t.length?t[0].date.toISOString():r,showDayNumbers:l>1,showWeekNumbers:e.showWeekNumbers,todayRange:u,dateProfile:n,cells:t,renderIntro:e.renderRowIntro,businessHourSegs:o[r],eventSelection:e.eventSelection,bgEventSegs:d[r].filter(S),fgEventSegs:c[r],dateSelectionSegs:g[r],eventDrag:f[r],eventResize:h[r],dayMaxEvents:i,dayMaxEventRows:a,clientWidth:e.clientWidth,clientHeight:e.clientHeight,forPrint:e.forPrint})))))))}prepareHits(){this.rowPositions=new t.PositionCache(this.rootEl,this.rowRefs.collect().map(e=>e.getCellEls()[0]),!1,!0),this.colPositions=new t.PositionCache(this.rootEl,this.rowRefs.currentMap[0].getCellEls(),!0,!1)}queryHit(e,t){let{colPositions:n,rowPositions:s}=this,a=n.leftToIndex(e),i=s.topToIndex(t);if(null!=i&&null!=a){let e=this.props.cells[i][a];return{dateProfile:this.props.dateProfile,dateSpan:Object.assign({range:this.getCellRange(i,a),allDay:!0},e.extraDateSpan),dayEl:this.getCellEl(i,a),rect:{left:n.lefts[a],right:n.rights[a],top:s.tops[i],bottom:s.bottoms[i]},layer:0}}return null}getCellEl(e,t){return this.rowRefs.currentMap[e].getCellEls()[t]}getCellRange(e,n){let s=this.props.cells[e][n].date;return{start:s,end:t.addDays(s,1)}}}function S(e){return e.eventRange.def.allDay}class C extends t.Slicer{constructor(){super(...arguments),this.forceDayIfListItem=!0}sliceRange(e,t){return t.sliceRange(e)}}class w extends t.DateComponent{constructor(){super(...arguments),this.slicer=new C,this.tableRef=s.createRef()}render(){let{props:e,context:t}=this;return s.createElement(x,Object.assign({ref:this.tableRef},this.slicer.sliceProps(e,e.dateProfile,e.nextDayThreshold,t,e.dayTableModel),{dateProfile:e.dateProfile,cells:e.dayTableModel.cells,colGroupNode:e.colGroupNode,tableMinWidth:e.tableMinWidth,renderRowIntro:e.renderRowIntro,dayMaxEvents:e.dayMaxEvents,dayMaxEventRows:e.dayMaxEventRows,showWeekNumbers:e.showWeekNumbers,expandRows:e.expandRows,headerAlignElRef:e.headerAlignElRef,clientWidth:e.clientWidth,clientHeight:e.clientHeight,forPrint:e.forPrint}))}}class D extends a{constructor(){super(...arguments),this.buildDayTableModel=t.memoize(k),this.headerRef=s.createRef(),this.tableRef=s.createRef()}render(){let{options:e,dateProfileGenerator:n}=this.context,{props:a}=this,i=this.buildDayTableModel(a.dateProfile,n),r=e.dayHeaders&&s.createElement(t.DayHeader,{ref:this.headerRef,dateProfile:a.dateProfile,dates:i.headerDates,datesRepDistinctDays:1===i.rowCnt}),l=t=>s.createElement(w,{ref:this.tableRef,dateProfile:a.dateProfile,dayTableModel:i,businessHours:a.businessHours,dateSelection:a.dateSelection,eventStore:a.eventStore,eventUiBases:a.eventUiBases,eventSelection:a.eventSelection,eventDrag:a.eventDrag,eventResize:a.eventResize,nextDayThreshold:e.nextDayThreshold,colGroupNode:t.tableColGroupNode,tableMinWidth:t.tableMinWidth,dayMaxEvents:e.dayMaxEvents,dayMaxEventRows:e.dayMaxEventRows,showWeekNumbers:e.weekNumbers,expandRows:!a.isHeightAuto,headerAlignElRef:this.headerElRef,clientWidth:t.clientWidth,clientHeight:t.clientHeight,forPrint:a.forPrint});return e.dayMinWidth?this.renderHScrollLayout(r,l,i.colCnt,e.dayMinWidth):this.renderSimpleLayout(r,l)}}function k(e,n){let s=new t.DaySeriesModel(e.renderRange,n);return new t.DayTableModel(s,/year|month|week/.test(e.currentRangeUnit))}class P extends t.DateProfileGenerator{buildRenderRange(e,n,s){let a,{dateEnv:i}=this.props,r=super.buildRenderRange(e,n,s),l=r.start,o=r.end;if(/^(year|month)$/.test(n)&&(l=i.startOfWeek(l),a=i.startOfWeek(o),a.valueOf()!==o.valueOf()&&(o=t.addWeeks(a,1))),this.props.monthMode&&this.props.fixedWeekCount){let e=Math.ceil(t.diffWeeks(l,o));o=t.addWeeks(o,6-e)}return{start:l,end:o}}}t.injectStyles('\n:root {\n --fc-daygrid-event-dot-width: 8px;\n}\n\n/* help things clear margins of inner content */\n\n.fc-daygrid-day-frame,\n.fc-daygrid-day-events,\n.fc-daygrid-event-harness { /* for event top/bottom margins */\n}\n\n.fc-daygrid-day-frame:before, .fc-daygrid-day-events:before, .fc-daygrid-event-harness:before {\n content: "";\n clear: both;\n display: table; }\n\n.fc-daygrid-day-frame:after, .fc-daygrid-day-events:after, .fc-daygrid-event-harness:after {\n content: "";\n clear: both;\n display: table; }\n\n.fc .fc-daygrid-body { /* a <div> that wraps the table */\n position: relative;\n z-index: 1; /* container inner z-index\'s because <tr>s can\'t do it */\n }\n\n.fc .fc-daygrid-day.fc-day-today {\n background-color: var(--fc-today-bg-color);\n }\n\n.fc .fc-daygrid-day-frame {\n position: relative;\n min-height: 100%; /* seems to work better than `height` because sets height after rows/cells naturally do it */\n }\n\n.fc {\n\n /* cell top */\n\n}\n\n.fc .fc-daygrid-day-top {\n display: flex;\n flex-direction: row-reverse;\n }\n\n.fc .fc-day-other .fc-daygrid-day-top {\n opacity: 0.3;\n }\n\n.fc {\n\n /* day number (within cell top) */\n\n}\n\n.fc .fc-daygrid-day-number {\n position: relative;\n z-index: 4;\n padding: 4px;\n }\n\n.fc {\n\n /* event container */\n\n}\n\n.fc .fc-daygrid-day-events {\n margin-top: 1px; /* needs to be margin, not padding, so that available cell height can be computed */\n }\n\n.fc {\n\n /* positioning for balanced vs natural */\n\n}\n\n.fc .fc-daygrid-body-balanced .fc-daygrid-day-events {\n position: absolute;\n left: 0;\n right: 0;\n }\n\n.fc .fc-daygrid-body-unbalanced .fc-daygrid-day-events {\n position: relative; /* for containing abs positioned event harnesses */\n min-height: 2em; /* in addition to being a min-height during natural height, equalizes the heights a little bit */\n }\n\n.fc .fc-daygrid-body-natural { /* can coexist with -unbalanced */\n }\n\n.fc .fc-daygrid-body-natural .fc-daygrid-day-events {\n margin-bottom: 1em;\n }\n\n.fc {\n\n /* event harness */\n\n}\n\n.fc .fc-daygrid-event-harness {\n position: relative;\n }\n\n.fc .fc-daygrid-event-harness-abs {\n position: absolute;\n top: 0; /* fallback coords for when cannot yet be computed */\n left: 0; /* */\n right: 0; /* */\n }\n\n.fc .fc-daygrid-bg-harness {\n position: absolute;\n top: 0;\n bottom: 0;\n }\n\n.fc {\n\n /* bg content */\n\n}\n\n.fc .fc-daygrid-day-bg .fc-non-business { z-index: 1 }\n\n.fc .fc-daygrid-day-bg .fc-bg-event { z-index: 2 }\n\n.fc .fc-daygrid-day-bg .fc-highlight { z-index: 3 }\n\n.fc {\n\n /* events */\n\n}\n\n.fc .fc-daygrid-event {\n z-index: 6;\n margin-top: 1px;\n }\n\n.fc .fc-daygrid-event.fc-event-mirror {\n z-index: 7;\n }\n\n.fc {\n\n /* cell bottom (within day-events) */\n\n}\n\n.fc .fc-daygrid-day-bottom {\n font-size: .85em;\n padding: 2px 3px 0\n }\n\n.fc .fc-daygrid-day-bottom:before {\n content: "";\n clear: both;\n display: table; }\n\n.fc .fc-daygrid-more-link {\n position: relative;\n z-index: 4;\n cursor: pointer;\n }\n\n.fc {\n\n /* week number (within frame) */\n\n}\n\n.fc .fc-daygrid-week-number {\n position: absolute;\n z-index: 5;\n top: 0;\n padding: 2px;\n min-width: 1.5em;\n text-align: center;\n background-color: var(--fc-neutral-bg-color);\n color: var(--fc-neutral-text-color);\n }\n\n.fc {\n\n /* popover */\n\n}\n\n.fc .fc-more-popover .fc-popover-body {\n min-width: 220px;\n padding: 10px;\n }\n\n.fc-direction-ltr .fc-daygrid-event.fc-event-start,\n.fc-direction-rtl .fc-daygrid-event.fc-event-end {\n margin-left: 2px;\n}\n\n.fc-direction-ltr .fc-daygrid-event.fc-event-end,\n.fc-direction-rtl .fc-daygrid-event.fc-event-start {\n margin-right: 2px;\n}\n\n.fc-direction-ltr .fc-daygrid-week-number {\n left: 0;\n border-radius: 0 0 3px 0;\n }\n\n.fc-direction-rtl .fc-daygrid-week-number {\n right: 0;\n border-radius: 0 0 0 3px;\n }\n\n.fc-liquid-hack .fc-daygrid-day-frame {\n position: static; /* will cause inner absolute stuff to expand to <td> */\n }\n.fc-daygrid-event { /* make root-level, because will be dragged-and-dropped outside of a component root */\n position: relative; /* for z-indexes assigned later */\n white-space: nowrap;\n border-radius: 3px; /* dot event needs this to when selected */\n font-size: var(--fc-small-font-size);\n}\n/* --- the rectangle ("block") style of event --- */\n.fc-daygrid-block-event .fc-event-time {\n font-weight: bold;\n }\n.fc-daygrid-block-event .fc-event-time,\n .fc-daygrid-block-event .fc-event-title {\n padding: 1px;\n }\n/* --- the dot style of event --- */\n.fc-daygrid-dot-event {\n display: flex;\n align-items: center;\n padding: 2px 0\n\n}\n.fc-daygrid-dot-event .fc-event-title {\n flex-grow: 1;\n flex-shrink: 1;\n min-width: 0; /* important for allowing to shrink all the way */\n overflow: hidden;\n font-weight: bold;\n }\n.fc-daygrid-dot-event:hover,\n .fc-daygrid-dot-event.fc-event-mirror {\n background: rgba(0, 0, 0, 0.1);\n }\n.fc-daygrid-dot-event.fc-event-selected:before {\n /* expand hit area */\n top: -10px;\n bottom: -10px;\n }\n.fc-daygrid-event-dot { /* the actual dot */\n margin: 0 4px;\n box-sizing: content-box;\n width: 0;\n height: 0;\n border: calc(var(--fc-daygrid-event-dot-width) / 2) solid var(--fc-event-border-color);\n border-radius: calc(var(--fc-daygrid-event-dot-width) / 2);\n}\n/* --- spacing between time and title --- */\n.fc-direction-ltr .fc-daygrid-event .fc-event-time {\n margin-right: 3px;\n }\n.fc-direction-rtl .fc-daygrid-event .fc-event-time {\n margin-left: 3px;\n }\n');var M=n.createPlugin({name:"@fullcalendar/daygrid",initialView:"dayGridMonth",views:{dayGrid:{component:D,dateProfileGeneratorClass:P},dayGridDay:{type:"dayGrid",duration:{days:1}},dayGridWeek:{type:"dayGrid",duration:{weeks:1}},dayGridMonth:{type:"dayGrid",duration:{months:1},monthMode:!0,fixedWeekCount:!0}}}),T={__proto__:null,DayTable:w,DayTableSlicer:C,Table:x,TableView:a,buildDayTableModel:k,DayGridView:D};return t.globalPlugins.push(M),e.Internal=T,e.default=M,Object.defineProperty(e,"__esModule",{value:!0}),e}({},FullCalendar.Internal,FullCalendar,FullCalendar.Preact);
FullCalendar.DayGrid=function(e,t,n,s){"use strict";class i extends t.DateComponent{constructor(){super(...arguments),this.headerElRef=s.createRef()}renderSimpleLayout(e,n){let{props:i,context:r}=this,a=[],l=t.getStickyHeaderDates(r.options);return e&&a.push({type:"header",key:"header",isSticky:l,chunk:{elRef:this.headerElRef,tableClassName:"fc-col-header",rowContent:e}}),a.push({type:"body",key:"body",liquid:!0,chunk:{content:n}}),s.createElement(t.ViewContainer,{elClasses:["fc-daygrid"],viewSpec:r.viewSpec},s.createElement(t.SimpleScrollGrid,{liquid:!i.isHeightAuto&&!i.forPrint,collapsibleWidth:i.forPrint,cols:[],sections:a}))}renderHScrollLayout(e,n,i,r){let a=this.context.pluginHooks.scrollGridImpl;if(!a)throw new Error("No ScrollGrid implementation");let{props:l,context:o}=this,d=!l.forPrint&&t.getStickyHeaderDates(o.options),c=!l.forPrint&&t.getStickyFooterScrollbar(o.options),g=[];return e&&g.push({type:"header",key:"header",isSticky:d,chunks:[{key:"main",elRef:this.headerElRef,tableClassName:"fc-col-header",rowContent:e}]}),g.push({type:"body",key:"body",liquid:!0,chunks:[{key:"main",content:n}]}),c&&g.push({type:"footer",key:"footer",isSticky:!0,chunks:[{key:"main",content:t.renderScrollShim}]}),s.createElement(t.ViewContainer,{elClasses:["fc-daygrid"],viewSpec:o.viewSpec},s.createElement(a,{liquid:!l.isHeightAuto&&!l.forPrint,collapsibleWidth:l.forPrint,colGroups:[{cols:[{span:i,minWidth:r}]}],sections:g}))}}function r(e,t){let n=[];for(let e=0;e<t;e+=1)n[e]=[];for(let t of e)n[t.row].push(t);return n}function a(e,t){let n=[];for(let e=0;e<t;e+=1)n[e]=[];for(let t of e)n[t.firstCol].push(t);return n}function l(e,t){let n=[];if(e){for(let s=0;s<t;s+=1)n[s]={affectedInstances:e.affectedInstances,isEvent:e.isEvent,segs:[]};for(let t of e.segs)n[t.row].segs.push(t)}else for(let e=0;e<t;e+=1)n[e]=null;return n}const o=t.createFormatter({hour:"numeric",minute:"2-digit",omitZeroMinute:!0,meridiem:"narrow"});function d(e){let{display:t}=e.eventRange.ui;return"list-item"===t||"auto"===t&&!e.eventRange.def.allDay&&e.firstCol===e.lastCol&&e.isStart&&e.isEnd}class c extends t.BaseComponent{render(){let{props:e}=this;return s.createElement(t.StandardEvent,Object.assign({},e,{elClasses:["fc-daygrid-event","fc-daygrid-block-event","fc-h-event"],defaultTimeFormat:o,defaultDisplayEventEnd:e.defaultDisplayEventEnd,disableResizing:!e.seg.eventRange.def.allDay}))}}class g extends t.BaseComponent{render(){let{props:e,context:n}=this,{options:i}=n,{seg:r}=e,a=i.eventTimeFormat||o,l=t.buildSegTimeText(r,a,n,!0,e.defaultDisplayEventEnd);return s.createElement(t.EventContainer,Object.assign({},e,{elTag:"a",elClasses:["fc-daygrid-event","fc-daygrid-dot-event"],elAttrs:t.getSegAnchorAttrs(e.seg,n),defaultGenerator:f,timeText:l,isResizing:!1,isDateSelecting:!1}))}}function f(e){return s.createElement(s.Fragment,null,s.createElement("div",{className:"fc-daygrid-event-dot",style:{borderColor:e.borderColor||e.backgroundColor}}),e.timeText&&s.createElement("div",{className:"fc-event-time"},e.timeText),s.createElement("div",{className:"fc-event-title"},e.event.title||s.createElement(s.Fragment,null," ")))}class h extends t.BaseComponent{constructor(){super(...arguments),this.compileSegs=t.memoize(u)}render(){let{props:e}=this,{allSegs:n,invisibleSegs:i}=this.compileSegs(e.singlePlacements);return s.createElement(t.MoreLinkContainer,{elClasses:["fc-daygrid-more-link"],dateProfile:e.dateProfile,todayRange:e.todayRange,allDayDate:e.allDayDate,moreCnt:e.moreCnt,allSegs:n,hiddenSegs:i,alignmentElRef:e.alignmentElRef,alignGridTop:e.alignGridTop,extraDateSpan:e.extraDateSpan,popoverContent:()=>{let i=(e.eventDrag?e.eventDrag.affectedInstances:null)||(e.eventResize?e.eventResize.affectedInstances:null)||{};return s.createElement(s.Fragment,null,n.map(n=>{let r=n.eventRange.instance.instanceId;return s.createElement("div",{className:"fc-daygrid-event-harness",key:r,style:{visibility:i[r]?"hidden":""}},d(n)?s.createElement(g,Object.assign({seg:n,isDragging:!1,isSelected:r===e.eventSelection,defaultDisplayEventEnd:!1},t.getSegMeta(n,e.todayRange))):s.createElement(c,Object.assign({seg:n,isDragging:!1,isResizing:!1,isDateSelecting:!1,isSelected:r===e.eventSelection,defaultDisplayEventEnd:!1},t.getSegMeta(n,e.todayRange))))}))}})}}function u(e){let t=[],n=[];for(let s of e)t.push(s.seg),s.isVisible||n.push(s.seg);return{allSegs:t,invisibleSegs:n}}const p=t.createFormatter({week:"narrow"});class y extends t.DateComponent{constructor(){super(...arguments),this.rootElRef=s.createRef(),this.state={dayNumberId:t.getUniqueDomId()},this.handleRootEl=e=>{t.setRef(this.rootElRef,e),t.setRef(this.props.elRef,e)}}render(){let{context:e,props:n,state:i,rootElRef:r}=this,{options:a}=e,{date:l,dateProfile:o}=n;return s.createElement(t.DayCellContainer,{elTag:"td",elRef:this.handleRootEl,elClasses:["fc-daygrid-day",...n.extraClassNames||[]],elAttrs:Object.assign(Object.assign(Object.assign({},n.extraDataAttrs),n.showDayNumber?{"aria-labelledby":i.dayNumberId}:{}),{role:"gridcell"}),defaultGenerator:m,date:l,dateProfile:o,todayRange:n.todayRange,showDayNumber:n.showDayNumber,extraRenderProps:n.extraRenderProps},(o,d)=>s.createElement("div",{className:"fc-daygrid-day-frame fc-scrollgrid-sync-inner",ref:n.innerElRef},n.showWeekNumber&&s.createElement(t.WeekNumberContainer,{elTag:"a",elClasses:["fc-daygrid-week-number"],elAttrs:t.buildNavLinkAttrs(e,l,"week"),date:l,defaultFormat:p}),Boolean(!d.isDisabled&&(n.showDayNumber||t.hasCustomDayCellContent(a)||n.forceDayTop))&&s.createElement("div",{className:"fc-daygrid-day-top"},s.createElement(o,{elTag:"a",elClasses:["fc-daygrid-day-number"],elAttrs:Object.assign(Object.assign({},t.buildNavLinkAttrs(e,l)),{id:i.dayNumberId})})),s.createElement("div",{className:"fc-daygrid-day-events",ref:n.fgContentElRef},n.fgContent,s.createElement("div",{className:"fc-daygrid-day-bottom",style:{marginTop:n.moreMarginTop}},s.createElement(h,{allDayDate:l,singlePlacements:n.singlePlacements,moreCnt:n.moreCnt,alignmentElRef:r,alignGridTop:!n.showDayNumber,extraDateSpan:n.extraDateSpan,dateProfile:n.dateProfile,eventSelection:n.eventSelection,eventDrag:n.eventDrag,eventResize:n.eventResize,todayRange:n.todayRange}))),s.createElement("div",{className:"fc-daygrid-day-bg"},n.bgContent)))}}function m(e){return e.dayNumberText||s.createElement(s.Fragment,null," ")}function v(e,t,n,s,i,r,a){let l=new R;l.allowReslicing=!0,l.strictOrder=s,!0===t||!0===n?(l.maxCoord=r,l.hiddenConsumes=!0):"number"==typeof t?l.maxStackCnt=t:"number"==typeof n&&(l.maxStackCnt=n,l.hiddenConsumes=!0);let o=[],d=[];for(let t=0;t<e.length;t+=1){let n=e[t],{instanceId:s}=n.eventRange.instance,r=i[s];null!=r?o.push({index:t,thickness:r,span:{start:n.firstCol,end:n.lastCol+1}}):d.push(n)}let c=l.addSegs(o),g=l.toRects(),{singleColPlacements:f,multiColPlacements:h,leftoverMargins:u}=function(e,t,n){let s=function(e,t){let n=[];for(let e=0;e<t;e+=1)n.push([]);for(let t of e)for(let e=t.span.start;e<t.span.end;e+=1)n[e].push(t);return n}(e,n.length),i=[],r=[],a=[];for(let e=0;e<n.length;e+=1){let l=s[e],o=[],d=0,c=0;for(let s of l){let i=t[s.index];o.push({seg:b(i,e,e+1,n),isVisible:!0,isAbsolute:!1,absoluteTop:s.levelCoord,marginTop:s.levelCoord-d}),d=s.levelCoord+s.thickness}let g=[];d=0,c=0;for(let s of l){let i=t[s.index],r=s.span.end-s.span.start>1,a=s.span.start===e;c+=s.levelCoord-d,d=s.levelCoord+s.thickness,r?(c+=s.thickness,a&&g.push({seg:b(i,s.span.start,s.span.end,n),isVisible:!0,isAbsolute:!0,absoluteTop:s.levelCoord,marginTop:0})):a&&(g.push({seg:b(i,s.span.start,s.span.end,n),isVisible:!0,isAbsolute:!1,absoluteTop:s.levelCoord,marginTop:c}),c=0)}i.push(o),r.push(g),a.push(c)}return{singleColPlacements:i,multiColPlacements:r,leftoverMargins:a}}(g,e,a),p=[],y=[];for(let e of d){h[e.firstCol].push({seg:e,isVisible:!1,isAbsolute:!0,absoluteTop:0,marginTop:0});for(let t=e.firstCol;t<=e.lastCol;t+=1)f[t].push({seg:b(e,t,t+1,a),isVisible:!1,isAbsolute:!1,absoluteTop:0,marginTop:0})}for(let e=0;e<a.length;e+=1)p.push(0);for(let t of c){let n=e[t.index],s=t.span;h[s.start].push({seg:b(n,s.start,s.end,a),isVisible:!1,isAbsolute:!0,absoluteTop:0,marginTop:0});for(let e=s.start;e<s.end;e+=1)p[e]+=1,f[e].push({seg:b(n,e,e+1,a),isVisible:!1,isAbsolute:!1,absoluteTop:0,marginTop:0})}for(let e=0;e<a.length;e+=1)y.push(u[e]);return{singleColPlacements:f,multiColPlacements:h,moreCnts:p,moreMarginTops:y}}function b(e,n,s,i){if(e.firstCol===n&&e.lastCol===s-1)return e;let r=e.eventRange,a=r.range,l=t.intersectRanges(a,{start:i[n].date,end:t.addDays(i[s-1].date,1)});return Object.assign(Object.assign({},e),{firstCol:n,lastCol:s-1,eventRange:{def:r.def,ui:Object.assign(Object.assign({},r.ui),{durationEditable:!1}),instance:r.instance,range:l},isStart:e.isStart&&l.start.valueOf()===a.start.valueOf(),isEnd:e.isEnd&&l.end.valueOf()===a.end.valueOf()})}class R extends t.SegHierarchy{constructor(){super(...arguments),this.hiddenConsumes=!1,this.forceHidden={}}addSegs(e){const n=super.addSegs(e),{entriesByLevel:s}=this,i=e=>!this.forceHidden[t.buildEntryKey(e)];for(let e=0;e<s.length;e+=1)s[e]=s[e].filter(i);return n}handleInvalidInsertion(e,n,s){const{entriesByLevel:i,forceHidden:r}=this,{touchingEntry:a,touchingLevel:l,touchingLateral:o}=e;if(this.hiddenConsumes&&a){const e=t.buildEntryKey(a);if(!r[e])if(this.allowReslicing){const e=Object.assign(Object.assign({},a),{span:t.intersectSpans(a.span,n.span)});r[t.buildEntryKey(e)]=!0,i[l][o]=e,this.splitEntry(a,n,s)}else r[e]=!0,s.push(a)}return super.handleInvalidInsertion(e,n,s)}}class E extends t.DateComponent{constructor(){super(...arguments),this.cellElRefs=new t.RefMap,this.frameElRefs=new t.RefMap,this.fgElRefs=new t.RefMap,this.segHarnessRefs=new t.RefMap,this.rootElRef=s.createRef(),this.state={framePositions:null,maxContentHeight:null,eventInstanceHeights:{}},this.handleResize=e=>{e&&this.updateSizing(!0)}}render(){let{props:e,state:n,context:i}=this,{options:r}=i,l=e.cells.length,o=a(e.businessHourSegs,l),d=a(e.bgEventSegs,l),c=a(this.getHighlightSegs(),l),g=a(this.getMirrorSegs(),l),{singleColPlacements:f,multiColPlacements:h,moreCnts:u,moreMarginTops:p}=v(t.sortEventSegs(e.fgEventSegs,r.eventOrder),e.dayMaxEvents,e.dayMaxEventRows,r.eventOrderStrict,n.eventInstanceHeights,n.maxContentHeight,e.cells),m=e.eventDrag&&e.eventDrag.affectedInstances||e.eventResize&&e.eventResize.affectedInstances||{};return s.createElement("tr",{ref:this.rootElRef,role:"row"},e.renderIntro&&e.renderIntro(),e.cells.map((t,n)=>{let i=this.renderFgSegs(n,e.forPrint?f[n]:h[n],e.todayRange,m),r=this.renderFgSegs(n,function(e,t){if(!e.length)return[];let n=function(e){let t={};for(let n of e)for(let e of n)t[e.seg.eventRange.instance.instanceId]=e.absoluteTop;return t}(t);return e.map(e=>({seg:e,isVisible:!0,isAbsolute:!0,absoluteTop:n[e.eventRange.instance.instanceId],marginTop:0}))}(g[n],h),e.todayRange,{},Boolean(e.eventDrag),Boolean(e.eventResize),!1);return s.createElement(y,{key:t.key,elRef:this.cellElRefs.createRef(t.key),innerElRef:this.frameElRefs.createRef(t.key),dateProfile:e.dateProfile,date:t.date,showDayNumber:e.showDayNumbers,showWeekNumber:e.showWeekNumbers&&0===n,forceDayTop:e.showWeekNumbers,todayRange:e.todayRange,eventSelection:e.eventSelection,eventDrag:e.eventDrag,eventResize:e.eventResize,extraRenderProps:t.extraRenderProps,extraDataAttrs:t.extraDataAttrs,extraClassNames:t.extraClassNames,extraDateSpan:t.extraDateSpan,moreCnt:u[n],moreMarginTop:p[n],singlePlacements:f[n],fgContentElRef:this.fgElRefs.createRef(t.key),fgContent:s.createElement(s.Fragment,null,s.createElement(s.Fragment,null,i),s.createElement(s.Fragment,null,r)),bgContent:s.createElement(s.Fragment,null,this.renderFillSegs(c[n],"highlight"),this.renderFillSegs(o[n],"non-business"),this.renderFillSegs(d[n],"bg-event"))})}))}componentDidMount(){this.updateSizing(!0),this.context.addResizeHandler(this.handleResize)}componentDidUpdate(e,n){let s=this.props;this.updateSizing(!t.isPropsEqual(e,s))}componentWillUnmount(){this.context.removeResizeHandler(this.handleResize)}getHighlightSegs(){let{props:e}=this;return e.eventDrag&&e.eventDrag.segs.length?e.eventDrag.segs:e.eventResize&&e.eventResize.segs.length?e.eventResize.segs:e.dateSelectionSegs}getMirrorSegs(){let{props:e}=this;return e.eventResize&&e.eventResize.segs.length?e.eventResize.segs:[]}renderFgSegs(e,n,i,r,a,l,o){let{context:f}=this,{eventSelection:h}=this.props,{framePositions:u}=this.state,p=1===this.props.cells.length,y=a||l||o,m=[];if(u)for(let v of n){let{seg:n}=v,{instanceId:b}=n.eventRange.instance,R=b+":"+e,E=v.isVisible&&!r[b],S=v.isAbsolute,x="",C="";S&&(f.isRtl?(C=0,x=u.lefts[n.lastCol]-u.lefts[n.firstCol]):(x=0,C=u.rights[n.firstCol]-u.rights[n.lastCol])),m.push(s.createElement("div",{className:"fc-daygrid-event-harness"+(S?" fc-daygrid-event-harness-abs":""),key:R,ref:y?null:this.segHarnessRefs.createRef(R),style:{visibility:E?"":"hidden",marginTop:S?"":v.marginTop,top:S?v.absoluteTop:"",left:x,right:C}},d(n)?s.createElement(g,Object.assign({seg:n,isDragging:a,isSelected:b===h,defaultDisplayEventEnd:p},t.getSegMeta(n,i))):s.createElement(c,Object.assign({seg:n,isDragging:a,isResizing:l,isDateSelecting:o,isSelected:b===h,defaultDisplayEventEnd:p},t.getSegMeta(n,i)))))}return m}renderFillSegs(e,n){let{isRtl:i}=this.context,{todayRange:r}=this.props,{framePositions:a}=this.state,l=[];if(a)for(let o of e){let e=i?{right:0,left:a.lefts[o.lastCol]-a.lefts[o.firstCol]}:{left:0,right:a.rights[o.firstCol]-a.rights[o.lastCol]};l.push(s.createElement("div",{key:t.buildEventRangeKey(o.eventRange),className:"fc-daygrid-bg-harness",style:e},"bg-event"===n?s.createElement(t.BgEvent,Object.assign({seg:o},t.getSegMeta(o,r))):t.renderFill(n)))}return s.createElement(s.Fragment,{},...l)}updateSizing(e){let{props:n,frameElRefs:s}=this;if(!n.forPrint&&null!==n.clientWidth){if(e){let e=n.cells.map(e=>s.currentMap[e.key]);if(e.length){let n=this.rootElRef.current;this.setState({framePositions:new t.PositionCache(n,e,!0,!1)})}}const i=this.state.eventInstanceHeights,r=this.queryEventInstanceHeights(),a=!0===n.dayMaxEvents||!0===n.dayMaxEventRows;this.safeSetState({eventInstanceHeights:Object.assign(Object.assign({},i),r),maxContentHeight:a?this.computeMaxContentHeight():null})}}queryEventInstanceHeights(){let e=this.segHarnessRefs.currentMap,t={};for(let n in e){let s=Math.round(e[n].getBoundingClientRect().height),i=n.split(":")[0];t[i]=Math.max(t[i]||0,s)}return t}computeMaxContentHeight(){let e=this.props.cells[0].key,t=this.cellElRefs.currentMap[e],n=this.fgElRefs.currentMap[e];return t.getBoundingClientRect().bottom-n.getBoundingClientRect().top}getCellEls(){let e=this.cellElRefs.currentMap;return this.props.cells.map(t=>e[t.key])}}E.addStateEquality({eventInstanceHeights:t.isPropsEqual});class S extends t.DateComponent{constructor(){super(...arguments),this.splitBusinessHourSegs=t.memoize(r),this.splitBgEventSegs=t.memoize(r),this.splitFgEventSegs=t.memoize(r),this.splitDateSelectionSegs=t.memoize(r),this.splitEventDrag=t.memoize(l),this.splitEventResize=t.memoize(l),this.rowRefs=new t.RefMap,this.handleRootEl=e=>{this.rootEl=e,e?this.context.registerInteractiveComponent(this,{el:e,isHitComboAllowed:this.props.isHitComboAllowed}):this.context.unregisterInteractiveComponent(this)}}render(){let{props:e}=this,{dateProfile:n,dayMaxEventRows:i,dayMaxEvents:r,expandRows:a}=e,l=e.cells.length,o=this.splitBusinessHourSegs(e.businessHourSegs,l),d=this.splitBgEventSegs(e.bgEventSegs,l),c=this.splitFgEventSegs(e.fgEventSegs,l),g=this.splitDateSelectionSegs(e.dateSelectionSegs,l),f=this.splitEventDrag(e.eventDrag,l),h=this.splitEventResize(e.eventResize,l),u=!0===r||!0===i;u&&!a&&(u=!1,i=null,r=null);let p=["fc-daygrid-body",u?"fc-daygrid-body-balanced":"fc-daygrid-body-unbalanced",a?"":"fc-daygrid-body-natural"];return s.createElement("div",{className:p.join(" "),ref:this.handleRootEl,style:{width:e.clientWidth,minWidth:e.tableMinWidth}},s.createElement(t.NowTimer,{unit:"day"},(t,u)=>s.createElement(s.Fragment,null,s.createElement("table",{role:"presentation",className:"fc-scrollgrid-sync-table",style:{width:e.clientWidth,minWidth:e.tableMinWidth,height:a?e.clientHeight:""}},e.colGroupNode,s.createElement("tbody",{role:"presentation"},e.cells.map((t,a)=>s.createElement(E,{ref:this.rowRefs.createRef(a),key:t.length?t[0].date.toISOString():a,showDayNumbers:l>1,showWeekNumbers:e.showWeekNumbers,todayRange:u,dateProfile:n,cells:t,renderIntro:e.renderRowIntro,businessHourSegs:o[a],eventSelection:e.eventSelection,bgEventSegs:d[a].filter(x),fgEventSegs:c[a],dateSelectionSegs:g[a],eventDrag:f[a],eventResize:h[a],dayMaxEvents:r,dayMaxEventRows:i,clientWidth:e.clientWidth,clientHeight:e.clientHeight,forPrint:e.forPrint})))))))}prepareHits(){this.rowPositions=new t.PositionCache(this.rootEl,this.rowRefs.collect().map(e=>e.getCellEls()[0]),!1,!0),this.colPositions=new t.PositionCache(this.rootEl,this.rowRefs.currentMap[0].getCellEls(),!0,!1)}queryHit(e,t){let{colPositions:n,rowPositions:s}=this,i=n.leftToIndex(e),r=s.topToIndex(t);if(null!=r&&null!=i){let e=this.props.cells[r][i];return{dateProfile:this.props.dateProfile,dateSpan:Object.assign({range:this.getCellRange(r,i),allDay:!0},e.extraDateSpan),dayEl:this.getCellEl(r,i),rect:{left:n.lefts[i],right:n.rights[i],top:s.tops[r],bottom:s.bottoms[r]},layer:0}}return null}getCellEl(e,t){return this.rowRefs.currentMap[e].getCellEls()[t]}getCellRange(e,n){let s=this.props.cells[e][n].date;return{start:s,end:t.addDays(s,1)}}}function x(e){return e.eventRange.def.allDay}class C extends t.Slicer{constructor(){super(...arguments),this.forceDayIfListItem=!0}sliceRange(e,t){return t.sliceRange(e)}}class w extends t.DateComponent{constructor(){super(...arguments),this.slicer=new C,this.tableRef=s.createRef()}render(){let{props:e,context:t}=this;return s.createElement(S,Object.assign({ref:this.tableRef},this.slicer.sliceProps(e,e.dateProfile,e.nextDayThreshold,t,e.dayTableModel),{dateProfile:e.dateProfile,cells:e.dayTableModel.cells,colGroupNode:e.colGroupNode,tableMinWidth:e.tableMinWidth,renderRowIntro:e.renderRowIntro,dayMaxEvents:e.dayMaxEvents,dayMaxEventRows:e.dayMaxEventRows,showWeekNumbers:e.showWeekNumbers,expandRows:e.expandRows,headerAlignElRef:e.headerAlignElRef,clientWidth:e.clientWidth,clientHeight:e.clientHeight,forPrint:e.forPrint}))}}class D extends i{constructor(){super(...arguments),this.buildDayTableModel=t.memoize(k),this.headerRef=s.createRef(),this.tableRef=s.createRef()}render(){let{options:e,dateProfileGenerator:n}=this.context,{props:i}=this,r=this.buildDayTableModel(i.dateProfile,n),a=e.dayHeaders&&s.createElement(t.DayHeader,{ref:this.headerRef,dateProfile:i.dateProfile,dates:r.headerDates,datesRepDistinctDays:1===r.rowCnt}),l=t=>s.createElement(w,{ref:this.tableRef,dateProfile:i.dateProfile,dayTableModel:r,businessHours:i.businessHours,dateSelection:i.dateSelection,eventStore:i.eventStore,eventUiBases:i.eventUiBases,eventSelection:i.eventSelection,eventDrag:i.eventDrag,eventResize:i.eventResize,nextDayThreshold:e.nextDayThreshold,colGroupNode:t.tableColGroupNode,tableMinWidth:t.tableMinWidth,dayMaxEvents:e.dayMaxEvents,dayMaxEventRows:e.dayMaxEventRows,showWeekNumbers:e.weekNumbers,expandRows:!i.isHeightAuto,headerAlignElRef:this.headerElRef,clientWidth:t.clientWidth,clientHeight:t.clientHeight,forPrint:i.forPrint});return e.dayMinWidth?this.renderHScrollLayout(a,l,r.colCnt,e.dayMinWidth):this.renderSimpleLayout(a,l)}}function k(e,n){let s=new t.DaySeriesModel(e.renderRange,n);return new t.DayTableModel(s,/year|month|week/.test(e.currentRangeUnit))}class P extends t.DateProfileGenerator{buildRenderRange(e,n,s){let i,{dateEnv:r}=this.props,a=super.buildRenderRange(e,n,s),l=a.start,o=a.end;if(/^(year|month)$/.test(n)&&(l=r.startOfWeek(l),i=r.startOfWeek(o),i.valueOf()!==o.valueOf()&&(o=t.addWeeks(i,1))),this.props.monthMode&&this.props.fixedWeekCount){let e=Math.ceil(t.diffWeeks(l,o));o=t.addWeeks(o,6-e)}return{start:l,end:o}}}t.injectStyles(':root{--fc-daygrid-event-dot-width:8px}.fc-daygrid-day-events:after,.fc-daygrid-day-events:before,.fc-daygrid-day-frame:after,.fc-daygrid-day-frame:before,.fc-daygrid-event-harness:after,.fc-daygrid-event-harness:before{clear:both;content:"";display:table}.fc .fc-daygrid-body{position:relative;z-index:1}.fc .fc-daygrid-day.fc-day-today{background-color:var(--fc-today-bg-color)}.fc .fc-daygrid-day-frame{min-height:100%;position:relative}.fc .fc-daygrid-day-top{display:flex;flex-direction:row-reverse}.fc .fc-day-other .fc-daygrid-day-top{opacity:.3}.fc .fc-daygrid-day-number{padding:4px;position:relative;z-index:4}.fc .fc-daygrid-day-events{margin-top:1px}.fc .fc-daygrid-body-balanced .fc-daygrid-day-events{left:0;position:absolute;right:0}.fc .fc-daygrid-body-unbalanced .fc-daygrid-day-events{min-height:2em;position:relative}.fc .fc-daygrid-body-natural .fc-daygrid-day-events{margin-bottom:1em}.fc .fc-daygrid-event-harness{position:relative}.fc .fc-daygrid-event-harness-abs{left:0;position:absolute;right:0;top:0}.fc .fc-daygrid-bg-harness{bottom:0;position:absolute;top:0}.fc .fc-daygrid-day-bg .fc-non-business{z-index:1}.fc .fc-daygrid-day-bg .fc-bg-event{z-index:2}.fc .fc-daygrid-day-bg .fc-highlight{z-index:3}.fc .fc-daygrid-event{margin-top:1px;z-index:6}.fc .fc-daygrid-event.fc-event-mirror{z-index:7}.fc .fc-daygrid-day-bottom{font-size:.85em;padding:2px 3px 0}.fc .fc-daygrid-day-bottom:before{clear:both;content:"";display:table}.fc .fc-daygrid-more-link{cursor:pointer;position:relative;z-index:4}.fc .fc-daygrid-week-number{background-color:var(--fc-neutral-bg-color);color:var(--fc-neutral-text-color);min-width:1.5em;padding:2px;position:absolute;text-align:center;top:0;z-index:5}.fc .fc-more-popover .fc-popover-body{min-width:220px;padding:10px}.fc-direction-ltr .fc-daygrid-event.fc-event-start,.fc-direction-rtl .fc-daygrid-event.fc-event-end{margin-left:2px}.fc-direction-ltr .fc-daygrid-event.fc-event-end,.fc-direction-rtl .fc-daygrid-event.fc-event-start{margin-right:2px}.fc-direction-ltr .fc-daygrid-week-number{border-radius:0 0 3px 0;left:0}.fc-direction-rtl .fc-daygrid-week-number{border-radius:0 0 0 3px;right:0}.fc-liquid-hack .fc-daygrid-day-frame{position:static}.fc-daygrid-event{border-radius:3px;font-size:var(--fc-small-font-size);position:relative;white-space:nowrap}.fc-daygrid-block-event .fc-event-time{font-weight:700}.fc-daygrid-block-event .fc-event-time,.fc-daygrid-block-event .fc-event-title{padding:1px}.fc-daygrid-dot-event{align-items:center;display:flex;padding:2px 0}.fc-daygrid-dot-event .fc-event-title{flex-grow:1;flex-shrink:1;font-weight:700;min-width:0;overflow:hidden}.fc-daygrid-dot-event.fc-event-mirror,.fc-daygrid-dot-event:hover{background:rgba(0,0,0,.1)}.fc-daygrid-dot-event.fc-event-selected:before{bottom:-10px;top:-10px}.fc-daygrid-event-dot{border:calc(var(--fc-daygrid-event-dot-width)/2) solid var(--fc-event-border-color);border-radius:calc(var(--fc-daygrid-event-dot-width)/2);box-sizing:content-box;height:0;margin:0 4px;width:0}.fc-direction-ltr .fc-daygrid-event .fc-event-time{margin-right:3px}.fc-direction-rtl .fc-daygrid-event .fc-event-time{margin-left:3px}');var M=n.createPlugin({name:"@fullcalendar/daygrid",initialView:"dayGridMonth",views:{dayGrid:{component:D,dateProfileGeneratorClass:P},dayGridDay:{type:"dayGrid",duration:{days:1}},dayGridWeek:{type:"dayGrid",duration:{weeks:1}},dayGridMonth:{type:"dayGrid",duration:{months:1},monthMode:!0,fixedWeekCount:!0}}}),T={__proto__:null,DayTable:w,DayTableSlicer:C,Table:S,TableView:i,buildDayTableModel:k,DayGridView:D};return t.globalPlugins.push(M),e.Internal=T,e.default=M,Object.defineProperty(e,"__esModule",{value:!0}),e}({},FullCalendar.Internal,FullCalendar,FullCalendar.Preact);

@@ -34,3 +34,3 @@ import { createPlugin } from '@fullcalendar/core/index.js';

var css_248z = "\n:root {\n --fc-daygrid-event-dot-width: 8px;\n}\n\n/* help things clear margins of inner content */\n\n.fc-daygrid-day-frame,\n.fc-daygrid-day-events,\n.fc-daygrid-event-harness { /* for event top/bottom margins */\n}\n\n.fc-daygrid-day-frame:before, .fc-daygrid-day-events:before, .fc-daygrid-event-harness:before {\n content: \"\";\n clear: both;\n display: table; }\n\n.fc-daygrid-day-frame:after, .fc-daygrid-day-events:after, .fc-daygrid-event-harness:after {\n content: \"\";\n clear: both;\n display: table; }\n\n.fc .fc-daygrid-body { /* a <div> that wraps the table */\n position: relative;\n z-index: 1; /* container inner z-index's because <tr>s can't do it */\n }\n\n.fc .fc-daygrid-day.fc-day-today {\n background-color: var(--fc-today-bg-color);\n }\n\n.fc .fc-daygrid-day-frame {\n position: relative;\n min-height: 100%; /* seems to work better than `height` because sets height after rows/cells naturally do it */\n }\n\n.fc {\n\n /* cell top */\n\n}\n\n.fc .fc-daygrid-day-top {\n display: flex;\n flex-direction: row-reverse;\n }\n\n.fc .fc-day-other .fc-daygrid-day-top {\n opacity: 0.3;\n }\n\n.fc {\n\n /* day number (within cell top) */\n\n}\n\n.fc .fc-daygrid-day-number {\n position: relative;\n z-index: 4;\n padding: 4px;\n }\n\n.fc {\n\n /* event container */\n\n}\n\n.fc .fc-daygrid-day-events {\n margin-top: 1px; /* needs to be margin, not padding, so that available cell height can be computed */\n }\n\n.fc {\n\n /* positioning for balanced vs natural */\n\n}\n\n.fc .fc-daygrid-body-balanced .fc-daygrid-day-events {\n position: absolute;\n left: 0;\n right: 0;\n }\n\n.fc .fc-daygrid-body-unbalanced .fc-daygrid-day-events {\n position: relative; /* for containing abs positioned event harnesses */\n min-height: 2em; /* in addition to being a min-height during natural height, equalizes the heights a little bit */\n }\n\n.fc .fc-daygrid-body-natural { /* can coexist with -unbalanced */\n }\n\n.fc .fc-daygrid-body-natural .fc-daygrid-day-events {\n margin-bottom: 1em;\n }\n\n.fc {\n\n /* event harness */\n\n}\n\n.fc .fc-daygrid-event-harness {\n position: relative;\n }\n\n.fc .fc-daygrid-event-harness-abs {\n position: absolute;\n top: 0; /* fallback coords for when cannot yet be computed */\n left: 0; /* */\n right: 0; /* */\n }\n\n.fc .fc-daygrid-bg-harness {\n position: absolute;\n top: 0;\n bottom: 0;\n }\n\n.fc {\n\n /* bg content */\n\n}\n\n.fc .fc-daygrid-day-bg .fc-non-business { z-index: 1 }\n\n.fc .fc-daygrid-day-bg .fc-bg-event { z-index: 2 }\n\n.fc .fc-daygrid-day-bg .fc-highlight { z-index: 3 }\n\n.fc {\n\n /* events */\n\n}\n\n.fc .fc-daygrid-event {\n z-index: 6;\n margin-top: 1px;\n }\n\n.fc .fc-daygrid-event.fc-event-mirror {\n z-index: 7;\n }\n\n.fc {\n\n /* cell bottom (within day-events) */\n\n}\n\n.fc .fc-daygrid-day-bottom {\n font-size: .85em;\n padding: 2px 3px 0\n }\n\n.fc .fc-daygrid-day-bottom:before {\n content: \"\";\n clear: both;\n display: table; }\n\n.fc .fc-daygrid-more-link {\n position: relative;\n z-index: 4;\n cursor: pointer;\n }\n\n.fc {\n\n /* week number (within frame) */\n\n}\n\n.fc .fc-daygrid-week-number {\n position: absolute;\n z-index: 5;\n top: 0;\n padding: 2px;\n min-width: 1.5em;\n text-align: center;\n background-color: var(--fc-neutral-bg-color);\n color: var(--fc-neutral-text-color);\n }\n\n.fc {\n\n /* popover */\n\n}\n\n.fc .fc-more-popover .fc-popover-body {\n min-width: 220px;\n padding: 10px;\n }\n\n.fc-direction-ltr .fc-daygrid-event.fc-event-start,\n.fc-direction-rtl .fc-daygrid-event.fc-event-end {\n margin-left: 2px;\n}\n\n.fc-direction-ltr .fc-daygrid-event.fc-event-end,\n.fc-direction-rtl .fc-daygrid-event.fc-event-start {\n margin-right: 2px;\n}\n\n.fc-direction-ltr .fc-daygrid-week-number {\n left: 0;\n border-radius: 0 0 3px 0;\n }\n\n.fc-direction-rtl .fc-daygrid-week-number {\n right: 0;\n border-radius: 0 0 0 3px;\n }\n\n.fc-liquid-hack .fc-daygrid-day-frame {\n position: static; /* will cause inner absolute stuff to expand to <td> */\n }\n.fc-daygrid-event { /* make root-level, because will be dragged-and-dropped outside of a component root */\n position: relative; /* for z-indexes assigned later */\n white-space: nowrap;\n border-radius: 3px; /* dot event needs this to when selected */\n font-size: var(--fc-small-font-size);\n}\n/* --- the rectangle (\"block\") style of event --- */\n.fc-daygrid-block-event .fc-event-time {\n font-weight: bold;\n }\n.fc-daygrid-block-event .fc-event-time,\n .fc-daygrid-block-event .fc-event-title {\n padding: 1px;\n }\n/* --- the dot style of event --- */\n.fc-daygrid-dot-event {\n display: flex;\n align-items: center;\n padding: 2px 0\n\n}\n.fc-daygrid-dot-event .fc-event-title {\n flex-grow: 1;\n flex-shrink: 1;\n min-width: 0; /* important for allowing to shrink all the way */\n overflow: hidden;\n font-weight: bold;\n }\n.fc-daygrid-dot-event:hover,\n .fc-daygrid-dot-event.fc-event-mirror {\n background: rgba(0, 0, 0, 0.1);\n }\n.fc-daygrid-dot-event.fc-event-selected:before {\n /* expand hit area */\n top: -10px;\n bottom: -10px;\n }\n.fc-daygrid-event-dot { /* the actual dot */\n margin: 0 4px;\n box-sizing: content-box;\n width: 0;\n height: 0;\n border: calc(var(--fc-daygrid-event-dot-width) / 2) solid var(--fc-event-border-color);\n border-radius: calc(var(--fc-daygrid-event-dot-width) / 2);\n}\n/* --- spacing between time and title --- */\n.fc-direction-ltr .fc-daygrid-event .fc-event-time {\n margin-right: 3px;\n }\n.fc-direction-rtl .fc-daygrid-event .fc-event-time {\n margin-left: 3px;\n }\n";
var css_248z = ":root{--fc-daygrid-event-dot-width:8px}.fc-daygrid-day-events:after,.fc-daygrid-day-events:before,.fc-daygrid-day-frame:after,.fc-daygrid-day-frame:before,.fc-daygrid-event-harness:after,.fc-daygrid-event-harness:before{clear:both;content:\"\";display:table}.fc .fc-daygrid-body{position:relative;z-index:1}.fc .fc-daygrid-day.fc-day-today{background-color:var(--fc-today-bg-color)}.fc .fc-daygrid-day-frame{min-height:100%;position:relative}.fc .fc-daygrid-day-top{display:flex;flex-direction:row-reverse}.fc .fc-day-other .fc-daygrid-day-top{opacity:.3}.fc .fc-daygrid-day-number{padding:4px;position:relative;z-index:4}.fc .fc-daygrid-day-events{margin-top:1px}.fc .fc-daygrid-body-balanced .fc-daygrid-day-events{left:0;position:absolute;right:0}.fc .fc-daygrid-body-unbalanced .fc-daygrid-day-events{min-height:2em;position:relative}.fc .fc-daygrid-body-natural .fc-daygrid-day-events{margin-bottom:1em}.fc .fc-daygrid-event-harness{position:relative}.fc .fc-daygrid-event-harness-abs{left:0;position:absolute;right:0;top:0}.fc .fc-daygrid-bg-harness{bottom:0;position:absolute;top:0}.fc .fc-daygrid-day-bg .fc-non-business{z-index:1}.fc .fc-daygrid-day-bg .fc-bg-event{z-index:2}.fc .fc-daygrid-day-bg .fc-highlight{z-index:3}.fc .fc-daygrid-event{margin-top:1px;z-index:6}.fc .fc-daygrid-event.fc-event-mirror{z-index:7}.fc .fc-daygrid-day-bottom{font-size:.85em;padding:2px 3px 0}.fc .fc-daygrid-day-bottom:before{clear:both;content:\"\";display:table}.fc .fc-daygrid-more-link{cursor:pointer;position:relative;z-index:4}.fc .fc-daygrid-week-number{background-color:var(--fc-neutral-bg-color);color:var(--fc-neutral-text-color);min-width:1.5em;padding:2px;position:absolute;text-align:center;top:0;z-index:5}.fc .fc-more-popover .fc-popover-body{min-width:220px;padding:10px}.fc-direction-ltr .fc-daygrid-event.fc-event-start,.fc-direction-rtl .fc-daygrid-event.fc-event-end{margin-left:2px}.fc-direction-ltr .fc-daygrid-event.fc-event-end,.fc-direction-rtl .fc-daygrid-event.fc-event-start{margin-right:2px}.fc-direction-ltr .fc-daygrid-week-number{border-radius:0 0 3px 0;left:0}.fc-direction-rtl .fc-daygrid-week-number{border-radius:0 0 0 3px;right:0}.fc-liquid-hack .fc-daygrid-day-frame{position:static}.fc-daygrid-event{border-radius:3px;font-size:var(--fc-small-font-size);position:relative;white-space:nowrap}.fc-daygrid-block-event .fc-event-time{font-weight:700}.fc-daygrid-block-event .fc-event-time,.fc-daygrid-block-event .fc-event-title{padding:1px}.fc-daygrid-dot-event{align-items:center;display:flex;padding:2px 0}.fc-daygrid-dot-event .fc-event-title{flex-grow:1;flex-shrink:1;font-weight:700;min-width:0;overflow:hidden}.fc-daygrid-dot-event.fc-event-mirror,.fc-daygrid-dot-event:hover{background:rgba(0,0,0,.1)}.fc-daygrid-dot-event.fc-event-selected:before{bottom:-10px;top:-10px}.fc-daygrid-event-dot{border:calc(var(--fc-daygrid-event-dot-width)/2) solid var(--fc-event-border-color);border-radius:calc(var(--fc-daygrid-event-dot-width)/2);box-sizing:content-box;height:0;margin:0 4px;width:0}.fc-direction-ltr .fc-daygrid-event .fc-event-time{margin-right:3px}.fc-direction-rtl .fc-daygrid-event .fc-event-time{margin-left:3px}";
injectStyles(css_248z);

@@ -37,0 +37,0 @@

@@ -1,4 +0,85 @@

import { createFormatter, BaseComponent, StandardEvent, buildSegTimeText, EventContainer, getSegAnchorAttrs, memoize, MoreLinkContainer, getSegMeta, DateComponent, getUniqueDomId, setRef, DayCellContainer, WeekNumberContainer, buildNavLinkAttrs, hasCustomDayCellContent, intersectRanges, addDays, SegHierarchy, buildEntryKey, intersectSpans, RefMap, sortEventSegs, isPropsEqual, buildEventRangeKey, BgEvent, renderFill, PositionCache, NowTimer, Slicer, getStickyHeaderDates, ViewContainer, SimpleScrollGrid, getStickyFooterScrollbar, renderScrollShim, DayHeader, DaySeriesModel, DayTableModel } from '@fullcalendar/core/internal.js';
import { createElement, Fragment, createRef } from '@fullcalendar/core/preact.js';
import { DateComponent, getStickyHeaderDates, ViewContainer, SimpleScrollGrid, getStickyFooterScrollbar, renderScrollShim, createFormatter, BaseComponent, StandardEvent, buildSegTimeText, EventContainer, getSegAnchorAttrs, memoize, MoreLinkContainer, getSegMeta, getUniqueDomId, setRef, DayCellContainer, WeekNumberContainer, buildNavLinkAttrs, hasCustomDayCellContent, intersectRanges, addDays, SegHierarchy, buildEntryKey, intersectSpans, RefMap, sortEventSegs, isPropsEqual, buildEventRangeKey, BgEvent, renderFill, PositionCache, NowTimer, Slicer, DayHeader, DaySeriesModel, DayTableModel } from '@fullcalendar/core/internal.js';
import { createRef, createElement, Fragment } from '@fullcalendar/core/preact.js';
/* An abstract class for the daygrid views, as well as month view. Renders one or more rows of day cells.
----------------------------------------------------------------------------------------------------------------------*/
// It is a manager for a Table subcomponent, which does most of the heavy lifting.
// It is responsible for managing width/height.
class TableView extends DateComponent {
constructor() {
super(...arguments);
this.headerElRef = createRef();
}
renderSimpleLayout(headerRowContent, bodyContent) {
let { props, context } = this;
let sections = [];
let stickyHeaderDates = getStickyHeaderDates(context.options);
if (headerRowContent) {
sections.push({
type: 'header',
key: 'header',
isSticky: stickyHeaderDates,
chunk: {
elRef: this.headerElRef,
tableClassName: 'fc-col-header',
rowContent: headerRowContent,
},
});
}
sections.push({
type: 'body',
key: 'body',
liquid: true,
chunk: { content: bodyContent },
});
return (createElement(ViewContainer, { elClasses: ['fc-daygrid'], viewSpec: context.viewSpec },
createElement(SimpleScrollGrid, { liquid: !props.isHeightAuto && !props.forPrint, collapsibleWidth: props.forPrint, cols: [] /* TODO: make optional? */, sections: sections })));
}
renderHScrollLayout(headerRowContent, bodyContent, colCnt, dayMinWidth) {
let ScrollGrid = this.context.pluginHooks.scrollGridImpl;
if (!ScrollGrid) {
throw new Error('No ScrollGrid implementation');
}
let { props, context } = this;
let stickyHeaderDates = !props.forPrint && getStickyHeaderDates(context.options);
let stickyFooterScrollbar = !props.forPrint && getStickyFooterScrollbar(context.options);
let sections = [];
if (headerRowContent) {
sections.push({
type: 'header',
key: 'header',
isSticky: stickyHeaderDates,
chunks: [{
key: 'main',
elRef: this.headerElRef,
tableClassName: 'fc-col-header',
rowContent: headerRowContent,
}],
});
}
sections.push({
type: 'body',
key: 'body',
liquid: true,
chunks: [{
key: 'main',
content: bodyContent,
}],
});
if (stickyFooterScrollbar) {
sections.push({
type: 'footer',
key: 'footer',
isSticky: true,
chunks: [{
key: 'main',
content: renderScrollShim,
}],
});
}
return (createElement(ViewContainer, { elClasses: ['fc-daygrid'], viewSpec: context.viewSpec },
createElement(ScrollGrid, { liquid: !props.isHeightAuto && !props.forPrint, collapsibleWidth: props.forPrint, colGroups: [{ cols: [{ span: colCnt, minWidth: dayMinWidth }] }], sections: sections })));
}
}
function splitSegsByRow(segs, rowCnt) {

@@ -393,2 +474,7 @@ let byRow = [];

};
this.handleResize = (isForced) => {
if (isForced) {
this.updateSizing(true); // isExternal=true
}
};
}

@@ -425,2 +511,3 @@ render() {

this.updateSizing(true);
this.context.addResizeHandler(this.handleResize);
}

@@ -431,2 +518,5 @@ componentDidUpdate(prevProps, prevState) {

}
componentWillUnmount() {
this.context.removeResizeHandler(this.handleResize);
}
getHighlightSegs() {

@@ -715,83 +805,2 @@ let { props } = this;

/* An abstract class for the daygrid views, as well as month view. Renders one or more rows of day cells.
----------------------------------------------------------------------------------------------------------------------*/
// It is a manager for a Table subcomponent, which does most of the heavy lifting.
// It is responsible for managing width/height.
class TableView extends DateComponent {
constructor() {
super(...arguments);
this.headerElRef = createRef();
}
renderSimpleLayout(headerRowContent, bodyContent) {
let { props, context } = this;
let sections = [];
let stickyHeaderDates = getStickyHeaderDates(context.options);
if (headerRowContent) {
sections.push({
type: 'header',
key: 'header',
isSticky: stickyHeaderDates,
chunk: {
elRef: this.headerElRef,
tableClassName: 'fc-col-header',
rowContent: headerRowContent,
},
});
}
sections.push({
type: 'body',
key: 'body',
liquid: true,
chunk: { content: bodyContent },
});
return (createElement(ViewContainer, { elClasses: ['fc-daygrid'], viewSpec: context.viewSpec },
createElement(SimpleScrollGrid, { liquid: !props.isHeightAuto && !props.forPrint, collapsibleWidth: props.forPrint, cols: [] /* TODO: make optional? */, sections: sections })));
}
renderHScrollLayout(headerRowContent, bodyContent, colCnt, dayMinWidth) {
let ScrollGrid = this.context.pluginHooks.scrollGridImpl;
if (!ScrollGrid) {
throw new Error('No ScrollGrid implementation');
}
let { props, context } = this;
let stickyHeaderDates = !props.forPrint && getStickyHeaderDates(context.options);
let stickyFooterScrollbar = !props.forPrint && getStickyFooterScrollbar(context.options);
let sections = [];
if (headerRowContent) {
sections.push({
type: 'header',
key: 'header',
isSticky: stickyHeaderDates,
chunks: [{
key: 'main',
elRef: this.headerElRef,
tableClassName: 'fc-col-header',
rowContent: headerRowContent,
}],
});
}
sections.push({
type: 'body',
key: 'body',
liquid: true,
chunks: [{
key: 'main',
content: bodyContent,
}],
});
if (stickyFooterScrollbar) {
sections.push({
type: 'footer',
key: 'footer',
isSticky: true,
chunks: [{
key: 'main',
content: renderScrollShim,
}],
});
}
return (createElement(ViewContainer, { elClasses: ['fc-daygrid'], viewSpec: context.viewSpec },
createElement(ScrollGrid, { liquid: !props.isHeightAuto && !props.forPrint, collapsibleWidth: props.forPrint, colGroups: [{ cols: [{ span: colCnt, minWidth: dayMinWidth }] }], sections: sections })));
}
}
class DayTableView extends TableView {

@@ -798,0 +807,0 @@ constructor() {

{
"name": "@fullcalendar/daygrid",
"version": "6.0.0-beta.4",
"version": "6.0.0",
"title": "FullCalendar Day Grid Plugin",
"description": "Display events on a month view or \"day grid\" view",
"homepage": "https://fullcalendar.io/docs/month-view",
"keywords": [
"calendar",
"event",
"full-sized"
"full-sized",
"fullcalendar",
"month",
"month-view"
],
"homepage": "https://fullcalendar.io/",
"docs": "https://fullcalendar.io/docs/month-view",
"peerDependencies": {
"@fullcalendar/core": "~6.0.0"
},
"type": "module",
"bugs": "https://fullcalendar.io/reporting-bugs",

@@ -15,3 +23,2 @@ "repository": {

"url": "https://github.com/fullcalendar/fullcalendar.git",
"homepage": "https://github.com/fullcalendar/fullcalendar",
"directory": "packages/daygrid"

@@ -26,8 +33,2 @@ },

"copyright": "2022 Adam Shaw",
"type": "module",
"title": "FullCalendar Day Grid Plugin",
"description": "Display events on Month view or DayGrid view",
"peerDependencies": {
"@fullcalendar/core": "6.0.0-beta.4"
},
"main": "./index.cjs",

@@ -34,0 +35,0 @@ "module": "./index.js",

# FullCalendar Day Grid Plugin
Display events on Month view or DayGrid view
Display events on a [month view](https://fullcalendar.io/docs/month-view) or ["day grid" view](https://fullcalendar.io/docs/daygrid-view)
[View the docs &raquo;](https://fullcalendar.io/docs/month-view)
## Installation
This package was created from the [FullCalendar monorepo &raquo;](https://github.com/fullcalendar/fullcalendar)
Install the necessary packages:
```sh
npm install @fullcalendar/core @fullcalendar/daygrid
```
## Usage
Instantiate a Calendar with the necessary plugin:
```js
import { Calendar } from '@fullcalendar/core'
import dayGridPlugin from '@fullcalendar/daygrid'
const calendarEl = document.getElementById('calendar')
const calendar = new Calendar(calendarEl, {
plugins: [dayGridPlugin],
initialView: 'dayGridMonth',
events: [
{ title: 'Meeting', start: new Date() }
]
})
calendar.render()
```

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc