@event-calendar/core 4.5.1 → 4.5.2

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
@@ -243,8 +243,8 @@ This bundle contains a version of the calendar that includes all plugins and is
243
243
 
244
244
  The first step is to include the following lines of code in the `<head>` section of your page:
245
245
  ```html
246
- <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@event-calendar/build@4.5.1/dist/event-calendar.min.css">
247
- <script src="https://cdn.jsdelivr.net/npm/@event-calendar/build@4.5.1/dist/event-calendar.min.js"></script>
246
+ <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@event-calendar/build@4.5.2/dist/event-calendar.min.css">
247
+ <script src="https://cdn.jsdelivr.net/npm/@event-calendar/build@4.5.2/dist/event-calendar.min.js"></script>
248
248
  ```
249
249
 
250
250
  <details>
package/dist/index.css CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * EventCalendar v4.5.1
2
+ * EventCalendar v4.5.2
3
3
  * https://github.com/vkurko/calendar
4
4
  */
5
5
  .ec {
@@ -185,6 +185,7 @@
185
185
  }
186
186
  .ec-timeline .ec-sidebar .ec-resource span {
187
187
  padding-top: 8px;
188
+ height: fit-content;
188
189
  }
189
190
 
190
191
  .ec-time-grid .ec-body .ec-event {
package/dist/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * EventCalendar v4.5.1
2
+ * EventCalendar v4.5.2
3
3
  * https://github.com/vkurko/calendar
4
4
  */
5
5
  import { tick, getContext, untrack, setContext, onMount, mount, unmount } from "svelte";
@@ -5210,9 +5210,10 @@ function Label($$anchor, $$props) {
5210
5210
  $.push($$props, true);
5211
5211
  const [$$stores, $$cleanup] = $.setup_stores();
5212
5212
  const $resourceLabelContent = () => $.store_get(resourceLabelContent, "$resourceLabelContent", $$stores);
5213
+ const $_resHs = () => $.store_get(_resHs, "$_resHs", $$stores);
5213
5214
  const $resourceLabelDidMount = () => $.store_get(resourceLabelDidMount, "$resourceLabelDidMount", $$stores);
5214
5215
  let date = $.prop($$props, "date", 3, void 0);
5215
- let { resourceLabelContent, resourceLabelDidMount } = getContext("state");
5216
+ let { resourceLabelContent, resourceLabelDidMount, _resHs } = getContext("state");
5216
5217
  let el = $.state(void 0);
5217
5218
  let content = $.derived(() => {
5218
5219
  if ($resourceLabelContent()) {
@@ -5224,6 +5225,13 @@ function Label($$anchor, $$props) {
5224
5225
  return $$props.resource.title;
5225
5226
  }
5226
5227
  });
5228
+ $.user_effect(() => {
5229
+ $.get(content);
5230
+ untrack(() => {
5231
+ $_resHs().set($$props.resource, ceil(height($.get(el)) + 10));
5232
+ $.store_set(_resHs, $_resHs());
5233
+ });
5234
+ });
5227
5235
  onMount(() => {
5228
5236
  if (isFunction($resourceLabelDidMount())) {
5229
5237
  $resourceLabelDidMount()({
@@ -5316,28 +5324,35 @@ $.delegate(["click"]);
5316
5324
  var root_1$3 = $.from_html(`<div role="rowheader"><!> <!></div>`);
5317
5325
  var root$5 = $.from_html(`<div><div></div> <div></div></div>`);
5318
5326
  function Sidebar($$anchor, $$props) {
5319
- $.push($$props, false);
5327
+ $.push($$props, true);
5320
5328
  const [$$stores, $$cleanup] = $.setup_stores();
5329
+ const $_viewResources = () => $.store_get(_viewResources, "$_viewResources", $$stores);
5330
+ const $_resHs = () => $.store_get(_resHs, "$_resHs", $$stores);
5321
5331
  const $_bodyEl = () => $.store_get(_bodyEl, "$_bodyEl", $$stores);
5322
5332
  const $theme = () => $.store_get(theme, "$theme", $$stores);
5323
5333
  const $_headerHeight = () => $.store_get(_headerHeight, "$_headerHeight", $$stores);
5324
5334
  const $_sidebarEl = () => $.store_get(_sidebarEl, "$_sidebarEl", $$stores);
5325
- const $_viewResources = () => $.store_get(_viewResources, "$_viewResources", $$stores);
5326
- const $_resHs = () => $.store_get(_resHs, "$_resHs", $$stores);
5335
+ const $_daysHs = () => $.store_get(_daysHs, "$_daysHs", $$stores);
5327
5336
  const $_nestedResources = () => $.store_get(_nestedResources, "$_nestedResources", $$stores);
5328
5337
  let {
5329
5338
  _viewResources,
5330
5339
  _headerHeight,
5331
5340
  _bodyEl,
5341
+ _daysHs,
5332
5342
  _resHs,
5333
5343
  _sidebarEl,
5334
5344
  _nestedResources,
5335
5345
  theme
5336
5346
  } = getContext("state");
5347
+ $.user_pre_effect(() => {
5348
+ $_viewResources();
5349
+ untrack(() => {
5350
+ $_resHs().clear();
5351
+ });
5352
+ });
5337
5353
  function onwheel(jsEvent) {
5338
5354
  $_bodyEl().scrollBy({ top: jsEvent.deltaY < 0 ? -30 : 30 });
5339
5355
  }
5340
- $.init();
5341
5356
  var div = root$5();
5342
5357
  var div_1 = $.child(div);
5343
5358
  var div_2 = $.sibling(div_1, 2);
@@ -5368,7 +5383,9 @@ function Sidebar($$anchor, $$props) {
5368
5383
  $.set_class(div_3, 1, $theme().resource);
5369
5384
  $.set_style(div_3, `flex-basis: ${$0 ?? ""}px`);
5370
5385
  },
5371
- [() => max($_resHs().get($.get(resource)) ?? 0, 34)]
5386
+ [
5387
+ () => max($_daysHs().get($.get(resource)) ?? 0, $_resHs().get($.get(resource)) ?? 0, 34)
5388
+ ]
5372
5389
  );
5373
5390
  $.append($$anchor2, div_3);
5374
5391
  });
@@ -5844,20 +5861,21 @@ function Days($$anchor, $$props) {
5844
5861
  const $_filteredEvents = () => $.store_get(_filteredEvents, "$_filteredEvents", $$stores);
5845
5862
  const $slotDuration = () => $.store_get(slotDuration, "$slotDuration", $$stores);
5846
5863
  const $_iEvents = () => $.store_get(_iEvents, "$_iEvents", $$stores);
5847
- const $_resHs = () => $.store_get(_resHs, "$_resHs", $$stores);
5864
+ const $_daysHs = () => $.store_get(_daysHs, "$_daysHs", $$stores);
5848
5865
  const $theme = () => $.store_get(theme, "$theme", $$stores);
5866
+ const $_resHs = () => $.store_get(_resHs, "$_resHs", $$stores);
5849
5867
  let {
5850
5868
  _viewDates,
5851
5869
  _filteredEvents,
5852
5870
  _iEvents,
5853
- _resHs,
5854
5871
  _dayTimeLimits,
5872
+ _daysHs,
5873
+ _resHs,
5855
5874
  slotDuration,
5856
5875
  theme,
5857
5876
  validRange
5858
5877
  } = getContext("state");
5859
5878
  let refs = [];
5860
- let height2 = $.state(0);
5861
5879
  let $$d = $.derived(() => {
5862
5880
  let start2 = cloneDate(limitToRange($_viewDates()[0], $validRange()));
5863
5881
  let end2 = cloneDate(limitToRange($_viewDates().at(-1), $validRange()));
@@ -5900,9 +5918,8 @@ function Days($$anchor, $$props) {
5900
5918
  return chunk;
5901
5919
  }));
5902
5920
  function reposition() {
5903
- $.set(height2, ceil(max(...runReposition(refs, $_viewDates()))) + 10);
5904
- $_resHs().set($$props.resource, $.get(height2));
5905
- $.store_set(_resHs, $_resHs());
5921
+ $_daysHs().set($$props.resource, ceil(max(...runReposition(refs, $_viewDates()))) + 10);
5922
+ $.store_set(_daysHs, $_daysHs());
5906
5923
  }
5907
5924
  var div = root$2();
5908
5925
  $.each(div, 5, $_viewDates, $.index, ($$anchor2, date, i) => {
@@ -5938,7 +5955,9 @@ function Days($$anchor, $$props) {
5938
5955
  $.set_class(div, 1, $theme().days);
5939
5956
  $.set_style(div, `flex-basis: ${$0 ?? ""}px`);
5940
5957
  },
5941
- [() => max($.get(height2), 34)]
5958
+ [
5959
+ () => max($_daysHs().get($$props.resource) ?? 0, $_resHs().get($$props.resource) ?? 0, 34)
5960
+ ]
5942
5961
  );
5943
5962
  $.append($$anchor, div);
5944
5963
  var $$pop = $.pop({ reposition });
@@ -5956,7 +5975,7 @@ function Body($$anchor, $$props) {
5956
5975
  const $scrollTime = () => $.store_get(scrollTime, "$scrollTime", $$stores);
5957
5976
  const $slotDuration = () => $.store_get(slotDuration, "$slotDuration", $$stores);
5958
5977
  const $slotWidth = () => $.store_get(slotWidth, "$slotWidth", $$stores);
5959
- const $_resHs = () => $.store_get(_resHs, "$_resHs", $$stores);
5978
+ const $_daysHs = () => $.store_get(_daysHs, "$_daysHs", $$stores);
5960
5979
  const $_viewResources = () => $.store_get(_viewResources, "$_viewResources", $$stores);
5961
5980
  const $_filteredEvents = () => $.store_get(_filteredEvents, "$_filteredEvents", $$stores);
5962
5981
  const $_headerEl = () => $.store_get(_headerEl, "$_headerEl", $$stores);
@@ -5974,7 +5993,7 @@ function Body($$anchor, $$props) {
5974
5993
  _dayTimes,
5975
5994
  _dayTimeLimits,
5976
5995
  _recheckScrollable,
5977
- _resHs,
5996
+ _daysHs,
5978
5997
  _viewResources,
5979
5998
  _viewDates,
5980
5999
  scrollTime,
@@ -5994,7 +6013,7 @@ function Body($$anchor, $$props) {
5994
6013
  untrack(scrollToTime);
5995
6014
  });
5996
6015
  function reposition() {
5997
- $_resHs().clear();
6016
+ $_daysHs().clear();
5998
6017
  runReposition(refs, $_viewResources());
5999
6018
  }
6000
6019
  $.user_effect(() => {
@@ -6219,6 +6238,7 @@ const index = {
6219
6238
  state._headerHeight = writable(0);
6220
6239
  state._dayTimeLimits = dayTimeLimits(state);
6221
6240
  state._dayTimes = dayTimes(state);
6241
+ state._daysHs = writable(/* @__PURE__ */ new Map());
6222
6242
  state._nestedResources = nestedResources(state);
6223
6243
  state._resHs = writable(/* @__PURE__ */ new Map());
6224
6244
  state._sidebarEl = writable(void 0);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@event-calendar/core",
3
- "version": "4.5.1",
3
+ "version": "4.5.2",
4
4
  "title": "Event Calendar Core package",
5
5
  "description": "Full-sized drag & drop event calendar with resource & timeline views",
6
6
  "keywords": [
@@ -5,7 +5,7 @@
5
5
  import Days from './Days.svelte';
6
6
 
7
7
  let {_bodyEl, _bodyHeight, _bodyWidth, _bodyScrollLeft, _headerEl, _filteredEvents, _sidebarEl, _dayTimes, _dayTimeLimits,
8
- _recheckScrollable, _resHs, _viewResources, _viewDates, scrollTime, slotDuration, slotWidth, theme} = getContext('state');
8
+ _recheckScrollable, _daysHs, _viewResources, _viewDates, scrollTime, slotDuration, slotWidth, theme} = getContext('state');
9
9
 
10
10
  let refs = [];
11
11
 
@@ -21,7 +21,7 @@
21
21
  });
22
22
 
23
23
  function reposition() {
24
- $_resHs.clear();
24
+ $_daysHs.clear();
25
25
  runReposition(refs, $_viewResources);
26
26
  }
27
27
  $effect(() => {
@@ -10,11 +10,10 @@
10
10
  let {resource} = $props();
11
11
 
12
12
  let {
13
- _viewDates, _filteredEvents, _iEvents, _resHs, _dayTimeLimits, slotDuration, theme, validRange
13
+ _viewDates, _filteredEvents, _iEvents, _dayTimeLimits, _daysHs, _resHs, slotDuration, theme, validRange
14
14
  } = getContext('state');
15
15
 
16
16
  let refs = [];
17
- let height = $state(0);
18
17
 
19
18
  let [start, end] = $derived.by(() => {
20
19
  let start = cloneDate(limitToRange($_viewDates[0], $validRange));
@@ -61,13 +60,12 @@
61
60
  }));
62
61
 
63
62
  export function reposition() {
64
- height = ceil(max(...runReposition(refs, $_viewDates))) + 10;
65
- $_resHs.set(resource, height);
66
- $_resHs = $_resHs;
63
+ $_daysHs.set(resource, ceil(max(...runReposition(refs, $_viewDates))) + 10);
64
+ $_daysHs = $_daysHs;
67
65
  }
68
66
  </script>
69
67
 
70
- <div class="{$theme.days}" style="flex-basis: {max(height, 34)}px" role="row">
68
+ <div class="{$theme.days}" style="flex-basis: {max($_daysHs.get(resource) ?? 0, $_resHs.get(resource) ?? 0, 34)}px" role="row">
71
69
  {#each $_viewDates as date, i}
72
70
  <!-- svelte-ignore binding_property_non_reactive -->
73
71
  <Day {date} {resource} {chunks} {bgChunks} {longChunks} {iChunks} bind:this={refs[i]}/>
@@ -1,10 +1,10 @@
1
1
  <script>
2
- import {getContext, onMount} from 'svelte';
3
- import {setContent, toLocalDate, isFunction} from '#lib';
2
+ import {getContext, onMount, untrack} from 'svelte';
3
+ import {ceil, height, setContent, toLocalDate, isFunction} from '#lib';
4
4
 
5
5
  let {resource, date = undefined} = $props();
6
6
 
7
- let {resourceLabelContent, resourceLabelDidMount} = getContext('state');
7
+ let {resourceLabelContent, resourceLabelDidMount, _resHs} = getContext('state');
8
8
 
9
9
  let el = $state();
10
10
  // Content
@@ -21,6 +21,14 @@
21
21
  }
22
22
  });
23
23
 
24
+ $effect(() => {
25
+ content;
26
+ untrack(() => {
27
+ $_resHs.set(resource, ceil(height(el) + 10));
28
+ $_resHs = $_resHs;
29
+ });
30
+ });
31
+
24
32
  onMount(() => {
25
33
  if (isFunction($resourceLabelDidMount)) {
26
34
  $resourceLabelDidMount({
@@ -1,10 +1,17 @@
1
1
  <script>
2
- import {getContext} from 'svelte';
2
+ import {getContext, untrack} from 'svelte';
3
3
  import {max} from '#lib';
4
4
  import Label from './Label.svelte';
5
5
  import Expander from './Expander.svelte';
6
6
 
7
- let {_viewResources, _headerHeight, _bodyEl, _resHs, _sidebarEl, _nestedResources, theme} = getContext('state');
7
+ let {_viewResources, _headerHeight, _bodyEl, _daysHs, _resHs, _sidebarEl, _nestedResources, theme} = getContext('state');
8
+
9
+ $effect.pre(() => {
10
+ $_viewResources;
11
+ untrack(() => {
12
+ $_resHs.clear();
13
+ });
14
+ });
8
15
 
9
16
  function onwheel(jsEvent) {
10
17
  $_bodyEl.scrollBy({
@@ -17,7 +24,7 @@
17
24
  <div class="{$theme.sidebarTitle}" style="flex-basis: {$_headerHeight}px"></div>
18
25
  <div class="{$theme.content}" bind:this={$_sidebarEl} {onwheel}>
19
26
  {#each $_viewResources as resource}
20
- <div class="{$theme.resource}" style="flex-basis: {max($_resHs.get(resource) ?? 0, 34)}px" role="rowheader">
27
+ <div class="{$theme.resource}" style="flex-basis: {max($_daysHs.get(resource) ?? 0, $_resHs.get(resource) ?? 0, 34)}px" role="rowheader">
21
28
  {#if $_nestedResources}
22
29
  <Expander {resource} />
23
30
  {/if}
@@ -58,6 +58,7 @@ export default {
58
58
  state._headerHeight = writable(0);
59
59
  state._dayTimeLimits = dayTimeLimits(state); // flexible time limits per day
60
60
  state._dayTimes = dayTimes(state);
61
+ state._daysHs = writable(new Map()); // days row heights
61
62
  state._nestedResources = nestedResources(state);
62
63
  state._resHs = writable(new Map()); // resource row heights
63
64
  state._sidebarEl = writable(undefined);
@@ -145,6 +145,7 @@
145
145
 
146
146
  span {
147
147
  padding-top: 8px;
148
+ height: fit-content;
148
149
  }
149
150
  }
150
151
  }