@fullcalendar/core 7.0.0-beta.4 → 7.0.0-rc.0
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 +1 -6
- package/index.d.ts +0 -1
- package/index.global.js +146 -238
- package/index.global.min.js +2 -2
- package/index.js +1 -6
- package/internal-common.cjs +165 -252
- package/internal-common.d.ts +40 -56
- package/internal-common.js +164 -249
- package/internal.cjs +2 -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.cjs +1 -1
- package/locales/az.global.js +2 -2
- package/locales/az.global.min.js +2 -2
- package/locales/az.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.cjs +1 -1
- package/locales/bs.global.js +2 -2
- package/locales/bs.global.min.js +2 -2
- package/locales/bs.js +1 -1
- package/locales/ca.cjs +1 -1
- package/locales/ca.global.js +2 -2
- package/locales/ca.global.min.js +2 -2
- package/locales/ca.js +1 -1
- package/locales/cs.global.js +1 -1
- package/locales/cs.global.min.js +1 -1
- package/locales/cy.cjs +1 -1
- package/locales/cy.global.js +2 -2
- package/locales/cy.global.min.js +2 -2
- package/locales/cy.js +1 -1
- package/locales/da.cjs +1 -1
- package/locales/da.global.js +2 -2
- package/locales/da.global.min.js +2 -2
- package/locales/da.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.cjs +1 -1
- package/locales/eo.global.js +2 -2
- package/locales/eo.global.min.js +2 -2
- package/locales/eo.js +1 -1
- package/locales/es-us.cjs +1 -1
- package/locales/es-us.global.js +2 -2
- package/locales/es-us.global.min.js +2 -2
- package/locales/es-us.js +1 -1
- package/locales/es.cjs +1 -1
- package/locales/es.global.js +2 -2
- package/locales/es.global.min.js +2 -2
- package/locales/es.js +1 -1
- package/locales/et.cjs +1 -1
- package/locales/et.global.js +2 -2
- package/locales/et.global.min.js +2 -2
- package/locales/et.js +1 -1
- package/locales/eu.cjs +1 -1
- package/locales/eu.global.js +2 -2
- package/locales/eu.global.min.js +2 -2
- package/locales/eu.js +1 -1
- package/locales/fa.global.js +1 -1
- package/locales/fa.global.min.js +1 -1
- package/locales/fi.cjs +1 -1
- package/locales/fi.global.js +2 -2
- package/locales/fi.global.min.js +2 -2
- package/locales/fi.js +1 -1
- package/locales/fr-ca.cjs +1 -1
- package/locales/fr-ca.global.js +2 -2
- package/locales/fr-ca.global.min.js +2 -2
- package/locales/fr-ca.js +1 -1
- package/locales/fr-ch.cjs +1 -1
- package/locales/fr-ch.global.js +2 -2
- package/locales/fr-ch.global.min.js +2 -2
- package/locales/fr-ch.js +1 -1
- package/locales/fr.cjs +1 -1
- package/locales/fr.global.js +2 -2
- package/locales/fr.global.min.js +2 -2
- package/locales/fr.js +1 -1
- package/locales/gl.cjs +1 -1
- package/locales/gl.global.js +2 -2
- package/locales/gl.global.min.js +2 -2
- package/locales/gl.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.cjs +1 -1
- package/locales/hr.global.js +2 -2
- package/locales/hr.global.min.js +2 -2
- package/locales/hr.js +1 -1
- package/locales/hu.cjs +1 -1
- package/locales/hu.global.js +2 -2
- package/locales/hu.global.min.js +2 -2
- package/locales/hu.js +1 -1
- package/locales/hy-am.global.js +1 -1
- package/locales/hy-am.global.min.js +1 -1
- package/locales/id.cjs +1 -1
- package/locales/id.global.js +2 -2
- package/locales/id.global.min.js +2 -2
- package/locales/id.js +1 -1
- package/locales/is.cjs +1 -1
- package/locales/is.global.js +2 -2
- package/locales/is.global.min.js +2 -2
- package/locales/is.js +1 -1
- package/locales/it.cjs +1 -1
- package/locales/it.global.js +2 -2
- package/locales/it.global.min.js +2 -2
- package/locales/it.js +1 -1
- package/locales/ja.global.js +1 -1
- package/locales/ja.global.min.js +1 -1
- package/locales/ka.cjs +1 -1
- package/locales/ka.global.js +2 -2
- package/locales/ka.global.min.js +2 -2
- package/locales/ka.js +1 -1
- package/locales/kk.cjs +1 -1
- package/locales/kk.global.js +2 -2
- package/locales/kk.global.min.js +2 -2
- package/locales/kk.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.cjs +1 -1
- package/locales/lb.global.js +2 -2
- package/locales/lb.global.min.js +2 -2
- package/locales/lb.js +1 -1
- package/locales/lt.cjs +1 -1
- package/locales/lt.global.js +2 -2
- package/locales/lt.global.min.js +2 -2
- package/locales/lt.js +1 -1
- package/locales/lv.cjs +1 -1
- package/locales/lv.global.js +2 -2
- package/locales/lv.global.min.js +2 -2
- package/locales/lv.js +1 -1
- package/locales/mk.global.js +1 -1
- package/locales/mk.global.min.js +1 -1
- package/locales/ms.cjs +1 -1
- package/locales/ms.global.js +2 -2
- package/locales/ms.global.min.js +2 -2
- package/locales/ms.js +1 -1
- package/locales/nb.cjs +1 -1
- package/locales/nb.global.js +2 -2
- package/locales/nb.global.min.js +2 -2
- package/locales/nb.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.cjs +1 -1
- package/locales/nn.global.js +2 -2
- package/locales/nn.global.min.js +2 -2
- package/locales/nn.js +1 -1
- package/locales/pl.cjs +1 -1
- package/locales/pl.global.js +2 -2
- package/locales/pl.global.min.js +2 -2
- package/locales/pl.js +1 -1
- package/locales/pt-br.cjs +1 -1
- package/locales/pt-br.global.js +2 -2
- package/locales/pt-br.global.min.js +2 -2
- package/locales/pt-br.js +1 -1
- package/locales/pt.cjs +1 -1
- package/locales/pt.global.js +2 -2
- package/locales/pt.global.min.js +2 -2
- package/locales/pt.js +1 -1
- package/locales/ro.cjs +1 -1
- package/locales/ro.global.js +2 -2
- package/locales/ro.global.min.js +2 -2
- package/locales/ro.js +1 -1
- package/locales/ru.cjs +1 -1
- package/locales/ru.global.js +2 -2
- package/locales/ru.global.min.js +2 -2
- package/locales/ru.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.cjs +1 -1
- package/locales/sq.global.js +2 -2
- package/locales/sq.global.min.js +2 -2
- package/locales/sq.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.cjs +1 -1
- package/locales/ta-in.global.js +2 -2
- package/locales/ta-in.global.min.js +2 -2
- package/locales/ta-in.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.cjs +1 -1
- package/locales/uk.global.js +2 -2
- package/locales/uk.global.min.js +2 -2
- package/locales/uk.js +1 -1
- package/locales/uz-cy.cjs +1 -1
- package/locales/uz-cy.global.js +2 -2
- package/locales/uz-cy.global.min.js +2 -2
- package/locales/uz-cy.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 +38 -38
- package/locales-all.global.min.js +2 -2
- package/package.json +1 -1
- package/preact.cjs +1 -0
- package/preact.d.ts +4 -3
- package/preact.js +1 -1
package/internal-common.js
CHANGED
|
@@ -1,71 +1,7 @@
|
|
|
1
1
|
import * as preact from 'preact';
|
|
2
|
-
import { Component, createElement, isValidElement,
|
|
2
|
+
import { Component, createElement, isValidElement, createRef, Fragment } from 'preact';
|
|
3
3
|
import { createPortal } from 'preact/compat';
|
|
4
4
|
|
|
5
|
-
/*
|
|
6
|
-
NOTE: this can be a public API, especially createElement for hooks.
|
|
7
|
-
See examples/typescript-scheduler/src/index.ts
|
|
8
|
-
*/
|
|
9
|
-
/*
|
|
10
|
-
HACK for flushSync being a noop:
|
|
11
|
-
https://github.com/preactjs/preact/issues/3929
|
|
12
|
-
*/
|
|
13
|
-
function flushSync(renderActionToFlush) {
|
|
14
|
-
renderActionToFlush();
|
|
15
|
-
let oldDebounceRendering = preact.options.debounceRendering; // orig
|
|
16
|
-
let callbackQ = [];
|
|
17
|
-
function execCallbackSync(callback) {
|
|
18
|
-
callbackQ.push(callback);
|
|
19
|
-
}
|
|
20
|
-
preact.options.debounceRendering = execCallbackSync;
|
|
21
|
-
preact.render(preact.createElement(FakeComponent, {}), document.createElement('div'));
|
|
22
|
-
while (callbackQ.length) {
|
|
23
|
-
callbackQ.shift()();
|
|
24
|
-
}
|
|
25
|
-
preact.options.debounceRendering = oldDebounceRendering;
|
|
26
|
-
}
|
|
27
|
-
/*
|
|
28
|
-
Triggers a state-change which unclogs the render queue? Needed?
|
|
29
|
-
*/
|
|
30
|
-
class FakeComponent extends preact.Component {
|
|
31
|
-
render() { return preact.createElement('div', {}); }
|
|
32
|
-
componentDidMount() { this.setState({}); }
|
|
33
|
-
}
|
|
34
|
-
/*
|
|
35
|
-
HACK for Preact wrongly calling shouldComponentUpdate during context changes:
|
|
36
|
-
https://github.com/preactjs/preact/issues/2510
|
|
37
|
-
*/
|
|
38
|
-
function createContext(defaultValue) {
|
|
39
|
-
let ContextType = preact.createContext(defaultValue);
|
|
40
|
-
let origProvider = ContextType.Provider;
|
|
41
|
-
ContextType.Provider = function () {
|
|
42
|
-
let isNew = !this.getChildContext;
|
|
43
|
-
let children = origProvider.apply(this, arguments); // eslint-disable-line prefer-rest-params
|
|
44
|
-
if (isNew) {
|
|
45
|
-
let subs = [];
|
|
46
|
-
this.shouldComponentUpdate = (_props) => {
|
|
47
|
-
if (this.props.value !== _props.value) {
|
|
48
|
-
subs.forEach((c) => {
|
|
49
|
-
c.context = _props.value;
|
|
50
|
-
c.forceUpdate();
|
|
51
|
-
});
|
|
52
|
-
}
|
|
53
|
-
};
|
|
54
|
-
this.sub = (c) => {
|
|
55
|
-
subs.push(c);
|
|
56
|
-
let old = c.componentWillUnmount;
|
|
57
|
-
c.componentWillUnmount = () => {
|
|
58
|
-
subs.splice(subs.indexOf(c), 1);
|
|
59
|
-
old && old.call(c);
|
|
60
|
-
};
|
|
61
|
-
};
|
|
62
|
-
}
|
|
63
|
-
return children;
|
|
64
|
-
};
|
|
65
|
-
return ContextType;
|
|
66
|
-
}
|
|
67
|
-
const preactOptions = preact.options;
|
|
68
|
-
|
|
69
5
|
const styleTexts = [];
|
|
70
6
|
const styleEls = new Map();
|
|
71
7
|
function injectStyles(styleText) {
|
|
@@ -146,7 +82,7 @@ if (typeof document !== 'undefined') {
|
|
|
146
82
|
registerStylesRoot(document);
|
|
147
83
|
}
|
|
148
84
|
|
|
149
|
-
var css_248z = ":root{--fc-small-font-size:.85em;--fc-page-bg-color:#fff;--fc-neutral-bg-color:hsla(0,0%,82%,.3);--fc-neutral-text-color:grey;--fc-border-color:#ddd;--fc-button-text-color:#fff;--fc-button-bg-color:#2c3e50;--fc-button-border-color:#2c3e50;--fc-button-hover-bg-color:#1e2b37;--fc-button-hover-border-color:#1a252f;--fc-button-active-bg-color:#1a252f;--fc-button-active-border-color:#151e27;--fc-event-bg-color:#3788d8;--fc-event-border-color:#3788d8;--fc-event-text-color:#fff;--fc-event-selected-overlay-color:rgba(0,0,0,.25);--fc-more-link-bg-color:#d0d0d0;--fc-more-link-text-color:inherit;--fc-event-resizer-thickness:8px;--fc-event-resizer-dot-total-width:8px;--fc-event-resizer-dot-border-width:1px;--fc-non-business-color:hsla(0,0%,84%,.3);--fc-bg-event-color:#8fdf82;--fc-bg-event-opacity:0.3;--fc-highlight-color:rgba(188,232,241,.3);--fc-today-bg-color:rgba(255,220,40,.15);--fc-now-indicator-color:red}.fc{display:flex;flex-direction:column;gap:1.5em}.fc,.fc *,.fc :after,.fc :before{box-sizing:border-box}.fc-direction-ltr{direction:ltr;text-align:left}.fc-direction-rtl{direction:rtl;text-align:right}.fc-border,.fc-border-b,.fc-border-e,.fc-border-s,.fc-border-t{border:0 solid var(--fc-border-color)}.fc-border-transparent{border-color:transparent}.fc-border{border-width:1px}.fc-border-t{border-top-width:1px}.fc-border-b{border-bottom-width:1px}.fc-direction-ltr .fc-border-s,.fc-direction-rtl .fc-border-e{border-left-width:1px}.fc-direction-ltr .fc-border-e,.fc-direction-rtl .fc-border-s{border-right-width:1px}.fc-flex-row{display:flex;flex-direction:row}.fc-flex-col{display:flex;flex-direction:column}.fc-grow{flex-grow:1}.fc-basis0,.fc-liquid{flex-basis:0}.fc-liquid{flex-grow:1;min-height:0;min-width:0}.fc-media-screen .fc-print-header,.fc-media-screen .fc-print-root{display:flex;flex-direction:column}.fc-cell{margin:0!important;padding:0!important}.fc-cell-inner{flex-shrink:0;overflow:hidden;white-space:nowrap}.fc-celldivider,.fc-rowdivider{border:0 solid var(--fc-border-color)}.fc-rowdivider{border-width:1px 0}.fc-celldivider{border-width:0 1px}.fc-celldivider,.fc-rowdivider{background:var(--fc-neutral-bg-color)}.fc-celldivider{padding-left:2px}.fc-rowdivider{padding-bottom:2px}.fc-crop{overflow:hidden}.fc-rel{position:relative}.fc-abs{position:absolute}.fc-fill{bottom:0;top:0}.fc-fill,.fc-fill-x{left:0;position:absolute;right:0}.fc-fill-y{bottom:0;position:absolute;top:0}.fc-sticky-t{position:sticky;top:0}.fc-sticky-s{left:0;position:sticky;right:0}.fc-table-header-sticky{background:var(--fc-page-bg-color);position:sticky;top:0;z-index:5}.fc-sticky-footer-scrollbar{bottom:0;position:sticky;z-index:5}.fc-sticky-footer-scrollbar>.fc-scroller{margin-top:-1px}.fc-sticky-footer-scrollbar>.fc-scroller>*{height:1px}.fc-content-box{box-sizing:content-box}.fc-offscreen{left:-10000px;position:absolute}.fc-shaded{background-color:var(--fc-neutral-bg-color)}.fc-filler{opacity:.5}.fc-padding-sm{padding:2px 4px}.fc-padding-md{padding:4px 5px}.fc-padding-lg{padding:8px}.fc-justify-center{justify-content:center}.fc-align-center{align-items:center}.fc-align-start{align-items:flex-start}.fc [data-navlink]{cursor:pointer}.fc [data-navlink]:hover{text-decoration:underline}.fc-view-outer{position:relative}.fc-view-outer-liquid,.fc-view-outer-static{display:flex;flex-direction:column}.fc-view-outer-liquid,.fc-view-outer-liquid>.fc-view,.fc-view-outer-static>.fc-view{flex-basis:0;flex-grow:1;min-height:0;min-width:0}.fc-view-outer-aspect-ratio>.fc-view{bottom:0;left:0;position:absolute;right:0;top:0}a.fc-event,a.fc-event:hover{text-decoration:none}.fc-event.fc-event-draggable,.fc-event[href]{cursor:pointer}.fc-event-dragging:not(.fc-event-selected){opacity:.75}.fc-event-dragging.fc-event-selected{box-shadow:0 2px 7px rgba(0,0,0,.3)}.fc-event-selected:before{bottom:0;content:\"\";left:0;position:absolute;right:0;top:0;z-index:3}.fc-event-selected,.fc-event:focus{box-shadow:0 2px 5px rgba(0,0,0,.2)}.fc-event-selected:after,.fc-event:focus:after{background:var(--fc-event-selected-overlay-color);bottom:-1px;content:\"\";left:-1px;position:absolute;right:-1px;top:-1px;z-index:1}.fc-event-inner{position:relative;z-index:2}.fc-event-resizer{display:none;position:absolute;z-index:4}.fc-event-selected .fc-event-resizer,.fc-event:hover .fc-event-resizer{display:block}.fc-event-selected .fc-event-resizer{background:var(--fc-page-bg-color);border-color:inherit;border-radius:calc(var(--fc-event-resizer-dot-total-width)/2);border-style:solid;border-width:var(--fc-event-resizer-dot-border-width);height:var(--fc-event-resizer-dot-total-width);width:var(--fc-event-resizer-dot-total-width)}.fc-event-selected .fc-event-resizer:before{bottom:-20px;content:\"\";left:-20px;position:absolute;right:-20px;top:-20px}.fc-bg-event,.fc-highlight,.fc-non-business{bottom:0;left:0;position:absolute;right:0;top:0}.fc-non-business{background:var(--fc-non-business-color)}.fc-bg-event{background:var(--fc-bg-event-color);opacity:var(--fc-bg-event-opacity)}.fc-bg-event .fc-event-title{font-size:var(--fc-small-font-size);font-style:italic;margin:.5em}.fc-highlight{background:var(--fc-highlight-color)}.fc-day-disabled{background:var(--fc-neutral-bg-color)}.fc-h-event{background-color:var(--fc-event-bg-color);border:1px solid var(--fc-event-border-color);display:flex;flex-direction:column;position:relative}.fc-h-event.fc-event-mirror{z-index:3}.fc-h-event.fc-event-selected:before{bottom:-10px;top:-10px}.fc-h-event .fc-event-inner{color:var(--fc-event-text-color);display:flex;flex-direction:row}.fc-h-event .fc-event-time,.fc-h-event .fc-event-title{overflow:hidden;white-space:nowrap}.fc-h-event .fc-event-title-outer{display:flex;flex-basis:0;flex-direction:row;flex-grow:1;min-height:0;min-width:0}.fc-h-event .fc-event-title{left:0;position:sticky;right:0}.fc-h-event:not(.fc-event-selected) .fc-event-resizer{bottom:0;top:0;width:var(--fc-event-resizer-thickness)}.fc-direction-ltr .fc-h-event:not(.fc-event-selected) .fc-event-resizer-start,.fc-direction-rtl .fc-h-event:not(.fc-event-selected) .fc-event-resizer-end{cursor:w-resize;left:calc(var(--fc-event-resizer-thickness)*-.5)}.fc-direction-ltr .fc-h-event:not(.fc-event-selected) .fc-event-resizer-end,.fc-direction-rtl .fc-h-event:not(.fc-event-selected) .fc-event-resizer-start{cursor:e-resize;right:calc(var(--fc-event-resizer-thickness)*-.5)}.fc-h-event.fc-event-selected .fc-event-resizer{margin-top:calc(var(--fc-event-resizer-dot-total-width)*-.5);top:50%}.fc-direction-ltr .fc-h-event.fc-event-selected .fc-event-resizer-start,.fc-direction-rtl .fc-h-event.fc-event-selected .fc-event-resizer-end{left:calc(var(--fc-event-resizer-dot-total-width)*-.5)}.fc-direction-ltr .fc-h-event.fc-event-selected .fc-event-resizer-end,.fc-direction-rtl .fc-h-event.fc-event-selected .fc-event-resizer-start{right:calc(var(--fc-event-resizer-dot-total-width)*-.5)}.fc-popover{box-shadow:0 2px 6px rgba(0,0,0,.15);position:absolute;z-index:6}.fc-popover-header{align-items:center;display:flex;flex-direction:row;justify-content:space-between;padding:3px 4px}.fc-popover-title{margin:0 2px}.fc-popover-close{cursor:pointer;font-size:1.1em;opacity:.65}.fc-theme-standard .fc-popover{background:var(--fc-page-bg-color);border:1px solid var(--fc-border-color)}.fc-theme-standard .fc-popover-header{background:var(--fc-neutral-bg-color)}.fc-scroller{padding:0!important}.fc-scroller-no-bars{-ms-overflow-style:none;scrollbar-width:none}.fc-scroller-no-bars::-webkit-scrollbar{display:none}.fc-not-allowed,.fc-not-allowed .fc-event{cursor:not-allowed}@font-face{font-family:fcicons;font-style:normal;font-weight:400;src:url(\"data:application/x-font-ttf;charset=utf-8;base64,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\") format(\"truetype\")}.fc-icon{speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;display:inline-block;font-family:fcicons!important;font-style:normal;font-variant:normal;font-weight:400;height:1em;line-height:1;text-align:center;text-transform:none;-moz-user-select:none;user-select:none;width:1em}.fc-icon-chevron-left:before{content:\"\\e900\"}.fc-icon-chevron-right:before{content:\"\\e901\"}.fc-icon-chevrons-left:before{content:\"\\e902\"}.fc-icon-chevrons-right:before{content:\"\\e903\"}.fc-icon-minus-square:before{content:\"\\e904\"}.fc-icon-plus-square:before{content:\"\\e905\"}.fc-icon-x:before{content:\"\\e906\"}.fc-button{border-radius:0;font-family:inherit;font-size:inherit;line-height:inherit;margin:0;overflow:visible;text-transform:none}.fc-button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}.fc-button{-webkit-appearance:button}.fc-button:not(:disabled){cursor:pointer}.fc-button{background-color:transparent;border:1px solid transparent;border-radius:.25em;display:inline-block;font-size:1em;font-weight:400;line-height:1.5;padding:.4em .65em;text-align:center;-moz-user-select:none;user-select:none;vertical-align:middle}.fc-button:hover{text-decoration:none}.fc-button:focus{box-shadow:0 0 0 .2rem rgba(44,62,80,.25);outline:0}.fc-button:disabled{opacity:.65}.fc-button-primary{background-color:var(--fc-button-bg-color);border-color:var(--fc-button-border-color);color:var(--fc-button-text-color)}.fc-button-primary:hover{background-color:var(--fc-button-hover-bg-color);border-color:var(--fc-button-hover-border-color);color:var(--fc-button-text-color)}.fc-button-primary:disabled{background-color:var(--fc-button-bg-color);border-color:var(--fc-button-border-color);color:var(--fc-button-text-color)}.fc-button-primary:focus{box-shadow:0 0 0 .2rem rgba(76,91,106,.5)}.fc-button-primary:not(:disabled).fc-button-active,.fc-button-primary:not(:disabled):active{background-color:var(--fc-button-active-bg-color);border-color:var(--fc-button-active-border-color);color:var(--fc-button-text-color)}.fc-button-primary:not(:disabled).fc-button-active:focus,.fc-button-primary:not(:disabled):active:focus{box-shadow:0 0 0 .2rem rgba(76,91,106,.5)}.fc-button .fc-icon{font-size:1.5em;vertical-align:middle}.fc-button-group{display:inline-flex;position:relative;vertical-align:middle}.fc-button-group>.fc-button{flex:1 1 auto;position:relative}.fc-button-group>.fc-button.fc-button-active,.fc-button-group>.fc-button:active,.fc-button-group>.fc-button:focus,.fc-button-group>.fc-button:hover{z-index:1}.fc-direction-ltr .fc-button-group>.fc-button:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0;margin-left:-1px}.fc-direction-ltr .fc-button-group>.fc-button:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.fc-direction-rtl .fc-button-group>.fc-button:not(:first-child){border-bottom-right-radius:0;border-top-right-radius:0;margin-right:-1px}.fc-direction-rtl .fc-button-group>.fc-button:not(:last-child){border-bottom-left-radius:0;border-top-left-radius:0}.fc-toolbar{align-items:center;justify-content:space-between}.fc-toolbar,.fc-toolbar-section{display:flex;flex-direction:row;gap:.75em}.fc-toolbar-section{flex-shrink:0}.fc-toolbar-title{font-size:1.75em;font-weight:700;white-space:nowrap}";
|
|
85
|
+
var css_248z = ":root{--fc-small-font-size:.85em;--fc-page-bg-color:#fff;--fc-neutral-bg-color:hsla(0,0%,82%,.3);--fc-neutral-text-color:grey;--fc-border-color:#ddd;--fc-button-text-color:#fff;--fc-button-bg-color:#2c3e50;--fc-button-border-color:#2c3e50;--fc-button-hover-bg-color:#1e2b37;--fc-button-hover-border-color:#1a252f;--fc-button-active-bg-color:#1a252f;--fc-button-active-border-color:#151e27;--fc-event-bg-color:#3788d8;--fc-event-border-color:#3788d8;--fc-event-text-color:#fff;--fc-event-selected-overlay-color:rgba(0,0,0,.25);--fc-more-link-bg-color:#d0d0d0;--fc-more-link-text-color:inherit;--fc-event-resizer-thickness:8px;--fc-event-resizer-dot-total-width:8px;--fc-event-resizer-dot-border-width:1px;--fc-non-business-color:hsla(0,0%,84%,.3);--fc-bg-event-color:#8fdf82;--fc-bg-event-opacity:0.3;--fc-highlight-color:rgba(188,232,241,.3);--fc-today-bg-color:rgba(255,220,40,.15);--fc-now-indicator-color:red}.fc{display:flex;flex-direction:column;gap:1.5em}.fc,.fc *,.fc :after,.fc :before{box-sizing:border-box}.fc-direction-ltr{direction:ltr;text-align:left}.fc-direction-rtl{direction:rtl;text-align:right}.fc-border,.fc-border-b,.fc-border-e,.fc-border-s,.fc-border-t{border:0 solid var(--fc-border-color)}.fc-border-transparent{border-color:transparent}.fc-border{border-width:1px}.fc-border-t{border-top-width:1px}.fc-border-b{border-bottom-width:1px}.fc-direction-ltr .fc-border-s,.fc-direction-rtl .fc-border-e{border-left-width:1px}.fc-direction-ltr .fc-border-e,.fc-direction-rtl .fc-border-s{border-right-width:1px}.fc-flex-row{display:flex;flex-direction:row}.fc-flex-col{display:flex;flex-direction:column}.fc-grow{flex-grow:1}.fc-basis0,.fc-liquid{flex-basis:0}.fc-liquid{flex-grow:1;min-height:0;min-width:0}.fc-media-screen .fc-print-header,.fc-media-screen .fc-print-root{display:flex;flex-direction:column}.fc-cell{margin:0!important;padding:0!important}.fc-cell-inner{flex-shrink:0;overflow:hidden;white-space:nowrap}.fc-celldivider,.fc-rowdivider{border:0 solid var(--fc-border-color)}.fc-rowdivider{border-width:1px 0}.fc-celldivider{border-width:0 1px}.fc-celldivider,.fc-rowdivider{background:var(--fc-neutral-bg-color)}.fc-celldivider{padding-left:2px}.fc-rowdivider{padding-bottom:2px}.fc-crop{overflow:hidden}.fc-rel{position:relative}.fc-abs{position:absolute}.fc-fill{bottom:0;top:0}.fc-fill,.fc-fill-top,.fc-fill-x{left:0;position:absolute;right:0}.fc-fill-start,.fc-fill-y{bottom:0;position:absolute;top:0}.fc-fill-top{top:0}.fc-fill-start{left:0;right:0;width:0}.fc-sticky-t{position:sticky;top:0}.fc-sticky-s{left:0;position:sticky;right:0}.fc-table-header-sticky{background:var(--fc-page-bg-color);position:sticky;top:0;z-index:3}.fc-content-box{box-sizing:content-box}.fc-offscreen{left:-10000px;position:absolute}.fc-shaded{background-color:var(--fc-neutral-bg-color)}.fc-filler{opacity:.5}.fc-padding-sm{padding:2px 4px}.fc-padding-md{padding:4px 5px}.fc-padding-lg{padding:8px}.fc-justify-center{justify-content:center}.fc-align-center{align-items:center}.fc-align-start{align-items:flex-start}.fc-footer-scrollbar-sticky{bottom:0;position:sticky;z-index:3}.fc-footer-scrollbar>.fc-scroller{margin-top:-1px}.fc-footer-scrollbar>.fc-scroller>*{height:1px}.fc-navlink{cursor:pointer}.fc-navlink:hover{text-decoration:underline}.fc-view-outer{position:relative}.fc-view-outer-liquid,.fc-view-outer-static{display:flex;flex-direction:column}.fc-view-outer-liquid,.fc-view-outer-liquid>.fc-view,.fc-view-outer-static>.fc-view{flex-basis:0;flex-grow:1;min-height:0;min-width:0}.fc-view-outer-aspect-ratio>.fc-view{bottom:0;left:0;position:absolute;right:0;top:0}a.fc-event,a.fc-event:hover{text-decoration:none}.fc-event.fc-event-draggable,.fc-event[href]{cursor:pointer}.fc-event-dragging:not(.fc-event-selected){opacity:.75}.fc-event-dragging.fc-event-selected{box-shadow:0 2px 7px rgba(0,0,0,.3)}.fc-event-selected:before{bottom:0;content:\"\";left:0;position:absolute;right:0;top:0;z-index:3}.fc-event-selected,.fc-event:focus:not(.fc-list-event){box-shadow:0 2px 5px rgba(0,0,0,.2)}.fc-event-selected:after,.fc-event:focus:not(.fc-list-event):after{background:var(--fc-event-selected-overlay-color);bottom:-1px;content:\"\";left:-1px;position:absolute;right:-1px;top:-1px;z-index:1}.fc-event-inner{position:relative;z-index:2}.fc-event-resizer{display:none;position:absolute;z-index:4}.fc-event-selected .fc-event-resizer,.fc-event:hover .fc-event-resizer{display:block}.fc-event-selected .fc-event-resizer{background:var(--fc-page-bg-color);border-color:inherit;border-radius:calc(var(--fc-event-resizer-dot-total-width)/2);border-style:solid;border-width:var(--fc-event-resizer-dot-border-width);height:var(--fc-event-resizer-dot-total-width);width:var(--fc-event-resizer-dot-total-width)}.fc-event-selected .fc-event-resizer:before{bottom:-20px;content:\"\";left:-20px;position:absolute;right:-20px;top:-20px}.fc-bg-event,.fc-highlight,.fc-non-business{bottom:0;left:0;position:absolute;right:0;top:0}.fc-non-business{background:var(--fc-non-business-color)}.fc-bg-event{background:var(--fc-bg-event-color);opacity:var(--fc-bg-event-opacity)}.fc-bg-event .fc-event-title{font-size:var(--fc-small-font-size);font-style:italic;margin:.5em}.fc-highlight{background:var(--fc-highlight-color)}.fc-day-disabled{background:var(--fc-neutral-bg-color)}.fc-h-event{background-color:var(--fc-event-bg-color);border:1px solid var(--fc-event-border-color);display:flex;flex-direction:column;position:relative}.fc-h-event.fc-event-mirror{z-index:1}.fc-h-event.fc-event-selected:before{bottom:-10px;top:-10px}.fc-h-event .fc-event-inner{color:var(--fc-event-text-color);display:flex;flex-direction:row}.fc-h-event .fc-event-time,.fc-h-event .fc-event-title{overflow:hidden;white-space:nowrap}.fc-media-print .fc-h-event .fc-event-time,.fc-media-print .fc-h-event .fc-event-title{overflow:hidden!important;white-space:nowrap!important}.fc-h-event .fc-event-title-outer{display:flex;flex-basis:0;flex-direction:row;flex-grow:1;min-height:0;min-width:0}.fc-h-event .fc-event-title{left:0;position:sticky;right:0}.fc-h-event:not(.fc-event-selected) .fc-event-resizer{bottom:0;top:0;width:var(--fc-event-resizer-thickness)}.fc-direction-ltr .fc-h-event:not(.fc-event-selected) .fc-event-resizer-start,.fc-direction-rtl .fc-h-event:not(.fc-event-selected) .fc-event-resizer-end{cursor:w-resize;left:calc(var(--fc-event-resizer-thickness)*-.5)}.fc-direction-ltr .fc-h-event:not(.fc-event-selected) .fc-event-resizer-end,.fc-direction-rtl .fc-h-event:not(.fc-event-selected) .fc-event-resizer-start{cursor:e-resize;right:calc(var(--fc-event-resizer-thickness)*-.5)}.fc-h-event.fc-event-selected .fc-event-resizer{margin-top:calc(var(--fc-event-resizer-dot-total-width)*-.5);top:50%}.fc-direction-ltr .fc-h-event.fc-event-selected .fc-event-resizer-start,.fc-direction-rtl .fc-h-event.fc-event-selected .fc-event-resizer-end{left:calc(var(--fc-event-resizer-dot-total-width)*-.5)}.fc-direction-ltr .fc-h-event.fc-event-selected .fc-event-resizer-end,.fc-direction-rtl .fc-h-event.fc-event-selected .fc-event-resizer-start{right:calc(var(--fc-event-resizer-dot-total-width)*-.5)}.fc-popover{box-shadow:0 2px 6px rgba(0,0,0,.15);position:absolute;z-index:4}.fc-popover-header{align-items:center;display:flex;flex-direction:row;justify-content:space-between;padding:3px 4px}.fc-popover-title{margin:0 2px}.fc-popover-close{cursor:pointer;font-size:1.1em;opacity:.65}.fc-theme-standard .fc-popover{background:var(--fc-page-bg-color);border:1px solid var(--fc-border-color)}.fc-theme-standard .fc-popover-header{background:var(--fc-neutral-bg-color)}.fc-scroller{padding:0!important}.fc-scroller-no-bars{-ms-overflow-style:none;scrollbar-width:none}.fc-scroller-no-bars::-webkit-scrollbar{display:none}.fc-not-allowed,.fc-not-allowed .fc-event{cursor:not-allowed}@font-face{font-family:fcicons;font-style:normal;font-weight:400;src:url(\"data:application/x-font-ttf;charset=utf-8;base64,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\") format(\"truetype\")}.fc-icon{speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;display:inline-block;font-family:fcicons!important;font-style:normal;font-variant:normal;font-weight:400;height:1em;line-height:1;text-align:center;text-transform:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:1em}.fc-icon-chevron-left:before{content:\"\\e900\"}.fc-icon-chevron-right:before{content:\"\\e901\"}.fc-icon-chevrons-left:before{content:\"\\e902\"}.fc-icon-chevrons-right:before{content:\"\\e903\"}.fc-icon-minus-square:before{content:\"\\e904\"}.fc-icon-plus-square:before{content:\"\\e905\"}.fc-icon-x:before{content:\"\\e906\"}.fc-button{border-radius:0;font-family:inherit;font-size:inherit;line-height:inherit;margin:0;overflow:visible;text-transform:none}.fc-button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}.fc-button{-webkit-appearance:button}.fc-button:not(:disabled){cursor:pointer}.fc-button{background-color:transparent;border:1px solid transparent;border-radius:.25em;display:inline-block;font-size:1em;font-weight:400;line-height:1.5;padding:.4em .65em;text-align:center;-webkit-user-select:none;-moz-user-select:none;user-select:none;vertical-align:middle}.fc-button:hover{text-decoration:none}.fc-button:focus{box-shadow:0 0 0 .2rem rgba(44,62,80,.25);outline:0}.fc-button:disabled{opacity:.65}.fc-button-primary{background-color:var(--fc-button-bg-color);border-color:var(--fc-button-border-color);color:var(--fc-button-text-color)}.fc-button-primary:hover{background-color:var(--fc-button-hover-bg-color);border-color:var(--fc-button-hover-border-color);color:var(--fc-button-text-color)}.fc-button-primary:disabled{background-color:var(--fc-button-bg-color);border-color:var(--fc-button-border-color);color:var(--fc-button-text-color)}.fc-button-primary:focus{box-shadow:0 0 0 .2rem rgba(76,91,106,.5)}.fc-button-primary:not(:disabled).fc-button-active,.fc-button-primary:not(:disabled):active{background-color:var(--fc-button-active-bg-color);border-color:var(--fc-button-active-border-color);color:var(--fc-button-text-color)}.fc-button-primary:not(:disabled).fc-button-active:focus,.fc-button-primary:not(:disabled):active:focus{box-shadow:0 0 0 .2rem rgba(76,91,106,.5)}.fc-button .fc-icon{font-size:1.5em;vertical-align:middle}.fc-button-group{display:inline-flex;position:relative;vertical-align:middle}.fc-button-group>.fc-button{flex:1 1 auto;position:relative}.fc-button-group>.fc-button.fc-button-active,.fc-button-group>.fc-button:active,.fc-button-group>.fc-button:focus,.fc-button-group>.fc-button:hover{z-index:1}.fc-direction-ltr .fc-button-group>.fc-button:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0;margin-left:-1px}.fc-direction-ltr .fc-button-group>.fc-button:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.fc-direction-rtl .fc-button-group>.fc-button:not(:first-child){border-bottom-right-radius:0;border-top-right-radius:0;margin-right:-1px}.fc-direction-rtl .fc-button-group>.fc-button:not(:last-child){border-bottom-left-radius:0;border-top-left-radius:0}.fc-toolbar{align-items:center;justify-content:space-between}.fc-toolbar,.fc-toolbar-section{display:flex;flex-direction:row;gap:.75em}.fc-toolbar-section{flex-shrink:0}.fc-toolbar-title{font-size:1.75em;font-weight:700;white-space:nowrap}";
|
|
150
86
|
injectStyles(css_248z);
|
|
151
87
|
|
|
152
88
|
class DelayedRunner {
|
|
@@ -858,65 +794,6 @@ function memoizeObjArg(workerFunc, resEquality, teardownFunc) {
|
|
|
858
794
|
return currentRes;
|
|
859
795
|
};
|
|
860
796
|
}
|
|
861
|
-
function memoizeArraylike(// used at all?
|
|
862
|
-
workerFunc, resEquality, teardownFunc) {
|
|
863
|
-
let currentArgSets = [];
|
|
864
|
-
let currentResults = [];
|
|
865
|
-
return (newArgSets) => {
|
|
866
|
-
let currentLen = currentArgSets.length;
|
|
867
|
-
let newLen = newArgSets.length;
|
|
868
|
-
let i = 0;
|
|
869
|
-
for (; i < currentLen; i += 1) {
|
|
870
|
-
if (!newArgSets[i]) { // one of the old sets no longer exists
|
|
871
|
-
if (teardownFunc) {
|
|
872
|
-
teardownFunc(currentResults[i]);
|
|
873
|
-
}
|
|
874
|
-
}
|
|
875
|
-
else if (!isArraysEqual(currentArgSets[i], newArgSets[i])) {
|
|
876
|
-
if (teardownFunc) {
|
|
877
|
-
teardownFunc(currentResults[i]);
|
|
878
|
-
}
|
|
879
|
-
let res = workerFunc.apply(this, newArgSets[i]);
|
|
880
|
-
if (!resEquality || !resEquality(res, currentResults[i])) {
|
|
881
|
-
currentResults[i] = res;
|
|
882
|
-
}
|
|
883
|
-
}
|
|
884
|
-
}
|
|
885
|
-
for (; i < newLen; i += 1) {
|
|
886
|
-
currentResults[i] = workerFunc.apply(this, newArgSets[i]);
|
|
887
|
-
}
|
|
888
|
-
currentArgSets = newArgSets;
|
|
889
|
-
currentResults.splice(newLen); // remove excess
|
|
890
|
-
return currentResults;
|
|
891
|
-
};
|
|
892
|
-
}
|
|
893
|
-
function memoizeHashlike(workerFunc, resEquality, teardownFunc) {
|
|
894
|
-
let currentArgHash = {};
|
|
895
|
-
let currentResHash = {};
|
|
896
|
-
return (newArgHash) => {
|
|
897
|
-
let newResHash = {};
|
|
898
|
-
for (let key in newArgHash) {
|
|
899
|
-
if (!currentResHash[key]) {
|
|
900
|
-
newResHash[key] = workerFunc.apply(this, newArgHash[key]);
|
|
901
|
-
}
|
|
902
|
-
else if (!isArraysEqual(currentArgHash[key], newArgHash[key])) {
|
|
903
|
-
if (teardownFunc) {
|
|
904
|
-
teardownFunc(currentResHash[key]);
|
|
905
|
-
}
|
|
906
|
-
let res = workerFunc.apply(this, newArgHash[key]);
|
|
907
|
-
newResHash[key] = (resEquality && resEquality(res, currentResHash[key]))
|
|
908
|
-
? currentResHash[key]
|
|
909
|
-
: res;
|
|
910
|
-
}
|
|
911
|
-
else {
|
|
912
|
-
newResHash[key] = currentResHash[key];
|
|
913
|
-
}
|
|
914
|
-
}
|
|
915
|
-
currentArgHash = newArgHash;
|
|
916
|
-
currentResHash = newResHash;
|
|
917
|
-
return newResHash;
|
|
918
|
-
};
|
|
919
|
-
}
|
|
920
797
|
|
|
921
798
|
const EXTENDED_SETTINGS_AND_SEVERITIES = {
|
|
922
799
|
week: 3,
|
|
@@ -1347,7 +1224,6 @@ const BASE_OPTION_REFINERS = {
|
|
|
1347
1224
|
eventDataTransform: identity,
|
|
1348
1225
|
stickyHeaderDates: identity,
|
|
1349
1226
|
stickyFooterScrollbar: identity,
|
|
1350
|
-
viewHeight: identity,
|
|
1351
1227
|
defaultAllDay: Boolean,
|
|
1352
1228
|
eventSourceFailure: identity,
|
|
1353
1229
|
eventSourceSuccess: identity,
|
|
@@ -2176,6 +2052,37 @@ Theme.prototype.iconClasses = {};
|
|
|
2176
2052
|
Theme.prototype.baseIconClass = '';
|
|
2177
2053
|
Theme.prototype.iconOverridePrefix = '';
|
|
2178
2054
|
|
|
2055
|
+
/*
|
|
2056
|
+
Like flushSync, but flushes ALL pending updates, not only those initiated in a callback
|
|
2057
|
+
BTW, flushSync doesn't work in Preact: https://github.com/preactjs/preact/issues/3929
|
|
2058
|
+
*/
|
|
2059
|
+
function flushUpdates() {
|
|
2060
|
+
let oldDebounceRendering = preact.options.debounceRendering; // orig
|
|
2061
|
+
let callbackQ = [];
|
|
2062
|
+
function execCallbackSync(callback) {
|
|
2063
|
+
callbackQ.push(callback);
|
|
2064
|
+
}
|
|
2065
|
+
preact.options.debounceRendering = execCallbackSync;
|
|
2066
|
+
preact.render(preact.createElement(FakeComponent, {}), document.createElement('div'));
|
|
2067
|
+
while (callbackQ.length) {
|
|
2068
|
+
callbackQ.shift()();
|
|
2069
|
+
}
|
|
2070
|
+
preact.options.debounceRendering = oldDebounceRendering;
|
|
2071
|
+
}
|
|
2072
|
+
function flushSync(f) {
|
|
2073
|
+
f();
|
|
2074
|
+
flushUpdates();
|
|
2075
|
+
}
|
|
2076
|
+
/*
|
|
2077
|
+
Triggers a state-change which unclogs the render queue? Needed?
|
|
2078
|
+
*/
|
|
2079
|
+
class FakeComponent extends preact.Component {
|
|
2080
|
+
render() { return preact.createElement('div', {}); }
|
|
2081
|
+
componentDidMount() { this.setState({}); }
|
|
2082
|
+
}
|
|
2083
|
+
const createContext = preact.createContext;
|
|
2084
|
+
const preactOptions = preact.options;
|
|
2085
|
+
|
|
2179
2086
|
const ViewContextType = createContext({}); // for Components
|
|
2180
2087
|
function buildViewContext(viewSpec, viewApi, viewOptions, dateProfileGenerator, dateEnv, theme, pluginHooks, dispatch, getCurrentData, emitter, calendarApi, registerInteractiveComponent, unregisterInteractiveComponent) {
|
|
2181
2088
|
return {
|
|
@@ -4247,8 +4154,19 @@ isStart, isEnd, context, defaultDisplayEventTime = true, defaultDisplayEventEnd
|
|
|
4247
4154
|
if (displayEventEnd == null) {
|
|
4248
4155
|
displayEventEnd = defaultDisplayEventEnd !== false;
|
|
4249
4156
|
}
|
|
4250
|
-
const startDate = (!isStart &&
|
|
4251
|
-
|
|
4157
|
+
const startDate = (!isStart &&
|
|
4158
|
+
slicedStart &&
|
|
4159
|
+
// if seg is the first seg, but start-date cut-off by slotMinTime, (technically isStart=false)
|
|
4160
|
+
// we still want to display the original start-time
|
|
4161
|
+
startOfDay(slicedStart).valueOf() !== startOfDay(eventRange.instance.range.start).valueOf())
|
|
4162
|
+
? slicedStart
|
|
4163
|
+
: eventRange.instance.range.start;
|
|
4164
|
+
const endDate = (!isEnd &&
|
|
4165
|
+
slicedEnd &&
|
|
4166
|
+
// See above HACK, but for end-time
|
|
4167
|
+
startOfDay(addMs(slicedEnd, -1)).valueOf() !== startOfDay(addMs(eventRange.instance.range.end, -1)).valueOf())
|
|
4168
|
+
? slicedEnd
|
|
4169
|
+
: eventRange.instance.range.end;
|
|
4252
4170
|
if (displayEventTime && !def.allDay) {
|
|
4253
4171
|
if (displayEventEnd && (isStart || isEnd) && def.hasEnd) {
|
|
4254
4172
|
return dateEnv.formatRange(startDate, endDate, timeFormat, {
|
|
@@ -4529,21 +4447,15 @@ but our Preact system does not commit to the DOM immediately, commits are batche
|
|
|
4529
4447
|
so we can skip this.
|
|
4530
4448
|
*/
|
|
4531
4449
|
function checkConfigMap() {
|
|
4450
|
+
let anyDirty = true;
|
|
4532
4451
|
if (!isHandling) {
|
|
4533
4452
|
isHandling = true;
|
|
4534
4453
|
const dirtyConfigs = [];
|
|
4535
4454
|
for (const [el, config] of configMap.entries()) {
|
|
4536
|
-
|
|
4537
|
-
let height;
|
|
4538
|
-
if (config.client) {
|
|
4539
|
-
width = el.clientWidth;
|
|
4540
|
-
height = el.clientHeight;
|
|
4541
|
-
}
|
|
4542
|
-
else {
|
|
4543
|
-
({ width, height } = el.getBoundingClientRect());
|
|
4544
|
-
}
|
|
4455
|
+
const { width, height } = el.getBoundingClientRect();
|
|
4545
4456
|
if (storeConfigDims(config, width, height)) {
|
|
4546
4457
|
dirtyConfigs.push(config);
|
|
4458
|
+
anyDirty = true;
|
|
4547
4459
|
}
|
|
4548
4460
|
}
|
|
4549
4461
|
for (const dirtyConfig of dirtyConfigs) {
|
|
@@ -4552,6 +4464,7 @@ function checkConfigMap() {
|
|
|
4552
4464
|
flushAfterSize();
|
|
4553
4465
|
isHandling = false;
|
|
4554
4466
|
}
|
|
4467
|
+
return anyDirty;
|
|
4555
4468
|
}
|
|
4556
4469
|
function storeConfigDims(config, width, height) {
|
|
4557
4470
|
let shouldFire = false;
|
|
@@ -4579,11 +4492,7 @@ function initNative() {
|
|
|
4579
4492
|
const config = configMap.get(el);
|
|
4580
4493
|
let width;
|
|
4581
4494
|
let height;
|
|
4582
|
-
if (
|
|
4583
|
-
width = el.clientWidth;
|
|
4584
|
-
height = el.clientHeight;
|
|
4585
|
-
}
|
|
4586
|
-
else if (entry.borderBoxSize && nativeBorderBoxEnabled) {
|
|
4495
|
+
if (entry.borderBoxSize && nativeBorderBoxEnabled) {
|
|
4587
4496
|
const borderBoxSize = entry.borderBoxSize[0] || entry.borderBoxSize; // HACK for Firefox
|
|
4588
4497
|
width = borderBoxSize.inlineSize;
|
|
4589
4498
|
height = borderBoxSize.blockSize;
|
|
@@ -4598,12 +4507,11 @@ function initNative() {
|
|
|
4598
4507
|
flushAfterSize();
|
|
4599
4508
|
isHandling = false;
|
|
4600
4509
|
});
|
|
4601
|
-
function watchSize(el, callback,
|
|
4602
|
-
configMap.set(el, { callback,
|
|
4510
|
+
function watchSize(el, callback, watchWidth = true, watchHeight = true) {
|
|
4511
|
+
configMap.set(el, { callback, watchWidth, watchHeight });
|
|
4603
4512
|
globalResizeObserver.observe(el, {
|
|
4604
|
-
box:
|
|
4605
|
-
|
|
4606
|
-
: undefined // default is 'content-box'
|
|
4513
|
+
box: 'border-box'
|
|
4514
|
+
// default is 'content-box'
|
|
4607
4515
|
});
|
|
4608
4516
|
return () => {
|
|
4609
4517
|
configMap.delete(el);
|
|
@@ -4645,13 +4553,13 @@ function initFallback() {
|
|
|
4645
4553
|
const [requestCheckSizes, cancelCheckSizes] = debounce(checkConfigMap, fallbackTimeout);
|
|
4646
4554
|
function requestCheckSizesSync() {
|
|
4647
4555
|
cancelCheckSizes();
|
|
4648
|
-
checkConfigMap();
|
|
4556
|
+
return checkConfigMap();
|
|
4649
4557
|
}
|
|
4650
|
-
function watchSize(el, callback,
|
|
4558
|
+
function watchSize(el, callback, watchWidth = true, watchHeight = true) {
|
|
4651
4559
|
if (!configMap.size) {
|
|
4652
4560
|
addGlobalHandlers();
|
|
4653
4561
|
}
|
|
4654
|
-
configMap.set(el, { callback,
|
|
4562
|
+
configMap.set(el, { callback, watchWidth, watchHeight });
|
|
4655
4563
|
requestCheckSizes();
|
|
4656
4564
|
return () => {
|
|
4657
4565
|
configMap.delete(el);
|
|
@@ -4767,7 +4675,7 @@ function debounce(fn, ms) {
|
|
|
4767
4675
|
PRECONDITION: element can only have one listener attached
|
|
4768
4676
|
|
|
4769
4677
|
NOTE: If we ever kill the fallback technique and use ResizeObserver unconditionally with full
|
|
4770
|
-
border-box support, we no longer need wrappers around the <
|
|
4678
|
+
border-box support, we no longer need wrappers around the <FooterScrollbar>'s <Scroller>
|
|
4771
4679
|
*/
|
|
4772
4680
|
const [watchSize, updateSizeSync] = typeof ResizeObserver !== 'undefined'
|
|
4773
4681
|
? initNative()
|
|
@@ -4790,13 +4698,13 @@ class CalendarRoot extends BaseComponent {
|
|
|
4790
4698
|
};
|
|
4791
4699
|
this.handleBeforePrint = () => {
|
|
4792
4700
|
this.setState({ forPrint: true });
|
|
4793
|
-
|
|
4701
|
+
flushUpdates();
|
|
4794
4702
|
updateSizeSync();
|
|
4795
|
-
|
|
4703
|
+
flushUpdates();
|
|
4796
4704
|
};
|
|
4797
4705
|
this.handleAfterPrint = () => {
|
|
4798
4706
|
this.setState({ forPrint: false });
|
|
4799
|
-
|
|
4707
|
+
flushUpdates();
|
|
4800
4708
|
};
|
|
4801
4709
|
}
|
|
4802
4710
|
render() {
|
|
@@ -4883,7 +4791,7 @@ function getUniqueDomId() {
|
|
|
4883
4791
|
}
|
|
4884
4792
|
|
|
4885
4793
|
function getIsHeightAuto(options) {
|
|
4886
|
-
return options.height === 'auto' || options.
|
|
4794
|
+
return options.height === 'auto' || options.contentHeight === 'auto';
|
|
4887
4795
|
}
|
|
4888
4796
|
function getStickyHeaderDates(options) {
|
|
4889
4797
|
let { stickyHeaderDates } = options;
|
|
@@ -4922,7 +4830,10 @@ class CalendarImpl {
|
|
|
4922
4830
|
callback();
|
|
4923
4831
|
}
|
|
4924
4832
|
updateSize() {
|
|
4925
|
-
|
|
4833
|
+
let cycleCount = 0;
|
|
4834
|
+
while (cycleCount++ < 3 && updateSizeSync()) {
|
|
4835
|
+
flushUpdates();
|
|
4836
|
+
}
|
|
4926
4837
|
}
|
|
4927
4838
|
// Options
|
|
4928
4839
|
// -----------------------------------------------------------------------------------------------------------------
|
|
@@ -5509,63 +5420,11 @@ function buildNavLinkAttrs(context, dateMarker, viewType = 'day', dateStr = buil
|
|
|
5509
5420
|
calendarApi.zoomTo(dateMarker, viewType);
|
|
5510
5421
|
}
|
|
5511
5422
|
};
|
|
5512
|
-
return Object.assign({ 'role': 'link', 'aria-label': formatWithOrdinals(options.navLinkHint, [dateStr, zonedDate], dateStr), '
|
|
5423
|
+
return Object.assign({ 'role': 'link', 'aria-label': formatWithOrdinals(options.navLinkHint, [dateStr, zonedDate], dateStr), 'className': 'fc-navlink' }, (isTabbable
|
|
5513
5424
|
? createAriaClickAttrs(handleInteraction)
|
|
5514
5425
|
: { onClick: handleInteraction }));
|
|
5515
5426
|
}
|
|
5516
5427
|
|
|
5517
|
-
let _isRtlScrollbarOnLeft = null;
|
|
5518
|
-
function getIsRtlScrollbarOnLeft() {
|
|
5519
|
-
if (_isRtlScrollbarOnLeft === null) {
|
|
5520
|
-
_isRtlScrollbarOnLeft = computeIsRtlScrollbarOnLeft();
|
|
5521
|
-
}
|
|
5522
|
-
return _isRtlScrollbarOnLeft;
|
|
5523
|
-
}
|
|
5524
|
-
function computeIsRtlScrollbarOnLeft() {
|
|
5525
|
-
let outerEl = document.createElement('div');
|
|
5526
|
-
applyStyle(outerEl, {
|
|
5527
|
-
position: 'absolute',
|
|
5528
|
-
top: -1000,
|
|
5529
|
-
left: 0,
|
|
5530
|
-
border: 0,
|
|
5531
|
-
padding: 0,
|
|
5532
|
-
overflow: 'scroll',
|
|
5533
|
-
direction: 'rtl',
|
|
5534
|
-
});
|
|
5535
|
-
outerEl.innerHTML = '<div></div>';
|
|
5536
|
-
document.body.appendChild(outerEl);
|
|
5537
|
-
let innerEl = outerEl.firstChild;
|
|
5538
|
-
let res = innerEl.getBoundingClientRect().left > outerEl.getBoundingClientRect().left;
|
|
5539
|
-
outerEl.remove();
|
|
5540
|
-
return res;
|
|
5541
|
-
}
|
|
5542
|
-
|
|
5543
|
-
let _scrollbarWidths;
|
|
5544
|
-
function getScrollbarWidths() {
|
|
5545
|
-
if (!_scrollbarWidths) {
|
|
5546
|
-
_scrollbarWidths = computeScrollbarWidths();
|
|
5547
|
-
}
|
|
5548
|
-
return _scrollbarWidths;
|
|
5549
|
-
}
|
|
5550
|
-
function computeScrollbarWidths() {
|
|
5551
|
-
let el = document.createElement('div');
|
|
5552
|
-
el.style.overflow = 'scroll';
|
|
5553
|
-
el.style.position = 'absolute';
|
|
5554
|
-
el.style.top = '-9999px';
|
|
5555
|
-
el.style.left = '-9999px';
|
|
5556
|
-
document.body.appendChild(el);
|
|
5557
|
-
let res = computeScrollbarWidthsForEl(el);
|
|
5558
|
-
document.body.removeChild(el);
|
|
5559
|
-
return res;
|
|
5560
|
-
}
|
|
5561
|
-
// WARNING: will include border
|
|
5562
|
-
function computeScrollbarWidthsForEl(el) {
|
|
5563
|
-
return {
|
|
5564
|
-
x: el.offsetHeight - el.clientHeight,
|
|
5565
|
-
y: el.offsetWidth - el.clientWidth,
|
|
5566
|
-
};
|
|
5567
|
-
}
|
|
5568
|
-
|
|
5569
5428
|
function computeEdges(el, getPadding = false) {
|
|
5570
5429
|
let computedStyle = window.getComputedStyle(el);
|
|
5571
5430
|
let borderLeft = parseInt(computedStyle.borderLeftWidth, 10) || 0;
|
|
@@ -5584,7 +5443,7 @@ function computeEdges(el, getPadding = false) {
|
|
|
5584
5443
|
scrollbarLeft: 0,
|
|
5585
5444
|
scrollbarRight: 0,
|
|
5586
5445
|
};
|
|
5587
|
-
if (
|
|
5446
|
+
if (computedStyle.direction === 'rtl') {
|
|
5588
5447
|
res.scrollbarLeft = scrollbarLeftRight;
|
|
5589
5448
|
}
|
|
5590
5449
|
else {
|
|
@@ -5653,6 +5512,13 @@ function getClippingParents(el) {
|
|
|
5653
5512
|
}
|
|
5654
5513
|
return parents;
|
|
5655
5514
|
}
|
|
5515
|
+
// WARNING: will include border
|
|
5516
|
+
function computeScrollbarWidthsForEl(el) {
|
|
5517
|
+
return {
|
|
5518
|
+
x: el.offsetHeight - el.clientHeight,
|
|
5519
|
+
y: el.offsetWidth - el.clientWidth,
|
|
5520
|
+
};
|
|
5521
|
+
}
|
|
5656
5522
|
|
|
5657
5523
|
/*
|
|
5658
5524
|
Records offset information for a set of elements, relative to an origin element.
|
|
@@ -5866,7 +5732,7 @@ class DateComponent extends BaseComponent {
|
|
|
5866
5732
|
isValidDateDownEl(el) {
|
|
5867
5733
|
return !el.closest('.fc-event:not(.fc-bg-event)') &&
|
|
5868
5734
|
!el.closest('.fc-more-link') && // a "more.." link
|
|
5869
|
-
!el.closest('
|
|
5735
|
+
!el.closest('.fc-navlink') && // a clickable nav link
|
|
5870
5736
|
!el.closest('.fc-popover'); // hack
|
|
5871
5737
|
}
|
|
5872
5738
|
}
|
|
@@ -6463,37 +6329,54 @@ class Scroller extends DateComponent {
|
|
|
6463
6329
|
constructor() {
|
|
6464
6330
|
super(...arguments);
|
|
6465
6331
|
this.handleEl = (el) => {
|
|
6466
|
-
const { props } = this;
|
|
6467
6332
|
if (this.el) {
|
|
6468
6333
|
this.el = null;
|
|
6469
6334
|
this.listener.destroy();
|
|
6470
|
-
this.disconnectSize();
|
|
6471
|
-
setRef(props.clientWidthRef, null);
|
|
6472
|
-
setRef(props.clientHeightRef, null);
|
|
6473
|
-
setRef(props.endScrollbarWidthRef, null);
|
|
6474
|
-
setRef(props.bottomScrollbarWidthRef, null);
|
|
6475
6335
|
}
|
|
6476
6336
|
if (el) {
|
|
6477
6337
|
this.el = el;
|
|
6478
6338
|
this.listener = new ScrollListener(el);
|
|
6479
|
-
|
|
6480
|
-
|
|
6481
|
-
|
|
6482
|
-
|
|
6483
|
-
|
|
6484
|
-
|
|
6485
|
-
|
|
6486
|
-
|
|
6487
|
-
|
|
6339
|
+
}
|
|
6340
|
+
};
|
|
6341
|
+
this.handleHRuler = (el) => {
|
|
6342
|
+
if (this.disconnectHRuler) {
|
|
6343
|
+
this.disconnectHRuler();
|
|
6344
|
+
this.disconnectHRuler = undefined;
|
|
6345
|
+
if (this.clientWidth !== undefined) {
|
|
6346
|
+
this.clientWidth = undefined;
|
|
6347
|
+
setRef(this.props.clientWidthRef, null);
|
|
6348
|
+
}
|
|
6349
|
+
}
|
|
6350
|
+
if (el) {
|
|
6351
|
+
this.disconnectHRuler = watchWidth(el, (clientWidth) => {
|
|
6352
|
+
if (clientWidth !== this.clientWidth) {
|
|
6353
|
+
this.clientWidth = clientWidth;
|
|
6354
|
+
setRef(this.props.clientWidthRef, clientWidth);
|
|
6488
6355
|
}
|
|
6489
|
-
|
|
6490
|
-
|
|
6491
|
-
|
|
6356
|
+
});
|
|
6357
|
+
}
|
|
6358
|
+
};
|
|
6359
|
+
this.handleVRuler = (el) => {
|
|
6360
|
+
if (this.disconnectVRuler) {
|
|
6361
|
+
this.disconnectVRuler();
|
|
6362
|
+
this.disconnectVRuler = undefined;
|
|
6363
|
+
if (this.clientHeight !== undefined) {
|
|
6364
|
+
this.clientHeight = undefined;
|
|
6365
|
+
setRef(this.props.clientHeightRef, null);
|
|
6366
|
+
}
|
|
6367
|
+
}
|
|
6368
|
+
if (el) {
|
|
6369
|
+
this.disconnectVRuler = watchHeight(el, (clientHeight) => {
|
|
6370
|
+
if (clientHeight !== this.clientHeight) {
|
|
6371
|
+
this.clientHeight = clientHeight;
|
|
6372
|
+
setRef(this.props.clientHeightRef, clientHeight);
|
|
6492
6373
|
}
|
|
6493
|
-
|
|
6494
|
-
|
|
6374
|
+
const bottomScrollbarWidth = Math.round(this.el.getBoundingClientRect().height - clientHeight);
|
|
6375
|
+
if (bottomScrollbarWidth !== this.bottomScrollbarWidth) {
|
|
6376
|
+
this.bottomScrollbarWidth = bottomScrollbarWidth;
|
|
6377
|
+
setRef(this.props.bottomScrollbarWidthRef, bottomScrollbarWidth);
|
|
6495
6378
|
}
|
|
6496
|
-
}
|
|
6379
|
+
});
|
|
6497
6380
|
}
|
|
6498
6381
|
};
|
|
6499
6382
|
}
|
|
@@ -6502,7 +6385,11 @@ class Scroller extends DateComponent {
|
|
|
6502
6385
|
// if there's only one axis that needs scrolling, the other axis will unintentionally have
|
|
6503
6386
|
// scrollbars too if we don't force to 'hidden'
|
|
6504
6387
|
const fallbackOverflow = (props.horizontal || props.vertical) ? 'hidden' : '';
|
|
6505
|
-
return (createElement("div", { ref: this.handleEl, className: joinClassNames(props.className, 'fc-scroller
|
|
6388
|
+
return (createElement("div", { ref: this.handleEl, className: joinClassNames(props.className, 'fc-scroller fc-rel', // fc-rel for children fc-fill-top/start
|
|
6389
|
+
props.hideScrollbars && 'fc-scroller-no-bars'), style: Object.assign(Object.assign({}, props.style), { overflowX: props.horizontal ? 'auto' : fallbackOverflow, overflowY: props.vertical ? 'auto' : fallbackOverflow }) },
|
|
6390
|
+
props.children,
|
|
6391
|
+
Boolean(props.clientWidthRef) && (createElement("div", { ref: this.handleHRuler, className: 'fc-fill-top' })),
|
|
6392
|
+
Boolean(props.clientHeightRef || props.bottomScrollbarWidthRef) && (createElement("div", { ref: this.handleVRuler, className: 'fc-fill-start' }))));
|
|
6506
6393
|
}
|
|
6507
6394
|
endScroll() {
|
|
6508
6395
|
this.listener.endScroll();
|
|
@@ -6577,9 +6464,6 @@ let _rtlScrollerSystem;
|
|
|
6577
6464
|
function getRtlScrollerSystem() {
|
|
6578
6465
|
return _rtlScrollerSystem || (_rtlScrollerSystem = detectRtlScrollerSystem());
|
|
6579
6466
|
}
|
|
6580
|
-
/*
|
|
6581
|
-
TODO: make this more minimal now that scrollbar-side detection isn't needed?
|
|
6582
|
-
*/
|
|
6583
6467
|
function detectRtlScrollerSystem() {
|
|
6584
6468
|
let el = document.createElement('div');
|
|
6585
6469
|
el.style.position = 'absolute';
|
|
@@ -6912,6 +6796,30 @@ function anyRangesContainRange(outerRanges, innerRange) {
|
|
|
6912
6796
|
return false;
|
|
6913
6797
|
}
|
|
6914
6798
|
|
|
6799
|
+
class Ruler extends BaseComponent {
|
|
6800
|
+
constructor() {
|
|
6801
|
+
super(...arguments);
|
|
6802
|
+
this.elRef = createRef();
|
|
6803
|
+
}
|
|
6804
|
+
render() {
|
|
6805
|
+
return (createElement("div", { ref: this.elRef }));
|
|
6806
|
+
}
|
|
6807
|
+
componentDidMount() {
|
|
6808
|
+
const { props } = this;
|
|
6809
|
+
const el = this.elRef.current;
|
|
6810
|
+
this.disconnectWidth = watchWidth(el, (width) => {
|
|
6811
|
+
setRef(props.widthRef, width);
|
|
6812
|
+
});
|
|
6813
|
+
}
|
|
6814
|
+
componentWillUnmount() {
|
|
6815
|
+
this.disconnectWidth();
|
|
6816
|
+
const { props } = this;
|
|
6817
|
+
if (props.widthRef) {
|
|
6818
|
+
setRef(props.widthRef, null);
|
|
6819
|
+
}
|
|
6820
|
+
}
|
|
6821
|
+
}
|
|
6822
|
+
|
|
6915
6823
|
/*
|
|
6916
6824
|
TODO: make API where createRefMap() called
|
|
6917
6825
|
*/
|
|
@@ -7010,6 +6918,8 @@ function buildDayRange(date) {
|
|
|
7010
6918
|
class EventContainer extends BaseComponent {
|
|
7011
6919
|
constructor() {
|
|
7012
6920
|
super(...arguments);
|
|
6921
|
+
// memo
|
|
6922
|
+
this.buildPublicEvent = memoize((context, eventDef, eventInstance) => new EventImpl(context, eventDef, eventInstance));
|
|
7013
6923
|
this.handleEl = (el) => {
|
|
7014
6924
|
this.el = el;
|
|
7015
6925
|
if (el) {
|
|
@@ -7023,7 +6933,9 @@ class EventContainer extends BaseComponent {
|
|
|
7023
6933
|
const { eventRange } = props;
|
|
7024
6934
|
const { ui } = eventRange;
|
|
7025
6935
|
const renderProps = {
|
|
7026
|
-
|
|
6936
|
+
// make stable. everything else atomic
|
|
6937
|
+
// FYI, eventRange unfortunately gets reconstructed a lot, but def/instance is stable
|
|
6938
|
+
event: this.buildPublicEvent(context, eventRange.def, eventRange.instance),
|
|
7027
6939
|
view: context.viewApi,
|
|
7028
6940
|
timeText: props.timeText,
|
|
7029
6941
|
textColor: ui.textColor,
|
|
@@ -7042,7 +6954,7 @@ class EventContainer extends BaseComponent {
|
|
|
7042
6954
|
isDragging: Boolean(props.isDragging),
|
|
7043
6955
|
isResizing: Boolean(props.isResizing),
|
|
7044
6956
|
};
|
|
7045
|
-
return (createElement(ContentContainer,
|
|
6957
|
+
return (createElement(ContentContainer, { attrs: props.attrs, className: joinClassNames(props.className, ...getEventClassNames(renderProps), ...eventRange.ui.classNames), style: props.style, elRef: this.handleEl, renderProps: renderProps, generatorName: "eventContent", customGenerator: options.eventContent, defaultGenerator: props.defaultGenerator, tag: props.tag, classNameGenerator: options.eventClassNames, didMount: options.eventDidMount, willUnmount: options.eventWillUnmount }, props.children));
|
|
7046
6958
|
}
|
|
7047
6959
|
componentDidUpdate(prevProps) {
|
|
7048
6960
|
if (this.el && this.props.eventRange !== prevProps.eventRange) {
|
|
@@ -7146,6 +7058,7 @@ const WeekNumberContainer = (props) => (createElement(ViewContextType.Consumer,
|
|
|
7146
7058
|
}));
|
|
7147
7059
|
|
|
7148
7060
|
const PADDING_FROM_VIEWPORT = 10;
|
|
7061
|
+
const ROW_BORDER_WIDTH = 1;
|
|
7149
7062
|
class Popover extends BaseComponent {
|
|
7150
7063
|
constructor() {
|
|
7151
7064
|
super(...arguments);
|
|
@@ -7187,8 +7100,8 @@ class Popover extends BaseComponent {
|
|
|
7187
7100
|
return createPortal(createElement("div", Object.assign({}, props.attrs, { id: props.id, role: 'dialog', "aria-labelledby": this.titleId, className: joinClassNames(props.className, 'fc-popover', theme.getClassName('popover')), ref: this.handleRootEl }),
|
|
7188
7101
|
createElement("div", { tabIndex: 0, style: { outline: 'none' }, ref: this.focusStartRef }),
|
|
7189
7102
|
createElement("div", { className: 'fc-popover-header ' + theme.getClassName('popoverHeader') },
|
|
7190
|
-
createElement("
|
|
7191
|
-
createElement("
|
|
7103
|
+
createElement("div", { className: "fc-popover-title", id: this.titleId }, props.title),
|
|
7104
|
+
createElement("div", Object.assign({ role: 'button', "aria-label": options.closeHint, className: 'fc-popover-close ' + theme.getIconClass('close') }, createAriaClickAttrs(this.handleClose), { ref: this.closeRef }))),
|
|
7192
7105
|
createElement("div", { className: 'fc-popover-body ' + theme.getClassName('popoverContent') }, props.children),
|
|
7193
7106
|
createElement("div", { tabIndex: 0, style: { outline: 'none' }, ref: this.focusEndRef })), props.parentEl);
|
|
7194
7107
|
}
|
|
@@ -7215,7 +7128,8 @@ class Popover extends BaseComponent {
|
|
|
7215
7128
|
let popoverDims = rootEl.getBoundingClientRect();
|
|
7216
7129
|
// position relative to viewport
|
|
7217
7130
|
let popoverTop = alignParentTop
|
|
7218
|
-
|
|
7131
|
+
// HACK: subtract 1 for DayGrid, which has borders on row-bottom. Only view that uses alignParentTop
|
|
7132
|
+
? alignEl.closest(alignParentTop).getBoundingClientRect().top - ROW_BORDER_WIDTH
|
|
7219
7133
|
: alignmentRect.top;
|
|
7220
7134
|
let popoverLeft = isRtl ? alignmentRect.right - popoverDims.width : alignmentRect.left;
|
|
7221
7135
|
// constrain
|
|
@@ -7269,7 +7183,7 @@ class MorePopover extends DateComponent {
|
|
|
7269
7183
|
start: props.startDate,
|
|
7270
7184
|
end: props.endDate,
|
|
7271
7185
|
} }, props.dateSpanProps),
|
|
7272
|
-
|
|
7186
|
+
getDayEl: () => rootEl,
|
|
7273
7187
|
rect: {
|
|
7274
7188
|
left: 0,
|
|
7275
7189
|
top: 0,
|
|
@@ -7298,21 +7212,22 @@ class MoreLinkContainer extends BaseComponent {
|
|
|
7298
7212
|
};
|
|
7299
7213
|
this.handleClick = (ev) => {
|
|
7300
7214
|
let { props, context } = this;
|
|
7301
|
-
let {
|
|
7215
|
+
let { dateEnv, options } = context;
|
|
7216
|
+
let { moreLinkClick } = options;
|
|
7302
7217
|
let date = computeRange(props).start;
|
|
7303
7218
|
function buildPublicSeg(seg) {
|
|
7304
7219
|
let { def, instance, range } = seg.eventRange;
|
|
7305
7220
|
return {
|
|
7306
7221
|
event: new EventImpl(context, def, instance),
|
|
7307
|
-
start:
|
|
7308
|
-
end:
|
|
7222
|
+
start: dateEnv.toDate(range.start),
|
|
7223
|
+
end: dateEnv.toDate(range.end),
|
|
7309
7224
|
isStart: seg.isStart,
|
|
7310
7225
|
isEnd: seg.isEnd,
|
|
7311
7226
|
};
|
|
7312
7227
|
}
|
|
7313
7228
|
if (typeof moreLinkClick === 'function') {
|
|
7314
7229
|
moreLinkClick = moreLinkClick({
|
|
7315
|
-
date,
|
|
7230
|
+
date: dateEnv.toDate(date),
|
|
7316
7231
|
allDay: Boolean(props.allDayDate),
|
|
7317
7232
|
allSegs: props.segs.map(buildPublicSeg),
|
|
7318
7233
|
hiddenSegs: props.hiddenSegs.map(buildPublicSeg),
|
|
@@ -7430,7 +7345,7 @@ class CustomRenderingStore extends Store {
|
|
|
7430
7345
|
}
|
|
7431
7346
|
}
|
|
7432
7347
|
|
|
7433
|
-
class
|
|
7348
|
+
class FooterScrollbar extends BaseComponent {
|
|
7434
7349
|
constructor() {
|
|
7435
7350
|
super(...arguments);
|
|
7436
7351
|
this.rootElRef = createRef();
|
|
@@ -7441,7 +7356,7 @@ class StickyFooterScrollbar extends BaseComponent {
|
|
|
7441
7356
|
// the outer dimensions change, but the inner dimensions do not. The Scroller's
|
|
7442
7357
|
// dimension-watching, when used in ponyfill-mode, can't fire on border-box change, so we
|
|
7443
7358
|
// workaround it by monitoring dimensions of a wrapper instead
|
|
7444
|
-
return (createElement("div", { ref: this.rootElRef, className: 'fc-
|
|
7359
|
+
return (createElement("div", { ref: this.rootElRef, className: joinClassNames('fc-footer-scrollbar', props.isSticky && 'fc-footer-scrollbar-sticky') },
|
|
7445
7360
|
createElement(Scroller, { horizontal: true, ref: props.scrollerRef },
|
|
7446
7361
|
createElement("div", { style: { minWidth: props.canvasWidth } }))));
|
|
7447
7362
|
}
|
|
@@ -7456,4 +7371,4 @@ class StickyFooterScrollbar extends BaseComponent {
|
|
|
7456
7371
|
}
|
|
7457
7372
|
}
|
|
7458
7373
|
|
|
7459
|
-
export { EventImpl as $, memoizeObjArg as A, BaseComponent as B, ContentContainer as C, DelayedRunner as D, isPropsEqual as E, Emitter as F, getInitialDate as G, rangeContainsMarker as H, createEmptyEventStore as I, reduceCurrentDate as J, reduceEventStore as K, rezoneEventStoreDates as L, mergeRawOptions as M, BASE_OPTION_REFINERS as N, CALENDAR_LISTENER_REFINERS as O, CALENDAR_OPTION_REFINERS as P, COMPLEX_OPTION_COMPARATORS as Q, VIEW_OPTION_REFINERS as R, DateEnv as S, Theme as T, DateProfileGenerator as U, ViewContextType as V, createEventUi as W, parseBusinessHours as X, joinClassNames as Y, Interaction as Z, getElEventRange as _, mapHash as a,
|
|
7374
|
+
export { EventImpl as $, memoizeObjArg as A, BaseComponent as B, ContentContainer as C, DelayedRunner as D, isPropsEqual as E, Emitter as F, getInitialDate as G, rangeContainsMarker as H, createEmptyEventStore as I, reduceCurrentDate as J, reduceEventStore as K, rezoneEventStoreDates as L, mergeRawOptions as M, BASE_OPTION_REFINERS as N, CALENDAR_LISTENER_REFINERS as O, CALENDAR_OPTION_REFINERS as P, COMPLEX_OPTION_COMPARATORS as Q, VIEW_OPTION_REFINERS as R, DateEnv as S, Theme as T, DateProfileGenerator as U, ViewContextType as V, createEventUi as W, parseBusinessHours as X, joinClassNames as Y, Interaction as Z, getElEventRange as _, mapHash as a, afterSize as a$, listenBySelector as a0, listenToHoverBySelector as a1, PureComponent as a2, buildViewContext as a3, getUniqueDomId as a4, parseInteractionSettings as a5, interactionSettingsStore as a6, getNow as a7, getIsHeightAuto as a8, CalendarImpl as a9, computeVisibleDayRange as aA, diffDates as aB, removeExact as aC, intersectRects as aD, pointInsideRect as aE, constrainPoint as aF, getRectCenter as aG, diffPoints as aH, translateRect as aI, compareObjs as aJ, collectFromHash as aK, applyStyle as aL, getEventTargetViaRoot as aM, parseClassNames as aN, fracToCssDim as aO, mergeEventStores as aP, getRelevantEvents as aQ, eventTupleToStore as aR, combineEventUis as aS, Splitter as aT, getDayClassName as aU, getDateMeta as aV, getSlotClassName as aW, isDimsEqual as aX, watchSize as aY, watchWidth as aZ, watchHeight as a_, flushSync as aa, CalendarRoot as ab, RenderId as ac, ensureElHasStyles as ad, applyStyleProp as ae, sliceEventStore as af, JsonRequestError as ag, flushUpdates as ah, createContext as ai, preactOptions as aj, refineProps as ak, createEventInstance as al, parseEventDef as am, refineEventDef as an, padStart as ao, isInt as ap, parseFieldSpecs as aq, compareByFieldSpecs as ar, flexibleCompare as as, preventSelection as at, allowSelection as au, preventContextMenu as av, allowContextMenu as aw, compareNumbers as ax, enableCursor as ay, disableCursor as az, buildViewClassName as b, getStickyHeaderDates as b$, buildNavLinkAttrs as b0, buildDateStr as b1, preventDefault as b2, whenTransitionDone as b3, computeInnerRect as b4, computeEdges as b5, getClippingParents as b6, computeRect as b7, rangesEqual as b8, rangesIntersect as b9, parse as bA, SegHierarchy as bB, groupIntersectingSegs as bC, binarySearch as bD, interactionSettingsToStore as bE, ElementDragging as bF, config as bG, parseDragMeta as bH, DaySeriesModel as bI, hasBgRendering as bJ, buildEventRangeTimeText as bK, sortEventSegs as bL, getEventRangeMeta as bM, buildEventRangeKey as bN, getEventTagAndAttrs as bO, getEventKey as bP, DayTableModel as bQ, Scroller as bR, getNormalizedScrollX as bS, setNormalizedScrollX as bT, Slicer as bU, applyMutationToEventStore as bV, isPropsValid as bW, isInteractionValid as bX, isDateSelectionValid as bY, setRef as bZ, getStickyFooterScrollbar as b_, rangeContainsRange as ba, PositionCache as bb, ScrollController as bc, ElementScrollController as bd, WindowScrollController as be, DateComponent as bf, isDateSpansEqual as bg, addMs as bh, addWeeks as bi, diffWeeks as bj, diffWholeWeeks as bk, diffDayAndTime as bl, diffDays as bm, isValidDate as bn, asCleanDays as bo, multiplyDuration as bp, addDurations as bq, asRoughMinutes as br, asRoughSeconds as bs, asRoughMs as bt, wholeDivideDurations as bu, formatIsoTimeString as bv, formatDayString as bw, buildIsoString as bx, formatIsoMonthStr as by, NamedTimeZoneImpl as bz, greatestDurationDenominator as c, getScrollerSyncerClass as c0, Ruler as c1, RefMap as c2, NowTimer as c3, StandardEvent as c4, NowIndicatorContainer as c5, DayCellContainer as c6, hasCustomDayCellContent as c7, EventContainer as c8, renderFill as c9, BgEvent as ca, WeekNumberContainer as cb, MoreLinkContainer as cc, ViewContainer as cd, triggerDateSelect as ce, getDefaultEventEnd as cf, injectStyles as cg, buildElAttrs as ch, renderText as ci, CustomRenderingStore as cj, computeEarliestStart as ck, computeLatestEnd as cl, getCoordRangeEnd as cm, FooterScrollbar as cn, createDuration as d, BASE_OPTION_DEFAULTS as e, arrayToHash as f, guid$1 as g, filterHash as h, isArraysEqual as i, buildEventSourceRefiners as j, formatWithOrdinals as k, buildRangeApiWithTimeZone as l, mergeProps as m, identity as n, intersectRanges as o, parseEventSource as p, startOfDay as q, requestJson as r, subtractDurations as s, addDays as t, unpromisify as u, hashValuesToArray as v, buildEventApis as w, createFormatter as x, diffWholeDays as y, memoize as z };
|