@fullcalendar/list 5.11.2 → 6.0.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/main.cjs.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- FullCalendar v5.11.2
2
+ FullCalendar v6.0.0-beta.1
3
3
  Docs & License: https://fullcalendar.io/
4
4
  (c) 2022 Adam Shaw
5
5
  */
@@ -8,78 +8,68 @@ Docs & License: https://fullcalendar.io/
8
8
  Object.defineProperty(exports, '__esModule', { value: true });
9
9
 
10
10
  var common = require('@fullcalendar/common');
11
- var tslib = require('tslib');
12
- ;
13
11
 
14
- var ListViewHeaderRow = /** @class */ (function (_super) {
15
- tslib.__extends(ListViewHeaderRow, _super);
16
- function ListViewHeaderRow() {
17
- var _this = _super !== null && _super.apply(this, arguments) || this;
18
- _this.state = {
12
+ class ListViewHeaderRow extends common.BaseComponent {
13
+ constructor() {
14
+ super(...arguments);
15
+ this.state = {
19
16
  textId: common.getUniqueDomId(),
20
17
  };
21
- return _this;
22
18
  }
23
- ListViewHeaderRow.prototype.render = function () {
24
- var _a = this.context, theme = _a.theme, dateEnv = _a.dateEnv, options = _a.options, viewApi = _a.viewApi;
25
- var _b = this.props, cellId = _b.cellId, dayDate = _b.dayDate, todayRange = _b.todayRange;
26
- var textId = this.state.textId;
27
- var dayMeta = common.getDateMeta(dayDate, todayRange);
19
+ render() {
20
+ let { theme, dateEnv, options, viewApi } = this.context;
21
+ let { cellId, dayDate, todayRange } = this.props;
22
+ let { textId } = this.state;
23
+ let dayMeta = common.getDateMeta(dayDate, todayRange);
28
24
  // will ever be falsy?
29
- var text = options.listDayFormat ? dateEnv.format(dayDate, options.listDayFormat) : '';
25
+ let text = options.listDayFormat ? dateEnv.format(dayDate, options.listDayFormat) : '';
30
26
  // will ever be falsy? also, BAD NAME "alt"
31
- var sideText = options.listDaySideFormat ? dateEnv.format(dayDate, options.listDaySideFormat) : '';
32
- var hookProps = tslib.__assign({ date: dateEnv.toDate(dayDate), view: viewApi, textId: textId,
33
- text: text,
34
- sideText: sideText, navLinkAttrs: common.buildNavLinkAttrs(this.context, dayDate), sideNavLinkAttrs: common.buildNavLinkAttrs(this.context, dayDate, 'day', false) }, dayMeta);
35
- var classNames = ['fc-list-day'].concat(common.getDayClassNames(dayMeta, theme));
27
+ let sideText = options.listDaySideFormat ? dateEnv.format(dayDate, options.listDaySideFormat) : '';
28
+ let hookProps = Object.assign({ date: dateEnv.toDate(dayDate), view: viewApi, textId,
29
+ text,
30
+ sideText, navLinkAttrs: common.buildNavLinkAttrs(this.context, dayDate), sideNavLinkAttrs: common.buildNavLinkAttrs(this.context, dayDate, 'day', false) }, dayMeta);
31
+ let classNames = ['fc-list-day'].concat(common.getDayClassNames(dayMeta, theme));
36
32
  // TODO: make a reusable HOC for dayHeader (used in daygrid/timegrid too)
37
- return (common.createElement(common.RenderHook, { hookProps: hookProps, classNames: options.dayHeaderClassNames, content: options.dayHeaderContent, defaultContent: renderInnerContent, didMount: options.dayHeaderDidMount, willUnmount: options.dayHeaderWillUnmount }, function (rootElRef, customClassNames, innerElRef, innerContent) { return (common.createElement("tr", { ref: rootElRef, className: classNames.concat(customClassNames).join(' '), "data-date": common.formatDayString(dayDate) },
33
+ return (common.createElement(common.RenderHook, { hookProps: hookProps, classNames: options.dayHeaderClassNames, content: options.dayHeaderContent, defaultContent: renderInnerContent, didMount: options.dayHeaderDidMount, willUnmount: options.dayHeaderWillUnmount }, (rootElRef, customClassNames, innerElRef, innerContent) => (common.createElement("tr", { ref: rootElRef, className: classNames.concat(customClassNames).join(' '), "data-date": common.formatDayString(dayDate) },
38
34
  common.createElement("th", { scope: "colgroup", colSpan: 3, id: cellId, "aria-labelledby": textId },
39
- common.createElement("div", { className: 'fc-list-day-cushion ' + theme.getClass('tableCellShaded'), ref: innerElRef }, innerContent)))); }));
40
- };
41
- return ListViewHeaderRow;
42
- }(common.BaseComponent));
35
+ common.createElement("div", { className: 'fc-list-day-cushion ' + theme.getClass('tableCellShaded'), ref: innerElRef }, innerContent))))));
36
+ }
37
+ }
43
38
  function renderInnerContent(props) {
44
39
  return (common.createElement(common.Fragment, null,
45
- props.text && (common.createElement("a", tslib.__assign({ id: props.textId, className: "fc-list-day-text" }, props.navLinkAttrs), props.text)),
46
- props.sideText && ( /* not keyboard tabbable */common.createElement("a", tslib.__assign({ "aria-hidden": true, className: "fc-list-day-side-text" }, props.sideNavLinkAttrs), props.sideText))));
40
+ props.text && (common.createElement("a", Object.assign({ id: props.textId, className: "fc-list-day-text" }, props.navLinkAttrs), props.text)),
41
+ props.sideText && ( /* not keyboard tabbable */common.createElement("a", Object.assign({ "aria-hidden": true, className: "fc-list-day-side-text" }, props.sideNavLinkAttrs), props.sideText))));
47
42
  }
48
43
 
49
- var DEFAULT_TIME_FORMAT = common.createFormatter({
44
+ const DEFAULT_TIME_FORMAT = common.createFormatter({
50
45
  hour: 'numeric',
51
46
  minute: '2-digit',
52
47
  meridiem: 'short',
53
48
  });
54
- var ListViewEventRow = /** @class */ (function (_super) {
55
- tslib.__extends(ListViewEventRow, _super);
56
- function ListViewEventRow() {
57
- return _super !== null && _super.apply(this, arguments) || this;
58
- }
59
- ListViewEventRow.prototype.render = function () {
60
- var _a = this, props = _a.props, context = _a.context;
61
- var seg = props.seg, timeHeaderId = props.timeHeaderId, eventHeaderId = props.eventHeaderId, dateHeaderId = props.dateHeaderId;
62
- var timeFormat = context.options.eventTimeFormat || DEFAULT_TIME_FORMAT;
49
+ class ListViewEventRow extends common.BaseComponent {
50
+ render() {
51
+ let { props, context } = this;
52
+ let { seg, timeHeaderId, eventHeaderId, dateHeaderId } = props;
53
+ let timeFormat = context.options.eventTimeFormat || DEFAULT_TIME_FORMAT;
63
54
  return (common.createElement(common.EventRoot, { seg: seg, timeText: "" // BAD. because of all-day content
64
- , disableDragging: true, disableResizing: true, defaultContent: function () { return renderEventInnerContent(seg, context); } /* weird */, isPast: props.isPast, isFuture: props.isFuture, isToday: props.isToday, isSelected: props.isSelected, isDragging: props.isDragging, isResizing: props.isResizing, isDateSelecting: props.isDateSelecting }, function (rootElRef, classNames, innerElRef, innerContent, hookProps) { return (common.createElement("tr", { className: ['fc-list-event', hookProps.event.url ? 'fc-event-forced-url' : ''].concat(classNames).join(' '), ref: rootElRef },
55
+ , disableDragging: true, disableResizing: true, defaultContent: () => renderEventInnerContent(seg, context) /* weird */, isPast: props.isPast, isFuture: props.isFuture, isToday: props.isToday, isSelected: props.isSelected, isDragging: props.isDragging, isResizing: props.isResizing, isDateSelecting: props.isDateSelecting }, (rootElRef, classNames, innerElRef, innerContent, hookProps) => (common.createElement("tr", { className: ['fc-list-event', hookProps.event.url ? 'fc-event-forced-url' : ''].concat(classNames).join(' '), ref: rootElRef },
65
56
  buildTimeContent(seg, timeFormat, context, timeHeaderId, dateHeaderId),
66
57
  common.createElement("td", { "aria-hidden": true, className: "fc-list-event-graphic" },
67
58
  common.createElement("span", { className: "fc-list-event-dot", style: { borderColor: hookProps.borderColor || hookProps.backgroundColor } })),
68
- common.createElement("td", { ref: innerElRef, headers: eventHeaderId + " " + dateHeaderId, className: "fc-list-event-title" }, innerContent))); }));
69
- };
70
- return ListViewEventRow;
71
- }(common.BaseComponent));
59
+ common.createElement("td", { ref: innerElRef, headers: `${eventHeaderId} ${dateHeaderId}`, className: "fc-list-event-title" }, innerContent)))));
60
+ }
61
+ }
72
62
  function renderEventInnerContent(seg, context) {
73
- var interactiveAttrs = common.getSegAnchorAttrs(seg, context);
74
- return (common.createElement("a", tslib.__assign({}, interactiveAttrs), seg.eventRange.def.title));
63
+ let interactiveAttrs = common.getSegAnchorAttrs(seg, context);
64
+ return (common.createElement("a", Object.assign({}, interactiveAttrs), seg.eventRange.def.title));
75
65
  }
76
66
  function buildTimeContent(seg, timeFormat, context, timeHeaderId, dateHeaderId) {
77
- var options = context.options;
67
+ let { options } = context;
78
68
  if (options.displayEventTime !== false) {
79
- var eventDef = seg.eventRange.def;
80
- var eventInstance = seg.eventRange.instance;
81
- var doAllDay = false;
82
- var timeText = void 0;
69
+ let eventDef = seg.eventRange.def;
70
+ let eventInstance = seg.eventRange.instance;
71
+ let doAllDay = false;
72
+ let timeText;
83
73
  if (eventDef.allDay) {
84
74
  doAllDay = true;
85
75
  }
@@ -98,11 +88,11 @@ function buildTimeContent(seg, timeFormat, context, timeHeaderId, dateHeaderId)
98
88
  timeText = common.buildSegTimeText(seg, timeFormat, context);
99
89
  }
100
90
  if (doAllDay) {
101
- var hookProps = {
91
+ let hookProps = {
102
92
  text: context.options.allDayText,
103
93
  view: context.viewApi,
104
94
  };
105
- return (common.createElement(common.RenderHook, { hookProps: hookProps, classNames: options.allDayClassNames, content: options.allDayContent, defaultContent: renderAllDayInner, didMount: options.allDayDidMount, willUnmount: options.allDayWillUnmount }, function (rootElRef, classNames, innerElRef, innerContent) { return (common.createElement("td", { ref: rootElRef, headers: timeHeaderId + " " + dateHeaderId, className: ['fc-list-event-time'].concat(classNames).join(' ') }, innerContent)); }));
95
+ return (common.createElement(common.RenderHook, { hookProps: hookProps, classNames: options.allDayClassNames, content: options.allDayContent, defaultContent: renderAllDayInner, didMount: options.allDayDidMount, willUnmount: options.allDayWillUnmount }, (rootElRef, classNames, innerElRef, innerContent) => (common.createElement("td", { ref: rootElRef, headers: `${timeHeaderId} ${dateHeaderId}`, className: ['fc-list-event-time'].concat(classNames).join(' ') }, innerContent))));
106
96
  }
107
97
  return (common.createElement("td", { className: "fc-list-event-time" }, timeText));
108
98
  }
@@ -115,70 +105,66 @@ function renderAllDayInner(hookProps) {
115
105
  /*
116
106
  Responsible for the scroller, and forwarding event-related actions into the "grid".
117
107
  */
118
- var ListView = /** @class */ (function (_super) {
119
- tslib.__extends(ListView, _super);
120
- function ListView() {
121
- var _this = _super !== null && _super.apply(this, arguments) || this;
122
- _this.computeDateVars = common.memoize(computeDateVars);
123
- _this.eventStoreToSegs = common.memoize(_this._eventStoreToSegs);
124
- _this.state = {
108
+ class ListView extends common.DateComponent {
109
+ constructor() {
110
+ super(...arguments);
111
+ this.computeDateVars = common.memoize(computeDateVars);
112
+ this.eventStoreToSegs = common.memoize(this._eventStoreToSegs);
113
+ this.state = {
125
114
  timeHeaderId: common.getUniqueDomId(),
126
115
  eventHeaderId: common.getUniqueDomId(),
127
116
  dateHeaderIdRoot: common.getUniqueDomId(),
128
117
  };
129
- _this.setRootEl = function (rootEl) {
118
+ this.setRootEl = (rootEl) => {
130
119
  if (rootEl) {
131
- _this.context.registerInteractiveComponent(_this, {
120
+ this.context.registerInteractiveComponent(this, {
132
121
  el: rootEl,
133
122
  });
134
123
  }
135
124
  else {
136
- _this.context.unregisterInteractiveComponent(_this);
125
+ this.context.unregisterInteractiveComponent(this);
137
126
  }
138
127
  };
139
- return _this;
140
128
  }
141
- ListView.prototype.render = function () {
142
- var _this = this;
143
- var _a = this, props = _a.props, context = _a.context;
144
- var extraClassNames = [
129
+ render() {
130
+ let { props, context } = this;
131
+ let extraClassNames = [
145
132
  'fc-list',
146
133
  context.theme.getClass('table'),
147
134
  context.options.stickyHeaderDates !== false ? 'fc-list-sticky' : '',
148
135
  ];
149
- var _b = this.computeDateVars(props.dateProfile), dayDates = _b.dayDates, dayRanges = _b.dayRanges;
150
- var eventSegs = this.eventStoreToSegs(props.eventStore, props.eventUiBases, dayRanges);
151
- return (common.createElement(common.ViewRoot, { viewSpec: context.viewSpec, elRef: this.setRootEl }, function (rootElRef, classNames) { return (common.createElement("div", { ref: rootElRef, className: extraClassNames.concat(classNames).join(' ') },
136
+ let { dayDates, dayRanges } = this.computeDateVars(props.dateProfile);
137
+ let eventSegs = this.eventStoreToSegs(props.eventStore, props.eventUiBases, dayRanges);
138
+ return (common.createElement(common.ViewRoot, { viewSpec: context.viewSpec, elRef: this.setRootEl }, (rootElRef, classNames) => (common.createElement("div", { ref: rootElRef, className: extraClassNames.concat(classNames).join(' ') },
152
139
  common.createElement(common.Scroller, { liquid: !props.isHeightAuto, overflowX: props.isHeightAuto ? 'visible' : 'hidden', overflowY: props.isHeightAuto ? 'visible' : 'auto' }, eventSegs.length > 0 ?
153
- _this.renderSegList(eventSegs, dayDates) :
154
- _this.renderEmptyMessage()))); }));
155
- };
156
- ListView.prototype.renderEmptyMessage = function () {
157
- var _a = this.context, options = _a.options, viewApi = _a.viewApi;
158
- var hookProps = {
140
+ this.renderSegList(eventSegs, dayDates) :
141
+ this.renderEmptyMessage())))));
142
+ }
143
+ renderEmptyMessage() {
144
+ let { options, viewApi } = this.context;
145
+ let hookProps = {
159
146
  text: options.noEventsText,
160
147
  view: viewApi,
161
148
  };
162
- return (common.createElement(common.RenderHook, { hookProps: hookProps, classNames: options.noEventsClassNames, content: options.noEventsContent, defaultContent: renderNoEventsInner, didMount: options.noEventsDidMount, willUnmount: options.noEventsWillUnmount }, function (rootElRef, classNames, innerElRef, innerContent) { return (common.createElement("div", { className: ['fc-list-empty'].concat(classNames).join(' '), ref: rootElRef },
163
- common.createElement("div", { className: "fc-list-empty-cushion", ref: innerElRef }, innerContent))); }));
164
- };
165
- ListView.prototype.renderSegList = function (allSegs, dayDates) {
166
- var _a = this.context, theme = _a.theme, options = _a.options;
167
- var _b = this.state, timeHeaderId = _b.timeHeaderId, eventHeaderId = _b.eventHeaderId, dateHeaderIdRoot = _b.dateHeaderIdRoot;
168
- var segsByDay = groupSegsByDay(allSegs); // sparse array
169
- return (common.createElement(common.NowTimer, { unit: "day" }, function (nowDate, todayRange) {
170
- var innerNodes = [];
171
- for (var dayIndex = 0; dayIndex < segsByDay.length; dayIndex += 1) {
172
- var daySegs = segsByDay[dayIndex];
149
+ return (common.createElement(common.RenderHook, { hookProps: hookProps, classNames: options.noEventsClassNames, content: options.noEventsContent, defaultContent: renderNoEventsInner, didMount: options.noEventsDidMount, willUnmount: options.noEventsWillUnmount }, (rootElRef, classNames, innerElRef, innerContent) => (common.createElement("div", { className: ['fc-list-empty'].concat(classNames).join(' '), ref: rootElRef },
150
+ common.createElement("div", { className: "fc-list-empty-cushion", ref: innerElRef }, innerContent)))));
151
+ }
152
+ renderSegList(allSegs, dayDates) {
153
+ let { theme, options } = this.context;
154
+ let { timeHeaderId, eventHeaderId, dateHeaderIdRoot } = this.state;
155
+ let segsByDay = groupSegsByDay(allSegs); // sparse array
156
+ return (common.createElement(common.NowTimer, { unit: "day" }, (nowDate, todayRange) => {
157
+ let innerNodes = [];
158
+ for (let dayIndex = 0; dayIndex < segsByDay.length; dayIndex += 1) {
159
+ let daySegs = segsByDay[dayIndex];
173
160
  if (daySegs) { // sparse array, so might be undefined
174
- var dayStr = common.formatDayString(dayDates[dayIndex]);
175
- var dateHeaderId = dateHeaderIdRoot + '-' + dayStr;
161
+ let dayStr = common.formatDayString(dayDates[dayIndex]);
162
+ let dateHeaderId = dateHeaderIdRoot + '-' + dayStr;
176
163
  // append a day header
177
164
  innerNodes.push(common.createElement(ListViewHeaderRow, { key: dayStr, cellId: dateHeaderId, dayDate: dayDates[dayIndex], todayRange: todayRange }));
178
165
  daySegs = common.sortEventSegs(daySegs, options.eventOrder);
179
- for (var _i = 0, daySegs_1 = daySegs; _i < daySegs_1.length; _i++) {
180
- var seg = daySegs_1[_i];
181
- innerNodes.push(common.createElement(ListViewEventRow, tslib.__assign({ key: dayStr + ':' + seg.eventRange.instance.instanceId /* are multiple segs for an instanceId */, seg: seg, isDragging: false, isResizing: false, isDateSelecting: false, isSelected: false, timeHeaderId: timeHeaderId, eventHeaderId: eventHeaderId, dateHeaderId: dateHeaderId }, common.getSegMeta(seg, todayRange, nowDate))));
166
+ for (let seg of daySegs) {
167
+ innerNodes.push(common.createElement(ListViewEventRow, Object.assign({ key: dayStr + ':' + seg.eventRange.instance.instanceId /* are multiple segs for an instanceId */, seg: seg, isDragging: false, isResizing: false, isDateSelecting: false, isSelected: false, timeHeaderId: timeHeaderId, eventHeaderId: eventHeaderId, dateHeaderId: dateHeaderId }, common.getSegMeta(seg, todayRange, nowDate))));
182
168
  }
183
169
  }
184
170
  }
@@ -190,38 +176,37 @@ var ListView = /** @class */ (function (_super) {
190
176
  common.createElement("th", { scope: "col", id: eventHeaderId }, options.eventHint))),
191
177
  common.createElement("tbody", null, innerNodes)));
192
178
  }));
193
- };
194
- ListView.prototype._eventStoreToSegs = function (eventStore, eventUiBases, dayRanges) {
179
+ }
180
+ _eventStoreToSegs(eventStore, eventUiBases, dayRanges) {
195
181
  return this.eventRangesToSegs(common.sliceEventStore(eventStore, eventUiBases, this.props.dateProfile.activeRange, this.context.options.nextDayThreshold).fg, dayRanges);
196
- };
197
- ListView.prototype.eventRangesToSegs = function (eventRanges, dayRanges) {
198
- var segs = [];
199
- for (var _i = 0, eventRanges_1 = eventRanges; _i < eventRanges_1.length; _i++) {
200
- var eventRange = eventRanges_1[_i];
201
- segs.push.apply(segs, this.eventRangeToSegs(eventRange, dayRanges));
182
+ }
183
+ eventRangesToSegs(eventRanges, dayRanges) {
184
+ let segs = [];
185
+ for (let eventRange of eventRanges) {
186
+ segs.push(...this.eventRangeToSegs(eventRange, dayRanges));
202
187
  }
203
188
  return segs;
204
- };
205
- ListView.prototype.eventRangeToSegs = function (eventRange, dayRanges) {
206
- var dateEnv = this.context.dateEnv;
207
- var nextDayThreshold = this.context.options.nextDayThreshold;
208
- var range = eventRange.range;
209
- var allDay = eventRange.def.allDay;
210
- var dayIndex;
211
- var segRange;
212
- var seg;
213
- var segs = [];
189
+ }
190
+ eventRangeToSegs(eventRange, dayRanges) {
191
+ let { dateEnv } = this.context;
192
+ let { nextDayThreshold } = this.context.options;
193
+ let range = eventRange.range;
194
+ let allDay = eventRange.def.allDay;
195
+ let dayIndex;
196
+ let segRange;
197
+ let seg;
198
+ let segs = [];
214
199
  for (dayIndex = 0; dayIndex < dayRanges.length; dayIndex += 1) {
215
200
  segRange = common.intersectRanges(range, dayRanges[dayIndex]);
216
201
  if (segRange) {
217
202
  seg = {
218
203
  component: this,
219
- eventRange: eventRange,
204
+ eventRange,
220
205
  start: segRange.start,
221
206
  end: segRange.end,
222
207
  isStart: eventRange.isStart && segRange.start.valueOf() === range.start.valueOf(),
223
208
  isEnd: eventRange.isEnd && segRange.end.valueOf() === range.end.valueOf(),
224
- dayIndex: dayIndex,
209
+ dayIndex,
225
210
  };
226
211
  segs.push(seg);
227
212
  // detect when range won't go fully into the next day,
@@ -237,17 +222,16 @@ var ListView = /** @class */ (function (_super) {
237
222
  }
238
223
  }
239
224
  return segs;
240
- };
241
- return ListView;
242
- }(common.DateComponent));
225
+ }
226
+ }
243
227
  function renderNoEventsInner(hookProps) {
244
228
  return hookProps.text;
245
229
  }
246
230
  function computeDateVars(dateProfile) {
247
- var dayStart = common.startOfDay(dateProfile.renderRange.start);
248
- var viewEnd = dateProfile.renderRange.end;
249
- var dayDates = [];
250
- var dayRanges = [];
231
+ let dayStart = common.startOfDay(dateProfile.renderRange.start);
232
+ let viewEnd = dateProfile.renderRange.end;
233
+ let dayDates = [];
234
+ let dayRanges = [];
251
235
  while (dayStart < viewEnd) {
252
236
  dayDates.push(dayStart);
253
237
  dayRanges.push({
@@ -256,13 +240,13 @@ function computeDateVars(dateProfile) {
256
240
  });
257
241
  dayStart = common.addDays(dayStart, 1);
258
242
  }
259
- return { dayDates: dayDates, dayRanges: dayRanges };
243
+ return { dayDates, dayRanges };
260
244
  }
261
245
  // Returns a sparse array of arrays, segs grouped by their dayIndex
262
246
  function groupSegsByDay(segs) {
263
- var segsByDay = []; // sparse array
264
- var i;
265
- var seg;
247
+ let segsByDay = []; // sparse array
248
+ let i;
249
+ let seg;
266
250
  for (i = 0; i < segs.length; i += 1) {
267
251
  seg = segs[i];
268
252
  (segsByDay[seg.dayIndex] || (segsByDay[seg.dayIndex] = []))
@@ -271,7 +255,7 @@ function groupSegsByDay(segs) {
271
255
  return segsByDay;
272
256
  }
273
257
 
274
- var OPTION_REFINERS = {
258
+ const OPTION_REFINERS = {
275
259
  listDayFormat: createFalsableFormatter,
276
260
  listDaySideFormat: createFalsableFormatter,
277
261
  noEventsClassNames: common.identity,
@@ -284,6 +268,36 @@ function createFalsableFormatter(input) {
284
268
  return input === false ? null : common.createFormatter(input);
285
269
  }
286
270
 
271
+ function styleInject(css, ref) {
272
+ if ( ref === void 0 ) ref = {};
273
+ var insertAt = ref.insertAt;
274
+
275
+ if (!css || typeof document === 'undefined') { return; }
276
+
277
+ var head = document.head || document.getElementsByTagName('head')[0];
278
+ var style = document.createElement('style');
279
+ style.type = 'text/css';
280
+
281
+ if (insertAt === 'top') {
282
+ if (head.firstChild) {
283
+ head.insertBefore(style, head.firstChild);
284
+ } else {
285
+ head.appendChild(style);
286
+ }
287
+ } else {
288
+ head.appendChild(style);
289
+ }
290
+
291
+ if (style.styleSheet) {
292
+ style.styleSheet.cssText = css;
293
+ } else {
294
+ style.appendChild(document.createTextNode(css));
295
+ }
296
+ }
297
+
298
+ var css_248z = "\n:root {\n --fc-list-event-dot-width: 10px;\n --fc-list-event-hover-bg-color: #f5f5f5;\n}\n.fc-theme-standard .fc-list {\n border: 1px solid #ddd;\n border: 1px solid var(--fc-border-color, #ddd);\n }\n.fc {\n\n /* message when no events */\n\n}\n.fc .fc-list-empty {\n background-color: rgba(208, 208, 208, 0.3);\n background-color: var(--fc-neutral-bg-color, rgba(208, 208, 208, 0.3));\n height: 100%;\n display: flex;\n justify-content: center;\n align-items: center; /* vertically aligns fc-list-empty-inner */\n }\n.fc .fc-list-empty-cushion {\n margin: 5em 0;\n }\n.fc {\n\n /* table within the scroller */\n /* ---------------------------------------------------------------------------------------------------- */\n\n}\n.fc .fc-list-table {\n width: 100%;\n border-style: hidden; /* kill outer border on theme */\n }\n.fc .fc-list-table tr > * {\n border-left: 0;\n border-right: 0;\n }\n.fc .fc-list-sticky .fc-list-day > * { /* the cells */\n position: sticky;\n top: 0;\n background: #fff;\n background: var(--fc-page-bg-color, #fff); /* for when headers are styled to be transparent and sticky */\n }\n.fc {\n\n /* only exists for aria reasons, hide for non-screen-readers */\n\n}\n.fc .fc-list-table thead {\n position: absolute;\n left: -10000px;\n }\n.fc {\n\n /* the table's border-style:hidden gets confused by hidden thead. force-hide top border of first cell */\n\n}\n.fc .fc-list-table tbody > tr:first-child th {\n border-top: 0;\n }\n.fc .fc-list-table th {\n padding: 0; /* uses an inner-wrapper instead... */\n }\n.fc .fc-list-table td,\n .fc .fc-list-day-cushion {\n padding: 8px 14px;\n }\n.fc {\n\n\n /* date heading rows */\n /* ---------------------------------------------------------------------------------------------------- */\n\n}\n.fc .fc-list-day-cushion:after {\n content: \"\";\n clear: both;\n display: table; /* clear floating */\n }\n.fc-theme-standard .fc-list-day-cushion {\n background-color: rgba(208, 208, 208, 0.3);\n background-color: var(--fc-neutral-bg-color, rgba(208, 208, 208, 0.3));\n }\n.fc-direction-ltr .fc-list-day-text,\n.fc-direction-rtl .fc-list-day-side-text {\n float: left;\n}\n.fc-direction-ltr .fc-list-day-side-text,\n.fc-direction-rtl .fc-list-day-text {\n float: right;\n}\n/* make the dot closer to the event title */\n.fc-direction-ltr .fc-list-table .fc-list-event-graphic { padding-right: 0 }\n.fc-direction-rtl .fc-list-table .fc-list-event-graphic { padding-left: 0 }\n.fc .fc-list-event.fc-event-forced-url {\n cursor: pointer; /* whole row will seem clickable */\n }\n.fc .fc-list-event:hover td {\n background-color: #f5f5f5;\n background-color: var(--fc-list-event-hover-bg-color, #f5f5f5);\n }\n.fc {\n\n /* shrink certain cols */\n\n}\n.fc .fc-list-event-graphic,\n .fc .fc-list-event-time {\n white-space: nowrap;\n width: 1px;\n }\n.fc .fc-list-event-dot {\n display: inline-block;\n box-sizing: content-box;\n width: 0;\n height: 0;\n border: 5px solid #3788d8;\n border: calc(var(--fc-list-event-dot-width, 10px) / 2) solid var(--fc-event-border-color, #3788d8);\n border-radius: 5px;\n border-radius: calc(var(--fc-list-event-dot-width, 10px) / 2);\n }\n.fc {\n\n /* reset <a> styling */\n\n}\n.fc .fc-list-event-title a {\n color: inherit;\n text-decoration: none;\n }\n.fc {\n\n /* underline link when hovering over any part of row */\n\n}\n.fc .fc-list-event.fc-event-forced-url:hover a {\n text-decoration: underline;\n }\n";
299
+ styleInject(css_248z);
300
+
287
301
  var main = common.createPlugin({
288
302
  optionRefiners: OPTION_REFINERS,
289
303
  views: {