@fullcalendar/list 5.7.2 → 5.10.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 +40 -31
- package/main.css +17 -0
- package/main.d.ts +5 -0
- package/main.global.js +40 -31
- package/main.global.min.js +2 -2
- package/main.js +41 -32
- package/main.js.map +1 -1
- package/main.min.css +1 -1
- package/package.json +4 -4
package/main.cjs.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
FullCalendar v5.
|
|
2
|
+
FullCalendar v5.10.1
|
|
3
3
|
Docs & License: https://fullcalendar.io/
|
|
4
4
|
(c) 2021 Adam Shaw
|
|
5
5
|
*/
|
|
@@ -14,37 +14,36 @@ var tslib = require('tslib');
|
|
|
14
14
|
var ListViewHeaderRow = /** @class */ (function (_super) {
|
|
15
15
|
tslib.__extends(ListViewHeaderRow, _super);
|
|
16
16
|
function ListViewHeaderRow() {
|
|
17
|
-
|
|
17
|
+
var _this = _super !== null && _super.apply(this, arguments) || this;
|
|
18
|
+
_this.state = {
|
|
19
|
+
textId: common.getUniqueDomId(),
|
|
20
|
+
};
|
|
21
|
+
return _this;
|
|
18
22
|
}
|
|
19
23
|
ListViewHeaderRow.prototype.render = function () {
|
|
20
|
-
var _a = this.
|
|
21
|
-
var _b = this.
|
|
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;
|
|
22
27
|
var dayMeta = common.getDateMeta(dayDate, todayRange);
|
|
23
28
|
// will ever be falsy?
|
|
24
29
|
var text = options.listDayFormat ? dateEnv.format(dayDate, options.listDayFormat) : '';
|
|
25
30
|
// will ever be falsy? also, BAD NAME "alt"
|
|
26
31
|
var sideText = options.listDaySideFormat ? dateEnv.format(dayDate, options.listDaySideFormat) : '';
|
|
27
|
-
var
|
|
28
|
-
|
|
29
|
-
:
|
|
30
|
-
var hookProps = tslib.__assign({ date: dateEnv.toDate(dayDate), view: viewApi, text: text,
|
|
31
|
-
sideText: sideText,
|
|
32
|
-
navLinkData: navLinkData }, dayMeta);
|
|
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);
|
|
33
35
|
var classNames = ['fc-list-day'].concat(common.getDayClassNames(dayMeta, theme));
|
|
34
36
|
// TODO: make a reusable HOC for dayHeader (used in daygrid/timegrid too)
|
|
35
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) },
|
|
36
|
-
common.createElement("th", { colSpan: 3 },
|
|
38
|
+
common.createElement("th", { scope: "colgroup", colSpan: 3, id: cellId, "aria-labelledby": textId },
|
|
37
39
|
common.createElement("div", { className: 'fc-list-day-cushion ' + theme.getClass('tableCellShaded'), ref: innerElRef }, innerContent)))); }));
|
|
38
40
|
};
|
|
39
41
|
return ListViewHeaderRow;
|
|
40
42
|
}(common.BaseComponent));
|
|
41
43
|
function renderInnerContent(props) {
|
|
42
|
-
var navLinkAttrs = props.navLinkData // is there a type for this?
|
|
43
|
-
? { 'data-navlink': props.navLinkData, tabIndex: 0 }
|
|
44
|
-
: {};
|
|
45
44
|
return (common.createElement(common.Fragment, null,
|
|
46
|
-
props.text && (common.createElement("a", tslib.__assign({ className: "fc-list-day-text" }, navLinkAttrs), props.text)),
|
|
47
|
-
props.sideText && (common.createElement("a", tslib.__assign({ className: "fc-list-day-side-text" },
|
|
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))));
|
|
48
47
|
}
|
|
49
48
|
|
|
50
49
|
var DEFAULT_TIME_FORMAT = common.createFormatter({
|
|
@@ -59,24 +58,22 @@ var ListViewEventRow = /** @class */ (function (_super) {
|
|
|
59
58
|
}
|
|
60
59
|
ListViewEventRow.prototype.render = function () {
|
|
61
60
|
var _a = this, props = _a.props, context = _a.context;
|
|
62
|
-
var seg = props.seg;
|
|
61
|
+
var seg = props.seg, timeHeaderId = props.timeHeaderId, eventHeaderId = props.eventHeaderId, dateHeaderId = props.dateHeaderId;
|
|
63
62
|
var timeFormat = context.options.eventTimeFormat || DEFAULT_TIME_FORMAT;
|
|
64
63
|
return (common.createElement(common.EventRoot, { seg: seg, timeText: "" // BAD. because of all-day content
|
|
65
|
-
, disableDragging: true, disableResizing: true, defaultContent: renderEventInnerContent, 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 },
|
|
66
|
-
buildTimeContent(seg, timeFormat, context),
|
|
67
|
-
common.createElement("td", { className: "fc-list-event-graphic" },
|
|
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 },
|
|
65
|
+
buildTimeContent(seg, timeFormat, context, timeHeaderId, dateHeaderId),
|
|
66
|
+
common.createElement("td", { "aria-hidden": true, className: "fc-list-event-graphic" },
|
|
68
67
|
common.createElement("span", { className: "fc-list-event-dot", style: { borderColor: hookProps.borderColor || hookProps.backgroundColor } })),
|
|
69
|
-
common.createElement("td", { className: "fc-list-event-title"
|
|
68
|
+
common.createElement("td", { ref: innerElRef, headers: eventHeaderId + " " + dateHeaderId, className: "fc-list-event-title" }, innerContent))); }));
|
|
70
69
|
};
|
|
71
70
|
return ListViewEventRow;
|
|
72
71
|
}(common.BaseComponent));
|
|
73
|
-
function renderEventInnerContent(
|
|
74
|
-
var
|
|
75
|
-
|
|
76
|
-
var anchorAttrs = url ? { href: url } : {};
|
|
77
|
-
return (common.createElement("a", tslib.__assign({}, anchorAttrs), event.title));
|
|
72
|
+
function renderEventInnerContent(seg, context) {
|
|
73
|
+
var interactiveAttrs = common.getSegAnchorAttrs(seg, context);
|
|
74
|
+
return (common.createElement("a", tslib.__assign({}, interactiveAttrs), seg.eventRange.def.title));
|
|
78
75
|
}
|
|
79
|
-
function buildTimeContent(seg, timeFormat, context) {
|
|
76
|
+
function buildTimeContent(seg, timeFormat, context, timeHeaderId, dateHeaderId) {
|
|
80
77
|
var options = context.options;
|
|
81
78
|
if (options.displayEventTime !== false) {
|
|
82
79
|
var eventDef = seg.eventRange.def;
|
|
@@ -105,7 +102,7 @@ function buildTimeContent(seg, timeFormat, context) {
|
|
|
105
102
|
text: context.options.allDayText,
|
|
106
103
|
view: context.viewApi,
|
|
107
104
|
};
|
|
108
|
-
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", { className: ['fc-list-event-time'].concat(classNames).join(' ')
|
|
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)); }));
|
|
109
106
|
}
|
|
110
107
|
return (common.createElement("td", { className: "fc-list-event-time" }, timeText));
|
|
111
108
|
}
|
|
@@ -124,6 +121,11 @@ var ListView = /** @class */ (function (_super) {
|
|
|
124
121
|
var _this = _super !== null && _super.apply(this, arguments) || this;
|
|
125
122
|
_this.computeDateVars = common.memoize(computeDateVars);
|
|
126
123
|
_this.eventStoreToSegs = common.memoize(_this._eventStoreToSegs);
|
|
124
|
+
_this.state = {
|
|
125
|
+
timeHeaderId: common.getUniqueDomId(),
|
|
126
|
+
eventHeaderId: common.getUniqueDomId(),
|
|
127
|
+
dateHeaderIdRoot: common.getUniqueDomId(),
|
|
128
|
+
};
|
|
127
129
|
_this.setRootEl = function (rootEl) {
|
|
128
130
|
if (rootEl) {
|
|
129
131
|
_this.context.registerInteractiveComponent(_this, {
|
|
@@ -162,23 +164,30 @@ var ListView = /** @class */ (function (_super) {
|
|
|
162
164
|
};
|
|
163
165
|
ListView.prototype.renderSegList = function (allSegs, dayDates) {
|
|
164
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;
|
|
165
168
|
var segsByDay = groupSegsByDay(allSegs); // sparse array
|
|
166
169
|
return (common.createElement(common.NowTimer, { unit: "day" }, function (nowDate, todayRange) {
|
|
167
170
|
var innerNodes = [];
|
|
168
171
|
for (var dayIndex = 0; dayIndex < segsByDay.length; dayIndex += 1) {
|
|
169
172
|
var daySegs = segsByDay[dayIndex];
|
|
170
173
|
if (daySegs) { // sparse array, so might be undefined
|
|
171
|
-
var dayStr = dayDates[dayIndex]
|
|
174
|
+
var dayStr = common.formatDayString(dayDates[dayIndex]);
|
|
175
|
+
var dateHeaderId = dateHeaderIdRoot + '-' + dayStr;
|
|
172
176
|
// append a day header
|
|
173
|
-
innerNodes.push(common.createElement(ListViewHeaderRow, { key: dayStr, dayDate: dayDates[dayIndex], todayRange: todayRange }));
|
|
177
|
+
innerNodes.push(common.createElement(ListViewHeaderRow, { key: dayStr, cellId: dateHeaderId, dayDate: dayDates[dayIndex], todayRange: todayRange }));
|
|
174
178
|
daySegs = common.sortEventSegs(daySegs, options.eventOrder);
|
|
175
179
|
for (var _i = 0, daySegs_1 = daySegs; _i < daySegs_1.length; _i++) {
|
|
176
180
|
var seg = daySegs_1[_i];
|
|
177
|
-
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 }, common.getSegMeta(seg, todayRange, nowDate))));
|
|
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))));
|
|
178
182
|
}
|
|
179
183
|
}
|
|
180
184
|
}
|
|
181
185
|
return (common.createElement("table", { className: 'fc-list-table ' + theme.getClass('table') },
|
|
186
|
+
common.createElement("thead", null,
|
|
187
|
+
common.createElement("tr", null,
|
|
188
|
+
common.createElement("th", { scope: "col", id: timeHeaderId }, options.timeHint),
|
|
189
|
+
common.createElement("th", { scope: "col", "aria-hidden": true }),
|
|
190
|
+
common.createElement("th", { scope: "col", id: eventHeaderId }, options.eventHint))),
|
|
182
191
|
common.createElement("tbody", null, innerNodes)));
|
|
183
192
|
}));
|
|
184
193
|
};
|
package/main.css
CHANGED
|
@@ -43,6 +43,23 @@
|
|
|
43
43
|
background: #fff;
|
|
44
44
|
background: var(--fc-page-bg-color, #fff); /* for when headers are styled to be transparent and sticky */
|
|
45
45
|
}
|
|
46
|
+
.fc {
|
|
47
|
+
|
|
48
|
+
/* only exists for aria reasons, hide for non-screen-readers */
|
|
49
|
+
|
|
50
|
+
}
|
|
51
|
+
.fc .fc-list-table thead {
|
|
52
|
+
position: absolute;
|
|
53
|
+
left: -10000px;
|
|
54
|
+
}
|
|
55
|
+
.fc {
|
|
56
|
+
|
|
57
|
+
/* the table's border-style:hidden gets confused by hidden thead. force-hide top border of first cell */
|
|
58
|
+
|
|
59
|
+
}
|
|
60
|
+
.fc .fc-list-table tbody > tr:first-child th {
|
|
61
|
+
border-top: 0;
|
|
62
|
+
}
|
|
46
63
|
.fc .fc-list-table th {
|
|
47
64
|
padding: 0; /* uses an inner-wrapper instead... */
|
|
48
65
|
}
|
package/main.d.ts
CHANGED
|
@@ -9,6 +9,11 @@ declare type NoEventsMountArg = MountArg<NoEventsContentArg>;
|
|
|
9
9
|
declare class ListView extends DateComponent<ViewProps> {
|
|
10
10
|
private computeDateVars;
|
|
11
11
|
private eventStoreToSegs;
|
|
12
|
+
state: {
|
|
13
|
+
timeHeaderId: string;
|
|
14
|
+
eventHeaderId: string;
|
|
15
|
+
dateHeaderIdRoot: string;
|
|
16
|
+
};
|
|
12
17
|
render(): createElement.JSX.Element;
|
|
13
18
|
setRootEl: (rootEl: HTMLDivElement | null) => void;
|
|
14
19
|
renderEmptyMessage(): createElement.JSX.Element;
|
package/main.global.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
FullCalendar v5.
|
|
2
|
+
FullCalendar v5.10.1
|
|
3
3
|
Docs & License: https://fullcalendar.io/
|
|
4
4
|
(c) 2021 Adam Shaw
|
|
5
5
|
*/
|
|
@@ -51,37 +51,36 @@ var FullCalendarList = (function (exports, common) {
|
|
|
51
51
|
var ListViewHeaderRow = /** @class */ (function (_super) {
|
|
52
52
|
__extends(ListViewHeaderRow, _super);
|
|
53
53
|
function ListViewHeaderRow() {
|
|
54
|
-
|
|
54
|
+
var _this = _super !== null && _super.apply(this, arguments) || this;
|
|
55
|
+
_this.state = {
|
|
56
|
+
textId: common.getUniqueDomId(),
|
|
57
|
+
};
|
|
58
|
+
return _this;
|
|
55
59
|
}
|
|
56
60
|
ListViewHeaderRow.prototype.render = function () {
|
|
57
|
-
var _a = this.
|
|
58
|
-
var _b = this.
|
|
61
|
+
var _a = this.context, theme = _a.theme, dateEnv = _a.dateEnv, options = _a.options, viewApi = _a.viewApi;
|
|
62
|
+
var _b = this.props, cellId = _b.cellId, dayDate = _b.dayDate, todayRange = _b.todayRange;
|
|
63
|
+
var textId = this.state.textId;
|
|
59
64
|
var dayMeta = common.getDateMeta(dayDate, todayRange);
|
|
60
65
|
// will ever be falsy?
|
|
61
66
|
var text = options.listDayFormat ? dateEnv.format(dayDate, options.listDayFormat) : '';
|
|
62
67
|
// will ever be falsy? also, BAD NAME "alt"
|
|
63
68
|
var sideText = options.listDaySideFormat ? dateEnv.format(dayDate, options.listDaySideFormat) : '';
|
|
64
|
-
var
|
|
65
|
-
|
|
66
|
-
:
|
|
67
|
-
var hookProps = __assign({ date: dateEnv.toDate(dayDate), view: viewApi, text: text,
|
|
68
|
-
sideText: sideText,
|
|
69
|
-
navLinkData: navLinkData }, dayMeta);
|
|
69
|
+
var hookProps = __assign({ date: dateEnv.toDate(dayDate), view: viewApi, textId: textId,
|
|
70
|
+
text: text,
|
|
71
|
+
sideText: sideText, navLinkAttrs: common.buildNavLinkAttrs(this.context, dayDate), sideNavLinkAttrs: common.buildNavLinkAttrs(this.context, dayDate, 'day', false) }, dayMeta);
|
|
70
72
|
var classNames = ['fc-list-day'].concat(common.getDayClassNames(dayMeta, theme));
|
|
71
73
|
// TODO: make a reusable HOC for dayHeader (used in daygrid/timegrid too)
|
|
72
74
|
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) },
|
|
73
|
-
common.createElement("th", { colSpan: 3 },
|
|
75
|
+
common.createElement("th", { scope: "colgroup", colSpan: 3, id: cellId, "aria-labelledby": textId },
|
|
74
76
|
common.createElement("div", { className: 'fc-list-day-cushion ' + theme.getClass('tableCellShaded'), ref: innerElRef }, innerContent)))); }));
|
|
75
77
|
};
|
|
76
78
|
return ListViewHeaderRow;
|
|
77
79
|
}(common.BaseComponent));
|
|
78
80
|
function renderInnerContent(props) {
|
|
79
|
-
var navLinkAttrs = props.navLinkData // is there a type for this?
|
|
80
|
-
? { 'data-navlink': props.navLinkData, tabIndex: 0 }
|
|
81
|
-
: {};
|
|
82
81
|
return (common.createElement(common.Fragment, null,
|
|
83
|
-
props.text && (common.createElement("a", __assign({ className: "fc-list-day-text" }, navLinkAttrs), props.text)),
|
|
84
|
-
props.sideText && (common.createElement("a", __assign({ className: "fc-list-day-side-text" },
|
|
82
|
+
props.text && (common.createElement("a", __assign({ id: props.textId, className: "fc-list-day-text" }, props.navLinkAttrs), props.text)),
|
|
83
|
+
props.sideText && ( /* not keyboard tabbable */common.createElement("a", __assign({ "aria-hidden": true, className: "fc-list-day-side-text" }, props.sideNavLinkAttrs), props.sideText))));
|
|
85
84
|
}
|
|
86
85
|
|
|
87
86
|
var DEFAULT_TIME_FORMAT = common.createFormatter({
|
|
@@ -96,24 +95,22 @@ var FullCalendarList = (function (exports, common) {
|
|
|
96
95
|
}
|
|
97
96
|
ListViewEventRow.prototype.render = function () {
|
|
98
97
|
var _a = this, props = _a.props, context = _a.context;
|
|
99
|
-
var seg = props.seg;
|
|
98
|
+
var seg = props.seg, timeHeaderId = props.timeHeaderId, eventHeaderId = props.eventHeaderId, dateHeaderId = props.dateHeaderId;
|
|
100
99
|
var timeFormat = context.options.eventTimeFormat || DEFAULT_TIME_FORMAT;
|
|
101
100
|
return (common.createElement(common.EventRoot, { seg: seg, timeText: "" // BAD. because of all-day content
|
|
102
|
-
, disableDragging: true, disableResizing: true, defaultContent: renderEventInnerContent, 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 },
|
|
103
|
-
buildTimeContent(seg, timeFormat, context),
|
|
104
|
-
common.createElement("td", { className: "fc-list-event-graphic" },
|
|
101
|
+
, 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 },
|
|
102
|
+
buildTimeContent(seg, timeFormat, context, timeHeaderId, dateHeaderId),
|
|
103
|
+
common.createElement("td", { "aria-hidden": true, className: "fc-list-event-graphic" },
|
|
105
104
|
common.createElement("span", { className: "fc-list-event-dot", style: { borderColor: hookProps.borderColor || hookProps.backgroundColor } })),
|
|
106
|
-
common.createElement("td", { className: "fc-list-event-title"
|
|
105
|
+
common.createElement("td", { ref: innerElRef, headers: eventHeaderId + " " + dateHeaderId, className: "fc-list-event-title" }, innerContent))); }));
|
|
107
106
|
};
|
|
108
107
|
return ListViewEventRow;
|
|
109
108
|
}(common.BaseComponent));
|
|
110
|
-
function renderEventInnerContent(
|
|
111
|
-
var
|
|
112
|
-
|
|
113
|
-
var anchorAttrs = url ? { href: url } : {};
|
|
114
|
-
return (common.createElement("a", __assign({}, anchorAttrs), event.title));
|
|
109
|
+
function renderEventInnerContent(seg, context) {
|
|
110
|
+
var interactiveAttrs = common.getSegAnchorAttrs(seg, context);
|
|
111
|
+
return (common.createElement("a", __assign({}, interactiveAttrs), seg.eventRange.def.title));
|
|
115
112
|
}
|
|
116
|
-
function buildTimeContent(seg, timeFormat, context) {
|
|
113
|
+
function buildTimeContent(seg, timeFormat, context, timeHeaderId, dateHeaderId) {
|
|
117
114
|
var options = context.options;
|
|
118
115
|
if (options.displayEventTime !== false) {
|
|
119
116
|
var eventDef = seg.eventRange.def;
|
|
@@ -142,7 +139,7 @@ var FullCalendarList = (function (exports, common) {
|
|
|
142
139
|
text: context.options.allDayText,
|
|
143
140
|
view: context.viewApi,
|
|
144
141
|
};
|
|
145
|
-
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", { className: ['fc-list-event-time'].concat(classNames).join(' ')
|
|
142
|
+
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)); }));
|
|
146
143
|
}
|
|
147
144
|
return (common.createElement("td", { className: "fc-list-event-time" }, timeText));
|
|
148
145
|
}
|
|
@@ -161,6 +158,11 @@ var FullCalendarList = (function (exports, common) {
|
|
|
161
158
|
var _this = _super !== null && _super.apply(this, arguments) || this;
|
|
162
159
|
_this.computeDateVars = common.memoize(computeDateVars);
|
|
163
160
|
_this.eventStoreToSegs = common.memoize(_this._eventStoreToSegs);
|
|
161
|
+
_this.state = {
|
|
162
|
+
timeHeaderId: common.getUniqueDomId(),
|
|
163
|
+
eventHeaderId: common.getUniqueDomId(),
|
|
164
|
+
dateHeaderIdRoot: common.getUniqueDomId(),
|
|
165
|
+
};
|
|
164
166
|
_this.setRootEl = function (rootEl) {
|
|
165
167
|
if (rootEl) {
|
|
166
168
|
_this.context.registerInteractiveComponent(_this, {
|
|
@@ -199,23 +201,30 @@ var FullCalendarList = (function (exports, common) {
|
|
|
199
201
|
};
|
|
200
202
|
ListView.prototype.renderSegList = function (allSegs, dayDates) {
|
|
201
203
|
var _a = this.context, theme = _a.theme, options = _a.options;
|
|
204
|
+
var _b = this.state, timeHeaderId = _b.timeHeaderId, eventHeaderId = _b.eventHeaderId, dateHeaderIdRoot = _b.dateHeaderIdRoot;
|
|
202
205
|
var segsByDay = groupSegsByDay(allSegs); // sparse array
|
|
203
206
|
return (common.createElement(common.NowTimer, { unit: "day" }, function (nowDate, todayRange) {
|
|
204
207
|
var innerNodes = [];
|
|
205
208
|
for (var dayIndex = 0; dayIndex < segsByDay.length; dayIndex += 1) {
|
|
206
209
|
var daySegs = segsByDay[dayIndex];
|
|
207
210
|
if (daySegs) { // sparse array, so might be undefined
|
|
208
|
-
var dayStr = dayDates[dayIndex]
|
|
211
|
+
var dayStr = common.formatDayString(dayDates[dayIndex]);
|
|
212
|
+
var dateHeaderId = dateHeaderIdRoot + '-' + dayStr;
|
|
209
213
|
// append a day header
|
|
210
|
-
innerNodes.push(common.createElement(ListViewHeaderRow, { key: dayStr, dayDate: dayDates[dayIndex], todayRange: todayRange }));
|
|
214
|
+
innerNodes.push(common.createElement(ListViewHeaderRow, { key: dayStr, cellId: dateHeaderId, dayDate: dayDates[dayIndex], todayRange: todayRange }));
|
|
211
215
|
daySegs = common.sortEventSegs(daySegs, options.eventOrder);
|
|
212
216
|
for (var _i = 0, daySegs_1 = daySegs; _i < daySegs_1.length; _i++) {
|
|
213
217
|
var seg = daySegs_1[_i];
|
|
214
|
-
innerNodes.push(common.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 }, common.getSegMeta(seg, todayRange, nowDate))));
|
|
218
|
+
innerNodes.push(common.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 }, common.getSegMeta(seg, todayRange, nowDate))));
|
|
215
219
|
}
|
|
216
220
|
}
|
|
217
221
|
}
|
|
218
222
|
return (common.createElement("table", { className: 'fc-list-table ' + theme.getClass('table') },
|
|
223
|
+
common.createElement("thead", null,
|
|
224
|
+
common.createElement("tr", null,
|
|
225
|
+
common.createElement("th", { scope: "col", id: timeHeaderId }, options.timeHint),
|
|
226
|
+
common.createElement("th", { scope: "col", "aria-hidden": true }),
|
|
227
|
+
common.createElement("th", { scope: "col", id: eventHeaderId }, options.eventHint))),
|
|
219
228
|
common.createElement("tbody", null, innerNodes)));
|
|
220
229
|
}));
|
|
221
230
|
};
|
package/main.global.min.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
FullCalendar v5.
|
|
2
|
+
FullCalendar v5.10.1
|
|
3
3
|
Docs & License: https://fullcalendar.io/
|
|
4
4
|
(c) 2021 Adam Shaw
|
|
5
5
|
*/
|
|
6
|
-
var FullCalendarList=function(e,t){"use strict";var n=function(e,t){return(n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])})(e,t)};function a(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function a(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(a.prototype=t.prototype,new a)}var r=function(){return(r=Object.assign||function(e){for(var t,n=1,a=arguments.length;n<a;n++)for(var r in t=arguments[n])Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e}).apply(this,arguments)},i=function(e){function n(){
|
|
6
|
+
var FullCalendarList=function(e,t){"use strict";var n=function(e,t){return(n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])})(e,t)};function a(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function a(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(a.prototype=t.prototype,new a)}var r=function(){return(r=Object.assign||function(e){for(var t,n=1,a=arguments.length;n<a;n++)for(var r in t=arguments[n])Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e}).apply(this,arguments)},i=function(e){function n(){var n=null!==e&&e.apply(this,arguments)||this;return n.state={textId:t.getUniqueDomId()},n}return a(n,e),n.prototype.render=function(){var e=this.context,n=e.theme,a=e.dateEnv,i=e.options,s=e.viewApi,l=this.props,d=l.cellId,c=l.dayDate,u=l.todayRange,m=this.state.textId,v=t.getDateMeta(c,u),y=i.listDayFormat?a.format(c,i.listDayFormat):"",f=i.listDaySideFormat?a.format(c,i.listDaySideFormat):"",g=r({date:a.toDate(c),view:s,textId:m,text:y,sideText:f,navLinkAttrs:t.buildNavLinkAttrs(this.context,c),sideNavLinkAttrs:t.buildNavLinkAttrs(this.context,c,"day",!1)},v),p=["fc-list-day"].concat(t.getDayClassNames(v,n));return t.createElement(t.RenderHook,{hookProps:g,classNames:i.dayHeaderClassNames,content:i.dayHeaderContent,defaultContent:o,didMount:i.dayHeaderDidMount,willUnmount:i.dayHeaderWillUnmount},(function(e,a,r,i){return t.createElement("tr",{ref:e,className:p.concat(a).join(" "),"data-date":t.formatDayString(c)},t.createElement("th",{scope:"colgroup",colSpan:3,id:d,"aria-labelledby":m},t.createElement("div",{className:"fc-list-day-cushion "+n.getClass("tableCellShaded"),ref:r},i)))}))},n}(t.BaseComponent);function o(e){return t.createElement(t.Fragment,null,e.text&&t.createElement("a",r({id:e.textId,className:"fc-list-day-text"},e.navLinkAttrs),e.text),e.sideText&&t.createElement("a",r({"aria-hidden":!0,className:"fc-list-day-side-text"},e.sideNavLinkAttrs),e.sideText))}var s=t.createFormatter({hour:"numeric",minute:"2-digit",meridiem:"short"}),l=function(e){function n(){return null!==e&&e.apply(this,arguments)||this}return a(n,e),n.prototype.render=function(){var e=this.props,n=this.context,a=e.seg,i=e.timeHeaderId,o=e.eventHeaderId,l=e.dateHeaderId,c=n.options.eventTimeFormat||s;return t.createElement(t.EventRoot,{seg:a,timeText:"",disableDragging:!0,disableResizing:!0,defaultContent:function(){return function(e,n){var a=t.getSegAnchorAttrs(e,n);return t.createElement("a",r({},a),e.eventRange.def.title)}(a,n)},isPast:e.isPast,isFuture:e.isFuture,isToday:e.isToday,isSelected:e.isSelected,isDragging:e.isDragging,isResizing:e.isResizing,isDateSelecting:e.isDateSelecting},(function(e,r,s,u,m){return t.createElement("tr",{className:["fc-list-event",m.event.url?"fc-event-forced-url":""].concat(r).join(" "),ref:e},function(e,n,a,r,i){var o=a.options;if(!1!==o.displayEventTime){var s=e.eventRange.def,l=e.eventRange.instance,c=!1,u=void 0;if(s.allDay?c=!0:t.isMultiDayRange(e.eventRange.range)?e.isStart?u=t.buildSegTimeText(e,n,a,null,null,l.range.start,e.end):e.isEnd?u=t.buildSegTimeText(e,n,a,null,null,e.start,l.range.end):c=!0:u=t.buildSegTimeText(e,n,a),c){var m={text:a.options.allDayText,view:a.viewApi};return t.createElement(t.RenderHook,{hookProps:m,classNames:o.allDayClassNames,content:o.allDayContent,defaultContent:d,didMount:o.allDayDidMount,willUnmount:o.allDayWillUnmount},(function(e,n,a,o){return t.createElement("td",{ref:e,headers:r+" "+i,className:["fc-list-event-time"].concat(n).join(" ")},o)}))}return t.createElement("td",{className:"fc-list-event-time"},u)}return null}(a,c,n,i,l),t.createElement("td",{"aria-hidden":!0,className:"fc-list-event-graphic"},t.createElement("span",{className:"fc-list-event-dot",style:{borderColor:m.borderColor||m.backgroundColor}})),t.createElement("td",{ref:s,headers:o+" "+l,className:"fc-list-event-title"},u))}))},n}(t.BaseComponent);function d(e){return e.text}var c=function(e){function n(){var n=null!==e&&e.apply(this,arguments)||this;return n.computeDateVars=t.memoize(m),n.eventStoreToSegs=t.memoize(n._eventStoreToSegs),n.state={timeHeaderId:t.getUniqueDomId(),eventHeaderId:t.getUniqueDomId(),dateHeaderIdRoot:t.getUniqueDomId()},n.setRootEl=function(e){e?n.context.registerInteractiveComponent(n,{el:e}):n.context.unregisterInteractiveComponent(n)},n}return a(n,e),n.prototype.render=function(){var e=this,n=this.props,a=this.context,r=["fc-list",a.theme.getClass("table"),!1!==a.options.stickyHeaderDates?"fc-list-sticky":""],i=this.computeDateVars(n.dateProfile),o=i.dayDates,s=i.dayRanges,l=this.eventStoreToSegs(n.eventStore,n.eventUiBases,s);return t.createElement(t.ViewRoot,{viewSpec:a.viewSpec,elRef:this.setRootEl},(function(a,i){return t.createElement("div",{ref:a,className:r.concat(i).join(" ")},t.createElement(t.Scroller,{liquid:!n.isHeightAuto,overflowX:n.isHeightAuto?"visible":"hidden",overflowY:n.isHeightAuto?"visible":"auto"},l.length>0?e.renderSegList(l,o):e.renderEmptyMessage()))}))},n.prototype.renderEmptyMessage=function(){var e=this.context,n=e.options,a=e.viewApi,r={text:n.noEventsText,view:a};return t.createElement(t.RenderHook,{hookProps:r,classNames:n.noEventsClassNames,content:n.noEventsContent,defaultContent:u,didMount:n.noEventsDidMount,willUnmount:n.noEventsWillUnmount},(function(e,n,a,r){return t.createElement("div",{className:["fc-list-empty"].concat(n).join(" "),ref:e},t.createElement("div",{className:"fc-list-empty-cushion",ref:a},r))}))},n.prototype.renderSegList=function(e,n){var a=this.context,o=a.theme,s=a.options,d=this.state,c=d.timeHeaderId,u=d.eventHeaderId,m=d.dateHeaderIdRoot,v=function(e){var t,n,a=[];for(t=0;t<e.length;t+=1)(a[(n=e[t]).dayIndex]||(a[n.dayIndex]=[])).push(n);return a}(e);return t.createElement(t.NowTimer,{unit:"day"},(function(e,a){for(var d=[],y=0;y<v.length;y+=1){var f=v[y];if(f){var g=t.formatDayString(n[y]),p=m+"-"+g;d.push(t.createElement(i,{key:g,cellId:p,dayDate:n[y],todayRange:a}));for(var h=0,E=f=t.sortEventSegs(f,s.eventOrder);h<E.length;h++){var D=E[h];d.push(t.createElement(l,r({key:g+":"+D.eventRange.instance.instanceId,seg:D,isDragging:!1,isResizing:!1,isDateSelecting:!1,isSelected:!1,timeHeaderId:c,eventHeaderId:u,dateHeaderId:p},t.getSegMeta(D,a,e))))}}}return t.createElement("table",{className:"fc-list-table "+o.getClass("table")},t.createElement("thead",null,t.createElement("tr",null,t.createElement("th",{scope:"col",id:c},s.timeHint),t.createElement("th",{scope:"col","aria-hidden":!0}),t.createElement("th",{scope:"col",id:u},s.eventHint))),t.createElement("tbody",null,d))}))},n.prototype._eventStoreToSegs=function(e,n,a){return this.eventRangesToSegs(t.sliceEventStore(e,n,this.props.dateProfile.activeRange,this.context.options.nextDayThreshold).fg,a)},n.prototype.eventRangesToSegs=function(e,t){for(var n=[],a=0,r=e;a<r.length;a++){var i=r[a];n.push.apply(n,this.eventRangeToSegs(i,t))}return n},n.prototype.eventRangeToSegs=function(e,n){var a,r,i,o=this.context.dateEnv,s=this.context.options.nextDayThreshold,l=e.range,d=e.def.allDay,c=[];for(a=0;a<n.length;a+=1)if((r=t.intersectRanges(l,n[a]))&&(i={component:this,eventRange:e,start:r.start,end:r.end,isStart:e.isStart&&r.start.valueOf()===l.start.valueOf(),isEnd:e.isEnd&&r.end.valueOf()===l.end.valueOf(),dayIndex:a},c.push(i),!i.isEnd&&!d&&a+1<n.length&&l.end<o.add(n[a+1].start,s))){i.end=l.end,i.isEnd=!0;break}return c},n}(t.DateComponent);function u(e){return e.text}function m(e){for(var n=t.startOfDay(e.renderRange.start),a=e.renderRange.end,r=[],i=[];n<a;)r.push(n),i.push({start:n,end:t.addDays(n,1)}),n=t.addDays(n,1);return{dayDates:r,dayRanges:i}}var v={listDayFormat:y,listDaySideFormat:y,noEventsClassNames:t.identity,noEventsContent:t.identity,noEventsDidMount:t.identity,noEventsWillUnmount:t.identity};function y(e){return!1===e?null:t.createFormatter(e)}var f=t.createPlugin({optionRefiners:v,views:{list:{component:c,buttonTextKey:"list",listDayFormat:{month:"long",day:"numeric",year:"numeric"}},listDay:{type:"list",duration:{days:1},listDayFormat:{weekday:"long"}},listWeek:{type:"list",duration:{weeks:1},listDayFormat:{weekday:"long"},listDaySideFormat:{month:"long",day:"numeric",year:"numeric"}},listMonth:{type:"list",duration:{month:1},listDaySideFormat:{weekday:"long"}},listYear:{type:"list",duration:{year:1},listDaySideFormat:{weekday:"long"}}}});return t.globalPlugins.push(f),e.ListView=c,e.default=f,Object.defineProperty(e,"__esModule",{value:!0}),e}({},FullCalendar);
|
package/main.js
CHANGED
|
@@ -1,47 +1,46 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
FullCalendar v5.
|
|
2
|
+
FullCalendar v5.10.1
|
|
3
3
|
Docs & License: https://fullcalendar.io/
|
|
4
4
|
(c) 2021 Adam Shaw
|
|
5
5
|
*/
|
|
6
6
|
import './main.css';
|
|
7
7
|
|
|
8
|
-
import { getDateMeta,
|
|
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
9
|
import { __extends, __assign } from 'tslib';
|
|
10
10
|
|
|
11
11
|
var ListViewHeaderRow = /** @class */ (function (_super) {
|
|
12
12
|
__extends(ListViewHeaderRow, _super);
|
|
13
13
|
function ListViewHeaderRow() {
|
|
14
|
-
|
|
14
|
+
var _this = _super !== null && _super.apply(this, arguments) || this;
|
|
15
|
+
_this.state = {
|
|
16
|
+
textId: getUniqueDomId(),
|
|
17
|
+
};
|
|
18
|
+
return _this;
|
|
15
19
|
}
|
|
16
20
|
ListViewHeaderRow.prototype.render = function () {
|
|
17
|
-
var _a = this.
|
|
18
|
-
var _b = this.
|
|
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;
|
|
19
24
|
var dayMeta = getDateMeta(dayDate, todayRange);
|
|
20
25
|
// will ever be falsy?
|
|
21
26
|
var text = options.listDayFormat ? dateEnv.format(dayDate, options.listDayFormat) : '';
|
|
22
27
|
// will ever be falsy? also, BAD NAME "alt"
|
|
23
28
|
var sideText = options.listDaySideFormat ? dateEnv.format(dayDate, options.listDaySideFormat) : '';
|
|
24
|
-
var
|
|
25
|
-
|
|
26
|
-
:
|
|
27
|
-
var hookProps = __assign({ date: dateEnv.toDate(dayDate), view: viewApi, text: text,
|
|
28
|
-
sideText: sideText,
|
|
29
|
-
navLinkData: navLinkData }, dayMeta);
|
|
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);
|
|
30
32
|
var classNames = ['fc-list-day'].concat(getDayClassNames(dayMeta, theme));
|
|
31
33
|
// TODO: make a reusable HOC for dayHeader (used in daygrid/timegrid too)
|
|
32
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) },
|
|
33
|
-
createElement("th", { colSpan: 3 },
|
|
35
|
+
createElement("th", { scope: "colgroup", colSpan: 3, id: cellId, "aria-labelledby": textId },
|
|
34
36
|
createElement("div", { className: 'fc-list-day-cushion ' + theme.getClass('tableCellShaded'), ref: innerElRef }, innerContent)))); }));
|
|
35
37
|
};
|
|
36
38
|
return ListViewHeaderRow;
|
|
37
39
|
}(BaseComponent));
|
|
38
40
|
function renderInnerContent(props) {
|
|
39
|
-
var navLinkAttrs = props.navLinkData // is there a type for this?
|
|
40
|
-
? { 'data-navlink': props.navLinkData, tabIndex: 0 }
|
|
41
|
-
: {};
|
|
42
41
|
return (createElement(Fragment, null,
|
|
43
|
-
props.text && (createElement("a", __assign({ className: "fc-list-day-text" }, navLinkAttrs), props.text)),
|
|
44
|
-
props.sideText && (createElement("a", __assign({ className: "fc-list-day-side-text" },
|
|
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))));
|
|
45
44
|
}
|
|
46
45
|
|
|
47
46
|
var DEFAULT_TIME_FORMAT = createFormatter({
|
|
@@ -56,24 +55,22 @@ var ListViewEventRow = /** @class */ (function (_super) {
|
|
|
56
55
|
}
|
|
57
56
|
ListViewEventRow.prototype.render = function () {
|
|
58
57
|
var _a = this, props = _a.props, context = _a.context;
|
|
59
|
-
var seg = props.seg;
|
|
58
|
+
var seg = props.seg, timeHeaderId = props.timeHeaderId, eventHeaderId = props.eventHeaderId, dateHeaderId = props.dateHeaderId;
|
|
60
59
|
var timeFormat = context.options.eventTimeFormat || DEFAULT_TIME_FORMAT;
|
|
61
60
|
return (createElement(EventRoot, { seg: seg, timeText: "" // BAD. because of all-day content
|
|
62
|
-
, disableDragging: true, disableResizing: true, defaultContent: renderEventInnerContent, 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 },
|
|
63
|
-
buildTimeContent(seg, timeFormat, context),
|
|
64
|
-
createElement("td", { className: "fc-list-event-graphic" },
|
|
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 },
|
|
62
|
+
buildTimeContent(seg, timeFormat, context, timeHeaderId, dateHeaderId),
|
|
63
|
+
createElement("td", { "aria-hidden": true, className: "fc-list-event-graphic" },
|
|
65
64
|
createElement("span", { className: "fc-list-event-dot", style: { borderColor: hookProps.borderColor || hookProps.backgroundColor } })),
|
|
66
|
-
createElement("td", { className: "fc-list-event-title"
|
|
65
|
+
createElement("td", { ref: innerElRef, headers: eventHeaderId + " " + dateHeaderId, className: "fc-list-event-title" }, innerContent))); }));
|
|
67
66
|
};
|
|
68
67
|
return ListViewEventRow;
|
|
69
68
|
}(BaseComponent));
|
|
70
|
-
function renderEventInnerContent(
|
|
71
|
-
var
|
|
72
|
-
|
|
73
|
-
var anchorAttrs = url ? { href: url } : {};
|
|
74
|
-
return (createElement("a", __assign({}, anchorAttrs), event.title));
|
|
69
|
+
function renderEventInnerContent(seg, context) {
|
|
70
|
+
var interactiveAttrs = getSegAnchorAttrs(seg, context);
|
|
71
|
+
return (createElement("a", __assign({}, interactiveAttrs), seg.eventRange.def.title));
|
|
75
72
|
}
|
|
76
|
-
function buildTimeContent(seg, timeFormat, context) {
|
|
73
|
+
function buildTimeContent(seg, timeFormat, context, timeHeaderId, dateHeaderId) {
|
|
77
74
|
var options = context.options;
|
|
78
75
|
if (options.displayEventTime !== false) {
|
|
79
76
|
var eventDef = seg.eventRange.def;
|
|
@@ -102,7 +99,7 @@ function buildTimeContent(seg, timeFormat, context) {
|
|
|
102
99
|
text: context.options.allDayText,
|
|
103
100
|
view: context.viewApi,
|
|
104
101
|
};
|
|
105
|
-
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", { className: ['fc-list-event-time'].concat(classNames).join(' ')
|
|
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)); }));
|
|
106
103
|
}
|
|
107
104
|
return (createElement("td", { className: "fc-list-event-time" }, timeText));
|
|
108
105
|
}
|
|
@@ -121,6 +118,11 @@ var ListView = /** @class */ (function (_super) {
|
|
|
121
118
|
var _this = _super !== null && _super.apply(this, arguments) || this;
|
|
122
119
|
_this.computeDateVars = memoize(computeDateVars);
|
|
123
120
|
_this.eventStoreToSegs = memoize(_this._eventStoreToSegs);
|
|
121
|
+
_this.state = {
|
|
122
|
+
timeHeaderId: getUniqueDomId(),
|
|
123
|
+
eventHeaderId: getUniqueDomId(),
|
|
124
|
+
dateHeaderIdRoot: getUniqueDomId(),
|
|
125
|
+
};
|
|
124
126
|
_this.setRootEl = function (rootEl) {
|
|
125
127
|
if (rootEl) {
|
|
126
128
|
_this.context.registerInteractiveComponent(_this, {
|
|
@@ -159,23 +161,30 @@ var ListView = /** @class */ (function (_super) {
|
|
|
159
161
|
};
|
|
160
162
|
ListView.prototype.renderSegList = function (allSegs, dayDates) {
|
|
161
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;
|
|
162
165
|
var segsByDay = groupSegsByDay(allSegs); // sparse array
|
|
163
166
|
return (createElement(NowTimer, { unit: "day" }, function (nowDate, todayRange) {
|
|
164
167
|
var innerNodes = [];
|
|
165
168
|
for (var dayIndex = 0; dayIndex < segsByDay.length; dayIndex += 1) {
|
|
166
169
|
var daySegs = segsByDay[dayIndex];
|
|
167
170
|
if (daySegs) { // sparse array, so might be undefined
|
|
168
|
-
var dayStr = dayDates[dayIndex]
|
|
171
|
+
var dayStr = formatDayString(dayDates[dayIndex]);
|
|
172
|
+
var dateHeaderId = dateHeaderIdRoot + '-' + dayStr;
|
|
169
173
|
// append a day header
|
|
170
|
-
innerNodes.push(createElement(ListViewHeaderRow, { key: dayStr, dayDate: dayDates[dayIndex], todayRange: todayRange }));
|
|
174
|
+
innerNodes.push(createElement(ListViewHeaderRow, { key: dayStr, cellId: dateHeaderId, dayDate: dayDates[dayIndex], todayRange: todayRange }));
|
|
171
175
|
daySegs = sortEventSegs(daySegs, options.eventOrder);
|
|
172
176
|
for (var _i = 0, daySegs_1 = daySegs; _i < daySegs_1.length; _i++) {
|
|
173
177
|
var seg = daySegs_1[_i];
|
|
174
|
-
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 }, getSegMeta(seg, todayRange, nowDate))));
|
|
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))));
|
|
175
179
|
}
|
|
176
180
|
}
|
|
177
181
|
}
|
|
178
182
|
return (createElement("table", { className: 'fc-list-table ' + theme.getClass('table') },
|
|
183
|
+
createElement("thead", null,
|
|
184
|
+
createElement("tr", null,
|
|
185
|
+
createElement("th", { scope: "col", id: timeHeaderId }, options.timeHint),
|
|
186
|
+
createElement("th", { scope: "col", "aria-hidden": true }),
|
|
187
|
+
createElement("th", { scope: "col", id: eventHeaderId }, options.eventHint))),
|
|
179
188
|
createElement("tbody", null, innerNodes)));
|
|
180
189
|
}));
|
|
181
190
|
};
|
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, buildNavLinkData, DayHeaderContentArg, getDayClassNames, formatDayString, Fragment,\n} from '@fullcalendar/common'\n\nexport interface ListViewHeaderRowProps {\n dayDate: DateMarker\n todayRange: DateRange\n}\n\ninterface HookProps extends DayHeaderContentArg { // doesn't enforce much since DayCellContentArg allow extra props\n text: string\n sideText: string\n}\n\nexport class ListViewHeaderRow extends BaseComponent<ListViewHeaderRowProps> {\n render() {\n let { dayDate, todayRange } = this.props\n let { theme, dateEnv, options, viewApi } = this.context\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 navLinkData = options.navLinks\n ? buildNavLinkData(dayDate)\n : null\n\n let hookProps: HookProps = {\n date: dateEnv.toDate(dayDate),\n view: viewApi,\n text,\n sideText,\n navLinkData,\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 <th colSpan={3}>\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 let navLinkAttrs = props.navLinkData // is there a type for this?\n ? { 'data-navlink': props.navLinkData, tabIndex: 0 }\n : {}\n\n return (\n <Fragment>\n {props.text && (\n <a className=\"fc-list-day-text\" {...navLinkAttrs}>\n {props.text}\n </a>\n )}\n {props.sideText && (\n <a className=\"fc-list-day-side-text\" {...navLinkAttrs}>\n {props.sideText}\n </a>\n )}\n </Fragment>\n )\n}\n","import {\n MinimalEventProps, BaseComponent, ViewContext, createElement, AllDayContentArg,\n Seg, isMultiDayRange, DateFormatter, buildSegTimeText, createFormatter, EventContentArg, EventRoot, ComponentChildren, RenderHook,\n} from '@fullcalendar/common'\n\nconst DEFAULT_TIME_FORMAT = createFormatter({\n hour: 'numeric',\n minute: '2-digit',\n meridiem: 'short',\n})\n\nexport class ListViewEventRow extends BaseComponent<MinimalEventProps> {\n render() {\n let { props, context } = this\n let { seg } = props\n\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}\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)}\n <td className=\"fc-list-event-graphic\">\n <span className=\"fc-list-event-dot\" style={{ borderColor: hookProps.borderColor || hookProps.backgroundColor }} />\n </td>\n <td className=\"fc-list-event-title\" ref={innerElRef}>\n {innerContent}\n </td>\n </tr>\n )}\n </EventRoot>\n )\n }\n}\n\nfunction renderEventInnerContent(props: EventContentArg) {\n let { event } = props\n let url = event.url\n let anchorAttrs = url ? { href: url } : {}\n\n return (\n <a {...anchorAttrs}>\n {/* TODO: document how whole row become clickable */}\n {event.title}\n </a>\n )\n}\n\nfunction buildTimeContent(seg: Seg, timeFormat: DateFormatter, context: ViewContext): 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 className={['fc-list-event-time'].concat(classNames).join(' ')} ref={rootElRef}>\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} 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\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 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 = dayDates[dayIndex].toISOString()\n\n // append a day header\n innerNodes.push(\n <ListViewHeaderRow\n key={dayStr}\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 {...getSegMeta(seg, todayRange, nowDate)}\n />,\n )\n }\n }\n }\n\n return (\n <table className={'fc-list-table ' + theme.getClass('table')}>\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","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":";;;;;;;;;;AAiBA;IAAuC,qCAAqC;IAA5E;QAAA,qEA2DC;QA1DC,WAAK,GAAG;YACN,MAAM,EAAE,cAAc,EAAE;SACzB,CAAA;;KAwDF;IAtDC,kCAAM,GAAN;QACM,IAAA,KAAuC,IAAI,CAAC,OAAO,EAAjD,KAAK,WAAA,EAAE,OAAO,aAAA,EAAE,OAAO,aAAA,EAAE,OAAO,aAAiB,CAAA;QACnD,IAAA,KAAkC,IAAI,CAAC,KAAK,EAA1C,MAAM,YAAA,EAAE,OAAO,aAAA,EAAE,UAAU,gBAAe,CAAA;QAC1C,IAAA,MAAM,GAAK,IAAI,CAAC,KAAK,OAAf,CAAe;QAC3B,IAAI,OAAO,GAAG,WAAW,CAAC,OAAO,EAAE,UAAU,CAAC,CAAA;;QAG9C,IAAI,IAAI,GAAG,OAAO,CAAC,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG,EAAE,CAAA;;QAGtF,IAAI,QAAQ,GAAG,OAAO,CAAC,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,iBAAiB,CAAC,GAAG,EAAE,CAAA;QAElG,IAAI,SAAS,cACX,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,EAC7B,IAAI,EAAE,OAAO,EACb,MAAM,QAAA;YACN,IAAI,MAAA;YACJ,QAAQ,UAAA,EACR,YAAY,EAAE,iBAAiB,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,EACtD,gBAAgB,EAAE,iBAAiB,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,IACrE,OAAO,CACX,CAAA;QAED,IAAI,UAAU,GAAG,CAAC,aAAa,CAAC,CAAC,MAAM,CACrC,gBAAgB,CAAC,OAAO,EAAE,KAAK,CAAC,CACjC,CAAA;;QAGD,QACE,cAAC,UAAU,IACT,SAAS,EAAE,SAAS,EACpB,UAAU,EAAE,OAAO,CAAC,mBAAmB,EACvC,OAAO,EAAE,OAAO,CAAC,gBAAgB,EACjC,cAAc,EAAE,kBAAkB,EAClC,QAAQ,EAAE,OAAO,CAAC,iBAAiB,EACnC,WAAW,EAAE,OAAO,CAAC,oBAAoB,IAExC,UAAC,SAAS,EAAE,gBAAgB,EAAE,UAAU,EAAE,YAAY,IAAK,QAC1D,sBACE,GAAG,EAAE,SAAS,EACd,SAAS,EAAE,UAAU,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,eAC7C,eAAe,CAAC,OAAO,CAAC;YAGnC,sBAAI,KAAK,EAAC,UAAU,EAAC,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,MAAM,qBAAmB,MAAM;gBAClE,uBAAK,SAAS,EAAE,sBAAsB,GAAG,KAAK,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,GAAG,EAAE,UAAU,IACxF,YAAY,CACT,CACH,CACF,IACN,CACU,EACd;KACF;IACH,wBAAC;AAAD,CA3DA,CAAuC,aAAa,GA2DnD;AAED,SAAS,kBAAkB,CAAC,KAAgB;IAC1C,QACE,cAAC,QAAQ;QACN,KAAK,CAAC,IAAI,KACT,8BAAG,EAAE,EAAE,KAAK,CAAC,MAAM,EAAE,SAAS,EAAC,kBAAkB,IAAK,KAAK,CAAC,YAAY,GACrE,KAAK,CAAC,IAAI,CACT,CACL;QACA,KAAK,CAAC,QAAQ,iCACb,mDAAe,SAAS,EAAC,uBAAuB,IAAK,KAAK,CAAC,gBAAgB,GACxE,KAAK,CAAC,QAAQ,CACb,CACL,CACQ,EACZ;AACH;;ACxFA,IAAM,mBAAmB,GAAG,eAAe,CAAC;IAC1C,IAAI,EAAE,SAAS;IACf,MAAM,EAAE,SAAS;IACjB,QAAQ,EAAE,OAAO;CAClB,CAAC,CAAA;AAQF;IAAsC,oCAAoC;IAA1E;;KAmCC;IAlCC,iCAAM,GAAN;QACM,IAAA,KAAqB,IAAI,EAAvB,KAAK,WAAA,EAAE,OAAO,aAAS,CAAA;QACvB,IAAA,GAAG,GAAgD,KAAK,IAArD,EAAE,YAAY,GAAkC,KAAK,aAAvC,EAAE,aAAa,GAAmB,KAAK,cAAxB,EAAE,YAAY,GAAK,KAAK,aAAV,CAAU;QAC9D,IAAI,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,eAAe,IAAI,mBAAmB,CAAA;QAEvE,QACE,cAAC,SAAS,IACR,GAAG,EAAE,GAAG,EACR,QAAQ,EAAC,EAAE;cACX,eAAe,QACf,eAAe,QACf,cAAc,EAAE,cAAM,OAAA,uBAAuB,CAAC,GAAG,EAAE,OAAO,CAAC,GAAA,cAC3D,MAAM,EAAE,KAAK,CAAC,MAAM,EACpB,QAAQ,EAAE,KAAK,CAAC,QAAQ,EACxB,OAAO,EAAE,KAAK,CAAC,OAAO,EACtB,UAAU,EAAE,KAAK,CAAC,UAAU,EAC5B,UAAU,EAAE,KAAK,CAAC,UAAU,EAC5B,UAAU,EAAE,KAAK,CAAC,UAAU,EAC5B,eAAe,EAAE,KAAK,CAAC,eAAe,IAErC,UAAC,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,YAAY,EAAE,SAAS,IAAK,QAC/D,sBAAI,SAAS,EAAE,CAAC,eAAe,EAAE,SAAS,CAAC,KAAK,CAAC,GAAG,GAAG,qBAAqB,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,SAAS;YAC5H,gBAAgB,CAAC,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,YAAY,EAAE,YAAY,CAAC;YACvE,2CAAgB,SAAS,EAAC,uBAAuB;gBAC/C,wBAAM,SAAS,EAAC,mBAAmB,EAAC,KAAK,EAAE,EAAE,WAAW,EAAE,SAAS,CAAC,WAAW,IAAI,SAAS,CAAC,eAAe,EAAE,GAAI,CAC/G;YACL,sBAAI,GAAG,EAAE,UAAU,EAAE,OAAO,EAAK,aAAa,SAAI,YAAc,EAAE,SAAS,EAAC,qBAAqB,IAC9F,YAAY,CACV,CACF,IACN,CACS,EACb;KACF;IACH,uBAAC;AAAD,CAnCA,CAAsC,aAAa,GAmClD;AAED,SAAS,uBAAuB,CAAC,GAAQ,EAAE,OAAoB;IAC7D,IAAI,gBAAgB,GAAG,iBAAiB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAA;IACtD,QACE,gCAAO,gBAAgB,GAEpB,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CACvB,EACL;AACH,CAAC;AAED,SAAS,gBAAgB,CACvB,GAAQ,EACR,UAAyB,EACzB,OAAoB,EACpB,YAAoB,EACpB,YAAoB;IAEd,IAAA,OAAO,GAAK,OAAO,QAAZ,CAAY;IAEzB,IAAI,OAAO,CAAC,gBAAgB,KAAK,KAAK,EAAE;QACtC,IAAI,QAAQ,GAAG,GAAG,CAAC,UAAU,CAAC,GAAG,CAAA;QACjC,IAAI,aAAa,GAAG,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAA;QAC3C,IAAI,QAAQ,GAAG,KAAK,CAAA;QACpB,IAAI,QAAQ,SAAQ,CAAA;QAEpB,IAAI,QAAQ,CAAC,MAAM,EAAE;YACnB,QAAQ,GAAG,IAAI,CAAA;SAChB;aAAM,IAAI,eAAe,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE;YAChD,IAAI,GAAG,CAAC,OAAO,EAAE;gBACf,QAAQ,GAAG,gBAAgB,CACzB,GAAG,EACH,UAAU,EACV,OAAO,EACP,IAAI,EACJ,IAAI,EACJ,aAAa,CAAC,KAAK,CAAC,KAAK,EACzB,GAAG,CAAC,GAAG,CACR,CAAA;aACF;iBAAM,IAAI,GAAG,CAAC,KAAK,EAAE;gBACpB,QAAQ,GAAG,gBAAgB,CACzB,GAAG,EACH,UAAU,EACV,OAAO,EACP,IAAI,EACJ,IAAI,EACJ,GAAG,CAAC,KAAK,EACT,aAAa,CAAC,KAAK,CAAC,GAAG,CACxB,CAAA;aACF;iBAAM;gBACL,QAAQ,GAAG,IAAI,CAAA;aAChB;SACF;aAAM;YACL,QAAQ,GAAG,gBAAgB,CACzB,GAAG,EACH,UAAU,EACV,OAAO,CACR,CAAA;SACF;QAED,IAAI,QAAQ,EAAE;YACZ,IAAI,SAAS,GAAqB;gBAChC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,UAAU;gBAChC,IAAI,EAAE,OAAO,CAAC,OAAO;aACtB,CAAA;YAED,QACE,cAAC,UAAU,IACT,SAAS,EAAE,SAAS,EACpB,UAAU,EAAE,OAAO,CAAC,gBAAgB,EACpC,OAAO,EAAE,OAAO,CAAC,aAAa,EAC9B,cAAc,EAAE,iBAAiB,EACjC,QAAQ,EAAE,OAAO,CAAC,cAAc,EAChC,WAAW,EAAE,OAAO,CAAC,iBAAiB,IAErC,UAAC,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,YAAY,IAAK,QACpD,sBAAI,GAAG,EAAE,SAAS,EAAE,OAAO,EAAK,YAAY,SAAI,YAAc,EAAE,SAAS,EAAE,CAAC,oBAAoB,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAC3H,YAAY,CACV,IACN,CACU,EACd;SACF;QAED,QACE,sBAAI,SAAS,EAAC,oBAAoB,IAC/B,QAAQ,CACN,EACN;KACF;IAED,OAAO,IAAI,CAAA;AACb,CAAC;AAED,SAAS,iBAAiB,CAAC,SAAS;IAClC,OAAO,SAAS,CAAC,IAAI,CAAA;AACvB;;AC/GA;;;;IAG8B,4BAAwB;IAAtD;QAAA,qEAkNC;QAjNS,qBAAe,GAAG,OAAO,CAAC,eAAe,CAAC,CAAA;QAC1C,sBAAgB,GAAG,OAAO,CAAC,KAAI,CAAC,iBAAiB,CAAC,CAAA;QAC1D,WAAK,GAAG;YACN,YAAY,EAAE,cAAc,EAAE;YAC9B,aAAa,EAAE,cAAc,EAAE;YAC/B,gBAAgB,EAAE,cAAc,EAAE;SACnC,CAAA;QAiCD,eAAS,GAAG,UAAC,MAA6B;YACxC,IAAI,MAAM,EAAE;gBACV,KAAI,CAAC,OAAO,CAAC,4BAA4B,CAAC,KAAI,EAAE;oBAC9C,EAAE,EAAE,MAAM;iBACX,CAAC,CAAA;aACH;iBAAM;gBACL,KAAI,CAAC,OAAO,CAAC,8BAA8B,CAAC,KAAI,CAAC,CAAA;aAClD;SACF,CAAA;;KAkKF;IAzMC,yBAAM,GAAN;QAAA,iBA6BC;QA5BK,IAAA,KAAqB,IAAI,EAAvB,KAAK,WAAA,EAAE,OAAO,aAAS,CAAA;QAE7B,IAAI,eAAe,GAAG;YACpB,SAAS;YACT,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC;YAC/B,OAAO,CAAC,OAAO,CAAC,iBAAiB,KAAK,KAAK,GAAG,gBAAgB,GAAG,EAAE;SACpE,CAAA;QAEG,IAAA,KAA0B,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,WAAW,CAAC,EAA/D,QAAQ,cAAA,EAAE,SAAS,eAA4C,CAAA;QACrE,IAAI,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,YAAY,EAAE,SAAS,CAAC,CAAA;QAEtF,QACE,cAAC,QAAQ,IAAC,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,SAAS,IACxD,UAAC,SAAS,EAAE,UAAU,IAAK,QAC1B,uBAAK,GAAG,EAAE,SAAS,EAAE,SAAS,EAAE,eAAe,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;YAC1E,cAAC,QAAQ,IACP,MAAM,EAAE,CAAC,KAAK,CAAC,YAAY,EAC3B,SAAS,EAAE,KAAK,CAAC,YAAY,GAAG,SAAS,GAAG,QAAQ,EACpD,SAAS,EAAE,KAAK,CAAC,YAAY,GAAG,SAAS,GAAG,MAAM,IAEjD,SAAS,CAAC,MAAM,GAAG,CAAC;gBACnB,KAAI,CAAC,aAAa,CAAC,SAAS,EAAE,QAAQ,CAAC;gBACvC,KAAI,CAAC,kBAAkB,EAAE,CAClB,CACP,IACP,CACQ,EACZ;KACF;IAYD,qCAAkB,GAAlB;QACM,IAAA,KAAuB,IAAI,CAAC,OAAO,EAAjC,OAAO,aAAA,EAAE,OAAO,aAAiB,CAAA;QACvC,IAAI,SAAS,GAAuB;YAClC,IAAI,EAAE,OAAO,CAAC,YAAY;YAC1B,IAAI,EAAE,OAAO;SACd,CAAA;QAED,QACE,cAAC,UAAU,IACT,SAAS,EAAE,SAAS,EACpB,UAAU,EAAE,OAAO,CAAC,kBAAkB,EACtC,OAAO,EAAE,OAAO,CAAC,eAAe,EAChC,cAAc,EAAE,mBAAmB,EACnC,QAAQ,EAAE,OAAO,CAAC,gBAAgB,EAClC,WAAW,EAAE,OAAO,CAAC,mBAAmB,IAEvC,UAAC,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,YAAY,IAAK,QACpD,uBAAK,SAAS,EAAE,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,SAAS;YAC5E,uBAAK,SAAS,EAAC,uBAAuB,EAAC,GAAG,EAAE,UAAU,IACnD,YAAY,CACT,CACF,IACP,CACU,EACd;KACF;IAED,gCAAa,GAAb,UAAc,OAAc,EAAE,QAAsB;QAC9C,IAAA,KAAqB,IAAI,CAAC,OAAO,EAA/B,KAAK,WAAA,EAAE,OAAO,aAAiB,CAAA;QACjC,IAAA,KAAoD,IAAI,CAAC,KAAK,EAA5D,YAAY,kBAAA,EAAE,aAAa,mBAAA,EAAE,gBAAgB,sBAAe,CAAA;QAClE,IAAI,SAAS,GAAG,cAAc,CAAC,OAAO,CAAC,CAAA;QAEvC,QACE,cAAC,QAAQ,IAAC,IAAI,EAAC,KAAK,IACjB,UAAC,OAAmB,EAAE,UAAqB;YAC1C,IAAI,UAAU,GAAY,EAAE,CAAA;YAE5B,KAAK,IAAI,QAAQ,GAAG,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC,MAAM,EAAE,QAAQ,IAAI,CAAC,EAAE;gBACjE,IAAI,OAAO,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAA;gBAEjC,IAAI,OAAO,EAAE;oBACX,IAAI,MAAM,GAAG,eAAe,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAA;oBAChD,IAAI,YAAY,GAAG,gBAAgB,GAAG,GAAG,GAAG,MAAM,CAAA;;oBAGlD,UAAU,CAAC,IAAI,CACb,cAAC,iBAAiB,IAChB,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE,QAAQ,CAAC,QAAQ,CAAC,EAC3B,UAAU,EAAE,UAAU,GACtB,CACH,CAAA;oBAED,OAAO,GAAG,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC,UAAU,CAAC,CAAA;oBAEpD,KAAgB,UAAO,EAAP,mBAAO,EAAP,qBAAO,EAAP,IAAO,EAAE;wBAApB,IAAI,GAAG,gBAAA;wBACV,UAAU,CAAC,IAAI,CACb,cAAC,gBAAgB,aACf,GAAG,EAAE,MAAM,GAAG,GAAG,GAAG,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,UAAU,4CACtD,GAAG,EAAE,GAAG,EACR,UAAU,EAAE,KAAK,EACjB,UAAU,EAAE,KAAK,EACjB,eAAe,EAAE,KAAK,EACtB,UAAU,EAAE,KAAK,EACjB,YAAY,EAAE,YAAY,EAC1B,aAAa,EAAE,aAAa,EAC5B,YAAY,EAAE,YAAY,IACtB,UAAU,CAAC,GAAG,EAAE,UAAU,EAAE,OAAO,CAAC,EACxC,CACH,CAAA;qBACF;iBACF;aACF;YAED,QACE,yBAAO,SAAS,EAAE,gBAAgB,GAAG,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC;gBAC1D;oBACE;wBACE,sBAAI,KAAK,EAAC,KAAK,EAAC,EAAE,EAAE,YAAY,IAAG,OAAO,CAAC,QAAQ,CAAM;wBACzD,sBAAI,KAAK,EAAC,KAAK,wBAAe;wBAC9B,sBAAI,KAAK,EAAC,KAAK,EAAC,EAAE,EAAE,aAAa,IAAG,OAAO,CAAC,SAAS,CAAM,CACxD,CACC;gBACR,6BAAQ,UAAU,CAAS,CACrB,EACT;SACF,CACQ,EACZ;KACF;IAED,oCAAiB,GAAjB,UAAkB,UAAsB,EAAE,YAAyB,EAAE,SAAsB;QACzF,OAAO,IAAI,CAAC,iBAAiB,CAC3B,eAAe,CACb,UAAU,EACV,YAAY,EACZ,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,WAAW,EAClC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,gBAAgB,CACtC,CAAC,EAAE,EACJ,SAAS,CACV,CAAA;KACF;IAED,oCAAiB,GAAjB,UAAkB,WAA+B,EAAE,SAAsB;QACvE,IAAI,IAAI,GAAG,EAAE,CAAA;QAEb,KAAuB,UAAW,EAAX,2BAAW,EAAX,yBAAW,EAAX,IAAW,EAAE;YAA/B,IAAI,UAAU,oBAAA;YACjB,IAAI,CAAC,IAAI,OAAT,IAAI,EAAS,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,SAAS,CAAC,EAAC;SAC3D;QAED,OAAO,IAAI,CAAA;KACZ;IAED,mCAAgB,GAAhB,UAAiB,UAA4B,EAAE,SAAsB;QAC7D,IAAA,OAAO,GAAK,IAAI,CAAC,OAAO,QAAjB,CAAiB;QACxB,IAAA,gBAAgB,GAAK,IAAI,CAAC,OAAO,CAAC,OAAO,iBAAzB,CAAyB;QAC/C,IAAI,KAAK,GAAG,UAAU,CAAC,KAAK,CAAA;QAC5B,IAAI,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,MAAM,CAAA;QAClC,IAAI,QAAQ,CAAA;QACZ,IAAI,QAAQ,CAAA;QACZ,IAAI,GAAG,CAAA;QACP,IAAI,IAAI,GAAG,EAAE,CAAA;QAEb,KAAK,QAAQ,GAAG,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC,MAAM,EAAE,QAAQ,IAAI,CAAC,EAAE;YAC7D,QAAQ,GAAG,eAAe,CAAC,KAAK,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAA;YAEtD,IAAI,QAAQ,EAAE;gBACZ,GAAG,GAAG;oBACJ,SAAS,EAAE,IAAI;oBACf,UAAU,YAAA;oBACV,KAAK,EAAE,QAAQ,CAAC,KAAK;oBACrB,GAAG,EAAE,QAAQ,CAAC,GAAG;oBACjB,OAAO,EAAE,UAAU,CAAC,OAAO,IAAI,QAAQ,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE;oBACjF,KAAK,EAAE,UAAU,CAAC,KAAK,IAAI,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE;oBACzE,QAAQ,UAAA;iBACT,CAAA;gBAED,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;;;gBAId,IACE,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,MAAM;oBACrB,QAAQ,GAAG,CAAC,GAAG,SAAS,CAAC,MAAM;oBAC/B,KAAK,CAAC,GAAG;wBACP,OAAO,CAAC,GAAG,CACT,SAAS,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,KAAK,EAC7B,gBAAgB,CACjB,EACH;oBACA,GAAG,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,CAAA;oBACnB,GAAG,CAAC,KAAK,GAAG,IAAI,CAAA;oBAChB,MAAK;iBACN;aACF;SACF;QAED,OAAO,IAAI,CAAA;KACZ;IACH,eAAC;AAAD,CAlNA,CAA8B,aAAa,GAkN1C;AAED,SAAS,mBAAmB,CAAC,SAAS;IACpC,OAAO,SAAS,CAAC,IAAI,CAAA;AACvB,CAAC;AAED,SAAS,eAAe,CAAC,WAAwB;IAC/C,IAAI,QAAQ,GAAG,UAAU,CAAC,WAAW,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;IACxD,IAAI,OAAO,GAAG,WAAW,CAAC,WAAW,CAAC,GAAG,CAAA;IACzC,IAAI,QAAQ,GAAiB,EAAE,CAAA;IAC/B,IAAI,SAAS,GAAgB,EAAE,CAAA;IAE/B,OAAO,QAAQ,GAAG,OAAO,EAAE;QACzB,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QAEvB,SAAS,CAAC,IAAI,CAAC;YACb,KAAK,EAAE,QAAQ;YACf,GAAG,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;SAC1B,CAAC,CAAA;QAEF,QAAQ,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAA;KAChC;IAED,OAAO,EAAE,QAAQ,UAAA,EAAE,SAAS,WAAA,EAAE,CAAA;AAChC,CAAC;AAED;AACA,SAAS,cAAc,CAAC,IAAI;IAC1B,IAAI,SAAS,GAAG,EAAE,CAAA;IAClB,IAAI,CAAC,CAAA;IACL,IAAI,GAAG,CAAA;IAEP,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;QACnC,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACd,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;aACvD,IAAI,CAAC,GAAG,CAAC,CAAA;KACb;IAED,OAAO,SAAS,CAAA;AAClB;;ACjRO,IAAM,eAAe,GAAG;IAC7B,aAAa,EAAE,uBAAuB;IACtC,iBAAiB,EAAE,uBAAuB;IAE1C,kBAAkB,EAAE,QAA6D;IACjF,eAAe,EAAE,QAAgE;IACjF,gBAAgB,EAAE,QAAuD;IACzE,mBAAmB,EAAE,QAA0D;;CAGhF,CAAA;AAED,SAAS,uBAAuB,CAAC,KAA6B;IAC5D,OAAO,KAAK,KAAK,KAAK,GAAG,IAAI,GAAG,eAAe,CAAC,KAAK,CAAC,CAAA;AACxD;;ACtBA,WAAe,YAAY,CAAC;IAC1B,cAAc,EAAE,eAAe;IAC/B,KAAK,EAAE;QAEL,IAAI,EAAE;YACJ,SAAS,EAAE,QAAQ;YACnB,aAAa,EAAE,MAAM;YACrB,aAAa,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE;SAClE;QAED,OAAO,EAAE;YACP,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE;YACrB,aAAa,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE;SACnC;QAED,QAAQ,EAAE;YACR,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE;YACtB,aAAa,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE;YAClC,iBAAiB,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE;SACtE;QAED,SAAS,EAAE;YACT,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE;YACtB,iBAAiB,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE;SACvC;QAED,QAAQ,EAAE;YACR,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE;YACrB,iBAAiB,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE;SACvC;KAEF;CACF,CAAC;;;;;"}
|
package/main.min.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
:root{--fc-list-event-dot-width:10px;--fc-list-event-hover-bg-color:#f5f5f5}.fc-theme-standard .fc-list{border:1px solid #ddd;border:1px solid var(--fc-border-color,#ddd)}.fc .fc-list-empty{background-color:rgba(208,208,208,.3);background-color:var(--fc-neutral-bg-color,rgba(208,208,208,.3));height:100%;display:flex;justify-content:center;align-items:center}.fc .fc-list-empty-cushion{margin:5em 0}.fc .fc-list-table{width:100%;border-style:hidden}.fc .fc-list-table tr>*{border-left:0;border-right:0}.fc .fc-list-sticky .fc-list-day>*{position:sticky;top:0;background:var(--fc-page-bg-color,#fff)}.fc .fc-list-table th{padding:0}.fc .fc-list-day-cushion,.fc .fc-list-table td{padding:8px 14px}.fc .fc-list-day-cushion:after{content:"";clear:both;display:table}.fc-theme-standard .fc-list-day-cushion{background-color:rgba(208,208,208,.3);background-color:var(--fc-neutral-bg-color,rgba(208,208,208,.3))}.fc-direction-ltr .fc-list-day-text,.fc-direction-rtl .fc-list-day-side-text{float:left}.fc-direction-ltr .fc-list-day-side-text,.fc-direction-rtl .fc-list-day-text{float:right}.fc-direction-ltr .fc-list-table .fc-list-event-graphic{padding-right:0}.fc-direction-rtl .fc-list-table .fc-list-event-graphic{padding-left:0}.fc .fc-list-event.fc-event-forced-url{cursor:pointer}.fc .fc-list-event:hover td{background-color:#f5f5f5;background-color:var(--fc-list-event-hover-bg-color,#f5f5f5)}.fc .fc-list-event-graphic,.fc .fc-list-event-time{white-space:nowrap;width:1px}.fc .fc-list-event-dot{display:inline-block;box-sizing:content-box;width:0;height:0;border:5px solid #3788d8;border:calc(var(--fc-list-event-dot-width,10px)/ 2) solid var(--fc-event-border-color,#3788d8);border-radius:5px;border-radius:calc(var(--fc-list-event-dot-width,10px)/ 2)}.fc .fc-list-event-title a{color:inherit;text-decoration:none}.fc .fc-list-event.fc-event-forced-url:hover a{text-decoration:underline}
|
|
1
|
+
:root{--fc-list-event-dot-width:10px;--fc-list-event-hover-bg-color:#f5f5f5}.fc-theme-standard .fc-list{border:1px solid #ddd;border:1px solid var(--fc-border-color,#ddd)}.fc .fc-list-empty{background-color:rgba(208,208,208,.3);background-color:var(--fc-neutral-bg-color,rgba(208,208,208,.3));height:100%;display:flex;justify-content:center;align-items:center}.fc .fc-list-empty-cushion{margin:5em 0}.fc .fc-list-table{width:100%;border-style:hidden}.fc .fc-list-table tr>*{border-left:0;border-right:0}.fc .fc-list-sticky .fc-list-day>*{position:sticky;top:0;background:var(--fc-page-bg-color,#fff)}.fc .fc-list-table thead{position:absolute;left:-10000px}.fc .fc-list-table tbody>tr:first-child th{border-top:0}.fc .fc-list-table th{padding:0}.fc .fc-list-day-cushion,.fc .fc-list-table td{padding:8px 14px}.fc .fc-list-day-cushion:after{content:"";clear:both;display:table}.fc-theme-standard .fc-list-day-cushion{background-color:rgba(208,208,208,.3);background-color:var(--fc-neutral-bg-color,rgba(208,208,208,.3))}.fc-direction-ltr .fc-list-day-text,.fc-direction-rtl .fc-list-day-side-text{float:left}.fc-direction-ltr .fc-list-day-side-text,.fc-direction-rtl .fc-list-day-text{float:right}.fc-direction-ltr .fc-list-table .fc-list-event-graphic{padding-right:0}.fc-direction-rtl .fc-list-table .fc-list-event-graphic{padding-left:0}.fc .fc-list-event.fc-event-forced-url{cursor:pointer}.fc .fc-list-event:hover td{background-color:#f5f5f5;background-color:var(--fc-list-event-hover-bg-color,#f5f5f5)}.fc .fc-list-event-graphic,.fc .fc-list-event-time{white-space:nowrap;width:1px}.fc .fc-list-event-dot{display:inline-block;box-sizing:content-box;width:0;height:0;border:5px solid #3788d8;border:calc(var(--fc-list-event-dot-width,10px)/ 2) solid var(--fc-event-border-color,#3788d8);border-radius:5px;border-radius:calc(var(--fc-list-event-dot-width,10px)/ 2)}.fc .fc-list-event-title a{color:inherit;text-decoration:none}.fc .fc-list-event.fc-event-forced-url:hover a{text-decoration:underline}
|
package/package.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fullcalendar/list",
|
|
3
|
-
"version": "5.
|
|
3
|
+
"version": "5.10.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.
|
|
9
|
-
"tslib": "^2.0
|
|
8
|
+
"@fullcalendar/common": "~5.10.1",
|
|
9
|
+
"tslib": "^2.1.0"
|
|
10
10
|
},
|
|
11
11
|
"main": "main.cjs.js",
|
|
12
12
|
"module": "main.js",
|
|
@@ -27,6 +27,6 @@
|
|
|
27
27
|
"url": "http://arshaw.com/"
|
|
28
28
|
},
|
|
29
29
|
"devDependencies": {
|
|
30
|
-
"@fullcalendar/core-preact": "5.
|
|
30
|
+
"@fullcalendar/core-preact": "5.10.1"
|
|
31
31
|
}
|
|
32
32
|
}
|