fullcalendar 6.1.15 → 6.1.17
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.global.js +196 -123
- package/index.global.min.js +2 -2
- package/package.json +7 -7
package/index.global.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
FullCalendar Standard Bundle v6.1.
|
|
2
|
+
FullCalendar Standard Bundle v6.1.17
|
|
3
3
|
Docs & License: https://fullcalendar.io/docs/initialize-globals
|
|
4
4
|
(c) 2024 Adam Shaw
|
|
5
5
|
*/
|
|
@@ -92,7 +92,7 @@ var FullCalendar = (function (exports) {
|
|
|
92
92
|
registerStylesRoot(document);
|
|
93
93
|
}
|
|
94
94
|
|
|
95
|
-
var css_248z$4 = ":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-not-allowed,.fc-not-allowed .fc-event{cursor:not-allowed}.fc{display:flex;flex-direction:column;font-size:1em}.fc,.fc *,.fc :after,.fc :before{box-sizing:border-box}.fc table{border-collapse:collapse;border-spacing:0;font-size:1em}.fc th{text-align:center}.fc td,.fc th{padding:0;vertical-align:top}.fc a[data-navlink]{cursor:pointer}.fc a[data-navlink]:hover{text-decoration:underline}.fc-direction-ltr{direction:ltr;text-align:left}.fc-direction-rtl{direction:rtl;text-align:right}.fc-theme-standard td,.fc-theme-standard th{border:1px solid var(--fc-border-color)}.fc-liquid-hack td,.fc-liquid-hack th{position:relative}@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 .fc-button{border-radius:0;font-family:inherit;font-size:inherit;line-height:inherit;margin:0;overflow:visible;text-transform:none}.fc .fc-button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}.fc .fc-button{-webkit-appearance:button}.fc .fc-button:not(:disabled){cursor:pointer}.fc .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 .fc-button:hover{text-decoration:none}.fc .fc-button:focus{box-shadow:0 0 0 .2rem rgba(44,62,80,.25);outline:0}.fc .fc-button:disabled{opacity:.65}.fc .fc-button-primary{background-color:var(--fc-button-bg-color);border-color:var(--fc-button-border-color);color:var(--fc-button-text-color)}.fc .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 .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 .fc-button-primary:focus{box-shadow:0 0 0 .2rem rgba(76,91,106,.5)}.fc .fc-button-primary:not(:disabled).fc-button-active,.fc .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 .fc-button-primary:not(:disabled).fc-button-active:focus,.fc .fc-button-primary:not(:disabled):active:focus{box-shadow:0 0 0 .2rem rgba(76,91,106,.5)}.fc .fc-button .fc-icon{font-size:1.5em;vertical-align:middle}.fc .fc-button-group{display:inline-flex;position:relative;vertical-align:middle}.fc .fc-button-group>.fc-button{flex:1 1 auto;position:relative}.fc .fc-button-group>.fc-button.fc-button-active,.fc .fc-button-group>.fc-button:active,.fc .fc-button-group>.fc-button:focus,.fc .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 .fc-toolbar{align-items:center;display:flex;justify-content:space-between}.fc .fc-toolbar.fc-header-toolbar{margin-bottom:1.5em}.fc .fc-toolbar.fc-footer-toolbar{margin-top:1.5em}.fc .fc-toolbar-title{font-size:1.75em;margin:0}.fc-direction-ltr .fc-toolbar>*>:not(:first-child){margin-left:.75em}.fc-direction-rtl .fc-toolbar>*>:not(:first-child){margin-right:.75em}.fc-direction-rtl .fc-toolbar-ltr{flex-direction:row-reverse}.fc .fc-scroller{-webkit-overflow-scrolling:touch;position:relative}.fc .fc-scroller-liquid{height:100%}.fc .fc-scroller-liquid-absolute{bottom:0;left:0;position:absolute;right:0;top:0}.fc .fc-scroller-harness{direction:ltr;overflow:hidden;position:relative}.fc .fc-scroller-harness-liquid{height:100%}.fc-direction-rtl .fc-scroller-harness>.fc-scroller{direction:rtl}.fc-theme-standard .fc-scrollgrid{border:1px solid var(--fc-border-color)}.fc .fc-scrollgrid,.fc .fc-scrollgrid table{table-layout:fixed;width:100%}.fc .fc-scrollgrid table{border-left-style:hidden;border-right-style:hidden;border-top-style:hidden}.fc .fc-scrollgrid{border-bottom-width:0;border-collapse:separate;border-right-width:0}.fc .fc-scrollgrid-liquid{height:100%}.fc .fc-scrollgrid-section,.fc .fc-scrollgrid-section table,.fc .fc-scrollgrid-section>td{height:1px}.fc .fc-scrollgrid-section-liquid>td{height:100%}.fc .fc-scrollgrid-section>*{border-left-width:0;border-top-width:0}.fc .fc-scrollgrid-section-footer>*,.fc .fc-scrollgrid-section-header>*{border-bottom-width:0}.fc .fc-scrollgrid-section-body table,.fc .fc-scrollgrid-section-footer table{border-bottom-style:hidden}.fc .fc-scrollgrid-section-sticky>*{background:var(--fc-page-bg-color);position:sticky;z-index:3}.fc .fc-scrollgrid-section-header.fc-scrollgrid-section-sticky>*{top:0}.fc .fc-scrollgrid-section-footer.fc-scrollgrid-section-sticky>*{bottom:0}.fc .fc-scrollgrid-sticky-shim{height:1px;margin-bottom:-1px}.fc-sticky{position:sticky}.fc .fc-view-harness{flex-grow:1;position:relative}.fc .fc-view-harness-active>.fc-view{bottom:0;left:0;position:absolute;right:0;top:0}.fc .fc-col-header-cell-cushion{display:inline-block;padding:2px 4px}.fc .fc-bg-event,.fc .fc-highlight,.fc .fc-non-business{bottom:0;left:0;position:absolute;right:0;top:0}.fc .fc-non-business{background:var(--fc-non-business-color)}.fc .fc-bg-event{background:var(--fc-bg-event-color);opacity:var(--fc-bg-event-opacity)}.fc .fc-bg-event .fc-event-title{font-size:var(--fc-small-font-size);font-style:italic;margin:.5em}.fc .fc-highlight{background:var(--fc-highlight-color)}.fc .fc-cell-shaded,.fc .fc-day-disabled{background:var(--fc-neutral-bg-color)}a.fc-event,a.fc-event:hover{text-decoration:none}.fc-event.fc-event-draggable,.fc-event[href]{cursor:pointer}.fc-event .fc-event-main{position:relative;z-index:2}.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 .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-event-selected,.fc-event:focus{box-shadow:0 2px 5px rgba(0,0,0,.2)}.fc-event-selected:before,.fc-event:focus:before{bottom:0;content:\"\";left:0;position:absolute;right:0;top:0;z-index:3}.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-h-event{background-color:var(--fc-event-bg-color);border:1px solid var(--fc-event-border-color);display:block}.fc-h-event .fc-event-main{color:var(--fc-event-text-color)}.fc-h-event .fc-event-main-frame{display:flex}.fc-h-event .fc-event-time{max-width:100%;overflow:hidden}.fc-h-event .fc-event-title-container{flex-grow:1;flex-shrink:1;min-width:0}.fc-h-event .fc-event-title{display:inline-block;left:0;max-width:100%;overflow:hidden;right:0;vertical-align:top}.fc-h-event.fc-event-selected:before{bottom:-10px;top:-10px}.fc-direction-ltr .fc-daygrid-block-event:not(.fc-event-start),.fc-direction-rtl .fc-daygrid-block-event:not(.fc-event-end){border-bottom-left-radius:0;border-left-width:0;border-top-left-radius:0}.fc-direction-ltr .fc-daygrid-block-event:not(.fc-event-end),.fc-direction-rtl .fc-daygrid-block-event:not(.fc-event-start){border-bottom-right-radius:0;border-right-width:0;border-top-right-radius: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 .fc-popover{box-shadow:0 2px 6px rgba(0,0,0,.15);position:absolute;z-index:9999}.fc .fc-popover-header{align-items:center;display:flex;flex-direction:row;justify-content:space-between;padding:3px 4px}.fc .fc-popover-title{margin:0 2px}.fc .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)}";
|
|
95
|
+
var css_248z$4 = ":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-not-allowed,.fc-not-allowed .fc-event{cursor:not-allowed}.fc{display:flex;flex-direction:column;font-size:1em}.fc,.fc *,.fc :after,.fc :before{box-sizing:border-box}.fc table{border-collapse:collapse;border-spacing:0;font-size:1em}.fc th{text-align:center}.fc td,.fc th{padding:0;vertical-align:top}.fc a[data-navlink]{cursor:pointer}.fc a[data-navlink]:hover{text-decoration:underline}.fc-direction-ltr{direction:ltr;text-align:left}.fc-direction-rtl{direction:rtl;text-align:right}.fc-theme-standard td,.fc-theme-standard th{border:1px solid var(--fc-border-color)}.fc-liquid-hack td,.fc-liquid-hack th{position:relative}@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 .fc-button{border-radius:0;font-family:inherit;font-size:inherit;line-height:inherit;margin:0;overflow:visible;text-transform:none}.fc .fc-button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}.fc .fc-button{-webkit-appearance:button}.fc .fc-button:not(:disabled){cursor:pointer}.fc .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 .fc-button:hover{text-decoration:none}.fc .fc-button:focus{box-shadow:0 0 0 .2rem rgba(44,62,80,.25);outline:0}.fc .fc-button:disabled{opacity:.65}.fc .fc-button-primary{background-color:var(--fc-button-bg-color);border-color:var(--fc-button-border-color);color:var(--fc-button-text-color)}.fc .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 .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 .fc-button-primary:focus{box-shadow:0 0 0 .2rem rgba(76,91,106,.5)}.fc .fc-button-primary:not(:disabled).fc-button-active,.fc .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 .fc-button-primary:not(:disabled).fc-button-active:focus,.fc .fc-button-primary:not(:disabled):active:focus{box-shadow:0 0 0 .2rem rgba(76,91,106,.5)}.fc .fc-button .fc-icon{font-size:1.5em;vertical-align:middle}.fc .fc-button-group{display:inline-flex;position:relative;vertical-align:middle}.fc .fc-button-group>.fc-button{flex:1 1 auto;position:relative}.fc .fc-button-group>.fc-button.fc-button-active,.fc .fc-button-group>.fc-button:active,.fc .fc-button-group>.fc-button:focus,.fc .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 .fc-toolbar{align-items:center;display:flex;justify-content:space-between}.fc .fc-toolbar.fc-header-toolbar{margin-bottom:1.5em}.fc .fc-toolbar.fc-footer-toolbar{margin-top:1.5em}.fc .fc-toolbar-title{font-size:1.75em;margin:0}.fc-direction-ltr .fc-toolbar>*>:not(:first-child){margin-left:.75em}.fc-direction-rtl .fc-toolbar>*>:not(:first-child){margin-right:.75em}.fc-direction-rtl .fc-toolbar-ltr{flex-direction:row-reverse}.fc .fc-scroller{-webkit-overflow-scrolling:touch;position:relative}.fc .fc-scroller-liquid{height:100%}.fc .fc-scroller-liquid-absolute{bottom:0;left:0;position:absolute;right:0;top:0}.fc .fc-scroller-harness{direction:ltr;overflow:hidden;position:relative}.fc .fc-scroller-harness-liquid{height:100%}.fc-direction-rtl .fc-scroller-harness>.fc-scroller{direction:rtl}.fc-theme-standard .fc-scrollgrid{border:1px solid var(--fc-border-color)}.fc .fc-scrollgrid,.fc .fc-scrollgrid table{table-layout:fixed;width:100%}.fc .fc-scrollgrid table{border-left-style:hidden;border-right-style:hidden;border-top-style:hidden}.fc .fc-scrollgrid{border-bottom-width:0;border-collapse:separate;border-right-width:0}.fc .fc-scrollgrid-liquid{height:100%}.fc .fc-scrollgrid-section,.fc .fc-scrollgrid-section table,.fc .fc-scrollgrid-section>td{height:1px}.fc .fc-scrollgrid-section-liquid>td{height:100%}.fc .fc-scrollgrid-section>*{border-left-width:0;border-top-width:0}.fc .fc-scrollgrid-section-footer>*,.fc .fc-scrollgrid-section-header>*{border-bottom-width:0}.fc .fc-scrollgrid-section-body table,.fc .fc-scrollgrid-section-footer table{border-bottom-style:hidden}.fc .fc-scrollgrid-section-sticky>*{background:var(--fc-page-bg-color);position:sticky;z-index:3}.fc .fc-scrollgrid-section-header.fc-scrollgrid-section-sticky>*{top:0}.fc .fc-scrollgrid-section-footer.fc-scrollgrid-section-sticky>*{bottom:0}.fc .fc-scrollgrid-sticky-shim{height:1px;margin-bottom:-1px}.fc-sticky{position:sticky}.fc .fc-view-harness{flex-grow:1;position:relative}.fc .fc-view-harness-active>.fc-view{bottom:0;left:0;position:absolute;right:0;top:0}.fc .fc-col-header-cell-cushion{display:inline-block;padding:2px 4px}.fc .fc-bg-event,.fc .fc-highlight,.fc .fc-non-business{bottom:0;left:0;position:absolute;right:0;top:0}.fc .fc-non-business{background:var(--fc-non-business-color)}.fc .fc-bg-event{background:var(--fc-bg-event-color);opacity:var(--fc-bg-event-opacity)}.fc .fc-bg-event .fc-event-title{font-size:var(--fc-small-font-size);font-style:italic;margin:.5em}.fc .fc-highlight{background:var(--fc-highlight-color)}.fc .fc-cell-shaded,.fc .fc-day-disabled{background:var(--fc-neutral-bg-color)}a.fc-event,a.fc-event:hover{text-decoration:none}.fc-event.fc-event-draggable,.fc-event[href]{cursor:pointer}.fc-event .fc-event-main{position:relative;z-index:2}.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 .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-event-selected,.fc-event:focus{box-shadow:0 2px 5px rgba(0,0,0,.2)}.fc-event-selected:before,.fc-event:focus:before{bottom:0;content:\"\";left:0;position:absolute;right:0;top:0;z-index:3}.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-h-event{background-color:var(--fc-event-bg-color);border:1px solid var(--fc-event-border-color);display:block}.fc-h-event .fc-event-main{color:var(--fc-event-text-color)}.fc-h-event .fc-event-main-frame{display:flex}.fc-h-event .fc-event-time{max-width:100%;overflow:hidden}.fc-h-event .fc-event-title-container{flex-grow:1;flex-shrink:1;min-width:0}.fc-h-event .fc-event-title{display:inline-block;left:0;max-width:100%;overflow:hidden;right:0;vertical-align:top}.fc-h-event.fc-event-selected:before{bottom:-10px;top:-10px}.fc-direction-ltr .fc-daygrid-block-event:not(.fc-event-start),.fc-direction-rtl .fc-daygrid-block-event:not(.fc-event-end){border-bottom-left-radius:0;border-left-width:0;border-top-left-radius:0}.fc-direction-ltr .fc-daygrid-block-event:not(.fc-event-end),.fc-direction-rtl .fc-daygrid-block-event:not(.fc-event-start){border-bottom-right-radius:0;border-right-width:0;border-top-right-radius: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 .fc-popover{box-shadow:0 2px 6px rgba(0,0,0,.15);position:absolute;z-index:9999}.fc .fc-popover-header{align-items:center;display:flex;flex-direction:row;justify-content:space-between;padding:3px 4px}.fc .fc-popover-title{margin:0 2px}.fc .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)}";
|
|
96
96
|
injectStyles(css_248z$4);
|
|
97
97
|
|
|
98
98
|
class DelayedRunner {
|
|
@@ -973,10 +973,10 @@ var FullCalendar = (function (exports) {
|
|
|
973
973
|
|
|
974
974
|
const EXTENDED_SETTINGS_AND_SEVERITIES = {
|
|
975
975
|
week: 3,
|
|
976
|
-
separator:
|
|
977
|
-
omitZeroMinute:
|
|
978
|
-
meridiem:
|
|
979
|
-
omitCommas:
|
|
976
|
+
separator: 9,
|
|
977
|
+
omitZeroMinute: 9,
|
|
978
|
+
meridiem: 9,
|
|
979
|
+
omitCommas: 9,
|
|
980
980
|
};
|
|
981
981
|
const STANDARD_DATE_PROP_SEVERITIES = {
|
|
982
982
|
timeZoneName: 7,
|
|
@@ -998,22 +998,25 @@ var FullCalendar = (function (exports) {
|
|
|
998
998
|
constructor(formatSettings) {
|
|
999
999
|
let standardDateProps = {};
|
|
1000
1000
|
let extendedSettings = {};
|
|
1001
|
-
let
|
|
1001
|
+
let smallestUnitNum = 9; // the smallest unit in the formatter (9 is a sentinel, beyond max)
|
|
1002
1002
|
for (let name in formatSettings) {
|
|
1003
1003
|
if (name in EXTENDED_SETTINGS_AND_SEVERITIES) {
|
|
1004
1004
|
extendedSettings[name] = formatSettings[name];
|
|
1005
|
-
severity =
|
|
1005
|
+
const severity = EXTENDED_SETTINGS_AND_SEVERITIES[name];
|
|
1006
|
+
if (severity < 9) {
|
|
1007
|
+
smallestUnitNum = Math.min(EXTENDED_SETTINGS_AND_SEVERITIES[name], smallestUnitNum);
|
|
1008
|
+
}
|
|
1006
1009
|
}
|
|
1007
1010
|
else {
|
|
1008
1011
|
standardDateProps[name] = formatSettings[name];
|
|
1009
1012
|
if (name in STANDARD_DATE_PROP_SEVERITIES) { // TODO: what about hour12? no severity
|
|
1010
|
-
|
|
1013
|
+
smallestUnitNum = Math.min(STANDARD_DATE_PROP_SEVERITIES[name], smallestUnitNum);
|
|
1011
1014
|
}
|
|
1012
1015
|
}
|
|
1013
1016
|
}
|
|
1014
1017
|
this.standardDateProps = standardDateProps;
|
|
1015
1018
|
this.extendedSettings = extendedSettings;
|
|
1016
|
-
this.
|
|
1019
|
+
this.smallestUnitNum = smallestUnitNum;
|
|
1017
1020
|
this.buildFormattingFunc = memoize(buildFormattingFunc);
|
|
1018
1021
|
}
|
|
1019
1022
|
format(date, context) {
|
|
@@ -1048,8 +1051,8 @@ var FullCalendar = (function (exports) {
|
|
|
1048
1051
|
}
|
|
1049
1052
|
return full0 + separator + full1;
|
|
1050
1053
|
}
|
|
1051
|
-
|
|
1052
|
-
switch (this.
|
|
1054
|
+
getSmallestUnit() {
|
|
1055
|
+
switch (this.smallestUnitNum) {
|
|
1053
1056
|
case 7:
|
|
1054
1057
|
case 6:
|
|
1055
1058
|
case 5:
|
|
@@ -2321,9 +2324,10 @@ var FullCalendar = (function (exports) {
|
|
|
2321
2324
|
}
|
|
2322
2325
|
|
|
2323
2326
|
const ViewContextType = createContext({}); // for Components
|
|
2324
|
-
function buildViewContext(viewSpec, viewApi, viewOptions, dateProfileGenerator, dateEnv, theme, pluginHooks, dispatch, getCurrentData, emitter, calendarApi, registerInteractiveComponent, unregisterInteractiveComponent) {
|
|
2327
|
+
function buildViewContext(viewSpec, viewApi, viewOptions, dateProfileGenerator, dateEnv, nowManager, theme, pluginHooks, dispatch, getCurrentData, emitter, calendarApi, registerInteractiveComponent, unregisterInteractiveComponent) {
|
|
2325
2328
|
return {
|
|
2326
2329
|
dateEnv,
|
|
2330
|
+
nowManager,
|
|
2327
2331
|
options: viewOptions,
|
|
2328
2332
|
pluginHooks,
|
|
2329
2333
|
emitter,
|
|
@@ -2756,36 +2760,9 @@ var FullCalendar = (function (exports) {
|
|
|
2756
2760
|
return diffDayAndTime(date0, date1); // returns a duration
|
|
2757
2761
|
}
|
|
2758
2762
|
|
|
2759
|
-
function reduceCurrentDate(currentDate, action) {
|
|
2760
|
-
switch (action.type) {
|
|
2761
|
-
case 'CHANGE_DATE':
|
|
2762
|
-
return action.dateMarker;
|
|
2763
|
-
default:
|
|
2764
|
-
return currentDate;
|
|
2765
|
-
}
|
|
2766
|
-
}
|
|
2767
|
-
function getInitialDate(options, dateEnv) {
|
|
2768
|
-
let initialDateInput = options.initialDate;
|
|
2769
|
-
// compute the initial ambig-timezone date
|
|
2770
|
-
if (initialDateInput != null) {
|
|
2771
|
-
return dateEnv.createMarker(initialDateInput);
|
|
2772
|
-
}
|
|
2773
|
-
return getNow(options.now, dateEnv); // getNow already returns unzoned
|
|
2774
|
-
}
|
|
2775
|
-
function getNow(nowInput, dateEnv) {
|
|
2776
|
-
if (typeof nowInput === 'function') {
|
|
2777
|
-
nowInput = nowInput();
|
|
2778
|
-
}
|
|
2779
|
-
if (nowInput == null) {
|
|
2780
|
-
return dateEnv.createNowMarker();
|
|
2781
|
-
}
|
|
2782
|
-
return dateEnv.createMarker(nowInput);
|
|
2783
|
-
}
|
|
2784
|
-
|
|
2785
2763
|
class DateProfileGenerator {
|
|
2786
2764
|
constructor(props) {
|
|
2787
2765
|
this.props = props;
|
|
2788
|
-
this.nowDate = getNow(props.nowInput, props.dateEnv);
|
|
2789
2766
|
this.initHiddenDays();
|
|
2790
2767
|
}
|
|
2791
2768
|
/* Date Range Computation
|
|
@@ -2870,7 +2847,7 @@ var FullCalendar = (function (exports) {
|
|
|
2870
2847
|
buildValidRange() {
|
|
2871
2848
|
let input = this.props.validRangeInput;
|
|
2872
2849
|
let simpleInput = typeof input === 'function'
|
|
2873
|
-
? input.call(this.props.calendarApi, this.
|
|
2850
|
+
? input.call(this.props.calendarApi, this.props.dateEnv.toDate(this.props.nowManager.getDateMarker()))
|
|
2874
2851
|
: input;
|
|
2875
2852
|
return this.refineRange(simpleInput) ||
|
|
2876
2853
|
{ start: null, end: null }; // completely open-ended
|
|
@@ -4762,6 +4739,85 @@ var FullCalendar = (function (exports) {
|
|
|
4762
4739
|
// global state
|
|
4763
4740
|
const interactionSettingsStore = {};
|
|
4764
4741
|
|
|
4742
|
+
class NowTimer extends x$1 {
|
|
4743
|
+
constructor(props, context) {
|
|
4744
|
+
super(props, context);
|
|
4745
|
+
this.handleRefresh = () => {
|
|
4746
|
+
let timing = this.computeTiming();
|
|
4747
|
+
if (timing.state.nowDate.valueOf() !== this.state.nowDate.valueOf()) {
|
|
4748
|
+
this.setState(timing.state);
|
|
4749
|
+
}
|
|
4750
|
+
this.clearTimeout();
|
|
4751
|
+
this.setTimeout(timing.waitMs);
|
|
4752
|
+
};
|
|
4753
|
+
this.handleVisibilityChange = () => {
|
|
4754
|
+
if (!document.hidden) {
|
|
4755
|
+
this.handleRefresh();
|
|
4756
|
+
}
|
|
4757
|
+
};
|
|
4758
|
+
this.state = this.computeTiming().state;
|
|
4759
|
+
}
|
|
4760
|
+
render() {
|
|
4761
|
+
let { props, state } = this;
|
|
4762
|
+
return props.children(state.nowDate, state.todayRange);
|
|
4763
|
+
}
|
|
4764
|
+
componentDidMount() {
|
|
4765
|
+
this.setTimeout();
|
|
4766
|
+
this.context.nowManager.addResetListener(this.handleRefresh);
|
|
4767
|
+
// fired tab becomes visible after being hidden
|
|
4768
|
+
document.addEventListener('visibilitychange', this.handleVisibilityChange);
|
|
4769
|
+
}
|
|
4770
|
+
componentDidUpdate(prevProps) {
|
|
4771
|
+
if (prevProps.unit !== this.props.unit) {
|
|
4772
|
+
this.clearTimeout();
|
|
4773
|
+
this.setTimeout();
|
|
4774
|
+
}
|
|
4775
|
+
}
|
|
4776
|
+
componentWillUnmount() {
|
|
4777
|
+
this.clearTimeout();
|
|
4778
|
+
this.context.nowManager.removeResetListener(this.handleRefresh);
|
|
4779
|
+
document.removeEventListener('visibilitychange', this.handleVisibilityChange);
|
|
4780
|
+
}
|
|
4781
|
+
computeTiming() {
|
|
4782
|
+
let { props, context } = this;
|
|
4783
|
+
let unroundedNow = context.nowManager.getDateMarker();
|
|
4784
|
+
let currentUnitStart = context.dateEnv.startOf(unroundedNow, props.unit);
|
|
4785
|
+
let nextUnitStart = context.dateEnv.add(currentUnitStart, createDuration(1, props.unit));
|
|
4786
|
+
let waitMs = nextUnitStart.valueOf() - unroundedNow.valueOf();
|
|
4787
|
+
// there is a max setTimeout ms value (https://stackoverflow.com/a/3468650/96342)
|
|
4788
|
+
// ensure no longer than a day
|
|
4789
|
+
waitMs = Math.min(1000 * 60 * 60 * 24, waitMs);
|
|
4790
|
+
return {
|
|
4791
|
+
state: { nowDate: currentUnitStart, todayRange: buildDayRange(currentUnitStart) },
|
|
4792
|
+
waitMs,
|
|
4793
|
+
};
|
|
4794
|
+
}
|
|
4795
|
+
setTimeout(waitMs = this.computeTiming().waitMs) {
|
|
4796
|
+
// NOTE: timeout could take longer than expected if tab sleeps,
|
|
4797
|
+
// which is why we listen to 'visibilitychange'
|
|
4798
|
+
this.timeoutId = setTimeout(() => {
|
|
4799
|
+
// NOTE: timeout could also return *earlier* than expected, and we need to wait 2 ms more
|
|
4800
|
+
// This is why use use same waitMs from computeTiming, so we don't skip an interval while
|
|
4801
|
+
// .setState() is executing
|
|
4802
|
+
const timing = this.computeTiming();
|
|
4803
|
+
this.setState(timing.state, () => {
|
|
4804
|
+
this.setTimeout(timing.waitMs);
|
|
4805
|
+
});
|
|
4806
|
+
}, waitMs);
|
|
4807
|
+
}
|
|
4808
|
+
clearTimeout() {
|
|
4809
|
+
if (this.timeoutId) {
|
|
4810
|
+
clearTimeout(this.timeoutId);
|
|
4811
|
+
}
|
|
4812
|
+
}
|
|
4813
|
+
}
|
|
4814
|
+
NowTimer.contextType = ViewContextType;
|
|
4815
|
+
function buildDayRange(date) {
|
|
4816
|
+
let start = startOfDay(date);
|
|
4817
|
+
let end = addDays(start, 1);
|
|
4818
|
+
return { start, end };
|
|
4819
|
+
}
|
|
4820
|
+
|
|
4765
4821
|
class CalendarImpl {
|
|
4766
4822
|
getCurrentData() {
|
|
4767
4823
|
return this.currentDataManager.getCurrentData();
|
|
@@ -4917,7 +4973,7 @@ var FullCalendar = (function (exports) {
|
|
|
4917
4973
|
this.unselect();
|
|
4918
4974
|
this.dispatch({
|
|
4919
4975
|
type: 'CHANGE_DATE',
|
|
4920
|
-
dateMarker:
|
|
4976
|
+
dateMarker: state.nowManager.getDateMarker(),
|
|
4921
4977
|
});
|
|
4922
4978
|
}
|
|
4923
4979
|
gotoDate(zonedDateInput) {
|
|
@@ -5318,7 +5374,7 @@ var FullCalendar = (function (exports) {
|
|
|
5318
5374
|
function getDateMeta(date, todayRange, nowDate, dateProfile) {
|
|
5319
5375
|
return {
|
|
5320
5376
|
dow: date.getUTCDay(),
|
|
5321
|
-
isDisabled: Boolean(dateProfile && !rangeContainsMarker(dateProfile.activeRange, date)),
|
|
5377
|
+
isDisabled: Boolean(dateProfile && (!dateProfile.activeRange || !rangeContainsMarker(dateProfile.activeRange, date))),
|
|
5322
5378
|
isOther: Boolean(dateProfile && !rangeContainsMarker(dateProfile.currentRange, date)),
|
|
5323
5379
|
isToday: Boolean(todayRange && rangeContainsMarker(todayRange, date)),
|
|
5324
5380
|
isPast: Boolean(nowDate ? (date < nowDate) : todayRange ? (date < todayRange.start) : false),
|
|
@@ -6083,7 +6139,13 @@ var FullCalendar = (function (exports) {
|
|
|
6083
6139
|
let navLinkAttrs = (!dayMeta.isDisabled && props.colCnt > 1)
|
|
6084
6140
|
? buildNavLinkAttrs(this.context, date)
|
|
6085
6141
|
: {};
|
|
6086
|
-
let
|
|
6142
|
+
let publicDate = dateEnv.toDate(date);
|
|
6143
|
+
// workaround for Luxon (and maybe moment) returning prior-days when start-of-day
|
|
6144
|
+
// in DST gap: https://github.com/fullcalendar/fullcalendar/issues/7633
|
|
6145
|
+
if (dateEnv.namedTimeZoneImpl) {
|
|
6146
|
+
publicDate = addMs(publicDate, 3600000); // add an hour
|
|
6147
|
+
}
|
|
6148
|
+
let renderProps = Object.assign(Object.assign(Object.assign({ date: publicDate, view: viewApi }, props.extraRenderProps), { text }), dayMeta);
|
|
6087
6149
|
return (y(ContentContainer, { elTag: "th", elClasses: classNames, elAttrs: Object.assign({ role: 'columnheader', colSpan: props.colSpan, 'data-date': !dayMeta.isDisabled ? formatDayString(date) : undefined }, props.extraDataAttrs), renderProps: renderProps, generatorName: "dayHeaderContent", customGenerator: options.dayHeaderContent, defaultGenerator: renderInner$1, classNameGenerator: options.dayHeaderClassNames, didMount: options.dayHeaderDidMount, willUnmount: options.dayHeaderWillUnmount }, (InnerContainer) => (y("div", { className: "fc-scrollgrid-sync-inner" }, !dayMeta.isDisabled && (y(InnerContainer, { elTag: "a", elAttrs: navLinkAttrs, elClasses: [
|
|
6088
6150
|
'fc-col-header-cell-cushion',
|
|
6089
6151
|
props.isSticky && 'fc-sticky',
|
|
@@ -6122,65 +6184,6 @@ var FullCalendar = (function (exports) {
|
|
|
6122
6184
|
}
|
|
6123
6185
|
}
|
|
6124
6186
|
|
|
6125
|
-
class NowTimer extends x$1 {
|
|
6126
|
-
constructor(props, context) {
|
|
6127
|
-
super(props, context);
|
|
6128
|
-
this.initialNowDate = getNow(context.options.now, context.dateEnv);
|
|
6129
|
-
this.initialNowQueriedMs = new Date().valueOf();
|
|
6130
|
-
this.state = this.computeTiming().currentState;
|
|
6131
|
-
}
|
|
6132
|
-
render() {
|
|
6133
|
-
let { props, state } = this;
|
|
6134
|
-
return props.children(state.nowDate, state.todayRange);
|
|
6135
|
-
}
|
|
6136
|
-
componentDidMount() {
|
|
6137
|
-
this.setTimeout();
|
|
6138
|
-
}
|
|
6139
|
-
componentDidUpdate(prevProps) {
|
|
6140
|
-
if (prevProps.unit !== this.props.unit) {
|
|
6141
|
-
this.clearTimeout();
|
|
6142
|
-
this.setTimeout();
|
|
6143
|
-
}
|
|
6144
|
-
}
|
|
6145
|
-
componentWillUnmount() {
|
|
6146
|
-
this.clearTimeout();
|
|
6147
|
-
}
|
|
6148
|
-
computeTiming() {
|
|
6149
|
-
let { props, context } = this;
|
|
6150
|
-
let unroundedNow = addMs(this.initialNowDate, new Date().valueOf() - this.initialNowQueriedMs);
|
|
6151
|
-
let currentUnitStart = context.dateEnv.startOf(unroundedNow, props.unit);
|
|
6152
|
-
let nextUnitStart = context.dateEnv.add(currentUnitStart, createDuration(1, props.unit));
|
|
6153
|
-
let waitMs = nextUnitStart.valueOf() - unroundedNow.valueOf();
|
|
6154
|
-
// there is a max setTimeout ms value (https://stackoverflow.com/a/3468650/96342)
|
|
6155
|
-
// ensure no longer than a day
|
|
6156
|
-
waitMs = Math.min(1000 * 60 * 60 * 24, waitMs);
|
|
6157
|
-
return {
|
|
6158
|
-
currentState: { nowDate: currentUnitStart, todayRange: buildDayRange(currentUnitStart) },
|
|
6159
|
-
nextState: { nowDate: nextUnitStart, todayRange: buildDayRange(nextUnitStart) },
|
|
6160
|
-
waitMs,
|
|
6161
|
-
};
|
|
6162
|
-
}
|
|
6163
|
-
setTimeout() {
|
|
6164
|
-
let { nextState, waitMs } = this.computeTiming();
|
|
6165
|
-
this.timeoutId = setTimeout(() => {
|
|
6166
|
-
this.setState(nextState, () => {
|
|
6167
|
-
this.setTimeout();
|
|
6168
|
-
});
|
|
6169
|
-
}, waitMs);
|
|
6170
|
-
}
|
|
6171
|
-
clearTimeout() {
|
|
6172
|
-
if (this.timeoutId) {
|
|
6173
|
-
clearTimeout(this.timeoutId);
|
|
6174
|
-
}
|
|
6175
|
-
}
|
|
6176
|
-
}
|
|
6177
|
-
NowTimer.contextType = ViewContextType;
|
|
6178
|
-
function buildDayRange(date) {
|
|
6179
|
-
let start = startOfDay(date);
|
|
6180
|
-
let end = addDays(start, 1);
|
|
6181
|
-
return { start, end };
|
|
6182
|
-
}
|
|
6183
|
-
|
|
6184
6187
|
class DayHeader extends BaseComponent {
|
|
6185
6188
|
constructor() {
|
|
6186
6189
|
super(...arguments);
|
|
@@ -8158,6 +8161,25 @@ var FullCalendar = (function (exports) {
|
|
|
8158
8161
|
return viewType;
|
|
8159
8162
|
}
|
|
8160
8163
|
|
|
8164
|
+
function reduceCurrentDate(currentDate, action) {
|
|
8165
|
+
switch (action.type) {
|
|
8166
|
+
case 'CHANGE_DATE':
|
|
8167
|
+
return action.dateMarker;
|
|
8168
|
+
default:
|
|
8169
|
+
return currentDate;
|
|
8170
|
+
}
|
|
8171
|
+
}
|
|
8172
|
+
// should be initialized once and stay constant
|
|
8173
|
+
// this will change too
|
|
8174
|
+
function getInitialDate(options, dateEnv, nowManager) {
|
|
8175
|
+
let initialDateInput = options.initialDate;
|
|
8176
|
+
// compute the initial ambig-timezone date
|
|
8177
|
+
if (initialDateInput != null) {
|
|
8178
|
+
return dateEnv.createMarker(initialDateInput);
|
|
8179
|
+
}
|
|
8180
|
+
return nowManager.getDateMarker();
|
|
8181
|
+
}
|
|
8182
|
+
|
|
8161
8183
|
function reduceDynamicOptionOverrides(dynamicOptionOverrides, action) {
|
|
8162
8184
|
switch (action.type) {
|
|
8163
8185
|
case 'SET_OPTION':
|
|
@@ -8667,6 +8689,7 @@ var FullCalendar = (function (exports) {
|
|
|
8667
8689
|
endTime: refined.endTime || null,
|
|
8668
8690
|
startRecur: refined.startRecur ? dateEnv.createMarker(refined.startRecur) : null,
|
|
8669
8691
|
endRecur: refined.endRecur ? dateEnv.createMarker(refined.endRecur) : null,
|
|
8692
|
+
dateEnv,
|
|
8670
8693
|
};
|
|
8671
8694
|
let duration;
|
|
8672
8695
|
if (refined.duration) {
|
|
@@ -8686,7 +8709,7 @@ var FullCalendar = (function (exports) {
|
|
|
8686
8709
|
expand(typeData, framingRange, dateEnv) {
|
|
8687
8710
|
let clippedFramingRange = intersectRanges(framingRange, { start: typeData.startRecur, end: typeData.endRecur });
|
|
8688
8711
|
if (clippedFramingRange) {
|
|
8689
|
-
return expandRanges(typeData.daysOfWeek, typeData.startTime,
|
|
8712
|
+
return expandRanges(typeData.daysOfWeek, typeData.startTime, typeData.dateEnv, dateEnv, clippedFramingRange);
|
|
8690
8713
|
}
|
|
8691
8714
|
return [];
|
|
8692
8715
|
},
|
|
@@ -8696,7 +8719,7 @@ var FullCalendar = (function (exports) {
|
|
|
8696
8719
|
recurringTypes: [recurring],
|
|
8697
8720
|
eventRefiners: SIMPLE_RECURRING_REFINERS,
|
|
8698
8721
|
});
|
|
8699
|
-
function expandRanges(daysOfWeek, startTime,
|
|
8722
|
+
function expandRanges(daysOfWeek, startTime, eventDateEnv, calendarDateEnv, framingRange) {
|
|
8700
8723
|
let dowHash = daysOfWeek ? arrayToHash(daysOfWeek) : null;
|
|
8701
8724
|
let dayMarker = startOfDay(framingRange.start);
|
|
8702
8725
|
let endMarker = framingRange.end;
|
|
@@ -8706,12 +8729,12 @@ var FullCalendar = (function (exports) {
|
|
|
8706
8729
|
// if everyday, or this particular day-of-week
|
|
8707
8730
|
if (!dowHash || dowHash[dayMarker.getUTCDay()]) {
|
|
8708
8731
|
if (startTime) {
|
|
8709
|
-
instanceStart =
|
|
8732
|
+
instanceStart = calendarDateEnv.add(dayMarker, startTime);
|
|
8710
8733
|
}
|
|
8711
8734
|
else {
|
|
8712
8735
|
instanceStart = dayMarker;
|
|
8713
8736
|
}
|
|
8714
|
-
instanceStarts.push(instanceStart);
|
|
8737
|
+
instanceStarts.push(calendarDateEnv.createMarker(eventDateEnv.toDate(instanceStart)));
|
|
8715
8738
|
}
|
|
8716
8739
|
dayMarker = addDays(dayMarker, 1);
|
|
8717
8740
|
}
|
|
@@ -8876,6 +8899,49 @@ var FullCalendar = (function (exports) {
|
|
|
8876
8899
|
return { year: 'numeric', month: 'long', day: 'numeric' };
|
|
8877
8900
|
}
|
|
8878
8901
|
|
|
8902
|
+
/*
|
|
8903
|
+
TODO: test switching timezones when NO timezone plugin
|
|
8904
|
+
*/
|
|
8905
|
+
class CalendarNowManager {
|
|
8906
|
+
constructor() {
|
|
8907
|
+
this.resetListeners = new Set();
|
|
8908
|
+
}
|
|
8909
|
+
handleInput(dateEnv, // will change if timezone setup changed
|
|
8910
|
+
nowInput) {
|
|
8911
|
+
const oldDateEnv = this.dateEnv;
|
|
8912
|
+
if (dateEnv !== oldDateEnv) {
|
|
8913
|
+
if (typeof nowInput === 'function') {
|
|
8914
|
+
this.nowFn = nowInput;
|
|
8915
|
+
}
|
|
8916
|
+
else if (!oldDateEnv) { // first time?
|
|
8917
|
+
this.nowAnchorDate = dateEnv.toDate(nowInput
|
|
8918
|
+
? dateEnv.createMarker(nowInput)
|
|
8919
|
+
: dateEnv.createNowMarker());
|
|
8920
|
+
this.nowAnchorQueried = Date.now();
|
|
8921
|
+
}
|
|
8922
|
+
this.dateEnv = dateEnv;
|
|
8923
|
+
// not first time? fire reset handlers
|
|
8924
|
+
if (oldDateEnv) {
|
|
8925
|
+
for (const resetListener of this.resetListeners.values()) {
|
|
8926
|
+
resetListener();
|
|
8927
|
+
}
|
|
8928
|
+
}
|
|
8929
|
+
}
|
|
8930
|
+
}
|
|
8931
|
+
getDateMarker() {
|
|
8932
|
+
return this.nowAnchorDate
|
|
8933
|
+
? this.dateEnv.timestampToMarker(this.nowAnchorDate.valueOf() +
|
|
8934
|
+
(Date.now() - this.nowAnchorQueried))
|
|
8935
|
+
: this.dateEnv.createMarker(this.nowFn());
|
|
8936
|
+
}
|
|
8937
|
+
addResetListener(handler) {
|
|
8938
|
+
this.resetListeners.add(handler);
|
|
8939
|
+
}
|
|
8940
|
+
removeResetListener(handler) {
|
|
8941
|
+
this.resetListeners.delete(handler);
|
|
8942
|
+
}
|
|
8943
|
+
}
|
|
8944
|
+
|
|
8879
8945
|
// in future refactor, do the redux-style function(state=initial) for initial-state
|
|
8880
8946
|
// also, whatever is happening in constructor, have it happen in action queue too
|
|
8881
8947
|
class CalendarDataManager {
|
|
@@ -8895,6 +8961,7 @@ var FullCalendar = (function (exports) {
|
|
|
8895
8961
|
this.buildEventUiBases = memoize(buildEventUiBases);
|
|
8896
8962
|
this.parseContextBusinessHours = memoizeObjArg(parseContextBusinessHours);
|
|
8897
8963
|
this.buildTitle = memoize(buildTitle);
|
|
8964
|
+
this.nowManager = new CalendarNowManager();
|
|
8898
8965
|
this.emitter = new Emitter();
|
|
8899
8966
|
this.actionRunner = new TaskRunner(this._handleAction.bind(this), this.updateData.bind(this));
|
|
8900
8967
|
this.currentCalendarOptionsInput = {};
|
|
@@ -8910,6 +8977,7 @@ var FullCalendar = (function (exports) {
|
|
|
8910
8977
|
};
|
|
8911
8978
|
this.props = props;
|
|
8912
8979
|
this.actionRunner.pause();
|
|
8980
|
+
this.nowManager = new CalendarNowManager();
|
|
8913
8981
|
let dynamicOptionOverrides = {};
|
|
8914
8982
|
let optionsData = this.computeOptionsData(props.optionOverrides, dynamicOptionOverrides, props.calendarApi);
|
|
8915
8983
|
let currentViewType = optionsData.calendarOptions.initialView || optionsData.pluginHooks.initialView;
|
|
@@ -8919,12 +8987,8 @@ var FullCalendar = (function (exports) {
|
|
|
8919
8987
|
props.calendarApi.currentDataManager = this;
|
|
8920
8988
|
this.emitter.setThisContext(props.calendarApi);
|
|
8921
8989
|
this.emitter.setOptions(currentViewData.options);
|
|
8922
|
-
let currentDate = getInitialDate(optionsData.calendarOptions, optionsData.dateEnv);
|
|
8923
|
-
let dateProfile = currentViewData.dateProfileGenerator.build(currentDate);
|
|
8924
|
-
if (!rangeContainsMarker(dateProfile.activeRange, currentDate)) {
|
|
8925
|
-
currentDate = dateProfile.currentRange.start;
|
|
8926
|
-
}
|
|
8927
8990
|
let calendarContext = {
|
|
8991
|
+
nowManager: this.nowManager,
|
|
8928
8992
|
dateEnv: optionsData.dateEnv,
|
|
8929
8993
|
options: optionsData.calendarOptions,
|
|
8930
8994
|
pluginHooks: optionsData.pluginHooks,
|
|
@@ -8933,6 +8997,11 @@ var FullCalendar = (function (exports) {
|
|
|
8933
8997
|
emitter: this.emitter,
|
|
8934
8998
|
getCurrentData: this.getCurrentData,
|
|
8935
8999
|
};
|
|
9000
|
+
let currentDate = getInitialDate(optionsData.calendarOptions, optionsData.dateEnv, this.nowManager);
|
|
9001
|
+
let dateProfile = currentViewData.dateProfileGenerator.build(currentDate);
|
|
9002
|
+
if (!rangeContainsMarker(dateProfile.activeRange, currentDate)) {
|
|
9003
|
+
currentDate = dateProfile.currentRange.start;
|
|
9004
|
+
}
|
|
8936
9005
|
// needs to be after setThisContext
|
|
8937
9006
|
for (let callback of optionsData.pluginHooks.contextInit) {
|
|
8938
9007
|
callback(calendarContext);
|
|
@@ -8993,6 +9062,7 @@ var FullCalendar = (function (exports) {
|
|
|
8993
9062
|
emitter.setThisContext(props.calendarApi);
|
|
8994
9063
|
emitter.setOptions(currentViewData.options);
|
|
8995
9064
|
let calendarContext = {
|
|
9065
|
+
nowManager: this.nowManager,
|
|
8996
9066
|
dateEnv: optionsData.dateEnv,
|
|
8997
9067
|
options: optionsData.calendarOptions,
|
|
8998
9068
|
pluginHooks: optionsData.pluginHooks,
|
|
@@ -9060,7 +9130,7 @@ var FullCalendar = (function (exports) {
|
|
|
9060
9130
|
let oldData = this.data;
|
|
9061
9131
|
let optionsData = this.computeOptionsData(props.optionOverrides, state.dynamicOptionOverrides, props.calendarApi);
|
|
9062
9132
|
let currentViewData = this.computeCurrentViewData(state.currentViewType, optionsData, props.optionOverrides, state.dynamicOptionOverrides);
|
|
9063
|
-
let data = this.data = Object.assign(Object.assign(Object.assign({ viewTitle: this.buildTitle(state.dateProfile, currentViewData.options, optionsData.dateEnv), calendarApi: props.calendarApi, dispatch: this.dispatch, emitter: this.emitter, getCurrentData: this.getCurrentData }, optionsData), currentViewData), state);
|
|
9133
|
+
let data = this.data = Object.assign(Object.assign(Object.assign({ nowManager: this.nowManager, viewTitle: this.buildTitle(state.dateProfile, currentViewData.options, optionsData.dateEnv), calendarApi: props.calendarApi, dispatch: this.dispatch, emitter: this.emitter, getCurrentData: this.getCurrentData }, optionsData), currentViewData), state);
|
|
9064
9134
|
let changeHandlers = optionsData.pluginHooks.optionChangeHandlers;
|
|
9065
9135
|
let oldCalendarOptions = oldData && oldData.calendarOptions;
|
|
9066
9136
|
let newCalendarOptions = optionsData.calendarOptions;
|
|
@@ -9168,8 +9238,10 @@ var FullCalendar = (function (exports) {
|
|
|
9168
9238
|
}
|
|
9169
9239
|
let { refinedOptions, extra } = this.processRawViewOptions(viewSpec, optionsData.pluginHooks, optionsData.localeDefaults, optionOverrides, dynamicOptionOverrides);
|
|
9170
9240
|
warnUnknownOptions(extra);
|
|
9241
|
+
this.nowManager.handleInput(optionsData.dateEnv, refinedOptions.now);
|
|
9171
9242
|
let dateProfileGenerator = this.buildDateProfileGenerator({
|
|
9172
9243
|
dateProfileGeneratorClass: viewSpec.optionDefaults.dateProfileGeneratorClass,
|
|
9244
|
+
nowManager: this.nowManager,
|
|
9173
9245
|
duration: viewSpec.duration,
|
|
9174
9246
|
durationUnit: viewSpec.durationUnit,
|
|
9175
9247
|
usesMinMaxTime: viewSpec.optionDefaults.usesMinMaxTime,
|
|
@@ -9183,7 +9255,6 @@ var FullCalendar = (function (exports) {
|
|
|
9183
9255
|
dateIncrement: refinedOptions.dateIncrement,
|
|
9184
9256
|
hiddenDays: refinedOptions.hiddenDays,
|
|
9185
9257
|
weekends: refinedOptions.weekends,
|
|
9186
|
-
nowInput: refinedOptions.now,
|
|
9187
9258
|
validRangeInput: refinedOptions.validRange,
|
|
9188
9259
|
visibleRangeInput: refinedOptions.visibleRange,
|
|
9189
9260
|
fixedWeekCount: refinedOptions.fixedWeekCount,
|
|
@@ -9587,8 +9658,6 @@ var FullCalendar = (function (exports) {
|
|
|
9587
9658
|
render() {
|
|
9588
9659
|
let { props } = this;
|
|
9589
9660
|
let { toolbarConfig, options } = props;
|
|
9590
|
-
let toolbarProps = this.buildToolbarProps(props.viewSpec, props.dateProfile, props.dateProfileGenerator, props.currentDate, getNow(props.options.now, props.dateEnv), // TODO: use NowTimer????
|
|
9591
|
-
props.viewTitle);
|
|
9592
9661
|
let viewVGrow = false;
|
|
9593
9662
|
let viewHeight = '';
|
|
9594
9663
|
let viewAspectRatio;
|
|
@@ -9604,16 +9673,20 @@ var FullCalendar = (function (exports) {
|
|
|
9604
9673
|
else {
|
|
9605
9674
|
viewAspectRatio = Math.max(options.aspectRatio, 0.5); // prevent from getting too tall
|
|
9606
9675
|
}
|
|
9607
|
-
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);
|
|
9676
|
+
let viewContext = this.buildViewContext(props.viewSpec, props.viewApi, props.options, props.dateProfileGenerator, props.dateEnv, props.nowManager, props.theme, props.pluginHooks, props.dispatch, props.getCurrentData, props.emitter, props.calendarApi, this.registerInteractiveComponent, this.unregisterInteractiveComponent);
|
|
9608
9677
|
let viewLabelId = (toolbarConfig.header && toolbarConfig.header.hasTitle)
|
|
9609
9678
|
? this.state.viewLabelId
|
|
9610
9679
|
: undefined;
|
|
9611
9680
|
return (y(ViewContextType.Provider, { value: viewContext },
|
|
9612
|
-
|
|
9613
|
-
|
|
9614
|
-
|
|
9615
|
-
|
|
9616
|
-
|
|
9681
|
+
y(NowTimer, { unit: "day" }, (nowDate) => {
|
|
9682
|
+
let toolbarProps = this.buildToolbarProps(props.viewSpec, props.dateProfile, props.dateProfileGenerator, props.currentDate, nowDate, props.viewTitle);
|
|
9683
|
+
return (y(_, null,
|
|
9684
|
+
toolbarConfig.header && (y(Toolbar, Object.assign({ ref: this.headerRef, extraClassName: "fc-header-toolbar", model: toolbarConfig.header, titleId: viewLabelId }, toolbarProps))),
|
|
9685
|
+
y(ViewHarness, { liquid: viewVGrow, height: viewHeight, aspectRatio: viewAspectRatio, labeledById: viewLabelId },
|
|
9686
|
+
this.renderView(props),
|
|
9687
|
+
this.buildAppendContent()),
|
|
9688
|
+
toolbarConfig.footer && (y(Toolbar, Object.assign({ ref: this.footerRef, extraClassName: "fc-footer-toolbar", model: toolbarConfig.footer, titleId: "" }, toolbarProps)))));
|
|
9689
|
+
})));
|
|
9617
9690
|
}
|
|
9618
9691
|
componentDidMount() {
|
|
9619
9692
|
let { props } = this;
|
|
@@ -9835,7 +9908,7 @@ var FullCalendar = (function (exports) {
|
|
|
9835
9908
|
return sliceEventStore(props.eventStore, props.eventUiBases, props.dateProfile.activeRange, allDay ? props.nextDayThreshold : null).fg;
|
|
9836
9909
|
}
|
|
9837
9910
|
|
|
9838
|
-
const version = '6.1.
|
|
9911
|
+
const version = '6.1.17';
|
|
9839
9912
|
|
|
9840
9913
|
config.touchMouseIgnoreWait = 500;
|
|
9841
9914
|
let ignoreMouseDepth = 0;
|