@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.js CHANGED
@@ -1,82 +1,71 @@
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
  */
6
- import './main.css';
6
+ import { BaseComponent, getUniqueDomId, getDateMeta, buildNavLinkAttrs, getDayClassNames, createElement, RenderHook, formatDayString, Fragment, createFormatter, EventRoot, getSegAnchorAttrs, isMultiDayRange, buildSegTimeText, DateComponent, memoize, ViewRoot, Scroller, NowTimer, sortEventSegs, getSegMeta, sliceEventStore, intersectRanges, startOfDay, addDays, identity, createPlugin } from '@fullcalendar/common';
7
7
 
8
- import { getUniqueDomId, getDateMeta, buildNavLinkAttrs, getDayClassNames, createElement, RenderHook, formatDayString, BaseComponent, Fragment, createFormatter, EventRoot, getSegAnchorAttrs, isMultiDayRange, buildSegTimeText, memoize, ViewRoot, Scroller, NowTimer, sortEventSegs, getSegMeta, sliceEventStore, intersectRanges, DateComponent, startOfDay, addDays, identity, createPlugin } from '@fullcalendar/common';
9
- import { __extends, __assign } from 'tslib';
10
-
11
- var ListViewHeaderRow = /** @class */ (function (_super) {
12
- __extends(ListViewHeaderRow, _super);
13
- function ListViewHeaderRow() {
14
- var _this = _super !== null && _super.apply(this, arguments) || this;
15
- _this.state = {
8
+ class ListViewHeaderRow extends BaseComponent {
9
+ constructor() {
10
+ super(...arguments);
11
+ this.state = {
16
12
  textId: getUniqueDomId(),
17
13
  };
18
- return _this;
19
14
  }
20
- ListViewHeaderRow.prototype.render = function () {
21
- var _a = this.context, theme = _a.theme, dateEnv = _a.dateEnv, options = _a.options, viewApi = _a.viewApi;
22
- var _b = this.props, cellId = _b.cellId, dayDate = _b.dayDate, todayRange = _b.todayRange;
23
- var textId = this.state.textId;
24
- var dayMeta = getDateMeta(dayDate, todayRange);
15
+ render() {
16
+ let { theme, dateEnv, options, viewApi } = this.context;
17
+ let { cellId, dayDate, todayRange } = this.props;
18
+ let { textId } = this.state;
19
+ let dayMeta = getDateMeta(dayDate, todayRange);
25
20
  // will ever be falsy?
26
- var text = options.listDayFormat ? dateEnv.format(dayDate, options.listDayFormat) : '';
21
+ let text = options.listDayFormat ? dateEnv.format(dayDate, options.listDayFormat) : '';
27
22
  // will ever be falsy? also, BAD NAME "alt"
28
- var sideText = options.listDaySideFormat ? dateEnv.format(dayDate, options.listDaySideFormat) : '';
29
- var hookProps = __assign({ date: dateEnv.toDate(dayDate), view: viewApi, textId: textId,
30
- text: text,
31
- sideText: sideText, navLinkAttrs: buildNavLinkAttrs(this.context, dayDate), sideNavLinkAttrs: buildNavLinkAttrs(this.context, dayDate, 'day', false) }, dayMeta);
32
- var classNames = ['fc-list-day'].concat(getDayClassNames(dayMeta, theme));
23
+ let sideText = options.listDaySideFormat ? dateEnv.format(dayDate, options.listDaySideFormat) : '';
24
+ let hookProps = Object.assign({ date: dateEnv.toDate(dayDate), view: viewApi, textId,
25
+ text,
26
+ sideText, navLinkAttrs: buildNavLinkAttrs(this.context, dayDate), sideNavLinkAttrs: buildNavLinkAttrs(this.context, dayDate, 'day', false) }, dayMeta);
27
+ let classNames = ['fc-list-day'].concat(getDayClassNames(dayMeta, theme));
33
28
  // TODO: make a reusable HOC for dayHeader (used in daygrid/timegrid too)
34
- return (createElement(RenderHook, { hookProps: hookProps, classNames: options.dayHeaderClassNames, content: options.dayHeaderContent, defaultContent: renderInnerContent, didMount: options.dayHeaderDidMount, willUnmount: options.dayHeaderWillUnmount }, function (rootElRef, customClassNames, innerElRef, innerContent) { return (createElement("tr", { ref: rootElRef, className: classNames.concat(customClassNames).join(' '), "data-date": formatDayString(dayDate) },
29
+ return (createElement(RenderHook, { hookProps: hookProps, classNames: options.dayHeaderClassNames, content: options.dayHeaderContent, defaultContent: renderInnerContent, didMount: options.dayHeaderDidMount, willUnmount: options.dayHeaderWillUnmount }, (rootElRef, customClassNames, innerElRef, innerContent) => (createElement("tr", { ref: rootElRef, className: classNames.concat(customClassNames).join(' '), "data-date": formatDayString(dayDate) },
35
30
  createElement("th", { scope: "colgroup", colSpan: 3, id: cellId, "aria-labelledby": textId },
36
- createElement("div", { className: 'fc-list-day-cushion ' + theme.getClass('tableCellShaded'), ref: innerElRef }, innerContent)))); }));
37
- };
38
- return ListViewHeaderRow;
39
- }(BaseComponent));
31
+ createElement("div", { className: 'fc-list-day-cushion ' + theme.getClass('tableCellShaded'), ref: innerElRef }, innerContent))))));
32
+ }
33
+ }
40
34
  function renderInnerContent(props) {
41
35
  return (createElement(Fragment, null,
42
- props.text && (createElement("a", __assign({ id: props.textId, className: "fc-list-day-text" }, props.navLinkAttrs), props.text)),
43
- props.sideText && ( /* not keyboard tabbable */createElement("a", __assign({ "aria-hidden": true, className: "fc-list-day-side-text" }, props.sideNavLinkAttrs), props.sideText))));
36
+ props.text && (createElement("a", Object.assign({ id: props.textId, className: "fc-list-day-text" }, props.navLinkAttrs), props.text)),
37
+ props.sideText && ( /* not keyboard tabbable */createElement("a", Object.assign({ "aria-hidden": true, className: "fc-list-day-side-text" }, props.sideNavLinkAttrs), props.sideText))));
44
38
  }
45
39
 
46
- var DEFAULT_TIME_FORMAT = createFormatter({
40
+ const DEFAULT_TIME_FORMAT = createFormatter({
47
41
  hour: 'numeric',
48
42
  minute: '2-digit',
49
43
  meridiem: 'short',
50
44
  });
51
- var ListViewEventRow = /** @class */ (function (_super) {
52
- __extends(ListViewEventRow, _super);
53
- function ListViewEventRow() {
54
- return _super !== null && _super.apply(this, arguments) || this;
55
- }
56
- ListViewEventRow.prototype.render = function () {
57
- var _a = this, props = _a.props, context = _a.context;
58
- var seg = props.seg, timeHeaderId = props.timeHeaderId, eventHeaderId = props.eventHeaderId, dateHeaderId = props.dateHeaderId;
59
- var timeFormat = context.options.eventTimeFormat || DEFAULT_TIME_FORMAT;
45
+ class ListViewEventRow extends BaseComponent {
46
+ render() {
47
+ let { props, context } = this;
48
+ let { seg, timeHeaderId, eventHeaderId, dateHeaderId } = props;
49
+ let timeFormat = context.options.eventTimeFormat || DEFAULT_TIME_FORMAT;
60
50
  return (createElement(EventRoot, { seg: seg, timeText: "" // BAD. because of all-day content
61
- , 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 (createElement("tr", { className: ['fc-list-event', hookProps.event.url ? 'fc-event-forced-url' : ''].concat(classNames).join(' '), ref: rootElRef },
51
+ , 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) => (createElement("tr", { className: ['fc-list-event', hookProps.event.url ? 'fc-event-forced-url' : ''].concat(classNames).join(' '), ref: rootElRef },
62
52
  buildTimeContent(seg, timeFormat, context, timeHeaderId, dateHeaderId),
63
53
  createElement("td", { "aria-hidden": true, className: "fc-list-event-graphic" },
64
54
  createElement("span", { className: "fc-list-event-dot", style: { borderColor: hookProps.borderColor || hookProps.backgroundColor } })),
65
- createElement("td", { ref: innerElRef, headers: eventHeaderId + " " + dateHeaderId, className: "fc-list-event-title" }, innerContent))); }));
66
- };
67
- return ListViewEventRow;
68
- }(BaseComponent));
55
+ createElement("td", { ref: innerElRef, headers: `${eventHeaderId} ${dateHeaderId}`, className: "fc-list-event-title" }, innerContent)))));
56
+ }
57
+ }
69
58
  function renderEventInnerContent(seg, context) {
70
- var interactiveAttrs = getSegAnchorAttrs(seg, context);
71
- return (createElement("a", __assign({}, interactiveAttrs), seg.eventRange.def.title));
59
+ let interactiveAttrs = getSegAnchorAttrs(seg, context);
60
+ return (createElement("a", Object.assign({}, interactiveAttrs), seg.eventRange.def.title));
72
61
  }
73
62
  function buildTimeContent(seg, timeFormat, context, timeHeaderId, dateHeaderId) {
74
- var options = context.options;
63
+ let { options } = context;
75
64
  if (options.displayEventTime !== false) {
76
- var eventDef = seg.eventRange.def;
77
- var eventInstance = seg.eventRange.instance;
78
- var doAllDay = false;
79
- var timeText = void 0;
65
+ let eventDef = seg.eventRange.def;
66
+ let eventInstance = seg.eventRange.instance;
67
+ let doAllDay = false;
68
+ let timeText;
80
69
  if (eventDef.allDay) {
81
70
  doAllDay = true;
82
71
  }
@@ -95,11 +84,11 @@ function buildTimeContent(seg, timeFormat, context, timeHeaderId, dateHeaderId)
95
84
  timeText = buildSegTimeText(seg, timeFormat, context);
96
85
  }
97
86
  if (doAllDay) {
98
- var hookProps = {
87
+ let hookProps = {
99
88
  text: context.options.allDayText,
100
89
  view: context.viewApi,
101
90
  };
102
- return (createElement(RenderHook, { hookProps: hookProps, classNames: options.allDayClassNames, content: options.allDayContent, defaultContent: renderAllDayInner, didMount: options.allDayDidMount, willUnmount: options.allDayWillUnmount }, function (rootElRef, classNames, innerElRef, innerContent) { return (createElement("td", { ref: rootElRef, headers: timeHeaderId + " " + dateHeaderId, className: ['fc-list-event-time'].concat(classNames).join(' ') }, innerContent)); }));
91
+ return (createElement(RenderHook, { hookProps: hookProps, classNames: options.allDayClassNames, content: options.allDayContent, defaultContent: renderAllDayInner, didMount: options.allDayDidMount, willUnmount: options.allDayWillUnmount }, (rootElRef, classNames, innerElRef, innerContent) => (createElement("td", { ref: rootElRef, headers: `${timeHeaderId} ${dateHeaderId}`, className: ['fc-list-event-time'].concat(classNames).join(' ') }, innerContent))));
103
92
  }
104
93
  return (createElement("td", { className: "fc-list-event-time" }, timeText));
105
94
  }
@@ -112,70 +101,66 @@ function renderAllDayInner(hookProps) {
112
101
  /*
113
102
  Responsible for the scroller, and forwarding event-related actions into the "grid".
114
103
  */
115
- var ListView = /** @class */ (function (_super) {
116
- __extends(ListView, _super);
117
- function ListView() {
118
- var _this = _super !== null && _super.apply(this, arguments) || this;
119
- _this.computeDateVars = memoize(computeDateVars);
120
- _this.eventStoreToSegs = memoize(_this._eventStoreToSegs);
121
- _this.state = {
104
+ class ListView extends DateComponent {
105
+ constructor() {
106
+ super(...arguments);
107
+ this.computeDateVars = memoize(computeDateVars);
108
+ this.eventStoreToSegs = memoize(this._eventStoreToSegs);
109
+ this.state = {
122
110
  timeHeaderId: getUniqueDomId(),
123
111
  eventHeaderId: getUniqueDomId(),
124
112
  dateHeaderIdRoot: getUniqueDomId(),
125
113
  };
126
- _this.setRootEl = function (rootEl) {
114
+ this.setRootEl = (rootEl) => {
127
115
  if (rootEl) {
128
- _this.context.registerInteractiveComponent(_this, {
116
+ this.context.registerInteractiveComponent(this, {
129
117
  el: rootEl,
130
118
  });
131
119
  }
132
120
  else {
133
- _this.context.unregisterInteractiveComponent(_this);
121
+ this.context.unregisterInteractiveComponent(this);
134
122
  }
135
123
  };
136
- return _this;
137
124
  }
138
- ListView.prototype.render = function () {
139
- var _this = this;
140
- var _a = this, props = _a.props, context = _a.context;
141
- var extraClassNames = [
125
+ render() {
126
+ let { props, context } = this;
127
+ let extraClassNames = [
142
128
  'fc-list',
143
129
  context.theme.getClass('table'),
144
130
  context.options.stickyHeaderDates !== false ? 'fc-list-sticky' : '',
145
131
  ];
146
- var _b = this.computeDateVars(props.dateProfile), dayDates = _b.dayDates, dayRanges = _b.dayRanges;
147
- var eventSegs = this.eventStoreToSegs(props.eventStore, props.eventUiBases, dayRanges);
148
- return (createElement(ViewRoot, { viewSpec: context.viewSpec, elRef: this.setRootEl }, function (rootElRef, classNames) { return (createElement("div", { ref: rootElRef, className: extraClassNames.concat(classNames).join(' ') },
132
+ let { dayDates, dayRanges } = this.computeDateVars(props.dateProfile);
133
+ let eventSegs = this.eventStoreToSegs(props.eventStore, props.eventUiBases, dayRanges);
134
+ return (createElement(ViewRoot, { viewSpec: context.viewSpec, elRef: this.setRootEl }, (rootElRef, classNames) => (createElement("div", { ref: rootElRef, className: extraClassNames.concat(classNames).join(' ') },
149
135
  createElement(Scroller, { liquid: !props.isHeightAuto, overflowX: props.isHeightAuto ? 'visible' : 'hidden', overflowY: props.isHeightAuto ? 'visible' : 'auto' }, eventSegs.length > 0 ?
150
- _this.renderSegList(eventSegs, dayDates) :
151
- _this.renderEmptyMessage()))); }));
152
- };
153
- ListView.prototype.renderEmptyMessage = function () {
154
- var _a = this.context, options = _a.options, viewApi = _a.viewApi;
155
- var hookProps = {
136
+ this.renderSegList(eventSegs, dayDates) :
137
+ this.renderEmptyMessage())))));
138
+ }
139
+ renderEmptyMessage() {
140
+ let { options, viewApi } = this.context;
141
+ let hookProps = {
156
142
  text: options.noEventsText,
157
143
  view: viewApi,
158
144
  };
159
- return (createElement(RenderHook, { hookProps: hookProps, classNames: options.noEventsClassNames, content: options.noEventsContent, defaultContent: renderNoEventsInner, didMount: options.noEventsDidMount, willUnmount: options.noEventsWillUnmount }, function (rootElRef, classNames, innerElRef, innerContent) { return (createElement("div", { className: ['fc-list-empty'].concat(classNames).join(' '), ref: rootElRef },
160
- createElement("div", { className: "fc-list-empty-cushion", ref: innerElRef }, innerContent))); }));
161
- };
162
- ListView.prototype.renderSegList = function (allSegs, dayDates) {
163
- var _a = this.context, theme = _a.theme, options = _a.options;
164
- var _b = this.state, timeHeaderId = _b.timeHeaderId, eventHeaderId = _b.eventHeaderId, dateHeaderIdRoot = _b.dateHeaderIdRoot;
165
- var segsByDay = groupSegsByDay(allSegs); // sparse array
166
- return (createElement(NowTimer, { unit: "day" }, function (nowDate, todayRange) {
167
- var innerNodes = [];
168
- for (var dayIndex = 0; dayIndex < segsByDay.length; dayIndex += 1) {
169
- var daySegs = segsByDay[dayIndex];
145
+ return (createElement(RenderHook, { hookProps: hookProps, classNames: options.noEventsClassNames, content: options.noEventsContent, defaultContent: renderNoEventsInner, didMount: options.noEventsDidMount, willUnmount: options.noEventsWillUnmount }, (rootElRef, classNames, innerElRef, innerContent) => (createElement("div", { className: ['fc-list-empty'].concat(classNames).join(' '), ref: rootElRef },
146
+ createElement("div", { className: "fc-list-empty-cushion", ref: innerElRef }, innerContent)))));
147
+ }
148
+ renderSegList(allSegs, dayDates) {
149
+ let { theme, options } = this.context;
150
+ let { timeHeaderId, eventHeaderId, dateHeaderIdRoot } = this.state;
151
+ let segsByDay = groupSegsByDay(allSegs); // sparse array
152
+ return (createElement(NowTimer, { unit: "day" }, (nowDate, todayRange) => {
153
+ let innerNodes = [];
154
+ for (let dayIndex = 0; dayIndex < segsByDay.length; dayIndex += 1) {
155
+ let daySegs = segsByDay[dayIndex];
170
156
  if (daySegs) { // sparse array, so might be undefined
171
- var dayStr = formatDayString(dayDates[dayIndex]);
172
- var dateHeaderId = dateHeaderIdRoot + '-' + dayStr;
157
+ let dayStr = formatDayString(dayDates[dayIndex]);
158
+ let dateHeaderId = dateHeaderIdRoot + '-' + dayStr;
173
159
  // append a day header
174
160
  innerNodes.push(createElement(ListViewHeaderRow, { key: dayStr, cellId: dateHeaderId, dayDate: dayDates[dayIndex], todayRange: todayRange }));
175
161
  daySegs = sortEventSegs(daySegs, options.eventOrder);
176
- for (var _i = 0, daySegs_1 = daySegs; _i < daySegs_1.length; _i++) {
177
- var seg = daySegs_1[_i];
178
- innerNodes.push(createElement(ListViewEventRow, __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 }, getSegMeta(seg, todayRange, nowDate))));
162
+ for (let seg of daySegs) {
163
+ innerNodes.push(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 }, getSegMeta(seg, todayRange, nowDate))));
179
164
  }
180
165
  }
181
166
  }
@@ -187,38 +172,37 @@ var ListView = /** @class */ (function (_super) {
187
172
  createElement("th", { scope: "col", id: eventHeaderId }, options.eventHint))),
188
173
  createElement("tbody", null, innerNodes)));
189
174
  }));
190
- };
191
- ListView.prototype._eventStoreToSegs = function (eventStore, eventUiBases, dayRanges) {
175
+ }
176
+ _eventStoreToSegs(eventStore, eventUiBases, dayRanges) {
192
177
  return this.eventRangesToSegs(sliceEventStore(eventStore, eventUiBases, this.props.dateProfile.activeRange, this.context.options.nextDayThreshold).fg, dayRanges);
193
- };
194
- ListView.prototype.eventRangesToSegs = function (eventRanges, dayRanges) {
195
- var segs = [];
196
- for (var _i = 0, eventRanges_1 = eventRanges; _i < eventRanges_1.length; _i++) {
197
- var eventRange = eventRanges_1[_i];
198
- segs.push.apply(segs, this.eventRangeToSegs(eventRange, dayRanges));
178
+ }
179
+ eventRangesToSegs(eventRanges, dayRanges) {
180
+ let segs = [];
181
+ for (let eventRange of eventRanges) {
182
+ segs.push(...this.eventRangeToSegs(eventRange, dayRanges));
199
183
  }
200
184
  return segs;
201
- };
202
- ListView.prototype.eventRangeToSegs = function (eventRange, dayRanges) {
203
- var dateEnv = this.context.dateEnv;
204
- var nextDayThreshold = this.context.options.nextDayThreshold;
205
- var range = eventRange.range;
206
- var allDay = eventRange.def.allDay;
207
- var dayIndex;
208
- var segRange;
209
- var seg;
210
- var segs = [];
185
+ }
186
+ eventRangeToSegs(eventRange, dayRanges) {
187
+ let { dateEnv } = this.context;
188
+ let { nextDayThreshold } = this.context.options;
189
+ let range = eventRange.range;
190
+ let allDay = eventRange.def.allDay;
191
+ let dayIndex;
192
+ let segRange;
193
+ let seg;
194
+ let segs = [];
211
195
  for (dayIndex = 0; dayIndex < dayRanges.length; dayIndex += 1) {
212
196
  segRange = intersectRanges(range, dayRanges[dayIndex]);
213
197
  if (segRange) {
214
198
  seg = {
215
199
  component: this,
216
- eventRange: eventRange,
200
+ eventRange,
217
201
  start: segRange.start,
218
202
  end: segRange.end,
219
203
  isStart: eventRange.isStart && segRange.start.valueOf() === range.start.valueOf(),
220
204
  isEnd: eventRange.isEnd && segRange.end.valueOf() === range.end.valueOf(),
221
- dayIndex: dayIndex,
205
+ dayIndex,
222
206
  };
223
207
  segs.push(seg);
224
208
  // detect when range won't go fully into the next day,
@@ -234,17 +218,16 @@ var ListView = /** @class */ (function (_super) {
234
218
  }
235
219
  }
236
220
  return segs;
237
- };
238
- return ListView;
239
- }(DateComponent));
221
+ }
222
+ }
240
223
  function renderNoEventsInner(hookProps) {
241
224
  return hookProps.text;
242
225
  }
243
226
  function computeDateVars(dateProfile) {
244
- var dayStart = startOfDay(dateProfile.renderRange.start);
245
- var viewEnd = dateProfile.renderRange.end;
246
- var dayDates = [];
247
- var dayRanges = [];
227
+ let dayStart = startOfDay(dateProfile.renderRange.start);
228
+ let viewEnd = dateProfile.renderRange.end;
229
+ let dayDates = [];
230
+ let dayRanges = [];
248
231
  while (dayStart < viewEnd) {
249
232
  dayDates.push(dayStart);
250
233
  dayRanges.push({
@@ -253,13 +236,13 @@ function computeDateVars(dateProfile) {
253
236
  });
254
237
  dayStart = addDays(dayStart, 1);
255
238
  }
256
- return { dayDates: dayDates, dayRanges: dayRanges };
239
+ return { dayDates, dayRanges };
257
240
  }
258
241
  // Returns a sparse array of arrays, segs grouped by their dayIndex
259
242
  function groupSegsByDay(segs) {
260
- var segsByDay = []; // sparse array
261
- var i;
262
- var seg;
243
+ let segsByDay = []; // sparse array
244
+ let i;
245
+ let seg;
263
246
  for (i = 0; i < segs.length; i += 1) {
264
247
  seg = segs[i];
265
248
  (segsByDay[seg.dayIndex] || (segsByDay[seg.dayIndex] = []))
@@ -268,7 +251,7 @@ function groupSegsByDay(segs) {
268
251
  return segsByDay;
269
252
  }
270
253
 
271
- var OPTION_REFINERS = {
254
+ const OPTION_REFINERS = {
272
255
  listDayFormat: createFalsableFormatter,
273
256
  listDaySideFormat: createFalsableFormatter,
274
257
  noEventsClassNames: identity,
@@ -281,6 +264,36 @@ function createFalsableFormatter(input) {
281
264
  return input === false ? null : createFormatter(input);
282
265
  }
283
266
 
267
+ function styleInject(css, ref) {
268
+ if ( ref === void 0 ) ref = {};
269
+ var insertAt = ref.insertAt;
270
+
271
+ if (!css || typeof document === 'undefined') { return; }
272
+
273
+ var head = document.head || document.getElementsByTagName('head')[0];
274
+ var style = document.createElement('style');
275
+ style.type = 'text/css';
276
+
277
+ if (insertAt === 'top') {
278
+ if (head.firstChild) {
279
+ head.insertBefore(style, head.firstChild);
280
+ } else {
281
+ head.appendChild(style);
282
+ }
283
+ } else {
284
+ head.appendChild(style);
285
+ }
286
+
287
+ if (style.styleSheet) {
288
+ style.styleSheet.cssText = css;
289
+ } else {
290
+ style.appendChild(document.createTextNode(css));
291
+ }
292
+ }
293
+
294
+ 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";
295
+ styleInject(css_248z);
296
+
284
297
  var main = createPlugin({
285
298
  optionRefiners: OPTION_REFINERS,
286
299
  views: {
package/main.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"main.js","sources":["src/ListViewHeaderRow.tsx","src/ListViewEventRow.tsx","src/ListView.tsx","src/options.ts","src/main.ts"],"sourcesContent":["import {\n BaseComponent, DateMarker, createElement, DateRange, getDateMeta,\n RenderHook, DayHeaderContentArg, getDayClassNames, formatDayString, Fragment, buildNavLinkAttrs, getUniqueDomId,\n} from '@fullcalendar/common'\n\nexport interface ListViewHeaderRowProps {\n cellId: string\n dayDate: DateMarker\n todayRange: DateRange\n}\n\ninterface HookProps extends DayHeaderContentArg { // doesn't enforce much since DayCellContentArg allow extra props\n textId: string // for aria-labelledby\n text: string\n sideText: string\n}\n\nexport class ListViewHeaderRow extends BaseComponent<ListViewHeaderRowProps> {\n state = {\n textId: getUniqueDomId(),\n }\n\n render() {\n let { theme, dateEnv, options, viewApi } = this.context\n let { cellId, dayDate, todayRange } = this.props\n let { textId } = this.state\n let dayMeta = getDateMeta(dayDate, todayRange)\n\n // will ever be falsy?\n let text = options.listDayFormat ? dateEnv.format(dayDate, options.listDayFormat) : ''\n\n // will ever be falsy? also, BAD NAME \"alt\"\n let sideText = options.listDaySideFormat ? dateEnv.format(dayDate, options.listDaySideFormat) : ''\n\n let hookProps: HookProps = {\n date: dateEnv.toDate(dayDate),\n view: viewApi,\n textId,\n text,\n sideText,\n navLinkAttrs: buildNavLinkAttrs(this.context, dayDate),\n sideNavLinkAttrs: buildNavLinkAttrs(this.context, dayDate, 'day', false),\n ...dayMeta,\n }\n\n let classNames = ['fc-list-day'].concat(\n getDayClassNames(dayMeta, theme),\n )\n\n // TODO: make a reusable HOC for dayHeader (used in daygrid/timegrid too)\n return (\n <RenderHook<HookProps>\n hookProps={hookProps}\n classNames={options.dayHeaderClassNames}\n content={options.dayHeaderContent}\n defaultContent={renderInnerContent}\n didMount={options.dayHeaderDidMount}\n willUnmount={options.dayHeaderWillUnmount}\n >\n {(rootElRef, customClassNames, innerElRef, innerContent) => (\n <tr\n ref={rootElRef}\n className={classNames.concat(customClassNames).join(' ')}\n data-date={formatDayString(dayDate)}\n >\n {/* TODO: force-hide top border based on :first-child */}\n <th scope=\"colgroup\" colSpan={3} id={cellId} aria-labelledby={textId}>\n <div className={'fc-list-day-cushion ' + theme.getClass('tableCellShaded')} ref={innerElRef}>\n {innerContent}\n </div>\n </th>\n </tr>\n )}\n </RenderHook>\n )\n }\n}\n\nfunction renderInnerContent(props: HookProps) {\n return (\n <Fragment>\n {props.text && (\n <a id={props.textId} className=\"fc-list-day-text\" {...props.navLinkAttrs}>\n {props.text}\n </a>\n )}\n {props.sideText && (/* not keyboard tabbable */\n <a aria-hidden className=\"fc-list-day-side-text\" {...props.sideNavLinkAttrs}>\n {props.sideText}\n </a>\n )}\n </Fragment>\n )\n}\n","import {\n MinimalEventProps, BaseComponent, ViewContext, createElement, AllDayContentArg,\n Seg, isMultiDayRange, DateFormatter, buildSegTimeText, createFormatter, EventRoot, ComponentChildren, RenderHook, getSegAnchorAttrs,\n} from '@fullcalendar/common'\n\nconst DEFAULT_TIME_FORMAT = createFormatter({\n hour: 'numeric',\n minute: '2-digit',\n meridiem: 'short',\n})\n\nexport interface ListViewEventRowProps extends MinimalEventProps {\n timeHeaderId: string\n eventHeaderId: string\n dateHeaderId: string\n}\n\nexport class ListViewEventRow extends BaseComponent<ListViewEventRowProps> {\n render() {\n let { props, context } = this\n let { seg, timeHeaderId, eventHeaderId, dateHeaderId } = props\n let timeFormat = context.options.eventTimeFormat || DEFAULT_TIME_FORMAT\n\n return (\n <EventRoot\n seg={seg}\n timeText=\"\" // BAD. because of all-day content\n disableDragging\n disableResizing\n defaultContent={() => renderEventInnerContent(seg, context) /* weird */}\n isPast={props.isPast}\n isFuture={props.isFuture}\n isToday={props.isToday}\n isSelected={props.isSelected}\n isDragging={props.isDragging}\n isResizing={props.isResizing}\n isDateSelecting={props.isDateSelecting}\n >\n {(rootElRef, classNames, innerElRef, innerContent, hookProps) => (\n <tr className={['fc-list-event', hookProps.event.url ? 'fc-event-forced-url' : ''].concat(classNames).join(' ')} ref={rootElRef}>\n {buildTimeContent(seg, timeFormat, context, timeHeaderId, dateHeaderId)}\n <td aria-hidden className=\"fc-list-event-graphic\">\n <span className=\"fc-list-event-dot\" style={{ borderColor: hookProps.borderColor || hookProps.backgroundColor }} />\n </td>\n <td ref={innerElRef} headers={`${eventHeaderId} ${dateHeaderId}`} className=\"fc-list-event-title\">\n {innerContent}\n </td>\n </tr>\n )}\n </EventRoot>\n )\n }\n}\n\nfunction renderEventInnerContent(seg: Seg, context: ViewContext) {\n let interactiveAttrs = getSegAnchorAttrs(seg, context)\n return (\n <a {...interactiveAttrs}>\n {/* TODO: document how whole row become clickable */}\n {seg.eventRange.def.title}\n </a>\n )\n}\n\nfunction buildTimeContent(\n seg: Seg,\n timeFormat: DateFormatter,\n context: ViewContext,\n timeHeaderId: string,\n dateHeaderId: string,\n): ComponentChildren {\n let { options } = context\n\n if (options.displayEventTime !== false) {\n let eventDef = seg.eventRange.def\n let eventInstance = seg.eventRange.instance\n let doAllDay = false\n let timeText: string\n\n if (eventDef.allDay) {\n doAllDay = true\n } else if (isMultiDayRange(seg.eventRange.range)) { // TODO: use (!isStart || !isEnd) instead?\n if (seg.isStart) {\n timeText = buildSegTimeText(\n seg,\n timeFormat,\n context,\n null,\n null,\n eventInstance.range.start,\n seg.end,\n )\n } else if (seg.isEnd) {\n timeText = buildSegTimeText(\n seg,\n timeFormat,\n context,\n null,\n null,\n seg.start,\n eventInstance.range.end,\n )\n } else {\n doAllDay = true\n }\n } else {\n timeText = buildSegTimeText(\n seg,\n timeFormat,\n context,\n )\n }\n\n if (doAllDay) {\n let hookProps: AllDayContentArg = {\n text: context.options.allDayText,\n view: context.viewApi,\n }\n\n return (\n <RenderHook<AllDayContentArg> // needed?\n hookProps={hookProps}\n classNames={options.allDayClassNames}\n content={options.allDayContent}\n defaultContent={renderAllDayInner}\n didMount={options.allDayDidMount}\n willUnmount={options.allDayWillUnmount}\n >\n {(rootElRef, classNames, innerElRef, innerContent) => (\n <td ref={rootElRef} headers={`${timeHeaderId} ${dateHeaderId}`} className={['fc-list-event-time'].concat(classNames).join(' ')}>\n {innerContent}\n </td>\n )}\n </RenderHook>\n )\n }\n\n return (\n <td className=\"fc-list-event-time\">\n {timeText}\n </td>\n )\n }\n\n return null\n}\n\nfunction renderAllDayInner(hookProps) {\n return hookProps.text\n}\n","import {\n createElement,\n ViewProps,\n Scroller,\n DateMarker,\n addDays,\n startOfDay,\n DateRange,\n intersectRanges,\n DateProfile,\n EventUiHash,\n EventRenderRange,\n sliceEventStore,\n EventStore,\n memoize,\n Seg,\n VNode,\n sortEventSegs,\n getSegMeta,\n NowTimer,\n ViewRoot,\n RenderHook,\n DateComponent,\n ViewApi,\n MountArg,\n getUniqueDomId,\n formatDayString,\n} from '@fullcalendar/common'\nimport { ListViewHeaderRow } from './ListViewHeaderRow'\nimport { ListViewEventRow } from './ListViewEventRow'\n\nexport interface NoEventsContentArg {\n text: string\n view: ViewApi\n}\n\nexport type NoEventsMountArg = MountArg<NoEventsContentArg>\n\n/*\nResponsible for the scroller, and forwarding event-related actions into the \"grid\".\n*/\nexport class ListView extends DateComponent<ViewProps> {\n private computeDateVars = memoize(computeDateVars)\n private eventStoreToSegs = memoize(this._eventStoreToSegs)\n state = {\n timeHeaderId: getUniqueDomId(),\n eventHeaderId: getUniqueDomId(),\n dateHeaderIdRoot: getUniqueDomId(),\n }\n\n render() {\n let { props, context } = this\n\n let extraClassNames = [\n 'fc-list',\n context.theme.getClass('table'), // just for the outer border. will be on div\n context.options.stickyHeaderDates !== false ? 'fc-list-sticky' : '',\n ]\n\n let { dayDates, dayRanges } = this.computeDateVars(props.dateProfile)\n let eventSegs = this.eventStoreToSegs(props.eventStore, props.eventUiBases, dayRanges)\n\n return (\n <ViewRoot viewSpec={context.viewSpec} elRef={this.setRootEl}>\n {(rootElRef, classNames) => (\n <div ref={rootElRef} className={extraClassNames.concat(classNames).join(' ')}>\n <Scroller\n liquid={!props.isHeightAuto}\n overflowX={props.isHeightAuto ? 'visible' : 'hidden'}\n overflowY={props.isHeightAuto ? 'visible' : 'auto'}\n >\n {eventSegs.length > 0 ?\n this.renderSegList(eventSegs, dayDates) :\n this.renderEmptyMessage()}\n </Scroller>\n </div>\n )}\n </ViewRoot>\n )\n }\n\n setRootEl = (rootEl: HTMLDivElement | null) => {\n if (rootEl) {\n this.context.registerInteractiveComponent(this, { // TODO: make aware that it doesn't do Hits\n el: rootEl,\n })\n } else {\n this.context.unregisterInteractiveComponent(this)\n }\n }\n\n renderEmptyMessage() {\n let { options, viewApi } = this.context\n let hookProps: NoEventsContentArg = {\n text: options.noEventsText,\n view: viewApi,\n }\n\n return (\n <RenderHook<NoEventsContentArg> // needed???\n hookProps={hookProps}\n classNames={options.noEventsClassNames}\n content={options.noEventsContent}\n defaultContent={renderNoEventsInner}\n didMount={options.noEventsDidMount}\n willUnmount={options.noEventsWillUnmount}\n >\n {(rootElRef, classNames, innerElRef, innerContent) => (\n <div className={['fc-list-empty'].concat(classNames).join(' ')} ref={rootElRef}>\n <div className=\"fc-list-empty-cushion\" ref={innerElRef}>\n {innerContent}\n </div>\n </div>\n )}\n </RenderHook>\n )\n }\n\n renderSegList(allSegs: Seg[], dayDates: DateMarker[]) {\n let { theme, options } = this.context\n let { timeHeaderId, eventHeaderId, dateHeaderIdRoot } = this.state\n let segsByDay = groupSegsByDay(allSegs) // sparse array\n\n return (\n <NowTimer unit=\"day\">\n {(nowDate: DateMarker, todayRange: DateRange) => {\n let innerNodes: VNode[] = []\n\n for (let dayIndex = 0; dayIndex < segsByDay.length; dayIndex += 1) {\n let daySegs = segsByDay[dayIndex]\n\n if (daySegs) { // sparse array, so might be undefined\n let dayStr = formatDayString(dayDates[dayIndex])\n let dateHeaderId = dateHeaderIdRoot + '-' + dayStr\n\n // append a day header\n innerNodes.push(\n <ListViewHeaderRow\n key={dayStr}\n cellId={dateHeaderId}\n dayDate={dayDates[dayIndex]}\n todayRange={todayRange}\n />,\n )\n\n daySegs = sortEventSegs(daySegs, options.eventOrder)\n\n for (let seg of daySegs) {\n innerNodes.push(\n <ListViewEventRow\n key={dayStr + ':' + seg.eventRange.instance.instanceId /* are multiple segs for an instanceId */}\n seg={seg}\n isDragging={false}\n isResizing={false}\n isDateSelecting={false}\n isSelected={false}\n timeHeaderId={timeHeaderId}\n eventHeaderId={eventHeaderId}\n dateHeaderId={dateHeaderId}\n {...getSegMeta(seg, todayRange, nowDate)}\n />,\n )\n }\n }\n }\n\n return (\n <table className={'fc-list-table ' + theme.getClass('table')}>\n <thead>\n <tr>\n <th scope=\"col\" id={timeHeaderId}>{options.timeHint}</th>\n <th scope=\"col\" aria-hidden />\n <th scope=\"col\" id={eventHeaderId}>{options.eventHint}</th>\n </tr>\n </thead>\n <tbody>{innerNodes}</tbody>\n </table>\n )\n }}\n </NowTimer>\n )\n }\n\n _eventStoreToSegs(eventStore: EventStore, eventUiBases: EventUiHash, dayRanges: DateRange[]): Seg[] {\n return this.eventRangesToSegs(\n sliceEventStore(\n eventStore,\n eventUiBases,\n this.props.dateProfile.activeRange,\n this.context.options.nextDayThreshold,\n ).fg,\n dayRanges,\n )\n }\n\n eventRangesToSegs(eventRanges: EventRenderRange[], dayRanges: DateRange[]) {\n let segs = []\n\n for (let eventRange of eventRanges) {\n segs.push(...this.eventRangeToSegs(eventRange, dayRanges))\n }\n\n return segs\n }\n\n eventRangeToSegs(eventRange: EventRenderRange, dayRanges: DateRange[]) {\n let { dateEnv } = this.context\n let { nextDayThreshold } = this.context.options\n let range = eventRange.range\n let allDay = eventRange.def.allDay\n let dayIndex\n let segRange\n let seg\n let segs = []\n\n for (dayIndex = 0; dayIndex < dayRanges.length; dayIndex += 1) {\n segRange = intersectRanges(range, dayRanges[dayIndex])\n\n if (segRange) {\n seg = {\n component: this,\n eventRange,\n start: segRange.start,\n end: segRange.end,\n isStart: eventRange.isStart && segRange.start.valueOf() === range.start.valueOf(),\n isEnd: eventRange.isEnd && segRange.end.valueOf() === range.end.valueOf(),\n dayIndex,\n }\n\n segs.push(seg)\n\n // detect when range won't go fully into the next day,\n // and mutate the latest seg to the be the end.\n if (\n !seg.isEnd && !allDay &&\n dayIndex + 1 < dayRanges.length &&\n range.end <\n dateEnv.add(\n dayRanges[dayIndex + 1].start,\n nextDayThreshold,\n )\n ) {\n seg.end = range.end\n seg.isEnd = true\n break\n }\n }\n }\n\n return segs\n }\n}\n\nfunction renderNoEventsInner(hookProps) {\n return hookProps.text\n}\n\nfunction computeDateVars(dateProfile: DateProfile) {\n let dayStart = startOfDay(dateProfile.renderRange.start)\n let viewEnd = dateProfile.renderRange.end\n let dayDates: DateMarker[] = []\n let dayRanges: DateRange[] = []\n\n while (dayStart < viewEnd) {\n dayDates.push(dayStart)\n\n dayRanges.push({\n start: dayStart,\n end: addDays(dayStart, 1),\n })\n\n dayStart = addDays(dayStart, 1)\n }\n\n return { dayDates, dayRanges }\n}\n\n// Returns a sparse array of arrays, segs grouped by their dayIndex\nfunction groupSegsByDay(segs): Seg[][] {\n let segsByDay = [] // sparse array\n let i\n let seg\n\n for (i = 0; i < segs.length; i += 1) {\n seg = segs[i];\n (segsByDay[seg.dayIndex] || (segsByDay[seg.dayIndex] = []))\n .push(seg)\n }\n\n return segsByDay\n}\n","import {\n identity,\n Identity,\n ClassNamesGenerator,\n CustomContentGenerator,\n DidMountHandler,\n WillUnmountHandler,\n createFormatter,\n FormatterInput,\n} from '@fullcalendar/common'\n\n// public\nimport {\n NoEventsContentArg,\n NoEventsMountArg,\n} from './api-type-deps'\n\nexport const OPTION_REFINERS = {\n listDayFormat: createFalsableFormatter, // defaults specified in list plugins\n listDaySideFormat: createFalsableFormatter, // \"\n\n noEventsClassNames: identity as Identity<ClassNamesGenerator<NoEventsContentArg>>,\n noEventsContent: identity as Identity<CustomContentGenerator<NoEventsContentArg>>,\n noEventsDidMount: identity as Identity<DidMountHandler<NoEventsMountArg>>,\n noEventsWillUnmount: identity as Identity<WillUnmountHandler<NoEventsMountArg>>,\n\n // noEventsText is defined in base options\n}\n\nfunction createFalsableFormatter(input: FormatterInput | false) {\n return input === false ? null : createFormatter(input)\n}\n","import { createPlugin } from '@fullcalendar/common'\nimport { ListView } from './ListView'\nimport { OPTION_REFINERS } from './options'\nimport './options-declare'\nimport './main.css'\n\nexport { ListView }\nexport * from './api-type-deps'\n\nexport default createPlugin({\n optionRefiners: OPTION_REFINERS,\n views: {\n\n list: {\n component: ListView,\n buttonTextKey: 'list', // what to lookup in locale files\n listDayFormat: { month: 'long', day: 'numeric', year: 'numeric' }, // like \"January 1, 2016\"\n },\n\n listDay: {\n type: 'list',\n duration: { days: 1 },\n listDayFormat: { weekday: 'long' }, // day-of-week is all we need. full date is probably in headerToolbar\n },\n\n listWeek: {\n type: 'list',\n duration: { weeks: 1 },\n listDayFormat: { weekday: 'long' }, // day-of-week is more important\n listDaySideFormat: { month: 'long', day: 'numeric', year: 'numeric' },\n },\n\n listMonth: {\n type: 'list',\n duration: { month: 1 },\n listDaySideFormat: { weekday: 'long' }, // day-of-week is nice-to-have\n },\n\n listYear: {\n type: 'list',\n duration: { year: 1 },\n listDaySideFormat: { weekday: 'long' }, // day-of-week is nice-to-have\n },\n\n },\n})\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"main.js","sources":["src/ListViewHeaderRow.tsx","src/ListViewEventRow.tsx","src/ListView.tsx","src/options.ts","../../.yarn/cache/style-inject-npm-0.3.0-e2042d3aac-1ff06fa7d2.zip/node_modules/style-inject/dist/style-inject.es.js","src/main.ts"],"sourcesContent":["import {\n BaseComponent, DateMarker, createElement, DateRange, getDateMeta,\n RenderHook, DayHeaderContentArg, getDayClassNames, formatDayString, Fragment, buildNavLinkAttrs, getUniqueDomId,\n} from '@fullcalendar/common'\n\nexport interface ListViewHeaderRowProps {\n cellId: string\n dayDate: DateMarker\n todayRange: DateRange\n}\n\ninterface HookProps extends DayHeaderContentArg { // doesn't enforce much since DayCellContentArg allow extra props\n textId: string // for aria-labelledby\n text: string\n sideText: string\n}\n\nexport class ListViewHeaderRow extends BaseComponent<ListViewHeaderRowProps> {\n state = {\n textId: getUniqueDomId(),\n }\n\n render() {\n let { theme, dateEnv, options, viewApi } = this.context\n let { cellId, dayDate, todayRange } = this.props\n let { textId } = this.state\n let dayMeta = getDateMeta(dayDate, todayRange)\n\n // will ever be falsy?\n let text = options.listDayFormat ? dateEnv.format(dayDate, options.listDayFormat) : ''\n\n // will ever be falsy? also, BAD NAME \"alt\"\n let sideText = options.listDaySideFormat ? dateEnv.format(dayDate, options.listDaySideFormat) : ''\n\n let hookProps: HookProps = {\n date: dateEnv.toDate(dayDate),\n view: viewApi,\n textId,\n text,\n sideText,\n navLinkAttrs: buildNavLinkAttrs(this.context, dayDate),\n sideNavLinkAttrs: buildNavLinkAttrs(this.context, dayDate, 'day', false),\n ...dayMeta,\n }\n\n let classNames = ['fc-list-day'].concat(\n getDayClassNames(dayMeta, theme),\n )\n\n // TODO: make a reusable HOC for dayHeader (used in daygrid/timegrid too)\n return (\n <RenderHook<HookProps>\n hookProps={hookProps}\n classNames={options.dayHeaderClassNames}\n content={options.dayHeaderContent}\n defaultContent={renderInnerContent}\n didMount={options.dayHeaderDidMount}\n willUnmount={options.dayHeaderWillUnmount}\n >\n {(rootElRef, customClassNames, innerElRef, innerContent) => (\n <tr\n ref={rootElRef}\n className={classNames.concat(customClassNames).join(' ')}\n data-date={formatDayString(dayDate)}\n >\n {/* TODO: force-hide top border based on :first-child */}\n <th scope=\"colgroup\" colSpan={3} id={cellId} aria-labelledby={textId}>\n <div className={'fc-list-day-cushion ' + theme.getClass('tableCellShaded')} ref={innerElRef}>\n {innerContent}\n </div>\n </th>\n </tr>\n )}\n </RenderHook>\n )\n }\n}\n\nfunction renderInnerContent(props: HookProps) {\n return (\n <Fragment>\n {props.text && (\n <a id={props.textId} className=\"fc-list-day-text\" {...props.navLinkAttrs}>\n {props.text}\n </a>\n )}\n {props.sideText && (/* not keyboard tabbable */\n <a aria-hidden className=\"fc-list-day-side-text\" {...props.sideNavLinkAttrs}>\n {props.sideText}\n </a>\n )}\n </Fragment>\n )\n}\n","import {\n MinimalEventProps, BaseComponent, ViewContext, createElement, AllDayContentArg,\n Seg, isMultiDayRange, DateFormatter, buildSegTimeText, createFormatter, EventRoot, ComponentChildren, RenderHook, getSegAnchorAttrs,\n} from '@fullcalendar/common'\n\nconst DEFAULT_TIME_FORMAT = createFormatter({\n hour: 'numeric',\n minute: '2-digit',\n meridiem: 'short',\n})\n\nexport interface ListViewEventRowProps extends MinimalEventProps {\n timeHeaderId: string\n eventHeaderId: string\n dateHeaderId: string\n}\n\nexport class ListViewEventRow extends BaseComponent<ListViewEventRowProps> {\n render() {\n let { props, context } = this\n let { seg, timeHeaderId, eventHeaderId, dateHeaderId } = props\n let timeFormat = context.options.eventTimeFormat || DEFAULT_TIME_FORMAT\n\n return (\n <EventRoot\n seg={seg}\n timeText=\"\" // BAD. because of all-day content\n disableDragging\n disableResizing\n defaultContent={() => renderEventInnerContent(seg, context) /* weird */}\n isPast={props.isPast}\n isFuture={props.isFuture}\n isToday={props.isToday}\n isSelected={props.isSelected}\n isDragging={props.isDragging}\n isResizing={props.isResizing}\n isDateSelecting={props.isDateSelecting}\n >\n {(rootElRef, classNames, innerElRef, innerContent, hookProps) => (\n <tr className={['fc-list-event', hookProps.event.url ? 'fc-event-forced-url' : ''].concat(classNames).join(' ')} ref={rootElRef}>\n {buildTimeContent(seg, timeFormat, context, timeHeaderId, dateHeaderId)}\n <td aria-hidden className=\"fc-list-event-graphic\">\n <span className=\"fc-list-event-dot\" style={{ borderColor: hookProps.borderColor || hookProps.backgroundColor }} />\n </td>\n <td ref={innerElRef} headers={`${eventHeaderId} ${dateHeaderId}`} className=\"fc-list-event-title\">\n {innerContent}\n </td>\n </tr>\n )}\n </EventRoot>\n )\n }\n}\n\nfunction renderEventInnerContent(seg: Seg, context: ViewContext) {\n let interactiveAttrs = getSegAnchorAttrs(seg, context)\n return (\n <a {...interactiveAttrs}>\n {/* TODO: document how whole row become clickable */}\n {seg.eventRange.def.title}\n </a>\n )\n}\n\nfunction buildTimeContent(\n seg: Seg,\n timeFormat: DateFormatter,\n context: ViewContext,\n timeHeaderId: string,\n dateHeaderId: string,\n): ComponentChildren {\n let { options } = context\n\n if (options.displayEventTime !== false) {\n let eventDef = seg.eventRange.def\n let eventInstance = seg.eventRange.instance\n let doAllDay = false\n let timeText: string\n\n if (eventDef.allDay) {\n doAllDay = true\n } else if (isMultiDayRange(seg.eventRange.range)) { // TODO: use (!isStart || !isEnd) instead?\n if (seg.isStart) {\n timeText = buildSegTimeText(\n seg,\n timeFormat,\n context,\n null,\n null,\n eventInstance.range.start,\n seg.end,\n )\n } else if (seg.isEnd) {\n timeText = buildSegTimeText(\n seg,\n timeFormat,\n context,\n null,\n null,\n seg.start,\n eventInstance.range.end,\n )\n } else {\n doAllDay = true\n }\n } else {\n timeText = buildSegTimeText(\n seg,\n timeFormat,\n context,\n )\n }\n\n if (doAllDay) {\n let hookProps: AllDayContentArg = {\n text: context.options.allDayText,\n view: context.viewApi,\n }\n\n return (\n <RenderHook<AllDayContentArg> // needed?\n hookProps={hookProps}\n classNames={options.allDayClassNames}\n content={options.allDayContent}\n defaultContent={renderAllDayInner}\n didMount={options.allDayDidMount}\n willUnmount={options.allDayWillUnmount}\n >\n {(rootElRef, classNames, innerElRef, innerContent) => (\n <td ref={rootElRef} headers={`${timeHeaderId} ${dateHeaderId}`} className={['fc-list-event-time'].concat(classNames).join(' ')}>\n {innerContent}\n </td>\n )}\n </RenderHook>\n )\n }\n\n return (\n <td className=\"fc-list-event-time\">\n {timeText}\n </td>\n )\n }\n\n return null\n}\n\nfunction renderAllDayInner(hookProps) {\n return hookProps.text\n}\n","import {\n createElement,\n ViewProps,\n Scroller,\n DateMarker,\n addDays,\n startOfDay,\n DateRange,\n intersectRanges,\n DateProfile,\n EventUiHash,\n EventRenderRange,\n sliceEventStore,\n EventStore,\n memoize,\n Seg,\n VNode,\n sortEventSegs,\n getSegMeta,\n NowTimer,\n ViewRoot,\n RenderHook,\n DateComponent,\n ViewApi,\n MountArg,\n getUniqueDomId,\n formatDayString,\n} from '@fullcalendar/common'\nimport { ListViewHeaderRow } from './ListViewHeaderRow'\nimport { ListViewEventRow } from './ListViewEventRow'\n\nexport interface NoEventsContentArg {\n text: string\n view: ViewApi\n}\n\nexport type NoEventsMountArg = MountArg<NoEventsContentArg>\n\n/*\nResponsible for the scroller, and forwarding event-related actions into the \"grid\".\n*/\nexport class ListView extends DateComponent<ViewProps> {\n private computeDateVars = memoize(computeDateVars)\n private eventStoreToSegs = memoize(this._eventStoreToSegs)\n state = {\n timeHeaderId: getUniqueDomId(),\n eventHeaderId: getUniqueDomId(),\n dateHeaderIdRoot: getUniqueDomId(),\n }\n\n render() {\n let { props, context } = this\n\n let extraClassNames = [\n 'fc-list',\n context.theme.getClass('table'), // just for the outer border. will be on div\n context.options.stickyHeaderDates !== false ? 'fc-list-sticky' : '',\n ]\n\n let { dayDates, dayRanges } = this.computeDateVars(props.dateProfile)\n let eventSegs = this.eventStoreToSegs(props.eventStore, props.eventUiBases, dayRanges)\n\n return (\n <ViewRoot viewSpec={context.viewSpec} elRef={this.setRootEl}>\n {(rootElRef, classNames) => (\n <div ref={rootElRef} className={extraClassNames.concat(classNames).join(' ')}>\n <Scroller\n liquid={!props.isHeightAuto}\n overflowX={props.isHeightAuto ? 'visible' : 'hidden'}\n overflowY={props.isHeightAuto ? 'visible' : 'auto'}\n >\n {eventSegs.length > 0 ?\n this.renderSegList(eventSegs, dayDates) :\n this.renderEmptyMessage()}\n </Scroller>\n </div>\n )}\n </ViewRoot>\n )\n }\n\n setRootEl = (rootEl: HTMLDivElement | null) => {\n if (rootEl) {\n this.context.registerInteractiveComponent(this, { // TODO: make aware that it doesn't do Hits\n el: rootEl,\n })\n } else {\n this.context.unregisterInteractiveComponent(this)\n }\n }\n\n renderEmptyMessage() {\n let { options, viewApi } = this.context\n let hookProps: NoEventsContentArg = {\n text: options.noEventsText,\n view: viewApi,\n }\n\n return (\n <RenderHook<NoEventsContentArg> // needed???\n hookProps={hookProps}\n classNames={options.noEventsClassNames}\n content={options.noEventsContent}\n defaultContent={renderNoEventsInner}\n didMount={options.noEventsDidMount}\n willUnmount={options.noEventsWillUnmount}\n >\n {(rootElRef, classNames, innerElRef, innerContent) => (\n <div className={['fc-list-empty'].concat(classNames).join(' ')} ref={rootElRef}>\n <div className=\"fc-list-empty-cushion\" ref={innerElRef}>\n {innerContent}\n </div>\n </div>\n )}\n </RenderHook>\n )\n }\n\n renderSegList(allSegs: Seg[], dayDates: DateMarker[]) {\n let { theme, options } = this.context\n let { timeHeaderId, eventHeaderId, dateHeaderIdRoot } = this.state\n let segsByDay = groupSegsByDay(allSegs) // sparse array\n\n return (\n <NowTimer unit=\"day\">\n {(nowDate: DateMarker, todayRange: DateRange) => {\n let innerNodes: VNode[] = []\n\n for (let dayIndex = 0; dayIndex < segsByDay.length; dayIndex += 1) {\n let daySegs = segsByDay[dayIndex]\n\n if (daySegs) { // sparse array, so might be undefined\n let dayStr = formatDayString(dayDates[dayIndex])\n let dateHeaderId = dateHeaderIdRoot + '-' + dayStr\n\n // append a day header\n innerNodes.push(\n <ListViewHeaderRow\n key={dayStr}\n cellId={dateHeaderId}\n dayDate={dayDates[dayIndex]}\n todayRange={todayRange}\n />,\n )\n\n daySegs = sortEventSegs(daySegs, options.eventOrder)\n\n for (let seg of daySegs) {\n innerNodes.push(\n <ListViewEventRow\n key={dayStr + ':' + seg.eventRange.instance.instanceId /* are multiple segs for an instanceId */}\n seg={seg}\n isDragging={false}\n isResizing={false}\n isDateSelecting={false}\n isSelected={false}\n timeHeaderId={timeHeaderId}\n eventHeaderId={eventHeaderId}\n dateHeaderId={dateHeaderId}\n {...getSegMeta(seg, todayRange, nowDate)}\n />,\n )\n }\n }\n }\n\n return (\n <table className={'fc-list-table ' + theme.getClass('table')}>\n <thead>\n <tr>\n <th scope=\"col\" id={timeHeaderId}>{options.timeHint}</th>\n <th scope=\"col\" aria-hidden />\n <th scope=\"col\" id={eventHeaderId}>{options.eventHint}</th>\n </tr>\n </thead>\n <tbody>{innerNodes}</tbody>\n </table>\n )\n }}\n </NowTimer>\n )\n }\n\n _eventStoreToSegs(eventStore: EventStore, eventUiBases: EventUiHash, dayRanges: DateRange[]): Seg[] {\n return this.eventRangesToSegs(\n sliceEventStore(\n eventStore,\n eventUiBases,\n this.props.dateProfile.activeRange,\n this.context.options.nextDayThreshold,\n ).fg,\n dayRanges,\n )\n }\n\n eventRangesToSegs(eventRanges: EventRenderRange[], dayRanges: DateRange[]) {\n let segs = []\n\n for (let eventRange of eventRanges) {\n segs.push(...this.eventRangeToSegs(eventRange, dayRanges))\n }\n\n return segs\n }\n\n eventRangeToSegs(eventRange: EventRenderRange, dayRanges: DateRange[]) {\n let { dateEnv } = this.context\n let { nextDayThreshold } = this.context.options\n let range = eventRange.range\n let allDay = eventRange.def.allDay\n let dayIndex\n let segRange\n let seg\n let segs = []\n\n for (dayIndex = 0; dayIndex < dayRanges.length; dayIndex += 1) {\n segRange = intersectRanges(range, dayRanges[dayIndex])\n\n if (segRange) {\n seg = {\n component: this,\n eventRange,\n start: segRange.start,\n end: segRange.end,\n isStart: eventRange.isStart && segRange.start.valueOf() === range.start.valueOf(),\n isEnd: eventRange.isEnd && segRange.end.valueOf() === range.end.valueOf(),\n dayIndex,\n }\n\n segs.push(seg)\n\n // detect when range won't go fully into the next day,\n // and mutate the latest seg to the be the end.\n if (\n !seg.isEnd && !allDay &&\n dayIndex + 1 < dayRanges.length &&\n range.end <\n dateEnv.add(\n dayRanges[dayIndex + 1].start,\n nextDayThreshold,\n )\n ) {\n seg.end = range.end\n seg.isEnd = true\n break\n }\n }\n }\n\n return segs\n }\n}\n\nfunction renderNoEventsInner(hookProps) {\n return hookProps.text\n}\n\nfunction computeDateVars(dateProfile: DateProfile) {\n let dayStart = startOfDay(dateProfile.renderRange.start)\n let viewEnd = dateProfile.renderRange.end\n let dayDates: DateMarker[] = []\n let dayRanges: DateRange[] = []\n\n while (dayStart < viewEnd) {\n dayDates.push(dayStart)\n\n dayRanges.push({\n start: dayStart,\n end: addDays(dayStart, 1),\n })\n\n dayStart = addDays(dayStart, 1)\n }\n\n return { dayDates, dayRanges }\n}\n\n// Returns a sparse array of arrays, segs grouped by their dayIndex\nfunction groupSegsByDay(segs): Seg[][] {\n let segsByDay = [] // sparse array\n let i\n let seg\n\n for (i = 0; i < segs.length; i += 1) {\n seg = segs[i];\n (segsByDay[seg.dayIndex] || (segsByDay[seg.dayIndex] = []))\n .push(seg)\n }\n\n return segsByDay\n}\n","import {\n identity,\n Identity,\n ClassNamesGenerator,\n CustomContentGenerator,\n DidMountHandler,\n WillUnmountHandler,\n createFormatter,\n FormatterInput,\n} from '@fullcalendar/common'\n\n// public\nimport {\n NoEventsContentArg,\n NoEventsMountArg,\n} from './api-type-deps'\n\nexport const OPTION_REFINERS = {\n listDayFormat: createFalsableFormatter, // defaults specified in list plugins\n listDaySideFormat: createFalsableFormatter, // \"\n\n noEventsClassNames: identity as Identity<ClassNamesGenerator<NoEventsContentArg>>,\n noEventsContent: identity as Identity<CustomContentGenerator<NoEventsContentArg>>,\n noEventsDidMount: identity as Identity<DidMountHandler<NoEventsMountArg>>,\n noEventsWillUnmount: identity as Identity<WillUnmountHandler<NoEventsMountArg>>,\n\n // noEventsText is defined in base options\n}\n\nfunction createFalsableFormatter(input: FormatterInput | false) {\n return input === false ? null : createFormatter(input)\n}\n","function styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nexport default styleInject;\n","import { createPlugin } from '@fullcalendar/common'\nimport { ListView } from './ListView'\nimport { OPTION_REFINERS } from './options'\nimport './options-declare'\nimport './main.css'\n\nexport { ListView }\nexport * from './api-type-deps'\n\nexport default createPlugin({\n optionRefiners: OPTION_REFINERS,\n views: {\n\n list: {\n component: ListView,\n buttonTextKey: 'list', // what to lookup in locale files\n listDayFormat: { month: 'long', day: 'numeric', year: 'numeric' }, // like \"January 1, 2016\"\n },\n\n listDay: {\n type: 'list',\n duration: { days: 1 },\n listDayFormat: { weekday: 'long' }, // day-of-week is all we need. full date is probably in headerToolbar\n },\n\n listWeek: {\n type: 'list',\n duration: { weeks: 1 },\n listDayFormat: { weekday: 'long' }, // day-of-week is more important\n listDaySideFormat: { month: 'long', day: 'numeric', year: 'numeric' },\n },\n\n listMonth: {\n type: 'list',\n duration: { month: 1 },\n listDaySideFormat: { weekday: 'long' }, // day-of-week is nice-to-have\n },\n\n listYear: {\n type: 'list',\n duration: { year: 1 },\n listDaySideFormat: { weekday: 'long' }, // day-of-week is nice-to-have\n },\n\n },\n})\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "@fullcalendar/list",
3
- "version": "5.11.2",
3
+ "version": "6.0.0-beta.1",
4
4
  "title": "FullCalendar List View Plugin",
5
5
  "description": "View your events as a bulleted list",
6
6
  "docs": "https://fullcalendar.io/docs/list-view",
7
7
  "dependencies": {
8
- "@fullcalendar/common": "~5.11.2",
8
+ "@fullcalendar/common": "6.0.0-beta.1",
9
9
  "tslib": "^2.1.0"
10
10
  },
11
11
  "main": "main.cjs.js",
@@ -27,6 +27,6 @@
27
27
  "url": "http://arshaw.com/"
28
28
  },
29
29
  "devDependencies": {
30
- "@fullcalendar/core-preact": "5.11.2"
30
+ "@fullcalendar/core-preact": "6.0.0-beta.1"
31
31
  }
32
32
  }