@event-calendar/core 1.5.1 → 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +85 -63
- package/index.css +20 -20
- package/index.js +214 -255
- package/package.json +1 -1
- package/src/Buttons.svelte +24 -6
- package/src/Calendar.svelte +2 -2
- package/src/index.scss +18 -18
- package/src/lib/a11y.js +0 -24
- package/src/lib/actions.js +4 -10
- package/src/lib/date.js +9 -77
- package/src/lib/dom.js +7 -5
- package/src/lib/events.js +12 -8
- package/src/lib/options.js +28 -0
- package/src/lib/stores.js +6 -7
- package/src/lib/utils.js +4 -4
- package/src/lib.js +1 -0
- package/src/storage/options.js +4 -7
- package/src/storage/state.js +33 -20
- package/src/storage/stores.js +12 -12
package/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { run_all, is_function, noop, identity, tick, SvelteComponent, init, safe_not_equal, ensure_array_like, empty, insert, detach, destroy_each, component_subscribe, set_store_value, element, text, attr, append, listen, set_data, transition_in, group_outros, check_outros, transition_out, space, create_component, mount_component, destroy_component, construct_svelte_component, set_style, get_current_component } from 'svelte/internal';
|
|
1
|
+
import { run_all, is_function, noop, identity, tick, SvelteComponent, init, safe_not_equal, ensure_array_like, empty, insert, detach, destroy_each, component_subscribe, set_store_value, element, text, attr, append, listen, set_data, action_destroyer, transition_in, group_outros, check_outros, transition_out, space, create_component, mount_component, destroy_component, construct_svelte_component, set_style, get_current_component } from 'svelte/internal';
|
|
2
2
|
import { getContext, setContext, beforeUpdate } from 'svelte';
|
|
3
3
|
import { writable, derived, get, readable } from 'svelte/store';
|
|
4
4
|
|
|
@@ -8,67 +8,14 @@ function keyEnter(fn) {
|
|
|
8
8
|
};
|
|
9
9
|
}
|
|
10
10
|
|
|
11
|
-
function btnTextDay(text) {
|
|
12
|
-
return btnText(text, 'day');
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
function btnTextWeek(text) {
|
|
16
|
-
return btnText(text, 'week');
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
function btnTextMonth(text) {
|
|
20
|
-
return btnText(text, 'month');
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
function btnTextYear(text) {
|
|
24
|
-
return btnText(text, 'year');
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
function btnText(text, period) {
|
|
28
|
-
return {
|
|
29
|
-
...text,
|
|
30
|
-
next: 'Next ' + period,
|
|
31
|
-
prev: 'Previous ' + period
|
|
32
|
-
};
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
function assign(...args) {
|
|
36
|
-
return Object.assign(...args);
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
function floor(value) {
|
|
40
|
-
return Math.floor(value);
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
function min(...args) {
|
|
44
|
-
return Math.min(...args);
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
function max(...args) {
|
|
48
|
-
return Math.max(...args);
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
function isObject(test) {
|
|
52
|
-
return typeof test === 'object' && test !== null;
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
function symbol() {
|
|
56
|
-
return Symbol('ec');
|
|
57
|
-
}
|
|
58
|
-
|
|
59
11
|
function setContent(node, content) {
|
|
60
12
|
let actions = {
|
|
61
13
|
update(content) {
|
|
62
|
-
|
|
63
|
-
node.removeChild(node.lastChild);
|
|
64
|
-
}
|
|
65
|
-
if (!isObject(content)) {
|
|
14
|
+
if (typeof content == 'string') {
|
|
66
15
|
node.innerText = content;
|
|
67
|
-
} else if (content
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
}
|
|
71
|
-
} else if (content.html) {
|
|
16
|
+
} else if (content?.domNodes) {
|
|
17
|
+
node.replaceChildren(...content.domNodes);
|
|
18
|
+
} else if (content?.html) {
|
|
72
19
|
node.innerHTML = content.html;
|
|
73
20
|
}
|
|
74
21
|
}
|
|
@@ -191,43 +138,6 @@ function toISOString(date) {
|
|
|
191
138
|
return date.toISOString().substring(0, 19);
|
|
192
139
|
}
|
|
193
140
|
|
|
194
|
-
function formatRange(start, end, intl) {
|
|
195
|
-
if (start.getFullYear() !== end.getFullYear()) {
|
|
196
|
-
return intl.format(start) + ' - ' + intl.format(end);
|
|
197
|
-
}
|
|
198
|
-
|
|
199
|
-
let diff = [];
|
|
200
|
-
if (start.getMonth() !== end.getMonth()) {
|
|
201
|
-
diff.push('month');
|
|
202
|
-
}
|
|
203
|
-
if (start.getDate() !== end.getDate()) {
|
|
204
|
-
diff.push('day');
|
|
205
|
-
}
|
|
206
|
-
|
|
207
|
-
if (!diff.length) {
|
|
208
|
-
return intl.format(start);
|
|
209
|
-
}
|
|
210
|
-
|
|
211
|
-
let opts1 = intl.resolvedOptions();
|
|
212
|
-
let opts2 = {};
|
|
213
|
-
for (let key of diff) {
|
|
214
|
-
opts2[key] = opts1[key];
|
|
215
|
-
}
|
|
216
|
-
let intl2 = new Intl.DateTimeFormat(opts1.locale, opts2);
|
|
217
|
-
|
|
218
|
-
let full1 = intl.format(start);
|
|
219
|
-
let full2 = intl.format(end);
|
|
220
|
-
let part1 = intl2.format(start);
|
|
221
|
-
let part2 = intl2.format(end);
|
|
222
|
-
|
|
223
|
-
let common = _commonChunks(full1, part1, full2, part2);
|
|
224
|
-
if (common) {
|
|
225
|
-
return common.head + part1 + ' - ' + part2 + common.tail;
|
|
226
|
-
}
|
|
227
|
-
|
|
228
|
-
return full1 + ' - ' + full2;
|
|
229
|
-
}
|
|
230
|
-
|
|
231
141
|
function datesEqual(date1, ...dates2) {
|
|
232
142
|
return dates2.every(date2 => date1.getTime() === date2.getTime());
|
|
233
143
|
}
|
|
@@ -251,6 +161,15 @@ function noTimePart(date) {
|
|
|
251
161
|
return typeof date === 'string' && date.length <= 10;
|
|
252
162
|
}
|
|
253
163
|
|
|
164
|
+
/**
|
|
165
|
+
* Copy time from one date to another
|
|
166
|
+
*/
|
|
167
|
+
function copyTime(toDate, fromDate) {
|
|
168
|
+
toDate.setUTCHours(fromDate.getUTCHours(), fromDate.getUTCMinutes(), fromDate.getUTCSeconds(), 0);
|
|
169
|
+
|
|
170
|
+
return toDate;
|
|
171
|
+
}
|
|
172
|
+
|
|
254
173
|
/**
|
|
255
174
|
* Private functions
|
|
256
175
|
*/
|
|
@@ -278,62 +197,48 @@ function _fromISOString(str) {
|
|
|
278
197
|
));
|
|
279
198
|
}
|
|
280
199
|
|
|
281
|
-
function
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
let res1;
|
|
285
|
-
[i, res1] = _cut(str1, substr1, i);
|
|
286
|
-
if (!res1) {
|
|
287
|
-
break;
|
|
288
|
-
}
|
|
289
|
-
|
|
290
|
-
let j = 0;
|
|
291
|
-
while (j < str2.length) {
|
|
292
|
-
let res2;
|
|
293
|
-
[j, res2] = _cut(str2, substr2, j);
|
|
294
|
-
if (!res2) {
|
|
295
|
-
break;
|
|
296
|
-
}
|
|
200
|
+
function debounce(fn, handle, queueStore) {
|
|
201
|
+
queueStore.update(queue => queue.set(handle, fn));
|
|
202
|
+
}
|
|
297
203
|
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
}
|
|
204
|
+
function flushDebounce(queue) {
|
|
205
|
+
run_all(queue);
|
|
206
|
+
queue.clear();
|
|
207
|
+
}
|
|
303
208
|
|
|
304
|
-
|
|
209
|
+
function assign(...args) {
|
|
210
|
+
return Object.assign(...args);
|
|
305
211
|
}
|
|
306
212
|
|
|
307
|
-
function
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
let end = start + substr.length;
|
|
213
|
+
function keys(object) {
|
|
214
|
+
return Object.keys(object);
|
|
215
|
+
}
|
|
311
216
|
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
}];
|
|
316
|
-
}
|
|
217
|
+
function floor(value) {
|
|
218
|
+
return Math.floor(value);
|
|
219
|
+
}
|
|
317
220
|
|
|
318
|
-
|
|
221
|
+
function min(...args) {
|
|
222
|
+
return Math.min(...args);
|
|
319
223
|
}
|
|
320
224
|
|
|
321
|
-
function
|
|
322
|
-
|
|
225
|
+
function max(...args) {
|
|
226
|
+
return Math.max(...args);
|
|
323
227
|
}
|
|
324
228
|
|
|
325
|
-
function
|
|
326
|
-
|
|
327
|
-
queue.clear();
|
|
229
|
+
function symbol() {
|
|
230
|
+
return Symbol('ec');
|
|
328
231
|
}
|
|
329
232
|
|
|
330
|
-
function createElement(tag, className,
|
|
233
|
+
function createElement(tag, className, content) {
|
|
331
234
|
let el = document.createElement(tag);
|
|
332
235
|
el.className = className;
|
|
333
|
-
if (
|
|
334
|
-
el.
|
|
335
|
-
} else if (
|
|
336
|
-
el.
|
|
236
|
+
if (typeof content == 'string') {
|
|
237
|
+
el.innerText = content;
|
|
238
|
+
} else if (content.domNodes) {
|
|
239
|
+
el.replaceChildren(...content.domNodes);
|
|
240
|
+
} else if (content.html) {
|
|
241
|
+
el.innerHTML = content.html;
|
|
337
242
|
}
|
|
338
243
|
return el;
|
|
339
244
|
}
|
|
@@ -535,10 +440,14 @@ function repositionEvent(chunk, longChunks, height) {
|
|
|
535
440
|
}
|
|
536
441
|
|
|
537
442
|
function createEventContent(chunk, displayEventEnd, eventContent, theme, _intlEventTime, _view) {
|
|
538
|
-
let timeText = _intlEventTime.
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
443
|
+
let timeText = _intlEventTime.formatRange(
|
|
444
|
+
chunk.start,
|
|
445
|
+
displayEventEnd && chunk.event.display !== 'pointer'
|
|
446
|
+
? copyTime(cloneDate(chunk.start), chunk.end) // make Intl.formatRange output only the time part
|
|
447
|
+
: chunk.start
|
|
448
|
+
);
|
|
449
|
+
let content;
|
|
450
|
+
|
|
542
451
|
if (eventContent) {
|
|
543
452
|
content = is_function(eventContent)
|
|
544
453
|
? eventContent({
|
|
@@ -554,14 +463,14 @@ function createEventContent(chunk, displayEventEnd, eventContent, theme, _intlEv
|
|
|
554
463
|
break;
|
|
555
464
|
case 'pointer':
|
|
556
465
|
content = {
|
|
557
|
-
domNodes: [createElement('div', theme.eventTime,
|
|
466
|
+
domNodes: [createElement('div', theme.eventTime, timeText)]
|
|
558
467
|
};
|
|
559
468
|
break;
|
|
560
469
|
default:
|
|
561
470
|
content = {
|
|
562
471
|
domNodes: [
|
|
563
|
-
...chunk.event.allDay ? [] : [createElement('div', theme.eventTime,
|
|
564
|
-
createElement('div', theme.eventTitle, chunk.event.
|
|
472
|
+
...chunk.event.allDay ? [] : [createElement('div', theme.eventTime, timeText)],
|
|
473
|
+
createElement('div', theme.eventTitle, chunk.event.title)
|
|
565
474
|
]
|
|
566
475
|
};
|
|
567
476
|
}
|
|
@@ -636,9 +545,37 @@ function pointerEvent(display) {
|
|
|
636
545
|
return display === 'pointer';
|
|
637
546
|
}
|
|
638
547
|
|
|
548
|
+
function btnTextDay(text) {
|
|
549
|
+
return btnText(text, 'day');
|
|
550
|
+
}
|
|
551
|
+
|
|
552
|
+
function btnTextWeek(text) {
|
|
553
|
+
return btnText(text, 'week');
|
|
554
|
+
}
|
|
555
|
+
|
|
556
|
+
function btnTextMonth(text) {
|
|
557
|
+
return btnText(text, 'month');
|
|
558
|
+
}
|
|
559
|
+
|
|
560
|
+
function btnTextYear(text) {
|
|
561
|
+
return btnText(text, 'year');
|
|
562
|
+
}
|
|
563
|
+
|
|
564
|
+
function btnText(text, period) {
|
|
565
|
+
return {
|
|
566
|
+
...text,
|
|
567
|
+
next: 'Next ' + period,
|
|
568
|
+
prev: 'Previous ' + period
|
|
569
|
+
};
|
|
570
|
+
}
|
|
571
|
+
|
|
572
|
+
function themeView(view) {
|
|
573
|
+
return theme => ({...theme, view});
|
|
574
|
+
}
|
|
575
|
+
|
|
639
576
|
function writable2(value, parser, start) {
|
|
640
577
|
return {
|
|
641
|
-
...writable(
|
|
578
|
+
...writable(value, start),
|
|
642
579
|
parse: parser
|
|
643
580
|
};
|
|
644
581
|
}
|
|
@@ -677,12 +614,11 @@ function intl(locale, format) {
|
|
|
677
614
|
|
|
678
615
|
function intlRange(locale, format) {
|
|
679
616
|
return derived([locale, format], ([$locale, $format]) => {
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
let intl = new Intl.DateTimeFormat($locale, $format);
|
|
617
|
+
let intl = is_function($format)
|
|
618
|
+
? {formatRange: $format}
|
|
619
|
+
: new Intl.DateTimeFormat($locale, $format);
|
|
684
620
|
return {
|
|
685
|
-
|
|
621
|
+
formatRange: (start, end) => intl.formatRange(toLocalDate(start), toLocalDate(end))
|
|
686
622
|
};
|
|
687
623
|
});
|
|
688
624
|
}
|
|
@@ -778,7 +714,7 @@ function createOptions(plugins) {
|
|
|
778
714
|
time: 'ec-time',
|
|
779
715
|
title: 'ec-title',
|
|
780
716
|
toolbar: 'ec-toolbar',
|
|
781
|
-
|
|
717
|
+
view: '',
|
|
782
718
|
withScroll: 'ec-with-scroll'
|
|
783
719
|
},
|
|
784
720
|
titleFormat: {
|
|
@@ -798,9 +734,8 @@ function createOptions(plugins) {
|
|
|
798
734
|
return options;
|
|
799
735
|
}
|
|
800
736
|
|
|
801
|
-
function createParsers(
|
|
737
|
+
function createParsers(plugins) {
|
|
802
738
|
let parsers = {
|
|
803
|
-
buttonText: input => is_function(input) ? input(options.buttonText) : input,
|
|
804
739
|
date: date => setMidnight(createDate(date)),
|
|
805
740
|
duration: createDuration,
|
|
806
741
|
events: createEvents,
|
|
@@ -810,12 +745,11 @@ function createParsers(options, plugins) {
|
|
|
810
745
|
scrollTime: createDuration,
|
|
811
746
|
slotDuration: createDuration,
|
|
812
747
|
slotMaxTime: createDuration,
|
|
813
|
-
slotMinTime: createDuration
|
|
814
|
-
theme: input => is_function(input) ? input(options.theme) : input
|
|
748
|
+
slotMinTime: createDuration
|
|
815
749
|
};
|
|
816
750
|
|
|
817
751
|
for (let plugin of plugins) {
|
|
818
|
-
plugin.createParsers?.(parsers
|
|
752
|
+
plugin.createParsers?.(parsers);
|
|
819
753
|
}
|
|
820
754
|
|
|
821
755
|
return parsers;
|
|
@@ -836,18 +770,18 @@ function diff(options) {
|
|
|
836
770
|
return diff;
|
|
837
771
|
}
|
|
838
772
|
|
|
839
|
-
function
|
|
773
|
+
function dayGrid(state) {
|
|
840
774
|
return derived(state.view, $view => $view?.startsWith('dayGrid'));
|
|
841
775
|
}
|
|
842
776
|
|
|
843
777
|
function activeRange(state) {
|
|
844
778
|
return derived(
|
|
845
|
-
[state._currentRange, state.firstDay, state.slotMaxTime, state.
|
|
846
|
-
([$_currentRange, $firstDay, $slotMaxTime, $
|
|
779
|
+
[state._currentRange, state.firstDay, state.slotMaxTime, state._dayGrid],
|
|
780
|
+
([$_currentRange, $firstDay, $slotMaxTime, $_dayGrid]) => {
|
|
847
781
|
let start = cloneDate($_currentRange.start);
|
|
848
782
|
let end = cloneDate($_currentRange.end);
|
|
849
783
|
|
|
850
|
-
if ($
|
|
784
|
+
if ($_dayGrid) {
|
|
851
785
|
// First day of week
|
|
852
786
|
prevClosestDay(start, $firstDay);
|
|
853
787
|
nextClosestDay(end, $firstDay);
|
|
@@ -866,10 +800,10 @@ function activeRange(state) {
|
|
|
866
800
|
|
|
867
801
|
function currentRange(state) {
|
|
868
802
|
return derived(
|
|
869
|
-
[state.date, state.duration, state.firstDay, state.
|
|
870
|
-
([$date, $duration, $firstDay, $
|
|
803
|
+
[state.date, state.duration, state.firstDay, state._dayGrid],
|
|
804
|
+
([$date, $duration, $firstDay, $_dayGrid]) => {
|
|
871
805
|
let start = cloneDate($date), end;
|
|
872
|
-
if ($
|
|
806
|
+
if ($_dayGrid) {
|
|
873
807
|
start.setUTCDate(1);
|
|
874
808
|
} else if ($duration.inWeeks) {
|
|
875
809
|
// First day of week
|
|
@@ -910,11 +844,11 @@ function viewDates(state) {
|
|
|
910
844
|
|
|
911
845
|
function viewTitle(state) {
|
|
912
846
|
return derived(
|
|
913
|
-
[state.date, state._activeRange, state.
|
|
914
|
-
([$date, $_activeRange, $
|
|
915
|
-
return $
|
|
916
|
-
? $
|
|
917
|
-
: $
|
|
847
|
+
[state.date, state._activeRange, state._intlTitle, state._dayGrid],
|
|
848
|
+
([$date, $_activeRange, $_intlTitle, $_dayGrid]) => {
|
|
849
|
+
return $_dayGrid
|
|
850
|
+
? $_intlTitle.formatRange($date, $date)
|
|
851
|
+
: $_intlTitle.formatRange($_activeRange.start, subtractDay(cloneDate($_activeRange.end)));
|
|
918
852
|
}
|
|
919
853
|
);
|
|
920
854
|
}
|
|
@@ -1031,7 +965,11 @@ class State {
|
|
|
1031
965
|
|
|
1032
966
|
// Create options
|
|
1033
967
|
let options = createOptions(plugins);
|
|
1034
|
-
let parsers = createParsers(
|
|
968
|
+
let parsers = createParsers(plugins);
|
|
969
|
+
|
|
970
|
+
// Parse options
|
|
971
|
+
options = parseOpts(options, parsers);
|
|
972
|
+
input = parseOpts(input, parsers);
|
|
1035
973
|
|
|
1036
974
|
// Create stores for options
|
|
1037
975
|
for (let [option, value] of Object.entries(options)) {
|
|
@@ -1041,23 +979,22 @@ class State {
|
|
|
1041
979
|
// Private stores
|
|
1042
980
|
this._queue = writable(new Map()); // debounce queue
|
|
1043
981
|
this._auxiliary = writable([]); // auxiliary components
|
|
1044
|
-
this.
|
|
982
|
+
this._dayGrid = dayGrid(this);
|
|
1045
983
|
this._currentRange = currentRange(this);
|
|
1046
984
|
this._activeRange = activeRange(this);
|
|
1047
985
|
this._fetchedRange = writable({start: undefined, end: undefined});
|
|
1048
986
|
this._events = events(this);
|
|
1049
987
|
this._now = now();
|
|
1050
988
|
this._today = today(this);
|
|
1051
|
-
this._intlEventTime =
|
|
989
|
+
this._intlEventTime = intlRange(this.locale, this.eventTimeFormat);
|
|
1052
990
|
this._intlSlotLabel = intl(this.locale, this.slotLabelFormat);
|
|
1053
991
|
this._intlDayHeader = intl(this.locale, this.dayHeaderFormat);
|
|
1054
|
-
this.
|
|
992
|
+
this._intlTitle = intlRange(this.locale, this.titleFormat);
|
|
1055
993
|
this._bodyEl = writable(undefined);
|
|
1056
994
|
this._scrollable = writable(false);
|
|
1057
995
|
this._viewTitle = viewTitle(this);
|
|
1058
996
|
this._viewDates = viewDates(this);
|
|
1059
997
|
this._view = view(this);
|
|
1060
|
-
this._viewClass = writable(undefined);
|
|
1061
998
|
this._viewComponent = writable(undefined);
|
|
1062
999
|
// Resources
|
|
1063
1000
|
this._resBgColor = writable(noop);
|
|
@@ -1079,13 +1016,9 @@ class State {
|
|
|
1079
1016
|
}
|
|
1080
1017
|
|
|
1081
1018
|
// Set options for each view
|
|
1082
|
-
let
|
|
1083
|
-
parseOpts(commonOpts, this);
|
|
1084
|
-
let views = new Set([...Object.keys(options.views), ...Object.keys(input.views || {})]);
|
|
1019
|
+
let views = new Set([...keys(options.views), ...keys(input.views ?? {})]);
|
|
1085
1020
|
for (let view of views) {
|
|
1086
|
-
let
|
|
1087
|
-
parseOpts(viewOpts, this);
|
|
1088
|
-
let opts = assign({}, commonOpts, viewOpts);
|
|
1021
|
+
let opts = mergeOpts(options, options.views[view] ?? {}, input, input.views?.[view] ?? {});
|
|
1089
1022
|
// Change view component when view changes
|
|
1090
1023
|
this.view.subscribe(newView => {
|
|
1091
1024
|
if (newView === view) {
|
|
@@ -1096,7 +1029,7 @@ class State {
|
|
|
1096
1029
|
}
|
|
1097
1030
|
});
|
|
1098
1031
|
// Process options
|
|
1099
|
-
for (let key of
|
|
1032
|
+
for (let key of keys(opts)) {
|
|
1100
1033
|
if (this.hasOwnProperty(key) && key[0] !== '_') {
|
|
1101
1034
|
let {set, _set, ...rest} = this[key];
|
|
1102
1035
|
|
|
@@ -1124,14 +1057,28 @@ class State {
|
|
|
1124
1057
|
}
|
|
1125
1058
|
}
|
|
1126
1059
|
|
|
1127
|
-
function parseOpts(opts,
|
|
1128
|
-
|
|
1129
|
-
|
|
1130
|
-
|
|
1131
|
-
|
|
1132
|
-
|
|
1060
|
+
function parseOpts(opts, parsers) {
|
|
1061
|
+
let result = {};
|
|
1062
|
+
for (let key of keys(opts)) {
|
|
1063
|
+
result[key] = parsers[key] ? parsers[key](opts[key]) : opts[key];
|
|
1064
|
+
}
|
|
1065
|
+
if (opts.views) {
|
|
1066
|
+
for (let view of keys(opts.views)) {
|
|
1067
|
+
result.views[view] = parseOpts(opts.views[view], parsers);
|
|
1133
1068
|
}
|
|
1134
1069
|
}
|
|
1070
|
+
return result;
|
|
1071
|
+
}
|
|
1072
|
+
|
|
1073
|
+
function mergeOpts(...args) {
|
|
1074
|
+
let mergable = ['buttonText', 'theme'];
|
|
1075
|
+
let result = {};
|
|
1076
|
+
for (let opts of args) {
|
|
1077
|
+
for (let key of keys(opts)) {
|
|
1078
|
+
result[key] = mergable.includes(key) && is_function(opts[key]) ? opts[key](result[key]) : opts[key];
|
|
1079
|
+
}
|
|
1080
|
+
}
|
|
1081
|
+
return result;
|
|
1135
1082
|
}
|
|
1136
1083
|
|
|
1137
1084
|
/* packages/core/src/Buttons.svelte generated by Svelte v4.1.1 */
|
|
@@ -1142,7 +1089,7 @@ function get_each_context$2(ctx, list, i) {
|
|
|
1142
1089
|
return child_ctx;
|
|
1143
1090
|
}
|
|
1144
1091
|
|
|
1145
|
-
// (
|
|
1092
|
+
// (52:27)
|
|
1146
1093
|
function create_if_block_4(ctx) {
|
|
1147
1094
|
let button_1;
|
|
1148
1095
|
let t_value = /*$buttonText*/ ctx[5][/*button*/ ctx[23]] + "";
|
|
@@ -1194,7 +1141,7 @@ function create_if_block_4(ctx) {
|
|
|
1194
1141
|
};
|
|
1195
1142
|
}
|
|
1196
1143
|
|
|
1197
|
-
// (
|
|
1144
|
+
// (46:32)
|
|
1198
1145
|
function create_if_block_3(ctx) {
|
|
1199
1146
|
let button_1;
|
|
1200
1147
|
let t_value = /*$buttonText*/ ctx[5][/*button*/ ctx[23]] + "";
|
|
@@ -1241,13 +1188,14 @@ function create_if_block_3(ctx) {
|
|
|
1241
1188
|
};
|
|
1242
1189
|
}
|
|
1243
1190
|
|
|
1244
|
-
// (
|
|
1191
|
+
// (39:31)
|
|
1245
1192
|
function create_if_block_2(ctx) {
|
|
1246
1193
|
let button_1;
|
|
1247
1194
|
let i;
|
|
1248
1195
|
let i_class_value;
|
|
1249
1196
|
let button_1_class_value;
|
|
1250
1197
|
let button_1_aria_label_value;
|
|
1198
|
+
let button_1_title_value;
|
|
1251
1199
|
let mounted;
|
|
1252
1200
|
let dispose;
|
|
1253
1201
|
|
|
@@ -1258,6 +1206,7 @@ function create_if_block_2(ctx) {
|
|
|
1258
1206
|
attr(i, "class", i_class_value = "" + (/*$theme*/ ctx[3].icon + " ec-" + /*button*/ ctx[23]));
|
|
1259
1207
|
attr(button_1, "class", button_1_class_value = "" + (/*$theme*/ ctx[3].button + " ec-" + /*button*/ ctx[23]));
|
|
1260
1208
|
attr(button_1, "aria-label", button_1_aria_label_value = /*$buttonText*/ ctx[5].next);
|
|
1209
|
+
attr(button_1, "title", button_1_title_value = /*$buttonText*/ ctx[5].next);
|
|
1261
1210
|
},
|
|
1262
1211
|
m(target, anchor) {
|
|
1263
1212
|
insert(target, button_1, anchor);
|
|
@@ -1280,6 +1229,10 @@ function create_if_block_2(ctx) {
|
|
|
1280
1229
|
if (dirty & /*$buttonText*/ 32 && button_1_aria_label_value !== (button_1_aria_label_value = /*$buttonText*/ ctx[5].next)) {
|
|
1281
1230
|
attr(button_1, "aria-label", button_1_aria_label_value);
|
|
1282
1231
|
}
|
|
1232
|
+
|
|
1233
|
+
if (dirty & /*$buttonText*/ 32 && button_1_title_value !== (button_1_title_value = /*$buttonText*/ ctx[5].next)) {
|
|
1234
|
+
attr(button_1, "title", button_1_title_value);
|
|
1235
|
+
}
|
|
1283
1236
|
},
|
|
1284
1237
|
d(detaching) {
|
|
1285
1238
|
if (detaching) {
|
|
@@ -1292,13 +1245,14 @@ function create_if_block_2(ctx) {
|
|
|
1292
1245
|
};
|
|
1293
1246
|
}
|
|
1294
1247
|
|
|
1295
|
-
// (
|
|
1248
|
+
// (32:31)
|
|
1296
1249
|
function create_if_block_1(ctx) {
|
|
1297
1250
|
let button_1;
|
|
1298
1251
|
let i;
|
|
1299
1252
|
let i_class_value;
|
|
1300
1253
|
let button_1_class_value;
|
|
1301
1254
|
let button_1_aria_label_value;
|
|
1255
|
+
let button_1_title_value;
|
|
1302
1256
|
let mounted;
|
|
1303
1257
|
let dispose;
|
|
1304
1258
|
|
|
@@ -1309,6 +1263,7 @@ function create_if_block_1(ctx) {
|
|
|
1309
1263
|
attr(i, "class", i_class_value = "" + (/*$theme*/ ctx[3].icon + " ec-" + /*button*/ ctx[23]));
|
|
1310
1264
|
attr(button_1, "class", button_1_class_value = "" + (/*$theme*/ ctx[3].button + " ec-" + /*button*/ ctx[23]));
|
|
1311
1265
|
attr(button_1, "aria-label", button_1_aria_label_value = /*$buttonText*/ ctx[5].prev);
|
|
1266
|
+
attr(button_1, "title", button_1_title_value = /*$buttonText*/ ctx[5].prev);
|
|
1312
1267
|
},
|
|
1313
1268
|
m(target, anchor) {
|
|
1314
1269
|
insert(target, button_1, anchor);
|
|
@@ -1331,6 +1286,10 @@ function create_if_block_1(ctx) {
|
|
|
1331
1286
|
if (dirty & /*$buttonText*/ 32 && button_1_aria_label_value !== (button_1_aria_label_value = /*$buttonText*/ ctx[5].prev)) {
|
|
1332
1287
|
attr(button_1, "aria-label", button_1_aria_label_value);
|
|
1333
1288
|
}
|
|
1289
|
+
|
|
1290
|
+
if (dirty & /*$buttonText*/ 32 && button_1_title_value !== (button_1_title_value = /*$buttonText*/ ctx[5].prev)) {
|
|
1291
|
+
attr(button_1, "title", button_1_title_value);
|
|
1292
|
+
}
|
|
1334
1293
|
},
|
|
1335
1294
|
d(detaching) {
|
|
1336
1295
|
if (detaching) {
|
|
@@ -1346,30 +1305,38 @@ function create_if_block_1(ctx) {
|
|
|
1346
1305
|
// (29:4) {#if button == 'title'}
|
|
1347
1306
|
function create_if_block$1(ctx) {
|
|
1348
1307
|
let h2;
|
|
1349
|
-
let t;
|
|
1350
1308
|
let h2_class_value;
|
|
1309
|
+
let setContent_action;
|
|
1310
|
+
let mounted;
|
|
1311
|
+
let dispose;
|
|
1351
1312
|
|
|
1352
1313
|
return {
|
|
1353
1314
|
c() {
|
|
1354
1315
|
h2 = element("h2");
|
|
1355
|
-
t = text(/*$_viewTitle*/ ctx[4]);
|
|
1356
1316
|
attr(h2, "class", h2_class_value = /*$theme*/ ctx[3].title);
|
|
1357
1317
|
},
|
|
1358
1318
|
m(target, anchor) {
|
|
1359
1319
|
insert(target, h2, anchor);
|
|
1360
|
-
|
|
1320
|
+
|
|
1321
|
+
if (!mounted) {
|
|
1322
|
+
dispose = action_destroyer(setContent_action = setContent.call(null, h2, /*$_viewTitle*/ ctx[4]));
|
|
1323
|
+
mounted = true;
|
|
1324
|
+
}
|
|
1361
1325
|
},
|
|
1362
1326
|
p(ctx, dirty) {
|
|
1363
|
-
if (dirty & /*$_viewTitle*/ 16) set_data(t, /*$_viewTitle*/ ctx[4]);
|
|
1364
|
-
|
|
1365
1327
|
if (dirty & /*$theme*/ 8 && h2_class_value !== (h2_class_value = /*$theme*/ ctx[3].title)) {
|
|
1366
1328
|
attr(h2, "class", h2_class_value);
|
|
1367
1329
|
}
|
|
1330
|
+
|
|
1331
|
+
if (setContent_action && is_function(setContent_action.update) && dirty & /*$_viewTitle*/ 16) setContent_action.update.call(null, /*$_viewTitle*/ ctx[4]);
|
|
1368
1332
|
},
|
|
1369
1333
|
d(detaching) {
|
|
1370
1334
|
if (detaching) {
|
|
1371
1335
|
detach(h2);
|
|
1372
1336
|
}
|
|
1337
|
+
|
|
1338
|
+
mounted = false;
|
|
1339
|
+
dispose();
|
|
1373
1340
|
}
|
|
1374
1341
|
};
|
|
1375
1342
|
}
|
|
@@ -2175,7 +2142,7 @@ function create_fragment(ctx) {
|
|
|
2175
2142
|
let mounted;
|
|
2176
2143
|
let dispose;
|
|
2177
2144
|
toolbar = new Toolbar({});
|
|
2178
|
-
var switch_value = /*$_viewComponent*/ ctx[
|
|
2145
|
+
var switch_value = /*$_viewComponent*/ ctx[4];
|
|
2179
2146
|
|
|
2180
2147
|
function switch_props(ctx, dirty) {
|
|
2181
2148
|
return {};
|
|
@@ -2196,15 +2163,13 @@ function create_fragment(ctx) {
|
|
|
2196
2163
|
t1 = space();
|
|
2197
2164
|
create_component(auxiliary.$$.fragment);
|
|
2198
2165
|
|
|
2199
|
-
attr(div, "class", div_class_value = "" + (/*$theme*/ ctx[1].calendar + (/*$
|
|
2200
|
-
? ' ' + /*$theme*/ ctx[1][/*$_viewClass*/ ctx[2]]
|
|
2201
|
-
: '') + (/*$_scrollable*/ ctx[0]
|
|
2166
|
+
attr(div, "class", div_class_value = "" + (/*$theme*/ ctx[1].calendar + " " + /*$theme*/ ctx[1].view + (/*$_scrollable*/ ctx[0]
|
|
2202
2167
|
? ' ' + /*$theme*/ ctx[1].withScroll
|
|
2203
|
-
: '') + (/*$_iClass*/ ctx[
|
|
2204
|
-
? ' ' + /*$theme*/ ctx[1][/*$_iClass*/ ctx[
|
|
2168
|
+
: '') + (/*$_iClass*/ ctx[2]
|
|
2169
|
+
? ' ' + /*$theme*/ ctx[1][/*$_iClass*/ ctx[2]]
|
|
2205
2170
|
: '')));
|
|
2206
2171
|
|
|
2207
|
-
set_style(div, "height", /*$height*/ ctx[
|
|
2172
|
+
set_style(div, "height", /*$height*/ ctx[3]);
|
|
2208
2173
|
},
|
|
2209
2174
|
m(target, anchor) {
|
|
2210
2175
|
insert(target, div, anchor);
|
|
@@ -2216,12 +2181,12 @@ function create_fragment(ctx) {
|
|
|
2216
2181
|
current = true;
|
|
2217
2182
|
|
|
2218
2183
|
if (!mounted) {
|
|
2219
|
-
dispose = listen(window, "resize", /*recheckScrollable*/ ctx[
|
|
2184
|
+
dispose = listen(window, "resize", /*recheckScrollable*/ ctx[16]);
|
|
2220
2185
|
mounted = true;
|
|
2221
2186
|
}
|
|
2222
2187
|
},
|
|
2223
2188
|
p(ctx, dirty) {
|
|
2224
|
-
if (dirty[0] & /*$_viewComponent*/
|
|
2189
|
+
if (dirty[0] & /*$_viewComponent*/ 16 && switch_value !== (switch_value = /*$_viewComponent*/ ctx[4])) {
|
|
2225
2190
|
if (switch_instance) {
|
|
2226
2191
|
group_outros();
|
|
2227
2192
|
const old_component = switch_instance;
|
|
@@ -2243,18 +2208,16 @@ function create_fragment(ctx) {
|
|
|
2243
2208
|
}
|
|
2244
2209
|
}
|
|
2245
2210
|
|
|
2246
|
-
if (!current || dirty[0] & /*$theme, $
|
|
2247
|
-
? ' ' + /*$theme*/ ctx[1][/*$_viewClass*/ ctx[2]]
|
|
2248
|
-
: '') + (/*$_scrollable*/ ctx[0]
|
|
2211
|
+
if (!current || dirty[0] & /*$theme, $_scrollable, $_iClass*/ 7 && div_class_value !== (div_class_value = "" + (/*$theme*/ ctx[1].calendar + " " + /*$theme*/ ctx[1].view + (/*$_scrollable*/ ctx[0]
|
|
2249
2212
|
? ' ' + /*$theme*/ ctx[1].withScroll
|
|
2250
|
-
: '') + (/*$_iClass*/ ctx[
|
|
2251
|
-
? ' ' + /*$theme*/ ctx[1][/*$_iClass*/ ctx[
|
|
2213
|
+
: '') + (/*$_iClass*/ ctx[2]
|
|
2214
|
+
? ' ' + /*$theme*/ ctx[1][/*$_iClass*/ ctx[2]]
|
|
2252
2215
|
: '')))) {
|
|
2253
2216
|
attr(div, "class", div_class_value);
|
|
2254
2217
|
}
|
|
2255
2218
|
|
|
2256
|
-
if (!current || dirty[0] & /*$height*/
|
|
2257
|
-
set_style(div, "height", /*$height*/ ctx[
|
|
2219
|
+
if (!current || dirty[0] & /*$height*/ 8) {
|
|
2220
|
+
set_style(div, "height", /*$height*/ ctx[3]);
|
|
2258
2221
|
}
|
|
2259
2222
|
},
|
|
2260
2223
|
i(local) {
|
|
@@ -2294,7 +2257,6 @@ function instance($$self, $$props, $$invalidate) {
|
|
|
2294
2257
|
let $eventSources;
|
|
2295
2258
|
let $_interaction;
|
|
2296
2259
|
let $theme;
|
|
2297
|
-
let $_viewClass;
|
|
2298
2260
|
let $_iClass;
|
|
2299
2261
|
let $height;
|
|
2300
2262
|
let $_viewComponent;
|
|
@@ -2303,18 +2265,17 @@ function instance($$self, $$props, $$invalidate) {
|
|
|
2303
2265
|
let component = get_current_component();
|
|
2304
2266
|
let state = new State(plugins, options);
|
|
2305
2267
|
setContext('state', state);
|
|
2306
|
-
let { _viewComponent,
|
|
2307
|
-
component_subscribe($$self, _viewComponent, value => $$invalidate(
|
|
2308
|
-
component_subscribe($$self,
|
|
2309
|
-
component_subscribe($$self,
|
|
2310
|
-
component_subscribe($$self,
|
|
2311
|
-
component_subscribe($$self,
|
|
2312
|
-
component_subscribe($$self,
|
|
2313
|
-
component_subscribe($$self, _queue, value => $$invalidate(34, $_queue = value));
|
|
2268
|
+
let { _viewComponent, _bodyEl, _interaction, _iClass, _events, _queue, _scrollable, events, eventSources, height, theme } = state;
|
|
2269
|
+
component_subscribe($$self, _viewComponent, value => $$invalidate(4, $_viewComponent = value));
|
|
2270
|
+
component_subscribe($$self, _bodyEl, value => $$invalidate(31, $_bodyEl = value));
|
|
2271
|
+
component_subscribe($$self, _interaction, value => $$invalidate(36, $_interaction = value));
|
|
2272
|
+
component_subscribe($$self, _iClass, value => $$invalidate(2, $_iClass = value));
|
|
2273
|
+
component_subscribe($$self, _events, value => $$invalidate(33, $_events = value));
|
|
2274
|
+
component_subscribe($$self, _queue, value => $$invalidate(32, $_queue = value));
|
|
2314
2275
|
component_subscribe($$self, _scrollable, value => $$invalidate(0, $_scrollable = value));
|
|
2315
|
-
component_subscribe($$self, events, value => $$invalidate(
|
|
2316
|
-
component_subscribe($$self, eventSources, value => $$invalidate(
|
|
2317
|
-
component_subscribe($$self, height, value => $$invalidate(
|
|
2276
|
+
component_subscribe($$self, events, value => $$invalidate(34, $events = value));
|
|
2277
|
+
component_subscribe($$self, eventSources, value => $$invalidate(35, $eventSources = value));
|
|
2278
|
+
component_subscribe($$self, height, value => $$invalidate(3, $height = value));
|
|
2318
2279
|
component_subscribe($$self, theme, value => $$invalidate(1, $theme = value));
|
|
2319
2280
|
|
|
2320
2281
|
function setOption(name, value) {
|
|
@@ -2422,12 +2383,12 @@ function instance($$self, $$props, $$invalidate) {
|
|
|
2422
2383
|
}
|
|
2423
2384
|
|
|
2424
2385
|
$$self.$$set = $$props => {
|
|
2425
|
-
if ('plugins' in $$props) $$invalidate(
|
|
2426
|
-
if ('options' in $$props) $$invalidate(
|
|
2386
|
+
if ('plugins' in $$props) $$invalidate(17, plugins = $$props.plugins);
|
|
2387
|
+
if ('options' in $$props) $$invalidate(18, options = $$props.options);
|
|
2427
2388
|
};
|
|
2428
2389
|
|
|
2429
2390
|
$$self.$$.update = () => {
|
|
2430
|
-
if ($$self.$$.dirty[0] & /*options*/
|
|
2391
|
+
if ($$self.$$.dirty[0] & /*options*/ 262144) {
|
|
2431
2392
|
// Reactively update options that did change
|
|
2432
2393
|
for (let [name, value] of diff(options)) {
|
|
2433
2394
|
setOption(name, value);
|
|
@@ -2438,12 +2399,10 @@ function instance($$self, $$props, $$invalidate) {
|
|
|
2438
2399
|
return [
|
|
2439
2400
|
$_scrollable,
|
|
2440
2401
|
$theme,
|
|
2441
|
-
$_viewClass,
|
|
2442
2402
|
$_iClass,
|
|
2443
2403
|
$height,
|
|
2444
2404
|
$_viewComponent,
|
|
2445
2405
|
_viewComponent,
|
|
2446
|
-
_viewClass,
|
|
2447
2406
|
_bodyEl,
|
|
2448
2407
|
_interaction,
|
|
2449
2408
|
_iClass,
|
|
@@ -2483,20 +2442,20 @@ class Calendar extends SvelteComponent {
|
|
|
2483
2442
|
create_fragment,
|
|
2484
2443
|
safe_not_equal,
|
|
2485
2444
|
{
|
|
2486
|
-
plugins:
|
|
2487
|
-
options:
|
|
2488
|
-
setOption:
|
|
2489
|
-
getOption:
|
|
2490
|
-
refetchEvents:
|
|
2491
|
-
getEvents:
|
|
2492
|
-
getEventById:
|
|
2493
|
-
addEvent:
|
|
2494
|
-
updateEvent:
|
|
2495
|
-
removeEventById:
|
|
2496
|
-
getView:
|
|
2497
|
-
unselect:
|
|
2498
|
-
dateFromPoint:
|
|
2499
|
-
destroy:
|
|
2445
|
+
plugins: 17,
|
|
2446
|
+
options: 18,
|
|
2447
|
+
setOption: 19,
|
|
2448
|
+
getOption: 20,
|
|
2449
|
+
refetchEvents: 21,
|
|
2450
|
+
getEvents: 22,
|
|
2451
|
+
getEventById: 23,
|
|
2452
|
+
addEvent: 24,
|
|
2453
|
+
updateEvent: 25,
|
|
2454
|
+
removeEventById: 26,
|
|
2455
|
+
getView: 27,
|
|
2456
|
+
unselect: 28,
|
|
2457
|
+
dateFromPoint: 29,
|
|
2458
|
+
destroy: 30
|
|
2500
2459
|
},
|
|
2501
2460
|
null,
|
|
2502
2461
|
[-1, -1]
|
|
@@ -2504,52 +2463,52 @@ class Calendar extends SvelteComponent {
|
|
|
2504
2463
|
}
|
|
2505
2464
|
|
|
2506
2465
|
get setOption() {
|
|
2507
|
-
return this.$$.ctx[
|
|
2466
|
+
return this.$$.ctx[19];
|
|
2508
2467
|
}
|
|
2509
2468
|
|
|
2510
2469
|
get getOption() {
|
|
2511
|
-
return this.$$.ctx[
|
|
2470
|
+
return this.$$.ctx[20];
|
|
2512
2471
|
}
|
|
2513
2472
|
|
|
2514
2473
|
get refetchEvents() {
|
|
2515
|
-
return this.$$.ctx[
|
|
2474
|
+
return this.$$.ctx[21];
|
|
2516
2475
|
}
|
|
2517
2476
|
|
|
2518
2477
|
get getEvents() {
|
|
2519
|
-
return this.$$.ctx[
|
|
2478
|
+
return this.$$.ctx[22];
|
|
2520
2479
|
}
|
|
2521
2480
|
|
|
2522
2481
|
get getEventById() {
|
|
2523
|
-
return this.$$.ctx[
|
|
2482
|
+
return this.$$.ctx[23];
|
|
2524
2483
|
}
|
|
2525
2484
|
|
|
2526
2485
|
get addEvent() {
|
|
2527
|
-
return this.$$.ctx[
|
|
2486
|
+
return this.$$.ctx[24];
|
|
2528
2487
|
}
|
|
2529
2488
|
|
|
2530
2489
|
get updateEvent() {
|
|
2531
|
-
return this.$$.ctx[
|
|
2490
|
+
return this.$$.ctx[25];
|
|
2532
2491
|
}
|
|
2533
2492
|
|
|
2534
2493
|
get removeEventById() {
|
|
2535
|
-
return this.$$.ctx[
|
|
2494
|
+
return this.$$.ctx[26];
|
|
2536
2495
|
}
|
|
2537
2496
|
|
|
2538
2497
|
get getView() {
|
|
2539
|
-
return this.$$.ctx[
|
|
2498
|
+
return this.$$.ctx[27];
|
|
2540
2499
|
}
|
|
2541
2500
|
|
|
2542
2501
|
get unselect() {
|
|
2543
|
-
return this.$$.ctx[
|
|
2502
|
+
return this.$$.ctx[28];
|
|
2544
2503
|
}
|
|
2545
2504
|
|
|
2546
2505
|
get dateFromPoint() {
|
|
2547
|
-
return this.$$.ctx[
|
|
2506
|
+
return this.$$.ctx[29];
|
|
2548
2507
|
}
|
|
2549
2508
|
|
|
2550
2509
|
get destroy() {
|
|
2551
|
-
return this.$$.ctx[
|
|
2510
|
+
return this.$$.ctx[30];
|
|
2552
2511
|
}
|
|
2553
2512
|
}
|
|
2554
2513
|
|
|
2555
|
-
export { DAY_IN_SECONDS, addDay, addDuration, ancestor, assign, bgEvent, btnTextDay, btnTextMonth, btnTextWeek, btnTextYear, cloneDate, cloneEvent, createDate, createDuration, createElement, createEventChunk, createEventClasses, createEventContent, createEventSources, createEvents, createView, datesEqual, debounce, Calendar as default, derived2, eventIntersects, floor, flushDebounce,
|
|
2514
|
+
export { DAY_IN_SECONDS, addDay, addDuration, ancestor, assign, bgEvent, btnTextDay, btnTextMonth, btnTextWeek, btnTextYear, cloneDate, cloneEvent, copyTime, createDate, createDuration, createElement, createEventChunk, createEventClasses, createEventContent, createEventSources, createEvents, createView, datesEqual, debounce, Calendar as default, derived2, eventIntersects, floor, flushDebounce, getElementWithPayload, getPayload, ghostEvent, hasPayload, hasYScroll, height, helperEvent, intl, intlRange, keyEnter, keys, max, min, nextClosestDay, noTimePart, outsideEvent, pointerEvent, prepareEventChunks, prevClosestDay, previewEvent, rect, repositionEvent, setContent, setMidnight, setPayload, sortEventChunks, subtractDay, subtractDuration, symbol, themeView, toEventWithLocalDates, toISOString, toLocalDate, toViewWithLocalDates, writable2 };
|