@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/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
- while (node.firstChild) {
63
- node.removeChild(node.lastChild);
64
- }
65
- if (!isObject(content)) {
14
+ if (typeof content == 'string') {
66
15
  node.innerText = content;
67
- } else if (content.domNodes) {
68
- for (let child of content.domNodes) {
69
- node.appendChild(child);
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 _commonChunks(str1, substr1, str2, substr2) {
282
- let i = 0;
283
- while (i < str1.length) {
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
- if (res1.head === res2.head && res1.tail === res2.tail) {
299
- return res1;
300
- }
301
- }
302
- }
204
+ function flushDebounce(queue) {
205
+ run_all(queue);
206
+ queue.clear();
207
+ }
303
208
 
304
- return null
209
+ function assign(...args) {
210
+ return Object.assign(...args);
305
211
  }
306
212
 
307
- function _cut(str, substr, from) {
308
- let start = str.indexOf(substr, from);
309
- if (start >= 0) {
310
- let end = start + substr.length;
213
+ function keys(object) {
214
+ return Object.keys(object);
215
+ }
311
216
 
312
- return [end, {
313
- head: str.substr(0, start),
314
- tail: str.substr(end)
315
- }];
316
- }
217
+ function floor(value) {
218
+ return Math.floor(value);
219
+ }
317
220
 
318
- return [-1, null];
221
+ function min(...args) {
222
+ return Math.min(...args);
319
223
  }
320
224
 
321
- function debounce(fn, handle, queueStore) {
322
- queueStore.update(queue => queue.set(handle, fn));
225
+ function max(...args) {
226
+ return Math.max(...args);
323
227
  }
324
228
 
325
- function flushDebounce(queue) {
326
- run_all(queue);
327
- queue.clear();
229
+ function symbol() {
230
+ return Symbol('ec');
328
231
  }
329
232
 
330
- function createElement(tag, className, html, text) {
233
+ function createElement(tag, className, content) {
331
234
  let el = document.createElement(tag);
332
235
  el.className = className;
333
- if (html) {
334
- el.innerHTML = html;
335
- } else if (text) {
336
- el.innerText = text;
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.format(chunk.start), content;
539
- if (displayEventEnd && chunk.event.display !== 'pointer') {
540
- timeText += ` - ${_intlEventTime.format(chunk.end)}`;
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, null, timeText)]
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, null, timeText)],
564
- createElement('div', theme.eventTitle, chunk.event.titleHTML, chunk.event.title)
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(parser ? parser(value) : value, start),
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
- if (is_function($format)) {
681
- return {format: (start, end) => $format(toLocalDate(start), toLocalDate(end))};
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
- format: (start, end) => formatRange(toLocalDate(start), toLocalDate(end), intl)
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
- week: 'ec-week',
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(options, plugins) {
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, options);
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 monthMode(state) {
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._monthMode],
846
- ([$_currentRange, $firstDay, $slotMaxTime, $_monthMode]) => {
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 ($_monthMode) {
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._monthMode],
870
- ([$date, $duration, $firstDay, $_monthMode]) => {
803
+ [state.date, state.duration, state.firstDay, state._dayGrid],
804
+ ([$date, $duration, $firstDay, $_dayGrid]) => {
871
805
  let start = cloneDate($date), end;
872
- if ($_monthMode) {
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._titleIntlRange, state._monthMode],
914
- ([$date, $_activeRange, $_titleIntlRange, $_monthMode]) => {
915
- return $_monthMode
916
- ? $_titleIntlRange.format($date, $date)
917
- : $_titleIntlRange.format($_activeRange.start, subtractDay(cloneDate($_activeRange.end)));
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(options, plugins);
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._monthMode = monthMode(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 = intl(this.locale, this.eventTimeFormat);
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._titleIntlRange = intlRange(this.locale, this.titleFormat);
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 commonOpts = assign({}, options, input);
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 viewOpts = assign({}, options.views[view] ?? {}, input.views?.[view] ?? {});
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 Object.keys(opts)) {
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, state) {
1128
- for (let key of Object.keys(opts)) {
1129
- if (state.hasOwnProperty(key) && key[0] !== '_') {
1130
- if (state[key].parse) {
1131
- opts[key] = state[key].parse(opts[key]);
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
- // (37:27)
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
- // (35:32)
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
- // (33:31)
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
- // (31:31)
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
- append(h2, t);
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[5];
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 + (/*$_viewClass*/ ctx[2]
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[3]
2204
- ? ' ' + /*$theme*/ ctx[1][/*$_iClass*/ ctx[3]]
2168
+ : '') + (/*$_iClass*/ ctx[2]
2169
+ ? ' ' + /*$theme*/ ctx[1][/*$_iClass*/ ctx[2]]
2205
2170
  : '')));
2206
2171
 
2207
- set_style(div, "height", /*$height*/ ctx[4]);
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[18]);
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*/ 32 && switch_value !== (switch_value = /*$_viewComponent*/ ctx[5])) {
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, $_viewClass, $_scrollable, $_iClass*/ 15 && div_class_value !== (div_class_value = "" + (/*$theme*/ ctx[1].calendar + (/*$_viewClass*/ ctx[2]
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[3]
2251
- ? ' ' + /*$theme*/ ctx[1][/*$_iClass*/ ctx[3]]
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*/ 16) {
2257
- set_style(div, "height", /*$height*/ ctx[4]);
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, _viewClass, _bodyEl, _interaction, _iClass, _events, _queue, _scrollable, events, eventSources, height, theme } = state;
2307
- component_subscribe($$self, _viewComponent, value => $$invalidate(5, $_viewComponent = value));
2308
- component_subscribe($$self, _viewClass, value => $$invalidate(2, $_viewClass = value));
2309
- component_subscribe($$self, _bodyEl, value => $$invalidate(33, $_bodyEl = value));
2310
- component_subscribe($$self, _interaction, value => $$invalidate(38, $_interaction = value));
2311
- component_subscribe($$self, _iClass, value => $$invalidate(3, $_iClass = value));
2312
- component_subscribe($$self, _events, value => $$invalidate(35, $_events = value));
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(36, $events = value));
2316
- component_subscribe($$self, eventSources, value => $$invalidate(37, $eventSources = value));
2317
- component_subscribe($$self, height, value => $$invalidate(4, $height = value));
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(19, plugins = $$props.plugins);
2426
- if ('options' in $$props) $$invalidate(20, options = $$props.options);
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*/ 1048576) {
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: 19,
2487
- options: 20,
2488
- setOption: 21,
2489
- getOption: 22,
2490
- refetchEvents: 23,
2491
- getEvents: 24,
2492
- getEventById: 25,
2493
- addEvent: 26,
2494
- updateEvent: 27,
2495
- removeEventById: 28,
2496
- getView: 29,
2497
- unselect: 30,
2498
- dateFromPoint: 31,
2499
- destroy: 32
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[21];
2466
+ return this.$$.ctx[19];
2508
2467
  }
2509
2468
 
2510
2469
  get getOption() {
2511
- return this.$$.ctx[22];
2470
+ return this.$$.ctx[20];
2512
2471
  }
2513
2472
 
2514
2473
  get refetchEvents() {
2515
- return this.$$.ctx[23];
2474
+ return this.$$.ctx[21];
2516
2475
  }
2517
2476
 
2518
2477
  get getEvents() {
2519
- return this.$$.ctx[24];
2478
+ return this.$$.ctx[22];
2520
2479
  }
2521
2480
 
2522
2481
  get getEventById() {
2523
- return this.$$.ctx[25];
2482
+ return this.$$.ctx[23];
2524
2483
  }
2525
2484
 
2526
2485
  get addEvent() {
2527
- return this.$$.ctx[26];
2486
+ return this.$$.ctx[24];
2528
2487
  }
2529
2488
 
2530
2489
  get updateEvent() {
2531
- return this.$$.ctx[27];
2490
+ return this.$$.ctx[25];
2532
2491
  }
2533
2492
 
2534
2493
  get removeEventById() {
2535
- return this.$$.ctx[28];
2494
+ return this.$$.ctx[26];
2536
2495
  }
2537
2496
 
2538
2497
  get getView() {
2539
- return this.$$.ctx[29];
2498
+ return this.$$.ctx[27];
2540
2499
  }
2541
2500
 
2542
2501
  get unselect() {
2543
- return this.$$.ctx[30];
2502
+ return this.$$.ctx[28];
2544
2503
  }
2545
2504
 
2546
2505
  get dateFromPoint() {
2547
- return this.$$.ctx[31];
2506
+ return this.$$.ctx[29];
2548
2507
  }
2549
2508
 
2550
2509
  get destroy() {
2551
- return this.$$.ctx[32];
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, formatRange, getElementWithPayload, getPayload, ghostEvent, hasPayload, hasYScroll, height, helperEvent, intl, intlRange, isObject, keyEnter, max, min, nextClosestDay, noTimePart, outsideEvent, pointerEvent, prepareEventChunks, prevClosestDay, previewEvent, rect, repositionEvent, setContent, setMidnight, setPayload, sortEventChunks, subtractDay, subtractDuration, symbol, toEventWithLocalDates, toISOString, toLocalDate, toViewWithLocalDates, writable2 };
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 };