@fullcalendar/daygrid 4.2.0 → 4.3.0

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/main.js CHANGED
@@ -1,8 +1,9 @@
1
1
  /*!
2
- FullCalendar Day Grid Plugin v4.2.0
2
+ FullCalendar Day Grid Plugin v4.3.0
3
3
  Docs & License: https://fullcalendar.io/
4
4
  (c) 2019 Adam Shaw
5
5
  */
6
+
6
7
  (function (global, factory) {
7
8
  typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@fullcalendar/core')) :
8
9
  typeof define === 'function' && define.amd ? define(['exports', '@fullcalendar/core'], factory) :
@@ -213,14 +214,14 @@ Docs & License: https://fullcalendar.io/
213
214
  }
214
215
  // Builds the HTML to be used for the default element for an individual segment
215
216
  SimpleDayGridEventRenderer.prototype.renderSegHtml = function (seg, mirrorInfo) {
216
- var options = this.context.options;
217
+ var _a = this.context, view = _a.view, options = _a.options;
217
218
  var eventRange = seg.eventRange;
218
219
  var eventDef = eventRange.def;
219
220
  var eventUi = eventRange.ui;
220
221
  var allDay = eventDef.allDay;
221
- var isDraggable = eventUi.startEditable;
222
- var isResizableFromStart = allDay && seg.isStart && eventUi.durationEditable && options.eventResizableFromStart;
223
- var isResizableFromEnd = allDay && seg.isEnd && eventUi.durationEditable;
222
+ var isDraggable = view.computeEventDraggable(eventDef, eventUi);
223
+ var isResizableFromStart = allDay && seg.isStart && view.computeEventStartResizable(eventDef, eventUi);
224
+ var isResizableFromEnd = allDay && seg.isEnd && view.computeEventEndResizable(eventDef, eventUi);
224
225
  var classes = this.getSegClasses(seg, isDraggable, isResizableFromStart || isResizableFromEnd, mirrorInfo);
225
226
  var skinCss = core.cssToStr(this.getSkinCss(eventUi));
226
227
  var timeHtml = '';
@@ -508,6 +509,7 @@ Docs & License: https://fullcalendar.io/
508
509
  return DayGridMirrorRenderer;
509
510
  }(DayGridEventRenderer));
510
511
 
512
+ var EMPTY_CELL_HTML = '<td style="pointer-events:none"></td>';
511
513
  var DayGridFillRenderer = /** @class */ (function (_super) {
512
514
  __extends(DayGridFillRenderer, _super);
513
515
  function DayGridFillRenderer(dayGrid) {
@@ -562,14 +564,14 @@ Docs & License: https://fullcalendar.io/
562
564
  if (startCol > 0) {
563
565
  core.appendToElement(trEl,
564
566
  // will create (startCol + 1) td's
565
- new Array(startCol + 1).join('<td></td>'));
567
+ new Array(startCol + 1).join(EMPTY_CELL_HTML));
566
568
  }
567
569
  seg.el.colSpan = endCol - startCol;
568
570
  trEl.appendChild(seg.el);
569
571
  if (endCol < colCnt) {
570
572
  core.appendToElement(trEl,
571
573
  // will create (colCnt - endCol) td's
572
- new Array(colCnt - endCol + 1).join('<td></td>'));
574
+ new Array(colCnt - endCol + 1).join(EMPTY_CELL_HTML));
573
575
  }
574
576
  var introHtml = dayGrid.renderProps.renderIntroHtml();
575
577
  if (introHtml) {
@@ -1486,7 +1488,7 @@ Docs & License: https://fullcalendar.io/
1486
1488
  };
1487
1489
  /* Scroll
1488
1490
  ------------------------------------------------------------------------------------------------------------------*/
1489
- DayGridView.prototype.computeDateScroll = function (timeMs) {
1491
+ DayGridView.prototype.computeDateScroll = function (duration) {
1490
1492
  return { top: 0 };
1491
1493
  };
1492
1494
  DayGridView.prototype.queryDateScroll = function () {
package/main.min.css CHANGED
@@ -1,5 +1 @@
1
- /*!
2
- FullCalendar Day Grid Plugin v4.2.0
3
- Docs & License: https://fullcalendar.io/
4
- (c) 2019 Adam Shaw
5
- */.fc-dayGridDay-view .fc-content-skeleton,.fc-dayGridWeek-view .fc-content-skeleton{padding-bottom:1em}.fc-dayGrid-view .fc-body .fc-row{min-height:4em}.fc-row.fc-rigid{overflow:hidden}.fc-row.fc-rigid .fc-content-skeleton{position:absolute;top:0;left:0;right:0}.fc-day-top.fc-other-month{opacity:.3}.fc-dayGrid-view .fc-day-number,.fc-dayGrid-view .fc-week-number{padding:2px}.fc-dayGrid-view th.fc-day-number,.fc-dayGrid-view th.fc-week-number{padding:0 2px}.fc-ltr .fc-dayGrid-view .fc-day-top .fc-day-number{float:right}.fc-rtl .fc-dayGrid-view .fc-day-top .fc-day-number{float:left}.fc-ltr .fc-dayGrid-view .fc-day-top .fc-week-number{float:left;border-radius:0 0 3px}.fc-rtl .fc-dayGrid-view .fc-day-top .fc-week-number{float:right;border-radius:0 0 0 3px}.fc-dayGrid-view .fc-day-top .fc-week-number{min-width:1.5em;text-align:center;background-color:#f2f2f2;color:grey}.fc-dayGrid-view td.fc-week-number{text-align:center}.fc-dayGrid-view td.fc-week-number>*{display:inline-block;min-width:1.25em}
1
+ .fc-dayGridDay-view .fc-content-skeleton,.fc-dayGridWeek-view .fc-content-skeleton{padding-bottom:1em}.fc-dayGrid-view .fc-body .fc-row{min-height:4em}.fc-row.fc-rigid{overflow:hidden}.fc-row.fc-rigid .fc-content-skeleton{position:absolute;top:0;left:0;right:0}.fc-day-top.fc-other-month{opacity:.3}.fc-dayGrid-view .fc-day-number,.fc-dayGrid-view .fc-week-number{padding:2px}.fc-dayGrid-view th.fc-day-number,.fc-dayGrid-view th.fc-week-number{padding:0 2px}.fc-ltr .fc-dayGrid-view .fc-day-top .fc-day-number{float:right}.fc-rtl .fc-dayGrid-view .fc-day-top .fc-day-number{float:left}.fc-ltr .fc-dayGrid-view .fc-day-top .fc-week-number{float:left;border-radius:0 0 3px}.fc-rtl .fc-dayGrid-view .fc-day-top .fc-week-number{float:right;border-radius:0 0 0 3px}.fc-dayGrid-view .fc-day-top .fc-week-number{min-width:1.5em;text-align:center;background-color:#f2f2f2;color:grey}.fc-dayGrid-view td.fc-week-number{text-align:center}.fc-dayGrid-view td.fc-week-number>*{display:inline-block;min-width:1.25em}
package/main.min.js CHANGED
@@ -1,20 +1,6 @@
1
1
  /*!
2
- FullCalendar Day Grid Plugin v4.2.0
2
+ FullCalendar Day Grid Plugin v4.3.0
3
3
  Docs & License: https://fullcalendar.io/
4
4
  (c) 2019 Adam Shaw
5
5
  */
6
- !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@fullcalendar/core")):"function"==typeof define&&define.amd?define(["exports","@fullcalendar/core"],t):(e=e||self,t(e.FullCalendarDayGrid={},e.FullCalendar))}(this,function(e,t){"use strict";function r(e,t){function r(){this.constructor=e}l(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}function n(e,t){var r,n;for(r=0;r<t.length;r++)if(n=t[r],n.firstCol<=e.lastCol&&n.lastCol>=e.firstCol)return!0;return!1}function i(e,t){return e.leftCol-t.leftCol}function o(e,r,n,i){var o=n.dateEnv,s=n.theme,l=t.rangeContainsMarker(r.activeRange,e),a=t.getDayClasses(e,r,n);return a.unshift("fc-day",s.getClass("widgetContent")),'<td class="'+a.join(" ")+'"'+(l?' data-date="'+o.formatIso(e,{omitTime:!0})+'"':"")+(i?" "+i:"")+"></td>"}function s(e,r){var n=new t.DaySeries(e.renderRange,r);return new t.DayTable(n,/year|month|week/.test(e.currentRangeUnit))}/*! *****************************************************************************
7
- Copyright (c) Microsoft Corporation. All rights reserved.
8
- Licensed under the Apache License, Version 2.0 (the "License"); you may not use
9
- this file except in compliance with the License. You may obtain a copy of the
10
- License at http://www.apache.org/licenses/LICENSE-2.0
11
-
12
- THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
13
- KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
14
- WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
15
- MERCHANTABLITY OR NON-INFRINGEMENT.
16
-
17
- See the Apache Version 2.0 License for specific language governing permissions
18
- and limitations under the License.
19
- ***************************************************************************** */
20
- var l=function(e,t){return(l=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])})(e,t)},a=function(){return a=Object.assign||function(e){for(var t,r=1,n=arguments.length;r<n;r++){t=arguments[r];for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i])}return e},a.apply(this,arguments)},d=function(e){function n(){return null!==e&&e.apply(this,arguments)||this}return r(n,e),n.prototype.buildRenderRange=function(r,n,i){var o,s=this.dateEnv,l=e.prototype.buildRenderRange.call(this,r,n,i),a=l.start,d=l.end;if(/^(year|month)$/.test(n)&&(a=s.startOfWeek(a),o=s.startOfWeek(d),o.valueOf()!==d.valueOf()&&(d=t.addWeeks(o,1))),this.options.monthMode&&this.options.fixedWeekCount){var c=Math.ceil(t.diffWeeks(a,d));d=t.addWeeks(d,6-c)}return{start:a,end:d}},n}(t.DateProfileGenerator),c=function(){function e(e){var t=this;this.isHidden=!0,this.margin=10,this.documentMousedown=function(e){t.el&&!t.el.contains(e.target)&&t.hide()},this.options=e}return e.prototype.show=function(){this.isHidden&&(this.el||this.render(),this.el.style.display="",this.position(),this.isHidden=!1,this.trigger("show"))},e.prototype.hide=function(){this.isHidden||(this.el.style.display="none",this.isHidden=!0,this.trigger("hide"))},e.prototype.render=function(){var e=this,r=this.options,n=this.el=t.createElement("div",{className:"fc-popover "+(r.className||""),style:{top:"0",left:"0"}});"function"==typeof r.content&&r.content(n),r.parentEl.appendChild(n),t.listenBySelector(n,"click",".fc-close",function(t){e.hide()}),r.autoHide&&document.addEventListener("mousedown",this.documentMousedown)},e.prototype.destroy=function(){this.hide(),this.el&&(t.removeElement(this.el),this.el=null),document.removeEventListener("mousedown",this.documentMousedown)},e.prototype.position=function(){var e,r,n=this.options,i=this.el,o=i.getBoundingClientRect(),s=t.computeRect(i.offsetParent),l=t.computeClippingRect(n.parentEl);e=n.top||0,r=void 0!==n.left?n.left:void 0!==n.right?n.right-o.width:0,e=Math.min(e,l.bottom-o.height-this.margin),e=Math.max(e,l.top+this.margin),r=Math.min(r,l.right-o.width-this.margin),r=Math.max(r,l.left+this.margin),t.applyStyle(i,{top:e-s.top,left:r-s.left})},e.prototype.trigger=function(e){this.options[e]&&this.options[e].apply(this,Array.prototype.slice.call(arguments,1))},e}(),h=function(e){function n(){return null!==e&&e.apply(this,arguments)||this}return r(n,e),n.prototype.renderSegHtml=function(e,r){var n,i,o=this.context.options,s=e.eventRange,l=s.def,a=s.ui,d=l.allDay,c=a.startEditable,h=d&&e.isStart&&a.durationEditable&&o.eventResizableFromStart,p=d&&e.isEnd&&a.durationEditable,u=this.getSegClasses(e,c,h||p,r),f=t.cssToStr(this.getSkinCss(a)),g="";return u.unshift("fc-day-grid-event","fc-h-event"),e.isStart&&(n=this.getTimeText(s))&&(g='<span class="fc-time">'+t.htmlEscape(n)+"</span>"),i='<span class="fc-title">'+(t.htmlEscape(l.title||"")||"&nbsp;")+"</span>",'<a class="'+u.join(" ")+'"'+(l.url?' href="'+t.htmlEscape(l.url)+'"':"")+(f?' style="'+f+'"':"")+'><div class="fc-content">'+("rtl"===o.dir?i+" "+g:g+" "+i)+"</div>"+(h?'<div class="fc-resizer fc-start-resizer"></div>':"")+(p?'<div class="fc-resizer fc-end-resizer"></div>':"")+"</a>"},n.prototype.computeEventTimeFormat=function(){return{hour:"numeric",minute:"2-digit",omitZeroMinute:!0,meridiem:"narrow"}},n.prototype.computeDisplayEventEnd=function(){return!1},n}(t.FgEventRenderer),p=function(e){function o(t){var r=e.call(this,t.context)||this;return r.dayGrid=t,r}return r(o,e),o.prototype.attachSegs=function(e,t){var r=this.rowStructs=this.renderSegRows(e);this.dayGrid.rowEls.forEach(function(e,t){e.querySelector(".fc-content-skeleton > table").appendChild(r[t].tbodyEl)}),t||this.dayGrid.removeSegPopover()},o.prototype.detachSegs=function(){for(var e,r=this.rowStructs||[];e=r.pop();)t.removeElement(e.tbodyEl);this.rowStructs=null},o.prototype.renderSegRows=function(e){var t,r,n=[];for(t=this.groupSegRows(e),r=0;r<t.length;r++)n.push(this.renderSegRow(r,t[r]));return n},o.prototype.renderSegRow=function(e,r){function n(e){for(;s<e;)c=(b[i-1]||[])[s],c?c.rowSpan=(c.rowSpan||1)+1:(c=document.createElement("td"),l.appendChild(c)),v[i][s]=c,b[i][s]=c,s++}var i,o,s,l,a,d,c,h=this.dayGrid,p=h.colCnt,u=h.isRtl,f=this.buildSegLevels(r),g=Math.max(1,f.length),m=document.createElement("tbody"),y=[],v=[],b=[];for(i=0;i<g;i++){if(o=f[i],s=0,l=document.createElement("tr"),y.push([]),v.push([]),b.push([]),o)for(a=0;a<o.length;a++){d=o[a];var w=u?p-1-d.lastCol:d.firstCol,S=u?p-1-d.firstCol:d.lastCol;for(n(w),c=t.createElement("td",{className:"fc-event-container"},d.el),w!==S?c.colSpan=S-w+1:b[i][s]=c;s<=S;)v[i][s]=c,y[i][s]=d,s++;l.appendChild(c)}n(p);var C=h.renderProps.renderIntroHtml();C&&(h.isRtl?t.appendToElement(l,C):t.prependToElement(l,C)),m.appendChild(l)}return{row:e,tbodyEl:m,cellMatrix:v,segMatrix:y,segLevels:f,segs:r}},o.prototype.buildSegLevels=function(e){var t,r,o,s=this.dayGrid,l=s.isRtl,a=s.colCnt,d=[];for(e=this.sortEventSegs(e),t=0;t<e.length;t++){for(r=e[t],o=0;o<d.length&&n(r,d[o]);o++);r.level=o,r.leftCol=l?a-1-r.lastCol:r.firstCol,r.rightCol=l?a-1-r.firstCol:r.lastCol,(d[o]||(d[o]=[])).push(r)}for(o=0;o<d.length;o++)d[o].sort(i);return d},o.prototype.groupSegRows=function(e){var t,r=[];for(t=0;t<this.dayGrid.rowCnt;t++)r.push([]);for(t=0;t<e.length;t++)r[e[t].row].push(e[t]);return r},o.prototype.computeDisplayEventEnd=function(){return 1===this.dayGrid.colCnt},o}(h),u=function(e){function n(){return null!==e&&e.apply(this,arguments)||this}return r(n,e),n.prototype.attachSegs=function(e,r){var n=r.sourceSeg,i=this.rowStructs=this.renderSegRows(e);this.dayGrid.rowEls.forEach(function(e,r){var o,s,l=t.htmlToElement('<div class="fc-mirror-skeleton"><table></table></div>');n&&n.row===r?o=n.el:(o=e.querySelector(".fc-content-skeleton tbody"))||(o=e.querySelector(".fc-content-skeleton table")),s=o.getBoundingClientRect().top-e.getBoundingClientRect().top,l.style.top=s+"px",l.querySelector("table").appendChild(i[r].tbodyEl),e.appendChild(l)})},n}(p),f=function(e){function n(t){var r=e.call(this,t.context)||this;return r.fillSegTag="td",r.dayGrid=t,r}return r(n,e),n.prototype.renderSegs=function(t,r){"bgEvent"===t&&(r=r.filter(function(e){return e.eventRange.def.allDay})),e.prototype.renderSegs.call(this,t,r)},n.prototype.attachSegs=function(e,t){var r,n,i,o=[];for(r=0;r<t.length;r++)n=t[r],i=this.renderFillRow(e,n),this.dayGrid.rowEls[n.row].appendChild(i),o.push(i);return o},n.prototype.renderFillRow=function(e,r){var n,i,o,s=this.dayGrid,l=s.colCnt,a=s.isRtl,d=a?l-1-r.lastCol:r.firstCol,c=a?l-1-r.firstCol:r.lastCol,h=d,p=c+1;n="businessHours"===e?"bgevent":e.toLowerCase(),i=t.htmlToElement('<div class="fc-'+n+'-skeleton"><table><tr></tr></table></div>'),o=i.getElementsByTagName("tr")[0],h>0&&t.appendToElement(o,new Array(h+1).join("<td></td>")),r.el.colSpan=p-h,o.appendChild(r.el),p<l&&t.appendToElement(o,new Array(l-p+1).join("<td></td>"));var u=s.renderProps.renderIntroHtml();return u&&(s.isRtl?t.appendToElement(o,u):t.prependToElement(o,u)),i},n}(t.FillRenderer),g=function(e){function n(r,n){var i=e.call(this,r,n)||this,o=i.eventRenderer=new m(i),s=i.renderFrame=t.memoizeRendering(i._renderFrame);return i.renderFgEvents=t.memoizeRendering(o.renderSegs.bind(o),o.unrender.bind(o),[s]),i.renderEventSelection=t.memoizeRendering(o.selectByInstanceId.bind(o),o.unselectByInstanceId.bind(o),[i.renderFgEvents]),i.renderEventDrag=t.memoizeRendering(o.hideByHash.bind(o),o.showByHash.bind(o),[s]),i.renderEventResize=t.memoizeRendering(o.hideByHash.bind(o),o.showByHash.bind(o),[s]),r.calendar.registerInteractiveComponent(i,{el:i.el,useEventCenter:!1}),i}return r(n,e),n.prototype.render=function(e){this.renderFrame(e.date),this.renderFgEvents(e.fgSegs),this.renderEventSelection(e.eventSelection),this.renderEventDrag(e.eventDragInstances),this.renderEventResize(e.eventResizeInstances)},n.prototype.destroy=function(){e.prototype.destroy.call(this),this.renderFrame.unrender(),this.calendar.unregisterInteractiveComponent(this)},n.prototype._renderFrame=function(e){var r=this,n=r.theme,i=r.dateEnv,o=i.format(e,t.createFormatter(this.opt("dayPopoverFormat")));this.el.innerHTML='<div class="fc-header '+n.getClass("popoverHeader")+'"><span class="fc-title">'+t.htmlEscape(o)+'</span><span class="fc-close '+n.getIconClass("close")+'"></span></div><div class="fc-body '+n.getClass("popoverContent")+'"><div class="fc-event-container"></div></div>',this.segContainerEl=this.el.querySelector(".fc-event-container")},n.prototype.queryHit=function(e,r,n,i){var o=this.props.date;if(e<n&&r<i)return{component:this,dateSpan:{allDay:!0,range:{start:o,end:t.addDays(o,1)}},dayEl:this.el,rect:{left:0,top:0,right:n,bottom:i},layer:1}},n}(t.DateComponent),m=function(e){function n(t){var r=e.call(this,t.context)||this;return r.dayTile=t,r}return r(n,e),n.prototype.attachSegs=function(e){for(var t=0,r=e;t<r.length;t++){var n=r[t];this.dayTile.segContainerEl.appendChild(n.el)}},n.prototype.detachSegs=function(e){for(var r=0,n=e;r<n.length;r++){var i=n[r];t.removeElement(i.el)}},n}(h),y=function(){function e(e){this.context=e}return e.prototype.renderHtml=function(e){var t=[];e.renderIntroHtml&&t.push(e.renderIntroHtml());for(var r=0,n=e.cells;r<n.length;r++){var i=n[r];t.push(o(i.date,e.dateProfile,this.context,i.htmlAttrs))}return e.cells.length||t.push('<td class="fc-day '+this.context.theme.getClass("widgetContent")+'"></td>'),"rtl"===this.context.options.dir&&t.reverse(),"<tr>"+t.join("")+"</tr>"},e}(),v=t.createFormatter({day:"numeric"}),b=t.createFormatter({week:"numeric"}),w=function(e){function n(r,n,i){var o=e.call(this,r,n)||this;o.bottomCoordPadding=0,o.isCellSizesDirty=!1;var s=o.eventRenderer=new p(o),l=o.fillRenderer=new f(o);o.mirrorRenderer=new u(o);var a=o.renderCells=t.memoizeRendering(o._renderCells,o._unrenderCells);return o.renderBusinessHours=t.memoizeRendering(l.renderSegs.bind(l,"businessHours"),l.unrender.bind(l,"businessHours"),[a]),o.renderDateSelection=t.memoizeRendering(l.renderSegs.bind(l,"highlight"),l.unrender.bind(l,"highlight"),[a]),o.renderBgEvents=t.memoizeRendering(l.renderSegs.bind(l,"bgEvent"),l.unrender.bind(l,"bgEvent"),[a]),o.renderFgEvents=t.memoizeRendering(s.renderSegs.bind(s),s.unrender.bind(s),[a]),o.renderEventSelection=t.memoizeRendering(s.selectByInstanceId.bind(s),s.unselectByInstanceId.bind(s),[o.renderFgEvents]),o.renderEventDrag=t.memoizeRendering(o._renderEventDrag,o._unrenderEventDrag,[a]),o.renderEventResize=t.memoizeRendering(o._renderEventResize,o._unrenderEventResize,[a]),o.renderProps=i,o}return r(n,e),n.prototype.render=function(e){var t=e.cells;this.rowCnt=t.length,this.colCnt=t[0].length,this.renderCells(t,e.isRigid),this.renderBusinessHours(e.businessHourSegs),this.renderDateSelection(e.dateSelectionSegs),this.renderBgEvents(e.bgEventSegs),this.renderFgEvents(e.fgEventSegs),this.renderEventSelection(e.eventSelection),this.renderEventDrag(e.eventDrag),this.renderEventResize(e.eventResize),this.segPopoverTile&&this.updateSegPopoverTile()},n.prototype.destroy=function(){e.prototype.destroy.call(this),this.renderCells.unrender()},n.prototype.getCellRange=function(e,r){var n=this.props.cells[e][r].date;return{start:n,end:t.addDays(n,1)}},n.prototype.updateSegPopoverTile=function(e,t){var r=this.props;this.segPopoverTile.receiveProps({date:e||this.segPopoverTile.props.date,fgSegs:t||this.segPopoverTile.props.fgSegs,eventSelection:r.eventSelection,eventDragInstances:r.eventDrag?r.eventDrag.affectedInstances:null,eventResizeInstances:r.eventResize?r.eventResize.affectedInstances:null})},n.prototype._renderCells=function(e,r){var n,i,o=this,s=o.view,l=o.dateEnv,a=this,d=a.rowCnt,c=a.colCnt,h="";for(n=0;n<d;n++)h+=this.renderDayRowHtml(n,r);for(this.el.innerHTML=h,this.rowEls=t.findElements(this.el,".fc-row"),this.cellEls=t.findElements(this.el,".fc-day, .fc-disabled-day"),this.isRtl&&this.cellEls.reverse(),this.rowPositions=new t.PositionCache(this.el,this.rowEls,!1,!0),this.colPositions=new t.PositionCache(this.el,this.cellEls.slice(0,c),!0,!1),n=0;n<d;n++)for(i=0;i<c;i++)this.publiclyTrigger("dayRender",[{date:l.toDate(e[n][i].date),el:this.getCellEl(n,i),view:s}]);this.isCellSizesDirty=!0},n.prototype._unrenderCells=function(){this.removeSegPopover()},n.prototype.renderDayRowHtml=function(e,t){var r=this.theme,n=["fc-row","fc-week",r.getClass("dayRow")];t&&n.push("fc-rigid");var i=new y(this.context);return'<div class="'+n.join(" ")+'"><div class="fc-bg"><table class="'+r.getClass("tableGrid")+'">'+i.renderHtml({cells:this.props.cells[e],dateProfile:this.props.dateProfile,renderIntroHtml:this.renderProps.renderBgIntroHtml})+'</table></div><div class="fc-content-skeleton"><table>'+(this.getIsNumbersVisible()?"<thead>"+this.renderNumberTrHtml(e)+"</thead>":"")+"</table></div></div>"},n.prototype.getIsNumbersVisible=function(){return this.getIsDayNumbersVisible()||this.renderProps.cellWeekNumbersVisible||this.renderProps.colWeekNumbersVisible},n.prototype.getIsDayNumbersVisible=function(){return this.rowCnt>1},n.prototype.renderNumberTrHtml=function(e){var t=this.renderProps.renderNumberIntroHtml(e,this);return"<tr>"+(this.isRtl?"":t)+this.renderNumberCellsHtml(e)+(this.isRtl?t:"")+"</tr>"},n.prototype.renderNumberCellsHtml=function(e){var t,r,n=[];for(t=0;t<this.colCnt;t++)r=this.props.cells[e][t].date,n.push(this.renderNumberCellHtml(r));return this.isRtl&&n.reverse(),n.join("")},n.prototype.renderNumberCellHtml=function(e){var r,n,i=this,o=i.view,s=i.dateEnv,l="",a=t.rangeContainsMarker(this.props.dateProfile.activeRange,e),d=this.getIsDayNumbersVisible()&&a;return d||this.renderProps.cellWeekNumbersVisible?(r=t.getDayClasses(e,this.props.dateProfile,this.context),r.unshift("fc-day-top"),this.renderProps.cellWeekNumbersVisible&&(n=s.weekDow),l+='<td class="'+r.join(" ")+'"'+(a?' data-date="'+s.formatIso(e,{omitTime:!0})+'"':"")+">",this.renderProps.cellWeekNumbersVisible&&e.getUTCDay()===n&&(l+=t.buildGotoAnchorHtml(o,{date:e,type:"week"},{class:"fc-week-number"},s.format(e,b))),d&&(l+=t.buildGotoAnchorHtml(o,e,{class:"fc-day-number"},s.format(e,v))),l+="</td>"):"<td></td>"},n.prototype.updateSize=function(e){var t=this,r=t.fillRenderer,n=t.eventRenderer,i=t.mirrorRenderer;(e||this.isCellSizesDirty||this.view.calendar.isEventsUpdated)&&(this.buildPositionCaches(),this.isCellSizesDirty=!1),r.computeSizes(e),n.computeSizes(e),i.computeSizes(e),r.assignSizes(e),n.assignSizes(e),i.assignSizes(e)},n.prototype.buildPositionCaches=function(){this.buildColPositions(),this.buildRowPositions()},n.prototype.buildColPositions=function(){this.colPositions.build()},n.prototype.buildRowPositions=function(){this.rowPositions.build(),this.rowPositions.bottoms[this.rowCnt-1]+=this.bottomCoordPadding},n.prototype.positionToHit=function(e,t){var r=this,n=r.colPositions,i=r.rowPositions,o=n.leftToIndex(e),s=i.topToIndex(t);if(null!=s&&null!=o)return{row:s,col:o,dateSpan:{range:this.getCellRange(s,o),allDay:!0},dayEl:this.getCellEl(s,o),relativeRect:{left:n.lefts[o],right:n.rights[o],top:i.tops[s],bottom:i.bottoms[s]}}},n.prototype.getCellEl=function(e,t){return this.cellEls[e*this.colCnt+t]},n.prototype._renderEventDrag=function(e){e&&(this.eventRenderer.hideByHash(e.affectedInstances),this.fillRenderer.renderSegs("highlight",e.segs))},n.prototype._unrenderEventDrag=function(e){e&&(this.eventRenderer.showByHash(e.affectedInstances),this.fillRenderer.unrender("highlight"))},n.prototype._renderEventResize=function(e){e&&(this.eventRenderer.hideByHash(e.affectedInstances),this.fillRenderer.renderSegs("highlight",e.segs),this.mirrorRenderer.renderSegs(e.segs,{isResizing:!0,sourceSeg:e.sourceSeg}))},n.prototype._unrenderEventResize=function(e){e&&(this.eventRenderer.showByHash(e.affectedInstances),this.fillRenderer.unrender("highlight"),this.mirrorRenderer.unrender(e.segs,{isResizing:!0,sourceSeg:e.sourceSeg}))},n.prototype.removeSegPopover=function(){this.segPopover&&this.segPopover.hide()},n.prototype.limitRows=function(e){var t,r,n=this.eventRenderer.rowStructs||[];for(t=0;t<n.length;t++)this.unlimitRow(t),!1!==(r=!!e&&("number"==typeof e?e:this.computeRowLevelLimit(t)))&&this.limitRow(t,r)},n.prototype.computeRowLevelLimit=function(e){var r,n,i=this.rowEls[e],o=i.getBoundingClientRect().bottom,s=t.findChildren(this.eventRenderer.rowStructs[e].tbodyEl);for(r=0;r<s.length;r++)if(n=s[r],n.classList.remove("fc-limited"),n.getBoundingClientRect().bottom>o)return r;return!1},n.prototype.limitRow=function(e,r){var n,i,o,s,l,a,d,c,h,p,u,f,g,m,y,v=this,b=this,w=b.colCnt,S=b.isRtl,C=this.eventRenderer.rowStructs[e],E=[],R=0,H=function(n){for(;R<n;)a=v.getCellSegs(e,R,r),a.length&&(h=i[r-1][R],y=v.renderMoreLink(e,R,a),m=t.createElement("div",null,y),h.appendChild(m),E.push(m)),R++};if(r&&r<C.segLevels.length){for(n=C.segLevels[r-1],i=C.cellMatrix,o=t.findChildren(C.tbodyEl).slice(r),o.forEach(function(e){e.classList.add("fc-limited")}),s=0;s<n.length;s++){l=n[s];var D=S?w-1-l.lastCol:l.firstCol,P=S?w-1-l.firstCol:l.lastCol;for(H(D),c=[],d=0;R<=P;)a=this.getCellSegs(e,R,r),c.push(a),d+=a.length,R++;if(d){for(h=i[r-1][D],p=h.rowSpan||1,u=[],f=0;f<c.length;f++)g=t.createElement("td",{className:"fc-more-cell",rowSpan:p}),a=c[f],y=this.renderMoreLink(e,D+f,[l].concat(a)),m=t.createElement("div",null,y),g.appendChild(m),u.push(g),E.push(g);h.classList.add("fc-limited"),t.insertAfterElement(h,u),o.push(h)}}H(this.colCnt),C.moreEls=E,C.limitedEls=o}},n.prototype.unlimitRow=function(e){var r=this.eventRenderer.rowStructs[e];r.moreEls&&(r.moreEls.forEach(t.removeElement),r.moreEls=null),r.limitedEls&&(r.limitedEls.forEach(function(e){e.classList.remove("fc-limited")}),r.limitedEls=null)},n.prototype.renderMoreLink=function(e,r,n){var i=this,o=this,s=o.view,l=o.dateEnv,a=t.createElement("a",{className:"fc-more"});return a.innerText=this.getMoreLinkText(n.length),a.addEventListener("click",function(t){var o=i.opt("eventLimitClick"),a=i.isRtl?i.colCnt-r-1:r,d=i.props.cells[e][a].date,c=t.currentTarget,h=i.getCellEl(e,r),p=i.getCellSegs(e,r),u=i.resliceDaySegs(p,d),f=i.resliceDaySegs(n,d);"function"==typeof o&&(o=i.publiclyTrigger("eventLimitClick",[{date:l.toDate(d),allDay:!0,dayEl:h,moreEl:c,segs:u,hiddenSegs:f,jsEvent:t,view:s}])),"popover"===o?i.showSegPopover(e,r,c,u):"string"==typeof o&&s.calendar.zoomTo(d,o)}),a},n.prototype.showSegPopover=function(e,r,n,i){var o,s,l=this,a=this,d=a.calendar,h=a.view,p=a.theme,u=this.isRtl?this.colCnt-r-1:r,f=n.parentNode;o=1===this.rowCnt?h.el:this.rowEls[e],s={className:"fc-more-popover "+p.getClass("popover"),parentEl:h.el,top:t.computeRect(o).top,autoHide:!0,content:function(t){l.segPopoverTile=new g(l.context,t),l.updateSegPopoverTile(l.props.cells[e][u].date,i)},hide:function(){l.segPopoverTile.destroy(),l.segPopoverTile=null,l.segPopover.destroy(),l.segPopover=null}},this.isRtl?s.right=t.computeRect(f).right+1:s.left=t.computeRect(f).left-1,this.segPopover=new c(s),this.segPopover.show(),d.releaseAfterSizingTriggers()},n.prototype.resliceDaySegs=function(e,r){for(var n=r,i=t.addDays(n,1),o={start:n,end:i},s=[],l=0,d=e;l<d.length;l++){var c=d[l],h=c.eventRange,p=h.range,u=t.intersectRanges(p,o);u&&s.push(a({},c,{eventRange:{def:h.def,ui:a({},h.ui,{durationEditable:!1}),instance:h.instance,range:u},isStart:c.isStart&&u.start.valueOf()===p.start.valueOf(),isEnd:c.isEnd&&u.end.valueOf()===p.end.valueOf()}))}return s},n.prototype.getMoreLinkText=function(e){var t=this.opt("eventLimitText");return"function"==typeof t?t(e):"+"+e+" "+t},n.prototype.getCellSegs=function(e,t,r){for(var n,i=this.eventRenderer.rowStructs[e].segMatrix,o=r||0,s=[];o<i.length;)n=i[o][t],n&&s.push(n),o++;return s},n}(t.DateComponent),S=t.createFormatter({week:"numeric"}),C=function(e){function n(r,n,i,o){var s=e.call(this,r,n,i,o)||this;s.renderHeadIntroHtml=function(){var e=s.theme;return s.colWeekNumbersVisible?'<th class="fc-week-number '+e.getClass("widgetHeader")+'" '+s.weekNumberStyleAttr()+"><span>"+t.htmlEscape(s.opt("weekLabel"))+"</span></th>":""},s.renderDayGridNumberIntroHtml=function(e,r){var n=s.dateEnv,i=r.props.cells[e][0].date;return s.colWeekNumbersVisible?'<td class="fc-week-number" '+s.weekNumberStyleAttr()+">"+t.buildGotoAnchorHtml(s,{date:i,type:"week",forceOff:1===r.colCnt},n.format(i,S))+"</td>":""},s.renderDayGridBgIntroHtml=function(){var e=s.theme;return s.colWeekNumbersVisible?'<td class="fc-week-number '+e.getClass("widgetContent")+'" '+s.weekNumberStyleAttr()+"></td>":""},s.renderDayGridIntroHtml=function(){return s.colWeekNumbersVisible?'<td class="fc-week-number" '+s.weekNumberStyleAttr()+"></td>":""},s.el.classList.add("fc-dayGrid-view"),s.el.innerHTML=s.renderSkeletonHtml(),s.scroller=new t.ScrollComponent("hidden","auto");var l=s.scroller.el;s.el.querySelector(".fc-body > tr > td").appendChild(l),l.classList.add("fc-day-grid-container");var a=t.createElement("div",{className:"fc-day-grid"});l.appendChild(a);var d;return s.opt("weekNumbers")?s.opt("weekNumbersWithinDays")?(d=!0,s.colWeekNumbersVisible=!1):(d=!1,s.colWeekNumbersVisible=!0):(s.colWeekNumbersVisible=!1,d=!1),s.dayGrid=new w(s.context,a,{renderNumberIntroHtml:s.renderDayGridNumberIntroHtml,renderBgIntroHtml:s.renderDayGridBgIntroHtml,renderIntroHtml:s.renderDayGridIntroHtml,colWeekNumbersVisible:s.colWeekNumbersVisible,cellWeekNumbersVisible:d}),s}return r(n,e),n.prototype.destroy=function(){e.prototype.destroy.call(this),this.dayGrid.destroy(),this.scroller.destroy()},n.prototype.renderSkeletonHtml=function(){var e=this.theme;return'<table class="'+e.getClass("tableGrid")+'">'+(this.opt("columnHeader")?'<thead class="fc-head"><tr><td class="fc-head-container '+e.getClass("widgetHeader")+'">&nbsp;</td></tr></thead>':"")+'<tbody class="fc-body"><tr><td class="'+e.getClass("widgetContent")+'"></td></tr></tbody></table>'},n.prototype.weekNumberStyleAttr=function(){return null!=this.weekNumberWidth?'style="width:'+this.weekNumberWidth+'px"':""},n.prototype.hasRigidRows=function(){var e=this.opt("eventLimit");return e&&"number"!=typeof e},n.prototype.updateSize=function(t,r,n){e.prototype.updateSize.call(this,t,r,n),this.dayGrid.updateSize(t)},n.prototype.updateBaseSize=function(e,r,n){var i,o,s=this.dayGrid,l=this.opt("eventLimit"),a=this.header?this.header.el:null;if(!s.rowEls)return void(n||(i=this.computeScrollerHeight(r),this.scroller.setHeight(i)));this.colWeekNumbersVisible&&(this.weekNumberWidth=t.matchCellWidths(t.findElements(this.el,".fc-week-number"))),this.scroller.clear(),a&&t.uncompensateScroll(a),s.removeSegPopover(),l&&"number"==typeof l&&s.limitRows(l),i=this.computeScrollerHeight(r),this.setGridHeight(i,n),l&&"number"!=typeof l&&s.limitRows(l),n||(this.scroller.setHeight(i),o=this.scroller.getScrollbarWidths(),(o.left||o.right)&&(a&&t.compensateScroll(a,o),i=this.computeScrollerHeight(r),this.scroller.setHeight(i)),this.scroller.lockOverflow(o))},n.prototype.computeScrollerHeight=function(e){return e-t.subtractInnerElHeight(this.el,this.scroller.el)},n.prototype.setGridHeight=function(e,r){this.opt("monthMode")?(r&&(e*=this.dayGrid.rowCnt/6),t.distributeHeight(this.dayGrid.rowEls,e,!r)):r?t.undistributeHeight(this.dayGrid.rowEls):t.distributeHeight(this.dayGrid.rowEls,e,!0)},n.prototype.computeDateScroll=function(e){return{top:0}},n.prototype.queryDateScroll=function(){return{top:this.scroller.getScrollTop()}},n.prototype.applyDateScroll=function(e){void 0!==e.top&&this.scroller.setScrollTop(e.top)},n}(t.View);C.prototype.dateProfileGeneratorClass=d;var E=function(e){function t(t,r){var n=e.call(this,t,r.el)||this;return n.slicer=new R,n.dayGrid=r,t.calendar.registerInteractiveComponent(n,{el:n.dayGrid.el}),n}return r(t,e),t.prototype.destroy=function(){e.prototype.destroy.call(this),this.calendar.unregisterInteractiveComponent(this)},t.prototype.render=function(e){var t=this.dayGrid,r=e.dateProfile,n=e.dayTable;t.receiveProps(a({},this.slicer.sliceProps(e,r,e.nextDayThreshold,t,n),{dateProfile:r,cells:n.cells,isRigid:e.isRigid}))},t.prototype.buildPositionCaches=function(){this.dayGrid.buildPositionCaches()},t.prototype.queryHit=function(e,t){var r=this.dayGrid.positionToHit(e,t);if(r)return{component:this.dayGrid,dateSpan:r.dateSpan,dayEl:r.dayEl,rect:{left:r.relativeRect.left,right:r.relativeRect.right,top:r.relativeRect.top,bottom:r.relativeRect.bottom},layer:0}},t}(t.DateComponent),R=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return r(t,e),t.prototype.sliceRange=function(e,t){return t.sliceRange(e)},t}(t.Slicer),H=function(e){function n(r,n,i,o){var l=e.call(this,r,n,i,o)||this;return l.buildDayTable=t.memoize(s),l.opt("columnHeader")&&(l.header=new t.DayHeader(l.context,l.el.querySelector(".fc-head-container"))),l.simpleDayGrid=new E(l.context,l.dayGrid),l}return r(n,e),n.prototype.destroy=function(){e.prototype.destroy.call(this),this.header&&this.header.destroy(),this.simpleDayGrid.destroy()},n.prototype.render=function(t){e.prototype.render.call(this,t);var r=this.props.dateProfile,n=this.dayTable=this.buildDayTable(r,this.dateProfileGenerator);this.header&&this.header.receiveProps({dateProfile:r,dates:n.headerDates,datesRepDistinctDays:1===n.rowCnt,renderIntroHtml:this.renderHeadIntroHtml}),this.simpleDayGrid.receiveProps({dateProfile:r,dayTable:n,businessHours:t.businessHours,dateSelection:t.dateSelection,eventStore:t.eventStore,eventUiBases:t.eventUiBases,eventSelection:t.eventSelection,eventDrag:t.eventDrag,eventResize:t.eventResize,isRigid:this.hasRigidRows(),nextDayThreshold:this.nextDayThreshold})},n}(C),D=t.createPlugin({defaultView:"dayGridMonth",views:{dayGrid:H,dayGridDay:{type:"dayGrid",duration:{days:1}},dayGridWeek:{type:"dayGrid",duration:{weeks:1}},dayGridMonth:{type:"dayGrid",duration:{months:1},monthMode:!0,fixedWeekCount:!0}}});e.AbstractDayGridView=C,e.DayBgRow=y,e.DayGrid=w,e.DayGridSlicer=R,e.DayGridView=H,e.SimpleDayGrid=E,e.buildBasicDayTable=s,e.default=D,Object.defineProperty(e,"__esModule",{value:!0})});
6
+ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@fullcalendar/core")):"function"==typeof define&&define.amd?define(["exports","@fullcalendar/core"],t):t((e=e||self).FullCalendarDayGrid={},e.FullCalendar)}(this,function(e,t){"use strict";var r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])})(e,t)};function n(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}var i=function(){return(i=Object.assign||function(e){for(var t,r=1,n=arguments.length;r<n;r++)for(var i in t=arguments[r])Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e}).apply(this,arguments)},o=function(e){function r(){return null!==e&&e.apply(this,arguments)||this}return n(r,e),r.prototype.buildRenderRange=function(r,n,i){var o,s=this.dateEnv,l=e.prototype.buildRenderRange.call(this,r,n,i),a=l.start,d=l.end;if(/^(year|month)$/.test(n)&&(a=s.startOfWeek(a),(o=s.startOfWeek(d)).valueOf()!==d.valueOf()&&(d=t.addWeeks(o,1))),this.options.monthMode&&this.options.fixedWeekCount){var c=Math.ceil(t.diffWeeks(a,d));d=t.addWeeks(d,6-c)}return{start:a,end:d}},r}(t.DateProfileGenerator),s=function(){function e(e){var t=this;this.isHidden=!0,this.margin=10,this.documentMousedown=function(e){t.el&&!t.el.contains(e.target)&&t.hide()},this.options=e}return e.prototype.show=function(){this.isHidden&&(this.el||this.render(),this.el.style.display="",this.position(),this.isHidden=!1,this.trigger("show"))},e.prototype.hide=function(){this.isHidden||(this.el.style.display="none",this.isHidden=!0,this.trigger("hide"))},e.prototype.render=function(){var e=this,r=this.options,n=this.el=t.createElement("div",{className:"fc-popover "+(r.className||""),style:{top:"0",left:"0"}});"function"==typeof r.content&&r.content(n),r.parentEl.appendChild(n),t.listenBySelector(n,"click",".fc-close",function(t){e.hide()}),r.autoHide&&document.addEventListener("mousedown",this.documentMousedown)},e.prototype.destroy=function(){this.hide(),this.el&&(t.removeElement(this.el),this.el=null),document.removeEventListener("mousedown",this.documentMousedown)},e.prototype.position=function(){var e,r,n=this.options,i=this.el,o=i.getBoundingClientRect(),s=t.computeRect(i.offsetParent),l=t.computeClippingRect(n.parentEl);e=n.top||0,r=void 0!==n.left?n.left:void 0!==n.right?n.right-o.width:0,e=Math.min(e,l.bottom-o.height-this.margin),e=Math.max(e,l.top+this.margin),r=Math.min(r,l.right-o.width-this.margin),r=Math.max(r,l.left+this.margin),t.applyStyle(i,{top:e-s.top,left:r-s.left})},e.prototype.trigger=function(e){this.options[e]&&this.options[e].apply(this,Array.prototype.slice.call(arguments,1))},e}(),l=function(e){function r(){return null!==e&&e.apply(this,arguments)||this}return n(r,e),r.prototype.renderSegHtml=function(e,r){var n,i,o=this.context,s=o.view,l=o.options,a=e.eventRange,d=a.def,c=a.ui,h=d.allDay,p=s.computeEventDraggable(d,c),u=h&&e.isStart&&s.computeEventStartResizable(d,c),f=h&&e.isEnd&&s.computeEventEndResizable(d,c),g=this.getSegClasses(e,p,u||f,r),m=t.cssToStr(this.getSkinCss(c)),y="";return g.unshift("fc-day-grid-event","fc-h-event"),e.isStart&&(n=this.getTimeText(a))&&(y='<span class="fc-time">'+t.htmlEscape(n)+"</span>"),i='<span class="fc-title">'+(t.htmlEscape(d.title||"")||"&nbsp;")+"</span>",'<a class="'+g.join(" ")+'"'+(d.url?' href="'+t.htmlEscape(d.url)+'"':"")+(m?' style="'+m+'"':"")+'><div class="fc-content">'+("rtl"===l.dir?i+" "+y:y+" "+i)+"</div>"+(u?'<div class="fc-resizer fc-start-resizer"></div>':"")+(f?'<div class="fc-resizer fc-end-resizer"></div>':"")+"</a>"},r.prototype.computeEventTimeFormat=function(){return{hour:"numeric",minute:"2-digit",omitZeroMinute:!0,meridiem:"narrow"}},r.prototype.computeDisplayEventEnd=function(){return!1},r}(t.FgEventRenderer),a=function(e){function r(t){var r=e.call(this,t.context)||this;return r.dayGrid=t,r}return n(r,e),r.prototype.attachSegs=function(e,t){var r=this.rowStructs=this.renderSegRows(e);this.dayGrid.rowEls.forEach(function(e,t){e.querySelector(".fc-content-skeleton > table").appendChild(r[t].tbodyEl)}),t||this.dayGrid.removeSegPopover()},r.prototype.detachSegs=function(){for(var e,r=this.rowStructs||[];e=r.pop();)t.removeElement(e.tbodyEl);this.rowStructs=null},r.prototype.renderSegRows=function(e){var t,r,n=[];for(t=this.groupSegRows(e),r=0;r<t.length;r++)n.push(this.renderSegRow(r,t[r]));return n},r.prototype.renderSegRow=function(e,r){var n,i,o,s,l,a,d,c=this.dayGrid,h=c.colCnt,p=c.isRtl,u=this.buildSegLevels(r),f=Math.max(1,u.length),g=document.createElement("tbody"),m=[],y=[],v=[];function b(e){for(;o<e;)(d=(v[n-1]||[])[o])?d.rowSpan=(d.rowSpan||1)+1:(d=document.createElement("td"),s.appendChild(d)),y[n][o]=d,v[n][o]=d,o++}for(n=0;n<f;n++){if(i=u[n],o=0,s=document.createElement("tr"),m.push([]),y.push([]),v.push([]),i)for(l=0;l<i.length;l++){a=i[l];var w=p?h-1-a.lastCol:a.firstCol,S=p?h-1-a.firstCol:a.lastCol;for(b(w),d=t.createElement("td",{className:"fc-event-container"},a.el),w!==S?d.colSpan=S-w+1:v[n][o]=d;o<=S;)y[n][o]=d,m[n][o]=a,o++;s.appendChild(d)}b(h);var C=c.renderProps.renderIntroHtml();C&&(c.isRtl?t.appendToElement(s,C):t.prependToElement(s,C)),g.appendChild(s)}return{row:e,tbodyEl:g,cellMatrix:y,segMatrix:m,segLevels:u,segs:r}},r.prototype.buildSegLevels=function(e){var t,r,n,i=this.dayGrid,o=i.isRtl,s=i.colCnt,l=[];for(e=this.sortEventSegs(e),t=0;t<e.length;t++){for(r=e[t],n=0;n<l.length&&d(r,l[n]);n++);r.level=n,r.leftCol=o?s-1-r.lastCol:r.firstCol,r.rightCol=o?s-1-r.firstCol:r.lastCol,(l[n]||(l[n]=[])).push(r)}for(n=0;n<l.length;n++)l[n].sort(c);return l},r.prototype.groupSegRows=function(e){var t,r=[];for(t=0;t<this.dayGrid.rowCnt;t++)r.push([]);for(t=0;t<e.length;t++)r[e[t].row].push(e[t]);return r},r.prototype.computeDisplayEventEnd=function(){return 1===this.dayGrid.colCnt},r}(l);function d(e,t){var r,n;for(r=0;r<t.length;r++)if((n=t[r]).firstCol<=e.lastCol&&n.lastCol>=e.firstCol)return!0;return!1}function c(e,t){return e.leftCol-t.leftCol}var h=function(e){function r(){return null!==e&&e.apply(this,arguments)||this}return n(r,e),r.prototype.attachSegs=function(e,r){var n=r.sourceSeg,i=this.rowStructs=this.renderSegRows(e);this.dayGrid.rowEls.forEach(function(e,r){var o,s,l=t.htmlToElement('<div class="fc-mirror-skeleton"><table></table></div>');n&&n.row===r?o=n.el:(o=e.querySelector(".fc-content-skeleton tbody"))||(o=e.querySelector(".fc-content-skeleton table")),s=o.getBoundingClientRect().top-e.getBoundingClientRect().top,l.style.top=s+"px",l.querySelector("table").appendChild(i[r].tbodyEl),e.appendChild(l)})},r}(a),p=function(e){function r(t){var r=e.call(this,t.context)||this;return r.fillSegTag="td",r.dayGrid=t,r}return n(r,e),r.prototype.renderSegs=function(t,r){"bgEvent"===t&&(r=r.filter(function(e){return e.eventRange.def.allDay})),e.prototype.renderSegs.call(this,t,r)},r.prototype.attachSegs=function(e,t){var r,n,i,o=[];for(r=0;r<t.length;r++)n=t[r],i=this.renderFillRow(e,n),this.dayGrid.rowEls[n.row].appendChild(i),o.push(i);return o},r.prototype.renderFillRow=function(e,r){var n,i,o,s=this.dayGrid,l=s.colCnt,a=s.isRtl,d=a?l-1-r.lastCol:r.firstCol,c=(a?l-1-r.firstCol:r.lastCol)+1;n="businessHours"===e?"bgevent":e.toLowerCase(),o=(i=t.htmlToElement('<div class="fc-'+n+'-skeleton"><table><tr></tr></table></div>')).getElementsByTagName("tr")[0],d>0&&t.appendToElement(o,new Array(d+1).join('<td style="pointer-events:none"></td>')),r.el.colSpan=c-d,o.appendChild(r.el),c<l&&t.appendToElement(o,new Array(l-c+1).join('<td style="pointer-events:none"></td>'));var h=s.renderProps.renderIntroHtml();return h&&(s.isRtl?t.appendToElement(o,h):t.prependToElement(o,h)),i},r}(t.FillRenderer),u=function(e){function r(r,n){var i=e.call(this,r,n)||this,o=i.eventRenderer=new f(i),s=i.renderFrame=t.memoizeRendering(i._renderFrame);return i.renderFgEvents=t.memoizeRendering(o.renderSegs.bind(o),o.unrender.bind(o),[s]),i.renderEventSelection=t.memoizeRendering(o.selectByInstanceId.bind(o),o.unselectByInstanceId.bind(o),[i.renderFgEvents]),i.renderEventDrag=t.memoizeRendering(o.hideByHash.bind(o),o.showByHash.bind(o),[s]),i.renderEventResize=t.memoizeRendering(o.hideByHash.bind(o),o.showByHash.bind(o),[s]),r.calendar.registerInteractiveComponent(i,{el:i.el,useEventCenter:!1}),i}return n(r,e),r.prototype.render=function(e){this.renderFrame(e.date),this.renderFgEvents(e.fgSegs),this.renderEventSelection(e.eventSelection),this.renderEventDrag(e.eventDragInstances),this.renderEventResize(e.eventResizeInstances)},r.prototype.destroy=function(){e.prototype.destroy.call(this),this.renderFrame.unrender(),this.calendar.unregisterInteractiveComponent(this)},r.prototype._renderFrame=function(e){var r=this.theme,n=this.dateEnv.format(e,t.createFormatter(this.opt("dayPopoverFormat")));this.el.innerHTML='<div class="fc-header '+r.getClass("popoverHeader")+'"><span class="fc-title">'+t.htmlEscape(n)+'</span><span class="fc-close '+r.getIconClass("close")+'"></span></div><div class="fc-body '+r.getClass("popoverContent")+'"><div class="fc-event-container"></div></div>',this.segContainerEl=this.el.querySelector(".fc-event-container")},r.prototype.queryHit=function(e,r,n,i){var o=this.props.date;if(e<n&&r<i)return{component:this,dateSpan:{allDay:!0,range:{start:o,end:t.addDays(o,1)}},dayEl:this.el,rect:{left:0,top:0,right:n,bottom:i},layer:1}},r}(t.DateComponent),f=function(e){function r(t){var r=e.call(this,t.context)||this;return r.dayTile=t,r}return n(r,e),r.prototype.attachSegs=function(e){for(var t=0,r=e;t<r.length;t++){var n=r[t];this.dayTile.segContainerEl.appendChild(n.el)}},r.prototype.detachSegs=function(e){for(var r=0,n=e;r<n.length;r++){var i=n[r];t.removeElement(i.el)}},r}(l),g=function(){function e(e){this.context=e}return e.prototype.renderHtml=function(e){var t=[];e.renderIntroHtml&&t.push(e.renderIntroHtml());for(var r=0,n=e.cells;r<n.length;r++){var i=n[r];t.push(m(i.date,e.dateProfile,this.context,i.htmlAttrs))}return e.cells.length||t.push('<td class="fc-day '+this.context.theme.getClass("widgetContent")+'"></td>'),"rtl"===this.context.options.dir&&t.reverse(),"<tr>"+t.join("")+"</tr>"},e}();function m(e,r,n,i){var o=n.dateEnv,s=n.theme,l=t.rangeContainsMarker(r.activeRange,e),a=t.getDayClasses(e,r,n);return a.unshift("fc-day",s.getClass("widgetContent")),'<td class="'+a.join(" ")+'"'+(l?' data-date="'+o.formatIso(e,{omitTime:!0})+'"':"")+(i?" "+i:"")+"></td>"}var y=t.createFormatter({day:"numeric"}),v=t.createFormatter({week:"numeric"}),b=function(e){function r(r,n,i){var o=e.call(this,r,n)||this;o.bottomCoordPadding=0,o.isCellSizesDirty=!1;var s=o.eventRenderer=new a(o),l=o.fillRenderer=new p(o);o.mirrorRenderer=new h(o);var d=o.renderCells=t.memoizeRendering(o._renderCells,o._unrenderCells);return o.renderBusinessHours=t.memoizeRendering(l.renderSegs.bind(l,"businessHours"),l.unrender.bind(l,"businessHours"),[d]),o.renderDateSelection=t.memoizeRendering(l.renderSegs.bind(l,"highlight"),l.unrender.bind(l,"highlight"),[d]),o.renderBgEvents=t.memoizeRendering(l.renderSegs.bind(l,"bgEvent"),l.unrender.bind(l,"bgEvent"),[d]),o.renderFgEvents=t.memoizeRendering(s.renderSegs.bind(s),s.unrender.bind(s),[d]),o.renderEventSelection=t.memoizeRendering(s.selectByInstanceId.bind(s),s.unselectByInstanceId.bind(s),[o.renderFgEvents]),o.renderEventDrag=t.memoizeRendering(o._renderEventDrag,o._unrenderEventDrag,[d]),o.renderEventResize=t.memoizeRendering(o._renderEventResize,o._unrenderEventResize,[d]),o.renderProps=i,o}return n(r,e),r.prototype.render=function(e){var t=e.cells;this.rowCnt=t.length,this.colCnt=t[0].length,this.renderCells(t,e.isRigid),this.renderBusinessHours(e.businessHourSegs),this.renderDateSelection(e.dateSelectionSegs),this.renderBgEvents(e.bgEventSegs),this.renderFgEvents(e.fgEventSegs),this.renderEventSelection(e.eventSelection),this.renderEventDrag(e.eventDrag),this.renderEventResize(e.eventResize),this.segPopoverTile&&this.updateSegPopoverTile()},r.prototype.destroy=function(){e.prototype.destroy.call(this),this.renderCells.unrender()},r.prototype.getCellRange=function(e,r){var n=this.props.cells[e][r].date;return{start:n,end:t.addDays(n,1)}},r.prototype.updateSegPopoverTile=function(e,t){var r=this.props;this.segPopoverTile.receiveProps({date:e||this.segPopoverTile.props.date,fgSegs:t||this.segPopoverTile.props.fgSegs,eventSelection:r.eventSelection,eventDragInstances:r.eventDrag?r.eventDrag.affectedInstances:null,eventResizeInstances:r.eventResize?r.eventResize.affectedInstances:null})},r.prototype._renderCells=function(e,r){var n,i,o=this.view,s=this.dateEnv,l=this.rowCnt,a=this.colCnt,d="";for(n=0;n<l;n++)d+=this.renderDayRowHtml(n,r);for(this.el.innerHTML=d,this.rowEls=t.findElements(this.el,".fc-row"),this.cellEls=t.findElements(this.el,".fc-day, .fc-disabled-day"),this.isRtl&&this.cellEls.reverse(),this.rowPositions=new t.PositionCache(this.el,this.rowEls,!1,!0),this.colPositions=new t.PositionCache(this.el,this.cellEls.slice(0,a),!0,!1),n=0;n<l;n++)for(i=0;i<a;i++)this.publiclyTrigger("dayRender",[{date:s.toDate(e[n][i].date),el:this.getCellEl(n,i),view:o}]);this.isCellSizesDirty=!0},r.prototype._unrenderCells=function(){this.removeSegPopover()},r.prototype.renderDayRowHtml=function(e,t){var r=this.theme,n=["fc-row","fc-week",r.getClass("dayRow")];t&&n.push("fc-rigid");var i=new g(this.context);return'<div class="'+n.join(" ")+'"><div class="fc-bg"><table class="'+r.getClass("tableGrid")+'">'+i.renderHtml({cells:this.props.cells[e],dateProfile:this.props.dateProfile,renderIntroHtml:this.renderProps.renderBgIntroHtml})+'</table></div><div class="fc-content-skeleton"><table>'+(this.getIsNumbersVisible()?"<thead>"+this.renderNumberTrHtml(e)+"</thead>":"")+"</table></div></div>"},r.prototype.getIsNumbersVisible=function(){return this.getIsDayNumbersVisible()||this.renderProps.cellWeekNumbersVisible||this.renderProps.colWeekNumbersVisible},r.prototype.getIsDayNumbersVisible=function(){return this.rowCnt>1},r.prototype.renderNumberTrHtml=function(e){var t=this.renderProps.renderNumberIntroHtml(e,this);return"<tr>"+(this.isRtl?"":t)+this.renderNumberCellsHtml(e)+(this.isRtl?t:"")+"</tr>"},r.prototype.renderNumberCellsHtml=function(e){var t,r,n=[];for(t=0;t<this.colCnt;t++)r=this.props.cells[e][t].date,n.push(this.renderNumberCellHtml(r));return this.isRtl&&n.reverse(),n.join("")},r.prototype.renderNumberCellHtml=function(e){var r,n,i=this.view,o=this.dateEnv,s="",l=t.rangeContainsMarker(this.props.dateProfile.activeRange,e),a=this.getIsDayNumbersVisible()&&l;return a||this.renderProps.cellWeekNumbersVisible?((r=t.getDayClasses(e,this.props.dateProfile,this.context)).unshift("fc-day-top"),this.renderProps.cellWeekNumbersVisible&&(n=o.weekDow),s+='<td class="'+r.join(" ")+'"'+(l?' data-date="'+o.formatIso(e,{omitTime:!0})+'"':"")+">",this.renderProps.cellWeekNumbersVisible&&e.getUTCDay()===n&&(s+=t.buildGotoAnchorHtml(i,{date:e,type:"week"},{class:"fc-week-number"},o.format(e,v))),a&&(s+=t.buildGotoAnchorHtml(i,e,{class:"fc-day-number"},o.format(e,y))),s+="</td>"):"<td></td>"},r.prototype.updateSize=function(e){var t=this.fillRenderer,r=this.eventRenderer,n=this.mirrorRenderer;(e||this.isCellSizesDirty||this.view.calendar.isEventsUpdated)&&(this.buildPositionCaches(),this.isCellSizesDirty=!1),t.computeSizes(e),r.computeSizes(e),n.computeSizes(e),t.assignSizes(e),r.assignSizes(e),n.assignSizes(e)},r.prototype.buildPositionCaches=function(){this.buildColPositions(),this.buildRowPositions()},r.prototype.buildColPositions=function(){this.colPositions.build()},r.prototype.buildRowPositions=function(){this.rowPositions.build(),this.rowPositions.bottoms[this.rowCnt-1]+=this.bottomCoordPadding},r.prototype.positionToHit=function(e,t){var r=this.colPositions,n=this.rowPositions,i=r.leftToIndex(e),o=n.topToIndex(t);if(null!=o&&null!=i)return{row:o,col:i,dateSpan:{range:this.getCellRange(o,i),allDay:!0},dayEl:this.getCellEl(o,i),relativeRect:{left:r.lefts[i],right:r.rights[i],top:n.tops[o],bottom:n.bottoms[o]}}},r.prototype.getCellEl=function(e,t){return this.cellEls[e*this.colCnt+t]},r.prototype._renderEventDrag=function(e){e&&(this.eventRenderer.hideByHash(e.affectedInstances),this.fillRenderer.renderSegs("highlight",e.segs))},r.prototype._unrenderEventDrag=function(e){e&&(this.eventRenderer.showByHash(e.affectedInstances),this.fillRenderer.unrender("highlight"))},r.prototype._renderEventResize=function(e){e&&(this.eventRenderer.hideByHash(e.affectedInstances),this.fillRenderer.renderSegs("highlight",e.segs),this.mirrorRenderer.renderSegs(e.segs,{isResizing:!0,sourceSeg:e.sourceSeg}))},r.prototype._unrenderEventResize=function(e){e&&(this.eventRenderer.showByHash(e.affectedInstances),this.fillRenderer.unrender("highlight"),this.mirrorRenderer.unrender(e.segs,{isResizing:!0,sourceSeg:e.sourceSeg}))},r.prototype.removeSegPopover=function(){this.segPopover&&this.segPopover.hide()},r.prototype.limitRows=function(e){var t,r,n=this.eventRenderer.rowStructs||[];for(t=0;t<n.length;t++)this.unlimitRow(t),!1!==(r=!!e&&("number"==typeof e?e:this.computeRowLevelLimit(t)))&&this.limitRow(t,r)},r.prototype.computeRowLevelLimit=function(e){var r,n,i=this.rowEls[e].getBoundingClientRect().bottom,o=t.findChildren(this.eventRenderer.rowStructs[e].tbodyEl);for(r=0;r<o.length;r++)if((n=o[r]).classList.remove("fc-limited"),n.getBoundingClientRect().bottom>i)return r;return!1},r.prototype.limitRow=function(e,r){var n,i,o,s,l,a,d,c,h,p,u,f,g,m,y,v=this,b=this.colCnt,w=this.isRtl,S=this.eventRenderer.rowStructs[e],C=[],E=0,R=function(n){for(;E<n;)(a=v.getCellSegs(e,E,r)).length&&(h=i[r-1][E],y=v.renderMoreLink(e,E,a),m=t.createElement("div",null,y),h.appendChild(m),C.push(m)),E++};if(r&&r<S.segLevels.length){for(n=S.segLevels[r-1],i=S.cellMatrix,(o=t.findChildren(S.tbodyEl).slice(r)).forEach(function(e){e.classList.add("fc-limited")}),s=0;s<n.length;s++){l=n[s];var H=w?b-1-l.lastCol:l.firstCol,D=w?b-1-l.firstCol:l.lastCol;for(R(H),c=[],d=0;E<=D;)a=this.getCellSegs(e,E,r),c.push(a),d+=a.length,E++;if(d){for(p=(h=i[r-1][H]).rowSpan||1,u=[],f=0;f<c.length;f++)g=t.createElement("td",{className:"fc-more-cell",rowSpan:p}),a=c[f],y=this.renderMoreLink(e,H+f,[l].concat(a)),m=t.createElement("div",null,y),g.appendChild(m),u.push(g),C.push(g);h.classList.add("fc-limited"),t.insertAfterElement(h,u),o.push(h)}}R(this.colCnt),S.moreEls=C,S.limitedEls=o}},r.prototype.unlimitRow=function(e){var r=this.eventRenderer.rowStructs[e];r.moreEls&&(r.moreEls.forEach(t.removeElement),r.moreEls=null),r.limitedEls&&(r.limitedEls.forEach(function(e){e.classList.remove("fc-limited")}),r.limitedEls=null)},r.prototype.renderMoreLink=function(e,r,n){var i=this,o=this.view,s=this.dateEnv,l=t.createElement("a",{className:"fc-more"});return l.innerText=this.getMoreLinkText(n.length),l.addEventListener("click",function(t){var l=i.opt("eventLimitClick"),a=i.isRtl?i.colCnt-r-1:r,d=i.props.cells[e][a].date,c=t.currentTarget,h=i.getCellEl(e,r),p=i.getCellSegs(e,r),u=i.resliceDaySegs(p,d),f=i.resliceDaySegs(n,d);"function"==typeof l&&(l=i.publiclyTrigger("eventLimitClick",[{date:s.toDate(d),allDay:!0,dayEl:h,moreEl:c,segs:u,hiddenSegs:f,jsEvent:t,view:o}])),"popover"===l?i.showSegPopover(e,r,c,u):"string"==typeof l&&o.calendar.zoomTo(d,l)}),l},r.prototype.showSegPopover=function(e,r,n,i){var o,l,a=this,d=this.calendar,c=this.view,h=this.theme,p=this.isRtl?this.colCnt-r-1:r,f=n.parentNode;o=1===this.rowCnt?c.el:this.rowEls[e],l={className:"fc-more-popover "+h.getClass("popover"),parentEl:c.el,top:t.computeRect(o).top,autoHide:!0,content:function(t){a.segPopoverTile=new u(a.context,t),a.updateSegPopoverTile(a.props.cells[e][p].date,i)},hide:function(){a.segPopoverTile.destroy(),a.segPopoverTile=null,a.segPopover.destroy(),a.segPopover=null}},this.isRtl?l.right=t.computeRect(f).right+1:l.left=t.computeRect(f).left-1,this.segPopover=new s(l),this.segPopover.show(),d.releaseAfterSizingTriggers()},r.prototype.resliceDaySegs=function(e,r){for(var n=r,o={start:n,end:t.addDays(n,1)},s=[],l=0,a=e;l<a.length;l++){var d=a[l],c=d.eventRange,h=c.range,p=t.intersectRanges(h,o);p&&s.push(i({},d,{eventRange:{def:c.def,ui:i({},c.ui,{durationEditable:!1}),instance:c.instance,range:p},isStart:d.isStart&&p.start.valueOf()===h.start.valueOf(),isEnd:d.isEnd&&p.end.valueOf()===h.end.valueOf()}))}return s},r.prototype.getMoreLinkText=function(e){var t=this.opt("eventLimitText");return"function"==typeof t?t(e):"+"+e+" "+t},r.prototype.getCellSegs=function(e,t,r){for(var n,i=this.eventRenderer.rowStructs[e].segMatrix,o=r||0,s=[];o<i.length;)(n=i[o][t])&&s.push(n),o++;return s},r}(t.DateComponent),w=t.createFormatter({week:"numeric"}),S=function(e){function r(r,n,i,o){var s=e.call(this,r,n,i,o)||this;s.renderHeadIntroHtml=function(){var e=s.theme;return s.colWeekNumbersVisible?'<th class="fc-week-number '+e.getClass("widgetHeader")+'" '+s.weekNumberStyleAttr()+"><span>"+t.htmlEscape(s.opt("weekLabel"))+"</span></th>":""},s.renderDayGridNumberIntroHtml=function(e,r){var n=s.dateEnv,i=r.props.cells[e][0].date;return s.colWeekNumbersVisible?'<td class="fc-week-number" '+s.weekNumberStyleAttr()+">"+t.buildGotoAnchorHtml(s,{date:i,type:"week",forceOff:1===r.colCnt},n.format(i,w))+"</td>":""},s.renderDayGridBgIntroHtml=function(){var e=s.theme;return s.colWeekNumbersVisible?'<td class="fc-week-number '+e.getClass("widgetContent")+'" '+s.weekNumberStyleAttr()+"></td>":""},s.renderDayGridIntroHtml=function(){return s.colWeekNumbersVisible?'<td class="fc-week-number" '+s.weekNumberStyleAttr()+"></td>":""},s.el.classList.add("fc-dayGrid-view"),s.el.innerHTML=s.renderSkeletonHtml(),s.scroller=new t.ScrollComponent("hidden","auto");var l=s.scroller.el;s.el.querySelector(".fc-body > tr > td").appendChild(l),l.classList.add("fc-day-grid-container");var a,d=t.createElement("div",{className:"fc-day-grid"});return l.appendChild(d),s.opt("weekNumbers")?s.opt("weekNumbersWithinDays")?(a=!0,s.colWeekNumbersVisible=!1):(a=!1,s.colWeekNumbersVisible=!0):(s.colWeekNumbersVisible=!1,a=!1),s.dayGrid=new b(s.context,d,{renderNumberIntroHtml:s.renderDayGridNumberIntroHtml,renderBgIntroHtml:s.renderDayGridBgIntroHtml,renderIntroHtml:s.renderDayGridIntroHtml,colWeekNumbersVisible:s.colWeekNumbersVisible,cellWeekNumbersVisible:a}),s}return n(r,e),r.prototype.destroy=function(){e.prototype.destroy.call(this),this.dayGrid.destroy(),this.scroller.destroy()},r.prototype.renderSkeletonHtml=function(){var e=this.theme;return'<table class="'+e.getClass("tableGrid")+'">'+(this.opt("columnHeader")?'<thead class="fc-head"><tr><td class="fc-head-container '+e.getClass("widgetHeader")+'">&nbsp;</td></tr></thead>':"")+'<tbody class="fc-body"><tr><td class="'+e.getClass("widgetContent")+'"></td></tr></tbody></table>'},r.prototype.weekNumberStyleAttr=function(){return null!=this.weekNumberWidth?'style="width:'+this.weekNumberWidth+'px"':""},r.prototype.hasRigidRows=function(){var e=this.opt("eventLimit");return e&&"number"!=typeof e},r.prototype.updateSize=function(t,r,n){e.prototype.updateSize.call(this,t,r,n),this.dayGrid.updateSize(t)},r.prototype.updateBaseSize=function(e,r,n){var i,o,s=this.dayGrid,l=this.opt("eventLimit"),a=this.header?this.header.el:null;s.rowEls?(this.colWeekNumbersVisible&&(this.weekNumberWidth=t.matchCellWidths(t.findElements(this.el,".fc-week-number"))),this.scroller.clear(),a&&t.uncompensateScroll(a),s.removeSegPopover(),l&&"number"==typeof l&&s.limitRows(l),i=this.computeScrollerHeight(r),this.setGridHeight(i,n),l&&"number"!=typeof l&&s.limitRows(l),n||(this.scroller.setHeight(i),((o=this.scroller.getScrollbarWidths()).left||o.right)&&(a&&t.compensateScroll(a,o),i=this.computeScrollerHeight(r),this.scroller.setHeight(i)),this.scroller.lockOverflow(o))):n||(i=this.computeScrollerHeight(r),this.scroller.setHeight(i))},r.prototype.computeScrollerHeight=function(e){return e-t.subtractInnerElHeight(this.el,this.scroller.el)},r.prototype.setGridHeight=function(e,r){this.opt("monthMode")?(r&&(e*=this.dayGrid.rowCnt/6),t.distributeHeight(this.dayGrid.rowEls,e,!r)):r?t.undistributeHeight(this.dayGrid.rowEls):t.distributeHeight(this.dayGrid.rowEls,e,!0)},r.prototype.computeDateScroll=function(e){return{top:0}},r.prototype.queryDateScroll=function(){return{top:this.scroller.getScrollTop()}},r.prototype.applyDateScroll=function(e){void 0!==e.top&&this.scroller.setScrollTop(e.top)},r}(t.View);S.prototype.dateProfileGeneratorClass=o;var C=function(e){function t(t,r){var n=e.call(this,t,r.el)||this;return n.slicer=new E,n.dayGrid=r,t.calendar.registerInteractiveComponent(n,{el:n.dayGrid.el}),n}return n(t,e),t.prototype.destroy=function(){e.prototype.destroy.call(this),this.calendar.unregisterInteractiveComponent(this)},t.prototype.render=function(e){var t=this.dayGrid,r=e.dateProfile,n=e.dayTable;t.receiveProps(i({},this.slicer.sliceProps(e,r,e.nextDayThreshold,t,n),{dateProfile:r,cells:n.cells,isRigid:e.isRigid}))},t.prototype.buildPositionCaches=function(){this.dayGrid.buildPositionCaches()},t.prototype.queryHit=function(e,t){var r=this.dayGrid.positionToHit(e,t);if(r)return{component:this.dayGrid,dateSpan:r.dateSpan,dayEl:r.dayEl,rect:{left:r.relativeRect.left,right:r.relativeRect.right,top:r.relativeRect.top,bottom:r.relativeRect.bottom},layer:0}},t}(t.DateComponent),E=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return n(t,e),t.prototype.sliceRange=function(e,t){return t.sliceRange(e)},t}(t.Slicer),R=function(e){function r(r,n,i,o){var s=e.call(this,r,n,i,o)||this;return s.buildDayTable=t.memoize(H),s.opt("columnHeader")&&(s.header=new t.DayHeader(s.context,s.el.querySelector(".fc-head-container"))),s.simpleDayGrid=new C(s.context,s.dayGrid),s}return n(r,e),r.prototype.destroy=function(){e.prototype.destroy.call(this),this.header&&this.header.destroy(),this.simpleDayGrid.destroy()},r.prototype.render=function(t){e.prototype.render.call(this,t);var r=this.props.dateProfile,n=this.dayTable=this.buildDayTable(r,this.dateProfileGenerator);this.header&&this.header.receiveProps({dateProfile:r,dates:n.headerDates,datesRepDistinctDays:1===n.rowCnt,renderIntroHtml:this.renderHeadIntroHtml}),this.simpleDayGrid.receiveProps({dateProfile:r,dayTable:n,businessHours:t.businessHours,dateSelection:t.dateSelection,eventStore:t.eventStore,eventUiBases:t.eventUiBases,eventSelection:t.eventSelection,eventDrag:t.eventDrag,eventResize:t.eventResize,isRigid:this.hasRigidRows(),nextDayThreshold:this.nextDayThreshold})},r}(S);function H(e,r){var n=new t.DaySeries(e.renderRange,r);return new t.DayTable(n,/year|month|week/.test(e.currentRangeUnit))}var D=t.createPlugin({defaultView:"dayGridMonth",views:{dayGrid:R,dayGridDay:{type:"dayGrid",duration:{days:1}},dayGridWeek:{type:"dayGrid",duration:{weeks:1}},dayGridMonth:{type:"dayGrid",duration:{months:1},monthMode:!0,fixedWeekCount:!0}}});e.AbstractDayGridView=S,e.DayBgRow=g,e.DayGrid=b,e.DayGridSlicer=E,e.DayGridView=R,e.SimpleDayGrid=C,e.buildBasicDayTable=H,e.default=D,Object.defineProperty(e,"__esModule",{value:!0})});
package/package.json CHANGED
@@ -1,5 +1,6 @@
1
1
  {
2
2
  "name": "@fullcalendar/daygrid",
3
+ "version": "4.3.0",
3
4
  "title": "FullCalendar Day Grid Plugin",
4
5
  "description": "Display events on Month view or DayGrid view",
5
6
  "keywords": [
@@ -22,12 +23,11 @@
22
23
  "url": "http://arshaw.com/"
23
24
  },
24
25
  "copyright": "2019 Adam Shaw",
25
- "version": "4.2.0",
26
- "releaseDate": "2019-06-02",
27
26
  "peerDependencies": {
28
- "@fullcalendar/core": "~4.2.0"
27
+ "@fullcalendar/core": "~4.3.0"
29
28
  },
30
29
  "main": "main.js",
30
+ "module": "main.esm.js",
31
31
  "unpkg": "main.min.js",
32
32
  "types": "main.d.ts"
33
- }
33
+ }
package/main.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"main.js","sources":["../../node_modules/tslib/tslib.es6.js","../../src/daygrid/DayGridDateProfileGenerator.ts","../../src/daygrid/Popover.ts","../../src/daygrid/SimpleDayGridEventRenderer.ts","../../src/daygrid/DayGridEventRenderer.ts","../../src/daygrid/DayGridMirrorRenderer.ts","../../src/daygrid/DayGridFillRenderer.ts","../../src/daygrid/DayTile.ts","../../src/daygrid/DayBgRow.ts","../../src/daygrid/DayGrid.ts","../../src/daygrid/AbstractDayGridView.ts","../../src/daygrid/SimpleDayGrid.ts","../../src/daygrid/DayGridView.ts","../../src/daygrid/main.ts"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) if (e.indexOf(p[i]) < 0)\r\n t[p[i]] = s[p[i]];\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n","import {\n DateProfileGenerator,\n addWeeks, diffWeeks,\n DateRange\n} from '@fullcalendar/core'\n\nexport default class DayGridDateProfileGenerator extends DateProfileGenerator {\n\n // Computes the date range that will be rendered.\n buildRenderRange(currentRange, currentRangeUnit, isRangeAllDay): DateRange {\n let { dateEnv } = this\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.options.monthMode &&\n this.options.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}\n","\n/* A rectangular panel that is absolutely positioned over other content\n------------------------------------------------------------------------------------------------------------------------\nOptions:\n - className (string)\n - content (HTML string, element, or element array)\n - parentEl\n - top\n - left\n - right (the x coord of where the right edge should be. not a \"CSS\" right)\n - autoHide (boolean)\n - show (callback)\n - hide (callback)\n*/\n\nimport {\n removeElement, createElement, applyStyle,\n listenBySelector,\n computeClippingRect, computeRect\n} from '@fullcalendar/core'\n\nexport interface PopoverOptions {\n className?: string\n content?: (el: HTMLElement) => void\n parentEl: HTMLElement\n autoHide?: boolean\n top?: number\n left?: number\n right?: number\n viewportConstrain?: boolean\n}\n\nexport default class Popover {\n\n isHidden: boolean = true\n options: PopoverOptions\n el: HTMLElement // the container element for the popover. generated by this object\n margin: number = 10 // the space required between the popover and the edges of the scroll container\n\n\n constructor(options: PopoverOptions) {\n this.options = options\n }\n\n\n // Shows the popover on the specified position. Renders it if not already\n show() {\n if (this.isHidden) {\n if (!this.el) {\n this.render()\n }\n this.el.style.display = ''\n this.position()\n this.isHidden = false\n this.trigger('show')\n }\n }\n\n\n // Hides the popover, through CSS, but does not remove it from the DOM\n hide() {\n if (!this.isHidden) {\n this.el.style.display = 'none'\n this.isHidden = true\n this.trigger('hide')\n }\n }\n\n\n // Creates `this.el` and renders content inside of it\n render() {\n let options = this.options\n let el = this.el = createElement('div', {\n className: 'fc-popover ' + (options.className || ''),\n style: {\n top: '0',\n left: '0'\n }\n })\n\n if (typeof options.content === 'function') {\n options.content(el)\n }\n\n options.parentEl.appendChild(el)\n\n // when a click happens on anything inside with a 'fc-close' className, hide the popover\n listenBySelector(el, 'click', '.fc-close', (ev) => {\n this.hide()\n })\n\n if (options.autoHide) {\n document.addEventListener('mousedown', this.documentMousedown)\n }\n }\n\n\n // Triggered when the user clicks *anywhere* in the document, for the autoHide feature\n documentMousedown = (ev) => {\n // only hide the popover if the click happened outside the popover\n if (this.el && !this.el.contains(ev.target)) {\n this.hide()\n }\n }\n\n\n // Hides and unregisters any handlers\n destroy() {\n this.hide()\n\n if (this.el) {\n removeElement(this.el)\n this.el = null\n }\n\n document.removeEventListener('mousedown', this.documentMousedown)\n }\n\n\n // Positions the popover optimally, using the top/left/right options\n position() {\n let options = this.options\n let el = this.el\n let elDims = el.getBoundingClientRect() // only used for width,height\n let origin = computeRect(el.offsetParent)\n let clippingRect = computeClippingRect(options.parentEl)\n let top // the \"position\" (not \"offset\") values for the popover\n let left //\n\n // compute top and left\n top = options.top || 0\n if (options.left !== undefined) {\n left = options.left\n } else if (options.right !== undefined) {\n left = options.right - elDims.width // derive the left value from the right value\n } else {\n left = 0\n }\n\n // constrain to the view port. if constrained by two edges, give precedence to top/left\n top = Math.min(top, clippingRect.bottom - elDims.height - this.margin)\n top = Math.max(top, clippingRect.top + this.margin)\n left = Math.min(left, clippingRect.right - elDims.width - this.margin)\n left = Math.max(left, clippingRect.left + this.margin)\n\n applyStyle(el, {\n top: top - origin.top,\n left: left - origin.left\n })\n }\n\n\n // Triggers a callback. Calls a function in the option hash of the same name.\n // Arguments beyond the first `name` are forwarded on.\n // TODO: better code reuse for this. Repeat code\n // can kill this???\n trigger(name) {\n if (this.options[name]) {\n this.options[name].apply(this, Array.prototype.slice.call(arguments, 1))\n }\n }\n\n}\n","import {\n htmlEscape, cssToStr,\n FgEventRenderer,\n Seg\n} from '@fullcalendar/core'\n\n\n/* Event-rendering methods for the DayGrid class\n----------------------------------------------------------------------------------------------------------------------*/\n\n// \"Simple\" is bad a name. has nothing to do with SimpleDayGrid\nexport default abstract class SimpleDayGridEventRenderer extends FgEventRenderer {\n\n\n // Builds the HTML to be used for the default element for an individual segment\n renderSegHtml(seg: Seg, mirrorInfo) {\n let { options } = this.context\n let eventRange = seg.eventRange\n let eventDef = eventRange.def\n let eventUi = eventRange.ui\n let allDay = eventDef.allDay\n let isDraggable = eventUi.startEditable\n let isResizableFromStart = allDay && seg.isStart && eventUi.durationEditable && options.eventResizableFromStart\n let isResizableFromEnd = allDay && seg.isEnd && eventUi.durationEditable\n let classes = this.getSegClasses(seg, isDraggable, isResizableFromStart || isResizableFromEnd, mirrorInfo)\n let skinCss = cssToStr(this.getSkinCss(eventUi))\n let timeHtml = ''\n let timeText\n let titleHtml\n\n classes.unshift('fc-day-grid-event', 'fc-h-event')\n\n // Only display a timed events time if it is the starting segment\n if (seg.isStart) {\n timeText = this.getTimeText(eventRange)\n if (timeText) {\n timeHtml = '<span class=\"fc-time\">' + htmlEscape(timeText) + '</span>'\n }\n }\n\n titleHtml =\n '<span class=\"fc-title\">' +\n (htmlEscape(eventDef.title || '') || '&nbsp;') + // we always want one line of height\n '</span>'\n\n return '<a class=\"' + classes.join(' ') + '\"' +\n (eventDef.url ?\n ' href=\"' + htmlEscape(eventDef.url) + '\"' :\n ''\n ) +\n (skinCss ?\n ' style=\"' + skinCss + '\"' :\n ''\n ) +\n '>' +\n '<div class=\"fc-content\">' +\n (options.dir === 'rtl' ?\n titleHtml + ' ' + timeHtml : // put a natural space in between\n timeHtml + ' ' + titleHtml //\n ) +\n '</div>' +\n (isResizableFromStart ?\n '<div class=\"fc-resizer fc-start-resizer\"></div>' :\n ''\n ) +\n (isResizableFromEnd ?\n '<div class=\"fc-resizer fc-end-resizer\"></div>' :\n ''\n ) +\n '</a>'\n }\n\n\n // Computes a default event time formatting string if `eventTimeFormat` is not explicitly defined\n computeEventTimeFormat() {\n return {\n hour: 'numeric',\n minute: '2-digit',\n omitZeroMinute: true,\n meridiem: 'narrow'\n }\n }\n\n\n computeDisplayEventEnd() {\n return false // TODO: somehow consider the originating DayGrid's column count\n }\n\n}\n","import {\n createElement,\n removeElement,\n appendToElement,\n prependToElement,\n Seg\n} from '@fullcalendar/core'\nimport DayGrid from './DayGrid'\nimport SimpleDayGridEventRenderer from './SimpleDayGridEventRenderer'\n\n\n/* Event-rendering methods for the DayGrid class\n----------------------------------------------------------------------------------------------------------------------*/\n\nexport default class DayGridEventRenderer extends SimpleDayGridEventRenderer {\n\n dayGrid: DayGrid\n rowStructs: any // an array of objects, each holding information about a row's foreground event-rendering\n\n\n constructor(dayGrid: DayGrid) {\n super(dayGrid.context)\n\n this.dayGrid = dayGrid\n }\n\n\n // Renders the given foreground event segments onto the grid\n attachSegs(segs: Seg[], mirrorInfo) {\n let rowStructs = this.rowStructs = this.renderSegRows(segs)\n\n // append to each row's content skeleton\n this.dayGrid.rowEls.forEach(function(rowNode, i) {\n rowNode.querySelector('.fc-content-skeleton > table').appendChild(\n rowStructs[i].tbodyEl\n )\n })\n\n // removes the \"more..\" events popover\n if (!mirrorInfo) {\n this.dayGrid.removeSegPopover()\n }\n }\n\n\n // Unrenders all currently rendered foreground event segments\n detachSegs() {\n let rowStructs = this.rowStructs || []\n let rowStruct\n\n while ((rowStruct = rowStructs.pop())) {\n removeElement(rowStruct.tbodyEl)\n }\n\n this.rowStructs = null\n }\n\n\n // Uses the given events array to generate <tbody> elements that should be appended to each row's content skeleton.\n // Returns an array of rowStruct objects (see the bottom of `renderSegRow`).\n // PRECONDITION: each segment shoud already have a rendered and assigned `.el`\n renderSegRows(segs: Seg[]) {\n let rowStructs = []\n let segRows\n let row\n\n segRows = this.groupSegRows(segs) // group into nested arrays\n\n // iterate each row of segment groupings\n for (row = 0; row < segRows.length; row++) {\n rowStructs.push(\n this.renderSegRow(row, segRows[row])\n )\n }\n\n return rowStructs\n }\n\n\n // Given a row # and an array of segments all in the same row, render a <tbody> element, a skeleton that contains\n // the segments. Returns object with a bunch of internal data about how the render was calculated.\n // NOTE: modifies rowSegs\n renderSegRow(row, rowSegs) {\n let { dayGrid } = this\n let { colCnt, isRtl } = dayGrid\n let segLevels = this.buildSegLevels(rowSegs) // group into sub-arrays of levels\n let levelCnt = Math.max(1, segLevels.length) // ensure at least one level\n let tbody = document.createElement('tbody')\n let segMatrix = [] // lookup for which segments are rendered into which level+col cells\n let cellMatrix = [] // lookup for all <td> elements of the level+col matrix\n let loneCellMatrix = [] // lookup for <td> elements that only take up a single column\n let i\n let levelSegs\n let col\n let tr: HTMLTableRowElement\n let j\n let seg\n let td: HTMLTableCellElement\n\n // populates empty cells from the current column (`col`) to `endCol`\n function emptyCellsUntil(endCol) {\n while (col < endCol) {\n // try to grab a cell from the level above and extend its rowspan. otherwise, create a fresh cell\n td = (loneCellMatrix[i - 1] || [])[col]\n if (td) {\n td.rowSpan = (td.rowSpan || 1) + 1\n } else {\n td = document.createElement('td')\n tr.appendChild(td)\n }\n cellMatrix[i][col] = td\n loneCellMatrix[i][col] = td\n col++\n }\n }\n\n for (i = 0; i < levelCnt; i++) { // iterate through all levels\n levelSegs = segLevels[i]\n col = 0\n tr = document.createElement('tr')\n\n segMatrix.push([])\n cellMatrix.push([])\n loneCellMatrix.push([])\n\n // levelCnt might be 1 even though there are no actual levels. protect against this.\n // this single empty row is useful for styling.\n if (levelSegs) {\n for (j = 0; j < levelSegs.length; j++) { // iterate through segments in level\n seg = levelSegs[j]\n let leftCol = isRtl ? (colCnt - 1 - seg.lastCol) : seg.firstCol\n let rightCol = isRtl ? (colCnt - 1 - seg.firstCol) : seg.lastCol\n\n emptyCellsUntil(leftCol)\n\n // create a container that occupies or more columns. append the event element.\n td = createElement('td', { className: 'fc-event-container' }, seg.el) as HTMLTableCellElement\n if (leftCol !== rightCol) {\n td.colSpan = rightCol - leftCol + 1\n } else { // a single-column segment\n loneCellMatrix[i][col] = td\n }\n\n while (col <= rightCol) {\n cellMatrix[i][col] = td\n segMatrix[i][col] = seg\n col++\n }\n\n tr.appendChild(td)\n }\n }\n\n emptyCellsUntil(colCnt) // finish off the row\n\n let introHtml = dayGrid.renderProps.renderIntroHtml()\n if (introHtml) {\n if (dayGrid.isRtl) {\n appendToElement(tr, introHtml)\n } else {\n prependToElement(tr, introHtml)\n }\n }\n\n tbody.appendChild(tr)\n }\n\n return { // a \"rowStruct\"\n row: row, // the row number\n tbodyEl: tbody,\n cellMatrix: cellMatrix,\n segMatrix: segMatrix,\n segLevels: segLevels,\n segs: rowSegs\n }\n }\n\n\n // Stacks a flat array of segments, which are all assumed to be in the same row, into subarrays of vertical levels.\n // NOTE: modifies segs\n buildSegLevels(segs: Seg[]) {\n let { isRtl, colCnt } = this.dayGrid\n let levels = []\n let i\n let seg\n let j\n\n // Give preference to elements with certain criteria, so they have\n // a chance to be closer to the top.\n segs = this.sortEventSegs(segs)\n\n for (i = 0; i < segs.length; i++) {\n seg = segs[i]\n\n // loop through levels, starting with the topmost, until the segment doesn't collide with other segments\n for (j = 0; j < levels.length; j++) {\n if (!isDaySegCollision(seg, levels[j])) {\n break\n }\n }\n\n // `j` now holds the desired subrow index\n seg.level = j\n seg.leftCol = isRtl ? (colCnt - 1 - seg.lastCol) : seg.firstCol // for sorting only\n seg.rightCol = isRtl ? (colCnt - 1 - seg.firstCol) : seg.lastCol // for sorting only\n\n // create new level array if needed and append segment\n ;(levels[j] || (levels[j] = [])).push(seg)\n }\n\n // order segments left-to-right. very important if calendar is RTL\n for (j = 0; j < levels.length; j++) {\n levels[j].sort(compareDaySegCols)\n }\n\n return levels\n }\n\n\n // Given a flat array of segments, return an array of sub-arrays, grouped by each segment's row\n groupSegRows(segs: Seg[]) {\n let segRows = []\n let i\n\n for (i = 0; i < this.dayGrid.rowCnt; i++) {\n segRows.push([])\n }\n\n for (i = 0; i < segs.length; i++) {\n segRows[segs[i].row].push(segs[i])\n }\n\n return segRows\n }\n\n\n // Computes a default `displayEventEnd` value if one is not expliclty defined\n computeDisplayEventEnd() {\n return this.dayGrid.colCnt === 1 // we'll likely have space if there's only one day\n }\n\n}\n\n\n// Computes whether two segments' columns collide. They are assumed to be in the same row.\nfunction isDaySegCollision(seg: Seg, otherSegs: Seg) {\n let i\n let otherSeg\n\n for (i = 0; i < otherSegs.length; i++) {\n otherSeg = otherSegs[i]\n\n if (\n otherSeg.firstCol <= seg.lastCol &&\n otherSeg.lastCol >= seg.firstCol\n ) {\n return true\n }\n }\n\n return false\n}\n\n\n// A cmp function for determining the leftmost event\nfunction compareDaySegCols(a: Seg, b: Seg) {\n return a.leftCol - b.leftCol\n}\n","import {\n htmlToElement, Seg\n} from '@fullcalendar/core'\nimport DayGridEventRenderer from './DayGridEventRenderer'\n\n\nexport default class DayGridMirrorRenderer extends DayGridEventRenderer {\n\n attachSegs(segs: Seg[], mirrorInfo) {\n let { sourceSeg } = mirrorInfo\n let rowStructs = this.rowStructs = this.renderSegRows(segs)\n\n // inject each new event skeleton into each associated row\n this.dayGrid.rowEls.forEach(function(rowNode, row) {\n let skeletonEl = htmlToElement('<div class=\"fc-mirror-skeleton\"><table></table></div>') // will be absolutely positioned\n let skeletonTopEl: HTMLElement\n let skeletonTop\n\n // If there is an original segment, match the top position. Otherwise, put it at the row's top level\n if (sourceSeg && sourceSeg.row === row) {\n skeletonTopEl = sourceSeg.el\n } else {\n skeletonTopEl = rowNode.querySelector('.fc-content-skeleton tbody')\n\n if (!skeletonTopEl) { // when no events\n skeletonTopEl = rowNode.querySelector('.fc-content-skeleton table')\n }\n }\n\n skeletonTop = skeletonTopEl.getBoundingClientRect().top -\n rowNode.getBoundingClientRect().top // the offsetParent origin\n\n skeletonEl.style.top = skeletonTop + 'px'\n skeletonEl.querySelector('table').appendChild(rowStructs[row].tbodyEl)\n\n rowNode.appendChild(skeletonEl)\n })\n }\n\n}\n","import {\n htmlToElement,\n appendToElement,\n prependToElement,\n FillRenderer,\n Seg\n} from '@fullcalendar/core'\nimport DayGrid, { DayGridSeg } from './DayGrid'\n\n\nexport default class DayGridFillRenderer extends FillRenderer {\n\n fillSegTag: string = 'td' // override the default tag name\n dayGrid: DayGrid\n\n constructor(dayGrid: DayGrid) {\n super(dayGrid.context)\n\n this.dayGrid = dayGrid\n }\n\n renderSegs(type: string, segs: DayGridSeg[]) {\n\n // don't render timed background events\n if (type === 'bgEvent') {\n segs = segs.filter(function(seg) {\n return seg.eventRange.def.allDay\n })\n }\n\n super.renderSegs(type, segs)\n }\n\n attachSegs(type, segs: Seg[]) {\n let els = []\n let i\n let seg\n let skeletonEl: HTMLElement\n\n for (i = 0; i < segs.length; i++) {\n seg = segs[i]\n skeletonEl = this.renderFillRow(type, seg)\n this.dayGrid.rowEls[seg.row].appendChild(skeletonEl)\n els.push(skeletonEl)\n }\n\n return els\n }\n\n // Generates the HTML needed for one row of a fill. Requires the seg's el to be rendered.\n renderFillRow(type, seg: Seg): HTMLElement {\n let { dayGrid } = this\n let { colCnt, isRtl } = dayGrid\n let leftCol = isRtl ? (colCnt - 1 - seg.lastCol) : seg.firstCol\n let rightCol = isRtl ? (colCnt - 1 - seg.firstCol) : seg.lastCol\n let startCol = leftCol\n let endCol = rightCol + 1\n let className\n let skeletonEl: HTMLElement\n let trEl: HTMLTableRowElement\n\n if (type === 'businessHours') {\n className = 'bgevent'\n } else {\n className = type.toLowerCase()\n }\n\n skeletonEl = htmlToElement(\n '<div class=\"fc-' + className + '-skeleton\">' +\n '<table><tr></tr></table>' +\n '</div>'\n )\n trEl = skeletonEl.getElementsByTagName('tr')[0]\n\n if (startCol > 0) {\n appendToElement(trEl,\n // will create (startCol + 1) td's\n new Array(startCol + 1).join('<td></td>')\n )\n }\n\n (seg.el as HTMLTableCellElement).colSpan = endCol - startCol\n trEl.appendChild(seg.el)\n\n if (endCol < colCnt) {\n appendToElement(trEl,\n // will create (colCnt - endCol) td's\n new Array(colCnt - endCol + 1).join('<td></td>')\n )\n }\n\n let introHtml = dayGrid.renderProps.renderIntroHtml()\n if (introHtml) {\n if (dayGrid.isRtl) {\n appendToElement(trEl, introHtml)\n } else {\n prependToElement(trEl, introHtml)\n }\n }\n\n return skeletonEl\n }\n\n}\n","import {\n DateComponent, Seg,\n htmlEscape,\n createFormatter,\n Hit,\n addDays, DateMarker,\n removeElement,\n ComponentContext,\n EventInstanceHash,\n memoizeRendering, MemoizedRendering\n} from '@fullcalendar/core'\nimport SimpleDayGridEventRenderer from './SimpleDayGridEventRenderer'\n\nexport interface DayTileProps {\n date: DateMarker\n fgSegs: Seg[]\n eventSelection: string\n eventDragInstances: EventInstanceHash\n eventResizeInstances: EventInstanceHash\n}\n\nexport default class DayTile extends DateComponent<DayTileProps> {\n\n segContainerEl: HTMLElement\n\n private renderFrame: MemoizedRendering<[DateMarker]>\n private renderFgEvents: MemoizedRendering<[Seg[]]>\n private renderEventSelection: MemoizedRendering<[string]>\n private renderEventDrag: MemoizedRendering<[EventInstanceHash]>\n private renderEventResize: MemoizedRendering<[EventInstanceHash]>\n\n constructor(context: ComponentContext, el: HTMLElement) {\n super(context, el)\n\n let eventRenderer = this.eventRenderer = new DayTileEventRenderer(this)\n\n let renderFrame = this.renderFrame = memoizeRendering(\n this._renderFrame\n )\n\n this.renderFgEvents = memoizeRendering(\n eventRenderer.renderSegs.bind(eventRenderer),\n eventRenderer.unrender.bind(eventRenderer),\n [ renderFrame ]\n )\n\n this.renderEventSelection = memoizeRendering(\n eventRenderer.selectByInstanceId.bind(eventRenderer),\n eventRenderer.unselectByInstanceId.bind(eventRenderer),\n [ this.renderFgEvents ]\n )\n\n this.renderEventDrag = memoizeRendering(\n eventRenderer.hideByHash.bind(eventRenderer),\n eventRenderer.showByHash.bind(eventRenderer),\n [ renderFrame ]\n )\n\n this.renderEventResize = memoizeRendering(\n eventRenderer.hideByHash.bind(eventRenderer),\n eventRenderer.showByHash.bind(eventRenderer),\n [ renderFrame ]\n )\n\n context.calendar.registerInteractiveComponent(this, {\n el: this.el,\n useEventCenter: false\n })\n }\n\n render(props: DayTileProps) {\n this.renderFrame(props.date)\n this.renderFgEvents(props.fgSegs)\n this.renderEventSelection(props.eventSelection)\n this.renderEventDrag(props.eventDragInstances)\n this.renderEventResize(props.eventResizeInstances)\n }\n\n destroy() {\n super.destroy()\n\n this.renderFrame.unrender() // should unrender everything else\n\n this.calendar.unregisterInteractiveComponent(this)\n }\n\n _renderFrame(date: DateMarker) {\n let { theme, dateEnv } = this\n\n let title = dateEnv.format(\n date,\n createFormatter(this.opt('dayPopoverFormat')) // TODO: cache\n )\n\n this.el.innerHTML =\n '<div class=\"fc-header ' + theme.getClass('popoverHeader') + '\">' +\n '<span class=\"fc-title\">' +\n htmlEscape(title) +\n '</span>' +\n '<span class=\"fc-close ' + theme.getIconClass('close') + '\"></span>' +\n '</div>' +\n '<div class=\"fc-body ' + theme.getClass('popoverContent') + '\">' +\n '<div class=\"fc-event-container\"></div>' +\n '</div>'\n\n this.segContainerEl = this.el.querySelector('.fc-event-container')\n }\n\n queryHit(positionLeft: number, positionTop: number, elWidth: number, elHeight: number): Hit | null {\n let date = (this.props as any).date // HACK\n\n if (positionLeft < elWidth && positionTop < elHeight) {\n return {\n component: this,\n dateSpan: {\n allDay: true,\n range: { start: date, end: addDays(date, 1) }\n },\n dayEl: this.el,\n rect: {\n left: 0,\n top: 0,\n right: elWidth,\n bottom: elHeight\n },\n layer: 1\n }\n }\n }\n\n}\n\n\nexport class DayTileEventRenderer extends SimpleDayGridEventRenderer {\n\n dayTile: DayTile\n\n constructor(dayTile) {\n super(dayTile.context)\n\n this.dayTile = dayTile\n }\n\n attachSegs(segs: Seg[]) {\n for (let seg of segs) {\n this.dayTile.segContainerEl.appendChild(seg.el)\n }\n }\n\n detachSegs(segs: Seg[]) {\n for (let seg of segs) {\n removeElement(seg.el)\n }\n }\n\n}\n","import {\n ComponentContext,\n DateMarker,\n getDayClasses,\n rangeContainsMarker,\n DateProfile\n} from '@fullcalendar/core'\n\nexport interface DayBgCell {\n date: DateMarker\n htmlAttrs?: string\n}\n\nexport interface DayBgRowProps {\n cells: DayBgCell[]\n dateProfile: DateProfile\n renderIntroHtml?: () => string\n}\n\nexport default class DayBgRow {\n\n context: ComponentContext\n\n constructor(context: ComponentContext) {\n this.context = context\n }\n\n renderHtml(props: DayBgRowProps) {\n let parts = []\n\n if (props.renderIntroHtml) {\n parts.push(props.renderIntroHtml())\n }\n\n for (let cell of props.cells) {\n parts.push(\n renderCellHtml(\n cell.date,\n props.dateProfile,\n this.context,\n cell.htmlAttrs\n )\n )\n }\n\n if (!props.cells.length) {\n parts.push('<td class=\"fc-day ' + this.context.theme.getClass('widgetContent') + '\"></td>')\n }\n\n if (this.context.options.dir === 'rtl') {\n parts.reverse()\n }\n\n return '<tr>' + parts.join('') + '</tr>'\n }\n\n}\n\nfunction renderCellHtml(date: DateMarker, dateProfile: DateProfile, context: ComponentContext, otherAttrs?) {\n let { dateEnv, theme } = context\n let isDateValid = rangeContainsMarker(dateProfile.activeRange, date) // TODO: called too frequently. cache somehow.\n let classes = getDayClasses(date, dateProfile, context)\n\n classes.unshift('fc-day', theme.getClass('widgetContent'))\n\n return '<td class=\"' + classes.join(' ') + '\"' +\n (isDateValid ?\n ' data-date=\"' + dateEnv.formatIso(date, { omitTime: true }) + '\"' :\n '') +\n (otherAttrs ?\n ' ' + otherAttrs :\n '') +\n '></td>'\n}\n","import {\n createElement,\n insertAfterElement,\n findElements,\n findChildren,\n removeElement,\n computeRect,\n PositionCache,\n addDays,\n DateMarker,\n createFormatter,\n DateComponent,\n EventSegUiInteractionState,\n Seg,\n rangeContainsMarker,\n intersectRanges,\n EventRenderRange,\n buildGotoAnchorHtml,\n getDayClasses,\n DateProfile,\n memoizeRendering,\n MemoizedRendering\n} from '@fullcalendar/core'\nimport Popover from './Popover'\nimport DayGridEventRenderer from './DayGridEventRenderer'\nimport DayGridMirrorRenderer from './DayGridMirrorRenderer'\nimport DayGridFillRenderer from './DayGridFillRenderer'\nimport DayTile from './DayTile'\nimport DayBgRow from './DayBgRow'\n\nconst DAY_NUM_FORMAT = createFormatter({ day: 'numeric' })\nconst WEEK_NUM_FORMAT = createFormatter({ week: 'numeric' })\n\n\n/* A component that renders a grid of whole-days that runs horizontally. There can be multiple rows, one per week.\n----------------------------------------------------------------------------------------------------------------------*/\n\nexport interface RenderProps { // TODO: combine with DayGridProps\n renderNumberIntroHtml: (row: number, dayGrid: DayGrid) => string\n renderBgIntroHtml: () => string\n renderIntroHtml: () => string\n colWeekNumbersVisible: boolean // week numbers render in own column? (caller does HTML via intro)\n cellWeekNumbersVisible: boolean // display week numbers in day cell?\n}\n\nexport interface DayGridSeg extends Seg {\n row: number\n firstCol: number\n lastCol: number\n}\n\nexport interface DayGridCell {\n date: DateMarker\n htmlAttrs?: string\n}\n\nexport interface DayGridProps {\n dateProfile: DateProfile\n cells: DayGridCell[][]\n businessHourSegs: DayGridSeg[]\n bgEventSegs: DayGridSeg[]\n fgEventSegs: DayGridSeg[]\n dateSelectionSegs: DayGridSeg[]\n eventSelection: string\n eventDrag: EventSegUiInteractionState | null\n eventResize: EventSegUiInteractionState | null\n\n // isRigid determines whether the individual rows should ignore the contents and be a constant height.\n // Relies on the view's colCnt and rowCnt. In the future, this component should probably be self-sufficient.\n isRigid: boolean\n}\n\nexport default class DayGrid extends DateComponent<DayGridProps> {\n\n eventRenderer: DayGridEventRenderer\n renderProps: RenderProps\n\n rowCnt: number\n colCnt: number\n\n bottomCoordPadding: number = 0 // hack for extending the hit area for the last row of the coordinate grid\n\n rowEls: HTMLElement[] // set of fake row elements\n cellEls: HTMLElement[] // set of whole-day elements comprising the row's background\n\n isCellSizesDirty: boolean = false\n rowPositions: PositionCache\n colPositions: PositionCache\n\n segPopover: Popover // the Popover that holds events that can't fit in a cell. null when not visible\n segPopoverTile: DayTile\n\n private renderCells: MemoizedRendering<[DayGridCell[][], boolean]>\n private renderBusinessHours: MemoizedRendering<[DayGridSeg[]]>\n private renderDateSelection: MemoizedRendering<[DayGridSeg[]]>\n private renderBgEvents: MemoizedRendering<[DayGridSeg[]]>\n private renderFgEvents: MemoizedRendering<[DayGridSeg[]]>\n private renderEventSelection: MemoizedRendering<[string]>\n private renderEventDrag: MemoizedRendering<[EventSegUiInteractionState]>\n private renderEventResize: MemoizedRendering<[EventSegUiInteractionState]>\n\n\n constructor(context, el, renderProps: RenderProps) {\n super(context, el)\n\n let eventRenderer = this.eventRenderer = new DayGridEventRenderer(this)\n let fillRenderer = this.fillRenderer = new DayGridFillRenderer(this)\n this.mirrorRenderer = new DayGridMirrorRenderer(this)\n\n let renderCells = this.renderCells = memoizeRendering(\n this._renderCells,\n this._unrenderCells\n )\n\n this.renderBusinessHours = memoizeRendering(\n fillRenderer.renderSegs.bind(fillRenderer, 'businessHours'),\n fillRenderer.unrender.bind(fillRenderer, 'businessHours'),\n [ renderCells ]\n )\n\n this.renderDateSelection = memoizeRendering(\n fillRenderer.renderSegs.bind(fillRenderer, 'highlight'),\n fillRenderer.unrender.bind(fillRenderer, 'highlight'),\n [ renderCells ]\n )\n\n this.renderBgEvents = memoizeRendering(\n fillRenderer.renderSegs.bind(fillRenderer, 'bgEvent'),\n fillRenderer.unrender.bind(fillRenderer, 'bgEvent'),\n [ renderCells ]\n )\n\n this.renderFgEvents = memoizeRendering(\n eventRenderer.renderSegs.bind(eventRenderer),\n eventRenderer.unrender.bind(eventRenderer),\n [ renderCells ]\n )\n\n this.renderEventSelection = memoizeRendering(\n eventRenderer.selectByInstanceId.bind(eventRenderer),\n eventRenderer.unselectByInstanceId.bind(eventRenderer),\n [ this.renderFgEvents ]\n )\n\n this.renderEventDrag = memoizeRendering(\n this._renderEventDrag,\n this._unrenderEventDrag,\n [ renderCells ]\n )\n\n this.renderEventResize = memoizeRendering(\n this._renderEventResize,\n this._unrenderEventResize,\n [ renderCells ]\n )\n\n this.renderProps = renderProps\n }\n\n\n render(props: DayGridProps) {\n console.log('DAY GRID RENDER')\n let cells = props.cells\n this.rowCnt = cells.length\n this.colCnt = cells[0].length\n\n this.renderCells(cells, props.isRigid)\n this.renderBusinessHours(props.businessHourSegs)\n this.renderDateSelection(props.dateSelectionSegs)\n this.renderBgEvents(props.bgEventSegs)\n console.log('renderFgEvents', props.fgEventSegs)\n this.renderFgEvents(props.fgEventSegs)\n this.renderEventSelection(props.eventSelection)\n this.renderEventDrag(props.eventDrag)\n this.renderEventResize(props.eventResize)\n\n if (this.segPopoverTile) {\n this.updateSegPopoverTile()\n }\n }\n\n\n destroy() {\n super.destroy()\n\n this.renderCells.unrender() // will unrender everything else\n }\n\n\n getCellRange(row, col) {\n let start = this.props.cells[row][col].date\n let end = addDays(start, 1)\n\n return { start, end }\n }\n\n\n updateSegPopoverTile(date?, segs?) {\n let ownProps = this.props\n\n this.segPopoverTile.receiveProps({\n date: date || (this.segPopoverTile.props as any).date,\n fgSegs: segs || (this.segPopoverTile.props as any).fgSegs,\n eventSelection: ownProps.eventSelection,\n eventDragInstances: ownProps.eventDrag ? ownProps.eventDrag.affectedInstances : null,\n eventResizeInstances: ownProps.eventResize ? ownProps.eventResize.affectedInstances : null\n })\n }\n\n\n /* Date Rendering\n ------------------------------------------------------------------------------------------------------------------*/\n\n\n _renderCells(cells: DayGridCell[][], isRigid: boolean) {\n let { view, dateEnv } = this\n let { rowCnt, colCnt } = this\n let html = ''\n let row\n let col\n\n for (row = 0; row < rowCnt; row++) {\n html += this.renderDayRowHtml(row, isRigid)\n }\n this.el.innerHTML = html\n\n this.rowEls = findElements(this.el, '.fc-row')\n this.cellEls = findElements(this.el, '.fc-day, .fc-disabled-day')\n\n if (this.isRtl) {\n this.cellEls.reverse()\n }\n\n this.rowPositions = new PositionCache(\n this.el,\n this.rowEls,\n false,\n true // vertical\n )\n\n this.colPositions = new PositionCache(\n this.el,\n this.cellEls.slice(0, colCnt), // only the first row\n true,\n false // horizontal\n )\n\n // trigger dayRender with each cell's element\n for (row = 0; row < rowCnt; row++) {\n for (col = 0; col < colCnt; col++) {\n this.publiclyTrigger('dayRender', [\n {\n date: dateEnv.toDate(cells[row][col].date),\n el: this.getCellEl(row, col),\n view\n }\n ])\n }\n }\n\n this.isCellSizesDirty = true\n }\n\n\n _unrenderCells() {\n this.removeSegPopover()\n }\n\n\n // Generates the HTML for a single row, which is a div that wraps a table.\n // `row` is the row number.\n renderDayRowHtml(row, isRigid) {\n let { theme } = this\n let classes = [ 'fc-row', 'fc-week', theme.getClass('dayRow') ]\n\n if (isRigid) {\n classes.push('fc-rigid')\n }\n\n let bgRow = new DayBgRow(this.context)\n\n return '' +\n '<div class=\"' + classes.join(' ') + '\">' +\n '<div class=\"fc-bg\">' +\n '<table class=\"' + theme.getClass('tableGrid') + '\">' +\n bgRow.renderHtml({\n cells: this.props.cells[row],\n dateProfile: this.props.dateProfile,\n renderIntroHtml: this.renderProps.renderBgIntroHtml\n }) +\n '</table>' +\n '</div>' +\n '<div class=\"fc-content-skeleton\">' +\n '<table>' +\n (this.getIsNumbersVisible() ?\n '<thead>' +\n this.renderNumberTrHtml(row) +\n '</thead>' :\n ''\n ) +\n '</table>' +\n '</div>' +\n '</div>'\n }\n\n\n getIsNumbersVisible() {\n return this.getIsDayNumbersVisible() ||\n this.renderProps.cellWeekNumbersVisible ||\n this.renderProps.colWeekNumbersVisible\n }\n\n\n getIsDayNumbersVisible() {\n return this.rowCnt > 1\n }\n\n\n /* Grid Number Rendering\n ------------------------------------------------------------------------------------------------------------------*/\n\n\n renderNumberTrHtml(row: number) {\n let intro = this.renderProps.renderNumberIntroHtml(row, this)\n\n return '' +\n '<tr>' +\n (this.isRtl ? '' : intro) +\n this.renderNumberCellsHtml(row) +\n (this.isRtl ? intro : '') +\n '</tr>'\n }\n\n\n renderNumberCellsHtml(row) {\n let htmls = []\n let col\n let date\n\n for (col = 0; col < this.colCnt; col++) {\n date = this.props.cells[row][col].date\n htmls.push(this.renderNumberCellHtml(date))\n }\n\n if (this.isRtl) {\n htmls.reverse()\n }\n\n return htmls.join('')\n }\n\n\n // Generates the HTML for the <td>s of the \"number\" row in the DayGrid's content skeleton.\n // The number row will only exist if either day numbers or week numbers are turned on.\n renderNumberCellHtml(date) {\n let { view, dateEnv } = this\n let html = ''\n let isDateValid = rangeContainsMarker(this.props.dateProfile.activeRange, date) // TODO: called too frequently. cache somehow.\n let isDayNumberVisible = this.getIsDayNumbersVisible() && isDateValid\n let classes\n let weekCalcFirstDow\n\n if (!isDayNumberVisible && !this.renderProps.cellWeekNumbersVisible) {\n // no numbers in day cell (week number must be along the side)\n return '<td></td>' // will create an empty space above events :(\n }\n\n classes = getDayClasses(date, this.props.dateProfile, this.context)\n classes.unshift('fc-day-top')\n\n if (this.renderProps.cellWeekNumbersVisible) {\n weekCalcFirstDow = dateEnv.weekDow\n }\n\n html += '<td class=\"' + classes.join(' ') + '\"' +\n (isDateValid ?\n ' data-date=\"' + dateEnv.formatIso(date, { omitTime: true }) + '\"' :\n ''\n ) +\n '>'\n\n if (this.renderProps.cellWeekNumbersVisible && (date.getUTCDay() === weekCalcFirstDow)) {\n html += buildGotoAnchorHtml(\n view,\n { date, type: 'week' },\n { 'class': 'fc-week-number' },\n dateEnv.format(date, WEEK_NUM_FORMAT) // inner HTML\n )\n }\n\n if (isDayNumberVisible) {\n html += buildGotoAnchorHtml(\n view,\n date,\n { 'class': 'fc-day-number' },\n dateEnv.format(date, DAY_NUM_FORMAT) // inner HTML\n )\n }\n\n html += '</td>'\n\n return html\n }\n\n\n /* Sizing\n ------------------------------------------------------------------------------------------------------------------*/\n\n\n updateSize(isResize: boolean) {\n let { fillRenderer, eventRenderer, mirrorRenderer } = this\n\n if (\n isResize ||\n this.isCellSizesDirty ||\n this.view.calendar.isEventsUpdated // hack\n ) {\n this.buildPositionCaches()\n this.isCellSizesDirty = false\n }\n\n fillRenderer.computeSizes(isResize)\n eventRenderer.computeSizes(isResize)\n mirrorRenderer.computeSizes(isResize)\n\n fillRenderer.assignSizes(isResize)\n eventRenderer.assignSizes(isResize)\n mirrorRenderer.assignSizes(isResize)\n }\n\n\n buildPositionCaches() {\n this.buildColPositions()\n this.buildRowPositions()\n }\n\n\n buildColPositions() {\n this.colPositions.build()\n }\n\n\n buildRowPositions() {\n this.rowPositions.build()\n this.rowPositions.bottoms[this.rowCnt - 1] += this.bottomCoordPadding // hack\n }\n\n\n /* Hit System\n ------------------------------------------------------------------------------------------------------------------*/\n\n positionToHit(leftPosition, topPosition) {\n let { colPositions, rowPositions } = this\n\n let col = colPositions.leftToIndex(leftPosition)\n let row = rowPositions.topToIndex(topPosition)\n\n if (row != null && col != null) {\n return {\n row,\n col,\n dateSpan: {\n range: this.getCellRange(row, col),\n allDay: true\n },\n dayEl: this.getCellEl(row, col),\n relativeRect: {\n left: colPositions.lefts[col],\n right: colPositions.rights[col],\n top: rowPositions.tops[row],\n bottom: rowPositions.bottoms[row]\n }\n }\n }\n }\n\n\n /* Cell System\n ------------------------------------------------------------------------------------------------------------------*/\n // FYI: the first column is the leftmost column, regardless of date\n\n\n getCellEl(row, col) {\n return this.cellEls[row * this.colCnt + col]\n }\n\n\n /* Event Drag Visualization\n ------------------------------------------------------------------------------------------------------------------*/\n\n\n _renderEventDrag(state: EventSegUiInteractionState) {\n if (state) {\n this.eventRenderer.hideByHash(state.affectedInstances)\n this.fillRenderer.renderSegs('highlight', state.segs)\n }\n }\n\n\n _unrenderEventDrag(state: EventSegUiInteractionState) {\n if (state) {\n this.eventRenderer.showByHash(state.affectedInstances)\n this.fillRenderer.unrender('highlight')\n }\n }\n\n\n /* Event Resize Visualization\n ------------------------------------------------------------------------------------------------------------------*/\n\n\n _renderEventResize(state: EventSegUiInteractionState) {\n if (state) {\n this.eventRenderer.hideByHash(state.affectedInstances)\n this.fillRenderer.renderSegs('highlight', state.segs)\n this.mirrorRenderer.renderSegs(state.segs, { isResizing: true, sourceSeg: state.sourceSeg })\n }\n }\n\n\n _unrenderEventResize(state: EventSegUiInteractionState) {\n if (state) {\n this.eventRenderer.showByHash(state.affectedInstances)\n this.fillRenderer.unrender('highlight')\n this.mirrorRenderer.unrender(state.segs, { isResizing: true, sourceSeg: state.sourceSeg })\n }\n }\n\n\n /* More+ Link Popover\n ------------------------------------------------------------------------------------------------------------------*/\n\n\n removeSegPopover() {\n if (this.segPopover) {\n this.segPopover.hide() // in handler, will call segPopover's removeElement\n }\n }\n\n\n // Limits the number of \"levels\" (vertically stacking layers of events) for each row of the grid.\n // `levelLimit` can be false (don't limit), a number, or true (should be computed).\n limitRows(levelLimit) {\n let rowStructs = this.eventRenderer.rowStructs || []\n let row // row #\n let rowLevelLimit\n\n for (row = 0; row < rowStructs.length; row++) {\n this.unlimitRow(row)\n\n if (!levelLimit) {\n rowLevelLimit = false\n } else if (typeof levelLimit === 'number') {\n rowLevelLimit = levelLimit\n } else {\n rowLevelLimit = this.computeRowLevelLimit(row)\n }\n\n if (rowLevelLimit !== false) {\n this.limitRow(row, rowLevelLimit)\n }\n }\n }\n\n\n // Computes the number of levels a row will accomodate without going outside its bounds.\n // Assumes the row is \"rigid\" (maintains a constant height regardless of what is inside).\n // `row` is the row number.\n computeRowLevelLimit(row): (number | false) {\n let rowEl = this.rowEls[row] // the containing \"fake\" row div\n let rowBottom = rowEl.getBoundingClientRect().bottom // relative to viewport!\n let trEls = findChildren(this.eventRenderer.rowStructs[row].tbodyEl) as HTMLTableRowElement[]\n let i\n let trEl: HTMLTableRowElement\n\n // Reveal one level <tr> at a time and stop when we find one out of bounds\n for (i = 0; i < trEls.length; i++) {\n trEl = trEls[i]\n trEl.classList.remove('fc-limited') // reset to original state (reveal)\n\n if (trEl.getBoundingClientRect().bottom > rowBottom) {\n return i\n }\n }\n\n return false // should not limit at all\n }\n\n\n // Limits the given grid row to the maximum number of levels and injects \"more\" links if necessary.\n // `row` is the row number.\n // `levelLimit` is a number for the maximum (inclusive) number of levels allowed.\n limitRow(row, levelLimit) {\n let { colCnt, isRtl } = this\n let rowStruct = this.eventRenderer.rowStructs[row]\n let moreNodes = [] // array of \"more\" <a> links and <td> DOM nodes\n let col = 0 // col #, left-to-right (not chronologically)\n let levelSegs // array of segment objects in the last allowable level, ordered left-to-right\n let cellMatrix // a matrix (by level, then column) of all <td> elements in the row\n let limitedNodes // array of temporarily hidden level <tr> and segment <td> DOM nodes\n let i\n let seg\n let segsBelow // array of segment objects below `seg` in the current `col`\n let totalSegsBelow // total number of segments below `seg` in any of the columns `seg` occupies\n let colSegsBelow // array of segment arrays, below seg, one for each column (offset from segs's first column)\n let td: HTMLTableCellElement\n let rowSpan\n let segMoreNodes // array of \"more\" <td> cells that will stand-in for the current seg's cell\n let j\n let moreTd: HTMLTableCellElement\n let moreWrap\n let moreLink\n\n // Iterates through empty level cells and places \"more\" links inside if need be\n let emptyCellsUntil = (endCol) => { // goes from current `col` to `endCol`\n while (col < endCol) {\n segsBelow = this.getCellSegs(row, col, levelLimit)\n if (segsBelow.length) {\n td = cellMatrix[levelLimit - 1][col]\n moreLink = this.renderMoreLink(row, col, segsBelow)\n moreWrap = createElement('div', null, moreLink)\n td.appendChild(moreWrap)\n moreNodes.push(moreWrap)\n }\n col++\n }\n }\n\n if (levelLimit && levelLimit < rowStruct.segLevels.length) { // is it actually over the limit?\n levelSegs = rowStruct.segLevels[levelLimit - 1]\n cellMatrix = rowStruct.cellMatrix\n\n limitedNodes = findChildren(rowStruct.tbodyEl).slice(levelLimit) // get level <tr> elements past the limit\n limitedNodes.forEach(function(node) {\n node.classList.add('fc-limited') // hide elements and get a simple DOM-nodes array\n })\n\n // iterate though segments in the last allowable level\n for (i = 0; i < levelSegs.length; i++) {\n seg = levelSegs[i]\n let leftCol = isRtl ? (colCnt - 1 - seg.lastCol) : seg.firstCol\n let rightCol = isRtl ? (colCnt - 1 - seg.firstCol) : seg.lastCol\n\n emptyCellsUntil(leftCol) // process empty cells before the segment\n\n // determine *all* segments below `seg` that occupy the same columns\n colSegsBelow = []\n totalSegsBelow = 0\n while (col <= rightCol) {\n segsBelow = this.getCellSegs(row, col, levelLimit)\n colSegsBelow.push(segsBelow)\n totalSegsBelow += segsBelow.length\n col++\n }\n\n if (totalSegsBelow) { // do we need to replace this segment with one or many \"more\" links?\n td = cellMatrix[levelLimit - 1][leftCol] // the segment's parent cell\n rowSpan = td.rowSpan || 1\n segMoreNodes = []\n\n // make a replacement <td> for each column the segment occupies. will be one for each colspan\n for (j = 0; j < colSegsBelow.length; j++) {\n moreTd = createElement('td', { className: 'fc-more-cell', rowSpan }) as HTMLTableCellElement\n segsBelow = colSegsBelow[j]\n moreLink = this.renderMoreLink(\n row,\n leftCol + j,\n [ seg ].concat(segsBelow) // count seg as hidden too\n )\n moreWrap = createElement('div', null, moreLink)\n moreTd.appendChild(moreWrap)\n segMoreNodes.push(moreTd)\n moreNodes.push(moreTd)\n }\n\n td.classList.add('fc-limited')\n insertAfterElement(td, segMoreNodes)\n\n limitedNodes.push(td)\n }\n }\n\n emptyCellsUntil(this.colCnt) // finish off the level\n rowStruct.moreEls = moreNodes // for easy undoing later\n rowStruct.limitedEls = limitedNodes // for easy undoing later\n }\n }\n\n\n // Reveals all levels and removes all \"more\"-related elements for a grid's row.\n // `row` is a row number.\n unlimitRow(row) {\n let rowStruct = this.eventRenderer.rowStructs[row]\n\n if (rowStruct.moreEls) {\n rowStruct.moreEls.forEach(removeElement)\n rowStruct.moreEls = null\n }\n\n if (rowStruct.limitedEls) {\n rowStruct.limitedEls.forEach(function(limitedEl) {\n limitedEl.classList.remove('fc-limited')\n })\n rowStruct.limitedEls = null\n }\n }\n\n\n // Renders an <a> element that represents hidden event element for a cell.\n // Responsible for attaching click handler as well.\n renderMoreLink(row, col, hiddenSegs) {\n let { view, dateEnv } = this\n\n let a = createElement('a', { className: 'fc-more' })\n a.innerText = this.getMoreLinkText(hiddenSegs.length)\n a.addEventListener('click', (ev) => {\n let clickOption = this.opt('eventLimitClick')\n let _col = this.isRtl ? this.colCnt - col - 1 : col // HACK: props.cells has different dir system?\n let date = this.props.cells[row][_col].date\n let moreEl = ev.currentTarget as HTMLElement\n let dayEl = this.getCellEl(row, col)\n let allSegs = this.getCellSegs(row, col)\n\n // rescope the segments to be within the cell's date\n let reslicedAllSegs = this.resliceDaySegs(allSegs, date)\n let reslicedHiddenSegs = this.resliceDaySegs(hiddenSegs, date)\n\n if (typeof clickOption === 'function') {\n // the returned value can be an atomic option\n clickOption = this.publiclyTrigger('eventLimitClick', [\n {\n date: dateEnv.toDate(date),\n allDay: true,\n dayEl: dayEl,\n moreEl: moreEl,\n segs: reslicedAllSegs,\n hiddenSegs: reslicedHiddenSegs,\n jsEvent: ev,\n view\n }\n ])\n }\n\n if (clickOption === 'popover') {\n this.showSegPopover(row, col, moreEl, reslicedAllSegs)\n } else if (typeof clickOption === 'string') { // a view name\n view.calendar.zoomTo(date, clickOption)\n }\n })\n\n return a\n }\n\n\n // Reveals the popover that displays all events within a cell\n showSegPopover(row, col, moreLink: HTMLElement, segs) {\n let { calendar, view, theme } = this\n let _col = this.isRtl ? this.colCnt - col - 1 : col // HACK: props.cells has different dir system?\n let moreWrap = moreLink.parentNode as HTMLElement // the <div> wrapper around the <a>\n let topEl: HTMLElement // the element we want to match the top coordinate of\n let options\n\n if (this.rowCnt === 1) {\n topEl = view.el // will cause the popover to cover any sort of header\n } else {\n topEl = this.rowEls[row] // will align with top of row\n }\n\n options = {\n className: 'fc-more-popover ' + theme.getClass('popover'),\n parentEl: view.el, // will be outside of all scrollers within the view\n top: computeRect(topEl).top,\n autoHide: true, // when the user clicks elsewhere, hide the popover\n content: (el) => {\n this.segPopoverTile = new DayTile(\n this.context,\n el\n )\n this.updateSegPopoverTile(\n this.props.cells[row][_col].date,\n segs\n )\n },\n hide: () => {\n this.segPopoverTile.destroy()\n this.segPopoverTile = null\n this.segPopover.destroy()\n this.segPopover = null\n }\n }\n\n // Determine horizontal coordinate.\n // We use the moreWrap instead of the <td> to avoid border confusion.\n if (this.isRtl) {\n options.right = computeRect(moreWrap).right + 1 // +1 to be over cell border\n } else {\n options.left = computeRect(moreWrap).left - 1 // -1 to be over cell border\n }\n\n this.segPopover = new Popover(options)\n this.segPopover.show()\n calendar.releaseAfterSizingTriggers() // hack for eventPositioned\n }\n\n\n // Given the events within an array of segment objects, reslice them to be in a single day\n resliceDaySegs(segs, dayDate) {\n let dayStart = dayDate\n let dayEnd = addDays(dayStart, 1)\n let dayRange = { start: dayStart, end: dayEnd }\n let newSegs = []\n\n for (let seg of segs) {\n let eventRange = seg.eventRange\n let origRange = eventRange.range\n let slicedRange = intersectRanges(origRange, dayRange)\n\n if (slicedRange) {\n newSegs.push({\n ...seg,\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 }\n\n return newSegs\n }\n\n\n // Generates the text that should be inside a \"more\" link, given the number of events it represents\n getMoreLinkText(num) {\n let opt = this.opt('eventLimitText')\n\n if (typeof opt === 'function') {\n return opt(num)\n } else {\n return '+' + num + ' ' + opt\n }\n }\n\n\n // Returns segments within a given cell.\n // If `startLevel` is specified, returns only events including and below that level. Otherwise returns all segs.\n getCellSegs(row, col, startLevel?) {\n let segMatrix = this.eventRenderer.rowStructs[row].segMatrix\n let level = startLevel || 0\n let segs = []\n let seg\n\n while (level < segMatrix.length) {\n seg = segMatrix[level][col]\n if (seg) {\n segs.push(seg)\n }\n level++\n }\n\n return segs\n }\n\n}\n","import {\n htmlEscape, createElement, findElements,\n matchCellWidths,\n uncompensateScroll,\n compensateScroll,\n subtractInnerElHeight,\n distributeHeight,\n undistributeHeight,\n createFormatter,\n ScrollComponent,\n View,\n buildGotoAnchorHtml,\n ComponentContext,\n ViewSpec,\n DateProfileGenerator\n} from '@fullcalendar/core'\nimport DayGridDateProfileGenerator from './DayGridDateProfileGenerator'\nimport DayGrid from './DayGrid'\n\nconst WEEK_NUM_FORMAT = createFormatter({ week: 'numeric' })\n\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 DayGrid subcomponent, which does most of the heavy lifting.\n// It is responsible for managing width/height.\n\nexport default abstract class DayGridView extends View {\n\n scroller: ScrollComponent\n dayGrid: DayGrid // the main subcomponent that does most of the heavy lifting\n\n colWeekNumbersVisible: boolean\n weekNumberWidth: number\n\n\n constructor(context: ComponentContext, viewSpec: ViewSpec, dateProfileGenerator: DateProfileGenerator, parentEl: HTMLElement) {\n super(context, viewSpec, dateProfileGenerator, parentEl)\n\n this.el.classList.add('fc-dayGrid-view')\n this.el.innerHTML = this.renderSkeletonHtml()\n\n this.scroller = new ScrollComponent(\n 'hidden', // overflow x\n 'auto' // overflow y\n )\n\n let dayGridContainerEl = this.scroller.el\n this.el.querySelector('.fc-body > tr > td').appendChild(dayGridContainerEl)\n dayGridContainerEl.classList.add('fc-day-grid-container')\n let dayGridEl = createElement('div', { className: 'fc-day-grid' })\n dayGridContainerEl.appendChild(dayGridEl)\n\n let cellWeekNumbersVisible\n\n if (this.opt('weekNumbers')) {\n if (this.opt('weekNumbersWithinDays')) {\n cellWeekNumbersVisible = true\n this.colWeekNumbersVisible = false\n } else {\n cellWeekNumbersVisible = false\n this.colWeekNumbersVisible = true\n }\n } else {\n this.colWeekNumbersVisible = false\n cellWeekNumbersVisible = false\n }\n\n this.dayGrid = new DayGrid(\n this.context,\n dayGridEl,\n {\n renderNumberIntroHtml: this.renderDayGridNumberIntroHtml,\n renderBgIntroHtml: this.renderDayGridBgIntroHtml,\n renderIntroHtml: this.renderDayGridIntroHtml,\n colWeekNumbersVisible: this.colWeekNumbersVisible,\n cellWeekNumbersVisible\n }\n )\n }\n\n\n destroy() {\n super.destroy()\n\n this.dayGrid.destroy()\n this.scroller.destroy()\n }\n\n // Builds the HTML skeleton for the view.\n // The day-grid component will render inside of a container defined by this HTML.\n renderSkeletonHtml() {\n let { theme } = this\n\n return '' +\n '<table class=\"' + theme.getClass('tableGrid') + '\">' +\n (this.opt('columnHeader') ?\n '<thead class=\"fc-head\">' +\n '<tr>' +\n '<td class=\"fc-head-container ' + theme.getClass('widgetHeader') + '\">&nbsp;</td>' +\n '</tr>' +\n '</thead>' :\n ''\n ) +\n '<tbody class=\"fc-body\">' +\n '<tr>' +\n '<td class=\"' + theme.getClass('widgetContent') + '\"></td>' +\n '</tr>' +\n '</tbody>' +\n '</table>'\n }\n\n\n // Generates an HTML attribute string for setting the width of the week number column, if it is known\n weekNumberStyleAttr() {\n if (this.weekNumberWidth != null) {\n return 'style=\"width:' + this.weekNumberWidth + 'px\"'\n }\n return ''\n }\n\n\n // Determines whether each row should have a constant height\n hasRigidRows() {\n let eventLimit = this.opt('eventLimit')\n\n return eventLimit && typeof eventLimit !== 'number'\n }\n\n\n /* Dimensions\n ------------------------------------------------------------------------------------------------------------------*/\n\n\n updateSize(isResize: boolean, viewHeight: number, isAuto: boolean) {\n super.updateSize(isResize, viewHeight, isAuto) // will call updateBaseSize. important that executes first\n\n this.dayGrid.updateSize(isResize)\n }\n\n\n // Refreshes the horizontal dimensions of the view\n updateBaseSize(isResize: boolean, viewHeight: number, isAuto: boolean) {\n let { dayGrid } = this\n let eventLimit = this.opt('eventLimit')\n let headRowEl = (this as any).header ? (this as any).header.el : null // HACK\n let scrollerHeight\n let scrollbarWidths\n\n // hack to give the view some height prior to dayGrid's columns being rendered\n // TODO: separate setting height from scroller VS dayGrid.\n if (!dayGrid.rowEls) {\n if (!isAuto) {\n scrollerHeight = this.computeScrollerHeight(viewHeight)\n this.scroller.setHeight(scrollerHeight)\n }\n return\n }\n\n if (this.colWeekNumbersVisible) {\n // Make sure all week number cells running down the side have the same width.\n this.weekNumberWidth = matchCellWidths(\n findElements(this.el, '.fc-week-number')\n )\n }\n\n // reset all heights to be natural\n this.scroller.clear()\n if (headRowEl) {\n uncompensateScroll(headRowEl)\n }\n\n dayGrid.removeSegPopover() // kill the \"more\" popover if displayed\n\n // is the event limit a constant level number?\n if (eventLimit && typeof eventLimit === 'number') {\n dayGrid.limitRows(eventLimit) // limit the levels first so the height can redistribute after\n }\n\n // distribute the height to the rows\n // (viewHeight is a \"recommended\" value if isAuto)\n scrollerHeight = this.computeScrollerHeight(viewHeight)\n this.setGridHeight(scrollerHeight, isAuto)\n\n // is the event limit dynamically calculated?\n if (eventLimit && typeof eventLimit !== 'number') {\n dayGrid.limitRows(eventLimit) // limit the levels after the grid's row heights have been set\n }\n\n if (!isAuto) { // should we force dimensions of the scroll container?\n\n this.scroller.setHeight(scrollerHeight)\n scrollbarWidths = this.scroller.getScrollbarWidths()\n\n if (scrollbarWidths.left || scrollbarWidths.right) { // using scrollbars?\n\n if (headRowEl) {\n compensateScroll(headRowEl, scrollbarWidths)\n }\n\n // doing the scrollbar compensation might have created text overflow which created more height. redo\n scrollerHeight = this.computeScrollerHeight(viewHeight)\n this.scroller.setHeight(scrollerHeight)\n }\n\n // guarantees the same scrollbar widths\n this.scroller.lockOverflow(scrollbarWidths)\n }\n }\n\n\n // given a desired total height of the view, returns what the height of the scroller should be\n computeScrollerHeight(viewHeight) {\n return viewHeight -\n subtractInnerElHeight(this.el, this.scroller.el) // everything that's NOT the scroller\n }\n\n\n // Sets the height of just the DayGrid component in this view\n setGridHeight(height, isAuto) {\n\n if (this.opt('monthMode')) {\n\n // if auto, make the height of each row the height that it would be if there were 6 weeks\n if (isAuto) {\n height *= this.dayGrid.rowCnt / 6\n }\n\n distributeHeight(this.dayGrid.rowEls, height, !isAuto) // if auto, don't compensate for height-hogging rows\n\n } else {\n\n if (isAuto) {\n undistributeHeight(this.dayGrid.rowEls) // let the rows be their natural height with no expanding\n } else {\n distributeHeight(this.dayGrid.rowEls, height, true) // true = compensate for height-hogging rows\n }\n }\n }\n\n\n /* Scroll\n ------------------------------------------------------------------------------------------------------------------*/\n\n\n computeDateScroll(timeMs: number) {\n return { top: 0 }\n }\n\n\n queryDateScroll() {\n return { top: this.scroller.getScrollTop() }\n }\n\n\n applyDateScroll(scroll) {\n if (scroll.top !== undefined) {\n this.scroller.setScrollTop(scroll.top)\n }\n }\n\n\n /* Header Rendering\n ------------------------------------------------------------------------------------------------------------------*/\n\n\n // Generates the HTML that will go before the day-of week header cells\n renderHeadIntroHtml = () => {\n let { theme } = this\n\n if (this.colWeekNumbersVisible) {\n return '' +\n '<th class=\"fc-week-number ' + theme.getClass('widgetHeader') + '\" ' + this.weekNumberStyleAttr() + '>' +\n '<span>' + // needed for matchCellWidths\n htmlEscape(this.opt('weekLabel')) +\n '</span>' +\n '</th>'\n }\n\n return ''\n }\n\n\n /* Day Grid Rendering\n ------------------------------------------------------------------------------------------------------------------*/\n\n\n // Generates the HTML that will go before content-skeleton cells that display the day/week numbers\n renderDayGridNumberIntroHtml = (row: number, dayGrid: DayGrid) => {\n let { dateEnv } = this\n let weekStart = dayGrid.props.cells[row][0].date\n\n if (this.colWeekNumbersVisible) {\n return '' +\n '<td class=\"fc-week-number\" ' + this.weekNumberStyleAttr() + '>' +\n buildGotoAnchorHtml( // aside from link, important for matchCellWidths\n this,\n { date: weekStart, type: 'week', forceOff: dayGrid.colCnt === 1 },\n dateEnv.format(weekStart, WEEK_NUM_FORMAT) // inner HTML\n ) +\n '</td>'\n }\n\n return ''\n }\n\n\n // Generates the HTML that goes before the day bg cells for each day-row\n renderDayGridBgIntroHtml = () => {\n let { theme } = this\n\n if (this.colWeekNumbersVisible) {\n return '<td class=\"fc-week-number ' + theme.getClass('widgetContent') + '\" ' + this.weekNumberStyleAttr() + '></td>'\n }\n\n return ''\n }\n\n\n // Generates the HTML that goes before every other type of row generated by DayGrid.\n // Affects mirror-skeleton and highlight-skeleton rows.\n renderDayGridIntroHtml = () => {\n\n if (this.colWeekNumbersVisible) {\n return '<td class=\"fc-week-number\" ' + this.weekNumberStyleAttr() + '></td>'\n }\n\n return ''\n }\n\n}\n\nDayGridView.prototype.dateProfileGeneratorClass = DayGridDateProfileGenerator\n","import {\n DateProfile,\n EventStore,\n EventUiHash,\n DateSpan,\n EventInteractionState,\n DayTable,\n Duration,\n DateComponent,\n DateRange,\n Slicer,\n Hit,\n ComponentContext\n} from '@fullcalendar/core'\nimport { default as DayGrid, DayGridSeg } from './DayGrid'\n\nexport interface SimpleDayGridProps {\n dateProfile: DateProfile | null\n dayTable: DayTable\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 isRigid: boolean\n}\n\nexport default class SimpleDayGrid extends DateComponent<SimpleDayGridProps> {\n\n dayGrid: DayGrid\n\n private slicer = new DayGridSlicer()\n\n constructor(context: ComponentContext, dayGrid: DayGrid) {\n super(context, dayGrid.el)\n\n this.dayGrid = dayGrid\n\n context.calendar.registerInteractiveComponent(this, { el: this.dayGrid.el })\n }\n\n destroy() {\n super.destroy()\n\n this.calendar.unregisterInteractiveComponent(this)\n }\n\n render(props: SimpleDayGridProps) {\n let { dayGrid } = this\n let { dateProfile, dayTable } = props\n\n dayGrid.receiveProps({\n ...this.slicer.sliceProps(props, dateProfile, props.nextDayThreshold, dayGrid, dayTable),\n dateProfile,\n cells: dayTable.cells,\n isRigid: props.isRigid\n })\n }\n\n buildPositionCaches() {\n this.dayGrid.buildPositionCaches()\n }\n\n queryHit(positionLeft: number, positionTop: number): Hit {\n let rawHit = this.dayGrid.positionToHit(positionLeft, positionTop)\n\n if (rawHit) {\n return {\n component: this.dayGrid,\n dateSpan: rawHit.dateSpan,\n dayEl: rawHit.dayEl,\n rect: {\n left: rawHit.relativeRect.left,\n right: rawHit.relativeRect.right,\n top: rawHit.relativeRect.top,\n bottom: rawHit.relativeRect.bottom\n },\n layer: 0\n }\n }\n }\n\n}\n\n\nexport class DayGridSlicer extends Slicer<DayGridSeg, [DayTable]> {\n\n sliceRange(dateRange: DateRange, dayTable: DayTable): DayGridSeg[] {\n return dayTable.sliceRange(dateRange)\n }\n\n}\n","import {\n DayHeader,\n ComponentContext,\n ViewSpec,\n DateProfileGenerator,\n DateProfile,\n ViewProps,\n memoize,\n DaySeries,\n DayTable\n} from '@fullcalendar/core'\nimport AbstractDayGridView from './AbstractDayGridView'\nimport SimpleDayGrid from './SimpleDayGrid'\n\nexport default class DayGridView extends AbstractDayGridView {\n\n header: DayHeader\n simpleDayGrid: SimpleDayGrid\n dayTable: DayTable\n\n private buildDayTable = memoize(buildDayTable)\n\n constructor(_context: ComponentContext, viewSpec: ViewSpec, dateProfileGenerator: DateProfileGenerator, parentEl: HTMLElement) {\n super(_context, viewSpec, dateProfileGenerator, parentEl)\n\n if (this.opt('columnHeader')) {\n this.header = new DayHeader(\n this.context,\n this.el.querySelector('.fc-head-container')\n )\n }\n\n this.simpleDayGrid = new SimpleDayGrid(this.context, this.dayGrid)\n }\n\n destroy() {\n super.destroy()\n\n if (this.header) {\n this.header.destroy()\n }\n\n this.simpleDayGrid.destroy()\n }\n\n render(props: ViewProps) {\n super.render(props)\n\n let { dateProfile } = this.props\n\n let dayTable = this.dayTable =\n this.buildDayTable(dateProfile, this.dateProfileGenerator)\n\n if (this.header) {\n this.header.receiveProps({\n dateProfile,\n dates: dayTable.headerDates,\n datesRepDistinctDays: dayTable.rowCnt === 1,\n renderIntroHtml: this.renderHeadIntroHtml\n })\n }\n\n this.simpleDayGrid.receiveProps({\n dateProfile,\n dayTable,\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 isRigid: this.hasRigidRows(),\n nextDayThreshold: this.nextDayThreshold\n })\n }\n\n}\n\nexport function buildDayTable(dateProfile: DateProfile, dateProfileGenerator: DateProfileGenerator) {\n let daySeries = new DaySeries(dateProfile.renderRange, dateProfileGenerator)\n\n return new DayTable(\n daySeries,\n /year|month|week/.test(dateProfile.currentRangeUnit)\n )\n}\n","import { createPlugin } from '@fullcalendar/core'\nimport DayGridView from './DayGridView'\n\nexport { default as SimpleDayGrid, DayGridSlicer } from './SimpleDayGrid'\nexport { default as DayGrid, DayGridSeg } from './DayGrid'\nexport { default as AbstractDayGridView } from './AbstractDayGridView'\nexport { default as DayGridView, buildDayTable as buildBasicDayTable } from './DayGridView'\nexport { default as DayBgRow } from './DayBgRow'\n\nexport default createPlugin({\n defaultView: 'dayGridMonth',\n views: {\n\n dayGrid: DayGridView,\n\n dayGridDay: {\n type: 'dayGrid',\n duration: { days: 1 }\n },\n\n dayGridWeek: {\n type: 'dayGrid',\n duration: { weeks: 1 }\n },\n\n dayGridMonth: {\n type: 'dayGrid',\n duration: { months: 1 },\n monthMode: true,\n fixedWeekCount: true\n }\n\n }\n})\n"],"names":["tslib_1.__extends","addWeeks","diffWeeks","DateProfileGenerator","createElement","listenBySelector","removeElement","computeRect","computeClippingRect","applyStyle","cssToStr","htmlEscape","FgEventRenderer","appendToElement","prependToElement","htmlToElement","FillRenderer","memoizeRendering","createFormatter","addDays","DateComponent","rangeContainsMarker","getDayClasses","findElements","PositionCache","buildGotoAnchorHtml","findChildren","insertAfterElement","intersectRanges","WEEK_NUM_FORMAT","ScrollComponent","matchCellWidths","uncompensateScroll","compensateScroll","subtractInnerElHeight","distributeHeight","undistributeHeight","View","Slicer","memoize","DayHeader","AbstractDayGridView","DaySeries","DayTable","createPlugin","DayGridView"],"mappings":"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"}