| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403 | 
							- /*!
 
- FullCalendar Time Grid Plugin v4.4.2
 
- Docs & License: https://fullcalendar.io/
 
- (c) 2019 Adam Shaw
 
- */
 
- (function (global, factory) {
 
-     typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@fullcalendar/core'), require('@fullcalendar/daygrid')) :
 
-     typeof define === 'function' && define.amd ? define(['exports', '@fullcalendar/core', '@fullcalendar/daygrid'], factory) :
 
-     (global = global || self, factory(global.FullCalendarTimeGrid = {}, global.FullCalendar, global.FullCalendarDayGrid));
 
- }(this, function (exports, core, daygrid) { 'use strict';
 
-     /*! *****************************************************************************
 
-     Copyright (c) Microsoft Corporation.
 
-     Permission to use, copy, modify, and/or distribute this software for any
 
-     purpose with or without fee is hereby granted.
 
-     THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
 
-     REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
 
-     AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
 
-     INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
 
-     LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
 
-     OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
 
-     PERFORMANCE OF THIS SOFTWARE.
 
-     ***************************************************************************** */
 
-     /* global Reflect, Promise */
 
-     var extendStatics = function(d, b) {
 
-         extendStatics = Object.setPrototypeOf ||
 
-             ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
 
-             function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
 
-         return extendStatics(d, b);
 
-     };
 
-     function __extends(d, b) {
 
-         extendStatics(d, b);
 
-         function __() { this.constructor = d; }
 
-         d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
 
-     }
 
-     var __assign = function() {
 
-         __assign = Object.assign || function __assign(t) {
 
-             for (var s, i = 1, n = arguments.length; i < n; i++) {
 
-                 s = arguments[i];
 
-                 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
 
-             }
 
-             return t;
 
-         };
 
-         return __assign.apply(this, arguments);
 
-     };
 
-     /*
 
-     Only handles foreground segs.
 
-     Does not own rendering. Use for low-level util methods by TimeGrid.
 
-     */
 
-     var TimeGridEventRenderer = /** @class */ (function (_super) {
 
-         __extends(TimeGridEventRenderer, _super);
 
-         function TimeGridEventRenderer(timeGrid) {
 
-             var _this = _super.call(this) || this;
 
-             _this.timeGrid = timeGrid;
 
-             return _this;
 
-         }
 
-         TimeGridEventRenderer.prototype.renderSegs = function (context, segs, mirrorInfo) {
 
-             _super.prototype.renderSegs.call(this, context, segs, mirrorInfo);
 
-             // TODO: dont do every time. memoize
 
-             this.fullTimeFormat = core.createFormatter({
 
-                 hour: 'numeric',
 
-                 minute: '2-digit',
 
-                 separator: this.context.options.defaultRangeSeparator
 
-             });
 
-         };
 
-         // Given an array of foreground segments, render a DOM element for each, computes position,
 
-         // and attaches to the column inner-container elements.
 
-         TimeGridEventRenderer.prototype.attachSegs = function (segs, mirrorInfo) {
 
-             var segsByCol = this.timeGrid.groupSegsByCol(segs);
 
-             // order the segs within each column
 
-             // TODO: have groupSegsByCol do this?
 
-             for (var col = 0; col < segsByCol.length; col++) {
 
-                 segsByCol[col] = this.sortEventSegs(segsByCol[col]);
 
-             }
 
-             this.segsByCol = segsByCol;
 
-             this.timeGrid.attachSegsByCol(segsByCol, this.timeGrid.fgContainerEls);
 
-         };
 
-         TimeGridEventRenderer.prototype.detachSegs = function (segs) {
 
-             segs.forEach(function (seg) {
 
-                 core.removeElement(seg.el);
 
-             });
 
-             this.segsByCol = null;
 
-         };
 
-         TimeGridEventRenderer.prototype.computeSegSizes = function (allSegs) {
 
-             var _a = this, timeGrid = _a.timeGrid, segsByCol = _a.segsByCol;
 
-             var colCnt = timeGrid.colCnt;
 
-             timeGrid.computeSegVerticals(allSegs); // horizontals relies on this
 
-             if (segsByCol) {
 
-                 for (var col = 0; col < colCnt; col++) {
 
-                     this.computeSegHorizontals(segsByCol[col]); // compute horizontal coordinates, z-index's, and reorder the array
 
-                 }
 
-             }
 
-         };
 
-         TimeGridEventRenderer.prototype.assignSegSizes = function (allSegs) {
 
-             var _a = this, timeGrid = _a.timeGrid, segsByCol = _a.segsByCol;
 
-             var colCnt = timeGrid.colCnt;
 
-             timeGrid.assignSegVerticals(allSegs); // horizontals relies on this
 
-             if (segsByCol) {
 
-                 for (var col = 0; col < colCnt; col++) {
 
-                     this.assignSegCss(segsByCol[col]);
 
-                 }
 
-             }
 
-         };
 
-         // Computes a default event time formatting string if `eventTimeFormat` is not explicitly defined
 
-         TimeGridEventRenderer.prototype.computeEventTimeFormat = function () {
 
-             return {
 
-                 hour: 'numeric',
 
-                 minute: '2-digit',
 
-                 meridiem: false
 
-             };
 
-         };
 
-         // Computes a default `displayEventEnd` value if one is not expliclty defined
 
-         TimeGridEventRenderer.prototype.computeDisplayEventEnd = function () {
 
-             return true;
 
-         };
 
-         // Renders the HTML for a single event segment's default rendering
 
-         TimeGridEventRenderer.prototype.renderSegHtml = function (seg, mirrorInfo) {
 
-             var eventRange = seg.eventRange;
 
-             var eventDef = eventRange.def;
 
-             var eventUi = eventRange.ui;
 
-             var allDay = eventDef.allDay;
 
-             var isDraggable = core.computeEventDraggable(this.context, eventDef, eventUi);
 
-             var isResizableFromStart = seg.isStart && core.computeEventStartResizable(this.context, eventDef, eventUi);
 
-             var isResizableFromEnd = seg.isEnd && core.computeEventEndResizable(this.context, eventDef, eventUi);
 
-             var classes = this.getSegClasses(seg, isDraggable, isResizableFromStart || isResizableFromEnd, mirrorInfo);
 
-             var skinCss = core.cssToStr(this.getSkinCss(eventUi));
 
-             var timeText;
 
-             var fullTimeText; // more verbose time text. for the print stylesheet
 
-             var startTimeText; // just the start time text
 
-             classes.unshift('fc-time-grid-event');
 
-             // if the event appears to span more than one day...
 
-             if (core.isMultiDayRange(eventRange.range)) {
 
-                 // Don't display time text on segments that run entirely through a day.
 
-                 // That would appear as midnight-midnight and would look dumb.
 
-                 // Otherwise, display the time text for the *segment's* times (like 6pm-midnight or midnight-10am)
 
-                 if (seg.isStart || seg.isEnd) {
 
-                     var unzonedStart = seg.start;
 
-                     var unzonedEnd = seg.end;
 
-                     timeText = this._getTimeText(unzonedStart, unzonedEnd, allDay); // TODO: give the timezones
 
-                     fullTimeText = this._getTimeText(unzonedStart, unzonedEnd, allDay, this.fullTimeFormat);
 
-                     startTimeText = this._getTimeText(unzonedStart, unzonedEnd, allDay, null, false); // displayEnd=false
 
-                 }
 
-             }
 
-             else {
 
-                 // Display the normal time text for the *event's* times
 
-                 timeText = this.getTimeText(eventRange);
 
-                 fullTimeText = this.getTimeText(eventRange, this.fullTimeFormat);
 
-                 startTimeText = this.getTimeText(eventRange, null, false); // displayEnd=false
 
-             }
 
-             return '<a class="' + classes.join(' ') + '"' +
 
-                 (eventDef.url ?
 
-                     ' href="' + core.htmlEscape(eventDef.url) + '"' :
 
-                     '') +
 
-                 (skinCss ?
 
-                     ' style="' + skinCss + '"' :
 
-                     '') +
 
-                 '>' +
 
-                 '<div class="fc-content">' +
 
-                 (timeText ?
 
-                     '<div class="fc-time"' +
 
-                         ' data-start="' + core.htmlEscape(startTimeText) + '"' +
 
-                         ' data-full="' + core.htmlEscape(fullTimeText) + '"' +
 
-                         '>' +
 
-                         '<span>' + core.htmlEscape(timeText) + '</span>' +
 
-                         '</div>' :
 
-                     '') +
 
-                 (eventDef.title ?
 
-                     '<div class="fc-title">' +
 
-                         core.htmlEscape(eventDef.title) +
 
-                         '</div>' :
 
-                     '') +
 
-                 '</div>' +
 
-                 /* TODO: write CSS for this
 
-                 (isResizableFromStart ?
 
-                   '<div class="fc-resizer fc-start-resizer"></div>' :
 
-                   ''
 
-                   ) +
 
-                 */
 
-                 (isResizableFromEnd ?
 
-                     '<div class="fc-resizer fc-end-resizer"></div>' :
 
-                     '') +
 
-                 '</a>';
 
-         };
 
-         // Given an array of segments that are all in the same column, sets the backwardCoord and forwardCoord on each.
 
-         // Assumed the segs are already ordered.
 
-         // NOTE: Also reorders the given array by date!
 
-         TimeGridEventRenderer.prototype.computeSegHorizontals = function (segs) {
 
-             var levels;
 
-             var level0;
 
-             var i;
 
-             levels = buildSlotSegLevels(segs);
 
-             computeForwardSlotSegs(levels);
 
-             if ((level0 = levels[0])) {
 
-                 for (i = 0; i < level0.length; i++) {
 
-                     computeSlotSegPressures(level0[i]);
 
-                 }
 
-                 for (i = 0; i < level0.length; i++) {
 
-                     this.computeSegForwardBack(level0[i], 0, 0);
 
-                 }
 
-             }
 
-         };
 
-         // Calculate seg.forwardCoord and seg.backwardCoord for the segment, where both values range
 
-         // from 0 to 1. If the calendar is left-to-right, the seg.backwardCoord maps to "left" and
 
-         // seg.forwardCoord maps to "right" (via percentage). Vice-versa if the calendar is right-to-left.
 
-         //
 
-         // The segment might be part of a "series", which means consecutive segments with the same pressure
 
-         // who's width is unknown until an edge has been hit. `seriesBackwardPressure` is the number of
 
-         // segments behind this one in the current series, and `seriesBackwardCoord` is the starting
 
-         // coordinate of the first segment in the series.
 
-         TimeGridEventRenderer.prototype.computeSegForwardBack = function (seg, seriesBackwardPressure, seriesBackwardCoord) {
 
-             var forwardSegs = seg.forwardSegs;
 
-             var i;
 
-             if (seg.forwardCoord === undefined) { // not already computed
 
-                 if (!forwardSegs.length) {
 
-                     // if there are no forward segments, this segment should butt up against the edge
 
-                     seg.forwardCoord = 1;
 
-                 }
 
-                 else {
 
-                     // sort highest pressure first
 
-                     this.sortForwardSegs(forwardSegs);
 
-                     // this segment's forwardCoord will be calculated from the backwardCoord of the
 
-                     // highest-pressure forward segment.
 
-                     this.computeSegForwardBack(forwardSegs[0], seriesBackwardPressure + 1, seriesBackwardCoord);
 
-                     seg.forwardCoord = forwardSegs[0].backwardCoord;
 
-                 }
 
-                 // calculate the backwardCoord from the forwardCoord. consider the series
 
-                 seg.backwardCoord = seg.forwardCoord -
 
-                     (seg.forwardCoord - seriesBackwardCoord) / // available width for series
 
-                         (seriesBackwardPressure + 1); // # of segments in the series
 
-                 // use this segment's coordinates to computed the coordinates of the less-pressurized
 
-                 // forward segments
 
-                 for (i = 0; i < forwardSegs.length; i++) {
 
-                     this.computeSegForwardBack(forwardSegs[i], 0, seg.forwardCoord);
 
-                 }
 
-             }
 
-         };
 
-         TimeGridEventRenderer.prototype.sortForwardSegs = function (forwardSegs) {
 
-             var objs = forwardSegs.map(buildTimeGridSegCompareObj);
 
-             var specs = [
 
-                 // put higher-pressure first
 
-                 { field: 'forwardPressure', order: -1 },
 
-                 // put segments that are closer to initial edge first (and favor ones with no coords yet)
 
-                 { field: 'backwardCoord', order: 1 }
 
-             ].concat(this.context.eventOrderSpecs);
 
-             objs.sort(function (obj0, obj1) {
 
-                 return core.compareByFieldSpecs(obj0, obj1, specs);
 
-             });
 
-             return objs.map(function (c) {
 
-                 return c._seg;
 
-             });
 
-         };
 
-         // Given foreground event segments that have already had their position coordinates computed,
 
-         // assigns position-related CSS values to their elements.
 
-         TimeGridEventRenderer.prototype.assignSegCss = function (segs) {
 
-             for (var _i = 0, segs_1 = segs; _i < segs_1.length; _i++) {
 
-                 var seg = segs_1[_i];
 
-                 core.applyStyle(seg.el, this.generateSegCss(seg));
 
-                 if (seg.level > 0) {
 
-                     seg.el.classList.add('fc-time-grid-event-inset');
 
-                 }
 
-                 // if the event is short that the title will be cut off,
 
-                 // attach a className that condenses the title into the time area.
 
-                 if (seg.eventRange.def.title && seg.bottom - seg.top < 30) {
 
-                     seg.el.classList.add('fc-short'); // TODO: "condensed" is a better name
 
-                 }
 
-             }
 
-         };
 
-         // Generates an object with CSS properties/values that should be applied to an event segment element.
 
-         // Contains important positioning-related properties that should be applied to any event element, customized or not.
 
-         TimeGridEventRenderer.prototype.generateSegCss = function (seg) {
 
-             var shouldOverlap = this.context.options.slotEventOverlap;
 
-             var backwardCoord = seg.backwardCoord; // the left side if LTR. the right side if RTL. floating-point
 
-             var forwardCoord = seg.forwardCoord; // the right side if LTR. the left side if RTL. floating-point
 
-             var props = this.timeGrid.generateSegVerticalCss(seg); // get top/bottom first
 
-             var isRtl = this.context.isRtl;
 
-             var left; // amount of space from left edge, a fraction of the total width
 
-             var right; // amount of space from right edge, a fraction of the total width
 
-             if (shouldOverlap) {
 
-                 // double the width, but don't go beyond the maximum forward coordinate (1.0)
 
-                 forwardCoord = Math.min(1, backwardCoord + (forwardCoord - backwardCoord) * 2);
 
-             }
 
-             if (isRtl) {
 
-                 left = 1 - forwardCoord;
 
-                 right = backwardCoord;
 
-             }
 
-             else {
 
-                 left = backwardCoord;
 
-                 right = 1 - forwardCoord;
 
-             }
 
-             props.zIndex = seg.level + 1; // convert from 0-base to 1-based
 
-             props.left = left * 100 + '%';
 
-             props.right = right * 100 + '%';
 
-             if (shouldOverlap && seg.forwardPressure) {
 
-                 // add padding to the edge so that forward stacked events don't cover the resizer's icon
 
-                 props[isRtl ? 'marginLeft' : 'marginRight'] = 10 * 2; // 10 is a guesstimate of the icon's width
 
-             }
 
-             return props;
 
-         };
 
-         return TimeGridEventRenderer;
 
-     }(core.FgEventRenderer));
 
-     // Builds an array of segments "levels". The first level will be the leftmost tier of segments if the calendar is
 
-     // left-to-right, or the rightmost if the calendar is right-to-left. Assumes the segments are already ordered by date.
 
-     function buildSlotSegLevels(segs) {
 
-         var levels = [];
 
-         var i;
 
-         var seg;
 
-         var j;
 
-         for (i = 0; i < segs.length; i++) {
 
-             seg = segs[i];
 
-             // go through all the levels and stop on the first level where there are no collisions
 
-             for (j = 0; j < levels.length; j++) {
 
-                 if (!computeSlotSegCollisions(seg, levels[j]).length) {
 
-                     break;
 
-                 }
 
-             }
 
-             seg.level = j;
 
-             (levels[j] || (levels[j] = [])).push(seg);
 
-         }
 
-         return levels;
 
-     }
 
-     // For every segment, figure out the other segments that are in subsequent
 
-     // levels that also occupy the same vertical space. Accumulate in seg.forwardSegs
 
-     function computeForwardSlotSegs(levels) {
 
-         var i;
 
-         var level;
 
-         var j;
 
-         var seg;
 
-         var k;
 
-         for (i = 0; i < levels.length; i++) {
 
-             level = levels[i];
 
-             for (j = 0; j < level.length; j++) {
 
-                 seg = level[j];
 
-                 seg.forwardSegs = [];
 
-                 for (k = i + 1; k < levels.length; k++) {
 
-                     computeSlotSegCollisions(seg, levels[k], seg.forwardSegs);
 
-                 }
 
-             }
 
-         }
 
-     }
 
-     // Figure out which path forward (via seg.forwardSegs) results in the longest path until
 
-     // the furthest edge is reached. The number of segments in this path will be seg.forwardPressure
 
-     function computeSlotSegPressures(seg) {
 
-         var forwardSegs = seg.forwardSegs;
 
-         var forwardPressure = 0;
 
-         var i;
 
-         var forwardSeg;
 
-         if (seg.forwardPressure === undefined) { // not already computed
 
-             for (i = 0; i < forwardSegs.length; i++) {
 
-                 forwardSeg = forwardSegs[i];
 
-                 // figure out the child's maximum forward path
 
-                 computeSlotSegPressures(forwardSeg);
 
-                 // either use the existing maximum, or use the child's forward pressure
 
-                 // plus one (for the forwardSeg itself)
 
-                 forwardPressure = Math.max(forwardPressure, 1 + forwardSeg.forwardPressure);
 
-             }
 
-             seg.forwardPressure = forwardPressure;
 
-         }
 
-     }
 
-     // Find all the segments in `otherSegs` that vertically collide with `seg`.
 
-     // Append into an optionally-supplied `results` array and return.
 
-     function computeSlotSegCollisions(seg, otherSegs, results) {
 
-         if (results === void 0) { results = []; }
 
-         for (var i = 0; i < otherSegs.length; i++) {
 
-             if (isSlotSegCollision(seg, otherSegs[i])) {
 
-                 results.push(otherSegs[i]);
 
-             }
 
-         }
 
-         return results;
 
-     }
 
-     // Do these segments occupy the same vertical space?
 
-     function isSlotSegCollision(seg1, seg2) {
 
-         return seg1.bottom > seg2.top && seg1.top < seg2.bottom;
 
-     }
 
-     function buildTimeGridSegCompareObj(seg) {
 
-         var obj = core.buildSegCompareObj(seg);
 
-         obj.forwardPressure = seg.forwardPressure;
 
-         obj.backwardCoord = seg.backwardCoord;
 
-         return obj;
 
-     }
 
-     var TimeGridMirrorRenderer = /** @class */ (function (_super) {
 
-         __extends(TimeGridMirrorRenderer, _super);
 
-         function TimeGridMirrorRenderer() {
 
-             return _super !== null && _super.apply(this, arguments) || this;
 
-         }
 
-         TimeGridMirrorRenderer.prototype.attachSegs = function (segs, mirrorInfo) {
 
-             this.segsByCol = this.timeGrid.groupSegsByCol(segs);
 
-             this.timeGrid.attachSegsByCol(this.segsByCol, this.timeGrid.mirrorContainerEls);
 
-             this.sourceSeg = mirrorInfo.sourceSeg;
 
-         };
 
-         TimeGridMirrorRenderer.prototype.generateSegCss = function (seg) {
 
-             var props = _super.prototype.generateSegCss.call(this, seg);
 
-             var sourceSeg = this.sourceSeg;
 
-             if (sourceSeg && sourceSeg.col === seg.col) {
 
-                 var sourceSegProps = _super.prototype.generateSegCss.call(this, sourceSeg);
 
-                 props.left = sourceSegProps.left;
 
-                 props.right = sourceSegProps.right;
 
-                 props.marginLeft = sourceSegProps.marginLeft;
 
-                 props.marginRight = sourceSegProps.marginRight;
 
-             }
 
-             return props;
 
-         };
 
-         return TimeGridMirrorRenderer;
 
-     }(TimeGridEventRenderer));
 
-     var TimeGridFillRenderer = /** @class */ (function (_super) {
 
-         __extends(TimeGridFillRenderer, _super);
 
-         function TimeGridFillRenderer(timeGrid) {
 
-             var _this = _super.call(this) || this;
 
-             _this.timeGrid = timeGrid;
 
-             return _this;
 
-         }
 
-         TimeGridFillRenderer.prototype.attachSegs = function (type, segs) {
 
-             var timeGrid = this.timeGrid;
 
-             var containerEls;
 
-             // TODO: more efficient lookup
 
-             if (type === 'bgEvent') {
 
-                 containerEls = timeGrid.bgContainerEls;
 
-             }
 
-             else if (type === 'businessHours') {
 
-                 containerEls = timeGrid.businessContainerEls;
 
-             }
 
-             else if (type === 'highlight') {
 
-                 containerEls = timeGrid.highlightContainerEls;
 
-             }
 
-             timeGrid.attachSegsByCol(timeGrid.groupSegsByCol(segs), containerEls);
 
-             return segs.map(function (seg) {
 
-                 return seg.el;
 
-             });
 
-         };
 
-         TimeGridFillRenderer.prototype.computeSegSizes = function (segs) {
 
-             this.timeGrid.computeSegVerticals(segs);
 
-         };
 
-         TimeGridFillRenderer.prototype.assignSegSizes = function (segs) {
 
-             this.timeGrid.assignSegVerticals(segs);
 
-         };
 
-         return TimeGridFillRenderer;
 
-     }(core.FillRenderer));
 
-     /* A component that renders one or more columns of vertical time slots
 
-     ----------------------------------------------------------------------------------------------------------------------*/
 
-     // potential nice values for the slot-duration and interval-duration
 
-     // from largest to smallest
 
-     var AGENDA_STOCK_SUB_DURATIONS = [
 
-         { hours: 1 },
 
-         { minutes: 30 },
 
-         { minutes: 15 },
 
-         { seconds: 30 },
 
-         { seconds: 15 }
 
-     ];
 
-     var TimeGrid = /** @class */ (function (_super) {
 
-         __extends(TimeGrid, _super);
 
-         function TimeGrid(el, renderProps) {
 
-             var _this = _super.call(this, el) || this;
 
-             _this.isSlatSizesDirty = false;
 
-             _this.isColSizesDirty = false;
 
-             _this.processOptions = core.memoize(_this._processOptions);
 
-             _this.renderSkeleton = core.memoizeRendering(_this._renderSkeleton);
 
-             _this.renderSlats = core.memoizeRendering(_this._renderSlats, null, [_this.renderSkeleton]);
 
-             _this.renderColumns = core.memoizeRendering(_this._renderColumns, _this._unrenderColumns, [_this.renderSkeleton]);
 
-             _this.renderProps = renderProps;
 
-             var renderColumns = _this.renderColumns;
 
-             var eventRenderer = _this.eventRenderer = new TimeGridEventRenderer(_this);
 
-             var fillRenderer = _this.fillRenderer = new TimeGridFillRenderer(_this);
 
-             _this.mirrorRenderer = new TimeGridMirrorRenderer(_this);
 
-             _this.renderBusinessHours = core.memoizeRendering(fillRenderer.renderSegs.bind(fillRenderer, 'businessHours'), fillRenderer.unrender.bind(fillRenderer, 'businessHours'), [renderColumns]);
 
-             _this.renderDateSelection = core.memoizeRendering(_this._renderDateSelection, _this._unrenderDateSelection, [renderColumns]);
 
-             _this.renderFgEvents = core.memoizeRendering(eventRenderer.renderSegs.bind(eventRenderer), eventRenderer.unrender.bind(eventRenderer), [renderColumns]);
 
-             _this.renderBgEvents = core.memoizeRendering(fillRenderer.renderSegs.bind(fillRenderer, 'bgEvent'), fillRenderer.unrender.bind(fillRenderer, 'bgEvent'), [renderColumns]);
 
-             _this.renderEventSelection = core.memoizeRendering(eventRenderer.selectByInstanceId.bind(eventRenderer), eventRenderer.unselectByInstanceId.bind(eventRenderer), [_this.renderFgEvents]);
 
-             _this.renderEventDrag = core.memoizeRendering(_this._renderEventDrag, _this._unrenderEventDrag, [renderColumns]);
 
-             _this.renderEventResize = core.memoizeRendering(_this._renderEventResize, _this._unrenderEventResize, [renderColumns]);
 
-             return _this;
 
-         }
 
-         /* Options
 
-         ------------------------------------------------------------------------------------------------------------------*/
 
-         // Parses various options into properties of this object
 
-         // MUST have context already set
 
-         TimeGrid.prototype._processOptions = function (options) {
 
-             var slotDuration = options.slotDuration, snapDuration = options.snapDuration;
 
-             var snapsPerSlot;
 
-             var input;
 
-             slotDuration = core.createDuration(slotDuration);
 
-             snapDuration = snapDuration ? core.createDuration(snapDuration) : slotDuration;
 
-             snapsPerSlot = core.wholeDivideDurations(slotDuration, snapDuration);
 
-             if (snapsPerSlot === null) {
 
-                 snapDuration = slotDuration;
 
-                 snapsPerSlot = 1;
 
-                 // TODO: say warning?
 
-             }
 
-             this.slotDuration = slotDuration;
 
-             this.snapDuration = snapDuration;
 
-             this.snapsPerSlot = snapsPerSlot;
 
-             // might be an array value (for TimelineView).
 
-             // if so, getting the most granular entry (the last one probably).
 
-             input = options.slotLabelFormat;
 
-             if (Array.isArray(input)) {
 
-                 input = input[input.length - 1];
 
-             }
 
-             this.labelFormat = core.createFormatter(input || {
 
-                 hour: 'numeric',
 
-                 minute: '2-digit',
 
-                 omitZeroMinute: true,
 
-                 meridiem: 'short'
 
-             });
 
-             input = options.slotLabelInterval;
 
-             this.labelInterval = input ?
 
-                 core.createDuration(input) :
 
-                 this.computeLabelInterval(slotDuration);
 
-         };
 
-         // Computes an automatic value for slotLabelInterval
 
-         TimeGrid.prototype.computeLabelInterval = function (slotDuration) {
 
-             var i;
 
-             var labelInterval;
 
-             var slotsPerLabel;
 
-             // find the smallest stock label interval that results in more than one slots-per-label
 
-             for (i = AGENDA_STOCK_SUB_DURATIONS.length - 1; i >= 0; i--) {
 
-                 labelInterval = core.createDuration(AGENDA_STOCK_SUB_DURATIONS[i]);
 
-                 slotsPerLabel = core.wholeDivideDurations(labelInterval, slotDuration);
 
-                 if (slotsPerLabel !== null && slotsPerLabel > 1) {
 
-                     return labelInterval;
 
-                 }
 
-             }
 
-             return slotDuration; // fall back
 
-         };
 
-         /* Rendering
 
-         ------------------------------------------------------------------------------------------------------------------*/
 
-         TimeGrid.prototype.render = function (props, context) {
 
-             this.processOptions(context.options);
 
-             var cells = props.cells;
 
-             this.colCnt = cells.length;
 
-             this.renderSkeleton(context.theme);
 
-             this.renderSlats(props.dateProfile);
 
-             this.renderColumns(props.cells, props.dateProfile);
 
-             this.renderBusinessHours(context, props.businessHourSegs);
 
-             this.renderDateSelection(props.dateSelectionSegs);
 
-             this.renderFgEvents(context, props.fgEventSegs);
 
-             this.renderBgEvents(context, props.bgEventSegs);
 
-             this.renderEventSelection(props.eventSelection);
 
-             this.renderEventDrag(props.eventDrag);
 
-             this.renderEventResize(props.eventResize);
 
-         };
 
-         TimeGrid.prototype.destroy = function () {
 
-             _super.prototype.destroy.call(this);
 
-             // should unrender everything else too
 
-             this.renderSlats.unrender();
 
-             this.renderColumns.unrender();
 
-             this.renderSkeleton.unrender();
 
-         };
 
-         TimeGrid.prototype.updateSize = function (isResize) {
 
-             var _a = this, fillRenderer = _a.fillRenderer, eventRenderer = _a.eventRenderer, mirrorRenderer = _a.mirrorRenderer;
 
-             if (isResize || this.isSlatSizesDirty) {
 
-                 this.buildSlatPositions();
 
-                 this.isSlatSizesDirty = false;
 
-             }
 
-             if (isResize || this.isColSizesDirty) {
 
-                 this.buildColPositions();
 
-                 this.isColSizesDirty = false;
 
-             }
 
-             fillRenderer.computeSizes(isResize);
 
-             eventRenderer.computeSizes(isResize);
 
-             mirrorRenderer.computeSizes(isResize);
 
-             fillRenderer.assignSizes(isResize);
 
-             eventRenderer.assignSizes(isResize);
 
-             mirrorRenderer.assignSizes(isResize);
 
-         };
 
-         TimeGrid.prototype._renderSkeleton = function (theme) {
 
-             var el = this.el;
 
-             el.innerHTML =
 
-                 '<div class="fc-bg"></div>' +
 
-                     '<div class="fc-slats"></div>' +
 
-                     '<hr class="fc-divider ' + theme.getClass('widgetHeader') + '" style="display:none" />';
 
-             this.rootBgContainerEl = el.querySelector('.fc-bg');
 
-             this.slatContainerEl = el.querySelector('.fc-slats');
 
-             this.bottomRuleEl = el.querySelector('.fc-divider');
 
-         };
 
-         TimeGrid.prototype._renderSlats = function (dateProfile) {
 
-             var theme = this.context.theme;
 
-             this.slatContainerEl.innerHTML =
 
-                 '<table class="' + theme.getClass('tableGrid') + '">' +
 
-                     this.renderSlatRowHtml(dateProfile) +
 
-                     '</table>';
 
-             this.slatEls = core.findElements(this.slatContainerEl, 'tr');
 
-             this.slatPositions = new core.PositionCache(this.el, this.slatEls, false, true // vertical
 
-             );
 
-             this.isSlatSizesDirty = true;
 
-         };
 
-         // Generates the HTML for the horizontal "slats" that run width-wise. Has a time axis on a side. Depends on RTL.
 
-         TimeGrid.prototype.renderSlatRowHtml = function (dateProfile) {
 
-             var _a = this.context, dateEnv = _a.dateEnv, theme = _a.theme, isRtl = _a.isRtl;
 
-             var html = '';
 
-             var dayStart = core.startOfDay(dateProfile.renderRange.start);
 
-             var slotTime = dateProfile.minTime;
 
-             var slotIterator = core.createDuration(0);
 
-             var slotDate; // will be on the view's first day, but we only care about its time
 
-             var isLabeled;
 
-             var axisHtml;
 
-             // Calculate the time for each slot
 
-             while (core.asRoughMs(slotTime) < core.asRoughMs(dateProfile.maxTime)) {
 
-                 slotDate = dateEnv.add(dayStart, slotTime);
 
-                 isLabeled = core.wholeDivideDurations(slotIterator, this.labelInterval) !== null;
 
-                 axisHtml =
 
-                     '<td class="fc-axis fc-time ' + theme.getClass('widgetContent') + '">' +
 
-                         (isLabeled ?
 
-                             '<span>' + // for matchCellWidths
 
-                                 core.htmlEscape(dateEnv.format(slotDate, this.labelFormat)) +
 
-                                 '</span>' :
 
-                             '') +
 
-                         '</td>';
 
-                 html +=
 
-                     '<tr data-time="' + core.formatIsoTimeString(slotDate) + '"' +
 
-                         (isLabeled ? '' : ' class="fc-minor"') +
 
-                         '>' +
 
-                         (!isRtl ? axisHtml : '') +
 
-                         '<td class="' + theme.getClass('widgetContent') + '"></td>' +
 
-                         (isRtl ? axisHtml : '') +
 
-                         '</tr>';
 
-                 slotTime = core.addDurations(slotTime, this.slotDuration);
 
-                 slotIterator = core.addDurations(slotIterator, this.slotDuration);
 
-             }
 
-             return html;
 
-         };
 
-         TimeGrid.prototype._renderColumns = function (cells, dateProfile) {
 
-             var _a = this.context, calendar = _a.calendar, view = _a.view, isRtl = _a.isRtl, theme = _a.theme, dateEnv = _a.dateEnv;
 
-             var bgRow = new daygrid.DayBgRow(this.context);
 
-             this.rootBgContainerEl.innerHTML =
 
-                 '<table class="' + theme.getClass('tableGrid') + '">' +
 
-                     bgRow.renderHtml({
 
-                         cells: cells,
 
-                         dateProfile: dateProfile,
 
-                         renderIntroHtml: this.renderProps.renderBgIntroHtml
 
-                     }) +
 
-                     '</table>';
 
-             this.colEls = core.findElements(this.el, '.fc-day, .fc-disabled-day');
 
-             for (var col = 0; col < this.colCnt; col++) {
 
-                 calendar.publiclyTrigger('dayRender', [
 
-                     {
 
-                         date: dateEnv.toDate(cells[col].date),
 
-                         el: this.colEls[col],
 
-                         view: view
 
-                     }
 
-                 ]);
 
-             }
 
-             if (isRtl) {
 
-                 this.colEls.reverse();
 
-             }
 
-             this.colPositions = new core.PositionCache(this.el, this.colEls, true, // horizontal
 
-             false);
 
-             this.renderContentSkeleton();
 
-             this.isColSizesDirty = true;
 
-         };
 
-         TimeGrid.prototype._unrenderColumns = function () {
 
-             this.unrenderContentSkeleton();
 
-         };
 
-         /* Content Skeleton
 
-         ------------------------------------------------------------------------------------------------------------------*/
 
-         // Renders the DOM that the view's content will live in
 
-         TimeGrid.prototype.renderContentSkeleton = function () {
 
-             var isRtl = this.context.isRtl;
 
-             var parts = [];
 
-             var skeletonEl;
 
-             parts.push(this.renderProps.renderIntroHtml());
 
-             for (var i = 0; i < this.colCnt; i++) {
 
-                 parts.push('<td>' +
 
-                     '<div class="fc-content-col">' +
 
-                     '<div class="fc-event-container fc-mirror-container"></div>' +
 
-                     '<div class="fc-event-container"></div>' +
 
-                     '<div class="fc-highlight-container"></div>' +
 
-                     '<div class="fc-bgevent-container"></div>' +
 
-                     '<div class="fc-business-container"></div>' +
 
-                     '</div>' +
 
-                     '</td>');
 
-             }
 
-             if (isRtl) {
 
-                 parts.reverse();
 
-             }
 
-             skeletonEl = this.contentSkeletonEl = core.htmlToElement('<div class="fc-content-skeleton">' +
 
-                 '<table>' +
 
-                 '<tr>' + parts.join('') + '</tr>' +
 
-                 '</table>' +
 
-                 '</div>');
 
-             this.colContainerEls = core.findElements(skeletonEl, '.fc-content-col');
 
-             this.mirrorContainerEls = core.findElements(skeletonEl, '.fc-mirror-container');
 
-             this.fgContainerEls = core.findElements(skeletonEl, '.fc-event-container:not(.fc-mirror-container)');
 
-             this.bgContainerEls = core.findElements(skeletonEl, '.fc-bgevent-container');
 
-             this.highlightContainerEls = core.findElements(skeletonEl, '.fc-highlight-container');
 
-             this.businessContainerEls = core.findElements(skeletonEl, '.fc-business-container');
 
-             if (isRtl) {
 
-                 this.colContainerEls.reverse();
 
-                 this.mirrorContainerEls.reverse();
 
-                 this.fgContainerEls.reverse();
 
-                 this.bgContainerEls.reverse();
 
-                 this.highlightContainerEls.reverse();
 
-                 this.businessContainerEls.reverse();
 
-             }
 
-             this.el.appendChild(skeletonEl);
 
-         };
 
-         TimeGrid.prototype.unrenderContentSkeleton = function () {
 
-             core.removeElement(this.contentSkeletonEl);
 
-         };
 
-         // Given a flat array of segments, return an array of sub-arrays, grouped by each segment's col
 
-         TimeGrid.prototype.groupSegsByCol = function (segs) {
 
-             var segsByCol = [];
 
-             var i;
 
-             for (i = 0; i < this.colCnt; i++) {
 
-                 segsByCol.push([]);
 
-             }
 
-             for (i = 0; i < segs.length; i++) {
 
-                 segsByCol[segs[i].col].push(segs[i]);
 
-             }
 
-             return segsByCol;
 
-         };
 
-         // Given segments grouped by column, insert the segments' elements into a parallel array of container
 
-         // elements, each living within a column.
 
-         TimeGrid.prototype.attachSegsByCol = function (segsByCol, containerEls) {
 
-             var col;
 
-             var segs;
 
-             var i;
 
-             for (col = 0; col < this.colCnt; col++) { // iterate each column grouping
 
-                 segs = segsByCol[col];
 
-                 for (i = 0; i < segs.length; i++) {
 
-                     containerEls[col].appendChild(segs[i].el);
 
-                 }
 
-             }
 
-         };
 
-         /* Now Indicator
 
-         ------------------------------------------------------------------------------------------------------------------*/
 
-         TimeGrid.prototype.getNowIndicatorUnit = function () {
 
-             return 'minute'; // will refresh on the minute
 
-         };
 
-         TimeGrid.prototype.renderNowIndicator = function (segs, date) {
 
-             // HACK: if date columns not ready for some reason (scheduler)
 
-             if (!this.colContainerEls) {
 
-                 return;
 
-             }
 
-             var top = this.computeDateTop(date);
 
-             var nodes = [];
 
-             var i;
 
-             // render lines within the columns
 
-             for (i = 0; i < segs.length; i++) {
 
-                 var lineEl = core.createElement('div', { className: 'fc-now-indicator fc-now-indicator-line' });
 
-                 lineEl.style.top = top + 'px';
 
-                 this.colContainerEls[segs[i].col].appendChild(lineEl);
 
-                 nodes.push(lineEl);
 
-             }
 
-             // render an arrow over the axis
 
-             if (segs.length > 0) { // is the current time in view?
 
-                 var arrowEl = core.createElement('div', { className: 'fc-now-indicator fc-now-indicator-arrow' });
 
-                 arrowEl.style.top = top + 'px';
 
-                 this.contentSkeletonEl.appendChild(arrowEl);
 
-                 nodes.push(arrowEl);
 
-             }
 
-             this.nowIndicatorEls = nodes;
 
-         };
 
-         TimeGrid.prototype.unrenderNowIndicator = function () {
 
-             if (this.nowIndicatorEls) {
 
-                 this.nowIndicatorEls.forEach(core.removeElement);
 
-                 this.nowIndicatorEls = null;
 
-             }
 
-         };
 
-         /* Coordinates
 
-         ------------------------------------------------------------------------------------------------------------------*/
 
-         TimeGrid.prototype.getTotalSlatHeight = function () {
 
-             return this.slatContainerEl.getBoundingClientRect().height;
 
-         };
 
-         // Computes the top coordinate, relative to the bounds of the grid, of the given date.
 
-         // A `startOfDayDate` must be given for avoiding ambiguity over how to treat midnight.
 
-         TimeGrid.prototype.computeDateTop = function (when, startOfDayDate) {
 
-             if (!startOfDayDate) {
 
-                 startOfDayDate = core.startOfDay(when);
 
-             }
 
-             return this.computeTimeTop(core.createDuration(when.valueOf() - startOfDayDate.valueOf()));
 
-         };
 
-         // Computes the top coordinate, relative to the bounds of the grid, of the given time (a Duration).
 
-         TimeGrid.prototype.computeTimeTop = function (duration) {
 
-             var len = this.slatEls.length;
 
-             var dateProfile = this.props.dateProfile;
 
-             var slatCoverage = (duration.milliseconds - core.asRoughMs(dateProfile.minTime)) / core.asRoughMs(this.slotDuration); // floating-point value of # of slots covered
 
-             var slatIndex;
 
-             var slatRemainder;
 
-             // compute a floating-point number for how many slats should be progressed through.
 
-             // from 0 to number of slats (inclusive)
 
-             // constrained because minTime/maxTime might be customized.
 
-             slatCoverage = Math.max(0, slatCoverage);
 
-             slatCoverage = Math.min(len, slatCoverage);
 
-             // an integer index of the furthest whole slat
 
-             // from 0 to number slats (*exclusive*, so len-1)
 
-             slatIndex = Math.floor(slatCoverage);
 
-             slatIndex = Math.min(slatIndex, len - 1);
 
-             // how much further through the slatIndex slat (from 0.0-1.0) must be covered in addition.
 
-             // could be 1.0 if slatCoverage is covering *all* the slots
 
-             slatRemainder = slatCoverage - slatIndex;
 
-             return this.slatPositions.tops[slatIndex] +
 
-                 this.slatPositions.getHeight(slatIndex) * slatRemainder;
 
-         };
 
-         // For each segment in an array, computes and assigns its top and bottom properties
 
-         TimeGrid.prototype.computeSegVerticals = function (segs) {
 
-             var options = this.context.options;
 
-             var eventMinHeight = options.timeGridEventMinHeight;
 
-             var i;
 
-             var seg;
 
-             var dayDate;
 
-             for (i = 0; i < segs.length; i++) {
 
-                 seg = segs[i];
 
-                 dayDate = this.props.cells[seg.col].date;
 
-                 seg.top = this.computeDateTop(seg.start, dayDate);
 
-                 seg.bottom = Math.max(seg.top + eventMinHeight, this.computeDateTop(seg.end, dayDate));
 
-             }
 
-         };
 
-         // Given segments that already have their top/bottom properties computed, applies those values to
 
-         // the segments' elements.
 
-         TimeGrid.prototype.assignSegVerticals = function (segs) {
 
-             var i;
 
-             var seg;
 
-             for (i = 0; i < segs.length; i++) {
 
-                 seg = segs[i];
 
-                 core.applyStyle(seg.el, this.generateSegVerticalCss(seg));
 
-             }
 
-         };
 
-         // Generates an object with CSS properties for the top/bottom coordinates of a segment element
 
-         TimeGrid.prototype.generateSegVerticalCss = function (seg) {
 
-             return {
 
-                 top: seg.top,
 
-                 bottom: -seg.bottom // flipped because needs to be space beyond bottom edge of event container
 
-             };
 
-         };
 
-         /* Sizing
 
-         ------------------------------------------------------------------------------------------------------------------*/
 
-         TimeGrid.prototype.buildPositionCaches = function () {
 
-             this.buildColPositions();
 
-             this.buildSlatPositions();
 
-         };
 
-         TimeGrid.prototype.buildColPositions = function () {
 
-             this.colPositions.build();
 
-         };
 
-         TimeGrid.prototype.buildSlatPositions = function () {
 
-             this.slatPositions.build();
 
-         };
 
-         /* Hit System
 
-         ------------------------------------------------------------------------------------------------------------------*/
 
-         TimeGrid.prototype.positionToHit = function (positionLeft, positionTop) {
 
-             var dateEnv = this.context.dateEnv;
 
-             var _a = this, snapsPerSlot = _a.snapsPerSlot, slatPositions = _a.slatPositions, colPositions = _a.colPositions;
 
-             var colIndex = colPositions.leftToIndex(positionLeft);
 
-             var slatIndex = slatPositions.topToIndex(positionTop);
 
-             if (colIndex != null && slatIndex != null) {
 
-                 var slatTop = slatPositions.tops[slatIndex];
 
-                 var slatHeight = slatPositions.getHeight(slatIndex);
 
-                 var partial = (positionTop - slatTop) / slatHeight; // floating point number between 0 and 1
 
-                 var localSnapIndex = Math.floor(partial * snapsPerSlot); // the snap # relative to start of slat
 
-                 var snapIndex = slatIndex * snapsPerSlot + localSnapIndex;
 
-                 var dayDate = this.props.cells[colIndex].date;
 
-                 var time = core.addDurations(this.props.dateProfile.minTime, core.multiplyDuration(this.snapDuration, snapIndex));
 
-                 var start = dateEnv.add(dayDate, time);
 
-                 var end = dateEnv.add(start, this.snapDuration);
 
-                 return {
 
-                     col: colIndex,
 
-                     dateSpan: {
 
-                         range: { start: start, end: end },
 
-                         allDay: false
 
-                     },
 
-                     dayEl: this.colEls[colIndex],
 
-                     relativeRect: {
 
-                         left: colPositions.lefts[colIndex],
 
-                         right: colPositions.rights[colIndex],
 
-                         top: slatTop,
 
-                         bottom: slatTop + slatHeight
 
-                     }
 
-                 };
 
-             }
 
-         };
 
-         /* Event Drag Visualization
 
-         ------------------------------------------------------------------------------------------------------------------*/
 
-         TimeGrid.prototype._renderEventDrag = function (state) {
 
-             if (state) {
 
-                 this.eventRenderer.hideByHash(state.affectedInstances);
 
-                 if (state.isEvent) {
 
-                     this.mirrorRenderer.renderSegs(this.context, state.segs, { isDragging: true, sourceSeg: state.sourceSeg });
 
-                 }
 
-                 else {
 
-                     this.fillRenderer.renderSegs('highlight', this.context, state.segs);
 
-                 }
 
-             }
 
-         };
 
-         TimeGrid.prototype._unrenderEventDrag = function (state) {
 
-             if (state) {
 
-                 this.eventRenderer.showByHash(state.affectedInstances);
 
-                 if (state.isEvent) {
 
-                     this.mirrorRenderer.unrender(this.context, state.segs, { isDragging: true, sourceSeg: state.sourceSeg });
 
-                 }
 
-                 else {
 
-                     this.fillRenderer.unrender('highlight', this.context);
 
-                 }
 
-             }
 
-         };
 
-         /* Event Resize Visualization
 
-         ------------------------------------------------------------------------------------------------------------------*/
 
-         TimeGrid.prototype._renderEventResize = function (state) {
 
-             if (state) {
 
-                 this.eventRenderer.hideByHash(state.affectedInstances);
 
-                 this.mirrorRenderer.renderSegs(this.context, state.segs, { isResizing: true, sourceSeg: state.sourceSeg });
 
-             }
 
-         };
 
-         TimeGrid.prototype._unrenderEventResize = function (state) {
 
-             if (state) {
 
-                 this.eventRenderer.showByHash(state.affectedInstances);
 
-                 this.mirrorRenderer.unrender(this.context, state.segs, { isResizing: true, sourceSeg: state.sourceSeg });
 
-             }
 
-         };
 
-         /* Selection
 
-         ------------------------------------------------------------------------------------------------------------------*/
 
-         // Renders a visual indication of a selection. Overrides the default, which was to simply render a highlight.
 
-         TimeGrid.prototype._renderDateSelection = function (segs) {
 
-             if (segs) {
 
-                 if (this.context.options.selectMirror) {
 
-                     this.mirrorRenderer.renderSegs(this.context, segs, { isSelecting: true });
 
-                 }
 
-                 else {
 
-                     this.fillRenderer.renderSegs('highlight', this.context, segs);
 
-                 }
 
-             }
 
-         };
 
-         TimeGrid.prototype._unrenderDateSelection = function (segs) {
 
-             if (segs) {
 
-                 if (this.context.options.selectMirror) {
 
-                     this.mirrorRenderer.unrender(this.context, segs, { isSelecting: true });
 
-                 }
 
-                 else {
 
-                     this.fillRenderer.unrender('highlight', this.context);
 
-                 }
 
-             }
 
-         };
 
-         return TimeGrid;
 
-     }(core.DateComponent));
 
-     var AllDaySplitter = /** @class */ (function (_super) {
 
-         __extends(AllDaySplitter, _super);
 
-         function AllDaySplitter() {
 
-             return _super !== null && _super.apply(this, arguments) || this;
 
-         }
 
-         AllDaySplitter.prototype.getKeyInfo = function () {
 
-             return {
 
-                 allDay: {},
 
-                 timed: {}
 
-             };
 
-         };
 
-         AllDaySplitter.prototype.getKeysForDateSpan = function (dateSpan) {
 
-             if (dateSpan.allDay) {
 
-                 return ['allDay'];
 
-             }
 
-             else {
 
-                 return ['timed'];
 
-             }
 
-         };
 
-         AllDaySplitter.prototype.getKeysForEventDef = function (eventDef) {
 
-             if (!eventDef.allDay) {
 
-                 return ['timed'];
 
-             }
 
-             else if (core.hasBgRendering(eventDef)) {
 
-                 return ['timed', 'allDay'];
 
-             }
 
-             else {
 
-                 return ['allDay'];
 
-             }
 
-         };
 
-         return AllDaySplitter;
 
-     }(core.Splitter));
 
-     var TIMEGRID_ALL_DAY_EVENT_LIMIT = 5;
 
-     var WEEK_HEADER_FORMAT = core.createFormatter({ week: 'short' });
 
-     /* An abstract class for all timegrid-related views. Displays one more columns with time slots running vertically.
 
-     ----------------------------------------------------------------------------------------------------------------------*/
 
-     // Is a manager for the TimeGrid subcomponent and possibly the DayGrid subcomponent (if allDaySlot is on).
 
-     // Responsible for managing width/height.
 
-     var AbstractTimeGridView = /** @class */ (function (_super) {
 
-         __extends(AbstractTimeGridView, _super);
 
-         function AbstractTimeGridView() {
 
-             var _this = _super !== null && _super.apply(this, arguments) || this;
 
-             _this.splitter = new AllDaySplitter();
 
-             _this.renderSkeleton = core.memoizeRendering(_this._renderSkeleton, _this._unrenderSkeleton);
 
-             /* Header Render Methods
 
-             ------------------------------------------------------------------------------------------------------------------*/
 
-             // Generates the HTML that will go before the day-of week header cells
 
-             _this.renderHeadIntroHtml = function () {
 
-                 var _a = _this.context, theme = _a.theme, dateEnv = _a.dateEnv, options = _a.options;
 
-                 var range = _this.props.dateProfile.renderRange;
 
-                 var dayCnt = core.diffDays(range.start, range.end);
 
-                 var weekText;
 
-                 if (options.weekNumbers) {
 
-                     weekText = dateEnv.format(range.start, WEEK_HEADER_FORMAT);
 
-                     return '' +
 
-                         '<th class="fc-axis fc-week-number ' + theme.getClass('widgetHeader') + '" ' + _this.axisStyleAttr() + '>' +
 
-                         core.buildGotoAnchorHtml(// aside from link, important for matchCellWidths
 
-                         options, dateEnv, { date: range.start, type: 'week', forceOff: dayCnt > 1 }, core.htmlEscape(weekText) // inner HTML
 
-                         ) +
 
-                         '</th>';
 
-                 }
 
-                 else {
 
-                     return '<th class="fc-axis ' + theme.getClass('widgetHeader') + '" ' + _this.axisStyleAttr() + '></th>';
 
-                 }
 
-             };
 
-             /* Time Grid Render Methods
 
-             ------------------------------------------------------------------------------------------------------------------*/
 
-             // Generates the HTML that goes before the bg of the TimeGrid slot area. Long vertical column.
 
-             _this.renderTimeGridBgIntroHtml = function () {
 
-                 var theme = _this.context.theme;
 
-                 return '<td class="fc-axis ' + theme.getClass('widgetContent') + '" ' + _this.axisStyleAttr() + '></td>';
 
-             };
 
-             // Generates the HTML that goes before all other types of cells.
 
-             // Affects content-skeleton, mirror-skeleton, highlight-skeleton for both the time-grid and day-grid.
 
-             _this.renderTimeGridIntroHtml = function () {
 
-                 return '<td class="fc-axis" ' + _this.axisStyleAttr() + '></td>';
 
-             };
 
-             /* Day Grid Render Methods
 
-             ------------------------------------------------------------------------------------------------------------------*/
 
-             // Generates the HTML that goes before the all-day cells
 
-             _this.renderDayGridBgIntroHtml = function () {
 
-                 var _a = _this.context, theme = _a.theme, options = _a.options;
 
-                 return '' +
 
-                     '<td class="fc-axis ' + theme.getClass('widgetContent') + '" ' + _this.axisStyleAttr() + '>' +
 
-                     '<span>' + // needed for matchCellWidths
 
-                     core.getAllDayHtml(options) +
 
-                     '</span>' +
 
-                     '</td>';
 
-             };
 
-             // Generates the HTML that goes before all other types of cells.
 
-             // Affects content-skeleton, mirror-skeleton, highlight-skeleton for both the time-grid and day-grid.
 
-             _this.renderDayGridIntroHtml = function () {
 
-                 return '<td class="fc-axis" ' + _this.axisStyleAttr() + '></td>';
 
-             };
 
-             return _this;
 
-         }
 
-         AbstractTimeGridView.prototype.render = function (props, context) {
 
-             _super.prototype.render.call(this, props, context);
 
-             this.renderSkeleton(context);
 
-         };
 
-         AbstractTimeGridView.prototype.destroy = function () {
 
-             _super.prototype.destroy.call(this);
 
-             this.renderSkeleton.unrender();
 
-         };
 
-         AbstractTimeGridView.prototype._renderSkeleton = function (context) {
 
-             this.el.classList.add('fc-timeGrid-view');
 
-             this.el.innerHTML = this.renderSkeletonHtml();
 
-             this.scroller = new core.ScrollComponent('hidden', // overflow x
 
-             'auto' // overflow y
 
-             );
 
-             var timeGridWrapEl = this.scroller.el;
 
-             this.el.querySelector('.fc-body > tr > td').appendChild(timeGridWrapEl);
 
-             timeGridWrapEl.classList.add('fc-time-grid-container');
 
-             var timeGridEl = core.createElement('div', { className: 'fc-time-grid' });
 
-             timeGridWrapEl.appendChild(timeGridEl);
 
-             this.timeGrid = new TimeGrid(timeGridEl, {
 
-                 renderBgIntroHtml: this.renderTimeGridBgIntroHtml,
 
-                 renderIntroHtml: this.renderTimeGridIntroHtml
 
-             });
 
-             if (context.options.allDaySlot) { // should we display the "all-day" area?
 
-                 this.dayGrid = new daygrid.DayGrid(// the all-day subcomponent of this view
 
-                 this.el.querySelector('.fc-day-grid'), {
 
-                     renderNumberIntroHtml: this.renderDayGridIntroHtml,
 
-                     renderBgIntroHtml: this.renderDayGridBgIntroHtml,
 
-                     renderIntroHtml: this.renderDayGridIntroHtml,
 
-                     colWeekNumbersVisible: false,
 
-                     cellWeekNumbersVisible: false
 
-                 });
 
-                 // have the day-grid extend it's coordinate area over the <hr> dividing the two grids
 
-                 var dividerEl = this.el.querySelector('.fc-divider');
 
-                 this.dayGrid.bottomCoordPadding = dividerEl.getBoundingClientRect().height;
 
-             }
 
-         };
 
-         AbstractTimeGridView.prototype._unrenderSkeleton = function () {
 
-             this.el.classList.remove('fc-timeGrid-view');
 
-             this.timeGrid.destroy();
 
-             if (this.dayGrid) {
 
-                 this.dayGrid.destroy();
 
-             }
 
-             this.scroller.destroy();
 
-         };
 
-         /* Rendering
 
-         ------------------------------------------------------------------------------------------------------------------*/
 
-         // Builds the HTML skeleton for the view.
 
-         // The day-grid and time-grid components will render inside containers defined by this HTML.
 
-         AbstractTimeGridView.prototype.renderSkeletonHtml = function () {
 
-             var _a = this.context, theme = _a.theme, options = _a.options;
 
-             return '' +
 
-                 '<table class="' + theme.getClass('tableGrid') + '">' +
 
-                 (options.columnHeader ?
 
-                     '<thead class="fc-head">' +
 
-                         '<tr>' +
 
-                         '<td class="fc-head-container ' + theme.getClass('widgetHeader') + '"> </td>' +
 
-                         '</tr>' +
 
-                         '</thead>' :
 
-                     '') +
 
-                 '<tbody class="fc-body">' +
 
-                 '<tr>' +
 
-                 '<td class="' + theme.getClass('widgetContent') + '">' +
 
-                 (options.allDaySlot ?
 
-                     '<div class="fc-day-grid"></div>' +
 
-                         '<hr class="fc-divider ' + theme.getClass('widgetHeader') + '" />' :
 
-                     '') +
 
-                 '</td>' +
 
-                 '</tr>' +
 
-                 '</tbody>' +
 
-                 '</table>';
 
-         };
 
-         /* Now Indicator
 
-         ------------------------------------------------------------------------------------------------------------------*/
 
-         AbstractTimeGridView.prototype.getNowIndicatorUnit = function () {
 
-             return this.timeGrid.getNowIndicatorUnit();
 
-         };
 
-         // subclasses should implement
 
-         // renderNowIndicator(date: DateMarker) {
 
-         // }
 
-         AbstractTimeGridView.prototype.unrenderNowIndicator = function () {
 
-             this.timeGrid.unrenderNowIndicator();
 
-         };
 
-         /* Dimensions
 
-         ------------------------------------------------------------------------------------------------------------------*/
 
-         AbstractTimeGridView.prototype.updateSize = function (isResize, viewHeight, isAuto) {
 
-             _super.prototype.updateSize.call(this, isResize, viewHeight, isAuto); // will call updateBaseSize. important that executes first
 
-             this.timeGrid.updateSize(isResize);
 
-             if (this.dayGrid) {
 
-                 this.dayGrid.updateSize(isResize);
 
-             }
 
-         };
 
-         // Adjusts the vertical dimensions of the view to the specified values
 
-         AbstractTimeGridView.prototype.updateBaseSize = function (isResize, viewHeight, isAuto) {
 
-             var _this = this;
 
-             var eventLimit;
 
-             var scrollerHeight;
 
-             var scrollbarWidths;
 
-             // make all axis cells line up
 
-             this.axisWidth = core.matchCellWidths(core.findElements(this.el, '.fc-axis'));
 
-             // hack to give the view some height prior to timeGrid's columns being rendered
 
-             // TODO: separate setting height from scroller VS timeGrid.
 
-             if (!this.timeGrid.colEls) {
 
-                 if (!isAuto) {
 
-                     scrollerHeight = this.computeScrollerHeight(viewHeight);
 
-                     this.scroller.setHeight(scrollerHeight);
 
-                 }
 
-                 return;
 
-             }
 
-             // set of fake row elements that must compensate when scroller has scrollbars
 
-             var noScrollRowEls = core.findElements(this.el, '.fc-row').filter(function (node) {
 
-                 return !_this.scroller.el.contains(node);
 
-             });
 
-             // reset all dimensions back to the original state
 
-             this.timeGrid.bottomRuleEl.style.display = 'none'; // will be shown later if this <hr> is necessary
 
-             this.scroller.clear(); // sets height to 'auto' and clears overflow
 
-             noScrollRowEls.forEach(core.uncompensateScroll);
 
-             // limit number of events in the all-day area
 
-             if (this.dayGrid) {
 
-                 this.dayGrid.removeSegPopover(); // kill the "more" popover if displayed
 
-                 eventLimit = this.context.options.eventLimit;
 
-                 if (eventLimit && typeof eventLimit !== 'number') {
 
-                     eventLimit = TIMEGRID_ALL_DAY_EVENT_LIMIT; // make sure "auto" goes to a real number
 
-                 }
 
-                 if (eventLimit) {
 
-                     this.dayGrid.limitRows(eventLimit);
 
-                 }
 
-             }
 
-             if (!isAuto) { // should we force dimensions of the scroll container?
 
-                 scrollerHeight = this.computeScrollerHeight(viewHeight);
 
-                 this.scroller.setHeight(scrollerHeight);
 
-                 scrollbarWidths = this.scroller.getScrollbarWidths();
 
-                 if (scrollbarWidths.left || scrollbarWidths.right) { // using scrollbars?
 
-                     // make the all-day and header rows lines up
 
-                     noScrollRowEls.forEach(function (rowEl) {
 
-                         core.compensateScroll(rowEl, scrollbarWidths);
 
-                     });
 
-                     // the scrollbar compensation might have changed text flow, which might affect height, so recalculate
 
-                     // and reapply the desired height to the scroller.
 
-                     scrollerHeight = this.computeScrollerHeight(viewHeight);
 
-                     this.scroller.setHeight(scrollerHeight);
 
-                 }
 
-                 // guarantees the same scrollbar widths
 
-                 this.scroller.lockOverflow(scrollbarWidths);
 
-                 // if there's any space below the slats, show the horizontal rule.
 
-                 // this won't cause any new overflow, because lockOverflow already called.
 
-                 if (this.timeGrid.getTotalSlatHeight() < scrollerHeight) {
 
-                     this.timeGrid.bottomRuleEl.style.display = '';
 
-                 }
 
-             }
 
-         };
 
-         // given a desired total height of the view, returns what the height of the scroller should be
 
-         AbstractTimeGridView.prototype.computeScrollerHeight = function (viewHeight) {
 
-             return viewHeight -
 
-                 core.subtractInnerElHeight(this.el, this.scroller.el); // everything that's NOT the scroller
 
-         };
 
-         /* Scroll
 
-         ------------------------------------------------------------------------------------------------------------------*/
 
-         // Computes the initial pre-configured scroll state prior to allowing the user to change it
 
-         AbstractTimeGridView.prototype.computeDateScroll = function (duration) {
 
-             var top = this.timeGrid.computeTimeTop(duration);
 
-             // zoom can give weird floating-point values. rather scroll a little bit further
 
-             top = Math.ceil(top);
 
-             if (top) {
 
-                 top++; // to overcome top border that slots beyond the first have. looks better
 
-             }
 
-             return { top: top };
 
-         };
 
-         AbstractTimeGridView.prototype.queryDateScroll = function () {
 
-             return { top: this.scroller.getScrollTop() };
 
-         };
 
-         AbstractTimeGridView.prototype.applyDateScroll = function (scroll) {
 
-             if (scroll.top !== undefined) {
 
-                 this.scroller.setScrollTop(scroll.top);
 
-             }
 
-         };
 
-         // Generates an HTML attribute string for setting the width of the axis, if it is known
 
-         AbstractTimeGridView.prototype.axisStyleAttr = function () {
 
-             if (this.axisWidth != null) {
 
-                 return 'style="width:' + this.axisWidth + 'px"';
 
-             }
 
-             return '';
 
-         };
 
-         return AbstractTimeGridView;
 
-     }(core.View));
 
-     AbstractTimeGridView.prototype.usesMinMaxTime = true; // indicates that minTime/maxTime affects rendering
 
-     var SimpleTimeGrid = /** @class */ (function (_super) {
 
-         __extends(SimpleTimeGrid, _super);
 
-         function SimpleTimeGrid(timeGrid) {
 
-             var _this = _super.call(this, timeGrid.el) || this;
 
-             _this.buildDayRanges = core.memoize(buildDayRanges);
 
-             _this.slicer = new TimeGridSlicer();
 
-             _this.timeGrid = timeGrid;
 
-             return _this;
 
-         }
 
-         SimpleTimeGrid.prototype.firstContext = function (context) {
 
-             context.calendar.registerInteractiveComponent(this, {
 
-                 el: this.timeGrid.el
 
-             });
 
-         };
 
-         SimpleTimeGrid.prototype.destroy = function () {
 
-             _super.prototype.destroy.call(this);
 
-             this.context.calendar.unregisterInteractiveComponent(this);
 
-         };
 
-         SimpleTimeGrid.prototype.render = function (props, context) {
 
-             var dateEnv = this.context.dateEnv;
 
-             var dateProfile = props.dateProfile, dayTable = props.dayTable;
 
-             var dayRanges = this.dayRanges = this.buildDayRanges(dayTable, dateProfile, dateEnv);
 
-             var timeGrid = this.timeGrid;
 
-             timeGrid.receiveContext(context); // hack because context is used in sliceProps
 
-             timeGrid.receiveProps(__assign({}, this.slicer.sliceProps(props, dateProfile, null, context.calendar, timeGrid, dayRanges), { dateProfile: dateProfile, cells: dayTable.cells[0] }), context);
 
-         };
 
-         SimpleTimeGrid.prototype.renderNowIndicator = function (date) {
 
-             this.timeGrid.renderNowIndicator(this.slicer.sliceNowDate(date, this.timeGrid, this.dayRanges), date);
 
-         };
 
-         SimpleTimeGrid.prototype.buildPositionCaches = function () {
 
-             this.timeGrid.buildPositionCaches();
 
-         };
 
-         SimpleTimeGrid.prototype.queryHit = function (positionLeft, positionTop) {
 
-             var rawHit = this.timeGrid.positionToHit(positionLeft, positionTop);
 
-             if (rawHit) {
 
-                 return {
 
-                     component: this.timeGrid,
 
-                     dateSpan: rawHit.dateSpan,
 
-                     dayEl: rawHit.dayEl,
 
-                     rect: {
 
-                         left: rawHit.relativeRect.left,
 
-                         right: rawHit.relativeRect.right,
 
-                         top: rawHit.relativeRect.top,
 
-                         bottom: rawHit.relativeRect.bottom
 
-                     },
 
-                     layer: 0
 
-                 };
 
-             }
 
-         };
 
-         return SimpleTimeGrid;
 
-     }(core.DateComponent));
 
-     function buildDayRanges(dayTable, dateProfile, dateEnv) {
 
-         var ranges = [];
 
-         for (var _i = 0, _a = dayTable.headerDates; _i < _a.length; _i++) {
 
-             var date = _a[_i];
 
-             ranges.push({
 
-                 start: dateEnv.add(date, dateProfile.minTime),
 
-                 end: dateEnv.add(date, dateProfile.maxTime)
 
-             });
 
-         }
 
-         return ranges;
 
-     }
 
-     var TimeGridSlicer = /** @class */ (function (_super) {
 
-         __extends(TimeGridSlicer, _super);
 
-         function TimeGridSlicer() {
 
-             return _super !== null && _super.apply(this, arguments) || this;
 
-         }
 
-         TimeGridSlicer.prototype.sliceRange = function (range, dayRanges) {
 
-             var segs = [];
 
-             for (var col = 0; col < dayRanges.length; col++) {
 
-                 var segRange = core.intersectRanges(range, dayRanges[col]);
 
-                 if (segRange) {
 
-                     segs.push({
 
-                         start: segRange.start,
 
-                         end: segRange.end,
 
-                         isStart: segRange.start.valueOf() === range.start.valueOf(),
 
-                         isEnd: segRange.end.valueOf() === range.end.valueOf(),
 
-                         col: col
 
-                     });
 
-                 }
 
-             }
 
-             return segs;
 
-         };
 
-         return TimeGridSlicer;
 
-     }(core.Slicer));
 
-     var TimeGridView = /** @class */ (function (_super) {
 
-         __extends(TimeGridView, _super);
 
-         function TimeGridView() {
 
-             var _this = _super !== null && _super.apply(this, arguments) || this;
 
-             _this.buildDayTable = core.memoize(buildDayTable);
 
-             return _this;
 
-         }
 
-         TimeGridView.prototype.render = function (props, context) {
 
-             _super.prototype.render.call(this, props, context); // for flags for updateSize. also _renderSkeleton/_unrenderSkeleton
 
-             var _a = this.props, dateProfile = _a.dateProfile, dateProfileGenerator = _a.dateProfileGenerator;
 
-             var nextDayThreshold = context.nextDayThreshold;
 
-             var dayTable = this.buildDayTable(dateProfile, dateProfileGenerator);
 
-             var splitProps = this.splitter.splitProps(props);
 
-             if (this.header) {
 
-                 this.header.receiveProps({
 
-                     dateProfile: dateProfile,
 
-                     dates: dayTable.headerDates,
 
-                     datesRepDistinctDays: true,
 
-                     renderIntroHtml: this.renderHeadIntroHtml
 
-                 }, context);
 
-             }
 
-             this.simpleTimeGrid.receiveProps(__assign({}, splitProps['timed'], { dateProfile: dateProfile,
 
-                 dayTable: dayTable }), context);
 
-             if (this.simpleDayGrid) {
 
-                 this.simpleDayGrid.receiveProps(__assign({}, splitProps['allDay'], { dateProfile: dateProfile,
 
-                     dayTable: dayTable,
 
-                     nextDayThreshold: nextDayThreshold, isRigid: false }), context);
 
-             }
 
-             this.startNowIndicator(dateProfile, dateProfileGenerator);
 
-         };
 
-         TimeGridView.prototype._renderSkeleton = function (context) {
 
-             _super.prototype._renderSkeleton.call(this, context);
 
-             if (context.options.columnHeader) {
 
-                 this.header = new core.DayHeader(this.el.querySelector('.fc-head-container'));
 
-             }
 
-             this.simpleTimeGrid = new SimpleTimeGrid(this.timeGrid);
 
-             if (this.dayGrid) {
 
-                 this.simpleDayGrid = new daygrid.SimpleDayGrid(this.dayGrid);
 
-             }
 
-         };
 
-         TimeGridView.prototype._unrenderSkeleton = function () {
 
-             _super.prototype._unrenderSkeleton.call(this);
 
-             if (this.header) {
 
-                 this.header.destroy();
 
-             }
 
-             this.simpleTimeGrid.destroy();
 
-             if (this.simpleDayGrid) {
 
-                 this.simpleDayGrid.destroy();
 
-             }
 
-         };
 
-         TimeGridView.prototype.renderNowIndicator = function (date) {
 
-             this.simpleTimeGrid.renderNowIndicator(date);
 
-         };
 
-         return TimeGridView;
 
-     }(AbstractTimeGridView));
 
-     function buildDayTable(dateProfile, dateProfileGenerator) {
 
-         var daySeries = new core.DaySeries(dateProfile.renderRange, dateProfileGenerator);
 
-         return new core.DayTable(daySeries, false);
 
-     }
 
-     var main = core.createPlugin({
 
-         defaultView: 'timeGridWeek',
 
-         views: {
 
-             timeGrid: {
 
-                 class: TimeGridView,
 
-                 allDaySlot: true,
 
-                 slotDuration: '00:30:00',
 
-                 slotEventOverlap: true // a bad name. confused with overlap/constraint system
 
-             },
 
-             timeGridDay: {
 
-                 type: 'timeGrid',
 
-                 duration: { days: 1 }
 
-             },
 
-             timeGridWeek: {
 
-                 type: 'timeGrid',
 
-                 duration: { weeks: 1 }
 
-             }
 
-         }
 
-     });
 
-     exports.AbstractTimeGridView = AbstractTimeGridView;
 
-     exports.TimeGrid = TimeGrid;
 
-     exports.TimeGridSlicer = TimeGridSlicer;
 
-     exports.TimeGridView = TimeGridView;
 
-     exports.buildDayRanges = buildDayRanges;
 
-     exports.buildDayTable = buildDayTable;
 
-     exports.default = main;
 
-     Object.defineProperty(exports, '__esModule', { value: true });
 
- }));
 
 
  |