Socket
Socket
Sign inDemoInstall

@fullcalendar/daygrid

Package Overview
Dependencies
Maintainers
1
Versions
60
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@fullcalendar/daygrid - npm Package Compare versions

Comparing version 5.11.2 to 6.0.0-beta.1

798

main.cjs.js
/*!
FullCalendar v5.11.2
FullCalendar v6.0.0-beta.1
Docs & License: https://fullcalendar.io/

@@ -11,4 +11,2 @@ (c) 2022 Adam Shaw

var common = require('@fullcalendar/common');
var tslib = require('tslib');
;

@@ -19,13 +17,11 @@ /* An abstract class for the daygrid views, as well as month view. Renders one or more rows of day cells.

// It is responsible for managing width/height.
var TableView = /** @class */ (function (_super) {
tslib.__extends(TableView, _super);
function TableView() {
var _this = _super !== null && _super.apply(this, arguments) || this;
_this.headerElRef = common.createRef();
return _this;
class TableView extends common.DateComponent {
constructor() {
super(...arguments);
this.headerElRef = common.createRef();
}
TableView.prototype.renderSimpleLayout = function (headerRowContent, bodyContent) {
var _a = this, props = _a.props, context = _a.context;
var sections = [];
var stickyHeaderDates = common.getStickyHeaderDates(context.options);
renderSimpleLayout(headerRowContent, bodyContent) {
let { props, context } = this;
let sections = [];
let stickyHeaderDates = common.getStickyHeaderDates(context.options);
if (headerRowContent) {

@@ -49,14 +45,14 @@ sections.push({

});
return (common.createElement(common.ViewRoot, { viewSpec: context.viewSpec }, function (rootElRef, classNames) { return (common.createElement("div", { ref: rootElRef, className: ['fc-daygrid'].concat(classNames).join(' ') },
common.createElement(common.SimpleScrollGrid, { liquid: !props.isHeightAuto && !props.forPrint, collapsibleWidth: props.forPrint, cols: [] /* TODO: make optional? */, sections: sections }))); }));
};
TableView.prototype.renderHScrollLayout = function (headerRowContent, bodyContent, colCnt, dayMinWidth) {
var ScrollGrid = this.context.pluginHooks.scrollGridImpl;
return (common.createElement(common.ViewRoot, { viewSpec: context.viewSpec }, (rootElRef, classNames) => (common.createElement("div", { ref: rootElRef, className: ['fc-daygrid'].concat(classNames).join(' ') },
common.createElement(common.SimpleScrollGrid, { liquid: !props.isHeightAuto && !props.forPrint, collapsibleWidth: props.forPrint, cols: [] /* TODO: make optional? */, sections: sections })))));
}
renderHScrollLayout(headerRowContent, bodyContent, colCnt, dayMinWidth) {
let ScrollGrid = this.context.pluginHooks.scrollGridImpl;
if (!ScrollGrid) {
throw new Error('No ScrollGrid implementation');
}
var _a = this, props = _a.props, context = _a.context;
var stickyHeaderDates = !props.forPrint && common.getStickyHeaderDates(context.options);
var stickyFooterScrollbar = !props.forPrint && common.getStickyFooterScrollbar(context.options);
var sections = [];
let { props, context } = this;
let stickyHeaderDates = !props.forPrint && common.getStickyHeaderDates(context.options);
let stickyFooterScrollbar = !props.forPrint && common.getStickyFooterScrollbar(context.options);
let sections = [];
if (headerRowContent) {

@@ -95,15 +91,13 @@ sections.push({

}
return (common.createElement(common.ViewRoot, { viewSpec: context.viewSpec }, function (rootElRef, classNames) { return (common.createElement("div", { ref: rootElRef, className: ['fc-daygrid'].concat(classNames).join(' ') },
common.createElement(ScrollGrid, { liquid: !props.isHeightAuto && !props.forPrint, collapsibleWidth: props.forPrint, colGroups: [{ cols: [{ span: colCnt, minWidth: dayMinWidth }] }], sections: sections }))); }));
};
return TableView;
}(common.DateComponent));
return (common.createElement(common.ViewRoot, { viewSpec: context.viewSpec }, (rootElRef, classNames) => (common.createElement("div", { ref: rootElRef, className: ['fc-daygrid'].concat(classNames).join(' ') },
common.createElement(ScrollGrid, { liquid: !props.isHeightAuto && !props.forPrint, collapsibleWidth: props.forPrint, colGroups: [{ cols: [{ span: colCnt, minWidth: dayMinWidth }] }], sections: sections })))));
}
}
function splitSegsByRow(segs, rowCnt) {
var byRow = [];
for (var i = 0; i < rowCnt; i += 1) {
let byRow = [];
for (let i = 0; i < rowCnt; i += 1) {
byRow[i] = [];
}
for (var _i = 0, segs_1 = segs; _i < segs_1.length; _i++) {
var seg = segs_1[_i];
for (let seg of segs) {
byRow[seg.row].push(seg);

@@ -114,8 +108,7 @@ }

function splitSegsByFirstCol(segs, colCnt) {
var byCol = [];
for (var i = 0; i < colCnt; i += 1) {
let byCol = [];
for (let i = 0; i < colCnt; i += 1) {
byCol[i] = [];
}
for (var _i = 0, segs_2 = segs; _i < segs_2.length; _i++) {
var seg = segs_2[_i];
for (let seg of segs) {
byCol[seg.firstCol].push(seg);

@@ -126,5 +119,5 @@ }

function splitInteractionByRow(ui, rowCnt) {
var byRow = [];
let byRow = [];
if (!ui) {
for (var i = 0; i < rowCnt; i += 1) {
for (let i = 0; i < rowCnt; i += 1) {
byRow[i] = null;

@@ -134,3 +127,3 @@ }

else {
for (var i = 0; i < rowCnt; i += 1) {
for (let i = 0; i < rowCnt; i += 1) {
byRow[i] = {

@@ -142,4 +135,3 @@ affectedInstances: ui.affectedInstances,

}
for (var _i = 0, _a = ui.segs; _i < _a.length; _i++) {
var seg = _a[_i];
for (let seg of ui.segs) {
byRow[seg.row].segs.push(seg);

@@ -151,15 +143,10 @@ }

var TableCellTop = /** @class */ (function (_super) {
tslib.__extends(TableCellTop, _super);
function TableCellTop() {
return _super !== null && _super.apply(this, arguments) || this;
class TableCellTop extends common.BaseComponent {
render() {
let { props } = this;
let navLinkAttrs = common.buildNavLinkAttrs(this.context, props.date);
return (common.createElement(common.DayCellContent, { date: props.date, dateProfile: props.dateProfile, todayRange: props.todayRange, showDayNumber: props.showDayNumber, extraHookProps: props.extraHookProps, defaultContent: renderTopInner }, (innerElRef, innerContent) => ((innerContent || props.forceDayTop) && (common.createElement("div", { className: "fc-daygrid-day-top", ref: innerElRef },
common.createElement("a", Object.assign({ id: props.dayNumberId, className: "fc-daygrid-day-number" }, navLinkAttrs), innerContent || common.createElement(common.Fragment, null, "\u00A0")))))));
}
TableCellTop.prototype.render = function () {
var props = this.props;
var navLinkAttrs = common.buildNavLinkAttrs(this.context, props.date);
return (common.createElement(common.DayCellContent, { date: props.date, dateProfile: props.dateProfile, todayRange: props.todayRange, showDayNumber: props.showDayNumber, extraHookProps: props.extraHookProps, defaultContent: renderTopInner }, function (innerElRef, innerContent) { return ((innerContent || props.forceDayTop) && (common.createElement("div", { className: "fc-daygrid-day-top", ref: innerElRef },
common.createElement("a", tslib.__assign({ id: props.dayNumberId, className: "fc-daygrid-day-number" }, navLinkAttrs), innerContent || common.createElement(common.Fragment, null, "\u00A0"))))); }));
};
return TableCellTop;
}(common.BaseComponent));
}
function renderTopInner(props) {

@@ -169,3 +156,3 @@ return props.dayNumberText;

var DEFAULT_TABLE_EVENT_TIME_FORMAT = common.createFormatter({
const DEFAULT_TABLE_EVENT_TIME_FORMAT = common.createFormatter({
hour: 'numeric',

@@ -177,3 +164,3 @@ minute: '2-digit',

function hasListItemDisplay(seg) {
var display = seg.eventRange.ui.display;
let { display } = seg.eventRange.ui;
return display === 'list-item' || (display === 'auto' &&

@@ -187,28 +174,18 @@ !seg.eventRange.def.allDay &&

var TableBlockEvent = /** @class */ (function (_super) {
tslib.__extends(TableBlockEvent, _super);
function TableBlockEvent() {
return _super !== null && _super.apply(this, arguments) || this;
class TableBlockEvent extends common.BaseComponent {
render() {
let { props } = this;
return (common.createElement(common.StandardEvent, Object.assign({}, props, { extraClassNames: ['fc-daygrid-event', 'fc-daygrid-block-event', 'fc-h-event'], defaultTimeFormat: DEFAULT_TABLE_EVENT_TIME_FORMAT, defaultDisplayEventEnd: props.defaultDisplayEventEnd, disableResizing: !props.seg.eventRange.def.allDay })));
}
TableBlockEvent.prototype.render = function () {
var props = this.props;
return (common.createElement(common.StandardEvent, tslib.__assign({}, props, { extraClassNames: ['fc-daygrid-event', 'fc-daygrid-block-event', 'fc-h-event'], defaultTimeFormat: DEFAULT_TABLE_EVENT_TIME_FORMAT, defaultDisplayEventEnd: props.defaultDisplayEventEnd, disableResizing: !props.seg.eventRange.def.allDay })));
};
return TableBlockEvent;
}(common.BaseComponent));
}
var TableListItemEvent = /** @class */ (function (_super) {
tslib.__extends(TableListItemEvent, _super);
function TableListItemEvent() {
return _super !== null && _super.apply(this, arguments) || this;
class TableListItemEvent extends common.BaseComponent {
render() {
let { props, context } = this;
let timeFormat = context.options.eventTimeFormat || DEFAULT_TABLE_EVENT_TIME_FORMAT;
let timeText = common.buildSegTimeText(props.seg, timeFormat, context, true, props.defaultDisplayEventEnd);
return (common.createElement(common.EventRoot, { seg: props.seg, timeText: timeText, defaultContent: renderInnerContent, isDragging: props.isDragging, isResizing: false, isDateSelecting: false, isSelected: props.isSelected, isPast: props.isPast, isFuture: props.isFuture, isToday: props.isToday }, (rootElRef, classNames, innerElRef, innerContent) => ( // we don't use styles!
common.createElement("a", Object.assign({ className: ['fc-daygrid-event', 'fc-daygrid-dot-event'].concat(classNames).join(' '), ref: rootElRef }, common.getSegAnchorAttrs(props.seg, context)), innerContent))));
}
TableListItemEvent.prototype.render = function () {
var _a = this, props = _a.props, context = _a.context;
var timeFormat = context.options.eventTimeFormat || DEFAULT_TABLE_EVENT_TIME_FORMAT;
var timeText = common.buildSegTimeText(props.seg, timeFormat, context, true, props.defaultDisplayEventEnd);
return (common.createElement(common.EventRoot, { seg: props.seg, timeText: timeText, defaultContent: renderInnerContent, isDragging: props.isDragging, isResizing: false, isDateSelecting: false, isSelected: props.isSelected, isPast: props.isPast, isFuture: props.isFuture, isToday: props.isToday }, function (rootElRef, classNames, innerElRef, innerContent) { return ( // we don't use styles!
common.createElement("a", tslib.__assign({ className: ['fc-daygrid-event', 'fc-daygrid-dot-event'].concat(classNames).join(' '), ref: rootElRef }, common.getSegAnchorAttrs(props.seg, context)), innerContent)); }));
};
return TableListItemEvent;
}(common.BaseComponent));
}
function renderInnerContent(innerProps) {

@@ -221,31 +198,27 @@ return (common.createElement(common.Fragment, null,

var TableCellMoreLink = /** @class */ (function (_super) {
tslib.__extends(TableCellMoreLink, _super);
function TableCellMoreLink() {
var _this = _super !== null && _super.apply(this, arguments) || this;
_this.compileSegs = common.memoize(compileSegs);
return _this;
class TableCellMoreLink extends common.BaseComponent {
constructor() {
super(...arguments);
this.compileSegs = common.memoize(compileSegs);
}
TableCellMoreLink.prototype.render = function () {
var props = this.props;
var _a = this.compileSegs(props.singlePlacements), allSegs = _a.allSegs, invisibleSegs = _a.invisibleSegs;
return (common.createElement(common.MoreLinkRoot, { dateProfile: props.dateProfile, todayRange: props.todayRange, allDayDate: props.allDayDate, moreCnt: props.moreCnt, allSegs: allSegs, hiddenSegs: invisibleSegs, alignmentElRef: props.alignmentElRef, alignGridTop: props.alignGridTop, extraDateSpan: props.extraDateSpan, popoverContent: function () {
var isForcedInvisible = (props.eventDrag ? props.eventDrag.affectedInstances : null) ||
render() {
let { props } = this;
let { allSegs, invisibleSegs } = this.compileSegs(props.singlePlacements);
return (common.createElement(common.MoreLinkRoot, { dateProfile: props.dateProfile, todayRange: props.todayRange, allDayDate: props.allDayDate, moreCnt: props.moreCnt, allSegs: allSegs, hiddenSegs: invisibleSegs, alignmentElRef: props.alignmentElRef, alignGridTop: props.alignGridTop, extraDateSpan: props.extraDateSpan, popoverContent: () => {
let isForcedInvisible = (props.eventDrag ? props.eventDrag.affectedInstances : null) ||
(props.eventResize ? props.eventResize.affectedInstances : null) ||
{};
return (common.createElement(common.Fragment, null, allSegs.map(function (seg) {
var instanceId = seg.eventRange.instance.instanceId;
return (common.createElement(common.Fragment, null, allSegs.map((seg) => {
let instanceId = seg.eventRange.instance.instanceId;
return (common.createElement("div", { className: "fc-daygrid-event-harness", key: instanceId, style: {
visibility: isForcedInvisible[instanceId] ? 'hidden' : '',
} }, hasListItemDisplay(seg) ? (common.createElement(TableListItemEvent, tslib.__assign({ seg: seg, isDragging: false, isSelected: instanceId === props.eventSelection, defaultDisplayEventEnd: false }, common.getSegMeta(seg, props.todayRange)))) : (common.createElement(TableBlockEvent, tslib.__assign({ seg: seg, isDragging: false, isResizing: false, isDateSelecting: false, isSelected: instanceId === props.eventSelection, defaultDisplayEventEnd: false }, common.getSegMeta(seg, props.todayRange))))));
} }, hasListItemDisplay(seg) ? (common.createElement(TableListItemEvent, Object.assign({ seg: seg, isDragging: false, isSelected: instanceId === props.eventSelection, defaultDisplayEventEnd: false }, common.getSegMeta(seg, props.todayRange)))) : (common.createElement(TableBlockEvent, Object.assign({ seg: seg, isDragging: false, isResizing: false, isDateSelecting: false, isSelected: instanceId === props.eventSelection, defaultDisplayEventEnd: false }, common.getSegMeta(seg, props.todayRange))))));
})));
} }, function (rootElRef, classNames, innerElRef, innerContent, handleClick, title, isExpanded, popoverId) { return (common.createElement("a", tslib.__assign({ ref: rootElRef, className: ['fc-daygrid-more-link'].concat(classNames).join(' '), title: title, "aria-expanded": isExpanded, "aria-controls": popoverId }, common.createAriaClickAttrs(handleClick)), innerContent)); }));
};
return TableCellMoreLink;
}(common.BaseComponent));
} }, (rootElRef, classNames, innerElRef, innerContent, handleClick, title, isExpanded, popoverId) => (common.createElement("a", Object.assign({ ref: rootElRef, className: ['fc-daygrid-more-link'].concat(classNames).join(' '), title: title, "aria-expanded": isExpanded, "aria-controls": popoverId }, common.createAriaClickAttrs(handleClick)), innerContent))));
}
}
function compileSegs(singlePlacements) {
var allSegs = [];
var invisibleSegs = [];
for (var _i = 0, singlePlacements_1 = singlePlacements; _i < singlePlacements_1.length; _i++) {
var placement = singlePlacements_1[_i];
let allSegs = [];
let invisibleSegs = [];
for (let placement of singlePlacements) {
allSegs.push(placement.seg);

@@ -256,27 +229,25 @@ if (!placement.isVisible) {

}
return { allSegs: allSegs, invisibleSegs: invisibleSegs };
return { allSegs, invisibleSegs };
}
var DEFAULT_WEEK_NUM_FORMAT = common.createFormatter({ week: 'narrow' });
var TableCell = /** @class */ (function (_super) {
tslib.__extends(TableCell, _super);
function TableCell() {
var _this = _super !== null && _super.apply(this, arguments) || this;
_this.rootElRef = common.createRef();
_this.state = {
const DEFAULT_WEEK_NUM_FORMAT = common.createFormatter({ week: 'narrow' });
class TableCell extends common.DateComponent {
constructor() {
super(...arguments);
this.rootElRef = common.createRef();
this.state = {
dayNumberId: common.getUniqueDomId(),
};
_this.handleRootEl = function (el) {
common.setRef(_this.rootElRef, el);
common.setRef(_this.props.elRef, el);
this.handleRootEl = (el) => {
common.setRef(this.rootElRef, el);
common.setRef(this.props.elRef, el);
};
return _this;
}
TableCell.prototype.render = function () {
var _a = this, context = _a.context, props = _a.props, state = _a.state, rootElRef = _a.rootElRef;
var date = props.date, dateProfile = props.dateProfile;
var navLinkAttrs = common.buildNavLinkAttrs(context, date, 'week');
return (common.createElement(common.DayCellRoot, { date: date, dateProfile: dateProfile, todayRange: props.todayRange, showDayNumber: props.showDayNumber, extraHookProps: props.extraHookProps, elRef: this.handleRootEl }, function (dayElRef, dayClassNames, rootDataAttrs, isDisabled) { return (common.createElement("td", tslib.__assign({ ref: dayElRef, role: "gridcell", className: ['fc-daygrid-day'].concat(dayClassNames, props.extraClassNames || []).join(' ') }, rootDataAttrs, props.extraDataAttrs, (props.showDayNumber ? { 'aria-labelledby': state.dayNumberId } : {})),
render() {
let { context, props, state, rootElRef } = this;
let { date, dateProfile } = props;
let navLinkAttrs = common.buildNavLinkAttrs(context, date, 'week');
return (common.createElement(common.DayCellRoot, { date: date, dateProfile: dateProfile, todayRange: props.todayRange, showDayNumber: props.showDayNumber, extraHookProps: props.extraHookProps, elRef: this.handleRootEl }, (dayElRef, dayClassNames, rootDataAttrs, isDisabled) => (common.createElement("td", Object.assign({ ref: dayElRef, role: "gridcell", className: ['fc-daygrid-day'].concat(dayClassNames, props.extraClassNames || []).join(' ') }, rootDataAttrs, props.extraDataAttrs, (props.showDayNumber ? { 'aria-labelledby': state.dayNumberId } : {})),
common.createElement("div", { className: "fc-daygrid-day-frame fc-scrollgrid-sync-inner", ref: props.innerElRef /* different from hook system! RENAME */ },
props.showWeekNumber && (common.createElement(common.WeekNumberRoot, { date: date, defaultFormat: DEFAULT_WEEK_NUM_FORMAT }, function (weekElRef, weekClassNames, innerElRef, innerContent) { return (common.createElement("a", tslib.__assign({ ref: weekElRef, className: ['fc-daygrid-week-number'].concat(weekClassNames).join(' ') }, navLinkAttrs), innerContent)); })),
props.showWeekNumber && (common.createElement(common.WeekNumberRoot, { date: date, defaultFormat: DEFAULT_WEEK_NUM_FORMAT }, (weekElRef, weekClassNames, innerElRef, innerContent) => (common.createElement("a", Object.assign({ ref: weekElRef, className: ['fc-daygrid-week-number'].concat(weekClassNames).join(' ') }, navLinkAttrs), innerContent)))),
!isDisabled && (common.createElement(TableCellTop, { date: date, dateProfile: dateProfile, showDayNumber: props.showDayNumber, dayNumberId: state.dayNumberId, forceDayTop: props.forceDayTop, todayRange: props.todayRange, extraHookProps: props.extraHookProps })),

@@ -287,10 +258,9 @@ common.createElement("div", { className: "fc-daygrid-day-events", ref: props.fgContentElRef },

common.createElement(TableCellMoreLink, { allDayDate: date, singlePlacements: props.singlePlacements, moreCnt: props.moreCnt, alignmentElRef: rootElRef, alignGridTop: !props.showDayNumber, extraDateSpan: props.extraDateSpan, dateProfile: props.dateProfile, eventSelection: props.eventSelection, eventDrag: props.eventDrag, eventResize: props.eventResize, todayRange: props.todayRange }))),
common.createElement("div", { className: "fc-daygrid-day-bg" }, props.bgContent)))); }));
};
return TableCell;
}(common.DateComponent));
common.createElement("div", { className: "fc-daygrid-day-bg" }, props.bgContent))))));
}
}
function computeFgSegPlacement(segs, // assumed already sorted
dayMaxEvents, dayMaxEventRows, strictOrder, eventInstanceHeights, maxContentHeight, cells) {
var hierarchy = new DayGridSegHierarchy();
let hierarchy = new DayGridSegHierarchy();
hierarchy.allowReslicing = true;

@@ -310,8 +280,8 @@ hierarchy.strictOrder = strictOrder;

// create segInputs only for segs with known heights
var segInputs = [];
var unknownHeightSegs = [];
for (var i = 0; i < segs.length; i += 1) {
var seg = segs[i];
var instanceId = seg.eventRange.instance.instanceId;
var eventHeight = eventInstanceHeights[instanceId];
let segInputs = [];
let unknownHeightSegs = [];
for (let i = 0; i < segs.length; i += 1) {
let seg = segs[i];
let { instanceId } = seg.eventRange.instance;
let eventHeight = eventInstanceHeights[instanceId];
if (eventHeight != null) {

@@ -331,12 +301,11 @@ segInputs.push({

}
var hiddenEntries = hierarchy.addSegs(segInputs);
var segRects = hierarchy.toRects();
var _a = placeRects(segRects, segs, cells), singleColPlacements = _a.singleColPlacements, multiColPlacements = _a.multiColPlacements, leftoverMargins = _a.leftoverMargins;
var moreCnts = [];
var moreMarginTops = [];
let hiddenEntries = hierarchy.addSegs(segInputs);
let segRects = hierarchy.toRects();
let { singleColPlacements, multiColPlacements, leftoverMargins } = placeRects(segRects, segs, cells);
let moreCnts = [];
let moreMarginTops = [];
// add segs with unknown heights
for (var _i = 0, unknownHeightSegs_1 = unknownHeightSegs; _i < unknownHeightSegs_1.length; _i++) {
var seg = unknownHeightSegs_1[_i];
for (let seg of unknownHeightSegs) {
multiColPlacements[seg.firstCol].push({
seg: seg,
seg,
isVisible: false,

@@ -347,3 +316,3 @@ isAbsolute: true,

});
for (var col = seg.firstCol; col <= seg.lastCol; col += 1) {
for (let col = seg.firstCol; col <= seg.lastCol; col += 1) {
singleColPlacements[col].push({

@@ -359,9 +328,8 @@ seg: resliceSeg(seg, col, col + 1, cells),

// add the hidden entries
for (var col = 0; col < cells.length; col += 1) {
for (let col = 0; col < cells.length; col += 1) {
moreCnts.push(0);
}
for (var _b = 0, hiddenEntries_1 = hiddenEntries; _b < hiddenEntries_1.length; _b++) {
var hiddenEntry = hiddenEntries_1[_b];
var seg = segs[hiddenEntry.index];
var hiddenSpan = hiddenEntry.span;
for (let hiddenEntry of hiddenEntries) {
let seg = segs[hiddenEntry.index];
let hiddenSpan = hiddenEntry.span;
multiColPlacements[hiddenSpan.start].push({

@@ -374,3 +342,3 @@ seg: resliceSeg(seg, hiddenSpan.start, hiddenSpan.end, cells),

});
for (var col = hiddenSpan.start; col < hiddenSpan.end; col += 1) {
for (let col = hiddenSpan.start; col < hiddenSpan.end; col += 1) {
moreCnts[col] += 1;

@@ -387,22 +355,21 @@ singleColPlacements[col].push({

// deal with leftover margins
for (var col = 0; col < cells.length; col += 1) {
for (let col = 0; col < cells.length; col += 1) {
moreMarginTops.push(leftoverMargins[col]);
}
return { singleColPlacements: singleColPlacements, multiColPlacements: multiColPlacements, moreCnts: moreCnts, moreMarginTops: moreMarginTops };
return { singleColPlacements, multiColPlacements, moreCnts, moreMarginTops };
}
// rects ordered by top coord, then left
function placeRects(allRects, segs, cells) {
var rectsByEachCol = groupRectsByEachCol(allRects, cells.length);
var singleColPlacements = [];
var multiColPlacements = [];
var leftoverMargins = [];
for (var col = 0; col < cells.length; col += 1) {
var rects = rectsByEachCol[col];
let rectsByEachCol = groupRectsByEachCol(allRects, cells.length);
let singleColPlacements = [];
let multiColPlacements = [];
let leftoverMargins = [];
for (let col = 0; col < cells.length; col += 1) {
let rects = rectsByEachCol[col];
// compute all static segs in singlePlacements
var singlePlacements = [];
var currentHeight = 0;
var currentMarginTop = 0;
for (var _i = 0, rects_1 = rects; _i < rects_1.length; _i++) {
var rect = rects_1[_i];
var seg = segs[rect.index];
let singlePlacements = [];
let currentHeight = 0;
let currentMarginTop = 0;
for (let rect of rects) {
let seg = segs[rect.index];
singlePlacements.push({

@@ -418,10 +385,9 @@ seg: resliceSeg(seg, col, col + 1, cells),

// compute mixed static/absolute segs in multiPlacements
var multiPlacements = [];
let multiPlacements = [];
currentHeight = 0;
currentMarginTop = 0;
for (var _a = 0, rects_2 = rects; _a < rects_2.length; _a++) {
var rect = rects_2[_a];
var seg = segs[rect.index];
var isAbsolute = rect.span.end - rect.span.start > 1; // multi-column?
var isFirstCol = rect.span.start === col;
for (let rect of rects) {
let seg = segs[rect.index];
let isAbsolute = rect.span.end - rect.span.start > 1; // multi-column?
let isFirstCol = rect.span.start === col;
currentMarginTop += rect.levelCoord - currentHeight; // amount of space since bottom of previous seg

@@ -456,12 +422,11 @@ currentHeight = rect.levelCoord + rect.thickness; // height will now be bottom of current seg

}
return { singleColPlacements: singleColPlacements, multiColPlacements: multiColPlacements, leftoverMargins: leftoverMargins };
return { singleColPlacements, multiColPlacements, leftoverMargins };
}
function groupRectsByEachCol(rects, colCnt) {
var rectsByEachCol = [];
for (var col = 0; col < colCnt; col += 1) {
let rectsByEachCol = [];
for (let col = 0; col < colCnt; col += 1) {
rectsByEachCol.push([]);
}
for (var _i = 0, rects_3 = rects; _i < rects_3.length; _i++) {
var rect = rects_3[_i];
for (var col = rect.span.start; col < rect.span.end; col += 1) {
for (let rect of rects) {
for (let col = rect.span.start; col < rect.span.end; col += 1) {
rectsByEachCol[col].push(rect);

@@ -476,11 +441,11 @@ }

}
var eventRange = seg.eventRange;
var origRange = eventRange.range;
var slicedRange = common.intersectRanges(origRange, {
let eventRange = seg.eventRange;
let origRange = eventRange.range;
let slicedRange = common.intersectRanges(origRange, {
start: cells[spanStart].date,
end: common.addDays(cells[spanEnd - 1].date, 1),
});
return tslib.__assign(tslib.__assign({}, seg), { firstCol: spanStart, lastCol: spanEnd - 1, eventRange: {
return Object.assign(Object.assign({}, seg), { firstCol: spanStart, lastCol: spanEnd - 1, eventRange: {
def: eventRange.def,
ui: tslib.__assign(tslib.__assign({}, eventRange.ui), { durationEditable: false }),
ui: Object.assign(Object.assign({}, eventRange.ui), { durationEditable: false }),
instance: eventRange.instance,

@@ -490,33 +455,30 @@ range: slicedRange,

}
var DayGridSegHierarchy = /** @class */ (function (_super) {
tslib.__extends(DayGridSegHierarchy, _super);
function DayGridSegHierarchy() {
var _this = _super !== null && _super.apply(this, arguments) || this;
class DayGridSegHierarchy extends common.SegHierarchy {
constructor() {
super(...arguments);
// config
_this.hiddenConsumes = false;
this.hiddenConsumes = false;
// allows us to keep hidden entries in the hierarchy so they take up space
_this.forceHidden = {};
return _this;
this.forceHidden = {};
}
DayGridSegHierarchy.prototype.addSegs = function (segInputs) {
var _this = this;
var hiddenSegs = _super.prototype.addSegs.call(this, segInputs);
var entriesByLevel = this.entriesByLevel;
var excludeHidden = function (entry) { return !_this.forceHidden[common.buildEntryKey(entry)]; };
addSegs(segInputs) {
const hiddenSegs = super.addSegs(segInputs);
const { entriesByLevel } = this;
const excludeHidden = (entry) => !this.forceHidden[common.buildEntryKey(entry)];
// remove the forced-hidden segs
for (var level = 0; level < entriesByLevel.length; level += 1) {
for (let level = 0; level < entriesByLevel.length; level += 1) {
entriesByLevel[level] = entriesByLevel[level].filter(excludeHidden);
}
return hiddenSegs;
};
DayGridSegHierarchy.prototype.handleInvalidInsertion = function (insertion, entry, hiddenEntries) {
var _a = this, entriesByLevel = _a.entriesByLevel, forceHidden = _a.forceHidden;
var touchingEntry = insertion.touchingEntry, touchingLevel = insertion.touchingLevel, touchingLateral = insertion.touchingLateral;
}
handleInvalidInsertion(insertion, entry, hiddenEntries) {
const { entriesByLevel, forceHidden } = this;
const { touchingEntry, touchingLevel, touchingLateral } = insertion;
if (this.hiddenConsumes && touchingEntry) {
var touchingEntryId = common.buildEntryKey(touchingEntry);
const touchingEntryId = common.buildEntryKey(touchingEntry);
// if not already hidden
if (!forceHidden[touchingEntryId]) {
if (this.allowReslicing) {
var placeholderEntry = tslib.__assign(tslib.__assign({}, touchingEntry), { span: common.intersectSpans(touchingEntry.span, entry.span) });
var placeholderEntryId = common.buildEntryKey(placeholderEntry);
const placeholderEntry = Object.assign(Object.assign({}, touchingEntry), { span: common.intersectSpans(touchingEntry.span, entry.span) });
const placeholderEntryId = common.buildEntryKey(placeholderEntry);
forceHidden[placeholderEntryId] = true;

@@ -532,17 +494,15 @@ entriesByLevel[touchingLevel][touchingLateral] = placeholderEntry; // replace touchingEntry with our placeholder

}
return _super.prototype.handleInvalidInsertion.call(this, insertion, entry, hiddenEntries);
};
return DayGridSegHierarchy;
}(common.SegHierarchy));
return super.handleInvalidInsertion(insertion, entry, hiddenEntries);
}
}
var TableRow = /** @class */ (function (_super) {
tslib.__extends(TableRow, _super);
function TableRow() {
var _this = _super !== null && _super.apply(this, arguments) || this;
_this.cellElRefs = new common.RefMap(); // the <td>
_this.frameElRefs = new common.RefMap(); // the fc-daygrid-day-frame
_this.fgElRefs = new common.RefMap(); // the fc-daygrid-day-events
_this.segHarnessRefs = new common.RefMap(); // indexed by "instanceId:firstCol"
_this.rootElRef = common.createRef();
_this.state = {
class TableRow extends common.DateComponent {
constructor() {
super(...arguments);
this.cellElRefs = new common.RefMap(); // the <td>
this.frameElRefs = new common.RefMap(); // the fc-daygrid-day-frame
this.fgElRefs = new common.RefMap(); // the fc-daygrid-day-events
this.segHarnessRefs = new common.RefMap(); // indexed by "instanceId:firstCol"
this.rootElRef = common.createRef();
this.state = {
framePositions: null,

@@ -552,15 +512,13 @@ maxContentHeight: null,

};
return _this;
}
TableRow.prototype.render = function () {
var _this = this;
var _a = this, props = _a.props, state = _a.state, context = _a.context;
var options = context.options;
var colCnt = props.cells.length;
var businessHoursByCol = splitSegsByFirstCol(props.businessHourSegs, colCnt);
var bgEventSegsByCol = splitSegsByFirstCol(props.bgEventSegs, colCnt);
var highlightSegsByCol = splitSegsByFirstCol(this.getHighlightSegs(), colCnt);
var mirrorSegsByCol = splitSegsByFirstCol(this.getMirrorSegs(), colCnt);
var _b = computeFgSegPlacement(common.sortEventSegs(props.fgEventSegs, options.eventOrder), props.dayMaxEvents, props.dayMaxEventRows, options.eventOrderStrict, state.eventInstanceHeights, state.maxContentHeight, props.cells), singleColPlacements = _b.singleColPlacements, multiColPlacements = _b.multiColPlacements, moreCnts = _b.moreCnts, moreMarginTops = _b.moreMarginTops;
var isForcedInvisible = // TODO: messy way to compute this
render() {
let { props, state, context } = this;
let { options } = context;
let colCnt = props.cells.length;
let businessHoursByCol = splitSegsByFirstCol(props.businessHourSegs, colCnt);
let bgEventSegsByCol = splitSegsByFirstCol(props.bgEventSegs, colCnt);
let highlightSegsByCol = splitSegsByFirstCol(this.getHighlightSegs(), colCnt);
let mirrorSegsByCol = splitSegsByFirstCol(this.getMirrorSegs(), colCnt);
let { singleColPlacements, multiColPlacements, moreCnts, moreMarginTops } = computeFgSegPlacement(common.sortEventSegs(props.fgEventSegs, options.eventOrder), props.dayMaxEvents, props.dayMaxEventRows, options.eventOrderStrict, state.eventInstanceHeights, state.maxContentHeight, props.cells);
let isForcedInvisible = // TODO: messy way to compute this
(props.eventDrag && props.eventDrag.affectedInstances) ||

@@ -571,6 +529,6 @@ (props.eventResize && props.eventResize.affectedInstances) ||

props.renderIntro && props.renderIntro(),
props.cells.map(function (cell, col) {
var normalFgNodes = _this.renderFgSegs(col, props.forPrint ? singleColPlacements[col] : multiColPlacements[col], props.todayRange, isForcedInvisible);
var mirrorFgNodes = _this.renderFgSegs(col, buildMirrorPlacements(mirrorSegsByCol[col], multiColPlacements), props.todayRange, {}, Boolean(props.eventDrag), Boolean(props.eventResize), false);
return (common.createElement(TableCell, { key: cell.key, elRef: _this.cellElRefs.createRef(cell.key), innerElRef: _this.frameElRefs.createRef(cell.key) /* FF <td> problem, but okay to use for left/right. TODO: rename prop */, dateProfile: props.dateProfile, date: cell.date, showDayNumber: props.showDayNumbers, showWeekNumber: props.showWeekNumbers && col === 0, forceDayTop: props.showWeekNumbers /* even displaying weeknum for row, not necessarily day */, todayRange: props.todayRange, eventSelection: props.eventSelection, eventDrag: props.eventDrag, eventResize: props.eventResize, extraHookProps: cell.extraHookProps, extraDataAttrs: cell.extraDataAttrs, extraClassNames: cell.extraClassNames, extraDateSpan: cell.extraDateSpan, moreCnt: moreCnts[col], moreMarginTop: moreMarginTops[col], singlePlacements: singleColPlacements[col], fgContentElRef: _this.fgElRefs.createRef(cell.key), fgContent: ( // Fragment scopes the keys
props.cells.map((cell, col) => {
let normalFgNodes = this.renderFgSegs(col, props.forPrint ? singleColPlacements[col] : multiColPlacements[col], props.todayRange, isForcedInvisible);
let mirrorFgNodes = this.renderFgSegs(col, buildMirrorPlacements(mirrorSegsByCol[col], multiColPlacements), props.todayRange, {}, Boolean(props.eventDrag), Boolean(props.eventResize), false);
return (common.createElement(TableCell, { key: cell.key, elRef: this.cellElRefs.createRef(cell.key), innerElRef: this.frameElRefs.createRef(cell.key) /* FF <td> problem, but okay to use for left/right. TODO: rename prop */, dateProfile: props.dateProfile, date: cell.date, showDayNumber: props.showDayNumbers, showWeekNumber: props.showWeekNumbers && col === 0, forceDayTop: props.showWeekNumbers /* even displaying weeknum for row, not necessarily day */, todayRange: props.todayRange, eventSelection: props.eventSelection, eventDrag: props.eventDrag, eventResize: props.eventResize, extraHookProps: cell.extraHookProps, extraDataAttrs: cell.extraDataAttrs, extraClassNames: cell.extraClassNames, extraDateSpan: cell.extraDateSpan, moreCnt: moreCnts[col], moreMarginTop: moreMarginTops[col], singlePlacements: singleColPlacements[col], fgContentElRef: this.fgElRefs.createRef(cell.key), fgContent: ( // Fragment scopes the keys
common.createElement(common.Fragment, null,

@@ -580,16 +538,16 @@ common.createElement(common.Fragment, null, normalFgNodes),

common.createElement(common.Fragment, null,
_this.renderFillSegs(highlightSegsByCol[col], 'highlight'),
_this.renderFillSegs(businessHoursByCol[col], 'non-business'),
_this.renderFillSegs(bgEventSegsByCol[col], 'bg-event'))) }));
this.renderFillSegs(highlightSegsByCol[col], 'highlight'),
this.renderFillSegs(businessHoursByCol[col], 'non-business'),
this.renderFillSegs(bgEventSegsByCol[col], 'bg-event'))) }));
})));
};
TableRow.prototype.componentDidMount = function () {
}
componentDidMount() {
this.updateSizing(true);
};
TableRow.prototype.componentDidUpdate = function (prevProps, prevState) {
var currentProps = this.props;
}
componentDidUpdate(prevProps, prevState) {
let currentProps = this.props;
this.updateSizing(!common.isPropsEqual(prevProps, currentProps));
};
TableRow.prototype.getHighlightSegs = function () {
var props = this.props;
}
getHighlightSegs() {
let { props } = this;
if (props.eventDrag && props.eventDrag.segs.length) { // messy check

@@ -602,5 +560,5 @@ return props.eventDrag.segs;

return props.dateSelectionSegs;
};
TableRow.prototype.getMirrorSegs = function () {
var props = this.props;
}
getMirrorSegs() {
let { props } = this;
if (props.eventResize && props.eventResize.segs.length) { // messy check

@@ -610,20 +568,19 @@ return props.eventResize.segs;

return [];
};
TableRow.prototype.renderFgSegs = function (col, segPlacements, todayRange, isForcedInvisible, isDragging, isResizing, isDateSelecting) {
var context = this.context;
var eventSelection = this.props.eventSelection;
var framePositions = this.state.framePositions;
var defaultDisplayEventEnd = this.props.cells.length === 1; // colCnt === 1
var isMirror = isDragging || isResizing || isDateSelecting;
var nodes = [];
}
renderFgSegs(col, segPlacements, todayRange, isForcedInvisible, isDragging, isResizing, isDateSelecting) {
let { context } = this;
let { eventSelection } = this.props;
let { framePositions } = this.state;
let defaultDisplayEventEnd = this.props.cells.length === 1; // colCnt === 1
let isMirror = isDragging || isResizing || isDateSelecting;
let nodes = [];
if (framePositions) {
for (var _i = 0, segPlacements_1 = segPlacements; _i < segPlacements_1.length; _i++) {
var placement = segPlacements_1[_i];
var seg = placement.seg;
var instanceId = seg.eventRange.instance.instanceId;
var key = instanceId + ':' + col;
var isVisible = placement.isVisible && !isForcedInvisible[instanceId];
var isAbsolute = placement.isAbsolute;
var left = '';
var right = '';
for (let placement of segPlacements) {
let { seg } = placement;
let { instanceId } = seg.eventRange.instance;
let key = instanceId + ':' + col;
let isVisible = placement.isVisible && !isForcedInvisible[instanceId];
let isAbsolute = placement.isAbsolute;
let left = '';
let right = '';
if (isAbsolute) {

@@ -647,18 +604,17 @@ if (context.isRtl) {

top: isAbsolute ? placement.absoluteTop : '',
left: left,
right: right,
} }, hasListItemDisplay(seg) ? (common.createElement(TableListItemEvent, tslib.__assign({ seg: seg, isDragging: isDragging, isSelected: instanceId === eventSelection, defaultDisplayEventEnd: defaultDisplayEventEnd }, common.getSegMeta(seg, todayRange)))) : (common.createElement(TableBlockEvent, tslib.__assign({ seg: seg, isDragging: isDragging, isResizing: isResizing, isDateSelecting: isDateSelecting, isSelected: instanceId === eventSelection, defaultDisplayEventEnd: defaultDisplayEventEnd }, common.getSegMeta(seg, todayRange))))));
left,
right,
} }, hasListItemDisplay(seg) ? (common.createElement(TableListItemEvent, Object.assign({ seg: seg, isDragging: isDragging, isSelected: instanceId === eventSelection, defaultDisplayEventEnd: defaultDisplayEventEnd }, common.getSegMeta(seg, todayRange)))) : (common.createElement(TableBlockEvent, Object.assign({ seg: seg, isDragging: isDragging, isResizing: isResizing, isDateSelecting: isDateSelecting, isSelected: instanceId === eventSelection, defaultDisplayEventEnd: defaultDisplayEventEnd }, common.getSegMeta(seg, todayRange))))));
}
}
return nodes;
};
TableRow.prototype.renderFillSegs = function (segs, fillType) {
var isRtl = this.context.isRtl;
var todayRange = this.props.todayRange;
var framePositions = this.state.framePositions;
var nodes = [];
}
renderFillSegs(segs, fillType) {
let { isRtl } = this.context;
let { todayRange } = this.props;
let { framePositions } = this.state;
let nodes = [];
if (framePositions) {
for (var _i = 0, segs_1 = segs; _i < segs_1.length; _i++) {
var seg = segs_1[_i];
var leftRightCss = isRtl ? {
for (let seg of segs) {
let leftRightCss = isRtl ? {
right: 0,

@@ -671,10 +627,10 @@ left: framePositions.lefts[seg.lastCol] - framePositions.lefts[seg.firstCol],

nodes.push(common.createElement("div", { key: common.buildEventRangeKey(seg.eventRange), className: "fc-daygrid-bg-harness", style: leftRightCss }, fillType === 'bg-event' ?
common.createElement(common.BgEvent, tslib.__assign({ seg: seg }, common.getSegMeta(seg, todayRange))) :
common.createElement(common.BgEvent, Object.assign({ seg: seg }, common.getSegMeta(seg, todayRange))) :
common.renderFill(fillType)));
}
}
return common.createElement.apply(void 0, tslib.__spreadArray([common.Fragment, {}], nodes));
};
TableRow.prototype.updateSizing = function (isExternalSizingChange) {
var _a = this, props = _a.props, frameElRefs = _a.frameElRefs;
return common.createElement(common.Fragment, {}, ...nodes);
}
updateSizing(isExternalSizingChange) {
let { props, frameElRefs } = this;
if (!props.forPrint &&

@@ -684,5 +640,5 @@ props.clientWidth !== null // positioning ready?

if (isExternalSizingChange) {
var frameEls = props.cells.map(function (cell) { return frameElRefs.currentMap[cell.key]; });
let frameEls = props.cells.map((cell) => frameElRefs.currentMap[cell.key]);
if (frameEls.length) {
var originEl = this.rootElRef.current;
let originEl = this.rootElRef.current;
this.setState({

@@ -694,5 +650,5 @@ framePositions: new common.PositionCache(originEl, frameEls, true, // isHorizontal

}
var oldInstanceHeights = this.state.eventInstanceHeights;
var newInstanceHeights = this.queryEventInstanceHeights();
var limitByContentHeight = props.dayMaxEvents === true || props.dayMaxEventRows === true;
const oldInstanceHeights = this.state.eventInstanceHeights;
const newInstanceHeights = this.queryEventInstanceHeights();
const limitByContentHeight = props.dayMaxEvents === true || props.dayMaxEventRows === true;
this.safeSetState({

@@ -702,30 +658,29 @@ // HACK to prevent oscillations of events being shown/hidden from max-event-rows

// TODO: always display all events, as visibility:hidden?
eventInstanceHeights: tslib.__assign(tslib.__assign({}, oldInstanceHeights), newInstanceHeights),
eventInstanceHeights: Object.assign(Object.assign({}, oldInstanceHeights), newInstanceHeights),
maxContentHeight: limitByContentHeight ? this.computeMaxContentHeight() : null,
});
}
};
TableRow.prototype.queryEventInstanceHeights = function () {
var segElMap = this.segHarnessRefs.currentMap;
var eventInstanceHeights = {};
}
queryEventInstanceHeights() {
let segElMap = this.segHarnessRefs.currentMap;
let eventInstanceHeights = {};
// get the max height amongst instance segs
for (var key in segElMap) {
var height = Math.round(segElMap[key].getBoundingClientRect().height);
var instanceId = key.split(':')[0]; // deconstruct how renderFgSegs makes the key
for (let key in segElMap) {
let height = Math.round(segElMap[key].getBoundingClientRect().height);
let instanceId = key.split(':')[0]; // deconstruct how renderFgSegs makes the key
eventInstanceHeights[instanceId] = Math.max(eventInstanceHeights[instanceId] || 0, height);
}
return eventInstanceHeights;
};
TableRow.prototype.computeMaxContentHeight = function () {
var firstKey = this.props.cells[0].key;
var cellEl = this.cellElRefs.currentMap[firstKey];
var fcContainerEl = this.fgElRefs.currentMap[firstKey];
}
computeMaxContentHeight() {
let firstKey = this.props.cells[0].key;
let cellEl = this.cellElRefs.currentMap[firstKey];
let fcContainerEl = this.fgElRefs.currentMap[firstKey];
return cellEl.getBoundingClientRect().bottom - fcContainerEl.getBoundingClientRect().top;
};
TableRow.prototype.getCellEls = function () {
var elMap = this.cellElRefs.currentMap;
return this.props.cells.map(function (cell) { return elMap[cell.key]; });
};
return TableRow;
}(common.DateComponent));
}
getCellEls() {
let elMap = this.cellElRefs.currentMap;
return this.props.cells.map((cell) => elMap[cell.key]);
}
}
TableRow.addStateEquality({

@@ -738,5 +693,5 @@ eventInstanceHeights: common.isPropsEqual,

}
var topsByInstanceId = buildAbsoluteTopHash(colPlacements); // TODO: cache this at first render?
return mirrorSegs.map(function (seg) { return ({
seg: seg,
let topsByInstanceId = buildAbsoluteTopHash(colPlacements); // TODO: cache this at first render?
return mirrorSegs.map((seg) => ({
seg,
isVisible: true,

@@ -746,10 +701,8 @@ isAbsolute: true,

marginTop: 0,
}); });
}));
}
function buildAbsoluteTopHash(colPlacements) {
var topsByInstanceId = {};
for (var _i = 0, colPlacements_1 = colPlacements; _i < colPlacements_1.length; _i++) {
var placements = colPlacements_1[_i];
for (var _a = 0, placements_1 = placements; _a < placements_1.length; _a++) {
var placement = placements_1[_a];
let topsByInstanceId = {};
for (let placements of colPlacements) {
for (let placement of placements) {
topsByInstanceId[placement.seg.eventRange.instance.instanceId] = placement.absoluteTop;

@@ -761,39 +714,36 @@ }

var Table = /** @class */ (function (_super) {
tslib.__extends(Table, _super);
function Table() {
var _this = _super !== null && _super.apply(this, arguments) || this;
_this.splitBusinessHourSegs = common.memoize(splitSegsByRow);
_this.splitBgEventSegs = common.memoize(splitSegsByRow);
_this.splitFgEventSegs = common.memoize(splitSegsByRow);
_this.splitDateSelectionSegs = common.memoize(splitSegsByRow);
_this.splitEventDrag = common.memoize(splitInteractionByRow);
_this.splitEventResize = common.memoize(splitInteractionByRow);
_this.rowRefs = new common.RefMap();
_this.handleRootEl = function (rootEl) {
_this.rootEl = rootEl;
class Table extends common.DateComponent {
constructor() {
super(...arguments);
this.splitBusinessHourSegs = common.memoize(splitSegsByRow);
this.splitBgEventSegs = common.memoize(splitSegsByRow);
this.splitFgEventSegs = common.memoize(splitSegsByRow);
this.splitDateSelectionSegs = common.memoize(splitSegsByRow);
this.splitEventDrag = common.memoize(splitInteractionByRow);
this.splitEventResize = common.memoize(splitInteractionByRow);
this.rowRefs = new common.RefMap();
this.handleRootEl = (rootEl) => {
this.rootEl = rootEl;
if (rootEl) {
_this.context.registerInteractiveComponent(_this, {
this.context.registerInteractiveComponent(this, {
el: rootEl,
isHitComboAllowed: _this.props.isHitComboAllowed,
isHitComboAllowed: this.props.isHitComboAllowed,
});
}
else {
_this.context.unregisterInteractiveComponent(_this);
this.context.unregisterInteractiveComponent(this);
}
};
return _this;
}
Table.prototype.render = function () {
var _this = this;
var props = this.props;
var dateProfile = props.dateProfile, dayMaxEventRows = props.dayMaxEventRows, dayMaxEvents = props.dayMaxEvents, expandRows = props.expandRows;
var rowCnt = props.cells.length;
var businessHourSegsByRow = this.splitBusinessHourSegs(props.businessHourSegs, rowCnt);
var bgEventSegsByRow = this.splitBgEventSegs(props.bgEventSegs, rowCnt);
var fgEventSegsByRow = this.splitFgEventSegs(props.fgEventSegs, rowCnt);
var dateSelectionSegsByRow = this.splitDateSelectionSegs(props.dateSelectionSegs, rowCnt);
var eventDragByRow = this.splitEventDrag(props.eventDrag, rowCnt);
var eventResizeByRow = this.splitEventResize(props.eventResize, rowCnt);
var limitViaBalanced = dayMaxEvents === true || dayMaxEventRows === true;
render() {
let { props } = this;
let { dateProfile, dayMaxEventRows, dayMaxEvents, expandRows } = props;
let rowCnt = props.cells.length;
let businessHourSegsByRow = this.splitBusinessHourSegs(props.businessHourSegs, rowCnt);
let bgEventSegsByRow = this.splitBgEventSegs(props.bgEventSegs, rowCnt);
let fgEventSegsByRow = this.splitFgEventSegs(props.fgEventSegs, rowCnt);
let dateSelectionSegsByRow = this.splitDateSelectionSegs(props.dateSelectionSegs, rowCnt);
let eventDragByRow = this.splitEventDrag(props.eventDrag, rowCnt);
let eventResizeByRow = this.splitEventResize(props.eventResize, rowCnt);
let limitViaBalanced = dayMaxEvents === true || dayMaxEventRows === true;
// if rows can't expand to fill fixed height, can't do balanced-height event limit

@@ -806,3 +756,3 @@ // TODO: best place to normalize these options?

}
var classNames = [
let classNames = [
'fc-daygrid-body',

@@ -818,3 +768,3 @@ limitViaBalanced ? 'fc-daygrid-body-balanced' : 'fc-daygrid-body-unbalanced',

} },
common.createElement(common.NowTimer, { unit: "day" }, function (nowDate, todayRange) { return (common.createElement(common.Fragment, null,
common.createElement(common.NowTimer, { unit: "day" }, (nowDate, todayRange) => (common.createElement(common.Fragment, null,
common.createElement("table", { role: "presentation", className: "fc-scrollgrid-sync-table", style: {

@@ -826,11 +776,11 @@ width: props.clientWidth,

props.colGroupNode,
common.createElement("tbody", { role: "presentation" }, props.cells.map(function (cells, row) { return (common.createElement(TableRow, { ref: _this.rowRefs.createRef(row), key: cells.length
common.createElement("tbody", { role: "presentation" }, props.cells.map((cells, row) => (common.createElement(TableRow, { ref: this.rowRefs.createRef(row), key: cells.length
? cells[0].date.toISOString() /* best? or put key on cell? or use diff formatter? */
: row // in case there are no cells (like when resource view is loading)
, showDayNumbers: rowCnt > 1, showWeekNumbers: props.showWeekNumbers, todayRange: todayRange, dateProfile: dateProfile, cells: cells, renderIntro: props.renderRowIntro, businessHourSegs: businessHourSegsByRow[row], eventSelection: props.eventSelection, bgEventSegs: bgEventSegsByRow[row].filter(isSegAllDay) /* hack */, fgEventSegs: fgEventSegsByRow[row], dateSelectionSegs: dateSelectionSegsByRow[row], eventDrag: eventDragByRow[row], eventResize: eventResizeByRow[row], dayMaxEvents: dayMaxEvents, dayMaxEventRows: dayMaxEventRows, clientWidth: props.clientWidth, clientHeight: props.clientHeight, forPrint: props.forPrint })); }))))); })));
};
, showDayNumbers: rowCnt > 1, showWeekNumbers: props.showWeekNumbers, todayRange: todayRange, dateProfile: dateProfile, cells: cells, renderIntro: props.renderRowIntro, businessHourSegs: businessHourSegsByRow[row], eventSelection: props.eventSelection, bgEventSegs: bgEventSegsByRow[row].filter(isSegAllDay) /* hack */, fgEventSegs: fgEventSegsByRow[row], dateSelectionSegs: dateSelectionSegsByRow[row], eventDrag: eventDragByRow[row], eventResize: eventResizeByRow[row], dayMaxEvents: dayMaxEvents, dayMaxEventRows: dayMaxEventRows, clientWidth: props.clientWidth, clientHeight: props.clientHeight, forPrint: props.forPrint }))))))))));
}
// Hit System
// ----------------------------------------------------------------------------------------------------
Table.prototype.prepareHits = function () {
this.rowPositions = new common.PositionCache(this.rootEl, this.rowRefs.collect().map(function (rowObj) { return rowObj.getCellEls()[0]; }), // first cell el in each row. TODO: not optimal
prepareHits() {
this.rowPositions = new common.PositionCache(this.rootEl, this.rowRefs.collect().map((rowObj) => rowObj.getCellEls()[0]), // first cell el in each row. TODO: not optimal
false, true);

@@ -840,12 +790,12 @@ this.colPositions = new common.PositionCache(this.rootEl, this.rowRefs.currentMap[0].getCellEls(), // cell els in first row

false);
};
Table.prototype.queryHit = function (positionLeft, positionTop) {
var _a = this, colPositions = _a.colPositions, rowPositions = _a.rowPositions;
var col = colPositions.leftToIndex(positionLeft);
var row = rowPositions.topToIndex(positionTop);
}
queryHit(positionLeft, positionTop) {
let { colPositions, rowPositions } = this;
let col = colPositions.leftToIndex(positionLeft);
let row = rowPositions.topToIndex(positionTop);
if (row != null && col != null) {
var cell = this.props.cells[row][col];
let cell = this.props.cells[row][col];
return {
dateProfile: this.props.dateProfile,
dateSpan: tslib.__assign({ range: this.getCellRange(row, col), allDay: true }, cell.extraDateSpan),
dateSpan: Object.assign({ range: this.getCellRange(row, col), allDay: true }, cell.extraDateSpan),
dayEl: this.getCellEl(row, col),

@@ -862,13 +812,12 @@ rect: {

return null;
};
Table.prototype.getCellEl = function (row, col) {
}
getCellEl(row, col) {
return this.rowRefs.currentMap[row].getCellEls()[col]; // TODO: not optimal
};
Table.prototype.getCellRange = function (row, col) {
var start = this.props.cells[row][col].date;
var end = common.addDays(start, 1);
return { start: start, end: end };
};
return Table;
}(common.DateComponent));
}
getCellRange(row, col) {
let start = this.props.cells[row][col].date;
let end = common.addDays(start, 1);
return { start, end };
}
}
function isSegAllDay(seg) {

@@ -878,69 +827,55 @@ return seg.eventRange.def.allDay;

var DayTableSlicer = /** @class */ (function (_super) {
tslib.__extends(DayTableSlicer, _super);
function DayTableSlicer() {
var _this = _super !== null && _super.apply(this, arguments) || this;
_this.forceDayIfListItem = true;
return _this;
class DayTableSlicer extends common.Slicer {
constructor() {
super(...arguments);
this.forceDayIfListItem = true;
}
DayTableSlicer.prototype.sliceRange = function (dateRange, dayTableModel) {
sliceRange(dateRange, dayTableModel) {
return dayTableModel.sliceRange(dateRange);
};
return DayTableSlicer;
}(common.Slicer));
}
}
var DayTable = /** @class */ (function (_super) {
tslib.__extends(DayTable, _super);
function DayTable() {
var _this = _super !== null && _super.apply(this, arguments) || this;
_this.slicer = new DayTableSlicer();
_this.tableRef = common.createRef();
return _this;
class DayTable extends common.DateComponent {
constructor() {
super(...arguments);
this.slicer = new DayTableSlicer();
this.tableRef = common.createRef();
}
DayTable.prototype.render = function () {
var _a = this, props = _a.props, context = _a.context;
return (common.createElement(Table, tslib.__assign({ ref: this.tableRef }, this.slicer.sliceProps(props, props.dateProfile, props.nextDayThreshold, context, props.dayTableModel), { dateProfile: props.dateProfile, cells: props.dayTableModel.cells, colGroupNode: props.colGroupNode, tableMinWidth: props.tableMinWidth, renderRowIntro: props.renderRowIntro, dayMaxEvents: props.dayMaxEvents, dayMaxEventRows: props.dayMaxEventRows, showWeekNumbers: props.showWeekNumbers, expandRows: props.expandRows, headerAlignElRef: props.headerAlignElRef, clientWidth: props.clientWidth, clientHeight: props.clientHeight, forPrint: props.forPrint })));
};
return DayTable;
}(common.DateComponent));
render() {
let { props, context } = this;
return (common.createElement(Table, Object.assign({ ref: this.tableRef }, this.slicer.sliceProps(props, props.dateProfile, props.nextDayThreshold, context, props.dayTableModel), { dateProfile: props.dateProfile, cells: props.dayTableModel.cells, colGroupNode: props.colGroupNode, tableMinWidth: props.tableMinWidth, renderRowIntro: props.renderRowIntro, dayMaxEvents: props.dayMaxEvents, dayMaxEventRows: props.dayMaxEventRows, showWeekNumbers: props.showWeekNumbers, expandRows: props.expandRows, headerAlignElRef: props.headerAlignElRef, clientWidth: props.clientWidth, clientHeight: props.clientHeight, forPrint: props.forPrint })));
}
}
var DayTableView = /** @class */ (function (_super) {
tslib.__extends(DayTableView, _super);
function DayTableView() {
var _this = _super !== null && _super.apply(this, arguments) || this;
_this.buildDayTableModel = common.memoize(buildDayTableModel);
_this.headerRef = common.createRef();
_this.tableRef = common.createRef();
return _this;
class DayTableView extends TableView {
constructor() {
super(...arguments);
this.buildDayTableModel = common.memoize(buildDayTableModel);
this.headerRef = common.createRef();
this.tableRef = common.createRef();
}
DayTableView.prototype.render = function () {
var _this = this;
var _a = this.context, options = _a.options, dateProfileGenerator = _a.dateProfileGenerator;
var props = this.props;
var dayTableModel = this.buildDayTableModel(props.dateProfile, dateProfileGenerator);
var headerContent = options.dayHeaders && (common.createElement(common.DayHeader, { ref: this.headerRef, dateProfile: props.dateProfile, dates: dayTableModel.headerDates, datesRepDistinctDays: dayTableModel.rowCnt === 1 }));
var bodyContent = function (contentArg) { return (common.createElement(DayTable, { ref: _this.tableRef, dateProfile: props.dateProfile, dayTableModel: dayTableModel, businessHours: props.businessHours, dateSelection: props.dateSelection, eventStore: props.eventStore, eventUiBases: props.eventUiBases, eventSelection: props.eventSelection, eventDrag: props.eventDrag, eventResize: props.eventResize, nextDayThreshold: options.nextDayThreshold, colGroupNode: contentArg.tableColGroupNode, tableMinWidth: contentArg.tableMinWidth, dayMaxEvents: options.dayMaxEvents, dayMaxEventRows: options.dayMaxEventRows, showWeekNumbers: options.weekNumbers, expandRows: !props.isHeightAuto, headerAlignElRef: _this.headerElRef, clientWidth: contentArg.clientWidth, clientHeight: contentArg.clientHeight, forPrint: props.forPrint })); };
render() {
let { options, dateProfileGenerator } = this.context;
let { props } = this;
let dayTableModel = this.buildDayTableModel(props.dateProfile, dateProfileGenerator);
let headerContent = options.dayHeaders && (common.createElement(common.DayHeader, { ref: this.headerRef, dateProfile: props.dateProfile, dates: dayTableModel.headerDates, datesRepDistinctDays: dayTableModel.rowCnt === 1 }));
let bodyContent = (contentArg) => (common.createElement(DayTable, { ref: this.tableRef, dateProfile: props.dateProfile, dayTableModel: dayTableModel, businessHours: props.businessHours, dateSelection: props.dateSelection, eventStore: props.eventStore, eventUiBases: props.eventUiBases, eventSelection: props.eventSelection, eventDrag: props.eventDrag, eventResize: props.eventResize, nextDayThreshold: options.nextDayThreshold, colGroupNode: contentArg.tableColGroupNode, tableMinWidth: contentArg.tableMinWidth, dayMaxEvents: options.dayMaxEvents, dayMaxEventRows: options.dayMaxEventRows, showWeekNumbers: options.weekNumbers, expandRows: !props.isHeightAuto, headerAlignElRef: this.headerElRef, clientWidth: contentArg.clientWidth, clientHeight: contentArg.clientHeight, forPrint: props.forPrint }));
return options.dayMinWidth
? this.renderHScrollLayout(headerContent, bodyContent, dayTableModel.colCnt, options.dayMinWidth)
: this.renderSimpleLayout(headerContent, bodyContent);
};
return DayTableView;
}(TableView));
}
}
function buildDayTableModel(dateProfile, dateProfileGenerator) {
var daySeries = new common.DaySeriesModel(dateProfile.renderRange, dateProfileGenerator);
let daySeries = new common.DaySeriesModel(dateProfile.renderRange, dateProfileGenerator);
return new common.DayTableModel(daySeries, /year|month|week/.test(dateProfile.currentRangeUnit));
}
var TableDateProfileGenerator = /** @class */ (function (_super) {
tslib.__extends(TableDateProfileGenerator, _super);
function TableDateProfileGenerator() {
return _super !== null && _super.apply(this, arguments) || this;
}
class TableDateProfileGenerator extends common.DateProfileGenerator {
// Computes the date range that will be rendered.
TableDateProfileGenerator.prototype.buildRenderRange = function (currentRange, currentRangeUnit, isRangeAllDay) {
var dateEnv = this.props.dateEnv;
var renderRange = _super.prototype.buildRenderRange.call(this, currentRange, currentRangeUnit, isRangeAllDay);
var start = renderRange.start;
var end = renderRange.end;
var endOfWeek;
buildRenderRange(currentRange, currentRangeUnit, isRangeAllDay) {
let { dateEnv } = this.props;
let renderRange = super.buildRenderRange(currentRange, currentRangeUnit, isRangeAllDay);
let start = renderRange.start;
let end = renderRange.end;
let endOfWeek;
// year and month views should be aligned with weeks. this is already done for week

@@ -958,11 +893,40 @@ if (/^(year|month)$/.test(currentRangeUnit)) {

this.props.fixedWeekCount) {
var rowCnt = Math.ceil(// could be partial weeks due to hiddenDays
let rowCnt = Math.ceil(// could be partial weeks due to hiddenDays
common.diffWeeks(start, end));
end = common.addWeeks(end, 6 - rowCnt);
}
return { start: start, end: end };
};
return TableDateProfileGenerator;
}(common.DateProfileGenerator));
return { start, end };
}
}
function styleInject(css, ref) {
if ( ref === void 0 ) ref = {};
var insertAt = ref.insertAt;
if (!css || typeof document === 'undefined') { return; }
var head = document.head || document.getElementsByTagName('head')[0];
var style = document.createElement('style');
style.type = 'text/css';
if (insertAt === 'top') {
if (head.firstChild) {
head.insertBefore(style, head.firstChild);
} else {
head.appendChild(style);
}
} else {
head.appendChild(style);
}
if (style.styleSheet) {
style.styleSheet.cssText = css;
} else {
style.appendChild(document.createTextNode(css));
}
}
var css_248z = "\n:root {\n --fc-daygrid-event-dot-width: 8px;\n}\n/* help things clear margins of inner content */\n.fc-daygrid-day-frame,\n.fc-daygrid-day-events,\n.fc-daygrid-event-harness { /* for event top/bottom margins */\n}\n.fc-daygrid-day-frame:before, .fc-daygrid-day-events:before, .fc-daygrid-event-harness:before {\n content: \"\";\n clear: both;\n display: table; }\n.fc-daygrid-day-frame:after, .fc-daygrid-day-events:after, .fc-daygrid-event-harness:after {\n content: \"\";\n clear: both;\n display: table; }\n.fc .fc-daygrid-body { /* a <div> that wraps the table */\n position: relative;\n z-index: 1; /* container inner z-index's because <tr>s can't do it */\n }\n.fc .fc-daygrid-day.fc-day-today {\n background-color: rgba(255, 220, 40, 0.15);\n background-color: var(--fc-today-bg-color, rgba(255, 220, 40, 0.15));\n }\n.fc .fc-daygrid-day-frame {\n position: relative;\n min-height: 100%; /* seems to work better than `height` because sets height after rows/cells naturally do it */\n }\n.fc {\n\n /* cell top */\n\n}\n.fc .fc-daygrid-day-top {\n display: flex;\n flex-direction: row-reverse;\n }\n.fc .fc-day-other .fc-daygrid-day-top {\n opacity: 0.3;\n }\n.fc {\n\n /* day number (within cell top) */\n\n}\n.fc .fc-daygrid-day-number {\n position: relative;\n z-index: 4;\n padding: 4px;\n }\n.fc {\n\n /* event container */\n\n}\n.fc .fc-daygrid-day-events {\n margin-top: 1px; /* needs to be margin, not padding, so that available cell height can be computed */\n }\n.fc {\n\n /* positioning for balanced vs natural */\n\n}\n.fc .fc-daygrid-body-balanced .fc-daygrid-day-events {\n position: absolute;\n left: 0;\n right: 0;\n }\n.fc .fc-daygrid-body-unbalanced .fc-daygrid-day-events {\n position: relative; /* for containing abs positioned event harnesses */\n min-height: 2em; /* in addition to being a min-height during natural height, equalizes the heights a little bit */\n }\n.fc .fc-daygrid-body-natural { /* can coexist with -unbalanced */\n }\n.fc .fc-daygrid-body-natural .fc-daygrid-day-events {\n margin-bottom: 1em;\n }\n.fc {\n\n /* event harness */\n\n}\n.fc .fc-daygrid-event-harness {\n position: relative;\n }\n.fc .fc-daygrid-event-harness-abs {\n position: absolute;\n top: 0; /* fallback coords for when cannot yet be computed */\n left: 0; /* */\n right: 0; /* */\n }\n.fc .fc-daygrid-bg-harness {\n position: absolute;\n top: 0;\n bottom: 0;\n }\n.fc {\n\n /* bg content */\n\n}\n.fc .fc-daygrid-day-bg .fc-non-business { z-index: 1 }\n.fc .fc-daygrid-day-bg .fc-bg-event { z-index: 2 }\n.fc .fc-daygrid-day-bg .fc-highlight { z-index: 3 }\n.fc {\n\n /* events */\n\n}\n.fc .fc-daygrid-event {\n z-index: 6;\n margin-top: 1px;\n }\n.fc .fc-daygrid-event.fc-event-mirror {\n z-index: 7;\n }\n.fc {\n\n /* cell bottom (within day-events) */\n\n}\n.fc .fc-daygrid-day-bottom {\n font-size: .85em;\n padding: 2px 3px 0\n }\n.fc .fc-daygrid-day-bottom:before {\n content: \"\";\n clear: both;\n display: table; }\n.fc .fc-daygrid-more-link {\n position: relative;\n z-index: 4;\n cursor: pointer;\n }\n.fc {\n\n /* week number (within frame) */\n\n}\n.fc .fc-daygrid-week-number {\n position: absolute;\n z-index: 5;\n top: 0;\n padding: 2px;\n min-width: 1.5em;\n text-align: center;\n background-color: rgba(208, 208, 208, 0.3);\n background-color: var(--fc-neutral-bg-color, rgba(208, 208, 208, 0.3));\n color: #808080;\n color: var(--fc-neutral-text-color, #808080);\n }\n.fc {\n\n /* popover */\n\n}\n.fc .fc-more-popover .fc-popover-body {\n min-width: 220px;\n padding: 10px;\n }\n.fc-direction-ltr .fc-daygrid-event.fc-event-start,\n.fc-direction-rtl .fc-daygrid-event.fc-event-end {\n margin-left: 2px;\n}\n.fc-direction-ltr .fc-daygrid-event.fc-event-end,\n.fc-direction-rtl .fc-daygrid-event.fc-event-start {\n margin-right: 2px;\n}\n.fc-direction-ltr .fc-daygrid-week-number {\n left: 0;\n border-radius: 0 0 3px 0;\n }\n.fc-direction-rtl .fc-daygrid-week-number {\n right: 0;\n border-radius: 0 0 0 3px;\n }\n.fc-liquid-hack .fc-daygrid-day-frame {\n position: static; /* will cause inner absolute stuff to expand to <td> */\n }\n.fc-daygrid-event { /* make root-level, because will be dragged-and-dropped outside of a component root */\n position: relative; /* for z-indexes assigned later */\n white-space: nowrap;\n border-radius: 3px; /* dot event needs this to when selected */\n font-size: .85em;\n font-size: var(--fc-small-font-size, .85em);\n}\n/* --- the rectangle (\"block\") style of event --- */\n.fc-daygrid-block-event .fc-event-time {\n font-weight: bold;\n }\n.fc-daygrid-block-event .fc-event-time,\n .fc-daygrid-block-event .fc-event-title {\n padding: 1px;\n }\n/* --- the dot style of event --- */\n.fc-daygrid-dot-event {\n display: flex;\n align-items: center;\n padding: 2px 0\n\n}\n.fc-daygrid-dot-event .fc-event-title {\n flex-grow: 1;\n flex-shrink: 1;\n min-width: 0; /* important for allowing to shrink all the way */\n overflow: hidden;\n font-weight: bold;\n }\n.fc-daygrid-dot-event:hover,\n .fc-daygrid-dot-event.fc-event-mirror {\n background: rgba(0, 0, 0, 0.1);\n }\n.fc-daygrid-dot-event.fc-event-selected:before {\n /* expand hit area */\n top: -10px;\n bottom: -10px;\n }\n.fc-daygrid-event-dot { /* the actual dot */\n margin: 0 4px;\n box-sizing: content-box;\n width: 0;\n height: 0;\n border: 4px solid #3788d8;\n border: calc(var(--fc-daygrid-event-dot-width, 8px) / 2) solid var(--fc-event-border-color, #3788d8);\n border-radius: 4px;\n border-radius: calc(var(--fc-daygrid-event-dot-width, 8px) / 2);\n}\n/* --- spacing between time and title --- */\n.fc-direction-ltr .fc-daygrid-event .fc-event-time {\n margin-right: 3px;\n }\n.fc-direction-rtl .fc-daygrid-event .fc-event-time {\n margin-left: 3px;\n }\n";
styleInject(css_248z);
var main = common.createPlugin({

@@ -969,0 +933,0 @@ initialView: 'dayGridMonth',

/*!
FullCalendar v5.11.2
FullCalendar v6.0.0-beta.1
Docs & License: https://fullcalendar.io/

@@ -9,54 +9,2 @@ (c) 2022 Adam Shaw

/*! *****************************************************************************
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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
return extendStatics(d, b);
};
function __extends(d, b) {
if (typeof b !== "function" && b !== null)
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
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);
};
function __spreadArray(to, from, pack) {
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
if (ar || !(i in from)) {
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
ar[i] = from[i];
}
}
return to.concat(ar || from);
}
/* An abstract class for the daygrid views, as well as month view. Renders one or more rows of day cells.

@@ -66,13 +14,11 @@ ----------------------------------------------------------------------------------------------------------------------*/

// It is responsible for managing width/height.
var TableView = /** @class */ (function (_super) {
__extends(TableView, _super);
function TableView() {
var _this = _super !== null && _super.apply(this, arguments) || this;
_this.headerElRef = common.createRef();
return _this;
class TableView extends common.DateComponent {
constructor() {
super(...arguments);
this.headerElRef = common.createRef();
}
TableView.prototype.renderSimpleLayout = function (headerRowContent, bodyContent) {
var _a = this, props = _a.props, context = _a.context;
var sections = [];
var stickyHeaderDates = common.getStickyHeaderDates(context.options);
renderSimpleLayout(headerRowContent, bodyContent) {
let { props, context } = this;
let sections = [];
let stickyHeaderDates = common.getStickyHeaderDates(context.options);
if (headerRowContent) {

@@ -96,14 +42,14 @@ sections.push({

});
return (common.createElement(common.ViewRoot, { viewSpec: context.viewSpec }, function (rootElRef, classNames) { return (common.createElement("div", { ref: rootElRef, className: ['fc-daygrid'].concat(classNames).join(' ') },
common.createElement(common.SimpleScrollGrid, { liquid: !props.isHeightAuto && !props.forPrint, collapsibleWidth: props.forPrint, cols: [] /* TODO: make optional? */, sections: sections }))); }));
};
TableView.prototype.renderHScrollLayout = function (headerRowContent, bodyContent, colCnt, dayMinWidth) {
var ScrollGrid = this.context.pluginHooks.scrollGridImpl;
return (common.createElement(common.ViewRoot, { viewSpec: context.viewSpec }, (rootElRef, classNames) => (common.createElement("div", { ref: rootElRef, className: ['fc-daygrid'].concat(classNames).join(' ') },
common.createElement(common.SimpleScrollGrid, { liquid: !props.isHeightAuto && !props.forPrint, collapsibleWidth: props.forPrint, cols: [] /* TODO: make optional? */, sections: sections })))));
}
renderHScrollLayout(headerRowContent, bodyContent, colCnt, dayMinWidth) {
let ScrollGrid = this.context.pluginHooks.scrollGridImpl;
if (!ScrollGrid) {
throw new Error('No ScrollGrid implementation');
}
var _a = this, props = _a.props, context = _a.context;
var stickyHeaderDates = !props.forPrint && common.getStickyHeaderDates(context.options);
var stickyFooterScrollbar = !props.forPrint && common.getStickyFooterScrollbar(context.options);
var sections = [];
let { props, context } = this;
let stickyHeaderDates = !props.forPrint && common.getStickyHeaderDates(context.options);
let stickyFooterScrollbar = !props.forPrint && common.getStickyFooterScrollbar(context.options);
let sections = [];
if (headerRowContent) {

@@ -142,15 +88,13 @@ sections.push({

}
return (common.createElement(common.ViewRoot, { viewSpec: context.viewSpec }, function (rootElRef, classNames) { return (common.createElement("div", { ref: rootElRef, className: ['fc-daygrid'].concat(classNames).join(' ') },
common.createElement(ScrollGrid, { liquid: !props.isHeightAuto && !props.forPrint, collapsibleWidth: props.forPrint, colGroups: [{ cols: [{ span: colCnt, minWidth: dayMinWidth }] }], sections: sections }))); }));
};
return TableView;
}(common.DateComponent));
return (common.createElement(common.ViewRoot, { viewSpec: context.viewSpec }, (rootElRef, classNames) => (common.createElement("div", { ref: rootElRef, className: ['fc-daygrid'].concat(classNames).join(' ') },
common.createElement(ScrollGrid, { liquid: !props.isHeightAuto && !props.forPrint, collapsibleWidth: props.forPrint, colGroups: [{ cols: [{ span: colCnt, minWidth: dayMinWidth }] }], sections: sections })))));
}
}
function splitSegsByRow(segs, rowCnt) {
var byRow = [];
for (var i = 0; i < rowCnt; i += 1) {
let byRow = [];
for (let i = 0; i < rowCnt; i += 1) {
byRow[i] = [];
}
for (var _i = 0, segs_1 = segs; _i < segs_1.length; _i++) {
var seg = segs_1[_i];
for (let seg of segs) {
byRow[seg.row].push(seg);

@@ -161,8 +105,7 @@ }

function splitSegsByFirstCol(segs, colCnt) {
var byCol = [];
for (var i = 0; i < colCnt; i += 1) {
let byCol = [];
for (let i = 0; i < colCnt; i += 1) {
byCol[i] = [];
}
for (var _i = 0, segs_2 = segs; _i < segs_2.length; _i++) {
var seg = segs_2[_i];
for (let seg of segs) {
byCol[seg.firstCol].push(seg);

@@ -173,5 +116,5 @@ }

function splitInteractionByRow(ui, rowCnt) {
var byRow = [];
let byRow = [];
if (!ui) {
for (var i = 0; i < rowCnt; i += 1) {
for (let i = 0; i < rowCnt; i += 1) {
byRow[i] = null;

@@ -181,3 +124,3 @@ }

else {
for (var i = 0; i < rowCnt; i += 1) {
for (let i = 0; i < rowCnt; i += 1) {
byRow[i] = {

@@ -189,4 +132,3 @@ affectedInstances: ui.affectedInstances,

}
for (var _i = 0, _a = ui.segs; _i < _a.length; _i++) {
var seg = _a[_i];
for (let seg of ui.segs) {
byRow[seg.row].segs.push(seg);

@@ -198,15 +140,10 @@ }

var TableCellTop = /** @class */ (function (_super) {
__extends(TableCellTop, _super);
function TableCellTop() {
return _super !== null && _super.apply(this, arguments) || this;
class TableCellTop extends common.BaseComponent {
render() {
let { props } = this;
let navLinkAttrs = common.buildNavLinkAttrs(this.context, props.date);
return (common.createElement(common.DayCellContent, { date: props.date, dateProfile: props.dateProfile, todayRange: props.todayRange, showDayNumber: props.showDayNumber, extraHookProps: props.extraHookProps, defaultContent: renderTopInner }, (innerElRef, innerContent) => ((innerContent || props.forceDayTop) && (common.createElement("div", { className: "fc-daygrid-day-top", ref: innerElRef },
common.createElement("a", Object.assign({ id: props.dayNumberId, className: "fc-daygrid-day-number" }, navLinkAttrs), innerContent || common.createElement(common.Fragment, null, "\u00A0")))))));
}
TableCellTop.prototype.render = function () {
var props = this.props;
var navLinkAttrs = common.buildNavLinkAttrs(this.context, props.date);
return (common.createElement(common.DayCellContent, { date: props.date, dateProfile: props.dateProfile, todayRange: props.todayRange, showDayNumber: props.showDayNumber, extraHookProps: props.extraHookProps, defaultContent: renderTopInner }, function (innerElRef, innerContent) { return ((innerContent || props.forceDayTop) && (common.createElement("div", { className: "fc-daygrid-day-top", ref: innerElRef },
common.createElement("a", __assign({ id: props.dayNumberId, className: "fc-daygrid-day-number" }, navLinkAttrs), innerContent || common.createElement(common.Fragment, null, "\u00A0"))))); }));
};
return TableCellTop;
}(common.BaseComponent));
}
function renderTopInner(props) {

@@ -216,3 +153,3 @@ return props.dayNumberText;

var DEFAULT_TABLE_EVENT_TIME_FORMAT = common.createFormatter({
const DEFAULT_TABLE_EVENT_TIME_FORMAT = common.createFormatter({
hour: 'numeric',

@@ -224,3 +161,3 @@ minute: '2-digit',

function hasListItemDisplay(seg) {
var display = seg.eventRange.ui.display;
let { display } = seg.eventRange.ui;
return display === 'list-item' || (display === 'auto' &&

@@ -234,28 +171,18 @@ !seg.eventRange.def.allDay &&

var TableBlockEvent = /** @class */ (function (_super) {
__extends(TableBlockEvent, _super);
function TableBlockEvent() {
return _super !== null && _super.apply(this, arguments) || this;
class TableBlockEvent extends common.BaseComponent {
render() {
let { props } = this;
return (common.createElement(common.StandardEvent, Object.assign({}, props, { extraClassNames: ['fc-daygrid-event', 'fc-daygrid-block-event', 'fc-h-event'], defaultTimeFormat: DEFAULT_TABLE_EVENT_TIME_FORMAT, defaultDisplayEventEnd: props.defaultDisplayEventEnd, disableResizing: !props.seg.eventRange.def.allDay })));
}
TableBlockEvent.prototype.render = function () {
var props = this.props;
return (common.createElement(common.StandardEvent, __assign({}, props, { extraClassNames: ['fc-daygrid-event', 'fc-daygrid-block-event', 'fc-h-event'], defaultTimeFormat: DEFAULT_TABLE_EVENT_TIME_FORMAT, defaultDisplayEventEnd: props.defaultDisplayEventEnd, disableResizing: !props.seg.eventRange.def.allDay })));
};
return TableBlockEvent;
}(common.BaseComponent));
}
var TableListItemEvent = /** @class */ (function (_super) {
__extends(TableListItemEvent, _super);
function TableListItemEvent() {
return _super !== null && _super.apply(this, arguments) || this;
class TableListItemEvent extends common.BaseComponent {
render() {
let { props, context } = this;
let timeFormat = context.options.eventTimeFormat || DEFAULT_TABLE_EVENT_TIME_FORMAT;
let timeText = common.buildSegTimeText(props.seg, timeFormat, context, true, props.defaultDisplayEventEnd);
return (common.createElement(common.EventRoot, { seg: props.seg, timeText: timeText, defaultContent: renderInnerContent, isDragging: props.isDragging, isResizing: false, isDateSelecting: false, isSelected: props.isSelected, isPast: props.isPast, isFuture: props.isFuture, isToday: props.isToday }, (rootElRef, classNames, innerElRef, innerContent) => ( // we don't use styles!
common.createElement("a", Object.assign({ className: ['fc-daygrid-event', 'fc-daygrid-dot-event'].concat(classNames).join(' '), ref: rootElRef }, common.getSegAnchorAttrs(props.seg, context)), innerContent))));
}
TableListItemEvent.prototype.render = function () {
var _a = this, props = _a.props, context = _a.context;
var timeFormat = context.options.eventTimeFormat || DEFAULT_TABLE_EVENT_TIME_FORMAT;
var timeText = common.buildSegTimeText(props.seg, timeFormat, context, true, props.defaultDisplayEventEnd);
return (common.createElement(common.EventRoot, { seg: props.seg, timeText: timeText, defaultContent: renderInnerContent, isDragging: props.isDragging, isResizing: false, isDateSelecting: false, isSelected: props.isSelected, isPast: props.isPast, isFuture: props.isFuture, isToday: props.isToday }, function (rootElRef, classNames, innerElRef, innerContent) { return ( // we don't use styles!
common.createElement("a", __assign({ className: ['fc-daygrid-event', 'fc-daygrid-dot-event'].concat(classNames).join(' '), ref: rootElRef }, common.getSegAnchorAttrs(props.seg, context)), innerContent)); }));
};
return TableListItemEvent;
}(common.BaseComponent));
}
function renderInnerContent(innerProps) {

@@ -268,31 +195,27 @@ return (common.createElement(common.Fragment, null,

var TableCellMoreLink = /** @class */ (function (_super) {
__extends(TableCellMoreLink, _super);
function TableCellMoreLink() {
var _this = _super !== null && _super.apply(this, arguments) || this;
_this.compileSegs = common.memoize(compileSegs);
return _this;
class TableCellMoreLink extends common.BaseComponent {
constructor() {
super(...arguments);
this.compileSegs = common.memoize(compileSegs);
}
TableCellMoreLink.prototype.render = function () {
var props = this.props;
var _a = this.compileSegs(props.singlePlacements), allSegs = _a.allSegs, invisibleSegs = _a.invisibleSegs;
return (common.createElement(common.MoreLinkRoot, { dateProfile: props.dateProfile, todayRange: props.todayRange, allDayDate: props.allDayDate, moreCnt: props.moreCnt, allSegs: allSegs, hiddenSegs: invisibleSegs, alignmentElRef: props.alignmentElRef, alignGridTop: props.alignGridTop, extraDateSpan: props.extraDateSpan, popoverContent: function () {
var isForcedInvisible = (props.eventDrag ? props.eventDrag.affectedInstances : null) ||
render() {
let { props } = this;
let { allSegs, invisibleSegs } = this.compileSegs(props.singlePlacements);
return (common.createElement(common.MoreLinkRoot, { dateProfile: props.dateProfile, todayRange: props.todayRange, allDayDate: props.allDayDate, moreCnt: props.moreCnt, allSegs: allSegs, hiddenSegs: invisibleSegs, alignmentElRef: props.alignmentElRef, alignGridTop: props.alignGridTop, extraDateSpan: props.extraDateSpan, popoverContent: () => {
let isForcedInvisible = (props.eventDrag ? props.eventDrag.affectedInstances : null) ||
(props.eventResize ? props.eventResize.affectedInstances : null) ||
{};
return (common.createElement(common.Fragment, null, allSegs.map(function (seg) {
var instanceId = seg.eventRange.instance.instanceId;
return (common.createElement(common.Fragment, null, allSegs.map((seg) => {
let instanceId = seg.eventRange.instance.instanceId;
return (common.createElement("div", { className: "fc-daygrid-event-harness", key: instanceId, style: {
visibility: isForcedInvisible[instanceId] ? 'hidden' : '',
} }, hasListItemDisplay(seg) ? (common.createElement(TableListItemEvent, __assign({ seg: seg, isDragging: false, isSelected: instanceId === props.eventSelection, defaultDisplayEventEnd: false }, common.getSegMeta(seg, props.todayRange)))) : (common.createElement(TableBlockEvent, __assign({ seg: seg, isDragging: false, isResizing: false, isDateSelecting: false, isSelected: instanceId === props.eventSelection, defaultDisplayEventEnd: false }, common.getSegMeta(seg, props.todayRange))))));
} }, hasListItemDisplay(seg) ? (common.createElement(TableListItemEvent, Object.assign({ seg: seg, isDragging: false, isSelected: instanceId === props.eventSelection, defaultDisplayEventEnd: false }, common.getSegMeta(seg, props.todayRange)))) : (common.createElement(TableBlockEvent, Object.assign({ seg: seg, isDragging: false, isResizing: false, isDateSelecting: false, isSelected: instanceId === props.eventSelection, defaultDisplayEventEnd: false }, common.getSegMeta(seg, props.todayRange))))));
})));
} }, function (rootElRef, classNames, innerElRef, innerContent, handleClick, title, isExpanded, popoverId) { return (common.createElement("a", __assign({ ref: rootElRef, className: ['fc-daygrid-more-link'].concat(classNames).join(' '), title: title, "aria-expanded": isExpanded, "aria-controls": popoverId }, common.createAriaClickAttrs(handleClick)), innerContent)); }));
};
return TableCellMoreLink;
}(common.BaseComponent));
} }, (rootElRef, classNames, innerElRef, innerContent, handleClick, title, isExpanded, popoverId) => (common.createElement("a", Object.assign({ ref: rootElRef, className: ['fc-daygrid-more-link'].concat(classNames).join(' '), title: title, "aria-expanded": isExpanded, "aria-controls": popoverId }, common.createAriaClickAttrs(handleClick)), innerContent))));
}
}
function compileSegs(singlePlacements) {
var allSegs = [];
var invisibleSegs = [];
for (var _i = 0, singlePlacements_1 = singlePlacements; _i < singlePlacements_1.length; _i++) {
var placement = singlePlacements_1[_i];
let allSegs = [];
let invisibleSegs = [];
for (let placement of singlePlacements) {
allSegs.push(placement.seg);

@@ -303,27 +226,25 @@ if (!placement.isVisible) {

}
return { allSegs: allSegs, invisibleSegs: invisibleSegs };
return { allSegs, invisibleSegs };
}
var DEFAULT_WEEK_NUM_FORMAT = common.createFormatter({ week: 'narrow' });
var TableCell = /** @class */ (function (_super) {
__extends(TableCell, _super);
function TableCell() {
var _this = _super !== null && _super.apply(this, arguments) || this;
_this.rootElRef = common.createRef();
_this.state = {
const DEFAULT_WEEK_NUM_FORMAT = common.createFormatter({ week: 'narrow' });
class TableCell extends common.DateComponent {
constructor() {
super(...arguments);
this.rootElRef = common.createRef();
this.state = {
dayNumberId: common.getUniqueDomId(),
};
_this.handleRootEl = function (el) {
common.setRef(_this.rootElRef, el);
common.setRef(_this.props.elRef, el);
this.handleRootEl = (el) => {
common.setRef(this.rootElRef, el);
common.setRef(this.props.elRef, el);
};
return _this;
}
TableCell.prototype.render = function () {
var _a = this, context = _a.context, props = _a.props, state = _a.state, rootElRef = _a.rootElRef;
var date = props.date, dateProfile = props.dateProfile;
var navLinkAttrs = common.buildNavLinkAttrs(context, date, 'week');
return (common.createElement(common.DayCellRoot, { date: date, dateProfile: dateProfile, todayRange: props.todayRange, showDayNumber: props.showDayNumber, extraHookProps: props.extraHookProps, elRef: this.handleRootEl }, function (dayElRef, dayClassNames, rootDataAttrs, isDisabled) { return (common.createElement("td", __assign({ ref: dayElRef, role: "gridcell", className: ['fc-daygrid-day'].concat(dayClassNames, props.extraClassNames || []).join(' ') }, rootDataAttrs, props.extraDataAttrs, (props.showDayNumber ? { 'aria-labelledby': state.dayNumberId } : {})),
render() {
let { context, props, state, rootElRef } = this;
let { date, dateProfile } = props;
let navLinkAttrs = common.buildNavLinkAttrs(context, date, 'week');
return (common.createElement(common.DayCellRoot, { date: date, dateProfile: dateProfile, todayRange: props.todayRange, showDayNumber: props.showDayNumber, extraHookProps: props.extraHookProps, elRef: this.handleRootEl }, (dayElRef, dayClassNames, rootDataAttrs, isDisabled) => (common.createElement("td", Object.assign({ ref: dayElRef, role: "gridcell", className: ['fc-daygrid-day'].concat(dayClassNames, props.extraClassNames || []).join(' ') }, rootDataAttrs, props.extraDataAttrs, (props.showDayNumber ? { 'aria-labelledby': state.dayNumberId } : {})),
common.createElement("div", { className: "fc-daygrid-day-frame fc-scrollgrid-sync-inner", ref: props.innerElRef /* different from hook system! RENAME */ },
props.showWeekNumber && (common.createElement(common.WeekNumberRoot, { date: date, defaultFormat: DEFAULT_WEEK_NUM_FORMAT }, function (weekElRef, weekClassNames, innerElRef, innerContent) { return (common.createElement("a", __assign({ ref: weekElRef, className: ['fc-daygrid-week-number'].concat(weekClassNames).join(' ') }, navLinkAttrs), innerContent)); })),
props.showWeekNumber && (common.createElement(common.WeekNumberRoot, { date: date, defaultFormat: DEFAULT_WEEK_NUM_FORMAT }, (weekElRef, weekClassNames, innerElRef, innerContent) => (common.createElement("a", Object.assign({ ref: weekElRef, className: ['fc-daygrid-week-number'].concat(weekClassNames).join(' ') }, navLinkAttrs), innerContent)))),
!isDisabled && (common.createElement(TableCellTop, { date: date, dateProfile: dateProfile, showDayNumber: props.showDayNumber, dayNumberId: state.dayNumberId, forceDayTop: props.forceDayTop, todayRange: props.todayRange, extraHookProps: props.extraHookProps })),

@@ -334,10 +255,9 @@ common.createElement("div", { className: "fc-daygrid-day-events", ref: props.fgContentElRef },

common.createElement(TableCellMoreLink, { allDayDate: date, singlePlacements: props.singlePlacements, moreCnt: props.moreCnt, alignmentElRef: rootElRef, alignGridTop: !props.showDayNumber, extraDateSpan: props.extraDateSpan, dateProfile: props.dateProfile, eventSelection: props.eventSelection, eventDrag: props.eventDrag, eventResize: props.eventResize, todayRange: props.todayRange }))),
common.createElement("div", { className: "fc-daygrid-day-bg" }, props.bgContent)))); }));
};
return TableCell;
}(common.DateComponent));
common.createElement("div", { className: "fc-daygrid-day-bg" }, props.bgContent))))));
}
}
function computeFgSegPlacement(segs, // assumed already sorted
dayMaxEvents, dayMaxEventRows, strictOrder, eventInstanceHeights, maxContentHeight, cells) {
var hierarchy = new DayGridSegHierarchy();
let hierarchy = new DayGridSegHierarchy();
hierarchy.allowReslicing = true;

@@ -357,8 +277,8 @@ hierarchy.strictOrder = strictOrder;

// create segInputs only for segs with known heights
var segInputs = [];
var unknownHeightSegs = [];
for (var i = 0; i < segs.length; i += 1) {
var seg = segs[i];
var instanceId = seg.eventRange.instance.instanceId;
var eventHeight = eventInstanceHeights[instanceId];
let segInputs = [];
let unknownHeightSegs = [];
for (let i = 0; i < segs.length; i += 1) {
let seg = segs[i];
let { instanceId } = seg.eventRange.instance;
let eventHeight = eventInstanceHeights[instanceId];
if (eventHeight != null) {

@@ -378,12 +298,11 @@ segInputs.push({

}
var hiddenEntries = hierarchy.addSegs(segInputs);
var segRects = hierarchy.toRects();
var _a = placeRects(segRects, segs, cells), singleColPlacements = _a.singleColPlacements, multiColPlacements = _a.multiColPlacements, leftoverMargins = _a.leftoverMargins;
var moreCnts = [];
var moreMarginTops = [];
let hiddenEntries = hierarchy.addSegs(segInputs);
let segRects = hierarchy.toRects();
let { singleColPlacements, multiColPlacements, leftoverMargins } = placeRects(segRects, segs, cells);
let moreCnts = [];
let moreMarginTops = [];
// add segs with unknown heights
for (var _i = 0, unknownHeightSegs_1 = unknownHeightSegs; _i < unknownHeightSegs_1.length; _i++) {
var seg = unknownHeightSegs_1[_i];
for (let seg of unknownHeightSegs) {
multiColPlacements[seg.firstCol].push({
seg: seg,
seg,
isVisible: false,

@@ -394,3 +313,3 @@ isAbsolute: true,

});
for (var col = seg.firstCol; col <= seg.lastCol; col += 1) {
for (let col = seg.firstCol; col <= seg.lastCol; col += 1) {
singleColPlacements[col].push({

@@ -406,9 +325,8 @@ seg: resliceSeg(seg, col, col + 1, cells),

// add the hidden entries
for (var col = 0; col < cells.length; col += 1) {
for (let col = 0; col < cells.length; col += 1) {
moreCnts.push(0);
}
for (var _b = 0, hiddenEntries_1 = hiddenEntries; _b < hiddenEntries_1.length; _b++) {
var hiddenEntry = hiddenEntries_1[_b];
var seg = segs[hiddenEntry.index];
var hiddenSpan = hiddenEntry.span;
for (let hiddenEntry of hiddenEntries) {
let seg = segs[hiddenEntry.index];
let hiddenSpan = hiddenEntry.span;
multiColPlacements[hiddenSpan.start].push({

@@ -421,3 +339,3 @@ seg: resliceSeg(seg, hiddenSpan.start, hiddenSpan.end, cells),

});
for (var col = hiddenSpan.start; col < hiddenSpan.end; col += 1) {
for (let col = hiddenSpan.start; col < hiddenSpan.end; col += 1) {
moreCnts[col] += 1;

@@ -434,22 +352,21 @@ singleColPlacements[col].push({

// deal with leftover margins
for (var col = 0; col < cells.length; col += 1) {
for (let col = 0; col < cells.length; col += 1) {
moreMarginTops.push(leftoverMargins[col]);
}
return { singleColPlacements: singleColPlacements, multiColPlacements: multiColPlacements, moreCnts: moreCnts, moreMarginTops: moreMarginTops };
return { singleColPlacements, multiColPlacements, moreCnts, moreMarginTops };
}
// rects ordered by top coord, then left
function placeRects(allRects, segs, cells) {
var rectsByEachCol = groupRectsByEachCol(allRects, cells.length);
var singleColPlacements = [];
var multiColPlacements = [];
var leftoverMargins = [];
for (var col = 0; col < cells.length; col += 1) {
var rects = rectsByEachCol[col];
let rectsByEachCol = groupRectsByEachCol(allRects, cells.length);
let singleColPlacements = [];
let multiColPlacements = [];
let leftoverMargins = [];
for (let col = 0; col < cells.length; col += 1) {
let rects = rectsByEachCol[col];
// compute all static segs in singlePlacements
var singlePlacements = [];
var currentHeight = 0;
var currentMarginTop = 0;
for (var _i = 0, rects_1 = rects; _i < rects_1.length; _i++) {
var rect = rects_1[_i];
var seg = segs[rect.index];
let singlePlacements = [];
let currentHeight = 0;
let currentMarginTop = 0;
for (let rect of rects) {
let seg = segs[rect.index];
singlePlacements.push({

@@ -465,10 +382,9 @@ seg: resliceSeg(seg, col, col + 1, cells),

// compute mixed static/absolute segs in multiPlacements
var multiPlacements = [];
let multiPlacements = [];
currentHeight = 0;
currentMarginTop = 0;
for (var _a = 0, rects_2 = rects; _a < rects_2.length; _a++) {
var rect = rects_2[_a];
var seg = segs[rect.index];
var isAbsolute = rect.span.end - rect.span.start > 1; // multi-column?
var isFirstCol = rect.span.start === col;
for (let rect of rects) {
let seg = segs[rect.index];
let isAbsolute = rect.span.end - rect.span.start > 1; // multi-column?
let isFirstCol = rect.span.start === col;
currentMarginTop += rect.levelCoord - currentHeight; // amount of space since bottom of previous seg

@@ -503,12 +419,11 @@ currentHeight = rect.levelCoord + rect.thickness; // height will now be bottom of current seg

}
return { singleColPlacements: singleColPlacements, multiColPlacements: multiColPlacements, leftoverMargins: leftoverMargins };
return { singleColPlacements, multiColPlacements, leftoverMargins };
}
function groupRectsByEachCol(rects, colCnt) {
var rectsByEachCol = [];
for (var col = 0; col < colCnt; col += 1) {
let rectsByEachCol = [];
for (let col = 0; col < colCnt; col += 1) {
rectsByEachCol.push([]);
}
for (var _i = 0, rects_3 = rects; _i < rects_3.length; _i++) {
var rect = rects_3[_i];
for (var col = rect.span.start; col < rect.span.end; col += 1) {
for (let rect of rects) {
for (let col = rect.span.start; col < rect.span.end; col += 1) {
rectsByEachCol[col].push(rect);

@@ -523,11 +438,11 @@ }

}
var eventRange = seg.eventRange;
var origRange = eventRange.range;
var slicedRange = common.intersectRanges(origRange, {
let eventRange = seg.eventRange;
let origRange = eventRange.range;
let slicedRange = common.intersectRanges(origRange, {
start: cells[spanStart].date,
end: common.addDays(cells[spanEnd - 1].date, 1),
});
return __assign(__assign({}, seg), { firstCol: spanStart, lastCol: spanEnd - 1, eventRange: {
return Object.assign(Object.assign({}, seg), { firstCol: spanStart, lastCol: spanEnd - 1, eventRange: {
def: eventRange.def,
ui: __assign(__assign({}, eventRange.ui), { durationEditable: false }),
ui: Object.assign(Object.assign({}, eventRange.ui), { durationEditable: false }),
instance: eventRange.instance,

@@ -537,33 +452,30 @@ range: slicedRange,

}
var DayGridSegHierarchy = /** @class */ (function (_super) {
__extends(DayGridSegHierarchy, _super);
function DayGridSegHierarchy() {
var _this = _super !== null && _super.apply(this, arguments) || this;
class DayGridSegHierarchy extends common.SegHierarchy {
constructor() {
super(...arguments);
// config
_this.hiddenConsumes = false;
this.hiddenConsumes = false;
// allows us to keep hidden entries in the hierarchy so they take up space
_this.forceHidden = {};
return _this;
this.forceHidden = {};
}
DayGridSegHierarchy.prototype.addSegs = function (segInputs) {
var _this = this;
var hiddenSegs = _super.prototype.addSegs.call(this, segInputs);
var entriesByLevel = this.entriesByLevel;
var excludeHidden = function (entry) { return !_this.forceHidden[common.buildEntryKey(entry)]; };
addSegs(segInputs) {
const hiddenSegs = super.addSegs(segInputs);
const { entriesByLevel } = this;
const excludeHidden = (entry) => !this.forceHidden[common.buildEntryKey(entry)];
// remove the forced-hidden segs
for (var level = 0; level < entriesByLevel.length; level += 1) {
for (let level = 0; level < entriesByLevel.length; level += 1) {
entriesByLevel[level] = entriesByLevel[level].filter(excludeHidden);
}
return hiddenSegs;
};
DayGridSegHierarchy.prototype.handleInvalidInsertion = function (insertion, entry, hiddenEntries) {
var _a = this, entriesByLevel = _a.entriesByLevel, forceHidden = _a.forceHidden;
var touchingEntry = insertion.touchingEntry, touchingLevel = insertion.touchingLevel, touchingLateral = insertion.touchingLateral;
}
handleInvalidInsertion(insertion, entry, hiddenEntries) {
const { entriesByLevel, forceHidden } = this;
const { touchingEntry, touchingLevel, touchingLateral } = insertion;
if (this.hiddenConsumes && touchingEntry) {
var touchingEntryId = common.buildEntryKey(touchingEntry);
const touchingEntryId = common.buildEntryKey(touchingEntry);
// if not already hidden
if (!forceHidden[touchingEntryId]) {
if (this.allowReslicing) {
var placeholderEntry = __assign(__assign({}, touchingEntry), { span: common.intersectSpans(touchingEntry.span, entry.span) });
var placeholderEntryId = common.buildEntryKey(placeholderEntry);
const placeholderEntry = Object.assign(Object.assign({}, touchingEntry), { span: common.intersectSpans(touchingEntry.span, entry.span) });
const placeholderEntryId = common.buildEntryKey(placeholderEntry);
forceHidden[placeholderEntryId] = true;

@@ -579,17 +491,15 @@ entriesByLevel[touchingLevel][touchingLateral] = placeholderEntry; // replace touchingEntry with our placeholder

}
return _super.prototype.handleInvalidInsertion.call(this, insertion, entry, hiddenEntries);
};
return DayGridSegHierarchy;
}(common.SegHierarchy));
return super.handleInvalidInsertion(insertion, entry, hiddenEntries);
}
}
var TableRow = /** @class */ (function (_super) {
__extends(TableRow, _super);
function TableRow() {
var _this = _super !== null && _super.apply(this, arguments) || this;
_this.cellElRefs = new common.RefMap(); // the <td>
_this.frameElRefs = new common.RefMap(); // the fc-daygrid-day-frame
_this.fgElRefs = new common.RefMap(); // the fc-daygrid-day-events
_this.segHarnessRefs = new common.RefMap(); // indexed by "instanceId:firstCol"
_this.rootElRef = common.createRef();
_this.state = {
class TableRow extends common.DateComponent {
constructor() {
super(...arguments);
this.cellElRefs = new common.RefMap(); // the <td>
this.frameElRefs = new common.RefMap(); // the fc-daygrid-day-frame
this.fgElRefs = new common.RefMap(); // the fc-daygrid-day-events
this.segHarnessRefs = new common.RefMap(); // indexed by "instanceId:firstCol"
this.rootElRef = common.createRef();
this.state = {
framePositions: null,

@@ -599,15 +509,13 @@ maxContentHeight: null,

};
return _this;
}
TableRow.prototype.render = function () {
var _this = this;
var _a = this, props = _a.props, state = _a.state, context = _a.context;
var options = context.options;
var colCnt = props.cells.length;
var businessHoursByCol = splitSegsByFirstCol(props.businessHourSegs, colCnt);
var bgEventSegsByCol = splitSegsByFirstCol(props.bgEventSegs, colCnt);
var highlightSegsByCol = splitSegsByFirstCol(this.getHighlightSegs(), colCnt);
var mirrorSegsByCol = splitSegsByFirstCol(this.getMirrorSegs(), colCnt);
var _b = computeFgSegPlacement(common.sortEventSegs(props.fgEventSegs, options.eventOrder), props.dayMaxEvents, props.dayMaxEventRows, options.eventOrderStrict, state.eventInstanceHeights, state.maxContentHeight, props.cells), singleColPlacements = _b.singleColPlacements, multiColPlacements = _b.multiColPlacements, moreCnts = _b.moreCnts, moreMarginTops = _b.moreMarginTops;
var isForcedInvisible = // TODO: messy way to compute this
render() {
let { props, state, context } = this;
let { options } = context;
let colCnt = props.cells.length;
let businessHoursByCol = splitSegsByFirstCol(props.businessHourSegs, colCnt);
let bgEventSegsByCol = splitSegsByFirstCol(props.bgEventSegs, colCnt);
let highlightSegsByCol = splitSegsByFirstCol(this.getHighlightSegs(), colCnt);
let mirrorSegsByCol = splitSegsByFirstCol(this.getMirrorSegs(), colCnt);
let { singleColPlacements, multiColPlacements, moreCnts, moreMarginTops } = computeFgSegPlacement(common.sortEventSegs(props.fgEventSegs, options.eventOrder), props.dayMaxEvents, props.dayMaxEventRows, options.eventOrderStrict, state.eventInstanceHeights, state.maxContentHeight, props.cells);
let isForcedInvisible = // TODO: messy way to compute this
(props.eventDrag && props.eventDrag.affectedInstances) ||

@@ -618,6 +526,6 @@ (props.eventResize && props.eventResize.affectedInstances) ||

props.renderIntro && props.renderIntro(),
props.cells.map(function (cell, col) {
var normalFgNodes = _this.renderFgSegs(col, props.forPrint ? singleColPlacements[col] : multiColPlacements[col], props.todayRange, isForcedInvisible);
var mirrorFgNodes = _this.renderFgSegs(col, buildMirrorPlacements(mirrorSegsByCol[col], multiColPlacements), props.todayRange, {}, Boolean(props.eventDrag), Boolean(props.eventResize), false);
return (common.createElement(TableCell, { key: cell.key, elRef: _this.cellElRefs.createRef(cell.key), innerElRef: _this.frameElRefs.createRef(cell.key) /* FF <td> problem, but okay to use for left/right. TODO: rename prop */, dateProfile: props.dateProfile, date: cell.date, showDayNumber: props.showDayNumbers, showWeekNumber: props.showWeekNumbers && col === 0, forceDayTop: props.showWeekNumbers /* even displaying weeknum for row, not necessarily day */, todayRange: props.todayRange, eventSelection: props.eventSelection, eventDrag: props.eventDrag, eventResize: props.eventResize, extraHookProps: cell.extraHookProps, extraDataAttrs: cell.extraDataAttrs, extraClassNames: cell.extraClassNames, extraDateSpan: cell.extraDateSpan, moreCnt: moreCnts[col], moreMarginTop: moreMarginTops[col], singlePlacements: singleColPlacements[col], fgContentElRef: _this.fgElRefs.createRef(cell.key), fgContent: ( // Fragment scopes the keys
props.cells.map((cell, col) => {
let normalFgNodes = this.renderFgSegs(col, props.forPrint ? singleColPlacements[col] : multiColPlacements[col], props.todayRange, isForcedInvisible);
let mirrorFgNodes = this.renderFgSegs(col, buildMirrorPlacements(mirrorSegsByCol[col], multiColPlacements), props.todayRange, {}, Boolean(props.eventDrag), Boolean(props.eventResize), false);
return (common.createElement(TableCell, { key: cell.key, elRef: this.cellElRefs.createRef(cell.key), innerElRef: this.frameElRefs.createRef(cell.key) /* FF <td> problem, but okay to use for left/right. TODO: rename prop */, dateProfile: props.dateProfile, date: cell.date, showDayNumber: props.showDayNumbers, showWeekNumber: props.showWeekNumbers && col === 0, forceDayTop: props.showWeekNumbers /* even displaying weeknum for row, not necessarily day */, todayRange: props.todayRange, eventSelection: props.eventSelection, eventDrag: props.eventDrag, eventResize: props.eventResize, extraHookProps: cell.extraHookProps, extraDataAttrs: cell.extraDataAttrs, extraClassNames: cell.extraClassNames, extraDateSpan: cell.extraDateSpan, moreCnt: moreCnts[col], moreMarginTop: moreMarginTops[col], singlePlacements: singleColPlacements[col], fgContentElRef: this.fgElRefs.createRef(cell.key), fgContent: ( // Fragment scopes the keys
common.createElement(common.Fragment, null,

@@ -627,16 +535,16 @@ common.createElement(common.Fragment, null, normalFgNodes),

common.createElement(common.Fragment, null,
_this.renderFillSegs(highlightSegsByCol[col], 'highlight'),
_this.renderFillSegs(businessHoursByCol[col], 'non-business'),
_this.renderFillSegs(bgEventSegsByCol[col], 'bg-event'))) }));
this.renderFillSegs(highlightSegsByCol[col], 'highlight'),
this.renderFillSegs(businessHoursByCol[col], 'non-business'),
this.renderFillSegs(bgEventSegsByCol[col], 'bg-event'))) }));
})));
};
TableRow.prototype.componentDidMount = function () {
}
componentDidMount() {
this.updateSizing(true);
};
TableRow.prototype.componentDidUpdate = function (prevProps, prevState) {
var currentProps = this.props;
}
componentDidUpdate(prevProps, prevState) {
let currentProps = this.props;
this.updateSizing(!common.isPropsEqual(prevProps, currentProps));
};
TableRow.prototype.getHighlightSegs = function () {
var props = this.props;
}
getHighlightSegs() {
let { props } = this;
if (props.eventDrag && props.eventDrag.segs.length) { // messy check

@@ -649,5 +557,5 @@ return props.eventDrag.segs;

return props.dateSelectionSegs;
};
TableRow.prototype.getMirrorSegs = function () {
var props = this.props;
}
getMirrorSegs() {
let { props } = this;
if (props.eventResize && props.eventResize.segs.length) { // messy check

@@ -657,20 +565,19 @@ return props.eventResize.segs;

return [];
};
TableRow.prototype.renderFgSegs = function (col, segPlacements, todayRange, isForcedInvisible, isDragging, isResizing, isDateSelecting) {
var context = this.context;
var eventSelection = this.props.eventSelection;
var framePositions = this.state.framePositions;
var defaultDisplayEventEnd = this.props.cells.length === 1; // colCnt === 1
var isMirror = isDragging || isResizing || isDateSelecting;
var nodes = [];
}
renderFgSegs(col, segPlacements, todayRange, isForcedInvisible, isDragging, isResizing, isDateSelecting) {
let { context } = this;
let { eventSelection } = this.props;
let { framePositions } = this.state;
let defaultDisplayEventEnd = this.props.cells.length === 1; // colCnt === 1
let isMirror = isDragging || isResizing || isDateSelecting;
let nodes = [];
if (framePositions) {
for (var _i = 0, segPlacements_1 = segPlacements; _i < segPlacements_1.length; _i++) {
var placement = segPlacements_1[_i];
var seg = placement.seg;
var instanceId = seg.eventRange.instance.instanceId;
var key = instanceId + ':' + col;
var isVisible = placement.isVisible && !isForcedInvisible[instanceId];
var isAbsolute = placement.isAbsolute;
var left = '';
var right = '';
for (let placement of segPlacements) {
let { seg } = placement;
let { instanceId } = seg.eventRange.instance;
let key = instanceId + ':' + col;
let isVisible = placement.isVisible && !isForcedInvisible[instanceId];
let isAbsolute = placement.isAbsolute;
let left = '';
let right = '';
if (isAbsolute) {

@@ -694,18 +601,17 @@ if (context.isRtl) {

top: isAbsolute ? placement.absoluteTop : '',
left: left,
right: right,
} }, hasListItemDisplay(seg) ? (common.createElement(TableListItemEvent, __assign({ seg: seg, isDragging: isDragging, isSelected: instanceId === eventSelection, defaultDisplayEventEnd: defaultDisplayEventEnd }, common.getSegMeta(seg, todayRange)))) : (common.createElement(TableBlockEvent, __assign({ seg: seg, isDragging: isDragging, isResizing: isResizing, isDateSelecting: isDateSelecting, isSelected: instanceId === eventSelection, defaultDisplayEventEnd: defaultDisplayEventEnd }, common.getSegMeta(seg, todayRange))))));
left,
right,
} }, hasListItemDisplay(seg) ? (common.createElement(TableListItemEvent, Object.assign({ seg: seg, isDragging: isDragging, isSelected: instanceId === eventSelection, defaultDisplayEventEnd: defaultDisplayEventEnd }, common.getSegMeta(seg, todayRange)))) : (common.createElement(TableBlockEvent, Object.assign({ seg: seg, isDragging: isDragging, isResizing: isResizing, isDateSelecting: isDateSelecting, isSelected: instanceId === eventSelection, defaultDisplayEventEnd: defaultDisplayEventEnd }, common.getSegMeta(seg, todayRange))))));
}
}
return nodes;
};
TableRow.prototype.renderFillSegs = function (segs, fillType) {
var isRtl = this.context.isRtl;
var todayRange = this.props.todayRange;
var framePositions = this.state.framePositions;
var nodes = [];
}
renderFillSegs(segs, fillType) {
let { isRtl } = this.context;
let { todayRange } = this.props;
let { framePositions } = this.state;
let nodes = [];
if (framePositions) {
for (var _i = 0, segs_1 = segs; _i < segs_1.length; _i++) {
var seg = segs_1[_i];
var leftRightCss = isRtl ? {
for (let seg of segs) {
let leftRightCss = isRtl ? {
right: 0,

@@ -718,10 +624,10 @@ left: framePositions.lefts[seg.lastCol] - framePositions.lefts[seg.firstCol],

nodes.push(common.createElement("div", { key: common.buildEventRangeKey(seg.eventRange), className: "fc-daygrid-bg-harness", style: leftRightCss }, fillType === 'bg-event' ?
common.createElement(common.BgEvent, __assign({ seg: seg }, common.getSegMeta(seg, todayRange))) :
common.createElement(common.BgEvent, Object.assign({ seg: seg }, common.getSegMeta(seg, todayRange))) :
common.renderFill(fillType)));
}
}
return common.createElement.apply(void 0, __spreadArray([common.Fragment, {}], nodes));
};
TableRow.prototype.updateSizing = function (isExternalSizingChange) {
var _a = this, props = _a.props, frameElRefs = _a.frameElRefs;
return common.createElement(common.Fragment, {}, ...nodes);
}
updateSizing(isExternalSizingChange) {
let { props, frameElRefs } = this;
if (!props.forPrint &&

@@ -731,5 +637,5 @@ props.clientWidth !== null // positioning ready?

if (isExternalSizingChange) {
var frameEls = props.cells.map(function (cell) { return frameElRefs.currentMap[cell.key]; });
let frameEls = props.cells.map((cell) => frameElRefs.currentMap[cell.key]);
if (frameEls.length) {
var originEl = this.rootElRef.current;
let originEl = this.rootElRef.current;
this.setState({

@@ -741,5 +647,5 @@ framePositions: new common.PositionCache(originEl, frameEls, true, // isHorizontal

}
var oldInstanceHeights = this.state.eventInstanceHeights;
var newInstanceHeights = this.queryEventInstanceHeights();
var limitByContentHeight = props.dayMaxEvents === true || props.dayMaxEventRows === true;
const oldInstanceHeights = this.state.eventInstanceHeights;
const newInstanceHeights = this.queryEventInstanceHeights();
const limitByContentHeight = props.dayMaxEvents === true || props.dayMaxEventRows === true;
this.safeSetState({

@@ -749,30 +655,29 @@ // HACK to prevent oscillations of events being shown/hidden from max-event-rows

// TODO: always display all events, as visibility:hidden?
eventInstanceHeights: __assign(__assign({}, oldInstanceHeights), newInstanceHeights),
eventInstanceHeights: Object.assign(Object.assign({}, oldInstanceHeights), newInstanceHeights),
maxContentHeight: limitByContentHeight ? this.computeMaxContentHeight() : null,
});
}
};
TableRow.prototype.queryEventInstanceHeights = function () {
var segElMap = this.segHarnessRefs.currentMap;
var eventInstanceHeights = {};
}
queryEventInstanceHeights() {
let segElMap = this.segHarnessRefs.currentMap;
let eventInstanceHeights = {};
// get the max height amongst instance segs
for (var key in segElMap) {
var height = Math.round(segElMap[key].getBoundingClientRect().height);
var instanceId = key.split(':')[0]; // deconstruct how renderFgSegs makes the key
for (let key in segElMap) {
let height = Math.round(segElMap[key].getBoundingClientRect().height);
let instanceId = key.split(':')[0]; // deconstruct how renderFgSegs makes the key
eventInstanceHeights[instanceId] = Math.max(eventInstanceHeights[instanceId] || 0, height);
}
return eventInstanceHeights;
};
TableRow.prototype.computeMaxContentHeight = function () {
var firstKey = this.props.cells[0].key;
var cellEl = this.cellElRefs.currentMap[firstKey];
var fcContainerEl = this.fgElRefs.currentMap[firstKey];
}
computeMaxContentHeight() {
let firstKey = this.props.cells[0].key;
let cellEl = this.cellElRefs.currentMap[firstKey];
let fcContainerEl = this.fgElRefs.currentMap[firstKey];
return cellEl.getBoundingClientRect().bottom - fcContainerEl.getBoundingClientRect().top;
};
TableRow.prototype.getCellEls = function () {
var elMap = this.cellElRefs.currentMap;
return this.props.cells.map(function (cell) { return elMap[cell.key]; });
};
return TableRow;
}(common.DateComponent));
}
getCellEls() {
let elMap = this.cellElRefs.currentMap;
return this.props.cells.map((cell) => elMap[cell.key]);
}
}
TableRow.addStateEquality({

@@ -785,5 +690,5 @@ eventInstanceHeights: common.isPropsEqual,

}
var topsByInstanceId = buildAbsoluteTopHash(colPlacements); // TODO: cache this at first render?
return mirrorSegs.map(function (seg) { return ({
seg: seg,
let topsByInstanceId = buildAbsoluteTopHash(colPlacements); // TODO: cache this at first render?
return mirrorSegs.map((seg) => ({
seg,
isVisible: true,

@@ -793,10 +698,8 @@ isAbsolute: true,

marginTop: 0,
}); });
}));
}
function buildAbsoluteTopHash(colPlacements) {
var topsByInstanceId = {};
for (var _i = 0, colPlacements_1 = colPlacements; _i < colPlacements_1.length; _i++) {
var placements = colPlacements_1[_i];
for (var _a = 0, placements_1 = placements; _a < placements_1.length; _a++) {
var placement = placements_1[_a];
let topsByInstanceId = {};
for (let placements of colPlacements) {
for (let placement of placements) {
topsByInstanceId[placement.seg.eventRange.instance.instanceId] = placement.absoluteTop;

@@ -808,39 +711,36 @@ }

var Table = /** @class */ (function (_super) {
__extends(Table, _super);
function Table() {
var _this = _super !== null && _super.apply(this, arguments) || this;
_this.splitBusinessHourSegs = common.memoize(splitSegsByRow);
_this.splitBgEventSegs = common.memoize(splitSegsByRow);
_this.splitFgEventSegs = common.memoize(splitSegsByRow);
_this.splitDateSelectionSegs = common.memoize(splitSegsByRow);
_this.splitEventDrag = common.memoize(splitInteractionByRow);
_this.splitEventResize = common.memoize(splitInteractionByRow);
_this.rowRefs = new common.RefMap();
_this.handleRootEl = function (rootEl) {
_this.rootEl = rootEl;
class Table extends common.DateComponent {
constructor() {
super(...arguments);
this.splitBusinessHourSegs = common.memoize(splitSegsByRow);
this.splitBgEventSegs = common.memoize(splitSegsByRow);
this.splitFgEventSegs = common.memoize(splitSegsByRow);
this.splitDateSelectionSegs = common.memoize(splitSegsByRow);
this.splitEventDrag = common.memoize(splitInteractionByRow);
this.splitEventResize = common.memoize(splitInteractionByRow);
this.rowRefs = new common.RefMap();
this.handleRootEl = (rootEl) => {
this.rootEl = rootEl;
if (rootEl) {
_this.context.registerInteractiveComponent(_this, {
this.context.registerInteractiveComponent(this, {
el: rootEl,
isHitComboAllowed: _this.props.isHitComboAllowed,
isHitComboAllowed: this.props.isHitComboAllowed,
});
}
else {
_this.context.unregisterInteractiveComponent(_this);
this.context.unregisterInteractiveComponent(this);
}
};
return _this;
}
Table.prototype.render = function () {
var _this = this;
var props = this.props;
var dateProfile = props.dateProfile, dayMaxEventRows = props.dayMaxEventRows, dayMaxEvents = props.dayMaxEvents, expandRows = props.expandRows;
var rowCnt = props.cells.length;
var businessHourSegsByRow = this.splitBusinessHourSegs(props.businessHourSegs, rowCnt);
var bgEventSegsByRow = this.splitBgEventSegs(props.bgEventSegs, rowCnt);
var fgEventSegsByRow = this.splitFgEventSegs(props.fgEventSegs, rowCnt);
var dateSelectionSegsByRow = this.splitDateSelectionSegs(props.dateSelectionSegs, rowCnt);
var eventDragByRow = this.splitEventDrag(props.eventDrag, rowCnt);
var eventResizeByRow = this.splitEventResize(props.eventResize, rowCnt);
var limitViaBalanced = dayMaxEvents === true || dayMaxEventRows === true;
render() {
let { props } = this;
let { dateProfile, dayMaxEventRows, dayMaxEvents, expandRows } = props;
let rowCnt = props.cells.length;
let businessHourSegsByRow = this.splitBusinessHourSegs(props.businessHourSegs, rowCnt);
let bgEventSegsByRow = this.splitBgEventSegs(props.bgEventSegs, rowCnt);
let fgEventSegsByRow = this.splitFgEventSegs(props.fgEventSegs, rowCnt);
let dateSelectionSegsByRow = this.splitDateSelectionSegs(props.dateSelectionSegs, rowCnt);
let eventDragByRow = this.splitEventDrag(props.eventDrag, rowCnt);
let eventResizeByRow = this.splitEventResize(props.eventResize, rowCnt);
let limitViaBalanced = dayMaxEvents === true || dayMaxEventRows === true;
// if rows can't expand to fill fixed height, can't do balanced-height event limit

@@ -853,3 +753,3 @@ // TODO: best place to normalize these options?

}
var classNames = [
let classNames = [
'fc-daygrid-body',

@@ -865,3 +765,3 @@ limitViaBalanced ? 'fc-daygrid-body-balanced' : 'fc-daygrid-body-unbalanced',

} },
common.createElement(common.NowTimer, { unit: "day" }, function (nowDate, todayRange) { return (common.createElement(common.Fragment, null,
common.createElement(common.NowTimer, { unit: "day" }, (nowDate, todayRange) => (common.createElement(common.Fragment, null,
common.createElement("table", { role: "presentation", className: "fc-scrollgrid-sync-table", style: {

@@ -873,11 +773,11 @@ width: props.clientWidth,

props.colGroupNode,
common.createElement("tbody", { role: "presentation" }, props.cells.map(function (cells, row) { return (common.createElement(TableRow, { ref: _this.rowRefs.createRef(row), key: cells.length
common.createElement("tbody", { role: "presentation" }, props.cells.map((cells, row) => (common.createElement(TableRow, { ref: this.rowRefs.createRef(row), key: cells.length
? cells[0].date.toISOString() /* best? or put key on cell? or use diff formatter? */
: row // in case there are no cells (like when resource view is loading)
, showDayNumbers: rowCnt > 1, showWeekNumbers: props.showWeekNumbers, todayRange: todayRange, dateProfile: dateProfile, cells: cells, renderIntro: props.renderRowIntro, businessHourSegs: businessHourSegsByRow[row], eventSelection: props.eventSelection, bgEventSegs: bgEventSegsByRow[row].filter(isSegAllDay) /* hack */, fgEventSegs: fgEventSegsByRow[row], dateSelectionSegs: dateSelectionSegsByRow[row], eventDrag: eventDragByRow[row], eventResize: eventResizeByRow[row], dayMaxEvents: dayMaxEvents, dayMaxEventRows: dayMaxEventRows, clientWidth: props.clientWidth, clientHeight: props.clientHeight, forPrint: props.forPrint })); }))))); })));
};
, showDayNumbers: rowCnt > 1, showWeekNumbers: props.showWeekNumbers, todayRange: todayRange, dateProfile: dateProfile, cells: cells, renderIntro: props.renderRowIntro, businessHourSegs: businessHourSegsByRow[row], eventSelection: props.eventSelection, bgEventSegs: bgEventSegsByRow[row].filter(isSegAllDay) /* hack */, fgEventSegs: fgEventSegsByRow[row], dateSelectionSegs: dateSelectionSegsByRow[row], eventDrag: eventDragByRow[row], eventResize: eventResizeByRow[row], dayMaxEvents: dayMaxEvents, dayMaxEventRows: dayMaxEventRows, clientWidth: props.clientWidth, clientHeight: props.clientHeight, forPrint: props.forPrint }))))))))));
}
// Hit System
// ----------------------------------------------------------------------------------------------------
Table.prototype.prepareHits = function () {
this.rowPositions = new common.PositionCache(this.rootEl, this.rowRefs.collect().map(function (rowObj) { return rowObj.getCellEls()[0]; }), // first cell el in each row. TODO: not optimal
prepareHits() {
this.rowPositions = new common.PositionCache(this.rootEl, this.rowRefs.collect().map((rowObj) => rowObj.getCellEls()[0]), // first cell el in each row. TODO: not optimal
false, true);

@@ -887,12 +787,12 @@ this.colPositions = new common.PositionCache(this.rootEl, this.rowRefs.currentMap[0].getCellEls(), // cell els in first row

false);
};
Table.prototype.queryHit = function (positionLeft, positionTop) {
var _a = this, colPositions = _a.colPositions, rowPositions = _a.rowPositions;
var col = colPositions.leftToIndex(positionLeft);
var row = rowPositions.topToIndex(positionTop);
}
queryHit(positionLeft, positionTop) {
let { colPositions, rowPositions } = this;
let col = colPositions.leftToIndex(positionLeft);
let row = rowPositions.topToIndex(positionTop);
if (row != null && col != null) {
var cell = this.props.cells[row][col];
let cell = this.props.cells[row][col];
return {
dateProfile: this.props.dateProfile,
dateSpan: __assign({ range: this.getCellRange(row, col), allDay: true }, cell.extraDateSpan),
dateSpan: Object.assign({ range: this.getCellRange(row, col), allDay: true }, cell.extraDateSpan),
dayEl: this.getCellEl(row, col),

@@ -909,13 +809,12 @@ rect: {

return null;
};
Table.prototype.getCellEl = function (row, col) {
}
getCellEl(row, col) {
return this.rowRefs.currentMap[row].getCellEls()[col]; // TODO: not optimal
};
Table.prototype.getCellRange = function (row, col) {
var start = this.props.cells[row][col].date;
var end = common.addDays(start, 1);
return { start: start, end: end };
};
return Table;
}(common.DateComponent));
}
getCellRange(row, col) {
let start = this.props.cells[row][col].date;
let end = common.addDays(start, 1);
return { start, end };
}
}
function isSegAllDay(seg) {

@@ -925,69 +824,55 @@ return seg.eventRange.def.allDay;

var DayTableSlicer = /** @class */ (function (_super) {
__extends(DayTableSlicer, _super);
function DayTableSlicer() {
var _this = _super !== null && _super.apply(this, arguments) || this;
_this.forceDayIfListItem = true;
return _this;
class DayTableSlicer extends common.Slicer {
constructor() {
super(...arguments);
this.forceDayIfListItem = true;
}
DayTableSlicer.prototype.sliceRange = function (dateRange, dayTableModel) {
sliceRange(dateRange, dayTableModel) {
return dayTableModel.sliceRange(dateRange);
};
return DayTableSlicer;
}(common.Slicer));
}
}
var DayTable = /** @class */ (function (_super) {
__extends(DayTable, _super);
function DayTable() {
var _this = _super !== null && _super.apply(this, arguments) || this;
_this.slicer = new DayTableSlicer();
_this.tableRef = common.createRef();
return _this;
class DayTable extends common.DateComponent {
constructor() {
super(...arguments);
this.slicer = new DayTableSlicer();
this.tableRef = common.createRef();
}
DayTable.prototype.render = function () {
var _a = this, props = _a.props, context = _a.context;
return (common.createElement(Table, __assign({ ref: this.tableRef }, this.slicer.sliceProps(props, props.dateProfile, props.nextDayThreshold, context, props.dayTableModel), { dateProfile: props.dateProfile, cells: props.dayTableModel.cells, colGroupNode: props.colGroupNode, tableMinWidth: props.tableMinWidth, renderRowIntro: props.renderRowIntro, dayMaxEvents: props.dayMaxEvents, dayMaxEventRows: props.dayMaxEventRows, showWeekNumbers: props.showWeekNumbers, expandRows: props.expandRows, headerAlignElRef: props.headerAlignElRef, clientWidth: props.clientWidth, clientHeight: props.clientHeight, forPrint: props.forPrint })));
};
return DayTable;
}(common.DateComponent));
render() {
let { props, context } = this;
return (common.createElement(Table, Object.assign({ ref: this.tableRef }, this.slicer.sliceProps(props, props.dateProfile, props.nextDayThreshold, context, props.dayTableModel), { dateProfile: props.dateProfile, cells: props.dayTableModel.cells, colGroupNode: props.colGroupNode, tableMinWidth: props.tableMinWidth, renderRowIntro: props.renderRowIntro, dayMaxEvents: props.dayMaxEvents, dayMaxEventRows: props.dayMaxEventRows, showWeekNumbers: props.showWeekNumbers, expandRows: props.expandRows, headerAlignElRef: props.headerAlignElRef, clientWidth: props.clientWidth, clientHeight: props.clientHeight, forPrint: props.forPrint })));
}
}
var DayTableView = /** @class */ (function (_super) {
__extends(DayTableView, _super);
function DayTableView() {
var _this = _super !== null && _super.apply(this, arguments) || this;
_this.buildDayTableModel = common.memoize(buildDayTableModel);
_this.headerRef = common.createRef();
_this.tableRef = common.createRef();
return _this;
class DayTableView extends TableView {
constructor() {
super(...arguments);
this.buildDayTableModel = common.memoize(buildDayTableModel);
this.headerRef = common.createRef();
this.tableRef = common.createRef();
}
DayTableView.prototype.render = function () {
var _this = this;
var _a = this.context, options = _a.options, dateProfileGenerator = _a.dateProfileGenerator;
var props = this.props;
var dayTableModel = this.buildDayTableModel(props.dateProfile, dateProfileGenerator);
var headerContent = options.dayHeaders && (common.createElement(common.DayHeader, { ref: this.headerRef, dateProfile: props.dateProfile, dates: dayTableModel.headerDates, datesRepDistinctDays: dayTableModel.rowCnt === 1 }));
var bodyContent = function (contentArg) { return (common.createElement(DayTable, { ref: _this.tableRef, dateProfile: props.dateProfile, dayTableModel: dayTableModel, businessHours: props.businessHours, dateSelection: props.dateSelection, eventStore: props.eventStore, eventUiBases: props.eventUiBases, eventSelection: props.eventSelection, eventDrag: props.eventDrag, eventResize: props.eventResize, nextDayThreshold: options.nextDayThreshold, colGroupNode: contentArg.tableColGroupNode, tableMinWidth: contentArg.tableMinWidth, dayMaxEvents: options.dayMaxEvents, dayMaxEventRows: options.dayMaxEventRows, showWeekNumbers: options.weekNumbers, expandRows: !props.isHeightAuto, headerAlignElRef: _this.headerElRef, clientWidth: contentArg.clientWidth, clientHeight: contentArg.clientHeight, forPrint: props.forPrint })); };
render() {
let { options, dateProfileGenerator } = this.context;
let { props } = this;
let dayTableModel = this.buildDayTableModel(props.dateProfile, dateProfileGenerator);
let headerContent = options.dayHeaders && (common.createElement(common.DayHeader, { ref: this.headerRef, dateProfile: props.dateProfile, dates: dayTableModel.headerDates, datesRepDistinctDays: dayTableModel.rowCnt === 1 }));
let bodyContent = (contentArg) => (common.createElement(DayTable, { ref: this.tableRef, dateProfile: props.dateProfile, dayTableModel: dayTableModel, businessHours: props.businessHours, dateSelection: props.dateSelection, eventStore: props.eventStore, eventUiBases: props.eventUiBases, eventSelection: props.eventSelection, eventDrag: props.eventDrag, eventResize: props.eventResize, nextDayThreshold: options.nextDayThreshold, colGroupNode: contentArg.tableColGroupNode, tableMinWidth: contentArg.tableMinWidth, dayMaxEvents: options.dayMaxEvents, dayMaxEventRows: options.dayMaxEventRows, showWeekNumbers: options.weekNumbers, expandRows: !props.isHeightAuto, headerAlignElRef: this.headerElRef, clientWidth: contentArg.clientWidth, clientHeight: contentArg.clientHeight, forPrint: props.forPrint }));
return options.dayMinWidth
? this.renderHScrollLayout(headerContent, bodyContent, dayTableModel.colCnt, options.dayMinWidth)
: this.renderSimpleLayout(headerContent, bodyContent);
};
return DayTableView;
}(TableView));
}
}
function buildDayTableModel(dateProfile, dateProfileGenerator) {
var daySeries = new common.DaySeriesModel(dateProfile.renderRange, dateProfileGenerator);
let daySeries = new common.DaySeriesModel(dateProfile.renderRange, dateProfileGenerator);
return new common.DayTableModel(daySeries, /year|month|week/.test(dateProfile.currentRangeUnit));
}
var TableDateProfileGenerator = /** @class */ (function (_super) {
__extends(TableDateProfileGenerator, _super);
function TableDateProfileGenerator() {
return _super !== null && _super.apply(this, arguments) || this;
}
class TableDateProfileGenerator extends common.DateProfileGenerator {
// Computes the date range that will be rendered.
TableDateProfileGenerator.prototype.buildRenderRange = function (currentRange, currentRangeUnit, isRangeAllDay) {
var dateEnv = this.props.dateEnv;
var renderRange = _super.prototype.buildRenderRange.call(this, currentRange, currentRangeUnit, isRangeAllDay);
var start = renderRange.start;
var end = renderRange.end;
var endOfWeek;
buildRenderRange(currentRange, currentRangeUnit, isRangeAllDay) {
let { dateEnv } = this.props;
let renderRange = super.buildRenderRange(currentRange, currentRangeUnit, isRangeAllDay);
let start = renderRange.start;
let end = renderRange.end;
let endOfWeek;
// year and month views should be aligned with weeks. this is already done for week

@@ -1005,11 +890,40 @@ if (/^(year|month)$/.test(currentRangeUnit)) {

this.props.fixedWeekCount) {
var rowCnt = Math.ceil(// could be partial weeks due to hiddenDays
let rowCnt = Math.ceil(// could be partial weeks due to hiddenDays
common.diffWeeks(start, end));
end = common.addWeeks(end, 6 - rowCnt);
}
return { start: start, end: end };
};
return TableDateProfileGenerator;
}(common.DateProfileGenerator));
return { start, end };
}
}
function styleInject(css, ref) {
if ( ref === void 0 ) ref = {};
var insertAt = ref.insertAt;
if (!css || typeof document === 'undefined') { return; }
var head = document.head || document.getElementsByTagName('head')[0];
var style = document.createElement('style');
style.type = 'text/css';
if (insertAt === 'top') {
if (head.firstChild) {
head.insertBefore(style, head.firstChild);
} else {
head.appendChild(style);
}
} else {
head.appendChild(style);
}
if (style.styleSheet) {
style.styleSheet.cssText = css;
} else {
style.appendChild(document.createTextNode(css));
}
}
var css_248z = "\n:root {\n --fc-daygrid-event-dot-width: 8px;\n}\n/* help things clear margins of inner content */\n.fc-daygrid-day-frame,\n.fc-daygrid-day-events,\n.fc-daygrid-event-harness { /* for event top/bottom margins */\n}\n.fc-daygrid-day-frame:before, .fc-daygrid-day-events:before, .fc-daygrid-event-harness:before {\n content: \"\";\n clear: both;\n display: table; }\n.fc-daygrid-day-frame:after, .fc-daygrid-day-events:after, .fc-daygrid-event-harness:after {\n content: \"\";\n clear: both;\n display: table; }\n.fc .fc-daygrid-body { /* a <div> that wraps the table */\n position: relative;\n z-index: 1; /* container inner z-index's because <tr>s can't do it */\n }\n.fc .fc-daygrid-day.fc-day-today {\n background-color: rgba(255, 220, 40, 0.15);\n background-color: var(--fc-today-bg-color, rgba(255, 220, 40, 0.15));\n }\n.fc .fc-daygrid-day-frame {\n position: relative;\n min-height: 100%; /* seems to work better than `height` because sets height after rows/cells naturally do it */\n }\n.fc {\n\n /* cell top */\n\n}\n.fc .fc-daygrid-day-top {\n display: flex;\n flex-direction: row-reverse;\n }\n.fc .fc-day-other .fc-daygrid-day-top {\n opacity: 0.3;\n }\n.fc {\n\n /* day number (within cell top) */\n\n}\n.fc .fc-daygrid-day-number {\n position: relative;\n z-index: 4;\n padding: 4px;\n }\n.fc {\n\n /* event container */\n\n}\n.fc .fc-daygrid-day-events {\n margin-top: 1px; /* needs to be margin, not padding, so that available cell height can be computed */\n }\n.fc {\n\n /* positioning for balanced vs natural */\n\n}\n.fc .fc-daygrid-body-balanced .fc-daygrid-day-events {\n position: absolute;\n left: 0;\n right: 0;\n }\n.fc .fc-daygrid-body-unbalanced .fc-daygrid-day-events {\n position: relative; /* for containing abs positioned event harnesses */\n min-height: 2em; /* in addition to being a min-height during natural height, equalizes the heights a little bit */\n }\n.fc .fc-daygrid-body-natural { /* can coexist with -unbalanced */\n }\n.fc .fc-daygrid-body-natural .fc-daygrid-day-events {\n margin-bottom: 1em;\n }\n.fc {\n\n /* event harness */\n\n}\n.fc .fc-daygrid-event-harness {\n position: relative;\n }\n.fc .fc-daygrid-event-harness-abs {\n position: absolute;\n top: 0; /* fallback coords for when cannot yet be computed */\n left: 0; /* */\n right: 0; /* */\n }\n.fc .fc-daygrid-bg-harness {\n position: absolute;\n top: 0;\n bottom: 0;\n }\n.fc {\n\n /* bg content */\n\n}\n.fc .fc-daygrid-day-bg .fc-non-business { z-index: 1 }\n.fc .fc-daygrid-day-bg .fc-bg-event { z-index: 2 }\n.fc .fc-daygrid-day-bg .fc-highlight { z-index: 3 }\n.fc {\n\n /* events */\n\n}\n.fc .fc-daygrid-event {\n z-index: 6;\n margin-top: 1px;\n }\n.fc .fc-daygrid-event.fc-event-mirror {\n z-index: 7;\n }\n.fc {\n\n /* cell bottom (within day-events) */\n\n}\n.fc .fc-daygrid-day-bottom {\n font-size: .85em;\n padding: 2px 3px 0\n }\n.fc .fc-daygrid-day-bottom:before {\n content: \"\";\n clear: both;\n display: table; }\n.fc .fc-daygrid-more-link {\n position: relative;\n z-index: 4;\n cursor: pointer;\n }\n.fc {\n\n /* week number (within frame) */\n\n}\n.fc .fc-daygrid-week-number {\n position: absolute;\n z-index: 5;\n top: 0;\n padding: 2px;\n min-width: 1.5em;\n text-align: center;\n background-color: rgba(208, 208, 208, 0.3);\n background-color: var(--fc-neutral-bg-color, rgba(208, 208, 208, 0.3));\n color: #808080;\n color: var(--fc-neutral-text-color, #808080);\n }\n.fc {\n\n /* popover */\n\n}\n.fc .fc-more-popover .fc-popover-body {\n min-width: 220px;\n padding: 10px;\n }\n.fc-direction-ltr .fc-daygrid-event.fc-event-start,\n.fc-direction-rtl .fc-daygrid-event.fc-event-end {\n margin-left: 2px;\n}\n.fc-direction-ltr .fc-daygrid-event.fc-event-end,\n.fc-direction-rtl .fc-daygrid-event.fc-event-start {\n margin-right: 2px;\n}\n.fc-direction-ltr .fc-daygrid-week-number {\n left: 0;\n border-radius: 0 0 3px 0;\n }\n.fc-direction-rtl .fc-daygrid-week-number {\n right: 0;\n border-radius: 0 0 0 3px;\n }\n.fc-liquid-hack .fc-daygrid-day-frame {\n position: static; /* will cause inner absolute stuff to expand to <td> */\n }\n.fc-daygrid-event { /* make root-level, because will be dragged-and-dropped outside of a component root */\n position: relative; /* for z-indexes assigned later */\n white-space: nowrap;\n border-radius: 3px; /* dot event needs this to when selected */\n font-size: .85em;\n font-size: var(--fc-small-font-size, .85em);\n}\n/* --- the rectangle (\"block\") style of event --- */\n.fc-daygrid-block-event .fc-event-time {\n font-weight: bold;\n }\n.fc-daygrid-block-event .fc-event-time,\n .fc-daygrid-block-event .fc-event-title {\n padding: 1px;\n }\n/* --- the dot style of event --- */\n.fc-daygrid-dot-event {\n display: flex;\n align-items: center;\n padding: 2px 0\n\n}\n.fc-daygrid-dot-event .fc-event-title {\n flex-grow: 1;\n flex-shrink: 1;\n min-width: 0; /* important for allowing to shrink all the way */\n overflow: hidden;\n font-weight: bold;\n }\n.fc-daygrid-dot-event:hover,\n .fc-daygrid-dot-event.fc-event-mirror {\n background: rgba(0, 0, 0, 0.1);\n }\n.fc-daygrid-dot-event.fc-event-selected:before {\n /* expand hit area */\n top: -10px;\n bottom: -10px;\n }\n.fc-daygrid-event-dot { /* the actual dot */\n margin: 0 4px;\n box-sizing: content-box;\n width: 0;\n height: 0;\n border: 4px solid #3788d8;\n border: calc(var(--fc-daygrid-event-dot-width, 8px) / 2) solid var(--fc-event-border-color, #3788d8);\n border-radius: 4px;\n border-radius: calc(var(--fc-daygrid-event-dot-width, 8px) / 2);\n}\n/* --- spacing between time and title --- */\n.fc-direction-ltr .fc-daygrid-event .fc-event-time {\n margin-right: 3px;\n }\n.fc-direction-rtl .fc-daygrid-event .fc-event-time {\n margin-left: 3px;\n }\n";
styleInject(css_248z);
var plugin = common.createPlugin({

@@ -1016,0 +930,0 @@ initialView: 'dayGridMonth',

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

@@ -15,13 +12,11 @@ ----------------------------------------------------------------------------------------------------------------------*/

// It is responsible for managing width/height.
var TableView = /** @class */ (function (_super) {
__extends(TableView, _super);
function TableView() {
var _this = _super !== null && _super.apply(this, arguments) || this;
_this.headerElRef = createRef();
return _this;
class TableView extends DateComponent {
constructor() {
super(...arguments);
this.headerElRef = createRef();
}
TableView.prototype.renderSimpleLayout = function (headerRowContent, bodyContent) {
var _a = this, props = _a.props, context = _a.context;
var sections = [];
var stickyHeaderDates = getStickyHeaderDates(context.options);
renderSimpleLayout(headerRowContent, bodyContent) {
let { props, context } = this;
let sections = [];
let stickyHeaderDates = getStickyHeaderDates(context.options);
if (headerRowContent) {

@@ -45,14 +40,14 @@ sections.push({

});
return (createElement(ViewRoot, { viewSpec: context.viewSpec }, function (rootElRef, classNames) { return (createElement("div", { ref: rootElRef, className: ['fc-daygrid'].concat(classNames).join(' ') },
createElement(SimpleScrollGrid, { liquid: !props.isHeightAuto && !props.forPrint, collapsibleWidth: props.forPrint, cols: [] /* TODO: make optional? */, sections: sections }))); }));
};
TableView.prototype.renderHScrollLayout = function (headerRowContent, bodyContent, colCnt, dayMinWidth) {
var ScrollGrid = this.context.pluginHooks.scrollGridImpl;
return (createElement(ViewRoot, { viewSpec: context.viewSpec }, (rootElRef, classNames) => (createElement("div", { ref: rootElRef, className: ['fc-daygrid'].concat(classNames).join(' ') },
createElement(SimpleScrollGrid, { liquid: !props.isHeightAuto && !props.forPrint, collapsibleWidth: props.forPrint, cols: [] /* TODO: make optional? */, sections: sections })))));
}
renderHScrollLayout(headerRowContent, bodyContent, colCnt, dayMinWidth) {
let ScrollGrid = this.context.pluginHooks.scrollGridImpl;
if (!ScrollGrid) {
throw new Error('No ScrollGrid implementation');
}
var _a = this, props = _a.props, context = _a.context;
var stickyHeaderDates = !props.forPrint && getStickyHeaderDates(context.options);
var stickyFooterScrollbar = !props.forPrint && getStickyFooterScrollbar(context.options);
var sections = [];
let { props, context } = this;
let stickyHeaderDates = !props.forPrint && getStickyHeaderDates(context.options);
let stickyFooterScrollbar = !props.forPrint && getStickyFooterScrollbar(context.options);
let sections = [];
if (headerRowContent) {

@@ -91,15 +86,13 @@ sections.push({

}
return (createElement(ViewRoot, { viewSpec: context.viewSpec }, function (rootElRef, classNames) { return (createElement("div", { ref: rootElRef, className: ['fc-daygrid'].concat(classNames).join(' ') },
createElement(ScrollGrid, { liquid: !props.isHeightAuto && !props.forPrint, collapsibleWidth: props.forPrint, colGroups: [{ cols: [{ span: colCnt, minWidth: dayMinWidth }] }], sections: sections }))); }));
};
return TableView;
}(DateComponent));
return (createElement(ViewRoot, { viewSpec: context.viewSpec }, (rootElRef, classNames) => (createElement("div", { ref: rootElRef, className: ['fc-daygrid'].concat(classNames).join(' ') },
createElement(ScrollGrid, { liquid: !props.isHeightAuto && !props.forPrint, collapsibleWidth: props.forPrint, colGroups: [{ cols: [{ span: colCnt, minWidth: dayMinWidth }] }], sections: sections })))));
}
}
function splitSegsByRow(segs, rowCnt) {
var byRow = [];
for (var i = 0; i < rowCnt; i += 1) {
let byRow = [];
for (let i = 0; i < rowCnt; i += 1) {
byRow[i] = [];
}
for (var _i = 0, segs_1 = segs; _i < segs_1.length; _i++) {
var seg = segs_1[_i];
for (let seg of segs) {
byRow[seg.row].push(seg);

@@ -110,8 +103,7 @@ }

function splitSegsByFirstCol(segs, colCnt) {
var byCol = [];
for (var i = 0; i < colCnt; i += 1) {
let byCol = [];
for (let i = 0; i < colCnt; i += 1) {
byCol[i] = [];
}
for (var _i = 0, segs_2 = segs; _i < segs_2.length; _i++) {
var seg = segs_2[_i];
for (let seg of segs) {
byCol[seg.firstCol].push(seg);

@@ -122,5 +114,5 @@ }

function splitInteractionByRow(ui, rowCnt) {
var byRow = [];
let byRow = [];
if (!ui) {
for (var i = 0; i < rowCnt; i += 1) {
for (let i = 0; i < rowCnt; i += 1) {
byRow[i] = null;

@@ -130,3 +122,3 @@ }

else {
for (var i = 0; i < rowCnt; i += 1) {
for (let i = 0; i < rowCnt; i += 1) {
byRow[i] = {

@@ -138,4 +130,3 @@ affectedInstances: ui.affectedInstances,

}
for (var _i = 0, _a = ui.segs; _i < _a.length; _i++) {
var seg = _a[_i];
for (let seg of ui.segs) {
byRow[seg.row].segs.push(seg);

@@ -147,15 +138,10 @@ }

var TableCellTop = /** @class */ (function (_super) {
__extends(TableCellTop, _super);
function TableCellTop() {
return _super !== null && _super.apply(this, arguments) || this;
class TableCellTop extends BaseComponent {
render() {
let { props } = this;
let navLinkAttrs = buildNavLinkAttrs(this.context, props.date);
return (createElement(DayCellContent, { date: props.date, dateProfile: props.dateProfile, todayRange: props.todayRange, showDayNumber: props.showDayNumber, extraHookProps: props.extraHookProps, defaultContent: renderTopInner }, (innerElRef, innerContent) => ((innerContent || props.forceDayTop) && (createElement("div", { className: "fc-daygrid-day-top", ref: innerElRef },
createElement("a", Object.assign({ id: props.dayNumberId, className: "fc-daygrid-day-number" }, navLinkAttrs), innerContent || createElement(Fragment, null, "\u00A0")))))));
}
TableCellTop.prototype.render = function () {
var props = this.props;
var navLinkAttrs = buildNavLinkAttrs(this.context, props.date);
return (createElement(DayCellContent, { date: props.date, dateProfile: props.dateProfile, todayRange: props.todayRange, showDayNumber: props.showDayNumber, extraHookProps: props.extraHookProps, defaultContent: renderTopInner }, function (innerElRef, innerContent) { return ((innerContent || props.forceDayTop) && (createElement("div", { className: "fc-daygrid-day-top", ref: innerElRef },
createElement("a", __assign({ id: props.dayNumberId, className: "fc-daygrid-day-number" }, navLinkAttrs), innerContent || createElement(Fragment, null, "\u00A0"))))); }));
};
return TableCellTop;
}(BaseComponent));
}
function renderTopInner(props) {

@@ -165,3 +151,3 @@ return props.dayNumberText;

var DEFAULT_TABLE_EVENT_TIME_FORMAT = createFormatter({
const DEFAULT_TABLE_EVENT_TIME_FORMAT = createFormatter({
hour: 'numeric',

@@ -173,3 +159,3 @@ minute: '2-digit',

function hasListItemDisplay(seg) {
var display = seg.eventRange.ui.display;
let { display } = seg.eventRange.ui;
return display === 'list-item' || (display === 'auto' &&

@@ -183,28 +169,18 @@ !seg.eventRange.def.allDay &&

var TableBlockEvent = /** @class */ (function (_super) {
__extends(TableBlockEvent, _super);
function TableBlockEvent() {
return _super !== null && _super.apply(this, arguments) || this;
class TableBlockEvent extends BaseComponent {
render() {
let { props } = this;
return (createElement(StandardEvent, Object.assign({}, props, { extraClassNames: ['fc-daygrid-event', 'fc-daygrid-block-event', 'fc-h-event'], defaultTimeFormat: DEFAULT_TABLE_EVENT_TIME_FORMAT, defaultDisplayEventEnd: props.defaultDisplayEventEnd, disableResizing: !props.seg.eventRange.def.allDay })));
}
TableBlockEvent.prototype.render = function () {
var props = this.props;
return (createElement(StandardEvent, __assign({}, props, { extraClassNames: ['fc-daygrid-event', 'fc-daygrid-block-event', 'fc-h-event'], defaultTimeFormat: DEFAULT_TABLE_EVENT_TIME_FORMAT, defaultDisplayEventEnd: props.defaultDisplayEventEnd, disableResizing: !props.seg.eventRange.def.allDay })));
};
return TableBlockEvent;
}(BaseComponent));
}
var TableListItemEvent = /** @class */ (function (_super) {
__extends(TableListItemEvent, _super);
function TableListItemEvent() {
return _super !== null && _super.apply(this, arguments) || this;
class TableListItemEvent extends BaseComponent {
render() {
let { props, context } = this;
let timeFormat = context.options.eventTimeFormat || DEFAULT_TABLE_EVENT_TIME_FORMAT;
let timeText = buildSegTimeText(props.seg, timeFormat, context, true, props.defaultDisplayEventEnd);
return (createElement(EventRoot, { seg: props.seg, timeText: timeText, defaultContent: renderInnerContent, isDragging: props.isDragging, isResizing: false, isDateSelecting: false, isSelected: props.isSelected, isPast: props.isPast, isFuture: props.isFuture, isToday: props.isToday }, (rootElRef, classNames, innerElRef, innerContent) => ( // we don't use styles!
createElement("a", Object.assign({ className: ['fc-daygrid-event', 'fc-daygrid-dot-event'].concat(classNames).join(' '), ref: rootElRef }, getSegAnchorAttrs(props.seg, context)), innerContent))));
}
TableListItemEvent.prototype.render = function () {
var _a = this, props = _a.props, context = _a.context;
var timeFormat = context.options.eventTimeFormat || DEFAULT_TABLE_EVENT_TIME_FORMAT;
var timeText = buildSegTimeText(props.seg, timeFormat, context, true, props.defaultDisplayEventEnd);
return (createElement(EventRoot, { seg: props.seg, timeText: timeText, defaultContent: renderInnerContent, isDragging: props.isDragging, isResizing: false, isDateSelecting: false, isSelected: props.isSelected, isPast: props.isPast, isFuture: props.isFuture, isToday: props.isToday }, function (rootElRef, classNames, innerElRef, innerContent) { return ( // we don't use styles!
createElement("a", __assign({ className: ['fc-daygrid-event', 'fc-daygrid-dot-event'].concat(classNames).join(' '), ref: rootElRef }, getSegAnchorAttrs(props.seg, context)), innerContent)); }));
};
return TableListItemEvent;
}(BaseComponent));
}
function renderInnerContent(innerProps) {

@@ -217,31 +193,27 @@ return (createElement(Fragment, null,

var TableCellMoreLink = /** @class */ (function (_super) {
__extends(TableCellMoreLink, _super);
function TableCellMoreLink() {
var _this = _super !== null && _super.apply(this, arguments) || this;
_this.compileSegs = memoize(compileSegs);
return _this;
class TableCellMoreLink extends BaseComponent {
constructor() {
super(...arguments);
this.compileSegs = memoize(compileSegs);
}
TableCellMoreLink.prototype.render = function () {
var props = this.props;
var _a = this.compileSegs(props.singlePlacements), allSegs = _a.allSegs, invisibleSegs = _a.invisibleSegs;
return (createElement(MoreLinkRoot, { dateProfile: props.dateProfile, todayRange: props.todayRange, allDayDate: props.allDayDate, moreCnt: props.moreCnt, allSegs: allSegs, hiddenSegs: invisibleSegs, alignmentElRef: props.alignmentElRef, alignGridTop: props.alignGridTop, extraDateSpan: props.extraDateSpan, popoverContent: function () {
var isForcedInvisible = (props.eventDrag ? props.eventDrag.affectedInstances : null) ||
render() {
let { props } = this;
let { allSegs, invisibleSegs } = this.compileSegs(props.singlePlacements);
return (createElement(MoreLinkRoot, { dateProfile: props.dateProfile, todayRange: props.todayRange, allDayDate: props.allDayDate, moreCnt: props.moreCnt, allSegs: allSegs, hiddenSegs: invisibleSegs, alignmentElRef: props.alignmentElRef, alignGridTop: props.alignGridTop, extraDateSpan: props.extraDateSpan, popoverContent: () => {
let isForcedInvisible = (props.eventDrag ? props.eventDrag.affectedInstances : null) ||
(props.eventResize ? props.eventResize.affectedInstances : null) ||
{};
return (createElement(Fragment, null, allSegs.map(function (seg) {
var instanceId = seg.eventRange.instance.instanceId;
return (createElement(Fragment, null, allSegs.map((seg) => {
let instanceId = seg.eventRange.instance.instanceId;
return (createElement("div", { className: "fc-daygrid-event-harness", key: instanceId, style: {
visibility: isForcedInvisible[instanceId] ? 'hidden' : '',
} }, hasListItemDisplay(seg) ? (createElement(TableListItemEvent, __assign({ seg: seg, isDragging: false, isSelected: instanceId === props.eventSelection, defaultDisplayEventEnd: false }, getSegMeta(seg, props.todayRange)))) : (createElement(TableBlockEvent, __assign({ seg: seg, isDragging: false, isResizing: false, isDateSelecting: false, isSelected: instanceId === props.eventSelection, defaultDisplayEventEnd: false }, getSegMeta(seg, props.todayRange))))));
} }, hasListItemDisplay(seg) ? (createElement(TableListItemEvent, Object.assign({ seg: seg, isDragging: false, isSelected: instanceId === props.eventSelection, defaultDisplayEventEnd: false }, getSegMeta(seg, props.todayRange)))) : (createElement(TableBlockEvent, Object.assign({ seg: seg, isDragging: false, isResizing: false, isDateSelecting: false, isSelected: instanceId === props.eventSelection, defaultDisplayEventEnd: false }, getSegMeta(seg, props.todayRange))))));
})));
} }, function (rootElRef, classNames, innerElRef, innerContent, handleClick, title, isExpanded, popoverId) { return (createElement("a", __assign({ ref: rootElRef, className: ['fc-daygrid-more-link'].concat(classNames).join(' '), title: title, "aria-expanded": isExpanded, "aria-controls": popoverId }, createAriaClickAttrs(handleClick)), innerContent)); }));
};
return TableCellMoreLink;
}(BaseComponent));
} }, (rootElRef, classNames, innerElRef, innerContent, handleClick, title, isExpanded, popoverId) => (createElement("a", Object.assign({ ref: rootElRef, className: ['fc-daygrid-more-link'].concat(classNames).join(' '), title: title, "aria-expanded": isExpanded, "aria-controls": popoverId }, createAriaClickAttrs(handleClick)), innerContent))));
}
}
function compileSegs(singlePlacements) {
var allSegs = [];
var invisibleSegs = [];
for (var _i = 0, singlePlacements_1 = singlePlacements; _i < singlePlacements_1.length; _i++) {
var placement = singlePlacements_1[_i];
let allSegs = [];
let invisibleSegs = [];
for (let placement of singlePlacements) {
allSegs.push(placement.seg);

@@ -252,27 +224,25 @@ if (!placement.isVisible) {

}
return { allSegs: allSegs, invisibleSegs: invisibleSegs };
return { allSegs, invisibleSegs };
}
var DEFAULT_WEEK_NUM_FORMAT = createFormatter({ week: 'narrow' });
var TableCell = /** @class */ (function (_super) {
__extends(TableCell, _super);
function TableCell() {
var _this = _super !== null && _super.apply(this, arguments) || this;
_this.rootElRef = createRef();
_this.state = {
const DEFAULT_WEEK_NUM_FORMAT = createFormatter({ week: 'narrow' });
class TableCell extends DateComponent {
constructor() {
super(...arguments);
this.rootElRef = createRef();
this.state = {
dayNumberId: getUniqueDomId(),
};
_this.handleRootEl = function (el) {
setRef(_this.rootElRef, el);
setRef(_this.props.elRef, el);
this.handleRootEl = (el) => {
setRef(this.rootElRef, el);
setRef(this.props.elRef, el);
};
return _this;
}
TableCell.prototype.render = function () {
var _a = this, context = _a.context, props = _a.props, state = _a.state, rootElRef = _a.rootElRef;
var date = props.date, dateProfile = props.dateProfile;
var navLinkAttrs = buildNavLinkAttrs(context, date, 'week');
return (createElement(DayCellRoot, { date: date, dateProfile: dateProfile, todayRange: props.todayRange, showDayNumber: props.showDayNumber, extraHookProps: props.extraHookProps, elRef: this.handleRootEl }, function (dayElRef, dayClassNames, rootDataAttrs, isDisabled) { return (createElement("td", __assign({ ref: dayElRef, role: "gridcell", className: ['fc-daygrid-day'].concat(dayClassNames, props.extraClassNames || []).join(' ') }, rootDataAttrs, props.extraDataAttrs, (props.showDayNumber ? { 'aria-labelledby': state.dayNumberId } : {})),
render() {
let { context, props, state, rootElRef } = this;
let { date, dateProfile } = props;
let navLinkAttrs = buildNavLinkAttrs(context, date, 'week');
return (createElement(DayCellRoot, { date: date, dateProfile: dateProfile, todayRange: props.todayRange, showDayNumber: props.showDayNumber, extraHookProps: props.extraHookProps, elRef: this.handleRootEl }, (dayElRef, dayClassNames, rootDataAttrs, isDisabled) => (createElement("td", Object.assign({ ref: dayElRef, role: "gridcell", className: ['fc-daygrid-day'].concat(dayClassNames, props.extraClassNames || []).join(' ') }, rootDataAttrs, props.extraDataAttrs, (props.showDayNumber ? { 'aria-labelledby': state.dayNumberId } : {})),
createElement("div", { className: "fc-daygrid-day-frame fc-scrollgrid-sync-inner", ref: props.innerElRef /* different from hook system! RENAME */ },
props.showWeekNumber && (createElement(WeekNumberRoot, { date: date, defaultFormat: DEFAULT_WEEK_NUM_FORMAT }, function (weekElRef, weekClassNames, innerElRef, innerContent) { return (createElement("a", __assign({ ref: weekElRef, className: ['fc-daygrid-week-number'].concat(weekClassNames).join(' ') }, navLinkAttrs), innerContent)); })),
props.showWeekNumber && (createElement(WeekNumberRoot, { date: date, defaultFormat: DEFAULT_WEEK_NUM_FORMAT }, (weekElRef, weekClassNames, innerElRef, innerContent) => (createElement("a", Object.assign({ ref: weekElRef, className: ['fc-daygrid-week-number'].concat(weekClassNames).join(' ') }, navLinkAttrs), innerContent)))),
!isDisabled && (createElement(TableCellTop, { date: date, dateProfile: dateProfile, showDayNumber: props.showDayNumber, dayNumberId: state.dayNumberId, forceDayTop: props.forceDayTop, todayRange: props.todayRange, extraHookProps: props.extraHookProps })),

@@ -283,10 +253,9 @@ createElement("div", { className: "fc-daygrid-day-events", ref: props.fgContentElRef },

createElement(TableCellMoreLink, { allDayDate: date, singlePlacements: props.singlePlacements, moreCnt: props.moreCnt, alignmentElRef: rootElRef, alignGridTop: !props.showDayNumber, extraDateSpan: props.extraDateSpan, dateProfile: props.dateProfile, eventSelection: props.eventSelection, eventDrag: props.eventDrag, eventResize: props.eventResize, todayRange: props.todayRange }))),
createElement("div", { className: "fc-daygrid-day-bg" }, props.bgContent)))); }));
};
return TableCell;
}(DateComponent));
createElement("div", { className: "fc-daygrid-day-bg" }, props.bgContent))))));
}
}
function computeFgSegPlacement(segs, // assumed already sorted
dayMaxEvents, dayMaxEventRows, strictOrder, eventInstanceHeights, maxContentHeight, cells) {
var hierarchy = new DayGridSegHierarchy();
let hierarchy = new DayGridSegHierarchy();
hierarchy.allowReslicing = true;

@@ -306,8 +275,8 @@ hierarchy.strictOrder = strictOrder;

// create segInputs only for segs with known heights
var segInputs = [];
var unknownHeightSegs = [];
for (var i = 0; i < segs.length; i += 1) {
var seg = segs[i];
var instanceId = seg.eventRange.instance.instanceId;
var eventHeight = eventInstanceHeights[instanceId];
let segInputs = [];
let unknownHeightSegs = [];
for (let i = 0; i < segs.length; i += 1) {
let seg = segs[i];
let { instanceId } = seg.eventRange.instance;
let eventHeight = eventInstanceHeights[instanceId];
if (eventHeight != null) {

@@ -327,12 +296,11 @@ segInputs.push({

}
var hiddenEntries = hierarchy.addSegs(segInputs);
var segRects = hierarchy.toRects();
var _a = placeRects(segRects, segs, cells), singleColPlacements = _a.singleColPlacements, multiColPlacements = _a.multiColPlacements, leftoverMargins = _a.leftoverMargins;
var moreCnts = [];
var moreMarginTops = [];
let hiddenEntries = hierarchy.addSegs(segInputs);
let segRects = hierarchy.toRects();
let { singleColPlacements, multiColPlacements, leftoverMargins } = placeRects(segRects, segs, cells);
let moreCnts = [];
let moreMarginTops = [];
// add segs with unknown heights
for (var _i = 0, unknownHeightSegs_1 = unknownHeightSegs; _i < unknownHeightSegs_1.length; _i++) {
var seg = unknownHeightSegs_1[_i];
for (let seg of unknownHeightSegs) {
multiColPlacements[seg.firstCol].push({
seg: seg,
seg,
isVisible: false,

@@ -343,3 +311,3 @@ isAbsolute: true,

});
for (var col = seg.firstCol; col <= seg.lastCol; col += 1) {
for (let col = seg.firstCol; col <= seg.lastCol; col += 1) {
singleColPlacements[col].push({

@@ -355,9 +323,8 @@ seg: resliceSeg(seg, col, col + 1, cells),

// add the hidden entries
for (var col = 0; col < cells.length; col += 1) {
for (let col = 0; col < cells.length; col += 1) {
moreCnts.push(0);
}
for (var _b = 0, hiddenEntries_1 = hiddenEntries; _b < hiddenEntries_1.length; _b++) {
var hiddenEntry = hiddenEntries_1[_b];
var seg = segs[hiddenEntry.index];
var hiddenSpan = hiddenEntry.span;
for (let hiddenEntry of hiddenEntries) {
let seg = segs[hiddenEntry.index];
let hiddenSpan = hiddenEntry.span;
multiColPlacements[hiddenSpan.start].push({

@@ -370,3 +337,3 @@ seg: resliceSeg(seg, hiddenSpan.start, hiddenSpan.end, cells),

});
for (var col = hiddenSpan.start; col < hiddenSpan.end; col += 1) {
for (let col = hiddenSpan.start; col < hiddenSpan.end; col += 1) {
moreCnts[col] += 1;

@@ -383,22 +350,21 @@ singleColPlacements[col].push({

// deal with leftover margins
for (var col = 0; col < cells.length; col += 1) {
for (let col = 0; col < cells.length; col += 1) {
moreMarginTops.push(leftoverMargins[col]);
}
return { singleColPlacements: singleColPlacements, multiColPlacements: multiColPlacements, moreCnts: moreCnts, moreMarginTops: moreMarginTops };
return { singleColPlacements, multiColPlacements, moreCnts, moreMarginTops };
}
// rects ordered by top coord, then left
function placeRects(allRects, segs, cells) {
var rectsByEachCol = groupRectsByEachCol(allRects, cells.length);
var singleColPlacements = [];
var multiColPlacements = [];
var leftoverMargins = [];
for (var col = 0; col < cells.length; col += 1) {
var rects = rectsByEachCol[col];
let rectsByEachCol = groupRectsByEachCol(allRects, cells.length);
let singleColPlacements = [];
let multiColPlacements = [];
let leftoverMargins = [];
for (let col = 0; col < cells.length; col += 1) {
let rects = rectsByEachCol[col];
// compute all static segs in singlePlacements
var singlePlacements = [];
var currentHeight = 0;
var currentMarginTop = 0;
for (var _i = 0, rects_1 = rects; _i < rects_1.length; _i++) {
var rect = rects_1[_i];
var seg = segs[rect.index];
let singlePlacements = [];
let currentHeight = 0;
let currentMarginTop = 0;
for (let rect of rects) {
let seg = segs[rect.index];
singlePlacements.push({

@@ -414,10 +380,9 @@ seg: resliceSeg(seg, col, col + 1, cells),

// compute mixed static/absolute segs in multiPlacements
var multiPlacements = [];
let multiPlacements = [];
currentHeight = 0;
currentMarginTop = 0;
for (var _a = 0, rects_2 = rects; _a < rects_2.length; _a++) {
var rect = rects_2[_a];
var seg = segs[rect.index];
var isAbsolute = rect.span.end - rect.span.start > 1; // multi-column?
var isFirstCol = rect.span.start === col;
for (let rect of rects) {
let seg = segs[rect.index];
let isAbsolute = rect.span.end - rect.span.start > 1; // multi-column?
let isFirstCol = rect.span.start === col;
currentMarginTop += rect.levelCoord - currentHeight; // amount of space since bottom of previous seg

@@ -452,12 +417,11 @@ currentHeight = rect.levelCoord + rect.thickness; // height will now be bottom of current seg

}
return { singleColPlacements: singleColPlacements, multiColPlacements: multiColPlacements, leftoverMargins: leftoverMargins };
return { singleColPlacements, multiColPlacements, leftoverMargins };
}
function groupRectsByEachCol(rects, colCnt) {
var rectsByEachCol = [];
for (var col = 0; col < colCnt; col += 1) {
let rectsByEachCol = [];
for (let col = 0; col < colCnt; col += 1) {
rectsByEachCol.push([]);
}
for (var _i = 0, rects_3 = rects; _i < rects_3.length; _i++) {
var rect = rects_3[_i];
for (var col = rect.span.start; col < rect.span.end; col += 1) {
for (let rect of rects) {
for (let col = rect.span.start; col < rect.span.end; col += 1) {
rectsByEachCol[col].push(rect);

@@ -472,11 +436,11 @@ }

}
var eventRange = seg.eventRange;
var origRange = eventRange.range;
var slicedRange = intersectRanges(origRange, {
let eventRange = seg.eventRange;
let origRange = eventRange.range;
let slicedRange = intersectRanges(origRange, {
start: cells[spanStart].date,
end: addDays(cells[spanEnd - 1].date, 1),
});
return __assign(__assign({}, seg), { firstCol: spanStart, lastCol: spanEnd - 1, eventRange: {
return Object.assign(Object.assign({}, seg), { firstCol: spanStart, lastCol: spanEnd - 1, eventRange: {
def: eventRange.def,
ui: __assign(__assign({}, eventRange.ui), { durationEditable: false }),
ui: Object.assign(Object.assign({}, eventRange.ui), { durationEditable: false }),
instance: eventRange.instance,

@@ -486,33 +450,30 @@ range: slicedRange,

}
var DayGridSegHierarchy = /** @class */ (function (_super) {
__extends(DayGridSegHierarchy, _super);
function DayGridSegHierarchy() {
var _this = _super !== null && _super.apply(this, arguments) || this;
class DayGridSegHierarchy extends SegHierarchy {
constructor() {
super(...arguments);
// config
_this.hiddenConsumes = false;
this.hiddenConsumes = false;
// allows us to keep hidden entries in the hierarchy so they take up space
_this.forceHidden = {};
return _this;
this.forceHidden = {};
}
DayGridSegHierarchy.prototype.addSegs = function (segInputs) {
var _this = this;
var hiddenSegs = _super.prototype.addSegs.call(this, segInputs);
var entriesByLevel = this.entriesByLevel;
var excludeHidden = function (entry) { return !_this.forceHidden[buildEntryKey(entry)]; };
addSegs(segInputs) {
const hiddenSegs = super.addSegs(segInputs);
const { entriesByLevel } = this;
const excludeHidden = (entry) => !this.forceHidden[buildEntryKey(entry)];
// remove the forced-hidden segs
for (var level = 0; level < entriesByLevel.length; level += 1) {
for (let level = 0; level < entriesByLevel.length; level += 1) {
entriesByLevel[level] = entriesByLevel[level].filter(excludeHidden);
}
return hiddenSegs;
};
DayGridSegHierarchy.prototype.handleInvalidInsertion = function (insertion, entry, hiddenEntries) {
var _a = this, entriesByLevel = _a.entriesByLevel, forceHidden = _a.forceHidden;
var touchingEntry = insertion.touchingEntry, touchingLevel = insertion.touchingLevel, touchingLateral = insertion.touchingLateral;
}
handleInvalidInsertion(insertion, entry, hiddenEntries) {
const { entriesByLevel, forceHidden } = this;
const { touchingEntry, touchingLevel, touchingLateral } = insertion;
if (this.hiddenConsumes && touchingEntry) {
var touchingEntryId = buildEntryKey(touchingEntry);
const touchingEntryId = buildEntryKey(touchingEntry);
// if not already hidden
if (!forceHidden[touchingEntryId]) {
if (this.allowReslicing) {
var placeholderEntry = __assign(__assign({}, touchingEntry), { span: intersectSpans(touchingEntry.span, entry.span) });
var placeholderEntryId = buildEntryKey(placeholderEntry);
const placeholderEntry = Object.assign(Object.assign({}, touchingEntry), { span: intersectSpans(touchingEntry.span, entry.span) });
const placeholderEntryId = buildEntryKey(placeholderEntry);
forceHidden[placeholderEntryId] = true;

@@ -528,17 +489,15 @@ entriesByLevel[touchingLevel][touchingLateral] = placeholderEntry; // replace touchingEntry with our placeholder

}
return _super.prototype.handleInvalidInsertion.call(this, insertion, entry, hiddenEntries);
};
return DayGridSegHierarchy;
}(SegHierarchy));
return super.handleInvalidInsertion(insertion, entry, hiddenEntries);
}
}
var TableRow = /** @class */ (function (_super) {
__extends(TableRow, _super);
function TableRow() {
var _this = _super !== null && _super.apply(this, arguments) || this;
_this.cellElRefs = new RefMap(); // the <td>
_this.frameElRefs = new RefMap(); // the fc-daygrid-day-frame
_this.fgElRefs = new RefMap(); // the fc-daygrid-day-events
_this.segHarnessRefs = new RefMap(); // indexed by "instanceId:firstCol"
_this.rootElRef = createRef();
_this.state = {
class TableRow extends DateComponent {
constructor() {
super(...arguments);
this.cellElRefs = new RefMap(); // the <td>
this.frameElRefs = new RefMap(); // the fc-daygrid-day-frame
this.fgElRefs = new RefMap(); // the fc-daygrid-day-events
this.segHarnessRefs = new RefMap(); // indexed by "instanceId:firstCol"
this.rootElRef = createRef();
this.state = {
framePositions: null,

@@ -548,15 +507,13 @@ maxContentHeight: null,

};
return _this;
}
TableRow.prototype.render = function () {
var _this = this;
var _a = this, props = _a.props, state = _a.state, context = _a.context;
var options = context.options;
var colCnt = props.cells.length;
var businessHoursByCol = splitSegsByFirstCol(props.businessHourSegs, colCnt);
var bgEventSegsByCol = splitSegsByFirstCol(props.bgEventSegs, colCnt);
var highlightSegsByCol = splitSegsByFirstCol(this.getHighlightSegs(), colCnt);
var mirrorSegsByCol = splitSegsByFirstCol(this.getMirrorSegs(), colCnt);
var _b = computeFgSegPlacement(sortEventSegs(props.fgEventSegs, options.eventOrder), props.dayMaxEvents, props.dayMaxEventRows, options.eventOrderStrict, state.eventInstanceHeights, state.maxContentHeight, props.cells), singleColPlacements = _b.singleColPlacements, multiColPlacements = _b.multiColPlacements, moreCnts = _b.moreCnts, moreMarginTops = _b.moreMarginTops;
var isForcedInvisible = // TODO: messy way to compute this
render() {
let { props, state, context } = this;
let { options } = context;
let colCnt = props.cells.length;
let businessHoursByCol = splitSegsByFirstCol(props.businessHourSegs, colCnt);
let bgEventSegsByCol = splitSegsByFirstCol(props.bgEventSegs, colCnt);
let highlightSegsByCol = splitSegsByFirstCol(this.getHighlightSegs(), colCnt);
let mirrorSegsByCol = splitSegsByFirstCol(this.getMirrorSegs(), colCnt);
let { singleColPlacements, multiColPlacements, moreCnts, moreMarginTops } = computeFgSegPlacement(sortEventSegs(props.fgEventSegs, options.eventOrder), props.dayMaxEvents, props.dayMaxEventRows, options.eventOrderStrict, state.eventInstanceHeights, state.maxContentHeight, props.cells);
let isForcedInvisible = // TODO: messy way to compute this
(props.eventDrag && props.eventDrag.affectedInstances) ||

@@ -567,6 +524,6 @@ (props.eventResize && props.eventResize.affectedInstances) ||

props.renderIntro && props.renderIntro(),
props.cells.map(function (cell, col) {
var normalFgNodes = _this.renderFgSegs(col, props.forPrint ? singleColPlacements[col] : multiColPlacements[col], props.todayRange, isForcedInvisible);
var mirrorFgNodes = _this.renderFgSegs(col, buildMirrorPlacements(mirrorSegsByCol[col], multiColPlacements), props.todayRange, {}, Boolean(props.eventDrag), Boolean(props.eventResize), false);
return (createElement(TableCell, { key: cell.key, elRef: _this.cellElRefs.createRef(cell.key), innerElRef: _this.frameElRefs.createRef(cell.key) /* FF <td> problem, but okay to use for left/right. TODO: rename prop */, dateProfile: props.dateProfile, date: cell.date, showDayNumber: props.showDayNumbers, showWeekNumber: props.showWeekNumbers && col === 0, forceDayTop: props.showWeekNumbers /* even displaying weeknum for row, not necessarily day */, todayRange: props.todayRange, eventSelection: props.eventSelection, eventDrag: props.eventDrag, eventResize: props.eventResize, extraHookProps: cell.extraHookProps, extraDataAttrs: cell.extraDataAttrs, extraClassNames: cell.extraClassNames, extraDateSpan: cell.extraDateSpan, moreCnt: moreCnts[col], moreMarginTop: moreMarginTops[col], singlePlacements: singleColPlacements[col], fgContentElRef: _this.fgElRefs.createRef(cell.key), fgContent: ( // Fragment scopes the keys
props.cells.map((cell, col) => {
let normalFgNodes = this.renderFgSegs(col, props.forPrint ? singleColPlacements[col] : multiColPlacements[col], props.todayRange, isForcedInvisible);
let mirrorFgNodes = this.renderFgSegs(col, buildMirrorPlacements(mirrorSegsByCol[col], multiColPlacements), props.todayRange, {}, Boolean(props.eventDrag), Boolean(props.eventResize), false);
return (createElement(TableCell, { key: cell.key, elRef: this.cellElRefs.createRef(cell.key), innerElRef: this.frameElRefs.createRef(cell.key) /* FF <td> problem, but okay to use for left/right. TODO: rename prop */, dateProfile: props.dateProfile, date: cell.date, showDayNumber: props.showDayNumbers, showWeekNumber: props.showWeekNumbers && col === 0, forceDayTop: props.showWeekNumbers /* even displaying weeknum for row, not necessarily day */, todayRange: props.todayRange, eventSelection: props.eventSelection, eventDrag: props.eventDrag, eventResize: props.eventResize, extraHookProps: cell.extraHookProps, extraDataAttrs: cell.extraDataAttrs, extraClassNames: cell.extraClassNames, extraDateSpan: cell.extraDateSpan, moreCnt: moreCnts[col], moreMarginTop: moreMarginTops[col], singlePlacements: singleColPlacements[col], fgContentElRef: this.fgElRefs.createRef(cell.key), fgContent: ( // Fragment scopes the keys
createElement(Fragment, null,

@@ -576,16 +533,16 @@ createElement(Fragment, null, normalFgNodes),

createElement(Fragment, null,
_this.renderFillSegs(highlightSegsByCol[col], 'highlight'),
_this.renderFillSegs(businessHoursByCol[col], 'non-business'),
_this.renderFillSegs(bgEventSegsByCol[col], 'bg-event'))) }));
this.renderFillSegs(highlightSegsByCol[col], 'highlight'),
this.renderFillSegs(businessHoursByCol[col], 'non-business'),
this.renderFillSegs(bgEventSegsByCol[col], 'bg-event'))) }));
})));
};
TableRow.prototype.componentDidMount = function () {
}
componentDidMount() {
this.updateSizing(true);
};
TableRow.prototype.componentDidUpdate = function (prevProps, prevState) {
var currentProps = this.props;
}
componentDidUpdate(prevProps, prevState) {
let currentProps = this.props;
this.updateSizing(!isPropsEqual(prevProps, currentProps));
};
TableRow.prototype.getHighlightSegs = function () {
var props = this.props;
}
getHighlightSegs() {
let { props } = this;
if (props.eventDrag && props.eventDrag.segs.length) { // messy check

@@ -598,5 +555,5 @@ return props.eventDrag.segs;

return props.dateSelectionSegs;
};
TableRow.prototype.getMirrorSegs = function () {
var props = this.props;
}
getMirrorSegs() {
let { props } = this;
if (props.eventResize && props.eventResize.segs.length) { // messy check

@@ -606,20 +563,19 @@ return props.eventResize.segs;

return [];
};
TableRow.prototype.renderFgSegs = function (col, segPlacements, todayRange, isForcedInvisible, isDragging, isResizing, isDateSelecting) {
var context = this.context;
var eventSelection = this.props.eventSelection;
var framePositions = this.state.framePositions;
var defaultDisplayEventEnd = this.props.cells.length === 1; // colCnt === 1
var isMirror = isDragging || isResizing || isDateSelecting;
var nodes = [];
}
renderFgSegs(col, segPlacements, todayRange, isForcedInvisible, isDragging, isResizing, isDateSelecting) {
let { context } = this;
let { eventSelection } = this.props;
let { framePositions } = this.state;
let defaultDisplayEventEnd = this.props.cells.length === 1; // colCnt === 1
let isMirror = isDragging || isResizing || isDateSelecting;
let nodes = [];
if (framePositions) {
for (var _i = 0, segPlacements_1 = segPlacements; _i < segPlacements_1.length; _i++) {
var placement = segPlacements_1[_i];
var seg = placement.seg;
var instanceId = seg.eventRange.instance.instanceId;
var key = instanceId + ':' + col;
var isVisible = placement.isVisible && !isForcedInvisible[instanceId];
var isAbsolute = placement.isAbsolute;
var left = '';
var right = '';
for (let placement of segPlacements) {
let { seg } = placement;
let { instanceId } = seg.eventRange.instance;
let key = instanceId + ':' + col;
let isVisible = placement.isVisible && !isForcedInvisible[instanceId];
let isAbsolute = placement.isAbsolute;
let left = '';
let right = '';
if (isAbsolute) {

@@ -643,18 +599,17 @@ if (context.isRtl) {

top: isAbsolute ? placement.absoluteTop : '',
left: left,
right: right,
} }, hasListItemDisplay(seg) ? (createElement(TableListItemEvent, __assign({ seg: seg, isDragging: isDragging, isSelected: instanceId === eventSelection, defaultDisplayEventEnd: defaultDisplayEventEnd }, getSegMeta(seg, todayRange)))) : (createElement(TableBlockEvent, __assign({ seg: seg, isDragging: isDragging, isResizing: isResizing, isDateSelecting: isDateSelecting, isSelected: instanceId === eventSelection, defaultDisplayEventEnd: defaultDisplayEventEnd }, getSegMeta(seg, todayRange))))));
left,
right,
} }, hasListItemDisplay(seg) ? (createElement(TableListItemEvent, Object.assign({ seg: seg, isDragging: isDragging, isSelected: instanceId === eventSelection, defaultDisplayEventEnd: defaultDisplayEventEnd }, getSegMeta(seg, todayRange)))) : (createElement(TableBlockEvent, Object.assign({ seg: seg, isDragging: isDragging, isResizing: isResizing, isDateSelecting: isDateSelecting, isSelected: instanceId === eventSelection, defaultDisplayEventEnd: defaultDisplayEventEnd }, getSegMeta(seg, todayRange))))));
}
}
return nodes;
};
TableRow.prototype.renderFillSegs = function (segs, fillType) {
var isRtl = this.context.isRtl;
var todayRange = this.props.todayRange;
var framePositions = this.state.framePositions;
var nodes = [];
}
renderFillSegs(segs, fillType) {
let { isRtl } = this.context;
let { todayRange } = this.props;
let { framePositions } = this.state;
let nodes = [];
if (framePositions) {
for (var _i = 0, segs_1 = segs; _i < segs_1.length; _i++) {
var seg = segs_1[_i];
var leftRightCss = isRtl ? {
for (let seg of segs) {
let leftRightCss = isRtl ? {
right: 0,

@@ -667,10 +622,10 @@ left: framePositions.lefts[seg.lastCol] - framePositions.lefts[seg.firstCol],

nodes.push(createElement("div", { key: buildEventRangeKey(seg.eventRange), className: "fc-daygrid-bg-harness", style: leftRightCss }, fillType === 'bg-event' ?
createElement(BgEvent, __assign({ seg: seg }, getSegMeta(seg, todayRange))) :
createElement(BgEvent, Object.assign({ seg: seg }, getSegMeta(seg, todayRange))) :
renderFill(fillType)));
}
}
return createElement.apply(void 0, __spreadArray([Fragment, {}], nodes));
};
TableRow.prototype.updateSizing = function (isExternalSizingChange) {
var _a = this, props = _a.props, frameElRefs = _a.frameElRefs;
return createElement(Fragment, {}, ...nodes);
}
updateSizing(isExternalSizingChange) {
let { props, frameElRefs } = this;
if (!props.forPrint &&

@@ -680,5 +635,5 @@ props.clientWidth !== null // positioning ready?

if (isExternalSizingChange) {
var frameEls = props.cells.map(function (cell) { return frameElRefs.currentMap[cell.key]; });
let frameEls = props.cells.map((cell) => frameElRefs.currentMap[cell.key]);
if (frameEls.length) {
var originEl = this.rootElRef.current;
let originEl = this.rootElRef.current;
this.setState({

@@ -690,5 +645,5 @@ framePositions: new PositionCache(originEl, frameEls, true, // isHorizontal

}
var oldInstanceHeights = this.state.eventInstanceHeights;
var newInstanceHeights = this.queryEventInstanceHeights();
var limitByContentHeight = props.dayMaxEvents === true || props.dayMaxEventRows === true;
const oldInstanceHeights = this.state.eventInstanceHeights;
const newInstanceHeights = this.queryEventInstanceHeights();
const limitByContentHeight = props.dayMaxEvents === true || props.dayMaxEventRows === true;
this.safeSetState({

@@ -698,30 +653,29 @@ // HACK to prevent oscillations of events being shown/hidden from max-event-rows

// TODO: always display all events, as visibility:hidden?
eventInstanceHeights: __assign(__assign({}, oldInstanceHeights), newInstanceHeights),
eventInstanceHeights: Object.assign(Object.assign({}, oldInstanceHeights), newInstanceHeights),
maxContentHeight: limitByContentHeight ? this.computeMaxContentHeight() : null,
});
}
};
TableRow.prototype.queryEventInstanceHeights = function () {
var segElMap = this.segHarnessRefs.currentMap;
var eventInstanceHeights = {};
}
queryEventInstanceHeights() {
let segElMap = this.segHarnessRefs.currentMap;
let eventInstanceHeights = {};
// get the max height amongst instance segs
for (var key in segElMap) {
var height = Math.round(segElMap[key].getBoundingClientRect().height);
var instanceId = key.split(':')[0]; // deconstruct how renderFgSegs makes the key
for (let key in segElMap) {
let height = Math.round(segElMap[key].getBoundingClientRect().height);
let instanceId = key.split(':')[0]; // deconstruct how renderFgSegs makes the key
eventInstanceHeights[instanceId] = Math.max(eventInstanceHeights[instanceId] || 0, height);
}
return eventInstanceHeights;
};
TableRow.prototype.computeMaxContentHeight = function () {
var firstKey = this.props.cells[0].key;
var cellEl = this.cellElRefs.currentMap[firstKey];
var fcContainerEl = this.fgElRefs.currentMap[firstKey];
}
computeMaxContentHeight() {
let firstKey = this.props.cells[0].key;
let cellEl = this.cellElRefs.currentMap[firstKey];
let fcContainerEl = this.fgElRefs.currentMap[firstKey];
return cellEl.getBoundingClientRect().bottom - fcContainerEl.getBoundingClientRect().top;
};
TableRow.prototype.getCellEls = function () {
var elMap = this.cellElRefs.currentMap;
return this.props.cells.map(function (cell) { return elMap[cell.key]; });
};
return TableRow;
}(DateComponent));
}
getCellEls() {
let elMap = this.cellElRefs.currentMap;
return this.props.cells.map((cell) => elMap[cell.key]);
}
}
TableRow.addStateEquality({

@@ -734,5 +688,5 @@ eventInstanceHeights: isPropsEqual,

}
var topsByInstanceId = buildAbsoluteTopHash(colPlacements); // TODO: cache this at first render?
return mirrorSegs.map(function (seg) { return ({
seg: seg,
let topsByInstanceId = buildAbsoluteTopHash(colPlacements); // TODO: cache this at first render?
return mirrorSegs.map((seg) => ({
seg,
isVisible: true,

@@ -742,10 +696,8 @@ isAbsolute: true,

marginTop: 0,
}); });
}));
}
function buildAbsoluteTopHash(colPlacements) {
var topsByInstanceId = {};
for (var _i = 0, colPlacements_1 = colPlacements; _i < colPlacements_1.length; _i++) {
var placements = colPlacements_1[_i];
for (var _a = 0, placements_1 = placements; _a < placements_1.length; _a++) {
var placement = placements_1[_a];
let topsByInstanceId = {};
for (let placements of colPlacements) {
for (let placement of placements) {
topsByInstanceId[placement.seg.eventRange.instance.instanceId] = placement.absoluteTop;

@@ -757,39 +709,36 @@ }

var Table = /** @class */ (function (_super) {
__extends(Table, _super);
function Table() {
var _this = _super !== null && _super.apply(this, arguments) || this;
_this.splitBusinessHourSegs = memoize(splitSegsByRow);
_this.splitBgEventSegs = memoize(splitSegsByRow);
_this.splitFgEventSegs = memoize(splitSegsByRow);
_this.splitDateSelectionSegs = memoize(splitSegsByRow);
_this.splitEventDrag = memoize(splitInteractionByRow);
_this.splitEventResize = memoize(splitInteractionByRow);
_this.rowRefs = new RefMap();
_this.handleRootEl = function (rootEl) {
_this.rootEl = rootEl;
class Table extends DateComponent {
constructor() {
super(...arguments);
this.splitBusinessHourSegs = memoize(splitSegsByRow);
this.splitBgEventSegs = memoize(splitSegsByRow);
this.splitFgEventSegs = memoize(splitSegsByRow);
this.splitDateSelectionSegs = memoize(splitSegsByRow);
this.splitEventDrag = memoize(splitInteractionByRow);
this.splitEventResize = memoize(splitInteractionByRow);
this.rowRefs = new RefMap();
this.handleRootEl = (rootEl) => {
this.rootEl = rootEl;
if (rootEl) {
_this.context.registerInteractiveComponent(_this, {
this.context.registerInteractiveComponent(this, {
el: rootEl,
isHitComboAllowed: _this.props.isHitComboAllowed,
isHitComboAllowed: this.props.isHitComboAllowed,
});
}
else {
_this.context.unregisterInteractiveComponent(_this);
this.context.unregisterInteractiveComponent(this);
}
};
return _this;
}
Table.prototype.render = function () {
var _this = this;
var props = this.props;
var dateProfile = props.dateProfile, dayMaxEventRows = props.dayMaxEventRows, dayMaxEvents = props.dayMaxEvents, expandRows = props.expandRows;
var rowCnt = props.cells.length;
var businessHourSegsByRow = this.splitBusinessHourSegs(props.businessHourSegs, rowCnt);
var bgEventSegsByRow = this.splitBgEventSegs(props.bgEventSegs, rowCnt);
var fgEventSegsByRow = this.splitFgEventSegs(props.fgEventSegs, rowCnt);
var dateSelectionSegsByRow = this.splitDateSelectionSegs(props.dateSelectionSegs, rowCnt);
var eventDragByRow = this.splitEventDrag(props.eventDrag, rowCnt);
var eventResizeByRow = this.splitEventResize(props.eventResize, rowCnt);
var limitViaBalanced = dayMaxEvents === true || dayMaxEventRows === true;
render() {
let { props } = this;
let { dateProfile, dayMaxEventRows, dayMaxEvents, expandRows } = props;
let rowCnt = props.cells.length;
let businessHourSegsByRow = this.splitBusinessHourSegs(props.businessHourSegs, rowCnt);
let bgEventSegsByRow = this.splitBgEventSegs(props.bgEventSegs, rowCnt);
let fgEventSegsByRow = this.splitFgEventSegs(props.fgEventSegs, rowCnt);
let dateSelectionSegsByRow = this.splitDateSelectionSegs(props.dateSelectionSegs, rowCnt);
let eventDragByRow = this.splitEventDrag(props.eventDrag, rowCnt);
let eventResizeByRow = this.splitEventResize(props.eventResize, rowCnt);
let limitViaBalanced = dayMaxEvents === true || dayMaxEventRows === true;
// if rows can't expand to fill fixed height, can't do balanced-height event limit

@@ -802,3 +751,3 @@ // TODO: best place to normalize these options?

}
var classNames = [
let classNames = [
'fc-daygrid-body',

@@ -814,3 +763,3 @@ limitViaBalanced ? 'fc-daygrid-body-balanced' : 'fc-daygrid-body-unbalanced',

} },
createElement(NowTimer, { unit: "day" }, function (nowDate, todayRange) { return (createElement(Fragment, null,
createElement(NowTimer, { unit: "day" }, (nowDate, todayRange) => (createElement(Fragment, null,
createElement("table", { role: "presentation", className: "fc-scrollgrid-sync-table", style: {

@@ -822,11 +771,11 @@ width: props.clientWidth,

props.colGroupNode,
createElement("tbody", { role: "presentation" }, props.cells.map(function (cells, row) { return (createElement(TableRow, { ref: _this.rowRefs.createRef(row), key: cells.length
createElement("tbody", { role: "presentation" }, props.cells.map((cells, row) => (createElement(TableRow, { ref: this.rowRefs.createRef(row), key: cells.length
? cells[0].date.toISOString() /* best? or put key on cell? or use diff formatter? */
: row // in case there are no cells (like when resource view is loading)
, showDayNumbers: rowCnt > 1, showWeekNumbers: props.showWeekNumbers, todayRange: todayRange, dateProfile: dateProfile, cells: cells, renderIntro: props.renderRowIntro, businessHourSegs: businessHourSegsByRow[row], eventSelection: props.eventSelection, bgEventSegs: bgEventSegsByRow[row].filter(isSegAllDay) /* hack */, fgEventSegs: fgEventSegsByRow[row], dateSelectionSegs: dateSelectionSegsByRow[row], eventDrag: eventDragByRow[row], eventResize: eventResizeByRow[row], dayMaxEvents: dayMaxEvents, dayMaxEventRows: dayMaxEventRows, clientWidth: props.clientWidth, clientHeight: props.clientHeight, forPrint: props.forPrint })); }))))); })));
};
, showDayNumbers: rowCnt > 1, showWeekNumbers: props.showWeekNumbers, todayRange: todayRange, dateProfile: dateProfile, cells: cells, renderIntro: props.renderRowIntro, businessHourSegs: businessHourSegsByRow[row], eventSelection: props.eventSelection, bgEventSegs: bgEventSegsByRow[row].filter(isSegAllDay) /* hack */, fgEventSegs: fgEventSegsByRow[row], dateSelectionSegs: dateSelectionSegsByRow[row], eventDrag: eventDragByRow[row], eventResize: eventResizeByRow[row], dayMaxEvents: dayMaxEvents, dayMaxEventRows: dayMaxEventRows, clientWidth: props.clientWidth, clientHeight: props.clientHeight, forPrint: props.forPrint }))))))))));
}
// Hit System
// ----------------------------------------------------------------------------------------------------
Table.prototype.prepareHits = function () {
this.rowPositions = new PositionCache(this.rootEl, this.rowRefs.collect().map(function (rowObj) { return rowObj.getCellEls()[0]; }), // first cell el in each row. TODO: not optimal
prepareHits() {
this.rowPositions = new PositionCache(this.rootEl, this.rowRefs.collect().map((rowObj) => rowObj.getCellEls()[0]), // first cell el in each row. TODO: not optimal
false, true);

@@ -836,12 +785,12 @@ this.colPositions = new PositionCache(this.rootEl, this.rowRefs.currentMap[0].getCellEls(), // cell els in first row

false);
};
Table.prototype.queryHit = function (positionLeft, positionTop) {
var _a = this, colPositions = _a.colPositions, rowPositions = _a.rowPositions;
var col = colPositions.leftToIndex(positionLeft);
var row = rowPositions.topToIndex(positionTop);
}
queryHit(positionLeft, positionTop) {
let { colPositions, rowPositions } = this;
let col = colPositions.leftToIndex(positionLeft);
let row = rowPositions.topToIndex(positionTop);
if (row != null && col != null) {
var cell = this.props.cells[row][col];
let cell = this.props.cells[row][col];
return {
dateProfile: this.props.dateProfile,
dateSpan: __assign({ range: this.getCellRange(row, col), allDay: true }, cell.extraDateSpan),
dateSpan: Object.assign({ range: this.getCellRange(row, col), allDay: true }, cell.extraDateSpan),
dayEl: this.getCellEl(row, col),

@@ -858,13 +807,12 @@ rect: {

return null;
};
Table.prototype.getCellEl = function (row, col) {
}
getCellEl(row, col) {
return this.rowRefs.currentMap[row].getCellEls()[col]; // TODO: not optimal
};
Table.prototype.getCellRange = function (row, col) {
var start = this.props.cells[row][col].date;
var end = addDays(start, 1);
return { start: start, end: end };
};
return Table;
}(DateComponent));
}
getCellRange(row, col) {
let start = this.props.cells[row][col].date;
let end = addDays(start, 1);
return { start, end };
}
}
function isSegAllDay(seg) {

@@ -874,69 +822,55 @@ return seg.eventRange.def.allDay;

var DayTableSlicer = /** @class */ (function (_super) {
__extends(DayTableSlicer, _super);
function DayTableSlicer() {
var _this = _super !== null && _super.apply(this, arguments) || this;
_this.forceDayIfListItem = true;
return _this;
class DayTableSlicer extends Slicer {
constructor() {
super(...arguments);
this.forceDayIfListItem = true;
}
DayTableSlicer.prototype.sliceRange = function (dateRange, dayTableModel) {
sliceRange(dateRange, dayTableModel) {
return dayTableModel.sliceRange(dateRange);
};
return DayTableSlicer;
}(Slicer));
}
}
var DayTable = /** @class */ (function (_super) {
__extends(DayTable, _super);
function DayTable() {
var _this = _super !== null && _super.apply(this, arguments) || this;
_this.slicer = new DayTableSlicer();
_this.tableRef = createRef();
return _this;
class DayTable extends DateComponent {
constructor() {
super(...arguments);
this.slicer = new DayTableSlicer();
this.tableRef = createRef();
}
DayTable.prototype.render = function () {
var _a = this, props = _a.props, context = _a.context;
return (createElement(Table, __assign({ ref: this.tableRef }, this.slicer.sliceProps(props, props.dateProfile, props.nextDayThreshold, context, props.dayTableModel), { dateProfile: props.dateProfile, cells: props.dayTableModel.cells, colGroupNode: props.colGroupNode, tableMinWidth: props.tableMinWidth, renderRowIntro: props.renderRowIntro, dayMaxEvents: props.dayMaxEvents, dayMaxEventRows: props.dayMaxEventRows, showWeekNumbers: props.showWeekNumbers, expandRows: props.expandRows, headerAlignElRef: props.headerAlignElRef, clientWidth: props.clientWidth, clientHeight: props.clientHeight, forPrint: props.forPrint })));
};
return DayTable;
}(DateComponent));
render() {
let { props, context } = this;
return (createElement(Table, Object.assign({ ref: this.tableRef }, this.slicer.sliceProps(props, props.dateProfile, props.nextDayThreshold, context, props.dayTableModel), { dateProfile: props.dateProfile, cells: props.dayTableModel.cells, colGroupNode: props.colGroupNode, tableMinWidth: props.tableMinWidth, renderRowIntro: props.renderRowIntro, dayMaxEvents: props.dayMaxEvents, dayMaxEventRows: props.dayMaxEventRows, showWeekNumbers: props.showWeekNumbers, expandRows: props.expandRows, headerAlignElRef: props.headerAlignElRef, clientWidth: props.clientWidth, clientHeight: props.clientHeight, forPrint: props.forPrint })));
}
}
var DayTableView = /** @class */ (function (_super) {
__extends(DayTableView, _super);
function DayTableView() {
var _this = _super !== null && _super.apply(this, arguments) || this;
_this.buildDayTableModel = memoize(buildDayTableModel);
_this.headerRef = createRef();
_this.tableRef = createRef();
return _this;
class DayTableView extends TableView {
constructor() {
super(...arguments);
this.buildDayTableModel = memoize(buildDayTableModel);
this.headerRef = createRef();
this.tableRef = createRef();
}
DayTableView.prototype.render = function () {
var _this = this;
var _a = this.context, options = _a.options, dateProfileGenerator = _a.dateProfileGenerator;
var props = this.props;
var dayTableModel = this.buildDayTableModel(props.dateProfile, dateProfileGenerator);
var headerContent = options.dayHeaders && (createElement(DayHeader, { ref: this.headerRef, dateProfile: props.dateProfile, dates: dayTableModel.headerDates, datesRepDistinctDays: dayTableModel.rowCnt === 1 }));
var bodyContent = function (contentArg) { return (createElement(DayTable, { ref: _this.tableRef, dateProfile: props.dateProfile, dayTableModel: dayTableModel, businessHours: props.businessHours, dateSelection: props.dateSelection, eventStore: props.eventStore, eventUiBases: props.eventUiBases, eventSelection: props.eventSelection, eventDrag: props.eventDrag, eventResize: props.eventResize, nextDayThreshold: options.nextDayThreshold, colGroupNode: contentArg.tableColGroupNode, tableMinWidth: contentArg.tableMinWidth, dayMaxEvents: options.dayMaxEvents, dayMaxEventRows: options.dayMaxEventRows, showWeekNumbers: options.weekNumbers, expandRows: !props.isHeightAuto, headerAlignElRef: _this.headerElRef, clientWidth: contentArg.clientWidth, clientHeight: contentArg.clientHeight, forPrint: props.forPrint })); };
render() {
let { options, dateProfileGenerator } = this.context;
let { props } = this;
let dayTableModel = this.buildDayTableModel(props.dateProfile, dateProfileGenerator);
let headerContent = options.dayHeaders && (createElement(DayHeader, { ref: this.headerRef, dateProfile: props.dateProfile, dates: dayTableModel.headerDates, datesRepDistinctDays: dayTableModel.rowCnt === 1 }));
let bodyContent = (contentArg) => (createElement(DayTable, { ref: this.tableRef, dateProfile: props.dateProfile, dayTableModel: dayTableModel, businessHours: props.businessHours, dateSelection: props.dateSelection, eventStore: props.eventStore, eventUiBases: props.eventUiBases, eventSelection: props.eventSelection, eventDrag: props.eventDrag, eventResize: props.eventResize, nextDayThreshold: options.nextDayThreshold, colGroupNode: contentArg.tableColGroupNode, tableMinWidth: contentArg.tableMinWidth, dayMaxEvents: options.dayMaxEvents, dayMaxEventRows: options.dayMaxEventRows, showWeekNumbers: options.weekNumbers, expandRows: !props.isHeightAuto, headerAlignElRef: this.headerElRef, clientWidth: contentArg.clientWidth, clientHeight: contentArg.clientHeight, forPrint: props.forPrint }));
return options.dayMinWidth
? this.renderHScrollLayout(headerContent, bodyContent, dayTableModel.colCnt, options.dayMinWidth)
: this.renderSimpleLayout(headerContent, bodyContent);
};
return DayTableView;
}(TableView));
}
}
function buildDayTableModel(dateProfile, dateProfileGenerator) {
var daySeries = new DaySeriesModel(dateProfile.renderRange, dateProfileGenerator);
let daySeries = new DaySeriesModel(dateProfile.renderRange, dateProfileGenerator);
return new DayTableModel(daySeries, /year|month|week/.test(dateProfile.currentRangeUnit));
}
var TableDateProfileGenerator = /** @class */ (function (_super) {
__extends(TableDateProfileGenerator, _super);
function TableDateProfileGenerator() {
return _super !== null && _super.apply(this, arguments) || this;
}
class TableDateProfileGenerator extends DateProfileGenerator {
// Computes the date range that will be rendered.
TableDateProfileGenerator.prototype.buildRenderRange = function (currentRange, currentRangeUnit, isRangeAllDay) {
var dateEnv = this.props.dateEnv;
var renderRange = _super.prototype.buildRenderRange.call(this, currentRange, currentRangeUnit, isRangeAllDay);
var start = renderRange.start;
var end = renderRange.end;
var endOfWeek;
buildRenderRange(currentRange, currentRangeUnit, isRangeAllDay) {
let { dateEnv } = this.props;
let renderRange = super.buildRenderRange(currentRange, currentRangeUnit, isRangeAllDay);
let start = renderRange.start;
let end = renderRange.end;
let endOfWeek;
// year and month views should be aligned with weeks. this is already done for week

@@ -954,11 +888,40 @@ if (/^(year|month)$/.test(currentRangeUnit)) {

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

@@ -965,0 +928,0 @@ initialView: 'dayGridMonth',

{
"name": "@fullcalendar/daygrid",
"version": "5.11.2",
"version": "6.0.0-beta.1",
"title": "FullCalendar Day Grid Plugin",

@@ -8,3 +8,3 @@ "description": "Display events on Month view or DayGrid view",

"dependencies": {
"@fullcalendar/common": "~5.11.2",
"@fullcalendar/common": "6.0.0-beta.1",
"tslib": "^2.1.0"

@@ -31,4 +31,4 @@ },

"devDependencies": {
"@fullcalendar/core-preact": "5.11.2"
"@fullcalendar/core-preact": "6.0.0-beta.1"
}
}

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

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

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc