@fullcalendar/core 6.1.10 → 6.1.12

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.
Files changed (168) hide show
  1. package/index.cjs +2 -2
  2. package/index.global.js +43 -40
  3. package/index.global.min.js +2 -2
  4. package/index.js +2 -2
  5. package/internal-common.cjs +40 -37
  6. package/internal-common.d.ts +3 -3
  7. package/internal-common.js +40 -37
  8. package/locales/af.global.js +1 -1
  9. package/locales/af.global.min.js +1 -1
  10. package/locales/ar-dz.global.js +1 -1
  11. package/locales/ar-dz.global.min.js +1 -1
  12. package/locales/ar-kw.global.js +1 -1
  13. package/locales/ar-kw.global.min.js +1 -1
  14. package/locales/ar-ly.global.js +1 -1
  15. package/locales/ar-ly.global.min.js +1 -1
  16. package/locales/ar-ma.global.js +1 -1
  17. package/locales/ar-ma.global.min.js +1 -1
  18. package/locales/ar-sa.global.js +1 -1
  19. package/locales/ar-sa.global.min.js +1 -1
  20. package/locales/ar-tn.global.js +1 -1
  21. package/locales/ar-tn.global.min.js +1 -1
  22. package/locales/ar.global.js +1 -1
  23. package/locales/ar.global.min.js +1 -1
  24. package/locales/az.global.js +1 -1
  25. package/locales/az.global.min.js +1 -1
  26. package/locales/bg.global.js +1 -1
  27. package/locales/bg.global.min.js +1 -1
  28. package/locales/bn.global.js +1 -1
  29. package/locales/bn.global.min.js +1 -1
  30. package/locales/bs.global.js +1 -1
  31. package/locales/bs.global.min.js +1 -1
  32. package/locales/ca.global.js +1 -1
  33. package/locales/ca.global.min.js +1 -1
  34. package/locales/cs.global.js +1 -1
  35. package/locales/cs.global.min.js +1 -1
  36. package/locales/cy.global.js +1 -1
  37. package/locales/cy.global.min.js +1 -1
  38. package/locales/da.global.js +1 -1
  39. package/locales/da.global.min.js +1 -1
  40. package/locales/de-at.global.js +1 -1
  41. package/locales/de-at.global.min.js +1 -1
  42. package/locales/de.global.js +1 -1
  43. package/locales/de.global.min.js +1 -1
  44. package/locales/el.global.js +1 -1
  45. package/locales/el.global.min.js +1 -1
  46. package/locales/en-au.global.js +1 -1
  47. package/locales/en-au.global.min.js +1 -1
  48. package/locales/en-gb.global.js +1 -1
  49. package/locales/en-gb.global.min.js +1 -1
  50. package/locales/en-nz.global.js +1 -1
  51. package/locales/en-nz.global.min.js +1 -1
  52. package/locales/eo.global.js +1 -1
  53. package/locales/eo.global.min.js +1 -1
  54. package/locales/es-us.global.js +1 -1
  55. package/locales/es-us.global.min.js +1 -1
  56. package/locales/es.global.js +1 -1
  57. package/locales/es.global.min.js +1 -1
  58. package/locales/et.global.js +1 -1
  59. package/locales/et.global.min.js +1 -1
  60. package/locales/eu.global.js +1 -1
  61. package/locales/eu.global.min.js +1 -1
  62. package/locales/fa.global.js +1 -1
  63. package/locales/fa.global.min.js +1 -1
  64. package/locales/fi.global.js +1 -1
  65. package/locales/fi.global.min.js +1 -1
  66. package/locales/fr-ca.global.js +1 -1
  67. package/locales/fr-ca.global.min.js +1 -1
  68. package/locales/fr-ch.global.js +1 -1
  69. package/locales/fr-ch.global.min.js +1 -1
  70. package/locales/fr.global.js +1 -1
  71. package/locales/fr.global.min.js +1 -1
  72. package/locales/gl.global.js +1 -1
  73. package/locales/gl.global.min.js +1 -1
  74. package/locales/he.global.js +1 -1
  75. package/locales/he.global.min.js +1 -1
  76. package/locales/hi.global.js +1 -1
  77. package/locales/hi.global.min.js +1 -1
  78. package/locales/hr.global.js +1 -1
  79. package/locales/hr.global.min.js +1 -1
  80. package/locales/hu.global.js +1 -1
  81. package/locales/hu.global.min.js +1 -1
  82. package/locales/hy-am.global.js +1 -1
  83. package/locales/hy-am.global.min.js +1 -1
  84. package/locales/id.global.js +1 -1
  85. package/locales/id.global.min.js +1 -1
  86. package/locales/is.global.js +1 -1
  87. package/locales/is.global.min.js +1 -1
  88. package/locales/it.global.js +1 -1
  89. package/locales/it.global.min.js +1 -1
  90. package/locales/ja.global.js +1 -1
  91. package/locales/ja.global.min.js +1 -1
  92. package/locales/ka.global.js +1 -1
  93. package/locales/ka.global.min.js +1 -1
  94. package/locales/kk.global.js +1 -1
  95. package/locales/kk.global.min.js +1 -1
  96. package/locales/km.global.js +1 -1
  97. package/locales/km.global.min.js +1 -1
  98. package/locales/ko.global.js +1 -1
  99. package/locales/ko.global.min.js +1 -1
  100. package/locales/ku.global.js +1 -1
  101. package/locales/ku.global.min.js +1 -1
  102. package/locales/lb.global.js +1 -1
  103. package/locales/lb.global.min.js +1 -1
  104. package/locales/lt.global.js +1 -1
  105. package/locales/lt.global.min.js +1 -1
  106. package/locales/lv.global.js +1 -1
  107. package/locales/lv.global.min.js +1 -1
  108. package/locales/mk.global.js +1 -1
  109. package/locales/mk.global.min.js +1 -1
  110. package/locales/ms.global.js +1 -1
  111. package/locales/ms.global.min.js +1 -1
  112. package/locales/nb.global.js +1 -1
  113. package/locales/nb.global.min.js +1 -1
  114. package/locales/ne.global.js +1 -1
  115. package/locales/ne.global.min.js +1 -1
  116. package/locales/nl.global.js +1 -1
  117. package/locales/nl.global.min.js +1 -1
  118. package/locales/nn.global.js +1 -1
  119. package/locales/nn.global.min.js +1 -1
  120. package/locales/pl.global.js +1 -1
  121. package/locales/pl.global.min.js +1 -1
  122. package/locales/pt-br.global.js +1 -1
  123. package/locales/pt-br.global.min.js +1 -1
  124. package/locales/pt.global.js +1 -1
  125. package/locales/pt.global.min.js +1 -1
  126. package/locales/ro.global.js +1 -1
  127. package/locales/ro.global.min.js +1 -1
  128. package/locales/ru.global.js +1 -1
  129. package/locales/ru.global.min.js +1 -1
  130. package/locales/si-lk.global.js +1 -1
  131. package/locales/si-lk.global.min.js +1 -1
  132. package/locales/sk.global.js +1 -1
  133. package/locales/sk.global.min.js +1 -1
  134. package/locales/sl.global.js +1 -1
  135. package/locales/sl.global.min.js +1 -1
  136. package/locales/sm.global.js +1 -1
  137. package/locales/sm.global.min.js +1 -1
  138. package/locales/sq.global.js +1 -1
  139. package/locales/sq.global.min.js +1 -1
  140. package/locales/sr-cyrl.global.js +1 -1
  141. package/locales/sr-cyrl.global.min.js +1 -1
  142. package/locales/sr.global.js +1 -1
  143. package/locales/sr.global.min.js +1 -1
  144. package/locales/sv.global.js +1 -1
  145. package/locales/sv.global.min.js +1 -1
  146. package/locales/ta-in.global.js +1 -1
  147. package/locales/ta-in.global.min.js +1 -1
  148. package/locales/th.global.js +1 -1
  149. package/locales/th.global.min.js +1 -1
  150. package/locales/tr.global.js +1 -1
  151. package/locales/tr.global.min.js +1 -1
  152. package/locales/ug.global.js +1 -1
  153. package/locales/ug.global.min.js +1 -1
  154. package/locales/uk.global.js +1 -1
  155. package/locales/uk.global.min.js +1 -1
  156. package/locales/uz-cy.global.js +1 -1
  157. package/locales/uz-cy.global.min.js +1 -1
  158. package/locales/uz.global.js +1 -1
  159. package/locales/uz.global.min.js +1 -1
  160. package/locales/vi.global.js +1 -1
  161. package/locales/vi.global.min.js +1 -1
  162. package/locales/zh-cn.global.js +1 -1
  163. package/locales/zh-cn.global.min.js +1 -1
  164. package/locales/zh-tw.global.js +1 -1
  165. package/locales/zh-tw.global.min.js +1 -1
  166. package/locales-all.global.js +1 -1
  167. package/locales-all.global.min.js +1 -1
  168. package/package.json +1 -1
package/index.js CHANGED
@@ -1908,7 +1908,7 @@ class CalendarContent extends PureComponent {
1908
1908
  let viewContext = this.buildViewContext(props.viewSpec, props.viewApi, props.options, props.dateProfileGenerator, props.dateEnv, props.theme, props.pluginHooks, props.dispatch, props.getCurrentData, props.emitter, props.calendarApi, this.registerInteractiveComponent, this.unregisterInteractiveComponent);
1909
1909
  let viewLabelId = (toolbarConfig.header && toolbarConfig.header.hasTitle)
1910
1910
  ? this.state.viewLabelId
1911
- : '';
1911
+ : undefined;
1912
1912
  return (createElement(ViewContextType.Provider, { value: viewContext },
1913
1913
  toolbarConfig.header && (createElement(Toolbar, Object.assign({ ref: this.headerRef, extraClassName: "fc-header-toolbar", model: toolbarConfig.header, titleId: viewLabelId }, toolbarProps))),
1914
1914
  createElement(ViewHarness, { liquid: viewVGrow, height: viewHeight, aspectRatio: viewAspectRatio, labeledById: viewLabelId },
@@ -2136,6 +2136,6 @@ function sliceEvents(props, allDay) {
2136
2136
  return sliceEventStore(props.eventStore, props.eventUiBases, props.dateProfile.activeRange, allDay ? props.nextDayThreshold : null).fg;
2137
2137
  }
2138
2138
 
2139
- const version = '6.1.10';
2139
+ const version = '6.1.12';
2140
2140
 
2141
2141
  export { Calendar, createPlugin, formatDate, formatRange, globalLocales, globalPlugins, sliceEvents, version };
@@ -32,7 +32,9 @@ function injectStyles(styleText) {
32
32
  });
33
33
  }
34
34
  function ensureElHasStyles(el) {
35
- if (el.isConnected) {
35
+ if (el.isConnected && // sometimes true if SSR system simulates DOM
36
+ el.getRootNode // sometimes undefined if SSR system simulates DOM
37
+ ) {
36
38
  registerStylesRoot(el.getRootNode());
37
39
  }
38
40
  }
@@ -4445,7 +4447,7 @@ startOverride, endOverride) {
4445
4447
  function getSegMeta(seg, todayRange, nowDate) {
4446
4448
  let segRange = seg.eventRange.range;
4447
4449
  return {
4448
- isPast: segRange.end < (nowDate || todayRange.start),
4450
+ isPast: segRange.end <= (nowDate || todayRange.start),
4449
4451
  isFuture: segRange.start >= (nowDate || todayRange.end),
4450
4452
  isToday: todayRange && rangeContainsMarker(todayRange, segRange.start),
4451
4453
  };
@@ -4708,10 +4710,14 @@ class CalendarRoot extends BaseComponent {
4708
4710
  forPrint: false,
4709
4711
  };
4710
4712
  this.handleBeforePrint = () => {
4711
- this.setState({ forPrint: true });
4713
+ flushSync(() => {
4714
+ this.setState({ forPrint: true });
4715
+ });
4712
4716
  };
4713
4717
  this.handleAfterPrint = () => {
4714
- this.setState({ forPrint: false });
4718
+ flushSync(() => {
4719
+ this.setState({ forPrint: false });
4720
+ });
4715
4721
  };
4716
4722
  }
4717
4723
  render() {
@@ -5509,10 +5515,10 @@ function computeInnerRect(el, goWithinPadding = false, doFromWindowViewport) {
5509
5515
  function computeRect(el) {
5510
5516
  let rect = el.getBoundingClientRect();
5511
5517
  return {
5512
- left: rect.left + window.pageXOffset,
5513
- top: rect.top + window.pageYOffset,
5514
- right: rect.right + window.pageXOffset,
5515
- bottom: rect.bottom + window.pageYOffset,
5518
+ left: rect.left + window.scrollX,
5519
+ top: rect.top + window.scrollY,
5520
+ right: rect.right + window.scrollX,
5521
+ bottom: rect.bottom + window.scrollY,
5516
5522
  };
5517
5523
  }
5518
5524
  function computeClippedClientRect(el) {
@@ -5703,16 +5709,16 @@ class ElementScrollController extends ScrollController {
5703
5709
  }
5704
5710
  class WindowScrollController extends ScrollController {
5705
5711
  getScrollTop() {
5706
- return window.pageYOffset;
5712
+ return window.scrollY;
5707
5713
  }
5708
5714
  getScrollLeft() {
5709
- return window.pageXOffset;
5715
+ return window.scrollX;
5710
5716
  }
5711
5717
  setScrollTop(n) {
5712
- window.scroll(window.pageXOffset, n);
5718
+ window.scroll(window.scrollX, n);
5713
5719
  }
5714
5720
  setScrollLeft(n) {
5715
- window.scroll(n, window.pageYOffset);
5721
+ window.scroll(n, window.scrollY);
5716
5722
  }
5717
5723
  getScrollWidth() {
5718
5724
  return document.documentElement.scrollWidth;
@@ -5770,8 +5776,8 @@ class NamedTimeZoneImpl {
5770
5776
 
5771
5777
  class SegHierarchy {
5772
5778
  constructor(getEntryThickness = (entry) => {
5773
- // should return an integer
5774
- return entry.thickness;
5779
+ // if no thickness known, assume 1 (if 0, so small it always fits)
5780
+ return entry.thickness || 1;
5775
5781
  }) {
5776
5782
  this.getEntryThickness = getEntryThickness;
5777
5783
  // settings
@@ -5794,51 +5800,45 @@ class SegHierarchy {
5794
5800
  let insertion = this.findInsertion(entry);
5795
5801
  if (this.isInsertionValid(insertion, entry)) {
5796
5802
  this.insertEntryAt(entry, insertion);
5797
- return 1;
5798
5803
  }
5799
- return this.handleInvalidInsertion(insertion, entry, hiddenEntries);
5804
+ else {
5805
+ this.handleInvalidInsertion(insertion, entry, hiddenEntries);
5806
+ }
5800
5807
  }
5801
5808
  isInsertionValid(insertion, entry) {
5802
5809
  return (this.maxCoord === -1 || insertion.levelCoord + this.getEntryThickness(entry) <= this.maxCoord) &&
5803
5810
  (this.maxStackCnt === -1 || insertion.stackCnt < this.maxStackCnt);
5804
5811
  }
5805
- // returns number of new entries inserted
5806
5812
  handleInvalidInsertion(insertion, entry, hiddenEntries) {
5807
5813
  if (this.allowReslicing && insertion.touchingEntry) {
5808
- return this.splitEntry(entry, insertion.touchingEntry, hiddenEntries);
5814
+ const hiddenEntry = Object.assign(Object.assign({}, entry), { span: intersectSpans(entry.span, insertion.touchingEntry.span) });
5815
+ hiddenEntries.push(hiddenEntry);
5816
+ this.splitEntry(entry, insertion.touchingEntry, hiddenEntries);
5817
+ }
5818
+ else {
5819
+ hiddenEntries.push(entry);
5809
5820
  }
5810
- hiddenEntries.push(entry);
5811
- return 0;
5812
5821
  }
5822
+ /*
5823
+ Does NOT add what hit the `barrier` into hiddenEntries. Should already be done.
5824
+ */
5813
5825
  splitEntry(entry, barrier, hiddenEntries) {
5814
- let partCnt = 0;
5815
- let splitHiddenEntries = [];
5816
5826
  let entrySpan = entry.span;
5817
5827
  let barrierSpan = barrier.span;
5818
5828
  if (entrySpan.start < barrierSpan.start) {
5819
- partCnt += this.insertEntry({
5829
+ this.insertEntry({
5820
5830
  index: entry.index,
5821
5831
  thickness: entry.thickness,
5822
5832
  span: { start: entrySpan.start, end: barrierSpan.start },
5823
- }, splitHiddenEntries);
5833
+ }, hiddenEntries);
5824
5834
  }
5825
5835
  if (entrySpan.end > barrierSpan.end) {
5826
- partCnt += this.insertEntry({
5836
+ this.insertEntry({
5827
5837
  index: entry.index,
5828
5838
  thickness: entry.thickness,
5829
5839
  span: { start: barrierSpan.end, end: entrySpan.end },
5830
- }, splitHiddenEntries);
5831
- }
5832
- if (partCnt) {
5833
- hiddenEntries.push({
5834
- index: entry.index,
5835
- thickness: entry.thickness,
5836
- span: intersectSpans(barrierSpan, entrySpan), // guaranteed to intersect
5837
- }, ...splitHiddenEntries);
5838
- return partCnt;
5840
+ }, hiddenEntries);
5839
5841
  }
5840
- hiddenEntries.push(entry);
5841
- return 0;
5842
5842
  }
5843
5843
  insertEntryAt(entry, insertion) {
5844
5844
  let { entriesByLevel, levelCoords } = this;
@@ -5853,6 +5853,9 @@ class SegHierarchy {
5853
5853
  }
5854
5854
  this.stackCnts[buildEntryKey(entry)] = insertion.stackCnt;
5855
5855
  }
5856
+ /*
5857
+ does not care about limits
5858
+ */
5856
5859
  findInsertion(newEntry) {
5857
5860
  let { levelCoords, entriesByLevel, strictOrder, stackCnts } = this;
5858
5861
  let levelCnt = levelCoords.length;
@@ -5862,7 +5865,7 @@ class SegHierarchy {
5862
5865
  let touchingEntry = null;
5863
5866
  let stackCnt = 0;
5864
5867
  for (let trackingLevel = 0; trackingLevel < levelCnt; trackingLevel += 1) {
5865
- let trackingCoord = levelCoords[trackingLevel];
5868
+ const trackingCoord = levelCoords[trackingLevel];
5866
5869
  // if the current level is past the placed entry, we have found a good empty space and can stop.
5867
5870
  // if strictOrder, keep finding more lateral intersections.
5868
5871
  if (!strictOrder && trackingCoord >= candidateCoord + this.getEntryThickness(newEntry)) {
@@ -2478,10 +2478,10 @@ declare class SegHierarchy {
2478
2478
  };
2479
2479
  constructor(getEntryThickness?: (entry: SegEntry) => number);
2480
2480
  addSegs(inputs: SegEntry[]): SegEntry[];
2481
- insertEntry(entry: SegEntry, hiddenEntries: SegEntry[]): number;
2481
+ insertEntry(entry: SegEntry, hiddenEntries: SegEntry[]): void;
2482
2482
  isInsertionValid(insertion: SegInsertion, entry: SegEntry): boolean;
2483
- handleInvalidInsertion(insertion: SegInsertion, entry: SegEntry, hiddenEntries: SegEntry[]): number;
2484
- splitEntry(entry: SegEntry, barrier: SegEntry, hiddenEntries: SegEntry[]): number;
2483
+ handleInvalidInsertion(insertion: SegInsertion, entry: SegEntry, hiddenEntries: SegEntry[]): void;
2484
+ splitEntry(entry: SegEntry, barrier: SegEntry, hiddenEntries: SegEntry[]): void;
2485
2485
  insertEntryAt(entry: SegEntry, insertion: SegInsertion): void;
2486
2486
  findInsertion(newEntry: SegEntry): SegInsertion;
2487
2487
  toRects(): SegRect[];
@@ -11,7 +11,9 @@ function injectStyles(styleText) {
11
11
  });
12
12
  }
13
13
  function ensureElHasStyles(el) {
14
- if (el.isConnected) {
14
+ if (el.isConnected && // sometimes true if SSR system simulates DOM
15
+ el.getRootNode // sometimes undefined if SSR system simulates DOM
16
+ ) {
15
17
  registerStylesRoot(el.getRootNode());
16
18
  }
17
19
  }
@@ -4424,7 +4426,7 @@ startOverride, endOverride) {
4424
4426
  function getSegMeta(seg, todayRange, nowDate) {
4425
4427
  let segRange = seg.eventRange.range;
4426
4428
  return {
4427
- isPast: segRange.end < (nowDate || todayRange.start),
4429
+ isPast: segRange.end <= (nowDate || todayRange.start),
4428
4430
  isFuture: segRange.start >= (nowDate || todayRange.end),
4429
4431
  isToday: todayRange && rangeContainsMarker(todayRange, segRange.start),
4430
4432
  };
@@ -4687,10 +4689,14 @@ class CalendarRoot extends BaseComponent {
4687
4689
  forPrint: false,
4688
4690
  };
4689
4691
  this.handleBeforePrint = () => {
4690
- this.setState({ forPrint: true });
4692
+ flushSync(() => {
4693
+ this.setState({ forPrint: true });
4694
+ });
4691
4695
  };
4692
4696
  this.handleAfterPrint = () => {
4693
- this.setState({ forPrint: false });
4697
+ flushSync(() => {
4698
+ this.setState({ forPrint: false });
4699
+ });
4694
4700
  };
4695
4701
  }
4696
4702
  render() {
@@ -5488,10 +5494,10 @@ function computeInnerRect(el, goWithinPadding = false, doFromWindowViewport) {
5488
5494
  function computeRect(el) {
5489
5495
  let rect = el.getBoundingClientRect();
5490
5496
  return {
5491
- left: rect.left + window.pageXOffset,
5492
- top: rect.top + window.pageYOffset,
5493
- right: rect.right + window.pageXOffset,
5494
- bottom: rect.bottom + window.pageYOffset,
5497
+ left: rect.left + window.scrollX,
5498
+ top: rect.top + window.scrollY,
5499
+ right: rect.right + window.scrollX,
5500
+ bottom: rect.bottom + window.scrollY,
5495
5501
  };
5496
5502
  }
5497
5503
  function computeClippedClientRect(el) {
@@ -5682,16 +5688,16 @@ class ElementScrollController extends ScrollController {
5682
5688
  }
5683
5689
  class WindowScrollController extends ScrollController {
5684
5690
  getScrollTop() {
5685
- return window.pageYOffset;
5691
+ return window.scrollY;
5686
5692
  }
5687
5693
  getScrollLeft() {
5688
- return window.pageXOffset;
5694
+ return window.scrollX;
5689
5695
  }
5690
5696
  setScrollTop(n) {
5691
- window.scroll(window.pageXOffset, n);
5697
+ window.scroll(window.scrollX, n);
5692
5698
  }
5693
5699
  setScrollLeft(n) {
5694
- window.scroll(n, window.pageYOffset);
5700
+ window.scroll(n, window.scrollY);
5695
5701
  }
5696
5702
  getScrollWidth() {
5697
5703
  return document.documentElement.scrollWidth;
@@ -5749,8 +5755,8 @@ class NamedTimeZoneImpl {
5749
5755
 
5750
5756
  class SegHierarchy {
5751
5757
  constructor(getEntryThickness = (entry) => {
5752
- // should return an integer
5753
- return entry.thickness;
5758
+ // if no thickness known, assume 1 (if 0, so small it always fits)
5759
+ return entry.thickness || 1;
5754
5760
  }) {
5755
5761
  this.getEntryThickness = getEntryThickness;
5756
5762
  // settings
@@ -5773,51 +5779,45 @@ class SegHierarchy {
5773
5779
  let insertion = this.findInsertion(entry);
5774
5780
  if (this.isInsertionValid(insertion, entry)) {
5775
5781
  this.insertEntryAt(entry, insertion);
5776
- return 1;
5777
5782
  }
5778
- return this.handleInvalidInsertion(insertion, entry, hiddenEntries);
5783
+ else {
5784
+ this.handleInvalidInsertion(insertion, entry, hiddenEntries);
5785
+ }
5779
5786
  }
5780
5787
  isInsertionValid(insertion, entry) {
5781
5788
  return (this.maxCoord === -1 || insertion.levelCoord + this.getEntryThickness(entry) <= this.maxCoord) &&
5782
5789
  (this.maxStackCnt === -1 || insertion.stackCnt < this.maxStackCnt);
5783
5790
  }
5784
- // returns number of new entries inserted
5785
5791
  handleInvalidInsertion(insertion, entry, hiddenEntries) {
5786
5792
  if (this.allowReslicing && insertion.touchingEntry) {
5787
- return this.splitEntry(entry, insertion.touchingEntry, hiddenEntries);
5793
+ const hiddenEntry = Object.assign(Object.assign({}, entry), { span: intersectSpans(entry.span, insertion.touchingEntry.span) });
5794
+ hiddenEntries.push(hiddenEntry);
5795
+ this.splitEntry(entry, insertion.touchingEntry, hiddenEntries);
5796
+ }
5797
+ else {
5798
+ hiddenEntries.push(entry);
5788
5799
  }
5789
- hiddenEntries.push(entry);
5790
- return 0;
5791
5800
  }
5801
+ /*
5802
+ Does NOT add what hit the `barrier` into hiddenEntries. Should already be done.
5803
+ */
5792
5804
  splitEntry(entry, barrier, hiddenEntries) {
5793
- let partCnt = 0;
5794
- let splitHiddenEntries = [];
5795
5805
  let entrySpan = entry.span;
5796
5806
  let barrierSpan = barrier.span;
5797
5807
  if (entrySpan.start < barrierSpan.start) {
5798
- partCnt += this.insertEntry({
5808
+ this.insertEntry({
5799
5809
  index: entry.index,
5800
5810
  thickness: entry.thickness,
5801
5811
  span: { start: entrySpan.start, end: barrierSpan.start },
5802
- }, splitHiddenEntries);
5812
+ }, hiddenEntries);
5803
5813
  }
5804
5814
  if (entrySpan.end > barrierSpan.end) {
5805
- partCnt += this.insertEntry({
5815
+ this.insertEntry({
5806
5816
  index: entry.index,
5807
5817
  thickness: entry.thickness,
5808
5818
  span: { start: barrierSpan.end, end: entrySpan.end },
5809
- }, splitHiddenEntries);
5810
- }
5811
- if (partCnt) {
5812
- hiddenEntries.push({
5813
- index: entry.index,
5814
- thickness: entry.thickness,
5815
- span: intersectSpans(barrierSpan, entrySpan), // guaranteed to intersect
5816
- }, ...splitHiddenEntries);
5817
- return partCnt;
5819
+ }, hiddenEntries);
5818
5820
  }
5819
- hiddenEntries.push(entry);
5820
- return 0;
5821
5821
  }
5822
5822
  insertEntryAt(entry, insertion) {
5823
5823
  let { entriesByLevel, levelCoords } = this;
@@ -5832,6 +5832,9 @@ class SegHierarchy {
5832
5832
  }
5833
5833
  this.stackCnts[buildEntryKey(entry)] = insertion.stackCnt;
5834
5834
  }
5835
+ /*
5836
+ does not care about limits
5837
+ */
5835
5838
  findInsertion(newEntry) {
5836
5839
  let { levelCoords, entriesByLevel, strictOrder, stackCnts } = this;
5837
5840
  let levelCnt = levelCoords.length;
@@ -5841,7 +5844,7 @@ class SegHierarchy {
5841
5844
  let touchingEntry = null;
5842
5845
  let stackCnt = 0;
5843
5846
  for (let trackingLevel = 0; trackingLevel < levelCnt; trackingLevel += 1) {
5844
- let trackingCoord = levelCoords[trackingLevel];
5847
+ const trackingCoord = levelCoords[trackingLevel];
5845
5848
  // if the current level is past the placed entry, we have found a good empty space and can stop.
5846
5849
  // if strictOrder, keep finding more lateral intersections.
5847
5850
  if (!strictOrder && trackingCoord >= candidateCoord + this.getEntryThickness(newEntry)) {
@@ -1,5 +1,5 @@
1
1
  /*!
2
- FullCalendar Core v6.1.10
2
+ FullCalendar Core v6.1.12
3
3
  Docs & License: https://fullcalendar.io
4
4
  (c) 2023 Adam Shaw
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- FullCalendar Core v6.1.10
2
+ FullCalendar Core v6.1.12
3
3
  Docs & License: https://fullcalendar.io
4
4
  (c) 2023 Adam Shaw
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- FullCalendar Core v6.1.10
2
+ FullCalendar Core v6.1.12
3
3
  Docs & License: https://fullcalendar.io
4
4
  (c) 2023 Adam Shaw
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- FullCalendar Core v6.1.10
2
+ FullCalendar Core v6.1.12
3
3
  Docs & License: https://fullcalendar.io
4
4
  (c) 2023 Adam Shaw
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- FullCalendar Core v6.1.10
2
+ FullCalendar Core v6.1.12
3
3
  Docs & License: https://fullcalendar.io
4
4
  (c) 2023 Adam Shaw
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- FullCalendar Core v6.1.10
2
+ FullCalendar Core v6.1.12
3
3
  Docs & License: https://fullcalendar.io
4
4
  (c) 2023 Adam Shaw
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- FullCalendar Core v6.1.10
2
+ FullCalendar Core v6.1.12
3
3
  Docs & License: https://fullcalendar.io
4
4
  (c) 2023 Adam Shaw
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- FullCalendar Core v6.1.10
2
+ FullCalendar Core v6.1.12
3
3
  Docs & License: https://fullcalendar.io
4
4
  (c) 2023 Adam Shaw
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- FullCalendar Core v6.1.10
2
+ FullCalendar Core v6.1.12
3
3
  Docs & License: https://fullcalendar.io
4
4
  (c) 2023 Adam Shaw
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- FullCalendar Core v6.1.10
2
+ FullCalendar Core v6.1.12
3
3
  Docs & License: https://fullcalendar.io
4
4
  (c) 2023 Adam Shaw
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- FullCalendar Core v6.1.10
2
+ FullCalendar Core v6.1.12
3
3
  Docs & License: https://fullcalendar.io
4
4
  (c) 2023 Adam Shaw
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- FullCalendar Core v6.1.10
2
+ FullCalendar Core v6.1.12
3
3
  Docs & License: https://fullcalendar.io
4
4
  (c) 2023 Adam Shaw
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- FullCalendar Core v6.1.10
2
+ FullCalendar Core v6.1.12
3
3
  Docs & License: https://fullcalendar.io
4
4
  (c) 2023 Adam Shaw
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- FullCalendar Core v6.1.10
2
+ FullCalendar Core v6.1.12
3
3
  Docs & License: https://fullcalendar.io
4
4
  (c) 2023 Adam Shaw
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- FullCalendar Core v6.1.10
2
+ FullCalendar Core v6.1.12
3
3
  Docs & License: https://fullcalendar.io
4
4
  (c) 2023 Adam Shaw
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- FullCalendar Core v6.1.10
2
+ FullCalendar Core v6.1.12
3
3
  Docs & License: https://fullcalendar.io
4
4
  (c) 2023 Adam Shaw
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- FullCalendar Core v6.1.10
2
+ FullCalendar Core v6.1.12
3
3
  Docs & License: https://fullcalendar.io
4
4
  (c) 2023 Adam Shaw
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- FullCalendar Core v6.1.10
2
+ FullCalendar Core v6.1.12
3
3
  Docs & License: https://fullcalendar.io
4
4
  (c) 2023 Adam Shaw
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- FullCalendar Core v6.1.10
2
+ FullCalendar Core v6.1.12
3
3
  Docs & License: https://fullcalendar.io
4
4
  (c) 2023 Adam Shaw
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- FullCalendar Core v6.1.10
2
+ FullCalendar Core v6.1.12
3
3
  Docs & License: https://fullcalendar.io
4
4
  (c) 2023 Adam Shaw
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- FullCalendar Core v6.1.10
2
+ FullCalendar Core v6.1.12
3
3
  Docs & License: https://fullcalendar.io
4
4
  (c) 2023 Adam Shaw
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- FullCalendar Core v6.1.10
2
+ FullCalendar Core v6.1.12
3
3
  Docs & License: https://fullcalendar.io
4
4
  (c) 2023 Adam Shaw
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- FullCalendar Core v6.1.10
2
+ FullCalendar Core v6.1.12
3
3
  Docs & License: https://fullcalendar.io
4
4
  (c) 2023 Adam Shaw
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- FullCalendar Core v6.1.10
2
+ FullCalendar Core v6.1.12
3
3
  Docs & License: https://fullcalendar.io
4
4
  (c) 2023 Adam Shaw
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- FullCalendar Core v6.1.10
2
+ FullCalendar Core v6.1.12
3
3
  Docs & License: https://fullcalendar.io
4
4
  (c) 2023 Adam Shaw
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- FullCalendar Core v6.1.10
2
+ FullCalendar Core v6.1.12
3
3
  Docs & License: https://fullcalendar.io
4
4
  (c) 2023 Adam Shaw
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- FullCalendar Core v6.1.10
2
+ FullCalendar Core v6.1.12
3
3
  Docs & License: https://fullcalendar.io
4
4
  (c) 2023 Adam Shaw
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- FullCalendar Core v6.1.10
2
+ FullCalendar Core v6.1.12
3
3
  Docs & License: https://fullcalendar.io
4
4
  (c) 2023 Adam Shaw
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- FullCalendar Core v6.1.10
2
+ FullCalendar Core v6.1.12
3
3
  Docs & License: https://fullcalendar.io
4
4
  (c) 2023 Adam Shaw
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- FullCalendar Core v6.1.10
2
+ FullCalendar Core v6.1.12
3
3
  Docs & License: https://fullcalendar.io
4
4
  (c) 2023 Adam Shaw
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- FullCalendar Core v6.1.10
2
+ FullCalendar Core v6.1.12
3
3
  Docs & License: https://fullcalendar.io
4
4
  (c) 2023 Adam Shaw
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- FullCalendar Core v6.1.10
2
+ FullCalendar Core v6.1.12
3
3
  Docs & License: https://fullcalendar.io
4
4
  (c) 2023 Adam Shaw
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- FullCalendar Core v6.1.10
2
+ FullCalendar Core v6.1.12
3
3
  Docs & License: https://fullcalendar.io
4
4
  (c) 2023 Adam Shaw
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- FullCalendar Core v6.1.10
2
+ FullCalendar Core v6.1.12
3
3
  Docs & License: https://fullcalendar.io
4
4
  (c) 2023 Adam Shaw
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- FullCalendar Core v6.1.10
2
+ FullCalendar Core v6.1.12
3
3
  Docs & License: https://fullcalendar.io
4
4
  (c) 2023 Adam Shaw
5
5
  */