@fullcalendar/core 7.0.0-beta.0 → 7.0.0-beta.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/index.cjs +7 -7
- package/index.global.js +228 -146
- package/index.global.min.js +2 -2
- package/index.js +8 -8
- package/internal-common.cjs +147 -65
- package/internal-common.d.ts +50 -27
- package/internal-common.js +144 -61
- package/internal.cjs +4 -5
- package/internal.d.ts +1 -1
- package/internal.js +1 -1
- package/locales/af.global.js +1 -1
- package/locales/af.global.min.js +1 -1
- package/locales/ar-dz.global.js +1 -1
- package/locales/ar-dz.global.min.js +1 -1
- package/locales/ar-kw.global.js +1 -1
- package/locales/ar-kw.global.min.js +1 -1
- package/locales/ar-ly.global.js +1 -1
- package/locales/ar-ly.global.min.js +1 -1
- package/locales/ar-ma.global.js +1 -1
- package/locales/ar-ma.global.min.js +1 -1
- package/locales/ar-sa.global.js +1 -1
- package/locales/ar-sa.global.min.js +1 -1
- package/locales/ar-tn.global.js +1 -1
- package/locales/ar-tn.global.min.js +1 -1
- package/locales/ar.global.js +1 -1
- package/locales/ar.global.min.js +1 -1
- package/locales/az.global.js +1 -1
- package/locales/az.global.min.js +1 -1
- package/locales/bg.global.js +1 -1
- package/locales/bg.global.min.js +1 -1
- package/locales/bn.global.js +1 -1
- package/locales/bn.global.min.js +1 -1
- package/locales/bs.global.js +1 -1
- package/locales/bs.global.min.js +1 -1
- package/locales/ca.global.js +1 -1
- package/locales/ca.global.min.js +1 -1
- package/locales/cs.global.js +1 -1
- package/locales/cs.global.min.js +1 -1
- package/locales/cy.global.js +1 -1
- package/locales/cy.global.min.js +1 -1
- package/locales/da.global.js +1 -1
- package/locales/da.global.min.js +1 -1
- package/locales/de-at.global.js +1 -1
- package/locales/de-at.global.min.js +1 -1
- package/locales/de.global.js +1 -1
- package/locales/de.global.min.js +1 -1
- package/locales/el.global.js +1 -1
- package/locales/el.global.min.js +1 -1
- package/locales/en-au.global.js +1 -1
- package/locales/en-au.global.min.js +1 -1
- package/locales/en-gb.global.js +1 -1
- package/locales/en-gb.global.min.js +1 -1
- package/locales/en-nz.global.js +1 -1
- package/locales/en-nz.global.min.js +1 -1
- package/locales/eo.global.js +1 -1
- package/locales/eo.global.min.js +1 -1
- package/locales/es-us.global.js +1 -1
- package/locales/es-us.global.min.js +1 -1
- package/locales/es.global.js +1 -1
- package/locales/es.global.min.js +1 -1
- package/locales/et.global.js +1 -1
- package/locales/et.global.min.js +1 -1
- package/locales/eu.global.js +1 -1
- package/locales/eu.global.min.js +1 -1
- package/locales/fa.global.js +1 -1
- package/locales/fa.global.min.js +1 -1
- package/locales/fi.global.js +1 -1
- package/locales/fi.global.min.js +1 -1
- package/locales/fr-ca.global.js +1 -1
- package/locales/fr-ca.global.min.js +1 -1
- package/locales/fr-ch.global.js +1 -1
- package/locales/fr-ch.global.min.js +1 -1
- package/locales/fr.global.js +1 -1
- package/locales/fr.global.min.js +1 -1
- package/locales/gl.global.js +1 -1
- package/locales/gl.global.min.js +1 -1
- package/locales/he.global.js +1 -1
- package/locales/he.global.min.js +1 -1
- package/locales/hi.global.js +1 -1
- package/locales/hi.global.min.js +1 -1
- package/locales/hr.global.js +1 -1
- package/locales/hr.global.min.js +1 -1
- package/locales/hu.global.js +1 -1
- package/locales/hu.global.min.js +1 -1
- package/locales/hy-am.global.js +1 -1
- package/locales/hy-am.global.min.js +1 -1
- package/locales/id.global.js +1 -1
- package/locales/id.global.min.js +1 -1
- package/locales/is.global.js +1 -1
- package/locales/is.global.min.js +1 -1
- package/locales/it.global.js +1 -1
- package/locales/it.global.min.js +1 -1
- package/locales/ja.global.js +1 -1
- package/locales/ja.global.min.js +1 -1
- package/locales/ka.global.js +1 -1
- package/locales/ka.global.min.js +1 -1
- package/locales/kk.global.js +1 -1
- package/locales/kk.global.min.js +1 -1
- package/locales/km.global.js +1 -1
- package/locales/km.global.min.js +1 -1
- package/locales/ko.global.js +1 -1
- package/locales/ko.global.min.js +1 -1
- package/locales/ku.global.js +1 -1
- package/locales/ku.global.min.js +1 -1
- package/locales/lb.global.js +1 -1
- package/locales/lb.global.min.js +1 -1
- package/locales/lt.global.js +1 -1
- package/locales/lt.global.min.js +1 -1
- package/locales/lv.global.js +1 -1
- package/locales/lv.global.min.js +1 -1
- package/locales/mk.global.js +1 -1
- package/locales/mk.global.min.js +1 -1
- package/locales/ms.global.js +1 -1
- package/locales/ms.global.min.js +1 -1
- package/locales/nb.global.js +1 -1
- package/locales/nb.global.min.js +1 -1
- package/locales/ne.global.js +1 -1
- package/locales/ne.global.min.js +1 -1
- package/locales/nl.global.js +1 -1
- package/locales/nl.global.min.js +1 -1
- package/locales/nn.global.js +1 -1
- package/locales/nn.global.min.js +1 -1
- package/locales/pl.global.js +1 -1
- package/locales/pl.global.min.js +1 -1
- package/locales/pt-br.global.js +1 -1
- package/locales/pt-br.global.min.js +1 -1
- package/locales/pt.global.js +1 -1
- package/locales/pt.global.min.js +1 -1
- package/locales/ro.global.js +1 -1
- package/locales/ro.global.min.js +1 -1
- package/locales/ru.global.js +1 -1
- package/locales/ru.global.min.js +1 -1
- package/locales/si-lk.global.js +1 -1
- package/locales/si-lk.global.min.js +1 -1
- package/locales/sk.global.js +1 -1
- package/locales/sk.global.min.js +1 -1
- package/locales/sl.global.js +1 -1
- package/locales/sl.global.min.js +1 -1
- package/locales/sm.global.js +1 -1
- package/locales/sm.global.min.js +1 -1
- package/locales/sq.global.js +1 -1
- package/locales/sq.global.min.js +1 -1
- package/locales/sr-cyrl.global.js +1 -1
- package/locales/sr-cyrl.global.min.js +1 -1
- package/locales/sr.global.js +1 -1
- package/locales/sr.global.min.js +1 -1
- package/locales/sv.global.js +1 -1
- package/locales/sv.global.min.js +1 -1
- package/locales/ta-in.global.js +1 -1
- package/locales/ta-in.global.min.js +1 -1
- package/locales/th.global.js +1 -1
- package/locales/th.global.min.js +1 -1
- package/locales/tr.global.js +1 -1
- package/locales/tr.global.min.js +1 -1
- package/locales/ug.global.js +1 -1
- package/locales/ug.global.min.js +1 -1
- package/locales/uk.global.js +1 -1
- package/locales/uk.global.min.js +1 -1
- package/locales/uz-cy.global.js +1 -1
- package/locales/uz-cy.global.min.js +1 -1
- package/locales/uz.global.js +1 -1
- package/locales/uz.global.min.js +1 -1
- package/locales/vi.global.js +1 -1
- package/locales/vi.global.min.js +1 -1
- package/locales/zh-cn.global.js +1 -1
- package/locales/zh-cn.global.min.js +1 -1
- package/locales/zh-tw.global.js +1 -1
- package/locales/zh-tw.global.min.js +1 -1
- package/locales-all.global.js +1 -1
- package/locales-all.global.min.js +1 -1
- package/package.json +1 -1
- package/preact.d.ts +6 -0
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
|
|
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';
|
|
2
2
|
export { af as JsonRequestError } from './internal-common.js';
|
|
3
3
|
import { createElement, Component, Fragment, render } from 'preact';
|
|
4
4
|
import 'preact/compat';
|
|
@@ -1705,8 +1705,8 @@ class EventClicking extends Interaction {
|
|
|
1705
1705
|
this.handleSegClick = (ev, segEl) => {
|
|
1706
1706
|
let { component } = this;
|
|
1707
1707
|
let { context } = component;
|
|
1708
|
-
let
|
|
1709
|
-
if (
|
|
1708
|
+
let eventRange = getElEventRange(segEl);
|
|
1709
|
+
if (eventRange && // might be the <div> surrounding the more link
|
|
1710
1710
|
component.isValidSegDownEl(ev.target)) {
|
|
1711
1711
|
// our way to simulate a link click for elements that can't be <a> tags
|
|
1712
1712
|
// grab before trigger fired in case trigger trashes DOM thru rerendering
|
|
@@ -1714,7 +1714,7 @@ class EventClicking extends Interaction {
|
|
|
1714
1714
|
let url = hasUrlContainer ? hasUrlContainer.querySelector('a[href]').href : '';
|
|
1715
1715
|
context.emitter.trigger('eventClick', {
|
|
1716
1716
|
el: segEl,
|
|
1717
|
-
event: new EventImpl(component.context,
|
|
1717
|
+
event: new EventImpl(component.context, eventRange.def, eventRange.instance),
|
|
1718
1718
|
jsEvent: ev,
|
|
1719
1719
|
view: context.viewApi,
|
|
1720
1720
|
});
|
|
@@ -1742,7 +1742,7 @@ class EventHovering extends Interaction {
|
|
|
1742
1742
|
}
|
|
1743
1743
|
};
|
|
1744
1744
|
this.handleSegEnter = (ev, segEl) => {
|
|
1745
|
-
if (
|
|
1745
|
+
if (getElEventRange(segEl)) { // TODO: better way to make sure not hovering over more+ link or its wrapper
|
|
1746
1746
|
this.currentSegEl = segEl;
|
|
1747
1747
|
this.triggerEvent('eventMouseEnter', ev, segEl);
|
|
1748
1748
|
}
|
|
@@ -1762,11 +1762,11 @@ class EventHovering extends Interaction {
|
|
|
1762
1762
|
triggerEvent(publicEvName, ev, segEl) {
|
|
1763
1763
|
let { component } = this;
|
|
1764
1764
|
let { context } = component;
|
|
1765
|
-
let
|
|
1765
|
+
let eventRange = getElEventRange(segEl);
|
|
1766
1766
|
if (!ev || component.isValidSegDownEl(ev.target)) {
|
|
1767
1767
|
context.emitter.trigger(publicEvName, {
|
|
1768
1768
|
el: segEl,
|
|
1769
|
-
event: new EventImpl(context,
|
|
1769
|
+
event: new EventImpl(context, eventRange.def, eventRange.instance),
|
|
1770
1770
|
jsEvent: ev,
|
|
1771
1771
|
view: context.viewApi,
|
|
1772
1772
|
});
|
|
@@ -2074,6 +2074,6 @@ function sliceEvents(props, allDay) {
|
|
|
2074
2074
|
return sliceEventStore(props.eventStore, props.eventUiBases, props.dateProfile.activeRange, allDay ? props.nextDayThreshold : null).fg;
|
|
2075
2075
|
}
|
|
2076
2076
|
|
|
2077
|
-
const version = '7.0.0-beta.
|
|
2077
|
+
const version = '7.0.0-beta.1';
|
|
2078
2078
|
|
|
2079
2079
|
export { Calendar, createPlugin, formatDate, formatRange, globalLocales, globalPlugins, sliceEvents, version };
|
package/internal-common.cjs
CHANGED
|
@@ -4297,12 +4297,12 @@ function sliceEventStore(eventStore, eventUiBases, framingRange, nextDayThreshol
|
|
|
4297
4297
|
function hasBgRendering(def) {
|
|
4298
4298
|
return def.ui.display === 'background' || def.ui.display === 'inverse-background';
|
|
4299
4299
|
}
|
|
4300
|
-
function
|
|
4301
|
-
el.
|
|
4300
|
+
function setElEventRange(el, eventRange) {
|
|
4301
|
+
el.fcEventRange = eventRange;
|
|
4302
4302
|
}
|
|
4303
|
-
function
|
|
4304
|
-
return el.
|
|
4305
|
-
el.parentNode.
|
|
4303
|
+
function getElEventRange(el) {
|
|
4304
|
+
return el.fcEventRange ||
|
|
4305
|
+
el.parentNode.fcEventRange || // for the harness
|
|
4306
4306
|
null;
|
|
4307
4307
|
}
|
|
4308
4308
|
// event ui computation
|
|
@@ -4322,7 +4322,7 @@ function compileEventUi(eventDef, eventUiBases) {
|
|
|
4322
4322
|
}
|
|
4323
4323
|
function sortEventSegs(segs, eventOrderSpecs) {
|
|
4324
4324
|
let objs = segs.map(buildSegCompareObj);
|
|
4325
|
-
objs.sort((obj0, obj1) => compareByFieldSpecs(obj0, obj1, eventOrderSpecs));
|
|
4325
|
+
objs.sort((obj0, obj1) => compareByFieldSpecs(obj0, obj1, eventOrderSpecs)); // !!!
|
|
4326
4326
|
return objs.map((c) => c._seg);
|
|
4327
4327
|
}
|
|
4328
4328
|
// returns a object with all primitive props that can be compared
|
|
@@ -4335,29 +4335,23 @@ function buildSegCompareObj(seg) {
|
|
|
4335
4335
|
return Object.assign(Object.assign(Object.assign({}, eventDef.extendedProps), eventDef), { id: eventDef.publicId, start,
|
|
4336
4336
|
end, duration: end - start, allDay: Number(eventDef.allDay), _seg: seg });
|
|
4337
4337
|
}
|
|
4338
|
-
function
|
|
4338
|
+
function computeEventRangeDraggable(eventRange, context) {
|
|
4339
4339
|
let { pluginHooks } = context;
|
|
4340
4340
|
let transformers = pluginHooks.isDraggableTransformers;
|
|
4341
|
-
let { def, ui } =
|
|
4341
|
+
let { def, ui } = eventRange;
|
|
4342
4342
|
let val = ui.startEditable;
|
|
4343
4343
|
for (let transformer of transformers) {
|
|
4344
4344
|
val = transformer(val, def, ui, context);
|
|
4345
4345
|
}
|
|
4346
4346
|
return val;
|
|
4347
4347
|
}
|
|
4348
|
-
function
|
|
4349
|
-
return seg.isStart && seg.eventRange.ui.durationEditable && context.options.eventResizableFromStart;
|
|
4350
|
-
}
|
|
4351
|
-
function computeSegEndResizable(seg, context) {
|
|
4352
|
-
return seg.isEnd && seg.eventRange.ui.durationEditable;
|
|
4353
|
-
}
|
|
4354
|
-
function buildSegTimeText(seg, timeFormat, context, defaultDisplayEventTime, // defaults to true
|
|
4348
|
+
function buildEventRangeTimeText(eventRange, timeFormat, context, defaultDisplayEventTime, // defaults to true
|
|
4355
4349
|
defaultDisplayEventEnd, // defaults to true
|
|
4356
4350
|
startOverride, endOverride) {
|
|
4357
4351
|
let { dateEnv, options } = context;
|
|
4358
4352
|
let { displayEventTime, displayEventEnd } = options;
|
|
4359
|
-
let eventDef =
|
|
4360
|
-
let eventInstance =
|
|
4353
|
+
let eventDef = eventRange.def;
|
|
4354
|
+
let eventInstance = eventRange.instance;
|
|
4361
4355
|
if (displayEventTime == null) {
|
|
4362
4356
|
displayEventTime = defaultDisplayEventTime !== false;
|
|
4363
4357
|
}
|
|
@@ -4366,8 +4360,8 @@ startOverride, endOverride) {
|
|
|
4366
4360
|
}
|
|
4367
4361
|
let wholeEventStart = eventInstance.range.start;
|
|
4368
4362
|
let wholeEventEnd = eventInstance.range.end;
|
|
4369
|
-
let segStart = startOverride ||
|
|
4370
|
-
let segEnd = endOverride ||
|
|
4363
|
+
let segStart = startOverride || eventRange.range.start;
|
|
4364
|
+
let segEnd = endOverride || eventRange.range.end;
|
|
4371
4365
|
let isStartDay = startOfDay(wholeEventStart).valueOf() === startOfDay(segStart).valueOf();
|
|
4372
4366
|
let isEndDay = startOfDay(addMs(wholeEventEnd, -1)).valueOf() === startOfDay(addMs(segEnd, -1)).valueOf();
|
|
4373
4367
|
if (displayEventTime && !eventDef.allDay && (isStartDay || isEndDay)) {
|
|
@@ -4385,8 +4379,8 @@ startOverride, endOverride) {
|
|
|
4385
4379
|
}
|
|
4386
4380
|
return '';
|
|
4387
4381
|
}
|
|
4388
|
-
function
|
|
4389
|
-
let segRange =
|
|
4382
|
+
function getEventRangeMeta(eventRange, todayRange, nowDate) {
|
|
4383
|
+
let segRange = eventRange.range;
|
|
4390
4384
|
return {
|
|
4391
4385
|
isPast: segRange.end <= (nowDate || todayRange.start),
|
|
4392
4386
|
isFuture: segRange.start >= (nowDate || todayRange.end),
|
|
@@ -4436,8 +4430,8 @@ function buildEventRangeKey(eventRange) {
|
|
|
4436
4430
|
: `${eventRange.def.defId}:${eventRange.range.start.toISOString()}`;
|
|
4437
4431
|
// inverse-background events don't have specific instances. TODO: better solution
|
|
4438
4432
|
}
|
|
4439
|
-
function
|
|
4440
|
-
let { def, instance } =
|
|
4433
|
+
function getEventRangeAnchorAttrs(eventRange, context) {
|
|
4434
|
+
let { def, instance } = eventRange;
|
|
4441
4435
|
let { url } = def;
|
|
4442
4436
|
if (url) {
|
|
4443
4437
|
return { href: url };
|
|
@@ -6132,6 +6126,99 @@ class DayTableModel {
|
|
|
6132
6126
|
}
|
|
6133
6127
|
}
|
|
6134
6128
|
|
|
6129
|
+
const WHEEL_EVENT_NAMES = 'wheel mousewheel DomMouseScroll MozMousePixelScroll'.split(' ');
|
|
6130
|
+
/*
|
|
6131
|
+
Fires:
|
|
6132
|
+
- scrollStart (always user)
|
|
6133
|
+
- scroll
|
|
6134
|
+
- scrollEnd (always user)
|
|
6135
|
+
|
|
6136
|
+
NOTE: detection is complicated (w/ touch and wheel) because ScrollerSyncer needs to know about it,
|
|
6137
|
+
but are we sure we can't just ignore programmatic scrollTo() calls with a flag? and determine the
|
|
6138
|
+
the scroll-master simply by who was the newest scroller? Does passive:true do things asynchronously?
|
|
6139
|
+
*/
|
|
6140
|
+
class ScrollListener {
|
|
6141
|
+
constructor(el) {
|
|
6142
|
+
this.el = el;
|
|
6143
|
+
this.emitter = new Emitter();
|
|
6144
|
+
this.isScrolling = false;
|
|
6145
|
+
this.isTouching = false; // user currently has finger down?
|
|
6146
|
+
this.isRecentlyWheeled = false;
|
|
6147
|
+
this.isRecentlyScrolled = false;
|
|
6148
|
+
this.wheelWaiter = new DelayedRunner(this._handleWheelWaited.bind(this));
|
|
6149
|
+
this.scrollWaiter = new DelayedRunner(this._handleScrollWaited.bind(this));
|
|
6150
|
+
// Handlers
|
|
6151
|
+
// ----------------------------------------------------------------------------------------------
|
|
6152
|
+
this.handleScroll = () => {
|
|
6153
|
+
this.startScroll();
|
|
6154
|
+
this.emitter.trigger('scroll', this.isRecentlyWheeled, this.isTouching);
|
|
6155
|
+
this.isRecentlyScrolled = true;
|
|
6156
|
+
this.scrollWaiter.request(500);
|
|
6157
|
+
};
|
|
6158
|
+
// will fire *before* the scroll event is fired (might not cause a scroll)
|
|
6159
|
+
this.handleWheel = () => {
|
|
6160
|
+
this.isRecentlyWheeled = true;
|
|
6161
|
+
this.wheelWaiter.request(500);
|
|
6162
|
+
};
|
|
6163
|
+
// will fire *before* the scroll event is fired (might not cause a scroll)
|
|
6164
|
+
this.handleTouchStart = () => {
|
|
6165
|
+
this.isTouching = true;
|
|
6166
|
+
};
|
|
6167
|
+
this.handleTouchEnd = () => {
|
|
6168
|
+
this.isTouching = false;
|
|
6169
|
+
// if the user ended their touch, and the scroll area wasn't moving,
|
|
6170
|
+
// we consider this to be the end of the scroll.
|
|
6171
|
+
if (!this.isRecentlyScrolled) {
|
|
6172
|
+
this.endScroll(); // won't fire if already ended
|
|
6173
|
+
}
|
|
6174
|
+
};
|
|
6175
|
+
el.addEventListener('scroll', this.handleScroll);
|
|
6176
|
+
el.addEventListener('touchstart', this.handleTouchStart, { passive: true });
|
|
6177
|
+
el.addEventListener('touchend', this.handleTouchEnd);
|
|
6178
|
+
for (let eventName of WHEEL_EVENT_NAMES) {
|
|
6179
|
+
el.addEventListener(eventName, this.handleWheel, { passive: true });
|
|
6180
|
+
}
|
|
6181
|
+
}
|
|
6182
|
+
destroy() {
|
|
6183
|
+
let { el } = this;
|
|
6184
|
+
el.removeEventListener('scroll', this.handleScroll);
|
|
6185
|
+
el.removeEventListener('touchstart', this.handleTouchStart, { passive: true });
|
|
6186
|
+
el.removeEventListener('touchend', this.handleTouchEnd);
|
|
6187
|
+
for (let eventName of WHEEL_EVENT_NAMES) {
|
|
6188
|
+
el.removeEventListener(eventName, this.handleWheel, { passive: true });
|
|
6189
|
+
}
|
|
6190
|
+
}
|
|
6191
|
+
// Start / Stop
|
|
6192
|
+
// ----------------------------------------------------------------------------------------------
|
|
6193
|
+
startScroll() {
|
|
6194
|
+
if (!this.isScrolling) {
|
|
6195
|
+
this.isScrolling = true;
|
|
6196
|
+
this.emitter.trigger('scrollStart', this.isRecentlyWheeled, this.isTouching);
|
|
6197
|
+
}
|
|
6198
|
+
}
|
|
6199
|
+
endScroll() {
|
|
6200
|
+
if (this.isScrolling) {
|
|
6201
|
+
this.emitter.trigger('scrollEnd');
|
|
6202
|
+
this.isScrolling = false;
|
|
6203
|
+
this.isRecentlyScrolled = true;
|
|
6204
|
+
this.isRecentlyWheeled = false;
|
|
6205
|
+
this.scrollWaiter.clear();
|
|
6206
|
+
this.wheelWaiter.clear();
|
|
6207
|
+
}
|
|
6208
|
+
}
|
|
6209
|
+
_handleScrollWaited() {
|
|
6210
|
+
this.isRecentlyScrolled = false;
|
|
6211
|
+
// only end the scroll if not currently touching.
|
|
6212
|
+
// if touching, the scrolling will end later, on touchend.
|
|
6213
|
+
if (!this.isTouching) {
|
|
6214
|
+
this.endScroll(); // won't fire if already ended
|
|
6215
|
+
}
|
|
6216
|
+
}
|
|
6217
|
+
_handleWheelWaited() {
|
|
6218
|
+
this.isRecentlyWheeled = false;
|
|
6219
|
+
}
|
|
6220
|
+
}
|
|
6221
|
+
|
|
6135
6222
|
class Scroller extends DateComponent {
|
|
6136
6223
|
constructor() {
|
|
6137
6224
|
super(...arguments);
|
|
@@ -6151,6 +6238,7 @@ class Scroller extends DateComponent {
|
|
|
6151
6238
|
}
|
|
6152
6239
|
componentDidMount() {
|
|
6153
6240
|
const el = this.elRef.current; // TODO: make dynamic with useEffect
|
|
6241
|
+
this.listener = new ScrollListener(el);
|
|
6154
6242
|
this.disconnectSize = watchSize(el, (contentWidth, contentHeight) => {
|
|
6155
6243
|
const { props, context } = this;
|
|
6156
6244
|
const bottomScrollbarWidth = el.offsetHeight - el.clientHeight;
|
|
@@ -6181,13 +6269,20 @@ class Scroller extends DateComponent {
|
|
|
6181
6269
|
});
|
|
6182
6270
|
}
|
|
6183
6271
|
componentWillUnmount() {
|
|
6272
|
+
const { props } = this;
|
|
6184
6273
|
this.disconnectSize();
|
|
6274
|
+
this.listener.destroy();
|
|
6275
|
+
setRef(props.widthRef, null);
|
|
6276
|
+
setRef(props.heightRef, null);
|
|
6277
|
+
setRef(props.bottomScrollbarWidthRef, null);
|
|
6278
|
+
setRef(props.rightScrollbarWidthRef, null);
|
|
6279
|
+
setRef(props.leftScrollbarWidthRef, null);
|
|
6280
|
+
}
|
|
6281
|
+
endScroll() {
|
|
6282
|
+
this.listener.endScroll();
|
|
6185
6283
|
}
|
|
6186
6284
|
// Public API
|
|
6187
6285
|
// -----------------------------------------------------------------------------------------------
|
|
6188
|
-
get el() {
|
|
6189
|
-
return this.elRef.current;
|
|
6190
|
-
}
|
|
6191
6286
|
get x() {
|
|
6192
6287
|
const { isRtl } = this.context;
|
|
6193
6288
|
const el = this.elRef.current;
|
|
@@ -6207,6 +6302,12 @@ class Scroller extends DateComponent {
|
|
|
6207
6302
|
setNormalizedScrollX(el, isRtl, x);
|
|
6208
6303
|
}
|
|
6209
6304
|
}
|
|
6305
|
+
addScrollEndListener(handler) {
|
|
6306
|
+
this.listener.emitter.on('scrollEnd', handler);
|
|
6307
|
+
}
|
|
6308
|
+
removeScrollEndListener(handler) {
|
|
6309
|
+
this.listener.emitter.off('scrollEnd', handler);
|
|
6310
|
+
}
|
|
6210
6311
|
}
|
|
6211
6312
|
// Public API
|
|
6212
6313
|
// -------------------------------------------------------------------------------------------------
|
|
@@ -6701,38 +6802,20 @@ function buildDayRange(date) {
|
|
|
6701
6802
|
return { start, end };
|
|
6702
6803
|
}
|
|
6703
6804
|
|
|
6704
|
-
class ScrollResponder {
|
|
6705
|
-
constructor(_handleScroll) {
|
|
6706
|
-
this._handleScroll = _handleScroll;
|
|
6707
|
-
this.handleScroll = (scroll) => {
|
|
6708
|
-
this.queuedScroll = scroll;
|
|
6709
|
-
this.drain();
|
|
6710
|
-
};
|
|
6711
|
-
}
|
|
6712
|
-
drain() {
|
|
6713
|
-
if (this.queuedScroll) {
|
|
6714
|
-
if (this._handleScroll(this.queuedScroll)) {
|
|
6715
|
-
this.queuedScroll = undefined;
|
|
6716
|
-
}
|
|
6717
|
-
}
|
|
6718
|
-
}
|
|
6719
|
-
}
|
|
6720
|
-
|
|
6721
6805
|
class EventContainer extends BaseComponent {
|
|
6722
6806
|
constructor() {
|
|
6723
6807
|
super(...arguments);
|
|
6724
6808
|
this.handleEl = (el) => {
|
|
6725
6809
|
this.el = el;
|
|
6726
6810
|
if (el) {
|
|
6727
|
-
|
|
6811
|
+
setElEventRange(el, this.props.eventRange);
|
|
6728
6812
|
}
|
|
6729
6813
|
};
|
|
6730
6814
|
}
|
|
6731
6815
|
render() {
|
|
6732
6816
|
const { props, context } = this;
|
|
6733
6817
|
const { options } = context;
|
|
6734
|
-
const {
|
|
6735
|
-
const { eventRange } = seg;
|
|
6818
|
+
const { eventRange } = props;
|
|
6736
6819
|
const { ui } = eventRange;
|
|
6737
6820
|
const renderProps = {
|
|
6738
6821
|
event: new EventImpl(context, eventRange.def, eventRange.instance),
|
|
@@ -6741,12 +6824,12 @@ class EventContainer extends BaseComponent {
|
|
|
6741
6824
|
textColor: ui.textColor,
|
|
6742
6825
|
backgroundColor: ui.backgroundColor,
|
|
6743
6826
|
borderColor: ui.borderColor,
|
|
6744
|
-
isDraggable: !props.disableDragging &&
|
|
6745
|
-
isStartResizable: !props.disableResizing &&
|
|
6746
|
-
isEndResizable: !props.disableResizing &&
|
|
6827
|
+
isDraggable: !props.disableDragging && computeEventRangeDraggable(eventRange, context),
|
|
6828
|
+
isStartResizable: !props.disableResizing && props.isStart && eventRange.ui.durationEditable && options.eventResizableFromStart,
|
|
6829
|
+
isEndResizable: !props.disableResizing && props.isEnd && eventRange.ui.durationEditable,
|
|
6747
6830
|
isMirror: Boolean(props.isDragging || props.isResizing || props.isDateSelecting),
|
|
6748
|
-
isStart: Boolean(
|
|
6749
|
-
isEnd: Boolean(
|
|
6831
|
+
isStart: Boolean(props.isStart),
|
|
6832
|
+
isEnd: Boolean(props.isEnd),
|
|
6750
6833
|
isPast: Boolean(props.isPast),
|
|
6751
6834
|
isFuture: Boolean(props.isFuture),
|
|
6752
6835
|
isToday: Boolean(props.isToday),
|
|
@@ -6756,13 +6839,13 @@ class EventContainer extends BaseComponent {
|
|
|
6756
6839
|
};
|
|
6757
6840
|
return (preact.createElement(ContentContainer, Object.assign({}, props /* contains children */, { elRef: this.handleEl, elClasses: [
|
|
6758
6841
|
...getEventClassNames(renderProps),
|
|
6759
|
-
...
|
|
6842
|
+
...eventRange.ui.classNames,
|
|
6760
6843
|
...(props.elClasses || []),
|
|
6761
6844
|
], renderProps: renderProps, generatorName: "eventContent", customGenerator: options.eventContent, defaultGenerator: props.defaultGenerator, classNameGenerator: options.eventClassNames, didMount: options.eventDidMount, willUnmount: options.eventWillUnmount })));
|
|
6762
6845
|
}
|
|
6763
6846
|
componentDidUpdate(prevProps) {
|
|
6764
|
-
if (this.el && this.props.
|
|
6765
|
-
|
|
6847
|
+
if (this.el && this.props.eventRange !== prevProps.eventRange) {
|
|
6848
|
+
setElEventRange(this.el, this.props.eventRange);
|
|
6766
6849
|
}
|
|
6767
6850
|
}
|
|
6768
6851
|
}
|
|
@@ -6772,14 +6855,14 @@ class StandardEvent extends BaseComponent {
|
|
|
6772
6855
|
render() {
|
|
6773
6856
|
let { props, context } = this;
|
|
6774
6857
|
let { options } = context;
|
|
6775
|
-
let {
|
|
6776
|
-
let { ui } =
|
|
6858
|
+
let { eventRange } = props;
|
|
6859
|
+
let { ui } = eventRange;
|
|
6777
6860
|
let timeFormat = options.eventTimeFormat || props.defaultTimeFormat;
|
|
6778
|
-
let timeText =
|
|
6861
|
+
let timeText = buildEventRangeTimeText(eventRange, timeFormat, context, props.defaultDisplayEventTime, props.defaultDisplayEventEnd, props.startOverride, props.endOverride);
|
|
6779
6862
|
return (preact.createElement(EventContainer, Object.assign({}, props /* includes elRef */, { elTag: "a", elStyle: {
|
|
6780
6863
|
borderColor: ui.borderColor,
|
|
6781
6864
|
backgroundColor: ui.backgroundColor,
|
|
6782
|
-
}, elAttrs:
|
|
6865
|
+
}, elAttrs: getEventRangeAnchorAttrs(eventRange, context), defaultGenerator: renderInnerContent$1, timeText: timeText }), (InnerContent, eventContentArg) => (preact.createElement(preact.Fragment, null,
|
|
6783
6866
|
preact.createElement(InnerContent, { elTag: "div", elClasses: ['fc-event-inner'], elStyle: { color: eventContentArg.textColor } }),
|
|
6784
6867
|
Boolean(eventContentArg.isStartResizable) && (preact.createElement("div", { className: "fc-event-resizer fc-event-resizer-start" })),
|
|
6785
6868
|
Boolean(eventContentArg.isEndResizable) && (preact.createElement("div", { className: "fc-event-resizer fc-event-resizer-end" }))))));
|
|
@@ -6805,8 +6888,8 @@ const NowIndicatorContainer = (props) => (preact.createElement(ViewContextType.C
|
|
|
6805
6888
|
class BgEvent extends BaseComponent {
|
|
6806
6889
|
render() {
|
|
6807
6890
|
let { props } = this;
|
|
6808
|
-
let {
|
|
6809
|
-
return (preact.createElement(EventContainer, { elTag: "div", elClasses: ['fc-bg-event'], elStyle: { backgroundColor:
|
|
6891
|
+
let { eventRange } = props;
|
|
6892
|
+
return (preact.createElement(EventContainer, { elTag: "div", elClasses: ['fc-bg-event'], elStyle: { backgroundColor: eventRange.ui.backgroundColor }, defaultGenerator: renderInnerContent, eventRange: eventRange, isStart: props.isStart, isEnd: props.isEnd, timeText: "", isDragging: false, isResizing: false, isDateSelecting: false, isSelected: false, isPast: props.isPast, isFuture: props.isFuture, isToday: props.isToday, disableDragging: true, disableResizing: true }));
|
|
6810
6893
|
}
|
|
6811
6894
|
}
|
|
6812
6895
|
function renderInnerContent(props) {
|
|
@@ -7288,7 +7371,6 @@ exports.PureComponent = PureComponent;
|
|
|
7288
7371
|
exports.RefMap = RefMap;
|
|
7289
7372
|
exports.RenderId = RenderId;
|
|
7290
7373
|
exports.ScrollController = ScrollController;
|
|
7291
|
-
exports.ScrollResponder = ScrollResponder;
|
|
7292
7374
|
exports.Scroller = Scroller;
|
|
7293
7375
|
exports.SegHierarchy = SegHierarchy;
|
|
7294
7376
|
exports.Slicer = Slicer;
|
|
@@ -7320,11 +7402,11 @@ exports.buildElAttrs = buildElAttrs;
|
|
|
7320
7402
|
exports.buildEntryKey = buildEntryKey;
|
|
7321
7403
|
exports.buildEventApis = buildEventApis;
|
|
7322
7404
|
exports.buildEventRangeKey = buildEventRangeKey;
|
|
7405
|
+
exports.buildEventRangeTimeText = buildEventRangeTimeText;
|
|
7323
7406
|
exports.buildEventSourceRefiners = buildEventSourceRefiners;
|
|
7324
7407
|
exports.buildIsoString = buildIsoString;
|
|
7325
7408
|
exports.buildNavLinkAttrs = buildNavLinkAttrs;
|
|
7326
7409
|
exports.buildRangeApiWithTimeZone = buildRangeApiWithTimeZone;
|
|
7327
|
-
exports.buildSegTimeText = buildSegTimeText;
|
|
7328
7410
|
exports.buildViewClassNames = buildViewClassNames;
|
|
7329
7411
|
exports.buildViewContext = buildViewContext;
|
|
7330
7412
|
exports.collectFromHash = collectFromHash;
|
|
@@ -7372,8 +7454,10 @@ exports.getClippingParents = getClippingParents;
|
|
|
7372
7454
|
exports.getDateMeta = getDateMeta;
|
|
7373
7455
|
exports.getDayClassNames = getDayClassNames;
|
|
7374
7456
|
exports.getDefaultEventEnd = getDefaultEventEnd;
|
|
7375
|
-
exports.
|
|
7457
|
+
exports.getElEventRange = getElEventRange;
|
|
7376
7458
|
exports.getEntrySpanEnd = getEntrySpanEnd;
|
|
7459
|
+
exports.getEventRangeAnchorAttrs = getEventRangeAnchorAttrs;
|
|
7460
|
+
exports.getEventRangeMeta = getEventRangeMeta;
|
|
7377
7461
|
exports.getEventTargetViaRoot = getEventTargetViaRoot;
|
|
7378
7462
|
exports.getInitialDate = getInitialDate;
|
|
7379
7463
|
exports.getIsHeightAuto = getIsHeightAuto;
|
|
@@ -7384,8 +7468,6 @@ exports.getRectCenter = getRectCenter;
|
|
|
7384
7468
|
exports.getRelevantEvents = getRelevantEvents;
|
|
7385
7469
|
exports.getScrollbarWidths = getScrollbarWidths;
|
|
7386
7470
|
exports.getScrollerSyncerClass = getScrollerSyncerClass;
|
|
7387
|
-
exports.getSegAnchorAttrs = getSegAnchorAttrs;
|
|
7388
|
-
exports.getSegMeta = getSegMeta;
|
|
7389
7471
|
exports.getSlotClassNames = getSlotClassNames;
|
|
7390
7472
|
exports.getStickyFooterScrollbar = getStickyFooterScrollbar;
|
|
7391
7473
|
exports.getStickyHeaderDates = getStickyHeaderDates;
|
package/internal-common.d.ts
CHANGED
|
@@ -956,16 +956,13 @@ interface Hit {
|
|
|
956
956
|
}
|
|
957
957
|
|
|
958
958
|
interface Seg {
|
|
959
|
-
|
|
959
|
+
eventRange?: EventRenderRange;
|
|
960
960
|
isStart: boolean;
|
|
961
961
|
isEnd: boolean;
|
|
962
|
-
eventRange?: EventRenderRange;
|
|
963
|
-
[otherProp: string]: any;
|
|
964
|
-
el?: never;
|
|
965
962
|
}
|
|
966
|
-
interface EventSegUiInteractionState {
|
|
963
|
+
interface EventSegUiInteractionState<S = Seg> {
|
|
967
964
|
affectedInstances: EventInstanceHash;
|
|
968
|
-
segs:
|
|
965
|
+
segs: S[];
|
|
969
966
|
isEvent: boolean;
|
|
970
967
|
}
|
|
971
968
|
declare abstract class DateComponent<Props = Dictionary, State = Dictionary> extends BaseComponent<Props, State> {
|
|
@@ -1106,13 +1103,15 @@ interface ScrollerInterface {
|
|
|
1106
1103
|
x?: number;
|
|
1107
1104
|
y?: number;
|
|
1108
1105
|
}): void;
|
|
1106
|
+
addScrollEndListener(handler: (x: number, y: number) => void): void;
|
|
1107
|
+
removeScrollEndListener(handler: (x: number, y: number) => void): void;
|
|
1109
1108
|
}
|
|
1110
1109
|
|
|
1111
1110
|
interface ScrollerSyncerClass {
|
|
1112
1111
|
new (horizontal?: boolean): ScrollerSyncerInterface;
|
|
1113
1112
|
}
|
|
1114
1113
|
interface ScrollerSyncerInterface extends ScrollerInterface {
|
|
1115
|
-
handleChildren(scrollers: ScrollerInterface[]
|
|
1114
|
+
handleChildren(scrollers: ScrollerInterface[]): void;
|
|
1116
1115
|
destroy(): void;
|
|
1117
1116
|
}
|
|
1118
1117
|
|
|
@@ -1374,8 +1373,8 @@ declare function sliceEventStore(eventStore: EventStore, eventUiBases: EventUiHa
|
|
|
1374
1373
|
fg: EventRenderRange[];
|
|
1375
1374
|
};
|
|
1376
1375
|
declare function hasBgRendering(def: EventDef): boolean;
|
|
1377
|
-
declare function
|
|
1378
|
-
declare function sortEventSegs(segs:
|
|
1376
|
+
declare function getElEventRange(el: HTMLElement): EventRenderRange | null;
|
|
1377
|
+
declare function sortEventSegs<S extends Seg>(segs: S[], eventOrderSpecs: OrderSpec<EventImpl>[]): S[];
|
|
1379
1378
|
interface EventContentArg {
|
|
1380
1379
|
event: EventImpl;
|
|
1381
1380
|
timeText: string;
|
|
@@ -1397,16 +1396,16 @@ interface EventContentArg {
|
|
|
1397
1396
|
view: ViewApi;
|
|
1398
1397
|
}
|
|
1399
1398
|
type EventMountArg = MountArg<EventContentArg>;
|
|
1400
|
-
declare function
|
|
1399
|
+
declare function buildEventRangeTimeText(eventRange: EventRenderRange, timeFormat: DateFormatter, context: ViewContext, defaultDisplayEventTime?: boolean, // defaults to true
|
|
1401
1400
|
defaultDisplayEventEnd?: boolean, // defaults to true
|
|
1402
1401
|
startOverride?: DateMarker, endOverride?: DateMarker): string;
|
|
1403
|
-
declare function
|
|
1402
|
+
declare function getEventRangeMeta(eventRange: EventRenderRange, todayRange: DateRange, nowDate?: DateMarker): {
|
|
1404
1403
|
isPast: boolean;
|
|
1405
1404
|
isFuture: boolean;
|
|
1406
1405
|
isToday: boolean;
|
|
1407
1406
|
};
|
|
1408
1407
|
declare function buildEventRangeKey(eventRange: EventRenderRange): string;
|
|
1409
|
-
declare function
|
|
1408
|
+
declare function getEventRangeAnchorAttrs(eventRange: EventRenderRange, context: ViewContext): {
|
|
1410
1409
|
tabIndex: number;
|
|
1411
1410
|
onKeyDown(ev: KeyboardEvent): void;
|
|
1412
1411
|
} | {
|
|
@@ -2475,6 +2474,27 @@ declare class DayTableModel {
|
|
|
2475
2474
|
sliceRange(range: DateRange): DayTableSeg[];
|
|
2476
2475
|
}
|
|
2477
2476
|
|
|
2477
|
+
declare class ScrollListener {
|
|
2478
|
+
el: HTMLElement;
|
|
2479
|
+
emitter: Emitter<any>;
|
|
2480
|
+
private isScrolling;
|
|
2481
|
+
private isTouching;
|
|
2482
|
+
private isRecentlyWheeled;
|
|
2483
|
+
private isRecentlyScrolled;
|
|
2484
|
+
private wheelWaiter;
|
|
2485
|
+
private scrollWaiter;
|
|
2486
|
+
constructor(el: HTMLElement);
|
|
2487
|
+
destroy(): void;
|
|
2488
|
+
private startScroll;
|
|
2489
|
+
endScroll(): void;
|
|
2490
|
+
private handleScroll;
|
|
2491
|
+
private _handleScrollWaited;
|
|
2492
|
+
private handleWheel;
|
|
2493
|
+
private _handleWheelWaited;
|
|
2494
|
+
private handleTouchStart;
|
|
2495
|
+
private handleTouchEnd;
|
|
2496
|
+
}
|
|
2497
|
+
|
|
2478
2498
|
interface ScrollerProps {
|
|
2479
2499
|
vertical?: boolean;
|
|
2480
2500
|
horizontal?: boolean;
|
|
@@ -2490,6 +2510,7 @@ interface ScrollerProps {
|
|
|
2490
2510
|
}
|
|
2491
2511
|
declare class Scroller extends DateComponent$1<ScrollerProps> implements ScrollerInterface {
|
|
2492
2512
|
private elRef;
|
|
2513
|
+
listener: ScrollListener;
|
|
2493
2514
|
private disconnectSize?;
|
|
2494
2515
|
private currentWidth;
|
|
2495
2516
|
private currentHeight;
|
|
@@ -2499,13 +2520,15 @@ declare class Scroller extends DateComponent$1<ScrollerProps> implements Scrolle
|
|
|
2499
2520
|
render(): createElement.JSX.Element;
|
|
2500
2521
|
componentDidMount(): void;
|
|
2501
2522
|
componentWillUnmount(): void;
|
|
2502
|
-
|
|
2523
|
+
endScroll(): void;
|
|
2503
2524
|
get x(): number;
|
|
2504
2525
|
get y(): number;
|
|
2505
2526
|
scrollTo({ x, y }: {
|
|
2506
2527
|
x?: number;
|
|
2507
2528
|
y?: number;
|
|
2508
2529
|
}): void;
|
|
2530
|
+
addScrollEndListener(handler: (x: number, y: number) => void): void;
|
|
2531
|
+
removeScrollEndListener(handler: (x: number, y: number) => void): void;
|
|
2509
2532
|
}
|
|
2510
2533
|
declare function getNormalizedScrollX(el: HTMLElement, isRtl: boolean): number;
|
|
2511
2534
|
declare function setNormalizedScrollX(el: HTMLElement, isRtl: boolean, x: number): void;
|
|
@@ -2524,8 +2547,8 @@ interface SlicedProps<SegType extends Seg> {
|
|
|
2524
2547
|
businessHourSegs: SegType[];
|
|
2525
2548
|
fgEventSegs: SegType[];
|
|
2526
2549
|
bgEventSegs: SegType[];
|
|
2527
|
-
eventDrag: EventSegUiInteractionState | null;
|
|
2528
|
-
eventResize: EventSegUiInteractionState | null;
|
|
2550
|
+
eventDrag: EventSegUiInteractionState<SegType> | null;
|
|
2551
|
+
eventResize: EventSegUiInteractionState<SegType> | null;
|
|
2529
2552
|
eventSelection: string;
|
|
2530
2553
|
}
|
|
2531
2554
|
declare abstract class Slicer<SegType extends Seg, ExtraArgs extends any[] = []> {
|
|
@@ -2610,18 +2633,12 @@ declare class NowTimer extends Component<NowTimerProps, NowTimerState> {
|
|
|
2610
2633
|
private clearTimeout;
|
|
2611
2634
|
}
|
|
2612
2635
|
|
|
2613
|
-
declare class ScrollResponder<T> {
|
|
2614
|
-
private _handleScroll;
|
|
2615
|
-
protected queuedScroll?: T;
|
|
2616
|
-
constructor(_handleScroll: (scroll: T) => boolean);
|
|
2617
|
-
handleScroll: (scroll: T) => void;
|
|
2618
|
-
drain(): void;
|
|
2619
|
-
}
|
|
2620
|
-
|
|
2621
2636
|
interface StandardEventProps {
|
|
2622
2637
|
elRef?: ElRef;
|
|
2623
2638
|
elClasses?: string[];
|
|
2624
|
-
|
|
2639
|
+
eventRange: EventRenderRange;
|
|
2640
|
+
isStart: boolean;
|
|
2641
|
+
isEnd: boolean;
|
|
2625
2642
|
isDragging: boolean;
|
|
2626
2643
|
isResizing: boolean;
|
|
2627
2644
|
isDateSelecting: boolean;
|
|
@@ -2634,13 +2651,17 @@ interface StandardEventProps {
|
|
|
2634
2651
|
defaultTimeFormat: DateFormatter;
|
|
2635
2652
|
defaultDisplayEventTime?: boolean;
|
|
2636
2653
|
defaultDisplayEventEnd?: boolean;
|
|
2654
|
+
startOverride?: DateMarker;
|
|
2655
|
+
endOverride?: DateMarker;
|
|
2637
2656
|
}
|
|
2638
2657
|
declare class StandardEvent extends BaseComponent<StandardEventProps> {
|
|
2639
2658
|
render(): createElement.JSX.Element;
|
|
2640
2659
|
}
|
|
2641
2660
|
|
|
2642
2661
|
interface MinimalEventProps {
|
|
2643
|
-
|
|
2662
|
+
eventRange: EventRenderRange;
|
|
2663
|
+
isStart: boolean;
|
|
2664
|
+
isEnd: boolean;
|
|
2644
2665
|
isDragging: boolean;
|
|
2645
2666
|
isResizing: boolean;
|
|
2646
2667
|
isDateSelecting: boolean;
|
|
@@ -2664,7 +2685,9 @@ declare class EventContainer extends BaseComponent<EventContainerProps> {
|
|
|
2664
2685
|
}
|
|
2665
2686
|
|
|
2666
2687
|
interface BgEventProps {
|
|
2667
|
-
|
|
2688
|
+
eventRange: EventRenderRange;
|
|
2689
|
+
isStart: boolean;
|
|
2690
|
+
isEnd: boolean;
|
|
2668
2691
|
isPast: boolean;
|
|
2669
2692
|
isFuture: boolean;
|
|
2670
2693
|
isToday: boolean;
|
|
@@ -2676,4 +2699,4 @@ declare function renderFill(fillType: string): createElement.JSX.Element;
|
|
|
2676
2699
|
|
|
2677
2700
|
declare function injectStyles(styleText: string): void;
|
|
2678
2701
|
|
|
2679
|
-
export { DayCellMountArg as $, AllowFunc as A, BusinessHoursInput as B, CalendarImpl as C, DateInput as D, EventSourceApi as E, FormatterInput as F, WeekNumberContentArg as G, WeekNumberMountArg as H, MoreLinkMountArg as I, JsonRequestError as J, SlotLaneContentArg as K, LocaleInput as L, MoreLinkContentArg as M, NativeFormatterOptions as N, OverlapFunc as O, PluginDefInput as P, SlotLaneMountArg as Q, SlotLabelContentArg as R, SpecificViewContentArg as S, SlotLabelMountArg as T, AllDayContentArg as U, ViewApi as V, WillUnmountHandler as W, AllDayMountArg as X, DayHeaderContentArg as Y, DayHeaderMountArg as Z, DayCellContentArg as _, CalendarOptions as a, enableCursor as a$, ViewContentArg as a0, ViewMountArg as a1, EventClickArg as a2, EventHoveringArg as a3, DateSelectArg as a4, DateUnselectArg as a5, WeekNumberCalculation as a6, ToolbarInput as a7, CustomButtonInput as a8, ButtonIconsInput as a9, RefinedOptionsFromRefiners as aA, CalendarListenerRefiners as aB, BASE_OPTION_DEFAULTS as aC, identity as aD, refineProps as aE, EventDef as aF, EventDefHash as aG, EventInstance as aH, EventInstanceHash as aI, createEventInstance as aJ, EventRefined as aK, EventTuple as aL, EventRefiners as aM, parseEventDef as aN, refineEventDef as aO, parseBusinessHours as aP, OrderSpec as aQ, padStart as aR, isInt as aS, parseFieldSpecs as aT, compareByFieldSpecs as aU, flexibleCompare as aV, preventSelection as aW, allowSelection as aX, preventContextMenu as aY, allowContextMenu as aZ, compareNumbers as a_, ButtonTextCompoundInput as aa, EventContentArg as ab, EventMountArg as ac, DatesSetArg as ad, EventAddArg as ae, EventChangeArg as af, EventDropArg as ag, EventRemoveArg as ah, ButtonHintCompoundInput as ai, CustomRenderingHandler as aj, CustomRenderingStore as ak, DateSpanApi as al, DatePointApi as am, DateSelectionApi as an, Duration as ao, EventSegment as ap, MoreLinkAction as aq, MoreLinkSimpleAction as ar, MoreLinkArg as as, MoreLinkHandler as at, Identity as au, Dictionary as av, BaseOptionRefiners as aw, BaseOptionsRefined as ax, ViewOptionsRefined as ay, RawOptionsFromRefiners as az, PluginDef as b, getClippingParents as b$, disableCursor as b0, guid as b1, computeVisibleDayRange as b2, isMultiDayRange as b3, diffDates as b4, removeExact as b5, isArraysEqual as b6, MemoizeHashFunc as b7, MemoiseArrayFunc as b8, memoize as b9, EventStore as bA, createEmptyEventStore as bB, mergeEventStores as bC, getRelevantEvents as bD, eventTupleToStore as bE, EventUiHash as bF, EventUi as bG, combineEventUis as bH, createEventUi as bI, SplittableProps as bJ, Splitter as bK, getDayClassNames as bL, getDateMeta as bM, getSlotClassNames as bN, DateMeta as bO, setStateDimMap as bP, isDimMapsEqual as bQ, isDimsEqual as bR, watchSize as bS, watchWidth as bT, watchHeight as bU, afterSize as bV, buildNavLinkAttrs as bW, preventDefault as bX, whenTransitionDone as bY, computeInnerRect as bZ, computeEdges as b_, memoizeObjArg as ba, memoizeArraylike as bb, memoizeHashlike as bc, Rect as bd, Point as be, intersectRects as bf, pointInsideRect as bg, constrainPoint as bh, getRectCenter as bi, diffPoints as bj, translateRect as bk, mapHash as bl, filterHash as bm, isPropsEqual as bn, compareObjs as bo, collectFromHash as bp, findElements as bq, findDirectChildren as br, removeElement as bs, applyStyle as bt, elementMatches as bu, elementClosest as bv, getEventTargetViaRoot as bw, getUniqueDomId as bx, parseClassNames as by, fracToCssDim as bz, CalendarApi as c, SegGroup as c$, computeRect as c0, unpromisify as c1, Emitter as c2, DateRange as c3, rangeContainsMarker as c4, intersectRanges as c5, rangesEqual as c6, rangesIntersect as c7, rangeContainsRange as c8, PositionCache as c9, isValidDate as cA, createDuration as cB, asCleanDays as cC, multiplyDuration as cD, addDurations as cE, asRoughMinutes as cF, asRoughSeconds as cG, asRoughMs as cH, wholeDivideDurations as cI, greatestDurationDenominator as cJ, DateEnv as cK, createFormatter as cL, DateFormatter as cM, VerboseFormattingArg as cN, formatIsoTimeString as cO, formatDayString as cP, buildIsoString as cQ, formatIsoMonthStr as cR, NamedTimeZoneImpl as cS, parse as cT, EventSourceDef as cU, EventSourceRefined as cV, EventSourceRefiners as cW, SegSpan as cX, SegRect as cY, SegEntry as cZ, SegInsertion as c_, ScrollController as ca, ElementScrollController as cb, WindowScrollController as cc, Theme as cd, ViewContext as ce, ViewContextType as cf, Seg as cg, EventSegUiInteractionState as ch, DateComponent as ci, CalendarData as cj, ViewProps as ck, DateProfile as cl, DateProfileGenerator as cm, ViewSpec as cn, DateSpan as co, isDateSpansEqual as cp, DateMarker as cq, addDays as cr, startOfDay as cs, addMs as ct, addWeeks as cu, diffWeeks as cv, diffWholeWeeks as cw, diffWholeDays as cx, diffDayAndTime as cy, diffDays as cz, EventApi as d, getIsRtlScrollbarOnLeft as d$, SegHierarchy as d0, buildEntryKey as d1, getEntrySpanEnd as d2, binarySearch as d3, groupIntersectingEntries as d4, intersectSpans as d5, InteractionSettings as d6, InteractionSettingsStore as d7, Interaction as d8, interactionSettingsToStore as d9, buildEventRangeKey as dA,
|
|
2702
|
+
export { DayCellMountArg as $, AllowFunc as A, BusinessHoursInput as B, CalendarImpl as C, DateInput as D, EventSourceApi as E, FormatterInput as F, WeekNumberContentArg as G, WeekNumberMountArg as H, MoreLinkMountArg as I, JsonRequestError as J, SlotLaneContentArg as K, LocaleInput as L, MoreLinkContentArg as M, NativeFormatterOptions as N, OverlapFunc as O, PluginDefInput as P, SlotLaneMountArg as Q, SlotLabelContentArg as R, SpecificViewContentArg as S, SlotLabelMountArg as T, AllDayContentArg as U, ViewApi as V, WillUnmountHandler as W, AllDayMountArg as X, DayHeaderContentArg as Y, DayHeaderMountArg as Z, DayCellContentArg as _, CalendarOptions as a, enableCursor as a$, ViewContentArg as a0, ViewMountArg as a1, EventClickArg as a2, EventHoveringArg as a3, DateSelectArg as a4, DateUnselectArg as a5, WeekNumberCalculation as a6, ToolbarInput as a7, CustomButtonInput as a8, ButtonIconsInput as a9, RefinedOptionsFromRefiners as aA, CalendarListenerRefiners as aB, BASE_OPTION_DEFAULTS as aC, identity as aD, refineProps as aE, EventDef as aF, EventDefHash as aG, EventInstance as aH, EventInstanceHash as aI, createEventInstance as aJ, EventRefined as aK, EventTuple as aL, EventRefiners as aM, parseEventDef as aN, refineEventDef as aO, parseBusinessHours as aP, OrderSpec as aQ, padStart as aR, isInt as aS, parseFieldSpecs as aT, compareByFieldSpecs as aU, flexibleCompare as aV, preventSelection as aW, allowSelection as aX, preventContextMenu as aY, allowContextMenu as aZ, compareNumbers as a_, ButtonTextCompoundInput as aa, EventContentArg as ab, EventMountArg as ac, DatesSetArg as ad, EventAddArg as ae, EventChangeArg as af, EventDropArg as ag, EventRemoveArg as ah, ButtonHintCompoundInput as ai, CustomRenderingHandler as aj, CustomRenderingStore as ak, DateSpanApi as al, DatePointApi as am, DateSelectionApi as an, Duration as ao, EventSegment as ap, MoreLinkAction as aq, MoreLinkSimpleAction as ar, MoreLinkArg as as, MoreLinkHandler as at, Identity as au, Dictionary as av, BaseOptionRefiners as aw, BaseOptionsRefined as ax, ViewOptionsRefined as ay, RawOptionsFromRefiners as az, PluginDef as b, getClippingParents as b$, disableCursor as b0, guid as b1, computeVisibleDayRange as b2, isMultiDayRange as b3, diffDates as b4, removeExact as b5, isArraysEqual as b6, MemoizeHashFunc as b7, MemoiseArrayFunc as b8, memoize as b9, EventStore as bA, createEmptyEventStore as bB, mergeEventStores as bC, getRelevantEvents as bD, eventTupleToStore as bE, EventUiHash as bF, EventUi as bG, combineEventUis as bH, createEventUi as bI, SplittableProps as bJ, Splitter as bK, getDayClassNames as bL, getDateMeta as bM, getSlotClassNames as bN, DateMeta as bO, setStateDimMap as bP, isDimMapsEqual as bQ, isDimsEqual as bR, watchSize as bS, watchWidth as bT, watchHeight as bU, afterSize as bV, buildNavLinkAttrs as bW, preventDefault as bX, whenTransitionDone as bY, computeInnerRect as bZ, computeEdges as b_, memoizeObjArg as ba, memoizeArraylike as bb, memoizeHashlike as bc, Rect as bd, Point as be, intersectRects as bf, pointInsideRect as bg, constrainPoint as bh, getRectCenter as bi, diffPoints as bj, translateRect as bk, mapHash as bl, filterHash as bm, isPropsEqual as bn, compareObjs as bo, collectFromHash as bp, findElements as bq, findDirectChildren as br, removeElement as bs, applyStyle as bt, elementMatches as bu, elementClosest as bv, getEventTargetViaRoot as bw, getUniqueDomId as bx, parseClassNames as by, fracToCssDim as bz, CalendarApi as c, SegGroup as c$, computeRect as c0, unpromisify as c1, Emitter as c2, DateRange as c3, rangeContainsMarker as c4, intersectRanges as c5, rangesEqual as c6, rangesIntersect as c7, rangeContainsRange as c8, PositionCache as c9, isValidDate as cA, createDuration as cB, asCleanDays as cC, multiplyDuration as cD, addDurations as cE, asRoughMinutes as cF, asRoughSeconds as cG, asRoughMs as cH, wholeDivideDurations as cI, greatestDurationDenominator as cJ, DateEnv as cK, createFormatter as cL, DateFormatter as cM, VerboseFormattingArg as cN, formatIsoTimeString as cO, formatDayString as cP, buildIsoString as cQ, formatIsoMonthStr as cR, NamedTimeZoneImpl as cS, parse as cT, EventSourceDef as cU, EventSourceRefined as cV, EventSourceRefiners as cW, SegSpan as cX, SegRect as cY, SegEntry as cZ, SegInsertion as c_, ScrollController as ca, ElementScrollController as cb, WindowScrollController as cc, Theme as cd, ViewContext as ce, ViewContextType as cf, Seg as cg, EventSegUiInteractionState as ch, DateComponent as ci, CalendarData as cj, ViewProps as ck, DateProfile as cl, DateProfileGenerator as cm, ViewSpec as cn, DateSpan as co, isDateSpansEqual as cp, DateMarker as cq, addDays as cr, startOfDay as cs, addMs as ct, addWeeks as cu, diffWeeks as cv, diffWholeWeeks as cw, diffWholeDays as cx, diffDayAndTime as cy, diffDays as cz, EventApi as d, getIsRtlScrollbarOnLeft as d$, SegHierarchy as d0, buildEntryKey as d1, getEntrySpanEnd as d2, binarySearch as d3, groupIntersectingEntries as d4, intersectSpans as d5, InteractionSettings as d6, InteractionSettingsStore as d7, Interaction as d8, interactionSettingsToStore as d9, buildEventRangeKey as dA, getEventRangeAnchorAttrs as dB, DayTableCell as dC, DayTableModel as dD, Scroller as dE, getNormalizedScrollX as dF, setNormalizedScrollX as dG, SlicedProps as dH, Slicer as dI, EventMutation as dJ, applyMutationToEventStore as dK, Constraint as dL, isPropsValid as dM, isInteractionValid as dN, isDateSelectionValid as dO, requestJson as dP, BaseComponent as dQ, setRef as dR, DelayedRunner as dS, getStickyFooterScrollbar as dT, getStickyHeaderDates as dU, getIsHeightAuto as dV, getScrollerSyncerClass as dW, ScrollerInterface as dX, ScrollerSyncerInterface as dY, getScrollbarWidths as dZ, RefMap as d_, interactionSettingsStore as da, PointerDragEvent as db, Hit as dc, dateSelectionJoinTransformer as dd, eventDragMutationMassager as de, EventDropTransformers as df, ElementDragging as dg, config as dh, RecurringType as di, DragMetaInput as dj, DragMeta as dk, parseDragMeta as dl, ViewPropsTransformer as dm, Action as dn, CalendarContext as dp, CalendarContentProps as dq, CalendarRoot as dr, DaySeriesModel as ds, EventInteractionState as dt, sliceEventStore as du, hasBgRendering as dv, getElEventRange as dw, buildEventRangeTimeText as dx, sortEventSegs as dy, getEventRangeMeta as dz, EventRenderRange as e, NowTimer as e0, MountArg as e1, StandardEvent as e2, NowIndicatorContainer as e3, DayCellContainer as e4, hasCustomDayCellContent as e5, MinimalEventProps as e6, EventContainer as e7, renderFill as e8, BgEvent as e9, WeekNumberContainerProps as ea, WeekNumberContainer as eb, MoreLinkContainer as ec, computeEarliestSegStart as ed, ViewContainerProps as ee, ViewContainer as ef, DatePointTransform as eg, DateSpanTransform as eh, triggerDateSelect as ei, getDefaultEventEnd as ej, injectStyles as ek, EventImpl as el, buildEventApis as em, ElProps as en, buildElAttrs as eo, InnerContainerFunc as ep, ContentContainer as eq, CustomRendering as er, CalendarListeners as f, ViewOptions as g, DurationInput as h, DateSpanInput as i, DateRangeInput as j, EventSourceInput as k, EventSourceFunc as l, EventSourceFuncArg as m, EventInput as n, EventInputTransformer as o, CssDimValue as p, LocaleSingularArg as q, ConstraintInput as r, sliceEvents as s, ViewComponentType as t, SpecificViewMountArg as u, ClassNamesGenerator as v, CustomContentGenerator as w, DidMountHandler as x, NowIndicatorContentArg as y, NowIndicatorMountArg as z };
|