@event-calendar/core 4.2.0 → 4.3.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/README.md +2 -2
- package/dist/index.css +13 -4
- package/dist/index.js +208 -113
- package/package.json +2 -2
- package/src/lib/dom.js +4 -3
- package/src/plugins/resource-timeline/Body.svelte +13 -10
- package/src/plugins/resource-timeline/Header.svelte +4 -3
- package/src/plugins/resource-timeline/NowIndicator.svelte +39 -0
- package/src/plugins/resource-timeline/View.svelte +5 -1
- package/src/plugins/resource-timeline/index.js +3 -0
- package/src/plugins/time-grid/NowIndicator.svelte +3 -3
- package/src/styles/index.scss +12 -4
- package/src/styles/timeline.scss +1 -0
package/README.md
CHANGED
|
@@ -227,8 +227,8 @@ This bundle contains a version of the calendar that includes all plugins and is
|
|
|
227
227
|
|
|
228
228
|
The first step is to include the following lines of code in the `<head>` section of your page:
|
|
229
229
|
```html
|
|
230
|
-
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@event-calendar/build@4.
|
|
231
|
-
<script src="https://cdn.jsdelivr.net/npm/@event-calendar/build@4.
|
|
230
|
+
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@event-calendar/build@4.3.1/dist/event-calendar.min.css">
|
|
231
|
+
<script src="https://cdn.jsdelivr.net/npm/@event-calendar/build@4.3.1/dist/event-calendar.min.js"></script>
|
|
232
232
|
```
|
|
233
233
|
|
|
234
234
|
<details>
|
package/dist/index.css
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* EventCalendar v4.
|
|
2
|
+
* EventCalendar v4.3.1
|
|
3
3
|
* https://github.com/vkurko/calendar
|
|
4
4
|
*/
|
|
5
5
|
.ec {
|
|
@@ -74,6 +74,7 @@
|
|
|
74
74
|
display: flex;
|
|
75
75
|
flex-direction: column;
|
|
76
76
|
min-width: 0;
|
|
77
|
+
position: relative;
|
|
77
78
|
}
|
|
78
79
|
.ec-timeline .ec-content {
|
|
79
80
|
flex-direction: column;
|
|
@@ -725,19 +726,27 @@
|
|
|
725
726
|
.ec-now-indicator {
|
|
726
727
|
position: absolute;
|
|
727
728
|
z-index: 1005;
|
|
729
|
+
pointer-events: none;
|
|
730
|
+
}
|
|
731
|
+
.ec-time-grid .ec-now-indicator {
|
|
728
732
|
width: 100%;
|
|
729
733
|
border-top: var(--ec-now-indicator-color) solid 2px;
|
|
730
|
-
|
|
734
|
+
}
|
|
735
|
+
.ec-timeline .ec-now-indicator {
|
|
736
|
+
border-left: var(--ec-now-indicator-color) solid 2px;
|
|
737
|
+
will-change: transform;
|
|
731
738
|
}
|
|
732
739
|
.ec-now-indicator:before {
|
|
733
740
|
background: var(--ec-now-indicator-color);
|
|
734
741
|
border-radius: 50%;
|
|
735
742
|
content: "";
|
|
736
|
-
|
|
743
|
+
display: block;
|
|
737
744
|
height: 12px;
|
|
738
745
|
margin-top: -7px;
|
|
739
746
|
width: 12px;
|
|
740
|
-
|
|
747
|
+
}
|
|
748
|
+
.ec-timeline .ec-now-indicator:before {
|
|
749
|
+
margin-left: -7px;
|
|
741
750
|
}
|
|
742
751
|
|
|
743
752
|
.ec-resizer {
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* EventCalendar v4.
|
|
2
|
+
* EventCalendar v4.3.1
|
|
3
3
|
* https://github.com/vkurko/calendar
|
|
4
4
|
*/
|
|
5
5
|
import { tick, getContext, untrack, setContext, onMount, mount, unmount } from "svelte";
|
|
@@ -299,13 +299,14 @@ function ancestor(el, up) {
|
|
|
299
299
|
function height(el) {
|
|
300
300
|
return rect(el).height;
|
|
301
301
|
}
|
|
302
|
-
function getElementWithPayload(x, y, root2 = document) {
|
|
302
|
+
function getElementWithPayload(x, y, root2 = document, processed = []) {
|
|
303
|
+
processed.push(root2);
|
|
303
304
|
for (let el of root2.elementsFromPoint(x, y)) {
|
|
304
305
|
if (hasPayload(el)) {
|
|
305
306
|
return el;
|
|
306
307
|
}
|
|
307
|
-
if (el.shadowRoot && el.shadowRoot
|
|
308
|
-
let shadowEl = getElementWithPayload(x, y, el.shadowRoot);
|
|
308
|
+
if (el.shadowRoot && !processed.includes(el.shadowRoot)) {
|
|
309
|
+
let shadowEl = getElementWithPayload(x, y, el.shadowRoot, processed);
|
|
309
310
|
if (shadowEl) {
|
|
310
311
|
return shadowEl;
|
|
311
312
|
}
|
|
@@ -1240,12 +1241,12 @@ function filterOpts(opts, state) {
|
|
|
1240
1241
|
function validKey(key, state) {
|
|
1241
1242
|
return state.hasOwnProperty(key) && key[0] !== "_";
|
|
1242
1243
|
}
|
|
1243
|
-
var root_2$7 = $.
|
|
1244
|
-
var root_4$3 = $.
|
|
1245
|
-
var root_6$1 = $.
|
|
1246
|
-
var root_8$1 = $.
|
|
1247
|
-
var root_10$1 = $.
|
|
1248
|
-
var root_12$1 = $.
|
|
1244
|
+
var root_2$7 = $.from_html(`<h2></h2>`);
|
|
1245
|
+
var root_4$3 = $.from_html(`<button><i></i></button>`);
|
|
1246
|
+
var root_6$1 = $.from_html(`<button><i></i></button>`);
|
|
1247
|
+
var root_8$1 = $.from_html(`<button> </button>`);
|
|
1248
|
+
var root_10$1 = $.from_html(`<button></button>`);
|
|
1249
|
+
var root_12$1 = $.from_html(`<button> </button>`);
|
|
1249
1250
|
function Buttons($$anchor, $$props) {
|
|
1250
1251
|
$.push($$props, false);
|
|
1251
1252
|
const [$$stores, $$cleanup] = $.setup_stores();
|
|
@@ -1464,9 +1465,9 @@ function Buttons($$anchor, $$props) {
|
|
|
1464
1465
|
$.pop();
|
|
1465
1466
|
$$cleanup();
|
|
1466
1467
|
}
|
|
1467
|
-
var root_3$5 = $.
|
|
1468
|
-
var root_1$
|
|
1469
|
-
var root$r = $.
|
|
1468
|
+
var root_3$5 = $.from_html(`<div><!></div>`);
|
|
1469
|
+
var root_1$d = $.from_html(`<div></div>`);
|
|
1470
|
+
var root$r = $.from_html(`<nav></nav>`);
|
|
1470
1471
|
function Toolbar($$anchor, $$props) {
|
|
1471
1472
|
$.push($$props, true);
|
|
1472
1473
|
const [$$stores, $$cleanup] = $.setup_stores();
|
|
@@ -1483,7 +1484,7 @@ function Toolbar($$anchor, $$props) {
|
|
|
1483
1484
|
});
|
|
1484
1485
|
var nav = root$r();
|
|
1485
1486
|
$.each(nav, 21, () => keys($.get(sections)), $.index, ($$anchor2, key) => {
|
|
1486
|
-
var div = root_1$
|
|
1487
|
+
var div = root_1$d();
|
|
1487
1488
|
$.each(div, 21, () => $.get(sections)[$.get(key)], $.index, ($$anchor3, buttons) => {
|
|
1488
1489
|
var fragment = $.comment();
|
|
1489
1490
|
var node = $.first_child(fragment);
|
|
@@ -1600,7 +1601,7 @@ function Auxiliary$1($$anchor, $$props) {
|
|
|
1600
1601
|
$.pop();
|
|
1601
1602
|
$$cleanup();
|
|
1602
1603
|
}
|
|
1603
|
-
var root$q = $.
|
|
1604
|
+
var root$q = $.from_html(`<div><!> <!></div> <!>`, 1);
|
|
1604
1605
|
function Calendar($$anchor, $$props) {
|
|
1605
1606
|
$.push($$props, true);
|
|
1606
1607
|
const [$$stores, $$cleanup] = $.setup_stores();
|
|
@@ -1772,8 +1773,8 @@ function days(state) {
|
|
|
1772
1773
|
return days2;
|
|
1773
1774
|
});
|
|
1774
1775
|
}
|
|
1775
|
-
var root_1$
|
|
1776
|
-
var root$p = $.
|
|
1776
|
+
var root_1$c = $.from_html(`<div role="columnheader"><span></span></div>`);
|
|
1777
|
+
var root$p = $.from_html(`<div><div role="row"></div> <div></div></div>`);
|
|
1777
1778
|
function Header$1($$anchor, $$props) {
|
|
1778
1779
|
$.push($$props, false);
|
|
1779
1780
|
const [$$stores, $$cleanup] = $.setup_stores();
|
|
@@ -1791,7 +1792,7 @@ function Header$1($$anchor, $$props) {
|
|
|
1791
1792
|
var div = root$p();
|
|
1792
1793
|
var div_1 = $.child(div);
|
|
1793
1794
|
$.each(div_1, 5, $_days, $.index, ($$anchor2, day) => {
|
|
1794
|
-
var div_2 = root_1$
|
|
1795
|
+
var div_2 = root_1$c();
|
|
1795
1796
|
var span = $.child(div_2);
|
|
1796
1797
|
$.action(span, ($$node, $$action_arg) => setContent == null ? void 0 : setContent($$node, $$action_arg), () => $_intlDayHeader().format($.get(day)));
|
|
1797
1798
|
$.reset(div_2);
|
|
@@ -1823,8 +1824,8 @@ function Header$1($$anchor, $$props) {
|
|
|
1823
1824
|
$.pop();
|
|
1824
1825
|
$$cleanup();
|
|
1825
1826
|
}
|
|
1826
|
-
var root_1$
|
|
1827
|
-
var root$o = $.
|
|
1827
|
+
var root_1$b = $.from_html(`<div></div>`);
|
|
1828
|
+
var root$o = $.from_html(`<article><!></article>`);
|
|
1828
1829
|
function BaseEvent($$anchor, $$props) {
|
|
1829
1830
|
$.push($$props, true);
|
|
1830
1831
|
const [$$stores, $$cleanup] = $.setup_stores();
|
|
@@ -1871,7 +1872,7 @@ function BaseEvent($$anchor, $$props) {
|
|
|
1871
1872
|
bgEvent($.get(display)) ? $theme().bgEvent : $theme().event,
|
|
1872
1873
|
...createEventClasses($eventClassNames(), $.get(event), $_view())
|
|
1873
1874
|
]).join(" "));
|
|
1874
|
-
let $$d = $.derived(() => createEventContent($$props.chunk, $displayEventEnd(), $eventContent(), $theme(), $_intlEventTime(), $_view())),
|
|
1875
|
+
let $$d = $.derived(() => createEventContent($$props.chunk, $displayEventEnd(), $eventContent(), $theme(), $_intlEventTime(), $_view())), $$array = $.derived(() => $.to_array($.get($$d), 2)), timeText = $.derived(() => $.get($$array)[0]), content = $.derived(() => $.get($$array)[1]);
|
|
1875
1876
|
onMount(() => {
|
|
1876
1877
|
if (isFunction($eventDidMount())) {
|
|
1877
1878
|
$eventDidMount()({
|
|
@@ -1909,7 +1910,7 @@ function BaseEvent($$anchor, $$props) {
|
|
|
1909
1910
|
};
|
|
1910
1911
|
{
|
|
1911
1912
|
const defaultBody = ($$anchor2) => {
|
|
1912
|
-
var div = root_1$
|
|
1913
|
+
var div = root_1$b();
|
|
1913
1914
|
$.action(div, ($$node, $$action_arg) => setContent == null ? void 0 : setContent($$node, $$action_arg), () => $.get(content));
|
|
1914
1915
|
$.template_effect(() => $.set_class(div, 1, $.clsx($theme().eventBody)));
|
|
1915
1916
|
$.append($$anchor2, div);
|
|
@@ -2141,7 +2142,7 @@ function Event$4($$anchor, $$props) {
|
|
|
2141
2142
|
$$cleanup();
|
|
2142
2143
|
return $$pop;
|
|
2143
2144
|
}
|
|
2144
|
-
var root$n = $.
|
|
2145
|
+
var root$n = $.from_html(`<div><div><time></time> <a role="button" tabindex="0">×</a></div> <div></div></div>`);
|
|
2145
2146
|
function Popup($$anchor, $$props) {
|
|
2146
2147
|
$.push($$props, true);
|
|
2147
2148
|
const [$$stores, $$cleanup] = $.setup_stores();
|
|
@@ -2268,12 +2269,12 @@ function Popup($$anchor, $$props) {
|
|
|
2268
2269
|
$$cleanup();
|
|
2269
2270
|
}
|
|
2270
2271
|
$.delegate(["pointerdown", "click", "keydown"]);
|
|
2271
|
-
var root_1$
|
|
2272
|
-
var root_5$1 = $.
|
|
2273
|
-
var root_6 = $.
|
|
2274
|
-
var root_4$2 = $.
|
|
2275
|
-
var root_10 = $.
|
|
2276
|
-
var root$m = $.
|
|
2272
|
+
var root_1$a = $.from_html(`<span></span>`);
|
|
2273
|
+
var root_5$1 = $.from_html(`<div><!></div>`);
|
|
2274
|
+
var root_6 = $.from_html(`<div><!></div>`);
|
|
2275
|
+
var root_4$2 = $.from_html(`<!> <!>`, 1);
|
|
2276
|
+
var root_10 = $.from_html(`<a role="button" tabindex="0" aria-haspopup="true"></a>`);
|
|
2277
|
+
var root$m = $.from_html(`<div role="cell"><div><time></time> <!></div> <div><!></div> <!> <div><!></div> <!> <div><!></div></div>`);
|
|
2277
2278
|
function Day$4($$anchor, $$props) {
|
|
2278
2279
|
$.push($$props, true);
|
|
2279
2280
|
const [$$stores, $$cleanup] = $.setup_stores();
|
|
@@ -2401,7 +2402,7 @@ function Day$4($$anchor, $$props) {
|
|
|
2401
2402
|
var node = $.sibling(time, 2);
|
|
2402
2403
|
{
|
|
2403
2404
|
var consequent = ($$anchor2) => {
|
|
2404
|
-
var span = root_1$
|
|
2405
|
+
var span = root_1$a();
|
|
2405
2406
|
$.action(span, ($$node, $$action_arg) => setContent == null ? void 0 : setContent($$node, $$action_arg), () => $.get(weekNumber));
|
|
2406
2407
|
$.template_effect(() => $.set_class(span, 1, $theme().weekNumber));
|
|
2407
2408
|
$.append($$anchor2, span);
|
|
@@ -2570,7 +2571,7 @@ function Day$4($$anchor, $$props) {
|
|
|
2570
2571
|
return $$pop;
|
|
2571
2572
|
}
|
|
2572
2573
|
$.delegate(["pointerdown", "click", "keydown"]);
|
|
2573
|
-
var root$l = $.
|
|
2574
|
+
var root$l = $.from_html(`<div role="row"></div>`);
|
|
2574
2575
|
function Week$1($$anchor, $$props) {
|
|
2575
2576
|
$.push($$props, true);
|
|
2576
2577
|
const [$$stores, $$cleanup] = $.setup_stores();
|
|
@@ -2611,7 +2612,7 @@ function Week$1($$anchor, $$props) {
|
|
|
2611
2612
|
prepareEventChunks$1(bgChunks2, $hiddenDays());
|
|
2612
2613
|
let longChunks2 = prepareEventChunks$1(chunks2, $hiddenDays());
|
|
2613
2614
|
return [chunks2, bgChunks2, longChunks2];
|
|
2614
|
-
}),
|
|
2615
|
+
}), $$array = $.derived(() => $.to_array($.get($$d), 3)), chunks = $.derived(() => $.get($$array)[0]), bgChunks = $.derived(() => $.get($$array)[1]), longChunks = $.derived(() => $.get($$array)[2]);
|
|
2615
2616
|
let iChunks = $.derived(() => $_iEvents().map((event) => {
|
|
2616
2617
|
let chunk;
|
|
2617
2618
|
if (event && eventIntersects(event, $.get(start), $.get(end))) {
|
|
@@ -2660,7 +2661,7 @@ function Week$1($$anchor, $$props) {
|
|
|
2660
2661
|
$$cleanup();
|
|
2661
2662
|
return $$pop;
|
|
2662
2663
|
}
|
|
2663
|
-
var root$k = $.
|
|
2664
|
+
var root$k = $.from_html(`<div><div></div></div>`);
|
|
2664
2665
|
function Body$3($$anchor, $$props) {
|
|
2665
2666
|
$.push($$props, true);
|
|
2666
2667
|
const [$$stores, $$cleanup] = $.setup_stores();
|
|
@@ -2735,7 +2736,7 @@ function Body$3($$anchor, $$props) {
|
|
|
2735
2736
|
$.pop();
|
|
2736
2737
|
$$cleanup();
|
|
2737
2738
|
}
|
|
2738
|
-
var root$j = $.
|
|
2739
|
+
var root$j = $.from_html(`<!> <!>`, 1);
|
|
2739
2740
|
function View$4($$anchor) {
|
|
2740
2741
|
var fragment = root$j();
|
|
2741
2742
|
var node = $.first_child(fragment);
|
|
@@ -3487,9 +3488,9 @@ function Pointer($$anchor, $$props) {
|
|
|
3487
3488
|
$$cleanup();
|
|
3488
3489
|
return $$pop;
|
|
3489
3490
|
}
|
|
3490
|
-
var root_1$
|
|
3491
|
-
var root_2$6 = $.
|
|
3492
|
-
var root$i = $.
|
|
3491
|
+
var root_1$9 = $.from_html(`<div></div>`);
|
|
3492
|
+
var root_2$6 = $.from_html(`<div></div>`);
|
|
3493
|
+
var root$i = $.from_html(`<!> <!> <!>`, 1);
|
|
3493
3494
|
function Resizer($$anchor, $$props) {
|
|
3494
3495
|
$.push($$props, true);
|
|
3495
3496
|
const [$$stores, $$cleanup] = $.setup_stores();
|
|
@@ -3519,7 +3520,7 @@ function Resizer($$anchor, $$props) {
|
|
|
3519
3520
|
var node = $.first_child(fragment);
|
|
3520
3521
|
{
|
|
3521
3522
|
var consequent = ($$anchor2) => {
|
|
3522
|
-
var div = root_1$
|
|
3523
|
+
var div = root_1$9();
|
|
3523
3524
|
var event_handler = $.derived(() => createResizeHandler(true));
|
|
3524
3525
|
div.__pointerdown = function(...$$args) {
|
|
3525
3526
|
var _a;
|
|
@@ -3555,7 +3556,7 @@ function Resizer($$anchor, $$props) {
|
|
|
3555
3556
|
$$cleanup();
|
|
3556
3557
|
}
|
|
3557
3558
|
$.delegate(["pointerdown"]);
|
|
3558
|
-
var root$h = $.
|
|
3559
|
+
var root$h = $.from_html(`<!> <!>`, 1);
|
|
3559
3560
|
function Auxiliary($$anchor, $$props) {
|
|
3560
3561
|
$.push($$props, true);
|
|
3561
3562
|
const [$$stores, $$cleanup] = $.setup_stores();
|
|
@@ -3663,7 +3664,7 @@ const index$3 = {
|
|
|
3663
3664
|
state._auxiliary.update(($_auxiliary) => [...$_auxiliary, Auxiliary]);
|
|
3664
3665
|
}
|
|
3665
3666
|
};
|
|
3666
|
-
var root_1$
|
|
3667
|
+
var root_1$8 = $.from_html(`<div></div> <!>`, 1);
|
|
3667
3668
|
function Event$3($$anchor, $$props) {
|
|
3668
3669
|
$.push($$props, true);
|
|
3669
3670
|
const [$$stores, $$cleanup] = $.setup_stores();
|
|
@@ -3681,7 +3682,7 @@ function Event$3($$anchor, $$props) {
|
|
|
3681
3682
|
});
|
|
3682
3683
|
{
|
|
3683
3684
|
const body = ($$anchor2, defaultBody = $.noop, bgColor = $.noop, txtColor = $.noop) => {
|
|
3684
|
-
var fragment_1 = root_1$
|
|
3685
|
+
var fragment_1 = root_1$8();
|
|
3685
3686
|
var div = $.first_child(fragment_1);
|
|
3686
3687
|
let styles_1;
|
|
3687
3688
|
var node = $.sibling(div, 2);
|
|
@@ -3709,7 +3710,7 @@ function Event$3($$anchor, $$props) {
|
|
|
3709
3710
|
$.pop();
|
|
3710
3711
|
$$cleanup();
|
|
3711
3712
|
}
|
|
3712
|
-
var root_1$
|
|
3713
|
+
var root_1$7 = $.from_html(`<div role="listitem"><h4><time></time> <time></time></h4> <!></div>`);
|
|
3713
3714
|
function Day$3($$anchor, $$props) {
|
|
3714
3715
|
$.push($$props, true);
|
|
3715
3716
|
const [$$stores, $$cleanup] = $.setup_stores();
|
|
@@ -3770,7 +3771,7 @@ function Day$3($$anchor, $$props) {
|
|
|
3770
3771
|
var node = $.first_child(fragment);
|
|
3771
3772
|
{
|
|
3772
3773
|
var consequent = ($$anchor2) => {
|
|
3773
|
-
var div = root_1$
|
|
3774
|
+
var div = root_1$7();
|
|
3774
3775
|
div.__pointerdown = function(...$$args) {
|
|
3775
3776
|
var _a, _b;
|
|
3776
3777
|
(_b = (_a = $_interaction().action) == null ? void 0 : _a.select) == null ? void 0 : _b.apply(this, $$args);
|
|
@@ -3825,8 +3826,8 @@ function onclick$1(jsEvent, $noEventsClick, noEventsClick, $_view, _view) {
|
|
|
3825
3826
|
});
|
|
3826
3827
|
}
|
|
3827
3828
|
}
|
|
3828
|
-
var root_1$
|
|
3829
|
-
var root$g = $.
|
|
3829
|
+
var root_1$6 = $.from_html(`<div></div>`);
|
|
3830
|
+
var root$g = $.from_html(`<div><div><!></div></div>`);
|
|
3830
3831
|
function Body$2($$anchor, $$props) {
|
|
3831
3832
|
$.push($$props, true);
|
|
3832
3833
|
const [$$stores, $$cleanup] = $.setup_stores();
|
|
@@ -3866,7 +3867,7 @@ function Body$2($$anchor, $$props) {
|
|
|
3866
3867
|
var node = $.child(div_1);
|
|
3867
3868
|
{
|
|
3868
3869
|
var consequent = ($$anchor2) => {
|
|
3869
|
-
var div_2 = root_1$
|
|
3870
|
+
var div_2 = root_1$6();
|
|
3870
3871
|
div_2.__click = [
|
|
3871
3872
|
onclick$1,
|
|
3872
3873
|
$noEventsClick,
|
|
@@ -4015,8 +4016,8 @@ function createAllDayContent(allDayContent) {
|
|
|
4015
4016
|
}
|
|
4016
4017
|
return content;
|
|
4017
4018
|
}
|
|
4018
|
-
var root_1$
|
|
4019
|
-
var root$f = $.
|
|
4019
|
+
var root_1$5 = $.from_html(`<time></time>`);
|
|
4020
|
+
var root$f = $.from_html(`<div><div></div> <!></div> <div role="row"><div><!></div> <!></div>`, 1);
|
|
4020
4021
|
function Section($$anchor, $$props) {
|
|
4021
4022
|
$.push($$props, true);
|
|
4022
4023
|
const [$$stores, $$cleanup] = $.setup_stores();
|
|
@@ -4038,7 +4039,7 @@ function Section($$anchor, $$props) {
|
|
|
4038
4039
|
$.action(div_1, ($$node, $$action_arg) => setContent == null ? void 0 : setContent($$node, $$action_arg), () => $.get(allDayText));
|
|
4039
4040
|
var node = $.sibling(div_1, 2);
|
|
4040
4041
|
$.each(node, 1, $_times, $.index, ($$anchor2, time, i) => {
|
|
4041
|
-
var time_1 = root_1$
|
|
4042
|
+
var time_1 = root_1$5();
|
|
4042
4043
|
$.action(time_1, ($$node, $$action_arg) => setContent == null ? void 0 : setContent($$node, $$action_arg), () => $.get(time)[1]);
|
|
4043
4044
|
$.template_effect(() => {
|
|
4044
4045
|
$.set_class(time_1, 1, `${$theme().time ?? ""}${(i || $.get(showAllTimes)) && $.get(time)[2] ? "" : " " + $theme().minor}`);
|
|
@@ -4085,8 +4086,8 @@ function Section($$anchor, $$props) {
|
|
|
4085
4086
|
$.pop();
|
|
4086
4087
|
$$cleanup();
|
|
4087
4088
|
}
|
|
4088
|
-
var root_2$5 = $.
|
|
4089
|
-
var root$e = $.
|
|
4089
|
+
var root_2$5 = $.from_html(`<div></div>`);
|
|
4090
|
+
var root$e = $.from_html(`<div><div><!></div></div>`);
|
|
4090
4091
|
function Body$1($$anchor, $$props) {
|
|
4091
4092
|
$.push($$props, true);
|
|
4092
4093
|
const [$$stores, $$cleanup] = $.setup_stores();
|
|
@@ -4199,8 +4200,8 @@ function Event$2($$anchor, $$props) {
|
|
|
4199
4200
|
$.pop();
|
|
4200
4201
|
$$cleanup();
|
|
4201
4202
|
}
|
|
4202
|
-
var root$d = $.
|
|
4203
|
-
function NowIndicator($$anchor, $$props) {
|
|
4203
|
+
var root$d = $.from_html(`<div></div>`);
|
|
4204
|
+
function NowIndicator$1($$anchor, $$props) {
|
|
4204
4205
|
$.push($$props, true);
|
|
4205
4206
|
const [$$stores, $$cleanup] = $.setup_stores();
|
|
4206
4207
|
const $_now = () => $.store_get(_now, "$_now", $$stores);
|
|
@@ -4217,10 +4218,10 @@ function NowIndicator($$anchor, $$props) {
|
|
|
4217
4218
|
_today,
|
|
4218
4219
|
_slotTimeLimits
|
|
4219
4220
|
} = getContext("state");
|
|
4220
|
-
let start = $.derived(() => ($_now() - $_today()) / 1e3
|
|
4221
|
+
let start = $.derived(() => ($_now() - $_today()) / 1e3);
|
|
4221
4222
|
let top = $.derived(() => {
|
|
4222
|
-
let step = $slotDuration().seconds
|
|
4223
|
-
let offset = $_slotTimeLimits().min.seconds
|
|
4223
|
+
let step = $slotDuration().seconds;
|
|
4224
|
+
let offset = $_slotTimeLimits().min.seconds;
|
|
4224
4225
|
return ($.get(start) - offset) / step * $slotHeight();
|
|
4225
4226
|
});
|
|
4226
4227
|
var div = root$d();
|
|
@@ -4232,8 +4233,8 @@ function NowIndicator($$anchor, $$props) {
|
|
|
4232
4233
|
$.pop();
|
|
4233
4234
|
$$cleanup();
|
|
4234
4235
|
}
|
|
4235
|
-
var root_3$4 = $.
|
|
4236
|
-
var root$c = $.
|
|
4236
|
+
var root_3$4 = $.from_html(`<!> <!> <!>`, 1);
|
|
4237
|
+
var root$c = $.from_html(`<div role="cell"><div><!></div> <div><!></div> <div><!></div></div>`);
|
|
4237
4238
|
function Day$2($$anchor, $$props) {
|
|
4238
4239
|
$.push($$props, true);
|
|
4239
4240
|
const [$$stores, $$cleanup] = $.setup_stores();
|
|
@@ -4293,7 +4294,7 @@ function Day$2($$anchor, $$props) {
|
|
|
4293
4294
|
}
|
|
4294
4295
|
groupEventChunks(chunks2);
|
|
4295
4296
|
return [chunks2, bgChunks2];
|
|
4296
|
-
}),
|
|
4297
|
+
}), $$array = $.derived(() => $.to_array($.get($$d), 2)), chunks = $.derived(() => $.get($$array)[0]), bgChunks = $.derived(() => $.get($$array)[1]);
|
|
4297
4298
|
let iChunks = $.derived(() => {
|
|
4298
4299
|
if ($.get(disabled)) {
|
|
4299
4300
|
return [];
|
|
@@ -4400,7 +4401,7 @@ function Day$2($$anchor, $$props) {
|
|
|
4400
4401
|
var node_6 = $.child(div_3);
|
|
4401
4402
|
{
|
|
4402
4403
|
var consequent_4 = ($$anchor2) => {
|
|
4403
|
-
NowIndicator($$anchor2, {});
|
|
4404
|
+
NowIndicator$1($$anchor2, {});
|
|
4404
4405
|
};
|
|
4405
4406
|
$.if(node_6, ($$render) => {
|
|
4406
4407
|
if ($nowIndicator() && $.get(isToday) && !$.get(disabled)) $$render(consequent_4);
|
|
@@ -4468,8 +4469,8 @@ function Event$1($$anchor, $$props) {
|
|
|
4468
4469
|
});
|
|
4469
4470
|
return $.pop({ reposition });
|
|
4470
4471
|
}
|
|
4471
|
-
var root_3$3 = $.
|
|
4472
|
-
var root$b = $.
|
|
4472
|
+
var root_3$3 = $.from_html(`<div><!></div>`);
|
|
4473
|
+
var root$b = $.from_html(`<div role="cell"><div><!></div> <!> <div><!></div></div>`);
|
|
4473
4474
|
function Day$1($$anchor, $$props) {
|
|
4474
4475
|
$.push($$props, true);
|
|
4475
4476
|
const [$$stores, $$cleanup] = $.setup_stores();
|
|
@@ -4637,7 +4638,7 @@ function Week($$anchor, $$props) {
|
|
|
4637
4638
|
prepareEventChunks$1(bgChunks2, $hiddenDays());
|
|
4638
4639
|
let longChunks2 = prepareEventChunks$1(chunks2, $hiddenDays());
|
|
4639
4640
|
return [chunks2, bgChunks2, longChunks2];
|
|
4640
|
-
}),
|
|
4641
|
+
}), $$array = $.derived(() => $.to_array($.get($$d), 3)), chunks = $.derived(() => $.get($$array)[0]), bgChunks = $.derived(() => $.get($$array)[1]), longChunks = $.derived(() => $.get($$array)[2]);
|
|
4641
4642
|
function reposition() {
|
|
4642
4643
|
runReposition(refs, $$props.dates);
|
|
4643
4644
|
}
|
|
@@ -4689,9 +4690,9 @@ function Week($$anchor, $$props) {
|
|
|
4689
4690
|
$.pop();
|
|
4690
4691
|
$$cleanup();
|
|
4691
4692
|
}
|
|
4692
|
-
var root_2$4 = $.
|
|
4693
|
-
var root_3$2 = $.
|
|
4694
|
-
var root$a = $.
|
|
4693
|
+
var root_2$4 = $.from_html(`<div role="columnheader"><time></time></div>`);
|
|
4694
|
+
var root_3$2 = $.from_html(`<div><div><!> <div></div></div></div>`);
|
|
4695
|
+
var root$a = $.from_html(`<div><!> <div></div></div> <!> <!>`, 1);
|
|
4695
4696
|
function View$2($$anchor, $$props) {
|
|
4696
4697
|
$.push($$props, false);
|
|
4697
4698
|
const [$$stores, $$cleanup] = $.setup_stores();
|
|
@@ -4826,7 +4827,7 @@ const TimeGrid = {
|
|
|
4826
4827
|
state._times = times(state);
|
|
4827
4828
|
}
|
|
4828
4829
|
};
|
|
4829
|
-
var root$9 = $.
|
|
4830
|
+
var root$9 = $.from_html(`<span></span>`);
|
|
4830
4831
|
function Label$1($$anchor, $$props) {
|
|
4831
4832
|
$.push($$props, true);
|
|
4832
4833
|
const [$$stores, $$cleanup] = $.setup_stores();
|
|
@@ -4879,17 +4880,17 @@ function Label$1($$anchor, $$props) {
|
|
|
4879
4880
|
$.pop();
|
|
4880
4881
|
$$cleanup();
|
|
4881
4882
|
}
|
|
4882
|
-
var root_3$1 = $.
|
|
4883
|
-
var root_4$1 = $.
|
|
4884
|
-
var root_7 = $.
|
|
4885
|
-
var root_8 = $.
|
|
4886
|
-
var root_5 = $.
|
|
4887
|
-
var root_2$3 = $.
|
|
4888
|
-
var root_12 = $.
|
|
4889
|
-
var root_15 = $.
|
|
4890
|
-
var root_9 = $.
|
|
4891
|
-
var root_17 = $.
|
|
4892
|
-
var root$8 = $.
|
|
4883
|
+
var root_3$1 = $.from_html(`<div><time></time></div>`);
|
|
4884
|
+
var root_4$1 = $.from_html(`<div><!></div>`);
|
|
4885
|
+
var root_7 = $.from_html(`<div role="columnheader"><!></div>`);
|
|
4886
|
+
var root_8 = $.from_html(`<div role="columnheader"><time></time></div>`);
|
|
4887
|
+
var root_5 = $.from_html(`<div></div>`);
|
|
4888
|
+
var root_2$3 = $.from_html(`<div><!> <!></div>`);
|
|
4889
|
+
var root_12 = $.from_html(`<div></div>`);
|
|
4890
|
+
var root_15 = $.from_html(`<div><!></div>`);
|
|
4891
|
+
var root_9 = $.from_html(`<div><div><!> <div></div></div></div>`);
|
|
4892
|
+
var root_17 = $.from_html(`<div></div>`);
|
|
4893
|
+
var root$8 = $.from_html(`<div><!> <div></div></div> <!> <!>`, 1);
|
|
4893
4894
|
function View$1($$anchor, $$props) {
|
|
4894
4895
|
$.push($$props, true);
|
|
4895
4896
|
const [$$stores, $$cleanup] = $.setup_stores();
|
|
@@ -5209,7 +5210,7 @@ function dayTimes(state) {
|
|
|
5209
5210
|
function nestedResources(state) {
|
|
5210
5211
|
return derived(state.resources, ($resources) => $resources.some((resource) => getPayload(resource).children.length));
|
|
5211
5212
|
}
|
|
5212
|
-
var root$7 = $.
|
|
5213
|
+
var root$7 = $.from_html(`<span></span>`);
|
|
5213
5214
|
function Label($$anchor, $$props) {
|
|
5214
5215
|
$.push($$props, true);
|
|
5215
5216
|
const [$$stores, $$cleanup] = $.setup_stores();
|
|
@@ -5250,9 +5251,9 @@ function onclick(_, expanded, payload, toggle, resources) {
|
|
|
5250
5251
|
toggle($.get(payload).children, $.get(expanded));
|
|
5251
5252
|
resources.update(identity);
|
|
5252
5253
|
}
|
|
5253
|
-
var root_1$
|
|
5254
|
-
var root_2$2 = $.
|
|
5255
|
-
var root$6 = $.
|
|
5254
|
+
var root_1$4 = $.from_html(`<span></span>`);
|
|
5255
|
+
var root_2$2 = $.from_html(`<button><!></button>`);
|
|
5256
|
+
var root$6 = $.from_html(`<!> <span><!></span>`, 1);
|
|
5256
5257
|
function Expander($$anchor, $$props) {
|
|
5257
5258
|
$.push($$props, true);
|
|
5258
5259
|
const [$$stores, $$cleanup] = $.setup_stores();
|
|
@@ -5276,7 +5277,7 @@ function Expander($$anchor, $$props) {
|
|
|
5276
5277
|
var fragment = root$6();
|
|
5277
5278
|
var node = $.first_child(fragment);
|
|
5278
5279
|
$.each(node, 17, () => Array($.get(payload).level), $.index, ($$anchor2, level) => {
|
|
5279
|
-
var span = root_1$
|
|
5280
|
+
var span = root_1$4();
|
|
5280
5281
|
$.template_effect(() => $.set_class(span, 1, $theme().expander));
|
|
5281
5282
|
$.append($$anchor2, span);
|
|
5282
5283
|
});
|
|
@@ -5323,8 +5324,8 @@ function Expander($$anchor, $$props) {
|
|
|
5323
5324
|
$$cleanup();
|
|
5324
5325
|
}
|
|
5325
5326
|
$.delegate(["click"]);
|
|
5326
|
-
var root_1$
|
|
5327
|
-
var root$5 = $.
|
|
5327
|
+
var root_1$3 = $.from_html(`<div role="rowheader"><!> <!></div>`);
|
|
5328
|
+
var root$5 = $.from_html(`<div><div></div> <div></div></div>`);
|
|
5328
5329
|
function Sidebar($$anchor, $$props) {
|
|
5329
5330
|
$.push($$props, false);
|
|
5330
5331
|
const [$$stores, $$cleanup] = $.setup_stores();
|
|
@@ -5352,7 +5353,7 @@ function Sidebar($$anchor, $$props) {
|
|
|
5352
5353
|
var div_1 = $.child(div);
|
|
5353
5354
|
var div_2 = $.sibling(div_1, 2);
|
|
5354
5355
|
$.each(div_2, 5, $_viewResources, $.index, ($$anchor2, resource) => {
|
|
5355
|
-
var div_3 = root_1$
|
|
5356
|
+
var div_3 = root_1$3();
|
|
5356
5357
|
var node = $.child(div_3);
|
|
5357
5358
|
{
|
|
5358
5359
|
var consequent = ($$anchor3) => {
|
|
@@ -5399,17 +5400,18 @@ function Sidebar($$anchor, $$props) {
|
|
|
5399
5400
|
$.pop();
|
|
5400
5401
|
$$cleanup();
|
|
5401
5402
|
}
|
|
5402
|
-
var root_3 = $.
|
|
5403
|
-
var root_2$1 = $.
|
|
5404
|
-
var root_4 = $.
|
|
5405
|
-
var root_1$
|
|
5406
|
-
var root$4 = $.
|
|
5403
|
+
var root_3 = $.from_html(`<div role="columnheader"><time></time></div>`);
|
|
5404
|
+
var root_2$1 = $.from_html(`<div><time></time></div> <div></div>`, 1);
|
|
5405
|
+
var root_4 = $.from_html(`<div role="columnheader"><time></time></div>`);
|
|
5406
|
+
var root_1$2 = $.from_html(`<div><!></div>`);
|
|
5407
|
+
var root$4 = $.from_html(`<div><div role="row"></div> <div></div></div>`);
|
|
5407
5408
|
function Header($$anchor, $$props) {
|
|
5408
5409
|
$.push($$props, false);
|
|
5409
5410
|
const [$$stores, $$cleanup] = $.setup_stores();
|
|
5410
5411
|
const $theme = () => $.store_get(theme, "$theme", $$stores);
|
|
5411
5412
|
const $_headerEl = () => $.store_get(_headerEl, "$_headerEl", $$stores);
|
|
5412
5413
|
const $_viewDates = () => $.store_get(_viewDates, "$_viewDates", $$stores);
|
|
5414
|
+
const $_today = () => $.store_get(_today, "$_today", $$stores);
|
|
5413
5415
|
const $slotDuration = () => $.store_get(slotDuration, "$slotDuration", $$stores);
|
|
5414
5416
|
const $_intlDayHeaderAL = () => $.store_get(_intlDayHeaderAL, "$_intlDayHeaderAL", $$stores);
|
|
5415
5417
|
const $_intlDayHeader = () => $.store_get(_intlDayHeader, "$_intlDayHeader", $$stores);
|
|
@@ -5420,6 +5422,7 @@ function Header($$anchor, $$props) {
|
|
|
5420
5422
|
_intlDayHeader,
|
|
5421
5423
|
_intlDayHeaderAL,
|
|
5422
5424
|
_dayTimes,
|
|
5425
|
+
_today,
|
|
5423
5426
|
_viewDates,
|
|
5424
5427
|
slotDuration,
|
|
5425
5428
|
theme
|
|
@@ -5428,7 +5431,7 @@ function Header($$anchor, $$props) {
|
|
|
5428
5431
|
var div = root$4();
|
|
5429
5432
|
var div_1 = $.child(div);
|
|
5430
5433
|
$.each(div_1, 5, $_viewDates, $.index, ($$anchor2, date) => {
|
|
5431
|
-
var div_2 = root_1$
|
|
5434
|
+
var div_2 = root_1$2();
|
|
5432
5435
|
var node = $.child(div_2);
|
|
5433
5436
|
{
|
|
5434
5437
|
var consequent = ($$anchor3) => {
|
|
@@ -5491,12 +5494,13 @@ function Header($$anchor, $$props) {
|
|
|
5491
5494
|
}
|
|
5492
5495
|
$.reset(div_2);
|
|
5493
5496
|
$.template_effect(
|
|
5494
|
-
($0) => $.set_class(div_2, 1, `${$theme().day ?? ""} ${$0 ?? ""}`),
|
|
5497
|
+
($0, $1) => $.set_class(div_2, 1, `${$theme().day ?? ""} ${$0 ?? ""}${$1 ?? ""}`),
|
|
5495
5498
|
[
|
|
5496
5499
|
() => {
|
|
5497
5500
|
var _a;
|
|
5498
5501
|
return (_a = $theme().weekdays) == null ? void 0 : _a[$.get(date).getUTCDay()];
|
|
5499
|
-
}
|
|
5502
|
+
},
|
|
5503
|
+
() => datesEqual($.get(date), $_today()) ? " " + $theme().today : ""
|
|
5500
5504
|
],
|
|
5501
5505
|
$.derived_safe_equal
|
|
5502
5506
|
);
|
|
@@ -5699,8 +5703,8 @@ function Event($$anchor, $$props) {
|
|
|
5699
5703
|
$$cleanup();
|
|
5700
5704
|
return $$pop;
|
|
5701
5705
|
}
|
|
5702
|
-
var root_1 = $.
|
|
5703
|
-
var root$3 = $.
|
|
5706
|
+
var root_1$1 = $.from_html(`<!> <!> <!> <!>`, 1);
|
|
5707
|
+
var root$3 = $.from_html(`<div role="cell"><div><!></div></div>`);
|
|
5704
5708
|
function Day($$anchor, $$props) {
|
|
5705
5709
|
$.push($$props, true);
|
|
5706
5710
|
const [$$stores, $$cleanup] = $.setup_stores();
|
|
@@ -5761,7 +5765,7 @@ function Day($$anchor, $$props) {
|
|
|
5761
5765
|
var node = $.child(div_1);
|
|
5762
5766
|
{
|
|
5763
5767
|
var consequent_2 = ($$anchor2) => {
|
|
5764
|
-
var fragment = root_1();
|
|
5768
|
+
var fragment = root_1$1();
|
|
5765
5769
|
var node_1 = $.first_child(fragment);
|
|
5766
5770
|
$.each(node_1, 17, () => $.get(dayBgChunks), (chunk) => chunk.event, ($$anchor3, chunk) => {
|
|
5767
5771
|
Event($$anchor3, {
|
|
@@ -5850,7 +5854,7 @@ function Day($$anchor, $$props) {
|
|
|
5850
5854
|
return $$pop;
|
|
5851
5855
|
}
|
|
5852
5856
|
$.delegate(["pointerdown"]);
|
|
5853
|
-
var root$2 = $.
|
|
5857
|
+
var root$2 = $.from_html(`<div role="row"></div>`);
|
|
5854
5858
|
function Days($$anchor, $$props) {
|
|
5855
5859
|
$.push($$props, true);
|
|
5856
5860
|
const [$$stores, $$cleanup] = $.setup_stores();
|
|
@@ -5886,7 +5890,7 @@ function Days($$anchor, $$props) {
|
|
|
5886
5890
|
addDay(end2);
|
|
5887
5891
|
}
|
|
5888
5892
|
return [start2, end2];
|
|
5889
|
-
}),
|
|
5893
|
+
}), $$array = $.derived(() => $.to_array($.get($$d), 2)), start = $.derived(() => $.get($$array)[0]), end = $.derived(() => $.get($$array)[1]);
|
|
5890
5894
|
let $$d_1 = $.derived(() => {
|
|
5891
5895
|
let chunks2 = [];
|
|
5892
5896
|
let bgChunks2 = [];
|
|
@@ -5904,7 +5908,7 @@ function Days($$anchor, $$props) {
|
|
|
5904
5908
|
[bgChunks2] = prepareEventChunks(bgChunks2, $_viewDates(), $_dayTimeLimits(), $slotDuration());
|
|
5905
5909
|
[chunks2, longChunks2] = prepareEventChunks(chunks2, $_viewDates(), $_dayTimeLimits(), $slotDuration());
|
|
5906
5910
|
return [chunks2, bgChunks2, longChunks2];
|
|
5907
|
-
}),
|
|
5911
|
+
}), $$array_3 = $.derived(() => $.to_array($.get($$d_1), 3)), chunks = $.derived(() => $.get($$array_3)[0]), bgChunks = $.derived(() => $.get($$array_3)[1]), longChunks = $.derived(() => $.get($$array_3)[2]);
|
|
5908
5912
|
let iChunks = $.derived(() => $_iEvents().map((event) => {
|
|
5909
5913
|
let chunk;
|
|
5910
5914
|
if (event && eventIntersects(event, $.get(start), $.get(end), $$props.resource)) {
|
|
@@ -5961,14 +5965,14 @@ function Days($$anchor, $$props) {
|
|
|
5961
5965
|
$$cleanup();
|
|
5962
5966
|
return $$pop;
|
|
5963
5967
|
}
|
|
5964
|
-
var root_2 = $.
|
|
5965
|
-
var root$1 = $.
|
|
5968
|
+
var root_2 = $.from_html(`<div></div>`);
|
|
5969
|
+
var root$1 = $.from_html(`<div><div><div></div> <!></div></div>`);
|
|
5966
5970
|
function Body($$anchor, $$props) {
|
|
5967
5971
|
$.push($$props, true);
|
|
5968
5972
|
const [$$stores, $$cleanup] = $.setup_stores();
|
|
5969
|
-
const $_bodyEl = () => $.store_get(_bodyEl, "$_bodyEl", $$stores);
|
|
5970
5973
|
const $_dayTimeLimits = () => $.store_get(_dayTimeLimits, "$_dayTimeLimits", $$stores);
|
|
5971
5974
|
const $_viewDates = () => $.store_get(_viewDates, "$_viewDates", $$stores);
|
|
5975
|
+
const $_bodyEl = () => $.store_get(_bodyEl, "$_bodyEl", $$stores);
|
|
5972
5976
|
const $scrollTime = () => $.store_get(scrollTime, "$scrollTime", $$stores);
|
|
5973
5977
|
const $slotDuration = () => $.store_get(slotDuration, "$slotDuration", $$stores);
|
|
5974
5978
|
const $slotWidth = () => $.store_get(slotWidth, "$slotWidth", $$stores);
|
|
@@ -5981,28 +5985,28 @@ function Body($$anchor, $$props) {
|
|
|
5981
5985
|
const $_dayTimes = () => $.store_get(_dayTimes, "$_dayTimes", $$stores);
|
|
5982
5986
|
let {
|
|
5983
5987
|
_bodyEl,
|
|
5988
|
+
_bodyHeight,
|
|
5989
|
+
_bodyWidth,
|
|
5990
|
+
_bodyScrollLeft,
|
|
5984
5991
|
_headerEl,
|
|
5985
5992
|
_events,
|
|
5986
5993
|
_sidebarEl,
|
|
5987
5994
|
_dayTimes,
|
|
5988
5995
|
_dayTimeLimits,
|
|
5996
|
+
_recheckScrollable,
|
|
5989
5997
|
_resHs,
|
|
5990
5998
|
_viewResources,
|
|
5991
5999
|
_viewDates,
|
|
5992
|
-
_recheckScrollable,
|
|
5993
6000
|
scrollTime,
|
|
5994
6001
|
slotDuration,
|
|
5995
6002
|
slotWidth,
|
|
5996
6003
|
theme
|
|
5997
6004
|
} = getContext("state");
|
|
5998
|
-
let el = $.state(void 0);
|
|
5999
6005
|
let refs = [];
|
|
6000
|
-
$.user_effect(() => {
|
|
6001
|
-
$.store_set(_bodyEl, $.get(el));
|
|
6002
|
-
});
|
|
6003
6006
|
function scrollToTime() {
|
|
6004
6007
|
let slotTimeLimits2 = getSlotTimeLimits($_dayTimeLimits(), $_viewDates()[0]);
|
|
6005
|
-
$.
|
|
6008
|
+
$.store_mutate(_bodyEl, $.untrack($_bodyEl).scrollLeft = (toSeconds($scrollTime()) - toSeconds(slotTimeLimits2.min)) / toSeconds($slotDuration()) * $slotWidth(), $.untrack($_bodyEl));
|
|
6009
|
+
$.store_set(_bodyScrollLeft, $_bodyEl().scrollLeft);
|
|
6006
6010
|
}
|
|
6007
6011
|
$.user_effect(() => {
|
|
6008
6012
|
$_viewDates();
|
|
@@ -6021,6 +6025,12 @@ function Body($$anchor, $$props) {
|
|
|
6021
6025
|
function onscroll() {
|
|
6022
6026
|
$.store_mutate(_headerEl, $.untrack($_headerEl).scrollLeft = $_bodyEl().scrollLeft, $.untrack($_headerEl));
|
|
6023
6027
|
$.store_mutate(_sidebarEl, $.untrack($_sidebarEl).scrollTop = $_bodyEl().scrollTop, $.untrack($_sidebarEl));
|
|
6028
|
+
$.store_set(_bodyScrollLeft, $_bodyEl().scrollLeft);
|
|
6029
|
+
}
|
|
6030
|
+
function onresize() {
|
|
6031
|
+
$.store_set(_bodyHeight, $_bodyEl().clientHeight);
|
|
6032
|
+
$.store_set(_bodyWidth, $_bodyEl().clientWidth);
|
|
6033
|
+
$.store_set(_recheckScrollable, true);
|
|
6024
6034
|
}
|
|
6025
6035
|
var div = root$1();
|
|
6026
6036
|
$.event("resize", $.window, reposition);
|
|
@@ -6052,8 +6062,8 @@ function Body($$anchor, $$props) {
|
|
|
6052
6062
|
});
|
|
6053
6063
|
$.reset(div_1);
|
|
6054
6064
|
$.reset(div);
|
|
6055
|
-
$.bind_this(div, ($$value) => $.
|
|
6056
|
-
$.action(div, ($$node, $$action_arg) => observeResize == null ? void 0 : observeResize($$node, $$action_arg), () =>
|
|
6065
|
+
$.bind_this(div, ($$value) => $.store_set(_bodyEl, $$value), () => $_bodyEl());
|
|
6066
|
+
$.action(div, ($$node, $$action_arg) => observeResize == null ? void 0 : observeResize($$node, $$action_arg), () => onresize);
|
|
6057
6067
|
$.template_effect(() => {
|
|
6058
6068
|
$.set_class(div, 1, $theme().body);
|
|
6059
6069
|
$.set_class(div_1, 1, $theme().content);
|
|
@@ -6064,12 +6074,85 @@ function Body($$anchor, $$props) {
|
|
|
6064
6074
|
$.pop();
|
|
6065
6075
|
$$cleanup();
|
|
6066
6076
|
}
|
|
6067
|
-
var
|
|
6077
|
+
var root_1 = $.from_html(`<div></div>`);
|
|
6078
|
+
function NowIndicator($$anchor, $$props) {
|
|
6079
|
+
$.push($$props, true);
|
|
6080
|
+
const [$$stores, $$cleanup] = $.setup_stores();
|
|
6081
|
+
const $_viewDates = () => $.store_get(_viewDates, "$_viewDates", $$stores);
|
|
6082
|
+
const $_dayTimeLimits = () => $.store_get(_dayTimeLimits, "$_dayTimeLimits", $$stores);
|
|
6083
|
+
const $_today = () => $.store_get(_today, "$_today", $$stores);
|
|
6084
|
+
const $_now = () => $.store_get(_now, "$_now", $$stores);
|
|
6085
|
+
const $slotDuration = () => $.store_get(slotDuration, "$slotDuration", $$stores);
|
|
6086
|
+
const $slotWidth = () => $.store_get(slotWidth, "$slotWidth", $$stores);
|
|
6087
|
+
const $_bodyScrollLeft = () => $.store_get(_bodyScrollLeft, "$_bodyScrollLeft", $$stores);
|
|
6088
|
+
const $_bodyWidth = () => $.store_get(_bodyWidth, "$_bodyWidth", $$stores);
|
|
6089
|
+
const $theme = () => $.store_get(theme, "$theme", $$stores);
|
|
6090
|
+
const $_headerHeight = () => $.store_get(_headerHeight, "$_headerHeight", $$stores);
|
|
6091
|
+
const $_bodyHeight = () => $.store_get(_bodyHeight, "$_bodyHeight", $$stores);
|
|
6092
|
+
let {
|
|
6093
|
+
slotDuration,
|
|
6094
|
+
slotWidth,
|
|
6095
|
+
theme,
|
|
6096
|
+
_bodyHeight,
|
|
6097
|
+
_bodyWidth,
|
|
6098
|
+
_bodyScrollLeft,
|
|
6099
|
+
_headerHeight,
|
|
6100
|
+
_dayTimeLimits,
|
|
6101
|
+
_now,
|
|
6102
|
+
_today,
|
|
6103
|
+
_viewDates
|
|
6104
|
+
} = getContext("state");
|
|
6105
|
+
let left = $.derived(() => {
|
|
6106
|
+
let offset = 0;
|
|
6107
|
+
for (let i = 0; i < $_viewDates().length; ++i) {
|
|
6108
|
+
let slotTimeLimits2 = getSlotTimeLimits($_dayTimeLimits(), $_viewDates()[i]);
|
|
6109
|
+
if (datesEqual($_viewDates()[i], $_today())) {
|
|
6110
|
+
let dayStart = addDuration(cloneDate($_viewDates()[i]), slotTimeLimits2.min);
|
|
6111
|
+
let dayEnd = addDuration(cloneDate($_viewDates()[i]), slotTimeLimits2.max);
|
|
6112
|
+
if ($_now() >= dayStart && $_now() <= dayEnd) {
|
|
6113
|
+
offset += ($_now() - dayStart) / 1e3;
|
|
6114
|
+
break;
|
|
6115
|
+
} else {
|
|
6116
|
+
return null;
|
|
6117
|
+
}
|
|
6118
|
+
} else {
|
|
6119
|
+
offset += slotTimeLimits2.max.seconds - slotTimeLimits2.min.seconds;
|
|
6120
|
+
}
|
|
6121
|
+
}
|
|
6122
|
+
let step = $slotDuration().seconds;
|
|
6123
|
+
return offset / step * $slotWidth() - $_bodyScrollLeft();
|
|
6124
|
+
});
|
|
6125
|
+
var fragment = $.comment();
|
|
6126
|
+
var node = $.first_child(fragment);
|
|
6127
|
+
{
|
|
6128
|
+
var consequent = ($$anchor2) => {
|
|
6129
|
+
var div = root_1();
|
|
6130
|
+
let styles;
|
|
6131
|
+
$.template_effect(() => {
|
|
6132
|
+
$.set_class(div, 1, $theme().nowIndicator);
|
|
6133
|
+
styles = $.set_style(div, "", styles, {
|
|
6134
|
+
top: `${$_headerHeight() + 2}px`,
|
|
6135
|
+
left: `${$.get(left) ?? ""}px`,
|
|
6136
|
+
height: `${$_bodyHeight() - 1}px`
|
|
6137
|
+
});
|
|
6138
|
+
});
|
|
6139
|
+
$.append($$anchor2, div);
|
|
6140
|
+
};
|
|
6141
|
+
$.if(node, ($$render) => {
|
|
6142
|
+
if ($.get(left) !== null && $.get(left) >= 3 && $.get(left) <= $_bodyWidth() - 3) $$render(consequent);
|
|
6143
|
+
});
|
|
6144
|
+
}
|
|
6145
|
+
$.append($$anchor, fragment);
|
|
6146
|
+
$.pop();
|
|
6147
|
+
$$cleanup();
|
|
6148
|
+
}
|
|
6149
|
+
var root = $.from_html(`<div><!> <div><!> <!> <!></div></div>`);
|
|
6068
6150
|
function View($$anchor, $$props) {
|
|
6069
6151
|
$.push($$props, false);
|
|
6070
6152
|
const [$$stores, $$cleanup] = $.setup_stores();
|
|
6071
6153
|
const $theme = () => $.store_get(theme, "$theme", $$stores);
|
|
6072
|
-
|
|
6154
|
+
const $nowIndicator = () => $.store_get(nowIndicator, "$nowIndicator", $$stores);
|
|
6155
|
+
let { nowIndicator, theme } = getContext("state");
|
|
6073
6156
|
$.init();
|
|
6074
6157
|
var div = root();
|
|
6075
6158
|
var node = $.child(div);
|
|
@@ -6079,6 +6162,15 @@ function View($$anchor, $$props) {
|
|
|
6079
6162
|
Header(node_1, {});
|
|
6080
6163
|
var node_2 = $.sibling(node_1, 2);
|
|
6081
6164
|
Body(node_2, {});
|
|
6165
|
+
var node_3 = $.sibling(node_2, 2);
|
|
6166
|
+
{
|
|
6167
|
+
var consequent = ($$anchor2) => {
|
|
6168
|
+
NowIndicator($$anchor2, {});
|
|
6169
|
+
};
|
|
6170
|
+
$.if(node_3, ($$render) => {
|
|
6171
|
+
if ($nowIndicator()) $$render(consequent);
|
|
6172
|
+
});
|
|
6173
|
+
}
|
|
6082
6174
|
$.reset(div_1);
|
|
6083
6175
|
$.reset(div);
|
|
6084
6176
|
$.template_effect(() => {
|
|
@@ -6135,6 +6227,9 @@ const index = {
|
|
|
6135
6227
|
if (!("_viewResources" in state)) {
|
|
6136
6228
|
state._viewResources = viewResources(state);
|
|
6137
6229
|
}
|
|
6230
|
+
state._bodyHeight = writable(0);
|
|
6231
|
+
state._bodyWidth = writable(0);
|
|
6232
|
+
state._bodyScrollLeft = writable(0);
|
|
6138
6233
|
state._headerEl = writable(void 0);
|
|
6139
6234
|
state._headerHeight = writable(0);
|
|
6140
6235
|
state._dayTimeLimits = dayTimeLimits(state);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@event-calendar/core",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.3.1",
|
|
4
4
|
"title": "Event Calendar Core package",
|
|
5
5
|
"description": "Full-sized drag & drop event calendar with resource & timeline views",
|
|
6
6
|
"keywords": [
|
|
@@ -32,6 +32,6 @@
|
|
|
32
32
|
"#components": "./src/lib/components/index.js"
|
|
33
33
|
},
|
|
34
34
|
"dependencies": {
|
|
35
|
-
"svelte": "^5.
|
|
35
|
+
"svelte": "^5.33.14"
|
|
36
36
|
}
|
|
37
37
|
}
|
package/src/lib/dom.js
CHANGED
|
@@ -35,14 +35,15 @@ export function height(el) {
|
|
|
35
35
|
return rect(el).height;
|
|
36
36
|
}
|
|
37
37
|
|
|
38
|
-
export function getElementWithPayload(x, y, root = document) {
|
|
38
|
+
export function getElementWithPayload(x, y, root = document, processed = []) {
|
|
39
|
+
processed.push(root);
|
|
39
40
|
for (let el of root.elementsFromPoint(x, y)) {
|
|
40
41
|
if (hasPayload(el)) {
|
|
41
42
|
return el;
|
|
42
43
|
}
|
|
43
44
|
/** @see https://github.com/vkurko/calendar/issues/142 */
|
|
44
|
-
if (el.shadowRoot && el.shadowRoot
|
|
45
|
-
let shadowEl = getElementWithPayload(x, y, el.shadowRoot);
|
|
45
|
+
if (el.shadowRoot && !processed.includes(el.shadowRoot)) {
|
|
46
|
+
let shadowEl = getElementWithPayload(x, y, el.shadowRoot, processed);
|
|
46
47
|
if (shadowEl) {
|
|
47
48
|
return shadowEl;
|
|
48
49
|
}
|
|
@@ -4,19 +4,15 @@
|
|
|
4
4
|
import {getSlotTimeLimits} from './lib.js';
|
|
5
5
|
import Days from './Days.svelte';
|
|
6
6
|
|
|
7
|
-
let {_bodyEl,
|
|
8
|
-
_recheckScrollable, scrollTime, slotDuration, slotWidth, theme} = getContext('state');
|
|
7
|
+
let {_bodyEl, _bodyHeight, _bodyWidth, _bodyScrollLeft, _headerEl, _events, _sidebarEl, _dayTimes, _dayTimeLimits,
|
|
8
|
+
_recheckScrollable, _resHs, _viewResources, _viewDates, scrollTime, slotDuration, slotWidth, theme} = getContext('state');
|
|
9
9
|
|
|
10
|
-
let el = $state();
|
|
11
10
|
let refs = [];
|
|
12
11
|
|
|
13
|
-
$effect(() => {
|
|
14
|
-
$_bodyEl = el;
|
|
15
|
-
});
|
|
16
|
-
|
|
17
12
|
function scrollToTime() {
|
|
18
13
|
let slotTimeLimits = getSlotTimeLimits($_dayTimeLimits, $_viewDates[0]);
|
|
19
|
-
|
|
14
|
+
$_bodyEl.scrollLeft = (toSeconds($scrollTime) - toSeconds(slotTimeLimits.min)) / toSeconds($slotDuration) * $slotWidth;
|
|
15
|
+
$_bodyScrollLeft = $_bodyEl.scrollLeft;
|
|
20
16
|
}
|
|
21
17
|
$effect(() => {
|
|
22
18
|
$_viewDates;
|
|
@@ -37,14 +33,21 @@
|
|
|
37
33
|
function onscroll() {
|
|
38
34
|
$_headerEl.scrollLeft = $_bodyEl.scrollLeft;
|
|
39
35
|
$_sidebarEl.scrollTop = $_bodyEl.scrollTop;
|
|
36
|
+
$_bodyScrollLeft = $_bodyEl.scrollLeft;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
function onresize() {
|
|
40
|
+
$_bodyHeight = $_bodyEl.clientHeight;
|
|
41
|
+
$_bodyWidth = $_bodyEl.clientWidth;
|
|
42
|
+
$_recheckScrollable = true;
|
|
40
43
|
}
|
|
41
44
|
</script>
|
|
42
45
|
|
|
43
46
|
<div
|
|
44
|
-
bind:this={
|
|
47
|
+
bind:this={$_bodyEl}
|
|
45
48
|
class="{$theme.body}"
|
|
46
49
|
{onscroll}
|
|
47
|
-
use:observeResize={
|
|
50
|
+
use:observeResize={onresize}
|
|
48
51
|
>
|
|
49
52
|
<div class="{$theme.content}">
|
|
50
53
|
<div class="{$theme.lines}">
|
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
<script>
|
|
2
2
|
import {getContext} from 'svelte';
|
|
3
|
-
import {setContent, toISOString, toSeconds, observeResize} from '#lib';
|
|
3
|
+
import {datesEqual, setContent, toISOString, toSeconds, observeResize} from '#lib';
|
|
4
4
|
|
|
5
|
-
let {_headerEl, _headerHeight,_intlDayHeader, _intlDayHeaderAL, _dayTimes,
|
|
5
|
+
let {_headerEl, _headerHeight, _intlDayHeader, _intlDayHeaderAL, _dayTimes, _today, _viewDates,
|
|
6
|
+
slotDuration, theme} = getContext('state');
|
|
6
7
|
</script>
|
|
7
8
|
|
|
8
9
|
<div class="{$theme.header}" bind:this={$_headerEl} use:observeResize={() => $_headerHeight = $_headerEl.clientHeight}>
|
|
9
10
|
<div class="{$theme.days}" role="row">
|
|
10
11
|
{#each $_viewDates as date}
|
|
11
|
-
<div class="{$theme.day} {$theme.weekdays?.[date.getUTCDay()]}">
|
|
12
|
+
<div class="{$theme.day} {$theme.weekdays?.[date.getUTCDay()]}{datesEqual(date, $_today) ? ' ' + $theme.today : ''}">
|
|
12
13
|
{#if toSeconds($slotDuration)}
|
|
13
14
|
<div class="{$theme.dayHead}">
|
|
14
15
|
<time
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
<script>
|
|
2
|
+
import {getContext} from 'svelte';
|
|
3
|
+
import {addDuration, cloneDate, datesEqual} from '#lib';
|
|
4
|
+
import {getSlotTimeLimits} from './lib.js';
|
|
5
|
+
|
|
6
|
+
let {slotDuration, slotWidth, theme, _bodyHeight, _bodyWidth, _bodyScrollLeft,
|
|
7
|
+
_headerHeight, _dayTimeLimits, _now, _today, _viewDates} = getContext('state');
|
|
8
|
+
|
|
9
|
+
// Style
|
|
10
|
+
let left = $derived.by(() => {
|
|
11
|
+
let offset = 0;
|
|
12
|
+
for (let i = 0; i < $_viewDates.length; ++i) {
|
|
13
|
+
let slotTimeLimits = getSlotTimeLimits($_dayTimeLimits, $_viewDates[i]);
|
|
14
|
+
if (datesEqual($_viewDates[i], $_today)) {
|
|
15
|
+
let dayStart = addDuration(cloneDate($_viewDates[i]), slotTimeLimits.min);
|
|
16
|
+
let dayEnd = addDuration(cloneDate($_viewDates[i]), slotTimeLimits.max);
|
|
17
|
+
if ($_now >= dayStart && $_now <= dayEnd) {
|
|
18
|
+
offset += ($_now - dayStart) / 1000;
|
|
19
|
+
break;
|
|
20
|
+
} else {
|
|
21
|
+
return null;
|
|
22
|
+
}
|
|
23
|
+
} else {
|
|
24
|
+
offset += slotTimeLimits.max.seconds - slotTimeLimits.min.seconds;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
let step = $slotDuration.seconds;
|
|
28
|
+
return offset / step * $slotWidth - $_bodyScrollLeft;
|
|
29
|
+
});
|
|
30
|
+
</script>
|
|
31
|
+
|
|
32
|
+
{#if left !== null && left >= 3 && left <= $_bodyWidth - 3}
|
|
33
|
+
<div
|
|
34
|
+
class="{$theme.nowIndicator}"
|
|
35
|
+
style:top="{$_headerHeight+2}px"
|
|
36
|
+
style:left="{left}px"
|
|
37
|
+
style:height="{$_bodyHeight-1}px"
|
|
38
|
+
></div>
|
|
39
|
+
{/if}
|
|
@@ -3,8 +3,9 @@
|
|
|
3
3
|
import Sidebar from './Sidebar.svelte';
|
|
4
4
|
import Header from './Header.svelte';
|
|
5
5
|
import Body from './Body.svelte';
|
|
6
|
+
import NowIndicator from './NowIndicator.svelte';
|
|
6
7
|
|
|
7
|
-
let {theme} = getContext('state');
|
|
8
|
+
let {nowIndicator, theme} = getContext('state');
|
|
8
9
|
</script>
|
|
9
10
|
|
|
10
11
|
<div class="{$theme.container}">
|
|
@@ -12,5 +13,8 @@
|
|
|
12
13
|
<div class="{$theme.main}">
|
|
13
14
|
<Header/>
|
|
14
15
|
<Body/>
|
|
16
|
+
{#if $nowIndicator}
|
|
17
|
+
<NowIndicator/>
|
|
18
|
+
{/if}
|
|
15
19
|
</div>
|
|
16
20
|
</div>
|
|
@@ -51,6 +51,9 @@ export default {
|
|
|
51
51
|
if (!('_viewResources' in state)) {
|
|
52
52
|
state._viewResources = viewResources(state);
|
|
53
53
|
}
|
|
54
|
+
state._bodyHeight = writable(0);
|
|
55
|
+
state._bodyWidth = writable(0);
|
|
56
|
+
state._bodyScrollLeft = writable(0);
|
|
54
57
|
state._headerEl = writable(undefined);
|
|
55
58
|
state._headerHeight = writable(0);
|
|
56
59
|
state._dayTimeLimits = dayTimeLimits(state); // flexible time limits per day
|
|
@@ -3,11 +3,11 @@
|
|
|
3
3
|
|
|
4
4
|
let {slotDuration, slotHeight, theme, _now, _today, _slotTimeLimits} = getContext('state');
|
|
5
5
|
|
|
6
|
-
let start = $derived(($_now - $_today) / 1000
|
|
6
|
+
let start = $derived(($_now - $_today) / 1000);
|
|
7
7
|
// Style
|
|
8
8
|
let top = $derived.by(() => {
|
|
9
|
-
let step = $slotDuration.seconds
|
|
10
|
-
let offset = $_slotTimeLimits.min.seconds
|
|
9
|
+
let step = $slotDuration.seconds;
|
|
10
|
+
let offset = $_slotTimeLimits.min.seconds;
|
|
11
11
|
return (start - offset) / step * $slotHeight;
|
|
12
12
|
});
|
|
13
13
|
</script>
|
package/src/styles/index.scss
CHANGED
|
@@ -497,19 +497,27 @@
|
|
|
497
497
|
.ec-now-indicator {
|
|
498
498
|
position: absolute;
|
|
499
499
|
z-index: 1005;
|
|
500
|
-
width: 100%;
|
|
501
|
-
border-top: var(--ec-now-indicator-color) solid 2px;
|
|
502
500
|
pointer-events: none;
|
|
501
|
+
.ec-time-grid & {
|
|
502
|
+
width: 100%;
|
|
503
|
+
border-top: var(--ec-now-indicator-color) solid 2px;
|
|
504
|
+
}
|
|
505
|
+
.ec-timeline & {
|
|
506
|
+
border-left: var(--ec-now-indicator-color) solid 2px;
|
|
507
|
+
will-change: transform;
|
|
508
|
+
}
|
|
503
509
|
|
|
504
510
|
&:before {
|
|
505
511
|
background: var(--ec-now-indicator-color);
|
|
506
512
|
border-radius: 50%;
|
|
507
513
|
content: "";
|
|
508
|
-
|
|
514
|
+
display: block;
|
|
509
515
|
height: 12px;
|
|
510
516
|
margin-top: -7px;
|
|
511
517
|
width: 12px;
|
|
512
|
-
|
|
518
|
+
.ec-timeline & {
|
|
519
|
+
margin-left: -7px;
|
|
520
|
+
}
|
|
513
521
|
}
|
|
514
522
|
}
|
|
515
523
|
|