@fullcalendar/daygrid 7.0.0-beta.3 → 7.0.0-rc.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/index.global.js +185 -122
- package/index.global.min.js +2 -2
- package/internal.cjs +184 -121
- package/internal.d.ts +18 -10
- package/internal.js +184 -122
- package/package.json +2 -2
package/index.global.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
FullCalendar Day Grid Plugin v7.0.0-
|
|
2
|
+
FullCalendar Day Grid Plugin v7.0.0-rc.0
|
|
3
3
|
Docs & License: https://fullcalendar.io/docs/month-view
|
|
4
4
|
(c) 2024 Adam Shaw
|
|
5
5
|
*/
|
|
@@ -33,10 +33,15 @@ FullCalendar.DayGrid = (function (exports, core, internal$1, preact) {
|
|
|
33
33
|
function buildDateRowConfig(dates, datesRepDistinctDays, dateProfile, todayRange, dayHeaderFormat, // TODO: rename to dateHeaderFormat?
|
|
34
34
|
context, colSpan) {
|
|
35
35
|
return {
|
|
36
|
+
isDateRow: true,
|
|
36
37
|
renderConfig: buildDateRenderConfig(context),
|
|
37
38
|
dataConfigs: buildDateDataConfigs(dates, datesRepDistinctDays, dateProfile, todayRange, dayHeaderFormat, context, colSpan)
|
|
38
39
|
};
|
|
39
40
|
}
|
|
41
|
+
/*
|
|
42
|
+
For header cells: how to connect w/ custom rendering
|
|
43
|
+
Applies to all cells in a row
|
|
44
|
+
*/
|
|
40
45
|
function buildDateRenderConfig(context) {
|
|
41
46
|
const { options } = context;
|
|
42
47
|
return {
|
|
@@ -47,23 +52,38 @@ FullCalendar.DayGrid = (function (exports, core, internal$1, preact) {
|
|
|
47
52
|
willUnmount: options.dayHeaderWillUnmount,
|
|
48
53
|
};
|
|
49
54
|
}
|
|
55
|
+
const dowDates = [];
|
|
56
|
+
for (let dow = 0; dow < 7; dow++) {
|
|
57
|
+
dowDates.push(internal$1.addDays(new Date(259200000), dow)); // start with Sun, 04 Jan 1970 00:00:00 GMT)
|
|
58
|
+
}
|
|
59
|
+
/*
|
|
60
|
+
For header cells: data
|
|
61
|
+
*/
|
|
50
62
|
function buildDateDataConfigs(dates, datesRepDistinctDays, dateProfile, todayRange, dayHeaderFormat, // TODO: rename to dateHeaderFormat?
|
|
51
|
-
context, colSpan = 1, keyPrefix = ''
|
|
63
|
+
context, colSpan = 1, keyPrefix = '', extraRenderProps = {}, // TODO
|
|
64
|
+
extraAttrs = {}, // TODO
|
|
65
|
+
className = '') {
|
|
52
66
|
const { dateEnv, viewApi, options } = context;
|
|
53
67
|
return datesRepDistinctDays
|
|
54
68
|
? dates.map((date) => {
|
|
55
69
|
const dateMeta = internal$1.getDateMeta(date, todayRange, null, dateProfile);
|
|
56
70
|
const text = dateEnv.format(date, dayHeaderFormat);
|
|
57
|
-
const renderProps = Object.assign(Object.assign({}, dateMeta), { date: dateEnv.toDate(date), view: viewApi, text });
|
|
58
|
-
const isNavLink = options.navLinks && !dateMeta.isDisabled
|
|
71
|
+
const renderProps = Object.assign(Object.assign(Object.assign({}, dateMeta), { date: dateEnv.toDate(date), view: viewApi, text }), extraRenderProps);
|
|
72
|
+
const isNavLink = options.navLinks && !dateMeta.isDisabled &&
|
|
73
|
+
dates.length > 1; // don't show navlink to day if only one day
|
|
74
|
+
const fullDateStr = internal$1.buildDateStr(context, date);
|
|
75
|
+
// for DayGridHeaderCell
|
|
59
76
|
return {
|
|
60
77
|
key: keyPrefix + date.toUTCString(),
|
|
61
78
|
renderProps,
|
|
62
|
-
attrs: { '
|
|
63
|
-
|
|
79
|
+
attrs: Object.assign(Object.assign(Object.assign({ 'aria-label': fullDateStr }, (dateMeta.isToday ? { 'aria-current': 'date' } : {})), { 'data-date': internal$1.formatDayString(date) }), extraAttrs),
|
|
80
|
+
// for navlink
|
|
81
|
+
innerAttrs: isNavLink
|
|
82
|
+
? internal$1.buildNavLinkAttrs(context, date, undefined, fullDateStr)
|
|
83
|
+
: { 'aria-hidden': true },
|
|
64
84
|
colSpan,
|
|
65
85
|
isNavLink,
|
|
66
|
-
className: internal$1.getDayClassName(dateMeta),
|
|
86
|
+
className: internal$1.joinClassNames(className, internal$1.getDayClassName(dateMeta)),
|
|
67
87
|
};
|
|
68
88
|
})
|
|
69
89
|
: dates.map((date) => {
|
|
@@ -78,13 +98,19 @@ FullCalendar.DayGrid = (function (exports, core, internal$1, preact) {
|
|
|
78
98
|
isOther: false,
|
|
79
99
|
};
|
|
80
100
|
const text = dateEnv.format(normDate, dayHeaderFormat);
|
|
81
|
-
const renderProps = Object.assign(Object.assign({}, dayMeta), { date, view: viewApi, text });
|
|
101
|
+
const renderProps = Object.assign(Object.assign(Object.assign({}, dayMeta), { date: dowDates[dow], view: viewApi, text }), extraRenderProps);
|
|
102
|
+
const fullWeekDayStr = dateEnv.format(normDate, WEEKDAY_FORMAT);
|
|
103
|
+
// for DayGridHeaderCell
|
|
82
104
|
return {
|
|
83
105
|
key: keyPrefix + String(dow),
|
|
84
106
|
renderProps,
|
|
85
|
-
|
|
107
|
+
attrs: Object.assign({ 'aria-label': fullWeekDayStr }, extraAttrs),
|
|
108
|
+
// NOT a navlink
|
|
109
|
+
innerAttrs: {
|
|
110
|
+
'aria-hidden': true, // label already on cell
|
|
111
|
+
},
|
|
86
112
|
colSpan,
|
|
87
|
-
className: internal$1.getDayClassName(dayMeta),
|
|
113
|
+
className: internal$1.joinClassNames(className, internal$1.getDayClassName(dayMeta)),
|
|
88
114
|
};
|
|
89
115
|
});
|
|
90
116
|
}
|
|
@@ -168,8 +194,8 @@ FullCalendar.DayGrid = (function (exports, core, internal$1, preact) {
|
|
|
168
194
|
/* slicedStart = */ undefined,
|
|
169
195
|
/* slicedEnd = */ undefined, props.isStart, props.isEnd, context,
|
|
170
196
|
/* defaultDisplayEventTime = */ true, props.defaultDisplayEventEnd);
|
|
171
|
-
let
|
|
172
|
-
return (preact.createElement(internal$1.EventContainer, Object.assign({}, props, { tag:
|
|
197
|
+
let [tag, attrs] = internal$1.getEventTagAndAttrs(eventRange, context);
|
|
198
|
+
return (preact.createElement(internal$1.EventContainer, Object.assign({}, props, { tag: tag, attrs: attrs, className: 'fc-daygrid-dot-event fc-daygrid-event', defaultGenerator: renderInnerContent, timeText: timeText, isResizing: false, isDateSelecting: false })));
|
|
173
199
|
}
|
|
174
200
|
}
|
|
175
201
|
function renderInnerContent(renderProps) {
|
|
@@ -203,9 +229,34 @@ FullCalendar.DayGrid = (function (exports, core, internal$1, preact) {
|
|
|
203
229
|
class DayGridCell extends internal$1.DateComponent {
|
|
204
230
|
constructor() {
|
|
205
231
|
super(...arguments);
|
|
232
|
+
// memo
|
|
233
|
+
this.getDateMeta = internal$1.memoize(internal$1.getDateMeta);
|
|
206
234
|
// ref
|
|
207
235
|
this.rootElRef = preact.createRef();
|
|
208
|
-
this.
|
|
236
|
+
this.handleBodyEl = (bodyEl) => {
|
|
237
|
+
if (this.disconnectBodyHeight) {
|
|
238
|
+
this.disconnectBodyHeight();
|
|
239
|
+
this.disconnectBodyHeight = undefined;
|
|
240
|
+
internal$1.setRef(this.props.headerHeightRef, null);
|
|
241
|
+
internal$1.setRef(this.props.mainHeightRef, null);
|
|
242
|
+
}
|
|
243
|
+
if (bodyEl) {
|
|
244
|
+
// we want to fire on ANY size change, because we do more advanced stuff
|
|
245
|
+
this.disconnectBodyHeight = internal$1.watchSize(bodyEl, (_bodyWidth, bodyHeight) => {
|
|
246
|
+
const { props } = this;
|
|
247
|
+
const mainRect = bodyEl.getBoundingClientRect();
|
|
248
|
+
const rootRect = this.rootElRef.current.getBoundingClientRect();
|
|
249
|
+
const headerHeight = mainRect.top - rootRect.top;
|
|
250
|
+
if (!internal$1.isDimsEqual(this.headerHeight, headerHeight)) {
|
|
251
|
+
this.headerHeight = headerHeight;
|
|
252
|
+
internal$1.setRef(props.headerHeightRef, headerHeight);
|
|
253
|
+
}
|
|
254
|
+
if (props.fgLiquidHeight) {
|
|
255
|
+
internal$1.setRef(props.mainHeightRef, bodyHeight);
|
|
256
|
+
}
|
|
257
|
+
});
|
|
258
|
+
}
|
|
259
|
+
};
|
|
209
260
|
}
|
|
210
261
|
render() {
|
|
211
262
|
let { props, context } = this;
|
|
@@ -213,38 +264,28 @@ FullCalendar.DayGrid = (function (exports, core, internal$1, preact) {
|
|
|
213
264
|
// TODO: memoize this
|
|
214
265
|
const isMonthStart = props.showDayNumber &&
|
|
215
266
|
shouldDisplayMonthStart(props.date, props.dateProfile.currentRange, dateEnv);
|
|
216
|
-
|
|
267
|
+
const dateMeta = this.getDateMeta(props.date, props.todayRange, null, props.dateProfile);
|
|
268
|
+
const baseClassName = internal$1.joinClassNames('fc-daygrid-day', props.borderStart && 'fc-border-s', props.width != null ? '' : 'fc-liquid', 'fc-flex-col');
|
|
269
|
+
if (dateMeta.isDisabled) {
|
|
270
|
+
return (preact.createElement("div", { role: 'gridcell', "aria-disabled": true, className: internal$1.joinClassNames(baseClassName, 'fc-day-disabled'), style: {
|
|
271
|
+
width: props.width
|
|
272
|
+
} }));
|
|
273
|
+
}
|
|
274
|
+
const hasDayNumber = props.showDayNumber || internal$1.hasCustomDayCellContent(options);
|
|
275
|
+
const isNavLink = options.navLinks;
|
|
276
|
+
const fullDateStr = internal$1.buildDateStr(context, props.date);
|
|
277
|
+
return (preact.createElement(internal$1.DayCellContainer, { tag: "div", className: internal$1.joinClassNames(baseClassName, props.className), attrs: Object.assign(Object.assign({}, props.attrs), { role: 'gridcell', 'aria-label': fullDateStr }), style: {
|
|
217
278
|
width: props.width
|
|
218
|
-
}, elRef: this.rootElRef, renderProps: props.renderProps, defaultGenerator: renderTopInner, date: props.date,
|
|
219
|
-
|
|
220
|
-
preact.createElement(InnerContent, { tag:
|
|
221
|
-
|
|
279
|
+
}, elRef: this.rootElRef, renderProps: props.renderProps, defaultGenerator: renderTopInner, date: props.date, dateMeta: dateMeta, showDayNumber: props.showDayNumber, isMonthStart: isMonthStart }, (InnerContent) => (preact.createElement(preact.Fragment, null,
|
|
280
|
+
hasDayNumber && (preact.createElement("div", { className: "fc-daygrid-day-header" },
|
|
281
|
+
preact.createElement(InnerContent, { tag: 'div', attrs: isNavLink
|
|
282
|
+
? internal$1.buildNavLinkAttrs(context, props.date, undefined, fullDateStr)
|
|
283
|
+
: { 'aria-hidden': true } // label already on cell
|
|
284
|
+
, className: internal$1.joinClassNames('fc-daygrid-day-number', isMonthStart && 'fc-daygrid-month-start') }))),
|
|
285
|
+
preact.createElement("div", { className: internal$1.joinClassNames('fc-daygrid-day-body', props.isTall && 'fc-daygrid-day-body-tall', props.fgLiquidHeight ? 'fc-liquid' : 'fc-grow'), ref: this.handleBodyEl },
|
|
222
286
|
preact.createElement("div", { className: 'fc-daygrid-day-events', style: { height: props.fgHeight } }, props.fg),
|
|
223
287
|
preact.createElement(DayGridMoreLink, { isBlock: props.isCompact, allDayDate: props.date, segs: props.segs, hiddenSegs: props.hiddenSegs, alignElRef: this.rootElRef, alignParentTop: props.showDayNumber ? '[role=row]' : '.fc-view', dateSpanProps: props.dateSpanProps, dateProfile: props.dateProfile, eventSelection: props.eventSelection, eventDrag: props.eventDrag, eventResize: props.eventResize, todayRange: props.todayRange }))))));
|
|
224
288
|
}
|
|
225
|
-
componentDidMount() {
|
|
226
|
-
const bodyEl = this.bodyElRef.current;
|
|
227
|
-
// we want to fire on ANY size change, because we do more advanced stuff
|
|
228
|
-
this.disconnectBodyHeight = internal$1.watchSize(bodyEl, (_bodyWidth, bodyHeight) => {
|
|
229
|
-
const { props } = this;
|
|
230
|
-
const mainRect = bodyEl.getBoundingClientRect();
|
|
231
|
-
const rootRect = this.rootElRef.current.getBoundingClientRect();
|
|
232
|
-
const headerHeight = mainRect.top - rootRect.top;
|
|
233
|
-
if (!internal$1.isDimsEqual(this.headerHeight, headerHeight)) {
|
|
234
|
-
this.headerHeight = headerHeight;
|
|
235
|
-
internal$1.setRef(props.headerHeightRef, headerHeight);
|
|
236
|
-
}
|
|
237
|
-
if (props.fgLiquidHeight) {
|
|
238
|
-
internal$1.setRef(props.mainHeightRef, bodyHeight);
|
|
239
|
-
}
|
|
240
|
-
});
|
|
241
|
-
}
|
|
242
|
-
componentWillUnmount() {
|
|
243
|
-
this.disconnectBodyHeight();
|
|
244
|
-
const { props } = this;
|
|
245
|
-
internal$1.setRef(props.headerHeightRef, null);
|
|
246
|
-
internal$1.setRef(props.mainHeightRef, null);
|
|
247
|
-
}
|
|
248
289
|
}
|
|
249
290
|
// Utils
|
|
250
291
|
// -------------------------------------------------------------------------------------------------
|
|
@@ -472,10 +513,10 @@ FullCalendar.DayGrid = (function (exports, core, internal$1, preact) {
|
|
|
472
513
|
// Hit Element
|
|
473
514
|
// -------------------------------------------------------------------------------------------------
|
|
474
515
|
function getRowEl(rootEl, row) {
|
|
475
|
-
return rootEl.querySelectorAll('
|
|
516
|
+
return rootEl.querySelectorAll('[role=row]')[row];
|
|
476
517
|
}
|
|
477
518
|
function getCellEl(rowEl, col) {
|
|
478
|
-
return rowEl.querySelectorAll('
|
|
519
|
+
return rowEl.querySelectorAll('[role=gridcell]')[col];
|
|
479
520
|
}
|
|
480
521
|
// Header Formatting
|
|
481
522
|
// -------------------------------------------------------------------------------------------------
|
|
@@ -568,14 +609,21 @@ FullCalendar.DayGrid = (function (exports, core, internal$1, preact) {
|
|
|
568
609
|
(props.eventDrag && props.eventDrag.affectedInstances) ||
|
|
569
610
|
(props.eventResize && props.eventResize.affectedInstances) ||
|
|
570
611
|
{};
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
612
|
+
const isNavLink = options.navLinks;
|
|
613
|
+
const fullWeekStr = internal$1.buildDateStr(context, weekDate, 'week');
|
|
614
|
+
return (preact.createElement("div", { role: props.role /* !!! */, "aria-label": props.role === 'row' // HACK
|
|
615
|
+
? fullWeekStr
|
|
616
|
+
: undefined // can't have label on non-role div
|
|
617
|
+
, className: internal$1.joinClassNames('fc-daygrid-row', props.forPrint && 'fc-daygrid-row-print', 'fc-flex-row fc-rel', props.className), style: {
|
|
618
|
+
'flex-basis': props.basis,
|
|
574
619
|
}, ref: this.handleRootEl },
|
|
620
|
+
props.showWeekNumbers && (preact.createElement(internal$1.WeekNumberContainer, { tag: 'div', attrs: Object.assign(Object.assign({}, (isNavLink
|
|
621
|
+
? internal$1.buildNavLinkAttrs(context, weekDate, 'week', fullWeekStr, /* isTabbable = */ false)
|
|
622
|
+
: {})), { 'role': undefined, 'aria-hidden': true }), className: 'fc-daygrid-week-number', date: weekDate, defaultFormat: DEFAULT_WEEK_NUM_FORMAT })),
|
|
575
623
|
this.renderFillSegs(props.businessHourSegs, 'non-business'),
|
|
576
624
|
this.renderFillSegs(props.bgEventSegs, 'bg-event'),
|
|
577
625
|
this.renderFillSegs(highlightSegs, 'highlight'),
|
|
578
|
-
|
|
626
|
+
props.cells.map((cell, col) => {
|
|
579
627
|
const normalFgNodes = this.renderFgSegs(maxMainTop, renderableSegsByCol[col], segTops, props.todayRange, forcedInvisibleMap);
|
|
580
628
|
return (preact.createElement(DayGridCell, { key: cell.key, dateProfile: props.dateProfile, todayRange: props.todayRange, date: cell.date, showDayNumber: props.showDayNumbers, isCompact: props.isCompact, isTall: props.isTall, borderStart: Boolean(col),
|
|
581
629
|
// content
|
|
@@ -586,8 +634,7 @@ FullCalendar.DayGrid = (function (exports, core, internal$1, preact) {
|
|
|
586
634
|
fgHeight: heightsByCol[col], width: props.colWidth,
|
|
587
635
|
// refs
|
|
588
636
|
headerHeightRef: headerHeightRefMap.createRef(cell.key), mainHeightRef: mainHeightRefMap.createRef(cell.key) }));
|
|
589
|
-
})
|
|
590
|
-
props.showWeekNumbers && (preact.createElement(internal$1.WeekNumberContainer, { tag: "a", attrs: internal$1.buildNavLinkAttrs(context, weekDate, 'week'), className: 'fc-daygrid-week-number', date: weekDate, defaultFormat: DEFAULT_WEEK_NUM_FORMAT })),
|
|
637
|
+
}),
|
|
591
638
|
this.renderFgSegs(maxMainTop, mirrorSegs, segTops, props.todayRange, {}, // forcedInvisibleMap
|
|
592
639
|
Boolean(props.eventDrag), Boolean(props.eventResize), false)));
|
|
593
640
|
}
|
|
@@ -747,30 +794,22 @@ FullCalendar.DayGrid = (function (exports, core, internal$1, preact) {
|
|
|
747
794
|
let eventResizeByRow = this.splitEventResize(props.eventResize, rowCnt);
|
|
748
795
|
let isHeightAuto = internal$1.getIsHeightAuto(options);
|
|
749
796
|
let rowHeightsRedistribute = !props.forPrint && !isHeightAuto;
|
|
750
|
-
let
|
|
751
|
-
|
|
797
|
+
let rowBasis = computeRowBasis(props.visibleWidth, rowCnt, isHeightAuto, options);
|
|
798
|
+
let isCompact = computeRowIsCompact(props.visibleWidth, options);
|
|
799
|
+
return (preact.createElement("div", { role: 'rowgroup', className: internal$1.joinClassNames(
|
|
752
800
|
// HACK for Safari. Can't do break-inside:avoid with flexbox items, likely b/c it's not standard:
|
|
753
801
|
// https://stackoverflow.com/a/60256345
|
|
754
|
-
!props.forPrint && 'fc-flex-col', props.className), style: { width: props.width }, ref: this.handleRootEl }, props.cellRows.map((cells, row) => (preact.createElement(DayGridRow, { key: cells[0].key, dateProfile: props.dateProfile, todayRange: props.todayRange, cells: cells, showDayNumbers: rowCnt > 1, showWeekNumbers: options.weekNumbers, forPrint: props.forPrint, isCompact: isCompact,
|
|
802
|
+
!props.forPrint && 'fc-flex-col', props.className), style: { width: props.width }, ref: this.handleRootEl }, props.cellRows.map((cells, row) => (preact.createElement(DayGridRow, { key: cells[0].key, role: 'row', dateProfile: props.dateProfile, todayRange: props.todayRange, cells: cells, showDayNumbers: rowCnt > 1, showWeekNumbers: rowCnt > 1 && options.weekNumbers, forPrint: props.forPrint, isCompact: isCompact,
|
|
755
803
|
// if not auto-height, distribute height of container somewhat evently to rows
|
|
756
|
-
|
|
757
|
-
className: internal$1.joinClassNames(rowHeightsRedistribute && 'fc-grow fc-basis0', rowCnt > 1 && 'fc-break-inside-avoid', // don't avoid breaks for single tall row
|
|
804
|
+
className: internal$1.joinClassNames(rowHeightsRedistribute && 'fc-grow', rowCnt > 1 && 'fc-break-inside-avoid', // don't avoid breaks for single tall row
|
|
758
805
|
row < rowCnt - 1 && 'fc-border-b'),
|
|
759
806
|
// content
|
|
760
807
|
fgEventSegs: fgEventSegsByRow[row], bgEventSegs: bgEventSegsByRow[row].filter(isSegAllDay) /* HACK */, businessHourSegs: businessHourSegsByRow[row], dateSelectionSegs: dateSelectionSegsByRow[row], eventSelection: props.eventSelection, eventDrag: eventDragByRow[row], eventResize: eventResizeByRow[row], dayMaxEvents: props.dayMaxEvents, dayMaxEventRows: props.dayMaxEventRows,
|
|
761
808
|
// dimensions
|
|
762
|
-
colWidth: props.colWidth,
|
|
809
|
+
colWidth: props.colWidth, basis: rowBasis,
|
|
763
810
|
// refs
|
|
764
811
|
heightRef: rowHeightRefMap.createRef(cells[0].key) })))));
|
|
765
812
|
}
|
|
766
|
-
componentDidMount() {
|
|
767
|
-
this.disconnectWidth = internal$1.watchWidth(this.rootEl, (width) => {
|
|
768
|
-
this.setState({ width });
|
|
769
|
-
});
|
|
770
|
-
}
|
|
771
|
-
componentWillUnmount() {
|
|
772
|
-
this.disconnectWidth();
|
|
773
|
-
}
|
|
774
813
|
// Hit System
|
|
775
814
|
// -----------------------------------------------------------------------------------------------
|
|
776
815
|
queryHit(positionLeft, positionTop, elWidth) {
|
|
@@ -787,8 +826,7 @@ FullCalendar.DayGrid = (function (exports, core, internal$1, preact) {
|
|
|
787
826
|
start: cellStartDate,
|
|
788
827
|
end: cellEndDate,
|
|
789
828
|
}, allDay: true }, cell.dateSpanProps),
|
|
790
|
-
|
|
791
|
-
dayEl: getCellEl(getRowEl(this.rootEl, row), col),
|
|
829
|
+
getDayEl: () => getCellEl(getRowEl(this.rootEl, row), col),
|
|
792
830
|
rect: {
|
|
793
831
|
left,
|
|
794
832
|
right,
|
|
@@ -804,27 +842,35 @@ FullCalendar.DayGrid = (function (exports, core, internal$1, preact) {
|
|
|
804
842
|
function isSegAllDay(seg) {
|
|
805
843
|
return seg.eventRange.def.allDay;
|
|
806
844
|
}
|
|
807
|
-
|
|
808
|
-
|
|
845
|
+
/*
|
|
846
|
+
Amount of height a row should consume prior to expanding
|
|
847
|
+
We don't want to use min-height with flexbox because we leverage min-height:auto,
|
|
848
|
+
which yields value based on natural height of events
|
|
849
|
+
*/
|
|
850
|
+
function computeRowBasis(visibleWidth, // should INCLUDE any scrollbar width to avoid oscillation
|
|
851
|
+
rowCnt, isHeightAuto, options) {
|
|
809
852
|
if (visibleWidth != null) {
|
|
810
853
|
// ensure a consistent row min-height modelled after a month with 6 rows respecting aspectRatio
|
|
811
854
|
// will result in same minHeight regardless of weekends, dayMinWidth, height:auto
|
|
812
|
-
const
|
|
813
|
-
|
|
814
|
-
|
|
815
|
-
|
|
816
|
-
// this is value that looks natural on paper for portrait/landscape
|
|
817
|
-
? '6em'
|
|
818
|
-
// don't give minHeight when single-month non-auto-height
|
|
819
|
-
// TODO: better way to detect this with DateProfile?
|
|
820
|
-
: (rowCnt > 6 || isHeightAuto)
|
|
821
|
-
? rowMinHeight
|
|
822
|
-
: undefined,
|
|
823
|
-
// isCompact?: just before most lone +more links hit bottom of cell
|
|
824
|
-
rowMinHeight < 70,
|
|
825
|
-
];
|
|
855
|
+
const rowBasis = visibleWidth / options.aspectRatio / 6;
|
|
856
|
+
// don't give minHeight when single-month non-auto-height
|
|
857
|
+
// TODO: better way to detect this with DateProfile?
|
|
858
|
+
return (rowCnt > 6 || isHeightAuto) ? rowBasis : 0;
|
|
826
859
|
}
|
|
827
|
-
return
|
|
860
|
+
return 0;
|
|
861
|
+
}
|
|
862
|
+
/*
|
|
863
|
+
Infers cell height based on overall width
|
|
864
|
+
*/
|
|
865
|
+
function computeRowIsCompact(visibleWidth, // should INCLUDE any scrollbar width to avoid oscillation
|
|
866
|
+
options) {
|
|
867
|
+
if (visibleWidth != null) {
|
|
868
|
+
// ensure a consistent row min-height modelled after a month with 6 rows respecting aspectRatio
|
|
869
|
+
// will result in same minHeight regardless of weekends, dayMinWidth, height:auto
|
|
870
|
+
const rowBasis = visibleWidth / options.aspectRatio / 6;
|
|
871
|
+
return rowBasis < 70;
|
|
872
|
+
}
|
|
873
|
+
return false;
|
|
828
874
|
}
|
|
829
875
|
|
|
830
876
|
class DayGridHeaderCell extends internal$1.BaseComponent {
|
|
@@ -848,14 +894,16 @@ FullCalendar.DayGrid = (function (exports, core, internal$1, preact) {
|
|
|
848
894
|
render() {
|
|
849
895
|
const { props } = this;
|
|
850
896
|
const { renderConfig, dataConfig } = props;
|
|
851
|
-
|
|
897
|
+
// HACK
|
|
898
|
+
const isDisabled = dataConfig.renderProps.isDisabled;
|
|
899
|
+
return (preact.createElement(internal$1.ContentContainer, { tag: 'div', attrs: Object.assign({ role: 'columnheader', 'aria-colspan': dataConfig.colSpan }, dataConfig.attrs), className: internal$1.joinClassNames('fc-header-cell fc-cell fc-flex-col fc-align-center', props.borderStart && 'fc-border-s', !props.isSticky && 'fc-crop', props.colWidth == null && 'fc-liquid', dataConfig.className), style: {
|
|
852
900
|
width: props.colWidth != null
|
|
853
901
|
? props.colWidth * (dataConfig.colSpan || 1)
|
|
854
902
|
: undefined,
|
|
855
903
|
}, renderProps: dataConfig.renderProps, generatorName: renderConfig.generatorName, customGenerator: renderConfig.customGenerator, defaultGenerator: internal$1.renderText, classNameGenerator:
|
|
856
904
|
// don't use custom classNames if disabled
|
|
857
905
|
// TODO: make DRY with DayCellContainer
|
|
858
|
-
|
|
906
|
+
isDisabled ? undefined : renderConfig.classNameGenerator, didMount: renderConfig.didMount, willUnmount: renderConfig.willUnmount }, (InnerContainer) => (preact.createElement(InnerContainer, { tag: 'div', attrs: dataConfig.innerAttrs, className: internal$1.joinClassNames('fc-cell-inner fc-flex-col fc-padding-sm', props.isSticky && 'fc-sticky-s'), elRef: this.handleInnerEl }))));
|
|
859
907
|
}
|
|
860
908
|
}
|
|
861
909
|
|
|
@@ -880,7 +928,10 @@ FullCalendar.DayGrid = (function (exports, core, internal$1, preact) {
|
|
|
880
928
|
}
|
|
881
929
|
render() {
|
|
882
930
|
const { props } = this;
|
|
883
|
-
return (preact.createElement("div", { role:
|
|
931
|
+
return (preact.createElement("div", { role: props.role /* !!! */, "aria-rowindex": props.rowIndex != null ? 1 + props.rowIndex : undefined, className: internal$1.joinClassNames('fc-flex-row fc-content-box', props.className), style: { height: props.height } }, props.dataConfigs.map((dataConfig, cellI) => (preact.createElement(DayGridHeaderCell, { key: dataConfig.key, renderConfig: props.renderConfig, dataConfig: dataConfig, isSticky: props.isSticky, borderStart: Boolean(cellI), colWidth: props.colWidth, innerHeightRef: props.innerHeightRef })))));
|
|
932
|
+
}
|
|
933
|
+
componentWillUnmount() {
|
|
934
|
+
internal$1.setRef(this.props.innerHeightRef, null);
|
|
884
935
|
}
|
|
885
936
|
}
|
|
886
937
|
|
|
@@ -890,9 +941,9 @@ FullCalendar.DayGrid = (function (exports, core, internal$1, preact) {
|
|
|
890
941
|
class DayGridHeader extends internal$1.BaseComponent {
|
|
891
942
|
render() {
|
|
892
943
|
const { props } = this;
|
|
893
|
-
return (preact.createElement("div", { className: internal$1.joinClassNames(props.className, 'fc-flex-col', props.width == null && 'fc-liquid'), style: {
|
|
944
|
+
return (preact.createElement("div", { role: 'rowgroup', className: internal$1.joinClassNames(props.className, 'fc-flex-col', props.width == null && 'fc-liquid'), style: {
|
|
894
945
|
width: props.width
|
|
895
|
-
} }, props.headerTiers.map((rowConfig, tierNum) => (preact.createElement(DayGridHeaderRow, Object.assign({}, rowConfig, { key: tierNum, className: tierNum ? 'fc-border-t' : '', colWidth: props.colWidth }))))));
|
|
946
|
+
} }, props.headerTiers.map((rowConfig, tierNum) => (preact.createElement(DayGridHeaderRow, Object.assign({}, rowConfig, { key: tierNum, role: 'row', className: tierNum ? 'fc-border-t' : '', colWidth: props.colWidth }))))));
|
|
896
947
|
}
|
|
897
948
|
}
|
|
898
949
|
|
|
@@ -902,37 +953,39 @@ FullCalendar.DayGrid = (function (exports, core, internal$1, preact) {
|
|
|
902
953
|
this.handleScroller = (scroller) => {
|
|
903
954
|
internal$1.setRef(this.props.scrollerRef, scroller);
|
|
904
955
|
};
|
|
956
|
+
this.handleTotalWidth = (totalWidth) => {
|
|
957
|
+
this.setState({ totalWidth });
|
|
958
|
+
};
|
|
905
959
|
this.handleClientWidth = (clientWidth) => {
|
|
906
960
|
this.setState({ clientWidth });
|
|
907
961
|
};
|
|
908
|
-
this.handleEndScrollbarWidth = (endScrollbarWidth) => {
|
|
909
|
-
this.setState({ endScrollbarWidth });
|
|
910
|
-
};
|
|
911
962
|
}
|
|
912
963
|
render() {
|
|
913
964
|
const { props, state, context } = this;
|
|
914
965
|
const { options } = context;
|
|
966
|
+
const { totalWidth, clientWidth } = state;
|
|
967
|
+
const endScrollbarWidth = (totalWidth != null && clientWidth != null)
|
|
968
|
+
? totalWidth - clientWidth
|
|
969
|
+
: undefined;
|
|
915
970
|
const verticalScrollbars = !props.forPrint && !internal$1.getIsHeightAuto(options);
|
|
916
971
|
const stickyHeaderDates = !props.forPrint && internal$1.getStickyHeaderDates(options);
|
|
917
972
|
return (preact.createElement(preact.Fragment, null,
|
|
918
973
|
options.dayHeaders && (preact.createElement("div", { className: internal$1.joinClassNames(props.forPrint ? 'fc-print-header' : 'fc-flex-row', // col for print, row for screen
|
|
919
|
-
'fc-border-b') },
|
|
920
|
-
preact.createElement(DayGridHeader, { headerTiers: props.headerTiers, className:
|
|
921
|
-
Boolean(
|
|
922
|
-
preact.createElement(internal$1.Scroller, { vertical: verticalScrollbars,
|
|
974
|
+
stickyHeaderDates && 'fc-table-header-sticky', 'fc-border-b') },
|
|
975
|
+
preact.createElement(DayGridHeader, { headerTiers: props.headerTiers, className: 'fc-daygrid-header' }),
|
|
976
|
+
Boolean(endScrollbarWidth) && (preact.createElement("div", { className: 'fc-border-s fc-filler', style: { minWidth: endScrollbarWidth } })))),
|
|
977
|
+
preact.createElement(internal$1.Scroller, { vertical: verticalScrollbars, className: internal$1.joinClassNames('fc-daygrid-body',
|
|
923
978
|
// HACK for Safari. Can't do break-inside:avoid with flexbox items, likely b/c it's not standard:
|
|
924
979
|
// https://stackoverflow.com/a/60256345
|
|
925
|
-
!props.forPrint && 'fc-flex-col', verticalScrollbars && 'fc-liquid'), ref: this.handleScroller },
|
|
980
|
+
!props.forPrint && 'fc-flex-col', verticalScrollbars && 'fc-liquid'), ref: this.handleScroller, clientWidthRef: this.handleClientWidth },
|
|
926
981
|
preact.createElement(DayGridRows, { dateProfile: props.dateProfile, todayRange: props.todayRange, cellRows: props.cellRows, forPrint: props.forPrint, isHitComboAllowed: props.isHitComboAllowed, className: 'fc-grow', dayMaxEvents: props.forPrint ? undefined : options.dayMaxEvents, dayMaxEventRows: options.dayMaxEventRows,
|
|
927
982
|
// content
|
|
928
983
|
fgEventSegs: props.fgEventSegs, bgEventSegs: props.bgEventSegs, businessHourSegs: props.businessHourSegs, dateSelectionSegs: props.dateSelectionSegs, eventDrag: props.eventDrag, eventResize: props.eventResize, eventSelection: props.eventSelection,
|
|
929
984
|
// dimensions
|
|
930
|
-
visibleWidth:
|
|
931
|
-
state.clientWidth != null && state.endScrollbarWidth != null
|
|
932
|
-
? state.clientWidth + state.endScrollbarWidth
|
|
933
|
-
: undefined,
|
|
985
|
+
visibleWidth: totalWidth,
|
|
934
986
|
// refs
|
|
935
|
-
rowHeightRefMap: props.rowHeightRefMap }))
|
|
987
|
+
rowHeightRefMap: props.rowHeightRefMap })),
|
|
988
|
+
preact.createElement(internal$1.Ruler, { widthRef: this.handleTotalWidth })));
|
|
936
989
|
}
|
|
937
990
|
}
|
|
938
991
|
|
|
@@ -944,43 +997,45 @@ FullCalendar.DayGrid = (function (exports, core, internal$1, preact) {
|
|
|
944
997
|
this.footerScrollerRef = preact.createRef();
|
|
945
998
|
// Sizing
|
|
946
999
|
// -----------------------------------------------------------------------------------------------
|
|
1000
|
+
this.handleTotalWidth = (totalWidth) => {
|
|
1001
|
+
this.setState({ totalWidth });
|
|
1002
|
+
};
|
|
947
1003
|
this.handleClientWidth = (clientWidth) => {
|
|
948
1004
|
this.setState({ clientWidth });
|
|
949
1005
|
};
|
|
950
|
-
this.handleEndScrollbarWidth = (endScrollbarWidth) => {
|
|
951
|
-
this.setState({ endScrollbarWidth });
|
|
952
|
-
};
|
|
953
1006
|
}
|
|
954
1007
|
render() {
|
|
955
1008
|
const { props, state, context } = this;
|
|
956
1009
|
const { options } = context;
|
|
1010
|
+
const { totalWidth, clientWidth } = state;
|
|
1011
|
+
const endScrollbarWidth = (totalWidth != null && clientWidth != null)
|
|
1012
|
+
? totalWidth - clientWidth
|
|
1013
|
+
: undefined;
|
|
957
1014
|
const verticalScrollbars = !props.forPrint && !internal$1.getIsHeightAuto(options);
|
|
958
1015
|
const stickyHeaderDates = !props.forPrint && internal$1.getStickyHeaderDates(options);
|
|
959
1016
|
const stickyFooterScrollbar = !props.forPrint && internal$1.getStickyFooterScrollbar(options);
|
|
960
1017
|
const colCnt = props.cellRows[0].length;
|
|
961
|
-
const [canvasWidth, colWidth] = computeColWidth(colCnt, props.dayMinWidth,
|
|
1018
|
+
const [canvasWidth, colWidth] = computeColWidth(colCnt, props.dayMinWidth, clientWidth);
|
|
962
1019
|
return (preact.createElement(preact.Fragment, null,
|
|
963
|
-
options.dayHeaders && (preact.createElement("div", { className: 'fc-print-header' },
|
|
964
|
-
preact.createElement(internal$1.Scroller, { horizontal: true, hideScrollbars: true, className:
|
|
1020
|
+
options.dayHeaders && (preact.createElement("div", { className: internal$1.joinClassNames('fc-print-header', stickyHeaderDates && 'fc-table-header-sticky') },
|
|
1021
|
+
preact.createElement(internal$1.Scroller, { horizontal: true, hideScrollbars: true, className: 'fc-daygrid-header fc-flex-row fc-border-b', ref: this.headerScrollerRef },
|
|
965
1022
|
preact.createElement(DayGridHeader, { headerTiers: props.headerTiers, colWidth: colWidth, width: canvasWidth }),
|
|
966
|
-
Boolean(
|
|
1023
|
+
Boolean(endScrollbarWidth) && (preact.createElement("div", { className: 'fc-border-s fc-filler', style: { minWidth: endScrollbarWidth } }))))),
|
|
967
1024
|
preact.createElement(internal$1.Scroller, { vertical: verticalScrollbars, horizontal: true, hideScrollbars: stickyFooterScrollbar ||
|
|
968
1025
|
props.forPrint // prevents blank space in print-view on Safari
|
|
969
1026
|
, className: internal$1.joinClassNames('fc-daygrid-body',
|
|
970
1027
|
// HACK for Safari. Can't do break-inside:avoid with flexbox items, likely b/c it's not standard:
|
|
971
1028
|
// https://stackoverflow.com/a/60256345
|
|
972
|
-
!props.forPrint && 'fc-flex-col', verticalScrollbars && 'fc-liquid'), ref: this.bodyScrollerRef, clientWidthRef: this.handleClientWidth
|
|
1029
|
+
!props.forPrint && 'fc-flex-col', verticalScrollbars && 'fc-liquid'), ref: this.bodyScrollerRef, clientWidthRef: this.handleClientWidth },
|
|
973
1030
|
preact.createElement(DayGridRows, { dateProfile: props.dateProfile, todayRange: props.todayRange, cellRows: props.cellRows, forPrint: props.forPrint, isHitComboAllowed: props.isHitComboAllowed, className: 'fc-grow', dayMaxEvents: props.forPrint ? undefined : options.dayMaxEvents, dayMaxEventRows: options.dayMaxEventRows,
|
|
974
1031
|
// content
|
|
975
1032
|
fgEventSegs: props.fgEventSegs, bgEventSegs: props.bgEventSegs, businessHourSegs: props.businessHourSegs, dateSelectionSegs: props.dateSelectionSegs, eventDrag: props.eventDrag, eventResize: props.eventResize, eventSelection: props.eventSelection,
|
|
976
1033
|
// dimensions
|
|
977
|
-
colWidth: colWidth, width: canvasWidth, visibleWidth:
|
|
978
|
-
state.clientWidth != null && state.endScrollbarWidth != null
|
|
979
|
-
? state.clientWidth + state.endScrollbarWidth
|
|
980
|
-
: undefined,
|
|
1034
|
+
colWidth: colWidth, width: canvasWidth, visibleWidth: totalWidth,
|
|
981
1035
|
// refs
|
|
982
1036
|
rowHeightRefMap: props.rowHeightRefMap })),
|
|
983
|
-
Boolean(stickyFooterScrollbar) && (preact.createElement(internal$1.
|
|
1037
|
+
Boolean(stickyFooterScrollbar) && (preact.createElement(internal$1.FooterScrollbar, { isSticky: true, canvasWidth: canvasWidth, scrollerRef: this.footerScrollerRef })),
|
|
1038
|
+
preact.createElement(internal$1.Ruler, { widthRef: this.handleTotalWidth })));
|
|
984
1039
|
}
|
|
985
1040
|
// Lifecycle
|
|
986
1041
|
// -----------------------------------------------------------------------------------------------
|
|
@@ -1035,21 +1090,29 @@ FullCalendar.DayGrid = (function (exports, core, internal$1, preact) {
|
|
|
1035
1090
|
}
|
|
1036
1091
|
}
|
|
1037
1092
|
};
|
|
1038
|
-
this.
|
|
1039
|
-
|
|
1093
|
+
this.handleScrollEnd = (isUser) => {
|
|
1094
|
+
if (isUser) {
|
|
1095
|
+
this.scrollDate = null;
|
|
1096
|
+
}
|
|
1040
1097
|
};
|
|
1041
1098
|
}
|
|
1042
1099
|
render() {
|
|
1043
1100
|
const { props, context } = this;
|
|
1044
1101
|
const { options } = context;
|
|
1045
1102
|
const commonLayoutProps = Object.assign(Object.assign({}, props), { scrollerRef: this.scrollerRef, rowHeightRefMap: this.rowHeightRefMap });
|
|
1046
|
-
return (preact.createElement(internal$1.ViewContainer, { viewSpec: context.viewSpec,
|
|
1103
|
+
return (preact.createElement(internal$1.ViewContainer, { viewSpec: context.viewSpec, attrs: {
|
|
1104
|
+
role: 'grid',
|
|
1105
|
+
'aria-rowcount': props.headerTiers.length + props.cellRows.length,
|
|
1106
|
+
'aria-colcount': props.cellRows[0].length,
|
|
1107
|
+
'aria-labelledby': props.labelId,
|
|
1108
|
+
'aria-label': props.labelStr,
|
|
1109
|
+
}, className: internal$1.joinClassNames(props.className, 'fc-print-root fc-border') }, options.dayMinWidth ? (preact.createElement(DayGridLayoutPannable, Object.assign({}, commonLayoutProps, { dayMinWidth: options.dayMinWidth }))) : (preact.createElement(DayGridLayoutNormal, Object.assign({}, commonLayoutProps)))));
|
|
1047
1110
|
}
|
|
1048
1111
|
// Lifecycle
|
|
1049
1112
|
// -----------------------------------------------------------------------------------------------
|
|
1050
1113
|
componentDidMount() {
|
|
1051
1114
|
this.resetScroll();
|
|
1052
|
-
this.scrollerRef.current.addScrollEndListener(this.
|
|
1115
|
+
this.scrollerRef.current.addScrollEndListener(this.handleScrollEnd);
|
|
1053
1116
|
}
|
|
1054
1117
|
componentDidUpdate(prevProps) {
|
|
1055
1118
|
if (prevProps.dateProfile !== this.props.dateProfile && this.context.options.scrollTimeReset) {
|
|
@@ -1057,14 +1120,13 @@ FullCalendar.DayGrid = (function (exports, core, internal$1, preact) {
|
|
|
1057
1120
|
}
|
|
1058
1121
|
}
|
|
1059
1122
|
componentWillUnmount() {
|
|
1060
|
-
this.scrollerRef.current.removeScrollEndListener(this.
|
|
1123
|
+
this.scrollerRef.current.removeScrollEndListener(this.handleScrollEnd);
|
|
1061
1124
|
}
|
|
1062
1125
|
// Scrolling
|
|
1063
1126
|
// -----------------------------------------------------------------------------------------------
|
|
1064
1127
|
resetScroll() {
|
|
1065
1128
|
this.scrollDate = this.props.dateProfile.currentDate;
|
|
1066
1129
|
this.updateScrollY();
|
|
1067
|
-
// updateScrollX
|
|
1068
1130
|
const scroller = this.scrollerRef.current;
|
|
1069
1131
|
scroller.scrollTo({ x: 0 });
|
|
1070
1132
|
}
|
|
@@ -1089,7 +1151,7 @@ FullCalendar.DayGrid = (function (exports, core, internal$1, preact) {
|
|
|
1089
1151
|
const slicedProps = this.slicer.sliceProps(props, props.dateProfile, options.nextDayThreshold, context, dayTableModel);
|
|
1090
1152
|
return (preact.createElement(internal$1.NowTimer, { unit: "day" }, (nowDate, todayRange) => {
|
|
1091
1153
|
const headerTiers = this.buildDateRowConfigs(dayTableModel.headerDates, datesRepDistinctDays, props.dateProfile, todayRange, dayHeaderFormat, context);
|
|
1092
|
-
return (preact.createElement(DayGridLayout, { dateProfile: props.dateProfile, todayRange: todayRange, cellRows: dayTableModel.cellRows, forPrint: props.forPrint, className: 'fc-daygrid',
|
|
1154
|
+
return (preact.createElement(DayGridLayout, { labelId: props.labelId, labelStr: props.labelStr, dateProfile: props.dateProfile, todayRange: todayRange, cellRows: dayTableModel.cellRows, forPrint: props.forPrint, className: 'fc-daygrid',
|
|
1093
1155
|
// header content
|
|
1094
1156
|
headerTiers: headerTiers,
|
|
1095
1157
|
// body content
|
|
@@ -1136,7 +1198,7 @@ FullCalendar.DayGrid = (function (exports, core, internal$1, preact) {
|
|
|
1136
1198
|
return { start, end };
|
|
1137
1199
|
}
|
|
1138
1200
|
|
|
1139
|
-
var css_248z = ":root{--fc-daygrid-event-dot-width:8px}.fc-daygrid-day.fc-day-today{background-color:var(--fc-today-bg-color)}.fc-daygrid-day-header{display:flex;flex-direction:row-reverse}.fc-day-other .fc-daygrid-day-header{opacity:.3}.fc-daygrid-day-number{padding:4px;position:relative}.fc-daygrid-month-start{font-size:1.1em;font-weight:700}.fc-daygrid-day-body{display:flex;flex-direction:column;margin-bottom:1px}.fc-daygrid-day-body-tall{margin-bottom:1em;min-height:2em}.fc-daygrid-day-body:only-child{margin-top:2px}.fc-daygrid-more-link{border-radius:3px;cursor:pointer;font-size:var(--fc-small-font-size);margin:0 2px 1px;max-width:100%;overflow:hidden;padding:2px;position:relative;white-space:nowrap}.fc-daygrid-more-link:hover{background-color:rgba(0,0,0,.1)}.fc-daygrid-more-link-button{align-self:flex-start}.fc-daygrid-more-link-block{border:1px solid var(--fc-event-border-color);padding:1px}.fc-daygrid-week-number{background-color:var(--fc-neutral-bg-color);color:var(--fc-neutral-text-color);min-width:1.5em;padding:2px;position:absolute;text-align:center;top:0}.fc-more-popover .fc-popover-body{min-width:220px;padding:10px}.fc-daygrid-event{border-radius:3px;font-size:var(--fc-small-font-size);margin-bottom:1px}.fc-
|
|
1201
|
+
var css_248z = ":root{--fc-daygrid-event-dot-width:8px}.fc-daygrid-row-print{min-height:6em}.fc-daygrid-day.fc-day-today{background-color:var(--fc-today-bg-color)}.fc-daygrid-day-header{display:flex;flex-direction:row-reverse}.fc-day-other .fc-daygrid-day-header{opacity:.3}.fc-daygrid-day-number{padding:4px;position:relative}.fc-daygrid-month-start{font-size:1.1em;font-weight:700}.fc-daygrid-day-body{display:flex;flex-direction:column;margin-bottom:1px}.fc-daygrid-day-body-tall{margin-bottom:1em;min-height:2em}.fc-daygrid-day-body:only-child{margin-top:2px}.fc-daygrid-more-link{border-radius:3px;cursor:pointer;font-size:var(--fc-small-font-size);margin:0 2px 1px;max-width:100%;overflow:hidden;padding:2px;position:relative;white-space:nowrap}.fc-daygrid-more-link:hover{background-color:rgba(0,0,0,.1)}.fc-daygrid-more-link-button{align-self:flex-start}.fc-daygrid-more-link-block{border:1px solid var(--fc-event-border-color);padding:1px}.fc-daygrid-week-number{background-color:var(--fc-neutral-bg-color);color:var(--fc-neutral-text-color);min-width:1.5em;padding:2px;position:absolute;text-align:center;top:0;z-index:1}.fc-direction-ltr .fc-daygrid-week-number{border-radius:0 0 3px}.fc-direction-rtl .fc-daygrid-week-number{border-radius:0 0 0 3px}.fc-more-popover .fc-popover-body{min-width:220px;padding:10px}.fc-daygrid-event{border-radius:3px;font-size:var(--fc-small-font-size);margin-bottom:1px}.fc-direction-ltr .fc-daygrid-event.fc-event-start,.fc-direction-rtl .fc-daygrid-event.fc-event-end{margin-left:2px}.fc-direction-ltr .fc-daygrid-event.fc-event-end,.fc-direction-rtl .fc-daygrid-event.fc-event-start{margin-right:2px}.fc-direction-ltr .fc-daygrid-event .fc-event-time{margin-right:3px}.fc-direction-rtl .fc-daygrid-event .fc-event-time{margin-left:3px}.fc-direction-ltr .fc-daygrid-block-event:not(.fc-event-start),.fc-direction-rtl .fc-daygrid-block-event:not(.fc-event-end){border-bottom-left-radius:0;border-left-width:0;border-top-left-radius:0}.fc-direction-ltr .fc-daygrid-block-event:not(.fc-event-end),.fc-direction-rtl .fc-daygrid-block-event:not(.fc-event-start){border-bottom-right-radius:0;border-right-width:0;border-top-right-radius:0}.fc-daygrid-block-event .fc-event-time{font-weight:700}.fc-daygrid-block-event .fc-event-time,.fc-daygrid-block-event .fc-event-title{padding:1px}.fc-daygrid-dot-event{align-items:center;direction:row;display:flex;padding:2px 0;position:relative}.fc-daygrid-dot-event.fc-event-mirror,.fc-daygrid-dot-event:hover{background:rgba(0,0,0,.1)}.fc-daygrid-dot-event.fc-event-selected:before{bottom:-10px;top:-10px}.fc-daygrid-event-dot{border:calc(var(--fc-daygrid-event-dot-width)/2) solid var(--fc-event-border-color);border-radius:calc(var(--fc-daygrid-event-dot-width)/2);box-sizing:content-box;height:0;margin:0 4px;width:0}.fc-daygrid-dot-event .fc-event-time,.fc-daygrid-dot-event .fc-event-title{overflow:hidden;white-space:nowrap}.fc-media-print .fc-daygrid-dot-event .fc-event-time,.fc-media-print .fc-daygrid-dot-event .fc-event-title{overflow:hidden!important;white-space:nowrap!important}.fc-daygrid-dot-event .fc-event-title{flex-basis:0;flex-grow:1;font-weight:700;min-height:0;min-width:0}";
|
|
1140
1202
|
internal$1.injectStyles(css_248z);
|
|
1141
1203
|
|
|
1142
1204
|
var plugin = core.createPlugin({
|
|
@@ -1180,7 +1242,8 @@ FullCalendar.DayGrid = (function (exports, core, internal$1, preact) {
|
|
|
1180
1242
|
buildDateDataConfigs: buildDateDataConfigs,
|
|
1181
1243
|
createDayHeaderFormatter: createDayHeaderFormatter,
|
|
1182
1244
|
DayGridLayout: DayGridLayout,
|
|
1183
|
-
|
|
1245
|
+
computeRowBasis: computeRowBasis,
|
|
1246
|
+
computeRowIsCompact: computeRowIsCompact,
|
|
1184
1247
|
DayGridRow: DayGridRow,
|
|
1185
1248
|
DayGridRows: DayGridRows,
|
|
1186
1249
|
buildDayTableModel: buildDayTableModel,
|