@fullcalendar/core 6.0.2 → 6.0.3
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 → index.esm.js} +147 -158
- package/index.global.js +31 -8
- package/index.global.min.js +2 -2
- package/index.js +158 -147
- package/internal-common.d.ts +9 -7
- package/{internal-common.cjs → internal-common.esm.js} +4742 -4955
- package/internal-common.js +4930 -4671
- package/internal.esm.js +3 -0
- package/internal.js +196 -3
- package/locales/{af.cjs → af.esm.js} +1 -5
- package/locales/af.global.js +1 -1
- package/locales/af.global.min.js +1 -1
- package/locales/af.js +5 -1
- package/locales/{ar-dz.cjs → ar-dz.esm.js} +1 -5
- package/locales/ar-dz.global.js +1 -1
- package/locales/ar-dz.global.min.js +1 -1
- package/locales/ar-dz.js +5 -1
- package/locales/{ar-kw.cjs → ar-kw.esm.js} +1 -5
- package/locales/ar-kw.global.js +1 -1
- package/locales/ar-kw.global.min.js +1 -1
- package/locales/ar-kw.js +5 -1
- package/locales/{ar-ly.cjs → ar-ly.esm.js} +1 -5
- package/locales/ar-ly.global.js +1 -1
- package/locales/ar-ly.global.min.js +1 -1
- package/locales/ar-ly.js +5 -1
- package/locales/{ar-ma.cjs → ar-ma.esm.js} +1 -5
- package/locales/ar-ma.global.js +1 -1
- package/locales/ar-ma.global.min.js +1 -1
- package/locales/ar-ma.js +5 -1
- package/locales/{ar-sa.cjs → ar-sa.esm.js} +1 -5
- package/locales/ar-sa.global.js +1 -1
- package/locales/ar-sa.global.min.js +1 -1
- package/locales/ar-sa.js +5 -1
- package/locales/{ar-tn.cjs → ar-tn.esm.js} +1 -5
- package/locales/ar-tn.global.js +1 -1
- package/locales/ar-tn.global.min.js +1 -1
- package/locales/ar-tn.js +5 -1
- package/locales/{ar.cjs → ar.esm.js} +1 -5
- package/locales/ar.global.js +1 -1
- package/locales/ar.global.min.js +1 -1
- package/locales/ar.js +5 -1
- package/locales/{az.cjs → az.esm.js} +1 -5
- package/locales/az.global.js +1 -1
- package/locales/az.global.min.js +1 -1
- package/locales/az.js +5 -1
- package/locales/{bg.cjs → bg.esm.js} +1 -5
- package/locales/bg.global.js +1 -1
- package/locales/bg.global.min.js +1 -1
- package/locales/bg.js +5 -1
- package/locales/{bn.cjs → bn.esm.js} +1 -5
- package/locales/bn.global.js +1 -1
- package/locales/bn.global.min.js +1 -1
- package/locales/bn.js +5 -1
- package/locales/{bs.cjs → bs.esm.js} +1 -5
- package/locales/bs.global.js +1 -1
- package/locales/bs.global.min.js +1 -1
- package/locales/bs.js +5 -1
- package/locales/{ca.cjs → ca.esm.js} +1 -5
- package/locales/ca.global.js +1 -1
- package/locales/ca.global.min.js +1 -1
- package/locales/ca.js +5 -1
- package/locales/{cs.cjs → cs.esm.js} +1 -5
- package/locales/cs.global.js +1 -1
- package/locales/cs.global.min.js +1 -1
- package/locales/cs.js +5 -1
- package/locales/{cy.cjs → cy.esm.js} +1 -5
- package/locales/cy.global.js +1 -1
- package/locales/cy.global.min.js +1 -1
- package/locales/cy.js +5 -1
- package/locales/{da.cjs → da.esm.js} +1 -5
- package/locales/da.global.js +1 -1
- package/locales/da.global.min.js +1 -1
- package/locales/da.js +5 -1
- package/locales/{de-at.cjs → de-at.esm.js} +1 -5
- package/locales/de-at.global.js +1 -1
- package/locales/de-at.global.min.js +1 -1
- package/locales/de-at.js +5 -1
- package/locales/{de.cjs → de.esm.js} +1 -5
- package/locales/de.global.js +1 -1
- package/locales/de.global.min.js +1 -1
- package/locales/de.js +5 -1
- package/locales/{el.cjs → el.esm.js} +1 -5
- package/locales/el.global.js +1 -1
- package/locales/el.global.min.js +1 -1
- package/locales/el.js +5 -1
- package/locales/{en-au.cjs → en-au.esm.js} +1 -5
- package/locales/en-au.global.js +1 -1
- package/locales/en-au.global.min.js +1 -1
- package/locales/en-au.js +5 -1
- package/locales/{en-gb.cjs → en-gb.esm.js} +1 -5
- package/locales/en-gb.global.js +1 -1
- package/locales/en-gb.global.min.js +1 -1
- package/locales/en-gb.js +5 -1
- package/locales/{en-nz.cjs → en-nz.esm.js} +1 -5
- package/locales/en-nz.global.js +1 -1
- package/locales/en-nz.global.min.js +1 -1
- package/locales/en-nz.js +5 -1
- package/locales/{eo.cjs → eo.esm.js} +1 -5
- package/locales/eo.global.js +1 -1
- package/locales/eo.global.min.js +1 -1
- package/locales/eo.js +5 -1
- package/locales/{es-us.cjs → es-us.esm.js} +1 -5
- package/locales/es-us.global.js +1 -1
- package/locales/es-us.global.min.js +1 -1
- package/locales/es-us.js +5 -1
- package/locales/{es.cjs → es.esm.js} +1 -5
- package/locales/es.global.js +1 -1
- package/locales/es.global.min.js +1 -1
- package/locales/es.js +5 -1
- package/locales/{et.cjs → et.esm.js} +1 -5
- package/locales/et.global.js +1 -1
- package/locales/et.global.min.js +1 -1
- package/locales/et.js +5 -1
- package/locales/{eu.cjs → eu.esm.js} +1 -5
- package/locales/eu.global.js +1 -1
- package/locales/eu.global.min.js +1 -1
- package/locales/eu.js +5 -1
- package/locales/{fa.cjs → fa.esm.js} +1 -5
- package/locales/fa.global.js +1 -1
- package/locales/fa.global.min.js +1 -1
- package/locales/fa.js +5 -1
- package/locales/{fi.cjs → fi.esm.js} +1 -5
- package/locales/fi.global.js +1 -1
- package/locales/fi.global.min.js +1 -1
- package/locales/fi.js +5 -1
- package/locales/{fr-ca.cjs → fr-ca.esm.js} +1 -5
- package/locales/fr-ca.global.js +1 -1
- package/locales/fr-ca.global.min.js +1 -1
- package/locales/fr-ca.js +5 -1
- package/locales/{fr-ch.cjs → fr-ch.esm.js} +1 -5
- package/locales/fr-ch.global.js +1 -1
- package/locales/fr-ch.global.min.js +1 -1
- package/locales/fr-ch.js +5 -1
- package/locales/{fr.cjs → fr.esm.js} +1 -5
- package/locales/fr.global.js +1 -1
- package/locales/fr.global.min.js +1 -1
- package/locales/fr.js +5 -1
- package/locales/{gl.cjs → gl.esm.js} +1 -5
- package/locales/gl.global.js +1 -1
- package/locales/gl.global.min.js +1 -1
- package/locales/gl.js +5 -1
- package/locales/{he.cjs → he.esm.js} +1 -5
- package/locales/he.global.js +1 -1
- package/locales/he.global.min.js +1 -1
- package/locales/he.js +5 -1
- package/locales/{hi.cjs → hi.esm.js} +1 -5
- package/locales/hi.global.js +1 -1
- package/locales/hi.global.min.js +1 -1
- package/locales/hi.js +5 -1
- package/locales/{hr.cjs → hr.esm.js} +1 -5
- package/locales/hr.global.js +1 -1
- package/locales/hr.global.min.js +1 -1
- package/locales/hr.js +5 -1
- package/locales/{hu.cjs → hu.esm.js} +1 -5
- package/locales/hu.global.js +1 -1
- package/locales/hu.global.min.js +1 -1
- package/locales/hu.js +5 -1
- package/locales/{hy-am.cjs → hy-am.esm.js} +1 -5
- package/locales/hy-am.global.js +1 -1
- package/locales/hy-am.global.min.js +1 -1
- package/locales/hy-am.js +5 -1
- package/locales/{id.cjs → id.esm.js} +1 -5
- package/locales/id.global.js +1 -1
- package/locales/id.global.min.js +1 -1
- package/locales/id.js +5 -1
- package/locales/{is.cjs → is.esm.js} +1 -5
- package/locales/is.global.js +1 -1
- package/locales/is.global.min.js +1 -1
- package/locales/is.js +5 -1
- package/locales/{it.cjs → it.esm.js} +1 -5
- package/locales/it.global.js +1 -1
- package/locales/it.global.min.js +1 -1
- package/locales/it.js +5 -1
- package/locales/{ja.cjs → ja.esm.js} +1 -5
- package/locales/ja.global.js +1 -1
- package/locales/ja.global.min.js +1 -1
- package/locales/ja.js +5 -1
- package/locales/{ka.cjs → ka.esm.js} +1 -5
- package/locales/ka.global.js +1 -1
- package/locales/ka.global.min.js +1 -1
- package/locales/ka.js +5 -1
- package/locales/{kk.cjs → kk.esm.js} +1 -5
- package/locales/kk.global.js +1 -1
- package/locales/kk.global.min.js +1 -1
- package/locales/kk.js +5 -1
- package/locales/{km.cjs → km.esm.js} +1 -5
- package/locales/km.global.js +1 -1
- package/locales/km.global.min.js +1 -1
- package/locales/km.js +5 -1
- package/locales/{ko.cjs → ko.esm.js} +1 -5
- package/locales/ko.global.js +1 -1
- package/locales/ko.global.min.js +1 -1
- package/locales/ko.js +5 -1
- package/locales/{ku.cjs → ku.esm.js} +1 -5
- package/locales/ku.global.js +1 -1
- package/locales/ku.global.min.js +1 -1
- package/locales/ku.js +5 -1
- package/locales/{lb.cjs → lb.esm.js} +1 -5
- package/locales/lb.global.js +1 -1
- package/locales/lb.global.min.js +1 -1
- package/locales/lb.js +5 -1
- package/locales/{lt.cjs → lt.esm.js} +1 -5
- package/locales/lt.global.js +1 -1
- package/locales/lt.global.min.js +1 -1
- package/locales/lt.js +5 -1
- package/locales/{lv.cjs → lv.esm.js} +1 -5
- package/locales/lv.global.js +1 -1
- package/locales/lv.global.min.js +1 -1
- package/locales/lv.js +5 -1
- package/locales/{mk.cjs → mk.esm.js} +1 -5
- package/locales/mk.global.js +1 -1
- package/locales/mk.global.min.js +1 -1
- package/locales/mk.js +5 -1
- package/locales/{ms.cjs → ms.esm.js} +1 -5
- package/locales/ms.global.js +1 -1
- package/locales/ms.global.min.js +1 -1
- package/locales/ms.js +5 -1
- package/locales/{nb.cjs → nb.esm.js} +1 -5
- package/locales/nb.global.js +1 -1
- package/locales/nb.global.min.js +1 -1
- package/locales/nb.js +5 -1
- package/locales/{ne.cjs → ne.esm.js} +1 -5
- package/locales/ne.global.js +1 -1
- package/locales/ne.global.min.js +1 -1
- package/locales/ne.js +5 -1
- package/locales/{nl.cjs → nl.esm.js} +1 -5
- package/locales/nl.global.js +1 -1
- package/locales/nl.global.min.js +1 -1
- package/locales/nl.js +5 -1
- package/locales/{nn.cjs → nn.esm.js} +1 -5
- package/locales/nn.global.js +1 -1
- package/locales/nn.global.min.js +1 -1
- package/locales/nn.js +5 -1
- package/locales/{pl.cjs → pl.esm.js} +1 -5
- package/locales/pl.global.js +1 -1
- package/locales/pl.global.min.js +1 -1
- package/locales/pl.js +5 -1
- package/locales/{pt-br.cjs → pt-br.esm.js} +1 -5
- package/locales/pt-br.global.js +1 -1
- package/locales/pt-br.global.min.js +1 -1
- package/locales/pt-br.js +5 -1
- package/locales/{pt.cjs → pt.esm.js} +1 -5
- package/locales/pt.global.js +1 -1
- package/locales/pt.global.min.js +1 -1
- package/locales/pt.js +5 -1
- package/locales/{ro.cjs → ro.esm.js} +1 -5
- package/locales/ro.global.js +1 -1
- package/locales/ro.global.min.js +1 -1
- package/locales/ro.js +5 -1
- package/locales/{ru.cjs → ru.esm.js} +1 -5
- package/locales/ru.global.js +1 -1
- package/locales/ru.global.min.js +1 -1
- package/locales/ru.js +5 -1
- package/locales/{si-lk.cjs → si-lk.esm.js} +1 -5
- package/locales/si-lk.global.js +1 -1
- package/locales/si-lk.global.min.js +1 -1
- package/locales/si-lk.js +5 -1
- package/locales/{sk.cjs → sk.esm.js} +1 -5
- package/locales/sk.global.js +1 -1
- package/locales/sk.global.min.js +1 -1
- package/locales/sk.js +5 -1
- package/locales/{sl.cjs → sl.esm.js} +1 -5
- package/locales/sl.global.js +1 -1
- package/locales/sl.global.min.js +1 -1
- package/locales/sl.js +5 -1
- package/locales/{sm.cjs → sm.esm.js} +1 -5
- package/locales/sm.global.js +1 -1
- package/locales/sm.global.min.js +1 -1
- package/locales/sm.js +5 -1
- package/locales/{sq.cjs → sq.esm.js} +1 -5
- package/locales/sq.global.js +1 -1
- package/locales/sq.global.min.js +1 -1
- package/locales/sq.js +5 -1
- package/locales/{sr-cyrl.cjs → sr-cyrl.esm.js} +1 -5
- package/locales/sr-cyrl.global.js +1 -1
- package/locales/sr-cyrl.global.min.js +1 -1
- package/locales/sr-cyrl.js +5 -1
- package/locales/{sr.cjs → sr.esm.js} +1 -5
- package/locales/sr.global.js +1 -1
- package/locales/sr.global.min.js +1 -1
- package/locales/sr.js +5 -1
- package/locales/{sv.cjs → sv.esm.js} +1 -5
- package/locales/sv.global.js +1 -1
- package/locales/sv.global.min.js +1 -1
- package/locales/sv.js +5 -1
- package/locales/{ta-in.cjs → ta-in.esm.js} +1 -5
- package/locales/ta-in.global.js +1 -1
- package/locales/ta-in.global.min.js +1 -1
- package/locales/ta-in.js +5 -1
- package/locales/{th.cjs → th.esm.js} +1 -5
- package/locales/th.global.js +1 -1
- package/locales/th.global.min.js +1 -1
- package/locales/th.js +5 -1
- package/locales/{tr.cjs → tr.esm.js} +1 -5
- package/locales/tr.global.js +1 -1
- package/locales/tr.global.min.js +1 -1
- package/locales/tr.js +5 -1
- package/locales/{ug.cjs → ug.esm.js} +1 -5
- package/locales/ug.global.js +1 -1
- package/locales/ug.global.min.js +1 -1
- package/locales/ug.js +5 -1
- package/locales/{uk.cjs → uk.esm.js} +1 -5
- package/locales/uk.global.js +1 -1
- package/locales/uk.global.min.js +1 -1
- package/locales/uk.js +5 -1
- package/locales/{uz.cjs → uz.esm.js} +1 -5
- package/locales/uz.global.js +1 -1
- package/locales/uz.global.min.js +1 -1
- package/locales/uz.js +5 -1
- package/locales/{vi.cjs → vi.esm.js} +1 -5
- package/locales/vi.global.js +1 -1
- package/locales/vi.global.min.js +1 -1
- package/locales/vi.js +5 -1
- package/locales/{zh-cn.cjs → zh-cn.esm.js} +1 -5
- package/locales/zh-cn.global.js +1 -1
- package/locales/zh-cn.global.min.js +1 -1
- package/locales/zh-cn.js +5 -1
- package/locales/{zh-tw.cjs → zh-tw.esm.js} +1 -5
- package/locales/zh-tw.global.js +1 -1
- package/locales/zh-tw.global.min.js +1 -1
- package/locales/zh-tw.js +5 -1
- package/locales-all.esm.js +84 -0
- package/locales-all.global.js +1 -1
- package/locales-all.global.min.js +1 -1
- package/locales-all.js +84 -80
- package/package.json +13 -23
- package/preact.esm.js +3 -0
- package/preact.js +22 -3
- package/index.js.map +0 -1
- package/internal-common.js.map +0 -1
- package/internal.cjs +0 -196
- package/internal.js.map +0 -1
- package/locales/af.js.map +0 -1
- package/locales/ar-dz.js.map +0 -1
- package/locales/ar-kw.js.map +0 -1
- package/locales/ar-ly.js.map +0 -1
- package/locales/ar-ma.js.map +0 -1
- package/locales/ar-sa.js.map +0 -1
- package/locales/ar-tn.js.map +0 -1
- package/locales/ar.js.map +0 -1
- package/locales/az.js.map +0 -1
- package/locales/bg.js.map +0 -1
- package/locales/bn.js.map +0 -1
- package/locales/bs.js.map +0 -1
- package/locales/ca.js.map +0 -1
- package/locales/cs.js.map +0 -1
- package/locales/cy.js.map +0 -1
- package/locales/da.js.map +0 -1
- package/locales/de-at.js.map +0 -1
- package/locales/de.js.map +0 -1
- package/locales/el.js.map +0 -1
- package/locales/en-au.js.map +0 -1
- package/locales/en-gb.js.map +0 -1
- package/locales/en-nz.js.map +0 -1
- package/locales/eo.js.map +0 -1
- package/locales/es-us.js.map +0 -1
- package/locales/es.js.map +0 -1
- package/locales/et.js.map +0 -1
- package/locales/eu.js.map +0 -1
- package/locales/fa.js.map +0 -1
- package/locales/fi.js.map +0 -1
- package/locales/fr-ca.js.map +0 -1
- package/locales/fr-ch.js.map +0 -1
- package/locales/fr.js.map +0 -1
- package/locales/gl.js.map +0 -1
- package/locales/he.js.map +0 -1
- package/locales/hi.js.map +0 -1
- package/locales/hr.js.map +0 -1
- package/locales/hu.js.map +0 -1
- package/locales/hy-am.js.map +0 -1
- package/locales/id.js.map +0 -1
- package/locales/is.js.map +0 -1
- package/locales/it.js.map +0 -1
- package/locales/ja.js.map +0 -1
- package/locales/ka.js.map +0 -1
- package/locales/kk.js.map +0 -1
- package/locales/km.js.map +0 -1
- package/locales/ko.js.map +0 -1
- package/locales/ku.js.map +0 -1
- package/locales/lb.js.map +0 -1
- package/locales/lt.js.map +0 -1
- package/locales/lv.js.map +0 -1
- package/locales/mk.js.map +0 -1
- package/locales/ms.js.map +0 -1
- package/locales/nb.js.map +0 -1
- package/locales/ne.js.map +0 -1
- package/locales/nl.js.map +0 -1
- package/locales/nn.js.map +0 -1
- package/locales/pl.js.map +0 -1
- package/locales/pt-br.js.map +0 -1
- package/locales/pt.js.map +0 -1
- package/locales/ro.js.map +0 -1
- package/locales/ru.js.map +0 -1
- package/locales/si-lk.js.map +0 -1
- package/locales/sk.js.map +0 -1
- package/locales/sl.js.map +0 -1
- package/locales/sm.js.map +0 -1
- package/locales/sq.js.map +0 -1
- package/locales/sr-cyrl.js.map +0 -1
- package/locales/sr.js.map +0 -1
- package/locales/sv.js.map +0 -1
- package/locales/ta-in.js.map +0 -1
- package/locales/th.js.map +0 -1
- package/locales/tr.js.map +0 -1
- package/locales/ug.js.map +0 -1
- package/locales/uk.js.map +0 -1
- package/locales/uz.js.map +0 -1
- package/locales/vi.js.map +0 -1
- package/locales/zh-cn.js.map +0 -1
- package/locales/zh-tw.js.map +0 -1
- package/locales-all.cjs +0 -88
- package/locales-all.js.map +0 -1
- package/preact.cjs +0 -22
- package/preact.js.map +0 -1
package/index.js
CHANGED
|
@@ -1,10 +1,13 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var internalCommon = require('./internal-common.js');
|
|
6
|
+
var preact = require('preact');
|
|
7
|
+
require('preact/compat');
|
|
5
8
|
|
|
6
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,AAEAAAALAIAAAwAwT1MvMg8SBfAAAAC8AAAAYGNtYXAXVtKNAAABHAAAAFRnYXNwAAAAEAAAAXAAAAAIZ2x5ZgYydxIAAAF4AAAFNGhlYWQUJ7cIAAAGrAAAADZoaGVhB20DzAAABuQAAAAkaG10eCIABhQAAAcIAAAALGxvY2ED4AU6AAAHNAAAABhtYXhwAA8AjAAAB0wAAAAgbmFtZXsr690AAAdsAAABhnBvc3QAAwAAAAAI9AAAACAAAwPAAZAABQAAApkCzAAAAI8CmQLMAAAB6wAzAQkAAAAAAAAAAAAAAAAAAAABEAAAAAAAAAAAAAAAAAAAAABAAADpBgPA/8AAQAPAAEAAAAABAAAAAAAAAAAAAAAgAAAAAAADAAAAAwAAABwAAQADAAAAHAADAAEAAAAcAAQAOAAAAAoACAACAAIAAQAg6Qb//f//AAAAAAAg6QD//f//AAH/4xcEAAMAAQAAAAAAAAAAAAAAAQAB//8ADwABAAAAAAAAAAAAAgAANzkBAAAAAAEAAAAAAAAAAAACAAA3OQEAAAAAAQAAAAAAAAAAAAIAADc5AQAAAAABAWIAjQKeAskAEwAAJSc3NjQnJiIHAQYUFwEWMjc2NCcCnuLiDQ0MJAz/AA0NAQAMJAwNDcni4gwjDQwM/wANIwz/AA0NDCMNAAAAAQFiAI0CngLJABMAACUBNjQnASYiBwYUHwEHBhQXFjI3AZ4BAA0N/wAMJAwNDeLiDQ0MJAyNAQAMIw0BAAwMDSMM4uINIwwNDQAAAAIA4gC3Ax4CngATACcAACUnNzY0JyYiDwEGFB8BFjI3NjQnISc3NjQnJiIPAQYUHwEWMjc2NCcB87e3DQ0MIw3VDQ3VDSMMDQ0BK7e3DQ0MJAzVDQ3VDCQMDQ3zuLcMJAwNDdUNIwzWDAwNIwy4twwkDA0N1Q0jDNYMDA0jDAAAAgDiALcDHgKeABMAJwAAJTc2NC8BJiIHBhQfAQcGFBcWMjchNzY0LwEmIgcGFB8BBwYUFxYyNwJJ1Q0N1Q0jDA0Nt7cNDQwjDf7V1Q0N1QwkDA0Nt7cNDQwkDLfWDCMN1Q0NDCQMt7gMIw0MDNYMIw3VDQ0MJAy3uAwjDQwMAAADAFUAAAOrA1UAMwBoAHcAABMiBgcOAQcOAQcOARURFBYXHgEXHgEXHgEzITI2Nz4BNz4BNz4BNRE0JicuAScuAScuASMFITIWFx4BFx4BFx4BFREUBgcOAQcOAQcOASMhIiYnLgEnLgEnLgE1ETQ2Nz4BNz4BNz4BMxMhMjY1NCYjISIGFRQWM9UNGAwLFQkJDgUFBQUFBQ4JCRULDBgNAlYNGAwLFQkJDgUFBQUFBQ4JCRULDBgN/aoCVgQIBAQHAwMFAQIBAQIBBQMDBwQECAT9qgQIBAQHAwMFAQIBAQIBBQMDBwQECASAAVYRGRkR/qoRGRkRA1UFBAUOCQkVDAsZDf2rDRkLDBUJCA4FBQUFBQUOCQgVDAsZDQJVDRkLDBUJCQ4FBAVVAgECBQMCBwQECAX9qwQJAwQHAwMFAQICAgIBBQMDBwQDCQQCVQUIBAQHAgMFAgEC/oAZEhEZGRESGQAAAAADAFUAAAOrA1UAMwBoAIkAABMiBgcOAQcOAQcOARURFBYXHgEXHgEXHgEzITI2Nz4BNz4BNz4BNRE0JicuAScuAScuASMFITIWFx4BFx4BFx4BFREUBgcOAQcOAQcOASMhIiYnLgEnLgEnLgE1ETQ2Nz4BNz4BNz4BMxMzFRQWMzI2PQEzMjY1NCYrATU0JiMiBh0BIyIGFRQWM9UNGAwLFQkJDgUFBQUFBQ4JCRULDBgNAlYNGAwLFQkJDgUFBQUFBQ4JCRULDBgN/aoCVgQIBAQHAwMFAQIBAQIBBQMDBwQECAT9qgQIBAQHAwMFAQIBAQIBBQMDBwQECASAgBkSEhmAERkZEYAZEhIZgBEZGREDVQUEBQ4JCRUMCxkN/asNGQsMFQkIDgUFBQUFBQ4JCBUMCxkNAlUNGQsMFQkJDgUEBVUCAQIFAwIHBAQIBf2rBAkDBAcDAwUBAgICAgEFAwMHBAMJBAJVBQgEBAcCAwUCAQL+gIASGRkSgBkSERmAEhkZEoAZERIZAAABAOIAjQMeAskAIAAAExcHBhQXFjI/ARcWMjc2NC8BNzY0JyYiDwEnJiIHBhQX4uLiDQ0MJAzi4gwkDA0N4uINDQwkDOLiDCQMDQ0CjeLiDSMMDQ3h4Q0NDCMN4uIMIw0MDOLiDAwNIwwAAAABAAAAAQAAa5n0y18PPPUACwQAAAAAANivOVsAAAAA2K85WwAAAAADqwNVAAAACAACAAAAAAAAAAEAAAPA/8AAAAQAAAAAAAOrAAEAAAAAAAAAAAAAAAAAAAALBAAAAAAAAAAAAAAAAgAAAAQAAWIEAAFiBAAA4gQAAOIEAABVBAAAVQQAAOIAAAAAAAoAFAAeAEQAagCqAOoBngJkApoAAQAAAAsAigADAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAA4ArgABAAAAAAABAAcAAAABAAAAAAACAAcAYAABAAAAAAADAAcANgABAAAAAAAEAAcAdQABAAAAAAAFAAsAFQABAAAAAAAGAAcASwABAAAAAAAKABoAigADAAEECQABAA4ABwADAAEECQACAA4AZwADAAEECQADAA4APQADAAEECQAEAA4AfAADAAEECQAFABYAIAADAAEECQAGAA4AUgADAAEECQAKADQApGZjaWNvbnMAZgBjAGkAYwBvAG4Ac1ZlcnNpb24gMS4wAFYAZQByAHMAaQBvAG4AIAAxAC4AMGZjaWNvbnMAZgBjAGkAYwBvAG4Ac2ZjaWNvbnMAZgBjAGkAYwBvAG4Ac1JlZ3VsYXIAUgBlAGcAdQBsAGEAcmZjaWNvbnMAZgBjAGkAYwBvAG4Ac0ZvbnQgZ2VuZXJhdGVkIGJ5IEljb01vb24uAEYAbwBuAHQAIABnAGUAbgBlAHIAYQB0AGUAZAAgAGIAeQAgAEkAYwBvAE0AbwBvAG4ALgAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=\") 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)}";
|
|
7
|
-
injectStyles(css_248z);
|
|
10
|
+
internalCommon.injectStyles(css_248z);
|
|
8
11
|
|
|
9
12
|
const globalLocales = [];
|
|
10
13
|
|
|
@@ -88,7 +91,7 @@ function queryRawLocale(codes, available) {
|
|
|
88
91
|
return null;
|
|
89
92
|
}
|
|
90
93
|
function parseLocale(codeArg, codes, raw) {
|
|
91
|
-
let merged = mergeProps([MINIMAL_RAW_EN_LOCALE, raw], ['buttonText']);
|
|
94
|
+
let merged = internalCommon.mergeProps([MINIMAL_RAW_EN_LOCALE, raw], ['buttonText']);
|
|
92
95
|
delete merged.code; // don't want this part of the options
|
|
93
96
|
let { week } = merged;
|
|
94
97
|
delete merged.week;
|
|
@@ -104,7 +107,7 @@ function parseLocale(codeArg, codes, raw) {
|
|
|
104
107
|
// TODO: easier way to add new hooks? need to update a million things
|
|
105
108
|
function createPlugin(input) {
|
|
106
109
|
return {
|
|
107
|
-
id: guid(),
|
|
110
|
+
id: internalCommon.guid(),
|
|
108
111
|
name: input.name,
|
|
109
112
|
premiumReleaseDate: input.premiumReleaseDate ? new Date(input.premiumReleaseDate) : undefined,
|
|
110
113
|
deps: input.deps || [],
|
|
@@ -205,7 +208,7 @@ function buildBuildPluginHooks() {
|
|
|
205
208
|
let currentGlobalDefs = [];
|
|
206
209
|
let currentHooks;
|
|
207
210
|
return (overrideDefs, globalDefs) => {
|
|
208
|
-
if (!currentHooks || !isArraysEqual(overrideDefs, currentOverrideDefs) || !isArraysEqual(globalDefs, currentGlobalDefs)) {
|
|
211
|
+
if (!currentHooks || !internalCommon.isArraysEqual(overrideDefs, currentOverrideDefs) || !internalCommon.isArraysEqual(globalDefs, currentGlobalDefs)) {
|
|
209
212
|
currentHooks = buildPluginHooks(overrideDefs, globalDefs);
|
|
210
213
|
}
|
|
211
214
|
currentOverrideDefs = overrideDefs;
|
|
@@ -260,7 +263,7 @@ function compareOptionalDates(date0, date1) {
|
|
|
260
263
|
return new Date(Math.max(date0.valueOf(), date1.valueOf()));
|
|
261
264
|
}
|
|
262
265
|
|
|
263
|
-
class StandardTheme extends Theme {
|
|
266
|
+
class StandardTheme extends internalCommon.Theme {
|
|
264
267
|
}
|
|
265
268
|
StandardTheme.prototype.classes = {
|
|
266
269
|
root: 'fc-theme-standard',
|
|
@@ -337,7 +340,7 @@ function buildViewDef(viewType, hash, defaultConfigs, overrideConfigs) {
|
|
|
337
340
|
}
|
|
338
341
|
|
|
339
342
|
function parseViewConfigs(inputs) {
|
|
340
|
-
return mapHash(inputs, parseViewConfig);
|
|
343
|
+
return internalCommon.mapHash(inputs, parseViewConfig);
|
|
341
344
|
}
|
|
342
345
|
function parseViewConfig(input) {
|
|
343
346
|
let rawOptions = typeof input === 'function' ?
|
|
@@ -355,14 +358,14 @@ function parseViewConfig(input) {
|
|
|
355
358
|
};
|
|
356
359
|
}
|
|
357
360
|
function createViewHookComponent(options) {
|
|
358
|
-
return (viewProps) => (createElement(ViewContextType.Consumer, null, (context) => (createElement(ContentContainer, { elTag: "div", elClasses: buildViewClassNames(context.viewSpec), renderProps: Object.assign(Object.assign({}, viewProps), { nextDayThreshold: context.options.nextDayThreshold }), generatorName: undefined, generator: options.content, classNameGenerator: options.classNames, didMount: options.didMount, willUnmount: options.willUnmount }))));
|
|
361
|
+
return (viewProps) => (preact.createElement(internalCommon.ViewContextType.Consumer, null, (context) => (preact.createElement(internalCommon.ContentContainer, { elTag: "div", elClasses: internalCommon.buildViewClassNames(context.viewSpec), renderProps: Object.assign(Object.assign({}, viewProps), { nextDayThreshold: context.options.nextDayThreshold }), generatorName: undefined, generator: options.content, classNameGenerator: options.classNames, didMount: options.didMount, willUnmount: options.willUnmount }))));
|
|
359
362
|
}
|
|
360
363
|
|
|
361
364
|
function buildViewSpecs(defaultInputs, optionOverrides, dynamicOptionOverrides, localeDefaults) {
|
|
362
365
|
let defaultConfigs = parseViewConfigs(defaultInputs);
|
|
363
366
|
let overrideConfigs = parseViewConfigs(optionOverrides.views);
|
|
364
367
|
let viewDefs = compileViewDefs(defaultConfigs, overrideConfigs);
|
|
365
|
-
return mapHash(viewDefs, (viewDef) => buildViewSpec(viewDef, overrideConfigs, optionOverrides, dynamicOptionOverrides, localeDefaults));
|
|
368
|
+
return internalCommon.mapHash(viewDefs, (viewDef) => buildViewSpec(viewDef, overrideConfigs, optionOverrides, dynamicOptionOverrides, localeDefaults));
|
|
366
369
|
}
|
|
367
370
|
function buildViewSpec(viewDef, overrideConfigs, optionOverrides, dynamicOptionOverrides, localeDefaults) {
|
|
368
371
|
let durationInput = viewDef.overrides.duration ||
|
|
@@ -376,7 +379,7 @@ function buildViewSpec(viewDef, overrideConfigs, optionOverrides, dynamicOptionO
|
|
|
376
379
|
if (durationInput) {
|
|
377
380
|
duration = createDurationCached(durationInput);
|
|
378
381
|
if (duration) { // valid?
|
|
379
|
-
let denom = greatestDurationDenominator(duration);
|
|
382
|
+
let denom = internalCommon.greatestDurationDenominator(duration);
|
|
380
383
|
durationUnit = denom.unit;
|
|
381
384
|
if (denom.value === 1) {
|
|
382
385
|
singleUnit = durationUnit;
|
|
@@ -425,7 +428,7 @@ function buildViewSpec(viewDef, overrideConfigs, optionOverrides, dynamicOptionO
|
|
|
425
428
|
viewDef.overrides.buttonText,
|
|
426
429
|
buttonTextDefault: queryButtonText(localeDefaults) ||
|
|
427
430
|
viewDef.defaults.buttonText ||
|
|
428
|
-
queryButtonText(BASE_OPTION_DEFAULTS) ||
|
|
431
|
+
queryButtonText(internalCommon.BASE_OPTION_DEFAULTS) ||
|
|
429
432
|
viewDef.type,
|
|
430
433
|
// not DRY
|
|
431
434
|
buttonTitleOverride: queryButtonTitle(dynamicOptionOverrides) ||
|
|
@@ -433,7 +436,7 @@ function buildViewSpec(viewDef, overrideConfigs, optionOverrides, dynamicOptionO
|
|
|
433
436
|
viewDef.overrides.buttonHint,
|
|
434
437
|
buttonTitleDefault: queryButtonTitle(localeDefaults) ||
|
|
435
438
|
viewDef.defaults.buttonHint ||
|
|
436
|
-
queryButtonTitle(BASE_OPTION_DEFAULTS),
|
|
439
|
+
queryButtonTitle(internalCommon.BASE_OPTION_DEFAULTS),
|
|
437
440
|
// will eventually fall back to buttonText
|
|
438
441
|
};
|
|
439
442
|
}
|
|
@@ -443,7 +446,7 @@ function createDurationCached(durationInput) {
|
|
|
443
446
|
let json = JSON.stringify(durationInput);
|
|
444
447
|
let res = durationInputMap[json];
|
|
445
448
|
if (res === undefined) {
|
|
446
|
-
res = createDuration(durationInput);
|
|
449
|
+
res = internalCommon.createDuration(durationInput);
|
|
447
450
|
durationInputMap[json] = res;
|
|
448
451
|
}
|
|
449
452
|
return res;
|
|
@@ -510,7 +513,7 @@ function reduceEventSources(eventSources, action, dateProfile, context) {
|
|
|
510
513
|
return eventSources;
|
|
511
514
|
case 'FETCH_EVENT_SOURCES':
|
|
512
515
|
return fetchSourcesByIds(eventSources, action.sourceIds ? // why no type?
|
|
513
|
-
arrayToHash(action.sourceIds) :
|
|
516
|
+
internalCommon.arrayToHash(action.sourceIds) :
|
|
514
517
|
excludeStaticSources(eventSources, context), activeRange, action.isRefetch || false, context);
|
|
515
518
|
case 'RECEIVE_EVENTS':
|
|
516
519
|
case 'RECEIVE_EVENT_ERROR':
|
|
@@ -544,10 +547,10 @@ function addSources(eventSourceHash, sources, fetchRange, context) {
|
|
|
544
547
|
return Object.assign(Object.assign({}, eventSourceHash), hash);
|
|
545
548
|
}
|
|
546
549
|
function removeSource(eventSourceHash, sourceId) {
|
|
547
|
-
return filterHash(eventSourceHash, (eventSource) => eventSource.sourceId !== sourceId);
|
|
550
|
+
return internalCommon.filterHash(eventSourceHash, (eventSource) => eventSource.sourceId !== sourceId);
|
|
548
551
|
}
|
|
549
552
|
function fetchDirtySources(sourceHash, fetchRange, context) {
|
|
550
|
-
return fetchSourcesByIds(sourceHash, filterHash(sourceHash, (eventSource) => isSourceDirty(eventSource, fetchRange, context)), fetchRange, false, context);
|
|
553
|
+
return fetchSourcesByIds(sourceHash, internalCommon.filterHash(sourceHash, (eventSource) => isSourceDirty(eventSource, fetchRange, context)), fetchRange, false, context);
|
|
551
554
|
}
|
|
552
555
|
function isSourceDirty(eventSource, fetchRange, context) {
|
|
553
556
|
if (!doesSourceNeedRange(eventSource, context)) {
|
|
@@ -575,7 +578,7 @@ function fetchSourcesByIds(prevSources, sourceIdHash, fetchRange, isRefetch, con
|
|
|
575
578
|
function fetchSource(eventSource, fetchRange, isRefetch, context) {
|
|
576
579
|
let { options, calendarApi } = context;
|
|
577
580
|
let sourceDef = context.pluginHooks.eventSourceDefs[eventSource.sourceDefId];
|
|
578
|
-
let fetchId = guid();
|
|
581
|
+
let fetchId = internalCommon.guid();
|
|
579
582
|
sourceDef.fetch({
|
|
580
583
|
eventSource,
|
|
581
584
|
range: fetchRange,
|
|
@@ -628,10 +631,10 @@ function receiveResponse(sourceHash, sourceId, fetchId, fetchRange) {
|
|
|
628
631
|
return sourceHash;
|
|
629
632
|
}
|
|
630
633
|
function excludeStaticSources(eventSources, context) {
|
|
631
|
-
return filterHash(eventSources, (eventSource) => doesSourceNeedRange(eventSource, context));
|
|
634
|
+
return internalCommon.filterHash(eventSources, (eventSource) => doesSourceNeedRange(eventSource, context));
|
|
632
635
|
}
|
|
633
636
|
function parseInitialSources(rawOptions, context) {
|
|
634
|
-
let refiners = buildEventSourceRefiners(context);
|
|
637
|
+
let refiners = internalCommon.buildEventSourceRefiners(context);
|
|
635
638
|
let rawSources = [].concat(rawOptions.eventSources || []);
|
|
636
639
|
let sources = []; // parsed
|
|
637
640
|
if (rawOptions.initialEvents) {
|
|
@@ -641,7 +644,7 @@ function parseInitialSources(rawOptions, context) {
|
|
|
641
644
|
rawSources.unshift(rawOptions.events);
|
|
642
645
|
}
|
|
643
646
|
for (let rawSource of rawSources) {
|
|
644
|
-
let source = parseEventSource(rawSource, context, refiners);
|
|
647
|
+
let source = internalCommon.parseEventSource(rawSource, context, refiners);
|
|
645
648
|
if (source) {
|
|
646
649
|
sources.push(source);
|
|
647
650
|
}
|
|
@@ -775,7 +778,7 @@ theme, viewSpecs, calendarApi) {
|
|
|
775
778
|
(buttonText = viewSpec.buttonTextDefault);
|
|
776
779
|
let textFallback = viewSpec.buttonTextOverride ||
|
|
777
780
|
viewSpec.buttonTextDefault;
|
|
778
|
-
buttonHint = formatWithOrdinals(viewSpec.buttonTitleOverride ||
|
|
781
|
+
buttonHint = internalCommon.formatWithOrdinals(viewSpec.buttonTitleOverride ||
|
|
779
782
|
viewSpec.buttonTitleDefault ||
|
|
780
783
|
calendarOptions.viewHint, [textFallback, buttonName], // view-name = buttonName
|
|
781
784
|
textFallback);
|
|
@@ -789,14 +792,14 @@ theme, viewSpecs, calendarApi) {
|
|
|
789
792
|
(buttonText = calendarButtonText[buttonName]); // everything else is considered default
|
|
790
793
|
if (buttonName === 'prevYear' || buttonName === 'nextYear') {
|
|
791
794
|
let prevOrNext = buttonName === 'prevYear' ? 'prev' : 'next';
|
|
792
|
-
buttonHint = formatWithOrdinals(calendarButtonHintOverrides[prevOrNext] ||
|
|
795
|
+
buttonHint = internalCommon.formatWithOrdinals(calendarButtonHintOverrides[prevOrNext] ||
|
|
793
796
|
calendarButtonHints[prevOrNext], [
|
|
794
797
|
calendarButtonText.year || 'year',
|
|
795
798
|
'year',
|
|
796
799
|
], calendarButtonText[buttonName]);
|
|
797
800
|
}
|
|
798
801
|
else {
|
|
799
|
-
buttonHint = (navUnit) => formatWithOrdinals(calendarButtonHintOverrides[buttonName] ||
|
|
802
|
+
buttonHint = (navUnit) => internalCommon.formatWithOrdinals(calendarButtonHintOverrides[buttonName] ||
|
|
800
803
|
calendarButtonHints[buttonName], [
|
|
801
804
|
calendarButtonText[navUnit] || navUnit,
|
|
802
805
|
navUnit,
|
|
@@ -867,7 +870,7 @@ let eventSourceDef$1 = {
|
|
|
867
870
|
fetch(arg, successCallback, errorCallback) {
|
|
868
871
|
const { dateEnv } = arg.context;
|
|
869
872
|
const func = arg.eventSource.meta;
|
|
870
|
-
unpromisify(func.bind(null, buildRangeApiWithTimeZone(arg.range, dateEnv)), (rawEvents) => successCallback({ rawEvents }), errorCallback);
|
|
873
|
+
internalCommon.unpromisify(func.bind(null, internalCommon.buildRangeApiWithTimeZone(arg.range, dateEnv)), (rawEvents) => successCallback({ rawEvents }), errorCallback);
|
|
871
874
|
},
|
|
872
875
|
};
|
|
873
876
|
const funcEventSourcePlugin = createPlugin({
|
|
@@ -877,7 +880,7 @@ const funcEventSourcePlugin = createPlugin({
|
|
|
877
880
|
|
|
878
881
|
const JSON_FEED_EVENT_SOURCE_REFINERS = {
|
|
879
882
|
method: String,
|
|
880
|
-
extraParams: identity,
|
|
883
|
+
extraParams: internalCommon.identity,
|
|
881
884
|
startParam: String,
|
|
882
885
|
endParam: String,
|
|
883
886
|
timeZoneParam: String,
|
|
@@ -901,7 +904,7 @@ let eventSourceDef = {
|
|
|
901
904
|
fetch(arg, successCallback, errorCallback) {
|
|
902
905
|
const { meta } = arg.eventSource;
|
|
903
906
|
const requestParams = buildRequestParams(meta, arg.range, arg.context);
|
|
904
|
-
requestJson(meta.method, meta.url, requestParams).then(([rawEvents, response]) => {
|
|
907
|
+
internalCommon.requestJson(meta.method, meta.url, requestParams).then(([rawEvents, response]) => {
|
|
905
908
|
successCallback({ rawEvents, response });
|
|
906
909
|
}, errorCallback);
|
|
907
910
|
},
|
|
@@ -949,12 +952,12 @@ function buildRequestParams(meta, range, context) {
|
|
|
949
952
|
}
|
|
950
953
|
|
|
951
954
|
const SIMPLE_RECURRING_REFINERS = {
|
|
952
|
-
daysOfWeek: identity,
|
|
953
|
-
startTime: createDuration,
|
|
954
|
-
endTime: createDuration,
|
|
955
|
-
duration: createDuration,
|
|
956
|
-
startRecur: identity,
|
|
957
|
-
endRecur: identity,
|
|
955
|
+
daysOfWeek: internalCommon.identity,
|
|
956
|
+
startTime: internalCommon.createDuration,
|
|
957
|
+
endTime: internalCommon.createDuration,
|
|
958
|
+
duration: internalCommon.createDuration,
|
|
959
|
+
startRecur: internalCommon.identity,
|
|
960
|
+
endRecur: internalCommon.identity,
|
|
958
961
|
};
|
|
959
962
|
|
|
960
963
|
let recurring = {
|
|
@@ -972,7 +975,7 @@ let recurring = {
|
|
|
972
975
|
duration = refined.duration;
|
|
973
976
|
}
|
|
974
977
|
if (!duration && refined.startTime && refined.endTime) {
|
|
975
|
-
duration = subtractDurations(refined.endTime, refined.startTime);
|
|
978
|
+
duration = internalCommon.subtractDurations(refined.endTime, refined.startTime);
|
|
976
979
|
}
|
|
977
980
|
return {
|
|
978
981
|
allDayGuess: Boolean(!refined.startTime && !refined.endTime),
|
|
@@ -983,7 +986,7 @@ let recurring = {
|
|
|
983
986
|
return null;
|
|
984
987
|
},
|
|
985
988
|
expand(typeData, framingRange, dateEnv) {
|
|
986
|
-
let clippedFramingRange = intersectRanges(framingRange, { start: typeData.startRecur, end: typeData.endRecur });
|
|
989
|
+
let clippedFramingRange = internalCommon.intersectRanges(framingRange, { start: typeData.startRecur, end: typeData.endRecur });
|
|
987
990
|
if (clippedFramingRange) {
|
|
988
991
|
return expandRanges(typeData.daysOfWeek, typeData.startTime, clippedFramingRange, dateEnv);
|
|
989
992
|
}
|
|
@@ -996,8 +999,8 @@ const simpleRecurringEventsPlugin = createPlugin({
|
|
|
996
999
|
eventRefiners: SIMPLE_RECURRING_REFINERS,
|
|
997
1000
|
});
|
|
998
1001
|
function expandRanges(daysOfWeek, startTime, framingRange, dateEnv) {
|
|
999
|
-
let dowHash = daysOfWeek ? arrayToHash(daysOfWeek) : null;
|
|
1000
|
-
let dayMarker = startOfDay(framingRange.start);
|
|
1002
|
+
let dowHash = daysOfWeek ? internalCommon.arrayToHash(daysOfWeek) : null;
|
|
1003
|
+
let dayMarker = internalCommon.startOfDay(framingRange.start);
|
|
1001
1004
|
let endMarker = framingRange.end;
|
|
1002
1005
|
let instanceStarts = [];
|
|
1003
1006
|
while (dayMarker < endMarker) {
|
|
@@ -1012,7 +1015,7 @@ function expandRanges(daysOfWeek, startTime, framingRange, dateEnv) {
|
|
|
1012
1015
|
}
|
|
1013
1016
|
instanceStarts.push(instanceStart);
|
|
1014
1017
|
}
|
|
1015
|
-
dayMarker = addDays(dayMarker, 1);
|
|
1018
|
+
dayMarker = internalCommon.addDays(dayMarker, 1);
|
|
1016
1019
|
}
|
|
1017
1020
|
return instanceStarts;
|
|
1018
1021
|
}
|
|
@@ -1030,7 +1033,7 @@ const changeHandlerPlugin = createPlugin({
|
|
|
1030
1033
|
BUG: if `event` was supplied, all previously-given `eventSources` will be wiped out
|
|
1031
1034
|
*/
|
|
1032
1035
|
function handleEventSources(inputs, context) {
|
|
1033
|
-
let unfoundSources = hashValuesToArray(context.getCurrentData().eventSources);
|
|
1036
|
+
let unfoundSources = internalCommon.hashValuesToArray(context.getCurrentData().eventSources);
|
|
1034
1037
|
let newInputs = [];
|
|
1035
1038
|
for (let input of inputs) {
|
|
1036
1039
|
let inputFound = false;
|
|
@@ -1057,13 +1060,13 @@ function handleEventSources(inputs, context) {
|
|
|
1057
1060
|
}
|
|
1058
1061
|
|
|
1059
1062
|
function handleDateProfile(dateProfile, context) {
|
|
1060
|
-
context.emitter.trigger('datesSet', Object.assign(Object.assign({}, buildRangeApiWithTimeZone(dateProfile.activeRange, context.dateEnv)), { view: context.viewApi }));
|
|
1063
|
+
context.emitter.trigger('datesSet', Object.assign(Object.assign({}, internalCommon.buildRangeApiWithTimeZone(dateProfile.activeRange, context.dateEnv)), { view: context.viewApi }));
|
|
1061
1064
|
}
|
|
1062
1065
|
|
|
1063
1066
|
function handleEventStore(eventStore, context) {
|
|
1064
1067
|
let { emitter } = context;
|
|
1065
1068
|
if (emitter.hasHandlers('eventsSet')) {
|
|
1066
|
-
emitter.trigger('eventsSet', buildEventApis(eventStore, context));
|
|
1069
|
+
emitter.trigger('eventsSet', internalCommon.buildEventApis(eventStore, context));
|
|
1067
1070
|
}
|
|
1068
1071
|
}
|
|
1069
1072
|
|
|
@@ -1094,7 +1097,7 @@ class TaskRunner {
|
|
|
1094
1097
|
this.runTaskOption = runTaskOption;
|
|
1095
1098
|
this.drainedOption = drainedOption;
|
|
1096
1099
|
this.queue = [];
|
|
1097
|
-
this.delayedRunner = new DelayedRunner(this.drain.bind(this));
|
|
1100
|
+
this.delayedRunner = new internalCommon.DelayedRunner(this.drain.bind(this));
|
|
1098
1101
|
}
|
|
1099
1102
|
request(task, delay) {
|
|
1100
1103
|
this.queue.push(task);
|
|
@@ -1140,7 +1143,7 @@ function buildTitle(dateProfile, viewOptions, dateEnv) {
|
|
|
1140
1143
|
else { // for day units or smaller, use the actual day range
|
|
1141
1144
|
range = dateProfile.activeRange;
|
|
1142
1145
|
}
|
|
1143
|
-
return dateEnv.formatRange(range.start, range.end, createFormatter(viewOptions.titleFormat || buildTitleFormat(dateProfile)), {
|
|
1146
|
+
return dateEnv.formatRange(range.start, range.end, internalCommon.createFormatter(viewOptions.titleFormat || buildTitleFormat(dateProfile)), {
|
|
1144
1147
|
isEndExclusive: dateProfile.isRangeAllDay,
|
|
1145
1148
|
defaultSeparator: viewOptions.titleRangeSeparator,
|
|
1146
1149
|
});
|
|
@@ -1155,7 +1158,7 @@ function buildTitleFormat(dateProfile) {
|
|
|
1155
1158
|
if (currentRangeUnit === 'month') {
|
|
1156
1159
|
return { year: 'numeric', month: 'long' }; // like "September 2014"
|
|
1157
1160
|
}
|
|
1158
|
-
let days = diffWholeDays(dateProfile.currentRange.start, dateProfile.currentRange.end);
|
|
1161
|
+
let days = internalCommon.diffWholeDays(dateProfile.currentRange.start, dateProfile.currentRange.end);
|
|
1159
1162
|
if (days !== null && days > 1) {
|
|
1160
1163
|
// multi-day range. shorter, like "Sep 9 - 10 2014"
|
|
1161
1164
|
return { year: 'numeric', month: 'short', day: 'numeric' };
|
|
@@ -1168,23 +1171,23 @@ function buildTitleFormat(dateProfile) {
|
|
|
1168
1171
|
// also, whatever is happening in constructor, have it happen in action queue too
|
|
1169
1172
|
class CalendarDataManager {
|
|
1170
1173
|
constructor(props) {
|
|
1171
|
-
this.computeOptionsData = memoize(this._computeOptionsData);
|
|
1172
|
-
this.computeCurrentViewData = memoize(this._computeCurrentViewData);
|
|
1173
|
-
this.organizeRawLocales = memoize(organizeRawLocales);
|
|
1174
|
-
this.buildLocale = memoize(buildLocale);
|
|
1174
|
+
this.computeOptionsData = internalCommon.memoize(this._computeOptionsData);
|
|
1175
|
+
this.computeCurrentViewData = internalCommon.memoize(this._computeCurrentViewData);
|
|
1176
|
+
this.organizeRawLocales = internalCommon.memoize(organizeRawLocales);
|
|
1177
|
+
this.buildLocale = internalCommon.memoize(buildLocale);
|
|
1175
1178
|
this.buildPluginHooks = buildBuildPluginHooks();
|
|
1176
|
-
this.buildDateEnv = memoize(buildDateEnv$1);
|
|
1177
|
-
this.buildTheme = memoize(buildTheme);
|
|
1178
|
-
this.parseToolbars = memoize(parseToolbars);
|
|
1179
|
-
this.buildViewSpecs = memoize(buildViewSpecs);
|
|
1180
|
-
this.buildDateProfileGenerator = memoizeObjArg(buildDateProfileGenerator);
|
|
1181
|
-
this.buildViewApi = memoize(buildViewApi);
|
|
1182
|
-
this.buildViewUiProps = memoizeObjArg(buildViewUiProps);
|
|
1183
|
-
this.buildEventUiBySource = memoize(buildEventUiBySource, isPropsEqual);
|
|
1184
|
-
this.buildEventUiBases = memoize(buildEventUiBases);
|
|
1185
|
-
this.parseContextBusinessHours = memoizeObjArg(parseContextBusinessHours);
|
|
1186
|
-
this.buildTitle = memoize(buildTitle);
|
|
1187
|
-
this.emitter = new Emitter();
|
|
1179
|
+
this.buildDateEnv = internalCommon.memoize(buildDateEnv$1);
|
|
1180
|
+
this.buildTheme = internalCommon.memoize(buildTheme);
|
|
1181
|
+
this.parseToolbars = internalCommon.memoize(parseToolbars);
|
|
1182
|
+
this.buildViewSpecs = internalCommon.memoize(buildViewSpecs);
|
|
1183
|
+
this.buildDateProfileGenerator = internalCommon.memoizeObjArg(buildDateProfileGenerator);
|
|
1184
|
+
this.buildViewApi = internalCommon.memoize(buildViewApi);
|
|
1185
|
+
this.buildViewUiProps = internalCommon.memoizeObjArg(buildViewUiProps);
|
|
1186
|
+
this.buildEventUiBySource = internalCommon.memoize(buildEventUiBySource, internalCommon.isPropsEqual);
|
|
1187
|
+
this.buildEventUiBases = internalCommon.memoize(buildEventUiBases);
|
|
1188
|
+
this.parseContextBusinessHours = internalCommon.memoizeObjArg(parseContextBusinessHours);
|
|
1189
|
+
this.buildTitle = internalCommon.memoize(buildTitle);
|
|
1190
|
+
this.emitter = new internalCommon.Emitter();
|
|
1188
1191
|
this.actionRunner = new TaskRunner(this._handleAction.bind(this), this.updateData.bind(this));
|
|
1189
1192
|
this.currentCalendarOptionsInput = {};
|
|
1190
1193
|
this.currentCalendarOptionsRefined = {};
|
|
@@ -1206,9 +1209,9 @@ class CalendarDataManager {
|
|
|
1206
1209
|
props.calendarApi.currentDataManager = this;
|
|
1207
1210
|
this.emitter.setThisContext(props.calendarApi);
|
|
1208
1211
|
this.emitter.setOptions(currentViewData.options);
|
|
1209
|
-
let currentDate = getInitialDate(optionsData.calendarOptions, optionsData.dateEnv);
|
|
1212
|
+
let currentDate = internalCommon.getInitialDate(optionsData.calendarOptions, optionsData.dateEnv);
|
|
1210
1213
|
let dateProfile = currentViewData.dateProfileGenerator.build(currentDate);
|
|
1211
|
-
if (!rangeContainsMarker(dateProfile.activeRange, currentDate)) {
|
|
1214
|
+
if (!internalCommon.rangeContainsMarker(dateProfile.activeRange, currentDate)) {
|
|
1212
1215
|
currentDate = dateProfile.currentRange.start;
|
|
1213
1216
|
}
|
|
1214
1217
|
let calendarContext = {
|
|
@@ -1234,8 +1237,8 @@ class CalendarDataManager {
|
|
|
1234
1237
|
businessHours: this.parseContextBusinessHours(calendarContext),
|
|
1235
1238
|
eventSources,
|
|
1236
1239
|
eventUiBases: {},
|
|
1237
|
-
eventStore: createEmptyEventStore(),
|
|
1238
|
-
renderableEventStore: createEmptyEventStore(),
|
|
1240
|
+
eventStore: internalCommon.createEmptyEventStore(),
|
|
1241
|
+
renderableEventStore: internalCommon.createEmptyEventStore(),
|
|
1239
1242
|
dateSelection: null,
|
|
1240
1243
|
eventSelection: '',
|
|
1241
1244
|
eventDrag: null,
|
|
@@ -1285,15 +1288,15 @@ class CalendarDataManager {
|
|
|
1285
1288
|
if (this.data && this.data.dateProfileGenerator !== currentViewData.dateProfileGenerator) { // hack
|
|
1286
1289
|
dateProfile = currentViewData.dateProfileGenerator.build(currentDate);
|
|
1287
1290
|
}
|
|
1288
|
-
currentDate = reduceCurrentDate(currentDate, action);
|
|
1291
|
+
currentDate = internalCommon.reduceCurrentDate(currentDate, action);
|
|
1289
1292
|
dateProfile = reduceDateProfile(dateProfile, action, currentDate, currentViewData.dateProfileGenerator);
|
|
1290
1293
|
if (action.type === 'PREV' || // TODO: move this logic into DateProfileGenerator
|
|
1291
1294
|
action.type === 'NEXT' || // "
|
|
1292
|
-
!rangeContainsMarker(dateProfile.currentRange, currentDate)) {
|
|
1295
|
+
!internalCommon.rangeContainsMarker(dateProfile.currentRange, currentDate)) {
|
|
1293
1296
|
currentDate = dateProfile.currentRange.start;
|
|
1294
1297
|
}
|
|
1295
1298
|
let eventSources = reduceEventSources(state.eventSources, action, dateProfile, calendarContext);
|
|
1296
|
-
let eventStore = reduceEventStore(state.eventStore, action, eventSources, dateProfile, calendarContext);
|
|
1299
|
+
let eventStore = internalCommon.reduceEventStore(state.eventStore, action, eventSources, dateProfile, calendarContext);
|
|
1297
1300
|
let isEventsLoading = computeEventSourcesLoading(eventSources); // BAD. also called in this func in computeIsLoading
|
|
1298
1301
|
let renderableEventStore = (isEventsLoading && !currentViewData.options.progressiveEventRendering) ?
|
|
1299
1302
|
(state.renderableEventStore || eventStore) : // try from previous state
|
|
@@ -1348,7 +1351,7 @@ class CalendarDataManager {
|
|
|
1348
1351
|
if (oldCalendarOptions.timeZone !== newCalendarOptions.timeZone) {
|
|
1349
1352
|
// hack
|
|
1350
1353
|
state.eventSources = data.eventSources = reduceEventSourcesNewTimeZone(data.eventSources, state.dateProfile, data);
|
|
1351
|
-
state.eventStore = data.eventStore = rezoneEventStoreDates(data.eventStore, oldData.dateEnv, data.dateEnv);
|
|
1354
|
+
state.eventStore = data.eventStore = internalCommon.rezoneEventStoreDates(data.eventStore, oldData.dateEnv, data.dateEnv);
|
|
1352
1355
|
}
|
|
1353
1356
|
for (let optionName in changeHandlers) {
|
|
1354
1357
|
if (oldCalendarOptions[optionName] !== newCalendarOptions[optionName]) {
|
|
@@ -1381,8 +1384,8 @@ class CalendarDataManager {
|
|
|
1381
1384
|
}
|
|
1382
1385
|
// always called from behind a memoizer
|
|
1383
1386
|
processRawCalendarOptions(optionOverrides, dynamicOptionOverrides) {
|
|
1384
|
-
let { locales, locale } = mergeRawOptions([
|
|
1385
|
-
BASE_OPTION_DEFAULTS,
|
|
1387
|
+
let { locales, locale } = internalCommon.mergeRawOptions([
|
|
1388
|
+
internalCommon.BASE_OPTION_DEFAULTS,
|
|
1386
1389
|
optionOverrides,
|
|
1387
1390
|
dynamicOptionOverrides,
|
|
1388
1391
|
]);
|
|
@@ -1390,10 +1393,10 @@ class CalendarDataManager {
|
|
|
1390
1393
|
let availableRawLocales = availableLocaleData.map;
|
|
1391
1394
|
let localeDefaults = this.buildLocale(locale || availableLocaleData.defaultCode, availableRawLocales).options;
|
|
1392
1395
|
let pluginHooks = this.buildPluginHooks(optionOverrides.plugins || [], globalPlugins);
|
|
1393
|
-
let refiners = this.currentCalendarOptionsRefiners = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, BASE_OPTION_REFINERS), CALENDAR_LISTENER_REFINERS), CALENDAR_OPTION_REFINERS), pluginHooks.listenerRefiners), pluginHooks.optionRefiners);
|
|
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);
|
|
1394
1397
|
let extra = {};
|
|
1395
|
-
let raw = mergeRawOptions([
|
|
1396
|
-
BASE_OPTION_DEFAULTS,
|
|
1398
|
+
let raw = internalCommon.mergeRawOptions([
|
|
1399
|
+
internalCommon.BASE_OPTION_DEFAULTS,
|
|
1397
1400
|
localeDefaults,
|
|
1398
1401
|
optionOverrides,
|
|
1399
1402
|
dynamicOptionOverrides,
|
|
@@ -1405,9 +1408,9 @@ class CalendarDataManager {
|
|
|
1405
1408
|
for (let optionName in raw) {
|
|
1406
1409
|
if (optionName !== 'plugins') { // because plugins is special-cased
|
|
1407
1410
|
if (raw[optionName] === currentRaw[optionName] ||
|
|
1408
|
-
(COMPLEX_OPTION_COMPARATORS[optionName] &&
|
|
1411
|
+
(internalCommon.COMPLEX_OPTION_COMPARATORS[optionName] &&
|
|
1409
1412
|
(optionName in currentRaw) &&
|
|
1410
|
-
COMPLEX_OPTION_COMPARATORS[optionName](currentRaw[optionName], raw[optionName]))) {
|
|
1413
|
+
internalCommon.COMPLEX_OPTION_COMPARATORS[optionName](currentRaw[optionName], raw[optionName]))) {
|
|
1411
1414
|
refined[optionName] = currentRefined[optionName];
|
|
1412
1415
|
}
|
|
1413
1416
|
else if (refiners[optionName]) {
|
|
@@ -1464,15 +1467,15 @@ class CalendarDataManager {
|
|
|
1464
1467
|
return { viewSpec, options: refinedOptions, dateProfileGenerator, viewApi };
|
|
1465
1468
|
}
|
|
1466
1469
|
processRawViewOptions(viewSpec, pluginHooks, localeDefaults, optionOverrides, dynamicOptionOverrides) {
|
|
1467
|
-
let raw = mergeRawOptions([
|
|
1468
|
-
BASE_OPTION_DEFAULTS,
|
|
1470
|
+
let raw = internalCommon.mergeRawOptions([
|
|
1471
|
+
internalCommon.BASE_OPTION_DEFAULTS,
|
|
1469
1472
|
viewSpec.optionDefaults,
|
|
1470
1473
|
localeDefaults,
|
|
1471
1474
|
optionOverrides,
|
|
1472
1475
|
viewSpec.optionOverrides,
|
|
1473
1476
|
dynamicOptionOverrides,
|
|
1474
1477
|
]);
|
|
1475
|
-
let refiners = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, BASE_OPTION_REFINERS), CALENDAR_LISTENER_REFINERS), CALENDAR_OPTION_REFINERS), VIEW_OPTION_REFINERS), pluginHooks.listenerRefiners), pluginHooks.optionRefiners);
|
|
1478
|
+
let refiners = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, internalCommon.BASE_OPTION_REFINERS), internalCommon.CALENDAR_LISTENER_REFINERS), internalCommon.CALENDAR_OPTION_REFINERS), internalCommon.VIEW_OPTION_REFINERS), pluginHooks.listenerRefiners), pluginHooks.optionRefiners);
|
|
1476
1479
|
let refined = {};
|
|
1477
1480
|
let currentRaw = this.currentViewOptionsInput;
|
|
1478
1481
|
let currentRefined = this.currentViewOptionsRefined;
|
|
@@ -1480,14 +1483,14 @@ class CalendarDataManager {
|
|
|
1480
1483
|
let extra = {};
|
|
1481
1484
|
for (let optionName in raw) {
|
|
1482
1485
|
if (raw[optionName] === currentRaw[optionName] ||
|
|
1483
|
-
(COMPLEX_OPTION_COMPARATORS[optionName] &&
|
|
1484
|
-
COMPLEX_OPTION_COMPARATORS[optionName](raw[optionName], currentRaw[optionName]))) {
|
|
1486
|
+
(internalCommon.COMPLEX_OPTION_COMPARATORS[optionName] &&
|
|
1487
|
+
internalCommon.COMPLEX_OPTION_COMPARATORS[optionName](raw[optionName], currentRaw[optionName]))) {
|
|
1485
1488
|
refined[optionName] = currentRefined[optionName];
|
|
1486
1489
|
}
|
|
1487
1490
|
else {
|
|
1488
1491
|
if (raw[optionName] === this.currentCalendarOptionsInput[optionName] ||
|
|
1489
|
-
(COMPLEX_OPTION_COMPARATORS[optionName] &&
|
|
1490
|
-
COMPLEX_OPTION_COMPARATORS[optionName](raw[optionName], this.currentCalendarOptionsInput[optionName]))) {
|
|
1492
|
+
(internalCommon.COMPLEX_OPTION_COMPARATORS[optionName] &&
|
|
1493
|
+
internalCommon.COMPLEX_OPTION_COMPARATORS[optionName](raw[optionName], this.currentCalendarOptionsInput[optionName]))) {
|
|
1491
1494
|
if (optionName in this.currentCalendarOptionsRefined) { // might be an "extra" prop
|
|
1492
1495
|
refined[optionName] = this.currentCalendarOptionsRefined[optionName];
|
|
1493
1496
|
}
|
|
@@ -1514,7 +1517,7 @@ class CalendarDataManager {
|
|
|
1514
1517
|
}
|
|
1515
1518
|
function buildDateEnv$1(timeZone, explicitLocale, weekNumberCalculation, firstDay, weekText, pluginHooks, availableLocaleData, defaultSeparator) {
|
|
1516
1519
|
let locale = buildLocale(explicitLocale || availableLocaleData.defaultCode, availableLocaleData.map);
|
|
1517
|
-
return new DateEnv({
|
|
1520
|
+
return new internalCommon.DateEnv({
|
|
1518
1521
|
calendarSystem: 'gregory',
|
|
1519
1522
|
timeZone,
|
|
1520
1523
|
namedTimeZoneImpl: pluginHooks.namedTimeZonedImpl,
|
|
@@ -1531,14 +1534,14 @@ function buildTheme(options, pluginHooks) {
|
|
|
1531
1534
|
return new ThemeClass(options);
|
|
1532
1535
|
}
|
|
1533
1536
|
function buildDateProfileGenerator(props) {
|
|
1534
|
-
let DateProfileGeneratorClass = props.dateProfileGeneratorClass || DateProfileGenerator;
|
|
1537
|
+
let DateProfileGeneratorClass = props.dateProfileGeneratorClass || internalCommon.DateProfileGenerator;
|
|
1535
1538
|
return new DateProfileGeneratorClass(props);
|
|
1536
1539
|
}
|
|
1537
1540
|
function buildViewApi(type, getCurrentData, dateEnv) {
|
|
1538
1541
|
return new ViewImpl(type, getCurrentData, dateEnv);
|
|
1539
1542
|
}
|
|
1540
1543
|
function buildEventUiBySource(eventSources) {
|
|
1541
|
-
return mapHash(eventSources, (eventSource) => eventSource.ui);
|
|
1544
|
+
return internalCommon.mapHash(eventSources, (eventSource) => eventSource.ui);
|
|
1542
1545
|
}
|
|
1543
1546
|
function buildEventUiBases(eventDefs, eventUiSingleBase, eventUiBySource) {
|
|
1544
1547
|
let eventUiBases = { '': eventUiSingleBase };
|
|
@@ -1553,7 +1556,7 @@ function buildEventUiBases(eventDefs, eventUiSingleBase, eventUiBySource) {
|
|
|
1553
1556
|
function buildViewUiProps(calendarContext) {
|
|
1554
1557
|
let { options } = calendarContext;
|
|
1555
1558
|
return {
|
|
1556
|
-
eventUiSingleBase: createEventUi({
|
|
1559
|
+
eventUiSingleBase: internalCommon.createEventUi({
|
|
1557
1560
|
display: options.eventDisplay,
|
|
1558
1561
|
editable: options.editable,
|
|
1559
1562
|
startEditable: options.eventStartEditable,
|
|
@@ -1567,7 +1570,7 @@ function buildViewUiProps(calendarContext) {
|
|
|
1567
1570
|
color: options.eventColor,
|
|
1568
1571
|
// classNames: options.eventClassNames // render hook will handle this
|
|
1569
1572
|
}, calendarContext),
|
|
1570
|
-
selectionConfig: createEventUi({
|
|
1573
|
+
selectionConfig: internalCommon.createEventUi({
|
|
1571
1574
|
constraint: options.selectConstraint,
|
|
1572
1575
|
overlap: typeof options.selectOverlap === 'boolean' ? options.selectOverlap : undefined,
|
|
1573
1576
|
allow: options.selectAllow,
|
|
@@ -1583,7 +1586,7 @@ function computeIsLoading(state, context) {
|
|
|
1583
1586
|
return false;
|
|
1584
1587
|
}
|
|
1585
1588
|
function parseContextBusinessHours(calendarContext) {
|
|
1586
|
-
return parseBusinessHours(calendarContext.options.businessHours, calendarContext);
|
|
1589
|
+
return internalCommon.parseBusinessHours(calendarContext.options.businessHours, calendarContext);
|
|
1587
1590
|
}
|
|
1588
1591
|
function warnUnknownOptions(options, viewName) {
|
|
1589
1592
|
for (let optionName in options) {
|
|
@@ -1592,10 +1595,10 @@ function warnUnknownOptions(options, viewName) {
|
|
|
1592
1595
|
}
|
|
1593
1596
|
}
|
|
1594
1597
|
|
|
1595
|
-
class ToolbarSection extends BaseComponent {
|
|
1598
|
+
class ToolbarSection extends internalCommon.BaseComponent {
|
|
1596
1599
|
render() {
|
|
1597
1600
|
let children = this.props.widgetGroups.map((widgetGroup) => this.renderWidgetGroup(widgetGroup));
|
|
1598
|
-
return createElement('div', { className: 'fc-toolbar-chunk' }, ...children);
|
|
1601
|
+
return preact.createElement('div', { className: 'fc-toolbar-chunk' }, ...children);
|
|
1599
1602
|
}
|
|
1600
1603
|
renderWidgetGroup(widgetGroup) {
|
|
1601
1604
|
let { props } = this;
|
|
@@ -1606,7 +1609,7 @@ class ToolbarSection extends BaseComponent {
|
|
|
1606
1609
|
let { buttonName, buttonClick, buttonText, buttonIcon, buttonHint } = widget;
|
|
1607
1610
|
if (buttonName === 'title') {
|
|
1608
1611
|
isOnlyButtons = false;
|
|
1609
|
-
children.push(createElement("h2", { className: "fc-toolbar-title", id: props.titleId }, props.title));
|
|
1612
|
+
children.push(preact.createElement("h2", { className: "fc-toolbar-title", id: props.titleId }, props.title));
|
|
1610
1613
|
}
|
|
1611
1614
|
else {
|
|
1612
1615
|
let isPressed = buttonName === props.activeButton;
|
|
@@ -1617,18 +1620,18 @@ class ToolbarSection extends BaseComponent {
|
|
|
1617
1620
|
if (isPressed) {
|
|
1618
1621
|
buttonClasses.push(theme.getClass('buttonActive'));
|
|
1619
1622
|
}
|
|
1620
|
-
children.push(createElement("button", { type: "button", title: typeof buttonHint === 'function' ? buttonHint(props.navUnit) : buttonHint, disabled: isDisabled, "aria-pressed": isPressed, className: buttonClasses.join(' '), onClick: buttonClick }, buttonText || (buttonIcon ? createElement("span", { className: buttonIcon }) : '')));
|
|
1623
|
+
children.push(preact.createElement("button", { type: "button", title: typeof buttonHint === 'function' ? buttonHint(props.navUnit) : buttonHint, disabled: isDisabled, "aria-pressed": isPressed, className: buttonClasses.join(' '), onClick: buttonClick }, buttonText || (buttonIcon ? preact.createElement("span", { className: buttonIcon }) : '')));
|
|
1621
1624
|
}
|
|
1622
1625
|
}
|
|
1623
1626
|
if (children.length > 1) {
|
|
1624
1627
|
let groupClassName = (isOnlyButtons && theme.getClass('buttonGroup')) || '';
|
|
1625
|
-
return createElement('div', { className: groupClassName }, ...children);
|
|
1628
|
+
return preact.createElement('div', { className: groupClassName }, ...children);
|
|
1626
1629
|
}
|
|
1627
1630
|
return children[0];
|
|
1628
1631
|
}
|
|
1629
1632
|
}
|
|
1630
1633
|
|
|
1631
|
-
class Toolbar extends BaseComponent {
|
|
1634
|
+
class Toolbar extends internalCommon.BaseComponent {
|
|
1632
1635
|
render() {
|
|
1633
1636
|
let { model, extraClassName } = this.props;
|
|
1634
1637
|
let forceLtr = false;
|
|
@@ -1655,19 +1658,19 @@ class Toolbar extends BaseComponent {
|
|
|
1655
1658
|
'fc-toolbar',
|
|
1656
1659
|
forceLtr ? 'fc-toolbar-ltr' : '',
|
|
1657
1660
|
];
|
|
1658
|
-
return (createElement("div", { className: classNames.join(' ') },
|
|
1661
|
+
return (preact.createElement("div", { className: classNames.join(' ') },
|
|
1659
1662
|
this.renderSection('start', startContent || []),
|
|
1660
1663
|
this.renderSection('center', centerContent || []),
|
|
1661
1664
|
this.renderSection('end', endContent || [])));
|
|
1662
1665
|
}
|
|
1663
1666
|
renderSection(key, widgetGroups) {
|
|
1664
1667
|
let { props } = this;
|
|
1665
|
-
return (createElement(ToolbarSection, { key: key, widgetGroups: widgetGroups, title: props.title, navUnit: props.navUnit, activeButton: props.activeButton, isTodayEnabled: props.isTodayEnabled, isPrevEnabled: props.isPrevEnabled, isNextEnabled: props.isNextEnabled, titleId: props.titleId }));
|
|
1668
|
+
return (preact.createElement(ToolbarSection, { key: key, widgetGroups: widgetGroups, title: props.title, navUnit: props.navUnit, activeButton: props.activeButton, isTodayEnabled: props.isTodayEnabled, isPrevEnabled: props.isPrevEnabled, isNextEnabled: props.isNextEnabled, titleId: props.titleId }));
|
|
1666
1669
|
}
|
|
1667
1670
|
}
|
|
1668
1671
|
|
|
1669
1672
|
// TODO: do function component?
|
|
1670
|
-
class ViewContainer extends BaseComponent {
|
|
1673
|
+
class ViewContainer extends internalCommon.BaseComponent {
|
|
1671
1674
|
constructor() {
|
|
1672
1675
|
super(...arguments);
|
|
1673
1676
|
this.state = {
|
|
@@ -1675,7 +1678,7 @@ class ViewContainer extends BaseComponent {
|
|
|
1675
1678
|
};
|
|
1676
1679
|
this.handleEl = (el) => {
|
|
1677
1680
|
this.el = el;
|
|
1678
|
-
setRef(this.props.elRef, el);
|
|
1681
|
+
internalCommon.setRef(this.props.elRef, el);
|
|
1679
1682
|
this.updateAvailableWidth();
|
|
1680
1683
|
};
|
|
1681
1684
|
this.handleResize = () => {
|
|
@@ -1708,7 +1711,7 @@ class ViewContainer extends BaseComponent {
|
|
|
1708
1711
|
else {
|
|
1709
1712
|
height = props.height || '';
|
|
1710
1713
|
}
|
|
1711
|
-
return (createElement("div", { "aria-labelledby": props.labeledById, ref: this.handleEl, className: classNames.join(' '), style: { height, paddingBottom } }, props.children));
|
|
1714
|
+
return (preact.createElement("div", { "aria-labelledby": props.labeledById, ref: this.handleEl, className: classNames.join(' '), style: { height, paddingBottom } }, props.children));
|
|
1712
1715
|
}
|
|
1713
1716
|
componentDidMount() {
|
|
1714
1717
|
this.context.addResizeHandler(this.handleResize);
|
|
@@ -1728,22 +1731,22 @@ class ViewContainer extends BaseComponent {
|
|
|
1728
1731
|
/*
|
|
1729
1732
|
Detects when the user clicks on an event within a DateComponent
|
|
1730
1733
|
*/
|
|
1731
|
-
class EventClicking extends Interaction {
|
|
1734
|
+
class EventClicking extends internalCommon.Interaction {
|
|
1732
1735
|
constructor(settings) {
|
|
1733
1736
|
super(settings);
|
|
1734
1737
|
this.handleSegClick = (ev, segEl) => {
|
|
1735
1738
|
let { component } = this;
|
|
1736
1739
|
let { context } = component;
|
|
1737
|
-
let seg = getElSeg(segEl);
|
|
1740
|
+
let seg = internalCommon.getElSeg(segEl);
|
|
1738
1741
|
if (seg && // might be the <div> surrounding the more link
|
|
1739
1742
|
component.isValidSegDownEl(ev.target)) {
|
|
1740
1743
|
// our way to simulate a link click for elements that can't be <a> tags
|
|
1741
1744
|
// grab before trigger fired in case trigger trashes DOM thru rerendering
|
|
1742
|
-
let hasUrlContainer = elementClosest(ev.target, '.fc-event-forced-url');
|
|
1745
|
+
let hasUrlContainer = internalCommon.elementClosest(ev.target, '.fc-event-forced-url');
|
|
1743
1746
|
let url = hasUrlContainer ? hasUrlContainer.querySelector('a[href]').href : '';
|
|
1744
1747
|
context.emitter.trigger('eventClick', {
|
|
1745
1748
|
el: segEl,
|
|
1746
|
-
event: new EventImpl(component.context, seg.eventRange.def, seg.eventRange.instance),
|
|
1749
|
+
event: new internalCommon.EventImpl(component.context, seg.eventRange.def, seg.eventRange.instance),
|
|
1747
1750
|
jsEvent: ev,
|
|
1748
1751
|
view: context.viewApi,
|
|
1749
1752
|
});
|
|
@@ -1752,7 +1755,7 @@ class EventClicking extends Interaction {
|
|
|
1752
1755
|
}
|
|
1753
1756
|
}
|
|
1754
1757
|
};
|
|
1755
|
-
this.destroy = listenBySelector(settings.el, 'click', '.fc-event', // on both fg and bg events
|
|
1758
|
+
this.destroy = internalCommon.listenBySelector(settings.el, 'click', '.fc-event', // on both fg and bg events
|
|
1756
1759
|
this.handleSegClick);
|
|
1757
1760
|
}
|
|
1758
1761
|
}
|
|
@@ -1761,7 +1764,7 @@ class EventClicking extends Interaction {
|
|
|
1761
1764
|
Triggers events and adds/removes core classNames when the user's pointer
|
|
1762
1765
|
enters/leaves event-elements of a component.
|
|
1763
1766
|
*/
|
|
1764
|
-
class EventHovering extends Interaction {
|
|
1767
|
+
class EventHovering extends internalCommon.Interaction {
|
|
1765
1768
|
constructor(settings) {
|
|
1766
1769
|
super(settings);
|
|
1767
1770
|
// for simulating an eventMouseLeave when the event el is destroyed while mouse is over it
|
|
@@ -1771,7 +1774,7 @@ class EventHovering extends Interaction {
|
|
|
1771
1774
|
}
|
|
1772
1775
|
};
|
|
1773
1776
|
this.handleSegEnter = (ev, segEl) => {
|
|
1774
|
-
if (getElSeg(segEl)) { // TODO: better way to make sure not hovering over more+ link or its wrapper
|
|
1777
|
+
if (internalCommon.getElSeg(segEl)) { // TODO: better way to make sure not hovering over more+ link or its wrapper
|
|
1775
1778
|
this.currentSegEl = segEl;
|
|
1776
1779
|
this.triggerEvent('eventMouseEnter', ev, segEl);
|
|
1777
1780
|
}
|
|
@@ -1782,7 +1785,7 @@ class EventHovering extends Interaction {
|
|
|
1782
1785
|
this.triggerEvent('eventMouseLeave', ev, segEl);
|
|
1783
1786
|
}
|
|
1784
1787
|
};
|
|
1785
|
-
this.removeHoverListeners = listenToHoverBySelector(settings.el, '.fc-event', // on both fg and bg events
|
|
1788
|
+
this.removeHoverListeners = internalCommon.listenToHoverBySelector(settings.el, '.fc-event', // on both fg and bg events
|
|
1786
1789
|
this.handleSegEnter, this.handleSegLeave);
|
|
1787
1790
|
}
|
|
1788
1791
|
destroy() {
|
|
@@ -1791,11 +1794,11 @@ class EventHovering extends Interaction {
|
|
|
1791
1794
|
triggerEvent(publicEvName, ev, segEl) {
|
|
1792
1795
|
let { component } = this;
|
|
1793
1796
|
let { context } = component;
|
|
1794
|
-
let seg = getElSeg(segEl);
|
|
1797
|
+
let seg = internalCommon.getElSeg(segEl);
|
|
1795
1798
|
if (!ev || component.isValidSegDownEl(ev.target)) {
|
|
1796
1799
|
context.emitter.trigger(publicEvName, {
|
|
1797
1800
|
el: segEl,
|
|
1798
|
-
event: new EventImpl(context, seg.eventRange.def, seg.eventRange.instance),
|
|
1801
|
+
event: new internalCommon.EventImpl(context, seg.eventRange.def, seg.eventRange.instance),
|
|
1799
1802
|
jsEvent: ev,
|
|
1800
1803
|
view: context.viewApi,
|
|
1801
1804
|
});
|
|
@@ -1803,23 +1806,23 @@ class EventHovering extends Interaction {
|
|
|
1803
1806
|
}
|
|
1804
1807
|
}
|
|
1805
1808
|
|
|
1806
|
-
class CalendarContent extends PureComponent {
|
|
1809
|
+
class CalendarContent extends internalCommon.PureComponent {
|
|
1807
1810
|
constructor() {
|
|
1808
1811
|
super(...arguments);
|
|
1809
|
-
this.buildViewContext = memoize(buildViewContext);
|
|
1810
|
-
this.buildViewPropTransformers = memoize(buildViewPropTransformers);
|
|
1811
|
-
this.buildToolbarProps = memoize(buildToolbarProps);
|
|
1812
|
-
this.headerRef = createRef();
|
|
1813
|
-
this.footerRef = createRef();
|
|
1812
|
+
this.buildViewContext = internalCommon.memoize(internalCommon.buildViewContext);
|
|
1813
|
+
this.buildViewPropTransformers = internalCommon.memoize(buildViewPropTransformers);
|
|
1814
|
+
this.buildToolbarProps = internalCommon.memoize(buildToolbarProps);
|
|
1815
|
+
this.headerRef = preact.createRef();
|
|
1816
|
+
this.footerRef = preact.createRef();
|
|
1814
1817
|
this.interactionsStore = {};
|
|
1815
1818
|
// eslint-disable-next-line
|
|
1816
1819
|
this.state = {
|
|
1817
|
-
viewLabelId: getUniqueDomId(),
|
|
1820
|
+
viewLabelId: internalCommon.getUniqueDomId(),
|
|
1818
1821
|
};
|
|
1819
1822
|
// Component Registration
|
|
1820
1823
|
// -----------------------------------------------------------------------------------------------------------------
|
|
1821
1824
|
this.registerInteractiveComponent = (component, settingsInput) => {
|
|
1822
|
-
let settings = parseInteractionSettings(component, settingsInput);
|
|
1825
|
+
let settings = internalCommon.parseInteractionSettings(component, settingsInput);
|
|
1823
1826
|
let DEFAULT_INTERACTIONS = [
|
|
1824
1827
|
EventClicking,
|
|
1825
1828
|
EventHovering,
|
|
@@ -1827,7 +1830,7 @@ class CalendarContent extends PureComponent {
|
|
|
1827
1830
|
let interactionClasses = DEFAULT_INTERACTIONS.concat(this.props.pluginHooks.componentInteractions);
|
|
1828
1831
|
let interactions = interactionClasses.map((TheInteractionClass) => new TheInteractionClass(settings));
|
|
1829
1832
|
this.interactionsStore[component.uid] = interactions;
|
|
1830
|
-
interactionSettingsStore[component.uid] = settings;
|
|
1833
|
+
internalCommon.interactionSettingsStore[component.uid] = settings;
|
|
1831
1834
|
};
|
|
1832
1835
|
this.unregisterInteractiveComponent = (component) => {
|
|
1833
1836
|
let listeners = this.interactionsStore[component.uid];
|
|
@@ -1837,11 +1840,11 @@ class CalendarContent extends PureComponent {
|
|
|
1837
1840
|
}
|
|
1838
1841
|
delete this.interactionsStore[component.uid];
|
|
1839
1842
|
}
|
|
1840
|
-
delete interactionSettingsStore[component.uid];
|
|
1843
|
+
delete internalCommon.interactionSettingsStore[component.uid];
|
|
1841
1844
|
};
|
|
1842
1845
|
// Resizing
|
|
1843
1846
|
// -----------------------------------------------------------------------------------------------------------------
|
|
1844
|
-
this.resizeRunner = new DelayedRunner(() => {
|
|
1847
|
+
this.resizeRunner = new internalCommon.DelayedRunner(() => {
|
|
1845
1848
|
this.props.emitter.trigger('_resize', true); // should window resizes be considered "forced" ?
|
|
1846
1849
|
this.props.emitter.trigger('windowResize', { view: this.props.viewApi });
|
|
1847
1850
|
});
|
|
@@ -1860,7 +1863,7 @@ class CalendarContent extends PureComponent {
|
|
|
1860
1863
|
render() {
|
|
1861
1864
|
let { props } = this;
|
|
1862
1865
|
let { toolbarConfig, options } = props;
|
|
1863
|
-
let toolbarProps = this.buildToolbarProps(props.viewSpec, props.dateProfile, props.dateProfileGenerator, props.currentDate, getNow(props.options.now, props.dateEnv), // TODO: use NowTimer????
|
|
1866
|
+
let toolbarProps = this.buildToolbarProps(props.viewSpec, props.dateProfile, props.dateProfileGenerator, props.currentDate, internalCommon.getNow(props.options.now, props.dateEnv), // TODO: use NowTimer????
|
|
1864
1867
|
props.viewTitle);
|
|
1865
1868
|
let viewVGrow = false;
|
|
1866
1869
|
let viewHeight = '';
|
|
@@ -1881,12 +1884,12 @@ class CalendarContent extends PureComponent {
|
|
|
1881
1884
|
let viewLabelId = (toolbarConfig.header && toolbarConfig.header.hasTitle)
|
|
1882
1885
|
? this.state.viewLabelId
|
|
1883
1886
|
: '';
|
|
1884
|
-
return (createElement(ViewContextType.Provider, { value: viewContext },
|
|
1885
|
-
toolbarConfig.header && (createElement(Toolbar, Object.assign({ ref: this.headerRef, extraClassName: "fc-header-toolbar", model: toolbarConfig.header, titleId: viewLabelId }, toolbarProps))),
|
|
1886
|
-
createElement(ViewContainer, { liquid: viewVGrow, height: viewHeight, aspectRatio: viewAspectRatio, labeledById: viewLabelId },
|
|
1887
|
+
return (preact.createElement(internalCommon.ViewContextType.Provider, { value: viewContext },
|
|
1888
|
+
toolbarConfig.header && (preact.createElement(Toolbar, Object.assign({ ref: this.headerRef, extraClassName: "fc-header-toolbar", model: toolbarConfig.header, titleId: viewLabelId }, toolbarProps))),
|
|
1889
|
+
preact.createElement(ViewContainer, { liquid: viewVGrow, height: viewHeight, aspectRatio: viewAspectRatio, labeledById: viewLabelId },
|
|
1887
1890
|
this.renderView(props),
|
|
1888
1891
|
this.buildAppendContent()),
|
|
1889
|
-
toolbarConfig.footer && (createElement(Toolbar, Object.assign({ ref: this.footerRef, extraClassName: "fc-footer-toolbar", model: toolbarConfig.footer, titleId: "" }, toolbarProps)))));
|
|
1892
|
+
toolbarConfig.footer && (preact.createElement(Toolbar, Object.assign({ ref: this.footerRef, extraClassName: "fc-footer-toolbar", model: toolbarConfig.footer, titleId: "" }, toolbarProps)))));
|
|
1890
1893
|
}
|
|
1891
1894
|
componentDidMount() {
|
|
1892
1895
|
let { props } = this;
|
|
@@ -1918,7 +1921,7 @@ class CalendarContent extends PureComponent {
|
|
|
1918
1921
|
buildAppendContent() {
|
|
1919
1922
|
let { props } = this;
|
|
1920
1923
|
let children = props.pluginHooks.viewContainerAppends.map((buildAppendContent) => buildAppendContent(props));
|
|
1921
|
-
return createElement(Fragment, {}, ...children);
|
|
1924
|
+
return preact.createElement(preact.Fragment, {}, ...children);
|
|
1922
1925
|
}
|
|
1923
1926
|
renderView(props) {
|
|
1924
1927
|
let { pluginHooks } = props;
|
|
@@ -1940,7 +1943,7 @@ class CalendarContent extends PureComponent {
|
|
|
1940
1943
|
Object.assign(viewProps, transformer.transform(viewProps, props));
|
|
1941
1944
|
}
|
|
1942
1945
|
let ViewComponent = viewSpec.component;
|
|
1943
|
-
return (createElement(ViewComponent, Object.assign({}, viewProps)));
|
|
1946
|
+
return (preact.createElement(ViewComponent, Object.assign({}, viewProps)));
|
|
1944
1947
|
}
|
|
1945
1948
|
}
|
|
1946
1949
|
function buildToolbarProps(viewSpec, dateProfile, dateProfileGenerator, currentDate, now, title) {
|
|
@@ -1952,7 +1955,7 @@ function buildToolbarProps(viewSpec, dateProfile, dateProfileGenerator, currentD
|
|
|
1952
1955
|
title,
|
|
1953
1956
|
activeButton: viewSpec.type,
|
|
1954
1957
|
navUnit: viewSpec.singleUnit,
|
|
1955
|
-
isTodayEnabled: todayInfo.isValid && !rangeContainsMarker(dateProfile.currentRange, now),
|
|
1958
|
+
isTodayEnabled: todayInfo.isValid && !internalCommon.rangeContainsMarker(dateProfile.currentRange, now),
|
|
1956
1959
|
isPrevEnabled: prevInfo.isValid,
|
|
1957
1960
|
isNextEnabled: nextInfo.isValid,
|
|
1958
1961
|
};
|
|
@@ -1963,7 +1966,7 @@ function buildViewPropTransformers(theClasses) {
|
|
|
1963
1966
|
return theClasses.map((TheClass) => new TheClass());
|
|
1964
1967
|
}
|
|
1965
1968
|
|
|
1966
|
-
class Calendar extends CalendarImpl {
|
|
1969
|
+
class Calendar extends internalCommon.CalendarImpl {
|
|
1967
1970
|
constructor(el, optionOverrides = {}) {
|
|
1968
1971
|
super();
|
|
1969
1972
|
this.isRendering = false;
|
|
@@ -1986,24 +1989,24 @@ class Calendar extends CalendarImpl {
|
|
|
1986
1989
|
if (this.isRendering) {
|
|
1987
1990
|
this.isRendered = true;
|
|
1988
1991
|
let { currentData } = this;
|
|
1989
|
-
flushSync(() => {
|
|
1990
|
-
render(createElement(CalendarRoot, { options: currentData.calendarOptions, theme: currentData.theme, emitter: currentData.emitter }, (classNames, height, isHeightAuto, forPrint) => {
|
|
1992
|
+
internalCommon.flushSync(() => {
|
|
1993
|
+
preact.render(preact.createElement(internalCommon.CalendarRoot, { options: currentData.calendarOptions, theme: currentData.theme, emitter: currentData.emitter }, (classNames, height, isHeightAuto, forPrint) => {
|
|
1991
1994
|
this.setClassNames(classNames);
|
|
1992
1995
|
this.setHeight(height);
|
|
1993
|
-
return (createElement(RenderId.Provider, { value: this.customContentRenderId },
|
|
1994
|
-
createElement(CalendarContent, Object.assign({ isHeightAuto: isHeightAuto, forPrint: forPrint }, currentData))));
|
|
1996
|
+
return (preact.createElement(internalCommon.RenderId.Provider, { value: this.customContentRenderId },
|
|
1997
|
+
preact.createElement(CalendarContent, Object.assign({ isHeightAuto: isHeightAuto, forPrint: forPrint }, currentData))));
|
|
1995
1998
|
}), this.el);
|
|
1996
1999
|
});
|
|
1997
2000
|
}
|
|
1998
2001
|
else if (this.isRendered) {
|
|
1999
2002
|
this.isRendered = false;
|
|
2000
|
-
render(null, this.el);
|
|
2003
|
+
preact.render(null, this.el);
|
|
2001
2004
|
this.setClassNames([]);
|
|
2002
2005
|
this.setHeight('');
|
|
2003
2006
|
}
|
|
2004
2007
|
};
|
|
2005
2008
|
this.el = el;
|
|
2006
|
-
this.renderRunner = new DelayedRunner(this.handleRenderRequest);
|
|
2009
|
+
this.renderRunner = new internalCommon.DelayedRunner(this.handleRenderRequest);
|
|
2007
2010
|
new CalendarDataManager({
|
|
2008
2011
|
optionOverrides,
|
|
2009
2012
|
calendarApi: this,
|
|
@@ -2031,7 +2034,7 @@ class Calendar extends CalendarImpl {
|
|
|
2031
2034
|
}
|
|
2032
2035
|
}
|
|
2033
2036
|
updateSize() {
|
|
2034
|
-
flushSync(() => {
|
|
2037
|
+
internalCommon.flushSync(() => {
|
|
2035
2038
|
super.updateSize();
|
|
2036
2039
|
});
|
|
2037
2040
|
}
|
|
@@ -2050,7 +2053,7 @@ class Calendar extends CalendarImpl {
|
|
|
2050
2053
|
this.currentDataManager.resetOptions(optionOverrides, append);
|
|
2051
2054
|
}
|
|
2052
2055
|
setClassNames(classNames) {
|
|
2053
|
-
if (!isArraysEqual(classNames, this.currentClassNames)) {
|
|
2056
|
+
if (!internalCommon.isArraysEqual(classNames, this.currentClassNames)) {
|
|
2054
2057
|
let { classList } = this.el;
|
|
2055
2058
|
for (let className of this.currentClassNames) {
|
|
2056
2059
|
classList.remove(className);
|
|
@@ -2062,13 +2065,13 @@ class Calendar extends CalendarImpl {
|
|
|
2062
2065
|
}
|
|
2063
2066
|
}
|
|
2064
2067
|
setHeight(height) {
|
|
2065
|
-
applyStyleProp(this.el, 'height', height);
|
|
2068
|
+
internalCommon.applyStyleProp(this.el, 'height', height);
|
|
2066
2069
|
}
|
|
2067
2070
|
}
|
|
2068
2071
|
|
|
2069
2072
|
function formatDate(dateInput, options = {}) {
|
|
2070
2073
|
let dateEnv = buildDateEnv(options);
|
|
2071
|
-
let formatter = createFormatter(options);
|
|
2074
|
+
let formatter = internalCommon.createFormatter(options);
|
|
2072
2075
|
let dateMeta = dateEnv.createMarkerMeta(dateInput);
|
|
2073
2076
|
if (!dateMeta) { // TODO: warning?
|
|
2074
2077
|
return '';
|
|
@@ -2079,7 +2082,7 @@ function formatDate(dateInput, options = {}) {
|
|
|
2079
2082
|
}
|
|
2080
2083
|
function formatRange(startInput, endInput, options) {
|
|
2081
2084
|
let dateEnv = buildDateEnv(typeof options === 'object' && options ? options : {}); // pass in if non-null object
|
|
2082
|
-
let formatter = createFormatter(options);
|
|
2085
|
+
let formatter = internalCommon.createFormatter(options);
|
|
2083
2086
|
let startMeta = dateEnv.createMarkerMeta(startInput);
|
|
2084
2087
|
let endMeta = dateEnv.createMarkerMeta(endInput);
|
|
2085
2088
|
if (!startMeta || !endMeta) { // TODO: warning?
|
|
@@ -2089,13 +2092,13 @@ function formatRange(startInput, endInput, options) {
|
|
|
2089
2092
|
forcedStartTzo: startMeta.forcedTzo,
|
|
2090
2093
|
forcedEndTzo: endMeta.forcedTzo,
|
|
2091
2094
|
isEndExclusive: options.isEndExclusive,
|
|
2092
|
-
defaultSeparator: BASE_OPTION_DEFAULTS.defaultRangeSeparator,
|
|
2095
|
+
defaultSeparator: internalCommon.BASE_OPTION_DEFAULTS.defaultRangeSeparator,
|
|
2093
2096
|
});
|
|
2094
2097
|
}
|
|
2095
2098
|
// TODO: more DRY and optimized
|
|
2096
2099
|
function buildDateEnv(settings) {
|
|
2097
2100
|
let locale = buildLocale(settings.locale || 'en', organizeRawLocales([]).map); // TODO: don't hardcode 'en' everywhere
|
|
2098
|
-
return new DateEnv(Object.assign(Object.assign({ timeZone: BASE_OPTION_DEFAULTS.timeZone, calendarSystem: 'gregory' }, settings), { locale }));
|
|
2101
|
+
return new internalCommon.DateEnv(Object.assign(Object.assign({ timeZone: internalCommon.BASE_OPTION_DEFAULTS.timeZone, calendarSystem: 'gregory' }, settings), { locale }));
|
|
2099
2102
|
}
|
|
2100
2103
|
|
|
2101
2104
|
// HELPERS
|
|
@@ -2104,9 +2107,17 @@ if nextDayThreshold is specified, slicing is done in an all-day fashion.
|
|
|
2104
2107
|
you can get nextDayThreshold from context.nextDayThreshold
|
|
2105
2108
|
*/
|
|
2106
2109
|
function sliceEvents(props, allDay) {
|
|
2107
|
-
return sliceEventStore(props.eventStore, props.eventUiBases, props.dateProfile.activeRange, allDay ? props.nextDayThreshold : null).fg;
|
|
2110
|
+
return internalCommon.sliceEventStore(props.eventStore, props.eventUiBases, props.dateProfile.activeRange, allDay ? props.nextDayThreshold : null).fg;
|
|
2108
2111
|
}
|
|
2109
2112
|
|
|
2110
|
-
const version = '6.0.
|
|
2113
|
+
const version = '6.0.3';
|
|
2111
2114
|
|
|
2112
|
-
|
|
2115
|
+
exports.JsonRequestError = internalCommon.JsonRequestError;
|
|
2116
|
+
exports.Calendar = Calendar;
|
|
2117
|
+
exports.createPlugin = createPlugin;
|
|
2118
|
+
exports.formatDate = formatDate;
|
|
2119
|
+
exports.formatRange = formatRange;
|
|
2120
|
+
exports.globalLocales = globalLocales;
|
|
2121
|
+
exports.globalPlugins = globalPlugins;
|
|
2122
|
+
exports.sliceEvents = sliceEvents;
|
|
2123
|
+
exports.version = version;
|