@event-calendar/core 0.15.3 → 0.16.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 +17 -4
- package/index.css +4 -0
- package/index.js +26 -10
- package/package.json +2 -2
- package/src/Calendar.svelte +19 -1
- package/src/index.scss +5 -0
- package/src/storage/stores.js +2 -3
package/README.md
CHANGED
|
@@ -116,9 +116,8 @@ Inspired by [FullCalendar](https://fullcalendar.io/), implements similar options
|
|
|
116
116
|
- [refetchEvents](#refetchevents)
|
|
117
117
|
</td><td>
|
|
118
118
|
|
|
119
|
+
- [dateFromPoint](#datefrompoint-x-y-)
|
|
119
120
|
- [getView](#getview)
|
|
120
|
-
</td><td>
|
|
121
|
-
|
|
122
121
|
- [unselect](#unselect-1)
|
|
123
122
|
</td></tr>
|
|
124
123
|
</table>
|
|
@@ -192,8 +191,8 @@ import '@event-calendar/core/index.css';
|
|
|
192
191
|
### Pre-built browser ready bundle
|
|
193
192
|
Include the following lines of code in the `<head>` section of your page:
|
|
194
193
|
```html
|
|
195
|
-
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@event-calendar/build@0.
|
|
196
|
-
<script src="https://cdn.jsdelivr.net/npm/@event-calendar/build@0.
|
|
194
|
+
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@event-calendar/build@0.16.1/event-calendar.min.css">
|
|
195
|
+
<script src="https://cdn.jsdelivr.net/npm/@event-calendar/build@0.16.1/event-calendar.min.js"></script>
|
|
197
196
|
```
|
|
198
197
|
|
|
199
198
|
<details>
|
|
@@ -1988,6 +1987,20 @@ Updates a single event with the matching `event`.`id`.
|
|
|
1988
1987
|
|
|
1989
1988
|
Refetches events from all sources.
|
|
1990
1989
|
|
|
1990
|
+
### dateFromPoint( x, y )
|
|
1991
|
+
- Return value `Date` or `null`
|
|
1992
|
+
|
|
1993
|
+
Returns the date and time as if the [dateClick](#dateclick) event had fired for that point.
|
|
1994
|
+
|
|
1995
|
+
Using this method, you can, for example, find out on which day a click occurred inside a multi-day event. To do this, inside [eventClick](#eventclick), pass the `jsEvent.clientX` and `jsEvent.clientY` coordinates to `dateFromPoint` and get the desired date.
|
|
1996
|
+
|
|
1997
|
+
<details>
|
|
1998
|
+
<summary>Note</summary>
|
|
1999
|
+
|
|
2000
|
+
> In the `'listDay'`, `'listWeek'`, `'listMonth'` and `'listYear'` views, the events are rendered outside the day container, so the method will return `null` for the coordinates that are inside the events.
|
|
2001
|
+
|
|
2002
|
+
</details>
|
|
2003
|
+
|
|
1991
2004
|
### getView()
|
|
1992
2005
|
- Return value `View`
|
|
1993
2006
|
|
package/index.css
CHANGED
package/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { is_function, tick, noop, identity, SvelteComponent, init, safe_not_equal, empty, insert, destroy_each, detach, 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 } from 'svelte/internal';
|
|
2
2
|
import { getContext, setContext } from 'svelte';
|
|
3
3
|
import { derived, writable, readable, get } from 'svelte/store';
|
|
4
|
-
import { assign, setMidnight, createDate, createDuration, createEvents, createEventSources, cloneDate, prevClosestDay, nextClosestDay, DAY_IN_SECONDS, addDuration, subtractDay, toLocalDate, toISOString, derived2, addDay, createView, writable2, intl, intlRange, subtractDuration, toEventWithLocalDates, toViewWithLocalDates, ignore } from '@event-calendar/common';
|
|
4
|
+
import { assign, setMidnight, createDate, createDuration, createEvents, createEventSources, cloneDate, prevClosestDay, nextClosestDay, DAY_IN_SECONDS, addDuration, subtractDay, toLocalDate, toISOString, derived2, addDay, createView, writable2, intl, intlRange, subtractDuration, toEventWithLocalDates, toViewWithLocalDates, hasFn, runFn, ignore } from '@event-calendar/common';
|
|
5
5
|
|
|
6
6
|
function createOptions(plugins) {
|
|
7
7
|
let options = {
|
|
@@ -263,8 +263,7 @@ function events(state) {
|
|
|
263
263
|
let fetching = 0;
|
|
264
264
|
derived(
|
|
265
265
|
[state.events, state.eventSources, state._activeRange, state._fetchedRange, state.lazyFetching, state.loading],
|
|
266
|
-
(
|
|
267
|
-
let [$events, $eventSources, $_activeRange, $_fetchedRange, $lazyFetching, $loading] = values;
|
|
266
|
+
([$events, $eventSources, $_activeRange, $_fetchedRange, $lazyFetching, $loading], set) => {
|
|
268
267
|
if (!$eventSources.length) {
|
|
269
268
|
set($events);
|
|
270
269
|
return;
|
|
@@ -337,7 +336,7 @@ function events(state) {
|
|
|
337
336
|
$_fetchedRange.start = $_activeRange.start;
|
|
338
337
|
$_fetchedRange.end = $_activeRange.end;
|
|
339
338
|
}
|
|
340
|
-
}
|
|
339
|
+
},
|
|
341
340
|
[]
|
|
342
341
|
).subscribe(_events.set);
|
|
343
342
|
|
|
@@ -1402,12 +1401,12 @@ function instance($$self, $$props, $$invalidate) {
|
|
|
1402
1401
|
let { _viewComponent, _viewClass, _ignoreClick, _interaction, _iClass, _events, events, eventSources, height, theme } = state;
|
|
1403
1402
|
component_subscribe($$self, _viewComponent, value => $$invalidate(5, $_viewComponent = value));
|
|
1404
1403
|
component_subscribe($$self, _viewClass, value => $$invalidate(2, $_viewClass = value));
|
|
1405
|
-
component_subscribe($$self, _ignoreClick, value => $$invalidate(
|
|
1404
|
+
component_subscribe($$self, _ignoreClick, value => $$invalidate(30, $_ignoreClick = value));
|
|
1406
1405
|
component_subscribe($$self, _interaction, value => $$invalidate(0, $_interaction = value));
|
|
1407
1406
|
component_subscribe($$self, _iClass, value => $$invalidate(3, $_iClass = value));
|
|
1408
|
-
component_subscribe($$self, _events, value => $$invalidate(
|
|
1409
|
-
component_subscribe($$self, events, value => $$invalidate(
|
|
1410
|
-
component_subscribe($$self, eventSources, value => $$invalidate(
|
|
1407
|
+
component_subscribe($$self, _events, value => $$invalidate(32, $_events = value));
|
|
1408
|
+
component_subscribe($$self, events, value => $$invalidate(31, $events = value));
|
|
1409
|
+
component_subscribe($$self, eventSources, value => $$invalidate(33, $eventSources = value));
|
|
1411
1410
|
component_subscribe($$self, height, value => $$invalidate(4, $height = value));
|
|
1412
1411
|
component_subscribe($$self, theme, value => $$invalidate(1, $theme = value));
|
|
1413
1412
|
|
|
@@ -1487,6 +1486,17 @@ function instance($$self, $$props, $$invalidate) {
|
|
|
1487
1486
|
return this;
|
|
1488
1487
|
}
|
|
1489
1488
|
|
|
1489
|
+
function dateFromPoint(x, y) {
|
|
1490
|
+
for (let el of document.elementsFromPoint(x, y)) {
|
|
1491
|
+
if (hasFn(el)) {
|
|
1492
|
+
let date = runFn(el, y);
|
|
1493
|
+
return date ? toLocalDate(date) : null;
|
|
1494
|
+
}
|
|
1495
|
+
}
|
|
1496
|
+
|
|
1497
|
+
return null;
|
|
1498
|
+
}
|
|
1499
|
+
|
|
1490
1500
|
function updateEvents(func) {
|
|
1491
1501
|
if ($eventSources.length) {
|
|
1492
1502
|
set_store_value(_events, $_events = func($_events), $_events);
|
|
@@ -1545,7 +1555,8 @@ function instance($$self, $$props, $$invalidate) {
|
|
|
1545
1555
|
updateEvent,
|
|
1546
1556
|
removeEventById,
|
|
1547
1557
|
getView,
|
|
1548
|
-
unselect
|
|
1558
|
+
unselect,
|
|
1559
|
+
dateFromPoint
|
|
1549
1560
|
];
|
|
1550
1561
|
}
|
|
1551
1562
|
|
|
@@ -1571,7 +1582,8 @@ class Calendar extends SvelteComponent {
|
|
|
1571
1582
|
updateEvent: 25,
|
|
1572
1583
|
removeEventById: 26,
|
|
1573
1584
|
getView: 27,
|
|
1574
|
-
unselect: 28
|
|
1585
|
+
unselect: 28,
|
|
1586
|
+
dateFromPoint: 29
|
|
1575
1587
|
},
|
|
1576
1588
|
null,
|
|
1577
1589
|
[-1, -1]
|
|
@@ -1617,6 +1629,10 @@ class Calendar extends SvelteComponent {
|
|
|
1617
1629
|
get unselect() {
|
|
1618
1630
|
return this.$$.ctx[28];
|
|
1619
1631
|
}
|
|
1632
|
+
|
|
1633
|
+
get dateFromPoint() {
|
|
1634
|
+
return this.$$.ctx[29];
|
|
1635
|
+
}
|
|
1620
1636
|
}
|
|
1621
1637
|
|
|
1622
1638
|
export { Calendar as default };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@event-calendar/core",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.16.1",
|
|
4
4
|
"title": "Event Calendar Core package",
|
|
5
5
|
"description": "Full-sized drag & drop event calendar with resource view",
|
|
6
6
|
"keywords": [
|
|
@@ -37,7 +37,7 @@
|
|
|
37
37
|
"./package.json": "./package.json"
|
|
38
38
|
},
|
|
39
39
|
"dependencies": {
|
|
40
|
-
"@event-calendar/common": "~0.
|
|
40
|
+
"@event-calendar/common": "~0.16.1",
|
|
41
41
|
"svelte": "^3.55.1"
|
|
42
42
|
}
|
|
43
43
|
}
|
package/src/Calendar.svelte
CHANGED
|
@@ -5,7 +5,15 @@
|
|
|
5
5
|
import {diff} from './storage/options';
|
|
6
6
|
import State from './storage/state';
|
|
7
7
|
import Toolbar from './Toolbar.svelte';
|
|
8
|
-
import {
|
|
8
|
+
import {
|
|
9
|
+
assign,
|
|
10
|
+
toEventWithLocalDates,
|
|
11
|
+
toViewWithLocalDates,
|
|
12
|
+
toLocalDate,
|
|
13
|
+
ignore,
|
|
14
|
+
hasFn,
|
|
15
|
+
runFn
|
|
16
|
+
} from '@event-calendar/common';
|
|
9
17
|
|
|
10
18
|
export let plugins = [];
|
|
11
19
|
export let options = {};
|
|
@@ -88,6 +96,16 @@
|
|
|
88
96
|
return this;
|
|
89
97
|
}
|
|
90
98
|
|
|
99
|
+
export function dateFromPoint(x, y) {
|
|
100
|
+
for (let el of document.elementsFromPoint(x, y)) {
|
|
101
|
+
if (hasFn(el)) {
|
|
102
|
+
let date = runFn(el, y);
|
|
103
|
+
return date ? toLocalDate(date) : null;
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
return null;
|
|
107
|
+
}
|
|
108
|
+
|
|
91
109
|
function updateEvents(func) {
|
|
92
110
|
if ($eventSources.length) {
|
|
93
111
|
$_events = func($_events);
|
package/src/index.scss
CHANGED
package/src/storage/stores.js
CHANGED
|
@@ -125,8 +125,7 @@ export function events(state) {
|
|
|
125
125
|
let fetching = 0;
|
|
126
126
|
derived(
|
|
127
127
|
[state.events, state.eventSources, state._activeRange, state._fetchedRange, state.lazyFetching, state.loading],
|
|
128
|
-
(
|
|
129
|
-
let [$events, $eventSources, $_activeRange, $_fetchedRange, $lazyFetching, $loading] = values;
|
|
128
|
+
([$events, $eventSources, $_activeRange, $_fetchedRange, $lazyFetching, $loading], set) => {
|
|
130
129
|
if (!$eventSources.length) {
|
|
131
130
|
set($events);
|
|
132
131
|
return;
|
|
@@ -199,7 +198,7 @@ export function events(state) {
|
|
|
199
198
|
$_fetchedRange.start = $_activeRange.start;
|
|
200
199
|
$_fetchedRange.end = $_activeRange.end;
|
|
201
200
|
}
|
|
202
|
-
}
|
|
201
|
+
},
|
|
203
202
|
[]
|
|
204
203
|
).subscribe(_events.set);
|
|
205
204
|
|