@fullcalendar/core 7.0.0-beta.1 → 7.0.0-beta.3

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 (175) hide show
  1. package/index.cjs +19 -36
  2. package/index.d.ts +0 -1
  3. package/index.global.js +1278 -1203
  4. package/index.global.min.js +2 -2
  5. package/index.js +20 -37
  6. package/internal-common.cjs +4118 -4026
  7. package/internal-common.d.ts +148 -148
  8. package/internal-common.js +4106 -4010
  9. package/internal.cjs +10 -15
  10. package/internal.d.ts +1 -2
  11. package/internal.js +1 -1
  12. package/locales/af.global.js +1 -1
  13. package/locales/af.global.min.js +1 -1
  14. package/locales/ar-dz.global.js +1 -1
  15. package/locales/ar-dz.global.min.js +1 -1
  16. package/locales/ar-kw.global.js +1 -1
  17. package/locales/ar-kw.global.min.js +1 -1
  18. package/locales/ar-ly.global.js +1 -1
  19. package/locales/ar-ly.global.min.js +1 -1
  20. package/locales/ar-ma.global.js +1 -1
  21. package/locales/ar-ma.global.min.js +1 -1
  22. package/locales/ar-sa.global.js +1 -1
  23. package/locales/ar-sa.global.min.js +1 -1
  24. package/locales/ar-tn.global.js +1 -1
  25. package/locales/ar-tn.global.min.js +1 -1
  26. package/locales/ar.global.js +1 -1
  27. package/locales/ar.global.min.js +1 -1
  28. package/locales/az.global.js +1 -1
  29. package/locales/az.global.min.js +1 -1
  30. package/locales/bg.global.js +1 -1
  31. package/locales/bg.global.min.js +1 -1
  32. package/locales/bn.global.js +1 -1
  33. package/locales/bn.global.min.js +1 -1
  34. package/locales/bs.global.js +1 -1
  35. package/locales/bs.global.min.js +1 -1
  36. package/locales/ca.global.js +1 -1
  37. package/locales/ca.global.min.js +1 -1
  38. package/locales/cs.global.js +1 -1
  39. package/locales/cs.global.min.js +1 -1
  40. package/locales/cy.global.js +1 -1
  41. package/locales/cy.global.min.js +1 -1
  42. package/locales/da.global.js +1 -1
  43. package/locales/da.global.min.js +1 -1
  44. package/locales/de-at.global.js +1 -1
  45. package/locales/de-at.global.min.js +1 -1
  46. package/locales/de.global.js +1 -1
  47. package/locales/de.global.min.js +1 -1
  48. package/locales/el.global.js +1 -1
  49. package/locales/el.global.min.js +1 -1
  50. package/locales/en-au.global.js +1 -1
  51. package/locales/en-au.global.min.js +1 -1
  52. package/locales/en-gb.global.js +1 -1
  53. package/locales/en-gb.global.min.js +1 -1
  54. package/locales/en-nz.global.js +1 -1
  55. package/locales/en-nz.global.min.js +1 -1
  56. package/locales/eo.global.js +1 -1
  57. package/locales/eo.global.min.js +1 -1
  58. package/locales/es-us.global.js +1 -1
  59. package/locales/es-us.global.min.js +1 -1
  60. package/locales/es.global.js +1 -1
  61. package/locales/es.global.min.js +1 -1
  62. package/locales/et.global.js +1 -1
  63. package/locales/et.global.min.js +1 -1
  64. package/locales/eu.global.js +1 -1
  65. package/locales/eu.global.min.js +1 -1
  66. package/locales/fa.global.js +1 -1
  67. package/locales/fa.global.min.js +1 -1
  68. package/locales/fi.global.js +1 -1
  69. package/locales/fi.global.min.js +1 -1
  70. package/locales/fr-ca.global.js +1 -1
  71. package/locales/fr-ca.global.min.js +1 -1
  72. package/locales/fr-ch.global.js +1 -1
  73. package/locales/fr-ch.global.min.js +1 -1
  74. package/locales/fr.global.js +1 -1
  75. package/locales/fr.global.min.js +1 -1
  76. package/locales/gl.global.js +1 -1
  77. package/locales/gl.global.min.js +1 -1
  78. package/locales/he.global.js +1 -1
  79. package/locales/he.global.min.js +1 -1
  80. package/locales/hi.global.js +1 -1
  81. package/locales/hi.global.min.js +1 -1
  82. package/locales/hr.global.js +1 -1
  83. package/locales/hr.global.min.js +1 -1
  84. package/locales/hu.global.js +1 -1
  85. package/locales/hu.global.min.js +1 -1
  86. package/locales/hy-am.global.js +1 -1
  87. package/locales/hy-am.global.min.js +1 -1
  88. package/locales/id.global.js +1 -1
  89. package/locales/id.global.min.js +1 -1
  90. package/locales/is.global.js +1 -1
  91. package/locales/is.global.min.js +1 -1
  92. package/locales/it.global.js +1 -1
  93. package/locales/it.global.min.js +1 -1
  94. package/locales/ja.global.js +1 -1
  95. package/locales/ja.global.min.js +1 -1
  96. package/locales/ka.global.js +1 -1
  97. package/locales/ka.global.min.js +1 -1
  98. package/locales/kk.global.js +1 -1
  99. package/locales/kk.global.min.js +1 -1
  100. package/locales/km.global.js +1 -1
  101. package/locales/km.global.min.js +1 -1
  102. package/locales/ko.global.js +1 -1
  103. package/locales/ko.global.min.js +1 -1
  104. package/locales/ku.global.js +1 -1
  105. package/locales/ku.global.min.js +1 -1
  106. package/locales/lb.global.js +1 -1
  107. package/locales/lb.global.min.js +1 -1
  108. package/locales/lt.global.js +1 -1
  109. package/locales/lt.global.min.js +1 -1
  110. package/locales/lv.global.js +1 -1
  111. package/locales/lv.global.min.js +1 -1
  112. package/locales/mk.global.js +1 -1
  113. package/locales/mk.global.min.js +1 -1
  114. package/locales/ms.global.js +1 -1
  115. package/locales/ms.global.min.js +1 -1
  116. package/locales/nb.global.js +1 -1
  117. package/locales/nb.global.min.js +1 -1
  118. package/locales/ne.global.js +1 -1
  119. package/locales/ne.global.min.js +1 -1
  120. package/locales/nl.global.js +1 -1
  121. package/locales/nl.global.min.js +1 -1
  122. package/locales/nn.global.js +1 -1
  123. package/locales/nn.global.min.js +1 -1
  124. package/locales/pl.global.js +1 -1
  125. package/locales/pl.global.min.js +1 -1
  126. package/locales/pt-br.global.js +1 -1
  127. package/locales/pt-br.global.min.js +1 -1
  128. package/locales/pt.global.js +1 -1
  129. package/locales/pt.global.min.js +1 -1
  130. package/locales/ro.global.js +1 -1
  131. package/locales/ro.global.min.js +1 -1
  132. package/locales/ru.global.js +1 -1
  133. package/locales/ru.global.min.js +1 -1
  134. package/locales/si-lk.global.js +1 -1
  135. package/locales/si-lk.global.min.js +1 -1
  136. package/locales/sk.global.js +1 -1
  137. package/locales/sk.global.min.js +1 -1
  138. package/locales/sl.global.js +1 -1
  139. package/locales/sl.global.min.js +1 -1
  140. package/locales/sm.global.js +1 -1
  141. package/locales/sm.global.min.js +1 -1
  142. package/locales/sq.global.js +1 -1
  143. package/locales/sq.global.min.js +1 -1
  144. package/locales/sr-cyrl.global.js +1 -1
  145. package/locales/sr-cyrl.global.min.js +1 -1
  146. package/locales/sr.global.js +1 -1
  147. package/locales/sr.global.min.js +1 -1
  148. package/locales/sv.global.js +1 -1
  149. package/locales/sv.global.min.js +1 -1
  150. package/locales/ta-in.global.js +1 -1
  151. package/locales/ta-in.global.min.js +1 -1
  152. package/locales/th.global.js +1 -1
  153. package/locales/th.global.min.js +1 -1
  154. package/locales/tr.global.js +1 -1
  155. package/locales/tr.global.min.js +1 -1
  156. package/locales/ug.global.js +1 -1
  157. package/locales/ug.global.min.js +1 -1
  158. package/locales/uk.global.js +1 -1
  159. package/locales/uk.global.min.js +1 -1
  160. package/locales/uz-cy.global.js +1 -1
  161. package/locales/uz-cy.global.min.js +1 -1
  162. package/locales/uz.global.js +1 -1
  163. package/locales/uz.global.min.js +1 -1
  164. package/locales/vi.global.js +1 -1
  165. package/locales/vi.global.min.js +1 -1
  166. package/locales/zh-cn.global.js +1 -1
  167. package/locales/zh-cn.global.min.js +1 -1
  168. package/locales/zh-tw.global.js +1 -1
  169. package/locales/zh-tw.global.min.js +1 -1
  170. package/locales-all.global.js +1 -1
  171. package/locales-all.global.min.js +1 -1
  172. package/package.json +1 -1
  173. package/preact.cjs +1 -0
  174. package/preact.d.ts +3 -2
  175. package/preact.js +1 -1
package/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import { m as mergeProps, g as guid, i as isArraysEqual, T as Theme, a as mapHash, B as BaseComponent, V as ViewContextType, C as ContentContainer, b as buildViewClassNames, c as greatestDurationDenominator, d as createDuration, e as BASE_OPTION_DEFAULTS, f as arrayToHash, h as filterHash, j as buildEventSourceRefiners, p as parseEventSource, k as formatWithOrdinals, u as unpromisify, l as buildRangeApiWithTimeZone, n as identity, r as requestJson, s as subtractDurations, o as intersectRanges, q as startOfDay, t as addDays, v as hashValuesToArray, w as buildEventApis, D as DelayedRunner, x as createFormatter, y as diffWholeDays, z as memoize, A as memoizeObjArg, E as isPropsEqual, F as Emitter, G as getInitialDate, H as rangeContainsMarker, I as createEmptyEventStore, J as reduceCurrentDate, K as reduceEventStore, L as rezoneEventStoreDates, M as mergeRawOptions, N as BASE_OPTION_REFINERS, O as CALENDAR_LISTENER_REFINERS, P as CALENDAR_OPTION_REFINERS, Q as COMPLEX_OPTION_COMPARATORS, R as VIEW_OPTION_REFINERS, S as DateEnv, U as DateProfileGenerator, W as createEventUi, X as parseBusinessHours, Y as Interaction, Z as getElEventRange, _ as elementClosest, $ as EventImpl, a0 as listenBySelector, a1 as listenToHoverBySelector, a2 as PureComponent, a3 as buildViewContext, a4 as parseInteractionSettings, a5 as interactionSettingsStore, a6 as getNow, a7 as getIsHeightAuto, a8 as CalendarImpl, a9 as flushSync, aa as CalendarRoot, ab as RenderId, ac as ensureElHasStyles, ad as applyStyleProp, ae as sliceEventStore } from './internal-common.js';
1
+ import { m as mergeProps, g as guid, i as isArraysEqual, T as Theme, a as mapHash, B as BaseComponent, V as ViewContextType, C as ContentContainer, b as buildViewClassName, c as greatestDurationDenominator, d as createDuration, e as BASE_OPTION_DEFAULTS, f as arrayToHash, h as filterHash, j as buildEventSourceRefiners, p as parseEventSource, k as formatWithOrdinals, u as unpromisify, l as buildRangeApiWithTimeZone, n as identity, r as requestJson, s as subtractDurations, o as intersectRanges, q as startOfDay, t as addDays, v as hashValuesToArray, w as buildEventApis, D as DelayedRunner, x as createFormatter, y as diffWholeDays, z as memoize, A as memoizeObjArg, E as isPropsEqual, F as Emitter, G as getInitialDate, H as rangeContainsMarker, I as createEmptyEventStore, J as reduceCurrentDate, K as reduceEventStore, L as rezoneEventStoreDates, M as mergeRawOptions, N as BASE_OPTION_REFINERS, O as CALENDAR_LISTENER_REFINERS, P as CALENDAR_OPTION_REFINERS, Q as COMPLEX_OPTION_COMPARATORS, R as VIEW_OPTION_REFINERS, S as DateEnv, U as DateProfileGenerator, W as createEventUi, X as parseBusinessHours, Y as joinClassNames, Z as Interaction, _ as getElEventRange, $ as EventImpl, a0 as listenBySelector, a1 as listenToHoverBySelector, a2 as PureComponent, a3 as buildViewContext, a4 as parseInteractionSettings, a5 as interactionSettingsStore, a6 as getNow, a7 as getIsHeightAuto, a8 as CalendarImpl, a9 as flushSync, aa as CalendarRoot, ab as RenderId, ac as ensureElHasStyles, ad as applyStyleProp, ae as sliceEventStore } from './internal-common.js';
2
2
  export { af as JsonRequestError } from './internal-common.js';
3
3
  import { createElement, Component, Fragment, render } from 'preact';
4
4
  import 'preact/compat';
@@ -356,7 +356,7 @@ function parseViewConfig(input) {
356
356
  };
357
357
  }
358
358
  function createViewHookComponent(options) {
359
- return (viewProps) => (createElement(ViewContextType.Consumer, null, (context) => (createElement(ContentContainer, { elTag: "div", elClasses: buildViewClassNames(context.viewSpec), renderProps: Object.assign(Object.assign({}, viewProps), { nextDayThreshold: context.options.nextDayThreshold }), generatorName: undefined, customGenerator: options.content, classNameGenerator: options.classNames, didMount: options.didMount, willUnmount: options.willUnmount }))));
359
+ return (viewProps) => (createElement(ViewContextType.Consumer, null, (context) => (createElement(ContentContainer, { tag: "div", className: buildViewClassName(context.viewSpec), renderProps: Object.assign(Object.assign({}, viewProps), { nextDayThreshold: context.options.nextDayThreshold }), generatorName: undefined, customGenerator: options.content, classNameGenerator: options.classNames, didMount: options.didMount, willUnmount: options.willUnmount }))));
360
360
  }
361
361
 
362
362
  function buildViewSpecs(defaultInputs, optionOverrides, dynamicOptionOverrides, localeDefaults) {
@@ -1624,7 +1624,7 @@ class ToolbarSection extends BaseComponent {
1624
1624
  render() {
1625
1625
  let children = this.props.widgetGroups.map((widgetGroup) => this.renderWidgetGroup(widgetGroup));
1626
1626
  return createElement('div', {
1627
- className: 'fc-toolbar-chunk fc-toolbar-' + this.props.name
1627
+ className: 'fc-toolbar-section fc-toolbar-' + this.props.name
1628
1628
  }, ...children);
1629
1629
  }
1630
1630
  renderWidgetGroup(widgetGroup) {
@@ -1643,15 +1643,11 @@ class ToolbarSection extends BaseComponent {
1643
1643
  let isDisabled = (!props.isTodayEnabled && buttonName === 'today') ||
1644
1644
  (!props.isPrevEnabled && buttonName === 'prev') ||
1645
1645
  (!props.isNextEnabled && buttonName === 'next');
1646
- let buttonClasses = [`fc-${buttonName}-button`, theme.getClass('button')];
1647
- if (isPressed) {
1648
- buttonClasses.push(theme.getClass('buttonActive'));
1649
- }
1650
- children.push(createElement("button", { type: "button", title: typeof buttonHint === 'function' ? buttonHint(props.navUnit) : buttonHint, disabled: isDisabled, "aria-pressed": isPressed, className: buttonClasses.join(' '), onClick: buttonClick }, buttonText || (buttonIcon ? createElement("span", { className: buttonIcon, role: "img" }) : '')));
1646
+ children.push(createElement("button", { type: "button", title: typeof buttonHint === 'function' ? buttonHint(props.navUnit) : buttonHint, disabled: isDisabled, "aria-pressed": isPressed, className: joinClassNames(`fc-${buttonName}-button`, theme.getClassName('button'), isPressed && theme.getClassName('buttonActive')), onClick: buttonClick }, buttonText || (buttonIcon ? createElement("span", { className: buttonIcon, role: "img" }) : '')));
1651
1647
  }
1652
1648
  }
1653
1649
  if (children.length > 1) {
1654
- let groupClassName = (isOnlyButtons && theme.getClass('buttonGroup')) || '';
1650
+ let groupClassName = (isOnlyButtons && theme.getClassName('buttonGroup')) || '';
1655
1651
  return createElement('div', { className: groupClassName }, ...children);
1656
1652
  }
1657
1653
  return children[0];
@@ -1660,7 +1656,7 @@ class ToolbarSection extends BaseComponent {
1660
1656
 
1661
1657
  class Toolbar extends BaseComponent {
1662
1658
  render() {
1663
- let { model, extraClassName } = this.props;
1659
+ let { model, className } = this.props;
1664
1660
  let forceLtr = false;
1665
1661
  let startContent;
1666
1662
  let endContent;
@@ -1680,12 +1676,7 @@ class Toolbar extends BaseComponent {
1680
1676
  else {
1681
1677
  endContent = sectionWidgets.end;
1682
1678
  }
1683
- let classNames = [
1684
- extraClassName || '',
1685
- 'fc-toolbar',
1686
- forceLtr ? 'fc-toolbar-ltr' : '',
1687
- ];
1688
- return (createElement("div", { className: classNames.join(' ') },
1679
+ return (createElement("div", { className: joinClassNames(className, 'fc-toolbar', forceLtr && 'fc-toolbar-ltr') },
1689
1680
  this.renderSection('start', startContent || []),
1690
1681
  this.renderSection('center', centerContent || []),
1691
1682
  this.renderSection('end', endContent || [])));
@@ -1708,19 +1699,12 @@ class EventClicking extends Interaction {
1708
1699
  let eventRange = getElEventRange(segEl);
1709
1700
  if (eventRange && // might be the <div> surrounding the more link
1710
1701
  component.isValidSegDownEl(ev.target)) {
1711
- // our way to simulate a link click for elements that can't be <a> tags
1712
- // grab before trigger fired in case trigger trashes DOM thru rerendering
1713
- let hasUrlContainer = elementClosest(ev.target, '.fc-event-forced-url');
1714
- let url = hasUrlContainer ? hasUrlContainer.querySelector('a[href]').href : '';
1715
1702
  context.emitter.trigger('eventClick', {
1716
1703
  el: segEl,
1717
1704
  event: new EventImpl(component.context, eventRange.def, eventRange.instance),
1718
1705
  jsEvent: ev,
1719
1706
  view: context.viewApi,
1720
1707
  });
1721
- if (url && !ev.defaultPrevented) {
1722
- window.location.href = url;
1723
- }
1724
1708
  }
1725
1709
  };
1726
1710
  this.destroy = listenBySelector(settings.el, 'click', '.fc-event', // on both fg and bg events
@@ -1777,16 +1761,12 @@ class EventHovering extends Interaction {
1777
1761
  class ViewHarness extends Component {
1778
1762
  render() {
1779
1763
  const { props } = this;
1780
- return (createElement("div", { className: [
1781
- 'fc-view-harness',
1782
- props.height != null
1783
- ? 'fc-view-harness-fixedheight'
1784
- : props.heightLiquid
1785
- ? 'fc-view-harness-liquid'
1786
- : props.aspectRatio != null
1787
- ? 'fc-view-harness-aspectratio'
1788
- : ''
1789
- ].join(' '), style: {
1764
+ return (createElement("div", { className: joinClassNames('fc-view-outer', props.height != null
1765
+ ? 'fc-view-outer-static'
1766
+ : props.heightLiquid
1767
+ ? 'fc-view-outer-liquid'
1768
+ : props.aspectRatio != null
1769
+ && 'fc-view-outer-aspect-ratio'), style: {
1790
1770
  height: props.height,
1791
1771
  paddingBottom: props.aspectRatio != null
1792
1772
  ? `${(1 / props.aspectRatio) * 100}%`
@@ -1810,7 +1790,10 @@ class CalendarContent extends PureComponent {
1810
1790
  EventClicking,
1811
1791
  EventHovering,
1812
1792
  ];
1813
- let interactionClasses = DEFAULT_INTERACTIONS.concat(this.props.pluginHooks.componentInteractions);
1793
+ let interactionClasses = DEFAULT_INTERACTIONS;
1794
+ if (!settingsInput.disableHits) {
1795
+ interactionClasses = interactionClasses.concat(this.props.pluginHooks.componentInteractions);
1796
+ }
1814
1797
  let interactions = interactionClasses.map((TheInteractionClass) => new TheInteractionClass(settings));
1815
1798
  this.interactionsStore[component.uid] = interactions;
1816
1799
  interactionSettingsStore[component.uid] = settings;
@@ -1849,11 +1832,11 @@ class CalendarContent extends PureComponent {
1849
1832
  }
1850
1833
  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);
1851
1834
  return (createElement(ViewContextType.Provider, { value: viewContext },
1852
- toolbarConfig.header && (createElement(Toolbar, Object.assign({ extraClassName: "fc-header-toolbar", model: toolbarConfig.header }, toolbarProps))),
1835
+ toolbarConfig.header && (createElement(Toolbar, Object.assign({ className: "fc-header-toolbar", model: toolbarConfig.header }, toolbarProps))),
1853
1836
  createElement(ViewHarness, { height: viewHeight, heightLiquid: viewHeightLiquid, aspectRatio: viewAspectRatio },
1854
1837
  this.renderView(props),
1855
1838
  this.buildAppendContent()),
1856
- toolbarConfig.footer && (createElement(Toolbar, Object.assign({ extraClassName: "fc-footer-toolbar", model: toolbarConfig.footer }, toolbarProps)))));
1839
+ toolbarConfig.footer && (createElement(Toolbar, Object.assign({ className: "fc-footer-toolbar", model: toolbarConfig.footer }, toolbarProps)))));
1857
1840
  }
1858
1841
  componentDidMount() {
1859
1842
  let { props } = this;
@@ -2074,6 +2057,6 @@ function sliceEvents(props, allDay) {
2074
2057
  return sliceEventStore(props.eventStore, props.eventUiBases, props.dateProfile.activeRange, allDay ? props.nextDayThreshold : null).fg;
2075
2058
  }
2076
2059
 
2077
- const version = '7.0.0-beta.1';
2060
+ const version = '7.0.0-beta.3';
2078
2061
 
2079
2062
  export { Calendar, createPlugin, formatDate, formatRange, globalLocales, globalPlugins, sliceEvents, version };