@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 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.15.3/event-calendar.min.css">
196
- <script src="https://cdn.jsdelivr.net/npm/@event-calendar/build@0.15.3/event-calendar.min.js"></script>
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
@@ -198,6 +198,10 @@
198
198
  flex-direction: column;
199
199
  height: 100%;
200
200
  }
201
+ .ec-month .ec-uniform .ec-content {
202
+ /* Remove scroll because of hidden events */
203
+ overflow: hidden;
204
+ }
201
205
  .ec-list .ec-content {
202
206
  flex-direction: column;
203
207
  }
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
- (values, set) => tick().then(() => {
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(29, $_ignoreClick = value));
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(31, $_events = value));
1409
- component_subscribe($$self, events, value => $$invalidate(30, $events = value));
1410
- component_subscribe($$self, eventSources, value => $$invalidate(32, $eventSources = value));
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.15.3",
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.15.3",
40
+ "@event-calendar/common": "~0.16.1",
41
41
  "svelte": "^3.55.1"
42
42
  }
43
43
  }
@@ -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 {assign, toEventWithLocalDates, toViewWithLocalDates, toLocalDate, ignore} from '@event-calendar/common';
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
@@ -225,6 +225,11 @@
225
225
  height: 100%;
226
226
  }
227
227
 
228
+ .ec-month .ec-uniform & {
229
+ /* Remove scroll because of hidden events */
230
+ overflow: hidden;
231
+ }
232
+
228
233
  .ec-list & {
229
234
  flex-direction: column;
230
235
  }
@@ -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
- (values, set) => tick().then(() => {
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