AdminLTE/plugins/fullcalendar-daygrid/main.js.map

1 line
127 KiB
Plaintext

{"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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"}