@fullcalendar/core 6.0.0 → 6.0.2
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 +587 -9
- package/index.d.ts +7 -3
- package/index.global.js +786 -771
- package/index.global.min.js +2 -2
- package/index.js +580 -4
- package/index.js.map +1 -0
- package/internal-common.cjs +23 -586
- package/internal-common.d.ts +4 -5
- package/internal-common.js +18 -579
- package/internal-common.js.map +1 -0
- package/internal.cjs +0 -2
- package/internal.d.ts +1 -1
- package/internal.js +1 -1
- package/internal.js.map +1 -0
- package/locales/af.global.js +4 -4
- package/locales/af.global.min.js +2 -2
- package/locales/af.js.map +1 -0
- package/locales/ar-dz.global.js +4 -4
- package/locales/ar-dz.global.min.js +2 -2
- package/locales/ar-dz.js.map +1 -0
- package/locales/ar-kw.global.js +4 -4
- package/locales/ar-kw.global.min.js +2 -2
- package/locales/ar-kw.js.map +1 -0
- package/locales/ar-ly.global.js +4 -4
- package/locales/ar-ly.global.min.js +2 -2
- package/locales/ar-ly.js.map +1 -0
- package/locales/ar-ma.global.js +4 -4
- package/locales/ar-ma.global.min.js +2 -2
- package/locales/ar-ma.js.map +1 -0
- package/locales/ar-sa.global.js +4 -4
- package/locales/ar-sa.global.min.js +2 -2
- package/locales/ar-sa.js.map +1 -0
- package/locales/ar-tn.global.js +4 -4
- package/locales/ar-tn.global.min.js +2 -2
- package/locales/ar-tn.js.map +1 -0
- package/locales/ar.global.js +4 -4
- package/locales/ar.global.min.js +2 -2
- package/locales/ar.js.map +1 -0
- package/locales/az.global.js +4 -4
- package/locales/az.global.min.js +2 -2
- package/locales/az.js.map +1 -0
- package/locales/bg.global.js +4 -4
- package/locales/bg.global.min.js +2 -2
- package/locales/bg.js.map +1 -0
- package/locales/bn.global.js +4 -4
- package/locales/bn.global.min.js +2 -2
- package/locales/bn.js.map +1 -0
- package/locales/bs.global.js +4 -4
- package/locales/bs.global.min.js +2 -2
- package/locales/bs.js.map +1 -0
- package/locales/ca.global.js +4 -4
- package/locales/ca.global.min.js +2 -2
- package/locales/ca.js.map +1 -0
- package/locales/cs.global.js +4 -4
- package/locales/cs.global.min.js +2 -2
- package/locales/cs.js.map +1 -0
- package/locales/cy.global.js +4 -4
- package/locales/cy.global.min.js +2 -2
- package/locales/cy.js.map +1 -0
- package/locales/da.global.js +4 -4
- package/locales/da.global.min.js +2 -2
- package/locales/da.js.map +1 -0
- package/locales/de-at.global.js +4 -4
- package/locales/de-at.global.min.js +2 -2
- package/locales/de-at.js.map +1 -0
- package/locales/de.global.js +4 -4
- package/locales/de.global.min.js +2 -2
- package/locales/de.js.map +1 -0
- package/locales/el.global.js +4 -4
- package/locales/el.global.min.js +2 -2
- package/locales/el.js.map +1 -0
- package/locales/en-au.global.js +4 -4
- package/locales/en-au.global.min.js +2 -2
- package/locales/en-au.js.map +1 -0
- package/locales/en-gb.global.js +4 -4
- package/locales/en-gb.global.min.js +2 -2
- package/locales/en-gb.js.map +1 -0
- package/locales/en-nz.global.js +4 -4
- package/locales/en-nz.global.min.js +2 -2
- package/locales/en-nz.js.map +1 -0
- package/locales/eo.global.js +4 -4
- package/locales/eo.global.min.js +2 -2
- package/locales/eo.js.map +1 -0
- package/locales/es-us.global.js +4 -4
- package/locales/es-us.global.min.js +2 -2
- package/locales/es-us.js.map +1 -0
- package/locales/es.global.js +4 -4
- package/locales/es.global.min.js +2 -2
- package/locales/es.js.map +1 -0
- package/locales/et.global.js +4 -4
- package/locales/et.global.min.js +2 -2
- package/locales/et.js.map +1 -0
- package/locales/eu.global.js +4 -4
- package/locales/eu.global.min.js +2 -2
- package/locales/eu.js.map +1 -0
- package/locales/fa.global.js +4 -4
- package/locales/fa.global.min.js +2 -2
- package/locales/fa.js.map +1 -0
- package/locales/fi.global.js +4 -4
- package/locales/fi.global.min.js +2 -2
- package/locales/fi.js.map +1 -0
- package/locales/fr-ca.global.js +4 -4
- package/locales/fr-ca.global.min.js +2 -2
- package/locales/fr-ca.js.map +1 -0
- package/locales/fr-ch.global.js +4 -4
- package/locales/fr-ch.global.min.js +2 -2
- package/locales/fr-ch.js.map +1 -0
- package/locales/fr.global.js +4 -4
- package/locales/fr.global.min.js +2 -2
- package/locales/fr.js.map +1 -0
- package/locales/gl.global.js +4 -4
- package/locales/gl.global.min.js +2 -2
- package/locales/gl.js.map +1 -0
- package/locales/he.global.js +4 -4
- package/locales/he.global.min.js +2 -2
- package/locales/he.js.map +1 -0
- package/locales/hi.global.js +4 -4
- package/locales/hi.global.min.js +2 -2
- package/locales/hi.js.map +1 -0
- package/locales/hr.global.js +4 -4
- package/locales/hr.global.min.js +2 -2
- package/locales/hr.js.map +1 -0
- package/locales/hu.global.js +4 -4
- package/locales/hu.global.min.js +2 -2
- package/locales/hu.js.map +1 -0
- package/locales/hy-am.global.js +4 -4
- package/locales/hy-am.global.min.js +2 -2
- package/locales/hy-am.js.map +1 -0
- package/locales/id.global.js +4 -4
- package/locales/id.global.min.js +2 -2
- package/locales/id.js.map +1 -0
- package/locales/is.global.js +4 -4
- package/locales/is.global.min.js +2 -2
- package/locales/is.js.map +1 -0
- package/locales/it.global.js +4 -4
- package/locales/it.global.min.js +2 -2
- package/locales/it.js.map +1 -0
- package/locales/ja.global.js +4 -4
- package/locales/ja.global.min.js +2 -2
- package/locales/ja.js.map +1 -0
- package/locales/ka.global.js +4 -4
- package/locales/ka.global.min.js +2 -2
- package/locales/ka.js.map +1 -0
- package/locales/kk.global.js +4 -4
- package/locales/kk.global.min.js +2 -2
- package/locales/kk.js.map +1 -0
- package/locales/km.global.js +4 -4
- package/locales/km.global.min.js +2 -2
- package/locales/km.js.map +1 -0
- package/locales/ko.global.js +4 -4
- package/locales/ko.global.min.js +2 -2
- package/locales/ko.js.map +1 -0
- package/locales/ku.global.js +4 -4
- package/locales/ku.global.min.js +2 -2
- package/locales/ku.js.map +1 -0
- package/locales/lb.global.js +4 -4
- package/locales/lb.global.min.js +2 -2
- package/locales/lb.js.map +1 -0
- package/locales/lt.global.js +4 -4
- package/locales/lt.global.min.js +2 -2
- package/locales/lt.js.map +1 -0
- package/locales/lv.global.js +4 -4
- package/locales/lv.global.min.js +2 -2
- package/locales/lv.js.map +1 -0
- package/locales/mk.global.js +4 -4
- package/locales/mk.global.min.js +2 -2
- package/locales/mk.js.map +1 -0
- package/locales/ms.global.js +4 -4
- package/locales/ms.global.min.js +2 -2
- package/locales/ms.js.map +1 -0
- package/locales/nb.global.js +4 -4
- package/locales/nb.global.min.js +2 -2
- package/locales/nb.js.map +1 -0
- package/locales/ne.global.js +4 -4
- package/locales/ne.global.min.js +2 -2
- package/locales/ne.js.map +1 -0
- package/locales/nl.global.js +4 -4
- package/locales/nl.global.min.js +2 -2
- package/locales/nl.js.map +1 -0
- package/locales/nn.global.js +4 -4
- package/locales/nn.global.min.js +2 -2
- package/locales/nn.js.map +1 -0
- package/locales/pl.global.js +4 -4
- package/locales/pl.global.min.js +2 -2
- package/locales/pl.js.map +1 -0
- package/locales/pt-br.global.js +4 -4
- package/locales/pt-br.global.min.js +2 -2
- package/locales/pt-br.js.map +1 -0
- package/locales/pt.global.js +4 -4
- package/locales/pt.global.min.js +2 -2
- package/locales/pt.js.map +1 -0
- package/locales/ro.global.js +4 -4
- package/locales/ro.global.min.js +2 -2
- package/locales/ro.js.map +1 -0
- package/locales/ru.global.js +4 -4
- package/locales/ru.global.min.js +2 -2
- package/locales/ru.js.map +1 -0
- package/locales/si-lk.global.js +4 -4
- package/locales/si-lk.global.min.js +2 -2
- package/locales/si-lk.js.map +1 -0
- package/locales/sk.global.js +4 -4
- package/locales/sk.global.min.js +2 -2
- package/locales/sk.js.map +1 -0
- package/locales/sl.global.js +4 -4
- package/locales/sl.global.min.js +2 -2
- package/locales/sl.js.map +1 -0
- package/locales/sm.global.js +4 -4
- package/locales/sm.global.min.js +2 -2
- package/locales/sm.js.map +1 -0
- package/locales/sq.global.js +4 -4
- package/locales/sq.global.min.js +2 -2
- package/locales/sq.js.map +1 -0
- package/locales/sr-cyrl.global.js +4 -4
- package/locales/sr-cyrl.global.min.js +2 -2
- package/locales/sr-cyrl.js.map +1 -0
- package/locales/sr.global.js +4 -4
- package/locales/sr.global.min.js +2 -2
- package/locales/sr.js.map +1 -0
- package/locales/sv.global.js +4 -4
- package/locales/sv.global.min.js +2 -2
- package/locales/sv.js.map +1 -0
- package/locales/ta-in.global.js +4 -4
- package/locales/ta-in.global.min.js +2 -2
- package/locales/ta-in.js.map +1 -0
- package/locales/th.global.js +4 -4
- package/locales/th.global.min.js +2 -2
- package/locales/th.js.map +1 -0
- package/locales/tr.global.js +4 -4
- package/locales/tr.global.min.js +2 -2
- package/locales/tr.js.map +1 -0
- package/locales/ug.global.js +4 -4
- package/locales/ug.global.min.js +2 -2
- package/locales/ug.js.map +1 -0
- package/locales/uk.global.js +4 -4
- package/locales/uk.global.min.js +2 -2
- package/locales/uk.js.map +1 -0
- package/locales/uz.global.js +4 -4
- package/locales/uz.global.min.js +2 -2
- package/locales/uz.js.map +1 -0
- package/locales/vi.global.js +4 -4
- package/locales/vi.global.min.js +2 -2
- package/locales/vi.js.map +1 -0
- package/locales/zh-cn.global.js +4 -4
- package/locales/zh-cn.global.min.js +2 -2
- package/locales/zh-cn.js.map +1 -0
- package/locales/zh-tw.global.js +4 -4
- package/locales/zh-tw.global.min.js +2 -2
- package/locales/zh-tw.js.map +1 -0
- package/locales-all.global.js +4 -4
- package/locales-all.global.min.js +2 -2
- package/locales-all.js.map +1 -0
- package/package.json +1 -1
- package/preact.js +1 -1
- package/preact.js.map +1 -0
package/index.cjs
CHANGED
|
@@ -9,6 +9,8 @@ require('preact/compat');
|
|
|
9
9
|
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-not-allowed,.fc-not-allowed .fc-event{cursor:not-allowed}.fc-unselectable{-webkit-touch-callout:none;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-user-select:none;-moz-user-select:none;user-select:none}.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::-moz-focus-inner{border-style:none;padding:0}.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)}";
|
|
10
10
|
internalCommon.injectStyles(css_248z);
|
|
11
11
|
|
|
12
|
+
const globalLocales = [];
|
|
13
|
+
|
|
12
14
|
const MINIMAL_RAW_EN_LOCALE = {
|
|
13
15
|
code: 'en',
|
|
14
16
|
week: {
|
|
@@ -53,7 +55,7 @@ const RAW_EN_LOCALE = Object.assign(Object.assign({}, MINIMAL_RAW_EN_LOCALE), {
|
|
|
53
55
|
} });
|
|
54
56
|
function organizeRawLocales(explicitRawLocales) {
|
|
55
57
|
let defaultCode = explicitRawLocales.length > 0 ? explicitRawLocales[0].code : 'en';
|
|
56
|
-
let allRawLocales =
|
|
58
|
+
let allRawLocales = globalLocales.concat(explicitRawLocales);
|
|
57
59
|
let rawLocaleMap = {
|
|
58
60
|
en: RAW_EN_LOCALE,
|
|
59
61
|
};
|
|
@@ -102,6 +104,165 @@ function parseLocale(codeArg, codes, raw) {
|
|
|
102
104
|
};
|
|
103
105
|
}
|
|
104
106
|
|
|
107
|
+
// TODO: easier way to add new hooks? need to update a million things
|
|
108
|
+
function createPlugin(input) {
|
|
109
|
+
return {
|
|
110
|
+
id: internalCommon.guid(),
|
|
111
|
+
name: input.name,
|
|
112
|
+
premiumReleaseDate: input.premiumReleaseDate ? new Date(input.premiumReleaseDate) : undefined,
|
|
113
|
+
deps: input.deps || [],
|
|
114
|
+
reducers: input.reducers || [],
|
|
115
|
+
isLoadingFuncs: input.isLoadingFuncs || [],
|
|
116
|
+
contextInit: [].concat(input.contextInit || []),
|
|
117
|
+
eventRefiners: input.eventRefiners || {},
|
|
118
|
+
eventDefMemberAdders: input.eventDefMemberAdders || [],
|
|
119
|
+
eventSourceRefiners: input.eventSourceRefiners || {},
|
|
120
|
+
isDraggableTransformers: input.isDraggableTransformers || [],
|
|
121
|
+
eventDragMutationMassagers: input.eventDragMutationMassagers || [],
|
|
122
|
+
eventDefMutationAppliers: input.eventDefMutationAppliers || [],
|
|
123
|
+
dateSelectionTransformers: input.dateSelectionTransformers || [],
|
|
124
|
+
datePointTransforms: input.datePointTransforms || [],
|
|
125
|
+
dateSpanTransforms: input.dateSpanTransforms || [],
|
|
126
|
+
views: input.views || {},
|
|
127
|
+
viewPropsTransformers: input.viewPropsTransformers || [],
|
|
128
|
+
isPropsValid: input.isPropsValid || null,
|
|
129
|
+
externalDefTransforms: input.externalDefTransforms || [],
|
|
130
|
+
viewContainerAppends: input.viewContainerAppends || [],
|
|
131
|
+
eventDropTransformers: input.eventDropTransformers || [],
|
|
132
|
+
componentInteractions: input.componentInteractions || [],
|
|
133
|
+
calendarInteractions: input.calendarInteractions || [],
|
|
134
|
+
themeClasses: input.themeClasses || {},
|
|
135
|
+
eventSourceDefs: input.eventSourceDefs || [],
|
|
136
|
+
cmdFormatter: input.cmdFormatter,
|
|
137
|
+
recurringTypes: input.recurringTypes || [],
|
|
138
|
+
namedTimeZonedImpl: input.namedTimeZonedImpl,
|
|
139
|
+
initialView: input.initialView || '',
|
|
140
|
+
elementDraggingImpl: input.elementDraggingImpl,
|
|
141
|
+
optionChangeHandlers: input.optionChangeHandlers || {},
|
|
142
|
+
scrollGridImpl: input.scrollGridImpl || null,
|
|
143
|
+
listenerRefiners: input.listenerRefiners || {},
|
|
144
|
+
optionRefiners: input.optionRefiners || {},
|
|
145
|
+
propSetHandlers: input.propSetHandlers || {},
|
|
146
|
+
};
|
|
147
|
+
}
|
|
148
|
+
function buildPluginHooks(pluginDefs, globalDefs) {
|
|
149
|
+
let currentPluginIds = {};
|
|
150
|
+
let hooks = {
|
|
151
|
+
premiumReleaseDate: undefined,
|
|
152
|
+
reducers: [],
|
|
153
|
+
isLoadingFuncs: [],
|
|
154
|
+
contextInit: [],
|
|
155
|
+
eventRefiners: {},
|
|
156
|
+
eventDefMemberAdders: [],
|
|
157
|
+
eventSourceRefiners: {},
|
|
158
|
+
isDraggableTransformers: [],
|
|
159
|
+
eventDragMutationMassagers: [],
|
|
160
|
+
eventDefMutationAppliers: [],
|
|
161
|
+
dateSelectionTransformers: [],
|
|
162
|
+
datePointTransforms: [],
|
|
163
|
+
dateSpanTransforms: [],
|
|
164
|
+
views: {},
|
|
165
|
+
viewPropsTransformers: [],
|
|
166
|
+
isPropsValid: null,
|
|
167
|
+
externalDefTransforms: [],
|
|
168
|
+
viewContainerAppends: [],
|
|
169
|
+
eventDropTransformers: [],
|
|
170
|
+
componentInteractions: [],
|
|
171
|
+
calendarInteractions: [],
|
|
172
|
+
themeClasses: {},
|
|
173
|
+
eventSourceDefs: [],
|
|
174
|
+
cmdFormatter: null,
|
|
175
|
+
recurringTypes: [],
|
|
176
|
+
namedTimeZonedImpl: null,
|
|
177
|
+
initialView: '',
|
|
178
|
+
elementDraggingImpl: null,
|
|
179
|
+
optionChangeHandlers: {},
|
|
180
|
+
scrollGridImpl: null,
|
|
181
|
+
listenerRefiners: {},
|
|
182
|
+
optionRefiners: {},
|
|
183
|
+
propSetHandlers: {},
|
|
184
|
+
};
|
|
185
|
+
function addDefs(defs) {
|
|
186
|
+
for (let def of defs) {
|
|
187
|
+
const pluginName = def.name;
|
|
188
|
+
const currentId = currentPluginIds[pluginName];
|
|
189
|
+
if (currentId === undefined) {
|
|
190
|
+
currentPluginIds[pluginName] = def.id;
|
|
191
|
+
addDefs(def.deps);
|
|
192
|
+
hooks = combineHooks(hooks, def);
|
|
193
|
+
}
|
|
194
|
+
else if (currentId !== def.id) {
|
|
195
|
+
// different ID than the one already added
|
|
196
|
+
console.warn(`Duplicate plugin '${pluginName}'`);
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
if (pluginDefs) {
|
|
201
|
+
addDefs(pluginDefs);
|
|
202
|
+
}
|
|
203
|
+
addDefs(globalDefs);
|
|
204
|
+
return hooks;
|
|
205
|
+
}
|
|
206
|
+
function buildBuildPluginHooks() {
|
|
207
|
+
let currentOverrideDefs = [];
|
|
208
|
+
let currentGlobalDefs = [];
|
|
209
|
+
let currentHooks;
|
|
210
|
+
return (overrideDefs, globalDefs) => {
|
|
211
|
+
if (!currentHooks || !internalCommon.isArraysEqual(overrideDefs, currentOverrideDefs) || !internalCommon.isArraysEqual(globalDefs, currentGlobalDefs)) {
|
|
212
|
+
currentHooks = buildPluginHooks(overrideDefs, globalDefs);
|
|
213
|
+
}
|
|
214
|
+
currentOverrideDefs = overrideDefs;
|
|
215
|
+
currentGlobalDefs = globalDefs;
|
|
216
|
+
return currentHooks;
|
|
217
|
+
};
|
|
218
|
+
}
|
|
219
|
+
function combineHooks(hooks0, hooks1) {
|
|
220
|
+
return {
|
|
221
|
+
premiumReleaseDate: compareOptionalDates(hooks0.premiumReleaseDate, hooks1.premiumReleaseDate),
|
|
222
|
+
reducers: hooks0.reducers.concat(hooks1.reducers),
|
|
223
|
+
isLoadingFuncs: hooks0.isLoadingFuncs.concat(hooks1.isLoadingFuncs),
|
|
224
|
+
contextInit: hooks0.contextInit.concat(hooks1.contextInit),
|
|
225
|
+
eventRefiners: Object.assign(Object.assign({}, hooks0.eventRefiners), hooks1.eventRefiners),
|
|
226
|
+
eventDefMemberAdders: hooks0.eventDefMemberAdders.concat(hooks1.eventDefMemberAdders),
|
|
227
|
+
eventSourceRefiners: Object.assign(Object.assign({}, hooks0.eventSourceRefiners), hooks1.eventSourceRefiners),
|
|
228
|
+
isDraggableTransformers: hooks0.isDraggableTransformers.concat(hooks1.isDraggableTransformers),
|
|
229
|
+
eventDragMutationMassagers: hooks0.eventDragMutationMassagers.concat(hooks1.eventDragMutationMassagers),
|
|
230
|
+
eventDefMutationAppliers: hooks0.eventDefMutationAppliers.concat(hooks1.eventDefMutationAppliers),
|
|
231
|
+
dateSelectionTransformers: hooks0.dateSelectionTransformers.concat(hooks1.dateSelectionTransformers),
|
|
232
|
+
datePointTransforms: hooks0.datePointTransforms.concat(hooks1.datePointTransforms),
|
|
233
|
+
dateSpanTransforms: hooks0.dateSpanTransforms.concat(hooks1.dateSpanTransforms),
|
|
234
|
+
views: Object.assign(Object.assign({}, hooks0.views), hooks1.views),
|
|
235
|
+
viewPropsTransformers: hooks0.viewPropsTransformers.concat(hooks1.viewPropsTransformers),
|
|
236
|
+
isPropsValid: hooks1.isPropsValid || hooks0.isPropsValid,
|
|
237
|
+
externalDefTransforms: hooks0.externalDefTransforms.concat(hooks1.externalDefTransforms),
|
|
238
|
+
viewContainerAppends: hooks0.viewContainerAppends.concat(hooks1.viewContainerAppends),
|
|
239
|
+
eventDropTransformers: hooks0.eventDropTransformers.concat(hooks1.eventDropTransformers),
|
|
240
|
+
calendarInteractions: hooks0.calendarInteractions.concat(hooks1.calendarInteractions),
|
|
241
|
+
componentInteractions: hooks0.componentInteractions.concat(hooks1.componentInteractions),
|
|
242
|
+
themeClasses: Object.assign(Object.assign({}, hooks0.themeClasses), hooks1.themeClasses),
|
|
243
|
+
eventSourceDefs: hooks0.eventSourceDefs.concat(hooks1.eventSourceDefs),
|
|
244
|
+
cmdFormatter: hooks1.cmdFormatter || hooks0.cmdFormatter,
|
|
245
|
+
recurringTypes: hooks0.recurringTypes.concat(hooks1.recurringTypes),
|
|
246
|
+
namedTimeZonedImpl: hooks1.namedTimeZonedImpl || hooks0.namedTimeZonedImpl,
|
|
247
|
+
initialView: hooks0.initialView || hooks1.initialView,
|
|
248
|
+
elementDraggingImpl: hooks0.elementDraggingImpl || hooks1.elementDraggingImpl,
|
|
249
|
+
optionChangeHandlers: Object.assign(Object.assign({}, hooks0.optionChangeHandlers), hooks1.optionChangeHandlers),
|
|
250
|
+
scrollGridImpl: hooks1.scrollGridImpl || hooks0.scrollGridImpl,
|
|
251
|
+
listenerRefiners: Object.assign(Object.assign({}, hooks0.listenerRefiners), hooks1.listenerRefiners),
|
|
252
|
+
optionRefiners: Object.assign(Object.assign({}, hooks0.optionRefiners), hooks1.optionRefiners),
|
|
253
|
+
propSetHandlers: Object.assign(Object.assign({}, hooks0.propSetHandlers), hooks1.propSetHandlers),
|
|
254
|
+
};
|
|
255
|
+
}
|
|
256
|
+
function compareOptionalDates(date0, date1) {
|
|
257
|
+
if (date0 === undefined) {
|
|
258
|
+
return date1;
|
|
259
|
+
}
|
|
260
|
+
if (date1 === undefined) {
|
|
261
|
+
return date0;
|
|
262
|
+
}
|
|
263
|
+
return new Date(Math.max(date0.valueOf(), date1.valueOf()));
|
|
264
|
+
}
|
|
265
|
+
|
|
105
266
|
class StandardTheme extends internalCommon.Theme {
|
|
106
267
|
}
|
|
107
268
|
StandardTheme.prototype.classes = {
|
|
@@ -331,6 +492,170 @@ function reduceDateProfile(currentDateProfile, action, currentDate, dateProfileG
|
|
|
331
492
|
return currentDateProfile;
|
|
332
493
|
}
|
|
333
494
|
|
|
495
|
+
function initEventSources(calendarOptions, dateProfile, context) {
|
|
496
|
+
let activeRange = dateProfile ? dateProfile.activeRange : null;
|
|
497
|
+
return addSources({}, parseInitialSources(calendarOptions, context), activeRange, context);
|
|
498
|
+
}
|
|
499
|
+
function reduceEventSources(eventSources, action, dateProfile, context) {
|
|
500
|
+
let activeRange = dateProfile ? dateProfile.activeRange : null; // need this check?
|
|
501
|
+
switch (action.type) {
|
|
502
|
+
case 'ADD_EVENT_SOURCES': // already parsed
|
|
503
|
+
return addSources(eventSources, action.sources, activeRange, context);
|
|
504
|
+
case 'REMOVE_EVENT_SOURCE':
|
|
505
|
+
return removeSource(eventSources, action.sourceId);
|
|
506
|
+
case 'PREV': // TODO: how do we track all actions that affect dateProfile :(
|
|
507
|
+
case 'NEXT':
|
|
508
|
+
case 'CHANGE_DATE':
|
|
509
|
+
case 'CHANGE_VIEW_TYPE':
|
|
510
|
+
if (dateProfile) {
|
|
511
|
+
return fetchDirtySources(eventSources, activeRange, context);
|
|
512
|
+
}
|
|
513
|
+
return eventSources;
|
|
514
|
+
case 'FETCH_EVENT_SOURCES':
|
|
515
|
+
return fetchSourcesByIds(eventSources, action.sourceIds ? // why no type?
|
|
516
|
+
internalCommon.arrayToHash(action.sourceIds) :
|
|
517
|
+
excludeStaticSources(eventSources, context), activeRange, action.isRefetch || false, context);
|
|
518
|
+
case 'RECEIVE_EVENTS':
|
|
519
|
+
case 'RECEIVE_EVENT_ERROR':
|
|
520
|
+
return receiveResponse(eventSources, action.sourceId, action.fetchId, action.fetchRange);
|
|
521
|
+
case 'REMOVE_ALL_EVENT_SOURCES':
|
|
522
|
+
return {};
|
|
523
|
+
default:
|
|
524
|
+
return eventSources;
|
|
525
|
+
}
|
|
526
|
+
}
|
|
527
|
+
function reduceEventSourcesNewTimeZone(eventSources, dateProfile, context) {
|
|
528
|
+
let activeRange = dateProfile ? dateProfile.activeRange : null; // need this check?
|
|
529
|
+
return fetchSourcesByIds(eventSources, excludeStaticSources(eventSources, context), activeRange, true, context);
|
|
530
|
+
}
|
|
531
|
+
function computeEventSourcesLoading(eventSources) {
|
|
532
|
+
for (let sourceId in eventSources) {
|
|
533
|
+
if (eventSources[sourceId].isFetching) {
|
|
534
|
+
return true;
|
|
535
|
+
}
|
|
536
|
+
}
|
|
537
|
+
return false;
|
|
538
|
+
}
|
|
539
|
+
function addSources(eventSourceHash, sources, fetchRange, context) {
|
|
540
|
+
let hash = {};
|
|
541
|
+
for (let source of sources) {
|
|
542
|
+
hash[source.sourceId] = source;
|
|
543
|
+
}
|
|
544
|
+
if (fetchRange) {
|
|
545
|
+
hash = fetchDirtySources(hash, fetchRange, context);
|
|
546
|
+
}
|
|
547
|
+
return Object.assign(Object.assign({}, eventSourceHash), hash);
|
|
548
|
+
}
|
|
549
|
+
function removeSource(eventSourceHash, sourceId) {
|
|
550
|
+
return internalCommon.filterHash(eventSourceHash, (eventSource) => eventSource.sourceId !== sourceId);
|
|
551
|
+
}
|
|
552
|
+
function fetchDirtySources(sourceHash, fetchRange, context) {
|
|
553
|
+
return fetchSourcesByIds(sourceHash, internalCommon.filterHash(sourceHash, (eventSource) => isSourceDirty(eventSource, fetchRange, context)), fetchRange, false, context);
|
|
554
|
+
}
|
|
555
|
+
function isSourceDirty(eventSource, fetchRange, context) {
|
|
556
|
+
if (!doesSourceNeedRange(eventSource, context)) {
|
|
557
|
+
return !eventSource.latestFetchId;
|
|
558
|
+
}
|
|
559
|
+
return !context.options.lazyFetching ||
|
|
560
|
+
!eventSource.fetchRange ||
|
|
561
|
+
eventSource.isFetching || // always cancel outdated in-progress fetches
|
|
562
|
+
fetchRange.start < eventSource.fetchRange.start ||
|
|
563
|
+
fetchRange.end > eventSource.fetchRange.end;
|
|
564
|
+
}
|
|
565
|
+
function fetchSourcesByIds(prevSources, sourceIdHash, fetchRange, isRefetch, context) {
|
|
566
|
+
let nextSources = {};
|
|
567
|
+
for (let sourceId in prevSources) {
|
|
568
|
+
let source = prevSources[sourceId];
|
|
569
|
+
if (sourceIdHash[sourceId]) {
|
|
570
|
+
nextSources[sourceId] = fetchSource(source, fetchRange, isRefetch, context);
|
|
571
|
+
}
|
|
572
|
+
else {
|
|
573
|
+
nextSources[sourceId] = source;
|
|
574
|
+
}
|
|
575
|
+
}
|
|
576
|
+
return nextSources;
|
|
577
|
+
}
|
|
578
|
+
function fetchSource(eventSource, fetchRange, isRefetch, context) {
|
|
579
|
+
let { options, calendarApi } = context;
|
|
580
|
+
let sourceDef = context.pluginHooks.eventSourceDefs[eventSource.sourceDefId];
|
|
581
|
+
let fetchId = internalCommon.guid();
|
|
582
|
+
sourceDef.fetch({
|
|
583
|
+
eventSource,
|
|
584
|
+
range: fetchRange,
|
|
585
|
+
isRefetch,
|
|
586
|
+
context,
|
|
587
|
+
}, (res) => {
|
|
588
|
+
let { rawEvents } = res;
|
|
589
|
+
if (options.eventSourceSuccess) {
|
|
590
|
+
rawEvents = options.eventSourceSuccess.call(calendarApi, rawEvents, res.response) || rawEvents;
|
|
591
|
+
}
|
|
592
|
+
if (eventSource.success) {
|
|
593
|
+
rawEvents = eventSource.success.call(calendarApi, rawEvents, res.response) || rawEvents;
|
|
594
|
+
}
|
|
595
|
+
context.dispatch({
|
|
596
|
+
type: 'RECEIVE_EVENTS',
|
|
597
|
+
sourceId: eventSource.sourceId,
|
|
598
|
+
fetchId,
|
|
599
|
+
fetchRange,
|
|
600
|
+
rawEvents,
|
|
601
|
+
});
|
|
602
|
+
}, (error) => {
|
|
603
|
+
let errorHandled = false;
|
|
604
|
+
if (options.eventSourceFailure) {
|
|
605
|
+
options.eventSourceFailure.call(calendarApi, error);
|
|
606
|
+
errorHandled = true;
|
|
607
|
+
}
|
|
608
|
+
if (eventSource.failure) {
|
|
609
|
+
eventSource.failure(error);
|
|
610
|
+
errorHandled = true;
|
|
611
|
+
}
|
|
612
|
+
if (!errorHandled) {
|
|
613
|
+
console.warn(error.message, error);
|
|
614
|
+
}
|
|
615
|
+
context.dispatch({
|
|
616
|
+
type: 'RECEIVE_EVENT_ERROR',
|
|
617
|
+
sourceId: eventSource.sourceId,
|
|
618
|
+
fetchId,
|
|
619
|
+
fetchRange,
|
|
620
|
+
error,
|
|
621
|
+
});
|
|
622
|
+
});
|
|
623
|
+
return Object.assign(Object.assign({}, eventSource), { isFetching: true, latestFetchId: fetchId });
|
|
624
|
+
}
|
|
625
|
+
function receiveResponse(sourceHash, sourceId, fetchId, fetchRange) {
|
|
626
|
+
let eventSource = sourceHash[sourceId];
|
|
627
|
+
if (eventSource && // not already removed
|
|
628
|
+
fetchId === eventSource.latestFetchId) {
|
|
629
|
+
return Object.assign(Object.assign({}, sourceHash), { [sourceId]: Object.assign(Object.assign({}, eventSource), { isFetching: false, fetchRange }) });
|
|
630
|
+
}
|
|
631
|
+
return sourceHash;
|
|
632
|
+
}
|
|
633
|
+
function excludeStaticSources(eventSources, context) {
|
|
634
|
+
return internalCommon.filterHash(eventSources, (eventSource) => doesSourceNeedRange(eventSource, context));
|
|
635
|
+
}
|
|
636
|
+
function parseInitialSources(rawOptions, context) {
|
|
637
|
+
let refiners = internalCommon.buildEventSourceRefiners(context);
|
|
638
|
+
let rawSources = [].concat(rawOptions.eventSources || []);
|
|
639
|
+
let sources = []; // parsed
|
|
640
|
+
if (rawOptions.initialEvents) {
|
|
641
|
+
rawSources.unshift(rawOptions.initialEvents);
|
|
642
|
+
}
|
|
643
|
+
if (rawOptions.events) {
|
|
644
|
+
rawSources.unshift(rawOptions.events);
|
|
645
|
+
}
|
|
646
|
+
for (let rawSource of rawSources) {
|
|
647
|
+
let source = internalCommon.parseEventSource(rawSource, context, refiners);
|
|
648
|
+
if (source) {
|
|
649
|
+
sources.push(source);
|
|
650
|
+
}
|
|
651
|
+
}
|
|
652
|
+
return sources;
|
|
653
|
+
}
|
|
654
|
+
function doesSourceNeedRange(eventSource, context) {
|
|
655
|
+
let defs = context.pluginHooks.eventSourceDefs;
|
|
656
|
+
return !defs[eventSource.sourceDefId].ignoreRange;
|
|
657
|
+
}
|
|
658
|
+
|
|
334
659
|
function reduceDateSelection(currentSelection, action) {
|
|
335
660
|
switch (action.type) {
|
|
336
661
|
case 'UNSELECT_DATES':
|
|
@@ -516,6 +841,257 @@ class ViewImpl {
|
|
|
516
841
|
}
|
|
517
842
|
}
|
|
518
843
|
|
|
844
|
+
let eventSourceDef$2 = {
|
|
845
|
+
ignoreRange: true,
|
|
846
|
+
parseMeta(refined) {
|
|
847
|
+
if (Array.isArray(refined.events)) {
|
|
848
|
+
return refined.events;
|
|
849
|
+
}
|
|
850
|
+
return null;
|
|
851
|
+
},
|
|
852
|
+
fetch(arg, successCallback) {
|
|
853
|
+
successCallback({
|
|
854
|
+
rawEvents: arg.eventSource.meta,
|
|
855
|
+
});
|
|
856
|
+
},
|
|
857
|
+
};
|
|
858
|
+
const arrayEventSourcePlugin = createPlugin({
|
|
859
|
+
name: 'array-event-source',
|
|
860
|
+
eventSourceDefs: [eventSourceDef$2],
|
|
861
|
+
});
|
|
862
|
+
|
|
863
|
+
let eventSourceDef$1 = {
|
|
864
|
+
parseMeta(refined) {
|
|
865
|
+
if (typeof refined.events === 'function') {
|
|
866
|
+
return refined.events;
|
|
867
|
+
}
|
|
868
|
+
return null;
|
|
869
|
+
},
|
|
870
|
+
fetch(arg, successCallback, errorCallback) {
|
|
871
|
+
const { dateEnv } = arg.context;
|
|
872
|
+
const func = arg.eventSource.meta;
|
|
873
|
+
internalCommon.unpromisify(func.bind(null, internalCommon.buildRangeApiWithTimeZone(arg.range, dateEnv)), (rawEvents) => successCallback({ rawEvents }), errorCallback);
|
|
874
|
+
},
|
|
875
|
+
};
|
|
876
|
+
const funcEventSourcePlugin = createPlugin({
|
|
877
|
+
name: 'func-event-source',
|
|
878
|
+
eventSourceDefs: [eventSourceDef$1],
|
|
879
|
+
});
|
|
880
|
+
|
|
881
|
+
const JSON_FEED_EVENT_SOURCE_REFINERS = {
|
|
882
|
+
method: String,
|
|
883
|
+
extraParams: internalCommon.identity,
|
|
884
|
+
startParam: String,
|
|
885
|
+
endParam: String,
|
|
886
|
+
timeZoneParam: String,
|
|
887
|
+
};
|
|
888
|
+
|
|
889
|
+
let eventSourceDef = {
|
|
890
|
+
parseMeta(refined) {
|
|
891
|
+
if (refined.url && (refined.format === 'json' || !refined.format)) {
|
|
892
|
+
return {
|
|
893
|
+
url: refined.url,
|
|
894
|
+
format: 'json',
|
|
895
|
+
method: (refined.method || 'GET').toUpperCase(),
|
|
896
|
+
extraParams: refined.extraParams,
|
|
897
|
+
startParam: refined.startParam,
|
|
898
|
+
endParam: refined.endParam,
|
|
899
|
+
timeZoneParam: refined.timeZoneParam,
|
|
900
|
+
};
|
|
901
|
+
}
|
|
902
|
+
return null;
|
|
903
|
+
},
|
|
904
|
+
fetch(arg, successCallback, errorCallback) {
|
|
905
|
+
const { meta } = arg.eventSource;
|
|
906
|
+
const requestParams = buildRequestParams(meta, arg.range, arg.context);
|
|
907
|
+
internalCommon.requestJson(meta.method, meta.url, requestParams).then(([rawEvents, response]) => {
|
|
908
|
+
successCallback({ rawEvents, response });
|
|
909
|
+
}, errorCallback);
|
|
910
|
+
},
|
|
911
|
+
};
|
|
912
|
+
const jsonFeedEventSourcePlugin = createPlugin({
|
|
913
|
+
name: 'json-event-source',
|
|
914
|
+
eventSourceRefiners: JSON_FEED_EVENT_SOURCE_REFINERS,
|
|
915
|
+
eventSourceDefs: [eventSourceDef],
|
|
916
|
+
});
|
|
917
|
+
function buildRequestParams(meta, range, context) {
|
|
918
|
+
let { dateEnv, options } = context;
|
|
919
|
+
let startParam;
|
|
920
|
+
let endParam;
|
|
921
|
+
let timeZoneParam;
|
|
922
|
+
let customRequestParams;
|
|
923
|
+
let params = {};
|
|
924
|
+
startParam = meta.startParam;
|
|
925
|
+
if (startParam == null) {
|
|
926
|
+
startParam = options.startParam;
|
|
927
|
+
}
|
|
928
|
+
endParam = meta.endParam;
|
|
929
|
+
if (endParam == null) {
|
|
930
|
+
endParam = options.endParam;
|
|
931
|
+
}
|
|
932
|
+
timeZoneParam = meta.timeZoneParam;
|
|
933
|
+
if (timeZoneParam == null) {
|
|
934
|
+
timeZoneParam = options.timeZoneParam;
|
|
935
|
+
}
|
|
936
|
+
// retrieve any outbound GET/POST data from the options
|
|
937
|
+
if (typeof meta.extraParams === 'function') {
|
|
938
|
+
// supplied as a function that returns a key/value object
|
|
939
|
+
customRequestParams = meta.extraParams();
|
|
940
|
+
}
|
|
941
|
+
else {
|
|
942
|
+
// probably supplied as a straight key/value object
|
|
943
|
+
customRequestParams = meta.extraParams || {};
|
|
944
|
+
}
|
|
945
|
+
Object.assign(params, customRequestParams);
|
|
946
|
+
params[startParam] = dateEnv.formatIso(range.start);
|
|
947
|
+
params[endParam] = dateEnv.formatIso(range.end);
|
|
948
|
+
if (dateEnv.timeZone !== 'local') {
|
|
949
|
+
params[timeZoneParam] = dateEnv.timeZone;
|
|
950
|
+
}
|
|
951
|
+
return params;
|
|
952
|
+
}
|
|
953
|
+
|
|
954
|
+
const SIMPLE_RECURRING_REFINERS = {
|
|
955
|
+
daysOfWeek: internalCommon.identity,
|
|
956
|
+
startTime: internalCommon.createDuration,
|
|
957
|
+
endTime: internalCommon.createDuration,
|
|
958
|
+
duration: internalCommon.createDuration,
|
|
959
|
+
startRecur: internalCommon.identity,
|
|
960
|
+
endRecur: internalCommon.identity,
|
|
961
|
+
};
|
|
962
|
+
|
|
963
|
+
let recurring = {
|
|
964
|
+
parse(refined, dateEnv) {
|
|
965
|
+
if (refined.daysOfWeek || refined.startTime || refined.endTime || refined.startRecur || refined.endRecur) {
|
|
966
|
+
let recurringData = {
|
|
967
|
+
daysOfWeek: refined.daysOfWeek || null,
|
|
968
|
+
startTime: refined.startTime || null,
|
|
969
|
+
endTime: refined.endTime || null,
|
|
970
|
+
startRecur: refined.startRecur ? dateEnv.createMarker(refined.startRecur) : null,
|
|
971
|
+
endRecur: refined.endRecur ? dateEnv.createMarker(refined.endRecur) : null,
|
|
972
|
+
};
|
|
973
|
+
let duration;
|
|
974
|
+
if (refined.duration) {
|
|
975
|
+
duration = refined.duration;
|
|
976
|
+
}
|
|
977
|
+
if (!duration && refined.startTime && refined.endTime) {
|
|
978
|
+
duration = internalCommon.subtractDurations(refined.endTime, refined.startTime);
|
|
979
|
+
}
|
|
980
|
+
return {
|
|
981
|
+
allDayGuess: Boolean(!refined.startTime && !refined.endTime),
|
|
982
|
+
duration,
|
|
983
|
+
typeData: recurringData, // doesn't need endTime anymore but oh well
|
|
984
|
+
};
|
|
985
|
+
}
|
|
986
|
+
return null;
|
|
987
|
+
},
|
|
988
|
+
expand(typeData, framingRange, dateEnv) {
|
|
989
|
+
let clippedFramingRange = internalCommon.intersectRanges(framingRange, { start: typeData.startRecur, end: typeData.endRecur });
|
|
990
|
+
if (clippedFramingRange) {
|
|
991
|
+
return expandRanges(typeData.daysOfWeek, typeData.startTime, clippedFramingRange, dateEnv);
|
|
992
|
+
}
|
|
993
|
+
return [];
|
|
994
|
+
},
|
|
995
|
+
};
|
|
996
|
+
const simpleRecurringEventsPlugin = createPlugin({
|
|
997
|
+
name: 'simple-recurring-event',
|
|
998
|
+
recurringTypes: [recurring],
|
|
999
|
+
eventRefiners: SIMPLE_RECURRING_REFINERS,
|
|
1000
|
+
});
|
|
1001
|
+
function expandRanges(daysOfWeek, startTime, framingRange, dateEnv) {
|
|
1002
|
+
let dowHash = daysOfWeek ? internalCommon.arrayToHash(daysOfWeek) : null;
|
|
1003
|
+
let dayMarker = internalCommon.startOfDay(framingRange.start);
|
|
1004
|
+
let endMarker = framingRange.end;
|
|
1005
|
+
let instanceStarts = [];
|
|
1006
|
+
while (dayMarker < endMarker) {
|
|
1007
|
+
let instanceStart;
|
|
1008
|
+
// if everyday, or this particular day-of-week
|
|
1009
|
+
if (!dowHash || dowHash[dayMarker.getUTCDay()]) {
|
|
1010
|
+
if (startTime) {
|
|
1011
|
+
instanceStart = dateEnv.add(dayMarker, startTime);
|
|
1012
|
+
}
|
|
1013
|
+
else {
|
|
1014
|
+
instanceStart = dayMarker;
|
|
1015
|
+
}
|
|
1016
|
+
instanceStarts.push(instanceStart);
|
|
1017
|
+
}
|
|
1018
|
+
dayMarker = internalCommon.addDays(dayMarker, 1);
|
|
1019
|
+
}
|
|
1020
|
+
return instanceStarts;
|
|
1021
|
+
}
|
|
1022
|
+
|
|
1023
|
+
const changeHandlerPlugin = createPlugin({
|
|
1024
|
+
name: 'change-handler',
|
|
1025
|
+
optionChangeHandlers: {
|
|
1026
|
+
events(events, context) {
|
|
1027
|
+
handleEventSources([events], context);
|
|
1028
|
+
},
|
|
1029
|
+
eventSources: handleEventSources,
|
|
1030
|
+
},
|
|
1031
|
+
});
|
|
1032
|
+
/*
|
|
1033
|
+
BUG: if `event` was supplied, all previously-given `eventSources` will be wiped out
|
|
1034
|
+
*/
|
|
1035
|
+
function handleEventSources(inputs, context) {
|
|
1036
|
+
let unfoundSources = internalCommon.hashValuesToArray(context.getCurrentData().eventSources);
|
|
1037
|
+
let newInputs = [];
|
|
1038
|
+
for (let input of inputs) {
|
|
1039
|
+
let inputFound = false;
|
|
1040
|
+
for (let i = 0; i < unfoundSources.length; i += 1) {
|
|
1041
|
+
if (unfoundSources[i]._raw === input) {
|
|
1042
|
+
unfoundSources.splice(i, 1); // delete
|
|
1043
|
+
inputFound = true;
|
|
1044
|
+
break;
|
|
1045
|
+
}
|
|
1046
|
+
}
|
|
1047
|
+
if (!inputFound) {
|
|
1048
|
+
newInputs.push(input);
|
|
1049
|
+
}
|
|
1050
|
+
}
|
|
1051
|
+
for (let unfoundSource of unfoundSources) {
|
|
1052
|
+
context.dispatch({
|
|
1053
|
+
type: 'REMOVE_EVENT_SOURCE',
|
|
1054
|
+
sourceId: unfoundSource.sourceId,
|
|
1055
|
+
});
|
|
1056
|
+
}
|
|
1057
|
+
for (let newInput of newInputs) {
|
|
1058
|
+
context.calendarApi.addEventSource(newInput);
|
|
1059
|
+
}
|
|
1060
|
+
}
|
|
1061
|
+
|
|
1062
|
+
function handleDateProfile(dateProfile, context) {
|
|
1063
|
+
context.emitter.trigger('datesSet', Object.assign(Object.assign({}, internalCommon.buildRangeApiWithTimeZone(dateProfile.activeRange, context.dateEnv)), { view: context.viewApi }));
|
|
1064
|
+
}
|
|
1065
|
+
|
|
1066
|
+
function handleEventStore(eventStore, context) {
|
|
1067
|
+
let { emitter } = context;
|
|
1068
|
+
if (emitter.hasHandlers('eventsSet')) {
|
|
1069
|
+
emitter.trigger('eventsSet', internalCommon.buildEventApis(eventStore, context));
|
|
1070
|
+
}
|
|
1071
|
+
}
|
|
1072
|
+
|
|
1073
|
+
/*
|
|
1074
|
+
this array is exposed on the root namespace so that UMD plugins can add to it.
|
|
1075
|
+
see the rollup-bundles script.
|
|
1076
|
+
*/
|
|
1077
|
+
const globalPlugins = [
|
|
1078
|
+
arrayEventSourcePlugin,
|
|
1079
|
+
funcEventSourcePlugin,
|
|
1080
|
+
jsonFeedEventSourcePlugin,
|
|
1081
|
+
simpleRecurringEventsPlugin,
|
|
1082
|
+
changeHandlerPlugin,
|
|
1083
|
+
createPlugin({
|
|
1084
|
+
name: 'misc',
|
|
1085
|
+
isLoadingFuncs: [
|
|
1086
|
+
(state) => computeEventSourcesLoading(state.eventSources),
|
|
1087
|
+
],
|
|
1088
|
+
propSetHandlers: {
|
|
1089
|
+
dateProfile: handleDateProfile,
|
|
1090
|
+
eventStore: handleEventStore,
|
|
1091
|
+
},
|
|
1092
|
+
}),
|
|
1093
|
+
];
|
|
1094
|
+
|
|
519
1095
|
class TaskRunner {
|
|
520
1096
|
constructor(runTaskOption, drainedOption) {
|
|
521
1097
|
this.runTaskOption = runTaskOption;
|
|
@@ -599,7 +1175,7 @@ class CalendarDataManager {
|
|
|
599
1175
|
this.computeCurrentViewData = internalCommon.memoize(this._computeCurrentViewData);
|
|
600
1176
|
this.organizeRawLocales = internalCommon.memoize(organizeRawLocales);
|
|
601
1177
|
this.buildLocale = internalCommon.memoize(buildLocale);
|
|
602
|
-
this.buildPluginHooks =
|
|
1178
|
+
this.buildPluginHooks = buildBuildPluginHooks();
|
|
603
1179
|
this.buildDateEnv = internalCommon.memoize(buildDateEnv$1);
|
|
604
1180
|
this.buildTheme = internalCommon.memoize(buildTheme);
|
|
605
1181
|
this.parseToolbars = internalCommon.memoize(parseToolbars);
|
|
@@ -652,7 +1228,7 @@ class CalendarDataManager {
|
|
|
652
1228
|
callback(calendarContext);
|
|
653
1229
|
}
|
|
654
1230
|
// NOT DRY
|
|
655
|
-
let eventSources =
|
|
1231
|
+
let eventSources = initEventSources(optionsData.calendarOptions, dateProfile, calendarContext);
|
|
656
1232
|
let initialState = {
|
|
657
1233
|
dynamicOptionOverrides,
|
|
658
1234
|
currentViewType,
|
|
@@ -719,9 +1295,9 @@ class CalendarDataManager {
|
|
|
719
1295
|
!internalCommon.rangeContainsMarker(dateProfile.currentRange, currentDate)) {
|
|
720
1296
|
currentDate = dateProfile.currentRange.start;
|
|
721
1297
|
}
|
|
722
|
-
let eventSources =
|
|
1298
|
+
let eventSources = reduceEventSources(state.eventSources, action, dateProfile, calendarContext);
|
|
723
1299
|
let eventStore = internalCommon.reduceEventStore(state.eventStore, action, eventSources, dateProfile, calendarContext);
|
|
724
|
-
let isEventsLoading =
|
|
1300
|
+
let isEventsLoading = computeEventSourcesLoading(eventSources); // BAD. also called in this func in computeIsLoading
|
|
725
1301
|
let renderableEventStore = (isEventsLoading && !currentViewData.options.progressiveEventRendering) ?
|
|
726
1302
|
(state.renderableEventStore || eventStore) : // try from previous state
|
|
727
1303
|
eventStore;
|
|
@@ -774,7 +1350,7 @@ class CalendarDataManager {
|
|
|
774
1350
|
if (oldCalendarOptions && oldCalendarOptions !== newCalendarOptions) {
|
|
775
1351
|
if (oldCalendarOptions.timeZone !== newCalendarOptions.timeZone) {
|
|
776
1352
|
// hack
|
|
777
|
-
state.eventSources = data.eventSources =
|
|
1353
|
+
state.eventSources = data.eventSources = reduceEventSourcesNewTimeZone(data.eventSources, state.dateProfile, data);
|
|
778
1354
|
state.eventStore = data.eventStore = internalCommon.rezoneEventStoreDates(data.eventStore, oldData.dateEnv, data.dateEnv);
|
|
779
1355
|
}
|
|
780
1356
|
for (let optionName in changeHandlers) {
|
|
@@ -816,7 +1392,7 @@ class CalendarDataManager {
|
|
|
816
1392
|
let availableLocaleData = this.organizeRawLocales(locales);
|
|
817
1393
|
let availableRawLocales = availableLocaleData.map;
|
|
818
1394
|
let localeDefaults = this.buildLocale(locale || availableLocaleData.defaultCode, availableRawLocales).options;
|
|
819
|
-
let pluginHooks = this.buildPluginHooks(optionOverrides.plugins || [],
|
|
1395
|
+
let pluginHooks = this.buildPluginHooks(optionOverrides.plugins || [], globalPlugins);
|
|
820
1396
|
let refiners = this.currentCalendarOptionsRefiners = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, internalCommon.BASE_OPTION_REFINERS), internalCommon.CALENDAR_LISTENER_REFINERS), internalCommon.CALENDAR_OPTION_REFINERS), pluginHooks.listenerRefiners), pluginHooks.optionRefiners);
|
|
821
1397
|
let extra = {};
|
|
822
1398
|
let raw = internalCommon.mergeRawOptions([
|
|
@@ -1534,12 +2110,14 @@ function sliceEvents(props, allDay) {
|
|
|
1534
2110
|
return internalCommon.sliceEventStore(props.eventStore, props.eventUiBases, props.dateProfile.activeRange, allDay ? props.nextDayThreshold : null).fg;
|
|
1535
2111
|
}
|
|
1536
2112
|
|
|
1537
|
-
const version = '6.0.
|
|
2113
|
+
const version = '6.0.2';
|
|
1538
2114
|
|
|
1539
2115
|
exports.JsonRequestError = internalCommon.JsonRequestError;
|
|
1540
|
-
exports.createPlugin = internalCommon.createPlugin;
|
|
1541
2116
|
exports.Calendar = Calendar;
|
|
2117
|
+
exports.createPlugin = createPlugin;
|
|
1542
2118
|
exports.formatDate = formatDate;
|
|
1543
2119
|
exports.formatRange = formatRange;
|
|
2120
|
+
exports.globalLocales = globalLocales;
|
|
2121
|
+
exports.globalPlugins = globalPlugins;
|
|
1544
2122
|
exports.sliceEvents = sliceEvents;
|
|
1545
2123
|
exports.version = version;
|