@fullcalendar/core 7.0.0-beta.3 → 7.0.0-beta.4
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 +54 -45
- package/index.global.js +205 -151
- package/index.global.min.js +2 -2
- package/index.js +56 -47
- package/internal-common.cjs +5151 -5106
- package/internal-common.d.ts +128 -85
- package/internal-common.js +5150 -5106
- package/internal.cjs +2 -1
- 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.cjs +1 -2
- package/locales/de-at.global.js +2 -3
- package/locales/de-at.global.min.js +2 -2
- package/locales/de-at.js +1 -2
- package/locales/de.cjs +1 -2
- package/locales/de.global.js +2 -3
- package/locales/de.global.min.js +2 -2
- package/locales/de.js +1 -2
- 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.cjs +1 -2
- package/locales/es.global.js +2 -3
- package/locales/es.global.min.js +2 -2
- package/locales/es.js +1 -2
- 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.cjs +1 -2
- package/locales/gl.global.js +2 -3
- package/locales/gl.global.min.js +2 -2
- package/locales/gl.js +1 -2
- 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.cjs +1 -2
- package/locales/pt-br.global.js +2 -3
- package/locales/pt-br.global.min.js +2 -2
- package/locales/pt-br.js +1 -2
- 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.cjs +1 -2
- package/locales/sv.global.js +2 -3
- package/locales/sv.global.min.js +2 -2
- package/locales/sv.js +1 -2
- 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 +7 -13
- package/locales-all.global.min.js +2 -2
- package/package.json +1 -1
- package/preact.js +1 -1
package/index.global.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
FullCalendar Core v7.0.0-beta.
|
|
2
|
+
FullCalendar Core v7.0.0-beta.4
|
|
3
3
|
Docs & License: https://fullcalendar.io
|
|
4
4
|
(c) 2024 Adam Shaw
|
|
5
5
|
*/
|
|
@@ -86,7 +86,7 @@ var FullCalendar = (function (exports) {
|
|
|
86
86
|
registerStylesRoot(document);
|
|
87
87
|
}
|
|
88
88
|
|
|
89
|
-
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 a[data-navlink]{cursor:pointer}.fc a[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;display:flex;flex-direction:row;gap:.75em;justify-content:space-between}.fc-direction-rtl .fc-toolbar-ltr{flex-direction:row-reverse}.fc-toolbar-section{display:flex;flex-direction:row;flex-shrink:0;gap:.75em}.fc-toolbar-title{font-size:1.75em;margin:0;white-space:nowrap}";
|
|
89
|
+
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}";
|
|
90
90
|
injectStyles(css_248z);
|
|
91
91
|
|
|
92
92
|
// Stops a mouse/touch event from doing it's native browser action
|
|
@@ -1417,6 +1417,7 @@ var FullCalendar = (function (exports) {
|
|
|
1417
1417
|
allDayContent: identity,
|
|
1418
1418
|
allDayDidMount: identity,
|
|
1419
1419
|
allDayWillUnmount: identity,
|
|
1420
|
+
timedText: String,
|
|
1420
1421
|
slotMinWidth: Number,
|
|
1421
1422
|
navLinks: Boolean,
|
|
1422
1423
|
eventTimeFormat: createFormatter,
|
|
@@ -1447,10 +1448,11 @@ var FullCalendar = (function (exports) {
|
|
|
1447
1448
|
// only used by list-view, but languages define the value, so we need it in base options
|
|
1448
1449
|
noEventsText: String,
|
|
1449
1450
|
viewHint: identity,
|
|
1451
|
+
viewChangeHint: String,
|
|
1450
1452
|
navLinkHint: identity,
|
|
1451
1453
|
closeHint: String,
|
|
1452
|
-
|
|
1453
|
-
|
|
1454
|
+
eventsHint: String,
|
|
1455
|
+
headingLevel: Number,
|
|
1454
1456
|
moreLinkClick: identity,
|
|
1455
1457
|
moreLinkClassNames: identity,
|
|
1456
1458
|
moreLinkContent: identity,
|
|
@@ -1515,6 +1517,7 @@ var FullCalendar = (function (exports) {
|
|
|
1515
1517
|
eventMinWidth: 30,
|
|
1516
1518
|
eventShortHeight: 30,
|
|
1517
1519
|
monthStartFormat: { month: 'long', day: 'numeric' },
|
|
1520
|
+
headingLevel: 2, // like H2
|
|
1518
1521
|
};
|
|
1519
1522
|
// calendar listeners
|
|
1520
1523
|
// ------------------
|
|
@@ -2392,14 +2395,14 @@ var FullCalendar = (function (exports) {
|
|
|
2392
2395
|
};
|
|
2393
2396
|
}
|
|
2394
2397
|
function getDayClassName(meta) {
|
|
2395
|
-
return joinClassNames('fc-day',
|
|
2398
|
+
return joinClassNames('fc-day', meta.isDisabled
|
|
2396
2399
|
? 'fc-day-disabled'
|
|
2397
|
-
: joinClassNames(meta.isToday && 'fc-day-today', meta.isPast && 'fc-day-past', meta.isFuture && 'fc-day-future', meta.isOther && 'fc-day-other'));
|
|
2400
|
+
: joinClassNames(`fc-day-${DAY_IDS[meta.dow]}`, meta.isToday && 'fc-day-today', meta.isPast && 'fc-day-past', meta.isFuture && 'fc-day-future', meta.isOther && 'fc-day-other'));
|
|
2398
2401
|
}
|
|
2399
2402
|
function getSlotClassName(meta) {
|
|
2400
|
-
return joinClassNames('fc-slot',
|
|
2403
|
+
return joinClassNames('fc-slot', meta.isDisabled
|
|
2401
2404
|
? 'fc-slot-disabled'
|
|
2402
|
-
: joinClassNames(meta.isToday && 'fc-slot-today', meta.isPast && 'fc-slot-past', meta.isFuture && 'fc-slot-future'));
|
|
2405
|
+
: joinClassNames(`fc-slot-${DAY_IDS[meta.dow]}`, meta.isToday && 'fc-slot-today', meta.isPast && 'fc-slot-past', meta.isFuture && 'fc-slot-future'));
|
|
2403
2406
|
}
|
|
2404
2407
|
|
|
2405
2408
|
function isDimsEqual(v0, v1) {
|
|
@@ -2777,29 +2780,32 @@ var FullCalendar = (function (exports) {
|
|
|
2777
2780
|
|
|
2778
2781
|
const DAY_FORMAT = createFormatter({ year: 'numeric', month: 'long', day: 'numeric' });
|
|
2779
2782
|
const WEEK_FORMAT = createFormatter({ week: 'long' });
|
|
2780
|
-
function
|
|
2783
|
+
function buildDateStr(context, dateMarker, viewType = 'day') {
|
|
2784
|
+
return context.dateEnv.format(dateMarker, viewType === 'week' ? WEEK_FORMAT : DAY_FORMAT);
|
|
2785
|
+
}
|
|
2786
|
+
/*
|
|
2787
|
+
Assumes navLinks enabled
|
|
2788
|
+
Always hidden to screen readers. Do not point aria-labelledby at this. Use aria-label instead.
|
|
2789
|
+
*/
|
|
2790
|
+
function buildNavLinkAttrs(context, dateMarker, viewType = 'day', dateStr = buildDateStr(context, dateMarker, viewType), isTabbable = true) {
|
|
2781
2791
|
const { dateEnv, options, calendarApi } = context;
|
|
2782
|
-
|
|
2783
|
-
|
|
2784
|
-
let
|
|
2785
|
-
|
|
2786
|
-
|
|
2787
|
-
|
|
2788
|
-
|
|
2789
|
-
|
|
2790
|
-
|
|
2791
|
-
|
|
2792
|
-
if (typeof customAction === 'string') {
|
|
2793
|
-
viewType = customAction;
|
|
2794
|
-
}
|
|
2795
|
-
calendarApi.zoomTo(dateMarker, viewType);
|
|
2792
|
+
const zonedDate = dateEnv.toDate(dateMarker);
|
|
2793
|
+
const handleInteraction = (ev) => {
|
|
2794
|
+
let customAction = viewType === 'day' ? options.navLinkDayClick :
|
|
2795
|
+
viewType === 'week' ? options.navLinkWeekClick : null;
|
|
2796
|
+
if (typeof customAction === 'function') {
|
|
2797
|
+
customAction.call(calendarApi, dateEnv.toDate(dateMarker), ev);
|
|
2798
|
+
}
|
|
2799
|
+
else {
|
|
2800
|
+
if (typeof customAction === 'string') {
|
|
2801
|
+
viewType = customAction;
|
|
2796
2802
|
}
|
|
2797
|
-
|
|
2798
|
-
|
|
2799
|
-
|
|
2800
|
-
|
|
2801
|
-
|
|
2802
|
-
|
|
2803
|
+
calendarApi.zoomTo(dateMarker, viewType);
|
|
2804
|
+
}
|
|
2805
|
+
};
|
|
2806
|
+
return Object.assign({ 'role': 'link', 'aria-label': formatWithOrdinals(options.navLinkHint, [dateStr, zonedDate], dateStr), 'data-navlink': '' }, (isTabbable
|
|
2807
|
+
? createAriaClickAttrs(handleInteraction)
|
|
2808
|
+
: { onClick: handleInteraction }));
|
|
2803
2809
|
}
|
|
2804
2810
|
|
|
2805
2811
|
let _isRtlScrollbarOnLeft = null;
|
|
@@ -3346,7 +3352,7 @@ var FullCalendar = (function (exports) {
|
|
|
3346
3352
|
isValidDateDownEl(el) {
|
|
3347
3353
|
return !el.closest('.fc-event:not(.fc-bg-event)') &&
|
|
3348
3354
|
!el.closest('.fc-more-link') && // a "more.." link
|
|
3349
|
-
!el.closest('
|
|
3355
|
+
!el.closest('[data-navlink]') && // a clickable nav link
|
|
3350
3356
|
!el.closest('.fc-popover'); // hack
|
|
3351
3357
|
}
|
|
3352
3358
|
}
|
|
@@ -4427,11 +4433,11 @@ var FullCalendar = (function (exports) {
|
|
|
4427
4433
|
: `${eventRange.def.defId}:${eventRange.range.start.toISOString()}`;
|
|
4428
4434
|
// inverse-background events don't have specific instances. TODO: better solution
|
|
4429
4435
|
}
|
|
4430
|
-
function
|
|
4436
|
+
function getEventTagAndAttrs(eventRange, context) {
|
|
4431
4437
|
let { def, instance } = eventRange;
|
|
4432
4438
|
let { url } = def;
|
|
4433
4439
|
if (url) {
|
|
4434
|
-
return { href: url };
|
|
4440
|
+
return ['a', { href: url }];
|
|
4435
4441
|
}
|
|
4436
4442
|
let { emitter, options } = context;
|
|
4437
4443
|
let { eventInteractive } = options;
|
|
@@ -4441,10 +4447,11 @@ var FullCalendar = (function (exports) {
|
|
|
4441
4447
|
eventInteractive = Boolean(emitter.hasHandlers('eventClick'));
|
|
4442
4448
|
}
|
|
4443
4449
|
}
|
|
4450
|
+
let attrs;
|
|
4444
4451
|
// mock what happens in EventClicking
|
|
4445
4452
|
if (eventInteractive) {
|
|
4446
4453
|
// only attach keyboard-related handlers because click handler is already done in EventClicking
|
|
4447
|
-
|
|
4454
|
+
attrs = createAriaKeyboardAttrs((ev) => {
|
|
4448
4455
|
emitter.trigger('eventClick', {
|
|
4449
4456
|
el: ev.target,
|
|
4450
4457
|
event: new EventImpl(context, def, instance),
|
|
@@ -4452,7 +4459,9 @@ var FullCalendar = (function (exports) {
|
|
|
4452
4459
|
view: context.viewApi,
|
|
4453
4460
|
});
|
|
4454
4461
|
});
|
|
4462
|
+
attrs = Object.assign({ role: 'button' }, attrs);
|
|
4455
4463
|
}
|
|
4464
|
+
return ['div', attrs];
|
|
4456
4465
|
}
|
|
4457
4466
|
|
|
4458
4467
|
const STANDARD_PROPS = {
|
|
@@ -5522,12 +5531,11 @@ var FullCalendar = (function (exports) {
|
|
|
5522
5531
|
}
|
|
5523
5532
|
}
|
|
5524
5533
|
|
|
5525
|
-
const WHEEL_EVENT_NAMES = 'wheel mousewheel DomMouseScroll MozMousePixelScroll'.split(' ');
|
|
5526
5534
|
/*
|
|
5527
5535
|
Fires:
|
|
5528
|
-
- scrollStart (
|
|
5529
|
-
- scroll
|
|
5530
|
-
- scrollEnd (
|
|
5536
|
+
- scrollStart: (isUser) => void
|
|
5537
|
+
- scroll: (isUser) => void
|
|
5538
|
+
- scrollEnd: (isUser) => void
|
|
5531
5539
|
|
|
5532
5540
|
NOTE: detection is complicated (w/ touch and wheel) because ScrollerSyncer needs to know about it,
|
|
5533
5541
|
but are we sure we can't just ignore programmatic scrollTo() calls with a flag? and determine the
|
|
@@ -5537,81 +5545,107 @@ var FullCalendar = (function (exports) {
|
|
|
5537
5545
|
constructor(el) {
|
|
5538
5546
|
this.el = el;
|
|
5539
5547
|
this.emitter = new Emitter();
|
|
5540
|
-
this.
|
|
5541
|
-
this.
|
|
5542
|
-
this.
|
|
5543
|
-
this.
|
|
5544
|
-
this.
|
|
5545
|
-
|
|
5548
|
+
this.isScroll = false;
|
|
5549
|
+
this.isScrollRecent = false;
|
|
5550
|
+
this.isWheelRecent = false;
|
|
5551
|
+
this.isMouseDown = false; // user currently has mouse down?
|
|
5552
|
+
this.isTouchDown = false; // user currently has finger down?
|
|
5553
|
+
// accumulated during scroll
|
|
5554
|
+
this.isMouse = false;
|
|
5555
|
+
this.isTouch = false;
|
|
5556
|
+
this.isWheel = false;
|
|
5546
5557
|
// Handlers
|
|
5547
5558
|
// ----------------------------------------------------------------------------------------------
|
|
5548
5559
|
this.handleScroll = () => {
|
|
5549
5560
|
this.startScroll();
|
|
5550
|
-
this.emitter.trigger('scroll', this.
|
|
5551
|
-
this.
|
|
5561
|
+
this.emitter.trigger('scroll', this.getIsUser());
|
|
5562
|
+
this.isScrollRecent = true;
|
|
5563
|
+
if (this.isMouseDown) {
|
|
5564
|
+
this.isMouse = true;
|
|
5565
|
+
}
|
|
5566
|
+
if (this.isTouchDown) {
|
|
5567
|
+
this.isTouch = true;
|
|
5568
|
+
}
|
|
5569
|
+
if (this.isWheelRecent) {
|
|
5570
|
+
this.isWheel = true;
|
|
5571
|
+
}
|
|
5552
5572
|
this.scrollWaiter.request(500);
|
|
5553
5573
|
};
|
|
5554
|
-
|
|
5574
|
+
this.handleScrollWait = () => {
|
|
5575
|
+
this.isScrollRecent = false;
|
|
5576
|
+
// only end the scroll if not currently touching.
|
|
5577
|
+
// if touching, the scrolling will end later, on touchend.
|
|
5578
|
+
if (!this.isTouchDown) {
|
|
5579
|
+
this.endScroll();
|
|
5580
|
+
}
|
|
5581
|
+
};
|
|
5582
|
+
// will fire *before* the scroll event is fired (might not cause a scroll!)
|
|
5555
5583
|
this.handleWheel = () => {
|
|
5556
|
-
this.
|
|
5584
|
+
this.isWheelRecent = true;
|
|
5557
5585
|
this.wheelWaiter.request(500);
|
|
5558
5586
|
};
|
|
5559
|
-
|
|
5587
|
+
this.handleWheelWait = () => {
|
|
5588
|
+
this.isWheelRecent = false;
|
|
5589
|
+
};
|
|
5590
|
+
this.handleMouseDown = () => {
|
|
5591
|
+
this.isMouseDown = true;
|
|
5592
|
+
};
|
|
5593
|
+
this.handleMouseUp = () => {
|
|
5594
|
+
this.isMouseDown = false;
|
|
5595
|
+
};
|
|
5596
|
+
// will fire *before* the scroll event is fired (might not cause a scroll!)
|
|
5560
5597
|
this.handleTouchStart = () => {
|
|
5561
|
-
this.
|
|
5598
|
+
this.isTouchDown = true;
|
|
5562
5599
|
};
|
|
5563
5600
|
this.handleTouchEnd = () => {
|
|
5564
|
-
this.
|
|
5601
|
+
this.isTouchDown = false;
|
|
5565
5602
|
// if the user ended their touch, and the scroll area wasn't moving,
|
|
5566
|
-
// we consider this to be the end of the scroll
|
|
5567
|
-
|
|
5568
|
-
|
|
5603
|
+
// we consider this to be the end of the scroll
|
|
5604
|
+
// otherwise, wait for inertia to finish and handleScrollWait to fire
|
|
5605
|
+
if (!this.isScrollRecent) {
|
|
5606
|
+
this.endScroll();
|
|
5569
5607
|
}
|
|
5570
5608
|
};
|
|
5609
|
+
this.wheelWaiter = new DelayedRunner(this.handleWheelWait);
|
|
5610
|
+
this.scrollWaiter = new DelayedRunner(this.handleScrollWait);
|
|
5571
5611
|
el.addEventListener('scroll', this.handleScroll);
|
|
5612
|
+
el.addEventListener('wheel', this.handleWheel, { passive: true });
|
|
5613
|
+
el.addEventListener('mousedown', this.handleMouseDown);
|
|
5614
|
+
el.addEventListener('mouseup', this.handleMouseUp);
|
|
5572
5615
|
el.addEventListener('touchstart', this.handleTouchStart, { passive: true });
|
|
5573
5616
|
el.addEventListener('touchend', this.handleTouchEnd);
|
|
5574
|
-
for (let eventName of WHEEL_EVENT_NAMES) {
|
|
5575
|
-
el.addEventListener(eventName, this.handleWheel, { passive: true });
|
|
5576
|
-
}
|
|
5577
5617
|
}
|
|
5578
5618
|
destroy() {
|
|
5579
5619
|
let { el } = this;
|
|
5580
5620
|
el.removeEventListener('scroll', this.handleScroll);
|
|
5621
|
+
el.removeEventListener('wheel', this.handleWheel, { passive: true });
|
|
5622
|
+
el.removeEventListener('mousedown', this.handleMouseDown);
|
|
5623
|
+
el.removeEventListener('mouseup', this.handleMouseUp);
|
|
5581
5624
|
el.removeEventListener('touchstart', this.handleTouchStart, { passive: true });
|
|
5582
5625
|
el.removeEventListener('touchend', this.handleTouchEnd);
|
|
5583
|
-
for (let eventName of WHEEL_EVENT_NAMES) {
|
|
5584
|
-
el.removeEventListener(eventName, this.handleWheel, { passive: true });
|
|
5585
|
-
}
|
|
5586
5626
|
}
|
|
5587
5627
|
// Start / Stop
|
|
5588
5628
|
// ----------------------------------------------------------------------------------------------
|
|
5589
5629
|
startScroll() {
|
|
5590
|
-
if (!this.
|
|
5591
|
-
this.
|
|
5592
|
-
this.emitter.trigger('scrollStart', this.
|
|
5630
|
+
if (!this.isScroll) {
|
|
5631
|
+
this.isScroll = true;
|
|
5632
|
+
this.emitter.trigger('scrollStart', this.getIsUser());
|
|
5593
5633
|
}
|
|
5594
5634
|
}
|
|
5595
5635
|
endScroll() {
|
|
5596
|
-
if (this.
|
|
5597
|
-
this.
|
|
5598
|
-
this.
|
|
5599
|
-
this.
|
|
5600
|
-
this.
|
|
5601
|
-
this.
|
|
5602
|
-
this.
|
|
5603
|
-
|
|
5604
|
-
|
|
5605
|
-
_handleScrollWaited() {
|
|
5606
|
-
this.isRecentlyScrolled = false;
|
|
5607
|
-
// only end the scroll if not currently touching.
|
|
5608
|
-
// if touching, the scrolling will end later, on touchend.
|
|
5609
|
-
if (!this.isTouching) {
|
|
5610
|
-
this.endScroll(); // won't fire if already ended
|
|
5636
|
+
if (this.isScroll) { // extra protection because might be called publicly
|
|
5637
|
+
this.scrollWaiter.clear(); // (same)
|
|
5638
|
+
this.wheelWaiter.clear(); // (same)
|
|
5639
|
+
this.isScroll = false;
|
|
5640
|
+
this.isWheelRecent = false;
|
|
5641
|
+
this.emitter.trigger('scrollEnd', this.getIsUser());
|
|
5642
|
+
this.isMouse = false;
|
|
5643
|
+
this.isTouch = false;
|
|
5644
|
+
this.isWheel = false;
|
|
5611
5645
|
}
|
|
5612
5646
|
}
|
|
5613
|
-
|
|
5614
|
-
this.
|
|
5647
|
+
getIsUser() {
|
|
5648
|
+
return this.isWheel || this.isMouse || this.isTouch;
|
|
5615
5649
|
}
|
|
5616
5650
|
}
|
|
5617
5651
|
|
|
@@ -6603,11 +6637,11 @@ var FullCalendar = (function (exports) {
|
|
|
6603
6637
|
const timeFormat = options.eventTimeFormat || props.defaultTimeFormat;
|
|
6604
6638
|
const timeText = buildEventRangeTimeText(timeFormat, eventRange, // just for def/instance
|
|
6605
6639
|
props.slicedStart, props.slicedEnd, props.isStart, props.isEnd, context, props.defaultDisplayEventTime, props.defaultDisplayEventEnd);
|
|
6606
|
-
const
|
|
6607
|
-
return (_(EventContainer, Object.assign({}, props /* includes elRef */, { tag:
|
|
6640
|
+
const [tag, attrs] = getEventTagAndAttrs(eventRange, context);
|
|
6641
|
+
return (_(EventContainer, Object.assign({}, props /* includes elRef */, { tag: tag, style: {
|
|
6608
6642
|
borderColor: eventRange.ui.borderColor,
|
|
6609
6643
|
backgroundColor: eventRange.ui.backgroundColor,
|
|
6610
|
-
}, attrs:
|
|
6644
|
+
}, attrs: attrs, defaultGenerator: renderInnerContent$1, timeText: timeText }), (InnerContent, eventContentArg) => (_(k$1, null,
|
|
6611
6645
|
_(InnerContent, { tag: "div", className: 'fc-event-inner', style: { color: eventContentArg.textColor } }),
|
|
6612
6646
|
Boolean(eventContentArg.isStartResizable) && (_("div", { className: "fc-event-resizer fc-event-resizer-start" })),
|
|
6613
6647
|
Boolean(eventContentArg.isEndResizable) && (_("div", { className: "fc-event-resizer fc-event-resizer-end" }))))));
|
|
@@ -6641,8 +6675,7 @@ var FullCalendar = (function (exports) {
|
|
|
6641
6675
|
let { options } = context;
|
|
6642
6676
|
let renderProps = this.refineRenderProps({
|
|
6643
6677
|
date: props.date,
|
|
6644
|
-
|
|
6645
|
-
todayRange: props.todayRange,
|
|
6678
|
+
dateMeta: props.dateMeta,
|
|
6646
6679
|
isMonthStart: props.isMonthStart || false,
|
|
6647
6680
|
showDayNumber: props.showDayNumber,
|
|
6648
6681
|
renderProps: props.renderProps,
|
|
@@ -6650,20 +6683,16 @@ var FullCalendar = (function (exports) {
|
|
|
6650
6683
|
dateEnv: context.dateEnv,
|
|
6651
6684
|
monthStartFormat: options.monthStartFormat,
|
|
6652
6685
|
});
|
|
6653
|
-
return (_(ContentContainer, Object.assign({}, props /* includes children */, { className: joinClassNames(props.className, getDayClassName(renderProps)), attrs: Object.assign(Object.assign({}, props.attrs),
|
|
6654
|
-
// don't use custom classNames if disabled
|
|
6655
|
-
// TODO: make DRY with DayGridHeaderCell
|
|
6656
|
-
renderProps.isDisabled ? undefined : options.dayCellClassNames, didMount: options.dayCellDidMount, willUnmount: options.dayCellWillUnmount })));
|
|
6686
|
+
return (_(ContentContainer, Object.assign({}, props /* includes children */, { className: joinClassNames(props.className, getDayClassName(renderProps)), attrs: Object.assign(Object.assign(Object.assign({}, props.attrs), { 'data-date': formatDayString(props.date) }), (renderProps.isToday ? { 'aria-current': 'date' } : {})), renderProps: renderProps, generatorName: "dayCellContent", customGenerator: options.dayCellContent, defaultGenerator: props.defaultGenerator, classNameGenerator: options.dayCellClassNames, didMount: options.dayCellDidMount, willUnmount: options.dayCellWillUnmount })));
|
|
6657
6687
|
}
|
|
6658
6688
|
}
|
|
6659
6689
|
function hasCustomDayCellContent(options) {
|
|
6660
6690
|
return Boolean(options.dayCellContent || hasCustomRenderingHandler('dayCellContent', options));
|
|
6661
6691
|
}
|
|
6662
6692
|
function refineRenderProps(raw) {
|
|
6663
|
-
let { date, dateEnv,
|
|
6664
|
-
let dayMeta = getDateMeta(date, raw.todayRange, null, dateProfile);
|
|
6693
|
+
let { date, dateEnv, isMonthStart } = raw;
|
|
6665
6694
|
let dayNumberText = raw.showDayNumber ? (dateEnv.format(date, isMonthStart ? raw.monthStartFormat : DAY_NUM_FORMAT)) : '';
|
|
6666
|
-
return Object.assign(Object.assign(Object.assign({ date: dateEnv.toDate(date), view: raw.viewApi },
|
|
6695
|
+
return Object.assign(Object.assign(Object.assign({ date: dateEnv.toDate(date), view: raw.viewApi }, raw.dateMeta), { isMonthStart,
|
|
6667
6696
|
dayNumberText }), raw.renderProps);
|
|
6668
6697
|
}
|
|
6669
6698
|
|
|
@@ -6697,9 +6726,10 @@ var FullCalendar = (function (exports) {
|
|
|
6697
6726
|
class Popover extends BaseComponent {
|
|
6698
6727
|
constructor() {
|
|
6699
6728
|
super(...arguments);
|
|
6700
|
-
this.
|
|
6701
|
-
|
|
6702
|
-
|
|
6729
|
+
this.closeRef = m$1();
|
|
6730
|
+
this.focusStartRef = m$1();
|
|
6731
|
+
this.focusEndRef = m$1();
|
|
6732
|
+
this.titleId = getUniqueDomId();
|
|
6703
6733
|
this.handleRootEl = (el) => {
|
|
6704
6734
|
this.rootEl = el;
|
|
6705
6735
|
if (this.props.elRef) {
|
|
@@ -6711,15 +6741,17 @@ var FullCalendar = (function (exports) {
|
|
|
6711
6741
|
// only hide the popover if the click happened outside the popover
|
|
6712
6742
|
const target = getEventTargetViaRoot(ev);
|
|
6713
6743
|
if (!this.rootEl.contains(target)) {
|
|
6714
|
-
this.
|
|
6744
|
+
this.handleClose();
|
|
6715
6745
|
}
|
|
6716
6746
|
};
|
|
6717
6747
|
this.handleDocumentKeyDown = (ev) => {
|
|
6718
6748
|
if (ev.key === 'Escape') {
|
|
6719
|
-
this.
|
|
6749
|
+
this.handleClose();
|
|
6720
6750
|
}
|
|
6721
6751
|
};
|
|
6722
|
-
|
|
6752
|
+
// for many different close techniques
|
|
6753
|
+
// cannot accept params because might receive a browser Event
|
|
6754
|
+
this.handleClose = () => {
|
|
6723
6755
|
let { onClose } = this.props;
|
|
6724
6756
|
if (onClose) {
|
|
6725
6757
|
onClose();
|
|
@@ -6728,21 +6760,28 @@ var FullCalendar = (function (exports) {
|
|
|
6728
6760
|
}
|
|
6729
6761
|
render() {
|
|
6730
6762
|
let { theme, options } = this.context;
|
|
6731
|
-
let { props
|
|
6732
|
-
return j(_("div", Object.assign({}, props.attrs, { id: props.id, className: joinClassNames(props.className, 'fc-popover', theme.getClassName('popover')),
|
|
6763
|
+
let { props } = this;
|
|
6764
|
+
return j(_("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 }),
|
|
6765
|
+
_("div", { tabIndex: 0, style: { outline: 'none' }, ref: this.focusStartRef }),
|
|
6733
6766
|
_("div", { className: 'fc-popover-header ' + theme.getClassName('popoverHeader') },
|
|
6734
|
-
_("span", { className: "fc-popover-title", id:
|
|
6735
|
-
_("span", { className: 'fc-popover-close ' + theme.getIconClass('close'),
|
|
6736
|
-
_("div", { className: 'fc-popover-body ' + theme.getClassName('popoverContent') }, props.children)
|
|
6767
|
+
_("span", { className: "fc-popover-title", id: this.titleId }, props.title),
|
|
6768
|
+
_("span", Object.assign({ role: 'button', "aria-label": options.closeHint, className: 'fc-popover-close ' + theme.getIconClass('close') }, createAriaClickAttrs(this.handleClose), { ref: this.closeRef }))),
|
|
6769
|
+
_("div", { className: 'fc-popover-body ' + theme.getClassName('popoverContent') }, props.children),
|
|
6770
|
+
_("div", { tabIndex: 0, style: { outline: 'none' }, ref: this.focusEndRef })), props.parentEl);
|
|
6737
6771
|
}
|
|
6738
6772
|
componentDidMount() {
|
|
6739
6773
|
document.addEventListener('mousedown', this.handleDocumentMouseDown);
|
|
6740
6774
|
document.addEventListener('keydown', this.handleDocumentKeyDown);
|
|
6775
|
+
this.focusStartRef.current.addEventListener('focus', this.handleClose);
|
|
6776
|
+
this.focusEndRef.current.addEventListener('focus', this.handleClose);
|
|
6777
|
+
this.closeRef.current.focus({ preventScroll: true });
|
|
6741
6778
|
this.updateSize();
|
|
6742
6779
|
}
|
|
6743
6780
|
componentWillUnmount() {
|
|
6744
6781
|
document.removeEventListener('mousedown', this.handleDocumentMouseDown);
|
|
6745
6782
|
document.removeEventListener('keydown', this.handleDocumentKeyDown);
|
|
6783
|
+
this.focusStartRef.current.removeEventListener('focus', this.handleClose);
|
|
6784
|
+
this.focusEndRef.current.removeEventListener('focus', this.handleClose);
|
|
6746
6785
|
}
|
|
6747
6786
|
updateSize() {
|
|
6748
6787
|
let { isRtl } = this.context;
|
|
@@ -6789,8 +6828,10 @@ var FullCalendar = (function (exports) {
|
|
|
6789
6828
|
let { options, dateEnv } = this.context;
|
|
6790
6829
|
let { props } = this;
|
|
6791
6830
|
let { startDate, todayRange, dateProfile } = props;
|
|
6831
|
+
// TODO: memoize?
|
|
6832
|
+
let detaMeta = getDateMeta(startDate, todayRange, null, dateProfile);
|
|
6792
6833
|
let title = dateEnv.format(startDate, options.dayPopoverFormat);
|
|
6793
|
-
return (_(DayCellContainer, { elRef: this.handleRootEl, date: startDate,
|
|
6834
|
+
return (_(DayCellContainer, { elRef: this.handleRootEl, date: startDate, dateMeta: detaMeta }, (InnerContent, renderProps, attrs) => (_(Popover, { elRef: attrs.ref, id: props.id, title: title, attrs: attrs /* TODO: make these time-based when not whole-day? */, className: joinClassNames(attrs.className, // TODO: solve SignalLike type problem
|
|
6794
6835
|
'fc-more-popover'), parentEl: props.parentEl, alignEl: props.alignEl, alignParentTop: props.alignParentTop, onClose: props.onClose },
|
|
6795
6836
|
hasCustomDayCellContent(options) && (_(InnerContent, { tag: "div", className: 'fc-more-popover-misc' })),
|
|
6796
6837
|
props.children))));
|
|
@@ -6864,6 +6905,9 @@ var FullCalendar = (function (exports) {
|
|
|
6864
6905
|
}
|
|
6865
6906
|
};
|
|
6866
6907
|
this.handlePopoverClose = () => {
|
|
6908
|
+
if (this.linkEl) { // was null sometimes when initiating drag-n-drop would hide the popover
|
|
6909
|
+
this.linkEl.focus();
|
|
6910
|
+
}
|
|
6867
6911
|
this.setState({ isPopoverOpen: false });
|
|
6868
6912
|
};
|
|
6869
6913
|
}
|
|
@@ -6885,7 +6929,7 @@ var FullCalendar = (function (exports) {
|
|
|
6885
6929
|
view: viewApi,
|
|
6886
6930
|
};
|
|
6887
6931
|
return (_(k$1, null,
|
|
6888
|
-
Boolean(moreCnt) && (_(ContentContainer, { tag:
|
|
6932
|
+
Boolean(moreCnt) && (_(ContentContainer, { tag: 'div', elRef: this.handleLinkEl, className: joinClassNames(props.className, 'fc-more-link'), style: props.style, attrs: Object.assign(Object.assign(Object.assign({}, props.attrs), createAriaClickAttrs(this.handleClick)), { title: hint, 'role': 'button', 'aria-haspopup': 'dialog', 'aria-expanded': state.isPopoverOpen, 'aria-controls': state.isPopoverOpen ? state.popoverId : undefined }), renderProps: renderProps, generatorName: "moreLinkContent", customGenerator: options.moreLinkContent, defaultGenerator: props.defaultGenerator || renderMoreLinkInner, classNameGenerator: options.moreLinkClassNames, didMount: options.moreLinkDidMount, willUnmount: options.moreLinkWillUnmount }, props.children)),
|
|
6889
6933
|
state.isPopoverOpen && (_(MorePopover, { id: state.popoverId, startDate: range.start, endDate: range.end, dateProfile: props.dateProfile, todayRange: props.todayRange, dateSpanProps: props.dateSpanProps, parentEl: this.parentEl, alignEl: props.alignElRef ?
|
|
6890
6934
|
props.alignElRef.current :
|
|
6891
6935
|
this.linkEl, alignParentTop: props.alignParentTop, forceTimed: props.forceTimed, onClose: this.handlePopoverClose }, props.popoverContent()))));
|
|
@@ -6924,7 +6968,7 @@ var FullCalendar = (function (exports) {
|
|
|
6924
6968
|
let { props, context } = this;
|
|
6925
6969
|
let { options } = context;
|
|
6926
6970
|
let renderProps = { view: context.viewApi };
|
|
6927
|
-
return (_(ContentContainer, Object.assign({}, props, { tag: props.tag || 'div', className: joinClassNames(props.className, buildViewClassName(props.viewSpec)), renderProps: renderProps, classNameGenerator: options.viewClassNames, generatorName: undefined, didMount: options.viewDidMount, willUnmount: options.viewWillUnmount }), () => props.children));
|
|
6971
|
+
return (_(ContentContainer, Object.assign({}, props, { tag: props.tag || 'div', attrs: props.attrs, className: joinClassNames(props.className, buildViewClassName(props.viewSpec)), renderProps: renderProps, classNameGenerator: options.viewClassNames, generatorName: undefined, didMount: options.viewDidMount, willUnmount: options.viewWillUnmount }), () => props.children));
|
|
6928
6972
|
}
|
|
6929
6973
|
}
|
|
6930
6974
|
function buildViewClassName(viewSpec) {
|
|
@@ -7504,6 +7548,7 @@ var FullCalendar = (function (exports) {
|
|
|
7504
7548
|
watchHeight: watchHeight,
|
|
7505
7549
|
afterSize: afterSize,
|
|
7506
7550
|
buildNavLinkAttrs: buildNavLinkAttrs,
|
|
7551
|
+
buildDateStr: buildDateStr,
|
|
7507
7552
|
preventDefault: preventDefault,
|
|
7508
7553
|
whenTransitionDone: whenTransitionDone,
|
|
7509
7554
|
computeInnerRect: computeInnerRect,
|
|
@@ -7571,7 +7616,7 @@ var FullCalendar = (function (exports) {
|
|
|
7571
7616
|
sortEventSegs: sortEventSegs,
|
|
7572
7617
|
getEventRangeMeta: getEventRangeMeta,
|
|
7573
7618
|
buildEventRangeKey: buildEventRangeKey,
|
|
7574
|
-
|
|
7619
|
+
getEventTagAndAttrs: getEventTagAndAttrs,
|
|
7575
7620
|
getEventKey: getEventKey,
|
|
7576
7621
|
DayTableModel: DayTableModel,
|
|
7577
7622
|
Scroller: Scroller,
|
|
@@ -7644,9 +7689,9 @@ var FullCalendar = (function (exports) {
|
|
|
7644
7689
|
weekText: 'W',
|
|
7645
7690
|
weekTextLong: 'Week',
|
|
7646
7691
|
closeHint: 'Close',
|
|
7647
|
-
|
|
7648
|
-
eventHint: 'Event',
|
|
7692
|
+
eventsHint: 'Events',
|
|
7649
7693
|
allDayText: 'all-day',
|
|
7694
|
+
timedText: 'timed',
|
|
7650
7695
|
moreLinkText: 'more',
|
|
7651
7696
|
noEventsText: 'No events to display',
|
|
7652
7697
|
};
|
|
@@ -7661,7 +7706,7 @@ var FullCalendar = (function (exports) {
|
|
|
7661
7706
|
? 'Today'
|
|
7662
7707
|
: `This ${buttonText}`;
|
|
7663
7708
|
},
|
|
7664
|
-
}, viewHint: '$0 view', navLinkHint: 'Go to $0', moreLinkHint(eventCnt) {
|
|
7709
|
+
}, viewHint: '$0 view', viewChangeHint: 'Change view', navLinkHint: 'Go to $0', moreLinkHint(eventCnt) {
|
|
7665
7710
|
return `Show ${eventCnt} more event${eventCnt === 1 ? '' : 's'}`;
|
|
7666
7711
|
} });
|
|
7667
7712
|
function organizeRawLocales(explicitRawLocales) {
|
|
@@ -8333,17 +8378,25 @@ var FullCalendar = (function (exports) {
|
|
|
8333
8378
|
return { header, footer };
|
|
8334
8379
|
}
|
|
8335
8380
|
function parseToolbar(sectionStrHash, calendarOptions, calendarOptionOverrides, theme, viewSpecs, calendarApi) {
|
|
8336
|
-
let
|
|
8381
|
+
let isRtl = calendarOptions.direction === 'rtl';
|
|
8337
8382
|
let viewsWithButtons = [];
|
|
8338
8383
|
let hasTitle = false;
|
|
8339
|
-
|
|
8340
|
-
let sectionStr = sectionStrHash[sectionName];
|
|
8384
|
+
function processSectionStr(sectionStr) {
|
|
8341
8385
|
let sectionRes = parseSection(sectionStr, calendarOptions, calendarOptionOverrides, theme, viewSpecs, calendarApi);
|
|
8342
|
-
sectionWidgets[sectionName] = sectionRes.widgets;
|
|
8343
8386
|
viewsWithButtons.push(...sectionRes.viewsWithButtons);
|
|
8344
8387
|
hasTitle = hasTitle || sectionRes.hasTitle;
|
|
8388
|
+
return sectionRes.widgets;
|
|
8345
8389
|
}
|
|
8346
|
-
|
|
8390
|
+
const sectionWidgets = {
|
|
8391
|
+
start: processSectionStr(sectionStrHash[isRtl ? 'right' : 'left'] || sectionStrHash.start || ''),
|
|
8392
|
+
center: processSectionStr(sectionStrHash.center || ''),
|
|
8393
|
+
end: processSectionStr(sectionStrHash[isRtl ? 'left' : 'right'] || sectionStrHash.end || ''),
|
|
8394
|
+
};
|
|
8395
|
+
return {
|
|
8396
|
+
sectionWidgets,
|
|
8397
|
+
viewsWithButtons,
|
|
8398
|
+
hasTitle,
|
|
8399
|
+
};
|
|
8347
8400
|
}
|
|
8348
8401
|
/*
|
|
8349
8402
|
BAD: querying icons and text here. should be done at render time
|
|
@@ -8371,6 +8424,7 @@ var FullCalendar = (function (exports) {
|
|
|
8371
8424
|
let buttonIcon; // only one of these will be set
|
|
8372
8425
|
let buttonText; // "
|
|
8373
8426
|
let buttonHint;
|
|
8427
|
+
let isView = false;
|
|
8374
8428
|
// ^ for the title="" attribute, for accessibility
|
|
8375
8429
|
if ((customButtonProps = calendarCustomButtons[buttonName])) {
|
|
8376
8430
|
buttonClick = (ev) => {
|
|
@@ -8384,6 +8438,7 @@ var FullCalendar = (function (exports) {
|
|
|
8384
8438
|
buttonHint = customButtonProps.hint || customButtonProps.text;
|
|
8385
8439
|
}
|
|
8386
8440
|
else if ((viewSpec = viewSpecs[buttonName])) {
|
|
8441
|
+
isView = true;
|
|
8387
8442
|
viewsWithButtons.push(buttonName);
|
|
8388
8443
|
buttonClick = () => {
|
|
8389
8444
|
calendarApi.changeView(buttonName);
|
|
@@ -8421,7 +8476,7 @@ var FullCalendar = (function (exports) {
|
|
|
8421
8476
|
], calendarButtonText[buttonName]);
|
|
8422
8477
|
}
|
|
8423
8478
|
}
|
|
8424
|
-
return { buttonName, buttonClick, buttonIcon, buttonText, buttonHint };
|
|
8479
|
+
return { buttonName, buttonClick, buttonIcon, buttonText, buttonHint, isView };
|
|
8425
8480
|
})));
|
|
8426
8481
|
return { widgets, viewsWithButtons, hasTitle };
|
|
8427
8482
|
}
|
|
@@ -9245,27 +9300,41 @@ var FullCalendar = (function (exports) {
|
|
|
9245
9300
|
}, ...children);
|
|
9246
9301
|
}
|
|
9247
9302
|
renderWidgetGroup(widgetGroup) {
|
|
9248
|
-
let { props } = this;
|
|
9249
|
-
let { theme } =
|
|
9303
|
+
let { props, context } = this;
|
|
9304
|
+
let { options, theme } = context;
|
|
9250
9305
|
let children = [];
|
|
9251
9306
|
let isOnlyButtons = true;
|
|
9307
|
+
let isOnlyView = true;
|
|
9308
|
+
for (const widget of widgetGroup) {
|
|
9309
|
+
const { buttonName, isView } = widget;
|
|
9310
|
+
if (buttonName === 'title') {
|
|
9311
|
+
isOnlyButtons = false;
|
|
9312
|
+
}
|
|
9313
|
+
else if (!isView) {
|
|
9314
|
+
isOnlyView = false;
|
|
9315
|
+
}
|
|
9316
|
+
}
|
|
9252
9317
|
for (let widget of widgetGroup) {
|
|
9253
9318
|
let { buttonName, buttonClick, buttonText, buttonIcon, buttonHint } = widget;
|
|
9254
9319
|
if (buttonName === 'title') {
|
|
9255
|
-
|
|
9256
|
-
children.push(_("h2", { className: "fc-toolbar-title" }, props.title));
|
|
9320
|
+
children.push(_("div", { role: 'heading', "aria-level": options.headingLevel, id: props.titleId, className: 'fc-toolbar-title' }, props.title));
|
|
9257
9321
|
}
|
|
9258
9322
|
else {
|
|
9259
9323
|
let isPressed = buttonName === props.activeButton;
|
|
9260
9324
|
let isDisabled = (!props.isTodayEnabled && buttonName === 'today') ||
|
|
9261
9325
|
(!props.isPrevEnabled && buttonName === 'prev') ||
|
|
9262
9326
|
(!props.isNextEnabled && buttonName === 'next');
|
|
9263
|
-
children.push(_("button", { type: "button",
|
|
9327
|
+
children.push(_("button", Object.assign({ type: "button", disabled: isDisabled }, ((isOnlyButtons && isOnlyView)
|
|
9328
|
+
? { 'role': 'tab', 'aria-selected': isPressed }
|
|
9329
|
+
: { 'aria-pressed': isPressed }), { "aria-label": typeof buttonHint === 'function' ? buttonHint(props.navUnit) : buttonHint, className: joinClassNames(`fc-${buttonName}-button`, theme.getClassName('button'), isPressed && theme.getClassName('buttonActive')), onClick: buttonClick }), buttonText || (buttonIcon ? _("span", { className: buttonIcon, "aria-hidden": true }) : '')));
|
|
9264
9330
|
}
|
|
9265
9331
|
}
|
|
9266
9332
|
if (children.length > 1) {
|
|
9267
|
-
|
|
9268
|
-
|
|
9333
|
+
return _('div', {
|
|
9334
|
+
role: (isOnlyButtons && isOnlyView) ? 'tablist' : undefined,
|
|
9335
|
+
'aria-label': (isOnlyButtons && isOnlyView) ? options.viewChangeHint : undefined,
|
|
9336
|
+
className: isOnlyButtons ? theme.getClassName('buttonGroup') : undefined,
|
|
9337
|
+
}, ...children);
|
|
9269
9338
|
}
|
|
9270
9339
|
return children[0];
|
|
9271
9340
|
}
|
|
@@ -9274,33 +9343,15 @@ var FullCalendar = (function (exports) {
|
|
|
9274
9343
|
class Toolbar extends BaseComponent {
|
|
9275
9344
|
render() {
|
|
9276
9345
|
let { model, className } = this.props;
|
|
9277
|
-
let
|
|
9278
|
-
|
|
9279
|
-
|
|
9280
|
-
|
|
9281
|
-
|
|
9282
|
-
if (sectionWidgets.left) {
|
|
9283
|
-
forceLtr = true;
|
|
9284
|
-
startContent = sectionWidgets.left;
|
|
9285
|
-
}
|
|
9286
|
-
else {
|
|
9287
|
-
startContent = sectionWidgets.start;
|
|
9288
|
-
}
|
|
9289
|
-
if (sectionWidgets.right) {
|
|
9290
|
-
forceLtr = true;
|
|
9291
|
-
endContent = sectionWidgets.right;
|
|
9292
|
-
}
|
|
9293
|
-
else {
|
|
9294
|
-
endContent = sectionWidgets.end;
|
|
9295
|
-
}
|
|
9296
|
-
return (_("div", { className: joinClassNames(className, 'fc-toolbar', forceLtr && 'fc-toolbar-ltr') },
|
|
9297
|
-
this.renderSection('start', startContent || []),
|
|
9298
|
-
this.renderSection('center', centerContent || []),
|
|
9299
|
-
this.renderSection('end', endContent || [])));
|
|
9346
|
+
let { sectionWidgets } = model;
|
|
9347
|
+
return (_("div", { className: joinClassNames(className, 'fc-toolbar') },
|
|
9348
|
+
this.renderSection('start', sectionWidgets.start),
|
|
9349
|
+
this.renderSection('center', sectionWidgets.center),
|
|
9350
|
+
this.renderSection('end', sectionWidgets.end)));
|
|
9300
9351
|
}
|
|
9301
9352
|
renderSection(key, widgetGroups) {
|
|
9302
9353
|
let { props } = this;
|
|
9303
|
-
return (_(ToolbarSection, { key: key, name: key, widgetGroups: widgetGroups, title: props.title, navUnit: props.navUnit, activeButton: props.activeButton, isTodayEnabled: props.isTodayEnabled, isPrevEnabled: props.isPrevEnabled, isNextEnabled: props.isNextEnabled }));
|
|
9354
|
+
return (_(ToolbarSection, { key: key, name: key, widgetGroups: widgetGroups, title: props.title, titleId: props.titleId, navUnit: props.navUnit, activeButton: props.activeButton, isTodayEnabled: props.isTodayEnabled, isPrevEnabled: props.isPrevEnabled, isNextEnabled: props.isNextEnabled }));
|
|
9304
9355
|
}
|
|
9305
9356
|
}
|
|
9306
9357
|
|
|
@@ -9399,6 +9450,7 @@ var FullCalendar = (function (exports) {
|
|
|
9399
9450
|
this.buildViewPropTransformers = memoize(buildViewPropTransformers);
|
|
9400
9451
|
this.buildToolbarProps = memoize(buildToolbarProps);
|
|
9401
9452
|
this.interactionsStore = {};
|
|
9453
|
+
this.viewTitleId = getUniqueDomId();
|
|
9402
9454
|
// Component Registration
|
|
9403
9455
|
// -----------------------------------------------------------------------------------------------------------------
|
|
9404
9456
|
this.registerInteractiveComponent = (component, settingsInput) => {
|
|
@@ -9449,9 +9501,9 @@ var FullCalendar = (function (exports) {
|
|
|
9449
9501
|
}
|
|
9450
9502
|
let viewContext = this.buildViewContext(props.viewSpec, props.viewApi, props.options, props.dateProfileGenerator, props.dateEnv, props.theme, props.pluginHooks, props.dispatch, props.getCurrentData, props.emitter, props.calendarApi, this.registerInteractiveComponent, this.unregisterInteractiveComponent);
|
|
9451
9503
|
return (_(ViewContextType.Provider, { value: viewContext },
|
|
9452
|
-
toolbarConfig.header && (_(Toolbar, Object.assign({ className: "fc-header-toolbar", model: toolbarConfig.header }, toolbarProps))),
|
|
9504
|
+
toolbarConfig.header && (_(Toolbar, Object.assign({ className: "fc-header-toolbar", model: toolbarConfig.header, titleId: this.viewTitleId }, toolbarProps))),
|
|
9453
9505
|
_(ViewHarness, { height: viewHeight, heightLiquid: viewHeightLiquid, aspectRatio: viewAspectRatio },
|
|
9454
|
-
this.renderView(props),
|
|
9506
|
+
this.renderView(props, toolbarProps.title),
|
|
9455
9507
|
this.buildAppendContent()),
|
|
9456
9508
|
toolbarConfig.footer && (_(Toolbar, Object.assign({ className: "fc-footer-toolbar", model: toolbarConfig.footer }, toolbarProps)))));
|
|
9457
9509
|
}
|
|
@@ -9484,9 +9536,9 @@ var FullCalendar = (function (exports) {
|
|
|
9484
9536
|
let children = props.pluginHooks.viewContainerAppends.map((buildAppendContent) => buildAppendContent(props));
|
|
9485
9537
|
return _(k$1, {}, ...children);
|
|
9486
9538
|
}
|
|
9487
|
-
renderView(props) {
|
|
9539
|
+
renderView(props, title) {
|
|
9488
9540
|
let { pluginHooks } = props;
|
|
9489
|
-
let { viewSpec } = props;
|
|
9541
|
+
let { viewSpec, toolbarConfig } = props;
|
|
9490
9542
|
let viewProps = {
|
|
9491
9543
|
dateProfile: props.dateProfile,
|
|
9492
9544
|
businessHours: props.businessHours,
|
|
@@ -9497,6 +9549,8 @@ var FullCalendar = (function (exports) {
|
|
|
9497
9549
|
eventDrag: props.eventDrag,
|
|
9498
9550
|
eventResize: props.eventResize,
|
|
9499
9551
|
forPrint: props.forPrint,
|
|
9552
|
+
labelId: toolbarConfig.header && toolbarConfig.header.hasTitle ? this.viewTitleId : undefined,
|
|
9553
|
+
labelStr: toolbarConfig.header && toolbarConfig.header.hasTitle ? undefined : title,
|
|
9500
9554
|
};
|
|
9501
9555
|
let transformers = this.buildViewPropTransformers(pluginHooks.viewPropsTransformers);
|
|
9502
9556
|
for (let transformer of transformers) {
|
|
@@ -9674,7 +9728,7 @@ var FullCalendar = (function (exports) {
|
|
|
9674
9728
|
return sliceEventStore(props.eventStore, props.eventUiBases, props.dateProfile.activeRange, allDay ? props.nextDayThreshold : null).fg;
|
|
9675
9729
|
}
|
|
9676
9730
|
|
|
9677
|
-
const version = '7.0.0-beta.
|
|
9731
|
+
const version = '7.0.0-beta.4';
|
|
9678
9732
|
|
|
9679
9733
|
exports.Calendar = Calendar;
|
|
9680
9734
|
exports.Internal = internal;
|