@fullcalendar/daygrid 6.0.0 → 6.0.2

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/index.global.js CHANGED
@@ -1,9 +1,9 @@
1
1
  /*!
2
- FullCalendar Day Grid Plugin v6.0.0
2
+ FullCalendar Day Grid Plugin v6.0.2
3
3
  Docs & License: https://fullcalendar.io/docs/month-view
4
4
  (c) 2022 Adam Shaw
5
5
  */
6
- FullCalendar.DayGrid = (function (exports, internal$1, core, preact) {
6
+ FullCalendar.DayGrid = (function (exports, core, internal$1, preact) {
7
7
  'use strict';
8
8
 
9
9
  /* An abstract class for the daygrid views, as well as month view. Renders one or more rows of day cells.
@@ -893,7 +893,7 @@ FullCalendar.DayGrid = (function (exports, internal$1, core, preact) {
893
893
  DayGridView: DayTableView
894
894
  };
895
895
 
896
- internal$1.globalPlugins.push(plugin);
896
+ core.globalPlugins.push(plugin);
897
897
 
898
898
  exports.Internal = internal;
899
899
  exports["default"] = plugin;
@@ -902,4 +902,4 @@ FullCalendar.DayGrid = (function (exports, internal$1, core, preact) {
902
902
 
903
903
  return exports;
904
904
 
905
- })({}, FullCalendar.Internal, FullCalendar, FullCalendar.Preact);
905
+ })({}, FullCalendar, FullCalendar.Internal, FullCalendar.Preact);
@@ -1,6 +1,6 @@
1
1
  /*!
2
- FullCalendar Day Grid Plugin v6.0.0
2
+ FullCalendar Day Grid Plugin v6.0.2
3
3
  Docs & License: https://fullcalendar.io/docs/month-view
4
4
  (c) 2022 Adam Shaw
5
5
  */
6
- 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);
6
+ FullCalendar.DayGrid=function(e,t,n,s){"use strict";class i extends n.DateComponent{constructor(){super(...arguments),this.headerElRef=s.createRef()}renderSimpleLayout(e,t){let{props:i,context:r}=this,a=[],l=n.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:t}}),s.createElement(n.ViewContainer,{elClasses:["fc-daygrid"],viewSpec:r.viewSpec},s.createElement(n.SimpleScrollGrid,{liquid:!i.isHeightAuto&&!i.forPrint,collapsibleWidth:i.forPrint,cols:[],sections:a}))}renderHScrollLayout(e,t,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&&n.getStickyHeaderDates(o.options),c=!l.forPrint&&n.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:t}]}),c&&g.push({type:"footer",key:"footer",isSticky:!0,chunks:[{key:"main",content:n.renderScrollShim}]}),s.createElement(n.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=n.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 n.BaseComponent{render(){let{props:e}=this;return s.createElement(n.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 n.BaseComponent{render(){let{props:e,context:t}=this,{options:i}=t,{seg:r}=e,a=i.eventTimeFormat||o,l=n.buildSegTimeText(r,a,t,!0,e.defaultDisplayEventEnd);return s.createElement(n.EventContainer,Object.assign({},e,{elTag:"a",elClasses:["fc-daygrid-event","fc-daygrid-dot-event"],elAttrs:n.getSegAnchorAttrs(e.seg,t),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 n.BaseComponent{constructor(){super(...arguments),this.compileSegs=n.memoize(u)}render(){let{props:e}=this,{allSegs:t,invisibleSegs:i}=this.compileSegs(e.singlePlacements);return s.createElement(n.MoreLinkContainer,{elClasses:["fc-daygrid-more-link"],dateProfile:e.dateProfile,todayRange:e.todayRange,allDayDate:e.allDayDate,moreCnt:e.moreCnt,allSegs:t,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,t.map(t=>{let r=t.eventRange.instance.instanceId;return s.createElement("div",{className:"fc-daygrid-event-harness",key:r,style:{visibility:i[r]?"hidden":""}},d(t)?s.createElement(g,Object.assign({seg:t,isDragging:!1,isSelected:r===e.eventSelection,defaultDisplayEventEnd:!1},n.getSegMeta(t,e.todayRange))):s.createElement(c,Object.assign({seg:t,isDragging:!1,isResizing:!1,isDateSelecting:!1,isSelected:r===e.eventSelection,defaultDisplayEventEnd:!1},n.getSegMeta(t,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=n.createFormatter({week:"narrow"});class y extends n.DateComponent{constructor(){super(...arguments),this.rootElRef=s.createRef(),this.state={dayNumberId:n.getUniqueDomId()},this.handleRootEl=e=>{n.setRef(this.rootElRef,e),n.setRef(this.props.elRef,e)}}render(){let{context:e,props:t,state:i,rootElRef:r}=this,{options:a}=e,{date:l,dateProfile:o}=t;return s.createElement(n.DayCellContainer,{elTag:"td",elRef:this.handleRootEl,elClasses:["fc-daygrid-day",...t.extraClassNames||[]],elAttrs:Object.assign(Object.assign(Object.assign({},t.extraDataAttrs),t.showDayNumber?{"aria-labelledby":i.dayNumberId}:{}),{role:"gridcell"}),defaultGenerator:m,date:l,dateProfile:o,todayRange:t.todayRange,showDayNumber:t.showDayNumber,extraRenderProps:t.extraRenderProps},(o,d)=>s.createElement("div",{className:"fc-daygrid-day-frame fc-scrollgrid-sync-inner",ref:t.innerElRef},t.showWeekNumber&&s.createElement(n.WeekNumberContainer,{elTag:"a",elClasses:["fc-daygrid-week-number"],elAttrs:n.buildNavLinkAttrs(e,l,"week"),date:l,defaultFormat:p}),Boolean(!d.isDisabled&&(t.showDayNumber||n.hasCustomDayCellContent(a)||t.forceDayTop))&&s.createElement("div",{className:"fc-daygrid-day-top"},s.createElement(o,{elTag:"a",elClasses:["fc-daygrid-day-number"],elAttrs:Object.assign(Object.assign({},n.buildNavLinkAttrs(e,l)),{id:i.dayNumberId})})),s.createElement("div",{className:"fc-daygrid-day-events",ref:t.fgContentElRef},t.fgContent,s.createElement("div",{className:"fc-daygrid-day-bottom",style:{marginTop:t.moreMarginTop}},s.createElement(h,{allDayDate:l,singlePlacements:t.singlePlacements,moreCnt:t.moreCnt,alignmentElRef:r,alignGridTop:!t.showDayNumber,extraDateSpan:t.extraDateSpan,dateProfile:t.dateProfile,eventSelection:t.eventSelection,eventDrag:t.eventDrag,eventResize:t.eventResize,todayRange:t.todayRange}))),s.createElement("div",{className:"fc-daygrid-day-bg"},t.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,t,s,i){if(e.firstCol===t&&e.lastCol===s-1)return e;let r=e.eventRange,a=r.range,l=n.intersectRanges(a,{start:i[t].date,end:n.addDays(i[s-1].date,1)});return Object.assign(Object.assign({},e),{firstCol:t,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 n.SegHierarchy{constructor(){super(...arguments),this.hiddenConsumes=!1,this.forceHidden={}}addSegs(e){const t=super.addSegs(e),{entriesByLevel:s}=this,i=e=>!this.forceHidden[n.buildEntryKey(e)];for(let e=0;e<s.length;e+=1)s[e]=s[e].filter(i);return t}handleInvalidInsertion(e,t,s){const{entriesByLevel:i,forceHidden:r}=this,{touchingEntry:a,touchingLevel:l,touchingLateral:o}=e;if(this.hiddenConsumes&&a){const e=n.buildEntryKey(a);if(!r[e])if(this.allowReslicing){const e=Object.assign(Object.assign({},a),{span:n.intersectSpans(a.span,t.span)});r[n.buildEntryKey(e)]=!0,i[l][o]=e,this.splitEntry(a,t,s)}else r[e]=!0,s.push(a)}return super.handleInvalidInsertion(e,t,s)}}class E extends n.DateComponent{constructor(){super(...arguments),this.cellElRefs=new n.RefMap,this.frameElRefs=new n.RefMap,this.fgElRefs=new n.RefMap,this.segHarnessRefs=new n.RefMap,this.rootElRef=s.createRef(),this.state={framePositions:null,maxContentHeight:null,eventInstanceHeights:{}},this.handleResize=e=>{e&&this.updateSizing(!0)}}render(){let{props:e,state:t,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(n.sortEventSegs(e.fgEventSegs,r.eventOrder),e.dayMaxEvents,e.dayMaxEventRows,r.eventOrderStrict,t.eventInstanceHeights,t.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,t){let s=this.props;this.updateSizing(!n.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,t,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 t){let{seg:t}=v,{instanceId:b}=t.eventRange.instance,R=b+":"+e,E=v.isVisible&&!r[b],S=v.isAbsolute,x="",C="";S&&(f.isRtl?(C=0,x=u.lefts[t.lastCol]-u.lefts[t.firstCol]):(x=0,C=u.rights[t.firstCol]-u.rights[t.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(t)?s.createElement(g,Object.assign({seg:t,isDragging:a,isSelected:b===h,defaultDisplayEventEnd:p},n.getSegMeta(t,i))):s.createElement(c,Object.assign({seg:t,isDragging:a,isResizing:l,isDateSelecting:o,isSelected:b===h,defaultDisplayEventEnd:p},n.getSegMeta(t,i)))))}return m}renderFillSegs(e,t){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:n.buildEventRangeKey(o.eventRange),className:"fc-daygrid-bg-harness",style:e},"bg-event"===t?s.createElement(n.BgEvent,Object.assign({seg:o},n.getSegMeta(o,r))):n.renderFill(t)))}return s.createElement(s.Fragment,{},...l)}updateSizing(e){let{props:t,frameElRefs:s}=this;if(!t.forPrint&&null!==t.clientWidth){if(e){let e=t.cells.map(e=>s.currentMap[e.key]);if(e.length){let t=this.rootElRef.current;this.setState({framePositions:new n.PositionCache(t,e,!0,!1)})}}const i=this.state.eventInstanceHeights,r=this.queryEventInstanceHeights(),a=!0===t.dayMaxEvents||!0===t.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:n.isPropsEqual});class S extends n.DateComponent{constructor(){super(...arguments),this.splitBusinessHourSegs=n.memoize(r),this.splitBgEventSegs=n.memoize(r),this.splitFgEventSegs=n.memoize(r),this.splitDateSelectionSegs=n.memoize(r),this.splitEventDrag=n.memoize(l),this.splitEventResize=n.memoize(l),this.rowRefs=new n.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:t,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(n.NowTimer,{unit:"day"},(n,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((n,a)=>s.createElement(E,{ref:this.rowRefs.createRef(a),key:n.length?n[0].date.toISOString():a,showDayNumbers:l>1,showWeekNumbers:e.showWeekNumbers,todayRange:u,dateProfile:t,cells:n,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 n.PositionCache(this.rootEl,this.rowRefs.collect().map(e=>e.getCellEls()[0]),!1,!0),this.colPositions=new n.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,t){let s=this.props.cells[e][t].date;return{start:s,end:n.addDays(s,1)}}}function x(e){return e.eventRange.def.allDay}class C extends n.Slicer{constructor(){super(...arguments),this.forceDayIfListItem=!0}sliceRange(e,t){return t.sliceRange(e)}}class w extends n.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=n.memoize(k),this.headerRef=s.createRef(),this.tableRef=s.createRef()}render(){let{options:e,dateProfileGenerator:t}=this.context,{props:i}=this,r=this.buildDayTableModel(i.dateProfile,t),a=e.dayHeaders&&s.createElement(n.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,t){let s=new n.DaySeriesModel(e.renderRange,t);return new n.DayTableModel(s,/year|month|week/.test(e.currentRangeUnit))}class P extends n.DateProfileGenerator{buildRenderRange(e,t,s){let i,{dateEnv:r}=this.props,a=super.buildRenderRange(e,t,s),l=a.start,o=a.end;if(/^(year|month)$/.test(t)&&(l=r.startOfWeek(l),i=r.startOfWeek(o),i.valueOf()!==o.valueOf()&&(o=n.addWeeks(i,1))),this.props.monthMode&&this.props.fixedWeekCount){let e=Math.ceil(n.diffWeeks(l,o));o=n.addWeeks(o,6-e)}return{start:l,end:o}}}n.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=t.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,FullCalendar.Internal,FullCalendar.Preact);
package/index.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../src/TableDateProfileGenerator.ts","../src/index.ts"],"sourcesContent":["import {\n DateProfileGenerator,\n addWeeks, diffWeeks,\n DateRange,\n} from '@fullcalendar/core/internal'\n\nexport class TableDateProfileGenerator extends DateProfileGenerator {\n // Computes the date range that will be rendered.\n buildRenderRange(currentRange, currentRangeUnit, isRangeAllDay): DateRange {\n let { dateEnv } = this.props\n let renderRange = super.buildRenderRange(currentRange, currentRangeUnit, isRangeAllDay)\n let start = renderRange.start\n let end = renderRange.end\n let endOfWeek\n\n // year and month views should be aligned with weeks. this is already done for week\n if (/^(year|month)$/.test(currentRangeUnit)) {\n start = dateEnv.startOfWeek(start)\n\n // make end-of-week if not already\n endOfWeek = dateEnv.startOfWeek(end)\n if (endOfWeek.valueOf() !== end.valueOf()) {\n end = addWeeks(endOfWeek, 1)\n }\n }\n\n // ensure 6 weeks\n if (\n this.props.monthMode &&\n this.props.fixedWeekCount\n ) {\n let rowCnt = Math.ceil( // could be partial weeks due to hiddenDays\n diffWeeks(start, end),\n )\n end = addWeeks(end, 6 - rowCnt)\n }\n\n return { start, end }\n }\n}\n","import { createPlugin, PluginDef } from '@fullcalendar/core'\nimport { DayTableView } from './DayTableView.js'\nimport { TableDateProfileGenerator } from './TableDateProfileGenerator.js'\nimport './index.css'\n\nexport default createPlugin({\n name: '<%= pkgName %>',\n initialView: 'dayGridMonth',\n views: {\n dayGrid: {\n component: DayTableView,\n dateProfileGeneratorClass: TableDateProfileGenerator,\n },\n dayGridDay: {\n type: 'dayGrid',\n duration: { days: 1 },\n },\n dayGridWeek: {\n type: 'dayGrid',\n duration: { weeks: 1 },\n },\n dayGridMonth: {\n type: 'dayGrid',\n duration: { months: 1 },\n monthMode: true,\n fixedWeekCount: true,\n },\n },\n}) as PluginDef\n"],"names":[],"mappings":";;;;;AAMM,MAAO,yBAA0B,SAAQ,oBAAoB,CAAA;;AAEjE,IAAA,gBAAgB,CAAC,YAAY,EAAE,gBAAgB,EAAE,aAAa,EAAA;AAC5D,QAAA,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,KAAK,CAAA;AAC5B,QAAA,IAAI,WAAW,GAAG,KAAK,CAAC,gBAAgB,CAAC,YAAY,EAAE,gBAAgB,EAAE,aAAa,CAAC,CAAA;AACvF,QAAA,IAAI,KAAK,GAAG,WAAW,CAAC,KAAK,CAAA;AAC7B,QAAA,IAAI,GAAG,GAAG,WAAW,CAAC,GAAG,CAAA;AACzB,QAAA,IAAI,SAAS,CAAA;;AAGb,QAAA,IAAI,gBAAgB,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE;AAC3C,YAAA,KAAK,GAAG,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;;AAGlC,YAAA,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;YACpC,IAAI,SAAS,CAAC,OAAO,EAAE,KAAK,GAAG,CAAC,OAAO,EAAE,EAAE;AACzC,gBAAA,GAAG,GAAG,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC,CAAA;AAC7B,aAAA;AACF,SAAA;;AAGD,QAAA,IACE,IAAI,CAAC,KAAK,CAAC,SAAS;AACpB,YAAA,IAAI,CAAC,KAAK,CAAC,cAAc,EACzB;AACA,YAAA,IAAI,MAAM,GAAG,IAAI,CAAC,IAAI;AACpB,YAAA,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC,CACtB,CAAA;YACD,GAAG,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC,GAAG,MAAM,CAAC,CAAA;AAChC,SAAA;AAED,QAAA,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,CAAA;KACtB;AACF;;;;;AClCD,YAAe,YAAY,CAAC;AAC1B,IAAA,IAAI,EAAE,uBAAgB;AACtB,IAAA,WAAW,EAAE,cAAc;AAC3B,IAAA,KAAK,EAAE;AACL,QAAA,OAAO,EAAE;AACP,YAAA,SAAS,EAAE,YAAY;AACvB,YAAA,yBAAyB,EAAE,yBAAyB;AACrD,SAAA;AACD,QAAA,UAAU,EAAE;AACV,YAAA,IAAI,EAAE,SAAS;AACf,YAAA,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE;AACtB,SAAA;AACD,QAAA,WAAW,EAAE;AACX,YAAA,IAAI,EAAE,SAAS;AACf,YAAA,QAAQ,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE;AACvB,SAAA;AACD,QAAA,YAAY,EAAE;AACZ,YAAA,IAAI,EAAE,SAAS;AACf,YAAA,QAAQ,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE;AACvB,YAAA,SAAS,EAAE,IAAI;AACf,YAAA,cAAc,EAAE,IAAI;AACrB,SAAA;AACF,KAAA;AACF,CAAA,CAAc;;;;"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"internal.js","sources":["../src/TableSeg.ts","../src/event-rendering.ts","../src/TableBlockEvent.tsx","../src/TableListItemEvent.tsx","../src/TableCellMoreLink.tsx","../src/TableCell.tsx","../src/event-placement.ts","../src/TableRow.tsx","../src/Table.tsx","../src/DayTableSlicer.ts","../src/DayTable.tsx","../src/TableView.tsx","../src/DayTableView.tsx"],"sourcesContent":["import { EventSegUiInteractionState, Seg } from '@fullcalendar/core/internal'\n\n// this is a DATA STRUCTURE, not a component\n\nexport interface TableSeg extends Seg {\n row: number\n firstCol: number\n lastCol: number\n}\n\nexport function splitSegsByRow(segs: TableSeg[], rowCnt: number) {\n let byRow: TableSeg[][] = []\n\n for (let i = 0; i < rowCnt; i += 1) {\n byRow[i] = []\n }\n\n for (let seg of segs) {\n byRow[seg.row].push(seg)\n }\n\n return byRow\n}\n\nexport function splitSegsByFirstCol(segs: TableSeg[], colCnt: number) {\n let byCol: TableSeg[][] = []\n\n for (let i = 0; i < colCnt; i += 1) {\n byCol[i] = []\n }\n\n for (let seg of segs) {\n byCol[seg.firstCol].push(seg)\n }\n\n return byCol\n}\n\nexport function splitInteractionByRow(ui: EventSegUiInteractionState | null, rowCnt: number) {\n let byRow: EventSegUiInteractionState[] = []\n\n if (!ui) {\n for (let i = 0; i < rowCnt; i += 1) {\n byRow[i] = null\n }\n } else {\n for (let i = 0; i < rowCnt; i += 1) {\n byRow[i] = {\n affectedInstances: ui.affectedInstances,\n isEvent: ui.isEvent,\n segs: [],\n }\n }\n\n for (let seg of ui.segs) {\n byRow[seg.row].segs.push(seg)\n }\n }\n\n return byRow\n}\n","import { createFormatter, DateFormatter } from '@fullcalendar/core/internal'\nimport { TableSeg } from './TableSeg.js'\n\nexport const DEFAULT_TABLE_EVENT_TIME_FORMAT: DateFormatter = createFormatter({\n hour: 'numeric',\n minute: '2-digit',\n omitZeroMinute: true,\n meridiem: 'narrow',\n})\n\nexport function hasListItemDisplay(seg: TableSeg) {\n let { display } = seg.eventRange.ui\n\n return display === 'list-item' || (\n display === 'auto' &&\n !seg.eventRange.def.allDay &&\n seg.firstCol === seg.lastCol && // can't be multi-day\n seg.isStart && // \"\n seg.isEnd // \"\n )\n}\n","import { StandardEvent, BaseComponent, MinimalEventProps } from '@fullcalendar/core/internal'\nimport { createElement } from '@fullcalendar/core/preact'\nimport { DEFAULT_TABLE_EVENT_TIME_FORMAT } from './event-rendering.js'\n\nexport interface TableBlockEventProps extends MinimalEventProps {\n defaultDisplayEventEnd: boolean\n}\n\nexport class TableBlockEvent extends BaseComponent<TableBlockEventProps> {\n render() {\n let { props } = this\n\n return (\n <StandardEvent\n {...props}\n elClasses={['fc-daygrid-event', 'fc-daygrid-block-event', 'fc-h-event']}\n defaultTimeFormat={DEFAULT_TABLE_EVENT_TIME_FORMAT}\n defaultDisplayEventEnd={props.defaultDisplayEventEnd}\n disableResizing={!props.seg.eventRange.def.allDay}\n />\n )\n }\n}\n","import { EventContentArg } from '@fullcalendar/core'\nimport {\n BaseComponent,\n Seg,\n buildSegTimeText,\n EventContainer,\n getSegAnchorAttrs,\n} from '@fullcalendar/core/internal'\nimport { createElement, Fragment } from '@fullcalendar/core/preact'\nimport { DEFAULT_TABLE_EVENT_TIME_FORMAT } from './event-rendering.js'\n\nexport interface DotTableEventProps {\n seg: Seg\n isDragging: boolean\n isSelected: boolean\n isPast: boolean\n isFuture: boolean\n isToday: boolean\n defaultDisplayEventEnd: boolean\n children?: never\n}\n\nexport class TableListItemEvent extends BaseComponent<DotTableEventProps> {\n render() {\n let { props, context } = this\n let { options } = context\n let { seg } = props\n let timeFormat = options.eventTimeFormat || DEFAULT_TABLE_EVENT_TIME_FORMAT\n let timeText = buildSegTimeText(\n seg,\n timeFormat,\n context,\n true,\n props.defaultDisplayEventEnd,\n )\n\n return (\n <EventContainer\n {...props}\n elTag=\"a\"\n elClasses={['fc-daygrid-event', 'fc-daygrid-dot-event']}\n elAttrs={getSegAnchorAttrs(props.seg, context)}\n defaultGenerator={renderInnerContent}\n timeText={timeText}\n isResizing={false}\n isDateSelecting={false}\n />\n )\n }\n}\n\nfunction renderInnerContent(renderProps: EventContentArg) {\n return (\n <Fragment>\n <div\n className=\"fc-daygrid-event-dot\"\n style={{ borderColor: renderProps.borderColor || renderProps.backgroundColor }}\n />\n {renderProps.timeText && (\n <div className=\"fc-event-time\">{renderProps.timeText}</div>\n )}\n <div className=\"fc-event-title\">\n {renderProps.event.title || <Fragment>&nbsp;</Fragment>}\n </div>\n </Fragment>\n )\n}\n","import {\n MoreLinkContainer,\n BaseComponent,\n memoize,\n DateMarker,\n Dictionary,\n DateProfile,\n DateRange,\n EventSegUiInteractionState,\n getSegMeta,\n} from '@fullcalendar/core/internal'\nimport { createElement, RefObject, Fragment } from '@fullcalendar/core/preact'\nimport { TableSegPlacement } from './event-placement.js'\nimport { hasListItemDisplay } from './event-rendering.js'\nimport { TableBlockEvent } from './TableBlockEvent.js'\nimport { TableListItemEvent } from './TableListItemEvent.js'\nimport { TableSeg } from './TableSeg.js'\n\nexport interface TableCellMoreLinkProps {\n allDayDate: DateMarker\n singlePlacements: TableSegPlacement[]\n moreCnt: number\n alignmentElRef: RefObject<HTMLElement>\n alignGridTop: boolean // for popover\n extraDateSpan?: Dictionary\n dateProfile: DateProfile\n todayRange: DateRange\n eventSelection: string\n eventDrag: EventSegUiInteractionState | null\n eventResize: EventSegUiInteractionState | null\n}\n\nexport class TableCellMoreLink extends BaseComponent<TableCellMoreLinkProps> {\n compileSegs = memoize(compileSegs)\n\n render() {\n let { props } = this\n let { allSegs, invisibleSegs } = this.compileSegs(props.singlePlacements)\n\n return (\n <MoreLinkContainer\n elClasses={['fc-daygrid-more-link']}\n dateProfile={props.dateProfile}\n todayRange={props.todayRange}\n allDayDate={props.allDayDate}\n moreCnt={props.moreCnt}\n allSegs={allSegs}\n hiddenSegs={invisibleSegs}\n alignmentElRef={props.alignmentElRef}\n alignGridTop={props.alignGridTop}\n extraDateSpan={props.extraDateSpan}\n popoverContent={() => {\n let isForcedInvisible =\n (props.eventDrag ? props.eventDrag.affectedInstances : null) ||\n (props.eventResize ? props.eventResize.affectedInstances : null) ||\n {}\n return (\n <Fragment>\n {allSegs.map((seg) => {\n let instanceId = seg.eventRange.instance.instanceId\n return (\n <div\n className=\"fc-daygrid-event-harness\"\n key={instanceId}\n style={{\n visibility: isForcedInvisible[instanceId] ? 'hidden' : ('' as any),\n }}\n >\n {hasListItemDisplay(seg) ? (\n <TableListItemEvent\n seg={seg}\n isDragging={false}\n isSelected={instanceId === props.eventSelection}\n defaultDisplayEventEnd={false}\n {...getSegMeta(seg, props.todayRange)}\n />\n ) : (\n <TableBlockEvent\n seg={seg}\n isDragging={false}\n isResizing={false}\n isDateSelecting={false}\n isSelected={instanceId === props.eventSelection}\n defaultDisplayEventEnd={false}\n {...getSegMeta(seg, props.todayRange)}\n />\n )}\n </div>\n )\n })}\n </Fragment>\n )\n }}\n />\n )\n }\n}\n\nfunction compileSegs(singlePlacements: TableSegPlacement[]): {\n allSegs: TableSeg[]\n invisibleSegs: TableSeg[]\n} {\n let allSegs: TableSeg[] = []\n let invisibleSegs: TableSeg[] = []\n\n for (let placement of singlePlacements) {\n allSegs.push(placement.seg)\n\n if (!placement.isVisible) {\n invisibleSegs.push(placement.seg)\n }\n }\n\n return { allSegs, invisibleSegs }\n}\n","import { DayCellContentArg } from '@fullcalendar/core'\nimport {\n DateMarker,\n DateComponent,\n DateRange,\n buildNavLinkAttrs,\n WeekNumberContainer,\n DayCellContainer,\n DateProfile,\n setRef,\n createFormatter,\n Dictionary,\n EventSegUiInteractionState,\n getUniqueDomId,\n hasCustomDayCellContent,\n} from '@fullcalendar/core/internal'\nimport {\n Ref,\n ComponentChildren,\n createElement,\n createRef,\n ComponentChild,\n Fragment,\n} from '@fullcalendar/core/preact'\nimport { TableCellMoreLink } from './TableCellMoreLink.js'\nimport { TableSegPlacement } from './event-placement.js'\n\nexport interface TableCellProps {\n elRef?: Ref<HTMLTableCellElement>\n date: DateMarker\n dateProfile: DateProfile\n extraRenderProps?: Dictionary\n extraDataAttrs?: Dictionary\n extraClassNames?: string[]\n extraDateSpan?: Dictionary\n innerElRef?: Ref<HTMLDivElement>\n bgContent: ComponentChildren\n fgContentElRef?: Ref<HTMLDivElement> // TODO: rename!!! classname confusion. is the \"event\" div\n fgContent: ComponentChildren\n moreCnt: number\n moreMarginTop: number\n showDayNumber: boolean\n showWeekNumber: boolean\n forceDayTop: boolean\n todayRange: DateRange\n eventSelection: string\n eventDrag: EventSegUiInteractionState | null\n eventResize: EventSegUiInteractionState | null\n singlePlacements: TableSegPlacement[]\n}\n\nconst DEFAULT_WEEK_NUM_FORMAT = createFormatter({ week: 'narrow' })\n\nexport class TableCell extends DateComponent<TableCellProps> {\n private rootElRef = createRef<HTMLElement>()\n state = {\n dayNumberId: getUniqueDomId(),\n }\n\n render() {\n let { context, props, state, rootElRef } = this\n let { options } = context\n let { date, dateProfile } = props\n\n return (\n <DayCellContainer\n elTag=\"td\"\n elRef={this.handleRootEl}\n elClasses={[\n 'fc-daygrid-day',\n ...(props.extraClassNames || []),\n ]}\n elAttrs={{\n ...props.extraDataAttrs,\n ...(props.showDayNumber ? { 'aria-labelledby': state.dayNumberId } : {}),\n role: 'gridcell',\n }}\n defaultGenerator={renderTopInner}\n date={date}\n dateProfile={dateProfile}\n todayRange={props.todayRange}\n showDayNumber={props.showDayNumber}\n extraRenderProps={props.extraRenderProps}\n >\n {(InnerContent, renderProps) => (\n <div className=\"fc-daygrid-day-frame fc-scrollgrid-sync-inner\" ref={props.innerElRef}>\n {props.showWeekNumber && (\n <WeekNumberContainer\n elTag=\"a\"\n elClasses={['fc-daygrid-week-number']}\n elAttrs={buildNavLinkAttrs(context, date, 'week')}\n date={date}\n defaultFormat={DEFAULT_WEEK_NUM_FORMAT}\n />\n )}\n {Boolean(\n !renderProps.isDisabled &&\n (props.showDayNumber || hasCustomDayCellContent(options) || props.forceDayTop),\n ) && (\n <div className=\"fc-daygrid-day-top\">\n <InnerContent\n elTag=\"a\"\n elClasses={['fc-daygrid-day-number']}\n elAttrs={{\n ...buildNavLinkAttrs(context, date),\n id: state.dayNumberId,\n }}\n />\n </div>\n )}\n <div\n className=\"fc-daygrid-day-events\"\n ref={props.fgContentElRef}\n >\n {props.fgContent}\n <div className=\"fc-daygrid-day-bottom\" style={{ marginTop: props.moreMarginTop }}>\n <TableCellMoreLink\n allDayDate={date}\n singlePlacements={props.singlePlacements}\n moreCnt={props.moreCnt}\n alignmentElRef={rootElRef}\n alignGridTop={!props.showDayNumber}\n extraDateSpan={props.extraDateSpan}\n dateProfile={props.dateProfile}\n eventSelection={props.eventSelection}\n eventDrag={props.eventDrag}\n eventResize={props.eventResize}\n todayRange={props.todayRange}\n />\n </div>\n </div>\n <div className=\"fc-daygrid-day-bg\">\n {props.bgContent}\n </div>\n </div>\n )}\n </DayCellContainer>\n )\n }\n\n handleRootEl = (el: HTMLElement) => {\n setRef(this.rootElRef, el)\n setRef(this.props.elRef, el)\n }\n}\n\nfunction renderTopInner(props: DayCellContentArg): ComponentChild {\n return props.dayNumberText || <Fragment>&nbsp;</Fragment>\n}\n","import { EventRenderRange } from '@fullcalendar/core'\nimport {\n SegHierarchy,\n SegRect,\n SegEntry,\n SegInsertion,\n buildEntryKey,\n intersectRanges,\n addDays,\n DayTableCell,\n intersectSpans,\n} from '@fullcalendar/core/internal'\nimport { TableSeg } from './TableSeg.js'\n\nexport interface TableSegPlacement {\n seg: TableSeg\n isVisible: boolean\n isAbsolute: boolean\n absoluteTop: number // populated regardless of isAbsolute\n marginTop: number\n}\n\nexport function computeFgSegPlacement(\n segs: TableSeg[], // assumed already sorted\n dayMaxEvents: boolean | number,\n dayMaxEventRows: boolean | number,\n strictOrder: boolean,\n eventInstanceHeights: { [instanceId: string]: number },\n maxContentHeight: number | null,\n cells: DayTableCell[],\n) {\n let hierarchy = new DayGridSegHierarchy()\n hierarchy.allowReslicing = true\n hierarchy.strictOrder = strictOrder\n\n if (dayMaxEvents === true || dayMaxEventRows === true) {\n hierarchy.maxCoord = maxContentHeight\n hierarchy.hiddenConsumes = true\n } else if (typeof dayMaxEvents === 'number') {\n hierarchy.maxStackCnt = dayMaxEvents\n } else if (typeof dayMaxEventRows === 'number') {\n hierarchy.maxStackCnt = dayMaxEventRows\n hierarchy.hiddenConsumes = true\n }\n\n // create segInputs only for segs with known heights\n let segInputs: SegEntry[] = []\n let unknownHeightSegs: TableSeg[] = []\n for (let i = 0; i < segs.length; i += 1) {\n let seg = segs[i]\n let { instanceId } = seg.eventRange.instance\n let eventHeight = eventInstanceHeights[instanceId]\n\n if (eventHeight != null) {\n segInputs.push({\n index: i,\n thickness: eventHeight,\n span: {\n start: seg.firstCol,\n end: seg.lastCol + 1,\n },\n })\n } else {\n unknownHeightSegs.push(seg)\n }\n }\n\n let hiddenEntries = hierarchy.addSegs(segInputs)\n let segRects = hierarchy.toRects()\n let { singleColPlacements, multiColPlacements, leftoverMargins } = placeRects(segRects, segs, cells)\n\n let moreCnts: number[] = []\n let moreMarginTops: number[] = []\n\n // add segs with unknown heights\n for (let seg of unknownHeightSegs) {\n multiColPlacements[seg.firstCol].push({\n seg,\n isVisible: false,\n isAbsolute: true,\n absoluteTop: 0,\n marginTop: 0,\n })\n\n for (let col = seg.firstCol; col <= seg.lastCol; col += 1) {\n singleColPlacements[col].push({\n seg: resliceSeg(seg, col, col + 1, cells),\n isVisible: false,\n isAbsolute: false,\n absoluteTop: 0,\n marginTop: 0,\n })\n }\n }\n\n // add the hidden entries\n for (let col = 0; col < cells.length; col += 1) {\n moreCnts.push(0)\n }\n for (let hiddenEntry of hiddenEntries) {\n let seg = segs[hiddenEntry.index]\n let hiddenSpan = hiddenEntry.span\n\n multiColPlacements[hiddenSpan.start].push({\n seg: resliceSeg(seg, hiddenSpan.start, hiddenSpan.end, cells),\n isVisible: false,\n isAbsolute: true,\n absoluteTop: 0,\n marginTop: 0,\n })\n\n for (let col = hiddenSpan.start; col < hiddenSpan.end; col += 1) {\n moreCnts[col] += 1\n singleColPlacements[col].push({\n seg: resliceSeg(seg, col, col + 1, cells),\n isVisible: false,\n isAbsolute: false,\n absoluteTop: 0,\n marginTop: 0,\n })\n }\n }\n\n // deal with leftover margins\n for (let col = 0; col < cells.length; col += 1) {\n moreMarginTops.push(leftoverMargins[col])\n }\n\n return { singleColPlacements, multiColPlacements, moreCnts, moreMarginTops }\n}\n\n// rects ordered by top coord, then left\nfunction placeRects(allRects: SegRect[], segs: TableSeg[], cells: DayTableCell[]) {\n let rectsByEachCol = groupRectsByEachCol(allRects, cells.length)\n let singleColPlacements: TableSegPlacement[][] = []\n let multiColPlacements: TableSegPlacement[][] = []\n let leftoverMargins: number[] = []\n\n for (let col = 0; col < cells.length; col += 1) {\n let rects = rectsByEachCol[col]\n\n // compute all static segs in singlePlacements\n let singlePlacements: TableSegPlacement[] = []\n let currentHeight = 0\n let currentMarginTop = 0\n for (let rect of rects) {\n let seg = segs[rect.index]\n singlePlacements.push({\n seg: resliceSeg(seg, col, col + 1, cells),\n isVisible: true,\n isAbsolute: false,\n absoluteTop: rect.levelCoord,\n marginTop: rect.levelCoord - currentHeight,\n })\n currentHeight = rect.levelCoord + rect.thickness\n }\n\n // compute mixed static/absolute segs in multiPlacements\n let multiPlacements: TableSegPlacement[] = []\n currentHeight = 0\n currentMarginTop = 0\n for (let rect of rects) {\n let seg = segs[rect.index]\n let isAbsolute = rect.span.end - rect.span.start > 1 // multi-column?\n let isFirstCol = rect.span.start === col\n\n currentMarginTop += rect.levelCoord - currentHeight // amount of space since bottom of previous seg\n currentHeight = rect.levelCoord + rect.thickness // height will now be bottom of current seg\n\n if (isAbsolute) {\n currentMarginTop += rect.thickness\n if (isFirstCol) {\n multiPlacements.push({\n seg: resliceSeg(seg, rect.span.start, rect.span.end, cells),\n isVisible: true,\n isAbsolute: true,\n absoluteTop: rect.levelCoord,\n marginTop: 0,\n })\n }\n } else if (isFirstCol) {\n multiPlacements.push({\n seg: resliceSeg(seg, rect.span.start, rect.span.end, cells),\n isVisible: true,\n isAbsolute: false,\n absoluteTop: rect.levelCoord,\n marginTop: currentMarginTop, // claim the margin\n })\n currentMarginTop = 0\n }\n }\n\n singleColPlacements.push(singlePlacements)\n multiColPlacements.push(multiPlacements)\n leftoverMargins.push(currentMarginTop)\n }\n\n return { singleColPlacements, multiColPlacements, leftoverMargins }\n}\n\nfunction groupRectsByEachCol(rects: SegRect[], colCnt: number): SegRect[][] {\n let rectsByEachCol: SegRect[][] = []\n\n for (let col = 0; col < colCnt; col += 1) {\n rectsByEachCol.push([])\n }\n\n for (let rect of rects) {\n for (let col = rect.span.start; col < rect.span.end; col += 1) {\n rectsByEachCol[col].push(rect)\n }\n }\n\n return rectsByEachCol\n}\n\nfunction resliceSeg(seg: TableSeg, spanStart: number, spanEnd: number, cells: DayTableCell[]): TableSeg {\n if (seg.firstCol === spanStart && seg.lastCol === spanEnd - 1) {\n return seg\n }\n\n let eventRange = seg.eventRange\n let origRange = eventRange.range\n let slicedRange = intersectRanges(origRange, {\n start: cells[spanStart].date,\n end: addDays(cells[spanEnd - 1].date, 1),\n })\n\n return {\n ...seg,\n firstCol: spanStart,\n lastCol: spanEnd - 1,\n eventRange: {\n def: eventRange.def,\n ui: { ...eventRange.ui, durationEditable: false }, // hack to disable resizing\n instance: eventRange.instance,\n range: slicedRange,\n } as EventRenderRange,\n isStart: seg.isStart && slicedRange.start.valueOf() === origRange.start.valueOf(),\n isEnd: seg.isEnd && slicedRange.end.valueOf() === origRange.end.valueOf(),\n }\n}\n\nclass DayGridSegHierarchy extends SegHierarchy {\n // config\n hiddenConsumes: boolean = false\n\n // allows us to keep hidden entries in the hierarchy so they take up space\n forceHidden: { [entryId: string]: true } = {}\n\n addSegs(segInputs: SegEntry[]): SegEntry[] {\n const hiddenSegs = super.addSegs(segInputs)\n const { entriesByLevel } = this\n const excludeHidden = (entry: SegEntry) => !this.forceHidden[buildEntryKey(entry)]\n\n // remove the forced-hidden segs\n for (let level = 0; level < entriesByLevel.length; level += 1) {\n entriesByLevel[level] = entriesByLevel[level].filter(excludeHidden)\n }\n\n return hiddenSegs\n }\n\n handleInvalidInsertion(insertion: SegInsertion, entry: SegEntry, hiddenEntries: SegEntry[]) {\n const { entriesByLevel, forceHidden } = this\n const { touchingEntry, touchingLevel, touchingLateral } = insertion\n\n if (this.hiddenConsumes && touchingEntry) {\n const touchingEntryId = buildEntryKey(touchingEntry)\n // if not already hidden\n if (!forceHidden[touchingEntryId]) {\n if (this.allowReslicing) {\n const placeholderEntry: SegEntry = { // placeholder of the \"more\" link\n ...touchingEntry,\n span: intersectSpans(touchingEntry.span, entry.span),\n }\n const placeholderEntryId = buildEntryKey(placeholderEntry)\n forceHidden[placeholderEntryId] = true\n entriesByLevel[touchingLevel][touchingLateral] = placeholderEntry // replace touchingEntry with our placeholder\n this.splitEntry(touchingEntry, entry, hiddenEntries) // split up the touchingEntry, reinsert it\n } else {\n forceHidden[touchingEntryId] = true\n hiddenEntries.push(touchingEntry)\n }\n }\n }\n\n return super.handleInvalidInsertion(insertion, entry, hiddenEntries)\n }\n}\n","import { CssDimValue } from '@fullcalendar/core'\nimport {\n EventSegUiInteractionState,\n DateComponent,\n PositionCache,\n RefMap,\n DateRange,\n getSegMeta,\n DateProfile,\n BgEvent,\n renderFill,\n isPropsEqual,\n buildEventRangeKey,\n sortEventSegs,\n DayTableCell,\n} from '@fullcalendar/core/internal'\nimport {\n VNode,\n createElement,\n Fragment,\n createRef,\n} from '@fullcalendar/core/preact'\nimport { TableSeg, splitSegsByFirstCol } from './TableSeg.js'\nimport { TableCell } from './TableCell.js'\nimport { TableListItemEvent } from './TableListItemEvent.js'\nimport { TableBlockEvent } from './TableBlockEvent.js'\nimport { computeFgSegPlacement, TableSegPlacement } from './event-placement.js'\nimport { hasListItemDisplay } from './event-rendering.js'\n\n// TODO: attach to window resize?\n\nexport interface TableRowProps {\n cells: DayTableCell[]\n renderIntro?: () => VNode\n businessHourSegs: TableSeg[]\n bgEventSegs: TableSeg[]\n fgEventSegs: TableSeg[]\n dateSelectionSegs: TableSeg[]\n eventSelection: string\n eventDrag: EventSegUiInteractionState | null\n eventResize: EventSegUiInteractionState | null\n dayMaxEvents: boolean | number\n dayMaxEventRows: boolean | number\n clientWidth: number | null\n clientHeight: number | null // simply for causing an updateSize, for when liquid height\n dateProfile: DateProfile\n todayRange: DateRange\n showDayNumbers: boolean\n showWeekNumbers: boolean\n forPrint: boolean\n}\n\ninterface TableRowState {\n framePositions: PositionCache\n maxContentHeight: number | null\n eventInstanceHeights: { [instanceId: string]: number } // integers\n}\n\nexport class TableRow extends DateComponent<TableRowProps, TableRowState> {\n private cellElRefs = new RefMap<HTMLTableCellElement>() // the <td>\n private frameElRefs = new RefMap<HTMLElement>() // the fc-daygrid-day-frame\n private fgElRefs = new RefMap<HTMLDivElement>() // the fc-daygrid-day-events\n private segHarnessRefs = new RefMap<HTMLDivElement>() // indexed by \"instanceId:firstCol\"\n private rootElRef = createRef<HTMLTableRowElement>()\n\n state: TableRowState = {\n framePositions: null,\n maxContentHeight: null,\n eventInstanceHeights: {},\n }\n\n render() {\n let { props, state, context } = this\n let { options } = context\n let colCnt = props.cells.length\n\n let businessHoursByCol = splitSegsByFirstCol(props.businessHourSegs, colCnt)\n let bgEventSegsByCol = splitSegsByFirstCol(props.bgEventSegs, colCnt)\n let highlightSegsByCol = splitSegsByFirstCol(this.getHighlightSegs(), colCnt)\n let mirrorSegsByCol = splitSegsByFirstCol(this.getMirrorSegs(), colCnt)\n\n let { singleColPlacements, multiColPlacements, moreCnts, moreMarginTops } = computeFgSegPlacement(\n sortEventSegs(props.fgEventSegs, options.eventOrder) as TableSeg[],\n props.dayMaxEvents,\n props.dayMaxEventRows,\n options.eventOrderStrict,\n state.eventInstanceHeights,\n state.maxContentHeight,\n props.cells,\n )\n\n let isForcedInvisible = // TODO: messy way to compute this\n (props.eventDrag && props.eventDrag.affectedInstances) ||\n (props.eventResize && props.eventResize.affectedInstances) ||\n {}\n\n return (\n <tr ref={this.rootElRef} role=\"row\">\n {props.renderIntro && props.renderIntro()}\n {props.cells.map((cell, col) => {\n let normalFgNodes = this.renderFgSegs(\n col,\n props.forPrint ? singleColPlacements[col] : multiColPlacements[col],\n props.todayRange,\n isForcedInvisible,\n )\n\n let mirrorFgNodes = this.renderFgSegs(\n col,\n buildMirrorPlacements(mirrorSegsByCol[col], multiColPlacements),\n props.todayRange,\n {},\n Boolean(props.eventDrag),\n Boolean(props.eventResize),\n false, // date-selecting (because mirror is never drawn for date selection)\n )\n\n return (\n <TableCell\n key={cell.key}\n elRef={this.cellElRefs.createRef(cell.key)}\n innerElRef={this.frameElRefs.createRef(cell.key) /* FF <td> problem, but okay to use for left/right. TODO: rename prop */}\n dateProfile={props.dateProfile}\n date={cell.date}\n showDayNumber={props.showDayNumbers}\n showWeekNumber={props.showWeekNumbers && col === 0}\n forceDayTop={props.showWeekNumbers /* even displaying weeknum for row, not necessarily day */}\n todayRange={props.todayRange}\n eventSelection={props.eventSelection}\n eventDrag={props.eventDrag}\n eventResize={props.eventResize}\n extraRenderProps={cell.extraRenderProps}\n extraDataAttrs={cell.extraDataAttrs}\n extraClassNames={cell.extraClassNames}\n extraDateSpan={cell.extraDateSpan}\n moreCnt={moreCnts[col]}\n moreMarginTop={moreMarginTops[col]}\n singlePlacements={singleColPlacements[col]}\n fgContentElRef={this.fgElRefs.createRef(cell.key)}\n fgContent={( // Fragment scopes the keys\n <Fragment>\n <Fragment>{normalFgNodes}</Fragment>\n <Fragment>{mirrorFgNodes}</Fragment>\n </Fragment>\n )}\n bgContent={( // Fragment scopes the keys\n <Fragment>\n {this.renderFillSegs(highlightSegsByCol[col], 'highlight')}\n {this.renderFillSegs(businessHoursByCol[col], 'non-business')}\n {this.renderFillSegs(bgEventSegsByCol[col], 'bg-event')}\n </Fragment>\n )}\n />\n )\n })}\n </tr>\n )\n }\n\n componentDidMount() {\n this.updateSizing(true)\n this.context.addResizeHandler(this.handleResize)\n }\n\n componentDidUpdate(prevProps: TableRowProps, prevState: TableRowState) {\n let currentProps = this.props\n\n this.updateSizing(\n !isPropsEqual(prevProps, currentProps),\n )\n }\n\n componentWillUnmount() {\n this.context.removeResizeHandler(this.handleResize)\n }\n\n handleResize = (isForced: boolean) => {\n if (isForced) {\n this.updateSizing(true) // isExternal=true\n }\n }\n\n getHighlightSegs(): TableSeg[] {\n let { props } = this\n\n if (props.eventDrag && props.eventDrag.segs.length) { // messy check\n return props.eventDrag.segs as TableSeg[]\n }\n\n if (props.eventResize && props.eventResize.segs.length) { // messy check\n return props.eventResize.segs as TableSeg[]\n }\n\n return props.dateSelectionSegs\n }\n\n getMirrorSegs(): TableSeg[] {\n let { props } = this\n\n if (props.eventResize && props.eventResize.segs.length) { // messy check\n return props.eventResize.segs as TableSeg[]\n }\n\n return []\n }\n\n renderFgSegs(\n col: number,\n segPlacements: TableSegPlacement[],\n todayRange: DateRange,\n isForcedInvisible: { [instanceId: string]: any },\n isDragging?: boolean,\n isResizing?: boolean,\n isDateSelecting?: boolean,\n ): VNode[] {\n let { context } = this\n let { eventSelection } = this.props\n let { framePositions } = this.state\n let defaultDisplayEventEnd = this.props.cells.length === 1 // colCnt === 1\n let isMirror = isDragging || isResizing || isDateSelecting\n let nodes: VNode[] = []\n\n if (framePositions) {\n for (let placement of segPlacements) {\n let { seg } = placement\n let { instanceId } = seg.eventRange.instance\n let key = instanceId + ':' + col\n let isVisible = placement.isVisible && !isForcedInvisible[instanceId]\n let isAbsolute = placement.isAbsolute\n let left: CssDimValue = ''\n let right: CssDimValue = ''\n\n if (isAbsolute) {\n if (context.isRtl) {\n right = 0\n left = framePositions.lefts[seg.lastCol] - framePositions.lefts[seg.firstCol]\n } else {\n left = 0\n right = framePositions.rights[seg.firstCol] - framePositions.rights[seg.lastCol]\n }\n }\n\n /*\n known bug: events that are force to be list-item but span multiple days still take up space in later columns\n todo: in print view, for multi-day events, don't display title within non-start/end segs\n */\n nodes.push(\n <div\n className={'fc-daygrid-event-harness' + (isAbsolute ? ' fc-daygrid-event-harness-abs' : '')}\n key={key}\n ref={isMirror ? null : this.segHarnessRefs.createRef(key)}\n style={{\n visibility: isVisible ? ('' as any) : 'hidden',\n marginTop: isAbsolute ? '' : placement.marginTop,\n top: isAbsolute ? placement.absoluteTop : '',\n left,\n right,\n }}\n >\n {hasListItemDisplay(seg) ? (\n <TableListItemEvent\n seg={seg}\n isDragging={isDragging}\n isSelected={instanceId === eventSelection}\n defaultDisplayEventEnd={defaultDisplayEventEnd}\n {...getSegMeta(seg, todayRange)}\n />\n ) : (\n <TableBlockEvent\n seg={seg}\n isDragging={isDragging}\n isResizing={isResizing}\n isDateSelecting={isDateSelecting}\n isSelected={instanceId === eventSelection}\n defaultDisplayEventEnd={defaultDisplayEventEnd}\n {...getSegMeta(seg, todayRange)}\n />\n )}\n </div>,\n )\n }\n }\n\n return nodes\n }\n\n renderFillSegs(segs: TableSeg[], fillType: string): VNode {\n let { isRtl } = this.context\n let { todayRange } = this.props\n let { framePositions } = this.state\n let nodes: VNode[] = []\n\n if (framePositions) {\n for (let seg of segs) {\n let leftRightCss = isRtl ? {\n right: 0,\n left: framePositions.lefts[seg.lastCol] - framePositions.lefts[seg.firstCol],\n } : {\n left: 0,\n right: framePositions.rights[seg.firstCol] - framePositions.rights[seg.lastCol],\n }\n\n nodes.push(\n <div\n key={buildEventRangeKey(seg.eventRange)}\n className=\"fc-daygrid-bg-harness\"\n style={leftRightCss}\n >\n {fillType === 'bg-event' ?\n <BgEvent seg={seg} {...getSegMeta(seg, todayRange)} /> :\n renderFill(fillType)}\n </div>,\n )\n }\n }\n\n return createElement(Fragment, {}, ...nodes)\n }\n\n updateSizing(isExternalSizingChange) {\n let { props, frameElRefs } = this\n\n if (\n !props.forPrint &&\n props.clientWidth !== null // positioning ready?\n ) {\n if (isExternalSizingChange) {\n let frameEls = props.cells.map((cell) => frameElRefs.currentMap[cell.key])\n\n if (frameEls.length) {\n let originEl = this.rootElRef.current\n\n this.setState({ // will trigger isCellPositionsChanged...\n framePositions: new PositionCache(\n originEl,\n frameEls,\n true, // isHorizontal\n false,\n ),\n })\n }\n }\n\n const oldInstanceHeights = this.state.eventInstanceHeights\n const newInstanceHeights = this.queryEventInstanceHeights()\n const limitByContentHeight = props.dayMaxEvents === true || props.dayMaxEventRows === true\n\n this.safeSetState({\n // HACK to prevent oscillations of events being shown/hidden from max-event-rows\n // Essentially, once you compute an element's height, never null-out.\n // TODO: always display all events, as visibility:hidden?\n eventInstanceHeights: { ...oldInstanceHeights, ...newInstanceHeights },\n\n maxContentHeight: limitByContentHeight ? this.computeMaxContentHeight() : null,\n })\n }\n }\n\n queryEventInstanceHeights() {\n let segElMap = this.segHarnessRefs.currentMap\n let eventInstanceHeights: { [key: string]: number } = {}\n\n // get the max height amongst instance segs\n for (let key in segElMap) {\n let height = Math.round(segElMap[key].getBoundingClientRect().height)\n let instanceId = key.split(':')[0] // deconstruct how renderFgSegs makes the key\n eventInstanceHeights[instanceId] = Math.max(eventInstanceHeights[instanceId] || 0, height)\n }\n\n return eventInstanceHeights\n }\n\n computeMaxContentHeight() {\n let firstKey = this.props.cells[0].key\n let cellEl = this.cellElRefs.currentMap[firstKey]\n let fcContainerEl = this.fgElRefs.currentMap[firstKey]\n\n return cellEl.getBoundingClientRect().bottom - fcContainerEl.getBoundingClientRect().top\n }\n\n public getCellEls() {\n let elMap = this.cellElRefs.currentMap\n\n return this.props.cells.map((cell) => elMap[cell.key])\n }\n}\n\nTableRow.addStateEquality({\n eventInstanceHeights: isPropsEqual,\n})\n\nfunction buildMirrorPlacements(mirrorSegs: TableSeg[], colPlacements: TableSegPlacement[][]): TableSegPlacement[] {\n if (!mirrorSegs.length) {\n return []\n }\n let topsByInstanceId = buildAbsoluteTopHash(colPlacements) // TODO: cache this at first render?\n return mirrorSegs.map((seg: TableSeg) => ({\n seg,\n isVisible: true,\n isAbsolute: true,\n absoluteTop: topsByInstanceId[seg.eventRange.instance.instanceId],\n marginTop: 0,\n }))\n}\n\nfunction buildAbsoluteTopHash(colPlacements: TableSegPlacement[][]): { [instanceId: string]: number } {\n let topsByInstanceId: { [instanceId: string]: number } = {}\n\n for (let placements of colPlacements) {\n for (let placement of placements) {\n topsByInstanceId[placement.seg.eventRange.instance.instanceId] = placement.absoluteTop\n }\n }\n\n return topsByInstanceId\n}\n","import { CssDimValue } from '@fullcalendar/core'\nimport {\n EventSegUiInteractionState,\n DateComponent,\n PositionCache,\n memoize,\n addDays,\n RefMap,\n DateRange,\n NowTimer,\n DateMarker,\n DateProfile,\n Hit,\n DayTableCell,\n} from '@fullcalendar/core/internal'\nimport {\n VNode,\n RefObject,\n createElement,\n Fragment,\n} from '@fullcalendar/core/preact'\nimport { TableSeg, splitSegsByRow, splitInteractionByRow } from './TableSeg.js'\nimport { TableRow } from './TableRow.js'\n\nexport interface TableProps {\n dateProfile: DateProfile\n cells: DayTableCell[][] // cells-BY-ROW\n renderRowIntro?: () => VNode\n colGroupNode: VNode\n tableMinWidth: CssDimValue\n expandRows: boolean\n showWeekNumbers: boolean\n clientWidth: number | null\n clientHeight: number | null\n businessHourSegs: TableSeg[]\n bgEventSegs: TableSeg[]\n fgEventSegs: TableSeg[]\n dateSelectionSegs: TableSeg[]\n eventSelection: string\n eventDrag: EventSegUiInteractionState | null\n eventResize: EventSegUiInteractionState | null\n dayMaxEvents: boolean | number\n dayMaxEventRows: boolean | number\n headerAlignElRef?: RefObject<HTMLElement>\n forPrint: boolean\n isHitComboAllowed?: (hit0: Hit, hit1: Hit) => boolean\n}\n\nexport class Table extends DateComponent<TableProps> {\n private splitBusinessHourSegs = memoize(splitSegsByRow)\n private splitBgEventSegs = memoize(splitSegsByRow)\n private splitFgEventSegs = memoize(splitSegsByRow)\n private splitDateSelectionSegs = memoize(splitSegsByRow)\n private splitEventDrag = memoize(splitInteractionByRow)\n private splitEventResize = memoize(splitInteractionByRow)\n private rootEl: HTMLElement\n private rowRefs = new RefMap<TableRow>()\n private rowPositions: PositionCache\n private colPositions: PositionCache\n\n render() {\n let { props } = this\n let { dateProfile, dayMaxEventRows, dayMaxEvents, expandRows } = props\n let rowCnt = props.cells.length\n\n let businessHourSegsByRow = this.splitBusinessHourSegs(props.businessHourSegs, rowCnt)\n let bgEventSegsByRow = this.splitBgEventSegs(props.bgEventSegs, rowCnt)\n let fgEventSegsByRow = this.splitFgEventSegs(props.fgEventSegs, rowCnt)\n let dateSelectionSegsByRow = this.splitDateSelectionSegs(props.dateSelectionSegs, rowCnt)\n let eventDragByRow = this.splitEventDrag(props.eventDrag, rowCnt)\n let eventResizeByRow = this.splitEventResize(props.eventResize, rowCnt)\n\n let limitViaBalanced = dayMaxEvents === true || dayMaxEventRows === true\n\n // if rows can't expand to fill fixed height, can't do balanced-height event limit\n // TODO: best place to normalize these options?\n if (limitViaBalanced && !expandRows) {\n limitViaBalanced = false\n dayMaxEventRows = null\n dayMaxEvents = null\n }\n\n let classNames = [\n 'fc-daygrid-body',\n limitViaBalanced ? 'fc-daygrid-body-balanced' : 'fc-daygrid-body-unbalanced', // will all row heights be equal?\n expandRows ? '' : 'fc-daygrid-body-natural', // will height of one row depend on the others?\n ]\n\n return (\n <div\n className={classNames.join(' ')}\n ref={this.handleRootEl}\n style={{\n // these props are important to give this wrapper correct dimensions for interactions\n // TODO: if we set it here, can we avoid giving to inner tables?\n width: props.clientWidth,\n minWidth: props.tableMinWidth,\n }}\n >\n <NowTimer unit=\"day\">\n {(nowDate: DateMarker, todayRange: DateRange) => (\n <Fragment>\n <table\n role=\"presentation\"\n className=\"fc-scrollgrid-sync-table\"\n style={{\n width: props.clientWidth,\n minWidth: props.tableMinWidth,\n height: expandRows ? props.clientHeight : '',\n }}\n >\n {props.colGroupNode}\n <tbody role=\"presentation\">\n {props.cells.map((cells, row) => (\n <TableRow\n ref={this.rowRefs.createRef(row)}\n key={\n cells.length\n ? cells[0].date.toISOString() /* best? or put key on cell? or use diff formatter? */\n : row // in case there are no cells (like when resource view is loading)\n }\n showDayNumbers={rowCnt > 1}\n showWeekNumbers={props.showWeekNumbers}\n todayRange={todayRange}\n dateProfile={dateProfile}\n cells={cells}\n renderIntro={props.renderRowIntro}\n businessHourSegs={businessHourSegsByRow[row]}\n eventSelection={props.eventSelection}\n bgEventSegs={bgEventSegsByRow[row].filter(isSegAllDay) /* hack */}\n fgEventSegs={fgEventSegsByRow[row]}\n dateSelectionSegs={dateSelectionSegsByRow[row]}\n eventDrag={eventDragByRow[row]}\n eventResize={eventResizeByRow[row]}\n dayMaxEvents={dayMaxEvents}\n dayMaxEventRows={dayMaxEventRows}\n clientWidth={props.clientWidth}\n clientHeight={props.clientHeight}\n forPrint={props.forPrint}\n />\n ))}\n </tbody>\n </table>\n </Fragment>\n )}\n </NowTimer>\n </div>\n )\n }\n\n handleRootEl = (rootEl: HTMLElement | null) => {\n this.rootEl = rootEl\n\n if (rootEl) {\n this.context.registerInteractiveComponent(this, {\n el: rootEl,\n isHitComboAllowed: this.props.isHitComboAllowed,\n })\n } else {\n this.context.unregisterInteractiveComponent(this)\n }\n }\n\n // Hit System\n // ----------------------------------------------------------------------------------------------------\n\n prepareHits() {\n this.rowPositions = new PositionCache(\n this.rootEl,\n this.rowRefs.collect().map((rowObj) => rowObj.getCellEls()[0]), // first cell el in each row. TODO: not optimal\n false,\n true, // vertical\n )\n\n this.colPositions = new PositionCache(\n this.rootEl,\n this.rowRefs.currentMap[0].getCellEls(), // cell els in first row\n true, // horizontal\n false,\n )\n }\n\n queryHit(positionLeft: number, positionTop: number): Hit {\n let { colPositions, rowPositions } = this\n let col = colPositions.leftToIndex(positionLeft)\n let row = rowPositions.topToIndex(positionTop)\n\n if (row != null && col != null) {\n let cell = this.props.cells[row][col]\n\n return {\n dateProfile: this.props.dateProfile,\n dateSpan: {\n range: this.getCellRange(row, col),\n allDay: true,\n ...cell.extraDateSpan,\n },\n dayEl: this.getCellEl(row, col),\n rect: {\n left: colPositions.lefts[col],\n right: colPositions.rights[col],\n top: rowPositions.tops[row],\n bottom: rowPositions.bottoms[row],\n },\n layer: 0,\n }\n }\n\n return null\n }\n\n private getCellEl(row, col) {\n return this.rowRefs.currentMap[row].getCellEls()[col] // TODO: not optimal\n }\n\n private getCellRange(row, col) {\n let start = this.props.cells[row][col].date\n let end = addDays(start, 1)\n return { start, end }\n }\n}\n\nfunction isSegAllDay(seg: TableSeg) {\n return seg.eventRange.def.allDay\n}\n","import { DayTableModel, DateRange, Slicer } from '@fullcalendar/core/internal'\nimport { TableSeg } from './TableSeg.js'\n\nexport class DayTableSlicer extends Slicer<TableSeg, [DayTableModel]> {\n forceDayIfListItem = true\n\n sliceRange(dateRange: DateRange, dayTableModel: DayTableModel): TableSeg[] {\n return dayTableModel.sliceRange(dateRange)\n }\n}\n","import { Duration, CssDimValue } from '@fullcalendar/core'\nimport {\n EventStore,\n EventUiHash,\n DateSpan,\n EventInteractionState,\n DayTableModel,\n DateComponent,\n ViewContext,\n DateProfile,\n} from '@fullcalendar/core/internal'\nimport {\n createElement,\n createRef,\n VNode,\n RefObject,\n} from '@fullcalendar/core/preact'\nimport { Table } from './Table.js'\nimport { DayTableSlicer } from './DayTableSlicer.js'\n\nexport interface DayTableProps {\n dateProfile: DateProfile,\n dayTableModel: DayTableModel\n nextDayThreshold: Duration\n businessHours: EventStore\n eventStore: EventStore\n eventUiBases: EventUiHash\n dateSelection: DateSpan | null\n eventSelection: string\n eventDrag: EventInteractionState | null\n eventResize: EventInteractionState | null\n colGroupNode: VNode\n tableMinWidth: CssDimValue\n renderRowIntro?: () => VNode\n dayMaxEvents: boolean | number\n dayMaxEventRows: boolean | number\n expandRows: boolean\n showWeekNumbers: boolean\n headerAlignElRef?: RefObject<HTMLElement> // for more popover alignment\n clientWidth: number | null\n clientHeight: number | null\n forPrint: boolean\n}\n\nexport class DayTable extends DateComponent<DayTableProps, ViewContext> {\n private slicer = new DayTableSlicer()\n private tableRef = createRef<Table>()\n\n render() {\n let { props, context } = this\n\n return (\n <Table\n ref={this.tableRef}\n {...this.slicer.sliceProps(props, props.dateProfile, props.nextDayThreshold, context, props.dayTableModel)}\n dateProfile={props.dateProfile}\n cells={props.dayTableModel.cells}\n colGroupNode={props.colGroupNode}\n tableMinWidth={props.tableMinWidth}\n renderRowIntro={props.renderRowIntro}\n dayMaxEvents={props.dayMaxEvents}\n dayMaxEventRows={props.dayMaxEventRows}\n showWeekNumbers={props.showWeekNumbers}\n expandRows={props.expandRows}\n headerAlignElRef={props.headerAlignElRef}\n clientWidth={props.clientWidth}\n clientHeight={props.clientHeight}\n forPrint={props.forPrint}\n />\n )\n }\n}\n","import {\n SimpleScrollGrid,\n SimpleScrollGridSection,\n ChunkContentCallbackArgs,\n ScrollGridSectionConfig,\n ViewContainer,\n DateComponent,\n ViewProps,\n renderScrollShim,\n getStickyHeaderDates,\n getStickyFooterScrollbar,\n ChunkConfigRowContent,\n Dictionary,\n} from '@fullcalendar/core/internal'\nimport {\n VNode,\n createElement,\n createRef,\n RefObject,\n} from '@fullcalendar/core/preact'\n\n/* An abstract class for the daygrid views, as well as month view. Renders one or more rows of day cells.\n----------------------------------------------------------------------------------------------------------------------*/\n// It is a manager for a Table subcomponent, which does most of the heavy lifting.\n// It is responsible for managing width/height.\n\nexport abstract class TableView<State=Dictionary> extends DateComponent<ViewProps, State> {\n protected headerElRef: RefObject<HTMLTableCellElement> = createRef<HTMLTableCellElement>()\n\n renderSimpleLayout(\n headerRowContent: ChunkConfigRowContent,\n bodyContent: (contentArg: ChunkContentCallbackArgs) => VNode,\n ) {\n let { props, context } = this\n let sections: SimpleScrollGridSection[] = []\n let stickyHeaderDates = getStickyHeaderDates(context.options)\n\n if (headerRowContent) {\n sections.push({\n type: 'header',\n key: 'header',\n isSticky: stickyHeaderDates,\n chunk: {\n elRef: this.headerElRef,\n tableClassName: 'fc-col-header',\n rowContent: headerRowContent,\n },\n })\n }\n\n sections.push({\n type: 'body',\n key: 'body',\n liquid: true,\n chunk: { content: bodyContent },\n })\n\n return (\n <ViewContainer elClasses={['fc-daygrid']} viewSpec={context.viewSpec}>\n <SimpleScrollGrid\n liquid={!props.isHeightAuto && !props.forPrint}\n collapsibleWidth={props.forPrint}\n cols={[] /* TODO: make optional? */}\n sections={sections}\n />\n </ViewContainer>\n )\n }\n\n renderHScrollLayout(\n headerRowContent: ChunkConfigRowContent,\n bodyContent: (contentArg: ChunkContentCallbackArgs) => VNode,\n colCnt: number,\n dayMinWidth: number,\n ) {\n let ScrollGrid = this.context.pluginHooks.scrollGridImpl\n\n if (!ScrollGrid) {\n throw new Error('No ScrollGrid implementation')\n }\n\n let { props, context } = this\n let stickyHeaderDates = !props.forPrint && getStickyHeaderDates(context.options)\n let stickyFooterScrollbar = !props.forPrint && getStickyFooterScrollbar(context.options)\n let sections: ScrollGridSectionConfig[] = []\n\n if (headerRowContent) {\n sections.push({\n type: 'header',\n key: 'header',\n isSticky: stickyHeaderDates,\n chunks: [{\n key: 'main',\n elRef: this.headerElRef,\n tableClassName: 'fc-col-header',\n rowContent: headerRowContent,\n }],\n })\n }\n\n sections.push({\n type: 'body',\n key: 'body',\n liquid: true,\n chunks: [{\n key: 'main',\n content: bodyContent,\n }],\n })\n\n if (stickyFooterScrollbar) {\n sections.push({\n type: 'footer',\n key: 'footer',\n isSticky: true,\n chunks: [{\n key: 'main',\n content: renderScrollShim,\n }],\n })\n }\n\n return (\n <ViewContainer elClasses={['fc-daygrid']} viewSpec={context.viewSpec}>\n <ScrollGrid\n liquid={!props.isHeightAuto && !props.forPrint}\n collapsibleWidth={props.forPrint}\n colGroups={[{ cols: [{ span: colCnt, minWidth: dayMinWidth }] }]}\n sections={sections}\n />\n </ViewContainer>\n )\n }\n}\n","import {\n DayHeader,\n DateProfileGenerator,\n DateProfile,\n memoize,\n DaySeriesModel,\n DayTableModel,\n ChunkContentCallbackArgs,\n} from '@fullcalendar/core/internal'\nimport { createElement, createRef } from '@fullcalendar/core/preact'\nimport { TableView } from './TableView.js'\nimport { DayTable } from './DayTable.js'\n\nexport class DayTableView extends TableView {\n private buildDayTableModel = memoize(buildDayTableModel)\n private headerRef = createRef<DayHeader>()\n private tableRef = createRef<DayTable>()\n\n render() {\n let { options, dateProfileGenerator } = this.context\n let { props } = this\n let dayTableModel = this.buildDayTableModel(props.dateProfile, dateProfileGenerator)\n\n let headerContent = options.dayHeaders && (\n <DayHeader\n ref={this.headerRef}\n dateProfile={props.dateProfile}\n dates={dayTableModel.headerDates}\n datesRepDistinctDays={dayTableModel.rowCnt === 1}\n />\n )\n\n let bodyContent = (contentArg: ChunkContentCallbackArgs) => (\n <DayTable\n ref={this.tableRef}\n dateProfile={props.dateProfile}\n dayTableModel={dayTableModel}\n businessHours={props.businessHours}\n dateSelection={props.dateSelection}\n eventStore={props.eventStore}\n eventUiBases={props.eventUiBases}\n eventSelection={props.eventSelection}\n eventDrag={props.eventDrag}\n eventResize={props.eventResize}\n nextDayThreshold={options.nextDayThreshold}\n colGroupNode={contentArg.tableColGroupNode}\n tableMinWidth={contentArg.tableMinWidth}\n dayMaxEvents={options.dayMaxEvents}\n dayMaxEventRows={options.dayMaxEventRows}\n showWeekNumbers={options.weekNumbers}\n expandRows={!props.isHeightAuto}\n headerAlignElRef={this.headerElRef}\n clientWidth={contentArg.clientWidth}\n clientHeight={contentArg.clientHeight}\n forPrint={props.forPrint}\n />\n )\n\n return options.dayMinWidth\n ? this.renderHScrollLayout(headerContent, bodyContent, dayTableModel.colCnt, options.dayMinWidth)\n : this.renderSimpleLayout(headerContent, bodyContent)\n }\n}\n\nexport function buildDayTableModel(dateProfile: DateProfile, dateProfileGenerator: DateProfileGenerator) {\n let daySeries = new DaySeriesModel(dateProfile.renderRange, dateProfileGenerator)\n\n return new DayTableModel(\n daySeries,\n /year|month|week/.test(dateProfile.currentRangeUnit),\n )\n}\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fullcalendar/daygrid",
3
- "version": "6.0.0",
3
+ "version": "6.0.2",
4
4
  "title": "FullCalendar Day Grid Plugin",
5
5
  "description": "Display events on a month view or \"day grid\" view",
6
6
  "homepage": "https://fullcalendar.io/docs/month-view",
@@ -13,7 +13,7 @@
13
13
  "month-view"
14
14
  ],
15
15
  "peerDependencies": {
16
- "@fullcalendar/core": "~6.0.0"
16
+ "@fullcalendar/core": "~6.0.2"
17
17
  },
18
18
  "type": "module",
19
19
  "bugs": "https://fullcalendar.io/reporting-bugs",